-- cgit v1.2.3 From da376e0237517543aa21740ee2363234ee1c20ae Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 27 Apr 2011 11:58:34 +0000 Subject: Cycles render engine, initial commit. This is the engine itself, blender modifications and build instructions will follow later. Cycles uses code from some great open source projects, many thanks them: * BVH building and traversal code from NVidia's "Understanding the Efficiency of Ray Traversal on GPUs": http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/ * Open Shading Language for a large part of the shading system: http://code.google.com/p/openshadinglanguage/ * Blender for procedural textures and a few other nodes. * Approximate Catmull Clark subdivision from NVidia Mesh tools: http://code.google.com/p/nvidia-mesh-tools/ * Sobol direction vectors from: http://web.maths.unsw.edu.au/~fkuo/sobol/ * Film response functions from: http://www.cs.columbia.edu/CAVE/software/softlib/dorf.php --- intern/cycles/CMakeLists.txt | 59 + intern/cycles/app/CMakeLists.txt | 48 + intern/cycles/app/cycles_server.cpp | 71 + intern/cycles/app/cycles_test.cpp | 306 + intern/cycles/app/cycles_xml.cpp | 936 + intern/cycles/app/cycles_xml.h | 31 + intern/cycles/blender/CMakeLists.txt | 72 + intern/cycles/blender/addon/__init__.py | 73 + intern/cycles/blender/addon/engine.py | 107 + intern/cycles/blender/addon/enums.py | 113 + intern/cycles/blender/addon/properties.py | 120 + intern/cycles/blender/addon/ui.py | 388 + intern/cycles/blender/addon/xml.py | 99 + intern/cycles/blender/blender_camera.cpp | 249 + intern/cycles/blender/blender_mesh.cpp | 300 + intern/cycles/blender/blender_object.cpp | 183 + intern/cycles/blender/blender_python.cpp | 230 + intern/cycles/blender/blender_session.cpp | 280 + intern/cycles/blender/blender_session.h | 77 + intern/cycles/blender/blender_shader.cpp | 629 + intern/cycles/blender/blender_sync.cpp | 210 + intern/cycles/blender/blender_sync.h | 105 + intern/cycles/blender/blender_util.h | 326 + intern/cycles/bvh/CMakeLists.txt | 18 + intern/cycles/bvh/bvh.cpp | 661 + intern/cycles/bvh/bvh.h | 152 + intern/cycles/bvh/bvh_build.cpp | 545 + intern/cycles/bvh/bvh_build.h | 152 + intern/cycles/bvh/bvh_node.cpp | 101 + intern/cycles/bvh/bvh_node.h | 108 + intern/cycles/bvh/bvh_params.h | 86 + intern/cycles/bvh/bvh_sort.cpp | 57 + intern/cycles/bvh/bvh_sort.h | 28 + intern/cycles/cmake/create_dmg.py | 14 + intern/cycles/cmake/external_libs.cmake | 210 + intern/cycles/cmake/platforms.cmake | 27 + intern/cycles/device/CMakeLists.txt | 18 + intern/cycles/device/device.cpp | 198 + intern/cycles/device/device.h | 136 + intern/cycles/device/device_cpu.cpp | 216 + intern/cycles/device/device_cuda.cpp | 682 + intern/cycles/device/device_intern.h | 35 + intern/cycles/device/device_memory.h | 244 + intern/cycles/device/device_multi.cpp | 304 + intern/cycles/device/device_network.cpp | 382 + intern/cycles/device/device_network.h | 304 + intern/cycles/device/device_opencl.cpp | 396 + intern/cycles/doc/CMakeLists.txt | 105 + intern/cycles/doc/license/Apache_2.0.txt | 203 + intern/cycles/doc/license/Blender.txt | 17 + intern/cycles/doc/license/GPL.txt | 342 + intern/cycles/doc/license/ILM.txt | 29 + intern/cycles/doc/license/NVidia.txt | 36 + intern/cycles/doc/license/OSL.txt | 28 + intern/cycles/doc/license/Sobol.txt | 29 + intern/cycles/doc/license/readme.txt | 11 + intern/cycles/kernel/CMakeLists.txt | 104 + intern/cycles/kernel/kernel.cl | 105 + intern/cycles/kernel/kernel.cpp | 300 + intern/cycles/kernel/kernel.cu | 53 + intern/cycles/kernel/kernel.h | 47 + intern/cycles/kernel/kernel_bvh.h | 361 + intern/cycles/kernel/kernel_camera.h | 132 + intern/cycles/kernel/kernel_compat_cpu.h | 162 + intern/cycles/kernel/kernel_compat_cuda.h | 65 + intern/cycles/kernel/kernel_compat_opencl.h | 50 + intern/cycles/kernel/kernel_differential.h | 90 + intern/cycles/kernel/kernel_displace.h | 35 + intern/cycles/kernel/kernel_emission.h | 118 + intern/cycles/kernel/kernel_film.h | 68 + intern/cycles/kernel/kernel_globals.h | 208 + intern/cycles/kernel/kernel_light.h | 145 + intern/cycles/kernel/kernel_math.h | 27 + intern/cycles/kernel/kernel_mbvh.h | 394 + intern/cycles/kernel/kernel_montecarlo.h | 196 + intern/cycles/kernel/kernel_object.h | 68 + intern/cycles/kernel/kernel_path.h | 263 + intern/cycles/kernel/kernel_qbvh.h | 413 + intern/cycles/kernel/kernel_random.h | 175 + intern/cycles/kernel/kernel_shader.h | 460 + intern/cycles/kernel/kernel_triangle.h | 183 + intern/cycles/kernel/kernel_types.h | 374 + intern/cycles/kernel/osl/CMakeLists.txt | 33 + intern/cycles/kernel/osl/background.cpp | 100 + intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp | 175 + intern/cycles/kernel/osl/bsdf_diffuse.cpp | 181 + intern/cycles/kernel/osl/bsdf_microfacet.cpp | 533 + intern/cycles/kernel/osl/bsdf_reflection.cpp | 108 + intern/cycles/kernel/osl/bsdf_refraction.cpp | 120 + intern/cycles/kernel/osl/bsdf_transparent.cpp | 97 + intern/cycles/kernel/osl/bsdf_ward.cpp | 222 + intern/cycles/kernel/osl/bsdf_westin.cpp | 239 + intern/cycles/kernel/osl/bssrdf.cpp | 105 + intern/cycles/kernel/osl/debug.cpp | 80 + intern/cycles/kernel/osl/emissive.cpp | 107 + intern/cycles/kernel/osl/nodes/CMakeLists.txt | 69 + .../cycles/kernel/osl/nodes/node_add_closure.osl | 28 + intern/cycles/kernel/osl/nodes/node_attribute.osl | 43 + intern/cycles/kernel/osl/nodes/node_background.osl | 28 + .../cycles/kernel/osl/nodes/node_blend_texture.osl | 78 + intern/cycles/kernel/osl/nodes/node_bump.osl | 46 + .../kernel/osl/nodes/node_clouds_texture.osl | 42 + .../kernel/osl/nodes/node_convert_from_color.osl | 33 + .../kernel/osl/nodes/node_convert_from_float.osl | 33 + .../kernel/osl/nodes/node_convert_from_normal.osl | 33 + .../kernel/osl/nodes/node_convert_from_point.osl | 33 + .../kernel/osl/nodes/node_convert_from_vector.osl | 33 + .../cycles/kernel/osl/nodes/node_diffuse_bsdf.osl | 28 + .../osl/nodes/node_distorted_noise_texture.osl | 46 + intern/cycles/kernel/osl/nodes/node_emission.osl | 32 + .../kernel/osl/nodes/node_environment_texture.osl | 28 + intern/cycles/kernel/osl/nodes/node_fresnel.h | 21 + intern/cycles/kernel/osl/nodes/node_fresnel.osl | 30 + intern/cycles/kernel/osl/nodes/node_geometry.osl | 50 + intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl | 41 + .../cycles/kernel/osl/nodes/node_glossy_bsdf.osl | 45 + .../cycles/kernel/osl/nodes/node_image_texture.osl | 28 + intern/cycles/kernel/osl/nodes/node_light_path.osl | 36 + .../cycles/kernel/osl/nodes/node_magic_texture.osl | 103 + intern/cycles/kernel/osl/nodes/node_mapping.osl | 28 + .../kernel/osl/nodes/node_marble_texture.osl | 58 + intern/cycles/kernel/osl/nodes/node_math.osl | 84 + intern/cycles/kernel/osl/nodes/node_mix.osl | 388 + .../cycles/kernel/osl/nodes/node_mix_closure.osl | 30 + .../kernel/osl/nodes/node_musgrave_texture.osl | 218 + .../cycles/kernel/osl/nodes/node_noise_texture.osl | 36 + .../kernel/osl/nodes/node_output_displacement.osl | 25 + .../kernel/osl/nodes/node_output_surface.osl | 25 + .../cycles/kernel/osl/nodes/node_output_volume.osl | 25 + .../cycles/kernel/osl/nodes/node_sky_texture.osl | 162 + .../kernel/osl/nodes/node_stucci_texture.osl | 49 + intern/cycles/kernel/osl/nodes/node_texture.h | 251 + .../kernel/osl/nodes/node_texture_coordinate.osl | 66 + .../kernel/osl/nodes/node_translucent_bsdf.osl | 28 + .../kernel/osl/nodes/node_transparent_bsdf.osl | 28 + intern/cycles/kernel/osl/nodes/node_value.osl | 33 + .../cycles/kernel/osl/nodes/node_vector_math.osl | 53 + .../cycles/kernel/osl/nodes/node_velvet_bsdf.osl | 40 + .../kernel/osl/nodes/node_voronoi_texture.osl | 82 + intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl | 30 + .../cycles/kernel/osl/nodes/node_wood_texture.osl | 63 + intern/cycles/kernel/osl/nodes/stdosl.h | 471 + intern/cycles/kernel/osl/osl_closures.cpp | 93 + intern/cycles/kernel/osl/osl_closures.h | 114 + intern/cycles/kernel/osl/osl_globals.h | 74 + intern/cycles/kernel/osl/osl_services.cpp | 424 + intern/cycles/kernel/osl/osl_services.h | 111 + intern/cycles/kernel/osl/osl_shader.cpp | 559 + intern/cycles/kernel/osl/osl_shader.h | 87 + intern/cycles/kernel/osl/vol_subsurface.cpp | 135 + intern/cycles/kernel/svm/bsdf.h | 135 + intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h | 154 + intern/cycles/kernel/svm/bsdf_diffuse.h | 166 + intern/cycles/kernel/svm/bsdf_microfacet.h | 493 + intern/cycles/kernel/svm/bsdf_reflection.h | 95 + intern/cycles/kernel/svm/bsdf_refraction.h | 103 + intern/cycles/kernel/svm/bsdf_transparent.h | 78 + intern/cycles/kernel/svm/bsdf_ward.h | 202 + intern/cycles/kernel/svm/bsdf_westin.h | 212 + intern/cycles/kernel/svm/emissive.h | 83 + intern/cycles/kernel/svm/svm.h | 271 + intern/cycles/kernel/svm/svm_attribute.h | 154 + intern/cycles/kernel/svm/svm_blend.h | 79 + intern/cycles/kernel/svm/svm_bsdf.h | 228 + intern/cycles/kernel/svm/svm_closure.h | 208 + intern/cycles/kernel/svm/svm_clouds.h | 55 + intern/cycles/kernel/svm/svm_convert.h | 48 + intern/cycles/kernel/svm/svm_displace.h | 51 + intern/cycles/kernel/svm/svm_distorted_noise.h | 58 + intern/cycles/kernel/svm/svm_fresnel.h | 34 + intern/cycles/kernel/svm/svm_geometry.h | 78 + intern/cycles/kernel/svm/svm_image.h | 162 + intern/cycles/kernel/svm/svm_light_path.h | 41 + intern/cycles/kernel/svm/svm_magic.h | 108 + intern/cycles/kernel/svm/svm_mapping.h | 38 + intern/cycles/kernel/svm/svm_marble.h | 67 + intern/cycles/kernel/svm/svm_math.h | 181 + intern/cycles/kernel/svm/svm_mix.h | 387 + intern/cycles/kernel/svm/svm_musgrave.h | 237 + intern/cycles/kernel/svm/svm_noise.h | 230 + intern/cycles/kernel/svm/svm_noisetex.h | 48 + intern/cycles/kernel/svm/svm_sky.h | 92 + intern/cycles/kernel/svm/svm_stucci.h | 63 + intern/cycles/kernel/svm/svm_tex_coord.h | 170 + intern/cycles/kernel/svm/svm_texture.h | 240 + intern/cycles/kernel/svm/svm_types.h | 286 + intern/cycles/kernel/svm/svm_value.h | 38 + intern/cycles/kernel/svm/svm_voronoi.h | 105 + intern/cycles/kernel/svm/svm_wood.h | 69 + intern/cycles/kernel/svm/volume.h | 43 + intern/cycles/render/CMakeLists.txt | 54 + intern/cycles/render/attribute.cpp | 343 + intern/cycles/render/attribute.h | 161 + intern/cycles/render/background.cpp | 70 + intern/cycles/render/background.h | 47 + intern/cycles/render/buffers.cpp | 177 + intern/cycles/render/buffers.h | 94 + intern/cycles/render/camera.cpp | 193 + intern/cycles/render/camera.h | 93 + intern/cycles/render/film.cpp | 135 + intern/cycles/render/film.h | 51 + intern/cycles/render/filter.cpp | 129 + intern/cycles/render/filter.h | 46 + intern/cycles/render/graph.cpp | 457 + intern/cycles/render/graph.h | 227 + intern/cycles/render/image.cpp | 227 + intern/cycles/render/image.h | 67 + intern/cycles/render/integrator.cpp | 86 + intern/cycles/render/integrator.h | 49 + intern/cycles/render/light.cpp | 220 + intern/cycles/render/light.h | 63 + intern/cycles/render/mesh.cpp | 718 + intern/cycles/render/mesh.h | 133 + intern/cycles/render/mesh_displace.cpp | 153 + intern/cycles/render/nodes.cpp | 1914 ++ intern/cycles/render/nodes.h | 339 + intern/cycles/render/object.cpp | 213 + intern/cycles/render/object.h | 76 + intern/cycles/render/osl.cpp | 497 + intern/cycles/render/osl.h | 103 + intern/cycles/render/scene.cpp | 188 + intern/cycles/render/scene.h | 183 + intern/cycles/render/session.cpp | 435 + intern/cycles/render/session.h | 152 + intern/cycles/render/shader.cpp | 215 + intern/cycles/render/shader.h | 116 + intern/cycles/render/sobol.cpp | 21304 +++++++++++++++++++ intern/cycles/render/sobol.h | 32 + intern/cycles/render/svm.cpp | 537 + intern/cycles/render/svm.h | 104 + intern/cycles/render/tile.cpp | 116 + intern/cycles/render/tile.h | 73 + intern/cycles/subd/CMakeLists.txt | 26 + intern/cycles/subd/subd_build.cpp | 666 + intern/cycles/subd/subd_build.h | 75 + intern/cycles/subd/subd_dice.cpp | 461 + intern/cycles/subd/subd_dice.h | 159 + intern/cycles/subd/subd_edge.h | 70 + intern/cycles/subd/subd_face.h | 109 + intern/cycles/subd/subd_mesh.cpp | 309 + intern/cycles/subd/subd_mesh.h | 90 + intern/cycles/subd/subd_patch.cpp | 288 + intern/cycles/subd/subd_patch.h | 107 + intern/cycles/subd/subd_ring.cpp | 236 + intern/cycles/subd/subd_ring.h | 75 + intern/cycles/subd/subd_split.cpp | 325 + intern/cycles/subd/subd_split.h | 71 + intern/cycles/subd/subd_stencil.cpp | 103 + intern/cycles/subd/subd_stencil.h | 65 + intern/cycles/subd/subd_vert.h | 121 + intern/cycles/util/CMakeLists.txt | 47 + intern/cycles/util/util_algorithm.h | 35 + intern/cycles/util/util_args.h | 34 + intern/cycles/util/util_boundbox.h | 98 + intern/cycles/util/util_cache.cpp | 93 + intern/cycles/util/util_cache.h | 132 + intern/cycles/util/util_color.h | 46 + intern/cycles/util/util_cuda.cpp | 379 + intern/cycles/util/util_cuda.h | 619 + intern/cycles/util/util_debug.h | 25 + intern/cycles/util/util_dynlib.cpp | 96 + intern/cycles/util/util_dynlib.h | 33 + intern/cycles/util/util_foreach.h | 28 + intern/cycles/util/util_function.h | 33 + intern/cycles/util/util_hash.h | 50 + intern/cycles/util/util_image.h | 33 + intern/cycles/util/util_list.h | 31 + intern/cycles/util/util_map.h | 34 + intern/cycles/util/util_math.h | 759 + intern/cycles/util/util_md5.cpp | 350 + intern/cycles/util/util_md5.h | 58 + intern/cycles/util/util_opengl.h | 35 + intern/cycles/util/util_param.h | 36 + intern/cycles/util/util_path.cpp | 61 + intern/cycles/util/util_path.h | 41 + intern/cycles/util/util_progress.h | 173 + intern/cycles/util/util_set.h | 33 + intern/cycles/util/util_string.cpp | 92 + intern/cycles/util/util_string.h | 49 + intern/cycles/util/util_system.cpp | 104 + intern/cycles/util/util_system.h | 32 + intern/cycles/util/util_thread.h | 212 + intern/cycles/util/util_time.cpp | 72 + intern/cycles/util/util_time.h | 35 + intern/cycles/util/util_transform.cpp | 142 + intern/cycles/util/util_transform.h | 213 + intern/cycles/util/util_types.h | 266 + intern/cycles/util/util_vector.h | 137 + intern/cycles/util/util_view.cpp | 189 + intern/cycles/util/util_view.h | 44 + intern/cycles/util/util_xml.h | 33 + 291 files changed, 66987 insertions(+) create mode 100644 intern/cycles/CMakeLists.txt create mode 100644 intern/cycles/app/CMakeLists.txt create mode 100644 intern/cycles/app/cycles_server.cpp create mode 100644 intern/cycles/app/cycles_test.cpp create mode 100644 intern/cycles/app/cycles_xml.cpp create mode 100644 intern/cycles/app/cycles_xml.h create mode 100644 intern/cycles/blender/CMakeLists.txt create mode 100644 intern/cycles/blender/addon/__init__.py create mode 100644 intern/cycles/blender/addon/engine.py create mode 100644 intern/cycles/blender/addon/enums.py create mode 100644 intern/cycles/blender/addon/properties.py create mode 100644 intern/cycles/blender/addon/ui.py create mode 100644 intern/cycles/blender/addon/xml.py create mode 100644 intern/cycles/blender/blender_camera.cpp create mode 100644 intern/cycles/blender/blender_mesh.cpp create mode 100644 intern/cycles/blender/blender_object.cpp create mode 100644 intern/cycles/blender/blender_python.cpp create mode 100644 intern/cycles/blender/blender_session.cpp create mode 100644 intern/cycles/blender/blender_session.h create mode 100644 intern/cycles/blender/blender_shader.cpp create mode 100644 intern/cycles/blender/blender_sync.cpp create mode 100644 intern/cycles/blender/blender_sync.h create mode 100644 intern/cycles/blender/blender_util.h create mode 100644 intern/cycles/bvh/CMakeLists.txt create mode 100644 intern/cycles/bvh/bvh.cpp create mode 100644 intern/cycles/bvh/bvh.h create mode 100644 intern/cycles/bvh/bvh_build.cpp create mode 100644 intern/cycles/bvh/bvh_build.h create mode 100644 intern/cycles/bvh/bvh_node.cpp create mode 100644 intern/cycles/bvh/bvh_node.h create mode 100644 intern/cycles/bvh/bvh_params.h create mode 100644 intern/cycles/bvh/bvh_sort.cpp create mode 100644 intern/cycles/bvh/bvh_sort.h create mode 100755 intern/cycles/cmake/create_dmg.py create mode 100644 intern/cycles/cmake/external_libs.cmake create mode 100644 intern/cycles/cmake/platforms.cmake create mode 100644 intern/cycles/device/CMakeLists.txt create mode 100644 intern/cycles/device/device.cpp create mode 100644 intern/cycles/device/device.h create mode 100644 intern/cycles/device/device_cpu.cpp create mode 100644 intern/cycles/device/device_cuda.cpp create mode 100644 intern/cycles/device/device_intern.h create mode 100644 intern/cycles/device/device_memory.h create mode 100644 intern/cycles/device/device_multi.cpp create mode 100644 intern/cycles/device/device_network.cpp create mode 100644 intern/cycles/device/device_network.h create mode 100644 intern/cycles/device/device_opencl.cpp create mode 100644 intern/cycles/doc/CMakeLists.txt create mode 100644 intern/cycles/doc/license/Apache_2.0.txt create mode 100644 intern/cycles/doc/license/Blender.txt create mode 100644 intern/cycles/doc/license/GPL.txt create mode 100644 intern/cycles/doc/license/ILM.txt create mode 100644 intern/cycles/doc/license/NVidia.txt create mode 100644 intern/cycles/doc/license/OSL.txt create mode 100644 intern/cycles/doc/license/Sobol.txt create mode 100644 intern/cycles/doc/license/readme.txt create mode 100644 intern/cycles/kernel/CMakeLists.txt create mode 100644 intern/cycles/kernel/kernel.cl create mode 100644 intern/cycles/kernel/kernel.cpp create mode 100644 intern/cycles/kernel/kernel.cu create mode 100644 intern/cycles/kernel/kernel.h create mode 100644 intern/cycles/kernel/kernel_bvh.h create mode 100644 intern/cycles/kernel/kernel_camera.h create mode 100644 intern/cycles/kernel/kernel_compat_cpu.h create mode 100644 intern/cycles/kernel/kernel_compat_cuda.h create mode 100644 intern/cycles/kernel/kernel_compat_opencl.h create mode 100644 intern/cycles/kernel/kernel_differential.h create mode 100644 intern/cycles/kernel/kernel_displace.h create mode 100644 intern/cycles/kernel/kernel_emission.h create mode 100644 intern/cycles/kernel/kernel_film.h create mode 100644 intern/cycles/kernel/kernel_globals.h create mode 100644 intern/cycles/kernel/kernel_light.h create mode 100644 intern/cycles/kernel/kernel_math.h create mode 100644 intern/cycles/kernel/kernel_mbvh.h create mode 100644 intern/cycles/kernel/kernel_montecarlo.h create mode 100644 intern/cycles/kernel/kernel_object.h create mode 100644 intern/cycles/kernel/kernel_path.h create mode 100644 intern/cycles/kernel/kernel_qbvh.h create mode 100644 intern/cycles/kernel/kernel_random.h create mode 100644 intern/cycles/kernel/kernel_shader.h create mode 100644 intern/cycles/kernel/kernel_triangle.h create mode 100644 intern/cycles/kernel/kernel_types.h create mode 100644 intern/cycles/kernel/osl/CMakeLists.txt create mode 100644 intern/cycles/kernel/osl/background.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_diffuse.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_microfacet.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_reflection.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_refraction.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_transparent.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_ward.cpp create mode 100644 intern/cycles/kernel/osl/bsdf_westin.cpp create mode 100644 intern/cycles/kernel/osl/bssrdf.cpp create mode 100644 intern/cycles/kernel/osl/debug.cpp create mode 100644 intern/cycles/kernel/osl/emissive.cpp create mode 100644 intern/cycles/kernel/osl/nodes/CMakeLists.txt create mode 100644 intern/cycles/kernel/osl/nodes/node_add_closure.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_attribute.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_background.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_blend_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_bump.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_clouds_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_convert_from_color.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_convert_from_float.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_convert_from_point.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_distorted_noise_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_emission.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_environment_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_fresnel.h create mode 100644 intern/cycles/kernel/osl/nodes/node_fresnel.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_geometry.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_image_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_light_path.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_magic_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_mapping.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_marble_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_math.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_mix.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_mix_closure.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_noise_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_output_displacement.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_output_surface.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_output_volume.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_sky_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_stucci_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_texture.h create mode 100644 intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_value.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_vector_math.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_wood_texture.osl create mode 100644 intern/cycles/kernel/osl/nodes/stdosl.h create mode 100644 intern/cycles/kernel/osl/osl_closures.cpp create mode 100644 intern/cycles/kernel/osl/osl_closures.h create mode 100644 intern/cycles/kernel/osl/osl_globals.h create mode 100644 intern/cycles/kernel/osl/osl_services.cpp create mode 100644 intern/cycles/kernel/osl/osl_services.h create mode 100644 intern/cycles/kernel/osl/osl_shader.cpp create mode 100644 intern/cycles/kernel/osl/osl_shader.h create mode 100644 intern/cycles/kernel/osl/vol_subsurface.cpp create mode 100644 intern/cycles/kernel/svm/bsdf.h create mode 100644 intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h create mode 100644 intern/cycles/kernel/svm/bsdf_diffuse.h create mode 100644 intern/cycles/kernel/svm/bsdf_microfacet.h create mode 100644 intern/cycles/kernel/svm/bsdf_reflection.h create mode 100644 intern/cycles/kernel/svm/bsdf_refraction.h create mode 100644 intern/cycles/kernel/svm/bsdf_transparent.h create mode 100644 intern/cycles/kernel/svm/bsdf_ward.h create mode 100644 intern/cycles/kernel/svm/bsdf_westin.h create mode 100644 intern/cycles/kernel/svm/emissive.h create mode 100644 intern/cycles/kernel/svm/svm.h create mode 100644 intern/cycles/kernel/svm/svm_attribute.h create mode 100644 intern/cycles/kernel/svm/svm_blend.h create mode 100644 intern/cycles/kernel/svm/svm_bsdf.h create mode 100644 intern/cycles/kernel/svm/svm_closure.h create mode 100644 intern/cycles/kernel/svm/svm_clouds.h create mode 100644 intern/cycles/kernel/svm/svm_convert.h create mode 100644 intern/cycles/kernel/svm/svm_displace.h create mode 100644 intern/cycles/kernel/svm/svm_distorted_noise.h create mode 100644 intern/cycles/kernel/svm/svm_fresnel.h create mode 100644 intern/cycles/kernel/svm/svm_geometry.h create mode 100644 intern/cycles/kernel/svm/svm_image.h create mode 100644 intern/cycles/kernel/svm/svm_light_path.h create mode 100644 intern/cycles/kernel/svm/svm_magic.h create mode 100644 intern/cycles/kernel/svm/svm_mapping.h create mode 100644 intern/cycles/kernel/svm/svm_marble.h create mode 100644 intern/cycles/kernel/svm/svm_math.h create mode 100644 intern/cycles/kernel/svm/svm_mix.h create mode 100644 intern/cycles/kernel/svm/svm_musgrave.h create mode 100644 intern/cycles/kernel/svm/svm_noise.h create mode 100644 intern/cycles/kernel/svm/svm_noisetex.h create mode 100644 intern/cycles/kernel/svm/svm_sky.h create mode 100644 intern/cycles/kernel/svm/svm_stucci.h create mode 100644 intern/cycles/kernel/svm/svm_tex_coord.h create mode 100644 intern/cycles/kernel/svm/svm_texture.h create mode 100644 intern/cycles/kernel/svm/svm_types.h create mode 100644 intern/cycles/kernel/svm/svm_value.h create mode 100644 intern/cycles/kernel/svm/svm_voronoi.h create mode 100644 intern/cycles/kernel/svm/svm_wood.h create mode 100644 intern/cycles/kernel/svm/volume.h create mode 100644 intern/cycles/render/CMakeLists.txt create mode 100644 intern/cycles/render/attribute.cpp create mode 100644 intern/cycles/render/attribute.h create mode 100644 intern/cycles/render/background.cpp create mode 100644 intern/cycles/render/background.h create mode 100644 intern/cycles/render/buffers.cpp create mode 100644 intern/cycles/render/buffers.h create mode 100644 intern/cycles/render/camera.cpp create mode 100644 intern/cycles/render/camera.h create mode 100644 intern/cycles/render/film.cpp create mode 100644 intern/cycles/render/film.h create mode 100644 intern/cycles/render/filter.cpp create mode 100644 intern/cycles/render/filter.h create mode 100644 intern/cycles/render/graph.cpp create mode 100644 intern/cycles/render/graph.h create mode 100644 intern/cycles/render/image.cpp create mode 100644 intern/cycles/render/image.h create mode 100644 intern/cycles/render/integrator.cpp create mode 100644 intern/cycles/render/integrator.h create mode 100644 intern/cycles/render/light.cpp create mode 100644 intern/cycles/render/light.h create mode 100644 intern/cycles/render/mesh.cpp create mode 100644 intern/cycles/render/mesh.h create mode 100644 intern/cycles/render/mesh_displace.cpp create mode 100644 intern/cycles/render/nodes.cpp create mode 100644 intern/cycles/render/nodes.h create mode 100644 intern/cycles/render/object.cpp create mode 100644 intern/cycles/render/object.h create mode 100644 intern/cycles/render/osl.cpp create mode 100644 intern/cycles/render/osl.h create mode 100644 intern/cycles/render/scene.cpp create mode 100644 intern/cycles/render/scene.h create mode 100644 intern/cycles/render/session.cpp create mode 100644 intern/cycles/render/session.h create mode 100644 intern/cycles/render/shader.cpp create mode 100644 intern/cycles/render/shader.h create mode 100644 intern/cycles/render/sobol.cpp create mode 100644 intern/cycles/render/sobol.h create mode 100644 intern/cycles/render/svm.cpp create mode 100644 intern/cycles/render/svm.h create mode 100644 intern/cycles/render/tile.cpp create mode 100644 intern/cycles/render/tile.h create mode 100644 intern/cycles/subd/CMakeLists.txt create mode 100644 intern/cycles/subd/subd_build.cpp create mode 100644 intern/cycles/subd/subd_build.h create mode 100644 intern/cycles/subd/subd_dice.cpp create mode 100644 intern/cycles/subd/subd_dice.h create mode 100644 intern/cycles/subd/subd_edge.h create mode 100644 intern/cycles/subd/subd_face.h create mode 100644 intern/cycles/subd/subd_mesh.cpp create mode 100644 intern/cycles/subd/subd_mesh.h create mode 100644 intern/cycles/subd/subd_patch.cpp create mode 100644 intern/cycles/subd/subd_patch.h create mode 100644 intern/cycles/subd/subd_ring.cpp create mode 100644 intern/cycles/subd/subd_ring.h create mode 100644 intern/cycles/subd/subd_split.cpp create mode 100644 intern/cycles/subd/subd_split.h create mode 100644 intern/cycles/subd/subd_stencil.cpp create mode 100644 intern/cycles/subd/subd_stencil.h create mode 100644 intern/cycles/subd/subd_vert.h create mode 100644 intern/cycles/util/CMakeLists.txt create mode 100644 intern/cycles/util/util_algorithm.h create mode 100644 intern/cycles/util/util_args.h create mode 100644 intern/cycles/util/util_boundbox.h create mode 100644 intern/cycles/util/util_cache.cpp create mode 100644 intern/cycles/util/util_cache.h create mode 100644 intern/cycles/util/util_color.h create mode 100644 intern/cycles/util/util_cuda.cpp create mode 100644 intern/cycles/util/util_cuda.h create mode 100644 intern/cycles/util/util_debug.h create mode 100644 intern/cycles/util/util_dynlib.cpp create mode 100644 intern/cycles/util/util_dynlib.h create mode 100644 intern/cycles/util/util_foreach.h create mode 100644 intern/cycles/util/util_function.h create mode 100644 intern/cycles/util/util_hash.h create mode 100644 intern/cycles/util/util_image.h create mode 100644 intern/cycles/util/util_list.h create mode 100644 intern/cycles/util/util_map.h create mode 100644 intern/cycles/util/util_math.h create mode 100644 intern/cycles/util/util_md5.cpp create mode 100644 intern/cycles/util/util_md5.h create mode 100644 intern/cycles/util/util_opengl.h create mode 100644 intern/cycles/util/util_param.h create mode 100644 intern/cycles/util/util_path.cpp create mode 100644 intern/cycles/util/util_path.h create mode 100644 intern/cycles/util/util_progress.h create mode 100644 intern/cycles/util/util_set.h create mode 100644 intern/cycles/util/util_string.cpp create mode 100644 intern/cycles/util/util_string.h create mode 100644 intern/cycles/util/util_system.cpp create mode 100644 intern/cycles/util/util_system.h create mode 100644 intern/cycles/util/util_thread.h create mode 100644 intern/cycles/util/util_time.cpp create mode 100644 intern/cycles/util/util_time.h create mode 100644 intern/cycles/util/util_transform.cpp create mode 100644 intern/cycles/util/util_transform.h create mode 100644 intern/cycles/util/util_types.h create mode 100644 intern/cycles/util/util_vector.h create mode 100644 intern/cycles/util/util_view.cpp create mode 100644 intern/cycles/util/util_view.h create mode 100644 intern/cycles/util/util_xml.h diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt new file mode 100644 index 00000000000..406b4e6732b --- /dev/null +++ b/intern/cycles/CMakeLists.txt @@ -0,0 +1,59 @@ + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +PROJECT(cycles) +SET(CYCLES_VERSION_MAJOR 0) +SET(CYCLES_VERSION_MINOR 0) +SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR}) + +# Options + +OPTION(WITH_OSL "Build with Open Shading Language support" OFF) +OPTION(WITH_CUDA "Build with CUDA support" OFF) +OPTION(WITH_OPENCL "Build with OpenCL support (not working)" OFF) +OPTION(WITH_BLENDER "Build Blender Python extension" OFF) +OPTION(WITH_PARTIO "Build with Partio point cloud support (unfinished)" OFF) +OPTION(WITH_NETWORK "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_MULTI "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_DOCS "Build html documentation" OFF) + +# Flags +SET(CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") +SET(CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") + +# Paths + +SET(OSL_PATH "" CACHE PATH "Path to OpenShadingLanguage installation") +SET(OIIO_PATH "" CACHE PATH "Path to OpenImageIO installation") +SET(BOOST_PATH "/usr" CACHE PATH "Path to Boost installation") +SET(CUDA_PATH "/usr/local/cuda" CACHE PATH "Path to CUDA installation") +SET(OPENCL_PATH "" CACHE PATH "Path to OpenCL installation") +SET(PYTHON_PATH "" CACHE PATH "Path to Python installation") +SET(BLENDER_PATH "" CACHE PATH "Path to Blender installation") +SET(PARTIO_PATH "" CACHE PATH "Path to Partio installation") +SET(GLEW_PATH "" CACHE PATH "Path to GLEW installation") +SET(GLUT_PATH "" CACHE PATH "Path to GLUT installation") +SET(INSTALL_PATH "${CMAKE_BINARY_DIR}/install" CACHE PATH "Path to install to") + +# External Libraries + +INCLUDE(cmake/external_libs.cmake) + +# Platforms + +INCLUDE(cmake/platforms.cmake) + +# Subdirectories + +IF(WITH_BLENDER) + ADD_SUBDIRECTORY(blender) +ENDIF(WITH_BLENDER) + +ADD_SUBDIRECTORY(app) +ADD_SUBDIRECTORY(bvh) +ADD_SUBDIRECTORY(device) +ADD_SUBDIRECTORY(doc) +ADD_SUBDIRECTORY(kernel) +ADD_SUBDIRECTORY(render) +ADD_SUBDIRECTORY(subd) +ADD_SUBDIRECTORY(util) + diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt new file mode 100644 index 00000000000..b1f73ed74a3 --- /dev/null +++ b/intern/cycles/app/CMakeLists.txt @@ -0,0 +1,48 @@ + +INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../bvh ../util ../render ../subd) + +SET(LIBRARIES + device + kernel + render + bvh + subd + util + ${Boost_LIBRARIES} + ${OPENGL_LIBRARIES} + ${GLEW_LIBRARIES} + ${OPENIMAGEIO_LIBRARY} + ${GLUT_LIBRARIES}) + +IF(WITH_OSL) + LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) +ENDIF(WITH_OSL) + +IF(WITH_PARTIO) + LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) +ENDIF(WITH_PARTIO) + +IF(WITH_OPENCL) + LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) +ENDIF(WITH_OPENCL) + +ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) +TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) +INSTALL(TARGETS cycles_test DESTINATION ${INSTALL_PATH}/cycles) + +IF(UNIX AND NOT APPLE) + SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) +ENDIF() + +IF(WITH_NETWORK) + ADD_EXECUTABLE(cycles_server cycles_server.cpp) + TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES}) + INSTALL(TARGETS cycles_server DESTINATION ${INSTALL_PATH}/cycles) + + IF(UNIX AND NOT APPLE) + SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) + ENDIF() +ENDIF() + +INSTALL(CODE "FILE(MAKE_DIRECTORY ${INSTALL_PATH}/cycles/cache)") + diff --git a/intern/cycles/app/cycles_server.cpp b/intern/cycles/app/cycles_server.cpp new file mode 100644 index 00000000000..bcf4d3ea769 --- /dev/null +++ b/intern/cycles/app/cycles_server.cpp @@ -0,0 +1,71 @@ +/* + * 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 + +#include "device.h" + +#include "util_args.h" +#include "util_foreach.h" +#include "util_path.h" +#include "util_string.h" + +using namespace ccl; + +int main(int argc, const char **argv) +{ + path_init(); + + /* device types */ + string devices = ""; + string devicename = "cpu"; + + vector types = Device::available_types(); + + foreach(DeviceType type, types) { + if(devices != "") + devices += ", "; + + devices += Device::string_from_type(type); + } + + /* parse options */ + ArgParse ap; + + ap.options ("Usage: cycles_server [options]", + "--device %s", &devicename, ("Devices to use: " + devices).c_str(), + NULL); + + if(ap.parse(argc, argv) < 0) { + fprintf(stderr, "%s\n", ap.error_message().c_str()); + ap.usage(); + exit(EXIT_FAILURE); + } + + DeviceType dtype = Device::type_from_string(devicename.c_str()); + + while(1) { + Device *device = Device::create(dtype); + printf("Cycles Server with device: %s\n", device->description().c_str()); + device->server_run(); + delete device; + } + + return 0; +} + diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp new file mode 100644 index 00000000000..96072ac3da6 --- /dev/null +++ b/intern/cycles/app/cycles_test.cpp @@ -0,0 +1,306 @@ +/* + * 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 + +#include "buffers.h" +#include "camera.h" +#include "device.h" +#include "scene.h" +#include "session.h" + +#include "util_args.h" +#include "util_foreach.h" +#include "util_function.h" +#include "util_path.h" +#include "util_progress.h" +#include "util_string.h" +#include "util_time.h" +#include "util_view.h" + +#include "cycles_xml.h" + +CCL_NAMESPACE_BEGIN + +struct Options { + Session *session; + Scene *scene; + string filepath; + int width, height; + SceneParams scene_params; + SessionParams session_params; + bool quiet; +} options; + +static void session_print(const string& str) +{ + /* print with carriage return to overwrite previous */ + printf("\r%s", str.c_str()); + + /* add spaces to overwrite longer previous print */ + static int maxlen = 0; + int len = str.size(); + maxlen = max(len, maxlen); + + for(int i = len; i < maxlen; i++) + printf(" "); + + /* flush because we don't write an end of line */ + fflush(stdout); +} + +static void session_print_status() +{ + int pass; + double total_time, pass_time; + string status, substatus; + + /* get status */ + options.session->progress.get_pass(pass, total_time, pass_time); + options.session->progress.get_status(status, substatus); + + if(substatus != "") + status += ": " + substatus; + + /* print status */ + status = string_printf("Pass %d %s", pass, status.c_str()); + session_print(status); +} + +static void session_init() +{ + options.session = new Session(options.session_params); + options.session->reset(options.width, options.height); + options.session->scene = options.scene; + + if(options.session_params.background && !options.quiet) + options.session->progress.set_update_callback(function_bind(&session_print_status)); + else + options.session->progress.set_update_callback(function_bind(&view_redraw)); + + options.session->start(); + + options.scene = NULL; +} + +static void scene_init() +{ + options.scene = new Scene(options.scene_params); + xml_read_file(options.scene, options.filepath.c_str()); + options.width = options.scene->camera->width; + options.height = options.scene->camera->height; +} + +static void session_exit() +{ + if(options.session) { + delete options.session; + options.session = NULL; + } + if(options.scene) { + delete options.scene; + options.scene = NULL; + } + + if(options.session_params.background && !options.quiet) { + session_print("Finished Rendering."); + printf("\n"); + } +} + +static void display_info(Progress& progress) +{ + static double latency = 0.0; + static double last = 0; + double elapsed = time_dt(); + string str; + + latency = (elapsed - last); + last = elapsed; + + int pass; + double total_time, pass_time; + string status, substatus; + + progress.get_pass(pass, total_time, pass_time); + progress.get_status(status, substatus); + + if(substatus != "") + status += ": " + substatus; + + str = string_printf("latency: %.4f pass: %d total: %.4f average: %.4f %s", + latency, pass, total_time, pass_time, status.c_str()); + + view_display_info(str.c_str()); +} + +static void display() +{ + options.session->draw(options.width, options.height); + + display_info(options.session->progress); +} + +static void resize(int width, int height) +{ + options.width= width; + options.height= height; + + if(options.session) + options.session->reset(options.width, options.height); +} + +void keyboard(unsigned char key) +{ + if(key == 'r') + options.session->reset(options.width, options.height); + else if(key == 27) // escape + options.session->progress.set_cancel("Cancelled"); +} + +static int files_parse(int argc, const char *argv[]) +{ + if(argc > 0) + options.filepath = argv[0]; + + return 0; +} + +static void options_parse(int argc, const char **argv) +{ + options.width= 1024; + options.height= 512; + options.filepath = path_get("../../../test/models/elephants.xml"); + options.session = NULL; + options.quiet = false; + + /* devices */ + string devices = ""; + string devicename = "cpu"; + + vector types = Device::available_types(); + + foreach(DeviceType type, types) { + if(devices != "") + devices += ", "; + + devices += Device::string_from_type(type); + } + + /* shading system */ + string ssname = "svm"; + string shadingsystems = "Shading system to use: svm"; + +#ifdef WITH_OSL + shadingsystems += ", osl"; +#endif + + /* parse options */ + ArgParse ap; + bool help = false; + + ap.options ("Usage: cycles_test [options] file.xml", + "%*", files_parse, "", + "--device %s", &devicename, ("Devices to use: " + devices).c_str(), + "--shadingsys %s", &ssname, "Shading system to use: svm, osl", + "--background", &options.session_params.background, "Render in background, without user interface", + "--quiet", &options.quiet, "In background mode, don't print progress messages", + "--passes %d", &options.session_params.passes, "Number of passes to render", + "--output %s", &options.session_params.output_path, "File path to write output image", + "--help", &help, "Print help message", + NULL); + + if(ap.parse(argc, argv) < 0) { + fprintf(stderr, "%s\n", ap.error_message().c_str()); + ap.usage(); + exit(EXIT_FAILURE); + } + else if(help || options.filepath == "") { + ap.usage(); + exit(EXIT_SUCCESS); + } + + options.session_params.device_type = Device::type_from_string(devicename.c_str()); + + if(ssname == "osl") + options.scene_params.shadingsystem = SceneParams::OSL; + else if(ssname == "svm") + options.scene_params.shadingsystem = SceneParams::SVM; + + /* handle invalid configurations */ + bool type_available = false; + + foreach(DeviceType dtype, types) + if(options.session_params.device_type == dtype) + type_available = true; + + if(options.session_params.device_type == DEVICE_NONE || !type_available) { + fprintf(stderr, "Unknown device: %s\n", devicename.c_str()); + exit(EXIT_FAILURE); + } +#ifdef WITH_OSL + else if(!(ssname == "osl" || ssname == "svm")) { +#else + else if(!(ssname == "svm")) { +#endif + fprintf(stderr, "Unknown shading system: %s\n", ssname.c_str()); + exit(EXIT_FAILURE); + } + else if(options.scene_params.shadingsystem == SceneParams::OSL && options.session_params.device_type != DEVICE_CPU) { + fprintf(stderr, "OSL shading system only works with CPU device\n"); + exit(EXIT_FAILURE); + } + else if(options.session_params.passes < 0) { + fprintf(stderr, "Invalid number of passes: %d\n", options.session_params.passes); + exit(EXIT_FAILURE); + } + else if(options.filepath == "") { + fprintf(stderr, "No file path specified\n"); + exit(EXIT_FAILURE); + } + + /* load scene */ + scene_init(); +} + +CCL_NAMESPACE_END + +using namespace ccl; + +int main(int argc, const char **argv) +{ + path_init(); + + options_parse(argc, argv); + + if(options.session_params.background) { + session_init(); + options.session->wait(); + session_exit(); + } + else { + string title = "Cycles: " + path_filename(options.filepath); + + /* init/exit are callback so they run while GL is initialized */ + view_main_loop(title.c_str(), options.width, options.height, + session_init, session_exit, resize, display, keyboard); + } + + return 0; +} + diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp new file mode 100644 index 00000000000..0e80cd80ece --- /dev/null +++ b/intern/cycles/app/cycles_xml.cpp @@ -0,0 +1,936 @@ +/* + * 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 + +#include +#include +#include + +#include "camera.h" +#include "film.h" +#include "graph.h" +#include "integrator.h" +#include "light.h" +#include "mesh.h" +#include "nodes.h" +#include "object.h" +#include "shader.h" +#include "scene.h" + +#include "subd_mesh.h" +#include "subd_patch.h" +#include "subd_split.h" + +#include "util_debug.h" +#include "util_foreach.h" +#include "util_path.h" +#include "util_transform.h" +#include "util_xml.h" + +#include "cycles_xml.h" + +CCL_NAMESPACE_BEGIN + +/* XML reading state */ + +struct XMLReadState { + Scene *scene; /* scene pointer */ + Transform tfm; /* current transform state */ + bool smooth; /* smooth normal state */ + int shader; /* current shader */ + string base; /* base path to current file*/ + float dicing_rate; /* current dicing rate */ + Mesh::DisplacementMethod displacement_method; +}; + +/* Attribute Reading */ + +static bool xml_read_bool(bool *value, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + *value = (string_iequals(attr.value(), "true")) || (atoi(attr.value()) != 0); + return true; + } + + return false; +} + +static bool xml_read_int(int *value, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + *value = atoi(attr.value()); + return true; + } + + return false; +} + +static bool xml_read_int_array(vector& value, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + vector tokens; + string_split(tokens, attr.value()); + + foreach(const string& token, tokens) + value.push_back(atoi(token.c_str())); + + return true; + } + + return false; +} + +static bool xml_read_float(float *value, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + *value = atof(attr.value()); + return true; + } + + return false; +} + +static bool xml_read_float_array(vector& value, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + vector tokens; + string_split(tokens, attr.value()); + + foreach(const string& token, tokens) + value.push_back(atof(token.c_str())); + + return true; + } + + return false; +} + +static bool xml_read_float3(float3 *value, pugi::xml_node node, const char *name) +{ + vector array; + + if(xml_read_float_array(array, node, name) && array.size() == 3) { + *value = make_float3(array[0], array[1], array[2]); + return true; + } + + return false; +} + +static bool xml_read_float3_array(vector& value, pugi::xml_node node, const char *name) +{ + vector array; + + if(xml_read_float_array(array, node, name)) { + for(size_t i = 0; i < array.size(); i += 3) + value.push_back(make_float3(array[i+0], array[i+1], array[i+2])); + + return true; + } + + return false; +} + +static bool xml_read_float4(float4 *value, pugi::xml_node node, const char *name) +{ + vector array; + + if(xml_read_float_array(array, node, name) && array.size() == 4) { + *value = make_float4(array[0], array[1], array[2], array[3]); + return true; + } + + return false; +} + +static bool xml_read_string(string *str, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + *str = attr.value(); + return true; + } + + return false; +} + +static bool xml_read_ustring(ustring *str, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + *str = ustring(attr.value()); + return true; + } + + return false; +} + +static bool xml_equal_string(pugi::xml_node node, const char *name, const char *value) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) + return string_iequals(attr.value(), value); + + return false; +} + +static bool xml_read_enum(ustring *str, ShaderEnum& enm, pugi::xml_node node, const char *name) +{ + pugi::xml_attribute attr = node.attribute(name); + + if(attr) { + ustring ustr(attr.value()); + + if(enm.exists(ustr)) { + *str = ustr; + return true; + } + else + fprintf(stderr, "Unknown value \"%s\" for attribute \"%s\".\n", ustr.c_str(), name); + } + + return false; +} + +/* Film */ + +static void xml_read_film(const XMLReadState& state, pugi::xml_node node) +{ + Camera *cam = state.scene->camera; + + xml_read_int(&cam->width, node, "width"); + xml_read_int(&cam->height, node, "height"); + + float aspect = (float)cam->width/(float)cam->height; + + if(cam->width >= cam->height) { + cam->left = -aspect; + cam->right = aspect; + cam->bottom = -1.0f; + cam->top = 1.0f; + } + else { + cam->left = -1.0f; + cam->right = 1.0f; + cam->bottom = -1.0f/aspect; + cam->top = 1.0f/aspect; + } + + cam->need_update = true; + cam->update(); +} + +/* Integrator */ + +static void xml_read_integrator(const XMLReadState& state, pugi::xml_node node) +{ + Integrator *integrator = state.scene->integrator; + + xml_read_int(&integrator->minbounce, node, "min_bounce"); + xml_read_int(&integrator->maxbounce, node, "max_bounce"); + xml_read_bool(&integrator->no_caustics, node, "no_caustics"); + xml_read_float(&integrator->blur_caustics, node, "blur_caustics"); +} + +/* Camera */ + +static void xml_read_camera(const XMLReadState& state, pugi::xml_node node) +{ + Camera *cam = state.scene->camera; + + if(xml_read_float(&cam->fov, node, "fov")) + cam->fov *= M_PI/180.0f; + + xml_read_float(&cam->nearclip, node, "nearclip"); + xml_read_float(&cam->farclip, node, "farclip"); + xml_read_float(&cam->lensradius, node, "lensradius"); // 0.5*focallength/fstop + xml_read_float(&cam->focaldistance, node, "focaldistance"); + xml_read_float(&cam->shutteropen, node, "shutteropen"); + xml_read_float(&cam->shutterclose, node, "shutterclose"); + + if(xml_equal_string(node, "type", "orthographic")) + cam->ortho = true; + else if(xml_equal_string(node, "type", "perspective")) + cam->ortho = false; + + cam->matrix = state.tfm; + + cam->need_update = true; + cam->update(); +} + +/* Shader */ + +static string xml_socket_name(const char *name) +{ + string sname = name; + size_t i; + + while((i = sname.find(" ")) != string::npos) + sname.replace(i, 1, ""); + + return sname; +} + +static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pugi::xml_node graph_node) +{ + ShaderGraph *graph = new ShaderGraph(); + + map nodemap; + + nodemap["output"] = graph->output(); + + for(pugi::xml_node node = graph_node.first_child(); node; node = node.next_sibling()) { + ShaderNode *snode = NULL; + + if(string_iequals(node.name(), "image_texture")) { + ImageTextureNode *img = new ImageTextureNode(); + + xml_read_string(&img->filename, node, "src"); + img->filename = path_join(state.base, img->filename); + + snode = img; + } + else if(string_iequals(node.name(), "environment_texture")) { + EnvironmentTextureNode *env = new EnvironmentTextureNode(); + + xml_read_string(&env->filename, node, "src"); + env->filename = path_join(state.base, env->filename); + + snode = env; + } + else if(string_iequals(node.name(), "sky_texture")) { + SkyTextureNode *sky = new SkyTextureNode(); + + xml_read_float3(&sky->sun_direction, node, "sun_direction"); + xml_read_float(&sky->turbidity, node, "turbidity"); + + snode = sky; + } + else if(string_iequals(node.name(), "noise_texture")) { + snode = new NoiseTextureNode(); + } + else if(string_iequals(node.name(), "blend_texture")) { + BlendTextureNode *blend = new BlendTextureNode(); + xml_read_enum(&blend->progression, BlendTextureNode::progression_enum, node, "progression"); + xml_read_enum(&blend->axis, BlendTextureNode::axis_enum, node, "axis"); + snode = blend; + } + else if(string_iequals(node.name(), "clouds_texture")) { + CloudsTextureNode *clouds = new CloudsTextureNode(); + xml_read_bool(&clouds->hard, node, "hard"); + xml_read_int(&clouds->depth, node, "depth"); + xml_read_enum(&clouds->basis, CloudsTextureNode::basis_enum, node, "basis"); + snode = clouds; + } + else if(string_iequals(node.name(), "voronoi_texture")) { + VoronoiTextureNode *voronoi = new VoronoiTextureNode(); + xml_read_enum(&voronoi->distance_metric, VoronoiTextureNode::distance_metric_enum, node, "distance_metric"); + xml_read_enum(&voronoi->coloring, VoronoiTextureNode::coloring_enum, node, "coloring"); + snode = voronoi; + } + else if(string_iequals(node.name(), "musgrave_texture")) { + MusgraveTextureNode *musgrave = new MusgraveTextureNode(); + xml_read_enum(&musgrave->type, MusgraveTextureNode::type_enum, node, "type"); + xml_read_enum(&musgrave->basis, MusgraveTextureNode::basis_enum, node, "basis"); + snode = musgrave; + } + else if(string_iequals(node.name(), "marble_texture")) { + MarbleTextureNode *marble = new MarbleTextureNode(); + xml_read_enum(&marble->type, MarbleTextureNode::type_enum, node, "type"); + xml_read_enum(&marble->wave, MarbleTextureNode::wave_enum, node, "wave"); + xml_read_enum(&marble->basis, MarbleTextureNode::basis_enum, node, "basis"); + xml_read_bool(&marble->hard, node, "hard"); + xml_read_int(&marble->depth, node, "depth"); + snode = marble; + } + else if(string_iequals(node.name(), "magic_texture")) { + MagicTextureNode *magic = new MagicTextureNode(); + xml_read_int(&magic->depth, node, "depth"); + snode = magic; + } + else if(string_iequals(node.name(), "stucci_texture")) { + StucciTextureNode *stucci = new StucciTextureNode(); + xml_read_enum(&stucci->type, StucciTextureNode::type_enum, node, "type"); + xml_read_enum(&stucci->basis, StucciTextureNode::basis_enum, node, "basis"); + xml_read_bool(&stucci->hard, node, "hard"); + snode = stucci; + } + else if(string_iequals(node.name(), "distorted_noise_texture")) { + DistortedNoiseTextureNode *dist = new DistortedNoiseTextureNode(); + xml_read_enum(&dist->basis, DistortedNoiseTextureNode::basis_enum, node, "basis"); + xml_read_enum(&dist->distortion_basis, DistortedNoiseTextureNode::basis_enum, node, "distortion_basis"); + snode = dist; + } + else if(string_iequals(node.name(), "wood_texture")) { + WoodTextureNode *wood = new WoodTextureNode(); + xml_read_enum(&wood->type, WoodTextureNode::type_enum, node, "type"); + xml_read_enum(&wood->wave, WoodTextureNode::wave_enum, node, "wave"); + xml_read_enum(&wood->basis, WoodTextureNode::basis_enum, node, "basis"); + xml_read_bool(&wood->hard, node, "hard"); + snode = wood; + } + else if(string_iequals(node.name(), "mapping")) { + snode = new MappingNode(); + } + else if(string_iequals(node.name(), "ward_bsdf")) { + snode = new WardBsdfNode(); + } + else if(string_iequals(node.name(), "diffuse_bsdf")) { + snode = new DiffuseBsdfNode(); + } + else if(string_iequals(node.name(), "translucent_bsdf")) { + snode = new TranslucentBsdfNode(); + } + else if(string_iequals(node.name(), "transparent_bsdf")) { + snode = new TransparentBsdfNode(); + } + else if(string_iequals(node.name(), "velvet_bsdf")) { + snode = new VelvetBsdfNode(); + } + else if(string_iequals(node.name(), "glossy_bsdf")) { + GlossyBsdfNode *glossy = new GlossyBsdfNode(); + xml_read_enum(&glossy->distribution, GlossyBsdfNode::distribution_enum, node, "distribution"); + snode = glossy; + } + else if(string_iequals(node.name(), "glass_bsdf")) { + GlassBsdfNode *diel = new GlassBsdfNode(); + xml_read_enum(&diel->distribution, GlassBsdfNode::distribution_enum, node, "distribution"); + snode = diel; + } + else if(string_iequals(node.name(), "emission")) { + EmissionNode *emission = new EmissionNode(); + xml_read_bool(&emission->total_power, node, "total_power"); + snode = emission; + } + else if(string_iequals(node.name(), "background")) { + snode = new BackgroundNode(); + } + else if(string_iequals(node.name(), "geometry")) { + snode = new GeometryNode(); + } + else if(string_iequals(node.name(), "texture_coordinate")) { + snode = new TextureCoordinateNode(); + } + else if(string_iequals(node.name(), "lightPath")) { + snode = new LightPathNode(); + } + else if(string_iequals(node.name(), "value")) { + ValueNode *value = new ValueNode(); + xml_read_float(&value->value, node, "value"); + snode = value; + } + else if(string_iequals(node.name(), "color")) { + ColorNode *color = new ColorNode(); + xml_read_float3(&color->value, node, "value"); + snode = color; + } + else if(string_iequals(node.name(), "mix_closure")) { + snode = new MixClosureNode(); + } + else if(string_iequals(node.name(), "add_closure")) { + snode = new AddClosureNode(); + } + else if(string_iequals(node.name(), "mix")) { + MixNode *mix = new MixNode(); + xml_read_enum(&mix->type, MixNode::type_enum, node, "type"); + snode = mix; + } + else if(string_iequals(node.name(), "attribute")) { + AttributeNode *attr = new AttributeNode(); + xml_read_ustring(&attr->attribute, node, "attribute"); + snode = attr; + } + else if(string_iequals(node.name(), "fresnel")) { + snode = new FresnelNode(); + } + else if(string_iequals(node.name(), "math")) { + MathNode *math = new MathNode(); + xml_read_enum(&math->type, MathNode::type_enum, node, "type"); + snode = math; + } + else if(string_iequals(node.name(), "vector_math")) { + VectorMathNode *vmath = new VectorMathNode(); + xml_read_enum(&vmath->type, VectorMathNode::type_enum, node, "type"); + snode = vmath; + } + else if(string_iequals(node.name(), "connect")) { + /* connect nodes */ + vector from_tokens, to_tokens; + + string_split(from_tokens, node.attribute("from").value()); + string_split(to_tokens, node.attribute("to").value()); + + if(from_tokens.size() == 2 && to_tokens.size() == 2) { + /* find nodes and sockets */ + ShaderOutput *output = NULL; + ShaderInput *input = NULL; + + if(nodemap.find(from_tokens[0]) != nodemap.end()) { + ShaderNode *fromnode = nodemap[from_tokens[0]]; + + foreach(ShaderOutput *out, fromnode->outputs) + if(string_iequals(xml_socket_name(out->name), from_tokens[1])) + output = out; + + if(!output) + fprintf(stderr, "Unknown output socket name \"%s\" on \"%s\".\n", from_tokens[1].c_str(), from_tokens[0].c_str()); + } + else + fprintf(stderr, "Unknown shader node name \"%s\".\n", from_tokens[0].c_str()); + + if(nodemap.find(to_tokens[0]) != nodemap.end()) { + ShaderNode *tonode = nodemap[to_tokens[0]]; + + foreach(ShaderInput *in, tonode->inputs) + if(string_iequals(xml_socket_name(in->name), to_tokens[1])) + input = in; + + if(!input) + fprintf(stderr, "Unknown input socket name \"%s\" on \"%s\".\n", to_tokens[1].c_str(), to_tokens[0].c_str()); + } + else + fprintf(stderr, "Unknown shader node name \"%s\".\n", to_tokens[0].c_str()); + + /* connect */ + if(output && input) + graph->connect(output, input); + } + else + fprintf(stderr, "Invalid from or to value for connect node.\n"); + } + else + fprintf(stderr, "Unknown shader node \"%s\".\n", node.name()); + + if(snode) { + /* add to graph */ + graph->add(snode); + + /* add to map for name lookups */ + string name = ""; + xml_read_string(&name, node, "name"); + + nodemap[name] = snode; + + /* read input values */ + for(pugi::xml_attribute attr = node.first_attribute(); attr; attr = attr.next_attribute()) { + foreach(ShaderInput *in, snode->inputs) { + if(string_iequals(in->name, attr.name())) { + switch(in->type) { + case SHADER_SOCKET_FLOAT: + xml_read_float(&in->value.x, node, attr.name()); + break; + case SHADER_SOCKET_COLOR: + case SHADER_SOCKET_VECTOR: + case SHADER_SOCKET_POINT: + case SHADER_SOCKET_NORMAL: + xml_read_float3(&in->value, node, attr.name()); + break; + default: + break; + } + } + } + } + } + } + + shader->set_graph(graph); + shader->tag_update(state.scene); +} + +static void xml_read_shader(const XMLReadState& state, pugi::xml_node node) +{ + Shader *shader = new Shader(); + xml_read_string(&shader->name, node, "name"); + xml_read_shader_graph(state, shader, node); + state.scene->shaders.push_back(shader); +} + +/* Background */ + +static void xml_read_background(const XMLReadState& state, pugi::xml_node node) +{ + Shader *shader = state.scene->shaders[state.scene->default_background]; + + xml_read_shader_graph(state, shader, node); +} + +/* Mesh */ + +static Mesh *xml_add_mesh(Scene *scene, const Transform& tfm) +{ + /* create mesh */ + Mesh *mesh = new Mesh(); + scene->meshes.push_back(mesh); + + /* create object*/ + Object *object = new Object(); + object->mesh = mesh; + object->tfm = tfm; + scene->objects.push_back(object); + + return mesh; +} + +static void xml_read_mesh(const XMLReadState& state, pugi::xml_node node) +{ + /* add mesh */ + Mesh *mesh = xml_add_mesh(state.scene, state.tfm); + mesh->used_shaders.push_back(state.shader); + + /* read state */ + int shader = state.shader; + bool smooth = state.smooth; + + mesh->displacement_method = state.displacement_method; + + /* read vertices and polygons, RIB style */ + vector P; + vector verts, nverts; + + xml_read_float3_array(P, node, "P"); + xml_read_int_array(verts, node, "verts"); + xml_read_int_array(nverts, node, "nverts"); + + if(xml_equal_string(node, "subdivision", "catmull-clark")) { + /* create subd mesh */ + SubdMesh sdmesh; + + /* create subd vertices */ + for(size_t i = 0; i < P.size(); i++) + sdmesh.add_vert(P[i]); + + /* create subd faces */ + int index_offset = 0; + + for(size_t i = 0; i < nverts.size(); i++) { + if(nverts[i] == 4) { + int v0 = verts[index_offset + 0]; + int v1 = verts[index_offset + 1]; + int v2 = verts[index_offset + 2]; + int v3 = verts[index_offset + 3]; + + sdmesh.add_face(v0, v1, v2, v3); + } + else { + for(int j = 0; j < nverts[i]-2; j++) { + int v0 = verts[index_offset]; + int v1 = verts[index_offset + j + 1]; + int v2 = verts[index_offset + j + 2];; + + sdmesh.add_face(v0, v1, v2); + } + } + + index_offset += nverts[i]; + } + + /* finalize subd mesh */ + sdmesh.link_boundary(); + + /* subdivide */ + DiagSplit dsplit; + //dsplit.camera = state.scene->camera; + //dsplit.dicing_rate = 5.0f; + dsplit.dicing_rate = state.dicing_rate; + xml_read_float(&dsplit.dicing_rate, node, "dicing_rate"); + sdmesh.tesselate(&dsplit, false, mesh, shader, smooth); + } + else { + /* create vertices */ + mesh->verts = P; + + /* create triangles */ + int index_offset = 0; + + for(size_t i = 0; i < nverts.size(); i++) { + for(int j = 0; j < nverts[i]-2; j++) { + int v0 = verts[index_offset]; + int v1 = verts[index_offset + j + 1]; + int v2 = verts[index_offset + j + 2]; + + assert(v0 < (int)P.size()); + assert(v1 < (int)P.size()); + assert(v2 < (int)P.size()); + + mesh->add_triangle(v0, v1, v2, shader, smooth); + } + + index_offset += nverts[i]; + } + } + + /* temporary for test compatibility */ + mesh->attributes.remove(Attribute::STD_VERTEX_NORMAL); +} + +/* Patch */ + +static void xml_read_patch(const XMLReadState& state, pugi::xml_node node) +{ + /* read patch */ + Patch *patch = NULL; + + vector P; + xml_read_float3_array(P, node, "P"); + + if(xml_equal_string(node, "type", "bilinear")) { + /* bilinear patch */ + if(P.size() == 4) { + LinearQuadPatch *bpatch = new LinearQuadPatch(); + + for(int i = 0; i < 4; i++) + P[i] = transform(&state.tfm, P[i]); + memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull)); + + patch = bpatch; + } + else + fprintf(stderr, "Invalid number of control points for bilinear patch.\n"); + } + else if(xml_equal_string(node, "type", "bicubic")) { + /* bicubic patch */ + if(P.size() == 16) { + BicubicPatch *bpatch = new BicubicPatch(); + + for(int i = 0; i < 16; i++) + P[i] = transform(&state.tfm, P[i]); + memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull)); + + patch = bpatch; + } + else + fprintf(stderr, "Invalid number of control points for bicubic patch.\n"); + } + else + fprintf(stderr, "Unknown patch type.\n"); + + if(patch) { + /* add mesh */ + Mesh *mesh = xml_add_mesh(state.scene, transform_identity()); + + mesh->used_shaders.push_back(state.shader); + + /* split */ + DiagSplit dsplit; + //dsplit.camera = state.scene->camera; + //dsplit.dicing_rate = 5.0f; + dsplit.dicing_rate = state.dicing_rate; + xml_read_float(&dsplit.dicing_rate, node, "dicing_rate"); + dsplit.split_quad(mesh, patch, state.shader, state.smooth); + + delete patch; + + /* temporary for test compatibility */ + mesh->attributes.remove(Attribute::STD_VERTEX_NORMAL); + } +} + +/* Light */ + +static void xml_read_light(const XMLReadState& state, pugi::xml_node node) +{ + Light *light = new Light(); + light->shader = state.shader; + xml_read_float3(&light->co, node, "P"); + light->co = transform(&state.tfm, light->co); + + state.scene->lights.push_back(light); +} + +/* Transform */ + +static void xml_read_transform(pugi::xml_node node, Transform& tfm) +{ + if(node.attribute("matrix")) { + vector matrix; + if(xml_read_float_array(matrix, node, "matrix") && matrix.size() == 16) + tfm = tfm * transform_transpose((*(Transform*)&matrix[0])); + } + + if(node.attribute("translate")) { + float3 translate = make_float3(0.0f, 0.0f, 0.0f); + xml_read_float3(&translate, node, "translate"); + tfm = tfm * transform_translate(translate); + } + + if(node.attribute("rotate")) { + float4 rotate = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + xml_read_float4(&rotate, node, "rotate"); + tfm = tfm * transform_rotate(rotate.x*M_PI/180.0f, make_float3(rotate.y, rotate.z, rotate.w)); + } + + if(node.attribute("scale")) { + float3 scale = make_float3(0.0f, 0.0f, 0.0f); + xml_read_float3(&scale, node, "scale"); + tfm = tfm * transform_scale(scale); + } +} + +/* State */ + +static void xml_read_state(XMLReadState& state, pugi::xml_node node) +{ + /* read shader */ + string shadername; + + if(xml_read_string(&shadername, node, "shader")) { + int i = 0; + bool found = false; + + foreach(Shader *shader, state.scene->shaders) { + if(shader->name == shadername) { + state.shader = i; + found = true; + break; + } + + i++; + } + + if(!found) + fprintf(stderr, "Unknown shader \"%s\".\n", shadername.c_str()); + } + + xml_read_float(&state.dicing_rate, node, "dicing_rate"); + + /* read smooth/flat */ + if(xml_equal_string(node, "interpolation", "smooth")) + state.smooth = true; + else if(xml_equal_string(node, "interpolation", "flat")) + state.smooth = false; + + /* read displacement method */ + if(xml_equal_string(node, "displacement_method", "true")) + state.displacement_method = Mesh::DISPLACE_TRUE; + else if(xml_equal_string(node, "displacement_method", "bump")) + state.displacement_method = Mesh::DISPLACE_BUMP; + else if(xml_equal_string(node, "displacement_method", "both")) + state.displacement_method = Mesh::DISPLACE_BOTH; +} + +/* Scene */ + +static void xml_read_include(const XMLReadState& state, const string& src); + +static void xml_read_scene(const XMLReadState& state, pugi::xml_node scene_node) +{ + for(pugi::xml_node node = scene_node.first_child(); node; node = node.next_sibling()) { + if(string_iequals(node.name(), "film")) { + xml_read_film(state, node); + } + else if(string_iequals(node.name(), "integrator")) { + xml_read_integrator(state, node); + } + else if(string_iequals(node.name(), "camera")) { + xml_read_camera(state, node); + } + else if(string_iequals(node.name(), "shader")) { + xml_read_shader(state, node); + } + else if(string_iequals(node.name(), "background")) { + xml_read_background(state, node); + } + else if(string_iequals(node.name(), "mesh")) { + xml_read_mesh(state, node); + } + else if(string_iequals(node.name(), "patch")) { + xml_read_patch(state, node); + } + else if(string_iequals(node.name(), "light")) { + xml_read_light(state, node); + } + else if(string_iequals(node.name(), "transform")) { + XMLReadState substate = state; + + xml_read_transform(node, substate.tfm); + xml_read_scene(substate, node); + } + else if(string_iequals(node.name(), "state")) { + XMLReadState substate = state; + + xml_read_state(substate, node); + xml_read_scene(substate, node); + } + else if(string_iequals(node.name(), "include")) { + string src; + + if(xml_read_string(&src, node, "src")) + xml_read_include(state, src); + } + else + fprintf(stderr, "Unknown node \"%s\".\n", node.name()); + } +} + +/* Include */ + +static void xml_read_include(const XMLReadState& state, const string& src) +{ + /* open XML document */ + pugi::xml_document doc; + pugi::xml_parse_result parse_result; + + string path = path_join(state.base, src); + parse_result = doc.load_file(path.c_str()); + + if(parse_result) { + XMLReadState substate = state; + substate.base = path_dirname(path); + + xml_read_scene(substate, doc); + } + else + fprintf(stderr, "%s read error: %s\n", src.c_str(), parse_result.description()); +} + +/* File */ + +void xml_read_file(Scene *scene, const char *filepath) +{ + XMLReadState state; + + state.scene = scene; + state.tfm = transform_identity(); + state.shader = scene->default_surface; + state.smooth = false; + state.dicing_rate = 0.1f; + state.base = path_dirname(filepath); + + xml_read_include(state, path_filename(filepath)); + + scene->params.bvh_type = SceneParams::BVH_STATIC; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/app/cycles_xml.h b/intern/cycles/app/cycles_xml.h new file mode 100644 index 00000000000..90ec52922e1 --- /dev/null +++ b/intern/cycles/app/cycles_xml.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 __CYCLES_XML__ +#define __CYCLES_XML__ + +CCL_NAMESPACE_BEGIN + +class Scene; + +void xml_read_file(Scene *scene, const char *filepath); + +CCL_NAMESPACE_END + +#endif /* __CYCLES_XML__ */ + diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt new file mode 100644 index 00000000000..a75f7295e31 --- /dev/null +++ b/intern/cycles/blender/CMakeLists.txt @@ -0,0 +1,72 @@ + +SET(sources + blender_camera.cpp + blender_mesh.cpp + blender_object.cpp + blender_python.cpp + blender_session.cpp + blender_shader.cpp + blender_sync.cpp) + +SET(headers + blender_sync.h + blender_session.h + blender_util.h) + +SET(addonfiles + addon/__init__.py + addon/engine.py + addon/enums.py + addon/properties.py + addon/ui.py + addon/xml.py) + +INCLUDE_DIRECTORIES( + ../render + ../device + ../kernel + ../kernel/svm + ../util + ../subd + ${BLENDER_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS}) + +SET(LIBRARIES + render + bvh + device + kernel + util + subd + ${Boost_LIBRARIES} + ${OPENGL_LIBRARIES} + ${OPENIMAGEIO_LIBRARY} + ${PYTHON_LIBRARIES} + ${GLUT_LIBRARIES} + ${GLEW_LIBRARIES} + ${BLENDER_LIBRARIES}) + +IF(WITH_OSL) + LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) +ENDIF(WITH_OSL) + +IF(WITH_PARTIO) + LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) +ENDIF(WITH_PARTIO) + +IF(WITH_OPENCL) + LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) +ENDIF(WITH_OPENCL) + +SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) + +ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) +TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) + +INSTALL(FILES ${addonfiles} DESTINATION ${INSTALL_PATH}/cycles) +INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${INSTALL_PATH}/cycles) + +IF(UNIX AND NOT APPLE) + SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) +ENDIF() + diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py new file mode 100644 index 00000000000..0a2e5cee142 --- /dev/null +++ b/intern/cycles/blender/addon/__init__.py @@ -0,0 +1,73 @@ +# +# 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. +# + +bl_info = { + "name": "Cycles Render Engine", + "author": "", + "version": (0,0), + "blender": (2, 5, 6), + "api": 34462, + "location": "Info header, render engine menu", + "description": "Cycles Render Engine integration.", + "warning": "", + "wiki_url": "", + "tracker_url": "", + "category": "Render"} + +import bpy + +from cycles import ui +from cycles import properties +from cycles import xml +from cycles import engine + +class CyclesRender(bpy.types.RenderEngine): + bl_idname = 'CYCLES' + bl_label = "Cycles" + + def __init__(self): + engine.init() + self.session = None + + def __del__(self): + engine.free(self) + + def render(self, scene): + engine.create(self, scene, True) + engine.render(self, scene) + + def draw(self, scene): + if not self.session: + engine.create(self, scene, False) + engine.draw(self, scene) + + def update(self, scene): + engine.update(self, scene) + +def register(): + properties.register() + ui.register() + xml.register() + bpy.utils.register_module(__name__) + +def unregister(): + xml.unregister() + ui.unregister() + properties.unregister() + bpy.utils.unregister_module(__name__) + diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py new file mode 100644 index 00000000000..fb98068766f --- /dev/null +++ b/intern/cycles/blender/addon/engine.py @@ -0,0 +1,107 @@ +# +# 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. +# + +import bpy + +def init(): + from cycles import libcycles_blender as lib + import os.path + lib.init(os.path.dirname(__file__)) + +def create(engine, scene, offline): + from cycles import libcycles_blender as lib + data = bpy.data.as_pointer() + scene = scene.as_pointer() + + if not offline and bpy.context.area.type == 'VIEW_3D': + region = bpy.context.region.as_pointer() + v3d = bpy.context.space_data.as_pointer() + rv3d = bpy.context.region_data.as_pointer() + else: + region = 0 + v3d = 0 + rv3d = 0 + + engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d) + +def free(engine): + if "session" in dir(engine): + if engine.session: + from cycles import libcycles_blender as lib + lib.free(engine.session) + del engine.session + +def render(engine, scene): + from cycles import libcycles_blender as lib + lib.render(engine.session) + +def update(engine, scene): + from cycles import libcycles_blender as lib + lib.sync(engine.session) + +def draw(engine, scene): + from cycles import libcycles_blender as lib + v3d = bpy.context.space_data.as_pointer() + rv3d = bpy.context.region_data.as_pointer() + region = bpy.context.region + + # draw render image + status, substatus = lib.draw(engine.session, v3d, rv3d) + + # draw text over image + if status != "": + import blf + import bgl + + fontid = 0 # todo, find out how to set this + dim = blf.dimensions(fontid, status) + dim_sub = blf.dimensions(fontid, substatus) + + padding = 5 + + x = (region.width - max(dim[0], dim_sub[0]))*0.5 - padding + y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 - padding + + bgl.glColor4f(0.0, 0.0, 0.0, 0.5) + bgl.glEnable(bgl.GL_BLEND) + bgl.glBlendFunc(bgl.GL_SRC_ALPHA, bgl.GL_ONE_MINUS_SRC_ALPHA) + bgl.glRectf(x, y, x+max(dim[0], dim_sub[0])+padding+padding, y+dim[1]+dim_sub[1]+padding+padding+2) + bgl.glDisable(bgl.GL_BLEND) + + x = (region.width - dim[0])*0.5 + y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 + dim_sub[1] + padding + + bgl.glColor3f(0.8, 0.8, 0.8) + blf.position(fontid, x, y, 0) + blf.draw(fontid, status) + + x = (region.width - dim_sub[0])*0.5 + y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 + + bgl.glColor3f(0.6, 0.6, 0.6) + blf.position(fontid, x, y, 0) + blf.draw(fontid, substatus) + +def available_devices(): + from cycles import libcycles_blender as lib + return lib.available_devices() + +def with_osl(): + from cycles import libcycles_blender as lib + return lib.with_osl() + diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py new file mode 100644 index 00000000000..fd12fa6d5a5 --- /dev/null +++ b/intern/cycles/blender/addon/enums.py @@ -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. +# + +devices = ( +("CPU", "CPU", "Processor"), +("GPU", "GPU", "Graphics card (NVidia only)")) + +shading_systems = ( +("GPU_COMPATIBLE", "GPU Compatible", "Restricted shading system compatible with GPU rendering"), +("OSL", "Open Shading Language", "Open Shading Language shading system that only runs on the CPU")) + +displacement_methods = ( +("BUMP", "Bump", "Bump mapping to simulate the appearance of displacement"), +("TRUE", "True", "Use true displacement only, requires fine subdivision"), +("BOTH", "Both", "Combination of displacement and bump mapping")) + +bvh_types = ( +("DYNAMIC_BVH", "Dynamic BVH", "Objects can be individually updated, at the cost of slower render time"), +("STATIC_BVH", "Static BVH", "Any object modification requires a complete BVH rebuild, but renders faster")) + +response_curves = ( +("None", "None", ""), +("", "Agfa", ""), +("Agfacolor Futura 100", "Futura 100", ""), +("Agfacolor Futura 200", "Futura 200", ""), +("Agfacolor Futura 400", "Futura 400", ""), +("Agfacolor Futura II 100", "Futura II 100", ""), +("Agfacolor Futura II 200", "Futura II 200", ""), +("Agfacolor Futura II 400", "Futura II 400", ""), +("Agfacolor HDC 100 plus", "HDC 100 plus", ""), +("Agfacolor HDC 400 plus", "HDC 400 plus", ""), +("Agfacolor HDC 200 plus", "HDC 200 plus", ""), +("Agfacolor Optima II 100", "Optima II 100", ""), +("Agfacolor Optima II 200", "Optima II 200", ""), +("Agfacolor Ultra 050", "Ultra 050", ""), +("", "Agfa", ""), +("Agfacolor Vista 100", "Vista 100", ""), +("Agfacolor Vista 200", "Vista 200", ""), +("Agfacolor Vista 400", "Vista 400", ""), +("Agfacolor Vista 800", "Vista 800", ""), +("Agfachrome CT Precisa 100", "CT Precisa 100", ""), +("Agfachrome CT Precisa 200", "CT Precisa 200", ""), +("Agfachrome RSX2 050", "Agfachrome RSX2 050", ""), +("Agfachrome RSX2 100", "Agfachrome RSX2 100", ""), +("Agfachrome RSX2 200", "Agfachrome RSX2 200", ""), +("Advantix 100", "Advantix 100", ""), +("Advantix 200", "Advantix 200", ""), +("Advantix 400", "Advantix 400", ""), +("", "Kodak", ""), +("Gold 100", "Gold 100", ""), +("Gold 200", "Gold 200", ""), +("Max Zoom 800", "Max Zoom 800", ""), +("Portra 100T", "Portra 100T", ""), +("Portra 160NC", "Portra 160NC", ""), +("Portra 160VC", "Portra 160VC", ""), +("Portra 800", "Portra 800", ""), +("Portra 400VC", "Portra 400VC", ""), +("Portra 400NC", "Portra 400NC", ""), +("", "Kodak", ""), +("Ektachrome 100 plus", "Ektachrome 100 plus", ""), +("Ektachrome 320T", "Ektachrome 320T", ""), +("Ektachrome 400X", "Ektachrome 400X", ""), +("Ektachrome 64", "Ektachrome 64", ""), +("Ektachrome 64T", "Ektachrome 64T", ""), +("Ektachrome E100S", "Ektachrome E100S", ""), +("Ektachrome 100", "Ektachrome 100", ""), +("Kodachrome 200", "Kodachrome 200", ""), +("Kodachrome 25", "Kodachrome 25", ""), +("Kodachrome 64", "Kodachrome 64", ""), +#("DSCS 3151", "DSCS 3151", ""), +#("DSCS 3152", "DSCS 3152", ""), +#("DSCS 3153", "DSCS 3153", ""), +#("DSCS 3154", "DSCS 3154", ""), +#("DSCS 3155", "DSCS 3155", ""), +#("DSCS 3156", "DSCS 3156", ""), +#("KAI-0311", "KAI-0311", ""), +#("KAF-2001", "KAF-2001", ""), +#("KAF-3000", "KAF-3000", ""), +#("KAI-0372", "KAI-0372", ""), +#("KAI-1010", "KAI-1010", ""), +("", "Fujifilm", ""), +("F-125", "F-125", ""), +("F-250", "F-250", ""), +("F-400", "F-400", ""), +("FCI", "FCI", ""), +("FP2900Z", "FP2900Z", ""), +("", "Eastman", ""), +("Double X Neg 12min", "Double X Neg 12min", ""), +("Double X Neg 6min", "Double X Neg 6min", ""), +("Double X Neg 5min", "Double X Neg 5min", ""), +("Double X Neg 4min", "Double X Neg 4min", ""), +("", "Canon", ""), +("Optura 981111", "Optura 981111", ""), +("Optura 981113", "Optura 981113", ""), +("Optura 981114", "Optura 981114", ""), +("Optura 981111.SLRR", "Optura 981111.SLRR", "") +) + diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py new file mode 100644 index 00000000000..3ec0587d89c --- /dev/null +++ b/intern/cycles/blender/addon/properties.py @@ -0,0 +1,120 @@ +# +# 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. +# + +import bpy +from bpy.props import * + +from cycles import enums + +class CyclesRenderSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles Render Settings", description="Cycles Render Settings") + + cls.device = EnumProperty(name="Device", description="Device to use for rendering", + items=enums.devices, default="CPU") + + cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", + items=enums.shading_systems, default="GPU_COMPATIBLE") + + cls.passes = IntProperty(name="Passes", description="Number of passes to render", + default=10, min=1, max=2147483647) + cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces", + default=3, min=0, max=1024) + cls.max_bounces = IntProperty(name="Max Bounces", description="Maximum number of bounces", + default=8, min=0, max=1024) + cls.no_caustics = BoolProperty(name="No Caustics", description="Leave out caustics, resulting in a darker image with less noise", + default=False) + cls.blur_caustics = FloatProperty(name="Blur Caustics", description="Blur caustics to reduce noise", + default=0.0, min=0.0, max=1.0) + + cls.exposure = FloatProperty(name="Exposure", description="Image brightness scale", + default=1.0, min=0.0, max=10.0) + cls.response_curve = EnumProperty(name="Response Curve", description="Measured camera film response", + items=enums.response_curves, default="Advantix 400") + + cls.debug_tile_size = IntProperty(name="Tile Size", description="", + default=1024, min=1, max=4096) + cls.debug_min_size = IntProperty(name="Min Size", description="", + default=64, min=1, max=4096) + cls.debug_reset_timeout = FloatProperty(name="Reset timeout", description="", + default=0.1, min=0.01, max=10.0) + cls.debug_cancel_timeout = FloatProperty(name="Cancel timeout", description="", + default=0.1, min=0.01, max=10.0) + cls.debug_text_timeout = FloatProperty(name="Text timeout", description="", + default=1.0, min=0.01, max=10.0) + + cls.debug_bvh_type = EnumProperty(name="BVH Type", description="Choose between faster updates, or faster render", + items=enums.bvh_types, default="DYNAMIC_BVH") + cls.debug_use_spatial_splits = BoolProperty(name="Use Spatial Splits", description="Use BVH spatial splits: longer builder time, faster render", + default=False) + + @classmethod + def unregister(cls): + del bpy.types.Scene.cycles + +class CyclesCameraSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles Camera Settings") + + cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field", + default=0.0, min=0.0, max=10.0) + + @classmethod + def unregister(cls): + del bpy.types.Camera.cycles + +class CyclesMaterialSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles Material Settings") + + @classmethod + def unregister(cls): + del bpy.types.Material.cycles + +class CyclesMeshSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + + cls.displacement_method = EnumProperty(name="Displacement Method", description="Method to use for the displacement", + items=enums.displacement_methods, default="BUMP") + cls.use_subdivision = BoolProperty(name="Use Subdivision", description="Subdivide mesh for rendering", + default=False) + cls.dicing_rate = FloatProperty(name="Dicing Rate", description="", default=1.0, min=0.001, max=1000.0) + + @classmethod + def unregister(cls): + del bpy.types.Mesh.cycles + +def register(): + bpy.utils.register_class(CyclesRenderSettings) + bpy.utils.register_class(CyclesCameraSettings) + bpy.utils.register_class(CyclesMaterialSettings) + bpy.utils.register_class(CyclesMeshSettings) + +def unregister(): + bpy.utils.unregister_class(CyclesRenderSettings) + bpy.utils.unregister_class(CyclesCameraSettings) + bpy.utils.unregister_class(CyclesMaterialSettings) + bpy.utils.unregister_class(CyclesMeshSettings) + diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py new file mode 100644 index 00000000000..2c4f24db2c5 --- /dev/null +++ b/intern/cycles/blender/addon/ui.py @@ -0,0 +1,388 @@ +# +# 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. +# + +import bpy + +from cycles import enums +from cycles import engine + +class CyclesButtonsPanel(): + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "render" + + @classmethod + def poll(cls, context): + rd = context.scene.render + return rd.engine == 'CYCLES' + +class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Integrator" + + def draw(self, context): + layout = self.layout + + scene = context.scene + cycles = scene.cycles + + split = layout.split() + + col = split.column() + col.prop(cycles, "passes") + col.prop(cycles, "no_caustics") + + col = split.column() + col = col.column(align=True) + col.prop(cycles, "max_bounces") + col.prop(cycles, "min_bounces") + + #row = col.row() + #row.prop(cycles, "blur_caustics") + #row.active = not cycles.no_caustics + +class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Film" + + def draw(self, context): + layout = self.layout + + scene = context.scene + cycles = scene.cycles + + split = layout.split() + + split.prop(cycles, "exposure") + split.prop(cycles, "response_curve", text="") + +class CyclesRender_PT_debug(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Debug" + bl_options = {'DEFAULT_CLOSED'} + + def draw(self, context): + layout = self.layout + + scene = context.scene + cycles = scene.cycles + + split = layout.split() + + col = split.column() + + sub = col.column(align=True) + sub.prop(cycles, "debug_bvh_type", text="") + sub.prop(cycles, "debug_use_spatial_splits") + + sub = col.column(align=True) + sub.prop(cycles, "debug_tile_size") + sub.prop(cycles, "debug_min_size") + + col = split.column(align=True) + col.prop(cycles, "debug_cancel_timeout") + col.prop(cycles, "debug_reset_timeout") + col.prop(cycles, "debug_text_timeout") + +class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Post Processing" + bl_options = {'DEFAULT_CLOSED'} + + def draw(self, context): + layout = self.layout + + rd = context.scene.render + + split = layout.split() + + col = split.column() + col.prop(rd, "use_compositing") + col.prop(rd, "use_sequencer") + + col = split.column() + col.prop(rd, "dither_intensity", text="Dither", slider=True) + +class Cycles_PT_camera(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Cycles" + bl_context = "data" + + @classmethod + def poll(cls, context): + return context.camera + + def draw(self, context): + layout = self.layout + + camera = context.camera + cycles = camera.cycles + + layout.prop(cycles, "lens_radius") + +class Cycles_PT_context_material(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Surface" + bl_context = "material" + bl_options = {'HIDE_HEADER'} + + @classmethod + def poll(cls, context): + return (context.material or context.object) and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.material + ob = context.object + slot = context.material_slot + space = context.space_data + + if ob: + row = layout.row() + + row.template_list(ob, "material_slots", ob, "active_material_index", rows=2) + + col = row.column(align=True) + col.operator("object.material_slot_add", icon='ZOOMIN', text="") + col.operator("object.material_slot_remove", icon='ZOOMOUT', text="") + + col.menu("MATERIAL_MT_specials", icon='DOWNARROW_HLT', text="") + + if ob.mode == 'EDIT': + row = layout.row(align=True) + row.operator("object.material_slot_assign", text="Assign") + row.operator("object.material_slot_select", text="Select") + row.operator("object.material_slot_deselect", text="Deselect") + + split = layout.split(percentage=0.65) + + if ob: + split.template_ID(ob, "active_material", new="material.new") + row = split.row() + + if slot: + row.prop(slot, "link", text="") + else: + row.label() + elif mat: + split.template_ID(space, "pin_id") + split.separator() + +class Cycles_PT_mesh_displacement(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Displacement" + bl_context = "data" + + @classmethod + def poll(cls, context): + return context.mesh or context.curve or context.meta_ball + + def draw(self, context): + layout = self.layout + + mesh = context.mesh + curve = context.curve + mball = context.meta_ball + + if mesh: + cycles = mesh.cycles + elif curve: + cycles = curve.cycles + elif mball: + cycles = mball.cycles + + layout.prop(cycles, "displacement_method", text="Method") + layout.prop(cycles, "use_subdivision"); + layout.prop(cycles, "dicing_rate"); + +def find_node(material, nodetype): + if material and material.node_tree: + ntree = material.node_tree + + for node in ntree.nodes: + if type(node) is not bpy.types.NodeGroup and node.type == nodetype: + return node + + return None + +def find_node_input(node, name): + for input in node.inputs: + if input.name == name: + return input + + return None + +def panel_node_draw(layout, id, output_type, input_name): + if not id.node_tree: + layout.prop(id, "use_nodes") + return + + ntree = id.node_tree + + node = find_node(id, output_type) + if not node: + layout.label(text="No output node.") + + input = find_node_input(node, input_name) + layout.template_node_view(id, ntree, node, input); + +class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Surface" + bl_context = "data" + + @classmethod + def poll(cls, context): + return context.lamp and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.lamp + panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') + +class CyclesWorld_PT_surface(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Surface" + bl_context = "world" + + @classmethod + def poll(cls, context): + return context.world and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.world + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') + +class CyclesWorld_PT_volume(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Volume" + bl_context = "world" + + @classmethod + def poll(cls, context): + return context.world and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.active = False + + mat = context.world + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Volume') + +class CyclesMaterial_PT_surface(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Surface" + bl_context = "material" + + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') + +class CyclesMaterial_PT_volume(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Volume" + bl_context = "material" + + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.active = False + + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') + +class CyclesMaterial_PT_displacement(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Displacement" + bl_context = "material" + + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Displacement') + +class CyclesMaterial_PT_settings(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Settings" + bl_context = "material" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + # return context.material and CyclesButtonsPanel.poll(context) + return False + + def draw(self, context): + layout = self.layout + + mat = context.material + + row = layout.row() + row.label(text="Light Group:") + row.prop(mat, "light_group", text="") + +def draw_device(self, context): + scene = context.scene + layout = self.layout + + if scene.render.engine == "CYCLES": + cycles = scene.cycles + + if 'cuda' in engine.available_devices(): + layout.prop(cycles, "device") + if cycles.device == 'CPU' and engine.with_osl(): + layout.prop(cycles, "shading_system") + +def get_panels(): + return [ + bpy.types.RENDER_PT_render, + bpy.types.RENDER_PT_output, + bpy.types.RENDER_PT_encoding, + bpy.types.RENDER_PT_dimensions, + bpy.types.RENDER_PT_stamp, + bpy.types.WORLD_PT_context_world, + bpy.types.DATA_PT_context_mesh, + bpy.types.DATA_PT_vertex_groups, + bpy.types.DATA_PT_shape_keys, + bpy.types.DATA_PT_uv_texture, + bpy.types.DATA_PT_vertex_colors, + bpy.types.DATA_PT_custom_props_mesh, + bpy.types.DATA_PT_context_camera, + bpy.types.DATA_PT_camera, + bpy.types.DATA_PT_camera_display, + bpy.types.DATA_PT_custom_props_camera, + bpy.types.DATA_PT_context_lamp, + bpy.types.DATA_PT_custom_props_lamp, + bpy.types.TEXTURE_PT_context_texture] + +def register(): + bpy.types.RENDER_PT_render.append(draw_device) + + for panel in get_panels(): + panel.COMPAT_ENGINES.add('CYCLES') + +def unregister(): + bpy.types.RENDER_PT_render.remove(draw_device) + + for panel in get_panels(): + panel.COMPAT_ENGINES.remove('CYCLES') + diff --git a/intern/cycles/blender/addon/xml.py b/intern/cycles/blender/addon/xml.py new file mode 100644 index 00000000000..4d1b43d4d95 --- /dev/null +++ b/intern/cycles/blender/addon/xml.py @@ -0,0 +1,99 @@ +# +# 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. +# + +# XML exporter for generating test files, not intended for end users + +import os +import bpy +import io_utils +import xml.etree.ElementTree as etree +import xml.dom.minidom as dom + +def strip(root): + root.text = None + root.tail = None + + for elem in root: + strip(elem) + +def write(node, fname): + strip(node) + + s = etree.tostring(node) + s = dom.parseString(s).toprettyxml() + + f = open(fname, "w") + f.write(s) + +class ExportCyclesXML(bpy.types.Operator, io_utils.ExportHelper): + '''''' + bl_idname = "export_mesh.cycles_xml" + bl_label = "Export Cycles XML" + + filename_ext = ".xml" + + @classmethod + def poll(cls, context): + return context.active_object != None + + def execute(self, context): + filepath = bpy.path.ensure_ext(self.filepath, ".xml") + + # get mesh + scene = context.scene + object = context.object + + if not object: + raise Exception("No active object") + + mesh = object.create_mesh(scene, True, 'PREVIEW') + + if not mesh: + raise Exception("No mesh data in active object") + + # generate mesh node + nverts = "" + verts = "" + P = "" + + for v in mesh.vertices: + P += "%f %f %f " % (v.co[0], v.co[1], v.co[2]) + + for i, f in enumerate(mesh.faces): + nverts += str(len(f.vertices)) + " " + + for v in f.vertices: + verts += str(v) + " " + verts += " " + + node = etree.Element('mesh', attrib={'nverts': nverts, 'verts': verts, 'P': P}) + + # write to file + write(node, filepath) + + return {'FINISHED'} + +def register(): + pass + +def unregister(): + pass + +if __name__ == "__main__": + register() + diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp new file mode 100644 index 00000000000..cc4cfda8793 --- /dev/null +++ b/intern/cycles/blender/blender_camera.cpp @@ -0,0 +1,249 @@ +/* + * 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 "camera.h" +#include "scene.h" + +#include "blender_sync.h" +#include "blender_util.h" + +CCL_NAMESPACE_BEGIN + +/* Blender Camera Intermediate: we first convert both the offline and 3d view + * render camera to this, and from there convert to our native camera format. */ + +struct BlenderCamera { + float nearclip; + float farclip; + + bool ortho; + float ortho_scale; + + float lens; + float lensradius; + float focaldistance; + + float2 shift; + float2 offset; + float zoom; + + float2 pixelaspect; + + Transform matrix; +}; + +static void blender_camera_init(BlenderCamera *bcam) +{ + memset(bcam, 0, sizeof(BlenderCamera)); + + bcam->zoom = 1.0f; + bcam->pixelaspect = make_float2(1.0f, 1.0f); +} + +static float blender_camera_focal_distance(BL::Object b_ob, BL::Camera b_camera) +{ + BL::Object b_dof_object = b_camera.dof_object(); + + if(!b_dof_object) + return b_camera.dof_distance(); + + /* for dof object, return distance along camera direction. this is + * compatible with blender, but does it fit our dof model? */ + Transform obmat = get_transform(b_ob.matrix_world()); + Transform dofmat = get_transform(b_dof_object.matrix_world()); + + float3 cam_p = transform_get_column(&obmat, 3); + float3 cam_dir = normalize(transform_get_column(&obmat, 2)); + float3 dof_p = transform_get_column(&dofmat, 3); + float3 proj_p = dot(dof_p, cam_dir) * cam_dir; + + return len(proj_p - cam_p); +} + +static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob) +{ + BL::ID b_ob_data = b_ob.data(); + + if(b_ob_data.is_a(&RNA_Camera)) { + BL::Camera b_camera(b_ob_data); + PointerRNA ccamera = RNA_pointer_get(&b_camera.ptr, "cycles"); + + bcam->nearclip = b_camera.clip_start(); + bcam->farclip = b_camera.clip_end(); + + bcam->ortho = (b_camera.type() == BL::Camera::type_ORTHO); + bcam->ortho_scale = b_camera.ortho_scale(); + + bcam->lens = b_camera.lens(); + bcam->lensradius = RNA_float_get(&ccamera, "lens_radius"); + bcam->focaldistance = blender_camera_focal_distance(b_ob, b_camera); + + bcam->shift.x = b_camera.shift_x(); + bcam->shift.y = b_camera.shift_y(); + } + else { + /* from lamp not implemented yet */ + } +} + +static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int height) +{ + /* copy camera to compare later */ + Camera prevcam = *cam; + + /* dimensions */ + float xratio = width*bcam->pixelaspect.x; + float yratio = height*bcam->pixelaspect.y; + + /* compute x/y aspect and ratio */ + float aspectratio, xaspect, yaspect; + + if(xratio > yratio) { + aspectratio= xratio/yratio; + xaspect= aspectratio; + yaspect= 1.0f; + } + else { + aspectratio= yratio/xratio; + xaspect= 1.0f; + yaspect= aspectratio; + } + + /* modify aspect for orthographic scale */ + if(bcam->ortho) { + xaspect = xaspect*bcam->ortho_scale/(aspectratio*2.0f); + yaspect = yaspect*bcam->ortho_scale/(aspectratio*2.0f); + aspectratio = bcam->ortho_scale/2.0f; + } + + /* set viewplane */ + cam->left = -xaspect; + cam->right = xaspect; + cam->bottom = -yaspect; + cam->top = yaspect; + + /* zoom for 3d camera view */ + cam->left *= bcam->zoom; + cam->right *= bcam->zoom; + cam->bottom *= bcam->zoom; + cam->top *= bcam->zoom; + + /* modify viewplane with camera shift and 3d camera view offset */ + float dx = 2.0f*(aspectratio*bcam->shift.x + bcam->offset.x*xaspect*2.0f); + float dy = 2.0f*(aspectratio*bcam->shift.y + bcam->offset.y*yaspect*2.0f); + + cam->left += dx; + cam->right += dx; + cam->bottom += dy; + cam->top += dy; + + /* clipping distances */ + cam->nearclip = bcam->nearclip; + cam->farclip = bcam->farclip; + + /* orthographic */ + cam->ortho = bcam->ortho; + + /* perspective */ + cam->fov = 2.0f*atan(16.0f/bcam->lens/aspectratio); + cam->focaldistance = bcam->focaldistance; + cam->lensradius = bcam->lensradius; + + /* transform, note the blender camera points along the negative z-axis */ + cam->matrix = bcam->matrix * transform_scale(1.0f, 1.0f, -1.0f); + + /* set update flag */ + if(cam->modified(prevcam)) + cam->tag_update(); +} + +/* Sync Render Camera */ + +void BlenderSync::sync_camera(int width, int height) +{ + BlenderCamera bcam; + blender_camera_init(&bcam); + + /* pixel aspect */ + BL::RenderSettings r = b_scene.render(); + + bcam.pixelaspect.x = r.pixel_aspect_x(); + bcam.pixelaspect.y = r.pixel_aspect_y(); + + /* camera object */ + BL::Object b_ob = b_scene.camera(); + + if(b_ob) { + blender_camera_from_object(&bcam, b_ob); + bcam.matrix = get_transform(b_ob.matrix_world()); + } + + /* sync */ + Camera *cam = scene->camera; + blender_camera_sync(cam, &bcam, width, height); +} + +/* Sync 3D View Camera */ + +void BlenderSync::sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height) +{ + BlenderCamera bcam; + blender_camera_init(&bcam); + + /* 3d view parameters */ + bcam.nearclip = b_v3d.clip_start(); + bcam.farclip = b_v3d.clip_end(); + bcam.lens = b_v3d.lens(); + + if(b_rv3d.view_perspective() == BL::RegionView3D::view_perspective_CAMERA) { + /* camera view */ + BL::Object b_ob = b_scene.camera(); + + if(b_ob) { + blender_camera_from_object(&bcam, b_ob); + + /* magic zoom formula */ + bcam.zoom = b_rv3d.view_camera_zoom(); + bcam.zoom = (1.41421f + bcam.zoom/50.0f); + bcam.zoom *= bcam.zoom; + bcam.zoom = 2.0f/bcam.zoom; + + /* offset */ + bcam.offset = get_float2(b_rv3d.view_camera_offset()); + } + } + else if(b_rv3d.view_perspective() == BL::RegionView3D::view_perspective_ORTHO) { + /* orthographic view */ + bcam.farclip *= 0.5; + bcam.nearclip = -bcam.farclip; + + bcam.ortho = true; + bcam.ortho_scale = b_rv3d.view_distance(); + } + + bcam.zoom *= 2.0f; + + /* 3d view transform */ + bcam.matrix = transform_inverse(get_transform(b_rv3d.view_matrix())); + + /* sync */ + blender_camera_sync(scene->camera, &bcam, width, height); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp new file mode 100644 index 00000000000..e18a67bed8f --- /dev/null +++ b/intern/cycles/blender/blender_mesh.cpp @@ -0,0 +1,300 @@ +/* + * 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 "mesh.h" +#include "object.h" +#include "scene.h" + +#include "blender_sync.h" +#include "blender_util.h" + +#include "subd_mesh.h" +#include "subd_patch.h" +#include "subd_split.h" + +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +/* Find/Add */ + +static bool mesh_need_attribute(Scene *scene, Mesh *mesh, Attribute::Standard std) +{ + if(std == Attribute::STD_NONE) + return false; + + foreach(uint shader, mesh->used_shaders) + if(scene->shaders[shader]->attributes.find(std)) + return true; + + return false; +} + +static bool mesh_need_attribute(Scene *scene, Mesh *mesh, ustring name) +{ + if(name == ustring()) + return false; + + foreach(uint shader, mesh->used_shaders) + if(scene->shaders[shader]->attributes.find(name)) + return true; + + return false; +} + +static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector& used_shaders) +{ + /* create vertices */ + BL::Mesh::vertices_iterator v; + + for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + mesh->verts.push_back(get_float3(v->co())); + + /* create faces */ + BL::Mesh::faces_iterator f; + vector nverts; + + for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) { + int4 vi = get_int4(f->vertices_raw()); + int n= (vi[3] == 0)? 3: 4; + int shader = used_shaders[f->material_index()]; + bool smooth = f->use_smooth(); + + mesh->add_triangle(vi[0], vi[1], vi[2], shader, smooth); + + if(n == 4) + mesh->add_triangle(vi[0], vi[2], vi[3], shader, smooth); + + nverts.push_back(n); + } + + /* create generated coordinates. todo: we should actually get the orco + coordinates from modifiers, for now we use texspace loc/size which + is available in the api. */ + if(mesh_need_attribute(scene, mesh, Attribute::STD_GENERATED)) { + Attribute *attr = mesh->attributes.add(Attribute::STD_GENERATED); + float3 loc = get_float3(b_mesh.texspace_location()); + float3 size = get_float3(b_mesh.texspace_size()); + + if(size.x != 0.0f) size.x = 0.5f/size.x; + if(size.y != 0.0f) size.y = 0.5f/size.y; + if(size.z != 0.0f) size.z = 0.5f/size.z; + + loc = loc*size - make_float3(0.5f, 0.5f, 0.5f); + + float3 *fdata = attr->data_float3(); + BL::Mesh::vertices_iterator v; + size_t i = 0; + + for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + fdata[i++] = get_float3(v->co())*size - loc; + } + + /* create vertex color attributes */ + { + BL::Mesh::vertex_colors_iterator l; + + for(l = b_mesh.vertex_colors.begin(); l != b_mesh.vertex_colors.end(); ++l) { + if(!mesh_need_attribute(scene, mesh, ustring(l->name()))) + continue; + + Attribute *attr = mesh->attributes.add( + ustring(l->name()), TypeDesc::TypeColor, Attribute::CORNER); + + BL::MeshColorLayer::data_iterator c; + float3 *fdata = attr->data_float3(); + size_t i = 0; + + for(c = l->data.begin(); c != l->data.end(); ++c, ++i) { + fdata[0] = get_float3(c->color1()); + fdata[1] = get_float3(c->color2()); + fdata[2] = get_float3(c->color3()); + fdata += 3; + + if(nverts[i] == 4) { + fdata[0] = get_float3(c->color1()); + fdata[1] = get_float3(c->color3()); + fdata[2] = get_float3(c->color4()); + fdata += 3; + } + } + } + } + + /* create uv layer attributes */ + { + BL::Mesh::uv_textures_iterator l; + + for(l = b_mesh.uv_textures.begin(); l != b_mesh.uv_textures.end(); ++l) { + Attribute::Standard std = (l->active_render())? Attribute::STD_UV: Attribute::STD_NONE; + ustring name = ustring(l->name()); + + if(!(mesh_need_attribute(scene, mesh, name) || mesh_need_attribute(scene, mesh, std))) + continue; + + Attribute *attr; + + if(l->active_render()) + attr = mesh->attributes.add(std, name); + else + attr = mesh->attributes.add(name, TypeDesc::TypePoint, Attribute::CORNER); + + BL::MeshTextureFaceLayer::data_iterator t; + float3 *fdata = attr->data_float3(); + size_t i = 0; + + for(t = l->data.begin(); t != l->data.end(); ++t, ++i) { + fdata[0] = get_float3(t->uv1()); + fdata[1] = get_float3(t->uv2()); + fdata[2] = get_float3(t->uv3()); + fdata += 3; + + if(nverts[i] == 4) { + fdata[0] = get_float3(t->uv1()); + fdata[1] = get_float3(t->uv3()); + fdata[2] = get_float3(t->uv4()); + fdata += 3; + } + } + } + } +} + +static void create_subd_mesh(Mesh *mesh, BL::Mesh b_mesh, PointerRNA *cmesh, const vector& used_shaders) +{ + /* create subd mesh */ + SubdMesh sdmesh; + + /* create vertices */ + BL::Mesh::vertices_iterator v; + + for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + sdmesh.add_vert(get_float3(v->co())); + + /* create faces */ + BL::Mesh::faces_iterator f; + + for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) { + int4 vi = get_int4(f->vertices_raw()); + int n= (vi[3] == 0)? 3: 4; + //int shader = used_shaders[f->material_index()]; + + if(n == 4) + sdmesh.add_face(vi[0], vi[1], vi[2], vi[3]); + /*else + sdmesh.add_face(vi[0], vi[1], vi[2]);*/ + } + + /* finalize subd mesh */ + sdmesh.link_boundary(); + + /* subdivide */ + DiagSplit dsplit; + dsplit.camera = NULL; + dsplit.dicing_rate = RNA_float_get(cmesh, "dicing_rate"); + + sdmesh.tesselate(&dsplit, false, mesh, used_shaders[0], true); +} + +/* Sync */ + +Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) +{ + /* test if we can instance or if the object is modified */ + BL::ID b_ob_data = b_ob.data(); + BL::ID key = (object_is_modified(b_ob))? b_ob: b_ob_data; + + /* find shader indices */ + vector used_shaders; + + BL::Object::material_slots_iterator slot; + for(slot = b_ob.material_slots.begin(); slot != b_ob.material_slots.end(); ++slot) + find_shader(slot->material(), used_shaders); + + if(used_shaders.size() == 0) + used_shaders.push_back(scene->default_surface); + + /* test if we need to sync */ + Mesh *mesh; + + if(!mesh_map.sync(&mesh, key)) { + /* if transform was applied to mesh, need full update */ + if(object_updated && mesh->transform_applied); + /* test if shaders changed, these can be object level so mesh + does not get tagged for recalc */ + else if(mesh->used_shaders != used_shaders); + else { + /* even if not tagged for recalc, we may need to sync anyway + * because the shader needs different mesh attributes */ + bool attribute_recalc = false; + + foreach(uint shader, mesh->used_shaders) + if(scene->shaders[shader]->need_update_attributes) + attribute_recalc = true; + + if(!attribute_recalc) + return mesh; + } + } + + /* create derived mesh */ + BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview); + /* todo: this will crash on non-mesh types! */ + PointerRNA cmesh = RNA_pointer_get(&b_ob_data.ptr, "cycles"); + + vector oldtriangle = mesh->triangles; + + mesh->clear(); + mesh->used_shaders = used_shaders; + mesh->name = ustring(b_ob_data.name()); + + if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision")) + create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders); + else + create_mesh(scene, mesh, b_mesh, used_shaders); + + /* free derived mesh */ + object_remove_mesh(b_data, b_mesh); + + /* displacement method */ + if(cmesh.data) { + int method = RNA_enum_get(&cmesh, "displacement_method"); + + if(method == 0) + mesh->displacement_method = Mesh::DISPLACE_BUMP; + else if(method == 1) + mesh->displacement_method = Mesh::DISPLACE_TRUE; + else + mesh->displacement_method = Mesh::DISPLACE_BOTH; + } + + /* tag update */ + bool rebuild = false; + + if(oldtriangle.size() != mesh->triangles.size()) + rebuild = true; + else if(memcmp(&oldtriangle[0], &mesh->triangles[0], sizeof(Mesh::Triangle)*oldtriangle.size()) != 0) + rebuild = true; + + mesh->tag_update(scene, rebuild); + + return mesh; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp new file mode 100644 index 00000000000..51fd743956d --- /dev/null +++ b/intern/cycles/blender/blender_object.cpp @@ -0,0 +1,183 @@ +/* + * 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 "light.h" +#include "mesh.h" +#include "object.h" +#include "scene.h" + +#include "blender_sync.h" +#include "blender_util.h" + +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +/* Utilities */ + +bool BlenderSync::object_is_modified(BL::Object b_ob) +{ + /* test if we can instance or if the object is modified */ + if(ccl::object_is_modified(b_ob, b_scene, preview)) { + /* modifiers */ + return true; + } + else { + /* object level material links */ + BL::Object::material_slots_iterator slot; + for(slot = b_ob.material_slots.begin(); slot != b_ob.material_slots.end(); ++slot) + if(slot->link() == BL::MaterialSlot::link_OBJECT) + return true; + } + + return false; +} + +bool BlenderSync::object_is_mesh(BL::Object b_ob) +{ + BL::ID b_ob_data = b_ob.data(); + + return (b_ob_data && (b_ob_data.is_a(&RNA_Mesh) || + b_ob_data.is_a(&RNA_Curve) || b_ob_data.is_a(&RNA_MetaBall))); +} + +bool BlenderSync::object_is_light(BL::Object b_ob) +{ + BL::ID b_ob_data = b_ob.data(); + + return (b_ob_data && b_ob_data.is_a(&RNA_Lamp)); +} + +/* Light */ + +void BlenderSync::sync_light(BL::Object b_ob, Transform& tfm) +{ + /* test if we need to sync */ + Light *light; + + /* todo: account for instancing */ + if(!light_map.sync(&light, b_ob)) + return; + + /* location */ + light->co = make_float3(tfm.x.w, tfm.y.w, tfm.z.w); + + /* shader */ + BL::Lamp b_lamp(b_ob.data()); + vector used_shaders; + + find_shader(b_lamp, used_shaders); + + if(used_shaders.size() == 0) + used_shaders.push_back(scene->default_light); + + light->shader = used_shaders[0]; + + /* tag */ + light->tag_update(scene); +} + +/* Object */ + +void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm) +{ + /* light is handled separately */ + if(object_is_light(b_ob)) { + sync_light(b_ob, tfm); + return; + } + + /* only interested in object that we can create meshes from */ + if(!object_is_mesh(b_ob)) + return; + + /* test if we need to sync */ + ObjectKey key(b_parent, b_index, b_ob); + Object *object; + bool object_updated = false; + + /* object sync */ + if(object_map.sync(&object, b_ob, key)) { + object->name = b_ob.name(); + object->tfm = tfm; + object->tag_update(scene); + object_updated = true; + } + + /* mesh sync */ + object->mesh = sync_mesh(b_ob, object_updated); +} + +/* Object Loop */ + +void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) +{ + /* layer data */ + uint layer; + + if(b_v3d) + layer = get_layer(b_v3d.layers()); + else + layer = get_layer(b_scene.layers()); + + /* prepare for sync */ + light_map.pre_sync(); + mesh_map.pre_sync(); + object_map.pre_sync(); + + /* object loop */ + BL::Scene::objects_iterator b_ob; + + for(b_ob = b_scene.objects.begin(); b_ob != b_scene.objects.end(); ++b_ob) { + bool hide = (b_v3d)? b_ob->hide(): b_ob->hide_render(); + + if(!hide && get_layer(b_ob->layers()) & layer) { + if(b_ob->is_duplicator()) { + /* dupli objects */ + object_create_duplilist(*b_ob, b_scene); + + BL::Object::dupli_list_iterator b_dup; + int b_index = 0; + + for(b_dup = b_ob->dupli_list.begin(); b_dup != b_ob->dupli_list.end(); ++b_dup) { + Transform tfm = get_transform(b_dup->matrix()); + sync_object(*b_ob, b_index, b_dup->object(), tfm); + b_index++; + } + + object_free_duplilist(*b_ob); + } + else { + /* object itself */ + Transform tfm = get_transform(b_ob->matrix_world()); + sync_object(*b_ob, 0, *b_ob, tfm); + } + } + } + + /* handle removed data and modified pointers */ + if(light_map.post_sync()) + scene->light_manager->tag_update(scene); + if(mesh_map.post_sync()) + scene->mesh_manager->tag_update(scene); + if(object_map.post_sync()) + scene->object_manager->tag_update(scene); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp new file mode 100644 index 00000000000..7c5bdf0e519 --- /dev/null +++ b/intern/cycles/blender/blender_python.cpp @@ -0,0 +1,230 @@ +/* + * 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 + +#include "blender_sync.h" +#include "blender_session.h" + +#include "util_opengl.h" +#include "util_path.h" + +CCL_NAMESPACE_BEGIN + +static PyObject *init_func(PyObject *self, PyObject *args) +{ + const char *path; + + if(!PyArg_ParseTuple(args, "s", &path)) + return NULL; + + path_init(path); + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *create_func(PyObject *self, PyObject *args) +{ + Py_ssize_t pyengine, pydata, pyscene, pyregion, pyv3d, pyrv3d; + + if(!PyArg_ParseTuple(args, "nnnnnn", &pyengine, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d)) + return NULL; + + /* RNA */ + PointerRNA engineptr; + RNA_pointer_create(NULL, &RNA_RenderEngine, (void*)pyengine, &engineptr); + BL::RenderEngine engine(engineptr); + + PointerRNA dataptr; + RNA_id_pointer_create((ID*)pydata, &dataptr); + BL::BlendData data(dataptr); + + PointerRNA sceneptr; + RNA_id_pointer_create((ID*)pyscene, &sceneptr); + BL::Scene scene(sceneptr); + + PointerRNA regionptr; + RNA_id_pointer_create((ID*)pyregion, ®ionptr); + BL::Region region(regionptr); + + PointerRNA v3dptr; + RNA_id_pointer_create((ID*)pyv3d, &v3dptr); + BL::SpaceView3D v3d(v3dptr); + + PointerRNA rv3dptr; + RNA_id_pointer_create((ID*)pyrv3d, &rv3dptr); + BL::RegionView3D rv3d(rv3dptr); + + /* create session */ + BlenderSession *session; + + if(rv3d) { + /* interactive session */ + int width = region.width(); + int height = region.height(); + + session = new BlenderSession(engine, data, scene, v3d, rv3d, width, height); + } + else { + /* offline session */ + session = new BlenderSession(engine, data, scene); + } + + return PyLong_FromVoidPtr(session); +} + +static PyObject *free_func(PyObject *self, PyObject *args) +{ + Py_ssize_t pysession; + + if(!PyArg_ParseTuple(args, "n", &pysession)) + return NULL; + + delete (BlenderSession*)pysession; + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *render_func(PyObject *self, PyObject *args) +{ + Py_ssize_t pysession; + + if(!PyArg_ParseTuple(args, "n", &pysession)) + return NULL; + + Py_BEGIN_ALLOW_THREADS + + BlenderSession *session = (BlenderSession*)pysession; + session->render(); + + Py_END_ALLOW_THREADS + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *draw_func(PyObject *self, PyObject *args) +{ + Py_ssize_t pysession, pyv3d, pyrv3d; + + if(!PyArg_ParseTuple(args, "nnn", &pysession, &pyv3d, &pyrv3d)) + return NULL; + + BlenderSession *session = (BlenderSession*)pysession; + + bool draw_text = false; + + if(pyrv3d) { + /* 3d view drawing */ + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + + draw_text = session->draw(viewport[2], viewport[3]); + } + else { + /* image editor drawing */ + draw_text = session->draw(); + } + + /* draw */ + PyObject *ret = PyTuple_New(2); + + if(!draw_text) { + PyTuple_SetItem(ret, 0, PyUnicode_FromString("")); + PyTuple_SetItem(ret, 1, PyUnicode_FromString("")); + } + else { + string status, substatus; + + session->get_status(status, substatus); + + PyTuple_SetItem(ret, 0, PyUnicode_FromString(status.c_str())); + PyTuple_SetItem(ret, 1, PyUnicode_FromString(substatus.c_str())); + } + + return ret; +} + +static PyObject *sync_func(PyObject *self, PyObject *args) +{ + Py_ssize_t pysession; + + if(!PyArg_ParseTuple(args, "n", &pysession)) + return NULL; + + BlenderSession *session = (BlenderSession*)pysession; + session->synchronize(); + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *available_devices_func(PyObject *self, PyObject *args) +{ + vector types = Device::available_types(); + + PyObject *ret = PyTuple_New(types.size()); + + for(size_t i = 0; i < types.size(); i++) { + string name = Device::string_from_type(types[i]); + PyTuple_SetItem(ret, i, PyUnicode_FromString(name.c_str())); + } + + return ret; +} + +static PyObject *with_osl_func(PyObject *self, PyObject *args) +{ +#ifdef WITH_OSL + PyObject *ret = Py_True; +#else + PyObject *ret = Py_False; +#endif + + return Py_INCREF(ret), ret; +} + +static PyMethodDef methods[] = { + {"init", init_func, METH_VARARGS, ""}, + {"create", create_func, METH_VARARGS, ""}, + {"free", free_func, METH_VARARGS, ""}, + {"render", render_func, METH_VARARGS, ""}, + {"draw", draw_func, METH_VARARGS, ""}, + {"sync", sync_func, METH_VARARGS, ""}, + {"available_devices", available_devices_func, METH_NOARGS, ""}, + {"with_osl", with_osl_func, METH_NOARGS, ""}, + {NULL, NULL}, +}; + +static struct PyModuleDef module = { + PyModuleDef_HEAD_INIT, + "libcycles_blender", + "Blender RNA to render exporter", + -1, + methods +}; + +CCL_NAMESPACE_END + +PyMODINIT_FUNC PyInit_libcycles_blender() +{ + return PyModule_Create(&ccl::module); +} + diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp new file mode 100644 index 00000000000..8e8bba4e5b6 --- /dev/null +++ b/intern/cycles/blender/blender_session.cpp @@ -0,0 +1,280 @@ +/* + * 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 "background.h" +#include "buffers.h" +#include "camera.h" +#include "device.h" +#include "integrator.h" +#include "light.h" +#include "scene.h" +#include "session.h" +#include "shader.h" + +#include "util_color.h" +#include "util_foreach.h" +#include "util_function.h" +#include "util_progress.h" +#include "util_time.h" + +#include "blender_sync.h" +#include "blender_session.h" +#include "blender_util.h" + +CCL_NAMESPACE_BEGIN + +BlenderSession::BlenderSession(BL::RenderEngine b_engine_, BL::BlendData b_data_, BL::Scene b_scene_) +: b_engine(b_engine_), b_data(b_data_), b_scene(b_scene_), b_v3d(PointerRNA_NULL), b_rv3d(PointerRNA_NULL) +{ + /* offline render */ + BL::RenderSettings r = b_scene.render(); + + width = (int)(r.resolution_x()*r.resolution_percentage()*0.01f); + height = (int)(r.resolution_y()*r.resolution_percentage()*0.01f); + background = true; + last_redraw_time = 0.0f; + + create_session(); +} + +BlenderSession::BlenderSession(BL::RenderEngine b_engine_, 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_data(b_data_), b_scene(b_scene_), b_v3d(b_v3d_), b_rv3d(b_rv3d_) +{ + /* 3d view render */ + width = width_; + height = height_; + background = false; + last_redraw_time = 0.0f; + + create_session(); +} + +BlenderSession::~BlenderSession() +{ + free_session(); +} + +void BlenderSession::create_session() +{ + SceneParams scene_params = BlenderSync::get_scene_params(b_scene); + SessionParams session_params = BlenderSync::get_session_params(b_scene, background); + + /* create scene */ + scene = new Scene(scene_params); + + /* create sync */ + sync = new BlenderSync(b_data, b_scene, scene, !background); + sync->sync_data(b_v3d); + + if(b_rv3d) + sync->sync_view(b_v3d, b_rv3d, width, height); + else + sync->sync_camera(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)); + + /* start rendering */ + session->reset(width, height); + session->start(); +} + +void BlenderSession::free_session() +{ + delete sync; + delete session; +} + +void BlenderSession::render() +{ + session->wait(); + + if(session->progress.get_cancel()) + return; + + /* write result */ + write_render_result(); +} + +void BlenderSession::write_render_result() +{ + /* get result */ + DisplayBuffer *display = session->display; + Device *device = session->device; + + if(!display->rgba.device_pointer) + return; + + /* todo: get float buffer */ + device->pixels_copy_from(display->rgba, 0, width, height); + uchar4 *rgba = (uchar4*)display->rgba.data_pointer; + + vector buffer(width*height); + float fac = 1.0f/255.0f; + + /* normalize */ + for(int i = width*height - 1; i >= 0; i--) { + uchar4 f = rgba[i]; + float r = color_srgb_to_scene_linear(f.x*fac); + float g = color_srgb_to_scene_linear(f.y*fac); + float b = color_srgb_to_scene_linear(f.z*fac); + buffer[i] = make_float4(r, g, b, 1.0f); + } + + struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, width, height); + PointerRNA rrptr; + RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr); + BL::RenderResult rr(rrptr); + + rna_RenderLayer_rect_set(&rr.layers.begin()->ptr, (float*)&buffer[0]); + + RE_engine_end_result((RenderEngine*)b_engine.ptr.data, rrp); +} + +void BlenderSession::synchronize() +{ + /* on session/scene parameter changes, we recreate session entirely */ + SceneParams scene_params = BlenderSync::get_scene_params(b_scene); + SessionParams session_params = BlenderSync::get_session_params(b_scene, background); + + if(session->params.modified(session_params) || + scene->params.modified(scene_params)) { + free_session(); + create_session(); + return; + } + + /* copy recalc flags, outside of mutex so we can decide to do the real + synchronization at a later time to not block on running updates */ + sync->sync_recalc(); + + /* try to acquire mutex. if we don't want to or can't, come back later */ + if(!session->ready_to_reset() || !session->scene->mutex.try_lock()) { + tag_update(); + return; + } + + /* data and camera synchronize */ + sync->sync_data(b_v3d); + + if(b_rv3d) + sync->sync_view(b_v3d, b_rv3d, width, height); + else + sync->sync_camera(width, height); + + /* reset if needed */ + if(scene->need_reset()) + session->reset(width, height); + + /* unlock */ + session->scene->mutex.unlock(); +} + +bool BlenderSession::draw(int w, int h) +{ + /* before drawing, we verify camera and viewport size changes, because + we do not get update callbacks for those, we must detect them here */ + if(session->ready_to_reset()) { + bool reset = false; + + /* try to acquire mutex. if we can't, come back later */ + if(!session->scene->mutex.try_lock()) { + tag_update(); + } + else { + /* update camera from 3d view */ + bool need_update = scene->camera->need_update; + + sync->sync_view(b_v3d, b_rv3d, w, h); + + if(scene->camera->need_update && !need_update) + reset = true; + + session->scene->mutex.unlock(); + } + + /* if dimensions changed, reset */ + if(width != w || height != h) { + width = w; + height = h; + reset = true; + } + + /* reset if requested */ + if(reset) + session->reset(width, height); + } + + /* draw */ + return !session->draw(width, height); +} + +bool BlenderSession::draw() +{ + return !session->draw(width, height); +} + +void BlenderSession::get_status(string& status, string& substatus) +{ + session->progress.get_status(status, substatus); +} + +void BlenderSession::tag_update() +{ + /* tell blender that we want to get another update callback */ + engine_tag_update((RenderEngine*)b_engine.ptr.data); +} + +void BlenderSession::tag_redraw() +{ + if(background) { + /* offline render, set stats and redraw if timeout passed */ + string status, substatus; + get_status(status, substatus); + + if(substatus.size() > 0) + status += " | " + substatus; + + RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); + + if(time_dt() - last_redraw_time > 1.0f) { + write_render_result(); + engine_tag_redraw((RenderEngine*)b_engine.ptr.data); + last_redraw_time = time_dt(); + } + } + else { + /* tell blender that we want to redraw */ + engine_tag_redraw((RenderEngine*)b_engine.ptr.data); + } +} + +void BlenderSession::test_cancel() +{ + /* test if we need to cancel rendering */ + if(background) + if(RE_engine_test_break((RenderEngine*)b_engine.ptr.data)) + session->progress.set_cancel("Cancelled"); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h new file mode 100644 index 00000000000..8bc5d3dfab9 --- /dev/null +++ b/intern/cycles/blender/blender_session.h @@ -0,0 +1,77 @@ +/* + * 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 __BLENDER_SESSION_H__ +#define __BLENDER_SESSION_H__ + +#include "device.h" +#include "scene.h" +#include "session.h" + +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Scene; +class Session; + +class BlenderSession { +public: + BlenderSession(BL::RenderEngine b_engine, BL::BlendData b_data, BL::Scene b_scene); + BlenderSession(BL::RenderEngine b_engine, BL::BlendData b_data, BL::Scene b_scene, + BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height); + + ~BlenderSession(); + + /* session */ + void create_session(); + void free_session(); + + /* offline render */ + void render(); + void write_render_result(); + + /* interactive updates */ + void synchronize(); + + /* drawing */ + bool draw(); + bool draw(int w, int h); + void tag_redraw(); + void tag_update(); + void get_status(string& status, string& substatus); + void test_cancel(); + + bool background; + Session *session; + Scene *scene; + BlenderSync *sync; + double last_redraw_time; + + BL::RenderEngine b_engine; + BL::BlendData b_data; + BL::Scene b_scene; + BL::SpaceView3D b_v3d; + BL::RegionView3D b_rv3d; + + int width, height; +}; + +CCL_NAMESPACE_END + +#endif /* __BLENDER_SESSION_H__ */ diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp new file mode 100644 index 00000000000..c6dbfc630ab --- /dev/null +++ b/intern/cycles/blender/blender_shader.cpp @@ -0,0 +1,629 @@ +/* + * 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 "background.h" +#include "graph.h" +#include "light.h" +#include "nodes.h" +#include "scene.h" +#include "shader.h" + +#include "blender_sync.h" +#include "blender_util.h" + +#include "util_debug.h" + +CCL_NAMESPACE_BEGIN + +typedef map PtrNodeMap; +typedef pair SocketPair; +typedef map PtrSockMap; + +/* Find */ + +void BlenderSync::find_shader(BL::ID id, vector& used_shaders) +{ + Shader *shader = shader_map.find(id); + + for(size_t i = 0; i < scene->shaders.size(); i++) { + if(scene->shaders[i] == shader) { + used_shaders.push_back(i); + break; + } + } +} + +/* Graph */ + +static BL::NodeSocket get_node_input(BL::Node *b_group_node, BL::Node b_node, const string& name) +{ + BL::Node::inputs_iterator b_in; + + for(b_in = b_node.inputs.begin(); b_in != b_node.inputs.end(); ++b_in) { + if(b_in->name() == name) { + if(b_group_node) { + + BL::NodeTree b_ntree = BL::NodeGroup(*b_group_node).node_tree(); + BL::NodeTree::links_iterator b_link; + + for(b_link = b_ntree.links.begin(); b_link != b_ntree.links.end(); ++b_link) { + if(b_link->to_socket().ptr.data == b_in->ptr.data) { + BL::Node::inputs_iterator b_gin; + + for(b_gin = b_group_node->inputs.begin(); b_gin != b_group_node->inputs.end(); ++b_gin) + if(b_gin->group_socket().ptr.data == b_link->from_socket().ptr.data) + return *b_gin; + + } + } + } + + return *b_in; + } + } + + assert(0); + + return *b_in; +} + +static BL::NodeSocket get_node_output(BL::Node b_node, const string& name) +{ + BL::Node::outputs_iterator b_out; + + for(b_out = b_node.outputs.begin(); b_out != b_node.outputs.end(); ++b_out) + if(b_out->name() == name) + return *b_out; + + assert(0); + + return *b_out; +} + +static float3 get_node_output_rgba(BL::Node b_node, const string& name) +{ + BL::RGBANodeSocket sock(get_node_output(b_node, name)); + return get_float3(sock.default_value()); +} + +static float get_node_output_value(BL::Node b_node, const string& name) +{ + BL::ValueNodeSocket sock(get_node_output(b_node, name)); + return sock.default_value()[0]; +} + +static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node *b_group_node, BL::ShaderNode b_node) +{ + ShaderNode *node = NULL; + + switch(b_node.type()) { + /* not supported */ + case BL::ShaderNode::type_CAMERA: break; + case BL::ShaderNode::type_COMBRGB: break; + case BL::ShaderNode::type_CURVE_RGB: break; + case BL::ShaderNode::type_CURVE_VEC: break; + case BL::ShaderNode::type_GEOM: break; + case BL::ShaderNode::type_HUE_SAT: break; + case BL::ShaderNode::type_INVERT: break; + case BL::ShaderNode::type_MATERIAL: break; + case BL::ShaderNode::type_MATERIAL_EXT: break; + case BL::ShaderNode::type_NORMAL: break; + case BL::ShaderNode::type_OUTPUT: break; + case BL::ShaderNode::type_SCRIPT: break; + case BL::ShaderNode::type_SEPRGB: break; + case BL::ShaderNode::type_SQUEEZE: break; + case BL::ShaderNode::type_TEXTURE: break; + case BL::ShaderNode::type_VALTORGB: break; + /* handled outside this function */ + case BL::ShaderNode::type_GROUP: break; + /* existing blender nodes */ + case BL::ShaderNode::type_RGB: { + ColorNode *color = new ColorNode(); + color->value = get_node_output_rgba(b_node, "Color"); + node = color; + break; + } + case BL::ShaderNode::type_VALUE: { + ValueNode *value = new ValueNode(); + value->value = get_node_output_value(b_node, "Value"); + node = value; + break; + } + case BL::ShaderNode::type_MIX_RGB: { + BL::ShaderNodeMixRGB b_mix_node(b_node); + MixNode *mix = new MixNode(); + mix->type = MixNode::type_enum[b_mix_node.blend_type()]; + node = mix; + break; + } + case BL::ShaderNode::type_RGBTOBW: { + node = new ConvertNode(SHADER_SOCKET_COLOR, SHADER_SOCKET_FLOAT); + break; + } + case BL::ShaderNode::type_MATH: { + BL::ShaderNodeMath b_math_node(b_node); + MathNode *math = new MathNode(); + math->type = MathNode::type_enum[b_math_node.operation()]; + node = math; + break; + } + case BL::ShaderNode::type_VECT_MATH: { + BL::ShaderNodeVectorMath b_vector_math_node(b_node); + VectorMathNode *vmath = new VectorMathNode(); + vmath->type = VectorMathNode::type_enum[b_vector_math_node.operation()]; + node = vmath; + break; + } + case BL::ShaderNode::type_MAPPING: { + BL::ShaderNodeMapping b_mapping_node(b_node); + MappingNode *mapping = new MappingNode(); + mapping->translation = get_float3(b_mapping_node.location()); + mapping->rotation = get_float3(b_mapping_node.rotation()); + mapping->scale = get_float3(b_mapping_node.scale()); + node = mapping; + break; + } + + /* new nodes */ + case BL::ShaderNode::type_OUTPUT_MATERIAL: + case BL::ShaderNode::type_OUTPUT_WORLD: + case BL::ShaderNode::type_OUTPUT_LAMP: { + node = graph->output(); + break; + } + case BL::ShaderNode::type_FRESNEL: { + node = new FresnelNode(); + break; + } + case BL::ShaderNode::type_ADD_CLOSURE: { + node = new AddClosureNode(); + break; + } + case BL::ShaderNode::type_MIX_CLOSURE: { + node = new MixClosureNode(); + break; + } + case BL::ShaderNode::type_ATTRIBUTE: { + AttributeNode *attr = new AttributeNode(); + attr->attribute = ""; + node = attr; + break; + } + case BL::ShaderNode::type_BACKGROUND: { + node = new BackgroundNode(); + break; + } + case BL::ShaderNode::type_BSDF_ANISOTROPIC: { + node = new WardBsdfNode(); + break; + } + case BL::ShaderNode::type_BSDF_DIFFUSE: { + node = new DiffuseBsdfNode(); + break; + } + case BL::ShaderNode::type_BSDF_GLOSSY: { + BL::ShaderNodeBsdfGlossy b_glossy_node(b_node); + GlossyBsdfNode *glossy = new GlossyBsdfNode(); + + switch(b_glossy_node.distribution()) { + case BL::ShaderNodeBsdfGlossy::distribution_SHARP: + glossy->distribution = ustring("Sharp"); + break; + case BL::ShaderNodeBsdfGlossy::distribution_BECKMANN: + glossy->distribution = ustring("Beckmann"); + break; + case BL::ShaderNodeBsdfGlossy::distribution_GGX: + glossy->distribution = ustring("GGX"); + break; + } + node = glossy; + break; + } + case BL::ShaderNode::type_BSDF_GLASS: { + BL::ShaderNodeBsdfGlass b_glass_node(b_node); + GlassBsdfNode *glass = new GlassBsdfNode(); + switch(b_glass_node.distribution()) { + case BL::ShaderNodeBsdfGlass::distribution_SHARP: + glass->distribution = ustring("Sharp"); + break; + case BL::ShaderNodeBsdfGlass::distribution_BECKMANN: + glass->distribution = ustring("Beckmann"); + break; + case BL::ShaderNodeBsdfGlass::distribution_GGX: + glass->distribution = ustring("GGX"); + break; + } + node = glass; + break; + } + case BL::ShaderNode::type_BSDF_TRANSLUCENT: { + node = new TranslucentBsdfNode(); + break; + } + case BL::ShaderNode::type_BSDF_TRANSPARENT: { + node = new TransparentBsdfNode(); + break; + } + case BL::ShaderNode::type_BSDF_VELVET: { + node = new VelvetBsdfNode(); + break; + } + case BL::ShaderNode::type_EMISSION: { + node = new EmissionNode(); + break; + } + case BL::ShaderNode::type_GEOMETRY: { + node = new GeometryNode(); + break; + } + case BL::ShaderNode::type_LIGHT_PATH: { + node = new LightPathNode(); + break; + } + case BL::ShaderNode::type_TEX_IMAGE: { + BL::ShaderNodeTexImage b_image_node(b_node); + BL::Image b_image(b_image_node.image()); + ImageTextureNode *image = new ImageTextureNode(); + /* todo: handle generated/builtin images */ + if(b_image) + image->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); + node = image; + break; + } + case BL::ShaderNode::type_TEX_ENVIRONMENT: { + BL::ShaderNodeTexEnvironment b_environment_node(b_node); + BL::Image b_image(b_environment_node.image()); + EnvironmentTextureNode *env = new EnvironmentTextureNode(); + if(b_image) + env->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); + node = env; + break; + } + case BL::ShaderNode::type_TEX_NOISE: { + node = new NoiseTextureNode(); + break; + } + case BL::ShaderNode::type_TEX_BLEND: { + BL::ShaderNodeTexBlend b_blend_node(b_node); + BlendTextureNode *blend = new BlendTextureNode(); + blend->progression = BlendTextureNode::progression_enum[(int)b_blend_node.progression()]; + blend->axis = BlendTextureNode::axis_enum[(int)b_blend_node.axis()]; + node = blend; + break; + } + case BL::ShaderNode::type_TEX_VORONOI: { + BL::ShaderNodeTexVoronoi b_voronoi_node(b_node); + VoronoiTextureNode *voronoi = new VoronoiTextureNode(); + voronoi->distance_metric = VoronoiTextureNode::distance_metric_enum[(int)b_voronoi_node.distance_metric()]; + voronoi->coloring = VoronoiTextureNode::coloring_enum[(int)b_voronoi_node.coloring()]; + node = voronoi; + break; + } + case BL::ShaderNode::type_TEX_MAGIC: { + BL::ShaderNodeTexMagic b_magic_node(b_node); + MagicTextureNode *magic = new MagicTextureNode(); + magic->depth = b_magic_node.turbulence_depth(); + node = magic; + break; + } + case BL::ShaderNode::type_TEX_MARBLE: { + BL::ShaderNodeTexMarble b_marble_node(b_node); + MarbleTextureNode *marble = new MarbleTextureNode(); + marble->depth = b_marble_node.turbulence_depth(); + marble->basis = MarbleTextureNode::basis_enum[(int)b_marble_node.noise_basis()]; + marble->type = MarbleTextureNode::type_enum[(int)b_marble_node.marble_type()]; + marble->wave = MarbleTextureNode::wave_enum[(int)b_marble_node.wave_type()]; + marble->hard = b_marble_node.noise_type() == BL::ShaderNodeTexMarble::noise_type_HARD; + node = marble; + break; + } + case BL::ShaderNode::type_TEX_CLOUDS: { + BL::ShaderNodeTexClouds b_clouds_node(b_node); + CloudsTextureNode *clouds = new CloudsTextureNode(); + clouds->depth = b_clouds_node.turbulence_depth(); + clouds->basis = CloudsTextureNode::basis_enum[(int)b_clouds_node.noise_basis()]; + clouds->hard = b_clouds_node.noise_type() == BL::ShaderNodeTexClouds::noise_type_HARD; + node = clouds; + break; + } + case BL::ShaderNode::type_TEX_WOOD: { + BL::ShaderNodeTexWood b_wood_node(b_node); + WoodTextureNode *wood = new WoodTextureNode(); + wood->type = WoodTextureNode::type_enum[(int)b_wood_node.wood_type()]; + wood->basis = WoodTextureNode::basis_enum[(int)b_wood_node.noise_basis()]; + wood->hard = b_wood_node.noise_type() == BL::ShaderNodeTexWood::noise_type_HARD; + wood->wave = WoodTextureNode::wave_enum[(int)b_wood_node.wave_type()]; + node = wood; + break; + } + case BL::ShaderNode::type_TEX_MUSGRAVE: { + BL::ShaderNodeTexMusgrave b_musgrave_node(b_node); + MusgraveTextureNode *musgrave = new MusgraveTextureNode(); + musgrave->type = MusgraveTextureNode::type_enum[(int)b_musgrave_node.musgrave_type()]; + musgrave->basis = MusgraveTextureNode::basis_enum[(int)b_musgrave_node.noise_basis()]; + node = musgrave; + break; + } + case BL::ShaderNode::type_TEX_STUCCI: { + BL::ShaderNodeTexStucci b_stucci_node(b_node); + StucciTextureNode *stucci = new StucciTextureNode(); + stucci->type = StucciTextureNode::type_enum[(int)b_stucci_node.stucci_type()]; + stucci->basis = StucciTextureNode::basis_enum[(int)b_stucci_node.noise_basis()]; + stucci->hard = b_stucci_node.noise_type() == BL::ShaderNodeTexStucci::noise_type_HARD; + node = stucci; + break; + } + case BL::ShaderNode::type_TEX_DISTORTED_NOISE: { + BL::ShaderNodeTexDistortedNoise b_distnoise_node(b_node); + DistortedNoiseTextureNode *distnoise = new DistortedNoiseTextureNode(); + distnoise->basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_basis()]; + distnoise->distortion_basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_distortion()]; + node = distnoise; + break; + } + case BL::ShaderNode::type_TEX_COORD: { + node = new TextureCoordinateNode();; + break; + } + case BL::ShaderNode::type_TEX_SKY: { + BL::ShaderNodeTexSky b_sky_node(b_node); + SkyTextureNode *sky = new SkyTextureNode(); + sky->sun_direction = get_float3(b_sky_node.sun_direction()); + sky->turbidity = b_sky_node.turbidity(); + node = sky; + break; + } + } + + if(node != graph->output()) + graph->add(node); + + return node; +} + +static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTree b_ntree, BL::Node *b_group_node, PtrSockMap& sockets_map) +{ + /* add nodes */ + BL::ShaderNodeTree::nodes_iterator b_node; + PtrNodeMap node_map; + map node_groups; + + for(b_node = b_ntree.nodes.begin(); b_node != b_ntree.nodes.end(); ++b_node) { + if(b_node->is_a(&RNA_NodeGroup)) { + BL::NodeGroup b_gnode(*b_node); + BL::ShaderNodeTree b_group_ntree(b_gnode.node_tree()); + + node_groups[b_node->ptr.data] = PtrSockMap(); + add_nodes(b_data, graph, b_group_ntree, &b_gnode, node_groups[b_node->ptr.data]); + } + else { + ShaderNode *node = add_node(b_data, graph, b_group_node, BL::ShaderNode(*b_node)); + + if(node) { + BL::Node::inputs_iterator b_input; + BL::Node::outputs_iterator b_output; + + node_map[b_node->ptr.data] = node; + + for(b_input = b_node->inputs.begin(); b_input != b_node->inputs.end(); ++b_input) { + ShaderInput *input = node->input(b_input->name().c_str()); + BL::NodeSocket sock(get_node_input(b_group_node, *b_node, b_input->name())); + + assert(input); + + /* copy values for non linked inputs */ + switch(input->type) { + case SHADER_SOCKET_FLOAT: { + BL::ValueNodeSocket value_sock(sock); + input->set(value_sock.default_value()[0]); + break; + } + case SHADER_SOCKET_COLOR: { + BL::RGBANodeSocket rgba_sock(sock); + input->set(get_float3(rgba_sock.default_value())); + break; + } + case SHADER_SOCKET_NORMAL: + case SHADER_SOCKET_POINT: + case SHADER_SOCKET_VECTOR: { + BL::VectorNodeSocket vec_sock(sock); + input->set(get_float3(vec_sock.default_value())); + break; + } + case SHADER_SOCKET_CLOSURE: + break; + } + } + } + } + } + + /* connect nodes */ + BL::NodeTree::links_iterator b_link; + + for(b_link = b_ntree.links.begin(); b_link != b_ntree.links.end(); ++b_link) { + /* get blender link data */ + BL::Node b_from_node = b_link->from_node(); + BL::Node b_to_node = b_link->to_node(); + + BL::NodeSocket b_from_sock = b_link->from_socket(); + BL::NodeSocket b_to_sock = b_link->to_socket(); + + /* if link with group socket, add to map so we can connect it later */ + if(b_group_node) { + if(!b_from_node) { + sockets_map[b_from_sock.ptr.data] = + SocketPair(node_map[b_to_node.ptr.data], b_to_sock.name()); + + continue; + } + else if(!b_to_node) { + sockets_map[b_to_sock.ptr.data] = + SocketPair(node_map[b_from_node.ptr.data], b_from_sock.name()); + + continue; + } + } + + ShaderNode *from_node, *to_node; + string from_name, to_name; + + /* from sock */ + if(b_from_node.is_a(&RNA_NodeGroup)) { + /* group node */ + BL::NodeSocket group_sock = b_from_sock.group_socket(); + SocketPair& pair = node_groups[b_from_node.ptr.data][group_sock.ptr.data]; + + from_node = pair.first; + from_name = pair.second; + } + else { + /* regular node */ + from_node = node_map[b_from_node.ptr.data]; + from_name = b_from_sock.name(); + } + + /* to sock */ + if(b_to_node.is_a(&RNA_NodeGroup)) { + /* group node */ + BL::NodeSocket group_sock = b_to_sock.group_socket(); + SocketPair& pair = node_groups[b_to_node.ptr.data][group_sock.ptr.data]; + + to_node = pair.first; + to_name = pair.second; + } + else { + /* regular node */ + to_node = node_map[b_to_node.ptr.data]; + to_name = b_to_sock.name(); + } + + graph->connect(from_node->output(from_name.c_str()), to_node->input(to_name.c_str())); + } +} + +/* Sync Materials */ + +void BlenderSync::sync_materials() +{ + shader_map.set_default(scene->shaders[scene->default_surface]); + + /* material loop */ + BL::BlendData::materials_iterator b_mat; + + for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); ++b_mat) { + Shader *shader; + + /* test if we need to sync */ + if(shader_map.sync(&shader, *b_mat)) { + ShaderGraph *graph = new ShaderGraph(); + + /* create nodes */ + if(b_mat && b_mat->node_tree()) { + shader->name = b_mat->name(); + + PtrSockMap sock_to_node; + BL::ShaderNodeTree b_ntree(b_mat->node_tree()); + + add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); + } + + shader->set_graph(graph); + shader->tag_update(scene); + } + } +} + +/* Sync World */ + +void BlenderSync::sync_world() +{ + Background *background = scene->background; + Background prevbackground = *background; + + BL::World b_world = b_scene.world(); + + if(world_recalc || b_world.ptr.data != world_map) { + Shader *shader = scene->shaders[scene->default_background]; + ShaderGraph *graph = new ShaderGraph(); + + /* create nodes */ + if(b_world && b_world.node_tree()) { + PtrSockMap sock_to_node; + BL::ShaderNodeTree b_ntree(b_world.node_tree()); + + add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); + } + + shader->set_graph(graph); + shader->tag_update(scene); + } + + if(background->modified(prevbackground)) + background->tag_update(scene); + + world_map = b_world.ptr.data; + world_recalc = false; +} + +/* Sync Lamps */ + +void BlenderSync::sync_lamps() +{ + shader_map.set_default(scene->shaders[scene->default_light]); + + /* lamp loop */ + BL::BlendData::lamps_iterator b_lamp; + + for(b_lamp = b_data.lamps.begin(); b_lamp != b_data.lamps.end(); ++b_lamp) { + Shader *shader; + + /* test if we need to sync */ + if(shader_map.sync(&shader, *b_lamp)) { + ShaderGraph *graph = new ShaderGraph(); + + /* create nodes */ + if(b_lamp && b_lamp->node_tree()) { + shader->name = b_lamp->name(); + + PtrSockMap sock_to_node; + BL::ShaderNodeTree b_ntree(b_lamp->node_tree()); + + add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); + } + + shader->set_graph(graph); + shader->tag_update(scene); + } + } +} + +void BlenderSync::sync_shaders() +{ + shader_map.pre_sync(); + + sync_world(); + sync_lamps(); + sync_materials(); + + /* false = don't delete unused shaders, not supported */ + shader_map.post_sync(false); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp new file mode 100644 index 00000000000..1bf85f13fca --- /dev/null +++ b/intern/cycles/blender/blender_sync.cpp @@ -0,0 +1,210 @@ +/* + * 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 "background.h" +#include "film.h" +#include "graph.h" +#include "integrator.h" +#include "light.h" +#include "mesh.h" +#include "nodes.h" +#include "object.h" +#include "scene.h" +#include "shader.h" + +#include "device.h" + +#include "blender_sync.h" +#include "blender_util.h" + +#include "util_debug.h" +#include "util_foreach.h" + +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_), + shader_map(&scene_->shaders), + object_map(&scene_->objects), + mesh_map(&scene_->meshes), + light_map(&scene_->lights), + world_map(NULL), + world_recalc(false) +{ + scene = scene_; + preview = preview_; +} + +BlenderSync::~BlenderSync() +{ +} + +/* Sync */ + +bool BlenderSync::sync_recalc() +{ + BL::BlendData::materials_iterator b_mat; + + for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); ++b_mat) + if(b_mat->recalc()) + shader_map.set_recalc(*b_mat); + + BL::BlendData::lamps_iterator b_lamp; + + for(b_lamp = b_data.lamps.begin(); b_lamp != b_data.lamps.end(); ++b_lamp) + if(b_lamp->recalc()) + shader_map.set_recalc(*b_lamp); + + BL::BlendData::objects_iterator b_ob; + + for(b_ob = b_data.objects.begin(); b_ob != b_data.objects.end(); ++b_ob) { + if(b_ob->recalc()) { + object_map.set_recalc(*b_ob); + light_map.set_recalc(*b_ob); + } + if(object_is_mesh(*b_ob)) { + if(b_ob->recalc_data() || b_ob->data().recalc()) { + BL::ID key = object_is_modified(*b_ob)? *b_ob: b_ob->data(); + mesh_map.set_recalc(key); + } + } + } + + BL::BlendData::meshes_iterator b_mesh; + + for(b_mesh = b_data.meshes.begin(); b_mesh != b_data.meshes.end(); ++b_mesh) + if(b_mesh->recalc()) + mesh_map.set_recalc(*b_mesh); + + BL::BlendData::worlds_iterator b_world; + + for(b_world = b_data.worlds.begin(); b_world != b_data.worlds.end(); ++b_world) + if(world_map == b_world->ptr.data && b_world->recalc()) + world_recalc = true; + + bool recalc = + shader_map.has_recalc() || + object_map.has_recalc() || + light_map.has_recalc() || + mesh_map.has_recalc() || + world_recalc; + + return recalc; +} + +void BlenderSync::sync_data(BL::SpaceView3D b_v3d) +{ + sync_integrator(); + sync_film(); + sync_shaders(); + sync_objects(b_v3d); +} + +/* Integrator */ + +void BlenderSync::sync_integrator() +{ + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + + Integrator *integrator = scene->integrator; + Integrator previntegrator = *integrator; + + integrator->minbounce = get_int(cscene, "min_bounces"); + integrator->maxbounce = get_int(cscene, "max_bounces"); + integrator->no_caustics = get_boolean(cscene, "no_caustics"); + integrator->blur_caustics = get_float(cscene, "blur_caustics"); + + if(integrator->modified(previntegrator)) + integrator->tag_update(scene); +} + +/* Film */ + +void BlenderSync::sync_film() +{ + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + + Film *film = scene->film; + Film prevfilm = *film; + + film->exposure = get_float(cscene, "exposure"); + film->response = get_enum_identifier(cscene, "response_curve"); + + if(film->modified(prevfilm)) + film->tag_update(scene); +} + +/* Scene Parameters */ + +SceneParams BlenderSync::get_scene_params(BL::Scene b_scene) +{ + SceneParams params; + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + int shadingsystem = RNA_enum_get(&cscene, "shading_system"); + + if(shadingsystem == 0) + params.shadingsystem = SceneParams::SVM; + else if(shadingsystem == 1) + params.shadingsystem = SceneParams::OSL; + + params.bvh_type = (SceneParams::BVHType)RNA_enum_get(&cscene, "debug_bvh_type"); + params.use_bvh_spatial_split = RNA_boolean_get(&cscene, "debug_use_spatial_splits"); + + return params; +} + +/* Session Parameters */ + +SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background) +{ + SessionParams params; + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + + /* device type */ + DeviceType dtype = (RNA_enum_get(&cscene, "device") == 1)? DEVICE_CUDA: DEVICE_CPU; + + params.device_type = DEVICE_CPU; + vector types = Device::available_types(); + + foreach(DeviceType dt, types) + if(dt == dtype) + params.device_type = dtype; + + /* other parameters */ + params.background = background; + params.passes = (background)? get_int(cscene, "passes"): INT_MAX; + 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; + } + else + params.progressive = true; + + return params; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h new file mode 100644 index 00000000000..f1fce37bfaf --- /dev/null +++ b/intern/cycles/blender/blender_sync.h @@ -0,0 +1,105 @@ +/* + * 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 __BLENDER_SYNC_H__ +#define __BLENDER_SYNC_H__ + +#include "MEM_guardedalloc.h" +#include "RNA_types.h" +#include "RNA_access.h" +#include "RNA_blender_cpp.h" + +#include "blender_util.h" + +#include "scene.h" +#include "session.h" + +#include "util_map.h" +#include "util_set.h" +#include "util_transform.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Background; +class Camera; +class Film; +class Light; +class Mesh; +class Object; +class Scene; +class Shader; +class ShaderGraph; +class ShaderNode; + +class BlenderSync { +public: + BlenderSync(BL::BlendData b_data, BL::Scene b_scene, Scene *scene_, bool preview_); + ~BlenderSync(); + + /* sync */ + bool sync_recalc(); + void sync_data(BL::SpaceView3D b_v3d); + void sync_camera(int width, int height); + void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height); + + /* get parameters */ + static SceneParams get_scene_params(BL::Scene b_scene); + static SessionParams get_session_params(BL::Scene b_scene, bool background); + +private: + /* sync */ + void sync_lamps(); + void sync_materials(); + void sync_objects(BL::SpaceView3D b_v3d); + void sync_film(); + void sync_integrator(); + void sync_view(); + void sync_world(); + void sync_shaders(); + + 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); + void sync_light(BL::Object b_ob, Transform& tfm); + + /* util */ + void find_shader(BL::ID id, vector& used_shaders); + bool object_is_modified(BL::Object b_ob); + bool object_is_mesh(BL::Object b_ob); + bool object_is_light(BL::Object b_ob); + + /* variables */ + BL::BlendData b_data; + BL::Scene b_scene; + + id_map shader_map; + id_map object_map; + id_map mesh_map; + id_map light_map; + void *world_map; + bool world_recalc; + + Scene *scene; + bool preview; +}; + +CCL_NAMESPACE_END + +#endif /* __BLENDER_SYNC_H__ */ + diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h new file mode 100644 index 00000000000..9da1c1dfe05 --- /dev/null +++ b/intern/cycles/blender/blender_util.h @@ -0,0 +1,326 @@ +/* + * 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 __BLENDER_UTIL_H__ +#define __BLENDER_UTIL_H__ + +#include "util_map.h" +#include "util_path.h" +#include "util_set.h" +#include "util_transform.h" +#include "util_types.h" +#include "util_vector.h" + +/* Hacks to hook into Blender API */ + +extern "C" { + +struct RenderEngine; +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_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); +void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *result); +void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result); +int RE_engine_test_break(struct RenderEngine *engine); +void RE_engine_update_stats(struct RenderEngine *engine, const char *stats, const char *info); +void engine_tag_redraw(void *engine); +void engine_tag_update(void *engine); +int rna_Object_is_modified(void *ob, void *scene, int settings); + +} + +CCL_NAMESPACE_BEGIN + +static inline BL::Mesh object_to_mesh(BL::Object self, BL::Scene scene, bool apply_modifiers, bool render) +{ + ID *data = rna_Object_to_mesh(self.ptr.data, NULL, scene.ptr.data, apply_modifiers, render); + PointerRNA ptr; + RNA_id_pointer_create(data, &ptr); + return BL::Mesh(ptr); +} + +static inline void object_remove_mesh(BL::BlendData data, BL::Mesh mesh) +{ + rna_Main_meshes_remove(data.ptr.data, NULL, mesh.ptr.data); +} + +static inline void object_create_duplilist(BL::Object self, BL::Scene scene) +{ + rna_Object_create_duplilist(self.ptr.data, NULL, scene.ptr.data); +} + +static inline void object_free_duplilist(BL::Object self) +{ + rna_Object_free_duplilist(self.ptr.data, NULL); +} + +static inline bool object_is_modified(BL::Object self, BL::Scene scene, bool preview) +{ + return rna_Object_is_modified(self.ptr.data, scene.ptr.data, (preview)? (1<<0): (1<<1)); +} + +/* Utilities */ + +static inline Transform get_transform(BL::Array array) +{ + Transform tfm; + + /* we assume both types to be just 16 floats, and transpose because blender + use column major matrix order while we use row major */ + memcpy(&tfm, &array, sizeof(float)*16); + tfm = transform_transpose(tfm); + + return tfm; +} + +static inline float2 get_float2(BL::Array array) +{ + return make_float2(array[0], array[1]); +} + +static inline float3 get_float3(BL::Array array) +{ + return make_float3(array[0], array[1], 0.0f); +} + +static inline float3 get_float3(BL::Array array) +{ + return make_float3(array[0], array[1], array[2]); +} + +static inline float3 get_float3(BL::Array array) +{ + return make_float3(array[0], array[1], array[2]); +} + +static inline int4 get_int4(BL::Array array) +{ + return make_int4(array[0], array[1], array[2], array[3]); +} + +static inline uint get_layer(BL::Array array) +{ + uint layer = 0; + + for(uint i = 0; i < 20; i++) + if(array[i]) + layer |= (1 << i); + + return layer; +} + +/*static inline float3 get_float3(PointerRNA& ptr, const char *name) +{ + float3 f; + RNA_float_get_array(&ptr, name, &f.x); + return f; +}*/ + +static inline bool get_boolean(PointerRNA& ptr, const char *name) +{ + return RNA_boolean_get(&ptr, name); +} + +static inline float get_float(PointerRNA& ptr, const char *name) +{ + return RNA_float_get(&ptr, name); +} + +static inline int get_int(PointerRNA& ptr, const char *name) +{ + return RNA_int_get(&ptr, name); +} + +static inline int get_enum(PointerRNA& ptr, const char *name) +{ + return RNA_enum_get(&ptr, name); +} + +static inline string get_enum_identifier(PointerRNA& ptr, const char *name) +{ + PropertyRNA *prop = RNA_struct_find_property(&ptr, name); + const char *identifier = ""; + int value = RNA_property_enum_get(&ptr, prop); + + RNA_property_enum_identifier(NULL, &ptr, prop, value, &identifier); + + return string(identifier); +} + +/* Relative Paths */ + +static inline string blender_absolute_path(BL::BlendData b_data, BL::ID b_id, const string& path) +{ + if(path.size() >= 2 && path[0] == '/' && path[1] == '/') { + string dirname = (b_id.library())? b_id.library().filepath(): b_data.filepath(); + return path_join(path_dirname(dirname), path.substr(2)); + } + + return path; +} + +/* ID Map + * + * Utility class to keep in sync with blender data. + * Used for objects, meshes, lights and shaders. */ + +template +class id_map { +public: + id_map(vector *scene_data_) + { + scene_data = scene_data_; + } + + T *find(BL::ID id) + { + return find(id.ptr.id.data); + } + + T *find(const K& key) + { + if(b_map.find(key) != b_map.end()) { + T *data = b_map[key]; + return data; + } + + return NULL; + } + + void set_recalc(BL::ID id) + { + b_recalc.insert(id.ptr.data); + } + + bool has_recalc() + { + return !(b_recalc.empty()); + } + + void pre_sync() + { + used_set.clear(); + } + + bool sync(T **r_data, BL::ID id) + { + return sync(r_data, id, id.ptr.id.data); + } + + bool sync(T **r_data, BL::ID id, const K& key) + { + T *data = find(key); + bool recalc; + + if(!data) { + /* add data if it didn't exist yet */ + data = new T(); + scene_data->push_back(data); + b_map[key] = data; + recalc = true; + } + else + recalc = (b_recalc.find(id.ptr.data) != b_recalc.end()); + + used(data); + + *r_data = data; + return recalc; + } + + void used(T *data) + { + /* tag data as still in use */ + used_set.insert(data); + } + + void set_default(T *data) + { + b_map[NULL] = data; + } + + bool post_sync(bool do_delete = true) + { + /* remove unused data */ + vector new_scene_data; + typename vector::iterator it; + bool deleted = false; + + for(it = scene_data->begin(); it != scene_data->end(); it++) { + T *data = *it; + + if(do_delete && used_set.find(data) == used_set.end()) { + delete data; + deleted = true; + } + else + new_scene_data.push_back(data); + } + + *scene_data = new_scene_data; + + /* update mapping */ + map new_map; + typedef pair TMapPair; + typename map::iterator jt; + + for(jt = b_map.begin(); jt != b_map.end(); jt++) { + TMapPair& pair = *jt; + + if(used_set.find(pair.second) != used_set.end()) + new_map[pair.first] = pair.second; + } + + used_set.clear(); + b_recalc.clear(); + b_map = new_map; + + return deleted; + } + +protected: + vector *scene_data; + map b_map; + set used_set; + set b_recalc; +}; + +/* Object Key */ + +struct ObjectKey { + void *parent; + int index; + void *ob; + + ObjectKey(void *parent_, int index_, void *ob_) + : parent(parent_), index(index_), ob(ob_) {} + + bool operator<(const ObjectKey& k) const + { return (parent < k.parent || (parent == k.parent && (index < k.index || (index == k.index && ob < k.ob)))); } +}; + +CCL_NAMESPACE_END + +#endif /* __BLENDER_UTIL_H__ */ + diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt new file mode 100644 index 00000000000..c934cded6da --- /dev/null +++ b/intern/cycles/bvh/CMakeLists.txt @@ -0,0 +1,18 @@ + +INCLUDE_DIRECTORIES(. ../kernel ../kernel/svm ../render ../util ../device) + +SET(sources + bvh.cpp + bvh_build.cpp + bvh_node.cpp + bvh_sort.cpp) + +SET(headers + bvh.h + bvh_build.h + bvh_node.h + bvh_params.h + bvh_sort.h) + +ADD_LIBRARY(bvh ${sources} ${headers}) + diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp new file mode 100644 index 00000000000..ab230794774 --- /dev/null +++ b/intern/cycles/bvh/bvh.cpp @@ -0,0 +1,661 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mesh.h" +#include "object.h" +#include "scene.h" + +#include "bvh.h" +#include "bvh_build.h" +#include "bvh_node.h" +#include "bvh_params.h" + +#include "util_cache.h" +#include "util_debug.h" +#include "util_foreach.h" +#include "util_progress.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* Pack Utility */ + +struct BVHStackEntry +{ + const BVHNode *node; + int idx; + + BVHStackEntry(const BVHNode* n = 0, int i = 0) + : node(n), idx(i) + { + } + + int encodeIdx() const + { + return (node->is_leaf())? ~idx: idx; + } +}; + +/* BVH */ + +BVH::BVH(const BVHParams& params_, const vector& objects_) +: params(params_), objects(objects_) +{ +} + +BVH *BVH::create(const BVHParams& params, const vector& objects) +{ + if(params.use_qbvh) + return new QBVH(params, objects); + else + return new RegularBVH(params, objects); +} + +/* Cache */ + +bool BVH::cache_read(CacheData& key) +{ + key.add(¶ms, sizeof(params)); + + foreach(Object *ob, objects) { + key.add(ob->mesh->verts); + key.add(ob->mesh->triangles); + } + + CacheData value; + + if(Cache::global.lookup(key, value)) { + value.read(pack.root_index); + + value.read(pack.nodes); + value.read(pack.object_node); + value.read(pack.tri_woop); + value.read(pack.prim_index); + value.read(pack.prim_object); + value.read(pack.is_leaf); + + return true; + } + + return false; +} + +void BVH::cache_write(CacheData& key) +{ + CacheData value; + + value.add(pack.root_index); + + value.add(pack.nodes); + value.add(pack.object_node); + value.add(pack.tri_woop); + value.add(pack.prim_index); + value.add(pack.prim_object); + value.add(pack.is_leaf); + + Cache::global.insert(key, value); +} + +/* Building */ + +void BVH::build(Progress& progress) +{ + progress.set_substatus("Building BVH"); + + /* cache read */ + CacheData key("bvh"); + + if(params.use_cache) { + progress.set_substatus("Looking in BVH cache"); + + if(cache_read(key)) + return; + } + + /* build nodes */ + vector prim_index; + vector prim_object; + + BVHBuild bvh_build(objects, prim_index, prim_object, params, progress); + BVHNode *root = bvh_build.run(); + + if(progress.get_cancel()) { + if(root) root->deleteSubtree(); + return; + } + + /* todo: get rid of this copy */ + pack.prim_index = prim_index; + pack.prim_object = prim_object; + + /* compute SAH */ + if(!params.top_level) + pack.SAH = root->computeSubtreeSAHCost(params); + + if(progress.get_cancel()) { + root->deleteSubtree(); + return; + } + + /* pack triangles */ + progress.set_substatus("Packing BVH triangles"); + pack_triangles(); + + if(progress.get_cancel()) { + root->deleteSubtree(); + return; + } + + /* pack nodes */ + progress.set_substatus("Packing BVH nodes"); + array tmp_prim_object = pack.prim_object; + pack_nodes(tmp_prim_object, root); + + /* free build nodes */ + root->deleteSubtree(); + + if(progress.get_cancel()) return; + + /* cache write */ + if(params.use_cache) { + progress.set_substatus("Writing BVH cache"); + cache_write(key); + } +} + +/* Refitting */ + +void BVH::refit(Progress& progress) +{ + progress.set_substatus("Packing BVH triangles"); + pack_triangles(); + + if(progress.get_cancel()) return; + + progress.set_substatus("Refitting BVH nodes"); + refit_nodes(); +} + +/* Triangles */ + +void BVH::pack_triangle(int idx, float4 woop[3]) +{ + /* create Woop triangle */ + int tob = pack.prim_object[idx]; + const Mesh *mesh = objects[tob]->mesh; + int tidx = pack.prim_index[idx]; + const int *vidx = mesh->triangles[tidx].v; + const float3* vpos = &mesh->verts[0]; + float3 v0 = vpos[vidx[0]]; + float3 v1 = vpos[vidx[1]]; + float3 v2 = vpos[vidx[2]]; + + float3 r0 = v0 - v2; + float3 r1 = v1 - v2; + float3 r2 = cross(r0, r1); + + if(dot(r0, r0) == 0.0f || dot(r1, r1) == 0.0f || dot(r2, r2) == 0.0f) { + /* degenerate */ + woop[0] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + woop[1] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + woop[2] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + } + else { + Transform t = make_transform( + r0.x, r1.x, r2.x, v2.x, + r0.y, r1.y, r2.y, v2.y, + r0.z, r1.z, r2.z, v2.z, + 0.0f, 0.0f, 0.0f, 1.0f); + + t = transform_inverse(t); + + woop[0] = make_float4(t.z.x, t.z.y, t.z.z, -t.z.w); + woop[1] = make_float4(t.x.x, t.x.y, t.x.z, t.x.w); + woop[2] = make_float4(t.y.x, t.y.y, t.y.z, t.y.w); + } +} + +void BVH::pack_triangles() +{ + int nsize = TRI_NODE_SIZE; + size_t tidx_size = pack.prim_index.size(); + + pack.tri_woop.clear(); + pack.tri_woop.resize(tidx_size * nsize); + + for(unsigned int i = 0; i < tidx_size; i++) { + if(pack.prim_index[i] != -1) { + float4 woop[3]; + + pack_triangle(i, woop); + memcpy(&pack.tri_woop[i * nsize], woop, sizeof(float4)*3); + } + } +} + +/* Pack Instances */ + +void BVH::pack_instances(size_t nodes_size) +{ + /* The BVH's for instances are built separately, but for traversal all + BVH's are stored in global arrays. This function merges them into the + top level BVH, adjusting indexes and offsets where appropriate. */ + bool use_qbvh = params.use_qbvh; + size_t nsize = (use_qbvh)? BVH_QNODE_SIZE: BVH_NODE_SIZE; + + /* adjust primitive index to point to the triangle in the global array, for + meshes with transform applied and already in the top level BVH */ + for(size_t i = 0; i < pack.prim_index.size(); i++) + if(pack.prim_index[i] != -1) + pack.prim_index[i] += objects[pack.prim_object[i]]->mesh->tri_offset; + + /* track offsets of instanced BVH data in global array */ + size_t tri_offset = pack.prim_index.size(); + size_t nodes_offset = nodes_size; + + /* clear array that gives the node indexes for instanced objects */ + pack.object_node.clear(); + + /* reserve */ + size_t prim_index_size = pack.prim_index.size(); + size_t tri_woop_size = pack.tri_woop.size(); + + size_t pack_prim_index_offset = prim_index_size; + size_t pack_tri_woop_offset = tri_woop_size; + size_t pack_nodes_offset = nodes_size; + size_t object_offset = 0; + + foreach(Object *ob, objects) { + Mesh *mesh = ob->mesh; + BVH *bvh = mesh->bvh; + + if(!mesh->transform_applied) { + prim_index_size += bvh->pack.prim_index.size(); + tri_woop_size += bvh->pack.tri_woop.size(); + nodes_size += bvh->pack.nodes.size()*nsize; + } + } + + pack.prim_index.resize(prim_index_size); + pack.prim_object.resize(prim_index_size); + pack.tri_woop.resize(tri_woop_size); + pack.nodes.resize(nodes_size); + pack.object_node.resize(objects.size()); + + int *pack_prim_index = &pack.prim_index[0]; + int *pack_prim_object = &pack.prim_object[0]; + float4 *pack_tri_woop = &pack.tri_woop[0]; + int4 *pack_nodes = &pack.nodes[0]; + + /* merge */ + foreach(Object *ob, objects) { + Mesh *mesh = ob->mesh; + + /* if mesh transform is applied, that means it's already in the top + level BVH, and we don't need to merge it in */ + if(mesh->transform_applied) { + pack.object_node[object_offset++] = 0; + continue; + } + + BVH *bvh = mesh->bvh; + + int noffset = nodes_offset/nsize; + int mesh_tri_offset = mesh->tri_offset; + + /* fill in node indexes for instances */ + if(bvh->pack.is_leaf[0]) + pack.object_node[object_offset++] = -noffset-1; + else + pack.object_node[object_offset++] = noffset; + + /* merge primitive and object indexes */ + { + size_t bvh_prim_index_size = bvh->pack.prim_index.size(); + int *bvh_prim_index = &bvh->pack.prim_index[0]; + + for(size_t i = 0; i < bvh_prim_index_size; i++) { + pack_prim_index[pack_prim_index_offset] = bvh_prim_index[i] + mesh_tri_offset; + pack_prim_object[pack_prim_index_offset] = 0; // unused for instances + pack_prim_index_offset++; + } + } + + /* merge triangle intersection data */ + { + memcpy(pack_tri_woop+pack_tri_woop_offset, &bvh->pack.tri_woop[0], + bvh->pack.tri_woop.size()*sizeof(float4)); + pack_tri_woop_offset += bvh->pack.tri_woop.size(); + } + + /* merge nodes */ + { + 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]; + + 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)); + + /* modify offsets into arrays */ + int4 data = bvh_nodes[i + nsize_bbox]; + + if(bvh_is_leaf[j]) { + data.x += tri_offset; + data.y += tri_offset; + } + else { + data.x += (data.x < 0)? -noffset: noffset; + data.y += (data.y < 0)? -noffset: noffset; + + if(use_qbvh) { + data.z += (data.z < 0)? -noffset: noffset; + data.w += (data.w < 0)? -noffset: noffset; + } + } + + pack_nodes[pack_nodes_offset + nsize_bbox] = data; + + if(use_qbvh) + pack_nodes[pack_nodes_offset + nsize_bbox+1] = bvh_nodes[i + nsize_bbox+1]; + + pack_nodes_offset += nsize; + } + } + + nodes_offset += bvh->pack.nodes.size(); + tri_offset += bvh->pack.prim_index.size(); + } +} + +/* Regular BVH */ + +RegularBVH::RegularBVH(const BVHParams& params_, const vector& objects_) +: BVH(params_, objects_) +{ +} + +void RegularBVH::pack_leaf(const BVHStackEntry& e, const LeafNode *leaf) +{ + if(leaf->num_triangles() == 1 && pack.prim_index[leaf->m_lo] == -1) + /* object */ + pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, ~(leaf->m_lo), 0); + else + /* triangle */ + pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, leaf->m_lo, leaf->m_hi); +} + +void RegularBVH::pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1) +{ + pack_node(e.idx, e0.node->m_bounds, e1.node->m_bounds, e0.encodeIdx(), e1.encodeIdx()); +} + +void RegularBVH::pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1) +{ + int4 data[BVH_NODE_SIZE] = + { + make_int4(__float_as_int(b0.min.x), __float_as_int(b0.max.x), __float_as_int(b0.min.y), __float_as_int(b0.max.y)), + make_int4(__float_as_int(b1.min.x), __float_as_int(b1.max.x), __float_as_int(b1.min.y), __float_as_int(b1.max.y)), + make_int4(__float_as_int(b0.min.z), __float_as_int(b0.max.z), __float_as_int(b1.min.z), __float_as_int(b1.max.z)), + make_int4(c0, c1, 0, 0) + }; + + memcpy(&pack.nodes[idx * BVH_NODE_SIZE], data, sizeof(int4)*BVH_NODE_SIZE); +} + +void RegularBVH::pack_nodes(const array& prims, const BVHNode *root) +{ + size_t node_size = root->getSubtreeSize(BVH_STAT_NODE_COUNT); + + /* resize arrays */ + pack.nodes.clear(); + pack.is_leaf.clear(); + pack.is_leaf.resize(node_size); + + /* for top level BVH, first merge existing BVH's so we know the offsets */ + if(params.top_level) + pack_instances(node_size*BVH_NODE_SIZE); + else + pack.nodes.resize(node_size*BVH_NODE_SIZE); + + int nextNodeIdx = 0; + + vector stack; + stack.push_back(BVHStackEntry(root, nextNodeIdx++)); + + while(stack.size()) { + BVHStackEntry e = stack.back(); + stack.pop_back(); + + pack.is_leaf[e.idx] = e.node->is_leaf(); + + if(e.node->is_leaf()) { + /* leaf node */ + const LeafNode* leaf = reinterpret_cast(e.node); + pack_leaf(e, leaf); + } + else { + /* innner node */ + stack.push_back(BVHStackEntry(e.node->get_child(0), nextNodeIdx++)); + stack.push_back(BVHStackEntry(e.node->get_child(1), nextNodeIdx++)); + + pack_inner(e, stack[stack.size()-2], stack[stack.size()-1]); + } + } + + /* root index to start traversal at, to handle case of single leaf node */ + pack.root_index = (pack.is_leaf[0])? -1: 0; +} + +void RegularBVH::refit_nodes() +{ + assert(!params.top_level); + + BoundBox bbox; + refit_node(0, pack.is_leaf[0], bbox); +} + +void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox) +{ + int4 *data = &pack.nodes[idx*4]; + + int c0 = data[3].x; + int c1 = data[3].y; + + if(leaf) { + /* refit leaf node */ + for(int tri = c0; tri < c1; tri++) { + int tidx = pack.prim_index[tri]; + int tob = pack.prim_object[tri]; + Object *ob = objects[tob]; + + if(tidx == -1) { + /* object instance */ + bbox.grow(ob->bounds); + } + else { + /* triangles */ + const Mesh *mesh = ob->mesh; + int tri_offset = (params.top_level)? mesh->tri_offset: 0; + const int *vidx = mesh->triangles[tidx - tri_offset].v; + const float3 *vpos = &mesh->verts[0]; + + bbox.grow(vpos[vidx[0]]); + bbox.grow(vpos[vidx[1]]); + bbox.grow(vpos[vidx[2]]); + } + } + + pack_node(idx, bbox, bbox, c0, c1); + } + else { + /* refit inner node, set bbox from children */ + BoundBox bbox0, bbox1; + + refit_node((c0 < 0)? -c0-1: c0, (c0 < 0), bbox0); + refit_node((c1 < 0)? -c1-1: c1, (c1 < 0), bbox1); + + bbox.grow(bbox0); + bbox.grow(bbox1); + + pack_node(idx, bbox0, bbox1, c0, c1); + } +} + +/* QBVH */ + +QBVH::QBVH(const BVHParams& params_, const vector& objects_) +: BVH(params_, objects_) +{ + params.use_qbvh = true; +} + +void QBVH::pack_leaf(const BVHStackEntry& e, const LeafNode *leaf) +{ + float4 data[BVH_QNODE_SIZE]; + + memset(data, 0, sizeof(data)); + + if(leaf->num_triangles() == 1 && pack.prim_index[leaf->m_lo] == -1) { + /* object */ + data[6].x = __int_as_float(~(leaf->m_lo)); + data[6].y = __int_as_float(0); + } + else { + /* triangle */ + data[6].x = __int_as_float(leaf->m_lo); + data[6].y = __int_as_float(leaf->m_hi); + } + + memcpy(&pack.nodes[e.idx * BVH_QNODE_SIZE], data, sizeof(float4)*BVH_QNODE_SIZE); +} + +void QBVH::pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num) +{ + float4 data[BVH_QNODE_SIZE]; + + for(int i = 0; i < num; i++) { + float3 bb_min = en[i].node->m_bounds.min; + float3 bb_max = en[i].node->m_bounds.max; + + data[0][i] = bb_min.x; + data[1][i] = bb_max.x; + data[2][i] = bb_min.y; + data[3][i] = bb_max.y; + data[4][i] = bb_min.z; + data[5][i] = bb_max.z; + + data[6][i] = __int_as_float(en[i].encodeIdx()); + data[7][i] = 0.0f; + } + + for(int i = num; i < 4; i++) { + data[0][i] = 0.0f; + data[1][i] = 0.0f; + data[2][i] = 0.0f; + + data[3][i] = 0.0f; + data[4][i] = 0.0f; + data[5][i] = 0.0f; + + data[6][i] = __int_as_float(0); + data[7][i] = 0.0f; + } + + memcpy(&pack.nodes[e.idx * BVH_QNODE_SIZE], data, sizeof(float4)*BVH_QNODE_SIZE); +} + +/* Quad SIMD Nodes */ + +void QBVH::pack_nodes(const array& prims, const BVHNode *root) +{ + size_t node_size = root->getSubtreeSize(BVH_STAT_NODE_COUNT); + + /* resize arrays */ + pack.nodes.clear(); + pack.is_leaf.clear(); + pack.is_leaf.resize(node_size); + + /* for top level BVH, first merge existing BVH's so we know the offsets */ + if(params.top_level) + pack_instances(node_size*BVH_QNODE_SIZE); + else + pack.nodes.resize(node_size*BVH_QNODE_SIZE); + + int nextNodeIdx = 0; + + vector stack; + stack.push_back(BVHStackEntry(root, nextNodeIdx++)); + + while(stack.size()) { + BVHStackEntry e = stack.back(); + stack.pop_back(); + + pack.is_leaf[e.idx] = e.node->is_leaf(); + + if(e.node->is_leaf()) { + /* leaf node */ + const LeafNode* leaf = reinterpret_cast(e.node); + pack_leaf(e, leaf); + } + else { + /* inner node */ + const BVHNode *node = e.node; + const BVHNode *node0 = node->get_child(0); + const BVHNode *node1 = node->get_child(1); + + /* collect nodes */ + const BVHNode *nodes[4]; + int numnodes = 0; + + if(node0->is_leaf()) { + nodes[numnodes++] = node0; + } + else { + nodes[numnodes++] = node0->get_child(0); + nodes[numnodes++] = node0->get_child(1); + } + + if(node1->is_leaf()) { + nodes[numnodes++] = node1; + } + else { + nodes[numnodes++] = node1->get_child(0); + nodes[numnodes++] = node1->get_child(1); + } + + /* push entries on the stack */ + for(int i = 0; i < numnodes; i++) + stack.push_back(BVHStackEntry(nodes[i], nextNodeIdx++)); + + /* set node */ + pack_inner(e, &stack[stack.size()-numnodes], numnodes); + } + } + + /* root index to start traversal at, to handle case of single leaf node */ + pack.root_index = (pack.is_leaf[0])? -1: 0; +} + +void QBVH::refit_nodes() +{ + assert(0); /* todo */ +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/bvh/bvh.h b/intern/cycles/bvh/bvh.h new file mode 100644 index 00000000000..acc25291da3 --- /dev/null +++ b/intern/cycles/bvh/bvh.h @@ -0,0 +1,152 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BVH_H__ +#define __BVH_H__ + +#include "bvh_params.h" + +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class BVHNode; +class BVHStackEntry; +class BVHParams; +class BoundBox; +class CacheData; +class LeafNode; +class Object; +class Progress; + +#define BVH_NODE_SIZE 4 +#define BVH_QNODE_SIZE 8 +#define BVH_ALIGN 4096 +#define TRI_NODE_SIZE 3 + +/* Packed BVH + * + * BVH stored as it will be used for traversal on the rendering device. */ + +struct PackedBVH { + /* BVH nodes storage, one node is 4x int4, and contains two bounding boxes, + and child, triangle or object indexes dependening on the node type */ + array nodes; + /* object index to BVH node index mapping for instances */ + array object_node; + /* precomputed triangle intersection data, one triangle is 4x float4 */ + array tri_woop; + /* mapping from BVH primitive index to true primitive index, as primitives + may be duplicated due to spatial splits. -1 for instances. */ + array prim_index; + /* mapping from BVH primitive index, to the object id of that primitive. */ + array prim_object; + /* quick array to lookup if a node is a leaf, not used for traversal, only + for instance BVH merging */ + array is_leaf; + + /* index of the root node. */ + int root_index; + + /* surface area heuristic, for building top level BVH */ + float SAH; + + PackedBVH() + { + root_index = 0; + SAH = 0.0f; + } +}; + +/* BVH */ + +class BVH +{ +public: + PackedBVH pack; + BVHParams params; + vector objects; + + static BVH *create(const BVHParams& params, const vector& objects); + + void build(Progress& progress); + void refit(Progress& progress); + +protected: + BVH(const BVHParams& params, const vector& objects); + + /* cache */ + bool cache_read(CacheData& key); + void cache_write(CacheData& key); + + /* triangles */ + void pack_triangles(); + void pack_triangle(int idx, float4 woop[3]); + + /* merge instance BVH's */ + void pack_instances(size_t nodes_size); + + /* for subclasses to implement */ + virtual void pack_nodes(const array& prims, const BVHNode *root) = 0; + virtual void refit_nodes() = 0; +}; + +/* Regular BVH + * + * Typical BVH with each node having two children. */ + +class RegularBVH : public BVH { +protected: + /* constructor */ + friend class BVH; + RegularBVH(const BVHParams& params, const vector& objects); + + /* pack */ + void pack_nodes(const array& prims, const BVHNode *root); + void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf); + void pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1); + void pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1); + + /* refit */ + void refit_nodes(); + void refit_node(int idx, bool leaf, BoundBox& bbox); +}; + +/* QBVH + * + * Quad BVH, with each node having four children, to use with SIMD instructions. */ + +class QBVH : public BVH { +protected: + /* constructor */ + friend class BVH; + QBVH(const BVHParams& params, const vector& objects); + + /* pack */ + void pack_nodes(const array& prims, const BVHNode *root); + void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf); + void pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num); + + /* refit */ + void refit_nodes(); +}; + +CCL_NAMESPACE_END + +#endif /* __BVH_H__ */ + diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp new file mode 100644 index 00000000000..6a9cc915f01 --- /dev/null +++ b/intern/cycles/bvh/bvh_build.cpp @@ -0,0 +1,545 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "bvh_build.h" +#include "bvh_node.h" +#include "bvh_params.h" +#include "bvh_sort.h" + +#include "mesh.h" +#include "object.h" +#include "scene.h" + +#include "util_algorithm.h" +#include "util_foreach.h" +#include "util_progress.h" +#include "util_time.h" + +CCL_NAMESPACE_BEGIN + +/* Constructor / Destructor */ + +BVHBuild::BVHBuild(const vector& objects_, + vector& prim_index_, vector& prim_object_, + const BVHParams& params_, Progress& progress_) +: objects(objects_), + prim_index(prim_index_), + prim_object(prim_object_), + params(params_), + progress(progress_), + progress_start_time(0.0) +{ + spatial_min_overlap = 0.0f; + progress_num_duplicates = 0; +} + +BVHBuild::~BVHBuild() +{ +} + +/* Adding References */ + +void BVHBuild::add_reference_mesh(NodeSpec& root, Mesh *mesh, int i) +{ + for(uint j = 0; j < mesh->triangles.size(); j++) { + Mesh::Triangle t = mesh->triangles[j]; + Reference ref; + + ref.prim_index = j; + ref.prim_object = i; + + for(int k = 0; k < 3; k++) { + float3 pt = mesh->verts[t.v[k]]; + ref.bounds.grow(pt); + } + + references.push_back(ref); + root.bounds.grow(ref.bounds); + } +} + +void BVHBuild::add_reference_object(NodeSpec& root, Object *ob, int i) +{ + Reference ref; + + ref.prim_index = -1; + ref.prim_object = i; + ref.bounds = ob->bounds; + + references.push_back(ref); + root.bounds.grow(ref.bounds); +} + +void BVHBuild::add_references(NodeSpec& root) +{ + /* init root spec */ + root.num = 0; + root.bounds = BoundBox(); + + /* add objects */ + int i = 0; + + foreach(Object *ob, objects) { + if(params.top_level) { + if(ob->mesh->transform_applied) + add_reference_mesh(root, ob->mesh, i); + else + add_reference_object(root, ob, i); + } + else + add_reference_mesh(root, ob->mesh, i); + + i++; + + if(progress.get_cancel()) return; + } + + /* happens mostly on empty meshes */ + if(!root.bounds.valid()) + root.bounds.grow(make_float3(0.0f, 0.0f, 0.0f)); + + root.num = references.size(); +} + +/* Build */ + +BVHNode* BVHBuild::run() +{ + NodeSpec root; + + /* add references */ + add_references(root); + + if(progress.get_cancel()) return NULL; + + /* init spatial splits */ + if(params.top_level) /* todo: get rid of this */ + params.use_spatial_split = false; + + spatial_min_overlap = root.bounds.area() * params.spatial_split_alpha; + spatial_right_bounds.clear(); + spatial_right_bounds.resize(max(root.num, (int)BVHParams::NUM_SPATIAL_BINS) - 1); + + /* init progress updates */ + progress_num_duplicates = 0; + progress_start_time = time_dt(); + + /* build recursively */ + return build_node(root, 0, 0.0f, 1.0f); +} + +void BVHBuild::progress_update(float progress_start, float progress_end) +{ + if(time_dt() - progress_start_time < 0.25f) + return; + + float duplicates = (float)progress_num_duplicates/(float)references.size(); + string msg = string_printf("Building BVH %.0f%%, duplicates %.0f%%", + progress_start*100.0f, duplicates*100.0f); + + progress.set_substatus(msg); + progress_start_time = time_dt(); +} + +BVHNode* BVHBuild::build_node(const NodeSpec& spec, int level, float progress_start, float progress_end) +{ + /* progress update */ + progress_update(progress_start, progress_end); + if(progress.get_cancel()) return NULL; + + /* small enough or too deep => create leaf. */ + if(spec.num <= params.min_leaf_size || level >= BVHParams::MAX_DEPTH) + return create_leaf_node(spec); + + /* find split candidates. */ + float area = spec.bounds.area(); + float leafSAH = area * params.triangle_cost(spec.num); + float nodeSAH = area * params.node_cost(2); + ObjectSplit object = find_object_split(spec, nodeSAH); + SpatialSplit spatial; + + if(params.use_spatial_split && level < BVHParams::MAX_SPATIAL_DEPTH) { + BoundBox overlap = object.left_bounds; + overlap.intersect(object.right_bounds); + + if(overlap.area() >= spatial_min_overlap) + spatial = find_spatial_split(spec, nodeSAH); + } + + /* leaf SAH is the lowest => create leaf. */ + float minSAH = min(min(leafSAH, object.sah), spatial.sah); + + if(minSAH == leafSAH && spec.num <= params.max_leaf_size) + return create_leaf_node(spec); + + /* perform split. */ + NodeSpec left, right; + + if(params.use_spatial_split && minSAH == spatial.sah) + do_spatial_split(left, right, spec, spatial); + if(!left.num || !right.num) + do_object_split(left, right, spec, object); + + /* create inner node. */ + progress_num_duplicates += left.num + right.num - spec.num; + + float progress_mid = lerp(progress_start, progress_end, (float)right.num / (float)(left.num + right.num)); + + BVHNode* rightNode = build_node(right, level + 1, progress_start, progress_mid); + if(progress.get_cancel()) { + if(rightNode) rightNode->deleteSubtree(); + return NULL; + } + + BVHNode* leftNode = build_node(left, level + 1, progress_mid, progress_end); + if(progress.get_cancel()) { + if(leftNode) leftNode->deleteSubtree(); + return NULL; + } + + return new InnerNode(spec.bounds, leftNode, rightNode); +} + +BVHNode *BVHBuild::create_object_leaf_nodes(const Reference *ref, int num) +{ + if(num == 0) { + BoundBox bounds; + return new LeafNode(bounds, 0, 0); + } + else if(num == 1) { + prim_index.push_back(ref[0].prim_index); + prim_object.push_back(ref[0].prim_object); + return new LeafNode(ref[0].bounds, prim_index.size()-1, prim_index.size()); + } + else { + int mid = num/2; + BVHNode *leaf0 = create_object_leaf_nodes(ref, mid); + BVHNode *leaf1 = create_object_leaf_nodes(ref+mid, num-mid); + + BoundBox bounds; + bounds.grow(leaf0->m_bounds); + bounds.grow(leaf1->m_bounds); + + return new InnerNode(bounds, leaf0, leaf1); + } +} + +BVHNode* BVHBuild::create_leaf_node(const NodeSpec& spec) +{ + vector& p_index = prim_index; + vector& p_object = prim_object; + BoundBox bounds; + int num = 0; + + for(int i = 0; i < spec.num; i++) { + if(references.back().prim_index != -1) { + p_index.push_back(references.back().prim_index); + p_object.push_back(references.back().prim_object); + bounds.grow(references.back().bounds); + references.pop_back(); + num++; + } + } + + BVHNode *leaf = NULL; + + if(num > 0) { + leaf = new LeafNode(bounds, p_index.size() - num, p_index.size()); + + if(num == spec.num) + return leaf; + } + + /* while there may be multiple triangles in a leaf, for object primitives + * we want them to be the only one, so we */ + int ob_num = spec.num - num; + BVHNode *oleaf = create_object_leaf_nodes(&references.back() - (ob_num - 1), ob_num); + for(int i = 0; i < ob_num; i++) + references.pop_back(); + + if(leaf) + return new InnerNode(spec.bounds, leaf, oleaf); + else + return oleaf; +} + +/* Object Split */ + +BVHBuild::ObjectSplit BVHBuild::find_object_split(const NodeSpec& spec, float nodeSAH) +{ + ObjectSplit split; + const Reference *ref_ptr = &references[references.size() - spec.num]; + + for(int dim = 0; dim < 3; dim++) { + /* sort references */ + bvh_reference_sort(references.size() - spec.num, references.size(), &references[0], dim); + + /* sweep right to left and determine bounds. */ + BoundBox right_bounds; + + for(int i = spec.num - 1; i > 0; i--) { + right_bounds.grow(ref_ptr[i].bounds); + spatial_right_bounds[i - 1] = right_bounds; + } + + /* sweep left to right and select lowest SAH. */ + BoundBox left_bounds; + + for(int i = 1; i < spec.num; i++) { + left_bounds.grow(ref_ptr[i - 1].bounds); + right_bounds = spatial_right_bounds[i - 1]; + + float sah = nodeSAH + + left_bounds.area() * params.triangle_cost(i) + + right_bounds.area() * params.triangle_cost(spec.num - i); + + if(sah < split.sah) { + split.sah = sah; + split.dim = dim; + split.num_left = i; + split.left_bounds = left_bounds; + split.right_bounds = right_bounds; + } + } + } + + return split; +} + +void BVHBuild::do_object_split(NodeSpec& left, NodeSpec& right, const NodeSpec& spec, const ObjectSplit& split) +{ + /* sort references according to split */ + int start = references.size() - spec.num; + int end = references.size(); /* todo: is this right? */ + + bvh_reference_sort(start, end, &references[0], split.dim); + + /* split node specs */ + left.num = split.num_left; + left.bounds = split.left_bounds; + right.num = spec.num - split.num_left; + right.bounds = split.right_bounds; +} + +/* Spatial Split */ + +BVHBuild::SpatialSplit BVHBuild::find_spatial_split(const NodeSpec& spec, float nodeSAH) +{ + /* initialize bins. */ + float3 origin = spec.bounds.min; + float3 binSize = (spec.bounds.max - origin) * (1.0f / (float)BVHParams::NUM_SPATIAL_BINS); + float3 invBinSize = 1.0f / binSize; + + for(int dim = 0; dim < 3; dim++) { + for(int i = 0; i < BVHParams::NUM_SPATIAL_BINS; i++) { + SpatialBin& bin = spatial_bins[dim][i]; + + bin.bounds = BoundBox(); + bin.enter = 0; + bin.exit = 0; + } + } + + /* chop references into bins. */ + for(unsigned int refIdx = references.size() - spec.num; refIdx < references.size(); refIdx++) { + const Reference& ref = references[refIdx]; + float3 firstBinf = (ref.bounds.min - origin) * invBinSize; + float3 lastBinf = (ref.bounds.max - origin) * invBinSize; + int3 firstBin = make_int3(firstBinf.x, firstBinf.y, firstBinf.z); + int3 lastBin = make_int3(lastBinf.x, lastBinf.y, lastBinf.z); + + firstBin = clamp(firstBin, 0, BVHParams::NUM_SPATIAL_BINS - 1); + lastBin = clamp(lastBin, firstBin, BVHParams::NUM_SPATIAL_BINS - 1); + + for(int dim = 0; dim < 3; dim++) { + Reference currRef = ref; + + for(int i = firstBin[dim]; i < lastBin[dim]; i++) { + Reference leftRef, rightRef; + + split_reference(leftRef, rightRef, currRef, dim, origin[dim] + binSize[dim] * (float)(i + 1)); + spatial_bins[dim][i].bounds.grow(leftRef.bounds); + currRef = rightRef; + } + + spatial_bins[dim][lastBin[dim]].bounds.grow(currRef.bounds); + spatial_bins[dim][firstBin[dim]].enter++; + spatial_bins[dim][lastBin[dim]].exit++; + } + } + + /* select best split plane. */ + SpatialSplit split; + + for(int dim = 0; dim < 3; dim++) { + /* sweep right to left and determine bounds. */ + BoundBox right_bounds; + + for(int i = BVHParams::NUM_SPATIAL_BINS - 1; i > 0; i--) { + right_bounds.grow(spatial_bins[dim][i].bounds); + spatial_right_bounds[i - 1] = right_bounds; + } + + /* sweep left to right and select lowest SAH. */ + BoundBox left_bounds; + int leftNum = 0; + int rightNum = spec.num; + + for(int i = 1; i < BVHParams::NUM_SPATIAL_BINS; i++) { + left_bounds.grow(spatial_bins[dim][i - 1].bounds); + leftNum += spatial_bins[dim][i - 1].enter; + rightNum -= spatial_bins[dim][i - 1].exit; + + float sah = nodeSAH + + left_bounds.area() * params.triangle_cost(leftNum) + + spatial_right_bounds[i - 1].area() * params.triangle_cost(rightNum); + + if(sah < split.sah) { + split.sah = sah; + split.dim = dim; + split.pos = origin[dim] + binSize[dim] * (float)i; + } + } + } + + return split; +} + +void BVHBuild::do_spatial_split(NodeSpec& left, NodeSpec& right, const NodeSpec& spec, const SpatialSplit& split) +{ + /* Categorize references and compute bounds. + * + * Left-hand side: [left_start, left_end[ + * Uncategorized/split: [left_end, right_start[ + * Right-hand side: [right_start, refs.size()[ */ + + vector& refs = references; + int left_start = refs.size() - spec.num; + int left_end = left_start; + int right_start = refs.size(); + + left.bounds = right.bounds = BoundBox(); + + for(int i = left_end; i < right_start; i++) { + if(refs[i].bounds.max[split.dim] <= split.pos) { + /* entirely on the left-hand side */ + left.bounds.grow(refs[i].bounds); + swap(refs[i], refs[left_end++]); + } + else if(refs[i].bounds.min[split.dim] >= split.pos) { + /* entirely on the right-hand side */ + right.bounds.grow(refs[i].bounds); + swap(refs[i--], refs[--right_start]); + } + } + + /* duplicate or unsplit references intersecting both sides. */ + while(left_end < right_start) { + /* split reference. */ + Reference lref, rref; + + split_reference(lref, rref, refs[left_end], split.dim, split.pos); + + /* compute SAH for duplicate/unsplit candidates. */ + BoundBox lub = left.bounds; // Unsplit to left: new left-hand bounds. + BoundBox rub = right.bounds; // Unsplit to right: new right-hand bounds. + BoundBox ldb = left.bounds; // Duplicate: new left-hand bounds. + BoundBox rdb = right.bounds; // Duplicate: new right-hand bounds. + + lub.grow(refs[left_end].bounds); + rub.grow(refs[left_end].bounds); + ldb.grow(lref.bounds); + rdb.grow(rref.bounds); + + float lac = params.triangle_cost(left_end - left_start); + float rac = params.triangle_cost(refs.size() - right_start); + float lbc = params.triangle_cost(left_end - left_start + 1); + float rbc = params.triangle_cost(refs.size() - right_start + 1); + + float unsplitLeftSAH = lub.area() * lbc + right.bounds.area() * rac; + float unsplitRightSAH = left.bounds.area() * lac + rub.area() * rbc; + float duplicateSAH = ldb.area() * lbc + rdb.area() * rbc; + float minSAH = min(min(unsplitLeftSAH, unsplitRightSAH), duplicateSAH); + + if(minSAH == unsplitLeftSAH) { + /* unsplit to left */ + left.bounds = lub; + left_end++; + } + else if(minSAH == unsplitRightSAH) { + /* unsplit to right */ + right.bounds = rub; + swap(refs[left_end], refs[--right_start]); + } + else { + /* duplicate */ + left.bounds = ldb; + right.bounds = rdb; + refs[left_end++] = lref; + refs.push_back(rref); + } + } + + left.num = left_end - left_start; + right.num = refs.size() - right_start; +} + +void BVHBuild::split_reference(Reference& left, Reference& right, const Reference& ref, int dim, float pos) +{ + /* initialize references. */ + left.prim_index = right.prim_index = ref.prim_index; + left.prim_object = right.prim_object = ref.prim_object; + left.bounds = right.bounds = BoundBox(); + + /* loop over vertices/edges. */ + Object *ob = objects[ref.prim_object]; + const Mesh *mesh = ob->mesh; + const int *inds = mesh->triangles[ref.prim_index].v; + const float3 *verts = &mesh->verts[0]; + const float3* v1 = &verts[inds[2]]; + + for(int i = 0; i < 3; i++) { + const float3* v0 = v1; + int vindex = inds[i]; + v1 = &verts[vindex]; + float v0p = (*v0)[dim]; + float v1p = (*v1)[dim]; + + /* insert vertex to the boxes it belongs to. */ + if(v0p <= pos) + left.bounds.grow(*v0); + + if(v0p >= pos) + right.bounds.grow(*v0); + + /* edge intersects the plane => insert intersection to both boxes. */ + if((v0p < pos && v1p > pos) || (v0p > pos && v1p < pos)) { + float3 t = lerp(*v0, *v1, clamp((pos - v0p) / (v1p - v0p), 0.0f, 1.0f)); + left.bounds.grow(t); + right.bounds.grow(t); + } + } + + /* intersect with original bounds. */ + left.bounds.max[dim] = pos; + right.bounds.min[dim] = pos; + left.bounds.intersect(ref.bounds); + right.bounds.intersect(ref.bounds); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/bvh/bvh_build.h b/intern/cycles/bvh/bvh_build.h new file mode 100644 index 00000000000..1fa1951d7f2 --- /dev/null +++ b/intern/cycles/bvh/bvh_build.h @@ -0,0 +1,152 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BVH_BUILD_H__ +#define __BVH_BUILD_H__ + +#include + +#include "bvh.h" + +#include "util_boundbox.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class BVHParams; +class Mesh; +class Object; +class Progress; + +/* BVH Builder */ + +class BVHBuild +{ +public: + struct Reference + { + int prim_index; + int prim_object; + BoundBox bounds; + + Reference() + { + } + }; + + struct NodeSpec + { + int num; + BoundBox bounds; + + NodeSpec() + { + num = 0; + } + }; + + BVHBuild( + const vector& objects, + vector& prim_index, + vector& prim_object, + const BVHParams& params, + Progress& progress); + ~BVHBuild(); + + BVHNode *run(); + +protected: + /* adding references */ + void add_reference_mesh(NodeSpec& root, Mesh *mesh, int i); + void add_reference_object(NodeSpec& root, Object *ob, int i); + void add_references(NodeSpec& root); + + /* building */ + BVHNode *build_node(const NodeSpec& spec, int level, float progress_start, float progress_end); + BVHNode *create_leaf_node(const NodeSpec& spec); + BVHNode *create_object_leaf_nodes(const Reference *ref, int num); + + void progress_update(float progress_start, float progress_end); + + /* object splits */ + struct ObjectSplit + { + float sah; + int dim; + int num_left; + BoundBox left_bounds; + BoundBox right_bounds; + + ObjectSplit() + : sah(FLT_MAX), dim(0), num_left(0) + { + } + }; + + ObjectSplit find_object_split(const NodeSpec& spec, float nodeSAH); + void do_object_split(NodeSpec& left, NodeSpec& right, const NodeSpec& spec, const ObjectSplit& split); + + /* spatial splits */ + struct SpatialSplit + { + float sah; + int dim; + float pos; + + SpatialSplit() + : sah(FLT_MAX), dim(0), pos(0.0f) + { + } + }; + + struct SpatialBin + { + BoundBox bounds; + int enter; + int exit; + }; + + SpatialSplit find_spatial_split(const NodeSpec& spec, float nodeSAH); + void do_spatial_split(NodeSpec& left, NodeSpec& right, const NodeSpec& spec, const SpatialSplit& split); + void split_reference(Reference& left, Reference& right, const Reference& ref, int dim, float pos); + + /* objects and primitive references */ + vector objects; + vector references; + + /* output primitive indexes and objects */ + vector& prim_index; + vector& prim_object; + + /* build parameters */ + BVHParams params; + + /* progress reporting */ + Progress& progress; + double progress_start_time; + int progress_num_duplicates; + + /* spatial splitting */ + float spatial_min_overlap; + vector spatial_right_bounds; + SpatialBin spatial_bins[3][BVHParams::NUM_SPATIAL_BINS]; +}; + +CCL_NAMESPACE_END + +#endif /* __BVH_BUILD_H__ */ + diff --git a/intern/cycles/bvh/bvh_node.cpp b/intern/cycles/bvh/bvh_node.cpp new file mode 100644 index 00000000000..63683bae4a3 --- /dev/null +++ b/intern/cycles/bvh/bvh_node.cpp @@ -0,0 +1,101 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "bvh.h" +#include "bvh_build.h" +#include "bvh_node.h" + +#include "util_debug.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +int BVHNode::getSubtreeSize(BVH_STAT stat) const +{ + int cnt = 0; + + switch(stat) + { + case BVH_STAT_NODE_COUNT: + cnt = 1; + break; + case BVH_STAT_LEAF_COUNT: + cnt = is_leaf() ? 1 : 0; + break; + case BVH_STAT_INNER_COUNT: + cnt = is_leaf() ? 0 : 1; + break; + case BVH_STAT_TRIANGLE_COUNT: + cnt = is_leaf() ? reinterpret_cast(this)->num_triangles() : 0; + break; + case BVH_STAT_CHILDNODE_COUNT: + cnt = num_children(); + break; + default: + assert(0); /* unknown mode */ + } + + if(!is_leaf()) + for(int i=0;igetSubtreeSize(stat); + + return cnt; +} + +void BVHNode::deleteSubtree() +{ + for(int i=0;ideleteSubtree(); + + delete this; +} + +float BVHNode::computeSubtreeSAHCost(const BVHParams& p, float probability) const +{ + float SAH = probability * p.cost(num_children(), num_triangles()); + + for(int i=0;icomputeSubtreeSAHCost(p, probability * child->m_bounds.area()/m_bounds.area()); + } + + return SAH; +} + +void InnerNode::print(int depth) const +{ + for(int i = 0; i < depth; i++) + printf(" "); + + printf("inner node %p\n", (void*)this); + + if(children[0]) + children[0]->print(depth+1); + if(children[1]) + children[1]->print(depth+1); +} + +void LeafNode::print(int depth) const +{ + for(int i = 0; i < depth; i++) + printf(" "); + + printf("leaf node %d to %d\n", m_lo, m_hi); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/bvh/bvh_node.h b/intern/cycles/bvh/bvh_node.h new file mode 100644 index 00000000000..d83c006b93d --- /dev/null +++ b/intern/cycles/bvh/bvh_node.h @@ -0,0 +1,108 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BVH_NODE_H__ +#define __BVH_NODE_H__ + +#include "util_boundbox.h" +#include "util_debug.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +enum BVH_STAT +{ + BVH_STAT_NODE_COUNT, + BVH_STAT_INNER_COUNT, + BVH_STAT_LEAF_COUNT, + BVH_STAT_TRIANGLE_COUNT, + BVH_STAT_CHILDNODE_COUNT +}; + +class BVHParams; + +class BVHNode +{ +public: + BVHNode() + { + } + + virtual bool is_leaf() const = 0; + virtual int num_children() const = 0; + virtual BVHNode *get_child(int i) const = 0; + virtual int num_triangles() const { return 0; } + virtual void print(int depth = 0) const = 0; + + float getArea() const { return m_bounds.area(); } + + BoundBox m_bounds; + + // Subtree functions + int getSubtreeSize(BVH_STAT stat=BVH_STAT_NODE_COUNT) const; + float computeSubtreeSAHCost(const BVHParams& p, float probability = 1.0f) const; + void deleteSubtree(); +}; + +class InnerNode : public BVHNode +{ +public: + InnerNode(const BoundBox& bounds, BVHNode* child0, BVHNode* child1) + { + m_bounds = bounds; + children[0] = child0; + children[1] = child1; + } + + bool is_leaf() const { return false; } + int num_children() const { return 2; } + BVHNode *get_child(int i) const{ assert(i>=0 && i<2); return children[i]; } + void print(int depth) const; + + BVHNode *children[2]; +}; + +class LeafNode : public BVHNode +{ +public: + LeafNode(const BoundBox& bounds, int lo, int hi) + { + m_bounds = bounds; + m_lo = lo; + m_hi = hi; + } + + LeafNode(const LeafNode& s) + : BVHNode() + { + *this = s; + } + + bool is_leaf() const { return true; } + int num_children() const { return 0; } + BVHNode *get_child(int) const { return NULL; } + int num_triangles() const { return m_hi - m_lo; } + void print(int depth) const; + + int m_lo; + int m_hi; +}; + +CCL_NAMESPACE_END + +#endif /* __BVH_NODE_H__ */ + diff --git a/intern/cycles/bvh/bvh_params.h b/intern/cycles/bvh/bvh_params.h new file mode 100644 index 00000000000..b38e40cfbda --- /dev/null +++ b/intern/cycles/bvh/bvh_params.h @@ -0,0 +1,86 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BVH_PARAMS_H__ +#define __BVH_PARAMS_H__ + +CCL_NAMESPACE_BEGIN + +/* BVH Parameters */ + +class BVHParams +{ +public: + /* spatial split area threshold */ + bool use_spatial_split; + float spatial_split_alpha; + + /* SAH costs */ + float sah_node_cost; + float sah_triangle_cost; + + /* number of triangles in leaf */ + int min_leaf_size; + int max_leaf_size; + + /* object or mesh level bvh */ + bool top_level; + + /* disk cache */ + bool use_cache; + + /* QBVH */ + bool use_qbvh; + + /* fixed parameters */ + enum { + MAX_DEPTH = 64, + MAX_SPATIAL_DEPTH = 48, + NUM_SPATIAL_BINS = 32 + }; + + BVHParams() + { + use_spatial_split = true; + spatial_split_alpha = 1e-5f; + + sah_node_cost = 1.0f; + sah_triangle_cost = 1.0f; + + min_leaf_size = 1; + max_leaf_size = 0x7FFFFFF; + + top_level = false; + use_cache = false; + use_qbvh = false; + } + + /* SAH costs */ + float cost(int num_nodes, int num_tris) const + { return node_cost(num_nodes) + triangle_cost(num_tris); } + + float triangle_cost(int n) const + { return n*sah_triangle_cost; } + + float node_cost(int n) const + { return n*sah_node_cost; } +}; + +CCL_NAMESPACE_END + +#endif /* __BVH_PARAMS_H__ */ + diff --git a/intern/cycles/bvh/bvh_sort.cpp b/intern/cycles/bvh/bvh_sort.cpp new file mode 100644 index 00000000000..ee4531a4843 --- /dev/null +++ b/intern/cycles/bvh/bvh_sort.cpp @@ -0,0 +1,57 @@ +/* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "bvh_build.h" +#include "bvh_sort.h" + +#include "util_algorithm.h" +#include "util_debug.h" + +CCL_NAMESPACE_BEGIN + +struct BVHReferenceCompare { +public: + int dim; + + BVHReferenceCompare(int dim_) + { + dim = dim_; + } + + bool operator()(const BVHBuild::Reference& ra, const BVHBuild::Reference& rb) + { + float ca = ra.bounds.min[dim] + ra.bounds.max[dim]; + float cb = rb.bounds.min[dim] + rb.bounds.max[dim]; + + if(ca < cb) return true; + else if(ca > cb) return false; + else if(ra.prim_object < rb.prim_object) return true; + else if(ra.prim_object > rb.prim_object) return false; + else if(ra.prim_index < rb.prim_index) return true; + else if(ra.prim_index > rb.prim_index) return false; + + return false; + } +}; + +void bvh_reference_sort(int start, int end, BVHBuild::Reference *data, int dim) +{ + sort(data+start, data+end, BVHReferenceCompare(dim)); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/bvh/bvh_sort.h b/intern/cycles/bvh/bvh_sort.h new file mode 100644 index 00000000000..f0676948146 --- /dev/null +++ b/intern/cycles/bvh/bvh_sort.h @@ -0,0 +1,28 @@ + /* + * Adapted from code copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BVH_SORT_H__ +#define __BVH_SORT_H__ + +CCL_NAMESPACE_BEGIN + +void bvh_reference_sort(int start, int end, BVHBuild::Reference *data, int dim); + +CCL_NAMESPACE_END + +#endif /* __BVH_SORT_H__ */ + diff --git a/intern/cycles/cmake/create_dmg.py b/intern/cycles/cmake/create_dmg.py new file mode 100755 index 00000000000..bba7f8d3509 --- /dev/null +++ b/intern/cycles/cmake/create_dmg.py @@ -0,0 +1,14 @@ +#!/usr/bin/python + +import os +import string +import sys + +name = string.replace(sys.argv[1], ".zip", "") + +os.system("rm -f %s.dmg" % (name)) +os.system("mkdir -p /tmp/cycles_dmg") +os.system("rm /tmp/cycles_dmg/*") +os.system("cp %s.zip /tmp/cycles_dmg/" % (name)) +os.system("/usr/bin/hdiutil create -fs HFS+ -srcfolder /tmp/cycles_dmg -volname %s %s.dmg" % (name, name)) + diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake new file mode 100644 index 00000000000..6f6f00ed6bc --- /dev/null +++ b/intern/cycles/cmake/external_libs.cmake @@ -0,0 +1,210 @@ +########################################################################### +# Boost setup + +MESSAGE(STATUS "BOOST_PATH ${BOOST_PATH}") +SET(BOOST_ROOT ${BOOST_PATH}) + +SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" + "1.43" "1.43.0" "1.42" "1.42.0" + "1.41" "1.41.0" "1.40" "1.40.0" + "1.39" "1.39.0" "1.38" "1.38.0" + "1.37" "1.37.0" "1.34.1" "1_34_1") +IF(LINKSTATIC) + SET(Boost_USE_STATIC_LIBS ON) +ENDIF() + +SET(Boost_USE_MULTITHREADED ON) + +FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system serialization thread) + +MESSAGE(STATUS "Boost found ${Boost_FOUND}") +MESSAGE(STATUS "Boost version ${Boost_VERSION}") +MESSAGE(STATUS "Boost include dirs ${Boost_INCLUDE_DIRS}") +MESSAGE(STATUS "Boost library dirs ${Boost_LIBRARY_DIRS}") +MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}") + +INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}") +LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}") + +IF(WITH_NETWORK) + ADD_DEFINITIONS(-DWITH_NETWORK) +ENDIF() + +IF(WITH_MULTI) + ADD_DEFINITIONS(-DWITH_MULTI) +ENDIF() + +########################################################################### +# OpenImageIO + +MESSAGE(STATUS "OIIO_PATH = ${OIIO_PATH}") + +FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${OIIO_PATH}/lib) +FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${OIIO_PATH}/include) +FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${OIIO_PATH}/bin) + +IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) + SET(OPENIMAGEIO_FOUND TRUE) + MESSAGE(STATUS "OpenImageIO includes = ${OPENIMAGEIO_INCLUDES}") + MESSAGE(STATUS "OpenImageIO library = ${OPENIMAGEIO_LIBRARY}") +ELSE() + MESSAGE(STATUS "OpenImageIO not found") +ENDIF() + +ADD_DEFINITIONS(-DWITH_OIIO) +INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) + +########################################################################### +# OpenGL + +FIND_PACKAGE(OpenGL) +MESSAGE(STATUS "OPENGL_FOUND=${OPENGL_FOUND}") + +INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + +########################################################################### +# GLUT + +SET(GLUT_ROOT_PATH ${GLUT_PATH}) + +FIND_PACKAGE(GLUT) +MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") + +INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) + +########################################################################### +# GLEW + +SET(GLEW_VERSION 1.5.1) +FIND_LIBRARY(GLEW_LIBRARIES NAMES GLEW PATHS ${GLEW_PATH}/lib) +FIND_PATH(GLEW_INCLUDES NAMES glew.h PATH_SUFFIXES GL PATHS ${GLEW_PATH}/include) + +IF(GLEW_INCLUDES AND GLEW_LIBRARIES) + MESSAGE(STATUS "GLEW includes = ${GLEW_INCLUDES}") + MESSAGE(STATUS "GLEW library = ${GLEW_LIBRARIES}") +ELSE() + MESSAGE(STATUS "GLEW not found") +ENDIF() + +INCLUDE_DIRECTORIES("${GLEW_INCLUDES}") + +########################################################################### +# OpenShadingLanguage + +IF(WITH_OSL) + + MESSAGE(STATUS "OSL_PATH = ${OSL_PATH}") + + FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${OSL_PATH}/lib) + FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${OSL_PATH}/include) + FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${OSL_PATH}/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() + + ADD_DEFINITIONS(-DWITH_OSL) + INCLUDE_DIRECTORIES(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec) + +ENDIF() + +########################################################################### +# Partio + +IF(WITH_PARTIO) + + MESSAGE(STATUS "PARTIO_PATH = ${PARTIO_PATH}") + + FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${PARTIO_PATH}/lib) + FIND_PATH(PARTIO_INCLUDES Partio.h ${PARTIO_PATH}/include) + + FIND_PACKAGE(ZLIB) + + IF(PARTIO_INCLUDES AND PARTIO_LIBRARIES AND ZLIB_LIBRARIES) + LIST(APPEND PARTIO_LIBRARIES ${ZLIB_LIBRARIES}) + SET(PARTIO_FOUND TRUE) + MESSAGE(STATUS "PARTIO includes = ${PARTIO_INCLUDES}") + MESSAGE(STATUS "PARTIO library = ${PARTIO_LIBRARIES}") + ELSE() + MESSAGE(STATUS "PARTIO not found") + ENDIF() + + ADD_DEFINITIONS(-DWITH_PARTIO) + INCLUDE_DIRECTORIES(${PARTIO_INCLUDES}) + +ENDIF() + +########################################################################### +# Python + +IF(WITH_BLENDER) + + FIND_PATH(PYTHON_INCLUDE_DIRS Python.h PATHS ${PYTHON_PATH} ${PYTHON_PATH}/include ${PYTHON_PATH}/include/python3.1 ${PYTHON_PATH}/include/python3.2 NO_DEFAULT_PATH) + IF(WIN32) + FIND_LIBRARY(PYTHON_LIBRARIES NAMES python31 PATHS ${PYTHON_PATH}/lib) + ENDIF() + +ENDIF() + +########################################################################### +# Blender + +IF(WITH_BLENDER) + FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${BLENDER_PATH}/include) + IF(WIN32) + SET(BLENDER_LIBRARIES ${BLENDER_PATH}/bin/Release/blender.lib) + ENDIF() +ENDIF() + +########################################################################### +# CUDA + +IF(WITH_CUDA) + + FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CUDA_PATH}/lib ${CUDA_PATH}/lib/Win32 NO_DEFAULT_PATH) + FIND_PATH(CUDA_INCLUDES cuda.h ${CUDA_PATH}/include NO_DEFAULT_PATH) + FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CUDA_PATH}/bin NO_DEFAULT_PATH) + + IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) + MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}") + MESSAGE(STATUS "CUDA library = ${CUDA_LIBRARIES}") + MESSAGE(STATUS "CUDA nvcc = ${CUDA_NVCC}") + ELSE() + MESSAGE(STATUS "CUDA not found") + ENDIF() + + ADD_DEFINITIONS(-DWITH_CUDA) + INCLUDE_DIRECTORIES(${CUDA_INCLUDES}) + +ENDIF() + +########################################################################### +# OpenCL + +IF(WITH_OPENCL) + + IF(APPLE) + SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers") + SET(OPENCL_LIBRARIES "-framework OpenCL") + ENDIF() + + IF(WIN32) + SET(OPENCL_INCLUDES "") + SET(OPENCL_LIRBARIES "OpenCL") + ENDIF() + + IF(UNIX AND NOT APPLE) + SET(OPENCL_INCLUDES ${OPENCL_PATH}) + SET(OPENCL_LIRBARIES "OpenCL") + ENDIF() + + ADD_DEFINITIONS(-DWITH_OPENCL) + INCLUDE_DIRECTORIES(${OPENCL_INCLUDES}) + +ENDIF() + diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake new file mode 100644 index 00000000000..ebc4b01edbc --- /dev/null +++ b/intern/cycles/cmake/platforms.cmake @@ -0,0 +1,27 @@ + +# Platform specific build flags + +SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") # -pedantic +SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") + +IF(APPLE) + SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + SET(PYTHON_MODULE_FLAGS "-undefined dynamic_lookup") +ENDIF(APPLE) + +IF(WIN32) + SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") + SET(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + SET(PYTHON_MODULE_FLAGS "-DLL") +ENDIF(WIN32) + +IF(UNIX AND NOT APPLE) + SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + SET(PYTHON_MODULE_FLAGS "-fPIC") +ENDIF(UNIX AND NOT APPLE) + +ADD_DEFINITIONS(-DCCL_NAMESPACE_BEGIN=namespace\ ccl\ {) +ADD_DEFINITIONS(-DCCL_NAMESPACE_END=}) + diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt new file mode 100644 index 00000000000..ab72548fc4f --- /dev/null +++ b/intern/cycles/device/CMakeLists.txt @@ -0,0 +1,18 @@ + +INCLUDE_DIRECTORIES(. ../kernel ../kernel/svm ../kernel/osl ../util ../render) + +SET(sources + device.cpp + device_cpu.cpp + device_cuda.cpp + device_multi.cpp + device_network.cpp + device_opencl.cpp) + +SET(headers + device.h + device_intern.h + device_network.h) + +ADD_LIBRARY(device ${sources} ${headers}) + diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp new file mode 100644 index 00000000000..4fae9310a7f --- /dev/null +++ b/intern/cycles/device/device.cpp @@ -0,0 +1,198 @@ +/* + * 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 +#include + +#include "device.h" +#include "device_intern.h" + +#include "util_cuda.h" +#include "util_debug.h" +#include "util_opengl.h" +#include "util_types.h" +#include "util_vector.h" + +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), + pass(0), resolution(0), + displace_input(0), displace_offset(0), displace_x(0), displace_w(0) +{ +} + +void DeviceTask::split(ThreadQueue& tasks, int num) +{ + if(type == DISPLACE) { + for(int i = 0; i < num; i++) { + int tx = displace_x + (displace_w/num)*i; + int tw = (i == num-1)? displace_w - i*(displace_w/num): displace_w/num; + + DeviceTask task = *this; + + task.displace_x = tx; + task.displace_w = tw; + + tasks.push(task); + } + } + else { + 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(task); + } + } +} + +/* Device */ + +void Device::pixels_alloc(device_memory& mem) +{ + mem_alloc(mem, MEM_READ_WRITE); +} + +void Device::pixels_copy_from(device_memory& mem, int y, int w, int h) +{ + mem_copy_from(mem, sizeof(uchar)*4*y*w, sizeof(uchar)*4*w*h); +} + +void Device::pixels_free(device_memory& mem) +{ + mem_free(mem); +} + +void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height) +{ + pixels_copy_from(rgba, y, w, h); + + glPixelZoom((float)width/(float)w, (float)height/(float)h); + glRasterPos2f(0, y); + + glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, (void*)rgba.data_pointer); + + glRasterPos2f(0.0f, 0.0f); + glPixelZoom(1.0f, 1.0f); +} + +Device *Device::create(DeviceType type, bool background) +{ + Device *device; + + switch(type) { + case DEVICE_CPU: + device = device_cpu_create(); + break; +#ifdef WITH_CUDA + case DEVICE_CUDA: + if(cuLibraryInit()) + device = device_cuda_create(background); + else + device = NULL; + break; +#endif +#ifdef WITH_MULTI + case DEVICE_MULTI: + device = device_multi_create(background); + break; +#endif +#ifdef WITH_NETWORK + case DEVICE_NETWORK: + device = device_network_create("127.0.0.1"); + break; +#endif +#ifdef WITH_OPENCL + case DEVICE_OPENCL: + device = device_opencl_create(background); + break; +#endif + default: + return NULL; + } + + return device; +} + +DeviceType Device::type_from_string(const char *name) +{ + if(strcmp(name, "cpu") == 0) + return DEVICE_CPU; + else if(strcmp(name, "cuda") == 0) + return DEVICE_CUDA; + else if(strcmp(name, "opencl") == 0) + return DEVICE_OPENCL; + else if(strcmp(name, "network") == 0) + return DEVICE_NETWORK; + else if(strcmp(name, "multi") == 0) + return DEVICE_MULTI; + + return DEVICE_NONE; +} + +string Device::string_from_type(DeviceType type) +{ + if(type == DEVICE_CPU) + return "cpu"; + else if(type == DEVICE_CUDA) + return "cuda"; + else if(type == DEVICE_OPENCL) + return "opencl"; + else if(type == DEVICE_NETWORK) + return "network"; + else if(type == DEVICE_MULTI) + return "multi"; + + return ""; +} + +vector Device::available_types() +{ + vector types; + + types.push_back(DEVICE_CPU); + +#ifdef WITH_CUDA + if(cuLibraryInit()) + types.push_back(DEVICE_CUDA); +#endif + +#ifdef WITH_OPENCL + types.push_back(DEVICE_OPENCL); +#endif + +#ifdef WITH_NETWORK + types.push_back(DEVICE_NETWORK); +#endif +#ifdef WITH_MULTI + types.push_back(DEVICE_MULTI); +#endif + + return types; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h new file mode 100644 index 00000000000..aba077fc2f3 --- /dev/null +++ b/intern/cycles/device/device.h @@ -0,0 +1,136 @@ +/* + * 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_H__ +#define __DEVICE_H__ + +#include + +#include "device_memory.h" + +#include "util_string.h" +#include "util_thread.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Progress; + +enum DeviceType { + DEVICE_NONE, + DEVICE_CPU, + DEVICE_OPENCL, + DEVICE_CUDA, + DEVICE_NETWORK, + DEVICE_MULTI +}; + +enum MemoryType { + MEM_READ_ONLY, + MEM_WRITE_ONLY, + MEM_READ_WRITE +}; + +/* Device Task */ + +class DeviceTask { +public: + typedef enum { PATH_TRACE, TONEMAP, DISPLACE } Type; + Type type; + + int x, y, w, h; + device_ptr rng_state; + device_ptr rgba; + device_ptr buffer; + int pass; + int resolution; + + device_ptr displace_input; + device_ptr displace_offset; + int displace_x, displace_w; + + DeviceTask(Type type = PATH_TRACE); + void split(ThreadQueue& tasks, int num); +}; + +/* Device */ + +class Device { +protected: + Device() {} + + DeviceType type; + bool background; + +public: + virtual ~Device() {} + + /* info */ + virtual string description() = 0; + + /* regular memory */ + virtual void mem_alloc(device_memory& mem, MemoryType type) = 0; + virtual void mem_copy_to(device_memory& mem) = 0; + virtual void mem_copy_from(device_memory& mem, + size_t offset, size_t size) = 0; + virtual void mem_zero(device_memory& mem) = 0; + virtual void mem_free(device_memory& mem) = 0; + + /* constant memory */ + virtual void const_copy_to(const char *name, void *host, size_t size) = 0; + + /* texture memory */ + virtual void tex_alloc(const char *name, device_memory& mem, + bool interpolation = false, bool periodic = false) {}; + virtual void tex_free(device_memory& mem) {}; + + /* pixel memory */ + virtual void pixels_alloc(device_memory& mem); + virtual void pixels_copy_from(device_memory& mem, int y, int w, int h); + virtual void pixels_free(device_memory& mem); + + /* open shading language, only for CPU device */ + virtual void *osl_memory() { return NULL; } + + /* tasks */ + virtual void task_add(DeviceTask& task) = 0; + virtual void task_wait() = 0; + virtual void task_cancel() = 0; + + /* opengl drawing */ + virtual void draw_pixels(device_memory& mem, int y, int w, int h, + int width, int height); + +#ifdef WITH_NETWORK + /* networking */ + void server_run(); +#endif + + /* static */ + static Device *create(DeviceType type, bool background = true); + + static DeviceType type_from_string(const char *name); + static string string_from_type(DeviceType type); + static vector available_types(); +}; + +CCL_NAMESPACE_END + +#endif /* __DEVICE_H__ */ + diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp new file mode 100644 index 00000000000..bb47a127f20 --- /dev/null +++ b/intern/cycles/device/device_cpu.cpp @@ -0,0 +1,216 @@ +/* + * 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 +#include + +#include "device.h" +#include "device_intern.h" + +#include "kernel.h" +#include "kernel_types.h" + +#include "osl_shader.h" + +#include "util_debug.h" +#include "util_foreach.h" +#include "util_function.h" +#include "util_opengl.h" +#include "util_progress.h" +#include "util_system.h" +#include "util_thread.h" + +CCL_NAMESPACE_BEGIN + +class CPUDevice : public Device +{ +public: + vector threads; + ThreadQueue tasks; + KernelGlobals *kg; + + CPUDevice() + { + kg = kernel_globals_create(); + threads.resize(system_cpu_thread_count()); + + for(size_t i = 0; i < threads.size(); i++) + threads[i] = new thread(function_bind(&CPUDevice::thread_run, this, i)); + } + + ~CPUDevice() + { + tasks.stop(); + + foreach(thread *t, threads) { + t->join(); + delete t; + } + + kernel_globals_free(kg); + } + + string description() + { + return system_cpu_brand_string(); + } + + void mem_alloc(device_memory& mem, MemoryType type) + { + mem.device_pointer = mem.data_pointer; + } + + void mem_copy_to(device_memory& mem) + { + /* no-op */ + } + + void mem_copy_from(device_memory& mem, size_t offset, size_t size) + { + /* no-op */ + } + + void mem_zero(device_memory& mem) + { + memset((void*)mem.device_pointer, 0, mem.memory_size()); + } + + void mem_free(device_memory& mem) + { + mem.device_pointer = 0; + } + + void const_copy_to(const char *name, void *host, size_t size) + { + kernel_const_copy(kg, name, host, size); + } + + void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + { + kernel_tex_copy(kg, name, mem.data_pointer, mem.data_width, mem.data_height); + mem.device_pointer = mem.data_pointer; + } + + void tex_free(device_memory& mem) + { + mem.device_pointer = 0; + } + + void *osl_memory() + { +#ifdef WITH_OSL + return kernel_osl_memory(kg); +#else + return NULL; +#endif + } + + void thread_run(int t) + { + DeviceTask task; + + while(tasks.worker_wait_pop(task)) { + if(task.type == DeviceTask::PATH_TRACE) + thread_path_trace(task); + else if(task.type == DeviceTask::TONEMAP) + thread_tonemap(task); + else if(task.type == DeviceTask::DISPLACE) + thread_displace(task); + + tasks.worker_done(); + } + } + + void thread_path_trace(DeviceTask& task) + { + if(tasks.worker_cancel()) + return; + +#ifdef WITH_OSL + if(kernel_osl_use(kg)) + OSLShader::thread_init(kg); +#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, (float4*)task.buffer, (unsigned int*)task.rng_state, task.pass, x, y); + + if(tasks.worker_cancel()) + break; + } + +#ifdef WITH_OSL + if(kernel_osl_use(kg)) + OSLShader::thread_free(kg); +#endif + } + + void thread_tonemap(DeviceTask& task) + { + for(int y = task.y; y < task.y + task.h; y++) { + for(int x = task.x; x < task.x + task.w; x++) + kernel_cpu_tonemap(kg, (uchar4*)task.rgba, (float4*)task.buffer, task.pass, task.resolution, x, y); + } + } + + void thread_displace(DeviceTask& task) + { +#ifdef WITH_OSL + if(kernel_osl_use(kg)) + OSLShader::thread_init(kg); +#endif + + for(int x = task.displace_x; x < task.displace_x + task.displace_w; x++) { + kernel_cpu_displace(kg, (uint4*)task.displace_input, (float3*)task.displace_offset, x); + + if(tasks.worker_cancel()) + break; + } + +#ifdef WITH_OSL + if(kernel_osl_use(kg)) + OSLShader::thread_free(kg); +#endif + } + + void task_add(DeviceTask& task) + { + if(task.type == DeviceTask::TONEMAP) + tasks.push(task); + else + task.split(tasks, threads.size()); + } + + void task_wait() + { + tasks.wait_done(); + } + + void task_cancel() + { + tasks.cancel(); + } +}; + +Device *device_cpu_create() +{ + return new CPUDevice(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp new file mode 100644 index 00000000000..76692ba8657 --- /dev/null +++ b/intern/cycles/device/device_cuda.cpp @@ -0,0 +1,682 @@ +/* + * 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 +#include +#include + +#include "device.h" +#include "device_intern.h" + +#include "util_cuda.h" +#include "util_debug.h" +#include "util_map.h" +#include "util_opengl.h" +#include "util_path.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class CUDADevice : public Device +{ +public: + CUdevice cuDevice; + CUcontext cuContext; + CUmodule cuModule; + map tex_interp_map; + int cuDevId; + + struct PixelMem { + GLuint cuPBO; + CUgraphicsResource cuPBOresource; + GLuint cuTexId; + int w, h; + }; + + map pixel_mem_map; + + CUdeviceptr cuda_device_ptr(device_ptr mem) + { + return (CUdeviceptr)mem; + } + + const char *cuda_error_string(CUresult result) + { + switch(result) { + case CUDA_SUCCESS: return "No errors"; + case CUDA_ERROR_INVALID_VALUE: return "Invalid value"; + case CUDA_ERROR_OUT_OF_MEMORY: return "Out of memory"; + case CUDA_ERROR_NOT_INITIALIZED: return "Driver not initialized"; + case CUDA_ERROR_DEINITIALIZED: return "Driver deinitialized"; + + case CUDA_ERROR_NO_DEVICE: return "No CUDA-capable device available"; + case CUDA_ERROR_INVALID_DEVICE: return "Invalid device"; + + case CUDA_ERROR_INVALID_IMAGE: return "Invalid kernel image"; + case CUDA_ERROR_INVALID_CONTEXT: return "Invalid context"; + case CUDA_ERROR_CONTEXT_ALREADY_CURRENT: return "Context already current"; + case CUDA_ERROR_MAP_FAILED: return "Map failed"; + case CUDA_ERROR_UNMAP_FAILED: return "Unmap failed"; + case CUDA_ERROR_ARRAY_IS_MAPPED: return "Array is mapped"; + case CUDA_ERROR_ALREADY_MAPPED: return "Already mapped"; + case CUDA_ERROR_NO_BINARY_FOR_GPU: return "No binary for GPU"; + case CUDA_ERROR_ALREADY_ACQUIRED: return "Already acquired"; + case CUDA_ERROR_NOT_MAPPED: return "Not mapped"; + case CUDA_ERROR_NOT_MAPPED_AS_ARRAY: return "Mapped resource not available for access as an array"; + case CUDA_ERROR_NOT_MAPPED_AS_POINTER: return "Mapped resource not available for access as a pointer"; + case CUDA_ERROR_ECC_UNCORRECTABLE: return "Uncorrectable ECC error detected"; + case CUDA_ERROR_UNSUPPORTED_LIMIT: return "CUlimit not supported by device"; + + case CUDA_ERROR_INVALID_SOURCE: return "Invalid source"; + case CUDA_ERROR_FILE_NOT_FOUND: return "File not found"; + case CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND: return "Link to a shared object failed to resolve"; + case CUDA_ERROR_SHARED_OBJECT_INIT_FAILED: return "Shared object initialization failed"; + + case CUDA_ERROR_INVALID_HANDLE: return "Invalid handle"; + + case CUDA_ERROR_NOT_FOUND: return "Not found"; + + case CUDA_ERROR_NOT_READY: return "CUDA not ready"; + + case CUDA_ERROR_LAUNCH_FAILED: return "Launch failed"; + case CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES: return "Launch exceeded resources"; + case CUDA_ERROR_LAUNCH_TIMEOUT: return "Launch exceeded timeout"; + case CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING: return "Launch with incompatible texturing"; + + case CUDA_ERROR_UNKNOWN: return "Unknown error"; + + default: return "Unknown CUDA error value"; + } + } + + static int cuda_align_up(int& offset, int alignment) + { + return (offset + alignment - 1) & ~(alignment - 1); + } + +#ifdef NDEBUG +#define cuda_abort() +#else +#define cuda_abort() abort() +#endif + +#define cuda_assert(stmt) \ + { \ + CUresult result = stmt; \ + \ + if(result != CUDA_SUCCESS) { \ + fprintf(stderr, "CUDA error: %s in %s\n", cuda_error_string(result), #stmt); \ + cuda_abort(); \ + } \ + } + + void cuda_push_context() + { + cuda_assert(cuCtxSetCurrent(cuContext)) + } + + void cuda_pop_context() + { + cuda_assert(cuCtxSetCurrent(NULL)); + } + + CUDADevice(bool background_) + { + int major, minor; + background = background_; + + cuDevId = 0; + + /* intialize */ + cuda_assert(cuInit(0)) + + /* setup device and context */ + cuda_assert(cuDeviceGet(&cuDevice, cuDevId)) + + if(background) + cuda_assert(cuCtxCreate(&cuContext, 0, cuDevice)) + else + cuda_assert(cuGLCtxCreate(&cuContext, 0, cuDevice)) + + /* open module */ + cuDeviceComputeCapability(&major, &minor, cuDevId); + string cubin = string_printf("lib/kernel_sm_%d%d.cubin", major, minor); + cuda_assert(cuModuleLoad(&cuModule, path_get(cubin).c_str())) + + cuda_pop_context(); + } + + ~CUDADevice() + { + cuda_push_context(); + cuda_assert(cuCtxDetach(cuContext)) + } + + string description() + { + /* print device information */ + char deviceName[100]; + + cuda_push_context(); + cuDeviceGetName(deviceName, 256, cuDevId); + cuda_pop_context(); + + return string("CUDA ") + deviceName; + } + + void mem_alloc(device_memory& mem, MemoryType type) + { + cuda_push_context(); + CUdeviceptr device_pointer; + cuda_assert(cuMemAlloc(&device_pointer, mem.memory_size())) + mem.device_pointer = (device_ptr)device_pointer; + cuda_pop_context(); + } + + void mem_copy_to(device_memory& mem) + { + cuda_push_context(); + cuda_assert(cuMemcpyHtoD(cuda_device_ptr(mem.device_pointer), (void*)mem.data_pointer, mem.memory_size())) + cuda_pop_context(); + } + + void mem_copy_from(device_memory& mem, size_t offset, size_t size) + { + /* todo: offset is ignored */ + cuda_push_context(); + cuda_assert(cuMemcpyDtoH((uchar*)mem.data_pointer + offset, + (CUdeviceptr)((uchar*)mem.device_pointer + offset), size)) + cuda_pop_context(); + } + + void mem_zero(device_memory& mem) + { + memset((void*)mem.data_pointer, 0, mem.memory_size()); + + cuda_push_context(); + cuda_assert(cuMemsetD8(cuda_device_ptr(mem.device_pointer), 0, mem.memory_size())) + cuda_pop_context(); + } + + void mem_free(device_memory& mem) + { + if(mem.device_pointer) { + cuda_push_context(); + cuda_assert(cuMemFree(cuda_device_ptr(mem.device_pointer))) + cuda_pop_context(); + + mem.device_pointer = 0; + } + } + + void const_copy_to(const char *name, void *host, size_t size) + { + CUdeviceptr mem; + size_t bytes; + + cuda_push_context(); + cuda_assert(cuModuleGetGlobal(&mem, &bytes, cuModule, name)) + assert(bytes == size); + cuda_assert(cuMemcpyHtoD(mem, host, size)) + cuda_pop_context(); + } + + void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + { + /* determine format */ + CUarray_format_enum format; + size_t dsize = datatype_size(mem.data_type); + size_t size = mem.memory_size(); + + switch(mem.data_type) { + case TYPE_UCHAR: format = CU_AD_FORMAT_UNSIGNED_INT8; break; + case TYPE_UINT: format = CU_AD_FORMAT_UNSIGNED_INT32; break; + case TYPE_INT: format = CU_AD_FORMAT_SIGNED_INT32; break; + case TYPE_FLOAT: format = CU_AD_FORMAT_FLOAT; break; + default: assert(0); return; + } + + CUtexref texref; + + cuda_push_context(); + cuda_assert(cuModuleGetTexRef(&texref, cuModule, name)) + + if(interpolation) { + CUarray handle; + CUDA_ARRAY_DESCRIPTOR desc; + + desc.Width = mem.data_width; + desc.Height = mem.data_height; + desc.Format = format; + desc.NumChannels = mem.data_elements; + + cuda_assert(cuArrayCreate(&handle, &desc)) + + if(mem.data_height > 1) { + CUDA_MEMCPY2D param; + memset(¶m, 0, sizeof(param)); + param.dstMemoryType = CU_MEMORYTYPE_ARRAY; + param.dstArray = handle; + param.srcMemoryType = CU_MEMORYTYPE_HOST; + param.srcHost = (void*)mem.data_pointer; + param.srcPitch = mem.data_width*dsize*mem.data_elements; + param.WidthInBytes = param.srcPitch; + param.Height = mem.data_height; + + cuda_assert(cuMemcpy2D(¶m)) + } + else + cuda_assert(cuMemcpyHtoA(handle, 0, (void*)mem.data_pointer, size)) + + cuda_assert(cuTexRefSetArray(texref, handle, CU_TRSA_OVERRIDE_FORMAT)) + + cuda_assert(cuTexRefSetFilterMode(texref, CU_TR_FILTER_MODE_LINEAR)) + cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_NORMALIZED_COORDINATES)) + + mem.device_pointer = (device_ptr)handle; + } + else { + cuda_pop_context(); + + mem_alloc(mem, MEM_READ_ONLY); + mem_copy_to(mem); + + cuda_push_context(); + + cuda_assert(cuTexRefSetAddress(NULL, texref, cuda_device_ptr(mem.device_pointer), size)) + cuda_assert(cuTexRefSetFilterMode(texref, CU_TR_FILTER_MODE_POINT)) + cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_READ_AS_INTEGER)) + } + + if(periodic) { + cuda_assert(cuTexRefSetAddressMode(texref, 0, CU_TR_ADDRESS_MODE_WRAP)) + cuda_assert(cuTexRefSetAddressMode(texref, 1, CU_TR_ADDRESS_MODE_WRAP)) + } + else { + cuda_assert(cuTexRefSetAddressMode(texref, 0, CU_TR_ADDRESS_MODE_CLAMP)) + cuda_assert(cuTexRefSetAddressMode(texref, 1, CU_TR_ADDRESS_MODE_CLAMP)) + } + cuda_assert(cuTexRefSetFormat(texref, format, mem.data_elements)) + + cuda_pop_context(); + + tex_interp_map[mem.device_pointer] = interpolation; + } + + void tex_free(device_memory& mem) + { + if(mem.device_pointer) { + if(tex_interp_map[mem.device_pointer]) { + cuda_push_context(); + cuArrayDestroy((CUarray)mem.device_pointer); + cuda_pop_context(); + + tex_interp_map.erase(tex_interp_map.find(mem.device_pointer)); + mem.device_pointer = 0; + } + else { + tex_interp_map.erase(tex_interp_map.find(mem.device_pointer)); + mem_free(mem); + } + } + } + + void path_trace(DeviceTask& task) + { + cuda_push_context(); + + CUfunction cuPathTrace; + CUdeviceptr d_buffer = cuda_device_ptr(task.buffer); + CUdeviceptr d_rng_state = cuda_device_ptr(task.rng_state); + + /* get kernel function */ + cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, "kernel_cuda_path_trace")) + + /* pass in parameters */ + int offset = 0; + + cuda_assert(cuParamSetv(cuPathTrace, offset, &d_buffer, sizeof(d_buffer))) + offset += sizeof(d_buffer); + + cuda_assert(cuParamSetv(cuPathTrace, offset, &d_rng_state, sizeof(d_rng_state))) + offset += sizeof(d_rng_state); + + offset = cuda_align_up(offset, __alignof(task.pass)); + + cuda_assert(cuParamSeti(cuPathTrace, offset, task.pass)) + offset += sizeof(task.pass); + + cuda_assert(cuParamSeti(cuPathTrace, offset, task.x)) + offset += sizeof(task.x); + + cuda_assert(cuParamSeti(cuPathTrace, offset, task.y)) + offset += sizeof(task.y); + + cuda_assert(cuParamSeti(cuPathTrace, offset, task.w)) + offset += sizeof(task.w); + + cuda_assert(cuParamSeti(cuPathTrace, offset, task.h)) + offset += sizeof(task.h); + + cuda_assert(cuParamSetSize(cuPathTrace, offset)) + + /* launch kernel: todo find optimal size, cache config for fermi */ +#ifndef __APPLE__ + int xthreads = 16; + int ythreads = 16; +#else + int xthreads = 8; + int ythreads = 8; +#endif + int xblocks = (task.w + xthreads - 1)/xthreads; + int yblocks = (task.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_pop_context(); + } + + void tonemap(DeviceTask& task) + { + cuda_push_context(); + + CUfunction cuFilmConvert; + CUdeviceptr d_rgba = map_pixels(task.rgba); + CUdeviceptr d_buffer = cuda_device_ptr(task.buffer); + + /* get kernel function */ + cuda_assert(cuModuleGetFunction(&cuFilmConvert, cuModule, "kernel_cuda_tonemap")) + + /* pass in parameters */ + int offset = 0; + + cuda_assert(cuParamSetv(cuFilmConvert, offset, &d_rgba, sizeof(d_rgba))) + offset += sizeof(d_rgba); + + cuda_assert(cuParamSetv(cuFilmConvert, offset, &d_buffer, sizeof(d_buffer))) + offset += sizeof(d_buffer); + + offset = cuda_align_up(offset, __alignof(task.pass)); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.pass)) + offset += sizeof(task.pass); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.resolution)) + offset += sizeof(task.resolution); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.x)) + offset += sizeof(task.x); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.y)) + offset += sizeof(task.y); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.w)) + offset += sizeof(task.w); + + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.h)) + offset += sizeof(task.h); + + cuda_assert(cuParamSetSize(cuFilmConvert, offset)) + + /* launch kernel: todo find optimal size, cache config for fermi */ +#ifndef __APPLE__ + int xthreads = 16; + int ythreads = 16; +#else + int xthreads = 8; + int ythreads = 8; +#endif + int xblocks = (task.w + xthreads - 1)/xthreads; + int yblocks = (task.h + ythreads - 1)/ythreads; + + cuda_assert(cuFuncSetCacheConfig(cuFilmConvert, CU_FUNC_CACHE_PREFER_L1)) + cuda_assert(cuFuncSetBlockShape(cuFilmConvert, xthreads, ythreads, 1)) + cuda_assert(cuLaunchGrid(cuFilmConvert, xblocks, yblocks)) + + unmap_pixels(task.rgba); + + cuda_pop_context(); + } + + void displace(DeviceTask& task) + { + cuda_push_context(); + + CUfunction cuDisplace; + CUdeviceptr d_input = cuda_device_ptr(task.displace_input); + CUdeviceptr d_offset = cuda_device_ptr(task.displace_offset); + + /* get kernel function */ + cuda_assert(cuModuleGetFunction(&cuDisplace, cuModule, "kernel_cuda_displace")) + + /* pass in parameters */ + int offset = 0; + + cuda_assert(cuParamSetv(cuDisplace, offset, &d_input, sizeof(d_input))) + offset += sizeof(d_input); + + cuda_assert(cuParamSetv(cuDisplace, offset, &d_offset, sizeof(d_offset))) + offset += sizeof(d_offset); + + offset = cuda_align_up(offset, __alignof(task.displace_x)); + + cuda_assert(cuParamSeti(cuDisplace, offset, task.displace_x)) + offset += sizeof(task.displace_x); + + cuda_assert(cuParamSetSize(cuDisplace, offset)) + + /* launch kernel: todo find optimal size, cache config for fermi */ +#ifndef __APPLE__ + int xthreads = 16; +#else + int xthreads = 8; +#endif + int xblocks = (task.displace_w + xthreads - 1)/xthreads; + + cuda_assert(cuFuncSetCacheConfig(cuDisplace, CU_FUNC_CACHE_PREFER_L1)) + cuda_assert(cuFuncSetBlockShape(cuDisplace, xthreads, 1, 1)) + cuda_assert(cuLaunchGrid(cuDisplace, xblocks, 1)) + + cuda_pop_context(); + } + + CUdeviceptr map_pixels(device_ptr mem) + { + if(!background) { + PixelMem pmem = pixel_mem_map[mem]; + CUdeviceptr buffer; + + size_t bytes; + cuda_assert(cuGraphicsMapResources(1, &pmem.cuPBOresource, 0)) + cuda_assert(cuGraphicsResourceGetMappedPointer(&buffer, &bytes, pmem.cuPBOresource)) + + return buffer; + } + + return cuda_device_ptr(mem); + } + + void unmap_pixels(device_ptr mem) + { + if(!background) { + PixelMem pmem = pixel_mem_map[mem]; + + cuda_assert(cuGraphicsUnmapResources(1, &pmem.cuPBOresource, 0)) + } + } + + void pixels_alloc(device_memory& mem) + { + if(!background) { + PixelMem pmem; + + pmem.w = mem.data_width; + pmem.h = mem.data_height; + + cuda_push_context(); + + glGenBuffers(1, &pmem.cuPBO); + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pmem.cuPBO); + glBufferData(GL_PIXEL_UNPACK_BUFFER, pmem.w*pmem.h*sizeof(GLfloat)*3, NULL, GL_DYNAMIC_DRAW); + + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); + + glGenTextures(1, &pmem.cuTexId); + glBindTexture(GL_TEXTURE_2D, pmem.cuTexId); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, pmem.w, pmem.h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glBindTexture(GL_TEXTURE_2D, 0); + + cuda_assert(cuGraphicsGLRegisterBuffer(&pmem.cuPBOresource, pmem.cuPBO, CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE)) + + cuda_pop_context(); + + mem.device_pointer = pmem.cuTexId; + pixel_mem_map[mem.device_pointer] = pmem; + + return; + } + + Device::pixels_alloc(mem); + } + + void pixels_copy_from(device_memory& mem, int y, int w, int h) + { + if(!background) { + PixelMem pmem = pixel_mem_map[mem.device_pointer]; + + cuda_push_context(); + + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pmem.cuPBO); + uchar *pixels = (uchar*)glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_READ_ONLY); + size_t offset = sizeof(uchar)*4*y*w; + memcpy((uchar*)mem.data_pointer + offset, pixels + offset, sizeof(uchar)*4*w*h); + glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER); + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); + + cuda_pop_context(); + + return; + } + + Device::pixels_copy_from(mem, y, w, h); + } + + void pixels_free(device_memory& mem) + { + if(mem.device_pointer) { + if(!background) { + PixelMem pmem = pixel_mem_map[mem.device_pointer]; + + cuda_push_context(); + + cuda_assert(cuGraphicsUnregisterResource(pmem.cuPBOresource)) + glDeleteBuffers(1, &pmem.cuPBO); + glDeleteTextures(1, &pmem.cuTexId); + + cuda_pop_context(); + + pixel_mem_map.erase(pixel_mem_map.find(mem.device_pointer)); + mem.device_pointer = 0; + + return; + } + + Device::pixels_free(mem); + } + } + + void draw_pixels(device_memory& mem, int y, int w, int h, int width, int height) + { + if(!background) { + PixelMem pmem = pixel_mem_map[mem.device_pointer]; + + cuda_push_context(); + + glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pmem.cuPBO); + glBindTexture(GL_TEXTURE_2D, pmem.cuTexId); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, 0); + glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); + + glEnable(GL_TEXTURE_2D); + + glColor3f(1.0f, 1.0f, 1.0f); + + glPushMatrix(); + glTranslatef(0, y, 0.0f); + + glBegin(GL_QUADS); + + glTexCoord2f(0, 0); + glVertex2f(0, 0); + glTexCoord2f((float)w/(float)width, 0); + glVertex2f(width, 0); + glTexCoord2f((float)w/(float)width, (float)h/(float)height); + glVertex2f(width, height); + glTexCoord2f(0, (float)h/(float)height); + glVertex2f(0, height); + + glEnd(); + + glPopMatrix(); + + glBindTexture(GL_TEXTURE_2D, 0); + glDisable(GL_TEXTURE_2D); + + cuda_pop_context(); + + return; + } + + Device::draw_pixels(mem, y, w, h, width, height); + } + + void task_add(DeviceTask& task) + { + if(task.type == DeviceTask::TONEMAP) + tonemap(task); + else if(task.type == DeviceTask::PATH_TRACE) + path_trace(task); + else if(task.type == DeviceTask::DISPLACE) + displace(task); + } + + void task_wait() + { + cuda_push_context(); + + cuda_assert(cuCtxSynchronize()) + + cuda_pop_context(); + } + + void task_cancel() + { + } +}; + +Device *device_cuda_create(bool background) +{ + return new CUDADevice(background); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/device/device_intern.h b/intern/cycles/device/device_intern.h new file mode 100644 index 00000000000..b2875b168b4 --- /dev/null +++ b/intern/cycles/device/device_intern.h @@ -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. + */ + +#ifndef __DEVICE_INTERN_H__ +#define __DEVICE_INTERN_H__ + +CCL_NAMESPACE_BEGIN + +class Device; + +Device *device_cpu_create(); +Device *device_opencl_create(bool background); +Device *device_cuda_create(bool background); +Device *device_network_create(const char *address); +Device *device_multi_create(bool background); + +CCL_NAMESPACE_END + +#endif /* __DEVICE_INTERN_H__ */ + diff --git a/intern/cycles/device/device_memory.h b/intern/cycles/device/device_memory.h new file mode 100644 index 00000000000..516a6bd0739 --- /dev/null +++ b/intern/cycles/device/device_memory.h @@ -0,0 +1,244 @@ +/* + * 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_MEMORY_H__ +#define __DEVICE_MEMORY_H__ + +/* Device Memory + * + * This file defines data types that can be used in device memory arrays, and + * a device_vector type to store such arrays. + * + * device_vector contains an STL vector, metadata about the data type, + * dimensions, elements, and a device pointer. For the CPU device this is just + * a pointer to the STL vector data, as no copying needs to take place. For + * other devices this is a pointer to device memory, where we will copy memory + * to and from. */ + +#include "util_debug.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +/* Supported Data Types */ + +enum DataType { + TYPE_UCHAR, + TYPE_UINT, + TYPE_INT, + TYPE_FLOAT +}; + +static inline size_t datatype_size(DataType datatype) +{ + switch(datatype) { + case TYPE_UCHAR: return sizeof(uchar); + case TYPE_FLOAT: return sizeof(float); + case TYPE_UINT: return sizeof(uint); + case TYPE_INT: return sizeof(int); + default: return 0; + } +} + +/* Traits for data types */ + +template struct device_type_traits { + static const DataType data_type = TYPE_UCHAR; + static const int num_elements = 0; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UCHAR; + static const int num_elements = 1; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UCHAR; + static const int num_elements = 2; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UCHAR; + static const int num_elements = 3; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UCHAR; + static const int num_elements = 4; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UINT; + static const int num_elements = 1; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UINT; + static const int num_elements = 2; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UINT; + static const int num_elements = 3; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_UINT; + static const int num_elements = 4; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_INT; + static const int num_elements = 1; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_INT; + static const int num_elements = 2; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_INT; + static const int num_elements = 3; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_INT; + static const int num_elements = 4; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_FLOAT; + static const int num_elements = 1; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_FLOAT; + static const int num_elements = 2; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_FLOAT; + static const int num_elements = 3; +}; + +template<> struct device_type_traits { + static const DataType data_type = TYPE_FLOAT; + static const int num_elements = 4; +}; + +/* Device Memory */ + +class device_memory +{ +public: + size_t memory_size() { return data_size*data_elements*datatype_size(data_type); } + + /* data information */ + DataType data_type; + int data_elements; + device_ptr data_pointer; + size_t data_size; + size_t data_width; + size_t data_height; + + /* device pointer */ + device_ptr device_pointer; + +protected: + device_memory() {} + virtual ~device_memory() { assert(!device_pointer); } + + /* no copying */ + device_memory(const device_memory&); + device_memory& operator = (const device_memory&); +}; + +/* Device Vector */ + +template class device_vector : public device_memory +{ +public: + device_vector() + { + data_type = device_type_traits::data_type; + data_elements = device_type_traits::num_elements; + data_pointer = 0; + data_size = 0; + data_width = 0; + data_height = 0; + + assert(data_elements > 0); + + device_pointer = 0; + } + + virtual ~device_vector() {} + + /* vector functions */ + T *resize(size_t width, size_t height = 0) + { + data_size = (height == 0)? width: width*height; + data.resize(data_size); + data_pointer = (device_ptr)&data[0]; + data_width = width; + data_height = height; + + return &data[0]; + } + + T *copy(T *ptr, size_t width, size_t height = 0) + { + T *mem = resize(width, height); + memcpy(mem, ptr, memory_size()); + return mem; + } + + void reference(T *ptr, size_t width, size_t height = 0) + { + data.clear(); + data_size = (height == 0)? width: width*height; + data_pointer = (device_ptr)ptr; + data_width = width; + data_height = height; + } + + void clear() + { + data.clear(); + data_pointer = 0; + data_width = 0; + data_height = 0; + data_size = 0; + } + + size_t size() + { + return data.size(); + } + +private: + array data; + bool referenced; +}; + +CCL_NAMESPACE_END + +#endif /* __DEVICE_MEMORY_H__ */ + diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp new file mode 100644 index 00000000000..26c9717233a --- /dev/null +++ b/intern/cycles/device/device_multi.cpp @@ -0,0 +1,304 @@ +/* + * 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 +#include + +#include "device.h" +#include "device_intern.h" +#include "device_network.h" + +#include "util_foreach.h" +#include "util_list.h" +#include "util_map.h" +#include "util_time.h" + +CCL_NAMESPACE_BEGIN + +class MultiDevice : public Device +{ +public: + struct SubDevice { + SubDevice(Device *device_) + : device(device_) {} + + Device *device; + map ptr_map; + }; + + list devices; + device_ptr unique_ptr; + + MultiDevice(bool background_) + : unique_ptr(1) + { + /* enforce background for now */ + background = true; + + Device *device; + + /* add CPU device */ + device = Device::create(DEVICE_CPU, background); + devices.push_back(SubDevice(device)); + +#ifdef WITH_CUDA + /* try to add GPU device */ + device = Device::create(DEVICE_CUDA, background); + if(device) { + devices.push_back(SubDevice(device)); + } + else +#endif + { +#ifdef WITH_OPENCL + device = Device::create(DEVICE_OPENCL, background); + if(device) + devices.push_back(SubDevice(device)); +#endif + } + +#ifdef WITH_NETWORK + /* try to add network devices */ + ServerDiscovery discovery(true); + time_sleep(1.0); + + list servers = discovery.get_server_list(); + + foreach(string& server, servers) { + device = device_network_create(server.c_str()); + if(device) + devices.push_back(SubDevice(device)); + } +#endif + } + + ~MultiDevice() + { + foreach(SubDevice& sub, devices) + delete sub.device; + } + + string description() + { + /* create map to find duplicate descriptions */ + map dupli_map; + map::iterator dt; + + foreach(SubDevice& sub, devices) { + string key = sub.device->description(); + + if(dupli_map.find(key) == dupli_map.end()) + dupli_map[key] = 1; + else + dupli_map[key]++; + } + + /* generate string */ + stringstream desc; + bool first = true; + + for(dt = dupli_map.begin(); dt != dupli_map.end(); dt++) { + if(!first) desc << ", "; + first = false; + + if(dt->second > 1) + desc << dt->second << "x " << dt->first; + else + desc << dt->first; + } + + return desc.str(); + } + + void mem_alloc(device_memory& mem, MemoryType type) + { + foreach(SubDevice& sub, devices) { + mem.device_pointer = 0; + sub.device->mem_alloc(mem, type); + sub.ptr_map[unique_ptr] = mem.device_pointer; + } + + mem.device_pointer = unique_ptr++; + } + + void mem_copy_to(device_memory& mem) + { + device_ptr tmp = mem.device_pointer; + + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->mem_copy_to(mem); + } + + mem.device_pointer = tmp; + } + + void mem_copy_from(device_memory& mem, size_t offset, size_t size) + { + device_ptr tmp = mem.device_pointer; + + /* todo: how does this work? */ + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->mem_copy_from(mem, offset, size); + break; + } + + mem.device_pointer = tmp; + } + + void mem_zero(device_memory& mem) + { + device_ptr tmp = mem.device_pointer; + + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->mem_zero(mem); + } + + mem.device_pointer = tmp; + } + + void mem_free(device_memory& mem) + { + device_ptr tmp = mem.device_pointer; + + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->mem_free(mem); + sub.ptr_map.erase(sub.ptr_map.find(tmp)); + } + + mem.device_pointer = 0; + } + + void const_copy_to(const char *name, void *host, size_t size) + { + foreach(SubDevice& sub, devices) + sub.device->const_copy_to(name, host, size); + } + + void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + { + foreach(SubDevice& sub, devices) { + mem.device_pointer = 0; + sub.device->tex_alloc(name, mem, interpolation, periodic); + sub.ptr_map[unique_ptr] = mem.device_pointer; + } + + mem.device_pointer = unique_ptr++; + } + + void tex_free(device_memory& mem) + { + device_ptr tmp = mem.device_pointer; + + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->tex_free(mem); + sub.ptr_map.erase(sub.ptr_map.find(tmp)); + } + + mem.device_pointer = 0; + } + + void pixels_alloc(device_memory& mem) + { + Device::pixels_alloc(mem); + } + + void pixels_free(device_memory& mem) + { + Device::pixels_free(mem); + } + + void pixels_copy_from(device_memory& mem, int y, int w, int h) + { + device_ptr tmp = mem.device_pointer; + int i = 0, sub_h = h/devices.size(); + + foreach(SubDevice& sub, devices) { + int sy = y + i*sub_h; + int sh = (i == (int)devices.size() - 1)? h - sub_h*i: sub_h; + + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->pixels_copy_from(mem, sy, w, sh); + i++; + } + + mem.device_pointer = tmp; + } + + void draw_pixels(device_memory& rgba, int x, int y, int w, int h, int width, int height) + { + device_ptr tmp = rgba.device_pointer; + int i = 0, sub_h = h/devices.size(); + + foreach(SubDevice& sub, devices) { + int sy = y + i*sub_h; + int sh = (i == (int)devices.size() - 1)? h - sub_h*i: sub_h; + /* adjust math for w/width */ + + rgba.device_pointer = sub.ptr_map[tmp]; + sub.device->draw_pixels(rgba, sy, w, sh, width, height); + i++; + } + + rgba.device_pointer = tmp; + } + + void task_add(DeviceTask& task) + { + ThreadQueue tasks; + task.split(tasks, devices.size()); + + foreach(SubDevice& sub, devices) { + DeviceTask subtask; + + if(tasks.worker_wait_pop(subtask)) { + 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.displace_input) subtask.displace_input = sub.ptr_map[task.displace_input]; + if(task.displace_offset) subtask.displace_offset = sub.ptr_map[task.displace_offset]; + + sub.device->task_add(subtask); + } + } + } + + void task_wait() + { + foreach(SubDevice& sub, devices) + sub.device->task_wait(); + } + + void task_cancel() + { + foreach(SubDevice& sub, devices) + sub.device->task_cancel(); + } +}; + +Device *device_multi_create(bool background) +{ + return new MultiDevice(background); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/device/device_network.cpp b/intern/cycles/device/device_network.cpp new file mode 100644 index 00000000000..eb101cdfba4 --- /dev/null +++ b/intern/cycles/device/device_network.cpp @@ -0,0 +1,382 @@ +/* + * 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 "device_intern.h" +#include "device_network.h" + +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +class NetworkDevice : public Device +{ +public: + boost::asio::io_service io_service; + tcp::socket socket; + + NetworkDevice(const char *address) + : socket(io_service) + { + stringstream portstr; + portstr << SERVER_PORT; + + tcp::resolver resolver(io_service); + tcp::resolver::query query(address, portstr.str()); + tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); + tcp::resolver::iterator end; + + boost::system::error_code error = boost::asio::error::host_not_found; + while(error && endpoint_iterator != end) + { + socket.close(); + socket.connect(*endpoint_iterator++, error); + } + if(error) + throw boost::system::system_error(error); + } + + ~NetworkDevice() + { + } + + string description() + { + RPCSend snd(socket, "description"); + snd.write(); + + RPCReceive rcv(socket); + string desc_string; + + *rcv.archive & desc_string; + + return desc_string + " (remote)"; + } + + void mem_alloc(device_memory& mem, MemoryType type) + { +#if 0 + RPCSend snd(socket, "mem_alloc"); + + snd.archive & size & type; + snd.write(); + + RPCReceive rcv(socket); + + device_ptr mem; + *rcv.archive & mem; + + return mem; +#endif + } + + void mem_copy_to(device_memory& mem) + { +#if 0 + RPCSend snd(socket, "mem_copy_to"); + + snd.archive & mem & size; + snd.write(); + snd.write_buffer(host, size); +#endif + } + + void mem_copy_from(device_memory& mem, size_t offset, size_t size) + { +#if 0 + RPCSend snd(socket, "mem_copy_from"); + + snd.archive & mem & offset & size; + snd.write(); + + RPCReceive rcv(socket); + rcv.read_buffer(host, size); +#endif + } + + void mem_zero(device_memory& mem) + { +#if 0 + RPCSend snd(socket, "mem_zero"); + + snd.archive & mem & size; + snd.write(); +#endif + } + + void mem_free(device_memory& mem) + { +#if 0 + if(mem) { + RPCSend snd(socket, "mem_free"); + + snd.archive & mem; + snd.write(); + } +#endif + } + + void const_copy_to(const char *name, void *host, size_t size) + { + RPCSend snd(socket, "const_copy_to"); + + string name_string(name); + + snd.archive & name_string & size; + snd.write(); + snd.write_buffer(host, size); + } + + void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + { +#if 0 + RPCSend snd(socket, "tex_alloc"); + + string name_string(name); + + snd.archive & name_string & width & height & datatype & components & interpolation; + snd.write(); + + size_t size = width*height*components*datatype_size(datatype); + snd.write_buffer(host, size); + + RPCReceive rcv(socket); + + device_ptr mem; + *rcv.archive & mem; + + return mem; +#endif + } + + void tex_free(device_memory& mem) + { +#if 0 + if(mem) { + RPCSend snd(socket, "tex_free"); + + snd.archive & mem; + snd.write(); + } +#endif + } + + void path_trace(int x, int y, int w, int h, device_ptr buffer, device_ptr rng_state, int pass) + { +#if 0 + RPCSend snd(socket, "path_trace"); + + snd.archive & x & y & w & h & buffer & rng_state & pass; + snd.write(); +#endif + } + + void tonemap(int x, int y, int w, int h, device_ptr rgba, device_ptr buffer, int pass, int resolution) + { +#if 0 + RPCSend snd(socket, "tonemap"); + + snd.archive & x & y & w & h & rgba & buffer & pass & resolution; + snd.write(); +#endif + } + + void task_add(DeviceTask& task) + { + if(task.type == DeviceTask::TONEMAP) + tonemap(task.x, task.y, task.w, task.h, task.rgba, task.buffer, task.pass, task.resolution); + else if(task.type == DeviceTask::PATH_TRACE) + path_trace(task.x, task.y, task.w, task.h, task.buffer, task.rng_state, task.pass); + } + + void task_wait() + { + } + + void task_cancel() + { + } +}; + +Device *device_network_create(const char *address) +{ + return new NetworkDevice(address); +} + + +void Device::server_run() +{ + try + { + /* starts thread that responds to discovery requests */ + ServerDiscovery discovery; + + for(;;) + { + + /* accept connection */ + boost::asio::io_service io_service; + tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), SERVER_PORT)); + + tcp::socket socket(io_service); + acceptor.accept(socket); + + /* receive remote function calls */ + for(;;) { + RPCReceive rcv(socket); + + if(rcv.name == "description") { + string desc = description(); + + RPCSend snd(socket); + snd.archive & desc; + snd.write(); + } + else if(rcv.name == "mem_alloc") { +#if 0 + MemoryType type; + size_t size; + device_ptr mem; + + *rcv.archive & size & type; + mem = mem_alloc(size, type); + + RPCSend snd(socket); + snd.archive & mem; + snd.write(); +#endif + } + else if(rcv.name == "mem_copy_to") { +#if 0 + device_ptr mem; + size_t size; + + *rcv.archive & mem & size; + + vector host_vector(size); + rcv.read_buffer(&host_vector[0], size); + + mem_copy_to(mem, &host_vector[0], size); +#endif + } + else if(rcv.name == "mem_copy_from") { +#if 0 + device_ptr mem; + size_t offset, size; + + *rcv.archive & mem & offset & size; + + vector host_vector(size); + + mem_copy_from(&host_vector[0], mem, offset, size); + + RPCSend snd(socket); + snd.write(); + snd.write_buffer(&host_vector[0], size); +#endif + } + else if(rcv.name == "mem_zero") { +#if 0 + device_ptr mem; + size_t size; + + *rcv.archive & mem & size; + mem_zero(mem, size); +#endif + } + else if(rcv.name == "mem_free") { +#if 0 + device_ptr mem; + + *rcv.archive & mem; + mem_free(mem); +#endif + } + else if(rcv.name == "const_copy_to") { + string name_string; + size_t size; + + *rcv.archive & name_string & size; + + vector host_vector(size); + rcv.read_buffer(&host_vector[0], size); + + const_copy_to(name_string.c_str(), &host_vector[0], size); + } + else if(rcv.name == "tex_alloc") { +#if 0 + string name_string; + DataType datatype; + device_ptr mem; + size_t width, height; + int components; + bool interpolation; + + *rcv.archive & name_string & width & height & datatype & components & interpolation; + + size_t size = width*height*components*datatype_size(datatype); + + vector host_vector(size); + rcv.read_buffer(&host_vector[0], size); + + mem = tex_alloc(name_string.c_str(), &host_vector[0], width, height, datatype, components, interpolation); + + RPCSend snd(socket); + snd.archive & mem; + snd.write(); +#endif + } + else if(rcv.name == "tex_free") { +#if 0 + device_ptr mem; + + *rcv.archive & mem; + tex_free(mem); +#endif + } + else if(rcv.name == "path_trace") { +#if 0 + device_ptr buffer, rng_state; + int x, y, w, h; + int pass; + + *rcv.archive & x & y & w & h & buffer & rng_state & pass; + path_trace(x, y, w, h, buffer, rng_state, pass); +#endif + } + else if(rcv.name == "tonemap") { +#if 0 + device_ptr rgba, buffer; + int x, y, w, h; + int pass, resolution; + + *rcv.archive & x & y & w & h & rgba & buffer & pass & resolution; + tonemap(x, y, w, h, rgba, buffer, pass, resolution); +#endif + } + } + } + } + catch(exception& e) + { + cerr << "Network server exception: " << e.what() << endl; + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/device/device_network.h b/intern/cycles/device/device_network.h new file mode 100644 index 00000000000..ebb1e43a7a7 --- /dev/null +++ b/intern/cycles/device/device_network.h @@ -0,0 +1,304 @@ +/* + * 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_NETWORK_H__ +#define __DEVICE_NETWORK_H__ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "util_foreach.h" +#include "util_list.h" +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +using std::cout; +using std::cerr; +using std::endl; +using std::hex; +using std::setw; +using std::exception; + +using boost::asio::ip::tcp; + +static const int SERVER_PORT = 5120; +static const int DISCOVER_PORT = 5121; +static const string DISCOVER_REQUEST_MSG = "REQUEST_RENDER_SERVER_IP"; +static const string DISCOVER_REPLY_MSG = "REPLY_RENDER_SERVER_IP"; + +typedef struct RPCSend { + RPCSend(tcp::socket& socket_, const string& name_ = "") + : name(name_), socket(socket_), archive(archive_stream) + { + archive & name_; + } + + void write() + { + boost::system::error_code error; + + /* get string from stream */ + string archive_str = archive_stream.str(); + + /* first send fixed size header with size of following data */ + ostringstream header_stream; + header_stream << setw(8) << hex << archive_str.size(); + string header_str = header_stream.str(); + + boost::asio::write(socket, + boost::asio::buffer(header_str), + boost::asio::transfer_all(), error); + + if(error.value()) + cout << "Network send error: " << error.message() << "\n"; + + /* then send actual data */ + boost::asio::write(socket, + boost::asio::buffer(archive_str), + boost::asio::transfer_all(), error); + + if(error.value()) + cout << "Network send error: " << error.message() << "\n"; + } + + void write_buffer(void *buffer, size_t size) + { + boost::system::error_code error; + + boost::asio::write(socket, + boost::asio::buffer(buffer, size), + boost::asio::transfer_all(), error); + + if(error.value()) + cout << "Network send error: " << error.message() << "\n"; + } + + string name; + tcp::socket& socket; + ostringstream archive_stream; + boost::archive::text_oarchive archive; +} RPCSend; + +typedef struct RPCReceive { + RPCReceive(tcp::socket& socket_) + : socket(socket_), archive_stream(NULL), archive(NULL) + { + /* read head with fixed size */ + vector header(8); + size_t len = boost::asio::read(socket, boost::asio::buffer(header)); + + /* verify if we got something */ + if(len == header.size()) { + /* decode header */ + string header_str(&header[0], header.size()); + istringstream header_stream(header_str); + + size_t data_size; + + if((header_stream >> hex >> data_size)) { + vector data(data_size); + size_t len = boost::asio::read(socket, boost::asio::buffer(data)); + + if(len == data_size) { + archive_str = string(&data[0], data.size()); + /*istringstream archive_stream(archive_str); + boost::archive::text_iarchive archive(archive_stream);*/ + archive_stream = new istringstream(archive_str); + archive = new boost::archive::text_iarchive(*archive_stream); + + *archive & name; + } + else + cout << "Network receive error: data size doens't match header\n"; + } + else + cout << "Network receive error: can't decode data size from header\n"; + } + else + cout << "Network receive error: invalid header size\n"; + } + + ~RPCReceive() + { + delete archive; + delete archive_stream; + } + + void read_buffer(void *buffer, size_t size) + { + size_t len = boost::asio::read(socket, boost::asio::buffer(buffer, size)); + + if(len != size) + cout << "Network receive error: buffer size doesn't match expected size\n"; + } + + string name; + tcp::socket& socket; + string archive_str; + istringstream *archive_stream; + boost::archive::text_iarchive *archive; +} RPCReceive; + +class ServerDiscovery { +public: + ServerDiscovery(bool discover = false) + : listen_socket(io_service), collect_servers(false) + { + /* setup listen socket */ + listen_endpoint.address(boost::asio::ip::address_v4::any()); + listen_endpoint.port(DISCOVER_PORT); + + listen_socket.open(listen_endpoint.protocol()); + + boost::asio::socket_base::reuse_address option(true); + listen_socket.set_option(option); + + listen_socket.bind(listen_endpoint); + + /* setup receive callback */ + async_receive(); + + /* start server discovery */ + if(discover) { + collect_servers = true; + servers.clear(); + + broadcast_message(DISCOVER_REQUEST_MSG); + } + + /* start thread */ + work = new boost::asio::io_service::work(io_service); + thread = new boost::thread(boost::bind(&boost::asio::io_service::run, &io_service)); + } + + ~ServerDiscovery() + { + io_service.stop(); + thread->join(); + delete thread; + delete work; + } + + list get_server_list() + { + list result; + + mutex.lock(); + result = servers; + mutex.unlock(); + + return result; + } + +private: + void handle_receive_from(const boost::system::error_code& error, size_t size) + { + if(error) { + cout << "Server discovery receive error: " << error.message() << "\n"; + return; + } + + if(size > 0) { + string msg = string(receive_buffer, size); + + /* handle incoming message */ + if(collect_servers) { + if(msg == DISCOVER_REPLY_MSG) { + string address = receive_endpoint.address().to_string(); + + mutex.lock(); + + /* add address if it's not already in the list */ + bool found = false; + + foreach(string& server, servers) + if(server == address) + found = true; + + if(!found) + servers.push_back(address); + + mutex.unlock(); + } + } + else { + /* reply to request */ + if(msg == DISCOVER_REQUEST_MSG) + broadcast_message(DISCOVER_REPLY_MSG); + } + } + + async_receive(); + } + + void async_receive() + { + listen_socket.async_receive_from( + boost::asio::buffer(receive_buffer), receive_endpoint, + boost::bind(&ServerDiscovery::handle_receive_from, this, + boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); + } + + void broadcast_message(const string& msg) + { + /* setup broadcast socket */ + boost::asio::ip::udp::socket socket(io_service); + + socket.open(boost::asio::ip::udp::v4()); + + boost::asio::socket_base::broadcast option(true); + socket.set_option(option); + + boost::asio::ip::udp::endpoint broadcast_endpoint( + boost::asio::ip::address::from_string("255.255.255.255"), DISCOVER_PORT); + + /* broadcast message */ + socket.send_to(boost::asio::buffer(msg), broadcast_endpoint); + } + + /* network service and socket */ + boost::asio::io_service io_service; + boost::asio::ip::udp::endpoint listen_endpoint; + boost::asio::ip::udp::socket listen_socket; + + /* threading */ + boost::thread *thread; + boost::asio::io_service::work *work; + boost::mutex mutex; + + /* buffer and endpoint for receiving messages */ + char receive_buffer[256]; + boost::asio::ip::udp::endpoint receive_endpoint; + + /* collection of server addresses in list */ + bool collect_servers; + list servers; +}; + +CCL_NAMESPACE_END + +#endif /* __DEVICE_NETWORK_H__ */ + diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp new file mode 100644 index 00000000000..6b564d10e78 --- /dev/null +++ b/intern/cycles/device/device_opencl.cpp @@ -0,0 +1,396 @@ +/* + * 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. + */ + +#ifdef WITH_OPENCL + +#include +#include +#include + +#ifdef __APPLE__ +#include +#include +#else +#include +#include +#endif + +#include "device.h" +#include "device_intern.h" + +#include "util_map.h" +#include "util_opengl.h" +#include "util_path.h" +#include "util_time.h" + +CCL_NAMESPACE_BEGIN + +#define CL_MEM_PTR(p) ((cl_mem)(unsigned long)(p)) + +class OpenCLDevice : public Device +{ +public: + cl_context cxGPUContext; + cl_command_queue cqCommandQueue; + cl_platform_id cpPlatform; + cl_device_id cdDevice; + cl_program cpProgram; + cl_kernel ckPathTraceKernel; + cl_kernel ckFilmConvertKernel; + cl_int ciErr; + map*> const_mem_map; + map mem_map; + + const char *opencl_error_string(cl_int err) + { + switch (err) { + case CL_SUCCESS: return "Success!"; + case CL_DEVICE_NOT_FOUND: return "Device not found."; + case CL_DEVICE_NOT_AVAILABLE: return "Device not available"; + case CL_COMPILER_NOT_AVAILABLE: return "Compiler not available"; + case CL_MEM_OBJECT_ALLOCATION_FAILURE: return "Memory object allocation failure"; + case CL_OUT_OF_RESOURCES: return "Out of resources"; + case CL_OUT_OF_HOST_MEMORY: return "Out of host memory"; + case CL_PROFILING_INFO_NOT_AVAILABLE: return "Profiling information not available"; + case CL_MEM_COPY_OVERLAP: return "Memory copy overlap"; + case CL_IMAGE_FORMAT_MISMATCH: return "Image format mismatch"; + case CL_IMAGE_FORMAT_NOT_SUPPORTED: return "Image format not supported"; + case CL_BUILD_PROGRAM_FAILURE: return "Program build failure"; + case CL_MAP_FAILURE: return "Map failure"; + case CL_INVALID_VALUE: return "Invalid value"; + case CL_INVALID_DEVICE_TYPE: return "Invalid device type"; + case CL_INVALID_PLATFORM: return "Invalid platform"; + case CL_INVALID_DEVICE: return "Invalid device"; + case CL_INVALID_CONTEXT: return "Invalid context"; + case CL_INVALID_QUEUE_PROPERTIES: return "Invalid queue properties"; + case CL_INVALID_COMMAND_QUEUE: return "Invalid command queue"; + case CL_INVALID_HOST_PTR: return "Invalid host pointer"; + case CL_INVALID_MEM_OBJECT: return "Invalid memory object"; + case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: return "Invalid image format descriptor"; + case CL_INVALID_IMAGE_SIZE: return "Invalid image size"; + case CL_INVALID_SAMPLER: return "Invalid sampler"; + case CL_INVALID_BINARY: return "Invalid binary"; + case CL_INVALID_BUILD_OPTIONS: return "Invalid build options"; + case CL_INVALID_PROGRAM: return "Invalid program"; + case CL_INVALID_PROGRAM_EXECUTABLE: return "Invalid program executable"; + case CL_INVALID_KERNEL_NAME: return "Invalid kernel name"; + case CL_INVALID_KERNEL_DEFINITION: return "Invalid kernel definition"; + case CL_INVALID_KERNEL: return "Invalid kernel"; + case CL_INVALID_ARG_INDEX: return "Invalid argument index"; + case CL_INVALID_ARG_VALUE: return "Invalid argument value"; + case CL_INVALID_ARG_SIZE: return "Invalid argument size"; + case CL_INVALID_KERNEL_ARGS: return "Invalid kernel arguments"; + case CL_INVALID_WORK_DIMENSION: return "Invalid work dimension"; + case CL_INVALID_WORK_GROUP_SIZE: return "Invalid work group size"; + case CL_INVALID_WORK_ITEM_SIZE: return "Invalid work item size"; + case CL_INVALID_GLOBAL_OFFSET: return "Invalid global offset"; + case CL_INVALID_EVENT_WAIT_LIST: return "Invalid event wait list"; + case CL_INVALID_EVENT: return "Invalid event"; + case CL_INVALID_OPERATION: return "Invalid operation"; + case CL_INVALID_GL_OBJECT: return "Invalid OpenGL object"; + case CL_INVALID_BUFFER_SIZE: return "Invalid buffer size"; + case CL_INVALID_MIP_LEVEL: return "Invalid mip-map level"; + default: return "Unknown"; + } + } + + void opencl_assert(cl_int err) + { + if(err != CL_SUCCESS) { + printf("error (%d): %s\n", err, opencl_error_string(err)); + abort(); + } + } + + OpenCLDevice(bool background_) + { + background = background_; + + /* setup device */ + ciErr = clGetPlatformIDs(1, &cpPlatform, NULL); + opencl_assert(ciErr); + + ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU, 1, &cdDevice, NULL); + opencl_assert(ciErr); + + cxGPUContext = clCreateContext(0, 1, &cdDevice, NULL /*clLogMessagesToStdoutAPPLE */, NULL, &ciErr); + opencl_assert(ciErr); + + cqCommandQueue = clCreateCommandQueue(cxGPUContext, cdDevice, 0, &ciErr); + opencl_assert(ciErr); + + /* compile kernel */ + string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); + size_t source_len = source.size(); + string build_options = "-I ../kernel -I ../util -Werror -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END="; //" + path_get("kernel") + " -Werror"; + //printf("path %s\n", path_get("kernel").c_str()); + + //clUnloadCompiler(); + + cpProgram = clCreateProgramWithSource(cxGPUContext, 1, (const char **)&source, &source_len, &ciErr); + + opencl_assert(ciErr); + + ciErr = clBuildProgram(cpProgram, 0, NULL, build_options.c_str(), NULL, NULL); + if(ciErr != CL_SUCCESS) { + char *build_log; + size_t ret_val_size; + + clGetProgramBuildInfo(cpProgram, cdDevice, CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size); + + build_log = new char[ret_val_size+1]; + clGetProgramBuildInfo(cpProgram, cdDevice, CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL); + + build_log[ret_val_size] = '\0'; + printf("OpenCL build failed:\n %s\n", build_log); + + delete[] build_log; + + opencl_assert(ciErr); + + return; + } + + ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); + opencl_assert(ciErr); + ckFilmConvertKernel = clCreateKernel(cpProgram, "kernel_ocl_tonemap", &ciErr); + opencl_assert(ciErr); + } + + ~OpenCLDevice() + { + map*>::iterator mt; + for(mt = const_mem_map.begin(); mt != const_mem_map.end(); mt++) { + mem_free(*(mt->second)); + delete mt->second; + } + + clReleaseKernel(ckPathTraceKernel); + clReleaseKernel(ckFilmConvertKernel); + clReleaseProgram(cpProgram); + clReleaseCommandQueue(cqCommandQueue); + clReleaseContext(cxGPUContext); + } + + string description() + { + char name[1024]; + + clGetDeviceInfo(cdDevice, CL_DEVICE_NAME, sizeof(name), &name, NULL); + + return string("OpenCL ") + name; + } + + void mem_alloc(device_memory& mem, MemoryType type) + { + size_t size = mem.memory_size(); + + if(type == MEM_READ_ONLY) + mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY, size, NULL, &ciErr); + else if(type == MEM_WRITE_ONLY) + mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_WRITE_ONLY, size, NULL, &ciErr); + else + mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_WRITE, size, NULL, &ciErr); + + opencl_assert(ciErr); + } + + void mem_copy_to(device_memory& mem) + { + /* this is blocking */ + size_t size = mem.memory_size(); + ciErr = clEnqueueWriteBuffer(cqCommandQueue, CL_MEM_PTR(mem.device_pointer), CL_TRUE, 0, size, (void*)mem.data_pointer, 0, NULL, NULL); + opencl_assert(ciErr); + } + + void mem_copy_from(device_memory& mem, size_t offset, size_t size) + { + ciErr = clEnqueueReadBuffer(cqCommandQueue, CL_MEM_PTR(mem.device_pointer), CL_TRUE, offset, size, (uchar*)mem.data_pointer + offset, 0, NULL, NULL); + opencl_assert(ciErr); + } + + void mem_zero(device_memory& mem) + { + if(mem.device_pointer) { + memset((void*)mem.data_pointer, 0, mem.memory_size()); + mem_copy_to(mem); + } + } + + void mem_free(device_memory& mem) + { + if(mem.device_pointer) { + ciErr = clReleaseMemObject(CL_MEM_PTR(mem.device_pointer)); + mem.device_pointer = 0; + opencl_assert(ciErr); + } + } + + void const_copy_to(const char *name, void *host, size_t size) + { + if(const_mem_map.find(name) == const_mem_map.end()) { + device_vector *data = new device_vector(); + data->copy((uchar*)host, size); + + mem_alloc(*data, MEM_READ_ONLY); + const_mem_map[name] = data; + } + else { + device_vector *data = const_mem_map[name]; + data->copy((uchar*)host, size); + } + + mem_copy_to(*const_mem_map[name]); + } + + void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + { + mem_alloc(mem, MEM_READ_ONLY); + mem_map[name] = &mem; + } + + void tex_free(device_memory& mem) + { + if(mem.data_pointer) + mem_free(mem); + } + + size_t global_size_round_up(int group_size, int global_size) + { + int r = global_size % group_size; + return global_size + ((r == 0)? 0: group_size - r); + } + + void path_trace(DeviceTask& task) + { + /* 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_pass = task.pass; + + /* pass arguments */ + int narg = 0; + ciErr = 0; + + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_data), (void*)&d_data); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_buffer), (void*)&d_buffer); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_rng_state), (void*)&d_rng_state); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_pass), (void*)&d_pass); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_x), (void*)&d_x); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_y), (void*)&d_y); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_w), (void*)&d_w); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_h), (void*)&d_h); + + opencl_assert(ciErr); + + size_t local_size[2] = {1, 1}; + size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; + + /* run kernel */ + ciErr = clEnqueueNDRangeKernel(cqCommandQueue, ckPathTraceKernel, 2, NULL, global_size, local_size, 0, NULL, NULL); + opencl_assert(ciErr); + opencl_assert(clFinish(cqCommandQueue)); + } + + cl_int set_kernel_arg_mem(cl_kernel kernel, int *narg, const char *name) + { + device_memory *mem = mem_map[name]; + cl_mem ptr = CL_MEM_PTR(mem->device_pointer); + cl_int size = mem->data_width; + cl_int err = 0; + + err |= clSetKernelArg(kernel, (*narg)++, sizeof(ptr), (void*)&ptr); + opencl_assert(err); + err |= clSetKernelArg(kernel, (*narg)++, sizeof(size), (void*)&size); + opencl_assert(err); + + return err; + } + + void tonemap(DeviceTask& task) + { + /* 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_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_pass = task.pass; + cl_int d_resolution = task.resolution; + + /* pass arguments */ + int narg = 0; + ciErr = 0; + + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_data), (void*)&d_data); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_rgba), (void*)&d_rgba); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_buffer), (void*)&d_buffer); + ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_R"); + ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_G"); + ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_B"); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_pass), (void*)&d_pass); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_resolution), (void*)&d_resolution); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_x), (void*)&d_x); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_y), (void*)&d_y); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_w), (void*)&d_w); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_h), (void*)&d_h); + + opencl_assert(ciErr); + + size_t local_size[2] = {1, 1}; + size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; + + /* run kernel */ + ciErr = clEnqueueNDRangeKernel(cqCommandQueue, ckFilmConvertKernel, 2, NULL, global_size, local_size, 0, NULL, NULL); + opencl_assert(ciErr); + opencl_assert(clFinish(cqCommandQueue)); + } + + void task_add(DeviceTask& task) + { + if(task.type == DeviceTask::TONEMAP) + tonemap(task); + else if(task.type == DeviceTask::PATH_TRACE) + path_trace(task); + } + + void task_wait() + { + } + + void task_cancel() + { + } +}; + +Device *device_opencl_create(bool background) +{ + return new OpenCLDevice(background); +} + +CCL_NAMESPACE_END + +#endif /* WITH_OPENCL */ + diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt new file mode 100644 index 00000000000..116ca5e5b9f --- /dev/null +++ b/intern/cycles/doc/CMakeLists.txt @@ -0,0 +1,105 @@ + +INSTALL(DIRECTORY license DESTINATION ${INSTALL_PATH}/cycles) + +SET(doc_sources + index.html + + development/build.html + development/bvh.html + development/design.html + development/device_abstraction.html + development/displacement.html + development/feature_todo.html + development/known_issues.html + development/geometric_issues.html + development/ideas.html + development/index.html + development/kernel.html + development/license.html + development/node_guidelines.html + development/optimization.html + development/osl_gpu.html + development/papers.html + development/sobol.html + development/source.html + development/subdivision.html + development/threads.html + development/units_colors.html + + reference/camera.html + reference/curve.html + reference/devices.html + reference/film.html + reference/index.html + reference/integrator.html + reference/interactive.html + reference/lamp.html + reference/mesh.html + reference/motion_blur.html + reference/particle.html + reference/subdivision.html + reference/world.html + + reference/material/displacement.html + reference/material/index.html + reference/material/surface.html + reference/material/volume.html + + reference/shader/background.html + reference/shader/bsdf.html + reference/shader/color_operations.html + reference/shader/custom.html + reference/shader/emission.html + reference/shader/image_textures.html + reference/shader/index.html + reference/shader/input.html + reference/shader/output.html + reference/shader/procedural_textures.html + reference/shader/vector_operations.html + reference/shader/volume.html + reference/shader/volume_textures.html) + +SET(doc_extra + development/images/rng_lcg_50_pass.png + development/images/rng_sobol_50_pass.png + development/threads.svg + reference/camera_ortho.svg + reference/camera_persp.svg + reference/material/material.svg + reference/shader/bsdf.svg + style/style.css) + +SET(doc_templates + templates/development.html + templates/footer.html + templates/header.html + templates/nodes.html + templates/reference.html) + +IF(WITH_DOCS) + MACRO(install_doc_file source_file html_file) + GET_FILENAME_COMPONENT(subdir ${source_file} PATH) + INSTALL( + FILES ${html_file} + DESTINATION ${INSTALL_PATH}/cycles/doc/${subdir}) + ENDMACRO() + + FOREACH(_file ${doc_sources}) + SET(source_file ${_file}) + SET(html_file ${CMAKE_CURRENT_BINARY_DIR}/${_file}) + ADD_CUSTOM_COMMAND( + OUTPUT ${html_file} + COMMAND python generate.py ${source_file} ${html_file} ${CYCLES_VERSION} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${source_file} ${doc_templates} generate.py) + LIST(APPEND html_files ${html_file}) + install_doc_file(${source_file} ${html_file}) + ENDFOREACH() + + FOREACH(_file ${doc_extra}) + install_doc_file(${_file} ${_file}) + ENDFOREACH() + + ADD_CUSTOM_TARGET(doc ALL DEPENDS ${html_files}) +ENDIF() + diff --git a/intern/cycles/doc/license/Apache_2.0.txt b/intern/cycles/doc/license/Apache_2.0.txt new file mode 100644 index 00000000000..6b0b1270ff0 --- /dev/null +++ b/intern/cycles/doc/license/Apache_2.0.txt @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/intern/cycles/doc/license/Blender.txt b/intern/cycles/doc/license/Blender.txt new file mode 100644 index 00000000000..35aa258f229 --- /dev/null +++ b/intern/cycles/doc/license/Blender.txt @@ -0,0 +1,17 @@ + +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): Alfredo de Greef, Blender Foundation + diff --git a/intern/cycles/doc/license/GPL.txt b/intern/cycles/doc/license/GPL.txt new file mode 100644 index 00000000000..00e618b783e --- /dev/null +++ b/intern/cycles/doc/license/GPL.txt @@ -0,0 +1,342 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + diff --git a/intern/cycles/doc/license/ILM.txt b/intern/cycles/doc/license/ILM.txt new file mode 100644 index 00000000000..0e24aa56203 --- /dev/null +++ b/intern/cycles/doc/license/ILM.txt @@ -0,0 +1,29 @@ + +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas +Digital Ltd. LLC. 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 Industrial Light & Magic 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. + diff --git a/intern/cycles/doc/license/NVidia.txt b/intern/cycles/doc/license/NVidia.txt new file mode 100644 index 00000000000..4fa55d3d2bc --- /dev/null +++ b/intern/cycles/doc/license/NVidia.txt @@ -0,0 +1,36 @@ + +Copyright 2006, NVIDIA Corporation Ignacio Castano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +Copyright 2009-2010 NVIDIA Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/intern/cycles/doc/license/OSL.txt b/intern/cycles/doc/license/OSL.txt new file mode 100644 index 00000000000..1ffeb58291e --- /dev/null +++ b/intern/cycles/doc/license/OSL.txt @@ -0,0 +1,28 @@ + +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. + diff --git a/intern/cycles/doc/license/Sobol.txt b/intern/cycles/doc/license/Sobol.txt new file mode 100644 index 00000000000..4ad42d22fb1 --- /dev/null +++ b/intern/cycles/doc/license/Sobol.txt @@ -0,0 +1,29 @@ +Copyright (c) 2008, Frances Y. Kuo and Stephen Joe +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 names of the copyright holders nor the names of the + University of New South Wales and the University of Waikato + and 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 ``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 HOLDERS 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. + diff --git a/intern/cycles/doc/license/readme.txt b/intern/cycles/doc/license/readme.txt new file mode 100644 index 00000000000..de8c28f7f12 --- /dev/null +++ b/intern/cycles/doc/license/readme.txt @@ -0,0 +1,11 @@ + +This program uses code from various sources. These are the licenses: + +* New code is licensed under the GPL license v2 or later. +* BVH building and traversal code is licensed under Apache License v2. +* Approximate Catmull Clark subdivision code is licensed under the MIT license. +* Open Shading Language code on GPU is licensed under the Modified BSD license. +* Sobol direction vectors are licensed under the Modified BSD license. +* Matrix code adapted from OpenEXR under the Modified BSD license. +* Procedural texture functions from Blender are licensed under GPL v2 or later. + diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt new file mode 100644 index 00000000000..30b618eb1ad --- /dev/null +++ b/intern/cycles/kernel/CMakeLists.txt @@ -0,0 +1,104 @@ + +SET(sources + kernel.cpp + kernel.cl + kernel.cu) + +SET(headers + kernel.h + kernel_bvh.h + kernel_camera.h + kernel_compat_cpu.h + kernel_compat_cuda.h + kernel_compat_opencl.h + kernel_differential.h + kernel_displace.h + kernel_emission.h + kernel_film.h + kernel_globals.h + kernel_light.h + kernel_math.h + kernel_mbvh.h + kernel_montecarlo.h + kernel_object.h + kernel_path.h + kernel_qbvh.h + kernel_random.h + kernel_shader.h + kernel_triangle.h + kernel_types.h + svm/bsdf.h + svm/bsdf_ashikhmin_velvet.h + svm/bsdf_diffuse.h + svm/bsdf_microfacet.h + svm/bsdf_reflection.h + svm/bsdf_refraction.h + svm/bsdf_transparent.h + svm/bsdf_ward.h + svm/bsdf_westin.h + svm/emissive.h + svm/svm.h + svm/svm_attribute.h + svm/svm_blend.h + svm/svm_bsdf.h + svm/svm_closure.h + svm/svm_clouds.h + svm/svm_convert.h + svm/svm_displace.h + svm/svm_distorted_noise.h + svm/svm_fresnel.h + svm/svm_geometry.h + svm/svm_image.h + svm/svm_light_path.h + svm/svm_magic.h + svm/svm_mapping.h + svm/svm_marble.h + svm/svm_math.h + svm/svm_mix.h + svm/svm_musgrave.h + svm/svm_noise.h + svm/svm_noisetex.h + svm/svm_sky.h + svm/svm_stucci.h + svm/svm_tex_coord.h + svm/svm_texture.h + svm/svm_types.h + svm/svm_value.h + svm/svm_voronoi.h + svm/svm_wood.h + svm/volume.h + ) + +# CUDA module + +IF(WITH_CUDA) + SET(cuda_sources kernel.cu ${headers}) + SET(cuda_cubins) + + FOREACH(arch ${CUDA_ARCH}) + SET(cuda_cubin kernel_${arch}.cubin) + + ADD_CUSTOM_COMMAND( + OUTPUT ${cuda_cubin} + COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= + DEPENDS ${cuda_sources}) + + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${INSTALL_PATH}/cycles/lib) + LIST(APPEND cuda_cubins ${cuda_cubin}) + ENDFOREACH() + + ADD_CUSTOM_TARGET(kernel_cuda ALL DEPENDS ${cuda_cubins}) +ENDIF(WITH_CUDA) + +# OSL module + +IF(WITH_OSL) + ADD_SUBDIRECTORY(osl) +ENDIF(WITH_OSL) + +# CPU module + +INCLUDE_DIRECTORIES(. ../util osl svm) + +ADD_LIBRARY(kernel ${sources} ${headers}) + diff --git a/intern/cycles/kernel/kernel.cl b/intern/cycles/kernel/kernel.cl new file mode 100644 index 00000000000..a22db5fe040 --- /dev/null +++ b/intern/cycles/kernel/kernel.cl @@ -0,0 +1,105 @@ +/* + * 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. + */ + +/* OpenCL kernel entry points - unfinished */ + +#include "kernel_compat_opencl.h" +#include "kernel_math.h" +#include "kernel_types.h" +#include "kernel_globals.h" + +typedef struct KernelGlobals { + __constant KernelData *data; + + __global float *__response_curve_R; + int __response_curve_R_width; + + __global float *__response_curve_G; + int __response_curve_G_width; + + __global float *__response_curve_B; + int __response_curve_B_width; +} KernelGlobals; + +#include "kernel_film.h" +//#include "kernel_path.h" +//#include "kernel_displace.h" + +__kernel void kernel_ocl_path_trace(__constant KernelData *data, __global float4 *buffer, __global uint *rng_state, int pass, int sx, int sy, int sw, int sh) +{ + KernelGlobals kglobals, *kg = &kglobals; + kg->data = data; + + int x = get_global_id(0); + int y = get_global_id(1); + int w = kernel_data.cam.width; + + if(x < sx + sw && y < sy + sh) { + if(pass == 0) { + buffer[x + w*y].x = 0.5f; + buffer[x + w*y].y = 0.5f; + buffer[x + w*y].z = 0.5f; + } + else { + buffer[x + w*y].x += 0.5f; + buffer[x + w*y].y += 0.5f; + buffer[x + w*y].z += 0.5f; + } + + //= make_float3(1.0f, 0.9f, 0.0f); + //kernel_path_trace(buffer, rng_state, pass, x, y); + } +} + +__kernel void kernel_ocl_tonemap( + __constant KernelData *data, + __global uchar4 *rgba, + __global float4 *buffer, + __global float *__response_curve_R, + int __response_curve_R_width, + __global float *__response_curve_G, + int __response_curve_G_width, + __global float *__response_curve_B, + int __response_curve_B_width, + int pass, int resolution, + int sx, int sy, int sw, int sh) +{ + KernelGlobals kglobals, *kg = &kglobals; + + kg->data = data; + kg->__response_curve_R = __response_curve_R; + kg->__response_curve_R_width = __response_curve_R_width; + kg->__response_curve_G = __response_curve_G; + kg->__response_curve_G_width = __response_curve_G_width; + kg->__response_curve_B = __response_curve_B; + kg->__response_curve_B_width = __response_curve_B_width; + + int x = sx + get_global_id(0); + int y = sy + get_global_id(1); + + if(x < sx + sw && y < sy + sh) + kernel_film_tonemap(kg, rgba, buffer, pass, resolution, x, y); +} + +__kernel void kernel_ocl_displace(__global uint4 *input, __global float3 *offset, int sx) +{ + int x = sx + get_global_id(0); + + kernel_displace(input, offset, x); +} + diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp new file mode 100644 index 00000000000..656e90eb526 --- /dev/null +++ b/intern/cycles/kernel/kernel.cpp @@ -0,0 +1,300 @@ +/* + * 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. + */ + +/* CPU kernel entry points */ + +#include "kernel.h" +#include "kernel_compat_cpu.h" +#include "kernel_math.h" +#include "kernel_types.h" +#include "kernel_globals.h" +#include "kernel_film.h" +#include "kernel_path.h" +#include "kernel_displace.h" + +CCL_NAMESPACE_BEGIN + +/* Globals */ + +KernelGlobals *kernel_globals_create() +{ + KernelGlobals *kg = new KernelGlobals(); +#ifdef WITH_OSL + kg->osl.use = false; +#endif + return kg; +} + +void kernel_globals_free(KernelGlobals *kg) +{ + delete kg; +} + +/* OSL */ + +#ifdef WITH_OSL + +void *kernel_osl_memory(KernelGlobals *kg) +{ + return (void*)&kg->osl; +} + +bool kernel_osl_use(KernelGlobals *kg) +{ + return kg->osl.use; +} + +#endif + +/* Memory Copy */ + +void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t size) +{ + if(strcmp(name, "__data") == 0) + memcpy(&kg->__data, host, size); + else + assert(0); +} + +void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height) +{ + if(strcmp(name, "__bvh_nodes") == 0) { + kg->__bvh_nodes.data = (float4*)mem; + kg->__bvh_nodes.width = width; + } + else if(strcmp(name, "__objects") == 0) { + kg->__objects.data = (float4*)mem; + kg->__objects.width = width; + } + else if(strcmp(name, "__tri_normal") == 0) { + kg->__tri_normal.data = (float4*)mem; + kg->__tri_normal.width = width; + } + else if(strcmp(name, "__tri_woop") == 0) { + kg->__tri_woop.data = (float4*)mem; + kg->__tri_woop.width = width; + } + else if(strcmp(name, "__prim_index") == 0) { + kg->__prim_index.data = (uint*)mem; + kg->__prim_index.width = width; + } + else if(strcmp(name, "__prim_object") == 0) { + kg->__prim_object.data = (uint*)mem; + kg->__prim_object.width = width; + } + else if(strcmp(name, "__object_node") == 0) { + kg->__object_node.data = (uint*)mem; + kg->__object_node.width = width; + } + else if(strcmp(name, "__tri_vnormal") == 0) { + kg->__tri_vnormal.data = (float4*)mem; + kg->__tri_vnormal.width = width; + } + else if(strcmp(name, "__tri_vindex") == 0) { + kg->__tri_vindex.data = (float4*)mem; + kg->__tri_vindex.width = width; + } + else if(strcmp(name, "__tri_verts") == 0) { + kg->__tri_verts.data = (float4*)mem; + kg->__tri_verts.width = width; + } + else if(strcmp(name, "__light_distribution") == 0) { + kg->__light_distribution.data = (float4*)mem; + kg->__light_distribution.width = width; + } + else if(strcmp(name, "__light_point") == 0) { + kg->__light_point.data = (float4*)mem; + kg->__light_point.width = width; + } + else if(strcmp(name, "__svm_nodes") == 0) { + kg->__svm_nodes.data = (uint4*)mem; + kg->__svm_nodes.width = width; + } + else if(strcmp(name, "__filter_table") == 0) { + kg->__filter_table.data = (float*)mem; + kg->__filter_table.width = width; + } + else if(strcmp(name, "__response_curve_R") == 0) { + kg->__response_curve_R.data = (float*)mem; + kg->__response_curve_R.width = width; + } + else if(strcmp(name, "__response_curve_B") == 0) { + kg->__response_curve_B.data = (float*)mem; + kg->__response_curve_B.width = width; + } + else if(strcmp(name, "__response_curve_G") == 0) { + kg->__response_curve_G.data = (float*)mem; + kg->__response_curve_G.width = width; + } + else if(strcmp(name, "__sobol_directions") == 0) { + kg->__sobol_directions.data = (uint*)mem; + kg->__sobol_directions.width = width; + } + else if(strcmp(name, "__attributes_map") == 0) { + kg->__attributes_map.data = (uint4*)mem; + kg->__attributes_map.width = width; + } + else if(strcmp(name, "__attributes_float") == 0) { + kg->__attributes_float.data = (float*)mem; + kg->__attributes_float.width = width; + } + else if(strcmp(name, "__attributes_float3") == 0) { + kg->__attributes_float3.data = (float4*)mem; + kg->__attributes_float3.width = width; + } + else if(strstr(name, "__tex_image")) { + texture_image_uchar4 *tex = NULL; + int id = atoi(name + strlen("__tex_image_")); + + 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; + case 95: tex = &kg->__tex_image_095; break; + case 96: tex = &kg->__tex_image_096; break; + case 97: tex = &kg->__tex_image_097; break; + case 98: tex = &kg->__tex_image_098; break; + case 99: tex = &kg->__tex_image_099; break; + default: break; + } + + if(tex) { + tex->data = (uchar4*)mem; + tex->width = width; + tex->height = height; + } + } + else + assert(0); +} + +/* Path Tracing */ + +void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int pass, int x, int y) +{ + kernel_path_trace(kg, buffer, rng_state, pass, x, y); +} + +/* Tonemapping */ + +void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int pass, int resolution, int x, int y) +{ + kernel_film_tonemap(kg, rgba, buffer, pass, resolution, x, y); +} + +/* Displacement */ + +void kernel_cpu_displace(KernelGlobals *kg, uint4 *input, float3 *offset, int i) +{ + kernel_displace(kg, input, offset, i); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel.cu b/intern/cycles/kernel/kernel.cu new file mode 100644 index 00000000000..5e5b445ac2c --- /dev/null +++ b/intern/cycles/kernel/kernel.cu @@ -0,0 +1,53 @@ +/* + * 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. + */ + +/* CUDA kernel entry points */ + +#include "kernel_compat_cuda.h" +#include "kernel_math.h" +#include "kernel_types.h" +#include "kernel_globals.h" +#include "kernel_film.h" +#include "kernel_path.h" +#include "kernel_displace.h" + +extern "C" __global__ void kernel_cuda_path_trace(float4 *buffer, uint *rng_state, int pass, int sx, int sy, int sw, int sh) +{ + int x = sx + blockDim.x*blockIdx.x + threadIdx.x; + int y = sy + blockDim.y*blockIdx.y + threadIdx.y; + + if(x < sx + sw && y < sy + sh) + kernel_path_trace(NULL, buffer, rng_state, pass, x, y); +} + +extern "C" __global__ void kernel_cuda_tonemap(uchar4 *rgba, float4 *buffer, int pass, int resolution, int sx, int sy, int sw, int sh) +{ + int x = sx + blockDim.x*blockIdx.x + threadIdx.x; + int y = sy + blockDim.y*blockIdx.y + threadIdx.y; + + if(x < sx + sw && y < sy + sh) + kernel_film_tonemap(NULL, rgba, buffer, pass, resolution, x, y); +} + +extern "C" __global__ void kernel_cuda_displace(uint4 *input, float3 *offset, int sx) +{ + int x = sx + blockDim.x*blockIdx.x + threadIdx.x; + + kernel_displace(NULL, input, offset, x); +} + diff --git a/intern/cycles/kernel/kernel.h b/intern/cycles/kernel/kernel.h new file mode 100644 index 00000000000..2bab585c6e6 --- /dev/null +++ b/intern/cycles/kernel/kernel.h @@ -0,0 +1,47 @@ +/* + * 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_H__ +#define __KERNEL_H__ + +/* CPU Kernel Interfae */ + +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +struct KernelGlobals; + +KernelGlobals *kernel_globals_create(); +void kernel_globals_free(KernelGlobals *kg); + +void *kernel_osl_memory(KernelGlobals *kg); +bool kernel_osl_use(KernelGlobals *kg); + +void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t size); +void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height); + +void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int pass, int x, int y); +void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int pass, int resolution, int x, int y); + +void kernel_cpu_displace(KernelGlobals *kg, uint4 *input, float3 *offset, int i); + +CCL_NAMESPACE_END + +#endif /* __KERNEL_H__ */ + diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h new file mode 100644 index 00000000000..4dea540e31c --- /dev/null +++ b/intern/cycles/kernel/kernel_bvh.h @@ -0,0 +1,361 @@ +/* + * Adapted from code Copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +CCL_NAMESPACE_BEGIN + +/* + * "Persistent while-while kernel" used in: + * + * "Understanding the Efficiency of Ray Traversal on GPUs", + * Timo Aila and Samuli Laine, + * Proc. High-Performance Graphics 2009 + */ + +/* bottom-most stack entry, indicating the end of traversal */ + +#define ENTRYPOINT_SENTINEL 0x76543210 +/* 64 object BVH + 64 mesh BVH + 64 object node splitting */ +#define BVH_STACK_SIZE 192 +#define BVH_NODE_SIZE 4 +#define TRI_NODE_SIZE 3 + +__device_inline float3 bvh_inverse_direction(float3 dir) +{ + /* avoid divide by zero (ooeps = exp2f(-80.0f)) */ + float ooeps = 0.00000000000000000000000082718061255302767487140869206996285356581211090087890625f; + float3 idir; + + idir.x = 1.0f/((fabsf(dir.x) > ooeps)? dir.x: copysignf(ooeps, dir.x)); + idir.y = 1.0f/((fabsf(dir.y) > ooeps)? dir.y: copysignf(ooeps, dir.y)); + idir.z = 1.0f/((fabsf(dir.z) > ooeps)? dir.z: copysignf(ooeps, dir.z)); + + return idir; +} + +__device_inline void bvh_instance_push(KernelGlobals *kg, int object, const Ray *ray, float3 *P, float3 *idir, float *t, const float tmax) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM); + + *P = transform(&tfm, ray->P); + + float3 dir = transform_direction(&tfm, ray->D); + + float len; + dir = normalize_len(dir, &len); + + *idir = bvh_inverse_direction(dir); + + if(*t != FLT_MAX) + *t *= len; +} + +__device_inline void bvh_instance_pop(KernelGlobals *kg, int object, const Ray *ray, float3 *P, float3 *idir, float *t, const float tmax) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + + if(*t != FLT_MAX) + *t *= len(transform_direction(&tfm, 1.0f/(*idir))); + + *P = ray->P; + *idir = bvh_inverse_direction(ray->D); +} + +/* intersect two bounding boxes */ +__device_inline void bvh_node_intersect(KernelGlobals *kg, + bool *traverseChild0, bool *traverseChild1, + bool *closestChild1, int *nodeAddr0, int *nodeAddr1, + float3 P, float3 idir, float t, int nodeAddr) +{ + /* fetch node data */ + float4 n0xy = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_NODE_SIZE+0); + float4 n1xy = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_NODE_SIZE+1); + float4 nz = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_NODE_SIZE+2); + float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_NODE_SIZE+3); + + /* intersect ray against child nodes */ + float3 ood = P * idir; + float c0lox = n0xy.x * idir.x - ood.x; + float c0hix = n0xy.y * idir.x - ood.x; + float c0loy = n0xy.z * idir.y - ood.y; + float c0hiy = n0xy.w * idir.y - ood.y; + float c0loz = nz.x * idir.z - ood.z; + float c0hiz = nz.y * idir.z - ood.z; + float c1loz = nz.z * idir.z - ood.z; + float c1hiz = nz.w * idir.z - ood.z; + + float c0min_x = min(c0lox, c0hix); + float c0min_y = min(c0loy, c0hiy); + float c0min_z = min(c0loz, c0hiz); + + float c0min = max4(c0min_x, c0min_y, c0min_z, 0.0f); + float c0max = min4(max(c0lox, c0hix), max(c0loy, c0hiy), max(c0loz, c0hiz), t); + float c1lox = n1xy.x * idir.x - ood.x; + float c1hix = n1xy.y * idir.x - ood.x; + float c1loy = n1xy.z * idir.y - ood.y; + float c1hiy = n1xy.w * idir.y - ood.y; + float c1min = max4(min(c1lox, c1hix), min(c1loy, c1hiy), min(c1loz, c1hiz), 0.0f); + float c1max = min4(max(c1lox, c1hix), max(c1loy, c1hiy), max(c1loz, c1hiz), t); + + /* decide which nodes to traverse next */ + *traverseChild0 = (c0max >= c0min); + *traverseChild1 = (c1max >= c1min); + + *nodeAddr0 = __float_as_int(cnodes.x); + *nodeAddr1 = __float_as_int(cnodes.y); + + *closestChild1 = (c1min < c0min); +} + +/* Sven Woop's algorithm */ +__device_inline void bvh_triangle_intersect(KernelGlobals *kg, Intersection *isect, float3 P, float3 idir, int object, int triAddr) +{ + /* compute and check intersection t-value */ + float4 v00 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+0); + float4 v11 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+1); + float3 dir = 1.0f/idir; + + float Oz = v00.w - P.x*v00.x - P.y*v00.y - P.z*v00.z; + float invDz = 1.0f/(dir.x*v00.x + dir.y*v00.y + dir.z*v00.z); + float t = Oz * invDz; + + if(t > 0.0f && t < isect->t) { + /* compute and check barycentric u */ + float Ox = v11.w + P.x*v11.x + P.y*v11.y + P.z*v11.z; + float Dx = dir.x*v11.x + dir.y*v11.y + dir.z*v11.z; + float u = Ox + t*Dx; + + if(u >= 0.0f) { + /* compute and check barycentric v */ + float4 v22 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+2); + float Oy = v22.w + P.x*v22.x + P.y*v22.y + P.z*v22.z; + float Dy = dir.x*v22.x + dir.y*v22.y + dir.z*v22.z; + float v = Oy + t*Dy; + + if(v >= 0.0f && u + v <= 1.0f) { + /* record intersection */ + isect->prim = triAddr; + isect->object = object; + isect->u = u; + isect->v = v; + isect->t = t; + } + } + } +} + +__device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const bool isshadowray, Intersection *isect) +{ + /* traversal stack in CUDA thread-local memory */ + int traversalStack[BVH_STACK_SIZE]; + traversalStack[0] = ENTRYPOINT_SENTINEL; + + /* traversal variables in registers */ + int stackPtr = 0; + int nodeAddr = kernel_data.bvh.root; + + /* ray parameters in registers */ + const float tmax = ray->t; + float3 P = ray->P; + float3 idir = bvh_inverse_direction(ray->D); + int object = ~0; + + isect->t = tmax; + isect->object = ~0; + isect->prim = ~0; + isect->u = 0.0f; + isect->v = 0.0f; + + /* traversal loop */ + do { + do + { + /* traverse internal nodes */ + while(nodeAddr >= 0 && nodeAddr != ENTRYPOINT_SENTINEL) + { + bool traverseChild0, traverseChild1, closestChild1; + int nodeAddrChild1; + + bvh_node_intersect(kg, &traverseChild0, &traverseChild1, + &closestChild1, &nodeAddr, &nodeAddrChild1, + P, idir, isect->t, nodeAddr); + + if(traverseChild0 != traverseChild1) { + /* one child was intersected */ + if(traverseChild1) { + nodeAddr = nodeAddrChild1; + } + } + else { + if(!traverseChild0) { + /* neither child was intersected */ + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } + else { + /* both children were intersected, push the farther one */ + if(closestChild1) { + int tmp = nodeAddr; + nodeAddr = nodeAddrChild1; + nodeAddrChild1 = tmp; + } + + ++stackPtr; + traversalStack[stackPtr] = nodeAddrChild1; + } + } + } + + /* if node is leaf, fetch triangle list */ + if(nodeAddr < 0) { + float4 leaf = kernel_tex_fetch(__bvh_nodes, (-nodeAddr-1)*BVH_NODE_SIZE+(BVH_NODE_SIZE-1)); + int primAddr = __float_as_int(leaf.x); + +#ifdef __INSTANCING__ + if(primAddr >= 0) { +#endif + int primAddr2 = __float_as_int(leaf.y); + + /* pop */ + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + + /* triangle intersection */ + while(primAddr < primAddr2) { + /* intersect ray against triangle */ + bvh_triangle_intersect(kg, isect, P, idir, object, primAddr); + + /* shadow ray early termination */ + if(isshadowray && isect->prim != ~0) + return true; + + primAddr++; + } +#ifdef __INSTANCING__ + } + else { + /* instance push */ + object = kernel_tex_fetch(__prim_object, -primAddr-1); + + bvh_instance_push(kg, object, ray, &P, &idir, &isect->t, tmax); + + ++stackPtr; + traversalStack[stackPtr] = ENTRYPOINT_SENTINEL; + + nodeAddr = kernel_tex_fetch(__object_node, object); + } +#endif + } + } while(nodeAddr != ENTRYPOINT_SENTINEL); + +#ifdef __INSTANCING__ + if(stackPtr >= 0) { + kernel_assert(object != ~0); + + /* instance pop */ + bvh_instance_pop(kg, object, ray, &P, &idir, &isect->t, tmax); + object = ~0; + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } +#endif + } while(nodeAddr != ENTRYPOINT_SENTINEL); + + return (isect->prim != ~0); +} + +__device_inline float3 ray_offset(float3 P, float3 Ng) +{ +#ifdef __INTERSECTION_REFINE__ + const float epsilon_f = 1e-5f; + const int epsilon_i = 32; + + float3 res; + + /* x component */ + if(fabsf(P.x) < epsilon_f) { + res.x = P.x + Ng.x*epsilon_f; + } + else { + uint ix = __float_as_uint(P.x); + ix += ((ix ^ __float_as_uint(Ng.x)) >> 31)? -epsilon_i: epsilon_i; + res.x = __uint_as_float(ix); + } + + /* y component */ + if(fabsf(P.y) < epsilon_f) { + res.y = P.y + Ng.y*epsilon_f; + } + else { + uint iy = __float_as_uint(P.y); + iy += ((iy ^ __float_as_uint(Ng.y)) >> 31)? -epsilon_i: epsilon_i; + res.y = __uint_as_float(iy); + } + + /* z component */ + if(fabsf(P.z) < epsilon_f) { + res.z = P.z + Ng.z*epsilon_f; + } + else { + uint iz = __float_as_uint(P.z); + iz += ((iz ^ __float_as_uint(Ng.z)) >> 31)? -epsilon_i: epsilon_i; + res.z = __uint_as_float(iz); + } + + return res; +#else + const float epsilon_f = 1e-4f; + return P + epsilon_f*Ng; +#endif +} + +__device_inline float3 bvh_triangle_refine(KernelGlobals *kg, const Intersection *isect, const Ray *ray) +{ + float3 P = ray->P; + float3 D = ray->D; + float t = isect->t; + +#ifdef __INTERSECTION_REFINE__ + if(isect->object != ~0) { + Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_INVERSE_TRANSFORM); + + P = transform(&tfm, P); + D = transform_direction(&tfm, D*t); + D = normalize_len(D, &t); + } + + P = P + D*t; + + float4 v00 = kernel_tex_fetch(__tri_woop, isect->prim*TRI_NODE_SIZE+0); + float Oz = v00.w - P.x*v00.x - P.y*v00.y - P.z*v00.z; + float invDz = 1.0f/(D.x*v00.x + D.y*v00.y + D.z*v00.z); + float rt = Oz * invDz; + + P = P + D*rt; + + if(isect->object != ~0) { + Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_TRANSFORM); + P = transform(&tfm, P); + } + + return P; +#else + return P + D*t; +#endif +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/kernel_camera.h new file mode 100644 index 00000000000..1f93394e078 --- /dev/null +++ b/intern/cycles/kernel/kernel_camera.h @@ -0,0 +1,132 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Perspective Camera */ + +__device void camera_sample_perspective(KernelGlobals *kg, float raster_x, float raster_y, float lens_u, float lens_v, Ray *ray) +{ + /* create ray form raster position */ + Transform rastertocamera = kernel_data.cam.rastertocamera; + float3 Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y, 0.0f)); + + ray->P = make_float3(0.0f, 0.0f, 0.0f); + ray->D = Pcamera; + + /* modify ray for depth of field */ + float lensradius = kernel_data.cam.lensradius; + + if(lensradius > 0.0f) { + /* sample point on lens */ + float2 lensuv; + + lensuv = concentric_sample_disk(lens_u, lens_v); + lensuv *= lensradius; + + /* compute point on plane of focus */ + float ft = kernel_data.cam.focaldistance/ray->D.z; + float3 Pfocus = ray->P + ray->D*ft; + + /* update ray for effect of lens */ + ray->P = make_float3(lensuv.x, lensuv.y, 0.0f); + ray->D = normalize(Pfocus - ray->P); + } + + /* transform ray from camera to world */ + Transform cameratoworld = kernel_data.cam.cameratoworld; + + ray->P = transform(&cameratoworld, ray->P); + ray->D = transform_direction(&cameratoworld, ray->D); + ray->D = normalize(ray->D); + +#ifdef __RAY_DIFFERENTIALS__ + /* ray differential */ + float3 Ddiff = transform_direction(&cameratoworld, Pcamera); + + ray->dP.dx = make_float3(0.0f, 0.0f, 0.0f); + ray->dP.dy = make_float3(0.0f, 0.0f, 0.0f); + + ray->dD.dx = normalize(Ddiff + kernel_data.cam.dx) - normalize(Ddiff); + ray->dD.dy = normalize(Ddiff + kernel_data.cam.dy) - normalize(Ddiff); +#endif + +#ifdef __CAMERA_CLIPPING__ + /* clipping */ + ray->P += kernel_data.cam.nearclip*ray->D; + ray->t = kernel_data.cam.cliplength; +#else + ray->t = FLT_MAX; +#endif +} + +/* Orthographic Camera */ + +__device void camera_sample_orthographic(KernelGlobals *kg, float raster_x, float raster_y, Ray *ray) +{ + /* create ray form raster position */ + Transform rastertocamera = kernel_data.cam.rastertocamera; + float3 Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y, 0.0f)); + + ray->P = Pcamera; + ray->D = make_float3(0.0f, 0.0f, 1.0f); + + /* transform ray from camera to world */ + Transform cameratoworld = kernel_data.cam.cameratoworld; + + ray->P = transform(&cameratoworld, ray->P); + ray->D = transform_direction(&cameratoworld, ray->D); + ray->D = normalize(ray->D); + +#ifdef __RAY_DIFFERENTIALS__ + /* ray differential */ + ray->dP.dx = kernel_data.cam.dx; + ray->dP.dy = kernel_data.cam.dy; + + ray->dD.dx = make_float3(0.0f, 0.0f, 0.0f); + ray->dD.dy = make_float3(0.0f, 0.0f, 0.0f); +#endif + +#ifdef __CAMERA_CLIPPING__ + /* clipping */ + ray->t = kernel_data.cam.cliplength; +#else + ray->t = FLT_MAX; +#endif +} + +/* Common */ + +__device void camera_sample(KernelGlobals *kg, int x, int y, float filter_u, float filter_v, float lens_u, float lens_v, Ray *ray) +{ + /* pixel filter */ + float raster_x = x + kernel_tex_interp(__filter_table, filter_u); + float raster_y = y + kernel_tex_interp(__filter_table, filter_v); + + /* motion blur */ + //ray->time = lerp(time_t, kernel_data.cam.shutter_open, kernel_data.cam.shutter_close); + + /* sample */ + if(kernel_data.cam.ortho) + camera_sample_orthographic(kg, raster_x, raster_y, ray); + else + camera_sample_perspective(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 new file mode 100644 index 00000000000..cee0710492f --- /dev/null +++ b/intern/cycles/kernel/kernel_compat_cpu.h @@ -0,0 +1,162 @@ +/* + * 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_COMPAT_CPU_H__ +#define __KERNEL_COMPAT_CPU_H__ + +#define __KERNEL_CPU__ + +#include "util_debug.h" +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* Assertions inside the kernel only work for the CPU device, so we wrap it in + a macro which is empty for other devices */ + +#define kernel_assert(cond) assert(cond) + +/* Texture types to be compatible with CUDA textures. These are really just + simple arrays and after inlining fetch hopefully revert to being a simple + pointer lookup. */ + +template struct texture { + T fetch(int index) + { + kernel_assert(index >= 0 && index < width); + return data[index]; + } + + __m128 fetch_m128(int index) + { + kernel_assert(index >= 0 && index < width); + return ((__m128*)data)[index]; + } + + __m128i fetch_m128i(int index) + { + kernel_assert(index >= 0 && index < width); + return ((__m128i*)data)[index]; + } + + float interp(float x) + { + x = clamp(x, 0.0f, 1.0f)*width; + + int index = min((int)x, width-1); + int nindex = min(index+1, width-1); + float t = x - index; + + return (1.0f - t)*data[index] + t*data[nindex]; + } + + T *data; + int width; +}; + +template struct texture_image { + float4 read(float4 r) + { + return r; + } + + float4 read(uchar4 r) + { + float f = 1.0f/255.0f; + return make_float4(r.x*f, r.y*f, r.z*f, r.w*f); + } + + int wrap_periodic(int x, int width) + { + x %= width; + if(x < 0) + x += width; + return x; + } + + int wrap_clamp(int x, int width) + { + return clamp(x, 0, width-1); + } + + float frac(float x, int *ix) + { + int i = (int)x - ((x < 0.0f)? 1: 0); + *ix = i; + return x - (float)i; + } + + float4 interp(float x, float y, bool periodic = true) + { + if(!data) + return make_float4(0.0f, 0.0f, 0.0f, 0.0f); + + int ix, iy, nix, niy; + float tx = frac(x*width, &ix); + float ty = frac(y*height, &iy); + + if(periodic) { + ix = wrap_periodic(ix, width); + iy = wrap_periodic(iy, height); + + nix = wrap_periodic(ix+1, width); + niy = wrap_periodic(iy+1, height); + } + else { + ix = wrap_clamp(ix, width); + iy = wrap_clamp(iy, height); + + nix = wrap_clamp(ix+1, width); + niy = wrap_clamp(iy+1, height); + } + + float4 r = (1.0f - ty)*(1.0f - tx)*read(data[ix + iy*width]); + r += (1.0f - ty)*tx*read(data[nix + iy*width]); + r += ty*(1.0f - tx)*read(data[ix + niy*width]); + r += ty*tx*read(data[nix + niy*width]); + + return r; + } + + T *data; + int width, height; +}; + +typedef texture texture_float4; +typedef texture texture_float; +typedef texture texture_uint; +typedef texture texture_int; +typedef texture texture_uint4; +typedef texture_image texture_image_float4; +typedef texture_image texture_image_uchar4; + +/* Macros to handle different memory storage on different devices */ + +#define kernel_tex_fetch(tex, index) (kg->tex.fetch(index)) +#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) (kg->tex.interp(t)) +#define kernel_tex_image_interp(tex, x, y) (kg->tex.interp(x, y)) + +#define kernel_data (kg->__data) + +CCL_NAMESPACE_END + +#endif /* __KERNEL_COMPAT_CPU_H__ */ + diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h new file mode 100644 index 00000000000..99c1df1fb1a --- /dev/null +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -0,0 +1,65 @@ +/* + * 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_COMPAT_CUDA_H__ +#define __KERNEL_COMPAT_CUDA_H__ + +#define __KERNEL_GPU__ +#define __KERNEL_CUDA__ + +#include +#include + +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* Qualifier wrappers for different names on different devices */ + +#define __device __device__ __inline__ +#define __device_inline __device__ __inline__ +#define __global +#define __shared __shared__ +#define __constant __constant__ + +/* No assert supported for CUDA */ + +#define kernel_assert(cond) + +/* Textures */ + +typedef texture texture_float4; +typedef texture texture_float; +typedef texture texture_uint; +typedef texture texture_int; +typedef texture texture_uint4; +typedef texture texture_image_float4; +typedef texture texture_image_uchar4; + +/* Macros to handle different memory storage on different devices */ + +#define kernel_tex_fetch(t, index) tex1Dfetch(t, index) +#define kernel_tex_interp(t, x) tex1D(t, x) +#define kernel_tex_image_interp(t, x, y) tex2D(t, x, y) + +#define kernel_data __data + +CCL_NAMESPACE_END + +#endif /* __KERNEL_COMPAT_CUDA_H__ */ + diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h new file mode 100644 index 00000000000..16ddca5305b --- /dev/null +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -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. + */ + +#ifndef __KERNEL_COMPAT_OPENCL_H__ +#define __KERNEL_COMPAT_OPENCL_H__ + +#define __KERNEL_GPU__ +#define __KERNEL_OPENCL__ + +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +#define __device +#define __device_inline + +__device float kernel_tex_interp_(__global float *data, int width, float x) +{ + x = clamp(x, 0.0f, 1.0f)*width; + + int index = min((int)x, width-1); + int nindex = min(index+1, width-1); + float t = x - index; + + return (1.0f - t)*data[index] + t*data[nindex]; +} + +#define kernel_data (*kg->data) +#define kernel_tex_interp(t, x) \ + kernel_tex_interp_(kg->t, kg->t##_width, x); + +CCL_NAMESPACE_END + +#endif /* __KERNEL_COMPAT_OPENCL_H__ */ + diff --git a/intern/cycles/kernel/kernel_differential.h b/intern/cycles/kernel/kernel_differential.h new file mode 100644 index 00000000000..4e2b1ea7d13 --- /dev/null +++ b/intern/cycles/kernel/kernel_differential.h @@ -0,0 +1,90 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* See "Tracing Ray Differentials", Homan Igehy, 1999. */ + +__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 + * compute dPdx/dy at a shading point from the incoming ray */ + + float3 tmp = D/dot(D, Ng); + float3 tmpx = dP.dx + t*dD.dx; + float3 tmpy = dP.dy + t*dD.dy; + + dP_->dx = tmpx - dot(tmpx, Ng)*tmp; + dP_->dy = tmpy - dot(tmpy, Ng)*tmp; +} + +__device void differential_incoming(differential3 *dI, const differential3 dD) +{ + /* compute dIdx/dy at a shading point, we just need to negate the + * differential of the ray direction */ + + dI->dx = -dD.dx; + dI->dy = -dD.dy; +} + +__device void differential_dudv(differential *du, differential *dv, float3 dPdu, float3 dPdv, differential3 dP, float3 Ng) +{ + /* now we have dPdx/dy from the ray differential transfer, and dPdu/dv + * from the primitive, we can compute dudx/dy and dvdx/dy. these are + * mainly used for differentials of arbitrary mesh attributes. */ + + /* find most stable axis to project to 2D */ + float xn= fabsf(Ng.x); + float yn= fabsf(Ng.y); + float zn= fabsf(Ng.z); + + if(zn < xn || zn < yn) { + if(yn < xn || yn < zn) { + dPdu.x = dPdu.y; + dPdv.x = dPdv.y; + dP.dx.x = dP.dx.y; + dP.dy.x = dP.dy.y; + } + + dPdu.y = dPdu.z; + dPdv.y = dPdv.z; + dP.dx.y = dP.dx.z; + dP.dy.y = dP.dy.z; + } + + /* using Cramer's rule, we solve for dudx and dvdx in a 2x2 linear system, + * and the same for dudy and dvdy. the denominator is the same for both + * solutions, so we compute it only once. + * + * dP.dx = dPdu * dudx + dPdv * dvdx; + * dP.dy = dPdu * dudy + dPdv * dvdy; */ + + float det = (dPdu.x*dPdv.y - dPdv.x*dPdu.y); + + if(det != 0.0f) + det = 1.0f/det; + + du->dx = (dP.dx.x*dPdv.y - dP.dx.y*dPdv.x)*det; + dv->dx = (dP.dx.y*dPdu.x - dP.dx.x*dPdu.y)*det; + + du->dy = (dP.dy.x*dPdv.y - dP.dy.y*dPdv.x)*det; + dv->dy = (dP.dy.y*dPdu.x - dP.dy.x*dPdu.y)*det; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_displace.h b/intern/cycles/kernel/kernel_displace.h new file mode 100644 index 00000000000..ef6c3810a75 --- /dev/null +++ b/intern/cycles/kernel/kernel_displace.h @@ -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. + */ + +CCL_NAMESPACE_BEGIN + +__device void kernel_displace(KernelGlobals *kg, uint4 *input, float3 *offset, int i) +{ + /* setup shader data */ + ShaderData sd; + uint4 in = input[i]; + shader_setup_from_displace(kg, &sd, in.x, in.y, __int_as_float(in.z), __int_as_float(in.w)); + + /* evaluate */ + float3 P = sd.P; + shader_eval_displacement(kg, &sd); + offset[i] = sd.P - P; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h new file mode 100644 index 00000000000..6b6033e9ebd --- /dev/null +++ b/intern/cycles/kernel/kernel_emission.h @@ -0,0 +1,118 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Direction Emission */ + +__device float3 direct_emissive_eval(KernelGlobals *kg, float rando, + LightSample *ls, float u, float v, float3 I) +{ + /* setup shading at emitter */ + ShaderData sd; + + shader_setup_from_sample(kg, &sd, ls->P, ls->Ng, I, ls->shader, ls->object, ls->prim, u, v); + ls->Ng = sd.Ng; + + /* no path flag, we're evaluating this for all closures. that's weak but + we'd have to do multiple evaluations otherwise */ + shader_eval_surface(kg, &sd, rando, 0); + + float3 eval; + + /* evaluate emissive closure */ + if(sd.flag & SD_EMISSION) + eval = shader_emissive_eval(kg, &sd); + else + eval = make_float3(0.0f, 0.0f, 0.0f); + + shader_release(kg, &sd); + + return eval; +} + +__device bool direct_emission(KernelGlobals *kg, ShaderData *sd, float randt, float rando, + float randu, float randv, Ray *ray, float3 *eval) +{ + /* sample a position on a light */ + LightSample ls; + + light_sample(kg, randt, randu, randv, sd->P, &ls); + + /* compute incoming direction and distance */ + float t; + float3 omega_in = normalize_len(ls.P - sd->P, &t); + + /* compute pdf */ + float pdf = light_pdf(kg, &ls, -omega_in, t); + + /* evaluate closure */ + *eval = direct_emissive_eval(kg, rando, &ls, randu, randv, -omega_in); + + if(is_zero(*eval) || pdf == 0.0f) + return false; + + /* evaluate BSDF at shading point */ + float bsdf_pdf; + float3 bsdf_eval = shader_bsdf_eval(kg, sd, omega_in, &bsdf_pdf); + + *eval *= bsdf_eval/pdf; + + if(is_zero(*eval)) + return false; + + if(ls.prim != ~0) { + /* multiple importance sampling */ + float mis_weight = power_heuristic(pdf, bsdf_pdf); + *eval *= mis_weight; + } + else { + /* ensure point light works in Watts, this should be handled + * elsewhere but for now together with the diffuse emission + * closure it works out to the right value */ + *eval *= 0.25f; + } + + /* setup ray */ + ray->P = ray_offset(sd->P, sd->Ng); + ray->D = ray_offset(ls.P, ls.Ng) - ray->P; + ray->D = normalize_len(ray->D, &ray->t); + + return true; +} + +/* Indirect Emission */ + +__device float3 indirect_emission(KernelGlobals *kg, ShaderData *sd, float t, int path_flag, float bsdf_pdf) +{ + /* evaluate emissive closure */ + float3 L = shader_emissive_eval(kg, sd); + + if(!(path_flag & PATH_RAY_SINGULAR)) { + /* multiple importance sampling */ + float pdf = triangle_light_pdf(kg, sd->Ng, sd->I, t); + float mis_weight = power_heuristic(bsdf_pdf, pdf); + + return L*mis_weight; + } + + return L; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/kernel_film.h new file mode 100644 index 00000000000..04ea889f4c0 --- /dev/null +++ b/intern/cycles/kernel/kernel_film.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. + */ + +CCL_NAMESPACE_BEGIN + +__device float4 film_map(KernelGlobals *kg, float4 irradiance, int pass) +{ + float scale = kernel_data.film.exposure*(1.0f/(pass+1)); + float4 result = irradiance*scale; + + if(kernel_data.film.use_response_curve) { + /* camera response curve */ + result.x = kernel_tex_interp(__response_curve_R, result.x); + result.y = kernel_tex_interp(__response_curve_G, result.y); + result.z = kernel_tex_interp(__response_curve_B, result.z); + } + else { + /* conversion to srgb */ + result.x = color_scene_linear_to_srgb(result.x); + result.y = color_scene_linear_to_srgb(result.y); + result.z = color_scene_linear_to_srgb(result.z); + } + + return result; +} + +__device uchar4 film_float_to_byte(float4 color) +{ + uchar4 result; + + /* simple float to byte conversion */ + result.x = clamp(color.x*255.0f, 0.0f, 255.0f); + result.y = clamp(color.y*255.0f, 0.0f, 255.0f); + result.z = clamp(color.z*255.0f, 0.0f, 255.0f); + result.w = 255; + + return result; +} + +__device void kernel_film_tonemap(KernelGlobals *kg, __global uchar4 *rgba, __global float4 *buffer, int pass, int resolution, int x, int y) +{ + int w = kernel_data.cam.width; + int index = x + y*w; + float4 irradiance = buffer[index]; + + float4 float_result = film_map(kg, irradiance, pass); + uchar4 byte_result = film_float_to_byte(float_result); + + rgba[index] = byte_result; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h new file mode 100644 index 00000000000..4c4f35bb508 --- /dev/null +++ b/intern/cycles/kernel/kernel_globals.h @@ -0,0 +1,208 @@ +/* + * 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. + */ + +/* Constant Globals */ + +#ifdef __KERNEL_CPU__ + +#ifdef WITH_OSL +#include "osl_globals.h" +#endif + +CCL_NAMESPACE_BEGIN + +/* On the CPU, we pass along the struct KernelGlobals to nearly everywhere in + the kernel, to access constant data. These are all stored as "textures", but + these are really just standard arrays. We can't use actually globals because + multiple renders may be running inside the same process. */ +typedef struct KernelGlobals { + +#else + +/* On the GPU, constant memory textures must be globals, so we can't put them + into a struct. As a result we don't actually use this struct and use actual + globals and simply pass along a NULL pointer everywhere, which we hope gets + optimized out. */ +#ifdef __KERNEL_CUDA__ +typedef struct KernelGlobals {} KernelGlobals; +#endif + +#endif + +/* globals */ +__constant KernelData __data; + +#ifndef __KERNEL_OPENCL__ + +/* bvh */ +texture_float4 __bvh_nodes; +texture_float4 __tri_woop; +texture_uint __prim_index; +texture_uint __prim_object; +texture_uint __object_node; + +/* objects */ +texture_float4 __objects; + +/* triangles */ +texture_float4 __tri_normal; +texture_float4 __tri_vnormal; +texture_float4 __tri_vindex; +texture_float4 __tri_verts; + +/* attributes */ +texture_uint4 __attributes_map; +texture_float __attributes_float; +texture_float4 __attributes_float3; + +/* lights */ +texture_float4 __light_distribution; +texture_float4 __light_point; + +/* shaders */ +texture_uint4 __svm_nodes; + +/* camera/film */ +texture_float __filter_table; +texture_float __response_curve_R; +texture_float __response_curve_G; +texture_float __response_curve_B; + +/* sobol */ +texture_uint __sobol_directions; + +/* image */ +texture_image_uchar4 __tex_image_000; +texture_image_uchar4 __tex_image_001; +texture_image_uchar4 __tex_image_002; +texture_image_uchar4 __tex_image_003; +texture_image_uchar4 __tex_image_004; +texture_image_uchar4 __tex_image_005; +texture_image_uchar4 __tex_image_006; +texture_image_uchar4 __tex_image_007; +texture_image_uchar4 __tex_image_008; +texture_image_uchar4 __tex_image_009; +texture_image_uchar4 __tex_image_010; +texture_image_uchar4 __tex_image_011; +texture_image_uchar4 __tex_image_012; +texture_image_uchar4 __tex_image_013; +texture_image_uchar4 __tex_image_014; +texture_image_uchar4 __tex_image_015; +texture_image_uchar4 __tex_image_016; +texture_image_uchar4 __tex_image_017; +texture_image_uchar4 __tex_image_018; +texture_image_uchar4 __tex_image_019; +texture_image_uchar4 __tex_image_020; +texture_image_uchar4 __tex_image_021; +texture_image_uchar4 __tex_image_022; +texture_image_uchar4 __tex_image_023; +texture_image_uchar4 __tex_image_024; +texture_image_uchar4 __tex_image_025; +texture_image_uchar4 __tex_image_026; +texture_image_uchar4 __tex_image_027; +texture_image_uchar4 __tex_image_028; +texture_image_uchar4 __tex_image_029; +texture_image_uchar4 __tex_image_030; +texture_image_uchar4 __tex_image_031; +texture_image_uchar4 __tex_image_032; +texture_image_uchar4 __tex_image_033; +texture_image_uchar4 __tex_image_034; +texture_image_uchar4 __tex_image_035; +texture_image_uchar4 __tex_image_036; +texture_image_uchar4 __tex_image_037; +texture_image_uchar4 __tex_image_038; +texture_image_uchar4 __tex_image_039; +texture_image_uchar4 __tex_image_040; +texture_image_uchar4 __tex_image_041; +texture_image_uchar4 __tex_image_042; +texture_image_uchar4 __tex_image_043; +texture_image_uchar4 __tex_image_044; +texture_image_uchar4 __tex_image_045; +texture_image_uchar4 __tex_image_046; +texture_image_uchar4 __tex_image_047; +texture_image_uchar4 __tex_image_048; +texture_image_uchar4 __tex_image_049; +texture_image_uchar4 __tex_image_050; +texture_image_uchar4 __tex_image_051; +texture_image_uchar4 __tex_image_052; +texture_image_uchar4 __tex_image_053; +texture_image_uchar4 __tex_image_054; +texture_image_uchar4 __tex_image_055; +texture_image_uchar4 __tex_image_056; +texture_image_uchar4 __tex_image_057; +texture_image_uchar4 __tex_image_058; +texture_image_uchar4 __tex_image_059; +texture_image_uchar4 __tex_image_060; +texture_image_uchar4 __tex_image_061; +texture_image_uchar4 __tex_image_062; +texture_image_uchar4 __tex_image_063; +texture_image_uchar4 __tex_image_064; +texture_image_uchar4 __tex_image_065; +texture_image_uchar4 __tex_image_066; +texture_image_uchar4 __tex_image_067; +texture_image_uchar4 __tex_image_068; +texture_image_uchar4 __tex_image_069; +texture_image_uchar4 __tex_image_070; +texture_image_uchar4 __tex_image_071; +texture_image_uchar4 __tex_image_072; +texture_image_uchar4 __tex_image_073; +texture_image_uchar4 __tex_image_074; +texture_image_uchar4 __tex_image_075; +texture_image_uchar4 __tex_image_076; +texture_image_uchar4 __tex_image_077; +texture_image_uchar4 __tex_image_078; +texture_image_uchar4 __tex_image_079; +texture_image_uchar4 __tex_image_080; +texture_image_uchar4 __tex_image_081; +texture_image_uchar4 __tex_image_082; +texture_image_uchar4 __tex_image_083; +texture_image_uchar4 __tex_image_084; +texture_image_uchar4 __tex_image_085; +texture_image_uchar4 __tex_image_086; +texture_image_uchar4 __tex_image_087; +texture_image_uchar4 __tex_image_088; +texture_image_uchar4 __tex_image_089; +texture_image_uchar4 __tex_image_090; +texture_image_uchar4 __tex_image_091; +texture_image_uchar4 __tex_image_092; +texture_image_uchar4 __tex_image_093; +texture_image_uchar4 __tex_image_094; +texture_image_uchar4 __tex_image_095; +texture_image_uchar4 __tex_image_096; +texture_image_uchar4 __tex_image_097; +texture_image_uchar4 __tex_image_098; +texture_image_uchar4 __tex_image_099; + +#endif + +#ifdef __KERNEL_CPU__ + +#ifdef WITH_OSL + +/* On the CPU, we also have the OSL globals here. Most data structures are shared + with SVM, the difference is in the shaders and object/mesh attributes. */ + +OSLGlobals osl; + +#endif + +} KernelGlobals; +#endif + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h new file mode 100644 index 00000000000..537f7ea00f0 --- /dev/null +++ b/intern/cycles/kernel/kernel_light.h @@ -0,0 +1,145 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +struct LightSample { + float3 P; + float3 Ng; + int object; + int prim; + int shader; + float weight; +}; + +/* Point Light */ + +__device void point_light_sample(KernelGlobals *kg, int point, + float randu, float randv, float3 P, LightSample *ls) +{ + float4 f = kernel_tex_fetch(__light_point, point); + + ls->P = make_float3(f.x, f.y, f.z); + ls->Ng = normalize(ls->P - P); + ls->shader = __float_as_int(f.w); + ls->object = ~0; + ls->prim = ~0; +} + +__device float point_light_pdf(KernelGlobals *kg, float t) +{ + return t*t*kernel_data.integrator.pdf_lights; +} + +/* Triangle Light */ + +__device void triangle_light_sample(KernelGlobals *kg, int prim, int object, + float randu, float randv, LightSample *ls) +{ + /* triangle, so get position, normal, shader */ + ls->P = triangle_sample_MT(kg, prim, randu, randv); + ls->Ng = triangle_normal_MT(kg, prim, &ls->shader); + ls->object = object; + ls->prim = prim; + +#ifdef __INSTANCING__ + /* instance transform */ + if(ls->object >= 0) { + object_position_transform(kg, ls->object, &ls->P); + object_normal_transform(kg, ls->object, &ls->Ng); + } +#endif +} + +__device float triangle_light_pdf(KernelGlobals *kg, + const float3 Ng, const float3 I, float t) +{ + float cos_pi = fabsf(dot(Ng, I)); + + if(cos_pi == 0.0f) + return 0.0f; + + return (t*t*kernel_data.integrator.pdf_triangles)/cos_pi; +} + +/* Light Distribution */ + +__device int light_distribution_sample(KernelGlobals *kg, float randt) +{ + /* this is basically std::upper_bound as used by pbrt, to find a point light or + triangle to emit from, proportional to area. a good improvement would be to + also sample proportional to power, though it's not so well defined with + OSL shaders. */ + int first = 0; + int len = kernel_data.integrator.num_distribution + 1; + + while(len > 0) { + int half_len = len >> 1; + int middle = first + half_len; + + if(randt < kernel_tex_fetch(__light_distribution, middle).x) { + len = half_len; + } + else { + first = middle + 1; + len = len - half_len - 1; + } + } + + first = max(0, first-1); + kernel_assert(first >= 0 && first < kernel_data.integrator.num_distribution); + + return first; +} + +/* Generic Light */ + +__device void light_sample(KernelGlobals *kg, float randt, float randu, float randv, float3 P, LightSample *ls) +{ + /* sample index */ + int index = light_distribution_sample(kg, randt); + + /* fetch light data */ + float4 l = kernel_tex_fetch(__light_distribution, index); + int prim = __float_as_int(l.y); + ls->weight = l.z; + + if(prim >= 0) { + int object = __float_as_int(l.w); + triangle_light_sample(kg, prim, object, randu, randv, ls); + } + else { + int point = -prim-1; + point_light_sample(kg, point, randu, randv, P, ls); + } +} + +__device float light_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) +{ + float pdf; + + if(ls->prim != ~0) + pdf = triangle_light_pdf(kg, ls->Ng, I, t); + else + pdf = point_light_pdf(kg, t); + + return pdf; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_math.h b/intern/cycles/kernel/kernel_math.h new file mode 100644 index 00000000000..165535077da --- /dev/null +++ b/intern/cycles/kernel/kernel_math.h @@ -0,0 +1,27 @@ +/* + * 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_MATH_H__ +#define __KERNEL_MATH_H__ + +#include "util_color.h" +#include "util_math.h" +#include "util_transform.h" + +#endif /* __KERNEL_MATH_H__ */ + diff --git a/intern/cycles/kernel/kernel_mbvh.h b/intern/cycles/kernel/kernel_mbvh.h new file mode 100644 index 00000000000..3995e782abd --- /dev/null +++ b/intern/cycles/kernel/kernel_mbvh.h @@ -0,0 +1,394 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +#define MBVH_OBJECT_SENTINEL 0x76543210 +#define MBVH_NODE_SIZE 8 +#define MBVH_STACK_SIZE 1024 +#define MBVH_RAY_STACK_SIZE 10000 + +typedef struct MBVHTask { + int node; + int index; + int num; + int object; +} MBVHTask; + +typedef struct MVBHRay { + float3 P; + float u; + float3 idir; + float v; + float t; + int index; + int object; + + float3 origP; + float3 origD; + float tmax; +} MBVHRay; + +__device float3 mbvh_inverse_direction(float3 dir) +{ + // Avoid divide by zero (ooeps = exp2f(-80.0f)) + float ooeps = 0.00000000000000000000000082718061255302767487140869206996285356581211090087890625f; + float3 idir; + + idir.x = 1.0f / (fabsf(dir.x) > ooeps ? dir.x : copysignf(ooeps, dir.x)); + idir.y = 1.0f / (fabsf(dir.y) > ooeps ? dir.y : copysignf(ooeps, dir.y)); + idir.z = 1.0f / (fabsf(dir.z) > ooeps ? dir.z : copysignf(ooeps, dir.z)); + + return idir; +} + +__device void mbvh_instance_push(KernelGlobals *kg, int object, MBVHRay *ray) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM); + + ray->P = transform(&tfm, ray->origP); + + float3 dir = ray->origD; + + if(ray->t != ray->tmax) dir *= ray->t; + + dir = transform_direction(&tfm, dir); + ray->idir = mbvh_inverse_direction(normalize(dir)); + + if(ray->t != ray->tmax) ray->t = len(dir); +} + +__device void mbvh_instance_pop(KernelGlobals *kg, int object, MBVHRay *ray) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + + if(ray->t != ray->tmax) + ray->t = len(transform_direction(&tfm, (1.0f/(ray->idir)) * (ray->t))); + + ray->P = ray->origP; + ray->idir = mbvh_inverse_direction(ray->origD); +} + +/* Sven Woop's algorithm */ +__device void mbvh_triangle_intersect(KernelGlobals *kg, MBVHRay *ray, int object, int triAddr) +{ + float3 P = ray->P; + float3 idir = ray->idir; + + /* compute and check intersection t-value */ + float4 v00 = kernel_tex_fetch(__tri_woop, triAddr*MBVH_NODE_SIZE+0); + float4 v11 = kernel_tex_fetch(__tri_woop, triAddr*MBVH_NODE_SIZE+1); + float3 dir = 1.0f/idir; + + float Oz = v00.w - P.x*v00.x - P.y*v00.y - P.z*v00.z; + float invDz = 1.0f/(dir.x*v00.x + dir.y*v00.y + dir.z*v00.z); + float t = Oz * invDz; + + if(t > 0.0f && t < ray->t) { + /* compute and check barycentric u */ + float Ox = v11.w + P.x*v11.x + P.y*v11.y + P.z*v11.z; + float Dx = dir.x*v11.x + dir.y*v11.y + dir.z*v11.z; + float u = Ox + t*Dx; + + if(u >= 0.0f) { + /* compute and check barycentric v */ + float4 v22 = kernel_tex_fetch(__tri_woop, triAddr*MBVH_NODE_SIZE+2); + float Oy = v22.w + P.x*v22.x + P.y*v22.y + P.z*v22.z; + float Dy = dir.x*v22.x + dir.y*v22.y + dir.z*v22.z; + float v = Oy + t*Dy; + + if(v >= 0.0f && u + v <= 1.0f) { + /* record intersection */ + ray->index = triAddr; + ray->object = object; + ray->u = u; + ray->v = v; + ray->t = t; + } + } + } +} + +__device void mbvh_node_intersect(KernelGlobals *kg, __m128 *traverseChild, + __m128 *tHit, float3 P, float3 idir, float t, int nodeAddr) +{ + /* X axis */ + const __m128 bminx = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+0); + const __m128 t0x = _mm_mul_ps(_mm_sub_ps(bminx, _mm_set_ps1(P.x)), _mm_set_ps1(idir.x)); + const __m128 bmaxx = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+1); + const __m128 t1x = _mm_mul_ps(_mm_sub_ps(bmaxx, _mm_set_ps1(P.x)), _mm_set_ps1(idir.x)); + + __m128 tmin = _mm_max_ps(_mm_min_ps(t0x, t1x), _mm_setzero_ps()); + __m128 tmax = _mm_min_ps(_mm_max_ps(t0x, t1x), _mm_set_ps1(t)); + + /* Y axis */ + const __m128 bminy = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+2); + const __m128 t0y = _mm_mul_ps(_mm_sub_ps(bminy, _mm_set_ps1(P.y)), _mm_set_ps1(idir.y)); + const __m128 bmaxy = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+3); + const __m128 t1y = _mm_mul_ps(_mm_sub_ps(bmaxy, _mm_set_ps1(P.y)), _mm_set_ps1(idir.y)); + + tmin = _mm_max_ps(_mm_min_ps(t0y, t1y), tmin); + tmax = _mm_min_ps(_mm_max_ps(t0y, t1y), tmax); + + /* Z axis */ + const __m128 bminz = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+4); + const __m128 t0z = _mm_mul_ps(_mm_sub_ps(bminz, _mm_set_ps1(P.z)), _mm_set_ps1(idir.z)); + const __m128 bmaxz = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*MBVH_NODE_SIZE+5); + const __m128 t1z = _mm_mul_ps(_mm_sub_ps(bmaxz, _mm_set_ps1(P.z)), _mm_set_ps1(idir.z)); + + tmin = _mm_max_ps(_mm_min_ps(t0z, t1z), tmin); + tmax = _mm_min_ps(_mm_max_ps(t0z, t1z), tmax); + + /* compare and get mask */ + *traverseChild = _mm_cmple_ps(tmin, tmax); + + /* get distance XXX probably wrong */ + *tHit = tmin; +} + +static void mbvh_sort_by_length(int id[4], float len[4]) +{ + for(int i = 1; i < 4; i++) { + int j = i - 1; + + while(j >= 0 && len[j] > len[j+1]) { + swap(len[j], len[j+1]); + swap(id[j], id[j+1]); + j--; + } + } +} + +__device void scene_intersect(KernelGlobals *kg, MBVHRay *rays, int numrays) +{ + /* traversal stacks */ + MBVHTask task_stack[MBVH_STACK_SIZE]; + int active_ray_stacks[4][MBVH_RAY_STACK_SIZE]; + int num_task, num_active[4] = {0, 0, 0, 0}; + __m128i one_mm = _mm_set1_epi32(1); + + /* push root node task on stack */ + task_stack[0].node = kernel_data.bvh.root; + task_stack[0].index = 0; + task_stack[0].num = numrays; + task_stack[0].object = ~0; + num_task = 1; + + /* push all rays in first SIMD lane */ + for(int i = 0; i < numrays; i++) + active_ray_stacks[0][i] = i; + num_active[0] = numrays; + + while(num_task >= 1) { + /* pop task */ + MBVHTask task = task_stack[--num_task]; + + if(task.node == MBVH_OBJECT_SENTINEL) { + /* instance pop */ + + /* pop rays from stack */ + num_active[task.index] -= task.num; + int ray_offset = num_active[task.index]; + + /* transform rays */ + for(int i = 0; i < task.num; i++) { + MBVHRay *ray = &rays[active_ray_stacks[task.index][ray_offset + i]]; + mbvh_instance_pop(kg, task.object, ray); + } + } + else if(task.node >= 0) { + /* inner node? */ + + /* pop rays from stack*/ + num_active[task.index] -= task.num; + int ray_offset = num_active[task.index]; + + /* initialze simd values */ + __m128i num_active_mm = _mm_load_si128((__m128i*)num_active); + __m128 len_mm = _mm_set_ps1(0.0f); + + for(int i = 0; i < task.num; i++) { + int rayid = active_ray_stacks[task.index][ray_offset + i]; + MVBHRay *ray = rays + rayid; + + /* intersect 4 QBVH node children */ + __m128 result; + __m128 thit; + + mbvh_node_intersect(kg, &result, &thit, ray->P, ray->idir, ray->t, task.node); + + /* update length for sorting */ + len_mm = _mm_add_ps(len_mm, _mm_and_ps(thit, result)); + + /* push rays on stack */ + for(int j = 0; j < 4; j++) + active_ray_stacks[j][num_active[j]] = rayid; + + /* update num active */ + __m128i resulti = _mm_and_si128(*((__m128i*)&result), one_mm); + num_active_mm = _mm_add_epi32(resulti, num_active_mm); + _mm_store_si128((__m128i*)num_active, num_active_mm); + } + + if(num_active[0] || num_active[1] || num_active[2] || num_active[3]) { + /* load child node addresses */ + float4 cnodes = kernel_tex_fetch(__bvh_nodes, task.node); + int child[4] = { + __float_as_int(cnodes.x), + __float_as_int(cnodes.y), + __float_as_int(cnodes.z), + __float_as_int(cnodes.w)}; + + /* sort nodes by average intersection distance */ + int ids[4] = {0, 1, 2, 3}; + float len[4]; + + _mm_store_ps(len, len_mm); + mbvh_sort_by_length(ids, len); + + /* push new tasks on stack */ + for(int j = 0; j < 4; j++) { + if(num_active[j]) { + int id = ids[j]; + + task_stack[num_task].node = child[id]; + task_stack[num_task].index = id; + task_stack[num_task].num = num_active[id]; + task_stack[num_task].object = task.object; + num_task++; + } + } + } + } + else { + /* fetch leaf node data */ + float4 leaf = kernel_tex_fetch(__bvh_nodes, (-task.node-1)*MBVH_NODE_SIZE+(MBVH_NODE_SIZE-2)); + int triAddr = __float_as_int(leaf.x); + int triAddr2 = __float_as_int(leaf.y); + + /* pop rays from stack*/ + num_active[task.index] -= task.num; + int ray_offset = num_active[task.index]; + + /* triangles */ + if(triAddr >= 0) { + int i, numq = (task.num >> 2) << 2; + + /* SIMD ray leaf intersection */ + for(i = 0; i < numq; i += 4) { + MBVHRay *ray4[4] = { + &rays[active_ray_stacks[task.index][ray_offset + i + 0]], + &rays[active_ray_stacks[task.index][ray_offset + i + 1]], + &rays[active_ray_stacks[task.index][ray_offset + i + 2]], + &rays[active_ray_stacks[task.index][ray_offset + i + 3]]}; + + /* load SoA */ + + while(triAddr < triAddr2) { + mbvh_triangle_intersect(ray4[0], task.object, task.node); + mbvh_triangle_intersect(ray4[1], task.object, task.node); + mbvh_triangle_intersect(ray4[2], task.object, task.node); + mbvh_triangle_intersect(ray4[3], task.object, task.node); + triAddr++; + + /* some shadow ray optim could be done by setting t=0 */ + } + + /* store AoS */ + } + + /* mono ray leaf intersection */ + for(; i < task.num; i++) { + MBVHRay *ray = &rays[active_ray_stacks[task.index][ray_offset + i]]; + + while(triAddr < triAddr2) { + mbvh_triangle_intersect(kg, ray, task.object, task.node); + triAddr++; + } + } + } + else { + /* instance push */ + int object = -triAddr-1; + int node = triAddr; + + /* push instance pop task */ + task_stack[num_task].node = MBVH_OBJECT_SENTINEL; + task_stack[num_task].index = task.index; + task_stack[num_task].num = task.num; + task_stack[num_task].object = object; + num_task++; + + num_active[task.index] += task.num; + + /* push node task */ + task_stack[num_task].node = node; + task_stack[num_task].index = task.index; + task_stack[num_task].num = task.num; + task_stack[num_task].object = object; + num_task++; + + for(int i = 0; i < task.num; i++) { + int rayid = active_ray_stacks[task.index][ray_offset + i]; + + /* push on stack for last task */ + active_ray_stacks[task.index][num_active[task.index]] = rayid; + num_active[task.index]++; + + /* transform ray */ + MBVHRay *ray = &rays[rayid]; + mbvh_instance_push(kg, object, ray); + } + } + } + } +} + +__device void mbvh_set_ray(MBVHRay *rays, int i, Ray *ray, float tmax) +{ + MBVHRay *mray = &rays[i]; + + /* ray parameters in registers */ + mray->P = ray->P; + mray->idir = mbvh_inverse_direction(ray->D); + mray->t = tmax; +} + +__device bool mbvh_get_intersection(MVBHRay *rays, int i, Intersection *isect, float tmax) +{ + MBVHRay *mray = &rays[i]; + + if(mray->t == tmax) + return false; + + isect->t = mray->t; + isect->u = mray->u; + isect->v = mray->v; + isect->index = mray->index; + isect->object = mray->object; + + return true; +} + +__device bool mbvh_get_shadow(MBVHRay *rays, int i, float tmax) +{ + return (rays[i].t == tmax); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_montecarlo.h b/intern/cycles/kernel/kernel_montecarlo.h new file mode 100644 index 00000000000..6f3a3dd3421 --- /dev/null +++ b/intern/cycles/kernel/kernel_montecarlo.h @@ -0,0 +1,196 @@ +/* + * Parts adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __KERNEL_MONTECARLO_CL__ +#define __KERNEL_MONTECARLO_CL__ + +CCL_NAMESPACE_BEGIN + +/// Given values x and y on [0,1], convert them in place to values on +/// [-1,1] uniformly distributed over a unit sphere. This code is +/// derived from Peter Shirley, "Realistic Ray Tracing", p. 103. +__device void to_unit_disk(float *x, float *y) +{ + float r, phi; + float a = 2.0f * (*x) - 1.0f; + float b = 2.0f * (*y) - 1.0f; + 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 { + if(a < b) { + r = -a; + phi = M_PI_4_F *(4.0f + b/a); + } else { + r = -b; + if(b != 0.0f) + phi = M_PI_4_F *(6.0f - a/b); + else + phi = 0.0f; + } + } + *x = r * cosf(phi); + *y = r * sinf(phi); +} + +__device_inline void make_orthonormals(const float3 N, float3 *a, float3 *b) +{ + if(N.x != N.y || N.x != N.z) + *a = make_float3(N.z-N.y, N.x-N.z, N.y-N.x); //(1,1,1)x N + else + *a = make_float3(N.z-N.y, N.x+N.z, -N.y-N.x); //(-1,1,1)x N + + *a = normalize(*a); + *b = cross(N, *a); +} + +__device void make_orthonormals_tangent(const float3 N, const float3 T, float3 *a, float3 *b) +{ + *b = cross(N, T); + *a = cross(*b, N); +} + +__device_inline void sample_cos_hemisphere(const float3 N, + float randu, float randv, float3 *omega_in, float *pdf) +{ + // Default closure BSDF implementation: uniformly sample + // cosine-weighted hemisphere above the point. + to_unit_disk(&randu, &randv); + float costheta = sqrtf(max(1.0f - randu * randu - randv * randv, 0.0f)); + float3 T, B; + make_orthonormals(N, &T, &B); + *omega_in = randu * T + randv * B + costheta * N; + *pdf = costheta *M_1_PI_F; +} + +__device_inline void sample_uniform_hemisphere(const float3 N, + float randu, float randv, + float3 *omega_in, float *pdf) +{ + float z = randu; + float r = sqrtf(max(0.f, 1.f - z*z)); + float phi = 2.f * M_PI_F * randv; + float x = r * cosf(phi); + float y = r * sinf(phi); + + float3 T, B; + make_orthonormals (N, &T, &B); + *omega_in = x * T + y * B + z * N; + *pdf = 0.5f * M_1_PI_F; +} + +__device float3 sample_uniform_sphere(float u1, float u2) +{ + float z = 1.0f - 2.0f*u1; + float r = sqrtf(fmaxf(0.0f, 1.0f - z*z)); + float phi = 2.0f*M_PI_F*u2; + float x = r*cosf(phi); + float y = r*sinf(phi); + + return make_float3(x, y, z); +} + +__device float power_heuristic(float a, float b) +{ + return (a*a)/(a*a + b*b); +} + +__device float2 concentric_sample_disk(float u1, float u2) +{ + float r, theta; + // Map uniform random numbers to $[-1,1]^2$ + float sx = 2 * u1 - 1; + float sy = 2 * u2 - 1; + + // Map square to $(r,\theta)$ + + // Handle degeneracy at the origin + if(sx == 0.0f && sy == 0.0f) { + return make_float2(0.0f, 0.0f); + } + if(sx >= -sy) { + if(sx > sy) { + // Handle first region of disk + r = sx; + if(sy > 0.0f) theta = sy/r; + else theta = 8.0f + sy/r; + } + else { + // Handle second region of disk + r = sy; + theta = 2.0f - sx/r; + } + } + else { + if(sx <= sy) { + // Handle third region of disk + r = -sx; + theta = 4.0f - sy/r; + } + else { + // Handle fourth region of disk + r = -sy; + theta = 6.0f + sx/r; + } + } + + theta *= M_PI_4_F; + return make_float2(r * cosf(theta), r * sinf(theta)); +} + +/* Spherical coordinates <-> Cartesion direction */ + +__device float2 direction_to_spherical(float3 dir) +{ + float theta = acosf(dir.z); + float phi = atan2f(dir.x, dir.y); + + return make_float2(theta, phi); +} + +__device float3 spherical_to_direction(float theta, float phi) +{ + return make_float3( + sinf(theta)*cosf(phi), + sinf(theta)*sinf(phi), + cosf(theta)); +} + +CCL_NAMESPACE_END + +#endif /* __KERNEL_MONTECARLO_CL__ */ + diff --git a/intern/cycles/kernel/kernel_object.h b/intern/cycles/kernel/kernel_object.h new file mode 100644 index 00000000000..b4c42d3bacc --- /dev/null +++ b/intern/cycles/kernel/kernel_object.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. + */ + +CCL_NAMESPACE_BEGIN + +enum ObjectTransform { + OBJECT_TRANSFORM = 0, + OBJECT_INVERSE_TRANSFORM = 4, + OBJECT_NORMAL_TRANSFORM = 8, + OBJECT_PROPERTIES = 12 +}; + +__device_inline Transform object_fetch_transform(KernelGlobals *kg, int object, enum ObjectTransform type) +{ + Transform tfm; + + int offset = object*OBJECT_SIZE + (int)type; + + tfm.x = kernel_tex_fetch(__objects, offset + 0); + tfm.y = kernel_tex_fetch(__objects, offset + 1); + tfm.z = kernel_tex_fetch(__objects, offset + 2); + tfm.w = kernel_tex_fetch(__objects, offset + 3); + + return tfm; +} + +__device_inline void object_position_transform(KernelGlobals *kg, int object, float3 *P) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + *P = transform(&tfm, *P); +} + +__device_inline void object_normal_transform(KernelGlobals *kg, int object, float3 *N) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_NORMAL_TRANSFORM); + *N = normalize(transform_direction(&tfm, *N)); +} + +__device_inline void object_dir_transform(KernelGlobals *kg, int object, float3 *D) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + *D = transform_direction(&tfm, *D); +} + +__device_inline float object_surface_area(KernelGlobals *kg, int object) +{ + int offset = object*OBJECT_SIZE + OBJECT_PROPERTIES; + float4 f = kernel_tex_fetch(__objects, offset); + return f.x; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h new file mode 100644 index 00000000000..15c7e67f101 --- /dev/null +++ b/intern/cycles/kernel/kernel_path.h @@ -0,0 +1,263 @@ +/* + * 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 "kernel_differential.h" +#include "kernel_montecarlo.h" +#include "kernel_triangle.h" +#include "kernel_object.h" +#ifdef __QBVH__ +#include "kernel_qbvh.h" +#else +#include "kernel_bvh.h" +#endif +#include "kernel_camera.h" +#include "kernel_shader.h" +#include "kernel_light.h" +#include "kernel_emission.h" +#include "kernel_random.h" + +CCL_NAMESPACE_BEGIN + +#ifdef __MODIFY_TP__ +__device float3 path_terminate_modified_throughput(KernelGlobals *kg, __global float3 *buffer, int x, int y, int pass) +{ + /* modify throughput to influence path termination probability, to avoid + darker regions receiving fewer samples than lighter regions. also RGB + are weighted differently. proper validation still remains to be done. */ + const float3 weights = make_float3(1.0f, 1.33f, 0.66f); + const float3 one = make_float3(1.0f, 1.0f, 1.0f); + const int minpass = 5; + const float minL = 0.1f; + + if(pass >= minpass) { + float3 L = buffer[x + y*kernel_data.cam.width]; + float3 Lmin = make_float3(minL, minL, minL); + float correct = (float)(pass+1)/(float)pass; + + L = film_map(L*correct, pass); + + return weights/clamp(L, Lmin, one); + } + + return weights; +} +#endif + +__device float path_terminate_probability(KernelGlobals *kg, int bounce, const float3 throughput) +{ + if(bounce >= kernel_data.integrator.maxbounce) + return 0.0f; + else if(bounce <= kernel_data.integrator.minbounce) + return 1.0f; + + return average(throughput); +} + +__device int path_flag_from_label(int path_flag, int label) +{ + /* reflect/transmit */ + if(label & LABEL_REFLECT) { + path_flag |= PATH_RAY_REFLECT; + path_flag &= ~PATH_RAY_TRANSMIT; + } + else { + kernel_assert(label & LABEL_TRANSMIT); + + path_flag |= PATH_RAY_TRANSMIT; + path_flag &= ~PATH_RAY_REFLECT; + } + + /* diffuse/glossy/singular */ + if(label & LABEL_DIFFUSE) { + path_flag |= PATH_RAY_DIFFUSE; + path_flag &= ~(PATH_RAY_GLOSSY|PATH_RAY_SINGULAR); + } + else if(label & LABEL_GLOSSY) { + path_flag |= PATH_RAY_GLOSSY; + path_flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_SINGULAR); + } + else { + kernel_assert(label & (LABEL_SINGULAR|LABEL_STRAIGHT)); + + path_flag |= PATH_RAY_SINGULAR; + path_flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_GLOSSY); + } + + /* ray through transparent is still camera ray */ + if(!(label & LABEL_STRAIGHT)) + path_flag &= ~PATH_RAY_CAMERA; + + return path_flag; +} + +__device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) +{ + /* initialize */ + float3 L = make_float3(0.0f, 0.0f, 0.0f); + +#ifdef __EMISSION__ + float ray_pdf = 0.0f; +#endif + int path_flag = PATH_RAY_CAMERA|PATH_RAY_SINGULAR; + int rng_offset = PRNG_BASE_NUM; + + /* path iteration */ + for(int bounce = 0; ; bounce++, rng_offset += PRNG_BOUNCE_NUM) { + /* intersect scene */ + Intersection isect; + + if(!scene_intersect(kg, &ray, false, &isect)) { + /* eval background shader if nothing hit */ +#ifdef __BACKGROUND__ + ShaderData sd; + shader_setup_from_background(kg, &sd, &ray); + L += throughput*shader_eval_background(kg, &sd, path_flag); + shader_release(kg, &sd); +#else + L += throughputmake_float3(0.8f, 0.8f, 0.8f); +#endif + break; + } + + /* setup shading */ + ShaderData sd; + shader_setup_from_ray(kg, &sd, &isect, &ray); + float rbsdf = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF); + shader_eval_surface(kg, &sd, rbsdf, path_flag); + +#ifdef __EMISSION__ + /* emission */ + if(kernel_data.integrator.use_emission) { + if(sd.flag & SD_EMISSION) + L += throughput*indirect_emission(kg, &sd, isect.t, path_flag, ray_pdf); + + /* sample illumination from lights to find path contribution */ + if((sd.flag & SD_BSDF_HAS_EVAL) && + bounce != kernel_data.integrator.maxbounce) { + float light_t = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT); + float light_o = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_F); + float light_u = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_U); + float light_v = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_V); + + Ray light_ray; + float3 light_L; + + if(direct_emission(kg, &sd, light_t, light_o, light_u, light_v, &light_ray, &light_L)) { + /* trace shadow ray */ + if(!scene_intersect(kg, &light_ray, true, &isect)) + L += throughput*light_L; + } + } + } +#endif + + /* sample BSDF */ + float bsdf_pdf; + float3 bsdf_eval; + float3 bsdf_omega_in; + differential3 bsdf_domega_in; + float bsdf_u = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF_U); + float bsdf_v = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF_V); + int label; + + label = shader_bsdf_sample(kg, &sd, bsdf_u, bsdf_v, &bsdf_eval, + &bsdf_omega_in, &bsdf_domega_in, &bsdf_pdf); + + shader_release(kg, &sd); + + if(bsdf_pdf == 0.0f || is_zero(bsdf_eval)) + break; + + /* modify throughput */ + throughput *= bsdf_eval/bsdf_pdf; + + /* set labels */ +#ifdef __EMISSION__ + ray_pdf = bsdf_pdf; +#endif + + path_flag = path_flag_from_label(path_flag, label); + + /* path termination */ + float probability = path_terminate_probability(kg, bounce, throughput); + float terminate = path_rng(kg, rng, pass, rng_offset + PRNG_TERMINATE); + + if(terminate >= probability) + break; + + throughput /= probability; + + /* setup ray */ + ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng); + ray.D = bsdf_omega_in; + ray.t = FLT_MAX; +#ifdef __RAY_DIFFERENTIALS__ + ray.dP = sd.dP; + ray.dD = bsdf_domega_in; +#endif + } + + return L; +} + +__device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __global uint *rng_state, int pass, int x, int y) +{ + /* initialize random numbers */ + RNG rng; + + float filter_u; + float filter_v; + + path_rng_init(kg, rng_state, pass, &rng, x, y, &filter_u, &filter_v); + + /* sample camera ray */ + Ray ray; + + float lens_u = path_rng(kg, &rng, pass, PRNG_LENS_U); + float lens_v = path_rng(kg, &rng, pass, PRNG_LENS_V); + + camera_sample(kg, x, y, filter_u, filter_v, lens_u, lens_v, &ray); + + /* integrate */ +#ifdef __MODIFY_TP__ + float3 throughput = path_terminate_modified_throughput(kg, buffer, x, y, pass); + float3 L = kernel_path_integrate(kg, &rng, pass, ray, throughput)/throughput; +#else + float3 throughput = make_float3(1.0f, 1.0f, 1.0f); + float3 L = kernel_path_integrate(kg, &rng, pass, ray, throughput); +#endif + + /* accumulate result in output buffer */ + int index = x + y*kernel_data.cam.width; + + float4 result; + result.x = L.x; + result.y = L.y; + result.z = L.z; + result.w = 1.0f; + + if(pass == 0) + buffer[index] = result; + else + buffer[index] += result; + + path_rng_end(kg, rng_state, rng, x, y); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_qbvh.h b/intern/cycles/kernel/kernel_qbvh.h new file mode 100644 index 00000000000..96e68d797dd --- /dev/null +++ b/intern/cycles/kernel/kernel_qbvh.h @@ -0,0 +1,413 @@ +/* + * Adapted from code Copyright 2009-2010 NVIDIA Corporation + * Modifications Copyright 2011, Blender Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +CCL_NAMESPACE_BEGIN + +/* + * "Persistent while-while kernel" used in: + * + * "Understanding the Efficiency of Ray Traversal on GPUs", + * Timo Aila and Samuli Laine, + * Proc. High-Performance Graphics 2009 + */ + +/* bottom-most stack entry, indicating the end of traversal */ + +#define ENTRYPOINT_SENTINEL 0x76543210 +/* 64 object BVH + 64 mesh BVH + 64 object node splitting */ +#define QBVH_STACK_SIZE 192 +#define QBVH_NODE_SIZE 8 +#define TRI_NODE_SIZE 3 + +__device_inline float3 qbvh_inverse_direction(float3 dir) +{ + // Avoid divide by zero (ooeps = exp2f(-80.0f)) + float ooeps = 0.00000000000000000000000082718061255302767487140869206996285356581211090087890625f; + float3 idir; + + idir.x = 1.0f/((fabsf(dir.x) > ooeps)? dir.x: copysignf(ooeps, dir.x)); + idir.y = 1.0f/((fabsf(dir.y) > ooeps)? dir.y: copysignf(ooeps, dir.y)); + idir.z = 1.0f/((fabsf(dir.z) > ooeps)? dir.z: copysignf(ooeps, dir.z)); + + return idir; +} + +__device_inline void qbvh_instance_push(KernelGlobals *kg, int object, const Ray *ray, float3 *P, float3 *idir, float *t, const float tmax) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM); + + *P = transform(&tfm, ray->P); + + float3 dir = transform_direction(&tfm, ray->D); + + float len; + dir = normalize_len(dir, &len); + + *idir = qbvh_inverse_direction(dir); + + if(*t != FLT_MAX) + *t *= len; +} + +__device_inline void qbvh_instance_pop(KernelGlobals *kg, int object, const Ray *ray, float3 *P, float3 *idir, float *t, const float tmax) +{ + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + + if(*t != FLT_MAX) + *t *= len(transform_direction(&tfm, 1.0f/(*idir))); + + *P = ray->P; + *idir = qbvh_inverse_direction(ray->D); +} + +#ifdef __KERNEL_CPU__ + +__device_inline void qbvh_node_intersect(KernelGlobals *kg, int *traverseChild, + int nodeAddrChild[4], float3 P, float3 idir, float t, int nodeAddr) +{ + /* X axis */ + const __m128 bminx = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+0); + const __m128 t0x = _mm_mul_ps(_mm_sub_ps(bminx, _mm_set_ps1(P.x)), _mm_set_ps1(idir.x)); + const __m128 bmaxx = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+1); + const __m128 t1x = _mm_mul_ps(_mm_sub_ps(bmaxx, _mm_set_ps1(P.x)), _mm_set_ps1(idir.x)); + + __m128 tmin = _mm_max_ps(_mm_min_ps(t0x, t1x), _mm_setzero_ps()); + __m128 tmax = _mm_min_ps(_mm_max_ps(t0x, t1x), _mm_set_ps1(t)); + + /* Y axis */ + const __m128 bminy = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+2); + const __m128 t0y = _mm_mul_ps(_mm_sub_ps(bminy, _mm_set_ps1(P.y)), _mm_set_ps1(idir.y)); + const __m128 bmaxy = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+3); + const __m128 t1y = _mm_mul_ps(_mm_sub_ps(bmaxy, _mm_set_ps1(P.y)), _mm_set_ps1(idir.y)); + + tmin = _mm_max_ps(_mm_min_ps(t0y, t1y), tmin); + tmax = _mm_min_ps(_mm_max_ps(t0y, t1y), tmax); + + /* Z axis */ + const __m128 bminz = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+4); + const __m128 t0z = _mm_mul_ps(_mm_sub_ps(bminz, _mm_set_ps1(P.z)), _mm_set_ps1(idir.z)); + const __m128 bmaxz = kernel_tex_fetch_m128(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+5); + const __m128 t1z = _mm_mul_ps(_mm_sub_ps(bmaxz, _mm_set_ps1(P.z)), _mm_set_ps1(idir.z)); + + tmin = _mm_max_ps(_mm_min_ps(t0z, t1z), tmin); + tmax = _mm_min_ps(_mm_max_ps(t0z, t1z), tmax); + + /* compare and get mask */ + *traverseChild = _mm_movemask_ps(_mm_cmple_ps(tmin, tmax)); + + /* get node addresses */ + float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+6); + + nodeAddrChild[0] = __float_as_int(cnodes.x); + nodeAddrChild[1] = __float_as_int(cnodes.y); + nodeAddrChild[2] = __float_as_int(cnodes.z); + nodeAddrChild[3] = __float_as_int(cnodes.w); +} + +#else + +__device_inline bool qbvh_bb_intersect(float3 bmin, float3 bmax, float3 P, float3 idir, float t) +{ + float t0x = (bmin.x - P.x)*idir.x; + float t1x = (bmax.x - P.x)*idir.x; + float t0y = (bmin.y - P.y)*idir.y; + float t1y = (bmax.y - P.y)*idir.y; + float t0z = (bmin.z - P.z)*idir.z; + float t1z = (bmax.z - P.z)*idir.z; + + float minx = min(t0x, t1x); + float maxx = max(t0x, t1x); + float miny = min(t0y, t1y); + float maxy = max(t0y, t1y); + float minz = min(t0z, t1z); + float maxz = max(t0z, t1z); + + float tmin = max4(0.0f, minx, miny, minz); + float tmax = min4(t, maxx, maxy, maxz); + + return (tmin <= tmax); +} + +/* intersect four bounding boxes */ +__device_inline void qbvh_node_intersect(KernelGlobals *kg, int *traverseChild, + int nodeAddrChild[4], float3 P, float3 idir, float t, int nodeAddr) +{ + /* fetch node data */ + float4 minx = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+0); + float4 miny = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+2); + float4 minz = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+4); + float4 maxx = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+1); + float4 maxy = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+3); + float4 maxz = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+5); + + /* intersect bounding boxes */ + bool traverseChild0 = qbvh_bb_intersect(make_float3(minx.x, miny.x, minz.x), make_float3(maxx.x, maxy.x, maxz.x), P, idir, t); + bool traverseChild1 = qbvh_bb_intersect(make_float3(minx.y, miny.y, minz.y), make_float3(maxx.y, maxy.y, maxz.y), P, idir, t); + bool traverseChild2 = qbvh_bb_intersect(make_float3(minx.z, miny.z, minz.z), make_float3(maxx.z, maxy.z, maxz.z), P, idir, t); + bool traverseChild3 = qbvh_bb_intersect(make_float3(minx.w, miny.w, minz.w), make_float3(maxx.w, maxy.w, maxz.w), P, idir, t); + + *traverseChild = 0; + if(traverseChild0) *traverseChild |= 1; + if(traverseChild1) *traverseChild |= 2; + if(traverseChild2) *traverseChild |= 4; + if(traverseChild3) *traverseChild |= 8; + + /* get node addresses */ + float4 cnodes = kernel_tex_fetch(__bvh_nodes, nodeAddr*QBVH_NODE_SIZE+6); + + nodeAddrChild[0] = __float_as_int(cnodes.x); + nodeAddrChild[1] = __float_as_int(cnodes.y); + nodeAddrChild[2] = __float_as_int(cnodes.z); + nodeAddrChild[3] = __float_as_int(cnodes.w); +} + +#endif + +/* Sven Woop's algorithm */ +__device_inline void qbvh_triangle_intersect(KernelGlobals *kg, Intersection *isect, float3 P, float3 idir, int object, int triAddr) +{ + /* compute and check intersection t-value */ + float4 v00 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+0); + float4 v11 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+1); + float3 dir = 1.0f/idir; + + float Oz = v00.w - P.x*v00.x - P.y*v00.y - P.z*v00.z; + float invDz = 1.0f/(dir.x*v00.x + dir.y*v00.y + dir.z*v00.z); + float t = Oz * invDz; + + if(t > 0.0f && t < isect->t) { + /* compute and check barycentric u */ + float Ox = v11.w + P.x*v11.x + P.y*v11.y + P.z*v11.z; + float Dx = dir.x*v11.x + dir.y*v11.y + dir.z*v11.z; + float u = Ox + t*Dx; + + if(u >= 0.0f) { + /* compute and check barycentric v */ + float4 v22 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+2); + float Oy = v22.w + P.x*v22.x + P.y*v22.y + P.z*v22.z; + float Dy = dir.x*v22.x + dir.y*v22.y + dir.z*v22.z; + float v = Oy + t*Dy; + + if(v >= 0.0f && u + v <= 1.0f) { + /* record intersection */ + isect->prim = triAddr; + isect->object = object; + isect->u = u; + isect->v = v; + isect->t = t; + } + } + } +} + +__device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const bool isshadowray, Intersection *isect) +{ + /* traversal stack in CUDA thread-local memory */ + int traversalStack[QBVH_STACK_SIZE]; + traversalStack[0] = ENTRYPOINT_SENTINEL; + + /* traversal variables in registers */ + int stackPtr = 0; + int nodeAddr = kernel_data.bvh.root; + + /* ray parameters in registers */ + const float tmax = ray->t; + float3 P = ray->P; + float3 idir = qbvh_inverse_direction(ray->D); + int object = ~0; + + isect->t = tmax; + isect->object = ~0; + isect->prim = ~0; + isect->u = 0.0f; + isect->v = 0.0f; + + /* traversal loop */ + do { + do + { + /* traverse internal nodes */ + while(nodeAddr >= 0 && nodeAddr != ENTRYPOINT_SENTINEL) + { + int traverseChild, nodeAddrChild[4]; + + qbvh_node_intersect(kg, &traverseChild, nodeAddrChild, + P, idir, isect->t, nodeAddr); + + if(traverseChild & 1) { + ++stackPtr; + traversalStack[stackPtr] = nodeAddrChild[0]; + } + + if(traverseChild & 2) { + ++stackPtr; + traversalStack[stackPtr] = nodeAddrChild[1]; + } + if(traverseChild & 4) { + ++stackPtr; + traversalStack[stackPtr] = nodeAddrChild[2]; + } + + if(traverseChild & 8) { + ++stackPtr; + traversalStack[stackPtr] = nodeAddrChild[3]; + } + + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } + + /* if node is leaf, fetch triangle list */ + if(nodeAddr < 0) { + float4 leaf = kernel_tex_fetch(__bvh_nodes, (-nodeAddr-1)*QBVH_NODE_SIZE+(QBVH_NODE_SIZE-2)); + int primAddr = __float_as_int(leaf.x); + +#ifdef __INSTANCING__ + if(primAddr >= 0) { +#endif + int primAddr2 = __float_as_int(leaf.y); + + /* pop */ + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + + /* triangle intersection */ + while(primAddr < primAddr2) { + /* intersect ray against triangle */ + qbvh_triangle_intersect(kg, isect, P, idir, object, primAddr); + + /* shadow ray early termination */ + if(isshadowray && isect->prim != ~0) + return true; + + primAddr++; + } +#ifdef __INSTANCING__ + } + else { + /* instance push */ + object = kernel_tex_fetch(__prim_object, -primAddr-1); + + qbvh_instance_push(kg, object, ray, &P, &idir, &isect->t, tmax); + + ++stackPtr; + traversalStack[stackPtr] = ENTRYPOINT_SENTINEL; + + nodeAddr = kernel_tex_fetch(__object_node, object); + } +#endif + } + } while(nodeAddr != ENTRYPOINT_SENTINEL); + +#ifdef __INSTANCING__ + if(stackPtr >= 0) { + kernel_assert(object != ~0); + + /* instance pop */ + qbvh_instance_pop(kg, object, ray, &P, &idir, &isect->t, tmax); + object = ~0; + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } +#endif + } while(nodeAddr != ENTRYPOINT_SENTINEL); + + return (isect->prim != ~0); +} + +__device_inline float3 ray_offset(float3 P, float3 Ng) +{ +#ifdef __INTERSECTION_REFINE__ + const float epsilon_f = 1e-5f; + const int epsilon_i = 32; + + float3 res; + + /* x component */ + if(fabsf(P.x) < epsilon_f) { + res.x = P.x + Ng.x*epsilon_f; + } + else { + uint ix = __float_as_uint(P.x); + ix += ((ix ^ __float_as_uint(Ng.x)) >> 31)? -epsilon_i: epsilon_i; + res.x = __uint_as_float(ix); + } + + /* y component */ + if(fabsf(P.y) < epsilon_f) { + res.y = P.y + Ng.y*epsilon_f; + } + else { + uint iy = __float_as_uint(P.y); + iy += ((iy ^ __float_as_uint(Ng.y)) >> 31)? -epsilon_i: epsilon_i; + res.y = __uint_as_float(iy); + } + + /* z component */ + if(fabsf(P.z) < epsilon_f) { + res.z = P.z + Ng.z*epsilon_f; + } + else { + uint iz = __float_as_uint(P.z); + iz += ((iz ^ __float_as_uint(Ng.z)) >> 31)? -epsilon_i: epsilon_i; + res.z = __uint_as_float(iz); + } + + return res; +#else + const float epsilon_f = 1e-4f; + return P + epsilon_f*Ng; +#endif +} + +__device_inline float3 bvh_triangle_refine(KernelGlobals *kg, const Intersection *isect, const Ray *ray) +{ + float3 P = ray->P; + float3 D = ray->D; + float t = isect->t; + +#ifdef __INTERSECTION_REFINE__ + if(isect->object != ~0) { + Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_INVERSE_TRANSFORM); + + P = transform(&tfm, P); + D = transform_direction(&tfm, D*t); + D = normalize_len(D, &t); + } + + P = P + D*t; + + float4 v00 = kernel_tex_fetch(__tri_woop, isect->prim*TRI_NODE_SIZE+0); + float Oz = v00.w - P.x*v00.x - P.y*v00.y - P.z*v00.z; + float invDz = 1.0f/(D.x*v00.x + D.y*v00.y + D.z*v00.z); + float rt = Oz * invDz; + + P = P + D*rt; + + if(isect->object != ~0) { + Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_TRANSFORM); + P = transform(&tfm, P); + } + + return P; +#else + return P + D*t; +#endif +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h new file mode 100644 index 00000000000..6c2daafb061 --- /dev/null +++ b/intern/cycles/kernel/kernel_random.h @@ -0,0 +1,175 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +typedef uint RNG; + +#ifdef __SOBOL__ + +/* High Dimensional Sobol */ + +/* van der corput radical inverse */ +__device uint van_der_corput(uint bits) +{ + bits = (bits << 16) | (bits >> 16); + bits = ((bits & 0x00ff00ff) << 8) | ((bits & 0xff00ff00) >> 8); + bits = ((bits & 0x0f0f0f0f) << 4) | ((bits & 0xf0f0f0f0) >> 4); + bits = ((bits & 0x33333333) << 2) | ((bits & 0xcccccccc) >> 2); + bits = ((bits & 0x55555555) << 1) | ((bits & 0xaaaaaaaa) >> 1); + return bits; +} + +/* sobol radical inverse */ +__device uint sobol(uint i) +{ + uint r = 0; + + for(uint v = 1U << 31; i; i >>= 1, v ^= v >> 1) + if(i & 1) + r ^= v; + + return r; +} + +/* inverse of sobol radical inverse */ +__device uint sobol_inverse(uint i) +{ + const uint msb = 1U << 31; + uint r = 0; + + for(uint v = 1; i; i <<= 1, v ^= v << 1) + if(i & msb) + r ^= v; + + return r; +} + +/* multidimensional sobol with generator matrices + dimension 0 and 1 are equal to van_der_corput() and sobol() respectively */ +__device uint sobol_dimension(KernelGlobals *kg, int index, int dimension) +{ + uint result = 0; + uint i = index; + + for(uint j = 0; i; i >>= 1, j++) + if(i & 1) + result ^= kernel_tex_fetch(__sobol_directions, 32*dimension + j); + + return result; +} + +/* lookup index and x/y coordinate, assumes m is a power of two */ +__device uint sobol_lookup(const uint m, const uint frame, const uint ex, const uint ey, uint *x, uint *y) +{ + /* shift is constant per frame */ + const uint shift = frame << (m << 1); + const uint sobol_shift = sobol(shift); + /* van der Corput is its own inverse */ + const uint lower = van_der_corput(ex << (32 - m)); + /* need to compensate for ey difference and shift */ + const uint sobol_lower = sobol(lower); + const uint mask = ~-(1 << m) << (32 - m); /* only m upper bits */ + const uint delta = ((ey << (32 - m)) ^ sobol_lower ^ sobol_shift) & mask; + /* only use m upper bits for the index (m is a power of two) */ + const uint sobol_result = delta | (delta >> m); + const uint upper = sobol_inverse(sobol_result); + const uint index = shift | upper | lower; + *x = van_der_corput(index); + *y = sobol_shift ^ sobol_result ^ sobol_lower; + return index; +} + +__device_inline float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimension) +{ +#ifdef __SOBOL_FULL_SCREEN__ + uint result = sobol_dimension(kg, *rng, dimension); + float r = (float)result * (1.0f/(float)0xFFFFFFFF); + return r; +#else + /* compute sobol sequence value using direction vectors */ + uint result = sobol_dimension(kg, pass, dimension); + float r = (float)result * (1.0f/(float)0xFFFFFFFF); + + /* Cranly-Patterson rotation using rng seed */ + float shift; + + if(dimension & 1) + shift = (*rng >> 16)/((float)0xFFFF); + else + shift = (*rng & 0xFFFF)/((float)0xFFFF); + + return r + shift - floor(r + shift); +#endif +} + +__device_inline void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int pass, RNG *rng, int x, int y, float *fx, float *fy) +{ +#ifdef __SOBOL_FULL_SCREEN__ + uint px, py; + uint bits = 16; /* limits us to 65536x65536 and 65536 samples */ + uint size = 1 << bits; + uint frame = pass; + + *rng = sobol_lookup(bits, frame, x, y, &px, &py); + + *fx = size * (float)px * (1.0f/(float)0xFFFFFFFF) - x; + *fy = size * (float)py * (1.0f/(float)0xFFFFFFFF) - y; +#else + *rng = rng_state[x + y*kernel_data.cam.width]; + + *fx = path_rng(kg, rng, pass, PRNG_FILTER_U); + *fy = path_rng(kg, rng, pass, PRNG_FILTER_V); +#endif +} + +__device void path_rng_end(KernelGlobals *kg, __global uint *rng_state, RNG rng, int x, int y) +{ + /* nothing to do */ +} + +#else + +/* Linear Congruential Generator */ + +__device float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimension) +{ + /* implicit mod 2^32 */ + *rng = (1103515245*(*rng) + 12345); + return (float)*rng * (1.0f/(float)0xFFFFFFFF); +} + +__device void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int pass, RNG *rng, int x, int y, float *fx, float *fy) +{ + /* load state */ + *rng = rng_state[x + y*kernel_data.cam.width]; + + *fx = path_rng(kg, rng, pass, PRNG_FILTER_U); + *fy = path_rng(kg, rng, pass, PRNG_FILTER_V); +} + +__device void path_rng_end(KernelGlobals *kg, __global uint *rng_state, RNG rng, int x, int y) +{ + /* store state for next pass */ + rng_state[x + y*kernel_data.cam.width] = rng; +} + +#endif + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h new file mode 100644 index 00000000000..f1abbda7ae5 --- /dev/null +++ b/intern/cycles/kernel/kernel_shader.h @@ -0,0 +1,460 @@ +/* + * 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. + */ + +/* + * ShaderData, used in four steps: + * + * Setup from incoming ray, sampled position and background. + * Execute for surface, volume or displacement. + * Evaluate one or more closures. + * Release. + * + */ + +#include "svm/bsdf.h" +#include "svm/emissive.h" +#include "svm/volume.h" +#include "svm/svm_bsdf.h" +#include "svm/svm.h" + +#ifdef WITH_OSL +#include "osl_shader.h" +#endif + +CCL_NAMESPACE_BEGIN + +/* ShaderData setup from incoming ray */ + +__device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, + const Intersection *isect, const Ray *ray) +{ + /* fetch triangle data */ + int prim = kernel_tex_fetch(__prim_index, isect->prim); + float4 Ns = kernel_tex_fetch(__tri_normal, prim); + float3 Ng = make_float3(Ns.x, Ns.y, Ns.z); + int shader = __float_as_int(Ns.w); + + /* vectors */ + sd->P = bvh_triangle_refine(kg, isect, ray); + sd->Ng = Ng; + sd->N = Ng; + sd->I = -ray->D; + sd->shader = shader; + sd->flag = 0; + + /* triangle */ +#ifdef __INSTANCING__ + sd->object = isect->object; +#endif + sd->prim = prim; +#ifdef __UV__ + sd->u = isect->u; + sd->v = isect->v; +#endif + + /* smooth normal */ + if(sd->shader < 0) { + sd->N = triangle_smooth_normal(kg, sd->prim, sd->u, sd->v); + sd->shader = -sd->shader; + } + +#ifdef __DPDU__ + /* dPdu/dPdv */ + triangle_dPdudv(kg, &sd->dPdu, &sd->dPdv, sd->prim); +#endif + +#ifdef __INSTANCING__ + if(sd->object != ~0) { + /* instance transform */ + object_normal_transform(kg, sd->object, &sd->N); + object_normal_transform(kg, sd->object, &sd->Ng); +#ifdef __DPDU__ + object_dir_transform(kg, sd->object, &sd->dPdu); + object_dir_transform(kg, sd->object, &sd->dPdv); +#endif + } + else { + /* non-instanced object index */ + sd->object = kernel_tex_fetch(__prim_object, isect->prim); + } +#endif + + /* backfacing test */ + bool backfacing = (dot(sd->Ng, sd->I) < 0.0f); + + if(backfacing) { + sd->flag = SD_BACKFACING; + sd->Ng = -sd->Ng; + sd->N = -sd->N; +#ifdef __DPDU__ + sd->dPdu = -sd->dPdu; + sd->dPdv = -sd->dPdv; +#endif + } + +#ifdef __RAY_DIFFERENTIALS__ + /* differentials */ + differential_transfer(&sd->dP, ray->dP, ray->D, ray->dD, sd->Ng, isect->t); + differential_incoming(&sd->dI, ray->dD); + differential_dudv(&sd->du, &sd->dv, sd->dPdu, sd->dPdv, sd->dP, sd->Ng); +#endif +} + +/* ShaderData setup from position sampled on mesh */ + +__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) +{ + /* vectors */ + sd->P = P; + sd->N = Ng; + sd->Ng = Ng; + sd->I = I; + sd->shader = shader; + sd->flag = 0; + + /* primitive */ +#ifdef __INSTANCING__ + sd->object = object; +#endif + sd->prim = prim; +#ifdef __UV__ + sd->u = u; + sd->v = v; +#endif + + /* detect instancing, for non-instanced the object index is -object-1 */ + bool instanced = false; + + if(sd->prim != ~0) { + if(sd->object >= 0) + instanced = true; + else + sd->object = -sd->object-1; + } + + /* smooth normal */ + if(sd->shader < 0) { + sd->N = triangle_smooth_normal(kg, sd->prim, sd->u, sd->v); + sd->shader = -sd->shader; + +#ifdef __INSTANCING__ + if(instanced) + object_normal_transform(kg, sd->object, &sd->N); +#endif + } + +#ifdef __DPDU__ + /* dPdu/dPdv */ + if(sd->prim == ~0) { + sd->dPdu = make_float3(0.0f, 0.0f, 0.0f); + sd->dPdv = make_float3(0.0f, 0.0f, 0.0f); + } + else { + triangle_dPdudv(kg, &sd->dPdu, &sd->dPdv, sd->prim); + +#ifdef __INSTANCING__ + if(instanced) { + object_dir_transform(kg, sd->object, &sd->dPdu); + object_dir_transform(kg, sd->object, &sd->dPdv); + } +#endif + } +#endif + + /* backfacing test */ + if(sd->prim != ~0) { + bool backfacing = (dot(sd->Ng, sd->I) < 0.0f); + + if(backfacing) { + sd->flag = SD_BACKFACING; + sd->Ng = -sd->Ng; + sd->N = -sd->N; +#ifdef __DPDU__ + sd->dPdu = -sd->dPdu; + sd->dPdv = -sd->dPdv; +#endif + } + } + +#ifdef __RAY_DIFFERENTIALS__ + /* no ray differentials here yet */ + sd->dP.dx = make_float3(0.0f, 0.0f, 0.0f); + sd->dP.dy = make_float3(0.0f, 0.0f, 0.0f); + sd->dI.dx = make_float3(0.0f, 0.0f, 0.0f); + sd->dI.dy = make_float3(0.0f, 0.0f, 0.0f); + sd->du.dx = 0.0f; + sd->du.dy = 0.0f; + sd->dv.dx = 0.0f; + sd->dv.dy = 0.0f; +#endif +} + +/* ShaderData setup for displacement */ + +__device void shader_setup_from_displace(KernelGlobals *kg, ShaderData *sd, + int object, int prim, float u, float v) +{ + float3 P, Ng, I = make_float3(0.0f, 0.0f, 0.0f); + int shader; + + P = triangle_point_MT(kg, prim, u, v); + Ng = triangle_normal_MT(kg, prim, &shader); + + /* force smooth shading for displacement */ + if(shader >= 0) + shader = -shader; + + /* watch out: no instance transform currently */ + + shader_setup_from_sample(kg, sd, P, Ng, I, shader, object, prim, u, v); +} + +/* ShaderData setup from ray into background */ + +__device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderData *sd, const Ray *ray) +{ + /* vectors */ + sd->P = ray->D; + sd->N = -sd->P; + sd->Ng = -sd->P; + sd->I = -sd->P; + sd->shader = kernel_data.background.shader; + sd->flag = 0; + +#ifdef __INSTANCING__ + sd->object = ~0; +#endif + sd->prim = ~0; +#ifdef __UV__ + sd->u = 0.0f; + sd->v = 0.0f; +#endif + +#ifdef __DPDU__ + /* dPdu/dPdv */ + sd->dPdu = make_float3(0.0f, 0.0f, 0.0f); + sd->dPdv = make_float3(0.0f, 0.0f, 0.0f); +#endif + +#ifdef __RAY_DIFFERENTIALS__ + /* differentials */ + sd->dP = ray->dD; + differential_incoming(&sd->dI, sd->dP); + sd->du.dx = 0.0f; + sd->du.dy = 0.0f; + sd->dv.dx = 0.0f; + sd->dv.dy = 0.0f; +#endif +} + +/* BSDF */ + +__device int shader_bsdf_sample(KernelGlobals *kg, const ShaderData *sd, + float randu, float randv, float3 *eval, + float3 *omega_in, differential3 *domega_in, float *pdf) +{ + int label; + + *pdf = 0.0f; + +#ifdef WITH_OSL + if(kg->osl.use) + label = OSLShader::bsdf_sample(sd, randu, randv, *eval, *omega_in, *domega_in, *pdf); + else +#endif + label = svm_bsdf_sample(sd, randu, randv, eval, omega_in, domega_in, pdf); + + return label; +} + +__device float3 shader_bsdf_eval(KernelGlobals *kg, const ShaderData *sd, + const float3 omega_in, float *pdf) +{ + float3 eval; + + *pdf = 0.0f; + +#ifdef WITH_OSL + if(kg->osl.use) + eval = OSLShader::bsdf_eval(sd, omega_in, *pdf); + else +#endif + eval = svm_bsdf_eval(sd, omega_in, pdf); + + return eval; +} + +__device void shader_bsdf_blur(KernelGlobals *kg, ShaderData *sd, float roughness) +{ +#ifdef WITH_OSL + if(!kg->osl.use) +#endif + svm_bsdf_blur(sd, roughness); +} + +/* Emission */ + +__device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + return OSLShader::emissive_eval(sd); + } + else +#endif + { + return svm_emissive_eval(sd); + } +} + +__device void shader_emissive_sample(KernelGlobals *kg, ShaderData *sd, + float randu, float randv, float3 *eval, float3 *I, float *pdf) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + OSLShader::emissive_sample(sd, randu, randv, eval, I, pdf); + } + else +#endif + { + svm_emissive_sample(sd, randu, randv, eval, I, pdf); + } +} + +/* Surface Evaluation */ + +__device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, + float randb, int path_flag) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + OSLShader::eval_surface(kg, sd, randb, path_flag); + } + else +#endif + { +#ifdef __SVM__ + svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag); +#else + sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; + sd->svm_closure_weight = make_float3(0.8f, 0.8f, 0.8f); +#endif + +#ifdef __CAUSTICS_TRICKS__ + /* caustic tricks */ + if((path_flag & PATH_RAY_DIFFUSE) && (sd->flag & SD_BSDF_GLOSSY)) { + if(kernel_data.integrator.no_caustics) { + sd->flag &= ~(SD_BSDF_GLOSSY|SD_BSDF_HAS_EVAL|SD_EMISSION); + sd->svm_closure = NBUILTIN_CLOSURES; + sd->svm_closure_weight = make_float3(0.0f, 0.0f, 0.0f); + } + else if(kernel_data.integrator.blur_caustics > 0.0f) + shader_bsdf_blur(kg, sd, kernel_data.integrator.blur_caustics); + } +#endif + } +} + +/* Background Evaluation */ + +__device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + return OSLShader::eval_background(kg, sd, path_flag); + } + else +#endif + { +#ifdef __SVM__ + svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag); +#else + sd->svm_closure_weight = make_float3(0.8f, 0.8f, 0.8f); +#endif + + return sd->svm_closure_weight; + } +} + +/* Volume */ + +__device float3 shader_volume_eval_phase(KernelGlobals *kg, ShaderData *sd, + float3 omega_in, float3 omega_out) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + OSLShader::volume_eval_phase(sd, omega_in, omega_out); + } + else +#endif + { + return volume_eval_phase(sd, omega_in, omega_out); + } +} + +/* Volume Evaluation */ + +__device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd, + float randb, int path_flag) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + OSLShader::eval_volume(kg, sd, randb, path_flag); + } + else +#endif + { +#ifdef __SVM__ + svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag); +#endif + } +} + +/* Displacement Evaluation */ + +__device void shader_eval_displacement(KernelGlobals *kg, ShaderData *sd) +{ + /* this will modify sd->P */ + +#ifdef WITH_OSL + if(kg->osl.use) { + OSLShader::eval_displacement(kg, sd); + } + else +#endif + { +#ifdef __SVM__ + svm_eval_nodes(kg, sd, SHADER_TYPE_DISPLACEMENT, 0.0f, 0); +#endif + } +} + +/* Free ShaderData */ + +__device void shader_release(KernelGlobals *kg, ShaderData *sd) +{ +#ifdef WITH_OSL + if(kg->osl.use) + OSLShader::release(kg, sd); +#endif +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_triangle.h b/intern/cycles/kernel/kernel_triangle.h new file mode 100644 index 00000000000..64cbb2dcb61 --- /dev/null +++ b/intern/cycles/kernel/kernel_triangle.h @@ -0,0 +1,183 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Point on triangle for Moller-Trumbore triangles */ +__device_inline float3 triangle_point_MT(KernelGlobals *kg, int tri_index, float u, float v) +{ + /* load triangle vertices */ + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + + float3 v0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 v1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 v2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + + /* compute point */ + float t = 1.0f - u - v; + return (u*v0 + v*v1 + t*v2); +} + +/* Sample point on triangle */ +__device_inline float3 triangle_sample_MT(KernelGlobals *kg, int tri_index, float randu, float randv) +{ + /* compute point */ + randu = sqrtf(randu); + + float u = 1.0f - randu; + float v = randv*randu; + + return triangle_point_MT(kg, tri_index, u, v); +} + +/* Normal for Moller-Trumbore triangles */ +__device_inline float3 triangle_normal_MT(KernelGlobals *kg, int tri_index, int *shader) +{ +#if 0 + /* load triangle vertices */ + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + + float3 v0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 v1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 v2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + + /* compute normal */ + return normalize(cross(v2 - v0, v1 - v0)); +#else + float4 Nm = kernel_tex_fetch(__tri_normal, tri_index); + *shader = __float_as_int(Nm.w); + return make_float3(Nm.x, Nm.y, Nm.z); +#endif +} + +__device_inline float3 triangle_smooth_normal(KernelGlobals *kg, int tri_index, float u, float v) +{ + /* load triangle vertices */ + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + + float3 n0 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.x))); + float3 n1 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.y))); + float3 n2 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.z))); + + return normalize((1.0f - u - v)*n2 + u*n0 + v*n1); +} + +__device_inline void triangle_dPdudv(KernelGlobals *kg, float3 *dPdu, float3 *dPdv, int tri) +{ + /* fetch triangle vertex coordinates */ + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri)); + + float3 p0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 p1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 p2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + + /* compute derivatives of P w.r.t. uv */ + *dPdu = (p0 - p2); + *dPdv = (p1 - p2); +} + +/* attributes */ + +__device float triangle_attribute_float(KernelGlobals *kg, const ShaderData *sd, AttributeElement elem, int offset, float *dx, float *dy) +{ + if(elem == ATTR_ELEMENT_FACE) { + if(dx) *dx = 0.0f; + if(dy) *dy = 0.0f; + + return kernel_tex_fetch(__attributes_float, offset + sd->prim); + } + else if(elem == ATTR_ELEMENT_VERTEX) { + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); + + float f0 = kernel_tex_fetch(__attributes_float, offset + __float_as_int(tri_vindex.x)); + float f1 = kernel_tex_fetch(__attributes_float, offset + __float_as_int(tri_vindex.y)); + float f2 = kernel_tex_fetch(__attributes_float, offset + __float_as_int(tri_vindex.z)); + +#ifdef __RAY_DIFFERENTIALS__ + if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; + if(dy) *dy = sd->du.dy*f0 + sd->dv.dy*f1 - (sd->du.dy + sd->dv.dy)*f2; +#endif + + return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; + } + else if(elem == ATTR_ELEMENT_CORNER) { + int tri = offset + sd->prim; + float f0 = kernel_tex_fetch(__attributes_float, tri*3 + 0); + float f1 = kernel_tex_fetch(__attributes_float, tri*3 + 1); + float f2 = kernel_tex_fetch(__attributes_float, tri*3 + 2); + +#ifdef __RAY_DIFFERENTIALS__ + if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; + if(dy) *dy = sd->du.dy*f0 + sd->dv.dy*f1 - (sd->du.dy + sd->dv.dy)*f2; +#endif + + return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; + } + else { + if(dx) *dx = 0.0f; + if(dy) *dy = 0.0f; + + return 0.0f; + } +} + +__device float3 triangle_attribute_float3(KernelGlobals *kg, const ShaderData *sd, AttributeElement elem, int offset, float3 *dx, float3 *dy) +{ + if(elem == ATTR_ELEMENT_FACE) { + if(dx) *dx = make_float3(0.0f, 0.0f, 0.0f); + if(dy) *dy = make_float3(0.0f, 0.0f, 0.0f); + + return as_float3(kernel_tex_fetch(__attributes_float3, offset + sd->prim)); + } + else if(elem == ATTR_ELEMENT_VERTEX) { + float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); + + float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.x))); + float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.y))); + float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.z))); + +#ifdef __RAY_DIFFERENTIALS__ + if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; + if(dy) *dy = sd->du.dy*f0 + sd->dv.dy*f1 - (sd->du.dy + sd->dv.dy)*f2; +#endif + + return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; + } + else if(elem == ATTR_ELEMENT_CORNER) { + int tri = offset + sd->prim; + float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 0)); + float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 1)); + float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 2)); + +#ifdef __RAY_DIFFERENTIALS__ + if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; + if(dy) *dy = sd->du.dy*f0 + sd->dv.dy*f1 - (sd->du.dy + sd->dv.dy)*f2; +#endif + + return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; + } + else { + if(dx) *dx = make_float3(0.0f, 0.0f, 0.0f); + if(dy) *dy = make_float3(0.0f, 0.0f, 0.0f); + + return make_float3(0.0f, 0.0f, 0.0f); + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h new file mode 100644 index 00000000000..8e378d2871b --- /dev/null +++ b/intern/cycles/kernel/kernel_types.h @@ -0,0 +1,374 @@ +/* + * 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_TYPES_H__ +#define __KERNEL_TYPES_H__ + +#include "kernel_math.h" + +#ifndef __KERNEL_OPENCL__ + +#include "svm_types.h" + +#endif + +CCL_NAMESPACE_BEGIN + +#define OBJECT_SIZE 16 + +#define __INSTANCING__ +#define __DPDU__ +#define __UV__ +#define __BACKGROUND__ +#define __EMISSION__ +#define __CAUSTICS_TRICKS__ +#define __SVM__ +#define __SOBOL__ +#define __TEXTURES__ +#define __RAY_DIFFERENTIALS__ +#define __CAMERA_CLIPPING__ +#define __INTERSECTION_REFINE__ +//#define __SOBOL_FULL_SCREEN__ +//#define __MODIFY_TP__ +//#define __QBVH__ + +/* Path Tracing */ + +enum PathTraceDimension { + PRNG_FILTER_U = 0, + PRNG_FILTER_V = 1, + PRNG_LENS_U = 2, + PRNG_LENS_V = 3, + PRNG_BASE_NUM = 4, + + PRNG_BSDF_U = 0, + PRNG_BSDF_V = 1, + PRNG_BSDF = 2, + PRNG_LIGHT = 3, + PRNG_LIGHT_U = 4, + PRNG_LIGHT_V = 5, + PRNG_LIGHT_F = 6, + PRNG_TERMINATE = 7, + PRNG_BOUNCE_NUM = 8 +}; + +/* these flag values correspond exactly to OSL defaults, so be careful not to + * change this, or if you do, set the "raytypes" shading system attribute with + * your own new ray types and bitflag values */ +enum PathRayFlag { + PATH_RAY_CAMERA = 1, + PATH_RAY_SHADOW = 2, + PATH_RAY_REFLECT = 4, + PATH_RAY_TRANSMIT = 8, + PATH_RAY_DIFFUSE = 16, + PATH_RAY_GLOSSY = 32, + PATH_RAY_SINGULAR = 64 +}; + +/* Bidirectional Path Tracing */ + +enum BidirTraceDimension { + BRNG_FILTER_U = 0, + BRNG_FILTER_V = 1, + BRNG_LENS_U = 2, + BRNG_LENS_V = 3, + BRNG_LIGHT_U = 4, + BRNG_LIGHT_V = 5, + BRNG_LIGHT = 6, + BRNG_LIGHT_F = 7, + BRNG_EMISSIVE_U = 8, + BRNG_EMISSIVE_V = 9, + BRNG_BASE_NUM = 10, + + BRNG_BSDF_U = 0, + BRNG_BSDF_V = 1, + BRNG_BSDF = 2, + BRNG_TERMINATE = 3, + BRNG_BOUNCE_NUM = 4 +}; + +/* Closure Label */ + +typedef enum ClosureLabel { + LABEL_NONE = 0, + LABEL_CAMERA = 1, + LABEL_LIGHT = 2, + LABEL_BACKGROUND = 4, + LABEL_TRANSMIT = 8, + LABEL_REFLECT = 16, + LABEL_VOLUME = 32, + LABEL_OBJECT = 64, + LABEL_DIFFUSE = 128, + LABEL_GLOSSY = 256, + LABEL_SINGULAR = 512, + LABEL_STRAIGHT = 1024, + LABEL_STOP = 2048 +} ClosureLabel; + +/* Ray Type */ + +typedef enum RayType { + RayTypeCamera = 1, + RayTypeShadow = 2, + RayTypeReflection = 4, + RayTypeRefraction = 8, + RayTypeDiffuse = 16, + RayTypeGlossy = 32 +} RayType; + +/* Differential */ + +typedef struct differential3 { + float3 dx; + float3 dy; +} differential3; + +typedef struct differential { + float dx; + float dy; +} differential; + +/* Ray */ + +typedef struct Ray { + float3 P; + float3 D; + float t; + +#ifdef __RAY_DIFFERENTIALS__ + differential3 dP; + differential3 dD; +#endif +} Ray; + +/* Intersection */ + +typedef struct Intersection { + float t, u, v; + int prim; + int object; +} Intersection; + +/* Attributes */ + +typedef enum AttributeElement { + ATTR_ELEMENT_FACE, + ATTR_ELEMENT_VERTEX, + ATTR_ELEMENT_CORNER, + ATTR_ELEMENT_VALUE, + ATTR_ELEMENT_NONE +} AttributeElement; + +/* OSL data */ + +#if !defined(__KERNEL_GPU__) && defined(WITH_OSL) + +#define MAX_OSL_CLOSURE 8 + +struct FlatClosure { + void *prim; + float3 weight; + float sample_weight; +}; + +#endif + +/* Shader Data + * + * Main shader state at a point on the surface or in a volume. All coordinates + * are in world space. */ + +enum ShaderDataFlag { + SD_BACKFACING = 1, /* backside of surface? */ + SD_EMISSION = 2, /* have emissive closure? */ + SD_BSDF_HAS_EVAL = 4, /* have non-singular bsdf closure? */ + SD_BSDF_GLOSSY = 8 /* have glossy bsdf */ +}; + +typedef struct ShaderData { + /* position */ + float3 P; + /* smooth normal for shading */ + float3 N; + /* true geometric normal */ + float3 Ng; + /* view/incoming direction */ + float3 I; + /* shader id */ + int shader; + /* booleans describing shader, see ShaderDataFlag */ + int flag; + + /* primitive id if there is one, ~0 otherwise */ + int prim; + /* parametric coordinates + * - barycentric weights for triangles + * - latlong coordinates for background */ + float u, v; + /* object id if there is one, ~0 otherwise */ + int object; + +#ifdef __RAY_DIFFERENTIALS__ + /* differential of P. these are orthogonal to Ng, not N */ + differential3 dP; + /* differential of I */ + differential3 dI; + /* differential of u, v */ + differential du; + differential dv; +#endif +#ifdef __DPDU__ + /* differential of P w.r.t. parametric coordinates. note that dPdu is + * not readily suitable as a tangent for shading on triangles. */ + float3 dPdu, dPdv; +#endif + + /* SVM closure data. we always sample a single closure, to get fixed + * memory usage, svm_closure_data contains closure parameters. */ +#ifndef __KERNEL_OPENCL__ + ClosureType svm_closure; +#endif + float3 svm_closure_weight; + float svm_closure_data[3]; /* CUDA gives compile error if out of bounds */ + +#if !defined(__KERNEL_GPU__) && defined(WITH_OSL) + /* OSL closure data and context. we store all closures flattened into + * lists per type, different from SVM. */ + struct { + FlatClosure bsdf[MAX_OSL_CLOSURE]; + FlatClosure emissive[MAX_OSL_CLOSURE]; + FlatClosure volume[MAX_OSL_CLOSURE]; + + int num_bsdf; + int num_emissive; + int num_volume; + + float bsdf_sample_sum; + float emissive_sample_sum; + float volume_sample_sum; + + float randb; + } osl_closure; + + void *osl_ctx; +#endif +} ShaderData; + +/* Constrant Kernel Data */ + +typedef struct KernelCamera { + /* type */ + int ortho; + int pad; + + /* size */ + int width, height; + + /* matrices */ + Transform cameratoworld; + Transform rastertocamera; + + /* depth of field */ + float lensradius; + float focaldistance; + + /* motion blur */ + float shutteropen; + float shutterclose; + + /* differentials */ + float3 dx, dy; + + /* clipping */ + float nearclip; + float cliplength; + + /* more matrices */ + Transform screentoworld; + Transform rastertoworld; + Transform ndctoworld; + Transform worldtoscreen; + Transform worldtoraster; + Transform worldtondc; + Transform worldtocamera; +} KernelCamera; + +typedef struct KernelFilm { + float exposure; + int use_response_curve; + int pad1, pad2; +} KernelFilm; + +typedef struct KernelBackground { + /* only shader index */ + int shader; + int pad1, pad2, pad3; +} KernelBackground; + +typedef struct KernelSunSky { + /* sun direction in spherical and cartesian */ + float theta, phi; + float3 dir; + float pad; + + /* perez function parameters */ + float zenith_Y, zenith_x, zenith_y; + float perez_Y[5], perez_x[5], perez_y[5]; +} KernelSunSky; + +typedef struct KernelIntegrator { + /* emission */ + int use_emission; + int num_triangles; + int num_distribution; + int num_lights; + float pdf_triangles; + float pdf_lights; + + /* path tracing */ + int minbounce; + int maxbounce; + + /* caustics */ + int no_caustics; + float blur_caustics; + + /* padding */ + int pad; +} KernelIntegrator; + +typedef struct KernelBVH { + /* root node */ + int root; + int attributes_map_stride; + int pad1, pad2; +} KernelBVH; + +typedef struct KernelData { + KernelCamera cam; + KernelFilm film; + KernelBackground background; + KernelSunSky sunsky; + KernelIntegrator integrator; + KernelBVH bvh; +} KernelData; + +CCL_NAMESPACE_END + +#endif /* __KERNEL_TYPES_H__ */ + diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt new file mode 100644 index 00000000000..3ca3fa4cd6b --- /dev/null +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -0,0 +1,33 @@ + +INCLUDE_DIRECTORIES(. ../ ../svm ../../render ../../util ../../device) + +SET(sources + background.cpp + bsdf_ashikhmin_velvet.cpp + bsdf_diffuse.cpp + bsdf_microfacet.cpp + bsdf_reflection.cpp + bsdf_refraction.cpp + bsdf_transparent.cpp + bsdf_ward.cpp + bsdf_westin.cpp + bssrdf.cpp + debug.cpp + emissive.cpp + osl_closures.cpp + osl_services.cpp + osl_shader.cpp + vol_subsurface.cpp) + +SET(headers + osl_closures.h + osl_globals.h + osl_services.h + osl_shader.h) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") + +ADD_LIBRARY(kernel_osl ${sources} ${headers}) + +ADD_SUBDIRECTORY(nodes) + diff --git a/intern/cycles/kernel/osl/background.cpp b/intern/cycles/kernel/osl/background.cpp new file mode 100644 index 00000000000..c35119ae9cf --- /dev/null +++ b/intern/cycles/kernel/osl/background.cpp @@ -0,0 +1,100 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +/// Generic background closure +/// +/// We only have a background closure for the shaders +/// to return a color in background shaders. No methods, +/// only the weight is taking into account +/// +class GenericBackgroundClosure : public BackgroundClosure { +public: + GenericBackgroundClosure() { } + + void setup() {}; + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "background"; } + + void print_on (std::ostream &out) const { + out << name() << " ()"; + } + +}; + + +/// Holdout closure +/// +/// This will be used by the shader to mark the +/// amount of holdout for the current shading +/// point. No parameters, only the weight will be +/// used +/// +class HoldoutClosure : ClosurePrimitive { +public: + HoldoutClosure () : ClosurePrimitive (Holdout) { } + + void setup() {}; + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "holdout"; } + + void print_on (std::ostream &out) const { + out << name() << " ()"; + } +}; + +ClosureParam closure_background_params[] = { + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(GenericBackgroundClosure) }; + +CLOSURE_PREPARE(closure_background_prepare, GenericBackgroundClosure) + +ClosureParam closure_holdout_params[] = { + CLOSURE_FINISH_PARAM(HoldoutClosure) }; + +CLOSURE_PREPARE(closure_holdout_prepare, HoldoutClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp b/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp new file mode 100644 index 00000000000..a38c5b55cf5 --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp @@ -0,0 +1,175 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class AshikhminVelvetClosure : public BSDFClosure { +public: + Vec3 m_N; + float m_sigma; + float m_invsigma2; + + AshikhminVelvetClosure() : BSDFClosure(Labels::DIFFUSE) { } + + void setup() + { + m_sigma = std::max(m_sigma, 0.01f); + m_invsigma2 = 1.0f/(m_sigma * m_sigma); + } + + bool mergeable (const ClosurePrimitive *other) const { + const AshikhminVelvetClosure *comp = (const AshikhminVelvetClosure *)other; + return m_N == comp->m_N && m_sigma == comp->m_sigma && + BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "ashikhmin_velvet"; } + + void print_on (std::ostream &out) const + { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_sigma; + out << ")"; + } + + 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 cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO > 0 && cosNI > 0) { + Vec3 H = omega_in + omega_out; + H.normalize(); + + float cosNH = m_N.dot(H); + float cosHO = fabsf(omega_out.dot(H)); + + float cosNHdivHO = cosNH / cosHO; + cosNHdivHO = std::max(cosNHdivHO, 0.00001f); + + 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 D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4; + float G = std::min(1.0f, std::min(fac1, fac2)); // TODO: derive G from D analytically + + float out = 0.25f * (D * G) / cosNO; + + pdf = 0.5f * (float) M_1_PI; + 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 + { + // we are viewing the surface from above - send a ray out with uniform + // distribution over the hemisphere + sample_uniform_hemisphere (m_N, omega_out, randu, randv, omega_in, pdf); + if (Ng.dot(omega_in) > 0) { + Vec3 H = omega_in + omega_out; + H.normalize(); + + float cosNI = m_N.dot(omega_in); + float cosNO = m_N.dot(omega_out); + float cosNH = m_N.dot(H); + float cosHO = fabsf(omega_out.dot(H)); + + float cosNHdivHO = cosNH / cosHO; + cosNHdivHO = std::max(cosNHdivHO, 0.00001f); + + 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 D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4; + float G = std::min(1.0f, std::min(fac1, fac2)); // TODO: derive G from D analytically + + float power = 0.25f * (D * G) / cosNO; + + 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; + } else + pdf = 0; + return Labels::REFLECT; + } + +}; + + + +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) }; + +CLOSURE_PREPARE(bsdf_ashikhmin_velvet_prepare, AshikhminVelvetClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_diffuse.cpp b/intern/cycles/kernel/osl/bsdf_diffuse.cpp new file mode 100644 index 00000000000..0d4b3fa471f --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_diffuse.cpp @@ -0,0 +1,181 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class DiffuseClosure : public BSDFClosure { +public: + Vec3 m_N; + + DiffuseClosure() : BSDFClosure(Labels::DIFFUSE) { } + + void setup() {}; + + bool mergeable (const ClosurePrimitive *other) const { + const DiffuseClosure *comp = (const DiffuseClosure *)other; + return m_N == comp->m_N && BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "diffuse"; } + + void print_on (std::ostream &out) const + { + out << name() << " ((" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "))"; + } + + 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 cos_pi = std::max(m_N.dot(omega_in),0.0f) * (float) M_1_PI; + pdf = cos_pi; + return Color3 (cos_pi, cos_pi, cos_pi); + } + + 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 + { + // we are viewing the surface from the right side - send a ray out with cosine + // distribution over the hemisphere + sample_cos_hemisphere (m_N, omega_out, randu, randv, omega_in, pdf); + if (Ng.dot(omega_in) > 0) { + eval.setValue(pdf, pdf, pdf); + // TODO: find a better approximation for the diffuse 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; + return Labels::REFLECT; + } +}; + + + +class TranslucentClosure : public BSDFClosure { +public: + Vec3 m_N; + + TranslucentClosure() : BSDFClosure(Labels::DIFFUSE, Back) { } + + void setup() {}; + + bool mergeable (const ClosurePrimitive *other) const { + const TranslucentClosure *comp = (const TranslucentClosure *)other; + return m_N == comp->m_N && BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "translucent"; } + + void print_on (std::ostream &out) const + { + out << name() << " ((" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "))"; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + return Color3 (0, 0, 0); + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + float cos_pi = std::max(-m_N.dot(omega_in), 0.0f) * (float) M_1_PI; + pdf = cos_pi; + return Color3 (cos_pi, cos_pi, cos_pi); + } + + 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 + { + // we are viewing the surface from the right side - send a ray out with cosine + // distribution over the hemisphere + sample_cos_hemisphere (-m_N, omega_out, randu, randv, omega_in, pdf); + if (Ng.dot(omega_in) < 0) { + eval.setValue(pdf, pdf, pdf); + // TODO: find a better approximation for the diffuse 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; + return Labels::TRANSMIT; + } +}; + +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) }; + +CLOSURE_PREPARE(bsdf_diffuse_prepare, DiffuseClosure) +CLOSURE_PREPARE(bsdf_translucent_prepare, TranslucentClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_microfacet.cpp b/intern/cycles/kernel/osl/bsdf_microfacet.cpp new file mode 100644 index 00000000000..d87268da81e --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_microfacet.cpp @@ -0,0 +1,533 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +#include "util_math.h" + +using namespace OSL; + +CCL_NAMESPACE_BEGIN + +// TODO: fresnel_dielectric is only used for derivatives, could be optimized + +// TODO: refactor these two classes so they share everything by the microfacet +// distribution terms + +// microfacet model with GGX facet distribution +// see http://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf +template +class MicrofacetGGXClosure : public BSDFClosure { +public: + Vec3 m_N; + float m_ag; // width parameter (roughness) + float m_eta; // index of refraction (for fresnel term) + MicrofacetGGXClosure() : BSDFClosure(Labels::GLOSSY, Refractive ? Back : Front) { m_eta = 1.0f; } + + void setup() + { + m_ag = clamp(m_ag, 1e-5f, 1.0f); + } + + bool mergeable (const ClosurePrimitive *other) const { + const MicrofacetGGXClosure *comp = (const MicrofacetGGXClosure *)other; + return m_N == comp->m_N && m_ag == comp->m_ag && + m_eta == comp->m_eta && BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { + return Refractive ? "microfacet_ggx_refraction" : "microfacet_ggx"; + } + + void print_on (std::ostream &out) const { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_ag << ", "; + out << m_eta; + out << ")"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + if (Refractive == 1) return Color3 (0, 0, 0); + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNI > 0 && cosNO > 0) { + // get half vector + Vec3 Hr = omega_in + omega_out; + Hr.normalize(); + // eq. 20: (F*G*D)/(4*in*on) + // eq. 33: first we calculate D(m) with m=Hr: + float alpha2 = m_ag * m_ag; + float cosThetaM = m_N.dot(Hr); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / ((float) M_PI * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + float out = (G * D) * 0.25f / cosNO; + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + pdf = pm * 0.25f / Hr.dot(omega_out); + return Color3 (out, out, out); + } + return Color3 (0, 0, 0); + } + + Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + if (Refractive == 0) return Color3 (0, 0, 0); + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO <= 0 || cosNI >= 0) + return Color3 (0, 0, 0); // vectors on same side -- not possible + // compute half-vector of the refraction (eq. 16) + Vec3 ht = -(m_eta * omega_in + omega_out); + Vec3 Ht = ht; Ht.normalize(); + float cosHO = Ht.dot(omega_out); + + float cosHI = Ht.dot(omega_in); + // eq. 33: first we calculate D(m) with m=Ht: + float alpha2 = m_ag * m_ag; + float cosThetaM = m_N.dot(Ht); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / ((float) M_PI * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // probability + float invHt2 = 1 / ht.dot(ht); + pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (m_eta * m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D) * invHt2) / cosNO; + return Color3 (out, out, out); + } + + 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) { + Vec3 X, Y, Z = m_N; + make_orthonormals(Z, X, Y); + // generate a random microfacet normal m + // eq. 35,36: + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + // and sin(atan(x)) == x/sqrt(1+x^2) + float alpha2 = m_ag * m_ag; + float tanThetaM2 = alpha2 * randu / (1 - randu); + float cosThetaM = 1 / sqrtf(1 + tanThetaM2); + float sinThetaM = cosThetaM * sqrtf(tanThetaM2); + float phiM = 2 * float(M_PI) * randv; + Vec3 m = (cosf(phiM) * sinThetaM) * X + + (sinf(phiM) * sinThetaM) * Y + + cosThetaM * Z; + if (Refractive == 0) { + float cosMO = m.dot(omega_out); + if (cosMO > 0) { + // eq. 39 - compute actual reflected direction + omega_in = 2 * cosMO * m - omega_out; + if (Ng.dot(omega_in) > 0) { + // microfacet normal is visible to this ray + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (float(M_PI) * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + pdf = pm * 0.25f / cosMO; + // eval BRDF*cosNI + float cosNI = m_N.dot(omega_in); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // eq. 20: (F*G*D)/(4*in*on) + float out = (G * D) * 0.25f / cosNO; + eval.setValue(out, out, out); + domega_in_dx = (2 * m.dot(domega_out_dx)) * m - domega_out_dx; + domega_in_dy = (2 * m.dot(domega_out_dy)) * m - domega_out_dy; + + /* disabled for now - gives texture filtering problems */ +#if 0 + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + domega_in_dx *= 10; + domega_in_dy *= 10; +#endif + } + } + } else { + // CAUTION: the i and o variables are inverted relative to the paper + // eq. 39 - compute actual refractive direction + Vec3 R, dRdx, dRdy; + Vec3 T, dTdx, dTdy; + bool inside; + fresnel_dielectric(m_eta, m, omega_out, domega_out_dx, domega_out_dy, + R, dRdx, dRdy, + T, dTdx, dTdy, + inside); + + if (!inside) { + omega_in = T; + domega_in_dx = dTdx; + domega_in_dy = dTdy; + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (float(M_PI) * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 24 + float pm = D * cosThetaM; + // eval BRDF*cosNI + float cosNI = m_N.dot(omega_in); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // eq. 21 + float cosHI = m.dot(omega_in); + float cosHO = m.dot(omega_out); + float Ht2 = m_eta * cosHI + cosHO; + Ht2 *= Ht2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D)) / (cosNO * Ht2); + // eq. 38 and eq. 17 + pdf = pm * (m_eta * m_eta) * fabsf(cosHI) / Ht2; + eval.setValue(out, out, out); + + /* disabled for now - gives texture filtering problems */ +#if 0 + // Since there is some blur to this refraction, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + domega_in_dx *= 10; + domega_in_dy *= 10; +#endif + } + } + } + return Refractive ? Labels::TRANSMIT : Labels::REFLECT; + } +}; + +// microfacet model with Beckmann facet distribution +// see http://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf +template +class MicrofacetBeckmannClosure : public BSDFClosure { +public: + Vec3 m_N; + float m_ab; // width parameter (roughness) + float m_eta; // index of refraction (for fresnel term) + MicrofacetBeckmannClosure() : BSDFClosure(Labels::GLOSSY, Refractive ? Back : Front) { } + + void setup() + { + m_ab = clamp(m_ab, 1e-5f, 1.0f); + } + + bool mergeable (const ClosurePrimitive *other) const { + const MicrofacetBeckmannClosure *comp = (const MicrofacetBeckmannClosure *)other; + return m_N == comp->m_N && m_ab == comp->m_ab && + m_eta == comp->m_eta && BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char * name () const { + return Refractive ? "microfacet_beckmann_refraction" + : "microfacet_beckmann"; + } + + void print_on (std::ostream &out) const + { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_ab << ", "; + out << m_eta; + out << ")"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + if (Refractive == 1) return Color3 (0, 0, 0); + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO > 0 && cosNI > 0) { + // get half vector + Vec3 Hr = omega_in + omega_out; + Hr.normalize(); + // eq. 20: (F*G*D)/(4*in*on) + // eq. 25: first we calculate D(m) with m=Hr: + float alpha2 = m_ab * m_ab; + float cosThetaM = m_N.dot(Hr); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (float(M_PI) * alpha2 * cosThetaM4); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + float out = (G * D) * 0.25f / cosNO; + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + pdf = pm * 0.25f / Hr.dot(omega_out); + return Color3 (out, out, out); + } + return Color3 (0, 0, 0); + } + + Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + if (Refractive == 0) return Color3 (0, 0, 0); + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO <= 0 || cosNI >= 0) + return Color3 (0, 0, 0); + // compute half-vector of the refraction (eq. 16) + Vec3 ht = -(m_eta * omega_in + omega_out); + Vec3 Ht = ht; Ht.normalize(); + float cosHO = Ht.dot(omega_out); + + float cosHI = Ht.dot(omega_in); + // eq. 33: first we calculate D(m) with m=Ht: + float alpha2 = m_ab * m_ab; + float cosThetaM = m_N.dot(Ht); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (float(M_PI) * alpha2 * cosThetaM4); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // probability + float invHt2 = 1 / ht.dot(ht); + pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (m_eta * m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D) * invHt2) / cosNO; + return Color3 (out, out, out); + } + + 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) { + Vec3 X, Y, Z = m_N; + make_orthonormals(Z, X, Y); + // generate a random microfacet normal m + // eq. 35,36: + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + // and sin(atan(x)) == x/sqrt(1+x^2) + float alpha2 = m_ab * m_ab; + float tanThetaM = sqrtf(-alpha2 * logf(1 - randu)); + float cosThetaM = 1 / sqrtf(1 + tanThetaM * tanThetaM); + float sinThetaM = cosThetaM * tanThetaM; + float phiM = 2 * float(M_PI) * randv; + Vec3 m = (cosf(phiM) * sinThetaM) * X + + (sinf(phiM) * sinThetaM) * Y + + cosThetaM * Z; + if (Refractive == 0) { + float cosMO = m.dot(omega_out); + if (cosMO > 0) { + // eq. 39 - compute actual reflected direction + omega_in = 2 * cosMO * m - omega_out; + if (Ng.dot(omega_in) > 0) { + // microfacet normal is visible to this ray + // eq. 25 + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = tanThetaM * tanThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (float(M_PI) * alpha2 * cosThetaM4); + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + pdf = pm * 0.25f / cosMO; + // Eval BRDF*cosNI + float cosNI = m_N.dot(omega_in); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // eq. 20: (F*G*D)/(4*in*on) + float out = (G * D) * 0.25f / cosNO; + eval.setValue(out, out, out); + domega_in_dx = (2 * m.dot(domega_out_dx)) * m - domega_out_dx; + domega_in_dy = (2 * m.dot(domega_out_dy)) * m - domega_out_dy; + + /* disabled for now - gives texture filtering problems */ +#if 0 + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + domega_in_dx *= 10; + domega_in_dy *= 10; +#endif + } + } + } else { + // CAUTION: the i and o variables are inverted relative to the paper + // eq. 39 - compute actual refractive direction + Vec3 R, dRdx, dRdy; + Vec3 T, dTdx, dTdy; + bool inside; + fresnel_dielectric(m_eta, m, omega_out, domega_out_dx, domega_out_dy, + R, dRdx, dRdy, + T, dTdx, dTdy, + inside); + if (!inside) { + omega_in = T; + domega_in_dx = dTdx; + domega_in_dy = dTdy; + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = tanThetaM * tanThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (float(M_PI) * alpha2 * cosThetaM4); + // eq. 24 + float pm = D * cosThetaM; + // eval BRDF*cosNI + float cosNI = m_N.dot(omega_in); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // eq. 21 + float cosHI = m.dot(omega_in); + float cosHO = m.dot(omega_out); + float Ht2 = m_eta * cosHI + cosHO; + Ht2 *= Ht2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D)) / (cosNO * Ht2); + // eq. 38 and eq. 17 + pdf = pm * (m_eta * m_eta) * fabsf(cosHI) / Ht2; + eval.setValue(out, out, out); + + /* disabled for now - gives texture filtering problems */ +#if 0 + // Since there is some blur to this refraction, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + domega_in_dx *= 10; + domega_in_dy *= 10; +#endif + } + } + } + return Refractive ? Labels::TRANSMIT : Labels::REFLECT; + } +}; + + + +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>) }; + +CLOSURE_PREPARE(bsdf_microfacet_ggx_prepare, MicrofacetGGXClosure<0>) +CLOSURE_PREPARE(bsdf_microfacet_ggx_refraction_prepare, MicrofacetGGXClosure<1>) +CLOSURE_PREPARE(bsdf_microfacet_beckmann_prepare, MicrofacetBeckmannClosure<0>) +CLOSURE_PREPARE(bsdf_microfacet_beckmann_refraction_prepare, MicrofacetBeckmannClosure<1>) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_reflection.cpp b/intern/cycles/kernel/osl/bsdf_reflection.cpp new file mode 100644 index 00000000000..b0caff6df44 --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_reflection.cpp @@ -0,0 +1,108 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class ReflectionClosure : public BSDFClosure { +public: + Vec3 m_N; // shading normal + ReflectionClosure() : BSDFClosure(Labels::SINGULAR) { } + + void setup() {}; + + bool mergeable (const ClosurePrimitive *other) const { + const ReflectionClosure *comp = (const ReflectionClosure *)other; + return m_N == comp->m_N && BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "reflection"; } + + void print_on (std::ostream &out) const { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "))"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + 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 + { + // only one direction is possible + float cosNO = m_N.dot(omega_out); + if (cosNO > 0) { + omega_in = (2 * cosNO) * m_N - omega_out; + if (Ng.dot(omega_in) > 0) { + 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; + pdf = 1; + eval.setValue(1, 1, 1); + } + } + return Labels::REFLECT; + } +}; + +ClosureParam bsdf_reflection_params[] = { + CLOSURE_VECTOR_PARAM(ReflectionClosure, m_N), + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(ReflectionClosure) }; + +CLOSURE_PREPARE(bsdf_reflection_prepare, ReflectionClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_refraction.cpp b/intern/cycles/kernel/osl/bsdf_refraction.cpp new file mode 100644 index 00000000000..3ae7a3811b4 --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_refraction.cpp @@ -0,0 +1,120 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class RefractionClosure : public BSDFClosure { +public: + Vec3 m_N; // shading normal + float m_eta; // ratio of indices of refraction (inside / outside) + RefractionClosure() : BSDFClosure(Labels::SINGULAR, Back) { } + + void setup() {} + + bool mergeable (const ClosurePrimitive *other) const { + const RefractionClosure *comp = (const RefractionClosure *)other; + return m_N == comp->m_N && m_eta == comp->m_eta && + BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "refraction"; } + + void print_on (std::ostream &out) const { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_eta; + out << ")"; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + return Color3 (0, 0, 0); + } + + Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + return Color3 (0, 0, 0); + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + 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 + { + Vec3 R, dRdx, dRdy; + Vec3 T, dTdx, dTdy; + bool inside; + + fresnel_dielectric(m_eta, m_N, + omega_out, domega_out_dx, domega_out_dy, + R, dRdx, dRdy, + T, dTdx, dTdy, + inside); + + if (!inside) { + pdf = 1; + eval.setValue(1.0f, 1.0f, 1.0f); + omega_in = T; + domega_in_dx = dTdx; + domega_in_dy = dTdy; + } + + return Labels::TRANSMIT; + } +}; + +ClosureParam bsdf_refraction_params[] = { + CLOSURE_VECTOR_PARAM(RefractionClosure, m_N), + CLOSURE_FLOAT_PARAM (RefractionClosure, m_eta), + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(RefractionClosure) }; + +CLOSURE_PREPARE(bsdf_refraction_prepare, RefractionClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_transparent.cpp b/intern/cycles/kernel/osl/bsdf_transparent.cpp new file mode 100644 index 00000000000..941abd6a483 --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_transparent.cpp @@ -0,0 +1,97 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class TransparentClosure : public BSDFClosure { +public: + TransparentClosure() : BSDFClosure(Labels::STRAIGHT, Back) { } + + void setup() {} + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "transparent"; } + + void print_on (std::ostream &out) const { + out << name() << " ()"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const + { + 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 + { + // only one direction is possible + omega_in = -omega_out; + domega_in_dx = -domega_out_dx; + domega_in_dy = -domega_out_dy; + pdf = 1; + eval.setValue(1, 1, 1); + return Labels::TRANSMIT; + } +}; + + + +ClosureParam bsdf_transparent_params[] = { + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(TransparentClosure) }; + +CLOSURE_PREPARE(bsdf_transparent_prepare, TransparentClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_ward.cpp b/intern/cycles/kernel/osl/bsdf_ward.cpp new file mode 100644 index 00000000000..a7742a04d13 --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_ward.cpp @@ -0,0 +1,222 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +#include "util_math.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +// anisotropic ward - leaks energy at grazing angles +// see http://www.graphics.cornell.edu/~bjw/wardnotes.pdf +class WardClosure : public BSDFClosure { +public: + Vec3 m_N; + Vec3 m_T; + float m_ax, m_ay; + WardClosure() : BSDFClosure(Labels::GLOSSY) { } + + void setup() + { + m_ax = clamp(m_ax, 1e-5f, 1.0f); + m_ay = clamp(m_ay, 1e-5f, 1.0f); + } + + bool mergeable (const ClosurePrimitive *other) const { + const WardClosure *comp = (const WardClosure *)other; + return m_N == comp->m_N && m_T == comp->m_T && + m_ax == comp->m_ax && m_ay == comp->m_ay && + BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "ward"; } + + void print_on (std::ostream &out) const { + out << name() << " (("; + out << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), ("; + out << m_T[0] << ", " << m_T[1] << ", " << m_T[2] << "), "; + out << m_ax << ", " << m_ay << ")"; + } + + 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 cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNI > 0 && cosNO > 0) { + // get half vector and get x,y basis on the surface for anisotropy + Vec3 H = omega_in + omega_out; + H.normalize(); // normalize needed for pdf + Vec3 X, Y; + make_orthonormals(m_N, m_T, X, Y); + // eq. 4 + float dotx = H.dot(X) / m_ax; + float doty = H.dot(Y) / m_ay; + float dotn = H.dot(m_N); + float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); + float denom = (4 * (float) M_PI * m_ax * m_ay * sqrtf(cosNO * cosNI)); + float exp_val = expf(-exp_arg); + float out = cosNI * exp_val / denom; + float oh = H.dot(omega_out); + denom = 4 * (float) M_PI * m_ax * m_ay * oh * dotn * dotn * dotn; + pdf = exp_val / denom; + 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) { + // get x,y basis on the surface for anisotropy + Vec3 X, Y; + make_orthonormals(m_N, m_T, X, Y); + // generate random angles for the half vector + // eq. 7 (taking care around discontinuities to keep + // output angle in the right quadrant) + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + // and sin(atan(x)) == x/sqrt(1+x^2) + float alphaRatio = m_ay / m_ax; + float cosPhi, sinPhi; + if (randu < 0.25f) { + float val = 4 * randu; + float tanPhi = alphaRatio * tanf((float) M_PI_2 * val); + cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = tanPhi * cosPhi; + } else if (randu < 0.5) { + float val = 1 - 4 * (0.5f - randu); + float tanPhi = alphaRatio * tanf((float) M_PI_2 * val); + // phi = (float) M_PI - phi; + cosPhi = -1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = -tanPhi * cosPhi; + } else if (randu < 0.75f) { + float val = 4 * (randu - 0.5f); + float tanPhi = alphaRatio * tanf((float) M_PI_2 * val); + //phi = (float) M_PI + phi; + cosPhi = -1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = tanPhi * cosPhi; + } else { + float val = 1 - 4 * (1 - randu); + float tanPhi = alphaRatio * tanf((float) M_PI_2 * val); + // phi = 2 * (float) M_PI - phi; + cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = -tanPhi * cosPhi; + } + // eq. 6 + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + // and sin(atan(x)) == x/sqrt(1+x^2) + float thetaDenom = (cosPhi * cosPhi) / (m_ax * m_ax) + (sinPhi * sinPhi) / (m_ay * m_ay); + float tanTheta2 = -logf(1 - randv) / thetaDenom; + float cosTheta = 1 / sqrtf(1 + tanTheta2); + float sinTheta = cosTheta * sqrtf(tanTheta2); + + Vec3 h; // already normalized becaused expressed from spherical coordinates + h.x = sinTheta * cosPhi; + h.y = sinTheta * sinPhi; + h.z = cosTheta; + // compute terms that are easier in local space + float dotx = h.x / m_ax; + float doty = h.y / m_ay; + float dotn = h.z; + // transform to world space + h = h.x * X + h.y * Y + h.z * m_N; + // generate the final sample + float oh = h.dot(omega_out); + omega_in.x = 2 * oh * h.x - omega_out.x; + omega_in.y = 2 * oh * h.y - omega_out.y; + omega_in.z = 2 * oh * h.z - omega_out.z; + if (Ng.dot(omega_in) > 0) { + float cosNI = m_N.dot(omega_in); + if (cosNI > 0) { + // eq. 9 + float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); + float denom = 4 * (float) M_PI * m_ax * m_ay * oh * dotn * dotn * dotn; + pdf = expf(-exp_arg) / denom; + // compiler will reuse expressions already computed + denom = (4 * (float) M_PI * m_ax * m_ay * sqrtf(cosNO * cosNI)); + float power = cosNI * expf(-exp_arg) / denom; + eval.setValue(power, power, power); + 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; + + /* disabled for now - gives texture filtering problems */ +#if 0 + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + domega_in_dx *= 10; + domega_in_dy *= 10; +#endif + } + } + } + return Labels::REFLECT; + } +}; + + + +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) }; + +CLOSURE_PREPARE(bsdf_ward_prepare, WardClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bsdf_westin.cpp b/intern/cycles/kernel/osl/bsdf_westin.cpp new file mode 100644 index 00000000000..d322f6a7f7e --- /dev/null +++ b/intern/cycles/kernel/osl/bsdf_westin.cpp @@ -0,0 +1,239 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +#include "util_math.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class WestinBackscatterClosure : public BSDFClosure { +public: + Vec3 m_N; + float m_roughness; + float m_invroughness; + WestinBackscatterClosure() : BSDFClosure(Labels::GLOSSY) { } + + void setup() + { + m_roughness = clamp(m_roughness, 1e-5f, 1.0f); + m_invroughness = m_roughness > 0 ? 1 / m_roughness : 0; + } + + bool mergeable (const ClosurePrimitive *other) const { + const WestinBackscatterClosure *comp = (const WestinBackscatterClosure *)other; + return m_N == comp->m_N && m_roughness == comp->m_roughness && + BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "westin_backscatter"; } + + void print_on (std::ostream &out) const + { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_roughness; + out << ")"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float &pdf) const + { + // pdf is implicitly 0 (no indirect sampling) + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO > 0 && cosNI > 0) { + float cosine = omega_out.dot(omega_in); + pdf = cosine > 0 ? (m_invroughness + 1) * powf(cosine, m_invroughness) : 0; + pdf *= 0.5f * float(M_1_PI); + return Color3 (pdf, pdf, pdf); + } + 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) { + domega_in_dx = domega_out_dx; + domega_in_dy = domega_out_dy; + Vec3 T, B; + make_orthonormals (omega_out, T, B); + float phi = 2 * (float) M_PI * randu; + float cosTheta = powf(randv, 1 / (m_invroughness + 1)); + float sinTheta2 = 1 - cosTheta * cosTheta; + float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0; + omega_in = (cosf(phi) * sinTheta) * T + + (sinf(phi) * sinTheta) * B + + ( cosTheta) * omega_out; + 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) + { + pdf = 0.5f * (float) M_1_PI * powf(cosTheta, m_invroughness); + pdf = (m_invroughness + 1) * pdf; + eval.setValue(pdf, pdf, pdf); + // 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 WestinSheenClosure : public BSDFClosure { +public: + Vec3 m_N; + float m_edginess; +// float m_normalization; + WestinSheenClosure() : BSDFClosure(Labels::DIFFUSE) { } + + void setup() {}; + + bool mergeable (const ClosurePrimitive *other) const { + const WestinSheenClosure *comp = (const WestinSheenClosure *)other; + return m_N == comp->m_N && m_edginess == comp->m_edginess && + BSDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "westin_sheen"; } + + void print_on (std::ostream &out) const + { + out << name() << " ("; + out << "(" << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), "; + out << m_edginess; + out << ")"; + } + + float albedo (const Vec3 &omega_out) const + { + return 1.0f; + } + + Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float &pdf) const + { + // pdf is implicitly 0 (no indirect sampling) + float cosNO = m_N.dot(omega_out); + float cosNI = m_N.dot(omega_in); + if (cosNO > 0 && cosNI > 0) { + float sinNO2 = 1 - cosNO * cosNO; + pdf = cosNI * float(M_1_PI); + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * m_edginess) * pdf : 0; + return Color3 (westin, westin, westin); + } + 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 + { + // we are viewing the surface from the right side - send a ray out with cosine + // distribution over the hemisphere + sample_cos_hemisphere (m_N, omega_out, randu, randv, omega_in, pdf); + if (Ng.dot(omega_in) > 0) { + // TODO: account for sheen when sampling + float cosNO = m_N.dot(omega_out); + float sinNO2 = 1 - cosNO * cosNO; + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * m_edginess) * pdf : 0; + eval.setValue(westin, westin, westin); + // TODO: find a better approximation for the diffuse 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; + return Labels::REFLECT; + } +}; + + + +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) }; + +CLOSURE_PREPARE(bsdf_westin_backscatter_prepare, WestinBackscatterClosure) +CLOSURE_PREPARE(bsdf_westin_sheen_prepare, WestinSheenClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/bssrdf.cpp b/intern/cycles/kernel/osl/bssrdf.cpp new file mode 100644 index 00000000000..66d7818e677 --- /dev/null +++ b/intern/cycles/kernel/osl/bssrdf.cpp @@ -0,0 +1,105 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +class BSSRDFCubicClosure : public BSSRDFClosure { +public: + Color3 m_radius; + Color3 m_scale; + float m_max_radius; + + template + static inline T pow3 (const T &x) { return x * x * x; } + + template + static inline T pow5 (const T &x) { T x2 = x * x; return x2 * x2 * x; } + + BSSRDFCubicClosure() { } + + void setup() + { + // pre-compute some terms + m_max_radius = 0; + for (int i = 0; i < 3; i++) { + m_scale[i] = m_radius[i] > 0 ? 4 / pow5 (m_radius[i]) : 0; + m_max_radius = std::max (m_max_radius, m_radius[i]); + } + } + + bool mergeable (const ClosurePrimitive *other) const { + const BSSRDFCubicClosure *comp = (const BSSRDFCubicClosure *)other; + return m_radius == comp->m_radius && BSSRDFClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "bssrdf_cubic"; } + + void print_on (std::ostream &out) const + { + out << name() << " ((" << m_radius[0] << ", " << m_radius[1] << ", " << m_radius[2] << "), (" + << m_scale[0] << ", " << m_scale[1] << ", " << m_scale[2] << "))"; + } + + Color3 eval (float r) const + { + return Color3 ((r < m_radius.x) ? pow3 (m_radius.x - r) * m_scale.x : 0, + (r < m_radius.y) ? pow3 (m_radius.y - r) * m_scale.y : 0, + (r < m_radius.z) ? pow3 (m_radius.z - r) * m_scale.z : 0); + } + + float max_radius() const + { + return m_max_radius; + } +}; + + + +ClosureParam closure_bssrdf_cubic_params[] = { + CLOSURE_COLOR_PARAM (BSSRDFCubicClosure, m_radius), + CLOSURE_STRING_KEYPARAM ("label"), + CLOSURE_FINISH_PARAM(BSSRDFCubicClosure) }; + +CLOSURE_PREPARE(closure_bssrdf_cubic_prepare, BSSRDFCubicClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/debug.cpp b/intern/cycles/kernel/osl/debug.cpp new file mode 100644 index 00000000000..8c3f8b2b323 --- /dev/null +++ b/intern/cycles/kernel/osl/debug.cpp @@ -0,0 +1,80 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +/// Debug closure +/// +/// This is going to be used for mask AOV's and similar +/// purposes. A tag (string) is always associated with +/// this closure, that "selects: the channel where the +/// weight should be sent. + +class DebugClosure : public ClosurePrimitive { +public: + ustring m_tag; + + DebugClosure () : ClosurePrimitive (Debug) { } + + bool mergeable (const ClosurePrimitive *other) const { + const DebugClosure *comp = (const DebugClosure *)other; + return m_tag == comp->m_tag && + ClosurePrimitive::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "debug"; } + + void print_on (std::ostream &out) const { + out << name() << " (\"" << m_tag.c_str() << "\")"; + } + +}; + +ClosureParam closure_debug_params[] = { + CLOSURE_STRING_PARAM(DebugClosure, m_tag), + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(DebugClosure) }; + +CLOSURE_PREPARE(closure_debug_prepare, DebugClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/emissive.cpp b/intern/cycles/kernel/osl/emissive.cpp new file mode 100644 index 00000000000..28d3c73e59b --- /dev/null +++ b/intern/cycles/kernel/osl/emissive.cpp @@ -0,0 +1,107 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +/// Variable cone emissive closure +/// +/// This primitive emits in a cone having a configurable +/// penumbra area where the light decays to 0 reaching the +/// outer_angle limit. It can also behave as a lambertian emitter +/// if the provided angles are PI/2, which is the default +/// +class GenericEmissiveClosure : public EmissiveClosure { +public: + GenericEmissiveClosure() { } + + void setup() { } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "emission"; } + + void print_on (std::ostream &out) const { + out << name() << "()"; + } + + Color3 eval (const Vec3 &Ng, const Vec3 &omega_out) const + { + float cosNO = fabsf(Ng.dot(omega_out)); + float res = cosNO > 0 ? 1.0f / float(M_PI) : 0.0f; + return Color3(res, res, res); + } + + void sample (const Vec3 &Ng, float randu, float randv, + Vec3 &omega_out, float &pdf) const + { + // We don't do anything sophisticated here for the step + // We just sample the whole cone uniformly to the cosine + Vec3 T, B; + make_orthonormals(Ng, T, B); + float phi = 2 * (float) M_PI * randu; + float cosTheta = sqrtf(1.0f - 1.0f * randv); + float sinTheta = sqrtf(1.0f - cosTheta * cosTheta); + omega_out = (cosf(phi) * sinTheta) * T + + (sinf(phi) * sinTheta) * B + + cosTheta * Ng; + pdf = 1.0f / float(M_PI); + } + + /// Return the probability distribution function in the direction omega_out, + /// given the parameters and the light's surface normal. This MUST match + /// the PDF computed by sample(). + float pdf (const Vec3 &Ng, + const Vec3 &omega_out) const + { + float cosNO = Ng.dot(omega_out); + return cosNO > 0 ? 1.0f / float(M_PI) : 0.0f; + } +}; + + + +ClosureParam closure_emission_params[] = { + CLOSURE_STRING_KEYPARAM("label"), + CLOSURE_FINISH_PARAM(GenericEmissiveClosure) }; + +CLOSURE_PREPARE(closure_emission_prepare, GenericEmissiveClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt new file mode 100644 index 00000000000..435acc5f680 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -0,0 +1,69 @@ + +# OSL node shaders + +SET(osl_sources + node_add_closure.osl + node_attribute.osl + node_background.osl + node_blend_texture.osl + node_bump.osl + node_clouds_texture.osl + node_convert_from_color.osl + node_convert_from_float.osl + node_convert_from_normal.osl + node_convert_from_point.osl + node_convert_from_vector.osl + node_diffuse_bsdf.osl + node_distorted_noise_texture.osl + node_emission.osl + node_environment_texture.osl + node_fresnel.osl + node_geometry.osl + node_glass_bsdf.osl + node_glossy_bsdf.osl + node_image_texture.osl + node_light_path.osl + node_magic_texture.osl + node_mapping.osl + node_marble_texture.osl + node_math.osl + node_mix.osl + node_mix_closure.osl + node_musgrave_texture.osl + node_noise_texture.osl + node_output_displacement.osl + node_output_surface.osl + node_output_volume.osl + node_sky_texture.osl + node_stucci_texture.osl + node_texture_coordinate.osl + node_translucent_bsdf.osl + node_transparent_bsdf.osl + node_value.osl + node_vector_math.osl + node_velvet_bsdf.osl + node_voronoi_texture.osl + node_ward_bsdf.osl + node_wood_texture.osl) + +SET(osl_headers + node_texture.h + stdosl.h) + +SET(oso_sources) + +FOREACH(_file ${osl_sources}) + SET(osl_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) + STRING(REPLACE ".osl" ".oso" oso_file ${osl_file}) + STRING(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} oso_file ${oso_file}) + ADD_CUSTOM_COMMAND( + OUTPUT ${oso_file} + COMMAND ${OSL_COMPILER} -O2 ${osl_file} + DEPENDS ${osl_file} ${osl_headers}) + LIST(APPEND oso_sources ${oso_file}) +ENDFOREACH() + +ADD_CUSTOM_TARGET(shader ALL DEPENDS ${oso_sources} ${osl_headers}) + +INSTALL(FILES ${oso_sources} DESTINATION ${INSTALL_PATH}/cycles/shader) + diff --git a/intern/cycles/kernel/osl/nodes/node_add_closure.osl b/intern/cycles/kernel/osl/nodes/node_add_closure.osl new file mode 100644 index 00000000000..ecf6bf5912e --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_add_closure.osl @@ -0,0 +1,28 @@ +/* + * 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_add_closure( + closure color Closure1 = background(), + closure color Closure2 = background(), + output closure color Closure = background()) +{ + Closure = Closure1 + Closure2; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_attribute.osl b/intern/cycles/kernel/osl/nodes/node_attribute.osl new file mode 100644 index 00000000000..d273d0c68d7 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_attribute.osl @@ -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. + */ + +#include "stdosl.h" + +shader node_attribute( + string bump_offset = "center", + string name = "", + output point Vector = point(0.0, 0.0, 0.0), + output color Color = color(0.0, 0.0, 0.0), + output float Fac = 0.0) +{ + getattribute(name, Color); + Vector = point(Color); + getattribute(name, Fac); + + if(bump_offset == "dx") { + Color += Dx(Color); + Vector += Dx(Vector); + Fac += Dx(Fac); + } + else if(bump_offset == "dy") { + Color += Dy(Color); + Vector += Dy(Vector); + Fac += Dy(Fac); + } +} + diff --git a/intern/cycles/kernel/osl/nodes/node_background.osl b/intern/cycles/kernel/osl/nodes/node_background.osl new file mode 100644 index 00000000000..69f8d85a82e --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_background.osl @@ -0,0 +1,28 @@ +/* + * 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_background( + color Color = color(0.8, 0.8, 0.8), + float Strength = 1.0, + output closure color Background = background()) +{ + Background = Color*Strength*background(); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_blend_texture.osl b/intern/cycles/kernel/osl/nodes/node_blend_texture.osl new file mode 100644 index 00000000000..de1bdaca90b --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_blend_texture.osl @@ -0,0 +1,78 @@ +/* + * 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 "node_texture.h" + +/* Blend */ + +float blend(point p, string progression, string axis) +{ + float x, y; + + if(axis == "Vertical") { + x= p[1]; + y= p[0]; + } + else { + x= p[0]; + y= p[1]; + } + + float result = 0.0; + + if(progression == "Linear") { + result = (1.0 + x)/2.0; + } + else if(progression == "Quadratic") { + float r = max((1.0 + x)/2.0, 0.0); + result = r*r; + } + else if(progression == "Easing") { + float r = min(max((1.0 + x)/2.0, 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(progression == "Radial") { + result = atan2(y, x)/(2*M_PI) + 0.5; + } + else { + float r = max(1.0 - sqrt(x*x + y*y + p[2]*p[2]), 0.0); + + if(progression == "Quadratic Sphere") + result = r*r; + else if(progression == "Spherical") + result = r; + } + + return result; +} + +shader node_blend_texture( + string Progression = "Linear", + string Axis = "Horizontal", + point Vector = P, + output float Fac = 0.0) +{ + Fac = blend(Vector, Progression, Axis); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_bump.osl b/intern/cycles/kernel/osl/nodes/node_bump.osl new file mode 100644 index 00000000000..a3849e70f98 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_bump.osl @@ -0,0 +1,46 @@ +/* + * 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" + +/* "Bump Mapping Unparametrized Surfaces on the GPU" + * Morten S. Mikkelsen, 2010 */ + +surface node_bump( + float SampleCenter = 0.0, + float SampleX = 0.0, + float SampleY = 0.0, + output normal Normal = N) +{ + float dx = SampleX - SampleCenter; + float dy = SampleY - SampleCenter; + + vector dPdx = Dx(P); + vector dPdy = Dy(P); + + vector Rx = cross(dPdy, N); + vector Ry = cross(N, dPdx); + + float det = dot(dPdx, Rx); + vector surfgrad = dx*Rx + dy*Ry; + + surfgrad *= 0.1; /* todo: remove this factor */ + + Normal = normalize(abs(det)*N - sign(det)*surfgrad); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_clouds_texture.osl b/intern/cycles/kernel/osl/nodes/node_clouds_texture.osl new file mode 100644 index 00000000000..6d244d81e27 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_clouds_texture.osl @@ -0,0 +1,42 @@ +/* + * 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 "node_texture.h" + +/* Turbulence */ + +shader node_clouds_texture( + string Basis = "Perlin", + int Hard = 0, + int Depth = 2, + float Size = 0.25, + point Vector = P, + output float Fac = 0.0, + output color Color = color(0.0, 0.0, 0.0)) +{ + float size = nonzero(Size, 1e-5); + point p = Vector/size; + + Fac = noise_turbulence(p, Basis, Depth, Hard); + + Color[0] = Fac; + Color[1] = noise_turbulence(point(p[1], p[0], p[2]), Basis, Depth, Hard); + Color[2] = noise_turbulence(point(p[1], p[2], p[0]), Basis, Depth, Hard); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_color.osl b/intern/cycles/kernel/osl/nodes/node_convert_from_color.osl new file mode 100644 index 00000000000..97356139c48 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_convert_from_color.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_convert_from_color( + color Color = color(0.0, 0.0, 0.0), + output float Val = 0.0, + output vector Vector = vector(0.0, 0.0, 0.0), + output point Point = point(0.0, 0.0, 0.0), + output normal Normal = normal(0.0, 0.0, 0.0)) +{ + Val = Color[0]*0.2126 + Color[1]*0.7152 + Color[2]*0.0722; + Vector = vector(Color[0], Color[1], Color[2]); + Point = point(Color[0], Color[1], Color[2]); + Normal = normal(Color[0], Color[1], Color[2]); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_float.osl b/intern/cycles/kernel/osl/nodes/node_convert_from_float.osl new file mode 100644 index 00000000000..00e78f3bab4 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_convert_from_float.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_convert_from_float( + float Val = 0.0, + output color Color = color(0.0, 0.0, 0.0), + output vector Vector = vector(0.0, 0.0, 0.0), + output point Point = point(0.0, 0.0, 0.0), + output normal Normal = normal(0.0, 0.0, 0.0)) +{ + Color = color(Val, Val, Val); + Vector = vector(Val, Val, Val); + Point = point(Val, Val, Val); + Normal = normal(Val, Val, Val); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl b/intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl new file mode 100644 index 00000000000..0bb9092591d --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_convert_from_normal.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_convert_from_normal( + normal Normal = normal(0.0, 0.0, 0.0), + output float Val = 0.0, + output vector Vector = vector(0.0, 0.0, 0.0), + output color Color = color(0.0, 0.0, 0.0), + output point Point = point(0.0, 0.0, 0.0)) +{ + Val = (Normal[0] + Normal[1] + Normal[2])*(1.0/3.0); + Vector = vector(Normal[0], Normal[1], Normal[2]); + Color = color(Normal[0], Normal[1], Normal[2]); + Point = point(Normal[0], Normal[1], Normal[2]); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_point.osl b/intern/cycles/kernel/osl/nodes/node_convert_from_point.osl new file mode 100644 index 00000000000..e66d6a864d6 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_convert_from_point.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_convert_from_point( + point Point = point(0.0, 0.0, 0.0), + output float Val = 0.0, + output vector Vector = vector(0.0, 0.0, 0.0), + output color Color = color(0.0, 0.0, 0.0), + output normal Normal = normal(0.0, 0.0, 0.0)) +{ + Val = (Point[0] + Point[1] + Point[2])*(1.0/3.0); + Vector = vector(Point[0], Point[1], Point[2]); + Color = color(Point[0], Point[1], Point[2]); + Normal = normal(Point[0], Point[1], Point[2]); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl b/intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl new file mode 100644 index 00000000000..37ba9582cad --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_convert_from_vector.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_convert_from_vector( + vector Vector = vector(0.0, 0.0, 0.0), + output float Val = 0.0, + output color Color = color(0.0, 0.0, 0.0), + output point Point = point(0.0, 0.0, 0.0), + output normal Normal = normal(0.0, 0.0, 0.0)) +{ + Val = (Vector[0] + Vector[1] + Vector[2])*(1.0/3.0); + Color = color(Vector[0], Vector[1], Vector[2]); + Point = point(Vector[0], Vector[1], Vector[2]); + Normal = normal(Vector[0], Vector[1], Vector[2]); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl new file mode 100644 index 00000000000..8cf161c17cc --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl @@ -0,0 +1,28 @@ +/* + * 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_diffuse_bsdf( + color Color = color(0.8, 0.8, 0.8), + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + BSDF = Color*diffuse(Normal); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_distorted_noise_texture.osl b/intern/cycles/kernel/osl/nodes/node_distorted_noise_texture.osl new file mode 100644 index 00000000000..bb338c4ef0f --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_distorted_noise_texture.osl @@ -0,0 +1,46 @@ +/* + * 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 "node_texture.h" + +/* Distorted Noise (variable lacunarity noise) */ + +float noise_distorted(point p, string basis, string distortion_basis, float distortion) +{ + point r; + + 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; + + return noise_basis(p + r, distortion_basis); /* distorted-domain noise */ +} + +shader node_distorted_noise_texture( + string Basis = "Perlin", + string DistortionBasis = "Perlin", + float Distortion = 1.0, + float Size = 0.25, + point Vector = P, + output float Fac = 0.0) +{ + float size = nonzero(Size, 1e-5); + Fac = noise_distorted(Vector/size, Basis, DistortionBasis, Distortion); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_emission.osl b/intern/cycles/kernel/osl/nodes/node_emission.osl new file mode 100644 index 00000000000..8bfd1af173a --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_emission.osl @@ -0,0 +1,32 @@ +/* + * 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_emission( + int TotalPower = 0, + color Color = color(0.8, 0.8, 0.8), + float Strength = 1.0, + output closure color Emission = emission()) +{ + if(TotalPower) + Emission = ((Strength/surfacearea())*Color)*emission(); + else + Emission = (Strength*Color)*emission(); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl new file mode 100644 index 00000000000..569b22d53ec --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl @@ -0,0 +1,28 @@ +/* + * 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_environment_texture( + vector Vector = P, + string filename = "", + output color Color = color(0.0, 0.0, 0.0)) +{ + Color = (color)environment(filename, Vector); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_fresnel.h b/intern/cycles/kernel/osl/nodes/node_fresnel.h new file mode 100644 index 00000000000..0c8a5276ede --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_fresnel.h @@ -0,0 +1,21 @@ + +float fresnel_dielectric(vector Incoming, normal Normal, float eta) +{ + /* compute fresnel reflectance without explicitly computing + the refracted direction */ + float c = fabs(dot(Incoming, Normal)); + float g = eta * eta - 1 + c * c; + float result; + + if(g > 0) { + g = sqrt(g); + float A =(g - c)/(g + c); + float B =(c *(g + c)- 1)/(c *(g - c)+ 1); + result = 0.5 * A * A *(1 + B * B); + } + else + result = 1.0; /* TIR (no refracted component) */ + + return result; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_fresnel.osl b/intern/cycles/kernel/osl/nodes/node_fresnel.osl new file mode 100644 index 00000000000..ddc86db130f --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_fresnel.osl @@ -0,0 +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. + */ + +#include "stdosl.h" +#include "node_fresnel.h" + +shader node_fresnel( + float Fresnel = 0.3, + normal Normal = N, + output float Fac = 0.0) +{ + float f = max(1.0 - Fresnel, 0.00001); + Fac = fresnel_dielectric(I, Normal, backfacing()? f: 1.0/f); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_geometry.osl b/intern/cycles/kernel/osl/nodes/node_geometry.osl new file mode 100644 index 00000000000..bf76e2e597a --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_geometry.osl @@ -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. + */ + +#include "stdosl.h" + +shader node_geometry( + normal NormalIn = N, + string bump_offset = "center", + + output point Position = point(0.0, 0.0, 0.0), + output normal Normal = normal(0.0, 0.0, 0.0), + output normal Tangent = normal(0.0, 0.0, 0.0), + output normal TrueNormal = normal(0.0, 0.0, 0.0), + output vector Incoming = vector(0.0, 0.0, 0.0), + output point UV = point(0.0, 0.0, 0.0), + output float Backfacing = 0.0) +{ + Position = P; + Normal = NormalIn; + Tangent = normalize(dPdu); + TrueNormal = Ng; + Incoming = I; + UV = point(u, v, 0.0); + Backfacing = backfacing(); + + if(bump_offset == "dx") { + Position += Dx(Position); + UV += Dx(UV); + } + else if(bump_offset == "dy") { + Position += Dy(Position); + UV += Dy(UV); + } +} + diff --git a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl new file mode 100644 index 00000000000..af946048011 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl @@ -0,0 +1,41 @@ +/* + * 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 "node_fresnel.h" + +shader node_glass_bsdf( + color Color = color(0.8, 0.8, 0.8), + string distribution = "Sharp", + float Roughness = 0.2, + float Fresnel = 0.3, + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + float f = clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); + float eta = backfacing()? f: 1.0/f; + float Fr = fresnel_dielectric(I, Normal, eta); + + 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)); + else if(distribution == "GGX") + BSDF = Color*(Fr*microfacet_ggx(Normal, Roughness) + (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 new file mode 100644 index 00000000000..ca6bee74b38 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl @@ -0,0 +1,45 @@ +/* + * 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 "node_fresnel.h" + +shader node_glossy_bsdf( + color Color = color(0.8, 0.8, 0.8), + string distribution = "Beckmann", + float Roughness = 0.2, + float Fresnel = 1.0, + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + float Fr = 1.0; + + if(Fresnel < 1.0) { + float eta = 1.0/clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); + Fr = fresnel_dielectric(I, Normal, eta); + } + + if(distribution == "Sharp") + BSDF = (Fr*Color)*reflection(Normal); + else if(distribution == "Beckmann") + BSDF = (Fr*Color)*microfacet_beckmann(Normal, Roughness); + else if(distribution == "GGX") + BSDF = (Fr*Color)*microfacet_ggx(Normal, Roughness); + +} + diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/osl/nodes/node_image_texture.osl new file mode 100644 index 00000000000..0dbcc122deb --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_image_texture.osl @@ -0,0 +1,28 @@ +/* + * 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_image_texture( + point Vector = P, + string filename = "", + output color Color = color(0.0, 0.0, 0.0)) +{ + Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic"); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_light_path.osl b/intern/cycles/kernel/osl/nodes/node_light_path.osl new file mode 100644 index 00000000000..081640428ab --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_light_path.osl @@ -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. + */ + +#include "stdosl.h" + +shader node_light_path( + output float IsCameraRay = 0.0, + output float IsShadowRay = 0.0, + output float IsDiffuseRay = 0.0, + output float IsGlossyRay = 0.0, + output float IsReflectionRay = 0.0, + output float IsTransmissionRay = 0.0) +{ + IsCameraRay = raytype("camera"); + IsShadowRay = raytype("shadow"); + IsDiffuseRay = raytype("diffuse"); + IsGlossyRay = raytype("glossy"); + IsReflectionRay = raytype("reflection"); + IsTransmissionRay = raytype("refraction"); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_magic_texture.osl b/intern/cycles/kernel/osl/nodes/node_magic_texture.osl new file mode 100644 index 00000000000..0b6e980debc --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_magic_texture.osl @@ -0,0 +1,103 @@ +/* + * 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 "node_texture.h" + +/* Magic */ + +color magic(point p, int n, float turbulence) +{ + float turb = turbulence/5.0; + + 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; + y = -cos(x-y+z); + y *= turb; + + if(n > 1) { + x= cos(x-y-z); + x *= turb; + + if(n > 2) { + z= sin(-x-y-z); + z *= turb; + + if(n > 3) { + x= -cos(-x+y-z); + x *= turb; + + if(n > 4) { + y= -sin(-x+y+z); + y *= turb; + + if(n > 5) { + y= -cos(-x+y+z); + y *= turb; + + if(n > 6) { + x= cos(x+y+z); + x *= turb; + + if(n > 7) { + z= sin(x+y-z); + z *= turb; + + if(n > 8) { + x= -cos(-x-y+z); + x *= turb; + + if(n > 9) { + y= -sin(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0) { + turb *= 2.0; + x /= turb; + y /= turb; + z /= turb; + } + + return color(0.5 - x, 0.5 - y, 0.5 - z); +} + +shader node_magic_texture( + int Depth = 2, + float Turbulence = 5.0, + point Vector = P, + output color Color = color(0.0, 0.0, 0.0)) +{ + Color = magic(Vector, Depth, Turbulence); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_mapping.osl b/intern/cycles/kernel/osl/nodes/node_mapping.osl new file mode 100644 index 00000000000..f342837d3c9 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_mapping.osl @@ -0,0 +1,28 @@ +/* + * 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_mapping( + matrix Matrix = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), + point Vector = point(0.0, 0.0, 0.0), + output point Vector_ = point(0.0, 0.0, 0.0)) +{ + Vector_ = transform(Matrix, Vector); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_marble_texture.osl b/intern/cycles/kernel/osl/nodes/node_marble_texture.osl new file mode 100644 index 00000000000..9e18dee3235 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_marble_texture.osl @@ -0,0 +1,58 @@ +/* + * 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 "node_texture.h" + +/* Marble */ + +float marble(point p, float size, string type, string wave, string basis, int hard, float turb, int depth) +{ + float x = p[0]; + float y = p[1]; + float z = p[2]; + + float n = 5.0 * (x + y + z); + + float mi = n + turb * noise_turbulence(p/size, basis, depth, hard); + + mi = noise_wave(wave, mi); + + if(type == "Sharp") + mi = sqrt(mi); + else if(type == "Sharper") + mi = sqrt(sqrt(mi)); + + return mi; +} + +shader node_marble_texture( + string Type = "Soft", + string Wave = "Sine", + string Basis = "Perlin", + int Hard = 0, + float Size = 0.25, + float Turbulence = 5.0, + int Depth = 2, + point Vector = P, + output float Fac = 0.0) +{ + float size = nonzero(Size, 1e-5); + Fac = marble(Vector, size, Type, Wave, Basis, Hard, Turbulence, Depth); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_math.osl b/intern/cycles/kernel/osl/nodes/node_math.osl new file mode 100644 index 00000000000..be9bb71d511 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_math.osl @@ -0,0 +1,84 @@ +/* + * 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" + +float safe_divide(float a, float b) +{ + float result; + + if(b == 0.0) + result = 0.0; + else + result = a/b; + + return result; +} + +float safe_log(float a, float b) +{ + if(a < 0.0 || b < 0.0) + return 0.0; + + return log(a)/log(b); +} + +shader node_math( + string type = "Add", + float Value1 = 0.0, + float Value2 = 0.0, + output float Value = 0.0) +{ + /* OSL asin, acos, pow check for values that could give rise to nan */ + + if(type == "Add") + Value = Value1 + Value2; + if(type == "Subtract") + Value = Value1 - Value2; + if(type == "Multiply") + Value = Value1*Value2; + if(type == "Divide") + Value = safe_divide(Value1, Value2); + if(type == "Sine") + Value = sin(Value1); + if(type == "Cosine") + Value = cos(Value1); + if(type == "Tangent") + Value = tan(Value1); + if(type == "Arcsine") + Value = asin(Value1); + if(type == "Arccosine") + Value = acos(Value1); + if(type == "Arctangent") + Value = atan(Value1); + if(type == "Power") + Value = pow(Value1, Value2); + if(type == "Logarithm") + Value = safe_log(Value1, Value2); + if(type == "Minimum") + Value = min(Value1, Value2); + if(type == "Maximum") + Value = max(Value1, Value2); + if(type == "Round") + Value = floor(Value1 + 0.5); + if(type == "Less Than") + Value = Value1 < Value2; + if(type == "Greater Than") + Value = Value1 > Value2; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_mix.osl b/intern/cycles/kernel/osl/nodes/node_mix.osl new file mode 100644 index 00000000000..582aa7b3c60 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_mix.osl @@ -0,0 +1,388 @@ +/* + * 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" + +color rgb_to_hsv(color rgb) +{ + float cmax, cmin, h, s, v, cdelta; + color c; + + cmax = max(rgb[0], max(rgb[1], rgb[2])); + cmin = min(rgb[0], min(rgb[1], rgb[2])); + cdelta = cmax - cmin; + + v = cmax; + + if(cmax != 0.0) { + s = cdelta/cmax; + } + else { + s = 0.0; + h = 0.0; + } + + if(s == 0.0) { + h = 0.0; + } + else { + c = (color(cmax, cmax, cmax) - rgb)/cdelta; + + if(rgb[0] == cmax) h = c[2] - c[1]; + else if(rgb[1] == cmax) h = 2.0 + c[0] - c[2]; + else h = 4.0 + c[1] - c[0]; + + h /= 6.0; + + if(h < 0.0) + h += 1.0; + } + + return color(h, s, v); +} + +color hsv_to_rgb(color hsv) +{ + float i, f, p, q, t, h, s, v; + color rgb; + + h = hsv[0]; + s = hsv[1]; + v = hsv[2]; + + if(s==0.0) { + rgb = color(v, v, v); + } + else { + if(h==1.0) + h = 0.0; + + h *= 6.0; + i = floor(h); + f = h - i; + rgb = color(f, f, f); + p = v*(1.0-s); + q = v*(1.0-(s*f)); + t = v*(1.0-(s*(1.0-f))); + + if(i == 0.0) rgb = color(v, t, p); + else if(i == 1.0) rgb = color(q, v, p); + else if(i == 2.0) rgb = color(p, v, t); + else if(i == 3.0) rgb = color(p, q, v); + else if(i == 4.0) rgb = color(t, p, v); + else rgb = color(v, p, q); + } + + return rgb; +} + +color node_mix_blend(float t, color col1, color col2) +{ + return mix(col1, col2, t); +} + +color node_mix_add(float t, color col1, color col2) +{ + return mix(col1, col1 + col2, t); +} + +color node_mix_mul(float t, color col1, color col2) +{ + return mix(col1, col1 * col2, t); +} + +color node_mix_screen(float t, color col1, color col2) +{ + float tm = 1.0 - t; + + return color(1.0) - (color(tm) + t*(color(1.0) - col2))*(color(1.0) - col1); +} + +color node_mix_overlay(float t, color col1, color col2) +{ + float tm = 1.0 - t; + + color outcol = col1; + + if(outcol[0] < 0.5) + outcol[0] *= tm + 2.0*t*col2[0]; + else + outcol[0] = 1.0 - (tm + 2.0*t*(1.0 - col2[0]))*(1.0 - outcol[0]); + + if(outcol[1] < 0.5) + outcol[1] *= tm + 2.0*t*col2[1]; + else + outcol[1] = 1.0 - (tm + 2.0*t*(1.0 - col2[1]))*(1.0 - outcol[1]); + + if(outcol[2] < 0.5) + outcol[2] *= tm + 2.0*t*col2[2]; + else + outcol[2] = 1.0 - (tm + 2.0*t*(1.0 - col2[2]))*(1.0 - outcol[2]); + + return outcol; +} + +color node_mix_sub(float t, color col1, color col2) +{ + return mix(col1, col1 - col2, t); +} + +color node_mix_div(float t, color col1, color col2) +{ + float tm = 1.0 - t; + + color outcol = col1; + + if(col2[0] != 0.0) outcol[0] = tm*outcol[0] + t*outcol[0]/col2[0]; + if(col2[1] != 0.0) outcol[1] = tm*outcol[1] + t*outcol[1]/col2[1]; + if(col2[2] != 0.0) outcol[2] = tm*outcol[2] + t*outcol[2]/col2[2]; + + return outcol; +} + +color node_mix_diff(float t, color col1, color col2) +{ + return mix(col1, abs(col1 - col2), t); +} + +color node_mix_dark(float t, color col1, color col2) +{ + return min(col1, col2*t); +} + +color node_mix_light(float t, color col1, color col2) +{ + return max(col1, col2*t); +} + +color node_mix_dodge(float t, color col1, color col2) +{ + color outcol = col1; + + if(outcol[0] != 0.0) { + float tmp = 1.0 - t*col2[0]; + if(tmp <= 0.0) + outcol[0] = 1.0; + else if((tmp = outcol[0]/tmp) > 1.0) + outcol[0] = 1.0; + else + outcol[0] = tmp; + } + if(outcol[1] != 0.0) { + float tmp = 1.0 - t*col2[1]; + if(tmp <= 0.0) + outcol[1] = 1.0; + else if((tmp = outcol[1]/tmp) > 1.0) + outcol[1] = 1.0; + else + outcol[1] = tmp; + } + if(outcol[2] != 0.0) { + float tmp = 1.0 - t*col2[2]; + if(tmp <= 0.0) + outcol[2] = 1.0; + else if((tmp = outcol[2]/tmp) > 1.0) + outcol[2] = 1.0; + else + outcol[2] = tmp; + } + + return outcol; +} + +color node_mix_burn(float t, color col1, color col2) +{ + float tmp, tm = 1.0 - t; + + color outcol = col1; + + tmp = tm + t*col2[0]; + if(tmp <= 0.0) + outcol[0] = 0.0; + else if((tmp = (1.0 - (1.0 - outcol[0])/tmp)) < 0.0) + outcol[0] = 0.0; + else if(tmp > 1.0) + outcol[0] = 1.0; + else + outcol[0] = tmp; + + tmp = tm + t*col2[1]; + if(tmp <= 0.0) + outcol[1] = 0.0; + else if((tmp = (1.0 - (1.0 - outcol[1])/tmp)) < 0.0) + outcol[1] = 0.0; + else if(tmp > 1.0) + outcol[1] = 1.0; + else + outcol[1] = tmp; + + tmp = tm + t*col2[2]; + if(tmp <= 0.0) + outcol[2] = 0.0; + else if((tmp = (1.0 - (1.0 - outcol[2])/tmp)) < 0.0) + outcol[2] = 0.0; + else if(tmp > 1.0) + outcol[2] = 1.0; + else + outcol[2] = tmp; + + return outcol; +} + +color node_mix_hue(float t, color col1, color col2) +{ + color outcol = col1; + color hsv2 = rgb_to_hsv(col2); + + if(hsv2[1] != 0.0) { + color hsv = rgb_to_hsv(outcol); + hsv[0] = hsv2[0]; + color tmp = hsv_to_rgb(hsv); + + outcol = mix(outcol, tmp, t); + } + + return outcol; +} + +color node_mix_sat(float t, color col1, color col2) +{ + float tm = 1.0 - t; + + color outcol = col1; + + color hsv = rgb_to_hsv(outcol); + + if(hsv[1] != 0.0) { + color hsv2 = rgb_to_hsv(col2); + + hsv[1] = tm*hsv[1] + t*hsv2[1]; + outcol = hsv_to_rgb(hsv); + } + + return outcol; +} + +color node_mix_val(float t, color col1, color col2) +{ + float tm = 1.0 - t; + + color hsv = rgb_to_hsv(col1); + color hsv2 = rgb_to_hsv(col2); + + hsv[2] = tm*hsv[2] + t*hsv2[2]; + + return hsv_to_rgb(hsv); +} + +color node_mix_color(float t, color col1, color col2) +{ + color outcol = col1; + color hsv2 = rgb_to_hsv(col2); + + if(hsv2[1] != 0.0) { + color hsv = rgb_to_hsv(outcol); + hsv[0] = hsv2[0]; + hsv[1] = hsv2[1]; + color tmp = hsv_to_rgb(hsv); + + outcol = mix(outcol, tmp, t); + } + + return outcol; +} + +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); + + return tm*col1 + t*((one - col1)*col2*col1 + col1*scr); +} + +color node_mix_linear(float t, color col1, color col2) +{ + color outcol = col1; + + if(col2[0] > 0.5) + outcol[0]= col1[0] + t*(2.0*(col2[0] - 0.5)); + else + outcol[0]= col1[0] + t*(2.0*(col2[0]) - 1.0); + + if(col2[1] > 0.5) + outcol[1]= col1[1] + t*(2.0*(col2[1] - 0.5)); + else + outcol[1]= col1[1] + t*(2.0*(col2[1]) - 1.0); + + if(col2[2] > 0.5) + outcol[2]= col1[2] + t*(2.0*(col2[2] - 0.5)); + else + outcol[2]= col1[2] + t*(2.0*(col2[2]) - 1.0); + + return outcol; +} + +shader node_mix( + string type = "Mix", + float Fac = 0.5, + color Color1 = color(0.0, 0.0, 0.0), + color Color2 = color(0.0, 0.0, 0.0), + output color Color = color(0.0, 0.0, 0.0)) +{ + float t = clamp(Fac, 0.0, 1.0); + + if(type == "Mix") + Color = node_mix_blend(t, Color1, Color2); + if(type == "Add") + Color = node_mix_add(t, Color1, Color2); + if(type == "Multiply") + Color = node_mix_mul(t, Color1, Color2); + if(type == "Screen") + Color = node_mix_screen(t, Color1, Color2); + if(type == "Overlay") + Color = node_mix_overlay(t, Color1, Color2); + if(type == "Subtract") + Color = node_mix_sub(t, Color1, Color2); + if(type == "Divide") + Color = node_mix_div(t, Color1, Color2); + if(type == "Difference") + Color = node_mix_diff(t, Color1, Color2); + if(type == "Darken") + Color = node_mix_dark(t, Color1, Color2); + if(type == "Lighten") + Color = node_mix_light(t, Color1, Color2); + if(type == "Dodge") + Color = node_mix_dodge(t, Color1, Color2); + if(type == "Burn") + Color = node_mix_burn(t, Color1, Color2); + if(type == "Hue") + Color = node_mix_hue(t, Color1, Color2); + if(type == "Saturation") + Color = node_mix_sat(t, Color1, Color2); + if(type == "Value") + Color = node_mix_val (t, Color1, Color2); + if(type == "Color") + Color = node_mix_color(t, Color1, Color2); + if(type == "Soft Light") + Color = node_mix_soft(t, Color1, Color2); + if(type == "Linear Light") + Color = node_mix_linear(t, Color1, Color2); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_mix_closure.osl b/intern/cycles/kernel/osl/nodes/node_mix_closure.osl new file mode 100644 index 00000000000..1a377abd381 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_mix_closure.osl @@ -0,0 +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. + */ + +#include "stdosl.h" + +shader node_mix_closure( + float Fac = 0.5, + closure color Closure1 = background(), + closure color Closure2 = background(), + output closure color Closure = background()) +{ + float t = clamp(Fac, 0.0, 1.0); + Closure = (1.0 - t)*Closure1 + t*Closure2; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl new file mode 100644 index 00000000000..fbd0ce5c3bd --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl @@ -0,0 +1,218 @@ +/* + * 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 "node_texture.h" + +/* Musgrave fBm + * + * H: fractal increment parameter + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * + * from "Texturing and Modelling: A procedural approach" + */ + +float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 0.0; + float pwr = 1.0; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value += noise_basis(p, basis) * pwr; + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0) + value += rmd * noise_basis(p, basis) * pwr; + + return value; +} + +/* Musgrave Multifractal + * + * H: highest fractal dimension + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + */ + +float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 1.0; + float pwr = 1.0; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value *= (pwr * noise_basis(p, basis) + 1.0); + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0) + value *= (rmd * pwr * noise_basis(p, basis) + 1.0); /* correct? */ + + return value; +} + +/* Musgrave Heterogeneous Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacunarity, float octaves, float offset) +{ + float value, increment, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + /* first unscaled octave of function; later octaves are scaled */ + value = offset + noise_basis(p, basis); + p *= lacunarity; + + for(i = 1; i < (int)octaves; i++) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += increment; + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += rmd * increment; + } + + return value; +} + +/* Hybrid Additive/Multiplicative Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + result = noise_basis(p, basis) + offset; + weight = gain * result; + p *= lacunarity; + + for(i = 1; (weight > 0.001) && (i < (int)octaves); i++) { + if(weight > 1.0) + weight = 1.0; + + signal = (noise_basis(p, basis) + offset) * pwr; + pwr *= pwHL; + result += weight * signal; + weight *= gain * signal; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0) + result += rmd * ((noise_basis(p, basis) + offset) * pwr); + + return result; +} + +/* Ridged Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + signal = offset - fabs(noise_basis(p, basis)); + signal *= signal; + result = signal; + weight = 1.0; + + 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 *= signal; + signal *= weight; + result += signal * pwr; + pwr *= pwHL; + } + + return result; +} + +/* Shader */ + +shader node_musgrave_texture( + string Type = "fBM", + string Basis = "Perlin", + float Dimension = 2.0, + float Lacunarity = 1.0, + float Octaves = 2.0, + float Offset = 0.0, + float Intensity = 1.0, + float Gain = 1.0, + float Size = 0.25, + point Vector = P, + output float Fac = 0.0) +{ + float dimension = max(Dimension, 0.0); + float octaves = max(Octaves, 0.0); + float lacunarity = max(Lacunarity, 1e-5); + float size = nonzero(Size, 1e-5); + + point p = Vector/size; + + if(Type == "Multifractal") + 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); + else if(Type == "Hybrid Multifractal") + 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); + else if(Type == "Hetero Terrain") + Fac = Intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_noise_texture.osl b/intern/cycles/kernel/osl/nodes/node_noise_texture.osl new file mode 100644 index 00000000000..193ed67d16e --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_noise_texture.osl @@ -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. + */ + +#include "stdosl.h" +#include "node_texture.h" + +shader node_noise_texture( + point Vector = P, + output color Color = color(0.0, 0.0, 0.0), + output float Fac = 0.0) +{ + point p = Vector*1e8; + + float r = cellnoise(p); + float g = cellnoise(point(p[1], p[0], p[2])); + float b = cellnoise(point(p[1], p[2], p[0])); + + Fac = r; + Color = color(r, g, b); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_output_displacement.osl b/intern/cycles/kernel/osl/nodes/node_output_displacement.osl new file mode 100644 index 00000000000..a6b452c532a --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_displacement.osl @@ -0,0 +1,25 @@ +/* + * 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" + +displacement node_output_displacement(float Displacement = 0.0) +{ + P += N*Displacement*0.1; /* todo: get rid of this factor */ +} + diff --git a/intern/cycles/kernel/osl/nodes/node_output_surface.osl b/intern/cycles/kernel/osl/nodes/node_output_surface.osl new file mode 100644 index 00000000000..6efaf91121b --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_surface.osl @@ -0,0 +1,25 @@ +/* + * 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" + +surface node_output_surface(closure color Surface = background()) +{ + Ci = Surface; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_output_volume.osl b/intern/cycles/kernel/osl/nodes/node_output_volume.osl new file mode 100644 index 00000000000..18094242dc7 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_volume.osl @@ -0,0 +1,25 @@ +/* + * 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" + +volume node_output_volume(closure color Volume = background()) +{ + Ci = Volume; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_sky_texture.osl b/intern/cycles/kernel/osl/nodes/node_sky_texture.osl new file mode 100644 index 00000000000..fdb9b1d9708 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_sky_texture.osl @@ -0,0 +1,162 @@ +/* + * 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" + +struct KernelSunSky { + /* sun direction in spherical and cartesian */ + float theta, phi; + vector dir; + + /* perez function parameters */ + float zenith_Y, zenith_x, zenith_y; + float perez_Y[5], perez_x[5], perez_y[5]; +}; + +color xyY_to_xyz(float x, float y, float Y) +{ + float X, Z; + + if(y != 0.0) X = (x / y) * Y; + else X = 0.0; + + if(y != 0.0 && Y != 0.0) Z = ((1.0 - x - y) / y) * Y; + else Z = 0.0; + + return color(X, Y, Z); +} + +color xyz_to_rgb(float x, float y, float z) +{ + return color(3.240479 * x + -1.537150 * y + -0.498535 * z, + -0.969256 * x + 1.875991 * y + 0.041556 * z, + 0.055648 * x + -0.204043 * y + 1.057311 * z); +} + +float sky_angle_between(float thetav, float phiv, float theta, float phi) +{ + float cospsi = sin(thetav)*sin(theta)*cos(phi - phiv) + cos(thetav)*cos(theta); + + if(cospsi > 1.0) + return 0.0; + if(cospsi < -1.0) + return M_PI; + + return acos(cospsi); +} + +vector sky_spherical_coordinates(vector dir) +{ + return vector(acos(dir[2]), atan2(dir[0], dir[1]), 0); +} + +float sky_perez_function(float lam[5], float theta, float gamma) +{ + float ctheta = cos(theta); + float cgamma = cos(gamma); + + return (1.0 + lam[0]*exp(lam[1] / ctheta)) * (1.0 + lam[2]*exp(lam[3]*gamma) + lam[4]*cgamma*cgamma); +} + +color sky_xyz_radiance(KernelSunSky sunsky, vector dir) +{ + /* convert vector to spherical coordinates */ + vector spherical = sky_spherical_coordinates(dir); + float theta = spherical[0]; + float phi = spherical[1]; + + /* angle between sun direction and dir */ + float gamma = sky_angle_between(theta, phi, sunsky.theta, sunsky.phi); + + /* clamp theta to horizon */ + theta = min(theta, M_PI_2 - 0.001); + + /* compute xyY color space values */ + float x = sunsky.zenith_x * sky_perez_function(sunsky.perez_x, theta, gamma); + float y = sunsky.zenith_y * sky_perez_function(sunsky.perez_y, theta, gamma); + float Y = sunsky.zenith_Y * sky_perez_function(sunsky.perez_Y, theta, gamma); + + /* convert to RGB */ + color xyz = xyY_to_xyz(x, y, Y); + return xyz_to_rgb(xyz[0], xyz[1], xyz[2]); +} + +void precompute_sunsky(vector dir, float turbidity, output KernelSunSky sunsky) +{ + vector spherical = sky_spherical_coordinates(dir); + float theta = spherical[0]; + float phi = spherical[1]; + + sunsky.theta = theta; + sunsky.phi = phi; + sunsky.dir = dir; + + float theta2 = theta*theta; + float theta3 = theta*theta*theta; + float T = turbidity; + float T2 = T*T; + + float chi = (4.0/ 9.0- T / 120.0) * (M_PI - 2.0* theta); + sunsky.zenith_Y = (4.0453*T - 4.9710) * tan(chi) - 0.2155*T + 2.4192; + sunsky.zenith_Y *= 0.06; + + sunsky.zenith_x = + (0.00166* theta3 - 0.00375* theta2 + 0.00209* theta)*T2 + + (-0.02903* theta3 + 0.06377* theta2 - 0.03202* theta + 0.00394)*T + + (0.11693* theta3 - 0.21196* theta2 + 0.06052* theta + 0.25886); + + sunsky.zenith_y = + (0.00275* theta3 - 0.00610* theta2 + 0.00317* theta)*T2 + + (-0.04214* theta3 + 0.08970* theta2 - 0.04153* theta + 0.00516)*T + + (0.15346* theta3 - 0.26756* theta2 + 0.06670* theta + 0.26688); + + sunsky.perez_Y[0] = (0.1787*T - 1.4630); + sunsky.perez_Y[1] = (-0.3554*T + 0.4275); + sunsky.perez_Y[2] = (-0.0227*T + 5.3251); + sunsky.perez_Y[3] = (0.1206*T - 2.5771); + sunsky.perez_Y[4] = (-0.0670*T + 0.3703); + + sunsky.perez_x[0] = (-0.0193*T - 0.2592); + sunsky.perez_x[1] = (-0.0665*T + 0.0008); + sunsky.perez_x[2] = (-0.0004*T + 0.2125); + sunsky.perez_x[3] = (-0.0641*T - 0.8989); + sunsky.perez_x[4] = (-0.0033*T + 0.0452); + + sunsky.perez_y[0] = (-0.0167*T - 0.2608); + sunsky.perez_y[1] = (-0.0950*T + 0.0092); + sunsky.perez_y[2] = (-0.0079*T + 0.2102); + sunsky.perez_y[3] = (-0.0441*T - 1.6537); + sunsky.perez_y[4] = (-0.0109*T + 0.0529); + + sunsky.zenith_Y /= sky_perez_function(sunsky.perez_Y, 0, theta); + sunsky.zenith_x /= sky_perez_function(sunsky.perez_x, 0, theta); + sunsky.zenith_y /= sky_perez_function(sunsky.perez_y, 0, theta); +} + +shader node_sky_texture( + vector Vector = P, + vector sun_direction = vector(0, 0, 1), + float turbidity = 2.2, + output color Color = color(0.0, 0.0, 0.0)) +{ + KernelSunSky sunsky; + + precompute_sunsky(sun_direction, turbidity, sunsky); + Color = sky_xyz_radiance(sunsky, Vector); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_stucci_texture.osl b/intern/cycles/kernel/osl/nodes/node_stucci_texture.osl new file mode 100644 index 00000000000..f03e03d9a98 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_stucci_texture.osl @@ -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. + */ + +#include "stdosl.h" +#include "node_texture.h" + +/* Stucci */ + +shader node_stucci_texture( + string Type = "Plastic", + string Basis = "Perlin", + int Hard = 0, + float Turbulence = 1.0, + float Size = 0.25, + point Vector = P, + output float Fac = 0.0) +{ + float size = nonzero(Size, 1e-5); + point p = Vector/size; + + float b2 = noise_basis_hard(p, Basis, Hard); + float ofs = Turbulence/200.0; + + if(Type != "Plastic") + ofs *= b2*b2; + + Fac = noise_basis_hard(point(p[0], p[1], p[2]+ofs), Basis, Hard); + + if(Type == "Wall Out") + Fac = 1.0 - Fac; + + Fac = max(Fac, 0.0); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_texture.h b/intern/cycles/kernel/osl/nodes/node_texture.h new file mode 100644 index 00000000000..8adb0e8aeb5 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_texture.h @@ -0,0 +1,251 @@ +/* + * 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. + */ + +/* Voronoi Distances */ + +float voronoi_distance(string distance_metric, vector d, float e) +{ + float result = 0.0; + + if(distance_metric == "Distance Squared") + result = dot(d, d); + if(distance_metric == "Actual Distance") + result = length(d); + if(distance_metric == "Manhattan") + result = fabs(d[0]) + fabs(d[1]) + fabs(d[2]); + if(distance_metric == "Chebychev") + result = max(fabs(d[0]), max(fabs(d[1]), fabs(d[2]))); + if(distance_metric == "Minkovsky 1/2") + result = sqrt(fabs(d[0])) + sqrt(fabs(d[1])) + sqrt(fabs(d[1])); + if(distance_metric == "Minkovsky 4") + result = sqrt(sqrt(dot(d*d, d*d))); + if(distance_metric == "Minkovsky") + result = pow(pow(fabs(d[0]), e) + pow(fabs(d[1]), e) + pow(fabs(d[2]), e), 1.0/e); + + return result; +} + +/* Voronoi / Worley like */ + +color cellnoise_color(point p) +{ + float r = cellnoise(p); + float g = cellnoise(point(p[1], p[0], p[2])); + float b = cellnoise(point(p[1], p[2], p[0])); + + return color(r, g, b); +} + +void voronoi(point p, string distance_metric, float e, float da[4], point pa[4]) +{ + /* returns distances in da and point coords in pa */ + int xx, yy, zz, xi, yi, zi; + + xi = (int)floor(p[0]); + yi = (int)floor(p[1]); + zi = (int)floor(p[2]); + + da[0] = 1e10; + da[1] = 1e10; + da[2] = 1e10; + da[3] = 1e10; + + for(xx = xi-1; xx <= xi+1; xx++) { + for(yy = yi-1; yy <= yi+1; yy++) { + for(zz = zi-1; zz <= zi+1; zz++) { + point ip = point(xx, yy, zz); + point vp = (point)cellnoise_color(ip); + point pd = p - (vp + ip); + float d = voronoi_distance(distance_metric, pd, e); + + vp += point(xx, yy, zz); + + if(d < da[0]) { + da[3] = da[2]; + da[2] = da[1]; + da[1] = da[0]; + da[0] = d; + + pa[3] = pa[2]; + pa[2] = pa[1]; + pa[1] = pa[0]; + pa[0] = vp; + } + else if(d < da[1]) { + da[3] = da[2]; + da[2] = da[1]; + da[1] = d; + + pa[3] = pa[2]; + pa[2] = pa[1]; + pa[1] = vp; + } + else if(d < da[2]) { + da[3] = da[2]; + da[2] = d; + + pa[3] = pa[2]; + pa[2] = vp; + } + else if(d < da[3]) { + da[3] = d; + pa[3] = vp; + } + } + } + } +} + +float voronoi_Fn(point p, int n) +{ + float da[4]; + point pa[4]; + + voronoi(p, "Distance Squared", 0, da, pa); + + return da[n]; +} + +float voronoi_FnFn(point p, int n1, int n2) +{ + float da[4]; + point pa[4]; + + voronoi(p, "Distance Squared", 0, da, pa); + + return da[n2] - da[n1]; +} + +float voronoi_F1(point p) { return voronoi_Fn(p, 0); } +float voronoi_F2(point p) { return voronoi_Fn(p, 1); } +float voronoi_F3(point p) { return voronoi_Fn(p, 2); } +float voronoi_F4(point p) { return voronoi_Fn(p, 3); } +float voronoi_F1F2(point p) { return voronoi_FnFn(p, 0, 1); } + +float voronoi_Cr(point p) +{ + /* crackle type pattern, just a scale/clamp of F2-F1 */ + float t = 10.0*voronoi_F1F2(p); + return (t > 1.0)? 1.0: t; +} + +float voronoi_F1S(point p) { return 2.0*voronoi_F1(p) - 1.0; } +float voronoi_F2S(point p) { return 2.0*voronoi_F2(p) - 1.0; } +float voronoi_F3S(point p) { return 2.0*voronoi_F3(p) - 1.0; } +float voronoi_F4S(point p) { return 2.0*voronoi_F4(p) - 1.0; } +float voronoi_F1F2S(point p) { return 2.0*voronoi_F1F2(p) - 1.0; } +float voronoi_CrS(point p) { return 2.0*voronoi_Cr(p) - 1.0; } + +/* Noise Bases */ + +float noise_basis(point p, string basis) +{ + float result = 0.0; + + if(basis == "Perlin") + result = noise(p); + if(basis == "Voronoi F1") + result = voronoi_F1S(p); + if(basis == "Voronoi F2") + result = voronoi_F2S(p); + if(basis == "Voronoi F3") + result = voronoi_F3S(p); + if(basis == "Voronoi F4") + result = voronoi_F4S(p); + if(basis == "Voronoi F2-F1") + result = voronoi_F1F2S(p); + if(basis == "Voronoi Crackle") + result = voronoi_CrS(p); + if(basis == "Cell Noise") + result = cellnoise(p); + + return result; +} + +/* Soft/Hard Noise */ + +float noise_basis_hard(point p, string basis, int hard) +{ + float t = noise_basis(p, basis); + return (hard)? fabs(2.0*t - 1.0): t; +} + +/* Waves */ + +float noise_wave(string wave, float a) +{ + float result = 0.0; + + if(wave == "Sine") { + result = 0.5 + 0.5*sin(a); + } + else if(wave == "Saw") { + float b = 2*M_PI; + int n = (int)(a / b); + a -= n*b; + if(a < 0) a += b; + + result = a / b; + } + else if(wave == "Tri") { + float b = 2*M_PI; + float rmax = 1.0; + + result = rmax - 2.0*fabs(floor((a*(1.0/b))+0.5) - (a*(1.0/b))); + } + + return result; +} + +/* Turbulence */ + +float noise_turbulence(point p, string basis, int octaves, int hard) +{ + float fscale = 1.0; + float amp = 1.0; + float sum = 0.0; + int i; + + for(i = 0; i <= octaves; i++) { + float t = noise_basis(fscale*p, basis); + + if(hard) + t = fabs(2.0*t - 1.0); + + sum += t*amp; + amp *= 0.5; + fscale *= 2.0; + } + + sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + + return sum; +} + +/* Utility */ + +float nonzero(float f, float eps) +{ + float r; + + if(abs(f) < eps) + r = sign(f)*eps; + else + r = f; + + return r; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl b/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl new file mode 100644 index 00000000000..2acf72aef54 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl @@ -0,0 +1,66 @@ +/* + * 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_texture_coordinate( + normal Normal = N, + int is_background = 0, + string bump_offset = "center", + + output point Generated = point(0.0, 0.0, 0.0), + output point UV = point(0.0, 0.0, 0.0), + output point Object = point(0.0, 0.0, 0.0), + output point Camera = point(0.0, 0.0, 0.0), + output point Window = point(0.0, 0.0, 0.0), + output point Reflection = point(0.0, 0.0, 0.0)) +{ + if(is_background) { + Generated = P; + UV = point(0.0, 0.0, 0.0); + Object = P; + point Pcam = transform("camera", "world", point(0, 0, 0)); + Camera = transform("camera", P + Pcam); + Window = transform("NDC", P + Pcam); + Reflection = I; + } + else { + getattribute("std::generated", Generated); + getattribute("std::uv", UV); + Object = transform("object", P); + Camera = transform("camera", P); + Window = transform("NDC", P); + Reflection = reflect(I, Normal); + } + + if(bump_offset == "dx") { + Generated += Dx(Generated); + UV += Dx(UV); + Object += Dx(Object); + Camera += Dx(Camera); + Window += Dx(Window); + } + else if(bump_offset == "dy") { + Generated += Dy(Generated); + UV += Dy(UV); + Object += Dy(Object); + Camera += Dy(Camera); + Window += Dy(Window); + } +} + diff --git a/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl new file mode 100644 index 00000000000..9acd46756d2 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl @@ -0,0 +1,28 @@ +/* + * 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_translucent_bsdf( + color Color = color(0.8, 0.8, 0.8), + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + BSDF = Color*translucent(Normal); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl new file mode 100644 index 00000000000..b347bfb116b --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl @@ -0,0 +1,28 @@ +/* + * 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_transparent_bsdf( + color Color = color(0.8, 0.8, 0.8), + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + BSDF = Color*transparent(); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_value.osl b/intern/cycles/kernel/osl/nodes/node_value.osl new file mode 100644 index 00000000000..bee6f39f2bc --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_value.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_value( + float value_value = 0.0, + vector vector_value = vector(0.0, 0.0, 0.0), + color color_value = color(0.0, 0.0, 0.0), + output float Value = 0.0, + output vector Vector = vector(0.0, 0.0, 0.0), + output color Color = color(0.0, 0.0, 0.0)) +{ + Value = value_value; + Vector = vector_value; + Color = color_value; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_vector_math.osl b/intern/cycles/kernel/osl/nodes/node_vector_math.osl new file mode 100644 index 00000000000..c6231d4350d --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_vector_math.osl @@ -0,0 +1,53 @@ +/* + * 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_vector_math( + string type = "Add", + vector Vector1 = vector(0.0, 0.0, 0.0), + vector Vector2 = vector(0.0, 0.0, 0.0), + output float Fac = 0.0, + output vector Vector = vector(0.0, 0.0, 0.0)) +{ + if(type == "Add") { + Vector = Vector1 + Vector2; + Fac = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; + } + if(type == "Subtract") { + Vector = Vector1 + Vector2; + Fac = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; + } + if(type == "Average") { + Fac = length(Vector1 + Vector2); + Vector = normalize(Vector1 + Vector2); + } + if(type == "Dot Product") { + Fac = dot(Vector1, Vector2); + } + if(type == "Cross Product") { + vector c = cross(Vector1, Vector2); + Fac = length(c); + Vector = normalize(c); + } + if(type == "Normalize") { + Fac = length(Vector1); + Vector = normalize(Vector1); + } +} + diff --git a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl new file mode 100644 index 00000000000..2b6219f6325 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl @@ -0,0 +1,40 @@ +/* + * 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 "node_fresnel.h" + +shader node_velvet_bsdf( + color Color = color(0.8, 0.8, 0.8), + float Sigma = 0.0, + float Fresnel = 0.3, + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + float Fr = 1.0; + + if(Fresnel < 1.0) { + float eta = 1.0/clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); + Fr = fresnel_dielectric(I, Normal, eta); + } + + float sigma = clamp(Sigma, 0.0, 1.0); + + BSDF = (Fr*Color)*ashikhmin_velvet(Normal, sigma); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl b/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl new file mode 100644 index 00000000000..140ba6a6ba1 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl @@ -0,0 +1,82 @@ +/* + * 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 "node_texture.h" + +/* 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 Size = 0.25, + 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 size = nonzero(Size, 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/size, DistanceMetric, exponent, da, pa); + + /* Scalar output */ + Fac = sc * fabs(Weight1*da[0] + Weight2*da[1] + Weight3*da[2] + Weight4*da[3]); + + /* Colored output */ + if(Coloring == "Intensity") { + Color = color(Fac, Fac, 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); + + 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_ward_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl new file mode 100644 index 00000000000..68db07109ed --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl @@ -0,0 +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. + */ + +#include "stdosl.h" + +shader node_ward_bsdf( + color Color = color(0.8, 0.8, 0.8), + float RoughnessU = 0.0, + float RoughnessV = 0.0, + normal Normal = N, + output closure color BSDF = diffuse(Normal)) +{ + BSDF = Color*ward(Normal, normalize(dPdu), RoughnessU, RoughnessV); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_wood_texture.osl b/intern/cycles/kernel/osl/nodes/node_wood_texture.osl new file mode 100644 index 00000000000..f1d2e278597 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_wood_texture.osl @@ -0,0 +1,63 @@ +/* + * 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 "node_texture.h" + +/* Wood */ + +float wood(point p, float size, string type, string wave, string basis, int hard, float turb) +{ + float x = p[0]; + float y = p[1]; + float z = p[2]; + + float result = 0.0; + + if(type == "Bands") { + result = noise_wave(wave, (x + y + z)*10.0); + } + else if(type == "Rings") { + result = noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0); + } + else if (type == "Band Noise") { + float wi = turb*noise_basis_hard(p/size, basis, hard); + result = noise_wave(wave, (x + y + z)*10.0 + wi); + } + else if (type == "Ring Noise") { + float wi = turb*noise_basis_hard(p/size, basis, hard); + result = noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0 + wi); + } + + return result; +} + +shader node_wood_texture( + string Type = "Bands", + string Wave = "Sine", + string Basis = "Perlin", + int Hard = 0, + float Size = 0.25, + float Turbulence = 5.0, + point Vector = P, + output float Fac = 0.0) +{ + float size = nonzero(Size, 1e-5); + Fac = wood(Vector, size, Type, Wave, Basis, Hard, Turbulence); +} + diff --git a/intern/cycles/kernel/osl/nodes/stdosl.h b/intern/cycles/kernel/osl/nodes/stdosl.h new file mode 100644 index 00000000000..6fe4f52df4a --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/stdosl.h @@ -0,0 +1,471 @@ +///////////////////////////////////////////////////////////////////////////// +// 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_STDOSL_H +#define CCL_STDOSL_H + + +#ifndef M_PI +#define M_PI 3.1415926535897932 /* pi */ +#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_2_SQRTPI 1.1283791670955126 /* 2/sqrt(pi) */ +#define M_E 2.7182818284590452 /* e (Euler's number) */ +#define M_LN2 0.6931471805599453 /* ln(2) */ +#define M_LN10 2.3025850929940457 /* ln(10) */ +#define M_LOG2E 1.4426950408889634 /* log_2(e) */ +#define M_LOG10E 0.4342944819032518 /* log_10(e) */ +#define M_SQRT2 1.4142135623730950 /* sqrt(2) */ +#define M_SQRT1_2 0.7071067811865475 /* 1/sqrt(2) */ +#endif + + + +// Declaration of built-in functions and closures +#define BUILTIN [[ int builtin = 1 ]] +#define BUILTIN_DERIV [[ int builtin = 1, int deriv = 1 ]] + +#define PERCOMP1(name) \ + normal name (normal x) BUILTIN; \ + vector name (vector x) BUILTIN; \ + point name (point x) BUILTIN; \ + color name (color x) BUILTIN; \ + float name (float x) BUILTIN; + +#define PERCOMP2(name) \ + normal name (normal x, normal y) BUILTIN; \ + vector name (vector x, vector y) BUILTIN; \ + point name (point x, point y) BUILTIN; \ + color name (color x, color y) BUILTIN; \ + float name (float x, float y) BUILTIN; + +#define PERCOMP2F(name) \ + normal name (normal x, float y) BUILTIN; \ + vector name (vector x, float y) BUILTIN; \ + point name (point x, float y) BUILTIN; \ + color name (color x, float y) BUILTIN; \ + float name (float x, float y) BUILTIN; + + +// Basic math +normal degrees (normal x) { return x*(180.0/M_PI); } +vector degrees (vector x) { return x*(180.0/M_PI); } +point degrees (point x) { return x*(180.0/M_PI); } +color degrees (color x) { return x*(180.0/M_PI); } +float degrees (float x) { return x*(180.0/M_PI); } +normal radians (normal x) { return x*(M_PI/180.0); } +vector radians (vector x) { return x*(M_PI/180.0); } +point radians (point x) { return x*(M_PI/180.0); } +color radians (color x) { return x*(M_PI/180.0); } +float radians (float x) { return x*(M_PI/180.0); } +PERCOMP1 (cos) +PERCOMP1 (sin) +PERCOMP1 (tan) +PERCOMP1 (acos) +PERCOMP1 (asin) +PERCOMP1 (atan) +PERCOMP2 (atan2) +PERCOMP1 (cosh) +PERCOMP1 (sinh) +PERCOMP1 (tanh) +PERCOMP2F (pow) +PERCOMP1 (exp) +PERCOMP1 (exp2) +PERCOMP1 (expm1) +PERCOMP1 (log) +point log (point a, float b) { return log(a)/log(b); } +vector log (vector a, float b) { return log(a)/log(b); } +color log (color a, float b) { return log(a)/log(b); } +float log (float a, float b) { return log(a)/log(b); } +PERCOMP1 (log2) +PERCOMP1 (log10) +PERCOMP1 (logb) +PERCOMP1 (sqrt) +PERCOMP1 (inversesqrt) +float hypot (float a, float b) { return sqrt (a*a + b*b); } +float hypot (float a, float b, float c) { return sqrt (a*a + b*b + c*c); } +PERCOMP1 (abs) +int abs (int x) BUILTIN; +PERCOMP1 (fabs) +int fabs (int x) BUILTIN; +PERCOMP1 (sign) +PERCOMP1 (floor) +PERCOMP1 (ceil) +PERCOMP1 (round) +PERCOMP1 (trunc) +PERCOMP2 (fmod) +PERCOMP2F (fmod) +PERCOMP2 (mod) +PERCOMP2F (mod) +int mod (int x, int y) BUILTIN; +PERCOMP2 (min) +PERCOMP2 (max) +normal clamp (normal x, normal minval, normal maxval) { return max(min(x,maxval),minval); } +vector clamp (vector x, vector minval, vector maxval) { return max(min(x,maxval),minval); } +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; } +vector mix (vector x, vector y, float a) { return x*(1-a) + y*a; } +point mix (point x, point y, point a) { return x*(1-a) + y*a; } +point mix (point x, point y, float a) { return x*(1-a) + y*a; } +color mix (color x, color y, color a) { return x*(1-a) + y*a; } +color mix (color x, color y, float a) { return x*(1-a) + y*a; } +float mix (float x, float y, float a) { return x*(1-a) + y*a; } +int isnan (float x) BUILTIN; +int isinf (float x) BUILTIN; +int isfinite (float x) BUILTIN; +float erf (float x) BUILTIN; +float erfc (float x) BUILTIN; + +// Vector functions + +vector cross (vector a, vector b) BUILTIN; +float dot (vector a, vector b) BUILTIN; +float length (vector v) BUILTIN; +float distance (point a, point b) BUILTIN; +float distance (point a, point b, point q) BUILTIN; +normal normalize (normal v) BUILTIN; +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))); +} +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 +} + +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); +} + +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; + +// Implementation of transform-with-named-space in terms of matrices: + +point transform (string tospace, point x) +{ + return transform (matrix ("common", tospace), x); +} + +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)); +} + + + +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 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); +} + + + +// Matrix functions + +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; + + +// Derivatives and area operators + + +// Displacement functions + + +// 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)); } + +// 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, 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, string f) { + return concat(concat(a,b,c,d,e), f); +} + + +// Texture + + +// Closures + +closure color diffuse(normal N) 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 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_refraction(normal N, float ag, float eta) BUILTIN; +closure color microfacet_beckmann(normal N, float ab) 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 westin_backscatter(normal N, float roughness) BUILTIN; +closure color westin_sheen(normal N, float edginess) BUILTIN; +closure color bssrdf_cubic(color radius) BUILTIN; +closure color emission(float inner_angle, float outer_angle) BUILTIN; +closure color emission(float outer_angle) BUILTIN; +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; + +// Renderer state +int raytype (string typename) BUILTIN; + +#undef BUILTIN +#undef BUILTIN_DERIV +#undef PERCOMP1 +#undef PERCOMP2 +#undef PERCOMP2F + +#endif /* CCL_STDOSL_H */ + diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp new file mode 100644 index 00000000000..4c2261942fd --- /dev/null +++ b/intern/cycles/kernel/osl/osl_closures.cpp @@ -0,0 +1,93 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., closure_et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 +#include + +#include "osl_closures.h" +#include "osl_shader.h" + +#include "util_debug.h" +#include "util_param.h" + +CCL_NAMESPACE_BEGIN + +static void generic_closure_setup(OSL::RendererServices *, int id, void *data) +{ + assert(data); + OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive *)data; + prim->setup(); +} + +static bool generic_closure_mergeable(int id, const void *dataA, const void *dataB) +{ + assert(dataA && dataB); + + OSL::ClosurePrimitive *primA = (OSL::ClosurePrimitive *)dataA; + OSL::ClosurePrimitive *primB = (OSL::ClosurePrimitive *)dataB; + return primA->mergeable(primB); +} + +static void register_closure(OSL::ShadingSystem *ss, const char *name, int id, OSL::ClosureParam *params, OSL::PrepareClosureFunc prepare) +{ + int j; + for(j = 0; params[j].type != TypeDesc(); ++j) {} + int size = params[j].offset; + + ss->register_closure(name, id, params, size, prepare, generic_closure_setup, generic_closure_mergeable); +} + +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, "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); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/osl_closures.h b/intern/cycles/kernel/osl/osl_closures.h new file mode 100644 index 00000000000..20a759586b0 --- /dev/null +++ b/intern/cycles/kernel/osl/osl_closures.h @@ -0,0 +1,114 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. + */ + +#ifndef __OSL_CLOSURES_H__ +#define __OSL_CLOSURES_H__ + +#include +#include +#include + +CCL_NAMESPACE_BEGIN + +enum { + OSL_CLOSURE_BSDF_DIFFUSE_ID, + OSL_CLOSURE_BSDF_TRANSLUCENT_ID, + OSL_CLOSURE_BSDF_REFLECTION_ID, + OSL_CLOSURE_BSDF_REFRACTION_ID, + OSL_CLOSURE_BSDF_TRANSPARENT_ID, + OSL_CLOSURE_BSDF_MICROFACET_GGX_ID, + OSL_CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, + OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_ID, + OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, + OSL_CLOSURE_BSDF_WARD_ID, + OSL_CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, + OSL_CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, + OSL_CLOSURE_BSDF_WESTIN_SHEEN_ID, + OSL_CLOSURE_BSSRDF_CUBIC_ID, + OSL_CLOSURE_EMISSION_ID, + OSL_CLOSURE_DEBUG_ID, + OSL_CLOSURE_BACKGROUND_ID, + OSL_CLOSURE_HOLDOUT_ID, + OSL_CLOSURE_SUBSURFACE_ID +}; + +extern OSL::ClosureParam bsdf_diffuse_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[]; + +void bsdf_diffuse_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_translucent_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_reflection_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_refraction_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_transparent_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_microfacet_ggx_prepare(OSL::RendererServices *, int id, void *data); +void bsdf_microfacet_ggx_refraction_prepare(OSL::RendererServices *, int id, void *data); +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_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); +void closure_bssrdf_cubic_prepare(OSL::RendererServices *, int id, void *data); +void closure_emission_prepare(OSL::RendererServices *, int id, void *data); +void closure_debug_prepare(OSL::RendererServices *, int id, void *data); +void closure_background_prepare(OSL::RendererServices *, int id, void *data); +void closure_holdout_prepare(OSL::RendererServices *, int id, void *data); +void closure_subsurface_prepare(OSL::RendererServices *, int id, void *data); + +#define CLOSURE_PREPARE(name, classname) \ +void name(RendererServices *, int id, void *data) \ +{ \ + memset(data, 0, sizeof(classname)); \ + new (data) classname(); \ +} + +CCL_NAMESPACE_END + +#endif /* __OSL_CLOSURES_H__ */ + diff --git a/intern/cycles/kernel/osl/osl_globals.h b/intern/cycles/kernel/osl/osl_globals.h new file mode 100644 index 00000000000..90746c385c7 --- /dev/null +++ b/intern/cycles/kernel/osl/osl_globals.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 __OSL_GLOBALS_H__ +#define __OSL_GLOBALS_H__ + +#ifdef WITH_OSL + +#include + +#include "util_map.h" +#include "util_param.h" +#include "util_thread.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +struct OSLGlobals { + /* use */ + bool use; + + /* shading system */ + OSL::ShadingSystem *ss; + + /* shader states */ + vector surface_state; + vector volume_state; + vector displacement_state; + OSL::ShadingAttribStateRef background_state; + + /* attributes */ + struct Attribute { + TypeDesc type; + AttributeElement elem; + int offset; + ParamValue value; + }; + + typedef unordered_map AttributeMap; + typedef unordered_map ObjectNameMap; + + vector attribute_map; + ObjectNameMap object_name_map; + + /* thread key for thread specific data lookup */ + struct ThreadData { + OSL::ShaderGlobals globals; + void *thread_info; + }; + + static tls_ptr(ThreadData, thread_data); +}; + +CCL_NAMESPACE_END + +#endif + +#endif /* __OSL_GLOBALS_H__ */ + diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp new file mode 100644 index 00000000000..ded3a68d667 --- /dev/null +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -0,0 +1,424 @@ +/* + * 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 + +#include "mesh.h" +#include "object.h" +#include "scene.h" + +#include "osl_services.h" +#include "osl_shader.h" + +#include "util_foreach.h" +#include "util_string.h" + +#include "kernel_compat_cpu.h" +#include "kernel_globals.h" +#include "kernel_object.h" +#include "kernel_triangle.h" + +CCL_NAMESPACE_BEGIN + +/* RenderServices implementation */ + +#define TO_MATRIX44(m) (*(OSL::Matrix44*)&(m)) + +/* static ustrings */ +ustring OSLRenderServices::u_distance("distance"); +ustring OSLRenderServices::u_index("index"); +ustring OSLRenderServices::u_camera("camera"); +ustring OSLRenderServices::u_screen("screen"); +ustring OSLRenderServices::u_raster("raster"); +ustring OSLRenderServices::u_ndc("NDC"); +ustring OSLRenderServices::u_empty; + +OSLRenderServices::OSLRenderServices() +{ + kernel_globals = NULL; +} + +OSLRenderServices::~OSLRenderServices() +{ +} + +void OSLRenderServices::thread_init(KernelGlobals *kernel_globals_) +{ + kernel_globals = kernel_globals_; +} + +bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform, float time) +{ + /* this is only used for shader and object space, we don't really have + a concept of shader space, so we just use object space for both. */ + if(xform) { + KernelGlobals *kg = kernel_globals; + const ShaderData *sd = (const ShaderData*)xform; + int object = sd->object; + + if(object != ~0) { + Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM); + tfm = transform_transpose(tfm); + result = TO_MATRIX44(tfm); + + return true; + } + } + + return false; +} + +bool OSLRenderServices::get_inverse_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform, float time) +{ + /* this is only used for shader and object space, we don't really have + a concept of shader space, so we just use object space for both. */ + if(xform) { + KernelGlobals *kg = kernel_globals; + const ShaderData *sd = (const ShaderData*)xform; + int object = sd->object; + + if(object != ~0) { + Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM); + tfm = transform_transpose(tfm); + result = TO_MATRIX44(tfm); + + return true; + } + } + + return false; +} + +bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, ustring from, float time) +{ + KernelGlobals *kg = kernel_globals; + + if(from == u_ndc) { + Transform tfm = transform_transpose(kernel_data.cam.ndctoworld); + result = TO_MATRIX44(tfm); + return true; + } + else if(from == u_raster) { + Transform tfm = transform_transpose(kernel_data.cam.rastertoworld); + result = TO_MATRIX44(tfm); + return true; + } + else if(from == u_screen) { + Transform tfm = transform_transpose(kernel_data.cam.screentoworld); + result = TO_MATRIX44(tfm); + return true; + } + else if(from == u_camera) { + Transform tfm = transform_transpose(kernel_data.cam.cameratoworld); + result = TO_MATRIX44(tfm); + return true; + } + + return false; +} + +bool OSLRenderServices::get_inverse_matrix(OSL::Matrix44 &result, ustring to, float time) +{ + KernelGlobals *kg = kernel_globals; + + if(to == u_ndc) { + Transform tfm = transform_transpose(kernel_data.cam.worldtondc); + result = TO_MATRIX44(tfm); + return true; + } + else if(to == u_raster) { + Transform tfm = transform_transpose(kernel_data.cam.worldtoraster); + result = TO_MATRIX44(tfm); + return true; + } + else if(to == u_screen) { + Transform tfm = transform_transpose(kernel_data.cam.worldtoscreen); + result = TO_MATRIX44(tfm); + return true; + } + else if(to == u_camera) { + Transform tfm = transform_transpose(kernel_data.cam.worldtocamera); + result = TO_MATRIX44(tfm); + return true; + } + + return false; +} + +bool OSLRenderServices::get_array_attribute(void *renderstate, bool derivatives, + ustring object, TypeDesc type, ustring name, + int index, void *val) +{ + return false; +} + +static bool get_mesh_attribute(KernelGlobals *kg, const ShaderData *sd, + const OSLGlobals::Attribute& attr, 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); + } + else { + float3 *fval = (float3*)val; + fval[0] = triangle_attribute_float3(kg, sd, attr.elem, attr.offset, + (derivatives)? &fval[1]: NULL, (derivatives)? &fval[2]: NULL); + } + + return true; +} + +static bool get_mesh_attribute_convert(KernelGlobals *kg, const ShaderData *sd, + const OSLGlobals::Attribute& attr, const TypeDesc& type, bool derivatives, void *val) +{ + if(attr.type == TypeDesc::TypeFloat) { + float tmp[3]; + float3 *fval = (float3*)val; + + get_mesh_attribute(kg, sd, attr, derivatives, tmp); + + fval[0] = make_float3(tmp[0], tmp[0], tmp[0]); + if(derivatives) { + fval[1] = make_float3(tmp[1], tmp[1], tmp[1]); + fval[2] = make_float3(tmp[2], tmp[2], tmp[2]); + } + + 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]); + } + + return true; + } + else + return false; +} + +static void get_object_attribute(const OSLGlobals::Attribute& attr, bool derivatives, void *val) +{ + size_t datasize = attr.value.datasize(); + + memcpy(val, attr.value.data(), datasize); + if(derivatives) + memset((char*)val + datasize, 0, datasize*2); +} + +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; + int object = sd->object; + int tri = sd->prim; + + /* lookup of attribute on another object */ + if(object_name != u_empty) { + OSLGlobals::ObjectNameMap::iterator it = kg->osl.object_name_map.find(object_name); + + if(it == kg->osl.object_name_map.end()) + return false; + + object = it->second; + tri = ~0; + } + else if(object == ~0) { + /* no background attributes supported */ + return false; + } + + /* find attribute on object */ + 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); + } + } + else { + /* object attribute */ + get_object_attribute(attr, derivatives, val); + return true; + } + + return false; +} + +bool OSLRenderServices::get_userdata(bool derivatives, ustring name, TypeDesc type, + void *renderstate, void *val) +{ + return false; /* disabled by lockgeom */ +} + +bool OSLRenderServices::has_userdata(ustring name, TypeDesc type, void *renderstate) +{ + return false; /* never called by OSL */ +} + +void *OSLRenderServices::get_pointcloud_attr_query(ustring *attr_names, + TypeDesc *attr_types, int nattrs) +{ +#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 +} + +#ifdef WITH_PARTIO +Partio::ParticlesData *OSLRenderServices::get_pointcloud(ustring filename) +{ + return Partio::readCached(filename.c_str(), true); +} + +#endif + +int OSLRenderServices::pointcloud(ustring filename, const OSL::Vec3 ¢er, 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 indices; + std::vector dist2; + + Partio::beginCachedAccess(cloud); + + /* finally, do the lookup */ + cloud->findNPoints((const float *)¢er, 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 new file mode 100644 index 00000000000..e5003074822 --- /dev/null +++ b/intern/cycles/kernel/osl/osl_services.h @@ -0,0 +1,111 @@ +/* + * 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 __OSL_SERVICES_H__ +#define __OSL_SERVICES_H__ + +/* OSL Render Services + * + * Implementation of OSL render services, to retriever matrices, attributes, + * textures and point clouds. In principle this should only be accessing + * kernel data, but currently we also reach back into the Scene to retrieve + * attributes. + */ + +#include +#include + +#ifdef WITH_PARTIO +#include +#endif + +CCL_NAMESPACE_BEGIN + +class Object; +class Scene; +class Shader; +class ShaderData; +class float3; +class KernelGlobals; + +class OSLRenderServices : public OSL::RendererServices +{ +public: + OSLRenderServices(); + ~OSLRenderServices(); + + void thread_init(KernelGlobals *kernel_globals); + + 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_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, + 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 ¢er, float radius, + int max_points, void *attr_query, void **attr_outdata); + +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 attr_names; + /* types as (enum Partio::ParticleAttributeType) of the + attributes in the query */ + std::vector 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 m_attr_queries; +#endif + + static ustring u_distance; + static ustring u_index; + static ustring u_camera; + static ustring u_screen; + static ustring u_raster; + static ustring u_ndc; + static ustring u_empty; +}; + +CCL_NAMESPACE_END + +#endif /* __OSL_SERVICES_H__ */ + diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp new file mode 100644 index 00000000000..f4ae0248bef --- /dev/null +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -0,0 +1,559 @@ +/* + * 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 "kernel_compat_cpu.h" +#include "kernel_types.h" +#include "kernel_globals.h" +#include "kernel_object.h" + +#include "osl_services.h" +#include "osl_shader.h" + +#include "util_foreach.h" + +#include +#include + +CCL_NAMESPACE_BEGIN + +tls_ptr(ThreadData, OSLGlobals::thread_data); + +/* Threads */ + +void OSLShader::thread_init(KernelGlobals *kg) +{ + OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl*)kg->osl.ss; + + OSLGlobals::ThreadData *tdata = new OSLGlobals::ThreadData(); + + memset(&tdata->globals, 0, sizeof(OSL::ShaderGlobals)); + tdata->thread_info = ssi->create_thread_info(); + + tls_set(kg->osl.thread_data, tdata); + + ((OSLRenderServices*)ssi->renderer())->thread_init(kg); +} + +void OSLShader::thread_free(KernelGlobals *kg) +{ + OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl*)kg->osl.ss; + + OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data); + + ssi->destroy_thread_info(tdata->thread_info); + + delete tdata; +} + +/* Globals */ + +#define TO_VEC3(v) (*(OSL::Vec3*)&(v)) +#define TO_COLOR3(v) (*(OSL::Color3*)&(v)) +#define TO_FLOAT3(v) make_float3(v[0], v[1], v[2]) + +static void shaderdata_to_shaderglobals(KernelGlobals *kg, ShaderData *sd, + int path_flag, OSL::ShaderGlobals *globals) +{ + /* copy from shader data to shader globals */ + globals->P = TO_VEC3(sd->P); + globals->dPdx = TO_VEC3(sd->dP.dx); + globals->dPdy = TO_VEC3(sd->dP.dy); + globals->I = TO_VEC3(sd->I); + globals->dIdx = TO_VEC3(sd->dI.dx); + globals->dIdy = TO_VEC3(sd->dI.dy); + globals->N = TO_VEC3(sd->N); + globals->Ng = TO_VEC3(sd->Ng); + globals->u = sd->u; + globals->dudx = sd->du.dx; + globals->dudy = sd->du.dy; + globals->v = sd->v; + globals->dvdx = sd->dv.dx; + globals->dvdy = sd->dv.dy; + globals->dPdu = TO_VEC3(sd->dPdu); + globals->dPdv = TO_VEC3(sd->dPdv); + globals->surfacearea = (sd->object == ~0)? 1.0f: object_surface_area(kg, sd->object); + + /* booleans */ + globals->raytype = path_flag; + globals->backfacing = (sd->flag & SD_BACKFACING); + + /* don't know yet if we need this */ + globals->flipHandedness = false; + + /* shader data to be used in services callbacks */ + globals->renderstate = sd; + + /* hacky, we leave it to services to fetch actual object matrix */ + globals->shader2common = sd; + globals->object2common = sd; + + /* must be set to NULL before execute */ + globals->Ci = NULL; +} + +/* Surface */ + +static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, + const OSL::ClosureColor *closure, float3 weight = make_float3(1.0f, 1.0f, 1.0f)) +{ + /* OSL gives use a closure tree, we flatten it into arrays per + * closure type, for evaluation, sampling, etc later on. */ + + if(closure->type == OSL::ClosureColor::COMPONENT) { + OSL::ClosureComponent *comp = (OSL::ClosureComponent*)closure; + OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive*)comp->data(); + + if(prim) { + FlatClosure flat; + flat.prim = prim; + flat.weight = weight; + + switch(prim->category()) { + case ClosurePrimitive::BSDF: { + if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + return; + + OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)prim; + ustring scattering = bsdf->scattering(); + + /* no caustics option */ + if(no_glossy && scattering == OSL::Labels::GLOSSY) + return; + + /* 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; + + flat.sample_weight = sample_weight; + sd->osl_closure.bsdf_sample_sum = sample_sum; + + /* scattering flags */ + if(scattering == OSL::Labels::DIFFUSE) + sd->flag |= SD_BSDF_HAS_EVAL; + else if(scattering == OSL::Labels::GLOSSY) + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + + /* add */ + sd->osl_closure.bsdf[sd->osl_closure.num_bsdf++] = flat; + break; + } + case ClosurePrimitive::Emissive: { + if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + return; + + /* sample weight */ + float sample_weight = fabsf(average(weight)); + float sample_sum = sd->osl_closure.emissive_sample_sum + sample_weight; + + flat.sample_weight = sample_weight; + sd->osl_closure.emissive_sample_sum = sample_sum; + + /* flag */ + sd->flag |= SD_EMISSION; + + sd->osl_closure.emissive[sd->osl_closure.num_emissive++] = flat; + break; + } + case ClosurePrimitive::BSSRDF: + case ClosurePrimitive::Holdout: + case ClosurePrimitive::Debug: + break; /* not implemented */ + case ClosurePrimitive::Background: + case ClosurePrimitive::Volume: + break; /* not relevant */ + } + } + } + else if(closure->type == OSL::ClosureColor::MUL) { + OSL::ClosureMul *mul = (OSL::ClosureMul*)closure; + flatten_surface_closure_tree(sd, no_glossy, mul->closure, TO_FLOAT3(mul->weight) * weight); + } + else if(closure->type == OSL::ClosureColor::ADD) { + OSL::ClosureAdd *add = (OSL::ClosureAdd*)closure; + flatten_surface_closure_tree(sd, no_glossy, add->closureA, weight); + flatten_surface_closure_tree(sd, no_glossy, add->closureB, weight); + } +} + +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; + 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); + + /* 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.surface_state[sd->shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[sd->shader]), *globals); + + /* flatten closure tree */ + sd->osl_closure.bsdf_sample_sum = 0.0f; + sd->osl_closure.emissive_sample_sum = 0.0f; + sd->osl_closure.num_bsdf = 0; + sd->osl_closure.num_emissive = 0; + sd->osl_closure.randb = randb; + + if(globals->Ci) { + bool no_glossy = (path_flag & PATH_RAY_DIFFUSE) && kernel_data.integrator.no_caustics; + flatten_surface_closure_tree(sd, no_glossy, globals->Ci); + } +} + +/* Background */ + +static float3 flatten_background_closure_tree(const OSL::ClosureColor *closure) +{ + /* OSL gives use a closure tree, if we are shading for background there + * is only one supported closure type at the moment, which has no evaluation + * functions, so we just sum the weights */ + + if(closure->type == OSL::ClosureColor::COMPONENT) { + OSL::ClosureComponent *comp = (OSL::ClosureComponent*)closure; + OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive*)comp->data(); + + if(prim && prim->category() == OSL::ClosurePrimitive::Background) + return make_float3(1.0f, 1.0f, 1.0f); + } + else if(closure->type == OSL::ClosureColor::MUL) { + OSL::ClosureMul *mul = (OSL::ClosureMul*)closure; + + return TO_FLOAT3(mul->weight) * flatten_background_closure_tree(mul->closure); + } + else if(closure->type == OSL::ClosureColor::ADD) { + OSL::ClosureAdd *add = (OSL::ClosureAdd*)closure; + + return flatten_background_closure_tree(add->closureA) + + flatten_background_closure_tree(add->closureB); + } + + return make_float3(0.0f, 0.0f, 0.0f); +} + +float3 OSLShader::eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag) +{ + /* gather pointers */ + OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl*)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); + + /* 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); + + /* return background color immediately */ + if(globals->Ci) + return flatten_background_closure_tree(globals->Ci); + + return make_float3(0.0f, 0.0f, 0.0f); +} + +/* Volume */ + +static void flatten_volume_closure_tree(ShaderData *sd, + const OSL::ClosureColor *closure, float3 weight = make_float3(1.0f, 1.0f, 1.0f)) +{ + /* OSL gives use a closure tree, we flatten it into arrays per + * closure type, for evaluation, sampling, etc later on. */ + + if(closure->type == OSL::ClosureColor::COMPONENT) { + OSL::ClosureComponent *comp = (OSL::ClosureComponent*)closure; + OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive*)comp->data(); + + if(prim) { + FlatClosure flat; + flat.prim = prim; + flat.weight = weight; + + switch(prim->category()) { + case ClosurePrimitive::Volume: { + if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + return; + + /* sample weight */ + float sample_weight = fabsf(average(weight)); + float sample_sum = sd->osl_closure.volume_sample_sum + sample_weight; + + flat.sample_weight = sample_weight; + sd->osl_closure.volume_sample_sum = sample_sum; + + /* add */ + sd->osl_closure.volume[sd->osl_closure.num_volume++] = flat; + break; + } + case ClosurePrimitive::Holdout: + case ClosurePrimitive::Debug: + break; /* not implemented */ + case ClosurePrimitive::Background: + case ClosurePrimitive::BSDF: + case ClosurePrimitive::Emissive: + case ClosurePrimitive::BSSRDF: + break; /* not relevant */ + } + } + } + else if(closure->type == OSL::ClosureColor::MUL) { + OSL::ClosureMul *mul = (OSL::ClosureMul*)closure; + flatten_volume_closure_tree(sd, mul->closure, TO_FLOAT3(mul->weight) * weight); + } + else if(closure->type == OSL::ClosureColor::ADD) { + OSL::ClosureAdd *add = (OSL::ClosureAdd*)closure; + flatten_volume_closure_tree(sd, add->closureA, weight); + flatten_volume_closure_tree(sd, add->closureB, weight); + } +} + +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; + 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); + + /* setup shader globals from shader data */ + sd->osl_ctx = ctx; + shaderdata_to_shaderglobals(kg, sd, path_flag, globals); + + /* execute shader */ + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.volume_state[sd->shader]), *globals); + + /* retrieve resulting closures */ + sd->osl_closure.volume_sample_sum = 0.0f; + sd->osl_closure.num_volume = 0; + sd->osl_closure.randb = randb; + + if(globals->Ci) + flatten_volume_closure_tree(sd, globals->Ci); +} + +/* Displacement */ + +void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd) +{ + /* gather pointers */ + OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl*)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); + + /* setup shader globals from shader data */ + sd->osl_ctx = ctx; + shaderdata_to_shaderglobals(kg, sd, 0, globals); + + /* execute shader */ + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.displacement_state[sd->shader]), *globals); + + /* get back position */ + sd->P = TO_FLOAT3(globals->P); +} + +void OSLShader::release(KernelGlobals *kg, const ShaderData *sd) +{ + OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl*)kg->osl.ss; + OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data); + + ssi->release_context((OSL::pvt::ShadingContext*)sd->osl_ctx, tdata->thread_info); +} + +/* BSDF Closure */ + +int OSLShader::bsdf_sample(const ShaderData *sd, float randu, float randv, float3& eval, float3& omega_in, differential3& domega_in, float& pdf) +{ + OSL::BSDFClosure *sample_bsdf = NULL; + int label = LABEL_NONE; + float r = sd->osl_closure.randb*sd->osl_closure.bsdf_sample_sum; + float sample_sum = 0.0f; + + pdf = 0.0f; + + if(sd->osl_closure.bsdf_sample_sum == 0.0f) + return LABEL_NONE; + + /* find a closure to sample */ + for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { + const FlatClosure *flat = &sd->osl_closure.bsdf[i]; + sample_sum += flat->sample_weight; + + if(r > sample_sum) + continue; + + /* sample BSDF closure */ + sample_bsdf = (OSL::BSDFClosure*)flat->prim; + ustring ulabel; + + ulabel = sample_bsdf->sample(TO_VEC3(sd->Ng), + TO_VEC3(sd->I), TO_VEC3(sd->dI.dx), TO_VEC3(sd->dI.dy), + randu, randv, + TO_VEC3(omega_in), TO_VEC3(domega_in.dx), TO_VEC3(domega_in.dy), + pdf, TO_COLOR3(eval)); + + /* convert OSL label */ + if(ulabel == OSL::Labels::REFLECT) + label = LABEL_REFLECT; + else if(ulabel == OSL::Labels::TRANSMIT) + label = LABEL_TRANSMIT; + else + return LABEL_NONE; /* sampling failed */ + + /* convert scattering to our bitflag label */ + ustring uscattering = sample_bsdf->scattering(); + + if(uscattering == OSL::Labels::DIFFUSE) + label |= LABEL_DIFFUSE; + else if(uscattering == OSL::Labels::GLOSSY) + label |= LABEL_GLOSSY; + else if(uscattering == OSL::Labels::SINGULAR) + label |= LABEL_SINGULAR; + else + label |= LABEL_STRAIGHT; + + /* eval + pdf */ + eval *= flat->weight; + pdf *= flat->sample_weight; + + break; + } + + if(!sample_bsdf || pdf == 0.0f) + return LABEL_NONE; + + /* add eval/pdf from other BSDF closures */ + for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { + const FlatClosure *flat = &sd->osl_closure.bsdf[i]; + OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)flat->prim; + + if(bsdf != sample_bsdf) { + OSL::Color3 bsdf_eval; + float bsdf_pdf = 0.0f; + + if(dot(sd->Ng, omega_in) >= 0.0f) + bsdf_eval = bsdf->eval_reflect(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); + else + bsdf_eval = bsdf->eval_transmit(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); + + if(bsdf_pdf != 0.0f) { + eval += TO_FLOAT3(bsdf_eval)*flat->weight; + pdf += bsdf_pdf*flat->sample_weight; + } + } + } + + pdf *= 1.0f/(sd->osl_closure.bsdf_sample_sum); + + return label; +} + +float3 OSLShader::bsdf_eval(const ShaderData *sd, const float3& omega_in, float& pdf) +{ + float3 eval = make_float3(0.0f, 0.0f, 0.0f); + + pdf = 0.0f; + + for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { + const FlatClosure *flat = &sd->osl_closure.bsdf[i]; + OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)flat->prim; + OSL::Color3 bsdf_eval; + float bsdf_pdf = 0.0f; + + if(dot(sd->Ng, omega_in) >= 0.0f) + bsdf_eval = bsdf->eval_reflect(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); + else + bsdf_eval = bsdf->eval_transmit(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); + + if(bsdf_pdf != 0.0f) { + eval += TO_FLOAT3(bsdf_eval)*flat->weight; + pdf += bsdf_pdf*flat->sample_weight; + } + } + + pdf *= 1.0f/sd->osl_closure.bsdf_sample_sum; + + return eval; +} + +/* Emissive Closure */ + +float3 OSLShader::emissive_eval(const ShaderData *sd) +{ + float3 eval = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i < sd->osl_closure.num_emissive; i++) { + const FlatClosure *flat = &sd->osl_closure.emissive[i]; + OSL::EmissiveClosure *emissive = (OSL::EmissiveClosure*)flat->prim; + OSL::Color3 emissive_eval = emissive->eval(TO_VEC3(sd->Ng), TO_VEC3(sd->I)); + eval += TO_FLOAT3(emissive_eval)*flat->weight; + } + + return eval; +} + +void OSLShader::emissive_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *I, float *pdf) +{ + float r = sd->osl_closure.randb*sd->osl_closure.emissive_sample_sum; + float sample_sum = 0.0f; + + *pdf = 0.0f; + + if(sd->osl_closure.emissive_sample_sum == 0.0f) + return; + + /* find a closure to sample */ + for(int i = 0; i < sd->osl_closure.num_emissive; i++) { + const FlatClosure *flat = &sd->osl_closure.emissive[i]; + sample_sum += flat->sample_weight; + + if(r <= sample_sum) { + /* sample emissive closure */ + OSL::EmissiveClosure *emissive = (OSL::EmissiveClosure*)flat->prim; + emissive->sample(TO_VEC3(sd->Ng), randu, randv, TO_VEC3(*I), *pdf); + *eval = flat->weight; + *pdf *= flat->sample_weight/sd->osl_closure.emissive_sample_sum; + return; + } + } +} + +/* Volume Closure */ + +float3 OSLShader::volume_eval_phase(const ShaderData *sd, const float3 omega_in, const float3 omega_out) +{ + float3 eval = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i < sd->osl_closure.num_volume; i++) { + const FlatClosure *flat = &sd->osl_closure.volume[i]; + OSL::VolumeClosure *volume = (OSL::VolumeClosure*)flat->prim; + OSL::Color3 volume_eval = volume->eval_phase(TO_VEC3(omega_in), TO_VEC3(omega_out)); + eval += TO_FLOAT3(volume_eval)*flat->weight; + } + + return eval; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h new file mode 100644 index 00000000000..2e5279c12ce --- /dev/null +++ b/intern/cycles/kernel/osl/osl_shader.h @@ -0,0 +1,87 @@ +/* + * 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 __OSL_SHADER_H__ +#define __OSL_SHADER_H__ + +#ifdef WITH_OSL + +/* OSL Shader Engine + * + * Holds all variables to execute and use OSL shaders from the kernel. These + * are initialized externally by OSLShaderManager before rendering starts. + * + * Before/after a thread starts rendering, thread_init/thread_free must be + * called, which will store any per thread OSL state in thread local storage. + * This means no thread state must be passed along in the kernel itself. + */ + +#include +#include + +#include "kernel_types.h" + +#include "util_map.h" +#include "util_param.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +namespace OSL = ::OSL; + +class OSLRenderServices; +class Scene; +class ShaderData; +class differential3; +class KernelGlobals; + +class OSLShader { +public: + /* init */ + static void register_closures(OSL::ShadingSystem *ss); + + /* per thread data */ + static void thread_init(KernelGlobals *kg); + static void thread_free(KernelGlobals *kg); + + /* eval */ + static void eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag); + static float3 eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag); + static void eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag); + static void eval_displacement(KernelGlobals *kg, ShaderData *sd); + + /* sample & eval */ + static int bsdf_sample(const ShaderData *sd, float randu, float randv, + float3& eval, float3& omega_in, differential3& domega_in, float& pdf); + static float3 bsdf_eval(const ShaderData *sd, const float3& omega_in, float& pdf); + static float3 emissive_eval(const ShaderData *sd); + static void emissive_sample(const ShaderData *sd, float randu, float randv, + float3 *eval, float3 *I, float *pdf); + static float3 volume_eval_phase(const ShaderData *sd, const float3 omega_in, + const float3 omega_out); + + /* release */ + static void release(KernelGlobals *kg, const ShaderData *sd); +}; + +CCL_NAMESPACE_END + +#endif + +#endif /* __OSL_SHADER_H__ */ + diff --git a/intern/cycles/kernel/osl/vol_subsurface.cpp b/intern/cycles/kernel/osl/vol_subsurface.cpp new file mode 100644 index 00000000000..0cd3060051b --- /dev/null +++ b/intern/cycles/kernel/osl/vol_subsurface.cpp @@ -0,0 +1,135 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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 + +#include + +#include "osl_closures.h" + +CCL_NAMESPACE_BEGIN + +using namespace OSL; + +// Computes scattering properties based on Jensen's reparameterization +// described in: +// http://graphics.ucsd.edu/~henrik/papers/fast_bssrdf/ + +class SubsurfaceClosure : public VolumeClosure { +public: + float m_g; + float m_eta; + Color3 m_mfp, m_albedo; + static float root_find_Rd(const float Rd0, const float A) { + // quick exit for trivial cases + if (Rd0 <= 0) return 0; + const float A43 = A * 4.0f / 3.0f; + // Find alpha such that f(alpha) = Rd (see eq.15). A simple bisection + // method can be used because this function is monotonicaly increasing. + float lo = 0, hi = 1; + for (int i = 0; i < 20; i++) { // 2^20 divisions should be sufficient + // eval function at midpoint + float alpha = 0.5f * (lo + hi); + float a1 = sqrtf(3 * (1 - alpha)); + float e1 = expf(-a1); + float e2 = expf(-A43 * a1); + float Rd = 0.5f * alpha * (1 + e2) * e1 - Rd0; + if (fabsf(Rd) < 1e-6f) + return alpha; // close enough + else if (Rd > 0) + hi = alpha; // root is on left side + else + lo = alpha; // root is on right side + } + // didn't quite converge, pick result in the middle of remaining interval + return 0.5f * (lo + hi); + } + SubsurfaceClosure() { } + + void setup() + { + ior(m_eta); + + if (m_g >= 0.99f) m_g = 0.99f; + if (m_g <= -0.99f) m_g = -0.99f; + + // eq.10 + float inv_eta = 1 / m_eta; + float Fdr = -1.440f * inv_eta * inv_eta + 0.710 * inv_eta + 0.668f + 0.0636 * m_eta; + float A = (1 + Fdr) / (1 - Fdr); + // compute sigma_s, sigma_a (eq.16) + Color3 alpha_prime = Color3 (root_find_Rd(m_albedo[0], A), + root_find_Rd(m_albedo[1], A), + root_find_Rd(m_albedo[2], A)); + Color3 sigma_t_prime = Color3 (m_mfp.x > 0 ? 1.0f / (m_mfp[0] * sqrtf(3 * (1 - alpha_prime[0]))) : 0.0f, + m_mfp.y > 0 ? 1.0f / (m_mfp[1] * sqrtf(3 * (1 - alpha_prime[1]))) : 0.0f, + m_mfp.z > 0 ? 1.0f / (m_mfp[2] * sqrtf(3 * (1 - alpha_prime[2]))) : 0.0f); + Color3 sigma_s_prime = alpha_prime * sigma_t_prime; + + sigma_s((1.0f / (1 - m_g)) * sigma_s_prime); + sigma_a(sigma_t_prime - sigma_s_prime); + } + + bool mergeable (const ClosurePrimitive *other) const { + const SubsurfaceClosure *comp = (const SubsurfaceClosure *)other; + return m_g == comp->m_g && VolumeClosure::mergeable(other); + } + + size_t memsize () const { return sizeof(*this); } + + const char *name () const { return "subsurface"; } + + void print_on (std::ostream &out) const { + out << name() << " ()"; + } + + virtual Color3 eval_phase(const Vec3 &omega_in, const Vec3 &omega_out) const { + float costheta = omega_in.dot(omega_out); + float ph = 0.25f * float(M_1_PI) * ((1 - m_g * m_g) / powf(1 + m_g * m_g - 2.0f * m_g * costheta, 1.5f)); + return Color3 (ph, ph, ph); + } +}; + + + +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) }; + +CLOSURE_PREPARE(closure_subsurface_prepare, SubsurfaceClosure) + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/bsdf.h b/intern/cycles/kernel/svm/bsdf.h new file mode 100644 index 00000000000..18c1da73fbd --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf.h @@ -0,0 +1,135 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __OSL_BSDF_H__ +#define __OSL_BSDF_H__ + +CCL_NAMESPACE_BEGIN + +__device float fresnel_dielectric(float eta, const float3 N, + const float3 I, float3 *R, float3 *T, +#ifdef __RAY_DIFFERENTIALS__ + const float3 dIdx, const float3 dIdy, + float3 *dRdx, float3 *dRdy, + float3 *dTdx, float3 *dTdy, +#endif + bool *is_inside) +{ + float cos = dot(N, I), neta; + float3 Nn; + // compute reflection + *R =(2 * cos)* N - I; +#ifdef __RAY_DIFFERENTIALS__ + *dRdx = (2 * dot(N, dIdx)) * N - dIdx; + *dRdy = (2 * dot(N, dIdy)) * N - dIdy; +#endif + // check which side of the surface we are on + if(cos > 0) { + // we are on the outside of the surface, going in + neta = 1 / eta; + Nn = N; + *is_inside = false; + } else { + // we are inside the surface, + cos = -cos; + neta = eta; + Nn = -N; + *is_inside = true; + } + *R =(2 * cos)* Nn - I; + float arg = 1 -(neta * neta *(1 -(cos * cos))); + if(arg < 0) { + *T= make_float3(0.0f, 0.0f, 0.0f); +#ifdef __RAY_DIFFERENTIALS__ + *dTdx= make_float3(0.0f, 0.0f, 0.0f); + *dTdy= make_float3(0.0f, 0.0f, 0.0f); +#endif + return 1; // total internal reflection + } else { + float dnp = sqrtf(arg); + float nK =(neta * cos)- dnp; + *T = -(neta * I)+(nK * Nn); +#ifdef __RAY_DIFFERENTIALS__ + *dTdx = -(neta * dIdx) + ((neta - neta * neta * cos / dnp) * dot(dIdx, Nn)) * Nn; + *dTdy = -(neta * dIdy) + ((neta - neta * neta * cos / dnp) * dot(dIdy, Nn)) * Nn; +#endif + // compute Fresnel terms + float cosTheta1 = cos; // N.R + float cosTheta2 = -dot(Nn, *T); + float pPara =(cosTheta1 - eta * cosTheta2)/(cosTheta1 + eta * cosTheta2); + float pPerp =(eta * cosTheta1 - cosTheta2)/(eta * cosTheta1 + cosTheta2); + return 0.5f * (pPara * pPara + pPerp * pPerp); + } +} + +__device float fresnel_dielectric_cos(float cosi, float eta) +{ + // compute fresnel reflectance without explicitly computing + // the refracted direction + float c = fabsf(cosi); + float g = eta * eta - 1 + c * c; + if(g > 0) { + g = sqrtf(g); + float A =(g - c)/(g + c); + float B =(c *(g + c)- 1)/(c *(g - c)+ 1); + return 0.5f * A * A *(1 + B * B); + } + return 1.0f; // TIR(no refracted component) +} + +__device float fresnel_conductor(float cosi, float eta, float k) +{ + float tmp_f = eta * eta + k * k; + float tmp = tmp_f * cosi * cosi; + float Rparl2 =(tmp -(2.0f * eta * cosi)+ 1)/ + (tmp +(2.0f * eta * cosi)+ 1); + float Rperp2 =(tmp_f -(2.0f * eta * cosi)+ cosi * cosi)/ + (tmp_f +(2.0f * eta * cosi)+ cosi * cosi); + return(Rparl2 + Rperp2) * 0.5f; +} + +__device float smooth_step(float edge0, float edge1, float x) +{ + float result; + if(x < edge0) result = 0.0f; + else if(x >= edge1) result = 1.0f; + else { + float t = (x - edge0)/(edge1 - edge0); + result = (3.0f-2.0f*t)*(t*t); + } + return result; +} + +CCL_NAMESPACE_END + +#endif /* __OSL_BSDF_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h new file mode 100644 index 00000000000..40bae72a6c5 --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h @@ -0,0 +1,154 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_ASHIKHMIN_VELVET_H__ +#define __BSDF_ASHIKHMIN_VELVET_H__ + +CCL_NAMESPACE_BEGIN + +typedef struct BsdfAshikhminVelvetClosure { + //float3 m_N; + float m_invsigma2; +} BsdfAshikhminVelvetClosure; + +__device void bsdf_ashikhmin_velvet_setup(ShaderData *sd, float3 N, float sigma) +{ + BsdfAshikhminVelvetClosure *self = (BsdfAshikhminVelvetClosure*)sd->svm_closure_data; + + sigma = fmaxf(sigma, 0.01f); + + //self->m_N = N; + self->m_invsigma2 = 1.0f/(sigma * sigma); + + sd->svm_closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; + sd->flag |= SD_BSDF_HAS_EVAL; +} + +__device void bsdf_ashikhmin_velvet_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfAshikhminVelvetClosure *self = (const BsdfAshikhminVelvetClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO > 0 && cosNI > 0) { + float3 H = normalize(omega_in + I); + + float cosNH = dot(m_N, H); + float cosHO = fabsf(dot(I, H)); + + float cosNHdivHO = cosNH / cosHO; + cosNHdivHO = fmaxf(cosNHdivHO, 0.00001f); + + 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 D = expf(-cotangent2 * self->m_invsigma2) * self->m_invsigma2 * M_1_PI_F / sinNH4; + float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically + + float out = 0.25f * (D * G) / cosNO; + + *pdf = 0.5f * M_1_PI_F; + return make_float3(out, out, out); + } + return make_float3(0, 0, 0); +} + +__device float3 bsdf_ashikhmin_velvet_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_ashikhmin_velvet_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfAshikhminVelvetClosure *self = (const BsdfAshikhminVelvetClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // we are viewing the surface from above - send a ray out with uniform + // distribution over the hemisphere + sample_uniform_hemisphere(m_N, randu, randv, omega_in, pdf); + + if(dot(sd->Ng, *omega_in) > 0) { + float3 H = normalize(*omega_in + sd->I); + + float cosNI = dot(m_N, *omega_in); + float cosNO = dot(m_N, sd->I); + float cosNH = dot(m_N, H); + float cosHO = fabsf(dot(sd->I, H)); + + float cosNHdivHO = cosNH / cosHO; + cosNHdivHO = fmaxf(cosNHdivHO, 0.00001f); + + 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 D = expf(-cotangent2 * self->m_invsigma2) * self->m_invsigma2 * M_1_PI_F / sinNH4; + float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically + + float power = 0.25f * (D * G) / cosNO; + + *eval = make_float3(power, power, power); + +#ifdef __RAY_DIFFERENTIALS__ + // TODO: find a better approximation for the retroreflective bounce + *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; + *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; + *domega_in_dx *= 125; + *domega_in_dy *= 125; +#endif + } else + *pdf = 0.0f; + + return LABEL_REFLECT|LABEL_DIFFUSE; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_ASHIKHMIN_VELVET_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h new file mode 100644 index 00000000000..c505de036aa --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_diffuse.h @@ -0,0 +1,166 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_DIFFUSE_H__ +#define __BSDF_DIFFUSE_H__ + +CCL_NAMESPACE_BEGIN + +/* DIFFUSE */ + +typedef struct BsdfDiffuseClosure { + //float3 m_N; +} BsdfDiffuseClosure; + +__device void bsdf_diffuse_setup(ShaderData *sd, float3 N) +{ + //BsdfDiffuseClosure *self = (BsdfDiffuseClosure*)sd->svm_closure_data; + //self->m_N = N; + + sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; + sd->flag |= SD_BSDF_HAS_EVAL; +} + +__device void bsdf_diffuse_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_diffuse_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + //const BsdfDiffuseClosure *self = (const BsdfDiffuseClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cos_pi = fmaxf(dot(m_N, omega_in), 0.0f) * M_1_PI_F; + *pdf = cos_pi; + return make_float3(cos_pi, cos_pi, cos_pi); +} + +__device float3 bsdf_diffuse_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_diffuse_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_diffuse_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + //const BsdfDiffuseClosure *self = (const BsdfDiffuseClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // distribution over the hemisphere + sample_cos_hemisphere(m_N, randu, randv, omega_in, pdf); + + if(dot(sd->Ng, *omega_in) > 0.0f) { + *eval = make_float3(*pdf, *pdf, *pdf); +#ifdef __RAY_DIFFERENTIALS__ + // TODO: find a better approximation for the diffuse bounce + *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; + *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; + *domega_in_dx *= 125; + *domega_in_dy *= 125; +#endif + } + else + *pdf = 0.0f; + + return LABEL_REFLECT|LABEL_DIFFUSE; +} + +/* TRANSLUCENT */ + +typedef struct BsdfTranslucentClosure { + //float3 m_N; +} BsdfTranslucentClosure; + +__device void bsdf_translucent_setup(ShaderData *sd, float3 N) +{ + //BsdfTranslucentClosure *self = (BsdfTranslucentClosure*)sd->svm_closure_data; + //self->m_N = N; + + sd->svm_closure = CLOSURE_BSDF_TRANSLUCENT_ID; + sd->flag |= SD_BSDF_HAS_EVAL; +} + +__device void bsdf_translucent_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_translucent_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float3 bsdf_translucent_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + //const BsdfTranslucentClosure *self = (const BsdfTranslucentClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cos_pi = fmaxf(-dot(m_N, omega_in), 0.0f) * M_1_PI_F; + *pdf = cos_pi; + return make_float3 (cos_pi, cos_pi, cos_pi); +} + +__device float bsdf_translucent_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_translucent_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + //const BsdfTranslucentClosure *self = (const BsdfTranslucentClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // we are viewing the surface from the right side - send a ray out with cosine + // distribution over the hemisphere + sample_cos_hemisphere (-m_N, randu, randv, omega_in, pdf); + if(dot(sd->Ng, *omega_in) < 0) { + *eval = make_float3(*pdf, *pdf, *pdf); +#ifdef __RAY_DIFFERENTIALS__ + // TODO: find a better approximation for the diffuse bounce + *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; + *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; + *domega_in_dx *= -125; + *domega_in_dy *= -125; +#endif + } else + *pdf = 0; + + return LABEL_TRANSMIT|LABEL_DIFFUSE; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_DIFFUSE_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h new file mode 100644 index 00000000000..b6baa1e90d8 --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -0,0 +1,493 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_MICROFACET_H__ +#define __BSDF_MICROFACET_H__ + +CCL_NAMESPACE_BEGIN + +/* GGX */ + +typedef struct BsdfMicrofacetGGXClosure { + //float3 m_N; + float m_ag; + float m_eta; + int m_refractive; +} BsdfMicrofacetGGXClosure; + +__device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, float eta, bool refractive) +{ + BsdfMicrofacetGGXClosure *self = (BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + + //self->m_N = N; + self->m_ag = clamp(ag, 1e-5f, 1.0f); + self->m_eta = eta; + self->m_refractive = (refractive)? 1: 0; + + if(refractive) + sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; + else + sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_ID; + + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; +} + +__device void bsdf_microfacet_ggx_blur(ShaderData *sd, float roughness) +{ + BsdfMicrofacetGGXClosure *self = (BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + self->m_ag = fmaxf(roughness, self->m_ag); +} + +__device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + if(self->m_refractive == 1) return make_float3 (0, 0, 0); + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNI > 0 && cosNO > 0) { + // get half vector + float3 Hr = normalize(omega_in + I); + // eq. 20: (F*G*D)/(4*in*on) + // eq. 33: first we calculate D(m) with m=Hr: + float alpha2 = self->m_ag * self->m_ag; + float cosThetaM = dot(m_N, Hr); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (M_PI_F * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + float out = (G * D) * 0.25f / cosNO; + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + *pdf = pm * 0.25f / dot(Hr, I); + return make_float3 (out, out, out); + } + return make_float3 (0, 0, 0); +} + +__device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + if(self->m_refractive == 0) return make_float3 (0, 0, 0); + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO <= 0 || cosNI >= 0) + return make_float3 (0, 0, 0); // vectors on same side -- not possible + // compute half-vector of the refraction (eq. 16) + float3 ht = -(self->m_eta * omega_in + I); + float3 Ht = normalize(ht); + float cosHO = dot(Ht, I); + + float cosHI = dot(Ht, omega_in); + // eq. 33: first we calculate D(m) with m=Ht: + float alpha2 = self->m_ag * self->m_ag; + float cosThetaM = dot(m_N, Ht); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (M_PI_F * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // probability + float invHt2 = 1 / dot(ht, ht); + *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (self->m_eta * self->m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D) * invHt2) / cosNO; + return make_float3 (out, out, out); +} + +__device float bsdf_microfacet_ggx_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cosNO = dot(m_N, sd->I); + if(cosNO > 0) { + float3 X, Y, Z = m_N; + make_orthonormals(Z, &X, &Y); + // generate a random microfacet normal m + // eq. 35,36: + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + //tttt and sin(atan(x)) == x/sqrt(1+x^2) + float alpha2 = self->m_ag * self->m_ag; + float tanThetaM2 = alpha2 * randu / (1 - randu); + float cosThetaM = 1 / sqrtf(1 + tanThetaM2); + float sinThetaM = cosThetaM * sqrtf(tanThetaM2); + float phiM = 2 * M_PI_F * randv; + float3 m = (cosf(phiM) * sinThetaM) * X + + (sinf(phiM) * sinThetaM) * Y + + cosThetaM * Z; + if(self->m_refractive == 0) { + float cosMO = dot(m, sd->I); + if(cosMO > 0) { + // eq. 39 - compute actual reflected direction + *omega_in = 2 * cosMO * m - sd->I; + if(dot(sd->Ng, *omega_in) > 0) { + // microfacet normal is visible to this ray + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (M_PI_F * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + *pdf = pm * 0.25f / cosMO; + // eval BRDF*cosNI + float cosNI = dot(m_N, *omega_in); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // eq. 20: (F*G*D)/(4*in*on) + float out = (G * D) * 0.25f / cosNO; + *eval = make_float3(out, out, out); +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = (2 * dot(m, sd->dI.dx)) * m - sd->dI.dx; + *domega_in_dy = (2 * dot(m, sd->dI.dy)) * m - sd->dI.dy; + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + *domega_in_dx *= 10; + *domega_in_dy *= 10; +#endif + } + } + } else { + // CAUTION: the i and o variables are inverted relative to the paper + // eq. 39 - compute actual refractive direction + float3 R, T; +#ifdef __RAY_DIFFERENTIALS__ + float3 dRdx, dRdy, dTdx, dTdy; +#endif + bool inside; + fresnel_dielectric(self->m_eta, m, sd->I, &R, &T, +#ifdef __RAY_DIFFERENTIALS__ + sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, +#endif + &inside); + + if(!inside) { + *omega_in = T; +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = dTdx; + *domega_in_dy = dTdy; +#endif + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = alpha2 / (M_PI_F * cosThetaM4 * (alpha2 + tanThetaM2) * (alpha2 + tanThetaM2)); + // eq. 24 + float pm = D * cosThetaM; + // eval BRDF*cosNI + float cosNI = dot(m_N, *omega_in); + // eq. 34: now calculate G1(i,m) and G1(o,m) + float G1o = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / (cosNO * cosNO))); + float G1i = 2 / (1 + sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / (cosNI * cosNI))); + float G = G1o * G1i; + // eq. 21 + float cosHI = dot(m, *omega_in); + float cosHO = dot(m, sd->I); + float Ht2 = self->m_eta * cosHI + cosHO; + Ht2 *= Ht2; + float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D)) / (cosNO * Ht2); + // eq. 38 and eq. 17 + *pdf = pm * (self->m_eta * self->m_eta) * fabsf(cosHI) / Ht2; + *eval = make_float3(out, out, out); +#ifdef __RAY_DIFFERENTIALS__ + // Since there is some blur to this refraction, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + *domega_in_dx *= 10; + *domega_in_dy *= 10; +#endif + } + } + } + return (self->m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; +} + +/* BECKMANN */ + +typedef struct BsdfMicrofacetBeckmannClosure { + //float3 m_N; + float m_ab; + float m_eta; + int m_refractive; +} BsdfMicrofacetBeckmannClosure; + +__device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, float eta, bool refractive) +{ + BsdfMicrofacetBeckmannClosure *self = (BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + + //self->m_N = N; + self->m_ab = clamp(ab, 1e-5f, 1.0f); + self->m_eta = eta; + self->m_refractive = (refractive)? 1: 0; + + if(refractive) + sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; + else + sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; + + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; +} + +__device void bsdf_microfacet_beckmann_blur(ShaderData *sd, float roughness) +{ + BsdfMicrofacetBeckmannClosure *self = (BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + self->m_ab = fmaxf(roughness, self->m_ab); +} + +__device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + if(self->m_refractive == 1) return make_float3 (0, 0, 0); + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO > 0 && cosNI > 0) { + // get half vector + float3 Hr = normalize(omega_in + I); + // eq. 20: (F*G*D)/(4*in*on) + // eq. 25: first we calculate D(m) with m=Hr: + float alpha2 = self->m_ab * self->m_ab; + float cosThetaM = dot(m_N, Hr); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + float out = (G * D) * 0.25f / cosNO; + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + *pdf = pm * 0.25f / dot(Hr, I); + return make_float3 (out, out, out); + } + return make_float3 (0, 0, 0); +} + +__device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + if(self->m_refractive == 0) return make_float3 (0, 0, 0); + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO <= 0 || cosNI >= 0) + return make_float3 (0, 0, 0); + // compute half-vector of the refraction (eq. 16) + float3 ht = -(self->m_eta * omega_in + I); + float3 Ht = normalize(ht); + float cosHO = dot(Ht, I); + + float cosHI = dot(Ht, omega_in); + // eq. 33: first we calculate D(m) with m=Ht: + float alpha2 = self->m_ab * self->m_ab; + float cosThetaM = dot(m_N, Ht); + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // probability + float invHt2 = 1 / dot(ht, ht); + *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (self->m_eta * self->m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D) * invHt2) / cosNO; + return make_float3 (out, out, out); +} + +__device float bsdf_microfacet_beckmann_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cosNO = dot(m_N, sd->I); + if(cosNO > 0) { + float3 X, Y, Z = m_N; + make_orthonormals(Z, &X, &Y); + // generate a random microfacet normal m + // eq. 35,36: + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + //tttt and sin(atan(x)) == x/sqrt(1+x^2) + float alpha2 = self->m_ab * self->m_ab; + float tanThetaM = sqrtf(-alpha2 * logf(1 - randu)); + float cosThetaM = 1 / sqrtf(1 + tanThetaM * tanThetaM); + float sinThetaM = cosThetaM * tanThetaM; + float phiM = 2 * M_PI_F * randv; + float3 m = (cosf(phiM) * sinThetaM) * X + + (sinf(phiM) * sinThetaM) * Y + + cosThetaM * Z; + + if(self->m_refractive == 0) { + float cosMO = dot(m, sd->I); + if(cosMO > 0) { + // eq. 39 - compute actual reflected direction + *omega_in = 2 * cosMO * m - sd->I; + if(dot(sd->Ng, *omega_in) > 0) { + // microfacet normal is visible to this ray + // eq. 25 + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = tanThetaM * tanThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); + // eq. 24 + float pm = D * cosThetaM; + // convert into pdf of the sampled direction + // eq. 38 - but see also: + // eq. 17 in http://www.graphics.cornell.edu/~bjw/wardnotes.pdf + *pdf = pm * 0.25f / cosMO; + // Eval BRDF*cosNI + float cosNI = dot(m_N, *omega_in); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // eq. 20: (F*G*D)/(4*in*on) + float out = (G * D) * 0.25f / cosNO; + *eval = make_float3(out, out, out); +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = (2 * dot(m, sd->dI.dx)) * m - sd->dI.dx; + *domega_in_dy = (2 * dot(m, sd->dI.dy)) * m - sd->dI.dy; + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + *domega_in_dx *= 10; + *domega_in_dy *= 10; +#endif + } + } + } else { + // CAUTION: the i and o variables are inverted relative to the paper + // eq. 39 - compute actual refractive direction + float3 R, T; +#ifdef __RAY_DIFFERENTIALS__ + float3 dRdx, dRdy, dTdx, dTdy; +#endif + bool inside; + fresnel_dielectric(self->m_eta, m, sd->I, &R, &T, +#ifdef __RAY_DIFFERENTIALS__ + sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, +#endif + &inside); + + if(!inside) { + *omega_in = T; +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = dTdx; + *domega_in_dy = dTdy; +#endif + + // eq. 33 + float cosThetaM2 = cosThetaM * cosThetaM; + float tanThetaM2 = tanThetaM * tanThetaM; + float cosThetaM4 = cosThetaM2 * cosThetaM2; + float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); + // eq. 24 + float pm = D * cosThetaM; + // eval BRDF*cosNI + float cosNI = dot(m_N, *omega_in); + // eq. 26, 27: now calculate G1(i,m) and G1(o,m) + float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; + float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; + float G = G1o * G1i; + // eq. 21 + float cosHI = dot(m, *omega_in); + float cosHO = dot(m, sd->I); + float Ht2 = self->m_eta * cosHI + cosHO; + Ht2 *= Ht2; + float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D)) / (cosNO * Ht2); + // eq. 38 and eq. 17 + *pdf = pm * (self->m_eta * self->m_eta) * fabsf(cosHI) / Ht2; + *eval = make_float3(out, out, out); +#ifdef __RAY_DIFFERENTIALS__ + // Since there is some blur to this refraction, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + *domega_in_dx *= 10; + *domega_in_dy *= 10; +#endif + } + } + } + return (self->m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_MICROFACET_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_reflection.h b/intern/cycles/kernel/svm/bsdf_reflection.h new file mode 100644 index 00000000000..287cc9c2506 --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_reflection.h @@ -0,0 +1,95 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_REFLECTION_H__ +#define __BSDF_REFLECTION_H__ + +CCL_NAMESPACE_BEGIN + +/* REFLECTION */ + +typedef struct BsdfReflectionClosure { + //float3 m_N; +} BsdfReflectionClosure; + +__device void bsdf_reflection_setup(ShaderData *sd, float3 N) +{ + //BsdfReflectionClosure *self = (BsdfReflectionClosure*)sd->svm_closure_data; + //self->m_N = N; + + sd->svm_closure = CLOSURE_BSDF_REFLECTION_ID; +} + +__device void bsdf_reflection_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_reflection_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float3 bsdf_reflection_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_reflection_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_reflection_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + //const BsdfReflectionClosure *self = (const BsdfReflectionClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // only one direction is possible + float cosNO = dot(m_N, sd->I); + if(cosNO > 0) { + *omega_in = (2 * cosNO) * m_N - sd->I; + if(dot(sd->Ng, *omega_in) > 0) { +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = 2 * dot(m_N, sd->dI.dx) * m_N - sd->dI.dx; + *domega_in_dy = 2 * dot(m_N, sd->dI.dy) * m_N - sd->dI.dy; +#endif + *pdf = 1; + *eval = make_float3(1, 1, 1); + } + } + return LABEL_REFLECT|LABEL_SINGULAR; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_REFLECTION_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_refraction.h b/intern/cycles/kernel/svm/bsdf_refraction.h new file mode 100644 index 00000000000..55a914f8334 --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_refraction.h @@ -0,0 +1,103 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_REFRACTION_H__ +#define __BSDF_REFRACTION_H__ + +CCL_NAMESPACE_BEGIN + +/* REFRACTION */ + +typedef struct BsdfRefractionClosure { + float m_eta; +} BsdfRefractionClosure; + +__device void bsdf_refraction_setup(ShaderData *sd, float3 N, float eta) +{ + BsdfRefractionClosure *self = (BsdfRefractionClosure*)sd->svm_closure_data; + + self->m_eta = eta; + + sd->svm_closure = CLOSURE_BSDF_REFRACTION_ID; +} + +__device void bsdf_refraction_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_refraction_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float3 bsdf_refraction_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_refraction_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_refraction_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfRefractionClosure *self = (const BsdfRefractionClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float3 R, T; +#ifdef __RAY_DIFFERENTIALS__ + float3 dRdx, dRdy, dTdx, dTdy; +#endif + bool inside; + fresnel_dielectric(self->m_eta, m_N, sd->I, &R, &T, +#ifdef __RAY_DIFFERENTIALS__ + sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, +#endif + &inside); + + if(!inside) { + *pdf = 1; + *eval = make_float3(1.0f, 1.0f, 1.0f); + *omega_in = T; +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = dTdx; + *domega_in_dy = dTdy; +#endif + } + return LABEL_TRANSMIT|LABEL_SINGULAR; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_REFRACTION_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_transparent.h b/intern/cycles/kernel/svm/bsdf_transparent.h new file mode 100644 index 00000000000..e689e3db357 --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_transparent.h @@ -0,0 +1,78 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_TRANSPARENT_H__ +#define __BSDF_TRANSPARENT_H__ + +CCL_NAMESPACE_BEGIN + +__device void bsdf_transparent_setup(ShaderData *sd) +{ + sd->svm_closure = CLOSURE_BSDF_TRANSPARENT_ID; +} + +__device void bsdf_transparent_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_transparent_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float3 bsdf_transparent_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_transparent_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_transparent_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + // only one direction is possible + *omega_in = -sd->I; +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = -sd->dI.dx; + *domega_in_dy = -sd->dI.dy; +#endif + *pdf = 1; + *eval = make_float3(1, 1, 1); + return LABEL_TRANSMIT|LABEL_STRAIGHT; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_TRANSPARENT_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h new file mode 100644 index 00000000000..bf591acc9fa --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -0,0 +1,202 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_WARD_H__ +#define __BSDF_WARD_H__ + +CCL_NAMESPACE_BEGIN + +/* WARD */ + +typedef struct BsdfWardClosure { + //float3 m_N; + //float3 m_T; + float m_ax; + float m_ay; +} BsdfWardClosure; + +__device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, float ay) +{ + BsdfWardClosure *self = (BsdfWardClosure*)sd->svm_closure_data; + + //self->m_N = N; + //self->m_T = T; + self->m_ax = clamp(ax, 1e-5f, 1.0f); + self->m_ay = clamp(ay, 1e-5f, 1.0f); + + sd->svm_closure = CLOSURE_BSDF_WARD_ID; + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; +} + +__device void bsdf_ward_blur(ShaderData *sd, float roughness) +{ + BsdfWardClosure *self = (BsdfWardClosure*)sd->svm_closure_data; + + self->m_ax = fmaxf(roughness, self->m_ax); + self->m_ay = fmaxf(roughness, self->m_ay); +} + +__device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfWardClosure *self = (const BsdfWardClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + float3 m_T = normalize(sd->dPdu); + + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNI > 0 && cosNO > 0) { + // get half vector and get x,y basis on the surface for anisotropy + float3 H = normalize(omega_in + I); // normalize needed for pdf + float3 X, Y; + make_orthonormals_tangent(m_N, m_T, &X, &Y); + // eq. 4 + float dotx = dot(H, X) / self->m_ax; + float doty = dot(H, Y) / self->m_ay; + float dotn = dot(H, m_N); + float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); + float denom = (4 * M_PI_F * self->m_ax * self->m_ay * sqrtf(cosNO * cosNI)); + float exp_val = expf(-exp_arg); + float out = cosNI * exp_val / denom; + float oh = dot(H, I); + denom = 4 * M_PI_F * self->m_ax * self->m_ay * oh * dotn * dotn * dotn; + *pdf = exp_val / denom; + return make_float3 (out, out, out); + } + return make_float3 (0, 0, 0); +} + +__device float3 bsdf_ward_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_ward_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfWardClosure *self = (const BsdfWardClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + float3 m_T = normalize(sd->dPdu); + + float cosNO = dot(m_N, sd->I); + if(cosNO > 0) { + // get x,y basis on the surface for anisotropy + float3 X, Y; + make_orthonormals_tangent(m_N, m_T, &X, &Y); + // generate random angles for the half vector + // eq. 7 (taking care around discontinuities to keep + //ttoutput angle in the right quadrant) + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + //tttt and sin(atan(x)) == x/sqrt(1+x^2) + float alphaRatio = self->m_ay / self->m_ax; + float cosPhi, sinPhi; + if(randu < 0.25f) { + float val = 4 * randu; + float tanPhi = alphaRatio * tanf(M_PI_2_F * val); + cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = tanPhi * cosPhi; + } 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) { + 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 { + float val = 1 - 4 * (1 - randu); + float tanPhi = alphaRatio * tanf(M_PI_2_F * val); + // phi = 2 * M_PI_F - phi; + cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi); + sinPhi = -tanPhi * cosPhi; + } + // eq. 6 + // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) + //tttt and sin(atan(x)) == x/sqrt(1+x^2) + float thetaDenom = (cosPhi * cosPhi) / (self->m_ax * self->m_ax) + (sinPhi * sinPhi) / (self->m_ay * self->m_ay); + float tanTheta2 = -logf(1 - randv) / thetaDenom; + float cosTheta = 1 / sqrtf(1 + tanTheta2); + float sinTheta = cosTheta * sqrtf(tanTheta2); + + float3 h; // already normalized becaused expressed from spherical coordinates + h.x = sinTheta * cosPhi; + h.y = sinTheta * sinPhi; + h.z = cosTheta; + // compute terms that are easier in local space + float dotx = h.x / self->m_ax; + float doty = h.y / self->m_ay; + float dotn = h.z; + // transform to world space + h = h.x * X + h.y * Y + h.z * m_N; + // generate the final sample + float oh = dot(h, sd->I); + omega_in->x = 2 * oh * h.x - sd->I.x; + omega_in->y = 2 * oh * h.y - sd->I.y; + omega_in->z = 2 * oh * h.z - sd->I.z; + if(dot(sd->Ng, *omega_in) > 0) { + float cosNI = dot(m_N, *omega_in); + if(cosNI > 0) { + // eq. 9 + float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); + float denom = 4 * M_PI_F * self->m_ax * self->m_ay * oh * dotn * dotn * dotn; + *pdf = expf(-exp_arg) / denom; + // compiler will reuse expressions already computed + denom = (4 * M_PI_F * self->m_ax * self->m_ay * sqrtf(cosNO * cosNI)); + float power = cosNI * expf(-exp_arg) / denom; + *eval = make_float3(power, power, power); +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; + *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; + // Since there is some blur to this reflection, make the + // derivatives a bit bigger. In theory this varies with the + // roughness but the exact relationship is complex and + // requires more ops than are practical. + *domega_in_dx *= 10; + *domega_in_dy *= 10; +#endif + } + } + } + return LABEL_REFLECT|LABEL_GLOSSY; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_WARD_H__ */ + diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h new file mode 100644 index 00000000000..7fe10f10dfc --- /dev/null +++ b/intern/cycles/kernel/svm/bsdf_westin.h @@ -0,0 +1,212 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef __BSDF_WESTIN_H__ +#define __BSDF_WESTIN_H__ + +CCL_NAMESPACE_BEGIN + +/* WESTIN BACKSCATTER */ + +typedef struct BsdfWestinBackscatterClosure { + //float3 m_N; + float m_invroughness; +} BsdfWestinBackscatterClosure; + +__device void bsdf_westin_backscatter_setup(ShaderData *sd, float3 N, float roughness) +{ + BsdfWestinBackscatterClosure *self = (BsdfWestinBackscatterClosure*)sd->svm_closure_data; + + //self->m_N = N; + roughness = clamp(roughness, 1e-5f, 1.0f); + self->m_invroughness = 1.0f/roughness; + + sd->svm_closure = CLOSURE_BSDF_WESTIN_BACKSCATTER_ID; + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; +} + +__device void bsdf_westin_backscatter_blur(ShaderData *sd, float roughness) +{ + BsdfWestinBackscatterClosure *self = (BsdfWestinBackscatterClosure*)sd->svm_closure_data; + self->m_invroughness = min(1.0f/roughness, self->m_invroughness); +} + +__device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfWestinBackscatterClosure *self = (const BsdfWestinBackscatterClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // pdf is implicitly 0 (no indirect sampling) + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO > 0 && cosNI > 0) { + float cosine = dot(I, omega_in); + *pdf = cosine > 0 ? (self->m_invroughness + 1) * powf(cosine, self->m_invroughness) : 0; + *pdf *= 0.5f * M_1_PI_F; + return make_float3 (*pdf, *pdf, *pdf); + } + return make_float3 (0, 0, 0); +} + +__device float3 bsdf_westin_backscatter_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_westin_backscatter_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfWestinBackscatterClosure *self = (const BsdfWestinBackscatterClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + float cosNO = dot(m_N, sd->I); + if(cosNO > 0) { +#ifdef __RAY_DIFFERENTIALS__ + *domega_in_dx = sd->dI.dx; + *domega_in_dy = sd->dI.dy; +#endif + float3 T, B; + make_orthonormals (sd->I, &T, &B); + float phi = 2 * M_PI_F * randu; + float cosTheta = powf(randv, 1 / (self->m_invroughness + 1)); + float sinTheta2 = 1 - cosTheta * cosTheta; + float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0; + *omega_in = (cosf(phi) * sinTheta) * T + + (sinf(phi) * sinTheta) * B + + (cosTheta) * sd->I; + if(dot(sd->Ng, *omega_in) > 0) + { + // common terms for pdf and eval + float cosNI = dot(m_N, *omega_in); + // make sure the direction we chose is still in the right hemisphere + if(cosNI > 0) + { + *pdf = 0.5f * M_1_PI_F * powf(cosTheta, self->m_invroughness); + *pdf = (self->m_invroughness + 1) * (*pdf); + *eval = make_float3(*pdf, *pdf, *pdf); +#ifdef __RAY_DIFFERENTIALS__ + // 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; +#endif + } + } + } + return LABEL_REFLECT|LABEL_GLOSSY; +} + +/* WESTIN SHEEN */ + +typedef struct BsdfWestinSheenClosure { + //float3 m_N; + float m_edginess; +} BsdfWestinSheenClosure; + +__device void bsdf_westin_sheen_setup(ShaderData *sd, float3 N, float edginess) +{ + BsdfWestinSheenClosure *self = (BsdfWestinSheenClosure*)sd->svm_closure_data; + + //self->m_N = N; + self->m_edginess = edginess; + + sd->svm_closure = CLOSURE_BSDF_WESTIN_SHEEN_ID; + sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; +} + +__device void bsdf_westin_sheen_blur(ShaderData *sd, float roughness) +{ +} + +__device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + const BsdfWestinSheenClosure *self = (const BsdfWestinSheenClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // pdf is implicitly 0 (no indirect sampling) + float cosNO = dot(m_N, I); + float cosNI = dot(m_N, omega_in); + if(cosNO > 0 && cosNI > 0) { + float sinNO2 = 1 - cosNO * cosNO; + *pdf = cosNI * M_1_PI_F; + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * self->m_edginess) * (*pdf) : 0; + return make_float3 (westin, westin, westin); + } + return make_float3 (0, 0, 0); +} + +__device float3 bsdf_westin_sheen_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +{ + return make_float3(0.0f, 0.0f, 0.0f); +} + +__device float bsdf_westin_sheen_albedo(const ShaderData *sd, const float3 I) +{ + return 1.0f; +} + +__device int bsdf_westin_sheen_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +{ + const BsdfWestinSheenClosure *self = (const BsdfWestinSheenClosure*)sd->svm_closure_data; + float3 m_N = sd->N; + + // we are viewing the surface from the right side - send a ray out with cosine + // distribution over the hemisphere + sample_cos_hemisphere(m_N, randu, randv, omega_in, pdf); + if(dot(sd->Ng, *omega_in) > 0) { + // TODO: account for sheen when sampling + float cosNO = dot(m_N, sd->I); + float sinNO2 = 1 - cosNO * cosNO; + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * self->m_edginess) * (*pdf) : 0; + *eval = make_float3(westin, westin, westin); +#ifdef __RAY_DIFFERENTIALS__ + // TODO: find a better approximation for the diffuse bounce + *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; + *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; + *domega_in_dx *= 125; + *domega_in_dy *= 125; +#endif + } else + pdf = 0; + return LABEL_REFLECT|LABEL_DIFFUSE; +} + +CCL_NAMESPACE_END + +#endif /* __BSDF_WESTIN_H__ */ + diff --git a/intern/cycles/kernel/svm/emissive.h b/intern/cycles/kernel/svm/emissive.h new file mode 100644 index 00000000000..ed2b2e4aee8 --- /dev/null +++ b/intern/cycles/kernel/svm/emissive.h @@ -0,0 +1,83 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +CCL_NAMESPACE_BEGIN + +/* EMISSION CLOSURE */ + +__device float3 emissive_eval(const float3 Ng, const float3 I) +{ + float cosNO = fabsf(dot(Ng, I)); + float res = (cosNO > 0.0f)? M_1_PI_F: 0.0f; + + return make_float3(res, res, res); +} + +__device void emissive_sample(const float3 Ng, float randu, float randv, float3 *I, float *pdf) +{ + // We don't do anything sophisticated here for the step + // We just sample the whole cone uniformly to the cosine + float3 T, B; + make_orthonormals(Ng, &T, &B); + float phi = 2 * M_PI_F * randu; + + float cosTheta = sqrtf(1.0f - 1.0f * randv); + float sinTheta = sqrtf(1.0f - cosTheta * cosTheta); + *I = (cosf(phi) * sinTheta) * T + + (sinf(phi) * sinTheta) * B + + cosTheta * Ng; + + *pdf = M_1_PI_F; +} + +/// Return the probability distribution function in the direction I, +/// given the parameters and the light's surface normal. This MUST match +/// the PDF computed by sample(). +__device float emissive_pdf(const float3 Ng, const float3 I) +{ + float cosNO = fabsf(dot(Ng, I)); + return (cosNO > 0.0f)? M_1_PI_F: 0.0f; +} + +__device float3 svm_emissive_eval(ShaderData *sd) +{ + return sd->svm_closure_weight*emissive_eval(sd->Ng, sd->I); +} + +__device void svm_emissive_sample(ShaderData *sd, float randu, float randv, float3 *eval, float3 *I, float *pdf) +{ + *eval = sd->svm_closure_weight; + emissive_sample(sd->Ng, randu, randv, I, pdf); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h new file mode 100644 index 00000000000..5bd076c9cab --- /dev/null +++ b/intern/cycles/kernel/svm/svm.h @@ -0,0 +1,271 @@ +/* + * 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 __SVM_H__ +#define __SVM_H__ + +/* Shader Virtual Machine + * + * A shader is a list of nodes to be executed. These are simply read one after + * the other and executed, using an node counter. Each node and it's associated + * data is encoded as one or more uint4's in a 1D texture. If the data is larger + * than an uint4, the node can increase the node counter to compensate for this. + * Floats are encoded as int and then converted to float again. + * + * Nodes write their output into a stack. All stack data in the stack is + * floats, since it's all factors, colors and vectors. The stack will be stored + * in local memory on the GPU, as it would take too many register and indexes in + * ways not known at compile time. This seems the only solution even though it + * may be slow, with two positive factors. If the same shader is being executed, + * memory access will be coalesced, and on fermi cards, memory will actually be + * cached. + * + * The result of shader execution will be a single closure. This means the + * closure type, associated label, data and weight. Sampling from multiple + * closures is supported through the mix closure node, the logic for that is + * mostly taken care of in the SVM compiler. + */ + +#include "svm_types.h" + +CCL_NAMESPACE_BEGIN + +/* Stack */ + +__device float3 stack_load_float3(float *stack, uint a) +{ + kernel_assert(a+2 < SVM_STACK_SIZE); + + return make_float3(stack[a+0], stack[a+1], stack[a+2]); +} + +__device void stack_store_float3(float *stack, uint a, float3 f) +{ + kernel_assert(a+2 < SVM_STACK_SIZE); + + stack[a+0] = f.x; + stack[a+1] = f.y; + stack[a+2] = f.z; +} + +__device float stack_load_float(float *stack, uint a) +{ + kernel_assert(a < SVM_STACK_SIZE); + + return stack[a]; +} + +__device float stack_load_float_default(float *stack, uint a, uint value) +{ + return (a == (uint)SVM_STACK_INVALID)? __int_as_float(value): stack_load_float(stack, a); +} + +__device void stack_store_float(float *stack, uint a, float f) +{ + kernel_assert(a < SVM_STACK_SIZE); + + stack[a] = f; +} + +__device bool stack_valid(uint a) +{ + return a != (uint)SVM_STACK_INVALID; +} + +/* Reading Nodes */ + +__device uint4 read_node(KernelGlobals *kg, int *offset) +{ + uint4 node = kernel_tex_fetch(__svm_nodes, *offset); + (*offset)++; + return node; +} + +__device float4 read_node_float(KernelGlobals *kg, int *offset) +{ + uint4 node = kernel_tex_fetch(__svm_nodes, *offset); + float4 f = make_float4(__int_as_float(node.x), __int_as_float(node.y), __int_as_float(node.z), __int_as_float(node.w)); + (*offset)++; + return f; +} + +__device void decode_node_uchar4(uint i, uint *x, uint *y, uint *z, uint *w) +{ + if(x) *x = (i & 0xFF); + if(y) *y = ((i >> 8) & 0xFF); + if(z) *z = ((i >> 16) & 0xFF); + if(w) *w = ((i >> 24) & 0xFF); +} + +CCL_NAMESPACE_END + +/* Nodes */ + +#include "svm_noise.h" +#include "svm_texture.h" + +#include "svm_attribute.h" +#include "svm_blend.h" +#include "svm_closure.h" +#include "svm_clouds.h" +#include "svm_convert.h" +#include "svm_displace.h" +#include "svm_distorted_noise.h" +#include "svm_fresnel.h" +#include "svm_geometry.h" +#include "svm_image.h" +#include "svm_light_path.h" +#include "svm_magic.h" +#include "svm_mapping.h" +#include "svm_marble.h" +#include "svm_math.h" +#include "svm_mix.h" +#include "svm_musgrave.h" +#include "svm_noisetex.h" +#include "svm_sky.h" +#include "svm_stucci.h" +#include "svm_tex_coord.h" +#include "svm_value.h" +#include "svm_voronoi.h" +#include "svm_wood.h" + +CCL_NAMESPACE_BEGIN + +/* Main Interpreter Loop */ + +__device void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, float randb, int path_flag) +{ + float stack[SVM_STACK_SIZE]; + float closure_weight = 1.0f; + int offset = sd->shader; + + sd->svm_closure = NBUILTIN_CLOSURES; + sd->svm_closure_weight = make_float3(0.0f, 0.0f, 0.0f); + + while(1) { + uint4 node = read_node(kg, &offset); + + if(node.x == NODE_SHADER_JUMP) { + if(type == SHADER_TYPE_SURFACE) offset = node.y; + else if(type == SHADER_TYPE_VOLUME) offset = node.z; + else if(type == SHADER_TYPE_DISPLACEMENT) offset = node.w; + else return; + } + else if(node.x == NODE_CLOSURE_BSDF) + svm_node_closure_bsdf(sd, node.y, node.z, node.w, randb); + else if(node.x == NODE_CLOSURE_EMISSION) + svm_node_closure_emission(sd); + else if(node.x == NODE_CLOSURE_BACKGROUND) + svm_node_closure_background(sd); + else if(node.x == NODE_CLOSURE_SET_WEIGHT) + svm_node_closure_set_weight(sd, node.y, node.z, node.w); + else if(node.x == NODE_CLOSURE_WEIGHT) + svm_node_closure_weight(sd, stack, node.y); + else if(node.x == NODE_EMISSION_WEIGHT) + svm_node_emission_weight(kg, sd, stack, node); + else if(node.x == NODE_MIX_CLOSURE) + svm_node_mix_closure(sd, stack, node.y, node.z, &offset, &randb); + else if(node.x == NODE_ADD_CLOSURE) + svm_node_add_closure(sd, stack, node.y, node.z, &offset, &randb, &closure_weight); + else if(node.x == NODE_JUMP) + offset = node.y; +#ifdef __TEXTURES__ + else if(node.x == NODE_TEX_NOISE_F) + svm_node_tex_noise_f(sd, stack, node.y, node.z); + else if(node.x == NODE_TEX_NOISE_V) + svm_node_tex_noise_v(sd, stack, node.y, node.z); + else if(node.x == NODE_TEX_IMAGE) + svm_node_tex_image(kg, sd, stack, node.y, node.z, node.w); + else if(node.x == NODE_TEX_ENVIRONMENT) + svm_node_tex_environment(kg, sd, stack, node.y, node.z, node.w); + else if(node.x == NODE_TEX_SKY) + svm_node_tex_sky(kg, sd, stack, node.y, node.z); + else if(node.x == NODE_TEX_BLEND) + svm_node_tex_blend(sd, stack, node); + else if(node.x == NODE_TEX_CLOUDS) + svm_node_tex_clouds(sd, stack, node); + else if(node.x == NODE_TEX_VORONOI) + svm_node_tex_voronoi(kg, sd, stack, node, &offset); + else if(node.x == NODE_TEX_MUSGRAVE) + svm_node_tex_musgrave(kg, sd, stack, node, &offset); + else if(node.x == NODE_TEX_MARBLE) + svm_node_tex_marble(kg, sd, stack, node, &offset); + else if(node.x == NODE_TEX_MAGIC) + svm_node_tex_magic(sd, stack, node); + else if(node.x == NODE_TEX_STUCCI) + svm_node_tex_stucci(kg, sd, stack, node, &offset); + else if(node.x == NODE_TEX_DISTORTED_NOISE) + svm_node_tex_distorted_noise(kg, sd, stack, node, &offset); + else if(node.x == NODE_TEX_WOOD) + svm_node_tex_wood(kg, sd, stack, node, &offset); +#endif + else if(node.x == NODE_GEOMETRY) + svm_node_geometry(sd, stack, node.y, node.z); + else if(node.x == NODE_GEOMETRY_BUMP_DX) + svm_node_geometry_bump_dx(sd, stack, node.y, node.z); + else if(node.x == NODE_GEOMETRY_BUMP_DY) + svm_node_geometry_bump_dy(sd, stack, node.y, node.z); + else if(node.x == NODE_LIGHT_PATH) + svm_node_light_path(sd, stack, node.y, node.z, path_flag); + else if(node.x == NODE_CONVERT) + svm_node_convert(sd, stack, node.y, node.z, node.w); + else if(node.x == NODE_VALUE_F) + svm_node_value_f(kg, sd, stack, node.y, node.z); + else if(node.x == NODE_VALUE_V) + svm_node_value_v(kg, sd, stack, node.y, &offset); + else if(node.x == NODE_MIX) + svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset); + else if(node.x == NODE_ATTR) + svm_node_attr(kg, sd, stack, node); + else if(node.x == NODE_ATTR_BUMP_DX) + svm_node_attr_bump_dx(kg, sd, stack, node); + else if(node.x == NODE_ATTR_BUMP_DY) + svm_node_attr_bump_dy(kg, sd, stack, node); + else if(node.x == NODE_FRESNEL) + svm_node_fresnel(sd, stack, node.y, node.z, node.w); + else if(node.x == NODE_SET_DISPLACEMENT) + svm_node_set_displacement(sd, stack, node.y); + else if(node.x == NODE_SET_BUMP) + svm_node_set_bump(sd, stack, node.y, node.z, node.w); + else if(node.x == NODE_MATH) + svm_node_math(kg, sd, stack, node.y, node.z, node.w, &offset); + else if(node.x == NODE_VECTOR_MATH) + svm_node_vector_math(kg, sd, stack, node.y, node.z, node.w, &offset); + else if(node.x == NODE_MAPPING) + svm_node_mapping(kg, sd, stack, node.y, node.z, &offset); + else if(node.x == NODE_TEX_COORD) + svm_node_tex_coord(kg, sd, stack, node.y, node.z); + else if(node.x == NODE_TEX_COORD_BUMP_DX) + svm_node_tex_coord_bump_dx(kg, sd, stack, node.y, node.z); + else if(node.x == NODE_TEX_COORD_BUMP_DY) + svm_node_tex_coord_bump_dy(kg, sd, stack, node.y, node.z); + else if(node.x == NODE_EMISSION_SET_WEIGHT_TOTAL) + svm_node_emission_set_weight_total(kg, sd, node.y, node.z, node.w); + else if(node.x == NODE_END) + break; + else + return; + } + + sd->svm_closure_weight *= closure_weight; +} + +CCL_NAMESPACE_END + +#endif /* __SVM_H__ */ + diff --git a/intern/cycles/kernel/svm/svm_attribute.h b/intern/cycles/kernel/svm/svm_attribute.h new file mode 100644 index 00000000000..3a94f08d42f --- /dev/null +++ b/intern/cycles/kernel/svm/svm_attribute.h @@ -0,0 +1,154 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Attribute Node */ + +__device void svm_node_attr_init(KernelGlobals *kg, ShaderData *sd, + uint4 node, NodeAttributeType *type, + NodeAttributeType *mesh_type, AttributeElement *elem, uint *offset, uint *out_offset) +{ + if(sd->object != ~0) { + /* find attribute by unique id */ + uint id = node.y; + 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 */ + *elem = (AttributeElement)attr_map.y; + *offset = attr_map.z; + *mesh_type = (NodeAttributeType)attr_map.w; + } + else { + /* background */ + *elem = ATTR_ELEMENT_NONE; + *offset = 0; + *mesh_type = (NodeAttributeType)node.w; + } + + *out_offset = node.z; + *type = (NodeAttributeType)node.w; +} + +__device void svm_node_attr(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) +{ + NodeAttributeType type, mesh_type; + AttributeElement elem; + uint offset, out_offset; + + svm_node_attr_init(kg, sd, node, &type, &mesh_type, &elem, &offset, &out_offset); + + /* fetch and store attribute */ + if(type == NODE_ATTR_FLOAT) { + if(mesh_type == NODE_ATTR_FLOAT) { + float f = triangle_attribute_float(kg, sd, elem, offset, NULL, NULL); + stack_store_float(stack, out_offset, f); + } + else { + float3 f = triangle_attribute_float3(kg, sd, elem, offset, NULL, NULL); + stack_store_float(stack, out_offset, average(f)); + } + } + else { + if(mesh_type == NODE_ATTR_FLOAT3) { + float3 f = triangle_attribute_float3(kg, sd, elem, offset, NULL, NULL); + stack_store_float3(stack, out_offset, f); + } + else { + float f = triangle_attribute_float(kg, sd, elem, offset, NULL, NULL); + stack_store_float3(stack, out_offset, make_float3(f, f, f)); + } + } +} + +__device void svm_node_attr_bump_dx(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) +{ + NodeAttributeType type, mesh_type; + AttributeElement elem; + uint offset, out_offset; + + svm_node_attr_init(kg, sd, node, &type, &mesh_type, &elem, &offset, &out_offset); + + /* fetch and store attribute */ + if(type == NODE_ATTR_FLOAT) { + if(mesh_type == NODE_ATTR_FLOAT) { + float dx; + float f = triangle_attribute_float(kg, sd, elem, offset, &dx, NULL); + stack_store_float(stack, out_offset, f+dx); + } + else { + float3 dx; + float3 f = triangle_attribute_float3(kg, sd, elem, offset, &dx, NULL); + stack_store_float(stack, out_offset, average(f+dx)); + } + } + else { + if(mesh_type == NODE_ATTR_FLOAT3) { + float3 dx; + float3 f = triangle_attribute_float3(kg, sd, elem, offset, &dx, NULL); + stack_store_float3(stack, out_offset, f+dx); + } + else { + float dx; + float f = triangle_attribute_float(kg, sd, elem, offset, &dx, NULL); + stack_store_float3(stack, out_offset, make_float3(f+dx, f+dx, f+dx)); + } + } +} + +__device void svm_node_attr_bump_dy(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) +{ + NodeAttributeType type, mesh_type; + AttributeElement elem; + uint offset, out_offset; + + svm_node_attr_init(kg, sd, node, &type, &mesh_type, &elem, &offset, &out_offset); + + /* fetch and store attribute */ + if(type == NODE_ATTR_FLOAT) { + if(mesh_type == NODE_ATTR_FLOAT) { + float dy; + float f = triangle_attribute_float(kg, sd, elem, offset, NULL, &dy); + stack_store_float(stack, out_offset, f+dy); + } + else { + float3 dy; + float3 f = triangle_attribute_float3(kg, sd, elem, offset, NULL, &dy); + stack_store_float(stack, out_offset, average(f+dy)); + } + } + else { + if(mesh_type == NODE_ATTR_FLOAT3) { + float3 dy; + float3 f = triangle_attribute_float3(kg, sd, elem, offset, NULL, &dy); + stack_store_float3(stack, out_offset, f+dy); + } + else { + float dy; + float f = triangle_attribute_float(kg, sd, elem, offset, NULL, &dy); + stack_store_float3(stack, out_offset, make_float3(f+dy, f+dy, f+dy)); + } + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_blend.h b/intern/cycles/kernel/svm/svm_blend.h new file mode 100644 index 00000000000..b1be7b7f6bc --- /dev/null +++ b/intern/cycles/kernel/svm/svm_blend.h @@ -0,0 +1,79 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Blend */ + +__device float svm_blend(float3 p, NodeBlendType type, NodeBlendAxis axis) +{ + float x, y; + + if(axis == NODE_BLEND_VERTICAL) { + x= p.y; + y= p.x; + } + else { + x= p.x; + y= p.y; + } + + if(type == NODE_BLEND_LINEAR) { + return (1.0f + x)/2.0f; + } + else if(type == NODE_BLEND_QUADRATIC) { + float r = fmaxf((1.0f + x)/2.0f, 0.0f); + return r*r; + } + else if(type == NODE_BLEND_EASING) { + float r = min(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); + float t = r*r; + + return (3.0f*t - 2.0f*t*r); + } + else if(type == NODE_BLEND_DIAGONAL) { + return (2.0f + x + y)/4.0f; + } + else if(type == NODE_BLEND_RADIAL) { + return atan2(y, x)/(2.0f*M_PI_F) + 0.5f; + } + else { + float r = fmaxf(1.0f - sqrtf(x*x + y*y + p.z*p.z), 0.0f); + + if(type == NODE_BLEND_QUADRATIC_SPHERE) + return r*r; + else if(type == NODE_BLEND_SPHERICAL) + return r; + } + + return 0.0f; +} + +__device void svm_node_tex_blend(ShaderData *sd, float *stack, uint4 node) +{ + float3 co = stack_load_float3(stack, node.z); + uint type, axis; + + decode_node_uchar4(node.y, &type, &axis, NULL, NULL); + + float f = svm_blend(co, (NodeBlendType)type, (NodeBlendAxis)axis); + stack_store_float(stack, node.w, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_bsdf.h b/intern/cycles/kernel/svm/svm_bsdf.h new file mode 100644 index 00000000000..f02dc786c6b --- /dev/null +++ b/intern/cycles/kernel/svm/svm_bsdf.h @@ -0,0 +1,228 @@ +/* + * 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 "bsdf_ashikhmin_velvet.h" +#include "bsdf_diffuse.h" +#include "bsdf_microfacet.h" +#include "bsdf_reflection.h" +#include "bsdf_refraction.h" +#include "bsdf_transparent.h" +#ifdef __DPDU__ +#include "bsdf_ward.h" +#endif +#include "bsdf_westin.h" + +CCL_NAMESPACE_BEGIN + +__device int svm_bsdf_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf) +{ + int label; + + switch(sd->svm_closure) { + case CLOSURE_BSDF_DIFFUSE_ID: + label = bsdf_diffuse_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_TRANSLUCENT_ID: + label = bsdf_translucent_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_REFLECTION_ID: + label = bsdf_reflection_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_REFRACTION_ID: + label = bsdf_refraction_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_TRANSPARENT_ID: + label = bsdf_transparent_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_MICROFACET_GGX_ID: + case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: + label = bsdf_microfacet_ggx_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: + label = bsdf_microfacet_beckmann_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; +#ifdef __DPDU__ + case CLOSURE_BSDF_WARD_ID: + label = bsdf_ward_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; +#endif + case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: + label = bsdf_ashikhmin_velvet_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: + label = bsdf_westin_backscatter_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + case CLOSURE_BSDF_WESTIN_SHEEN_ID: + label = bsdf_westin_sheen_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + break; + default: + label = LABEL_NONE; + break; + } + + *eval *= sd->svm_closure_weight; + + return label; +} + +__device float3 svm_bsdf_eval(const ShaderData *sd, const float3 omega_in, float *pdf) +{ + float3 eval; + + if(dot(sd->Ng, omega_in) >= 0.0f) { + switch(sd->svm_closure) { + case CLOSURE_BSDF_DIFFUSE_ID: + eval = bsdf_diffuse_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_TRANSLUCENT_ID: + eval = bsdf_translucent_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_REFLECTION_ID: + eval = bsdf_reflection_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_REFRACTION_ID: + eval = bsdf_refraction_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_TRANSPARENT_ID: + eval = bsdf_transparent_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_MICROFACET_GGX_ID: + case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: + eval = bsdf_microfacet_ggx_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: + eval = bsdf_microfacet_beckmann_eval_reflect(sd, sd->I, omega_in, pdf); + break; +#ifdef __DPDU__ + case CLOSURE_BSDF_WARD_ID: + eval = bsdf_ward_eval_reflect(sd, sd->I, omega_in, pdf); + break; +#endif + case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: + eval = bsdf_ashikhmin_velvet_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: + eval = bsdf_westin_backscatter_eval_reflect(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_WESTIN_SHEEN_ID: + eval = bsdf_westin_sheen_eval_reflect(sd, sd->I, omega_in, pdf); + break; + default: + eval = make_float3(0.0f, 0.0f, 0.0f); + break; + } + } + else { + switch(sd->svm_closure) { + case CLOSURE_BSDF_DIFFUSE_ID: + eval = bsdf_diffuse_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_TRANSLUCENT_ID: + eval = bsdf_translucent_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_REFLECTION_ID: + eval = bsdf_reflection_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_REFRACTION_ID: + eval = bsdf_refraction_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_TRANSPARENT_ID: + eval = bsdf_transparent_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_MICROFACET_GGX_ID: + case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: + eval = bsdf_microfacet_ggx_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: + eval = bsdf_microfacet_beckmann_eval_transmit(sd, sd->I, omega_in, pdf); + break; +#ifdef __DPDU__ + case CLOSURE_BSDF_WARD_ID: + eval = bsdf_ward_eval_transmit(sd, sd->I, omega_in, pdf); + break; +#endif + case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: + eval = bsdf_ashikhmin_velvet_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: + eval = bsdf_westin_backscatter_eval_transmit(sd, sd->I, omega_in, pdf); + break; + case CLOSURE_BSDF_WESTIN_SHEEN_ID: + eval = bsdf_westin_sheen_eval_transmit(sd, sd->I, omega_in, pdf); + break; + default: + eval = make_float3(0.0f, 0.0f, 0.0f); + break; + } + } + + eval *= sd->svm_closure_weight; + + return eval; +} + +__device void svm_bsdf_blur(ShaderData *sd, float roughness) +{ + switch(sd->svm_closure) { + case CLOSURE_BSDF_DIFFUSE_ID: + bsdf_diffuse_blur(sd, roughness); + break; + case CLOSURE_BSDF_TRANSLUCENT_ID: + bsdf_translucent_blur(sd, roughness); + break; + case CLOSURE_BSDF_REFLECTION_ID: + bsdf_reflection_blur(sd, roughness); + break; + case CLOSURE_BSDF_REFRACTION_ID: + bsdf_refraction_blur(sd, roughness); + break; + case CLOSURE_BSDF_TRANSPARENT_ID: + bsdf_transparent_blur(sd, roughness); + break; + case CLOSURE_BSDF_MICROFACET_GGX_ID: + case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: + bsdf_microfacet_ggx_blur(sd, roughness); + break; + case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: + bsdf_microfacet_beckmann_blur(sd, roughness); + break; +#ifdef __DPDU__ + case CLOSURE_BSDF_WARD_ID: + bsdf_ward_blur(sd, roughness); + break; +#endif + case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: + bsdf_ashikhmin_velvet_blur(sd, roughness); + break; + case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: + bsdf_westin_backscatter_blur(sd, roughness); + break; + case CLOSURE_BSDF_WESTIN_SHEEN_ID: + bsdf_westin_sheen_blur(sd, roughness); + break; + default: + break; + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h new file mode 100644 index 00000000000..fe9edc36e95 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -0,0 +1,208 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Closure Nodes */ + +__device void svm_node_closure_bsdf(ShaderData *sd, uint type, int iparam1, int iparam2, float randb) +{ + float param1 = __int_as_float(iparam1); + float param2 = __int_as_float(iparam2); + + switch(type) { + case CLOSURE_BSDF_DIFFUSE_ID: + bsdf_diffuse_setup(sd, sd->N); + break; + case CLOSURE_BSDF_TRANSLUCENT_ID: + bsdf_translucent_setup(sd, sd->N); + break; + case CLOSURE_BSDF_TRANSPARENT_ID: + bsdf_transparent_setup(sd); + break; + case CLOSURE_BSDF_REFLECTION_ID: + case CLOSURE_BSDF_MICROFACET_GGX_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: { + /* roughness */ + /* index of refraction */ + float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); + eta = 1.0f/eta; + + /* fresnel */ + float cosNO = dot(sd->N, sd->I); + float fresnel = fresnel_dielectric_cos(cosNO, eta); + + sd->svm_closure_weight *= fresnel; + + /* setup bsdf */ + if(type == CLOSURE_BSDF_REFLECTION_ID) { + bsdf_reflection_setup(sd, sd->N); + } + else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_ID) { + float roughness = param1; + bsdf_microfacet_beckmann_setup(sd, sd->N, roughness, eta, false); + } + else { + float roughness = param1; + bsdf_microfacet_ggx_setup(sd, sd->N, roughness, eta, false); + } + break; + } + case CLOSURE_BSDF_REFRACTION_ID: + case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: + case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: { + /* index of refraction */ + float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); + eta = (sd->flag & SD_BACKFACING)? eta: 1.0f/eta; + + /* fresnel */ + float cosNO = dot(sd->N, sd->I); + float fresnel = fresnel_dielectric_cos(cosNO, eta); + bool refract = (fresnel < randb); + + /* setup bsdf */ + if(type == CLOSURE_BSDF_REFRACTION_ID) { + if(refract) + bsdf_refraction_setup(sd, sd->N, eta); + else + bsdf_reflection_setup(sd, sd->N); + } + else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID) { + float roughness = param1; + bsdf_microfacet_beckmann_setup(sd, sd->N, roughness, eta, refract); + } + else { + float roughness = param1; + bsdf_microfacet_ggx_setup(sd, sd->N, roughness, eta, refract); + } + break; + } +#ifdef __DPDU__ + case CLOSURE_BSDF_WARD_ID: { + float roughness_u = param1; + float roughness_v = param2; + bsdf_ward_setup(sd, sd->N, normalize(sd->dPdu), roughness_u, roughness_v); + break; + } +#endif + case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: { + /* sigma */ + float sigma = clamp(param1, 0.0f, 1.0f); + + /* index of refraction */ + float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); + eta = 1.0f/eta; + + /* fresnel */ + float cosNO = dot(sd->N, sd->I); + float fresnel = fresnel_dielectric_cos(cosNO, eta); + + sd->svm_closure_weight *= fresnel; + + bsdf_ashikhmin_velvet_setup(sd, sd->N, sigma); + break; + } + default: + return; + } +} + +__device void svm_node_closure_emission(ShaderData *sd) +{ + sd->svm_closure = CLOSURE_EMISSION_ID; + sd->flag |= SD_EMISSION; +} + +__device void svm_node_closure_background(ShaderData *sd) +{ + sd->svm_closure = CLOSURE_BACKGROUND_ID; +} + +/* Closure Nodes */ + +__device void svm_node_closure_set_weight(ShaderData *sd, uint r, uint g, uint b) +{ + sd->svm_closure_weight.x = __int_as_float(r); + sd->svm_closure_weight.y = __int_as_float(g); + sd->svm_closure_weight.z = __int_as_float(b); +} + +__device void svm_node_emission_set_weight_total(KernelGlobals *kg, ShaderData *sd, uint r, uint g, uint b) +{ + sd->svm_closure_weight.x = __int_as_float(r); + sd->svm_closure_weight.y = __int_as_float(g); + sd->svm_closure_weight.z = __int_as_float(b); + + if(sd->object != ~0) + sd->svm_closure_weight /= object_surface_area(kg, sd->object); +} + +__device void svm_node_closure_weight(ShaderData *sd, float *stack, uint weight_offset) +{ + sd->svm_closure_weight = stack_load_float3(stack, weight_offset); +} + +__device void svm_node_emission_weight(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) +{ + uint color_offset = node.y; + uint strength_offset = node.z; + uint total_power = node.w; + + sd->svm_closure_weight = stack_load_float3(stack, color_offset)*stack_load_float(stack, strength_offset); + + if(total_power && sd->object != ~0) + sd->svm_closure_weight /= object_surface_area(kg, sd->object); +} + +__device void svm_node_mix_closure(ShaderData *sd, float *stack, + uint weight_offset, uint node_jump, int *offset, float *randb) +{ + float weight = stack_load_float(stack, weight_offset); + weight = clamp(weight, 0.0f, 1.0f); + + /* pick a closure and make the random number uniform over 0..1 again. + closure 1 starts on the next node, for closure 2 the start is at an + offset from the current node, so we jump */ + if(*randb < weight) { + *offset += node_jump; + *randb = (*randb - weight)/(1.0f - weight); + } + else + *randb = *randb/weight; +} + +__device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, + uint node_jump, int *offset, float *randb, float *closure_weight) +{ + float weight = 0.5f; + + /* pick one of the two closures with probability 0.5. sampling quality + is not going to be great, for that we'd need to evaluate the weights + of the two closures being added */ + if(*randb < weight) { + *offset += node_jump; + *randb = (*randb - weight)/(1.0f - weight); + } + else + *randb = *randb/weight; + + *closure_weight *= 2.0f; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_clouds.h b/intern/cycles/kernel/svm/svm_clouds.h new file mode 100644 index 00000000000..e51af684ab9 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_clouds.h @@ -0,0 +1,55 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Clouds */ + +__device void svm_clouds(NodeNoiseBasis basis, int hard, int depth, float size, float3 p, float *fac, float3 *color) +{ + p /= size; + + *fac = noise_turbulence(p, basis, depth, hard); + *color = make_float3(*fac, + noise_turbulence(make_float3(p.y, p.x, p.z), basis, depth, hard), + noise_turbulence(make_float3(p.y, p.z, p.x), basis, depth, hard)); +} + +__device void svm_node_tex_clouds(ShaderData *sd, float *stack, uint4 node) +{ + uint basis, hard, depth; + uint size_offset, co_offset, fac_offset, color_offset; + + decode_node_uchar4(node.y, &basis, &hard, &depth, NULL); + decode_node_uchar4(node.z, &size_offset, &co_offset, &fac_offset, &color_offset); + + float3 co = stack_load_float3(stack, co_offset); + float size = stack_load_float_default(stack, size_offset, node.w); + size = nonzerof(size, 1e-5f); + + float3 color; + float f; + + svm_clouds((NodeNoiseBasis)basis, hard, depth, size, co, &f, &color); + + if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, color); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_convert.h b/intern/cycles/kernel/svm/svm_convert.h new file mode 100644 index 00000000000..14925569bfb --- /dev/null +++ b/intern/cycles/kernel/svm/svm_convert.h @@ -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. + */ + +CCL_NAMESPACE_BEGIN + +/* Conversion Nodes */ + +__device void svm_node_convert(ShaderData *sd, float *stack, uint type, uint from, uint to) +{ + switch(type) { + case NODE_CONVERT_FV: { + float f = stack_load_float(stack, from); + stack_store_float3(stack, to, make_float3(f, f, f)); + break; + } + case NODE_CONVERT_CF: { + float3 f = stack_load_float3(stack, from); + float g = f.x*0.2126f + f.y*0.7152f + f.z*0.0722f; + stack_store_float(stack, to, g); + break; + } + case NODE_CONVERT_VF: { + float3 f = stack_load_float3(stack, from); + float g = (f.x + f.y + f.z)*(1.0f/3.0f); + stack_store_float(stack, to, g); + break; + } + + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_displace.h b/intern/cycles/kernel/svm/svm_displace.h new file mode 100644 index 00000000000..db8a8a13289 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_displace.h @@ -0,0 +1,51 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Bump Node */ + +__device void svm_node_set_bump(ShaderData *sd, float *stack, uint c_offset, uint x_offset, uint y_offset) +{ +#ifdef __RAY_DIFFERENTIALS__ + float h_c = stack_load_float(stack, c_offset); + float h_x = stack_load_float(stack, x_offset); + float h_y = stack_load_float(stack, y_offset); + + float3 Rx = cross(sd->dP.dy, sd->N); + float3 Ry = cross(sd->N, sd->dP.dx); + + float det = dot(sd->dP.dx, Rx); + float3 surfgrad = (h_x - h_c)*Rx + (h_y - h_c)*Ry; + + surfgrad *= 0.1f; /* todo: remove this factor */ + + sd->N = normalize(fabsf(det)*sd->N - signf(det)*surfgrad); +#endif +} + +/* Displacement Node */ + +__device void svm_node_set_displacement(ShaderData *sd, float *stack, uint fac_offset) +{ + float d = stack_load_float(stack, fac_offset); + sd->P += sd->N*d*0.1f; /* todo: get rid of this factor */ +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_distorted_noise.h b/intern/cycles/kernel/svm/svm_distorted_noise.h new file mode 100644 index 00000000000..469313e377d --- /dev/null +++ b/intern/cycles/kernel/svm/svm_distorted_noise.h @@ -0,0 +1,58 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Distorted Noise (variable lacunarity noise) */ + +__device float svm_distorted_noise(float3 p, float size, NodeNoiseBasis basis, NodeNoiseBasis distortion_basis, float distortion) +{ + float3 r; + + p /= size; + + r.x = noise_basis(p + make_float3(13.5f, 13.5f, 13.5f), basis) * distortion; + r.y = noise_basis(p, basis) * distortion; + r.z = noise_basis(p - make_float3(13.5f, 13.5f, 13.5f), basis) * distortion; + + return noise_basis(p + r, distortion_basis); /* distorted-domain noise */ +} + +__device void svm_node_tex_distorted_noise(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + + uint basis, distortion_basis; + uint size_offset, distortion_offset, co_offset, fac_offset; + + decode_node_uchar4(node.y, &basis, &distortion_basis, NULL, NULL); + decode_node_uchar4(node.z, &size_offset, &distortion_offset, &co_offset, &fac_offset); + + float3 co = stack_load_float3(stack, co_offset); + float size = stack_load_float_default(stack, size_offset, node2.x); + float distortion = stack_load_float_default(stack, distortion_offset, node2.y); + size = nonzerof(size, 1e-5f); + + float f = svm_distorted_noise(co, size, (NodeNoiseBasis)basis, + (NodeNoiseBasis)distortion_basis, distortion); + + stack_store_float(stack, fac_offset, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_fresnel.h b/intern/cycles/kernel/svm/svm_fresnel.h new file mode 100644 index 00000000000..f6122fa3071 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_fresnel.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Fresnel Node */ + +__device void svm_node_fresnel(ShaderData *sd, float *stack, uint fresnel_offset, uint fresnel_value, uint out_offset) +{ + float fresnel = (stack_valid(fresnel_offset))? stack_load_float(stack, fresnel_offset): __int_as_float(fresnel_value); + fresnel = fmaxf(1.0f - fresnel, 0.00001f); + + float f = fresnel_dielectric_cos(dot(sd->I, sd->N), (sd->flag & SD_BACKFACING)? fresnel: 1.0f/fresnel); + + stack_store_float(stack, out_offset, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_geometry.h b/intern/cycles/kernel/svm/svm_geometry.h new file mode 100644 index 00000000000..77fe26c809e --- /dev/null +++ b/intern/cycles/kernel/svm/svm_geometry.h @@ -0,0 +1,78 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Geometry Node */ + +__device void svm_node_geometry(ShaderData *sd, float *stack, uint type, uint out_offset) +{ + float3 data; + + switch(type) { + case NODE_GEOM_P: data = sd->P; break; + case NODE_GEOM_N: data = sd->N; break; +#ifdef __DPDU__ + case NODE_GEOM_T: data = normalize(sd->dPdu); break; +#endif + case NODE_GEOM_I: data = sd->I; break; + case NODE_GEOM_Ng: data = sd->Ng; break; +#ifdef __UV__ + case NODE_GEOM_uv: data = make_float3(sd->u, sd->v, 0.0f); break; +#endif + } + + stack_store_float3(stack, out_offset, data); +} + +__device void svm_node_geometry_bump_dx(ShaderData *sd, float *stack, uint type, uint out_offset) +{ +#ifdef __RAY_DIFFERENTIALS__ + float3 data; + + switch(type) { + case NODE_GEOM_P: data = sd->P + sd->dP.dx; break; + case NODE_GEOM_uv: data = make_float3(sd->u + sd->du.dx, sd->v + sd->dv.dx, 0.0f); break; + default: svm_node_geometry(sd, stack, type, out_offset); return; + } + + stack_store_float3(stack, out_offset, data); +#else + svm_node_geometry(sd, stack, type, out_offset); +#endif +} + +__device void svm_node_geometry_bump_dy(ShaderData *sd, float *stack, uint type, uint out_offset) +{ +#ifdef __RAY_DIFFERENTIALS__ + float3 data; + + switch(type) { + case NODE_GEOM_P: data = sd->P + sd->dP.dy; break; + case NODE_GEOM_uv: data = make_float3(sd->u + sd->du.dy, sd->v + sd->dv.dy, 0.0f); break; + default: svm_node_geometry(sd, stack, type, out_offset); return; + } + + stack_store_float3(stack, out_offset, data); +#else + svm_node_geometry(sd, stack, type, out_offset); +#endif +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h new file mode 100644 index 00000000000..c2020b1f69c --- /dev/null +++ b/intern/cycles/kernel/svm/svm_image.h @@ -0,0 +1,162 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +__device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) +{ + float4 r; + + /* not particularly proud of this massive switch, what are the + alternatives? + - use a single big 1D texture, and do our own lookup/filtering + - group by size and use a 3d texture, performance impact + - group into larger texture with some padding for correct lerp + + also note that cuda has 128 textures limit, we use 100 now, since + 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 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; + case 8: r = kernel_tex_image_interp(__tex_image_008, x, y); break; + case 9: r = kernel_tex_image_interp(__tex_image_009, x, y); break; + case 10: r = kernel_tex_image_interp(__tex_image_010, x, y); break; + case 11: r = kernel_tex_image_interp(__tex_image_011, x, y); break; + case 12: r = kernel_tex_image_interp(__tex_image_012, x, y); break; + case 13: r = kernel_tex_image_interp(__tex_image_013, x, y); break; + case 14: r = kernel_tex_image_interp(__tex_image_014, x, y); break; + case 15: r = kernel_tex_image_interp(__tex_image_015, x, y); break; + case 16: r = kernel_tex_image_interp(__tex_image_016, x, y); break; + case 17: r = kernel_tex_image_interp(__tex_image_017, x, y); break; + case 18: r = kernel_tex_image_interp(__tex_image_018, x, y); break; + case 19: r = kernel_tex_image_interp(__tex_image_019, x, y); break; + case 20: r = kernel_tex_image_interp(__tex_image_020, x, y); break; + case 21: r = kernel_tex_image_interp(__tex_image_021, x, y); break; + case 22: r = kernel_tex_image_interp(__tex_image_022, x, y); break; + case 23: r = kernel_tex_image_interp(__tex_image_023, x, y); break; + case 24: r = kernel_tex_image_interp(__tex_image_024, x, y); break; + case 25: r = kernel_tex_image_interp(__tex_image_025, x, y); break; + case 26: r = kernel_tex_image_interp(__tex_image_026, x, y); break; + case 27: r = kernel_tex_image_interp(__tex_image_027, x, y); break; + case 28: r = kernel_tex_image_interp(__tex_image_028, x, y); break; + case 29: r = kernel_tex_image_interp(__tex_image_029, x, y); break; + case 30: r = kernel_tex_image_interp(__tex_image_030, x, y); break; + case 31: r = kernel_tex_image_interp(__tex_image_031, x, y); break; + case 32: r = kernel_tex_image_interp(__tex_image_032, x, y); break; + case 33: r = kernel_tex_image_interp(__tex_image_033, x, y); break; + case 34: r = kernel_tex_image_interp(__tex_image_034, x, y); break; + case 35: r = kernel_tex_image_interp(__tex_image_035, x, y); break; + case 36: r = kernel_tex_image_interp(__tex_image_036, x, y); break; + case 37: r = kernel_tex_image_interp(__tex_image_037, x, y); break; + case 38: r = kernel_tex_image_interp(__tex_image_038, x, y); break; + case 39: r = kernel_tex_image_interp(__tex_image_039, x, y); break; + case 40: r = kernel_tex_image_interp(__tex_image_040, x, y); break; + case 41: r = kernel_tex_image_interp(__tex_image_041, x, y); break; + case 42: r = kernel_tex_image_interp(__tex_image_042, x, y); break; + case 43: r = kernel_tex_image_interp(__tex_image_043, x, y); break; + case 44: r = kernel_tex_image_interp(__tex_image_044, x, y); break; + case 45: r = kernel_tex_image_interp(__tex_image_045, x, y); break; + case 46: r = kernel_tex_image_interp(__tex_image_046, x, y); break; + case 47: r = kernel_tex_image_interp(__tex_image_047, x, y); break; + case 48: r = kernel_tex_image_interp(__tex_image_048, x, y); break; + case 49: r = kernel_tex_image_interp(__tex_image_049, x, y); break; + case 50: r = kernel_tex_image_interp(__tex_image_050, x, y); break; + case 51: r = kernel_tex_image_interp(__tex_image_051, x, y); break; + case 52: r = kernel_tex_image_interp(__tex_image_052, x, y); break; + case 53: r = kernel_tex_image_interp(__tex_image_053, x, y); break; + case 54: r = kernel_tex_image_interp(__tex_image_054, x, y); break; + case 55: r = kernel_tex_image_interp(__tex_image_055, x, y); break; + case 56: r = kernel_tex_image_interp(__tex_image_056, x, y); break; + case 57: r = kernel_tex_image_interp(__tex_image_057, x, y); break; + case 58: r = kernel_tex_image_interp(__tex_image_058, x, y); break; + case 59: r = kernel_tex_image_interp(__tex_image_059, x, y); break; + case 60: r = kernel_tex_image_interp(__tex_image_060, x, y); break; + case 61: r = kernel_tex_image_interp(__tex_image_061, x, y); break; + case 62: r = kernel_tex_image_interp(__tex_image_062, x, y); break; + case 63: r = kernel_tex_image_interp(__tex_image_063, x, y); break; + case 64: r = kernel_tex_image_interp(__tex_image_064, x, y); break; + case 65: r = kernel_tex_image_interp(__tex_image_065, x, y); break; + case 66: r = kernel_tex_image_interp(__tex_image_066, x, y); break; + case 67: r = kernel_tex_image_interp(__tex_image_067, x, y); break; + case 68: r = kernel_tex_image_interp(__tex_image_068, x, y); break; + case 69: r = kernel_tex_image_interp(__tex_image_069, x, y); break; + case 70: r = kernel_tex_image_interp(__tex_image_070, x, y); break; + case 71: r = kernel_tex_image_interp(__tex_image_071, x, y); break; + case 72: r = kernel_tex_image_interp(__tex_image_072, x, y); break; + case 73: r = kernel_tex_image_interp(__tex_image_073, x, y); break; + case 74: r = kernel_tex_image_interp(__tex_image_074, x, y); break; + case 75: r = kernel_tex_image_interp(__tex_image_075, x, y); break; + case 76: r = kernel_tex_image_interp(__tex_image_076, x, y); break; + case 77: r = kernel_tex_image_interp(__tex_image_077, x, y); break; + case 78: r = kernel_tex_image_interp(__tex_image_078, x, y); break; + case 79: r = kernel_tex_image_interp(__tex_image_079, x, y); break; + case 80: r = kernel_tex_image_interp(__tex_image_080, x, y); break; + case 81: r = kernel_tex_image_interp(__tex_image_081, x, y); break; + case 82: r = kernel_tex_image_interp(__tex_image_082, x, y); break; + case 83: r = kernel_tex_image_interp(__tex_image_083, x, y); break; + case 84: r = kernel_tex_image_interp(__tex_image_084, x, y); break; + case 85: r = kernel_tex_image_interp(__tex_image_085, x, y); break; + case 86: r = kernel_tex_image_interp(__tex_image_086, x, y); break; + case 87: r = kernel_tex_image_interp(__tex_image_087, x, y); break; + case 88: r = kernel_tex_image_interp(__tex_image_088, x, y); break; + case 89: r = kernel_tex_image_interp(__tex_image_089, x, y); break; + case 90: r = kernel_tex_image_interp(__tex_image_090, x, y); break; + case 91: r = kernel_tex_image_interp(__tex_image_091, x, y); break; + 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_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); + } + + return r; +} + +__device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack, uint id, uint co_offset, uint out_offset) +{ + float3 co = stack_load_float3(stack, co_offset); + float4 f = svm_image_texture(kg, id, co.x, co.y); + + stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); +} + +__device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float *stack, uint id, uint co_offset, uint out_offset) +{ + float3 co = stack_load_float3(stack, co_offset); + float u = (atan2f(co.y, co.x) + M_PI_F)/(2*M_PI_F); + float v = atan2f(co.z, hypotf(co.x, co.y))/M_PI_F + 0.5f; + float4 f = svm_image_texture(kg, id, u, v); + + stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_light_path.h b/intern/cycles/kernel/svm/svm_light_path.h new file mode 100644 index 00000000000..a4a461f9590 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_light_path.h @@ -0,0 +1,41 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Light Path Node */ + +__device void svm_node_light_path(ShaderData *sd, float *stack, uint type, uint out_offset, int path_flag) +{ + float info = 0.0f; + + switch(type) { + case NODE_LP_camera: info = (path_flag & PATH_RAY_CAMERA)? 1.0f: 0.0f; break; + case NODE_LP_shadow: info = (path_flag & PATH_RAY_SHADOW)? 1.0f: 0.0f; break; + case NODE_LP_diffuse: info = (path_flag & PATH_RAY_DIFFUSE)? 1.0f: 0.0f; break; + case NODE_LP_glossy: info = (path_flag & PATH_RAY_GLOSSY)? 1.0f: 0.0f; break; + case NODE_LP_reflection: info = (path_flag & PATH_RAY_REFLECT)? 1.0f: 0.0f; break; + case NODE_LP_transmission: info = (path_flag & PATH_RAY_TRANSMIT)? 1.0f: 0.0f; break; + case NODE_LP_backfacing: info = (sd->flag & SD_BACKFACING)? 1.0f: 0.0f; break; + } + + stack_store_float(stack, out_offset, info? 1.0f: 0.0f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_magic.h b/intern/cycles/kernel/svm/svm_magic.h new file mode 100644 index 00000000000..608ca4bbd2f --- /dev/null +++ b/intern/cycles/kernel/svm/svm_magic.h @@ -0,0 +1,108 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Magic */ + +__device float3 svm_magic(float3 p, int n, float turbulence) +{ + float turb = turbulence/5.0f; + + float x = sinf((p.x + p.y + p.z)*5.0f); + float y = cosf((-p.x + p.y - p.z)*5.0f); + float z = -cosf((-p.x - p.y + p.z)*5.0f); + + if(n > 0) { + x *= turb; + y *= turb; + z *= turb; + y = -cosf(x-y+z); + y *= turb; + + if(n > 1) { + x= cosf(x-y-z); + x *= turb; + + if(n > 2) { + z= sinf(-x-y-z); + z *= turb; + + if(n > 3) { + x= -cosf(-x+y-z); + x *= turb; + + if(n > 4) { + y= -sinf(-x+y+z); + y *= turb; + + if(n > 5) { + y= -cosf(-x+y+z); + y *= turb; + + if(n > 6) { + x= cosf(x+y+z); + x *= turb; + + if(n > 7) { + z= sinf(x+y-z); + z *= turb; + + if(n > 8) { + x= -cosf(-x-y+z); + x *= turb; + + if(n > 9) { + y= -sinf(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0f) { + turb *= 2.0f; + x /= turb; + y /= turb; + z /= turb; + } + + return make_float3(0.5f - x, 0.5f - y, 0.5f - z); +} + +__device void svm_node_tex_magic(ShaderData *sd, float *stack, uint4 node) +{ + uint depth, turbulence_offset, co_offset, color_offset; + + decode_node_uchar4(node.y, &depth, &turbulence_offset, &co_offset, &color_offset); + + float3 co = stack_load_float3(stack, co_offset); + float turbulence = stack_load_float_default(stack, turbulence_offset, node.z); + + float3 color = svm_magic(co, depth, turbulence); + stack_store_float3(stack, color_offset, color); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_mapping.h b/intern/cycles/kernel/svm/svm_mapping.h new file mode 100644 index 00000000000..7633c3e783b --- /dev/null +++ b/intern/cycles/kernel/svm/svm_mapping.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. + */ + +CCL_NAMESPACE_BEGIN + +/* Mapping Node */ + +__device void svm_node_mapping(KernelGlobals *kg, ShaderData *sd, float *stack, uint vec_offset, uint out_offset, int *offset) +{ + float3 v = stack_load_float3(stack, vec_offset); + + Transform tfm; + tfm.x = read_node_float(kg, offset); + tfm.y = read_node_float(kg, offset); + tfm.z = read_node_float(kg, offset); + tfm.w = read_node_float(kg, offset); + + float3 r = transform(&tfm, v); + stack_store_float3(stack, out_offset, r); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_marble.h b/intern/cycles/kernel/svm/svm_marble.h new file mode 100644 index 00000000000..4284688afb8 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_marble.h @@ -0,0 +1,67 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Marble */ + +__device float svm_marble(float3 p, float size, NodeMarbleType type, NodeWaveType wave, NodeNoiseBasis basis, int hard, float turb, int depth) +{ + float x = p.x; + float y = p.y; + float z = p.z; + + float n = 5.0f * (x + y + z); + + float mi = n + turb * noise_turbulence(p/size, basis, depth, hard); + + mi = noise_wave(wave, mi); + + if(type == NODE_MARBLE_SHARP) + mi = sqrt(mi); + else if(type == NODE_MARBLE_SHARPER) + mi = sqrt(sqrt(mi)); + + return mi; +} + +__device void svm_node_tex_marble(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + + uint type, wave, basis, hard; + uint depth; + uint size_offset, turbulence_offset, co_offset, fac_offset; + + decode_node_uchar4(node.y, &type, &wave, &basis, &hard); + decode_node_uchar4(node.z, &depth, NULL, NULL, NULL); + decode_node_uchar4(node.w, &size_offset, &turbulence_offset, &co_offset, &fac_offset); + + float3 co = stack_load_float3(stack, co_offset); + float size = stack_load_float_default(stack, size_offset, node2.x); + float turbulence = stack_load_float_default(stack, turbulence_offset, node2.y); + size = nonzerof(size, 1e-5f); + + float f = svm_marble(co, size, (NodeMarbleType)type, (NodeWaveType)wave, + (NodeNoiseBasis)basis, hard, turbulence, depth); + + stack_store_float(stack, fac_offset, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_math.h b/intern/cycles/kernel/svm/svm_math.h new file mode 100644 index 00000000000..6650a10a4d9 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_math.h @@ -0,0 +1,181 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +__device float safe_asinf(float a) +{ + if(a <= -1.0f) + return -M_PI_2; + else if(a >= 1.0f) + return M_PI_2_F; + + return asinf(a); +} + +__device float safe_acosf(float a) +{ + if(a <= -1.0f) + return M_PI_F; + else if(a >= 1.0f) + return 0.0f; + + return acosf(a); +} + +__device float safe_powf(float a, float b) +{ + if(b == 0.0f) + return 1.0f; + if(a == 0.0f) + return 0.0f; + if(a < 0.0f && b != (int)b) + return 0.0f; + + return powf(a, b); +} + +__device float safe_logf(float a, float b) +{ + if(a < 0.0f || b < 0.0f) + return 0.0f; + + return logf(a)/logf(b); +} + +__device float safe_divide(float a, float b) +{ + float result; + + if(b == 0.0f) + result = 0.0f; + else + result = a/b; + + return result; +} + +__device float svm_math(NodeMath type, float Fac1, float Fac2) +{ + float Fac; + + if(type == NODE_MATH_ADD) + Fac = Fac1 + Fac2; + else if(type == NODE_MATH_SUBTRACT) + Fac = Fac1 - Fac2; + else if(type == NODE_MATH_MULTIPLY) + Fac = Fac1*Fac2; + else if(type == NODE_MATH_DIVIDE) + Fac = safe_divide(Fac1, Fac2); + else if(type == NODE_MATH_SINE) + Fac = sinf(Fac1); + else if(type == NODE_MATH_COSINE) + Fac = cosf(Fac1); + else if(type == NODE_MATH_TANGENT) + Fac = tanf(Fac1); + else if(type == NODE_MATH_ARCSINE) + Fac = safe_asinf(Fac1); + else if(type == NODE_MATH_ARCCOSINE) + Fac = safe_acosf(Fac1); + else if(type == NODE_MATH_ARCTANGENT) + Fac = atanf(Fac1); + else if(type == NODE_MATH_POWER) + Fac = safe_powf(Fac1, Fac2); + else if(type == NODE_MATH_LOGARITHM) + Fac = safe_logf(Fac1, Fac2); + else if(type == NODE_MATH_MINIMUM) + Fac = fminf(Fac1, Fac2); + else if(type == NODE_MATH_MAXIMUM) + Fac = fmaxf(Fac1, Fac2); + else if(type == NODE_MATH_ROUND) + Fac = floorf(Fac1 + 0.5f); + else if(type == NODE_MATH_LESS_THAN) + Fac = Fac1 < Fac2; + else if(type == NODE_MATH_GREATER_THAN) + Fac = Fac1 > Fac2; + else + Fac = 0.0f; + + return Fac; +} + +__device void svm_vector_math(float *Fac, float3 *Vector, NodeVectorMath type, float3 Vector1, float3 Vector2) +{ + if(type == NODE_VECTOR_MATH_ADD) { + *Vector = Vector1 + Vector2; + *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; + } + else if(type == NODE_VECTOR_MATH_SUBTRACT) { + *Vector = Vector1 + Vector2; + *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; + } + else if(type == NODE_VECTOR_MATH_AVERAGE) { + *Fac = len(Vector1 + Vector2); + *Vector = normalize(Vector1 + Vector2); + } + else if(type == NODE_VECTOR_MATH_DOT_PRODUCT) { + *Fac = dot(Vector1, Vector2); + *Vector = make_float3(0.0f, 0.0f, 0.0f); + } + else if(type == NODE_VECTOR_MATH_CROSS_PRODUCT) { + float3 c = cross(Vector1, Vector2); + *Fac = len(c); + *Vector = normalize(c); + } + else if(type == NODE_VECTOR_MATH_NORMALIZE) { + *Fac = len(Vector1); + *Vector = normalize(Vector1); + } + else { + *Fac = 0.0f; + *Vector = make_float3(0.0f, 0.0f, 0.0f); + } +} + +/* Nodes */ + +__device void svm_node_math(KernelGlobals *kg, ShaderData *sd, float *stack, uint itype, uint f1_offset, uint f2_offset, int *offset) +{ + NodeMath type = (NodeMath)itype; + float f1 = stack_load_float(stack, f1_offset); + float f2 = stack_load_float(stack, f2_offset); + float f = svm_math(type, f1, f2); + + uint4 node1 = read_node(kg, offset); + + stack_store_float(stack, node1.y, f); +} + +__device void svm_node_vector_math(KernelGlobals *kg, ShaderData *sd, float *stack, uint itype, uint v1_offset, uint v2_offset, int *offset) +{ + NodeVectorMath type = (NodeVectorMath)itype; + float3 v1 = stack_load_float3(stack, v1_offset); + float3 v2 = stack_load_float3(stack, v2_offset); + float f; + float3 v; + + svm_vector_math(&f, &v, type, v1, v2); + + uint4 node1 = read_node(kg, offset); + + if(stack_valid(node1.y)) stack_store_float(stack, node1.y, f); + if(stack_valid(node1.z)) stack_store_float3(stack, node1.z, v); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_mix.h b/intern/cycles/kernel/svm/svm_mix.h new file mode 100644 index 00000000000..5a8ca2f76dd --- /dev/null +++ b/intern/cycles/kernel/svm/svm_mix.h @@ -0,0 +1,387 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +__device float3 rgb_to_hsv(float3 rgb) +{ + float cmax, cmin, h, s, v, cdelta; + float3 c; + + cmax = fmaxf(rgb.x, fmaxf(rgb.y, rgb.z)); + cmin = min(rgb.x, min(rgb.y, rgb.z)); + cdelta = cmax - cmin; + + v = cmax; + + if(cmax != 0.0f) { + s = cdelta/cmax; + } + else { + s = 0.0f; + h = 0.0f; + } + + if(s == 0.0f) { + h = 0.0f; + } + else { + c = (make_float3(cmax, cmax, cmax) - rgb)/cdelta; + + if(rgb.x == cmax) h = c.z - c.y; + else if(rgb.y == cmax) h = 2.0f + c.x - c.z; + else h = 4.0f + c.y - c.x; + + h /= 6.0f; + + if(h < 0.0f) + h += 1.0f; + } + + return make_float3(h, s, v); +} + +__device float3 hsv_to_rgb(float3 hsv) +{ + float i, f, p, q, t, h, s, v; + float3 rgb; + + h = hsv.x; + s = hsv.y; + v = hsv.z; + + if(s==0.0f) { + rgb = make_float3(v, v, v); + } + else { + if(h==1.0f) + h = 0.0f; + + h *= 6.0f; + i = floor(h); + f = h - i; + rgb = make_float3(f, f, f); + p = v*(1.0f-s); + q = v*(1.0f-(s*f)); + t = v*(1.0f-(s*(1.0f-f))); + + if(i == 0.0f) rgb = make_float3(v, t, p); + else if(i == 1.0f) rgb = make_float3(q, v, p); + else if(i == 2.0f) rgb = make_float3(p, v, t); + else if(i == 3.0f) rgb = make_float3(p, q, v); + else if(i == 4.0f) rgb = make_float3(t, p, v); + else rgb = make_float3(v, p, q); + } + + return rgb; +} + +__device float3 svm_mix_blend(float t, float3 col1, float3 col2) +{ + return lerp(col1, col2, t); +} + +__device float3 svm_mix_add(float t, float3 col1, float3 col2) +{ + return lerp(col1, col1 + col2, t); +} + +__device float3 svm_mix_mul(float t, float3 col1, float3 col2) +{ + return lerp(col1, col1 * col2, t); +} + +__device float3 svm_mix_screen(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + return make_float3(1.0f, 1.0f, 1.0f) - (make_float3(tm, tm, tm) + t*(make_float3(1.0f, 1.0f, 1.0f) - col2))*(make_float3(1.0f, 1.0f, 1.0f) - col1); +} + +__device float3 svm_mix_overlay(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + float3 outcol = col1; + + if(outcol.x < 0.5f) + outcol.x *= tm + 2.0f*t*col2.x; + else + outcol.x = 1.0f - (tm + 2.0f*t*(1.0f - col2.x))*(1.0f - outcol.x); + + if(outcol.y < 0.5f) + outcol.y *= tm + 2.0f*t*col2.y; + else + outcol.y = 1.0f - (tm + 2.0f*t*(1.0f - col2.y))*(1.0f - outcol.y); + + if(outcol.z < 0.5f) + outcol.z *= tm + 2.0f*t*col2.z; + else + outcol.z = 1.0f - (tm + 2.0f*t*(1.0f - col2.z))*(1.0f - outcol.z); + + return outcol; +} + +__device float3 svm_mix_sub(float t, float3 col1, float3 col2) +{ + return lerp(col1, col1 - col2, t); +} + +__device float3 svm_mix_div(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + float3 outcol = col1; + + if(col2.x != 0.0f) outcol.x = tm*outcol.x + t*outcol.x/col2.x; + if(col2.y != 0.0f) outcol.y = tm*outcol.y + t*outcol.y/col2.y; + if(col2.z != 0.0f) outcol.z = tm*outcol.z + t*outcol.z/col2.z; + + return outcol; +} + +__device float3 svm_mix_diff(float t, float3 col1, float3 col2) +{ + return lerp(col1, fabs(col1 - col2), t); +} + +__device float3 svm_mix_dark(float t, float3 col1, float3 col2) +{ + return min(col1, col2*t); +} + +__device float3 svm_mix_light(float t, float3 col1, float3 col2) +{ + return max(col1, col2*t); +} + +__device float3 svm_mix_dodge(float t, float3 col1, float3 col2) +{ + float3 outcol = col1; + + if(outcol.x != 0.0f) { + float tmp = 1.0f - t*col2.x; + if(tmp <= 0.0f) + outcol.x = 1.0f; + else if((tmp = outcol.x/tmp) > 1.0f) + outcol.x = 1.0f; + else + outcol.x = tmp; + } + if(outcol.y != 0.0f) { + float tmp = 1.0f - t*col2.y; + if(tmp <= 0.0f) + outcol.y = 1.0f; + else if((tmp = outcol.y/tmp) > 1.0f) + outcol.y = 1.0f; + else + outcol.y = tmp; + } + if(outcol.z != 0.0f) { + float tmp = 1.0f - t*col2.z; + if(tmp <= 0.0f) + outcol.z = 1.0f; + else if((tmp = outcol.z/tmp) > 1.0f) + outcol.z = 1.0f; + else + outcol.z = tmp; + } + + return outcol; +} + +__device float3 svm_mix_burn(float t, float3 col1, float3 col2) +{ + float tmp, tm = 1.0f - t; + + float3 outcol = col1; + + tmp = tm + t*col2.x; + if(tmp <= 0.0f) + outcol.x = 0.0f; + else if((tmp = (1.0f - (1.0f - outcol.x)/tmp)) < 0.0f) + outcol.x = 0.0f; + else if(tmp > 1.0f) + outcol.x = 1.0f; + else + outcol.x = tmp; + + tmp = tm + t*col2.y; + if(tmp <= 0.0f) + outcol.y = 0.0f; + else if((tmp = (1.0f - (1.0f - outcol.y)/tmp)) < 0.0f) + outcol.y = 0.0f; + else if(tmp > 1.0f) + outcol.y = 1.0f; + else + outcol.y = tmp; + + tmp = tm + t*col2.z; + if(tmp <= 0.0f) + outcol.z = 0.0f; + else if((tmp = (1.0f - (1.0f - outcol.z)/tmp)) < 0.0f) + outcol.z = 0.0f; + else if(tmp > 1.0f) + outcol.z = 1.0f; + else + outcol.z = tmp; + + return outcol; +} + +__device float3 svm_mix_hue(float t, float3 col1, float3 col2) +{ + float3 outcol = col1; + + float3 hsv2 = rgb_to_hsv(col2); + + if(hsv2.y != 0.0f) { + float3 hsv = rgb_to_hsv(outcol); + hsv.x = hsv2.x; + float3 tmp = hsv_to_rgb(hsv); + + outcol = lerp(outcol, tmp, t); + } + + return outcol; +} + +__device float3 svm_mix_sat(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + float3 outcol = col1; + + float3 hsv = rgb_to_hsv(outcol); + + if(hsv.y != 0.0f) { + float3 hsv2 = rgb_to_hsv(col2); + + hsv.y = tm*hsv.y + t*hsv2.y; + outcol = hsv_to_rgb(hsv); + } + + return outcol; +} + +__device float3 svm_mix_val(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + float3 hsv = rgb_to_hsv(col1); + float3 hsv2 = rgb_to_hsv(col2); + + hsv.z = tm*hsv.z + t*hsv2.z; + + return hsv_to_rgb(hsv); +} + +__device float3 svm_mix_color(float t, float3 col1, float3 col2) +{ + float3 outcol = col1; + float3 hsv2 = rgb_to_hsv(col2); + + if(hsv2.y != 0.0f) { + float3 hsv = rgb_to_hsv(outcol); + hsv.x = hsv2.x; + hsv.y = hsv2.y; + float3 tmp = hsv_to_rgb(hsv); + + outcol = lerp(outcol, tmp, t); + } + + return outcol; +} + +__device float3 svm_mix_soft(float t, float3 col1, float3 col2) +{ + float tm = 1.0f - t; + + float3 one= make_float3(1.0f, 1.0f, 1.0f); + float3 scr= one - (one - col2)*(one - col1); + + return tm*col1 + t*((one - col1)*col2*col1 + col1*scr); +} + +__device float3 svm_mix_linear(float t, float3 col1, float3 col2) +{ + float3 outcol = col1; + + if(col2.x > 0.5f) + outcol.x= col1.x + t*(2.0f*(col2.x - 0.5f)); + else + outcol.x= col1.x + t*(2.0f*(col2.x) - 1.0f); + + if(col2.y > 0.5f) + outcol.y= col1.y + t*(2.0f*(col2.y - 0.5f)); + else + outcol.y= col1.y + t*(2.0f*(col2.y) - 1.0f); + + if(col2.z > 0.5f) + outcol.z= col1.z + t*(2.0f*(col2.z - 0.5f)); + else + outcol.z= col1.z + t*(2.0f*(col2.z) - 1.0f); + + return outcol; +} + +__device float3 svm_mix(NodeMix type, float fac, float3 c1, float3 c2) +{ + float t = clamp(fac, 0.0f, 1.0f); + + switch(type) { + case NODE_MIX_BLEND: return svm_mix_blend(t, c1, c2); + case NODE_MIX_ADD: return svm_mix_add(t, c1, c2); + case NODE_MIX_MUL: return svm_mix_mul(t, c1, c2); + case NODE_MIX_SCREEN: return svm_mix_screen(t, c1, c2); + case NODE_MIX_OVERLAY: return svm_mix_overlay(t, c1, c2); + case NODE_MIX_SUB: return svm_mix_sub(t, c1, c2); + case NODE_MIX_DIV: return svm_mix_div(t, c1, c2); + case NODE_MIX_DIFF: return svm_mix_diff(t, c1, c2); + case NODE_MIX_DARK: return svm_mix_dark(t, c1, c2); + case NODE_MIX_LIGHT: return svm_mix_light(t, c1, c2); + case NODE_MIX_DODGE: return svm_mix_dodge(t, c1, c2); + case NODE_MIX_BURN: return svm_mix_burn(t, c1, c2); + case NODE_MIX_HUE: return svm_mix_hue(t, c1, c2); + case NODE_MIX_SAT: return svm_mix_sat(t, c1, c2); + case NODE_MIX_VAL: return svm_mix_val (t, c1, 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); + } + + return make_float3(0.0f, 0.0f, 0.0f); +} + +/* Node */ + +__device void svm_node_mix(KernelGlobals *kg, ShaderData *sd, float *stack, uint fac_offset, uint c1_offset, uint c2_offset, int *offset) +{ + /* read extra data */ + uint4 node1 = read_node(kg, offset); + + float fac = stack_load_float(stack, fac_offset); + float3 c1 = stack_load_float3(stack, c1_offset); + float3 c2 = stack_load_float3(stack, c2_offset); + float3 result = svm_mix((NodeMix)node1.y, fac, c1, c2); + + stack_store_float3(stack, node1.z, result); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_musgrave.h b/intern/cycles/kernel/svm/svm_musgrave.h new file mode 100644 index 00000000000..5163b9f2ced --- /dev/null +++ b/intern/cycles/kernel/svm/svm_musgrave.h @@ -0,0 +1,237 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Musgrave fBm + * + * H: fractal increment parameter + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * + * from "Texturing and Modelling: A procedural approach" + */ + +__device float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 0.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value += noise_basis(p, basis) * pwr; + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value += rmd * noise_basis(p, basis) * pwr; + + return value; +} + +/* Musgrave Multifractal + * + * H: highest fractal dimension + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + */ + +__device float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 1.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value *= (pwr * noise_basis(p, basis) + 1.0f); + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value *= (rmd * pwr * noise_basis(p, basis) + 1.0f); /* correct? */ + + return value; +} + +/* Musgrave Heterogeneous Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +__device float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset) +{ + float value, increment, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + /* first unscaled octave of function; later octaves are scaled */ + value = offset + noise_basis(p, basis); + p *= lacunarity; + + for(i = 1; i < (int)octaves; i++) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += increment; + pwr *= pwHL; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += rmd * increment; + } + + return value; +} + +/* Hybrid Additive/Multiplicative Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +__device float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + result = noise_basis(p, basis) + offset; + weight = gain * result; + p *= lacunarity; + + for(i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { + if(weight > 1.0f) + weight = 1.0f; + + signal = (noise_basis(p, basis) + offset) * pwr; + pwr *= pwHL; + result += weight * signal; + weight *= gain * signal; + p *= lacunarity; + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + result += rmd * ((noise_basis(p, basis) + offset) * pwr); + + return result; +} + +/* Ridged Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +__device float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + result = signal; + weight = 1.0f; + + for(i = 1; i < (int)octaves; i++) { + p *= lacunarity; + weight = clamp(signal * gain, 0.0f, 1.0f); + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + signal *= weight; + result += signal * pwr; + pwr *= pwHL; + } + + return result; +} + +/* Shader */ + +__device float svm_musgrave(NodeMusgraveType type, NodeNoiseBasis basis, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float size, float3 p) +{ + p /= size; + + if(type == NODE_MUSGRAVE_MULTIFRACTAL) + return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); + else if(type == NODE_MUSGRAVE_FBM) + return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, octaves); + else if(type == NODE_MUSGRAVE_HYBRID_MULTIFRACTAL) + return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == NODE_MUSGRAVE_RIDGED_MULTIFRACTAL) + return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == NODE_MUSGRAVE_HETERO_TERRAIN) + return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, octaves, offset); + + return 0.0f; +} + +__device void svm_node_tex_musgrave(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + uint4 node3 = read_node(kg, offset); + + uint type, basis, co_offset, fac_offset; + uint dimension_offset, lacunarity_offset, octaves_offset, offset_offset; + uint gain_offset, size_offset; + + decode_node_uchar4(node.y, &type, &basis, &co_offset, &fac_offset); + decode_node_uchar4(node.z, &dimension_offset, &lacunarity_offset, &octaves_offset, &offset_offset); + decode_node_uchar4(node.z, &gain_offset, &size_offset, NULL, NULL); + + float3 co = stack_load_float3(stack, co_offset); + float dimension = stack_load_float_default(stack, dimension_offset, node2.x); + float lacunarity = stack_load_float_default(stack, lacunarity_offset, node2.y); + float octaves = stack_load_float_default(stack, octaves_offset, node2.z); + float foffset = stack_load_float_default(stack, offset_offset, node2.w); + float gain = stack_load_float_default(stack, gain_offset, node3.x); + float size = stack_load_float_default(stack, size_offset, node3.y); + + dimension = fmaxf(dimension, 0.0f); + octaves = fmaxf(octaves, 0.0f); + lacunarity = fmaxf(lacunarity, 1e-5f); + size = nonzerof(size, 1e-5f); + + float f = svm_musgrave((NodeMusgraveType)type, (NodeNoiseBasis)basis, + dimension, lacunarity, octaves, foffset, 1.0f, gain, size, co); + + stack_store_float(stack, fac_offset, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_noise.h b/intern/cycles/kernel/svm/svm_noise.h new file mode 100644 index 00000000000..745744e142c --- /dev/null +++ b/intern/cycles/kernel/svm/svm_noise.h @@ -0,0 +1,230 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +CCL_NAMESPACE_BEGIN + +__device int quick_floor(float x) +{ + return (int)x - ((x < 0) ? 1 : 0); +} + +__device float bits_to_01(uint bits) +{ + return bits * (1.0f/(float)0xFFFFFFFF); +} + +__device uint hash(uint kx, uint ky, uint kz) +{ + // define some handy macros +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) +#define final(a,b,c) \ +{ \ + c ^= b; c -= rot(b,14); \ + a ^= c; a -= rot(c,11); \ + b ^= a; b -= rot(a,25); \ + c ^= b; c -= rot(b,16); \ + a ^= c; a -= rot(c,4); \ + b ^= a; b -= rot(a,14); \ + c ^= b; c -= rot(b,24); \ +} + // now hash the data! + uint a, b, c, len = 3; + a = b = c = 0xdeadbeef + (len << 2) + 13; + + c += kz; + b += ky; + a += kx; + final(a, b, c); + + return c; + // macros not needed anymore +#undef rot +#undef final +} + +__device int imod(int a, int b) +{ + a %= b; + return a < 0 ? a + b : a; +} + +__device uint phash(int kx, int ky, int kz, int3 p) +{ + return hash(imod(kx, p.x), imod(ky, p.y), imod(kz, p.z)); +} + +__device float floorfrac(float x, int* i) +{ + *i = quick_floor(x); + return x - *i; +} + +__device float fade(float t) +{ + return t * t * t * (t * (t * 6.0f - 15.0f) + 10.0f); +} + +__device float nerp(float t, float a, float b) +{ + return (1.0f - t) * a + t * b; +} + +__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; + return ((h&1) ? -u : u) + ((h&2) ? -v : v); +} + +__device float scale3(float result) +{ + return 0.9820f * result; +} + +__device float perlin(float x, float y, float z) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (hash (X , Y , Z ), fx , fy , fz ), + grad (hash (X+1, Y , Z ), fx-1.0f, fy , fz )), + nerp (u, grad (hash (X , Y+1, Z ), fx , fy-1.0f, fz ), + grad (hash (X+1, Y+1, Z ), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (hash (X , Y , Z+1), fx , fy , fz-1.0f ), + grad (hash (X+1, Y , Z+1), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (hash (X , Y+1, Z+1), fx , fy-1.0f, fz-1.0f ), + grad (hash (X+1, Y+1, Z+1), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +__device float perlin_periodic(float x, float y, float z, float3 pperiod) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + int3 p; + + p.x = fmaxf(quick_floor(pperiod.x), 1); + p.y = fmaxf(quick_floor(pperiod.y), 1); + p.z = fmaxf(quick_floor(pperiod.z), 1); + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (phash (X , Y , Z , p), fx , fy , fz ), + grad (phash (X+1, Y , Z , p), fx-1.0f, fy , fz )), + nerp (u, grad (phash (X , Y+1, Z , p), fx , fy-1.0f, fz ), + grad (phash (X+1, Y+1, Z , p), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (phash (X , Y , Z+1, p), fx , fy , fz-1.0f ), + grad (phash (X+1, Y , Z+1, p), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (phash (X , Y+1, Z+1, p), fx , fy-1.0f, fz-1.0f ), + grad (phash (X+1, Y+1, Z+1, p), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +/* perlin noise in range 0..1 */ +__device float noise(float3 p) +{ + float r = perlin(p.x, p.y, p.z); + return 0.5f*r + 0.5f; +} + +/* perlin noise in range -1..1 */ +__device float snoise(float3 p) +{ + return perlin(p.x, p.y, p.z); +} + +/* cell noise */ +__device float cellnoise(float3 p) +{ + uint ix = quick_floor(p.x); + uint iy = quick_floor(p.y); + uint iz = quick_floor(p.z); + + return bits_to_01(hash(ix, iy, iz)); +} + +__device float3 cellnoise_color(float3 p) +{ + float r = cellnoise(p); + float g = cellnoise(make_float3(p.y, p.x, p.z)); + float b = cellnoise(make_float3(p.y, p.z, p.x)); + + return make_float3(r, g, b); +} + +/* periodic perlin noise in range 0..1 */ +__device float pnoise(float3 p, float3 pperiod) +{ + float r = perlin_periodic(p.x, p.y, p.z, pperiod); + return 0.5f*r + 0.5f; +} + +/* periodic perlin noise in range -1..1 */ +__device float psnoise(float3 p, float3 pperiod) +{ + return perlin_periodic(p.x, p.y, p.z, pperiod); +} + +/* turbulence */ +__device float turbulence(float3 P, int oct, bool hard) +{ + float amp = 1.0f, fscale = 1.0f, sum = 0.0f; + int i; + + for(i=0; i<=oct; i++, amp *= 0.5f, fscale *= 2.0f) { + float t = noise(fscale*P); + if(hard) t = fabsf(2.0f*t - 1.0f); + sum += t * amp; + } + + sum *= ((float)(1<object != ~0) { + Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM); + data = transform(&tfm, sd->P); + } + else + data = sd->P; + break; + } + case NODE_TEXCO_CAMERA: { + Transform tfm = kernel_data.cam.worldtocamera; + + if(sd->object != ~0) + data = transform(&tfm, sd->P); + else + data = transform(&tfm, sd->P + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_WINDOW: { + Transform tfm = kernel_data.cam.worldtondc; + + if(sd->object != ~0) + data = transform(&tfm, sd->P); + else + data = transform(&tfm, sd->P + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_REFLECTION: { + if(sd->object != ~0) + data = sd->I - 2.0f*dot(sd->N, sd->I)*sd->N; + else + data = sd->I; + break; + } + } + + stack_store_float3(stack, out_offset, data); +} + +__device void svm_node_tex_coord_bump_dx(KernelGlobals *kg, ShaderData *sd, float *stack, uint type, uint out_offset) +{ +#ifdef __RAY_DIFFERENTIALS__ + float3 data; + + switch(type) { + case NODE_TEXCO_OBJECT: { + if(sd->object != ~0) { + Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM); + data = transform(&tfm, sd->P + sd->dP.dx); + } + else + data = sd->P + sd->dP.dx; + break; + } + case NODE_TEXCO_CAMERA: { + Transform tfm = kernel_data.cam.worldtocamera; + + if(sd->object != ~0) + data = transform(&tfm, sd->P + sd->dP.dx); + else + data = transform(&tfm, sd->P + sd->dP.dx + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_WINDOW: { + Transform tfm = kernel_data.cam.worldtondc; + + if(sd->object != ~0) + data = transform(&tfm, sd->P + sd->dP.dx); + else + data = transform(&tfm, sd->P + sd->dP.dx + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_REFLECTION: { + if(sd->object != ~0) + data = sd->I - 2.0f*dot(sd->N, sd->I)*sd->N; + else + data = sd->I; + break; + } + } + + stack_store_float3(stack, out_offset, data); +#else + svm_node_tex_coord(kg, sd, stack, type, out_offset); +#endif +} + +__device void svm_node_tex_coord_bump_dy(KernelGlobals *kg, ShaderData *sd, float *stack, uint type, uint out_offset) +{ +#ifdef __RAY_DIFFERENTIALS__ + float3 data; + + switch(type) { + case NODE_TEXCO_OBJECT: { + if(sd->object != ~0) { + Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM); + data = transform(&tfm, sd->P + sd->dP.dy); + } + else + data = sd->P + sd->dP.dy; + break; + } + case NODE_TEXCO_CAMERA: { + Transform tfm = kernel_data.cam.worldtocamera; + + if(sd->object != ~0) + data = transform(&tfm, sd->P + sd->dP.dy); + else + data = transform(&tfm, sd->P + sd->dP.dy + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_WINDOW: { + Transform tfm = kernel_data.cam.worldtondc; + + if(sd->object != ~0) + data = transform(&tfm, sd->P + sd->dP.dy); + else + data = transform(&tfm, sd->P + sd->dP.dy + svm_background_offset(kg)); + break; + } + case NODE_TEXCO_REFLECTION: { + if(sd->object != ~0) + data = sd->I - 2.0f*dot(sd->N, sd->I)*sd->N; + else + data = sd->I; + break; + } + } + + stack_store_float3(stack, out_offset, data); +#else + svm_node_tex_coord(kg, sd, stack, type, out_offset); +#endif +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h new file mode 100644 index 00000000000..c5f71c0d5bd --- /dev/null +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -0,0 +1,240 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Voronoi Distances */ + +__device float voronoi_distance(NodeDistanceMetric distance_metric, float3 d, float e) +{ + if(distance_metric == NODE_VORONOI_DISTANCE_SQUARED) + return dot(d, d); + if(distance_metric == NODE_VORONOI_ACTUAL_DISTANCE) + return len(d); + if(distance_metric == NODE_VORONOI_MANHATTAN) + return fabsf(d.x) + fabsf(d.y) + fabsf(d.z); + if(distance_metric == NODE_VORONOI_CHEBYCHEV) + return fmaxf(fabsf(d.x), fmaxf(fabsf(d.y), fabsf(d.z))); + if(distance_metric == NODE_VORONOI_MINKOVSKY_H) + return sqrtf(fabsf(d.x)) + sqrtf(fabsf(d.y)) + sqrtf(fabsf(d.y)); + if(distance_metric == NODE_VORONOI_MINKOVSKY_4) + return sqrtf(sqrtf(dot(d*d, d*d))); + if(distance_metric == NODE_VORONOI_MINKOVSKY) + return powf(powf(fabsf(d.x), e) + powf(fabsf(d.y), e) + powf(fabsf(d.z), e), 1.0f/e); + + return 0.0f; +} + +/* Voronoi / Worley like */ + +__device void voronoi(float3 p, NodeDistanceMetric distance_metric, float e, float da[4], float3 pa[4]) +{ + /* returns distances in da and point coords in pa */ + int xx, yy, zz, xi, yi, zi; + + xi = (int)floorf(p.x); + yi = (int)floorf(p.y); + zi = (int)floorf(p.z); + + da[0] = 1e10f; + da[1] = 1e10f; + da[2] = 1e10f; + da[3] = 1e10f; + + pa[0] = make_float3(0.0f, 0.0f, 0.0f); + pa[1] = make_float3(0.0f, 0.0f, 0.0f); + pa[2] = make_float3(0.0f, 0.0f, 0.0f); + pa[3] = make_float3(0.0f, 0.0f, 0.0f); + + for(xx = xi-1; xx <= xi+1; xx++) { + for(yy = yi-1; yy <= yi+1; yy++) { + for(zz = zi-1; zz <= zi+1; zz++) { + float3 ip = make_float3(xx, yy, zz); + float3 vp = cellnoise_color(ip); + float3 pd = p - (vp + ip); + float d = voronoi_distance(distance_metric, pd, e); + + vp += make_float3(xx, yy, zz); + + if(d < da[0]) { + da[3] = da[2]; + da[2] = da[1]; + da[1] = da[0]; + da[0] = d; + + pa[3] = pa[2]; + pa[2] = pa[1]; + pa[1] = pa[0]; + pa[0] = vp; + } + else if(d < da[1]) { + da[3] = da[2]; + da[2] = da[1]; + da[1] = d; + + pa[3] = pa[2]; + pa[2] = pa[1]; + pa[1] = vp; + } + else if(d < da[2]) { + da[3] = da[2]; + da[2] = d; + + pa[3] = pa[2]; + pa[2] = vp; + } + else if(d < da[3]) { + da[3] = d; + pa[3] = vp; + } + } + } + } +} + +__device float voronoi_Fn(float3 p, int n) +{ + float da[4]; + float3 pa[4]; + + voronoi(p, NODE_VORONOI_DISTANCE_SQUARED, 0, da, pa); + + return da[n]; +} + +__device float voronoi_FnFn(float3 p, int n1, int n2) +{ + float da[4]; + float3 pa[4]; + + voronoi(p, NODE_VORONOI_DISTANCE_SQUARED, 0, da, pa); + + return da[n2] - da[n1]; +} + +__device float voronoi_F1(float3 p) { return voronoi_Fn(p, 0); } +__device float voronoi_F2(float3 p) { return voronoi_Fn(p, 1); } +__device float voronoi_F3(float3 p) { return voronoi_Fn(p, 2); } +__device float voronoi_F4(float3 p) { return voronoi_Fn(p, 3); } +__device float voronoi_F1F2(float3 p) { return voronoi_FnFn(p, 0, 1); } + +__device float voronoi_Cr(float3 p) +{ + /* crackle type pattern, just a scale/clamp of F2-F1 */ + float t = 10.0f*voronoi_F1F2(p); + return (t > 1.0f)? 1.0f: t; +} + +__device float voronoi_F1S(float3 p) { return 2.0f*voronoi_F1(p) - 1.0f; } +__device float voronoi_F2S(float3 p) { return 2.0f*voronoi_F2(p) - 1.0f; } +__device float voronoi_F3S(float3 p) { return 2.0f*voronoi_F3(p) - 1.0f; } +__device float voronoi_F4S(float3 p) { return 2.0f*voronoi_F4(p) - 1.0f; } +__device float voronoi_F1F2S(float3 p) { return 2.0f*voronoi_F1F2(p) - 1.0f; } +__device float voronoi_CrS(float3 p) { return 2.0f*voronoi_Cr(p) - 1.0f; } + +/* Noise Bases */ + +__device float noise_basis(float3 p, NodeNoiseBasis basis) +{ + /* Only Perlin enabled for now, others break CUDA compile by making kernel + too big, with compile using > 4GB, due to everything being inlined. */ + +#if 0 + if(basis == NODE_NOISE_PERLIN) +#endif + return noise(p); +#if 0 + if(basis == NODE_NOISE_VORONOI_F1) + return voronoi_F1S(p); + if(basis == NODE_NOISE_VORONOI_F2) + return voronoi_F2S(p); + if(basis == NODE_NOISE_VORONOI_F3) + return voronoi_F3S(p); + if(basis == NODE_NOISE_VORONOI_F4) + return voronoi_F4S(p); + if(basis == NODE_NOISE_VORONOI_F2_F1) + return voronoi_F1F2S(p); + if(basis == NODE_NOISE_VORONOI_CRACKLE) + return voronoi_CrS(p); + if(basis == NODE_NOISE_CELL_NOISE) + return cellnoise(p); + + return 0.0f; +#endif +} + +/* Soft/Hard Noise */ + +__device float noise_basis_hard(float3 p, NodeNoiseBasis basis, int hard) +{ + float t = noise_basis(p, basis); + return (hard)? fabsf(2.0f*t - 1.0f): t; +} + +/* Waves */ + +__device float noise_wave(NodeWaveType wave, float a) +{ + if(wave == NODE_WAVE_SINE) { + return 0.5f + 0.5f*sin(a); + } + else if(wave == NODE_WAVE_SAW) { + float b = 2*M_PI; + int n = (int)(a / b); + a -= n*b; + if(a < 0) a += b; + + return a / b; + } + else if(wave == NODE_WAVE_TRI) { + float b = 2*M_PI; + float rmax = 1.0f; + + return rmax - 2.0f*fabsf(floorf((a*(1.0f/b))+0.5f) - (a*(1.0f/b))); + } + + return 0.0f; +} + +/* Turbulence */ + +__device float noise_turbulence(float3 p, NodeNoiseBasis basis, int octaves, int hard) +{ + float fscale = 1.0f; + float amp = 1.0f; + float sum = 0.0f; + int i; + + for(i = 0; i <= octaves; i++) { + float t = noise_basis(fscale*p, basis); + + if(hard) + t = fabsf(2.0f*t - 1.0f); + + sum += t*amp; + amp *= 0.5f; + fscale *= 2.0f; + } + + sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + + return sum; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h new file mode 100644 index 00000000000..aa58aba79c9 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_types.h @@ -0,0 +1,286 @@ +/* + * 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 __SVM_TYPES_H__ +#define __SVM_TYPES_H__ + +CCL_NAMESPACE_BEGIN + +/* Stack */ + +/* SVM stack has a fixed size */ +#define SVM_STACK_SIZE 64 +/* SVM stack offsets with this value indicate that it's not on the stack */ +#define SVM_STACK_INVALID 255 + +/* Nodes */ + +/* note that we do not simply use 0, 1, 2, .. as values for these. this works + * around an obscure CUDA bug that happens when compiling for fermi. why it + * happens i have no idea, but consecutive values are problematic, maybe it + * generates an incorrect jump table. */ + +enum NodeType { + NODE_END = 0, + NODE_CLOSURE_BSDF = 100, + NODE_CLOSURE_EMISSION = 200, + NODE_CLOSURE_BACKGROUND = 300, + NODE_CLOSURE_SET_WEIGHT = 400, + NODE_CLOSURE_WEIGHT = 500, + NODE_MIX_CLOSURE = 600, + NODE_JUMP = 700, + NODE_TEX_NOISE_F = 800, + NODE_TEX_NOISE_V = 900, + NODE_TEX_IMAGE = 1000, + NODE_TEX_SKY = 1100, + NODE_GEOMETRY = 1200, + NODE_LIGHT_PATH = 1300, + NODE_VALUE_F = 1400, + NODE_VALUE_V = 1500, + NODE_MIX = 1600, + NODE_ATTR = 1700, + NODE_CONVERT = 1900, + NODE_FRESNEL = 2000, + NODE_EMISSION_WEIGHT = 2100, + NODE_TEX_BLEND = 2200, + NODE_TEX_VORONOI = 2300, + NODE_TEX_MUSGRAVE = 2400, + NODE_TEX_MARBLE = 2500, + NODE_TEX_MAGIC = 2600, + NODE_TEX_STUCCI = 2700, + NODE_TEX_DISTORTED_NOISE = 2800, + NODE_TEX_WOOD = 2900, + NODE_TEX_CLOUDS = 3000, + NODE_SHADER_JUMP = 3100, + NODE_SET_DISPLACEMENT = 3200, + NODE_GEOMETRY_BUMP_DX = 3300, + NODE_GEOMETRY_BUMP_DY = 3400, + NODE_SET_BUMP = 3500, + NODE_MATH = 3600, + NODE_VECTOR_MATH = 3700, + NODE_MAPPING = 3800, + NODE_TEX_COORD = 3900, + NODE_TEX_COORD_BUMP_DX = 4000, + NODE_TEX_COORD_BUMP_DY = 4100, + NODE_ADD_CLOSURE = 4200, + NODE_EMISSION_SET_WEIGHT_TOTAL = 4300, + NODE_ATTR_BUMP_DX = 4400, + NODE_ATTR_BUMP_DY = 4500, + NODE_TEX_ENVIRONMENT = 4600 +}; + +enum NodeAttributeType { + NODE_ATTR_FLOAT = 0, + NODE_ATTR_FLOAT3 +}; + +enum NodeGeometry { + NODE_GEOM_P = 0, + NODE_GEOM_N, + NODE_GEOM_T, + NODE_GEOM_I, + NODE_GEOM_Ng, + NODE_GEOM_uv +}; + +enum NodeLightPath { + NODE_LP_camera = 0, + NODE_LP_shadow, + NODE_LP_diffuse, + NODE_LP_glossy, + NODE_LP_reflection, + NODE_LP_transmission, + NODE_LP_backfacing +}; + +enum NodeTexCoord { + NODE_TEXCO_OBJECT, + NODE_TEXCO_CAMERA, + NODE_TEXCO_WINDOW, + NODE_TEXCO_REFLECTION +}; + +enum NodeMix { + NODE_MIX_BLEND = 0, + NODE_MIX_ADD, + NODE_MIX_MUL, + NODE_MIX_SCREEN, + NODE_MIX_OVERLAY, + NODE_MIX_SUB, + NODE_MIX_DIV, + NODE_MIX_DIFF, + NODE_MIX_DARK, + NODE_MIX_LIGHT, + NODE_MIX_DODGE, + NODE_MIX_BURN, + NODE_MIX_HUE, + NODE_MIX_SAT, + NODE_MIX_VAL, + NODE_MIX_COLOR, + NODE_MIX_SOFT, + NODE_MIX_LINEAR +}; + +enum NodeMath { + NODE_MATH_ADD, + NODE_MATH_SUBTRACT, + NODE_MATH_MULTIPLY, + NODE_MATH_DIVIDE, + NODE_MATH_SINE, + NODE_MATH_COSINE, + NODE_MATH_TANGENT, + NODE_MATH_ARCSINE, + NODE_MATH_ARCCOSINE, + NODE_MATH_ARCTANGENT, + NODE_MATH_POWER, + NODE_MATH_LOGARITHM, + NODE_MATH_MINIMUM, + NODE_MATH_MAXIMUM, + NODE_MATH_ROUND, + NODE_MATH_LESS_THAN, + NODE_MATH_GREATER_THAN +}; + +enum NodeVectorMath { + NODE_VECTOR_MATH_ADD, + NODE_VECTOR_MATH_SUBTRACT, + NODE_VECTOR_MATH_AVERAGE, + NODE_VECTOR_MATH_DOT_PRODUCT, + NODE_VECTOR_MATH_CROSS_PRODUCT, + NODE_VECTOR_MATH_NORMALIZE +}; + +enum NodeConvert { + NODE_CONVERT_FV, + NODE_CONVERT_CF, + NODE_CONVERT_VF +}; + +enum NodeDistanceMetric { + NODE_VORONOI_DISTANCE_SQUARED, + NODE_VORONOI_ACTUAL_DISTANCE, + NODE_VORONOI_MANHATTAN, + NODE_VORONOI_CHEBYCHEV, + NODE_VORONOI_MINKOVSKY_H, + NODE_VORONOI_MINKOVSKY_4, + NODE_VORONOI_MINKOVSKY +}; + +enum NodeNoiseBasis { + NODE_NOISE_PERLIN, + NODE_NOISE_VORONOI_F1, + NODE_NOISE_VORONOI_F2, + NODE_NOISE_VORONOI_F3, + NODE_NOISE_VORONOI_F4, + NODE_NOISE_VORONOI_F2_F1, + NODE_NOISE_VORONOI_CRACKLE, + NODE_NOISE_CELL_NOISE +}; + +enum NodeWaveType { + NODE_WAVE_SINE, + NODE_WAVE_SAW, + NODE_WAVE_TRI +}; + +enum NodeMusgraveType { + NODE_MUSGRAVE_MULTIFRACTAL, + NODE_MUSGRAVE_FBM, + NODE_MUSGRAVE_HYBRID_MULTIFRACTAL, + NODE_MUSGRAVE_RIDGED_MULTIFRACTAL, + NODE_MUSGRAVE_HETERO_TERRAIN +}; + +enum NodeWoodType { + NODE_WOOD_BANDS, + NODE_WOOD_RINGS, + NODE_WOOD_BAND_NOISE, + NODE_WOOD_RING_NOISE +}; + +enum NodeBlendType { + NODE_BLEND_LINEAR, + NODE_BLEND_QUADRATIC, + NODE_BLEND_EASING, + NODE_BLEND_DIAGONAL, + NODE_BLEND_RADIAL, + NODE_BLEND_QUADRATIC_SPHERE, + NODE_BLEND_SPHERICAL +}; + +enum NodeBlendAxis { + NODE_BLEND_HORIZONTAL, + NODE_BLEND_VERTICAL +}; + +enum NodeMarbleType { + NODE_MARBLE_SOFT, + NODE_MARBLE_SHARP, + NODE_MARBLE_SHARPER +}; + +enum NodeStucciType { + NODE_STUCCI_PLASTIC, + NODE_STUCCI_WALL_IN, + NODE_STUCCI_WALL_OUT +}; + +enum NodeVoronoiColoring { + NODE_VORONOI_INTENSITY, + NODE_VORONOI_POSITION, + NODE_VORONOI_POSITION_OUTLINE, + NODE_VORONOI_POSITION_OUTLINE_INTENSITY +}; + +enum ShaderType { + SHADER_TYPE_SURFACE, + SHADER_TYPE_VOLUME, + SHADER_TYPE_DISPLACEMENT +}; + +/* Closure */ + +typedef enum ClosureType { + CLOSURE_BSDF_DIFFUSE_ID, + CLOSURE_BSDF_TRANSLUCENT_ID, + CLOSURE_BSDF_REFLECTION_ID, + CLOSURE_BSDF_REFRACTION_ID, + CLOSURE_BSDF_GLASS_ID, + CLOSURE_BSDF_TRANSPARENT_ID, + CLOSURE_BSDF_MICROFACET_GGX_ID, + CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, + CLOSURE_BSDF_MICROFACET_BECKMANN_ID, + CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, + CLOSURE_BSDF_WARD_ID, + CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, + CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, + CLOSURE_BSDF_WESTIN_SHEEN_ID, + CLOSURE_BSSRDF_CUBIC_ID, + CLOSURE_EMISSION_ID, + CLOSURE_DEBUG_ID, + CLOSURE_BACKGROUND_ID, + CLOSURE_HOLDOUT_ID, + CLOSURE_SUBSURFACE_ID, + + NBUILTIN_CLOSURES +} ClosureType; + +CCL_NAMESPACE_END + +#endif /* __SVM_TYPES_H__ */ + diff --git a/intern/cycles/kernel/svm/svm_value.h b/intern/cycles/kernel/svm/svm_value.h new file mode 100644 index 00000000000..80cb285f80c --- /dev/null +++ b/intern/cycles/kernel/svm/svm_value.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. + */ + +CCL_NAMESPACE_BEGIN + +/* Value Nodes */ + +__device void svm_node_value_f(KernelGlobals *kg, ShaderData *sd, float *stack, uint ivalue, uint out_offset) +{ + stack_store_float(stack, out_offset, __int_as_float(ivalue)); +} + +__device void svm_node_value_v(KernelGlobals *kg, ShaderData *sd, float *stack, uint out_offset, int *offset) +{ + /* read extra data */ + uint4 node1 = read_node(kg, offset); + float3 p = make_float3(__int_as_float(node1.y), __int_as_float(node1.z), __int_as_float(node1.w)); + + stack_store_float3(stack, out_offset, p); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_voronoi.h b/intern/cycles/kernel/svm/svm_voronoi.h new file mode 100644 index 00000000000..df37b8faca8 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_voronoi.h @@ -0,0 +1,105 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Voronoi */ + +__device float svm_voronoi(NodeDistanceMetric distance_metric, NodeVoronoiColoring coloring, + float weight1, float weight2, float weight3, float weight4, + float exponent, float intensity, float size, float3 p, float3 *color) +{ + float aw1 = fabsf(weight1); + float aw2 = fabsf(weight2); + float aw3 = fabsf(weight3); + float aw4 = fabsf(weight4); + float sc = (aw1 + aw2 + aw3 + aw4); + + if(sc != 0.0f) + sc = intensity/sc; + + /* compute distance and point coordinate of 4 nearest neighbours */ + float da[4]; + float3 pa[4]; + + voronoi(p/size, distance_metric, exponent, da, pa); + + /* Scalar output */ + float fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + + /* colored output */ + if(coloring == NODE_VORONOI_INTENSITY) { + *color = make_float3(fac, fac, 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 != NODE_VORONOI_POSITION) { + float t1 = min((da[1] - da[0])*10.0f, 1.0f); + + if(coloring == NODE_VORONOI_POSITION_OUTLINE_INTENSITY) + *color *= t1*fac; + else if(coloring == NODE_VORONOI_POSITION_OUTLINE) + *color *= t1*sc; + } + else { + *color *= sc; + } + } + + return fac; +} + +__device void svm_node_tex_voronoi(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + uint4 node3 = read_node(kg, offset); + + uint distance_metric, coloring, exponent_offset; + uint size_offset, co_offset, fac_offset, color_offset; + uint weight1_offset, weight2_offset, weight3_offset, weight4_offset; + + decode_node_uchar4(node.y, &distance_metric, &coloring, &exponent_offset, NULL); + decode_node_uchar4(node.z, &size_offset, &co_offset, &fac_offset, &color_offset); + decode_node_uchar4(node.w, &weight1_offset, &weight2_offset, &weight3_offset, &weight4_offset); + + float3 co = stack_load_float3(stack, co_offset); + float weight1 = stack_load_float_default(stack, weight1_offset, node2.x); + float weight2 = stack_load_float_default(stack, weight2_offset, node2.y); + float weight3 = stack_load_float_default(stack, weight3_offset, node2.z); + float weight4 = stack_load_float_default(stack, weight4_offset, node2.w); + float exponent = stack_load_float_default(stack, exponent_offset, node3.x); + float size = stack_load_float_default(stack, size_offset, node3.y); + + exponent = fmaxf(exponent, 1e-5f); + size = nonzerof(size, 1e-5f); + + float3 color; + float f = svm_voronoi((NodeDistanceMetric)distance_metric, + (NodeVoronoiColoring)coloring, + weight1, weight2, weight3, weight4, exponent, 1.0f, size, co, &color); + + if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, color); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_wood.h b/intern/cycles/kernel/svm/svm_wood.h new file mode 100644 index 00000000000..5c94a9fa3a2 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_wood.h @@ -0,0 +1,69 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Wood */ + +__device float svm_wood(float3 p, float size, NodeWoodType type, NodeWaveType wave, NodeNoiseBasis basis, uint hard, float turb) +{ + float x = p.x; + float y = p.y; + float z = p.z; + + if(type == NODE_WOOD_BANDS) { + return noise_wave(wave, (x + y + z)*10.0f); + } + else if(type == NODE_WOOD_RINGS) { + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f); + } + else if (type == NODE_WOOD_BAND_NOISE) { + float wi = turb*noise_basis_hard(p/size, basis, hard); + return noise_wave(wave, (x + y + z)*10.0f + wi); + } + else if (type == NODE_WOOD_RING_NOISE) { + float wi = turb*noise_basis_hard(p/size, basis, hard); + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f + wi); + } + + return 0.0f; +} + +__device void svm_node_tex_wood(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + + uint type, wave, basis, hard; + uint co_offset, size_offset, turbulence_offset, fac_offset; + + decode_node_uchar4(node.y, &type, &wave, &basis, &hard); + decode_node_uchar4(node.z, &co_offset, &size_offset, &turbulence_offset, &fac_offset); + + float3 co = stack_load_float3(stack, co_offset); + float size = stack_load_float_default(stack, size_offset, node2.y); + float turbulence = stack_load_float_default(stack, turbulence_offset, node2.z); + size = nonzerof(size, 1e-5f); + + float f = svm_wood(co, size, (NodeWoodType)type, (NodeWaveType)wave, + (NodeNoiseBasis)basis, hard, turbulence); + + stack_store_float(stack, fac_offset, f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/volume.h b/intern/cycles/kernel/svm/volume.h new file mode 100644 index 00000000000..32e0601ee00 --- /dev/null +++ b/intern/cycles/kernel/svm/volume.h @@ -0,0 +1,43 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +CCL_NAMESPACE_BEGIN + +/* VOLUME CLOSURE */ + +__device float3 volume_eval_phase(ShaderData *sd, const float3 omega_in, const float3 omega_out) +{ + return make_float3(1.0f, 1.0f, 1.0f); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt new file mode 100644 index 00000000000..f31e9bfbcb2 --- /dev/null +++ b/intern/cycles/render/CMakeLists.txt @@ -0,0 +1,54 @@ + +INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../kernel/osl ../bvh ../util) + +SET(sources + attribute.cpp + background.cpp + buffers.cpp + camera.cpp + film.cpp + film_response.cpp + filter.cpp + graph.cpp + image.cpp + integrator.cpp + light.cpp + mesh.cpp + mesh_displace.cpp + nodes.cpp + object.cpp + osl.cpp + scene.cpp + session.cpp + shader.cpp + sobol.cpp + svm.cpp + tile.cpp) + +SET(headers + attribute.h + background.h + buffers.h + camera.h + film.h + film_response.h + filter.h + graph.h + image.h + integrator.h + light.h + mesh.h + nodes.h + object.h + osl.h + scene.h + session.h + shader.h + sobol.h + svm.h + tile.h) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") + +ADD_LIBRARY(render ${sources} ${headers}) + diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp new file mode 100644 index 00000000000..815478cb733 --- /dev/null +++ b/intern/cycles/render/attribute.cpp @@ -0,0 +1,343 @@ +/* + * 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 "mesh.h" +#include "attribute.h" + +#include "util_debug.h" +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +/* Attribute */ + +void Attribute::set(ustring name_, TypeDesc type_, Element element_) +{ + name = name_; + type = type_; + element = element_; + std = STD_NONE; + + /* string and matrix not supported! */ + assert(type == TypeDesc::TypeFloat || type == TypeDesc::TypeColor || + type == TypeDesc::TypePoint || type == TypeDesc::TypeVector || + type == TypeDesc::TypeNormal); +} + +void Attribute::reserve(int numverts, int numtris) +{ + buffer.resize(buffer_size(numverts, numtris), 0); +} + +size_t Attribute::data_sizeof() +{ + return type.size(); +} + +size_t Attribute::element_size(int numverts, int numtris) +{ + if(element == VERTEX) + return numverts; + else if(element == FACE) + return numtris; + else + return numtris*3; +} + +size_t Attribute::buffer_size(int numverts, int numtris) +{ + return element_size(numverts, numtris)*data_sizeof(); +} + +bool Attribute::same_storage(TypeDesc a, TypeDesc b) +{ + if(a == b) + return true; + + if(a == TypeDesc::TypeColor || a == TypeDesc::TypePoint || + a == TypeDesc::TypeVector || a == TypeDesc::TypeNormal) + if(b == TypeDesc::TypeColor || b == TypeDesc::TypePoint || + b == TypeDesc::TypeVector || b == TypeDesc::TypeNormal) + return true; + + return false; +} + +ustring Attribute::standard_name(Attribute::Standard std) +{ + if(std == Attribute::STD_VERTEX_NORMAL) + return ustring("N"); + else if(std == Attribute::STD_FACE_NORMAL) + return ustring("Ng"); + else if(std == Attribute::STD_UV) + return ustring("uv"); + else if(std == Attribute::STD_GENERATED) + return ustring("generated"); + else if(std == Attribute::STD_POSITION_UNDEFORMED) + return ustring("undeformed"); + else if(std == Attribute::STD_POSITION_UNDISPLACED) + return ustring("undisplaced"); + + return ustring(); +} + +/* Attribute Set */ + +AttributeSet::AttributeSet(Mesh *mesh_) +{ + mesh = mesh_; +} + +AttributeSet::~AttributeSet() +{ +} + +Attribute *AttributeSet::add(ustring name, TypeDesc type, Attribute::Element element) +{ + Attribute *attr = find(name); + + if(attr) { + /* return if same already exists */ + if(attr->type == type && attr->element == element) + return attr; + + /* overwrite attribute with same name but different type/element */ + remove(name); + } + + attributes.push_back(Attribute()); + attr = &attributes.back(); + + if(element == Attribute::VERTEX) + attr->set(name, type, element); + else if(element == Attribute::FACE) + attr->set(name, type, element); + else if(element == Attribute::CORNER) + attr->set(name, type, element); + + attr->reserve(mesh->verts.size(), mesh->triangles.size()); + + return attr; +} + +Attribute *AttributeSet::find(ustring name) +{ + foreach(Attribute& attr, attributes) + if(attr.name == name) + return &attr; + + return NULL; +} + +void AttributeSet::remove(ustring name) +{ + Attribute *attr = find(name); + + if(attr) { + list::iterator it; + + for(it = attributes.begin(); it != attributes.end(); it++) { + if(&*it == attr) { + attributes.erase(it); + return; + } + } + } +} + +Attribute *AttributeSet::add(Attribute::Standard std, ustring name) +{ + Attribute *attr = NULL; + + if(name == ustring()) + name = Attribute::standard_name(std); + + if(std == Attribute::STD_VERTEX_NORMAL) + attr = add(name, TypeDesc::TypeNormal, Attribute::VERTEX); + else if(std == Attribute::STD_FACE_NORMAL) + attr = add(name, TypeDesc::TypeNormal, Attribute::FACE); + else if(std == Attribute::STD_UV) + attr = add(name, TypeDesc::TypePoint, Attribute::CORNER); + else if(std == Attribute::STD_GENERATED) + attr = add(name, TypeDesc::TypePoint, Attribute::VERTEX); + else if(std == Attribute::STD_POSITION_UNDEFORMED) + attr = add(name, TypeDesc::TypePoint, Attribute::VERTEX); + else if(std == Attribute::STD_POSITION_UNDISPLACED) + attr = add(name, TypeDesc::TypePoint, Attribute::VERTEX); + else + assert(0); + + attr->std = std; + + return attr; +} + +Attribute *AttributeSet::find(Attribute::Standard std) +{ + foreach(Attribute& attr, attributes) + if(attr.std == std) + return &attr; + + return NULL; +} + +void AttributeSet::remove(Attribute::Standard std) +{ + Attribute *attr = find(std); + + if(attr) { + list::iterator it; + + for(it = attributes.begin(); it != attributes.end(); it++) { + if(&*it == attr) { + attributes.erase(it); + return; + } + } + } +} + +Attribute *AttributeSet::find(AttributeRequest& req) +{ + if(req.std == Attribute::STD_NONE) + return find(req.name); + else + return find(req.std); +} + +void AttributeSet::reserve(int numverts, int numtris) +{ + foreach(Attribute& attr, attributes) + attr.reserve(numverts, numtris); +} + +void AttributeSet::clear() +{ + attributes.clear(); +} + +/* AttributeRequest */ + +AttributeRequest::AttributeRequest(ustring name_) +{ + name = name_; + std = Attribute::STD_NONE; + + type = TypeDesc::TypeFloat; + element = ATTR_ELEMENT_NONE; + offset = 0; +} + +AttributeRequest::AttributeRequest(Attribute::Standard std_) +{ + name = ustring(); + std = std_; + + type = TypeDesc::TypeFloat; + element = ATTR_ELEMENT_NONE; + offset = 0; +} + +/* AttributeRequestSet */ + +AttributeRequestSet::AttributeRequestSet() +{ +} + +AttributeRequestSet::~AttributeRequestSet() +{ +} + +bool AttributeRequestSet::modified(const AttributeRequestSet& other) +{ + if(requests.size() != other.requests.size()) + return true; + + for(size_t i = 0; i < requests.size(); i++) { + bool found = false; + + for(size_t j = 0; j < requests.size() && !found; j++) + if(requests[i].name == other.requests[j].name && + requests[i].std == other.requests[j].std) + found = true; + + if(!found) + return true; + } + + return false; +} + +void AttributeRequestSet::add(ustring name) +{ + foreach(AttributeRequest& req, requests) + if(req.name == name) + return; + + requests.push_back(AttributeRequest(name)); +} + +void AttributeRequestSet::add(Attribute::Standard std) +{ + foreach(AttributeRequest& req, requests) + if(req.std == std) + return; + + requests.push_back(AttributeRequest(std)); +} + +void AttributeRequestSet::add(AttributeRequestSet& reqs) +{ + foreach(AttributeRequest& req, reqs.requests) { + if(req.std == Attribute::STD_NONE) + add(req.name); + else + add(req.std); + } +} + +bool AttributeRequestSet::find(ustring name) +{ + foreach(AttributeRequest& req, requests) + if(req.name == name) + return true; + + return false; +} + +bool AttributeRequestSet::find(Attribute::Standard std) +{ + foreach(AttributeRequest& req, requests) + if(req.std == std) + return true; + + return false; +} + +size_t AttributeRequestSet::size() +{ + return requests.size(); +} + +void AttributeRequestSet::clear() +{ + requests.clear(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h new file mode 100644 index 00000000000..a1c3d2b6ae7 --- /dev/null +++ b/intern/cycles/render/attribute.h @@ -0,0 +1,161 @@ +/* + * 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 __ATTRIBUTE_H__ +#define __ATTRIBUTE_H__ + +#include "kernel_types.h" + +#include "util_list.h" +#include "util_param.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Attribute; +class AttributeSet; +class AttributeRequest; +class AttributeRequestSet; +class Mesh; + +/* Attribute + * + * Arbitrary data layers on meshes. + * Supported types: Float, Color, Vector, Normal, Point */ + +class Attribute { +public: + enum Element { + VERTEX, + FACE, + CORNER + }; + + enum Standard { + STD_NONE = 0, + STD_VERTEX_NORMAL, + STD_FACE_NORMAL, + STD_UV, + STD_GENERATED, + STD_POSITION_UNDEFORMED, + STD_POSITION_UNDISPLACED, + STD_NUM + }; + + ustring name; + Standard std; + + TypeDesc type; + vector buffer; + Element element; + + Attribute() {} + void set(ustring name, TypeDesc type, Element element); + void reserve(int numverts, int numfaces); + + size_t data_sizeof(); + size_t element_size(int numverts, int numfaces); + size_t buffer_size(int numverts, int numfaces); + + char *data() { return &buffer[0]; }; + float3 *data_float3() { return (float3*)&buffer[0]; } + float *data_float() { return (float*)&buffer[0]; } + + const char *data() const { return &buffer[0]; } + const float3 *data_float3() const { return (float3*)&buffer[0]; } + const float *data_float() const { return (float*)&buffer[0]; } + + static bool same_storage(TypeDesc a, TypeDesc b); + static ustring standard_name(Attribute::Standard std); +}; + +/* Attribute Set + * + * Set of attributes on a mesh. */ + +class AttributeSet { +public: + Mesh *mesh; + list attributes; + + AttributeSet(Mesh *mesh); + ~AttributeSet(); + + Attribute *add(ustring name, TypeDesc type, Attribute::Element element); + Attribute *find(ustring name); + void remove(ustring name); + + Attribute *add(Attribute::Standard std, ustring name = ustring()); + Attribute *find(Attribute::Standard std); + void remove(Attribute::Standard std); + + Attribute *find(AttributeRequest& req); + + void reserve(int numverts, int numfaces); + void clear(); +}; + +/* AttributeRequest + * + * Request from a shader to use a certain attribute, so we can figure out + * which ones we need to export from the host app end store for the kernel. + * The attribute is found either by name or by standard. */ + +class AttributeRequest { +public: + ustring name; + Attribute::Standard std; + + /* temporary variables used by MeshManager */ + TypeDesc type; + AttributeElement element; + int offset; + + AttributeRequest(ustring name_); + AttributeRequest(Attribute::Standard std); +}; + +/* AttributeRequestSet + * + * Set of attributes requested by a shader. */ + +class AttributeRequestSet { +public: + vector requests; + + AttributeRequestSet(); + ~AttributeRequestSet(); + + void add(ustring name); + void add(Attribute::Standard std); + void add(AttributeRequestSet& reqs); + + bool find(ustring name); + bool find(Attribute::Standard std); + + size_t size(); + void clear(); + + bool modified(const AttributeRequestSet& other); +}; + +CCL_NAMESPACE_END + +#endif /* __ATTRIBUTE_H__ */ + diff --git a/intern/cycles/render/background.cpp b/intern/cycles/render/background.cpp new file mode 100644 index 00000000000..871fe128514 --- /dev/null +++ b/intern/cycles/render/background.cpp @@ -0,0 +1,70 @@ +/* + * 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 "background.h" +#include "device.h" +#include "graph.h" +#include "nodes.h" +#include "scene.h" +#include "shader.h" + +#include "util_foreach.h" +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +Background::Background() +{ + need_update = true; +} + +Background::~Background() +{ +} + +void Background::device_update(Device *device, DeviceScene *dscene, Scene *scene) +{ + if(!need_update) + return; + + device_free(device, dscene); + + /* set shader index */ + KernelBackground *kbackground = &dscene->data.background; + kbackground->shader = scene->shader_manager->get_shader_id(scene->default_background); + + need_update = false; +} + +void Background::device_free(Device *device, DeviceScene *dscene) +{ +} + +bool Background::modified(const Background& background) +{ + return false; +} + +void Background::tag_update(Scene *scene) +{ + need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/background.h b/intern/cycles/render/background.h new file mode 100644 index 00000000000..a048cbc535c --- /dev/null +++ b/intern/cycles/render/background.h @@ -0,0 +1,47 @@ +/* + * 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 __BACKGROUND_H__ +#define __BACKGROUND_H__ + +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Scene; + +class Background { +public: + bool need_update; + + Background(); + ~Background(); + + void device_update(Device *device, DeviceScene *dscene, Scene *scene); + void device_free(Device *device, DeviceScene *dscene); + + bool modified(const Background& background); + void tag_update(Scene *scene); +}; + +CCL_NAMESPACE_END + +#endif /* __BACKGROUND_H__ */ + diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp new file mode 100644 index 00000000000..c1d9158c85e --- /dev/null +++ b/intern/cycles/render/buffers.cpp @@ -0,0 +1,177 @@ +/* + * 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 + +#include "buffers.h" +#include "device.h" + +#include "util_debug.h" +#include "util_hash.h" +#include "util_image.h" +#include "util_opengl.h" +#include "util_time.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* Render Buffers */ + +RenderBuffers::RenderBuffers(Device *device_) +{ + device = device_; + width = 0; + height = 0; +} + +RenderBuffers::~RenderBuffers() +{ + device_free(); +} + +void RenderBuffers::device_free() +{ + if(buffer.device_pointer) { + device->mem_free(buffer); + buffer.clear(); + } + + if(rng_state.device_pointer) { + device->mem_free(rng_state); + rng_state.clear(); + } +} + +void RenderBuffers::reset(Device *device, int width_, int height_) +{ + width = width_; + height = height_; + + /* free existing buffers */ + device_free(); + + /* allocate buffer */ + buffer.resize(width, height); + device->mem_alloc(buffer, MEM_READ_WRITE); + device->mem_zero(buffer); + + /* allocate rng state */ + rng_state.resize(width, height); + + uint *init_state = rng_state.resize(width, height); + int x, y; + + for(x=0; xmem_alloc(rng_state, MEM_READ_WRITE); + device->mem_copy_to(rng_state); +} + +/* Display Buffer */ + +DisplayBuffer::DisplayBuffer(Device *device_) +{ + device = device_; + width = 0; + height = 0; + draw_width = 0; + draw_height = 0; +} + +DisplayBuffer::~DisplayBuffer() +{ + device_free(); +} + +void DisplayBuffer::device_free() +{ + if(rgba.device_pointer) { + device->pixels_free(rgba); + rgba.clear(); + } +} + +void DisplayBuffer::reset(Device *device, int width_, int height_) +{ + draw_width = 0; + draw_height = 0; + + width = width_; + height = height_; + + /* free existing buffers */ + device_free(); + + /* allocate display pixels */ + rgba.resize(width, height); + device->pixels_alloc(rgba); +} + +void DisplayBuffer::draw_set(int width_, int height_) +{ + assert(width_ <= width && height_ <= height); + + draw_width = width_; + draw_height = height_; +} + +void DisplayBuffer::draw(Device *device) +{ + if(draw_width != 0 && draw_height != 0) + device->draw_pixels(rgba, 0, draw_width, draw_height, width, height); +} + +bool DisplayBuffer::draw_ready() +{ + return (draw_width != 0 && draw_height != 0); +} + +void DisplayBuffer::write(Device *device, const string& filename) +{ + int w = draw_width; + int h = draw_height; + + if(w == 0 || h == 0) + return; + + /* read buffer from device */ + device->pixels_copy_from(rgba, 0, w, h); + + /* write image */ + ImageOutput *out = ImageOutput::create(filename); + ImageSpec spec(w, h, 4, TypeDesc::UINT8); + int scanlinesize = w*4*sizeof(uchar); + + out->open(filename, spec); + + /* conversion for different top/bottom convention */ + out->write_image(TypeDesc::UINT8, + (uchar*)rgba.data_pointer + (h-1)*scanlinesize, + AutoStride, + -scanlinesize, + AutoStride); + + out->close(); + + delete out; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h new file mode 100644 index 00000000000..f31ddd1e9bd --- /dev/null +++ b/intern/cycles/render/buffers.h @@ -0,0 +1,94 @@ +/* + * 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 __BUFFERS_H__ +#define __BUFFERS_H__ + +#include "device_memory.h" + +#include "util_string.h" +#include "util_thread.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class float4; + +/* Render Buffers */ + +class RenderBuffers { +public: + /* buffer dimensions */ + int width, height; + /* float buffer */ + device_vector buffer; + /* random number generator state */ + device_vector rng_state; + /* mutex, must be locked manually by callers */ + thread_mutex mutex; + + RenderBuffers(Device *device); + ~RenderBuffers(); + + void reset(Device *device, int width, int height); + +protected: + void device_free(); + + Device *device; +}; + +/* Display Buffer + * + * The buffer used for drawing during render, filled by tonemapping the render + * buffers and converting to uchar4 storage. */ + +class DisplayBuffer { +public: + /* buffer dimensions */ + int width, height; + /* dimensions for how much of the buffer is actually ready for display. + with progressive render we can be using only a subset of the buffer. + if these are zero, it means nothing can be drawn yet */ + int draw_width, draw_height; + /* byte buffer for tonemapped result */ + device_vector rgba; + /* mutex, must be locked manually by callers */ + thread_mutex mutex; + + DisplayBuffer(Device *device); + ~DisplayBuffer(); + + void reset(Device *device, int width, int height); + void write(Device *device, const string& filename); + + void draw_set(int width, int height); + void draw(Device *device); + bool draw_ready(); + +protected: + void device_free(); + + Device *device; +}; + +CCL_NAMESPACE_END + +#endif /* __BUFFERS_H__ */ + diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp new file mode 100644 index 00000000000..74469c738c7 --- /dev/null +++ b/intern/cycles/render/camera.cpp @@ -0,0 +1,193 @@ +/* + * 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 "camera.h" +#include "scene.h" + +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +Camera::Camera() +{ + shutteropen = 0.0f; + shutterclose = 1.0f; + + lensradius = 0.0f; + focaldistance = 10.0f; + + matrix = transform_identity(); + + ortho = false; + fov = M_PI_F/4.0f; + + nearclip = 1e-5f; + farclip = 1e5f; + + width = 1024; + height = 512; + + left = -((float)width/(float)height); + right = (float)width/(float)height; + bottom = -1.0f; + top = 1.0f; + + screentoworld = transform_identity(); + rastertoworld = transform_identity(); + ndctoworld = transform_identity(); + rastertocamera = transform_identity(); + cameratoworld = transform_identity(); + worldtoraster = transform_identity(); + + dx = make_float3(0.0f, 0.0f, 0.0f); + dy = make_float3(0.0f, 0.0f, 0.0f); + + need_update = true; + need_device_update = true; +} + +Camera::~Camera() +{ +} + +void Camera::update() +{ + if(!need_update) + return; + + Transform screentocamera; + Transform ndctoraster = transform_scale((float)width, (float)height, 1.0f); + + /* raster to screen */ + Transform screentoraster = ndctoraster * + transform_scale(1.0f/(right - left), 1.0f/(top - bottom), 1.0f) * + transform_translate(-left, -bottom, 0.0f); + + Transform rastertoscreen = transform_inverse(screentoraster); + + /* screen to camera */ + if(ortho) + screentocamera = transform_inverse(transform_orthographic(nearclip, farclip)); + else + screentocamera = transform_inverse(transform_perspective(fov, nearclip, farclip)); + + rastertocamera = screentocamera * rastertoscreen; + + cameratoworld = matrix; + screentoworld = cameratoworld * screentocamera; + rastertoworld = cameratoworld * rastertocamera; + ndctoworld = rastertoworld * ndctoraster; + worldtoraster = transform_inverse(rastertoworld); + + /* differentials */ + if(ortho) { + dx = transform_direction(&rastertocamera, make_float3(1, 0, 0)); + dy = transform_direction(&rastertocamera, make_float3(0, 1, 0)); + } + else { + dx = transform(&rastertocamera, make_float3(1, 0, 0)) - + transform(&rastertocamera, make_float3(0, 0, 0)); + dy = transform(&rastertocamera, make_float3(0, 1, 0)) - + transform(&rastertocamera, make_float3(0, 0, 0)); + } + + dx = transform_direction(&cameratoworld, dx); + dy = transform_direction(&cameratoworld, dy); + + need_update = false; + need_device_update = true; +} + +void Camera::device_update(Device *device, DeviceScene *dscene) +{ + update(); + + if(!need_device_update) + return; + + KernelCamera *kcam = &dscene->data.cam; + + /* store matrices */ + kcam->screentoworld = screentoworld; + kcam->rastertoworld = rastertoworld; + kcam->ndctoworld = ndctoworld; + kcam->rastertocamera = rastertocamera; + kcam->cameratoworld = cameratoworld; + kcam->worldtoscreen = transform_inverse(screentoworld); + kcam->worldtoraster = transform_inverse(rastertoworld); + kcam->worldtondc = transform_inverse(ndctoworld); + kcam->worldtocamera = transform_inverse(cameratoworld); + + /* depth of field */ + kcam->lensradius = lensradius; + kcam->focaldistance = focaldistance; + + /* motion blur */ + kcam->shutteropen = shutteropen; + kcam->shutterclose = shutterclose; + + /* type */ + kcam->ortho = ortho; + + /* size */ + kcam->width = width; + kcam->height = height; + + /* store differentials */ + kcam->dx = dx; + kcam->dy = dy; + + /* clipping */ + kcam->nearclip = nearclip; + kcam->cliplength = (farclip == FLT_MAX)? FLT_MAX: farclip - nearclip; + + need_device_update = false; +} + +void Camera::device_free(Device *device, DeviceScene *dscene) +{ + /* nothing to free, only writing to constant memory */ +} + +bool Camera::modified(const Camera& cam) +{ + return !((shutteropen == cam.shutteropen) && + (shutterclose == cam.shutterclose) && + (lensradius == cam.lensradius) && + (focaldistance == cam.focaldistance) && + (ortho == cam.ortho) && + (fov == cam.fov) && + (nearclip == cam.nearclip) && + (farclip == cam.farclip) && + // modified for progressive render + // (width == cam.width) && + // (height == cam.height) && + (left == cam.left) && + (right == cam.right) && + (bottom == cam.bottom) && + (top == cam.top) && + (matrix == cam.matrix)); +} + +void Camera::tag_update() +{ + need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/camera.h b/intern/cycles/render/camera.h new file mode 100644 index 00000000000..6ae8c8fa4ae --- /dev/null +++ b/intern/cycles/render/camera.h @@ -0,0 +1,93 @@ +/* + * 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 __CAMERA_H__ +#define __CAMERA_H__ + +#include "film_response.h" + +#include "util_transform.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; + +/* Camera + * + * The camera parameters are quite standard, tested to be both compatible with + * Renderman, and Blender after remapping. */ + +class Camera { +public: + /* motion blur */ + float shutteropen; + float shutterclose; + + /* depth of field */ + float lensradius; + float focaldistance; + + /* orthographic/perspective */ + bool ortho; + float fov; + + /* clipping */ + float nearclip; + float farclip; + + /* screen */ + int width, height; + float left, right, bottom, top; + + /* transformation */ + Transform matrix; + + /* computed camera parameters */ + Transform screentoworld; + Transform rastertoworld; + Transform ndctoworld; + Transform rastertocamera; + Transform cameratoworld; + Transform worldtoraster; + + float3 dx; + float3 dy; + + /* update */ + bool need_update; + bool need_device_update; + + /* functions */ + Camera(); + ~Camera(); + + void update(); + + void device_update(Device *device, DeviceScene *dscene); + void device_free(Device *device, DeviceScene *dscene); + + bool modified(const Camera& cam); + void tag_update(); +}; + +CCL_NAMESPACE_END + +#endif /* __CAMERA_H__ */ + diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp new file mode 100644 index 00000000000..05874244605 --- /dev/null +++ b/intern/cycles/render/film.cpp @@ -0,0 +1,135 @@ +/* + * 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 "camera.h" +#include "device.h" +#include "film.h" +#include "film_response.h" +#include "scene.h" + +CCL_NAMESPACE_BEGIN + +static FilmResponseType find_response_type(const string& name) +{ + if(name == "" || name == "None") + return FILM_RESPONSE_NONE; + + for(size_t i = 0; i < FILM_RESPONSE_NUM; i++) { + FilmResponse *curve = &FILM_RESPONSE[i]; + if(curve->name == name) + return (FilmResponseType)i; + } + + return FILM_RESPONSE_NONE; +} + +Film::Film() +{ + exposure = 0.8f; + response = "Advantix 400"; + last_response = ""; + need_update = true; +} + +Film::~Film() +{ +} + +#if 0 +static void generate_python_enum() +{ + for(size_t i = 0; i < FILM_RESPONSE_NUM; i++) { + FilmResponse *curve = &FILM_RESPONSE[i]; + /*if(i == 0 || strcmp(curve->brand, FILM_RESPONSE[i-1].brand)) + printf("(\"\", \"%s\", \"\"),\n", curve->brand);*/ + printf("(\"%s\", \"%s %s\", \"\"),\n", curve->name, curve->brand, curve->name); + } +} +#endif + +void Film::device_update(Device *device, DeviceScene *dscene) +{ + if(!need_update) + return; + + KernelFilm *kfilm = &dscene->data.film; + + /* update __data */ + kfilm->exposure = exposure; + + FilmResponseType response_type = find_response_type(response); + + /* update __response_curves */ + if(response != last_response) { + device_free(device, dscene); + + if(response_type != FILM_RESPONSE_NONE) { + FilmResponse *curve = &FILM_RESPONSE[response_type]; + size_t response_curve_size = FILM_RESPONSE_SIZE; + + dscene->response_curve_R.copy(curve->B_R, response_curve_size); + + if(curve->rgb) { + dscene->response_curve_G.copy(curve->B_G, response_curve_size); + dscene->response_curve_B.copy(curve->B_B, response_curve_size); + } + else { + dscene->response_curve_G.copy(curve->B_R, response_curve_size); + dscene->response_curve_B.copy(curve->B_R, response_curve_size); + } + + device->tex_alloc("__response_curve_R", dscene->response_curve_R, true); + device->tex_alloc("__response_curve_G", dscene->response_curve_G, true); + device->tex_alloc("__response_curve_B", dscene->response_curve_B, true); + } + + last_response = response; + } + + kfilm->use_response_curve = (response_type != FILM_RESPONSE_NONE); + + need_update = false; +} + +void Film::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->response_curve_R); + device->tex_free(dscene->response_curve_G); + device->tex_free(dscene->response_curve_B); + + dscene->response_curve_R.clear(); + dscene->response_curve_G.clear(); + dscene->response_curve_B.clear(); + + last_response = ""; +} + +bool Film::modified(const Film& film) +{ + return !(response == film.response && + exposure == film.exposure && + pass == film.pass); +} + +void Film::tag_update(Scene *scene) +{ + need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/film.h b/intern/cycles/render/film.h new file mode 100644 index 00000000000..9d6c58b30d1 --- /dev/null +++ b/intern/cycles/render/film.h @@ -0,0 +1,51 @@ +/* + * 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 __FILM_H__ +#define __FILM_H__ + +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Scene; + +class Film { +public: + string response; + string last_response; + float exposure; + int pass; + bool need_update; + + Film(); + ~Film(); + + void device_update(Device *device, DeviceScene *dscene); + void device_free(Device *device, DeviceScene *dscene); + + bool modified(const Film& film); + void tag_update(Scene *scene); +}; + +CCL_NAMESPACE_END + +#endif /* __FILM_H__ */ + diff --git a/intern/cycles/render/filter.cpp b/intern/cycles/render/filter.cpp new file mode 100644 index 00000000000..d7682bedc12 --- /dev/null +++ b/intern/cycles/render/filter.cpp @@ -0,0 +1,129 @@ +/* + * 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 "camera.h" +#include "device.h" +#include "filter.h" +#include "scene.h" + +#include "util_algorithm.h" +#include "util_debug.h" +#include "util_math.h" + +CCL_NAMESPACE_BEGIN + +Filter::Filter() +{ + filter_type = FILTER_BOX; + filter_width = 1.0f; + need_update = true; +} + +Filter::~Filter() +{ +} + +static float filter_func_box(float v, float width) +{ + return (float)1; +} + +static float filter_func_gaussian(float v, float width) +{ + v *= (float)2/width; + return (float)expf((float)-2*v*v); +} + +static vector filter_table(FilterType type, float width) +{ + const int filter_table_size = 256; + vector filter_table_cdf(filter_table_size+1); + vector filter_table(filter_table_size+1); + float (*filter_func)(float, float) = NULL; + int i, half_size = filter_table_size/2; + + switch(type) { + case FILTER_BOX: + filter_func = filter_func_box; + break; + case FILTER_GAUSSIAN: + filter_func = filter_func_gaussian; + break; + default: + assert(0); + } + + /* compute cumulative distribution function */ + filter_table_cdf[0] = 0.0f; + + for(i=0; i table = filter_table(filter_type, filter_width); + + dscene->filter_table.copy(&table[0], table.size()); + device->tex_alloc("__filter_table", dscene->filter_table, true); + + need_update = false; +} + +void Filter::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->filter_table); + dscene->filter_table.clear(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/filter.h b/intern/cycles/render/filter.h new file mode 100644 index 00000000000..620e6ebe083 --- /dev/null +++ b/intern/cycles/render/filter.h @@ -0,0 +1,46 @@ +/* + * 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 __FILTER_H__ +#define __FILTER_H__ + +CCL_NAMESPACE_BEGIN + +typedef enum FilterType { + FILTER_BOX, + FILTER_GAUSSIAN +} FilterType; + +class Filter { +public: + /* pixel filter */ + FilterType filter_type; + float filter_width; + bool need_update; + + Filter(); + ~Filter(); + + void device_update(Device *device, DeviceScene *dscene); + void device_free(Device *device, DeviceScene *dscene); +}; + +CCL_NAMESPACE_END + +#endif /* __FILTER_H__ */ + diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp new file mode 100644 index 00000000000..3dd3d6107b4 --- /dev/null +++ b/intern/cycles/render/graph.cpp @@ -0,0 +1,457 @@ +/* + * 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 "attribute.h" +#include "graph.h" +#include "nodes.h" + +#include "util_algorithm.h" +#include "util_debug.h" +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +/* Input and Output */ + +ShaderInput::ShaderInput(ShaderNode *parent_, const char *name_, ShaderSocketType type_) +{ + parent = parent_; + name = name_; + type = type_; + link = NULL; + value = make_float3(0, 0, 0); + stack_offset = SVM_STACK_INVALID; + default_value = NONE; + osl_only = false; +} + +ShaderOutput::ShaderOutput(ShaderNode *parent_, const char *name_, ShaderSocketType type_) +{ + parent = parent_; + name = name_; + type = type_; + stack_offset = SVM_STACK_INVALID; +} + +/* Node */ + +ShaderNode::ShaderNode(const char *name_) +{ + name = name_; + id = -1; + bump = SHADER_BUMP_NONE; +} + +ShaderNode::~ShaderNode() +{ + foreach(ShaderInput *socket, inputs) + delete socket; + + foreach(ShaderOutput *socket, outputs) + delete socket; +} + +ShaderInput *ShaderNode::input(const char *name) +{ + foreach(ShaderInput *socket, inputs) + if(strcmp(socket->name, name) == 0) + return socket; + + return NULL; +} + +ShaderOutput *ShaderNode::output(const char *name) +{ + foreach(ShaderOutput *socket, outputs) + if(strcmp(socket->name, name) == 0) + return socket; + + return NULL; +} + +ShaderInput *ShaderNode::add_input(const char *name, ShaderSocketType type, float value) +{ + ShaderInput *input = new ShaderInput(this, name, type); + input->value.x = value; + inputs.push_back(input); + return input; +} + +ShaderInput *ShaderNode::add_input(const char *name, ShaderSocketType type, float3 value) +{ + ShaderInput *input = new ShaderInput(this, name, type); + input->value = value; + inputs.push_back(input); + return input; +} + +ShaderInput *ShaderNode::add_input(const char *name, ShaderSocketType type, ShaderInput::DefaultValue value, bool osl_only) +{ + ShaderInput *input = add_input(name, type); + input->default_value = value; + input->osl_only = osl_only; + return input; +} + +ShaderOutput *ShaderNode::add_output(const char *name, ShaderSocketType type) +{ + ShaderOutput *output = new ShaderOutput(this, name, type); + outputs.push_back(output); + return output; +} + +void ShaderNode::attributes(AttributeRequestSet *attributes) +{ + foreach(ShaderInput *input, inputs) + if(!input->link && input->default_value == ShaderInput::TEXTURE_COORDINATE) + attributes->add(Attribute::STD_GENERATED); +} + +/* Graph */ + +ShaderGraph::ShaderGraph() +{ + finalized = false; + add(new OutputNode()); +} + +ShaderGraph::~ShaderGraph() +{ + foreach(ShaderNode *node, nodes) + delete node; +} + +ShaderNode *ShaderGraph::add(ShaderNode *node) +{ + assert(!finalized); + node->id = nodes.size(); + nodes.push_back(node); + return node; +} + +ShaderNode *ShaderGraph::output() +{ + return nodes.front(); +} + +ShaderGraph *ShaderGraph::copy() +{ + ShaderGraph *newgraph = new ShaderGraph(); + + /* copy nodes */ + set nodes_all; + foreach(ShaderNode *node, nodes) + nodes_all.insert(node); + + map nodes_copy; + copy_nodes(nodes_all, nodes_copy); + + /* add nodes (in same order, so output is still first) */ + newgraph->nodes.clear(); + foreach(ShaderNode *node, nodes) + newgraph->add(nodes_copy[node]); + + return newgraph; +} + +void ShaderGraph::connect(ShaderOutput *from, ShaderInput *to) +{ + assert(!finalized); + assert(from && to); + + if(to->link) { + fprintf(stderr, "ShaderGraph 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"); + return; + } + + /* add automatic conversion node in case of type mismatch */ + ShaderNode *convert = add(new ConvertNode(from->type, to->type)); + + connect(from, convert->inputs[0]); + connect(convert->outputs[0], to); + } + else { + /* types match, just connect */ + to->link = from; + from->links.push_back(to); + } +} + +void ShaderGraph::disconnect(ShaderInput *to) +{ + assert(!finalized); + assert(to->link); + + ShaderOutput *from = to->link; + + to->link = NULL; + from->links.erase(remove(from->links.begin(), from->links.end(), to), from->links.end()); +} + +void ShaderGraph::finalize(bool do_bump, bool do_osl) +{ + /* before compiling, the shader graph may undergo a number of modifications. + * currently we set default geometry shader inputs, and create automatic bump + * from displacement. a graph can be finalized only once, and should not be + * modified afterwards. */ + + if(!finalized) { + clean(); + default_inputs(do_osl); + if(do_bump) + bump_from_displacement(); + + finalized = true; + } +} + +void ShaderGraph::find_dependencies(set& dependencies, ShaderInput *input) +{ + /* find all nodes that this input dependes on directly and indirectly */ + ShaderNode *node = (input->link)? input->link->parent: NULL; + + if(node) { + foreach(ShaderInput *in, node->inputs) + find_dependencies(dependencies, in); + + dependencies.insert(node); + } +} + +void ShaderGraph::copy_nodes(set& nodes, map& nnodemap) +{ + /* copy a set of nodes, and the links between them. the assumption is + * made that all nodes that inputs are linked to are in the set too. */ + + /* copy nodes */ + foreach(ShaderNode *node, nodes) { + ShaderNode *nnode = node->clone(); + nnodemap[node] = nnode; + + nnode->inputs.clear(); + nnode->outputs.clear(); + + foreach(ShaderInput *input, node->inputs) { + ShaderInput *ninput = new ShaderInput(*input); + nnode->inputs.push_back(ninput); + + ninput->parent = nnode; + ninput->link = NULL; + } + + foreach(ShaderOutput *output, node->outputs) { + ShaderOutput *noutput = new ShaderOutput(*output); + nnode->outputs.push_back(noutput); + + noutput->parent = nnode; + noutput->links.clear(); + } + } + + /* recreate links */ + foreach(ShaderNode *node, nodes) { + foreach(ShaderInput *input, node->inputs) { + if(input->link) { + /* find new input and output */ + ShaderNode *nfrom = nnodemap[input->link->parent]; + ShaderNode *nto = nnodemap[input->parent]; + ShaderOutput *noutput = nfrom->output(input->link->name); + ShaderInput *ninput = nto->input(input->name); + + /* connect */ + connect(noutput, ninput); + } + } + } +} + +void ShaderGraph::break_cycles(ShaderNode *node, vector& visited, vector& on_stack) +{ + visited[node->id] = true; + on_stack[node->id] = true; + + foreach(ShaderInput *input, node->inputs) { + if(input->link) { + ShaderNode *depnode = input->link->parent; + + if(on_stack[depnode->id]) { + /* break cycle */ + disconnect(input); + fprintf(stderr, "ShaderGraph: detected cycle in graph, connection removed.\n"); + } + else if(!visited[depnode->id]) { + /* visit dependencies */ + break_cycles(depnode, visited, on_stack); + } + } + } + + on_stack[node->id] = false; +} + +void ShaderGraph::clean() +{ + /* we do two things here: find cycles and break them, and remove unused + nodes that don't feed into the output. how cycles are broken is + undefined, they are invalid input, the important thing is to not crash */ + + vector visited(nodes.size(), false); + vector on_stack(nodes.size(), false); + + /* break cycles */ + break_cycles(output(), visited, on_stack); + + /* remove unused nodes */ + vector newnodes; + + foreach(ShaderNode *node, nodes) { + if(visited[node->id]) + newnodes.push_back(node); + else + delete node; + } + + nodes = newnodes; +} + +void ShaderGraph::default_inputs(bool do_osl) +{ + /* nodes can specify default texture coordinates, for now we give + * everything the position by default, except for the sky texture */ + + ShaderNode *geom = NULL; + ShaderNode *texco = NULL; + + foreach(ShaderNode *node, nodes) { + foreach(ShaderInput *input, node->inputs) { + if(!input->link && !(input->osl_only && !do_osl)) { + if(input->default_value == ShaderInput::TEXTURE_COORDINATE) { + if(!texco) + texco = new TextureCoordinateNode(); + + connect(texco->output("Generated"), input); + } + else if(input->default_value == ShaderInput::INCOMING) { + if(!geom) + geom = new GeometryNode(); + + connect(geom->output("Incoming"), input); + } + else if(input->default_value == ShaderInput::NORMAL) { + if(!geom) + geom = new GeometryNode(); + + connect(geom->output("Normal"), input); + } + else if(input->default_value == ShaderInput::POSITION) { + if(!geom) + geom = new GeometryNode(); + + connect(geom->output("Position"), input); + } + } + } + } + + if(geom) + add(geom); + if(texco) + add(texco); +} + +void ShaderGraph::bump_from_displacement() +{ + /* generate bump mapping automatically from displacement. bump mapping is + * done using a 3-tap filter, computing the displacement at the center, + * and two other positions shifted by ray differentials. + * + * since the input to displacement is a node graph, we need to ensure that + * all texture coordinates use are shift by the ray differentials. for this + * reason we make 3 copies of the node subgraph defining the displacement, + * with each different geometry and texture coordinate nodes that generate + * different shifted coordinates. + * + * these 3 displacement values are then fed into the bump node, which will + * modify the normal. */ + + ShaderInput *displacement_in = output()->input("Displacement"); + + if(!displacement_in->link) + return; + + /* find dependencies for the given input */ + set nodes_displace; + find_dependencies(nodes_displace, displacement_in); + + /* copy nodes for 3 bump samples */ + map nodes_center; + map nodes_dx; + map nodes_dy; + + copy_nodes(nodes_displace, nodes_center); + copy_nodes(nodes_displace, nodes_dx); + copy_nodes(nodes_displace, nodes_dy); + + /* mark nodes to indicate they are use for bump computation, so + that any texture coordinates are shifted by dx/dy when sampling */ + foreach(NodePair& pair, nodes_center) + pair.second->bump = SHADER_BUMP_CENTER; + foreach(NodePair& pair, nodes_dx) + pair.second->bump = SHADER_BUMP_DX; + foreach(NodePair& pair, nodes_dy) + pair.second->bump = SHADER_BUMP_DY; + + /* add bump node and connect copied graphs to it */ + ShaderNode *bump = add(new BumpNode()); + + ShaderOutput *out = displacement_in->link; + ShaderOutput *out_center = nodes_center[out->parent]->output(out->name); + ShaderOutput *out_dx = nodes_dx[out->parent]->output(out->name); + ShaderOutput *out_dy = nodes_dy[out->parent]->output(out->name); + + connect(out_center, bump->input("SampleCenter")); + connect(out_dx, bump->input("SampleX")); + connect(out_dy, bump->input("SampleY")); + + /* connect bump output to normal input nodes that aren't set yet. actually + this will only set the normal input to the geometry node that we created + and connected to all other normal inputs already. */ + foreach(ShaderNode *node, nodes) + foreach(ShaderInput *input, node->inputs) + if(!input->link && input->default_value == ShaderInput::NORMAL) + connect(bump->output("Normal"), input); + + /* finally, add the copied nodes to the graph. we can't do this earlier + because we would create dependency cycles in the above loop */ + foreach(NodePair& pair, nodes_center) + add(pair.second); + foreach(NodePair& pair, nodes_dx) + add(pair.second); + foreach(NodePair& pair, nodes_dy) + add(pair.second); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h new file mode 100644 index 00000000000..c73dd77d5df --- /dev/null +++ b/intern/cycles/render/graph.h @@ -0,0 +1,227 @@ +/* + * 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 __GRAPH_H__ +#define __GRAPH_H__ + +#include "kernel_types.h" + +#include "util_map.h" +#include "util_param.h" +#include "util_set.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class AttributeRequestSet; +class ShaderInput; +class ShaderOutput; +class ShaderNode; +class ShaderGraph; +class SVMCompiler; +class OSLCompiler; + +/* Socket Type + * + * Data type for inputs and outputs */ + +enum ShaderSocketType { + SHADER_SOCKET_FLOAT, + SHADER_SOCKET_COLOR, + SHADER_SOCKET_VECTOR, + SHADER_SOCKET_POINT, + SHADER_SOCKET_NORMAL, + SHADER_SOCKET_CLOSURE +}; + +/* Bump + * + * For bump mapping, a node may be evaluated multiple times, using different + * samples to reconstruct the normal, this indicates the sample position */ + +enum ShaderBump { + SHADER_BUMP_NONE, + SHADER_BUMP_CENTER, + SHADER_BUMP_DX, + SHADER_BUMP_DY +}; + +/* Enum + * + * Utility class for enum values. */ + +class ShaderEnum { +public: + bool empty() const { return left.empty(); } + void insert(const char *x, int y) { + left[ustring(x)] = y; + right[y] = ustring(x); + } + + bool exists(ustring x) { return left.find(x) != left.end(); } + bool exists(int y) { return right.find(y) != right.end(); } + + int operator[](const char *x) { return left[ustring(x)]; } + int operator[](ustring x) { return left[x]; } + ustring operator[](int y) { return right[y]; } + +protected: + map left; + map right; +}; + +/* Input + * + * Input socket for a shader node. May be linked to an output or not. If not + * linked, it will either get a fixed default value, or e.g. a texture + * coordinate. */ + +class ShaderInput { +public: + enum DefaultValue { + TEXTURE_COORDINATE, + INCOMING, + NORMAL, + POSITION, + NONE + }; + + ShaderInput(ShaderNode *parent, const char *name, ShaderSocketType type); + void set(const float3& v) { value = v; } + void set(float f) { value = make_float3(f, 0, 0); } + + const char *name; + ShaderSocketType type; + + ShaderNode *parent; + ShaderOutput *link; + + DefaultValue default_value; + float3 value; + + int stack_offset; /* for SVM compiler */ + bool osl_only; +}; + +/* Output + * + * Output socket for a shader node. */ + +class ShaderOutput { +public: + ShaderOutput(ShaderNode *parent, const char *name, ShaderSocketType type); + + const char *name; + ShaderNode *parent; + ShaderSocketType type; + + vector links; + + int stack_offset; /* for SVM compiler */ +}; + +/* Node + * + * Shader node in graph, with input and output sockets. This is the virtual + * base class for all node types. */ + +class ShaderNode { +public: + ShaderNode(const char *name); + virtual ~ShaderNode(); + + ShaderInput *input(const char *name); + ShaderOutput *output(const char *name); + + ShaderInput *add_input(const char *name, ShaderSocketType type, float value=0.0f); + ShaderInput *add_input(const char *name, ShaderSocketType type, float3 value); + ShaderInput *add_input(const char *name, ShaderSocketType type, ShaderInput::DefaultValue value, bool osl_only=false); + ShaderOutput *add_output(const char *name, ShaderSocketType type); + + virtual ShaderNode *clone() const = 0; + virtual void attributes(AttributeRequestSet *attributes); + virtual void compile(SVMCompiler& compiler) = 0; + virtual void compile(OSLCompiler& compiler) = 0; + + vector inputs; + vector outputs; + + ustring name; /* name, not required to be unique */ + int id; /* index in graph node array */ + ShaderBump bump; /* for bump mapping utility */ +}; + + +/* Node definition utility macros */ + +#define SHADER_NODE_CLASS(type) \ + type(); \ + virtual ShaderNode *clone() const { return new type(*this); } \ + virtual void compile(SVMCompiler& compiler); \ + virtual void compile(OSLCompiler& compiler); \ + +#define SHADER_NODE_NO_CLONE_CLASS(type) \ + type(); \ + virtual void compile(SVMCompiler& compiler); \ + virtual void compile(OSLCompiler& compiler); \ + +#define SHADER_NODE_BASE_CLASS(type) \ + virtual ShaderNode *clone() const { return new type(*this); } \ + virtual void compile(SVMCompiler& compiler); \ + virtual void compile(OSLCompiler& compiler); \ + +/* Graph + * + * Shader graph of nodes. Also does graph manipulations for default inputs, + * bump mapping from displacement, and possibly other things in the future. */ + +class ShaderGraph { +public: + vector nodes; + bool finalized; + + ShaderGraph(); + ~ShaderGraph(); + + ShaderGraph *copy(); + + ShaderNode *add(ShaderNode *node); + ShaderNode *output(); + + void connect(ShaderOutput *from, ShaderInput *to); + void disconnect(ShaderInput *to); + + void finalize(bool do_bump = false, bool do_osl = false); + +protected: + typedef pair NodePair; + + void find_dependencies(set& dependencies, ShaderInput *input); + void copy_nodes(set& nodes, map& nnodemap); + + void break_cycles(ShaderNode *node, vector& visited, vector& on_stack); + void clean(); + void bump_from_displacement(); + void default_inputs(bool do_osl); +}; + +CCL_NAMESPACE_END + +#endif /* __GRAPH_H__ */ + diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp new file mode 100644 index 00000000000..08127cf7409 --- /dev/null +++ b/intern/cycles/render/image.cpp @@ -0,0 +1,227 @@ +/* + * 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 "image.h" +#include "scene.h" + +#include "util_foreach.h" +#include "util_image.h" +#include "util_path.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +ImageManager::ImageManager() +{ + need_update = true; +} + +ImageManager::~ImageManager() +{ + for(size_t slot = 0; slot < images.size(); slot++) { + assert(!images[slot]); + } +} + +int ImageManager::add_image(const string& filename) +{ + Image *img; + size_t slot; + + /* find existing image */ + for(slot = 0; slot < images.size(); slot++) { + if(images[slot] && images[slot]->filename == filename) { + images[slot]->users++; + return slot; + } + } + + /* find free slot */ + for(slot = 0; slot < images.size(); slot++) + if(!images[slot]) + break; + + if(slot == images.size()) { + /* max images limit reached */ + if(images.size() == TEX_IMAGE_MAX) + return -1; + + images.resize(images.size() + 1); + } + + /* add new image */ + img = new Image(); + img->filename = filename; + img->need_load = true; + img->users = 1; + + images[slot] = img; + need_update = true; + + return slot; +} + +void ImageManager::remove_image(int slot) +{ + assert(images[slot]); + + /* decrement user count */ + images[slot]->users--; + assert(images[slot]->users >= 0); + + /* don't remove immediately, rather do it all together later on. one of + the reasons for this is that on shader changes we add and remove nodes + that use them, but we do not want to reload the image all the time. */ + if(images[slot]->users == 0) + need_update = true; + + /* todo: remove OSL image from cache */ +} + +bool ImageManager::file_load_image(Image *img, device_vector& tex_img) +{ + if(img->filename == "") + return false; + + /* load image from file through OIIO */ + ImageInput *in = ImageInput::create(img->filename); + + if(!in) + return false; + + ImageSpec spec; + + if(!in->open(img->filename, spec)) { + delete in; + return false; + } + + /* we only handle certain number of components */ + int width = spec.width; + int height = spec.height; + int components = spec.nchannels; + + if(!(components == 1 || components == 3 || components == 4)) { + delete in; + return false; + } + + /* read RGBA pixels */ + uchar *pixels = (uchar*)tex_img.resize(width, height); + int scanlinesize = width*components*sizeof(uchar); + + in->read_image(TypeDesc::UINT8, + (uchar*)pixels + (height-1)*scanlinesize, + AutoStride, + -scanlinesize, + AutoStride); + + in->close(); + + if(components == 3) { + for(int i = width*height-1; i >= 0; i--) { + pixels[i*4+3] = 255; + pixels[i*4+2] = pixels[i*3+2]; + pixels[i*4+1] = pixels[i*3+1]; + pixels[i*4+0] = pixels[i*3+0]; + } + } + else if(components == 1) { + for(int i = width*height-1; i >= 0; i--) { + pixels[i*4+3] = 255; + pixels[i*4+2] = pixels[i]; + pixels[i*4+1] = pixels[i]; + pixels[i*4+0] = pixels[i]; + } + } + + return true; +} + +void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int slot) +{ + Image *img = images[slot]; + device_vector& tex_img = dscene->tex_image[slot]; + + img->need_load = false; + if(tex_img.device_pointer) + device->tex_free(tex_img); + + if(!file_load_image(img, tex_img)) { + /* on failure to load, we set a 1x1 pixels black image */ + uchar *pixels = (uchar*)tex_img.resize(1, 1); + + pixels[0] = 0; + pixels[1] = 0; + pixels[2] = 0; + pixels[3] = 0; + } + + string name; + + if(slot >= 10) name = string_printf("__tex_image_0%d", slot); + else name = string_printf("__tex_image_00%d", slot); + + device->tex_alloc(name.c_str(), tex_img, true, true); +} + +void ImageManager::device_free_image(Device *device, DeviceScene *dscene, int slot) +{ + if(images[slot]) { + device->tex_free(dscene->tex_image[slot]); + dscene->tex_image[slot].clear(); + + delete images[slot]; + images[slot] = NULL; + } +} + +void ImageManager::device_update(Device *device, DeviceScene *dscene, Progress& progress) +{ + if(!need_update) + return; + + for(size_t slot = 0; slot < images.size(); slot++) { + if(images[slot]) { + if(images[slot]->users == 0) { + device_free_image(device, dscene, slot); + } + else if(images[slot]->need_load) { + string name = path_filename(images[slot]->filename); + progress.set_status("Updating Images", "Loading " + name); + device_load_image(device, dscene, slot); + } + + if(progress.get_cancel()) return; + } + } + + need_update = false; +} + +void ImageManager::device_free(Device *device, DeviceScene *dscene) +{ + for(size_t slot = 0; slot < images.size(); slot++) + device_free_image(device, dscene, slot); + + images.clear(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h new file mode 100644 index 00000000000..a0bf29088b7 --- /dev/null +++ b/intern/cycles/render/image.h @@ -0,0 +1,67 @@ +/* + * 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 __IMAGE_H__ +#define __IMAGE_H__ + +#include "device_memory.h" + +#include "util_string.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +#define TEX_IMAGE_MAX 100 + +class Device; +class DeviceScene; +class Progress; + +class ImageManager { +public: + ImageManager(); + ~ImageManager(); + + int add_image(const string& filename); + void remove_image(int slot); + + void device_update(Device *device, DeviceScene *dscene, Progress& progress); + void device_free(Device *device, DeviceScene *dscene); + + bool need_update; + +private: + struct Image { + string filename; + + bool need_load; + int users; + }; + + vector images; + + bool file_load_image(Image *img, device_vector& tex_img); + + void device_load_image(Device *device, DeviceScene *dscene, int slot); + void device_free_image(Device *device, DeviceScene *dscene, int slot); +}; + +CCL_NAMESPACE_END + +#endif /* __IMAGE_H__ */ + diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp new file mode 100644 index 00000000000..30736670cc3 --- /dev/null +++ b/intern/cycles/render/integrator.cpp @@ -0,0 +1,86 @@ +/* + * 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 "integrator.h" +#include "scene.h" +#include "sobol.h" + +CCL_NAMESPACE_BEGIN + +Integrator::Integrator() +{ + minbounce = 2; + maxbounce = 7; + no_caustics = false; + blur_caustics = 0.0f; + + need_update = true; +} + +Integrator::~Integrator() +{ +} + +void Integrator::device_update(Device *device, DeviceScene *dscene) +{ + if(!need_update) + return; + + device_free(device, dscene); + + KernelIntegrator *kintegrator = &dscene->data.integrator; + + /* integrator parameters */ + kintegrator->minbounce = minbounce + 1; + kintegrator->maxbounce = maxbounce + 1; + kintegrator->no_caustics = no_caustics; + kintegrator->blur_caustics = blur_caustics; + + /* sobol directions table */ + int dimensions = PRNG_BASE_NUM + (maxbounce + 2)*PRNG_BOUNCE_NUM; + uint *directions = dscene->sobol_directions.resize(SOBOL_BITS*dimensions); + + sobol_generate_direction_vectors((uint(*)[SOBOL_BITS])directions, dimensions); + + device->tex_alloc("__sobol_directions", dscene->sobol_directions); + + need_update = false; +} + +void Integrator::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->sobol_directions); + dscene->sobol_directions.clear(); +} + +bool Integrator::modified(const Integrator& integrator) +{ + return !(minbounce == integrator.minbounce && + maxbounce == integrator.maxbounce && + no_caustics == integrator.no_caustics && + blur_caustics == integrator.blur_caustics); +} + +void Integrator::tag_update(Scene *scene) +{ + need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h new file mode 100644 index 00000000000..b7d0c48131f --- /dev/null +++ b/intern/cycles/render/integrator.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. + */ + +#ifndef __INTEGRATOR_H__ +#define __INTEGRATOR_H__ + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Scene; + +class Integrator { +public: + int minbounce; + int maxbounce; + bool no_caustics; + float blur_caustics; + bool need_update; + + Integrator(); + ~Integrator(); + + void device_update(Device *device, DeviceScene *dscene); + void device_free(Device *device, DeviceScene *dscene); + + bool modified(const Integrator& integrator); + void tag_update(Scene *scene); +}; + +CCL_NAMESPACE_END + +#endif /* __INTEGRATOR_H__ */ + diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp new file mode 100644 index 00000000000..88a797f753d --- /dev/null +++ b/intern/cycles/render/light.cpp @@ -0,0 +1,220 @@ +/* + * 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 "light.h" +#include "mesh.h" +#include "object.h" +#include "scene.h" +#include "shader.h" + +#include "util_foreach.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +/* Light */ + +Light::Light() +{ + co = make_float3(0.0f, 0.0f, 0.0f); + radius = 0.0f; + shader = 0; +} + +void Light::tag_update(Scene *scene) +{ + scene->light_manager->need_update = true; +} + +/* Light Manager */ + +LightManager::LightManager() +{ + need_update = true; +} + +LightManager::~LightManager() +{ +} + +void LightManager::device_update_distribution(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + /* count */ + size_t num_lights = scene->lights.size(); + size_t num_triangles = 0; + + foreach(Object *object, scene->objects) { + Mesh *mesh = object->mesh; + + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Shader *shader = scene->shaders[mesh->shader[i]]; + + if(shader->has_surface_emission) + num_triangles++; + } + } + + size_t num_distribution = num_triangles + num_lights; + + /* emission area */ + float4 *distribution = dscene->light_distribution.resize(num_distribution + 1); + float totarea = 0.0f; + + /* triangles */ + size_t offset = 0; + size_t j = 0; + + foreach(Object *object, scene->objects) { + Mesh *mesh = object->mesh; + Transform tfm = object->tfm; + int object_id = (mesh->transform_applied)? -j-1: j; + + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Shader *shader = scene->shaders[mesh->shader[i]]; + + if(shader->has_surface_emission) { + distribution[offset].x = totarea; + distribution[offset].y = __int_as_float(i + mesh->tri_offset); + distribution[offset].z = 1.0f; + distribution[offset].w = __int_as_float(object_id); + offset++; + + Mesh::Triangle t = mesh->triangles[i]; + float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); + float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); + float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); + + totarea += triangle_area(p1, p2, p3); + } + } + + if(progress.get_cancel()) return; + + j++; + } + + float trianglearea = totarea; + + /* point lights */ + float lightarea = (totarea > 0.0f)? totarea/scene->lights.size(): 1.0f; + + for(size_t i = 0; i < scene->lights.size(); i++, offset++) { + distribution[offset].x = totarea; + distribution[offset].y = __int_as_float(-i-1); + distribution[offset].z = 1.0f; + distribution[offset].w = scene->lights[i]->radius; + totarea += lightarea; + } + + /* normalize cumulative distribution functions */ + distribution[num_distribution].x = totarea; + distribution[num_distribution].y = 0.0f; + distribution[num_distribution].z = 0.0f; + distribution[num_distribution].w = 0.0f; + + if(totarea > 0.0f) { + for(size_t i = 0; i < num_distribution; i++) + distribution[i].x /= totarea; + distribution[num_distribution].x = 1.0f; + } + + if(progress.get_cancel()) return; + + /* update device */ + KernelIntegrator *kintegrator = &dscene->data.integrator; + kintegrator->use_emission = (totarea > 0.0f); + + if(kintegrator->use_emission) { + /* number of emissives */ + kintegrator->num_triangles = num_triangles; + kintegrator->num_lights = num_lights; + kintegrator->num_distribution = num_distribution; + + /* precompute pdfs */ + kintegrator->pdf_triangles = 0.0f; + kintegrator->pdf_lights = 0.0f; + + if(trianglearea > 0.0f) { + kintegrator->pdf_triangles = 1.0f/trianglearea; + if(num_lights) + kintegrator->pdf_triangles *= 0.5f; + } + + if(num_lights) { + kintegrator->pdf_lights = 1.0f/num_lights; + if(trianglearea > 0.0f) + kintegrator->pdf_lights *= 0.5f; + } + + /* CDF */ + device->tex_alloc("__light_distribution", dscene->light_distribution); + } + else + dscene->light_distribution.clear(); +} + +void LightManager::device_update_points(Device *device, DeviceScene *dscene, Scene *scene) +{ + if(scene->lights.size() == 0) + return; + + float4 *light_point = dscene->light_point.resize(scene->lights.size()); + + for(size_t i = 0; i < scene->lights.size(); i++) { + float3 co = scene->lights[i]->co; + int shader_id = scene->shader_manager->get_shader_id(scene->lights[i]->shader); + + light_point[i] = make_float4(co.x, co.y, co.z, __int_as_float(shader_id)); + } + + device->tex_alloc("__light_point", dscene->light_point); +} + +void LightManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + if(!need_update) + return; + + device_free(device, dscene); + + device_update_points(device, dscene, scene); + if(progress.get_cancel()) return; + + device_update_distribution(device, dscene, scene, progress); + if(progress.get_cancel()) return; + + need_update = false; +} + +void LightManager::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->light_distribution); + device->tex_free(dscene->light_point); + + dscene->light_distribution.clear(); + dscene->light_point.clear(); +} + +void LightManager::tag_update(Scene *scene) +{ + need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/light.h b/intern/cycles/render/light.h new file mode 100644 index 00000000000..dbc333260ee --- /dev/null +++ b/intern/cycles/render/light.h @@ -0,0 +1,63 @@ +/* + * 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 __LIGHT_H__ +#define __LIGHT_H__ + +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Progress; +class Scene; + +class Light { +public: + Light(); + + float3 co; + float radius; /* not implemented yet */ + int shader; + + void tag_update(Scene *scene); +}; + +class LightManager { +public: + bool need_update; + + LightManager(); + ~LightManager(); + + void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_free(Device *device, DeviceScene *dscene); + + void tag_update(Scene *scene); + +protected: + void device_update_points(Device *device, DeviceScene *dscene, Scene *scene); + void device_update_distribution(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); +}; + +CCL_NAMESPACE_END + +#endif /* __LIGHT_H__ */ + diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp new file mode 100644 index 00000000000..eb9fefcc0ad --- /dev/null +++ b/intern/cycles/render/mesh.cpp @@ -0,0 +1,718 @@ +/* + * 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 "bvh.h" +#include "bvh_build.h" + +#include "device.h" +#include "shader.h" +#include "mesh.h" +#include "object.h" +#include "scene.h" + +#include "osl_globals.h" + +#include "util_cache.h" +#include "util_foreach.h" +#include "util_progress.h" +#include "util_set.h" + +CCL_NAMESPACE_BEGIN + +/* Mesh */ + +Mesh::Mesh() +: attributes(this) +{ + need_update = true; + transform_applied = false; + displacement_method = DISPLACE_BUMP; + + bvh = NULL; + + tri_offset = 0; + vert_offset = 0; +} + +Mesh::~Mesh() +{ + delete bvh; +} + +void Mesh::reserve(int numverts, int numtris) +{ + /* reserve space to add verts and triangles later */ + verts.resize(numverts); + triangles.resize(numtris); + shader.resize(numtris); + smooth.resize(numtris); + attributes.reserve(numverts, numtris); +} + +void Mesh::clear() +{ + /* clear all verts and triangles */ + verts.clear(); + triangles.clear(); + shader.clear(); + smooth.clear(); + + attributes.clear(); + used_shaders.clear(); +} + +void Mesh::add_triangle(int v0, int v1, int v2, int shader_, bool smooth_) +{ + Triangle t; + t.v[0] = v0; + t.v[1] = v1; + t.v[2] = v2; + + triangles.push_back(t); + shader.push_back(shader_); + smooth.push_back(smooth_); +} + +void Mesh::compute_bounds() +{ + BoundBox bnds; + size_t verts_size = verts.size(); + + for(size_t i = 0; i < verts_size; i++) + bnds.grow(verts[i]); + + /* happens mostly on empty meshes */ + if(!bnds.valid()) + bnds.grow(make_float3(0.0f, 0.0f, 0.0f)); + + bounds = bnds; +} + +void Mesh::add_face_normals() +{ + /* don't compute if already there */ + if(attributes.find(Attribute::STD_FACE_NORMAL)) + return; + + /* get attributes */ + Attribute *attr_fN = attributes.add(Attribute::STD_FACE_NORMAL); + float3 *fN = attr_fN->data_float3(); + + /* compute face normals */ + float3 *verts_ptr = &verts[0]; + size_t triangles_size = triangles.size(); + Triangle *triangles_ptr = &triangles[0]; + + for(size_t i = 0; i < triangles_size; i++) { + Triangle t = triangles_ptr[i]; + float3 v0 = verts_ptr[t.v[0]]; + float3 v1 = verts_ptr[t.v[1]]; + float3 v2 = verts_ptr[t.v[2]]; + + fN[i] = normalize(cross(v1 - v0, v2 - v0)); + } +} + +void Mesh::add_vertex_normals() +{ + /* don't compute if already there */ + if(attributes.find(Attribute::STD_VERTEX_NORMAL)) + return; + + /* get attributes */ + Attribute *attr_fN = attributes.find(Attribute::STD_FACE_NORMAL); + Attribute *attr_vN = attributes.add(Attribute::STD_VERTEX_NORMAL); + + float3 *fN = attr_fN->data_float3(); + float3 *vN = attr_vN->data_float3(); + + /* compute vertex normals */ + memset(&vN[0], 0, verts.size()*sizeof(float3)); + + size_t verts_size = verts.size(); + size_t triangles_size = triangles.size(); + Triangle *triangles_ptr = &triangles[0]; + + for(size_t i = 0; i < triangles_size; i++) + for(size_t j = 0; j < 3; j++) + vN[triangles_ptr[i].v[j]] += fN[i]; + + for(size_t i = 0; i < verts_size; i++) + vN[i] = normalize(vN[i]); +} + +void Mesh::pack_normals(Scene *scene, float4 *normal, float4 *vnormal) +{ + Attribute *attr_fN = attributes.find(Attribute::STD_FACE_NORMAL); + Attribute *attr_vN = attributes.find(Attribute::STD_VERTEX_NORMAL); + + float3 *fN = attr_fN->data_float3(); + float3 *vN = attr_vN->data_float3(); + int shader_id = 0; + uint last_shader = -1; + bool last_smooth = false; + + size_t triangles_size = triangles.size(); + uint *shader_ptr = &shader[0]; + + for(size_t i = 0; i < triangles_size; i++) { + normal[i].x = fN[i].x; + normal[i].y = fN[i].y; + normal[i].z = fN[i].z; + + /* stuff shader id in here too */ + if(shader_ptr[i] != last_shader || last_smooth != smooth[i]) { + last_shader = shader_ptr[i]; + last_smooth = smooth[i]; + shader_id = scene->shader_manager->get_shader_id(last_shader, this, last_smooth); + } + + normal[i].w = __int_as_float(shader_id); + } + + size_t verts_size = verts.size(); + + for(size_t i = 0; i < verts_size; i++) + vnormal[i] = make_float4(vN[i].x, vN[i].y, vN[i].z, 0.0f); +} + +void Mesh::pack_verts(float4 *tri_verts, float4 *tri_vindex, size_t vert_offset) +{ + size_t verts_size = verts.size(); + float3 *verts_ptr = &verts[0]; + + for(size_t i = 0; i < verts_size; i++) { + float3 p = verts_ptr[i]; + tri_verts[i] = make_float4(p.x, p.y, p.z, 0.0f); + } + + size_t triangles_size = triangles.size(); + Triangle *triangles_ptr = &triangles[0]; + + for(size_t i = 0; i < triangles_size; i++) { + Triangle t = triangles_ptr[i]; + + tri_vindex[i] = make_float4( + __int_as_float(t.v[0] + vert_offset), + __int_as_float(t.v[1] + vert_offset), + __int_as_float(t.v[2] + vert_offset), + 0); + } +} + +void Mesh::compute_bvh(SceneParams *params, Progress& progress) +{ + Object object; + object.mesh = this; + + vector objects; + objects.push_back(&object); + + if(bvh && !need_update_rebuild) { + progress.set_substatus("Refitting BVH"); + bvh->objects = objects; + bvh->refit(progress); + } + else { + progress.set_substatus("Building BVH"); + + BVHParams bparams; + bparams.use_cache = params->use_bvh_cache; + bparams.use_spatial_split = params->use_bvh_spatial_split; + bparams.use_qbvh = params->use_qbvh; + + delete bvh; + bvh = BVH::create(bparams, objects); + bvh->build(progress); + } +} + +void Mesh::tag_update(Scene *scene, bool rebuild) +{ + need_update = true; + if(rebuild) + need_update_rebuild = true; + + scene->mesh_manager->need_update = true; + scene->object_manager->need_update = true; +} + +/* Mesh Manager */ + +MeshManager::MeshManager() +{ + bvh = NULL; + need_update = true; +} + +MeshManager::~MeshManager() +{ + delete bvh; +} + +void MeshManager::update_osl_attributes(Device *device, Scene *scene, vector& mesh_attributes) +{ +#ifdef WITH_OSL + /* for OSL, a hash map is used to lookup the attribute by name. */ + OSLGlobals *og = (OSLGlobals*)device->osl_memory(); + + og->object_name_map.clear(); + og->attribute_map.clear(); + + og->attribute_map.resize(scene->objects.size()); + + for(size_t i = 0; i < scene->objects.size(); i++) { + /* set object name to object index map */ + Object *object = scene->objects[i]; + og->object_name_map[object->name] = i; + + /* set object attributes */ + foreach(ParamValue& attr, object->attributes) { + OSLGlobals::Attribute osl_attr; + + osl_attr.type = attr.type(); + osl_attr.elem = ATTR_ELEMENT_VALUE; + osl_attr.value = attr; + + og->attribute_map[i][attr.name()] = osl_attr; + } + + /* find mesh attributes */ + size_t j; + + for(j = 0; j < scene->meshes.size(); j++) + if(scene->meshes[j] == object->mesh) + break; + + AttributeRequestSet& attributes = mesh_attributes[j]; + + /* set object attributes */ + foreach(AttributeRequest& req, attributes.requests) { + OSLGlobals::Attribute osl_attr; + + osl_attr.elem = req.element; + osl_attr.offset = req.offset; + + if(req.type == TypeDesc::TypeFloat) + osl_attr.type = TypeDesc::TypeFloat; + else + osl_attr.type = TypeDesc::TypeColor; + + if(req.std != Attribute::STD_NONE) { + /* if standard attribute, add lookup by std:: name convention */ + ustring stdname = ustring(string("std::") + Attribute::standard_name(req.std).c_str()); + og->attribute_map[i][stdname] = osl_attr; + } + else if(req.name != ustring()) { + /* add lookup by mesh attribute name */ + og->attribute_map[i][req.name] = osl_attr; + } + } + } +#endif +} + +void MeshManager::update_svm_attributes(Device *device, DeviceScene *dscene, Scene *scene, vector& mesh_attributes) +{ + /* for SVM, the attributes_map table is used to lookup the offset of an + * attribute, based on a unique shader attribute id. */ + + /* compute array stride */ + int attr_map_stride = 0; + + for(size_t i = 0; i < scene->meshes.size(); i++) + attr_map_stride = max(attr_map_stride, mesh_attributes[i].size()); + + if(attr_map_stride == 0) + return; + + /* create attribute map */ + uint4 *attr_map = dscene->attributes_map.resize(attr_map_stride*scene->objects.size()); + memset(attr_map, 0, dscene->attributes_map.size()*sizeof(uint)); + + for(size_t i = 0; i < scene->objects.size(); i++) { + Object *object = scene->objects[i]; + + /* find mesh attributes */ + size_t j; + + for(j = 0; j < scene->meshes.size(); j++) + if(scene->meshes[j] == object->mesh) + break; + + AttributeRequestSet& attributes = mesh_attributes[j]; + + /* set object attributes */ + j = 0; + + foreach(AttributeRequest& req, attributes.requests) { + int index = i*attr_map_stride; + uint id; + + if(req.std == Attribute::STD_NONE) + id = scene->shader_manager->get_attribute_id(req.name); + else + id = scene->shader_manager->get_attribute_id(req.std); + + attr_map[index].x = id; + attr_map[index].y = req.element; + attr_map[index].z = req.offset; + + if(req.type == TypeDesc::TypeFloat) + attr_map[index].w = NODE_ATTR_FLOAT; + else + attr_map[index].w = NODE_ATTR_FLOAT3; + + j++; + } + } + + /* copy to device */ + dscene->data.bvh.attributes_map_stride = attr_map_stride; + device->tex_alloc("__attributes_map", dscene->attributes_map); +} + +void MeshManager::device_update_attributes(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + progress.set_status("Updating Mesh", "Computing attributes"); + + /* gather per mesh requested attributes. as meshes may have multiple + * shaders assigned, this merged the requested attributes that have + * been set per shader by the shader manager */ + vector mesh_attributes(scene->meshes.size()); + + for(size_t i = 0; i < scene->meshes.size(); i++) { + Mesh *mesh = scene->meshes[i]; + + foreach(uint sindex, mesh->used_shaders) { + Shader *shader = scene->shaders[sindex]; + mesh_attributes[i].add(shader->attributes); + } + } + + /* mesh attribute are stored in a single array per data type. here we fill + * those arrays, and set the offset and element type to create attribute + * maps next */ + vector attr_float; + vector attr_float3; + + for(size_t i = 0; i < scene->meshes.size(); i++) { + Mesh *mesh = scene->meshes[i]; + AttributeRequestSet& attributes = mesh_attributes[i]; + + /* todo: we now store std and name attributes from requests even if + they actually refer to the same mesh attributes, optimize */ + foreach(AttributeRequest& req, attributes.requests) { + Attribute *mattr = mesh->attributes.find(req); + + /* todo: get rid of this exception */ + if(!mattr && req.std == Attribute::STD_GENERATED) { + mattr = mesh->attributes.add(Attribute::STD_GENERATED); + memcpy(mattr->data_float3(), &mesh->verts[0], sizeof(float3)*mesh->verts.size()); + } + + /* attribute not found */ + if(!mattr) { + req.element = ATTR_ELEMENT_NONE; + req.offset = 0; + continue; + } + + /* we abuse AttributeRequest to pass on info like element and + offset, it doesn't really make sense but is convenient */ + + /* store element and type */ + if(mattr->element == Attribute::VERTEX) + req.element = ATTR_ELEMENT_VERTEX; + else if(mattr->element == Attribute::FACE) + req.element = ATTR_ELEMENT_FACE; + else if(mattr->element == Attribute::CORNER) + req.element = ATTR_ELEMENT_CORNER; + + req.type = mattr->type; + + /* store attribute data in arrays */ + size_t size = mattr->element_size(mesh->verts.size(), mesh->triangles.size()); + + if(mattr->type == TypeDesc::TypeFloat) { + float *data = mattr->data_float(); + req.offset = attr_float.size(); + + for(size_t k = 0; k < size; k++) + attr_float.push_back(data[k]); + } + else { + float3 *data = mattr->data_float3(); + req.offset = attr_float3.size(); + + for(size_t k = 0; k < size; k++) { + float3 f3 = data[k]; + float4 f4 = make_float4(f3.x, f3.y, f3.z, 0.0f); + + attr_float3.push_back(f4); + } + } + + /* mesh vertex/triangle index is global, not per object, so we sneak + a correct for that in here */ + if(req.element == ATTR_ELEMENT_VERTEX) + req.offset -= mesh->vert_offset; + else + req.offset -= mesh->tri_offset; + + if(progress.get_cancel()) return; + } + } + + /* create attribute lookup maps */ + if(scene->params.shadingsystem == SceneParams::OSL) + update_osl_attributes(device, scene, mesh_attributes); + else + update_svm_attributes(device, dscene, scene, mesh_attributes); + + if(progress.get_cancel()) return; + + /* copy to device */ + progress.set_status("Updating Mesh", "Copying Attributes to device"); + + if(attr_float.size()) { + dscene->attributes_float.copy(&attr_float[0], attr_float.size()); + device->tex_alloc("__attributes_float", dscene->attributes_float); + } + if(attr_float3.size()) { + dscene->attributes_float3.copy(&attr_float3[0], attr_float3.size()); + device->tex_alloc("__attributes_float3", dscene->attributes_float3); + } +} + +void MeshManager::device_update_mesh(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + /* count and update offsets */ + size_t vert_size = 0; + size_t tri_size = 0; + + foreach(Mesh *mesh, scene->meshes) { + mesh->vert_offset = vert_size; + mesh->tri_offset = tri_size; + + vert_size += mesh->verts.size(); + tri_size += mesh->triangles.size(); + } + + if(tri_size == 0) + return; + + /* normals */ + progress.set_status("Updating Mesh", "Computing normals"); + + float4 *normal = dscene->tri_normal.resize(tri_size); + float4 *vnormal = dscene->tri_vnormal.resize(vert_size); + float4 *tri_verts = dscene->tri_verts.resize(vert_size); + float4 *tri_vindex = dscene->tri_vindex.resize(tri_size); + + foreach(Mesh *mesh, scene->meshes) { + mesh->pack_normals(scene, &normal[mesh->tri_offset], &vnormal[mesh->vert_offset]); + mesh->pack_verts(&tri_verts[mesh->vert_offset], &tri_vindex[mesh->tri_offset], mesh->vert_offset); + + if(progress.get_cancel()) return; + } + + /* vertex coordinates */ + progress.set_status("Updating Mesh", "Copying Mesh to device"); + + device->tex_alloc("__tri_normal", dscene->tri_normal); + device->tex_alloc("__tri_vnormal", dscene->tri_vnormal); + device->tex_alloc("__tri_verts", dscene->tri_verts); + device->tex_alloc("__tri_vindex", dscene->tri_vindex); +} + +void MeshManager::device_update_bvh(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + /* bvh build */ + progress.set_status("Updating Scene BVH", "Building"); + + BVHParams bparams; + bparams.top_level = true; + bparams.use_qbvh = scene->params.use_qbvh; + bparams.use_spatial_split = scene->params.use_bvh_spatial_split; + + delete bvh; + bvh = BVH::create(bparams, scene->objects); + bvh->build(progress); + + if(progress.get_cancel()) return; + + /* copy to device */ + progress.set_status("Updating Scene BVH", "Copying BVH to device"); + + PackedBVH& pack = bvh->pack; + + if(pack.nodes.size()) { + dscene->bvh_nodes.reference((float4*)&pack.nodes[0], pack.nodes.size()); + device->tex_alloc("__bvh_nodes", dscene->bvh_nodes); + } + if(pack.object_node.size()) { + dscene->object_node.reference((uint*)&pack.object_node[0], pack.object_node.size()); + device->tex_alloc("__object_node", dscene->object_node); + } + if(pack.tri_woop.size()) { + dscene->tri_woop.reference(&pack.tri_woop[0], pack.tri_woop.size()); + device->tex_alloc("__tri_woop", dscene->tri_woop); + } + if(pack.prim_index.size()) { + dscene->prim_index.reference((uint*)&pack.prim_index[0], pack.prim_index.size()); + device->tex_alloc("__prim_index", dscene->prim_index); + } + if(pack.prim_object.size()) { + dscene->prim_object.reference((uint*)&pack.prim_object[0], pack.prim_object.size()); + device->tex_alloc("__prim_object", dscene->prim_object); + } + + dscene->data.bvh.root = pack.root_index; +} + +void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + if(!need_update) + return; + + /* update normals */ + foreach(Mesh *mesh, scene->meshes) { + foreach(uint shader, mesh->used_shaders) + if(scene->shaders[shader]->need_update_attributes) + mesh->need_update = true; + + if(mesh->need_update) { + mesh->add_face_normals(); + mesh->add_vertex_normals(); + + if(progress.get_cancel()) return; + } + } + + /* device update */ + device_free(device, dscene); + + device_update_mesh(device, dscene, scene, progress); + if(progress.get_cancel()) return; + + device_update_attributes(device, dscene, scene, progress); + if(progress.get_cancel()) return; + + /* update displacement */ + bool displacement_done = false; + + foreach(Mesh *mesh, scene->meshes) + if(mesh->need_update && displace(device, scene, mesh, progress)) + displacement_done = true; + + /* todo: properly handle cancel halfway displacement */ + if(progress.get_cancel()) return; + + /* device re-update after displacement */ + if(displacement_done) { + device_free(device, dscene); + + device_update_mesh(device, dscene, scene, progress); + if(progress.get_cancel()) return; + + device_update_attributes(device, dscene, scene, progress); + if(progress.get_cancel()) return; + } + + /* update bvh */ + size_t i = 0, num_instance_bvh = 0; + + foreach(Mesh *mesh, scene->meshes) + if(mesh->need_update && !mesh->transform_applied) + num_instance_bvh++; + + foreach(Mesh *mesh, scene->meshes) { + if(mesh->need_update) { + mesh->compute_bounds(); + + if(!mesh->transform_applied) { + string msg = "Updating Mesh BVH "; + if(mesh->name == "") + msg += string_printf("%ld/%ld", i+1, num_instance_bvh); + else + msg += string_printf("%s %ld/%ld", mesh->name.c_str(), i+1, num_instance_bvh); + progress.set_status(msg, "Building BVH"); + + mesh->compute_bvh(&scene->params, progress); + } + + if(progress.get_cancel()) return; + + mesh->need_update = false; + mesh->need_update_rebuild = false; + } + + i++; + } + + foreach(Shader *shader, scene->shaders) + shader->need_update_attributes = false; + + foreach(Object *object, scene->objects) + object->compute_bounds(); + + if(progress.get_cancel()) return; + + device_update_bvh(device, dscene, scene, progress); + + need_update = false; +} + +void MeshManager::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->bvh_nodes); + device->tex_free(dscene->object_node); + device->tex_free(dscene->tri_woop); + device->tex_free(dscene->prim_index); + device->tex_free(dscene->prim_object); + device->tex_free(dscene->tri_normal); + device->tex_free(dscene->tri_vnormal); + device->tex_free(dscene->tri_vindex); + device->tex_free(dscene->tri_verts); + device->tex_free(dscene->attributes_map); + device->tex_free(dscene->attributes_float); + device->tex_free(dscene->attributes_float3); + + dscene->bvh_nodes.clear(); + dscene->object_node.clear(); + dscene->tri_woop.clear(); + dscene->prim_index.clear(); + dscene->prim_object.clear(); + dscene->tri_normal.clear(); + dscene->tri_vnormal.clear(); + dscene->tri_vindex.clear(); + dscene->tri_verts.clear(); + dscene->attributes_map.clear(); + dscene->attributes_float.clear(); + dscene->attributes_float3.clear(); +} + +void MeshManager::tag_update(Scene *scene) +{ + need_update = true; + scene->object_manager->need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/mesh.h b/intern/cycles/render/mesh.h new file mode 100644 index 00000000000..367896697ed --- /dev/null +++ b/intern/cycles/render/mesh.h @@ -0,0 +1,133 @@ +/* + * 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 __MESH_H__ +#define __MESH_H__ + +#include "attribute.h" +#include "shader.h" + +#include "util_boundbox.h" +#include "util_list.h" +#include "util_map.h" +#include "util_param.h" +#include "util_transform.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class BVH; +class Device; +class DeviceScene; +class Mesh; +class Progress; +class Scene; +class SceneParams; +class AttributeRequest; + +/* Mesh */ + +class Mesh { +public: + /* Mesh Triangle */ + struct Triangle { + int v[3]; + }; + + /* Displacement */ + enum DisplacementMethod { + DISPLACE_BUMP, + DISPLACE_TRUE, + DISPLACE_BOTH + }; + + ustring name; + + /* Mesh Data */ + vector verts; + vector triangles; + vector shader; + vector smooth; + + vector used_shaders; + AttributeSet attributes; + + BoundBox bounds; + bool transform_applied; + DisplacementMethod displacement_method; + + /* Update Flags */ + bool need_update; + bool need_update_rebuild; + + /* BVH */ + BVH *bvh; + size_t tri_offset; + size_t vert_offset; + + /* Functions */ + Mesh(); + ~Mesh(); + + void reserve(int numverts, int numfaces); + void clear(); + void add_triangle(int v0, int v1, int v2, int shader, bool smooth); + + void compute_bounds(); + void add_face_normals(); + void add_vertex_normals(); + + void pack_normals(Scene *scene, float4 *normal, float4 *vnormal); + void pack_verts(float4 *tri_verts, float4 *tri_vindex, size_t vert_offset); + void compute_bvh(SceneParams *params, Progress& progress); + + void tag_update(Scene *scene, bool rebuild); +}; + +/* Mesh Manager */ + +class MeshManager { +public: + BVH *bvh; + + bool need_update; + + MeshManager(); + ~MeshManager(); + + bool displace(Device *device, Scene *scene, Mesh *mesh, Progress& progress); + + /* attributes */ + void update_osl_attributes(Device *device, Scene *scene, vector& mesh_attributes); + void update_svm_attributes(Device *device, DeviceScene *dscene, Scene *scene, vector& mesh_attributes); + + void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_update_object(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_update_mesh(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_update_attributes(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_update_bvh(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_free(Device *device, DeviceScene *dscene); + + void tag_update(Scene *scene); +}; + +CCL_NAMESPACE_END + +#endif /* __MESH_H__ */ + diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/render/mesh_displace.cpp new file mode 100644 index 00000000000..e86bea59ec1 --- /dev/null +++ b/intern/cycles/render/mesh_displace.cpp @@ -0,0 +1,153 @@ +/* + * 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 "mesh.h" +#include "scene.h" +#include "shader.h" + +#include "util_foreach.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +bool MeshManager::displace(Device *device, Scene *scene, Mesh *mesh, Progress& progress) +{ + /* verify if we have a displacement shader */ + bool has_displacement = false; + + if(mesh->displacement_method != Mesh::DISPLACE_BUMP) { + foreach(uint sindex, mesh->used_shaders) + if(scene->shaders[sindex]->has_displacement) + has_displacement = true; + } + + if(!has_displacement) + return false; + + /* setup input for device task */ + vector done(mesh->verts.size(), false); + device_vector d_input; + uint4 *d_input_data = d_input.resize(mesh->verts.size()); + size_t d_input_offset = 0; + + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Mesh::Triangle t = mesh->triangles[i]; + Shader *shader = scene->shaders[mesh->shader[i]]; + + if(!shader->has_displacement) + continue; + + for(int j = 0; j < 3; j++) { + if(done[t.v[j]]) + continue; + + done[t.v[j]] = true; + + /* set up object, primitive and barycentric coordinates */ + /* when used, non-instanced convention: object = -object-1; */ + int object = ~0; /* todo */ + int prim = mesh->tri_offset + i; + float u, v; + + if(j == 0) { + u = 1.0f; + v = 0.0f; + } + else if(j == 1) { + u = 0.0f; + v = 1.0f; + } + else { + u = 0.0f; + v = 0.0f; + } + + /* back */ + uint4 in = make_uint4(object, prim, __float_as_int(u), __float_as_int(v)); + d_input_data[d_input_offset++] = in; + } + } + + if(d_input_offset == 0) + return false; + + /* run device task */ + device_vector d_offset; + d_offset.resize(d_input.size()); + + device->mem_alloc(d_input, MEM_READ_ONLY); + device->mem_copy_to(d_input); + device->mem_alloc(d_offset, MEM_WRITE_ONLY); + + DeviceTask task(DeviceTask::DISPLACE); + task.displace_input = d_input.device_pointer; + task.displace_offset = d_offset.device_pointer; + task.displace_x = 0; + task.displace_w = d_input.size(); + + device->task_add(task); + device->task_wait(); + + device->mem_copy_from(d_offset, 0, sizeof(float3)*d_offset.size()); + device->mem_free(d_input); + device->mem_free(d_offset); + + if(progress.get_cancel()) + return false; + + /* read result */ + done.clear(); + done.resize(mesh->verts.size(), false); + int k = 0; + + float3 *offset = (float3*)d_offset.data_pointer; + + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Mesh::Triangle t = mesh->triangles[i]; + Shader *shader = scene->shaders[mesh->shader[i]]; + + if(!shader->has_displacement) + continue; + + for(int j = 0; j < 3; j++) { + if(!done[t.v[j]]) { + done[t.v[j]] = true; + mesh->verts[t.v[j]] += offset[k++]; + } + } + } + + /* for displacement method both, we only need to recompute the face + * normals, as bump mapping in the shader will already alter the + * vertex normal, so we start from the non-displaced vertex normals + * to avoid applying the perturbation twice. */ + mesh->attributes.remove(Attribute::STD_FACE_NORMAL); + mesh->add_face_normals(); + + if(mesh->displacement_method == Mesh::DISPLACE_TRUE) { + mesh->attributes.remove(Attribute::STD_VERTEX_NORMAL); + mesh->add_vertex_normals(); + } + + return true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp new file mode 100644 index 00000000000..d783c3699ea --- /dev/null +++ b/intern/cycles/render/nodes.cpp @@ -0,0 +1,1914 @@ +/* + * 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 "image.h" +#include "nodes.h" +#include "svm.h" +#include "osl.h" + +#include "util_transform.h" + +CCL_NAMESPACE_BEGIN + +/* Image Texture */ + +ImageTextureNode::ImageTextureNode() +: ShaderNode("image_texture") +{ + image_manager = NULL; + slot = -1; + filename = ""; + + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_output("Color", SHADER_SOCKET_COLOR); +} + +ImageTextureNode::~ImageTextureNode() +{ + if(image_manager && slot != -1) + image_manager->remove_image(slot); +} + +ShaderNode *ImageTextureNode::clone() const +{ + ImageTextureNode *node = new ImageTextureNode(*this); + node->image_manager = NULL; + node->slot = -1; + return node; +} + +void ImageTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + + image_manager = compiler.image_manager; + if(slot == -1) + slot = image_manager->add_image(filename); + + compiler.stack_assign(color_out); + + if(slot != -1) { + compiler.stack_assign(vector_in); + compiler.add_node(NODE_TEX_IMAGE, slot, vector_in->stack_offset, color_out->stack_offset); + } + else { + /* image not found */ + compiler.add_node(NODE_VALUE_V, color_out->stack_offset); + compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + } +} + +void ImageTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("filename", filename.c_str()); + compiler.add(this, "node_image_texture"); +} + +/* Environment Texture */ + +EnvironmentTextureNode::EnvironmentTextureNode() +: ShaderNode("environment_texture") +{ + image_manager = NULL; + slot = -1; + filename = ""; + + add_input("Vector", SHADER_SOCKET_VECTOR, ShaderInput::POSITION); + add_output("Color", SHADER_SOCKET_COLOR); +} + +EnvironmentTextureNode::~EnvironmentTextureNode() +{ + if(image_manager && slot != -1) + image_manager->remove_image(slot); +} + +ShaderNode *EnvironmentTextureNode::clone() const +{ + EnvironmentTextureNode *node = new EnvironmentTextureNode(*this); + node->image_manager = NULL; + node->slot = -1; + return node; +} + +void EnvironmentTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + + image_manager = compiler.image_manager; + if(slot == -1) + slot = image_manager->add_image(filename); + + compiler.stack_assign(color_out); + + if(slot != -1) { + compiler.stack_assign(vector_in); + compiler.add_node(NODE_TEX_ENVIRONMENT, slot, vector_in->stack_offset, color_out->stack_offset); + } + else { + /* image not found */ + compiler.add_node(NODE_VALUE_V, color_out->stack_offset); + compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + } +} + +void EnvironmentTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("filename", filename.c_str()); + compiler.add(this, "node_environment_texture"); +} + +/* Sky Texture */ + +static float2 sky_spherical_coordinates(float3 dir) +{ + return make_float2(acosf(dir.z), atan2f(dir.x, dir.y)); +} + +static float sky_perez_function(float lam[6], float theta, float gamma) +{ + return (1.f + lam[0]*expf(lam[1]/cosf(theta))) * (1.f + lam[2]*expf(lam[3]*gamma) + lam[4]*cosf(gamma)*cosf(gamma)); +} + +static void sky_texture_precompute(KernelSunSky *ksunsky, float3 dir, float turbidity) +{ + float2 spherical = sky_spherical_coordinates(dir); + float theta = spherical.x; + float phi = spherical.y; + + ksunsky->theta = theta; + ksunsky->phi = phi; + ksunsky->dir = dir; + + float theta2 = theta*theta; + float theta3 = theta*theta*theta; + float T = turbidity; + float T2 = T * T; + + float chi = (4.0f / 9.0f - T / 120.0f) * (M_PI_F - 2.0f * theta); + ksunsky->zenith_Y = (4.0453f * T - 4.9710f) * tan(chi) - 0.2155f * T + 2.4192f; + ksunsky->zenith_Y *= 0.06f; + + ksunsky->zenith_x = + (0.00166f * theta3 - 0.00375f * theta2 + 0.00209f * theta) * T2 + + (-0.02903f * theta3 + 0.06377f * theta2 - 0.03202f * theta + 0.00394f) * T + + (0.11693f * theta3 - 0.21196f * theta2 + 0.06052f * theta + 0.25886f); + + ksunsky->zenith_y = + (0.00275f * theta3 - 0.00610f * theta2 + 0.00317f * theta) * T2 + + (-0.04214f * theta3 + 0.08970f * theta2 - 0.04153f * theta + 0.00516f) * T + + (0.15346f * theta3 - 0.26756f * theta2 + 0.06670f * theta + 0.26688f); + + ksunsky->perez_Y[0] = (0.1787f * T - 1.4630f); + ksunsky->perez_Y[1] = (-0.3554f * T + 0.4275f); + ksunsky->perez_Y[2] = (-0.0227f * T + 5.3251f); + ksunsky->perez_Y[3] = (0.1206f * T - 2.5771f); + ksunsky->perez_Y[4] = (-0.0670f * T + 0.3703f); + + ksunsky->perez_x[0] = (-0.0193f * T - 0.2592f); + ksunsky->perez_x[1] = (-0.0665f * T + 0.0008f); + ksunsky->perez_x[2] = (-0.0004f * T + 0.2125f); + ksunsky->perez_x[3] = (-0.0641f * T - 0.8989f); + ksunsky->perez_x[4] = (-0.0033f * T + 0.0452f); + + ksunsky->perez_y[0] = (-0.0167f * T - 0.2608f); + ksunsky->perez_y[1] = (-0.0950f * T + 0.0092f); + ksunsky->perez_y[2] = (-0.0079f * T + 0.2102f); + ksunsky->perez_y[3] = (-0.0441f * T - 1.6537f); + ksunsky->perez_y[4] = (-0.0109f * T + 0.0529f); + + ksunsky->zenith_Y /= sky_perez_function(ksunsky->perez_Y, 0, theta); + ksunsky->zenith_x /= sky_perez_function(ksunsky->perez_x, 0, theta); + ksunsky->zenith_y /= sky_perez_function(ksunsky->perez_y, 0, theta); +} + +SkyTextureNode::SkyTextureNode() +: ShaderNode("sky_texture") +{ + sun_direction = make_float3(0.0f, 0.0f, 1.0f); + turbidity = 2.2f; + + add_input("Vector", SHADER_SOCKET_VECTOR, ShaderInput::POSITION); + add_output("Color", SHADER_SOCKET_COLOR); +} + +void SkyTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + + if(compiler.sunsky) { + sky_texture_precompute(compiler.sunsky, sun_direction, turbidity); + compiler.sunsky = NULL; + } + + if(vector_in->link) + compiler.stack_assign(vector_in); + compiler.stack_assign(color_out); + compiler.add_node(NODE_TEX_SKY, vector_in->stack_offset, color_out->stack_offset); +} + +void SkyTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter_vector("sun_direction", sun_direction); + compiler.parameter("turbidity", turbidity); + compiler.add(this, "node_sky_texture"); +} + +/* Noise Texture */ + +NoiseTextureNode::NoiseTextureNode() +: ShaderNode("noise_texture") +{ + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_output("Color", SHADER_SOCKET_COLOR); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void NoiseTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + ShaderOutput *fac_out = output("Fac"); + + if(!color_out->links.empty()) { + compiler.stack_assign(vector_in); + compiler.stack_assign(color_out); + compiler.add_node(NODE_TEX_NOISE_V, vector_in->stack_offset, color_out->stack_offset); + } + + if(!fac_out->links.empty()) { + compiler.stack_assign(vector_in); + compiler.stack_assign(fac_out); + compiler.add_node(NODE_TEX_NOISE_F, vector_in->stack_offset, fac_out->stack_offset); + } +} + +void NoiseTextureNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_noise_texture"); +} + +/* Blend Texture */ + +static ShaderEnum blend_progression_init() +{ + ShaderEnum enm; + + enm.insert("Linear", NODE_BLEND_LINEAR); + enm.insert("Quadratic", NODE_BLEND_QUADRATIC); + enm.insert("Easing", NODE_BLEND_EASING); + enm.insert("Diagonal", NODE_BLEND_DIAGONAL); + enm.insert("Radial", NODE_BLEND_RADIAL); + enm.insert("Quadratic Sphere", NODE_BLEND_QUADRATIC_SPHERE); + enm.insert("Spherical", NODE_BLEND_SPHERICAL); + + return enm; +} + +static ShaderEnum blend_axis_init() +{ + ShaderEnum enm; + + enm.insert("Horizontal", NODE_BLEND_HORIZONTAL); + enm.insert("Vertical", NODE_BLEND_VERTICAL); + + return enm; +} + +ShaderEnum BlendTextureNode::progression_enum = blend_progression_init(); +ShaderEnum BlendTextureNode::axis_enum = blend_axis_init(); + +BlendTextureNode::BlendTextureNode() +: ShaderNode("blend_texture") +{ + progression = ustring("Linear"); + axis = ustring("Horizontal"); + + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void BlendTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *fac_out = output("Fac"); + + if(vector_in->link) compiler.stack_assign(vector_in); + + compiler.stack_assign(fac_out); + compiler.add_node(NODE_TEX_BLEND, + compiler.encode_uchar4(progression_enum[progression], axis_enum[axis]), + vector_in->stack_offset, fac_out->stack_offset); +} + +void BlendTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Progression", progression); + compiler.parameter("Axis", axis); + compiler.add(this, "node_blend_texture"); +} + +/* Clouds Texture */ + +static ShaderEnum noise_basis_init() +{ + ShaderEnum enm; + + enm.insert("Perlin", NODE_NOISE_PERLIN); + enm.insert("Voronoi F1", NODE_NOISE_VORONOI_F1); + enm.insert("Voronoi F2", NODE_NOISE_VORONOI_F2); + enm.insert("Voronoi F3", NODE_NOISE_VORONOI_F3); + enm.insert("Voronoi F4", NODE_NOISE_VORONOI_F4); + enm.insert("Voronoi F2-F1", NODE_NOISE_VORONOI_F2_F1); + enm.insert("Voronoi Crackle", NODE_NOISE_VORONOI_CRACKLE); + enm.insert("Cell Noise", NODE_NOISE_CELL_NOISE); + + return enm; +} + +ShaderEnum CloudsTextureNode::basis_enum = noise_basis_init(); + +CloudsTextureNode::CloudsTextureNode() +: ShaderNode("clouds_texture") +{ + basis = ustring("Perlin"); + hard = false; + depth = 2; + + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Color", SHADER_SOCKET_COLOR); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void CloudsTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *size_in = input("Size"); + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + ShaderOutput *fac_out = output("Fac"); + + if(vector_in->link) compiler.stack_assign(vector_in); + if(size_in->link) compiler.stack_assign(size_in); + + compiler.stack_assign(color_out); + compiler.stack_assign(fac_out); + + compiler.add_node(NODE_TEX_CLOUDS, + compiler.encode_uchar4(basis_enum[basis], hard, depth), + compiler.encode_uchar4(size_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset), + __float_as_int(size_in->value.x)); +} + +void CloudsTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Hard", (hard)? 1: 0); + compiler.parameter("Depth", depth); + compiler.parameter("Basis", basis); + compiler.add(this, "node_clouds_texture"); +} + +/* Voronoi Texture */ + +static ShaderEnum distance_metric_init() +{ + ShaderEnum enm; + + enm.insert("Distance Squared", NODE_VORONOI_DISTANCE_SQUARED); + enm.insert("Actual Distance", NODE_VORONOI_ACTUAL_DISTANCE); + enm.insert("Manhattan", NODE_VORONOI_MANHATTAN); + enm.insert("Chebychev", NODE_VORONOI_CHEBYCHEV); + enm.insert("Minkovsky 1/2", NODE_VORONOI_MINKOVSKY_H); + enm.insert("Minkovsky 4", NODE_VORONOI_MINKOVSKY_4); + enm.insert("Minkovsky", NODE_VORONOI_MINKOVSKY); + + return enm; +} + +static ShaderEnum voronoi_coloring_init() +{ + ShaderEnum enm; + + enm.insert("Intensity", NODE_VORONOI_INTENSITY); + enm.insert("Position", NODE_VORONOI_POSITION); + enm.insert("Position and Outline", NODE_VORONOI_POSITION_OUTLINE); + enm.insert("Position, Outline, and Intensity", NODE_VORONOI_POSITION_OUTLINE_INTENSITY); + + return enm; +} + +ShaderEnum VoronoiTextureNode::distance_metric_enum = distance_metric_init(); +ShaderEnum VoronoiTextureNode::coloring_enum = voronoi_coloring_init(); + +VoronoiTextureNode::VoronoiTextureNode() +: ShaderNode("voronoi_texture") +{ + distance_metric = ustring("Actual Distance"); + coloring = ustring("Intensity"); + + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Weight1", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Weight2", SHADER_SOCKET_FLOAT, 0.0f); + add_input("Weight3", SHADER_SOCKET_FLOAT, 0.0f); + add_input("Weight4", SHADER_SOCKET_FLOAT, 0.0f); + add_input("Exponent", SHADER_SOCKET_FLOAT, 2.5f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Color", SHADER_SOCKET_COLOR); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void VoronoiTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *weight1_in = input("Weight1"); + ShaderInput *weight2_in = input("Weight2"); + ShaderInput *weight3_in = input("Weight3"); + ShaderInput *weight4_in = input("Weight4"); + ShaderInput *exponent_in = input("Exponent"); + ShaderInput *size_in = input("Size"); + ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); + ShaderOutput *fac_out = output("Fac"); + + if(weight1_in->link) compiler.stack_assign(weight1_in); + if(weight2_in->link) compiler.stack_assign(weight2_in); + if(weight3_in->link) compiler.stack_assign(weight3_in); + if(weight4_in->link) compiler.stack_assign(weight4_in); + if(exponent_in->link) compiler.stack_assign(exponent_in); + if(vector_in->link) compiler.stack_assign(vector_in); + if(size_in->link) compiler.stack_assign(size_in); + + compiler.stack_assign(color_out); + compiler.stack_assign(fac_out); + + compiler.add_node(NODE_TEX_VORONOI, + compiler.encode_uchar4(distance_metric_enum[distance_metric], coloring_enum[coloring], exponent_in->stack_offset), + compiler.encode_uchar4(size_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset), + compiler.encode_uchar4(weight1_in->stack_offset, weight2_in->stack_offset, weight3_in->stack_offset, weight4_in->stack_offset)); + compiler.add_node(__float_as_int(weight1_in->value.x), + __float_as_int(weight2_in->value.x), + __float_as_int(weight3_in->value.x), + __float_as_int(weight4_in->value.x)); + compiler.add_node(__float_as_int(exponent_in->value.x), + __float_as_int(size_in->value.x)); +} + +void VoronoiTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("DistanceMetric", distance_metric); + compiler.parameter("Coloring", coloring); + compiler.add(this, "node_voronoi_texture"); +} + +/* Musgrave Texture */ + +static ShaderEnum musgrave_type_init() +{ + ShaderEnum enm; + + enm.insert("Multifractal", NODE_MUSGRAVE_MULTIFRACTAL); + enm.insert("fBM", NODE_MUSGRAVE_FBM); + enm.insert("Hybrid Multifractal", NODE_MUSGRAVE_HYBRID_MULTIFRACTAL); + enm.insert("Ridged Multifractal", NODE_MUSGRAVE_RIDGED_MULTIFRACTAL); + enm.insert("Hetero Terrain", NODE_MUSGRAVE_HETERO_TERRAIN); + + return enm; +} + +ShaderEnum MusgraveTextureNode::type_enum = musgrave_type_init(); +ShaderEnum MusgraveTextureNode::basis_enum = noise_basis_init(); + +MusgraveTextureNode::MusgraveTextureNode() +: ShaderNode("musgrave_texture") +{ + type = ustring("fBM"); + basis = ustring("Perlin"); + + add_input("Dimension", SHADER_SOCKET_FLOAT, 2.0f); + add_input("Lacunarity", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Octaves", SHADER_SOCKET_FLOAT, 2.0f); + add_input("Offset", SHADER_SOCKET_FLOAT, 0.0f); + add_input("Gain", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void MusgraveTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderInput *dimension_in = input("Dimension"); + ShaderInput *lacunarity_in = input("Lacunarity"); + ShaderInput *octaves_in = input("Octaves"); + ShaderInput *offset_in = input("Offset"); + ShaderInput *gain_in = input("Gain"); + ShaderInput *size_in = input("Size"); + ShaderOutput *fac_out = output("Fac"); + + if(vector_in->link) compiler.stack_assign(vector_in); + if(dimension_in->link) compiler.stack_assign(dimension_in); + if(lacunarity_in->link) compiler.stack_assign(lacunarity_in); + if(octaves_in->link) compiler.stack_assign(octaves_in); + if(offset_in->link) compiler.stack_assign(offset_in); + if(gain_in->link) compiler.stack_assign(gain_in); + if(size_in->link) compiler.stack_assign(size_in); + + compiler.stack_assign(fac_out); + compiler.add_node(NODE_TEX_MUSGRAVE, + compiler.encode_uchar4(type_enum[type], basis_enum[basis], vector_in->stack_offset, fac_out->stack_offset), + compiler.encode_uchar4(dimension_in->stack_offset, lacunarity_in->stack_offset, octaves_in->stack_offset, offset_in->stack_offset), + compiler.encode_uchar4(gain_in->stack_offset, size_in->stack_offset)); + compiler.add_node(__float_as_int(dimension_in->value.x), + __float_as_int(lacunarity_in->value.x), + __float_as_int(octaves_in->value.x), + __float_as_int(offset_in->value.x)); + compiler.add_node(__float_as_int(gain_in->value.x), + __float_as_int(size_in->value.x)); +} + +void MusgraveTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Type", type); + compiler.parameter("Basis", basis); + + compiler.add(this, "node_musgrave_texture"); +} + +/* Marble Texture */ + +static ShaderEnum marble_type_init() +{ + ShaderEnum enm; + + enm.insert("Soft", NODE_MARBLE_SOFT); + enm.insert("Sharp", NODE_MARBLE_SHARP); + enm.insert("Sharper", NODE_MARBLE_SHARPER); + + return enm; +} + +static ShaderEnum noise_wave_init() +{ + ShaderEnum enm; + + enm.insert("Sine", NODE_WAVE_SINE); + enm.insert("Saw", NODE_WAVE_SAW); + enm.insert("Tri", NODE_WAVE_TRI); + + return enm; +} + +ShaderEnum MarbleTextureNode::type_enum = marble_type_init(); +ShaderEnum MarbleTextureNode::wave_enum = noise_wave_init(); +ShaderEnum MarbleTextureNode::basis_enum = noise_basis_init(); + +MarbleTextureNode::MarbleTextureNode() +: ShaderNode("marble_texture") +{ + type = ustring("Soft"); + wave = ustring("Sine"); + basis = ustring("Perlin"); + hard = false; + depth = 2; + + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void MarbleTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *size_in = input("Size"); + ShaderInput *turbulence_in = input("Turbulence"); + ShaderInput *vector_in = input("Vector"); + ShaderOutput *fac_out = output("Fac"); + + if(size_in->link) compiler.stack_assign(size_in); + if(turbulence_in->link) compiler.stack_assign(turbulence_in); + if(vector_in->link) compiler.stack_assign(vector_in); + + compiler.stack_assign(fac_out); + compiler.add_node(NODE_TEX_MARBLE, + compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), + compiler.encode_uchar4(depth), + compiler.encode_uchar4(size_in->stack_offset, turbulence_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset)); + compiler.add_node(__float_as_int(size_in->value.x), __float_as_int(turbulence_in->value.x)); +} + +void MarbleTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Type", type); + compiler.parameter("Wave", wave); + compiler.parameter("Basis", basis); + compiler.parameter("Hard", (hard)? 1: 0); + compiler.parameter("Depth", depth); + + compiler.add(this, "node_marble_texture"); +} + +/* Magic Texture */ + +MagicTextureNode::MagicTextureNode() +: ShaderNode("magic_texture") +{ + depth = 2; + + add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_output("Color", SHADER_SOCKET_COLOR); +} + +void MagicTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderInput *turbulence_in = input("Turbulence"); + ShaderOutput *color_out = output("Color"); + + if(vector_in->link) compiler.stack_assign(vector_in); + if(turbulence_in->link) compiler.stack_assign(turbulence_in); + + compiler.stack_assign(color_out); + compiler.add_node(NODE_TEX_MAGIC, + compiler.encode_uchar4(depth, turbulence_in->stack_offset, vector_in->stack_offset, color_out->stack_offset), + __float_as_int(turbulence_in->value.x)); +} + +void MagicTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Depth", depth); + compiler.add(this, "node_magic_texture"); +} + +/* Stucci Texture */ + +static ShaderEnum stucci_type_init() +{ + ShaderEnum enm; + + enm.insert("Plastic", NODE_STUCCI_PLASTIC); + enm.insert("Wall In", NODE_STUCCI_WALL_IN); + enm.insert("Wall Out", NODE_STUCCI_WALL_OUT); + + return enm; +} + +ShaderEnum StucciTextureNode::type_enum = stucci_type_init(); +ShaderEnum StucciTextureNode::basis_enum = noise_basis_init(); + +StucciTextureNode::StucciTextureNode() +: ShaderNode("stucci_texture") +{ + type = ustring("Plastic"); + basis = ustring("Perlin"); + hard = false; + + add_input("Size", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Turbulence", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void StucciTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *size_in = input("Size"); + ShaderInput *turbulence_in = input("Turbulence"); + ShaderInput *vector_in = input("Vector"); + ShaderOutput *fac_out = output("Fac"); + + if(size_in->link) compiler.stack_assign(size_in); + if(turbulence_in->link) compiler.stack_assign(turbulence_in); + if(vector_in->link) compiler.stack_assign(vector_in); + + compiler.stack_assign(fac_out); + + compiler.add_node(NODE_TEX_STUCCI, + compiler.encode_uchar4(type_enum[type], basis_enum[basis], hard), + compiler.encode_uchar4(size_in->stack_offset, turbulence_in->stack_offset, + vector_in->stack_offset, fac_out->stack_offset)); + compiler.add_node(__float_as_int(size_in->value.x), + __float_as_int(turbulence_in->value.x)); +} + +void StucciTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Type", type); + compiler.parameter("Basis", basis); + compiler.parameter("Hard", (hard)? 1: 0); + compiler.add(this, "node_stucci_texture"); +} + +/* Distorted Noise Texture */ + +ShaderEnum DistortedNoiseTextureNode::basis_enum = noise_basis_init(); + +DistortedNoiseTextureNode::DistortedNoiseTextureNode() +: ShaderNode("distorted_noise_texture") +{ + basis = ustring("Perlin"); + distortion_basis = ustring("Perlin"); + + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Distortion", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void DistortedNoiseTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *size_in = input("Size"); + ShaderInput *distortion_in = input("Distortion"); + ShaderInput *vector_in = input("Vector"); + ShaderOutput *fac_out = output("Fac"); + + if(size_in->link) compiler.stack_assign(size_in); + if(distortion_in->link) compiler.stack_assign(distortion_in); + if(vector_in->link) compiler.stack_assign(vector_in); + + compiler.stack_assign(fac_out); + + compiler.add_node(NODE_TEX_DISTORTED_NOISE, + compiler.encode_uchar4(basis_enum[basis], basis_enum[distortion_basis]), + compiler.encode_uchar4(size_in->stack_offset, distortion_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset)); + compiler.add_node(__float_as_int(size_in->value.x), + __float_as_int(distortion_in->value.x)); +} + +void DistortedNoiseTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Basis", basis); + compiler.parameter("DistortionBasis", distortion_basis); + compiler.add(this, "node_distorted_noise_texture"); +} + +/* Wood Texture */ + +static ShaderEnum wood_type_init() +{ + ShaderEnum enm; + + enm.insert("Bands", NODE_WOOD_BANDS); + enm.insert("Rings", NODE_WOOD_RINGS); + enm.insert("Band Noise", NODE_WOOD_BAND_NOISE); + enm.insert("Ring Noise", NODE_WOOD_RING_NOISE); + + return enm; +} + +ShaderEnum WoodTextureNode::type_enum = wood_type_init(); +ShaderEnum WoodTextureNode::wave_enum = noise_wave_init(); +ShaderEnum WoodTextureNode::basis_enum = noise_basis_init(); + +WoodTextureNode::WoodTextureNode() +: ShaderNode("wood_texture") +{ + type = ustring("Bands"); + wave = ustring("Sine"); + basis = ustring("Perlin"); + hard = false; + + add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); + add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void WoodTextureNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderInput *size_in = input("Size"); + ShaderInput *turbulence_in = input("Turbulence"); + ShaderOutput *fac_out = output("Fac"); + + if(vector_in->link) compiler.stack_assign(vector_in); + if(size_in->link) compiler.stack_assign(size_in); + if(turbulence_in->link) compiler.stack_assign(turbulence_in); + + compiler.stack_assign(fac_out); + compiler.add_node(NODE_TEX_WOOD, + compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), + compiler.encode_uchar4(vector_in->stack_offset, size_in->stack_offset, turbulence_in->stack_offset, fac_out->stack_offset)); + compiler.add_node(NODE_TEX_WOOD, make_float3(size_in->value.x, turbulence_in->value.x, 0.0f)); +} + +void WoodTextureNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("Type", type); + compiler.parameter("Wave", wave); + compiler.parameter("Basis", basis); + compiler.parameter("Hard", (hard)? 1: 0); + compiler.add(this, "node_wood_texture"); +} + +/* Mapping */ + +MappingNode::MappingNode() +: ShaderNode("mapping") +{ + add_input("Vector", SHADER_SOCKET_POINT); + add_output("Vector", SHADER_SOCKET_POINT); + + translation = make_float3(0.0f, 0.0f, 0.0f); + rotation = make_float3(0.0f, 0.0f, 0.0f); + scale = make_float3(1.0f, 1.0f, 1.0f); +} + +Transform MappingNode::compute_transform() +{ + Transform smat = transform_scale(scale); + Transform rmat = transform_euler(rotation); + Transform tmat = transform_translate(translation); + + return tmat*rmat*smat; +} + +void MappingNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector_in = input("Vector"); + ShaderOutput *vector_out = output("Vector"); + + compiler.stack_assign(vector_in); + compiler.stack_assign(vector_out); + + compiler.add_node(NODE_MAPPING, vector_in->stack_offset, vector_out->stack_offset); + + Transform tfm = compute_transform(); + compiler.add_node(tfm.x); + compiler.add_node(tfm.y); + compiler.add_node(tfm.z); + compiler.add_node(tfm.w); +} + +void MappingNode::compile(OSLCompiler& compiler) +{ + Transform tfm = transform_transpose(compute_transform()); + compiler.parameter("Matrix", tfm); + + compiler.add(this, "node_mapping"); +} + +/* Convert */ + +ConvertNode::ConvertNode(ShaderSocketType from_, ShaderSocketType to_) +: ShaderNode("convert") +{ + from = from_; + to = to_; + + assert(from != to); + + if(from == SHADER_SOCKET_FLOAT) + add_input("Val", SHADER_SOCKET_FLOAT); + else if(from == SHADER_SOCKET_COLOR) + add_input("Color", SHADER_SOCKET_COLOR); + else if(from == SHADER_SOCKET_VECTOR) + add_input("Vector", SHADER_SOCKET_VECTOR); + else if(from == SHADER_SOCKET_POINT) + add_input("Point", SHADER_SOCKET_POINT); + else if(from == SHADER_SOCKET_NORMAL) + add_input("Normal", SHADER_SOCKET_NORMAL); + else + assert(0); + + if(to == SHADER_SOCKET_FLOAT) + add_output("Val", SHADER_SOCKET_FLOAT); + else if(to == SHADER_SOCKET_COLOR) + add_output("Color", SHADER_SOCKET_COLOR); + else if(to == SHADER_SOCKET_VECTOR) + add_output("Vector", SHADER_SOCKET_VECTOR); + else if(to == SHADER_SOCKET_POINT) + add_output("Point", SHADER_SOCKET_POINT); + else if(to == SHADER_SOCKET_NORMAL) + add_output("Normal", SHADER_SOCKET_NORMAL); + else + assert(0); +} + +void ConvertNode::compile(SVMCompiler& compiler) +{ + ShaderInput *in = inputs[0]; + ShaderOutput *out = outputs[0]; + + if(to == SHADER_SOCKET_FLOAT) { + compiler.stack_assign(in); + compiler.stack_assign(out); + + if(from == SHADER_SOCKET_COLOR) + /* color to float */ + compiler.add_node(NODE_CONVERT, NODE_CONVERT_CF, in->stack_offset, out->stack_offset); + else + /* vector/point/normal to float */ + compiler.add_node(NODE_CONVERT, NODE_CONVERT_VF, in->stack_offset, out->stack_offset); + } + else if(from == SHADER_SOCKET_FLOAT) { + compiler.stack_assign(in); + compiler.stack_assign(out); + + /* float to float3 */ + compiler.add_node(NODE_CONVERT, NODE_CONVERT_FV, in->stack_offset, out->stack_offset); + } + else { + /* float3 to float3 */ + if(in->link) { + /* no op in SVM */ + compiler.stack_link(in, out); + } + else { + /* set 0,0,0 value */ + compiler.stack_assign(in); + compiler.stack_assign(out); + + compiler.add_node(NODE_VALUE_V, in->stack_offset); + compiler.add_node(NODE_VALUE_V, in->value); + } + } +} + +void ConvertNode::compile(OSLCompiler& compiler) +{ + if(from == SHADER_SOCKET_FLOAT) + compiler.add(this, "node_convert_from_float"); + else if(from == SHADER_SOCKET_COLOR) + compiler.add(this, "node_convert_from_color"); + else if(from == SHADER_SOCKET_VECTOR) + compiler.add(this, "node_convert_from_vector"); + else if(from == SHADER_SOCKET_POINT) + compiler.add(this, "node_convert_from_point"); + else if(from == SHADER_SOCKET_NORMAL) + compiler.add(this, "node_convert_from_normal"); + else + assert(0); +} + +/* BSDF Closure */ + +BsdfNode::BsdfNode() +: ShaderNode("bsdf") +{ + closure = ccl::CLOSURE_BSDF_DIFFUSE_ID; + + add_input("Color", SHADER_SOCKET_COLOR, make_float3(0.8f, 0.8f, 0.8f)); + add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); + + add_output("BSDF", SHADER_SOCKET_CLOSURE); +} + +void BsdfNode::compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput *param2) +{ + ShaderInput *color_in = input("Color"); + + if(color_in->link) { + compiler.stack_assign(color_in); + compiler.add_node(NODE_CLOSURE_WEIGHT, color_in->stack_offset); + } + else + compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value); + + compiler.add_node(NODE_CLOSURE_BSDF, + closure, + (param1)? __float_as_int(param1->value.x): 0.0f, + (param2)? __float_as_int(param2->value.x): 0.0f); +} + +void BsdfNode::compile(SVMCompiler& compiler) +{ + compile(compiler, NULL, NULL); +} + +void BsdfNode::compile(OSLCompiler& compiler) +{ + assert(0); +} + +/* Ward BSDF Closure */ + +WardBsdfNode::WardBsdfNode() +{ + closure = CLOSURE_BSDF_WARD_ID; + + add_input("Roughness U", SHADER_SOCKET_FLOAT, 0.2f); + add_input("Roughness V", SHADER_SOCKET_FLOAT, 0.2f); +} + +void WardBsdfNode::compile(SVMCompiler& compiler) +{ + BsdfNode::compile(compiler, input("Roughness U"), input("Roughness V")); +} + +void WardBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_ward_bsdf"); +} + +/* Glossy BSDF Closure */ + +static ShaderEnum glossy_distribution_init() +{ + ShaderEnum enm; + + enm.insert("Sharp", CLOSURE_BSDF_REFLECTION_ID); + enm.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ID); + enm.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_ID); + + return enm; +} + +ShaderEnum GlossyBsdfNode::distribution_enum = glossy_distribution_init(); + +GlossyBsdfNode::GlossyBsdfNode() +{ + distribution = ustring("Beckmann"); + + add_input("Roughness", SHADER_SOCKET_FLOAT, 0.2f); + add_input("Fresnel", SHADER_SOCKET_FLOAT, 1.0f); +} + +void GlossyBsdfNode::compile(SVMCompiler& compiler) +{ + closure = (ClosureType)distribution_enum[distribution]; + + if(closure == CLOSURE_BSDF_REFLECTION_ID) + BsdfNode::compile(compiler, NULL, input("Fresnel")); + else + BsdfNode::compile(compiler, input("Roughness"), input("Fresnel")); +} + +void GlossyBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("distribution", distribution); + compiler.add(this, "node_glossy_bsdf"); +} + +/* Glass BSDF Closure */ + +static ShaderEnum glass_distribution_init() +{ + ShaderEnum enm; + + enm.insert("Sharp", CLOSURE_BSDF_REFRACTION_ID); + enm.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID); + enm.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID); + + return enm; +} + +ShaderEnum GlassBsdfNode::distribution_enum = glass_distribution_init(); + +GlassBsdfNode::GlassBsdfNode() +{ + distribution = ustring("Sharp"); + + add_input("Roughness", SHADER_SOCKET_FLOAT, 0.2f); + add_input("Fresnel", SHADER_SOCKET_FLOAT, 0.3f); +} + +void GlassBsdfNode::compile(SVMCompiler& compiler) +{ + closure = (ClosureType)distribution_enum[distribution]; + + if(closure == CLOSURE_BSDF_REFRACTION_ID) + BsdfNode::compile(compiler, NULL, input("Fresnel")); + else + BsdfNode::compile(compiler, input("Roughness"), input("Fresnel")); +} + +void GlassBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("distribution", distribution); + compiler.add(this, "node_glass_bsdf"); +} + +/* Velvet BSDF Closure */ + +VelvetBsdfNode::VelvetBsdfNode() +{ + closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; + + add_input("Sigma", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Fresnel", SHADER_SOCKET_FLOAT, 1.0f); +} + +void VelvetBsdfNode::compile(SVMCompiler& compiler) +{ + BsdfNode::compile(compiler, input("Sigma"), input("Fresnel")); +} + +void VelvetBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_velvet_bsdf"); +} + +/* Diffuse BSDF Closure */ + +DiffuseBsdfNode::DiffuseBsdfNode() +{ + closure = CLOSURE_BSDF_DIFFUSE_ID; +} + +void DiffuseBsdfNode::compile(SVMCompiler& compiler) +{ + BsdfNode::compile(compiler, NULL, NULL); +} + +void DiffuseBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_diffuse_bsdf"); +} + +/* Translucent BSDF Closure */ + +TranslucentBsdfNode::TranslucentBsdfNode() +{ + closure = CLOSURE_BSDF_TRANSLUCENT_ID; +} + +void TranslucentBsdfNode::compile(SVMCompiler& compiler) +{ + BsdfNode::compile(compiler, NULL, NULL); +} + +void TranslucentBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_translucent_bsdf"); +} + +/* Transparent BSDF Closure */ + +TransparentBsdfNode::TransparentBsdfNode() +{ + closure = CLOSURE_BSDF_TRANSPARENT_ID; +} + +void TransparentBsdfNode::compile(SVMCompiler& compiler) +{ + BsdfNode::compile(compiler, NULL, NULL); +} + +void TransparentBsdfNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_transparent_bsdf"); +} + +/* Emissive Closure */ + +EmissionNode::EmissionNode() +: ShaderNode("emission") +{ + total_power = false; + + add_input("Color", SHADER_SOCKET_COLOR, make_float3(0.8f, 0.8f, 0.8f)); + add_input("Strength", SHADER_SOCKET_FLOAT, 10.0f); + add_output("Emission", SHADER_SOCKET_CLOSURE); +} + +void EmissionNode::compile(SVMCompiler& compiler) +{ + compiler.add_node(NODE_CLOSURE_EMISSION, CLOSURE_EMISSION_ID); + + ShaderInput *color_in = input("Color"); + ShaderInput *strength_in = input("Strength"); + + if(color_in->link || strength_in->link) { + compiler.stack_assign(color_in); + compiler.stack_assign(strength_in); + compiler.add_node(NODE_EMISSION_WEIGHT, color_in->stack_offset, strength_in->stack_offset, total_power? 1: 0); + } + else if(total_power) + compiler.add_node(NODE_EMISSION_SET_WEIGHT_TOTAL, color_in->value * strength_in->value.x); + else + compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value * strength_in->value.x); +} + +void EmissionNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("TotalPower", (total_power)? 1: 0); + compiler.add(this, "node_emission"); +} + +/* Background Closure */ + +BackgroundNode::BackgroundNode() +: ShaderNode("background") +{ + add_input("Color", SHADER_SOCKET_COLOR, make_float3(0.8f, 0.8f, 0.8f)); + add_input("Strength", SHADER_SOCKET_FLOAT, 1.0f); + add_output("Background", SHADER_SOCKET_CLOSURE); +} + +void BackgroundNode::compile(SVMCompiler& compiler) +{ + compiler.add_node(NODE_CLOSURE_BACKGROUND, CLOSURE_BACKGROUND_ID); + + ShaderInput *color_in = input("Color"); + ShaderInput *strength_in = input("Strength"); + + if(color_in->link || strength_in->link) { + compiler.stack_assign(color_in); + compiler.stack_assign(strength_in); + compiler.add_node(NODE_EMISSION_WEIGHT, color_in->stack_offset, strength_in->stack_offset); + } + else + compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value*strength_in->value.x); +} + +void BackgroundNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_background"); +} + +/* Geometry */ + +GeometryNode::GeometryNode() +: ShaderNode("geometry") +{ + add_input("NormalIn", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); + add_output("Position", SHADER_SOCKET_POINT); + add_output("Normal", SHADER_SOCKET_NORMAL); + add_output("Tangent", SHADER_SOCKET_NORMAL); + add_output("True Normal", SHADER_SOCKET_NORMAL); + add_output("Incoming", SHADER_SOCKET_VECTOR); + add_output("UV", SHADER_SOCKET_POINT); + add_output("Backfacing", SHADER_SOCKET_FLOAT); +} + +void GeometryNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *out; + NodeType geom_node = NODE_GEOMETRY; + + if(bump == SHADER_BUMP_DX) + geom_node = NODE_GEOMETRY_BUMP_DX; + else if(bump == SHADER_BUMP_DY) + geom_node = NODE_GEOMETRY_BUMP_DY; + + out = output("Position"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_P, out->stack_offset); + } + + out = output("Normal"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_N, out->stack_offset); + } + + out = output("Tangent"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_T, out->stack_offset); + } + + out = output("True Normal"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_Ng, out->stack_offset); + } + + out = output("Incoming"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_I, out->stack_offset); + } + + out = output("UV"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_uv, out->stack_offset); + } + + out = output("Backfacing"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_backfacing, out->stack_offset); + } +} + +void GeometryNode::compile(OSLCompiler& compiler) +{ + if(bump == SHADER_BUMP_DX) + compiler.parameter("bump_offset", "dx"); + else if(bump == SHADER_BUMP_DY) + compiler.parameter("bump_offset", "dy"); + else + compiler.parameter("bump_offset", "center"); + + compiler.add(this, "node_geometry"); +} + +/* TextureCoordinate */ + +TextureCoordinateNode::TextureCoordinateNode() +: ShaderNode("texture_coordinate") +{ + add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); + add_output("Generated", SHADER_SOCKET_POINT); + add_output("UV", SHADER_SOCKET_POINT); + add_output("Object", SHADER_SOCKET_POINT); + add_output("Camera", SHADER_SOCKET_POINT); + add_output("Window", SHADER_SOCKET_POINT); + add_output("Reflection", SHADER_SOCKET_NORMAL); +} + +void TextureCoordinateNode::attributes(AttributeRequestSet *attributes) +{ + if(!output("Generated")->links.empty()) + attributes->add(Attribute::STD_GENERATED); + if(!output("UV")->links.empty()) + attributes->add(Attribute::STD_UV); + + ShaderNode::attributes(attributes); +} + +void TextureCoordinateNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *out; + NodeType texco_node = NODE_TEX_COORD; + NodeType attr_node = NODE_ATTR; + NodeType geom_node = NODE_GEOMETRY; + + if(bump == SHADER_BUMP_DX) { + texco_node = NODE_TEX_COORD_BUMP_DX; + attr_node = NODE_ATTR_BUMP_DX; + geom_node = NODE_GEOMETRY_BUMP_DX; + } + else if(bump == SHADER_BUMP_DY) { + texco_node = NODE_TEX_COORD_BUMP_DY; + attr_node = NODE_ATTR_BUMP_DY; + geom_node = NODE_GEOMETRY_BUMP_DY; + } + + out = output("Generated"); + if(!out->links.empty()) { + if(compiler.background) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_P, out->stack_offset); + } + else { + int attr = compiler.attribute(Attribute::STD_GENERATED); + compiler.stack_assign(out); + compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3); + } + } + + out = output("UV"); + if(!out->links.empty()) { + int attr = compiler.attribute(Attribute::STD_UV); + compiler.stack_assign(out); + compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3); + } + + out = output("Object"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(texco_node, NODE_TEXCO_OBJECT, out->stack_offset); + } + + out = output("Camera"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(texco_node, NODE_TEXCO_CAMERA, out->stack_offset); + } + + out = output("Window"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(texco_node, NODE_TEXCO_WINDOW, out->stack_offset); + } + + out = output("Reflection"); + if(!out->links.empty()) { + if(compiler.background) { + compiler.stack_assign(out); + compiler.add_node(geom_node, NODE_GEOM_I, out->stack_offset); + } + else { + compiler.stack_assign(out); + compiler.add_node(texco_node, NODE_TEXCO_REFLECTION, out->stack_offset); + } + } +} + +void TextureCoordinateNode::compile(OSLCompiler& compiler) +{ + if(bump == SHADER_BUMP_DX) + compiler.parameter("bump_offset", "dx"); + else if(bump == SHADER_BUMP_DY) + compiler.parameter("bump_offset", "dy"); + else + compiler.parameter("bump_offset", "center"); + + if(compiler.background) + compiler.parameter("is_background", true); + + compiler.add(this, "node_texture_coordinate"); +} + +/* Light Path */ + +LightPathNode::LightPathNode() +: ShaderNode("light_path") +{ + add_output("Is Camera Ray", SHADER_SOCKET_FLOAT); + add_output("Is Shadow Ray", SHADER_SOCKET_FLOAT); + add_output("Is Diffuse Ray", SHADER_SOCKET_FLOAT); + add_output("Is Glossy Ray", SHADER_SOCKET_FLOAT); + add_output("Is Reflection Ray", SHADER_SOCKET_FLOAT); + add_output("Is Transmission Ray", SHADER_SOCKET_FLOAT); +} + +void LightPathNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *out; + + out = output("Is Camera Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_camera, out->stack_offset); + } + + out = output("Is Shadow Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_shadow, out->stack_offset); + } + + out = output("Is Diffuse Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_diffuse, out->stack_offset); + } + + out = output("Is Glossy Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_glossy, out->stack_offset); + } + + out = output("Is Reflection Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_reflection, out->stack_offset); + } + + out = output("Is Transmission Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_transmission, out->stack_offset); + } +} + +void LightPathNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_light_path"); +} + +/* Value */ + +ValueNode::ValueNode() +: ShaderNode("value") +{ + value = 0.0f; + + add_output("Value", SHADER_SOCKET_FLOAT); +} + +void ValueNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *val_out = output("Value"); + + compiler.stack_assign(val_out); + compiler.add_node(NODE_VALUE_F, __float_as_int(value), val_out->stack_offset); +} + +void ValueNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("value_value", value); + compiler.add(this, "node_value"); +} + +/* Color */ + +ColorNode::ColorNode() +: ShaderNode("color") +{ + value = make_float3(0.0f, 0.0f, 0.0f); + + add_output("Color", SHADER_SOCKET_COLOR); +} + +void ColorNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *color_out = output("Color"); + + if(color_out && !color_out->links.empty()) { + compiler.stack_assign(color_out); + compiler.add_node(NODE_VALUE_V, color_out->stack_offset); + compiler.add_node(NODE_VALUE_V, value); + } +} + +void ColorNode::compile(OSLCompiler& compiler) +{ + compiler.parameter_color("color_value", value); + + compiler.add(this, "node_value"); +} + +/* Add Closure */ + +AddClosureNode::AddClosureNode() +: ShaderNode("add_closure") +{ + add_input("Closure1", SHADER_SOCKET_CLOSURE); + add_input("Closure2", SHADER_SOCKET_CLOSURE); + add_output("Closure", SHADER_SOCKET_CLOSURE); +} + +void AddClosureNode::compile(SVMCompiler& compiler) +{ + /* handled in the SVM compiler */ +} + +void AddClosureNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_add_closure"); +} + +/* Mix Closure */ + +MixClosureNode::MixClosureNode() +: ShaderNode("mix_closure") +{ + add_input("Fac", SHADER_SOCKET_FLOAT, 0.5f); + add_input("Closure1", SHADER_SOCKET_CLOSURE); + add_input("Closure2", SHADER_SOCKET_CLOSURE); + add_output("Closure", SHADER_SOCKET_CLOSURE); +} + +void MixClosureNode::compile(SVMCompiler& compiler) +{ + /* handled in the SVM compiler */ +} + +void MixClosureNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_mix_closure"); +} + +/* Mix */ + +MixNode::MixNode() +: ShaderNode("mix") +{ + type = ustring("Mix"); + + add_input("Fac", SHADER_SOCKET_FLOAT, 0.5f); + add_input("Color1", SHADER_SOCKET_COLOR); + add_input("Color2", SHADER_SOCKET_COLOR); + add_output("Color", SHADER_SOCKET_COLOR); +} + +static ShaderEnum mix_type_init() +{ + ShaderEnum enm; + + enm.insert("Mix", NODE_MIX_BLEND); + enm.insert("Add", NODE_MIX_ADD); + enm.insert("Multiply", NODE_MIX_MUL); + enm.insert("Screen", NODE_MIX_SCREEN); + enm.insert("Overlay", NODE_MIX_OVERLAY); + enm.insert("Subtract", NODE_MIX_SUB); + enm.insert("Divide", NODE_MIX_DIV); + enm.insert("Difference", NODE_MIX_DIFF); + enm.insert("Darken", NODE_MIX_DARK); + enm.insert("Lighten", NODE_MIX_LIGHT); + enm.insert("Dodge", NODE_MIX_DODGE); + enm.insert("Burn", NODE_MIX_BURN); + enm.insert("Hue", NODE_MIX_HUE); + enm.insert("Saturation", NODE_MIX_SAT); + enm.insert("Value", NODE_MIX_VAL ); + enm.insert("Color", NODE_MIX_COLOR); + enm.insert("Soft Light", NODE_MIX_SOFT); + enm.insert("Linear Light", NODE_MIX_LINEAR); + + return enm; +} + +ShaderEnum MixNode::type_enum = mix_type_init(); + +void MixNode::compile(SVMCompiler& compiler) +{ + ShaderInput *fac_in = input("Fac"); + ShaderInput *color1_in = input("Color1"); + ShaderInput *color2_in = input("Color2"); + ShaderOutput *color_out = output("Color"); + + compiler.stack_assign(fac_in); + compiler.stack_assign(color1_in); + compiler.stack_assign(color2_in); + compiler.stack_assign(color_out); + + 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); +} + +void MixNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("type", type); + compiler.add(this, "node_mix"); +} + +/* Attribute */ + +AttributeNode::AttributeNode() +: ShaderNode("attribute") +{ + attribute = ""; + + add_output("Color", SHADER_SOCKET_COLOR); + add_output("Vector", SHADER_SOCKET_VECTOR); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void AttributeNode::attributes(AttributeRequestSet *attributes) +{ + ShaderOutput *color_out = output("Color"); + ShaderOutput *vector_out = output("Vector"); + ShaderOutput *fac_out = output("Fac"); + + if(!color_out->links.empty() || !vector_out->links.empty() || !fac_out->links.empty()) + attributes->add(attribute); + + ShaderNode::attributes(attributes); +} + +void AttributeNode::compile(SVMCompiler& compiler) +{ + ShaderOutput *color_out = output("Color"); + ShaderOutput *vector_out = output("Vector"); + ShaderOutput *fac_out = output("Fac"); + NodeType attr_node = NODE_ATTR; + + if(bump == SHADER_BUMP_DX) + attr_node = NODE_ATTR_BUMP_DX; + else if(bump == SHADER_BUMP_DY) + attr_node = NODE_ATTR_BUMP_DY; + + if(!color_out->links.empty() || !vector_out->links.empty()) { + int attr = compiler.attribute(attribute); + + if(!color_out->links.empty()) { + compiler.stack_assign(color_out); + compiler.add_node(attr_node, attr, color_out->stack_offset, NODE_ATTR_FLOAT3); + } + if(!vector_out->links.empty()) { + compiler.stack_assign(vector_out); + compiler.add_node(attr_node, attr, vector_out->stack_offset, NODE_ATTR_FLOAT3); + } + } + + if(!fac_out->links.empty()) { + int attr = compiler.attribute(attribute); + + compiler.stack_assign(fac_out); + compiler.add_node(attr_node, attr, fac_out->stack_offset, NODE_ATTR_FLOAT); + } +} + +void AttributeNode::compile(OSLCompiler& compiler) +{ + if(bump == SHADER_BUMP_DX) + compiler.parameter("bump_offset", "dx"); + else if(bump == SHADER_BUMP_DY) + compiler.parameter("bump_offset", "dy"); + else + compiler.parameter("bump_offset", "center"); + + compiler.parameter("name", attribute.c_str()); + compiler.add(this, "node_attribute"); +} + +/* Fresnel */ + +FresnelNode::FresnelNode() +: ShaderNode("Fresnel") +{ + add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); + add_input("Fresnel", SHADER_SOCKET_FLOAT, 0.3f); + add_output("Fac", SHADER_SOCKET_FLOAT); +} + +void FresnelNode::compile(SVMCompiler& compiler) +{ + ShaderInput *fresnel_in = input("Fresnel"); + ShaderOutput *fac_out = output("Fac"); + + compiler.stack_assign(fresnel_in); + compiler.stack_assign(fac_out); + compiler.add_node(NODE_FRESNEL, fresnel_in->stack_offset, __float_as_int(fresnel_in->value.x), fac_out->stack_offset); +} + +void FresnelNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_fresnel"); +} + +/* Output */ + +OutputNode::OutputNode() +: ShaderNode("output") +{ + add_input("Surface", SHADER_SOCKET_CLOSURE); + add_input("Volume", SHADER_SOCKET_CLOSURE); + add_input("Displacement", SHADER_SOCKET_FLOAT); +} + +void OutputNode::compile(SVMCompiler& compiler) +{ + if(compiler.output_type() == SHADER_TYPE_DISPLACEMENT) { + ShaderInput *displacement_in = input("Displacement"); + + if(displacement_in->link) { + compiler.stack_assign(displacement_in); + compiler.add_node(NODE_SET_DISPLACEMENT, displacement_in->stack_offset); + } + } +} + +void OutputNode::compile(OSLCompiler& compiler) +{ + if(compiler.output_type() == SHADER_TYPE_SURFACE) + compiler.add(this, "node_output_surface"); + else if(compiler.output_type() == SHADER_TYPE_VOLUME) + compiler.add(this, "node_output_volume"); + else if(compiler.output_type() == SHADER_TYPE_DISPLACEMENT) + compiler.add(this, "node_output_displacement"); +} + +/* Math */ + +MathNode::MathNode() +: ShaderNode("math") +{ + type = ustring("Add"); + + add_input("Value1", SHADER_SOCKET_FLOAT); + add_input("Value2", SHADER_SOCKET_FLOAT); + add_output("Value", SHADER_SOCKET_FLOAT); +} + +static ShaderEnum math_type_init() +{ + ShaderEnum enm; + + enm.insert("Add", NODE_MATH_ADD); + enm.insert("Subtract", NODE_MATH_SUBTRACT); + enm.insert("Multiply", NODE_MATH_MULTIPLY); + enm.insert("Divide", NODE_MATH_DIVIDE); + enm.insert("Sine", NODE_MATH_SINE); + enm.insert("Cosine", NODE_MATH_COSINE); + enm.insert("Tangent", NODE_MATH_TANGENT); + enm.insert("Arcsine", NODE_MATH_ARCSINE); + enm.insert("Arccosine", NODE_MATH_ARCCOSINE); + enm.insert("Arctangent", NODE_MATH_ARCTANGENT); + enm.insert("Power", NODE_MATH_POWER); + enm.insert("Logarithm", NODE_MATH_LOGARITHM); + enm.insert("Minimum", NODE_MATH_MINIMUM); + enm.insert("Maximum", NODE_MATH_MAXIMUM); + enm.insert("Round", NODE_MATH_ROUND); + enm.insert("Less Than", NODE_MATH_LESS_THAN); + enm.insert("Greater Than", NODE_MATH_GREATER_THAN); + + return enm; +} + +ShaderEnum MathNode::type_enum = math_type_init(); + +void MathNode::compile(SVMCompiler& compiler) +{ + ShaderInput *value1_in = input("Value1"); + ShaderInput *value2_in = input("Value2"); + ShaderOutput *value_out = output("Value"); + + compiler.stack_assign(value1_in); + compiler.stack_assign(value2_in); + compiler.stack_assign(value_out); + + 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); +} + +void MathNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("type", type); + compiler.add(this, "node_math"); +} + +/* VectorMath */ + +VectorMathNode::VectorMathNode() +: ShaderNode("vector_math") +{ + type = ustring("Add"); + + add_input("Vector1", SHADER_SOCKET_VECTOR); + add_input("Vector2", SHADER_SOCKET_VECTOR); + add_output("Fac", SHADER_SOCKET_FLOAT); + add_output("Vector", SHADER_SOCKET_VECTOR); +} + +static ShaderEnum vector_math_type_init() +{ + ShaderEnum enm; + + enm.insert("Add", NODE_VECTOR_MATH_ADD); + enm.insert("Subtract", NODE_VECTOR_MATH_SUBTRACT); + enm.insert("Average", NODE_VECTOR_MATH_AVERAGE); + enm.insert("Dot Product", NODE_VECTOR_MATH_DOT_PRODUCT); + enm.insert("Cross Product", NODE_VECTOR_MATH_CROSS_PRODUCT); + enm.insert("Normalize", NODE_VECTOR_MATH_NORMALIZE); + + return enm; +} + +ShaderEnum VectorMathNode::type_enum = vector_math_type_init(); + +void VectorMathNode::compile(SVMCompiler& compiler) +{ + ShaderInput *vector1_in = input("Vector1"); + ShaderInput *vector2_in = input("Vector2"); + ShaderOutput *fac_out = output("Fac"); + ShaderOutput *vector_out = output("Vector"); + + compiler.stack_assign(vector1_in); + compiler.stack_assign(vector2_in); + compiler.stack_assign(fac_out); + compiler.stack_assign(vector_out); + + compiler.add_node(NODE_VECTOR_MATH, type_enum[type], vector1_in->stack_offset, vector2_in->stack_offset); + compiler.add_node(NODE_VECTOR_MATH, fac_out->stack_offset, vector_out->stack_offset); +} + +void VectorMathNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("type", type); + compiler.add(this, "node_vector_math"); +} + +/* BumpNode */ + +BumpNode::BumpNode() +: ShaderNode("bump") +{ + add_input("SampleCenter", SHADER_SOCKET_FLOAT); + add_input("SampleX", SHADER_SOCKET_FLOAT); + add_input("SampleY", SHADER_SOCKET_FLOAT); + + add_output("Normal", SHADER_SOCKET_NORMAL); +} + +void BumpNode::compile(SVMCompiler& compiler) +{ + ShaderInput *center_in = input("SampleCenter"); + ShaderInput *dx_in = input("SampleX"); + ShaderInput *dy_in = input("SampleY"); + + compiler.stack_assign(center_in); + compiler.stack_assign(dx_in); + compiler.stack_assign(dy_in); + + compiler.add_node(NODE_SET_BUMP, center_in->stack_offset, dx_in->stack_offset, dy_in->stack_offset); +} + +void BumpNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_bump"); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h new file mode 100644 index 00000000000..f59a775b658 --- /dev/null +++ b/intern/cycles/render/nodes.h @@ -0,0 +1,339 @@ +/* + * 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 __NODES_H__ +#define __NODES_H__ + +#include "graph.h" + +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +class ImageManager; +class Shadr; + +/* Nodes */ + +class ImageTextureNode : public ShaderNode { +public: + SHADER_NODE_NO_CLONE_CLASS(ImageTextureNode) + ~ImageTextureNode(); + ShaderNode *clone() const; + + ImageManager *image_manager; + int slot; + string filename; +}; + +class EnvironmentTextureNode : public ShaderNode { +public: + SHADER_NODE_NO_CLONE_CLASS(EnvironmentTextureNode) + ~EnvironmentTextureNode(); + ShaderNode *clone() const; + + ImageManager *image_manager; + int slot; + string filename; +}; + +class SkyTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(SkyTextureNode) + + float3 sun_direction; + float turbidity; +}; + +class OutputNode : public ShaderNode { +public: + SHADER_NODE_CLASS(OutputNode) +}; + +class NoiseTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(NoiseTextureNode) +}; + +class BlendTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(BlendTextureNode) + + ustring progression; + ustring axis; + + static ShaderEnum progression_enum; + static ShaderEnum axis_enum; +}; + +class CloudsTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(CloudsTextureNode) + + bool hard; + int depth; + ustring basis; + + static ShaderEnum basis_enum; +}; + +class VoronoiTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(VoronoiTextureNode) + + ustring distance_metric; + ustring coloring; + + static ShaderEnum distance_metric_enum; + static ShaderEnum coloring_enum; +}; + +class MusgraveTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MusgraveTextureNode) + + ustring type; + ustring basis; + + static ShaderEnum type_enum; + static ShaderEnum basis_enum; +}; + +class MarbleTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MarbleTextureNode) + + ustring type; + ustring wave; + ustring basis; + bool hard; + int depth; + + static ShaderEnum type_enum; + static ShaderEnum wave_enum; + static ShaderEnum basis_enum; +}; + +class MagicTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MagicTextureNode) + + int depth; +}; + +class StucciTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(StucciTextureNode) + + ustring type; + ustring basis; + bool hard; + + static ShaderEnum type_enum; + static ShaderEnum basis_enum; +}; + +class DistortedNoiseTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(DistortedNoiseTextureNode) + + ustring basis; + ustring distortion_basis; + static ShaderEnum basis_enum; +}; + +class WoodTextureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(WoodTextureNode) + + ustring type; + ustring wave; + ustring basis; + bool hard; + + static ShaderEnum type_enum; + static ShaderEnum wave_enum; + static ShaderEnum basis_enum; +}; + +class MappingNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MappingNode) + + Transform compute_transform(); + float3 translation; + float3 rotation; + float3 scale; +}; + +class ConvertNode : public ShaderNode { +public: + ConvertNode(ShaderSocketType from, ShaderSocketType to); + SHADER_NODE_BASE_CLASS(ConvertNode) + + ShaderSocketType from, to; +}; + +class BsdfNode : public ShaderNode { +public: + SHADER_NODE_CLASS(BsdfNode) + + void compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput *param2); + + ClosureType closure; +}; + +class WardBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(WardBsdfNode) +}; + +class DiffuseBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(DiffuseBsdfNode) +}; + +class TranslucentBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(TranslucentBsdfNode) +}; + +class TransparentBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(TransparentBsdfNode) +}; + +class VelvetBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(VelvetBsdfNode) +}; + +class GlossyBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(GlossyBsdfNode) + + ustring distribution; + static ShaderEnum distribution_enum; +}; + +class GlassBsdfNode : public BsdfNode { +public: + SHADER_NODE_CLASS(GlassBsdfNode) + + ustring distribution; + static ShaderEnum distribution_enum; +}; + +class EmissionNode : public ShaderNode { +public: + SHADER_NODE_CLASS(EmissionNode) + + bool total_power; +}; + +class BackgroundNode : public ShaderNode { +public: + SHADER_NODE_CLASS(BackgroundNode) +}; + +class GeometryNode : public ShaderNode { +public: + SHADER_NODE_CLASS(GeometryNode) +}; + +class TextureCoordinateNode : public ShaderNode { +public: + SHADER_NODE_CLASS(TextureCoordinateNode) + void attributes(AttributeRequestSet *attributes); +}; + +class LightPathNode : public ShaderNode { +public: + SHADER_NODE_CLASS(LightPathNode) +}; + +class ValueNode : public ShaderNode { +public: + SHADER_NODE_CLASS(ValueNode) + + float value; +}; + +class ColorNode : public ShaderNode { +public: + SHADER_NODE_CLASS(ColorNode) + + float3 value; +}; + +class AddClosureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(AddClosureNode) +}; + +class MixClosureNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MixClosureNode) +}; + +class MixNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MixNode) + + ustring type; + static ShaderEnum type_enum; +}; + +class AttributeNode : public ShaderNode { +public: + SHADER_NODE_CLASS(AttributeNode) + void attributes(AttributeRequestSet *attributes); + + ustring attribute; +}; + +class FresnelNode : public ShaderNode { +public: + SHADER_NODE_CLASS(FresnelNode) +}; + +class MathNode : public ShaderNode { +public: + SHADER_NODE_CLASS(MathNode) + + ustring type; + static ShaderEnum type_enum; +}; + +class VectorMathNode : public ShaderNode { +public: + SHADER_NODE_CLASS(VectorMathNode) + + ustring type; + static ShaderEnum type_enum; +}; + +class BumpNode : public ShaderNode { +public: + SHADER_NODE_CLASS(BumpNode) +}; + +CCL_NAMESPACE_END + +#endif /* __NODES_H__ */ + diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp new file mode 100644 index 00000000000..06c93e48b89 --- /dev/null +++ b/intern/cycles/render/object.cpp @@ -0,0 +1,213 @@ +/* + * 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 "mesh.h" +#include "object.h" +#include "scene.h" + +#include "util_foreach.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +/* Object */ + +Object::Object() +{ + name = ""; + mesh = NULL; + tfm = transform_identity(); +} + +Object::~Object() +{ +} + +void Object::compute_bounds() +{ + bounds = mesh->bounds.transformed(&tfm); +} + +void Object::apply_transform() +{ + if(!mesh || tfm == transform_identity()) + return; + + for(size_t i = 0; i < mesh->verts.size(); i++) + mesh->verts[i] = transform(&tfm, mesh->verts[i]); + + Attribute *attr_fN = mesh->attributes.find(Attribute::STD_FACE_NORMAL); + Attribute *attr_vN = mesh->attributes.find(Attribute::STD_VERTEX_NORMAL); + + Transform ntfm = transform_transpose(transform_inverse(tfm)); + + if(attr_fN) { + float3 *fN = attr_fN->data_float3(); + + for(size_t i = 0; i < mesh->triangles.size(); i++) + fN[i] = transform_direction(&ntfm, fN[i]); + } + + if(attr_vN) { + float3 *vN = attr_vN->data_float3(); + + for(size_t i = 0; i < mesh->verts.size(); i++) + vN[i] = transform_direction(&ntfm, vN[i]); + } + + if(bounds.valid()) { + mesh->compute_bounds(); + compute_bounds(); + } + + tfm = transform_identity(); +} + +void Object::tag_update(Scene *scene) +{ + if(mesh && mesh->transform_applied) + mesh->need_update = true; + scene->mesh_manager->need_update = true; + scene->object_manager->need_update = true; +} + +/* Object Manager */ + +ObjectManager::ObjectManager() +{ + need_update = true; +} + +ObjectManager::~ObjectManager() +{ +} + +void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + float4 *objects = dscene->objects.resize(OBJECT_SIZE*scene->objects.size()); + int i = 0; + + foreach(Object *ob, scene->objects) { + Mesh *mesh = ob->mesh; + + /* compute transformations */ + Transform tfm = ob->tfm; + Transform itfm = transform_inverse(tfm); + Transform ntfm = transform_transpose(itfm); + + /* compute surface area */ + /* todo: correct for displacement, and move to a better place */ + float surfacearea = 0.0f; + + foreach(Mesh::Triangle& t, mesh->triangles) { + float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); + float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); + float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); + + surfacearea += triangle_area(p1, p2, p3); + } + + /* pack in texture */ + int offset = i*OBJECT_SIZE; + + memcpy(&objects[offset], &tfm, sizeof(float4)*4); + memcpy(&objects[offset+4], &itfm, sizeof(float4)*4); + memcpy(&objects[offset+8], &ntfm, sizeof(float4)*4); + objects[offset+12] = make_float4(surfacearea, 0.0f, 0.0f, 0.0f); + + i++; + + if(progress.get_cancel()) return; + } + + device->tex_alloc("__objects", dscene->objects); +} + +void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + if(!need_update) + return; + + device_free(device, dscene); + + if(scene->objects.size() == 0) + return; + + /* set object transform matrices, before applying static transforms */ + progress.set_status("Updating Objects", "Copying Transformations to device"); + device_update_transforms(device, dscene, scene, progress); + + if(progress.get_cancel()) return; + + /* prepare for static BVH building */ + /* todo: do before to support getting object level coords? */ + if(scene->params.bvh_type == SceneParams::BVH_STATIC) { + progress.set_status("Updating Objects", "Applying Static Transformations"); + apply_static_transforms(scene, progress); + } + + if(progress.get_cancel()) return; + + need_update = false; +} + +void ObjectManager::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->objects); + dscene->objects.clear(); +} + +void ObjectManager::apply_static_transforms(Scene *scene, Progress& progress) +{ + /* todo: normals and displacement should be done before applying transform! */ + /* todo: create objects/meshes in right order! */ + + /* counter mesh users */ + map mesh_users; + + foreach(Object *object, scene->objects) { + map::iterator it = mesh_users.find(object->mesh); + + if(it == mesh_users.end()) + mesh_users[object->mesh] = 1; + else + it->second++; + } + + if(progress.get_cancel()) return; + + /* apply transforms for objects with single user meshes */ + foreach(Object *object, scene->objects) { + if(mesh_users[object->mesh] == 1) { + object->apply_transform(); + object->mesh->transform_applied = true; + + if(progress.get_cancel()) return; + } + } +} + +void ObjectManager::tag_update(Scene *scene) +{ + need_update = true; + scene->mesh_manager->need_update = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h new file mode 100644 index 00000000000..ff92b381063 --- /dev/null +++ b/intern/cycles/render/object.h @@ -0,0 +1,76 @@ +/* + * 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 __OBJECT_H__ +#define __OBJECT_H__ + +#include "util_boundbox.h" +#include "util_param.h" +#include "util_transform.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Mesh; +class Progress; +class Scene; +class Transform; + +/* Object */ + +class Object { +public: + Mesh *mesh; + Transform tfm; + BoundBox bounds; + ustring name; + vector attributes; + + Object(); + ~Object(); + + void tag_update(Scene *scene); + + void compute_bounds(); + void apply_transform(); +}; + +/* Object Manager */ + +class ObjectManager { +public: + bool need_update; + + ObjectManager(); + ~ObjectManager(); + + 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_free(Device *device, DeviceScene *dscene); + + void tag_update(Scene *scene); + + void apply_static_transforms(Scene *scene, Progress& progress); +}; + +CCL_NAMESPACE_END + +#endif /* __OBJECT_H__ */ + diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp new file mode 100644 index 00000000000..068ae883930 --- /dev/null +++ b/intern/cycles/render/osl.cpp @@ -0,0 +1,497 @@ +/* + * 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 "graph.h" +#include "light.h" +#include "osl.h" +#include "scene.h" +#include "shader.h" + +#ifdef WITH_OSL + +#include "osl_globals.h" +#include "osl_services.h" +#include "osl_shader.h" + +#include "util_foreach.h" +#include "util_path.h" +#include "util_progress.h" + +#endif + +CCL_NAMESPACE_BEGIN + +#ifdef WITH_OSL + +/* Shader Manager */ + +OSLShaderManager::OSLShaderManager() +{ + /* todo: verify if we are leaking shaders + * todo: verify if we are leaking image cache memory */ + + services = new OSLRenderServices(); + + /* if we let OSL create it, it leaks */ + ts = TextureSystem::create(true); + ts->attribute("automip", 1); + ts->attribute("autotile", 64); + + ss = OSL::ShadingSystem::create(services, ts, &errhandler); + ss->attribute("lockgeom", 1); + ss->attribute("commonspace", "world"); + ss->attribute("optimize", 2); + //ss->attribute("debug", 1); + //ss->attribute("statistics:level", 1); + ss->attribute("searchpath:shader", path_get("shader").c_str()); + + OSLShader::register_closures(ss); +} + +OSLShaderManager::~OSLShaderManager() +{ + OSL::ShadingSystem::destroy(ss); + OSL::TextureSystem::destroy(ts); + delete services; +} + +void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + /* test if we need to update */ + bool need_update = false; + + foreach(Shader *shader, scene->shaders) + if(shader->need_update) + need_update = true; + + if(!need_update) + return; + + device_free(device, dscene); + + /* create shaders */ + OSLGlobals *og = (OSLGlobals*)device->osl_memory(); + + foreach(Shader *shader, scene->shaders) { + assert(shader->graph); + + if(progress.get_cancel()) return; + + if(shader->has_surface_emission) + scene->light_manager->need_update = true; + + OSLCompiler compiler((void*)ss); + compiler.background = (shader == scene->shaders[scene->default_background]); + compiler.compile(og, shader); + } + + /* setup shader engine */ + og->ss = ss; + int background_id = scene->shader_manager->get_shader_id(scene->default_background); + og->background_state = og->surface_state[background_id]; + og->use = true; + + tls_create(OSLGlobals::ThreadData, og->thread_data); + + foreach(Shader *shader, scene->shaders) + shader->need_update = false; +} + +void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) +{ + OSLGlobals *og = (OSLGlobals*)device->osl_memory(); + + /* clear shader engine */ + og->use = false; + og->ss = NULL; + + tls_delete(OSLGlobals::ThreadData, og->thread_data); + + og->surface_state.clear(); + og->volume_state.clear(); + og->displacement_state.clear(); + og->background_state.reset(); +} + +/* Graph Compiler */ + +OSLCompiler::OSLCompiler(void *shadingsys_) +{ + shadingsys = shadingsys_; + current_type = SHADER_TYPE_SURFACE; + current_shader = NULL; + background = false; +} + +string OSLCompiler::id(ShaderNode *node) +{ + /* assign layer unique name based on pointer address + bump mode */ + stringstream stream; + stream << "node_" << node->name << "_" << node; + + return stream.str(); +} + +string OSLCompiler::compatible_name(const char *name) +{ + string sname = name; + size_t i; + + while((i = sname.find(" ")) != string::npos) + sname.replace(i, 1, ""); + + return sname; +} + +bool OSLCompiler::node_skip_input(ShaderNode *node, ShaderInput *input) +{ + /* exception for output node, only one input is actually used + depending on the current shader type */ + + if(node->name == ustring("output")) { + if(strcmp(input->name, "Surface") == 0 && current_type != SHADER_TYPE_SURFACE) + return true; + if(strcmp(input->name, "Volume") == 0 && current_type != SHADER_TYPE_VOLUME) + return true; + if(strcmp(input->name, "Displacement") == 0 && current_type != SHADER_TYPE_DISPLACEMENT) + return true; + } + else if(current_type == SHADER_TYPE_DISPLACEMENT && input->link && input->link->parent->name == ustring("bump")) + return true; + + return false; +} + +void OSLCompiler::add(ShaderNode *node, const char *name) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + + /* pass in fixed parameter values */ + foreach(ShaderInput *input, node->inputs) { + if(!input->link) { + /* checks to untangle graphs */ + if(node_skip_input(node, input)) + continue; + /* already has default value assigned */ + else if(input->default_value != ShaderInput::NONE) + continue; + + switch(input->type) { + case SHADER_SOCKET_COLOR: + parameter_color(input->name, input->value); + break; + case SHADER_SOCKET_POINT: + parameter_point(input->name, input->value); + break; + case SHADER_SOCKET_VECTOR: + parameter_vector(input->name, input->value); + break; + case SHADER_SOCKET_NORMAL: + parameter_normal(input->name, input->value); + break; + case SHADER_SOCKET_FLOAT: + parameter(input->name, input->value.x); + break; + case SHADER_SOCKET_CLOSURE: + break; + } + } + } + + /* create shader of the appropriate type. we pass "surface" to all shaders, + * because "volume" and "displacement" don't work yet in OSL. the shaders + * work fine, but presumably these values would be used for more strict + * checking, so when that is fixed, we should update the code here too. */ + if(current_type == SHADER_TYPE_SURFACE) + ss->Shader("surface", name, id(node).c_str()); + else if(current_type == SHADER_TYPE_VOLUME) + ss->Shader("surface", name, id(node).c_str()); + else if(current_type == SHADER_TYPE_DISPLACEMENT) + ss->Shader("surface", name, id(node).c_str()); + else + assert(0); + + /* link inputs to other nodes */ + foreach(ShaderInput *input, node->inputs) { + if(input->link) { + if(node_skip_input(node, input)) + continue; + + /* 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 += "_"; + + ss->ConnectShaders(id_from.c_str(), param_from.c_str(), id_to.c_str(), param_to.c_str()); + } + } +} + +void OSLCompiler::parameter(const char *name, float f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeFloat, &f); +} + +void OSLCompiler::parameter_color(const char *name, float3 f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeColor, &f); +} + +void OSLCompiler::parameter_point(const char *name, float3 f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypePoint, &f); +} + +void OSLCompiler::parameter_normal(const char *name, float3 f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeNormal, &f); +} + +void OSLCompiler::parameter_vector(const char *name, float3 f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeVector, &f); +} + +void OSLCompiler::parameter(const char *name, int f) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeInt, &f); +} + +void OSLCompiler::parameter(const char *name, const char *s) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeString, &s); +} + +void OSLCompiler::parameter(const char *name, ustring s) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + const char *str = s.c_str(); + ss->Parameter(name, TypeDesc::TypeString, &str); +} + +void OSLCompiler::parameter(const char *name, const Transform& tfm) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ss->Parameter(name, TypeDesc::TypeMatrix, (float*)&tfm); +} + +void OSLCompiler::find_dependencies(set& dependencies, ShaderInput *input) +{ + ShaderNode *node = (input->link)? input->link->parent: NULL; + + if(node) { + foreach(ShaderInput *in, node->inputs) + if(!node_skip_input(node, in)) + find_dependencies(dependencies, in); + + dependencies.insert(node); + } +} + +void OSLCompiler::generate_nodes(const set& nodes) +{ + set done; + bool nodes_done; + + do { + nodes_done = true; + + foreach(ShaderNode *node, nodes) { + if(done.find(node) == done.end()) { + bool inputs_done = true; + + foreach(ShaderInput *input, node->inputs) + if(!node_skip_input(node, input)) + if(input->link && done.find(input->link->parent) == done.end()) + inputs_done = false; + + if(inputs_done) { + node->compile(*this); + done.insert(node); + + if(node->name == ustring("emission")) + current_shader->has_surface_emission = true; + } + else + nodes_done = false; + } + } + } while(!nodes_done); +} + +void OSLCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType type) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + + current_type = type; + + ss->ShaderGroupBegin(); + + ShaderNode *output = graph->output(); + set dependencies; + + if(type == SHADER_TYPE_SURFACE) { + /* generate surface shader */ + find_dependencies(dependencies, output->input("Surface")); + generate_nodes(dependencies); + output->compile(*this); + } + else if(type == SHADER_TYPE_VOLUME) { + /* generate volume shader */ + find_dependencies(dependencies, output->input("Volume")); + generate_nodes(dependencies); + output->compile(*this); + } + else if(type == SHADER_TYPE_DISPLACEMENT) { + /* generate displacement shader */ + find_dependencies(dependencies, output->input("Displacement")); + generate_nodes(dependencies); + output->compile(*this); + } + else + assert(0); + + ss->ShaderGroupEnd(); +} + +void OSLCompiler::compile(OSLGlobals *og, Shader *shader) +{ + OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys; + ShaderGraph *graph = shader->graph; + ShaderNode *output = (graph)? graph->output(): NULL; + + /* copy graph for shader with bump mapping */ + if(output->input("Surface")->link && output->input("Displacement")->link) + if(!shader->graph_bump) + shader->graph_bump = shader->graph->copy(); + + /* finalize */ + shader->graph->finalize(false, true); + if(shader->graph_bump) + shader->graph_bump->finalize(true, true); + + current_shader = shader; + + shader->has_surface = false; + shader->has_surface_emission = false; + shader->has_volume = false; + shader->has_displacement = false; + + /* generate surface shader */ + if(graph && output->input("Surface")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); + og->surface_state.push_back(ss->state()); + + if(shader->graph_bump) { + ss->clear_state(); + compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); + og->surface_state.push_back(ss->state()); + } + else + og->surface_state.push_back(ss->state()); + + ss->clear_state(); + + shader->has_surface = true; + } + else { + og->surface_state.push_back(OSL::ShadingAttribStateRef()); + og->surface_state.push_back(OSL::ShadingAttribStateRef()); + } + + /* generate volume shader */ + if(graph && output->input("Volume")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); + shader->has_volume = true; + + og->volume_state.push_back(ss->state()); + og->volume_state.push_back(ss->state()); + ss->clear_state(); + } + else { + og->volume_state.push_back(OSL::ShadingAttribStateRef()); + og->volume_state.push_back(OSL::ShadingAttribStateRef()); + } + + /* generate displacement shader */ + if(graph && output->input("Displacement")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_DISPLACEMENT); + shader->has_displacement = true; + + og->displacement_state.push_back(ss->state()); + og->displacement_state.push_back(ss->state()); + ss->clear_state(); + } + else { + og->displacement_state.push_back(OSL::ShadingAttribStateRef()); + og->displacement_state.push_back(OSL::ShadingAttribStateRef()); + } +} + +#else + +void OSLCompiler::add(ShaderNode *node, const char *name) +{ +} + +void OSLCompiler::parameter(const char *name, float f) +{ +} + +void OSLCompiler::parameter_color(const char *name, float3 f) +{ +} + +void OSLCompiler::parameter_vector(const char *name, float3 f) +{ +} + +void OSLCompiler::parameter(const char *name, int f) +{ +} + +void OSLCompiler::parameter(const char *name, const char *s) +{ +} + +void OSLCompiler::parameter(const char *name, ustring s) +{ +} + +void OSLCompiler::parameter(const char *name, const Transform& tfm) +{ +} + +#endif /* WITH_OSL */ + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/osl.h b/intern/cycles/render/osl.h new file mode 100644 index 00000000000..329cf9a4828 --- /dev/null +++ b/intern/cycles/render/osl.h @@ -0,0 +1,103 @@ +/* + * 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 __OSL_H__ +#define __OSL_H__ + +#include "util_set.h" + +#include "shader.h" + +#ifdef WITH_OSL +#include +#endif + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class ImageManager; +class OSLRenderServices; +class OSLGlobals; +class Scene; +class ShaderGraph; +class ShaderNode; +class ShaderOutput; + +#ifdef WITH_OSL + +/* Shader Manage */ + +class OSLShaderManager : public ShaderManager { +public: + OSLShaderManager(); + ~OSLShaderManager(); + + void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_free(Device *device, DeviceScene *dscene); + +private: + OSL::ShadingSystem *ss; + OSL::TextureSystem *ts; + OSLRenderServices *services; + OSL::ErrorHandler errhandler; +}; + +#endif + +/* Graph Compiler */ + +class OSLCompiler { +public: + OSLCompiler(void *shadingsys); + void compile(OSLGlobals *og, Shader *shader); + + void add(ShaderNode *node, const char *name); + + void parameter(const char *name, float f); + void parameter_color(const char *name, float3 f); + void parameter_vector(const char *name, float3 f); + void parameter_normal(const char *name, float3 f); + void parameter_point(const char *name, float3 f); + void parameter(const char *name, int f); + void parameter(const char *name, const char *s); + void parameter(const char *name, ustring str); + void parameter(const char *name, const Transform& tfm); + + ShaderType output_type() { return current_type; } + + bool background; + +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); + + void find_dependencies(set& dependencies, ShaderInput *input); + void generate_nodes(const set& nodes); + + void *shadingsys; + ShaderType current_type; + Shader *current_shader; +}; + +CCL_NAMESPACE_END + +#endif /* __OSL_H__ */ + diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp new file mode 100644 index 00000000000..85a0cc3a7c4 --- /dev/null +++ b/intern/cycles/render/scene.cpp @@ -0,0 +1,188 @@ +/* + * 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 + +#include "background.h" +#include "camera.h" +#include "device.h" +#include "film.h" +#include "filter.h" +#include "integrator.h" +#include "light.h" +#include "shader.h" +#include "mesh.h" +#include "object.h" +#include "scene.h" +#include "svm.h" +#include "osl.h" + +#include "util_foreach.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +Scene::Scene(const SceneParams& params_) +: params(params_) +{ + device = NULL; + memset(&dscene.data, 0, sizeof(dscene.data)); + + camera = new Camera(); + filter = new Filter(); + film = new Film(); + background = new Background(); + light_manager = new LightManager(); + mesh_manager = new MeshManager(); + object_manager = new ObjectManager(); + integrator = new Integrator(); + image_manager = new ImageManager(); + shader_manager = ShaderManager::create(this); +} + +Scene::~Scene() +{ + camera->device_free(device, &dscene); + delete camera; + + filter->device_free(device, &dscene); + delete filter; + + film->device_free(device, &dscene); + delete film; + + background->device_free(device, &dscene); + delete background; + + mesh_manager->device_free(device, &dscene); + delete mesh_manager; + + object_manager->device_free(device, &dscene); + delete object_manager; + + integrator->device_free(device, &dscene); + delete integrator; + + shader_manager->device_free(device, &dscene); + delete shader_manager; + + light_manager->device_free(device, &dscene); + delete light_manager; + + foreach(Shader *s, shaders) + delete s; + foreach(Mesh *m, meshes) + delete m; + foreach(Object *o, objects) + delete o; + foreach(Light *l, lights) + delete l; + + image_manager->device_free(device, &dscene); + delete image_manager; +} + +void Scene::device_update(Device *device_, Progress& progress) +{ + if(!device) + device = device_; + + /* The order of updates is important, because there's dependencies between + * the different managers, using data computed by previous managers. + * + * - Background generates shader graph compiled by shader manager. + * - Image manager uploads images used by shaders. + * - Camera may be used for adapative subdivison. + * - Displacement shader must have all shader data available. + * - Light manager needs final mesh data to compute emission CDF. + */ + + progress.set_status("Updating Background"); + background->device_update(device, &dscene, this); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Shaders"); + shader_manager->device_update(device, &dscene, this, progress); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Images"); + image_manager->device_update(device, &dscene, progress); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Camera"); + camera->device_update(device, &dscene); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Objects"); + object_manager->device_update(device, &dscene, this, progress); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Meshes"); + mesh_manager->device_update(device, &dscene, this, progress); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Lights"); + light_manager->device_update(device, &dscene, this, progress); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Filter"); + filter->device_update(device, &dscene); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Integrator"); + integrator->device_update(device, &dscene); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Film"); + film->device_update(device, &dscene); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Device", "Writing constant memory"); + device->const_copy_to("__data", &dscene.data, sizeof(dscene.data)); +} + +bool Scene::need_update() +{ + return (need_reset() || film->need_update); +} + +bool Scene::need_reset() +{ + return (background->need_update + || image_manager->need_update + || camera->need_update + || object_manager->need_update + || mesh_manager->need_update + || light_manager->need_update + || filter->need_update + || integrator->need_update + || shader_manager->need_update); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h new file mode 100644 index 00000000000..965a0054846 --- /dev/null +++ b/intern/cycles/render/scene.h @@ -0,0 +1,183 @@ +/* + * 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 __SCENE_H__ +#define __SCENE_H__ + +#include "image.h" + +#include "device_memory.h" + +#include "kernel_types.h" + +#include "util_param.h" +#include "util_string.h" +#include "util_thread.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Background; +class Camera; +class Device; +class Film; +class Filter; +class Integrator; +class Light; +class LightManager; +class Mesh; +class MeshManager; +class Object; +class ObjectManager; +class Shader; +class ShaderManager; +class Progress; + +/* Scene Device Data */ + +class DeviceScene { +public: + /* BVH */ + device_vector bvh_nodes; + device_vector object_node; + device_vector tri_woop; + device_vector prim_index; + device_vector prim_object; + + /* mesh */ + device_vector tri_normal; + device_vector tri_vnormal; + device_vector tri_vindex; + device_vector tri_verts; + + /* objects */ + device_vector objects; + + /* attributes */ + device_vector attributes_map; + device_vector attributes_float; + device_vector attributes_float3; + + /* lights */ + device_vector light_distribution; + device_vector light_point; + + /* shaders */ + device_vector svm_nodes; + + /* filter */ + device_vector filter_table; + + /* film */ + device_vector response_curve_R; + device_vector response_curve_G; + device_vector response_curve_B; + + /* integrator */ + device_vector sobol_directions; + + /* images */ + device_vector tex_image[TEX_IMAGE_MAX]; + + KernelData data; +}; + +/* Scene Parameters */ + +class SceneParams { +public: + enum { OSL, SVM } shadingsystem; + enum BVHType { BVH_DYNAMIC, BVH_STATIC } bvh_type; + bool use_bvh_cache; + bool use_bvh_spatial_split; + bool use_qbvh; + + SceneParams() + { + shadingsystem = SVM; + bvh_type = BVH_DYNAMIC; + use_bvh_cache = false; + use_bvh_spatial_split = false; +#ifdef __QBVH__ + use_qbvh = true; +#else + use_qbvh = false; +#endif + } + + bool modified(const SceneParams& params) + { return !(shadingsystem == params.shadingsystem + && bvh_type == params.bvh_type + && use_bvh_cache == params.use_bvh_cache + && use_bvh_spatial_split == params.use_bvh_spatial_split + && use_qbvh == params.use_qbvh); } +}; + +/* Scene */ + +class Scene { +public: + /* data */ + Camera *camera; + Filter *filter; + Film *film; + Background *background; + Integrator *integrator; + + /* data lists */ + vector objects; + vector meshes; + vector shaders; + vector lights; + + /* data managers */ + ImageManager *image_manager; + LightManager *light_manager; + ShaderManager *shader_manager; + MeshManager *mesh_manager; + ObjectManager *object_manager; + + /* default shaders */ + int default_surface; + int default_light; + int default_background; + + /* device */ + Device *device; + DeviceScene dscene; + + /* parameters */ + SceneParams params; + + /* mutex must be locked manually by callers */ + thread_mutex mutex; + + Scene(const SceneParams& params); + ~Scene(); + + void device_update(Device *device, Progress& progress); + + bool need_update(); + bool need_reset(); +}; + +CCL_NAMESPACE_END + +#endif /* __SCENE_H__ */ + diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp new file mode 100644 index 00000000000..9fa0e548cab --- /dev/null +++ b/intern/cycles/render/session.cpp @@ -0,0 +1,435 @@ +/* + * 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 +#include + +#include "buffers.h" +#include "camera.h" +#include "device.h" +#include "scene.h" +#include "session.h" + +#include "util_foreach.h" +#include "util_function.h" +#include "util_time.h" + +CCL_NAMESPACE_BEGIN + +Session::Session(const SessionParams& params_) +: params(params_), + tile_manager(params.progressive, params.passes, params.tile_size, params.min_size) +{ + device_use_gl = (params.device_type == DEVICE_CUDA && !params.background); + + device = Device::create(params.device_type, params.background); + buffers = new RenderBuffers(device); + display = new DisplayBuffer(device); + + session_thread = NULL; + scene = NULL; + + start_time = 0.0; + reset_time = 0.0; + preview_time = 0.0; + pass = 0; + + delayed_reset.do_reset = false; + delayed_reset.w = 0; + delayed_reset.h = 0; + + display_outdated = false; + gpu_draw_ready = false; + gpu_need_tonemap = false; +} + +Session::~Session() +{ + if(session_thread) { + progress.set_cancel("Exiting"); + gpu_need_tonemap = false; + gpu_need_tonemap_cond.notify_all(); + wait(); + } + + if(params.output_path != "") { + progress.set_status("Writing Image", params.output_path); + display->write(device, params.output_path); + } + + delete buffers; + delete display; + delete scene; + delete device; +} + +void Session::start() +{ + session_thread = new thread(function_bind(&Session::run, this)); +} + +bool Session::ready_to_reset() +{ + double dt = time_dt() - reset_time; + + if(!display_outdated) + return (dt > params.reset_timeout); + else + return (dt > params.cancel_timeout); +} + +/* GPU Session */ + +void Session::reset_gpu(int w, int h) +{ + /* 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); + + display_outdated = true; + reset_time = time_dt(); + + reset_(w, h); + + gpu_need_tonemap = false; + gpu_need_tonemap_cond.notify_all(); +} + +bool Session::draw_gpu(int w, int h) +{ + /* block for buffer access */ + thread_scoped_lock display_lock(display->mutex); + + /* first check we already rendered something */ + if(gpu_draw_ready) { + /* then verify the buffers have the expected size, so we don't + draw previous results in a resized window */ + if(w == display->width && h == display->height) { + /* 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); + tonemap(); + gpu_need_tonemap = false; + gpu_need_tonemap_cond.notify_all(); + } + + display->draw(device); + + if(display_outdated && (time_dt() - reset_time) > params.text_timeout) + return false; + + return true; + } + } + + return false; +} + +void Session::run_gpu() +{ + start_time = time_dt(); + reset_time = time_dt(); + + while(!progress.get_cancel() && tile_manager.next()) { + /* buffers mutex is locked entirely while rendering each + pass, and released/reacquired on each iteration to allow + reset and draw in between */ + thread_scoped_lock buffers_lock(buffers->mutex); + + /* update scene */ + update_scene(); + if(progress.get_cancel()) + break; + + /* update status and timing */ + update_status_time(); + + /* path trace */ + foreach(Tile& tile, tile_manager.state.tiles) { + path_trace(tile); + + device->task_wait(); + + if(progress.get_cancel()) + break; + } + + gpu_need_tonemap = true; + gpu_draw_ready = true; + progress.set_update(); + + /* wait for tonemap */ + if(!params.background) { + while(gpu_need_tonemap) { + if(progress.get_cancel()) + break; + + gpu_need_tonemap_cond.wait(buffers_lock); + } + } + + if(progress.get_cancel()) + break; + } +} + +/* CPU Session */ + +void Session::reset_cpu(int w, int h) +{ + thread_scoped_lock reset_lock(delayed_reset.mutex); + + display_outdated = true; + reset_time = time_dt(); + + delayed_reset.w = w; + delayed_reset.h = h; + delayed_reset.do_reset = true; + device->task_cancel(); +} + +bool Session::draw_cpu(int w, int h) +{ + thread_scoped_lock display_lock(display->mutex); + + /* first check we already rendered something */ + if(display->draw_ready()) { + /* then verify the buffers have the expected size, so we don't + draw previous results in a resized window */ + if(w == display->width && h == display->height) { + display->draw(device); + + if(display_outdated && (time_dt() - reset_time) > params.text_timeout) + return false; + + return true; + } + } + + return false; +} + +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); + + reset_(delayed_reset.w, delayed_reset.h); + delayed_reset.do_reset = false; + } + + while(!progress.get_cancel() && tile_manager.next()) { + { + thread_scoped_lock buffers_lock(buffers->mutex); + + /* update scene */ + update_scene(); + if(progress.get_cancel()) + break; + + /* update status and timing */ + update_status_time(); + + /* path trace all tiles */ + foreach(Tile& tile, tile_manager.state.tiles) + path_trace(tile); + } + + device->task_wait(); + + { + thread_scoped_lock reset_lock(delayed_reset.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 */ + delayed_reset.do_reset = false; + reset_(delayed_reset.w, delayed_reset.h); + } + else { + /* tonemap only if we do not reset, we don't we don't + want to show the result of an incomplete pass*/ + tonemap(); + } + } + + progress.set_update(); + } +} + +void Session::run() +{ + /* session thread loop */ + progress.set_status("Waiting for render to start"); + + /* first scene update */ + if(!progress.get_cancel()) { + thread_scoped_lock scene_lock(scene->mutex); + scene->device_update(device, progress); + } + + /* run */ + if(!progress.get_cancel()) { + if(device_use_gl) + run_gpu(); + else + run_cpu(); + } + + /* progress update */ + if(progress.get_cancel()) + progress.set_status(progress.get_cancel_message()); + else + progress.set_update(); +} + +bool Session::draw(int w, int h) +{ + if(device_use_gl) + return draw_gpu(w, h); + else + return draw_cpu(w, h); +} + +void Session::reset_(int w, int h) +{ + if(w != buffers->width || h != buffers->height) { + gpu_draw_ready = false; + buffers->reset(device, w, h); + display->reset(device, w, h); + } + + tile_manager.reset(w, h); + + start_time = time_dt(); + preview_time = 0.0; + pass = 0; +} + +void Session::reset(int w, int h) +{ + if(device_use_gl) + reset_gpu(w, h); + else + reset_cpu(w, h); +} + +void Session::wait() +{ + session_thread->join(); + delete session_thread; + + session_thread = NULL; +} + +void Session::update_scene() +{ + thread_scoped_lock scene_lock(scene->mutex); + + progress.set_status("Updating Scene"); + + /* update camera if dimensions changed for progressive render */ + Camera *cam = scene->camera; + int w = tile_manager.state.width; + int h = tile_manager.state.height; + + if(cam->width != w || cam->height != h) { + cam->width = w; + cam->height = h; + cam->tag_update(); + } + + /* update scene */ + if(scene->need_update()) + scene->device_update(device, progress); +} + +void Session::update_status_time() +{ + int pass = tile_manager.state.pass; + int resolution = tile_manager.state.resolution; + + /* update status */ + string substatus; + if(!params.progressive) + substatus = "Path Tracing"; + else if(params.passes == INT_MAX) + substatus = string_printf("Path Tracing Pass %d", pass+1); + else + substatus = string_printf("Path Tracing Pass %d/%d", pass+1, params.passes); + progress.set_status("Rendering", substatus); + + /* update timing */ + if(preview_time == 0.0 && resolution == 1) + preview_time = time_dt(); + + double total_time = (time_dt() - start_time); + double pass_time = (pass == 0)? 0.0: (time_dt() - preview_time)/(pass); + + progress.set_pass(pass + 1, total_time, pass_time); +} + +void Session::path_trace(Tile& tile) +{ + /* add path trace task */ + DeviceTask task(DeviceTask::PATH_TRACE); + + task.x = tile.x; + task.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.pass = tile_manager.state.pass; + task.resolution = tile_manager.state.resolution; + + device->task_add(task); +} + +void Session::tonemap() +{ + /* add tonemap task */ + DeviceTask task(DeviceTask::TONEMAP); + + task.x = 0; + task.y = 0; + task.w = tile_manager.state.width; + task.h = tile_manager.state.height; + task.rgba = display->rgba.device_pointer; + task.buffer = buffers->buffer.device_pointer; + task.pass = tile_manager.state.pass; + task.resolution = tile_manager.state.resolution; + + device->task_add(task); + device->task_wait(); + + /* set display to new size */ + display->draw_set(tile_manager.state.width, tile_manager.state.height); + + display_outdated = false; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h new file mode 100644 index 00000000000..7b23a89afc2 --- /dev/null +++ b/intern/cycles/render/session.h @@ -0,0 +1,152 @@ +/* + * 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 __SESSION_H__ +#define __SESSION_H__ + +#include "device.h" +#include "tile.h" + +#include "util_progress.h" +#include "util_thread.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class DisplayBuffer; +class Progress; +class RenderBuffers; +class Scene; + +/* Session Parameters */ + +class SessionParams { +public: + DeviceType device_type; + bool background; + string output_path; + + bool progressive; + int passes; + int tile_size; + int min_size; + + double cancel_timeout; + double reset_timeout; + double text_timeout; + + SessionParams() + { + device_type = DEVICE_CPU; + background = false; + output_path = ""; + + progressive = false; + passes = INT_MAX; + tile_size = 64; + min_size = 64; + + cancel_timeout = 0.1; + reset_timeout = 0.1; + text_timeout = 1.0; + } + + bool modified(const SessionParams& params) + { return !(device_type == params.device_type + && background == params.background + && output_path == params.output_path + /* && passes == params.passes */ + && progressive == params.progressive + && tile_size == params.tile_size + && min_size == params.min_size + && cancel_timeout == params.cancel_timeout + && reset_timeout == params.reset_timeout + && text_timeout == params.text_timeout); } + +}; + +/* Session + * + * This is the class that contains the session thread, running the render + * control loop and dispatching tasks. */ + +class Session { +public: + Device *device; + Scene *scene; + RenderBuffers *buffers; + DisplayBuffer *display; + Progress progress; + SessionParams params; + int pass; + + Session(const SessionParams& params); + ~Session(); + + void start(); + bool draw(int w, int h); + void wait(); + + bool ready_to_reset(); + void reset(int w, int h); + +protected: + struct DelayedReset { + thread_mutex mutex; + bool do_reset; + int w, h; + } delayed_reset; + + void run(); + + void update_scene(); + void update_status_time(); + + void tonemap(); + void path_trace(Tile& tile); + void reset_(int w, int h); + + void run_cpu(); + bool draw_cpu(int w, int h); + void reset_cpu(int w, int h); + + void run_gpu(); + bool draw_gpu(int w, int h); + void reset_gpu(int w, int h); + + TileManager tile_manager; + bool device_use_gl; + + thread *session_thread; + + volatile bool display_outdated; + + volatile bool gpu_draw_ready; + volatile bool gpu_need_tonemap; + thread_condition_variable gpu_need_tonemap_cond; + + double start_time; + double reset_time; + double preview_time; +}; + +CCL_NAMESPACE_END + +#endif /* __SESSION_H__ */ + diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp new file mode 100644 index 00000000000..9ea162d3ad0 --- /dev/null +++ b/intern/cycles/render/shader.cpp @@ -0,0 +1,215 @@ +/* + * 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 "graph.h" +#include "light.h" +#include "mesh.h" +#include "nodes.h" +#include "osl.h" +#include "scene.h" +#include "shader.h" +#include "svm.h" + +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +/* Shader */ + +Shader::Shader() +{ + name = ""; + + graph = NULL; + graph_bump = NULL; + + has_surface = false; + has_surface_emission = false; + has_volume = false; + has_displacement = false; + + need_update = true; +} + +Shader::~Shader() +{ + delete graph; + delete graph_bump; +} + +void Shader::set_graph(ShaderGraph *graph_) +{ + /* assign graph */ + delete graph; + delete graph_bump; + graph = graph_; + graph_bump = NULL; +} + +void Shader::tag_update(Scene *scene) +{ + /* update tag */ + need_update = true; + scene->shader_manager->need_update = true; + + /* if the shader previously was emissive, update light distribution, + * if the new shader is emissive, a light manager update tag will be + * done in the shader manager device update. */ + if(has_surface_emission) + scene->light_manager->need_update = true; + + /* get requested attributes. this could be optimized by pruning unused + nodes here already, but that's the job of the shader manager currently, + and may not be so great for interactive rendering where you temporarily + disconnect a node */ + AttributeRequestSet prev_attributes = attributes; + + attributes.clear(); + foreach(ShaderNode *node, graph->nodes) + node->attributes(&attributes); + + /* compare if the attributes changed, mesh manager will check + need_update_attributes, update the relevant meshes and clear it. */ + if(attributes.modified(prev_attributes)) { + need_update_attributes = true; + scene->mesh_manager->need_update = true; + } +} + +/* Shader Manager */ + +ShaderManager::ShaderManager() +{ + need_update = true; +} + +ShaderManager::~ShaderManager() +{ +} + +ShaderManager *ShaderManager::create(Scene *scene) +{ + ShaderManager *manager; + +#ifdef WITH_OSL + if(scene->params.shadingsystem == SceneParams::OSL) + manager = new OSLShaderManager(); + else +#endif + manager = new SVMShaderManager(); + + add_default(scene); + + return manager; +} + +uint ShaderManager::get_attribute_id(ustring name) +{ + /* get a unique id for each name, for SVM attribute lookup */ + AttributeIDMap::iterator it = unique_attribute_id.find(name); + + if(it != unique_attribute_id.end()) + return it->second; + + uint id = (uint)Attribute::STD_NUM + unique_attribute_id.size(); + unique_attribute_id[name] = id; + return id; +} + +uint ShaderManager::get_attribute_id(Attribute::Standard std) +{ + return (uint)std; +} + +int ShaderManager::get_shader_id(uint shader, Mesh *mesh, bool smooth) +{ + /* get a shader id to pass to the kernel */ + int id = shader*2; + + /* index depends bump since this setting is not in the shader */ + if(mesh && mesh->displacement_method != Mesh::DISPLACE_TRUE) + id += 1; + /* stuff in smooth flag too */ + if(smooth) + id= -id; + + return id; +} + +void ShaderManager::add_default(Scene *scene) +{ + Shader *shader; + ShaderGraph *graph; + ShaderNode *closure, *out; + + /* default surface */ + { + graph = new ShaderGraph(); + + closure = graph->add(new DiffuseBsdfNode()); + closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); + out = graph->output(); + + graph->connect(closure->output("BSDF"), out->input("Surface")); + + shader = new Shader(); + shader->name = "default_surface"; + shader->graph = graph; + scene->shaders.push_back(shader); + scene->default_surface = scene->shaders.size() - 1; + } + + /* default light */ + { + graph = new ShaderGraph(); + + closure = graph->add(new EmissionNode()); + closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); + closure->input("Strength")->value.x = 0.0f; + out = graph->output(); + + graph->connect(closure->output("Emission"), out->input("Surface")); + + shader = new Shader(); + shader->name = "default_light"; + shader->graph = graph; + scene->shaders.push_back(shader); + scene->default_light = scene->shaders.size() - 1; + } + + /* default background */ + { + graph = new ShaderGraph(); + + closure = graph->add(new BackgroundNode()); + closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); + out = graph->output(); + + graph->connect(closure->output("Background"), out->input("Surface")); + + shader = new Shader(); + shader->name = "default_background"; + shader->graph = graph; + scene->shaders.push_back(shader); + scene->default_background = scene->shaders.size() - 1; + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h new file mode 100644 index 00000000000..0712100b3e7 --- /dev/null +++ b/intern/cycles/render/shader.h @@ -0,0 +1,116 @@ +/* + * 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 __SHADER_H__ +#define __SHADER_H__ + +#include "attribute.h" +#include "kernel_types.h" + +#include "util_map.h" +#include "util_param.h" +#include "util_string.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class Mesh; +class Progress; +class Scene; +class ShaderGraph; +class float3; + +/* Shader describing the appearance of a Mesh, Light or Background. + * + * While there is only a single shader graph, it has three outputs: surface, + * volume and displacement, that the shader manager will compile and execute + * separately. */ + +class Shader { +public: + /* name */ + string name; + + /* shader graph */ + ShaderGraph *graph; + + /* shader graph with auto bump mapping included, we compile two shaders, + with and without bump, because the displacement method is a mesh + level setting, so we need to handle both */ + ShaderGraph *graph_bump; + + /* synchronization */ + bool need_update; + bool need_update_attributes; + + /* information about shader after compiling */ + bool has_surface; + bool has_surface_emission; + bool has_volume; + bool has_displacement; + + /* requested mesh attributes */ + AttributeRequestSet attributes; + + Shader(); + ~Shader(); + + void set_graph(ShaderGraph *graph); + void tag_update(Scene *scene); +}; + +/* Shader Manager virtual base class + * + * From this the SVM and OSL shader managers are derived, that do the actual + * shader compiling and device updating. */ + +class ShaderManager { +public: + bool need_update; + + static ShaderManager *create(Scene *scene); + virtual ~ShaderManager(); + + /* device update */ + virtual void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) = 0; + virtual void device_free(Device *device, DeviceScene *dscene) = 0; + + /* get globally unique id for a type of attribute */ + uint get_attribute_id(ustring name); + uint get_attribute_id(Attribute::Standard std); + + /* get shader id for mesh faces */ + int get_shader_id(uint shader, Mesh *mesh = NULL, bool smooth = false); + + /* add default shaders to scene, to use as default for things that don't + have any shader assigned explicitly */ + static void add_default(Scene *scene); + +protected: + ShaderManager(); + + typedef unordered_map AttributeIDMap; + AttributeIDMap unique_attribute_id; +}; + +CCL_NAMESPACE_END + +#endif /* __SHADER_H__ */ + diff --git a/intern/cycles/render/sobol.cpp b/intern/cycles/render/sobol.cpp new file mode 100644 index 00000000000..be8939174b4 --- /dev/null +++ b/intern/cycles/render/sobol.cpp @@ -0,0 +1,21304 @@ +/* + * Sobol sequence direction vectors. + * + * This file contains code to create direction vectors for generating sobol + * sequences in high dimensions. It is adapted from code on this webpage: + * + * http://web.maths.unsw.edu.au/~fkuo/sobol/ + * + * From these papers: + * + * S. Joe and F. Y. Kuo, Remark on Algorithm 659: Implementing Sobol's quasirandom + * sequence generator, ACM Trans. Math. Softw. 29, 49-57 (2003) + * + * S. Joe and F. Y. Kuo, Constructing Sobol sequences with better two-dimensional + * projections, SIAM J. Sci. Comput. 30, 2635-2654 (2008) + * + */ + +/* Copyright (c) 2008, Frances Y. Kuo and Stephen Joe + * 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 names of the copyright holders nor the names of the + * University of New South Wales and the University of Waikato + * and 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 ``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 HOLDERS 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 "util_debug.h" + +#include "sobol.h" + +CCL_NAMESPACE_BEGIN + +#define SOBOL_MAX_NUMBER 32 + +typedef struct SobolDirectionNumbers { + unsigned int d, s, a; + unsigned int m[SOBOL_MAX_NUMBER]; +} SobolDirectionNumbers; + +static SobolDirectionNumbers SOBOL_NUMBERS[SOBOL_MAX_DIMENSIONS-1] = { +{2, 1, 0, {1}}, +{3, 2, 1, {1, 3}}, +{4, 3, 1, {1, 3, 1}}, +{5, 3, 2, {1, 1, 1}}, +{6, 4, 1, {1, 1, 3, 3}}, +{7, 4, 4, {1, 3, 5, 13}}, +{8, 5, 2, {1, 1, 5, 5, 17}}, +{9, 5, 4, {1, 1, 5, 5, 5}}, +{10, 5, 7, {1, 1, 7, 11, 19}}, +{11, 5, 11, {1, 1, 5, 1, 1}}, +{12, 5, 13, {1, 1, 1, 3, 11}}, +{13, 5, 14, {1, 3, 5, 5, 31}}, +{14, 6, 1, {1, 3, 3, 9, 7, 49}}, +{15, 6, 13, {1, 1, 1, 15, 21, 21}}, +{16, 6, 16, {1, 3, 1, 13, 27, 49}}, +{17, 6, 19, {1, 1, 1, 15, 7, 5}}, +{18, 6, 22, {1, 3, 1, 15, 13, 25}}, +{19, 6, 25, {1, 1, 5, 5, 19, 61}}, +{20, 7, 1, {1, 3, 7, 11, 23, 15, 103}}, +{21, 7, 4, {1, 3, 7, 13, 13, 15, 69}}, +{22, 7, 7, {1, 1, 3, 13, 7, 35, 63}}, +{23, 7, 8, {1, 3, 5, 9, 1, 25, 53}}, +{24, 7, 14, {1, 3, 1, 13, 9, 35, 107}}, +{25, 7, 19, {1, 3, 1, 5, 27, 61, 31}}, +{26, 7, 21, {1, 1, 5, 11, 19, 41, 61}}, +{27, 7, 28, {1, 3, 5, 3, 3, 13, 69}}, +{28, 7, 31, {1, 1, 7, 13, 1, 19, 1}}, +{29, 7, 32, {1, 3, 7, 5, 13, 19, 59}}, +{30, 7, 37, {1, 1, 3, 9, 25, 29, 41}}, +{31, 7, 41, {1, 3, 5, 13, 23, 1, 55}}, +{32, 7, 42, {1, 3, 7, 3, 13, 59, 17}}, +{33, 7, 50, {1, 3, 1, 3, 5, 53, 69}}, +{34, 7, 55, {1, 1, 5, 5, 23, 33, 13}}, +{35, 7, 56, {1, 1, 7, 7, 1, 61, 123}}, +{36, 7, 59, {1, 1, 7, 9, 13, 61, 49}}, +{37, 7, 62, {1, 3, 3, 5, 3, 55, 33}}, +{38, 8, 14, {1, 3, 1, 15, 31, 13, 49, 245}}, +{39, 8, 21, {1, 3, 5, 15, 31, 59, 63, 97}}, +{40, 8, 22, {1, 3, 1, 11, 11, 11, 77, 249}}, +{41, 8, 38, {1, 3, 1, 11, 27, 43, 71, 9}}, +{42, 8, 47, {1, 1, 7, 15, 21, 11, 81, 45}}, +{43, 8, 49, {1, 3, 7, 3, 25, 31, 65, 79}}, +{44, 8, 50, {1, 3, 1, 1, 19, 11, 3, 205}}, +{45, 8, 52, {1, 1, 5, 9, 19, 21, 29, 157}}, +{46, 8, 56, {1, 3, 7, 11, 1, 33, 89, 185}}, +{47, 8, 67, {1, 3, 3, 3, 15, 9, 79, 71}}, +{48, 8, 70, {1, 3, 7, 11, 15, 39, 119, 27}}, +{49, 8, 84, {1, 1, 3, 1, 11, 31, 97, 225}}, +{50, 8, 97, {1, 1, 1, 3, 23, 43, 57, 177}}, +{51, 8, 103, {1, 3, 7, 7, 17, 17, 37, 71}}, +{52, 8, 115, {1, 3, 1, 5, 27, 63, 123, 213}}, +{53, 8, 122, {1, 1, 3, 5, 11, 43, 53, 133}}, +{54, 9, 8, {1, 3, 5, 5, 29, 17, 47, 173, 479}}, +{55, 9, 13, {1, 3, 3, 11, 3, 1, 109, 9, 69}}, +{56, 9, 16, {1, 1, 1, 5, 17, 39, 23, 5, 343}}, +{57, 9, 22, {1, 3, 1, 5, 25, 15, 31, 103, 499}}, +{58, 9, 25, {1, 1, 1, 11, 11, 17, 63, 105, 183}}, +{59, 9, 44, {1, 1, 5, 11, 9, 29, 97, 231, 363}}, +{60, 9, 47, {1, 1, 5, 15, 19, 45, 41, 7, 383}}, +{61, 9, 52, {1, 3, 7, 7, 31, 19, 83, 137, 221}}, +{62, 9, 55, {1, 1, 1, 3, 23, 15, 111, 223, 83}}, +{63, 9, 59, {1, 1, 5, 13, 31, 15, 55, 25, 161}}, +{64, 9, 62, {1, 1, 3, 13, 25, 47, 39, 87, 257}}, +{65, 9, 67, {1, 1, 1, 11, 21, 53, 125, 249, 293}}, +{66, 9, 74, {1, 1, 7, 11, 11, 7, 57, 79, 323}}, +{67, 9, 81, {1, 1, 5, 5, 17, 13, 81, 3, 131}}, +{68, 9, 82, {1, 1, 7, 13, 23, 7, 65, 251, 475}}, +{69, 9, 87, {1, 3, 5, 1, 9, 43, 3, 149, 11}}, +{70, 9, 91, {1, 1, 3, 13, 31, 13, 13, 255, 487}}, +{71, 9, 94, {1, 3, 3, 1, 5, 63, 89, 91, 127}}, +{72, 9, 103, {1, 1, 3, 3, 1, 19, 123, 127, 237}}, +{73, 9, 104, {1, 1, 5, 7, 23, 31, 37, 243, 289}}, +{74, 9, 109, {1, 1, 5, 11, 17, 53, 117, 183, 491}}, +{75, 9, 122, {1, 1, 1, 5, 1, 13, 13, 209, 345}}, +{76, 9, 124, {1, 1, 3, 15, 1, 57, 115, 7, 33}}, +{77, 9, 137, {1, 3, 1, 11, 7, 43, 81, 207, 175}}, +{78, 9, 138, {1, 3, 1, 1, 15, 27, 63, 255, 49}}, +{79, 9, 143, {1, 3, 5, 3, 27, 61, 105, 171, 305}}, +{80, 9, 145, {1, 1, 5, 3, 1, 3, 57, 249, 149}}, +{81, 9, 152, {1, 1, 3, 5, 5, 57, 15, 13, 159}}, +{82, 9, 157, {1, 1, 1, 11, 7, 11, 105, 141, 225}}, +{83, 9, 167, {1, 3, 3, 5, 27, 59, 121, 101, 271}}, +{84, 9, 173, {1, 3, 5, 9, 11, 49, 51, 59, 115}}, +{85, 9, 176, {1, 1, 7, 1, 23, 45, 125, 71, 419}}, +{86, 9, 181, {1, 1, 3, 5, 23, 5, 105, 109, 75}}, +{87, 9, 182, {1, 1, 7, 15, 7, 11, 67, 121, 453}}, +{88, 9, 185, {1, 3, 7, 3, 9, 13, 31, 27, 449}}, +{89, 9, 191, {1, 3, 1, 15, 19, 39, 39, 89, 15}}, +{90, 9, 194, {1, 1, 1, 1, 1, 33, 73, 145, 379}}, +{91, 9, 199, {1, 3, 1, 15, 15, 43, 29, 13, 483}}, +{92, 9, 218, {1, 1, 7, 3, 19, 27, 85, 131, 431}}, +{93, 9, 220, {1, 3, 3, 3, 5, 35, 23, 195, 349}}, +{94, 9, 227, {1, 3, 3, 7, 9, 27, 39, 59, 297}}, +{95, 9, 229, {1, 1, 3, 9, 11, 17, 13, 241, 157}}, +{96, 9, 230, {1, 3, 7, 15, 25, 57, 33, 189, 213}}, +{97, 9, 234, {1, 1, 7, 1, 9, 55, 73, 83, 217}}, +{98, 9, 236, {1, 3, 3, 13, 19, 27, 23, 113, 249}}, +{99, 9, 241, {1, 3, 5, 3, 23, 43, 3, 253, 479}}, +{100, 9, 244, {1, 1, 5, 5, 11, 5, 45, 117, 217}}, +{101, 9, 253, {1, 3, 3, 7, 29, 37, 33, 123, 147}}, +{102, 10, 4, {1, 3, 1, 15, 5, 5, 37, 227, 223, 459}}, +{103, 10, 13, {1, 1, 7, 5, 5, 39, 63, 255, 135, 487}}, +{104, 10, 19, {1, 3, 1, 7, 9, 7, 87, 249, 217, 599}}, +{105, 10, 22, {1, 1, 3, 13, 9, 47, 7, 225, 363, 247}}, +{106, 10, 50, {1, 3, 7, 13, 19, 13, 9, 67, 9, 737}}, +{107, 10, 55, {1, 3, 5, 5, 19, 59, 7, 41, 319, 677}}, +{108, 10, 64, {1, 1, 5, 3, 31, 63, 15, 43, 207, 789}}, +{109, 10, 69, {1, 1, 7, 9, 13, 39, 3, 47, 497, 169}}, +{110, 10, 98, {1, 3, 1, 7, 21, 17, 97, 19, 415, 905}}, +{111, 10, 107, {1, 3, 7, 1, 3, 31, 71, 111, 165, 127}}, +{112, 10, 115, {1, 1, 5, 11, 1, 61, 83, 119, 203, 847}}, +{113, 10, 121, {1, 3, 3, 13, 9, 61, 19, 97, 47, 35}}, +{114, 10, 127, {1, 1, 7, 7, 15, 29, 63, 95, 417, 469}}, +{115, 10, 134, {1, 3, 1, 9, 25, 9, 71, 57, 213, 385}}, +{116, 10, 140, {1, 3, 5, 13, 31, 47, 101, 57, 39, 341}}, +{117, 10, 145, {1, 1, 3, 3, 31, 57, 125, 173, 365, 551}}, +{118, 10, 152, {1, 3, 7, 1, 13, 57, 67, 157, 451, 707}}, +{119, 10, 158, {1, 1, 1, 7, 21, 13, 105, 89, 429, 965}}, +{120, 10, 161, {1, 1, 5, 9, 17, 51, 45, 119, 157, 141}}, +{121, 10, 171, {1, 3, 7, 7, 13, 45, 91, 9, 129, 741}}, +{122, 10, 181, {1, 3, 7, 1, 23, 57, 67, 141, 151, 571}}, +{123, 10, 194, {1, 1, 3, 11, 17, 47, 93, 107, 375, 157}}, +{124, 10, 199, {1, 3, 3, 5, 11, 21, 43, 51, 169, 915}}, +{125, 10, 203, {1, 1, 5, 3, 15, 55, 101, 67, 455, 625}}, +{126, 10, 208, {1, 3, 5, 9, 1, 23, 29, 47, 345, 595}}, +{127, 10, 227, {1, 3, 7, 7, 5, 49, 29, 155, 323, 589}}, +{128, 10, 242, {1, 3, 3, 7, 5, 41, 127, 61, 261, 717}}, +{129, 10, 251, {1, 3, 7, 7, 17, 23, 117, 67, 129, 1009}}, +{130, 10, 253, {1, 1, 3, 13, 11, 39, 21, 207, 123, 305}}, +{131, 10, 265, {1, 1, 3, 9, 29, 3, 95, 47, 231, 73}}, +{132, 10, 266, {1, 3, 1, 9, 1, 29, 117, 21, 441, 259}}, +{133, 10, 274, {1, 3, 1, 13, 21, 39, 125, 211, 439, 723}}, +{134, 10, 283, {1, 1, 7, 3, 17, 63, 115, 89, 49, 773}}, +{135, 10, 289, {1, 3, 7, 13, 11, 33, 101, 107, 63, 73}}, +{136, 10, 295, {1, 1, 5, 5, 13, 57, 63, 135, 437, 177}}, +{137, 10, 301, {1, 1, 3, 7, 27, 63, 93, 47, 417, 483}}, +{138, 10, 316, {1, 1, 3, 1, 23, 29, 1, 191, 49, 23}}, +{139, 10, 319, {1, 1, 3, 15, 25, 55, 9, 101, 219, 607}}, +{140, 10, 324, {1, 3, 1, 7, 7, 19, 51, 251, 393, 307}}, +{141, 10, 346, {1, 3, 3, 3, 25, 55, 17, 75, 337, 3}}, +{142, 10, 352, {1, 1, 1, 13, 25, 17, 65, 45, 479, 413}}, +{143, 10, 361, {1, 1, 7, 7, 27, 49, 99, 161, 213, 727}}, +{144, 10, 367, {1, 3, 5, 1, 23, 5, 43, 41, 251, 857}}, +{145, 10, 382, {1, 3, 3, 7, 11, 61, 39, 87, 383, 835}}, +{146, 10, 395, {1, 1, 3, 15, 13, 7, 29, 7, 505, 923}}, +{147, 10, 398, {1, 3, 7, 1, 5, 31, 47, 157, 445, 501}}, +{148, 10, 400, {1, 1, 3, 7, 1, 43, 9, 147, 115, 605}}, +{149, 10, 412, {1, 3, 3, 13, 5, 1, 119, 211, 455, 1001}}, +{150, 10, 419, {1, 1, 3, 5, 13, 19, 3, 243, 75, 843}}, +{151, 10, 422, {1, 3, 7, 7, 1, 19, 91, 249, 357, 589}}, +{152, 10, 426, {1, 1, 1, 9, 1, 25, 109, 197, 279, 411}}, +{153, 10, 428, {1, 3, 1, 15, 23, 57, 59, 135, 191, 75}}, +{154, 10, 433, {1, 1, 5, 15, 29, 21, 39, 253, 383, 349}}, +{155, 10, 446, {1, 3, 3, 5, 19, 45, 61, 151, 199, 981}}, +{156, 10, 454, {1, 3, 5, 13, 9, 61, 107, 141, 141, 1}}, +{157, 10, 457, {1, 3, 1, 11, 27, 25, 85, 105, 309, 979}}, +{158, 10, 472, {1, 3, 3, 11, 19, 7, 115, 223, 349, 43}}, +{159, 10, 493, {1, 1, 7, 9, 21, 39, 123, 21, 275, 927}}, +{160, 10, 505, {1, 1, 7, 13, 15, 41, 47, 243, 303, 437}}, +{161, 10, 508, {1, 1, 1, 7, 7, 3, 15, 99, 409, 719}}, +{162, 11, 2, {1, 3, 3, 15, 27, 49, 113, 123, 113, 67, 469}}, +{163, 11, 11, {1, 3, 7, 11, 3, 23, 87, 169, 119, 483, 199}}, +{164, 11, 21, {1, 1, 5, 15, 7, 17, 109, 229, 179, 213, 741}}, +{165, 11, 22, {1, 1, 5, 13, 11, 17, 25, 135, 403, 557, 1433}}, +{166, 11, 35, {1, 3, 1, 1, 1, 61, 67, 215, 189, 945, 1243}}, +{167, 11, 49, {1, 1, 7, 13, 17, 33, 9, 221, 429, 217, 1679}}, +{168, 11, 50, {1, 1, 3, 11, 27, 3, 15, 93, 93, 865, 1049}}, +{169, 11, 56, {1, 3, 7, 7, 25, 41, 121, 35, 373, 379, 1547}}, +{170, 11, 61, {1, 3, 3, 9, 11, 35, 45, 205, 241, 9, 59}}, +{171, 11, 70, {1, 3, 1, 7, 3, 51, 7, 177, 53, 975, 89}}, +{172, 11, 74, {1, 1, 3, 5, 27, 1, 113, 231, 299, 759, 861}}, +{173, 11, 79, {1, 3, 3, 15, 25, 29, 5, 255, 139, 891, 2031}}, +{174, 11, 84, {1, 3, 1, 1, 13, 9, 109, 193, 419, 95, 17}}, +{175, 11, 88, {1, 1, 7, 9, 3, 7, 29, 41, 135, 839, 867}}, +{176, 11, 103, {1, 1, 7, 9, 25, 49, 123, 217, 113, 909, 215}}, +{177, 11, 104, {1, 1, 7, 3, 23, 15, 43, 133, 217, 327, 901}}, +{178, 11, 112, {1, 1, 3, 3, 13, 53, 63, 123, 477, 711, 1387}}, +{179, 11, 115, {1, 1, 3, 15, 7, 29, 75, 119, 181, 957, 247}}, +{180, 11, 117, {1, 1, 1, 11, 27, 25, 109, 151, 267, 99, 1461}}, +{181, 11, 122, {1, 3, 7, 15, 5, 5, 53, 145, 11, 725, 1501}}, +{182, 11, 134, {1, 3, 7, 1, 9, 43, 71, 229, 157, 607, 1835}}, +{183, 11, 137, {1, 3, 3, 13, 25, 1, 5, 27, 471, 349, 127}}, +{184, 11, 146, {1, 1, 1, 1, 23, 37, 9, 221, 269, 897, 1685}}, +{185, 11, 148, {1, 1, 3, 3, 31, 29, 51, 19, 311, 553, 1969}}, +{186, 11, 157, {1, 3, 7, 5, 5, 55, 17, 39, 475, 671, 1529}}, +{187, 11, 158, {1, 1, 7, 1, 1, 35, 47, 27, 437, 395, 1635}}, +{188, 11, 162, {1, 1, 7, 3, 13, 23, 43, 135, 327, 139, 389}}, +{189, 11, 164, {1, 3, 7, 3, 9, 25, 91, 25, 429, 219, 513}}, +{190, 11, 168, {1, 1, 3, 5, 13, 29, 119, 201, 277, 157, 2043}}, +{191, 11, 173, {1, 3, 5, 3, 29, 57, 13, 17, 167, 739, 1031}}, +{192, 11, 185, {1, 3, 3, 5, 29, 21, 95, 27, 255, 679, 1531}}, +{193, 11, 186, {1, 3, 7, 15, 9, 5, 21, 71, 61, 961, 1201}}, +{194, 11, 191, {1, 3, 5, 13, 15, 57, 33, 93, 459, 867, 223}}, +{195, 11, 193, {1, 1, 1, 15, 17, 43, 127, 191, 67, 177, 1073}}, +{196, 11, 199, {1, 1, 1, 15, 23, 7, 21, 199, 75, 293, 1611}}, +{197, 11, 213, {1, 3, 7, 13, 15, 39, 21, 149, 65, 741, 319}}, +{198, 11, 214, {1, 3, 7, 11, 23, 13, 101, 89, 277, 519, 711}}, +{199, 11, 220, {1, 3, 7, 15, 19, 27, 85, 203, 441, 97, 1895}}, +{200, 11, 227, {1, 3, 1, 3, 29, 25, 21, 155, 11, 191, 197}}, +{201, 11, 236, {1, 1, 7, 5, 27, 11, 81, 101, 457, 675, 1687}}, +{202, 11, 242, {1, 3, 1, 5, 25, 5, 65, 193, 41, 567, 781}}, +{203, 11, 251, {1, 3, 1, 5, 11, 15, 113, 77, 411, 695, 1111}}, +{204, 11, 256, {1, 1, 3, 9, 11, 53, 119, 171, 55, 297, 509}}, +{205, 11, 259, {1, 1, 1, 1, 11, 39, 113, 139, 165, 347, 595}}, +{206, 11, 265, {1, 3, 7, 11, 9, 17, 101, 13, 81, 325, 1733}}, +{207, 11, 266, {1, 3, 1, 1, 21, 43, 115, 9, 113, 907, 645}}, +{208, 11, 276, {1, 1, 7, 3, 9, 25, 117, 197, 159, 471, 475}}, +{209, 11, 292, {1, 3, 1, 9, 11, 21, 57, 207, 485, 613, 1661}}, +{210, 11, 304, {1, 1, 7, 7, 27, 55, 49, 223, 89, 85, 1523}}, +{211, 11, 310, {1, 1, 5, 3, 19, 41, 45, 51, 447, 299, 1355}}, +{212, 11, 316, {1, 3, 1, 13, 1, 33, 117, 143, 313, 187, 1073}}, +{213, 11, 319, {1, 1, 7, 7, 5, 11, 65, 97, 377, 377, 1501}}, +{214, 11, 322, {1, 3, 1, 1, 21, 35, 95, 65, 99, 23, 1239}}, +{215, 11, 328, {1, 1, 5, 9, 3, 37, 95, 167, 115, 425, 867}}, +{216, 11, 334, {1, 3, 3, 13, 1, 37, 27, 189, 81, 679, 773}}, +{217, 11, 339, {1, 1, 3, 11, 1, 61, 99, 233, 429, 969, 49}}, +{218, 11, 341, {1, 1, 1, 7, 25, 63, 99, 165, 245, 793, 1143}}, +{219, 11, 345, {1, 1, 5, 11, 11, 43, 55, 65, 71, 283, 273}}, +{220, 11, 346, {1, 1, 5, 5, 9, 3, 101, 251, 355, 379, 1611}}, +{221, 11, 362, {1, 1, 1, 15, 21, 63, 85, 99, 49, 749, 1335}}, +{222, 11, 367, {1, 1, 5, 13, 27, 9, 121, 43, 255, 715, 289}}, +{223, 11, 372, {1, 3, 1, 5, 27, 19, 17, 223, 77, 571, 1415}}, +{224, 11, 375, {1, 1, 5, 3, 13, 59, 125, 251, 195, 551, 1737}}, +{225, 11, 376, {1, 3, 3, 15, 13, 27, 49, 105, 389, 971, 755}}, +{226, 11, 381, {1, 3, 5, 15, 23, 43, 35, 107, 447, 763, 253}}, +{227, 11, 385, {1, 3, 5, 11, 21, 3, 17, 39, 497, 407, 611}}, +{228, 11, 388, {1, 1, 7, 13, 15, 31, 113, 17, 23, 507, 1995}}, +{229, 11, 392, {1, 1, 7, 15, 3, 15, 31, 153, 423, 79, 503}}, +{230, 11, 409, {1, 1, 7, 9, 19, 25, 23, 171, 505, 923, 1989}}, +{231, 11, 415, {1, 1, 5, 9, 21, 27, 121, 223, 133, 87, 697}}, +{232, 11, 416, {1, 1, 5, 5, 9, 19, 107, 99, 319, 765, 1461}}, +{233, 11, 421, {1, 1, 3, 3, 19, 25, 3, 101, 171, 729, 187}}, +{234, 11, 428, {1, 1, 3, 1, 13, 23, 85, 93, 291, 209, 37}}, +{235, 11, 431, {1, 1, 1, 15, 25, 25, 77, 253, 333, 947, 1073}}, +{236, 11, 434, {1, 1, 3, 9, 17, 29, 55, 47, 255, 305, 2037}}, +{237, 11, 439, {1, 3, 3, 9, 29, 63, 9, 103, 489, 939, 1523}}, +{238, 11, 446, {1, 3, 7, 15, 7, 31, 89, 175, 369, 339, 595}}, +{239, 11, 451, {1, 3, 7, 13, 25, 5, 71, 207, 251, 367, 665}}, +{240, 11, 453, {1, 3, 3, 3, 21, 25, 75, 35, 31, 321, 1603}}, +{241, 11, 457, {1, 1, 1, 9, 11, 1, 65, 5, 11, 329, 535}}, +{242, 11, 458, {1, 1, 5, 3, 19, 13, 17, 43, 379, 485, 383}}, +{243, 11, 471, {1, 3, 5, 13, 13, 9, 85, 147, 489, 787, 1133}}, +{244, 11, 475, {1, 3, 1, 1, 5, 51, 37, 129, 195, 297, 1783}}, +{245, 11, 478, {1, 1, 3, 15, 19, 57, 59, 181, 455, 697, 2033}}, +{246, 11, 484, {1, 3, 7, 1, 27, 9, 65, 145, 325, 189, 201}}, +{247, 11, 493, {1, 3, 1, 15, 31, 23, 19, 5, 485, 581, 539}}, +{248, 11, 494, {1, 1, 7, 13, 11, 15, 65, 83, 185, 847, 831}}, +{249, 11, 499, {1, 3, 5, 7, 7, 55, 73, 15, 303, 511, 1905}}, +{250, 11, 502, {1, 3, 5, 9, 7, 21, 45, 15, 397, 385, 597}}, +{251, 11, 517, {1, 3, 7, 3, 23, 13, 73, 221, 511, 883, 1265}}, +{252, 11, 518, {1, 1, 3, 11, 1, 51, 73, 185, 33, 975, 1441}}, +{253, 11, 524, {1, 3, 3, 9, 19, 59, 21, 39, 339, 37, 143}}, +{254, 11, 527, {1, 1, 7, 1, 31, 33, 19, 167, 117, 635, 639}}, +{255, 11, 555, {1, 1, 1, 3, 5, 13, 59, 83, 355, 349, 1967}}, +{256, 11, 560, {1, 1, 1, 5, 19, 3, 53, 133, 97, 863, 983}}, +{257, 11, 565, {1, 3, 1, 13, 9, 41, 91, 105, 173, 97, 625}}, +{258, 11, 569, {1, 1, 5, 3, 7, 49, 115, 133, 71, 231, 1063}}, +{259, 11, 578, {1, 1, 7, 5, 17, 43, 47, 45, 497, 547, 757}}, +{260, 11, 580, {1, 3, 5, 15, 21, 61, 123, 191, 249, 31, 631}}, +{261, 11, 587, {1, 3, 7, 9, 17, 7, 11, 185, 127, 169, 1951}}, +{262, 11, 589, {1, 1, 5, 13, 11, 11, 9, 49, 29, 125, 791}}, +{263, 11, 590, {1, 1, 1, 15, 31, 41, 13, 167, 273, 429, 57}}, +{264, 11, 601, {1, 3, 5, 3, 27, 7, 35, 209, 65, 265, 1393}}, +{265, 11, 607, {1, 3, 1, 13, 31, 19, 53, 143, 135, 9, 1021}}, +{266, 11, 611, {1, 1, 7, 13, 31, 5, 115, 153, 143, 957, 623}}, +{267, 11, 614, {1, 1, 5, 11, 25, 19, 29, 31, 297, 943, 443}}, +{268, 11, 617, {1, 3, 3, 5, 21, 11, 127, 81, 479, 25, 699}}, +{269, 11, 618, {1, 1, 3, 11, 25, 31, 97, 19, 195, 781, 705}}, +{270, 11, 625, {1, 1, 5, 5, 31, 11, 75, 207, 197, 885, 2037}}, +{271, 11, 628, {1, 1, 1, 11, 9, 23, 29, 231, 307, 17, 1497}}, +{272, 11, 635, {1, 1, 5, 11, 11, 43, 111, 233, 307, 523, 1259}}, +{273, 11, 641, {1, 1, 7, 5, 1, 21, 107, 229, 343, 933, 217}}, +{274, 11, 647, {1, 1, 1, 11, 3, 21, 125, 131, 405, 599, 1469}}, +{275, 11, 654, {1, 3, 5, 5, 9, 39, 33, 81, 389, 151, 811}}, +{276, 11, 659, {1, 1, 7, 7, 7, 1, 59, 223, 265, 529, 2021}}, +{277, 11, 662, {1, 3, 1, 3, 9, 23, 85, 181, 47, 265, 49}}, +{278, 11, 672, {1, 3, 5, 11, 19, 23, 9, 7, 157, 299, 1983}}, +{279, 11, 675, {1, 3, 1, 5, 15, 5, 21, 105, 29, 339, 1041}}, +{280, 11, 682, {1, 1, 1, 1, 5, 33, 65, 85, 111, 705, 479}}, +{281, 11, 684, {1, 1, 1, 7, 9, 35, 77, 87, 151, 321, 101}}, +{282, 11, 689, {1, 1, 5, 7, 17, 1, 51, 197, 175, 811, 1229}}, +{283, 11, 695, {1, 3, 3, 15, 23, 37, 85, 185, 239, 543, 731}}, +{284, 11, 696, {1, 3, 1, 7, 7, 55, 111, 109, 289, 439, 243}}, +{285, 11, 713, {1, 1, 7, 11, 17, 53, 35, 217, 259, 853, 1667}}, +{286, 11, 719, {1, 3, 1, 9, 1, 63, 87, 17, 73, 565, 1091}}, +{287, 11, 724, {1, 1, 3, 3, 11, 41, 1, 57, 295, 263, 1029}}, +{288, 11, 733, {1, 1, 5, 1, 27, 45, 109, 161, 411, 421, 1395}}, +{289, 11, 734, {1, 3, 5, 11, 25, 35, 47, 191, 339, 417, 1727}}, +{290, 11, 740, {1, 1, 5, 15, 21, 1, 93, 251, 351, 217, 1767}}, +{291, 11, 747, {1, 3, 3, 11, 3, 7, 75, 155, 313, 211, 491}}, +{292, 11, 749, {1, 3, 3, 5, 11, 9, 101, 161, 453, 913, 1067}}, +{293, 11, 752, {1, 1, 3, 1, 15, 45, 127, 141, 163, 727, 1597}}, +{294, 11, 755, {1, 3, 3, 7, 1, 33, 63, 73, 73, 341, 1691}}, +{295, 11, 762, {1, 3, 5, 13, 15, 39, 53, 235, 77, 99, 949}}, +{296, 11, 770, {1, 1, 5, 13, 31, 17, 97, 13, 215, 301, 1927}}, +{297, 11, 782, {1, 1, 7, 1, 1, 37, 91, 93, 441, 251, 1131}}, +{298, 11, 784, {1, 3, 7, 9, 25, 5, 105, 69, 81, 943, 1459}}, +{299, 11, 787, {1, 3, 7, 11, 31, 43, 13, 209, 27, 1017, 501}}, +{300, 11, 789, {1, 1, 7, 15, 1, 33, 31, 233, 161, 507, 387}}, +{301, 11, 793, {1, 3, 3, 5, 5, 53, 33, 177, 503, 627, 1927}}, +{302, 11, 796, {1, 1, 7, 11, 7, 61, 119, 31, 457, 229, 1875}}, +{303, 11, 803, {1, 1, 5, 15, 19, 5, 53, 201, 157, 885, 1057}}, +{304, 11, 805, {1, 3, 7, 9, 1, 35, 51, 113, 249, 425, 1009}}, +{305, 11, 810, {1, 3, 5, 7, 21, 53, 37, 155, 119, 345, 631}}, +{306, 11, 815, {1, 3, 5, 7, 15, 31, 109, 69, 503, 595, 1879}}, +{307, 11, 824, {1, 3, 3, 1, 25, 35, 65, 131, 403, 705, 503}}, +{308, 11, 829, {1, 3, 7, 7, 19, 33, 11, 153, 45, 633, 499}}, +{309, 11, 830, {1, 3, 3, 5, 11, 3, 29, 93, 487, 33, 703}}, +{310, 11, 832, {1, 1, 3, 15, 21, 53, 107, 179, 387, 927, 1757}}, +{311, 11, 841, {1, 1, 3, 7, 21, 45, 51, 147, 175, 317, 361}}, +{312, 11, 847, {1, 1, 1, 7, 7, 13, 15, 243, 269, 795, 1965}}, +{313, 11, 849, {1, 1, 3, 5, 19, 33, 57, 115, 443, 537, 627}}, +{314, 11, 861, {1, 3, 3, 9, 3, 39, 25, 61, 185, 717, 1049}}, +{315, 11, 871, {1, 3, 7, 3, 7, 37, 107, 153, 7, 269, 1581}}, +{316, 11, 878, {1, 1, 7, 3, 7, 41, 91, 41, 145, 489, 1245}}, +{317, 11, 889, {1, 1, 5, 9, 7, 7, 105, 81, 403, 407, 283}}, +{318, 11, 892, {1, 1, 7, 9, 27, 55, 29, 77, 193, 963, 949}}, +{319, 11, 901, {1, 1, 5, 3, 25, 51, 107, 63, 403, 917, 815}}, +{320, 11, 908, {1, 1, 7, 3, 7, 61, 19, 51, 457, 599, 535}}, +{321, 11, 920, {1, 3, 7, 1, 23, 51, 105, 153, 239, 215, 1847}}, +{322, 11, 923, {1, 1, 3, 5, 27, 23, 79, 49, 495, 45, 1935}}, +{323, 11, 942, {1, 1, 1, 11, 11, 47, 55, 133, 495, 999, 1461}}, +{324, 11, 949, {1, 1, 3, 15, 27, 51, 93, 17, 355, 763, 1675}}, +{325, 11, 950, {1, 3, 1, 3, 1, 3, 79, 119, 499, 17, 995}}, +{326, 11, 954, {1, 1, 1, 1, 15, 43, 45, 17, 167, 973, 799}}, +{327, 11, 961, {1, 1, 1, 3, 27, 49, 89, 29, 483, 913, 2023}}, +{328, 11, 968, {1, 1, 3, 3, 5, 11, 75, 7, 41, 851, 611}}, +{329, 11, 971, {1, 3, 1, 3, 7, 57, 39, 123, 257, 283, 507}}, +{330, 11, 973, {1, 3, 3, 11, 27, 23, 113, 229, 187, 299, 133}}, +{331, 11, 979, {1, 1, 3, 13, 9, 63, 101, 77, 451, 169, 337}}, +{332, 11, 982, {1, 3, 7, 3, 3, 59, 45, 195, 229, 415, 409}}, +{333, 11, 986, {1, 3, 5, 3, 11, 19, 71, 93, 43, 857, 369}}, +{334, 11, 998, {1, 3, 7, 9, 19, 33, 115, 19, 241, 703, 247}}, +{335, 11, 1001, {1, 3, 5, 11, 5, 35, 21, 155, 463, 1005, 1073}}, +{336, 11, 1010, {1, 3, 7, 3, 25, 15, 109, 83, 93, 69, 1189}}, +{337, 11, 1012, {1, 3, 5, 7, 5, 21, 93, 133, 135, 167, 903}}, +{338, 12, 41, {1, 1, 7, 7, 3, 59, 121, 161, 285, 815, 1769, 3705}}, +{339, 12, 52, {1, 3, 1, 1, 3, 47, 103, 171, 381, 609, 185, 373}}, +{340, 12, 61, {1, 3, 3, 15, 23, 33, 107, 131, 441, 445, 689, 2059}}, +{341, 12, 62, {1, 3, 3, 11, 7, 53, 101, 167, 435, 803, 1255, 3781}}, +{342, 12, 76, {1, 1, 5, 11, 15, 59, 41, 19, 135, 835, 1263, 505}}, +{343, 12, 104, {1, 1, 7, 11, 21, 49, 23, 219, 127, 961, 1065, 385}}, +{344, 12, 117, {1, 3, 5, 15, 7, 47, 117, 217, 45, 731, 1639, 733}}, +{345, 12, 131, {1, 1, 7, 11, 27, 57, 91, 87, 81, 35, 1269, 1007}}, +{346, 12, 143, {1, 1, 3, 11, 15, 37, 53, 219, 193, 937, 1899, 3733}}, +{347, 12, 145, {1, 3, 5, 3, 13, 11, 27, 19, 199, 393, 965, 2195}}, +{348, 12, 157, {1, 3, 1, 3, 5, 1, 37, 173, 413, 1023, 553, 409}}, +{349, 12, 167, {1, 3, 1, 7, 15, 29, 123, 95, 255, 373, 1799, 3841}}, +{350, 12, 171, {1, 3, 5, 13, 21, 57, 51, 17, 511, 195, 1157, 1831}}, +{351, 12, 176, {1, 1, 1, 15, 29, 19, 7, 73, 295, 519, 587, 3523}}, +{352, 12, 181, {1, 1, 5, 13, 13, 35, 115, 191, 123, 535, 717, 1661}}, +{353, 12, 194, {1, 3, 3, 5, 23, 21, 47, 251, 379, 921, 1119, 297}}, +{354, 12, 217, {1, 3, 3, 9, 29, 53, 121, 201, 135, 193, 523, 2943}}, +{355, 12, 236, {1, 1, 1, 7, 29, 45, 125, 9, 99, 867, 425, 601}}, +{356, 12, 239, {1, 3, 1, 9, 13, 15, 67, 181, 109, 293, 1305, 3079}}, +{357, 12, 262, {1, 3, 3, 9, 5, 35, 15, 209, 305, 87, 767, 2795}}, +{358, 12, 283, {1, 3, 3, 11, 27, 57, 113, 123, 179, 643, 149, 523}}, +{359, 12, 286, {1, 1, 3, 15, 11, 17, 67, 223, 63, 657, 335, 3309}}, +{360, 12, 307, {1, 1, 1, 9, 25, 29, 109, 159, 39, 513, 571, 1761}}, +{361, 12, 313, {1, 1, 3, 1, 5, 63, 75, 19, 455, 601, 123, 691}}, +{362, 12, 319, {1, 1, 1, 3, 21, 5, 45, 169, 377, 513, 1951, 2565}}, +{363, 12, 348, {1, 1, 3, 11, 3, 33, 119, 69, 253, 907, 805, 1449}}, +{364, 12, 352, {1, 1, 5, 13, 31, 15, 17, 7, 499, 61, 687, 1867}}, +{365, 12, 357, {1, 3, 7, 11, 17, 33, 73, 77, 299, 243, 641, 2345}}, +{366, 12, 391, {1, 1, 7, 11, 9, 35, 31, 235, 359, 647, 379, 1161}}, +{367, 12, 398, {1, 3, 3, 15, 31, 25, 5, 67, 33, 45, 437, 4067}}, +{368, 12, 400, {1, 1, 3, 11, 7, 17, 37, 87, 333, 253, 1517, 2921}}, +{369, 12, 412, {1, 1, 7, 15, 7, 15, 107, 189, 153, 769, 1521, 3427}}, +{370, 12, 415, {1, 3, 5, 13, 5, 61, 113, 37, 293, 393, 113, 43}}, +{371, 12, 422, {1, 1, 1, 15, 29, 43, 107, 31, 167, 147, 301, 1021}}, +{372, 12, 440, {1, 1, 1, 13, 3, 1, 35, 93, 195, 181, 2027, 1491}}, +{373, 12, 460, {1, 3, 3, 3, 13, 33, 77, 199, 153, 221, 1699, 3671}}, +{374, 12, 465, {1, 3, 5, 13, 7, 49, 123, 155, 495, 681, 819, 809}}, +{375, 12, 468, {1, 3, 5, 15, 27, 61, 117, 189, 183, 887, 617, 4053}}, +{376, 12, 515, {1, 1, 1, 7, 31, 59, 125, 235, 389, 369, 447, 1039}}, +{377, 12, 536, {1, 3, 5, 1, 5, 39, 115, 89, 249, 377, 431, 3747}}, +{378, 12, 539, {1, 1, 1, 5, 7, 47, 59, 157, 77, 445, 699, 3439}}, +{379, 12, 551, {1, 1, 3, 5, 11, 21, 19, 75, 11, 599, 1575, 735}}, +{380, 12, 558, {1, 3, 5, 3, 19, 13, 41, 69, 199, 143, 1761, 3215}}, +{381, 12, 563, {1, 3, 5, 7, 19, 43, 25, 41, 41, 11, 1647, 2783}}, +{382, 12, 570, {1, 3, 1, 9, 19, 45, 111, 97, 405, 399, 457, 3219}}, +{383, 12, 595, {1, 1, 3, 1, 23, 15, 65, 121, 59, 985, 829, 2259}}, +{384, 12, 598, {1, 1, 3, 7, 17, 13, 107, 229, 75, 551, 1299, 2363}}, +{385, 12, 617, {1, 1, 5, 5, 21, 57, 23, 199, 509, 139, 2007, 3875}}, +{386, 12, 647, {1, 3, 1, 11, 19, 53, 15, 229, 215, 741, 695, 823}}, +{387, 12, 654, {1, 3, 7, 1, 29, 3, 17, 163, 417, 559, 549, 319}}, +{388, 12, 678, {1, 3, 1, 13, 17, 9, 47, 133, 365, 7, 1937, 1071}}, +{389, 12, 713, {1, 3, 5, 7, 19, 37, 55, 163, 301, 249, 689, 2327}}, +{390, 12, 738, {1, 3, 5, 13, 11, 23, 61, 205, 257, 377, 615, 1457}}, +{391, 12, 747, {1, 3, 5, 1, 23, 37, 13, 75, 331, 495, 579, 3367}}, +{392, 12, 750, {1, 1, 1, 9, 1, 23, 49, 129, 475, 543, 883, 2531}}, +{393, 12, 757, {1, 3, 1, 5, 23, 59, 51, 35, 343, 695, 219, 369}}, +{394, 12, 772, {1, 3, 3, 1, 27, 17, 63, 97, 71, 507, 1929, 613}}, +{395, 12, 803, {1, 1, 5, 1, 21, 31, 11, 109, 247, 409, 1817, 2173}}, +{396, 12, 810, {1, 1, 3, 15, 23, 9, 7, 209, 301, 23, 147, 1691}}, +{397, 12, 812, {1, 1, 7, 5, 5, 19, 37, 229, 249, 277, 1115, 2309}}, +{398, 12, 850, {1, 1, 1, 5, 5, 63, 5, 249, 285, 431, 343, 2467}}, +{399, 12, 862, {1, 1, 1, 11, 7, 45, 35, 75, 505, 537, 29, 2919}}, +{400, 12, 906, {1, 3, 5, 15, 11, 39, 15, 63, 263, 9, 199, 445}}, +{401, 12, 908, {1, 3, 3, 3, 27, 63, 53, 171, 227, 63, 1049, 827}}, +{402, 12, 929, {1, 1, 3, 13, 7, 11, 115, 183, 179, 937, 1785, 381}}, +{403, 12, 930, {1, 3, 1, 11, 13, 15, 107, 81, 53, 295, 1785, 3757}}, +{404, 12, 954, {1, 3, 3, 13, 11, 5, 109, 243, 3, 505, 323, 1373}}, +{405, 12, 964, {1, 3, 3, 11, 21, 51, 17, 177, 381, 937, 1263, 3889}}, +{406, 12, 982, {1, 3, 5, 9, 27, 25, 85, 193, 143, 573, 1189, 2995}}, +{407, 12, 985, {1, 3, 5, 11, 13, 9, 81, 21, 159, 953, 91, 1751}}, +{408, 12, 991, {1, 1, 3, 3, 27, 61, 11, 253, 391, 333, 1105, 635}}, +{409, 12, 992, {1, 3, 3, 15, 9, 57, 95, 81, 419, 735, 251, 1141}}, +{410, 12, 1067, {1, 1, 5, 9, 31, 39, 59, 13, 319, 807, 1241, 2433}}, +{411, 12, 1070, {1, 3, 3, 5, 27, 13, 107, 141, 423, 937, 2027, 3233}}, +{412, 12, 1096, {1, 3, 3, 9, 9, 25, 125, 23, 443, 835, 1245, 847}}, +{413, 12, 1099, {1, 1, 7, 15, 17, 17, 83, 107, 411, 285, 847, 1571}}, +{414, 12, 1116, {1, 1, 3, 13, 29, 61, 37, 81, 349, 727, 1453, 1957}}, +{415, 12, 1143, {1, 3, 7, 11, 31, 13, 59, 77, 273, 591, 1265, 1533}}, +{416, 12, 1165, {1, 1, 7, 7, 13, 17, 25, 25, 187, 329, 347, 1473}}, +{417, 12, 1178, {1, 3, 7, 7, 5, 51, 37, 99, 221, 153, 503, 2583}}, +{418, 12, 1184, {1, 3, 1, 13, 19, 27, 11, 69, 181, 479, 1183, 3229}}, +{419, 12, 1202, {1, 3, 3, 13, 23, 21, 103, 147, 323, 909, 947, 315}}, +{420, 12, 1213, {1, 3, 1, 3, 23, 1, 31, 59, 93, 513, 45, 2271}}, +{421, 12, 1221, {1, 3, 5, 1, 7, 43, 109, 59, 231, 41, 1515, 2385}}, +{422, 12, 1240, {1, 3, 1, 5, 31, 57, 49, 223, 283, 1013, 11, 701}}, +{423, 12, 1246, {1, 1, 5, 1, 19, 53, 55, 31, 31, 299, 495, 693}}, +{424, 12, 1252, {1, 3, 3, 9, 5, 33, 77, 253, 427, 791, 731, 1019}}, +{425, 12, 1255, {1, 3, 7, 11, 1, 9, 119, 203, 53, 877, 1707, 3499}}, +{426, 12, 1267, {1, 1, 3, 7, 13, 39, 55, 159, 423, 113, 1653, 3455}}, +{427, 12, 1293, {1, 1, 3, 5, 21, 47, 51, 59, 55, 411, 931, 251}}, +{428, 12, 1301, {1, 3, 7, 3, 31, 25, 81, 115, 405, 239, 741, 455}}, +{429, 12, 1305, {1, 1, 5, 1, 31, 3, 101, 83, 479, 491, 1779, 2225}}, +{430, 12, 1332, {1, 3, 3, 3, 9, 37, 107, 161, 203, 503, 767, 3435}}, +{431, 12, 1349, {1, 3, 7, 9, 1, 27, 61, 119, 233, 39, 1375, 4089}}, +{432, 12, 1384, {1, 1, 5, 9, 1, 31, 45, 51, 369, 587, 383, 2813}}, +{433, 12, 1392, {1, 3, 7, 5, 31, 7, 49, 119, 487, 591, 1627, 53}}, +{434, 12, 1402, {1, 1, 7, 1, 9, 47, 1, 223, 369, 711, 1603, 1917}}, +{435, 12, 1413, {1, 3, 5, 3, 21, 37, 111, 17, 483, 739, 1193, 2775}}, +{436, 12, 1417, {1, 3, 3, 7, 17, 11, 51, 117, 455, 191, 1493, 3821}}, +{437, 12, 1423, {1, 1, 5, 9, 23, 39, 99, 181, 343, 485, 99, 1931}}, +{438, 12, 1451, {1, 3, 1, 7, 29, 49, 31, 71, 489, 527, 1763, 2909}}, +{439, 12, 1480, {1, 1, 5, 11, 5, 5, 73, 189, 321, 57, 1191, 3685}}, +{440, 12, 1491, {1, 1, 5, 15, 13, 45, 125, 207, 371, 415, 315, 983}}, +{441, 12, 1503, {1, 3, 3, 5, 25, 59, 33, 31, 239, 919, 1859, 2709}}, +{442, 12, 1504, {1, 3, 5, 13, 27, 61, 23, 115, 61, 413, 1275, 3559}}, +{443, 12, 1513, {1, 3, 7, 15, 5, 59, 101, 81, 47, 967, 809, 3189}}, +{444, 12, 1538, {1, 1, 5, 11, 31, 15, 39, 25, 173, 505, 809, 2677}}, +{445, 12, 1544, {1, 1, 5, 9, 19, 13, 95, 89, 511, 127, 1395, 2935}}, +{446, 12, 1547, {1, 1, 5, 5, 31, 45, 9, 57, 91, 303, 1295, 3215}}, +{447, 12, 1555, {1, 3, 3, 3, 19, 15, 113, 187, 217, 489, 1285, 1803}}, +{448, 12, 1574, {1, 1, 3, 1, 13, 29, 57, 139, 255, 197, 537, 2183}}, +{449, 12, 1603, {1, 3, 1, 15, 11, 7, 53, 255, 467, 9, 757, 3167}}, +{450, 12, 1615, {1, 3, 3, 15, 21, 13, 9, 189, 359, 323, 49, 333}}, +{451, 12, 1618, {1, 3, 7, 11, 7, 37, 21, 119, 401, 157, 1659, 1069}}, +{452, 12, 1629, {1, 1, 5, 7, 17, 33, 115, 229, 149, 151, 2027, 279}}, +{453, 12, 1634, {1, 1, 5, 15, 5, 49, 77, 155, 383, 385, 1985, 945}}, +{454, 12, 1636, {1, 3, 7, 3, 7, 55, 85, 41, 357, 527, 1715, 1619}}, +{455, 12, 1639, {1, 1, 3, 1, 21, 45, 115, 21, 199, 967, 1581, 3807}}, +{456, 12, 1657, {1, 1, 3, 7, 21, 39, 117, 191, 169, 73, 413, 3417}}, +{457, 12, 1667, {1, 1, 1, 13, 1, 31, 57, 195, 231, 321, 367, 1027}}, +{458, 12, 1681, {1, 3, 7, 3, 11, 29, 47, 161, 71, 419, 1721, 437}}, +{459, 12, 1697, {1, 1, 7, 3, 11, 9, 43, 65, 157, 1, 1851, 823}}, +{460, 12, 1704, {1, 1, 1, 5, 21, 15, 31, 101, 293, 299, 127, 1321}}, +{461, 12, 1709, {1, 1, 7, 1, 27, 1, 11, 229, 241, 705, 43, 1475}}, +{462, 12, 1722, {1, 3, 7, 1, 5, 15, 73, 183, 193, 55, 1345, 49}}, +{463, 12, 1730, {1, 3, 3, 3, 19, 3, 55, 21, 169, 663, 1675, 137}}, +{464, 12, 1732, {1, 1, 1, 13, 7, 21, 69, 67, 373, 965, 1273, 2279}}, +{465, 12, 1802, {1, 1, 7, 7, 21, 23, 17, 43, 341, 845, 465, 3355}}, +{466, 12, 1804, {1, 3, 5, 5, 25, 5, 81, 101, 233, 139, 359, 2057}}, +{467, 12, 1815, {1, 1, 3, 11, 15, 39, 55, 3, 471, 765, 1143, 3941}}, +{468, 12, 1826, {1, 1, 7, 15, 9, 57, 81, 79, 215, 433, 333, 3855}}, +{469, 12, 1832, {1, 1, 5, 5, 19, 45, 83, 31, 209, 363, 701, 1303}}, +{470, 12, 1843, {1, 3, 7, 5, 1, 13, 55, 163, 435, 807, 287, 2031}}, +{471, 12, 1849, {1, 3, 3, 7, 3, 3, 17, 197, 39, 169, 489, 1769}}, +{472, 12, 1863, {1, 1, 3, 5, 29, 43, 87, 161, 289, 339, 1233, 2353}}, +{473, 12, 1905, {1, 3, 3, 9, 21, 9, 77, 1, 453, 167, 1643, 2227}}, +{474, 12, 1928, {1, 1, 7, 1, 15, 7, 67, 33, 193, 241, 1031, 2339}}, +{475, 12, 1933, {1, 3, 1, 11, 1, 63, 45, 65, 265, 661, 849, 1979}}, +{476, 12, 1939, {1, 3, 1, 13, 19, 49, 3, 11, 159, 213, 659, 2839}}, +{477, 12, 1976, {1, 3, 5, 11, 9, 29, 27, 227, 253, 449, 1403, 3427}}, +{478, 12, 1996, {1, 1, 3, 1, 7, 3, 77, 143, 277, 779, 1499, 475}}, +{479, 12, 2013, {1, 1, 1, 5, 11, 23, 87, 131, 393, 849, 193, 3189}}, +{480, 12, 2014, {1, 3, 5, 11, 3, 3, 89, 9, 449, 243, 1501, 1739}}, +{481, 12, 2020, {1, 3, 1, 9, 29, 29, 113, 15, 65, 611, 135, 3687}}, +{482, 13, 13, {1, 1, 1, 9, 21, 19, 39, 151, 395, 501, 1339, 959, 2725}}, +{483, 13, 19, {1, 3, 7, 1, 7, 35, 45, 33, 119, 225, 1631, 1695, 1459}}, +{484, 13, 26, {1, 1, 1, 3, 25, 55, 37, 79, 167, 907, 1075, 271, 4059}}, +{485, 13, 41, {1, 3, 5, 13, 5, 13, 53, 165, 437, 67, 1705, 3177, 8095}}, +{486, 13, 50, {1, 3, 3, 13, 27, 57, 95, 55, 443, 245, 1945, 1725, 1929}}, +{487, 13, 55, {1, 3, 1, 9, 5, 33, 109, 35, 99, 827, 341, 2401, 2411}}, +{488, 13, 69, {1, 1, 5, 9, 7, 33, 43, 39, 87, 799, 635, 3481, 7159}}, +{489, 13, 70, {1, 3, 1, 1, 31, 15, 45, 27, 337, 113, 987, 2065, 2529}}, +{490, 13, 79, {1, 1, 5, 9, 5, 15, 105, 123, 479, 289, 1609, 2177, 4629}}, +{491, 13, 82, {1, 3, 5, 11, 31, 47, 97, 87, 385, 195, 1041, 651, 3271}}, +{492, 13, 87, {1, 1, 3, 7, 17, 3, 101, 55, 87, 629, 1687, 1387, 2745}}, +{493, 13, 93, {1, 3, 5, 5, 7, 21, 9, 237, 313, 549, 1107, 117, 6183}}, +{494, 13, 94, {1, 1, 3, 9, 9, 5, 55, 201, 487, 851, 1103, 2993, 4055}}, +{495, 13, 97, {1, 1, 5, 9, 31, 19, 59, 7, 363, 381, 1167, 2057, 5715}}, +{496, 13, 100, {1, 3, 3, 15, 23, 63, 19, 227, 387, 827, 487, 1049, 7471}}, +{497, 13, 112, {1, 3, 1, 5, 23, 25, 61, 245, 363, 863, 963, 3583, 6475}}, +{498, 13, 121, {1, 1, 5, 1, 5, 27, 81, 85, 275, 49, 235, 3291, 1195}}, +{499, 13, 134, {1, 1, 5, 7, 23, 53, 85, 107, 511, 779, 1265, 1093, 7859}}, +{500, 13, 138, {1, 3, 3, 1, 9, 21, 75, 219, 59, 485, 1739, 3845, 1109}}, +{501, 13, 148, {1, 3, 5, 1, 13, 41, 19, 143, 293, 391, 2023, 1791, 4399}}, +{502, 13, 151, {1, 3, 7, 15, 21, 13, 21, 195, 215, 413, 523, 2099, 2341}}, +{503, 13, 157, {1, 1, 1, 3, 29, 51, 47, 57, 135, 575, 943, 1673, 541}}, +{504, 13, 161, {1, 3, 5, 1, 9, 13, 113, 175, 447, 115, 657, 4077, 5973}}, +{505, 13, 179, {1, 1, 1, 11, 17, 41, 37, 95, 297, 579, 911, 2207, 2387}}, +{506, 13, 181, {1, 3, 5, 3, 23, 11, 23, 231, 93, 667, 711, 1563, 7961}}, +{507, 13, 188, {1, 1, 7, 3, 17, 59, 13, 181, 141, 991, 1817, 457, 1711}}, +{508, 13, 196, {1, 3, 3, 5, 31, 59, 81, 205, 245, 537, 1049, 997, 1815}}, +{509, 13, 203, {1, 3, 7, 5, 17, 13, 9, 79, 17, 185, 5, 2211, 6263}}, +{510, 13, 206, {1, 3, 7, 13, 7, 53, 61, 145, 13, 285, 1203, 947, 2933}}, +{511, 13, 223, {1, 1, 7, 3, 31, 19, 69, 217, 47, 441, 1893, 673, 4451}}, +{512, 13, 224, {1, 1, 1, 1, 25, 9, 23, 225, 385, 629, 603, 3747, 4241}}, +{513, 13, 227, {1, 3, 1, 9, 5, 37, 31, 237, 431, 79, 1521, 459, 2523}}, +{514, 13, 230, {1, 3, 7, 3, 9, 43, 105, 179, 5, 225, 799, 1777, 4893}}, +{515, 13, 239, {1, 1, 3, 1, 29, 45, 29, 159, 267, 247, 455, 847, 3909}}, +{516, 13, 241, {1, 1, 3, 7, 25, 21, 121, 57, 467, 275, 719, 1521, 7319}}, +{517, 13, 248, {1, 3, 1, 3, 11, 35, 119, 123, 81, 979, 1187, 3623, 4293}}, +{518, 13, 253, {1, 1, 1, 7, 15, 25, 121, 235, 25, 487, 873, 1787, 1977}}, +{519, 13, 268, {1, 1, 1, 11, 3, 7, 17, 135, 345, 353, 383, 4011, 2573}}, +{520, 13, 274, {1, 3, 7, 15, 27, 13, 97, 123, 65, 675, 951, 1285, 6559}}, +{521, 13, 283, {1, 3, 7, 3, 7, 1, 71, 19, 325, 765, 337, 1197, 2697}}, +{522, 13, 286, {1, 3, 5, 1, 31, 37, 11, 71, 169, 283, 83, 3801, 7083}}, +{523, 13, 289, {1, 1, 3, 15, 17, 29, 83, 65, 275, 679, 1749, 4007, 7749}}, +{524, 13, 301, {1, 1, 3, 1, 21, 11, 41, 95, 237, 361, 1819, 2783, 2383}}, +{525, 13, 302, {1, 3, 7, 11, 29, 57, 111, 187, 465, 145, 605, 1987, 8109}}, +{526, 13, 316, {1, 1, 3, 3, 19, 15, 55, 83, 357, 1001, 643, 1517, 6529}}, +{527, 13, 319, {1, 3, 1, 5, 29, 35, 73, 23, 77, 619, 1523, 1725, 8145}}, +{528, 13, 324, {1, 1, 5, 5, 19, 23, 7, 197, 449, 337, 717, 2921, 315}}, +{529, 13, 331, {1, 3, 5, 9, 7, 63, 117, 97, 97, 813, 1925, 2817, 1579}}, +{530, 13, 333, {1, 1, 1, 11, 31, 7, 25, 235, 231, 133, 1007, 1371, 1553}}, +{531, 13, 345, {1, 1, 7, 5, 19, 7, 47, 171, 267, 243, 1331, 567, 6033}}, +{532, 13, 351, {1, 1, 5, 1, 7, 49, 55, 89, 109, 735, 1455, 3193, 6239}}, +{533, 13, 358, {1, 1, 1, 7, 1, 61, 9, 103, 3, 929, 1481, 2927, 2957}}, +{534, 13, 375, {1, 1, 5, 13, 17, 21, 75, 49, 255, 1019, 1161, 2133, 1177}}, +{535, 13, 379, {1, 3, 1, 3, 13, 15, 41, 247, 211, 409, 1163, 523, 2635}}, +{536, 13, 381, {1, 3, 7, 7, 21, 59, 91, 149, 479, 391, 681, 2311, 6249}}, +{537, 13, 386, {1, 1, 5, 11, 27, 53, 21, 211, 197, 815, 719, 1605, 255}}, +{538, 13, 403, {1, 1, 3, 3, 9, 33, 59, 3, 323, 1, 101, 1135, 8105}}, +{539, 13, 405, {1, 3, 3, 1, 29, 5, 17, 141, 51, 991, 841, 327, 3859}}, +{540, 13, 419, {1, 3, 1, 5, 11, 19, 23, 89, 175, 173, 165, 2881, 1881}}, +{541, 13, 426, {1, 1, 1, 15, 13, 51, 87, 39, 495, 611, 1341, 1531, 7029}}, +{542, 13, 428, {1, 1, 3, 11, 13, 55, 75, 185, 57, 61, 1917, 2051, 5965}}, +{543, 13, 439, {1, 1, 5, 5, 7, 53, 11, 217, 213, 933, 921, 3607, 5175}}, +{544, 13, 440, {1, 3, 3, 5, 17, 53, 103, 251, 369, 781, 1319, 3717, 4439}}, +{545, 13, 446, {1, 3, 5, 13, 1, 39, 25, 235, 321, 773, 251, 3111, 6397}}, +{546, 13, 451, {1, 1, 7, 3, 31, 5, 25, 29, 325, 385, 1313, 127, 4705}}, +{547, 13, 454, {1, 1, 5, 15, 15, 27, 15, 85, 239, 243, 1633, 3473, 2621}}, +{548, 13, 458, {1, 3, 3, 3, 9, 19, 113, 13, 137, 165, 25, 2957, 7549}}, +{549, 13, 465, {1, 3, 1, 3, 11, 21, 3, 97, 417, 183, 1205, 1437, 247}}, +{550, 13, 468, {1, 1, 7, 3, 17, 21, 125, 55, 67, 387, 385, 2323, 887}}, +{551, 13, 472, {1, 3, 5, 5, 29, 11, 103, 223, 233, 641, 133, 415, 1297}}, +{552, 13, 475, {1, 3, 3, 11, 1, 9, 5, 189, 235, 1007, 1363, 3985, 889}}, +{553, 13, 477, {1, 3, 7, 9, 23, 19, 19, 183, 269, 403, 1643, 3559, 5189}}, +{554, 13, 496, {1, 3, 7, 3, 29, 45, 17, 69, 475, 149, 1291, 2689, 7625}}, +{555, 13, 502, {1, 3, 7, 3, 27, 37, 41, 73, 253, 1001, 431, 1111, 7887}}, +{556, 13, 508, {1, 1, 7, 5, 3, 7, 87, 143, 289, 495, 631, 3011, 6151}}, +{557, 13, 517, {1, 1, 1, 13, 5, 45, 17, 167, 23, 975, 801, 1975, 6833}}, +{558, 13, 521, {1, 3, 1, 11, 7, 21, 39, 23, 213, 429, 1301, 2059, 197}}, +{559, 13, 527, {1, 3, 3, 15, 3, 57, 121, 133, 29, 711, 1961, 2497, 189}}, +{560, 13, 530, {1, 1, 3, 5, 11, 55, 115, 137, 233, 673, 985, 2849, 5911}}, +{561, 13, 532, {1, 1, 7, 15, 29, 45, 1, 241, 329, 323, 925, 2821, 3331}}, +{562, 13, 542, {1, 1, 5, 7, 13, 31, 81, 105, 199, 145, 195, 1365, 5119}}, +{563, 13, 552, {1, 3, 7, 11, 3, 55, 11, 31, 117, 343, 1265, 1837, 2451}}, +{564, 13, 555, {1, 1, 3, 7, 29, 57, 61, 179, 429, 591, 177, 1945, 2159}}, +{565, 13, 560, {1, 3, 5, 11, 23, 49, 101, 137, 339, 323, 1035, 1749, 7737}}, +{566, 13, 566, {1, 3, 1, 13, 21, 35, 55, 79, 19, 269, 1055, 2651, 7083}}, +{567, 13, 575, {1, 3, 3, 11, 9, 9, 95, 167, 437, 361, 1185, 4083, 603}}, +{568, 13, 577, {1, 1, 1, 7, 31, 61, 77, 65, 489, 657, 691, 2423, 4147}}, +{569, 13, 589, {1, 3, 5, 7, 21, 37, 87, 191, 311, 453, 2013, 829, 2619}}, +{570, 13, 590, {1, 1, 5, 9, 17, 47, 35, 101, 5, 813, 1157, 1279, 7365}}, +{571, 13, 602, {1, 1, 5, 3, 11, 35, 113, 199, 369, 721, 901, 1471, 7801}}, +{572, 13, 607, {1, 3, 1, 5, 9, 61, 83, 157, 391, 739, 1957, 2123, 4341}}, +{573, 13, 608, {1, 3, 5, 11, 19, 19, 111, 225, 383, 219, 997, 717, 7505}}, +{574, 13, 611, {1, 3, 1, 11, 13, 63, 35, 127, 209, 831, 501, 3017, 3507}}, +{575, 13, 613, {1, 3, 7, 9, 29, 7, 11, 163, 81, 563, 1445, 3215, 6377}}, +{576, 13, 625, {1, 3, 7, 11, 25, 3, 39, 195, 491, 45, 839, 4021, 4899}}, +{577, 13, 644, {1, 3, 7, 15, 13, 5, 67, 143, 117, 505, 1281, 3679, 5695}}, +{578, 13, 651, {1, 3, 7, 9, 9, 19, 21, 221, 147, 763, 683, 2211, 589}}, +{579, 13, 654, {1, 1, 3, 5, 21, 47, 53, 109, 299, 807, 1153, 1209, 7961}}, +{580, 13, 656, {1, 3, 7, 11, 9, 31, 45, 43, 505, 647, 1127, 2681, 4917}}, +{581, 13, 662, {1, 1, 5, 15, 31, 41, 63, 113, 399, 727, 673, 2587, 5259}}, +{582, 13, 668, {1, 1, 1, 13, 17, 53, 35, 99, 57, 243, 1447, 1919, 2831}}, +{583, 13, 681, {1, 3, 7, 11, 23, 51, 13, 9, 49, 449, 997, 3073, 4407}}, +{584, 13, 682, {1, 3, 5, 7, 23, 33, 89, 41, 415, 53, 697, 1113, 1489}}, +{585, 13, 689, {1, 1, 3, 7, 1, 13, 29, 13, 255, 749, 77, 3463, 1761}}, +{586, 13, 696, {1, 3, 3, 7, 13, 15, 93, 191, 309, 869, 739, 1041, 3053}}, +{587, 13, 699, {1, 3, 5, 13, 5, 19, 109, 211, 347, 839, 893, 2947, 7735}}, +{588, 13, 707, {1, 3, 1, 13, 27, 3, 119, 157, 485, 99, 1703, 3895, 573}}, +{589, 13, 709, {1, 3, 7, 11, 1, 23, 123, 105, 31, 359, 275, 1775, 3685}}, +{590, 13, 714, {1, 3, 3, 5, 27, 11, 125, 3, 413, 199, 2043, 2895, 2945}}, +{591, 13, 716, {1, 3, 3, 3, 15, 49, 121, 159, 233, 543, 193, 4007, 321}}, +{592, 13, 719, {1, 1, 3, 5, 9, 47, 87, 1, 51, 1011, 1595, 2239, 6467}}, +{593, 13, 727, {1, 3, 7, 9, 1, 33, 87, 137, 469, 749, 1413, 805, 6817}}, +{594, 13, 734, {1, 3, 1, 13, 19, 45, 95, 227, 29, 677, 1275, 3395, 4451}}, +{595, 13, 738, {1, 1, 7, 5, 7, 63, 33, 71, 443, 561, 1311, 3069, 6943}}, +{596, 13, 743, {1, 1, 1, 13, 9, 37, 23, 69, 13, 415, 1479, 1197, 861}}, +{597, 13, 747, {1, 3, 3, 13, 27, 21, 13, 233, 105, 777, 345, 2443, 1105}}, +{598, 13, 757, {1, 1, 7, 11, 23, 13, 21, 147, 221, 549, 73, 2729, 6279}}, +{599, 13, 769, {1, 1, 7, 7, 25, 27, 15, 45, 227, 39, 75, 1191, 3563}}, +{600, 13, 770, {1, 1, 5, 7, 13, 49, 99, 167, 227, 13, 353, 1047, 8075}}, +{601, 13, 776, {1, 1, 3, 13, 31, 9, 27, 7, 461, 737, 1559, 3243, 53}}, +{602, 13, 790, {1, 3, 1, 1, 21, 41, 97, 165, 171, 821, 587, 2137, 2293}}, +{603, 13, 799, {1, 3, 1, 11, 17, 41, 29, 187, 87, 599, 1467, 1395, 5931}}, +{604, 13, 805, {1, 1, 1, 9, 9, 49, 89, 205, 409, 453, 61, 1923, 1257}}, +{605, 13, 809, {1, 3, 7, 3, 9, 43, 89, 143, 431, 83, 1243, 1795, 3599}}, +{606, 13, 812, {1, 3, 5, 13, 3, 25, 59, 219, 43, 223, 797, 2651, 6015}}, +{607, 13, 820, {1, 1, 5, 15, 7, 55, 65, 207, 213, 311, 1287, 1269, 6467}}, +{608, 13, 827, {1, 3, 7, 11, 21, 57, 31, 183, 351, 857, 911, 1683, 7155}}, +{609, 13, 829, {1, 3, 5, 11, 27, 1, 21, 47, 387, 383, 1593, 115, 3805}}, +{610, 13, 835, {1, 3, 1, 1, 13, 23, 87, 173, 181, 619, 1653, 3931, 6073}}, +{611, 13, 841, {1, 1, 7, 5, 17, 43, 37, 61, 307, 621, 1785, 55, 115}}, +{612, 13, 844, {1, 3, 7, 15, 25, 61, 123, 15, 237, 671, 1473, 467, 1907}}, +{613, 13, 856, {1, 1, 7, 5, 29, 57, 75, 237, 85, 699, 159, 3577, 4771}}, +{614, 13, 859, {1, 1, 1, 11, 25, 19, 51, 1, 147, 31, 895, 2617, 625}}, +{615, 13, 862, {1, 3, 7, 5, 29, 15, 115, 175, 395, 391, 1141, 1827, 1181}}, +{616, 13, 865, {1, 3, 5, 7, 17, 7, 11, 193, 89, 243, 561, 3787, 4551}}, +{617, 13, 885, {1, 3, 1, 11, 7, 57, 7, 125, 403, 947, 1261, 409, 8083}}, +{618, 13, 890, {1, 1, 5, 13, 21, 63, 115, 233, 231, 921, 1747, 3635, 2519}}, +{619, 13, 905, {1, 1, 5, 11, 3, 27, 15, 91, 505, 591, 1451, 3881, 2997}}, +{620, 13, 916, {1, 1, 3, 11, 21, 9, 109, 153, 317, 533, 593, 3967, 2797}}, +{621, 13, 925, {1, 3, 3, 13, 9, 57, 121, 245, 219, 867, 967, 791, 7095}}, +{622, 13, 935, {1, 1, 1, 9, 29, 21, 99, 35, 375, 959, 329, 4087, 7171}}, +{623, 13, 939, {1, 1, 1, 9, 11, 17, 17, 97, 89, 135, 631, 3809, 3253}}, +{624, 13, 942, {1, 1, 1, 15, 21, 51, 91, 249, 459, 801, 757, 2353, 2033}}, +{625, 13, 949, {1, 3, 5, 9, 23, 29, 77, 53, 399, 767, 1817, 2171, 1629}}, +{626, 13, 953, {1, 1, 3, 5, 29, 5, 43, 121, 17, 859, 1479, 3785, 6641}}, +{627, 13, 956, {1, 1, 3, 7, 7, 61, 45, 109, 371, 833, 91, 153, 4553}}, +{628, 13, 961, {1, 1, 3, 11, 7, 55, 81, 123, 389, 139, 1933, 891, 1789}}, +{629, 13, 968, {1, 3, 7, 15, 25, 17, 93, 165, 503, 717, 1553, 1475, 1627}}, +{630, 13, 976, {1, 1, 1, 13, 13, 63, 13, 225, 357, 571, 33, 4073, 3795}}, +{631, 13, 988, {1, 1, 3, 11, 1, 31, 107, 145, 407, 961, 501, 2987, 103}}, +{632, 13, 995, {1, 1, 7, 1, 23, 63, 49, 193, 173, 281, 25, 2465, 5927}}, +{633, 13, 997, {1, 1, 7, 1, 1, 1, 85, 77, 273, 693, 349, 1239, 4503}}, +{634, 13, 1007, {1, 1, 5, 11, 7, 61, 9, 121, 25, 357, 1443, 405, 7827}}, +{635, 13, 1015, {1, 1, 7, 13, 11, 53, 11, 207, 145, 211, 1703, 1081, 2117}}, +{636, 13, 1016, {1, 1, 3, 11, 27, 23, 19, 9, 297, 279, 1481, 2273, 6387}}, +{637, 13, 1027, {1, 3, 3, 5, 15, 45, 3, 41, 305, 87, 1815, 3461, 5349}}, +{638, 13, 1036, {1, 3, 3, 13, 9, 37, 79, 125, 259, 561, 1087, 4091, 793}}, +{639, 13, 1039, {1, 3, 5, 7, 31, 55, 7, 145, 347, 929, 589, 2783, 5905}}, +{640, 13, 1041, {1, 1, 7, 15, 3, 25, 1, 181, 13, 243, 653, 2235, 7445}}, +{641, 13, 1048, {1, 3, 5, 5, 17, 53, 65, 7, 33, 583, 1363, 1313, 2319}}, +{642, 13, 1053, {1, 3, 3, 7, 27, 47, 97, 201, 187, 321, 63, 1515, 7917}}, +{643, 13, 1054, {1, 1, 3, 5, 23, 9, 3, 165, 61, 19, 1789, 3783, 3037}}, +{644, 13, 1058, {1, 3, 1, 13, 15, 43, 125, 191, 67, 273, 1551, 2227, 5253}}, +{645, 13, 1075, {1, 1, 1, 13, 25, 53, 107, 33, 299, 249, 1475, 2233, 907}}, +{646, 13, 1082, {1, 3, 5, 1, 23, 37, 85, 17, 207, 643, 665, 2933, 5199}}, +{647, 13, 1090, {1, 1, 7, 7, 25, 57, 59, 41, 15, 751, 751, 1749, 7053}}, +{648, 13, 1109, {1, 3, 3, 1, 13, 25, 127, 93, 281, 613, 875, 2223, 6345}}, +{649, 13, 1110, {1, 1, 5, 3, 29, 55, 79, 249, 43, 317, 533, 995, 1991}}, +{650, 13, 1119, {1, 3, 3, 15, 17, 49, 79, 31, 193, 233, 1437, 2615, 819}}, +{651, 13, 1126, {1, 1, 5, 15, 25, 3, 123, 145, 377, 9, 455, 1191, 3953}}, +{652, 13, 1130, {1, 3, 5, 3, 15, 19, 41, 231, 81, 393, 3, 19, 2409}}, +{653, 13, 1135, {1, 1, 3, 1, 27, 43, 113, 179, 7, 853, 947, 2731, 297}}, +{654, 13, 1137, {1, 1, 1, 11, 29, 39, 53, 191, 443, 689, 529, 3329, 7431}}, +{655, 13, 1140, {1, 3, 7, 5, 3, 29, 19, 67, 441, 113, 949, 2769, 4169}}, +{656, 13, 1149, {1, 3, 5, 11, 11, 55, 85, 169, 215, 815, 803, 2345, 3967}}, +{657, 13, 1156, {1, 1, 7, 9, 5, 45, 111, 5, 419, 375, 303, 1725, 4489}}, +{658, 13, 1159, {1, 3, 5, 15, 29, 43, 79, 19, 23, 417, 381, 541, 4923}}, +{659, 13, 1160, {1, 1, 3, 15, 3, 31, 117, 39, 117, 305, 1227, 1223, 143}}, +{660, 13, 1165, {1, 1, 5, 9, 5, 47, 87, 239, 181, 353, 1561, 3313, 1921}}, +{661, 13, 1173, {1, 3, 3, 1, 3, 15, 53, 221, 441, 987, 1997, 2529, 8059}}, +{662, 13, 1178, {1, 1, 7, 11, 15, 57, 111, 139, 137, 883, 1881, 2823, 5661}}, +{663, 13, 1183, {1, 3, 5, 5, 21, 11, 5, 13, 27, 973, 587, 1331, 1373}}, +{664, 13, 1184, {1, 1, 7, 11, 29, 51, 93, 29, 217, 221, 55, 2477, 1979}}, +{665, 13, 1189, {1, 3, 3, 13, 3, 11, 49, 75, 379, 371, 1441, 793, 7633}}, +{666, 13, 1194, {1, 1, 1, 13, 19, 45, 89, 249, 91, 649, 1695, 915, 5619}}, +{667, 13, 1211, {1, 3, 1, 7, 7, 29, 1, 77, 313, 895, 519, 771, 295}}, +{668, 13, 1214, {1, 3, 1, 15, 5, 3, 1, 57, 331, 109, 485, 2853, 6831}}, +{669, 13, 1216, {1, 1, 1, 15, 17, 3, 35, 99, 245, 971, 839, 2509, 2803}}, +{670, 13, 1225, {1, 3, 3, 3, 9, 37, 57, 251, 325, 317, 529, 1313, 6379}}, +{671, 13, 1231, {1, 1, 1, 15, 25, 59, 1, 119, 95, 15, 795, 2375, 6463}}, +{672, 13, 1239, {1, 3, 1, 5, 1, 49, 117, 21, 47, 179, 863, 85, 1669}}, +{673, 13, 1243, {1, 3, 7, 3, 9, 37, 19, 221, 455, 973, 571, 1427, 817}}, +{674, 13, 1246, {1, 1, 1, 15, 17, 9, 67, 213, 127, 887, 1299, 2913, 7451}}, +{675, 13, 1249, {1, 3, 1, 13, 27, 27, 41, 43, 171, 623, 691, 391, 4885}}, +{676, 13, 1259, {1, 3, 1, 13, 17, 17, 123, 239, 143, 227, 1151, 519, 6543}}, +{677, 13, 1273, {1, 3, 7, 5, 7, 63, 97, 39, 101, 555, 1057, 381, 7891}}, +{678, 13, 1274, {1, 3, 5, 1, 3, 27, 85, 129, 161, 875, 1945, 3541, 695}}, +{679, 13, 1281, {1, 3, 3, 5, 21, 59, 25, 183, 35, 25, 987, 1459, 181}}, +{680, 13, 1287, {1, 3, 5, 13, 1, 15, 127, 237, 349, 337, 1491, 2383, 7811}}, +{681, 13, 1294, {1, 3, 5, 5, 31, 5, 109, 51, 409, 733, 1395, 3207, 6049}}, +{682, 13, 1296, {1, 1, 5, 7, 13, 35, 113, 25, 263, 389, 299, 2521, 1783}}, +{683, 13, 1305, {1, 3, 7, 11, 15, 47, 97, 73, 55, 75, 113, 2695, 1023}}, +{684, 13, 1306, {1, 3, 1, 1, 3, 13, 69, 211, 289, 483, 1335, 787, 677}}, +{685, 13, 1318, {1, 1, 3, 3, 17, 7, 37, 77, 505, 137, 1113, 345, 2975}}, +{686, 13, 1332, {1, 1, 1, 13, 3, 11, 95, 199, 453, 109, 479, 3725, 239}}, +{687, 13, 1335, {1, 1, 7, 15, 19, 53, 3, 145, 359, 863, 347, 3833, 3043}}, +{688, 13, 1336, {1, 1, 7, 15, 25, 63, 127, 129, 125, 195, 155, 2211, 8153}}, +{689, 13, 1341, {1, 1, 7, 13, 9, 49, 121, 115, 73, 119, 1851, 727, 47}}, +{690, 13, 1342, {1, 3, 3, 13, 13, 11, 71, 7, 45, 591, 133, 2407, 5563}}, +{691, 13, 1362, {1, 1, 1, 13, 23, 29, 87, 89, 501, 71, 1759, 1119, 687}}, +{692, 13, 1364, {1, 1, 7, 7, 13, 7, 13, 183, 53, 951, 1877, 3991, 6771}}, +{693, 13, 1368, {1, 3, 7, 11, 7, 1, 27, 47, 61, 21, 919, 961, 1091}}, +{694, 13, 1378, {1, 3, 5, 5, 1, 27, 1, 5, 63, 157, 1297, 1049, 5893}}, +{695, 13, 1387, {1, 3, 7, 9, 19, 33, 17, 133, 425, 797, 1721, 153, 119}}, +{696, 13, 1389, {1, 3, 3, 7, 13, 37, 1, 215, 509, 1003, 61, 2353, 7511}}, +{697, 13, 1397, {1, 1, 7, 1, 29, 19, 31, 79, 199, 555, 1209, 1603, 6089}}, +{698, 13, 1401, {1, 3, 1, 1, 5, 31, 111, 127, 333, 429, 1863, 3925, 5411}}, +{699, 13, 1408, {1, 1, 7, 5, 5, 5, 123, 191, 47, 993, 269, 4051, 2111}}, +{700, 13, 1418, {1, 1, 5, 15, 1, 9, 87, 5, 47, 463, 865, 1813, 7357}}, +{701, 13, 1425, {1, 3, 1, 3, 23, 63, 123, 83, 511, 777, 63, 1285, 4537}}, +{702, 13, 1426, {1, 3, 3, 7, 27, 25, 31, 65, 441, 529, 1815, 1893, 323}}, +{703, 13, 1431, {1, 3, 7, 5, 11, 19, 7, 5, 397, 811, 755, 2883, 4217}}, +{704, 13, 1435, {1, 3, 1, 13, 9, 21, 13, 7, 271, 539, 1769, 3243, 5325}}, +{705, 13, 1441, {1, 1, 7, 1, 31, 13, 47, 131, 181, 457, 1559, 2663, 6653}}, +{706, 13, 1444, {1, 3, 3, 7, 29, 55, 25, 203, 419, 91, 437, 1159, 5691}}, +{707, 13, 1462, {1, 1, 3, 13, 29, 19, 71, 217, 337, 329, 501, 939, 2205}}, +{708, 13, 1471, {1, 1, 3, 1, 1, 27, 17, 201, 97, 285, 1269, 4043, 2207}}, +{709, 13, 1474, {1, 1, 1, 1, 3, 41, 13, 199, 141, 129, 1515, 3129, 5969}}, +{710, 13, 1483, {1, 3, 3, 9, 3, 17, 119, 41, 271, 933, 877, 701, 2197}}, +{711, 13, 1485, {1, 1, 1, 7, 15, 47, 3, 195, 115, 821, 725, 843, 6071}}, +{712, 13, 1494, {1, 3, 5, 15, 17, 33, 85, 65, 297, 571, 1123, 2743, 5727}}, +{713, 13, 1497, {1, 1, 5, 11, 27, 15, 37, 235, 415, 293, 1439, 2739, 4171}}, +{714, 13, 1516, {1, 3, 7, 7, 1, 55, 71, 35, 307, 11, 401, 1881, 933}}, +{715, 13, 1522, {1, 3, 1, 11, 21, 37, 3, 177, 119, 339, 559, 3991, 3437}}, +{716, 13, 1534, {1, 3, 3, 9, 17, 17, 97, 119, 301, 169, 157, 3267, 2261}}, +{717, 13, 1543, {1, 3, 3, 9, 29, 3, 111, 101, 355, 869, 375, 2609, 7377}}, +{718, 13, 1552, {1, 3, 5, 9, 7, 21, 123, 99, 343, 693, 1927, 1605, 4923}}, +{719, 13, 1557, {1, 1, 3, 5, 13, 31, 99, 17, 75, 385, 1539, 1553, 7077}}, +{720, 13, 1558, {1, 3, 3, 5, 31, 35, 107, 11, 407, 1019, 1317, 3593, 7203}}, +{721, 13, 1567, {1, 3, 3, 13, 17, 33, 99, 245, 401, 957, 157, 1949, 1571}}, +{722, 13, 1568, {1, 3, 1, 11, 27, 15, 11, 109, 429, 307, 1911, 2701, 861}}, +{723, 13, 1574, {1, 1, 5, 13, 13, 35, 55, 255, 311, 957, 1803, 2673, 5195}}, +{724, 13, 1592, {1, 1, 1, 11, 19, 3, 89, 37, 211, 783, 1355, 3567, 7135}}, +{725, 13, 1605, {1, 1, 5, 5, 21, 49, 79, 17, 509, 331, 183, 3831, 855}}, +{726, 13, 1606, {1, 3, 7, 5, 29, 19, 85, 109, 105, 523, 845, 3385, 7477}}, +{727, 13, 1610, {1, 1, 1, 7, 25, 17, 125, 131, 53, 757, 253, 2989, 2939}}, +{728, 13, 1617, {1, 3, 3, 9, 19, 23, 105, 39, 351, 677, 211, 401, 8103}}, +{729, 13, 1623, {1, 3, 5, 1, 5, 11, 17, 3, 405, 469, 1569, 2865, 3133}}, +{730, 13, 1630, {1, 1, 3, 13, 15, 5, 117, 179, 139, 145, 477, 1137, 2537}}, +{731, 13, 1634, {1, 1, 7, 9, 5, 21, 9, 93, 211, 963, 1207, 3343, 4911}}, +{732, 13, 1640, {1, 1, 1, 9, 13, 43, 17, 53, 81, 793, 1571, 2523, 3683}}, +{733, 13, 1643, {1, 3, 3, 13, 25, 21, 5, 59, 489, 987, 1941, 171, 6009}}, +{734, 13, 1648, {1, 3, 3, 7, 1, 39, 89, 171, 403, 467, 1767, 3423, 2791}}, +{735, 13, 1651, {1, 1, 3, 9, 19, 49, 91, 125, 163, 1013, 89, 2849, 6785}}, +{736, 13, 1653, {1, 1, 5, 9, 9, 11, 15, 241, 43, 297, 1719, 1541, 1821}}, +{737, 13, 1670, {1, 3, 7, 15, 29, 23, 103, 239, 191, 33, 1043, 3649, 6579}}, +{738, 13, 1676, {1, 3, 3, 9, 21, 51, 123, 55, 223, 645, 1463, 4021, 5891}}, +{739, 13, 1684, {1, 1, 5, 7, 3, 41, 27, 235, 391, 303, 2021, 3187, 7607}}, +{740, 13, 1687, {1, 1, 1, 9, 5, 49, 49, 29, 377, 251, 1887, 1017, 1301}}, +{741, 13, 1691, {1, 1, 3, 3, 13, 41, 27, 47, 223, 23, 517, 3227, 6731}}, +{742, 13, 1693, {1, 1, 7, 1, 31, 25, 47, 9, 511, 623, 2047, 1263, 1511}}, +{743, 13, 1698, {1, 1, 3, 15, 15, 23, 53, 1, 261, 595, 85, 241, 7047}}, +{744, 13, 1709, {1, 3, 3, 11, 17, 5, 81, 73, 149, 781, 2035, 3163, 4247}}, +{745, 13, 1715, {1, 3, 7, 7, 29, 59, 49, 79, 397, 901, 1105, 2191, 6277}}, +{746, 13, 1722, {1, 3, 3, 11, 13, 27, 25, 173, 107, 73, 1265, 585, 5251}}, +{747, 13, 1732, {1, 1, 7, 15, 29, 23, 73, 229, 235, 887, 1469, 4073, 2591}}, +{748, 13, 1735, {1, 1, 3, 9, 17, 15, 83, 173, 207, 879, 1701, 1509, 11}}, +{749, 13, 1747, {1, 1, 3, 5, 5, 37, 65, 161, 39, 421, 1153, 2007, 5355}}, +{750, 13, 1749, {1, 1, 7, 11, 23, 37, 5, 11, 9, 499, 17, 157, 5747}}, +{751, 13, 1754, {1, 3, 7, 13, 25, 9, 49, 7, 39, 945, 1349, 1759, 1441}}, +{752, 13, 1777, {1, 1, 5, 3, 21, 15, 113, 81, 265, 837, 333, 3625, 6133}}, +{753, 13, 1784, {1, 3, 1, 11, 13, 27, 73, 109, 297, 327, 299, 3253, 6957}}, +{754, 13, 1790, {1, 1, 3, 13, 19, 39, 123, 73, 65, 5, 1061, 2187, 5055}}, +{755, 13, 1795, {1, 1, 3, 1, 11, 31, 21, 115, 453, 857, 711, 495, 549}}, +{756, 13, 1801, {1, 3, 7, 7, 15, 29, 79, 103, 47, 713, 1735, 3121, 6321}}, +{757, 13, 1802, {1, 1, 5, 5, 29, 9, 97, 33, 471, 705, 329, 1501, 1349}}, +{758, 13, 1812, {1, 3, 3, 1, 21, 9, 111, 209, 71, 47, 491, 2143, 1797}}, +{759, 13, 1828, {1, 3, 3, 3, 11, 39, 21, 135, 445, 259, 607, 3811, 5449}}, +{760, 13, 1831, {1, 1, 7, 9, 11, 25, 113, 251, 395, 317, 317, 91, 1979}}, +{761, 13, 1837, {1, 3, 1, 9, 3, 21, 103, 133, 389, 943, 1235, 1749, 7063}}, +{762, 13, 1838, {1, 1, 3, 7, 1, 11, 5, 15, 497, 477, 479, 3079, 6969}}, +{763, 13, 1840, {1, 1, 3, 3, 15, 39, 105, 131, 475, 465, 181, 865, 3813}}, +{764, 13, 1845, {1, 1, 7, 9, 19, 63, 123, 131, 415, 525, 457, 2471, 3135}}, +{765, 13, 1863, {1, 3, 7, 15, 25, 35, 123, 45, 341, 805, 485, 4049, 7065}}, +{766, 13, 1864, {1, 1, 1, 5, 29, 9, 47, 227, 51, 867, 1873, 1593, 2271}}, +{767, 13, 1867, {1, 1, 7, 15, 31, 9, 71, 117, 285, 711, 837, 1435, 6275}}, +{768, 13, 1870, {1, 3, 1, 1, 5, 19, 79, 25, 301, 415, 1871, 645, 3251}}, +{769, 13, 1877, {1, 3, 1, 3, 17, 51, 99, 185, 447, 43, 523, 219, 429}}, +{770, 13, 1881, {1, 3, 1, 13, 29, 13, 51, 93, 7, 995, 757, 3017, 6865}}, +{771, 13, 1884, {1, 1, 3, 15, 7, 25, 75, 17, 155, 981, 1231, 1229, 1995}}, +{772, 13, 1903, {1, 3, 5, 3, 27, 45, 71, 73, 225, 763, 377, 1139, 2863}}, +{773, 13, 1917, {1, 1, 3, 1, 1, 39, 69, 113, 29, 371, 1051, 793, 3749}}, +{774, 13, 1918, {1, 1, 3, 13, 23, 61, 27, 183, 307, 431, 1345, 2757, 4031}}, +{775, 13, 1922, {1, 3, 7, 5, 5, 59, 117, 197, 303, 721, 877, 723, 1601}}, +{776, 13, 1924, {1, 3, 5, 1, 27, 33, 99, 237, 485, 711, 665, 3077, 5105}}, +{777, 13, 1928, {1, 1, 3, 1, 13, 9, 103, 201, 23, 951, 2029, 165, 2093}}, +{778, 13, 1931, {1, 3, 5, 13, 5, 29, 55, 85, 221, 677, 611, 3613, 4567}}, +{779, 13, 1951, {1, 1, 1, 1, 7, 61, 9, 233, 261, 561, 953, 4023, 2443}}, +{780, 13, 1952, {1, 3, 3, 13, 1, 17, 103, 71, 223, 213, 833, 1747, 6999}}, +{781, 13, 1957, {1, 3, 5, 15, 25, 53, 57, 187, 25, 695, 1207, 4089, 2877}}, +{782, 13, 1958, {1, 1, 7, 1, 7, 31, 87, 129, 493, 519, 1555, 1155, 4637}}, +{783, 13, 1964, {1, 1, 1, 15, 21, 17, 23, 29, 19, 255, 927, 1791, 3093}}, +{784, 13, 1967, {1, 1, 3, 9, 17, 33, 95, 129, 175, 461, 287, 2633, 2325}}, +{785, 13, 1970, {1, 3, 5, 7, 23, 19, 63, 209, 249, 583, 1373, 2039, 2225}}, +{786, 13, 1972, {1, 3, 3, 5, 5, 19, 79, 241, 459, 355, 1455, 3313, 3639}}, +{787, 13, 1994, {1, 1, 7, 9, 21, 41, 97, 119, 129, 769, 1541, 3495, 7741}}, +{788, 13, 2002, {1, 1, 7, 11, 9, 29, 35, 255, 141, 937, 1763, 41, 1393}}, +{789, 13, 2007, {1, 3, 7, 1, 13, 51, 61, 157, 177, 847, 1829, 3539, 285}}, +{790, 13, 2008, {1, 1, 1, 15, 21, 13, 9, 55, 397, 19, 1495, 1255, 7235}}, +{791, 13, 2023, {1, 1, 7, 7, 25, 37, 53, 237, 319, 197, 269, 1205, 1485}}, +{792, 13, 2030, {1, 1, 5, 15, 23, 17, 35, 247, 323, 807, 233, 3681, 4407}}, +{793, 13, 2035, {1, 1, 3, 7, 9, 59, 85, 105, 493, 763, 1639, 391, 1451}}, +{794, 13, 2038, {1, 3, 3, 9, 15, 33, 5, 253, 129, 625, 1527, 2793, 6057}}, +{795, 13, 2042, {1, 3, 1, 1, 7, 47, 21, 161, 235, 83, 397, 3563, 5953}}, +{796, 13, 2047, {1, 3, 7, 11, 3, 41, 25, 117, 375, 779, 1297, 3715, 8117}}, +{797, 13, 2051, {1, 1, 3, 7, 31, 19, 103, 173, 475, 189, 2035, 2921, 1107}}, +{798, 13, 2058, {1, 1, 7, 3, 25, 7, 93, 255, 307, 113, 1893, 2233, 6919}}, +{799, 13, 2060, {1, 3, 5, 15, 9, 57, 79, 143, 165, 5, 1389, 193, 693}}, +{800, 13, 2071, {1, 3, 5, 1, 29, 45, 91, 49, 189, 461, 439, 1283, 7835}}, +{801, 13, 2084, {1, 1, 3, 13, 11, 61, 41, 231, 373, 695, 395, 915, 5393}}, +{802, 13, 2087, {1, 3, 7, 11, 5, 51, 67, 53, 483, 95, 1943, 247, 5653}}, +{803, 13, 2099, {1, 3, 7, 5, 5, 57, 45, 235, 137, 793, 1069, 1661, 1557}}, +{804, 13, 2108, {1, 3, 5, 3, 25, 55, 103, 177, 81, 861, 1151, 143, 7655}}, +{805, 13, 2111, {1, 1, 3, 1, 21, 41, 67, 131, 253, 431, 1269, 3181, 3429}}, +{806, 13, 2120, {1, 3, 1, 1, 21, 7, 77, 221, 257, 663, 71, 2949, 2481}}, +{807, 13, 2128, {1, 3, 5, 3, 3, 23, 45, 107, 299, 739, 1013, 3, 3165}}, +{808, 13, 2138, {1, 1, 5, 1, 3, 37, 109, 37, 243, 983, 1221, 1691, 3869}}, +{809, 13, 2143, {1, 1, 5, 5, 31, 7, 5, 193, 397, 867, 1495, 3435, 7441}}, +{810, 13, 2144, {1, 1, 1, 1, 17, 59, 97, 233, 389, 597, 1013, 1631, 483}}, +{811, 13, 2153, {1, 1, 1, 11, 7, 41, 107, 53, 111, 125, 1513, 1921, 7647}}, +{812, 13, 2156, {1, 3, 3, 3, 31, 29, 117, 3, 365, 971, 1139, 2123, 5913}}, +{813, 13, 2162, {1, 1, 1, 13, 23, 3, 1, 167, 475, 639, 1811, 3841, 3081}}, +{814, 13, 2167, {1, 1, 5, 3, 5, 47, 65, 123, 275, 783, 95, 119, 7591}}, +{815, 13, 2178, {1, 3, 1, 15, 13, 33, 93, 237, 467, 431, 705, 4013, 4035}}, +{816, 13, 2183, {1, 3, 5, 1, 19, 7, 101, 231, 155, 737, 1381, 3343, 2051}}, +{817, 13, 2202, {1, 1, 5, 9, 15, 49, 45, 163, 433, 765, 2031, 201, 2589}}, +{818, 13, 2211, {1, 3, 7, 9, 19, 41, 31, 89, 93, 623, 105, 745, 4409}}, +{819, 13, 2214, {1, 1, 5, 1, 11, 45, 127, 85, 389, 439, 829, 477, 7965}}, +{820, 13, 2223, {1, 3, 3, 15, 13, 41, 1, 207, 435, 585, 311, 1725, 2737}}, +{821, 13, 2225, {1, 3, 3, 3, 13, 49, 21, 31, 197, 799, 1411, 2959, 7133}}, +{822, 13, 2232, {1, 3, 1, 3, 7, 43, 9, 141, 133, 579, 1059, 93, 957}}, +{823, 13, 2237, {1, 3, 7, 1, 15, 51, 23, 213, 381, 851, 699, 2261, 3419}}, +{824, 13, 2257, {1, 3, 5, 9, 25, 35, 67, 141, 35, 409, 1423, 365, 1645}}, +{825, 13, 2260, {1, 3, 3, 11, 15, 33, 27, 181, 93, 87, 1761, 3511, 1353}}, +{826, 13, 2267, {1, 3, 5, 3, 25, 63, 111, 137, 321, 819, 705, 1547, 7271}}, +{827, 13, 2274, {1, 3, 1, 1, 5, 57, 99, 59, 411, 757, 1371, 3953, 3695}}, +{828, 13, 2276, {1, 3, 5, 11, 11, 21, 25, 147, 239, 455, 709, 953, 7175}}, +{829, 13, 2285, {1, 3, 3, 15, 5, 53, 91, 205, 341, 63, 723, 1565, 7135}}, +{830, 13, 2288, {1, 1, 7, 15, 11, 21, 99, 79, 63, 593, 2007, 3629, 5271}}, +{831, 13, 2293, {1, 3, 3, 1, 9, 21, 45, 175, 453, 435, 1855, 2649, 6959}}, +{832, 13, 2294, {1, 1, 3, 15, 15, 33, 121, 121, 251, 431, 1127, 3305, 4199}}, +{833, 13, 2297, {1, 1, 1, 9, 31, 15, 71, 29, 345, 391, 1159, 2809, 345}}, +{834, 13, 2303, {1, 3, 7, 1, 23, 29, 95, 151, 327, 727, 647, 1623, 2971}}, +{835, 13, 2308, {1, 1, 7, 7, 9, 29, 79, 91, 127, 909, 1293, 1315, 5315}}, +{836, 13, 2311, {1, 1, 5, 11, 13, 37, 89, 73, 149, 477, 1909, 3343, 525}}, +{837, 13, 2318, {1, 3, 5, 7, 5, 59, 55, 255, 223, 459, 2027, 237, 4205}}, +{838, 13, 2323, {1, 1, 1, 7, 27, 11, 95, 65, 325, 835, 907, 3801, 3787}}, +{839, 13, 2332, {1, 1, 1, 11, 27, 33, 99, 175, 51, 913, 331, 1851, 4133}}, +{840, 13, 2341, {1, 3, 5, 5, 13, 37, 31, 99, 273, 409, 1827, 3845, 5491}}, +{841, 13, 2345, {1, 1, 3, 7, 23, 19, 107, 85, 283, 523, 509, 451, 421}}, +{842, 13, 2348, {1, 3, 5, 7, 13, 9, 51, 81, 87, 619, 61, 2803, 5271}}, +{843, 13, 2354, {1, 1, 1, 15, 9, 45, 35, 219, 401, 271, 953, 649, 6847}}, +{844, 13, 2368, {1, 1, 7, 11, 9, 45, 17, 219, 169, 837, 1483, 1605, 2901}}, +{845, 13, 2377, {1, 1, 7, 7, 21, 43, 37, 33, 291, 359, 71, 2899, 7037}}, +{846, 13, 2380, {1, 3, 3, 13, 31, 53, 37, 15, 149, 949, 551, 3445, 5455}}, +{847, 13, 2383, {1, 3, 1, 5, 19, 45, 81, 223, 193, 439, 2047, 3879, 789}}, +{848, 13, 2388, {1, 1, 7, 3, 11, 63, 35, 61, 255, 563, 459, 2991, 3359}}, +{849, 13, 2395, {1, 1, 5, 9, 13, 49, 47, 185, 239, 221, 1533, 3635, 2045}}, +{850, 13, 2397, {1, 3, 7, 3, 25, 37, 127, 223, 51, 357, 483, 3837, 6873}}, +{851, 13, 2401, {1, 1, 7, 9, 31, 37, 113, 31, 387, 833, 1243, 1543, 5535}}, +{852, 13, 2411, {1, 3, 1, 9, 23, 59, 119, 221, 73, 185, 2007, 2885, 2563}}, +{853, 13, 2413, {1, 1, 1, 13, 7, 33, 53, 179, 67, 185, 1541, 1807, 4659}}, +{854, 13, 2419, {1, 3, 1, 11, 31, 37, 23, 215, 269, 357, 207, 645, 4219}}, +{855, 13, 2435, {1, 3, 3, 13, 19, 27, 107, 55, 91, 71, 1695, 1815, 89}}, +{856, 13, 2442, {1, 1, 3, 15, 3, 19, 35, 247, 49, 529, 1523, 3317, 6151}}, +{857, 13, 2455, {1, 1, 7, 7, 23, 25, 107, 139, 483, 503, 1277, 243, 7879}}, +{858, 13, 2472, {1, 3, 3, 13, 3, 15, 11, 197, 135, 839, 985, 275, 5527}}, +{859, 13, 2478, {1, 3, 5, 3, 25, 47, 95, 21, 113, 307, 1001, 3065, 295}}, +{860, 13, 2490, {1, 1, 3, 9, 19, 19, 99, 213, 363, 449, 735, 2851, 2521}}, +{861, 13, 2507, {1, 1, 3, 9, 5, 49, 63, 61, 157, 857, 497, 2801, 6987}}, +{862, 13, 2509, {1, 1, 1, 9, 1, 41, 109, 119, 499, 939, 867, 3675, 8023}}, +{863, 13, 2517, {1, 3, 1, 1, 13, 33, 109, 123, 289, 3, 1271, 2773, 4265}}, +{864, 13, 2524, {1, 3, 1, 11, 9, 57, 83, 221, 95, 43, 1189, 457, 7133}}, +{865, 13, 2528, {1, 1, 7, 3, 11, 49, 33, 219, 229, 289, 685, 3359, 4495}}, +{866, 13, 2531, {1, 3, 1, 3, 19, 43, 67, 193, 41, 771, 407, 81, 3891}}, +{867, 13, 2538, {1, 1, 7, 11, 5, 29, 51, 175, 297, 539, 1, 2245, 6439}}, +{868, 13, 2545, {1, 3, 7, 15, 21, 33, 117, 183, 511, 489, 1283, 3281, 5979}}, +{869, 13, 2546, {1, 3, 7, 5, 9, 3, 125, 147, 359, 549, 369, 3049, 2405}}, +{870, 13, 2555, {1, 3, 5, 7, 19, 5, 65, 97, 483, 377, 1523, 1457, 2995}}, +{871, 13, 2557, {1, 1, 5, 1, 11, 21, 41, 113, 277, 131, 1475, 1043, 2367}}, +{872, 13, 2564, {1, 3, 3, 1, 15, 17, 101, 69, 443, 865, 817, 1421, 5231}}, +{873, 13, 2573, {1, 1, 3, 3, 3, 55, 95, 99, 75, 195, 1929, 3931, 5855}}, +{874, 13, 2579, {1, 3, 1, 3, 19, 23, 93, 213, 241, 551, 1307, 585, 7729}}, +{875, 13, 2592, {1, 3, 1, 11, 23, 15, 53, 249, 467, 519, 95, 741, 409}}, +{876, 13, 2598, {1, 1, 1, 15, 29, 37, 43, 203, 233, 877, 77, 1933, 2729}}, +{877, 13, 2607, {1, 3, 7, 11, 27, 39, 43, 161, 255, 15, 1463, 833, 495}}, +{878, 13, 2612, {1, 1, 7, 11, 3, 53, 81, 67, 375, 823, 1903, 3061, 395}}, +{879, 13, 2619, {1, 1, 1, 1, 15, 37, 93, 233, 247, 501, 1321, 3275, 5409}}, +{880, 13, 2621, {1, 3, 3, 7, 7, 11, 5, 105, 139, 983, 1239, 531, 3881}}, +{881, 13, 2627, {1, 1, 5, 3, 19, 49, 107, 227, 361, 101, 355, 2649, 7383}}, +{882, 13, 2633, {1, 1, 7, 5, 25, 41, 101, 121, 209, 293, 1937, 2259, 5557}}, +{883, 13, 2636, {1, 1, 3, 7, 7, 1, 9, 13, 463, 1019, 995, 3159, 107}}, +{884, 13, 2642, {1, 3, 5, 11, 5, 35, 127, 97, 261, 789, 807, 807, 6257}}, +{885, 13, 2654, {1, 1, 7, 5, 11, 13, 45, 91, 417, 101, 1973, 3645, 2107}}, +{886, 13, 2660, {1, 1, 3, 7, 5, 63, 57, 49, 203, 157, 115, 1393, 8117}}, +{887, 13, 2669, {1, 3, 5, 5, 3, 43, 15, 155, 127, 489, 1165, 3701, 4867}}, +{888, 13, 2675, {1, 1, 7, 7, 29, 29, 69, 215, 415, 367, 371, 1901, 6075}}, +{889, 13, 2684, {1, 1, 1, 3, 11, 33, 89, 149, 433, 705, 1437, 1597, 505}}, +{890, 13, 2694, {1, 3, 5, 1, 13, 37, 19, 119, 5, 581, 2037, 1633, 2099}}, +{891, 13, 2703, {1, 3, 7, 13, 5, 49, 103, 245, 215, 515, 133, 2007, 1933}}, +{892, 13, 2706, {1, 3, 1, 9, 1, 3, 25, 197, 253, 387, 1683, 2267, 221}}, +{893, 13, 2712, {1, 3, 5, 15, 21, 9, 73, 201, 405, 999, 437, 3877, 6045}}, +{894, 13, 2715, {1, 1, 3, 1, 31, 55, 25, 83, 421, 395, 1807, 2129, 7797}}, +{895, 13, 2722, {1, 1, 3, 1, 23, 21, 121, 183, 125, 347, 143, 3685, 4317}}, +{896, 13, 2727, {1, 3, 3, 3, 17, 45, 17, 223, 267, 795, 1815, 1309, 155}}, +{897, 13, 2734, {1, 1, 1, 15, 17, 59, 5, 133, 15, 715, 1503, 153, 2887}}, +{898, 13, 2742, {1, 1, 1, 1, 27, 13, 119, 77, 243, 995, 1851, 3719, 4695}}, +{899, 13, 2745, {1, 3, 1, 5, 31, 49, 43, 165, 49, 609, 1265, 1141, 505}}, +{900, 13, 2751, {1, 1, 7, 13, 11, 63, 21, 253, 229, 585, 1543, 3719, 4141}}, +{901, 13, 2766, {1, 3, 7, 11, 23, 27, 17, 131, 295, 895, 1493, 1411, 3247}}, +{902, 13, 2768, {1, 1, 5, 9, 29, 7, 97, 15, 113, 445, 859, 1483, 1121}}, +{903, 13, 2780, {1, 3, 1, 9, 13, 49, 99, 107, 323, 201, 681, 3071, 5281}}, +{904, 13, 2790, {1, 1, 1, 15, 9, 19, 61, 161, 7, 87, 587, 2199, 2811}}, +{905, 13, 2794, {1, 3, 3, 15, 15, 19, 95, 45, 299, 829, 981, 3479, 487}}, +{906, 13, 2796, {1, 1, 1, 9, 3, 37, 7, 19, 227, 13, 397, 513, 1257}}, +{907, 13, 2801, {1, 1, 5, 15, 15, 13, 17, 111, 135, 929, 1145, 811, 1801}}, +{908, 13, 2804, {1, 3, 1, 3, 27, 57, 31, 19, 279, 103, 693, 631, 3409}}, +{909, 13, 2807, {1, 1, 1, 1, 15, 13, 67, 83, 23, 799, 1735, 2063, 3363}}, +{910, 13, 2816, {1, 3, 3, 7, 3, 1, 61, 31, 41, 533, 2025, 4067, 6963}}, +{911, 13, 2821, {1, 1, 5, 7, 17, 27, 81, 79, 107, 205, 29, 97, 4883}}, +{912, 13, 2831, {1, 1, 1, 5, 19, 49, 91, 201, 283, 949, 651, 3819, 5073}}, +{913, 13, 2834, {1, 1, 7, 9, 11, 13, 73, 197, 37, 219, 1931, 3369, 6017}}, +{914, 13, 2839, {1, 1, 7, 15, 11, 7, 75, 205, 7, 819, 399, 661, 6487}}, +{915, 13, 2845, {1, 3, 3, 3, 27, 37, 95, 41, 307, 165, 1077, 3485, 563}}, +{916, 13, 2852, {1, 3, 5, 3, 21, 49, 57, 179, 109, 627, 1789, 431, 2941}}, +{917, 13, 2856, {1, 1, 7, 5, 11, 19, 43, 137, 149, 679, 1543, 245, 1381}}, +{918, 13, 2861, {1, 3, 5, 5, 15, 3, 69, 81, 135, 159, 1363, 3401, 6355}}, +{919, 13, 2873, {1, 3, 5, 1, 9, 61, 49, 53, 319, 25, 1647, 1297, 615}}, +{920, 13, 2874, {1, 3, 5, 11, 31, 43, 9, 101, 71, 919, 335, 3147, 5823}}, +{921, 13, 2888, {1, 3, 1, 1, 15, 5, 29, 109, 511, 945, 867, 3677, 6915}}, +{922, 13, 2893, {1, 3, 3, 15, 17, 49, 91, 111, 215, 29, 1879, 97, 2505}}, +{923, 13, 2894, {1, 3, 1, 13, 19, 61, 11, 111, 163, 777, 533, 1113, 5339}}, +{924, 13, 2902, {1, 1, 7, 9, 17, 55, 117, 91, 455, 289, 557, 913, 4455}}, +{925, 13, 2917, {1, 3, 1, 7, 25, 19, 123, 37, 1, 277, 717, 2965, 4469}}, +{926, 13, 2921, {1, 3, 7, 3, 19, 23, 87, 235, 209, 457, 2041, 2893, 1805}}, +{927, 13, 2922, {1, 3, 3, 5, 5, 43, 23, 61, 351, 791, 59, 2009, 2909}}, +{928, 13, 2929, {1, 1, 3, 7, 5, 1, 27, 231, 385, 257, 1261, 2701, 1807}}, +{929, 13, 2935, {1, 3, 1, 1, 27, 19, 87, 253, 131, 685, 1743, 3983, 2651}}, +{930, 13, 2946, {1, 3, 7, 11, 21, 17, 11, 81, 191, 641, 1821, 3005, 7251}}, +{931, 13, 2951, {1, 3, 3, 5, 15, 31, 41, 213, 55, 931, 1953, 49, 6037}}, +{932, 13, 2957, {1, 1, 7, 15, 7, 27, 65, 223, 113, 79, 1875, 911, 5445}}, +{933, 13, 2960, {1, 3, 7, 7, 23, 55, 51, 167, 495, 25, 1585, 3447, 799}}, +{934, 13, 2966, {1, 1, 3, 7, 27, 15, 95, 193, 337, 415, 975, 3085, 967}}, +{935, 13, 2972, {1, 1, 7, 15, 19, 7, 93, 41, 433, 551, 401, 3169, 3971}}, +{936, 13, 2976, {1, 1, 7, 11, 13, 15, 53, 69, 433, 59, 1117, 3359, 6231}}, +{937, 13, 2979, {1, 1, 7, 3, 23, 5, 115, 201, 225, 109, 1903, 3897, 6265}}, +{938, 13, 2985, {1, 1, 1, 11, 17, 1, 39, 143, 361, 659, 1105, 23, 4923}}, +{939, 13, 3000, {1, 1, 1, 9, 27, 57, 85, 227, 261, 119, 1881, 3965, 6999}}, +{940, 13, 3003, {1, 3, 7, 7, 15, 7, 107, 17, 315, 49, 1591, 905, 7789}}, +{941, 13, 3013, {1, 3, 1, 7, 29, 3, 47, 237, 157, 769, 839, 3199, 3195}}, +{942, 13, 3018, {1, 1, 3, 15, 25, 39, 63, 15, 111, 857, 881, 1505, 7671}}, +{943, 13, 3020, {1, 1, 7, 1, 3, 35, 41, 215, 99, 895, 1025, 1483, 4707}}, +{944, 13, 3025, {1, 3, 5, 1, 1, 31, 25, 247, 113, 841, 397, 1825, 6969}}, +{945, 13, 3042, {1, 1, 3, 5, 19, 41, 49, 243, 225, 973, 241, 175, 1041}}, +{946, 13, 3047, {1, 1, 1, 7, 15, 15, 105, 141, 83, 75, 1675, 3523, 5219}}, +{947, 13, 3048, {1, 1, 7, 5, 13, 27, 47, 199, 445, 841, 959, 1157, 2209}}, +{948, 13, 3051, {1, 3, 5, 15, 23, 31, 31, 81, 85, 33, 785, 2639, 7799}}, +{949, 13, 3054, {1, 1, 5, 13, 21, 3, 47, 99, 235, 943, 1731, 2467, 7891}}, +{950, 13, 3056, {1, 1, 1, 3, 17, 53, 85, 219, 73, 131, 1339, 875, 1191}}, +{951, 13, 3065, {1, 1, 5, 7, 17, 63, 113, 7, 185, 557, 749, 3563, 4973}}, +{952, 13, 3073, {1, 3, 3, 15, 15, 21, 43, 111, 155, 689, 345, 423, 3597}}, +{953, 13, 3074, {1, 1, 5, 1, 15, 29, 93, 5, 361, 713, 695, 3937, 425}}, +{954, 13, 3083, {1, 3, 7, 7, 13, 41, 115, 175, 315, 937, 123, 2841, 4457}}, +{955, 13, 3086, {1, 1, 3, 11, 25, 5, 103, 53, 423, 811, 657, 399, 7257}}, +{956, 13, 3091, {1, 1, 1, 1, 1, 13, 101, 211, 383, 325, 97, 1703, 4429}}, +{957, 13, 3097, {1, 3, 7, 9, 31, 45, 83, 157, 509, 701, 841, 1105, 3643}}, +{958, 13, 3109, {1, 1, 1, 7, 1, 9, 69, 17, 129, 281, 1161, 2945, 7693}}, +{959, 13, 3116, {1, 3, 7, 1, 11, 29, 51, 143, 77, 433, 1723, 2317, 5641}}, +{960, 13, 3124, {1, 1, 1, 1, 21, 43, 13, 67, 177, 505, 1629, 1267, 4885}}, +{961, 13, 3128, {1, 1, 3, 11, 27, 63, 111, 47, 233, 781, 453, 1679, 3209}}, +{962, 13, 3153, {1, 1, 3, 13, 29, 27, 119, 141, 493, 971, 461, 1159, 633}}, +{963, 13, 3160, {1, 1, 3, 15, 23, 5, 79, 215, 163, 149, 1805, 2399, 61}}, +{964, 13, 3165, {1, 3, 5, 13, 19, 5, 1, 39, 409, 561, 709, 829, 1357}}, +{965, 13, 3172, {1, 3, 3, 13, 19, 43, 9, 177, 449, 447, 73, 2107, 5669}}, +{966, 13, 3175, {1, 3, 5, 1, 23, 13, 63, 109, 203, 593, 829, 4017, 6881}}, +{967, 13, 3184, {1, 1, 5, 7, 3, 9, 53, 175, 391, 169, 1283, 3793, 4451}}, +{968, 13, 3193, {1, 1, 5, 7, 29, 43, 9, 5, 209, 77, 927, 2941, 8145}}, +{969, 13, 3196, {1, 3, 5, 15, 17, 49, 5, 143, 131, 771, 1685, 925, 2175}}, +{970, 13, 3200, {1, 1, 3, 11, 27, 27, 27, 159, 161, 1015, 1587, 4049, 1983}}, +{971, 13, 3203, {1, 3, 1, 3, 23, 57, 119, 67, 481, 577, 389, 3319, 5325}}, +{972, 13, 3205, {1, 3, 5, 1, 19, 39, 87, 61, 329, 657, 1773, 31, 1707}}, +{973, 13, 3209, {1, 1, 3, 1, 5, 25, 15, 241, 131, 815, 1751, 3029, 8039}}, +{974, 13, 3224, {1, 3, 3, 13, 27, 13, 77, 87, 437, 57, 621, 1031, 7891}}, +{975, 13, 3239, {1, 3, 1, 13, 23, 51, 117, 37, 331, 745, 605, 3179, 4713}}, +{976, 13, 3251, {1, 1, 5, 5, 19, 17, 99, 167, 87, 721, 737, 789, 2165}}, +{977, 13, 3254, {1, 3, 5, 13, 1, 51, 119, 211, 165, 299, 1327, 3053, 3343}}, +{978, 13, 3265, {1, 1, 5, 15, 29, 45, 17, 129, 67, 345, 1553, 2705, 7369}}, +{979, 13, 3266, {1, 1, 1, 9, 23, 7, 13, 209, 7, 407, 317, 3077, 7287}}, +{980, 13, 3275, {1, 1, 1, 5, 9, 59, 89, 3, 487, 451, 505, 2499, 7563}}, +{981, 13, 3280, {1, 3, 1, 7, 21, 1, 21, 203, 101, 417, 1389, 2751, 1397}}, +{982, 13, 3283, {1, 3, 7, 13, 7, 31, 3, 247, 349, 485, 1259, 549, 6321}}, +{983, 13, 3286, {1, 1, 7, 7, 27, 33, 107, 197, 293, 729, 1753, 2571, 103}}, +{984, 13, 3301, {1, 3, 5, 9, 25, 35, 5, 253, 137, 213, 2041, 3387, 1809}}, +{985, 13, 3302, {1, 1, 7, 13, 15, 35, 67, 83, 295, 175, 839, 2831, 839}}, +{986, 13, 3305, {1, 3, 3, 11, 3, 17, 55, 141, 247, 991, 117, 3799, 1221}}, +{987, 13, 3319, {1, 1, 5, 1, 11, 37, 87, 233, 457, 653, 899, 2933, 3105}}, +{988, 13, 3323, {1, 1, 3, 15, 3, 31, 67, 167, 437, 9, 651, 1109, 1139}}, +{989, 13, 3326, {1, 1, 3, 1, 7, 63, 67, 17, 11, 883, 1855, 1941, 4751}}, +{990, 13, 3331, {1, 3, 7, 9, 19, 33, 113, 117, 495, 39, 1795, 2561, 5519}}, +{991, 13, 3348, {1, 1, 7, 5, 1, 3, 103, 37, 201, 223, 1101, 877, 6483}}, +{992, 13, 3351, {1, 1, 5, 9, 29, 49, 51, 33, 439, 917, 861, 1321, 2135}}, +{993, 13, 3358, {1, 1, 3, 3, 1, 5, 17, 93, 217, 619, 613, 1357, 6095}}, +{994, 13, 3368, {1, 3, 1, 11, 3, 21, 5, 41, 15, 175, 843, 2937, 6849}}, +{995, 13, 3374, {1, 3, 3, 7, 9, 57, 55, 127, 79, 287, 445, 2205, 7989}}, +{996, 13, 3376, {1, 1, 7, 13, 23, 17, 93, 129, 157, 135, 1747, 1813, 4183}}, +{997, 13, 3379, {1, 1, 1, 5, 31, 59, 99, 33, 425, 329, 887, 367, 1761}}, +{998, 13, 3385, {1, 1, 7, 9, 17, 53, 77, 139, 435, 387, 49, 3649, 1773}}, +{999, 13, 3386, {1, 3, 3, 15, 21, 57, 45, 161, 331, 719, 273, 3479, 4173}}, +{1000, 13, 3396, {1, 1, 3, 9, 3, 3, 105, 201, 373, 877, 919, 1263, 6649}}, +{1001, 13, 3420, {1, 3, 1, 15, 13, 43, 13, 99, 73, 163, 353, 3569, 5601}}, +{1002, 13, 3423, {1, 3, 7, 3, 5, 9, 69, 177, 449, 47, 781, 1125, 4245}}, +{1003, 13, 3430, {1, 1, 1, 5, 3, 45, 1, 123, 409, 903, 205, 2057, 7637}}, +{1004, 13, 3433, {1, 3, 5, 9, 19, 47, 87, 135, 481, 799, 101, 3409, 2241}}, +{1005, 13, 3434, {1, 3, 1, 13, 3, 25, 15, 27, 181, 967, 669, 2577, 7249}}, +{1006, 13, 3439, {1, 1, 7, 3, 31, 5, 103, 53, 1, 911, 1209, 3697, 6685}}, +{1007, 13, 3442, {1, 1, 3, 1, 5, 5, 49, 135, 281, 747, 761, 2973, 7963}}, +{1008, 13, 3444, {1, 3, 3, 5, 19, 61, 125, 199, 299, 515, 1365, 369, 7027}}, +{1009, 13, 3453, {1, 3, 1, 7, 5, 41, 63, 229, 283, 571, 147, 447, 657}}, +{1010, 13, 3464, {1, 3, 1, 11, 5, 15, 55, 7, 259, 61, 27, 1429, 5631}}, +{1011, 13, 3477, {1, 1, 5, 1, 3, 53, 51, 253, 155, 553, 1293, 3735, 6567}}, +{1012, 13, 3478, {1, 3, 5, 9, 5, 41, 21, 159, 101, 785, 1981, 3799, 7693}}, +{1013, 13, 3482, {1, 3, 7, 7, 9, 3, 95, 105, 129, 213, 1215, 1027, 5699}}, +{1014, 13, 3487, {1, 1, 3, 3, 29, 13, 9, 253, 449, 321, 341, 2879, 171}}, +{1015, 13, 3497, {1, 3, 7, 11, 21, 11, 75, 35, 43, 965, 675, 2217, 7175}}, +{1016, 13, 3500, {1, 1, 5, 15, 31, 5, 29, 137, 311, 751, 47, 1367, 5921}}, +{1017, 13, 3505, {1, 1, 3, 15, 17, 1, 45, 69, 55, 649, 835, 569, 7615}}, +{1018, 13, 3506, {1, 3, 1, 13, 31, 7, 23, 15, 391, 145, 1845, 1825, 1403}}, +{1019, 13, 3511, {1, 1, 3, 15, 5, 9, 79, 77, 105, 399, 1933, 2503, 4781}}, +{1020, 13, 3512, {1, 3, 1, 3, 17, 47, 19, 13, 107, 475, 759, 2933, 3761}}, +{1021, 13, 3515, {1, 1, 7, 11, 3, 7, 121, 209, 397, 877, 293, 847, 7039}}, +{1022, 13, 3525, {1, 1, 1, 15, 29, 45, 5, 109, 335, 461, 143, 931, 4045}}, +{1023, 13, 3532, {1, 3, 1, 7, 11, 57, 73, 89, 201, 173, 803, 3953, 5205}}, +{1024, 13, 3538, {1, 1, 5, 11, 11, 33, 37, 29, 263, 1019, 657, 1453, 7807}}, +{1025, 13, 3540, {1, 3, 3, 13, 31, 25, 37, 47, 261, 607, 1703, 2603, 417}}, +{1026, 13, 3547, {1, 1, 1, 1, 31, 61, 45, 115, 275, 239, 1989, 1897, 4329}}, +{1027, 13, 3549, {1, 3, 5, 3, 31, 3, 11, 173, 335, 579, 1193, 2219, 7875}}, +{1028, 13, 3560, {1, 1, 7, 9, 29, 45, 13, 67, 399, 177, 1293, 3865, 2225}}, +{1029, 13, 3571, {1, 1, 7, 11, 11, 51, 121, 227, 469, 905, 929, 2635, 4165}}, +{1030, 13, 3577, {1, 3, 7, 9, 13, 39, 55, 167, 23, 147, 1603, 2083, 4645}}, +{1031, 13, 3583, {1, 1, 3, 15, 27, 53, 11, 155, 157, 629, 259, 3009, 4605}}, +{1032, 13, 3590, {1, 3, 1, 7, 15, 47, 51, 1, 259, 603, 887, 2833, 6581}}, +{1033, 13, 3593, {1, 3, 5, 3, 1, 47, 91, 43, 361, 571, 29, 1453, 4269}}, +{1034, 13, 3594, {1, 1, 3, 9, 11, 51, 55, 23, 415, 277, 1423, 3475, 1527}}, +{1035, 13, 3599, {1, 1, 3, 11, 29, 49, 101, 75, 299, 709, 805, 4037, 4389}}, +{1036, 13, 3601, {1, 1, 7, 3, 23, 1, 37, 51, 379, 771, 1301, 3717, 6673}}, +{1037, 13, 3602, {1, 1, 5, 3, 23, 11, 125, 177, 375, 665, 951, 1577, 2603}}, +{1038, 13, 3613, {1, 1, 1, 1, 1, 5, 71, 255, 21, 459, 467, 2083, 5415}}, +{1039, 13, 3623, {1, 1, 5, 13, 23, 29, 109, 157, 363, 971, 549, 647, 1177}}, +{1040, 13, 3630, {1, 1, 3, 9, 7, 15, 101, 3, 365, 213, 745, 1155, 6099}}, +{1041, 13, 3638, {1, 3, 5, 15, 15, 19, 47, 179, 303, 521, 1279, 219, 2415}}, +{1042, 13, 3649, {1, 3, 3, 13, 27, 11, 83, 165, 369, 989, 261, 3933, 4809}}, +{1043, 13, 3655, {1, 1, 3, 11, 31, 59, 1, 185, 53, 703, 1471, 2935, 1107}}, +{1044, 13, 3662, {1, 3, 3, 7, 25, 3, 81, 27, 93, 521, 433, 2859, 5861}}, +{1045, 13, 3667, {1, 3, 3, 11, 29, 15, 49, 167, 315, 927, 543, 3473, 4307}}, +{1046, 13, 3669, {1, 3, 1, 3, 29, 33, 53, 15, 183, 691, 703, 1311, 3393}}, +{1047, 13, 3676, {1, 3, 5, 13, 23, 49, 3, 11, 1, 357, 1407, 415, 7211}}, +{1048, 13, 3683, {1, 3, 7, 15, 1, 25, 91, 113, 323, 371, 189, 925, 1181}}, +{1049, 13, 3700, {1, 3, 3, 3, 17, 59, 119, 199, 115, 223, 877, 2193, 193}}, +{1050, 13, 3709, {1, 1, 1, 5, 5, 35, 31, 59, 437, 411, 37, 2405, 3797}}, +{1051, 13, 3710, {1, 3, 1, 13, 9, 37, 1, 241, 59, 157, 1785, 1223, 563}}, +{1052, 13, 3713, {1, 3, 5, 13, 3, 21, 25, 95, 15, 745, 85, 701, 5361}}, +{1053, 13, 3723, {1, 3, 7, 1, 31, 33, 111, 195, 35, 913, 2013, 2951, 6611}}, +{1054, 13, 3725, {1, 3, 5, 1, 19, 3, 75, 119, 111, 409, 951, 1457, 4957}}, +{1055, 13, 3728, {1, 3, 1, 15, 19, 59, 3, 155, 237, 657, 1967, 3323, 6235}}, +{1056, 13, 3734, {1, 1, 5, 1, 3, 19, 45, 105, 377, 881, 167, 2255, 4483}}, +{1057, 13, 3737, {1, 1, 7, 7, 13, 13, 99, 89, 201, 279, 161, 2483, 6001}}, +{1058, 13, 3738, {1, 1, 7, 3, 13, 17, 97, 129, 137, 377, 1519, 183, 3725}}, +{1059, 13, 3744, {1, 1, 7, 9, 9, 5, 45, 135, 115, 181, 1685, 3505, 4387}}, +{1060, 13, 3750, {1, 1, 1, 1, 19, 35, 69, 113, 305, 419, 949, 2969, 247}}, +{1061, 13, 3762, {1, 1, 5, 13, 23, 61, 13, 139, 501, 811, 67, 1501, 6493}}, +{1062, 13, 3764, {1, 1, 3, 13, 15, 41, 27, 217, 293, 13, 145, 2631, 6991}}, +{1063, 13, 3774, {1, 3, 3, 13, 15, 37, 71, 123, 285, 49, 627, 1283, 5993}}, +{1064, 13, 3776, {1, 3, 3, 11, 9, 25, 11, 1, 203, 353, 1347, 1999, 2799}}, +{1065, 13, 3786, {1, 3, 5, 1, 7, 49, 101, 231, 499, 63, 1977, 2207, 7829}}, +{1066, 13, 3800, {1, 1, 7, 1, 17, 15, 115, 139, 381, 943, 623, 4037, 2971}}, +{1067, 13, 3803, {1, 1, 3, 5, 13, 55, 23, 87, 139, 795, 1669, 1375, 1185}}, +{1068, 13, 3809, {1, 3, 3, 5, 5, 45, 97, 253, 241, 333, 645, 555, 7867}}, +{1069, 13, 3816, {1, 3, 5, 1, 1, 1, 89, 27, 407, 509, 1433, 609, 2355}}, +{1070, 13, 3821, {1, 3, 7, 1, 27, 29, 5, 157, 495, 811, 1293, 1143, 827}}, +{1071, 13, 3827, {1, 1, 3, 3, 25, 49, 127, 111, 191, 3, 845, 1383, 2521}}, +{1072, 13, 3829, {1, 1, 5, 7, 5, 51, 101, 155, 237, 461, 831, 3091, 3851}}, +{1073, 13, 3836, {1, 3, 7, 1, 29, 35, 105, 91, 285, 705, 131, 395, 6011}}, +{1074, 13, 3842, {1, 3, 5, 3, 13, 21, 83, 173, 221, 827, 1775, 1931, 6727}}, +{1075, 13, 3844, {1, 1, 3, 5, 3, 25, 95, 115, 205, 569, 1447, 933, 6425}}, +{1076, 13, 3847, {1, 1, 7, 9, 31, 3, 17, 175, 145, 447, 1321, 1069, 6527}}, +{1077, 13, 3853, {1, 1, 3, 3, 23, 1, 79, 51, 421, 419, 873, 3939, 1801}}, +{1078, 13, 3861, {1, 1, 5, 1, 3, 39, 15, 85, 169, 669, 919, 397, 5579}}, +{1079, 13, 3871, {1, 3, 5, 1, 21, 61, 87, 217, 251, 619, 1091, 4009, 229}}, +{1080, 13, 3872, {1, 1, 1, 11, 23, 55, 85, 121, 363, 867, 315, 447, 3373}}, +{1081, 13, 3881, {1, 3, 3, 13, 29, 19, 89, 85, 137, 469, 1873, 2765, 3975}}, +{1082, 13, 3890, {1, 3, 7, 13, 19, 63, 61, 77, 67, 361, 11, 1787, 4703}}, +{1083, 13, 3892, {1, 1, 3, 11, 7, 15, 127, 105, 179, 857, 1671, 3647, 3389}}, +{1084, 13, 3909, {1, 1, 1, 7, 19, 21, 99, 161, 499, 519, 1287, 2973, 479}}, +{1085, 13, 3921, {1, 1, 3, 13, 29, 51, 95, 251, 55, 519, 1955, 2881, 5951}}, +{1086, 13, 3934, {1, 1, 3, 11, 23, 63, 121, 237, 175, 311, 701, 1539, 2383}}, +{1087, 13, 3938, {1, 1, 7, 5, 5, 45, 73, 97, 5, 153, 715, 2037, 3353}}, +{1088, 13, 3947, {1, 1, 1, 3, 13, 7, 67, 173, 425, 843, 1497, 2729, 5193}}, +{1089, 13, 3950, {1, 1, 7, 1, 23, 3, 119, 11, 77, 141, 1905, 2269, 4269}}, +{1090, 13, 3952, {1, 1, 7, 15, 1, 23, 79, 251, 439, 603, 405, 2449, 6383}}, +{1091, 13, 3964, {1, 3, 7, 11, 29, 27, 47, 255, 47, 661, 1967, 1007, 3689}}, +{1092, 13, 3974, {1, 3, 7, 5, 19, 39, 35, 115, 417, 373, 291, 329, 603}}, +{1093, 13, 3980, {1, 3, 1, 9, 11, 33, 27, 193, 207, 423, 1311, 1369, 7307}}, +{1094, 13, 3983, {1, 1, 3, 11, 9, 29, 83, 17, 497, 493, 329, 3141, 5935}}, +{1095, 13, 3986, {1, 3, 1, 5, 31, 51, 29, 171, 51, 493, 1621, 3501, 4091}}, +{1096, 13, 3995, {1, 1, 5, 9, 21, 43, 105, 207, 245, 363, 1191, 699, 1139}}, +{1097, 13, 3998, {1, 1, 3, 11, 19, 5, 81, 119, 247, 169, 1337, 45, 6565}}, +{1098, 13, 4001, {1, 3, 1, 11, 3, 51, 3, 101, 159, 11, 253, 299, 5043}}, +{1099, 13, 4002, {1, 3, 1, 5, 11, 53, 85, 39, 57, 645, 2007, 1039, 3627}}, +{1100, 13, 4004, {1, 3, 5, 3, 17, 61, 97, 165, 415, 357, 283, 601, 5505}}, +{1101, 13, 4008, {1, 3, 7, 3, 9, 51, 49, 85, 3, 227, 137, 309, 243}}, +{1102, 13, 4011, {1, 1, 5, 3, 11, 59, 11, 131, 409, 703, 455, 123, 6727}}, +{1103, 13, 4016, {1, 3, 7, 9, 25, 49, 21, 171, 287, 379, 667, 313, 713}}, +{1104, 13, 4033, {1, 1, 3, 9, 7, 35, 47, 3, 367, 581, 1627, 1665, 3905}}, +{1105, 13, 4036, {1, 3, 1, 1, 29, 57, 35, 55, 255, 653, 823, 2197, 6179}}, +{1106, 13, 4040, {1, 3, 7, 15, 17, 15, 117, 83, 359, 163, 115, 2999, 5373}}, +{1107, 13, 4053, {1, 1, 5, 3, 21, 61, 35, 97, 71, 687, 207, 2917, 1049}}, +{1108, 13, 4058, {1, 1, 1, 15, 13, 15, 125, 81, 263, 661, 417, 3243, 1669}}, +{1109, 13, 4081, {1, 1, 7, 3, 3, 19, 111, 193, 443, 339, 659, 1211, 1557}}, +{1110, 13, 4091, {1, 3, 1, 3, 27, 3, 3, 173, 391, 213, 803, 3281, 3207}}, +{1111, 13, 4094, {1, 1, 5, 15, 19, 1, 7, 211, 157, 603, 403, 1387, 1583}}, +{1112, 14, 21, {1, 3, 5, 13, 17, 53, 125, 13, 339, 723, 521, 413, 5801, 10451}}, +{1113, 14, 28, {1, 1, 3, 13, 29, 9, 99, 77, 141, 609, 1533, 983, 2039, 51}}, +{1114, 14, 41, {1, 1, 3, 11, 21, 55, 5, 51, 423, 309, 525, 3715, 3025, 15055}}, +{1115, 14, 47, {1, 1, 3, 7, 9, 21, 77, 171, 239, 341, 1653, 1093, 2273, 10723}}, +{1116, 14, 61, {1, 1, 1, 15, 31, 15, 23, 35, 317, 869, 1917, 1415, 4313, 3687}}, +{1117, 14, 84, {1, 1, 1, 5, 21, 25, 99, 167, 439, 453, 473, 431, 6665, 4989}}, +{1118, 14, 87, {1, 1, 7, 9, 31, 47, 81, 83, 345, 43, 1363, 1885, 3155, 3185}}, +{1119, 14, 93, {1, 3, 7, 1, 31, 17, 61, 185, 341, 129, 547, 717, 2071, 9991}}, +{1120, 14, 94, {1, 3, 1, 13, 23, 61, 77, 217, 455, 77, 1263, 1601, 3501, 14953}}, +{1121, 14, 103, {1, 1, 7, 7, 19, 19, 1, 229, 431, 943, 1069, 1949, 1289, 15729}}, +{1122, 14, 117, {1, 1, 3, 5, 1, 35, 97, 251, 487, 459, 1265, 1739, 165, 10365}}, +{1123, 14, 121, {1, 3, 5, 3, 11, 25, 79, 175, 383, 545, 187, 197, 4329, 3363}}, +{1124, 14, 134, {1, 1, 3, 3, 29, 9, 63, 55, 175, 277, 431, 2549, 2629, 6409}}, +{1125, 14, 137, {1, 1, 3, 15, 17, 21, 79, 139, 99, 135, 1763, 1805, 3471, 5439}}, +{1126, 14, 157, {1, 1, 3, 9, 9, 15, 35, 119, 289, 835, 769, 3843, 4119, 4421}}, +{1127, 14, 161, {1, 1, 1, 5, 19, 19, 67, 199, 307, 815, 1367, 1231, 3927, 6593}}, +{1128, 14, 205, {1, 1, 3, 1, 29, 51, 121, 209, 431, 47, 1115, 907, 2535, 9755}}, +{1129, 14, 206, {1, 1, 3, 5, 17, 1, 5, 119, 121, 223, 1719, 1291, 3947, 15891}}, +{1130, 14, 211, {1, 3, 1, 15, 29, 25, 3, 131, 373, 307, 645, 3513, 1289, 1987}}, +{1131, 14, 214, {1, 3, 3, 11, 29, 45, 105, 179, 331, 465, 891, 1315, 403, 3057}}, +{1132, 14, 218, {1, 1, 5, 13, 17, 59, 77, 127, 485, 855, 1147, 3093, 891, 9869}}, +{1133, 14, 234, {1, 1, 1, 7, 23, 27, 31, 203, 285, 463, 827, 685, 1349, 15051}}, +{1134, 14, 236, {1, 1, 1, 5, 29, 5, 107, 195, 31, 425, 19, 2865, 3869, 11153}}, +{1135, 14, 248, {1, 1, 7, 5, 7, 47, 1, 73, 307, 347, 393, 2205, 7709, 15121}}, +{1136, 14, 262, {1, 1, 1, 13, 15, 61, 25, 131, 113, 369, 1995, 2527, 4475, 1745}}, +{1137, 14, 299, {1, 1, 1, 1, 31, 63, 21, 253, 307, 281, 859, 3319, 6721, 2891}}, +{1138, 14, 304, {1, 1, 3, 11, 1, 17, 5, 183, 301, 979, 651, 1685, 6343, 10067}}, +{1139, 14, 319, {1, 1, 5, 15, 23, 45, 99, 145, 263, 507, 1381, 3425, 2215, 1815}}, +{1140, 14, 322, {1, 3, 1, 5, 11, 63, 85, 203, 411, 881, 1369, 1237, 4657, 6541}}, +{1141, 14, 334, {1, 3, 3, 13, 17, 53, 121, 201, 269, 983, 215, 3187, 7121, 6111}}, +{1142, 14, 355, {1, 3, 5, 15, 15, 5, 13, 143, 3, 313, 1677, 1093, 3295, 3387}}, +{1143, 14, 357, {1, 1, 3, 13, 3, 23, 73, 17, 257, 965, 239, 1271, 2803, 7327}}, +{1144, 14, 358, {1, 3, 5, 13, 9, 57, 115, 37, 41, 467, 135, 1403, 3811, 4741}}, +{1145, 14, 369, {1, 3, 7, 15, 9, 33, 39, 203, 351, 367, 1355, 1403, 3685, 4757}}, +{1146, 14, 372, {1, 3, 5, 11, 31, 3, 113, 123, 203, 421, 1821, 3151, 2375, 4419}}, +{1147, 14, 375, {1, 1, 1, 7, 21, 63, 99, 23, 133, 79, 991, 1755, 4989, 4709}}, +{1148, 14, 388, {1, 3, 5, 1, 25, 63, 113, 239, 49, 443, 173, 1261, 3201, 10599}}, +{1149, 14, 400, {1, 3, 3, 13, 3, 25, 101, 169, 23, 585, 327, 1327, 111, 10059}}, +{1150, 14, 415, {1, 3, 3, 5, 19, 1, 33, 89, 437, 213, 1933, 1741, 2603, 5625}}, +{1151, 14, 446, {1, 3, 1, 3, 15, 15, 25, 139, 73, 335, 237, 2461, 3101, 14951}}, +{1152, 14, 451, {1, 3, 5, 1, 31, 15, 31, 187, 177, 659, 1339, 3767, 4975, 7123}}, +{1153, 14, 458, {1, 3, 1, 3, 25, 19, 47, 89, 107, 107, 649, 683, 3123, 11085}}, +{1154, 14, 471, {1, 3, 7, 9, 15, 21, 101, 25, 11, 625, 1555, 675, 3893, 5805}}, +{1155, 14, 484, {1, 1, 1, 5, 7, 49, 123, 21, 439, 369, 207, 535, 4619, 14665}}, +{1156, 14, 501, {1, 1, 5, 7, 1, 25, 103, 185, 99, 239, 1093, 1561, 6177, 4039}}, +{1157, 14, 502, {1, 3, 7, 5, 29, 21, 43, 103, 343, 973, 1561, 2975, 7467, 7947}}, +{1158, 14, 517, {1, 1, 7, 9, 19, 3, 13, 23, 461, 813, 1191, 985, 559, 3317}}, +{1159, 14, 545, {1, 3, 5, 5, 27, 31, 79, 15, 365, 901, 1949, 117, 3619, 13311}}, +{1160, 14, 569, {1, 3, 5, 7, 5, 33, 67, 199, 425, 189, 1691, 3099, 815, 1677}}, +{1161, 14, 617, {1, 1, 7, 11, 13, 29, 73, 137, 265, 601, 445, 3893, 2511, 8047}}, +{1162, 14, 618, {1, 1, 3, 1, 13, 5, 57, 101, 357, 391, 335, 601, 1359, 1065}}, +{1163, 14, 623, {1, 1, 1, 1, 25, 57, 27, 115, 31, 873, 611, 2125, 447, 13585}}, +{1164, 14, 625, {1, 3, 3, 13, 27, 17, 73, 11, 359, 33, 1153, 271, 4537, 15141}}, +{1165, 14, 637, {1, 3, 7, 3, 11, 63, 103, 61, 59, 629, 1629, 3279, 3919, 3177}}, +{1166, 14, 661, {1, 1, 5, 15, 3, 63, 85, 193, 381, 165, 175, 3247, 2501, 4209}}, +{1167, 14, 668, {1, 1, 5, 15, 1, 33, 59, 219, 487, 193, 1557, 703, 2907, 7953}}, +{1168, 14, 684, {1, 1, 7, 3, 9, 3, 105, 95, 389, 991, 21, 3841, 6983, 285}}, +{1169, 14, 695, {1, 1, 1, 1, 1, 31, 25, 137, 117, 67, 1283, 1963, 6591, 15541}}, +{1170, 14, 716, {1, 3, 5, 11, 7, 15, 127, 89, 453, 777, 1827, 2311, 7661, 11833}}, +{1171, 14, 719, {1, 1, 7, 13, 19, 29, 79, 165, 223, 453, 2039, 3961, 6467, 5481}}, +{1172, 14, 722, {1, 3, 3, 7, 17, 41, 43, 157, 323, 3, 1001, 2109, 4513, 12127}}, +{1173, 14, 731, {1, 1, 5, 9, 31, 57, 3, 217, 113, 271, 1663, 1367, 6949, 8165}}, +{1174, 14, 738, {1, 1, 7, 15, 27, 35, 81, 235, 61, 205, 525, 311, 6357, 2527}}, +{1175, 14, 747, {1, 3, 1, 9, 19, 29, 71, 207, 321, 1011, 1615, 1333, 3459, 6681}}, +{1176, 14, 755, {1, 3, 7, 7, 3, 57, 41, 19, 25, 397, 565, 1837, 7625, 11813}}, +{1177, 14, 761, {1, 3, 3, 1, 27, 47, 31, 79, 441, 961, 1255, 423, 2405, 913}}, +{1178, 14, 767, {1, 3, 3, 13, 3, 29, 69, 227, 85, 201, 395, 3199, 3869, 13099}}, +{1179, 14, 775, {1, 3, 3, 7, 29, 61, 99, 7, 27, 227, 945, 873, 475, 4363}}, +{1180, 14, 782, {1, 3, 5, 13, 19, 21, 57, 149, 217, 443, 565, 453, 5487, 10981}}, +{1181, 14, 787, {1, 3, 3, 1, 9, 27, 47, 191, 35, 395, 1429, 4079, 6871, 8013}}, +{1182, 14, 794, {1, 3, 5, 15, 5, 43, 9, 79, 279, 563, 1125, 985, 8117, 4099}}, +{1183, 14, 803, {1, 3, 5, 1, 13, 41, 21, 117, 287, 667, 701, 1483, 8167, 13283}}, +{1184, 14, 812, {1, 3, 1, 3, 15, 15, 59, 5, 383, 509, 1657, 3977, 7697, 10941}}, +{1185, 14, 817, {1, 3, 1, 1, 17, 29, 19, 23, 377, 45, 981, 1631, 3557, 6749}}, +{1186, 14, 824, {1, 3, 3, 9, 9, 51, 9, 193, 345, 361, 1679, 3333, 713, 5387}}, +{1187, 14, 829, {1, 3, 5, 5, 17, 45, 97, 17, 385, 349, 105, 2245, 7295, 14393}}, +{1188, 14, 850, {1, 3, 7, 3, 19, 51, 35, 99, 79, 301, 1563, 399, 5879, 14675}}, +{1189, 14, 866, {1, 1, 7, 15, 13, 53, 55, 203, 417, 161, 2033, 1845, 6763, 3585}}, +{1190, 14, 871, {1, 1, 3, 3, 7, 23, 11, 43, 241, 309, 1453, 3147, 2619, 3163}}, +{1191, 14, 877, {1, 1, 1, 11, 17, 1, 17, 137, 443, 465, 993, 3217, 7879, 14607}}, +{1192, 14, 920, {1, 1, 7, 13, 29, 49, 71, 217, 291, 793, 135, 21, 2503, 11091}}, +{1193, 14, 935, {1, 3, 1, 11, 31, 51, 121, 227, 377, 157, 1457, 1317, 5625, 6217}}, +{1194, 14, 959, {1, 1, 3, 7, 23, 61, 47, 93, 79, 617, 1805, 2403, 5513, 16335}}, +{1195, 14, 979, {1, 3, 5, 11, 23, 25, 41, 11, 495, 587, 1223, 3107, 1469, 15223}}, +{1196, 14, 992, {1, 3, 7, 7, 9, 1, 1, 49, 23, 723, 1761, 3717, 7375, 10875}}, +{1197, 14, 1010, {1, 3, 3, 11, 25, 37, 57, 63, 309, 603, 183, 285, 1663, 5627}}, +{1198, 14, 1012, {1, 3, 7, 11, 19, 25, 25, 201, 391, 257, 529, 1645, 1, 15111}}, +{1199, 14, 1015, {1, 3, 3, 9, 11, 43, 91, 65, 5, 959, 301, 1015, 6343, 3453}}, +{1200, 14, 1033, {1, 3, 3, 11, 17, 17, 103, 37, 77, 973, 575, 439, 49, 3639}}, +{1201, 14, 1036, {1, 1, 5, 7, 1, 15, 107, 237, 231, 967, 923, 1101, 6715, 1713}}, +{1202, 14, 1053, {1, 3, 1, 15, 9, 33, 29, 211, 245, 601, 1783, 887, 1209, 11785}}, +{1203, 14, 1057, {1, 3, 3, 7, 21, 43, 27, 89, 27, 141, 865, 367, 1379, 4063}}, +{1204, 14, 1069, {1, 3, 7, 7, 15, 17, 15, 15, 131, 649, 1955, 3289, 3983, 10689}}, +{1205, 14, 1072, {1, 3, 1, 5, 17, 7, 125, 69, 359, 981, 1345, 933, 5281, 7113}}, +{1206, 14, 1075, {1, 1, 5, 9, 17, 7, 41, 207, 497, 1015, 493, 891, 3563, 3541}}, +{1207, 14, 1087, {1, 3, 5, 11, 27, 3, 47, 31, 303, 1007, 2047, 2203, 6257, 8369}}, +{1208, 14, 1089, {1, 1, 1, 15, 25, 15, 89, 51, 217, 357, 1133, 1917, 213, 3365}}, +{1209, 14, 1137, {1, 1, 5, 13, 29, 23, 123, 207, 429, 805, 819, 2357, 6313, 11019}}, +{1210, 14, 1166, {1, 1, 3, 7, 19, 15, 41, 73, 279, 11, 1089, 3107, 7737, 15953}}, +{1211, 14, 1174, {1, 3, 5, 7, 7, 15, 41, 73, 493, 457, 1731, 1139, 2513, 12373}}, +{1212, 14, 1180, {1, 3, 5, 9, 17, 5, 55, 155, 173, 1005, 529, 3175, 7667, 4747}}, +{1213, 14, 1204, {1, 1, 7, 7, 5, 21, 105, 31, 205, 847, 1033, 3167, 2347, 8499}}, +{1214, 14, 1211, {1, 3, 5, 3, 11, 17, 59, 189, 179, 1007, 33, 3287, 4813, 8177}}, +{1215, 14, 1219, {1, 3, 3, 13, 27, 47, 47, 171, 413, 875, 1081, 1259, 7139, 8645}}, +{1216, 14, 1236, {1, 3, 5, 7, 25, 21, 51, 29, 361, 293, 51, 1119, 1453, 5283}}, +{1217, 14, 1255, {1, 3, 7, 7, 29, 55, 103, 199, 511, 341, 1957, 3987, 2855, 1279}}, +{1218, 14, 1264, {1, 1, 1, 9, 23, 51, 61, 63, 391, 37, 55, 3771, 6517, 15913}}, +{1219, 14, 1306, {1, 1, 1, 9, 3, 19, 13, 147, 453, 855, 1321, 189, 5043, 11215}}, +{1220, 14, 1330, {1, 3, 3, 13, 23, 3, 87, 155, 401, 981, 607, 3413, 995, 6473}}, +{1221, 14, 1341, {1, 3, 1, 9, 29, 47, 95, 123, 421, 353, 1867, 2609, 2569, 14083}}, +{1222, 14, 1344, {1, 1, 5, 13, 25, 39, 29, 111, 125, 545, 1493, 2371, 6361, 6307}}, +{1223, 14, 1347, {1, 3, 3, 11, 13, 31, 87, 75, 27, 393, 921, 3655, 3343, 16349}}, +{1224, 14, 1349, {1, 1, 5, 9, 19, 19, 7, 129, 223, 715, 433, 1627, 4463, 2951}}, +{1225, 14, 1361, {1, 1, 7, 1, 31, 13, 49, 33, 89, 43, 1529, 725, 3809, 3427}}, +{1226, 14, 1380, {1, 1, 7, 3, 1, 27, 45, 9, 309, 875, 659, 2661, 553, 7069}}, +{1227, 14, 1390, {1, 1, 7, 15, 13, 37, 61, 19, 125, 683, 1227, 2255, 1455, 9339}}, +{1228, 14, 1404, {1, 3, 5, 7, 19, 7, 71, 21, 465, 645, 1885, 873, 7405, 1913}}, +{1229, 14, 1435, {1, 3, 1, 11, 11, 35, 79, 61, 79, 57, 1603, 3719, 6323, 16371}}, +{1230, 14, 1444, {1, 1, 7, 1, 29, 57, 85, 21, 205, 37, 2045, 683, 4901, 8223}}, +{1231, 14, 1453, {1, 1, 5, 13, 31, 31, 65, 131, 259, 535, 967, 3943, 2605, 2089}}, +{1232, 14, 1461, {1, 1, 7, 9, 27, 61, 39, 243, 207, 41, 1909, 3279, 1331, 4635}}, +{1233, 14, 1462, {1, 3, 3, 5, 11, 63, 105, 19, 169, 95, 773, 3175, 1869, 1797}}, +{1234, 14, 1465, {1, 3, 3, 15, 13, 33, 107, 197, 153, 795, 1477, 105, 4965, 991}}, +{1235, 14, 1468, {1, 3, 7, 11, 11, 37, 23, 149, 197, 3, 1035, 3857, 553, 1059}}, +{1236, 14, 1474, {1, 3, 1, 3, 17, 29, 89, 189, 193, 59, 1477, 3517, 2565, 7739}}, +{1237, 14, 1483, {1, 1, 1, 9, 23, 3, 25, 163, 469, 305, 1791, 3393, 6141, 8119}}, +{1238, 14, 1488, {1, 3, 5, 7, 7, 41, 19, 101, 179, 487, 1071, 2761, 8043, 5103}}, +{1239, 14, 1493, {1, 1, 7, 9, 1, 21, 101, 103, 349, 85, 1841, 1033, 4473, 3563}}, +{1240, 14, 1500, {1, 1, 3, 13, 23, 61, 39, 27, 479, 13, 45, 1371, 7897, 10637}}, +{1241, 14, 1509, {1, 1, 5, 9, 17, 61, 71, 55, 355, 99, 1695, 3053, 839, 959}}, +{1242, 14, 1510, {1, 1, 3, 1, 7, 27, 87, 221, 327, 241, 461, 3177, 5933, 8299}}, +{1243, 14, 1514, {1, 3, 7, 9, 5, 41, 111, 245, 447, 263, 1363, 1767, 6331, 3355}}, +{1244, 14, 1519, {1, 3, 3, 13, 15, 11, 15, 169, 429, 149, 1965, 2477, 7733, 2499}}, +{1245, 14, 1528, {1, 1, 5, 15, 15, 47, 25, 33, 469, 701, 773, 2747, 1533, 14633}}, +{1246, 14, 1533, {1, 3, 1, 5, 19, 57, 37, 75, 423, 11, 685, 2487, 1779, 8797}}, +{1247, 14, 1540, {1, 3, 1, 5, 19, 41, 67, 99, 333, 991, 953, 3221, 939, 4197}}, +{1248, 14, 1550, {1, 3, 1, 15, 11, 39, 25, 1, 159, 679, 465, 1611, 5799, 2537}}, +{1249, 14, 1567, {1, 1, 5, 11, 5, 37, 37, 7, 101, 703, 235, 23, 2209, 12799}}, +{1250, 14, 1571, {1, 1, 7, 3, 11, 23, 71, 215, 45, 269, 1539, 3625, 5773, 6889}}, +{1251, 14, 1573, {1, 3, 5, 15, 27, 33, 105, 109, 205, 653, 821, 435, 1087, 2495}}, +{1252, 14, 1578, {1, 1, 3, 5, 11, 39, 53, 213, 41, 385, 1425, 25, 5553, 12523}}, +{1253, 14, 1598, {1, 3, 5, 15, 29, 49, 13, 253, 505, 407, 985, 2569, 6727, 4761}}, +{1254, 14, 1606, {1, 1, 1, 3, 29, 17, 69, 47, 25, 819, 1145, 2479, 1183, 3343}}, +{1255, 14, 1618, {1, 3, 1, 15, 25, 61, 43, 55, 279, 579, 361, 355, 6101, 3143}}, +{1256, 14, 1630, {1, 3, 5, 11, 3, 59, 125, 101, 451, 495, 1711, 3443, 3625, 15579}}, +{1257, 14, 1634, {1, 3, 1, 11, 25, 61, 49, 219, 23, 795, 481, 3609, 3691, 15419}}, +{1258, 14, 1640, {1, 3, 7, 5, 9, 59, 49, 233, 345, 143, 181, 3587, 3041, 1219}}, +{1259, 14, 1643, {1, 3, 7, 13, 9, 31, 39, 137, 261, 919, 1367, 3145, 4659, 5875}}, +{1260, 14, 1654, {1, 1, 3, 3, 27, 43, 95, 65, 301, 915, 31, 451, 7743, 7277}}, +{1261, 14, 1679, {1, 3, 1, 5, 23, 37, 53, 31, 203, 453, 71, 1585, 6011, 16369}}, +{1262, 14, 1688, {1, 1, 5, 1, 15, 47, 91, 227, 297, 45, 1415, 3647, 7811, 14015}}, +{1263, 14, 1698, {1, 1, 1, 1, 29, 27, 93, 121, 169, 69, 1361, 2907, 1867, 7017}}, +{1264, 14, 1703, {1, 3, 1, 7, 23, 53, 77, 41, 25, 873, 1333, 3889, 3239, 1771}}, +{1265, 14, 1704, {1, 1, 1, 7, 31, 27, 87, 81, 167, 343, 1981, 2499, 7749, 15747}}, +{1266, 14, 1722, {1, 3, 5, 13, 1, 17, 97, 37, 81, 645, 1167, 3547, 7769, 10731}}, +{1267, 14, 1735, {1, 1, 7, 5, 9, 17, 31, 55, 151, 463, 1041, 2303, 4015, 3737}}, +{1268, 14, 1750, {1, 1, 3, 11, 31, 9, 81, 213, 95, 215, 2031, 2129, 4299, 3021}}, +{1269, 14, 1753, {1, 1, 1, 3, 25, 25, 115, 229, 101, 441, 783, 1729, 7905, 2375}}, +{1270, 14, 1760, {1, 1, 5, 9, 3, 19, 73, 35, 379, 493, 1333, 1647, 13, 197}}, +{1271, 14, 1789, {1, 1, 7, 9, 3, 55, 99, 43, 281, 9, 73, 2477, 8183, 11055}}, +{1272, 14, 1792, {1, 3, 7, 13, 25, 19, 27, 195, 469, 175, 355, 1861, 7255, 15377}}, +{1273, 14, 1802, {1, 1, 3, 11, 15, 19, 115, 31, 413, 835, 697, 879, 6515, 13465}}, +{1274, 14, 1819, {1, 3, 3, 15, 3, 61, 105, 201, 151, 739, 49, 3963, 2573, 3303}}, +{1275, 14, 1825, {1, 3, 5, 7, 23, 5, 11, 215, 19, 591, 509, 2887, 1631, 4391}}, +{1276, 14, 1828, {1, 3, 3, 3, 25, 1, 109, 5, 363, 545, 1745, 503, 827, 4677}}, +{1277, 14, 1832, {1, 1, 3, 15, 1, 45, 121, 141, 497, 745, 1825, 2041, 2561, 8153}}, +{1278, 14, 1845, {1, 3, 1, 11, 29, 7, 71, 241, 7, 39, 1379, 2479, 7483, 7195}}, +{1279, 14, 1846, {1, 1, 7, 11, 3, 27, 39, 97, 339, 217, 1409, 1569, 4761, 1567}}, +{1280, 14, 1857, {1, 1, 5, 15, 11, 53, 87, 213, 297, 923, 393, 717, 3297, 16123}}, +{1281, 14, 1869, {1, 1, 1, 11, 27, 41, 121, 49, 225, 379, 1305, 319, 2461, 5445}}, +{1282, 14, 1897, {1, 1, 5, 5, 25, 3, 121, 23, 47, 843, 1679, 1427, 6393, 4199}}, +{1283, 14, 1906, {1, 1, 5, 13, 17, 3, 17, 25, 161, 487, 121, 361, 1375, 10745}}, +{1284, 14, 1908, {1, 1, 7, 3, 3, 37, 7, 245, 107, 107, 745, 2415, 2131, 11419}}, +{1285, 14, 1911, {1, 1, 5, 3, 3, 23, 67, 91, 281, 387, 465, 905, 883, 9775}}, +{1286, 14, 1934, {1, 3, 7, 15, 25, 55, 123, 49, 23, 983, 1903, 2589, 2073, 7823}}, +{1287, 14, 1962, {1, 1, 5, 11, 25, 17, 63, 229, 267, 175, 1759, 1947, 479, 11089}}, +{1288, 14, 1967, {1, 3, 7, 3, 11, 37, 83, 95, 415, 1003, 1175, 2361, 2117, 9809}}, +{1289, 14, 1972, {1, 3, 1, 9, 5, 39, 51, 129, 249, 161, 1981, 2755, 8057, 13641}}, +{1290, 14, 1975, {1, 1, 7, 1, 15, 47, 9, 197, 199, 549, 1091, 2853, 2331, 4535}}, +{1291, 14, 1999, {1, 3, 3, 13, 15, 21, 23, 111, 463, 719, 1667, 377, 5039, 10723}}, +{1292, 14, 2004, {1, 1, 3, 7, 23, 47, 39, 47, 307, 949, 1651, 2525, 5835, 1425}}, +{1293, 14, 2011, {1, 3, 3, 9, 23, 47, 111, 39, 251, 1001, 179, 3985, 535, 15435}}, +{1294, 14, 2013, {1, 1, 3, 13, 5, 45, 51, 123, 205, 651, 1583, 1691, 1631, 11975}}, +{1295, 14, 2037, {1, 1, 7, 9, 1, 29, 59, 27, 389, 497, 1459, 1633, 521, 14037}}, +{1296, 14, 2051, {1, 1, 3, 3, 3, 23, 35, 247, 371, 729, 931, 681, 1777, 8353}}, +{1297, 14, 2063, {1, 3, 3, 1, 19, 15, 17, 191, 495, 643, 319, 37, 5691, 7049}}, +{1298, 14, 2066, {1, 3, 5, 11, 5, 31, 123, 243, 335, 573, 113, 209, 4825, 7783}}, +{1299, 14, 2094, {1, 3, 7, 7, 29, 19, 25, 191, 89, 515, 55, 3013, 4523, 12913}}, +{1300, 14, 2128, {1, 1, 3, 3, 15, 3, 35, 37, 339, 7, 697, 359, 4553, 1431}}, +{1301, 14, 2154, {1, 3, 1, 1, 9, 15, 33, 77, 161, 13, 255, 1187, 6587, 11715}}, +{1302, 14, 2164, {1, 3, 7, 7, 25, 57, 61, 171, 231, 43, 1219, 903, 5623, 4781}}, +{1303, 14, 2198, {1, 1, 5, 15, 29, 47, 117, 23, 213, 907, 1423, 369, 4529, 9651}}, +{1304, 14, 2217, {1, 1, 5, 7, 15, 55, 105, 249, 401, 37, 1885, 3779, 3441, 9057}}, +{1305, 14, 2220, {1, 1, 5, 3, 3, 27, 49, 89, 335, 561, 1235, 3251, 2731, 12711}}, +{1306, 14, 2223, {1, 1, 1, 15, 29, 49, 37, 173, 25, 743, 1321, 821, 5899, 9213}}, +{1307, 14, 2238, {1, 1, 7, 3, 1, 41, 61, 209, 275, 925, 521, 3029, 1569, 9277}}, +{1308, 14, 2245, {1, 3, 5, 13, 17, 1, 11, 171, 441, 119, 1589, 299, 157, 11439}}, +{1309, 14, 2252, {1, 1, 5, 9, 13, 33, 27, 77, 363, 939, 1103, 2135, 1759, 5429}}, +{1310, 14, 2258, {1, 3, 7, 1, 17, 39, 49, 201, 49, 803, 2003, 1193, 7415, 13847}}, +{1311, 14, 2264, {1, 1, 5, 5, 17, 49, 39, 19, 311, 801, 1441, 3263, 7973, 14181}}, +{1312, 14, 2280, {1, 1, 3, 9, 9, 27, 59, 89, 81, 473, 1369, 3121, 7929, 10905}}, +{1313, 14, 2285, {1, 3, 3, 5, 17, 35, 35, 239, 379, 431, 501, 3561, 2059, 9679}}, +{1314, 14, 2293, {1, 3, 5, 15, 25, 29, 113, 179, 269, 891, 301, 2017, 7513, 9379}}, +{1315, 14, 2294, {1, 3, 1, 11, 17, 35, 49, 149, 135, 661, 1691, 3169, 3765, 9003}}, +{1316, 14, 2298, {1, 3, 7, 15, 5, 21, 53, 241, 475, 271, 683, 2351, 2181, 6333}}, +{1317, 14, 2303, {1, 1, 7, 13, 25, 33, 71, 153, 221, 507, 2017, 2401, 7545, 8489}}, +{1318, 14, 2306, {1, 1, 7, 5, 1, 49, 87, 1, 179, 331, 1597, 3713, 809, 11109}}, +{1319, 14, 2311, {1, 3, 1, 5, 5, 61, 93, 39, 479, 977, 1099, 1291, 7049, 2797}}, +{1320, 14, 2326, {1, 3, 1, 13, 19, 41, 57, 77, 5, 117, 125, 115, 3969, 1345}}, +{1321, 14, 2354, {1, 1, 1, 9, 15, 9, 57, 7, 219, 41, 767, 23, 5771, 14175}}, +{1322, 14, 2373, {1, 3, 7, 9, 17, 61, 1, 59, 227, 349, 63, 189, 3871, 7919}}, +{1323, 14, 2380, {1, 3, 5, 5, 9, 29, 33, 203, 413, 701, 1129, 2103, 1889, 8377}}, +{1324, 14, 2385, {1, 1, 3, 1, 9, 17, 69, 115, 123, 1001, 1, 2893, 3957, 8593}}, +{1325, 14, 2392, {1, 1, 3, 1, 31, 41, 83, 91, 113, 195, 1121, 2665, 6815, 1189}}, +{1326, 14, 2401, {1, 1, 1, 13, 3, 59, 13, 123, 95, 103, 1689, 2809, 5049, 4055}}, +{1327, 14, 2402, {1, 1, 1, 15, 21, 41, 11, 167, 375, 589, 207, 1631, 1597, 8091}}, +{1328, 14, 2408, {1, 3, 5, 5, 1, 33, 57, 89, 157, 921, 1353, 2777, 461, 14567}}, +{1329, 14, 2419, {1, 1, 5, 1, 25, 5, 51, 247, 1, 577, 463, 3741, 303, 16059}}, +{1330, 14, 2450, {1, 1, 7, 5, 13, 7, 17, 87, 51, 987, 835, 93, 5203, 3973}}, +{1331, 14, 2452, {1, 1, 7, 7, 3, 27, 7, 1, 135, 171, 231, 3349, 4459, 2925}}, +{1332, 14, 2477, {1, 1, 5, 5, 9, 51, 71, 153, 115, 315, 265, 2207, 4127, 12631}}, +{1333, 14, 2509, {1, 1, 3, 15, 23, 59, 35, 121, 425, 921, 1255, 2123, 5811, 15937}}, +{1334, 14, 2510, {1, 3, 7, 7, 11, 21, 45, 57, 269, 395, 555, 783, 6677, 2889}}, +{1335, 14, 2515, {1, 3, 5, 7, 31, 19, 73, 35, 465, 349, 1429, 863, 4707, 6121}}, +{1336, 14, 2524, {1, 3, 3, 9, 25, 27, 119, 159, 195, 949, 19, 73, 4511, 15711}}, +{1337, 14, 2527, {1, 3, 3, 7, 9, 59, 47, 57, 91, 749, 1579, 1297, 2445, 5167}}, +{1338, 14, 2531, {1, 3, 3, 3, 31, 57, 19, 203, 61, 927, 1477, 2863, 1305, 11673}}, +{1339, 14, 2552, {1, 3, 7, 11, 29, 13, 3, 111, 351, 79, 1863, 2213, 3273, 7049}}, +{1340, 14, 2561, {1, 3, 3, 9, 7, 23, 47, 237, 121, 877, 441, 119, 2723, 3989}}, +{1341, 14, 2567, {1, 3, 3, 11, 17, 23, 63, 177, 231, 363, 1451, 33, 2169, 7251}}, +{1342, 14, 2571, {1, 1, 5, 11, 31, 41, 93, 229, 39, 1009, 1061, 433, 2393, 15401}}, +{1343, 14, 2586, {1, 1, 5, 15, 31, 37, 25, 135, 135, 897, 33, 3713, 7663, 8079}}, +{1344, 14, 2588, {1, 1, 5, 7, 17, 49, 43, 89, 411, 731, 1431, 3893, 1635, 7063}}, +{1345, 14, 2595, {1, 1, 1, 13, 29, 27, 5, 77, 283, 913, 789, 817, 3309, 475}}, +{1346, 14, 2607, {1, 1, 3, 1, 19, 21, 67, 77, 423, 551, 5, 1057, 5469, 7859}}, +{1347, 14, 2621, {1, 1, 5, 1, 1, 21, 99, 237, 215, 759, 1505, 1983, 1517, 8923}}, +{1348, 14, 2630, {1, 3, 5, 7, 19, 61, 73, 215, 165, 127, 205, 259, 7755, 15395}}, +{1349, 14, 2639, {1, 1, 5, 9, 15, 23, 17, 111, 471, 751, 1923, 775, 6901, 13095}}, +{1350, 14, 2653, {1, 1, 7, 1, 25, 5, 63, 141, 461, 687, 1589, 1559, 7719, 11349}}, +{1351, 14, 2670, {1, 1, 1, 3, 11, 63, 11, 27, 253, 439, 297, 1315, 829, 3765}}, +{1352, 14, 2672, {1, 3, 1, 1, 9, 47, 127, 179, 173, 809, 241, 35, 7355, 5049}}, +{1353, 14, 2700, {1, 3, 1, 11, 19, 63, 93, 1, 205, 977, 303, 3409, 6529, 10927}}, +{1354, 14, 2711, {1, 3, 7, 9, 31, 63, 41, 79, 477, 91, 1801, 3487, 6885, 13341}}, +{1355, 14, 2715, {1, 1, 3, 7, 15, 59, 9, 101, 459, 247, 549, 2855, 5765, 7785}}, +{1356, 14, 2748, {1, 1, 7, 3, 13, 59, 71, 123, 93, 517, 1453, 2389, 4429, 5053}}, +{1357, 14, 2751, {1, 1, 5, 3, 19, 21, 77, 53, 81, 879, 1653, 1637, 3667, 2623}}, +{1358, 14, 2753, {1, 1, 1, 15, 17, 57, 65, 53, 407, 765, 417, 497, 5009, 2175}}, +{1359, 14, 2754, {1, 3, 3, 7, 31, 13, 5, 203, 263, 17, 119, 1607, 6773, 11195}}, +{1360, 14, 2760, {1, 3, 3, 13, 19, 13, 13, 147, 93, 735, 689, 781, 655, 6853}}, +{1361, 14, 2774, {1, 1, 1, 1, 1, 25, 63, 159, 493, 987, 71, 1249, 5859, 11717}}, +{1362, 14, 2784, {1, 1, 1, 15, 13, 23, 61, 61, 5, 947, 1853, 3331, 467, 8081}}, +{1363, 14, 2793, {1, 1, 3, 9, 19, 61, 65, 189, 95, 309, 283, 1725, 5683, 15463}}, +{1364, 14, 2804, {1, 1, 7, 5, 9, 33, 35, 75, 475, 831, 1445, 1485, 5047, 9631}}, +{1365, 14, 2811, {1, 1, 3, 15, 11, 23, 59, 87, 433, 221, 685, 3113, 4095, 13819}}, +{1366, 14, 2822, {1, 1, 7, 15, 25, 29, 67, 17, 349, 353, 1321, 563, 57, 533}}, +{1367, 14, 2826, {1, 3, 3, 3, 5, 43, 109, 217, 15, 185, 1895, 1015, 1831, 10623}}, +{1368, 14, 2836, {1, 1, 7, 1, 1, 47, 81, 185, 59, 691, 191, 3709, 1535, 13347}}, +{1369, 14, 2839, {1, 1, 5, 1, 23, 57, 83, 217, 457, 771, 1877, 2789, 8143, 4797}}, +{1370, 14, 2840, {1, 1, 3, 7, 23, 35, 79, 49, 227, 205, 1523, 3873, 4843, 10505}}, +{1371, 14, 2893, {1, 1, 1, 1, 17, 43, 121, 95, 205, 35, 189, 2061, 1693, 13273}}, +{1372, 14, 2901, {1, 1, 1, 15, 31, 49, 83, 249, 433, 497, 1949, 1845, 5215, 5971}}, +{1373, 14, 2902, {1, 3, 1, 1, 21, 53, 73, 211, 265, 929, 923, 279, 3621, 9469}}, +{1374, 14, 2905, {1, 3, 7, 7, 1, 57, 13, 45, 467, 705, 371, 1345, 1647, 3411}}, +{1375, 14, 2912, {1, 3, 1, 11, 27, 29, 117, 163, 143, 669, 489, 3913, 7891, 9031}}, +{1376, 14, 2915, {1, 3, 7, 15, 27, 15, 77, 217, 107, 839, 1517, 1543, 357, 10365}}, +{1377, 14, 2918, {1, 1, 1, 5, 31, 17, 107, 245, 345, 939, 1453, 3645, 6865, 16173}}, +{1378, 14, 2939, {1, 3, 5, 5, 9, 61, 43, 97, 453, 917, 945, 2143, 5473, 5611}}, +{1379, 14, 2965, {1, 1, 5, 11, 3, 33, 71, 97, 137, 549, 1605, 3839, 4883, 2677}}, +{1380, 14, 2966, {1, 3, 1, 11, 29, 23, 85, 47, 225, 633, 1613, 1297, 1415, 15813}}, +{1381, 14, 2975, {1, 1, 3, 3, 9, 19, 57, 107, 79, 449, 1951, 753, 6317, 10377}}, +{1382, 14, 2988, {1, 1, 1, 5, 21, 3, 39, 187, 299, 517, 1313, 741, 7259, 4197}}, +{1383, 14, 2993, {1, 1, 5, 13, 1, 39, 39, 41, 381, 123, 1257, 3185, 493, 3723}}, +{1384, 14, 3006, {1, 3, 7, 7, 3, 37, 15, 161, 129, 169, 555, 3605, 4287, 15831}}, +{1385, 14, 3017, {1, 3, 7, 15, 15, 23, 81, 163, 257, 791, 505, 1903, 2703, 11919}}, +{1386, 14, 3031, {1, 3, 7, 7, 27, 63, 17, 147, 111, 851, 1533, 1365, 5359, 3315}}, +{1387, 14, 3038, {1, 3, 7, 1, 15, 5, 61, 143, 385, 261, 1019, 1705, 1737, 14485}}, +{1388, 14, 3041, {1, 3, 5, 5, 25, 17, 49, 229, 431, 567, 1613, 3431, 2139, 2981}}, +{1389, 14, 3042, {1, 3, 5, 11, 17, 57, 71, 241, 31, 1007, 1695, 2965, 149, 14125}}, +{1390, 14, 3051, {1, 1, 3, 11, 7, 49, 39, 101, 5, 501, 1491, 3061, 225, 12255}}, +{1391, 14, 3073, {1, 3, 5, 7, 17, 35, 37, 97, 415, 15, 1349, 997, 2949, 4511}}, +{1392, 14, 3088, {1, 3, 1, 5, 25, 35, 99, 183, 161, 59, 1363, 515, 3767, 3641}}, +{1393, 14, 3097, {1, 1, 7, 15, 7, 15, 127, 137, 281, 67, 139, 2315, 3517, 13371}}, +{1394, 14, 3098, {1, 1, 5, 15, 23, 49, 19, 79, 425, 805, 1035, 429, 7707, 14195}}, +{1395, 14, 3103, {1, 3, 5, 3, 21, 25, 123, 11, 425, 475, 961, 2995, 7405, 5449}}, +{1396, 14, 3104, {1, 1, 7, 1, 21, 1, 75, 231, 451, 595, 719, 2369, 5907, 1227}}, +{1397, 14, 3146, {1, 1, 1, 9, 21, 57, 45, 255, 19, 79, 481, 3363, 3451, 8399}}, +{1398, 14, 3148, {1, 1, 7, 13, 31, 49, 95, 69, 483, 427, 37, 4047, 7057, 9111}}, +{1399, 14, 3153, {1, 3, 3, 11, 3, 61, 87, 79, 499, 91, 771, 1987, 2017, 3381}}, +{1400, 14, 3159, {1, 3, 1, 7, 5, 57, 1, 121, 155, 225, 501, 477, 6555, 9863}}, +{1401, 14, 3182, {1, 3, 7, 11, 27, 49, 83, 213, 61, 283, 1599, 3205, 2525, 8553}}, +{1402, 14, 3187, {1, 1, 1, 9, 9, 49, 3, 51, 141, 33, 301, 2167, 587, 15067}}, +{1403, 14, 3189, {1, 1, 1, 11, 7, 55, 99, 81, 191, 553, 953, 3753, 6731, 1093}}, +{1404, 14, 3199, {1, 1, 3, 3, 11, 59, 57, 235, 297, 197, 853, 1411, 3799, 7527}}, +{1405, 14, 3239, {1, 3, 5, 3, 7, 7, 5, 201, 393, 95, 91, 3273, 6285, 10661}}, +{1406, 14, 3263, {1, 1, 5, 7, 17, 57, 87, 3, 413, 915, 659, 369, 3593, 14429}}, +{1407, 14, 3271, {1, 3, 7, 1, 31, 31, 45, 115, 417, 427, 745, 4087, 953, 1119}}, +{1408, 14, 3275, {1, 3, 7, 3, 29, 43, 45, 221, 41, 641, 451, 173, 2999, 12103}}, +{1409, 14, 3278, {1, 1, 3, 11, 25, 57, 117, 201, 135, 787, 1525, 3879, 3247, 8907}}, +{1410, 14, 3280, {1, 1, 7, 11, 3, 35, 69, 157, 331, 615, 573, 2169, 3575, 289}}, +{1411, 14, 3283, {1, 3, 3, 13, 15, 51, 67, 127, 265, 495, 103, 3145, 2685, 15919}}, +{1412, 14, 3290, {1, 3, 5, 11, 31, 27, 65, 57, 153, 465, 1163, 467, 4103, 4713}}, +{1413, 14, 3311, {1, 3, 7, 3, 23, 31, 9, 51, 239, 417, 1597, 229, 2865, 15199}}, +{1414, 14, 3316, {1, 3, 5, 3, 11, 45, 123, 217, 31, 765, 1009, 2001, 3645, 9407}}, +{1415, 14, 3343, {1, 3, 3, 9, 5, 23, 117, 83, 237, 1017, 251, 1187, 2631, 5151}}, +{1416, 14, 3346, {1, 1, 1, 7, 23, 55, 97, 141, 501, 305, 467, 4061, 2369, 15973}}, +{1417, 14, 3357, {1, 1, 7, 5, 31, 51, 125, 191, 219, 495, 37, 3337, 813, 241}}, +{1418, 14, 3358, {1, 3, 1, 1, 11, 39, 93, 109, 285, 147, 1297, 737, 4051, 7223}}, +{1419, 14, 3361, {1, 3, 1, 15, 13, 17, 57, 171, 463, 163, 609, 1681, 7583, 9231}}, +{1420, 14, 3362, {1, 3, 1, 1, 23, 5, 51, 5, 205, 415, 419, 989, 4239, 10943}}, +{1421, 14, 3364, {1, 1, 3, 15, 3, 13, 65, 145, 387, 59, 395, 1067, 4143, 5649}}, +{1422, 14, 3386, {1, 3, 1, 13, 9, 59, 121, 127, 95, 71, 1541, 1423, 1753, 8041}}, +{1423, 14, 3418, {1, 1, 3, 15, 7, 5, 69, 167, 181, 991, 1189, 4017, 5935, 6669}}, +{1424, 14, 3424, {1, 3, 5, 7, 23, 41, 53, 21, 47, 261, 1231, 2011, 133, 2247}}, +{1425, 14, 3433, {1, 1, 1, 5, 17, 47, 77, 19, 331, 609, 1893, 3965, 3123, 9093}}, +{1426, 14, 3434, {1, 3, 1, 3, 9, 39, 103, 231, 249, 75, 373, 107, 1823, 10801}}, +{1427, 14, 3436, {1, 3, 3, 7, 1, 51, 35, 111, 137, 879, 1221, 225, 4285, 2287}}, +{1428, 14, 3463, {1, 1, 7, 9, 23, 17, 75, 245, 409, 163, 395, 3731, 7111, 6845}}, +{1429, 14, 3467, {1, 1, 3, 13, 29, 47, 75, 153, 497, 621, 1691, 3187, 2125, 10533}}, +{1430, 14, 3477, {1, 1, 7, 7, 9, 7, 55, 159, 255, 417, 1335, 643, 3843, 3733}}, +{1431, 14, 3484, {1, 3, 3, 1, 21, 41, 7, 21, 5, 679, 1655, 95, 5699, 5785}}, +{1432, 14, 3505, {1, 1, 1, 13, 19, 7, 85, 7, 195, 357, 1097, 2893, 2913, 9635}}, +{1433, 14, 3508, {1, 1, 5, 9, 25, 33, 41, 155, 39, 655, 1993, 3117, 3639, 7977}}, +{1434, 14, 3515, {1, 1, 1, 13, 3, 63, 121, 247, 151, 673, 609, 285, 2299, 7663}}, +{1435, 14, 3532, {1, 3, 7, 11, 17, 13, 49, 253, 245, 21, 273, 993, 911, 863}}, +{1436, 14, 3553, {1, 1, 5, 5, 23, 1, 121, 95, 225, 9, 1237, 1183, 6461, 559}}, +{1437, 14, 3554, {1, 3, 7, 13, 3, 7, 121, 151, 233, 561, 281, 3583, 897, 1767}}, +{1438, 14, 3568, {1, 1, 7, 7, 9, 47, 107, 41, 25, 569, 1697, 2299, 6231, 12209}}, +{1439, 14, 3573, {1, 3, 7, 7, 27, 43, 59, 37, 31, 51, 503, 149, 4043, 11847}}, +{1440, 14, 3587, {1, 3, 3, 11, 5, 1, 119, 181, 47, 641, 685, 4017, 637, 16251}}, +{1441, 14, 3589, {1, 3, 3, 7, 11, 1, 101, 7, 239, 747, 307, 1721, 5979, 4367}}, +{1442, 14, 3596, {1, 3, 5, 7, 1, 63, 19, 151, 469, 333, 1587, 2453, 897, 4711}}, +{1443, 14, 3608, {1, 3, 1, 5, 11, 61, 21, 253, 91, 993, 1347, 1993, 5607, 13031}}, +{1444, 14, 3620, {1, 3, 5, 5, 1, 39, 65, 71, 189, 389, 1437, 1055, 6439, 3989}}, +{1445, 14, 3630, {1, 1, 3, 3, 19, 15, 93, 3, 339, 165, 1675, 3953, 2145, 12113}}, +{1446, 14, 3644, {1, 1, 3, 13, 13, 45, 5, 175, 211, 993, 705, 2761, 3023, 13633}}, +{1447, 14, 3649, {1, 1, 3, 1, 19, 39, 121, 29, 287, 87, 281, 3491, 7107, 13007}}, +{1448, 14, 3664, {1, 1, 7, 1, 29, 49, 103, 187, 39, 923, 51, 1533, 3249, 4399}}, +{1449, 14, 3679, {1, 1, 5, 5, 5, 43, 25, 107, 453, 955, 115, 57, 4589, 14573}}, +{1450, 14, 3680, {1, 1, 3, 5, 21, 45, 103, 99, 183, 987, 1207, 1697, 8033, 13703}}, +{1451, 14, 3685, {1, 1, 5, 7, 11, 23, 9, 17, 261, 749, 1957, 935, 6283, 8625}}, +{1452, 14, 3686, {1, 1, 1, 9, 9, 51, 69, 225, 265, 323, 1161, 2993, 7305, 2249}}, +{1453, 14, 3698, {1, 3, 1, 9, 23, 19, 57, 205, 503, 489, 1499, 3277, 817, 11931}}, +{1454, 14, 3714, {1, 3, 3, 5, 1, 7, 49, 1, 313, 123, 643, 2027, 1469, 3585}}, +{1455, 14, 3726, {1, 3, 7, 11, 27, 47, 95, 111, 27, 213, 465, 3693, 3661, 7531}}, +{1456, 14, 3737, {1, 1, 7, 9, 3, 37, 115, 189, 31, 613, 1393, 1229, 4767, 12425}}, +{1457, 14, 3767, {1, 1, 3, 3, 25, 17, 99, 47, 161, 931, 959, 1293, 7095, 8325}}, +{1458, 14, 3782, {1, 1, 1, 7, 23, 9, 11, 51, 205, 419, 479, 1497, 2493, 13921}}, +{1459, 14, 3786, {1, 3, 1, 9, 17, 29, 51, 79, 159, 435, 477, 413, 3815, 5589}}, +{1460, 14, 3793, {1, 3, 7, 5, 7, 23, 99, 43, 169, 665, 403, 1163, 4337, 1335}}, +{1461, 14, 3796, {1, 3, 1, 5, 25, 27, 125, 249, 421, 267, 1259, 4089, 59, 9377}}, +{1462, 14, 3805, {1, 3, 3, 1, 27, 37, 91, 17, 123, 597, 1749, 3449, 6503, 11043}}, +{1463, 14, 3815, {1, 3, 7, 7, 23, 41, 19, 245, 109, 569, 547, 1917, 7943, 2697}}, +{1464, 14, 3841, {1, 3, 7, 7, 9, 1, 123, 105, 329, 435, 2013, 2745, 347, 11045}}, +{1465, 14, 3847, {1, 1, 1, 13, 29, 53, 51, 67, 105, 89, 1887, 3543, 963, 8159}}, +{1466, 14, 3853, {1, 1, 5, 3, 5, 27, 41, 67, 67, 883, 973, 1785, 901, 14969}}, +{1467, 14, 3862, {1, 3, 3, 13, 17, 11, 117, 115, 163, 939, 79, 641, 4365, 2267}}, +{1468, 14, 3875, {1, 1, 3, 3, 9, 5, 41, 123, 149, 9, 1533, 3939, 5995, 12701}}, +{1469, 14, 3902, {1, 1, 1, 15, 31, 1, 101, 229, 191, 965, 61, 2671, 4177, 15779}}, +{1470, 14, 3904, {1, 1, 5, 15, 1, 25, 49, 185, 33, 697, 1043, 2639, 7819, 3171}}, +{1471, 14, 3916, {1, 3, 5, 13, 19, 9, 111, 49, 47, 847, 1865, 717, 5287, 13417}}, +{1472, 14, 3947, {1, 3, 7, 11, 5, 61, 63, 111, 171, 735, 2003, 73, 5701, 647}}, +{1473, 14, 3949, {1, 3, 1, 11, 1, 49, 121, 79, 431, 671, 1241, 1161, 2057, 263}}, +{1474, 14, 3955, {1, 3, 3, 1, 1, 23, 75, 15, 117, 641, 313, 1525, 2041, 1409}}, +{1475, 14, 3962, {1, 3, 5, 11, 15, 57, 13, 67, 139, 131, 1339, 2419, 7945, 11877}}, +{1476, 14, 3971, {1, 3, 1, 1, 19, 39, 97, 83, 297, 595, 1611, 5, 4753, 3435}}, +{1477, 14, 3980, {1, 3, 1, 9, 7, 49, 125, 101, 383, 717, 63, 2295, 3873, 13461}}, +{1478, 14, 3985, {1, 1, 3, 3, 15, 29, 89, 77, 269, 689, 229, 1207, 7311, 8663}}, +{1479, 14, 3998, {1, 1, 1, 1, 1, 61, 25, 255, 203, 233, 271, 987, 2277, 8735}}, +{1480, 14, 4001, {1, 1, 5, 7, 21, 27, 63, 79, 337, 133, 1453, 3633, 6157, 15875}}, +{1481, 14, 4002, {1, 3, 1, 7, 7, 55, 31, 81, 203, 709, 1743, 1677, 4247, 11411}}, +{1482, 14, 4016, {1, 1, 3, 3, 29, 51, 37, 17, 487, 325, 1393, 1433, 3467, 2851}}, +{1483, 14, 4021, {1, 1, 7, 9, 3, 41, 99, 177, 241, 869, 739, 2729, 4585, 14801}}, +{1484, 14, 4026, {1, 1, 3, 1, 9, 43, 97, 65, 99, 295, 1693, 2083, 3241, 4073}}, +{1485, 14, 4043, {1, 1, 1, 9, 5, 39, 67, 119, 235, 543, 795, 2773, 3195, 6273}}, +{1486, 14, 4079, {1, 1, 5, 5, 21, 41, 89, 1, 85, 81, 57, 2951, 1531, 10101}}, +{1487, 14, 4102, {1, 1, 1, 7, 3, 35, 127, 69, 39, 265, 1643, 2973, 267, 12365}}, +{1488, 14, 4106, {1, 3, 1, 1, 21, 57, 99, 205, 119, 477, 1771, 1989, 2761, 12573}}, +{1489, 14, 4119, {1, 1, 3, 13, 1, 59, 93, 125, 279, 935, 1877, 2061, 4845, 7835}}, +{1490, 14, 4126, {1, 1, 7, 9, 7, 45, 69, 99, 273, 35, 1579, 2137, 7175, 6999}}, +{1491, 14, 4147, {1, 1, 7, 7, 29, 21, 127, 91, 9, 383, 787, 1783, 601, 5047}}, +{1492, 14, 4149, {1, 1, 7, 13, 7, 29, 35, 219, 43, 581, 2043, 2211, 6169, 12173}}, +{1493, 14, 4164, {1, 3, 5, 13, 29, 29, 39, 63, 411, 645, 415, 2383, 1989, 11411}}, +{1494, 14, 4174, {1, 1, 7, 9, 15, 9, 87, 95, 321, 709, 543, 3831, 2453, 4167}}, +{1495, 14, 4181, {1, 3, 1, 5, 31, 25, 5, 85, 239, 487, 1613, 3937, 4661, 3535}}, +{1496, 14, 4185, {1, 3, 5, 11, 27, 41, 3, 201, 39, 91, 1997, 237, 5639, 14703}}, +{1497, 14, 4188, {1, 1, 7, 3, 27, 49, 87, 71, 473, 247, 1007, 47, 475, 5413}}, +{1498, 14, 4202, {1, 3, 7, 15, 9, 57, 81, 149, 287, 333, 1911, 3417, 1081, 8995}}, +{1499, 14, 4228, {1, 1, 5, 1, 3, 63, 43, 151, 97, 431, 961, 1019, 5153, 2407}}, +{1500, 14, 4232, {1, 1, 5, 5, 27, 21, 127, 161, 507, 311, 129, 3489, 1133, 3241}}, +{1501, 14, 4246, {1, 3, 7, 15, 21, 33, 117, 83, 497, 667, 1399, 931, 1695, 8171}}, +{1502, 14, 4252, {1, 1, 1, 13, 3, 39, 53, 27, 193, 993, 671, 1871, 7579, 11457}}, +{1503, 14, 4256, {1, 1, 5, 11, 7, 39, 81, 107, 195, 387, 849, 395, 1317, 6487}}, +{1504, 14, 4286, {1, 3, 3, 3, 3, 15, 45, 127, 279, 111, 331, 357, 4637, 4697}}, +{1505, 14, 4303, {1, 1, 3, 9, 21, 49, 47, 97, 61, 101, 181, 1867, 1201, 14099}}, +{1506, 14, 4306, {1, 1, 5, 11, 25, 19, 51, 51, 101, 451, 545, 101, 7497, 9141}}, +{1507, 14, 4311, {1, 1, 1, 3, 13, 53, 119, 81, 377, 245, 765, 251, 3757, 16045}}, +{1508, 14, 4317, {1, 1, 1, 3, 5, 61, 65, 37, 331, 925, 1439, 3219, 2843, 11397}}, +{1509, 14, 4342, {1, 3, 5, 9, 23, 31, 95, 155, 83, 641, 1129, 135, 477, 1623}}, +{1510, 14, 4346, {1, 1, 3, 9, 9, 61, 93, 11, 331, 585, 799, 1417, 1533, 463}}, +{1511, 14, 4377, {1, 1, 7, 7, 21, 51, 61, 29, 467, 935, 11, 3357, 1087, 12337}}, +{1512, 14, 4401, {1, 3, 3, 11, 1, 39, 103, 153, 351, 893, 1823, 835, 2149, 4203}}, +{1513, 14, 4407, {1, 1, 1, 9, 31, 13, 61, 235, 369, 359, 835, 2067, 2697, 15289}}, +{1514, 14, 4414, {1, 1, 7, 1, 15, 1, 107, 27, 201, 451, 1521, 313, 3195, 3847}}, +{1515, 14, 4422, {1, 1, 5, 13, 1, 27, 63, 137, 355, 489, 2039, 1015, 2519, 13797}}, +{1516, 14, 4431, {1, 1, 7, 9, 29, 33, 23, 197, 49, 555, 1087, 3447, 7299, 15513}}, +{1517, 14, 4434, {1, 3, 5, 11, 7, 37, 55, 63, 443, 573, 1715, 631, 3405, 6155}}, +{1518, 14, 4436, {1, 3, 3, 3, 31, 35, 51, 167, 225, 617, 2007, 2555, 6819, 12709}}, +{1519, 14, 4443, {1, 1, 1, 13, 15, 5, 73, 85, 109, 43, 1067, 3941, 1125, 10269}}, +{1520, 14, 4459, {1, 1, 7, 11, 17, 3, 127, 145, 279, 19, 1007, 3287, 4751, 12507}}, +{1521, 14, 4461, {1, 3, 7, 3, 19, 1, 117, 111, 193, 435, 47, 1801, 529, 8547}}, +{1522, 14, 4462, {1, 3, 3, 13, 1, 19, 101, 19, 469, 187, 207, 1243, 8153, 3273}}, +{1523, 14, 4473, {1, 3, 1, 5, 11, 51, 69, 189, 453, 775, 241, 3331, 4067, 14759}}, +{1524, 14, 4497, {1, 1, 1, 1, 23, 55, 113, 133, 497, 731, 391, 2777, 3529, 955}}, +{1525, 14, 4504, {1, 3, 1, 11, 5, 49, 59, 35, 261, 949, 325, 3595, 7433, 11099}}, +{1526, 14, 4507, {1, 3, 5, 9, 13, 37, 103, 219, 329, 865, 1787, 2497, 7249, 9877}}, +{1527, 14, 4525, {1, 3, 7, 9, 11, 33, 19, 255, 191, 935, 1115, 1901, 1577, 9623}}, +{1528, 14, 4534, {1, 1, 5, 7, 29, 23, 77, 43, 283, 143, 1211, 73, 2835, 10235}}, +{1529, 14, 4538, {1, 1, 7, 3, 3, 27, 35, 173, 453, 425, 1225, 3023, 2159, 8433}}, +{1530, 14, 4548, {1, 1, 1, 5, 27, 21, 35, 25, 71, 145, 1545, 523, 4527, 7655}}, +{1531, 14, 4552, {1, 1, 5, 3, 13, 49, 61, 157, 113, 775, 763, 1785, 225, 11851}}, +{1532, 14, 4560, {1, 1, 3, 1, 31, 57, 97, 229, 291, 777, 213, 4067, 921, 8203}}, +{1533, 14, 4575, {1, 1, 5, 1, 25, 13, 125, 123, 263, 207, 119, 3111, 3841, 843}}, +{1534, 14, 4599, {1, 1, 7, 7, 25, 57, 81, 129, 31, 133, 1869, 2949, 5563, 14965}}, +{1535, 14, 4612, {1, 3, 3, 7, 3, 51, 33, 127, 281, 425, 1253, 405, 7941, 8799}}, +{1536, 14, 4619, {1, 1, 3, 9, 3, 63, 93, 173, 255, 609, 49, 111, 7785, 15865}}, +{1537, 14, 4640, {1, 1, 1, 3, 17, 59, 113, 55, 155, 789, 1335, 177, 3071, 1851}}, +{1538, 14, 4643, {1, 3, 7, 15, 15, 23, 35, 35, 131, 623, 47, 437, 1337, 9891}}, +{1539, 14, 4677, {1, 3, 7, 5, 29, 57, 39, 31, 111, 271, 59, 1473, 949, 3899}}, +{1540, 14, 4687, {1, 1, 3, 11, 17, 19, 41, 229, 259, 691, 1455, 3023, 7455, 9711}}, +{1541, 14, 4723, {1, 3, 5, 11, 29, 13, 9, 165, 499, 355, 1415, 1395, 7595, 15571}}, +{1542, 14, 4730, {1, 3, 1, 9, 5, 5, 25, 247, 185, 241, 1325, 3133, 7471, 2649}}, +{1543, 14, 4736, {1, 3, 3, 11, 17, 29, 57, 61, 51, 203, 993, 1837, 3785, 15163}}, +{1544, 14, 4741, {1, 1, 7, 7, 21, 57, 79, 165, 277, 133, 93, 1055, 7169, 15685}}, +{1545, 14, 4763, {1, 1, 5, 3, 5, 17, 25, 177, 95, 323, 367, 1359, 4915, 6409}}, +{1546, 14, 4765, {1, 1, 1, 1, 11, 25, 115, 45, 373, 221, 1483, 591, 6561, 4527}}, +{1547, 14, 4770, {1, 3, 5, 3, 5, 23, 69, 77, 313, 473, 1037, 4045, 3969, 5445}}, +{1548, 14, 4781, {1, 3, 1, 5, 1, 15, 73, 83, 439, 463, 203, 361, 6835, 1061}}, +{1549, 14, 4808, {1, 1, 3, 11, 21, 5, 89, 233, 405, 253, 773, 3901, 6085, 5677}}, +{1550, 14, 4822, {1, 1, 3, 9, 15, 53, 71, 29, 101, 599, 1073, 705, 4507, 12779}}, +{1551, 14, 4828, {1, 1, 3, 1, 3, 9, 27, 97, 207, 859, 417, 735, 2179, 5071}}, +{1552, 14, 4831, {1, 1, 1, 3, 13, 63, 65, 125, 195, 611, 649, 2221, 3143, 143}}, +{1553, 14, 4842, {1, 3, 3, 15, 17, 57, 99, 119, 243, 407, 1229, 813, 5245, 1893}}, +{1554, 14, 4855, {1, 1, 1, 5, 27, 27, 49, 13, 313, 287, 473, 2629, 3509, 11371}}, +{1555, 14, 4859, {1, 1, 7, 7, 23, 3, 75, 59, 245, 689, 1215, 2375, 3325, 1593}}, +{1556, 14, 4867, {1, 3, 1, 5, 21, 51, 43, 107, 91, 611, 1405, 677, 2087, 9565}}, +{1557, 14, 4870, {1, 3, 7, 11, 9, 27, 81, 101, 449, 201, 1507, 2217, 6767, 8059}}, +{1558, 14, 4881, {1, 1, 3, 9, 13, 41, 21, 195, 421, 315, 347, 2621, 2359, 9247}}, +{1559, 14, 4893, {1, 1, 5, 7, 31, 45, 77, 229, 455, 575, 1087, 1147, 2273, 13773}}, +{1560, 14, 4910, {1, 1, 1, 1, 9, 5, 87, 19, 207, 545, 1435, 495, 1299, 4947}}, +{1561, 14, 4917, {1, 1, 3, 3, 15, 9, 63, 67, 219, 735, 1911, 2361, 6503, 11977}}, +{1562, 14, 4929, {1, 3, 1, 9, 31, 27, 103, 153, 81, 939, 461, 2753, 697, 537}}, +{1563, 14, 4939, {1, 3, 3, 9, 21, 53, 49, 211, 415, 817, 321, 3775, 2921, 9473}}, +{1564, 14, 4947, {1, 1, 7, 3, 23, 55, 15, 51, 435, 1013, 73, 3967, 4575, 13099}}, +{1565, 14, 4949, {1, 1, 3, 7, 5, 27, 43, 225, 267, 21, 1261, 603, 6913, 4421}}, +{1566, 14, 4954, {1, 1, 7, 13, 25, 31, 101, 109, 237, 91, 1587, 1987, 2795, 6991}}, +{1567, 14, 4972, {1, 1, 3, 13, 23, 51, 91, 89, 287, 39, 1513, 463, 6135, 10469}}, +{1568, 14, 4975, {1, 3, 3, 1, 9, 43, 125, 157, 369, 495, 1849, 785, 6357, 6557}}, +{1569, 14, 5000, {1, 3, 1, 13, 5, 25, 107, 139, 367, 239, 1671, 1239, 7027, 5291}}, +{1570, 14, 5005, {1, 3, 5, 13, 11, 13, 35, 177, 45, 939, 251, 59, 333, 13105}}, +{1571, 14, 5029, {1, 3, 5, 7, 29, 57, 109, 227, 435, 739, 423, 1941, 3345, 12731}}, +{1572, 14, 5039, {1, 3, 3, 9, 23, 51, 19, 207, 69, 99, 955, 519, 7305, 2415}}, +{1573, 14, 5044, {1, 1, 5, 13, 17, 1, 67, 201, 61, 403, 1059, 2915, 2419, 12773}}, +{1574, 14, 5051, {1, 3, 1, 11, 17, 19, 25, 27, 207, 299, 143, 1955, 5669, 2301}}, +{1575, 14, 5056, {1, 1, 5, 3, 25, 57, 45, 255, 489, 1011, 1699, 2637, 5279, 12211}}, +{1576, 14, 5073, {1, 3, 3, 15, 7, 47, 113, 33, 511, 907, 1815, 1741, 2091, 13857}}, +{1577, 14, 5096, {1, 3, 3, 5, 5, 27, 95, 3, 353, 253, 947, 393, 1815, 14551}}, +{1578, 14, 5128, {1, 1, 5, 11, 29, 19, 63, 117, 293, 861, 2039, 9, 5999, 6909}}, +{1579, 14, 5134, {1, 3, 7, 3, 15, 63, 107, 173, 509, 817, 99, 2825, 131, 7917}}, +{1580, 14, 5161, {1, 3, 1, 1, 29, 49, 33, 153, 119, 777, 1315, 3581, 5675, 4043}}, +{1581, 14, 5179, {1, 3, 5, 15, 13, 11, 17, 147, 327, 305, 367, 3237, 5423, 13757}}, +{1582, 14, 5193, {1, 1, 5, 13, 1, 39, 35, 29, 25, 751, 1365, 2243, 8181, 7063}}, +{1583, 14, 5199, {1, 3, 7, 11, 25, 53, 11, 111, 289, 755, 1201, 691, 3679, 3725}}, +{1584, 14, 5202, {1, 1, 1, 11, 11, 37, 33, 211, 395, 691, 1817, 861, 6485, 12077}}, +{1585, 14, 5204, {1, 3, 3, 11, 21, 3, 111, 171, 305, 561, 1501, 2011, 7841, 10931}}, +{1586, 14, 5218, {1, 3, 7, 9, 9, 59, 109, 113, 31, 915, 103, 1861, 2779, 10619}}, +{1587, 14, 5247, {1, 1, 1, 1, 7, 25, 61, 97, 103, 723, 1145, 3105, 371, 339}}, +{1588, 14, 5260, {1, 1, 7, 13, 17, 9, 113, 51, 233, 209, 1117, 211, 6969, 2347}}, +{1589, 14, 5271, {1, 1, 5, 9, 25, 43, 21, 217, 327, 735, 197, 1063, 799, 801}}, +{1590, 14, 5301, {1, 1, 7, 13, 9, 13, 73, 33, 415, 923, 863, 1999, 5383, 8119}}, +{1591, 14, 5305, {1, 3, 1, 5, 7, 33, 51, 185, 289, 967, 1277, 1011, 767, 15505}}, +{1592, 14, 5319, {1, 3, 3, 13, 21, 11, 105, 235, 343, 1021, 2009, 2251, 3865, 6923}}, +{1593, 14, 5326, {1, 3, 5, 9, 29, 11, 33, 17, 149, 155, 1739, 3039, 7015, 2401}}, +{1594, 14, 5328, {1, 3, 7, 7, 17, 13, 89, 177, 297, 267, 545, 3861, 329, 13267}}, +{1595, 14, 5333, {1, 3, 5, 15, 27, 33, 1, 231, 181, 557, 447, 379, 7845, 1295}}, +{1596, 14, 5364, {1, 1, 5, 13, 3, 63, 59, 33, 263, 877, 1867, 1383, 641, 7139}}, +{1597, 14, 5376, {1, 3, 7, 5, 13, 51, 9, 113, 223, 605, 1189, 4063, 6925, 9563}}, +{1598, 14, 5399, {1, 1, 1, 13, 5, 35, 83, 107, 295, 231, 265, 5, 4087, 6407}}, +{1599, 14, 5416, {1, 1, 5, 1, 7, 25, 95, 137, 97, 987, 1753, 2781, 1369, 6903}}, +{1600, 14, 5421, {1, 1, 5, 13, 19, 61, 77, 229, 193, 165, 811, 249, 79, 10719}}, +{1601, 14, 5427, {1, 3, 7, 7, 27, 9, 119, 193, 459, 43, 1989, 2959, 3595, 6341}}, +{1602, 14, 5429, {1, 1, 5, 11, 5, 43, 35, 33, 25, 581, 897, 351, 4201, 3971}}, +{1603, 14, 5430, {1, 1, 7, 11, 21, 29, 53, 45, 359, 197, 313, 3825, 6717, 4077}}, +{1604, 14, 5434, {1, 1, 1, 15, 3, 45, 99, 133, 357, 315, 1159, 241, 2463, 11253}}, +{1605, 14, 5441, {1, 1, 7, 11, 9, 33, 111, 85, 443, 601, 447, 337, 6471, 7029}}, +{1606, 14, 5451, {1, 3, 7, 9, 13, 33, 25, 31, 9, 729, 1763, 4077, 7575, 7877}}, +{1607, 14, 5465, {1, 3, 5, 13, 13, 37, 29, 103, 53, 229, 591, 1073, 1323, 14405}}, +{1608, 14, 5466, {1, 1, 5, 1, 17, 33, 15, 183, 473, 297, 2003, 93, 4955, 1787}}, +{1609, 14, 5471, {1, 1, 5, 13, 5, 29, 113, 161, 267, 451, 1193, 149, 273, 11809}}, +{1610, 14, 5477, {1, 1, 1, 9, 17, 39, 47, 233, 165, 373, 955, 2891, 7523, 7235}}, +{1611, 14, 5492, {1, 1, 1, 3, 7, 21, 115, 205, 153, 449, 339, 2073, 1077, 5749}}, +{1612, 14, 5495, {1, 1, 7, 13, 9, 39, 117, 187, 37, 753, 227, 3519, 7391, 5751}}, +{1613, 14, 5505, {1, 1, 1, 9, 5, 19, 41, 161, 141, 195, 1719, 3321, 5, 12877}}, +{1614, 14, 5515, {1, 3, 7, 11, 21, 13, 83, 55, 299, 75, 1905, 3765, 4685, 12297}}, +{1615, 14, 5525, {1, 1, 7, 3, 3, 23, 111, 243, 187, 297, 1061, 2515, 977, 9555}}, +{1616, 14, 5529, {1, 3, 7, 3, 29, 11, 103, 177, 225, 875, 1649, 1401, 6383, 8309}}, +{1617, 14, 5532, {1, 3, 5, 3, 3, 41, 71, 3, 373, 757, 701, 2825, 1521, 13217}}, +{1618, 14, 5539, {1, 1, 5, 3, 11, 5, 103, 227, 209, 723, 1543, 3895, 6345, 7901}}, +{1619, 14, 5541, {1, 1, 5, 1, 9, 51, 77, 67, 359, 937, 557, 993, 3871, 3577}}, +{1620, 14, 5556, {1, 3, 7, 1, 1, 15, 121, 239, 29, 113, 1123, 3877, 6941, 14129}}, +{1621, 14, 5566, {1, 1, 5, 1, 27, 61, 83, 113, 185, 601, 947, 3933, 381, 13869}}, +{1622, 14, 5568, {1, 1, 5, 3, 5, 37, 97, 31, 81, 367, 747, 1811, 5313, 14151}}, +{1623, 14, 5574, {1, 3, 5, 9, 27, 61, 87, 31, 185, 521, 837, 959, 5001, 3957}}, +{1624, 14, 5595, {1, 3, 5, 3, 11, 61, 37, 19, 107, 749, 1345, 3829, 6701, 4315}}, +{1625, 14, 5602, {1, 3, 1, 15, 13, 45, 101, 113, 243, 963, 1861, 3283, 1419, 12131}}, +{1626, 14, 5611, {1, 1, 7, 1, 11, 63, 17, 117, 271, 819, 677, 669, 1991, 12511}}, +{1627, 14, 5616, {1, 1, 1, 13, 13, 33, 41, 73, 187, 537, 993, 3147, 1013, 16063}}, +{1628, 14, 5622, {1, 3, 1, 1, 25, 21, 107, 81, 117, 917, 113, 349, 4475, 9149}}, +{1629, 14, 5628, {1, 1, 1, 11, 21, 21, 29, 251, 125, 681, 141, 2893, 5843, 14359}}, +{1630, 14, 5655, {1, 3, 3, 1, 5, 41, 85, 163, 387, 29, 1593, 221, 2769, 10809}}, +{1631, 14, 5662, {1, 3, 5, 11, 1, 17, 69, 127, 273, 449, 1855, 2971, 7031, 10583}}, +{1632, 14, 5675, {1, 1, 5, 7, 1, 61, 9, 211, 123, 563, 111, 1883, 5801, 2191}}, +{1633, 14, 5689, {1, 1, 3, 11, 11, 51, 1, 81, 405, 803, 2017, 161, 5429, 731}}, +{1634, 14, 5722, {1, 1, 7, 9, 15, 55, 65, 51, 459, 485, 1539, 3135, 2929, 7867}}, +{1635, 14, 5724, {1, 1, 7, 11, 3, 45, 15, 7, 331, 417, 1813, 4009, 1341, 10965}}, +{1636, 14, 5728, {1, 1, 1, 5, 9, 29, 89, 121, 277, 509, 1989, 1293, 4787, 16097}}, +{1637, 14, 5731, {1, 1, 3, 9, 17, 45, 97, 197, 339, 943, 1377, 2947, 5833, 7}}, +{1638, 14, 5746, {1, 1, 7, 9, 15, 61, 75, 233, 401, 705, 825, 2521, 3787, 14387}}, +{1639, 14, 5764, {1, 1, 7, 15, 25, 57, 3, 43, 361, 459, 1551, 1859, 6787, 2293}}, +{1640, 14, 5771, {1, 3, 3, 11, 11, 35, 91, 65, 43, 509, 1829, 1149, 4801, 4109}}, +{1641, 14, 5781, {1, 3, 5, 9, 15, 3, 81, 109, 231, 481, 417, 2505, 315, 6693}}, +{1642, 14, 5801, {1, 1, 3, 9, 3, 7, 107, 221, 297, 543, 149, 579, 927, 79}}, +{1643, 14, 5809, {1, 3, 1, 11, 17, 3, 81, 137, 157, 587, 741, 1277, 2631, 3953}}, +{1644, 14, 5810, {1, 1, 7, 5, 13, 43, 117, 19, 495, 185, 1105, 605, 5249, 11099}}, +{1645, 14, 5812, {1, 1, 7, 9, 23, 55, 91, 213, 21, 779, 857, 2047, 7813, 10053}}, +{1646, 14, 5841, {1, 1, 1, 1, 27, 7, 39, 181, 63, 519, 1073, 3147, 4111, 363}}, +{1647, 14, 5848, {1, 3, 7, 9, 15, 61, 7, 139, 495, 805, 1545, 3789, 2411, 3989}}, +{1648, 14, 5853, {1, 1, 3, 1, 25, 11, 23, 241, 167, 607, 479, 153, 7787, 13929}}, +{1649, 14, 5854, {1, 3, 5, 15, 29, 35, 45, 71, 457, 297, 883, 3021, 5361, 15427}}, +{1650, 14, 5858, {1, 3, 1, 7, 29, 27, 93, 241, 427, 89, 1185, 37, 3863, 14095}}, +{1651, 14, 5892, {1, 3, 1, 5, 5, 45, 51, 15, 235, 889, 1649, 2331, 2713, 10943}}, +{1652, 14, 5907, {1, 1, 3, 11, 11, 15, 71, 85, 135, 163, 139, 1147, 1043, 3195}}, +{1653, 14, 5910, {1, 3, 5, 13, 3, 43, 71, 131, 473, 933, 569, 2491, 7751, 1865}}, +{1654, 14, 5913, {1, 1, 7, 9, 21, 37, 105, 227, 329, 509, 1319, 307, 1557, 14625}}, +{1655, 14, 5920, {1, 1, 3, 13, 15, 1, 25, 93, 335, 953, 769, 4039, 369, 10727}}, +{1656, 14, 5929, {1, 3, 7, 5, 17, 21, 59, 89, 437, 679, 437, 1543, 7663, 5005}}, +{1657, 14, 5949, {1, 1, 7, 15, 27, 49, 125, 13, 397, 877, 1087, 2191, 4711, 9065}}, +{1658, 14, 5952, {1, 1, 7, 5, 15, 47, 115, 125, 187, 31, 1003, 2575, 5397, 3883}}, +{1659, 14, 5955, {1, 1, 7, 11, 15, 1, 127, 207, 383, 707, 183, 1053, 3123, 14071}}, +{1660, 14, 5962, {1, 3, 3, 1, 31, 53, 15, 19, 477, 245, 777, 1613, 5813, 7443}}, +{1661, 14, 5975, {1, 3, 1, 11, 23, 59, 65, 23, 493, 157, 1389, 2833, 4535, 3907}}, +{1662, 14, 5985, {1, 1, 7, 1, 19, 7, 51, 135, 327, 441, 1841, 3091, 3451, 14381}}, +{1663, 14, 5997, {1, 1, 7, 7, 3, 37, 29, 249, 437, 319, 1693, 945, 7639, 5923}}, +{1664, 14, 5998, {1, 3, 7, 15, 7, 61, 81, 127, 383, 99, 23, 3833, 3973, 7651}}, +{1665, 14, 6012, {1, 3, 1, 7, 7, 21, 119, 185, 243, 619, 1363, 2033, 4835, 5089}}, +{1666, 14, 6016, {1, 3, 1, 1, 3, 27, 63, 145, 271, 735, 695, 3981, 3049, 5433}}, +{1667, 14, 6026, {1, 3, 3, 1, 3, 29, 79, 211, 279, 819, 501, 3665, 1455, 10455}}, +{1668, 14, 6036, {1, 1, 3, 3, 31, 61, 113, 5, 411, 91, 489, 3257, 5939, 6715}}, +{1669, 14, 6040, {1, 1, 5, 1, 23, 11, 103, 89, 377, 441, 43, 967, 3383, 8717}}, +{1670, 14, 6045, {1, 1, 5, 13, 29, 39, 97, 189, 197, 621, 1755, 333, 6783, 9711}}, +{1671, 14, 6055, {1, 1, 5, 13, 27, 17, 97, 197, 351, 799, 335, 765, 5329, 12549}}, +{1672, 14, 6059, {1, 1, 5, 11, 29, 17, 9, 211, 127, 633, 1187, 3965, 4145, 12667}}, +{1673, 14, 6088, {1, 1, 7, 5, 27, 29, 65, 115, 287, 325, 461, 5, 899, 2027}}, +{1674, 14, 6115, {1, 1, 1, 5, 27, 17, 31, 13, 231, 627, 1163, 649, 1693, 9975}}, +{1675, 14, 6124, {1, 3, 1, 15, 7, 49, 113, 123, 427, 603, 347, 2785, 7129, 4645}}, +{1676, 14, 6127, {1, 1, 3, 7, 1, 33, 113, 105, 411, 939, 205, 3965, 4361, 4649}}, +{1677, 14, 6132, {1, 1, 1, 1, 5, 21, 35, 159, 275, 929, 1193, 3205, 4787, 3515}}, +{1678, 14, 6146, {1, 1, 1, 5, 1, 21, 29, 191, 275, 233, 1239, 515, 4349, 14989}}, +{1679, 14, 6158, {1, 1, 5, 11, 27, 43, 111, 83, 153, 577, 1537, 149, 231, 839}}, +{1680, 14, 6169, {1, 3, 5, 13, 21, 19, 57, 69, 87, 163, 271, 3535, 1057, 8517}}, +{1681, 14, 6206, {1, 3, 3, 13, 17, 49, 65, 45, 457, 241, 391, 2033, 2507, 7771}}, +{1682, 14, 6228, {1, 1, 5, 7, 11, 19, 79, 133, 341, 761, 27, 3905, 4137, 14363}}, +{1683, 14, 6237, {1, 3, 3, 13, 19, 1, 11, 139, 249, 245, 1393, 2151, 2857, 1665}}, +{1684, 14, 6244, {1, 1, 3, 15, 11, 7, 127, 47, 385, 1007, 713, 2235, 5489, 8755}}, +{1685, 14, 6247, {1, 3, 5, 13, 19, 21, 21, 167, 405, 655, 1653, 889, 7367, 4177}}, +{1686, 14, 6256, {1, 1, 5, 3, 19, 63, 99, 39, 89, 415, 951, 2863, 6569, 3797}}, +{1687, 14, 6281, {1, 1, 1, 13, 31, 29, 119, 35, 311, 839, 1749, 941, 7487, 2385}}, +{1688, 14, 6282, {1, 3, 7, 3, 17, 3, 97, 143, 465, 345, 1457, 2201, 5329, 359}}, +{1689, 14, 6284, {1, 3, 7, 11, 1, 15, 3, 115, 335, 567, 1749, 1811, 3491, 15939}}, +{1690, 14, 6296, {1, 1, 3, 13, 3, 21, 7, 141, 149, 571, 1877, 473, 2143, 9569}}, +{1691, 14, 6299, {1, 3, 3, 11, 23, 61, 47, 179, 297, 453, 181, 3405, 2981, 13409}}, +{1692, 14, 6302, {1, 3, 1, 13, 1, 43, 5, 201, 371, 1003, 367, 2709, 7675, 14973}}, +{1693, 14, 6325, {1, 3, 3, 15, 29, 17, 19, 241, 495, 317, 1135, 2227, 6457, 4783}}, +{1694, 14, 6349, {1, 3, 3, 7, 29, 9, 57, 95, 261, 531, 1717, 3389, 7991, 3793}}, +{1695, 14, 6352, {1, 1, 1, 5, 31, 43, 73, 119, 499, 589, 1529, 3337, 4097, 15641}}, +{1696, 14, 6362, {1, 1, 7, 9, 29, 43, 127, 91, 243, 979, 1325, 2835, 2787, 9445}}, +{1697, 14, 6383, {1, 1, 7, 5, 9, 3, 115, 199, 219, 901, 747, 1077, 3197, 2443}}, +{1698, 14, 6386, {1, 3, 5, 1, 3, 43, 7, 117, 297, 313, 1043, 1579, 5099, 13289}}, +{1699, 14, 6395, {1, 1, 7, 11, 29, 33, 15, 121, 131, 579, 317, 1871, 1121, 11653}}, +{1700, 14, 6397, {1, 1, 5, 9, 25, 25, 43, 89, 355, 1011, 1385, 2901, 6387, 1653}}, +{1701, 14, 6415, {1, 1, 1, 9, 5, 47, 61, 165, 85, 757, 1397, 1177, 1657, 4899}}, +{1702, 14, 6424, {1, 1, 3, 9, 11, 49, 15, 139, 261, 613, 931, 1299, 2777, 2835}}, +{1703, 14, 6429, {1, 1, 1, 5, 3, 55, 83, 227, 125, 581, 1607, 1171, 6681, 14463}}, +{1704, 14, 6439, {1, 3, 5, 13, 5, 55, 3, 247, 493, 155, 1073, 3743, 5719, 4019}}, +{1705, 14, 6451, {1, 1, 7, 1, 11, 23, 13, 75, 399, 847, 499, 1643, 6977, 3699}}, +{1706, 14, 6489, {1, 3, 1, 9, 11, 41, 47, 131, 313, 627, 481, 2469, 3281, 979}}, +{1707, 14, 6496, {1, 3, 5, 13, 29, 3, 65, 101, 11, 29, 1807, 153, 1487, 16109}}, +{1708, 14, 6502, {1, 1, 5, 9, 13, 31, 83, 195, 351, 355, 467, 3871, 3085, 4441}}, +{1709, 14, 6511, {1, 3, 5, 3, 19, 21, 111, 179, 143, 361, 1619, 1547, 3409, 6905}}, +{1710, 14, 6514, {1, 1, 5, 9, 31, 1, 93, 199, 491, 135, 1627, 2559, 1389, 14561}}, +{1711, 14, 6520, {1, 3, 3, 9, 25, 53, 3, 105, 39, 445, 259, 1045, 1129, 9153}}, +{1712, 14, 6523, {1, 1, 5, 9, 19, 63, 71, 9, 73, 435, 1377, 4015, 1821, 6453}}, +{1713, 14, 6529, {1, 3, 7, 13, 19, 13, 37, 247, 391, 23, 1491, 1257, 6395, 237}}, +{1714, 14, 6532, {1, 1, 3, 3, 19, 55, 109, 23, 227, 747, 729, 2221, 727, 2209}}, +{1715, 14, 6547, {1, 1, 5, 11, 25, 21, 75, 37, 219, 355, 1005, 1895, 7039, 5225}}, +{1716, 14, 6549, {1, 3, 5, 13, 11, 43, 9, 67, 87, 797, 1077, 245, 4521, 11845}}, +{1717, 14, 6598, {1, 3, 5, 3, 15, 29, 127, 237, 277, 373, 1859, 3083, 587, 1123}}, +{1718, 14, 6601, {1, 1, 7, 15, 13, 7, 103, 53, 13, 965, 1497, 775, 3439, 1501}}, +{1719, 14, 6610, {1, 3, 3, 15, 17, 13, 97, 169, 67, 953, 189, 2739, 1459, 10543}}, +{1720, 14, 6622, {1, 1, 5, 1, 17, 39, 15, 127, 327, 989, 1471, 3235, 2801, 15311}}, +{1721, 14, 6632, {1, 1, 1, 15, 5, 37, 55, 155, 47, 463, 1851, 3467, 2765, 9359}}, +{1722, 14, 6655, {1, 3, 3, 15, 1, 13, 93, 239, 291, 115, 365, 61, 395, 15853}}, +{1723, 14, 6665, {1, 1, 5, 1, 19, 27, 61, 95, 105, 369, 1557, 961, 6917, 3621}}, +{1724, 14, 6666, {1, 3, 3, 9, 7, 35, 115, 53, 111, 345, 1145, 1687, 3401, 12107}}, +{1725, 14, 6695, {1, 1, 1, 5, 7, 31, 63, 19, 373, 79, 1369, 3037, 2835, 4439}}, +{1726, 14, 6701, {1, 3, 7, 9, 11, 17, 29, 33, 331, 447, 1981, 3333, 6535, 6557}}, +{1727, 14, 6709, {1, 3, 3, 5, 11, 41, 29, 43, 365, 279, 1919, 945, 179, 1987}}, +{1728, 14, 6710, {1, 3, 1, 13, 7, 7, 25, 33, 103, 367, 1267, 763, 5691, 8643}}, +{1729, 14, 6741, {1, 3, 1, 5, 11, 15, 3, 213, 511, 211, 1069, 4047, 3335, 12729}}, +{1730, 14, 6745, {1, 1, 3, 1, 5, 11, 27, 201, 361, 537, 679, 3709, 293, 2997}}, +{1731, 14, 6758, {1, 1, 3, 1, 25, 15, 19, 185, 369, 577, 1625, 655, 2363, 3861}}, +{1732, 14, 6767, {1, 1, 5, 5, 1, 47, 61, 45, 411, 597, 955, 1007, 3775, 5809}}, +{1733, 14, 6772, {1, 1, 5, 3, 27, 51, 101, 167, 429, 333, 1703, 3541, 2947, 3695}}, +{1734, 14, 6782, {1, 3, 5, 5, 1, 53, 17, 63, 141, 215, 1223, 3129, 635, 15919}}, +{1735, 14, 6797, {1, 3, 3, 1, 23, 31, 25, 11, 195, 241, 995, 3941, 573, 13855}}, +{1736, 14, 6800, {1, 3, 3, 7, 17, 13, 71, 203, 465, 479, 1857, 1493, 8067, 7113}}, +{1737, 14, 6843, {1, 1, 5, 3, 11, 57, 9, 59, 225, 691, 425, 2423, 6031, 6631}}, +{1738, 14, 6845, {1, 3, 7, 1, 29, 57, 103, 123, 401, 807, 471, 2759, 5113, 15937}}, +{1739, 14, 6860, {1, 3, 1, 1, 3, 1, 67, 123, 157, 655, 519, 323, 1853, 15041}}, +{1740, 14, 6865, {1, 1, 7, 5, 11, 11, 105, 135, 247, 689, 1141, 2347, 7113, 9347}}, +{1741, 14, 6878, {1, 1, 3, 11, 15, 37, 87, 3, 209, 575, 1521, 3863, 3893, 211}}, +{1742, 14, 6887, {1, 3, 1, 3, 29, 55, 115, 31, 19, 195, 985, 3275, 363, 9801}}, +{1743, 14, 6888, {1, 1, 3, 9, 13, 31, 57, 251, 201, 275, 1751, 389, 1463, 13159}}, +{1744, 14, 6901, {1, 3, 5, 15, 19, 51, 127, 255, 397, 243, 29, 3007, 7845, 4687}}, +{1745, 14, 6906, {1, 1, 7, 15, 9, 37, 39, 217, 509, 137, 1123, 3361, 6323, 5323}}, +{1746, 14, 6940, {1, 3, 7, 5, 25, 3, 93, 203, 345, 581, 261, 2811, 4829, 6977}}, +{1747, 14, 6947, {1, 1, 7, 1, 15, 41, 51, 227, 447, 893, 1209, 3865, 5229, 4277}}, +{1748, 14, 6953, {1, 1, 1, 5, 31, 19, 23, 195, 359, 853, 595, 337, 2503, 16371}}, +{1749, 14, 6954, {1, 3, 7, 5, 5, 13, 89, 157, 351, 777, 151, 3565, 4219, 7423}}, +{1750, 14, 6959, {1, 1, 1, 5, 7, 1, 9, 89, 175, 909, 1523, 2295, 7949, 6739}}, +{1751, 14, 6961, {1, 3, 5, 15, 27, 17, 11, 235, 19, 105, 457, 465, 3819, 11335}}, +{1752, 14, 6964, {1, 3, 1, 13, 3, 41, 85, 221, 451, 613, 543, 2265, 6831, 1725}}, +{1753, 14, 6991, {1, 1, 7, 7, 3, 29, 9, 197, 455, 665, 343, 1811, 5395, 393}}, +{1754, 14, 6993, {1, 1, 3, 13, 29, 55, 71, 95, 475, 615, 2029, 123, 413, 16127}}, +{1755, 14, 6999, {1, 1, 5, 9, 15, 61, 9, 51, 105, 271, 511, 2801, 693, 11839}}, +{1756, 14, 7016, {1, 1, 7, 13, 29, 9, 105, 59, 377, 635, 717, 4033, 6963, 10541}}, +{1757, 14, 7029, {1, 1, 1, 13, 7, 13, 59, 17, 335, 355, 77, 3665, 7003, 9521}}, +{1758, 14, 7036, {1, 3, 1, 1, 23, 43, 51, 209, 151, 365, 1021, 2859, 3937, 2899}}, +{1759, 14, 7045, {1, 1, 3, 3, 31, 41, 111, 107, 171, 433, 1233, 505, 2971, 6927}}, +{1760, 14, 7076, {1, 3, 7, 13, 17, 25, 127, 195, 257, 551, 1867, 2145, 3695, 14567}}, +{1761, 14, 7083, {1, 1, 5, 13, 13, 45, 39, 195, 55, 991, 1981, 1043, 5875, 581}}, +{1762, 14, 7094, {1, 3, 3, 11, 25, 31, 91, 153, 415, 449, 1301, 563, 7755, 10671}}, +{1763, 14, 7097, {1, 1, 3, 5, 31, 63, 1, 157, 229, 949, 971, 137, 6589, 8387}}, +{1764, 14, 7123, {1, 3, 7, 15, 25, 7, 89, 133, 73, 497, 1361, 613, 455, 1005}}, +{1765, 14, 7130, {1, 3, 3, 1, 13, 5, 119, 93, 175, 511, 1923, 763, 7573, 7545}}, +{1766, 14, 7139, {1, 1, 3, 15, 27, 59, 49, 205, 497, 485, 117, 2523, 4495, 15153}}, +{1767, 14, 7145, {1, 3, 7, 9, 15, 47, 111, 31, 363, 11, 475, 2931, 6813, 1259}}, +{1768, 14, 7146, {1, 1, 5, 5, 1, 35, 95, 225, 17, 991, 809, 2601, 6455, 13803}}, +{1769, 14, 7178, {1, 1, 5, 5, 15, 1, 1, 171, 433, 887, 1813, 3431, 2471, 7803}}, +{1770, 14, 7186, {1, 3, 3, 15, 1, 15, 43, 179, 15, 949, 1881, 1027, 6989, 8955}}, +{1771, 14, 7192, {1, 3, 7, 13, 1, 3, 49, 183, 373, 175, 1733, 913, 929, 1065}}, +{1772, 14, 7198, {1, 3, 5, 7, 15, 51, 107, 115, 323, 357, 167, 2069, 7541, 9601}}, +{1773, 14, 7222, {1, 1, 3, 5, 5, 21, 31, 107, 21, 299, 1937, 43, 3673, 8155}}, +{1774, 14, 7269, {1, 3, 5, 11, 9, 55, 35, 113, 29, 99, 161, 1607, 8141, 4951}}, +{1775, 14, 7270, {1, 3, 7, 15, 25, 7, 113, 179, 213, 19, 1717, 1027, 2021, 11263}}, +{1776, 14, 7276, {1, 1, 5, 1, 31, 33, 85, 111, 67, 95, 2013, 2217, 871, 5329}}, +{1777, 14, 7287, {1, 1, 1, 7, 7, 63, 67, 145, 495, 419, 1945, 3437, 6255, 151}}, +{1778, 14, 7307, {1, 3, 5, 7, 17, 37, 97, 187, 215, 399, 1603, 2195, 5923, 769}}, +{1779, 14, 7315, {1, 1, 3, 9, 25, 1, 119, 193, 385, 861, 2005, 2769, 675, 767}}, +{1780, 14, 7334, {1, 3, 1, 15, 19, 7, 5, 227, 173, 383, 289, 461, 579, 3689}}, +{1781, 14, 7340, {1, 3, 1, 11, 1, 37, 93, 239, 465, 891, 1479, 921, 4439, 15265}}, +{1782, 14, 7351, {1, 1, 1, 13, 27, 61, 99, 69, 279, 655, 1853, 1593, 6319, 9003}}, +{1783, 14, 7352, {1, 1, 1, 11, 5, 7, 19, 7, 387, 303, 321, 931, 5809, 16029}}, +{1784, 14, 7357, {1, 1, 1, 15, 21, 55, 43, 107, 217, 687, 19, 3225, 3419, 9991}}, +{1785, 14, 7360, {1, 1, 7, 5, 7, 55, 79, 41, 317, 357, 859, 1205, 191, 9395}}, +{1786, 14, 7363, {1, 1, 3, 11, 3, 43, 7, 133, 115, 995, 1205, 1055, 4153, 10481}}, +{1787, 14, 7384, {1, 1, 7, 11, 31, 57, 53, 9, 459, 223, 1969, 3513, 7033, 8505}}, +{1788, 14, 7396, {1, 1, 3, 7, 17, 11, 115, 255, 281, 97, 1685, 2039, 2845, 11637}}, +{1789, 14, 7403, {1, 3, 7, 1, 23, 41, 69, 199, 53, 105, 657, 1453, 4429, 1101}}, +{1790, 14, 7406, {1, 3, 1, 5, 11, 33, 91, 131, 191, 73, 823, 117, 1053, 127}}, +{1791, 14, 7425, {1, 3, 7, 11, 7, 3, 21, 65, 187, 103, 1393, 1797, 6673, 1409}}, +{1792, 14, 7437, {1, 3, 7, 1, 31, 25, 25, 161, 299, 275, 417, 2267, 6861, 1255}}, +{1793, 14, 7445, {1, 3, 5, 13, 5, 11, 61, 155, 115, 1001, 747, 889, 3235, 5709}}, +{1794, 14, 7450, {1, 3, 7, 7, 7, 1, 97, 177, 507, 273, 1781, 3455, 5123, 15607}}, +{1795, 14, 7455, {1, 1, 7, 5, 1, 7, 59, 49, 147, 343, 97, 3517, 5611, 8705}}, +{1796, 14, 7461, {1, 1, 5, 13, 21, 29, 13, 21, 503, 515, 1217, 3905, 5513, 15849}}, +{1797, 14, 7466, {1, 3, 1, 9, 9, 39, 65, 111, 385, 757, 583, 2225, 2039, 2817}}, +{1798, 14, 7488, {1, 3, 3, 15, 23, 17, 63, 169, 503, 949, 849, 461, 6799, 669}}, +{1799, 14, 7494, {1, 1, 1, 3, 1, 41, 63, 159, 251, 457, 521, 1653, 623, 3287}}, +{1800, 14, 7515, {1, 1, 7, 3, 9, 1, 41, 37, 441, 921, 1415, 2955, 5841, 1451}}, +{1801, 14, 7517, {1, 1, 5, 11, 23, 29, 89, 185, 413, 357, 1131, 2369, 3835, 6233}}, +{1802, 14, 7521, {1, 1, 5, 15, 27, 35, 17, 73, 315, 911, 1761, 797, 5349, 3219}}, +{1803, 14, 7536, {1, 3, 7, 11, 21, 9, 119, 233, 249, 901, 189, 3625, 2691, 16201}}, +{1804, 14, 7546, {1, 3, 3, 13, 29, 61, 105, 145, 187, 79, 609, 321, 4289, 3933}}, +{1805, 14, 7569, {1, 3, 1, 15, 19, 63, 13, 185, 115, 219, 1021, 1205, 4273, 11521}}, +{1806, 14, 7591, {1, 1, 3, 3, 23, 31, 93, 153, 87, 947, 1039, 469, 4047, 8869}}, +{1807, 14, 7592, {1, 1, 1, 1, 9, 1, 85, 3, 15, 995, 455, 2769, 6781, 16203}}, +{1808, 14, 7598, {1, 1, 3, 3, 13, 7, 55, 215, 185, 367, 765, 441, 4497, 1521}}, +{1809, 14, 7612, {1, 1, 1, 5, 1, 31, 13, 95, 417, 735, 975, 3407, 4871, 16133}}, +{1810, 14, 7623, {1, 1, 3, 3, 5, 43, 111, 107, 419, 515, 1075, 3597, 1187, 4143}}, +{1811, 14, 7632, {1, 1, 3, 13, 31, 51, 83, 163, 489, 887, 863, 599, 9, 13861}}, +{1812, 14, 7637, {1, 3, 3, 3, 19, 27, 91, 115, 103, 969, 593, 3667, 1867, 15433}}, +{1813, 14, 7644, {1, 3, 3, 13, 7, 25, 47, 141, 57, 553, 1785, 1709, 7453, 2209}}, +{1814, 14, 7657, {1, 3, 1, 13, 11, 13, 71, 219, 5, 451, 2043, 1605, 6439, 12203}}, +{1815, 14, 7665, {1, 3, 1, 13, 5, 57, 61, 223, 401, 413, 321, 1365, 619, 12477}}, +{1816, 14, 7672, {1, 3, 1, 5, 25, 57, 89, 211, 195, 455, 1165, 3979, 6313, 5751}}, +{1817, 14, 7682, {1, 1, 1, 9, 31, 23, 71, 145, 89, 285, 1593, 1171, 5685, 15459}}, +{1818, 14, 7699, {1, 3, 7, 7, 9, 41, 65, 251, 65, 137, 1577, 3027, 5555, 2865}}, +{1819, 14, 7702, {1, 1, 5, 13, 27, 5, 125, 21, 171, 647, 983, 2921, 6623, 5695}}, +{1820, 14, 7724, {1, 1, 1, 13, 15, 9, 117, 197, 123, 953, 1191, 3657, 5757, 15957}}, +{1821, 14, 7749, {1, 1, 3, 7, 29, 13, 5, 175, 395, 127, 679, 255, 6055, 7639}}, +{1822, 14, 7753, {1, 3, 7, 15, 15, 51, 77, 147, 319, 147, 1775, 3983, 3175, 5723}}, +{1823, 14, 7754, {1, 3, 3, 3, 7, 11, 119, 41, 43, 153, 975, 679, 3081, 10359}}, +{1824, 14, 7761, {1, 1, 5, 13, 3, 7, 65, 67, 63, 399, 1561, 2789, 2083, 12289}}, +{1825, 14, 7771, {1, 1, 7, 3, 19, 53, 103, 67, 35, 865, 161, 93, 2533, 3851}}, +{1826, 14, 7777, {1, 1, 1, 11, 31, 9, 29, 189, 199, 817, 1571, 395, 345, 3777}}, +{1827, 14, 7784, {1, 3, 5, 11, 31, 3, 9, 67, 277, 735, 181, 2777, 3009, 7233}}, +{1828, 14, 7804, {1, 1, 3, 3, 17, 7, 17, 3, 375, 933, 237, 3919, 5409, 3355}}, +{1829, 14, 7807, {1, 3, 3, 5, 9, 27, 19, 77, 221, 3, 1965, 309, 3001, 15977}}, +{1830, 14, 7808, {1, 1, 5, 1, 3, 33, 35, 133, 37, 709, 627, 1705, 2525, 4307}}, +{1831, 14, 7818, {1, 1, 7, 3, 25, 21, 105, 55, 375, 681, 881, 1299, 5879, 459}}, +{1832, 14, 7835, {1, 3, 7, 1, 13, 7, 113, 103, 313, 515, 1041, 3683, 4619, 5093}}, +{1833, 14, 7842, {1, 1, 3, 7, 19, 43, 83, 37, 39, 133, 1759, 1171, 1521, 13717}}, +{1834, 14, 7865, {1, 1, 7, 13, 7, 35, 15, 155, 293, 1001, 157, 3883, 405, 1797}}, +{1835, 14, 7868, {1, 1, 3, 3, 13, 19, 125, 49, 333, 387, 339, 1815, 4503, 7359}}, +{1836, 14, 7880, {1, 1, 3, 13, 19, 19, 105, 225, 151, 27, 1251, 885, 4815, 7863}}, +{1837, 14, 7883, {1, 1, 1, 5, 7, 59, 17, 145, 77, 117, 1355, 1429, 2301, 16177}}, +{1838, 14, 7891, {1, 3, 3, 13, 5, 31, 119, 167, 459, 727, 1799, 2537, 695, 13637}}, +{1839, 14, 7897, {1, 3, 3, 3, 27, 51, 107, 85, 267, 57, 1279, 823, 6247, 3603}}, +{1840, 14, 7907, {1, 1, 7, 15, 29, 17, 67, 197, 215, 465, 109, 3461, 5269, 15287}}, +{1841, 14, 7910, {1, 1, 3, 5, 11, 15, 123, 53, 293, 797, 1105, 1777, 6509, 217}}, +{1842, 14, 7924, {1, 3, 3, 13, 3, 5, 109, 53, 203, 693, 871, 135, 369, 11149}}, +{1843, 14, 7933, {1, 3, 5, 15, 17, 43, 81, 235, 119, 817, 1777, 261, 8049, 4251}}, +{1844, 14, 7934, {1, 1, 3, 7, 7, 13, 87, 99, 481, 931, 1507, 651, 5267, 8281}}, +{1845, 14, 7942, {1, 3, 1, 13, 27, 43, 77, 225, 341, 163, 933, 429, 4943, 7781}}, +{1846, 14, 7948, {1, 1, 7, 1, 1, 49, 85, 211, 449, 479, 1395, 787, 5653, 14891}}, +{1847, 14, 7959, {1, 1, 5, 9, 25, 13, 49, 85, 125, 85, 1281, 3365, 4305, 11791}}, +{1848, 14, 7984, {1, 3, 1, 13, 3, 31, 117, 39, 43, 151, 663, 669, 1571, 5207}}, +{1849, 14, 7994, {1, 3, 7, 15, 17, 7, 79, 163, 37, 841, 1799, 1787, 4501, 3785}}, +{1850, 14, 7999, {1, 1, 3, 9, 1, 23, 67, 191, 449, 931, 1521, 2705, 887, 7037}}, +{1851, 14, 8014, {1, 1, 1, 1, 5, 13, 55, 161, 419, 577, 1703, 2589, 2651, 2873}}, +{1852, 14, 8021, {1, 3, 3, 3, 5, 19, 37, 169, 69, 1003, 1755, 3101, 1469, 8583}}, +{1853, 14, 8041, {1, 1, 1, 1, 11, 33, 105, 79, 283, 91, 299, 835, 3193, 5593}}, +{1854, 14, 8049, {1, 3, 3, 13, 25, 21, 81, 213, 465, 475, 331, 457, 61, 9511}}, +{1855, 14, 8050, {1, 1, 3, 11, 1, 11, 77, 95, 455, 949, 1999, 1833, 1275, 5631}}, +{1856, 14, 8068, {1, 1, 1, 1, 15, 25, 51, 137, 275, 451, 1179, 3595, 5177, 7105}}, +{1857, 14, 8080, {1, 3, 3, 3, 3, 59, 79, 143, 393, 583, 349, 3039, 7079, 14245}}, +{1858, 14, 8095, {1, 1, 7, 9, 21, 11, 123, 105, 53, 297, 803, 4025, 5421, 14527}}, +{1859, 14, 8102, {1, 3, 7, 11, 21, 15, 103, 109, 311, 321, 1217, 2777, 5457, 1823}}, +{1860, 14, 8106, {1, 3, 5, 11, 19, 31, 79, 89, 295, 413, 817, 499, 3699, 14411}}, +{1861, 14, 8120, {1, 1, 1, 5, 11, 3, 81, 13, 315, 841, 1543, 411, 6883, 6347}}, +{1862, 14, 8133, {1, 3, 3, 11, 23, 43, 23, 131, 17, 517, 995, 2687, 7443, 15085}}, +{1863, 14, 8134, {1, 1, 1, 1, 11, 57, 73, 9, 123, 905, 1763, 1789, 3701, 7131}}, +{1864, 14, 8143, {1, 1, 3, 5, 9, 53, 99, 229, 43, 207, 625, 1583, 6727, 15249}}, +{1865, 14, 8162, {1, 1, 7, 7, 17, 39, 91, 1, 297, 711, 225, 513, 7391, 291}}, +{1866, 14, 8168, {1, 1, 7, 11, 7, 55, 111, 129, 423, 521, 1807, 3015, 1449, 12321}}, +{1867, 14, 8179, {1, 3, 7, 3, 13, 9, 125, 187, 11, 485, 647, 275, 3495, 11989}}, +{1868, 15, 1, {1, 1, 3, 11, 11, 25, 49, 33, 361, 105, 271, 3841, 4837, 2437, 30181}}, +{1869, 15, 8, {1, 3, 5, 1, 27, 15, 119, 35, 159, 273, 1489, 3157, 5433, 3337, 26859}}, +{1870, 15, 11, {1, 3, 5, 13, 23, 31, 97, 145, 41, 605, 1455, 59, 5389, 5527, 14447}}, +{1871, 15, 22, {1, 1, 7, 9, 7, 41, 61, 193, 353, 879, 1805, 581, 5447, 11177, 7331}}, +{1872, 15, 26, {1, 1, 7, 11, 29, 19, 55, 207, 361, 759, 63, 2255, 2119, 14671, 21783}}, +{1873, 15, 47, {1, 3, 1, 13, 17, 7, 73, 179, 103, 23, 917, 1205, 4925, 1691, 5419}}, +{1874, 15, 59, {1, 3, 5, 3, 15, 3, 9, 109, 227, 861, 867, 3529, 1535, 489, 22873}}, +{1875, 15, 64, {1, 3, 3, 9, 15, 15, 95, 193, 385, 997, 1525, 1865, 1425, 4079, 14771}}, +{1876, 15, 67, {1, 1, 3, 5, 5, 29, 49, 171, 171, 623, 1167, 3743, 1809, 12009, 7043}}, +{1877, 15, 73, {1, 3, 7, 5, 23, 11, 87, 183, 299, 555, 1857, 489, 3505, 9161, 28763}}, +{1878, 15, 82, {1, 3, 5, 9, 19, 21, 85, 127, 337, 439, 1183, 1891, 1877, 4373, 10451}}, +{1879, 15, 97, {1, 3, 7, 13, 27, 17, 29, 83, 463, 385, 1167, 3453, 4523, 4759, 9321}}, +{1880, 15, 103, {1, 1, 3, 7, 21, 59, 65, 83, 177, 763, 317, 2913, 7527, 5967, 17167}}, +{1881, 15, 110, {1, 1, 7, 15, 13, 27, 49, 35, 253, 101, 1699, 355, 2181, 10859, 24221}}, +{1882, 15, 115, {1, 1, 5, 1, 17, 17, 81, 91, 349, 655, 1373, 2225, 945, 899, 31801}}, +{1883, 15, 122, {1, 3, 7, 11, 5, 1, 81, 53, 215, 587, 167, 4045, 5671, 5597, 13529}}, +{1884, 15, 128, {1, 3, 5, 15, 1, 9, 59, 235, 315, 195, 909, 2237, 505, 10415, 28145}}, +{1885, 15, 138, {1, 1, 1, 3, 9, 31, 41, 43, 275, 921, 25, 671, 5737, 11241, 4193}}, +{1886, 15, 146, {1, 3, 3, 13, 29, 13, 95, 213, 317, 995, 1489, 3779, 3043, 8569, 28823}}, +{1887, 15, 171, {1, 1, 7, 5, 9, 49, 125, 241, 87, 153, 1673, 3849, 7253, 1715, 11627}}, +{1888, 15, 174, {1, 1, 3, 9, 27, 27, 19, 223, 63, 463, 1095, 1395, 6643, 11589, 2145}}, +{1889, 15, 176, {1, 1, 3, 15, 21, 17, 45, 23, 357, 11, 1307, 1791, 2481, 2123, 24341}}, +{1890, 15, 182, {1, 3, 5, 15, 31, 53, 117, 51, 433, 193, 1239, 3329, 2403, 12745, 32219}}, +{1891, 15, 194, {1, 1, 5, 9, 7, 27, 9, 115, 417, 579, 83, 173, 4717, 15665, 27463}}, +{1892, 15, 208, {1, 3, 5, 7, 9, 9, 31, 35, 249, 567, 331, 905, 5101, 14817, 14255}}, +{1893, 15, 211, {1, 3, 7, 3, 1, 61, 29, 129, 119, 421, 1597, 2987, 3041, 7629, 23451}}, +{1894, 15, 220, {1, 1, 7, 9, 13, 1, 99, 105, 107, 509, 989, 2259, 1009, 6827, 8903}}, +{1895, 15, 229, {1, 3, 5, 15, 11, 29, 85, 29, 265, 105, 2035, 3349, 3543, 13903, 10213}}, +{1896, 15, 230, {1, 3, 1, 1, 25, 19, 53, 139, 467, 485, 491, 3067, 7353, 13861, 25819}}, +{1897, 15, 239, {1, 1, 5, 3, 3, 43, 41, 185, 45, 463, 351, 2823, 2519, 6705, 11395}}, +{1898, 15, 254, {1, 3, 7, 13, 11, 15, 87, 221, 427, 673, 1631, 599, 3259, 10691, 31283}}, +{1899, 15, 265, {1, 3, 5, 11, 9, 9, 15, 49, 275, 335, 1613, 3587, 5309, 14849, 26475}}, +{1900, 15, 285, {1, 3, 7, 9, 29, 13, 79, 225, 381, 781, 1411, 2761, 7157, 14983, 19717}}, +{1901, 15, 290, {1, 1, 7, 11, 29, 25, 117, 183, 101, 651, 653, 3157, 445, 14389, 23293}}, +{1902, 15, 319, {1, 1, 1, 3, 5, 33, 73, 155, 473, 387, 591, 2045, 5965, 16299, 31499}}, +{1903, 15, 324, {1, 3, 1, 7, 11, 33, 29, 21, 491, 937, 729, 4075, 975, 2461, 18991}}, +{1904, 15, 327, {1, 3, 7, 15, 29, 39, 105, 111, 173, 943, 69, 295, 8175, 13037, 26131}}, +{1905, 15, 333, {1, 1, 5, 15, 7, 5, 97, 147, 105, 887, 443, 2595, 5889, 10753, 1619}}, +{1906, 15, 357, {1, 3, 3, 15, 11, 45, 87, 207, 353, 909, 1847, 323, 2283, 12885, 16415}}, +{1907, 15, 364, {1, 1, 5, 3, 19, 33, 43, 79, 115, 653, 359, 2873, 4609, 12439, 6339}}, +{1908, 15, 395, {1, 3, 7, 9, 17, 61, 49, 227, 291, 69, 1753, 3899, 483, 3187, 29041}}, +{1909, 15, 397, {1, 3, 5, 3, 25, 35, 61, 211, 393, 199, 691, 1779, 6295, 13371, 15817}}, +{1910, 15, 405, {1, 3, 7, 5, 7, 23, 37, 91, 245, 915, 579, 867, 6193, 1063, 17363}}, +{1911, 15, 409, {1, 3, 7, 7, 23, 51, 41, 63, 375, 3, 159, 1889, 4419, 1687, 17977}}, +{1912, 15, 419, {1, 1, 1, 7, 13, 11, 53, 43, 317, 325, 1749, 2423, 4123, 8595, 20773}}, +{1913, 15, 422, {1, 1, 7, 7, 9, 9, 61, 113, 437, 213, 1407, 645, 4345, 807, 30411}}, +{1914, 15, 431, {1, 3, 3, 11, 17, 39, 17, 113, 391, 385, 581, 2023, 7449, 10153, 22033}}, +{1915, 15, 433, {1, 1, 3, 5, 29, 31, 101, 215, 379, 377, 1113, 2855, 7147, 14377, 25515}}, +{1916, 15, 436, {1, 3, 5, 5, 13, 3, 121, 125, 227, 969, 11, 1115, 5657, 9209, 6117}}, +{1917, 15, 440, {1, 3, 7, 15, 29, 17, 33, 123, 317, 301, 749, 1365, 5619, 605, 1613}}, +{1918, 15, 453, {1, 3, 1, 15, 7, 53, 125, 249, 219, 655, 105, 2825, 1649, 12783, 19777}}, +{1919, 15, 460, {1, 1, 7, 1, 25, 53, 19, 53, 157, 373, 1855, 495, 5065, 9465, 2313}}, +{1920, 15, 471, {1, 3, 5, 13, 3, 57, 57, 161, 431, 415, 1859, 1033, 6349, 1577, 31579}}, +{1921, 15, 478, {1, 1, 7, 5, 23, 63, 29, 221, 13, 965, 1997, 2265, 1583, 10491, 9551}}, +{1922, 15, 482, {1, 1, 3, 13, 31, 25, 23, 61, 285, 5, 2005, 879, 795, 13299, 19685}}, +{1923, 15, 488, {1, 1, 7, 1, 21, 45, 121, 89, 263, 543, 1333, 2711, 219, 10823, 26139}}, +{1924, 15, 524, {1, 1, 3, 3, 27, 13, 19, 117, 161, 457, 1541, 295, 4953, 12125, 14503}}, +{1925, 15, 529, {1, 3, 5, 3, 7, 63, 13, 247, 439, 681, 977, 2537, 6923, 10323, 7349}}, +{1926, 15, 535, {1, 3, 5, 9, 3, 51, 81, 251, 349, 983, 581, 2515, 2281, 2849, 31915}}, +{1927, 15, 536, {1, 3, 5, 3, 11, 63, 47, 137, 303, 627, 91, 2269, 7097, 2145, 31059}}, +{1928, 15, 539, {1, 1, 3, 15, 13, 17, 53, 27, 133, 13, 117, 1837, 4103, 5843, 29153}}, +{1929, 15, 563, {1, 1, 5, 13, 21, 33, 37, 253, 465, 209, 309, 49, 3209, 15677, 14569}}, +{1930, 15, 566, {1, 1, 7, 15, 13, 21, 33, 203, 499, 141, 1155, 3893, 1663, 2115, 27459}}, +{1931, 15, 572, {1, 3, 5, 11, 21, 9, 39, 157, 257, 273, 1257, 1831, 515, 7969, 20133}}, +{1932, 15, 577, {1, 1, 3, 13, 19, 29, 15, 189, 103, 219, 1395, 517, 7425, 6585, 15865}}, +{1933, 15, 587, {1, 1, 5, 11, 21, 31, 49, 151, 39, 537, 1783, 3449, 6915, 223, 11587}}, +{1934, 15, 592, {1, 3, 3, 11, 7, 63, 69, 31, 27, 911, 1903, 2821, 7977, 12949, 32257}}, +{1935, 15, 602, {1, 1, 7, 9, 25, 45, 23, 233, 511, 595, 1383, 1721, 6789, 12055, 21179}}, +{1936, 15, 623, {1, 1, 7, 13, 1, 27, 123, 49, 439, 683, 501, 641, 1947, 6111, 25423}}, +{1937, 15, 635, {1, 3, 3, 5, 1, 23, 57, 241, 243, 593, 2039, 1617, 2209, 5171, 9675}}, +{1938, 15, 638, {1, 1, 1, 7, 5, 19, 83, 55, 481, 125, 177, 1021, 1139, 11403, 23099}}, +{1939, 15, 654, {1, 1, 3, 5, 29, 39, 33, 217, 461, 907, 733, 3795, 4811, 12939, 27715}}, +{1940, 15, 656, {1, 3, 7, 3, 7, 11, 39, 165, 495, 147, 999, 1827, 817, 603, 9293}}, +{1941, 15, 659, {1, 3, 7, 15, 25, 53, 35, 15, 431, 733, 1213, 2907, 8087, 3939, 27363}}, +{1942, 15, 665, {1, 3, 7, 13, 13, 9, 33, 27, 485, 183, 455, 3341, 2555, 4985, 8793}}, +{1943, 15, 675, {1, 1, 1, 15, 25, 47, 75, 21, 205, 15, 1639, 3067, 1295, 11693, 16903}}, +{1944, 15, 677, {1, 1, 1, 15, 3, 31, 93, 57, 43, 185, 251, 1899, 7885, 10829, 3609}}, +{1945, 15, 687, {1, 1, 3, 1, 29, 9, 69, 223, 221, 537, 365, 3411, 5771, 15279, 5309}}, +{1946, 15, 696, {1, 1, 7, 5, 1, 5, 125, 243, 213, 1003, 1571, 3355, 3981, 8781, 25993}}, +{1947, 15, 701, {1, 1, 1, 13, 7, 19, 53, 243, 301, 75, 1183, 2723, 6687, 13, 16581}}, +{1948, 15, 704, {1, 3, 1, 13, 17, 51, 91, 239, 437, 191, 1065, 2495, 5755, 3405, 8299}}, +{1949, 15, 710, {1, 1, 5, 5, 11, 59, 21, 169, 299, 123, 1845, 2199, 2157, 14461, 10327}}, +{1950, 15, 721, {1, 3, 7, 7, 19, 47, 51, 179, 41, 19, 1347, 2325, 8063, 5993, 15653}}, +{1951, 15, 728, {1, 1, 1, 9, 25, 27, 7, 133, 223, 533, 719, 353, 7093, 8285, 10375}}, +{1952, 15, 738, {1, 3, 5, 15, 31, 5, 67, 39, 441, 495, 977, 3699, 1435, 11385, 14567}}, +{1953, 15, 740, {1, 1, 3, 15, 15, 39, 25, 33, 91, 523, 249, 4035, 769, 5181, 9691}}, +{1954, 15, 749, {1, 1, 3, 3, 3, 57, 83, 187, 423, 165, 161, 3453, 2241, 981, 8429}}, +{1955, 15, 758, {1, 1, 7, 15, 1, 17, 57, 189, 283, 11, 823, 3505, 7025, 11879, 15441}}, +{1956, 15, 761, {1, 1, 3, 11, 1, 41, 7, 255, 385, 339, 607, 1405, 1473, 13697, 9491}}, +{1957, 15, 772, {1, 1, 7, 15, 5, 9, 91, 99, 211, 233, 51, 2663, 1165, 9283, 18495}}, +{1958, 15, 776, {1, 1, 3, 7, 21, 37, 13, 91, 39, 27, 1021, 2813, 5937, 6645, 3403}}, +{1959, 15, 782, {1, 3, 1, 1, 29, 29, 5, 69, 399, 665, 1407, 3921, 2653, 11753, 18925}}, +{1960, 15, 789, {1, 3, 7, 15, 13, 41, 39, 1, 437, 549, 161, 2315, 5631, 8335, 22661}}, +{1961, 15, 810, {1, 1, 3, 1, 7, 17, 115, 61, 69, 955, 475, 3763, 8035, 927, 17893}}, +{1962, 15, 812, {1, 3, 1, 13, 21, 59, 81, 145, 463, 145, 1941, 2777, 7453, 14229, 11281}}, +{1963, 15, 818, {1, 1, 1, 15, 15, 11, 27, 165, 461, 395, 1645, 3611, 7463, 12379, 26787}}, +{1964, 15, 830, {1, 1, 7, 9, 29, 19, 27, 123, 21, 149, 1643, 4001, 7207, 6769, 4647}}, +{1965, 15, 832, {1, 1, 1, 11, 13, 9, 103, 139, 185, 587, 591, 1113, 2223, 11667, 32671}}, +{1966, 15, 852, {1, 3, 1, 1, 31, 13, 19, 93, 229, 125, 1471, 2369, 3055, 10277, 28563}}, +{1967, 15, 855, {1, 3, 7, 5, 7, 53, 99, 175, 161, 851, 617, 4027, 2357, 11199, 1931}}, +{1968, 15, 859, {1, 3, 5, 11, 3, 31, 111, 179, 237, 845, 539, 1057, 259, 3417, 26637}}, +{1969, 15, 865, {1, 1, 5, 3, 21, 49, 125, 119, 463, 403, 737, 1811, 3941, 13015, 29081}}, +{1970, 15, 877, {1, 3, 5, 13, 5, 29, 69, 251, 313, 357, 663, 1097, 3307, 12845, 28495}}, +{1971, 15, 895, {1, 3, 3, 5, 29, 17, 89, 15, 411, 409, 2013, 757, 4085, 12521, 11131}}, +{1972, 15, 901, {1, 1, 1, 15, 7, 51, 3, 193, 493, 133, 381, 2027, 227, 6635, 12931}}, +{1973, 15, 902, {1, 1, 1, 15, 7, 23, 99, 203, 323, 1007, 1465, 2887, 2215, 1787, 22069}}, +{1974, 15, 906, {1, 1, 5, 9, 29, 59, 77, 151, 509, 313, 415, 3977, 5431, 8019, 8571}}, +{1975, 15, 916, {1, 3, 1, 15, 19, 13, 57, 217, 87, 119, 25, 1149, 5667, 3765, 6959}}, +{1976, 15, 920, {1, 3, 7, 13, 19, 31, 119, 3, 457, 117, 905, 361, 1483, 12405, 27005}}, +{1977, 15, 949, {1, 3, 5, 11, 15, 35, 61, 77, 119, 51, 1753, 2765, 1091, 10573, 23595}}, +{1978, 15, 962, {1, 3, 3, 7, 1, 35, 17, 93, 197, 511, 1253, 3031, 2739, 15127, 15147}}, +{1979, 15, 964, {1, 3, 3, 1, 11, 55, 55, 107, 161, 75, 129, 2195, 2023, 4877, 25797}}, +{1980, 15, 967, {1, 3, 5, 7, 23, 19, 113, 167, 167, 271, 1303, 125, 5057, 1323, 5165}}, +{1981, 15, 981, {1, 1, 5, 3, 21, 31, 11, 119, 215, 483, 1535, 407, 6485, 15401, 30297}}, +{1982, 15, 982, {1, 3, 5, 9, 21, 5, 77, 95, 443, 247, 913, 605, 365, 7465, 19707}}, +{1983, 15, 985, {1, 3, 1, 7, 17, 59, 9, 35, 391, 767, 1493, 475, 4725, 7529, 31579}}, +{1984, 15, 991, {1, 3, 3, 7, 31, 21, 61, 31, 421, 179, 273, 771, 5745, 10575, 32765}}, +{1985, 15, 1007, {1, 3, 5, 15, 27, 13, 125, 55, 423, 1021, 497, 3521, 6903, 15111, 8285}}, +{1986, 15, 1016, {1, 1, 5, 9, 13, 31, 105, 93, 421, 709, 643, 1079, 1533, 9149, 10799}}, +{1987, 15, 1024, {1, 3, 1, 11, 19, 29, 53, 199, 319, 247, 655, 3039, 6411, 12267, 14245}}, +{1988, 15, 1051, {1, 3, 1, 11, 9, 57, 5, 91, 469, 149, 259, 329, 5433, 6941, 15093}}, +{1989, 15, 1060, {1, 3, 1, 5, 5, 51, 59, 25, 455, 367, 1623, 441, 3155, 11695, 20767}}, +{1990, 15, 1070, {1, 3, 7, 7, 11, 49, 113, 95, 91, 389, 605, 1973, 2051, 2315, 22229}}, +{1991, 15, 1072, {1, 3, 5, 3, 19, 11, 99, 135, 433, 781, 1473, 885, 1105, 3573, 3739}}, +{1992, 15, 1084, {1, 3, 1, 11, 3, 25, 9, 227, 433, 723, 317, 139, 6627, 8067, 28439}}, +{1993, 15, 1089, {1, 1, 1, 9, 9, 9, 5, 63, 241, 215, 1991, 2949, 3943, 775, 31511}}, +{1994, 15, 1095, {1, 1, 3, 7, 17, 49, 35, 167, 131, 107, 1295, 2465, 4577, 11147, 29833}}, +{1995, 15, 1114, {1, 1, 5, 1, 5, 25, 119, 129, 391, 743, 1069, 2957, 349, 6891, 13635}}, +{1996, 15, 1123, {1, 3, 1, 7, 9, 31, 63, 253, 215, 51, 1347, 2361, 3125, 13049, 28461}}, +{1997, 15, 1132, {1, 1, 7, 9, 3, 31, 21, 163, 255, 47, 259, 535, 5461, 3349, 30649}}, +{1998, 15, 1154, {1, 3, 3, 13, 17, 33, 87, 47, 243, 709, 929, 3943, 3107, 3421, 13721}}, +{1999, 15, 1156, {1, 3, 5, 11, 25, 61, 61, 173, 397, 735, 2005, 3355, 8121, 11593, 27697}}, +{2000, 15, 1163, {1, 3, 5, 15, 17, 43, 63, 231, 275, 311, 1277, 2669, 7307, 2099, 9755}}, +{2001, 15, 1171, {1, 3, 5, 3, 25, 43, 71, 191, 9, 121, 1873, 3747, 7491, 14055, 24293}}, +{2002, 15, 1202, {1, 3, 5, 13, 17, 35, 113, 113, 385, 941, 39, 2705, 1225, 5167, 1373}}, +{2003, 15, 1228, {1, 3, 5, 5, 7, 35, 19, 105, 487, 71, 139, 627, 4187, 3183, 713}}, +{2004, 15, 1239, {1, 1, 5, 13, 29, 29, 103, 5, 157, 869, 1675, 423, 6689, 10697, 5303}}, +{2005, 15, 1255, {1, 1, 5, 1, 29, 31, 61, 111, 473, 963, 685, 1483, 2383, 8109, 8495}}, +{2006, 15, 1256, {1, 1, 5, 3, 19, 13, 95, 113, 217, 59, 1353, 1647, 3617, 3271, 2321}}, +{2007, 15, 1262, {1, 3, 5, 7, 25, 35, 59, 131, 309, 445, 415, 93, 1453, 8789, 30201}}, +{2008, 15, 1270, {1, 1, 5, 1, 5, 43, 71, 241, 123, 189, 831, 3469, 8093, 6187, 32721}}, +{2009, 15, 1279, {1, 3, 7, 5, 25, 31, 123, 171, 319, 379, 889, 2365, 4881, 12225, 16609}}, +{2010, 15, 1308, {1, 3, 1, 11, 27, 43, 121, 63, 291, 591, 811, 1995, 4777, 2083, 31385}}, +{2011, 15, 1322, {1, 1, 5, 11, 27, 53, 85, 187, 461, 823, 703, 399, 6925, 11517, 28697}}, +{2012, 15, 1329, {1, 1, 3, 5, 13, 11, 33, 121, 93, 717, 1275, 3877, 4247, 5845, 26909}}, +{2013, 15, 1330, {1, 3, 1, 9, 7, 5, 47, 199, 367, 561, 185, 2855, 5997, 2699, 7581}}, +{2014, 15, 1336, {1, 1, 5, 9, 23, 11, 71, 201, 61, 729, 1011, 3529, 663, 1413, 25675}}, +{2015, 15, 1341, {1, 3, 7, 13, 27, 21, 11, 127, 281, 487, 1217, 3129, 5541, 3129, 17783}}, +{2016, 15, 1347, {1, 1, 5, 9, 1, 29, 85, 193, 213, 743, 1473, 611, 391, 9405, 21137}}, +{2017, 15, 1349, {1, 3, 3, 3, 31, 63, 37, 147, 39, 351, 79, 3069, 2441, 8901, 8777}}, +{2018, 15, 1359, {1, 1, 7, 7, 25, 49, 55, 47, 441, 343, 1267, 1123, 5917, 14395, 10579}}, +{2019, 15, 1367, {1, 1, 7, 1, 13, 55, 55, 123, 103, 773, 125, 2145, 4743, 13347, 2589}}, +{2020, 15, 1368, {1, 3, 7, 3, 9, 33, 25, 183, 469, 213, 291, 75, 6725, 6847, 26745}}, +{2021, 15, 1390, {1, 3, 3, 7, 15, 43, 7, 79, 171, 21, 1767, 2537, 4285, 12007, 24039}}, +{2022, 15, 1413, {1, 3, 7, 13, 9, 61, 125, 23, 227, 879, 215, 1635, 2835, 883, 15939}}, +{2023, 15, 1414, {1, 1, 5, 13, 25, 45, 63, 43, 183, 829, 149, 989, 987, 3819, 12181}}, +{2024, 15, 1437, {1, 1, 3, 7, 19, 27, 35, 83, 135, 459, 785, 131, 2655, 3329, 3009}}, +{2025, 15, 1441, {1, 1, 7, 5, 11, 41, 9, 219, 475, 985, 1329, 3787, 1975, 4679, 8627}}, +{2026, 15, 1462, {1, 1, 7, 3, 1, 17, 91, 155, 3, 763, 1879, 233, 215, 2955, 25993}}, +{2027, 15, 1465, {1, 1, 1, 11, 25, 11, 23, 227, 453, 775, 1935, 3833, 4583, 269, 705}}, +{2028, 15, 1480, {1, 3, 3, 11, 7, 25, 105, 21, 449, 555, 1275, 3475, 5503, 15617, 813}}, +{2029, 15, 1486, {1, 3, 7, 13, 31, 37, 25, 255, 233, 663, 1155, 1563, 4775, 7449, 29949}}, +{2030, 15, 1504, {1, 1, 3, 1, 23, 51, 51, 137, 63, 809, 349, 2789, 6953, 10605, 18959}}, +{2031, 15, 1509, {1, 3, 3, 13, 21, 45, 15, 161, 393, 229, 437, 2967, 4019, 3893, 21305}}, +{2032, 15, 1514, {1, 1, 3, 7, 5, 11, 15, 211, 287, 131, 1847, 2569, 7881, 15669, 31037}}, +{2033, 15, 1522, {1, 3, 3, 15, 27, 19, 85, 251, 221, 639, 665, 3729, 5771, 7873, 28005}}, +{2034, 15, 1528, {1, 3, 7, 15, 15, 47, 93, 215, 343, 85, 1401, 1375, 2949, 13661, 25453}}, +{2035, 15, 1552, {1, 1, 1, 9, 7, 51, 53, 217, 471, 389, 551, 1141, 1767, 2237, 17797}}, +{2036, 15, 1555, {1, 1, 7, 9, 3, 29, 65, 29, 223, 591, 1719, 1049, 7643, 3853, 29867}}, +{2037, 15, 1571, {1, 1, 1, 11, 13, 41, 85, 29, 451, 387, 1783, 3733, 8033, 4711, 31643}}, +{2038, 15, 1578, {1, 3, 1, 11, 11, 57, 75, 153, 7, 373, 2011, 271, 469, 3267, 18969}}, +{2039, 15, 1585, {1, 1, 5, 3, 19, 43, 7, 243, 385, 293, 923, 843, 4895, 469, 8421}}, +{2040, 15, 1588, {1, 3, 1, 15, 29, 47, 17, 125, 471, 927, 349, 3859, 3059, 11483, 14791}}, +{2041, 15, 1603, {1, 3, 1, 11, 17, 17, 111, 109, 9, 213, 1313, 3903, 4411, 4329, 28277}}, +{2042, 15, 1609, {1, 3, 3, 15, 1, 55, 47, 69, 143, 789, 1149, 3833, 5053, 6949, 10569}}, +{2043, 15, 1617, {1, 3, 5, 7, 11, 15, 79, 83, 123, 937, 1115, 2775, 3041, 11869, 21167}}, +{2044, 15, 1620, {1, 3, 7, 13, 9, 47, 45, 221, 139, 923, 1661, 1379, 2485, 7233, 6035}}, +{2045, 15, 1629, {1, 1, 3, 3, 11, 55, 77, 3, 87, 693, 1991, 1145, 2783, 16207, 24569}}, +{2046, 15, 1636, {1, 1, 5, 11, 3, 35, 91, 9, 391, 927, 101, 1839, 3755, 10345, 16907}}, +{2047, 15, 1648, {1, 3, 5, 3, 5, 49, 79, 91, 205, 443, 1369, 197, 2537, 11219, 17765}}, +{2048, 15, 1667, {1, 1, 3, 15, 9, 7, 25, 25, 357, 247, 477, 421, 7679, 5987, 30079}}, +{2049, 15, 1669, {1, 1, 5, 3, 29, 5, 89, 117, 481, 491, 371, 389, 7101, 2253, 23617}}, +{2050, 15, 1682, {1, 1, 5, 13, 29, 59, 17, 181, 511, 291, 1991, 3499, 8177, 5559, 30045}}, +{2051, 15, 1697, {1, 3, 3, 11, 23, 31, 117, 217, 241, 115, 749, 945, 1897, 12253, 8473}}, +{2052, 15, 1704, {1, 1, 7, 15, 25, 47, 31, 1, 165, 311, 635, 3629, 1593, 8305, 30033}}, +{2053, 15, 1709, {1, 3, 5, 9, 3, 17, 101, 237, 379, 503, 49, 929, 1687, 3865, 26723}}, +{2054, 15, 1727, {1, 3, 5, 5, 15, 41, 1, 239, 53, 215, 1733, 827, 579, 4089, 6579}}, +{2055, 15, 1730, {1, 3, 1, 15, 15, 21, 35, 21, 403, 257, 1475, 2403, 4705, 11553, 203}}, +{2056, 15, 1732, {1, 3, 5, 11, 9, 53, 113, 9, 447, 511, 543, 3141, 7389, 11249, 431}}, +{2057, 15, 1741, {1, 3, 5, 9, 9, 11, 55, 93, 325, 411, 305, 2573, 6871, 12339, 6435}}, +{2058, 15, 1744, {1, 3, 3, 7, 31, 27, 21, 113, 99, 853, 365, 589, 3731, 10875, 12767}}, +{2059, 15, 1759, {1, 3, 1, 7, 15, 27, 31, 17, 275, 93, 1161, 2619, 1329, 7307, 587}}, +{2060, 15, 1765, {1, 3, 5, 9, 17, 47, 49, 237, 27, 193, 1237, 591, 5151, 5521, 31583}}, +{2061, 15, 1766, {1, 3, 5, 3, 13, 1, 27, 87, 43, 977, 305, 3293, 2475, 14571, 18321}}, +{2062, 15, 1778, {1, 1, 5, 7, 15, 13, 101, 1, 291, 807, 1711, 2277, 5573, 11051, 13133}}, +{2063, 15, 1780, {1, 3, 3, 1, 9, 3, 65, 81, 415, 733, 1527, 2747, 6069, 159, 7095}}, +{2064, 15, 1783, {1, 3, 3, 15, 27, 1, 71, 49, 231, 851, 2039, 613, 1899, 2537, 14511}}, +{2065, 15, 1797, {1, 1, 1, 11, 3, 41, 55, 23, 247, 1011, 581, 2363, 2745, 1337, 20931}}, +{2066, 15, 1807, {1, 1, 3, 11, 17, 61, 67, 255, 143, 357, 945, 3407, 5817, 4155, 23851}}, +{2067, 15, 1821, {1, 3, 5, 3, 23, 1, 75, 247, 265, 413, 1899, 2565, 6629, 15655, 16117}}, +{2068, 15, 1832, {1, 1, 1, 9, 11, 49, 11, 189, 223, 177, 1457, 1931, 163, 15905, 17297}}, +{2069, 15, 1835, {1, 3, 7, 13, 17, 1, 111, 189, 343, 961, 427, 2507, 2393, 8653, 6353}}, +{2070, 15, 1849, {1, 3, 7, 13, 23, 61, 59, 51, 313, 963, 791, 3681, 5637, 3965, 9263}}, +{2071, 15, 1850, {1, 3, 7, 7, 21, 53, 127, 141, 499, 859, 337, 2835, 3195, 4351, 32369}}, +{2072, 15, 1863, {1, 1, 7, 5, 1, 5, 53, 63, 497, 535, 35, 305, 4395, 9757, 13193}}, +{2073, 15, 1867, {1, 1, 5, 13, 13, 31, 59, 229, 211, 745, 1453, 3677, 3005, 7703, 23907}}, +{2074, 15, 1869, {1, 3, 5, 5, 7, 63, 17, 197, 493, 861, 499, 3015, 6349, 1815, 7437}}, +{2075, 15, 1872, {1, 1, 1, 13, 13, 37, 29, 189, 253, 1017, 321, 3145, 407, 7547, 17099}}, +{2076, 15, 1887, {1, 3, 3, 3, 23, 53, 69, 77, 175, 17, 1831, 841, 3851, 1295, 32107}}, +{2077, 15, 1888, {1, 3, 7, 13, 13, 39, 107, 237, 389, 729, 635, 3717, 3041, 3169, 14987}}, +{2078, 15, 1897, {1, 1, 3, 1, 25, 7, 69, 35, 495, 49, 659, 2783, 6051, 13875, 23927}}, +{2079, 15, 1906, {1, 3, 7, 5, 5, 25, 49, 7, 193, 493, 93, 657, 1515, 13975, 14155}}, +{2080, 15, 1917, {1, 3, 1, 1, 11, 15, 113, 45, 21, 595, 731, 3397, 4117, 9711, 16625}}, +{2081, 15, 1927, {1, 3, 3, 9, 19, 19, 59, 7, 105, 579, 599, 2859, 97, 14717, 15361}}, +{2082, 15, 1939, {1, 1, 1, 5, 27, 49, 113, 5, 367, 563, 1397, 2805, 3021, 3111, 20671}}, +{2083, 15, 1941, {1, 3, 3, 15, 27, 51, 99, 167, 109, 365, 1959, 1523, 6959, 14405, 18191}}, +{2084, 15, 1948, {1, 3, 1, 5, 21, 51, 125, 67, 123, 45, 1657, 51, 4825, 14081, 31049}}, +{2085, 15, 1970, {1, 1, 5, 7, 21, 59, 21, 249, 77, 793, 1687, 2561, 2241, 4321, 7477}}, +{2086, 15, 1979, {1, 1, 1, 7, 15, 35, 71, 29, 267, 611, 1813, 1823, 7039, 3299, 9919}}, +{2087, 15, 1982, {1, 3, 7, 11, 21, 59, 109, 213, 371, 785, 659, 1687, 4827, 6017, 19619}}, +{2088, 15, 2002, {1, 1, 3, 11, 27, 17, 1, 55, 367, 939, 333, 127, 5105, 2405, 28139}}, +{2089, 15, 2020, {1, 1, 7, 13, 5, 35, 59, 133, 509, 573, 625, 3857, 7935, 5279, 3727}}, +{2090, 15, 2024, {1, 1, 1, 7, 11, 47, 127, 157, 19, 403, 151, 1143, 7407, 8985, 32521}}, +{2091, 15, 2032, {1, 3, 1, 1, 5, 13, 105, 123, 63, 139, 1569, 1983, 563, 7175, 27705}}, +{2092, 15, 2053, {1, 1, 3, 13, 9, 35, 105, 227, 145, 21, 1369, 57, 393, 2921, 18511}}, +{2093, 15, 2060, {1, 3, 1, 7, 17, 61, 99, 187, 261, 281, 437, 2219, 5999, 1857, 18001}}, +{2094, 15, 2063, {1, 3, 3, 5, 1, 59, 67, 45, 451, 439, 2005, 3607, 3, 7167, 14227}}, +{2095, 15, 2066, {1, 3, 3, 3, 29, 19, 25, 251, 275, 733, 1749, 4021, 871, 3227, 13701}}, +{2096, 15, 2075, {1, 3, 3, 13, 27, 53, 57, 243, 491, 521, 1921, 1037, 5013, 5703, 15261}}, +{2097, 15, 2078, {1, 3, 1, 11, 13, 57, 1, 15, 123, 533, 785, 335, 1423, 14269, 3483}}, +{2098, 15, 2081, {1, 3, 7, 13, 15, 55, 5, 139, 385, 47, 1981, 1291, 7397, 12925, 29445}}, +{2099, 15, 2091, {1, 1, 7, 1, 23, 23, 59, 93, 117, 57, 63, 3047, 4849, 11637, 25311}}, +{2100, 15, 2096, {1, 1, 7, 13, 19, 37, 25, 203, 477, 447, 1345, 3485, 2099, 13347, 11621}}, +{2101, 15, 2102, {1, 1, 7, 3, 11, 23, 81, 17, 41, 735, 1149, 3253, 7665, 8291, 22293}}, +{2102, 15, 2106, {1, 1, 5, 3, 15, 9, 57, 167, 463, 493, 747, 1947, 6471, 1111, 31619}}, +{2103, 15, 2116, {1, 1, 5, 15, 7, 15, 107, 205, 325, 167, 1749, 927, 3589, 6127, 7617}}, +{2104, 15, 2120, {1, 1, 1, 13, 21, 25, 83, 147, 411, 399, 1423, 2279, 3661, 7591, 17429}}, +{2105, 15, 2125, {1, 1, 1, 9, 5, 17, 69, 205, 243, 647, 473, 1717, 1977, 10725, 2913}}, +{2106, 15, 2134, {1, 1, 3, 5, 5, 37, 103, 15, 485, 641, 1761, 3755, 6997, 10985, 11773}}, +{2107, 15, 2178, {1, 1, 5, 13, 9, 51, 87, 195, 97, 807, 1801, 961, 6341, 4307, 29105}}, +{2108, 15, 2180, {1, 3, 1, 13, 9, 35, 83, 61, 387, 817, 951, 3993, 7831, 8479, 23941}}, +{2109, 15, 2187, {1, 1, 7, 11, 19, 47, 75, 37, 91, 337, 953, 1169, 163, 2259, 24713}}, +{2110, 15, 2189, {1, 1, 1, 11, 13, 15, 83, 171, 159, 87, 619, 2973, 2653, 13725, 12499}}, +{2111, 15, 2190, {1, 3, 5, 3, 5, 63, 119, 25, 343, 269, 553, 2183, 959, 3825, 22189}}, +{2112, 15, 2208, {1, 1, 5, 15, 5, 37, 89, 109, 497, 1013, 265, 669, 1859, 2647, 3445}}, +{2113, 15, 2214, {1, 3, 3, 9, 21, 21, 15, 245, 107, 649, 367, 1601, 7279, 15783, 4943}}, +{2114, 15, 2237, {1, 3, 3, 15, 5, 41, 125, 113, 159, 161, 1191, 3491, 3531, 55, 20857}}, +{2115, 15, 2252, {1, 3, 5, 9, 21, 57, 21, 195, 99, 193, 1915, 2923, 6349, 15085, 24929}}, +{2116, 15, 2257, {1, 1, 1, 11, 31, 11, 73, 141, 361, 621, 1021, 2067, 5115, 12665, 26845}}, +{2117, 15, 2260, {1, 1, 1, 3, 29, 11, 43, 61, 209, 923, 1753, 1937, 843, 205, 8367}}, +{2118, 15, 2264, {1, 1, 1, 5, 15, 33, 119, 209, 215, 973, 1775, 815, 6693, 7957, 14517}}, +{2119, 15, 2270, {1, 1, 1, 5, 17, 57, 27, 147, 489, 59, 1439, 2279, 445, 11791, 19739}}, +{2120, 15, 2279, {1, 3, 1, 7, 11, 55, 1, 83, 305, 17, 1909, 405, 2325, 5293, 28559}}, +{2121, 15, 2288, {1, 3, 3, 7, 11, 27, 103, 157, 455, 1005, 2033, 3145, 1919, 15723, 25197}}, +{2122, 15, 2305, {1, 1, 5, 11, 15, 51, 37, 131, 503, 1007, 1795, 2421, 1335, 7413, 21741}}, +{2123, 15, 2312, {1, 1, 3, 1, 23, 63, 69, 83, 419, 283, 583, 123, 7725, 2243, 8403}}, +{2124, 15, 2317, {1, 1, 5, 5, 27, 45, 109, 17, 299, 65, 351, 947, 1165, 10723, 2053}}, +{2125, 15, 2323, {1, 1, 3, 3, 23, 61, 115, 253, 1, 931, 1481, 3187, 441, 14735, 27207}}, +{2126, 15, 2329, {1, 1, 5, 3, 25, 11, 83, 141, 359, 343, 901, 1629, 731, 12841, 14357}}, +{2127, 15, 2335, {1, 1, 3, 9, 7, 45, 97, 3, 299, 217, 663, 1527, 6379, 4527, 26147}}, +{2128, 15, 2342, {1, 1, 7, 9, 11, 53, 9, 203, 337, 713, 1517, 719, 4587, 11443, 26905}}, +{2129, 15, 2345, {1, 1, 7, 9, 11, 41, 125, 213, 237, 377, 361, 3231, 4223, 3263, 12655}}, +{2130, 15, 2365, {1, 3, 7, 7, 7, 33, 99, 19, 117, 273, 985, 107, 3831, 10135, 19423}}, +{2131, 15, 2371, {1, 1, 5, 15, 25, 41, 13, 125, 449, 169, 1149, 4021, 5663, 3077, 19163}}, +{2132, 15, 2378, {1, 3, 5, 9, 25, 57, 47, 103, 269, 51, 1805, 2503, 6687, 8065, 12045}}, +{2133, 15, 2385, {1, 3, 5, 7, 3, 35, 87, 225, 189, 229, 931, 3293, 1347, 1427, 3269}}, +{2134, 15, 2395, {1, 1, 1, 3, 5, 31, 61, 19, 247, 9, 1667, 343, 559, 2703, 3763}}, +{2135, 15, 2404, {1, 3, 5, 15, 31, 19, 57, 187, 109, 121, 1287, 2269, 659, 16235, 1273}}, +{2136, 15, 2414, {1, 1, 1, 3, 5, 47, 59, 243, 255, 97, 1959, 1723, 1347, 3019, 26989}}, +{2137, 15, 2426, {1, 3, 3, 15, 29, 35, 75, 67, 497, 731, 193, 3307, 3579, 12005, 7209}}, +{2138, 15, 2428, {1, 1, 5, 9, 13, 35, 79, 213, 51, 983, 1927, 1793, 5037, 5463, 965}}, +{2139, 15, 2441, {1, 1, 7, 11, 5, 41, 7, 83, 15, 411, 1775, 3515, 6755, 3249, 16425}}, +{2140, 15, 2456, {1, 3, 5, 1, 19, 61, 3, 19, 395, 819, 1331, 179, 5225, 5333, 3601}}, +{2141, 15, 2466, {1, 1, 3, 9, 7, 5, 87, 15, 387, 609, 1465, 277, 987, 8377, 903}}, +{2142, 15, 2468, {1, 1, 1, 3, 15, 11, 123, 107, 355, 333, 285, 1801, 6989, 1549, 25791}}, +{2143, 15, 2475, {1, 1, 7, 13, 27, 13, 73, 111, 481, 227, 1091, 365, 5713, 5087, 27217}}, +{2144, 15, 2489, {1, 3, 3, 15, 1, 55, 95, 213, 377, 405, 139, 1867, 2175, 4217, 28813}}, +{2145, 15, 2495, {1, 3, 5, 11, 21, 43, 109, 155, 181, 901, 1951, 507, 4389, 10815, 3141}}, +{2146, 15, 2497, {1, 1, 1, 15, 17, 11, 43, 215, 501, 19, 259, 3479, 6381, 6927, 31247}}, +{2147, 15, 2510, {1, 3, 5, 15, 19, 61, 75, 41, 391, 95, 865, 1441, 7993, 13979, 24663}}, +{2148, 15, 2512, {1, 3, 1, 3, 21, 15, 115, 213, 1, 645, 777, 1517, 2543, 11223, 3633}}, +{2149, 15, 2522, {1, 3, 5, 3, 9, 57, 39, 211, 407, 65, 1795, 2805, 2799, 8691, 1987}}, +{2150, 15, 2533, {1, 1, 3, 13, 17, 55, 47, 113, 29, 139, 1301, 3303, 1129, 13947, 29821}}, +{2151, 15, 2543, {1, 1, 3, 13, 5, 35, 97, 151, 477, 409, 1397, 3399, 4421, 15929, 6163}}, +{2152, 15, 2551, {1, 3, 1, 9, 21, 51, 99, 133, 149, 763, 623, 173, 4311, 11081, 1095}}, +{2153, 15, 2552, {1, 3, 7, 15, 13, 3, 99, 3, 195, 907, 1335, 1355, 7977, 5773, 32383}}, +{2154, 15, 2557, {1, 1, 3, 9, 17, 43, 43, 217, 475, 917, 1373, 1677, 4871, 9619, 16657}}, +{2155, 15, 2567, {1, 3, 3, 7, 31, 31, 55, 11, 73, 693, 25, 417, 1195, 6225, 32279}}, +{2156, 15, 2581, {1, 3, 5, 9, 21, 57, 127, 149, 79, 379, 1609, 2543, 6473, 16033, 27191}}, +{2157, 15, 2586, {1, 1, 5, 1, 13, 9, 81, 153, 297, 789, 1749, 2819, 3961, 11231, 24927}}, +{2158, 15, 2597, {1, 3, 5, 3, 23, 61, 45, 43, 43, 133, 1481, 1543, 2991, 13739, 10287}}, +{2159, 15, 2601, {1, 1, 3, 9, 25, 43, 31, 177, 337, 193, 1083, 1, 991, 9725, 8379}}, +{2160, 15, 2622, {1, 3, 5, 11, 13, 33, 65, 83, 421, 149, 409, 2443, 7423, 8847, 29599}}, +{2161, 15, 2633, {1, 1, 5, 11, 11, 1, 23, 225, 77, 585, 1505, 2525, 739, 10915, 25733}}, +{2162, 15, 2636, {1, 3, 7, 13, 7, 55, 3, 223, 415, 521, 1865, 2349, 5663, 7455, 16569}}, +{2163, 15, 2642, {1, 1, 7, 13, 1, 45, 121, 49, 463, 99, 1061, 2559, 5087, 13389, 11035}}, +{2164, 15, 2644, {1, 3, 7, 11, 31, 51, 35, 235, 385, 1023, 1771, 2013, 5437, 4877, 22119}}, +{2165, 15, 2653, {1, 3, 3, 11, 21, 3, 11, 119, 81, 737, 1093, 2377, 4055, 1121, 15767}}, +{2166, 15, 2667, {1, 1, 5, 13, 9, 3, 83, 217, 387, 249, 1047, 1861, 4103, 15367, 24545}}, +{2167, 15, 2669, {1, 3, 3, 1, 5, 37, 43, 183, 383, 463, 937, 1165, 1481, 959, 17047}}, +{2168, 15, 2672, {1, 1, 3, 5, 7, 43, 127, 243, 81, 1021, 165, 753, 4711, 12965, 22049}}, +{2169, 15, 2675, {1, 1, 5, 5, 3, 61, 65, 53, 425, 89, 5, 1467, 1395, 9579, 8961}}, +{2170, 15, 2682, {1, 3, 7, 13, 11, 35, 123, 21, 83, 689, 667, 1203, 5959, 15697, 26885}}, +{2171, 15, 2687, {1, 1, 5, 13, 9, 49, 41, 101, 291, 339, 1067, 657, 4453, 1137, 21131}}, +{2172, 15, 2691, {1, 3, 3, 3, 17, 61, 11, 213, 27, 805, 1691, 1057, 6011, 11941, 18883}}, +{2173, 15, 2698, {1, 3, 1, 7, 3, 51, 5, 63, 121, 3, 245, 2631, 3737, 16121, 26803}}, +{2174, 15, 2708, {1, 3, 1, 1, 23, 51, 79, 19, 161, 107, 609, 3489, 3389, 4035, 2427}}, +{2175, 15, 2712, {1, 3, 1, 1, 17, 11, 101, 101, 373, 63, 1641, 285, 1333, 165, 14025}}, +{2176, 15, 2718, {1, 1, 1, 5, 1, 51, 83, 137, 45, 1019, 821, 867, 6055, 10443, 9857}}, +{2177, 15, 2722, {1, 3, 1, 5, 17, 23, 25, 181, 429, 495, 317, 3219, 5963, 13945, 9969}}, +{2178, 15, 2736, {1, 3, 7, 3, 3, 15, 123, 191, 369, 177, 1697, 2113, 3889, 5201, 21839}}, +{2179, 15, 2741, {1, 3, 1, 11, 21, 39, 51, 139, 271, 605, 1007, 3513, 3365, 3781, 6799}}, +{2180, 15, 2756, {1, 1, 7, 5, 13, 19, 47, 165, 249, 405, 255, 1295, 4513, 14395, 5587}}, +{2181, 15, 2765, {1, 1, 3, 7, 5, 17, 99, 1, 393, 31, 621, 797, 6113, 16003, 32043}}, +{2182, 15, 2774, {1, 3, 5, 13, 11, 21, 65, 81, 147, 443, 775, 3671, 7029, 11749, 3339}}, +{2183, 15, 2799, {1, 3, 7, 1, 23, 33, 99, 177, 161, 577, 1729, 617, 3465, 11787, 17577}}, +{2184, 15, 2804, {1, 1, 5, 7, 15, 15, 53, 193, 97, 255, 1223, 545, 5153, 873, 24525}}, +{2185, 15, 2825, {1, 3, 5, 1, 7, 57, 47, 121, 383, 835, 1709, 2363, 4731, 12163, 7001}}, +{2186, 15, 2826, {1, 3, 3, 11, 19, 33, 63, 99, 387, 95, 783, 1009, 6373, 4021, 7685}}, +{2187, 15, 2840, {1, 1, 1, 15, 25, 33, 73, 135, 335, 785, 935, 1927, 5847, 10501, 7719}}, +{2188, 15, 2843, {1, 1, 5, 3, 27, 45, 71, 215, 489, 157, 1189, 2577, 6901, 10219, 3025}}, +{2189, 15, 2846, {1, 1, 7, 7, 21, 3, 97, 225, 101, 159, 293, 2789, 7955, 14829, 1209}}, +{2190, 15, 2849, {1, 3, 1, 5, 23, 41, 83, 63, 361, 195, 1707, 2081, 5363, 6327, 179}}, +{2191, 15, 2867, {1, 1, 3, 1, 21, 51, 59, 67, 175, 363, 825, 2971, 3321, 8837, 11805}}, +{2192, 15, 2876, {1, 3, 7, 1, 19, 3, 15, 21, 429, 675, 1589, 2615, 2575, 1537, 7139}}, +{2193, 15, 2891, {1, 3, 3, 5, 21, 29, 17, 115, 345, 397, 523, 1699, 7043, 11173, 3023}}, +{2194, 15, 2902, {1, 1, 5, 7, 19, 63, 99, 175, 91, 433, 153, 3749, 517, 13667, 7423}}, +{2195, 15, 2912, {1, 3, 7, 3, 25, 23, 53, 149, 65, 551, 1231, 365, 6637, 15137, 16319}}, +{2196, 15, 2917, {1, 3, 7, 13, 5, 45, 11, 151, 323, 31, 1749, 409, 6753, 10503, 14991}}, +{2197, 15, 2927, {1, 3, 7, 3, 5, 21, 29, 117, 321, 341, 1811, 3619, 4337, 12255, 8629}}, +{2198, 15, 2941, {1, 3, 7, 3, 7, 3, 5, 221, 407, 671, 1763, 3669, 2353, 8175, 23489}}, +{2199, 15, 2965, {1, 1, 3, 7, 11, 55, 53, 185, 247, 35, 1823, 513, 1379, 11827, 20069}}, +{2200, 15, 2970, {1, 3, 3, 5, 29, 51, 73, 191, 185, 961, 881, 2019, 5651, 1019, 15587}}, +{2201, 15, 2982, {1, 3, 7, 13, 7, 55, 59, 5, 417, 829, 453, 2339, 587, 13283, 797}}, +{2202, 15, 2993, {1, 3, 7, 3, 11, 41, 75, 85, 65, 149, 1583, 529, 2707, 11479, 7109}}, +{2203, 15, 3018, {1, 3, 7, 9, 13, 57, 37, 243, 91, 613, 665, 171, 1631, 13737, 2377}}, +{2204, 15, 3023, {1, 1, 3, 7, 5, 43, 97, 53, 477, 793, 999, 3647, 2555, 7371, 19295}}, +{2205, 15, 3025, {1, 1, 7, 1, 1, 9, 99, 253, 317, 817, 1559, 2081, 2529, 14611, 15997}}, +{2206, 15, 3026, {1, 3, 3, 1, 5, 41, 57, 121, 387, 441, 709, 1511, 7045, 8409, 13297}}, +{2207, 15, 3028, {1, 1, 1, 13, 29, 57, 63, 183, 327, 473, 1943, 213, 3973, 16289, 2739}}, +{2208, 15, 3032, {1, 3, 7, 9, 25, 15, 75, 185, 335, 881, 1041, 3339, 4471, 6823, 21121}}, +{2209, 15, 3053, {1, 3, 3, 13, 23, 3, 57, 117, 511, 927, 771, 3229, 949, 15487, 11963}}, +{2210, 15, 3054, {1, 1, 3, 7, 27, 19, 55, 207, 331, 705, 1945, 797, 7125, 10493, 16585}}, +{2211, 15, 3065, {1, 3, 1, 1, 29, 7, 91, 93, 459, 93, 1501, 1927, 6415, 16255, 9823}}, +{2212, 15, 3071, {1, 1, 5, 5, 31, 11, 97, 179, 505, 807, 877, 4003, 4377, 8851, 4239}}, +{2213, 15, 3076, {1, 1, 3, 5, 11, 25, 17, 131, 23, 95, 311, 1429, 2029, 13091, 23739}}, +{2214, 15, 3088, {1, 1, 3, 11, 13, 27, 33, 127, 481, 117, 1127, 1619, 6493, 8507, 6615}}, +{2215, 15, 3107, {1, 3, 1, 13, 19, 27, 89, 101, 27, 235, 1579, 1701, 4421, 16037, 16239}}, +{2216, 15, 3146, {1, 3, 1, 15, 1, 15, 3, 117, 317, 475, 1691, 2423, 5519, 1703, 2969}}, +{2217, 15, 3148, {1, 1, 3, 1, 13, 15, 19, 37, 237, 467, 1321, 453, 2169, 13313, 31499}}, +{2218, 15, 3159, {1, 1, 3, 15, 29, 55, 31, 199, 85, 285, 967, 367, 3941, 151, 20587}}, +{2219, 15, 3165, {1, 3, 7, 15, 7, 13, 31, 35, 117, 543, 1179, 3441, 3039, 11225, 30229}}, +{2220, 15, 3170, {1, 1, 3, 15, 3, 43, 1, 63, 353, 395, 1775, 3493, 5175, 13193, 25343}}, +{2221, 15, 3179, {1, 3, 3, 15, 17, 25, 57, 205, 411, 83, 1877, 2093, 5599, 12115, 8751}}, +{2222, 15, 3182, {1, 1, 1, 11, 15, 9, 115, 99, 85, 887, 987, 4015, 7077, 3739, 21505}}, +{2223, 15, 3205, {1, 3, 1, 11, 25, 39, 127, 37, 329, 273, 1531, 3211, 7115, 15501, 26575}}, +{2224, 15, 3212, {1, 1, 5, 13, 15, 3, 3, 101, 431, 645, 493, 723, 8083, 1423, 14879}}, +{2225, 15, 3218, {1, 3, 3, 5, 31, 35, 37, 131, 259, 849, 325, 3403, 3627, 3295, 30885}}, +{2226, 15, 3220, {1, 3, 7, 1, 9, 3, 31, 201, 379, 907, 1005, 3333, 7457, 2533, 30357}}, +{2227, 15, 3223, {1, 3, 1, 9, 7, 7, 95, 103, 121, 157, 895, 2683, 5839, 12403, 14327}}, +{2228, 15, 3227, {1, 3, 7, 3, 13, 5, 55, 233, 3, 855, 859, 1115, 3883, 8041, 3353}}, +{2229, 15, 3233, {1, 1, 5, 9, 3, 55, 99, 79, 263, 831, 1579, 205, 5673, 1999, 14879}}, +{2230, 15, 3234, {1, 3, 1, 5, 17, 25, 85, 19, 189, 141, 877, 667, 4461, 11915, 23247}}, +{2231, 15, 3254, {1, 1, 5, 5, 1, 35, 15, 219, 469, 725, 1793, 3683, 3661, 15627, 30197}}, +{2232, 15, 3263, {1, 1, 7, 5, 27, 3, 41, 153, 431, 487, 759, 1345, 6735, 9937, 26277}}, +{2233, 15, 3268, {1, 1, 1, 11, 11, 13, 41, 121, 265, 465, 1447, 5, 3407, 1907, 10037}}, +{2234, 15, 3272, {1, 3, 5, 9, 15, 63, 5, 7, 407, 83, 365, 3687, 7721, 6973, 16967}}, +{2235, 15, 3277, {1, 1, 7, 7, 5, 41, 75, 155, 417, 565, 1199, 1111, 2823, 10703, 22561}}, +{2236, 15, 3292, {1, 3, 7, 5, 7, 43, 39, 185, 105, 327, 1977, 1137, 3261, 10583, 11661}}, +{2237, 15, 3295, {1, 3, 7, 7, 19, 19, 103, 137, 169, 273, 1357, 3413, 7647, 10531, 32489}}, +{2238, 15, 3296, {1, 1, 3, 13, 13, 3, 81, 23, 161, 295, 735, 2031, 1027, 15513, 20165}}, +{2239, 15, 3301, {1, 1, 5, 1, 15, 1, 91, 35, 375, 207, 1417, 1115, 2237, 11749, 8509}}, +{2240, 15, 3306, {1, 3, 7, 3, 25, 51, 49, 219, 195, 417, 1523, 3953, 5739, 7499, 27071}}, +{2241, 15, 3313, {1, 1, 3, 11, 23, 29, 19, 81, 421, 633, 513, 547, 7545, 29, 11909}}, +{2242, 15, 3346, {1, 1, 1, 7, 13, 61, 33, 243, 221, 231, 111, 879, 2861, 1795, 27531}}, +{2243, 15, 3367, {1, 3, 7, 3, 19, 21, 1, 141, 159, 605, 969, 3013, 6583, 2447, 19919}}, +{2244, 15, 3371, {1, 3, 7, 3, 31, 9, 91, 83, 29, 873, 929, 43, 2253, 12539, 23951}}, +{2245, 15, 3373, {1, 1, 5, 3, 31, 15, 87, 105, 319, 973, 1489, 3417, 3377, 15749, 2357}}, +{2246, 15, 3374, {1, 1, 3, 15, 7, 23, 3, 81, 383, 419, 713, 997, 6873, 593, 285}}, +{2247, 15, 3376, {1, 3, 3, 1, 29, 13, 29, 101, 441, 693, 2039, 2951, 5921, 12129, 12053}}, +{2248, 15, 3382, {1, 1, 3, 15, 9, 29, 97, 117, 421, 433, 1017, 125, 3607, 9415, 6843}}, +{2249, 15, 3388, {1, 3, 5, 9, 11, 13, 75, 155, 413, 75, 109, 1599, 6161, 16115, 12621}}, +{2250, 15, 3391, {1, 3, 3, 3, 11, 13, 49, 225, 401, 599, 1815, 1643, 7853, 13305, 25195}}, +{2251, 15, 3403, {1, 3, 7, 5, 15, 11, 27, 95, 387, 931, 549, 2179, 3397, 15883, 16563}}, +{2252, 15, 3406, {1, 1, 7, 3, 9, 39, 121, 5, 453, 27, 1747, 657, 2593, 1289, 12577}}, +{2253, 15, 3413, {1, 3, 7, 5, 25, 25, 109, 49, 185, 985, 631, 803, 3865, 8955, 17901}}, +{2254, 15, 3420, {1, 1, 3, 13, 3, 59, 47, 49, 139, 275, 1471, 2995, 5593, 14011, 18741}}, +{2255, 15, 3427, {1, 1, 5, 15, 29, 11, 97, 225, 245, 291, 1873, 2365, 767, 3419, 14943}}, +{2256, 15, 3441, {1, 3, 3, 5, 15, 17, 19, 209, 359, 891, 1375, 2003, 7247, 5299, 28841}}, +{2257, 15, 3453, {1, 3, 7, 7, 9, 55, 105, 35, 77, 47, 1023, 13, 2901, 847, 10265}}, +{2258, 15, 3464, {1, 3, 7, 7, 7, 5, 65, 233, 141, 277, 1333, 2357, 443, 7257, 21979}}, +{2259, 15, 3469, {1, 3, 5, 11, 13, 63, 41, 87, 193, 737, 1085, 2317, 7869, 10149, 12163}}, +{2260, 15, 3481, {1, 3, 1, 1, 7, 57, 75, 235, 461, 857, 155, 2679, 5925, 2565, 10881}}, +{2261, 15, 3488, {1, 1, 7, 15, 13, 41, 63, 135, 433, 387, 1943, 2249, 5469, 11679, 28661}}, +{2262, 15, 3497, {1, 3, 3, 13, 5, 3, 103, 161, 367, 649, 789, 1179, 4163, 5699, 16787}}, +{2263, 15, 3503, {1, 3, 7, 7, 31, 13, 45, 141, 113, 769, 1035, 457, 6709, 14989, 27311}}, +{2264, 15, 3511, {1, 1, 3, 1, 1, 43, 119, 145, 111, 593, 1139, 417, 637, 4437, 17285}}, +{2265, 15, 3515, {1, 3, 5, 9, 9, 33, 19, 99, 201, 685, 1793, 2621, 6857, 8769, 5623}}, +{2266, 15, 3525, {1, 3, 5, 5, 23, 43, 27, 189, 325, 415, 215, 1253, 3599, 1215, 10093}}, +{2267, 15, 3529, {1, 1, 3, 13, 11, 35, 113, 173, 503, 19, 1459, 503, 5363, 3967, 13945}}, +{2268, 15, 3547, {1, 1, 5, 11, 31, 49, 13, 173, 199, 623, 1231, 2495, 6581, 7957, 25321}}, +{2269, 15, 3550, {1, 3, 1, 9, 23, 3, 79, 149, 505, 937, 1839, 3701, 1673, 8589, 8031}}, +{2270, 15, 3573, {1, 3, 3, 5, 21, 27, 107, 11, 505, 407, 177, 3593, 4729, 12773, 11685}}, +{2271, 15, 3583, {1, 3, 1, 11, 29, 49, 79, 53, 61, 895, 2035, 563, 5613, 6065, 6207}}, +{2272, 15, 3594, {1, 1, 3, 7, 1, 53, 3, 215, 99, 865, 1749, 3533, 4305, 1243, 28463}}, +{2273, 15, 3607, {1, 1, 1, 13, 31, 59, 115, 53, 403, 909, 847, 103, 4967, 10623, 30073}}, +{2274, 15, 3613, {1, 1, 7, 5, 27, 1, 119, 83, 457, 81, 395, 811, 6221, 14337, 541}}, +{2275, 15, 3624, {1, 1, 5, 5, 5, 53, 83, 117, 269, 327, 875, 101, 3343, 715, 26339}}, +{2276, 15, 3630, {1, 1, 1, 11, 31, 39, 121, 147, 305, 383, 1211, 1897, 7647, 11687, 18907}}, +{2277, 15, 3635, {1, 3, 3, 15, 23, 53, 17, 85, 395, 503, 61, 1745, 4713, 4641, 13787}}, +{2278, 15, 3642, {1, 1, 7, 7, 27, 1, 105, 29, 287, 37, 959, 975, 4427, 4705, 10175}}, +{2279, 15, 3644, {1, 3, 3, 5, 7, 63, 57, 199, 27, 107, 1095, 3923, 6969, 713, 11619}}, +{2280, 15, 3650, {1, 3, 5, 1, 5, 49, 85, 45, 449, 45, 49, 3419, 1109, 455, 15917}}, +{2281, 15, 3679, {1, 1, 1, 5, 13, 15, 39, 27, 467, 85, 1537, 3055, 1977, 8829, 25231}}, +{2282, 15, 3690, {1, 1, 1, 15, 1, 47, 23, 121, 147, 547, 1865, 1491, 779, 3515, 12667}}, +{2283, 15, 3698, {1, 3, 3, 1, 19, 5, 77, 101, 1, 721, 1149, 2967, 4925, 11889, 16655}}, +{2284, 15, 3704, {1, 1, 1, 7, 1, 35, 95, 239, 127, 855, 1031, 455, 7631, 6039, 21983}}, +{2285, 15, 3707, {1, 3, 7, 9, 23, 43, 75, 105, 335, 223, 1825, 3217, 413, 7473, 30005}}, +{2286, 15, 3713, {1, 1, 5, 15, 29, 9, 43, 145, 223, 523, 511, 323, 5955, 11141, 22533}}, +{2287, 15, 3754, {1, 1, 3, 1, 13, 61, 93, 133, 461, 233, 383, 693, 7347, 3165, 27493}}, +{2288, 15, 3756, {1, 3, 7, 1, 13, 45, 113, 207, 53, 1007, 815, 1145, 2937, 289, 22195}}, +{2289, 15, 3761, {1, 3, 5, 5, 19, 17, 113, 89, 19, 1023, 1625, 3277, 697, 5187, 15433}}, +{2290, 15, 3776, {1, 1, 3, 13, 21, 15, 15, 197, 409, 391, 1993, 2475, 3189, 4431, 29585}}, +{2291, 15, 3781, {1, 1, 5, 5, 31, 7, 111, 231, 187, 543, 45, 3863, 3811, 4573, 4437}}, +{2292, 15, 3788, {1, 3, 3, 7, 19, 7, 123, 23, 79, 513, 189, 3663, 1291, 13257, 8949}}, +{2293, 15, 3791, {1, 1, 5, 13, 3, 53, 109, 133, 157, 223, 651, 3059, 6055, 14455, 26903}}, +{2294, 15, 3794, {1, 1, 7, 1, 23, 63, 59, 229, 17, 199, 643, 637, 7631, 13647, 7399}}, +{2295, 15, 3806, {1, 1, 1, 3, 1, 51, 119, 67, 335, 543, 913, 3565, 4795, 13405, 7463}}, +{2296, 15, 3841, {1, 1, 5, 3, 31, 5, 91, 97, 23, 223, 837, 1353, 1929, 12043, 10039}}, +{2297, 15, 3848, {1, 3, 5, 7, 19, 3, 79, 171, 301, 687, 1545, 355, 4709, 12965, 16797}}, +{2298, 15, 3851, {1, 3, 5, 11, 11, 49, 111, 123, 251, 569, 1605, 401, 5439, 13519, 8847}}, +{2299, 15, 3856, {1, 3, 1, 3, 3, 53, 7, 55, 369, 633, 181, 4037, 2993, 15815, 8661}}, +{2300, 15, 3868, {1, 1, 1, 13, 31, 29, 75, 167, 279, 597, 539, 1791, 8013, 4387, 9717}}, +{2301, 15, 3875, {1, 1, 5, 7, 17, 15, 99, 183, 211, 49, 225, 3143, 4537, 13141, 23375}}, +{2302, 15, 3882, {1, 1, 3, 5, 3, 59, 25, 149, 467, 69, 1939, 1007, 2765, 4693, 29815}}, +{2303, 15, 3884, {1, 3, 1, 3, 17, 33, 119, 189, 447, 251, 879, 177, 5395, 13487, 9587}}, +{2304, 15, 3889, {1, 3, 3, 7, 15, 31, 115, 3, 21, 817, 475, 1849, 6041, 12541, 18701}}, +{2305, 15, 3892, {1, 1, 5, 13, 31, 33, 7, 115, 361, 587, 1919, 1007, 3537, 7493, 19357}}, +{2306, 15, 3919, {1, 3, 7, 13, 23, 35, 15, 111, 123, 633, 805, 1983, 2109, 14477, 4985}}, +{2307, 15, 3921, {1, 3, 3, 11, 25, 13, 11, 205, 97, 893, 927, 1291, 4007, 13593, 29693}}, +{2308, 15, 3958, {1, 3, 5, 15, 9, 13, 121, 89, 215, 823, 1389, 1581, 8095, 4707, 16061}}, +{2309, 15, 3961, {1, 3, 1, 3, 23, 39, 83, 23, 47, 941, 1419, 2389, 5699, 7519, 5829}}, +{2310, 15, 3973, {1, 3, 1, 9, 23, 43, 79, 237, 93, 203, 695, 225, 5645, 3591, 16775}}, +{2311, 15, 3977, {1, 3, 5, 3, 15, 19, 89, 129, 375, 125, 225, 1323, 2267, 11607, 17937}}, +{2312, 15, 3985, {1, 3, 3, 1, 31, 37, 93, 133, 377, 959, 707, 621, 7179, 15493, 30287}}, +{2313, 15, 3991, {1, 3, 7, 13, 5, 13, 15, 1, 37, 525, 1641, 2829, 6139, 4069, 19187}}, +{2314, 15, 4004, {1, 3, 3, 9, 17, 3, 67, 97, 375, 845, 403, 973, 3919, 2275, 31627}}, +{2315, 15, 4007, {1, 1, 3, 3, 25, 7, 91, 67, 271, 465, 481, 3477, 5229, 241, 8411}}, +{2316, 15, 4019, {1, 1, 1, 11, 1, 41, 109, 115, 75, 787, 309, 2887, 179, 9073, 13895}}, +{2317, 15, 4045, {1, 3, 3, 15, 11, 31, 113, 91, 303, 907, 1933, 2167, 7799, 11821, 20659}}, +{2318, 15, 4054, {1, 3, 1, 15, 27, 17, 21, 41, 99, 137, 1397, 929, 5819, 11977, 6201}}, +{2319, 15, 4057, {1, 1, 7, 13, 21, 29, 47, 239, 287, 305, 899, 2711, 1723, 3315, 199}}, +{2320, 15, 4058, {1, 1, 1, 3, 31, 21, 101, 149, 107, 761, 1197, 1703, 4803, 8411, 10649}}, +{2321, 15, 4070, {1, 1, 5, 15, 23, 45, 109, 221, 85, 619, 169, 1013, 3305, 9451, 26189}}, +{2322, 15, 4101, {1, 3, 5, 13, 7, 57, 19, 153, 231, 627, 565, 1595, 6309, 5037, 25505}}, +{2323, 15, 4113, {1, 1, 7, 7, 1, 45, 43, 79, 271, 59, 219, 2255, 1785, 7919, 24061}}, +{2324, 15, 4114, {1, 3, 7, 5, 31, 57, 57, 231, 33, 227, 531, 679, 1141, 85, 19777}}, +{2325, 15, 4119, {1, 1, 3, 15, 11, 59, 59, 169, 459, 693, 907, 1191, 3783, 12809, 6263}}, +{2326, 15, 4129, {1, 1, 7, 13, 19, 21, 105, 65, 267, 141, 1547, 781, 7295, 13565, 17775}}, +{2327, 15, 4141, {1, 3, 3, 5, 31, 63, 97, 155, 477, 661, 329, 797, 2539, 4061, 10537}}, +{2328, 15, 4142, {1, 3, 3, 7, 11, 17, 119, 89, 71, 103, 1043, 413, 6035, 12829, 11559}}, +{2329, 15, 4147, {1, 3, 1, 9, 5, 19, 53, 185, 103, 629, 2015, 1257, 5163, 10581, 13449}}, +{2330, 15, 4149, {1, 1, 1, 5, 23, 35, 25, 129, 179, 959, 677, 2249, 6315, 12151, 3459}}, +{2331, 15, 4150, {1, 1, 1, 1, 9, 47, 93, 45, 35, 45, 265, 2065, 6225, 25, 27135}}, +{2332, 15, 4164, {1, 3, 1, 11, 21, 53, 127, 163, 311, 667, 597, 1561, 4515, 23, 9551}}, +{2333, 15, 4168, {1, 1, 3, 3, 7, 47, 105, 211, 241, 95, 389, 899, 6001, 8129, 19889}}, +{2334, 15, 4186, {1, 1, 3, 15, 29, 45, 9, 27, 483, 799, 269, 1811, 4493, 7109, 22149}}, +{2335, 15, 4198, {1, 1, 3, 3, 29, 5, 57, 205, 187, 615, 1677, 3987, 4577, 8799, 16311}}, +{2336, 15, 4207, {1, 1, 5, 3, 15, 5, 91, 101, 319, 445, 1261, 2039, 4071, 8249, 11611}}, +{2337, 15, 4221, {1, 3, 7, 11, 19, 17, 1, 185, 153, 579, 1001, 2031, 2295, 16335, 24771}}, +{2338, 15, 4225, {1, 3, 3, 15, 13, 45, 93, 185, 319, 667, 1085, 93, 577, 11551, 11355}}, +{2339, 15, 4231, {1, 1, 7, 13, 3, 61, 45, 191, 51, 981, 1151, 2715, 2503, 4147, 4587}}, +{2340, 15, 4238, {1, 1, 3, 3, 27, 17, 71, 141, 57, 981, 1033, 333, 4639, 15885, 1039}}, +{2341, 15, 4243, {1, 3, 3, 15, 21, 55, 33, 123, 357, 893, 829, 4045, 5027, 11727, 13357}}, +{2342, 15, 4249, {1, 1, 1, 9, 31, 47, 27, 223, 311, 205, 179, 3411, 4019, 10997, 28115}}, +{2343, 15, 4250, {1, 3, 5, 1, 3, 39, 15, 7, 501, 641, 735, 295, 2005, 12641, 19779}}, +{2344, 15, 4252, {1, 3, 3, 1, 15, 1, 75, 243, 329, 267, 1323, 2285, 5389, 11881, 15737}}, +{2345, 15, 4259, {1, 1, 3, 3, 13, 17, 101, 99, 209, 939, 1147, 3221, 5159, 3435, 183}}, +{2346, 15, 4279, {1, 1, 1, 1, 27, 43, 29, 179, 179, 659, 807, 313, 4165, 963, 11317}}, +{2347, 15, 4285, {1, 1, 3, 13, 9, 51, 125, 245, 381, 555, 1383, 3887, 2045, 12829, 12029}}, +{2348, 15, 4288, {1, 1, 1, 9, 29, 39, 55, 127, 235, 617, 1553, 3133, 7735, 14725, 16733}}, +{2349, 15, 4303, {1, 1, 3, 5, 15, 9, 47, 217, 89, 987, 1083, 1045, 4745, 12915, 13719}}, +{2350, 15, 4312, {1, 3, 3, 7, 23, 3, 35, 79, 45, 435, 1549, 2645, 2831, 10359, 10041}}, +{2351, 15, 4322, {1, 1, 7, 15, 31, 61, 25, 223, 511, 319, 487, 1677, 739, 7097, 18417}}, +{2352, 15, 4327, {1, 1, 7, 5, 19, 21, 123, 237, 299, 367, 1341, 1449, 2949, 8629, 11051}}, +{2353, 15, 4336, {1, 3, 7, 7, 31, 53, 125, 33, 257, 719, 1297, 895, 5095, 10237, 12309}}, +{2354, 15, 4359, {1, 3, 1, 5, 31, 59, 73, 211, 97, 209, 1289, 4033, 6143, 14275, 7997}}, +{2355, 15, 4384, {1, 1, 5, 7, 31, 5, 75, 105, 389, 985, 9, 4033, 1185, 7821, 19083}}, +{2356, 15, 4387, {1, 1, 1, 15, 11, 39, 73, 253, 275, 813, 25, 3441, 2493, 5873, 3739}}, +{2357, 15, 4401, {1, 3, 7, 1, 31, 19, 119, 5, 109, 397, 1329, 3347, 5941, 12449, 2533}}, +{2358, 15, 4407, {1, 1, 1, 1, 5, 59, 61, 175, 435, 985, 65, 3781, 5425, 15073, 16361}}, +{2359, 15, 4428, {1, 3, 5, 7, 31, 13, 53, 87, 69, 305, 1455, 273, 2197, 4277, 24423}}, +{2360, 15, 4436, {1, 3, 3, 15, 13, 13, 91, 171, 71, 583, 15, 3599, 6801, 10041, 26097}}, +{2361, 15, 4450, {1, 3, 3, 5, 5, 13, 91, 225, 63, 69, 1795, 341, 461, 5015, 9471}}, +{2362, 15, 4452, {1, 3, 7, 5, 21, 55, 109, 39, 459, 925, 229, 2855, 5807, 2117, 31739}}, +{2363, 15, 4459, {1, 1, 3, 3, 1, 5, 17, 177, 401, 727, 1555, 3097, 1243, 5933, 14579}}, +{2364, 15, 4461, {1, 1, 7, 3, 19, 19, 37, 87, 105, 73, 197, 4067, 6237, 10553, 9207}}, +{2365, 15, 4470, {1, 1, 3, 15, 1, 55, 119, 115, 441, 3, 1003, 1631, 197, 12929, 25385}}, +{2366, 15, 4483, {1, 3, 7, 11, 31, 1, 119, 49, 467, 647, 685, 2771, 3689, 11049, 26787}}, +{2367, 15, 4485, {1, 1, 1, 11, 19, 19, 21, 73, 459, 935, 615, 371, 1099, 14407, 10375}}, +{2368, 15, 4486, {1, 3, 5, 13, 15, 3, 107, 179, 259, 677, 1101, 315, 7673, 14639, 11241}}, +{2369, 15, 4492, {1, 1, 7, 9, 15, 21, 93, 25, 349, 23, 1087, 27, 5691, 12997, 29301}}, +{2370, 15, 4497, {1, 3, 3, 5, 7, 43, 1, 195, 69, 753, 1315, 2629, 3259, 5595, 19439}}, +{2371, 15, 4514, {1, 3, 5, 5, 31, 9, 75, 217, 217, 197, 1925, 2033, 3585, 15219, 20251}}, +{2372, 15, 4533, {1, 1, 5, 11, 17, 31, 3, 209, 315, 49, 949, 2267, 4611, 4375, 16431}}, +{2373, 15, 4537, {1, 1, 7, 9, 17, 35, 13, 115, 119, 553, 1527, 2857, 3599, 391, 25101}}, +{2374, 15, 4546, {1, 3, 3, 15, 13, 59, 17, 177, 301, 719, 909, 1663, 5033, 1129, 529}}, +{2375, 15, 4551, {1, 1, 7, 5, 15, 13, 99, 157, 379, 975, 1019, 2251, 3807, 10621, 351}}, +{2376, 15, 4555, {1, 3, 3, 13, 5, 57, 5, 31, 361, 981, 883, 3723, 2259, 5151, 11783}}, +{2377, 15, 4560, {1, 1, 1, 13, 1, 43, 125, 19, 77, 509, 1817, 3795, 1863, 8401, 27253}}, +{2378, 15, 4569, {1, 1, 5, 7, 19, 41, 21, 151, 89, 189, 769, 1937, 4497, 13607, 24691}}, +{2379, 15, 4576, {1, 1, 1, 9, 21, 9, 1, 195, 31, 907, 1719, 1549, 809, 13629, 16597}}, +{2380, 15, 4582, {1, 1, 1, 3, 21, 61, 103, 219, 311, 849, 523, 21, 4533, 6367, 3935}}, +{2381, 15, 4586, {1, 1, 7, 9, 7, 33, 77, 19, 489, 933, 1729, 1813, 6741, 10701, 7}}, +{2382, 15, 4609, {1, 1, 1, 5, 23, 53, 43, 63, 453, 209, 1313, 2847, 2641, 13783, 14983}}, +{2383, 15, 4610, {1, 3, 7, 7, 15, 45, 83, 241, 509, 659, 213, 221, 5205, 6019, 18945}}, +{2384, 15, 4612, {1, 1, 5, 9, 25, 43, 37, 9, 191, 505, 765, 295, 953, 1045, 11203}}, +{2385, 15, 4649, {1, 3, 7, 11, 5, 49, 45, 177, 379, 695, 355, 1711, 7747, 497, 7597}}, +{2386, 15, 4652, {1, 1, 5, 13, 23, 47, 101, 145, 301, 207, 195, 2225, 8093, 15345, 14097}}, +{2387, 15, 4672, {1, 3, 7, 13, 9, 9, 55, 223, 343, 921, 1825, 3281, 2627, 855, 27651}}, +{2388, 15, 4677, {1, 1, 7, 1, 21, 1, 67, 149, 433, 111, 577, 3675, 495, 9043, 23613}}, +{2389, 15, 4684, {1, 3, 1, 13, 9, 39, 37, 73, 117, 559, 1131, 2511, 7599, 8393, 24747}}, +{2390, 15, 4690, {1, 3, 3, 7, 11, 15, 85, 229, 7, 21, 1649, 739, 375, 13991, 27053}}, +{2391, 15, 4695, {1, 1, 5, 5, 15, 41, 49, 117, 173, 825, 1343, 377, 1789, 12519, 30667}}, +{2392, 15, 4696, {1, 1, 7, 15, 9, 11, 97, 99, 347, 729, 9, 1703, 1177, 5189, 9061}}, +{2393, 15, 4702, {1, 1, 5, 11, 15, 25, 99, 63, 89, 675, 561, 215, 8111, 3955, 24635}}, +{2394, 15, 4705, {1, 1, 1, 1, 7, 53, 99, 193, 233, 731, 733, 1883, 7783, 14413, 14003}}, +{2395, 15, 4717, {1, 3, 5, 7, 31, 23, 45, 153, 337, 293, 443, 2301, 5135, 7455, 13123}}, +{2396, 15, 4726, {1, 3, 1, 3, 23, 53, 23, 165, 53, 875, 1543, 1035, 4247, 5101, 28445}}, +{2397, 15, 4736, {1, 1, 1, 15, 13, 41, 77, 93, 205, 743, 1101, 1413, 2371, 7183, 12337}}, +{2398, 15, 4753, {1, 1, 3, 15, 17, 63, 25, 101, 147, 149, 1207, 3525, 2661, 9539, 11145}}, +{2399, 15, 4754, {1, 3, 1, 9, 17, 5, 3, 35, 389, 909, 1017, 2803, 5243, 13025, 8851}}, +{2400, 15, 4756, {1, 1, 7, 15, 19, 27, 69, 91, 71, 547, 1421, 831, 6969, 5517, 28233}}, +{2401, 15, 4775, {1, 1, 3, 3, 17, 45, 55, 63, 263, 819, 1211, 2739, 655, 13269, 22281}}, +{2402, 15, 4801, {1, 3, 1, 5, 23, 13, 81, 251, 83, 551, 491, 1029, 3561, 357, 23393}}, +{2403, 15, 4819, {1, 3, 1, 13, 25, 27, 93, 143, 407, 403, 1395, 1733, 3187, 1917, 31453}}, +{2404, 15, 4828, {1, 1, 7, 13, 3, 21, 85, 113, 483, 461, 1343, 561, 2081, 10857, 24253}}, +{2405, 15, 4838, {1, 1, 1, 1, 11, 11, 53, 135, 25, 163, 1729, 617, 1533, 10881, 16041}}, +{2406, 15, 4852, {1, 1, 5, 1, 3, 49, 125, 139, 77, 891, 815, 3431, 4875, 12513, 4595}}, +{2407, 15, 4856, {1, 1, 1, 1, 27, 63, 111, 109, 421, 425, 345, 1613, 5447, 1357, 32413}}, +{2408, 15, 4873, {1, 3, 5, 3, 17, 5, 37, 171, 259, 281, 1003, 2901, 3241, 15557, 21415}}, +{2409, 15, 4887, {1, 1, 5, 11, 15, 55, 75, 199, 493, 215, 1625, 2345, 7873, 2325, 11003}}, +{2410, 15, 4891, {1, 3, 7, 1, 21, 33, 23, 5, 495, 941, 1185, 475, 5799, 15161, 10677}}, +{2411, 15, 4904, {1, 1, 5, 9, 31, 37, 37, 29, 217, 389, 297, 3097, 7319, 2601, 15307}}, +{2412, 15, 4912, {1, 3, 7, 5, 7, 45, 111, 167, 297, 275, 1669, 2489, 1511, 15753, 1289}}, +{2413, 15, 4921, {1, 3, 1, 7, 3, 45, 19, 11, 189, 199, 1227, 2647, 1897, 9077, 17189}}, +{2414, 15, 4936, {1, 1, 1, 13, 15, 39, 19, 179, 147, 341, 283, 3029, 7599, 8937, 18761}}, +{2415, 15, 4941, {1, 3, 3, 9, 3, 11, 41, 255, 365, 835, 921, 389, 919, 15223, 14541}}, +{2416, 15, 4942, {1, 1, 3, 3, 5, 37, 29, 203, 313, 271, 1207, 487, 3711, 3811, 26757}}, +{2417, 15, 4963, {1, 3, 7, 9, 19, 53, 49, 139, 351, 537, 1681, 1595, 5399, 13839, 28685}}, +{2418, 15, 4984, {1, 3, 1, 1, 15, 35, 21, 37, 247, 891, 1855, 1243, 3137, 10381, 30379}}, +{2419, 15, 4990, {1, 3, 7, 5, 9, 47, 91, 25, 479, 337, 781, 3545, 1045, 9491, 22853}}, +{2420, 15, 5005, {1, 1, 5, 15, 19, 31, 81, 5, 117, 923, 565, 2443, 7383, 1795, 11685}}, +{2421, 15, 5013, {1, 3, 3, 5, 17, 15, 21, 245, 489, 889, 2047, 2737, 7445, 14785, 13401}}, +{2422, 15, 5020, {1, 1, 1, 15, 19, 45, 67, 117, 299, 607, 953, 743, 6863, 12123, 6701}}, +{2423, 15, 5039, {1, 1, 3, 1, 1, 43, 19, 129, 345, 861, 209, 2387, 7205, 7131, 8235}}, +{2424, 15, 5048, {1, 3, 5, 1, 1, 13, 75, 99, 333, 157, 23, 1217, 1857, 15479, 16031}}, +{2425, 15, 5062, {1, 3, 3, 11, 7, 61, 119, 89, 491, 401, 227, 1739, 3807, 16003, 2875}}, +{2426, 15, 5080, {1, 3, 7, 15, 13, 55, 3, 159, 405, 593, 975, 361, 2563, 6061, 28087}}, +{2427, 15, 5085, {1, 1, 3, 13, 19, 5, 5, 9, 119, 41, 33, 1111, 4443, 4663, 28841}}, +{2428, 15, 5086, {1, 1, 7, 7, 25, 59, 125, 255, 49, 947, 1673, 2947, 6369, 2267, 8813}}, +{2429, 15, 5095, {1, 1, 5, 15, 25, 25, 111, 193, 217, 193, 821, 2779, 69, 2957, 27043}}, +{2430, 15, 5096, {1, 3, 5, 7, 21, 19, 51, 157, 203, 487, 1745, 1875, 911, 14071, 7557}}, +{2431, 15, 5102, {1, 1, 5, 9, 3, 15, 55, 73, 313, 245, 1061, 1929, 3035, 607, 11563}}, +{2432, 15, 5107, {1, 1, 5, 7, 3, 57, 105, 121, 461, 43, 803, 1801, 4059, 2157, 17547}}, +{2433, 15, 5141, {1, 3, 7, 7, 19, 11, 1, 121, 499, 841, 601, 3515, 2969, 13697, 8917}}, +{2434, 15, 5145, {1, 3, 3, 3, 13, 35, 113, 231, 391, 689, 697, 2871, 7387, 715, 27005}}, +{2435, 15, 5148, {1, 1, 1, 13, 19, 5, 17, 43, 175, 291, 987, 1917, 7635, 15655, 10689}}, +{2436, 15, 5157, {1, 1, 7, 15, 19, 37, 121, 243, 125, 623, 1231, 29, 2325, 5147, 21435}}, +{2437, 15, 5158, {1, 3, 5, 15, 25, 27, 57, 187, 77, 401, 1489, 2977, 5415, 3381, 2551}}, +{2438, 15, 5162, {1, 1, 1, 7, 1, 1, 85, 27, 115, 559, 9, 2365, 711, 5733, 2819}}, +{2439, 15, 5172, {1, 3, 1, 15, 9, 29, 61, 113, 169, 349, 591, 1061, 6041, 7613, 23691}}, +{2440, 15, 5182, {1, 1, 5, 1, 13, 45, 49, 227, 345, 563, 87, 3597, 3961, 7205, 8441}}, +{2441, 15, 5184, {1, 1, 1, 5, 3, 21, 121, 183, 463, 83, 1365, 539, 1485, 10063, 24867}}, +{2442, 15, 5193, {1, 3, 5, 5, 3, 61, 101, 237, 41, 147, 1907, 3049, 7583, 8283, 6099}}, +{2443, 15, 5199, {1, 3, 1, 15, 31, 57, 19, 155, 445, 805, 1793, 207, 1975, 3357, 14281}}, +{2444, 15, 5201, {1, 1, 7, 13, 9, 39, 27, 73, 165, 345, 543, 4095, 133, 10469, 11573}}, +{2445, 15, 5204, {1, 1, 7, 15, 17, 57, 99, 81, 359, 367, 1057, 1173, 4225, 15127, 2615}}, +{2446, 15, 5211, {1, 3, 5, 3, 31, 23, 113, 111, 495, 947, 1625, 1195, 2053, 1509, 1347}}, +{2447, 15, 5223, {1, 1, 5, 5, 9, 47, 25, 63, 455, 107, 771, 3815, 3827, 16287, 11615}}, +{2448, 15, 5230, {1, 1, 7, 9, 17, 61, 51, 215, 63, 123, 1253, 3927, 721, 9647, 3283}}, +{2449, 15, 5232, {1, 1, 5, 15, 11, 17, 83, 255, 473, 107, 681, 763, 7855, 8043, 31503}}, +{2450, 15, 5253, {1, 3, 1, 7, 7, 31, 37, 5, 253, 155, 2017, 609, 1421, 14927, 25241}}, +{2451, 15, 5257, {1, 3, 3, 13, 31, 25, 21, 241, 431, 193, 681, 2265, 5091, 11479, 21443}}, +{2452, 15, 5260, {1, 3, 5, 5, 15, 9, 49, 255, 157, 995, 631, 1995, 3605, 9085, 24245}}, +{2453, 15, 5284, {1, 3, 3, 7, 19, 31, 85, 153, 493, 951, 451, 1587, 6609, 3681, 13205}}, +{2454, 15, 5306, {1, 1, 5, 1, 17, 41, 107, 231, 307, 361, 575, 3239, 3443, 16159, 20625}}, +{2455, 15, 5331, {1, 1, 7, 9, 31, 49, 93, 79, 181, 117, 1241, 3645, 4901, 12599, 13247}}, +{2456, 15, 5334, {1, 3, 3, 9, 7, 31, 127, 201, 11, 199, 1851, 23, 5667, 8159, 20951}}, +{2457, 15, 5364, {1, 3, 3, 7, 3, 37, 29, 189, 65, 461, 769, 321, 6577, 16223, 16865}}, +{2458, 15, 5367, {1, 1, 5, 11, 1, 13, 91, 167, 33, 111, 1445, 1047, 2479, 12623, 22893}}, +{2459, 15, 5371, {1, 1, 3, 1, 3, 1, 47, 185, 329, 903, 1651, 3005, 907, 1255, 8303}}, +{2460, 15, 5382, {1, 3, 5, 13, 19, 31, 5, 233, 265, 769, 1303, 2503, 2229, 14019, 20257}}, +{2461, 15, 5386, {1, 3, 7, 3, 27, 11, 67, 195, 5, 661, 125, 3761, 7211, 16043, 7267}}, +{2462, 15, 5399, {1, 1, 1, 3, 27, 13, 115, 25, 473, 417, 1751, 2223, 2099, 5913, 14273}}, +{2463, 15, 5400, {1, 3, 7, 15, 13, 53, 99, 115, 225, 737, 1621, 539, 4131, 471, 31865}}, +{2464, 15, 5409, {1, 1, 5, 5, 25, 19, 39, 207, 153, 569, 1755, 2477, 3065, 7383, 29919}}, +{2465, 15, 5415, {1, 3, 5, 11, 13, 59, 33, 3, 435, 273, 701, 3819, 7291, 11803, 26111}}, +{2466, 15, 5416, {1, 1, 3, 9, 29, 19, 71, 59, 93, 1019, 887, 83, 4675, 7541, 26821}}, +{2467, 15, 5424, {1, 3, 1, 3, 21, 53, 71, 73, 43, 321, 1581, 1399, 4043, 12995, 16825}}, +{2468, 15, 5436, {1, 3, 7, 15, 3, 13, 37, 11, 93, 873, 1193, 3481, 451, 15869, 17879}}, +{2469, 15, 5454, {1, 3, 1, 11, 31, 19, 101, 57, 129, 753, 853, 463, 6757, 11083, 8667}}, +{2470, 15, 5462, {1, 3, 5, 15, 25, 41, 25, 197, 235, 609, 905, 993, 3233, 1935, 24661}}, +{2471, 15, 5468, {1, 3, 1, 5, 21, 7, 53, 107, 473, 77, 1135, 1045, 4933, 5615, 15931}}, +{2472, 15, 5481, {1, 3, 7, 11, 3, 9, 105, 183, 151, 527, 425, 975, 4073, 913, 2793}}, +{2473, 15, 5505, {1, 1, 7, 13, 19, 61, 81, 9, 413, 851, 1723, 1113, 1453, 8635, 3353}}, +{2474, 15, 5511, {1, 3, 7, 15, 19, 53, 83, 31, 441, 343, 575, 935, 4543, 1303, 12567}}, +{2475, 15, 5518, {1, 1, 1, 5, 29, 19, 119, 75, 3, 591, 845, 649, 1717, 13695, 26905}}, +{2476, 15, 5530, {1, 1, 7, 9, 5, 53, 127, 191, 15, 773, 1433, 2899, 21, 4977, 17839}}, +{2477, 15, 5532, {1, 1, 5, 9, 21, 9, 99, 115, 397, 99, 725, 3835, 973, 1219, 21159}}, +{2478, 15, 5539, {1, 3, 5, 3, 7, 39, 29, 93, 303, 913, 981, 3549, 5225, 10907, 393}}, +{2479, 15, 5553, {1, 3, 3, 11, 9, 25, 105, 101, 1, 867, 389, 2241, 773, 14123, 10015}}, +{2480, 15, 5573, {1, 1, 5, 1, 1, 37, 117, 213, 391, 779, 1851, 1485, 1277, 5607, 819}}, +{2481, 15, 5580, {1, 3, 7, 1, 3, 5, 43, 47, 483, 367, 749, 1693, 4961, 15257, 3775}}, +{2482, 15, 5597, {1, 3, 3, 1, 27, 11, 21, 83, 437, 379, 1041, 393, 5611, 2421, 31739}}, +{2483, 15, 5602, {1, 3, 5, 7, 19, 1, 79, 63, 53, 201, 1159, 2501, 6327, 11317, 9537}}, +{2484, 15, 5608, {1, 3, 5, 13, 9, 37, 61, 217, 427, 913, 1311, 3503, 5473, 10583, 19723}}, +{2485, 15, 5611, {1, 1, 3, 9, 11, 29, 121, 175, 141, 515, 925, 837, 6011, 10419, 32157}}, +{2486, 15, 5613, {1, 3, 5, 9, 27, 57, 97, 175, 365, 367, 1737, 3845, 1257, 12243, 2201}}, +{2487, 15, 5625, {1, 3, 3, 9, 23, 1, 53, 123, 127, 333, 1335, 707, 5747, 6541, 9809}}, +{2488, 15, 5632, {1, 3, 1, 9, 17, 37, 101, 41, 91, 61, 433, 979, 4345, 12351, 10829}}, +{2489, 15, 5635, {1, 3, 3, 13, 3, 21, 15, 49, 257, 99, 1793, 2987, 5233, 11625, 28069}}, +{2490, 15, 5638, {1, 1, 7, 11, 21, 13, 89, 11, 135, 153, 783, 2893, 6815, 12007, 15605}}, +{2491, 15, 5652, {1, 3, 7, 13, 5, 61, 73, 5, 269, 699, 925, 2925, 5919, 5841, 24875}}, +{2492, 15, 5659, {1, 3, 5, 5, 25, 45, 43, 93, 15, 927, 1253, 319, 1173, 14559, 20221}}, +{2493, 15, 5677, {1, 1, 3, 3, 27, 45, 9, 103, 447, 627, 1239, 3869, 2169, 49, 17917}}, +{2494, 15, 5686, {1, 3, 7, 7, 11, 9, 1, 1, 1, 527, 825, 3295, 623, 2095, 10537}}, +{2495, 15, 5689, {1, 3, 3, 11, 21, 11, 59, 165, 33, 743, 1461, 1535, 6393, 1301, 17823}}, +{2496, 15, 5698, {1, 1, 7, 3, 19, 43, 47, 245, 469, 551, 1447, 1963, 169, 1481, 31925}}, +{2497, 15, 5703, {1, 1, 3, 1, 11, 21, 51, 7, 251, 199, 1153, 767, 6417, 3417, 30171}}, +{2498, 15, 5707, {1, 3, 7, 1, 31, 5, 41, 103, 447, 263, 211, 2029, 8021, 4705, 10579}}, +{2499, 15, 5731, {1, 1, 3, 5, 17, 25, 55, 75, 393, 107, 2017, 2389, 1685, 14021, 9161}}, +{2500, 15, 5738, {1, 1, 1, 9, 13, 1, 75, 237, 205, 461, 689, 2531, 2839, 13925, 23351}}, +{2501, 15, 5743, {1, 3, 7, 1, 23, 39, 33, 189, 157, 571, 239, 1053, 1559, 1685, 23059}}, +{2502, 15, 5748, {1, 3, 3, 3, 27, 61, 71, 121, 49, 157, 1341, 1707, 2417, 11689, 26507}}, +{2503, 15, 5758, {1, 3, 7, 7, 19, 63, 47, 53, 95, 791, 1467, 1273, 2045, 755, 8555}}, +{2504, 15, 5762, {1, 1, 3, 15, 27, 33, 21, 253, 317, 153, 1509, 1765, 3809, 601, 5907}}, +{2505, 15, 5768, {1, 3, 5, 15, 11, 17, 97, 91, 165, 199, 1751, 2135, 1315, 3077, 29995}}, +{2506, 15, 5773, {1, 3, 1, 5, 3, 33, 93, 49, 39, 743, 341, 2549, 7603, 3369, 30889}}, +{2507, 15, 5776, {1, 1, 3, 13, 3, 5, 87, 63, 293, 785, 1591, 675, 3915, 2209, 18201}}, +{2508, 15, 5815, {1, 3, 3, 11, 3, 15, 69, 231, 241, 127, 429, 2201, 8173, 12549, 25745}}, +{2509, 15, 5841, {1, 1, 5, 11, 15, 39, 3, 29, 125, 685, 643, 1385, 829, 7347, 28793}}, +{2510, 15, 5847, {1, 1, 7, 15, 27, 15, 59, 237, 299, 773, 1097, 3875, 6503, 7129, 28495}}, +{2511, 15, 5860, {1, 3, 5, 13, 9, 17, 31, 227, 69, 443, 1633, 525, 1659, 14681, 15209}}, +{2512, 15, 5870, {1, 3, 5, 5, 13, 51, 69, 173, 111, 433, 279, 2145, 2091, 9741, 24881}}, +{2513, 15, 5875, {1, 3, 1, 7, 7, 35, 55, 51, 357, 99, 1789, 333, 2073, 10151, 14527}}, +{2514, 15, 5877, {1, 3, 3, 7, 13, 41, 101, 87, 425, 701, 1143, 2733, 6473, 8667, 17419}}, +{2515, 15, 5884, {1, 1, 5, 5, 25, 29, 63, 31, 385, 537, 563, 607, 6723, 9251, 6531}}, +{2516, 15, 5892, {1, 3, 5, 5, 9, 63, 111, 131, 239, 723, 705, 2805, 6579, 12691, 17521}}, +{2517, 15, 5902, {1, 3, 1, 7, 31, 55, 101, 225, 477, 271, 611, 3179, 7859, 9835, 2165}}, +{2518, 15, 5910, {1, 1, 3, 3, 5, 15, 81, 127, 391, 333, 419, 1091, 5997, 12315, 31521}}, +{2519, 15, 5916, {1, 3, 5, 15, 23, 7, 35, 109, 181, 295, 825, 419, 969, 15753, 9365}}, +{2520, 15, 5919, {1, 3, 5, 5, 25, 23, 69, 177, 325, 359, 1577, 619, 6233, 11753, 8103}}, +{2521, 15, 5935, {1, 3, 5, 11, 31, 13, 79, 61, 241, 1011, 1961, 949, 6211, 497, 7099}}, +{2522, 15, 5937, {1, 3, 5, 3, 25, 19, 67, 235, 337, 1015, 1485, 355, 3653, 12735, 14503}}, +{2523, 15, 5944, {1, 3, 5, 7, 31, 23, 35, 231, 147, 15, 263, 1995, 431, 5941, 18931}}, +{2524, 15, 5947, {1, 3, 3, 7, 1, 35, 37, 7, 85, 443, 715, 743, 2189, 12537, 17427}}, +{2525, 15, 5958, {1, 1, 3, 1, 7, 41, 1, 209, 121, 929, 661, 3999, 955, 5123, 31115}}, +{2526, 15, 5962, {1, 1, 3, 5, 11, 43, 127, 125, 107, 293, 273, 2071, 3003, 11631, 7769}}, +{2527, 15, 5969, {1, 1, 1, 13, 13, 29, 39, 217, 111, 779, 1287, 1675, 4201, 4869, 20403}}, +{2528, 15, 5981, {1, 1, 3, 15, 25, 53, 25, 135, 389, 925, 1971, 663, 7545, 2673, 7725}}, +{2529, 15, 5995, {1, 1, 5, 13, 3, 59, 97, 91, 357, 45, 947, 3031, 8095, 6269, 13975}}, +{2530, 15, 5998, {1, 1, 5, 15, 25, 31, 1, 171, 375, 939, 507, 3591, 1089, 13605, 2813}}, +{2531, 15, 6003, {1, 1, 3, 7, 25, 21, 41, 131, 147, 737, 9, 1603, 1859, 11573, 28397}}, +{2532, 15, 6010, {1, 3, 3, 9, 21, 9, 59, 27, 169, 875, 711, 1389, 2899, 7937, 4173}}, +{2533, 15, 6016, {1, 1, 5, 9, 13, 29, 71, 39, 51, 337, 1067, 2661, 1203, 5967, 19249}}, +{2534, 15, 6025, {1, 3, 7, 1, 17, 21, 43, 79, 181, 741, 1901, 3445, 7171, 2109, 1589}}, +{2535, 15, 6031, {1, 1, 3, 9, 23, 37, 105, 51, 227, 775, 1265, 2987, 2197, 13903, 28891}}, +{2536, 15, 6036, {1, 1, 1, 13, 23, 47, 111, 41, 93, 261, 75, 2155, 4301, 11517, 16101}}, +{2537, 15, 6039, {1, 1, 3, 3, 27, 27, 123, 125, 501, 775, 413, 1065, 7607, 15065, 26013}}, +{2538, 15, 6045, {1, 3, 7, 3, 27, 11, 59, 87, 207, 743, 1765, 2969, 913, 8101, 11583}}, +{2539, 15, 6049, {1, 3, 3, 1, 23, 7, 113, 17, 285, 993, 695, 2399, 5019, 4779, 28917}}, +{2540, 15, 6052, {1, 3, 1, 5, 11, 51, 49, 139, 213, 435, 1475, 2209, 6695, 12981, 9851}}, +{2541, 15, 6067, {1, 3, 5, 7, 1, 63, 31, 151, 173, 767, 1453, 1497, 6911, 9597, 25551}}, +{2542, 15, 6074, {1, 1, 7, 7, 21, 53, 39, 159, 389, 231, 309, 359, 7701, 14819, 5175}}, +{2543, 15, 6087, {1, 1, 1, 1, 11, 47, 83, 29, 247, 89, 369, 2727, 3103, 14421, 17369}}, +{2544, 15, 6101, {1, 3, 1, 5, 25, 25, 111, 245, 239, 755, 113, 1765, 3583, 917, 403}}, +{2545, 15, 6121, {1, 3, 3, 3, 5, 59, 85, 151, 463, 591, 743, 3767, 121, 2927, 11031}}, +{2546, 15, 6129, {1, 3, 5, 9, 11, 39, 77, 161, 275, 233, 1991, 2683, 6545, 2423, 32113}}, +{2547, 15, 6142, {1, 3, 5, 11, 5, 57, 13, 229, 329, 757, 1863, 3959, 4243, 7265, 15599}}, +{2548, 15, 6151, {1, 1, 1, 1, 1, 23, 19, 67, 453, 593, 2011, 1813, 4695, 8903, 9623}}, +{2549, 15, 6157, {1, 3, 3, 7, 1, 29, 103, 255, 493, 647, 1709, 4065, 4199, 949, 28829}}, +{2550, 15, 6166, {1, 1, 7, 9, 3, 55, 53, 33, 5, 223, 423, 3347, 7647, 7211, 25157}}, +{2551, 15, 6170, {1, 3, 5, 13, 3, 43, 79, 255, 471, 573, 1007, 2119, 6731, 10047, 23179}}, +{2552, 15, 6175, {1, 1, 1, 3, 7, 39, 55, 61, 53, 377, 435, 401, 3307, 12621, 14299}}, +{2553, 15, 6186, {1, 3, 3, 7, 21, 31, 67, 17, 243, 425, 747, 2995, 1389, 2557, 18415}}, +{2554, 15, 6203, {1, 3, 1, 3, 3, 39, 75, 11, 447, 249, 1135, 1011, 1657, 10767, 19501}}, +{2555, 15, 6217, {1, 3, 1, 11, 17, 51, 117, 129, 17, 143, 785, 103, 5049, 14703, 28479}}, +{2556, 15, 6231, {1, 3, 7, 5, 13, 17, 75, 255, 75, 661, 1175, 477, 1811, 1479, 15783}}, +{2557, 15, 6241, {1, 3, 7, 9, 11, 57, 101, 77, 431, 247, 997, 3657, 5117, 6815, 3841}}, +{2558, 15, 6242, {1, 1, 5, 1, 17, 21, 101, 183, 209, 69, 299, 1585, 6381, 12983, 10053}}, +{2559, 15, 6248, {1, 1, 7, 3, 5, 13, 21, 63, 83, 857, 749, 1251, 5363, 9629, 16563}}, +{2560, 15, 6256, {1, 3, 3, 9, 3, 59, 9, 45, 55, 489, 137, 2423, 2661, 12111, 4375}}, +{2561, 15, 6265, {1, 1, 5, 9, 23, 9, 41, 177, 447, 671, 1631, 3115, 4215, 14435, 8743}}, +{2562, 15, 6275, {1, 3, 7, 11, 19, 23, 15, 221, 413, 783, 1247, 2343, 4397, 3145, 32043}}, +{2563, 15, 6277, {1, 3, 3, 1, 31, 55, 31, 87, 333, 849, 1777, 343, 5199, 1507, 11621}}, +{2564, 15, 6302, {1, 3, 7, 3, 17, 57, 63, 63, 111, 977, 631, 3019, 2953, 14273, 29209}}, +{2565, 15, 6315, {1, 3, 1, 13, 9, 39, 87, 15, 397, 185, 701, 1487, 3807, 13727, 19883}}, +{2566, 15, 6318, {1, 3, 7, 1, 17, 57, 57, 157, 119, 181, 899, 353, 3603, 15041, 7421}}, +{2567, 15, 6330, {1, 1, 7, 3, 29, 13, 29, 191, 105, 373, 961, 1991, 5531, 6793, 29497}}, +{2568, 15, 6343, {1, 3, 3, 11, 7, 61, 65, 39, 215, 187, 191, 1651, 2481, 3951, 24965}}, +{2569, 15, 6347, {1, 1, 7, 5, 25, 11, 105, 23, 257, 771, 1359, 2837, 7821, 12223, 28033}}, +{2570, 15, 6350, {1, 3, 5, 11, 3, 3, 23, 139, 407, 885, 1679, 2979, 8149, 14281, 12487}}, +{2571, 15, 6352, {1, 3, 7, 3, 21, 45, 13, 85, 249, 1015, 2023, 1429, 965, 7091, 31721}}, +{2572, 15, 6371, {1, 1, 1, 13, 19, 5, 119, 47, 91, 285, 211, 2607, 4287, 9197, 455}}, +{2573, 15, 6383, {1, 3, 1, 1, 9, 59, 25, 137, 121, 287, 577, 3325, 2365, 8823, 5033}}, +{2574, 15, 6386, {1, 3, 3, 13, 25, 63, 99, 43, 15, 855, 245, 3189, 59, 5181, 21299}}, +{2575, 15, 6405, {1, 3, 5, 11, 7, 9, 41, 157, 359, 773, 1347, 2049, 4589, 13731, 32133}}, +{2576, 15, 6409, {1, 1, 7, 11, 31, 37, 83, 105, 183, 375, 79, 1821, 1989, 15199, 22207}}, +{2577, 15, 6410, {1, 1, 5, 3, 23, 37, 127, 9, 467, 651, 993, 69, 6943, 4093, 20871}}, +{2578, 15, 6433, {1, 1, 3, 15, 31, 49, 123, 149, 211, 371, 1825, 3011, 485, 1251, 17343}}, +{2579, 15, 6436, {1, 1, 1, 15, 11, 33, 127, 251, 89, 317, 1869, 219, 2275, 14201, 27063}}, +{2580, 15, 6439, {1, 1, 5, 5, 19, 5, 81, 35, 233, 95, 9, 863, 725, 11095, 16217}}, +{2581, 15, 6463, {1, 1, 1, 15, 23, 47, 51, 43, 169, 637, 865, 57, 1509, 1683, 7587}}, +{2582, 15, 6468, {1, 3, 1, 3, 7, 7, 117, 187, 273, 303, 717, 3091, 2083, 3315, 647}}, +{2583, 15, 6477, {1, 1, 5, 15, 13, 27, 23, 227, 145, 547, 1783, 987, 6895, 7135, 11023}}, +{2584, 15, 6496, {1, 1, 5, 11, 21, 39, 57, 203, 477, 17, 985, 1729, 4297, 7483, 13263}}, +{2585, 15, 6511, {1, 3, 7, 9, 3, 49, 71, 45, 143, 967, 39, 583, 2123, 5165, 17437}}, +{2586, 15, 6516, {1, 1, 1, 9, 21, 51, 71, 163, 441, 709, 397, 445, 6167, 7753, 11513}}, +{2587, 15, 6519, {1, 1, 7, 7, 27, 35, 5, 181, 449, 53, 621, 3401, 5263, 4557, 9141}}, +{2588, 15, 6523, {1, 1, 5, 7, 7, 37, 83, 111, 485, 881, 465, 3371, 5603, 371, 29393}}, +{2589, 15, 6530, {1, 3, 1, 15, 7, 47, 41, 245, 377, 823, 309, 3929, 2159, 13917, 13365}}, +{2590, 15, 6539, {1, 3, 7, 7, 7, 29, 25, 141, 19, 611, 79, 2689, 109, 12321, 8345}}, +{2591, 15, 6547, {1, 1, 1, 13, 3, 53, 113, 151, 381, 791, 137, 3185, 3567, 211, 597}}, +{2592, 15, 6589, {1, 1, 3, 9, 7, 53, 87, 89, 491, 861, 467, 3763, 2025, 4187, 9637}}, +{2593, 15, 6592, {1, 1, 7, 1, 27, 33, 71, 41, 63, 1011, 741, 1135, 175, 3739, 21493}}, +{2594, 15, 6601, {1, 3, 3, 5, 9, 19, 55, 175, 325, 55, 1193, 1423, 2049, 9633, 17515}}, +{2595, 15, 6610, {1, 1, 3, 1, 27, 55, 69, 103, 401, 707, 825, 399, 6799, 13199, 6295}}, +{2596, 15, 6616, {1, 3, 7, 3, 19, 63, 25, 151, 17, 159, 1673, 615, 6317, 13261, 26267}}, +{2597, 15, 6619, {1, 3, 7, 9, 27, 1, 77, 129, 423, 647, 707, 2579, 3525, 6723, 31615}}, +{2598, 15, 6626, {1, 3, 3, 7, 7, 31, 35, 241, 309, 369, 895, 3683, 4795, 11319, 451}}, +{2599, 15, 6635, {1, 3, 5, 7, 17, 7, 117, 141, 267, 713, 569, 1915, 4369, 7793, 30853}}, +{2600, 15, 6637, {1, 3, 7, 1, 29, 61, 81, 73, 413, 13, 1977, 3229, 5853, 8451, 15539}}, +{2601, 15, 6638, {1, 3, 7, 1, 5, 45, 109, 21, 431, 487, 2019, 2647, 927, 16015, 10711}}, +{2602, 15, 6652, {1, 3, 1, 3, 11, 19, 37, 183, 451, 377, 269, 3993, 3229, 4899, 26561}}, +{2603, 15, 6656, {1, 3, 1, 11, 5, 19, 121, 55, 57, 117, 687, 83, 3047, 1367, 17595}}, +{2604, 15, 6662, {1, 3, 1, 7, 17, 31, 41, 219, 239, 963, 199, 2895, 5599, 7639, 17201}}, +{2605, 15, 6689, {1, 3, 3, 5, 27, 53, 71, 183, 509, 771, 1809, 1539, 2229, 4893, 17115}}, +{2606, 15, 6699, {1, 1, 3, 9, 9, 9, 13, 49, 265, 643, 1929, 859, 497, 9797, 27771}}, +{2607, 15, 6710, {1, 3, 7, 11, 19, 39, 115, 139, 207, 903, 963, 1849, 4403, 6229, 10021}}, +{2608, 15, 6714, {1, 3, 7, 13, 3, 57, 99, 223, 503, 423, 1755, 807, 1885, 213, 18723}}, +{2609, 15, 6719, {1, 3, 7, 15, 11, 15, 111, 193, 243, 599, 593, 3385, 5393, 15073, 17777}}, +{2610, 15, 6739, {1, 1, 5, 3, 19, 63, 121, 207, 99, 435, 1961, 2747, 6405, 3971, 23481}}, +{2611, 15, 6751, {1, 3, 5, 13, 9, 29, 79, 131, 415, 49, 229, 1003, 3263, 12975, 15987}}, +{2612, 15, 6775, {1, 1, 3, 7, 1, 41, 127, 155, 29, 73, 963, 659, 2741, 3465, 2595}}, +{2613, 15, 6779, {1, 1, 3, 5, 23, 23, 93, 233, 113, 521, 427, 1557, 6917, 12953, 22441}}, +{2614, 15, 6788, {1, 1, 5, 13, 5, 25, 85, 191, 387, 69, 955, 243, 4473, 9813, 21711}}, +{2615, 15, 6798, {1, 3, 3, 7, 1, 53, 95, 65, 231, 995, 539, 2103, 5513, 14087, 28655}}, +{2616, 15, 6815, {1, 3, 5, 3, 17, 13, 19, 227, 197, 91, 1437, 1121, 3307, 6903, 3297}}, +{2617, 15, 6819, {1, 1, 5, 11, 31, 29, 109, 171, 257, 783, 861, 9, 4895, 1859, 10909}}, +{2618, 15, 6825, {1, 1, 7, 13, 5, 47, 61, 5, 363, 351, 1525, 823, 2883, 12435, 17629}}, +{2619, 15, 6826, {1, 1, 5, 11, 9, 3, 69, 159, 371, 477, 1223, 1973, 2757, 413, 31223}}, +{2620, 15, 6836, {1, 1, 3, 5, 23, 45, 43, 195, 423, 829, 1673, 1563, 6633, 14775, 21097}}, +{2621, 15, 6843, {1, 1, 3, 3, 13, 9, 107, 209, 49, 609, 1047, 3691, 7483, 4269, 7557}}, +{2622, 15, 6845, {1, 1, 3, 15, 3, 43, 73, 161, 53, 813, 325, 3439, 7009, 8691, 11711}}, +{2623, 15, 6858, {1, 1, 3, 3, 23, 45, 99, 61, 407, 15, 1515, 1557, 953, 8567, 13729}}, +{2624, 15, 6868, {1, 1, 5, 9, 31, 35, 117, 57, 227, 923, 1373, 1811, 3405, 11979, 10149}}, +{2625, 15, 6877, {1, 1, 3, 9, 15, 53, 105, 209, 153, 67, 1477, 667, 3077, 4911, 3871}}, +{2626, 15, 6881, {1, 1, 3, 3, 21, 53, 93, 101, 183, 1023, 3, 3041, 5815, 9043, 5801}}, +{2627, 15, 6891, {1, 3, 3, 5, 17, 49, 127, 161, 321, 869, 1369, 923, 3235, 711, 30007}}, +{2628, 15, 6896, {1, 1, 3, 3, 15, 17, 97, 229, 389, 159, 1075, 2001, 7905, 15191, 14693}}, +{2629, 15, 6899, {1, 1, 5, 11, 5, 5, 121, 173, 95, 173, 1883, 3915, 1439, 9981, 24375}}, +{2630, 15, 6901, {1, 3, 3, 1, 31, 53, 29, 189, 37, 623, 217, 949, 3959, 7189, 25427}}, +{2631, 15, 6908, {1, 3, 5, 9, 21, 45, 101, 23, 355, 729, 797, 2317, 2931, 7433, 29175}}, +{2632, 15, 6914, {1, 3, 7, 1, 1, 63, 63, 155, 237, 865, 1169, 43, 7335, 6445, 7979}}, +{2633, 15, 6916, {1, 3, 7, 7, 11, 51, 37, 199, 503, 991, 319, 3013, 7885, 12837, 32419}}, +{2634, 15, 6923, {1, 3, 7, 7, 27, 31, 101, 243, 37, 811, 1909, 109, 6455, 7903, 11821}}, +{2635, 15, 6925, {1, 1, 3, 13, 23, 21, 89, 99, 243, 605, 1017, 1871, 1101, 12825, 8227}}, +{2636, 15, 6928, {1, 3, 3, 13, 19, 3, 51, 59, 501, 605, 385, 2189, 3229, 7981, 31407}}, +{2637, 15, 6931, {1, 1, 1, 1, 25, 11, 127, 215, 295, 237, 1245, 3657, 7803, 3897, 655}}, +{2638, 15, 6934, {1, 1, 7, 7, 5, 9, 63, 129, 143, 417, 795, 3409, 2847, 5887, 3093}}, +{2639, 15, 6937, {1, 3, 3, 13, 7, 57, 67, 57, 5, 847, 1185, 3349, 4841, 11457, 8857}}, +{2640, 15, 6938, {1, 1, 3, 3, 9, 53, 51, 43, 85, 437, 13, 2543, 3651, 15493, 767}}, +{2641, 15, 6949, {1, 1, 7, 9, 1, 49, 97, 115, 133, 1011, 1399, 2653, 7765, 13999, 12097}}, +{2642, 15, 6956, {1, 1, 5, 1, 3, 27, 123, 107, 389, 401, 1759, 1333, 1371, 5277, 14865}}, +{2643, 15, 6973, {1, 1, 5, 1, 13, 23, 3, 123, 137, 821, 399, 1671, 3095, 3121, 31387}}, +{2644, 15, 6976, {1, 1, 5, 3, 7, 35, 57, 237, 509, 753, 1783, 2815, 6495, 13283, 7091}}, +{2645, 15, 6981, {1, 1, 7, 11, 5, 37, 77, 109, 7, 969, 1087, 3705, 1695, 14223, 28959}}, +{2646, 15, 6988, {1, 3, 1, 11, 25, 5, 25, 163, 179, 185, 671, 1031, 4537, 11601, 9323}}, +{2647, 15, 6999, {1, 1, 3, 7, 17, 25, 49, 221, 183, 619, 1953, 343, 4523, 14883, 6833}}, +{2648, 15, 7016, {1, 3, 7, 5, 27, 19, 59, 153, 11, 807, 513, 3019, 6875, 5307, 8405}}, +{2649, 15, 7027, {1, 1, 1, 13, 25, 41, 21, 109, 321, 135, 497, 1235, 5177, 5167, 18609}}, +{2650, 15, 7029, {1, 1, 7, 5, 21, 53, 25, 197, 411, 503, 1009, 1921, 4305, 2633, 31415}}, +{2651, 15, 7055, {1, 3, 5, 1, 25, 45, 27, 227, 271, 903, 639, 3805, 657, 8683, 29585}}, +{2652, 15, 7058, {1, 1, 5, 3, 9, 49, 37, 35, 351, 491, 851, 2983, 31, 5619, 6919}}, +{2653, 15, 7074, {1, 1, 5, 3, 11, 49, 33, 153, 393, 1017, 1561, 2795, 4435, 12589, 22349}}, +{2654, 15, 7083, {1, 1, 1, 15, 17, 29, 49, 245, 217, 359, 1133, 393, 3317, 415, 16407}}, +{2655, 15, 7093, {1, 1, 3, 5, 3, 9, 95, 63, 319, 319, 1009, 19, 6453, 16279, 6975}}, +{2656, 15, 7100, {1, 1, 5, 9, 3, 25, 67, 95, 369, 237, 285, 2409, 671, 5143, 121}}, +{2657, 15, 7105, {1, 1, 3, 1, 9, 49, 35, 87, 317, 185, 445, 2263, 7923, 10183, 26615}}, +{2658, 15, 7112, {1, 3, 3, 11, 9, 59, 29, 135, 129, 477, 353, 3571, 1057, 16329, 23523}}, +{2659, 15, 7118, {1, 1, 1, 15, 13, 11, 19, 5, 133, 827, 1799, 1893, 1939, 1101, 12147}}, +{2660, 15, 7120, {1, 1, 3, 3, 15, 49, 33, 185, 511, 1013, 41, 3499, 6235, 7643, 16725}}, +{2661, 15, 7129, {1, 1, 5, 11, 27, 45, 89, 157, 63, 137, 2047, 1275, 4995, 625, 6111}}, +{2662, 15, 7166, {1, 3, 7, 11, 3, 1, 121, 1, 341, 33, 1895, 3033, 3929, 10257, 21037}}, +{2663, 15, 7207, {1, 3, 3, 11, 7, 11, 117, 5, 115, 287, 335, 3415, 5397, 15065, 19121}}, +{2664, 15, 7216, {1, 3, 3, 13, 21, 25, 15, 125, 277, 125, 801, 3761, 2623, 11333, 16867}}, +{2665, 15, 7226, {1, 3, 5, 11, 19, 33, 21, 71, 499, 747, 1515, 185, 1759, 14623, 895}}, +{2666, 15, 7234, {1, 3, 7, 1, 29, 35, 9, 203, 277, 299, 1509, 2017, 2897, 14175, 1643}}, +{2667, 15, 7236, {1, 3, 5, 11, 7, 47, 111, 197, 459, 941, 1619, 2119, 2191, 11049, 6811}}, +{2668, 15, 7246, {1, 1, 5, 9, 7, 43, 103, 115, 87, 269, 1235, 77, 5887, 1611, 29041}}, +{2669, 15, 7248, {1, 1, 5, 7, 1, 61, 83, 225, 179, 81, 1145, 2403, 1485, 8967, 20607}}, +{2670, 15, 7254, {1, 3, 3, 1, 25, 47, 27, 157, 359, 803, 1683, 1995, 6445, 13113, 17899}}, +{2671, 15, 7263, {1, 3, 1, 7, 21, 37, 43, 119, 245, 49, 1581, 2275, 3311, 4087, 29765}}, +{2672, 15, 7273, {1, 1, 3, 13, 5, 33, 49, 191, 455, 105, 665, 3855, 3207, 2671, 32203}}, +{2673, 15, 7274, {1, 3, 1, 1, 25, 63, 19, 217, 17, 353, 947, 1951, 4097, 9041, 11921}}, +{2674, 15, 7293, {1, 3, 1, 7, 21, 31, 113, 97, 347, 993, 1799, 3831, 3711, 6193, 1235}}, +{2675, 15, 7297, {1, 1, 1, 5, 3, 63, 11, 203, 425, 445, 1361, 531, 1265, 1755, 11685}}, +{2676, 15, 7310, {1, 3, 1, 7, 13, 29, 23, 85, 57, 467, 1835, 133, 7961, 4175, 2445}}, +{2677, 15, 7315, {1, 1, 1, 15, 23, 27, 37, 5, 123, 913, 1293, 1633, 3113, 5413, 26407}}, +{2678, 15, 7317, {1, 1, 5, 13, 27, 1, 121, 151, 303, 931, 375, 3679, 1863, 12301, 30907}}, +{2679, 15, 7331, {1, 3, 1, 9, 31, 9, 49, 203, 177, 937, 1503, 933, 5867, 12533, 13621}}, +{2680, 15, 7338, {1, 3, 3, 15, 1, 41, 23, 191, 191, 931, 837, 3553, 2611, 4735, 18105}}, +{2681, 15, 7340, {1, 1, 5, 7, 27, 49, 51, 111, 435, 195, 1229, 711, 7145, 14571, 31707}}, +{2682, 15, 7346, {1, 1, 7, 7, 3, 41, 59, 203, 291, 903, 1727, 2757, 1463, 6287, 31535}}, +{2683, 15, 7355, {1, 1, 7, 13, 23, 5, 75, 3, 207, 525, 411, 2133, 2231, 477, 7155}}, +{2684, 15, 7366, {1, 3, 5, 7, 13, 19, 111, 225, 489, 83, 1177, 4077, 4617, 14413, 7133}}, +{2685, 15, 7383, {1, 3, 1, 7, 9, 59, 3, 113, 379, 803, 1289, 3347, 4127, 6669, 14867}}, +{2686, 15, 7389, {1, 3, 7, 3, 31, 37, 87, 79, 399, 749, 995, 1611, 3137, 12543, 31955}}, +{2687, 15, 7393, {1, 1, 5, 7, 21, 59, 49, 45, 511, 639, 1033, 2169, 3265, 15001, 10745}}, +{2688, 15, 7396, {1, 1, 5, 1, 25, 19, 23, 203, 11, 883, 1031, 4087, 5059, 11321, 21675}}, +{2689, 15, 7400, {1, 3, 7, 5, 11, 27, 33, 205, 163, 289, 501, 3505, 1515, 1895, 15889}}, +{2690, 15, 7414, {1, 3, 1, 1, 23, 7, 39, 239, 29, 119, 1499, 2071, 6495, 12107, 5339}}, +{2691, 15, 7417, {1, 3, 1, 1, 23, 29, 55, 181, 327, 905, 427, 1033, 427, 3687, 5367}}, +{2692, 15, 7426, {1, 3, 3, 7, 21, 27, 115, 127, 393, 855, 1291, 2121, 381, 9995, 29757}}, +{2693, 15, 7432, {1, 3, 5, 1, 25, 13, 15, 183, 269, 1005, 1531, 3451, 3975, 9479, 23695}}, +{2694, 15, 7452, {1, 3, 7, 7, 19, 31, 111, 97, 33, 179, 1343, 2069, 977, 5043, 9129}}, +{2695, 15, 7468, {1, 3, 1, 5, 17, 57, 99, 129, 379, 829, 837, 1845, 3613, 7351, 19291}}, +{2696, 15, 7488, {1, 3, 3, 5, 31, 23, 119, 229, 135, 389, 9, 705, 6697, 15441, 5303}}, +{2697, 15, 7491, {1, 1, 1, 11, 25, 31, 105, 95, 5, 931, 789, 375, 7543, 9957, 28627}}, +{2698, 15, 7494, {1, 1, 7, 15, 21, 17, 19, 103, 389, 545, 1725, 2867, 4251, 3829, 6907}}, +{2699, 15, 7497, {1, 3, 7, 7, 15, 37, 97, 65, 337, 409, 1649, 2869, 7929, 8905, 21989}}, +{2700, 15, 7515, {1, 3, 5, 3, 11, 15, 69, 29, 353, 207, 233, 411, 2047, 10303, 31655}}, +{2701, 15, 7531, {1, 3, 3, 7, 27, 43, 125, 107, 69, 981, 215, 1955, 3589, 597, 12703}}, +{2702, 15, 7552, {1, 1, 7, 9, 25, 13, 109, 73, 227, 663, 1115, 285, 471, 3359, 15787}}, +{2703, 15, 7562, {1, 3, 7, 5, 1, 45, 7, 79, 441, 149, 701, 1457, 6595, 14829, 20865}}, +{2704, 15, 7564, {1, 3, 7, 15, 15, 47, 83, 239, 295, 23, 1085, 813, 1209, 3573, 2855}}, +{2705, 15, 7569, {1, 1, 3, 15, 13, 7, 59, 67, 255, 537, 1841, 3857, 6821, 15175, 13997}}, +{2706, 15, 7582, {1, 3, 1, 1, 9, 57, 59, 21, 21, 41, 1693, 2805, 7953, 1389, 14105}}, +{2707, 15, 7585, {1, 3, 5, 15, 19, 49, 107, 117, 99, 607, 145, 53, 1863, 9383, 12029}}, +{2708, 15, 7588, {1, 3, 3, 13, 1, 39, 5, 141, 503, 265, 281, 1785, 2673, 6597, 6333}}, +{2709, 15, 7592, {1, 1, 5, 3, 3, 19, 3, 181, 169, 269, 955, 2399, 3157, 11053, 8563}}, +{2710, 15, 7597, {1, 3, 3, 13, 11, 1, 95, 43, 179, 507, 443, 209, 3239, 14239, 21829}}, +{2711, 15, 7603, {1, 1, 7, 9, 3, 17, 99, 179, 445, 479, 1897, 1507, 5753, 4757, 2135}}, +{2712, 15, 7610, {1, 3, 3, 1, 9, 51, 29, 13, 295, 291, 927, 85, 5707, 7447, 32319}}, +{2713, 15, 7624, {1, 1, 1, 3, 13, 11, 21, 157, 213, 327, 1071, 591, 2639, 15405, 6617}}, +{2714, 15, 7642, {1, 3, 5, 1, 7, 25, 55, 47, 495, 681, 727, 2707, 2955, 705, 7489}}, +{2715, 15, 7647, {1, 1, 3, 9, 17, 3, 73, 67, 465, 367, 1473, 3195, 7825, 5299, 1817}}, +{2716, 15, 7653, {1, 1, 1, 1, 19, 31, 77, 253, 71, 599, 1601, 871, 2243, 6699, 13013}}, +{2717, 15, 7654, {1, 1, 7, 9, 21, 1, 71, 115, 5, 65, 767, 925, 7901, 10761, 19431}}, +{2718, 15, 7666, {1, 3, 1, 7, 23, 31, 31, 15, 105, 391, 585, 2995, 2635, 10607, 24951}}, +{2719, 15, 7668, {1, 3, 3, 1, 19, 25, 71, 211, 41, 197, 787, 225, 6781, 813, 10117}}, +{2720, 15, 7684, {1, 3, 3, 3, 17, 29, 3, 153, 231, 643, 1151, 447, 3699, 9625, 26677}}, +{2721, 15, 7705, {1, 1, 5, 9, 1, 25, 71, 21, 395, 297, 557, 3841, 233, 1877, 4569}}, +{2722, 15, 7732, {1, 1, 3, 13, 1, 45, 115, 61, 5, 937, 173, 2109, 2927, 9599, 9155}}, +{2723, 15, 7741, {1, 1, 3, 3, 15, 21, 61, 121, 253, 285, 1083, 3545, 5537, 6773, 2629}}, +{2724, 15, 7749, {1, 3, 3, 15, 13, 63, 33, 77, 49, 849, 1795, 2771, 5481, 9833, 603}}, +{2725, 15, 7750, {1, 1, 7, 5, 1, 39, 113, 237, 225, 1005, 1687, 2297, 3213, 2605, 14669}}, +{2726, 15, 7759, {1, 1, 3, 1, 11, 1, 39, 23, 67, 441, 1235, 2545, 3139, 15901, 29243}}, +{2727, 15, 7764, {1, 3, 1, 3, 15, 49, 39, 57, 311, 345, 525, 223, 4923, 6311, 25275}}, +{2728, 15, 7777, {1, 1, 5, 7, 9, 13, 69, 11, 349, 423, 1773, 1055, 1001, 9359, 17025}}, +{2729, 15, 7790, {1, 1, 1, 13, 15, 63, 89, 207, 335, 591, 1223, 2701, 55, 12471, 13127}}, +{2730, 15, 7817, {1, 1, 3, 5, 15, 19, 83, 67, 407, 113, 1961, 779, 5803, 12417, 21751}}, +{2731, 15, 7826, {1, 3, 3, 1, 21, 53, 81, 95, 405, 427, 1047, 2443, 4153, 5843, 22511}}, +{2732, 15, 7831, {1, 1, 7, 7, 7, 25, 115, 155, 453, 537, 741, 2379, 2343, 16035, 19587}}, +{2733, 15, 7859, {1, 3, 3, 11, 27, 21, 111, 121, 503, 437, 803, 3399, 5303, 10163, 18199}}, +{2734, 15, 7871, {1, 1, 5, 13, 19, 27, 7, 81, 259, 545, 965, 743, 4533, 8813, 21253}}, +{2735, 15, 7873, {1, 1, 5, 5, 1, 59, 37, 11, 105, 343, 75, 1319, 6317, 9593, 1699}}, +{2736, 15, 7876, {1, 3, 1, 9, 13, 9, 115, 131, 387, 1023, 253, 693, 5191, 12777, 10565}}, +{2737, 15, 7900, {1, 3, 1, 15, 7, 35, 111, 195, 287, 305, 533, 1901, 3363, 10085, 30791}}, +{2738, 15, 7904, {1, 1, 3, 9, 27, 51, 21, 77, 413, 925, 717, 791, 4147, 585, 5649}}, +{2739, 15, 7913, {1, 3, 3, 5, 25, 59, 79, 249, 185, 567, 71, 1997, 7373, 2327, 18637}}, +{2740, 15, 7916, {1, 3, 3, 11, 15, 21, 97, 99, 391, 57, 1973, 29, 7451, 2529, 25737}}, +{2741, 15, 7922, {1, 3, 7, 5, 7, 59, 93, 5, 287, 469, 1639, 3637, 5465, 14431, 32265}}, +{2742, 15, 7946, {1, 1, 3, 11, 3, 1, 71, 75, 427, 299, 811, 3697, 3529, 5433, 26957}}, +{2743, 15, 7953, {1, 3, 1, 9, 19, 59, 37, 255, 165, 1005, 19, 2851, 4309, 455, 9485}}, +{2744, 15, 7956, {1, 1, 1, 5, 1, 55, 15, 233, 133, 47, 1831, 713, 2601, 1017, 3201}}, +{2745, 15, 7963, {1, 1, 5, 5, 21, 55, 127, 69, 377, 41, 25, 2295, 7595, 4733, 11615}}, +{2746, 15, 7979, {1, 1, 5, 3, 23, 5, 7, 181, 161, 775, 1095, 2271, 6637, 14489, 6873}}, +{2747, 15, 7981, {1, 3, 5, 9, 9, 15, 5, 133, 357, 21, 127, 2685, 6299, 4363, 17573}}, +{2748, 15, 7984, {1, 3, 3, 9, 13, 39, 51, 223, 201, 401, 1839, 2461, 7633, 6039, 10445}}, +{2749, 15, 7989, {1, 1, 5, 1, 9, 21, 19, 249, 227, 359, 255, 2895, 4117, 2073, 27687}}, +{2750, 15, 7999, {1, 1, 5, 15, 5, 61, 113, 161, 95, 3, 877, 2775, 293, 6655, 4023}}, +{2751, 15, 8001, {1, 3, 7, 1, 7, 55, 73, 39, 295, 403, 985, 2315, 1667, 13525, 1453}}, +{2752, 15, 8021, {1, 1, 5, 1, 27, 1, 85, 195, 11, 713, 1841, 3895, 3131, 2193, 17607}}, +{2753, 15, 8056, {1, 3, 5, 13, 25, 1, 119, 97, 239, 167, 1393, 1753, 6989, 12155, 12509}}, +{2754, 15, 8080, {1, 1, 7, 15, 31, 21, 41, 255, 425, 445, 165, 2097, 5627, 4971, 13207}}, +{2755, 15, 8083, {1, 1, 1, 15, 13, 33, 81, 105, 453, 197, 13, 1547, 7381, 8709, 15103}}, +{2756, 15, 8089, {1, 1, 3, 11, 11, 33, 107, 123, 483, 367, 121, 995, 1911, 8205, 22577}}, +{2757, 15, 8090, {1, 1, 1, 9, 9, 43, 71, 49, 273, 431, 1705, 3313, 4259, 16291, 14345}}, +{2758, 15, 8114, {1, 1, 1, 7, 3, 1, 43, 213, 97, 547, 1559, 1149, 2791, 3751, 887}}, +{2759, 15, 8128, {1, 1, 3, 15, 25, 47, 49, 251, 425, 35, 295, 3767, 6305, 9633, 5045}}, +{2760, 15, 8133, {1, 3, 3, 1, 5, 55, 91, 245, 27, 981, 331, 555, 6553, 11017, 15289}}, +{2761, 15, 8145, {1, 1, 3, 7, 1, 23, 23, 155, 223, 565, 1005, 3211, 3847, 7479, 3643}}, +{2762, 15, 8155, {1, 1, 5, 1, 17, 7, 47, 95, 35, 779, 1685, 2099, 7505, 15425, 18089}}, +{2763, 15, 8161, {1, 3, 3, 7, 3, 63, 83, 151, 211, 147, 611, 1171, 1681, 7687, 13423}}, +{2764, 15, 8182, {1, 3, 3, 1, 3, 27, 107, 117, 497, 537, 195, 3075, 2753, 1665, 19399}}, +{2765, 15, 8186, {1, 1, 1, 7, 23, 5, 103, 209, 117, 845, 1243, 1283, 4253, 9723, 20937}}, +{2766, 15, 8191, {1, 3, 1, 1, 5, 49, 7, 13, 419, 125, 287, 1599, 8161, 1275, 24661}}, +{2767, 15, 8192, {1, 3, 3, 3, 13, 63, 23, 183, 39, 979, 1301, 2349, 905, 15805, 30151}}, +{2768, 15, 8195, {1, 1, 3, 9, 17, 11, 97, 189, 189, 511, 1779, 2077, 6891, 11623, 23949}}, +{2769, 15, 8201, {1, 1, 7, 11, 13, 45, 15, 37, 11, 853, 915, 1569, 6103, 10633, 3137}}, +{2770, 15, 8207, {1, 3, 3, 5, 15, 61, 91, 255, 131, 821, 1755, 1501, 2663, 1747, 941}}, +{2771, 15, 8210, {1, 1, 3, 7, 19, 19, 65, 95, 499, 239, 2023, 3185, 4649, 3861, 3767}}, +{2772, 15, 8228, {1, 3, 5, 15, 15, 63, 55, 93, 127, 303, 171, 1763, 4991, 9479, 9917}}, +{2773, 15, 8249, {1, 3, 7, 5, 31, 53, 111, 35, 433, 163, 1903, 3991, 3585, 643, 21941}}, +{2774, 15, 8252, {1, 3, 1, 9, 27, 39, 67, 89, 487, 349, 587, 1723, 4311, 11321, 25785}}, +{2775, 15, 8258, {1, 3, 5, 7, 1, 63, 23, 237, 507, 689, 1341, 441, 1721, 843, 20335}}, +{2776, 15, 8267, {1, 1, 3, 3, 31, 63, 83, 103, 25, 799, 1379, 1817, 3809, 12285, 16673}}, +{2777, 15, 8270, {1, 1, 5, 3, 25, 29, 99, 193, 21, 549, 33, 3109, 4135, 10071, 32355}}, +{2778, 15, 8275, {1, 3, 1, 7, 13, 27, 83, 189, 121, 167, 379, 1503, 7955, 13189, 313}}, +{2779, 15, 8284, {1, 3, 5, 15, 25, 19, 83, 87, 257, 237, 709, 1169, 1561, 7117, 4785}}, +{2780, 15, 8293, {1, 1, 1, 7, 9, 55, 21, 5, 439, 367, 403, 2311, 6243, 8349, 13127}}, +{2781, 15, 8298, {1, 3, 7, 3, 5, 35, 51, 67, 453, 767, 29, 3293, 6665, 11459, 2799}}, +{2782, 15, 8305, {1, 3, 3, 3, 5, 19, 59, 7, 367, 683, 783, 1317, 7119, 6129, 19525}}, +{2783, 15, 8317, {1, 1, 5, 5, 5, 19, 61, 67, 381, 291, 875, 2179, 2481, 9325, 11253}}, +{2784, 15, 8328, {1, 3, 5, 5, 7, 47, 107, 9, 141, 667, 1989, 821, 3909, 1733, 10187}}, +{2785, 15, 8336, {1, 1, 7, 7, 31, 61, 1, 71, 477, 689, 1539, 3617, 8105, 6535, 3293}}, +{2786, 15, 8345, {1, 1, 5, 5, 23, 9, 103, 197, 241, 249, 297, 3607, 6217, 1673, 30103}}, +{2787, 15, 8351, {1, 3, 1, 5, 23, 15, 115, 105, 365, 51, 825, 2687, 359, 16325, 15083}}, +{2788, 15, 8367, {1, 1, 3, 11, 29, 45, 65, 251, 169, 189, 1243, 2345, 1345, 14471, 25631}}, +{2789, 15, 8379, {1, 1, 5, 9, 7, 63, 81, 167, 309, 539, 1169, 3949, 4193, 12047, 1491}}, +{2790, 15, 8381, {1, 3, 1, 9, 29, 33, 89, 167, 67, 73, 1885, 477, 5745, 13365, 6819}}, +{2791, 15, 8382, {1, 3, 7, 9, 9, 49, 95, 13, 157, 997, 1725, 935, 7543, 6349, 18277}}, +{2792, 15, 8393, {1, 1, 5, 5, 11, 59, 97, 17, 303, 469, 93, 2761, 7395, 9021, 24299}}, +{2793, 15, 8402, {1, 1, 7, 3, 27, 63, 71, 99, 407, 139, 711, 2589, 4715, 5405, 3277}}, +{2794, 15, 8414, {1, 3, 7, 3, 11, 15, 49, 57, 271, 493, 1165, 2839, 8191, 2609, 14759}}, +{2795, 15, 8417, {1, 1, 1, 7, 21, 15, 71, 245, 413, 473, 1321, 1165, 1027, 6983, 12867}}, +{2796, 15, 8420, {1, 1, 5, 3, 15, 21, 19, 197, 401, 627, 2047, 2761, 5807, 5751, 28025}}, +{2797, 15, 8429, {1, 1, 3, 3, 5, 57, 19, 209, 341, 165, 489, 455, 231, 14385, 12457}}, +{2798, 15, 8435, {1, 3, 3, 11, 13, 63, 79, 129, 17, 315, 1881, 1069, 177, 12013, 29567}}, +{2799, 15, 8438, {1, 1, 3, 7, 31, 29, 51, 235, 475, 375, 617, 437, 6379, 8505, 23079}}, +{2800, 15, 8450, {1, 1, 3, 7, 27, 3, 3, 137, 203, 959, 363, 371, 2899, 13491, 22979}}, +{2801, 15, 8452, {1, 3, 3, 3, 9, 1, 57, 7, 363, 537, 713, 2417, 509, 7747, 22135}}, +{2802, 15, 8459, {1, 3, 3, 3, 13, 21, 79, 121, 487, 921, 113, 281, 2853, 14855, 19747}}, +{2803, 15, 8470, {1, 1, 1, 11, 3, 53, 89, 123, 307, 585, 567, 1925, 505, 15935, 20419}}, +{2804, 15, 8486, {1, 1, 3, 3, 15, 45, 77, 197, 499, 683, 1405, 3573, 981, 14135, 19763}}, +{2805, 15, 8490, {1, 1, 1, 11, 27, 31, 61, 191, 29, 601, 373, 2011, 6193, 3599, 4387}}, +{2806, 15, 8500, {1, 3, 5, 9, 7, 13, 1, 193, 469, 603, 1315, 3329, 3761, 8355, 10425}}, +{2807, 15, 8524, {1, 1, 3, 9, 29, 61, 103, 17, 117, 251, 2029, 2963, 3763, 16117, 6627}}, +{2808, 15, 8536, {1, 3, 1, 3, 7, 51, 91, 145, 497, 657, 871, 3707, 5905, 10449, 14901}}, +{2809, 15, 8552, {1, 1, 3, 1, 3, 53, 23, 149, 461, 333, 1809, 1315, 1815, 8223, 13297}}, +{2810, 15, 8558, {1, 1, 1, 7, 15, 31, 3, 47, 443, 829, 1305, 893, 4191, 9681, 32661}}, +{2811, 15, 8570, {1, 3, 1, 3, 27, 43, 51, 221, 295, 825, 649, 2953, 6203, 8237, 20253}}, +{2812, 15, 8576, {1, 3, 1, 3, 9, 35, 41, 195, 249, 225, 387, 3789, 1499, 2559, 28413}}, +{2813, 15, 8582, {1, 1, 5, 15, 19, 29, 13, 115, 333, 787, 787, 723, 2987, 6227, 10865}}, +{2814, 15, 8594, {1, 3, 5, 13, 5, 59, 5, 251, 79, 387, 11, 3167, 6619, 13317, 18979}}, +{2815, 15, 8606, {1, 1, 7, 11, 31, 51, 43, 1, 189, 519, 1945, 2129, 4365, 14059, 3139}}, +{2816, 15, 8619, {1, 1, 7, 5, 31, 9, 43, 19, 151, 533, 1061, 3849, 6871, 6941, 14935}}, +{2817, 15, 8621, {1, 3, 7, 5, 19, 57, 7, 129, 25, 353, 17, 1739, 6513, 399, 28835}}, +{2818, 15, 8624, {1, 3, 5, 15, 25, 15, 37, 125, 39, 239, 271, 65, 2189, 10449, 11815}}, +{2819, 15, 8633, {1, 3, 7, 15, 19, 57, 47, 245, 509, 945, 385, 3987, 3585, 14711, 9655}}, +{2820, 15, 8641, {1, 1, 3, 13, 21, 31, 13, 81, 9, 489, 1321, 63, 1363, 2219, 19541}}, +{2821, 15, 8653, {1, 1, 5, 7, 3, 57, 25, 147, 23, 553, 889, 307, 6429, 15807, 12861}}, +{2822, 15, 8654, {1, 1, 3, 15, 29, 21, 99, 237, 151, 881, 675, 3625, 1159, 11759, 21347}}, +{2823, 15, 8662, {1, 1, 7, 1, 9, 13, 111, 239, 235, 609, 1569, 3271, 2837, 13807, 7301}}, +{2824, 15, 8675, {1, 3, 1, 15, 7, 59, 27, 81, 129, 9, 647, 3595, 1877, 1067, 1859}}, +{2825, 15, 8689, {1, 3, 7, 1, 3, 25, 119, 57, 145, 441, 1045, 789, 215, 1265, 9369}}, +{2826, 15, 8695, {1, 3, 7, 3, 17, 25, 87, 211, 441, 229, 223, 2795, 7241, 7007, 20575}}, +{2827, 15, 8702, {1, 1, 3, 1, 13, 1, 55, 227, 389, 141, 1097, 2487, 7603, 4161, 5025}}, +{2828, 15, 8706, {1, 1, 3, 5, 15, 29, 29, 145, 233, 209, 891, 89, 8097, 2897, 26685}}, +{2829, 15, 8720, {1, 1, 3, 1, 29, 53, 19, 95, 161, 359, 435, 3313, 4955, 7965, 21015}}, +{2830, 15, 8729, {1, 3, 5, 9, 19, 3, 109, 77, 29, 937, 1663, 125, 2453, 1069, 20639}}, +{2831, 15, 8739, {1, 3, 7, 13, 5, 23, 43, 231, 347, 591, 1963, 2491, 4045, 16029, 8149}}, +{2832, 15, 8741, {1, 1, 5, 1, 13, 3, 75, 211, 419, 929, 901, 3453, 8121, 799, 8897}}, +{2833, 15, 8751, {1, 1, 7, 15, 11, 11, 123, 111, 309, 415, 1071, 975, 2009, 12945, 19617}}, +{2834, 15, 8759, {1, 1, 1, 7, 31, 35, 81, 255, 89, 643, 451, 513, 497, 11751, 24215}}, +{2835, 15, 8766, {1, 3, 5, 5, 25, 17, 5, 165, 139, 929, 1927, 1353, 7427, 9719, 17087}}, +{2836, 15, 8777, {1, 3, 5, 1, 21, 55, 79, 85, 333, 847, 1305, 851, 5057, 8361, 18269}}, +{2837, 15, 8783, {1, 3, 7, 15, 27, 17, 55, 125, 395, 223, 271, 781, 1639, 10569, 11143}}, +{2838, 15, 8786, {1, 1, 7, 9, 7, 33, 127, 85, 209, 339, 483, 241, 2523, 14951, 6855}}, +{2839, 15, 8795, {1, 1, 3, 9, 5, 19, 9, 183, 435, 343, 1105, 3139, 7617, 1311, 267}}, +{2840, 15, 8802, {1, 1, 5, 1, 15, 53, 11, 63, 113, 241, 855, 3123, 4777, 3495, 23345}}, +{2841, 15, 8814, {1, 3, 1, 5, 19, 29, 119, 205, 167, 683, 289, 1629, 4977, 8981, 6867}}, +{2842, 15, 8821, {1, 3, 1, 1, 31, 63, 95, 159, 267, 231, 863, 3385, 5315, 7267, 13757}}, +{2843, 15, 8828, {1, 3, 5, 11, 19, 21, 53, 41, 125, 179, 533, 1279, 3759, 7073, 13905}}, +{2844, 15, 8831, {1, 3, 5, 9, 17, 7, 27, 67, 97, 809, 1423, 2743, 2859, 16121, 329}}, +{2845, 15, 8837, {1, 3, 1, 15, 1, 41, 59, 155, 509, 51, 1827, 3739, 3879, 13369, 30821}}, +{2846, 15, 8842, {1, 3, 3, 7, 21, 31, 7, 13, 347, 919, 1225, 497, 5051, 3769, 20211}}, +{2847, 15, 8855, {1, 3, 7, 13, 31, 9, 127, 195, 123, 387, 3, 3593, 6623, 9827, 29319}}, +{2848, 15, 8856, {1, 1, 3, 9, 7, 27, 95, 211, 287, 189, 1683, 1999, 7641, 14983, 4699}}, +{2849, 15, 8868, {1, 1, 5, 3, 7, 21, 29, 189, 101, 423, 885, 3275, 6569, 11023, 22265}}, +{2850, 15, 8877, {1, 3, 5, 3, 9, 33, 79, 75, 327, 975, 287, 3025, 2157, 7301, 24447}}, +{2851, 15, 8890, {1, 3, 3, 15, 31, 27, 63, 1, 71, 119, 1151, 517, 6131, 11055, 179}}, +{2852, 15, 8892, {1, 3, 7, 11, 23, 15, 101, 247, 349, 735, 673, 997, 6451, 229, 32103}}, +{2853, 15, 8900, {1, 3, 5, 15, 7, 1, 51, 135, 207, 741, 1831, 1235, 4747, 11915, 22009}}, +{2854, 15, 8909, {1, 3, 1, 13, 9, 31, 19, 221, 465, 681, 627, 2595, 5617, 14201, 30355}}, +{2855, 15, 8912, {1, 1, 3, 1, 13, 49, 55, 155, 11, 885, 1275, 3591, 2217, 6659, 30885}}, +{2856, 15, 8921, {1, 1, 7, 11, 27, 57, 93, 95, 243, 63, 1405, 2049, 7689, 15943, 18503}}, +{2857, 15, 8922, {1, 1, 7, 7, 5, 11, 47, 189, 467, 631, 1665, 2717, 4285, 2087, 1435}}, +{2858, 15, 8927, {1, 1, 3, 11, 7, 27, 127, 3, 231, 757, 435, 2545, 3537, 9127, 19915}}, +{2859, 15, 8943, {1, 1, 5, 13, 5, 29, 85, 127, 339, 875, 497, 1573, 6553, 11983, 18029}}, +{2860, 15, 8948, {1, 3, 1, 1, 21, 3, 15, 91, 231, 683, 1529, 2651, 4147, 13437, 23861}}, +{2861, 15, 8951, {1, 3, 1, 7, 27, 17, 19, 179, 243, 223, 1037, 1501, 5935, 2259, 25185}}, +{2862, 15, 8958, {1, 1, 3, 15, 11, 19, 127, 27, 483, 219, 583, 2555, 531, 3451, 17875}}, +{2863, 15, 8984, {1, 1, 1, 13, 31, 39, 89, 149, 363, 741, 1355, 4067, 3171, 6783, 1799}}, +{2864, 15, 8994, {1, 1, 3, 11, 25, 51, 45, 235, 379, 123, 1701, 725, 1991, 7471, 9833}}, +{2865, 15, 9000, {1, 1, 5, 13, 15, 47, 13, 201, 263, 57, 375, 2963, 7475, 15929, 13775}}, +{2866, 15, 9013, {1, 1, 3, 1, 29, 29, 11, 161, 345, 253, 97, 255, 7267, 2379, 3933}}, +{2867, 15, 9018, {1, 3, 1, 15, 3, 47, 11, 69, 347, 747, 795, 2401, 3367, 2383, 6125}}, +{2868, 15, 9020, {1, 1, 7, 3, 1, 49, 101, 47, 71, 761, 1503, 2619, 191, 8895, 873}}, +{2869, 15, 9031, {1, 3, 3, 5, 25, 41, 93, 85, 427, 109, 1675, 2409, 4317, 9233, 30283}}, +{2870, 15, 9035, {1, 1, 3, 9, 11, 3, 67, 159, 425, 751, 887, 1415, 403, 15977, 10739}}, +{2871, 15, 9045, {1, 1, 5, 13, 9, 1, 9, 103, 481, 601, 931, 1957, 5763, 7095, 27141}}, +{2872, 15, 9052, {1, 1, 3, 15, 29, 13, 43, 33, 297, 269, 1041, 1411, 3461, 12043, 10045}}, +{2873, 15, 9056, {1, 3, 5, 3, 3, 3, 5, 7, 185, 753, 133, 1561, 5595, 13777, 25795}}, +{2874, 15, 9059, {1, 3, 5, 5, 1, 19, 29, 145, 163, 149, 619, 2603, 7757, 10035, 10189}}, +{2875, 15, 9066, {1, 3, 7, 15, 27, 15, 111, 173, 135, 117, 157, 2601, 7919, 12111, 22795}}, +{2876, 15, 9076, {1, 3, 1, 1, 29, 27, 65, 31, 101, 715, 289, 3643, 2335, 6789, 23397}}, +{2877, 15, 9089, {1, 3, 1, 3, 11, 45, 71, 109, 321, 423, 1695, 169, 3075, 12423, 11391}}, +{2878, 15, 9129, {1, 1, 3, 9, 13, 51, 35, 121, 203, 279, 433, 2725, 7951, 2105, 27333}}, +{2879, 15, 9132, {1, 1, 1, 15, 23, 31, 25, 105, 501, 441, 1511, 3133, 2811, 10595, 21779}}, +{2880, 15, 9147, {1, 1, 5, 13, 7, 1, 97, 193, 121, 993, 1347, 1903, 1883, 6583, 24535}}, +{2881, 15, 9164, {1, 1, 7, 9, 7, 29, 17, 41, 101, 447, 1289, 387, 1891, 2723, 26091}}, +{2882, 15, 9167, {1, 1, 3, 3, 3, 53, 81, 81, 177, 165, 195, 3413, 8177, 3817, 8453}}, +{2883, 15, 9185, {1, 3, 7, 15, 15, 31, 23, 31, 337, 439, 1773, 63, 5351, 5491, 1767}}, +{2884, 15, 9195, {1, 3, 1, 11, 5, 15, 23, 75, 437, 553, 429, 2705, 3625, 13851, 19865}}, +{2885, 15, 9197, {1, 3, 3, 9, 13, 15, 33, 235, 215, 415, 1737, 1409, 2101, 14623, 14717}}, +{2886, 15, 9210, {1, 3, 7, 7, 13, 51, 101, 217, 175, 813, 1639, 4009, 1625, 4991, 17525}}, +{2887, 15, 9217, {1, 1, 5, 13, 23, 33, 29, 175, 39, 673, 557, 3239, 5129, 11049, 27227}}, +{2888, 15, 9229, {1, 3, 7, 13, 1, 37, 33, 139, 493, 891, 1883, 2525, 5741, 15795, 5875}}, +{2889, 15, 9248, {1, 3, 1, 15, 15, 27, 127, 111, 147, 363, 725, 3077, 4341, 9131, 24635}}, +{2890, 15, 9254, {1, 1, 7, 3, 17, 25, 59, 135, 177, 635, 73, 3455, 3083, 6009, 13033}}, +{2891, 15, 9263, {1, 1, 1, 5, 15, 53, 93, 161, 215, 459, 1087, 179, 2235, 8885, 15309}}, +{2892, 15, 9266, {1, 1, 7, 13, 7, 17, 75, 173, 449, 855, 103, 2739, 3421, 11811, 18805}}, +{2893, 15, 9268, {1, 1, 7, 9, 5, 11, 53, 75, 247, 249, 1201, 953, 2455, 4589, 6027}}, +{2894, 15, 9290, {1, 1, 5, 13, 27, 51, 119, 39, 137, 11, 1435, 3773, 3889, 6081, 11829}}, +{2895, 15, 9310, {1, 1, 5, 5, 5, 35, 1, 197, 501, 185, 1039, 1563, 6421, 14373, 25655}}, +{2896, 15, 9316, {1, 1, 3, 13, 31, 55, 115, 183, 483, 655, 1351, 3203, 725, 3299, 22579}}, +{2897, 15, 9338, {1, 3, 5, 11, 31, 31, 83, 59, 395, 21, 1881, 2821, 2251, 11781, 26265}}, +{2898, 15, 9340, {1, 3, 7, 13, 21, 19, 103, 21, 403, 443, 1951, 55, 985, 15983, 15087}}, +{2899, 15, 9343, {1, 1, 5, 15, 29, 11, 51, 53, 255, 183, 1475, 1491, 259, 387, 10303}}, +{2900, 15, 9344, {1, 3, 5, 7, 21, 37, 45, 39, 479, 637, 1325, 3753, 3319, 7403, 31759}}, +{2901, 15, 9350, {1, 1, 3, 5, 7, 43, 89, 53, 269, 187, 995, 141, 119, 8139, 29699}}, +{2902, 15, 9354, {1, 1, 1, 5, 1, 53, 3, 23, 379, 223, 1889, 4035, 1437, 12425, 9051}}, +{2903, 15, 9359, {1, 3, 1, 13, 3, 31, 61, 43, 249, 449, 901, 1921, 3495, 8599, 5263}}, +{2904, 15, 9361, {1, 1, 3, 5, 3, 25, 35, 133, 25, 597, 915, 3663, 5147, 11831, 24269}}, +{2905, 15, 9364, {1, 1, 1, 9, 21, 27, 93, 93, 217, 299, 1881, 3647, 4825, 7989, 24121}}, +{2906, 15, 9368, {1, 3, 1, 15, 5, 15, 49, 129, 315, 631, 2037, 1567, 4043, 15589, 30905}}, +{2907, 15, 9371, {1, 3, 3, 7, 25, 5, 123, 51, 47, 471, 1563, 3947, 7975, 3681, 9611}}, +{2908, 15, 9373, {1, 3, 7, 15, 1, 17, 73, 245, 465, 95, 95, 1159, 1319, 4675, 8841}}, +{2909, 15, 9389, {1, 1, 3, 15, 5, 51, 35, 71, 423, 651, 753, 173, 2131, 15799, 29601}}, +{2910, 15, 9390, {1, 1, 1, 1, 3, 53, 83, 187, 445, 827, 1549, 979, 5363, 1701, 2149}}, +{2911, 15, 9409, {1, 1, 7, 9, 3, 15, 65, 161, 37, 233, 771, 3749, 727, 6857, 17175}}, +{2912, 15, 9443, {1, 1, 7, 7, 27, 29, 107, 247, 249, 353, 773, 3677, 7273, 5419, 29397}}, +{2913, 15, 9445, {1, 3, 3, 7, 31, 49, 87, 159, 145, 497, 1715, 2115, 5035, 6431, 7245}}, +{2914, 15, 9446, {1, 3, 3, 5, 7, 31, 51, 117, 101, 617, 557, 2551, 6589, 13295, 31975}}, +{2915, 15, 9452, {1, 1, 3, 3, 15, 27, 125, 163, 169, 893, 1771, 25, 5787, 10267, 10297}}, +{2916, 15, 9490, {1, 1, 1, 5, 9, 47, 85, 65, 289, 783, 1105, 4035, 4111, 2589, 24575}}, +{2917, 15, 9492, {1, 3, 3, 13, 23, 33, 7, 49, 301, 531, 1713, 2755, 5543, 8153, 24099}}, +{2918, 15, 9495, {1, 1, 5, 9, 7, 39, 101, 67, 417, 923, 757, 1537, 5553, 12233, 20881}}, +{2919, 15, 9508, {1, 1, 5, 1, 19, 7, 25, 123, 125, 183, 573, 3317, 6867, 871, 17631}}, +{2920, 15, 9523, {1, 1, 3, 15, 19, 13, 117, 41, 129, 715, 1525, 2257, 2179, 10807, 23271}}, +{2921, 15, 9543, {1, 3, 1, 5, 25, 53, 19, 169, 289, 569, 1135, 1967, 7001, 15883, 15113}}, +{2922, 15, 9558, {1, 3, 7, 15, 7, 37, 127, 147, 415, 313, 1541, 1889, 3763, 16199, 12681}}, +{2923, 15, 9567, {1, 1, 3, 9, 1, 35, 95, 137, 237, 951, 899, 3177, 6073, 10655, 31687}}, +{2924, 15, 9580, {1, 1, 5, 5, 29, 57, 45, 253, 297, 529, 1553, 467, 8035, 15675, 21691}}, +{2925, 15, 9585, {1, 3, 7, 15, 25, 41, 59, 81, 87, 985, 1001, 2369, 661, 7551, 11829}}, +{2926, 15, 9591, {1, 1, 7, 9, 27, 21, 7, 233, 309, 67, 701, 2737, 4261, 2467, 15691}}, +{2927, 15, 9611, {1, 3, 7, 1, 19, 55, 47, 155, 333, 101, 517, 1991, 4619, 10435, 27241}}, +{2928, 15, 9613, {1, 1, 7, 3, 23, 35, 7, 125, 157, 537, 933, 3281, 4975, 8969, 27581}}, +{2929, 15, 9614, {1, 1, 3, 7, 19, 53, 81, 103, 461, 435, 777, 335, 5261, 12249, 9695}}, +{2930, 15, 9621, {1, 3, 1, 7, 19, 9, 75, 245, 355, 37, 1855, 1339, 3107, 7251, 16543}}, +{2931, 15, 9631, {1, 1, 1, 3, 5, 35, 39, 223, 113, 423, 1423, 713, 6113, 349, 24147}}, +{2932, 15, 9642, {1, 3, 1, 1, 15, 31, 11, 75, 499, 345, 1253, 2629, 2551, 7483, 25395}}, +{2933, 15, 9656, {1, 1, 3, 11, 25, 25, 3, 211, 185, 45, 1865, 1805, 3303, 11091, 529}}, +{2934, 15, 9661, {1, 3, 1, 1, 9, 21, 7, 165, 107, 641, 1083, 2805, 2099, 5855, 18477}}, +{2935, 15, 9667, {1, 3, 5, 3, 9, 21, 77, 103, 505, 277, 335, 797, 3869, 2957, 1979}}, +{2936, 15, 9694, {1, 3, 5, 15, 31, 23, 77, 247, 303, 891, 1261, 3233, 3495, 13111, 13185}}, +{2937, 15, 9715, {1, 3, 5, 11, 11, 35, 49, 229, 149, 931, 881, 775, 2949, 3141, 29157}}, +{2938, 15, 9722, {1, 1, 3, 5, 19, 57, 23, 95, 347, 221, 195, 3561, 1481, 2063, 3979}}, +{2939, 15, 9738, {1, 3, 5, 3, 13, 1, 23, 173, 431, 29, 421, 3235, 2751, 4447, 28283}}, +{2940, 15, 9745, {1, 1, 5, 13, 23, 3, 1, 9, 327, 855, 1251, 2997, 6129, 4223, 11555}}, +{2941, 15, 9758, {1, 3, 7, 13, 29, 21, 37, 229, 217, 353, 1239, 3955, 491, 12183, 14777}}, +{2942, 15, 9764, {1, 1, 5, 5, 1, 33, 103, 187, 183, 939, 1873, 2633, 6143, 15405, 17353}}, +{2943, 15, 9782, {1, 1, 1, 9, 21, 27, 71, 129, 499, 279, 1181, 4053, 2485, 1961, 30603}}, +{2944, 15, 9791, {1, 1, 3, 15, 21, 37, 45, 201, 221, 187, 727, 1241, 6171, 1383, 22277}}, +{2945, 15, 9793, {1, 3, 7, 5, 21, 17, 67, 177, 323, 601, 633, 865, 6131, 10329, 8689}}, +{2946, 15, 9794, {1, 3, 5, 9, 15, 45, 71, 43, 359, 651, 103, 403, 3249, 11769, 6567}}, +{2947, 15, 9805, {1, 3, 3, 13, 3, 23, 101, 145, 367, 999, 1489, 3673, 2959, 10855, 16029}}, +{2948, 15, 9808, {1, 3, 7, 3, 13, 43, 123, 87, 55, 1015, 141, 2917, 6567, 16025, 25555}}, +{2949, 15, 9811, {1, 3, 1, 3, 17, 7, 21, 161, 41, 889, 1315, 1897, 639, 15451, 3049}}, +{2950, 15, 9817, {1, 3, 5, 15, 27, 33, 55, 17, 81, 431, 325, 909, 3547, 10121, 17815}}, +{2951, 15, 9824, {1, 1, 3, 1, 15, 37, 43, 137, 203, 191, 1129, 1585, 435, 3177, 769}}, +{2952, 15, 9836, {1, 3, 7, 11, 21, 23, 125, 41, 17, 951, 465, 3691, 3465, 13247, 13779}}, +{2953, 15, 9851, {1, 3, 3, 1, 31, 23, 43, 101, 405, 739, 1061, 2955, 5643, 16137, 8763}}, +{2954, 15, 9853, {1, 1, 5, 1, 19, 33, 99, 109, 203, 65, 395, 2775, 1373, 2557, 5875}}, +{2955, 15, 9854, {1, 3, 3, 3, 27, 51, 79, 63, 331, 365, 1071, 1661, 4549, 8561, 1719}}, +{2956, 15, 9877, {1, 3, 3, 9, 3, 17, 53, 161, 141, 489, 1325, 1709, 1381, 5093, 171}}, +{2957, 15, 9881, {1, 1, 7, 15, 9, 3, 95, 237, 197, 949, 7, 1837, 729, 10111, 6637}}, +{2958, 15, 9923, {1, 1, 3, 3, 19, 31, 57, 173, 483, 861, 1001, 1919, 3389, 11777, 20693}}, +{2959, 15, 9935, {1, 3, 1, 9, 27, 13, 113, 177, 75, 925, 949, 119, 4759, 7775, 23033}}, +{2960, 15, 9937, {1, 1, 7, 15, 23, 15, 65, 61, 137, 653, 1843, 323, 379, 15157, 29885}}, +{2961, 15, 9954, {1, 3, 3, 7, 29, 3, 11, 205, 347, 745, 1477, 3929, 5749, 4735, 29435}}, +{2962, 15, 9959, {1, 3, 5, 9, 1, 11, 111, 15, 7, 69, 45, 3607, 1099, 9203, 21301}}, +{2963, 15, 9963, {1, 3, 3, 3, 23, 3, 83, 173, 73, 485, 681, 1867, 3839, 11823, 13339}}, +{2964, 15, 9968, {1, 1, 3, 11, 31, 43, 107, 127, 465, 389, 1595, 427, 1571, 5885, 29569}}, +{2965, 15, 9973, {1, 1, 7, 9, 27, 25, 117, 27, 287, 391, 279, 3247, 35, 12973, 5483}}, +{2966, 15, 9974, {1, 3, 7, 11, 19, 55, 45, 127, 245, 945, 305, 3907, 2455, 3163, 31}}, +{2967, 15, 9980, {1, 1, 7, 11, 15, 17, 65, 15, 37, 207, 1447, 3027, 2281, 6557, 16717}}, +{2968, 15, 9983, {1, 1, 1, 13, 5, 27, 33, 213, 29, 603, 1171, 3235, 2255, 2017, 30999}}, +{2969, 15, 9985, {1, 3, 1, 5, 11, 1, 73, 233, 69, 125, 397, 297, 3337, 6191, 31055}}, +{2970, 15, 10003, {1, 1, 1, 15, 1, 1, 65, 145, 201, 917, 1891, 2999, 4069, 10413, 15819}}, +{2971, 15, 10010, {1, 3, 5, 13, 15, 51, 115, 167, 311, 375, 1069, 2595, 3337, 753, 11903}}, +{2972, 15, 10034, {1, 1, 3, 1, 1, 23, 69, 125, 147, 915, 1945, 411, 979, 13863, 30443}}, +{2973, 15, 10040, {1, 3, 1, 11, 5, 1, 93, 23, 135, 93, 1689, 23, 3519, 4491, 24673}}, +{2974, 15, 10063, {1, 1, 7, 3, 11, 59, 93, 153, 487, 475, 1191, 1455, 5963, 8259, 18811}}, +{2975, 15, 10077, {1, 1, 3, 1, 13, 15, 55, 71, 433, 33, 491, 1835, 5695, 10509, 347}}, +{2976, 15, 10081, {1, 1, 1, 15, 19, 1, 23, 47, 235, 101, 1057, 901, 5477, 7079, 30885}}, +{2977, 15, 10082, {1, 1, 5, 13, 11, 43, 119, 77, 441, 121, 783, 827, 1757, 12751, 31593}}, +{2978, 15, 10084, {1, 3, 7, 11, 19, 17, 37, 225, 329, 231, 515, 1541, 7371, 6355, 10905}}, +{2979, 15, 10088, {1, 1, 5, 13, 7, 11, 35, 215, 345, 577, 147, 2803, 3291, 4631, 5329}}, +{2980, 15, 10091, {1, 1, 3, 9, 21, 55, 113, 251, 25, 221, 1445, 3385, 1589, 4109, 29897}}, +{2981, 15, 10105, {1, 1, 5, 7, 9, 45, 5, 33, 331, 285, 1101, 3131, 2713, 5653, 3823}}, +{2982, 15, 10111, {1, 3, 7, 7, 5, 39, 43, 167, 481, 629, 777, 1827, 4653, 403, 4781}}, +{2983, 15, 10118, {1, 3, 3, 7, 31, 33, 31, 159, 313, 673, 1425, 663, 5819, 1297, 26627}}, +{2984, 15, 10127, {1, 3, 3, 1, 19, 61, 117, 93, 373, 491, 1031, 757, 4185, 771, 7265}}, +{2985, 15, 10135, {1, 1, 7, 9, 3, 45, 65, 223, 437, 41, 1139, 2733, 5963, 2709, 25429}}, +{2986, 15, 10169, {1, 3, 5, 11, 21, 27, 31, 127, 255, 761, 1865, 1319, 6583, 9235, 10717}}, +{2987, 15, 10172, {1, 1, 1, 5, 21, 1, 63, 43, 413, 557, 567, 2893, 8017, 2307, 29525}}, +{2988, 15, 10183, {1, 1, 7, 3, 31, 1, 15, 235, 215, 395, 1971, 469, 5275, 431, 5349}}, +{2989, 15, 10190, {1, 1, 1, 13, 25, 59, 71, 245, 389, 279, 1293, 89, 6551, 10285, 14495}}, +{2990, 15, 10192, {1, 1, 5, 5, 9, 63, 17, 229, 425, 939, 877, 3689, 7229, 6707, 30771}}, +{2991, 15, 10211, {1, 3, 7, 7, 11, 29, 43, 41, 25, 237, 1585, 3735, 2617, 7541, 26243}}, +{2992, 15, 10218, {1, 1, 7, 9, 21, 5, 69, 231, 361, 39, 1695, 3043, 2973, 5487, 12857}}, +{2993, 15, 10228, {1, 1, 5, 3, 17, 63, 91, 217, 407, 133, 1373, 4021, 1737, 10043, 4561}}, +{2994, 15, 10235, {1, 3, 7, 9, 31, 13, 101, 231, 175, 457, 89, 2167, 2725, 8505, 375}}, +{2995, 15, 10242, {1, 1, 3, 15, 31, 11, 27, 211, 347, 291, 1881, 3091, 3307, 5117, 13341}}, +{2996, 15, 10244, {1, 3, 5, 5, 13, 25, 5, 197, 237, 135, 635, 1175, 5085, 14737, 10807}}, +{2997, 15, 10271, {1, 3, 3, 9, 7, 63, 107, 127, 147, 477, 1813, 2619, 8089, 2651, 26549}}, +{2998, 15, 10278, {1, 1, 5, 11, 15, 45, 27, 133, 45, 621, 707, 2679, 5929, 19, 9599}}, +{2999, 15, 10296, {1, 3, 7, 9, 21, 37, 41, 255, 69, 1009, 1999, 367, 6177, 10017, 3549}}, +{3000, 15, 10299, {1, 1, 1, 15, 19, 55, 73, 189, 423, 983, 1811, 2551, 4765, 12077, 18205}}, +{3001, 15, 10307, {1, 1, 5, 7, 17, 13, 25, 225, 463, 471, 631, 1811, 5797, 3235, 32253}}, +{3002, 15, 10309, {1, 3, 7, 1, 29, 7, 123, 187, 331, 735, 1757, 1115, 2077, 15725, 2183}}, +{3003, 15, 10310, {1, 3, 7, 9, 17, 61, 111, 93, 21, 1003, 1905, 3719, 2111, 11845, 6427}}, +{3004, 15, 10314, {1, 3, 7, 7, 17, 21, 51, 59, 115, 723, 2039, 2833, 5969, 5737, 18407}}, +{3005, 15, 10316, {1, 3, 3, 13, 9, 47, 95, 233, 13, 281, 1049, 619, 405, 16205, 20097}}, +{3006, 15, 10321, {1, 3, 7, 13, 9, 41, 11, 171, 453, 713, 587, 1669, 2489, 10277, 18599}}, +{3007, 15, 10328, {1, 3, 3, 13, 21, 41, 123, 173, 511, 399, 859, 1515, 5773, 12535, 26289}}, +{3008, 15, 10338, {1, 1, 7, 15, 11, 3, 113, 111, 73, 7, 1191, 2573, 7713, 465, 27615}}, +{3009, 15, 10343, {1, 1, 7, 15, 5, 5, 39, 11, 489, 13, 1041, 1639, 7879, 11899, 6899}}, +{3010, 15, 10344, {1, 1, 5, 9, 27, 31, 15, 237, 401, 795, 1675, 2361, 7333, 12507, 14627}}, +{3011, 15, 10347, {1, 3, 1, 7, 21, 53, 31, 81, 189, 683, 1283, 419, 7585, 9207, 15053}}, +{3012, 15, 10352, {1, 3, 5, 11, 21, 1, 49, 251, 403, 489, 1235, 429, 4855, 4081, 17575}}, +{3013, 15, 10364, {1, 3, 1, 15, 29, 33, 77, 53, 105, 731, 749, 2677, 3967, 7967, 18723}}, +{3014, 15, 10373, {1, 3, 3, 11, 9, 47, 11, 95, 137, 923, 599, 1585, 1969, 9625, 19171}}, +{3015, 15, 10386, {1, 1, 1, 5, 7, 7, 85, 49, 339, 883, 261, 2125, 3831, 9797, 16395}}, +{3016, 15, 10391, {1, 3, 3, 3, 5, 9, 33, 99, 75, 889, 101, 2099, 6635, 11511, 21573}}, +{3017, 15, 10398, {1, 1, 5, 11, 1, 11, 79, 49, 7, 131, 471, 1235, 3287, 14777, 12053}}, +{3018, 15, 10408, {1, 1, 5, 15, 9, 9, 83, 15, 21, 899, 1785, 2349, 3471, 6723, 1405}}, +{3019, 15, 10413, {1, 3, 5, 11, 1, 7, 121, 223, 509, 859, 1037, 491, 5529, 481, 17029}}, +{3020, 15, 10422, {1, 1, 7, 5, 17, 35, 91, 171, 113, 65, 423, 2371, 5105, 12827, 31087}}, +{3021, 15, 10445, {1, 1, 3, 3, 21, 47, 55, 11, 159, 51, 263, 2113, 661, 9147, 28929}}, +{3022, 15, 10460, {1, 1, 1, 9, 19, 7, 43, 223, 207, 787, 543, 2141, 4247, 7369, 29031}}, +{3023, 15, 10463, {1, 1, 7, 11, 11, 51, 121, 9, 211, 905, 687, 889, 1827, 13395, 3507}}, +{3024, 15, 10464, {1, 3, 1, 7, 15, 23, 5, 139, 469, 569, 33, 3477, 5391, 13665, 17011}}, +{3025, 15, 10474, {1, 1, 1, 15, 29, 29, 29, 201, 63, 1019, 97, 1671, 9, 4617, 19833}}, +{3026, 15, 10476, {1, 1, 5, 15, 25, 5, 67, 225, 189, 919, 1471, 1451, 5017, 16189, 31555}}, +{3027, 15, 10487, {1, 3, 5, 5, 15, 51, 89, 221, 149, 863, 43, 2381, 1767, 8037, 5319}}, +{3028, 15, 10494, {1, 3, 3, 1, 15, 17, 5, 77, 69, 27, 1883, 63, 5987, 1497, 3723}}, +{3029, 15, 10499, {1, 3, 7, 11, 7, 5, 113, 229, 123, 709, 1531, 641, 6655, 14923, 22947}}, +{3030, 15, 10506, {1, 3, 1, 13, 21, 15, 45, 175, 81, 499, 1113, 587, 7573, 11689, 15651}}, +{3031, 15, 10513, {1, 3, 1, 1, 29, 43, 101, 37, 131, 757, 465, 743, 2737, 8063, 23967}}, +{3032, 15, 10516, {1, 1, 7, 13, 9, 21, 39, 177, 51, 691, 2047, 1519, 6137, 5271, 8703}}, +{3033, 15, 10523, {1, 1, 3, 3, 5, 55, 63, 21, 3, 317, 461, 527, 2673, 16211, 6721}}, +{3034, 15, 10539, {1, 3, 5, 5, 5, 47, 7, 241, 387, 589, 323, 203, 7241, 14761, 13287}}, +{3035, 15, 10549, {1, 3, 5, 3, 23, 63, 55, 61, 231, 1023, 1315, 1181, 243, 7389, 25639}}, +{3036, 15, 10550, {1, 1, 7, 13, 31, 43, 41, 81, 127, 887, 1513, 4055, 1361, 2443, 6963}}, +{3037, 15, 10567, {1, 1, 1, 5, 7, 43, 43, 33, 323, 911, 1373, 3053, 6503, 513, 6457}}, +{3038, 15, 10576, {1, 1, 7, 11, 25, 61, 21, 149, 205, 349, 1433, 1587, 149, 7275, 5465}}, +{3039, 15, 10625, {1, 3, 5, 5, 11, 9, 31, 217, 119, 511, 209, 3325, 2023, 2877, 463}}, +{3040, 15, 10635, {1, 3, 5, 15, 21, 47, 89, 41, 347, 849, 1375, 3311, 807, 11443, 27643}}, +{3041, 15, 10643, {1, 1, 5, 7, 29, 43, 123, 191, 321, 373, 447, 2145, 1221, 2071, 12689}}, +{3042, 15, 10656, {1, 3, 5, 15, 1, 21, 43, 141, 461, 779, 1109, 2915, 909, 8585, 19859}}, +{3043, 15, 10671, {1, 3, 3, 11, 5, 17, 57, 13, 393, 661, 1761, 2455, 43, 8593, 20505}}, +{3044, 15, 10676, {1, 3, 5, 1, 31, 47, 65, 249, 77, 513, 851, 2381, 3447, 693, 7729}}, +{3045, 15, 10683, {1, 3, 5, 15, 31, 19, 83, 47, 369, 697, 1815, 819, 7573, 9245, 8013}}, +{3046, 15, 10685, {1, 3, 5, 5, 11, 25, 27, 151, 107, 339, 299, 3869, 3393, 5661, 2947}}, +{3047, 15, 10688, {1, 1, 3, 1, 1, 59, 85, 57, 175, 465, 239, 3115, 7157, 7035, 11463}}, +{3048, 15, 10697, {1, 1, 7, 5, 31, 41, 53, 149, 121, 743, 189, 159, 5289, 2945, 1179}}, +{3049, 15, 10700, {1, 3, 3, 15, 23, 51, 83, 25, 159, 163, 61, 713, 4529, 5253, 1603}}, +{3050, 15, 10712, {1, 3, 5, 11, 7, 29, 15, 177, 507, 695, 1305, 1863, 7525, 3063, 27433}}, +{3051, 15, 10724, {1, 1, 3, 11, 5, 41, 115, 227, 409, 951, 591, 4003, 7717, 4369, 15637}}, +{3052, 15, 10728, {1, 1, 7, 11, 23, 55, 71, 135, 51, 411, 2003, 2375, 6823, 1711, 4443}}, +{3053, 15, 10734, {1, 3, 1, 3, 31, 47, 31, 233, 243, 3, 313, 1649, 6955, 13679, 32327}}, +{3054, 15, 10739, {1, 1, 3, 11, 29, 9, 1, 79, 247, 677, 685, 3107, 5987, 9675, 29523}}, +{3055, 15, 10762, {1, 1, 1, 7, 25, 31, 39, 241, 483, 839, 1143, 437, 2317, 2437, 173}}, +{3056, 15, 10772, {1, 1, 5, 1, 17, 19, 83, 57, 39, 479, 715, 1911, 1091, 10937, 22145}}, +{3057, 15, 10781, {1, 1, 7, 1, 27, 45, 35, 55, 477, 719, 217, 3349, 7717, 6853, 9699}}, +{3058, 15, 10800, {1, 3, 1, 11, 9, 39, 25, 223, 303, 713, 151, 2611, 4629, 5855, 31729}}, +{3059, 15, 10805, {1, 1, 1, 11, 13, 35, 53, 39, 167, 779, 1673, 1221, 6281, 15113, 32027}}, +{3060, 15, 10827, {1, 1, 5, 9, 19, 63, 89, 113, 199, 107, 1015, 835, 2879, 9499, 25597}}, +{3061, 15, 10830, {1, 1, 7, 3, 19, 37, 15, 23, 449, 641, 1811, 3407, 6775, 6283, 31157}}, +{3062, 15, 10837, {1, 1, 3, 1, 19, 15, 31, 99, 511, 897, 1693, 2093, 955, 15897, 26693}}, +{3063, 15, 10841, {1, 1, 5, 1, 5, 15, 47, 19, 441, 541, 1621, 3877, 6407, 15991, 1931}}, +{3064, 15, 10847, {1, 3, 5, 9, 21, 61, 15, 77, 265, 351, 879, 3835, 6555, 2349, 23235}}, +{3065, 15, 10848, {1, 1, 5, 11, 25, 37, 29, 181, 341, 641, 1213, 1319, 6359, 6231, 32573}}, +{3066, 15, 10857, {1, 1, 1, 7, 1, 37, 87, 123, 33, 913, 111, 2613, 4895, 12595, 26633}}, +{3067, 15, 10866, {1, 3, 5, 3, 27, 11, 45, 89, 183, 241, 1355, 783, 3343, 239, 8643}}, +{3068, 15, 10868, {1, 3, 7, 7, 9, 35, 67, 187, 233, 577, 1445, 3063, 6039, 16233, 1453}}, +{3069, 15, 10872, {1, 1, 3, 13, 27, 11, 23, 15, 95, 63, 1931, 911, 8149, 6833, 3051}}, +{3070, 15, 10887, {1, 3, 3, 5, 29, 49, 125, 117, 47, 143, 423, 3215, 3605, 3677, 17155}}, +{3071, 15, 10899, {1, 3, 1, 1, 31, 1, 123, 195, 83, 893, 1947, 339, 2927, 7183, 15443}}, +{3072, 15, 10901, {1, 1, 7, 13, 31, 15, 91, 207, 39, 275, 439, 2617, 3093, 11041, 24997}}, +{3073, 15, 10915, {1, 1, 5, 3, 3, 41, 13, 67, 361, 497, 25, 3807, 3551, 9681, 21043}}, +{3074, 15, 10924, {1, 3, 3, 3, 11, 27, 103, 59, 427, 327, 1705, 29, 8127, 1641, 20847}}, +{3075, 15, 10929, {1, 3, 7, 5, 3, 37, 81, 137, 225, 101, 187, 3067, 2491, 12687, 16227}}, +{3076, 15, 10942, {1, 3, 5, 15, 15, 33, 69, 223, 225, 771, 1917, 2293, 2889, 12083, 23971}}, +{3077, 15, 10971, {1, 1, 3, 5, 11, 9, 121, 81, 203, 425, 1189, 2011, 3041, 3247, 739}}, +{3078, 15, 10992, {1, 3, 1, 1, 13, 9, 39, 169, 437, 571, 1481, 3355, 3895, 8975, 31031}}, +{3079, 15, 10995, {1, 3, 1, 11, 1, 43, 35, 35, 293, 11, 657, 1415, 5021, 14463, 17945}}, +{3080, 15, 11002, {1, 1, 5, 5, 13, 47, 91, 15, 159, 23, 971, 3575, 757, 13477, 31757}}, +{3081, 15, 11010, {1, 1, 7, 1, 5, 63, 69, 27, 71, 129, 123, 3767, 89, 7865, 1189}}, +{3082, 15, 11027, {1, 3, 3, 5, 23, 1, 83, 3, 487, 491, 217, 2583, 3889, 15009, 9227}}, +{3083, 15, 11029, {1, 3, 5, 15, 25, 1, 73, 107, 245, 191, 1449, 571, 1403, 6953, 17457}}, +{3084, 15, 11045, {1, 3, 3, 3, 27, 19, 25, 105, 207, 857, 1161, 3657, 2107, 7955, 517}}, +{3085, 15, 11057, {1, 3, 3, 9, 21, 29, 5, 103, 219, 35, 3, 1635, 4815, 15797, 29839}}, +{3086, 15, 11070, {1, 1, 7, 7, 3, 63, 75, 77, 13, 57, 603, 2333, 7761, 14397, 10875}}, +{3087, 15, 11092, {1, 3, 7, 13, 3, 11, 5, 255, 1, 947, 1695, 1927, 7447, 7407, 20797}}, +{3088, 15, 11099, {1, 1, 5, 1, 1, 21, 105, 73, 429, 973, 1801, 3943, 6161, 1309, 3359}}, +{3089, 15, 11106, {1, 1, 3, 15, 27, 9, 9, 129, 117, 545, 9, 1983, 6351, 10925, 27337}}, +{3090, 15, 11115, {1, 3, 3, 5, 5, 5, 13, 155, 503, 875, 1243, 2259, 3445, 11953, 6517}}, +{3091, 15, 11120, {1, 1, 7, 3, 29, 21, 121, 147, 413, 423, 1887, 2429, 2765, 16335, 3071}}, +{3092, 15, 11126, {1, 1, 7, 9, 5, 53, 41, 137, 463, 583, 1627, 1731, 6675, 3703, 8177}}, +{3093, 15, 11153, {1, 3, 5, 11, 31, 29, 67, 159, 425, 25, 1457, 139, 5019, 701, 7357}}, +{3094, 15, 11190, {1, 3, 1, 5, 25, 15, 123, 123, 245, 859, 249, 2175, 2137, 5765, 4873}}, +{3095, 15, 11199, {1, 1, 3, 5, 23, 1, 111, 111, 111, 469, 1473, 1777, 3579, 13503, 2569}}, +{3096, 15, 11222, {1, 1, 7, 3, 17, 23, 51, 23, 499, 135, 713, 3317, 807, 9589, 11349}}, +{3097, 15, 11225, {1, 1, 1, 15, 9, 51, 75, 159, 359, 773, 1521, 2913, 5901, 3047, 14649}}, +{3098, 15, 11226, {1, 1, 3, 1, 13, 61, 117, 195, 49, 267, 57, 1769, 3621, 9415, 29443}}, +{3099, 15, 11231, {1, 3, 7, 11, 3, 25, 33, 31, 315, 191, 359, 3399, 2481, 13831, 20205}}, +{3100, 15, 11244, {1, 3, 3, 5, 31, 43, 35, 125, 291, 51, 1469, 3857, 1707, 2641, 32137}}, +{3101, 15, 11259, {1, 3, 5, 1, 25, 11, 113, 137, 211, 159, 1667, 939, 6439, 5337, 32059}}, +{3102, 15, 11261, {1, 3, 3, 11, 31, 61, 99, 49, 383, 343, 395, 51, 6931, 16039, 5901}}, +{3103, 15, 11270, {1, 1, 3, 5, 9, 63, 63, 49, 405, 915, 1505, 2141, 6749, 7799, 17313}}, +{3104, 15, 11273, {1, 3, 7, 11, 15, 11, 49, 161, 155, 869, 121, 301, 6561, 4279, 15233}}, +{3105, 15, 11300, {1, 1, 5, 13, 19, 13, 103, 59, 503, 293, 701, 2527, 5327, 13927, 5025}}, +{3106, 15, 11307, {1, 1, 7, 1, 1, 37, 55, 155, 485, 399, 855, 2677, 5927, 9657, 2795}}, +{3107, 15, 11318, {1, 1, 1, 5, 19, 15, 121, 69, 385, 75, 1567, 2649, 5601, 12981, 15903}}, +{3108, 15, 11332, {1, 1, 1, 11, 19, 21, 45, 59, 505, 737, 15, 1383, 1177, 8375, 15557}}, +{3109, 15, 11335, {1, 1, 7, 13, 29, 19, 123, 127, 469, 773, 733, 3289, 8087, 5803, 27897}}, +{3110, 15, 11341, {1, 3, 3, 11, 19, 55, 101, 67, 485, 939, 607, 1521, 6161, 12235, 16499}}, +{3111, 15, 11347, {1, 3, 5, 13, 29, 31, 31, 9, 453, 151, 1055, 3873, 405, 12877, 29829}}, +{3112, 15, 11354, {1, 3, 5, 1, 17, 1, 17, 131, 107, 1003, 1749, 1849, 6207, 2153, 21275}}, +{3113, 15, 11360, {1, 3, 7, 15, 7, 25, 51, 143, 51, 517, 1841, 1771, 5389, 4633, 11123}}, +{3114, 15, 11369, {1, 3, 7, 11, 23, 7, 89, 95, 403, 361, 835, 585, 2783, 8091, 5141}}, +{3115, 15, 11372, {1, 3, 1, 9, 1, 53, 115, 11, 493, 587, 305, 3605, 1711, 4169, 20013}}, +{3116, 15, 11378, {1, 3, 7, 3, 17, 59, 55, 251, 49, 759, 1227, 3685, 7765, 1445, 20385}}, +{3117, 15, 11396, {1, 1, 5, 7, 29, 55, 19, 157, 129, 927, 893, 1235, 1955, 8153, 2865}}, +{3118, 15, 11405, {1, 3, 1, 15, 21, 35, 81, 53, 175, 939, 1635, 3597, 747, 14011, 12867}}, +{3119, 15, 11417, {1, 3, 7, 1, 27, 61, 91, 73, 405, 677, 603, 2715, 7099, 941, 24523}}, +{3120, 15, 11424, {1, 3, 5, 9, 13, 45, 35, 167, 57, 483, 735, 2777, 7847, 6257, 13109}}, +{3121, 15, 11427, {1, 3, 5, 7, 1, 3, 97, 13, 159, 533, 1791, 1061, 981, 10795, 26165}}, +{3122, 15, 11430, {1, 1, 5, 13, 27, 5, 125, 25, 251, 221, 1909, 197, 6987, 11537, 15287}}, +{3123, 15, 11439, {1, 3, 5, 5, 27, 15, 1, 131, 375, 923, 81, 3153, 6071, 2515, 23729}}, +{3124, 15, 11442, {1, 3, 3, 9, 9, 23, 71, 13, 465, 261, 937, 1549, 5993, 11325, 15065}}, +{3125, 15, 11448, {1, 3, 1, 3, 7, 63, 17, 129, 435, 23, 215, 2251, 1561, 9703, 26483}}, +{3126, 15, 11461, {1, 1, 3, 1, 5, 53, 77, 109, 9, 605, 371, 2081, 6023, 7145, 15837}}, +{3127, 15, 11468, {1, 3, 7, 11, 27, 39, 115, 47, 259, 337, 1857, 3465, 1549, 7747, 8525}}, +{3128, 15, 11471, {1, 3, 7, 7, 29, 29, 75, 77, 29, 661, 899, 3137, 2661, 15271, 28093}}, +{3129, 15, 11473, {1, 1, 1, 3, 3, 3, 11, 219, 39, 757, 1465, 249, 7445, 7013, 15187}}, +{3130, 15, 11476, {1, 3, 7, 15, 15, 1, 39, 245, 427, 1003, 1493, 1913, 6435, 14787, 13481}}, +{3131, 15, 11480, {1, 1, 7, 3, 3, 37, 5, 97, 343, 833, 1379, 1551, 5403, 1843, 5877}}, +{3132, 15, 11489, {1, 3, 1, 1, 3, 17, 17, 163, 339, 691, 1707, 1845, 5941, 4259, 24531}}, +{3133, 15, 11499, {1, 1, 1, 1, 27, 21, 85, 221, 71, 949, 1753, 391, 6349, 15901, 20811}}, +{3134, 15, 11516, {1, 1, 1, 5, 31, 19, 45, 99, 469, 783, 1747, 3807, 5889, 9485, 13715}}, +{3135, 15, 11522, {1, 3, 1, 9, 23, 21, 39, 25, 421, 713, 461, 2857, 5023, 5341, 6409}}, +{3136, 15, 11531, {1, 3, 7, 5, 25, 19, 59, 147, 387, 857, 375, 3103, 1261, 13697, 25675}}, +{3137, 15, 11539, {1, 3, 5, 5, 31, 21, 49, 251, 463, 441, 473, 3487, 3915, 11151, 17721}}, +{3138, 15, 11546, {1, 1, 3, 9, 15, 47, 81, 219, 143, 141, 81, 1705, 5847, 3437, 30521}}, +{3139, 15, 11551, {1, 1, 7, 3, 25, 19, 97, 41, 77, 105, 1337, 695, 7589, 8587, 7509}}, +{3140, 15, 11564, {1, 1, 5, 13, 3, 11, 61, 19, 139, 667, 963, 1567, 5715, 7079, 15967}}, +{3141, 15, 11582, {1, 1, 5, 5, 5, 29, 67, 57, 477, 173, 1163, 727, 823, 15635, 17705}}, +{3142, 15, 11589, {1, 3, 7, 11, 13, 39, 57, 193, 73, 617, 535, 1623, 4581, 4451, 2589}}, +{3143, 15, 11593, {1, 1, 5, 5, 9, 27, 75, 127, 325, 413, 1669, 1749, 8045, 16199, 12237}}, +{3144, 15, 11601, {1, 1, 3, 1, 17, 23, 27, 189, 319, 953, 347, 909, 4401, 12791, 25077}}, +{3145, 15, 11608, {1, 1, 3, 3, 17, 51, 37, 79, 301, 607, 885, 1169, 3275, 3327, 20013}}, +{3146, 15, 11617, {1, 3, 5, 3, 21, 9, 99, 213, 387, 889, 575, 3591, 5377, 2981, 23989}}, +{3147, 15, 11630, {1, 3, 3, 13, 11, 7, 23, 255, 279, 853, 453, 2377, 8123, 15393, 9669}}, +{3148, 15, 11663, {1, 3, 1, 7, 11, 9, 109, 35, 405, 449, 1967, 2943, 3485, 5031, 14273}}, +{3149, 15, 11666, {1, 3, 3, 1, 25, 27, 43, 115, 435, 675, 1937, 1477, 4831, 9417, 7017}}, +{3150, 15, 11668, {1, 1, 7, 13, 19, 45, 83, 241, 487, 215, 1453, 209, 4061, 1765, 15623}}, +{3151, 15, 11677, {1, 1, 7, 7, 21, 31, 95, 9, 287, 1005, 1933, 3405, 6913, 7733, 18975}}, +{3152, 15, 11682, {1, 1, 1, 11, 13, 11, 25, 39, 283, 57, 255, 2809, 5767, 6127, 6705}}, +{3153, 15, 11687, {1, 3, 1, 11, 1, 51, 73, 181, 261, 215, 385, 2777, 5169, 12431, 23563}}, +{3154, 15, 11696, {1, 3, 3, 9, 9, 39, 123, 197, 501, 679, 109, 3369, 4817, 8855, 7997}}, +{3155, 15, 11713, {1, 1, 5, 1, 29, 61, 15, 183, 453, 999, 1211, 3217, 8035, 5153, 19975}}, +{3156, 15, 11728, {1, 3, 7, 11, 11, 21, 51, 45, 379, 793, 289, 309, 1229, 7159, 581}}, +{3157, 15, 11747, {1, 1, 3, 9, 17, 11, 75, 67, 289, 191, 1083, 2949, 6063, 6611, 21595}}, +{3158, 15, 11750, {1, 3, 7, 3, 27, 45, 59, 193, 485, 277, 27, 1219, 2389, 15875, 6273}}, +{3159, 15, 11754, {1, 1, 5, 3, 31, 29, 65, 197, 115, 163, 9, 783, 5573, 2833, 12603}}, +{3160, 15, 11759, {1, 1, 3, 7, 5, 53, 115, 181, 175, 749, 1335, 1151, 2131, 12467, 15811}}, +{3161, 15, 11761, {1, 1, 1, 9, 27, 39, 11, 1, 443, 677, 777, 1857, 7459, 3177, 3875}}, +{3162, 15, 11764, {1, 1, 7, 7, 17, 3, 23, 161, 105, 603, 1991, 3845, 465, 11467, 2077}}, +{3163, 15, 11767, {1, 1, 3, 13, 5, 23, 39, 35, 399, 795, 265, 207, 1823, 15069, 31839}}, +{3164, 15, 11797, {1, 1, 1, 1, 29, 61, 89, 193, 41, 99, 315, 1021, 6109, 12507, 19973}}, +{3165, 15, 11804, {1, 1, 5, 3, 13, 57, 119, 251, 215, 695, 1521, 4081, 2481, 657, 855}}, +{3166, 15, 11808, {1, 1, 7, 3, 25, 5, 3, 133, 111, 385, 773, 1027, 4327, 3031, 3537}}, +{3167, 15, 11831, {1, 3, 7, 5, 5, 27, 43, 117, 479, 83, 1421, 2791, 6551, 6231, 10353}}, +{3168, 15, 11832, {1, 1, 1, 13, 3, 29, 35, 71, 85, 821, 1671, 3057, 797, 13683, 7025}}, +{3169, 15, 11849, {1, 3, 7, 1, 1, 47, 117, 233, 141, 993, 1381, 2551, 1031, 11765, 18429}}, +{3170, 15, 11855, {1, 3, 1, 3, 13, 3, 77, 29, 35, 807, 1109, 695, 5605, 5477, 449}}, +{3171, 15, 11863, {1, 1, 1, 15, 21, 37, 117, 105, 273, 311, 1287, 1415, 1221, 1847, 19487}}, +{3172, 15, 11880, {1, 3, 1, 11, 21, 61, 107, 225, 335, 501, 1995, 2399, 5475, 12613, 18877}}, +{3173, 15, 11883, {1, 3, 3, 1, 31, 41, 27, 205, 103, 837, 639, 2007, 2759, 12471, 1457}}, +{3174, 15, 11885, {1, 1, 7, 13, 29, 39, 71, 245, 105, 235, 1277, 1515, 6129, 15947, 26653}}, +{3175, 15, 11898, {1, 1, 7, 5, 7, 13, 87, 251, 315, 1017, 587, 2917, 5911, 2919, 29715}}, +{3176, 15, 11916, {1, 1, 1, 3, 7, 19, 81, 243, 177, 917, 2023, 2365, 7465, 4901, 29841}}, +{3177, 15, 11924, {1, 3, 5, 15, 1, 31, 15, 147, 285, 1003, 1757, 47, 6925, 1197, 19633}}, +{3178, 15, 11928, {1, 1, 5, 7, 27, 25, 47, 209, 85, 403, 1399, 2331, 3663, 595, 13407}}, +{3179, 15, 11947, {1, 3, 5, 9, 7, 25, 7, 139, 389, 817, 1153, 1421, 5735, 9577, 10269}}, +{3180, 15, 11955, {1, 1, 1, 9, 5, 61, 49, 117, 389, 541, 433, 1405, 2575, 223, 7265}}, +{3181, 15, 11961, {1, 1, 5, 7, 15, 1, 81, 207, 435, 843, 835, 3797, 7637, 5333, 31115}}, +{3182, 15, 11962, {1, 3, 7, 11, 13, 3, 47, 249, 301, 715, 2015, 3049, 8155, 10989, 26051}}, +{3183, 15, 11982, {1, 1, 7, 7, 3, 33, 119, 113, 381, 575, 367, 41, 3317, 11727, 4351}}, +{3184, 15, 11990, {1, 3, 3, 13, 9, 3, 51, 37, 173, 137, 533, 1827, 631, 10047, 6267}}, +{3185, 15, 12010, {1, 3, 3, 11, 17, 39, 61, 245, 13, 139, 1281, 1319, 1233, 13629, 32269}}, +{3186, 15, 12018, {1, 1, 1, 7, 15, 17, 91, 109, 163, 609, 11, 3251, 7653, 14035, 31755}}, +{3187, 15, 12027, {1, 3, 3, 15, 13, 21, 55, 231, 385, 133, 1833, 2637, 6935, 14303, 26745}}, +{3188, 15, 12029, {1, 1, 1, 7, 17, 41, 125, 141, 89, 823, 1411, 3637, 6211, 13323, 6111}}, +{3189, 15, 12035, {1, 1, 1, 11, 1, 21, 9, 43, 97, 685, 1223, 1491, 121, 1793, 2397}}, +{3190, 15, 12055, {1, 3, 5, 5, 17, 17, 5, 223, 129, 865, 1839, 1137, 6391, 4377, 9233}}, +{3191, 15, 12062, {1, 3, 7, 15, 21, 55, 5, 77, 341, 637, 1853, 1435, 1195, 9283, 21257}}, +{3192, 15, 12068, {1, 3, 5, 1, 9, 49, 43, 211, 127, 655, 1397, 1235, 5279, 2351, 24229}}, +{3193, 15, 12071, {1, 3, 5, 3, 25, 29, 13, 229, 25, 675, 837, 2753, 2125, 9863, 11293}}, +{3194, 15, 12072, {1, 3, 5, 7, 23, 43, 127, 1, 163, 237, 337, 3019, 7747, 16227, 2881}}, +{3195, 15, 12086, {1, 3, 5, 5, 25, 9, 43, 171, 421, 521, 1885, 337, 7873, 6347, 13181}}, +{3196, 15, 12097, {1, 3, 5, 5, 7, 47, 107, 173, 163, 191, 625, 3389, 2833, 7945, 24787}}, +{3197, 15, 12098, {1, 1, 7, 3, 27, 57, 27, 209, 253, 815, 301, 1633, 3945, 5051, 28851}}, +{3198, 15, 12100, {1, 3, 7, 9, 9, 51, 103, 213, 437, 189, 1857, 1331, 5551, 10641, 27405}}, +{3199, 15, 12112, {1, 1, 5, 5, 15, 1, 25, 105, 117, 347, 161, 3369, 3589, 12903, 23559}}, +{3200, 15, 12118, {1, 1, 1, 5, 3, 61, 93, 51, 81, 281, 1383, 745, 4137, 2005, 3635}}, +{3201, 15, 12133, {1, 3, 7, 5, 13, 57, 111, 211, 303, 477, 359, 4019, 6779, 5129, 22035}}, +{3202, 15, 12134, {1, 1, 1, 7, 17, 29, 113, 113, 201, 531, 749, 739, 2879, 3315, 18733}}, +{3203, 15, 12137, {1, 3, 7, 13, 21, 55, 21, 183, 359, 75, 377, 2211, 4281, 14317, 28307}}, +{3204, 15, 12161, {1, 3, 7, 1, 21, 1, 49, 213, 317, 75, 113, 1741, 7963, 12785, 11571}}, +{3205, 15, 12162, {1, 3, 7, 9, 11, 31, 29, 101, 261, 141, 715, 2727, 8187, 2075, 32433}}, +{3206, 15, 12171, {1, 3, 7, 3, 23, 9, 17, 143, 385, 211, 593, 241, 6567, 10777, 6677}}, +{3207, 15, 12174, {1, 1, 3, 15, 3, 17, 117, 99, 91, 793, 989, 2421, 5643, 16103, 9759}}, +{3208, 15, 12185, {1, 3, 7, 11, 23, 43, 107, 35, 421, 431, 743, 853, 7939, 12169, 4199}}, +{3209, 15, 12204, {1, 1, 1, 11, 21, 53, 17, 203, 123, 395, 59, 929, 255, 7585, 10945}}, +{3210, 15, 12212, {1, 3, 3, 15, 17, 57, 57, 133, 67, 71, 1685, 903, 4079, 15423, 26495}}, +{3211, 15, 12215, {1, 1, 1, 15, 3, 47, 95, 39, 405, 407, 1557, 3001, 6225, 15187, 5663}}, +{3212, 15, 12216, {1, 3, 5, 5, 13, 47, 33, 61, 375, 1023, 1981, 2773, 2375, 11321, 17731}}, +{3213, 15, 12253, {1, 3, 5, 9, 17, 59, 117, 95, 493, 149, 1269, 2865, 369, 2109, 24601}}, +{3214, 15, 12260, {1, 3, 5, 13, 17, 63, 67, 247, 95, 721, 67, 305, 6179, 15399, 32559}}, +{3215, 15, 12277, {1, 1, 5, 1, 3, 21, 41, 15, 453, 475, 2017, 3193, 5903, 897, 4237}}, +{3216, 15, 12289, {1, 1, 5, 3, 15, 41, 1, 141, 441, 575, 155, 3791, 7711, 11231, 24611}}, +{3217, 15, 12295, {1, 3, 7, 1, 17, 53, 27, 169, 31, 437, 963, 1793, 7777, 1917, 29311}}, +{3218, 15, 12314, {1, 3, 3, 13, 9, 27, 77, 87, 329, 885, 749, 1713, 6013, 6921, 629}}, +{3219, 15, 12323, {1, 3, 5, 13, 3, 7, 53, 27, 353, 267, 925, 2141, 439, 15175, 30851}}, +{3220, 15, 12325, {1, 3, 3, 13, 17, 57, 35, 101, 265, 901, 1825, 2159, 6149, 5967, 24023}}, +{3221, 15, 12335, {1, 1, 5, 11, 13, 51, 99, 111, 193, 415, 1541, 2929, 5045, 3147, 12587}}, +{3222, 15, 12349, {1, 3, 7, 11, 15, 9, 33, 17, 511, 815, 299, 1077, 6171, 10451, 15039}}, +{3223, 15, 12358, {1, 1, 1, 15, 25, 63, 51, 137, 449, 951, 1051, 1101, 4725, 2463, 7355}}, +{3224, 15, 12372, {1, 1, 1, 7, 27, 63, 29, 179, 317, 521, 1459, 827, 6599, 13459, 15439}}, +{3225, 15, 12376, {1, 3, 3, 15, 17, 31, 37, 191, 229, 245, 181, 941, 5761, 1849, 31599}}, +{3226, 15, 12379, {1, 1, 1, 9, 27, 45, 67, 239, 481, 615, 1667, 3751, 8141, 10013, 2125}}, +{3227, 15, 12386, {1, 1, 1, 1, 13, 51, 117, 135, 73, 151, 1291, 2541, 1411, 3767, 26949}}, +{3228, 15, 12395, {1, 3, 1, 9, 7, 11, 21, 187, 243, 857, 1951, 865, 7273, 2041, 8155}}, +{3229, 15, 12416, {1, 1, 3, 3, 19, 33, 89, 115, 455, 137, 707, 1867, 4221, 2433, 9119}}, +{3230, 15, 12421, {1, 1, 3, 11, 5, 3, 121, 1, 71, 951, 603, 3873, 723, 3285, 19289}}, +{3231, 15, 12440, {1, 3, 7, 15, 21, 1, 117, 17, 455, 519, 731, 3003, 5741, 9557, 29163}}, +{3232, 15, 12452, {1, 1, 3, 13, 25, 5, 43, 147, 209, 895, 255, 1231, 241, 487, 15593}}, +{3233, 15, 12455, {1, 1, 3, 13, 7, 1, 89, 187, 217, 927, 2029, 3521, 2777, 8103, 22819}}, +{3234, 15, 12456, {1, 1, 7, 11, 7, 33, 3, 73, 5, 489, 227, 2259, 7031, 6425, 26135}}, +{3235, 15, 12462, {1, 3, 3, 7, 31, 19, 97, 201, 455, 819, 945, 2771, 8083, 8711, 2835}}, +{3236, 15, 12467, {1, 1, 1, 5, 15, 45, 43, 157, 245, 967, 877, 2289, 4499, 9891, 18827}}, +{3237, 15, 12479, {1, 3, 1, 7, 21, 59, 123, 63, 231, 485, 1781, 1211, 4597, 5269, 1607}}, +{3238, 15, 12505, {1, 1, 1, 13, 23, 39, 105, 55, 249, 991, 1625, 3089, 3825, 4275, 29139}}, +{3239, 15, 12521, {1, 3, 3, 1, 29, 29, 55, 169, 13, 895, 1355, 1101, 6063, 12935, 23215}}, +{3240, 15, 12535, {1, 1, 5, 5, 31, 49, 99, 137, 209, 1017, 1179, 3931, 637, 14131, 19285}}, +{3241, 15, 12547, {1, 1, 1, 1, 3, 11, 119, 11, 215, 337, 243, 3883, 3807, 7335, 11901}}, +{3242, 15, 12556, {1, 3, 7, 3, 7, 27, 71, 225, 219, 367, 1213, 2739, 1185, 10175, 21313}}, +{3243, 15, 12561, {1, 3, 7, 13, 7, 49, 23, 223, 61, 1011, 797, 1335, 6711, 5961, 5605}}, +{3244, 15, 12568, {1, 3, 3, 11, 19, 37, 1, 149, 39, 661, 929, 2125, 2299, 5181, 28083}}, +{3245, 15, 12578, {1, 3, 3, 13, 13, 9, 67, 21, 463, 279, 529, 523, 6705, 11011, 31695}}, +{3246, 15, 12583, {1, 3, 1, 5, 13, 1, 123, 3, 291, 625, 1949, 2713, 5917, 10343, 13627}}, +{3247, 15, 12595, {1, 1, 3, 9, 27, 41, 3, 207, 103, 265, 811, 549, 6109, 313, 8889}}, +{3248, 15, 12604, {1, 3, 3, 13, 23, 43, 99, 33, 279, 463, 955, 793, 4113, 10615, 16957}}, +{3249, 15, 12610, {1, 1, 5, 7, 11, 49, 79, 45, 17, 937, 359, 1037, 1099, 3003, 31561}}, +{3250, 15, 12621, {1, 1, 1, 7, 3, 45, 111, 35, 109, 983, 53, 4057, 7349, 3599, 2209}}, +{3251, 15, 12622, {1, 3, 7, 11, 9, 43, 27, 9, 85, 529, 1497, 347, 759, 12449, 11373}}, +{3252, 15, 12624, {1, 1, 3, 9, 17, 1, 49, 31, 367, 813, 1385, 2025, 773, 4679, 4543}}, +{3253, 15, 12629, {1, 1, 5, 15, 15, 9, 43, 97, 239, 995, 1037, 841, 4167, 12113, 23765}}, +{3254, 15, 12630, {1, 3, 5, 9, 29, 53, 123, 49, 221, 113, 1157, 73, 6087, 1363, 11029}}, +{3255, 15, 12639, {1, 3, 1, 13, 3, 15, 69, 199, 279, 919, 5, 161, 4817, 15031, 121}}, +{3256, 15, 12640, {1, 3, 1, 9, 3, 31, 117, 77, 393, 241, 645, 3181, 1067, 15879, 2037}}, +{3257, 15, 12650, {1, 3, 3, 15, 3, 63, 57, 33, 117, 789, 941, 1301, 5865, 12693, 3523}}, +{3258, 15, 12679, {1, 1, 5, 13, 3, 61, 51, 151, 175, 305, 95, 1557, 6567, 7841, 13903}}, +{3259, 15, 12680, {1, 3, 3, 5, 15, 25, 127, 79, 245, 767, 645, 3933, 1357, 12579, 4067}}, +{3260, 15, 12698, {1, 3, 5, 11, 21, 31, 13, 251, 127, 231, 1795, 2627, 1191, 3363, 23543}}, +{3261, 15, 12716, {1, 1, 3, 5, 7, 49, 121, 57, 131, 481, 1879, 525, 5225, 337, 1957}}, +{3262, 15, 12721, {1, 1, 5, 13, 9, 55, 27, 37, 211, 125, 119, 3373, 251, 12357, 13975}}, +{3263, 15, 12722, {1, 3, 3, 15, 1, 51, 91, 119, 233, 993, 203, 1635, 1167, 6327, 29119}}, +{3264, 15, 12731, {1, 1, 7, 1, 13, 5, 23, 253, 121, 989, 1105, 3321, 3221, 6073, 21185}}, +{3265, 15, 12742, {1, 1, 3, 15, 13, 49, 121, 247, 247, 133, 485, 1067, 7875, 411, 7647}}, +{3266, 15, 12745, {1, 3, 7, 13, 31, 37, 127, 241, 145, 133, 53, 267, 2029, 3703, 16123}}, +{3267, 15, 12751, {1, 3, 1, 15, 15, 9, 15, 89, 35, 367, 401, 61, 1953, 7873, 17861}}, +{3268, 15, 12759, {1, 1, 1, 1, 1, 41, 71, 249, 213, 779, 1385, 1767, 999, 15151, 16647}}, +{3269, 15, 12763, {1, 3, 7, 13, 31, 23, 123, 235, 343, 949, 309, 3777, 3587, 853, 19779}}, +{3270, 15, 12769, {1, 1, 3, 13, 29, 35, 5, 37, 63, 757, 303, 1579, 3443, 243, 11873}}, +{3271, 15, 12781, {1, 3, 1, 9, 19, 49, 81, 53, 11, 901, 1857, 147, 3103, 14019, 21}}, +{3272, 15, 12793, {1, 3, 7, 13, 3, 39, 99, 99, 45, 91, 1567, 551, 3129, 4809, 29057}}, +{3273, 15, 12799, {1, 3, 7, 3, 3, 27, 17, 231, 377, 381, 1479, 2525, 2595, 2799, 25737}}, +{3274, 15, 12815, {1, 3, 5, 15, 15, 25, 103, 215, 301, 59, 1417, 981, 7579, 12731, 22329}}, +{3275, 15, 12824, {1, 1, 1, 13, 5, 31, 61, 31, 349, 925, 1301, 685, 435, 11567, 10715}}, +{3276, 15, 12836, {1, 1, 7, 9, 19, 57, 109, 1, 37, 377, 1015, 2273, 6741, 3191, 15949}}, +{3277, 15, 12845, {1, 3, 3, 13, 3, 23, 103, 127, 11, 59, 1847, 1175, 425, 3423, 20643}}, +{3278, 15, 12853, {1, 3, 3, 7, 3, 11, 105, 141, 55, 217, 1427, 477, 667, 9403, 11905}}, +{3279, 15, 12854, {1, 3, 3, 5, 3, 27, 11, 187, 495, 907, 1925, 445, 6639, 8159, 15225}}, +{3280, 15, 12857, {1, 3, 1, 5, 27, 31, 77, 213, 73, 343, 1123, 3609, 2431, 15329, 32165}}, +{3281, 15, 12866, {1, 1, 7, 5, 1, 11, 105, 139, 485, 1007, 709, 3509, 5231, 11717, 31433}}, +{3282, 15, 12872, {1, 1, 3, 15, 23, 49, 95, 169, 399, 1019, 19, 2013, 5311, 7951, 22609}}, +{3283, 15, 12875, {1, 3, 1, 7, 13, 3, 29, 203, 209, 701, 1791, 2615, 5351, 4237, 12565}}, +{3284, 15, 12878, {1, 3, 1, 15, 27, 11, 91, 31, 205, 205, 1683, 901, 5129, 6049, 11865}}, +{3285, 15, 12880, {1, 1, 7, 7, 27, 59, 21, 3, 209, 79, 769, 4013, 2041, 2645, 11561}}, +{3286, 15, 12885, {1, 3, 7, 11, 5, 45, 39, 243, 185, 871, 795, 1845, 8043, 6285, 20991}}, +{3287, 15, 12901, {1, 1, 5, 7, 13, 7, 15, 165, 349, 179, 789, 1269, 3787, 5429, 26567}}, +{3288, 15, 12902, {1, 3, 3, 13, 31, 23, 75, 41, 177, 735, 1889, 4039, 3519, 15003, 965}}, +{3289, 15, 12920, {1, 3, 1, 7, 15, 57, 15, 139, 27, 469, 1003, 691, 7893, 9643, 30983}}, +{3290, 15, 12926, {1, 3, 1, 13, 23, 27, 3, 237, 233, 875, 99, 883, 6167, 5463, 6245}}, +{3291, 15, 12929, {1, 1, 5, 13, 25, 57, 79, 51, 147, 619, 1147, 279, 6583, 1939, 477}}, +{3292, 15, 12939, {1, 3, 5, 5, 31, 61, 125, 163, 213, 699, 583, 3865, 615, 9707, 11651}}, +{3293, 15, 12941, {1, 1, 5, 1, 5, 21, 93, 239, 31, 641, 777, 27, 5247, 8993, 21053}}, +{3294, 15, 12950, {1, 3, 7, 9, 1, 13, 61, 57, 503, 453, 83, 3271, 2845, 1121, 18639}}, +{3295, 15, 12953, {1, 1, 7, 5, 29, 53, 13, 219, 379, 441, 821, 3179, 4877, 2535, 7557}}, +{3296, 15, 12992, {1, 1, 7, 13, 9, 53, 17, 183, 265, 393, 587, 2753, 6453, 7135, 24737}}, +{3297, 15, 13002, {1, 1, 1, 13, 11, 23, 73, 109, 393, 1013, 559, 755, 7291, 6631, 26509}}, +{3298, 15, 13010, {1, 3, 1, 5, 5, 15, 107, 103, 355, 307, 1559, 837, 5413, 5285, 17489}}, +{3299, 15, 13058, {1, 1, 5, 7, 17, 21, 21, 23, 109, 709, 1947, 3585, 3629, 4669, 949}}, +{3300, 15, 13072, {1, 3, 7, 1, 9, 33, 85, 147, 467, 259, 1913, 199, 7399, 9551, 22387}}, +{3301, 15, 13084, {1, 3, 5, 11, 15, 53, 23, 41, 249, 515, 1161, 2467, 1299, 7449, 2613}}, +{3302, 15, 13087, {1, 1, 5, 5, 5, 29, 91, 139, 487, 545, 321, 3035, 4545, 6747, 21673}}, +{3303, 15, 13091, {1, 1, 3, 13, 23, 49, 95, 103, 25, 119, 469, 2515, 2551, 841, 25089}}, +{3304, 15, 13097, {1, 1, 5, 7, 11, 31, 31, 197, 245, 715, 257, 4043, 8099, 11531, 5617}}, +{3305, 15, 13108, {1, 1, 3, 3, 19, 7, 9, 179, 103, 995, 191, 179, 3843, 5215, 27639}}, +{3306, 15, 13123, {1, 3, 1, 7, 23, 59, 25, 65, 399, 211, 1453, 3511, 7203, 16015, 32197}}, +{3307, 15, 13149, {1, 3, 3, 5, 9, 35, 109, 67, 197, 449, 643, 519, 5751, 15551, 11331}}, +{3308, 15, 13150, {1, 3, 5, 3, 1, 17, 53, 201, 265, 351, 467, 911, 1117, 7183, 20371}}, +{3309, 15, 13163, {1, 1, 7, 7, 27, 17, 93, 81, 227, 619, 1191, 735, 815, 12615, 2719}}, +{3310, 15, 13166, {1, 3, 1, 15, 19, 3, 83, 75, 343, 297, 1019, 3469, 4383, 13299, 29755}}, +{3311, 15, 13178, {1, 1, 5, 3, 13, 55, 119, 169, 85, 595, 299, 2469, 5625, 2877, 16117}}, +{3312, 15, 13180, {1, 1, 3, 5, 15, 17, 61, 161, 47, 393, 143, 867, 5517, 9495, 12795}}, +{3313, 15, 13184, {1, 3, 5, 1, 27, 31, 113, 125, 251, 687, 969, 1473, 2245, 6355, 13655}}, +{3314, 15, 13204, {1, 1, 1, 5, 5, 37, 29, 133, 443, 899, 277, 2353, 7223, 4459, 19159}}, +{3315, 15, 13238, {1, 1, 3, 9, 19, 27, 53, 145, 195, 167, 2045, 447, 1803, 1895, 8431}}, +{3316, 15, 13242, {1, 1, 3, 9, 5, 27, 91, 147, 233, 451, 475, 27, 4629, 16181, 16437}}, +{3317, 15, 13249, {1, 3, 5, 3, 29, 17, 53, 167, 433, 689, 1131, 2985, 1553, 11697, 6993}}, +{3318, 15, 13255, {1, 3, 3, 13, 21, 43, 69, 229, 399, 525, 179, 237, 7017, 5703, 17653}}, +{3319, 15, 13269, {1, 1, 3, 15, 13, 39, 75, 163, 229, 875, 197, 477, 3667, 15501, 15801}}, +{3320, 15, 13270, {1, 1, 7, 15, 15, 51, 81, 187, 487, 673, 865, 1915, 1009, 5935, 8097}}, +{3321, 15, 13274, {1, 3, 5, 5, 7, 3, 63, 77, 495, 815, 391, 2321, 1007, 15661, 30715}}, +{3322, 15, 13285, {1, 1, 7, 3, 17, 25, 83, 173, 173, 911, 1373, 2957, 4549, 15977, 17695}}, +{3323, 15, 13289, {1, 1, 7, 13, 13, 23, 77, 147, 497, 1003, 1687, 1795, 1393, 1881, 8479}}, +{3324, 15, 13298, {1, 3, 7, 11, 27, 43, 97, 25, 61, 457, 203, 2573, 5943, 15021, 4003}}, +{3325, 15, 13307, {1, 3, 3, 13, 9, 37, 37, 25, 219, 889, 1535, 2791, 4531, 13679, 12663}}, +{3326, 15, 13312, {1, 1, 3, 1, 17, 7, 51, 123, 89, 887, 1467, 1645, 3767, 6383, 30837}}, +{3327, 15, 13335, {1, 3, 3, 1, 21, 47, 5, 151, 83, 257, 569, 2711, 637, 12569, 16893}}, +{3328, 15, 13345, {1, 3, 7, 1, 31, 37, 73, 3, 115, 919, 1817, 2483, 4811, 15245, 4375}}, +{3329, 15, 13357, {1, 1, 1, 5, 1, 39, 39, 231, 9, 733, 455, 3383, 4777, 7235, 12631}}, +{3330, 15, 13366, {1, 1, 7, 9, 13, 25, 55, 25, 73, 59, 1699, 929, 755, 1279, 5583}}, +{3331, 15, 13372, {1, 3, 5, 3, 9, 49, 79, 55, 479, 179, 1159, 4079, 3503, 11603, 12361}}, +{3332, 15, 13380, {1, 1, 5, 9, 21, 45, 31, 163, 377, 817, 219, 147, 2581, 12769, 30783}}, +{3333, 15, 13384, {1, 3, 1, 7, 15, 27, 39, 189, 493, 259, 1663, 1213, 961, 11089, 16079}}, +{3334, 15, 13395, {1, 1, 5, 9, 5, 41, 13, 153, 313, 337, 1027, 1267, 4249, 13071, 27043}}, +{3335, 15, 13407, {1, 3, 7, 3, 13, 11, 23, 255, 51, 527, 317, 3217, 5037, 12723, 17411}}, +{3336, 15, 13408, {1, 1, 5, 1, 25, 57, 83, 97, 233, 513, 1283, 2675, 4111, 4111, 32141}}, +{3337, 15, 13413, {1, 3, 3, 15, 25, 33, 103, 81, 155, 189, 139, 1179, 2691, 15119, 13959}}, +{3338, 15, 13414, {1, 3, 3, 1, 25, 55, 67, 19, 19, 9, 437, 579, 4273, 10733, 7125}}, +{3339, 15, 13417, {1, 1, 1, 7, 23, 41, 47, 5, 435, 749, 595, 199, 3941, 7199, 4795}}, +{3340, 15, 13437, {1, 3, 1, 15, 5, 49, 35, 9, 199, 703, 1769, 3269, 5689, 13063, 22771}}, +{3341, 15, 13441, {1, 1, 5, 5, 21, 55, 125, 55, 63, 149, 1167, 3577, 1051, 3921, 20545}}, +{3342, 15, 13447, {1, 3, 7, 13, 29, 53, 107, 193, 163, 339, 1335, 1573, 5809, 5681, 29487}}, +{3343, 15, 13456, {1, 1, 1, 9, 17, 9, 91, 177, 211, 453, 1807, 1881, 6051, 225, 6021}}, +{3344, 15, 13459, {1, 1, 1, 13, 15, 1, 29, 43, 181, 105, 1945, 2313, 6429, 2901, 6221}}, +{3345, 15, 13461, {1, 3, 5, 11, 29, 55, 115, 115, 187, 1013, 697, 1885, 121, 12387, 32443}}, +{3346, 15, 13466, {1, 1, 1, 7, 19, 51, 21, 107, 55, 125, 1655, 2281, 3293, 15749, 27521}}, +{3347, 15, 13484, {1, 1, 7, 9, 19, 9, 81, 93, 139, 401, 193, 73, 5159, 9323, 6019}}, +{3348, 15, 13487, {1, 1, 7, 9, 15, 51, 115, 69, 247, 599, 1163, 2251, 1211, 8827, 15581}}, +{3349, 15, 13489, {1, 1, 7, 9, 5, 39, 75, 185, 321, 911, 849, 843, 6791, 10407, 10513}}, +{3350, 15, 13492, {1, 1, 5, 5, 15, 9, 21, 47, 459, 681, 2001, 1545, 5939, 7073, 29043}}, +{3351, 15, 13496, {1, 3, 1, 11, 13, 25, 53, 97, 487, 797, 567, 3757, 5597, 6313, 18531}}, +{3352, 15, 13510, {1, 1, 3, 3, 29, 55, 11, 219, 325, 591, 2015, 383, 2595, 11855, 22501}}, +{3353, 15, 13531, {1, 1, 1, 5, 15, 57, 33, 125, 323, 749, 1843, 4019, 2075, 6673, 6957}}, +{3354, 15, 13538, {1, 1, 5, 7, 19, 7, 47, 239, 51, 107, 1081, 467, 5493, 7617, 10355}}, +{3355, 15, 13543, {1, 3, 1, 1, 11, 3, 67, 199, 175, 421, 935, 309, 4449, 6363, 9183}}, +{3356, 15, 13547, {1, 1, 1, 7, 9, 33, 3, 219, 481, 513, 417, 1267, 2863, 765, 18431}}, +{3357, 15, 13572, {1, 3, 1, 1, 19, 1, 89, 109, 415, 105, 487, 3241, 7465, 9233, 16307}}, +{3358, 15, 13581, {1, 1, 3, 13, 9, 43, 25, 231, 383, 789, 1855, 691, 3465, 2387, 11715}}, +{3359, 15, 13590, {1, 3, 3, 3, 13, 39, 63, 107, 33, 265, 437, 117, 3179, 5543, 28179}}, +{3360, 15, 13605, {1, 3, 3, 13, 21, 5, 31, 111, 321, 425, 253, 3501, 3209, 15429, 18383}}, +{3361, 15, 13612, {1, 3, 5, 9, 1, 27, 117, 187, 433, 459, 1999, 1069, 4857, 8591, 26343}}, +{3362, 15, 13624, {1, 1, 7, 3, 15, 43, 11, 193, 391, 341, 1203, 1259, 7265, 1783, 13161}}, +{3363, 15, 13630, {1, 1, 7, 1, 5, 15, 45, 143, 193, 985, 1105, 3483, 2421, 9687, 22347}}, +{3364, 15, 13632, {1, 3, 7, 13, 21, 17, 79, 231, 487, 663, 1101, 1025, 5779, 14681, 29181}}, +{3365, 15, 13638, {1, 1, 3, 9, 15, 19, 55, 219, 27, 963, 1513, 1017, 3907, 12279, 32655}}, +{3366, 15, 13661, {1, 3, 7, 3, 31, 27, 17, 1, 51, 861, 529, 1225, 6395, 15787, 5231}}, +{3367, 15, 13665, {1, 3, 3, 11, 27, 7, 101, 143, 21, 191, 1437, 2393, 4097, 14319, 6977}}, +{3368, 15, 13668, {1, 3, 3, 3, 25, 35, 105, 141, 433, 269, 1469, 2939, 5387, 7373, 7863}}, +{3369, 15, 13686, {1, 3, 7, 5, 5, 21, 23, 11, 217, 357, 1847, 101, 1161, 5297, 14879}}, +{3370, 15, 13699, {1, 3, 1, 3, 25, 23, 81, 217, 505, 161, 1667, 1343, 1751, 2463, 26431}}, +{3371, 15, 13701, {1, 1, 3, 1, 17, 51, 125, 205, 385, 351, 731, 2911, 2749, 2689, 27031}}, +{3372, 15, 13708, {1, 1, 5, 5, 5, 17, 31, 171, 477, 671, 167, 1797, 8047, 10123, 4325}}, +{3373, 15, 13716, {1, 1, 7, 1, 11, 23, 123, 161, 99, 1007, 765, 1965, 5395, 16193, 17751}}, +{3374, 15, 13725, {1, 3, 1, 9, 13, 11, 111, 217, 31, 753, 377, 2267, 7893, 7195, 24999}}, +{3375, 15, 13730, {1, 3, 1, 9, 21, 53, 127, 121, 151, 395, 1447, 1411, 5179, 12043, 27607}}, +{3376, 15, 13742, {1, 1, 5, 3, 11, 37, 97, 139, 113, 835, 229, 3741, 827, 5527, 5779}}, +{3377, 15, 13747, {1, 1, 7, 7, 27, 55, 11, 55, 429, 269, 1179, 233, 1053, 10225, 16703}}, +{3378, 15, 13749, {1, 1, 1, 3, 15, 9, 67, 119, 95, 753, 511, 2507, 3953, 6403, 27635}}, +{3379, 15, 13753, {1, 3, 3, 7, 27, 57, 25, 27, 249, 515, 193, 4043, 2017, 751, 10949}}, +{3380, 15, 13754, {1, 3, 1, 9, 31, 57, 67, 21, 177, 573, 1835, 2015, 6201, 2383, 31087}}, +{3381, 15, 13771, {1, 1, 5, 1, 19, 3, 89, 243, 69, 387, 1905, 3465, 2775, 7713, 30081}}, +{3382, 15, 13773, {1, 1, 3, 3, 9, 59, 15, 89, 85, 605, 881, 263, 2551, 797, 16541}}, +{3383, 15, 13782, {1, 3, 7, 11, 25, 41, 59, 139, 405, 571, 1147, 2963, 4175, 12901, 6309}}, +{3384, 15, 13785, {1, 3, 1, 5, 29, 29, 11, 243, 183, 281, 807, 1, 7079, 10079, 13865}}, +{3385, 15, 13798, {1, 3, 7, 5, 5, 1, 89, 55, 423, 157, 675, 1849, 241, 6467, 15459}}, +{3386, 15, 13802, {1, 1, 7, 11, 15, 63, 89, 109, 501, 549, 317, 3043, 1151, 3895, 19851}}, +{3387, 15, 13809, {1, 3, 1, 15, 7, 23, 97, 97, 225, 737, 1117, 3325, 209, 14169, 10813}}, +{3388, 15, 13828, {1, 3, 7, 13, 13, 39, 91, 153, 395, 879, 1041, 3753, 5577, 1985, 25247}}, +{3389, 15, 13832, {1, 1, 1, 3, 17, 15, 113, 143, 101, 901, 1119, 1819, 3577, 3441, 31511}}, +{3390, 15, 13840, {1, 3, 1, 11, 15, 27, 21, 37, 287, 121, 451, 1353, 2173, 299, 18791}}, +{3391, 15, 13850, {1, 3, 3, 5, 23, 1, 49, 145, 315, 769, 99, 1385, 5961, 9121, 1465}}, +{3392, 15, 13861, {1, 3, 3, 13, 21, 39, 39, 233, 271, 113, 615, 2257, 3765, 5921, 313}}, +{3393, 15, 13874, {1, 3, 7, 7, 25, 45, 11, 237, 83, 203, 929, 1819, 2679, 11583, 30091}}, +{3394, 15, 13876, {1, 1, 1, 7, 21, 63, 85, 251, 133, 991, 1515, 2547, 6051, 7279, 3569}}, +{3395, 15, 13886, {1, 3, 7, 15, 11, 19, 87, 17, 313, 283, 1021, 2743, 4855, 13741, 17955}}, +{3396, 15, 13897, {1, 1, 7, 13, 29, 13, 61, 93, 81, 91, 995, 907, 4847, 2599, 20041}}, +{3397, 15, 13900, {1, 1, 3, 11, 13, 45, 103, 33, 243, 109, 2029, 121, 231, 16179, 13741}}, +{3398, 15, 13915, {1, 3, 5, 9, 9, 5, 73, 225, 199, 723, 611, 1909, 2345, 10257, 9909}}, +{3399, 15, 13927, {1, 1, 3, 11, 7, 5, 33, 89, 431, 899, 803, 3173, 6131, 16097, 20561}}, +{3400, 15, 13951, {1, 3, 3, 7, 7, 47, 23, 47, 411, 69, 239, 661, 5591, 10457, 24245}}, +{3401, 15, 13955, {1, 1, 5, 15, 25, 35, 87, 23, 115, 939, 1579, 119, 4001, 13791, 9729}}, +{3402, 15, 13962, {1, 3, 5, 11, 25, 45, 29, 195, 369, 237, 735, 155, 123, 4415, 32255}}, +{3403, 15, 13969, {1, 3, 3, 9, 13, 53, 15, 77, 313, 75, 529, 925, 5679, 14585, 19889}}, +{3404, 15, 13979, {1, 1, 7, 15, 15, 27, 105, 13, 31, 669, 563, 1809, 4321, 7797, 4177}}, +{3405, 15, 13988, {1, 1, 5, 9, 3, 29, 111, 177, 33, 235, 1951, 1561, 141, 4803, 16327}}, +{3406, 15, 13998, {1, 1, 1, 7, 9, 41, 1, 149, 95, 933, 115, 1619, 771, 8189, 8781}}, +{3407, 15, 14000, {1, 1, 5, 3, 13, 41, 33, 159, 355, 159, 1243, 1439, 6571, 14397, 31321}}, +{3408, 15, 14005, {1, 1, 7, 11, 9, 15, 91, 145, 457, 255, 1449, 611, 1449, 2521, 28949}}, +{3409, 15, 14027, {1, 3, 7, 5, 27, 57, 35, 99, 447, 287, 743, 1163, 4379, 7361, 3831}}, +{3410, 15, 14037, {1, 3, 3, 7, 15, 53, 41, 83, 133, 571, 1739, 531, 2921, 11527, 21941}}, +{3411, 15, 14051, {1, 1, 1, 13, 9, 27, 39, 113, 429, 447, 595, 3171, 5245, 4095, 14847}}, +{3412, 15, 14054, {1, 1, 3, 7, 19, 19, 21, 101, 489, 1011, 265, 3899, 3225, 11701, 5193}}, +{3413, 15, 14060, {1, 3, 7, 3, 15, 25, 103, 213, 441, 215, 1483, 263, 3561, 7915, 7969}}, +{3414, 15, 14063, {1, 3, 3, 3, 11, 47, 97, 29, 489, 867, 1347, 2155, 4871, 8001, 18305}}, +{3415, 15, 14071, {1, 3, 1, 9, 25, 15, 61, 17, 343, 775, 1765, 3803, 4577, 8437, 12605}}, +{3416, 15, 14078, {1, 1, 5, 3, 11, 39, 69, 23, 23, 65, 1967, 2429, 1703, 6671, 14981}}, +{3417, 15, 14080, {1, 1, 5, 15, 23, 59, 125, 51, 225, 439, 2019, 2589, 7781, 13111, 2911}}, +{3418, 15, 14085, {1, 1, 1, 3, 1, 31, 37, 245, 203, 305, 821, 367, 5211, 9791, 21777}}, +{3419, 15, 14086, {1, 1, 5, 9, 9, 31, 97, 25, 271, 83, 343, 2461, 1805, 14383, 10059}}, +{3420, 15, 14095, {1, 1, 5, 13, 15, 33, 127, 109, 137, 963, 961, 1647, 7881, 8133, 22359}}, +{3421, 15, 14138, {1, 1, 3, 7, 25, 31, 123, 241, 283, 1, 1781, 23, 971, 6485, 127}}, +{3422, 15, 14145, {1, 1, 5, 15, 15, 27, 25, 145, 395, 679, 979, 571, 1585, 14787, 7465}}, +{3423, 15, 14158, {1, 1, 5, 7, 13, 11, 7, 131, 511, 597, 379, 1513, 6267, 16039, 1503}}, +{3424, 15, 14166, {1, 1, 1, 13, 15, 49, 73, 217, 353, 577, 1913, 1127, 961, 11557, 24993}}, +{3425, 15, 14179, {1, 3, 3, 9, 7, 3, 105, 141, 377, 687, 1917, 485, 983, 11149, 23303}}, +{3426, 15, 14181, {1, 1, 3, 15, 11, 7, 117, 179, 505, 67, 1817, 913, 5757, 1981, 1637}}, +{3427, 15, 14188, {1, 1, 1, 7, 5, 29, 3, 43, 223, 295, 1895, 3425, 5355, 5155, 17197}}, +{3428, 15, 14193, {1, 1, 7, 9, 21, 59, 121, 245, 73, 233, 1527, 869, 4145, 7995, 6473}}, +{3429, 15, 14200, {1, 1, 5, 13, 17, 21, 89, 179, 495, 669, 453, 2603, 5969, 6161, 4743}}, +{3430, 15, 14203, {1, 1, 7, 11, 25, 21, 103, 131, 391, 249, 1633, 2603, 2207, 8987, 15487}}, +{3431, 15, 14215, {1, 3, 7, 9, 13, 45, 99, 251, 115, 597, 1505, 2421, 1231, 10015, 24295}}, +{3432, 15, 14224, {1, 1, 5, 5, 31, 49, 17, 67, 463, 813, 1491, 3309, 7881, 8109, 7289}}, +{3433, 15, 14230, {1, 3, 1, 15, 23, 35, 123, 21, 169, 499, 95, 603, 1829, 7865, 26313}}, +{3434, 15, 14233, {1, 1, 7, 1, 9, 29, 45, 65, 95, 97, 673, 3673, 2969, 2317, 22209}}, +{3435, 15, 14236, {1, 1, 3, 7, 29, 33, 121, 17, 331, 487, 1901, 1951, 5383, 9375, 4029}}, +{3436, 15, 14246, {1, 3, 7, 9, 25, 43, 91, 147, 141, 401, 1647, 2697, 4645, 7179, 31857}}, +{3437, 15, 14267, {1, 3, 5, 11, 9, 31, 127, 105, 39, 883, 1635, 919, 5069, 2875, 24519}}, +{3438, 15, 14282, {1, 1, 5, 9, 1, 63, 73, 135, 95, 503, 385, 3903, 545, 12635, 27569}}, +{3439, 15, 14287, {1, 1, 3, 11, 27, 31, 47, 173, 55, 339, 1255, 1947, 793, 14133, 13963}}, +{3440, 15, 14301, {1, 1, 3, 15, 17, 33, 113, 249, 401, 743, 1307, 3123, 627, 1253, 13285}}, +{3441, 15, 14323, {1, 1, 3, 1, 9, 7, 39, 65, 281, 107, 833, 193, 2987, 12267, 31335}}, +{3442, 15, 14325, {1, 1, 7, 3, 15, 21, 99, 211, 39, 179, 587, 1169, 6455, 8225, 2049}}, +{3443, 15, 14329, {1, 3, 5, 13, 5, 13, 123, 1, 223, 273, 731, 2967, 4793, 4229, 26031}}, +{3444, 15, 14339, {1, 1, 1, 1, 3, 17, 7, 23, 225, 757, 743, 1257, 2047, 12509, 25467}}, +{3445, 15, 14342, {1, 1, 7, 15, 29, 3, 15, 113, 227, 675, 1295, 2777, 2921, 5485, 2577}}, +{3446, 15, 14351, {1, 3, 7, 13, 19, 21, 85, 129, 45, 599, 317, 1513, 4953, 10383, 25253}}, +{3447, 15, 14356, {1, 1, 7, 11, 13, 47, 127, 67, 219, 131, 905, 2005, 851, 15243, 5777}}, +{3448, 15, 14359, {1, 1, 5, 3, 23, 57, 57, 189, 153, 37, 955, 2049, 1295, 15119, 27213}}, +{3449, 15, 14370, {1, 3, 7, 11, 13, 61, 3, 241, 269, 789, 1595, 2369, 4843, 11347, 21543}}, +{3450, 15, 14402, {1, 1, 5, 5, 25, 21, 19, 237, 3, 605, 1343, 3965, 3511, 7889, 27759}}, +{3451, 15, 14411, {1, 3, 1, 15, 21, 15, 123, 5, 345, 945, 283, 1313, 335, 2085, 19505}}, +{3452, 15, 14421, {1, 1, 3, 3, 5, 21, 123, 89, 67, 11, 1247, 1155, 287, 13455, 5693}}, +{3453, 15, 14431, {1, 3, 3, 13, 1, 53, 101, 27, 387, 379, 19, 751, 2445, 11737, 975}}, +{3454, 15, 14435, {1, 3, 3, 3, 9, 29, 81, 117, 443, 145, 1619, 1813, 8125, 5829, 28617}}, +{3455, 15, 14442, {1, 1, 5, 15, 27, 15, 83, 83, 61, 715, 1655, 1631, 3457, 2727, 2163}}, +{3456, 15, 14447, {1, 3, 1, 5, 11, 11, 121, 7, 135, 883, 927, 1817, 6839, 12361, 24119}}, +{3457, 15, 14456, {1, 3, 7, 11, 23, 59, 39, 165, 109, 355, 1303, 381, 5697, 275, 3771}}, +{3458, 15, 14459, {1, 3, 5, 11, 11, 5, 81, 157, 55, 435, 613, 127, 4087, 3791, 21627}}, +{3459, 15, 14472, {1, 3, 7, 15, 13, 37, 83, 195, 207, 771, 51, 3685, 6389, 1229, 11101}}, +{3460, 15, 14477, {1, 3, 7, 13, 31, 3, 9, 13, 487, 95, 77, 809, 5809, 12887, 29933}}, +{3461, 15, 14490, {1, 1, 3, 7, 25, 9, 13, 29, 353, 659, 1785, 3825, 3729, 13109, 12973}}, +{3462, 15, 14496, {1, 1, 1, 5, 21, 3, 97, 1, 245, 917, 29, 1429, 8141, 7569, 32493}}, +{3463, 15, 14501, {1, 3, 1, 9, 19, 13, 13, 109, 377, 1007, 1737, 1939, 1419, 1145, 5065}}, +{3464, 15, 14505, {1, 1, 7, 9, 27, 57, 53, 69, 423, 43, 1629, 1003, 1473, 10809, 5659}}, +{3465, 15, 14513, {1, 1, 1, 9, 1, 45, 11, 231, 351, 155, 663, 2783, 3491, 5725, 25207}}, +{3466, 15, 14520, {1, 1, 1, 3, 15, 25, 77, 89, 231, 813, 657, 2603, 4885, 1383, 14499}}, +{3467, 15, 14534, {1, 3, 5, 5, 9, 21, 101, 181, 449, 491, 737, 803, 659, 11771, 545}}, +{3468, 15, 14562, {1, 3, 7, 9, 7, 19, 27, 199, 265, 329, 1031, 1235, 3191, 10071, 16281}}, +{3469, 15, 14576, {1, 1, 7, 11, 27, 55, 3, 127, 503, 1003, 1041, 1953, 5835, 4851, 13485}}, +{3470, 15, 14579, {1, 1, 7, 15, 5, 45, 97, 61, 221, 497, 1949, 3163, 4707, 8441, 1437}}, +{3471, 15, 14585, {1, 3, 5, 1, 3, 35, 107, 9, 473, 971, 227, 2225, 3999, 3095, 18879}}, +{3472, 15, 14586, {1, 1, 1, 9, 21, 59, 21, 1, 41, 435, 575, 491, 1839, 1095, 9727}}, +{3473, 15, 14606, {1, 3, 5, 9, 13, 29, 123, 251, 465, 701, 1105, 829, 573, 11503, 11861}}, +{3474, 15, 14627, {1, 3, 3, 13, 27, 59, 29, 111, 225, 973, 561, 1481, 835, 9261, 13831}}, +{3475, 15, 14630, {1, 1, 1, 7, 17, 3, 97, 211, 333, 315, 571, 3523, 7305, 6461, 20139}}, +{3476, 15, 14634, {1, 3, 7, 11, 31, 21, 105, 247, 113, 863, 1767, 381, 4623, 8935, 7911}}, +{3477, 15, 14636, {1, 1, 5, 7, 29, 45, 17, 155, 69, 17, 655, 1983, 6385, 6177, 7961}}, +{3478, 15, 14647, {1, 3, 3, 15, 31, 15, 63, 81, 309, 115, 393, 3445, 689, 13963, 18887}}, +{3479, 15, 14653, {1, 1, 5, 1, 19, 39, 127, 61, 357, 53, 195, 2745, 7853, 5753, 3669}}, +{3480, 15, 14659, {1, 3, 7, 7, 17, 51, 57, 145, 451, 365, 1517, 909, 4265, 10737, 9579}}, +{3481, 15, 14671, {1, 1, 3, 13, 3, 37, 121, 103, 257, 47, 1685, 2951, 5753, 15379, 8899}}, +{3482, 15, 14674, {1, 1, 5, 7, 31, 63, 61, 197, 97, 773, 133, 1517, 3093, 14879, 22941}}, +{3483, 15, 14701, {1, 1, 5, 1, 3, 9, 27, 53, 97, 663, 1915, 409, 471, 1391, 24853}}, +{3484, 15, 14716, {1, 1, 1, 7, 21, 53, 69, 5, 187, 571, 2023, 997, 323, 12059, 7071}}, +{3485, 15, 14719, {1, 3, 3, 1, 7, 59, 55, 157, 101, 123, 1301, 3709, 4673, 3897, 28791}}, +{3486, 15, 14720, {1, 3, 7, 5, 5, 23, 39, 139, 365, 415, 1481, 3415, 6323, 11109, 5719}}, +{3487, 15, 14725, {1, 3, 5, 3, 5, 11, 23, 143, 243, 229, 183, 3367, 3187, 8151, 28351}}, +{3488, 15, 14730, {1, 3, 7, 9, 5, 37, 29, 23, 437, 827, 985, 2879, 7611, 1391, 19087}}, +{3489, 15, 14743, {1, 3, 3, 5, 7, 9, 5, 143, 217, 757, 1697, 2459, 453, 8679, 4513}}, +{3490, 15, 14747, {1, 3, 5, 5, 11, 33, 3, 143, 293, 921, 185, 2461, 5547, 12247, 28591}}, +{3491, 15, 14786, {1, 3, 7, 5, 3, 53, 43, 179, 235, 417, 1307, 1367, 3695, 12809, 1807}}, +{3492, 15, 14788, {1, 3, 1, 11, 15, 43, 115, 229, 157, 25, 687, 3347, 271, 5777, 8557}}, +{3493, 15, 14792, {1, 3, 7, 5, 27, 37, 55, 135, 209, 47, 1603, 957, 5785, 11141, 10407}}, +{3494, 15, 14795, {1, 1, 1, 15, 17, 17, 103, 29, 489, 493, 119, 1707, 3463, 1815, 32055}}, +{3495, 15, 14809, {1, 3, 7, 11, 17, 13, 115, 145, 77, 515, 1911, 477, 5997, 8731, 3143}}, +{3496, 15, 14831, {1, 3, 1, 13, 31, 41, 73, 91, 231, 1, 455, 2023, 4691, 3613, 16329}}, +{3497, 15, 14834, {1, 1, 5, 15, 15, 39, 17, 117, 131, 657, 1939, 2245, 2575, 195, 25209}}, +{3498, 15, 14850, {1, 3, 7, 15, 5, 51, 69, 141, 499, 931, 1165, 2119, 1703, 10867, 28443}}, +{3499, 15, 14855, {1, 1, 1, 15, 13, 45, 45, 103, 115, 177, 651, 2545, 1417, 5349, 3385}}, +{3500, 15, 14859, {1, 3, 3, 1, 1, 41, 117, 15, 225, 861, 843, 2775, 4543, 6275, 14671}}, +{3501, 15, 14864, {1, 3, 5, 15, 5, 35, 87, 193, 341, 55, 1131, 945, 6865, 11271, 18705}}, +{3502, 15, 14876, {1, 3, 5, 9, 13, 35, 71, 197, 79, 351, 3, 3939, 1105, 12455, 28921}}, +{3503, 15, 14889, {1, 3, 1, 13, 9, 23, 89, 165, 59, 257, 1369, 161, 6255, 2997, 19175}}, +{3504, 15, 14890, {1, 3, 5, 3, 5, 41, 107, 231, 111, 207, 1865, 2079, 5891, 2487, 5863}}, +{3505, 15, 14898, {1, 3, 7, 15, 3, 3, 105, 235, 263, 991, 367, 1885, 1769, 7805, 11909}}, +{3506, 15, 14909, {1, 3, 3, 5, 15, 59, 67, 247, 77, 367, 1641, 1959, 1921, 5939, 17355}}, +{3507, 15, 14917, {1, 1, 7, 1, 3, 53, 37, 5, 221, 779, 1353, 1633, 2769, 6355, 8505}}, +{3508, 15, 14924, {1, 1, 7, 13, 11, 13, 73, 227, 115, 523, 355, 3127, 7545, 8409, 22335}}, +{3509, 15, 14929, {1, 1, 5, 11, 21, 15, 91, 115, 427, 683, 461, 2433, 6313, 4595, 24401}}, +{3510, 15, 14942, {1, 3, 7, 5, 29, 21, 57, 215, 423, 717, 1455, 705, 6835, 4503, 26077}}, +{3511, 15, 14951, {1, 1, 1, 15, 3, 33, 25, 227, 381, 477, 1023, 2751, 2229, 631, 16903}}, +{3512, 15, 14969, {1, 3, 1, 11, 9, 17, 59, 73, 53, 671, 251, 1729, 7593, 12473, 22533}}, +{3513, 15, 14970, {1, 3, 3, 1, 3, 35, 37, 173, 459, 143, 135, 3871, 2689, 8007, 4379}}, +{3514, 15, 14972, {1, 3, 5, 9, 23, 19, 43, 45, 493, 509, 1851, 1615, 5675, 13793, 6973}}, +{3515, 15, 14982, {1, 3, 3, 15, 5, 17, 77, 85, 451, 753, 579, 1057, 4851, 6017, 4195}}, +{3516, 15, 14988, {1, 3, 3, 5, 31, 29, 81, 159, 103, 391, 15, 899, 4623, 5957, 31961}}, +{3517, 15, 14994, {1, 1, 1, 7, 17, 57, 81, 17, 177, 633, 49, 2793, 5229, 5995, 9491}}, +{3518, 15, 15005, {1, 1, 7, 15, 17, 19, 65, 57, 189, 239, 1229, 929, 2681, 12845, 29311}}, +{3519, 15, 15016, {1, 3, 1, 11, 13, 47, 61, 203, 383, 875, 943, 139, 4217, 8279, 1047}}, +{3520, 15, 15024, {1, 3, 7, 13, 23, 7, 1, 69, 47, 537, 1325, 3101, 685, 14057, 19953}}, +{3521, 15, 15030, {1, 3, 3, 1, 1, 7, 39, 77, 47, 755, 527, 2985, 5433, 15095, 27741}}, +{3522, 15, 15048, {1, 1, 7, 5, 23, 57, 79, 155, 81, 937, 1071, 3929, 1655, 3831, 17351}}, +{3523, 15, 15054, {1, 3, 7, 1, 3, 41, 13, 235, 207, 487, 1883, 2247, 1231, 2751, 15615}}, +{3524, 15, 15066, {1, 1, 7, 1, 21, 57, 95, 191, 119, 483, 283, 2221, 5665, 14819, 26097}}, +{3525, 15, 15071, {1, 3, 1, 1, 9, 59, 27, 51, 393, 31, 925, 715, 7705, 14885, 28767}}, +{3526, 15, 15072, {1, 1, 3, 3, 3, 61, 109, 131, 113, 249, 1331, 2521, 2973, 6375, 20093}}, +{3527, 15, 15075, {1, 3, 7, 9, 31, 37, 125, 245, 237, 245, 111, 379, 7495, 15531, 2325}}, +{3528, 15, 15119, {1, 3, 7, 13, 21, 21, 57, 21, 449, 969, 417, 2999, 509, 639, 7797}}, +{3529, 15, 15121, {1, 3, 7, 7, 7, 29, 11, 175, 55, 705, 891, 863, 3021, 10071, 10267}}, +{3530, 15, 15133, {1, 1, 3, 13, 19, 17, 127, 57, 449, 579, 337, 899, 1235, 11269, 4245}}, +{3531, 15, 15138, {1, 1, 1, 11, 29, 61, 35, 75, 249, 683, 287, 45, 3277, 7521, 2073}}, +{3532, 15, 15143, {1, 3, 5, 5, 15, 25, 77, 63, 63, 801, 1387, 1533, 2185, 10899, 28381}}, +{3533, 15, 15170, {1, 3, 1, 1, 21, 49, 3, 249, 419, 575, 87, 3749, 2523, 16125, 9483}}, +{3534, 15, 15194, {1, 1, 1, 11, 21, 43, 85, 211, 449, 439, 1495, 1841, 4765, 15253, 1467}}, +{3535, 15, 15212, {1, 3, 3, 15, 3, 37, 31, 243, 187, 995, 1103, 2723, 1523, 15967, 28649}}, +{3536, 15, 15223, {1, 1, 5, 11, 9, 11, 17, 87, 335, 125, 1079, 1657, 1237, 8059, 29833}}, +{3537, 15, 15229, {1, 3, 1, 3, 3, 41, 35, 37, 33, 61, 505, 3203, 5, 101, 8571}}, +{3538, 15, 15254, {1, 1, 3, 11, 9, 11, 85, 235, 261, 473, 109, 2127, 5745, 6389, 7431}}, +{3539, 15, 15263, {1, 1, 5, 15, 3, 55, 77, 97, 17, 193, 1267, 3063, 6531, 9797, 8639}}, +{3540, 15, 15270, {1, 1, 5, 5, 25, 41, 79, 83, 485, 697, 149, 1023, 89, 6115, 15227}}, +{3541, 15, 15273, {1, 1, 3, 15, 1, 9, 73, 251, 33, 599, 1017, 353, 4305, 16033, 29663}}, +{3542, 15, 15287, {1, 3, 7, 15, 3, 1, 89, 39, 125, 337, 1445, 3131, 3685, 9849, 25829}}, +{3543, 15, 15299, {1, 3, 7, 3, 19, 1, 63, 179, 349, 135, 185, 2977, 2527, 15087, 18133}}, +{3544, 15, 15301, {1, 1, 3, 3, 23, 7, 91, 221, 325, 723, 345, 81, 8077, 5501, 8453}}, +{3545, 15, 15306, {1, 1, 3, 9, 7, 3, 13, 173, 479, 161, 1989, 3255, 2069, 6717, 559}}, +{3546, 15, 15313, {1, 3, 3, 5, 9, 61, 93, 203, 277, 367, 1141, 981, 4745, 12625, 21003}}, +{3547, 15, 15320, {1, 3, 5, 5, 27, 17, 5, 211, 403, 701, 5, 3091, 4611, 5615, 23667}}, +{3548, 15, 15323, {1, 1, 3, 1, 21, 61, 125, 77, 57, 463, 1499, 791, 2087, 2805, 18829}}, +{3549, 15, 15329, {1, 3, 5, 3, 11, 41, 125, 231, 119, 837, 831, 1331, 7439, 2381, 3759}}, +{3550, 15, 15332, {1, 3, 1, 11, 19, 59, 117, 107, 443, 699, 315, 1491, 2581, 15871, 17159}}, +{3551, 15, 15341, {1, 3, 5, 11, 5, 9, 121, 35, 209, 877, 527, 3493, 4657, 16093, 17589}}, +{3552, 15, 15359, {1, 1, 7, 15, 9, 43, 119, 29, 381, 479, 1443, 3171, 5053, 9625, 21161}}, +{3553, 15, 15361, {1, 1, 3, 5, 15, 21, 31, 223, 83, 399, 1529, 3605, 6343, 10469, 10099}}, +{3554, 15, 15364, {1, 1, 3, 5, 5, 45, 23, 123, 353, 971, 85, 3069, 3245, 6569, 13241}}, +{3555, 15, 15367, {1, 1, 1, 3, 25, 49, 5, 77, 491, 881, 993, 1195, 7677, 5709, 10807}}, +{3556, 15, 15379, {1, 3, 3, 3, 5, 49, 127, 255, 183, 583, 1599, 987, 7281, 7149, 28507}}, +{3557, 15, 15391, {1, 1, 5, 1, 13, 55, 55, 157, 197, 25, 1971, 3161, 3903, 8919, 13563}}, +{3558, 15, 15415, {1, 3, 7, 9, 3, 37, 79, 193, 25, 103, 843, 2651, 6341, 2653, 24337}}, +{3559, 15, 15416, {1, 1, 7, 3, 25, 49, 99, 139, 45, 211, 2033, 2331, 7037, 7177, 1755}}, +{3560, 15, 15419, {1, 3, 7, 3, 5, 19, 127, 135, 403, 221, 141, 1065, 3935, 2745, 25979}}, +{3561, 15, 15433, {1, 1, 3, 3, 31, 23, 111, 37, 261, 7, 835, 2379, 7927, 8181, 23751}}, +{3562, 15, 15469, {1, 3, 7, 15, 1, 39, 79, 3, 103, 427, 1917, 809, 5039, 689, 1939}}, +{3563, 15, 15478, {1, 1, 1, 15, 29, 37, 39, 243, 149, 353, 763, 3405, 5751, 9441, 6653}}, +{3564, 15, 15481, {1, 3, 3, 11, 1, 57, 125, 151, 445, 423, 841, 2265, 5017, 15863, 13057}}, +{3565, 15, 15482, {1, 3, 5, 13, 11, 49, 61, 159, 211, 917, 561, 1903, 3985, 11117, 28969}}, +{3566, 15, 15498, {1, 3, 5, 13, 29, 5, 35, 51, 91, 291, 9, 3713, 3341, 4551, 12085}}, +{3567, 15, 15505, {1, 3, 3, 1, 1, 39, 111, 141, 319, 179, 1709, 1605, 5063, 13279, 10003}}, +{3568, 15, 15517, {1, 1, 3, 9, 7, 59, 91, 41, 343, 475, 1669, 2311, 5141, 12661, 25847}}, +{3569, 15, 15518, {1, 3, 5, 9, 9, 11, 49, 221, 1, 243, 791, 229, 503, 373, 19189}}, +{3570, 15, 15527, {1, 1, 5, 11, 17, 13, 45, 57, 215, 491, 1601, 2183, 3713, 429, 22007}}, +{3571, 15, 15528, {1, 1, 3, 11, 31, 61, 23, 237, 261, 955, 1085, 1541, 2601, 909, 7749}}, +{3572, 15, 15545, {1, 1, 3, 9, 13, 11, 121, 173, 177, 551, 1757, 2745, 2265, 4611, 743}}, +{3573, 15, 15548, {1, 1, 3, 15, 23, 43, 107, 239, 463, 369, 1857, 1073, 1247, 1029, 22557}}, +{3574, 15, 15554, {1, 1, 3, 11, 23, 35, 89, 93, 41, 941, 1141, 2339, 1423, 8007, 28685}}, +{3575, 15, 15565, {1, 3, 5, 13, 29, 7, 79, 15, 59, 145, 1237, 2215, 1257, 12621, 31101}}, +{3576, 15, 15577, {1, 1, 3, 7, 13, 55, 57, 229, 205, 1009, 341, 3901, 5189, 957, 32587}}, +{3577, 15, 15580, {1, 3, 7, 11, 1, 1, 41, 7, 365, 407, 1609, 1423, 6483, 5171, 32519}}, +{3578, 15, 15587, {1, 3, 7, 3, 17, 31, 125, 27, 125, 335, 1395, 2639, 329, 2549, 14449}}, +{3579, 15, 15601, {1, 3, 3, 7, 19, 45, 11, 73, 123, 179, 1685, 3385, 2379, 3387, 16793}}, +{3580, 15, 15604, {1, 3, 7, 5, 31, 25, 47, 153, 121, 453, 935, 3953, 2081, 12145, 24979}}, +{3581, 15, 15611, {1, 1, 7, 13, 25, 11, 65, 3, 277, 237, 1129, 1801, 4165, 9065, 18747}}, +{3582, 15, 15616, {1, 1, 7, 7, 13, 5, 37, 253, 507, 645, 1355, 3401, 6707, 6329, 11237}}, +{3583, 15, 15619, {1, 1, 3, 15, 17, 49, 3, 233, 407, 451, 69, 3859, 3171, 12303, 21031}}, +{3584, 15, 15625, {1, 1, 3, 3, 9, 53, 119, 117, 401, 903, 1449, 3639, 4083, 2095, 22085}}, +{3585, 15, 15633, {1, 3, 7, 15, 5, 61, 117, 193, 137, 431, 195, 4019, 3047, 5049, 14281}}, +{3586, 15, 15674, {1, 1, 1, 15, 17, 19, 29, 83, 449, 257, 1105, 1949, 1749, 3459, 6343}}, +{3587, 15, 15681, {1, 1, 1, 15, 23, 39, 61, 219, 109, 365, 863, 1813, 6673, 15999, 5101}}, +{3588, 15, 15691, {1, 1, 5, 5, 13, 11, 37, 151, 365, 719, 1233, 2425, 1285, 1721, 1205}}, +{3589, 15, 15693, {1, 3, 3, 3, 7, 53, 109, 153, 45, 425, 1741, 1229, 4405, 8071, 25155}}, +{3590, 15, 15696, {1, 3, 1, 1, 1, 13, 39, 49, 413, 77, 1367, 2553, 5563, 7659, 3467}}, +{3591, 15, 15712, {1, 1, 5, 9, 3, 49, 23, 11, 445, 121, 1505, 877, 4137, 1809, 2429}}, +{3592, 15, 15717, {1, 1, 1, 11, 21, 13, 93, 33, 493, 805, 775, 2939, 2961, 13625, 31879}}, +{3593, 15, 15724, {1, 1, 7, 5, 1, 59, 63, 131, 373, 23, 337, 2107, 5315, 4889, 22851}}, +{3594, 15, 15727, {1, 1, 3, 13, 21, 47, 15, 131, 353, 793, 1891, 1757, 5793, 1147, 23697}}, +{3595, 15, 15730, {1, 3, 5, 13, 7, 59, 25, 135, 259, 109, 1835, 429, 8153, 7355, 145}}, +{3596, 15, 15746, {1, 3, 3, 13, 9, 47, 121, 89, 89, 635, 1079, 2353, 4803, 11369, 12653}}, +{3597, 15, 15751, {1, 3, 5, 9, 23, 39, 49, 231, 105, 603, 613, 2021, 6073, 11819, 10595}}, +{3598, 15, 15760, {1, 3, 7, 7, 7, 19, 19, 155, 347, 387, 1459, 3793, 619, 14437, 2455}}, +{3599, 15, 15770, {1, 1, 1, 15, 21, 35, 19, 185, 483, 425, 479, 3429, 5403, 10791, 14219}}, +{3600, 15, 15782, {1, 1, 3, 11, 5, 51, 105, 63, 493, 677, 1457, 2865, 5619, 9321, 19583}}, +{3601, 15, 15791, {1, 1, 3, 3, 23, 1, 77, 177, 263, 289, 1567, 3837, 5359, 3269, 16023}}, +{3602, 15, 15796, {1, 1, 7, 3, 13, 61, 79, 77, 51, 953, 1417, 795, 4467, 2981, 25131}}, +{3603, 15, 15808, {1, 1, 5, 13, 23, 13, 29, 185, 337, 7, 149, 3609, 8119, 9545, 16579}}, +{3604, 15, 15814, {1, 3, 1, 5, 23, 9, 123, 15, 99, 55, 1021, 3709, 1521, 15189, 22193}}, +{3605, 15, 15825, {1, 3, 7, 9, 13, 41, 39, 45, 49, 181, 1587, 3213, 1037, 14775, 3333}}, +{3606, 15, 15828, {1, 1, 1, 7, 29, 55, 59, 31, 411, 601, 191, 283, 3211, 7951, 7919}}, +{3607, 15, 15835, {1, 1, 7, 7, 21, 47, 7, 193, 343, 831, 1267, 3289, 1015, 13093, 2717}}, +{3608, 15, 15844, {1, 3, 7, 1, 17, 9, 97, 19, 279, 827, 1699, 3573, 3137, 3535, 17791}}, +{3609, 15, 15847, {1, 1, 5, 11, 27, 15, 103, 135, 35, 625, 1575, 97, 7013, 13353, 19333}}, +{3610, 15, 15853, {1, 3, 3, 7, 17, 13, 49, 135, 435, 743, 1799, 2655, 4839, 2893, 31153}}, +{3611, 15, 15856, {1, 1, 5, 1, 3, 41, 1, 195, 53, 803, 1575, 2939, 3873, 10495, 5211}}, +{3612, 15, 15877, {1, 3, 1, 15, 19, 19, 37, 59, 355, 483, 685, 3899, 4645, 15127, 3479}}, +{3613, 15, 15878, {1, 1, 5, 3, 25, 9, 9, 229, 101, 631, 1165, 4091, 3723, 10655, 9463}}, +{3614, 15, 15887, {1, 3, 5, 15, 5, 13, 91, 61, 19, 469, 1675, 3331, 3121, 3435, 4111}}, +{3615, 15, 15908, {1, 1, 7, 1, 31, 61, 23, 83, 165, 551, 1097, 3825, 5385, 4723, 3635}}, +{3616, 15, 15917, {1, 3, 7, 15, 9, 31, 11, 121, 503, 855, 561, 1647, 1229, 1147, 15997}}, +{3617, 15, 15923, {1, 3, 7, 13, 21, 47, 41, 195, 197, 719, 1263, 3609, 7515, 2659, 30713}}, +{3618, 15, 15930, {1, 1, 1, 7, 31, 61, 101, 101, 479, 571, 605, 301, 6633, 15587, 23665}}, +{3619, 15, 15937, {1, 3, 7, 3, 25, 39, 35, 225, 135, 463, 53, 709, 5129, 4135, 10421}}, +{3620, 15, 15958, {1, 1, 5, 13, 19, 55, 107, 15, 163, 287, 673, 899, 5197, 4619, 3465}}, +{3621, 15, 15977, {1, 3, 3, 5, 21, 49, 15, 105, 283, 877, 1875, 1079, 3431, 13053, 26599}}, +{3622, 15, 15991, {1, 1, 7, 1, 1, 1, 95, 113, 119, 575, 1159, 2325, 6895, 12177, 4369}}, +{3623, 15, 16007, {1, 1, 1, 11, 25, 25, 83, 207, 301, 729, 1947, 2321, 3621, 15707, 11303}}, +{3624, 15, 16011, {1, 1, 5, 5, 7, 63, 83, 105, 211, 175, 1817, 2883, 5385, 7437, 24865}}, +{3625, 15, 16014, {1, 3, 7, 5, 23, 39, 19, 211, 151, 295, 573, 223, 5065, 6345, 23187}}, +{3626, 15, 16021, {1, 1, 7, 11, 15, 31, 89, 123, 57, 695, 685, 1799, 659, 9929, 22933}}, +{3627, 15, 16022, {1, 1, 7, 7, 19, 17, 27, 137, 117, 141, 1481, 869, 7061, 3073, 19671}}, +{3628, 15, 16028, {1, 3, 3, 11, 9, 19, 123, 93, 39, 517, 883, 3769, 2267, 8089, 6617}}, +{3629, 15, 16035, {1, 3, 1, 7, 9, 61, 51, 241, 319, 853, 1239, 899, 105, 1677, 29351}}, +{3630, 15, 16041, {1, 1, 7, 15, 13, 59, 85, 175, 223, 87, 905, 3175, 3405, 3489, 18475}}, +{3631, 15, 16056, {1, 1, 1, 15, 1, 55, 79, 97, 315, 605, 851, 4015, 3689, 9371, 31523}}, +{3632, 15, 16069, {1, 1, 5, 15, 1, 39, 91, 27, 211, 881, 1375, 2307, 5791, 10185, 23093}}, +{3633, 15, 16076, {1, 3, 1, 5, 3, 17, 59, 219, 105, 623, 21, 2843, 3427, 4799, 3793}}, +{3634, 15, 16081, {1, 3, 3, 7, 21, 55, 17, 29, 397, 93, 1981, 4047, 935, 5971, 14589}}, +{3635, 15, 16087, {1, 1, 3, 9, 5, 57, 63, 27, 373, 815, 167, 205, 367, 4945, 30041}}, +{3636, 15, 16088, {1, 1, 5, 9, 7, 3, 69, 35, 197, 309, 1729, 3735, 1523, 10427, 26253}}, +{3637, 15, 16110, {1, 1, 3, 7, 7, 49, 35, 189, 297, 311, 2025, 305, 3863, 14393, 2533}}, +{3638, 15, 16112, {1, 3, 3, 9, 17, 31, 5, 17, 167, 601, 909, 3149, 2533, 12123, 25325}}, +{3639, 15, 16117, {1, 3, 5, 3, 11, 41, 69, 199, 79, 611, 133, 3519, 5955, 4609, 27403}}, +{3640, 15, 16150, {1, 3, 3, 13, 3, 17, 53, 165, 361, 797, 1447, 869, 6707, 6541, 32249}}, +{3641, 15, 16153, {1, 3, 1, 1, 29, 47, 17, 45, 473, 199, 1595, 3095, 3635, 6965, 21859}}, +{3642, 15, 16160, {1, 1, 3, 9, 1, 15, 59, 163, 91, 811, 1087, 1707, 6743, 12643, 29901}}, +{3643, 15, 16166, {1, 1, 1, 3, 19, 21, 7, 209, 121, 821, 709, 1085, 5333, 7689, 28355}}, +{3644, 15, 16172, {1, 3, 1, 15, 5, 27, 115, 31, 37, 79, 1347, 155, 3709, 13251, 32151}}, +{3645, 15, 16190, {1, 3, 7, 15, 27, 27, 127, 231, 137, 205, 1665, 1461, 299, 2797, 879}}, +{3646, 15, 16195, {1, 1, 1, 7, 13, 3, 127, 13, 253, 481, 1435, 1895, 2665, 7611, 17761}}, +{3647, 15, 16204, {1, 1, 3, 7, 7, 21, 71, 247, 301, 183, 1785, 331, 4835, 2251, 4493}}, +{3648, 15, 16216, {1, 3, 7, 9, 9, 1, 77, 169, 103, 647, 1959, 1847, 5803, 3421, 15915}}, +{3649, 15, 16222, {1, 3, 1, 7, 19, 17, 81, 45, 263, 549, 1607, 2177, 1117, 14427, 16451}}, +{3650, 15, 16228, {1, 1, 7, 15, 27, 25, 27, 27, 33, 813, 1667, 253, 2749, 927, 29707}}, +{3651, 15, 16245, {1, 1, 7, 3, 17, 29, 13, 67, 417, 303, 19, 3809, 7225, 12775, 3933}}, +{3652, 15, 16255, {1, 1, 1, 11, 13, 41, 77, 217, 281, 659, 1099, 3047, 1619, 525, 4313}}, +{3653, 15, 16265, {1, 3, 3, 9, 23, 47, 5, 33, 219, 531, 77, 2307, 1893, 8335, 8281}}, +{3654, 15, 16273, {1, 3, 7, 3, 3, 35, 27, 249, 159, 495, 431, 3001, 1475, 11505, 15693}}, +{3655, 15, 16276, {1, 1, 5, 9, 21, 49, 43, 159, 465, 959, 179, 993, 121, 11569, 21027}}, +{3656, 15, 16283, {1, 3, 1, 5, 1, 61, 9, 221, 231, 55, 191, 2829, 3331, 8911, 15109}}, +{3657, 15, 16295, {1, 1, 7, 1, 7, 35, 67, 97, 159, 191, 935, 3151, 6397, 10751, 1835}}, +{3658, 15, 16304, {1, 1, 1, 7, 15, 39, 127, 163, 437, 333, 829, 753, 8151, 13239, 523}}, +{3659, 15, 16313, {1, 1, 3, 13, 9, 25, 73, 155, 445, 239, 2035, 15, 5243, 15531, 1733}}, +{3660, 15, 16319, {1, 3, 7, 15, 5, 25, 3, 55, 117, 57, 783, 1509, 7043, 13159, 8557}}, +{3661, 15, 16328, {1, 3, 5, 1, 21, 55, 89, 119, 199, 79, 161, 1597, 3263, 3335, 5757}}, +{3662, 15, 16345, {1, 3, 7, 5, 27, 23, 85, 113, 111, 211, 389, 1513, 2759, 7945, 931}}, +{3663, 15, 16355, {1, 1, 1, 7, 1, 5, 17, 177, 357, 619, 5, 2583, 621, 2973, 28845}}, +{3664, 15, 16364, {1, 3, 7, 13, 11, 21, 47, 99, 421, 279, 1541, 1305, 4571, 6127, 20735}}, +{3665, 15, 16372, {1, 3, 5, 5, 23, 43, 19, 137, 425, 409, 1625, 2671, 4385, 3197, 25753}}, +{3666, 15, 16375, {1, 1, 7, 5, 27, 17, 57, 15, 383, 181, 951, 2115, 5237, 1495, 9671}}, +{3667, 15, 16382, {1, 3, 3, 11, 9, 1, 53, 127, 375, 499, 1487, 121, 1465, 3175, 24337}}, +{3668, 16, 22, {1, 3, 7, 11, 29, 35, 67, 129, 221, 439, 1159, 3501, 7741, 8885, 11381, 20707}}, +{3669, 16, 28, {1, 3, 5, 11, 29, 59, 23, 117, 343, 637, 1825, 1687, 2823, 11641, 3311, 23603}}, +{3670, 16, 31, {1, 1, 5, 11, 1, 35, 103, 155, 233, 575, 1761, 503, 4175, 6105, 29737, 32681}}, +{3671, 16, 41, {1, 3, 3, 1, 5, 63, 27, 71, 245, 433, 1779, 2475, 5479, 4705, 10795, 34247}}, +{3672, 16, 94, {1, 3, 5, 7, 29, 45, 117, 5, 393, 849, 843, 3131, 6995, 9979, 28907, 30115}}, +{3673, 16, 107, {1, 3, 5, 9, 27, 29, 69, 5, 395, 561, 1531, 409, 2779, 8785, 16405, 27315}}, +{3674, 16, 151, {1, 3, 1, 9, 15, 29, 85, 3, 331, 19, 1941, 567, 6957, 747, 1627, 11347}}, +{3675, 16, 158, {1, 1, 3, 9, 27, 45, 47, 127, 133, 921, 1817, 2231, 6333, 14371, 12799, 9831}}, +{3676, 16, 167, {1, 1, 5, 15, 31, 7, 125, 13, 455, 159, 331, 3629, 4705, 11261, 3657, 36307}}, +{3677, 16, 174, {1, 1, 5, 9, 11, 53, 51, 35, 87, 885, 1975, 3899, 1013, 7667, 32385, 33635}}, +{3678, 16, 203, {1, 1, 1, 3, 7, 45, 107, 177, 193, 765, 731, 139, 5563, 623, 16485, 54999}}, +{3679, 16, 208, {1, 1, 5, 9, 17, 53, 117, 69, 385, 587, 1483, 149, 2769, 3013, 18183, 10173}}, +{3680, 16, 214, {1, 1, 5, 11, 5, 3, 25, 153, 351, 749, 801, 3077, 3209, 11189, 25241, 14115}}, +{3681, 16, 223, {1, 1, 7, 9, 1, 47, 41, 247, 135, 163, 899, 1517, 5647, 10595, 32531, 12497}}, +{3682, 16, 227, {1, 3, 5, 11, 5, 61, 111, 215, 251, 279, 825, 2155, 3527, 173, 10973, 59257}}, +{3683, 16, 266, {1, 3, 5, 11, 25, 15, 71, 83, 135, 231, 1415, 3761, 7513, 8337, 28979, 43615}}, +{3684, 16, 268, {1, 3, 5, 13, 19, 5, 55, 165, 141, 119, 1891, 2255, 4735, 16217, 26195, 50527}}, +{3685, 16, 274, {1, 1, 7, 15, 23, 59, 59, 191, 1, 855, 453, 2619, 5013, 14749, 24335, 44339}}, +{3686, 16, 279, {1, 1, 1, 13, 15, 41, 51, 147, 229, 495, 1191, 867, 1525, 581, 29713, 26391}}, +{3687, 16, 302, {1, 1, 1, 9, 29, 5, 59, 127, 105, 417, 301, 2249, 6335, 3513, 17373, 52977}}, +{3688, 16, 310, {1, 1, 3, 7, 21, 27, 109, 143, 63, 347, 1429, 2889, 2597, 10243, 9913, 22687}}, +{3689, 16, 322, {1, 3, 5, 5, 7, 3, 125, 147, 313, 351, 1163, 415, 5615, 5571, 7089, 55621}}, +{3690, 16, 328, {1, 3, 3, 3, 31, 43, 101, 93, 9, 671, 135, 333, 2169, 11169, 7403, 50707}}, +{3691, 16, 336, {1, 1, 7, 13, 15, 33, 125, 155, 227, 827, 1047, 2441, 3007, 10881, 19969, 63805}}, +{3692, 16, 370, {1, 3, 3, 5, 31, 33, 29, 249, 159, 797, 1475, 841, 6933, 6417, 25629, 61865}}, +{3693, 16, 398, {1, 3, 3, 15, 11, 55, 11, 117, 149, 911, 1589, 3133, 6477, 6123, 10471, 41099}}, +{3694, 16, 421, {1, 3, 3, 9, 27, 37, 1, 119, 509, 969, 831, 3771, 2093, 13621, 31737, 43269}}, +{3695, 16, 436, {1, 1, 1, 1, 9, 23, 119, 109, 487, 753, 1673, 2163, 3349, 4741, 29971, 3407}}, +{3696, 16, 440, {1, 3, 3, 7, 25, 7, 67, 9, 461, 631, 651, 2271, 5663, 2621, 3953, 20975}}, +{3697, 16, 451, {1, 1, 5, 11, 13, 31, 29, 255, 371, 517, 845, 3649, 1187, 10061, 22887, 58417}}, +{3698, 16, 454, {1, 3, 5, 13, 29, 1, 11, 137, 151, 249, 167, 1243, 997, 11023, 11875, 42315}}, +{3699, 16, 463, {1, 1, 5, 5, 5, 55, 103, 71, 255, 1023, 209, 1005, 2147, 11527, 17863, 6661}}, +{3700, 16, 465, {1, 1, 3, 3, 31, 39, 7, 151, 353, 775, 1313, 1257, 4197, 2625, 9571, 27269}}, +{3701, 16, 494, {1, 1, 1, 3, 7, 17, 3, 127, 501, 503, 1879, 2329, 3049, 10603, 2111, 33189}}, +{3702, 16, 508, {1, 3, 3, 7, 13, 59, 93, 13, 375, 483, 1991, 2257, 3003, 1699, 4339, 51827}}, +{3703, 16, 532, {1, 3, 7, 15, 27, 41, 59, 225, 405, 807, 1545, 2581, 1173, 14137, 3413, 39299}}, +{3704, 16, 555, {1, 1, 1, 3, 9, 23, 37, 123, 465, 1023, 1065, 1455, 5107, 3839, 20451, 11461}}, +{3705, 16, 563, {1, 1, 1, 11, 19, 55, 91, 121, 317, 199, 215, 3031, 7223, 11891, 21463, 64921}}, +{3706, 16, 577, {1, 3, 7, 11, 19, 5, 5, 115, 399, 219, 71, 1465, 281, 14451, 26807, 42541}}, +{3707, 16, 580, {1, 3, 5, 13, 3, 33, 75, 35, 19, 559, 761, 947, 7479, 15325, 31453, 20561}}, +{3708, 16, 584, {1, 3, 3, 13, 23, 47, 99, 73, 331, 353, 401, 1737, 6235, 13781, 5547, 56443}}, +{3709, 16, 607, {1, 3, 3, 13, 21, 37, 41, 205, 87, 399, 51, 3175, 7403, 12875, 21129, 7079}}, +{3710, 16, 608, {1, 3, 5, 11, 15, 47, 33, 39, 465, 871, 277, 2351, 695, 1953, 24293, 20595}}, +{3711, 16, 665, {1, 1, 7, 11, 13, 15, 115, 59, 469, 715, 191, 1927, 905, 13463, 29005, 46789}}, +{3712, 16, 675, {1, 3, 5, 9, 13, 55, 79, 17, 265, 887, 905, 3985, 6907, 3379, 20055, 58569}}, +{3713, 16, 692, {1, 1, 7, 11, 21, 29, 23, 109, 17, 427, 1623, 2219, 3857, 3709, 25033, 63823}}, +{3714, 16, 707, {1, 3, 5, 15, 19, 27, 113, 15, 25, 63, 1885, 2693, 5301, 9385, 14137, 26097}}, +{3715, 16, 737, {1, 3, 3, 11, 17, 5, 73, 143, 79, 957, 461, 1709, 4909, 2285, 18113, 8401}}, +{3716, 16, 750, {1, 1, 3, 7, 9, 9, 101, 127, 137, 755, 1359, 1965, 83, 13335, 27763, 7941}}, +{3717, 16, 757, {1, 1, 1, 3, 13, 61, 95, 61, 295, 615, 555, 2163, 8155, 14043, 21465, 46741}}, +{3718, 16, 800, {1, 1, 1, 13, 29, 19, 111, 17, 373, 153, 1703, 2199, 7209, 15845, 1879, 7493}}, +{3719, 16, 805, {1, 3, 1, 13, 21, 51, 49, 51, 255, 151, 207, 1915, 7629, 2705, 8739, 7467}}, +{3720, 16, 809, {1, 3, 7, 5, 21, 21, 23, 193, 467, 739, 519, 2315, 2953, 10633, 9163, 6007}}, +{3721, 16, 837, {1, 3, 1, 5, 23, 19, 23, 247, 93, 297, 1089, 2349, 4683, 13609, 7615, 18647}}, +{3722, 16, 865, {1, 1, 3, 3, 21, 39, 19, 71, 93, 1, 133, 3531, 7503, 2819, 24211, 1739}}, +{3723, 16, 949, {1, 3, 5, 13, 9, 43, 31, 111, 493, 739, 705, 2715, 3613, 11877, 27945, 46053}}, +{3724, 16, 950, {1, 1, 7, 13, 27, 59, 103, 129, 53, 531, 1379, 1441, 5341, 14937, 5079, 39881}}, +{3725, 16, 956, {1, 1, 3, 3, 11, 63, 91, 95, 433, 393, 715, 809, 591, 4141, 17417, 54107}}, +{3726, 16, 961, {1, 3, 5, 1, 7, 25, 25, 175, 205, 803, 183, 1441, 1279, 2753, 20001, 56677}}, +{3727, 16, 1016, {1, 1, 5, 3, 13, 23, 77, 25, 133, 137, 1907, 1313, 2463, 14339, 13, 57757}}, +{3728, 16, 1030, {1, 1, 5, 9, 23, 35, 1, 119, 111, 61, 403, 1815, 1985, 5651, 10883, 55943}}, +{3729, 16, 1072, {1, 3, 1, 7, 21, 43, 115, 7, 107, 719, 759, 1521, 467, 8735, 29785, 63821}}, +{3730, 16, 1119, {1, 1, 3, 13, 19, 17, 51, 141, 399, 569, 703, 2221, 2809, 13355, 1907, 15837}}, +{3731, 16, 1130, {1, 1, 5, 15, 15, 53, 57, 31, 481, 69, 1439, 4049, 6727, 11307, 20683, 63517}}, +{3732, 16, 1135, {1, 1, 1, 3, 13, 27, 9, 255, 363, 131, 1745, 2489, 6451, 6585, 12873, 35405}}, +{3733, 16, 1137, {1, 3, 5, 1, 17, 31, 113, 135, 449, 915, 1017, 2317, 6821, 5483, 30707, 45279}}, +{3734, 16, 1144, {1, 3, 5, 1, 13, 47, 25, 53, 413, 545, 1777, 3049, 7527, 9689, 25935, 9919}}, +{3735, 16, 1149, {1, 3, 7, 11, 17, 39, 13, 131, 295, 517, 1755, 2977, 6267, 12351, 8957, 17765}}, +{3736, 16, 1180, {1, 1, 7, 5, 27, 57, 47, 21, 125, 429, 1169, 1717, 5455, 16359, 29065, 6671}}, +{3737, 16, 1214, {1, 1, 5, 5, 21, 15, 79, 241, 83, 515, 859, 2351, 3125, 7465, 30475, 19759}}, +{3738, 16, 1221, {1, 3, 1, 9, 11, 5, 81, 11, 7, 221, 141, 3329, 3435, 323, 18999, 54735}}, +{3739, 16, 1234, {1, 1, 1, 15, 7, 57, 87, 251, 63, 561, 929, 1367, 2511, 14527, 9335, 38775}}, +{3740, 16, 1239, {1, 3, 3, 9, 23, 37, 59, 105, 179, 515, 235, 2445, 433, 13039, 27005, 48829}}, +{3741, 16, 1249, {1, 1, 1, 1, 23, 37, 103, 31, 89, 921, 1687, 831, 387, 10237, 1241, 19295}}, +{3742, 16, 1250, {1, 3, 3, 7, 25, 23, 57, 251, 309, 579, 603, 807, 7383, 8579, 4025, 16757}}, +{3743, 16, 1267, {1, 1, 3, 15, 23, 59, 29, 33, 467, 641, 1271, 2915, 2549, 14767, 26557, 43483}}, +{3744, 16, 1273, {1, 1, 7, 13, 1, 57, 23, 129, 321, 75, 189, 4087, 5011, 4355, 25759, 37153}}, +{3745, 16, 1342, {1, 1, 5, 1, 21, 57, 25, 183, 37, 669, 259, 1381, 877, 10245, 16643, 61035}}, +{3746, 16, 1344, {1, 1, 7, 5, 11, 11, 85, 141, 393, 957, 1745, 2243, 1681, 5583, 16527, 12017}}, +{3747, 16, 1373, {1, 1, 5, 15, 23, 31, 5, 169, 287, 527, 1831, 2937, 7533, 9739, 24305, 2239}}, +{3748, 16, 1378, {1, 1, 7, 1, 7, 13, 3, 243, 189, 309, 607, 3659, 6369, 7649, 24255, 55373}}, +{3749, 16, 1408, {1, 1, 1, 3, 3, 59, 103, 209, 287, 913, 1223, 1063, 7715, 6073, 26697, 25671}}, +{3750, 16, 1417, {1, 3, 7, 5, 19, 19, 117, 191, 275, 637, 991, 2199, 2921, 10553, 21211, 25981}}, +{3751, 16, 1418, {1, 3, 3, 5, 29, 59, 17, 13, 127, 57, 1405, 3181, 2237, 1795, 21419, 43421}}, +{3752, 16, 1448, {1, 1, 1, 15, 25, 41, 11, 117, 463, 425, 305, 1441, 4307, 7967, 17529, 4043}}, +{3753, 16, 1454, {1, 3, 5, 5, 19, 53, 69, 73, 453, 611, 1583, 1721, 6303, 10561, 18527, 48973}}, +{3754, 16, 1510, {1, 1, 7, 11, 15, 61, 87, 69, 463, 771, 819, 469, 8165, 8897, 29657, 55161}}, +{3755, 16, 1513, {1, 1, 5, 1, 15, 25, 23, 47, 287, 457, 1219, 473, 4127, 3349, 9425, 41541}}, +{3756, 16, 1522, {1, 3, 7, 5, 17, 17, 33, 161, 239, 231, 241, 1297, 4879, 12761, 20939, 65261}}, +{3757, 16, 1543, {1, 3, 3, 9, 19, 53, 95, 89, 117, 333, 1815, 2217, 7779, 8213, 4667, 58395}}, +{3758, 16, 1550, {1, 3, 3, 9, 17, 7, 41, 99, 371, 797, 729, 2851, 2003, 4463, 20793, 54315}}, +{3759, 16, 1552, {1, 3, 5, 5, 23, 39, 19, 235, 163, 365, 141, 791, 455, 2761, 9115, 53351}}, +{3760, 16, 1588, {1, 3, 3, 3, 9, 27, 29, 139, 165, 867, 2023, 1333, 3771, 10451, 9141, 41177}}, +{3761, 16, 1592, {1, 1, 3, 7, 3, 11, 125, 157, 355, 519, 187, 3381, 1151, 1629, 25247, 42797}}, +{3762, 16, 1597, {1, 3, 3, 3, 21, 25, 37, 155, 257, 311, 961, 1945, 1383, 5679, 7857, 7183}}, +{3763, 16, 1606, {1, 3, 3, 5, 29, 11, 49, 125, 171, 605, 1923, 2781, 2555, 5063, 5075, 43301}}, +{3764, 16, 1610, {1, 3, 5, 9, 27, 1, 27, 149, 253, 205, 1299, 2901, 2891, 975, 7641, 8115}}, +{3765, 16, 1617, {1, 3, 5, 3, 31, 7, 49, 215, 81, 791, 1485, 837, 5051, 1947, 7521, 25723}}, +{3766, 16, 1623, {1, 3, 5, 7, 23, 25, 69, 13, 3, 859, 441, 3577, 1687, 6559, 8687, 46757}}, +{3767, 16, 1657, {1, 1, 1, 9, 1, 59, 3, 31, 251, 187, 617, 2607, 4635, 6121, 8565, 8871}}, +{3768, 16, 1697, {1, 3, 3, 9, 29, 37, 127, 87, 153, 633, 1691, 2729, 3167, 3219, 21237, 25573}}, +{3769, 16, 1729, {1, 1, 5, 13, 19, 63, 93, 235, 299, 621, 405, 663, 6639, 12265, 9303, 42719}}, +{3770, 16, 1735, {1, 1, 3, 9, 25, 11, 9, 231, 101, 335, 1793, 1497, 7069, 4171, 30199, 63}}, +{3771, 16, 1769, {1, 1, 1, 1, 5, 19, 17, 217, 165, 413, 925, 1409, 6559, 14537, 22057, 44331}}, +{3772, 16, 1778, {1, 1, 3, 7, 11, 51, 45, 217, 57, 795, 951, 2933, 6705, 137, 30525, 9679}}, +{3773, 16, 1826, {1, 1, 3, 15, 27, 47, 35, 125, 363, 619, 1027, 2861, 3923, 10459, 16789, 27277}}, +{3774, 16, 1858, {1, 1, 7, 7, 13, 37, 33, 29, 385, 851, 143, 119, 7345, 4251, 25121, 31609}}, +{3775, 16, 1870, {1, 3, 1, 1, 17, 25, 119, 7, 365, 397, 601, 2087, 6903, 15345, 14671, 37889}}, +{3776, 16, 1875, {1, 3, 1, 13, 19, 51, 41, 139, 133, 723, 25, 2621, 1257, 7037, 9527, 50037}}, +{3777, 16, 1922, {1, 1, 5, 11, 5, 59, 119, 75, 397, 545, 1095, 585, 3271, 1049, 123, 33029}}, +{3778, 16, 1924, {1, 1, 7, 11, 9, 27, 21, 197, 177, 31, 453, 2457, 2733, 7787, 1923, 24639}}, +{3779, 16, 1933, {1, 1, 7, 13, 29, 13, 91, 91, 243, 279, 601, 1699, 7169, 4727, 7815, 29099}}, +{3780, 16, 1972, {1, 3, 7, 5, 1, 35, 27, 235, 163, 913, 1479, 769, 7179, 1983, 25977, 55373}}, +{3781, 16, 1979, {1, 3, 5, 11, 9, 33, 99, 141, 301, 109, 1785, 129, 1707, 5181, 4797, 9979}}, +{3782, 16, 1987, {1, 1, 1, 13, 3, 47, 89, 43, 293, 87, 1689, 3885, 7747, 5607, 477, 31887}}, +{3783, 16, 1994, {1, 1, 5, 1, 9, 21, 73, 37, 45, 621, 1855, 3691, 4899, 2191, 13459, 23543}}, +{3784, 16, 2008, {1, 1, 1, 1, 7, 39, 61, 125, 341, 905, 213, 1755, 241, 13407, 8791, 10165}}, +{3785, 16, 2023, {1, 1, 1, 1, 19, 31, 79, 19, 55, 875, 1017, 1787, 4879, 533, 15029, 52295}}, +{3786, 16, 2029, {1, 3, 1, 1, 9, 59, 113, 71, 113, 649, 561, 71, 5253, 783, 7389, 19361}}, +{3787, 16, 2053, {1, 1, 1, 11, 5, 39, 61, 225, 291, 907, 795, 1099, 597, 11829, 15137, 42865}}, +{3788, 16, 2081, {1, 3, 1, 5, 25, 11, 71, 155, 271, 309, 1981, 1253, 463, 1133, 20833, 48625}}, +{3789, 16, 2087, {1, 3, 5, 9, 7, 41, 87, 241, 457, 899, 1493, 3675, 3025, 10607, 22569, 52813}}, +{3790, 16, 2094, {1, 3, 7, 13, 7, 37, 37, 103, 281, 915, 1259, 4049, 559, 173, 4123, 63767}}, +{3791, 16, 2111, {1, 3, 7, 15, 13, 57, 9, 51, 39, 549, 1431, 2887, 1081, 4643, 16331, 14221}}, +{3792, 16, 2113, {1, 3, 5, 7, 13, 1, 101, 125, 25, 713, 1423, 513, 3323, 9951, 7163, 20969}}, +{3793, 16, 2114, {1, 1, 7, 15, 11, 25, 25, 3, 47, 531, 1529, 471, 6191, 10051, 29671, 49085}}, +{3794, 16, 2123, {1, 1, 3, 5, 23, 51, 117, 141, 55, 275, 761, 1923, 6267, 2291, 3701, 26615}}, +{3795, 16, 2190, {1, 1, 7, 9, 15, 19, 111, 65, 137, 373, 1753, 3591, 1137, 11639, 28591, 27265}}, +{3796, 16, 2231, {1, 3, 1, 15, 29, 5, 67, 13, 425, 961, 453, 2481, 1407, 3479, 23303, 30407}}, +{3797, 16, 2276, {1, 1, 5, 3, 19, 39, 39, 123, 351, 77, 1339, 1765, 3767, 1907, 13627, 23877}}, +{3798, 16, 2285, {1, 3, 5, 9, 23, 7, 103, 177, 221, 197, 561, 2121, 7231, 12053, 30127, 29849}}, +{3799, 16, 2297, {1, 1, 5, 7, 15, 1, 3, 123, 197, 493, 171, 2425, 3865, 4061, 31883, 2491}}, +{3800, 16, 2336, {1, 1, 3, 13, 29, 33, 99, 67, 327, 969, 1793, 1871, 1839, 13059, 7605, 16797}}, +{3801, 16, 2345, {1, 3, 5, 11, 25, 53, 25, 93, 303, 623, 1889, 1471, 1213, 14459, 8527, 25095}}, +{3802, 16, 2353, {1, 1, 1, 13, 15, 3, 115, 3, 289, 743, 1855, 359, 2375, 13765, 19711, 40765}}, +{3803, 16, 2363, {1, 1, 7, 11, 27, 51, 85, 163, 219, 871, 637, 2011, 5981, 587, 17521, 17333}}, +{3804, 16, 2368, {1, 3, 5, 1, 21, 59, 49, 39, 305, 513, 2017, 285, 5817, 13123, 27765, 46741}}, +{3805, 16, 2373, {1, 3, 3, 7, 21, 39, 71, 163, 423, 845, 783, 397, 7319, 10677, 13407, 47471}}, +{3806, 16, 2391, {1, 3, 7, 5, 21, 59, 99, 179, 473, 687, 1393, 723, 2245, 2933, 25943, 7769}}, +{3807, 16, 2402, {1, 1, 5, 9, 5, 45, 71, 189, 165, 555, 643, 2289, 3133, 12319, 22209, 1533}}, +{3808, 16, 2413, {1, 1, 3, 9, 7, 43, 1, 155, 323, 169, 339, 2561, 4049, 4953, 5289, 8783}}, +{3809, 16, 2422, {1, 3, 1, 11, 15, 5, 25, 201, 267, 891, 561, 501, 575, 15147, 1743, 45237}}, +{3810, 16, 2425, {1, 3, 5, 13, 25, 27, 105, 205, 165, 795, 975, 943, 7413, 10299, 14839, 54895}}, +{3811, 16, 2461, {1, 1, 5, 1, 17, 43, 69, 103, 449, 917, 103, 945, 513, 709, 11647, 28065}}, +{3812, 16, 2462, {1, 1, 3, 15, 23, 51, 23, 7, 159, 743, 177, 3457, 415, 1775, 25353, 36385}}, +{3813, 16, 2490, {1, 3, 5, 13, 9, 63, 121, 19, 165, 449, 1523, 1959, 6901, 12281, 29149, 45999}}, +{3814, 16, 2492, {1, 3, 7, 11, 17, 19, 9, 155, 373, 753, 1313, 2205, 3571, 16317, 16151, 15325}}, +{3815, 16, 2510, {1, 3, 3, 7, 15, 43, 65, 183, 407, 123, 1151, 375, 3461, 6673, 12985, 21005}}, +{3816, 16, 2564, {1, 3, 7, 7, 9, 1, 87, 247, 489, 123, 1677, 1947, 7961, 13497, 27919, 28993}}, +{3817, 16, 2573, {1, 3, 3, 7, 19, 21, 95, 227, 217, 133, 69, 1535, 699, 3521, 29255, 34733}}, +{3818, 16, 2598, {1, 3, 5, 3, 7, 57, 45, 251, 407, 81, 1259, 2425, 2217, 13097, 12773, 14643}}, +{3819, 16, 2627, {1, 1, 1, 11, 23, 37, 13, 229, 467, 591, 1521, 469, 3763, 2289, 14233, 24053}}, +{3820, 16, 2633, {1, 3, 5, 1, 27, 53, 105, 5, 85, 765, 1973, 2597, 5725, 1063, 18145, 961}}, +{3821, 16, 2647, {1, 3, 7, 1, 21, 47, 115, 95, 403, 3, 1593, 3379, 7371, 15553, 12503, 57979}}, +{3822, 16, 2660, {1, 1, 3, 1, 1, 35, 121, 29, 379, 245, 919, 2673, 3503, 14197, 31193, 8355}}, +{3823, 16, 2664, {1, 3, 5, 11, 19, 49, 97, 7, 195, 1013, 1671, 3415, 2009, 13389, 4837, 27453}}, +{3824, 16, 2678, {1, 1, 5, 13, 9, 15, 115, 97, 463, 449, 303, 2681, 1215, 12559, 15685, 21321}}, +{3825, 16, 2684, {1, 3, 5, 13, 23, 5, 113, 193, 419, 301, 1121, 317, 5503, 4683, 25519, 65}}, +{3826, 16, 2691, {1, 3, 3, 7, 15, 29, 45, 97, 323, 475, 143, 1173, 4033, 8939, 31849, 3575}}, +{3827, 16, 2759, {1, 1, 7, 7, 21, 1, 101, 143, 197, 409, 855, 1753, 5211, 3763, 11139, 37309}}, +{3828, 16, 2768, {1, 1, 3, 13, 25, 33, 55, 45, 381, 349, 991, 535, 4823, 3701, 31629, 48037}}, +{3829, 16, 2773, {1, 3, 1, 11, 17, 51, 27, 57, 409, 551, 949, 365, 8093, 10831, 19697, 39437}}, +{3830, 16, 2794, {1, 3, 5, 3, 31, 33, 81, 49, 91, 865, 469, 2115, 377, 8237, 31907, 38239}}, +{3831, 16, 2813, {1, 1, 3, 7, 29, 59, 57, 17, 121, 889, 1557, 1797, 5001, 14209, 21355, 59739}}, +{3832, 16, 2831, {1, 1, 5, 9, 11, 45, 89, 87, 397, 785, 525, 1593, 5251, 12449, 23579, 54265}}, +{3833, 16, 2843, {1, 3, 5, 11, 5, 31, 19, 47, 207, 331, 91, 1691, 5171, 53, 15945, 33349}}, +{3834, 16, 2846, {1, 1, 1, 15, 11, 41, 91, 177, 505, 871, 815, 3673, 5631, 9915, 1133, 37861}}, +{3835, 16, 2849, {1, 3, 5, 5, 25, 63, 53, 231, 55, 51, 481, 303, 1859, 11973, 28557, 22045}}, +{3836, 16, 2856, {1, 1, 5, 3, 27, 11, 37, 91, 363, 411, 1131, 3369, 377, 6585, 7353, 42949}}, +{3837, 16, 2893, {1, 3, 1, 9, 31, 63, 83, 23, 405, 941, 119, 1471, 2509, 15507, 29239, 49613}}, +{3838, 16, 2901, {1, 1, 5, 1, 11, 63, 117, 237, 407, 231, 1425, 71, 8005, 4023, 9029, 59819}}, +{3839, 16, 2924, {1, 1, 5, 7, 1, 9, 43, 87, 351, 63, 1075, 3381, 5447, 2437, 24983, 26905}}, +{3840, 16, 2942, {1, 3, 7, 5, 5, 35, 33, 89, 251, 819, 1735, 2625, 6363, 6837, 27603, 26669}}, +{3841, 16, 2975, {1, 3, 7, 13, 29, 63, 51, 245, 371, 791, 907, 3499, 3033, 8443, 20023, 1805}}, +{3842, 16, 2979, {1, 1, 5, 7, 13, 15, 109, 197, 451, 709, 929, 3193, 5727, 11185, 29479, 1671}}, +{3843, 16, 2985, {1, 1, 7, 13, 19, 23, 97, 9, 359, 635, 777, 39, 893, 2531, 13563, 19295}}, +{3844, 16, 3020, {1, 1, 5, 1, 31, 63, 55, 7, 157, 877, 991, 1317, 1595, 2019, 21435, 52255}}, +{3845, 16, 3025, {1, 1, 5, 3, 19, 37, 23, 13, 335, 431, 483, 615, 2431, 505, 26245, 63323}}, +{3846, 16, 3028, {1, 3, 7, 5, 5, 9, 37, 65, 303, 423, 1907, 2661, 7213, 2975, 29045, 16243}}, +{3847, 16, 3051, {1, 3, 1, 5, 13, 37, 115, 217, 227, 159, 707, 1387, 943, 4935, 5503, 35171}}, +{3848, 16, 3127, {1, 3, 7, 9, 19, 15, 87, 233, 453, 159, 169, 1077, 2129, 413, 19773, 629}}, +{3849, 16, 3142, {1, 1, 5, 15, 29, 39, 37, 243, 233, 365, 1843, 2219, 1255, 15287, 603, 13511}}, +{3850, 16, 3145, {1, 1, 3, 3, 31, 53, 33, 125, 497, 597, 127, 1829, 3905, 2611, 4263, 40971}}, +{3851, 16, 3156, {1, 3, 5, 9, 11, 47, 71, 215, 383, 321, 1445, 135, 5953, 8791, 22073, 16537}}, +{3852, 16, 3165, {1, 3, 3, 13, 15, 7, 7, 133, 401, 459, 1117, 3165, 4105, 11943, 22431, 56821}}, +{3853, 16, 3196, {1, 1, 7, 9, 31, 39, 19, 7, 19, 401, 79, 3641, 6815, 1489, 7537, 49467}}, +{3854, 16, 3199, {1, 3, 7, 7, 17, 11, 91, 205, 251, 321, 515, 3521, 311, 3169, 271, 34749}}, +{3855, 16, 3217, {1, 3, 3, 7, 29, 15, 5, 153, 83, 603, 1373, 997, 4939, 9811, 243, 5375}}, +{3856, 16, 3218, {1, 1, 3, 11, 21, 47, 25, 221, 237, 177, 535, 2819, 6213, 7877, 26795, 36609}}, +{3857, 16, 3253, {1, 3, 7, 3, 31, 1, 69, 73, 47, 653, 139, 1649, 7183, 1293, 26507, 38415}}, +{3858, 16, 3258, {1, 1, 1, 13, 17, 41, 23, 73, 115, 509, 787, 3733, 1871, 171, 29967, 39941}}, +{3859, 16, 3260, {1, 3, 5, 1, 9, 7, 61, 23, 105, 381, 1421, 2887, 3717, 643, 26375, 57991}}, +{3860, 16, 3289, {1, 3, 3, 3, 19, 3, 101, 117, 393, 83, 1255, 3331, 6481, 8661, 20855, 28875}}, +{3861, 16, 3314, {1, 3, 5, 11, 21, 13, 111, 193, 51, 899, 159, 1989, 7931, 10511, 3933, 447}}, +{3862, 16, 3326, {1, 1, 5, 15, 23, 35, 49, 139, 397, 145, 597, 1847, 7077, 715, 20227, 42183}}, +{3863, 16, 3331, {1, 3, 3, 3, 17, 3, 87, 233, 35, 317, 337, 237, 6901, 3439, 20033, 10307}}, +{3864, 16, 3371, {1, 3, 5, 3, 11, 35, 13, 171, 7, 963, 1443, 1501, 7617, 963, 25453, 62589}}, +{3865, 16, 3381, {1, 1, 1, 5, 11, 9, 39, 175, 409, 411, 1407, 2743, 4255, 989, 15823, 1707}}, +{3866, 16, 3396, {1, 1, 7, 13, 27, 55, 63, 239, 355, 417, 2007, 2299, 2921, 1637, 10687, 60615}}, +{3867, 16, 3441, {1, 1, 7, 9, 5, 61, 57, 73, 263, 307, 2003, 1763, 639, 5885, 14709, 16985}}, +{3868, 16, 3442, {1, 1, 3, 3, 21, 55, 19, 249, 509, 533, 1361, 1397, 2777, 15523, 4389, 13339}}, +{3869, 16, 3460, {1, 3, 5, 15, 9, 3, 91, 237, 451, 299, 1541, 4083, 879, 7859, 21585, 14833}}, +{3870, 16, 3477, {1, 1, 7, 3, 31, 47, 49, 231, 123, 391, 1633, 2567, 5577, 1631, 27951, 22913}}, +{3871, 16, 3491, {1, 3, 7, 13, 11, 13, 1, 111, 183, 87, 839, 1915, 5523, 3677, 13065, 38225}}, +{3872, 16, 3493, {1, 1, 3, 7, 15, 15, 63, 241, 167, 345, 653, 701, 4725, 12911, 11545, 24475}}, +{3873, 16, 3543, {1, 1, 3, 7, 25, 15, 49, 235, 331, 639, 965, 1117, 7147, 3789, 3309, 20255}}, +{3874, 16, 3549, {1, 3, 5, 7, 7, 63, 93, 241, 253, 31, 951, 3723, 3359, 7303, 191, 36427}}, +{3875, 16, 3550, {1, 3, 7, 9, 9, 59, 5, 107, 181, 413, 1269, 3121, 1929, 11921, 8931, 47459}}, +{3876, 16, 3553, {1, 3, 1, 15, 25, 27, 13, 47, 295, 111, 1287, 2551, 4887, 4145, 17063, 42037}}, +{3877, 16, 3563, {1, 3, 3, 13, 17, 17, 21, 17, 491, 845, 1463, 1305, 1375, 16149, 19331, 25043}}, +{3878, 16, 3568, {1, 3, 5, 1, 27, 5, 93, 139, 283, 711, 1141, 1743, 5001, 8851, 19351, 12275}}, +{3879, 16, 3604, {1, 1, 1, 1, 23, 25, 51, 63, 429, 735, 201, 3785, 6677, 16375, 19681, 17857}}, +{3880, 16, 3632, {1, 3, 3, 3, 9, 63, 71, 147, 463, 465, 1163, 1045, 6967, 12537, 31853, 38391}}, +{3881, 16, 3650, {1, 3, 7, 1, 5, 51, 79, 239, 389, 3, 601, 3787, 7635, 16295, 1681, 63971}}, +{3882, 16, 3662, {1, 3, 1, 3, 5, 31, 103, 89, 321, 971, 783, 3685, 1155, 10353, 2167, 35423}}, +{3883, 16, 3674, {1, 1, 5, 15, 25, 19, 93, 59, 361, 217, 1141, 597, 5877, 15961, 1593, 22925}}, +{3884, 16, 3685, {1, 3, 1, 9, 25, 59, 69, 89, 477, 89, 487, 237, 5625, 9579, 30421, 21883}}, +{3885, 16, 3686, {1, 1, 3, 7, 1, 5, 13, 225, 9, 981, 1081, 1407, 6855, 15215, 21713, 62313}}, +{3886, 16, 3700, {1, 1, 7, 15, 11, 13, 119, 109, 151, 245, 1195, 3741, 755, 8047, 15431, 21001}}, +{3887, 16, 3703, {1, 3, 7, 3, 17, 47, 107, 137, 99, 255, 1597, 3281, 5779, 13487, 15061, 19199}}, +{3888, 16, 3704, {1, 1, 3, 3, 9, 39, 77, 227, 511, 839, 1375, 3887, 25, 14763, 13259, 217}}, +{3889, 16, 3723, {1, 3, 5, 7, 17, 3, 87, 61, 439, 287, 709, 4085, 4251, 8945, 28203, 24011}}, +{3890, 16, 3743, {1, 3, 1, 1, 29, 25, 49, 101, 209, 359, 285, 1593, 4161, 2943, 23225, 6381}}, +{3891, 16, 3753, {1, 1, 3, 13, 1, 45, 87, 7, 491, 399, 905, 1403, 4791, 7419, 14355, 47767}}, +{3892, 16, 3756, {1, 1, 7, 15, 13, 25, 111, 197, 297, 301, 499, 4007, 2235, 7681, 4641, 32447}}, +{3893, 16, 3759, {1, 1, 3, 3, 27, 41, 97, 83, 405, 353, 1609, 201, 1503, 10673, 29377, 20445}}, +{3894, 16, 3762, {1, 1, 7, 3, 9, 47, 65, 191, 207, 545, 377, 3011, 7361, 3467, 14073, 46769}}, +{3895, 16, 3771, {1, 1, 7, 5, 7, 39, 9, 91, 187, 949, 1829, 161, 3689, 4145, 32675, 23263}}, +{3896, 16, 3776, {1, 1, 5, 9, 29, 9, 83, 113, 77, 673, 613, 3645, 6671, 8583, 27701, 18615}}, +{3897, 16, 3779, {1, 3, 5, 9, 29, 13, 127, 247, 285, 845, 463, 539, 4441, 1867, 12469, 16213}}, +{3898, 16, 3839, {1, 3, 7, 15, 1, 29, 47, 157, 239, 595, 563, 1103, 3431, 2849, 28125, 19969}}, +{3899, 16, 3856, {1, 1, 1, 15, 25, 13, 1, 131, 57, 257, 2021, 169, 7603, 10721, 21675, 63171}}, +{3900, 16, 3871, {1, 3, 5, 3, 5, 19, 31, 57, 275, 381, 775, 681, 1145, 12237, 5141, 29375}}, +{3901, 16, 3887, {1, 3, 5, 13, 27, 13, 47, 201, 267, 581, 1563, 3845, 951, 7209, 27253, 19755}}, +{3902, 16, 3896, {1, 3, 5, 15, 19, 35, 57, 17, 61, 273, 967, 3029, 1747, 1753, 31321, 23711}}, +{3903, 16, 3901, {1, 1, 1, 5, 13, 13, 7, 177, 335, 393, 1401, 1411, 4703, 8259, 1281, 39835}}, +{3904, 16, 3916, {1, 1, 3, 15, 25, 27, 27, 121, 183, 105, 663, 1375, 6987, 7151, 13763, 39323}}, +{3905, 16, 3919, {1, 3, 7, 5, 15, 1, 81, 129, 455, 163, 675, 81, 3735, 14409, 7269, 16425}}, +{3906, 16, 3937, {1, 3, 3, 11, 13, 7, 79, 157, 165, 663, 229, 3539, 1837, 6485, 30729, 42157}}, +{3907, 16, 3943, {1, 1, 5, 15, 9, 9, 9, 47, 133, 863, 43, 1461, 511, 13991, 24781, 19221}}, +{3908, 16, 3955, {1, 3, 1, 7, 31, 33, 103, 13, 159, 689, 1353, 4025, 6051, 7683, 1741, 30047}}, +{3909, 16, 3961, {1, 1, 3, 11, 5, 45, 71, 219, 475, 585, 1207, 3163, 4661, 4713, 12729, 30445}}, +{3910, 16, 3988, {1, 3, 7, 5, 5, 53, 101, 227, 129, 521, 91, 1129, 4683, 11235, 24697, 45055}}, +{3911, 16, 3997, {1, 1, 3, 13, 1, 43, 7, 1, 73, 857, 1713, 185, 1685, 2369, 24187, 40419}}, +{3912, 16, 4011, {1, 1, 7, 7, 21, 7, 13, 177, 503, 1003, 1091, 2411, 1433, 9063, 13901, 3329}}, +{3913, 16, 4026, {1, 1, 7, 1, 7, 41, 99, 203, 325, 249, 1763, 545, 2981, 14125, 7815, 11385}}, +{3914, 16, 4033, {1, 3, 7, 11, 3, 11, 95, 137, 325, 701, 1177, 1631, 4483, 2955, 30229, 25577}}, +{3915, 16, 4045, {1, 1, 7, 7, 17, 45, 77, 103, 143, 97, 1963, 3635, 1539, 10491, 23483, 22767}}, +{3916, 16, 4060, {1, 1, 7, 15, 7, 5, 81, 63, 243, 55, 39, 207, 2315, 8285, 8155, 11631}}, +{3917, 16, 4063, {1, 3, 5, 15, 23, 19, 115, 9, 125, 851, 161, 3767, 3513, 1855, 11139, 1719}}, +{3918, 16, 4064, {1, 3, 7, 11, 11, 23, 15, 13, 235, 5, 1039, 1425, 6485, 5539, 8967, 64809}}, +{3919, 16, 4126, {1, 3, 5, 7, 19, 11, 83, 135, 45, 905, 1081, 1857, 3185, 13555, 21365, 38143}}, +{3920, 16, 4136, {1, 1, 5, 1, 25, 27, 119, 109, 167, 847, 1539, 2653, 797, 11185, 23501, 22389}}, +{3921, 16, 4167, {1, 1, 7, 7, 11, 3, 51, 97, 277, 557, 207, 3645, 825, 8521, 26653, 60071}}, +{3922, 16, 4173, {1, 3, 3, 15, 17, 35, 57, 7, 267, 549, 97, 243, 1137, 10311, 6737, 19077}}, +{3923, 16, 4188, {1, 1, 1, 15, 23, 33, 27, 203, 415, 1023, 1145, 1881, 7715, 4413, 3727, 5185}}, +{3924, 16, 4195, {1, 1, 3, 3, 13, 47, 63, 13, 75, 505, 595, 2911, 4029, 14187, 23151, 42877}}, +{3925, 16, 4226, {1, 1, 5, 15, 23, 5, 11, 65, 147, 675, 1961, 2177, 727, 15077, 23759, 10195}}, +{3926, 16, 4291, {1, 3, 5, 9, 9, 39, 69, 229, 341, 627, 1331, 3139, 3921, 9219, 14887, 4659}}, +{3927, 16, 4298, {1, 1, 7, 3, 1, 35, 49, 71, 165, 83, 719, 2771, 6475, 7821, 16709, 4449}}, +{3928, 16, 4308, {1, 3, 5, 5, 23, 15, 3, 57, 465, 77, 121, 3767, 6841, 13601, 12035, 14075}}, +{3929, 16, 4312, {1, 1, 7, 3, 3, 23, 45, 131, 287, 941, 713, 415, 6865, 14209, 29555, 55493}}, +{3930, 16, 4336, {1, 3, 5, 11, 29, 35, 55, 75, 225, 779, 569, 1795, 1377, 12765, 19081, 47287}}, +{3931, 16, 4371, {1, 3, 7, 3, 31, 47, 127, 89, 157, 737, 1395, 3615, 7923, 14731, 15797, 40061}}, +{3932, 16, 4378, {1, 1, 1, 11, 21, 37, 21, 59, 9, 141, 193, 3095, 3435, 12371, 26931, 61861}}, +{3933, 16, 4384, {1, 1, 3, 7, 13, 51, 15, 153, 77, 1013, 651, 3949, 6229, 14297, 1039, 46139}}, +{3934, 16, 4393, {1, 3, 3, 13, 7, 43, 95, 61, 217, 3, 549, 739, 123, 3661, 15375, 13919}}, +{3935, 16, 4421, {1, 3, 5, 9, 13, 37, 101, 89, 55, 413, 1089, 775, 7575, 13063, 31393, 29583}}, +{3936, 16, 4425, {1, 1, 3, 9, 25, 63, 119, 143, 499, 145, 603, 2067, 4713, 13457, 14053, 117}}, +{3937, 16, 4439, {1, 1, 5, 9, 7, 23, 57, 253, 115, 591, 2003, 63, 7615, 11493, 28519, 47087}}, +{3938, 16, 4440, {1, 1, 7, 3, 7, 53, 121, 33, 233, 645, 1093, 1697, 7213, 2603, 10743, 51303}}, +{3939, 16, 4500, {1, 3, 5, 7, 13, 31, 17, 125, 93, 969, 159, 1529, 7165, 7371, 8707, 56953}}, +{3940, 16, 4514, {1, 3, 3, 1, 13, 9, 91, 25, 171, 843, 1635, 2043, 1043, 15893, 11409, 53689}}, +{3941, 16, 4523, {1, 3, 5, 7, 13, 19, 89, 97, 203, 923, 1109, 2061, 463, 11703, 8925, 56015}}, +{3942, 16, 4534, {1, 3, 5, 11, 5, 21, 79, 237, 195, 649, 717, 211, 919, 12855, 3045, 39659}}, +{3943, 16, 4593, {1, 1, 1, 15, 13, 19, 21, 69, 393, 257, 1263, 309, 3209, 8403, 24467, 6467}}, +{3944, 16, 4615, {1, 1, 1, 11, 7, 27, 59, 117, 379, 353, 943, 2513, 3869, 4567, 12989, 13139}}, +{3945, 16, 4630, {1, 1, 1, 3, 13, 43, 11, 15, 149, 237, 1555, 71, 2357, 15773, 21419, 40571}}, +{3946, 16, 4636, {1, 3, 1, 9, 19, 23, 59, 215, 15, 921, 1729, 249, 3785, 7171, 1233, 3449}}, +{3947, 16, 4645, {1, 1, 1, 7, 7, 37, 63, 205, 75, 599, 951, 2513, 3347, 2497, 8019, 5433}}, +{3948, 16, 4684, {1, 3, 3, 15, 27, 17, 25, 201, 23, 699, 1525, 465, 1115, 12299, 14747, 40363}}, +{3949, 16, 4687, {1, 1, 1, 3, 29, 59, 115, 233, 107, 815, 291, 3821, 7325, 7381, 21445, 33917}}, +{3950, 16, 4723, {1, 3, 1, 11, 11, 33, 107, 171, 421, 893, 587, 3373, 4101, 3885, 25383, 12035}}, +{3951, 16, 4735, {1, 3, 3, 7, 5, 23, 43, 51, 357, 77, 1327, 2995, 1321, 1571, 26419, 23603}}, +{3952, 16, 4746, {1, 3, 7, 9, 27, 57, 101, 51, 215, 215, 469, 303, 723, 2903, 30569, 42631}}, +{3953, 16, 4779, {1, 3, 3, 13, 1, 7, 63, 205, 143, 321, 1439, 253, 2667, 1271, 11761, 55631}}, +{3954, 16, 4782, {1, 1, 7, 9, 3, 7, 7, 15, 503, 875, 1619, 1715, 5047, 5665, 5503, 17745}}, +{3955, 16, 4793, {1, 1, 7, 15, 19, 49, 65, 31, 245, 371, 377, 2963, 6185, 5519, 10743, 33231}}, +{3956, 16, 4796, {1, 1, 7, 3, 25, 27, 115, 51, 299, 451, 285, 1709, 6153, 14881, 17861, 22071}}, +{3957, 16, 4813, {1, 3, 1, 5, 21, 21, 127, 185, 325, 995, 213, 3279, 4769, 15943, 2589, 29567}}, +{3958, 16, 4850, {1, 3, 7, 5, 21, 9, 63, 59, 159, 743, 663, 2965, 97, 8993, 25633, 29033}}, +{3959, 16, 4867, {1, 3, 7, 13, 3, 35, 59, 101, 21, 659, 1531, 3995, 795, 2143, 21749, 52715}}, +{3960, 16, 4874, {1, 3, 3, 15, 27, 29, 95, 1, 501, 425, 417, 2351, 7877, 4127, 3633, 23347}}, +{3961, 16, 4881, {1, 3, 5, 7, 7, 49, 55, 19, 329, 467, 425, 1609, 6987, 16123, 26879, 42883}}, +{3962, 16, 4894, {1, 1, 1, 15, 17, 21, 13, 13, 85, 7, 677, 3739, 5491, 6299, 29957, 55765}}, +{3963, 16, 4904, {1, 1, 1, 7, 31, 21, 1, 5, 193, 659, 979, 3409, 3151, 6615, 7445, 8151}}, +{3964, 16, 4927, {1, 3, 1, 1, 11, 61, 27, 205, 263, 805, 955, 3469, 1233, 1609, 15329, 13353}}, +{3965, 16, 4929, {1, 3, 3, 9, 3, 29, 59, 75, 149, 557, 663, 3887, 3369, 3397, 10611, 9511}}, +{3966, 16, 4989, {1, 1, 7, 13, 29, 21, 101, 139, 99, 411, 569, 2343, 6901, 1685, 20599, 49543}}, +{3967, 16, 5000, {1, 3, 3, 15, 11, 3, 87, 89, 5, 293, 291, 1405, 1489, 9877, 32505, 32263}}, +{3968, 16, 5020, {1, 1, 5, 5, 19, 45, 89, 5, 381, 253, 1339, 707, 4645, 14177, 29441, 8965}}, +{3969, 16, 5036, {1, 3, 7, 15, 27, 45, 25, 177, 81, 229, 1339, 2143, 6547, 6841, 23449, 14813}}, +{3970, 16, 5041, {1, 1, 1, 3, 27, 23, 81, 157, 53, 513, 1435, 277, 2353, 3545, 21461, 51479}}, +{3971, 16, 5059, {1, 3, 1, 3, 3, 17, 75, 139, 283, 881, 1157, 2081, 937, 14549, 10215, 13053}}, +{3972, 16, 5074, {1, 1, 7, 9, 25, 27, 27, 133, 21, 559, 225, 613, 6931, 11785, 23413, 35757}}, +{3973, 16, 5090, {1, 1, 3, 13, 19, 9, 65, 49, 453, 779, 621, 1151, 1807, 13269, 6515, 17113}}, +{3974, 16, 5110, {1, 1, 1, 13, 21, 49, 39, 79, 119, 401, 903, 493, 3779, 7389, 29425, 28091}}, +{3975, 16, 5134, {1, 3, 1, 3, 23, 57, 59, 213, 463, 839, 1201, 1951, 5197, 13035, 29657, 35517}}, +{3976, 16, 5152, {1, 3, 7, 7, 3, 49, 29, 181, 367, 101, 1277, 3329, 3563, 10373, 29757, 62555}}, +{3977, 16, 5176, {1, 3, 1, 7, 31, 31, 117, 213, 373, 57, 1095, 2733, 3431, 3915, 7665, 44459}}, +{3978, 16, 5181, {1, 1, 7, 5, 9, 25, 47, 117, 355, 495, 1367, 2579, 5617, 787, 27655, 18885}}, +{3979, 16, 5204, {1, 1, 1, 3, 9, 39, 113, 87, 107, 477, 891, 2273, 4239, 7521, 147, 1737}}, +{3980, 16, 5218, {1, 1, 1, 3, 13, 61, 81, 225, 113, 441, 889, 1915, 3897, 15179, 4053, 5925}}, +{3981, 16, 5242, {1, 1, 5, 3, 15, 47, 59, 187, 475, 197, 1381, 33, 4605, 1487, 14359, 33769}}, +{3982, 16, 5253, {1, 3, 7, 15, 23, 45, 53, 215, 129, 465, 795, 53, 7077, 9517, 2663, 55397}}, +{3983, 16, 5260, {1, 1, 7, 13, 25, 49, 105, 255, 245, 153, 1093, 2123, 2823, 5125, 17483, 49003}}, +{3984, 16, 5281, {1, 1, 1, 13, 31, 5, 7, 243, 255, 231, 1663, 1007, 7573, 405, 29183, 11367}}, +{3985, 16, 5282, {1, 1, 5, 13, 15, 15, 115, 91, 63, 1013, 1713, 1945, 6397, 14213, 24417, 40807}}, +{3986, 16, 5313, {1, 1, 5, 3, 19, 49, 91, 25, 43, 601, 25, 2405, 1973, 629, 497, 12625}}, +{3987, 16, 5316, {1, 1, 3, 5, 13, 45, 11, 81, 251, 545, 1155, 1409, 7187, 847, 2835, 32909}}, +{3988, 16, 5326, {1, 3, 1, 13, 27, 57, 1, 103, 465, 809, 1727, 3721, 3347, 3791, 17247, 8377}}, +{3989, 16, 5340, {1, 3, 3, 15, 25, 31, 91, 91, 119, 205, 1431, 703, 5327, 7323, 30415, 61955}}, +{3990, 16, 5347, {1, 3, 5, 11, 19, 39, 79, 243, 109, 463, 1869, 2133, 4139, 10461, 14793, 24025}}, +{3991, 16, 5354, {1, 3, 5, 7, 23, 41, 5, 7, 249, 3, 1743, 489, 4921, 397, 30955, 22207}}, +{3992, 16, 5368, {1, 3, 5, 15, 3, 7, 115, 19, 217, 231, 1183, 3723, 5055, 12967, 7855, 5067}}, +{3993, 16, 5394, {1, 3, 3, 3, 11, 31, 113, 41, 429, 797, 557, 1199, 1819, 1933, 9917, 32229}}, +{3994, 16, 5396, {1, 1, 5, 3, 13, 63, 31, 183, 465, 915, 723, 3227, 4125, 2813, 26313, 34287}}, +{3995, 16, 5400, {1, 1, 7, 5, 31, 55, 117, 243, 37, 885, 85, 1067, 3895, 15655, 28527, 32109}}, +{3996, 16, 5405, {1, 3, 7, 15, 17, 43, 43, 173, 119, 187, 1161, 599, 4595, 1681, 11981, 681}}, +{3997, 16, 5439, {1, 1, 7, 7, 29, 47, 25, 93, 411, 103, 783, 1029, 1927, 3569, 27647, 8281}}, +{3998, 16, 5442, {1, 3, 3, 9, 19, 57, 31, 183, 141, 889, 157, 2267, 5701, 6273, 25739, 34039}}, +{3999, 16, 5459, {1, 3, 5, 1, 29, 35, 105, 165, 505, 299, 1149, 2397, 2013, 11591, 15917, 4791}}, +{4000, 16, 5478, {1, 3, 3, 9, 7, 35, 47, 77, 69, 335, 585, 1131, 531, 8597, 307, 55985}}, +{4001, 16, 5484, {1, 3, 7, 1, 29, 9, 25, 155, 149, 845, 567, 3735, 3501, 9365, 12025, 19131}}, +{4002, 16, 5508, {1, 3, 5, 3, 11, 31, 25, 9, 411, 519, 1611, 1441, 1487, 10049, 14373, 24605}}, +{4003, 16, 5523, {1, 3, 3, 5, 3, 7, 101, 107, 339, 155, 1843, 2529, 443, 8177, 28655, 8151}}, +{4004, 16, 5545, {1, 1, 7, 5, 29, 37, 73, 131, 125, 451, 947, 797, 5053, 10155, 30801, 27235}}, +{4005, 16, 5565, {1, 1, 7, 13, 19, 47, 101, 45, 495, 457, 1293, 1971, 5495, 12737, 17687, 26123}}, +{4006, 16, 5566, {1, 1, 7, 7, 11, 11, 75, 177, 251, 553, 1883, 3379, 1429, 12227, 10301, 16467}}, +{4007, 16, 5580, {1, 3, 3, 9, 3, 61, 95, 35, 97, 551, 233, 2045, 4873, 9109, 10019, 64523}}, +{4008, 16, 5608, {1, 3, 1, 5, 11, 3, 15, 177, 301, 573, 2029, 191, 5551, 12083, 27287, 57235}}, +{4009, 16, 5613, {1, 3, 5, 1, 21, 9, 121, 169, 347, 187, 57, 3163, 5609, 1921, 17581, 28351}}, +{4010, 16, 5647, {1, 3, 3, 1, 31, 51, 15, 45, 429, 245, 573, 1595, 5343, 7519, 17009, 1299}}, +{4011, 16, 5661, {1, 1, 7, 3, 13, 47, 109, 65, 389, 867, 963, 145, 1089, 9749, 19625, 43121}}, +{4012, 16, 5671, {1, 3, 1, 7, 21, 61, 77, 67, 143, 579, 625, 2007, 6343, 4259, 21233, 237}}, +{4013, 16, 5678, {1, 3, 5, 9, 27, 15, 107, 91, 399, 895, 645, 2301, 439, 6789, 18299, 47285}}, +{4014, 16, 5680, {1, 3, 3, 5, 13, 11, 43, 199, 505, 409, 25, 2057, 479, 6031, 9561, 51613}}, +{4015, 16, 5685, {1, 1, 7, 13, 15, 55, 105, 53, 171, 925, 1849, 2881, 6951, 13069, 865, 41019}}, +{4016, 16, 5689, {1, 3, 1, 9, 17, 31, 45, 23, 411, 185, 189, 2123, 2583, 12713, 12681, 2231}}, +{4017, 16, 5692, {1, 3, 7, 9, 3, 63, 11, 253, 177, 127, 545, 3293, 4449, 15995, 10223, 33529}}, +{4018, 16, 5724, {1, 1, 5, 11, 13, 7, 53, 161, 421, 551, 697, 627, 3879, 1639, 24419, 3337}}, +{4019, 16, 5745, {1, 1, 7, 7, 27, 7, 37, 205, 429, 407, 1133, 3563, 2921, 6173, 11173, 3009}}, +{4020, 16, 5755, {1, 3, 3, 15, 31, 39, 117, 81, 337, 729, 567, 2299, 1481, 3189, 1795, 40299}}, +{4021, 16, 5757, {1, 3, 5, 15, 15, 47, 91, 127, 275, 55, 951, 3423, 2879, 6115, 1549, 2287}}, +{4022, 16, 5786, {1, 3, 3, 11, 17, 3, 127, 207, 141, 889, 185, 1095, 4567, 1371, 30545, 54445}}, +{4023, 16, 5792, {1, 1, 7, 3, 25, 11, 11, 139, 43, 1, 1977, 397, 5775, 6913, 13249, 46767}}, +{4024, 16, 5810, {1, 1, 7, 7, 27, 13, 31, 251, 191, 1015, 161, 3719, 5321, 13013, 25187, 51881}}, +{4025, 16, 5824, {1, 1, 1, 1, 3, 3, 13, 19, 423, 349, 1955, 2103, 6395, 3315, 23809, 25925}}, +{4026, 16, 5869, {1, 3, 5, 13, 3, 59, 41, 167, 423, 93, 1299, 2623, 5829, 8537, 8701, 43757}}, +{4027, 16, 5872, {1, 3, 5, 11, 9, 19, 127, 119, 329, 819, 7, 3809, 5305, 3643, 27369, 61827}}, +{4028, 16, 5895, {1, 3, 1, 15, 25, 43, 55, 159, 205, 911, 983, 2825, 3751, 7845, 12023, 18431}}, +{4029, 16, 5923, {1, 3, 3, 13, 11, 1, 65, 133, 479, 181, 679, 981, 3317, 6241, 11693, 9619}}, +{4030, 16, 5925, {1, 3, 3, 3, 21, 25, 117, 183, 127, 73, 703, 1469, 257, 11229, 10167, 50847}}, +{4031, 16, 5926, {1, 1, 5, 13, 5, 5, 113, 15, 231, 269, 989, 465, 3267, 15239, 29503, 42855}}, +{4032, 16, 5944, {1, 3, 3, 15, 9, 63, 79, 27, 21, 709, 1969, 3761, 1015, 13619, 4205, 40591}}, +{4033, 16, 5986, {1, 1, 7, 11, 29, 3, 5, 45, 107, 131, 1287, 3551, 849, 2003, 27451, 47103}}, +{4034, 16, 6012, {1, 3, 5, 11, 3, 47, 59, 53, 369, 249, 915, 2475, 7539, 763, 7063, 63971}}, +{4035, 16, 6015, {1, 1, 5, 1, 7, 53, 45, 127, 321, 341, 635, 2277, 1383, 10951, 29055, 45087}}, +{4036, 16, 6046, {1, 3, 7, 3, 5, 1, 119, 79, 487, 93, 25, 491, 4085, 6403, 27779, 8753}}, +{4037, 16, 6049, {1, 1, 1, 3, 9, 59, 49, 141, 323, 703, 1175, 423, 4323, 10083, 4289, 28931}}, +{4038, 16, 6061, {1, 3, 3, 15, 31, 31, 73, 15, 187, 653, 91, 1707, 1431, 9861, 19071, 8137}}, +{4039, 16, 6067, {1, 1, 1, 5, 27, 63, 93, 1, 329, 353, 863, 473, 7681, 10653, 15819, 8495}}, +{4040, 16, 6099, {1, 1, 1, 5, 25, 57, 119, 167, 219, 319, 231, 1065, 6217, 5131, 1513, 49281}}, +{4041, 16, 6121, {1, 3, 7, 3, 17, 3, 113, 91, 201, 179, 1907, 3423, 821, 12927, 24827, 49403}}, +{4042, 16, 6155, {1, 1, 5, 7, 19, 63, 75, 151, 387, 489, 777, 2049, 1151, 1351, 25687, 4143}}, +{4043, 16, 6163, {1, 3, 5, 7, 9, 37, 9, 3, 87, 385, 1667, 2139, 7527, 16133, 30023, 28783}}, +{4044, 16, 6203, {1, 1, 5, 9, 11, 55, 95, 73, 413, 867, 589, 2901, 3021, 413, 5955, 38921}}, +{4045, 16, 6208, {1, 3, 5, 15, 1, 17, 17, 7, 485, 323, 519, 2325, 2255, 4211, 20661, 28931}}, +{4046, 16, 6231, {1, 1, 5, 13, 21, 19, 85, 189, 167, 645, 1475, 3095, 7123, 3351, 7961, 20967}}, +{4047, 16, 6241, {1, 1, 7, 13, 3, 47, 13, 213, 237, 291, 285, 1465, 1765, 12361, 32651, 54205}}, +{4048, 16, 6254, {1, 3, 7, 13, 13, 27, 71, 35, 67, 117, 647, 2359, 3295, 8445, 24761, 29379}}, +{4049, 16, 6262, {1, 1, 1, 3, 3, 19, 23, 37, 5, 1019, 5, 1605, 2291, 14015, 9311, 39751}}, +{4050, 16, 6266, {1, 3, 3, 3, 31, 1, 65, 159, 221, 675, 1061, 971, 2333, 8265, 14361, 3263}}, +{4051, 16, 6275, {1, 1, 3, 7, 3, 5, 81, 17, 101, 991, 753, 2883, 4977, 4409, 1757, 26803}}, +{4052, 16, 6278, {1, 1, 5, 9, 13, 25, 45, 43, 199, 967, 829, 713, 4547, 7223, 6497, 53895}}, +{4053, 16, 6292, {1, 1, 7, 5, 23, 15, 89, 179, 509, 147, 315, 133, 111, 15577, 23427, 5229}}, +{4054, 16, 6329, {1, 3, 3, 7, 27, 7, 113, 65, 315, 135, 1309, 1179, 5755, 7513, 6815, 5137}}, +{4055, 16, 6355, {1, 1, 3, 7, 1, 13, 29, 155, 477, 721, 71, 865, 3897, 3331, 30641, 65471}}, +{4056, 16, 6357, {1, 1, 7, 3, 29, 45, 83, 3, 461, 109, 1545, 1365, 6633, 16137, 23859, 5995}}, +{4057, 16, 6374, {1, 3, 1, 1, 3, 33, 77, 83, 459, 187, 879, 3731, 6939, 6707, 23409, 24245}}, +{4058, 16, 6380, {1, 3, 5, 5, 13, 43, 127, 41, 29, 735, 1391, 2947, 4873, 4627, 15, 41719}}, +{4059, 16, 6423, {1, 3, 1, 3, 17, 17, 51, 93, 189, 227, 449, 2809, 825, 2009, 9563, 41435}}, +{4060, 16, 6427, {1, 3, 3, 11, 25, 47, 113, 173, 141, 919, 677, 117, 5293, 815, 23749, 19789}}, +{4061, 16, 6430, {1, 1, 1, 13, 15, 61, 121, 223, 53, 389, 489, 1527, 4771, 8975, 8005, 14275}}, +{4062, 16, 6436, {1, 1, 3, 15, 31, 57, 111, 145, 279, 991, 489, 3239, 7647, 473, 31279, 33447}}, +{4063, 16, 6443, {1, 1, 7, 5, 31, 13, 75, 185, 395, 611, 609, 159, 7931, 9887, 4115, 53121}}, +{4064, 16, 6445, {1, 3, 5, 5, 13, 39, 103, 237, 77, 913, 511, 1583, 6763, 14523, 4247, 63403}}, +{4065, 16, 6458, {1, 1, 1, 15, 11, 5, 43, 43, 297, 827, 747, 5, 3785, 15021, 11291, 36743}}, +{4066, 16, 6478, {1, 1, 7, 9, 9, 53, 113, 95, 403, 53, 1335, 4033, 8147, 11963, 6523, 23675}}, +{4067, 16, 6490, {1, 1, 5, 9, 27, 29, 69, 79, 327, 409, 1147, 1579, 2625, 12227, 30933, 9057}}, +{4068, 16, 6508, {1, 1, 1, 7, 1, 33, 29, 173, 5, 517, 437, 2035, 57, 12825, 22095, 65519}}, +{4069, 16, 6519, {1, 1, 3, 7, 27, 29, 53, 79, 429, 707, 589, 2605, 339, 7039, 19319, 17649}}, +{4070, 16, 6520, {1, 3, 3, 11, 9, 57, 43, 117, 39, 193, 1427, 2553, 6877, 7653, 29041, 44865}}, +{4071, 16, 6530, {1, 3, 3, 7, 23, 45, 29, 151, 265, 739, 365, 3565, 6447, 9761, 24021, 679}}, +{4072, 16, 6541, {1, 3, 5, 1, 1, 43, 73, 55, 131, 175, 959, 659, 7315, 15145, 18301, 14865}}, +{4073, 16, 6556, {1, 1, 3, 5, 15, 15, 91, 113, 359, 241, 1627, 1069, 1761, 211, 32671, 58833}}, +{4074, 16, 6607, {1, 3, 3, 7, 29, 27, 79, 53, 409, 81, 693, 3137, 7385, 11007, 28459, 28621}}, +{4075, 16, 6612, {1, 1, 7, 5, 29, 7, 67, 195, 77, 773, 1361, 2153, 4459, 7301, 5129, 17797}}, +{4076, 16, 6626, {1, 3, 3, 7, 25, 27, 91, 223, 115, 91, 1645, 2167, 1955, 9601, 22127, 13055}}, +{4077, 16, 6632, {1, 3, 7, 3, 27, 53, 67, 249, 51, 151, 663, 3231, 895, 6777, 3037, 56755}}, +{4078, 16, 6649, {1, 1, 5, 1, 25, 63, 71, 179, 375, 301, 1127, 2125, 783, 14481, 7293, 47883}}, +{4079, 16, 6666, {1, 1, 3, 9, 25, 3, 39, 69, 1, 85, 1271, 1571, 1953, 5077, 20369, 44827}}, +{4080, 16, 6674, {1, 3, 1, 13, 11, 61, 77, 59, 127, 475, 1609, 3553, 2553, 15589, 9351, 59787}}, +{4081, 16, 6733, {1, 3, 1, 5, 21, 7, 61, 27, 199, 653, 1243, 2481, 5369, 12903, 30229, 39453}}, +{4082, 16, 6782, {1, 3, 7, 3, 13, 15, 107, 153, 501, 573, 863, 3179, 6019, 15177, 16075, 43767}}, +{4083, 16, 6786, {1, 1, 7, 1, 23, 55, 17, 35, 5, 137, 1707, 1377, 6857, 15361, 27299, 61871}}, +{4084, 16, 6798, {1, 3, 5, 7, 27, 17, 87, 213, 95, 125, 1239, 3923, 4193, 11049, 12783, 45017}}, +{4085, 16, 6821, {1, 1, 5, 15, 9, 55, 11, 217, 7, 249, 369, 205, 4251, 13785, 24781, 48929}}, +{4086, 16, 6840, {1, 3, 7, 1, 15, 35, 33, 107, 503, 563, 1591, 3487, 7495, 1767, 24791, 31281}}, +{4087, 16, 6846, {1, 3, 1, 11, 3, 15, 47, 193, 289, 253, 909, 1105, 5119, 1415, 7737, 4341}}, +{4088, 16, 6865, {1, 1, 1, 3, 23, 33, 53, 187, 469, 573, 835, 2049, 791, 1177, 31051, 30955}}, +{4089, 16, 6884, {1, 3, 3, 11, 15, 51, 77, 143, 369, 991, 1103, 1293, 6019, 6361, 26301, 20741}}, +{4090, 16, 6891, {1, 1, 1, 5, 17, 19, 85, 135, 113, 593, 579, 1063, 7173, 2491, 9355, 19223}}, +{4091, 16, 6925, {1, 1, 5, 15, 25, 51, 107, 193, 31, 1, 1693, 125, 6223, 14619, 22683, 26321}}, +{4092, 16, 6938, {1, 1, 7, 1, 17, 45, 87, 39, 87, 499, 1185, 2763, 3989, 2863, 24555, 33817}}, +{4093, 16, 6967, {1, 3, 1, 11, 31, 5, 121, 231, 185, 793, 255, 2785, 5261, 3687, 21711, 3941}}, +{4094, 16, 6988, {1, 3, 7, 15, 5, 59, 73, 227, 365, 937, 893, 2155, 4385, 14345, 6813, 28461}}, +{4095, 16, 6996, {1, 1, 5, 7, 7, 23, 7, 239, 431, 45, 1015, 1663, 1893, 5035, 24075, 2119}}, +{4096, 16, 7009, {1, 3, 5, 1, 3, 15, 63, 103, 119, 801, 1681, 3463, 6083, 6453, 11379, 8205}}, +{4097, 16, 7016, {1, 3, 7, 9, 21, 61, 9, 9, 433, 541, 603, 3905, 3787, 10187, 3643, 21319}}, +{4098, 16, 7030, {1, 3, 5, 3, 11, 1, 101, 243, 363, 559, 561, 1163, 455, 4657, 1147, 39961}}, +{4099, 16, 7043, {1, 3, 5, 13, 17, 37, 57, 47, 483, 571, 1579, 1137, 8125, 12271, 23279, 1615}}, +{4100, 16, 7045, {1, 3, 5, 1, 21, 5, 13, 155, 75, 705, 389, 2855, 6345, 2279, 12627, 49451}}, +{4101, 16, 7052, {1, 1, 3, 9, 15, 51, 73, 99, 445, 227, 1705, 2175, 8111, 9381, 31555, 48491}}, +{4102, 16, 7073, {1, 3, 3, 5, 9, 63, 107, 51, 461, 979, 1033, 421, 4807, 11707, 13261, 26015}}, +{4103, 16, 7142, {1, 1, 5, 3, 13, 53, 117, 249, 57, 851, 1391, 3245, 35, 16043, 24399, 63667}}, +{4104, 16, 7153, {1, 3, 1, 11, 23, 33, 57, 125, 385, 495, 871, 199, 4269, 2269, 22897, 23597}}, +{4105, 16, 7168, {1, 3, 5, 15, 29, 11, 77, 21, 479, 369, 723, 3721, 1121, 9463, 19775, 54525}}, +{4106, 16, 7174, {1, 3, 5, 7, 7, 45, 29, 153, 395, 223, 1917, 3713, 5087, 10827, 1383, 36823}}, +{4107, 16, 7183, {1, 3, 1, 3, 31, 19, 111, 55, 275, 923, 917, 2925, 673, 6579, 18783, 5137}}, +{4108, 16, 7195, {1, 3, 1, 15, 25, 31, 59, 255, 31, 697, 1751, 381, 299, 295, 14037, 40953}}, +{4109, 16, 7204, {1, 3, 1, 7, 15, 23, 69, 219, 351, 183, 1083, 2227, 6249, 9385, 13167, 2901}}, +{4110, 16, 7214, {1, 3, 7, 1, 5, 61, 117, 13, 67, 521, 41, 2929, 3937, 1215, 25593, 32627}}, +{4111, 16, 7222, {1, 3, 5, 1, 9, 47, 63, 39, 371, 657, 491, 2243, 4049, 10517, 12409, 40597}}, +{4112, 16, 7267, {1, 3, 7, 15, 17, 3, 77, 13, 275, 225, 487, 2055, 1293, 15927, 31773, 18275}}, +{4113, 16, 7269, {1, 1, 5, 13, 11, 57, 113, 27, 191, 363, 1341, 3487, 8031, 13801, 7563, 40675}}, +{4114, 16, 7279, {1, 1, 3, 3, 27, 31, 103, 143, 271, 305, 2033, 3623, 4219, 9307, 7501, 8959}}, +{4115, 16, 7293, {1, 1, 1, 13, 1, 3, 27, 97, 475, 143, 333, 2997, 1807, 4231, 27437, 59717}}, +{4116, 16, 7312, {1, 3, 7, 5, 5, 3, 69, 233, 309, 511, 1429, 1887, 2745, 4969, 17595, 5451}}, +{4117, 16, 7327, {1, 1, 7, 3, 23, 17, 115, 89, 265, 467, 257, 2027, 5331, 1195, 4451, 8621}}, +{4118, 16, 7334, {1, 1, 7, 13, 29, 35, 117, 155, 99, 327, 853, 3595, 2997, 10745, 21619, 26549}}, +{4119, 16, 7337, {1, 3, 3, 13, 1, 13, 75, 151, 67, 271, 1609, 1117, 4293, 4645, 12005, 55983}}, +{4120, 16, 7343, {1, 1, 1, 13, 1, 61, 101, 63, 161, 261, 1759, 567, 665, 2339, 9157, 55603}}, +{4121, 16, 7346, {1, 1, 7, 11, 25, 19, 71, 27, 255, 435, 227, 4087, 4309, 14903, 14513, 30207}}, +{4122, 16, 7372, {1, 3, 3, 3, 11, 41, 1, 67, 383, 403, 45, 1521, 1535, 3353, 27361, 7549}}, +{4123, 16, 7387, {1, 1, 1, 1, 13, 51, 31, 137, 147, 907, 19, 3639, 3739, 877, 15005, 60357}}, +{4124, 16, 7390, {1, 1, 3, 11, 11, 23, 29, 173, 105, 873, 1727, 2761, 2015, 7491, 17491, 41065}}, +{4125, 16, 7396, {1, 1, 5, 3, 31, 1, 119, 53, 11, 731, 393, 4031, 4421, 15715, 6431, 18089}}, +{4126, 16, 7423, {1, 1, 3, 5, 15, 37, 55, 147, 307, 521, 711, 3085, 5989, 8081, 23351, 35259}}, +{4127, 16, 7428, {1, 3, 5, 13, 21, 19, 47, 107, 447, 713, 1655, 2809, 4741, 2105, 9255, 103}}, +{4128, 16, 7437, {1, 3, 1, 3, 17, 47, 63, 125, 343, 763, 1777, 607, 5625, 9517, 7221, 27257}}, +{4129, 16, 7466, {1, 1, 7, 5, 31, 13, 67, 255, 41, 947, 99, 721, 7367, 11427, 1357, 12383}}, +{4130, 16, 7474, {1, 1, 7, 3, 23, 27, 73, 185, 189, 545, 1877, 3169, 5419, 15873, 29059, 23983}}, +{4131, 16, 7476, {1, 1, 3, 1, 5, 13, 81, 45, 79, 717, 819, 3539, 7561, 7319, 5113, 27273}}, +{4132, 16, 7483, {1, 3, 7, 9, 21, 25, 71, 247, 41, 583, 771, 3745, 1883, 5717, 755, 14549}}, +{4133, 16, 7518, {1, 1, 3, 7, 23, 25, 87, 143, 499, 515, 1753, 1229, 173, 10629, 30579, 29643}}, +{4134, 16, 7527, {1, 3, 1, 13, 29, 33, 31, 69, 503, 117, 1717, 101, 7647, 1567, 28677, 3079}}, +{4135, 16, 7545, {1, 3, 1, 15, 29, 45, 57, 81, 171, 813, 505, 3647, 3913, 5557, 2477, 42429}}, +{4136, 16, 7572, {1, 1, 5, 13, 21, 13, 81, 5, 471, 221, 1563, 1741, 7269, 16327, 22687, 5291}}, +{4137, 16, 7586, {1, 3, 5, 3, 23, 41, 107, 61, 95, 79, 467, 1533, 739, 6791, 26911, 20309}}, +{4138, 16, 7597, {1, 3, 7, 7, 3, 53, 71, 163, 459, 975, 687, 1115, 5241, 299, 26361, 38583}}, +{4139, 16, 7630, {1, 3, 1, 9, 3, 63, 7, 133, 421, 325, 823, 1175, 6201, 5707, 31539, 34645}}, +{4140, 16, 7653, {1, 3, 7, 5, 27, 27, 107, 239, 247, 257, 1367, 3685, 7839, 11693, 3237, 13085}}, +{4141, 16, 7657, {1, 1, 1, 3, 27, 41, 51, 69, 271, 809, 1453, 519, 1301, 2367, 637, 5267}}, +{4142, 16, 7671, {1, 3, 7, 13, 19, 17, 3, 69, 369, 447, 1685, 4075, 6143, 11387, 5411, 29825}}, +{4143, 16, 7672, {1, 1, 3, 1, 25, 61, 79, 163, 1, 905, 1969, 2735, 7709, 16121, 20441, 4543}}, +{4144, 16, 7715, {1, 3, 7, 5, 15, 29, 7, 245, 343, 803, 1719, 3993, 983, 2925, 10393, 6053}}, +{4145, 16, 7717, {1, 3, 1, 7, 17, 55, 63, 29, 441, 387, 885, 3269, 1977, 1927, 3657, 47043}}, +{4146, 16, 7732, {1, 1, 3, 1, 17, 59, 51, 9, 173, 327, 1185, 3241, 3785, 10907, 19429, 22209}}, +{4147, 16, 7735, {1, 1, 3, 13, 21, 57, 125, 5, 359, 437, 1231, 2441, 5813, 9991, 283, 52555}}, +{4148, 16, 7753, {1, 3, 1, 7, 15, 19, 39, 125, 405, 381, 1757, 4075, 5565, 2065, 295, 8867}}, +{4149, 16, 7811, {1, 3, 3, 11, 7, 33, 95, 19, 253, 141, 1093, 1787, 7495, 5229, 15923, 44157}}, +{4150, 16, 7817, {1, 3, 7, 15, 1, 49, 69, 163, 85, 345, 901, 2329, 8003, 9915, 2209, 33979}}, +{4151, 16, 7825, {1, 1, 1, 9, 23, 51, 125, 163, 257, 681, 565, 945, 6375, 8679, 5985, 28919}}, +{4152, 16, 7832, {1, 3, 5, 7, 11, 23, 123, 231, 377, 121, 1519, 2061, 2957, 14537, 17625, 37773}}, +{4153, 16, 7838, {1, 3, 5, 1, 17, 43, 89, 119, 455, 279, 1857, 3405, 5225, 13035, 6055, 30861}}, +{4154, 16, 7841, {1, 3, 7, 15, 31, 63, 25, 225, 3, 527, 355, 1435, 5763, 15203, 26579, 45659}}, +{4155, 16, 7844, {1, 1, 1, 3, 27, 43, 71, 193, 135, 5, 683, 925, 7023, 7711, 2807, 56003}}, +{4156, 16, 7859, {1, 1, 1, 11, 3, 3, 109, 29, 109, 683, 419, 3295, 1961, 5953, 8887, 1523}}, +{4157, 16, 7861, {1, 3, 3, 11, 17, 39, 19, 225, 103, 249, 81, 3875, 4515, 3969, 24745, 60031}}, +{4158, 16, 7873, {1, 1, 3, 3, 3, 23, 15, 149, 305, 399, 1347, 1001, 597, 10003, 22123, 29919}}, +{4159, 16, 7880, {1, 3, 5, 1, 23, 35, 123, 7, 283, 283, 759, 3061, 2011, 7771, 32201, 40667}}, +{4160, 16, 7897, {1, 3, 7, 15, 23, 5, 81, 51, 357, 79, 133, 285, 425, 7743, 13499, 18983}}, +{4161, 16, 7904, {1, 3, 3, 5, 17, 37, 75, 221, 473, 111, 335, 683, 7353, 2283, 13457, 61171}}, +{4162, 16, 7910, {1, 3, 1, 7, 13, 45, 13, 223, 149, 209, 727, 3553, 2573, 177, 855, 44139}}, +{4163, 16, 7960, {1, 1, 3, 15, 23, 5, 103, 139, 17, 29, 1961, 3021, 5745, 12963, 30669, 44171}}, +{4164, 16, 7969, {1, 3, 1, 1, 3, 33, 67, 203, 29, 785, 71, 1693, 4487, 10221, 24523, 51223}}, +{4165, 16, 7970, {1, 1, 5, 7, 7, 27, 17, 183, 229, 669, 1675, 3751, 3233, 10677, 7509, 52313}}, +{4166, 16, 7976, {1, 1, 5, 5, 25, 35, 21, 163, 483, 399, 195, 3465, 6349, 545, 18861, 31759}}, +{4167, 16, 7979, {1, 3, 1, 5, 15, 39, 13, 157, 71, 841, 447, 3625, 53, 12745, 2719, 27617}}, +{4168, 16, 8007, {1, 1, 5, 5, 3, 45, 113, 121, 263, 887, 709, 2189, 3811, 1409, 10451, 48777}}, +{4169, 16, 8041, {1, 1, 5, 15, 9, 41, 31, 95, 377, 215, 437, 3633, 433, 11935, 15283, 55451}}, +{4170, 16, 8047, {1, 1, 7, 7, 13, 23, 79, 3, 451, 409, 1103, 1771, 553, 3175, 28703, 49357}}, +{4171, 16, 8052, {1, 3, 1, 1, 13, 33, 95, 133, 419, 851, 955, 3985, 5869, 14219, 253, 46883}}, +{4172, 16, 8061, {1, 3, 3, 3, 23, 55, 91, 207, 281, 355, 361, 261, 6837, 4401, 25455, 25313}}, +{4173, 16, 8078, {1, 3, 5, 9, 27, 9, 107, 51, 69, 555, 835, 3541, 1827, 5737, 31225, 55619}}, +{4174, 16, 8128, {1, 1, 1, 11, 27, 51, 79, 85, 447, 447, 9, 2803, 377, 4347, 2183, 61257}}, +{4175, 16, 8146, {1, 1, 1, 3, 23, 21, 51, 217, 297, 135, 573, 689, 4947, 14143, 26247, 43061}}, +{4176, 16, 8162, {1, 3, 1, 7, 15, 13, 27, 151, 463, 707, 43, 3641, 4999, 3783, 9083, 22085}}, +{4177, 16, 8250, {1, 3, 3, 5, 3, 1, 15, 119, 343, 605, 105, 2939, 2259, 889, 21759, 34073}}, +{4178, 16, 8270, {1, 1, 1, 7, 3, 63, 103, 1, 235, 317, 263, 2701, 7331, 15921, 17295, 613}}, +{4179, 16, 8294, {1, 1, 7, 3, 19, 3, 5, 17, 105, 491, 755, 233, 5397, 12365, 16325, 59377}}, +{4180, 16, 8324, {1, 3, 3, 15, 15, 27, 37, 151, 481, 949, 1473, 233, 1925, 15471, 24957, 3241}}, +{4181, 16, 8351, {1, 1, 7, 5, 9, 61, 49, 91, 169, 179, 701, 3957, 473, 15087, 6109, 25083}}, +{4182, 16, 8357, {1, 3, 3, 11, 27, 43, 5, 33, 69, 705, 733, 2675, 2677, 4235, 11109, 15557}}, +{4183, 16, 8361, {1, 3, 1, 3, 17, 19, 101, 119, 289, 341, 1395, 563, 6859, 10359, 10077, 26905}}, +{4184, 16, 8364, {1, 1, 1, 15, 21, 47, 41, 145, 439, 583, 1755, 1977, 5235, 15961, 21315, 60577}}, +{4185, 16, 8393, {1, 1, 5, 3, 9, 59, 71, 143, 27, 1007, 313, 1567, 1685, 11063, 28889, 44253}}, +{4186, 16, 8396, {1, 1, 5, 5, 29, 29, 43, 127, 13, 585, 1245, 187, 2697, 8791, 19561, 6463}}, +{4187, 16, 8407, {1, 1, 3, 11, 29, 39, 127, 75, 23, 521, 421, 3115, 139, 5429, 23341, 58035}}, +{4188, 16, 8413, {1, 1, 3, 1, 27, 35, 27, 9, 185, 653, 887, 2715, 3775, 1753, 22105, 62095}}, +{4189, 16, 8414, {1, 1, 5, 5, 5, 63, 23, 31, 317, 1001, 1751, 1185, 7933, 525, 30501, 15565}}, +{4190, 16, 8432, {1, 1, 1, 5, 9, 27, 79, 91, 453, 995, 1041, 3213, 8027, 5855, 7435, 64079}}, +{4191, 16, 8435, {1, 1, 3, 11, 1, 51, 27, 195, 139, 41, 1891, 1437, 1033, 11671, 3235, 35083}}, +{4192, 16, 8441, {1, 3, 1, 3, 11, 25, 33, 249, 373, 497, 1631, 293, 3657, 10741, 15831, 59545}}, +{4193, 16, 8447, {1, 1, 1, 1, 15, 63, 13, 165, 113, 559, 1615, 3579, 1993, 1907, 22335, 47791}}, +{4194, 16, 8449, {1, 1, 3, 15, 13, 49, 63, 235, 31, 811, 1729, 221, 5143, 11547, 30029, 52003}}, +{4195, 16, 8456, {1, 1, 5, 13, 29, 61, 25, 221, 421, 221, 583, 373, 2341, 7493, 13981, 54141}}, +{4196, 16, 8485, {1, 1, 5, 11, 21, 49, 71, 249, 237, 369, 1273, 1067, 4411, 409, 7219, 52933}}, +{4197, 16, 8504, {1, 3, 1, 1, 13, 23, 53, 15, 137, 553, 401, 2247, 5591, 14021, 445, 20433}}, +{4198, 16, 8512, {1, 1, 7, 7, 7, 23, 19, 189, 119, 643, 847, 2123, 5343, 11839, 4575, 60461}}, +{4199, 16, 8532, {1, 1, 5, 5, 11, 19, 111, 219, 185, 499, 595, 723, 3519, 10891, 27603, 29261}}, +{4200, 16, 8551, {1, 3, 3, 1, 9, 13, 95, 227, 459, 133, 1535, 3481, 7187, 14797, 16511, 6737}}, +{4201, 16, 8560, {1, 1, 7, 7, 19, 57, 117, 7, 455, 941, 455, 797, 6313, 10071, 18651, 25013}}, +{4202, 16, 8566, {1, 3, 7, 3, 25, 25, 79, 19, 383, 971, 1625, 2803, 2461, 633, 32317, 48407}}, +{4203, 16, 8581, {1, 1, 7, 7, 25, 43, 93, 135, 155, 685, 2001, 3007, 7315, 15555, 30401, 36291}}, +{4204, 16, 8609, {1, 1, 1, 5, 13, 33, 123, 221, 341, 105, 1075, 3125, 5323, 14293, 29875, 52215}}, +{4205, 16, 8639, {1, 1, 3, 9, 29, 51, 25, 59, 171, 563, 1695, 2845, 6067, 10671, 2909, 33977}}, +{4206, 16, 8641, {1, 3, 3, 7, 25, 21, 39, 65, 485, 949, 1773, 2775, 6019, 14587, 6715, 54793}}, +{4207, 16, 8671, {1, 1, 7, 11, 17, 57, 125, 17, 111, 167, 289, 3939, 7357, 2289, 1717, 45225}}, +{4208, 16, 8695, {1, 1, 7, 7, 21, 55, 3, 139, 471, 747, 1437, 1353, 7657, 13133, 14193, 38191}}, +{4209, 16, 8701, {1, 3, 5, 7, 25, 57, 55, 17, 315, 159, 437, 933, 7493, 6025, 2775, 24287}}, +{4210, 16, 8711, {1, 1, 7, 1, 15, 45, 67, 191, 355, 681, 1763, 1237, 105, 1425, 26089, 42879}}, +{4211, 16, 8739, {1, 1, 5, 13, 13, 53, 25, 127, 103, 155, 935, 2561, 475, 4341, 30541, 43835}}, +{4212, 16, 8763, {1, 1, 5, 15, 27, 59, 99, 173, 189, 41, 105, 3287, 4071, 15005, 18301, 34487}}, +{4213, 16, 8778, {1, 1, 5, 11, 21, 9, 57, 115, 495, 561, 579, 397, 3049, 2007, 5041, 37345}}, +{4214, 16, 8783, {1, 1, 5, 11, 15, 11, 101, 241, 69, 483, 1007, 4069, 5221, 5323, 20177, 24397}}, +{4215, 16, 8785, {1, 1, 1, 7, 29, 15, 119, 161, 21, 517, 847, 2217, 4487, 4817, 24053, 21683}}, +{4216, 16, 8797, {1, 3, 1, 3, 3, 51, 85, 63, 345, 799, 1699, 3961, 7109, 3931, 28173, 46851}}, +{4217, 16, 8802, {1, 1, 5, 7, 15, 25, 97, 139, 331, 969, 1129, 2451, 3107, 12235, 12949, 29837}}, +{4218, 16, 8816, {1, 3, 7, 1, 19, 21, 51, 155, 295, 565, 29, 2107, 341, 14611, 15281, 50727}}, +{4219, 16, 8828, {1, 3, 1, 11, 3, 37, 13, 217, 429, 217, 301, 1217, 5655, 13845, 32465, 23559}}, +{4220, 16, 8837, {1, 3, 3, 9, 9, 57, 79, 231, 433, 703, 699, 3813, 7035, 5885, 19185, 52551}}, +{4221, 16, 8852, {1, 1, 1, 5, 19, 17, 31, 209, 49, 515, 279, 909, 5881, 2673, 23635, 23101}}, +{4222, 16, 8859, {1, 1, 5, 7, 3, 3, 119, 139, 245, 775, 1009, 1157, 1405, 9737, 17671, 62981}}, +{4223, 16, 8889, {1, 3, 7, 11, 17, 21, 105, 21, 67, 871, 233, 3607, 571, 9141, 9751, 28093}}, +{4224, 16, 8900, {1, 1, 3, 13, 5, 53, 91, 181, 143, 375, 1113, 705, 837, 10505, 11459, 57753}}, +{4225, 16, 8903, {1, 3, 5, 11, 9, 19, 107, 229, 305, 107, 1027, 691, 4677, 8987, 7931, 951}}, +{4226, 16, 8909, {1, 1, 7, 9, 9, 17, 39, 195, 103, 315, 517, 123, 7167, 7039, 3571, 40469}}, +{4227, 16, 8910, {1, 1, 1, 5, 1, 21, 121, 53, 427, 111, 717, 1065, 2843, 5873, 28411, 42443}}, +{4228, 16, 8922, {1, 1, 3, 11, 27, 7, 37, 255, 429, 363, 997, 2429, 6871, 1271, 29375, 62897}}, +{4229, 16, 8924, {1, 3, 3, 13, 23, 23, 123, 119, 213, 51, 771, 1603, 1621, 1497, 23667, 13443}}, +{4230, 16, 8955, {1, 1, 3, 13, 17, 21, 81, 17, 211, 815, 1751, 3875, 4001, 3927, 6185, 28753}}, +{4231, 16, 8958, {1, 3, 1, 5, 13, 41, 23, 187, 475, 353, 1307, 543, 5077, 3459, 20553, 29119}}, +{4232, 16, 8980, {1, 1, 1, 7, 1, 39, 3, 247, 375, 101, 81, 1515, 1079, 15307, 18865, 63115}}, +{4233, 16, 8994, {1, 1, 5, 9, 23, 7, 61, 45, 379, 553, 435, 1805, 4147, 2289, 22081, 40041}}, +{4234, 16, 9006, {1, 1, 7, 3, 17, 13, 107, 169, 119, 981, 1825, 3329, 7779, 12245, 28367, 6749}}, +{4235, 16, 9017, {1, 3, 3, 13, 29, 13, 93, 155, 331, 507, 1073, 279, 6615, 14077, 3005, 10171}}, +{4236, 16, 9032, {1, 1, 5, 7, 29, 23, 81, 181, 321, 921, 1531, 2607, 7291, 1255, 29889, 30095}}, +{4237, 16, 9040, {1, 1, 1, 5, 7, 1, 9, 231, 203, 559, 243, 3999, 3649, 7939, 14729, 34771}}, +{4238, 16, 9061, {1, 3, 7, 3, 17, 29, 79, 251, 305, 641, 1125, 1155, 7139, 6721, 43, 34927}}, +{4239, 16, 9066, {1, 1, 5, 13, 21, 39, 55, 103, 143, 487, 849, 1111, 1105, 8483, 5417, 10521}}, +{4240, 16, 9071, {1, 1, 5, 5, 19, 5, 111, 49, 95, 917, 843, 2539, 6831, 9019, 16045, 59363}}, +{4241, 16, 9076, {1, 3, 3, 11, 7, 45, 87, 51, 49, 615, 603, 1623, 5351, 11939, 21945, 40539}}, +{4242, 16, 9086, {1, 1, 5, 9, 9, 33, 113, 37, 163, 853, 1313, 4021, 965, 11465, 8573, 24425}}, +{4243, 16, 9104, {1, 3, 3, 9, 17, 19, 121, 95, 93, 441, 1951, 3335, 6279, 16087, 14763, 60771}}, +{4244, 16, 9150, {1, 3, 3, 9, 13, 15, 19, 129, 257, 641, 533, 1667, 5959, 2259, 10439, 29745}}, +{4245, 16, 9161, {1, 1, 7, 7, 11, 31, 45, 247, 233, 101, 899, 2033, 7803, 11423, 30645, 7723}}, +{4246, 16, 9164, {1, 3, 5, 11, 23, 3, 69, 79, 319, 125, 1463, 2047, 7311, 5819, 445, 13725}}, +{4247, 16, 9185, {1, 1, 1, 3, 7, 43, 83, 89, 467, 709, 1993, 3773, 7805, 305, 15701, 51101}}, +{4248, 16, 9188, {1, 1, 7, 5, 19, 53, 77, 237, 27, 853, 1003, 2041, 5739, 4663, 9783, 23761}}, +{4249, 16, 9212, {1, 1, 3, 7, 19, 31, 71, 33, 479, 693, 1503, 9, 2779, 1481, 9413, 36227}}, +{4250, 16, 9230, {1, 3, 1, 11, 9, 23, 1, 99, 247, 33, 1987, 1577, 8029, 7785, 29947, 38751}}, +{4251, 16, 9242, {1, 1, 1, 3, 15, 57, 23, 53, 431, 553, 1433, 2447, 1871, 10701, 30961, 12281}}, +{4252, 16, 9247, {1, 3, 5, 9, 11, 49, 123, 91, 87, 155, 301, 3339, 6183, 15895, 17309, 45927}}, +{4253, 16, 9260, {1, 1, 1, 9, 9, 41, 79, 123, 261, 547, 1931, 2553, 7405, 14431, 24079, 20769}}, +{4254, 16, 9280, {1, 3, 1, 3, 31, 17, 17, 137, 419, 591, 1693, 3977, 861, 16025, 189, 60995}}, +{4255, 16, 9300, {1, 3, 7, 11, 19, 47, 107, 243, 87, 135, 507, 189, 1397, 3841, 22999, 50781}}, +{4256, 16, 9313, {1, 3, 5, 5, 15, 11, 19, 239, 133, 295, 673, 2389, 4753, 4363, 21669, 25579}}, +{4257, 16, 9325, {1, 3, 5, 7, 19, 43, 55, 129, 239, 89, 1731, 1381, 5483, 11773, 9201, 17745}}, +{4258, 16, 9343, {1, 3, 1, 13, 3, 15, 77, 131, 417, 845, 1953, 2871, 1789, 10343, 11363, 20699}}, +{4259, 16, 9349, {1, 3, 7, 1, 9, 43, 55, 223, 239, 317, 1951, 2725, 209, 3853, 2201, 6839}}, +{4260, 16, 9354, {1, 3, 1, 3, 7, 35, 29, 21, 149, 779, 467, 65, 811, 4859, 14021, 38429}}, +{4261, 16, 9367, {1, 3, 7, 1, 19, 31, 97, 9, 11, 415, 689, 1513, 2475, 5039, 5669, 65103}}, +{4262, 16, 9368, {1, 3, 3, 3, 11, 25, 37, 247, 189, 911, 429, 2395, 3653, 79, 28115, 23513}}, +{4263, 16, 9455, {1, 1, 5, 5, 5, 27, 25, 45, 291, 455, 741, 2259, 8131, 11779, 14693, 58729}}, +{4264, 16, 9458, {1, 3, 3, 7, 21, 33, 67, 49, 153, 491, 1811, 1955, 925, 15555, 13801, 48717}}, +{4265, 16, 9469, {1, 3, 1, 3, 11, 53, 105, 129, 457, 225, 497, 1123, 973, 2901, 26655, 3643}}, +{4266, 16, 9481, {1, 1, 7, 13, 29, 49, 71, 37, 321, 865, 735, 357, 7629, 6011, 28221, 39041}}, +{4267, 16, 9482, {1, 3, 5, 3, 19, 59, 65, 199, 69, 391, 1735, 3075, 287, 16213, 3211, 22425}}, +{4268, 16, 9495, {1, 1, 1, 5, 15, 61, 67, 255, 5, 689, 759, 155, 7245, 5881, 21685, 3863}}, +{4269, 16, 9526, {1, 1, 3, 11, 23, 63, 69, 241, 359, 735, 371, 603, 2707, 15833, 31795, 14901}}, +{4270, 16, 9530, {1, 1, 1, 7, 19, 33, 83, 19, 13, 667, 317, 3891, 5497, 8213, 4913, 22387}}, +{4271, 16, 9558, {1, 3, 5, 9, 13, 21, 11, 187, 249, 647, 349, 605, 2199, 5033, 29773, 48953}}, +{4272, 16, 9562, {1, 3, 3, 11, 3, 3, 93, 235, 441, 933, 383, 2007, 4015, 4175, 3937, 20623}}, +{4273, 16, 9573, {1, 3, 7, 13, 3, 61, 87, 219, 263, 651, 1343, 2709, 31, 16249, 4749, 28909}}, +{4274, 16, 9583, {1, 3, 1, 1, 17, 19, 101, 107, 499, 127, 13, 2123, 5597, 3751, 14527, 12009}}, +{4275, 16, 9595, {1, 3, 5, 13, 27, 57, 1, 195, 107, 947, 1475, 2831, 6449, 16117, 20555, 61513}}, +{4276, 16, 9597, {1, 3, 1, 9, 9, 47, 89, 187, 401, 299, 637, 197, 1235, 12655, 25025, 24443}}, +{4277, 16, 9616, {1, 1, 3, 5, 9, 57, 33, 41, 451, 983, 391, 2707, 705, 13913, 28843, 34091}}, +{4278, 16, 9638, {1, 3, 5, 3, 29, 19, 61, 31, 349, 253, 1267, 3345, 2151, 11309, 19623, 62407}}, +{4279, 16, 9649, {1, 1, 1, 3, 11, 37, 31, 59, 1, 253, 103, 2811, 1871, 4239, 26311, 32507}}, +{4280, 16, 9662, {1, 1, 5, 7, 7, 7, 69, 63, 281, 901, 1785, 2131, 4265, 253, 13997, 30177}}, +{4281, 16, 9691, {1, 3, 1, 11, 3, 27, 111, 67, 411, 751, 241, 293, 6271, 4187, 22119, 63737}}, +{4282, 16, 9700, {1, 3, 5, 5, 27, 19, 45, 203, 81, 59, 1839, 935, 4847, 1869, 12037, 30971}}, +{4283, 16, 9703, {1, 1, 3, 9, 19, 25, 9, 27, 373, 875, 1735, 689, 2957, 7873, 29771, 4093}}, +{4284, 16, 9710, {1, 1, 7, 11, 13, 39, 11, 129, 53, 433, 1731, 899, 5855, 10221, 24165, 50205}}, +{4285, 16, 9721, {1, 3, 1, 15, 25, 31, 85, 49, 325, 299, 183, 287, 2425, 15353, 25999, 59129}}, +{4286, 16, 9724, {1, 1, 5, 5, 17, 25, 23, 5, 287, 677, 591, 981, 429, 15297, 14573, 61095}}, +{4287, 16, 9727, {1, 1, 5, 15, 5, 15, 67, 195, 209, 341, 1621, 1379, 3031, 5469, 31563, 49291}}, +{4288, 16, 9743, {1, 1, 1, 1, 25, 33, 61, 201, 15, 125, 969, 1965, 2021, 10253, 23801, 28165}}, +{4289, 16, 9779, {1, 1, 5, 5, 13, 17, 5, 245, 11, 133, 287, 1929, 4331, 15919, 29663, 10243}}, +{4290, 16, 9785, {1, 1, 7, 9, 19, 33, 39, 191, 489, 631, 69, 1883, 2183, 14993, 32715, 62217}}, +{4291, 16, 9811, {1, 3, 3, 13, 23, 61, 103, 193, 501, 431, 437, 417, 6557, 11701, 27577, 42943}}, +{4292, 16, 9820, {1, 3, 3, 9, 9, 27, 69, 247, 469, 841, 733, 813, 2673, 7145, 5385, 44917}}, +{4293, 16, 9827, {1, 1, 7, 9, 5, 13, 19, 71, 323, 923, 1885, 3031, 4507, 13787, 14149, 1483}}, +{4294, 16, 9851, {1, 3, 1, 5, 1, 15, 89, 229, 301, 733, 1343, 2415, 6463, 1875, 9293, 6037}}, +{4295, 16, 9854, {1, 3, 1, 5, 29, 57, 67, 121, 311, 441, 1079, 1963, 7137, 6745, 9893, 22811}}, +{4296, 16, 9863, {1, 1, 7, 7, 25, 13, 27, 61, 331, 361, 481, 3783, 3061, 7827, 18885, 27583}}, +{4297, 16, 9884, {1, 3, 1, 5, 17, 47, 19, 83, 309, 65, 1573, 3437, 5623, 12691, 21075, 27789}}, +{4298, 16, 9894, {1, 1, 7, 9, 13, 51, 7, 209, 131, 111, 1143, 53, 7277, 9297, 20869, 33121}}, +{4299, 16, 9903, {1, 1, 3, 9, 13, 17, 57, 89, 239, 281, 775, 333, 5631, 2805, 10195, 9665}}, +{4300, 16, 9908, {1, 1, 3, 7, 19, 39, 71, 79, 63, 551, 103, 3169, 2761, 13929, 20751, 18951}}, +{4301, 16, 9912, {1, 1, 7, 11, 5, 23, 7, 249, 447, 483, 433, 3117, 1421, 14991, 5397, 19813}}, +{4302, 16, 9925, {1, 3, 1, 13, 3, 9, 109, 241, 181, 33, 853, 3939, 3751, 2151, 28375, 64443}}, +{4303, 16, 9926, {1, 1, 7, 7, 3, 33, 65, 211, 251, 631, 1819, 3913, 3353, 12975, 19117, 51515}}, +{4304, 16, 9971, {1, 1, 1, 13, 3, 21, 9, 203, 223, 229, 1399, 117, 6297, 11535, 16383, 12541}}, +{4305, 16, 9973, {1, 1, 5, 7, 25, 9, 53, 27, 497, 103, 1915, 2179, 3679, 11375, 18907, 63385}}, +{4306, 16, 9977, {1, 3, 1, 5, 1, 53, 91, 169, 87, 387, 377, 1121, 7241, 5133, 1949, 13433}}, +{4307, 16, 10021, {1, 1, 1, 3, 27, 35, 61, 189, 241, 445, 287, 325, 127, 2363, 30663, 43557}}, +{4308, 16, 10039, {1, 3, 1, 3, 17, 47, 59, 237, 213, 979, 807, 85, 4621, 9915, 13631, 55657}}, +{4309, 16, 10048, {1, 3, 5, 7, 27, 5, 101, 89, 495, 675, 1181, 2295, 1913, 3731, 32639, 58297}}, +{4310, 16, 10051, {1, 3, 3, 11, 5, 41, 49, 229, 93, 659, 927, 3425, 4083, 11859, 10603, 20631}}, +{4311, 16, 10065, {1, 3, 5, 11, 31, 51, 67, 69, 253, 497, 1665, 1985, 5439, 15999, 4175, 62175}}, +{4312, 16, 10071, {1, 1, 7, 11, 1, 21, 95, 19, 205, 513, 1329, 1821, 1251, 2381, 32623, 23923}}, +{4313, 16, 10072, {1, 1, 5, 13, 3, 1, 29, 175, 315, 865, 599, 1695, 1391, 2313, 31035, 19159}}, +{4314, 16, 10101, {1, 3, 3, 1, 3, 45, 109, 93, 481, 285, 869, 3441, 3715, 1355, 9581, 50173}}, +{4315, 16, 10106, {1, 3, 7, 7, 15, 35, 107, 107, 315, 213, 281, 2073, 4689, 5877, 31, 40967}}, +{4316, 16, 10130, {1, 1, 3, 11, 11, 3, 73, 41, 79, 37, 481, 1993, 931, 7677, 11321, 45735}}, +{4317, 16, 10136, {1, 1, 7, 1, 15, 21, 65, 237, 263, 849, 863, 4039, 3171, 13381, 30373, 51639}}, +{4318, 16, 10148, {1, 1, 1, 3, 21, 57, 113, 3, 487, 41, 1277, 633, 2839, 4977, 14537, 31749}}, +{4319, 16, 10155, {1, 1, 5, 1, 1, 55, 71, 181, 147, 895, 1839, 2157, 3187, 6403, 30367, 48915}}, +{4320, 16, 10157, {1, 1, 5, 3, 9, 17, 19, 127, 115, 875, 831, 2439, 7475, 1921, 18657, 27709}}, +{4321, 16, 10160, {1, 3, 3, 13, 29, 11, 35, 81, 291, 483, 625, 3957, 6017, 12543, 18773, 2471}}, +{4322, 16, 10166, {1, 3, 3, 13, 11, 39, 7, 85, 493, 209, 819, 3277, 4275, 8997, 22943, 33199}}, +{4323, 16, 10183, {1, 1, 1, 7, 11, 25, 1, 57, 505, 135, 1713, 3051, 5893, 10711, 10681, 12235}}, +{4324, 16, 10192, {1, 3, 5, 11, 23, 33, 13, 107, 289, 251, 235, 1747, 4097, 12237, 17559, 5063}}, +{4325, 16, 10225, {1, 3, 3, 9, 19, 17, 23, 45, 297, 147, 1301, 2057, 7871, 9971, 1965, 62449}}, +{4326, 16, 10241, {1, 1, 7, 3, 17, 21, 19, 203, 289, 897, 1967, 3519, 3261, 8199, 24181, 23273}}, +{4327, 16, 10247, {1, 1, 7, 11, 1, 17, 25, 63, 509, 969, 47, 1329, 701, 5227, 419, 14839}}, +{4328, 16, 10284, {1, 3, 5, 11, 1, 41, 81, 157, 395, 97, 1919, 3043, 6015, 15, 23733, 55485}}, +{4329, 16, 10304, {1, 1, 3, 11, 17, 37, 17, 181, 179, 297, 1007, 1559, 6275, 11645, 7535, 28941}}, +{4330, 16, 10322, {1, 3, 7, 15, 5, 47, 31, 237, 215, 563, 207, 1867, 6635, 6857, 11837, 22865}}, +{4331, 16, 10331, {1, 3, 1, 7, 7, 39, 51, 179, 57, 987, 893, 2715, 1045, 5799, 19805, 54275}}, +{4332, 16, 10333, {1, 1, 7, 15, 25, 9, 127, 243, 323, 1013, 929, 2891, 7549, 1071, 17663, 15247}}, +{4333, 16, 10340, {1, 1, 1, 5, 25, 23, 101, 9, 371, 89, 1749, 3559, 8071, 13887, 14807, 42825}}, +{4334, 16, 10347, {1, 3, 3, 11, 21, 41, 3, 77, 3, 709, 1745, 3615, 4141, 5275, 28329, 59739}}, +{4335, 16, 10357, {1, 1, 7, 13, 1, 11, 73, 183, 363, 241, 863, 3983, 3235, 293, 649, 441}}, +{4336, 16, 10371, {1, 1, 5, 3, 13, 27, 13, 191, 57, 639, 1803, 2353, 3143, 12763, 5771, 36155}}, +{4337, 16, 10386, {1, 1, 5, 3, 1, 53, 85, 45, 283, 823, 1213, 3261, 4599, 13267, 4613, 12657}}, +{4338, 16, 10404, {1, 3, 5, 15, 27, 49, 59, 123, 357, 527, 337, 2751, 3999, 8525, 12501, 40621}}, +{4339, 16, 10414, {1, 1, 1, 7, 1, 55, 85, 17, 447, 599, 1315, 2313, 1649, 907, 25647, 3251}}, +{4340, 16, 10422, {1, 3, 5, 13, 9, 1, 37, 121, 143, 1, 631, 2273, 1673, 3649, 27533, 28731}}, +{4341, 16, 10448, {1, 1, 7, 13, 9, 31, 57, 249, 397, 815, 501, 895, 1217, 11387, 8635, 65193}}, +{4342, 16, 10451, {1, 1, 5, 5, 9, 35, 95, 193, 133, 513, 1929, 3841, 3063, 2383, 24413, 51185}}, +{4343, 16, 10473, {1, 1, 1, 13, 3, 49, 45, 191, 15, 181, 1819, 3741, 1227, 12775, 9461, 44951}}, +{4344, 16, 10479, {1, 1, 1, 1, 3, 45, 121, 19, 269, 829, 517, 3913, 183, 11019, 24969, 21973}}, +{4345, 16, 10501, {1, 1, 5, 11, 31, 39, 125, 189, 401, 57, 1557, 1727, 1415, 4025, 30353, 36589}}, +{4346, 16, 10530, {1, 1, 3, 9, 3, 55, 125, 187, 409, 499, 1853, 2781, 4323, 16159, 16345, 34659}}, +{4347, 16, 10542, {1, 3, 5, 11, 31, 5, 125, 137, 197, 475, 2003, 617, 1289, 8365, 28981, 57537}}, +{4348, 16, 10544, {1, 1, 1, 5, 19, 29, 83, 127, 311, 177, 1635, 2187, 5377, 12841, 7591, 6095}}, +{4349, 16, 10571, {1, 3, 5, 5, 21, 39, 65, 197, 115, 411, 1457, 3011, 7021, 14119, 61, 21107}}, +{4350, 16, 10628, {1, 3, 3, 9, 19, 57, 99, 23, 451, 507, 973, 415, 7123, 11367, 29767, 23763}}, +{4351, 16, 10643, {1, 1, 5, 7, 29, 23, 47, 11, 267, 873, 591, 373, 7097, 3783, 23289, 5547}}, +{4352, 16, 10673, {1, 1, 5, 15, 7, 7, 7, 91, 389, 841, 1995, 459, 7013, 3109, 23615, 21519}}, +{4353, 16, 10683, {1, 3, 1, 1, 13, 25, 87, 235, 193, 201, 713, 1633, 3117, 13609, 17211, 573}}, +{4354, 16, 10736, {1, 1, 1, 9, 27, 53, 105, 39, 217, 781, 997, 661, 6243, 6427, 17739, 62239}}, +{4355, 16, 10795, {1, 1, 7, 3, 3, 49, 75, 125, 239, 195, 215, 2983, 1185, 4743, 12069, 55509}}, +{4356, 16, 10797, {1, 1, 5, 15, 31, 11, 9, 91, 253, 361, 571, 1589, 2425, 4279, 3765, 46519}}, +{4357, 16, 10815, {1, 1, 3, 3, 21, 49, 49, 213, 399, 253, 1565, 2447, 453, 7957, 24799, 58503}}, +{4358, 16, 10817, {1, 1, 7, 1, 5, 59, 81, 97, 209, 477, 17, 3085, 3655, 599, 24011, 14981}}, +{4359, 16, 10842, {1, 3, 3, 13, 19, 49, 7, 35, 111, 169, 629, 1587, 5345, 13699, 21187, 30199}}, +{4360, 16, 10844, {1, 1, 3, 13, 19, 59, 73, 127, 475, 509, 9, 2661, 711, 15835, 31429, 33885}}, +{4361, 16, 10863, {1, 3, 5, 3, 31, 15, 43, 185, 29, 897, 1041, 1057, 6285, 13925, 4023, 25741}}, +{4362, 16, 10899, {1, 3, 5, 11, 1, 33, 63, 155, 175, 501, 1147, 3395, 3285, 16237, 22315, 50945}}, +{4363, 16, 10902, {1, 3, 3, 3, 5, 13, 77, 227, 85, 139, 139, 1, 7147, 2023, 32705, 38753}}, +{4364, 16, 10917, {1, 3, 5, 11, 31, 59, 35, 179, 489, 537, 1537, 2877, 4937, 10825, 2445, 34907}}, +{4365, 16, 10953, {1, 3, 7, 11, 17, 17, 95, 223, 165, 925, 829, 3971, 1, 7393, 8825, 25705}}, +{4366, 16, 10967, {1, 1, 1, 1, 25, 17, 25, 143, 385, 907, 1381, 1823, 3819, 8475, 5321, 12037}}, +{4367, 16, 11002, {1, 1, 5, 11, 7, 47, 97, 85, 105, 23, 263, 1329, 1905, 12121, 29635, 41249}}, +{4368, 16, 11024, {1, 1, 7, 11, 1, 51, 13, 13, 5, 143, 83, 3831, 959, 6083, 16997, 59887}}, +{4369, 16, 11029, {1, 3, 3, 13, 25, 9, 31, 5, 215, 791, 767, 1733, 2715, 14283, 25795, 54249}}, +{4370, 16, 11030, {1, 3, 7, 5, 11, 19, 125, 81, 71, 131, 1869, 1111, 6763, 5275, 23095, 1139}}, +{4371, 16, 11043, {1, 3, 3, 9, 25, 43, 119, 49, 133, 217, 521, 1367, 5867, 6829, 29871, 60383}}, +{4372, 16, 11087, {1, 1, 7, 9, 5, 11, 59, 157, 279, 301, 481, 3273, 7943, 3273, 27783, 17271}}, +{4373, 16, 11106, {1, 3, 3, 13, 11, 57, 13, 5, 435, 169, 541, 517, 2359, 9121, 27911, 15679}}, +{4374, 16, 11130, {1, 1, 3, 9, 9, 55, 65, 113, 21, 807, 373, 2825, 1527, 15565, 8339, 7227}}, +{4375, 16, 11156, {1, 3, 5, 9, 1, 1, 49, 255, 477, 821, 1647, 713, 6841, 3187, 22649, 51469}}, +{4376, 16, 11176, {1, 3, 3, 11, 13, 43, 63, 139, 71, 809, 993, 2429, 833, 6545, 10987, 39567}}, +{4377, 16, 11221, {1, 1, 1, 9, 19, 23, 47, 199, 191, 827, 391, 837, 1209, 2493, 24071, 46589}}, +{4378, 16, 11267, {1, 1, 5, 13, 25, 51, 39, 43, 103, 899, 1729, 2389, 2965, 189, 3063, 50609}}, +{4379, 16, 11282, {1, 1, 3, 1, 5, 29, 105, 201, 503, 199, 507, 205, 2389, 695, 15233, 50353}}, +{4380, 16, 11294, {1, 3, 1, 7, 19, 53, 45, 21, 89, 545, 1885, 765, 6673, 13485, 9987, 2609}}, +{4381, 16, 11332, {1, 3, 7, 13, 17, 7, 59, 23, 159, 309, 1407, 2483, 1807, 15733, 5603, 52989}}, +{4382, 16, 11353, {1, 1, 1, 11, 13, 19, 123, 185, 413, 745, 361, 2391, 6697, 2281, 11999, 13175}}, +{4383, 16, 11369, {1, 3, 5, 5, 11, 49, 123, 173, 325, 667, 895, 1067, 8121, 10577, 30561, 17391}}, +{4384, 16, 11372, {1, 1, 5, 5, 23, 21, 77, 223, 281, 161, 141, 345, 3879, 11393, 26907, 53805}}, +{4385, 16, 11375, {1, 3, 3, 5, 3, 47, 17, 109, 185, 139, 957, 1417, 4553, 6101, 29537, 34821}}, +{4386, 16, 11413, {1, 1, 5, 3, 29, 49, 89, 61, 45, 593, 269, 1483, 2971, 991, 21239, 29301}}, +{4387, 16, 11429, {1, 1, 3, 13, 29, 45, 33, 253, 291, 783, 737, 2363, 2651, 8627, 21785, 58419}}, +{4388, 16, 11430, {1, 3, 7, 15, 29, 15, 81, 185, 363, 681, 1737, 3789, 4365, 3295, 23205, 4457}}, +{4389, 16, 11444, {1, 3, 3, 11, 15, 39, 67, 167, 197, 357, 871, 2201, 5377, 6299, 20873, 59283}}, +{4390, 16, 11462, {1, 3, 3, 5, 9, 15, 127, 49, 21, 719, 357, 425, 5507, 9639, 275, 47503}}, +{4391, 16, 11465, {1, 1, 7, 1, 13, 63, 111, 121, 21, 481, 247, 3147, 5783, 8947, 20809, 42039}}, +{4392, 16, 11471, {1, 1, 3, 3, 31, 33, 9, 69, 187, 517, 2029, 2205, 7661, 4757, 27525, 9665}}, +{4393, 16, 11473, {1, 1, 1, 13, 7, 41, 103, 161, 233, 221, 693, 213, 4609, 7771, 28703, 17407}}, +{4394, 16, 11495, {1, 3, 7, 15, 31, 47, 27, 111, 479, 1003, 1687, 347, 2179, 11861, 8169, 31941}}, +{4395, 16, 11499, {1, 1, 3, 5, 5, 63, 25, 125, 199, 147, 589, 3565, 3449, 8331, 8923, 31207}}, +{4396, 16, 11519, {1, 1, 3, 11, 19, 25, 77, 99, 299, 19, 1641, 2193, 4299, 3635, 20621, 267}}, +{4397, 16, 11562, {1, 3, 7, 11, 9, 59, 7, 167, 1, 775, 29, 1935, 3723, 11835, 2887, 65285}}, +{4398, 16, 11576, {1, 1, 7, 13, 5, 47, 101, 155, 235, 93, 465, 3581, 1837, 7675, 10789, 45167}}, +{4399, 16, 11582, {1, 1, 3, 5, 9, 59, 121, 109, 59, 821, 1625, 343, 1591, 3875, 13729, 56381}}, +{4400, 16, 11596, {1, 1, 1, 9, 27, 53, 93, 215, 133, 561, 39, 2591, 1041, 11913, 24493, 37921}}, +{4401, 16, 11602, {1, 1, 1, 7, 23, 7, 81, 107, 219, 943, 563, 1083, 5803, 5687, 32559, 62727}}, +{4402, 16, 11611, {1, 3, 7, 7, 21, 53, 3, 5, 231, 601, 1561, 103, 3837, 2675, 5263, 23375}}, +{4403, 16, 11627, {1, 1, 3, 13, 15, 27, 89, 7, 251, 887, 951, 3001, 5687, 4921, 5091, 59337}}, +{4404, 16, 11682, {1, 3, 7, 15, 25, 53, 19, 155, 185, 503, 547, 1917, 7633, 15167, 14177, 46761}}, +{4405, 16, 11687, {1, 3, 5, 15, 21, 49, 13, 163, 471, 281, 1141, 3013, 6847, 9261, 15955, 9397}}, +{4406, 16, 11691, {1, 3, 3, 3, 1, 21, 19, 239, 479, 609, 65, 2735, 5337, 6293, 19351, 34135}}, +{4407, 16, 11733, {1, 1, 7, 1, 9, 1, 119, 23, 411, 535, 101, 1597, 2379, 2421, 31471, 36473}}, +{4408, 16, 11747, {1, 3, 1, 11, 31, 63, 17, 225, 45, 409, 59, 3943, 8043, 11759, 10667, 58793}}, +{4409, 16, 11759, {1, 1, 3, 3, 9, 49, 61, 239, 245, 765, 1945, 3567, 5355, 14799, 7141, 59511}}, +{4410, 16, 11778, {1, 3, 7, 9, 3, 33, 103, 99, 35, 799, 1347, 2253, 8189, 14177, 13479, 13749}}, +{4411, 16, 11852, {1, 3, 1, 15, 15, 51, 7, 179, 471, 265, 1571, 2983, 701, 15133, 7885, 29977}}, +{4412, 16, 11857, {1, 1, 5, 9, 15, 37, 49, 213, 113, 729, 1115, 2727, 2635, 8433, 11145, 46779}}, +{4413, 16, 11858, {1, 3, 5, 11, 7, 3, 115, 151, 133, 723, 7, 4063, 5807, 9845, 25829, 29315}}, +{4414, 16, 11893, {1, 3, 5, 9, 25, 55, 17, 135, 145, 379, 1603, 3459, 5773, 6545, 17509, 25847}}, +{4415, 16, 11907, {1, 1, 7, 11, 1, 61, 113, 147, 489, 775, 1347, 2199, 299, 9589, 19931, 1335}}, +{4416, 16, 11928, {1, 3, 1, 3, 1, 7, 27, 243, 355, 425, 1215, 3723, 3489, 9285, 12739, 24797}}, +{4417, 16, 11931, {1, 3, 5, 11, 15, 25, 57, 221, 247, 647, 259, 1665, 7055, 2835, 16411, 42999}}, +{4418, 16, 11933, {1, 1, 3, 7, 9, 25, 61, 233, 73, 235, 1539, 1865, 5671, 1329, 5767, 43039}}, +{4419, 16, 11967, {1, 1, 7, 9, 21, 11, 123, 7, 41, 407, 1485, 1723, 585, 10597, 16215, 63403}}, +{4420, 16, 11976, {1, 1, 5, 7, 27, 9, 123, 101, 273, 673, 1141, 3841, 4041, 13169, 8221, 12915}}, +{4421, 16, 11989, {1, 3, 1, 13, 3, 17, 105, 17, 237, 321, 855, 2821, 2467, 3503, 15187, 1689}}, +{4422, 16, 12003, {1, 1, 5, 5, 19, 23, 9, 205, 87, 153, 1543, 1193, 6619, 6845, 8459, 37533}}, +{4423, 16, 12024, {1, 1, 7, 15, 13, 29, 79, 9, 203, 211, 239, 2349, 3447, 7797, 19311, 58071}}, +{4424, 16, 12030, {1, 3, 5, 11, 5, 49, 71, 151, 333, 895, 1095, 2471, 2477, 14493, 16711, 14393}}, +{4425, 16, 12037, {1, 1, 5, 13, 17, 19, 25, 149, 111, 631, 763, 2535, 3631, 1809, 8163, 18037}}, +{4426, 16, 12044, {1, 3, 3, 13, 23, 61, 25, 179, 351, 247, 1021, 2413, 2585, 3731, 5435, 52723}}, +{4427, 16, 12052, {1, 1, 5, 11, 1, 39, 65, 59, 21, 927, 1989, 2823, 4857, 15521, 30495, 16067}}, +{4428, 16, 12059, {1, 3, 3, 7, 17, 5, 17, 125, 379, 875, 1565, 2435, 933, 6809, 20129, 26339}}, +{4429, 16, 12075, {1, 1, 7, 5, 3, 57, 51, 213, 455, 663, 2007, 3995, 4889, 9527, 23507, 3261}}, +{4430, 16, 12083, {1, 3, 7, 5, 1, 29, 85, 151, 165, 123, 1425, 2851, 4427, 7683, 21085, 28925}}, +{4431, 16, 12117, {1, 1, 5, 3, 11, 33, 127, 3, 41, 591, 1539, 3823, 125, 421, 9051, 55025}}, +{4432, 16, 12138, {1, 3, 1, 5, 7, 9, 69, 35, 59, 477, 1207, 1245, 6423, 11329, 26535, 37621}}, +{4433, 16, 12146, {1, 3, 1, 1, 15, 35, 17, 123, 303, 193, 1489, 2587, 1883, 4063, 1921, 60413}}, +{4434, 16, 12202, {1, 1, 5, 1, 7, 61, 39, 247, 139, 1015, 757, 823, 4757, 9307, 32287, 37241}}, +{4435, 16, 12230, {1, 1, 7, 15, 3, 5, 85, 93, 457, 999, 1331, 919, 5271, 11687, 24233, 38803}}, +{4436, 16, 12254, {1, 3, 3, 9, 5, 43, 37, 13, 505, 603, 1857, 2675, 2017, 9481, 10873, 54755}}, +{4437, 16, 12304, {1, 1, 5, 15, 13, 3, 7, 239, 471, 835, 553, 413, 4029, 8613, 15533, 58987}}, +{4438, 16, 12316, {1, 3, 1, 5, 19, 27, 21, 43, 57, 755, 1245, 2805, 3799, 2013, 21145, 10317}}, +{4439, 16, 12337, {1, 3, 5, 13, 9, 23, 35, 5, 315, 169, 399, 2641, 1525, 10561, 11917, 33009}}, +{4440, 16, 12347, {1, 3, 5, 7, 23, 53, 101, 105, 451, 207, 1271, 3067, 6725, 15525, 7951, 1283}}, +{4441, 16, 12367, {1, 1, 5, 5, 27, 21, 77, 143, 213, 443, 149, 2667, 5269, 10359, 25287, 5843}}, +{4442, 16, 12398, {1, 3, 5, 5, 25, 27, 109, 157, 459, 767, 765, 2667, 1833, 3781, 9077, 64321}}, +{4443, 16, 12421, {1, 3, 3, 13, 31, 25, 97, 237, 279, 431, 1713, 809, 1989, 10431, 5867, 42197}}, +{4444, 16, 12428, {1, 3, 7, 3, 9, 5, 5, 191, 73, 521, 787, 903, 3073, 2067, 24741, 57029}}, +{4445, 16, 12446, {1, 3, 3, 1, 3, 41, 125, 53, 125, 781, 865, 3677, 6279, 357, 10667, 1127}}, +{4446, 16, 12449, {1, 1, 5, 11, 25, 19, 99, 121, 359, 73, 607, 2149, 5739, 15669, 29457, 57549}}, +{4447, 16, 12467, {1, 1, 5, 3, 23, 5, 35, 55, 369, 239, 329, 3057, 3757, 12523, 5017, 52185}}, +{4448, 16, 12479, {1, 3, 3, 13, 17, 61, 69, 165, 267, 323, 2007, 2025, 4423, 15975, 31897, 37013}}, +{4449, 16, 12502, {1, 3, 7, 13, 19, 19, 87, 111, 389, 611, 1523, 963, 4671, 12569, 21839, 10919}}, +{4450, 16, 12521, {1, 1, 1, 3, 1, 27, 13, 227, 29, 457, 221, 127, 5335, 16247, 19559, 19185}}, +{4451, 16, 12553, {1, 3, 5, 7, 29, 21, 23, 157, 197, 87, 1591, 1829, 407, 15885, 14933, 1997}}, +{4452, 16, 12568, {1, 1, 1, 9, 3, 35, 43, 187, 195, 325, 197, 2905, 7323, 1563, 7659, 45185}}, +{4453, 16, 12573, {1, 1, 1, 15, 3, 23, 105, 33, 73, 495, 1409, 2583, 1099, 1041, 28955, 60293}}, +{4454, 16, 12592, {1, 3, 7, 13, 25, 19, 99, 137, 139, 719, 529, 1147, 5813, 11551, 30183, 14593}}, +{4455, 16, 12597, {1, 3, 3, 5, 17, 25, 73, 193, 309, 887, 1655, 1641, 2091, 12087, 21881, 1145}}, +{4456, 16, 12601, {1, 3, 1, 1, 27, 41, 13, 151, 83, 645, 327, 1795, 2717, 12433, 22751, 9823}}, +{4457, 16, 12615, {1, 1, 3, 7, 1, 43, 77, 229, 59, 499, 1883, 135, 3461, 9821, 219, 6111}}, +{4458, 16, 12619, {1, 3, 3, 3, 23, 7, 17, 67, 361, 565, 1621, 3253, 7973, 281, 3209, 48215}}, +{4459, 16, 12694, {1, 1, 3, 7, 31, 15, 97, 141, 197, 883, 1689, 269, 7487, 10403, 18903, 58147}}, +{4460, 16, 12697, {1, 3, 3, 3, 23, 9, 87, 125, 359, 527, 1251, 637, 1145, 12721, 14693, 6021}}, +{4461, 16, 12698, {1, 1, 3, 5, 13, 43, 105, 173, 205, 859, 1237, 1227, 1409, 15513, 25317, 30745}}, +{4462, 16, 12713, {1, 3, 3, 15, 31, 43, 125, 149, 145, 109, 975, 1167, 7629, 8373, 5923, 64117}}, +{4463, 16, 12722, {1, 3, 1, 15, 3, 33, 89, 173, 379, 615, 1401, 1567, 4453, 7461, 32555, 64369}}, +{4464, 16, 12733, {1, 3, 7, 11, 27, 23, 45, 7, 15, 21, 1663, 3327, 5611, 8535, 27669, 25525}}, +{4465, 16, 12736, {1, 1, 3, 15, 15, 61, 127, 145, 151, 41, 629, 767, 5801, 3395, 1157, 30033}}, +{4466, 16, 12790, {1, 1, 1, 5, 9, 63, 73, 9, 299, 237, 369, 1295, 4869, 6821, 19961, 32129}}, +{4467, 16, 12794, {1, 1, 5, 13, 19, 7, 119, 35, 319, 405, 1255, 1299, 4311, 14999, 24567, 4001}}, +{4468, 16, 12803, {1, 1, 1, 13, 9, 39, 13, 207, 355, 691, 37, 3137, 6073, 16179, 28661, 41}}, +{4469, 16, 12815, {1, 1, 3, 7, 21, 3, 123, 27, 187, 183, 769, 2367, 2957, 7065, 17855, 60805}}, +{4470, 16, 12829, {1, 1, 1, 1, 19, 31, 71, 85, 303, 617, 1007, 283, 8087, 11079, 11463, 65295}}, +{4471, 16, 12833, {1, 1, 3, 13, 25, 63, 61, 187, 401, 465, 1485, 801, 3649, 7763, 8495, 54479}}, +{4472, 16, 12840, {1, 3, 7, 3, 13, 51, 41, 119, 311, 699, 1113, 3631, 1981, 3259, 25871, 45659}}, +{4473, 16, 12875, {1, 3, 7, 13, 31, 27, 57, 181, 325, 107, 1745, 635, 3941, 3305, 14563, 29855}}, +{4474, 16, 12877, {1, 3, 7, 15, 5, 55, 5, 147, 365, 485, 1841, 3673, 6513, 11121, 5725, 18027}}, +{4475, 16, 12916, {1, 3, 5, 11, 13, 45, 35, 79, 109, 683, 1171, 3015, 2163, 4823, 4365, 42931}}, +{4476, 16, 12923, {1, 1, 7, 7, 13, 45, 57, 39, 297, 985, 1559, 487, 5071, 2657, 9401, 41889}}, +{4477, 16, 12935, {1, 1, 5, 9, 29, 33, 79, 237, 509, 537, 549, 3657, 7141, 15189, 30853, 36089}}, +{4478, 16, 12949, {1, 3, 5, 7, 31, 15, 75, 73, 237, 273, 865, 743, 2607, 7611, 18441, 12703}}, +{4479, 16, 12954, {1, 1, 1, 9, 27, 9, 35, 137, 265, 181, 1341, 1945, 5615, 161, 18369, 4791}}, +{4480, 16, 12956, {1, 3, 7, 11, 27, 29, 29, 43, 489, 177, 1489, 2927, 623, 14571, 22447, 46905}}, +{4481, 16, 12959, {1, 3, 3, 3, 19, 41, 107, 53, 239, 263, 1433, 1655, 7991, 7405, 2735, 25519}}, +{4482, 16, 12978, {1, 3, 5, 7, 19, 37, 73, 243, 215, 445, 1781, 3223, 187, 8443, 18185, 45093}}, +{4483, 16, 13001, {1, 1, 3, 13, 9, 57, 111, 111, 221, 505, 1261, 3045, 1655, 16247, 21033, 17993}}, +{4484, 16, 13010, {1, 1, 7, 5, 7, 55, 77, 5, 131, 969, 1481, 2883, 2645, 3003, 5601, 37063}}, +{4485, 16, 13043, {1, 1, 5, 15, 29, 55, 39, 197, 349, 29, 341, 67, 1977, 425, 4063, 42705}}, +{4486, 16, 13049, {1, 1, 7, 13, 1, 57, 81, 81, 129, 681, 1407, 2465, 3627, 2325, 31649, 18449}}, +{4487, 16, 13058, {1, 3, 5, 5, 23, 59, 35, 217, 393, 155, 1315, 105, 2285, 5167, 27997, 55193}}, +{4488, 16, 13112, {1, 1, 7, 3, 11, 59, 53, 179, 319, 819, 947, 3881, 765, 4219, 16405, 48055}}, +{4489, 16, 13140, {1, 1, 3, 9, 23, 9, 67, 67, 137, 523, 1585, 2441, 167, 5217, 12031, 14297}}, +{4490, 16, 13149, {1, 1, 5, 13, 31, 63, 121, 91, 439, 917, 203, 1519, 4363, 2391, 25755, 26677}}, +{4491, 16, 13163, {1, 1, 3, 5, 25, 31, 11, 95, 339, 817, 35, 3923, 7365, 10537, 5521, 54579}}, +{4492, 16, 13187, {1, 3, 7, 1, 3, 33, 47, 13, 139, 445, 1357, 3907, 7495, 8789, 26589, 43479}}, +{4493, 16, 13196, {1, 1, 1, 11, 5, 45, 61, 13, 167, 287, 931, 881, 5713, 12937, 12951, 21597}}, +{4494, 16, 13237, {1, 3, 5, 1, 29, 23, 7, 117, 503, 897, 733, 1113, 7205, 11507, 561, 34011}}, +{4495, 16, 13244, {1, 3, 5, 7, 3, 51, 21, 147, 35, 259, 689, 3801, 2481, 9673, 4065, 595}}, +{4496, 16, 13264, {1, 3, 3, 9, 9, 29, 5, 191, 393, 979, 1627, 937, 75, 2339, 24007, 30555}}, +{4497, 16, 13279, {1, 1, 5, 7, 9, 35, 111, 23, 113, 563, 1689, 1575, 6127, 9919, 2555, 52261}}, +{4498, 16, 13292, {1, 3, 1, 5, 31, 21, 117, 159, 473, 279, 1281, 311, 159, 3343, 27761, 59989}}, +{4499, 16, 13295, {1, 1, 5, 1, 23, 31, 67, 241, 401, 69, 933, 777, 267, 12411, 23767, 9047}}, +{4500, 16, 13307, {1, 1, 5, 1, 15, 49, 99, 15, 267, 913, 1581, 3713, 651, 14275, 10103, 57619}}, +{4501, 16, 13312, {1, 3, 5, 9, 19, 23, 95, 5, 449, 153, 1195, 1315, 2347, 12683, 10865, 50703}}, +{4502, 16, 13317, {1, 1, 1, 13, 17, 17, 115, 31, 135, 725, 795, 1695, 6199, 4179, 5223, 48457}}, +{4503, 16, 13327, {1, 3, 5, 15, 31, 15, 3, 247, 385, 269, 1665, 581, 2809, 6333, 7459, 14815}}, +{4504, 16, 13348, {1, 3, 7, 5, 15, 35, 117, 85, 11, 621, 1523, 981, 511, 14113, 4673, 22683}}, +{4505, 16, 13390, {1, 1, 7, 1, 27, 61, 119, 249, 431, 147, 173, 423, 1353, 4747, 12761, 32947}}, +{4506, 16, 13413, {1, 3, 7, 1, 23, 39, 15, 153, 219, 359, 1233, 169, 2817, 11043, 12435, 30135}}, +{4507, 16, 13417, {1, 1, 5, 1, 1, 55, 39, 1, 151, 865, 125, 2351, 6315, 1165, 20163, 43991}}, +{4508, 16, 13418, {1, 1, 3, 9, 25, 41, 115, 221, 129, 265, 1887, 4057, 7523, 13591, 5735, 59645}}, +{4509, 16, 13451, {1, 1, 5, 5, 19, 15, 9, 77, 511, 627, 153, 2015, 247, 15949, 9715, 45411}}, +{4510, 16, 13475, {1, 1, 7, 7, 17, 17, 107, 183, 39, 647, 1339, 3915, 4937, 537, 27011, 58937}}, +{4511, 16, 13482, {1, 3, 3, 13, 3, 3, 69, 201, 431, 65, 683, 121, 7017, 2791, 16713, 62555}}, +{4512, 16, 13510, {1, 3, 7, 3, 7, 41, 117, 237, 23, 757, 545, 3899, 1837, 5555, 7891, 29151}}, +{4513, 16, 13527, {1, 1, 1, 3, 27, 15, 39, 195, 353, 299, 1431, 2279, 1795, 13773, 24915, 49701}}, +{4514, 16, 13543, {1, 1, 5, 5, 7, 7, 125, 5, 401, 523, 1967, 2471, 7279, 7559, 12025, 60599}}, +{4515, 16, 13547, {1, 1, 1, 13, 13, 59, 13, 249, 465, 847, 1483, 975, 7729, 2773, 15745, 51237}}, +{4516, 16, 13627, {1, 1, 7, 9, 31, 41, 115, 141, 247, 355, 1109, 3239, 6495, 4515, 30145, 47705}}, +{4517, 16, 13650, {1, 1, 3, 13, 29, 41, 69, 179, 45, 271, 1909, 3095, 7199, 14049, 9903, 33383}}, +{4518, 16, 13683, {1, 1, 3, 13, 7, 45, 105, 105, 243, 121, 67, 3169, 237, 137, 4175, 54325}}, +{4519, 16, 13696, {1, 3, 3, 11, 19, 51, 93, 155, 79, 579, 1621, 1251, 7639, 15875, 25815, 56063}}, +{4520, 16, 13702, {1, 3, 3, 9, 27, 27, 77, 45, 217, 965, 1045, 875, 4515, 11261, 27859, 757}}, +{4521, 16, 13713, {1, 1, 3, 11, 17, 7, 81, 37, 299, 765, 977, 3371, 3163, 13267, 18345, 9239}}, +{4522, 16, 13739, {1, 1, 1, 3, 15, 23, 115, 11, 183, 511, 557, 3253, 153, 8465, 22659, 42143}}, +{4523, 16, 13749, {1, 1, 5, 13, 17, 61, 127, 219, 225, 981, 615, 731, 4069, 12637, 11601, 38257}}, +{4524, 16, 13767, {1, 1, 5, 3, 29, 3, 73, 79, 393, 779, 823, 2473, 3811, 4417, 9399, 50011}}, +{4525, 16, 13774, {1, 3, 3, 9, 21, 35, 61, 99, 115, 657, 629, 1129, 2355, 12665, 459, 40831}}, +{4526, 16, 13781, {1, 3, 1, 7, 25, 61, 53, 249, 15, 649, 665, 595, 1441, 8035, 5381, 7147}}, +{4527, 16, 13795, {1, 3, 1, 7, 19, 9, 27, 207, 205, 461, 1069, 4039, 6549, 2333, 29, 50067}}, +{4528, 16, 13821, {1, 1, 5, 3, 15, 7, 115, 205, 71, 73, 53, 71, 6049, 15293, 17041, 20313}}, +{4529, 16, 13825, {1, 1, 7, 7, 9, 7, 119, 99, 357, 729, 2041, 3355, 5333, 1263, 30521, 64867}}, +{4530, 16, 13838, {1, 1, 1, 7, 31, 63, 63, 159, 281, 295, 913, 2161, 8033, 13789, 17711, 14915}}, +{4531, 16, 13852, {1, 1, 7, 9, 29, 55, 69, 129, 453, 361, 1883, 17, 1765, 111, 10311, 55019}}, +{4532, 16, 13879, {1, 1, 5, 9, 21, 15, 31, 57, 291, 915, 945, 1775, 5905, 9073, 3271, 15571}}, +{4533, 16, 13888, {1, 1, 1, 7, 21, 11, 1, 9, 167, 143, 1535, 1267, 6675, 13037, 19513, 52027}}, +{4534, 16, 13897, {1, 3, 3, 7, 31, 45, 57, 105, 63, 121, 631, 679, 3873, 16333, 32069, 64725}}, +{4535, 16, 13906, {1, 1, 1, 9, 23, 41, 29, 207, 489, 319, 905, 3147, 4195, 2697, 5281, 1771}}, +{4536, 16, 13939, {1, 1, 1, 9, 25, 33, 57, 201, 405, 111, 407, 3489, 449, 8601, 1273, 42105}}, +{4537, 16, 13962, {1, 1, 1, 3, 19, 45, 123, 159, 237, 173, 781, 787, 7537, 15453, 25567, 53729}}, +{4538, 16, 13981, {1, 1, 7, 3, 29, 9, 89, 207, 345, 685, 1701, 2859, 8065, 9289, 2459, 28367}}, +{4539, 16, 13985, {1, 3, 1, 3, 31, 41, 55, 241, 81, 1001, 595, 1725, 853, 11427, 20617, 1717}}, +{4540, 16, 14020, {1, 1, 3, 3, 9, 45, 121, 69, 177, 1017, 211, 2753, 6923, 1387, 32063, 45337}}, +{4541, 16, 14030, {1, 1, 5, 15, 21, 23, 95, 61, 485, 403, 619, 3035, 4881, 13423, 17815, 35221}}, +{4542, 16, 14041, {1, 1, 3, 3, 3, 59, 23, 69, 77, 309, 227, 2877, 3739, 3539, 20083, 23415}}, +{4543, 16, 14047, {1, 3, 7, 3, 17, 43, 95, 239, 223, 353, 1237, 3239, 1369, 7245, 32401, 63889}}, +{4544, 16, 14048, {1, 1, 1, 5, 25, 63, 123, 3, 291, 819, 793, 241, 5619, 8871, 18341, 2757}}, +{4545, 16, 14066, {1, 3, 7, 15, 3, 21, 17, 97, 395, 333, 909, 3783, 3635, 751, 24227, 44281}}, +{4546, 16, 14092, {1, 3, 7, 13, 29, 49, 123, 195, 191, 159, 211, 1887, 3047, 4871, 2607, 32425}}, +{4547, 16, 14120, {1, 1, 7, 7, 15, 57, 91, 255, 267, 897, 441, 1581, 953, 6951, 17275, 50229}}, +{4548, 16, 14126, {1, 3, 7, 15, 1, 35, 91, 219, 7, 117, 119, 2687, 1215, 9517, 10849, 28347}}, +{4549, 16, 14131, {1, 1, 1, 1, 21, 55, 67, 221, 503, 883, 1037, 2965, 1485, 8557, 28091, 25459}}, +{4550, 16, 14143, {1, 3, 5, 9, 19, 3, 73, 123, 95, 307, 1339, 3669, 5077, 12049, 523, 21457}}, +{4551, 16, 14146, {1, 3, 1, 13, 3, 1, 111, 97, 371, 697, 1989, 3715, 7875, 6841, 7009, 17809}}, +{4552, 16, 14152, {1, 1, 1, 9, 25, 21, 19, 43, 329, 531, 491, 1147, 1469, 12841, 29651, 29517}}, +{4553, 16, 14155, {1, 1, 5, 1, 15, 63, 101, 197, 477, 245, 341, 61, 3803, 10001, 5519, 19083}}, +{4554, 16, 14157, {1, 3, 7, 5, 13, 43, 7, 143, 291, 531, 1727, 871, 7091, 5737, 24285, 51017}}, +{4555, 16, 14188, {1, 3, 5, 1, 17, 13, 15, 85, 361, 153, 989, 1367, 4705, 3599, 4441, 52471}}, +{4556, 16, 14206, {1, 1, 7, 13, 21, 43, 111, 29, 299, 439, 1929, 283, 5901, 14113, 3929, 55843}}, +{4557, 16, 14243, {1, 3, 3, 9, 31, 59, 63, 43, 91, 171, 733, 1359, 425, 8505, 19777, 54723}}, +{4558, 16, 14278, {1, 1, 5, 7, 31, 1, 97, 253, 331, 307, 1749, 2115, 2535, 9945, 11013, 14231}}, +{4559, 16, 14308, {1, 1, 5, 11, 13, 7, 109, 237, 301, 383, 683, 1603, 6393, 2437, 12101, 1767}}, +{4560, 16, 14317, {1, 1, 3, 11, 15, 61, 119, 199, 109, 265, 1431, 1729, 3409, 10129, 16945, 34681}}, +{4561, 16, 14335, {1, 3, 7, 9, 13, 59, 121, 73, 29, 513, 279, 457, 7985, 15199, 10185, 33621}}, +{4562, 16, 14354, {1, 3, 7, 7, 23, 17, 27, 65, 387, 487, 1803, 2789, 461, 11201, 7001, 40229}}, +{4563, 16, 14356, {1, 1, 3, 15, 9, 13, 55, 127, 33, 513, 1055, 643, 505, 3005, 6121, 64147}}, +{4564, 16, 14379, {1, 3, 5, 15, 5, 11, 77, 233, 175, 691, 171, 2491, 6915, 14195, 7845, 36499}}, +{4565, 16, 14381, {1, 1, 5, 11, 19, 45, 103, 207, 99, 645, 1739, 1517, 5907, 16035, 14559, 44007}}, +{4566, 16, 14384, {1, 3, 7, 15, 21, 27, 53, 107, 89, 291, 983, 3527, 1025, 2985, 13747, 32715}}, +{4567, 16, 14389, {1, 1, 3, 15, 23, 17, 27, 209, 77, 959, 813, 3597, 5809, 693, 10325, 16855}}, +{4568, 16, 14390, {1, 1, 7, 11, 23, 53, 123, 99, 211, 935, 1371, 1657, 4699, 2683, 27933, 21451}}, +{4569, 16, 14414, {1, 3, 3, 3, 17, 21, 93, 201, 423, 351, 1639, 227, 5719, 13111, 5993, 44615}}, +{4570, 16, 14425, {1, 1, 7, 3, 13, 49, 59, 255, 213, 147, 1441, 3593, 6419, 15657, 1947, 62713}}, +{4571, 16, 14462, {1, 3, 1, 7, 7, 41, 79, 135, 275, 585, 925, 3139, 4351, 1827, 23533, 63031}}, +{4572, 16, 14472, {1, 1, 7, 3, 11, 1, 13, 149, 29, 897, 1043, 2393, 3931, 6741, 19973, 46303}}, +{4573, 16, 14508, {1, 1, 1, 13, 13, 57, 9, 253, 149, 67, 1531, 4049, 3013, 13947, 3371, 35317}}, +{4574, 16, 14511, {1, 3, 1, 1, 15, 19, 11, 125, 179, 383, 1273, 1551, 6441, 6579, 19659, 31005}}, +{4575, 16, 14519, {1, 1, 3, 15, 29, 37, 11, 199, 273, 663, 549, 3167, 2049, 8815, 30719, 47905}}, +{4576, 16, 14528, {1, 1, 1, 15, 7, 9, 113, 231, 155, 27, 419, 1303, 4493, 5633, 5743, 51335}}, +{4577, 16, 14561, {1, 3, 5, 13, 21, 35, 7, 63, 391, 637, 2011, 841, 5933, 10563, 7593, 34767}}, +{4578, 16, 14574, {1, 3, 1, 15, 19, 13, 89, 127, 507, 715, 1305, 2989, 7551, 1953, 26101, 54913}}, +{4579, 16, 14588, {1, 1, 5, 1, 1, 33, 101, 211, 173, 761, 177, 2721, 6949, 15801, 6639, 21405}}, +{4580, 16, 14594, {1, 3, 1, 13, 15, 23, 113, 177, 43, 743, 57, 3875, 7833, 13619, 17637, 5547}}, +{4581, 16, 14606, {1, 1, 3, 13, 21, 7, 123, 83, 391, 731, 597, 2595, 1949, 14619, 17141, 60595}}, +{4582, 16, 14614, {1, 3, 7, 13, 31, 55, 15, 43, 17, 855, 233, 1411, 1063, 12977, 22159, 59185}}, +{4583, 16, 14639, {1, 3, 7, 7, 17, 53, 67, 37, 245, 941, 1213, 1965, 6635, 10189, 12979, 63503}}, +{4584, 16, 14641, {1, 1, 5, 15, 31, 23, 15, 175, 177, 643, 1705, 3541, 2009, 12005, 27281, 16821}}, +{4585, 16, 14648, {1, 3, 1, 13, 27, 37, 1, 171, 255, 445, 171, 3555, 8169, 399, 20975, 36195}}, +{4586, 16, 14668, {1, 3, 7, 11, 13, 15, 123, 65, 173, 317, 1991, 2093, 8073, 12831, 15455, 30175}}, +{4587, 16, 14673, {1, 3, 1, 7, 5, 53, 59, 219, 407, 501, 875, 2627, 1335, 14387, 25523, 28337}}, +{4588, 16, 14679, {1, 3, 3, 13, 13, 41, 93, 125, 41, 461, 887, 1085, 3393, 11945, 16329, 43531}}, +{4589, 16, 14695, {1, 3, 1, 11, 21, 39, 1, 185, 429, 285, 443, 1165, 451, 10903, 31511, 50555}}, +{4590, 16, 14702, {1, 1, 7, 5, 11, 25, 61, 171, 493, 733, 215, 1871, 7783, 14113, 2061, 58961}}, +{4591, 16, 14704, {1, 1, 7, 7, 27, 23, 53, 45, 131, 301, 275, 3855, 4883, 6303, 25269, 12697}}, +{4592, 16, 14740, {1, 3, 5, 7, 11, 15, 71, 101, 377, 803, 1369, 3741, 633, 10571, 30659, 31101}}, +{4593, 16, 14754, {1, 1, 5, 15, 19, 53, 3, 153, 411, 685, 1405, 109, 5755, 13311, 3713, 24579}}, +{4594, 16, 14774, {1, 1, 3, 3, 27, 7, 89, 39, 5, 853, 1757, 2927, 2889, 9735, 17959, 39301}}, +{4595, 16, 14792, {1, 3, 1, 3, 13, 41, 57, 71, 187, 285, 825, 1807, 7261, 2645, 21861, 1839}}, +{4596, 16, 14797, {1, 3, 3, 5, 15, 21, 23, 7, 341, 981, 891, 721, 7221, 3137, 28725, 54993}}, +{4597, 16, 14806, {1, 1, 5, 3, 3, 61, 59, 97, 205, 359, 185, 3361, 7637, 15473, 6351, 62097}}, +{4598, 16, 14812, {1, 1, 1, 9, 13, 11, 123, 71, 199, 251, 535, 371, 1605, 12107, 13833, 2019}}, +{4599, 16, 14856, {1, 1, 7, 13, 27, 1, 43, 73, 409, 601, 1481, 649, 3293, 12257, 23377, 17225}}, +{4600, 16, 14876, {1, 1, 7, 11, 15, 55, 99, 45, 261, 461, 1507, 3575, 4425, 9895, 20191, 61863}}, +{4601, 16, 14900, {1, 3, 7, 1, 3, 7, 19, 85, 139, 691, 1685, 137, 7547, 16143, 14193, 52479}}, +{4602, 16, 14910, {1, 3, 5, 9, 17, 61, 7, 189, 31, 641, 1381, 3999, 4909, 8463, 31761, 54493}}, +{4603, 16, 14912, {1, 1, 5, 15, 17, 15, 69, 111, 55, 1011, 1859, 2643, 6043, 5125, 15875, 611}}, +{4604, 16, 14915, {1, 1, 3, 5, 3, 33, 73, 227, 327, 369, 189, 1841, 5625, 1179, 18651, 34951}}, +{4605, 16, 14922, {1, 3, 7, 13, 1, 17, 109, 149, 89, 889, 799, 3423, 2599, 14525, 12763, 23855}}, +{4606, 16, 14939, {1, 1, 3, 15, 5, 63, 87, 7, 63, 171, 1215, 557, 3009, 16305, 23517, 40101}}, +{4607, 16, 14946, {1, 1, 3, 3, 29, 31, 79, 183, 401, 813, 41, 1111, 5669, 15697, 7813, 10215}}, +{4608, 16, 14955, {1, 1, 5, 7, 9, 25, 25, 57, 343, 375, 535, 3405, 1909, 3201, 2417, 52285}}, +{4609, 16, 14966, {1, 1, 5, 9, 25, 19, 33, 183, 29, 991, 1045, 2249, 2933, 12525, 13943, 10423}}, +{4610, 16, 14976, {1, 3, 1, 7, 3, 45, 49, 37, 429, 67, 821, 1289, 7311, 16165, 25861, 57715}}, +{4611, 16, 14986, {1, 1, 7, 3, 19, 3, 33, 153, 505, 683, 611, 1691, 6421, 15517, 19161, 49013}}, +{4612, 16, 14993, {1, 3, 7, 7, 21, 21, 85, 55, 293, 199, 1671, 1881, 7147, 8241, 16173, 51873}}, +{4613, 16, 15012, {1, 3, 1, 15, 3, 61, 97, 191, 435, 511, 1599, 2705, 1897, 2607, 1801, 48583}}, +{4614, 16, 15041, {1, 1, 5, 3, 9, 23, 23, 185, 401, 947, 33, 385, 7491, 14129, 14561, 13759}}, +{4615, 16, 15053, {1, 3, 5, 15, 19, 21, 37, 233, 149, 673, 29, 1315, 3487, 6705, 28283, 43135}}, +{4616, 16, 15056, {1, 1, 1, 11, 9, 35, 101, 255, 345, 829, 689, 2747, 2145, 2101, 24863, 35529}}, +{4617, 16, 15059, {1, 3, 7, 9, 5, 5, 53, 247, 157, 729, 1621, 129, 2485, 5371, 11115, 47771}}, +{4618, 16, 15110, {1, 1, 3, 9, 29, 29, 13, 229, 87, 281, 1119, 1085, 4423, 1667, 27067, 50397}}, +{4619, 16, 15116, {1, 1, 3, 7, 11, 29, 77, 85, 121, 495, 501, 3209, 3531, 2307, 11367, 34135}}, +{4620, 16, 15133, {1, 1, 7, 9, 3, 37, 33, 209, 493, 869, 367, 3221, 1643, 3353, 22851, 4313}}, +{4621, 16, 15134, {1, 1, 1, 7, 15, 53, 27, 17, 29, 345, 821, 1831, 1963, 10089, 5101, 32689}}, +{4622, 16, 15137, {1, 1, 3, 9, 9, 61, 31, 215, 497, 591, 1301, 157, 3329, 13877, 9017, 34673}}, +{4623, 16, 15147, {1, 1, 5, 1, 29, 49, 93, 139, 279, 167, 143, 279, 6145, 6247, 519, 8869}}, +{4624, 16, 15182, {1, 3, 3, 1, 25, 41, 81, 219, 505, 335, 1941, 2963, 413, 775, 4181, 55269}}, +{4625, 16, 15203, {1, 1, 1, 11, 27, 23, 91, 9, 497, 811, 1469, 1999, 5377, 2943, 17635, 11151}}, +{4626, 16, 15215, {1, 1, 5, 15, 17, 23, 15, 235, 271, 749, 1873, 3805, 5405, 7421, 24339, 14351}}, +{4627, 16, 15245, {1, 3, 7, 1, 5, 61, 81, 9, 269, 43, 1391, 2711, 6973, 11299, 2263, 8715}}, +{4628, 16, 15246, {1, 1, 5, 13, 11, 1, 69, 235, 25, 227, 63, 2591, 913, 12555, 6263, 38981}}, +{4629, 16, 15264, {1, 3, 1, 7, 17, 7, 97, 251, 149, 959, 1895, 1179, 4031, 15975, 20313, 64067}}, +{4630, 16, 15269, {1, 3, 7, 15, 3, 17, 85, 229, 149, 925, 585, 3755, 2359, 13131, 12665, 28861}}, +{4631, 16, 15296, {1, 3, 3, 9, 5, 31, 107, 93, 347, 851, 1249, 2161, 6095, 8315, 20259, 39527}}, +{4632, 16, 15314, {1, 3, 7, 7, 21, 63, 85, 241, 501, 627, 1211, 1713, 6907, 4229, 7557, 55719}}, +{4633, 16, 15323, {1, 1, 1, 13, 19, 43, 21, 177, 13, 353, 679, 511, 5565, 993, 25345, 25087}}, +{4634, 16, 15364, {1, 3, 3, 15, 21, 15, 87, 83, 381, 547, 1429, 2417, 2425, 2097, 20889, 12353}}, +{4635, 16, 15386, {1, 3, 1, 11, 23, 21, 69, 147, 427, 271, 1829, 525, 2951, 10773, 32425, 17685}}, +{4636, 16, 15391, {1, 3, 1, 7, 15, 55, 21, 131, 195, 927, 635, 3505, 3817, 14883, 1149, 10079}}, +{4637, 16, 15436, {1, 3, 3, 9, 23, 15, 45, 147, 249, 87, 377, 1551, 4343, 15373, 2895, 44973}}, +{4638, 16, 15460, {1, 3, 1, 7, 31, 63, 67, 107, 109, 1019, 815, 231, 8135, 559, 8175, 21735}}, +{4639, 16, 15464, {1, 1, 5, 7, 7, 63, 103, 133, 167, 883, 1647, 2827, 6015, 8541, 16963, 37129}}, +{4640, 16, 15469, {1, 3, 5, 9, 27, 25, 59, 147, 29, 943, 865, 1233, 2165, 15259, 2235, 25831}}, +{4641, 16, 15470, {1, 1, 5, 7, 25, 5, 67, 89, 493, 111, 359, 1115, 7963, 6545, 7749, 29179}}, +{4642, 16, 15477, {1, 3, 7, 5, 19, 17, 89, 195, 337, 115, 1417, 3837, 4761, 1959, 16205, 61597}}, +{4643, 16, 15488, {1, 1, 5, 11, 25, 43, 3, 111, 491, 897, 1541, 909, 4751, 739, 7827, 64485}}, +{4644, 16, 15494, {1, 1, 5, 15, 19, 61, 39, 111, 451, 419, 1657, 2427, 4589, 5577, 23967, 19259}}, +{4645, 16, 15548, {1, 3, 3, 1, 31, 15, 7, 131, 329, 847, 537, 1775, 3833, 5683, 17267, 16389}}, +{4646, 16, 15551, {1, 1, 7, 1, 9, 29, 13, 25, 409, 513, 1695, 2175, 5099, 727, 5723, 43547}}, +{4647, 16, 15560, {1, 1, 5, 7, 13, 11, 29, 123, 127, 193, 1647, 3157, 2149, 16209, 19909, 14473}}, +{4648, 16, 15563, {1, 1, 1, 15, 15, 37, 125, 157, 487, 143, 1891, 2895, 4397, 10685, 1463, 55027}}, +{4649, 16, 15604, {1, 3, 7, 1, 1, 15, 115, 105, 479, 529, 1095, 2687, 4483, 15027, 15487, 7113}}, +{4650, 16, 15607, {1, 1, 3, 9, 23, 63, 113, 211, 155, 931, 175, 3037, 2359, 10413, 24561, 21099}}, +{4651, 16, 15616, {1, 3, 3, 11, 5, 15, 13, 37, 257, 447, 203, 545, 2467, 9979, 17543, 62703}}, +{4652, 16, 15631, {1, 1, 3, 7, 17, 31, 83, 91, 79, 265, 1415, 2347, 5337, 7615, 27739, 33841}}, +{4653, 16, 15699, {1, 3, 5, 7, 17, 63, 37, 153, 347, 909, 1945, 7, 2071, 15195, 32083, 26713}}, +{4654, 16, 15701, {1, 1, 3, 11, 19, 51, 69, 21, 323, 635, 443, 1685, 6275, 13787, 20921, 45553}}, +{4655, 16, 15708, {1, 3, 3, 7, 15, 35, 67, 247, 257, 429, 2029, 523, 3219, 3893, 26677, 53273}}, +{4656, 16, 15739, {1, 1, 7, 9, 9, 3, 119, 121, 445, 149, 1539, 1887, 2995, 14867, 809, 48065}}, +{4657, 16, 15746, {1, 3, 5, 13, 15, 27, 75, 9, 217, 35, 1363, 2383, 4357, 1153, 20565, 62277}}, +{4658, 16, 15772, {1, 1, 7, 1, 21, 1, 11, 53, 331, 765, 407, 453, 2725, 11199, 645, 14915}}, +{4659, 16, 15793, {1, 1, 5, 1, 29, 11, 5, 159, 395, 53, 323, 1347, 5529, 8525, 24003, 20535}}, +{4660, 16, 15832, {1, 3, 3, 15, 9, 19, 87, 181, 391, 639, 703, 611, 997, 359, 2471, 58465}}, +{4661, 16, 15837, {1, 3, 5, 9, 27, 9, 117, 47, 223, 509, 1537, 1235, 3885, 6767, 17131, 63421}}, +{4662, 16, 15866, {1, 1, 5, 1, 15, 15, 113, 67, 477, 597, 1795, 3065, 4565, 3609, 16419, 19667}}, +{4663, 16, 15899, {1, 1, 7, 11, 1, 63, 33, 211, 271, 773, 499, 2309, 1303, 14015, 30377, 53195}}, +{4664, 16, 15911, {1, 1, 7, 11, 5, 23, 17, 183, 321, 315, 203, 3371, 907, 9331, 21031, 33765}}, +{4665, 16, 15918, {1, 3, 3, 7, 7, 53, 111, 69, 441, 283, 195, 2415, 7293, 7659, 2731, 5417}}, +{4666, 16, 15952, {1, 3, 5, 15, 3, 61, 5, 241, 427, 463, 1729, 653, 7671, 10979, 7247, 36931}}, +{4667, 16, 15962, {1, 3, 1, 9, 3, 5, 105, 117, 465, 853, 2005, 3925, 4419, 4441, 3701, 50747}}, +{4668, 16, 15967, {1, 1, 3, 7, 1, 3, 3, 149, 65, 405, 299, 99, 481, 14323, 11565, 6227}}, +{4669, 16, 15973, {1, 3, 7, 5, 29, 3, 19, 3, 253, 895, 879, 2435, 2151, 10673, 11013, 43055}}, +{4670, 16, 15977, {1, 3, 1, 11, 15, 57, 127, 197, 319, 913, 1039, 811, 7767, 5791, 31725, 8733}}, +{4671, 16, 16016, {1, 1, 7, 3, 13, 25, 25, 81, 229, 185, 39, 2789, 579, 4973, 28617, 60871}}, +{4672, 16, 16035, {1, 1, 7, 3, 25, 17, 41, 7, 103, 269, 55, 2651, 7579, 10935, 8917, 14323}}, +{4673, 16, 16044, {1, 3, 7, 7, 13, 7, 99, 205, 293, 877, 1893, 3013, 2389, 6021, 2645, 18175}}, +{4674, 16, 16067, {1, 1, 3, 7, 9, 39, 59, 187, 191, 761, 339, 3381, 2921, 5197, 16963, 43019}}, +{4675, 16, 16082, {1, 3, 3, 13, 7, 23, 41, 203, 311, 981, 323, 1675, 6689, 579, 3885, 64475}}, +{4676, 16, 16084, {1, 3, 5, 15, 21, 39, 35, 193, 167, 1009, 493, 829, 6571, 1299, 13061, 1163}}, +{4677, 16, 16098, {1, 1, 3, 5, 3, 19, 123, 123, 111, 599, 193, 3419, 7173, 5595, 12449, 52247}}, +{4678, 16, 16107, {1, 3, 5, 11, 9, 25, 65, 49, 239, 953, 481, 3455, 4335, 305, 22469, 11949}}, +{4679, 16, 16142, {1, 1, 3, 7, 15, 1, 13, 77, 147, 49, 1445, 931, 3405, 15951, 15215, 26451}}, +{4680, 16, 16149, {1, 3, 1, 1, 21, 53, 17, 7, 247, 243, 805, 795, 489, 13351, 13493, 30937}}, +{4681, 16, 16165, {1, 3, 7, 5, 5, 13, 39, 115, 397, 757, 423, 2559, 1677, 9449, 24563, 869}}, +{4682, 16, 16172, {1, 1, 3, 11, 23, 9, 27, 233, 165, 853, 1721, 599, 551, 11657, 27623, 40119}}, +{4683, 16, 16178, {1, 1, 3, 1, 3, 47, 75, 207, 113, 417, 1317, 2215, 2395, 1841, 23125, 50401}}, +{4684, 16, 16197, {1, 3, 3, 1, 13, 55, 103, 55, 351, 785, 1665, 3603, 7705, 4811, 21129, 38115}}, +{4685, 16, 16201, {1, 1, 1, 5, 5, 49, 93, 189, 317, 701, 1545, 1017, 4133, 7655, 19827, 52155}}, +{4686, 16, 16215, {1, 3, 3, 13, 17, 37, 7, 249, 139, 529, 235, 3801, 7871, 459, 15127, 13231}}, +{4687, 16, 16221, {1, 3, 7, 5, 7, 63, 99, 241, 131, 455, 1287, 3539, 8029, 12661, 23313, 54029}}, +{4688, 16, 16226, {1, 3, 1, 3, 29, 63, 51, 227, 497, 685, 1351, 449, 7851, 10815, 17379, 62097}}, +{4689, 16, 16232, {1, 3, 1, 11, 25, 61, 73, 29, 467, 533, 855, 853, 5557, 10953, 18307, 27135}}, +{4690, 16, 16246, {1, 1, 7, 3, 13, 49, 63, 171, 177, 283, 1365, 3087, 5445, 15109, 12523, 25193}}, +{4691, 16, 16261, {1, 3, 5, 15, 9, 39, 95, 81, 417, 199, 1653, 3673, 2663, 8101, 12199, 22759}}, +{4692, 16, 16279, {1, 1, 3, 9, 29, 15, 29, 215, 21, 721, 245, 1197, 7251, 5721, 6735, 7751}}, +{4693, 16, 16280, {1, 3, 5, 5, 21, 7, 81, 61, 157, 707, 819, 1689, 4203, 5559, 25483, 43325}}, +{4694, 16, 16290, {1, 1, 7, 13, 15, 51, 47, 197, 269, 921, 353, 2865, 6227, 537, 20015, 53823}}, +{4695, 16, 16314, {1, 1, 3, 5, 13, 25, 91, 221, 111, 587, 1119, 2343, 4651, 4641, 15915, 36323}}, +{4696, 16, 16345, {1, 1, 7, 11, 1, 45, 7, 215, 483, 545, 731, 3041, 3121, 8681, 20651, 4069}}, +{4697, 16, 16355, {1, 3, 7, 13, 13, 27, 109, 65, 103, 805, 299, 2069, 6017, 14565, 20505, 16161}}, +{4698, 16, 16361, {1, 1, 7, 5, 11, 33, 105, 213, 237, 583, 1033, 2333, 845, 6493, 505, 2563}}, +{4699, 16, 16393, {1, 1, 5, 7, 3, 5, 11, 173, 373, 341, 269, 177, 3175, 9413, 601, 13591}}, +{4700, 16, 16394, {1, 1, 5, 13, 7, 57, 61, 187, 121, 405, 665, 111, 7535, 3355, 14051, 511}}, +{4701, 16, 16438, {1, 1, 1, 3, 3, 29, 15, 253, 227, 123, 333, 1343, 7313, 1955, 17741, 30831}}, +{4702, 16, 16450, {1, 3, 5, 1, 5, 47, 65, 183, 199, 839, 925, 2711, 4609, 201, 15177, 29817}}, +{4703, 16, 16507, {1, 3, 7, 9, 21, 63, 5, 163, 265, 581, 1795, 3937, 4641, 2073, 32225, 60831}}, +{4704, 16, 16523, {1, 1, 1, 5, 7, 47, 125, 203, 511, 841, 1937, 3431, 1495, 12827, 5893, 19265}}, +{4705, 16, 16533, {1, 1, 5, 5, 9, 49, 17, 247, 391, 241, 3, 2253, 6319, 89, 4449, 6371}}, +{4706, 16, 16603, {1, 3, 1, 1, 31, 7, 51, 61, 461, 391, 273, 1609, 5825, 16029, 3851, 39213}}, +{4707, 16, 16648, {1, 3, 3, 7, 29, 21, 65, 75, 317, 925, 1319, 3827, 965, 5685, 17007, 64365}}, +{4708, 16, 16653, {1, 3, 1, 5, 23, 23, 109, 59, 31, 659, 635, 2209, 857, 9847, 2507, 18325}}, +{4709, 16, 16672, {1, 1, 1, 1, 17, 51, 53, 77, 461, 147, 229, 2821, 2405, 1259, 1121, 17429}}, +{4710, 16, 16682, {1, 3, 5, 3, 31, 3, 57, 157, 321, 731, 1609, 2139, 899, 12599, 19803, 51083}}, +{4711, 16, 16709, {1, 1, 3, 11, 27, 43, 73, 209, 431, 587, 1247, 2803, 3593, 1351, 18701, 33423}}, +{4712, 16, 16713, {1, 3, 5, 13, 27, 19, 67, 245, 339, 879, 2035, 1801, 5845, 3883, 22057, 15771}}, +{4713, 16, 16719, {1, 1, 3, 11, 11, 55, 93, 51, 57, 127, 1325, 3975, 3989, 2347, 18831, 2979}}, +{4714, 16, 16733, {1, 1, 1, 13, 17, 1, 17, 103, 303, 777, 1973, 2943, 7439, 8953, 27227, 10229}}, +{4715, 16, 16740, {1, 3, 3, 15, 1, 41, 53, 219, 415, 399, 995, 205, 7719, 10937, 31879, 755}}, +{4716, 16, 16761, {1, 3, 7, 9, 13, 7, 99, 93, 419, 1019, 1605, 161, 3831, 9147, 7877, 1333}}, +{4717, 16, 16767, {1, 3, 7, 15, 5, 51, 37, 115, 259, 549, 353, 2067, 7657, 1283, 20333, 2325}}, +{4718, 16, 16771, {1, 1, 3, 3, 23, 33, 63, 233, 363, 719, 1099, 471, 3079, 10577, 19063, 31535}}, +{4719, 16, 16788, {1, 3, 7, 15, 23, 19, 109, 105, 497, 881, 1055, 537, 4607, 239, 22785, 60201}}, +{4720, 16, 16811, {1, 3, 3, 5, 19, 11, 1, 207, 163, 437, 713, 667, 1427, 7505, 28055, 43101}}, +{4721, 16, 16814, {1, 3, 5, 5, 25, 45, 75, 9, 109, 545, 573, 2685, 1013, 2973, 18619, 55945}}, +{4722, 16, 16816, {1, 1, 1, 3, 27, 27, 39, 33, 285, 453, 613, 2707, 2155, 4355, 21105, 7969}}, +{4723, 16, 16828, {1, 3, 3, 9, 1, 31, 71, 101, 491, 409, 65, 1479, 5743, 525, 2863, 53657}}, +{4724, 16, 16834, {1, 1, 3, 1, 17, 63, 55, 11, 125, 447, 275, 2243, 6827, 5753, 32401, 13819}}, +{4725, 16, 16863, {1, 1, 3, 9, 21, 47, 5, 127, 285, 471, 1681, 945, 6141, 5651, 10273, 30811}}, +{4726, 16, 16864, {1, 3, 3, 1, 13, 53, 91, 3, 255, 429, 107, 2937, 2971, 10251, 15009, 37477}}, +{4727, 16, 16879, {1, 1, 7, 13, 21, 63, 73, 3, 63, 491, 101, 1981, 7457, 879, 6243, 22275}}, +{4728, 16, 16888, {1, 3, 1, 1, 11, 43, 121, 101, 293, 639, 645, 2723, 2075, 3629, 22105, 18199}}, +{4729, 16, 16904, {1, 1, 3, 1, 31, 9, 69, 97, 511, 663, 1147, 1237, 389, 255, 8661, 38533}}, +{4730, 16, 16909, {1, 3, 3, 7, 3, 13, 23, 71, 197, 439, 2003, 1771, 8073, 1549, 29089, 5409}}, +{4731, 16, 16921, {1, 3, 1, 1, 9, 23, 1, 221, 159, 699, 593, 3385, 3869, 10105, 22097, 34753}}, +{4732, 16, 16934, {1, 1, 7, 1, 29, 47, 41, 137, 333, 357, 325, 3151, 6641, 3823, 8763, 28327}}, +{4733, 16, 16951, {1, 3, 1, 7, 19, 19, 39, 225, 477, 619, 583, 229, 6177, 9615, 1203, 13711}}, +{4734, 16, 16983, {1, 1, 3, 13, 9, 41, 127, 147, 13, 301, 861, 2019, 3517, 1147, 21587, 42387}}, +{4735, 16, 16999, {1, 1, 5, 11, 9, 63, 11, 121, 251, 199, 483, 2287, 4667, 3887, 10611, 6019}}, +{4736, 16, 17000, {1, 1, 3, 13, 23, 19, 89, 73, 355, 399, 749, 687, 5707, 11443, 817, 38967}}, +{4737, 16, 17006, {1, 3, 5, 9, 3, 23, 115, 207, 373, 541, 73, 1285, 7245, 12505, 5787, 61207}}, +{4738, 16, 17020, {1, 3, 5, 15, 27, 37, 115, 203, 195, 793, 1577, 1283, 7299, 4025, 5319, 5375}}, +{4739, 16, 17030, {1, 1, 7, 15, 25, 19, 61, 11, 215, 771, 1057, 451, 1965, 13693, 25617, 42657}}, +{4740, 16, 17033, {1, 3, 3, 7, 1, 19, 23, 217, 175, 901, 2009, 2989, 5111, 5027, 4805, 37843}}, +{4741, 16, 17044, {1, 3, 1, 11, 11, 37, 3, 131, 459, 769, 201, 3979, 3009, 8691, 27005, 32175}}, +{4742, 16, 17051, {1, 3, 5, 7, 27, 27, 117, 23, 403, 1003, 1501, 785, 6313, 10187, 5085, 30751}}, +{4743, 16, 17072, {1, 1, 7, 3, 11, 41, 73, 151, 19, 657, 131, 1901, 3879, 14995, 24085, 56621}}, +{4744, 16, 17078, {1, 3, 7, 15, 23, 3, 61, 199, 67, 483, 1961, 3583, 5937, 5749, 16685, 11831}}, +{4745, 16, 17084, {1, 1, 3, 15, 25, 15, 97, 9, 299, 641, 883, 2901, 123, 1523, 7055, 15609}}, +{4746, 16, 17087, {1, 3, 5, 5, 31, 55, 19, 45, 239, 543, 2005, 1041, 1711, 11059, 19927, 17475}}, +{4747, 16, 17090, {1, 1, 3, 9, 5, 59, 105, 209, 323, 613, 1963, 2227, 2947, 11761, 21375, 13265}}, +{4748, 16, 17123, {1, 3, 3, 15, 1, 5, 117, 37, 93, 243, 305, 2299, 5163, 9205, 28761, 35987}}, +{4749, 16, 17132, {1, 1, 1, 5, 5, 29, 13, 147, 457, 187, 1729, 1547, 7745, 13155, 7833, 57449}}, +{4750, 16, 17140, {1, 3, 3, 13, 1, 51, 49, 253, 23, 389, 1611, 3045, 5909, 3947, 25105, 3327}}, +{4751, 16, 17149, {1, 3, 1, 11, 15, 47, 19, 15, 231, 57, 763, 1879, 1765, 14861, 22893, 19437}}, +{4752, 16, 17157, {1, 1, 3, 15, 1, 19, 85, 65, 139, 629, 361, 3513, 3807, 799, 8349, 29247}}, +{4753, 16, 17164, {1, 3, 3, 13, 9, 11, 65, 201, 471, 89, 355, 121, 3947, 10775, 3599, 6041}}, +{4754, 16, 17170, {1, 3, 7, 3, 5, 53, 33, 167, 431, 129, 1449, 3263, 7691, 12569, 7551, 41101}}, +{4755, 16, 17179, {1, 1, 3, 15, 9, 41, 5, 239, 361, 773, 955, 3663, 6051, 12889, 5841, 59615}}, +{4756, 16, 17237, {1, 1, 7, 5, 5, 33, 97, 9, 495, 845, 1953, 3533, 5715, 15055, 25211, 9351}}, +{4757, 16, 17248, {1, 3, 1, 11, 25, 37, 83, 153, 289, 739, 353, 1121, 7641, 2081, 28439, 38085}}, +{4758, 16, 17260, {1, 3, 1, 1, 27, 9, 63, 135, 395, 641, 1759, 3727, 4371, 5193, 2783, 12389}}, +{4759, 16, 17272, {1, 3, 3, 15, 3, 9, 5, 153, 111, 675, 1957, 3817, 4269, 10787, 3413, 34199}}, +{4760, 16, 17275, {1, 3, 5, 9, 23, 23, 97, 137, 255, 249, 333, 2329, 1055, 13769, 13109, 33443}}, +{4761, 16, 17287, {1, 1, 1, 15, 7, 37, 99, 219, 483, 755, 263, 3523, 6179, 4817, 29873, 12771}}, +{4762, 16, 17294, {1, 1, 3, 5, 23, 7, 77, 97, 105, 631, 175, 1911, 7271, 1009, 24081, 61207}}, +{4763, 16, 17296, {1, 3, 5, 3, 1, 31, 71, 91, 265, 669, 1839, 3989, 8127, 15001, 1419, 8895}}, +{4764, 16, 17305, {1, 3, 1, 13, 27, 51, 93, 155, 49, 991, 653, 203, 3863, 5363, 31969, 36083}}, +{4765, 16, 17312, {1, 3, 3, 7, 31, 27, 21, 73, 21, 675, 407, 1215, 2963, 6799, 15259, 13125}}, +{4766, 16, 17321, {1, 3, 5, 13, 5, 53, 19, 215, 243, 487, 689, 2519, 6393, 3987, 30847, 37919}}, +{4767, 16, 17367, {1, 3, 3, 7, 5, 31, 115, 231, 255, 955, 2023, 1487, 6575, 9873, 22585, 29951}}, +{4768, 16, 17368, {1, 3, 5, 11, 11, 57, 109, 203, 417, 29, 1311, 893, 1047, 2413, 9305, 38219}}, +{4769, 16, 17378, {1, 3, 1, 7, 23, 51, 113, 3, 105, 915, 1145, 3431, 7331, 3323, 31669, 21485}}, +{4770, 16, 17433, {1, 1, 7, 13, 9, 29, 119, 205, 403, 1023, 257, 863, 2983, 1895, 16539, 23385}}, +{4771, 16, 17455, {1, 1, 7, 13, 27, 21, 47, 139, 341, 509, 1107, 2197, 3649, 14301, 30789, 48783}}, +{4772, 16, 17457, {1, 3, 3, 7, 25, 19, 99, 11, 309, 919, 1809, 3015, 1587, 3779, 1289, 30207}}, +{4773, 16, 17508, {1, 3, 5, 11, 9, 43, 57, 171, 9, 151, 173, 2301, 7723, 2083, 319, 52883}}, +{4774, 16, 17559, {1, 1, 3, 1, 3, 13, 63, 11, 231, 117, 1257, 237, 581, 13871, 15501, 8741}}, +{4775, 16, 17560, {1, 3, 5, 9, 13, 63, 55, 155, 291, 721, 123, 929, 3351, 11651, 12513, 1779}}, +{4776, 16, 17582, {1, 3, 7, 3, 31, 5, 61, 81, 465, 639, 1363, 3157, 2401, 9513, 32559, 34477}}, +{4777, 16, 17596, {1, 3, 1, 15, 27, 25, 3, 117, 277, 13, 707, 3825, 7287, 10181, 30127, 57247}}, +{4778, 16, 17599, {1, 1, 7, 11, 21, 21, 53, 17, 407, 851, 1191, 285, 6815, 1595, 25507, 8099}}, +{4779, 16, 17613, {1, 3, 5, 9, 9, 61, 83, 61, 65, 671, 63, 311, 6897, 15327, 29809, 4899}}, +{4780, 16, 17619, {1, 1, 7, 1, 21, 45, 99, 235, 477, 461, 1119, 4087, 2057, 14861, 31969, 24357}}, +{4781, 16, 17622, {1, 1, 7, 9, 31, 9, 65, 123, 281, 273, 1059, 1625, 6265, 9635, 11563, 45053}}, +{4782, 16, 17655, {1, 3, 3, 7, 1, 41, 15, 23, 43, 727, 1271, 1741, 765, 13265, 4145, 1335}}, +{4783, 16, 17661, {1, 1, 3, 7, 17, 55, 107, 231, 263, 197, 659, 3621, 2789, 5171, 28635, 13595}}, +{4784, 16, 17698, {1, 1, 5, 1, 27, 23, 13, 83, 431, 507, 1571, 1573, 1733, 12171, 8181, 30843}}, +{4785, 16, 17712, {1, 3, 7, 11, 1, 53, 107, 39, 497, 579, 453, 1339, 1415, 10317, 2741, 34599}}, +{4786, 16, 17715, {1, 3, 3, 5, 31, 41, 49, 41, 33, 665, 1783, 87, 317, 6603, 22603, 22879}}, +{4787, 16, 17721, {1, 3, 1, 15, 5, 47, 41, 87, 231, 853, 1615, 2299, 4643, 9249, 15641, 14323}}, +{4788, 16, 17722, {1, 3, 7, 9, 5, 45, 55, 153, 31, 247, 67, 2335, 6057, 4379, 27579, 38437}}, +{4789, 16, 17742, {1, 1, 5, 7, 9, 3, 73, 81, 479, 909, 1097, 3945, 4485, 7815, 22855, 20825}}, +{4790, 16, 17778, {1, 3, 1, 15, 19, 43, 97, 57, 339, 167, 135, 1777, 7681, 9715, 13863, 6347}}, +{4791, 16, 17818, {1, 1, 1, 1, 5, 53, 33, 123, 449, 165, 1283, 2977, 5919, 12929, 32073, 61851}}, +{4792, 16, 17836, {1, 1, 5, 15, 27, 27, 19, 157, 267, 651, 1319, 3841, 7739, 9947, 16801, 41325}}, +{4793, 16, 17841, {1, 3, 7, 9, 19, 7, 83, 95, 401, 293, 437, 1983, 119, 7553, 11097, 11925}}, +{4794, 16, 17856, {1, 1, 3, 5, 21, 1, 53, 201, 385, 843, 1801, 99, 2697, 9659, 28789, 31417}}, +{4795, 16, 17883, {1, 1, 5, 5, 29, 57, 103, 89, 77, 597, 1849, 3433, 4267, 11167, 3841, 44023}}, +{4796, 16, 17896, {1, 1, 7, 1, 21, 47, 113, 253, 249, 431, 1899, 2859, 7345, 5725, 14805, 19999}}, +{4797, 16, 17901, {1, 3, 3, 5, 1, 11, 77, 213, 359, 665, 1855, 2743, 2407, 14677, 17957, 63257}}, +{4798, 16, 17926, {1, 3, 7, 13, 23, 29, 127, 183, 275, 849, 1005, 3159, 3867, 13029, 7527, 13035}}, +{4799, 16, 17937, {1, 1, 1, 15, 29, 47, 81, 225, 77, 879, 1279, 1929, 1457, 2025, 32229, 2847}}, +{4800, 16, 17992, {1, 1, 1, 3, 29, 45, 37, 189, 217, 53, 281, 1785, 1929, 763, 5875, 34303}}, +{4801, 16, 17995, {1, 3, 1, 9, 21, 61, 21, 149, 215, 13, 1221, 5, 7153, 14089, 3119, 33115}}, +{4802, 16, 17998, {1, 3, 7, 11, 7, 57, 89, 185, 485, 649, 1765, 747, 2983, 6791, 25015, 13627}}, +{4803, 16, 18021, {1, 1, 1, 9, 11, 53, 77, 203, 425, 237, 487, 2317, 1047, 8277, 23405, 30445}}, +{4804, 16, 18039, {1, 1, 3, 5, 7, 29, 39, 195, 109, 381, 655, 931, 4469, 16215, 10627, 64171}}, +{4805, 16, 18067, {1, 3, 1, 3, 5, 9, 89, 131, 509, 275, 489, 3161, 3701, 11951, 6579, 42839}}, +{4806, 16, 18122, {1, 3, 7, 13, 15, 37, 65, 91, 305, 433, 1815, 169, 3117, 47, 30331, 34863}}, +{4807, 16, 18129, {1, 3, 3, 9, 21, 3, 21, 113, 25, 833, 1579, 4021, 3481, 55, 20833, 46277}}, +{4808, 16, 18130, {1, 1, 1, 5, 19, 37, 61, 229, 61, 363, 817, 1235, 6235, 7261, 29917, 43057}}, +{4809, 16, 18142, {1, 3, 1, 9, 7, 59, 119, 189, 341, 945, 633, 3683, 2589, 15453, 4989, 40055}}, +{4810, 16, 18148, {1, 1, 1, 5, 25, 63, 61, 73, 207, 205, 1011, 2857, 8137, 2121, 26731, 46011}}, +{4811, 16, 18163, {1, 3, 7, 11, 13, 59, 107, 57, 49, 555, 441, 1771, 4939, 12107, 8263, 16243}}, +{4812, 16, 18192, {1, 3, 5, 13, 15, 49, 89, 217, 83, 225, 2001, 2727, 4651, 619, 16473, 47525}}, +{4813, 16, 18211, {1, 3, 5, 9, 5, 63, 115, 91, 337, 757, 703, 559, 1683, 14875, 30769, 30331}}, +{4814, 16, 18228, {1, 3, 1, 15, 3, 3, 119, 79, 487, 519, 523, 1177, 7105, 12343, 24671, 31711}}, +{4815, 16, 18264, {1, 1, 7, 15, 25, 63, 87, 23, 59, 277, 849, 953, 4567, 11309, 26181, 749}}, +{4816, 16, 18347, {1, 3, 7, 15, 5, 33, 21, 127, 3, 239, 839, 997, 7253, 8183, 19779, 4185}}, +{4817, 16, 18372, {1, 1, 5, 15, 25, 37, 99, 51, 465, 137, 1339, 541, 4319, 9883, 17425, 30743}}, +{4818, 16, 18409, {1, 3, 3, 5, 13, 7, 3, 249, 365, 749, 527, 3675, 3005, 12905, 9621, 899}}, +{4819, 16, 18412, {1, 3, 3, 7, 29, 31, 69, 21, 365, 1021, 1329, 2623, 3549, 5491, 21293, 63771}}, +{4820, 16, 18418, {1, 1, 5, 9, 5, 35, 53, 247, 193, 17, 227, 381, 5233, 821, 3991, 4439}}, +{4821, 16, 18423, {1, 1, 7, 15, 5, 59, 27, 167, 489, 335, 1565, 2999, 1777, 5009, 519, 57967}}, +{4822, 16, 18433, {1, 1, 1, 11, 25, 47, 23, 155, 419, 863, 1905, 355, 1089, 5871, 10149, 53341}}, +{4823, 16, 18439, {1, 1, 7, 7, 29, 55, 127, 83, 33, 309, 2017, 1021, 5987, 1101, 13657, 60587}}, +{4824, 16, 18445, {1, 1, 1, 7, 3, 1, 9, 75, 257, 407, 659, 529, 2087, 14759, 14483, 36425}}, +{4825, 16, 18451, {1, 3, 7, 3, 11, 29, 113, 255, 301, 799, 1171, 3721, 135, 3467, 7109, 50339}}, +{4826, 16, 18467, {1, 1, 1, 7, 21, 25, 15, 31, 61, 491, 57, 189, 2033, 4363, 31295, 16313}}, +{4827, 16, 18502, {1, 1, 5, 1, 5, 17, 33, 77, 483, 469, 355, 2245, 4165, 459, 30411, 29507}}, +{4828, 16, 18514, {1, 1, 3, 13, 1, 27, 29, 85, 491, 787, 1157, 1299, 4743, 14795, 32587, 12807}}, +{4829, 16, 18547, {1, 3, 3, 1, 23, 45, 35, 129, 3, 55, 969, 2387, 3929, 10397, 19879, 2723}}, +{4830, 16, 18575, {1, 1, 1, 7, 19, 3, 9, 23, 497, 347, 2039, 913, 5925, 7965, 5789, 40949}}, +{4831, 16, 18593, {1, 1, 7, 1, 29, 61, 89, 3, 133, 647, 1585, 2661, 1875, 1859, 3937, 12707}}, +{4832, 16, 18613, {1, 3, 3, 7, 25, 11, 41, 149, 427, 463, 901, 2433, 2617, 13511, 3443, 39867}}, +{4833, 16, 18620, {1, 1, 1, 5, 27, 33, 103, 251, 201, 1023, 1979, 3745, 6365, 14945, 22153, 55535}}, +{4834, 16, 18637, {1, 3, 1, 15, 23, 25, 57, 215, 111, 181, 385, 1123, 3095, 7085, 31863, 37393}}, +{4835, 16, 18640, {1, 3, 5, 13, 17, 35, 27, 159, 255, 241, 413, 1823, 5329, 1825, 28489, 58763}}, +{4836, 16, 18712, {1, 3, 1, 15, 3, 33, 97, 27, 409, 889, 409, 2315, 4743, 14827, 3037, 57149}}, +{4837, 16, 18728, {1, 1, 3, 5, 19, 63, 93, 51, 233, 715, 1571, 1101, 2751, 14805, 25683, 13323}}, +{4838, 16, 18742, {1, 3, 7, 3, 21, 15, 117, 179, 263, 229, 199, 2597, 3999, 3037, 3801, 4775}}, +{4839, 16, 18748, {1, 3, 3, 15, 1, 15, 49, 91, 383, 21, 1955, 773, 1213, 5971, 19525, 8699}}, +{4840, 16, 18753, {1, 3, 1, 15, 29, 49, 11, 101, 261, 761, 709, 3811, 4055, 15675, 32305, 15173}}, +{4841, 16, 18756, {1, 1, 1, 3, 9, 41, 127, 23, 413, 461, 237, 1595, 2257, 2971, 31845, 61485}}, +{4842, 16, 18771, {1, 1, 1, 11, 23, 13, 63, 21, 23, 209, 1317, 1071, 3619, 7275, 9343, 21455}}, +{4843, 16, 18814, {1, 1, 5, 9, 31, 35, 41, 249, 477, 569, 1175, 1571, 4679, 10337, 3507, 23415}}, +{4844, 16, 18818, {1, 3, 5, 11, 29, 3, 117, 65, 301, 913, 1709, 1765, 1801, 15513, 31495, 38131}}, +{4845, 16, 18827, {1, 3, 5, 11, 27, 3, 71, 195, 81, 313, 505, 3941, 3797, 2031, 24151, 65085}}, +{4846, 16, 18835, {1, 1, 1, 5, 13, 17, 59, 151, 191, 489, 1267, 3207, 4495, 15145, 12789, 46313}}, +{4847, 16, 18842, {1, 3, 1, 7, 29, 9, 25, 31, 33, 527, 1939, 4089, 333, 757, 8895, 25331}}, +{4848, 16, 18854, {1, 1, 1, 1, 9, 27, 11, 205, 211, 141, 1171, 1881, 4029, 10587, 30103, 39661}}, +{4849, 16, 18858, {1, 1, 3, 3, 23, 3, 23, 175, 355, 753, 183, 1331, 6403, 3369, 29891, 11109}}, +{4850, 16, 18895, {1, 3, 7, 3, 17, 25, 95, 145, 135, 525, 1073, 1841, 3951, 2027, 23053, 19699}}, +{4851, 16, 18914, {1, 1, 5, 3, 11, 43, 117, 67, 299, 885, 1095, 2777, 8185, 14331, 29543, 655}}, +{4852, 16, 18925, {1, 3, 7, 7, 3, 59, 127, 147, 323, 713, 99, 1179, 6395, 1821, 12673, 35587}}, +{4853, 16, 18933, {1, 3, 5, 3, 7, 11, 33, 87, 99, 967, 1443, 1585, 6215, 15125, 30747, 21513}}, +{4854, 16, 18937, {1, 3, 7, 11, 23, 5, 91, 171, 229, 601, 833, 3157, 1691, 15081, 20607, 7643}}, +{4855, 16, 18944, {1, 1, 3, 1, 5, 1, 39, 59, 157, 7, 601, 2079, 3045, 3693, 26511, 13245}}, +{4856, 16, 18973, {1, 3, 5, 9, 9, 27, 83, 135, 185, 379, 2027, 1407, 7409, 7363, 26471, 35907}}, +{4857, 16, 19001, {1, 3, 7, 15, 29, 49, 1, 69, 383, 915, 183, 3809, 4511, 8751, 4715, 7033}}, +{4858, 16, 19012, {1, 3, 3, 3, 1, 17, 71, 233, 243, 933, 1165, 3089, 3565, 6521, 13203, 13065}}, +{4859, 16, 19016, {1, 1, 5, 9, 9, 55, 53, 129, 331, 943, 587, 2573, 2247, 15101, 4987, 62983}}, +{4860, 16, 19027, {1, 3, 1, 13, 11, 43, 45, 127, 129, 857, 669, 321, 3915, 4477, 26973, 19911}}, +{4861, 16, 19040, {1, 3, 1, 13, 15, 3, 83, 23, 13, 441, 953, 2373, 3539, 4895, 26327, 61961}}, +{4862, 16, 19074, {1, 1, 5, 13, 23, 11, 125, 83, 339, 901, 1809, 2691, 3789, 15007, 10569, 65399}}, +{4863, 16, 19085, {1, 3, 1, 1, 17, 27, 105, 199, 435, 245, 1227, 3029, 3911, 1021, 2931, 24957}}, +{4864, 16, 19093, {1, 3, 1, 11, 17, 5, 123, 39, 413, 627, 1149, 3925, 6635, 8959, 31387, 65047}}, +{4865, 16, 19100, {1, 3, 5, 1, 23, 41, 93, 217, 21, 115, 1311, 3901, 2559, 2925, 30755, 7575}}, +{4866, 16, 19107, {1, 1, 3, 9, 13, 11, 63, 171, 135, 983, 1679, 395, 7349, 5153, 26405, 40589}}, +{4867, 16, 19128, {1, 3, 7, 13, 27, 47, 53, 169, 85, 871, 1087, 619, 7399, 9719, 6349, 59211}}, +{4868, 16, 19141, {1, 3, 3, 15, 31, 45, 3, 33, 11, 879, 929, 1977, 1939, 1049, 16159, 41515}}, +{4869, 16, 19142, {1, 3, 5, 11, 9, 27, 13, 23, 127, 747, 1121, 2497, 8141, 8601, 12431, 3243}}, +{4870, 16, 19156, {1, 3, 7, 15, 23, 43, 23, 225, 283, 13, 1837, 2089, 6435, 10121, 22307, 58767}}, +{4871, 16, 19169, {1, 1, 5, 11, 17, 3, 41, 221, 143, 669, 261, 1367, 7813, 15265, 32751, 62007}}, +{4872, 16, 19176, {1, 1, 1, 1, 5, 45, 41, 161, 327, 185, 1403, 485, 2831, 10025, 12555, 47661}}, +{4873, 16, 19222, {1, 3, 7, 1, 31, 55, 87, 83, 439, 929, 653, 4095, 5443, 7361, 27801, 12979}}, +{4874, 16, 19226, {1, 3, 1, 7, 1, 57, 11, 145, 55, 269, 711, 1889, 8023, 7171, 3247, 35691}}, +{4875, 16, 19247, {1, 1, 1, 3, 15, 1, 15, 131, 479, 797, 815, 2343, 1603, 10775, 21341, 20825}}, +{4876, 16, 19259, {1, 3, 5, 9, 3, 27, 31, 117, 441, 177, 215, 3991, 3197, 8397, 19195, 3883}}, +{4877, 16, 19262, {1, 1, 5, 13, 1, 19, 13, 27, 157, 1001, 43, 251, 7997, 7495, 16515, 44287}}, +{4878, 16, 19291, {1, 1, 3, 5, 17, 57, 117, 53, 413, 905, 551, 149, 7531, 14885, 32493, 34961}}, +{4879, 16, 19309, {1, 3, 3, 7, 27, 1, 7, 13, 259, 21, 189, 451, 6171, 3603, 12053, 45619}}, +{4880, 16, 19324, {1, 1, 7, 11, 5, 41, 59, 119, 419, 93, 1399, 629, 1269, 3789, 17035, 61583}}, +{4881, 16, 19334, {1, 3, 5, 11, 1, 11, 59, 83, 473, 273, 839, 3111, 3081, 10159, 6143, 16297}}, +{4882, 16, 19338, {1, 1, 5, 15, 25, 15, 17, 63, 275, 927, 189, 89, 6595, 4399, 27201, 57205}}, +{4883, 16, 19343, {1, 1, 7, 3, 31, 17, 63, 203, 321, 655, 1751, 2985, 3291, 11567, 15135, 49747}}, +{4884, 16, 19376, {1, 3, 5, 13, 27, 25, 89, 39, 299, 833, 1269, 271, 6481, 3045, 7203, 20279}}, +{4885, 16, 19408, {1, 3, 1, 1, 29, 13, 13, 37, 33, 563, 1825, 3257, 3153, 963, 25801, 15861}}, +{4886, 16, 19413, {1, 3, 5, 11, 15, 7, 49, 117, 479, 221, 579, 2995, 1673, 14927, 2869, 35547}}, +{4887, 16, 19420, {1, 3, 1, 11, 31, 11, 77, 161, 183, 187, 1967, 3037, 4441, 10547, 1443, 8619}}, +{4888, 16, 19441, {1, 1, 3, 11, 27, 41, 83, 179, 293, 421, 1395, 1673, 6375, 9801, 14265, 18117}}, +{4889, 16, 19444, {1, 1, 3, 7, 9, 19, 55, 235, 499, 637, 1121, 3583, 8007, 3749, 20903, 6179}}, +{4890, 16, 19454, {1, 3, 7, 13, 9, 55, 125, 77, 395, 9, 2005, 2247, 1609, 6805, 13099, 26367}}, +{4891, 16, 19461, {1, 3, 5, 13, 9, 41, 49, 133, 443, 995, 209, 341, 8013, 11037, 29663, 21161}}, +{4892, 16, 19473, {1, 3, 1, 1, 1, 47, 45, 243, 161, 433, 129, 39, 4885, 8777, 6395, 16953}}, +{4893, 16, 19479, {1, 3, 3, 15, 11, 13, 41, 113, 279, 657, 763, 2411, 7115, 463, 10759, 50493}}, +{4894, 16, 19489, {1, 1, 5, 5, 31, 5, 25, 181, 385, 445, 625, 313, 4983, 11763, 6065, 63835}}, +{4895, 16, 19591, {1, 3, 3, 15, 13, 25, 103, 5, 205, 223, 1327, 73, 677, 6751, 2071, 24963}}, +{4896, 16, 19605, {1, 1, 7, 15, 21, 61, 21, 11, 47, 775, 113, 991, 1943, 1459, 18049, 45025}}, +{4897, 16, 19616, {1, 3, 3, 1, 11, 43, 27, 89, 49, 711, 173, 181, 1261, 2751, 21321, 5467}}, +{4898, 16, 19619, {1, 3, 3, 7, 17, 7, 57, 61, 87, 973, 985, 1849, 559, 7319, 11457, 46071}}, +{4899, 16, 19653, {1, 1, 1, 1, 9, 37, 99, 157, 423, 189, 1355, 3983, 6357, 10825, 26517, 45815}}, +{4900, 16, 19654, {1, 1, 3, 11, 23, 33, 57, 55, 59, 831, 339, 725, 359, 14859, 17523, 36149}}, +{4901, 16, 19681, {1, 1, 5, 5, 27, 29, 47, 147, 153, 801, 1737, 3617, 5447, 8011, 30631, 7921}}, +{4902, 16, 19711, {1, 1, 5, 1, 11, 43, 35, 105, 69, 453, 1023, 875, 6755, 6015, 12449, 50235}}, +{4903, 16, 19719, {1, 3, 1, 5, 29, 31, 43, 89, 369, 891, 1447, 353, 8103, 2555, 1197, 64005}}, +{4904, 16, 19726, {1, 3, 3, 9, 21, 33, 117, 205, 473, 289, 1699, 2361, 7083, 13001, 24127, 48611}}, +{4905, 16, 19738, {1, 3, 3, 15, 3, 23, 79, 139, 475, 511, 181, 1331, 6137, 2653, 14071, 16947}}, +{4906, 16, 19767, {1, 3, 3, 1, 11, 47, 51, 217, 305, 599, 1609, 237, 4537, 5377, 717, 13269}}, +{4907, 16, 19819, {1, 1, 7, 3, 19, 31, 1, 173, 509, 817, 785, 1223, 5585, 8911, 643, 44575}}, +{4908, 16, 19864, {1, 1, 3, 11, 5, 11, 31, 129, 269, 369, 1833, 2885, 441, 11517, 2323, 26735}}, +{4909, 16, 19867, {1, 1, 5, 9, 7, 51, 31, 21, 5, 157, 541, 2939, 4569, 1679, 17467, 27995}}, +{4910, 16, 19885, {1, 1, 7, 3, 21, 33, 85, 213, 41, 851, 1947, 3205, 5065, 6079, 30789, 63677}}, +{4911, 16, 19894, {1, 1, 5, 3, 9, 53, 3, 179, 157, 407, 537, 1193, 4645, 13791, 28153, 11349}}, +{4912, 16, 19900, {1, 1, 7, 13, 25, 61, 9, 151, 263, 143, 1583, 2859, 6617, 8861, 4163, 40695}}, +{4913, 16, 19903, {1, 1, 1, 1, 7, 25, 19, 207, 335, 1019, 1919, 3893, 831, 12421, 4667, 38967}}, +{4914, 16, 19941, {1, 3, 5, 3, 5, 51, 81, 9, 425, 333, 451, 2569, 2771, 12145, 26065, 14385}}, +{4915, 16, 19951, {1, 1, 3, 7, 3, 49, 17, 147, 327, 331, 1197, 7, 3703, 15247, 9723, 52819}}, +{4916, 16, 19959, {1, 3, 3, 7, 27, 21, 117, 229, 255, 603, 195, 1049, 6243, 13593, 14553, 8267}}, +{4917, 16, 19966, {1, 1, 5, 15, 9, 53, 1, 187, 79, 151, 321, 1883, 6105, 13879, 8201, 53213}}, +{4918, 16, 20009, {1, 1, 1, 7, 21, 27, 103, 147, 351, 901, 1927, 2145, 2685, 453, 15173, 7371}}, +{4919, 16, 20018, {1, 1, 3, 5, 21, 27, 125, 77, 395, 27, 827, 3617, 6033, 1511, 29461, 18907}}, +{4920, 16, 20020, {1, 3, 5, 3, 3, 27, 75, 129, 441, 831, 1213, 2499, 5829, 12181, 7991, 58167}}, +{4921, 16, 20038, {1, 1, 1, 9, 3, 33, 85, 135, 45, 405, 1731, 551, 1251, 7895, 3975, 41621}}, +{4922, 16, 20049, {1, 3, 5, 7, 19, 19, 25, 7, 477, 569, 1089, 2705, 6157, 10279, 14029, 36229}}, +{4923, 16, 20066, {1, 3, 7, 3, 5, 19, 99, 137, 67, 361, 2021, 2891, 1957, 14961, 22673, 45707}}, +{4924, 16, 20108, {1, 3, 7, 1, 21, 11, 81, 225, 151, 235, 1761, 3875, 7427, 11213, 27023, 17945}}, +{4925, 16, 20130, {1, 1, 7, 1, 3, 1, 3, 123, 39, 769, 1467, 1907, 7833, 2099, 19, 54653}}, +{4926, 16, 20132, {1, 1, 1, 3, 25, 35, 33, 111, 407, 497, 1527, 3999, 3083, 6221, 8319, 56959}}, +{4927, 16, 20167, {1, 1, 3, 15, 21, 49, 113, 11, 191, 801, 1835, 3413, 3379, 13129, 3655, 23885}}, +{4928, 16, 20219, {1, 3, 1, 5, 21, 57, 87, 133, 409, 325, 569, 2099, 8143, 315, 23287, 21905}}, +{4929, 16, 20227, {1, 1, 5, 5, 21, 43, 25, 169, 265, 123, 81, 2683, 6137, 7341, 16383, 26435}}, +{4930, 16, 20263, {1, 3, 1, 5, 23, 17, 125, 173, 3, 829, 693, 751, 8021, 3701, 32643, 35405}}, +{4931, 16, 20267, {1, 1, 3, 1, 31, 13, 1, 195, 435, 487, 961, 1681, 1233, 6001, 3113, 29515}}, +{4932, 16, 20272, {1, 1, 7, 5, 9, 41, 81, 137, 257, 337, 1837, 145, 4191, 6313, 9991, 25541}}, +{4933, 16, 20289, {1, 1, 5, 13, 29, 13, 1, 117, 501, 991, 571, 793, 1433, 6005, 19, 61135}}, +{4934, 16, 20296, {1, 1, 7, 1, 9, 43, 65, 69, 297, 331, 1777, 1843, 6477, 13943, 1301, 51001}}, +{4935, 16, 20307, {1, 1, 1, 3, 7, 35, 23, 211, 33, 649, 255, 1831, 635, 9965, 16679, 14531}}, +{4936, 16, 20316, {1, 1, 1, 13, 23, 57, 113, 247, 321, 401, 1761, 4001, 1823, 14457, 5251, 4965}}, +{4937, 16, 20323, {1, 1, 5, 5, 31, 5, 53, 103, 297, 575, 1577, 2217, 977, 14415, 16953, 14793}}, +{4938, 16, 20335, {1, 1, 5, 7, 9, 19, 25, 29, 121, 563, 1707, 901, 6167, 10799, 11897, 31187}}, +{4939, 16, 20344, {1, 1, 5, 9, 17, 39, 89, 29, 251, 259, 411, 819, 6037, 4601, 11481, 46141}}, +{4940, 16, 20354, {1, 1, 1, 15, 23, 9, 65, 95, 189, 93, 1485, 2417, 5183, 5513, 26623, 42637}}, +{4941, 16, 20360, {1, 1, 5, 5, 3, 3, 113, 161, 463, 225, 1089, 2023, 2341, 14931, 28097, 56365}}, +{4942, 16, 20368, {1, 1, 5, 9, 9, 3, 109, 141, 27, 473, 107, 4023, 3279, 7595, 13289, 35649}}, +{4943, 16, 20390, {1, 1, 5, 3, 9, 37, 73, 153, 487, 57, 2035, 3583, 239, 2183, 10903, 171}}, +{4944, 16, 20402, {1, 3, 3, 15, 23, 39, 87, 217, 451, 597, 1817, 2883, 145, 11341, 16015, 16765}}, +{4945, 16, 20413, {1, 1, 7, 5, 19, 61, 45, 37, 473, 883, 277, 2801, 13, 7021, 3851, 53223}}, +{4946, 16, 20425, {1, 3, 3, 9, 1, 35, 97, 237, 279, 541, 1911, 661, 7603, 8183, 22071, 37317}}, +{4947, 16, 20428, {1, 3, 3, 11, 11, 63, 101, 71, 227, 259, 1545, 2779, 3859, 4859, 18957, 31749}}, +{4948, 16, 20434, {1, 3, 3, 1, 27, 29, 91, 215, 381, 607, 1701, 1709, 247, 12403, 29943, 59533}}, +{4949, 16, 20443, {1, 1, 7, 1, 11, 23, 47, 141, 37, 881, 1443, 3921, 3281, 7417, 1549, 50653}}, +{4950, 16, 20488, {1, 1, 7, 11, 23, 61, 17, 39, 373, 871, 1107, 1875, 1419, 3981, 1333, 11485}}, +{4951, 16, 20502, {1, 1, 7, 11, 21, 51, 127, 145, 129, 425, 1263, 1989, 699, 7317, 24827, 15049}}, +{4952, 16, 20505, {1, 1, 1, 11, 9, 59, 59, 67, 329, 841, 905, 467, 1905, 895, 29711, 25585}}, +{4953, 16, 20535, {1, 1, 1, 15, 3, 39, 11, 205, 297, 383, 445, 2139, 2935, 2399, 22237, 20355}}, +{4954, 16, 20541, {1, 3, 7, 7, 17, 9, 17, 205, 369, 1019, 1703, 755, 5507, 14749, 16461, 14519}}, +{4955, 16, 20554, {1, 3, 7, 3, 5, 31, 97, 35, 43, 249, 773, 4033, 6085, 1241, 24743, 22415}}, +{4956, 16, 20577, {1, 3, 7, 3, 17, 11, 45, 203, 251, 669, 1463, 1897, 7913, 2315, 30307, 15431}}, +{4957, 16, 20583, {1, 1, 5, 5, 7, 53, 83, 13, 1, 841, 423, 1059, 3951, 14209, 11113, 13931}}, +{4958, 16, 20602, {1, 3, 3, 5, 5, 15, 11, 71, 237, 553, 829, 3653, 4991, 1003, 8353, 52173}}, +{4959, 16, 20611, {1, 3, 3, 9, 27, 39, 83, 137, 315, 883, 1155, 3541, 3815, 10633, 13277, 20269}}, +{4960, 16, 20614, {1, 3, 3, 15, 13, 55, 43, 19, 345, 351, 1117, 1747, 1949, 3195, 12241, 52441}}, +{4961, 16, 20626, {1, 1, 3, 5, 1, 11, 113, 117, 37, 103, 1681, 3269, 1659, 14779, 30479, 31123}}, +{4962, 16, 20628, {1, 3, 7, 13, 1, 63, 9, 63, 65, 737, 785, 1713, 8123, 10053, 29871, 17647}}, +{4963, 16, 20635, {1, 1, 3, 5, 17, 45, 71, 37, 283, 145, 1927, 75, 7355, 4681, 2777, 31465}}, +{4964, 16, 20642, {1, 1, 3, 7, 21, 19, 113, 89, 67, 751, 99, 421, 201, 6345, 9473, 39849}}, +{4965, 16, 20674, {1, 1, 5, 11, 31, 57, 75, 79, 393, 745, 1435, 3039, 1175, 983, 923, 42867}}, +{4966, 16, 20716, {1, 1, 5, 9, 31, 47, 31, 61, 85, 651, 1733, 3973, 1979, 7223, 13817, 30593}}, +{4967, 16, 20734, {1, 1, 1, 11, 31, 21, 23, 177, 401, 55, 537, 3775, 3241, 15157, 11849, 15629}}, +{4968, 16, 20765, {1, 1, 1, 13, 31, 53, 79, 57, 35, 617, 61, 89, 6917, 6045, 23879, 45485}}, +{4969, 16, 20801, {1, 3, 7, 7, 3, 43, 57, 243, 107, 321, 273, 2171, 2069, 6171, 29181, 8281}}, +{4970, 16, 20804, {1, 1, 1, 11, 3, 27, 51, 57, 81, 795, 1673, 2601, 7335, 16243, 863, 20663}}, +{4971, 16, 20808, {1, 1, 5, 9, 7, 19, 31, 87, 509, 899, 1133, 1609, 2163, 7595, 10523, 43181}}, +{4972, 16, 20831, {1, 1, 1, 7, 21, 53, 103, 43, 507, 317, 685, 1329, 7057, 7275, 2277, 28271}}, +{4973, 16, 20832, {1, 1, 7, 7, 3, 35, 81, 81, 261, 587, 1571, 2771, 4653, 6517, 25101, 56753}}, +{4974, 16, 20862, {1, 3, 1, 11, 17, 61, 29, 137, 7, 929, 393, 2513, 2423, 5457, 6285, 12525}}, +{4975, 16, 20877, {1, 3, 1, 9, 25, 63, 17, 45, 439, 591, 273, 877, 7741, 8381, 32277, 24635}}, +{4976, 16, 20880, {1, 3, 1, 5, 19, 11, 17, 175, 297, 77, 961, 3331, 5193, 14347, 12713, 32067}}, +{4977, 16, 20885, {1, 1, 5, 11, 3, 17, 13, 21, 219, 653, 1279, 1657, 7659, 14459, 27661, 38093}}, +{4978, 16, 20889, {1, 3, 7, 7, 29, 17, 67, 35, 451, 91, 919, 3163, 7459, 14971, 4317, 42503}}, +{4979, 16, 20905, {1, 3, 3, 15, 7, 61, 69, 211, 349, 97, 911, 503, 3903, 12327, 11049, 29387}}, +{4980, 16, 20914, {1, 1, 7, 3, 5, 7, 63, 237, 387, 931, 693, 1143, 6545, 8529, 25217, 53087}}, +{4981, 16, 20967, {1, 1, 5, 7, 1, 13, 21, 169, 259, 289, 437, 649, 4905, 15261, 29997, 34043}}, +{4982, 16, 21028, {1, 1, 1, 9, 25, 13, 19, 229, 29, 213, 1941, 1501, 3463, 15761, 15635, 39687}}, +{4983, 16, 21031, {1, 1, 5, 7, 13, 29, 101, 57, 483, 913, 1025, 2139, 4327, 7847, 12455, 41797}}, +{4984, 16, 21043, {1, 1, 3, 11, 17, 27, 97, 79, 411, 9, 1797, 3721, 5291, 859, 8889, 6151}}, +{4985, 16, 21052, {1, 1, 1, 5, 17, 61, 45, 187, 157, 301, 1017, 1507, 6031, 4271, 32593, 23739}}, +{4986, 16, 21058, {1, 1, 3, 11, 31, 39, 7, 169, 15, 799, 1585, 2055, 4683, 13247, 23743, 50399}}, +{4987, 16, 21087, {1, 1, 1, 9, 25, 37, 15, 39, 339, 383, 1153, 1211, 5745, 15249, 26021, 39871}}, +{4988, 16, 21088, {1, 1, 3, 13, 17, 51, 27, 137, 231, 877, 309, 3633, 2575, 12259, 2743, 14781}}, +{4989, 16, 21093, {1, 1, 5, 7, 5, 33, 95, 19, 37, 829, 1489, 3525, 3887, 8277, 21867, 3581}}, +{4990, 16, 21106, {1, 1, 1, 15, 11, 33, 99, 213, 365, 549, 1603, 777, 3787, 12209, 14999, 50607}}, +{4991, 16, 21108, {1, 3, 1, 9, 23, 25, 57, 147, 73, 285, 1229, 1763, 4579, 14771, 4003, 38197}}, +{4992, 16, 21118, {1, 1, 5, 1, 15, 55, 25, 209, 135, 895, 311, 139, 2445, 6903, 12129, 27907}}, +{4993, 16, 21122, {1, 1, 5, 7, 23, 29, 33, 135, 325, 517, 2021, 1721, 4235, 2363, 12905, 18811}}, +{4994, 16, 21131, {1, 1, 1, 9, 3, 19, 69, 29, 157, 787, 1969, 3711, 8179, 5691, 4059, 25541}}, +{4995, 16, 21139, {1, 1, 5, 15, 1, 61, 11, 195, 317, 13, 923, 2149, 4001, 12843, 27109, 30625}}, +{4996, 16, 21141, {1, 3, 1, 7, 3, 13, 45, 187, 445, 859, 53, 3227, 4381, 8273, 32699, 48719}}, +{4997, 16, 21146, {1, 1, 7, 7, 21, 19, 47, 101, 119, 311, 577, 3309, 4585, 12109, 15153, 22915}}, +{4998, 16, 21162, {1, 3, 5, 15, 21, 39, 15, 211, 349, 237, 1873, 3333, 7837, 12811, 14321, 20227}}, +{4999, 16, 21164, {1, 1, 5, 5, 19, 47, 15, 239, 23, 763, 537, 1477, 2231, 10885, 19487, 47385}}, +{5000, 16, 21184, {1, 1, 3, 1, 19, 37, 67, 85, 11, 817, 869, 2249, 4111, 12411, 10405, 20055}}, +{5001, 16, 21208, {1, 1, 3, 3, 1, 41, 85, 137, 91, 369, 1863, 759, 303, 15859, 8063, 12811}}, +{5002, 16, 21211, {1, 3, 1, 11, 23, 1, 11, 219, 201, 573, 1573, 619, 2959, 6485, 7483, 46099}}, +{5003, 16, 21213, {1, 3, 3, 9, 13, 9, 9, 255, 47, 375, 409, 1435, 1665, 14967, 3247, 18193}}, +{5004, 16, 21230, {1, 1, 1, 5, 9, 61, 121, 173, 51, 415, 1621, 3947, 1379, 847, 23187, 39259}}, +{5005, 16, 21270, {1, 1, 1, 7, 3, 19, 95, 59, 187, 453, 1533, 445, 2699, 4817, 25983, 50925}}, +{5006, 16, 21276, {1, 3, 5, 13, 25, 25, 33, 5, 497, 1, 535, 1653, 6541, 10939, 17721, 43829}}, +{5007, 16, 21285, {1, 3, 7, 11, 9, 59, 115, 127, 85, 505, 541, 3243, 5853, 12673, 25275, 39577}}, +{5008, 16, 21297, {1, 3, 7, 1, 17, 25, 83, 127, 225, 295, 1823, 2051, 847, 4249, 13763, 5723}}, +{5009, 16, 21304, {1, 1, 1, 5, 3, 63, 39, 131, 191, 983, 119, 3287, 3335, 7969, 31347, 39439}}, +{5010, 16, 21310, {1, 3, 7, 9, 19, 31, 19, 91, 35, 677, 1229, 1371, 6497, 3315, 15239, 54235}}, +{5011, 16, 21330, {1, 1, 1, 15, 3, 49, 113, 199, 135, 35, 709, 385, 7923, 3711, 18351, 12711}}, +{5012, 16, 21339, {1, 1, 3, 15, 31, 13, 41, 1, 183, 95, 1625, 1675, 7881, 6607, 4165, 27151}}, +{5013, 16, 21346, {1, 3, 3, 15, 21, 57, 81, 49, 5, 297, 131, 883, 1113, 2497, 32129, 39139}}, +{5014, 16, 21391, {1, 3, 5, 7, 29, 47, 101, 173, 299, 879, 143, 3341, 3929, 6797, 8753, 47963}}, +{5015, 16, 21427, {1, 3, 3, 13, 11, 39, 27, 187, 27, 763, 1515, 1903, 5897, 10061, 14595, 12713}}, +{5016, 16, 21451, {1, 3, 5, 11, 27, 35, 37, 213, 45, 867, 1591, 3083, 8123, 5045, 31703, 61487}}, +{5017, 16, 21465, {1, 1, 3, 5, 3, 31, 23, 89, 369, 371, 1165, 3673, 6821, 333, 10881, 4153}}, +{5018, 16, 21468, {1, 1, 7, 13, 1, 33, 49, 195, 223, 197, 1799, 2427, 6171, 493, 13503, 23619}}, +{5019, 16, 21471, {1, 1, 3, 9, 5, 59, 105, 215, 449, 527, 1661, 2643, 309, 11239, 11633, 63459}}, +{5020, 16, 21533, {1, 1, 3, 11, 13, 11, 15, 99, 409, 807, 1911, 883, 1323, 9037, 6401, 545}}, +{5021, 16, 21610, {1, 1, 5, 7, 7, 7, 1, 167, 353, 923, 1403, 3109, 4981, 3877, 25451, 4667}}, +{5022, 16, 21615, {1, 1, 5, 11, 11, 25, 121, 153, 111, 785, 1301, 1497, 6267, 14919, 24125, 52029}}, +{5023, 16, 21630, {1, 3, 3, 5, 29, 55, 63, 177, 305, 41, 111, 1065, 1127, 113, 2815, 12979}}, +{5024, 16, 21633, {1, 3, 5, 7, 23, 39, 17, 179, 267, 917, 511, 3923, 915, 14173, 10689, 50749}}, +{5025, 16, 21657, {1, 1, 5, 3, 9, 45, 15, 157, 495, 625, 407, 2769, 3267, 7593, 17957, 54597}}, +{5026, 16, 21658, {1, 3, 3, 11, 21, 13, 5, 207, 107, 965, 1803, 1541, 3487, 3483, 109, 26923}}, +{5027, 16, 21669, {1, 1, 5, 11, 25, 49, 99, 135, 109, 371, 1307, 1815, 1095, 2329, 27101, 52269}}, +{5028, 16, 21670, {1, 3, 5, 5, 13, 9, 109, 79, 151, 47, 311, 3873, 3645, 3773, 1083, 31599}}, +{5029, 16, 21673, {1, 3, 5, 15, 1, 9, 87, 21, 145, 583, 159, 2435, 587, 10123, 24803, 19993}}, +{5030, 16, 21701, {1, 3, 1, 1, 23, 11, 5, 45, 373, 1011, 1353, 277, 7051, 3845, 12391, 25313}}, +{5031, 16, 21719, {1, 1, 1, 9, 13, 13, 109, 251, 97, 483, 1723, 2555, 813, 9345, 11351, 44705}}, +{5032, 16, 21720, {1, 3, 5, 7, 21, 49, 63, 13, 119, 813, 1559, 983, 499, 15159, 24163, 59903}}, +{5033, 16, 21747, {1, 1, 3, 5, 27, 33, 27, 165, 207, 693, 1401, 1357, 7637, 337, 10163, 43273}}, +{5034, 16, 21819, {1, 1, 5, 13, 29, 7, 71, 187, 1, 655, 1829, 2645, 6969, 5435, 28415, 33199}}, +{5035, 16, 21839, {1, 1, 1, 13, 17, 21, 13, 141, 41, 267, 1165, 1893, 3455, 10737, 16693, 33065}}, +{5036, 16, 21854, {1, 1, 5, 1, 7, 27, 7, 67, 107, 11, 763, 2529, 3023, 15745, 17023, 51911}}, +{5037, 16, 21857, {1, 3, 3, 3, 7, 57, 123, 249, 309, 511, 1655, 1379, 725, 7325, 20261, 65039}}, +{5038, 16, 21864, {1, 1, 5, 11, 3, 27, 23, 27, 285, 771, 2017, 1727, 4847, 2665, 30655, 47625}}, +{5039, 16, 21882, {1, 3, 7, 7, 17, 3, 93, 133, 427, 1021, 1135, 341, 6711, 11713, 24157, 1561}}, +{5040, 16, 21900, {1, 1, 3, 7, 15, 55, 11, 247, 65, 115, 1967, 535, 841, 15131, 28381, 31337}}, +{5041, 16, 21903, {1, 3, 1, 7, 9, 45, 73, 151, 127, 125, 767, 2003, 6893, 3875, 451, 30275}}, +{5042, 16, 21928, {1, 1, 7, 3, 5, 55, 127, 123, 163, 763, 1165, 1637, 6267, 7215, 23403, 20961}}, +{5043, 16, 21931, {1, 1, 1, 13, 1, 21, 65, 141, 369, 413, 1675, 27, 7357, 6929, 18083, 829}}, +{5044, 16, 21946, {1, 3, 5, 13, 1, 17, 97, 107, 249, 931, 47, 3537, 2245, 9827, 13673, 23217}}, +{5045, 16, 21971, {1, 1, 1, 11, 13, 19, 43, 31, 51, 727, 1001, 927, 771, 11853, 5761, 60537}}, +{5046, 16, 21974, {1, 3, 1, 7, 23, 27, 115, 5, 201, 431, 1021, 585, 6069, 12511, 6129, 2105}}, +{5047, 16, 21978, {1, 1, 3, 11, 3, 25, 75, 129, 389, 131, 223, 2263, 5377, 5561, 15633, 39527}}, +{5048, 16, 21993, {1, 3, 3, 1, 27, 43, 101, 55, 319, 549, 1971, 2255, 353, 93, 25661, 59077}}, +{5049, 16, 21994, {1, 1, 5, 11, 29, 57, 27, 135, 341, 913, 1637, 1781, 457, 11293, 1013, 53863}}, +{5050, 16, 22030, {1, 1, 1, 11, 3, 51, 79, 251, 443, 651, 393, 3635, 7397, 5443, 4225, 991}}, +{5051, 16, 22035, {1, 3, 7, 13, 31, 9, 3, 109, 427, 735, 891, 2789, 2169, 6459, 355, 43177}}, +{5052, 16, 22063, {1, 3, 3, 3, 13, 7, 93, 195, 293, 37, 75, 2467, 933, 8017, 9925, 61397}}, +{5053, 16, 22068, {1, 1, 5, 7, 25, 15, 69, 199, 161, 769, 387, 1491, 4553, 4173, 25631, 37089}}, +{5054, 16, 22086, {1, 3, 1, 3, 7, 59, 53, 93, 103, 413, 531, 887, 6149, 2901, 22611, 27135}}, +{5055, 16, 22104, {1, 1, 1, 13, 31, 39, 71, 215, 385, 821, 1603, 3043, 4967, 10953, 11543, 64433}}, +{5056, 16, 22119, {1, 3, 1, 7, 7, 63, 5, 143, 1, 339, 1165, 3809, 4257, 12879, 21581, 21307}}, +{5057, 16, 22153, {1, 1, 1, 15, 1, 35, 67, 227, 277, 879, 513, 3423, 6153, 11573, 12809, 34335}}, +{5058, 16, 22168, {1, 3, 7, 9, 9, 39, 47, 17, 101, 179, 631, 1307, 481, 871, 16807, 39811}}, +{5059, 16, 22183, {1, 3, 1, 1, 13, 25, 53, 179, 285, 267, 407, 3781, 3267, 3545, 525, 15733}}, +{5060, 16, 22189, {1, 1, 1, 13, 11, 35, 45, 181, 319, 767, 283, 3021, 5405, 403, 3587, 7291}}, +{5061, 16, 22204, {1, 1, 7, 3, 5, 9, 67, 129, 101, 117, 267, 1925, 1209, 13095, 7123, 62941}}, +{5062, 16, 22230, {1, 1, 7, 3, 5, 63, 109, 199, 95, 421, 193, 3519, 6551, 955, 1679, 16627}}, +{5063, 16, 22240, {1, 1, 5, 13, 1, 47, 71, 157, 343, 653, 981, 1335, 3737, 7185, 28861, 22883}}, +{5064, 16, 22246, {1, 1, 3, 15, 7, 63, 7, 81, 481, 5, 1159, 1361, 4167, 2575, 7437, 16917}}, +{5065, 16, 22269, {1, 3, 7, 1, 27, 17, 61, 193, 317, 841, 1149, 955, 5161, 4275, 1955, 15665}}, +{5066, 16, 22282, {1, 1, 1, 7, 19, 63, 77, 57, 367, 237, 579, 3701, 5763, 4951, 24151, 45215}}, +{5067, 16, 22302, {1, 1, 5, 11, 29, 7, 119, 155, 431, 999, 757, 2433, 5811, 3709, 29573, 23639}}, +{5068, 16, 22330, {1, 3, 3, 3, 15, 35, 125, 13, 275, 507, 1719, 1537, 2349, 12909, 8107, 9845}}, +{5069, 16, 22347, {1, 3, 1, 13, 27, 27, 11, 69, 15, 1017, 207, 625, 809, 2921, 8939, 30293}}, +{5070, 16, 22349, {1, 1, 7, 11, 31, 51, 113, 193, 69, 845, 73, 919, 3523, 3987, 23665, 36527}}, +{5071, 16, 22383, {1, 3, 7, 11, 21, 31, 103, 29, 5, 81, 1081, 3847, 4697, 8857, 30769, 40053}}, +{5072, 16, 22386, {1, 1, 1, 1, 5, 11, 5, 169, 13, 899, 769, 3823, 5405, 5991, 3821, 27767}}, +{5073, 16, 22432, {1, 1, 3, 15, 1, 35, 9, 83, 23, 701, 1807, 1681, 4009, 127, 31751, 38059}}, +{5074, 16, 22450, {1, 3, 3, 7, 9, 61, 73, 111, 193, 607, 2001, 413, 3751, 16337, 16597, 23959}}, +{5075, 16, 22473, {1, 1, 7, 7, 21, 29, 53, 253, 187, 507, 1191, 3521, 463, 2167, 23785, 19867}}, +{5076, 16, 22487, {1, 3, 5, 3, 19, 43, 101, 93, 257, 61, 1589, 3883, 1975, 7283, 5253, 23257}}, +{5077, 16, 22527, {1, 3, 1, 9, 1, 63, 25, 101, 377, 571, 1701, 3385, 243, 12051, 32619, 10459}}, +{5078, 16, 22537, {1, 1, 1, 5, 17, 11, 37, 197, 205, 879, 625, 959, 7389, 7857, 20615, 20405}}, +{5079, 16, 22557, {1, 3, 5, 5, 27, 41, 9, 109, 197, 623, 1045, 63, 7977, 11355, 28613, 5131}}, +{5080, 16, 22561, {1, 1, 5, 11, 5, 29, 27, 85, 131, 247, 433, 3981, 2677, 15415, 869, 6045}}, +{5081, 16, 22568, {1, 3, 1, 13, 9, 49, 25, 79, 135, 719, 93, 631, 2149, 5929, 29833, 38673}}, +{5082, 16, 22573, {1, 3, 7, 11, 15, 13, 37, 233, 227, 205, 1579, 65, 1429, 13499, 26355, 63821}}, +{5083, 16, 22591, {1, 1, 5, 11, 21, 19, 7, 183, 409, 275, 899, 3665, 6207, 849, 24339, 1617}}, +{5084, 16, 22593, {1, 3, 1, 3, 21, 61, 23, 125, 463, 489, 1265, 2975, 3907, 11881, 7533, 43331}}, +{5085, 16, 22605, {1, 3, 1, 15, 15, 51, 83, 31, 175, 47, 1791, 3651, 6735, 5013, 723, 24141}}, +{5086, 16, 22620, {1, 3, 1, 9, 17, 41, 57, 43, 469, 911, 1251, 2105, 3133, 3437, 10097, 26687}}, +{5087, 16, 22627, {1, 1, 3, 3, 9, 9, 125, 201, 141, 943, 1509, 1239, 6575, 8707, 363, 23309}}, +{5088, 16, 22636, {1, 1, 5, 3, 19, 37, 43, 141, 413, 149, 1449, 1003, 4473, 12395, 4101, 61201}}, +{5089, 16, 22647, {1, 1, 5, 11, 17, 37, 41, 33, 57, 627, 325, 1895, 1773, 1339, 24859, 587}}, +{5090, 16, 22697, {1, 1, 1, 3, 5, 49, 127, 109, 361, 853, 1437, 3451, 4031, 5379, 27463, 47425}}, +{5091, 16, 22715, {1, 3, 5, 7, 9, 57, 71, 219, 347, 791, 797, 73, 6241, 12717, 24429, 40977}}, +{5092, 16, 22725, {1, 1, 5, 9, 27, 43, 43, 227, 433, 413, 1109, 2589, 4535, 8947, 8121, 43479}}, +{5093, 16, 22732, {1, 3, 7, 1, 9, 21, 81, 23, 157, 313, 197, 2845, 8059, 15957, 28657, 28093}}, +{5094, 16, 22749, {1, 3, 1, 11, 15, 17, 115, 27, 421, 743, 1885, 2089, 5011, 7137, 7395, 36853}}, +{5095, 16, 22766, {1, 1, 5, 15, 5, 53, 69, 255, 63, 29, 1011, 3201, 1467, 15441, 26255, 62895}}, +{5096, 16, 22768, {1, 3, 1, 11, 3, 47, 35, 195, 149, 849, 1317, 439, 3539, 845, 15295, 42183}}, +{5097, 16, 22771, {1, 1, 5, 15, 15, 37, 67, 105, 495, 985, 1777, 3137, 8039, 11795, 29771, 35045}}, +{5098, 16, 22788, {1, 1, 3, 1, 25, 17, 67, 227, 229, 419, 1319, 3325, 1293, 8585, 28425, 34013}}, +{5099, 16, 22797, {1, 1, 5, 1, 27, 51, 71, 197, 375, 407, 259, 4005, 3309, 5475, 13421, 60065}}, +{5100, 16, 22822, {1, 3, 1, 5, 11, 17, 89, 45, 311, 425, 1629, 773, 7267, 8699, 27547, 37081}}, +{5101, 16, 22828, {1, 3, 1, 7, 9, 25, 101, 105, 489, 217, 103, 1959, 4049, 5793, 31201, 11947}}, +{5102, 16, 22851, {1, 1, 5, 5, 19, 3, 63, 55, 431, 49, 273, 3253, 5357, 13801, 9735, 21883}}, +{5103, 16, 22888, {1, 1, 1, 11, 13, 3, 75, 201, 477, 201, 1875, 657, 6217, 8651, 2207, 16421}}, +{5104, 16, 22893, {1, 1, 5, 13, 5, 31, 75, 113, 25, 171, 1147, 3089, 7095, 4405, 26155, 42323}}, +{5105, 16, 22901, {1, 3, 5, 5, 5, 49, 99, 171, 445, 1023, 1793, 3159, 5809, 12509, 31723, 60411}}, +{5106, 16, 22902, {1, 3, 7, 3, 23, 51, 111, 27, 103, 159, 433, 293, 1741, 3599, 4067, 40667}}, +{5107, 16, 22921, {1, 3, 3, 13, 11, 9, 11, 21, 453, 35, 1649, 1261, 3539, 14081, 5581, 57105}}, +{5108, 16, 22929, {1, 3, 3, 13, 7, 9, 113, 87, 391, 647, 223, 1345, 4481, 9855, 20129, 10807}}, +{5109, 16, 22946, {1, 3, 7, 15, 3, 61, 15, 117, 97, 495, 985, 819, 181, 1363, 13111, 35857}}, +{5110, 16, 22948, {1, 3, 1, 9, 3, 27, 125, 151, 217, 961, 707, 2647, 5307, 621, 12581, 13941}}, +{5111, 16, 22951, {1, 3, 1, 11, 17, 37, 35, 211, 179, 29, 627, 3623, 6429, 16237, 24699, 14385}}, +{5112, 16, 22958, {1, 3, 3, 9, 3, 57, 35, 3, 85, 1017, 1739, 2241, 7297, 15637, 27085, 41237}}, +{5113, 16, 22975, {1, 1, 3, 7, 7, 13, 5, 85, 505, 51, 409, 867, 677, 12451, 13633, 47883}}, +{5114, 16, 22983, {1, 3, 5, 13, 5, 51, 37, 79, 237, 133, 1331, 3263, 349, 4971, 16067, 62485}}, +{5115, 16, 22990, {1, 1, 7, 11, 29, 41, 101, 219, 391, 1023, 1681, 3163, 4071, 14665, 11041, 14523}}, +{5116, 16, 23032, {1, 1, 3, 3, 13, 55, 37, 119, 471, 665, 1315, 3071, 5993, 12005, 13549, 63425}}, +{5117, 16, 23047, {1, 3, 5, 7, 5, 25, 59, 71, 77, 841, 91, 1841, 6997, 1139, 11843, 52209}}, +{5118, 16, 23053, {1, 3, 7, 15, 17, 25, 85, 173, 373, 459, 1713, 1055, 5337, 9921, 15213, 44235}}, +{5119, 16, 23054, {1, 1, 1, 15, 7, 11, 89, 237, 131, 565, 745, 457, 4447, 5581, 11053, 43819}}, +{5120, 16, 23082, {1, 3, 5, 1, 29, 21, 11, 7, 125, 851, 2023, 3321, 1885, 67, 8809, 43291}}, +{5121, 16, 23095, {1, 3, 5, 11, 11, 43, 41, 97, 353, 813, 85, 2453, 769, 11709, 4697, 2849}}, +{5122, 16, 23116, {1, 1, 5, 5, 21, 29, 87, 179, 157, 981, 129, 2139, 6841, 5479, 27111, 20749}}, +{5123, 16, 23197, {1, 1, 3, 9, 31, 59, 61, 15, 423, 33, 467, 1817, 6535, 7341, 31061, 20937}}, +{5124, 16, 23221, {1, 1, 7, 3, 1, 21, 127, 135, 321, 699, 727, 3079, 753, 3971, 5611, 28345}}, +{5125, 16, 23257, {1, 3, 7, 11, 27, 3, 39, 63, 389, 433, 43, 1443, 6241, 10769, 20485, 58823}}, +{5126, 16, 23260, {1, 1, 1, 11, 3, 13, 5, 57, 503, 707, 677, 3355, 6691, 8841, 20041, 11867}}, +{5127, 16, 23263, {1, 1, 3, 11, 31, 39, 107, 221, 81, 125, 1439, 2429, 2109, 3931, 31007, 10915}}, +{5128, 16, 23267, {1, 3, 3, 9, 17, 53, 13, 121, 127, 15, 1825, 1909, 5951, 13503, 31565, 56163}}, +{5129, 16, 23282, {1, 1, 1, 1, 19, 55, 3, 153, 385, 277, 1297, 3655, 6027, 3057, 11341, 46989}}, +{5130, 16, 23284, {1, 1, 5, 9, 3, 55, 37, 223, 353, 141, 1917, 3827, 2255, 7617, 10971, 10641}}, +{5131, 16, 23314, {1, 3, 7, 9, 29, 41, 71, 19, 137, 243, 2047, 395, 6981, 15887, 9479, 60199}}, +{5132, 16, 23326, {1, 1, 1, 9, 17, 43, 51, 191, 405, 727, 485, 987, 1855, 15801, 22529, 10165}}, +{5133, 16, 23335, {1, 3, 1, 7, 27, 31, 69, 255, 153, 793, 1353, 1981, 83, 11387, 6747, 23379}}, +{5134, 16, 23368, {1, 1, 5, 5, 31, 49, 83, 157, 63, 647, 1367, 3995, 5899, 8429, 18317, 3471}}, +{5135, 16, 23373, {1, 3, 5, 13, 19, 15, 99, 13, 143, 887, 529, 2855, 573, 9799, 13585, 59263}}, +{5136, 16, 23401, {1, 3, 5, 3, 13, 47, 103, 87, 11, 381, 397, 899, 71, 15539, 13005, 38297}}, +{5137, 16, 23415, {1, 1, 1, 3, 1, 53, 45, 141, 1, 941, 261, 3291, 5177, 9843, 6309, 62799}}, +{5138, 16, 23432, {1, 1, 5, 9, 29, 31, 107, 57, 135, 229, 1147, 247, 265, 12757, 21365, 7219}}, +{5139, 16, 23476, {1, 1, 1, 3, 1, 49, 55, 247, 495, 449, 141, 1349, 7393, 2589, 23587, 1097}}, +{5140, 16, 23479, {1, 3, 5, 1, 9, 11, 73, 153, 89, 575, 1805, 137, 435, 3687, 32169, 24275}}, +{5141, 16, 23497, {1, 1, 7, 15, 25, 61, 51, 21, 109, 139, 611, 3907, 6721, 5081, 6665, 51463}}, +{5142, 16, 23505, {1, 1, 1, 9, 13, 23, 59, 203, 33, 1013, 1533, 291, 6171, 15463, 8581, 9497}}, +{5143, 16, 23508, {1, 3, 3, 9, 7, 25, 51, 189, 49, 265, 1163, 1141, 2467, 7839, 7083, 65527}}, +{5144, 16, 23531, {1, 1, 3, 9, 19, 33, 77, 9, 181, 919, 623, 1521, 7853, 2199, 24115, 60607}}, +{5145, 16, 23536, {1, 1, 3, 11, 9, 11, 27, 57, 355, 313, 151, 3391, 4869, 12541, 30031, 29455}}, +{5146, 16, 23542, {1, 3, 5, 9, 17, 13, 91, 123, 235, 841, 1113, 1451, 501, 3863, 32483, 9445}}, +{5147, 16, 23565, {1, 3, 7, 3, 13, 25, 87, 243, 449, 293, 1279, 3571, 2693, 13459, 5895, 38127}}, +{5148, 16, 23573, {1, 1, 3, 15, 27, 61, 7, 57, 255, 971, 131, 2585, 2187, 7191, 17779, 34587}}, +{5149, 16, 23590, {1, 3, 3, 7, 23, 29, 55, 41, 463, 873, 1781, 2851, 4731, 9819, 25587, 32199}}, +{5150, 16, 23593, {1, 1, 1, 9, 29, 39, 25, 143, 171, 141, 223, 467, 4417, 9575, 23159, 33819}}, +{5151, 16, 23604, {1, 1, 5, 13, 19, 61, 19, 75, 25, 361, 585, 1627, 2231, 1831, 24885, 37917}}, +{5152, 16, 23621, {1, 3, 7, 7, 23, 19, 59, 55, 323, 55, 143, 131, 27, 15363, 26423, 43963}}, +{5153, 16, 23622, {1, 1, 5, 5, 25, 9, 33, 17, 427, 481, 315, 3999, 4757, 4545, 7695, 56733}}, +{5154, 16, 23636, {1, 3, 5, 13, 5, 59, 45, 117, 115, 263, 1441, 3307, 1085, 3875, 25869, 19725}}, +{5155, 16, 23662, {1, 3, 3, 15, 13, 39, 31, 243, 293, 345, 343, 1911, 6123, 12577, 32081, 59993}}, +{5156, 16, 23667, {1, 3, 5, 13, 17, 37, 105, 201, 205, 929, 435, 1467, 8063, 6963, 13709, 53275}}, +{5157, 16, 23703, {1, 3, 7, 15, 31, 3, 65, 221, 191, 413, 427, 2579, 377, 2793, 26943, 61299}}, +{5158, 16, 23725, {1, 3, 5, 3, 11, 61, 75, 107, 53, 689, 1845, 859, 333, 889, 27607, 48795}}, +{5159, 16, 23734, {1, 1, 5, 7, 1, 11, 37, 181, 323, 187, 1511, 25, 5517, 11957, 7093, 429}}, +{5160, 16, 23738, {1, 3, 3, 1, 25, 31, 125, 139, 433, 583, 683, 587, 5389, 1225, 26047, 18717}}, +{5161, 16, 23752, {1, 3, 1, 15, 23, 33, 23, 147, 279, 513, 157, 4023, 2669, 7543, 2111, 9191}}, +{5162, 16, 23800, {1, 3, 1, 1, 5, 39, 55, 127, 257, 649, 347, 3001, 2215, 15579, 29665, 10337}}, +{5163, 16, 23803, {1, 1, 1, 15, 19, 55, 105, 183, 505, 1003, 1311, 2253, 1861, 3561, 19581, 46183}}, +{5164, 16, 23818, {1, 3, 1, 9, 23, 5, 127, 215, 195, 817, 719, 1285, 919, 8627, 20427, 2723}}, +{5165, 16, 23832, {1, 1, 1, 5, 15, 31, 43, 131, 377, 57, 1531, 915, 2871, 1805, 19765, 60529}}, +{5166, 16, 23842, {1, 3, 3, 3, 15, 1, 93, 55, 477, 221, 643, 1319, 959, 475, 14015, 48823}}, +{5167, 16, 23851, {1, 3, 3, 7, 19, 13, 13, 191, 421, 751, 1103, 2129, 1973, 14935, 26485, 41269}}, +{5168, 16, 23873, {1, 1, 5, 13, 17, 43, 81, 83, 67, 643, 1799, 1157, 4365, 2815, 29871, 5351}}, +{5169, 16, 23883, {1, 3, 1, 9, 21, 31, 87, 177, 25, 403, 1357, 4047, 959, 5133, 7307, 4333}}, +{5170, 16, 23888, {1, 1, 7, 7, 29, 39, 27, 139, 159, 529, 1323, 3823, 4569, 12711, 30263, 10961}}, +{5171, 16, 23910, {1, 3, 1, 13, 27, 15, 59, 1, 107, 723, 497, 43, 143, 16119, 29177, 5653}}, +{5172, 16, 23934, {1, 1, 5, 9, 15, 41, 23, 109, 101, 639, 277, 1687, 1311, 1995, 5403, 6867}}, +{5173, 16, 23938, {1, 1, 5, 3, 13, 1, 95, 177, 379, 545, 789, 3479, 4135, 445, 5869, 38923}}, +{5174, 16, 23949, {1, 1, 3, 9, 21, 31, 23, 65, 209, 383, 271, 367, 6605, 1169, 27267, 9331}}, +{5175, 16, 23955, {1, 1, 1, 1, 27, 39, 121, 29, 155, 465, 947, 2675, 6753, 11647, 29781, 30251}}, +{5176, 16, 23967, {1, 3, 1, 5, 7, 45, 7, 21, 223, 363, 1021, 751, 2257, 14423, 19629, 64867}}, +{5177, 16, 23973, {1, 3, 1, 9, 31, 53, 13, 99, 49, 389, 867, 327, 4145, 3265, 15423, 14985}}, +{5178, 16, 23991, {1, 1, 1, 15, 11, 11, 27, 41, 333, 161, 1343, 2023, 3789, 13563, 16957, 26849}}, +{5179, 16, 24024, {1, 3, 7, 1, 7, 51, 7, 163, 239, 393, 231, 3985, 309, 875, 837, 24791}}, +{5180, 16, 24030, {1, 1, 1, 7, 1, 43, 105, 7, 351, 755, 1781, 1925, 4961, 2961, 13427, 44317}}, +{5181, 16, 24039, {1, 3, 1, 9, 17, 39, 81, 75, 201, 931, 1547, 1857, 7251, 11687, 14437, 12603}}, +{5182, 16, 24067, {1, 3, 3, 15, 15, 23, 95, 7, 193, 9, 1749, 809, 5083, 14645, 24893, 35979}}, +{5183, 16, 24069, {1, 1, 7, 1, 9, 9, 127, 149, 433, 985, 1347, 3379, 2881, 681, 20777, 30703}}, +{5184, 16, 24084, {1, 3, 1, 11, 1, 27, 121, 111, 251, 45, 1341, 1709, 3733, 11297, 29063, 57119}}, +{5185, 16, 24112, {1, 3, 3, 1, 19, 3, 77, 127, 187, 831, 1125, 3119, 4665, 9857, 5301, 36755}}, +{5186, 16, 24115, {1, 3, 3, 3, 29, 29, 61, 225, 257, 635, 665, 1279, 3019, 2401, 8253, 40251}}, +{5187, 16, 24184, {1, 1, 7, 9, 29, 43, 47, 95, 221, 823, 257, 1485, 5183, 225, 27675, 60479}}, +{5188, 16, 24187, {1, 1, 5, 3, 15, 49, 25, 69, 101, 393, 901, 305, 4917, 13479, 30209, 9199}}, +{5189, 16, 24262, {1, 1, 3, 15, 1, 9, 47, 243, 403, 341, 143, 1365, 1817, 6017, 3853, 58625}}, +{5190, 16, 24276, {1, 3, 3, 11, 9, 49, 93, 149, 39, 177, 1863, 1027, 659, 9253, 2131, 26943}}, +{5191, 16, 24279, {1, 3, 1, 3, 25, 1, 43, 255, 217, 353, 957, 39, 4607, 15761, 24291, 33619}}, +{5192, 16, 24313, {1, 1, 1, 7, 29, 51, 71, 237, 1, 703, 19, 213, 6429, 11783, 22049, 30597}}, +{5193, 16, 24331, {1, 3, 1, 7, 31, 63, 105, 203, 473, 731, 257, 91, 5749, 4099, 30125, 40171}}, +{5194, 16, 24336, {1, 3, 7, 9, 7, 29, 119, 181, 225, 743, 1031, 55, 3997, 16221, 11663, 14847}}, +{5195, 16, 24348, {1, 3, 3, 11, 5, 21, 43, 17, 473, 981, 125, 2077, 6141, 4757, 7585, 29207}}, +{5196, 16, 24367, {1, 1, 7, 1, 27, 61, 27, 45, 267, 483, 119, 767, 957, 3411, 2653, 53967}}, +{5197, 16, 24372, {1, 1, 1, 3, 9, 41, 43, 17, 485, 253, 825, 3605, 5919, 9285, 1815, 6095}}, +{5198, 16, 24402, {1, 1, 1, 11, 7, 5, 53, 107, 309, 609, 1389, 2035, 861, 15565, 9375, 42363}}, +{5199, 16, 24420, {1, 3, 5, 3, 27, 57, 7, 177, 183, 227, 865, 183, 2903, 6325, 4393, 5257}}, +{5200, 16, 24444, {1, 3, 1, 5, 21, 29, 79, 107, 365, 427, 813, 3563, 7713, 3865, 4289, 28555}}, +{5201, 16, 24465, {1, 3, 5, 7, 11, 27, 1, 197, 425, 769, 1737, 3627, 1273, 4469, 11967, 823}}, +{5202, 16, 24466, {1, 1, 1, 13, 3, 31, 127, 159, 471, 367, 2047, 949, 1591, 12429, 21497, 27153}}, +{5203, 16, 24471, {1, 3, 1, 3, 3, 31, 31, 87, 243, 413, 1777, 1361, 4575, 1147, 17451, 33985}}, +{5204, 16, 24475, {1, 3, 3, 5, 13, 47, 45, 3, 165, 329, 743, 397, 2479, 4999, 12921, 26689}}, +{5205, 16, 24481, {1, 1, 5, 7, 17, 59, 25, 117, 217, 601, 235, 2691, 5569, 7853, 31063, 28281}}, +{5206, 16, 24488, {1, 3, 1, 11, 11, 39, 71, 77, 481, 39, 363, 1921, 3263, 12849, 13325, 41803}}, +{5207, 16, 24501, {1, 3, 7, 5, 19, 1, 59, 197, 239, 787, 1657, 1449, 4245, 1317, 19609, 53583}}, +{5208, 16, 24514, {1, 1, 7, 1, 13, 33, 81, 53, 223, 323, 477, 2421, 4045, 1855, 5823, 9661}}, +{5209, 16, 24531, {1, 3, 1, 7, 1, 3, 121, 19, 329, 569, 481, 3443, 499, 12407, 19625, 4627}}, +{5210, 16, 24534, {1, 1, 1, 7, 3, 33, 91, 241, 69, 581, 1635, 1025, 4677, 14651, 5229, 19555}}, +{5211, 16, 24559, {1, 3, 1, 15, 9, 11, 99, 47, 489, 755, 601, 1221, 4251, 4377, 20567, 33839}}, +{5212, 16, 24602, {1, 3, 3, 5, 21, 21, 127, 151, 499, 971, 1627, 609, 2365, 3183, 7413, 697}}, +{5213, 16, 24614, {1, 3, 7, 13, 5, 35, 61, 121, 51, 297, 29, 1825, 495, 1299, 12741, 3253}}, +{5214, 16, 24637, {1, 1, 1, 1, 13, 15, 49, 205, 235, 9, 849, 1101, 4533, 10221, 32419, 50151}}, +{5215, 16, 24664, {1, 1, 3, 13, 29, 31, 57, 77, 217, 195, 1951, 189, 981, 6169, 22677, 64415}}, +{5216, 16, 24676, {1, 3, 1, 5, 15, 37, 25, 233, 43, 843, 1205, 153, 6339, 3767, 16725, 32699}}, +{5217, 16, 24679, {1, 3, 3, 1, 19, 37, 11, 217, 461, 897, 1181, 2815, 295, 15153, 25351, 57211}}, +{5218, 16, 24697, {1, 3, 5, 11, 15, 9, 5, 179, 353, 769, 1457, 2919, 1201, 14871, 29549, 52265}}, +{5219, 16, 24709, {1, 1, 3, 3, 5, 51, 127, 221, 329, 543, 1537, 2701, 2709, 9311, 2715, 42669}}, +{5220, 16, 24714, {1, 3, 5, 15, 5, 41, 79, 233, 445, 265, 2001, 935, 3133, 3977, 3601, 21389}}, +{5221, 16, 24716, {1, 3, 5, 11, 3, 7, 115, 45, 311, 827, 1897, 3399, 4251, 5341, 22621, 25519}}, +{5222, 16, 24731, {1, 3, 7, 1, 11, 57, 117, 103, 401, 505, 1683, 2161, 4363, 11189, 20263, 13065}}, +{5223, 16, 24744, {1, 1, 1, 7, 23, 29, 31, 77, 63, 179, 195, 2747, 579, 11701, 5101, 11497}}, +{5224, 16, 24762, {1, 3, 7, 3, 9, 33, 81, 165, 433, 545, 1893, 3709, 3813, 6615, 1485, 6395}}, +{5225, 16, 24764, {1, 3, 1, 15, 9, 5, 27, 157, 389, 683, 1919, 509, 455, 3865, 2303, 6993}}, +{5226, 16, 24769, {1, 3, 3, 9, 5, 5, 3, 5, 299, 59, 539, 1199, 2443, 10821, 3359, 44345}}, +{5227, 16, 24806, {1, 3, 5, 9, 21, 37, 87, 35, 501, 943, 1313, 3929, 351, 9851, 22971, 35659}}, +{5228, 16, 24812, {1, 3, 7, 11, 11, 33, 77, 175, 411, 315, 1797, 2731, 4611, 1809, 22027, 50595}}, +{5229, 16, 24872, {1, 3, 7, 13, 15, 11, 13, 189, 209, 1015, 1869, 1593, 6887, 8571, 7217, 2641}}, +{5230, 16, 24878, {1, 1, 3, 13, 29, 15, 119, 127, 329, 275, 865, 1693, 225, 15735, 11071, 37127}}, +{5231, 16, 24883, {1, 3, 7, 13, 9, 31, 85, 25, 281, 401, 1923, 2391, 3875, 2079, 2055, 53275}}, +{5232, 16, 24909, {1, 3, 1, 5, 23, 57, 79, 127, 209, 901, 315, 1165, 3393, 15095, 1981, 34993}}, +{5233, 16, 24943, {1, 3, 7, 7, 25, 13, 15, 223, 157, 335, 1061, 395, 6895, 6283, 18375, 4887}}, +{5234, 16, 24946, {1, 3, 7, 13, 9, 15, 99, 201, 105, 643, 117, 3027, 641, 13353, 4343, 11875}}, +{5235, 16, 24964, {1, 1, 3, 11, 5, 51, 5, 77, 281, 207, 1201, 1187, 8107, 6625, 7517, 34377}}, +{5236, 16, 24992, {1, 1, 1, 5, 29, 61, 3, 181, 297, 151, 565, 2713, 6611, 8665, 32425, 50399}}, +{5237, 16, 25016, {1, 3, 1, 5, 1, 61, 41, 245, 95, 647, 49, 2195, 5927, 15531, 28547, 51075}}, +{5238, 16, 25022, {1, 3, 3, 15, 15, 63, 123, 63, 77, 813, 423, 715, 91, 3793, 20901, 54927}}, +{5239, 16, 25024, {1, 3, 7, 9, 15, 35, 31, 161, 127, 13, 1667, 1225, 5279, 15487, 18769, 24887}}, +{5240, 16, 25039, {1, 1, 3, 5, 27, 25, 61, 21, 447, 175, 1419, 2691, 1993, 13059, 30809, 38325}}, +{5241, 16, 25051, {1, 3, 1, 3, 15, 21, 15, 193, 233, 435, 1993, 4003, 4581, 13837, 16535, 43781}}, +{5242, 16, 25060, {1, 1, 1, 5, 1, 11, 21, 253, 59, 59, 497, 77, 2165, 8197, 5933, 25743}}, +{5243, 16, 25072, {1, 1, 3, 9, 25, 61, 29, 217, 95, 269, 799, 409, 801, 421, 19065, 53443}}, +{5244, 16, 25097, {1, 1, 7, 1, 1, 41, 71, 59, 191, 867, 223, 1467, 6679, 16031, 4451, 15313}}, +{5245, 16, 25122, {1, 1, 1, 11, 13, 27, 7, 241, 167, 969, 1267, 2953, 3769, 2415, 30065, 39483}}, +{5246, 16, 25148, {1, 1, 1, 3, 25, 61, 103, 23, 53, 799, 989, 3859, 7299, 13613, 12007, 37535}}, +{5247, 16, 25194, {1, 1, 7, 1, 29, 19, 121, 57, 355, 663, 643, 3723, 1775, 10363, 1389, 16039}}, +{5248, 16, 25201, {1, 3, 7, 3, 21, 55, 51, 67, 363, 843, 1187, 1983, 7757, 5413, 26575, 53329}}, +{5249, 16, 25204, {1, 3, 1, 3, 31, 55, 73, 55, 75, 533, 197, 1463, 2933, 6033, 24397, 41579}}, +{5250, 16, 25238, {1, 3, 1, 11, 9, 15, 107, 141, 473, 825, 901, 937, 7433, 13119, 20047, 6695}}, +{5251, 16, 25241, {1, 3, 5, 7, 19, 27, 3, 149, 507, 137, 1025, 1841, 33, 3113, 15101, 28187}}, +{5252, 16, 25248, {1, 3, 5, 7, 31, 27, 53, 45, 177, 129, 1241, 1525, 991, 4141, 17681, 39435}}, +{5253, 16, 25257, {1, 1, 1, 15, 31, 57, 29, 137, 395, 563, 101, 3367, 1277, 5431, 1169, 44321}}, +{5254, 16, 25275, {1, 3, 5, 7, 21, 15, 123, 181, 113, 313, 1763, 1429, 2985, 715, 26129, 549}}, +{5255, 16, 25278, {1, 3, 3, 1, 15, 27, 27, 139, 507, 79, 1999, 2505, 485, 7011, 13369, 7159}}, +{5256, 16, 25304, {1, 3, 3, 11, 27, 53, 109, 179, 399, 657, 697, 421, 5467, 4273, 7837, 11631}}, +{5257, 16, 25307, {1, 1, 1, 15, 1, 57, 91, 199, 443, 569, 1945, 2531, 6349, 4851, 3931, 20537}}, +{5258, 16, 25320, {1, 1, 3, 13, 3, 3, 107, 237, 261, 377, 135, 2809, 7239, 1613, 24035, 26053}}, +{5259, 16, 25334, {1, 3, 3, 5, 3, 59, 65, 197, 411, 363, 1729, 967, 3963, 4535, 111, 7273}}, +{5260, 16, 25348, {1, 1, 7, 3, 13, 39, 105, 235, 203, 1015, 1031, 3127, 1209, 10817, 22177, 44117}}, +{5261, 16, 25357, {1, 3, 3, 13, 19, 21, 123, 31, 59, 185, 1007, 1115, 1965, 13087, 18489, 34063}}, +{5262, 16, 25372, {1, 1, 7, 5, 27, 7, 33, 159, 245, 57, 2003, 3229, 2095, 4939, 31355, 23121}}, +{5263, 16, 25394, {1, 3, 3, 9, 9, 41, 49, 203, 397, 915, 821, 3685, 2269, 11159, 25441, 46377}}, +{5264, 16, 25454, {1, 3, 7, 5, 29, 33, 29, 227, 361, 961, 1905, 1149, 2799, 8115, 28235, 25685}}, +{5265, 16, 25465, {1, 3, 1, 1, 19, 13, 73, 103, 11, 183, 853, 2425, 3809, 2391, 18615, 32735}}, +{5266, 16, 25472, {1, 1, 3, 3, 21, 57, 47, 57, 157, 43, 1085, 3319, 461, 11499, 6809, 10435}}, +{5267, 16, 25492, {1, 1, 5, 5, 17, 21, 55, 17, 421, 865, 159, 1643, 4523, 1485, 11937, 8287}}, +{5268, 16, 25505, {1, 1, 3, 11, 7, 43, 39, 37, 187, 797, 1273, 1227, 2683, 1249, 3375, 44499}}, +{5269, 16, 25517, {1, 1, 5, 11, 17, 35, 27, 73, 97, 59, 921, 2171, 7577, 2847, 93, 35911}}, +{5270, 16, 25530, {1, 1, 5, 1, 5, 17, 117, 189, 357, 581, 1945, 2141, 1679, 12019, 11249, 6809}}, +{5271, 16, 25558, {1, 1, 5, 7, 15, 53, 9, 191, 153, 257, 533, 493, 2389, 4657, 20757, 57275}}, +{5272, 16, 25562, {1, 1, 1, 11, 13, 35, 85, 37, 501, 525, 543, 4057, 2001, 6183, 949, 18465}}, +{5273, 16, 25598, {1, 1, 1, 3, 15, 7, 39, 169, 359, 671, 731, 1523, 211, 1233, 29515, 57787}}, +{5274, 16, 25609, {1, 1, 3, 7, 27, 7, 41, 15, 71, 733, 1919, 401, 1915, 4815, 10571, 839}}, +{5275, 16, 25612, {1, 1, 7, 13, 27, 61, 5, 25, 293, 779, 477, 1537, 6695, 7435, 1281, 64369}}, +{5276, 16, 25627, {1, 1, 7, 7, 19, 11, 101, 45, 449, 883, 1181, 3521, 6019, 16305, 23429, 43789}}, +{5277, 16, 25651, {1, 1, 7, 5, 1, 49, 121, 89, 275, 367, 461, 1717, 2733, 4403, 9123, 35217}}, +{5278, 16, 25653, {1, 1, 7, 1, 1, 37, 41, 221, 281, 531, 357, 3783, 3561, 8135, 18405, 56045}}, +{5279, 16, 25668, {1, 3, 5, 7, 29, 9, 127, 37, 13, 519, 1059, 3973, 7253, 15159, 19337, 57103}}, +{5280, 16, 25711, {1, 3, 3, 15, 3, 41, 91, 7, 63, 747, 1649, 3367, 5945, 3603, 28465, 511}}, +{5281, 16, 25765, {1, 3, 3, 15, 27, 19, 67, 179, 505, 131, 149, 1753, 3603, 1135, 15811, 5305}}, +{5282, 16, 25770, {1, 1, 1, 5, 5, 63, 71, 235, 151, 651, 1383, 249, 3223, 14559, 26809, 4551}}, +{5283, 16, 25775, {1, 3, 3, 9, 29, 41, 67, 111, 175, 515, 1123, 1707, 6653, 8233, 22775, 61029}}, +{5284, 16, 25777, {1, 3, 3, 9, 23, 1, 75, 145, 159, 785, 537, 1995, 2241, 8641, 30709, 41373}}, +{5285, 16, 25783, {1, 1, 5, 9, 21, 1, 87, 233, 401, 643, 197, 3437, 8163, 6363, 6537, 17283}}, +{5286, 16, 25801, {1, 3, 5, 3, 23, 19, 55, 243, 405, 369, 1221, 1959, 5455, 11729, 26117, 9097}}, +{5287, 16, 25802, {1, 1, 3, 13, 3, 57, 71, 235, 125, 263, 873, 1079, 2627, 1343, 1979, 49519}}, +{5288, 16, 25812, {1, 3, 1, 11, 21, 15, 27, 7, 425, 935, 305, 2593, 4437, 9517, 26207, 4229}}, +{5289, 16, 25821, {1, 1, 3, 13, 11, 53, 1, 149, 97, 939, 147, 3365, 5023, 607, 2083, 8715}}, +{5290, 16, 25897, {1, 1, 5, 3, 13, 13, 113, 51, 263, 837, 1145, 3621, 5697, 2867, 7975, 22839}}, +{5291, 16, 25906, {1, 1, 3, 15, 31, 9, 91, 231, 399, 295, 1935, 4021, 7669, 3867, 28015, 9865}}, +{5292, 16, 25929, {1, 1, 1, 1, 13, 59, 51, 35, 407, 733, 1629, 2429, 291, 11923, 32129, 28847}}, +{5293, 16, 25940, {1, 3, 3, 11, 25, 21, 13, 117, 31, 547, 327, 2801, 2247, 4051, 27523, 4257}}, +{5294, 16, 25950, {1, 1, 7, 7, 15, 33, 15, 17, 255, 363, 1013, 1463, 7537, 14093, 21883, 35389}}, +{5295, 16, 25968, {1, 1, 5, 9, 11, 61, 7, 161, 121, 413, 515, 413, 4439, 15405, 30265, 23939}}, +{5296, 16, 25971, {1, 3, 7, 7, 11, 15, 5, 181, 315, 231, 1567, 2985, 1653, 12251, 269, 37317}}, +{5297, 16, 25977, {1, 3, 1, 11, 3, 15, 91, 45, 489, 571, 11, 1239, 7705, 4303, 12535, 21359}}, +{5298, 16, 25994, {1, 1, 7, 15, 29, 43, 81, 63, 483, 851, 389, 1719, 6111, 15293, 2513, 44397}}, +{5299, 16, 25996, {1, 1, 5, 15, 25, 33, 97, 131, 183, 269, 1903, 2733, 7197, 4507, 24471, 36871}}, +{5300, 16, 25999, {1, 3, 3, 13, 17, 33, 73, 83, 247, 207, 79, 1139, 581, 12147, 3539, 45423}}, +{5301, 16, 26001, {1, 1, 1, 15, 29, 49, 79, 151, 267, 393, 1995, 105, 2873, 3981, 19147, 53987}}, +{5302, 16, 26030, {1, 1, 5, 1, 31, 25, 39, 203, 459, 181, 661, 717, 6235, 13413, 1197, 40665}}, +{5303, 16, 26069, {1, 1, 5, 9, 19, 33, 65, 239, 463, 133, 461, 3601, 7755, 1771, 20683, 7417}}, +{5304, 16, 26100, {1, 1, 1, 1, 25, 19, 25, 155, 431, 33, 341, 959, 5679, 1205, 2599, 37499}}, +{5305, 16, 26109, {1, 1, 3, 5, 25, 5, 83, 87, 91, 991, 1833, 4063, 147, 14497, 25725, 4617}}, +{5306, 16, 26131, {1, 3, 5, 7, 31, 7, 73, 51, 339, 313, 1593, 2089, 7387, 15759, 3249, 7953}}, +{5307, 16, 26144, {1, 3, 7, 1, 27, 49, 35, 11, 21, 45, 1689, 1665, 4591, 3713, 12781, 4805}}, +{5308, 16, 26149, {1, 1, 3, 9, 29, 51, 73, 51, 303, 179, 67, 3917, 7615, 6131, 26225, 55991}}, +{5309, 16, 26162, {1, 3, 7, 11, 9, 63, 29, 47, 153, 883, 1859, 1913, 3563, 11451, 6333, 51367}}, +{5310, 16, 26167, {1, 3, 1, 3, 5, 25, 69, 87, 389, 613, 989, 3557, 1339, 12503, 14505, 63209}}, +{5311, 16, 26173, {1, 1, 3, 1, 5, 13, 37, 163, 499, 163, 2025, 1467, 5059, 8479, 2889, 62957}}, +{5312, 16, 26179, {1, 1, 7, 9, 23, 31, 109, 49, 73, 197, 337, 2763, 4789, 8983, 9691, 32155}}, +{5313, 16, 26193, {1, 3, 1, 3, 31, 25, 121, 91, 371, 339, 833, 2217, 4997, 9425, 10685, 60037}}, +{5314, 16, 26230, {1, 1, 7, 11, 31, 3, 105, 125, 255, 175, 803, 1787, 6231, 4441, 5031, 29737}}, +{5315, 16, 26234, {1, 1, 1, 11, 21, 63, 75, 209, 393, 437, 495, 2397, 4759, 15703, 29869, 62685}}, +{5316, 16, 26246, {1, 1, 7, 7, 25, 33, 117, 7, 293, 623, 2001, 2409, 2487, 14803, 3329, 38277}}, +{5317, 16, 26267, {1, 1, 7, 9, 31, 51, 75, 151, 487, 85, 639, 3529, 4491, 1957, 22099, 20263}}, +{5318, 16, 26283, {1, 1, 7, 5, 3, 29, 11, 1, 255, 555, 1269, 779, 1525, 7689, 25847, 39347}}, +{5319, 16, 26300, {1, 1, 7, 7, 19, 21, 9, 123, 3, 943, 1627, 2979, 919, 4565, 31435, 59789}}, +{5320, 16, 26341, {1, 3, 7, 5, 29, 13, 57, 221, 9, 893, 1685, 1879, 4575, 7369, 26191, 6067}}, +{5321, 16, 26356, {1, 3, 7, 9, 13, 11, 9, 27, 313, 751, 1377, 1121, 3799, 1673, 16305, 30665}}, +{5322, 16, 26377, {1, 3, 3, 13, 23, 17, 59, 47, 499, 525, 681, 3195, 1611, 7003, 7325, 53019}}, +{5323, 16, 26397, {1, 3, 1, 7, 23, 51, 59, 127, 67, 263, 1305, 2479, 637, 9441, 6329, 12857}}, +{5324, 16, 26404, {1, 1, 7, 7, 9, 3, 51, 193, 205, 503, 19, 2513, 7489, 9241, 15371, 20875}}, +{5325, 16, 26411, {1, 3, 3, 1, 1, 57, 17, 181, 23, 549, 769, 2325, 3669, 7017, 25601, 64479}}, +{5326, 16, 26422, {1, 3, 1, 15, 5, 55, 53, 13, 327, 447, 1031, 1599, 3639, 15305, 1387, 16035}}, +{5327, 16, 26451, {1, 3, 7, 15, 9, 41, 53, 113, 97, 99, 1377, 4047, 3713, 8891, 5601, 5853}}, +{5328, 16, 26454, {1, 1, 7, 9, 9, 7, 29, 249, 411, 315, 181, 2153, 6135, 6947, 27595, 15553}}, +{5329, 16, 26463, {1, 1, 7, 11, 3, 57, 35, 55, 165, 313, 577, 3049, 4259, 4231, 7225, 58973}}, +{5330, 16, 26488, {1, 1, 1, 1, 15, 43, 53, 143, 157, 843, 465, 3897, 4797, 12305, 28807, 46381}}, +{5331, 16, 26498, {1, 3, 7, 9, 17, 3, 99, 61, 475, 507, 831, 2207, 367, 27, 23205, 2303}}, +{5332, 16, 26509, {1, 1, 3, 11, 27, 29, 99, 237, 43, 955, 361, 3231, 1863, 7973, 8969, 58663}}, +{5333, 16, 26512, {1, 3, 1, 7, 15, 15, 11, 251, 135, 261, 675, 3723, 7675, 7993, 1725, 41149}}, +{5334, 16, 26517, {1, 3, 3, 9, 29, 11, 105, 37, 151, 215, 1911, 4051, 5427, 11019, 9073, 33129}}, +{5335, 16, 26534, {1, 3, 3, 1, 19, 7, 103, 81, 371, 253, 1043, 1231, 6497, 10377, 2349, 29047}}, +{5336, 16, 26545, {1, 3, 7, 9, 15, 11, 85, 61, 507, 629, 811, 3883, 1435, 13035, 31913, 2153}}, +{5337, 16, 26546, {1, 1, 5, 11, 13, 7, 63, 147, 117, 223, 1217, 3317, 3275, 6851, 2917, 55901}}, +{5338, 16, 26636, {1, 3, 3, 9, 7, 21, 1, 63, 117, 297, 405, 797, 337, 10173, 8327, 29157}}, +{5339, 16, 26749, {1, 1, 7, 11, 31, 63, 97, 191, 259, 421, 1829, 2117, 4203, 11919, 18001, 55791}}, +{5340, 16, 26753, {1, 3, 7, 9, 21, 13, 125, 247, 133, 611, 463, 227, 7815, 8877, 17961, 3641}}, +{5341, 16, 26759, {1, 1, 7, 9, 27, 21, 97, 165, 371, 715, 491, 3929, 3067, 12501, 5511, 18217}}, +{5342, 16, 26774, {1, 3, 3, 15, 27, 17, 81, 161, 263, 273, 135, 1159, 7535, 4581, 16065, 11493}}, +{5343, 16, 26789, {1, 3, 3, 7, 11, 59, 111, 47, 381, 413, 243, 2173, 4957, 2451, 15669, 22071}}, +{5344, 16, 26808, {1, 3, 7, 5, 3, 31, 65, 131, 111, 141, 1891, 2983, 3331, 769, 24075, 40865}}, +{5345, 16, 26825, {1, 3, 7, 11, 11, 63, 7, 213, 333, 111, 1235, 961, 3749, 9123, 5067, 9657}}, +{5346, 16, 26831, {1, 3, 3, 1, 9, 33, 1, 225, 37, 951, 1995, 3215, 3117, 3723, 15013, 64525}}, +{5347, 16, 26859, {1, 3, 3, 13, 29, 19, 103, 65, 67, 423, 1679, 3791, 5551, 11711, 195, 52291}}, +{5348, 16, 26888, {1, 3, 1, 15, 31, 7, 65, 249, 489, 287, 1385, 1075, 1357, 13593, 20853, 46221}}, +{5349, 16, 26918, {1, 1, 1, 13, 23, 45, 29, 175, 147, 101, 1007, 1867, 5387, 12683, 29609, 55861}}, +{5350, 16, 26929, {1, 3, 5, 13, 21, 31, 85, 187, 183, 179, 1337, 481, 71, 6117, 2177, 27915}}, +{5351, 16, 26950, {1, 3, 5, 1, 15, 5, 11, 141, 205, 177, 891, 3591, 4371, 889, 12957, 61083}}, +{5352, 16, 26954, {1, 3, 7, 7, 11, 39, 81, 241, 13, 757, 521, 3029, 2345, 12385, 20683, 64053}}, +{5353, 16, 26973, {1, 1, 5, 13, 7, 3, 77, 211, 215, 97, 1409, 1021, 1267, 4785, 27231, 2877}}, +{5354, 16, 26997, {1, 3, 5, 3, 11, 57, 93, 39, 415, 179, 1033, 3267, 5383, 10451, 27117, 10711}}, +{5355, 16, 26998, {1, 1, 1, 1, 3, 45, 93, 179, 453, 995, 1423, 3849, 4381, 15789, 20789, 18775}}, +{5356, 16, 27008, {1, 3, 1, 3, 13, 25, 33, 165, 351, 887, 1109, 195, 8131, 3061, 16743, 22997}}, +{5357, 16, 27038, {1, 3, 1, 5, 23, 35, 93, 155, 333, 603, 1571, 229, 2979, 6295, 20793, 40901}}, +{5358, 16, 27109, {1, 3, 3, 11, 29, 57, 101, 61, 487, 719, 1009, 1933, 7815, 15329, 12489, 26105}}, +{5359, 16, 27127, {1, 3, 3, 9, 23, 59, 73, 13, 141, 815, 1819, 3557, 2555, 5901, 23039, 62321}}, +{5360, 16, 27150, {1, 1, 3, 5, 19, 49, 27, 139, 35, 995, 565, 323, 6439, 15679, 27017, 30889}}, +{5361, 16, 27168, {1, 3, 7, 3, 1, 3, 27, 153, 235, 59, 989, 2763, 4197, 3931, 31227, 27129}}, +{5362, 16, 27178, {1, 3, 1, 15, 23, 45, 71, 205, 465, 451, 347, 1909, 3287, 8363, 9081, 35641}}, +{5363, 16, 27212, {1, 1, 5, 1, 25, 29, 17, 201, 463, 903, 1729, 3435, 2483, 10835, 14315, 52505}}, +{5364, 16, 27224, {1, 1, 1, 15, 13, 23, 3, 175, 273, 305, 1945, 3319, 7777, 9411, 4209, 4047}}, +{5365, 16, 27229, {1, 1, 5, 15, 25, 5, 71, 35, 307, 89, 301, 3465, 1497, 13467, 21911, 13611}}, +{5366, 16, 27246, {1, 3, 1, 7, 11, 7, 33, 241, 349, 751, 633, 3281, 6733, 13833, 23605, 34307}}, +{5367, 16, 27251, {1, 1, 1, 15, 17, 27, 45, 13, 259, 843, 1207, 1735, 4063, 6259, 1751, 45107}}, +{5368, 16, 27257, {1, 1, 5, 15, 29, 51, 73, 95, 5, 31, 933, 423, 5505, 2193, 14919, 2715}}, +{5369, 16, 27258, {1, 3, 1, 3, 23, 5, 29, 7, 271, 485, 827, 1159, 77, 16337, 27933, 18741}}, +{5370, 16, 27260, {1, 3, 7, 9, 23, 33, 47, 191, 59, 301, 1277, 3745, 7837, 799, 2861, 25853}}, +{5371, 16, 27287, {1, 3, 7, 13, 13, 39, 33, 91, 279, 855, 1917, 3601, 3971, 6193, 16951, 6115}}, +{5372, 16, 27300, {1, 1, 3, 13, 15, 59, 89, 239, 313, 545, 431, 3823, 5741, 14981, 2647, 42813}}, +{5373, 16, 27315, {1, 1, 1, 3, 17, 21, 45, 37, 343, 737, 1795, 2659, 2897, 7683, 15191, 1393}}, +{5374, 16, 27329, {1, 1, 3, 3, 19, 55, 27, 201, 459, 953, 1531, 671, 5667, 11695, 149, 14605}}, +{5375, 16, 27332, {1, 3, 7, 13, 9, 63, 67, 229, 69, 819, 859, 2035, 5725, 13403, 24197, 2599}}, +{5376, 16, 27349, {1, 1, 7, 7, 1, 59, 45, 105, 327, 779, 59, 791, 7593, 8189, 28161, 13339}}, +{5377, 16, 27350, {1, 3, 3, 15, 25, 55, 125, 189, 327, 733, 115, 3541, 5227, 12143, 32719, 15785}}, +{5378, 16, 27354, {1, 3, 3, 7, 19, 51, 35, 63, 507, 89, 1441, 2369, 4927, 7953, 10193, 8331}}, +{5379, 16, 27359, {1, 1, 5, 5, 21, 1, 41, 49, 217, 1001, 1649, 2789, 5267, 1525, 3811, 40785}}, +{5380, 16, 27377, {1, 1, 7, 15, 31, 21, 33, 183, 425, 393, 367, 3253, 3047, 465, 28229, 44743}}, +{5381, 16, 27378, {1, 3, 7, 5, 1, 23, 11, 71, 269, 707, 5, 2931, 1959, 15089, 9299, 43927}}, +{5382, 16, 27383, {1, 3, 5, 15, 21, 51, 31, 15, 49, 481, 297, 3871, 751, 10661, 26401, 62923}}, +{5383, 16, 27384, {1, 3, 1, 7, 17, 27, 35, 255, 205, 865, 1659, 1921, 5457, 11633, 2825, 13549}}, +{5384, 16, 27387, {1, 1, 5, 15, 17, 35, 83, 237, 437, 7, 2001, 2225, 2601, 10841, 7953, 20651}}, +{5385, 16, 27392, {1, 1, 1, 3, 3, 37, 43, 135, 451, 203, 1319, 261, 3889, 14489, 9635, 52545}}, +{5386, 16, 27402, {1, 3, 3, 13, 15, 41, 95, 207, 43, 997, 207, 3459, 5995, 5187, 15851, 28551}}, +{5387, 16, 27438, {1, 1, 1, 5, 23, 57, 49, 101, 303, 921, 745, 1407, 7071, 2765, 18703, 32671}}, +{5388, 16, 27481, {1, 1, 7, 13, 9, 59, 65, 157, 209, 295, 107, 3175, 3401, 1197, 1875, 9033}}, +{5389, 16, 27482, {1, 1, 3, 3, 17, 9, 101, 75, 177, 905, 1013, 397, 3421, 6475, 15897, 11269}}, +{5390, 16, 27494, {1, 3, 1, 5, 29, 53, 105, 83, 383, 137, 1169, 1245, 6973, 8701, 317, 10073}}, +{5391, 16, 27531, {1, 1, 1, 3, 15, 55, 69, 219, 507, 707, 945, 397, 779, 4157, 10333, 7869}}, +{5392, 16, 27542, {1, 3, 1, 3, 9, 21, 125, 153, 107, 969, 1979, 651, 1199, 11419, 17043, 32269}}, +{5393, 16, 27546, {1, 1, 1, 7, 1, 29, 71, 127, 209, 853, 1515, 1169, 5055, 9981, 30291, 29569}}, +{5394, 16, 27564, {1, 3, 1, 11, 1, 1, 109, 251, 329, 633, 2021, 1237, 2147, 11471, 26025, 19649}}, +{5395, 16, 27567, {1, 1, 5, 1, 5, 7, 77, 175, 251, 143, 711, 1241, 2133, 9993, 9203, 24949}}, +{5396, 16, 27582, {1, 3, 5, 11, 19, 11, 101, 83, 91, 595, 753, 2389, 1887, 11569, 29759, 55785}}, +{5397, 16, 27608, {1, 1, 1, 3, 29, 47, 49, 249, 495, 451, 1887, 2547, 543, 2755, 17207, 24379}}, +{5398, 16, 27611, {1, 3, 7, 7, 19, 15, 95, 143, 109, 221, 2041, 3593, 4571, 14547, 14217, 16711}}, +{5399, 16, 27624, {1, 3, 5, 13, 27, 55, 31, 209, 39, 989, 1435, 1665, 7265, 14127, 13517, 37647}}, +{5400, 16, 27629, {1, 1, 3, 7, 1, 49, 63, 71, 249, 371, 435, 3591, 2677, 143, 28897, 38981}}, +{5401, 16, 27655, {1, 1, 7, 7, 21, 9, 53, 221, 23, 515, 1971, 3759, 3511, 10207, 12929, 42021}}, +{5402, 16, 27667, {1, 3, 1, 13, 25, 21, 3, 85, 421, 19, 663, 3219, 3541, 13021, 5765, 39623}}, +{5403, 16, 27676, {1, 3, 1, 7, 11, 5, 125, 169, 293, 715, 1111, 2965, 4815, 6047, 27207, 23093}}, +{5404, 16, 27710, {1, 1, 5, 13, 11, 15, 37, 201, 457, 551, 821, 25, 435, 14307, 25855, 1811}}, +{5405, 16, 27724, {1, 3, 3, 9, 27, 15, 1, 253, 217, 549, 1013, 2277, 4171, 3813, 19857, 8641}}, +{5406, 16, 27745, {1, 3, 5, 5, 29, 37, 71, 49, 163, 949, 425, 2459, 945, 13125, 13981, 21669}}, +{5407, 16, 27752, {1, 3, 3, 9, 17, 23, 53, 235, 83, 887, 439, 1939, 7601, 15275, 15739, 17623}}, +{5408, 16, 27770, {1, 3, 5, 13, 7, 51, 73, 67, 167, 849, 2021, 2977, 6591, 3721, 5827, 40897}}, +{5409, 16, 27779, {1, 1, 5, 11, 27, 19, 81, 181, 383, 23, 1061, 3327, 1671, 7113, 7435, 17591}}, +{5410, 16, 27781, {1, 3, 3, 7, 25, 33, 73, 23, 103, 821, 917, 1425, 4739, 7227, 12365, 29509}}, +{5411, 16, 27791, {1, 1, 1, 7, 3, 37, 81, 231, 135, 663, 1983, 399, 6881, 14991, 4957, 20913}}, +{5412, 16, 27809, {1, 3, 7, 15, 25, 41, 65, 215, 301, 471, 1669, 65, 227, 9307, 29867, 9503}}, +{5413, 16, 27810, {1, 1, 7, 3, 25, 47, 31, 63, 53, 995, 33, 1297, 3423, 12301, 16255, 14467}}, +{5414, 16, 27815, {1, 3, 1, 1, 31, 25, 79, 131, 353, 169, 1425, 2257, 2631, 1559, 793, 48383}}, +{5415, 16, 27827, {1, 3, 3, 5, 31, 9, 93, 35, 503, 243, 595, 2939, 771, 7333, 13429, 59457}}, +{5416, 16, 27834, {1, 3, 1, 7, 5, 51, 21, 237, 453, 743, 775, 2207, 453, 12077, 12283, 9735}}, +{5417, 16, 27865, {1, 3, 1, 15, 5, 47, 59, 239, 87, 97, 885, 3191, 2547, 13227, 7433, 4989}}, +{5418, 16, 27899, {1, 3, 5, 15, 21, 33, 41, 155, 509, 317, 517, 1101, 133, 1897, 8235, 57673}}, +{5419, 16, 27901, {1, 1, 5, 15, 7, 9, 59, 155, 415, 831, 1173, 1263, 5451, 7181, 7233, 51483}}, +{5420, 16, 27914, {1, 1, 7, 3, 31, 43, 71, 39, 155, 529, 895, 827, 3203, 4625, 32185, 53507}}, +{5421, 16, 27950, {1, 3, 1, 11, 15, 17, 85, 141, 277, 439, 1775, 4015, 4457, 281, 22455, 47591}}, +{5422, 16, 27994, {1, 3, 5, 11, 25, 41, 93, 39, 51, 655, 1347, 3109, 2479, 9057, 18939, 26217}}, +{5423, 16, 28005, {1, 3, 3, 11, 31, 41, 7, 189, 241, 443, 65, 1723, 4817, 13405, 9641, 63965}}, +{5424, 16, 28009, {1, 1, 5, 3, 19, 29, 111, 11, 399, 277, 425, 1331, 5365, 14521, 16449, 29411}}, +{5425, 16, 28033, {1, 1, 3, 9, 25, 53, 91, 175, 481, 307, 1025, 71, 7425, 10667, 4053, 25605}}, +{5426, 16, 28039, {1, 3, 7, 7, 3, 13, 75, 175, 467, 363, 1889, 1759, 1155, 5511, 13047, 39637}}, +{5427, 16, 28060, {1, 3, 7, 9, 5, 21, 65, 43, 223, 97, 835, 2253, 3313, 9817, 23015, 55365}}, +{5428, 16, 28067, {1, 1, 1, 13, 9, 63, 95, 61, 417, 713, 1469, 1815, 795, 13609, 1567, 33535}}, +{5429, 16, 28069, {1, 3, 7, 1, 25, 45, 41, 27, 53, 407, 1633, 1317, 6267, 3293, 8899, 45235}}, +{5430, 16, 28099, {1, 3, 5, 11, 23, 47, 91, 211, 41, 775, 1301, 1407, 7931, 4491, 7579, 62321}}, +{5431, 16, 28113, {1, 1, 1, 7, 23, 15, 57, 31, 437, 293, 1999, 2589, 5453, 2519, 15533, 26949}}, +{5432, 16, 28114, {1, 3, 1, 9, 1, 27, 41, 165, 129, 297, 1887, 1171, 201, 5817, 24503, 38911}}, +{5433, 16, 28139, {1, 3, 1, 7, 1, 11, 63, 225, 191, 623, 1281, 3275, 167, 14697, 4905, 47289}}, +{5434, 16, 28142, {1, 3, 7, 7, 15, 47, 87, 177, 303, 391, 355, 3997, 7557, 6201, 20531, 22483}}, +{5435, 16, 28153, {1, 3, 3, 15, 17, 31, 111, 87, 61, 477, 1581, 3787, 5919, 10511, 2607, 62951}}, +{5436, 16, 28166, {1, 3, 3, 9, 29, 19, 63, 27, 205, 915, 1131, 3821, 673, 2875, 12703, 14367}}, +{5437, 16, 28172, {1, 3, 7, 1, 21, 19, 25, 97, 281, 635, 629, 181, 5207, 11133, 3687, 3489}}, +{5438, 16, 28183, {1, 3, 3, 9, 5, 63, 3, 21, 385, 713, 1805, 3583, 2807, 15455, 13057, 39771}}, +{5439, 16, 28194, {1, 3, 5, 9, 3, 59, 1, 253, 123, 405, 575, 3911, 4609, 11869, 23593, 947}}, +{5440, 16, 28232, {1, 1, 7, 5, 21, 27, 101, 221, 413, 153, 1647, 3637, 803, 5697, 20761, 61137}}, +{5441, 16, 28245, {1, 3, 7, 13, 31, 35, 111, 253, 187, 499, 465, 157, 5551, 10417, 323, 34913}}, +{5442, 16, 28246, {1, 1, 1, 7, 11, 41, 29, 65, 393, 69, 1373, 2291, 7807, 13159, 13735, 31001}}, +{5443, 16, 28252, {1, 3, 7, 13, 31, 49, 1, 35, 377, 11, 427, 2803, 1725, 9165, 22633, 63985}}, +{5444, 16, 28265, {1, 3, 7, 13, 3, 41, 27, 43, 269, 599, 1035, 3681, 309, 6011, 1065, 27901}}, +{5445, 16, 28301, {1, 3, 5, 13, 1, 19, 105, 143, 425, 883, 1669, 155, 189, 8573, 10759, 25507}}, +{5446, 16, 28323, {1, 3, 5, 1, 15, 37, 115, 9, 149, 79, 1733, 1045, 1849, 3289, 13957, 63171}}, +{5447, 16, 28344, {1, 1, 3, 9, 17, 27, 49, 201, 155, 901, 47, 1585, 4419, 8117, 25425, 14699}}, +{5448, 16, 28362, {1, 1, 7, 13, 19, 55, 19, 21, 427, 77, 1295, 1471, 6271, 7985, 19337, 12701}}, +{5449, 16, 28400, {1, 1, 1, 1, 11, 49, 101, 53, 175, 157, 839, 2713, 6149, 6391, 8089, 27739}}, +{5450, 16, 28417, {1, 3, 1, 1, 5, 21, 121, 199, 107, 221, 993, 1737, 409, 2545, 9287, 54605}}, +{5451, 16, 28454, {1, 1, 1, 3, 25, 25, 51, 121, 371, 861, 967, 3257, 6221, 11701, 27897, 42509}}, +{5452, 16, 28466, {1, 1, 1, 3, 17, 25, 101, 191, 313, 817, 815, 1855, 7999, 12649, 23385, 26081}}, +{5453, 16, 28468, {1, 1, 5, 1, 25, 55, 51, 237, 63, 943, 455, 619, 2381, 9773, 14575, 34205}}, +{5454, 16, 28477, {1, 3, 3, 3, 13, 49, 101, 37, 457, 727, 1009, 2389, 4841, 16303, 9599, 17773}}, +{5455, 16, 28498, {1, 1, 7, 9, 19, 59, 111, 205, 19, 229, 1755, 1169, 7767, 13335, 19669, 33269}}, +{5456, 16, 28510, {1, 3, 1, 15, 29, 1, 51, 167, 7, 415, 1295, 3165, 1241, 12859, 5531, 20083}}, +{5457, 16, 28513, {1, 1, 3, 7, 7, 51, 31, 221, 57, 643, 1461, 3951, 6237, 5757, 1907, 40471}}, +{5458, 16, 28571, {1, 3, 3, 5, 23, 39, 49, 177, 183, 117, 1379, 3803, 771, 12723, 22291, 32667}}, +{5459, 16, 28573, {1, 1, 3, 13, 27, 17, 39, 27, 313, 141, 1421, 2967, 2213, 1915, 23219, 15113}}, +{5460, 16, 28578, {1, 1, 1, 11, 5, 55, 51, 55, 389, 895, 57, 1447, 1497, 2799, 19585, 11587}}, +{5461, 16, 28587, {1, 1, 5, 13, 11, 55, 91, 77, 69, 131, 93, 1383, 3321, 10487, 15087, 8539}}, +{5462, 16, 28601, {1, 1, 3, 9, 23, 49, 107, 131, 363, 733, 1189, 3575, 7815, 10071, 20291, 7533}}, +{5463, 16, 28646, {1, 1, 3, 15, 31, 31, 73, 15, 199, 17, 761, 3271, 1419, 12985, 32717, 37317}}, +{5464, 16, 28663, {1, 3, 1, 13, 23, 9, 3, 59, 109, 729, 1321, 4023, 7041, 14445, 22205, 8993}}, +{5465, 16, 28681, {1, 1, 3, 15, 19, 43, 99, 59, 491, 479, 715, 2235, 7493, 889, 31465, 1375}}, +{5466, 16, 28682, {1, 3, 3, 15, 9, 47, 35, 115, 227, 615, 605, 1143, 5923, 10939, 9497, 24911}}, +{5467, 16, 28699, {1, 1, 3, 15, 23, 53, 111, 87, 423, 497, 85, 3525, 7341, 8885, 21543, 30083}}, +{5468, 16, 28706, {1, 1, 5, 3, 21, 5, 117, 157, 407, 743, 715, 1883, 4425, 10187, 6395, 43673}}, +{5469, 16, 28708, {1, 3, 3, 3, 31, 39, 119, 77, 269, 891, 1391, 3085, 2881, 10639, 3391, 44911}}, +{5470, 16, 28717, {1, 3, 7, 5, 7, 5, 115, 91, 5, 107, 1401, 1409, 1811, 737, 5399, 9119}}, +{5471, 16, 28720, {1, 1, 5, 9, 17, 45, 107, 15, 397, 299, 1219, 1675, 963, 10111, 31679, 13809}}, +{5472, 16, 28735, {1, 1, 3, 7, 29, 17, 43, 95, 261, 601, 1091, 3633, 1357, 13461, 16583, 12183}}, +{5473, 16, 28761, {1, 1, 5, 1, 19, 55, 5, 195, 187, 427, 421, 1717, 4223, 2943, 23147, 32985}}, +{5474, 16, 28783, {1, 3, 1, 3, 3, 23, 69, 95, 347, 273, 1223, 3061, 1587, 4707, 32415, 53991}}, +{5475, 16, 28788, {1, 1, 7, 13, 15, 13, 29, 151, 325, 949, 2029, 813, 5339, 14165, 1159, 56917}}, +{5476, 16, 28811, {1, 1, 1, 13, 9, 33, 67, 109, 215, 313, 1407, 3543, 2403, 5051, 20367, 13527}}, +{5477, 16, 28825, {1, 3, 1, 9, 5, 1, 9, 195, 497, 495, 1107, 745, 1647, 10637, 1933, 44965}}, +{5478, 16, 28838, {1, 1, 3, 9, 13, 19, 49, 183, 497, 519, 1433, 519, 4317, 2359, 10349, 63789}}, +{5479, 16, 28850, {1, 3, 5, 9, 29, 45, 55, 163, 189, 533, 275, 237, 5453, 8895, 6377, 14117}}, +{5480, 16, 28891, {1, 3, 7, 5, 25, 3, 111, 241, 139, 383, 689, 3481, 2557, 11163, 5275, 14671}}, +{5481, 16, 28897, {1, 3, 3, 9, 3, 5, 5, 141, 507, 331, 645, 1957, 5857, 2083, 24717, 11131}}, +{5482, 16, 28932, {1, 1, 5, 1, 11, 49, 113, 45, 491, 945, 1467, 3485, 6369, 15983, 14489, 12679}}, +{5483, 16, 28975, {1, 3, 7, 9, 11, 41, 77, 127, 147, 635, 1757, 587, 7423, 4233, 14875, 30531}}, +{5484, 16, 28998, {1, 3, 3, 9, 17, 29, 21, 249, 155, 441, 1443, 2093, 1967, 2117, 5815, 3857}}, +{5485, 16, 29052, {1, 3, 5, 3, 11, 55, 75, 157, 105, 507, 309, 3737, 2645, 7547, 29373, 62775}}, +{5486, 16, 29090, {1, 1, 3, 3, 11, 29, 49, 241, 21, 653, 1273, 715, 8123, 14241, 25257, 1681}}, +{5487, 16, 29096, {1, 1, 7, 5, 11, 31, 33, 215, 243, 369, 247, 3365, 4065, 9389, 32457, 58393}}, +{5488, 16, 29104, {1, 3, 5, 3, 31, 55, 51, 201, 439, 835, 1805, 25, 7987, 10611, 26893, 43663}}, +{5489, 16, 29113, {1, 1, 5, 9, 27, 51, 29, 31, 17, 163, 71, 603, 3083, 12439, 11043, 6471}}, +{5490, 16, 29133, {1, 1, 5, 7, 13, 1, 91, 109, 213, 721, 1345, 3037, 3047, 5209, 15559, 17467}}, +{5491, 16, 29142, {1, 1, 3, 9, 19, 37, 93, 185, 107, 859, 501, 3843, 1631, 4389, 2215, 52225}}, +{5492, 16, 29170, {1, 1, 3, 3, 25, 5, 119, 17, 33, 841, 997, 439, 6135, 7405, 8445, 40087}}, +{5493, 16, 29192, {1, 1, 7, 15, 19, 17, 101, 43, 423, 647, 29, 1143, 3259, 7807, 15929, 809}}, +{5494, 16, 29221, {1, 1, 7, 13, 21, 57, 83, 101, 183, 309, 171, 3173, 7919, 7263, 29403, 11055}}, +{5495, 16, 29236, {1, 1, 1, 13, 3, 1, 57, 15, 435, 713, 459, 847, 3115, 191, 19809, 43037}}, +{5496, 16, 29246, {1, 1, 7, 7, 17, 45, 91, 117, 157, 647, 121, 4091, 3611, 14169, 19883, 9069}}, +{5497, 16, 29293, {1, 1, 7, 7, 1, 47, 21, 253, 419, 157, 549, 2105, 4475, 3127, 3939, 5809}}, +{5498, 16, 29305, {1, 1, 5, 7, 15, 7, 71, 195, 87, 757, 77, 1391, 151, 12995, 26403, 17789}}, +{5499, 16, 29312, {1, 1, 1, 15, 15, 3, 79, 43, 475, 263, 1195, 2385, 5955, 7039, 15625, 19263}}, +{5500, 16, 29339, {1, 1, 5, 13, 13, 29, 5, 29, 489, 929, 2027, 2771, 6899, 14173, 13747, 1019}}, +{5501, 16, 29365, {1, 1, 7, 1, 5, 45, 37, 85, 221, 871, 627, 3445, 4853, 4243, 21651, 30201}}, +{5502, 16, 29389, {1, 3, 7, 11, 9, 49, 73, 245, 161, 321, 579, 2641, 6653, 5513, 11555, 53091}}, +{5503, 16, 29402, {1, 1, 7, 7, 25, 63, 101, 179, 497, 113, 9, 549, 5341, 6097, 13305, 52421}}, +{5504, 16, 29423, {1, 3, 3, 7, 21, 7, 89, 79, 137, 651, 189, 3025, 1403, 4559, 32611, 1857}}, +{5505, 16, 29443, {1, 3, 1, 13, 27, 55, 61, 135, 81, 195, 799, 3477, 4873, 2691, 29769, 59033}}, +{5506, 16, 29445, {1, 3, 3, 15, 29, 11, 7, 11, 151, 649, 1511, 2327, 6921, 12911, 3571, 35039}}, +{5507, 16, 29463, {1, 1, 5, 11, 25, 19, 49, 133, 455, 373, 1827, 3619, 2127, 3365, 11327, 52785}}, +{5508, 16, 29473, {1, 3, 5, 1, 9, 19, 107, 171, 205, 93, 1557, 2693, 4297, 4415, 20407, 19221}}, +{5509, 16, 29493, {1, 3, 3, 11, 15, 45, 37, 143, 61, 759, 2047, 2465, 3923, 9477, 30831, 46377}}, +{5510, 16, 29506, {1, 3, 7, 11, 17, 51, 117, 129, 77, 579, 1167, 1575, 1967, 10099, 22137, 31431}}, +{5511, 16, 29518, {1, 1, 5, 13, 31, 61, 67, 37, 49, 283, 235, 783, 7353, 5149, 12245, 18725}}, +{5512, 16, 29532, {1, 1, 5, 3, 17, 33, 35, 83, 359, 253, 1911, 913, 6481, 4635, 24223, 19693}}, +{5513, 16, 29560, {1, 1, 1, 13, 19, 15, 81, 131, 417, 969, 1911, 2829, 3097, 5333, 11175, 52269}}, +{5514, 16, 29590, {1, 3, 7, 15, 5, 39, 19, 205, 329, 83, 1473, 3259, 6409, 12297, 30557, 40917}}, +{5515, 16, 29594, {1, 3, 1, 15, 17, 33, 123, 185, 501, 299, 621, 929, 5797, 10539, 12321, 61043}}, +{5516, 16, 29637, {1, 3, 3, 1, 7, 51, 119, 19, 17, 203, 373, 2145, 2367, 9965, 28071, 50083}}, +{5517, 16, 29647, {1, 1, 1, 5, 1, 35, 43, 243, 91, 793, 1299, 2705, 7987, 1291, 10147, 17863}}, +{5518, 16, 29650, {1, 3, 5, 15, 27, 13, 99, 33, 179, 479, 897, 1113, 1639, 12321, 23987, 36219}}, +{5519, 16, 29655, {1, 1, 5, 9, 29, 41, 85, 9, 389, 583, 293, 1727, 2575, 13767, 15443, 40027}}, +{5520, 16, 29661, {1, 1, 7, 11, 29, 33, 93, 115, 51, 747, 1569, 3557, 869, 1991, 29877, 44131}}, +{5521, 16, 29680, {1, 3, 7, 7, 29, 11, 33, 137, 411, 689, 1815, 1789, 6557, 5973, 19445, 49449}}, +{5522, 16, 29721, {1, 1, 5, 1, 17, 3, 77, 55, 351, 325, 983, 3935, 819, 14127, 18893, 62553}}, +{5523, 16, 29751, {1, 3, 3, 1, 15, 33, 25, 159, 135, 385, 837, 3615, 1649, 1687, 3421, 47579}}, +{5524, 16, 29755, {1, 3, 1, 7, 17, 25, 125, 169, 469, 919, 1789, 863, 2827, 949, 21347, 10517}}, +{5525, 16, 29760, {1, 3, 1, 11, 27, 19, 45, 255, 175, 483, 1073, 3779, 611, 2809, 179, 19767}}, +{5526, 16, 29772, {1, 1, 3, 1, 21, 61, 47, 171, 179, 85, 61, 1209, 4005, 11439, 8477, 27229}}, +{5527, 16, 29778, {1, 1, 1, 1, 3, 1, 43, 159, 261, 411, 1449, 1621, 3681, 3465, 24029, 3493}}, +{5528, 16, 29799, {1, 3, 1, 11, 5, 13, 9, 23, 369, 769, 363, 3329, 409, 13151, 30269, 9621}}, +{5529, 16, 29824, {1, 1, 5, 1, 13, 39, 121, 39, 295, 981, 1151, 4039, 8179, 5007, 25527, 1249}}, +{5530, 16, 29841, {1, 3, 7, 5, 17, 21, 47, 233, 211, 349, 643, 109, 7553, 11453, 30967, 30959}}, +{5531, 16, 29842, {1, 1, 5, 3, 31, 39, 105, 137, 487, 855, 107, 1567, 2385, 2889, 25777, 33709}}, +{5532, 16, 29853, {1, 1, 1, 9, 1, 7, 9, 69, 465, 965, 355, 299, 3327, 14997, 14599, 2241}}, +{5533, 16, 29867, {1, 3, 5, 11, 5, 39, 69, 203, 367, 611, 199, 3931, 5039, 8683, 8675, 49151}}, +{5534, 16, 29949, {1, 1, 7, 13, 31, 35, 101, 213, 273, 827, 203, 2773, 4131, 1397, 15311, 62903}}, +{5535, 16, 29950, {1, 3, 7, 9, 23, 41, 33, 213, 411, 965, 563, 3035, 247, 15019, 20429, 61081}}, +{5536, 16, 29964, {1, 1, 5, 5, 5, 1, 1, 203, 27, 199, 67, 1301, 7831, 12839, 2777, 6325}}, +{5537, 16, 29967, {1, 3, 1, 11, 27, 3, 11, 173, 9, 121, 1701, 2741, 29, 16319, 15849, 11989}}, +{5538, 16, 29985, {1, 1, 5, 13, 17, 49, 125, 153, 261, 603, 1617, 3967, 6083, 7745, 19683, 49885}}, +{5539, 16, 29992, {1, 3, 3, 7, 23, 13, 39, 169, 135, 361, 579, 1443, 7615, 2389, 5669, 651}}, +{5540, 16, 30000, {1, 3, 5, 9, 31, 19, 81, 83, 483, 93, 1895, 2285, 7771, 8281, 8353, 39677}}, +{5541, 16, 30020, {1, 1, 7, 7, 23, 51, 127, 25, 101, 611, 1095, 3013, 2685, 8153, 22629, 53355}}, +{5542, 16, 30024, {1, 1, 1, 11, 11, 37, 35, 127, 317, 877, 1591, 401, 4121, 9945, 12121, 28257}}, +{5543, 16, 30030, {1, 3, 5, 11, 23, 9, 43, 135, 37, 405, 2009, 2903, 3065, 6591, 8473, 58231}}, +{5544, 16, 30066, {1, 1, 3, 11, 21, 45, 21, 205, 425, 891, 357, 2609, 495, 7541, 2161, 37853}}, +{5545, 16, 30071, {1, 3, 1, 1, 25, 9, 113, 243, 317, 491, 997, 2023, 5869, 13643, 11483, 6733}}, +{5546, 16, 30078, {1, 3, 1, 15, 13, 3, 75, 25, 409, 421, 1817, 857, 4575, 12559, 1211, 62177}}, +{5547, 16, 30082, {1, 1, 3, 7, 17, 35, 115, 195, 217, 223, 1195, 749, 5619, 7265, 7369, 46907}}, +{5548, 16, 30096, {1, 1, 1, 13, 5, 57, 117, 161, 121, 533, 987, 3959, 5047, 15213, 15811, 41841}}, +{5549, 16, 30101, {1, 3, 7, 1, 19, 55, 97, 191, 217, 75, 1881, 3351, 3737, 12179, 22875, 28767}}, +{5550, 16, 30102, {1, 3, 1, 9, 15, 41, 9, 97, 491, 31, 1191, 963, 875, 8259, 2723, 9503}}, +{5551, 16, 30122, {1, 3, 7, 9, 3, 17, 21, 71, 1, 523, 2031, 3469, 3181, 8707, 6093, 8837}}, +{5552, 16, 30141, {1, 3, 5, 3, 5, 1, 11, 91, 33, 37, 643, 85, 4325, 4293, 8351, 28311}}, +{5553, 16, 30159, {1, 3, 7, 5, 15, 45, 47, 183, 391, 113, 493, 3607, 2541, 13521, 31613, 36049}}, +{5554, 16, 30168, {1, 1, 3, 9, 15, 33, 115, 69, 289, 217, 1875, 1339, 4995, 9073, 6909, 15977}}, +{5555, 16, 30177, {1, 1, 7, 3, 9, 29, 39, 219, 119, 369, 893, 1293, 4511, 15703, 11093, 30259}}, +{5556, 16, 30183, {1, 1, 5, 13, 19, 9, 17, 75, 149, 415, 35, 97, 563, 1689, 18311, 54291}}, +{5557, 16, 30197, {1, 1, 7, 3, 17, 15, 71, 29, 25, 883, 1801, 1675, 5585, 9413, 3813, 26673}}, +{5558, 16, 30213, {1, 1, 3, 15, 5, 13, 31, 41, 311, 411, 573, 281, 8075, 7163, 11817, 29121}}, +{5559, 16, 30231, {1, 1, 7, 9, 7, 57, 15, 141, 337, 123, 269, 3737, 6455, 2539, 13655, 59809}}, +{5560, 16, 30232, {1, 3, 1, 15, 15, 23, 111, 51, 429, 483, 1567, 1317, 8057, 1609, 30181, 35687}}, +{5561, 16, 30241, {1, 3, 7, 9, 25, 43, 67, 13, 319, 587, 1827, 443, 2031, 8563, 16173, 58667}}, +{5562, 16, 30253, {1, 3, 5, 13, 11, 63, 89, 105, 377, 257, 7, 4077, 5091, 5125, 25, 39033}}, +{5563, 16, 30259, {1, 3, 3, 1, 9, 29, 7, 87, 239, 469, 1851, 1711, 5797, 7137, 11405, 20175}}, +{5564, 16, 30262, {1, 3, 3, 1, 13, 17, 101, 209, 301, 95, 1181, 3091, 4451, 1241, 17057, 335}}, +{5565, 16, 30268, {1, 1, 1, 9, 31, 7, 81, 161, 391, 677, 115, 141, 5375, 7279, 1887, 1645}}, +{5566, 16, 30297, {1, 1, 1, 11, 27, 61, 3, 195, 189, 409, 1747, 331, 2931, 9535, 1369, 47233}}, +{5567, 16, 30316, {1, 3, 5, 15, 7, 15, 105, 255, 491, 689, 97, 1131, 3459, 7147, 27541, 62307}}, +{5568, 16, 30322, {1, 3, 5, 9, 5, 23, 1, 209, 233, 717, 1919, 1835, 5073, 10403, 28979, 1945}}, +{5569, 16, 30344, {1, 1, 3, 9, 3, 35, 107, 209, 255, 447, 227, 273, 443, 9367, 24105, 34095}}, +{5570, 16, 30350, {1, 1, 3, 11, 3, 33, 5, 165, 83, 787, 1555, 31, 4351, 16301, 27453, 56739}}, +{5571, 16, 30355, {1, 1, 5, 5, 29, 9, 127, 253, 281, 487, 441, 1129, 2811, 9113, 28855, 57117}}, +{5572, 16, 30429, {1, 1, 1, 13, 13, 1, 17, 143, 121, 917, 1571, 3777, 2297, 3691, 3001, 42327}}, +{5573, 16, 30445, {1, 1, 5, 1, 25, 7, 41, 245, 241, 929, 1203, 3755, 7113, 9333, 22549, 12253}}, +{5574, 16, 30477, {1, 3, 1, 11, 1, 13, 69, 73, 285, 975, 1331, 3411, 7777, 3489, 2763, 44297}}, +{5575, 16, 30513, {1, 3, 5, 11, 3, 37, 21, 105, 153, 307, 989, 627, 3127, 6169, 10573, 22139}}, +{5576, 16, 30520, {1, 3, 5, 15, 11, 11, 39, 21, 355, 437, 547, 2283, 6443, 5561, 6367, 53899}}, +{5577, 16, 30540, {1, 1, 1, 9, 25, 51, 97, 175, 131, 207, 1367, 2561, 7455, 8289, 5877, 4383}}, +{5578, 16, 30551, {1, 3, 7, 1, 29, 17, 7, 1, 43, 831, 591, 2145, 975, 909, 23107, 43987}}, +{5579, 16, 30573, {1, 3, 5, 13, 5, 47, 65, 65, 439, 807, 271, 1615, 1873, 10905, 30537, 3337}}, +{5580, 16, 30609, {1, 1, 1, 13, 29, 1, 53, 5, 307, 347, 1059, 545, 1129, 11883, 5969, 50433}}, +{5581, 16, 30622, {1, 1, 3, 5, 31, 29, 63, 201, 255, 803, 677, 1499, 1691, 14037, 18251, 6881}}, +{5582, 16, 30635, {1, 3, 1, 5, 5, 13, 13, 121, 505, 855, 467, 2803, 3297, 4689, 18443, 60757}}, +{5583, 16, 30658, {1, 1, 5, 13, 11, 19, 11, 201, 101, 431, 693, 1267, 6909, 7759, 2265, 6125}}, +{5584, 16, 30667, {1, 1, 7, 13, 9, 3, 37, 209, 269, 27, 1041, 2587, 4667, 11077, 27009, 27967}}, +{5585, 16, 30681, {1, 1, 5, 5, 1, 5, 127, 179, 463, 949, 1525, 231, 1201, 3283, 9929, 46677}}, +{5586, 16, 30684, {1, 3, 1, 15, 9, 11, 89, 129, 331, 833, 1415, 229, 2059, 13145, 30525, 33773}}, +{5587, 16, 30703, {1, 1, 7, 15, 7, 43, 95, 177, 313, 989, 483, 825, 1885, 4535, 8213, 39835}}, +{5588, 16, 30705, {1, 1, 7, 3, 19, 27, 45, 163, 17, 523, 1565, 3753, 7433, 14117, 8499, 40177}}, +{5589, 16, 30715, {1, 3, 3, 15, 23, 45, 95, 31, 55, 469, 383, 237, 6287, 5561, 20901, 48259}}, +{5590, 16, 30742, {1, 1, 3, 1, 23, 61, 101, 185, 35, 553, 463, 1169, 2875, 12491, 14327, 47999}}, +{5591, 16, 30748, {1, 3, 3, 13, 23, 29, 77, 21, 19, 3, 769, 1943, 2081, 9135, 29767, 11367}}, +{5592, 16, 30758, {1, 1, 5, 15, 5, 11, 59, 163, 355, 993, 375, 3181, 2675, 8515, 17007, 38467}}, +{5593, 16, 30767, {1, 1, 5, 13, 19, 5, 107, 83, 123, 843, 413, 2137, 7531, 3833, 6149, 55925}}, +{5594, 16, 30770, {1, 3, 1, 13, 23, 9, 41, 145, 265, 591, 1899, 3145, 5255, 13653, 12245, 25367}}, +{5595, 16, 30772, {1, 1, 3, 15, 1, 45, 119, 79, 121, 137, 1945, 2041, 2409, 1377, 29501, 29885}}, +{5596, 16, 30807, {1, 1, 7, 11, 27, 57, 75, 183, 341, 237, 1909, 2785, 5973, 9965, 21729, 45089}}, +{5597, 16, 30814, {1, 3, 5, 7, 21, 1, 41, 189, 131, 1021, 1375, 1463, 5985, 12499, 4115, 9131}}, +{5598, 16, 30824, {1, 3, 7, 15, 21, 19, 59, 171, 339, 841, 1725, 2909, 6437, 2499, 17191, 43275}}, +{5599, 16, 30857, {1, 3, 1, 1, 15, 55, 31, 199, 351, 183, 1819, 1873, 7877, 12407, 7881, 1663}}, +{5600, 16, 30875, {1, 1, 3, 15, 1, 61, 111, 61, 115, 243, 1281, 3195, 1229, 10973, 189, 36049}}, +{5601, 16, 30931, {1, 1, 3, 15, 13, 13, 3, 49, 61, 839, 1615, 1853, 3619, 7805, 25441, 8789}}, +{5602, 16, 30933, {1, 3, 1, 9, 27, 43, 7, 193, 397, 869, 1079, 1785, 6535, 1801, 29363, 59269}}, +{5603, 16, 30949, {1, 3, 5, 5, 31, 57, 37, 53, 41, 871, 809, 1235, 1011, 12979, 8749, 52151}}, +{5604, 16, 30953, {1, 1, 7, 13, 25, 59, 69, 117, 463, 587, 513, 297, 6991, 5905, 25737, 37249}}, +{5605, 16, 30982, {1, 1, 5, 1, 27, 19, 121, 97, 349, 793, 1971, 3057, 4781, 15841, 22625, 58637}}, +{5606, 16, 31010, {1, 1, 5, 5, 25, 31, 11, 133, 411, 239, 1071, 3473, 1733, 7175, 31841, 46665}}, +{5607, 16, 31012, {1, 3, 3, 13, 19, 25, 99, 175, 271, 175, 1755, 3597, 4615, 15207, 25573, 16089}}, +{5608, 16, 31039, {1, 1, 7, 11, 17, 19, 119, 91, 505, 791, 55, 2979, 7463, 10147, 23647, 33283}}, +{5609, 16, 31041, {1, 3, 1, 1, 21, 11, 43, 173, 239, 839, 1533, 1559, 549, 15621, 22133, 46387}}, +{5610, 16, 31061, {1, 1, 3, 13, 31, 15, 73, 15, 209, 267, 701, 2899, 1163, 10093, 7727, 44211}}, +{5611, 16, 31082, {1, 3, 1, 11, 29, 21, 5, 39, 421, 375, 411, 3693, 3901, 8507, 10883, 16189}}, +{5612, 16, 31087, {1, 3, 1, 7, 13, 13, 73, 167, 149, 677, 1435, 621, 2511, 13813, 13129, 55327}}, +{5613, 16, 31096, {1, 3, 5, 15, 7, 59, 83, 221, 77, 357, 281, 2689, 5629, 5837, 1701, 30811}}, +{5614, 16, 31115, {1, 3, 3, 11, 17, 1, 43, 95, 473, 981, 1487, 1337, 905, 3307, 22357, 181}}, +{5615, 16, 31130, {1, 1, 3, 7, 1, 27, 9, 3, 489, 1, 1265, 2463, 539, 12769, 825, 6149}}, +{5616, 16, 31168, {1, 3, 3, 3, 11, 27, 81, 237, 411, 241, 1613, 931, 6397, 4325, 29651, 49003}}, +{5617, 16, 31171, {1, 3, 3, 13, 1, 19, 55, 73, 47, 203, 1661, 1245, 6847, 2457, 25427, 33069}}, +{5618, 16, 31177, {1, 3, 7, 3, 7, 47, 11, 165, 391, 457, 301, 1213, 1913, 14531, 7847, 14811}}, +{5619, 16, 31180, {1, 3, 1, 9, 1, 9, 57, 203, 15, 733, 1131, 2751, 5869, 3165, 21497, 28881}}, +{5620, 16, 31191, {1, 3, 1, 5, 9, 7, 29, 85, 71, 571, 469, 2395, 2819, 8443, 2281, 50489}}, +{5621, 16, 31207, {1, 3, 5, 11, 13, 63, 47, 47, 349, 21, 861, 2217, 2945, 6967, 6605, 16459}}, +{5622, 16, 31247, {1, 1, 7, 5, 13, 3, 41, 53, 409, 289, 1225, 2965, 5283, 1785, 14443, 51755}}, +{5623, 16, 31249, {1, 3, 7, 13, 19, 1, 29, 191, 119, 37, 697, 1909, 481, 14157, 13425, 60581}}, +{5624, 16, 31285, {1, 3, 1, 13, 1, 15, 105, 79, 505, 681, 1741, 3683, 5775, 7479, 11387, 1321}}, +{5625, 16, 31303, {1, 1, 1, 11, 9, 35, 77, 73, 351, 217, 2029, 2845, 5143, 5677, 15465, 33123}}, +{5626, 16, 31310, {1, 1, 3, 3, 19, 49, 63, 109, 335, 743, 741, 1673, 3311, 3139, 25197, 13793}}, +{5627, 16, 31337, {1, 3, 1, 3, 29, 63, 79, 1, 493, 13, 1487, 4015, 6983, 1433, 26023, 55591}}, +{5628, 16, 31352, {1, 3, 3, 11, 1, 25, 57, 207, 309, 201, 1513, 1749, 3785, 9217, 11531, 40597}}, +{5629, 16, 31357, {1, 3, 7, 13, 3, 23, 69, 253, 311, 773, 807, 1063, 745, 4843, 25221, 55885}}, +{5630, 16, 31374, {1, 1, 3, 11, 29, 47, 67, 183, 11, 259, 5, 1935, 2295, 8105, 19139, 11707}}, +{5631, 16, 31379, {1, 1, 3, 3, 23, 3, 53, 165, 255, 501, 1547, 3649, 5631, 13307, 8869, 5595}}, +{5632, 16, 31388, {1, 1, 3, 5, 7, 29, 37, 223, 289, 925, 959, 309, 1479, 3141, 18661, 52123}}, +{5633, 16, 31410, {1, 3, 1, 1, 7, 59, 101, 219, 91, 793, 1103, 1485, 7547, 12889, 19097, 15613}}, +{5634, 16, 31416, {1, 1, 5, 15, 1, 17, 79, 83, 131, 683, 1611, 1635, 5405, 9621, 29489, 4801}}, +{5635, 16, 31467, {1, 1, 5, 7, 31, 63, 59, 125, 401, 261, 1445, 33, 187, 12913, 8639, 48413}}, +{5636, 16, 31495, {1, 3, 3, 13, 27, 37, 27, 99, 379, 851, 1311, 4051, 5483, 13935, 29679, 30905}}, +{5637, 16, 31504, {1, 1, 3, 1, 7, 57, 79, 23, 97, 561, 1083, 2327, 1545, 5387, 12119, 29717}}, +{5638, 16, 31507, {1, 1, 7, 7, 9, 41, 63, 165, 315, 247, 89, 2055, 7399, 1399, 2057, 39851}}, +{5639, 16, 31509, {1, 1, 1, 15, 9, 23, 7, 15, 457, 669, 661, 3269, 915, 3475, 15845, 59769}}, +{5640, 16, 31514, {1, 3, 7, 15, 17, 53, 83, 5, 457, 103, 1297, 2413, 1095, 7711, 27935, 56357}}, +{5641, 16, 31516, {1, 1, 3, 5, 17, 3, 81, 23, 165, 341, 781, 3583, 1751, 6763, 13937, 35331}}, +{5642, 16, 31530, {1, 1, 5, 11, 31, 21, 7, 63, 369, 867, 573, 45, 2781, 4507, 21553, 51933}}, +{5643, 16, 31555, {1, 1, 5, 15, 1, 37, 85, 133, 489, 733, 1471, 2089, 979, 7723, 7339, 59595}}, +{5644, 16, 31567, {1, 1, 1, 1, 7, 3, 3, 77, 137, 1009, 481, 1343, 397, 15865, 21701, 37509}}, +{5645, 16, 31570, {1, 3, 7, 5, 17, 57, 19, 245, 249, 289, 1847, 3057, 4905, 5905, 32459, 41305}}, +{5646, 16, 31586, {1, 1, 5, 1, 23, 23, 1, 177, 115, 337, 983, 421, 3135, 6319, 27109, 59641}}, +{5647, 16, 31598, {1, 3, 1, 5, 25, 1, 63, 73, 61, 967, 1567, 2645, 7347, 11877, 28777, 38507}}, +{5648, 16, 31605, {1, 1, 3, 9, 5, 41, 39, 101, 339, 337, 1079, 3861, 5049, 5601, 14377, 34093}}, +{5649, 16, 31609, {1, 3, 7, 7, 3, 47, 95, 157, 167, 1011, 1117, 3669, 7993, 11735, 8505, 64713}}, +{5650, 16, 31612, {1, 3, 1, 9, 3, 33, 11, 33, 65, 329, 401, 2659, 2851, 3903, 29791, 41613}}, +{5651, 16, 31626, {1, 1, 1, 15, 15, 17, 9, 69, 359, 41, 1475, 1919, 5829, 2189, 21295, 33255}}, +{5652, 16, 31634, {1, 3, 1, 3, 9, 23, 73, 247, 399, 775, 419, 3033, 865, 12595, 16345, 15079}}, +{5653, 16, 31655, {1, 3, 1, 5, 1, 17, 33, 23, 419, 585, 673, 929, 6955, 10247, 12647, 29107}}, +{5654, 16, 31681, {1, 3, 3, 13, 9, 33, 11, 13, 127, 529, 1219, 2401, 6459, 14745, 5123, 53023}}, +{5655, 16, 31705, {1, 3, 5, 11, 23, 11, 5, 19, 281, 121, 1671, 2171, 4545, 10691, 24875, 28849}}, +{5656, 16, 31706, {1, 3, 1, 3, 13, 25, 85, 131, 127, 977, 1599, 3319, 3107, 3185, 4879, 3455}}, +{5657, 16, 31718, {1, 1, 5, 1, 3, 13, 77, 15, 133, 185, 1319, 727, 2181, 12175, 28017, 28023}}, +{5658, 16, 31735, {1, 3, 7, 5, 29, 51, 113, 203, 331, 847, 1, 3445, 3669, 7711, 13647, 58651}}, +{5659, 16, 31741, {1, 3, 1, 3, 31, 27, 35, 199, 491, 839, 1275, 3385, 4743, 821, 26259, 11345}}, +{5660, 16, 31744, {1, 1, 7, 9, 21, 47, 9, 67, 119, 985, 127, 1987, 5451, 6403, 26183, 8349}}, +{5661, 16, 31762, {1, 3, 5, 1, 19, 3, 91, 217, 301, 595, 1789, 735, 4993, 229, 18033, 59625}}, +{5662, 16, 31774, {1, 3, 3, 3, 11, 25, 103, 211, 117, 9, 773, 1521, 2265, 8277, 23179, 22433}}, +{5663, 16, 31864, {1, 1, 7, 9, 3, 27, 63, 255, 175, 699, 293, 2409, 3155, 285, 8663, 53503}}, +{5664, 16, 31874, {1, 1, 5, 7, 27, 23, 63, 213, 323, 697, 1541, 3497, 2985, 12389, 11155, 26217}}, +{5665, 16, 31900, {1, 3, 1, 3, 31, 7, 47, 207, 185, 873, 1063, 1055, 205, 12469, 23505, 56245}}, +{5666, 16, 31910, {1, 3, 7, 13, 31, 17, 47, 95, 91, 483, 1997, 3273, 445, 2601, 15219, 10997}}, +{5667, 16, 31928, {1, 3, 3, 5, 29, 45, 29, 83, 457, 823, 1395, 1411, 1879, 9409, 11609, 32001}}, +{5668, 16, 31965, {1, 3, 5, 11, 21, 11, 43, 73, 159, 137, 29, 1957, 815, 5077, 16127, 42199}}, +{5669, 16, 31976, {1, 3, 5, 13, 9, 59, 47, 215, 293, 807, 309, 1951, 2285, 9287, 1019, 49501}}, +{5670, 16, 32016, {1, 1, 7, 13, 31, 7, 95, 189, 233, 363, 1039, 1675, 1715, 9049, 8537, 31051}}, +{5671, 16, 32032, {1, 3, 7, 9, 23, 35, 125, 251, 107, 401, 1113, 3585, 6331, 2363, 27889, 28877}}, +{5672, 16, 32037, {1, 1, 7, 13, 9, 1, 13, 69, 257, 369, 547, 1595, 1823, 9553, 25653, 31181}}, +{5673, 16, 32062, {1, 1, 7, 11, 9, 43, 3, 93, 69, 1019, 1935, 3297, 47, 7101, 1037, 63473}}, +{5674, 16, 32069, {1, 1, 7, 5, 21, 9, 97, 105, 405, 893, 1673, 3783, 2965, 7329, 4549, 25433}}, +{5675, 16, 32115, {1, 1, 5, 13, 5, 17, 31, 123, 415, 173, 1333, 2245, 1557, 16011, 28321, 4039}}, +{5676, 16, 32128, {1, 1, 5, 9, 15, 3, 27, 79, 511, 39, 945, 49, 3231, 9199, 21327, 11183}}, +{5677, 16, 32171, {1, 3, 3, 9, 3, 15, 115, 141, 387, 341, 953, 399, 6109, 12037, 21079, 26745}}, +{5678, 16, 32173, {1, 3, 3, 1, 5, 5, 31, 195, 477, 755, 687, 3811, 805, 679, 20687, 46299}}, +{5679, 16, 32182, {1, 1, 7, 15, 1, 31, 67, 159, 205, 141, 1667, 3077, 451, 13161, 16211, 6887}}, +{5680, 16, 32191, {1, 3, 3, 1, 7, 43, 87, 5, 49, 205, 231, 3957, 2947, 13199, 15743, 4681}}, +{5681, 16, 32193, {1, 3, 3, 15, 25, 37, 95, 11, 439, 553, 59, 1241, 7407, 13467, 22403, 44441}}, +{5682, 16, 32194, {1, 1, 1, 3, 21, 3, 127, 239, 491, 139, 1411, 3417, 4247, 6247, 13809, 31609}}, +{5683, 16, 32229, {1, 1, 5, 1, 9, 13, 5, 155, 109, 593, 119, 4091, 1911, 8301, 4239, 50081}}, +{5684, 16, 32230, {1, 3, 5, 13, 27, 3, 99, 225, 253, 169, 801, 3741, 1905, 12073, 31831, 17997}}, +{5685, 16, 32248, {1, 3, 7, 15, 9, 23, 93, 171, 453, 983, 1657, 1133, 6381, 5229, 32303, 17439}}, +{5686, 16, 32263, {1, 1, 7, 11, 7, 5, 125, 141, 63, 763, 1293, 1007, 4579, 1479, 11977, 59261}}, +{5687, 16, 32264, {1, 3, 1, 7, 1, 15, 49, 41, 367, 639, 1933, 401, 2335, 2441, 13653, 55555}}, +{5688, 16, 32269, {1, 3, 1, 7, 15, 23, 5, 213, 45, 721, 543, 2133, 4525, 9719, 28053, 54075}}, +{5689, 16, 32298, {1, 3, 7, 3, 11, 7, 23, 35, 169, 829, 1957, 2423, 3583, 4951, 28957, 29753}}, +{5690, 16, 32335, {1, 1, 3, 3, 1, 5, 19, 235, 175, 969, 229, 2335, 7215, 10195, 7487, 64191}}, +{5691, 16, 32340, {1, 1, 7, 3, 27, 1, 73, 49, 445, 863, 69, 3555, 993, 9553, 31941, 29901}}, +{5692, 16, 32356, {1, 3, 5, 11, 9, 25, 59, 177, 23, 997, 1041, 1135, 3879, 767, 2263, 51267}}, +{5693, 16, 32374, {1, 1, 7, 3, 1, 63, 49, 51, 237, 569, 1293, 1143, 3125, 16315, 17009, 24821}}, +{5694, 16, 32390, {1, 3, 3, 15, 11, 17, 121, 25, 349, 833, 557, 1975, 5405, 15189, 31243, 53541}}, +{5695, 16, 32401, {1, 3, 7, 9, 11, 15, 39, 15, 75, 87, 55, 2069, 3291, 507, 16925, 57751}}, +{5696, 16, 32414, {1, 1, 3, 15, 1, 21, 61, 139, 357, 931, 647, 947, 2291, 15557, 6739, 5881}}, +{5697, 16, 32417, {1, 3, 1, 9, 1, 47, 73, 59, 115, 497, 733, 1777, 905, 16181, 4351, 7345}}, +{5698, 16, 32442, {1, 3, 3, 7, 5, 21, 67, 113, 71, 743, 757, 1851, 7899, 10315, 15437, 61803}}, +{5699, 16, 32450, {1, 3, 7, 1, 9, 23, 77, 131, 395, 767, 1229, 2629, 5731, 11907, 32217, 18473}}, +{5700, 16, 32461, {1, 3, 5, 15, 1, 23, 123, 207, 291, 565, 1211, 501, 2111, 11381, 5171, 54841}}, +{5701, 16, 32473, {1, 1, 1, 15, 21, 13, 3, 175, 405, 109, 1353, 2495, 7619, 14971, 28179, 34737}}, +{5702, 16, 32479, {1, 3, 5, 3, 17, 25, 53, 71, 229, 729, 1953, 3119, 7747, 1551, 23417, 35563}}, +{5703, 16, 32530, {1, 1, 7, 7, 11, 31, 81, 43, 149, 537, 1253, 2759, 431, 4813, 8375, 46329}}, +{5704, 16, 32536, {1, 1, 1, 5, 11, 27, 61, 199, 239, 889, 723, 2353, 5663, 7385, 28165, 14675}}, +{5705, 16, 32548, {1, 3, 1, 7, 3, 3, 83, 247, 247, 57, 579, 1163, 2615, 4051, 2809, 46413}}, +{5706, 16, 32577, {1, 1, 3, 11, 13, 47, 11, 235, 475, 35, 843, 2329, 3519, 8899, 14533, 24889}}, +{5707, 16, 32628, {1, 3, 1, 1, 7, 31, 15, 101, 327, 499, 471, 1001, 339, 11863, 24787, 47191}}, +{5708, 16, 32642, {1, 1, 7, 1, 3, 55, 93, 43, 11, 65, 289, 1249, 5325, 13867, 29841, 34333}}, +{5709, 16, 32665, {1, 3, 3, 1, 25, 61, 87, 113, 115, 265, 1007, 1129, 7633, 6109, 5733, 22649}}, +{5710, 16, 32666, {1, 3, 1, 11, 31, 59, 127, 83, 33, 419, 1037, 3777, 6383, 2711, 2113, 17233}}, +{5711, 16, 32668, {1, 1, 5, 13, 11, 17, 73, 41, 257, 223, 359, 3821, 4617, 1943, 11331, 40153}}, +{5712, 16, 32696, {1, 1, 1, 1, 9, 25, 43, 179, 17, 1021, 1323, 761, 5861, 11547, 26017, 5165}}, +{5713, 16, 32722, {1, 3, 5, 3, 29, 21, 53, 111, 213, 717, 1101, 3215, 3021, 16343, 23387, 33439}}, +{5714, 16, 32757, {1, 3, 5, 13, 29, 11, 21, 89, 107, 111, 1121, 2785, 3493, 9873, 13, 40863}}, +{5715, 16, 32758, {1, 1, 5, 13, 15, 15, 111, 219, 59, 43, 333, 3581, 1311, 2799, 23987, 21637}}, +{5716, 17, 4, {1, 3, 1, 11, 21, 57, 115, 247, 499, 525, 1629, 3679, 2109, 6607, 27435, 1745, 71201}}, +{5717, 17, 7, {1, 3, 3, 3, 31, 17, 113, 165, 189, 361, 103, 1775, 3001, 3865, 30591, 2873, 17129}}, +{5718, 17, 16, {1, 1, 5, 5, 15, 47, 47, 85, 247, 471, 713, 3571, 2407, 9811, 8187, 32133, 8541}}, +{5719, 17, 22, {1, 3, 3, 1, 15, 1, 59, 151, 469, 351, 671, 2925, 7207, 5061, 28691, 4363, 50767}}, +{5720, 17, 25, {1, 1, 5, 7, 11, 35, 67, 45, 193, 3, 627, 3333, 6497, 12307, 28807, 13997, 108645}}, +{5721, 17, 31, {1, 3, 1, 1, 17, 63, 125, 185, 485, 759, 717, 1993, 6707, 3993, 2181, 8173, 18057}}, +{5722, 17, 32, {1, 1, 3, 13, 7, 15, 113, 207, 103, 191, 1895, 2595, 3873, 12021, 19259, 12553, 119119}}, +{5723, 17, 42, {1, 3, 7, 1, 17, 11, 101, 209, 315, 9, 901, 2303, 7623, 7459, 26391, 45143, 5753}}, +{5724, 17, 52, {1, 1, 5, 15, 1, 5, 71, 155, 167, 89, 145, 3483, 2385, 15205, 9193, 20637, 58473}}, +{5725, 17, 61, {1, 1, 5, 7, 25, 55, 57, 51, 333, 299, 1721, 1667, 6513, 10191, 29405, 21923, 76593}}, +{5726, 17, 70, {1, 1, 5, 1, 7, 37, 107, 91, 241, 137, 627, 2749, 5573, 11243, 26197, 4545, 105599}}, +{5727, 17, 76, {1, 3, 1, 5, 25, 37, 73, 61, 57, 249, 1953, 1385, 6479, 3701, 10693, 617, 62535}}, +{5728, 17, 81, {1, 1, 1, 15, 5, 63, 41, 151, 395, 681, 227, 3027, 8123, 15091, 15475, 35671, 21129}}, +{5729, 17, 87, {1, 3, 5, 11, 29, 21, 15, 233, 103, 463, 1829, 2257, 1717, 2249, 9599, 5097, 55705}}, +{5730, 17, 93, {1, 3, 5, 1, 29, 3, 35, 151, 193, 105, 1107, 827, 7169, 1843, 15225, 29025, 43165}}, +{5731, 17, 98, {1, 1, 7, 15, 17, 51, 93, 199, 205, 41, 113, 1081, 1571, 11471, 11057, 16149, 66905}}, +{5732, 17, 122, {1, 1, 3, 11, 5, 25, 107, 195, 51, 675, 1683, 3739, 1653, 611, 23249, 53157, 127785}}, +{5733, 17, 133, {1, 1, 7, 5, 7, 3, 25, 145, 453, 735, 441, 77, 8171, 9281, 22749, 36973, 106237}}, +{5734, 17, 134, {1, 1, 3, 13, 13, 5, 95, 33, 223, 369, 453, 2031, 3531, 6931, 8977, 54109, 115487}}, +{5735, 17, 140, {1, 1, 7, 7, 1, 61, 33, 183, 245, 623, 529, 1831, 1867, 2845, 8311, 10143, 67897}}, +{5736, 17, 146, {1, 3, 7, 11, 27, 23, 93, 9, 61, 451, 67, 1695, 4227, 2415, 19249, 44765, 24611}}, +{5737, 17, 158, {1, 3, 3, 11, 29, 57, 65, 117, 349, 149, 363, 1095, 4989, 3071, 17519, 18079, 7277}}, +{5738, 17, 171, {1, 3, 5, 9, 1, 7, 59, 87, 307, 111, 1291, 789, 7361, 6477, 11229, 36785, 33303}}, +{5739, 17, 176, {1, 3, 5, 1, 19, 47, 53, 81, 127, 849, 1479, 1459, 1889, 15087, 22115, 20587, 121005}}, +{5740, 17, 179, {1, 1, 7, 15, 31, 31, 71, 55, 253, 927, 277, 2087, 1313, 3721, 22729, 34709, 9821}}, +{5741, 17, 182, {1, 3, 5, 13, 13, 63, 73, 41, 165, 315, 1907, 2005, 691, 725, 22685, 8673, 76011}}, +{5742, 17, 191, {1, 1, 5, 9, 23, 61, 47, 167, 279, 683, 683, 1261, 4037, 15251, 9421, 45359, 38001}}, +{5743, 17, 193, {1, 1, 7, 3, 17, 33, 69, 139, 235, 709, 1475, 2483, 7559, 8581, 23965, 31153, 5097}}, +{5744, 17, 224, {1, 1, 7, 15, 23, 61, 43, 5, 433, 531, 761, 2749, 2881, 5225, 13491, 16479, 50203}}, +{5745, 17, 227, {1, 1, 3, 9, 29, 7, 9, 23, 339, 315, 1723, 779, 2983, 6571, 16025, 63055, 111103}}, +{5746, 17, 229, {1, 1, 7, 13, 23, 55, 71, 121, 297, 193, 41, 3165, 4419, 5853, 28127, 56151, 16597}}, +{5747, 17, 236, {1, 1, 5, 7, 7, 23, 93, 11, 261, 297, 1769, 1239, 2579, 531, 4423, 7891, 21729}}, +{5748, 17, 248, {1, 3, 5, 1, 13, 35, 83, 85, 125, 887, 161, 3311, 7261, 9557, 28975, 28643, 21479}}, +{5749, 17, 262, {1, 3, 5, 3, 27, 5, 47, 175, 287, 867, 141, 3079, 7583, 4997, 18271, 24097, 96319}}, +{5750, 17, 273, {1, 3, 5, 1, 21, 51, 47, 67, 211, 281, 1861, 1169, 6403, 4229, 3995, 9921, 41515}}, +{5751, 17, 276, {1, 3, 3, 11, 23, 23, 81, 55, 441, 211, 169, 3197, 7213, 7205, 15, 11771, 129091}}, +{5752, 17, 280, {1, 3, 7, 3, 23, 39, 23, 163, 253, 1005, 1775, 3393, 7659, 8065, 30021, 61065, 35171}}, +{5753, 17, 283, {1, 3, 1, 1, 29, 29, 39, 143, 191, 711, 1077, 13, 4137, 15425, 11139, 1269, 71915}}, +{5754, 17, 290, {1, 3, 3, 5, 11, 41, 101, 127, 301, 335, 45, 2065, 5835, 7801, 2639, 5735, 63445}}, +{5755, 17, 309, {1, 3, 5, 9, 3, 39, 51, 53, 489, 663, 951, 3931, 3075, 753, 22179, 20573, 10775}}, +{5756, 17, 316, {1, 3, 3, 15, 13, 31, 1, 237, 79, 587, 395, 591, 607, 13105, 21301, 26829, 112181}}, +{5757, 17, 319, {1, 1, 7, 7, 5, 55, 31, 117, 247, 229, 247, 307, 3821, 6483, 31317, 22975, 40535}}, +{5758, 17, 321, {1, 3, 7, 15, 15, 59, 101, 17, 437, 373, 1727, 471, 2783, 7825, 24555, 58765, 5097}}, +{5759, 17, 328, {1, 1, 3, 9, 31, 27, 71, 147, 71, 871, 793, 2363, 3213, 13383, 29801, 53187, 70021}}, +{5760, 17, 346, {1, 3, 1, 1, 19, 47, 121, 61, 303, 565, 1371, 3703, 2201, 6835, 26041, 56039, 80227}}, +{5761, 17, 355, {1, 1, 5, 5, 3, 45, 91, 61, 257, 947, 1449, 4031, 4925, 8627, 11909, 9529, 3429}}, +{5762, 17, 367, {1, 1, 1, 7, 9, 63, 69, 233, 141, 361, 1443, 2157, 2877, 643, 2779, 8109, 126911}}, +{5763, 17, 369, {1, 1, 5, 1, 5, 3, 67, 157, 21, 1, 361, 35, 1475, 12877, 22169, 6653, 85005}}, +{5764, 17, 372, {1, 1, 7, 9, 25, 1, 7, 175, 47, 963, 405, 3955, 3905, 8429, 8483, 62037, 11323}}, +{5765, 17, 382, {1, 1, 5, 11, 29, 23, 77, 211, 319, 745, 1935, 2429, 1687, 2173, 1571, 19457, 117777}}, +{5766, 17, 388, {1, 1, 7, 5, 15, 57, 121, 189, 303, 79, 527, 1801, 71, 9857, 14197, 59007, 75341}}, +{5767, 17, 392, {1, 3, 3, 5, 25, 3, 19, 141, 155, 157, 287, 769, 5789, 8443, 31823, 1019, 79111}}, +{5768, 17, 395, {1, 1, 5, 11, 27, 27, 117, 141, 355, 1023, 869, 995, 6311, 6573, 11721, 1565, 35517}}, +{5769, 17, 397, {1, 1, 1, 9, 1, 33, 107, 51, 41, 889, 1191, 1055, 503, 14779, 6641, 58117, 74157}}, +{5770, 17, 403, {1, 1, 7, 5, 13, 39, 39, 33, 293, 75, 963, 3379, 1847, 12371, 9005, 38107, 69753}}, +{5771, 17, 409, {1, 1, 5, 5, 7, 37, 19, 241, 427, 635, 1711, 3835, 773, 10525, 17207, 1675, 127255}}, +{5772, 17, 410, {1, 1, 3, 7, 17, 19, 11, 113, 191, 947, 1133, 3173, 213, 10125, 1373, 56797, 111011}}, +{5773, 17, 425, {1, 3, 1, 1, 29, 45, 65, 237, 223, 695, 697, 3197, 6887, 8079, 22099, 12079, 54847}}, +{5774, 17, 443, {1, 3, 3, 7, 5, 47, 19, 215, 341, 863, 1879, 571, 7113, 2465, 23407, 52555, 44375}}, +{5775, 17, 472, {1, 3, 5, 11, 25, 31, 109, 73, 429, 553, 1905, 1753, 6733, 4433, 13785, 32041, 27115}}, +{5776, 17, 475, {1, 1, 1, 3, 27, 5, 97, 47, 343, 977, 1241, 721, 3355, 3559, 28349, 56389, 63103}}, +{5777, 17, 481, {1, 3, 3, 9, 21, 53, 57, 211, 73, 155, 1855, 715, 3179, 5963, 10061, 35141, 63131}}, +{5778, 17, 488, {1, 3, 1, 15, 21, 25, 51, 73, 31, 25, 1385, 637, 6585, 49, 2105, 6829, 9353}}, +{5779, 17, 493, {1, 1, 7, 5, 11, 55, 31, 69, 145, 637, 1131, 2175, 3547, 13031, 2131, 12361, 74737}}, +{5780, 17, 501, {1, 3, 3, 5, 31, 7, 119, 119, 309, 925, 895, 3813, 1131, 4765, 17865, 48707, 113577}}, +{5781, 17, 515, {1, 3, 3, 9, 13, 33, 127, 177, 323, 727, 1881, 775, 7329, 11881, 28309, 987, 116093}}, +{5782, 17, 522, {1, 1, 3, 5, 31, 55, 39, 41, 511, 157, 1655, 2991, 3633, 8521, 27049, 18771, 54015}}, +{5783, 17, 524, {1, 3, 5, 13, 11, 45, 113, 185, 375, 661, 1331, 4013, 5521, 1037, 23365, 30239, 76957}}, +{5784, 17, 527, {1, 3, 3, 7, 19, 7, 23, 17, 435, 913, 1985, 353, 6049, 7549, 3371, 60867, 41099}}, +{5785, 17, 535, {1, 3, 3, 15, 17, 9, 53, 127, 149, 849, 1181, 2237, 1345, 539, 19715, 26277, 125445}}, +{5786, 17, 542, {1, 1, 1, 3, 1, 9, 67, 79, 79, 795, 1793, 3167, 5917, 5323, 22043, 22007, 3917}}, +{5787, 17, 545, {1, 3, 5, 9, 15, 19, 59, 37, 141, 145, 413, 1095, 7709, 669, 27061, 40171, 101499}}, +{5788, 17, 555, {1, 3, 1, 1, 9, 49, 109, 7, 119, 861, 875, 1049, 4125, 6113, 15699, 6105, 48799}}, +{5789, 17, 558, {1, 1, 3, 9, 11, 29, 43, 175, 371, 357, 1181, 3933, 43, 4559, 10333, 23603, 83095}}, +{5790, 17, 560, {1, 3, 3, 9, 9, 7, 57, 61, 409, 143, 591, 761, 4107, 8117, 1051, 4471, 91771}}, +{5791, 17, 563, {1, 1, 3, 11, 3, 53, 119, 21, 213, 219, 51, 3491, 7143, 937, 24693, 3211, 99463}}, +{5792, 17, 570, {1, 1, 3, 3, 1, 47, 53, 153, 211, 523, 1637, 3351, 3753, 12489, 31825, 27613, 96431}}, +{5793, 17, 578, {1, 1, 5, 15, 23, 57, 81, 231, 147, 9, 1043, 3157, 1463, 4835, 22435, 57407, 59615}}, +{5794, 17, 583, {1, 3, 3, 13, 15, 63, 111, 5, 449, 957, 1175, 2887, 7741, 8975, 28775, 4067, 69283}}, +{5795, 17, 590, {1, 3, 1, 1, 5, 61, 109, 211, 349, 179, 951, 153, 3147, 7555, 27037, 59829, 16077}}, +{5796, 17, 597, {1, 3, 3, 7, 15, 33, 53, 61, 309, 991, 227, 3437, 3983, 14559, 13065, 46387, 49105}}, +{5797, 17, 604, {1, 3, 5, 3, 25, 23, 97, 139, 315, 601, 1179, 1083, 6799, 1813, 15511, 60433, 65641}}, +{5798, 17, 608, {1, 1, 7, 1, 11, 43, 87, 87, 173, 161, 91, 3011, 1869, 2313, 13691, 3509, 39433}}, +{5799, 17, 614, {1, 3, 5, 7, 15, 5, 39, 251, 269, 819, 815, 2283, 5635, 6953, 27017, 65143, 45281}}, +{5800, 17, 635, {1, 3, 7, 9, 1, 37, 9, 57, 467, 37, 1743, 4031, 3751, 8105, 23789, 46847, 21911}}, +{5801, 17, 637, {1, 1, 7, 1, 23, 47, 63, 99, 59, 951, 1837, 2829, 161, 857, 4045, 9945, 53487}}, +{5802, 17, 653, {1, 3, 7, 7, 11, 47, 43, 99, 279, 945, 1189, 2091, 4597, 183, 15527, 7151, 112403}}, +{5803, 17, 654, {1, 3, 3, 15, 9, 53, 63, 135, 119, 95, 131, 2461, 157, 10631, 20847, 51699, 58865}}, +{5804, 17, 659, {1, 1, 3, 1, 25, 3, 115, 29, 303, 361, 1529, 3993, 5899, 11501, 4463, 47121, 75333}}, +{5805, 17, 666, {1, 3, 1, 15, 9, 39, 31, 199, 305, 279, 15, 611, 561, 6593, 3189, 1863, 61875}}, +{5806, 17, 671, {1, 3, 5, 15, 5, 49, 87, 17, 87, 5, 1179, 1351, 7647, 7529, 15901, 30351, 31959}}, +{5807, 17, 689, {1, 3, 3, 9, 31, 57, 127, 239, 349, 773, 547, 2649, 1309, 8071, 10741, 57645, 14423}}, +{5808, 17, 690, {1, 1, 5, 9, 5, 15, 59, 185, 315, 411, 1425, 3905, 853, 12393, 21, 15195, 114291}}, +{5809, 17, 695, {1, 3, 1, 5, 29, 47, 19, 203, 319, 673, 1169, 2413, 5295, 6251, 19883, 2725, 28937}}, +{5810, 17, 713, {1, 3, 1, 5, 21, 55, 19, 185, 103, 827, 117, 341, 3315, 5625, 345, 63845, 49081}}, +{5811, 17, 722, {1, 1, 7, 9, 27, 51, 105, 15, 243, 735, 1221, 1641, 293, 14423, 5363, 60873, 66223}}, +{5812, 17, 733, {1, 1, 5, 1, 19, 5, 109, 131, 131, 67, 231, 2907, 4389, 5079, 20503, 59045, 33625}}, +{5813, 17, 758, {1, 3, 1, 5, 5, 15, 79, 67, 287, 225, 519, 1543, 2389, 671, 7767, 62625, 61639}}, +{5814, 17, 770, {1, 1, 1, 9, 25, 35, 83, 15, 291, 207, 1757, 3691, 5669, 11255, 27939, 57813, 46251}}, +{5815, 17, 782, {1, 3, 1, 1, 29, 3, 83, 109, 323, 179, 1855, 3205, 7665, 16201, 13863, 16347, 98977}}, +{5816, 17, 784, {1, 3, 1, 13, 17, 1, 101, 183, 153, 985, 125, 999, 855, 15897, 19491, 8953, 23277}}, +{5817, 17, 793, {1, 1, 7, 11, 9, 33, 45, 229, 411, 155, 537, 3037, 1785, 11719, 8589, 16617, 47339}}, +{5818, 17, 803, {1, 1, 5, 5, 9, 11, 7, 163, 305, 621, 1647, 2609, 7901, 14421, 23447, 1205, 52681}}, +{5819, 17, 805, {1, 3, 3, 1, 7, 29, 39, 227, 419, 561, 129, 3299, 3123, 4243, 18689, 12335, 71783}}, +{5820, 17, 812, {1, 3, 1, 9, 11, 61, 65, 207, 123, 763, 485, 1943, 3617, 415, 22397, 58597, 128017}}, +{5821, 17, 838, {1, 1, 5, 13, 25, 43, 115, 73, 269, 137, 1765, 705, 1705, 16137, 22751, 60021, 4333}}, +{5822, 17, 849, {1, 1, 5, 13, 3, 57, 9, 141, 75, 695, 597, 3435, 1085, 4905, 19625, 16061, 12111}}, +{5823, 17, 875, {1, 1, 5, 9, 29, 13, 119, 251, 353, 421, 1955, 3503, 2605, 2587, 12503, 46419, 128815}}, +{5824, 17, 877, {1, 3, 5, 7, 7, 29, 67, 25, 37, 327, 1607, 1899, 1691, 5801, 17441, 9755, 24993}}, +{5825, 17, 880, {1, 1, 3, 11, 17, 29, 121, 201, 371, 597, 213, 2361, 6615, 169, 24801, 56175, 129241}}, +{5826, 17, 892, {1, 3, 5, 1, 31, 63, 85, 77, 151, 599, 103, 677, 4431, 12897, 6373, 40349, 100819}}, +{5827, 17, 895, {1, 3, 5, 9, 25, 9, 119, 219, 379, 939, 1907, 945, 5819, 7433, 32519, 56493, 50441}}, +{5828, 17, 899, {1, 1, 3, 9, 13, 1, 63, 189, 135, 839, 1821, 2247, 2547, 965, 6847, 63335, 32921}}, +{5829, 17, 919, {1, 3, 5, 13, 21, 25, 111, 37, 319, 469, 1999, 1637, 8167, 2641, 24615, 63713, 115923}}, +{5830, 17, 920, {1, 3, 5, 9, 9, 27, 1, 63, 275, 223, 1675, 3833, 7377, 9755, 6279, 37161, 108805}}, +{5831, 17, 932, {1, 3, 3, 13, 29, 23, 21, 73, 401, 863, 701, 2527, 4557, 5549, 22493, 6651, 39167}}, +{5832, 17, 935, {1, 1, 3, 15, 25, 21, 97, 25, 83, 925, 2029, 3789, 3241, 7617, 13699, 31123, 124619}}, +{5833, 17, 936, {1, 3, 7, 5, 23, 7, 95, 227, 123, 215, 359, 2099, 4505, 8477, 32665, 18211, 99679}}, +{5834, 17, 941, {1, 3, 1, 9, 11, 57, 75, 17, 105, 175, 831, 1033, 5425, 8419, 16163, 23901, 33889}}, +{5835, 17, 950, {1, 1, 7, 1, 17, 49, 71, 23, 129, 413, 333, 2547, 4627, 14961, 16745, 53649, 73059}}, +{5836, 17, 961, {1, 3, 5, 3, 13, 33, 121, 147, 443, 187, 1949, 319, 8141, 14359, 11203, 53569, 70415}}, +{5837, 17, 962, {1, 3, 1, 11, 15, 1, 23, 29, 509, 985, 1217, 3755, 385, 3697, 24631, 37619, 62435}}, +{5838, 17, 971, {1, 3, 3, 3, 17, 11, 107, 37, 227, 913, 259, 2799, 3249, 2347, 9703, 52741, 101187}}, +{5839, 17, 982, {1, 1, 5, 13, 25, 25, 47, 77, 405, 415, 1947, 1675, 5079, 1333, 10059, 32033, 88975}}, +{5840, 17, 986, {1, 3, 5, 9, 27, 7, 19, 241, 445, 205, 333, 285, 7997, 6339, 29643, 10229, 29965}}, +{5841, 17, 1012, {1, 3, 5, 11, 17, 9, 91, 223, 173, 1013, 779, 3967, 781, 5471, 4309, 24795, 99203}}, +{5842, 17, 1021, {1, 1, 1, 3, 19, 53, 7, 159, 351, 515, 223, 3375, 1, 4985, 16729, 43333, 85917}}, +{5843, 17, 1024, {1, 3, 3, 1, 19, 35, 95, 69, 19, 157, 1177, 579, 7109, 3499, 3219, 26641, 49491}}, +{5844, 17, 1029, {1, 3, 3, 5, 25, 21, 125, 5, 39, 857, 615, 2925, 2005, 5503, 25523, 36711, 30939}}, +{5845, 17, 1030, {1, 3, 1, 5, 11, 33, 29, 5, 425, 125, 939, 1641, 321, 1023, 12551, 4587, 116617}}, +{5846, 17, 1051, {1, 3, 3, 13, 9, 59, 93, 137, 103, 517, 1555, 13, 7965, 13629, 14339, 37425, 65891}}, +{5847, 17, 1054, {1, 3, 7, 1, 31, 31, 87, 237, 365, 951, 267, 2019, 5085, 6133, 29371, 50319, 94313}}, +{5848, 17, 1064, {1, 3, 5, 7, 17, 19, 23, 225, 501, 189, 1291, 603, 6873, 8633, 11425, 30565, 26355}}, +{5849, 17, 1067, {1, 3, 7, 11, 23, 17, 91, 111, 415, 225, 1287, 2081, 4683, 12069, 3627, 32281, 17995}}, +{5850, 17, 1082, {1, 1, 5, 15, 25, 59, 75, 203, 179, 405, 1711, 3147, 7483, 5583, 3729, 11765, 61019}}, +{5851, 17, 1096, {1, 3, 3, 9, 3, 43, 65, 7, 269, 33, 829, 1789, 967, 13119, 26329, 16937, 18533}}, +{5852, 17, 1116, {1, 1, 3, 15, 11, 39, 73, 11, 31, 143, 1913, 1227, 1363, 11831, 28687, 50489, 106373}}, +{5853, 17, 1119, {1, 1, 3, 3, 25, 19, 15, 11, 349, 1011, 421, 3193, 3665, 6149, 20729, 6997, 51437}}, +{5854, 17, 1129, {1, 3, 5, 9, 13, 63, 73, 55, 417, 223, 1753, 2913, 4809, 3947, 10769, 5751, 93867}}, +{5855, 17, 1130, {1, 3, 7, 13, 31, 39, 39, 133, 483, 839, 1137, 3303, 7285, 4309, 24079, 60529, 103337}}, +{5856, 17, 1132, {1, 1, 3, 7, 1, 55, 3, 253, 435, 589, 1949, 1461, 513, 381, 29455, 4263, 16831}}, +{5857, 17, 1137, {1, 1, 1, 15, 25, 19, 77, 101, 299, 187, 1021, 1533, 8021, 4165, 2277, 18927, 110439}}, +{5858, 17, 1147, {1, 1, 1, 11, 9, 35, 71, 159, 409, 527, 15, 4073, 5749, 8563, 2503, 53015, 111581}}, +{5859, 17, 1150, {1, 1, 7, 5, 21, 47, 113, 23, 477, 559, 543, 409, 4701, 11479, 30761, 8373, 87777}}, +{5860, 17, 1154, {1, 3, 5, 13, 9, 27, 25, 137, 81, 37, 799, 857, 3539, 4471, 15753, 59015, 48589}}, +{5861, 17, 1165, {1, 1, 3, 7, 11, 57, 103, 83, 209, 71, 193, 3251, 4839, 13959, 32009, 6471, 23631}}, +{5862, 17, 1166, {1, 1, 7, 11, 25, 33, 85, 31, 371, 253, 1667, 1627, 6159, 10039, 15177, 52121, 39475}}, +{5863, 17, 1174, {1, 1, 5, 9, 13, 55, 37, 13, 95, 113, 1895, 1525, 1907, 6361, 5863, 27767, 108143}}, +{5864, 17, 1177, {1, 1, 3, 13, 21, 5, 53, 39, 485, 171, 1355, 2117, 3127, 6467, 31697, 45343, 111477}}, +{5865, 17, 1184, {1, 1, 7, 15, 13, 57, 11, 231, 329, 703, 1823, 2983, 215, 2835, 19719, 56637, 126169}}, +{5866, 17, 1194, {1, 3, 5, 15, 13, 51, 13, 173, 301, 867, 127, 2391, 2795, 4945, 13293, 49947, 10765}}, +{5867, 17, 1204, {1, 3, 3, 9, 23, 5, 29, 165, 467, 599, 1181, 3213, 4069, 5473, 8937, 51495, 42611}}, +{5868, 17, 1208, {1, 1, 7, 15, 5, 5, 31, 125, 397, 519, 1465, 115, 7877, 7025, 14213, 50343, 85827}}, +{5869, 17, 1213, {1, 3, 7, 3, 25, 59, 95, 103, 101, 347, 95, 3, 1251, 15109, 12615, 7511, 56789}}, +{5870, 17, 1219, {1, 3, 5, 9, 13, 59, 71, 19, 107, 73, 345, 3177, 6519, 2407, 18033, 31075, 113185}}, +{5871, 17, 1233, {1, 1, 1, 3, 27, 37, 5, 219, 169, 149, 355, 549, 1811, 11351, 22627, 53931, 88619}}, +{5872, 17, 1264, {1, 3, 1, 3, 27, 7, 9, 97, 399, 947, 1393, 3917, 5439, 15845, 19465, 30123, 69099}}, +{5873, 17, 1267, {1, 1, 7, 9, 13, 25, 107, 45, 111, 409, 967, 3359, 2499, 1703, 20763, 45187, 16265}}, +{5874, 17, 1281, {1, 1, 1, 13, 5, 49, 43, 249, 49, 947, 597, 1773, 2387, 2693, 15297, 57969, 53385}}, +{5875, 17, 1312, {1, 1, 7, 15, 27, 25, 27, 121, 421, 781, 143, 817, 7335, 14211, 139, 55601, 56671}}, +{5876, 17, 1321, {1, 3, 1, 5, 29, 47, 77, 23, 413, 931, 785, 1221, 769, 13131, 26955, 56441, 85745}}, +{5877, 17, 1330, {1, 1, 1, 11, 27, 3, 53, 21, 467, 43, 1533, 1053, 691, 6369, 8325, 51087, 71261}}, +{5878, 17, 1332, {1, 1, 3, 15, 7, 9, 43, 225, 293, 143, 1049, 3095, 6119, 3165, 9913, 26023, 62657}}, +{5879, 17, 1335, {1, 3, 7, 9, 11, 39, 99, 193, 217, 941, 259, 3811, 6757, 281, 10377, 46961, 48949}}, +{5880, 17, 1341, {1, 1, 1, 1, 25, 1, 99, 61, 495, 861, 2013, 487, 2821, 12921, 30111, 27213, 97363}}, +{5881, 17, 1356, {1, 1, 5, 9, 23, 33, 103, 237, 161, 721, 2021, 159, 995, 475, 20615, 30961, 31767}}, +{5882, 17, 1371, {1, 3, 1, 1, 5, 59, 63, 139, 451, 789, 1285, 655, 5501, 273, 21061, 35937, 20811}}, +{5883, 17, 1377, {1, 3, 3, 9, 9, 15, 121, 233, 287, 929, 1605, 1243, 417, 1695, 29903, 28699, 85981}}, +{5884, 17, 1380, {1, 3, 3, 5, 7, 25, 27, 253, 469, 255, 285, 2467, 4897, 4079, 29759, 50351, 76451}}, +{5885, 17, 1384, {1, 1, 3, 3, 5, 33, 29, 209, 291, 967, 1429, 1953, 5957, 14065, 8875, 32675, 4629}}, +{5886, 17, 1395, {1, 3, 5, 9, 7, 31, 97, 21, 177, 485, 1115, 4051, 6683, 7761, 30181, 37531, 51789}}, +{5887, 17, 1397, {1, 1, 7, 3, 25, 51, 23, 183, 57, 699, 1245, 2519, 2783, 4457, 6381, 43199, 40071}}, +{5888, 17, 1411, {1, 3, 5, 5, 19, 55, 45, 101, 299, 461, 1009, 319, 7335, 7769, 5479, 61113, 7937}}, +{5889, 17, 1414, {1, 1, 7, 3, 29, 21, 55, 55, 437, 771, 363, 683, 4299, 15569, 13813, 40663, 86285}}, +{5890, 17, 1426, {1, 1, 1, 13, 31, 35, 93, 175, 451, 387, 1145, 3367, 3833, 13495, 11019, 48925, 85721}}, +{5891, 17, 1432, {1, 1, 7, 15, 31, 21, 55, 205, 117, 895, 535, 2627, 1473, 10779, 24493, 42999, 130805}}, +{5892, 17, 1435, {1, 1, 3, 13, 27, 11, 45, 37, 193, 237, 1505, 1405, 3613, 9565, 3037, 53643, 85211}}, +{5893, 17, 1437, {1, 1, 3, 13, 9, 17, 19, 27, 117, 503, 65, 1033, 7891, 4005, 9229, 20999, 96601}}, +{5894, 17, 1442, {1, 3, 3, 5, 17, 3, 71, 79, 145, 985, 935, 3997, 6239, 12511, 13895, 65031, 126383}}, +{5895, 17, 1454, {1, 1, 5, 1, 23, 55, 3, 105, 71, 243, 1479, 111, 7103, 10753, 26193, 35833, 14583}}, +{5896, 17, 1468, {1, 3, 3, 3, 15, 3, 73, 125, 267, 29, 1775, 1437, 8091, 10891, 25731, 54381, 12821}}, +{5897, 17, 1473, {1, 1, 1, 3, 23, 15, 67, 123, 401, 347, 807, 1097, 31, 11209, 8727, 58149, 129099}}, +{5898, 17, 1488, {1, 3, 3, 7, 7, 61, 49, 129, 423, 535, 135, 3587, 233, 4509, 23209, 59203, 41297}}, +{5899, 17, 1491, {1, 3, 1, 7, 5, 29, 65, 31, 335, 855, 835, 1421, 3081, 14219, 16321, 48269, 41603}}, +{5900, 17, 1509, {1, 1, 1, 13, 3, 21, 5, 117, 163, 603, 1519, 3789, 7873, 10981, 4615, 9165, 83929}}, +{5901, 17, 1524, {1, 3, 5, 11, 15, 21, 75, 151, 193, 757, 647, 1603, 333, 10515, 22771, 55459, 3315}}, +{5902, 17, 1533, {1, 1, 7, 1, 27, 3, 63, 197, 271, 175, 1599, 2119, 1031, 8671, 10893, 35641, 94535}}, +{5903, 17, 1555, {1, 1, 1, 15, 1, 59, 93, 17, 5, 213, 1663, 941, 435, 8107, 1963, 34951, 106181}}, +{5904, 17, 1567, {1, 1, 5, 11, 13, 35, 111, 97, 267, 737, 2023, 1301, 7407, 11249, 31785, 31933, 20673}}, +{5905, 17, 1571, {1, 3, 3, 15, 5, 15, 29, 63, 189, 687, 27, 2005, 7129, 11377, 23175, 42389, 30933}}, +{5906, 17, 1586, {1, 1, 1, 9, 13, 63, 7, 155, 67, 291, 1419, 755, 2623, 4749, 22971, 7545, 55711}}, +{5907, 17, 1592, {1, 3, 7, 7, 23, 29, 83, 151, 213, 201, 157, 3051, 6553, 6401, 15931, 47941, 22869}}, +{5908, 17, 1595, {1, 3, 5, 5, 7, 45, 33, 155, 225, 25, 49, 2419, 4241, 6835, 11401, 50725, 118343}}, +{5909, 17, 1600, {1, 1, 3, 13, 31, 27, 37, 41, 19, 375, 1771, 1789, 2313, 2577, 12615, 22715, 22179}}, +{5910, 17, 1606, {1, 3, 1, 11, 17, 53, 55, 229, 235, 837, 143, 3583, 2789, 5471, 6515, 44565, 8619}}, +{5911, 17, 1627, {1, 1, 5, 15, 5, 17, 23, 95, 217, 551, 353, 27, 3973, 2547, 27903, 50611, 72277}}, +{5912, 17, 1648, {1, 1, 3, 7, 5, 13, 41, 111, 157, 215, 1327, 3073, 1871, 11875, 24239, 40527, 97637}}, +{5913, 17, 1651, {1, 3, 1, 1, 29, 63, 111, 187, 369, 395, 1197, 3229, 4353, 14715, 29671, 50503, 89321}}, +{5914, 17, 1654, {1, 3, 1, 1, 5, 63, 11, 39, 171, 209, 463, 3421, 3451, 4453, 14397, 2219, 98261}}, +{5915, 17, 1667, {1, 3, 3, 5, 1, 1, 13, 101, 67, 815, 1521, 1543, 7221, 7337, 10765, 30029, 47881}}, +{5916, 17, 1669, {1, 1, 5, 7, 9, 9, 33, 197, 439, 893, 961, 11, 4319, 14265, 24839, 33581, 35531}}, +{5917, 17, 1674, {1, 3, 3, 15, 29, 35, 43, 229, 313, 369, 955, 1069, 2939, 12623, 20373, 1533, 9105}}, +{5918, 17, 1687, {1, 3, 1, 7, 21, 7, 127, 243, 103, 353, 859, 3789, 4369, 12063, 22369, 14531, 94289}}, +{5919, 17, 1698, {1, 3, 5, 15, 1, 27, 65, 127, 229, 99, 627, 2693, 7173, 7305, 29971, 7097, 10113}}, +{5920, 17, 1710, {1, 1, 5, 15, 3, 47, 61, 29, 155, 725, 1727, 2667, 7003, 16277, 21983, 21365, 129365}}, +{5921, 17, 1717, {1, 1, 5, 7, 27, 61, 115, 133, 137, 661, 1201, 2151, 367, 3567, 12885, 62143, 53955}}, +{5922, 17, 1722, {1, 1, 1, 11, 9, 41, 113, 103, 469, 687, 1541, 3679, 6833, 10493, 32747, 39909, 121445}}, +{5923, 17, 1735, {1, 1, 7, 5, 5, 5, 91, 91, 5, 405, 529, 3999, 6783, 2387, 16621, 12919, 8659}}, +{5924, 17, 1741, {1, 1, 7, 13, 21, 47, 125, 155, 83, 913, 1833, 4027, 6657, 7031, 31231, 58201, 88943}}, +{5925, 17, 1749, {1, 3, 7, 3, 17, 55, 25, 29, 181, 205, 1173, 1081, 6475, 5037, 18461, 22487, 114131}}, +{5926, 17, 1750, {1, 1, 7, 7, 25, 63, 101, 103, 171, 191, 1863, 3441, 2515, 14179, 30123, 19145, 31669}}, +{5927, 17, 1769, {1, 3, 7, 11, 29, 49, 73, 163, 415, 821, 1809, 723, 7049, 14565, 4829, 19395, 61131}}, +{5928, 17, 1775, {1, 1, 7, 9, 5, 25, 103, 167, 381, 757, 813, 471, 3021, 6619, 20929, 38133, 129505}}, +{5929, 17, 1777, {1, 1, 5, 13, 25, 61, 59, 199, 257, 999, 169, 3289, 7181, 2049, 2185, 39045, 102703}}, +{5930, 17, 1778, {1, 1, 3, 1, 21, 1, 111, 125, 289, 33, 701, 3491, 5569, 8055, 23149, 26793, 102563}}, +{5931, 17, 1792, {1, 1, 7, 3, 25, 15, 105, 235, 307, 201, 1947, 699, 2519, 10615, 29345, 17061, 112949}}, +{5932, 17, 1797, {1, 3, 3, 15, 19, 1, 93, 173, 399, 13, 269, 1189, 523, 5145, 32731, 54087, 94123}}, +{5933, 17, 1802, {1, 3, 1, 15, 9, 41, 59, 79, 217, 833, 1993, 2429, 3599, 6919, 30911, 12615, 67947}}, +{5934, 17, 1822, {1, 3, 3, 13, 31, 9, 95, 37, 343, 955, 1363, 3851, 4091, 13165, 15241, 14853, 35747}}, +{5935, 17, 1825, {1, 1, 3, 5, 27, 39, 37, 217, 385, 473, 1997, 2247, 7353, 1503, 9003, 15055, 27289}}, +{5936, 17, 1831, {1, 3, 7, 11, 1, 13, 21, 243, 375, 91, 1295, 1661, 203, 15251, 15355, 16065, 24183}}, +{5937, 17, 1838, {1, 3, 1, 13, 11, 45, 85, 5, 275, 741, 1395, 4011, 7987, 16087, 24113, 50555, 128147}}, +{5938, 17, 1852, {1, 1, 1, 7, 3, 11, 13, 189, 55, 151, 395, 657, 807, 11973, 26297, 13043, 109641}}, +{5939, 17, 1855, {1, 1, 7, 13, 31, 19, 33, 235, 491, 647, 1115, 2299, 6381, 7525, 2237, 36197, 126457}}, +{5940, 17, 1860, {1, 3, 5, 1, 21, 15, 53, 231, 77, 347, 969, 141, 4501, 9429, 1815, 50887, 74581}}, +{5941, 17, 1867, {1, 1, 1, 9, 29, 43, 47, 103, 327, 131, 927, 441, 7517, 7277, 21065, 409, 50351}}, +{5942, 17, 1869, {1, 1, 5, 1, 11, 13, 103, 157, 239, 69, 1347, 477, 5017, 9723, 28133, 65135, 12359}}, +{5943, 17, 1875, {1, 1, 1, 13, 17, 63, 117, 189, 323, 565, 927, 1727, 5337, 13243, 5739, 31241, 14209}}, +{5944, 17, 1882, {1, 1, 3, 9, 29, 9, 103, 61, 467, 217, 1367, 2405, 5355, 5743, 31469, 30149, 98775}}, +{5945, 17, 1903, {1, 1, 1, 15, 23, 23, 17, 229, 103, 583, 179, 115, 7081, 9437, 32623, 62639, 72391}}, +{5946, 17, 1908, {1, 1, 5, 11, 11, 39, 97, 209, 115, 107, 593, 2347, 1445, 6179, 32011, 8435, 65847}}, +{5947, 17, 1917, {1, 3, 7, 3, 29, 27, 55, 111, 27, 731, 995, 1871, 5017, 1485, 11313, 2559, 6561}}, +{5948, 17, 1927, {1, 3, 1, 3, 27, 9, 103, 247, 83, 197, 517, 1629, 2189, 7255, 183, 35111, 15077}}, +{5949, 17, 1941, {1, 3, 7, 5, 31, 37, 87, 223, 343, 331, 1361, 3371, 2007, 13235, 10897, 63839, 109837}}, +{5950, 17, 1945, {1, 1, 7, 11, 17, 5, 41, 197, 489, 625, 1595, 2663, 5941, 14029, 30999, 16781, 116001}}, +{5951, 17, 1948, {1, 3, 3, 7, 19, 19, 61, 175, 125, 609, 1391, 147, 3001, 4189, 10133, 24031, 46219}}, +{5952, 17, 1962, {1, 1, 3, 13, 13, 57, 117, 181, 299, 939, 583, 3151, 829, 6561, 30449, 12211, 107879}}, +{5953, 17, 1975, {1, 1, 5, 11, 23, 45, 87, 115, 259, 613, 1001, 171, 57, 13789, 22173, 56837, 26263}}, +{5954, 17, 1976, {1, 1, 3, 3, 7, 43, 45, 131, 87, 251, 1411, 2737, 2739, 4595, 12561, 12043, 82885}}, +{5955, 17, 1987, {1, 3, 3, 7, 19, 39, 87, 223, 461, 37, 283, 3937, 6193, 10887, 11509, 41131, 38359}}, +{5956, 17, 1993, {1, 3, 1, 11, 11, 37, 25, 133, 105, 1013, 925, 3301, 239, 16295, 4831, 8649, 125767}}, +{5957, 17, 2004, {1, 3, 3, 11, 25, 11, 41, 155, 1, 717, 1587, 635, 279, 1803, 14817, 28669, 88835}}, +{5958, 17, 2020, {1, 3, 3, 11, 29, 17, 39, 51, 13, 871, 1197, 2561, 6671, 8465, 22709, 15933, 15923}}, +{5959, 17, 2029, {1, 3, 7, 1, 13, 17, 57, 43, 267, 261, 901, 241, 3767, 15053, 11017, 36321, 72497}}, +{5960, 17, 2030, {1, 3, 1, 15, 23, 13, 17, 63, 171, 919, 1387, 2673, 7605, 8523, 14807, 21187, 56057}}, +{5961, 17, 2038, {1, 3, 7, 15, 23, 41, 85, 95, 53, 629, 1877, 3167, 2411, 9619, 24621, 31213, 30069}}, +{5962, 17, 2041, {1, 1, 5, 3, 3, 25, 99, 39, 321, 549, 599, 1279, 2401, 2335, 8227, 59429, 94549}}, +{5963, 17, 2048, {1, 3, 3, 11, 9, 21, 29, 55, 477, 19, 1275, 29, 2253, 11421, 30401, 57059, 93219}}, +{5964, 17, 2054, {1, 1, 7, 1, 27, 13, 117, 249, 463, 769, 281, 515, 7467, 11507, 1621, 39765, 31109}}, +{5965, 17, 2057, {1, 3, 5, 7, 19, 7, 77, 107, 23, 895, 1013, 2701, 3805, 7327, 27247, 6119, 102395}}, +{5966, 17, 2058, {1, 1, 3, 13, 21, 49, 99, 15, 163, 641, 1703, 3061, 163, 4265, 32571, 13957, 75005}}, +{5967, 17, 2068, {1, 1, 5, 11, 27, 17, 87, 169, 427, 959, 361, 1023, 5727, 16279, 1099, 39081, 67215}}, +{5968, 17, 2072, {1, 3, 3, 9, 23, 13, 1, 91, 173, 325, 1881, 1385, 8023, 935, 9221, 19673, 36949}}, +{5969, 17, 2075, {1, 3, 1, 7, 7, 25, 119, 189, 107, 249, 811, 973, 6499, 101, 11281, 55227, 32361}}, +{5970, 17, 2077, {1, 1, 5, 13, 19, 37, 117, 95, 463, 587, 1419, 445, 4019, 7257, 29757, 50773, 52247}}, +{5971, 17, 2082, {1, 1, 1, 1, 17, 57, 81, 57, 43, 789, 1035, 625, 1707, 9683, 3681, 12411, 110623}}, +{5972, 17, 2084, {1, 1, 7, 5, 7, 57, 49, 91, 459, 513, 1869, 3377, 139, 10037, 24091, 54247, 41279}}, +{5973, 17, 2087, {1, 3, 3, 9, 9, 33, 29, 51, 355, 415, 1907, 809, 6543, 349, 18507, 12919, 41667}}, +{5974, 17, 2101, {1, 1, 5, 11, 3, 17, 73, 201, 121, 909, 1623, 799, 3271, 9051, 5717, 15169, 127861}}, +{5975, 17, 2111, {1, 1, 7, 7, 23, 31, 1, 155, 475, 87, 2001, 2459, 1285, 5931, 6803, 56757, 71671}}, +{5976, 17, 2113, {1, 1, 5, 13, 5, 1, 21, 109, 263, 841, 723, 1539, 7529, 433, 23721, 33195, 57001}}, +{5977, 17, 2119, {1, 3, 3, 13, 29, 55, 105, 231, 405, 265, 671, 351, 4693, 9033, 21963, 52073, 125131}}, +{5978, 17, 2147, {1, 3, 1, 13, 25, 51, 55, 227, 245, 983, 251, 2553, 2017, 1381, 31461, 3953, 75775}}, +{5979, 17, 2154, {1, 1, 1, 11, 31, 11, 91, 91, 287, 749, 1019, 4055, 3237, 6965, 14765, 1663, 82987}}, +{5980, 17, 2161, {1, 1, 7, 3, 11, 15, 67, 161, 79, 729, 1115, 3713, 2715, 9361, 9365, 26093, 63409}}, +{5981, 17, 2164, {1, 3, 1, 7, 1, 51, 125, 15, 457, 433, 405, 2329, 157, 4817, 25867, 38177, 45319}}, +{5982, 17, 2177, {1, 3, 7, 9, 25, 57, 5, 233, 481, 781, 1313, 3179, 7219, 8717, 14825, 16079, 127149}}, +{5983, 17, 2178, {1, 1, 7, 15, 27, 51, 5, 65, 77, 313, 1751, 1489, 4307, 10541, 11345, 52577, 18143}}, +{5984, 17, 2184, {1, 1, 1, 15, 21, 5, 113, 71, 411, 327, 1681, 1023, 5661, 15815, 5387, 10351, 21121}}, +{5985, 17, 2198, {1, 1, 5, 5, 29, 55, 25, 255, 69, 879, 501, 1915, 3731, 633, 12197, 5249, 31129}}, +{5986, 17, 2201, {1, 3, 5, 7, 3, 23, 107, 163, 485, 853, 359, 3069, 4353, 371, 6027, 53239, 105541}}, +{5987, 17, 2213, {1, 3, 5, 15, 7, 41, 9, 47, 33, 327, 621, 147, 577, 29, 14623, 3403, 9791}}, +{5988, 17, 2217, {1, 3, 3, 15, 29, 47, 41, 149, 477, 127, 573, 877, 3101, 5963, 28457, 14231, 67425}}, +{5989, 17, 2228, {1, 1, 1, 15, 31, 7, 55, 191, 101, 259, 1071, 219, 2233, 3583, 21969, 32745, 80529}}, +{5990, 17, 2240, {1, 3, 7, 13, 17, 53, 115, 69, 241, 71, 1475, 191, 509, 3721, 15537, 53773, 18005}}, +{5991, 17, 2245, {1, 1, 3, 9, 5, 57, 13, 95, 103, 871, 2043, 2239, 7833, 10727, 6513, 55273, 3781}}, +{5992, 17, 2250, {1, 1, 5, 5, 9, 11, 55, 151, 239, 537, 135, 2779, 7393, 15393, 11097, 58593, 100745}}, +{5993, 17, 2263, {1, 1, 1, 9, 15, 39, 29, 105, 441, 181, 1113, 2125, 8145, 11045, 6589, 33603, 83377}}, +{5994, 17, 2267, {1, 3, 1, 1, 11, 63, 69, 153, 225, 845, 675, 407, 4691, 13383, 27359, 38881, 5509}}, +{5995, 17, 2285, {1, 3, 7, 11, 23, 31, 69, 3, 41, 57, 683, 887, 6861, 12161, 14537, 27293, 113001}}, +{5996, 17, 2286, {1, 1, 1, 11, 5, 1, 101, 175, 437, 3, 1477, 1005, 6607, 7429, 7213, 4025, 66479}}, +{5997, 17, 2291, {1, 1, 7, 5, 19, 7, 99, 131, 273, 977, 1717, 3831, 175, 5673, 12577, 36787, 30945}}, +{5998, 17, 2298, {1, 3, 1, 1, 15, 37, 105, 195, 61, 869, 255, 2625, 7401, 9361, 13217, 52811, 130811}}, +{5999, 17, 2306, {1, 3, 5, 3, 29, 27, 105, 23, 511, 813, 1311, 2859, 1647, 1949, 1329, 27589, 125209}}, +{6000, 17, 2325, {1, 3, 3, 1, 21, 11, 119, 247, 123, 401, 409, 1845, 2133, 10793, 221, 43217, 14069}}, +{6001, 17, 2329, {1, 1, 5, 1, 29, 21, 51, 73, 501, 861, 725, 249, 4249, 8029, 15767, 11985, 18637}}, +{6002, 17, 2332, {1, 1, 5, 11, 19, 39, 97, 65, 13, 283, 489, 2307, 5239, 4161, 18639, 60035, 22405}}, +{6003, 17, 2335, {1, 3, 5, 1, 3, 7, 109, 27, 429, 663, 1569, 3001, 3453, 8627, 9719, 23941, 110451}}, +{6004, 17, 2339, {1, 3, 7, 5, 17, 13, 125, 209, 347, 95, 1937, 1419, 5661, 7171, 20607, 9777, 68343}}, +{6005, 17, 2346, {1, 1, 1, 1, 7, 41, 43, 229, 57, 49, 1863, 2819, 3735, 915, 1571, 11603, 116275}}, +{6006, 17, 2351, {1, 1, 7, 9, 21, 27, 5, 199, 181, 521, 303, 1097, 5427, 8899, 30325, 55457, 16189}}, +{6007, 17, 2353, {1, 3, 3, 7, 19, 41, 3, 205, 279, 223, 971, 633, 2617, 13191, 10193, 23375, 62563}}, +{6008, 17, 2363, {1, 3, 3, 13, 23, 59, 85, 25, 253, 405, 65, 1625, 4401, 4679, 14381, 57833, 30001}}, +{6009, 17, 2378, {1, 3, 3, 3, 13, 35, 11, 157, 123, 397, 119, 2513, 1919, 14583, 5469, 11463, 94711}}, +{6010, 17, 2383, {1, 1, 1, 7, 17, 37, 83, 211, 451, 939, 449, 13, 6671, 1457, 19855, 15053, 52327}}, +{6011, 17, 2391, {1, 1, 5, 3, 9, 57, 39, 183, 331, 451, 1391, 1865, 7801, 14293, 29069, 705, 109497}}, +{6012, 17, 2401, {1, 3, 7, 7, 23, 21, 85, 81, 255, 9, 1685, 2879, 6327, 12675, 31657, 38877, 74131}}, +{6013, 17, 2408, {1, 1, 5, 9, 25, 19, 41, 195, 31, 555, 927, 1445, 593, 11067, 10819, 17205, 82037}}, +{6014, 17, 2414, {1, 3, 1, 13, 1, 35, 29, 71, 323, 705, 53, 3885, 6223, 1319, 30853, 59935, 35949}}, +{6015, 17, 2419, {1, 1, 7, 3, 27, 63, 67, 31, 149, 61, 1611, 77, 4271, 3161, 12493, 38341, 53837}}, +{6016, 17, 2428, {1, 1, 1, 15, 27, 53, 31, 249, 429, 925, 1485, 1855, 4421, 5703, 10097, 14827, 36685}}, +{6017, 17, 2441, {1, 3, 7, 13, 7, 63, 53, 9, 317, 485, 1679, 3631, 3745, 5643, 21615, 45129, 48027}}, +{6018, 17, 2444, {1, 1, 1, 1, 17, 43, 19, 163, 441, 847, 937, 959, 6649, 13071, 1065, 55193, 129509}}, +{6019, 17, 2461, {1, 1, 1, 11, 29, 47, 9, 215, 397, 637, 961, 3139, 2007, 12603, 27657, 22825, 72873}}, +{6020, 17, 2480, {1, 3, 3, 15, 7, 45, 55, 163, 259, 899, 951, 3245, 4191, 15813, 20195, 8361, 54025}}, +{6021, 17, 2483, {1, 1, 5, 11, 3, 17, 13, 223, 289, 255, 875, 2937, 1593, 9729, 21569, 63199, 83875}}, +{6022, 17, 2486, {1, 1, 1, 15, 19, 31, 17, 129, 267, 9, 2015, 3233, 6799, 12891, 18473, 37865, 19547}}, +{6023, 17, 2489, {1, 1, 5, 5, 5, 29, 81, 37, 357, 539, 1525, 2839, 8041, 5569, 4423, 8907, 35461}}, +{6024, 17, 2490, {1, 1, 5, 5, 29, 11, 85, 61, 333, 521, 1111, 3627, 325, 9805, 17889, 25655, 39537}}, +{6025, 17, 2518, {1, 3, 5, 11, 11, 53, 81, 25, 79, 253, 1963, 287, 7487, 15045, 21431, 35417, 102391}}, +{6026, 17, 2527, {1, 1, 1, 5, 11, 33, 45, 45, 425, 773, 1817, 4077, 1471, 11655, 683, 7115, 92651}}, +{6027, 17, 2540, {1, 1, 3, 3, 21, 13, 101, 215, 311, 853, 41, 1007, 5511, 2581, 25565, 13155, 117225}}, +{6028, 17, 2558, {1, 1, 3, 11, 19, 9, 125, 59, 273, 691, 499, 1547, 567, 10259, 21963, 48725, 3601}}, +{6029, 17, 2567, {1, 1, 3, 7, 27, 31, 39, 125, 317, 625, 1329, 3947, 3943, 6889, 2811, 34055, 1449}}, +{6030, 17, 2571, {1, 1, 1, 3, 29, 45, 73, 239, 319, 611, 647, 1839, 5277, 7807, 3107, 14683, 20203}}, +{6031, 17, 2574, {1, 3, 3, 3, 5, 5, 107, 139, 103, 809, 1343, 4041, 3273, 1789, 16205, 47873, 27803}}, +{6032, 17, 2579, {1, 3, 1, 9, 21, 23, 13, 131, 105, 741, 1773, 981, 5633, 14609, 12281, 50343, 14317}}, +{6033, 17, 2585, {1, 1, 1, 5, 11, 5, 125, 171, 109, 555, 159, 905, 691, 12401, 22817, 41411, 70113}}, +{6034, 17, 2615, {1, 3, 3, 9, 31, 37, 109, 231, 59, 615, 799, 319, 2459, 4521, 8525, 4827, 22969}}, +{6035, 17, 2639, {1, 3, 1, 5, 11, 7, 49, 237, 345, 473, 981, 2073, 6525, 8805, 13403, 3659, 69897}}, +{6036, 17, 2641, {1, 3, 1, 5, 9, 37, 13, 203, 141, 573, 745, 2613, 5589, 607, 24483, 38427, 95775}}, +{6037, 17, 2644, {1, 1, 3, 1, 23, 61, 75, 57, 299, 191, 805, 2993, 5175, 12037, 13649, 58831, 48791}}, +{6038, 17, 2663, {1, 3, 7, 13, 31, 57, 13, 219, 185, 717, 1607, 3785, 4719, 11583, 29285, 48207, 92021}}, +{6039, 17, 2667, {1, 3, 7, 15, 23, 35, 23, 69, 411, 773, 1549, 1087, 1685, 15703, 27193, 62675, 43505}}, +{6040, 17, 2669, {1, 1, 5, 3, 25, 19, 97, 75, 493, 549, 1655, 2881, 4989, 2765, 4797, 43143, 113955}}, +{6041, 17, 2672, {1, 1, 5, 7, 21, 5, 65, 37, 383, 133, 1907, 3747, 1525, 5803, 19977, 50551, 23157}}, +{6042, 17, 2687, {1, 1, 1, 11, 15, 61, 59, 109, 489, 901, 1787, 1611, 6101, 10653, 3071, 35643, 56227}}, +{6043, 17, 2700, {1, 3, 1, 5, 15, 25, 121, 111, 25, 251, 1467, 1795, 1631, 13753, 32391, 14831, 90739}}, +{6044, 17, 2705, {1, 1, 1, 13, 23, 55, 119, 147, 45, 871, 1389, 1929, 1023, 16131, 10041, 40055, 23337}}, +{6045, 17, 2724, {1, 3, 1, 15, 27, 33, 23, 41, 463, 603, 1633, 3445, 2007, 5999, 11175, 18343, 13159}}, +{6046, 17, 2728, {1, 3, 1, 9, 17, 15, 107, 63, 493, 411, 293, 3669, 6143, 3057, 8253, 25491, 58907}}, +{6047, 17, 2733, {1, 3, 5, 11, 1, 43, 5, 117, 127, 813, 1881, 3711, 2567, 7819, 5809, 64471, 104221}}, +{6048, 17, 2741, {1, 3, 5, 9, 25, 27, 49, 93, 77, 705, 1773, 1745, 4605, 16137, 14621, 62893, 81637}}, +{6049, 17, 2748, {1, 3, 1, 15, 9, 29, 41, 101, 291, 763, 1475, 3185, 3661, 10351, 26645, 50375, 59373}}, +{6050, 17, 2751, {1, 1, 5, 15, 9, 31, 107, 159, 125, 471, 1023, 2361, 4805, 8073, 21563, 14903, 77801}}, +{6051, 17, 2756, {1, 3, 7, 1, 27, 17, 75, 129, 71, 697, 551, 1969, 6597, 13821, 2605, 61783, 74791}}, +{6052, 17, 2771, {1, 1, 7, 15, 17, 27, 49, 47, 59, 47, 1671, 2535, 1299, 2387, 24349, 23661, 91123}}, +{6053, 17, 2774, {1, 1, 5, 15, 21, 61, 45, 37, 415, 189, 143, 351, 1815, 3479, 2399, 56753, 123893}}, +{6054, 17, 2793, {1, 1, 3, 7, 7, 19, 93, 249, 335, 305, 1437, 1329, 2693, 13201, 9589, 61513, 115995}}, +{6055, 17, 2796, {1, 1, 1, 11, 21, 57, 33, 205, 235, 253, 751, 259, 6029, 9811, 10231, 36899, 78035}}, +{6056, 17, 2804, {1, 1, 1, 11, 13, 25, 115, 195, 111, 913, 1851, 3283, 6083, 11717, 2773, 40727, 493}}, +{6057, 17, 2814, {1, 3, 3, 9, 9, 17, 83, 137, 465, 671, 1277, 325, 2767, 12413, 21977, 47525, 23041}}, +{6058, 17, 2822, {1, 1, 1, 11, 15, 47, 65, 219, 271, 197, 297, 3195, 1325, 9991, 26385, 46055, 43151}}, +{6059, 17, 2845, {1, 1, 1, 13, 31, 21, 39, 89, 127, 629, 367, 2935, 6259, 6627, 15691, 55781, 97251}}, +{6060, 17, 2846, {1, 1, 7, 13, 11, 45, 65, 75, 211, 785, 1221, 2087, 7751, 15619, 25489, 28195, 69007}}, +{6061, 17, 2850, {1, 3, 5, 15, 27, 37, 75, 111, 487, 219, 233, 583, 6433, 15105, 355, 28331, 21105}}, +{6062, 17, 2855, {1, 3, 3, 15, 31, 53, 33, 95, 27, 197, 1727, 1467, 7115, 15479, 26873, 31075, 12793}}, +{6063, 17, 2856, {1, 3, 7, 1, 19, 3, 19, 105, 225, 599, 737, 107, 7951, 10193, 31699, 59207, 85619}}, +{6064, 17, 2867, {1, 3, 1, 3, 7, 17, 73, 191, 247, 421, 537, 1473, 189, 4219, 29993, 25491, 21189}}, +{6065, 17, 2891, {1, 3, 7, 7, 13, 21, 33, 95, 147, 699, 943, 2275, 4093, 6067, 9063, 25503, 111085}}, +{6066, 17, 2894, {1, 1, 7, 9, 13, 47, 123, 121, 347, 467, 225, 957, 2329, 14075, 29843, 61753, 97179}}, +{6067, 17, 2902, {1, 3, 3, 7, 17, 55, 37, 167, 215, 819, 163, 1747, 4485, 15991, 28011, 36351, 106495}}, +{6068, 17, 2908, {1, 1, 3, 9, 25, 5, 83, 199, 209, 395, 1757, 1967, 5739, 2573, 13989, 32145, 4847}}, +{6069, 17, 2951, {1, 3, 3, 13, 11, 21, 25, 223, 239, 569, 1877, 299, 8089, 3697, 801, 64775, 26827}}, +{6070, 17, 2970, {1, 3, 5, 7, 17, 9, 127, 9, 65, 919, 1073, 2661, 1337, 10065, 30099, 30929, 90067}}, +{6071, 17, 2972, {1, 3, 1, 13, 25, 41, 35, 251, 279, 351, 111, 3917, 2815, 7989, 9895, 54859, 126355}}, +{6072, 17, 2975, {1, 1, 3, 7, 17, 61, 13, 73, 335, 831, 703, 37, 2765, 13169, 12513, 56301, 13907}}, +{6073, 17, 2976, {1, 1, 5, 13, 11, 15, 33, 45, 505, 127, 1723, 17, 4927, 11453, 28859, 9671, 80041}}, +{6074, 17, 2981, {1, 3, 1, 5, 9, 1, 25, 147, 281, 601, 243, 2687, 5533, 6725, 11075, 34807, 24619}}, +{6075, 17, 2986, {1, 1, 3, 1, 7, 21, 71, 31, 485, 561, 1361, 1237, 8171, 15885, 7941, 4583, 32851}}, +{6076, 17, 2999, {1, 3, 7, 1, 5, 35, 95, 155, 283, 959, 577, 1343, 4269, 13481, 30819, 40273, 8711}}, +{6077, 17, 3000, {1, 3, 7, 3, 1, 53, 77, 45, 215, 537, 1045, 77, 2791, 3553, 13273, 23819, 62263}}, +{6078, 17, 3006, {1, 3, 1, 15, 29, 59, 7, 145, 85, 3, 251, 2691, 7547, 11241, 32295, 24645, 75739}}, +{6079, 17, 3014, {1, 1, 5, 9, 19, 9, 39, 163, 303, 233, 2039, 2027, 7169, 2773, 28649, 38317, 66761}}, +{6080, 17, 3028, {1, 3, 7, 5, 21, 27, 93, 227, 131, 1019, 1619, 1497, 4043, 1131, 25761, 20173, 99957}}, +{6081, 17, 3031, {1, 3, 7, 5, 19, 33, 15, 173, 435, 399, 531, 2001, 3221, 12627, 10153, 24421, 61805}}, +{6082, 17, 3035, {1, 3, 1, 9, 11, 3, 69, 105, 289, 183, 1103, 831, 2297, 1613, 18801, 54395, 54243}}, +{6083, 17, 3037, {1, 3, 3, 9, 3, 53, 113, 183, 79, 355, 1629, 1061, 3713, 4563, 14365, 43529, 56073}}, +{6084, 17, 3053, {1, 3, 7, 11, 31, 39, 107, 139, 187, 873, 225, 33, 4943, 15837, 225, 6407, 85967}}, +{6085, 17, 3059, {1, 3, 1, 11, 17, 47, 93, 233, 119, 699, 1429, 2845, 2061, 8887, 20665, 45497, 33107}}, +{6086, 17, 3065, {1, 3, 5, 1, 25, 11, 55, 75, 91, 1009, 1887, 3167, 515, 15929, 11659, 57953, 63401}}, +{6087, 17, 3080, {1, 1, 3, 15, 27, 59, 103, 53, 353, 553, 2021, 1543, 2785, 9373, 14609, 21213, 19911}}, +{6088, 17, 3091, {1, 3, 7, 9, 3, 1, 101, 133, 437, 773, 1399, 1067, 7419, 1793, 16589, 3483, 42065}}, +{6089, 17, 3094, {1, 3, 7, 1, 25, 57, 127, 113, 65, 577, 1865, 1527, 6485, 11273, 15803, 39625, 75219}}, +{6090, 17, 3109, {1, 3, 5, 9, 7, 63, 29, 89, 155, 45, 1029, 2407, 6783, 4749, 4849, 26639, 54059}}, +{6091, 17, 3110, {1, 3, 7, 9, 25, 13, 113, 41, 267, 767, 1071, 1689, 269, 14437, 21255, 39473, 65771}}, +{6092, 17, 3113, {1, 3, 1, 15, 5, 3, 77, 43, 391, 763, 59, 1027, 6263, 3715, 31061, 43311, 130725}}, +{6093, 17, 3116, {1, 3, 7, 7, 21, 51, 127, 71, 229, 171, 397, 1099, 871, 2717, 1643, 17363, 125979}}, +{6094, 17, 3136, {1, 1, 5, 15, 25, 11, 11, 113, 203, 795, 1703, 3901, 1113, 12819, 25345, 46691, 112313}}, +{6095, 17, 3139, {1, 3, 7, 5, 1, 59, 91, 81, 325, 483, 595, 1491, 7455, 6699, 199, 35597, 59851}}, +{6096, 17, 3141, {1, 3, 5, 1, 3, 33, 43, 195, 201, 575, 1395, 1305, 7001, 2023, 22419, 15233, 120355}}, +{6097, 17, 3154, {1, 1, 3, 3, 15, 37, 81, 59, 87, 675, 199, 3231, 4473, 5023, 16753, 51475, 102113}}, +{6098, 17, 3160, {1, 1, 7, 9, 13, 39, 65, 9, 51, 565, 1171, 119, 7875, 12149, 6565, 56849, 123235}}, +{6099, 17, 3169, {1, 3, 3, 7, 15, 45, 53, 93, 111, 533, 1849, 643, 2265, 10241, 24741, 11559, 74333}}, +{6100, 17, 3182, {1, 3, 1, 1, 11, 61, 75, 51, 5, 199, 535, 279, 5821, 6005, 2907, 32521, 74121}}, +{6101, 17, 3187, {1, 1, 3, 15, 3, 21, 29, 193, 71, 993, 1719, 1865, 6135, 7683, 12171, 29275, 14539}}, +{6102, 17, 3189, {1, 1, 1, 7, 7, 13, 1, 61, 315, 431, 1145, 2067, 5745, 1641, 1047, 55111, 129477}}, +{6103, 17, 3190, {1, 1, 5, 1, 21, 43, 115, 193, 153, 573, 1181, 3947, 7809, 11317, 30649, 56891, 47741}}, +{6104, 17, 3203, {1, 1, 5, 7, 19, 15, 61, 239, 109, 683, 395, 2869, 3103, 1531, 12019, 45159, 37525}}, +{6105, 17, 3217, {1, 1, 5, 7, 29, 55, 45, 7, 353, 659, 591, 3371, 5777, 8475, 2743, 47483, 11983}}, +{6106, 17, 3229, {1, 3, 1, 3, 13, 17, 39, 195, 43, 5, 1749, 2559, 5843, 8719, 21421, 58511, 105637}}, +{6107, 17, 3236, {1, 3, 5, 5, 5, 21, 29, 63, 387, 301, 567, 3325, 2109, 403, 23053, 24851, 14493}}, +{6108, 17, 3248, {1, 1, 3, 3, 17, 57, 107, 131, 85, 855, 1101, 3199, 7159, 14739, 4197, 27943, 113009}}, +{6109, 17, 3257, {1, 1, 3, 11, 1, 61, 31, 79, 33, 123, 1509, 507, 6679, 2279, 8465, 37279, 17553}}, +{6110, 17, 3278, {1, 3, 1, 15, 7, 33, 11, 71, 217, 609, 1661, 3437, 5497, 13365, 6247, 649, 26407}}, +{6111, 17, 3283, {1, 1, 3, 1, 19, 45, 49, 125, 5, 455, 1669, 4083, 253, 10101, 27327, 16401, 120399}}, +{6112, 17, 3289, {1, 3, 1, 1, 27, 19, 117, 137, 261, 341, 1697, 457, 7553, 12169, 30049, 49281, 36937}}, +{6113, 17, 3292, {1, 1, 1, 3, 9, 49, 33, 13, 461, 545, 1537, 2623, 883, 10921, 5583, 58997, 114183}}, +{6114, 17, 3302, {1, 1, 7, 9, 29, 53, 29, 165, 205, 989, 1347, 2343, 7505, 7609, 18503, 51677, 105993}}, +{6115, 17, 3316, {1, 1, 1, 13, 1, 29, 59, 121, 297, 659, 1965, 1765, 5255, 10971, 32613, 18763, 41983}}, +{6116, 17, 3328, {1, 3, 7, 11, 21, 41, 19, 47, 125, 485, 475, 2745, 4075, 8101, 31227, 4679, 115473}}, +{6117, 17, 3333, {1, 3, 3, 7, 21, 23, 55, 65, 223, 1001, 317, 1459, 183, 5139, 26553, 41471, 116373}}, +{6118, 17, 3337, {1, 1, 7, 3, 1, 9, 29, 139, 343, 913, 1993, 3139, 3791, 5869, 6057, 23863, 35737}}, +{6119, 17, 3340, {1, 3, 3, 3, 7, 21, 77, 197, 239, 467, 35, 591, 1061, 3417, 31811, 38825, 124981}}, +{6120, 17, 3368, {1, 3, 3, 1, 21, 29, 5, 213, 417, 111, 1681, 1409, 2899, 16233, 1053, 51235, 87767}}, +{6121, 17, 3371, {1, 1, 5, 3, 13, 47, 61, 203, 223, 73, 1947, 3613, 5885, 13567, 7593, 34329, 68597}}, +{6122, 17, 3376, {1, 3, 1, 1, 17, 9, 11, 187, 361, 973, 781, 1835, 1539, 12917, 21725, 48279, 115037}}, +{6123, 17, 3385, {1, 3, 1, 1, 9, 25, 117, 157, 433, 395, 403, 2183, 3327, 5427, 7505, 2673, 77137}}, +{6124, 17, 3386, {1, 1, 7, 15, 31, 15, 27, 155, 441, 837, 1877, 3829, 5139, 16331, 31183, 15803, 95699}}, +{6125, 17, 3393, {1, 1, 7, 15, 5, 51, 77, 179, 289, 727, 1763, 2529, 6715, 3967, 29267, 27293, 67953}}, +{6126, 17, 3399, {1, 3, 7, 13, 7, 3, 3, 17, 311, 547, 1465, 1413, 3937, 2725, 24523, 12321, 109763}}, +{6127, 17, 3405, {1, 3, 5, 15, 9, 5, 87, 135, 281, 97, 2021, 1903, 8007, 10321, 27989, 18993, 110407}}, +{6128, 17, 3414, {1, 1, 1, 13, 25, 61, 89, 107, 233, 823, 1375, 3531, 1757, 1577, 29457, 1461, 17217}}, +{6129, 17, 3433, {1, 1, 1, 13, 17, 17, 27, 193, 485, 759, 145, 3943, 4183, 14119, 11217, 3793, 1935}}, +{6130, 17, 3436, {1, 1, 1, 3, 13, 31, 101, 227, 311, 363, 1925, 1525, 5275, 2385, 15093, 48769, 121189}}, +{6131, 17, 3448, {1, 1, 5, 13, 11, 61, 89, 141, 117, 229, 417, 3935, 7249, 13869, 30591, 62763, 67521}}, +{6132, 17, 3467, {1, 1, 3, 15, 7, 59, 105, 239, 453, 221, 1101, 395, 2031, 8941, 23155, 7077, 125593}}, +{6133, 17, 3469, {1, 1, 1, 11, 7, 55, 99, 31, 305, 371, 1035, 577, 4473, 577, 371, 46093, 69157}}, +{6134, 17, 3472, {1, 3, 1, 9, 9, 33, 35, 245, 95, 47, 1623, 2965, 6849, 7269, 5321, 31641, 73321}}, +{6135, 17, 3477, {1, 1, 1, 15, 21, 61, 65, 65, 159, 151, 625, 2281, 2993, 1311, 29757, 24703, 71029}}, +{6136, 17, 3484, {1, 3, 5, 15, 29, 59, 29, 69, 351, 901, 631, 3501, 7031, 703, 20805, 36437, 94931}}, +{6137, 17, 3494, {1, 3, 7, 1, 21, 11, 19, 125, 237, 807, 1651, 2389, 7347, 11759, 27151, 38669, 965}}, +{6138, 17, 3505, {1, 1, 5, 1, 15, 41, 1, 105, 89, 127, 895, 29, 2339, 15951, 18633, 2781, 67269}}, +{6139, 17, 3515, {1, 1, 5, 15, 25, 7, 3, 33, 375, 447, 203, 2579, 6145, 14015, 9939, 52777, 123181}}, +{6140, 17, 3523, {1, 3, 1, 15, 29, 7, 7, 27, 451, 869, 107, 2457, 5557, 11601, 28957, 36181, 41419}}, +{6141, 17, 3530, {1, 1, 1, 7, 1, 57, 33, 213, 329, 763, 815, 169, 623, 155, 20529, 20603, 73311}}, +{6142, 17, 3543, {1, 3, 5, 7, 25, 21, 7, 217, 159, 89, 1373, 1735, 705, 4093, 13083, 3855, 55875}}, +{6143, 17, 3559, {1, 3, 1, 1, 29, 33, 105, 127, 95, 543, 235, 67, 691, 5015, 22139, 18251, 89945}}, +{6144, 17, 3568, {1, 1, 3, 11, 27, 53, 105, 83, 337, 331, 1571, 1145, 745, 1845, 17881, 17697, 88139}}, +{6145, 17, 3577, {1, 3, 7, 15, 19, 37, 119, 35, 35, 463, 1925, 1665, 673, 12193, 12137, 62371, 10957}}, +{6146, 17, 3578, {1, 3, 3, 3, 19, 21, 113, 29, 459, 467, 623, 2661, 857, 16265, 27509, 46555, 18867}}, +{6147, 17, 3594, {1, 3, 7, 5, 17, 49, 123, 41, 85, 673, 41, 1871, 7649, 8687, 28269, 64423, 93675}}, +{6148, 17, 3601, {1, 3, 3, 3, 7, 23, 101, 171, 181, 527, 65, 2387, 6629, 6089, 17387, 46551, 36143}}, +{6149, 17, 3607, {1, 1, 5, 1, 13, 51, 21, 251, 139, 429, 1993, 3767, 1089, 5459, 19407, 41747, 41033}}, +{6150, 17, 3608, {1, 1, 1, 11, 15, 9, 81, 91, 73, 969, 1513, 2067, 7959, 2605, 26641, 37631, 124571}}, +{6151, 17, 3620, {1, 1, 3, 15, 29, 15, 5, 57, 247, 901, 527, 3325, 5859, 11299, 9871, 63947, 125247}}, +{6152, 17, 3629, {1, 3, 1, 5, 1, 35, 75, 21, 307, 43, 1111, 3299, 1647, 3585, 31045, 18217, 95169}}, +{6153, 17, 3644, {1, 3, 1, 7, 23, 35, 11, 103, 3, 461, 1915, 4019, 453, 13111, 26941, 43091, 22917}}, +{6154, 17, 3656, {1, 1, 5, 5, 1, 61, 121, 167, 475, 5, 1749, 887, 2237, 5055, 7077, 29453, 17691}}, +{6155, 17, 3664, {1, 3, 3, 15, 15, 15, 9, 15, 171, 787, 1965, 577, 4507, 7325, 20901, 8557, 111909}}, +{6156, 17, 3670, {1, 3, 5, 1, 27, 15, 123, 141, 63, 55, 599, 4095, 1245, 13919, 27485, 49977, 74551}}, +{6157, 17, 3680, {1, 3, 5, 9, 21, 61, 79, 119, 7, 573, 1923, 2775, 3127, 12689, 12135, 53429, 130163}}, +{6158, 17, 3685, {1, 3, 3, 13, 27, 41, 67, 249, 447, 277, 311, 775, 8187, 10161, 12953, 22885, 121247}}, +{6159, 17, 3686, {1, 3, 5, 9, 21, 55, 115, 65, 45, 395, 481, 2063, 6493, 4199, 19219, 27119, 62255}}, +{6160, 17, 3695, {1, 1, 3, 13, 7, 41, 3, 127, 383, 923, 1725, 1033, 7731, 11971, 3089, 46459, 98369}}, +{6161, 17, 3698, {1, 1, 3, 11, 13, 39, 39, 149, 309, 311, 1491, 807, 2109, 363, 14637, 65429, 124731}}, +{6162, 17, 3703, {1, 1, 7, 13, 13, 35, 67, 81, 493, 859, 1177, 237, 4605, 15319, 16669, 16661, 21385}}, +{6163, 17, 3710, {1, 1, 3, 7, 7, 39, 57, 103, 239, 753, 221, 1611, 1557, 13317, 27453, 10245, 33839}}, +{6164, 17, 3714, {1, 1, 5, 13, 27, 53, 97, 41, 123, 253, 535, 1839, 5827, 7587, 1261, 20313, 65961}}, +{6165, 17, 3726, {1, 1, 7, 1, 11, 47, 93, 135, 223, 591, 1087, 3329, 3293, 14207, 6187, 54789, 23781}}, +{6166, 17, 3731, {1, 3, 7, 7, 25, 21, 97, 105, 269, 515, 1805, 3711, 3295, 7307, 21065, 65205, 116969}}, +{6167, 17, 3733, {1, 3, 1, 11, 25, 37, 21, 89, 109, 581, 1055, 2393, 1291, 1115, 25545, 36383, 93605}}, +{6168, 17, 3737, {1, 3, 7, 1, 27, 13, 113, 11, 395, 473, 943, 4045, 5507, 15051, 25203, 2971, 31961}}, +{6169, 17, 3756, {1, 1, 5, 5, 27, 35, 57, 219, 67, 949, 659, 203, 5235, 6509, 13731, 61533, 54963}}, +{6170, 17, 3759, {1, 3, 1, 1, 15, 39, 85, 13, 347, 99, 25, 3595, 3081, 13617, 14373, 58909, 102181}}, +{6171, 17, 3767, {1, 1, 7, 13, 3, 25, 97, 91, 287, 389, 665, 2981, 2301, 12625, 4495, 57489, 68677}}, +{6172, 17, 3776, {1, 1, 5, 1, 15, 57, 77, 55, 299, 713, 1457, 3699, 2807, 5549, 467, 47367, 8163}}, +{6173, 17, 3785, {1, 1, 7, 3, 23, 45, 91, 251, 501, 193, 1121, 2359, 4781, 12797, 13713, 55171, 927}}, +{6174, 17, 3793, {1, 3, 3, 7, 7, 31, 87, 163, 249, 163, 937, 1293, 4827, 10299, 31935, 58787, 80589}}, +{6175, 17, 3812, {1, 3, 1, 9, 7, 1, 73, 65, 475, 791, 1429, 3319, 7149, 433, 10373, 44061, 121195}}, +{6176, 17, 3815, {1, 1, 5, 9, 9, 61, 27, 249, 435, 437, 1329, 2163, 5859, 13663, 623, 55569, 94283}}, +{6177, 17, 3824, {1, 3, 7, 11, 1, 29, 117, 195, 399, 999, 1705, 1325, 6043, 9823, 27335, 30377, 16627}}, +{6178, 17, 3844, {1, 1, 1, 15, 5, 11, 63, 185, 15, 741, 1061, 2961, 3455, 5, 26587, 54081, 18107}}, +{6179, 17, 3859, {1, 1, 5, 7, 29, 57, 17, 203, 501, 177, 49, 2773, 8069, 12513, 14437, 64489, 58661}}, +{6180, 17, 3866, {1, 3, 3, 9, 11, 23, 121, 3, 415, 447, 1773, 135, 5901, 4951, 2683, 437, 126251}}, +{6181, 17, 3872, {1, 3, 3, 1, 7, 23, 17, 23, 115, 591, 1075, 3133, 49, 15183, 10615, 37857, 122609}}, +{6182, 17, 3884, {1, 1, 3, 3, 13, 49, 63, 37, 275, 763, 1135, 2913, 1563, 11037, 6693, 18799, 32089}}, +{6183, 17, 3889, {1, 3, 5, 11, 7, 29, 59, 45, 227, 941, 1947, 2733, 797, 10485, 7071, 14741, 11451}}, +{6184, 17, 3899, {1, 1, 1, 9, 21, 19, 77, 97, 75, 991, 187, 1003, 5619, 11013, 3931, 19907, 79723}}, +{6185, 17, 3902, {1, 1, 7, 13, 1, 57, 61, 177, 443, 227, 1347, 2665, 2011, 12329, 14137, 37795, 63331}}, +{6186, 17, 3909, {1, 3, 3, 9, 31, 59, 87, 93, 485, 635, 901, 1845, 6153, 10797, 1289, 8989, 41717}}, +{6187, 17, 3913, {1, 1, 1, 1, 3, 7, 85, 17, 67, 309, 1891, 435, 303, 8011, 32127, 54309, 21457}}, +{6188, 17, 3933, {1, 3, 7, 1, 29, 27, 41, 239, 293, 717, 1331, 917, 6145, 7131, 28199, 35093, 103683}}, +{6189, 17, 3938, {1, 3, 7, 3, 21, 63, 65, 233, 257, 789, 1095, 505, 4557, 16259, 7397, 24815, 89529}}, +{6190, 17, 3949, {1, 3, 3, 11, 29, 41, 55, 17, 335, 715, 779, 2121, 6393, 8887, 32753, 45647, 82665}}, +{6191, 17, 3952, {1, 1, 1, 11, 27, 47, 71, 13, 141, 283, 967, 3359, 4309, 6661, 20481, 23175, 50835}}, +{6192, 17, 3980, {1, 3, 3, 7, 3, 25, 19, 241, 409, 573, 1565, 3355, 1307, 12205, 18017, 8271, 117007}}, +{6193, 17, 3991, {1, 3, 3, 9, 21, 39, 21, 253, 439, 963, 341, 3637, 2275, 1845, 11015, 481, 83369}}, +{6194, 17, 3992, {1, 3, 7, 9, 31, 29, 29, 163, 111, 983, 571, 713, 2621, 11569, 13341, 28341, 130381}}, +{6195, 17, 4002, {1, 3, 7, 7, 11, 35, 89, 49, 81, 115, 113, 1857, 3527, 14819, 6909, 14659, 23557}}, +{6196, 17, 4008, {1, 3, 3, 15, 29, 41, 85, 241, 317, 737, 213, 1667, 5789, 16321, 13991, 36165, 124151}}, +{6197, 17, 4011, {1, 3, 1, 3, 31, 1, 75, 99, 495, 241, 1499, 1535, 2033, 2135, 6699, 58893, 37031}}, +{6198, 17, 4016, {1, 1, 7, 9, 25, 15, 101, 23, 477, 563, 1691, 2655, 2321, 2323, 4255, 22055, 99661}}, +{6199, 17, 4034, {1, 3, 7, 5, 7, 7, 49, 221, 51, 83, 279, 2205, 2939, 2119, 14073, 32839, 108075}}, +{6200, 17, 4036, {1, 3, 5, 11, 17, 39, 3, 127, 87, 501, 799, 401, 4439, 9895, 13017, 64975, 67177}}, +{6201, 17, 4063, {1, 3, 3, 9, 17, 41, 59, 95, 283, 309, 83, 1293, 6385, 5783, 30115, 33997, 12531}}, +{6202, 17, 4067, {1, 3, 5, 3, 7, 31, 69, 171, 225, 409, 1237, 3343, 835, 8039, 16723, 37203, 129047}}, +{6203, 17, 4073, {1, 3, 3, 15, 17, 23, 107, 1, 105, 135, 1245, 993, 4101, 7325, 7425, 17379, 98121}}, +{6204, 17, 4082, {1, 1, 7, 9, 27, 5, 67, 111, 75, 531, 243, 2239, 2527, 4513, 27059, 40533, 88169}}, +{6205, 17, 4091, {1, 3, 5, 7, 21, 63, 57, 15, 75, 679, 1729, 1845, 6259, 8531, 18691, 49321, 101599}}, +{6206, 17, 4093, {1, 1, 5, 9, 3, 35, 7, 201, 351, 885, 669, 2339, 5009, 279, 26469, 54597, 67933}}, +{6207, 17, 4101, {1, 3, 5, 13, 27, 5, 85, 161, 141, 733, 1017, 2021, 6951, 15595, 21817, 17243, 88607}}, +{6208, 17, 4113, {1, 3, 5, 1, 11, 31, 117, 97, 175, 629, 995, 1207, 2941, 5825, 5319, 48191, 9505}}, +{6209, 17, 4120, {1, 3, 3, 7, 25, 39, 45, 79, 21, 607, 1593, 1749, 7951, 10425, 17491, 16617, 56903}}, +{6210, 17, 4125, {1, 1, 1, 5, 15, 41, 107, 115, 79, 693, 919, 3513, 6793, 6541, 5545, 58583, 27963}}, +{6211, 17, 4126, {1, 3, 7, 11, 21, 19, 123, 1, 441, 531, 359, 2117, 2465, 11389, 13489, 32755, 4577}}, +{6212, 17, 4139, {1, 1, 5, 13, 7, 7, 7, 127, 201, 377, 1423, 269, 2611, 3339, 19153, 25659, 33069}}, +{6213, 17, 4142, {1, 3, 7, 1, 13, 35, 45, 5, 313, 739, 1779, 2983, 1815, 8817, 14239, 3921, 57975}}, +{6214, 17, 4144, {1, 3, 1, 11, 9, 39, 33, 111, 39, 255, 159, 2345, 2193, 11475, 12841, 47579, 90309}}, +{6215, 17, 4147, {1, 1, 1, 3, 27, 49, 85, 157, 243, 247, 1473, 323, 4631, 1787, 15193, 5533, 104999}}, +{6216, 17, 4153, {1, 1, 7, 9, 11, 29, 23, 219, 57, 339, 1797, 409, 6025, 10569, 27409, 15147, 130281}}, +{6217, 17, 4154, {1, 1, 7, 1, 31, 31, 113, 229, 63, 877, 319, 2655, 3335, 7743, 19593, 10089, 28215}}, +{6218, 17, 4164, {1, 1, 3, 11, 23, 3, 71, 235, 329, 751, 159, 2579, 5363, 12681, 20233, 53855, 16407}}, +{6219, 17, 4174, {1, 1, 5, 1, 7, 61, 21, 235, 379, 849, 61, 2969, 6399, 2655, 21635, 16955, 58675}}, +{6220, 17, 4182, {1, 3, 7, 7, 29, 15, 5, 11, 143, 699, 1875, 2115, 6633, 6195, 5829, 53633, 111221}}, +{6221, 17, 4185, {1, 3, 7, 11, 19, 41, 17, 219, 483, 829, 1233, 3183, 6283, 2363, 25245, 63075, 82733}}, +{6222, 17, 4188, {1, 3, 7, 13, 21, 17, 1, 207, 443, 575, 521, 2585, 6875, 14871, 14739, 10211, 127435}}, +{6223, 17, 4191, {1, 3, 7, 7, 15, 39, 99, 197, 219, 259, 1723, 3737, 6625, 849, 887, 41293, 53825}}, +{6224, 17, 4195, {1, 3, 3, 3, 5, 3, 75, 155, 189, 935, 85, 2273, 1375, 4217, 10709, 58047, 81689}}, +{6225, 17, 4219, {1, 3, 5, 5, 27, 27, 107, 229, 179, 887, 91, 421, 7313, 6495, 451, 43859, 40033}}, +{6226, 17, 4225, {1, 3, 5, 11, 25, 49, 121, 73, 169, 311, 1387, 1037, 6519, 9317, 26975, 50627, 46805}}, +{6227, 17, 4228, {1, 1, 5, 11, 17, 21, 19, 125, 387, 697, 1017, 1759, 7295, 9869, 28241, 9367, 119255}}, +{6228, 17, 4232, {1, 1, 7, 5, 29, 27, 87, 187, 95, 625, 933, 1751, 5253, 313, 30841, 16349, 67347}}, +{6229, 17, 4246, {1, 1, 3, 3, 15, 51, 23, 101, 183, 267, 243, 711, 983, 12461, 17801, 1429, 47273}}, +{6230, 17, 4255, {1, 1, 1, 3, 17, 3, 73, 67, 49, 449, 879, 2559, 401, 11983, 13697, 12023, 78855}}, +{6231, 17, 4274, {1, 3, 7, 15, 25, 25, 43, 81, 141, 161, 595, 621, 1165, 10869, 22875, 6741, 90017}}, +{6232, 17, 4283, {1, 3, 5, 11, 13, 57, 53, 219, 145, 937, 769, 1961, 4725, 3335, 12623, 8335, 46305}}, +{6233, 17, 4286, {1, 1, 3, 5, 7, 39, 19, 101, 313, 583, 483, 2515, 125, 5211, 2559, 11937, 126717}}, +{6234, 17, 4306, {1, 3, 1, 7, 7, 1, 117, 49, 231, 133, 381, 697, 927, 8263, 26529, 64881, 25059}}, +{6235, 17, 4311, {1, 1, 1, 15, 11, 25, 77, 149, 233, 215, 1239, 3045, 99, 11183, 30279, 32271, 100943}}, +{6236, 17, 4317, {1, 1, 5, 7, 31, 25, 1, 51, 221, 607, 1733, 2145, 6765, 7011, 16927, 29257, 2445}}, +{6237, 17, 4321, {1, 3, 5, 1, 19, 23, 123, 93, 381, 295, 765, 2335, 8025, 14003, 4801, 54243, 57297}}, +{6238, 17, 4324, {1, 1, 7, 9, 9, 31, 63, 191, 495, 527, 251, 2119, 1663, 209, 7445, 1441, 4075}}, +{6239, 17, 4331, {1, 3, 5, 5, 13, 17, 97, 79, 369, 55, 677, 2031, 7315, 4769, 31659, 21975, 22061}}, +{6240, 17, 4333, {1, 3, 3, 7, 3, 63, 121, 243, 39, 917, 1917, 297, 7241, 1565, 31675, 14443, 67239}}, +{6241, 17, 4359, {1, 3, 7, 1, 13, 25, 51, 65, 145, 475, 1853, 4023, 5121, 14411, 15993, 42165, 13615}}, +{6242, 17, 4360, {1, 3, 3, 1, 3, 51, 75, 29, 169, 311, 1309, 2929, 7669, 1507, 14605, 32667, 103861}}, +{6243, 17, 4368, {1, 3, 7, 1, 23, 37, 89, 211, 137, 495, 1469, 3425, 1167, 12429, 27301, 46857, 83007}}, +{6244, 17, 4373, {1, 3, 7, 7, 27, 37, 33, 129, 73, 23, 761, 119, 6217, 4749, 20835, 47477, 33665}}, +{6245, 17, 4389, {1, 1, 3, 5, 29, 35, 79, 21, 183, 933, 43, 3149, 5273, 12159, 20695, 5387, 23569}}, +{6246, 17, 4394, {1, 1, 5, 5, 3, 11, 57, 205, 349, 657, 1509, 3693, 5495, 11865, 13861, 62215, 94141}}, +{6247, 17, 4413, {1, 3, 1, 7, 17, 43, 117, 119, 75, 849, 1247, 643, 2691, 2289, 9759, 18683, 68649}}, +{6248, 17, 4422, {1, 1, 1, 15, 5, 55, 89, 177, 427, 701, 735, 2993, 5293, 15395, 567, 5501, 102393}}, +{6249, 17, 4431, {1, 3, 3, 15, 5, 37, 73, 111, 9, 141, 407, 1579, 6691, 11843, 6377, 64181, 97347}}, +{6250, 17, 4436, {1, 1, 5, 1, 9, 17, 71, 127, 285, 929, 1243, 2605, 359, 14589, 32603, 39879, 115901}}, +{6251, 17, 4440, {1, 3, 7, 15, 3, 27, 91, 121, 47, 631, 1589, 385, 5997, 14077, 21285, 33895, 36985}}, +{6252, 17, 4445, {1, 3, 3, 9, 1, 47, 89, 79, 213, 27, 547, 1703, 4035, 13205, 4341, 21895, 34247}}, +{6253, 17, 4452, {1, 3, 5, 7, 9, 9, 47, 89, 231, 857, 297, 2949, 2715, 1275, 14427, 20227, 21569}}, +{6254, 17, 4462, {1, 3, 1, 3, 15, 57, 61, 183, 377, 477, 1135, 1729, 2863, 8607, 29241, 34983, 84443}}, +{6255, 17, 4469, {1, 1, 7, 7, 5, 53, 91, 149, 71, 41, 1025, 3945, 3989, 15853, 20903, 26943, 99841}}, +{6256, 17, 4470, {1, 3, 3, 3, 29, 21, 59, 217, 483, 257, 331, 657, 2935, 945, 9821, 42501, 98087}}, +{6257, 17, 4473, {1, 3, 5, 3, 17, 39, 123, 103, 109, 957, 853, 3821, 555, 10869, 27673, 38315, 83105}}, +{6258, 17, 4479, {1, 3, 1, 3, 27, 7, 97, 57, 429, 53, 1791, 1405, 4113, 8435, 12845, 21567, 91559}}, +{6259, 17, 4480, {1, 3, 3, 1, 17, 61, 125, 77, 225, 395, 945, 3213, 1363, 15947, 27049, 4389, 64037}}, +{6260, 17, 4483, {1, 1, 1, 3, 15, 51, 15, 189, 449, 989, 939, 985, 6929, 13779, 25011, 22277, 72543}}, +{6261, 17, 4489, {1, 3, 3, 1, 25, 53, 5, 219, 195, 703, 163, 1405, 821, 6797, 14329, 1675, 96653}}, +{6262, 17, 4503, {1, 1, 7, 13, 7, 1, 45, 135, 369, 125, 711, 2509, 131, 13663, 29769, 19497, 116779}}, +{6263, 17, 4519, {1, 1, 7, 15, 23, 25, 7, 225, 435, 835, 1981, 2537, 5727, 15961, 30089, 58905, 100339}}, +{6264, 17, 4520, {1, 3, 7, 3, 19, 9, 79, 63, 371, 419, 1357, 3649, 7987, 14541, 6631, 50555, 84217}}, +{6265, 17, 4525, {1, 3, 3, 9, 7, 61, 11, 157, 99, 95, 945, 2803, 1703, 117, 12891, 21817, 84259}}, +{6266, 17, 4526, {1, 3, 7, 7, 25, 37, 111, 99, 65, 599, 1313, 2557, 5489, 3625, 7429, 19309, 78111}}, +{6267, 17, 4533, {1, 3, 1, 1, 19, 15, 85, 253, 347, 315, 1349, 983, 2507, 4155, 15311, 43535, 101409}}, +{6268, 17, 4552, {1, 3, 3, 3, 1, 55, 3, 57, 375, 107, 177, 1673, 6871, 7137, 10297, 65363, 42293}}, +{6269, 17, 4581, {1, 1, 1, 3, 9, 5, 83, 45, 139, 893, 63, 2859, 6333, 15591, 18491, 26387, 25573}}, +{6270, 17, 4585, {1, 1, 7, 15, 1, 39, 113, 127, 503, 617, 1367, 1855, 185, 4233, 5787, 8265, 42097}}, +{6271, 17, 4591, {1, 1, 3, 11, 11, 41, 119, 165, 331, 625, 81, 2495, 7247, 9139, 15269, 31447, 128425}}, +{6272, 17, 4594, {1, 1, 5, 5, 17, 35, 39, 1, 91, 563, 1841, 2975, 1233, 3837, 22145, 36719, 104503}}, +{6273, 17, 4596, {1, 1, 7, 3, 23, 35, 77, 69, 271, 487, 921, 2597, 8011, 13037, 6001, 20519, 32673}}, +{6274, 17, 4599, {1, 1, 1, 1, 29, 17, 11, 145, 473, 877, 813, 727, 6805, 3563, 13371, 22169, 17239}}, +{6275, 17, 4612, {1, 1, 1, 13, 17, 13, 1, 125, 313, 423, 1079, 2401, 2325, 2219, 24071, 25613, 34163}}, +{6276, 17, 4621, {1, 1, 5, 7, 29, 33, 53, 215, 11, 555, 555, 1965, 3643, 5433, 12923, 59655, 25339}}, +{6277, 17, 4630, {1, 3, 3, 3, 23, 37, 119, 117, 459, 359, 1849, 1019, 433, 15391, 5625, 52649, 81313}}, +{6278, 17, 4636, {1, 3, 3, 1, 21, 31, 121, 161, 113, 667, 863, 105, 3805, 14459, 28235, 24543, 89755}}, +{6279, 17, 4640, {1, 1, 5, 15, 17, 37, 15, 111, 511, 477, 611, 955, 2591, 16137, 14179, 30995, 129575}}, +{6280, 17, 4649, {1, 3, 3, 3, 21, 49, 25, 37, 287, 263, 851, 1015, 8133, 9429, 10959, 64483, 82533}}, +{6281, 17, 4650, {1, 1, 5, 1, 25, 19, 49, 159, 155, 443, 975, 1413, 321, 7871, 22935, 57303, 124027}}, +{6282, 17, 4660, {1, 3, 1, 1, 19, 45, 47, 89, 409, 509, 1249, 2445, 2053, 3781, 7517, 61869, 125137}}, +{6283, 17, 4677, {1, 1, 5, 13, 27, 57, 45, 43, 361, 329, 1321, 771, 4665, 12245, 18993, 15121, 127485}}, +{6284, 17, 4687, {1, 3, 3, 7, 3, 41, 127, 75, 485, 821, 497, 2649, 6423, 12419, 31421, 9441, 63645}}, +{6285, 17, 4696, {1, 1, 3, 5, 19, 61, 91, 35, 311, 287, 449, 3955, 5805, 5631, 25613, 55409, 104545}}, +{6286, 17, 4701, {1, 3, 7, 11, 27, 19, 27, 53, 19, 35, 1687, 3923, 3379, 10435, 15053, 12343, 89077}}, +{6287, 17, 4705, {1, 3, 5, 13, 31, 41, 15, 239, 349, 533, 1771, 737, 6503, 14355, 18781, 27805, 79049}}, +{6288, 17, 4706, {1, 3, 1, 3, 13, 11, 69, 227, 169, 873, 533, 2217, 1047, 12415, 12271, 22447, 14163}}, +{6289, 17, 4711, {1, 1, 3, 9, 7, 31, 23, 155, 133, 305, 1569, 521, 201, 10339, 16999, 29163, 32817}}, +{6290, 17, 4720, {1, 1, 1, 5, 31, 57, 43, 223, 121, 803, 357, 1855, 4321, 10245, 25725, 2543, 47395}}, +{6291, 17, 4723, {1, 3, 5, 9, 3, 5, 47, 189, 217, 899, 1455, 691, 1277, 7861, 3627, 14895, 41109}}, +{6292, 17, 4732, {1, 3, 7, 3, 29, 9, 37, 63, 453, 709, 921, 771, 8069, 239, 22639, 59937, 10635}}, +{6293, 17, 4736, {1, 3, 7, 1, 11, 51, 79, 131, 225, 757, 549, 1605, 3921, 1849, 16307, 29809, 120597}}, +{6294, 17, 4742, {1, 3, 7, 7, 1, 45, 33, 185, 23, 881, 1941, 4093, 4741, 11633, 2059, 32007, 11103}}, +{6295, 17, 4748, {1, 3, 5, 11, 17, 21, 43, 205, 363, 559, 697, 4057, 631, 6697, 883, 61705, 102791}}, +{6296, 17, 4754, {1, 1, 7, 9, 29, 35, 109, 85, 373, 321, 415, 2969, 6163, 6999, 9999, 36435, 125267}}, +{6297, 17, 4759, {1, 1, 7, 11, 25, 9, 113, 91, 337, 889, 947, 2093, 5289, 1367, 13297, 36155, 21825}}, +{6298, 17, 4769, {1, 1, 3, 9, 17, 25, 35, 79, 275, 687, 335, 1181, 7327, 3729, 1561, 27441, 114355}}, +{6299, 17, 4787, {1, 3, 3, 11, 25, 41, 27, 89, 115, 361, 871, 1497, 5735, 6365, 1737, 14277, 63847}}, +{6300, 17, 4807, {1, 3, 7, 7, 1, 63, 31, 73, 289, 67, 277, 1821, 4883, 10795, 11755, 15471, 105871}}, +{6301, 17, 4814, {1, 3, 7, 9, 23, 17, 37, 179, 409, 957, 373, 2393, 2363, 6735, 28737, 41927, 115735}}, +{6302, 17, 4837, {1, 1, 3, 9, 15, 43, 111, 61, 455, 181, 1643, 3063, 4311, 13705, 29993, 21731, 25243}}, +{6303, 17, 4867, {1, 1, 1, 15, 13, 13, 69, 187, 91, 395, 209, 3477, 4649, 7727, 30557, 14719, 1953}}, +{6304, 17, 4873, {1, 1, 1, 15, 9, 39, 119, 193, 459, 135, 567, 25, 4583, 8401, 22161, 14771, 74165}}, +{6305, 17, 4879, {1, 1, 3, 7, 5, 39, 77, 149, 293, 585, 1245, 3615, 357, 11613, 13865, 40227, 41023}}, +{6306, 17, 4884, {1, 1, 7, 9, 9, 37, 5, 177, 121, 181, 771, 733, 7683, 4855, 13629, 8349, 46137}}, +{6307, 17, 4898, {1, 1, 3, 13, 3, 37, 73, 69, 281, 109, 563, 1427, 5127, 8957, 16749, 41489, 49531}}, +{6308, 17, 4907, {1, 1, 7, 11, 29, 63, 79, 127, 95, 809, 1175, 1567, 6353, 7505, 26551, 5073, 53733}}, +{6309, 17, 4910, {1, 1, 1, 5, 25, 41, 59, 103, 59, 365, 1111, 3909, 3749, 14889, 3639, 10435, 45407}}, +{6310, 17, 4918, {1, 1, 1, 5, 3, 61, 93, 199, 97, 779, 67, 241, 6197, 6785, 16869, 7573, 46745}}, +{6311, 17, 4924, {1, 1, 5, 9, 27, 29, 21, 69, 165, 661, 1245, 1265, 2979, 9685, 17781, 23329, 48029}}, +{6312, 17, 4953, {1, 1, 1, 7, 7, 23, 39, 197, 169, 561, 499, 2197, 4371, 157, 6837, 44635, 94861}}, +{6313, 17, 4956, {1, 1, 5, 13, 7, 5, 9, 207, 321, 243, 899, 2967, 3553, 15413, 8961, 55039, 6459}}, +{6314, 17, 4965, {1, 3, 5, 3, 13, 25, 33, 145, 45, 979, 33, 2211, 7003, 11147, 11327, 55151, 30697}}, +{6315, 17, 4966, {1, 1, 3, 13, 7, 51, 25, 229, 231, 115, 1815, 3867, 1533, 15259, 8067, 64803, 87535}}, +{6316, 17, 4970, {1, 1, 3, 3, 21, 51, 101, 49, 227, 393, 1659, 955, 545, 7395, 31563, 5499, 130541}}, +{6317, 17, 4972, {1, 3, 1, 1, 21, 41, 57, 161, 269, 35, 893, 1817, 857, 7027, 973, 12529, 46659}}, +{6318, 17, 4983, {1, 1, 3, 7, 17, 35, 23, 29, 335, 725, 453, 1051, 6019, 7595, 29451, 1853, 116615}}, +{6319, 17, 4989, {1, 3, 3, 1, 3, 55, 73, 187, 213, 329, 997, 703, 5829, 7903, 1081, 33359, 119123}}, +{6320, 17, 4994, {1, 3, 3, 15, 29, 55, 15, 17, 245, 117, 1735, 767, 4457, 8803, 17621, 26925, 72487}}, +{6321, 17, 5000, {1, 3, 5, 3, 25, 7, 119, 139, 159, 199, 317, 3875, 8115, 7581, 29239, 50225, 48459}}, +{6322, 17, 5005, {1, 3, 7, 11, 11, 41, 107, 225, 395, 545, 259, 2379, 6709, 11669, 14545, 43663, 69979}}, +{6323, 17, 5014, {1, 3, 5, 13, 23, 45, 73, 137, 447, 305, 117, 2659, 7989, 233, 31991, 60495, 571}}, +{6324, 17, 5018, {1, 3, 7, 9, 1, 37, 31, 1, 433, 701, 159, 3811, 4529, 6697, 7121, 31107, 61555}}, +{6325, 17, 5023, {1, 3, 5, 5, 13, 21, 81, 63, 95, 741, 1189, 1567, 1223, 12371, 28435, 10537, 53785}}, +{6326, 17, 5039, {1, 1, 1, 11, 17, 31, 67, 121, 281, 593, 561, 1759, 387, 9639, 28595, 22473, 4935}}, +{6327, 17, 5053, {1, 3, 7, 3, 5, 43, 59, 151, 351, 263, 297, 423, 1681, 3785, 15171, 7145, 57531}}, +{6328, 17, 5054, {1, 3, 7, 15, 9, 35, 105, 189, 261, 175, 1669, 1289, 5401, 12801, 19585, 48169, 93195}}, +{6329, 17, 5061, {1, 1, 7, 1, 31, 41, 23, 237, 151, 549, 1079, 2933, 5509, 15593, 1791, 15757, 44607}}, +{6330, 17, 5065, {1, 1, 1, 3, 29, 1, 59, 115, 13, 999, 1179, 3561, 2749, 10059, 12861, 6797, 11793}}, +{6331, 17, 5080, {1, 3, 3, 7, 11, 5, 23, 217, 101, 775, 1497, 4047, 2427, 5117, 9683, 28895, 27557}}, +{6332, 17, 5083, {1, 3, 7, 5, 31, 55, 99, 65, 55, 587, 1271, 2277, 7947, 12995, 13149, 4463, 37625}}, +{6333, 17, 5107, {1, 1, 7, 11, 3, 63, 23, 191, 125, 365, 1153, 2657, 6763, 4557, 21643, 26885, 36753}}, +{6334, 17, 5119, {1, 1, 1, 15, 25, 15, 111, 135, 507, 745, 1947, 2545, 4329, 14325, 8187, 52021, 63401}}, +{6335, 17, 5146, {1, 1, 3, 3, 27, 25, 19, 211, 393, 467, 1015, 2495, 7135, 495, 10385, 26961, 49325}}, +{6336, 17, 5151, {1, 1, 3, 5, 15, 35, 3, 203, 337, 337, 703, 1989, 6869, 6055, 21095, 4749, 125669}}, +{6337, 17, 5152, {1, 1, 5, 1, 31, 39, 57, 101, 419, 717, 1489, 199, 5729, 3003, 2607, 64593, 11515}}, +{6338, 17, 5155, {1, 3, 7, 13, 15, 3, 33, 61, 17, 433, 1097, 957, 5351, 3043, 3679, 44881, 126909}}, +{6339, 17, 5169, {1, 1, 3, 11, 5, 1, 121, 175, 119, 367, 399, 2527, 2157, 2667, 31069, 24797, 119621}}, +{6340, 17, 5170, {1, 3, 1, 7, 27, 47, 115, 229, 455, 775, 73, 837, 1181, 3457, 4057, 33907, 67151}}, +{6341, 17, 5176, {1, 3, 3, 1, 7, 51, 71, 177, 463, 921, 393, 3137, 1225, 5709, 303, 20597, 77581}}, +{6342, 17, 5179, {1, 3, 5, 3, 31, 1, 93, 53, 177, 433, 1471, 2191, 4471, 9211, 19397, 57727, 60367}}, +{6343, 17, 5182, {1, 1, 3, 11, 29, 55, 121, 89, 67, 869, 1631, 2657, 7357, 7159, 22449, 16357, 20077}}, +{6344, 17, 5189, {1, 3, 7, 15, 11, 39, 127, 63, 211, 359, 971, 1221, 1909, 9963, 7827, 60923, 98495}}, +{6345, 17, 5193, {1, 1, 7, 9, 23, 47, 47, 85, 307, 471, 1287, 3825, 5451, 15151, 15647, 63043, 92443}}, +{6346, 17, 5196, {1, 3, 7, 5, 19, 11, 11, 27, 307, 695, 99, 1037, 1997, 13673, 591, 8183, 82197}}, +{6347, 17, 5204, {1, 3, 5, 5, 3, 53, 109, 227, 503, 855, 1269, 3903, 5049, 10647, 21751, 58707, 78311}}, +{6348, 17, 5207, {1, 1, 3, 11, 31, 3, 51, 211, 285, 919, 487, 3393, 3463, 2271, 8053, 56791, 33763}}, +{6349, 17, 5211, {1, 3, 3, 5, 21, 15, 5, 5, 327, 809, 915, 1365, 7323, 4247, 31603, 26261, 80389}}, +{6350, 17, 5220, {1, 3, 7, 7, 15, 33, 31, 221, 291, 815, 1307, 929, 3249, 14573, 13613, 59509, 59741}}, +{6351, 17, 5258, {1, 3, 7, 15, 19, 41, 61, 27, 353, 965, 1901, 87, 2669, 12757, 29723, 47165, 16521}}, +{6352, 17, 5265, {1, 3, 5, 3, 11, 43, 97, 215, 361, 901, 1425, 4063, 5327, 14119, 457, 43145, 107401}}, +{6353, 17, 5271, {1, 1, 3, 15, 19, 37, 101, 69, 131, 927, 897, 477, 7641, 4299, 21213, 26017, 123801}}, +{6354, 17, 5277, {1, 3, 7, 7, 19, 5, 11, 51, 277, 985, 1071, 3437, 6595, 9547, 11855, 64249, 30957}}, +{6355, 17, 5278, {1, 1, 7, 9, 21, 41, 89, 113, 61, 235, 685, 1419, 7619, 9863, 21221, 28685, 53409}}, +{6356, 17, 5282, {1, 1, 1, 1, 27, 1, 19, 3, 473, 827, 269, 1659, 2621, 12347, 13359, 64687, 99293}}, +{6357, 17, 5296, {1, 3, 7, 7, 29, 37, 61, 49, 215, 883, 625, 2671, 3743, 4517, 2075, 64865, 58611}}, +{6358, 17, 5299, {1, 3, 3, 7, 15, 11, 35, 37, 255, 781, 613, 3587, 7643, 13081, 32467, 14427, 15235}}, +{6359, 17, 5319, {1, 1, 1, 11, 31, 47, 107, 65, 489, 377, 425, 3453, 2901, 9999, 7687, 13311, 103947}}, +{6360, 17, 5328, {1, 3, 3, 7, 9, 17, 7, 107, 33, 545, 407, 3335, 7563, 14315, 32725, 8483, 69093}}, +{6361, 17, 5343, {1, 1, 1, 5, 17, 9, 87, 229, 417, 769, 423, 569, 7073, 8705, 24487, 63743, 69807}}, +{6362, 17, 5353, {1, 3, 1, 9, 1, 29, 75, 25, 483, 259, 1941, 1533, 8147, 14127, 24087, 37475, 130961}}, +{6363, 17, 5364, {1, 3, 3, 11, 15, 15, 51, 45, 215, 283, 1687, 185, 4521, 12205, 13041, 33283, 77007}}, +{6364, 17, 5368, {1, 1, 3, 3, 5, 47, 107, 67, 325, 87, 1831, 2845, 1645, 1741, 10811, 8983, 58515}}, +{6365, 17, 5379, {1, 3, 1, 13, 19, 17, 1, 151, 411, 915, 1739, 3781, 4939, 15767, 25897, 7205, 17285}}, +{6366, 17, 5381, {1, 3, 5, 15, 19, 1, 125, 33, 321, 325, 639, 4013, 967, 4347, 19743, 13445, 61229}}, +{6367, 17, 5399, {1, 3, 3, 13, 13, 37, 71, 85, 51, 775, 973, 739, 4341, 15707, 12221, 24321, 48073}}, +{6368, 17, 5415, {1, 1, 7, 13, 15, 13, 9, 211, 331, 429, 1323, 3027, 1091, 13311, 289, 57789, 93261}}, +{6369, 17, 5422, {1, 1, 1, 1, 27, 7, 13, 27, 67, 573, 455, 2353, 113, 11831, 9069, 4503, 89291}}, +{6370, 17, 5441, {1, 1, 1, 7, 21, 63, 47, 39, 419, 991, 1623, 11, 3153, 12633, 9425, 65087, 44935}}, +{6371, 17, 5451, {1, 3, 1, 7, 23, 11, 15, 11, 99, 543, 1739, 3955, 5883, 12469, 7529, 14177, 1945}}, +{6372, 17, 5456, {1, 3, 1, 3, 5, 17, 31, 251, 387, 311, 725, 3827, 6835, 5065, 3141, 43441, 87955}}, +{6373, 17, 5462, {1, 1, 1, 11, 25, 7, 75, 135, 67, 589, 889, 3429, 155, 9081, 28653, 8059, 57251}}, +{6374, 17, 5490, {1, 3, 5, 15, 21, 15, 103, 149, 311, 407, 1391, 717, 1765, 14887, 14381, 37483, 29587}}, +{6375, 17, 5495, {1, 3, 5, 5, 19, 31, 93, 5, 507, 193, 1735, 3841, 7895, 9853, 10317, 14867, 49529}}, +{6376, 17, 5501, {1, 3, 7, 7, 19, 3, 99, 201, 479, 313, 693, 3435, 5453, 1157, 23127, 49005, 20167}}, +{6377, 17, 5502, {1, 3, 7, 9, 15, 21, 123, 41, 19, 281, 1837, 2589, 1003, 1993, 18345, 10039, 89325}}, +{6378, 17, 5505, {1, 3, 5, 1, 19, 21, 77, 151, 145, 951, 2017, 609, 5847, 4475, 12439, 6357, 108277}}, +{6379, 17, 5512, {1, 1, 1, 9, 17, 21, 91, 91, 111, 951, 497, 1759, 503, 12787, 25117, 24323, 96447}}, +{6380, 17, 5523, {1, 1, 3, 11, 13, 9, 73, 205, 329, 243, 1187, 829, 2821, 5563, 14391, 771, 116441}}, +{6381, 17, 5529, {1, 1, 1, 1, 11, 57, 39, 221, 41, 521, 1541, 3515, 2367, 4179, 21039, 52943, 11627}}, +{6382, 17, 5548, {1, 3, 3, 3, 23, 13, 103, 125, 67, 217, 863, 3755, 213, 12657, 31399, 3771, 54107}}, +{6383, 17, 5551, {1, 3, 3, 7, 3, 9, 107, 217, 497, 935, 519, 3041, 323, 14895, 5695, 28789, 36085}}, +{6384, 17, 5553, {1, 1, 5, 11, 23, 33, 81, 23, 167, 3, 1683, 2279, 5365, 847, 14717, 9689, 64481}}, +{6385, 17, 5565, {1, 3, 1, 7, 1, 15, 107, 93, 429, 363, 1745, 1459, 5879, 8351, 17527, 44001, 70293}}, +{6386, 17, 5568, {1, 3, 3, 9, 27, 55, 125, 211, 141, 827, 1239, 663, 4803, 11067, 32039, 28091, 56421}}, +{6387, 17, 5577, {1, 3, 5, 5, 7, 13, 125, 231, 427, 483, 967, 549, 3105, 13919, 3017, 39207, 23253}}, +{6388, 17, 5578, {1, 3, 7, 3, 21, 29, 79, 67, 39, 451, 157, 337, 3585, 3621, 9545, 31205, 63201}}, +{6389, 17, 5583, {1, 3, 1, 1, 29, 25, 77, 57, 167, 899, 95, 2487, 3743, 5381, 3637, 56289, 39453}}, +{6390, 17, 5585, {1, 1, 1, 9, 29, 19, 41, 97, 75, 199, 1709, 483, 4099, 3113, 10953, 20659, 109273}}, +{6391, 17, 5588, {1, 3, 5, 15, 13, 9, 83, 43, 111, 789, 965, 4061, 1239, 14577, 10113, 26359, 52609}}, +{6392, 17, 5613, {1, 3, 5, 5, 11, 39, 113, 31, 457, 119, 725, 831, 4143, 5675, 27431, 12431, 94977}}, +{6393, 17, 5614, {1, 1, 3, 3, 25, 17, 93, 253, 307, 625, 143, 1061, 4415, 3563, 3313, 53527, 29537}}, +{6394, 17, 5616, {1, 3, 5, 3, 29, 41, 43, 109, 147, 919, 1675, 465, 6101, 12251, 28915, 15397, 85233}}, +{6395, 17, 5622, {1, 1, 1, 1, 31, 25, 59, 187, 439, 561, 559, 413, 1917, 9319, 27475, 49715, 32953}}, +{6396, 17, 5631, {1, 1, 7, 13, 23, 31, 95, 231, 141, 207, 1373, 2173, 2905, 169, 23825, 55071, 6147}}, +{6397, 17, 5637, {1, 1, 7, 13, 15, 39, 43, 117, 321, 297, 661, 2941, 7359, 11675, 15483, 24093, 7269}}, +{6398, 17, 5638, {1, 3, 3, 13, 9, 59, 51, 49, 81, 563, 745, 1843, 295, 4689, 19847, 42137, 63197}}, +{6399, 17, 5668, {1, 3, 1, 9, 5, 33, 21, 199, 509, 927, 1777, 1349, 3593, 1065, 24943, 55667, 73539}}, +{6400, 17, 5675, {1, 3, 1, 11, 17, 15, 91, 21, 59, 587, 1207, 543, 6669, 10861, 24755, 1789, 91249}}, +{6401, 17, 5683, {1, 3, 7, 15, 13, 47, 57, 147, 381, 1021, 921, 1347, 3847, 5969, 9075, 39081, 127241}}, +{6402, 17, 5695, {1, 3, 3, 15, 19, 15, 1, 97, 203, 409, 1745, 1217, 2199, 7945, 24361, 41771, 123127}}, +{6403, 17, 5703, {1, 3, 3, 5, 17, 17, 43, 255, 179, 717, 1993, 645, 6527, 1533, 32719, 27481, 122425}}, +{6404, 17, 5710, {1, 3, 5, 9, 13, 59, 15, 157, 373, 937, 27, 3325, 2297, 89, 10861, 48615, 16083}}, +{6405, 17, 5715, {1, 3, 1, 3, 19, 27, 109, 243, 189, 17, 99, 1879, 695, 11329, 12467, 6053, 41749}}, +{6406, 17, 5727, {1, 1, 5, 5, 23, 41, 103, 69, 171, 917, 1303, 2101, 617, 10017, 26525, 11009, 66137}}, +{6407, 17, 5738, {1, 1, 1, 9, 21, 45, 47, 171, 455, 257, 411, 4021, 6995, 12881, 4793, 51193, 60775}}, +{6408, 17, 5752, {1, 3, 7, 5, 25, 31, 89, 53, 321, 593, 1795, 2435, 3833, 2767, 17241, 63373, 25457}}, +{6409, 17, 5767, {1, 3, 1, 1, 3, 45, 19, 255, 179, 991, 1407, 3683, 1435, 6803, 12215, 12835, 2005}}, +{6410, 17, 5773, {1, 3, 7, 3, 17, 5, 117, 251, 71, 983, 1391, 3499, 5119, 7257, 7325, 16565, 6321}}, +{6411, 17, 5776, {1, 3, 5, 7, 5, 49, 47, 201, 297, 485, 1879, 2205, 4903, 13619, 22537, 5479, 121625}}, +{6412, 17, 5781, {1, 1, 3, 5, 27, 27, 87, 61, 145, 943, 343, 1639, 6307, 4549, 20765, 33479, 113697}}, +{6413, 17, 5791, {1, 1, 3, 9, 17, 5, 101, 129, 305, 653, 1901, 3901, 6361, 2369, 7449, 55259, 75215}}, +{6414, 17, 5792, {1, 1, 7, 5, 31, 45, 117, 55, 335, 827, 1309, 2603, 2111, 11005, 14747, 56999, 97373}}, +{6415, 17, 5795, {1, 1, 7, 11, 29, 29, 81, 175, 169, 453, 293, 2589, 1057, 15795, 32397, 65433, 79455}}, +{6416, 17, 5798, {1, 1, 1, 5, 11, 7, 13, 249, 29, 407, 1289, 2385, 8113, 15327, 4029, 32005, 105901}}, +{6417, 17, 5801, {1, 1, 5, 5, 7, 61, 103, 141, 109, 391, 631, 821, 1479, 14771, 25057, 1415, 8081}}, +{6418, 17, 5810, {1, 3, 1, 1, 9, 37, 17, 231, 501, 745, 1695, 45, 7797, 2945, 5529, 34747, 39069}}, +{6419, 17, 5812, {1, 1, 7, 9, 21, 59, 103, 103, 33, 875, 723, 3477, 4729, 7311, 29979, 60901, 72187}}, +{6420, 17, 5836, {1, 3, 3, 3, 15, 63, 93, 237, 203, 635, 1189, 2035, 6499, 9943, 9133, 62977, 29657}}, +{6421, 17, 5839, {1, 1, 1, 9, 3, 11, 63, 207, 95, 563, 775, 3009, 7125, 13141, 4489, 16343, 120951}}, +{6422, 17, 5841, {1, 1, 3, 1, 21, 57, 15, 217, 185, 305, 463, 1597, 6529, 4989, 14011, 11265, 131031}}, +{6423, 17, 5867, {1, 3, 5, 15, 17, 61, 35, 127, 411, 579, 1349, 615, 3293, 8475, 9773, 30635, 117639}}, +{6424, 17, 5870, {1, 1, 7, 9, 11, 3, 55, 105, 305, 223, 1899, 2217, 1261, 9831, 23693, 3013, 30489}}, +{6425, 17, 5877, {1, 3, 7, 15, 15, 29, 1, 99, 67, 293, 499, 1941, 5303, 1329, 24547, 14065, 7927}}, +{6426, 17, 5881, {1, 1, 5, 11, 17, 55, 71, 49, 499, 435, 985, 2803, 6139, 1503, 24167, 47181, 102529}}, +{6427, 17, 5899, {1, 3, 5, 1, 19, 53, 71, 17, 63, 469, 1871, 2051, 357, 11661, 5689, 36373, 13379}}, +{6428, 17, 5914, {1, 1, 5, 1, 27, 47, 23, 247, 59, 381, 1895, 2453, 3665, 5487, 24081, 50501, 91659}}, +{6429, 17, 5925, {1, 1, 5, 7, 29, 19, 3, 33, 83, 301, 133, 3603, 5133, 16171, 22905, 36271, 10405}}, +{6430, 17, 5929, {1, 3, 7, 9, 11, 23, 57, 87, 9, 731, 631, 3703, 2593, 12851, 7115, 8801, 108919}}, +{6431, 17, 5943, {1, 3, 3, 3, 23, 35, 33, 99, 343, 837, 231, 3921, 6975, 15093, 15049, 64623, 123523}}, +{6432, 17, 5949, {1, 1, 7, 11, 15, 61, 113, 103, 501, 57, 1345, 3155, 2965, 4433, 10605, 43765, 42169}}, +{6433, 17, 5962, {1, 1, 7, 13, 7, 53, 91, 121, 229, 127, 103, 833, 7829, 1571, 10847, 20861, 101155}}, +{6434, 17, 5969, {1, 3, 7, 1, 9, 25, 71, 103, 37, 473, 1133, 1129, 1651, 6965, 6937, 16597, 20439}}, +{6435, 17, 5976, {1, 1, 5, 9, 1, 9, 47, 131, 285, 967, 1869, 1075, 8127, 135, 15575, 38569, 123729}}, +{6436, 17, 5988, {1, 1, 7, 9, 5, 31, 33, 227, 347, 41, 2025, 3755, 857, 7805, 13121, 38307, 125825}}, +{6437, 17, 5997, {1, 3, 5, 7, 11, 11, 19, 55, 23, 627, 1477, 3093, 2779, 7653, 7165, 23053, 76123}}, +{6438, 17, 6006, {1, 1, 3, 1, 3, 47, 83, 89, 177, 381, 1247, 141, 7051, 6443, 27369, 34323, 43063}}, +{6439, 17, 6010, {1, 1, 7, 7, 13, 15, 55, 223, 351, 525, 1051, 3009, 5443, 11499, 8335, 37949, 69149}}, +{6440, 17, 6016, {1, 1, 1, 3, 13, 61, 89, 33, 129, 921, 1905, 201, 3141, 5531, 135, 34103, 56883}}, +{6441, 17, 6022, {1, 1, 5, 13, 17, 27, 13, 163, 169, 471, 1263, 1421, 7015, 7927, 21027, 58001, 26739}}, +{6442, 17, 6026, {1, 1, 1, 15, 19, 49, 109, 207, 245, 49, 1271, 3635, 2561, 5091, 24415, 59195, 67701}}, +{6443, 17, 6031, {1, 3, 5, 7, 27, 57, 99, 155, 461, 595, 1859, 1727, 857, 4993, 31733, 42141, 10035}}, +{6444, 17, 6040, {1, 1, 1, 15, 11, 11, 85, 9, 251, 375, 155, 379, 7501, 12559, 32583, 36317, 4675}}, +{6445, 17, 6043, {1, 1, 5, 13, 19, 57, 81, 69, 201, 293, 593, 3169, 4519, 9057, 16685, 12847, 123797}}, +{6446, 17, 6050, {1, 3, 1, 5, 5, 1, 19, 243, 345, 661, 561, 3549, 2541, 5887, 25879, 41467, 72799}}, +{6447, 17, 6059, {1, 1, 5, 13, 15, 51, 67, 61, 79, 89, 447, 1471, 4915, 10637, 10901, 48157, 103545}}, +{6448, 17, 6079, {1, 3, 5, 13, 31, 25, 73, 129, 435, 659, 1851, 3595, 753, 7717, 10927, 30115, 109221}}, +{6449, 17, 6099, {1, 1, 1, 3, 25, 3, 121, 43, 349, 205, 1209, 2671, 6445, 8755, 7171, 58631, 74319}}, +{6450, 17, 6101, {1, 1, 3, 1, 11, 15, 83, 37, 483, 65, 759, 1835, 3883, 1693, 30051, 61077, 1187}}, +{6451, 17, 6105, {1, 3, 7, 15, 29, 23, 85, 77, 139, 903, 1821, 943, 6453, 1523, 18539, 49039, 110787}}, +{6452, 17, 6108, {1, 1, 7, 15, 15, 17, 69, 253, 507, 921, 523, 79, 747, 4011, 25795, 42029, 88309}}, +{6453, 17, 6124, {1, 1, 7, 3, 25, 47, 119, 83, 313, 45, 985, 145, 205, 3407, 9013, 64517, 115811}}, +{6454, 17, 6132, {1, 1, 7, 1, 29, 21, 9, 123, 97, 545, 1987, 2979, 6901, 12667, 23325, 63635, 70593}}, +{6455, 17, 6145, {1, 3, 7, 3, 23, 45, 81, 255, 41, 29, 1493, 4065, 3201, 10479, 17193, 39999, 55493}}, +{6456, 17, 6146, {1, 3, 1, 3, 9, 43, 43, 135, 235, 603, 481, 3139, 2729, 14759, 7269, 7995, 110351}}, +{6457, 17, 6151, {1, 3, 1, 11, 17, 35, 113, 93, 417, 967, 755, 659, 3115, 16163, 22997, 38205, 126961}}, +{6458, 17, 6152, {1, 1, 7, 11, 29, 57, 81, 235, 93, 869, 475, 825, 6269, 15819, 14977, 53057, 116021}}, +{6459, 17, 6158, {1, 1, 7, 13, 5, 61, 5, 241, 245, 673, 1651, 3367, 2355, 713, 20107, 30133, 735}}, +{6460, 17, 6160, {1, 1, 5, 9, 21, 3, 121, 241, 129, 703, 1435, 1943, 5087, 13123, 30023, 58287, 50377}}, +{6461, 17, 6163, {1, 1, 1, 15, 23, 27, 67, 197, 123, 629, 169, 3303, 1679, 11051, 16875, 28055, 12379}}, +{6462, 17, 6165, {1, 1, 3, 3, 7, 63, 97, 43, 89, 739, 779, 2893, 7763, 6351, 26135, 44647, 127987}}, +{6463, 17, 6170, {1, 3, 3, 9, 31, 59, 95, 131, 131, 321, 1125, 127, 4865, 145, 26237, 47871, 114549}}, +{6464, 17, 6182, {1, 3, 3, 13, 21, 3, 33, 17, 445, 693, 1599, 2517, 1679, 2237, 15053, 30983, 106755}}, +{6465, 17, 6196, {1, 1, 5, 13, 31, 37, 49, 67, 403, 27, 575, 1795, 3385, 1067, 585, 60277, 123189}}, +{6466, 17, 6199, {1, 3, 1, 15, 13, 35, 23, 247, 493, 305, 363, 451, 4011, 3679, 18281, 31751, 127933}}, +{6467, 17, 6200, {1, 1, 7, 5, 21, 45, 123, 253, 469, 267, 985, 2349, 3427, 7653, 25685, 13747, 531}}, +{6468, 17, 6205, {1, 1, 5, 11, 7, 59, 105, 209, 27, 847, 593, 3775, 6165, 1655, 29867, 28465, 92193}}, +{6469, 17, 6226, {1, 3, 1, 11, 7, 25, 101, 81, 233, 311, 9, 2735, 3951, 485, 10105, 24489, 649}}, +{6470, 17, 6228, {1, 3, 1, 7, 27, 5, 115, 243, 295, 659, 215, 1787, 5131, 2513, 29201, 21195, 103383}}, +{6471, 17, 6237, {1, 3, 5, 13, 29, 21, 7, 57, 345, 467, 1297, 207, 5115, 335, 6153, 32959, 125697}}, +{6472, 17, 6247, {1, 1, 1, 9, 3, 63, 63, 5, 373, 123, 1265, 2365, 1623, 1561, 14805, 17487, 104787}}, +{6473, 17, 6251, {1, 3, 1, 5, 15, 13, 55, 69, 251, 341, 463, 2611, 4793, 12157, 4669, 11613, 128705}}, +{6474, 17, 6253, {1, 3, 7, 13, 19, 7, 93, 149, 453, 693, 1731, 861, 6971, 943, 18891, 56547, 34411}}, +{6475, 17, 6256, {1, 1, 7, 1, 27, 49, 27, 9, 281, 121, 581, 393, 2583, 1159, 26989, 39955, 100765}}, +{6476, 17, 6268, {1, 1, 3, 9, 3, 43, 97, 207, 311, 617, 1987, 2559, 2101, 15791, 30085, 40713, 41909}}, +{6477, 17, 6272, {1, 3, 1, 3, 15, 19, 53, 183, 375, 867, 397, 3203, 4207, 5381, 25065, 60357, 88739}}, +{6478, 17, 6275, {1, 3, 3, 3, 27, 51, 85, 231, 19, 559, 567, 4049, 4875, 14201, 11623, 39763, 57339}}, +{6479, 17, 6281, {1, 1, 5, 1, 19, 7, 81, 249, 41, 789, 985, 3725, 4053, 4255, 9861, 1609, 29511}}, +{6480, 17, 6289, {1, 3, 5, 5, 21, 13, 49, 41, 367, 283, 1161, 2753, 4733, 3691, 27931, 53055, 83625}}, +{6481, 17, 6335, {1, 3, 5, 11, 29, 47, 95, 51, 265, 85, 385, 833, 7957, 14985, 7017, 41937, 41377}}, +{6482, 17, 6338, {1, 1, 7, 5, 1, 23, 17, 191, 185, 323, 515, 3183, 7685, 7361, 21143, 5227, 110297}}, +{6483, 17, 6355, {1, 3, 3, 7, 11, 39, 31, 97, 237, 497, 1649, 3529, 6153, 5055, 29021, 35125, 121581}}, +{6484, 17, 6362, {1, 3, 5, 3, 17, 47, 105, 75, 55, 343, 595, 2447, 5575, 10673, 32015, 37541, 127867}}, +{6485, 17, 6373, {1, 3, 1, 7, 19, 39, 31, 135, 167, 979, 219, 1353, 489, 9667, 27107, 55565, 72291}}, +{6486, 17, 6386, {1, 1, 3, 13, 31, 49, 87, 93, 235, 577, 1551, 2663, 387, 1129, 26683, 31285, 15913}}, +{6487, 17, 6388, {1, 3, 3, 7, 15, 29, 61, 33, 115, 511, 1781, 2029, 4265, 6745, 1467, 34415, 40907}}, +{6488, 17, 6391, {1, 1, 7, 5, 1, 55, 13, 129, 167, 937, 79, 2047, 3589, 1979, 4153, 15229, 85745}}, +{6489, 17, 6397, {1, 1, 7, 15, 15, 25, 89, 129, 31, 435, 1359, 49, 2659, 2829, 8741, 25215, 4239}}, +{6490, 17, 6405, {1, 3, 5, 3, 11, 39, 95, 239, 187, 615, 1481, 3509, 1133, 13497, 24833, 59635, 45695}}, +{6491, 17, 6406, {1, 1, 5, 3, 19, 17, 17, 235, 315, 943, 883, 1381, 7129, 15709, 9847, 41183, 116071}}, +{6492, 17, 6410, {1, 1, 1, 3, 9, 63, 109, 209, 309, 1015, 1391, 2617, 1481, 6483, 4151, 28063, 49887}}, +{6493, 17, 6417, {1, 1, 5, 13, 23, 37, 31, 89, 501, 461, 41, 931, 7863, 15499, 25635, 16995, 41651}}, +{6494, 17, 6443, {1, 1, 1, 9, 29, 29, 125, 161, 219, 439, 1465, 1615, 7483, 7497, 1121, 49693, 30269}}, +{6495, 17, 6457, {1, 3, 1, 5, 7, 43, 27, 161, 431, 375, 419, 2995, 527, 8207, 747, 18491, 15351}}, +{6496, 17, 6468, {1, 1, 3, 13, 25, 21, 67, 177, 9, 453, 1171, 65, 2845, 16147, 12699, 30905, 122255}}, +{6497, 17, 6475, {1, 3, 1, 5, 29, 47, 77, 251, 473, 385, 947, 3239, 5375, 13617, 10639, 36005, 95821}}, +{6498, 17, 6486, {1, 3, 1, 15, 13, 1, 75, 223, 509, 19, 175, 1541, 637, 5711, 1097, 44901, 35277}}, +{6499, 17, 6489, {1, 3, 3, 7, 3, 27, 17, 151, 39, 583, 391, 2739, 7339, 2051, 17005, 49573, 85969}}, +{6500, 17, 6495, {1, 3, 1, 11, 3, 25, 119, 125, 17, 629, 201, 2347, 2923, 1273, 14871, 58299, 97667}}, +{6501, 17, 6499, {1, 1, 7, 1, 31, 39, 11, 121, 339, 667, 1863, 3479, 1895, 11319, 5683, 64969, 9261}}, +{6502, 17, 6505, {1, 1, 5, 9, 27, 61, 101, 221, 221, 583, 287, 707, 5931, 4225, 29537, 46097, 114361}}, +{6503, 17, 6511, {1, 1, 1, 9, 23, 47, 1, 35, 85, 1021, 151, 3153, 3867, 971, 31573, 4745, 107639}}, +{6504, 17, 6520, {1, 1, 7, 13, 15, 15, 63, 37, 291, 907, 411, 1571, 6415, 7443, 26635, 27945, 130909}}, +{6505, 17, 6529, {1, 3, 1, 9, 21, 13, 77, 147, 485, 107, 235, 481, 2389, 957, 11493, 53033, 46373}}, +{6506, 17, 6542, {1, 3, 5, 7, 3, 55, 125, 237, 205, 411, 1911, 4053, 5983, 15489, 29333, 44727, 62167}}, +{6507, 17, 6547, {1, 1, 3, 3, 17, 3, 59, 239, 209, 495, 447, 3427, 3425, 2347, 10057, 26147, 52243}}, +{6508, 17, 6550, {1, 1, 3, 1, 11, 31, 3, 139, 441, 997, 295, 1267, 2181, 6047, 32419, 62657, 24921}}, +{6509, 17, 6554, {1, 3, 7, 15, 5, 3, 11, 9, 211, 701, 1987, 2611, 6195, 14379, 22919, 15785, 52149}}, +{6510, 17, 6556, {1, 1, 7, 9, 7, 27, 35, 253, 343, 679, 103, 1217, 3983, 8677, 17671, 41347, 89355}}, +{6511, 17, 6560, {1, 1, 1, 5, 7, 55, 111, 115, 231, 999, 773, 2111, 3617, 2469, 16967, 60735, 24557}}, +{6512, 17, 6569, {1, 3, 5, 1, 29, 5, 77, 217, 131, 307, 473, 3595, 2713, 6503, 18459, 57245, 91897}}, +{6513, 17, 6572, {1, 3, 5, 13, 9, 33, 93, 31, 59, 343, 1337, 1971, 7593, 15629, 22693, 19885, 4139}}, +{6514, 17, 6590, {1, 3, 3, 3, 21, 33, 115, 205, 373, 587, 739, 669, 8065, 5339, 16507, 29455, 15863}}, +{6515, 17, 6592, {1, 3, 5, 11, 9, 43, 45, 41, 91, 87, 19, 1523, 5059, 9403, 6739, 36893, 6395}}, +{6516, 17, 6601, {1, 1, 5, 15, 19, 43, 81, 3, 401, 621, 1839, 1443, 179, 8085, 27021, 7757, 95011}}, +{6517, 17, 6610, {1, 3, 5, 15, 19, 21, 45, 167, 77, 977, 309, 431, 3437, 8327, 12895, 50521, 68473}}, +{6518, 17, 6632, {1, 3, 3, 15, 7, 21, 49, 169, 327, 271, 7, 785, 1767, 14747, 7083, 65223, 24213}}, +{6519, 17, 6635, {1, 1, 5, 9, 9, 51, 101, 197, 507, 839, 1413, 3131, 331, 15725, 32293, 60433, 86759}}, +{6520, 17, 6640, {1, 1, 7, 1, 17, 39, 127, 201, 341, 607, 1565, 1615, 1367, 16043, 28265, 29139, 63813}}, +{6521, 17, 6643, {1, 3, 5, 7, 9, 1, 107, 73, 121, 649, 1385, 3203, 2897, 8479, 28519, 34041, 1359}}, +{6522, 17, 6649, {1, 1, 7, 7, 21, 55, 19, 13, 415, 647, 2015, 107, 4167, 5033, 16849, 41407, 94387}}, +{6523, 17, 6659, {1, 3, 5, 13, 31, 27, 107, 95, 425, 679, 55, 3521, 6737, 11459, 19995, 64189, 44323}}, +{6524, 17, 6662, {1, 1, 3, 9, 17, 47, 29, 167, 17, 63, 5, 2505, 6483, 14089, 7127, 7907, 68555}}, +{6525, 17, 6666, {1, 1, 5, 3, 29, 3, 87, 107, 227, 893, 1821, 341, 5481, 13317, 10637, 8611, 28625}}, +{6526, 17, 6690, {1, 1, 1, 13, 11, 19, 59, 157, 397, 103, 1821, 3913, 3083, 6053, 1015, 25475, 94813}}, +{6527, 17, 6692, {1, 3, 1, 3, 15, 45, 1, 209, 335, 1015, 539, 2959, 1711, 2567, 30169, 147, 25383}}, +{6528, 17, 6704, {1, 3, 7, 1, 17, 5, 99, 121, 91, 531, 865, 1667, 5615, 4729, 7473, 21445, 37925}}, +{6529, 17, 6713, {1, 1, 7, 13, 3, 51, 27, 115, 439, 761, 1121, 1503, 3047, 2127, 29253, 48147, 10813}}, +{6530, 17, 6728, {1, 3, 7, 15, 1, 51, 33, 161, 509, 159, 1705, 3365, 7953, 14027, 3873, 29609, 33101}}, +{6531, 17, 6731, {1, 1, 5, 15, 15, 53, 119, 115, 433, 75, 497, 1259, 1681, 7715, 24767, 34647, 82007}}, +{6532, 17, 6734, {1, 1, 5, 3, 27, 63, 41, 181, 393, 439, 95, 2765, 7617, 817, 1311, 18595, 16921}}, +{6533, 17, 6746, {1, 3, 1, 15, 31, 7, 57, 89, 371, 745, 475, 3211, 6893, 10681, 18547, 28373, 127787}}, +{6534, 17, 6755, {1, 3, 5, 13, 5, 55, 45, 167, 147, 833, 765, 1153, 4037, 8503, 10751, 49541, 77489}}, +{6535, 17, 6757, {1, 3, 1, 11, 11, 7, 45, 167, 431, 759, 1035, 1367, 1649, 11711, 4915, 58915, 72479}}, +{6536, 17, 6764, {1, 1, 5, 1, 11, 3, 15, 135, 427, 637, 879, 1667, 6139, 14759, 25665, 13083, 67961}}, +{6537, 17, 6772, {1, 3, 3, 9, 1, 3, 73, 167, 269, 51, 1481, 3659, 7863, 7187, 3951, 10711, 5909}}, +{6538, 17, 6792, {1, 1, 3, 3, 9, 53, 101, 209, 109, 691, 1641, 919, 1083, 6247, 23041, 44681, 130105}}, +{6539, 17, 6797, {1, 3, 7, 5, 21, 55, 127, 9, 437, 225, 1599, 2575, 5407, 8099, 20009, 40339, 110581}}, +{6540, 17, 6821, {1, 3, 3, 13, 7, 41, 15, 137, 363, 337, 995, 1215, 3651, 11011, 27209, 53927, 78065}}, +{6541, 17, 6822, {1, 1, 1, 7, 11, 17, 27, 9, 481, 79, 905, 1297, 811, 10221, 463, 12979, 114731}}, +{6542, 17, 6831, {1, 1, 3, 13, 7, 59, 105, 79, 253, 699, 139, 3823, 4939, 12955, 32069, 7255, 18159}}, +{6543, 17, 6834, {1, 3, 5, 7, 29, 7, 79, 79, 147, 921, 425, 1423, 5967, 6397, 17393, 30009, 84075}}, +{6544, 17, 6851, {1, 3, 7, 13, 23, 45, 51, 141, 237, 443, 1101, 309, 4533, 7479, 22415, 31517, 120407}}, +{6545, 17, 6858, {1, 1, 5, 13, 3, 19, 97, 185, 59, 179, 1343, 2537, 3165, 16295, 25005, 49769, 78007}}, +{6546, 17, 6860, {1, 3, 7, 15, 11, 53, 127, 195, 309, 121, 1741, 1415, 225, 15645, 16365, 38729, 70061}}, +{6547, 17, 6871, {1, 3, 7, 11, 29, 35, 47, 109, 179, 3, 849, 2305, 3035, 15289, 31569, 28851, 90057}}, +{6548, 17, 6875, {1, 1, 7, 1, 13, 27, 93, 119, 439, 45, 623, 1263, 6595, 6669, 12981, 64721, 130109}}, +{6549, 17, 6884, {1, 1, 7, 13, 5, 43, 43, 99, 395, 417, 795, 3991, 5601, 13115, 12803, 52247, 39245}}, +{6550, 17, 6888, {1, 3, 3, 3, 15, 61, 85, 91, 407, 391, 359, 3885, 1925, 4873, 169, 41727, 129471}}, +{6551, 17, 6894, {1, 3, 3, 9, 11, 47, 3, 33, 355, 853, 1329, 1347, 1995, 8197, 10015, 787, 66773}}, +{6552, 17, 6919, {1, 3, 3, 13, 31, 31, 49, 195, 55, 185, 1743, 3523, 1781, 8469, 7623, 55933, 74953}}, +{6553, 17, 6940, {1, 3, 5, 15, 29, 31, 5, 45, 149, 71, 2033, 3171, 4601, 9941, 15005, 55709, 74403}}, +{6554, 17, 6950, {1, 3, 5, 3, 1, 27, 105, 7, 139, 805, 1877, 915, 1843, 11897, 29485, 19275, 44711}}, +{6555, 17, 6959, {1, 1, 5, 7, 25, 57, 111, 57, 401, 935, 1685, 2985, 2015, 13501, 14581, 53579, 117011}}, +{6556, 17, 6968, {1, 1, 5, 11, 13, 47, 63, 137, 145, 77, 1727, 2629, 7377, 6311, 537, 13703, 129503}}, +{6557, 17, 6981, {1, 1, 7, 9, 5, 49, 67, 51, 163, 989, 845, 7, 2141, 14467, 3197, 57581, 121087}}, +{6558, 17, 6988, {1, 1, 5, 3, 31, 49, 57, 103, 171, 491, 1109, 1255, 4353, 11927, 29525, 16685, 48469}}, +{6559, 17, 6996, {1, 1, 1, 3, 7, 29, 17, 111, 339, 747, 763, 179, 7747, 2483, 18415, 45301, 25155}}, +{6560, 17, 6999, {1, 1, 7, 7, 1, 41, 71, 109, 401, 815, 1311, 3933, 1349, 13327, 20847, 44391, 49721}}, +{6561, 17, 7015, {1, 1, 1, 15, 27, 57, 39, 129, 391, 701, 619, 3925, 701, 403, 11821, 30517, 22035}}, +{6562, 17, 7019, {1, 1, 5, 11, 21, 49, 109, 101, 497, 417, 73, 2727, 2899, 2777, 22161, 35561, 70211}}, +{6563, 17, 7022, {1, 1, 3, 3, 15, 43, 1, 159, 41, 833, 55, 2415, 5009, 9663, 31295, 29397, 3187}}, +{6564, 17, 7040, {1, 1, 3, 7, 27, 5, 113, 187, 453, 753, 1649, 1605, 2405, 11791, 4239, 20915, 54033}}, +{6565, 17, 7045, {1, 3, 1, 11, 1, 57, 49, 229, 283, 113, 345, 785, 8009, 11977, 30169, 63787, 32011}}, +{6566, 17, 7049, {1, 1, 7, 3, 5, 59, 57, 91, 327, 685, 219, 1949, 3095, 8389, 2035, 11903, 73461}}, +{6567, 17, 7055, {1, 1, 3, 3, 19, 59, 19, 37, 453, 1, 1811, 3263, 1807, 16147, 24861, 14003, 31747}}, +{6568, 17, 7073, {1, 1, 3, 11, 1, 53, 93, 203, 429, 629, 1931, 1487, 3301, 8805, 4901, 2459, 98555}}, +{6569, 17, 7076, {1, 1, 7, 5, 21, 5, 37, 135, 159, 749, 1589, 2631, 8145, 7279, 28397, 47113, 82309}}, +{6570, 17, 7085, {1, 1, 5, 15, 25, 61, 19, 51, 217, 495, 109, 1179, 2743, 12107, 12509, 13003, 94375}}, +{6571, 17, 7091, {1, 3, 3, 15, 11, 7, 67, 165, 57, 925, 427, 2549, 7189, 5917, 13113, 30933, 62703}}, +{6572, 17, 7103, {1, 1, 5, 5, 9, 5, 43, 5, 485, 159, 757, 3979, 4963, 3389, 29731, 48477, 113429}}, +{6573, 17, 7112, {1, 3, 5, 1, 5, 5, 81, 163, 493, 357, 2005, 1093, 5951, 1045, 10569, 40321, 56881}}, +{6574, 17, 7117, {1, 3, 1, 5, 7, 29, 11, 7, 7, 13, 1641, 1031, 4025, 16337, 24333, 9589, 37779}}, +{6575, 17, 7118, {1, 3, 5, 11, 15, 3, 69, 19, 141, 79, 749, 391, 4505, 6939, 3079, 3647, 22363}}, +{6576, 17, 7123, {1, 3, 3, 3, 29, 3, 7, 189, 183, 513, 1225, 239, 4203, 9197, 23507, 33089, 124433}}, +{6577, 17, 7126, {1, 3, 3, 13, 27, 37, 81, 221, 287, 891, 1197, 3501, 539, 2053, 20509, 48635, 50269}}, +{6578, 17, 7154, {1, 1, 5, 7, 13, 3, 35, 79, 3, 885, 343, 3527, 1043, 7197, 6973, 8515, 39315}}, +{6579, 17, 7180, {1, 3, 3, 9, 21, 53, 79, 225, 229, 759, 457, 293, 953, 12857, 20483, 3677, 93839}}, +{6580, 17, 7192, {1, 3, 5, 3, 5, 17, 45, 107, 153, 279, 761, 1923, 7013, 2989, 10137, 19107, 126897}}, +{6581, 17, 7195, {1, 3, 1, 3, 23, 53, 91, 1, 133, 729, 13, 2017, 6933, 7405, 1255, 49509, 105571}}, +{6582, 17, 7207, {1, 3, 5, 1, 9, 45, 35, 153, 209, 289, 1779, 2557, 315, 981, 15347, 30391, 16027}}, +{6583, 17, 7208, {1, 3, 3, 5, 17, 3, 51, 105, 263, 959, 1255, 1177, 8143, 10541, 7687, 38731, 93561}}, +{6584, 17, 7214, {1, 1, 1, 13, 19, 1, 15, 135, 447, 847, 663, 3893, 3539, 6833, 13265, 62923, 8375}}, +{6585, 17, 7222, {1, 3, 1, 15, 31, 11, 105, 1, 91, 523, 1583, 3493, 2665, 117, 10757, 29845, 127201}}, +{6586, 17, 7234, {1, 1, 1, 3, 29, 49, 9, 103, 309, 605, 1751, 1981, 833, 3653, 14001, 16545, 58513}}, +{6587, 17, 7254, {1, 1, 5, 9, 1, 19, 117, 71, 237, 765, 249, 1983, 2289, 6019, 26505, 31427, 64333}}, +{6588, 17, 7258, {1, 1, 3, 11, 15, 31, 5, 207, 347, 143, 11, 1987, 3569, 2051, 31051, 22193, 93289}}, +{6589, 17, 7264, {1, 1, 3, 5, 13, 15, 5, 73, 457, 611, 673, 2675, 8071, 13245, 19443, 14399, 99599}}, +{6590, 17, 7279, {1, 1, 1, 9, 11, 5, 103, 231, 31, 457, 1031, 2257, 3159, 8323, 31585, 26163, 45159}}, +{6591, 17, 7282, {1, 3, 1, 11, 29, 51, 29, 7, 89, 331, 783, 951, 6353, 15421, 12801, 8337, 119171}}, +{6592, 17, 7293, {1, 1, 3, 13, 23, 57, 63, 43, 505, 1, 657, 4005, 6327, 7545, 15455, 27097, 53649}}, +{6593, 17, 7297, {1, 1, 1, 5, 31, 7, 51, 107, 175, 461, 1893, 305, 157, 4819, 18549, 33087, 9499}}, +{6594, 17, 7322, {1, 3, 1, 3, 19, 45, 37, 9, 459, 143, 1327, 3611, 1899, 15109, 30151, 17911, 13233}}, +{6595, 17, 7324, {1, 1, 5, 15, 19, 49, 11, 227, 375, 661, 665, 259, 3659, 13723, 28239, 48159, 59209}}, +{6596, 17, 7351, {1, 3, 7, 7, 17, 49, 77, 161, 505, 713, 1521, 935, 3629, 5033, 26717, 47199, 3693}}, +{6597, 17, 7363, {1, 3, 5, 9, 17, 61, 1, 201, 259, 179, 1637, 2485, 4995, 2813, 19923, 43739, 32183}}, +{6598, 17, 7380, {1, 1, 3, 5, 1, 23, 125, 61, 225, 703, 2011, 1013, 6651, 14029, 27375, 23301, 80269}}, +{6599, 17, 7384, {1, 1, 3, 9, 11, 57, 37, 49, 321, 443, 1055, 1989, 4755, 8467, 22001, 18647, 112617}}, +{6600, 17, 7389, {1, 3, 1, 5, 5, 39, 21, 139, 101, 583, 1881, 2599, 4185, 15679, 22215, 19093, 76737}}, +{6601, 17, 7396, {1, 3, 1, 11, 31, 51, 85, 91, 159, 421, 2005, 1075, 7757, 12653, 25489, 3545, 62961}}, +{6602, 17, 7413, {1, 1, 1, 15, 27, 57, 75, 151, 357, 571, 395, 299, 5607, 12865, 2149, 21059, 120753}}, +{6603, 17, 7417, {1, 1, 1, 3, 15, 57, 63, 171, 265, 709, 1089, 677, 7243, 10207, 9789, 38431, 130415}}, +{6604, 17, 7431, {1, 3, 7, 5, 21, 9, 73, 149, 197, 773, 773, 3931, 4135, 5671, 2733, 57173, 90693}}, +{6605, 17, 7443, {1, 1, 5, 1, 23, 1, 47, 201, 33, 167, 1643, 4009, 2687, 5725, 28733, 27859, 55163}}, +{6606, 17, 7445, {1, 1, 5, 15, 25, 11, 57, 139, 471, 625, 1067, 3647, 6213, 15605, 23537, 5005, 32593}}, +{6607, 17, 7450, {1, 3, 1, 11, 17, 11, 25, 163, 199, 21, 1775, 3721, 2845, 15769, 2381, 27643, 19909}}, +{6608, 17, 7456, {1, 3, 5, 5, 21, 41, 23, 125, 401, 483, 535, 925, 7065, 1727, 3761, 8485, 3519}}, +{6609, 17, 7466, {1, 1, 3, 15, 27, 31, 11, 7, 93, 237, 611, 3635, 4747, 9751, 20607, 20473, 73935}}, +{6610, 17, 7468, {1, 1, 7, 3, 15, 19, 69, 169, 387, 291, 1981, 635, 3387, 15817, 20357, 47537, 107311}}, +{6611, 17, 7474, {1, 3, 7, 15, 13, 59, 31, 235, 399, 343, 1265, 2975, 6839, 13335, 5397, 58915, 31313}}, +{6612, 17, 7479, {1, 1, 7, 1, 3, 35, 81, 243, 387, 421, 1533, 799, 2615, 13219, 9041, 26967, 22677}}, +{6613, 17, 7486, {1, 1, 7, 15, 17, 41, 89, 115, 67, 569, 1647, 1831, 5533, 4629, 1413, 20037, 97343}}, +{6614, 17, 7497, {1, 1, 5, 1, 23, 41, 11, 149, 319, 377, 439, 1237, 4819, 14303, 14657, 61711, 129235}}, +{6615, 17, 7508, {1, 3, 3, 7, 9, 11, 79, 219, 249, 607, 1453, 2931, 3407, 13725, 28289, 42869, 96759}}, +{6616, 17, 7515, {1, 1, 5, 11, 7, 9, 101, 51, 11, 893, 697, 1221, 4237, 1873, 11191, 25517, 119861}}, +{6617, 17, 7533, {1, 1, 3, 11, 23, 23, 19, 245, 485, 317, 1945, 2339, 193, 9389, 30709, 33927, 95089}}, +{6618, 17, 7542, {1, 1, 3, 1, 27, 55, 5, 81, 63, 185, 223, 3639, 6093, 10053, 1793, 11885, 29307}}, +{6619, 17, 7546, {1, 1, 7, 13, 15, 41, 33, 133, 467, 457, 213, 3687, 1313, 2555, 19487, 44257, 108667}}, +{6620, 17, 7551, {1, 1, 3, 5, 31, 51, 53, 115, 449, 273, 1043, 2743, 1759, 2013, 28171, 57091, 76837}}, +{6621, 17, 7569, {1, 1, 5, 15, 21, 43, 11, 215, 151, 253, 913, 1889, 2799, 13787, 3869, 54413, 50991}}, +{6622, 17, 7572, {1, 1, 3, 13, 29, 19, 81, 123, 461, 203, 81, 555, 6601, 15689, 12637, 41467, 105343}}, +{6623, 17, 7595, {1, 1, 3, 13, 7, 21, 75, 111, 47, 481, 1519, 3299, 6199, 3501, 31323, 29215, 45607}}, +{6624, 17, 7603, {1, 3, 1, 3, 17, 51, 45, 223, 321, 233, 267, 3333, 3803, 3099, 4601, 29061, 88441}}, +{6625, 17, 7605, {1, 1, 5, 13, 23, 27, 7, 57, 273, 893, 773, 239, 6357, 15875, 5497, 21775, 108291}}, +{6626, 17, 7629, {1, 3, 1, 15, 25, 17, 11, 229, 175, 909, 691, 3507, 5247, 2933, 1741, 35059, 62841}}, +{6627, 17, 7632, {1, 3, 5, 1, 29, 7, 11, 69, 345, 87, 99, 3243, 5669, 11053, 1185, 6979, 117069}}, +{6628, 17, 7638, {1, 3, 5, 11, 13, 33, 23, 183, 89, 475, 643, 2773, 7899, 15219, 133, 5073, 129355}}, +{6629, 17, 7648, {1, 3, 7, 9, 23, 17, 31, 53, 455, 193, 1695, 2557, 1645, 12675, 27857, 50447, 121335}}, +{6630, 17, 7654, {1, 1, 3, 11, 15, 19, 41, 57, 305, 235, 1131, 1165, 1857, 13667, 19285, 29755, 118885}}, +{6631, 17, 7663, {1, 3, 7, 3, 9, 43, 107, 3, 275, 673, 677, 3769, 3097, 5497, 24911, 4617, 80505}}, +{6632, 17, 7675, {1, 1, 7, 9, 21, 39, 107, 155, 471, 753, 579, 2929, 4951, 4245, 25035, 41795, 86955}}, +{6633, 17, 7693, {1, 3, 1, 7, 31, 51, 27, 165, 147, 751, 709, 399, 45, 947, 9893, 32721, 122127}}, +{6634, 17, 7705, {1, 3, 3, 1, 31, 31, 73, 59, 351, 293, 845, 3139, 4177, 3537, 9465, 20689, 65837}}, +{6635, 17, 7717, {1, 3, 5, 9, 27, 29, 13, 115, 417, 435, 465, 1291, 5225, 11687, 29207, 39895, 55443}}, +{6636, 17, 7724, {1, 3, 3, 15, 29, 49, 111, 179, 221, 565, 787, 1811, 4055, 7863, 27273, 32975, 26985}}, +{6637, 17, 7727, {1, 1, 1, 7, 15, 49, 121, 145, 277, 27, 149, 965, 4903, 3497, 32333, 37217, 105073}}, +{6638, 17, 7735, {1, 1, 7, 1, 23, 29, 31, 77, 353, 349, 755, 2081, 4291, 567, 641, 41751, 20397}}, +{6639, 17, 7761, {1, 1, 5, 3, 25, 31, 97, 3, 405, 607, 965, 2981, 3217, 14695, 25977, 22457, 113539}}, +{6640, 17, 7767, {1, 3, 3, 15, 25, 3, 91, 125, 269, 825, 1163, 2181, 4247, 6813, 4699, 35091, 87771}}, +{6641, 17, 7783, {1, 1, 5, 9, 25, 23, 113, 145, 71, 31, 1115, 3729, 6793, 11869, 26509, 18779, 99499}}, +{6642, 17, 7784, {1, 1, 1, 9, 31, 51, 77, 217, 247, 599, 1541, 3217, 1383, 5203, 27971, 23647, 71823}}, +{6643, 17, 7798, {1, 1, 5, 7, 17, 35, 113, 73, 475, 511, 35, 1961, 5311, 2257, 1935, 58963, 94349}}, +{6644, 17, 7802, {1, 3, 1, 7, 27, 31, 67, 253, 95, 883, 1213, 855, 3429, 15049, 26715, 56099, 101797}}, +{6645, 17, 7811, {1, 1, 3, 5, 9, 9, 61, 57, 511, 537, 1803, 949, 1327, 3921, 11297, 13807, 64629}}, +{6646, 17, 7817, {1, 1, 5, 1, 31, 57, 105, 161, 309, 283, 1291, 2737, 7141, 7497, 25893, 14453, 35375}}, +{6647, 17, 7823, {1, 1, 3, 1, 21, 3, 77, 37, 13, 211, 1863, 1895, 8035, 5801, 25981, 12317, 48375}}, +{6648, 17, 7832, {1, 3, 7, 7, 25, 45, 13, 77, 185, 553, 1501, 1349, 5951, 15581, 32657, 18467, 128363}}, +{6649, 17, 7837, {1, 3, 5, 9, 23, 63, 105, 239, 213, 935, 1331, 3653, 2775, 6591, 6067, 34597, 19217}}, +{6650, 17, 7842, {1, 3, 7, 13, 15, 19, 79, 91, 391, 637, 1685, 2263, 3507, 2025, 2111, 15875, 14831}}, +{6651, 17, 7853, {1, 3, 3, 5, 7, 29, 81, 69, 511, 399, 343, 737, 2833, 1021, 10471, 18689, 36181}}, +{6652, 17, 7854, {1, 1, 5, 11, 21, 17, 39, 137, 145, 857, 583, 789, 8057, 15995, 32113, 64163, 37153}}, +{6653, 17, 7856, {1, 3, 3, 11, 9, 61, 87, 131, 487, 667, 1295, 493, 4629, 7719, 18157, 49715, 2051}}, +{6654, 17, 7861, {1, 3, 5, 9, 19, 5, 85, 3, 491, 353, 571, 2829, 4411, 343, 24781, 62325, 123959}}, +{6655, 17, 7862, {1, 1, 7, 13, 13, 39, 11, 31, 413, 285, 27, 2433, 3307, 6165, 26565, 40065, 102655}}, +{6656, 17, 7873, {1, 1, 5, 11, 25, 45, 7, 97, 9, 973, 1833, 2537, 1457, 7389, 24087, 38061, 122805}}, +{6657, 17, 7874, {1, 3, 5, 3, 21, 63, 77, 21, 249, 525, 1145, 1421, 8011, 3357, 15051, 30293, 127017}}, +{6658, 17, 7886, {1, 1, 5, 3, 13, 53, 81, 185, 303, 307, 1579, 841, 2277, 607, 10899, 34209, 215}}, +{6659, 17, 7914, {1, 3, 3, 13, 17, 1, 125, 145, 205, 763, 127, 1865, 4129, 849, 27247, 29845, 36515}}, +{6660, 17, 7927, {1, 3, 7, 13, 5, 59, 19, 71, 227, 111, 365, 1309, 5857, 6035, 32379, 11303, 127329}}, +{6661, 17, 7936, {1, 1, 1, 1, 19, 61, 79, 253, 459, 23, 725, 3615, 4583, 429, 13215, 31879, 4523}}, +{6662, 17, 7951, {1, 1, 1, 7, 19, 13, 53, 41, 243, 107, 1767, 983, 3483, 2249, 2209, 58895, 14805}}, +{6663, 17, 7963, {1, 1, 1, 9, 5, 63, 31, 85, 119, 307, 633, 3295, 841, 3495, 22965, 57587, 108271}}, +{6664, 17, 7966, {1, 3, 5, 9, 17, 13, 57, 49, 97, 613, 405, 2637, 3229, 14253, 4663, 61345, 33415}}, +{6665, 17, 7976, {1, 3, 1, 1, 17, 37, 63, 3, 5, 375, 1073, 3971, 665, 4445, 153, 20437, 38513}}, +{6666, 17, 7993, {1, 3, 3, 15, 5, 9, 77, 161, 409, 461, 443, 567, 5581, 8623, 27735, 9041, 5517}}, +{6667, 17, 8001, {1, 3, 5, 13, 13, 5, 19, 53, 263, 155, 557, 3973, 6841, 4829, 30751, 30025, 121973}}, +{6668, 17, 8004, {1, 3, 7, 9, 27, 37, 49, 243, 107, 1013, 1743, 1509, 4465, 15415, 4741, 41409, 72695}}, +{6669, 17, 8013, {1, 1, 3, 5, 11, 49, 39, 45, 21, 463, 875, 3681, 1901, 15325, 24553, 51369, 82227}}, +{6670, 17, 8021, {1, 1, 3, 15, 11, 35, 21, 91, 383, 149, 1815, 911, 4633, 12027, 12413, 22307, 120049}}, +{6671, 17, 8026, {1, 3, 5, 7, 7, 3, 15, 83, 477, 687, 145, 1705, 6893, 5233, 20171, 43337, 72603}}, +{6672, 17, 8028, {1, 1, 3, 9, 25, 35, 19, 173, 67, 5, 561, 2139, 4557, 4911, 26273, 38409, 22801}}, +{6673, 17, 8031, {1, 1, 3, 13, 15, 39, 85, 91, 91, 187, 1851, 1181, 4049, 16353, 26525, 43703, 19415}}, +{6674, 17, 8035, {1, 3, 1, 9, 13, 41, 77, 179, 415, 705, 693, 3017, 5847, 16191, 11435, 28979, 51839}}, +{6675, 17, 8042, {1, 1, 3, 5, 23, 15, 3, 159, 269, 67, 625, 4043, 4701, 1599, 6467, 10949, 80073}}, +{6676, 17, 8071, {1, 3, 3, 15, 7, 43, 81, 157, 393, 321, 1875, 2801, 4359, 11703, 1063, 64015, 109997}}, +{6677, 17, 8085, {1, 1, 7, 3, 25, 21, 37, 123, 133, 691, 973, 3115, 2291, 10519, 13339, 22751, 85445}}, +{6678, 17, 8092, {1, 3, 1, 1, 21, 21, 9, 23, 431, 679, 1873, 289, 4503, 3939, 14417, 36081, 18709}}, +{6679, 17, 8102, {1, 3, 5, 5, 1, 53, 109, 133, 33, 279, 727, 2233, 3065, 8557, 7487, 25797, 109177}}, +{6680, 17, 8105, {1, 1, 7, 7, 1, 9, 47, 127, 179, 757, 1985, 547, 169, 13393, 22669, 58795, 92897}}, +{6681, 17, 8114, {1, 3, 5, 11, 17, 21, 95, 219, 263, 579, 1493, 3283, 5461, 1235, 1749, 33325, 36033}}, +{6682, 17, 8123, {1, 1, 3, 11, 21, 49, 45, 143, 511, 983, 1933, 965, 7905, 1925, 27857, 40723, 68251}}, +{6683, 17, 8131, {1, 3, 7, 3, 27, 9, 73, 7, 441, 877, 107, 1599, 4795, 7251, 6819, 7671, 21137}}, +{6684, 17, 8140, {1, 1, 3, 3, 21, 25, 49, 43, 247, 949, 627, 2859, 2507, 4787, 11269, 53221, 126387}}, +{6685, 17, 8145, {1, 1, 5, 3, 5, 53, 127, 65, 353, 521, 1701, 2981, 3201, 611, 13475, 58015, 2605}}, +{6686, 17, 8157, {1, 1, 5, 13, 9, 39, 55, 103, 53, 281, 705, 2433, 6179, 3381, 31973, 30267, 91307}}, +{6687, 17, 8158, {1, 1, 7, 13, 31, 23, 29, 161, 347, 449, 123, 3427, 5731, 12691, 15175, 20487, 74695}}, +{6688, 17, 8185, {1, 3, 3, 15, 13, 19, 83, 137, 437, 317, 921, 913, 7979, 6665, 5313, 1435, 60271}}, +{6689, 17, 8186, {1, 3, 5, 7, 19, 23, 31, 131, 421, 95, 1999, 897, 4839, 1815, 12387, 45009, 2609}}, +{6690, 17, 8188, {1, 1, 1, 7, 3, 53, 121, 33, 47, 283, 813, 3841, 4449, 2543, 15211, 59285, 42551}}, +{6691, 17, 8192, {1, 3, 1, 13, 9, 43, 37, 167, 93, 417, 213, 2721, 3395, 2089, 13743, 32925, 91147}}, +{6692, 17, 8212, {1, 3, 7, 5, 31, 25, 97, 25, 19, 11, 543, 1889, 455, 5765, 9517, 56963, 131069}}, +{6693, 17, 8219, {1, 3, 1, 7, 3, 7, 87, 61, 209, 39, 1303, 1637, 6687, 8001, 5003, 47911, 110657}}, +{6694, 17, 8221, {1, 1, 5, 3, 11, 25, 99, 77, 379, 843, 1423, 2933, 7535, 4181, 32223, 49327, 48041}}, +{6695, 17, 8235, {1, 3, 3, 13, 9, 7, 85, 59, 47, 777, 401, 2449, 2795, 11289, 25023, 7725, 73887}}, +{6696, 17, 8237, {1, 1, 3, 5, 11, 51, 93, 57, 369, 871, 1175, 2705, 1253, 5169, 24691, 14243, 119667}}, +{6697, 17, 8249, {1, 3, 1, 3, 5, 7, 33, 171, 359, 115, 1909, 2003, 1413, 13829, 3471, 36185, 118399}}, +{6698, 17, 8260, {1, 1, 1, 11, 5, 49, 97, 145, 415, 731, 671, 2309, 7211, 11359, 22757, 15415, 70951}}, +{6699, 17, 8264, {1, 1, 3, 5, 7, 51, 61, 101, 375, 575, 1321, 2835, 7569, 9599, 4707, 7655, 53417}}, +{6700, 17, 8270, {1, 3, 1, 15, 9, 63, 25, 117, 203, 5, 1345, 2571, 5273, 2059, 4689, 27237, 23199}}, +{6701, 17, 8282, {1, 1, 3, 15, 15, 23, 69, 49, 349, 995, 5, 1565, 903, 10165, 9565, 6343, 16653}}, +{6702, 17, 8291, {1, 1, 3, 9, 21, 15, 69, 9, 463, 69, 1447, 2347, 5125, 7479, 18257, 14405, 51321}}, +{6703, 17, 8293, {1, 1, 7, 11, 23, 57, 57, 179, 17, 129, 999, 777, 6281, 1693, 31885, 31085, 29237}}, +{6704, 17, 8297, {1, 3, 5, 1, 25, 55, 15, 21, 199, 271, 1645, 1719, 2023, 10049, 15215, 11959, 44875}}, +{6705, 17, 8298, {1, 3, 1, 3, 29, 43, 83, 11, 281, 27, 429, 685, 7189, 9151, 8665, 9553, 115293}}, +{6706, 17, 8305, {1, 3, 1, 7, 17, 43, 125, 11, 189, 803, 713, 683, 7285, 4455, 18195, 45333, 32281}}, +{6707, 17, 8306, {1, 3, 3, 3, 11, 55, 21, 59, 173, 283, 709, 1561, 5391, 5097, 24725, 19217, 13769}}, +{6708, 17, 8311, {1, 3, 5, 13, 7, 29, 117, 207, 415, 525, 567, 1741, 3553, 6729, 433, 17619, 45971}}, +{6709, 17, 8318, {1, 1, 7, 7, 3, 23, 43, 43, 213, 823, 609, 1037, 3797, 4733, 30717, 61067, 89581}}, +{6710, 17, 8327, {1, 3, 5, 7, 11, 7, 7, 241, 379, 217, 739, 2815, 2549, 14297, 10283, 1509, 80613}}, +{6711, 17, 8345, {1, 1, 1, 1, 17, 45, 53, 229, 193, 893, 1881, 227, 6751, 7135, 20823, 36939, 27667}}, +{6712, 17, 8379, {1, 3, 3, 1, 15, 39, 27, 217, 101, 949, 1963, 2213, 2357, 4129, 11925, 841, 59259}}, +{6713, 17, 8390, {1, 1, 3, 3, 5, 53, 59, 255, 421, 1009, 683, 2171, 6691, 12489, 20865, 29363, 70611}}, +{6714, 17, 8394, {1, 1, 7, 15, 7, 31, 105, 141, 153, 401, 549, 3045, 5443, 11147, 18159, 24283, 21859}}, +{6715, 17, 8414, {1, 3, 7, 1, 11, 17, 17, 231, 175, 603, 1915, 111, 3203, 10627, 9687, 47235, 87057}}, +{6716, 17, 8417, {1, 1, 1, 11, 19, 21, 115, 41, 45, 727, 1523, 739, 3025, 10321, 27353, 63139, 16051}}, +{6717, 17, 8432, {1, 3, 7, 11, 13, 9, 33, 121, 237, 565, 2043, 2131, 3079, 12575, 2187, 14427, 85939}}, +{6718, 17, 8437, {1, 3, 1, 15, 21, 19, 91, 227, 485, 49, 101, 15, 1903, 4039, 23819, 40001, 66405}}, +{6719, 17, 8441, {1, 3, 1, 5, 15, 25, 65, 25, 393, 287, 1435, 1851, 6437, 5983, 13769, 37847, 120907}}, +{6720, 17, 8449, {1, 3, 7, 15, 15, 21, 97, 37, 359, 155, 807, 1421, 517, 13135, 2955, 56979, 52299}}, +{6721, 17, 8456, {1, 1, 5, 1, 27, 53, 79, 27, 467, 605, 267, 1193, 31, 6177, 12369, 32621, 38319}}, +{6722, 17, 8473, {1, 1, 1, 11, 27, 15, 15, 231, 205, 677, 331, 133, 3313, 7193, 8059, 36449, 21671}}, +{6723, 17, 8489, {1, 3, 3, 11, 19, 57, 113, 83, 399, 801, 1843, 2119, 2779, 14061, 30901, 28745, 120903}}, +{6724, 17, 8495, {1, 1, 1, 11, 5, 27, 121, 247, 467, 251, 1487, 251, 897, 3171, 28383, 22473, 1709}}, +{6725, 17, 8522, {1, 1, 1, 15, 7, 59, 123, 165, 123, 373, 167, 1323, 5239, 9027, 13791, 55593, 78785}}, +{6726, 17, 8524, {1, 3, 1, 11, 31, 11, 81, 229, 123, 183, 461, 1751, 5713, 2615, 27795, 1657, 39253}}, +{6727, 17, 8529, {1, 1, 7, 1, 21, 45, 107, 3, 283, 149, 549, 3731, 6435, 3595, 32753, 16079, 84257}}, +{6728, 17, 8545, {1, 3, 3, 15, 19, 9, 81, 37, 51, 341, 909, 985, 1503, 12787, 16129, 37789, 113515}}, +{6729, 17, 8557, {1, 3, 5, 13, 3, 33, 127, 219, 369, 341, 1191, 1305, 567, 2339, 31221, 49435, 114927}}, +{6730, 17, 8565, {1, 1, 7, 15, 29, 47, 103, 107, 257, 15, 2029, 2133, 2129, 11235, 29553, 49139, 33809}}, +{6731, 17, 8572, {1, 3, 3, 13, 23, 33, 105, 43, 155, 815, 1087, 2261, 2781, 3461, 7371, 4479, 123093}}, +{6732, 17, 8576, {1, 1, 1, 13, 17, 7, 89, 107, 143, 349, 637, 3651, 4153, 12131, 28393, 45781, 84133}}, +{6733, 17, 8582, {1, 3, 5, 11, 31, 47, 105, 101, 267, 403, 1853, 3977, 3277, 1737, 15503, 47365, 14361}}, +{6734, 17, 8594, {1, 1, 1, 13, 1, 63, 125, 107, 123, 183, 1027, 3491, 3597, 15949, 5779, 34665, 81257}}, +{6735, 17, 8629, {1, 3, 1, 9, 13, 5, 125, 41, 389, 73, 1487, 1983, 957, 12645, 13983, 7675, 72711}}, +{6736, 17, 8636, {1, 3, 7, 5, 17, 5, 25, 63, 211, 591, 261, 2345, 3883, 4403, 773, 43963, 93509}}, +{6737, 17, 8668, {1, 3, 3, 1, 11, 35, 15, 251, 225, 643, 537, 3769, 7593, 6113, 1377, 52185, 81459}}, +{6738, 17, 8678, {1, 3, 5, 15, 27, 27, 51, 35, 389, 853, 1437, 2803, 5739, 1887, 15099, 3299, 111827}}, +{6739, 17, 8701, {1, 1, 3, 15, 25, 63, 31, 201, 79, 131, 31, 3929, 4195, 13045, 8681, 48121, 110723}}, +{6740, 17, 8702, {1, 1, 5, 7, 11, 43, 101, 57, 69, 271, 189, 3087, 4893, 11365, 6945, 14285, 41961}}, +{6741, 17, 8708, {1, 1, 7, 9, 21, 61, 41, 123, 25, 947, 1619, 2895, 7879, 12397, 17405, 48139, 71519}}, +{6742, 17, 8712, {1, 3, 1, 15, 1, 27, 113, 225, 441, 855, 541, 357, 3111, 4867, 20571, 30627, 70123}}, +{6743, 17, 8745, {1, 3, 5, 3, 5, 33, 103, 1, 21, 93, 383, 407, 5145, 7857, 20289, 51943, 16223}}, +{6744, 17, 8754, {1, 1, 7, 15, 1, 13, 41, 215, 463, 417, 513, 3417, 1755, 16165, 7271, 3101, 54353}}, +{6745, 17, 8759, {1, 3, 3, 13, 19, 29, 5, 205, 245, 927, 1249, 773, 3653, 9959, 357, 40863, 37289}}, +{6746, 17, 8763, {1, 3, 3, 7, 3, 5, 85, 241, 29, 627, 1963, 3133, 1369, 503, 11449, 4699, 2573}}, +{6747, 17, 8766, {1, 1, 7, 15, 3, 35, 47, 157, 413, 437, 1627, 3953, 947, 12721, 22209, 34303, 81237}}, +{6748, 17, 8780, {1, 1, 5, 5, 1, 45, 47, 245, 253, 349, 1853, 3481, 6105, 7267, 3159, 38833, 117889}}, +{6749, 17, 8783, {1, 3, 7, 15, 23, 43, 25, 181, 121, 681, 479, 1239, 6155, 3317, 9419, 28717, 44643}}, +{6750, 17, 8786, {1, 3, 3, 15, 31, 43, 111, 99, 405, 991, 301, 1689, 7107, 16131, 16703, 24059, 40345}}, +{6751, 17, 8798, {1, 1, 3, 9, 25, 5, 107, 91, 117, 351, 1595, 163, 3007, 13743, 24535, 38671, 29745}}, +{6752, 17, 8804, {1, 3, 3, 5, 27, 47, 15, 195, 119, 919, 665, 1903, 1981, 7753, 21709, 33699, 15963}}, +{6753, 17, 8819, {1, 3, 1, 11, 23, 23, 75, 115, 477, 105, 541, 1111, 209, 13939, 17129, 7565, 75415}}, +{6754, 17, 8826, {1, 1, 1, 11, 7, 61, 123, 201, 305, 713, 779, 2059, 4899, 13733, 20529, 15617, 39833}}, +{6755, 17, 8835, {1, 1, 7, 11, 21, 7, 63, 113, 213, 871, 375, 29, 1925, 15237, 7091, 12229, 8457}}, +{6756, 17, 8838, {1, 1, 1, 7, 19, 57, 83, 91, 297, 255, 1993, 63, 5337, 4569, 21243, 40867, 46969}}, +{6757, 17, 8856, {1, 1, 3, 7, 13, 63, 91, 191, 281, 259, 1367, 3505, 5885, 10557, 12423, 56303, 14731}}, +{6758, 17, 8862, {1, 1, 5, 15, 27, 15, 29, 67, 115, 287, 253, 1497, 3739, 2183, 14427, 44931, 11547}}, +{6759, 17, 8871, {1, 3, 1, 9, 25, 61, 25, 113, 137, 819, 781, 3741, 2457, 7817, 31209, 20707, 93007}}, +{6760, 17, 8875, {1, 1, 7, 3, 5, 13, 23, 3, 365, 77, 1117, 3061, 4707, 3013, 27899, 10887, 78677}}, +{6761, 17, 8890, {1, 3, 1, 15, 1, 39, 85, 107, 483, 83, 603, 3121, 1995, 5241, 32319, 9515, 94551}}, +{6762, 17, 8892, {1, 1, 7, 3, 27, 13, 105, 41, 285, 237, 1589, 517, 2009, 10833, 1459, 26217, 50759}}, +{6763, 17, 8898, {1, 1, 3, 11, 27, 1, 127, 83, 355, 107, 1003, 657, 4997, 4123, 13151, 56601, 122307}}, +{6764, 17, 8927, {1, 1, 1, 7, 13, 17, 93, 75, 481, 473, 131, 1359, 4859, 1319, 23919, 50079, 128849}}, +{6765, 17, 8928, {1, 1, 3, 7, 9, 33, 111, 229, 11, 283, 1089, 3049, 1635, 959, 19109, 62821, 105391}}, +{6766, 17, 8945, {1, 3, 1, 3, 9, 47, 49, 169, 343, 929, 1379, 1985, 5867, 6053, 12179, 39727, 116053}}, +{6767, 17, 8952, {1, 3, 3, 15, 27, 39, 61, 113, 439, 719, 1313, 3701, 4793, 10275, 2943, 32405, 95457}}, +{6768, 17, 8955, {1, 1, 1, 1, 27, 49, 121, 171, 319, 365, 1593, 1655, 63, 6257, 18097, 35285, 112245}}, +{6769, 17, 8965, {1, 3, 1, 1, 19, 33, 89, 235, 281, 519, 1867, 525, 4475, 12059, 26611, 14789, 59541}}, +{6770, 17, 8972, {1, 3, 1, 15, 1, 51, 65, 71, 131, 599, 117, 2459, 7421, 7157, 24393, 48139, 53701}}, +{6771, 17, 8977, {1, 1, 7, 7, 1, 41, 57, 191, 207, 329, 43, 1235, 5671, 12243, 22549, 40751, 104513}}, +{6772, 17, 8990, {1, 3, 5, 13, 15, 21, 55, 187, 283, 209, 1511, 1329, 6665, 15953, 4521, 16879, 57625}}, +{6773, 17, 8996, {1, 1, 5, 3, 3, 53, 75, 123, 291, 663, 1893, 3669, 4903, 8575, 27971, 46977, 56357}}, +{6774, 17, 9025, {1, 3, 1, 5, 27, 41, 19, 199, 489, 197, 439, 3299, 6315, 6957, 15809, 35297, 5559}}, +{6775, 17, 9037, {1, 3, 5, 1, 3, 25, 109, 191, 33, 543, 125, 2309, 429, 14059, 3149, 45747, 47357}}, +{6776, 17, 9040, {1, 1, 3, 11, 15, 61, 109, 103, 305, 1, 1479, 2781, 6521, 8921, 23681, 9583, 87257}}, +{6777, 17, 9049, {1, 1, 7, 15, 5, 19, 121, 139, 177, 967, 1363, 705, 211, 11877, 22457, 34563, 7801}}, +{6778, 17, 9062, {1, 1, 7, 13, 9, 21, 103, 95, 483, 567, 5, 2095, 4659, 2447, 23521, 27273, 85867}}, +{6779, 17, 9068, {1, 3, 5, 15, 23, 55, 13, 237, 275, 113, 1431, 2931, 5165, 5317, 5625, 51865, 42177}}, +{6780, 17, 9076, {1, 3, 3, 7, 1, 23, 15, 171, 303, 43, 1137, 1255, 3843, 9049, 1799, 7075, 2115}}, +{6781, 17, 9079, {1, 1, 7, 5, 23, 53, 75, 129, 1, 511, 793, 265, 6535, 9641, 25173, 9449, 46949}}, +{6782, 17, 9099, {1, 3, 3, 1, 19, 39, 51, 173, 5, 281, 2047, 4065, 3225, 14587, 16947, 1459, 87227}}, +{6783, 17, 9107, {1, 3, 7, 13, 13, 53, 39, 115, 403, 37, 1533, 2727, 2229, 8291, 18687, 59553, 37629}}, +{6784, 17, 9114, {1, 3, 1, 9, 3, 55, 63, 191, 147, 321, 1287, 2419, 6881, 2249, 11141, 54839, 50263}}, +{6785, 17, 9123, {1, 1, 5, 3, 9, 61, 85, 139, 1, 409, 633, 53, 163, 14677, 13043, 12253, 106939}}, +{6786, 17, 9126, {1, 1, 7, 3, 19, 3, 7, 165, 497, 621, 1563, 1267, 8113, 2383, 17205, 13337, 102547}}, +{6787, 17, 9137, {1, 3, 3, 13, 15, 29, 23, 31, 481, 535, 471, 2125, 331, 9421, 29799, 27097, 5307}}, +{6788, 17, 9149, {1, 1, 1, 1, 31, 45, 47, 139, 235, 509, 889, 685, 1855, 13599, 24431, 62105, 109509}}, +{6789, 17, 9150, {1, 3, 1, 7, 3, 13, 25, 197, 111, 45, 1815, 1031, 4803, 349, 32369, 40837, 111529}}, +{6790, 17, 9155, {1, 1, 7, 1, 27, 9, 3, 73, 403, 321, 967, 2713, 6953, 16123, 8611, 48651, 120635}}, +{6791, 17, 9161, {1, 3, 5, 3, 3, 25, 69, 231, 249, 393, 1141, 1721, 7071, 3711, 15627, 21815, 104735}}, +{6792, 17, 9162, {1, 3, 1, 11, 19, 63, 77, 5, 55, 481, 1021, 119, 3941, 1227, 10997, 29513, 18923}}, +{6793, 17, 9167, {1, 3, 7, 5, 1, 11, 13, 99, 365, 797, 1993, 699, 3091, 11401, 3659, 15339, 90395}}, +{6794, 17, 9172, {1, 3, 5, 7, 31, 43, 55, 143, 273, 379, 1189, 1689, 4811, 5159, 3281, 63819, 57065}}, +{6795, 17, 9186, {1, 1, 1, 13, 9, 25, 9, 3, 461, 281, 959, 2439, 3187, 4837, 13857, 20221, 29733}}, +{6796, 17, 9188, {1, 1, 7, 11, 31, 17, 13, 101, 81, 921, 1329, 2421, 2747, 9435, 23313, 7093, 7547}}, +{6797, 17, 9191, {1, 1, 3, 3, 9, 51, 67, 95, 511, 1011, 1519, 4089, 5001, 1351, 15367, 50665, 92111}}, +{6798, 17, 9198, {1, 1, 5, 13, 27, 43, 115, 77, 439, 589, 31, 915, 7027, 697, 25143, 1443, 59093}}, +{6799, 17, 9200, {1, 1, 7, 3, 17, 5, 107, 117, 133, 649, 1309, 2979, 969, 9789, 12597, 24507, 106825}}, +{6800, 17, 9205, {1, 1, 7, 13, 1, 27, 97, 35, 431, 183, 199, 2619, 515, 89, 20281, 30291, 97977}}, +{6801, 17, 9206, {1, 1, 7, 1, 31, 9, 35, 11, 359, 21, 1875, 3227, 1307, 15691, 17343, 21163, 84671}}, +{6802, 17, 9215, {1, 3, 1, 11, 29, 21, 47, 137, 441, 841, 1641, 3283, 1371, 8835, 16287, 45009, 13779}}, +{6803, 17, 9227, {1, 1, 3, 9, 23, 53, 1, 99, 473, 649, 447, 2589, 5667, 15579, 6497, 44321, 46993}}, +{6804, 17, 9232, {1, 1, 7, 9, 31, 63, 95, 81, 197, 373, 1027, 3959, 7189, 13369, 17287, 53643, 12673}}, +{6805, 17, 9241, {1, 3, 1, 5, 25, 61, 79, 183, 489, 725, 1077, 1147, 113, 7357, 27505, 529, 61855}}, +{6806, 17, 9244, {1, 1, 7, 11, 19, 35, 73, 223, 125, 765, 1303, 2887, 7861, 14839, 9537, 27027, 94327}}, +{6807, 17, 9251, {1, 3, 1, 3, 17, 35, 63, 233, 317, 133, 1837, 3339, 4351, 10071, 5005, 13245, 34327}}, +{6808, 17, 9254, {1, 3, 1, 3, 17, 13, 59, 113, 247, 1015, 1831, 3391, 6337, 6853, 7145, 64309, 40109}}, +{6809, 17, 9275, {1, 3, 5, 13, 15, 23, 65, 203, 241, 545, 1521, 1253, 3171, 7777, 21145, 565, 87813}}, +{6810, 17, 9283, {1, 1, 5, 15, 31, 9, 9, 145, 409, 155, 409, 2935, 5817, 11427, 32617, 38167, 69465}}, +{6811, 17, 9285, {1, 1, 5, 11, 19, 31, 43, 85, 97, 931, 687, 1501, 3991, 2215, 11091, 64735, 56999}}, +{6812, 17, 9303, {1, 1, 1, 3, 7, 11, 101, 21, 345, 829, 531, 1475, 6617, 1187, 26885, 32135, 9733}}, +{6813, 17, 9304, {1, 3, 5, 11, 7, 49, 79, 197, 57, 15, 1845, 1485, 6167, 10887, 17083, 59367, 7411}}, +{6814, 17, 9313, {1, 3, 7, 5, 9, 33, 7, 91, 311, 847, 1435, 3573, 3693, 5369, 26817, 30105, 115337}}, +{6815, 17, 9314, {1, 3, 1, 9, 25, 43, 65, 69, 225, 337, 575, 1979, 5555, 8499, 8127, 33035, 52549}}, +{6816, 17, 9320, {1, 1, 3, 11, 17, 29, 71, 99, 379, 145, 1067, 2561, 7635, 5647, 32491, 56621, 93603}}, +{6817, 17, 9328, {1, 1, 5, 13, 25, 43, 75, 237, 407, 393, 1219, 3651, 7719, 11685, 26123, 62767, 1043}}, +{6818, 17, 9333, {1, 1, 7, 15, 13, 59, 9, 163, 273, 225, 873, 3201, 633, 6121, 18777, 58763, 77731}}, +{6819, 17, 9337, {1, 3, 7, 7, 3, 7, 99, 155, 279, 991, 799, 753, 7205, 9567, 23643, 38263, 19083}}, +{6820, 17, 9338, {1, 3, 7, 11, 11, 29, 65, 3, 207, 575, 253, 2407, 7935, 11323, 23239, 1923, 47737}}, +{6821, 17, 9340, {1, 1, 5, 9, 25, 47, 1, 25, 397, 1009, 193, 4031, 3023, 2029, 10561, 32363, 104405}}, +{6822, 17, 9353, {1, 3, 7, 9, 19, 55, 63, 179, 385, 97, 461, 3393, 8137, 8929, 17621, 9611, 58925}}, +{6823, 17, 9356, {1, 1, 1, 7, 1, 17, 127, 45, 157, 529, 809, 3545, 5173, 5083, 13325, 52295, 91261}}, +{6824, 17, 9364, {1, 1, 7, 9, 25, 49, 99, 79, 157, 535, 1569, 2195, 1725, 1187, 18423, 47957, 10043}}, +{6825, 17, 9373, {1, 1, 3, 7, 3, 31, 83, 45, 199, 665, 1261, 3497, 7885, 5761, 17187, 12041, 12867}}, +{6826, 17, 9374, {1, 3, 1, 7, 3, 55, 73, 215, 41, 1011, 1883, 1051, 7293, 1881, 27435, 29459, 130933}}, +{6827, 17, 9378, {1, 1, 3, 9, 21, 31, 113, 209, 35, 771, 365, 3151, 787, 3845, 26555, 13823, 36951}}, +{6828, 17, 9380, {1, 3, 7, 15, 13, 21, 119, 91, 15, 251, 1337, 2715, 1665, 3451, 8309, 11033, 127159}}, +{6829, 17, 9389, {1, 3, 1, 9, 9, 63, 5, 145, 357, 9, 859, 1565, 1141, 14689, 25121, 41337, 83357}}, +{6830, 17, 9395, {1, 1, 7, 11, 13, 63, 57, 151, 33, 595, 2025, 571, 4713, 11019, 26771, 16221, 92439}}, +{6831, 17, 9412, {1, 3, 3, 15, 29, 49, 93, 131, 167, 835, 33, 263, 93, 8475, 16139, 61237, 95081}}, +{6832, 17, 9422, {1, 1, 7, 13, 1, 57, 43, 91, 485, 841, 1415, 3083, 2665, 8521, 9825, 59955, 21763}}, +{6833, 17, 9439, {1, 1, 1, 1, 29, 47, 63, 107, 439, 847, 537, 2011, 7571, 3699, 23961, 54887, 92681}}, +{6834, 17, 9450, {1, 3, 7, 5, 27, 41, 105, 161, 95, 821, 451, 2627, 4687, 1899, 18851, 35167, 6869}}, +{6835, 17, 9452, {1, 1, 1, 11, 7, 7, 13, 163, 399, 471, 1587, 2561, 1241, 5365, 27189, 49883, 68101}}, +{6836, 17, 9482, {1, 3, 7, 9, 19, 5, 119, 251, 151, 359, 235, 2387, 3919, 7135, 17591, 1053, 6265}}, +{6837, 17, 9487, {1, 1, 5, 9, 13, 25, 43, 23, 453, 693, 517, 1235, 1045, 4299, 27877, 3733, 72269}}, +{6838, 17, 9489, {1, 1, 7, 1, 27, 43, 103, 249, 487, 67, 855, 3239, 2157, 8121, 4701, 37803, 49971}}, +{6839, 17, 9499, {1, 1, 3, 13, 1, 37, 125, 115, 365, 57, 1419, 4085, 7039, 10079, 14991, 48861, 61979}}, +{6840, 17, 9501, {1, 1, 5, 5, 3, 35, 109, 19, 219, 653, 1219, 1625, 6847, 11271, 4525, 56341, 57801}}, +{6841, 17, 9508, {1, 3, 7, 5, 31, 19, 37, 73, 185, 13, 1723, 1139, 5919, 11717, 27161, 13635, 51765}}, +{6842, 17, 9515, {1, 1, 1, 1, 19, 61, 53, 111, 215, 189, 1199, 591, 943, 2111, 17171, 15621, 128459}}, +{6843, 17, 9518, {1, 1, 7, 9, 17, 61, 101, 159, 85, 537, 15, 1427, 6139, 4091, 32639, 28655, 115385}}, +{6844, 17, 9520, {1, 1, 7, 5, 23, 31, 125, 7, 151, 967, 1079, 4059, 3287, 11673, 19307, 49469, 65981}}, +{6845, 17, 9526, {1, 3, 3, 1, 29, 59, 95, 119, 31, 427, 1653, 721, 5509, 6385, 17043, 45133, 74155}}, +{6846, 17, 9537, {1, 1, 3, 9, 13, 61, 35, 189, 1, 559, 119, 3719, 4137, 1369, 19147, 10923, 43909}}, +{6847, 17, 9552, {1, 3, 3, 13, 1, 41, 31, 185, 451, 379, 29, 153, 4121, 13153, 4171, 36993, 109241}}, +{6848, 17, 9571, {1, 1, 1, 9, 15, 41, 99, 17, 21, 93, 649, 2765, 6955, 10843, 12547, 64989, 63713}}, +{6849, 17, 9588, {1, 1, 7, 5, 5, 5, 73, 187, 473, 235, 1907, 409, 7335, 4429, 7493, 20703, 14505}}, +{6850, 17, 9613, {1, 1, 3, 11, 27, 59, 17, 103, 337, 117, 1241, 951, 3701, 10407, 16741, 46531, 56485}}, +{6851, 17, 9619, {1, 1, 3, 15, 11, 51, 111, 189, 137, 939, 97, 1563, 851, 13949, 1375, 41463, 61445}}, +{6852, 17, 9622, {1, 1, 7, 9, 19, 39, 117, 173, 165, 547, 483, 361, 6819, 15093, 13631, 29785, 29593}}, +{6853, 17, 9637, {1, 3, 3, 5, 15, 39, 41, 249, 455, 79, 233, 3133, 405, 9487, 23161, 32751, 117743}}, +{6854, 17, 9652, {1, 1, 5, 15, 7, 63, 7, 57, 127, 349, 1913, 1145, 3371, 3733, 30971, 35717, 60935}}, +{6855, 17, 9655, {1, 1, 7, 11, 7, 57, 49, 63, 51, 233, 855, 2125, 6961, 15011, 28503, 40549, 47175}}, +{6856, 17, 9661, {1, 3, 7, 1, 25, 49, 35, 39, 237, 545, 1637, 1401, 3279, 10499, 14463, 34973, 29485}}, +{6857, 17, 9664, {1, 3, 3, 13, 7, 13, 79, 141, 55, 277, 843, 3087, 2339, 6855, 10635, 13021, 11273}}, +{6858, 17, 9669, {1, 3, 1, 1, 11, 39, 51, 255, 119, 691, 559, 3287, 5485, 791, 19283, 51027, 8061}}, +{6859, 17, 9681, {1, 3, 7, 7, 3, 59, 119, 241, 185, 81, 1843, 2313, 7471, 15689, 2271, 59781, 107439}}, +{6860, 17, 9682, {1, 3, 3, 3, 17, 63, 93, 217, 329, 39, 583, 3031, 4315, 4623, 12557, 42063, 11877}}, +{6861, 17, 9688, {1, 1, 1, 1, 15, 57, 37, 233, 387, 639, 37, 425, 637, 1577, 16449, 33665, 80417}}, +{6862, 17, 9697, {1, 1, 1, 15, 25, 1, 67, 159, 423, 961, 959, 417, 5657, 8417, 8127, 29251, 105893}}, +{6863, 17, 9700, {1, 3, 5, 15, 31, 9, 87, 217, 259, 771, 1663, 2899, 1531, 7849, 1961, 61487, 55399}}, +{6864, 17, 9715, {1, 1, 3, 9, 21, 13, 39, 107, 89, 811, 449, 2569, 4617, 8977, 1649, 37721, 48943}}, +{6865, 17, 9722, {1, 3, 7, 15, 15, 59, 63, 195, 287, 677, 269, 1715, 3545, 3269, 5231, 46433, 25921}}, +{6866, 17, 9727, {1, 1, 5, 7, 19, 27, 57, 221, 243, 47, 1791, 2309, 2751, 4403, 7083, 34223, 64905}}, +{6867, 17, 9734, {1, 1, 1, 15, 1, 63, 119, 155, 383, 649, 429, 3857, 7309, 9823, 9539, 8933, 128573}}, +{6868, 17, 9740, {1, 3, 7, 11, 17, 19, 99, 19, 321, 415, 1501, 2123, 6119, 9705, 11397, 39521, 34327}}, +{6869, 17, 9743, {1, 1, 5, 15, 29, 37, 9, 95, 417, 19, 1637, 2949, 4961, 10743, 9619, 16045, 48083}}, +{6870, 17, 9745, {1, 1, 1, 11, 21, 17, 57, 23, 247, 201, 1781, 779, 2207, 2511, 4829, 13847, 77593}}, +{6871, 17, 9757, {1, 3, 1, 13, 7, 1, 95, 87, 223, 73, 1129, 383, 1355, 4965, 29645, 63465, 76281}}, +{6872, 17, 9761, {1, 3, 3, 13, 3, 47, 33, 123, 155, 621, 1019, 1817, 4083, 4723, 24701, 47503, 18007}}, +{6873, 17, 9762, {1, 1, 7, 15, 13, 41, 73, 93, 379, 923, 1183, 2475, 5901, 10599, 10053, 9941, 112107}}, +{6874, 17, 9767, {1, 1, 3, 3, 13, 35, 59, 231, 45, 1011, 1101, 2467, 2703, 10305, 12575, 7587, 25737}}, +{6875, 17, 9768, {1, 3, 7, 1, 21, 31, 9, 55, 373, 779, 397, 1551, 5139, 16339, 1769, 10413, 74059}}, +{6876, 17, 9774, {1, 1, 7, 15, 7, 3, 67, 179, 411, 217, 1219, 13, 1577, 13463, 12263, 41465, 83001}}, +{6877, 17, 9786, {1, 3, 7, 1, 21, 53, 7, 187, 395, 777, 391, 737, 47, 12681, 16749, 26507, 49415}}, +{6878, 17, 9796, {1, 1, 5, 7, 5, 57, 93, 53, 419, 731, 825, 487, 45, 9199, 20947, 56067, 45343}}, +{6879, 17, 9820, {1, 3, 3, 9, 31, 41, 35, 133, 63, 293, 1503, 51, 3111, 15711, 15051, 1965, 64951}}, +{6880, 17, 9823, {1, 1, 5, 9, 9, 47, 53, 229, 405, 621, 1795, 1923, 6609, 6983, 1695, 18021, 71893}}, +{6881, 17, 9839, {1, 1, 5, 9, 23, 13, 107, 13, 149, 759, 1113, 1329, 1747, 14159, 16705, 61841, 82955}}, +{6882, 17, 9844, {1, 3, 3, 9, 25, 49, 31, 145, 481, 609, 1847, 1485, 6345, 7859, 21231, 37303, 69975}}, +{6883, 17, 9851, {1, 3, 1, 15, 13, 49, 59, 221, 27, 517, 431, 3961, 6401, 8483, 10161, 37453, 128237}}, +{6884, 17, 9853, {1, 1, 3, 1, 3, 55, 37, 111, 263, 735, 655, 2831, 2219, 9449, 8413, 49585, 91355}}, +{6885, 17, 9863, {1, 3, 7, 1, 31, 33, 7, 55, 261, 977, 1215, 1967, 7297, 14815, 27009, 35001, 89671}}, +{6886, 17, 9864, {1, 1, 7, 11, 13, 21, 33, 151, 195, 373, 181, 1631, 355, 7857, 12555, 7531, 50417}}, +{6887, 17, 9877, {1, 3, 1, 15, 19, 25, 79, 195, 237, 385, 1531, 2509, 4371, 16103, 3575, 62265, 124251}}, +{6888, 17, 9884, {1, 3, 1, 11, 5, 61, 21, 159, 51, 37, 845, 3075, 8039, 14269, 10505, 36369, 73793}}, +{6889, 17, 9888, {1, 3, 5, 9, 11, 43, 67, 57, 271, 451, 989, 3705, 2481, 10717, 10861, 63785, 10183}}, +{6890, 17, 9897, {1, 3, 3, 5, 13, 29, 119, 171, 439, 459, 479, 3173, 3781, 11131, 6827, 53925, 119939}}, +{6891, 17, 9915, {1, 3, 7, 3, 27, 21, 1, 167, 79, 305, 1283, 1903, 5483, 5727, 17911, 16075, 97629}}, +{6892, 17, 9925, {1, 3, 1, 3, 23, 21, 29, 185, 227, 295, 915, 2033, 6269, 2089, 20785, 15207, 115675}}, +{6893, 17, 9949, {1, 3, 7, 15, 11, 15, 65, 103, 249, 27, 1805, 2079, 4797, 2535, 16865, 61449, 90923}}, +{6894, 17, 9954, {1, 3, 7, 9, 27, 41, 77, 181, 457, 677, 633, 1601, 8085, 2431, 7957, 55913, 38677}}, +{6895, 17, 9960, {1, 1, 5, 7, 11, 37, 3, 221, 79, 895, 1023, 653, 3925, 12755, 19729, 18221, 91123}}, +{6896, 17, 9965, {1, 3, 1, 5, 23, 61, 119, 191, 425, 41, 853, 3497, 6915, 1927, 5513, 55303, 4895}}, +{6897, 17, 9978, {1, 3, 5, 3, 7, 35, 47, 243, 167, 821, 267, 2149, 5797, 6329, 32495, 51037, 18313}}, +{6898, 17, 9986, {1, 1, 7, 9, 23, 29, 79, 205, 115, 839, 1217, 479, 1601, 9681, 1, 35293, 28731}}, +{6899, 17, 9992, {1, 3, 3, 5, 31, 17, 31, 161, 35, 953, 377, 451, 7985, 11371, 15115, 60131, 27033}}, +{6900, 17, 9995, {1, 1, 3, 9, 15, 19, 43, 215, 327, 429, 145, 1837, 725, 14775, 10465, 7367, 21271}}, +{6901, 17, 10005, {1, 3, 7, 13, 31, 17, 85, 49, 487, 795, 1679, 599, 3783, 3195, 2683, 53475, 38603}}, +{6902, 17, 10026, {1, 1, 1, 7, 19, 11, 71, 143, 443, 199, 1117, 3445, 6429, 12037, 13751, 43609, 101563}}, +{6903, 17, 10031, {1, 3, 5, 7, 29, 63, 65, 87, 305, 721, 851, 2235, 4987, 3051, 23015, 1281, 15755}}, +{6904, 17, 10040, {1, 1, 3, 9, 17, 3, 57, 47, 223, 305, 1409, 235, 4379, 5779, 27695, 22535, 9387}}, +{6905, 17, 10051, {1, 1, 3, 11, 25, 33, 75, 141, 155, 699, 85, 1729, 2551, 7101, 7739, 18025, 100819}}, +{6906, 17, 10057, {1, 3, 3, 13, 5, 45, 63, 83, 141, 383, 1931, 3343, 7397, 4823, 28893, 41279, 67805}}, +{6907, 17, 10072, {1, 3, 5, 7, 19, 29, 97, 67, 177, 583, 1783, 4007, 5087, 805, 30999, 23197, 117553}}, +{6908, 17, 10096, {1, 3, 5, 1, 25, 41, 33, 109, 511, 449, 653, 995, 5881, 2163, 13689, 54385, 97419}}, +{6909, 17, 10102, {1, 3, 3, 13, 25, 17, 49, 77, 497, 659, 783, 3513, 3735, 3541, 573, 50237, 99247}}, +{6910, 17, 10105, {1, 3, 1, 7, 17, 13, 37, 169, 19, 965, 289, 455, 6855, 11233, 7553, 7007, 57389}}, +{6911, 17, 10115, {1, 1, 7, 11, 5, 15, 11, 177, 75, 243, 453, 3861, 3091, 4625, 12489, 11537, 74199}}, +{6912, 17, 10124, {1, 1, 5, 13, 17, 21, 23, 57, 343, 985, 1755, 3947, 3899, 11847, 19321, 62295, 51265}}, +{6913, 17, 10139, {1, 1, 3, 9, 19, 37, 31, 243, 433, 725, 535, 3733, 33, 7885, 1425, 41919, 66507}}, +{6914, 17, 10145, {1, 3, 5, 11, 15, 11, 25, 255, 93, 33, 71, 2389, 1855, 317, 12773, 13311, 81927}}, +{6915, 17, 10148, {1, 3, 1, 3, 7, 55, 21, 175, 357, 235, 1679, 931, 2051, 14213, 20539, 38049, 122513}}, +{6916, 17, 10157, {1, 1, 5, 15, 5, 51, 127, 79, 297, 135, 1423, 2783, 7229, 14451, 27619, 7299, 49189}}, +{6917, 17, 10158, {1, 1, 1, 3, 5, 13, 9, 209, 455, 483, 1745, 323, 789, 7645, 26373, 61659, 23671}}, +{6918, 17, 10163, {1, 1, 1, 9, 23, 63, 99, 91, 377, 275, 275, 3005, 1563, 5945, 23825, 33211, 52753}}, +{6919, 17, 10180, {1, 1, 1, 1, 31, 55, 31, 109, 481, 581, 771, 197, 6155, 3465, 8451, 25925, 41159}}, +{6920, 17, 10187, {1, 3, 7, 13, 5, 33, 113, 161, 265, 493, 1723, 513, 5111, 10177, 21755, 5321, 58831}}, +{6921, 17, 10198, {1, 1, 7, 1, 21, 33, 117, 183, 89, 689, 1253, 2215, 6565, 3079, 16343, 22427, 96447}}, +{6922, 17, 10208, {1, 1, 1, 5, 15, 61, 5, 139, 111, 463, 573, 1907, 4615, 14975, 5715, 51017, 69827}}, +{6923, 17, 10214, {1, 1, 1, 13, 3, 3, 117, 249, 25, 361, 1177, 2901, 1601, 11381, 18981, 44811, 47117}}, +{6924, 17, 10220, {1, 1, 5, 3, 29, 5, 49, 221, 247, 57, 553, 1889, 479, 15581, 7035, 7293, 53065}}, +{6925, 17, 10237, {1, 3, 3, 3, 15, 49, 91, 187, 213, 981, 1417, 211, 3719, 13693, 17671, 16691, 57147}}, +{6926, 17, 10238, {1, 1, 7, 9, 7, 17, 109, 185, 459, 769, 1783, 899, 885, 2291, 30023, 26315, 7337}}, +{6927, 17, 10241, {1, 1, 5, 11, 11, 31, 73, 191, 95, 25, 1953, 1387, 1077, 7547, 9661, 57739, 76799}}, +{6928, 17, 10244, {1, 1, 7, 13, 23, 41, 69, 177, 407, 699, 1055, 3653, 1239, 8113, 12823, 1803, 117815}}, +{6929, 17, 10251, {1, 1, 1, 15, 1, 55, 71, 133, 401, 593, 605, 2855, 4569, 3533, 14141, 65457, 125655}}, +{6930, 17, 10253, {1, 1, 7, 9, 31, 55, 53, 11, 65, 17, 561, 925, 1561, 8929, 19859, 57111, 12777}}, +{6931, 17, 10256, {1, 3, 3, 11, 7, 59, 125, 205, 473, 655, 1429, 337, 6829, 7551, 27873, 11667, 39231}}, +{6932, 17, 10259, {1, 3, 3, 9, 13, 23, 25, 161, 443, 545, 1967, 1895, 6929, 5975, 17801, 41769, 30429}}, +{6933, 17, 10266, {1, 3, 7, 13, 15, 1, 99, 43, 45, 451, 21, 639, 7121, 4781, 2813, 419, 17761}}, +{6934, 17, 10284, {1, 1, 5, 13, 11, 9, 53, 83, 443, 441, 1601, 3177, 1913, 12211, 25835, 1733, 4793}}, +{6935, 17, 10290, {1, 3, 3, 1, 13, 15, 11, 187, 471, 699, 1751, 3279, 2305, 15259, 31541, 21357, 73763}}, +{6936, 17, 10331, {1, 3, 5, 9, 23, 11, 125, 57, 261, 479, 879, 719, 3221, 2943, 10593, 11521, 83979}}, +{6937, 17, 10334, {1, 3, 7, 13, 3, 39, 119, 135, 85, 417, 1675, 971, 7577, 12709, 20407, 26105, 97021}}, +{6938, 17, 10350, {1, 1, 5, 11, 15, 63, 83, 141, 281, 663, 1745, 2775, 5605, 9127, 553, 7177, 115969}}, +{6939, 17, 10355, {1, 1, 7, 1, 19, 47, 7, 165, 87, 95, 361, 1879, 6351, 2861, 9103, 37489, 24525}}, +{6940, 17, 10357, {1, 3, 3, 11, 9, 21, 51, 149, 375, 967, 1583, 1427, 1223, 11611, 7481, 36619, 128429}}, +{6941, 17, 10367, {1, 1, 5, 1, 3, 31, 7, 217, 453, 565, 1517, 2847, 6937, 1197, 24339, 44311, 66843}}, +{6942, 17, 10368, {1, 1, 5, 3, 3, 17, 127, 59, 3, 905, 531, 1179, 3559, 5175, 24627, 60941, 129457}}, +{6943, 17, 10377, {1, 1, 1, 7, 15, 15, 1, 31, 373, 643, 279, 3831, 4881, 9763, 17641, 43219, 83109}}, +{6944, 17, 10388, {1, 3, 3, 9, 5, 21, 41, 71, 371, 201, 573, 1481, 3631, 10783, 6679, 1089, 117347}}, +{6945, 17, 10407, {1, 1, 7, 7, 5, 25, 73, 63, 173, 197, 147, 981, 1491, 1597, 11733, 14285, 74021}}, +{6946, 17, 10421, {1, 1, 5, 11, 17, 15, 3, 175, 391, 503, 1745, 319, 791, 5607, 18173, 37319, 92025}}, +{6947, 17, 10434, {1, 3, 1, 1, 9, 37, 43, 81, 439, 951, 805, 251, 4625, 15617, 13715, 62263, 3827}}, +{6948, 17, 10439, {1, 3, 1, 1, 25, 21, 67, 191, 499, 205, 1355, 105, 1637, 563, 22291, 9045, 6545}}, +{6949, 17, 10440, {1, 1, 5, 5, 9, 3, 75, 75, 287, 303, 1767, 1789, 3437, 4637, 9605, 2537, 64935}}, +{6950, 17, 10443, {1, 1, 3, 3, 1, 51, 27, 155, 375, 149, 885, 187, 1551, 13109, 27011, 57301, 41047}}, +{6951, 17, 10446, {1, 1, 7, 5, 21, 23, 1, 81, 163, 231, 2039, 1519, 1279, 15379, 25549, 6711, 81499}}, +{6952, 17, 10457, {1, 1, 3, 5, 3, 37, 71, 243, 165, 365, 379, 351, 4649, 4287, 13395, 30329, 78383}}, +{6953, 17, 10469, {1, 3, 1, 1, 25, 63, 27, 215, 223, 699, 2029, 3737, 5947, 7287, 20813, 4931, 19345}}, +{6954, 17, 10476, {1, 1, 3, 15, 21, 7, 25, 187, 219, 53, 1749, 1797, 3533, 14307, 53, 11095, 75469}}, +{6955, 17, 10479, {1, 1, 3, 13, 27, 31, 91, 121, 481, 291, 915, 535, 4291, 5271, 12181, 55921, 125917}}, +{6956, 17, 10481, {1, 3, 1, 1, 3, 29, 21, 251, 361, 747, 997, 2989, 1809, 7235, 17855, 31027, 100689}}, +{6957, 17, 10494, {1, 3, 7, 1, 21, 13, 49, 93, 183, 673, 881, 1931, 7009, 2565, 26021, 53815, 19807}}, +{6958, 17, 10501, {1, 1, 7, 13, 9, 23, 47, 237, 487, 843, 1357, 919, 1753, 903, 2911, 31527, 73027}}, +{6959, 17, 10505, {1, 1, 1, 1, 25, 33, 97, 241, 421, 375, 73, 2541, 6231, 14659, 15335, 5915, 110791}}, +{6960, 17, 10516, {1, 3, 3, 7, 21, 17, 97, 125, 7, 271, 167, 475, 4887, 1847, 30173, 25913, 36659}}, +{6961, 17, 10532, {1, 1, 3, 15, 15, 37, 67, 5, 463, 423, 823, 941, 1551, 14175, 15377, 6017, 118297}}, +{6962, 17, 10541, {1, 1, 1, 7, 31, 51, 71, 127, 73, 517, 881, 3205, 6219, 11213, 14783, 64275, 70033}}, +{6963, 17, 10547, {1, 3, 1, 5, 17, 17, 57, 107, 359, 999, 1415, 757, 4743, 7775, 14111, 20075, 73269}}, +{6964, 17, 10550, {1, 3, 5, 3, 21, 57, 87, 43, 307, 777, 717, 3329, 4159, 12545, 31355, 31329, 41377}}, +{6965, 17, 10591, {1, 3, 7, 15, 25, 43, 19, 147, 487, 517, 977, 3625, 2311, 14173, 15167, 56563, 110417}}, +{6966, 17, 10597, {1, 3, 3, 11, 23, 1, 67, 157, 461, 169, 231, 1977, 5657, 865, 711, 24213, 76895}}, +{6967, 17, 10602, {1, 1, 7, 13, 5, 37, 51, 165, 331, 97, 431, 3819, 1379, 12083, 27521, 19689, 100119}}, +{6968, 17, 10610, {1, 1, 7, 15, 29, 21, 59, 193, 397, 467, 951, 3037, 2955, 13235, 20981, 63865, 30069}}, +{6969, 17, 10619, {1, 3, 3, 5, 7, 49, 41, 143, 319, 71, 353, 2159, 3043, 15317, 24095, 12017, 64393}}, +{6970, 17, 10631, {1, 1, 5, 13, 25, 45, 57, 153, 311, 805, 953, 1763, 5655, 3961, 12085, 58761, 76533}}, +{6971, 17, 10646, {1, 1, 3, 15, 29, 19, 71, 107, 203, 221, 1173, 1597, 1179, 9649, 21659, 10463, 8195}}, +{6972, 17, 10655, {1, 1, 3, 9, 31, 29, 53, 151, 247, 577, 543, 459, 8141, 5613, 12029, 24199, 118603}}, +{6973, 17, 10665, {1, 3, 1, 5, 1, 55, 103, 23, 405, 5, 181, 3805, 1103, 13389, 6725, 48733, 99639}}, +{6974, 17, 10673, {1, 1, 5, 9, 1, 47, 115, 231, 151, 885, 427, 2849, 361, 12969, 705, 41711, 53587}}, +{6975, 17, 10674, {1, 1, 3, 11, 9, 3, 11, 231, 77, 775, 657, 2721, 3431, 11919, 10425, 29405, 91561}}, +{6976, 17, 10680, {1, 1, 1, 5, 5, 7, 79, 41, 181, 333, 963, 3117, 7703, 2259, 16671, 51139, 27997}}, +{6977, 17, 10693, {1, 3, 7, 7, 13, 55, 59, 157, 377, 711, 1475, 1509, 1375, 6825, 13729, 28613, 109199}}, +{6978, 17, 10700, {1, 3, 3, 3, 13, 11, 51, 1, 67, 609, 467, 2161, 7693, 9019, 1847, 27969, 74863}}, +{6979, 17, 10721, {1, 1, 3, 3, 11, 33, 87, 217, 239, 505, 1451, 2801, 1417, 695, 29883, 15877, 99969}}, +{6980, 17, 10727, {1, 3, 3, 5, 3, 61, 9, 171, 57, 547, 2003, 2335, 2259, 3205, 5639, 21721, 25893}}, +{6981, 17, 10746, {1, 3, 1, 3, 19, 15, 83, 69, 47, 897, 627, 2839, 7123, 8567, 14707, 13159, 125139}}, +{6982, 17, 10748, {1, 3, 7, 11, 1, 59, 53, 33, 135, 1009, 1829, 3011, 1245, 421, 28909, 45517, 55071}}, +{6983, 17, 10757, {1, 1, 5, 9, 3, 27, 11, 243, 235, 683, 1329, 3145, 2141, 14027, 3707, 5933, 51965}}, +{6984, 17, 10761, {1, 1, 5, 7, 13, 63, 79, 105, 27, 195, 1657, 3107, 1245, 1681, 29619, 10589, 78197}}, +{6985, 17, 10770, {1, 3, 3, 7, 21, 1, 5, 79, 73, 125, 1587, 3053, 5977, 10745, 28343, 39023, 56201}}, +{6986, 17, 10776, {1, 1, 3, 15, 23, 21, 39, 41, 173, 913, 1267, 1323, 2967, 1979, 16763, 53753, 21905}}, +{6987, 17, 10782, {1, 1, 5, 7, 11, 11, 117, 151, 409, 345, 1461, 1703, 687, 557, 31651, 35507, 54909}}, +{6988, 17, 10791, {1, 1, 1, 15, 15, 49, 55, 223, 289, 765, 1737, 1117, 3717, 15465, 31949, 55061, 97091}}, +{6989, 17, 10792, {1, 1, 5, 9, 21, 29, 99, 13, 119, 35, 1461, 61, 5155, 6785, 15957, 11295, 52203}}, +{6990, 17, 10805, {1, 3, 5, 7, 23, 39, 73, 161, 465, 715, 153, 3529, 2243, 13773, 16573, 26233, 130263}}, +{6991, 17, 10810, {1, 3, 7, 9, 11, 51, 5, 149, 501, 119, 2047, 3417, 3955, 15055, 31633, 473, 127305}}, +{6992, 17, 10832, {1, 1, 1, 9, 31, 57, 91, 119, 215, 11, 1013, 3969, 1285, 11521, 8039, 36737, 86365}}, +{6993, 17, 10835, {1, 1, 5, 3, 7, 17, 9, 27, 59, 883, 541, 3027, 6219, 1091, 2453, 38247, 21323}}, +{6994, 17, 10841, {1, 1, 1, 1, 25, 39, 55, 249, 61, 313, 467, 1763, 4067, 8367, 32431, 44463, 66439}}, +{6995, 17, 10842, {1, 3, 3, 1, 13, 3, 37, 209, 21, 653, 1971, 3649, 6165, 3789, 12793, 56327, 60351}}, +{6996, 17, 10847, {1, 1, 7, 9, 31, 33, 21, 51, 313, 631, 515, 1761, 4149, 2601, 12481, 25975, 94061}}, +{6997, 17, 10853, {1, 1, 7, 15, 3, 7, 55, 129, 297, 735, 779, 633, 3265, 11713, 3893, 61197, 113991}}, +{6998, 17, 10860, {1, 3, 5, 13, 1, 15, 27, 253, 435, 595, 1163, 2753, 7399, 15225, 26215, 59753, 74933}}, +{6999, 17, 10871, {1, 1, 7, 7, 15, 23, 111, 43, 467, 957, 1687, 2893, 2315, 2025, 1475, 9061, 101611}}, +{7000, 17, 10878, {1, 1, 3, 3, 29, 41, 53, 169, 125, 415, 361, 869, 3399, 8821, 18193, 38575, 73979}}, +{7001, 17, 10881, {1, 1, 1, 15, 3, 5, 27, 5, 293, 765, 1809, 1961, 955, 12441, 10915, 2363, 49617}}, +{7002, 17, 10888, {1, 1, 5, 15, 19, 11, 3, 91, 59, 323, 545, 1177, 7967, 2729, 14085, 3283, 79859}}, +{7003, 17, 10894, {1, 1, 7, 13, 11, 17, 29, 163, 295, 951, 311, 3471, 1339, 10719, 701, 32377, 41685}}, +{7004, 17, 10901, {1, 3, 5, 7, 21, 19, 81, 247, 495, 767, 251, 3455, 6383, 7221, 19943, 64865, 33193}}, +{7005, 17, 10915, {1, 1, 7, 15, 23, 41, 63, 195, 311, 619, 211, 743, 889, 7627, 12527, 15865, 40103}}, +{7006, 17, 10918, {1, 1, 3, 1, 23, 23, 57, 221, 153, 27, 939, 3949, 411, 6357, 31985, 939, 91001}}, +{7007, 17, 10922, {1, 3, 5, 15, 7, 5, 35, 135, 245, 921, 307, 823, 775, 4891, 24575, 53503, 48147}}, +{7008, 17, 10936, {1, 1, 5, 7, 9, 31, 23, 139, 477, 495, 287, 807, 1855, 8321, 13963, 52197, 78509}}, +{7009, 17, 10954, {1, 3, 3, 3, 29, 59, 33, 83, 211, 65, 623, 1269, 1745, 16383, 10759, 57199, 14035}}, +{7010, 17, 10968, {1, 3, 3, 15, 25, 55, 69, 171, 411, 937, 731, 2275, 2597, 4133, 5089, 50507, 39989}}, +{7011, 17, 10971, {1, 3, 1, 9, 5, 47, 51, 21, 171, 913, 233, 43, 2673, 471, 27077, 57039, 32579}}, +{7012, 17, 10973, {1, 3, 5, 3, 29, 35, 5, 105, 233, 379, 77, 1775, 2409, 4597, 19879, 12691, 49739}}, +{7013, 17, 10978, {1, 3, 7, 13, 17, 29, 117, 177, 163, 927, 45, 3227, 7263, 5551, 9219, 32101, 122473}}, +{7014, 17, 10998, {1, 1, 7, 5, 31, 39, 75, 147, 311, 991, 1431, 3821, 6891, 9637, 17887, 661, 23067}}, +{7015, 17, 11009, {1, 3, 5, 13, 31, 53, 69, 79, 153, 329, 207, 479, 2395, 6505, 29553, 52023, 31531}}, +{7016, 17, 11021, {1, 3, 1, 7, 15, 7, 87, 233, 25, 275, 981, 1207, 3083, 16349, 30185, 60611, 120607}}, +{7017, 17, 11029, {1, 1, 5, 3, 21, 7, 47, 173, 291, 965, 65, 545, 7465, 4471, 2249, 34281, 107217}}, +{7018, 17, 11030, {1, 1, 3, 11, 19, 53, 17, 243, 193, 297, 1937, 1513, 4979, 14867, 15497, 10049, 9135}}, +{7019, 17, 11034, {1, 3, 1, 3, 25, 39, 29, 63, 231, 145, 247, 1745, 3439, 8635, 26687, 18595, 67123}}, +{7020, 17, 11050, {1, 1, 7, 9, 29, 33, 89, 175, 429, 675, 891, 1739, 3567, 5453, 30427, 33671, 83395}}, +{7021, 17, 11063, {1, 3, 1, 5, 31, 25, 69, 237, 235, 307, 1217, 3805, 153, 13387, 6209, 14179, 128725}}, +{7022, 17, 11064, {1, 1, 3, 3, 19, 45, 117, 135, 67, 601, 369, 3369, 5505, 2049, 24099, 22515, 96575}}, +{7023, 17, 11077, {1, 1, 1, 3, 3, 45, 29, 255, 327, 77, 1103, 4067, 2875, 6487, 5903, 26625, 19631}}, +{7024, 17, 11078, {1, 3, 5, 1, 31, 63, 115, 7, 255, 855, 913, 1779, 7001, 14387, 26765, 51987, 3191}}, +{7025, 17, 11105, {1, 1, 3, 11, 15, 43, 71, 247, 303, 231, 445, 3963, 3699, 11851, 18941, 43465, 63431}}, +{7026, 17, 11106, {1, 1, 3, 5, 31, 33, 93, 127, 267, 399, 653, 1997, 5005, 14535, 4813, 64065, 2159}}, +{7027, 17, 11126, {1, 3, 7, 13, 31, 39, 61, 155, 141, 515, 1217, 161, 4309, 3697, 22445, 43599, 43329}}, +{7028, 17, 11129, {1, 3, 3, 3, 7, 51, 103, 147, 511, 971, 195, 3731, 6629, 12125, 12053, 34951, 60059}}, +{7029, 17, 11135, {1, 1, 5, 11, 21, 49, 99, 31, 55, 309, 1805, 2253, 7095, 15265, 28445, 54813, 48615}}, +{7030, 17, 11151, {1, 3, 1, 15, 9, 41, 61, 125, 65, 143, 1567, 3259, 6757, 653, 31601, 63127, 52179}}, +{7031, 17, 11159, {1, 1, 5, 3, 29, 5, 19, 197, 153, 447, 7, 1713, 469, 6043, 1259, 63641, 29171}}, +{7032, 17, 11165, {1, 3, 3, 7, 3, 41, 95, 245, 445, 15, 607, 565, 2361, 2673, 21077, 20153, 6199}}, +{7033, 17, 11176, {1, 1, 5, 1, 5, 59, 93, 127, 485, 663, 683, 635, 1599, 16377, 31819, 6539, 27789}}, +{7034, 17, 11179, {1, 3, 1, 3, 31, 3, 11, 215, 441, 1005, 1815, 3945, 5109, 5539, 23935, 62671, 90731}}, +{7035, 17, 11182, {1, 3, 3, 1, 13, 47, 19, 229, 191, 427, 1141, 2321, 7105, 1587, 26347, 63265, 23377}}, +{7036, 17, 11189, {1, 1, 5, 15, 31, 55, 61, 93, 89, 945, 1203, 3631, 4457, 15097, 32019, 41747, 46009}}, +{7037, 17, 11204, {1, 1, 5, 13, 5, 33, 69, 59, 93, 247, 503, 421, 1923, 9855, 9825, 14257, 98663}}, +{7038, 17, 11216, {1, 3, 1, 13, 27, 21, 91, 39, 131, 571, 1527, 2715, 2061, 627, 19705, 47165, 84345}}, +{7039, 17, 11232, {1, 1, 1, 7, 3, 3, 7, 251, 225, 959, 1017, 2423, 6163, 1549, 7473, 3193, 104259}}, +{7040, 17, 11235, {1, 3, 3, 1, 5, 5, 115, 221, 505, 649, 1525, 2459, 167, 1899, 23939, 29253, 122835}}, +{7041, 17, 11242, {1, 3, 1, 5, 15, 9, 123, 221, 133, 43, 31, 1211, 4737, 5001, 20065, 6369, 93865}}, +{7042, 17, 11250, {1, 1, 5, 11, 11, 5, 23, 29, 333, 133, 1469, 1895, 5879, 15599, 2131, 25005, 96271}}, +{7043, 17, 11264, {1, 1, 3, 11, 25, 11, 19, 57, 397, 645, 1233, 2433, 6371, 10577, 15489, 60709, 3957}}, +{7044, 17, 11273, {1, 3, 1, 1, 19, 3, 33, 131, 429, 835, 1363, 2213, 3185, 14385, 8831, 43159, 32975}}, +{7045, 17, 11282, {1, 1, 5, 5, 23, 11, 127, 139, 213, 259, 897, 1913, 5737, 1287, 26617, 4885, 30193}}, +{7046, 17, 11288, {1, 3, 5, 13, 3, 27, 99, 31, 11, 27, 1003, 2473, 7055, 12923, 4269, 41433, 90637}}, +{7047, 17, 11291, {1, 3, 1, 7, 17, 25, 95, 151, 199, 237, 207, 1879, 2943, 9845, 3765, 53533, 111191}}, +{7048, 17, 11293, {1, 3, 1, 9, 19, 27, 5, 249, 85, 185, 1883, 1401, 2041, 12721, 20593, 30993, 2601}}, +{7049, 17, 11318, {1, 3, 3, 9, 23, 1, 15, 133, 387, 779, 707, 2723, 4485, 989, 27125, 37295, 125319}}, +{7050, 17, 11321, {1, 1, 7, 3, 9, 41, 81, 151, 349, 941, 357, 3817, 7123, 10079, 27519, 107, 102281}}, +{7051, 17, 11329, {1, 1, 1, 1, 13, 5, 111, 167, 73, 85, 1185, 1213, 333, 153, 13101, 38087, 39389}}, +{7052, 17, 11336, {1, 3, 3, 15, 11, 41, 99, 231, 377, 539, 1335, 1059, 5373, 9611, 27927, 29801, 85749}}, +{7053, 17, 11339, {1, 3, 1, 9, 19, 37, 125, 27, 15, 699, 1867, 2711, 1589, 1675, 32007, 61339, 96919}}, +{7054, 17, 11342, {1, 3, 3, 3, 3, 27, 21, 159, 249, 783, 1517, 2923, 2609, 1207, 13705, 57371, 43603}}, +{7055, 17, 11356, {1, 1, 5, 15, 17, 55, 77, 1, 401, 897, 987, 345, 5283, 5827, 17755, 44371, 13253}}, +{7056, 17, 11383, {1, 3, 1, 7, 3, 3, 99, 237, 487, 405, 771, 3503, 1199, 4779, 26893, 45821, 46383}}, +{7057, 17, 11389, {1, 1, 7, 3, 9, 47, 81, 27, 459, 989, 1891, 3997, 4081, 4075, 15079, 65081, 125185}}, +{7058, 17, 11405, {1, 3, 5, 9, 25, 23, 71, 251, 251, 197, 353, 3553, 2165, 2953, 3733, 52369, 100641}}, +{7059, 17, 11411, {1, 1, 1, 5, 25, 43, 63, 187, 495, 345, 1547, 2293, 7327, 7797, 14001, 61865, 40329}}, +{7060, 17, 11423, {1, 1, 5, 15, 25, 37, 67, 23, 315, 801, 71, 1235, 7293, 7207, 30929, 9417, 94735}}, +{7061, 17, 11424, {1, 1, 1, 3, 23, 29, 87, 171, 337, 457, 1597, 3933, 4151, 1237, 19563, 56997, 81497}}, +{7062, 17, 11430, {1, 3, 3, 11, 3, 33, 79, 239, 277, 611, 205, 2283, 7459, 425, 21999, 26491, 58681}}, +{7063, 17, 11444, {1, 1, 7, 1, 5, 37, 53, 93, 205, 97, 779, 3623, 7777, 521, 21915, 46539, 128811}}, +{7064, 17, 11447, {1, 1, 5, 7, 19, 7, 39, 183, 299, 193, 1351, 3867, 5709, 11655, 1231, 15555, 128023}}, +{7065, 17, 11459, {1, 3, 7, 11, 31, 13, 113, 57, 197, 841, 921, 2087, 2195, 8279, 8353, 1955, 22121}}, +{7066, 17, 11465, {1, 3, 3, 11, 21, 55, 61, 105, 357, 747, 363, 3511, 2547, 16283, 25747, 56041, 33695}}, +{7067, 17, 11473, {1, 3, 3, 13, 27, 13, 5, 27, 93, 691, 1869, 2331, 3131, 14411, 2355, 37195, 129273}}, +{7068, 17, 11479, {1, 3, 3, 7, 27, 9, 11, 165, 435, 811, 215, 1617, 347, 4289, 29373, 15749, 91445}}, +{7069, 17, 11501, {1, 1, 7, 13, 29, 3, 95, 53, 457, 633, 959, 3705, 7461, 9307, 21963, 51599, 6751}}, +{7070, 17, 11510, {1, 1, 1, 15, 29, 25, 95, 1, 125, 61, 683, 2067, 6485, 9095, 5571, 61281, 70865}}, +{7071, 17, 11514, {1, 1, 7, 7, 1, 35, 119, 107, 247, 991, 237, 1865, 3961, 12583, 11417, 14913, 90897}}, +{7072, 17, 11522, {1, 3, 7, 15, 11, 51, 73, 193, 289, 381, 1767, 3803, 3197, 3797, 15059, 19393, 98947}}, +{7073, 17, 11527, {1, 1, 5, 3, 13, 7, 91, 223, 347, 59, 1721, 1501, 6391, 4141, 14495, 47283, 47237}}, +{7074, 17, 11533, {1, 3, 7, 11, 17, 39, 43, 247, 35, 423, 1859, 3199, 5343, 7061, 8609, 6819, 88575}}, +{7075, 17, 11536, {1, 1, 5, 13, 31, 27, 57, 19, 499, 1007, 1965, 795, 1231, 12755, 24631, 53343, 82305}}, +{7076, 17, 11548, {1, 1, 1, 9, 13, 23, 127, 161, 245, 467, 2025, 2545, 3085, 13035, 27087, 14461, 35971}}, +{7077, 17, 11551, {1, 3, 5, 1, 7, 3, 99, 159, 75, 341, 1755, 2337, 5981, 5055, 19445, 30043, 61427}}, +{7078, 17, 11552, {1, 1, 1, 7, 13, 33, 41, 73, 267, 21, 961, 3509, 6839, 13215, 8471, 46735, 93071}}, +{7079, 17, 11555, {1, 3, 7, 7, 3, 25, 81, 239, 357, 445, 1483, 389, 3891, 5131, 21357, 34757, 111063}}, +{7080, 17, 11572, {1, 3, 7, 1, 1, 37, 119, 121, 195, 935, 1711, 2049, 7001, 7117, 9957, 7309, 102293}}, +{7081, 17, 11587, {1, 1, 7, 11, 1, 49, 107, 95, 149, 329, 289, 1121, 7217, 15091, 19071, 13801, 13}}, +{7082, 17, 11601, {1, 1, 1, 13, 17, 17, 7, 105, 81, 1017, 1867, 1567, 5133, 7325, 19797, 16301, 40471}}, +{7083, 17, 11613, {1, 3, 5, 5, 27, 45, 117, 135, 499, 53, 973, 121, 53, 8771, 11893, 35827, 57691}}, +{7084, 17, 11614, {1, 1, 1, 1, 7, 23, 11, 163, 17, 871, 129, 2959, 5583, 12253, 1419, 28367, 32539}}, +{7085, 17, 11618, {1, 1, 3, 5, 23, 31, 127, 33, 115, 799, 331, 1873, 1729, 1383, 23601, 51145, 72027}}, +{7086, 17, 11624, {1, 1, 1, 9, 15, 49, 105, 163, 51, 539, 451, 3983, 6509, 1073, 30757, 13971, 51371}}, +{7087, 17, 11630, {1, 1, 7, 1, 1, 57, 71, 135, 5, 171, 983, 951, 777, 9257, 3607, 3239, 76237}}, +{7088, 17, 11663, {1, 1, 7, 7, 21, 17, 49, 175, 9, 807, 289, 2777, 7309, 14911, 28349, 43871, 96019}}, +{7089, 17, 11682, {1, 3, 1, 13, 5, 7, 83, 215, 297, 319, 347, 633, 7285, 8293, 18811, 31065, 114077}}, +{7090, 17, 11684, {1, 3, 1, 11, 3, 29, 91, 231, 161, 601, 355, 2719, 2941, 6065, 21849, 58051, 46515}}, +{7091, 17, 11702, {1, 1, 3, 9, 25, 41, 111, 135, 71, 755, 29, 131, 1339, 5053, 15713, 14557, 106777}}, +{7092, 17, 11705, {1, 1, 7, 13, 21, 59, 13, 45, 503, 71, 1611, 4021, 2359, 11653, 7261, 14537, 33031}}, +{7093, 17, 11713, {1, 1, 1, 11, 5, 31, 1, 181, 37, 527, 1345, 1979, 4899, 3289, 25181, 49959, 44609}}, +{7094, 17, 11731, {1, 3, 3, 13, 21, 25, 33, 105, 57, 637, 841, 1595, 3881, 5053, 9441, 58717, 127255}}, +{7095, 17, 11734, {1, 3, 5, 7, 23, 57, 9, 117, 281, 769, 1573, 2857, 1139, 6413, 14001, 21097, 55215}}, +{7096, 17, 11740, {1, 1, 7, 7, 3, 5, 75, 149, 269, 353, 437, 61, 2451, 11987, 17243, 5649, 105107}}, +{7097, 17, 11747, {1, 1, 3, 3, 25, 61, 53, 21, 113, 57, 1415, 2825, 11, 14977, 6159, 4181, 96765}}, +{7098, 17, 11754, {1, 1, 7, 5, 15, 25, 121, 159, 71, 773, 601, 147, 6507, 16171, 16607, 32017, 77845}}, +{7099, 17, 11761, {1, 3, 1, 1, 27, 19, 59, 109, 347, 991, 165, 683, 6147, 493, 22017, 19069, 52857}}, +{7100, 17, 11762, {1, 1, 5, 5, 21, 1, 93, 115, 407, 15, 421, 1305, 3495, 14287, 31831, 65347, 35339}}, +{7101, 17, 11787, {1, 3, 5, 11, 29, 35, 87, 27, 453, 769, 1991, 2757, 2607, 9225, 293, 49441, 18185}}, +{7102, 17, 11792, {1, 1, 5, 3, 23, 41, 67, 195, 499, 903, 197, 1121, 4691, 9277, 29225, 34597, 37395}}, +{7103, 17, 11814, {1, 1, 7, 7, 21, 7, 65, 245, 241, 909, 1063, 2271, 1979, 10287, 1747, 61523, 72969}}, +{7104, 17, 11823, {1, 3, 1, 13, 23, 25, 3, 89, 385, 481, 1463, 3431, 6907, 1129, 3519, 35789, 82585}}, +{7105, 17, 11825, {1, 3, 5, 3, 31, 17, 11, 209, 77, 991, 885, 3341, 6895, 3429, 21611, 38555, 35475}}, +{7106, 17, 11837, {1, 1, 3, 1, 9, 61, 27, 219, 433, 787, 281, 1155, 2915, 4449, 30881, 34461, 15357}}, +{7107, 17, 11838, {1, 1, 3, 15, 27, 55, 51, 101, 117, 799, 1475, 4013, 5145, 14991, 27847, 49537, 57339}}, +{7108, 17, 11846, {1, 3, 7, 13, 13, 9, 13, 167, 283, 883, 1501, 2635, 1463, 3353, 14961, 30349, 62043}}, +{7109, 17, 11855, {1, 1, 7, 3, 3, 47, 119, 37, 389, 655, 701, 2471, 5749, 6645, 845, 27065, 82299}}, +{7110, 17, 11864, {1, 1, 7, 15, 27, 5, 95, 195, 227, 991, 1137, 3715, 4901, 9459, 1917, 43857, 126505}}, +{7111, 17, 11876, {1, 3, 7, 5, 29, 35, 45, 165, 361, 257, 641, 1265, 6533, 11333, 26081, 12621, 66909}}, +{7112, 17, 11885, {1, 1, 1, 11, 19, 55, 73, 137, 29, 355, 725, 1161, 6717, 2035, 19769, 43531, 72577}}, +{7113, 17, 11904, {1, 3, 7, 5, 19, 3, 99, 17, 387, 621, 137, 117, 6567, 7667, 14979, 17981, 68319}}, +{7114, 17, 11909, {1, 1, 5, 5, 7, 53, 31, 33, 245, 371, 691, 2763, 95, 16369, 7853, 29839, 34957}}, +{7115, 17, 11913, {1, 1, 3, 1, 9, 1, 83, 177, 17, 141, 1739, 1791, 3849, 3093, 22271, 53755, 7817}}, +{7116, 17, 11916, {1, 3, 3, 1, 3, 51, 71, 69, 439, 987, 807, 3353, 4747, 16031, 29591, 61091, 95675}}, +{7117, 17, 11940, {1, 3, 5, 1, 17, 47, 51, 211, 7, 5, 1751, 1735, 1647, 13389, 13861, 49427, 13577}}, +{7118, 17, 11943, {1, 3, 7, 5, 11, 23, 17, 55, 11, 61, 809, 927, 6533, 1509, 29261, 21555, 55075}}, +{7119, 17, 11972, {1, 3, 1, 1, 15, 51, 37, 47, 183, 117, 597, 3225, 1435, 13359, 19127, 17339, 17345}}, +{7120, 17, 11981, {1, 1, 5, 3, 5, 11, 33, 179, 295, 129, 29, 713, 1561, 27, 21087, 50305, 39253}}, +{7121, 17, 11990, {1, 1, 5, 7, 17, 25, 105, 241, 41, 915, 1223, 2625, 617, 10983, 10749, 2137, 101831}}, +{7122, 17, 11993, {1, 3, 5, 7, 15, 15, 85, 23, 193, 625, 1803, 2903, 1935, 523, 8377, 12165, 105851}}, +{7123, 17, 12000, {1, 3, 3, 7, 3, 35, 5, 107, 191, 855, 405, 1659, 5523, 5011, 6401, 45187, 31345}}, +{7124, 17, 12005, {1, 3, 3, 1, 9, 21, 103, 75, 501, 669, 547, 3685, 411, 2663, 14743, 13869, 124389}}, +{7125, 17, 12015, {1, 3, 5, 13, 15, 37, 39, 79, 19, 165, 1685, 1367, 5951, 12303, 13423, 51083, 119933}}, +{7126, 17, 12020, {1, 1, 3, 1, 7, 25, 1, 221, 415, 591, 859, 1457, 1789, 2269, 15947, 31913, 86397}}, +{7127, 17, 12038, {1, 3, 7, 15, 11, 49, 15, 171, 45, 925, 407, 1719, 4505, 5695, 17397, 28849, 77}}, +{7128, 17, 12042, {1, 1, 3, 11, 21, 33, 91, 115, 263, 141, 753, 3335, 7695, 1981, 6029, 22629, 2467}}, +{7129, 17, 12056, {1, 3, 5, 3, 25, 5, 21, 67, 429, 323, 223, 2395, 761, 14817, 12387, 37905, 19551}}, +{7130, 17, 12065, {1, 3, 1, 15, 31, 43, 35, 255, 73, 533, 1093, 965, 557, 607, 6913, 35283, 12261}}, +{7131, 17, 12066, {1, 3, 1, 15, 25, 13, 39, 83, 77, 269, 1205, 1577, 4095, 6669, 8643, 48807, 98227}}, +{7132, 17, 12072, {1, 3, 3, 7, 31, 57, 25, 177, 441, 973, 1255, 675, 5579, 4899, 27925, 52555, 70845}}, +{7133, 17, 12080, {1, 3, 1, 5, 13, 47, 15, 75, 387, 461, 1909, 841, 7, 9567, 913, 41411, 12565}}, +{7134, 17, 12083, {1, 1, 5, 7, 5, 21, 17, 189, 319, 645, 403, 2723, 6747, 15471, 26533, 12709, 49417}}, +{7135, 17, 12090, {1, 1, 5, 7, 7, 41, 99, 179, 137, 435, 1061, 3987, 4583, 4101, 23781, 54263, 36695}}, +{7136, 17, 12092, {1, 3, 1, 11, 19, 37, 125, 177, 111, 921, 1003, 1433, 1399, 3991, 28193, 40471, 97041}}, +{7137, 17, 12103, {1, 1, 7, 1, 5, 33, 7, 139, 127, 413, 1171, 2237, 265, 10145, 18793, 28957, 25037}}, +{7138, 17, 12109, {1, 3, 1, 1, 25, 37, 13, 17, 471, 195, 1645, 3165, 5635, 8433, 28507, 453, 107709}}, +{7139, 17, 12112, {1, 3, 3, 11, 1, 55, 119, 97, 243, 371, 95, 97, 7833, 777, 12177, 1861, 56323}}, +{7140, 17, 12117, {1, 1, 7, 5, 7, 29, 59, 219, 405, 411, 275, 111, 4899, 10367, 24331, 57295, 47065}}, +{7141, 17, 12121, {1, 1, 3, 3, 19, 23, 91, 111, 221, 195, 1013, 3001, 3227, 6359, 30383, 49699, 49157}}, +{7142, 17, 12137, {1, 1, 5, 7, 1, 21, 125, 23, 177, 291, 249, 861, 1899, 14101, 5079, 5211, 14373}}, +{7143, 17, 12143, {1, 1, 7, 11, 11, 59, 33, 41, 291, 919, 253, 609, 1657, 14633, 15189, 22245, 99815}}, +{7144, 17, 12145, {1, 3, 5, 3, 23, 49, 71, 137, 393, 343, 1845, 343, 5853, 6639, 17435, 62143, 76041}}, +{7145, 17, 12148, {1, 1, 5, 3, 9, 27, 55, 193, 25, 965, 1453, 2739, 3785, 12497, 29607, 11111, 25145}}, +{7146, 17, 12168, {1, 1, 1, 1, 29, 11, 111, 73, 491, 629, 405, 2779, 5313, 589, 1459, 47555, 67945}}, +{7147, 17, 12174, {1, 3, 1, 7, 13, 21, 99, 75, 79, 963, 207, 1725, 6875, 8359, 10573, 45219, 130463}}, +{7148, 17, 12188, {1, 3, 7, 13, 1, 17, 105, 227, 487, 891, 1053, 1333, 7651, 5415, 18661, 22085, 82055}}, +{7149, 17, 12191, {1, 1, 3, 3, 31, 27, 91, 93, 383, 331, 965, 3035, 4931, 13265, 9729, 28985, 118227}}, +{7150, 17, 12192, {1, 3, 1, 1, 11, 9, 59, 191, 253, 909, 301, 3811, 255, 14937, 28627, 54509, 95993}}, +{7151, 17, 12201, {1, 3, 3, 5, 11, 5, 105, 77, 323, 713, 637, 1857, 2697, 12473, 12261, 2933, 101287}}, +{7152, 17, 12224, {1, 3, 3, 11, 9, 63, 19, 19, 213, 859, 1479, 2849, 1067, 5749, 13511, 14933, 11125}}, +{7153, 17, 12230, {1, 1, 5, 9, 19, 19, 13, 49, 237, 511, 533, 543, 575, 8095, 27335, 18847, 18173}}, +{7154, 17, 12239, {1, 3, 5, 5, 9, 53, 47, 157, 35, 827, 637, 2327, 787, 5269, 5145, 10135, 111273}}, +{7155, 17, 12242, {1, 3, 3, 7, 27, 41, 69, 173, 53, 655, 809, 481, 6999, 3101, 20781, 2481, 94957}}, +{7156, 17, 12251, {1, 1, 5, 11, 17, 23, 95, 201, 363, 613, 863, 1365, 1131, 15417, 20705, 8283, 55235}}, +{7157, 17, 12258, {1, 1, 5, 13, 3, 15, 37, 219, 291, 595, 1665, 1861, 1953, 15385, 20569, 46085, 15163}}, +{7158, 17, 12264, {1, 3, 3, 11, 23, 43, 125, 133, 85, 45, 819, 243, 7325, 8723, 1499, 58139, 120353}}, +{7159, 17, 12310, {1, 1, 1, 11, 21, 49, 91, 145, 175, 619, 1817, 3533, 8155, 7521, 30361, 45431, 130175}}, +{7160, 17, 12319, {1, 1, 3, 1, 11, 59, 57, 51, 37, 903, 1221, 3813, 8043, 14165, 31503, 7905, 61515}}, +{7161, 17, 12323, {1, 1, 1, 1, 15, 9, 115, 175, 285, 839, 97, 3119, 719, 15283, 22947, 25417, 40665}}, +{7162, 17, 12325, {1, 3, 1, 7, 5, 49, 127, 111, 373, 747, 393, 2351, 4577, 15227, 23149, 16901, 80253}}, +{7163, 17, 12332, {1, 1, 5, 3, 15, 5, 95, 197, 251, 275, 831, 1389, 3907, 12343, 11599, 24369, 65361}}, +{7164, 17, 12343, {1, 3, 7, 5, 25, 37, 11, 75, 417, 789, 745, 811, 2189, 15381, 4785, 41657, 2897}}, +{7165, 17, 12344, {1, 3, 1, 13, 29, 55, 55, 33, 279, 383, 1645, 975, 4683, 1357, 1149, 30271, 90527}}, +{7166, 17, 12352, {1, 3, 5, 3, 5, 3, 79, 61, 371, 225, 141, 369, 1037, 12249, 29431, 37253, 9899}}, +{7167, 17, 12370, {1, 1, 3, 13, 13, 7, 127, 147, 507, 119, 1085, 1949, 6289, 10179, 10107, 55989, 74395}}, +{7168, 17, 12388, {1, 3, 1, 7, 21, 35, 53, 209, 103, 365, 683, 553, 4977, 14371, 24037, 11453, 45369}}, +{7169, 17, 12395, {1, 1, 5, 11, 27, 39, 41, 145, 437, 55, 893, 2375, 4977, 5451, 21225, 46815, 1423}}, +{7170, 17, 12403, {1, 3, 5, 1, 23, 53, 113, 75, 209, 323, 1975, 3809, 1829, 14625, 3821, 53773, 129173}}, +{7171, 17, 12409, {1, 1, 5, 3, 7, 51, 97, 73, 289, 481, 339, 1375, 3101, 4395, 13933, 33267, 68115}}, +{7172, 17, 12410, {1, 3, 5, 1, 5, 45, 83, 57, 3, 667, 109, 3979, 6447, 8603, 20147, 49291, 18023}}, +{7173, 17, 12415, {1, 3, 7, 1, 11, 7, 45, 233, 65, 745, 1009, 2979, 5965, 10681, 3499, 23077, 87479}}, +{7174, 17, 12419, {1, 3, 3, 3, 13, 25, 25, 189, 197, 83, 1429, 2857, 2877, 8577, 24811, 33049, 46009}}, +{7175, 17, 12426, {1, 1, 1, 7, 11, 47, 47, 255, 89, 625, 449, 3747, 2035, 3509, 4901, 2961, 14073}}, +{7176, 17, 12439, {1, 1, 1, 13, 9, 55, 35, 47, 389, 573, 847, 1037, 1345, 5487, 7575, 57435, 77303}}, +{7177, 17, 12445, {1, 1, 5, 11, 25, 51, 113, 109, 79, 339, 95, 2049, 5881, 13209, 20041, 26419, 110319}}, +{7178, 17, 12459, {1, 1, 7, 1, 27, 15, 93, 145, 253, 917, 1211, 2221, 1087, 14209, 32097, 20083, 67841}}, +{7179, 17, 12464, {1, 1, 3, 15, 13, 19, 67, 107, 75, 919, 2047, 3675, 6231, 1243, 14335, 35939, 17281}}, +{7180, 17, 12474, {1, 3, 7, 5, 27, 47, 53, 239, 475, 231, 1645, 825, 4039, 15985, 10853, 32951, 34985}}, +{7181, 17, 12484, {1, 1, 7, 5, 15, 61, 107, 93, 51, 221, 717, 2859, 7885, 9571, 11841, 45143, 33723}}, +{7182, 17, 12491, {1, 1, 7, 7, 9, 25, 63, 25, 47, 55, 2041, 3965, 215, 14857, 31669, 54775, 42157}}, +{7183, 17, 12501, {1, 3, 5, 1, 5, 45, 123, 109, 471, 599, 479, 475, 3499, 11963, 23709, 18851, 66861}}, +{7184, 17, 12505, {1, 3, 3, 3, 5, 29, 71, 81, 315, 329, 1471, 3995, 623, 5871, 11171, 15645, 97251}}, +{7185, 17, 12508, {1, 1, 7, 11, 15, 15, 101, 173, 445, 871, 765, 1121, 1937, 13055, 7309, 54175, 85559}}, +{7186, 17, 12511, {1, 3, 5, 7, 7, 13, 43, 237, 361, 981, 19, 3113, 4681, 3313, 19147, 35193, 87281}}, +{7187, 17, 12521, {1, 3, 5, 3, 27, 13, 37, 51, 233, 573, 1599, 2807, 7149, 12083, 28927, 7797, 130879}}, +{7188, 17, 12522, {1, 1, 1, 13, 31, 63, 127, 89, 209, 717, 1075, 3887, 1427, 87, 18565, 39973, 55025}}, +{7189, 17, 12530, {1, 3, 1, 5, 15, 11, 121, 247, 273, 613, 1857, 2059, 7399, 13951, 9025, 39523, 68121}}, +{7190, 17, 12544, {1, 3, 7, 13, 31, 9, 61, 143, 375, 433, 471, 1315, 5299, 1167, 10099, 11445, 51693}}, +{7191, 17, 12547, {1, 1, 7, 9, 25, 31, 125, 5, 13, 595, 621, 3551, 7959, 10643, 14345, 37683, 118377}}, +{7192, 17, 12561, {1, 1, 5, 11, 1, 33, 45, 31, 447, 229, 893, 3777, 4101, 2505, 4855, 14057, 20133}}, +{7193, 17, 12571, {1, 1, 1, 1, 7, 23, 89, 53, 483, 873, 521, 2115, 1461, 11241, 1003, 28749, 68227}}, +{7194, 17, 12580, {1, 3, 5, 5, 3, 17, 23, 219, 281, 975, 895, 4043, 6505, 5991, 27401, 38791, 89239}}, +{7195, 17, 12597, {1, 1, 1, 7, 29, 41, 63, 151, 195, 495, 469, 305, 7437, 1107, 31147, 30755, 116551}}, +{7196, 17, 12607, {1, 3, 7, 3, 13, 25, 33, 193, 23, 135, 3, 513, 4169, 15355, 2255, 32167, 68691}}, +{7197, 17, 12609, {1, 3, 3, 11, 29, 19, 125, 177, 83, 361, 393, 663, 1859, 1333, 17507, 10661, 72387}}, +{7198, 17, 12610, {1, 1, 5, 11, 23, 13, 61, 33, 149, 145, 995, 649, 7587, 6743, 25225, 54997, 10193}}, +{7199, 17, 12616, {1, 1, 7, 13, 29, 51, 107, 79, 467, 881, 1227, 1083, 3277, 2559, 26819, 57311, 48095}}, +{7200, 17, 12621, {1, 3, 1, 1, 1, 19, 23, 25, 239, 703, 119, 2525, 8079, 5433, 8989, 42517, 116755}}, +{7201, 17, 12624, {1, 1, 7, 11, 31, 9, 9, 113, 381, 363, 447, 3751, 7523, 15995, 3853, 42069, 81455}}, +{7202, 17, 12639, {1, 1, 5, 9, 29, 41, 103, 179, 477, 527, 1593, 3003, 1095, 6823, 6911, 44987, 32445}}, +{7203, 17, 12645, {1, 1, 7, 15, 5, 31, 55, 181, 149, 127, 1745, 2753, 801, 285, 20199, 33707, 118397}}, +{7204, 17, 12652, {1, 3, 7, 7, 11, 29, 89, 215, 351, 303, 1519, 2593, 2045, 14699, 1657, 40799, 39641}}, +{7205, 17, 12655, {1, 1, 7, 13, 3, 35, 73, 111, 15, 803, 1819, 3453, 3611, 8337, 14239, 14875, 83983}}, +{7206, 17, 12660, {1, 1, 5, 15, 15, 49, 27, 101, 149, 3, 717, 2229, 7397, 6579, 10965, 35997, 28823}}, +{7207, 17, 12667, {1, 1, 5, 7, 3, 17, 49, 245, 343, 657, 15, 749, 6413, 10811, 2909, 47309, 34613}}, +{7208, 17, 12686, {1, 3, 5, 15, 13, 35, 67, 99, 481, 379, 2003, 3367, 3065, 5845, 7799, 43931, 15263}}, +{7209, 17, 12688, {1, 1, 5, 13, 21, 49, 81, 77, 395, 919, 1931, 661, 123, 9965, 10487, 55131, 1567}}, +{7210, 17, 12697, {1, 3, 5, 11, 23, 39, 41, 121, 159, 473, 191, 1983, 6411, 10503, 10523, 40601, 64153}}, +{7211, 17, 12700, {1, 1, 5, 7, 9, 37, 73, 207, 497, 789, 1671, 325, 1697, 11281, 31185, 4961, 124431}}, +{7212, 17, 12707, {1, 1, 5, 15, 7, 51, 71, 91, 449, 707, 621, 2427, 627, 1747, 12779, 17569, 98289}}, +{7213, 17, 12710, {1, 1, 5, 5, 31, 3, 89, 163, 77, 647, 1747, 2965, 1669, 3311, 17651, 8111, 30739}}, +{7214, 17, 12719, {1, 1, 3, 11, 15, 31, 77, 173, 405, 913, 459, 2955, 6153, 13391, 20439, 64433, 12371}}, +{7215, 17, 12739, {1, 1, 3, 11, 13, 55, 29, 37, 379, 689, 407, 1373, 397, 5027, 15497, 25687, 48193}}, +{7216, 17, 12742, {1, 3, 3, 15, 13, 7, 81, 207, 395, 901, 779, 1683, 2491, 3807, 31979, 32403, 81113}}, +{7217, 17, 12746, {1, 3, 3, 13, 29, 31, 25, 81, 459, 991, 793, 3285, 2775, 16199, 11423, 52597, 86041}}, +{7218, 17, 12754, {1, 3, 3, 13, 17, 17, 101, 183, 19, 735, 671, 1097, 2461, 9863, 25985, 31915, 73047}}, +{7219, 17, 12765, {1, 3, 3, 3, 3, 11, 71, 63, 429, 899, 351, 1275, 3907, 14241, 19135, 14875, 43325}}, +{7220, 17, 12772, {1, 1, 7, 11, 11, 61, 15, 213, 411, 13, 1409, 1741, 5257, 8729, 28351, 6381, 77501}}, +{7221, 17, 12784, {1, 1, 7, 7, 29, 27, 51, 217, 411, 261, 599, 3027, 7871, 9133, 32423, 44275, 34701}}, +{7222, 17, 12789, {1, 3, 7, 7, 1, 1, 127, 209, 151, 845, 1421, 3115, 7775, 10133, 6163, 41165, 91187}}, +{7223, 17, 12800, {1, 3, 1, 9, 1, 35, 75, 3, 81, 477, 131, 1383, 1377, 6857, 3863, 12583, 7855}}, +{7224, 17, 12805, {1, 3, 1, 3, 3, 11, 1, 167, 347, 317, 557, 3763, 7175, 13341, 759, 23275, 78039}}, +{7225, 17, 12809, {1, 3, 5, 11, 19, 53, 85, 139, 67, 757, 487, 919, 6001, 16031, 24959, 28013, 65771}}, +{7226, 17, 12815, {1, 1, 1, 1, 23, 9, 83, 55, 249, 305, 1305, 109, 5559, 5129, 30973, 19889, 6691}}, +{7227, 17, 12827, {1, 1, 1, 3, 21, 19, 85, 89, 213, 847, 861, 1651, 6613, 6001, 8157, 2555, 98673}}, +{7228, 17, 12830, {1, 1, 1, 15, 25, 15, 125, 133, 177, 295, 549, 1763, 2811, 4381, 1079, 7813, 87909}}, +{7229, 17, 12833, {1, 1, 1, 5, 5, 17, 25, 225, 353, 997, 1565, 2225, 7265, 16227, 28209, 9011, 97193}}, +{7230, 17, 12840, {1, 3, 7, 15, 13, 13, 35, 239, 331, 965, 1547, 1627, 6409, 7745, 30899, 36915, 59293}}, +{7231, 17, 12851, {1, 1, 1, 13, 27, 45, 23, 179, 193, 801, 381, 3783, 3551, 11855, 11041, 49911, 62101}}, +{7232, 17, 12868, {1, 1, 7, 3, 3, 31, 61, 5, 421, 939, 1637, 217, 389, 1797, 32141, 28817, 6997}}, +{7233, 17, 12871, {1, 3, 3, 5, 21, 31, 83, 65, 421, 577, 1137, 2561, 2943, 4171, 2803, 23325, 92315}}, +{7234, 17, 12886, {1, 1, 3, 3, 27, 33, 75, 81, 477, 3, 1903, 773, 5551, 10069, 7285, 58103, 98311}}, +{7235, 17, 12899, {1, 3, 7, 15, 1, 17, 95, 209, 65, 747, 1633, 581, 7395, 1393, 21795, 15735, 129757}}, +{7236, 17, 12923, {1, 3, 5, 3, 17, 3, 9, 131, 51, 693, 1571, 1865, 8137, 915, 13345, 35137, 59005}}, +{7237, 17, 12926, {1, 1, 3, 7, 23, 27, 61, 163, 449, 87, 717, 1075, 4309, 4887, 11741, 24549, 96729}}, +{7238, 17, 12932, {1, 3, 7, 13, 21, 5, 3, 97, 191, 999, 1193, 1215, 5907, 10491, 2281, 6455, 68625}}, +{7239, 17, 12935, {1, 1, 5, 7, 9, 9, 101, 5, 375, 137, 1473, 1265, 5307, 259, 20699, 25367, 129393}}, +{7240, 17, 12939, {1, 3, 7, 7, 21, 1, 77, 65, 23, 139, 945, 491, 1069, 253, 12335, 26861, 129467}}, +{7241, 17, 12942, {1, 1, 3, 9, 15, 33, 85, 225, 45, 311, 281, 1601, 7325, 12265, 2591, 51955, 130681}}, +{7242, 17, 12953, {1, 1, 1, 3, 27, 33, 17, 89, 495, 91, 527, 3347, 7883, 9481, 28731, 54729, 15265}}, +{7243, 17, 12959, {1, 1, 3, 3, 9, 47, 115, 161, 299, 493, 1857, 3597, 7175, 15603, 11523, 33837, 57557}}, +{7244, 17, 12960, {1, 3, 7, 3, 15, 47, 127, 195, 391, 869, 99, 429, 7125, 10413, 5063, 61845, 71843}}, +{7245, 17, 13002, {1, 3, 3, 1, 7, 31, 27, 69, 7, 83, 315, 2749, 5693, 13377, 28091, 13065, 111029}}, +{7246, 17, 13004, {1, 1, 3, 15, 15, 45, 125, 229, 459, 611, 1167, 3375, 3587, 81, 9275, 45327, 39749}}, +{7247, 17, 13016, {1, 3, 7, 11, 9, 3, 43, 161, 221, 209, 51, 1475, 3577, 13973, 15285, 35553, 83935}}, +{7248, 17, 13021, {1, 1, 7, 9, 15, 55, 25, 119, 39, 537, 317, 1331, 2161, 1791, 19221, 63459, 124595}}, +{7249, 17, 13035, {1, 1, 1, 11, 9, 7, 113, 187, 295, 67, 1795, 113, 119, 9127, 32119, 7719, 67591}}, +{7250, 17, 13038, {1, 3, 7, 13, 1, 53, 17, 19, 331, 711, 359, 2945, 5847, 7237, 23617, 17411, 2203}}, +{7251, 17, 13052, {1, 3, 3, 7, 21, 63, 115, 159, 225, 161, 1255, 2381, 7411, 95, 1625, 30493, 56685}}, +{7252, 17, 13058, {1, 1, 5, 9, 13, 57, 5, 107, 195, 271, 677, 2081, 6027, 11091, 14171, 19007, 102119}}, +{7253, 17, 13069, {1, 3, 3, 3, 19, 13, 31, 155, 209, 89, 955, 523, 615, 5319, 16079, 9289, 49135}}, +{7254, 17, 13082, {1, 3, 1, 13, 1, 31, 69, 143, 329, 813, 635, 891, 2967, 5563, 19643, 35813, 14345}}, +{7255, 17, 13093, {1, 1, 5, 5, 17, 47, 97, 49, 123, 997, 15, 3685, 3925, 4973, 11195, 17115, 63709}}, +{7256, 17, 13094, {1, 1, 7, 13, 13, 17, 99, 149, 309, 281, 329, 905, 6487, 4495, 31831, 24413, 26431}}, +{7257, 17, 13100, {1, 1, 5, 5, 5, 47, 113, 115, 61, 157, 955, 2323, 4445, 229, 24049, 14753, 15189}}, +{7258, 17, 13115, {1, 3, 7, 15, 25, 21, 13, 137, 377, 45, 629, 1339, 8037, 5073, 24741, 48589, 28953}}, +{7259, 17, 13125, {1, 3, 3, 9, 3, 41, 7, 101, 333, 59, 1213, 1871, 3993, 11261, 4403, 42785, 58753}}, +{7260, 17, 13132, {1, 3, 1, 7, 5, 33, 87, 73, 317, 575, 1459, 905, 1033, 14179, 19595, 30269, 103853}}, +{7261, 17, 13143, {1, 1, 1, 1, 19, 49, 63, 181, 227, 401, 695, 1811, 2383, 3835, 14379, 30685, 114731}}, +{7262, 17, 13144, {1, 1, 5, 15, 9, 41, 35, 91, 357, 659, 155, 3725, 6509, 405, 25449, 37719, 6013}}, +{7263, 17, 13153, {1, 1, 7, 3, 11, 59, 33, 151, 291, 393, 741, 3961, 2787, 993, 10361, 11737, 42047}}, +{7264, 17, 13160, {1, 3, 7, 3, 15, 15, 55, 59, 419, 203, 55, 801, 2719, 15487, 13213, 58473, 50315}}, +{7265, 17, 13165, {1, 3, 7, 13, 17, 21, 113, 111, 159, 163, 711, 1135, 1133, 15519, 30515, 55777, 25025}}, +{7266, 17, 13173, {1, 1, 3, 5, 13, 25, 23, 3, 93, 873, 559, 1815, 3381, 5311, 14365, 34349, 17333}}, +{7267, 17, 13174, {1, 3, 5, 7, 15, 43, 85, 33, 23, 903, 1247, 3279, 1393, 12059, 19251, 19389, 5097}}, +{7268, 17, 13187, {1, 3, 1, 11, 21, 59, 3, 153, 403, 95, 1939, 2679, 419, 9035, 31219, 2897, 15727}}, +{7269, 17, 13190, {1, 3, 5, 1, 11, 21, 35, 169, 453, 15, 791, 3931, 1021, 16321, 6033, 10639, 16173}}, +{7270, 17, 13204, {1, 3, 1, 11, 7, 57, 39, 61, 381, 465, 451, 2863, 575, 5597, 31041, 8625, 82373}}, +{7271, 17, 13218, {1, 1, 3, 5, 13, 5, 63, 1, 75, 245, 1305, 285, 3367, 10107, 5853, 35275, 128255}}, +{7272, 17, 13247, {1, 1, 1, 3, 1, 57, 21, 91, 139, 669, 765, 1867, 2153, 10347, 26119, 35517, 4725}}, +{7273, 17, 13250, {1, 3, 5, 1, 21, 41, 59, 247, 473, 1015, 975, 485, 2161, 11941, 10341, 35245, 55587}}, +{7274, 17, 13262, {1, 1, 5, 9, 7, 59, 33, 149, 97, 619, 393, 3613, 6037, 10895, 19461, 15975, 47919}}, +{7275, 17, 13267, {1, 3, 3, 15, 7, 17, 95, 13, 147, 361, 915, 2585, 4483, 3159, 12255, 44685, 116163}}, +{7276, 17, 13274, {1, 3, 1, 15, 27, 31, 75, 31, 423, 233, 1453, 2815, 3633, 6531, 25721, 29649, 80645}}, +{7277, 17, 13304, {1, 3, 3, 3, 19, 7, 73, 33, 163, 495, 1483, 2277, 6455, 6523, 9331, 21869, 52175}}, +{7278, 17, 13309, {1, 3, 5, 13, 5, 1, 63, 35, 335, 189, 713, 2997, 3277, 10049, 4681, 16753, 17107}}, +{7279, 17, 13315, {1, 3, 5, 9, 3, 55, 29, 171, 395, 585, 671, 1875, 4449, 12895, 5455, 11023, 106189}}, +{7280, 17, 13317, {1, 3, 5, 3, 25, 53, 33, 169, 109, 285, 787, 861, 5549, 5171, 15293, 2977, 14559}}, +{7281, 17, 13324, {1, 3, 7, 1, 21, 25, 97, 115, 1, 999, 1033, 3471, 129, 16093, 495, 16859, 34615}}, +{7282, 17, 13332, {1, 3, 5, 9, 13, 5, 109, 41, 57, 957, 231, 3771, 2917, 15649, 8869, 14857, 64943}}, +{7283, 17, 13342, {1, 1, 7, 7, 21, 41, 101, 59, 167, 441, 997, 2951, 7891, 16325, 12669, 53829, 100705}}, +{7284, 17, 13346, {1, 1, 7, 9, 19, 59, 23, 141, 193, 237, 1067, 1823, 3351, 3239, 3135, 9275, 37069}}, +{7285, 17, 13355, {1, 3, 3, 9, 3, 17, 95, 73, 19, 231, 779, 3065, 2245, 2967, 24971, 62589, 16729}}, +{7286, 17, 13358, {1, 3, 3, 13, 25, 19, 117, 147, 443, 123, 157, 2037, 327, 14715, 5693, 54641, 33325}}, +{7287, 17, 13360, {1, 3, 1, 9, 21, 21, 21, 125, 49, 787, 767, 2831, 511, 2461, 31537, 27155, 44053}}, +{7288, 17, 13369, {1, 3, 7, 9, 31, 19, 125, 67, 119, 465, 287, 1869, 3979, 15723, 21069, 8581, 66939}}, +{7289, 17, 13372, {1, 1, 1, 11, 7, 37, 123, 237, 353, 499, 113, 3829, 217, 4751, 7385, 20343, 83699}}, +{7290, 17, 13398, {1, 3, 7, 13, 9, 3, 53, 27, 487, 87, 35, 2645, 3481, 14409, 27875, 31695, 78489}}, +{7291, 17, 13404, {1, 3, 3, 13, 9, 43, 67, 51, 153, 83, 591, 1991, 1787, 11973, 7273, 34801, 47199}}, +{7292, 17, 13407, {1, 3, 7, 1, 15, 53, 71, 11, 205, 853, 2011, 581, 1281, 7819, 23083, 33731, 74951}}, +{7293, 17, 13414, {1, 1, 5, 5, 17, 63, 109, 219, 225, 997, 1251, 3287, 1441, 13489, 22723, 45191, 50249}}, +{7294, 17, 13426, {1, 1, 5, 3, 13, 1, 43, 53, 293, 685, 1369, 1515, 7479, 3233, 20007, 65235, 102467}}, +{7295, 17, 13432, {1, 3, 5, 7, 29, 45, 63, 45, 219, 445, 2047, 317, 7553, 325, 1465, 949, 35163}}, +{7296, 17, 13466, {1, 1, 3, 9, 7, 31, 73, 211, 501, 233, 1495, 701, 5857, 10763, 9743, 10289, 23801}}, +{7297, 17, 13481, {1, 3, 7, 3, 23, 47, 99, 61, 179, 833, 1425, 1275, 4467, 4367, 5567, 23513, 68677}}, +{7298, 17, 13490, {1, 1, 5, 5, 27, 33, 119, 229, 329, 51, 1025, 3167, 3405, 4039, 4135, 6655, 43771}}, +{7299, 17, 13496, {1, 3, 7, 15, 5, 49, 91, 55, 425, 15, 2003, 1571, 3539, 10375, 29645, 5889, 51887}}, +{7300, 17, 13504, {1, 1, 7, 3, 13, 55, 85, 91, 181, 723, 1941, 75, 4443, 11507, 7027, 14189, 50685}}, +{7301, 17, 13516, {1, 3, 5, 5, 29, 49, 13, 3, 97, 165, 41, 3039, 3325, 2161, 775, 38501, 42381}}, +{7302, 17, 13527, {1, 1, 5, 11, 9, 57, 47, 109, 9, 585, 375, 1839, 937, 6877, 29847, 60163, 103081}}, +{7303, 17, 13533, {1, 1, 3, 13, 5, 47, 11, 195, 253, 235, 275, 2313, 163, 14683, 5681, 13381, 84553}}, +{7304, 17, 13537, {1, 3, 3, 15, 15, 1, 93, 157, 437, 557, 307, 1179, 6857, 3101, 16723, 50579, 69603}}, +{7305, 17, 13552, {1, 1, 5, 9, 11, 29, 23, 219, 337, 689, 1155, 2007, 6853, 6749, 20127, 13199, 48433}}, +{7306, 17, 13561, {1, 1, 1, 13, 1, 61, 73, 213, 335, 539, 903, 2719, 775, 2775, 29109, 33367, 3281}}, +{7307, 17, 13567, {1, 3, 1, 5, 15, 31, 65, 231, 439, 623, 1871, 2299, 5365, 10333, 9147, 2781, 63813}}, +{7308, 17, 13582, {1, 1, 3, 1, 1, 25, 23, 229, 173, 279, 181, 1299, 2893, 15475, 12473, 46097, 123387}}, +{7309, 17, 13587, {1, 1, 7, 13, 7, 43, 17, 187, 467, 113, 1293, 2013, 6091, 14621, 22195, 24079, 45379}}, +{7310, 17, 13589, {1, 3, 1, 7, 1, 7, 119, 159, 377, 11, 705, 2853, 3767, 13739, 23375, 25563, 73987}}, +{7311, 17, 13593, {1, 1, 3, 15, 21, 13, 111, 119, 401, 1005, 777, 1699, 2431, 15139, 27887, 28415, 71519}}, +{7312, 17, 13596, {1, 1, 7, 9, 1, 49, 19, 171, 297, 77, 1343, 1249, 5769, 13889, 21401, 24915, 17641}}, +{7313, 17, 13615, {1, 1, 7, 11, 31, 45, 51, 231, 123, 817, 13, 791, 6235, 2787, 475, 1717, 5071}}, +{7314, 17, 13617, {1, 3, 3, 13, 5, 9, 21, 129, 253, 731, 785, 2275, 7343, 7841, 5477, 8973, 101033}}, +{7315, 17, 13623, {1, 1, 7, 13, 23, 1, 119, 221, 293, 709, 2031, 3019, 1529, 2007, 10823, 43193, 82661}}, +{7316, 17, 13641, {1, 3, 1, 11, 29, 29, 87, 79, 415, 679, 1899, 3453, 7355, 8627, 28225, 41857, 106645}}, +{7317, 17, 13647, {1, 1, 5, 15, 9, 13, 21, 241, 491, 927, 999, 2131, 3501, 11063, 28595, 54691, 21297}}, +{7318, 17, 13650, {1, 1, 1, 3, 5, 41, 85, 89, 483, 309, 791, 825, 3043, 2715, 16573, 6551, 77875}}, +{7319, 17, 13659, {1, 3, 1, 1, 25, 21, 107, 123, 79, 1019, 821, 1251, 4943, 1429, 17843, 37013, 53285}}, +{7320, 17, 13671, {1, 1, 5, 3, 7, 5, 35, 123, 445, 315, 627, 2543, 1261, 13737, 15991, 36591, 18309}}, +{7321, 17, 13677, {1, 3, 3, 5, 25, 43, 65, 249, 309, 1023, 737, 1933, 4735, 7725, 12063, 53023, 126677}}, +{7322, 17, 13678, {1, 3, 1, 9, 13, 37, 77, 61, 179, 275, 277, 1431, 2869, 14563, 665, 60553, 7661}}, +{7323, 17, 13680, {1, 3, 5, 3, 29, 1, 127, 73, 363, 311, 1591, 3863, 6481, 4725, 8287, 61311, 39011}}, +{7324, 17, 13685, {1, 3, 1, 7, 13, 23, 115, 215, 385, 563, 1033, 2343, 5023, 11013, 12131, 26997, 48645}}, +{7325, 17, 13689, {1, 1, 5, 13, 3, 59, 41, 155, 263, 507, 1175, 2967, 7929, 8237, 11841, 15365, 51881}}, +{7326, 17, 13701, {1, 1, 3, 11, 19, 35, 89, 115, 121, 315, 1697, 2121, 1867, 6865, 23639, 26525, 44687}}, +{7327, 17, 13706, {1, 3, 5, 15, 9, 5, 125, 183, 149, 447, 309, 1743, 6089, 369, 16153, 63799, 57657}}, +{7328, 17, 13720, {1, 1, 1, 7, 7, 39, 89, 139, 457, 741, 1613, 2883, 5057, 12495, 18669, 55469, 97941}}, +{7329, 17, 13729, {1, 1, 5, 7, 29, 39, 97, 9, 481, 667, 1353, 3387, 2813, 16205, 8353, 22121, 92965}}, +{7330, 17, 13735, {1, 3, 7, 9, 11, 55, 79, 159, 349, 717, 829, 3157, 1457, 6199, 5861, 2553, 20387}}, +{7331, 17, 13736, {1, 1, 1, 11, 3, 51, 113, 53, 287, 109, 1717, 2405, 7207, 4473, 11145, 2549, 591}}, +{7332, 17, 13756, {1, 1, 3, 13, 3, 61, 31, 141, 217, 487, 299, 2755, 3389, 10053, 1105, 21129, 74203}}, +{7333, 17, 13759, {1, 1, 1, 3, 11, 55, 7, 113, 413, 449, 787, 3279, 5123, 16025, 15005, 12175, 6795}}, +{7334, 17, 13761, {1, 3, 1, 1, 25, 23, 107, 191, 3, 3, 49, 1083, 3275, 10385, 7989, 53739, 25505}}, +{7335, 17, 13771, {1, 1, 5, 13, 7, 17, 59, 13, 471, 147, 1627, 2119, 3555, 15555, 10333, 49363, 80959}}, +{7336, 17, 13782, {1, 1, 1, 15, 23, 33, 61, 191, 207, 939, 45, 2781, 71, 9661, 28433, 13089, 76419}}, +{7337, 17, 13786, {1, 3, 3, 7, 29, 47, 111, 19, 315, 381, 851, 1303, 2627, 6255, 30369, 37723, 12949}}, +{7338, 17, 13798, {1, 1, 1, 13, 31, 43, 3, 193, 5, 99, 769, 2523, 1949, 129, 9693, 60535, 67059}}, +{7339, 17, 13810, {1, 1, 3, 15, 5, 33, 73, 149, 253, 985, 863, 1551, 4369, 5911, 8269, 35463, 117055}}, +{7340, 17, 13819, {1, 3, 1, 5, 27, 57, 3, 105, 253, 731, 119, 3287, 613, 4627, 22003, 56027, 123005}}, +{7341, 17, 13826, {1, 1, 3, 3, 27, 47, 67, 147, 495, 865, 1233, 3707, 2511, 2951, 7367, 15625, 86417}}, +{7342, 17, 13831, {1, 1, 7, 1, 7, 7, 13, 255, 457, 529, 953, 1481, 5565, 12495, 4723, 41615, 121829}}, +{7343, 17, 13837, {1, 3, 5, 11, 1, 51, 91, 153, 323, 609, 1353, 2995, 4035, 13835, 28619, 46217, 4967}}, +{7344, 17, 13846, {1, 1, 5, 7, 25, 59, 81, 101, 185, 709, 1249, 2285, 6579, 8655, 17563, 9707, 63845}}, +{7345, 17, 13856, {1, 3, 3, 9, 31, 25, 17, 19, 111, 627, 1187, 2621, 6529, 9457, 25027, 18069, 47559}}, +{7346, 17, 13862, {1, 3, 7, 15, 7, 15, 103, 201, 391, 1023, 817, 535, 2713, 1317, 13469, 56043, 70847}}, +{7347, 17, 13866, {1, 1, 3, 7, 17, 57, 35, 99, 439, 367, 27, 2695, 3519, 8337, 14047, 58489, 69}}, +{7348, 17, 13885, {1, 1, 1, 3, 17, 23, 71, 189, 57, 39, 715, 1779, 3081, 14657, 21895, 59203, 31005}}, +{7349, 17, 13891, {1, 1, 7, 13, 1, 47, 69, 159, 353, 517, 271, 973, 5077, 15707, 11095, 19671, 3389}}, +{7350, 17, 13893, {1, 1, 7, 13, 25, 55, 115, 21, 43, 939, 1697, 101, 4751, 1993, 2389, 28353, 45251}}, +{7351, 17, 13905, {1, 3, 1, 15, 11, 57, 17, 49, 121, 419, 909, 121, 5047, 4235, 13051, 21529, 42097}}, +{7352, 17, 13908, {1, 1, 1, 3, 19, 37, 31, 233, 251, 175, 929, 1527, 7527, 3605, 17075, 61053, 56235}}, +{7353, 17, 13912, {1, 1, 1, 3, 9, 5, 117, 131, 251, 475, 1695, 1381, 2445, 5921, 14921, 937, 80791}}, +{7354, 17, 13917, {1, 1, 3, 9, 11, 5, 31, 215, 37, 567, 1537, 2183, 3291, 1601, 14025, 48807, 7243}}, +{7355, 17, 13918, {1, 3, 1, 9, 7, 13, 81, 249, 321, 473, 1419, 3977, 7037, 14191, 10865, 56131, 43225}}, +{7356, 17, 13946, {1, 1, 1, 13, 15, 23, 31, 69, 449, 491, 1461, 729, 7955, 4003, 16817, 37273, 72025}}, +{7357, 17, 13948, {1, 1, 5, 13, 7, 41, 93, 169, 347, 1013, 301, 2813, 1455, 13187, 10769, 60807, 46333}}, +{7358, 17, 13964, {1, 1, 5, 3, 23, 15, 1, 161, 29, 35, 415, 235, 93, 14543, 29585, 29657, 36489}}, +{7359, 17, 13970, {1, 3, 1, 3, 31, 63, 39, 235, 153, 549, 43, 147, 2317, 3537, 25561, 58287, 58725}}, +{7360, 17, 13975, {1, 1, 3, 5, 5, 11, 59, 97, 349, 307, 501, 1701, 4243, 13717, 17419, 23387, 29533}}, +{7361, 17, 13979, {1, 3, 1, 7, 7, 19, 33, 243, 67, 353, 2023, 3111, 7173, 10979, 28117, 40175, 45337}}, +{7362, 17, 13997, {1, 1, 1, 5, 15, 59, 55, 135, 107, 543, 1743, 2695, 3293, 111, 32629, 8249, 52273}}, +{7363, 17, 14000, {1, 3, 5, 13, 15, 57, 39, 79, 5, 451, 571, 1445, 1393, 2125, 31713, 59655, 20897}}, +{7364, 17, 14006, {1, 1, 3, 11, 29, 61, 1, 37, 173, 513, 1779, 2649, 3289, 4679, 2039, 47587, 28973}}, +{7365, 17, 14020, {1, 1, 5, 5, 15, 19, 17, 143, 387, 359, 275, 625, 7383, 15537, 10311, 40005, 20729}}, +{7366, 17, 14023, {1, 1, 3, 9, 7, 23, 71, 179, 85, 447, 345, 3459, 2857, 8331, 5489, 62207, 64933}}, +{7367, 17, 14024, {1, 1, 1, 1, 11, 61, 47, 131, 213, 611, 701, 713, 1269, 9563, 25223, 50697, 88679}}, +{7368, 17, 14029, {1, 1, 5, 15, 21, 5, 77, 59, 455, 243, 459, 2809, 13, 9325, 32047, 3939, 48389}}, +{7369, 17, 14035, {1, 3, 7, 1, 21, 53, 111, 225, 407, 119, 713, 3635, 1539, 15321, 29827, 36069, 74483}}, +{7370, 17, 14044, {1, 1, 5, 13, 7, 45, 75, 43, 191, 715, 169, 759, 33, 11329, 1069, 36103, 28055}}, +{7371, 17, 14047, {1, 3, 7, 5, 7, 13, 7, 35, 27, 391, 517, 1439, 5699, 1067, 23857, 7293, 66167}}, +{7372, 17, 14058, {1, 1, 7, 11, 3, 31, 1, 83, 299, 345, 65, 669, 1529, 7569, 28959, 50561, 69493}}, +{7373, 17, 14066, {1, 3, 1, 5, 25, 25, 43, 149, 83, 225, 1589, 1691, 7777, 773, 10421, 49523, 23533}}, +{7374, 17, 14075, {1, 1, 5, 11, 25, 29, 81, 11, 497, 43, 951, 2551, 821, 13805, 12315, 61299, 81397}}, +{7375, 17, 14080, {1, 3, 1, 9, 29, 23, 109, 123, 235, 255, 1519, 3289, 7761, 14575, 11851, 1719, 51655}}, +{7376, 17, 14095, {1, 3, 5, 15, 21, 49, 13, 43, 87, 517, 687, 1457, 1501, 15959, 31907, 13771, 69379}}, +{7377, 17, 14100, {1, 1, 5, 3, 21, 11, 87, 9, 343, 317, 845, 1663, 7933, 14063, 24915, 31487, 17445}}, +{7378, 17, 14114, {1, 1, 3, 13, 21, 31, 87, 99, 185, 333, 993, 3899, 971, 2851, 23643, 195, 66957}}, +{7379, 17, 14116, {1, 1, 1, 15, 19, 47, 23, 1, 67, 57, 165, 3903, 421, 10561, 11621, 13815, 10349}}, +{7380, 17, 14123, {1, 3, 5, 11, 9, 19, 73, 17, 229, 913, 459, 3809, 2667, 9775, 3693, 52945, 90837}}, +{7381, 17, 14134, {1, 1, 5, 15, 3, 25, 109, 131, 507, 637, 1615, 859, 6785, 14891, 24801, 39095, 79557}}, +{7382, 17, 14143, {1, 1, 5, 7, 1, 51, 71, 251, 19, 799, 835, 1119, 2349, 15083, 16509, 55621, 123501}}, +{7383, 17, 14151, {1, 3, 5, 9, 13, 39, 127, 1, 233, 37, 735, 3307, 5163, 4529, 5961, 12893, 103641}}, +{7384, 17, 14160, {1, 1, 7, 5, 23, 15, 49, 123, 511, 201, 2025, 289, 3847, 15755, 24279, 52543, 42017}}, +{7385, 17, 14163, {1, 1, 5, 3, 9, 61, 19, 37, 3, 361, 1065, 2971, 2517, 1259, 27359, 3823, 60181}}, +{7386, 17, 14179, {1, 3, 1, 7, 15, 17, 57, 249, 57, 979, 147, 2407, 2579, 3159, 8467, 8433, 72873}}, +{7387, 17, 14181, {1, 1, 3, 1, 25, 7, 47, 117, 449, 321, 143, 3867, 165, 7961, 27597, 10033, 2437}}, +{7388, 17, 14193, {1, 3, 5, 13, 19, 49, 1, 83, 477, 549, 509, 2911, 1559, 14017, 10469, 62171, 82829}}, +{7389, 17, 14209, {1, 3, 3, 7, 27, 21, 15, 63, 31, 45, 1223, 3903, 5469, 11983, 29627, 27453, 32019}}, +{7390, 17, 14210, {1, 1, 7, 7, 9, 9, 7, 77, 349, 467, 61, 3465, 6921, 15761, 15179, 38649, 2469}}, +{7391, 17, 14224, {1, 3, 1, 13, 9, 59, 55, 67, 271, 617, 643, 4071, 7963, 8153, 5121, 43917, 26219}}, +{7392, 17, 14245, {1, 1, 3, 7, 29, 21, 63, 103, 327, 623, 931, 1511, 3125, 229, 28949, 61315, 72667}}, +{7393, 17, 14249, {1, 3, 7, 1, 19, 37, 49, 63, 403, 885, 161, 121, 1447, 9227, 15019, 50049, 26939}}, +{7394, 17, 14255, {1, 3, 3, 3, 23, 57, 95, 79, 485, 173, 93, 835, 7161, 11247, 3485, 5759, 36393}}, +{7395, 17, 14267, {1, 3, 7, 13, 23, 33, 5, 97, 235, 531, 313, 2925, 2223, 847, 18591, 15477, 3129}}, +{7396, 17, 14270, {1, 1, 3, 13, 25, 25, 101, 183, 477, 947, 1251, 2631, 7987, 13417, 23759, 55305, 123817}}, +{7397, 17, 14277, {1, 1, 5, 9, 27, 63, 49, 137, 179, 861, 33, 2375, 3827, 6485, 19689, 7867, 124429}}, +{7398, 17, 14305, {1, 3, 7, 3, 15, 43, 63, 103, 45, 947, 1837, 833, 7055, 7487, 19669, 12045, 78377}}, +{7399, 17, 14308, {1, 3, 5, 3, 29, 35, 57, 19, 471, 985, 1147, 741, 5403, 10057, 25375, 50889, 82719}}, +{7400, 17, 14312, {1, 3, 3, 1, 17, 19, 111, 13, 121, 821, 1831, 4043, 123, 9529, 1511, 10917, 105961}}, +{7401, 17, 14325, {1, 1, 3, 11, 1, 43, 23, 75, 345, 9, 1379, 2157, 5887, 1197, 14849, 17103, 91925}}, +{7402, 17, 14332, {1, 1, 3, 3, 19, 11, 1, 179, 343, 1023, 1801, 915, 255, 519, 5787, 32913, 43471}}, +{7403, 17, 14345, {1, 3, 5, 5, 3, 3, 3, 211, 461, 55, 851, 3165, 2903, 15077, 8537, 2037, 109057}}, +{7404, 17, 14354, {1, 1, 7, 15, 7, 7, 43, 249, 27, 511, 1369, 735, 6093, 12575, 26675, 21745, 117053}}, +{7405, 17, 14372, {1, 1, 5, 7, 21, 53, 45, 83, 415, 645, 325, 4027, 5181, 8485, 1917, 55623, 45203}}, +{7406, 17, 14387, {1, 1, 3, 15, 7, 1, 121, 221, 387, 403, 1877, 1671, 2113, 2379, 5667, 39867, 8079}}, +{7407, 17, 14390, {1, 1, 1, 7, 5, 29, 35, 77, 197, 661, 1859, 2539, 4045, 13497, 305, 44987, 31215}}, +{7408, 17, 14402, {1, 1, 5, 5, 13, 37, 13, 85, 287, 347, 579, 2283, 7911, 5463, 21141, 9035, 105067}}, +{7409, 17, 14408, {1, 1, 1, 9, 17, 17, 63, 97, 57, 629, 1917, 1133, 779, 12365, 17127, 52549, 18755}}, +{7410, 17, 14413, {1, 1, 7, 11, 7, 17, 65, 137, 485, 841, 653, 2921, 4935, 16273, 23333, 7399, 43129}}, +{7411, 17, 14431, {1, 3, 1, 11, 31, 55, 93, 225, 319, 35, 947, 1909, 7733, 8303, 20739, 55713, 6633}}, +{7412, 17, 14438, {1, 1, 1, 3, 11, 25, 1, 165, 305, 275, 607, 3845, 5203, 1989, 13803, 597, 39751}}, +{7413, 17, 14447, {1, 1, 5, 11, 31, 43, 83, 237, 453, 59, 457, 741, 411, 15895, 18891, 30133, 66767}}, +{7414, 17, 14455, {1, 3, 5, 11, 3, 23, 65, 81, 299, 527, 1057, 2731, 3839, 6023, 28887, 64929, 41405}}, +{7415, 17, 14461, {1, 3, 1, 1, 3, 5, 11, 169, 123, 957, 1495, 1717, 4079, 13239, 28339, 33677, 30591}}, +{7416, 17, 14466, {1, 1, 7, 15, 3, 1, 37, 245, 169, 273, 2039, 415, 6555, 13131, 11181, 62179, 36885}}, +{7417, 17, 14480, {1, 1, 3, 11, 1, 55, 19, 19, 425, 113, 1367, 2101, 5581, 985, 2475, 53983, 68999}}, +{7418, 17, 14490, {1, 1, 5, 9, 5, 33, 101, 193, 303, 579, 1265, 2791, 479, 12083, 17609, 31801, 113089}}, +{7419, 17, 14492, {1, 1, 3, 3, 17, 61, 59, 249, 81, 821, 1, 431, 5327, 8675, 23469, 15349, 67711}}, +{7420, 17, 14508, {1, 1, 7, 9, 31, 51, 89, 19, 469, 843, 561, 559, 4823, 7803, 31699, 44537, 56835}}, +{7421, 17, 14513, {1, 3, 7, 9, 11, 57, 27, 43, 469, 655, 433, 3081, 6719, 6651, 30823, 61503, 110711}}, +{7422, 17, 14516, {1, 3, 5, 11, 9, 53, 25, 147, 61, 533, 1369, 879, 7935, 13829, 26655, 17327, 52983}}, +{7423, 17, 14519, {1, 3, 7, 11, 15, 27, 97, 175, 435, 53, 75, 807, 549, 5277, 1831, 19421, 55669}}, +{7424, 17, 14525, {1, 1, 7, 15, 23, 5, 99, 133, 485, 587, 65, 2585, 7667, 2783, 19437, 52769, 1587}}, +{7425, 17, 14534, {1, 1, 7, 7, 13, 39, 111, 165, 489, 355, 1963, 333, 2993, 5233, 9173, 18951, 93737}}, +{7426, 17, 14537, {1, 1, 5, 7, 1, 29, 67, 135, 427, 91, 53, 3109, 3745, 9529, 17567, 42361, 84577}}, +{7427, 17, 14543, {1, 3, 5, 1, 31, 35, 59, 181, 87, 345, 1975, 781, 603, 16365, 19453, 9933, 112739}}, +{7428, 17, 14545, {1, 3, 3, 1, 31, 41, 127, 35, 263, 403, 1811, 383, 1523, 8477, 5973, 41569, 99309}}, +{7429, 17, 14552, {1, 3, 7, 7, 5, 25, 11, 201, 231, 679, 519, 2481, 7415, 12397, 21265, 49419, 13903}}, +{7430, 17, 14562, {1, 1, 7, 5, 1, 11, 63, 221, 327, 509, 419, 871, 7891, 11835, 11099, 10669, 43853}}, +{7431, 17, 14571, {1, 1, 5, 11, 19, 11, 37, 105, 265, 513, 1013, 707, 6083, 14571, 17573, 7645, 5363}}, +{7432, 17, 14574, {1, 1, 1, 13, 19, 19, 67, 93, 113, 509, 1013, 4037, 1939, 7015, 24487, 57183, 123463}}, +{7433, 17, 14582, {1, 1, 1, 1, 21, 17, 95, 25, 261, 1005, 685, 691, 4467, 14723, 24043, 32287, 19651}}, +{7434, 17, 14611, {1, 3, 1, 15, 15, 15, 57, 191, 27, 719, 229, 1977, 241, 9021, 21335, 30967, 81207}}, +{7435, 17, 14614, {1, 3, 1, 9, 23, 61, 103, 67, 361, 925, 811, 1007, 5707, 11479, 5907, 3897, 65141}}, +{7436, 17, 14620, {1, 3, 5, 9, 17, 61, 11, 15, 351, 715, 939, 2141, 4857, 8397, 9693, 26845, 120007}}, +{7437, 17, 14633, {1, 3, 1, 5, 19, 55, 99, 19, 291, 309, 287, 1969, 4341, 7579, 30909, 37277, 54927}}, +{7438, 17, 14641, {1, 3, 7, 3, 19, 29, 43, 163, 367, 753, 1733, 1463, 7927, 10671, 16817, 41229, 113887}}, +{7439, 17, 14648, {1, 3, 7, 1, 11, 51, 39, 207, 283, 73, 1423, 2473, 7593, 3581, 30179, 6369, 112217}}, +{7440, 17, 14671, {1, 1, 3, 15, 15, 25, 43, 5, 271, 611, 959, 537, 303, 3659, 18073, 8147, 81531}}, +{7441, 17, 14674, {1, 3, 7, 1, 27, 55, 77, 11, 367, 209, 1967, 3409, 935, 5309, 18857, 46225, 8367}}, +{7442, 17, 14689, {1, 1, 5, 11, 11, 63, 75, 73, 43, 869, 2021, 3285, 269, 9113, 32699, 2091, 17327}}, +{7443, 17, 14690, {1, 1, 5, 11, 9, 25, 31, 245, 109, 805, 1645, 3607, 817, 9571, 12767, 65441, 129977}}, +{7444, 17, 14692, {1, 3, 7, 5, 11, 61, 67, 223, 433, 387, 935, 1615, 7915, 6133, 24087, 55323, 100619}}, +{7445, 17, 14699, {1, 1, 1, 15, 25, 61, 7, 39, 311, 353, 183, 33, 2591, 4951, 31377, 9081, 9707}}, +{7446, 17, 14710, {1, 1, 3, 3, 1, 9, 65, 229, 185, 47, 1255, 1365, 2231, 6843, 26927, 27195, 60651}}, +{7447, 17, 14719, {1, 1, 7, 5, 7, 25, 91, 133, 159, 737, 1767, 3117, 7321, 6159, 3361, 27793, 33473}}, +{7448, 17, 14730, {1, 3, 7, 3, 11, 7, 5, 125, 369, 951, 1277, 65, 7703, 1817, 11773, 25657, 67045}}, +{7449, 17, 14732, {1, 1, 3, 9, 21, 27, 21, 41, 131, 605, 1, 119, 1553, 1361, 31973, 43135, 119321}}, +{7450, 17, 14743, {1, 3, 7, 1, 25, 63, 55, 173, 323, 403, 1401, 1367, 3455, 15335, 13045, 20759, 8309}}, +{7451, 17, 14744, {1, 1, 3, 5, 3, 61, 59, 7, 39, 439, 721, 2829, 3035, 2293, 32015, 28509, 104831}}, +{7452, 17, 14750, {1, 3, 5, 1, 29, 35, 71, 87, 351, 917, 1661, 547, 4501, 7107, 5493, 17833, 130729}}, +{7453, 17, 14759, {1, 1, 5, 5, 7, 5, 69, 57, 319, 595, 1749, 3789, 1437, 6327, 24089, 7387, 125109}}, +{7454, 17, 14763, {1, 3, 5, 9, 15, 53, 95, 59, 217, 37, 1561, 401, 5259, 4361, 1049, 3437, 30559}}, +{7455, 17, 14768, {1, 3, 7, 13, 15, 15, 107, 167, 475, 157, 1565, 2219, 1891, 1433, 11829, 43433, 48111}}, +{7456, 17, 14773, {1, 1, 1, 3, 11, 41, 25, 211, 243, 355, 1831, 2093, 2747, 2523, 9885, 9503, 120089}}, +{7457, 17, 14777, {1, 3, 7, 5, 11, 3, 1, 231, 243, 541, 341, 887, 3567, 14759, 26763, 35705, 29417}}, +{7458, 17, 14786, {1, 1, 7, 13, 17, 35, 117, 177, 81, 361, 1425, 2437, 6821, 1061, 15019, 19135, 106007}}, +{7459, 17, 14795, {1, 3, 3, 11, 19, 5, 39, 23, 367, 9, 879, 3583, 2527, 14375, 28359, 27393, 55041}}, +{7460, 17, 14800, {1, 1, 7, 11, 9, 41, 63, 125, 33, 337, 587, 3939, 2635, 4559, 1007, 38991, 35651}}, +{7461, 17, 14812, {1, 1, 3, 1, 19, 11, 83, 13, 227, 649, 415, 1661, 3285, 55, 3683, 22319, 2127}}, +{7462, 17, 14816, {1, 3, 7, 13, 19, 49, 113, 129, 83, 5, 19, 1095, 6561, 11049, 3805, 11355, 84265}}, +{7463, 17, 14836, {1, 3, 1, 9, 19, 41, 111, 193, 429, 319, 67, 1717, 1819, 12959, 31449, 21035, 113161}}, +{7464, 17, 14840, {1, 1, 5, 11, 19, 19, 115, 237, 145, 681, 1525, 2215, 7915, 15529, 7533, 45981, 85461}}, +{7465, 17, 14856, {1, 1, 1, 1, 25, 3, 73, 207, 15, 69, 43, 1643, 7707, 12505, 27101, 40735, 6091}}, +{7466, 17, 14859, {1, 1, 5, 11, 21, 61, 119, 7, 37, 147, 1379, 3165, 6555, 3867, 24027, 45161, 93015}}, +{7467, 17, 14870, {1, 1, 3, 9, 9, 25, 51, 125, 511, 209, 75, 2849, 2299, 2901, 25157, 13079, 67733}}, +{7468, 17, 14873, {1, 3, 7, 9, 31, 49, 99, 21, 89, 1, 1391, 1741, 2733, 7283, 12087, 9287, 39713}}, +{7469, 17, 14879, {1, 1, 5, 5, 1, 5, 89, 109, 499, 343, 431, 401, 2023, 5541, 16615, 40059, 119195}}, +{7470, 17, 14880, {1, 3, 5, 15, 27, 27, 9, 159, 395, 31, 865, 2793, 55, 10961, 23123, 63731, 54385}}, +{7471, 17, 14889, {1, 3, 7, 1, 11, 47, 123, 239, 399, 383, 1497, 4075, 4659, 2911, 2101, 8295, 115717}}, +{7472, 17, 14892, {1, 1, 3, 1, 11, 63, 125, 171, 65, 15, 349, 753, 2981, 6713, 6219, 14093, 78797}}, +{7473, 17, 14895, {1, 1, 1, 13, 9, 15, 1, 113, 221, 867, 1907, 103, 1411, 27, 22743, 377, 116907}}, +{7474, 17, 14900, {1, 3, 1, 5, 27, 5, 27, 245, 221, 575, 2009, 1561, 4263, 11843, 28331, 12865, 10483}}, +{7475, 17, 14903, {1, 3, 7, 9, 1, 51, 119, 241, 439, 913, 1191, 2343, 2055, 10247, 18283, 40175, 63321}}, +{7476, 17, 14910, {1, 1, 3, 15, 21, 59, 45, 151, 485, 293, 981, 3523, 7689, 2789, 5003, 62383, 126221}}, +{7477, 17, 14912, {1, 1, 1, 1, 13, 15, 39, 201, 405, 513, 1721, 2077, 5995, 2433, 20421, 12695, 20393}}, +{7478, 17, 14942, {1, 3, 5, 15, 11, 35, 113, 133, 187, 583, 577, 291, 7563, 12959, 9383, 44255, 81763}}, +{7479, 17, 14948, {1, 3, 7, 15, 9, 55, 57, 227, 189, 595, 1311, 1131, 1323, 11347, 12777, 50963, 13827}}, +{7480, 17, 14957, {1, 3, 5, 3, 11, 49, 77, 157, 107, 959, 761, 1457, 7121, 3027, 9269, 26291, 125261}}, +{7481, 17, 14963, {1, 1, 5, 9, 23, 53, 125, 211, 303, 433, 1103, 41, 2643, 5325, 11885, 23825, 80415}}, +{7482, 17, 14975, {1, 1, 7, 1, 29, 25, 51, 107, 209, 165, 707, 1855, 7429, 1583, 5941, 47509, 90105}}, +{7483, 17, 14985, {1, 1, 3, 3, 1, 15, 121, 165, 181, 259, 1949, 3049, 3545, 3093, 5967, 49207, 37129}}, +{7484, 17, 14993, {1, 1, 5, 13, 9, 59, 93, 87, 57, 343, 389, 1995, 4001, 11495, 12909, 13491, 61759}}, +{7485, 17, 15003, {1, 3, 1, 5, 11, 27, 27, 133, 459, 733, 1845, 1795, 4613, 3397, 12313, 52839, 129583}}, +{7486, 17, 15010, {1, 3, 5, 3, 19, 1, 7, 145, 255, 337, 1649, 1473, 4113, 4425, 12233, 55477, 69157}}, +{7487, 17, 15022, {1, 1, 3, 1, 25, 27, 93, 59, 415, 437, 25, 1565, 319, 8981, 2453, 53579, 45033}}, +{7488, 17, 15039, {1, 3, 7, 1, 27, 49, 47, 233, 341, 101, 2017, 2827, 8085, 237, 6363, 61139, 88903}}, +{7489, 17, 15041, {1, 1, 1, 5, 23, 47, 65, 251, 423, 957, 1751, 3541, 5405, 1335, 22703, 12587, 60201}}, +{7490, 17, 15047, {1, 1, 3, 3, 5, 51, 85, 195, 423, 519, 1797, 3821, 5915, 12257, 5377, 62733, 41197}}, +{7491, 17, 15048, {1, 3, 7, 15, 3, 47, 97, 1, 5, 175, 1449, 1609, 6873, 12017, 5579, 2665, 58389}}, +{7492, 17, 15056, {1, 3, 3, 15, 19, 37, 35, 29, 79, 767, 21, 1279, 1997, 11611, 14381, 35607, 127701}}, +{7493, 17, 15066, {1, 3, 7, 7, 7, 43, 47, 33, 69, 155, 703, 1373, 1589, 6997, 8627, 50647, 16989}}, +{7494, 17, 15068, {1, 3, 1, 5, 13, 33, 69, 133, 399, 361, 1633, 321, 2077, 8857, 13419, 23227, 40003}}, +{7495, 17, 15075, {1, 1, 1, 15, 15, 9, 45, 181, 427, 1005, 341, 1697, 6423, 5727, 7163, 10401, 38957}}, +{7496, 17, 15077, {1, 1, 7, 1, 17, 5, 17, 95, 279, 171, 825, 2459, 5243, 10683, 1849, 32809, 8995}}, +{7497, 17, 15082, {1, 3, 5, 15, 27, 47, 103, 69, 69, 255, 961, 2173, 5297, 5987, 5863, 14311, 117569}}, +{7498, 17, 15096, {1, 1, 1, 11, 21, 27, 61, 239, 183, 1013, 1955, 3171, 4183, 965, 14885, 49605, 87851}}, +{7499, 17, 15102, {1, 1, 7, 9, 9, 53, 99, 211, 267, 803, 1545, 4011, 7613, 13889, 28277, 6817, 26515}}, +{7500, 17, 15116, {1, 1, 3, 9, 1, 19, 33, 227, 461, 679, 499, 1069, 837, 12129, 20779, 12937, 104367}}, +{7501, 17, 15122, {1, 3, 3, 15, 7, 3, 29, 245, 179, 1015, 1651, 3753, 4185, 15357, 17379, 52835, 51953}}, +{7502, 17, 15127, {1, 3, 3, 3, 3, 25, 95, 239, 263, 427, 1749, 183, 5251, 361, 32549, 24331, 30789}}, +{7503, 17, 15133, {1, 1, 7, 1, 5, 3, 79, 9, 403, 195, 1433, 385, 8105, 7893, 16415, 23253, 127837}}, +{7504, 17, 15137, {1, 3, 7, 3, 23, 45, 115, 27, 473, 241, 361, 1787, 4247, 13451, 5627, 32923, 29375}}, +{7505, 17, 15138, {1, 3, 7, 1, 5, 55, 43, 37, 481, 899, 51, 2459, 5005, 12365, 19261, 32797, 45843}}, +{7506, 17, 15149, {1, 3, 7, 5, 9, 41, 83, 163, 241, 899, 567, 231, 4897, 15175, 10329, 6625, 95927}}, +{7507, 17, 15152, {1, 3, 1, 1, 7, 51, 61, 55, 253, 315, 1893, 2635, 4061, 257, 14147, 36639, 24893}}, +{7508, 17, 15155, {1, 1, 5, 1, 13, 63, 115, 119, 205, 309, 277, 2191, 341, 4715, 13111, 58043, 51241}}, +{7509, 17, 15158, {1, 3, 1, 15, 17, 23, 89, 121, 205, 15, 295, 667, 421, 14071, 27719, 1335, 9887}}, +{7510, 17, 15187, {1, 3, 5, 5, 17, 49, 5, 93, 251, 613, 1029, 945, 1547, 10479, 20183, 26787, 120441}}, +{7511, 17, 15189, {1, 3, 3, 15, 17, 11, 63, 97, 499, 313, 881, 2233, 4287, 5141, 13841, 40725, 49285}}, +{7512, 17, 15190, {1, 3, 3, 11, 19, 33, 105, 203, 325, 337, 353, 1923, 7157, 8623, 23881, 4513, 71495}}, +{7513, 17, 15196, {1, 1, 5, 1, 3, 15, 119, 43, 85, 869, 1597, 2433, 845, 5065, 12813, 64849, 58491}}, +{7514, 17, 15199, {1, 3, 7, 7, 25, 63, 119, 93, 303, 665, 571, 1795, 5853, 13527, 12715, 36483, 57723}}, +{7515, 17, 15205, {1, 3, 7, 13, 19, 43, 55, 85, 189, 627, 1457, 3185, 3491, 1913, 13399, 30681, 69015}}, +{7516, 17, 15212, {1, 3, 5, 9, 5, 41, 51, 65, 147, 425, 569, 1317, 1557, 7631, 17243, 37847, 51161}}, +{7517, 17, 15236, {1, 1, 3, 7, 29, 39, 61, 127, 489, 89, 749, 2073, 195, 14367, 13533, 27403, 16365}}, +{7518, 17, 15243, {1, 3, 7, 15, 13, 35, 45, 157, 373, 415, 725, 779, 3559, 7489, 11369, 36501, 60761}}, +{7519, 17, 15246, {1, 3, 1, 3, 13, 45, 25, 215, 385, 709, 499, 3861, 761, 15597, 3335, 37013, 13173}}, +{7520, 17, 15260, {1, 1, 7, 1, 13, 49, 89, 135, 175, 1015, 67, 957, 4893, 9843, 13027, 14709, 59721}}, +{7521, 17, 15267, {1, 3, 3, 11, 19, 37, 109, 143, 135, 535, 1543, 3991, 189, 6739, 28087, 18845, 41819}}, +{7522, 17, 15274, {1, 1, 7, 5, 1, 7, 11, 5, 211, 251, 1593, 2527, 3539, 10471, 25595, 60119, 89213}}, +{7523, 17, 15279, {1, 1, 5, 7, 13, 51, 121, 167, 299, 403, 977, 521, 279, 15521, 15901, 935, 14065}}, +{7524, 17, 15281, {1, 1, 7, 13, 7, 21, 27, 205, 377, 801, 1365, 1567, 6651, 139, 14229, 30827, 50429}}, +{7525, 17, 15282, {1, 1, 1, 1, 17, 11, 75, 87, 217, 413, 1923, 1765, 2037, 14061, 12433, 30671, 24883}}, +{7526, 17, 15284, {1, 1, 5, 13, 17, 51, 91, 241, 95, 505, 349, 2689, 1117, 4435, 1713, 44501, 125619}}, +{7527, 17, 15291, {1, 1, 3, 15, 11, 21, 25, 59, 511, 353, 799, 91, 4517, 16005, 17061, 21841, 46311}}, +{7528, 17, 15293, {1, 1, 1, 5, 19, 53, 109, 177, 213, 373, 761, 453, 5753, 69, 3503, 49411, 111105}}, +{7529, 17, 15302, {1, 3, 1, 5, 21, 27, 103, 167, 109, 55, 1849, 3999, 7801, 4185, 9789, 7515, 124983}}, +{7530, 17, 15319, {1, 3, 7, 7, 25, 9, 65, 127, 141, 169, 1079, 3377, 691, 5119, 6629, 3517, 28963}}, +{7531, 17, 15329, {1, 1, 3, 11, 15, 61, 127, 35, 87, 891, 1459, 483, 6763, 16173, 5633, 6939, 63411}}, +{7532, 17, 15336, {1, 3, 5, 3, 7, 63, 111, 85, 415, 273, 1705, 4045, 5551, 2377, 29025, 16831, 90203}}, +{7533, 17, 15347, {1, 3, 5, 13, 7, 23, 103, 227, 477, 985, 1059, 1489, 7233, 1917, 10409, 38759, 86761}}, +{7534, 17, 15353, {1, 3, 5, 7, 31, 33, 75, 41, 355, 577, 225, 5, 897, 15653, 27415, 83, 14911}}, +{7535, 17, 15361, {1, 3, 5, 5, 23, 13, 5, 43, 165, 53, 149, 2005, 4545, 477, 17885, 21343, 35751}}, +{7536, 17, 15371, {1, 3, 3, 3, 25, 51, 33, 203, 291, 835, 241, 3255, 3709, 3573, 9859, 33027, 122801}}, +{7537, 17, 15397, {1, 3, 5, 7, 13, 7, 3, 141, 455, 67, 2003, 3411, 4717, 157, 29491, 14429, 44849}}, +{7538, 17, 15404, {1, 1, 1, 11, 3, 33, 101, 93, 219, 371, 1191, 1521, 1663, 8485, 24815, 38283, 120867}}, +{7539, 17, 15407, {1, 1, 3, 9, 25, 61, 71, 173, 69, 181, 1525, 2129, 2979, 19, 13489, 627, 72619}}, +{7540, 17, 15421, {1, 3, 1, 7, 25, 33, 39, 247, 221, 7, 683, 1837, 8037, 9125, 4259, 63049, 63021}}, +{7541, 17, 15433, {1, 3, 3, 9, 17, 15, 9, 189, 357, 707, 521, 711, 8189, 12945, 29675, 11851, 126813}}, +{7542, 17, 15441, {1, 3, 1, 1, 23, 3, 57, 133, 245, 301, 957, 239, 3139, 7949, 27133, 18229, 93015}}, +{7543, 17, 15442, {1, 1, 3, 1, 29, 23, 35, 87, 231, 257, 1997, 271, 3019, 3409, 10613, 42245, 111309}}, +{7544, 17, 15463, {1, 1, 3, 3, 1, 21, 17, 37, 393, 943, 791, 3101, 6715, 11907, 25369, 9061, 75381}}, +{7545, 17, 15472, {1, 1, 7, 7, 17, 31, 25, 7, 183, 819, 1265, 3343, 6845, 2039, 3779, 41861, 38309}}, +{7546, 17, 15478, {1, 1, 1, 5, 17, 25, 1, 41, 173, 995, 863, 3515, 1779, 2159, 28223, 64661, 40697}}, +{7547, 17, 15488, {1, 1, 3, 15, 29, 49, 81, 241, 511, 817, 1301, 3593, 6759, 7483, 8859, 30339, 106137}}, +{7548, 17, 15493, {1, 3, 1, 11, 17, 61, 95, 231, 3, 693, 37, 1091, 3111, 11941, 17475, 8073, 62373}}, +{7549, 17, 15498, {1, 1, 1, 3, 7, 25, 93, 7, 291, 957, 859, 2519, 241, 10963, 10403, 933, 50599}}, +{7550, 17, 15511, {1, 1, 7, 1, 7, 33, 121, 91, 369, 333, 229, 4073, 6063, 6491, 31711, 65061, 107843}}, +{7551, 17, 15521, {1, 1, 5, 15, 17, 1, 117, 195, 445, 547, 867, 2893, 4835, 6513, 29091, 60367, 33409}}, +{7552, 17, 15534, {1, 3, 3, 7, 15, 5, 125, 131, 165, 127, 207, 853, 5927, 3605, 17083, 44481, 111333}}, +{7553, 17, 15539, {1, 1, 1, 9, 3, 43, 75, 191, 319, 889, 1513, 3301, 1535, 4693, 10367, 12491, 43175}}, +{7554, 17, 15541, {1, 3, 5, 5, 29, 19, 75, 221, 393, 977, 1373, 1571, 7377, 1763, 18073, 11381, 101241}}, +{7555, 17, 15560, {1, 3, 1, 15, 3, 15, 73, 91, 165, 213, 1077, 1267, 2411, 15807, 3979, 12731, 86597}}, +{7556, 17, 15563, {1, 1, 3, 7, 3, 21, 5, 135, 95, 337, 1853, 1675, 2449, 12535, 18505, 60127, 76949}}, +{7557, 17, 15574, {1, 1, 7, 3, 15, 11, 63, 127, 329, 169, 1569, 675, 4801, 5859, 3243, 25811, 77841}}, +{7558, 17, 15578, {1, 1, 1, 9, 19, 13, 73, 119, 105, 537, 951, 1033, 5303, 5775, 815, 19277, 57607}}, +{7559, 17, 15584, {1, 3, 5, 5, 23, 21, 91, 231, 117, 1007, 1603, 841, 2595, 11223, 17171, 25963, 17049}}, +{7560, 17, 15593, {1, 1, 5, 11, 15, 43, 7, 229, 55, 129, 599, 993, 563, 15677, 16703, 36253, 17847}}, +{7561, 17, 15604, {1, 3, 1, 9, 25, 3, 109, 21, 87, 721, 1927, 3219, 3395, 3267, 9117, 13591, 89267}}, +{7562, 17, 15614, {1, 1, 1, 15, 11, 17, 47, 49, 125, 925, 333, 945, 2411, 10907, 12021, 47857, 84303}}, +{7563, 17, 15619, {1, 1, 1, 1, 23, 11, 99, 215, 105, 417, 823, 1289, 421, 12285, 17711, 35389, 1935}}, +{7564, 17, 15622, {1, 1, 1, 15, 27, 7, 23, 141, 7, 929, 147, 681, 5473, 4173, 28645, 42053, 83573}}, +{7565, 17, 15633, {1, 1, 1, 11, 5, 61, 71, 65, 287, 697, 1183, 3257, 7251, 14011, 21349, 42445, 4701}}, +{7566, 17, 15639, {1, 3, 5, 9, 5, 23, 45, 217, 369, 189, 1495, 107, 425, 10467, 4909, 64293, 17885}}, +{7567, 17, 15646, {1, 1, 3, 11, 21, 45, 75, 65, 57, 893, 783, 3429, 409, 13617, 483, 62489, 2919}}, +{7568, 17, 15673, {1, 1, 7, 3, 5, 61, 51, 255, 501, 839, 367, 1165, 7055, 8139, 23891, 18807, 20739}}, +{7569, 17, 15674, {1, 1, 3, 7, 23, 15, 97, 139, 323, 463, 921, 1529, 6655, 8697, 23577, 56761, 62023}}, +{7570, 17, 15684, {1, 1, 5, 11, 13, 11, 57, 225, 277, 713, 1427, 95, 1135, 7721, 30731, 32625, 107891}}, +{7571, 17, 15691, {1, 1, 5, 7, 23, 35, 39, 91, 291, 609, 919, 3325, 6843, 7659, 5603, 37471, 41495}}, +{7572, 17, 15694, {1, 1, 1, 1, 25, 11, 117, 15, 389, 589, 1345, 423, 6531, 9903, 20243, 9523, 22991}}, +{7573, 17, 15696, {1, 3, 5, 15, 29, 7, 57, 113, 387, 883, 1141, 3295, 2973, 4129, 16973, 33429, 109997}}, +{7574, 17, 15701, {1, 3, 5, 3, 25, 1, 73, 207, 353, 203, 1479, 985, 6373, 3079, 28403, 63675, 21787}}, +{7575, 17, 15705, {1, 3, 1, 5, 31, 39, 107, 197, 359, 45, 203, 559, 4721, 6579, 11305, 12957, 10061}}, +{7576, 17, 15715, {1, 3, 7, 15, 9, 3, 55, 153, 373, 981, 575, 827, 4757, 15743, 14295, 43875, 17847}}, +{7577, 17, 15729, {1, 3, 5, 1, 17, 1, 93, 87, 207, 997, 1695, 3643, 6973, 9507, 29309, 58531, 6849}}, +{7578, 17, 15730, {1, 3, 1, 11, 3, 39, 17, 241, 83, 931, 39, 3839, 6437, 5159, 28869, 61859, 96873}}, +{7579, 17, 15741, {1, 1, 5, 13, 29, 43, 71, 159, 261, 563, 695, 1205, 2273, 8077, 12569, 17187, 54369}}, +{7580, 17, 15745, {1, 3, 7, 5, 11, 57, 17, 31, 311, 1001, 1419, 3899, 6679, 15531, 28877, 28221, 105413}}, +{7581, 17, 15748, {1, 3, 3, 13, 23, 29, 127, 19, 345, 1003, 1571, 2219, 3199, 9903, 18701, 31865, 108879}}, +{7582, 17, 15757, {1, 3, 7, 13, 23, 51, 95, 43, 35, 439, 25, 323, 2365, 12407, 27525, 57795, 74495}}, +{7583, 17, 15765, {1, 1, 1, 1, 17, 43, 57, 185, 439, 929, 69, 813, 6205, 3139, 3853, 56967, 19073}}, +{7584, 17, 15766, {1, 3, 7, 1, 27, 5, 43, 211, 395, 113, 1675, 1505, 6171, 5169, 9991, 21641, 27101}}, +{7585, 17, 15775, {1, 3, 3, 1, 17, 41, 59, 131, 131, 339, 955, 1145, 5301, 4585, 20441, 43227, 23123}}, +{7586, 17, 15776, {1, 1, 7, 9, 9, 55, 61, 31, 71, 229, 963, 3247, 4677, 9595, 21715, 36391, 86997}}, +{7587, 17, 15779, {1, 1, 7, 5, 9, 17, 55, 179, 27, 229, 79, 1335, 5887, 1003, 22085, 34377, 51367}}, +{7588, 17, 15786, {1, 1, 1, 5, 11, 45, 15, 219, 411, 27, 1003, 1553, 303, 13571, 13985, 6801, 52407}}, +{7589, 17, 15788, {1, 3, 3, 7, 7, 55, 111, 255, 453, 409, 1863, 1449, 4103, 8725, 26923, 5017, 43657}}, +{7590, 17, 15813, {1, 1, 1, 15, 23, 3, 95, 57, 29, 727, 1111, 3309, 1089, 471, 16099, 11517, 51563}}, +{7591, 17, 15814, {1, 3, 1, 15, 17, 57, 83, 163, 251, 987, 1159, 2079, 3463, 13109, 7443, 8665, 123397}}, +{7592, 17, 15842, {1, 1, 7, 1, 27, 13, 35, 209, 471, 843, 1029, 1383, 5413, 2085, 13431, 26557, 47033}}, +{7593, 17, 15851, {1, 3, 1, 1, 21, 21, 83, 135, 303, 27, 1407, 1751, 331, 9207, 31891, 59287, 120687}}, +{7594, 17, 15862, {1, 1, 1, 9, 11, 35, 103, 157, 1, 855, 175, 3203, 4381, 3113, 27589, 4567, 31897}}, +{7595, 17, 15875, {1, 1, 3, 5, 21, 5, 123, 161, 301, 101, 909, 947, 6893, 15459, 29139, 49377, 94901}}, +{7596, 17, 15878, {1, 3, 7, 7, 21, 27, 5, 69, 427, 409, 1389, 3737, 847, 2775, 603, 1001, 87651}}, +{7597, 17, 15889, {1, 1, 3, 5, 1, 57, 109, 89, 99, 593, 581, 3527, 1557, 4971, 27523, 26909, 35787}}, +{7598, 17, 15896, {1, 1, 7, 3, 31, 19, 83, 65, 239, 919, 15, 2289, 4117, 9127, 6033, 49667, 89343}}, +{7599, 17, 15901, {1, 3, 7, 7, 9, 31, 87, 117, 195, 681, 1711, 1753, 2221, 10053, 1985, 6273, 21801}}, +{7600, 17, 15908, {1, 3, 1, 7, 21, 61, 53, 231, 309, 115, 1729, 3883, 6085, 4825, 31455, 50097, 59779}}, +{7601, 17, 15911, {1, 1, 1, 9, 29, 25, 45, 91, 145, 927, 147, 371, 2603, 12537, 17267, 59895, 128009}}, +{7602, 17, 15915, {1, 1, 1, 1, 15, 41, 63, 43, 167, 215, 15, 3387, 1811, 12391, 25721, 6961, 13701}}, +{7603, 17, 15938, {1, 1, 7, 1, 27, 63, 25, 85, 337, 799, 87, 2237, 4085, 14529, 11493, 60149, 86399}}, +{7604, 17, 15944, {1, 3, 1, 11, 1, 41, 103, 145, 279, 805, 1201, 823, 5411, 4227, 25999, 14373, 36295}}, +{7605, 17, 15950, {1, 1, 7, 3, 27, 51, 83, 105, 155, 657, 1879, 3869, 2559, 2939, 19785, 47167, 34503}}, +{7606, 17, 15955, {1, 3, 1, 5, 3, 31, 47, 241, 257, 15, 983, 4095, 3745, 3901, 1639, 5421, 81585}}, +{7607, 17, 15974, {1, 3, 3, 5, 31, 13, 127, 125, 175, 577, 1103, 3573, 6229, 13969, 6267, 19067, 3933}}, +{7608, 17, 15978, {1, 1, 7, 1, 31, 17, 15, 15, 411, 553, 1929, 3731, 1955, 11749, 21991, 39189, 124427}}, +{7609, 17, 15980, {1, 3, 5, 5, 19, 63, 93, 201, 491, 599, 1093, 767, 3411, 13087, 23569, 42981, 35757}}, +{7610, 17, 15983, {1, 1, 1, 15, 27, 7, 51, 101, 429, 939, 111, 781, 2055, 14227, 17821, 42097, 32485}}, +{7611, 17, 15991, {1, 3, 7, 13, 11, 21, 3, 161, 353, 389, 285, 2633, 6245, 7089, 21907, 40765, 88869}}, +{7612, 17, 16004, {1, 1, 5, 9, 7, 27, 101, 203, 243, 897, 1375, 1619, 5275, 12935, 22103, 38005, 65603}}, +{7613, 17, 16011, {1, 1, 5, 9, 13, 25, 15, 21, 447, 7, 947, 1613, 5055, 129, 18057, 58551, 6603}}, +{7614, 17, 16016, {1, 3, 7, 15, 17, 41, 11, 55, 103, 339, 349, 1813, 7423, 11837, 20641, 51951, 61615}}, +{7615, 17, 16019, {1, 3, 3, 15, 21, 59, 113, 3, 123, 689, 465, 3039, 4109, 3241, 30317, 65053, 117845}}, +{7616, 17, 16025, {1, 3, 3, 1, 31, 33, 73, 155, 245, 401, 473, 51, 1387, 489, 10573, 55401, 106733}}, +{7617, 17, 16041, {1, 3, 3, 1, 31, 37, 15, 139, 127, 201, 229, 1753, 7287, 9045, 18321, 63485, 26399}}, +{7618, 17, 16064, {1, 3, 5, 5, 5, 23, 93, 3, 125, 715, 1827, 419, 1213, 9031, 25139, 20771, 41345}}, +{7619, 17, 16067, {1, 3, 5, 15, 23, 15, 13, 145, 105, 477, 1131, 2699, 1929, 10447, 9655, 26791, 80101}}, +{7620, 17, 16074, {1, 1, 1, 13, 1, 35, 75, 73, 269, 851, 737, 1909, 6805, 11359, 28991, 52435, 83767}}, +{7621, 17, 16082, {1, 1, 7, 5, 11, 31, 31, 91, 111, 161, 1865, 2545, 133, 12215, 8957, 20671, 92975}}, +{7622, 17, 16103, {1, 1, 7, 5, 25, 53, 55, 121, 53, 457, 831, 2493, 339, 10955, 30783, 9095, 97921}}, +{7623, 17, 16109, {1, 1, 5, 3, 25, 33, 81, 51, 211, 737, 1865, 4039, 6931, 8473, 22459, 24885, 96355}}, +{7624, 17, 16122, {1, 3, 7, 13, 23, 5, 101, 171, 65, 793, 443, 411, 7629, 14791, 28633, 9055, 123763}}, +{7625, 17, 16149, {1, 3, 3, 1, 11, 7, 99, 79, 461, 481, 1689, 3777, 2125, 4783, 13061, 19537, 68109}}, +{7626, 17, 16170, {1, 1, 3, 11, 31, 53, 109, 7, 49, 925, 1017, 2371, 1537, 13557, 75, 40677, 49181}}, +{7627, 17, 16175, {1, 3, 3, 3, 9, 1, 95, 113, 189, 389, 377, 393, 6523, 3183, 6461, 30201, 66549}}, +{7628, 17, 16178, {1, 1, 7, 15, 13, 19, 41, 171, 475, 157, 949, 3245, 5581, 2783, 25263, 53023, 11155}}, +{7629, 17, 16189, {1, 3, 5, 7, 29, 63, 61, 65, 315, 595, 905, 899, 5059, 4243, 27287, 14023, 64213}}, +{7630, 17, 16202, {1, 3, 1, 3, 15, 37, 109, 161, 9, 867, 1023, 2513, 4593, 7747, 1505, 4801, 127091}}, +{7631, 17, 16204, {1, 3, 1, 7, 11, 59, 75, 129, 469, 695, 63, 2757, 6357, 8675, 6193, 23439, 66445}}, +{7632, 17, 16222, {1, 1, 3, 13, 17, 9, 47, 91, 161, 265, 139, 129, 6707, 9659, 8917, 54757, 77835}}, +{7633, 17, 16231, {1, 1, 3, 13, 19, 37, 113, 255, 99, 913, 1445, 487, 337, 1001, 16395, 37141, 66595}}, +{7634, 17, 16238, {1, 1, 1, 15, 3, 63, 69, 43, 185, 293, 1137, 2061, 2377, 8741, 26817, 5833, 7807}}, +{7635, 17, 16262, {1, 1, 1, 5, 3, 29, 39, 33, 263, 355, 597, 539, 5055, 13075, 8977, 19829, 88171}}, +{7636, 17, 16265, {1, 3, 7, 9, 17, 49, 125, 101, 447, 597, 1337, 559, 2807, 7925, 12421, 17427, 34815}}, +{7637, 17, 16276, {1, 3, 1, 9, 11, 57, 31, 163, 503, 925, 911, 3721, 2515, 8429, 25749, 55209, 90105}}, +{7638, 17, 16285, {1, 3, 5, 3, 21, 57, 119, 233, 319, 745, 563, 3057, 2683, 7063, 11513, 49157, 64561}}, +{7639, 17, 16313, {1, 1, 3, 9, 15, 21, 93, 99, 227, 479, 965, 51, 6941, 9887, 32409, 23171, 98387}}, +{7640, 17, 16314, {1, 3, 5, 5, 19, 1, 47, 49, 233, 931, 971, 2369, 2827, 1291, 18653, 725, 19791}}, +{7641, 17, 16321, {1, 1, 5, 15, 3, 7, 71, 251, 341, 861, 1203, 793, 7627, 10929, 10717, 10677, 49743}}, +{7642, 17, 16327, {1, 3, 1, 7, 3, 43, 9, 187, 247, 621, 1069, 2875, 1525, 4221, 18813, 35807, 117609}}, +{7643, 17, 16333, {1, 3, 3, 3, 29, 39, 83, 201, 205, 337, 231, 547, 2893, 2483, 6197, 26869, 18921}}, +{7644, 17, 16334, {1, 1, 7, 3, 23, 29, 33, 137, 491, 691, 979, 65, 5711, 11685, 5137, 37993, 37075}}, +{7645, 17, 16364, {1, 3, 3, 1, 11, 3, 99, 119, 203, 901, 1887, 879, 7547, 4613, 31233, 13279, 105089}}, +{7646, 17, 16369, {1, 1, 1, 13, 25, 23, 111, 167, 313, 141, 127, 1223, 5711, 4101, 10977, 34695, 128303}}, +{7647, 17, 16370, {1, 1, 7, 15, 5, 3, 89, 151, 289, 769, 539, 2883, 8121, 15403, 22345, 63765, 117015}}, +{7648, 17, 16375, {1, 1, 1, 13, 15, 9, 71, 95, 37, 705, 1575, 3735, 7445, 2027, 27523, 53321, 106085}}, +{7649, 17, 16376, {1, 3, 5, 7, 5, 29, 7, 25, 181, 491, 1173, 1947, 3321, 9233, 17265, 26999, 97783}}, +{7650, 17, 16379, {1, 1, 3, 15, 1, 63, 111, 113, 279, 123, 345, 1529, 2725, 8643, 8551, 30073, 26689}}, +{7651, 17, 16393, {1, 3, 7, 7, 5, 55, 117, 211, 293, 851, 1491, 3265, 4009, 14949, 10297, 16219, 69983}}, +{7652, 17, 16402, {1, 1, 3, 11, 23, 45, 35, 91, 97, 191, 417, 3545, 1733, 3955, 10763, 10229, 75027}}, +{7653, 17, 16408, {1, 1, 3, 13, 3, 61, 69, 205, 379, 627, 295, 3979, 85, 11305, 2493, 35583, 3133}}, +{7654, 17, 16418, {1, 3, 5, 9, 5, 63, 67, 201, 351, 367, 1009, 739, 5409, 8715, 28939, 31511, 34599}}, +{7655, 17, 16438, {1, 1, 1, 5, 3, 25, 21, 25, 477, 301, 623, 157, 563, 9457, 24515, 30135, 107165}}, +{7656, 17, 16441, {1, 1, 3, 15, 5, 41, 49, 171, 469, 427, 857, 2165, 1437, 2151, 24061, 63243, 105331}}, +{7657, 17, 16447, {1, 3, 5, 11, 21, 25, 59, 167, 29, 653, 1503, 2223, 3889, 4605, 28381, 36075, 74907}}, +{7658, 17, 16450, {1, 3, 7, 7, 17, 55, 73, 127, 33, 319, 1565, 2761, 6473, 2187, 19939, 56687, 112137}}, +{7659, 17, 16455, {1, 1, 1, 9, 7, 53, 105, 3, 299, 15, 1009, 607, 6885, 12875, 20719, 16841, 70471}}, +{7660, 17, 16459, {1, 3, 5, 9, 7, 33, 23, 163, 279, 739, 1541, 3017, 2309, 11827, 3875, 44337, 82063}}, +{7661, 17, 16483, {1, 1, 1, 5, 19, 53, 109, 193, 331, 339, 477, 4093, 5177, 13527, 25731, 64137, 81411}}, +{7662, 17, 16490, {1, 3, 7, 13, 15, 63, 101, 145, 127, 13, 1431, 3581, 4993, 14287, 12125, 60217, 102563}}, +{7663, 17, 16492, {1, 3, 1, 7, 17, 27, 127, 81, 223, 763, 761, 2061, 1031, 12251, 14141, 23587, 124813}}, +{7664, 17, 16495, {1, 3, 5, 13, 27, 21, 9, 249, 285, 875, 65, 4075, 6749, 13417, 3079, 29343, 87075}}, +{7665, 17, 16523, {1, 3, 5, 13, 1, 31, 61, 21, 169, 145, 1681, 1229, 5059, 13555, 21373, 35597, 70669}}, +{7666, 17, 16528, {1, 3, 7, 15, 23, 31, 43, 237, 139, 9, 1905, 3197, 801, 14205, 13323, 18717, 88523}}, +{7667, 17, 16543, {1, 1, 1, 11, 1, 7, 21, 83, 15, 459, 537, 4029, 6973, 4019, 1, 35147, 16329}}, +{7668, 17, 16553, {1, 3, 7, 15, 23, 11, 17, 101, 235, 683, 913, 3529, 4363, 13899, 3603, 27741, 74143}}, +{7669, 17, 16562, {1, 1, 7, 7, 3, 3, 91, 107, 499, 723, 315, 2805, 5909, 11041, 18281, 54981, 76041}}, +{7670, 17, 16564, {1, 3, 7, 9, 15, 7, 93, 171, 275, 647, 655, 3565, 2199, 14795, 21945, 9373, 122299}}, +{7671, 17, 16576, {1, 1, 1, 5, 27, 53, 73, 27, 431, 707, 53, 1281, 49, 13199, 1973, 18935, 114821}}, +{7672, 17, 16588, {1, 1, 3, 3, 25, 1, 17, 159, 217, 413, 1393, 2119, 5611, 7659, 6003, 19927, 22287}}, +{7673, 17, 16612, {1, 1, 7, 15, 29, 59, 77, 9, 205, 795, 627, 2167, 2477, 6841, 17663, 34871, 79823}}, +{7674, 17, 16630, {1, 3, 5, 9, 13, 35, 79, 237, 11, 335, 789, 2291, 13, 853, 20373, 39049, 407}}, +{7675, 17, 16654, {1, 1, 5, 7, 13, 27, 21, 173, 137, 659, 123, 2677, 2153, 14879, 26737, 56291, 47613}}, +{7676, 17, 16656, {1, 3, 5, 15, 23, 47, 15, 109, 311, 597, 261, 2407, 8139, 3215, 28169, 60731, 79937}}, +{7677, 17, 16668, {1, 3, 3, 5, 11, 61, 71, 29, 189, 741, 1171, 397, 2669, 10627, 20037, 51703, 6697}}, +{7678, 17, 16672, {1, 3, 3, 3, 9, 41, 125, 1, 381, 399, 349, 3265, 6337, 8113, 14869, 5305, 83409}}, +{7679, 17, 16675, {1, 1, 3, 13, 5, 19, 33, 225, 45, 55, 1809, 1037, 5443, 15719, 9963, 363, 15145}}, +{7680, 17, 16678, {1, 3, 7, 1, 31, 25, 103, 29, 207, 169, 305, 913, 7501, 15323, 10575, 13477, 65245}}, +{7681, 17, 16681, {1, 3, 3, 15, 13, 23, 69, 255, 333, 157, 279, 1989, 3439, 12955, 13649, 52431, 90009}}, +{7682, 17, 16689, {1, 3, 7, 5, 23, 61, 111, 121, 79, 469, 89, 1545, 3405, 12393, 2035, 15989, 84855}}, +{7683, 17, 16699, {1, 1, 7, 5, 17, 21, 127, 151, 283, 521, 5, 3023, 5365, 11633, 21177, 42207, 48925}}, +{7684, 17, 16719, {1, 3, 7, 5, 21, 21, 61, 17, 415, 879, 1485, 3727, 935, 9899, 23241, 651, 103701}}, +{7685, 17, 16734, {1, 3, 5, 15, 31, 47, 19, 245, 249, 467, 253, 1575, 337, 863, 19353, 13153, 125453}}, +{7686, 17, 16737, {1, 1, 7, 15, 9, 41, 39, 63, 139, 875, 1011, 1961, 1627, 7461, 28961, 47195, 16239}}, +{7687, 17, 16750, {1, 3, 3, 7, 27, 55, 51, 245, 231, 619, 43, 91, 2125, 2685, 23661, 10189, 43085}}, +{7688, 17, 16752, {1, 1, 7, 9, 27, 55, 35, 139, 187, 143, 1545, 2685, 3173, 12065, 21607, 42619, 105279}}, +{7689, 17, 16757, {1, 1, 5, 3, 29, 63, 15, 197, 49, 995, 389, 1959, 2441, 11509, 31753, 40539, 26989}}, +{7690, 17, 16761, {1, 3, 7, 15, 19, 37, 17, 37, 305, 469, 945, 2335, 1493, 13843, 19905, 49031, 107893}}, +{7691, 17, 16773, {1, 3, 1, 11, 3, 35, 113, 181, 223, 27, 485, 2435, 3423, 11321, 1687, 45755, 18017}}, +{7692, 17, 16774, {1, 3, 3, 13, 17, 47, 109, 145, 287, 769, 1373, 3423, 1251, 14357, 3209, 28363, 97987}}, +{7693, 17, 16801, {1, 1, 3, 13, 7, 25, 93, 11, 23, 331, 517, 1705, 1957, 291, 763, 10411, 120367}}, +{7694, 17, 16802, {1, 3, 7, 15, 25, 9, 1, 33, 83, 61, 97, 509, 5387, 8701, 14243, 31883, 7375}}, +{7695, 17, 16822, {1, 3, 1, 5, 19, 11, 59, 95, 265, 205, 533, 1857, 693, 12469, 24445, 19449, 130623}}, +{7696, 17, 16831, {1, 1, 7, 7, 1, 5, 15, 159, 333, 361, 391, 1889, 2645, 15115, 30709, 60515, 13315}}, +{7697, 17, 16840, {1, 3, 5, 15, 25, 61, 69, 213, 183, 575, 1573, 3147, 1753, 2387, 23063, 12853, 108507}}, +{7698, 17, 16854, {1, 1, 1, 15, 17, 31, 11, 177, 411, 23, 469, 3985, 2159, 2273, 14175, 20425, 107741}}, +{7699, 17, 16858, {1, 1, 3, 9, 5, 35, 55, 225, 263, 641, 1393, 1277, 595, 2671, 7039, 64999, 114387}}, +{7700, 17, 16863, {1, 1, 3, 3, 11, 23, 1, 161, 77, 755, 1325, 1773, 4291, 13119, 29677, 27295, 81713}}, +{7701, 17, 16867, {1, 1, 5, 13, 31, 45, 115, 141, 449, 171, 1413, 2411, 7937, 10859, 19453, 64403, 45169}}, +{7702, 17, 16876, {1, 3, 5, 7, 1, 27, 117, 157, 99, 119, 1281, 2633, 5117, 16009, 19545, 7421, 30807}}, +{7703, 17, 16891, {1, 1, 3, 13, 19, 11, 61, 239, 331, 731, 1723, 1773, 2623, 15255, 17197, 63793, 100433}}, +{7704, 17, 16894, {1, 3, 7, 11, 11, 7, 119, 33, 195, 521, 811, 2599, 3113, 5497, 16751, 2541, 21813}}, +{7705, 17, 16898, {1, 1, 1, 15, 23, 47, 25, 73, 429, 213, 557, 1613, 7055, 7211, 2225, 1345, 58033}}, +{7706, 17, 16907, {1, 1, 1, 13, 15, 39, 69, 71, 11, 543, 267, 2803, 4853, 9819, 603, 4629, 78343}}, +{7707, 17, 16915, {1, 1, 7, 1, 15, 55, 47, 223, 63, 679, 1135, 3225, 3845, 12031, 6761, 20337, 29021}}, +{7708, 17, 16917, {1, 1, 3, 3, 3, 51, 127, 103, 43, 379, 169, 2549, 7775, 2553, 27415, 30671, 34043}}, +{7709, 17, 16922, {1, 1, 3, 11, 1, 31, 89, 113, 475, 857, 499, 3901, 5343, 8819, 4503, 58757, 60513}}, +{7710, 17, 16924, {1, 3, 5, 11, 27, 49, 97, 217, 91, 971, 1835, 3447, 2021, 3747, 20533, 13659, 84007}}, +{7711, 17, 16933, {1, 1, 5, 1, 31, 39, 49, 21, 135, 983, 579, 3509, 3611, 15101, 29781, 49941, 14353}}, +{7712, 17, 16938, {1, 1, 1, 9, 7, 17, 55, 233, 295, 161, 823, 3823, 4771, 13531, 24197, 42629, 60269}}, +{7713, 17, 16952, {1, 1, 3, 15, 23, 5, 101, 167, 55, 297, 1733, 3819, 7041, 9915, 27803, 60359, 10249}}, +{7714, 17, 16960, {1, 1, 7, 9, 25, 47, 67, 253, 303, 313, 1389, 3785, 2729, 11471, 27267, 42783, 111595}}, +{7715, 17, 16963, {1, 1, 5, 13, 25, 63, 17, 195, 457, 793, 1553, 1673, 6799, 12171, 9003, 22195, 90229}}, +{7716, 17, 16969, {1, 1, 3, 15, 11, 43, 43, 221, 423, 985, 873, 599, 1753, 4875, 7149, 34625, 8941}}, +{7717, 17, 16978, {1, 3, 5, 11, 1, 7, 109, 163, 309, 477, 1291, 3019, 1933, 14055, 15005, 1141, 66867}}, +{7718, 17, 17014, {1, 3, 3, 15, 21, 35, 95, 131, 413, 1009, 147, 2165, 6333, 8313, 20873, 18377, 23579}}, +{7719, 17, 17020, {1, 3, 1, 5, 21, 49, 29, 187, 67, 419, 253, 2345, 3179, 12331, 23127, 8799, 102493}}, +{7720, 17, 17034, {1, 1, 7, 5, 29, 59, 13, 189, 377, 595, 1893, 527, 7993, 14867, 24671, 14585, 38645}}, +{7721, 17, 17036, {1, 3, 5, 13, 3, 11, 99, 69, 253, 833, 1961, 2719, 3953, 8143, 21277, 16257, 26929}}, +{7722, 17, 17042, {1, 3, 7, 3, 3, 19, 19, 57, 393, 187, 945, 2107, 669, 14785, 13895, 26907, 92439}}, +{7723, 17, 17047, {1, 3, 5, 15, 11, 5, 73, 167, 99, 887, 1213, 2019, 3781, 14345, 30249, 16215, 1893}}, +{7724, 17, 17051, {1, 1, 5, 1, 17, 11, 69, 145, 97, 393, 1587, 2513, 1011, 6933, 7945, 41387, 34361}}, +{7725, 17, 17054, {1, 1, 5, 1, 5, 59, 57, 1, 501, 855, 1485, 977, 4981, 7631, 31853, 30737, 103023}}, +{7726, 17, 17063, {1, 3, 1, 5, 3, 27, 55, 171, 317, 641, 1875, 2523, 1631, 4971, 18743, 25119, 118913}}, +{7727, 17, 17069, {1, 1, 3, 15, 7, 39, 73, 209, 125, 29, 1031, 1569, 1793, 5461, 985, 59441, 92997}}, +{7728, 17, 17075, {1, 3, 5, 11, 27, 23, 57, 13, 65, 555, 1309, 1149, 5125, 11573, 3835, 57913, 78699}}, +{7729, 17, 17077, {1, 3, 7, 5, 29, 7, 51, 131, 443, 623, 1491, 1067, 6647, 6277, 25799, 54843, 90869}}, +{7730, 17, 17089, {1, 1, 1, 11, 7, 33, 67, 113, 319, 665, 11, 1225, 3137, 16269, 20101, 40263, 31091}}, +{7731, 17, 17090, {1, 3, 5, 15, 7, 5, 101, 153, 165, 173, 97, 1651, 6633, 6071, 29079, 35641, 77305}}, +{7732, 17, 17107, {1, 3, 7, 13, 9, 45, 103, 55, 121, 1021, 1841, 315, 8127, 6547, 1093, 7181, 39575}}, +{7733, 17, 17126, {1, 3, 3, 11, 15, 17, 27, 55, 341, 443, 377, 681, 3635, 1091, 16719, 49403, 85507}}, +{7734, 17, 17135, {1, 3, 5, 5, 29, 53, 51, 213, 273, 475, 981, 549, 539, 14989, 4037, 23911, 45997}}, +{7735, 17, 17150, {1, 3, 5, 3, 27, 37, 73, 115, 331, 911, 991, 4049, 6299, 3919, 10231, 31507, 98651}}, +{7736, 17, 17162, {1, 1, 5, 13, 21, 13, 1, 175, 137, 837, 1067, 2845, 307, 4399, 15671, 1309, 107409}}, +{7737, 17, 17169, {1, 1, 3, 1, 5, 47, 111, 75, 193, 389, 157, 3731, 6237, 5053, 9933, 28413, 32939}}, +{7738, 17, 17172, {1, 1, 7, 5, 29, 1, 51, 85, 267, 935, 1021, 3135, 3135, 9263, 32597, 6779, 71473}}, +{7739, 17, 17175, {1, 3, 5, 9, 21, 59, 27, 99, 155, 507, 1911, 3501, 4307, 6755, 17127, 29815, 1577}}, +{7740, 17, 17176, {1, 1, 5, 1, 15, 63, 45, 105, 125, 299, 689, 3935, 7229, 5007, 25003, 30453, 27819}}, +{7741, 17, 17191, {1, 1, 7, 15, 19, 9, 67, 151, 45, 985, 2015, 833, 5435, 15383, 25881, 46735, 56717}}, +{7742, 17, 17209, {1, 1, 5, 15, 27, 59, 119, 163, 293, 63, 1251, 1309, 485, 4937, 27207, 47481, 114357}}, +{7743, 17, 17218, {1, 3, 5, 13, 23, 11, 111, 87, 329, 467, 1657, 3309, 3421, 12013, 23163, 14105, 88761}}, +{7744, 17, 17220, {1, 1, 5, 11, 17, 63, 9, 61, 299, 585, 341, 3375, 3213, 15953, 11455, 5333, 66889}}, +{7745, 17, 17227, {1, 3, 5, 5, 5, 35, 57, 235, 137, 543, 77, 2811, 857, 12793, 10791, 55711, 93353}}, +{7746, 17, 17229, {1, 3, 7, 3, 23, 37, 19, 81, 321, 23, 1625, 2359, 3569, 4685, 7385, 32677, 18073}}, +{7747, 17, 17238, {1, 3, 3, 7, 21, 35, 81, 229, 207, 547, 1397, 2709, 7159, 1265, 16823, 9921, 29159}}, +{7748, 17, 17251, {1, 3, 7, 13, 27, 13, 107, 241, 395, 317, 307, 3927, 1153, 15915, 25179, 25173, 21503}}, +{7749, 17, 17257, {1, 3, 1, 5, 1, 51, 25, 135, 381, 229, 1491, 2009, 3331, 16165, 8169, 65161, 9335}}, +{7750, 17, 17258, {1, 1, 5, 5, 17, 15, 57, 221, 183, 225, 1649, 3701, 299, 12349, 4691, 64479, 82237}}, +{7751, 17, 17272, {1, 3, 7, 7, 31, 39, 65, 183, 149, 67, 1697, 3933, 3709, 15501, 12583, 60117, 88691}}, +{7752, 17, 17277, {1, 1, 5, 15, 17, 49, 117, 233, 161, 891, 789, 1347, 4887, 10713, 10613, 4389, 42619}}, +{7753, 17, 17308, {1, 3, 5, 9, 13, 3, 83, 69, 381, 777, 743, 2843, 7233, 3285, 8931, 48667, 120777}}, +{7754, 17, 17311, {1, 3, 1, 3, 11, 7, 55, 107, 165, 533, 1897, 3385, 1069, 12805, 30125, 42729, 123977}}, +{7755, 17, 17321, {1, 1, 1, 5, 13, 17, 103, 237, 77, 537, 1843, 2817, 7467, 13647, 15259, 3525, 18313}}, +{7756, 17, 17329, {1, 1, 7, 7, 13, 59, 29, 197, 309, 917, 1173, 2605, 4313, 12007, 25611, 60409, 104931}}, +{7757, 17, 17342, {1, 3, 3, 3, 27, 57, 7, 207, 491, 467, 1973, 3075, 8043, 3977, 14517, 13179, 47111}}, +{7758, 17, 17344, {1, 1, 7, 5, 31, 33, 125, 235, 79, 847, 1893, 3875, 7513, 1435, 24959, 46813, 82053}}, +{7759, 17, 17350, {1, 3, 7, 5, 3, 53, 103, 1, 215, 71, 787, 223, 1399, 6793, 11281, 39201, 122119}}, +{7760, 17, 17356, {1, 3, 3, 3, 3, 57, 7, 151, 319, 463, 685, 2917, 4037, 14929, 11971, 41827, 57449}}, +{7761, 17, 17371, {1, 1, 7, 3, 5, 11, 15, 139, 379, 563, 135, 65, 5633, 7535, 1451, 18289, 62457}}, +{7762, 17, 17374, {1, 1, 1, 15, 11, 23, 37, 57, 205, 107, 995, 151, 3279, 2015, 28927, 40731, 95551}}, +{7763, 17, 17392, {1, 3, 5, 9, 15, 43, 95, 217, 203, 215, 203, 2207, 8189, 465, 2175, 29285, 25375}}, +{7764, 17, 17402, {1, 3, 3, 5, 19, 59, 51, 123, 285, 721, 1335, 1777, 1645, 15811, 16539, 14637, 123323}}, +{7765, 17, 17410, {1, 3, 5, 5, 11, 35, 23, 23, 259, 789, 567, 1921, 4743, 6635, 6965, 43025, 43175}}, +{7766, 17, 17421, {1, 3, 7, 3, 7, 27, 77, 121, 285, 65, 647, 591, 2553, 7163, 12057, 43675, 24227}}, +{7767, 17, 17424, {1, 1, 5, 9, 3, 25, 17, 85, 235, 715, 1913, 2391, 3719, 11029, 18359, 6323, 4703}}, +{7768, 17, 17427, {1, 1, 1, 3, 25, 31, 37, 31, 89, 311, 1797, 3409, 6785, 9627, 29721, 58591, 111429}}, +{7769, 17, 17434, {1, 3, 1, 5, 9, 37, 47, 45, 419, 115, 1009, 1359, 65, 1161, 15673, 16075, 63895}}, +{7770, 17, 17449, {1, 1, 3, 5, 25, 47, 27, 87, 441, 547, 1801, 3589, 3773, 12215, 14509, 12669, 99983}}, +{7771, 17, 17452, {1, 1, 1, 3, 19, 33, 51, 91, 447, 577, 491, 539, 3177, 7033, 21633, 51737, 47089}}, +{7772, 17, 17463, {1, 1, 3, 15, 23, 53, 93, 113, 143, 973, 999, 2355, 1489, 3451, 29821, 23769, 74633}}, +{7773, 17, 17470, {1, 3, 7, 11, 27, 1, 35, 109, 111, 51, 425, 3203, 2585, 11255, 20939, 281, 92133}}, +{7774, 17, 17477, {1, 1, 1, 11, 13, 37, 13, 149, 421, 655, 79, 3093, 6429, 1145, 27663, 52861, 81431}}, +{7775, 17, 17482, {1, 1, 5, 13, 19, 23, 105, 39, 97, 239, 469, 1047, 4727, 12009, 8055, 45557, 124219}}, +{7776, 17, 17490, {1, 1, 1, 7, 7, 7, 5, 53, 269, 391, 1893, 2263, 2109, 11531, 12109, 31437, 20445}}, +{7777, 17, 17496, {1, 1, 3, 11, 9, 35, 69, 209, 93, 455, 1117, 3297, 2597, 15035, 17943, 19955, 829}}, +{7778, 17, 17508, {1, 1, 5, 7, 23, 23, 101, 71, 339, 553, 1653, 2997, 1191, 3121, 4575, 49979, 17353}}, +{7779, 17, 17511, {1, 3, 3, 13, 13, 9, 51, 181, 33, 185, 111, 589, 3117, 10105, 28811, 31529, 79657}}, +{7780, 17, 17536, {1, 1, 5, 3, 9, 57, 103, 65, 211, 473, 519, 3815, 4087, 2767, 10213, 37829, 9523}}, +{7781, 17, 17563, {1, 1, 5, 7, 7, 31, 81, 161, 311, 617, 1689, 3133, 57, 14595, 22783, 18475, 85811}}, +{7782, 17, 17570, {1, 3, 5, 5, 21, 51, 99, 249, 7, 525, 885, 3981, 2851, 529, 947, 29885, 122901}}, +{7783, 17, 17581, {1, 3, 1, 5, 1, 23, 85, 91, 309, 747, 183, 1347, 2399, 15777, 16205, 15687, 117333}}, +{7784, 17, 17590, {1, 3, 7, 3, 29, 21, 99, 137, 297, 229, 1063, 2747, 6415, 7791, 4775, 62863, 50849}}, +{7785, 17, 17608, {1, 3, 1, 3, 11, 3, 53, 153, 103, 911, 1595, 1899, 1049, 11643, 21105, 61587, 92399}}, +{7786, 17, 17616, {1, 1, 5, 15, 29, 55, 99, 101, 181, 453, 1917, 2081, 4687, 4335, 2817, 11861, 103167}}, +{7787, 17, 17621, {1, 3, 7, 15, 11, 7, 9, 3, 477, 281, 1141, 453, 4993, 7843, 6169, 49785, 53827}}, +{7788, 17, 17628, {1, 3, 7, 11, 25, 61, 77, 159, 83, 95, 1223, 85, 6309, 16145, 18729, 133, 14193}}, +{7789, 17, 17644, {1, 3, 3, 1, 7, 27, 97, 183, 263, 59, 915, 3857, 3349, 8123, 11251, 55163, 125703}}, +{7790, 17, 17649, {1, 3, 5, 5, 17, 33, 57, 55, 503, 811, 953, 349, 1949, 9127, 31015, 14475, 116769}}, +{7791, 17, 17652, {1, 3, 1, 1, 3, 53, 59, 131, 421, 971, 89, 3047, 3513, 13599, 4569, 54525, 54779}}, +{7792, 17, 17679, {1, 1, 3, 11, 9, 45, 95, 123, 197, 257, 1073, 1461, 5, 12701, 12559, 34989, 71631}}, +{7793, 17, 17691, {1, 3, 3, 7, 1, 27, 55, 191, 447, 561, 1975, 2665, 1341, 8969, 18519, 47389, 70847}}, +{7794, 17, 17693, {1, 1, 5, 5, 3, 31, 15, 165, 95, 423, 233, 2309, 7777, 3503, 20105, 3085, 92349}}, +{7795, 17, 17697, {1, 3, 1, 13, 23, 61, 7, 55, 157, 1, 83, 515, 2169, 14397, 18149, 56855, 117265}}, +{7796, 17, 17698, {1, 3, 3, 3, 3, 59, 69, 95, 127, 241, 65, 3145, 491, 13809, 17529, 20223, 96579}}, +{7797, 17, 17700, {1, 1, 1, 5, 13, 43, 117, 163, 305, 955, 2007, 3337, 807, 16019, 5721, 5479, 90937}}, +{7798, 17, 17704, {1, 3, 3, 1, 19, 9, 127, 5, 113, 491, 1873, 2127, 7949, 5207, 32531, 775, 131065}}, +{7799, 17, 17707, {1, 1, 7, 3, 1, 3, 91, 187, 37, 873, 1039, 4075, 5645, 243, 15127, 45615, 3813}}, +{7800, 17, 17715, {1, 1, 3, 11, 3, 37, 67, 59, 439, 763, 213, 1099, 1659, 12783, 30297, 60713, 43497}}, +{7801, 17, 17718, {1, 3, 3, 13, 23, 49, 47, 191, 245, 985, 487, 3165, 7803, 2437, 19073, 30605, 119641}}, +{7802, 17, 17721, {1, 3, 7, 7, 19, 43, 7, 253, 93, 99, 145, 219, 699, 2433, 3009, 565, 99671}}, +{7803, 17, 17722, {1, 1, 3, 13, 7, 5, 9, 23, 219, 155, 925, 3427, 6631, 16353, 4115, 20831, 49525}}, +{7804, 17, 17727, {1, 1, 7, 11, 15, 45, 41, 35, 301, 273, 241, 4031, 5441, 8281, 9341, 8499, 73841}}, +{7805, 17, 17729, {1, 3, 7, 13, 9, 19, 79, 3, 163, 197, 509, 2301, 6971, 11525, 8805, 33805, 111595}}, +{7806, 17, 17747, {1, 3, 3, 1, 15, 45, 69, 253, 155, 639, 1045, 749, 3619, 14871, 18063, 49763, 66687}}, +{7807, 17, 17754, {1, 3, 3, 3, 29, 5, 41, 171, 265, 677, 1719, 2623, 1721, 12243, 18741, 39595, 92873}}, +{7808, 17, 17756, {1, 3, 5, 7, 27, 23, 69, 61, 453, 399, 1857, 3901, 6565, 15595, 1083, 15065, 91249}}, +{7809, 17, 17760, {1, 1, 5, 7, 1, 27, 9, 145, 95, 983, 685, 2079, 5117, 5037, 22695, 53135, 43569}}, +{7810, 17, 17765, {1, 1, 3, 5, 5, 7, 69, 59, 331, 409, 179, 333, 1293, 3863, 9473, 12537, 55605}}, +{7811, 17, 17778, {1, 3, 5, 1, 1, 19, 1, 49, 317, 769, 91, 2073, 1765, 1197, 15029, 52553, 57361}}, +{7812, 17, 17784, {1, 1, 5, 1, 23, 13, 11, 69, 345, 877, 41, 817, 617, 14415, 8337, 53973, 50007}}, +{7813, 17, 17794, {1, 1, 7, 3, 19, 27, 69, 103, 115, 893, 219, 2891, 2813, 9933, 26401, 63323, 30909}}, +{7814, 17, 17805, {1, 1, 5, 5, 27, 15, 119, 3, 11, 783, 541, 2431, 2395, 3921, 15471, 34657, 100295}}, +{7815, 17, 17806, {1, 1, 7, 11, 15, 25, 39, 191, 345, 1001, 1773, 715, 1627, 15957, 30085, 34097, 58747}}, +{7816, 17, 17817, {1, 1, 1, 5, 17, 43, 65, 81, 487, 387, 1359, 145, 2231, 6693, 15857, 59539, 79615}}, +{7817, 17, 17824, {1, 1, 3, 5, 15, 19, 17, 233, 247, 611, 587, 2587, 2321, 2835, 1477, 41991, 88143}}, +{7818, 17, 17839, {1, 3, 3, 15, 27, 15, 53, 61, 359, 989, 283, 3569, 5551, 11849, 20995, 34065, 69407}}, +{7819, 17, 17842, {1, 3, 3, 11, 13, 31, 41, 87, 379, 47, 1289, 3143, 4213, 8643, 17065, 10707, 62773}}, +{7820, 17, 17844, {1, 3, 7, 1, 9, 61, 59, 121, 453, 663, 27, 793, 4501, 7713, 285, 13279, 11633}}, +{7821, 17, 17851, {1, 1, 7, 5, 29, 51, 57, 15, 233, 743, 879, 2317, 3399, 15741, 605, 57529, 87427}}, +{7822, 17, 17862, {1, 1, 1, 1, 19, 59, 51, 119, 273, 403, 1649, 3877, 3561, 10931, 21139, 2599, 77957}}, +{7823, 17, 17868, {1, 3, 1, 3, 5, 1, 79, 131, 251, 585, 359, 2073, 7041, 13611, 22937, 24645, 72827}}, +{7824, 17, 17871, {1, 3, 7, 9, 19, 39, 93, 137, 359, 565, 1123, 1301, 4111, 13683, 1361, 25147, 38315}}, +{7825, 17, 17873, {1, 1, 5, 13, 27, 31, 11, 243, 111, 243, 1615, 1649, 2999, 15873, 19161, 57485, 35819}}, +{7826, 17, 17896, {1, 3, 3, 5, 25, 57, 61, 207, 219, 969, 303, 1165, 6753, 13473, 10789, 52883, 45205}}, +{7827, 17, 17904, {1, 1, 7, 11, 9, 53, 55, 175, 399, 981, 255, 2499, 373, 13131, 26803, 48017, 25599}}, +{7828, 17, 17909, {1, 1, 3, 3, 11, 23, 73, 25, 83, 39, 1813, 747, 3287, 795, 11917, 55509, 105057}}, +{7829, 17, 17920, {1, 3, 7, 15, 29, 59, 47, 171, 219, 875, 71, 123, 8131, 15595, 12471, 62439, 131}}, +{7830, 17, 17923, {1, 3, 5, 13, 9, 27, 119, 233, 323, 943, 375, 3647, 185, 1639, 431, 27225, 130175}}, +{7831, 17, 17947, {1, 3, 7, 3, 7, 17, 31, 155, 89, 835, 1015, 2019, 3973, 7087, 16899, 29591, 40797}}, +{7832, 17, 17950, {1, 3, 3, 1, 3, 11, 83, 231, 209, 537, 1227, 1519, 1059, 14027, 18591, 34031, 125755}}, +{7833, 17, 17956, {1, 3, 3, 1, 7, 39, 19, 99, 169, 961, 385, 1621, 7373, 7459, 8979, 23643, 17101}}, +{7834, 17, 17959, {1, 1, 3, 11, 11, 23, 61, 37, 359, 981, 209, 2555, 2673, 6501, 12731, 10735, 97321}}, +{7835, 17, 17966, {1, 1, 3, 13, 15, 61, 115, 119, 99, 755, 1933, 345, 3133, 12071, 26657, 7133, 18553}}, +{7836, 17, 17971, {1, 3, 1, 5, 17, 7, 29, 119, 445, 911, 89, 19, 6137, 8037, 19527, 22467, 29253}}, +{7837, 17, 17973, {1, 1, 3, 11, 31, 21, 119, 21, 249, 371, 343, 4037, 7539, 14473, 23829, 46415, 60911}}, +{7838, 17, 17992, {1, 1, 7, 9, 21, 53, 29, 149, 467, 893, 479, 359, 1007, 13955, 9667, 10245, 74761}}, +{7839, 17, 18006, {1, 3, 1, 7, 7, 45, 7, 77, 289, 271, 1329, 261, 5675, 8275, 7443, 57945, 117825}}, +{7840, 17, 18009, {1, 1, 1, 3, 21, 57, 117, 77, 287, 119, 1073, 915, 2521, 455, 7433, 56953, 84433}}, +{7841, 17, 18010, {1, 1, 1, 9, 27, 47, 1, 189, 303, 375, 215, 3117, 4541, 12877, 15523, 32317, 104213}}, +{7842, 17, 18022, {1, 1, 3, 1, 13, 39, 37, 249, 371, 159, 1073, 1351, 4703, 2715, 17463, 3945, 51523}}, +{7843, 17, 18039, {1, 3, 5, 5, 29, 15, 79, 25, 61, 995, 1081, 3377, 345, 13773, 4205, 20589, 83591}}, +{7844, 17, 18046, {1, 1, 3, 1, 9, 1, 41, 39, 389, 509, 561, 3273, 1911, 15271, 22655, 34713, 2045}}, +{7845, 17, 18069, {1, 3, 1, 15, 17, 1, 55, 55, 119, 707, 843, 2657, 3687, 11557, 18331, 4935, 110639}}, +{7846, 17, 18074, {1, 3, 5, 1, 23, 35, 119, 215, 471, 643, 1581, 1965, 2627, 2991, 3361, 6737, 111657}}, +{7847, 17, 18076, {1, 3, 5, 7, 9, 19, 33, 197, 33, 993, 1795, 595, 7113, 14721, 12647, 41035, 13669}}, +{7848, 17, 18085, {1, 1, 7, 15, 31, 39, 51, 157, 373, 473, 665, 3541, 6695, 11741, 5617, 17189, 129851}}, +{7849, 17, 18086, {1, 3, 3, 7, 15, 37, 33, 175, 391, 159, 717, 593, 113, 9331, 10685, 59003, 26975}}, +{7850, 17, 18095, {1, 1, 3, 5, 13, 41, 11, 109, 9, 899, 1503, 901, 6237, 7789, 9963, 14923, 63665}}, +{7851, 17, 18100, {1, 3, 7, 7, 25, 61, 3, 231, 235, 29, 1049, 1997, 5371, 9047, 29595, 49239, 108649}}, +{7852, 17, 18109, {1, 1, 3, 5, 27, 1, 53, 209, 315, 747, 1803, 11, 1815, 6539, 8839, 18385, 88681}}, +{7853, 17, 18121, {1, 1, 5, 13, 25, 55, 117, 197, 13, 689, 751, 1203, 2277, 1763, 23453, 54459, 118023}}, +{7854, 17, 18127, {1, 3, 3, 11, 21, 1, 51, 101, 429, 723, 273, 3021, 1491, 9923, 6629, 63741, 98813}}, +{7855, 17, 18129, {1, 1, 1, 15, 17, 25, 111, 251, 43, 403, 465, 17, 787, 6045, 32185, 22921, 115851}}, +{7856, 17, 18132, {1, 1, 5, 11, 11, 13, 13, 93, 489, 941, 1391, 383, 7735, 1921, 16199, 53099, 25181}}, +{7857, 17, 18141, {1, 3, 3, 7, 15, 1, 3, 159, 507, 867, 1589, 2111, 3839, 8989, 12589, 37657, 97055}}, +{7858, 17, 18146, {1, 3, 3, 13, 25, 23, 7, 95, 489, 1001, 105, 2737, 5013, 14465, 25383, 57551, 77425}}, +{7859, 17, 18151, {1, 3, 5, 3, 3, 7, 81, 15, 255, 297, 1183, 655, 741, 3081, 2141, 34493, 103707}}, +{7860, 17, 18157, {1, 1, 7, 9, 27, 57, 49, 121, 21, 239, 829, 2001, 613, 9569, 4419, 20007, 59109}}, +{7861, 17, 18160, {1, 3, 7, 1, 3, 21, 109, 255, 45, 333, 915, 1245, 5893, 765, 28289, 53927, 15335}}, +{7862, 17, 18183, {1, 3, 3, 7, 5, 35, 33, 79, 111, 509, 347, 3915, 2017, 6461, 11847, 17807, 48601}}, +{7863, 17, 18204, {1, 3, 5, 1, 13, 63, 87, 65, 507, 277, 339, 3637, 6289, 719, 9383, 38887, 55061}}, +{7864, 17, 18218, {1, 1, 5, 15, 17, 5, 59, 107, 355, 1021, 1849, 1807, 7679, 305, 31533, 1221, 98165}}, +{7865, 17, 18226, {1, 1, 1, 13, 19, 7, 37, 63, 267, 399, 1451, 2149, 1003, 13635, 18693, 215, 15887}}, +{7866, 17, 18238, {1, 1, 3, 7, 11, 63, 81, 251, 253, 963, 635, 1697, 6393, 9775, 24189, 9099, 106277}}, +{7867, 17, 18245, {1, 3, 3, 13, 17, 47, 63, 47, 279, 879, 271, 1655, 1897, 10743, 2607, 16695, 32779}}, +{7868, 17, 18249, {1, 3, 5, 15, 3, 1, 121, 181, 303, 973, 19, 3327, 3827, 2197, 31857, 22835, 122611}}, +{7869, 17, 18260, {1, 1, 5, 13, 25, 41, 105, 197, 195, 85, 1515, 2735, 7539, 7557, 24297, 38721, 46895}}, +{7870, 17, 18267, {1, 1, 1, 1, 15, 63, 33, 7, 43, 971, 781, 1461, 4483, 2113, 32459, 37653, 68017}}, +{7871, 17, 18270, {1, 3, 3, 9, 7, 1, 65, 183, 171, 695, 191, 3675, 6749, 6823, 3577, 45031, 81597}}, +{7872, 17, 18273, {1, 3, 3, 3, 9, 61, 13, 159, 295, 329, 943, 3293, 79, 14497, 21461, 4667, 96435}}, +{7873, 17, 18274, {1, 1, 7, 9, 29, 37, 117, 215, 295, 591, 1139, 3093, 7469, 7995, 13581, 48075, 5943}}, +{7874, 17, 18276, {1, 3, 1, 9, 11, 11, 117, 255, 419, 551, 1445, 1987, 1169, 14227, 31095, 36041, 63739}}, +{7875, 17, 18283, {1, 1, 7, 15, 17, 25, 81, 27, 87, 463, 1871, 551, 7449, 12231, 28645, 32663, 43037}}, +{7876, 17, 18307, {1, 3, 5, 11, 3, 49, 109, 123, 397, 113, 1269, 2433, 4463, 1257, 2127, 6677, 96009}}, +{7877, 17, 18314, {1, 1, 1, 11, 27, 19, 83, 123, 297, 867, 941, 3929, 3483, 4641, 32505, 48999, 66169}}, +{7878, 17, 18321, {1, 1, 5, 11, 5, 21, 11, 255, 369, 859, 657, 587, 5245, 12973, 22403, 47935, 121375}}, +{7879, 17, 18334, {1, 3, 1, 13, 17, 43, 83, 51, 339, 967, 499, 1485, 5203, 10053, 31707, 31443, 75033}}, +{7880, 17, 18355, {1, 1, 5, 13, 11, 5, 121, 121, 73, 101, 1751, 3805, 1333, 14043, 26957, 27557, 110899}}, +{7881, 17, 18364, {1, 3, 7, 11, 9, 7, 125, 237, 437, 177, 841, 175, 5509, 9157, 3129, 54119, 109315}}, +{7882, 17, 18372, {1, 3, 7, 15, 1, 59, 87, 121, 43, 475, 1589, 1267, 1501, 1585, 31705, 33959, 27247}}, +{7883, 17, 18390, {1, 1, 5, 3, 27, 63, 117, 205, 169, 701, 1081, 2835, 8049, 11875, 4143, 17663, 90043}}, +{7884, 17, 18399, {1, 3, 1, 9, 23, 27, 31, 141, 411, 145, 1177, 3681, 3403, 6943, 10729, 47219, 102713}}, +{7885, 17, 18415, {1, 1, 7, 11, 5, 49, 33, 27, 121, 865, 471, 1871, 6945, 10051, 4493, 7121, 65551}}, +{7886, 17, 18420, {1, 1, 5, 1, 17, 27, 53, 13, 31, 403, 1319, 1381, 1371, 11693, 18805, 54683, 30137}}, +{7887, 17, 18434, {1, 1, 7, 11, 9, 21, 71, 155, 79, 145, 943, 3891, 641, 3163, 28493, 14729, 83391}}, +{7888, 17, 18443, {1, 3, 3, 13, 3, 53, 21, 189, 245, 803, 1625, 4005, 1163, 16033, 5549, 14301, 115859}}, +{7889, 17, 18446, {1, 3, 1, 5, 17, 59, 61, 31, 293, 677, 1753, 1803, 1671, 14619, 22361, 61453, 78203}}, +{7890, 17, 18460, {1, 3, 3, 1, 5, 51, 99, 231, 175, 97, 1335, 689, 1913, 6157, 22757, 52395, 118347}}, +{7891, 17, 18467, {1, 3, 3, 7, 25, 11, 113, 19, 289, 507, 1143, 3437, 7965, 12551, 27603, 8423, 46713}}, +{7892, 17, 18482, {1, 1, 3, 9, 13, 1, 73, 9, 425, 407, 363, 2915, 4269, 2903, 9251, 17733, 80321}}, +{7893, 17, 18484, {1, 1, 3, 11, 31, 47, 37, 211, 433, 237, 1069, 1891, 6175, 9305, 30385, 2497, 94775}}, +{7894, 17, 18501, {1, 1, 3, 1, 23, 5, 113, 103, 427, 587, 1863, 1863, 679, 2575, 13059, 16163, 42289}}, +{7895, 17, 18506, {1, 1, 5, 3, 7, 17, 45, 33, 209, 609, 1897, 95, 5123, 2239, 5483, 60715, 126497}}, +{7896, 17, 18516, {1, 1, 5, 11, 1, 55, 67, 223, 41, 967, 337, 2511, 7879, 1157, 17635, 64081, 421}}, +{7897, 17, 18519, {1, 3, 3, 9, 27, 33, 87, 97, 231, 895, 1337, 829, 47, 8481, 14059, 57209, 109159}}, +{7898, 17, 18547, {1, 3, 7, 1, 25, 5, 41, 161, 393, 523, 1623, 3761, 1933, 8319, 17309, 46717, 97299}}, +{7899, 17, 18569, {1, 1, 1, 11, 5, 55, 19, 191, 41, 791, 1611, 59, 2633, 13873, 25859, 42879, 54807}}, +{7900, 17, 18575, {1, 3, 1, 11, 11, 33, 5, 13, 199, 411, 895, 759, 2735, 16225, 31469, 24081, 31857}}, +{7901, 17, 18589, {1, 1, 7, 13, 27, 57, 21, 191, 389, 977, 1013, 3493, 6401, 15957, 23181, 52461, 41853}}, +{7902, 17, 18590, {1, 3, 7, 5, 23, 19, 117, 117, 427, 923, 1347, 3099, 247, 8879, 5309, 53277, 100625}}, +{7903, 17, 18605, {1, 1, 5, 13, 11, 23, 69, 37, 119, 329, 1935, 2851, 5127, 6907, 24651, 11135, 118287}}, +{7904, 17, 18611, {1, 1, 3, 15, 23, 1, 69, 107, 253, 771, 1697, 4035, 3219, 15011, 6995, 19255, 39909}}, +{7905, 17, 18625, {1, 3, 1, 1, 5, 21, 35, 173, 407, 603, 27, 3589, 2879, 2755, 17679, 6145, 95989}}, +{7906, 17, 18652, {1, 1, 5, 13, 31, 23, 61, 139, 341, 593, 1673, 4031, 4809, 1107, 22657, 29073, 53401}}, +{7907, 17, 18665, {1, 3, 1, 15, 13, 37, 39, 61, 443, 417, 1125, 1529, 1943, 7317, 2985, 50285, 107069}}, +{7908, 17, 18673, {1, 1, 3, 9, 5, 51, 87, 91, 31, 491, 1455, 1685, 2579, 6023, 10989, 64635, 130147}}, +{7909, 17, 18674, {1, 3, 5, 5, 31, 23, 15, 163, 357, 161, 1597, 1571, 5039, 13213, 32221, 4405, 88079}}, +{7910, 17, 18683, {1, 1, 1, 15, 13, 43, 7, 109, 243, 389, 683, 2671, 8003, 4187, 6507, 11171, 116727}}, +{7911, 17, 18688, {1, 3, 7, 1, 17, 31, 53, 5, 227, 755, 1755, 2939, 1789, 8951, 16777, 30203, 79005}}, +{7912, 17, 18691, {1, 3, 3, 9, 27, 5, 111, 241, 89, 333, 371, 1035, 5719, 2433, 29343, 50829, 25131}}, +{7913, 17, 18698, {1, 1, 3, 13, 7, 37, 125, 69, 79, 397, 1595, 123, 255, 2257, 10881, 27085, 99411}}, +{7914, 17, 18717, {1, 1, 3, 15, 1, 35, 61, 73, 507, 775, 1631, 2005, 4277, 8421, 5669, 39221, 19053}}, +{7915, 17, 18733, {1, 1, 3, 7, 15, 17, 65, 157, 19, 997, 861, 1249, 4059, 7975, 955, 5833, 97733}}, +{7916, 17, 18754, {1, 1, 5, 5, 21, 43, 1, 181, 1, 17, 1337, 3333, 3761, 12283, 20941, 231, 30457}}, +{7917, 17, 18759, {1, 3, 3, 7, 7, 23, 105, 101, 101, 757, 1407, 565, 2187, 1529, 29385, 22847, 57675}}, +{7918, 17, 18760, {1, 3, 3, 1, 11, 3, 65, 93, 201, 773, 1037, 1325, 673, 6625, 2909, 63435, 114311}}, +{7919, 17, 18771, {1, 3, 5, 1, 21, 43, 87, 37, 491, 323, 1093, 2493, 4755, 7225, 12037, 9483, 70351}}, +{7920, 17, 18777, {1, 1, 7, 9, 23, 39, 59, 117, 103, 645, 1975, 1177, 55, 325, 23781, 64365, 94915}}, +{7921, 17, 18796, {1, 3, 7, 15, 21, 29, 109, 35, 307, 847, 777, 3457, 7899, 17, 24065, 10517, 35651}}, +{7922, 17, 18799, {1, 1, 7, 9, 25, 35, 49, 131, 377, 429, 1773, 2107, 6305, 15209, 9567, 17685, 5599}}, +{7923, 17, 18807, {1, 1, 3, 11, 13, 27, 47, 125, 483, 229, 921, 2733, 2217, 2615, 24135, 28759, 109411}}, +{7924, 17, 18813, {1, 3, 1, 7, 19, 45, 23, 195, 445, 955, 853, 2877, 6889, 9507, 2009, 18747, 50545}}, +{7925, 17, 18817, {1, 1, 1, 5, 15, 35, 75, 177, 145, 683, 309, 893, 4999, 827, 26563, 30819, 111115}}, +{7926, 17, 18820, {1, 3, 3, 11, 5, 45, 49, 39, 93, 653, 1053, 2553, 863, 12185, 30261, 16459, 121061}}, +{7927, 17, 18827, {1, 3, 7, 5, 11, 29, 57, 43, 409, 71, 67, 3537, 263, 13237, 8825, 58411, 44629}}, +{7928, 17, 18829, {1, 1, 5, 13, 1, 37, 23, 171, 13, 309, 239, 2023, 6233, 8751, 11371, 5825, 77355}}, +{7929, 17, 18838, {1, 3, 1, 13, 5, 1, 47, 217, 369, 609, 453, 879, 4337, 4441, 8785, 51963, 53819}}, +{7930, 17, 18842, {1, 3, 5, 5, 23, 1, 67, 147, 27, 121, 1369, 569, 1519, 11585, 18193, 30889, 78055}}, +{7931, 17, 18848, {1, 1, 1, 13, 11, 53, 33, 37, 419, 111, 1649, 2495, 6105, 12385, 30865, 3683, 63813}}, +{7932, 17, 18853, {1, 3, 3, 5, 17, 35, 107, 235, 471, 735, 1093, 1007, 567, 173, 9623, 39533, 56455}}, +{7933, 17, 18885, {1, 1, 7, 15, 27, 13, 123, 211, 407, 857, 801, 3951, 8153, 4427, 15333, 13217, 92675}}, +{7934, 17, 18890, {1, 1, 1, 7, 11, 61, 99, 131, 121, 119, 1483, 1485, 3521, 13163, 24899, 56849, 111943}}, +{7935, 17, 18898, {1, 3, 3, 1, 19, 1, 29, 139, 127, 557, 1913, 1487, 1381, 185, 11195, 52499, 45059}}, +{7936, 17, 18903, {1, 3, 7, 11, 5, 29, 95, 111, 235, 55, 1101, 2631, 1219, 9867, 22209, 3095, 56793}}, +{7937, 17, 18910, {1, 3, 7, 1, 31, 61, 37, 125, 241, 985, 1079, 1439, 433, 2779, 8463, 59985, 39667}}, +{7938, 17, 18913, {1, 3, 7, 15, 5, 7, 71, 7, 435, 727, 1611, 135, 1421, 8329, 29995, 64243, 58285}}, +{7939, 17, 18931, {1, 3, 3, 15, 27, 11, 121, 27, 281, 499, 267, 2651, 7575, 9499, 5051, 49475, 79573}}, +{7940, 17, 18934, {1, 3, 3, 15, 29, 47, 11, 183, 235, 537, 79, 2467, 3751, 831, 6725, 52173, 108645}}, +{7941, 17, 18956, {1, 3, 5, 13, 23, 31, 23, 19, 477, 511, 727, 183, 5955, 7613, 31979, 8441, 39835}}, +{7942, 17, 18961, {1, 1, 5, 7, 17, 31, 53, 133, 387, 787, 1573, 89, 1975, 1825, 19963, 27203, 124923}}, +{7943, 17, 18968, {1, 1, 1, 9, 3, 15, 125, 135, 89, 37, 517, 3931, 2013, 2143, 25413, 18421, 6097}}, +{7944, 17, 18978, {1, 1, 3, 11, 23, 29, 89, 45, 53, 135, 223, 3523, 7921, 3271, 1819, 40931, 65471}}, +{7945, 17, 18983, {1, 1, 1, 13, 17, 3, 121, 25, 509, 61, 1009, 2009, 7813, 8499, 5807, 63171, 75991}}, +{7946, 17, 18987, {1, 3, 5, 13, 15, 35, 37, 45, 161, 683, 1665, 59, 6297, 9595, 10193, 46745, 105411}}, +{7947, 17, 18992, {1, 3, 1, 7, 21, 19, 85, 107, 3, 845, 673, 1271, 7581, 15971, 27085, 35375, 29027}}, +{7948, 17, 18997, {1, 3, 3, 9, 5, 17, 79, 137, 123, 809, 583, 3507, 7559, 2857, 13911, 57083, 8595}}, +{7949, 17, 19002, {1, 1, 7, 5, 31, 29, 77, 33, 439, 787, 1223, 2471, 5851, 15891, 27925, 51661, 82645}}, +{7950, 17, 19004, {1, 1, 7, 15, 19, 35, 35, 37, 197, 245, 799, 3971, 277, 11289, 20111, 13857, 104571}}, +{7951, 17, 19010, {1, 3, 5, 15, 19, 3, 65, 17, 201, 1007, 1665, 107, 2409, 1469, 23265, 24547, 8189}}, +{7952, 17, 19012, {1, 3, 1, 13, 29, 45, 109, 243, 43, 383, 631, 265, 6671, 15333, 21931, 30675, 103077}}, +{7953, 17, 19030, {1, 1, 5, 1, 25, 25, 77, 189, 109, 777, 1485, 2265, 1403, 2627, 13843, 27263, 14263}}, +{7954, 17, 19043, {1, 3, 5, 1, 13, 49, 73, 107, 225, 243, 1253, 3503, 735, 2605, 27165, 45467, 93001}}, +{7955, 17, 19049, {1, 1, 5, 9, 15, 17, 1, 33, 69, 321, 1375, 3635, 8131, 6579, 1225, 38699, 17447}}, +{7956, 17, 19079, {1, 3, 5, 3, 25, 49, 15, 149, 483, 37, 1929, 1219, 5841, 11975, 805, 31339, 130971}}, +{7957, 17, 19086, {1, 3, 3, 3, 15, 29, 3, 143, 291, 593, 1769, 3603, 1693, 151, 27701, 9015, 25847}}, +{7958, 17, 19100, {1, 3, 1, 11, 5, 35, 55, 127, 137, 71, 967, 2501, 1023, 2061, 31387, 44011, 130121}}, +{7959, 17, 19103, {1, 1, 7, 1, 29, 13, 93, 41, 125, 263, 521, 2633, 4361, 12153, 30647, 55883, 65185}}, +{7960, 17, 19107, {1, 3, 7, 9, 23, 19, 61, 197, 139, 463, 1867, 3627, 5185, 8251, 26977, 48027, 66301}}, +{7961, 17, 19109, {1, 3, 3, 7, 27, 53, 25, 137, 175, 155, 1843, 2253, 4797, 4989, 32613, 55779, 91625}}, +{7962, 17, 19113, {1, 3, 3, 11, 1, 5, 21, 233, 295, 675, 47, 2995, 8075, 8201, 3845, 23925, 82559}}, +{7963, 17, 19116, {1, 1, 3, 7, 31, 53, 93, 21, 307, 709, 9, 3061, 3935, 11009, 13411, 3657, 30251}}, +{7964, 17, 19127, {1, 3, 7, 13, 13, 25, 51, 205, 391, 897, 275, 333, 6831, 9383, 16101, 14301, 99101}}, +{7965, 17, 19134, {1, 1, 5, 15, 17, 47, 119, 7, 189, 765, 753, 2909, 3373, 2379, 20331, 61535, 51345}}, +{7966, 17, 19141, {1, 1, 3, 1, 27, 43, 9, 185, 9, 197, 1179, 67, 7689, 9679, 29683, 29905, 29393}}, +{7967, 17, 19179, {1, 1, 5, 5, 31, 55, 69, 9, 477, 91, 1705, 1877, 5463, 15401, 13449, 27541, 125521}}, +{7968, 17, 19193, {1, 1, 7, 15, 15, 33, 11, 233, 69, 771, 845, 2715, 5293, 10351, 19557, 15319, 36857}}, +{7969, 17, 19194, {1, 3, 7, 7, 15, 9, 123, 47, 165, 739, 361, 1675, 2743, 8021, 10241, 48275, 51935}}, +{7970, 17, 19201, {1, 1, 5, 1, 9, 25, 99, 83, 487, 627, 343, 3233, 6697, 13197, 19771, 38337, 89139}}, +{7971, 17, 19208, {1, 3, 7, 13, 1, 31, 15, 63, 463, 621, 935, 1093, 6043, 14051, 13665, 43413, 104893}}, +{7972, 17, 19214, {1, 1, 1, 3, 27, 1, 47, 151, 127, 357, 689, 3263, 141, 4459, 9847, 205, 88493}}, +{7973, 17, 19225, {1, 3, 7, 15, 29, 13, 41, 113, 495, 421, 195, 197, 6857, 10555, 22861, 30229, 31707}}, +{7974, 17, 19226, {1, 3, 5, 11, 11, 1, 89, 227, 425, 623, 1605, 1901, 7933, 7211, 16301, 3403, 59651}}, +{7975, 17, 19235, {1, 1, 3, 3, 27, 41, 37, 89, 395, 903, 1641, 2739, 5599, 11371, 8683, 61125, 105231}}, +{7976, 17, 19242, {1, 3, 7, 9, 1, 17, 51, 233, 507, 783, 459, 1187, 7281, 15809, 27637, 6067, 125877}}, +{7977, 17, 19264, {1, 3, 1, 3, 13, 57, 5, 199, 261, 357, 1255, 1849, 8013, 10313, 9375, 1271, 64117}}, +{7978, 17, 19267, {1, 3, 1, 11, 9, 59, 55, 95, 401, 423, 1657, 513, 3565, 12957, 19243, 53027, 11323}}, +{7979, 17, 19293, {1, 3, 7, 13, 27, 35, 121, 215, 397, 991, 191, 3443, 3829, 6107, 5381, 48497, 107997}}, +{7980, 17, 19309, {1, 1, 5, 5, 19, 15, 21, 53, 165, 835, 1599, 3245, 5609, 5991, 18141, 28075, 102809}}, +{7981, 17, 19318, {1, 3, 5, 9, 25, 21, 71, 15, 453, 475, 915, 3097, 5869, 699, 13883, 34919, 127211}}, +{7982, 17, 19324, {1, 1, 3, 7, 21, 53, 27, 207, 373, 703, 593, 17, 6991, 15013, 10125, 34801, 129245}}, +{7983, 17, 19337, {1, 3, 3, 13, 17, 9, 89, 95, 291, 681, 1415, 2323, 2885, 11381, 7703, 3691, 51505}}, +{7984, 17, 19340, {1, 1, 1, 11, 15, 63, 55, 153, 373, 665, 983, 3987, 5997, 6873, 27031, 65449, 22021}}, +{7985, 17, 19345, {1, 1, 5, 5, 1, 55, 119, 61, 159, 889, 225, 709, 1879, 2521, 69, 7815, 18733}}, +{7986, 17, 19346, {1, 3, 5, 11, 23, 53, 23, 61, 71, 993, 633, 1829, 3465, 12465, 30205, 40723, 74499}}, +{7987, 17, 19352, {1, 3, 3, 1, 17, 37, 19, 43, 55, 133, 1171, 3101, 3963, 5177, 24791, 7255, 10263}}, +{7988, 17, 19364, {1, 3, 7, 1, 21, 13, 21, 87, 237, 629, 1167, 3699, 597, 6251, 11545, 34429, 104393}}, +{7989, 17, 19382, {1, 1, 7, 1, 11, 53, 105, 111, 463, 869, 549, 2423, 17, 917, 879, 49367, 72235}}, +{7990, 17, 19391, {1, 1, 5, 15, 17, 51, 69, 55, 309, 867, 257, 573, 4821, 5245, 28033, 61801, 18253}}, +{7991, 17, 19405, {1, 1, 5, 3, 1, 23, 103, 241, 13, 267, 21, 1751, 6637, 12537, 26741, 40651, 94493}}, +{7992, 17, 19411, {1, 3, 3, 13, 25, 35, 21, 83, 337, 363, 1111, 1865, 7889, 985, 465, 40287, 64469}}, +{7993, 17, 19439, {1, 1, 7, 5, 27, 1, 99, 95, 209, 211, 1445, 1577, 6097, 13813, 22463, 64395, 106383}}, +{7994, 17, 19442, {1, 3, 1, 15, 1, 45, 77, 247, 273, 1023, 1377, 1989, 5787, 15267, 24363, 42717, 125617}}, +{7995, 17, 19444, {1, 1, 1, 3, 9, 49, 79, 171, 427, 439, 1725, 3179, 6263, 12437, 31353, 22077, 94455}}, +{7996, 17, 19451, {1, 3, 5, 11, 11, 45, 57, 97, 409, 935, 967, 2509, 3431, 5707, 19473, 15853, 129059}}, +{7997, 17, 19465, {1, 1, 7, 5, 7, 21, 105, 29, 359, 145, 1691, 131, 6721, 10971, 16173, 38193, 37091}}, +{7998, 17, 19471, {1, 1, 1, 15, 15, 35, 5, 185, 455, 507, 681, 3355, 2091, 3437, 27231, 28527, 5383}}, +{7999, 17, 19474, {1, 3, 5, 3, 7, 29, 33, 127, 57, 495, 1069, 3635, 7461, 9861, 18757, 39039, 92421}}, +{8000, 17, 19476, {1, 3, 5, 5, 11, 31, 51, 59, 413, 417, 1577, 2837, 5229, 4501, 18645, 37613, 31325}}, +{8001, 17, 19479, {1, 1, 5, 13, 15, 61, 17, 247, 413, 817, 907, 2249, 3901, 11275, 7469, 33403, 30629}}, +{8002, 17, 19485, {1, 3, 5, 7, 31, 7, 109, 177, 277, 75, 449, 3029, 7135, 427, 26641, 43157, 47671}}, +{8003, 17, 19489, {1, 3, 7, 13, 29, 63, 21, 187, 471, 289, 835, 3885, 6111, 8721, 9841, 24017, 18673}}, +{8004, 17, 19496, {1, 1, 5, 13, 25, 37, 15, 35, 227, 623, 47, 189, 3443, 1911, 8579, 50911, 10895}}, +{8005, 17, 19507, {1, 3, 1, 1, 29, 53, 89, 101, 251, 203, 821, 2485, 633, 7943, 27563, 58735, 72057}}, +{8006, 17, 19513, {1, 3, 7, 9, 23, 61, 121, 199, 19, 165, 131, 1373, 637, 7307, 7109, 42475, 126669}}, +{8007, 17, 19514, {1, 3, 7, 13, 7, 5, 125, 173, 365, 65, 565, 751, 3343, 13421, 6177, 39095, 97375}}, +{8008, 17, 19521, {1, 1, 7, 3, 1, 59, 65, 39, 307, 793, 887, 3291, 3405, 4497, 19351, 1821, 67861}}, +{8009, 17, 19524, {1, 1, 1, 3, 19, 9, 101, 183, 163, 819, 769, 49, 5293, 3715, 4055, 32403, 90763}}, +{8010, 17, 19546, {1, 3, 3, 1, 27, 31, 21, 123, 457, 1021, 1791, 2217, 6171, 11445, 15605, 59945, 19663}}, +{8011, 17, 19552, {1, 1, 1, 9, 13, 53, 61, 201, 457, 111, 1217, 377, 5871, 4591, 16379, 42817, 129807}}, +{8012, 17, 19555, {1, 3, 1, 5, 23, 37, 25, 7, 125, 651, 349, 3727, 1487, 5103, 31407, 40215, 16065}}, +{8013, 17, 19557, {1, 1, 3, 11, 19, 29, 1, 193, 13, 287, 331, 985, 5391, 7307, 28075, 9939, 84999}}, +{8014, 17, 19575, {1, 1, 1, 11, 21, 37, 117, 241, 229, 957, 2019, 819, 459, 6185, 21533, 64725, 24709}}, +{8015, 17, 19579, {1, 3, 5, 13, 11, 25, 107, 245, 175, 519, 629, 537, 2227, 15123, 10619, 32611, 118697}}, +{8016, 17, 19591, {1, 3, 1, 11, 5, 53, 119, 253, 489, 181, 1365, 3465, 1323, 949, 3657, 2467, 38545}}, +{8017, 17, 19595, {1, 1, 3, 9, 27, 17, 109, 19, 297, 541, 89, 3021, 761, 5577, 907, 21405, 128029}}, +{8018, 17, 19605, {1, 1, 3, 9, 31, 9, 61, 149, 267, 707, 671, 2733, 1247, 14623, 6395, 42579, 30845}}, +{8019, 17, 19615, {1, 1, 7, 7, 25, 29, 63, 41, 309, 275, 2019, 1373, 1003, 13891, 16571, 16209, 30115}}, +{8020, 17, 19616, {1, 3, 7, 1, 5, 21, 53, 97, 475, 799, 1963, 1181, 4187, 8767, 24779, 10403, 98349}}, +{8021, 17, 19626, {1, 3, 3, 13, 19, 9, 125, 227, 347, 535, 353, 3087, 769, 9049, 20145, 27433, 23105}}, +{8022, 17, 19631, {1, 1, 1, 15, 7, 61, 51, 113, 403, 501, 1767, 2785, 7151, 14517, 17533, 24913, 7121}}, +{8023, 17, 19634, {1, 1, 1, 9, 7, 21, 27, 169, 425, 567, 31, 35, 7859, 929, 6545, 33983, 13227}}, +{8024, 17, 19640, {1, 1, 5, 15, 11, 15, 69, 33, 127, 1005, 1947, 989, 6333, 15587, 18523, 53547, 115613}}, +{8025, 17, 19645, {1, 3, 5, 3, 1, 55, 7, 99, 213, 737, 363, 3167, 3949, 3723, 15777, 23207, 22901}}, +{8026, 17, 19678, {1, 1, 1, 9, 9, 29, 121, 85, 467, 811, 1, 3543, 6259, 4477, 31371, 27633, 22995}}, +{8027, 17, 19681, {1, 3, 5, 3, 11, 21, 95, 19, 55, 71, 803, 3655, 3749, 5113, 13611, 38097, 20943}}, +{8028, 17, 19682, {1, 3, 3, 11, 19, 25, 127, 105, 447, 499, 485, 881, 2649, 10297, 22283, 18305, 128919}}, +{8029, 17, 19706, {1, 3, 7, 1, 11, 45, 21, 87, 481, 645, 815, 793, 5763, 3945, 14379, 19623, 103199}}, +{8030, 17, 19708, {1, 3, 5, 1, 3, 45, 39, 229, 359, 151, 1079, 3955, 2107, 9593, 6701, 2811, 55215}}, +{8031, 17, 19713, {1, 3, 7, 7, 27, 59, 69, 211, 373, 643, 977, 3545, 2647, 10473, 27919, 10719, 24823}}, +{8032, 17, 19714, {1, 1, 3, 11, 7, 27, 117, 21, 59, 679, 969, 3813, 2701, 7363, 17525, 31229, 100665}}, +{8033, 17, 19720, {1, 3, 3, 5, 29, 53, 113, 141, 197, 991, 81, 2701, 6831, 7949, 16569, 44185, 29631}}, +{8034, 17, 19725, {1, 1, 1, 3, 1, 31, 9, 101, 347, 585, 577, 2529, 7461, 11921, 29475, 34505, 74911}}, +{8035, 17, 19743, {1, 1, 1, 15, 25, 19, 95, 37, 93, 755, 1891, 2309, 623, 13503, 5811, 45863, 106501}}, +{8036, 17, 19753, {1, 1, 5, 3, 15, 23, 51, 225, 87, 679, 1225, 4015, 3971, 163, 3185, 12921, 51267}}, +{8037, 17, 19756, {1, 1, 5, 1, 1, 37, 105, 181, 379, 657, 571, 2775, 5905, 8391, 32069, 18713, 125833}}, +{8038, 17, 19759, {1, 1, 7, 11, 11, 19, 109, 125, 371, 321, 629, 2165, 2861, 7883, 15503, 37679, 33057}}, +{8039, 17, 19762, {1, 1, 3, 5, 7, 5, 21, 5, 169, 321, 1145, 2243, 6143, 2537, 4429, 56493, 39391}}, +{8040, 17, 19776, {1, 3, 5, 5, 31, 7, 15, 175, 441, 663, 921, 3113, 2261, 13033, 19135, 28657, 92225}}, +{8041, 17, 19786, {1, 3, 1, 11, 13, 9, 25, 57, 297, 3, 1561, 825, 2803, 11327, 2699, 28631, 57277}}, +{8042, 17, 19799, {1, 1, 3, 9, 15, 25, 81, 197, 345, 341, 1557, 1375, 2509, 11949, 30201, 6807, 95199}}, +{8043, 17, 19800, {1, 3, 5, 3, 15, 23, 91, 147, 277, 59, 495, 1423, 1775, 12065, 8401, 22639, 111199}}, +{8044, 17, 19803, {1, 1, 5, 1, 1, 59, 35, 255, 229, 293, 187, 2663, 3967, 6493, 20103, 36703, 108939}}, +{8045, 17, 19806, {1, 3, 7, 11, 15, 1, 23, 39, 27, 281, 11, 3119, 2791, 1691, 16521, 39715, 32145}}, +{8046, 17, 19815, {1, 3, 5, 5, 9, 53, 43, 49, 107, 1015, 431, 3017, 3317, 9655, 19193, 45621, 56861}}, +{8047, 17, 19816, {1, 3, 1, 15, 27, 63, 127, 31, 21, 245, 1503, 3339, 6375, 5411, 12369, 35973, 9473}}, +{8048, 17, 19857, {1, 1, 3, 13, 31, 61, 19, 99, 25, 593, 539, 1807, 673, 12339, 23567, 22005, 130341}}, +{8049, 17, 19860, {1, 1, 5, 3, 3, 3, 13, 183, 255, 41, 641, 581, 6509, 1891, 19195, 28277, 51725}}, +{8050, 17, 19874, {1, 1, 3, 5, 3, 59, 17, 227, 9, 345, 1303, 1535, 3089, 2653, 20647, 63159, 124677}}, +{8051, 17, 19883, {1, 3, 1, 11, 25, 19, 117, 29, 221, 461, 1285, 1427, 7183, 3051, 10839, 47491, 92613}}, +{8052, 17, 19885, {1, 1, 3, 5, 27, 19, 1, 235, 51, 215, 783, 2325, 1191, 4679, 14365, 35479, 65083}}, +{8053, 17, 19886, {1, 3, 3, 5, 27, 17, 79, 185, 259, 369, 1399, 1029, 2219, 10975, 30487, 15247, 39789}}, +{8054, 17, 19893, {1, 3, 3, 1, 13, 13, 59, 119, 249, 471, 1433, 1165, 5345, 4431, 375, 64999, 85577}}, +{8055, 17, 19932, {1, 1, 1, 3, 1, 19, 13, 243, 35, 675, 321, 3625, 7835, 6403, 651, 48283, 91819}}, +{8056, 17, 19960, {1, 3, 3, 1, 27, 13, 73, 159, 145, 59, 287, 2419, 8115, 7923, 18933, 36109, 123879}}, +{8057, 17, 19972, {1, 3, 1, 7, 21, 1, 83, 245, 477, 623, 391, 129, 6897, 3447, 11109, 17017, 68277}}, +{8058, 17, 19975, {1, 1, 3, 11, 13, 43, 119, 93, 99, 393, 1219, 995, 1881, 7929, 4337, 33579, 103211}}, +{8059, 17, 20005, {1, 1, 7, 7, 31, 5, 39, 25, 119, 819, 409, 2395, 151, 12763, 28265, 28909, 35685}}, +{8060, 17, 20009, {1, 1, 1, 1, 3, 13, 59, 205, 19, 843, 1691, 955, 1859, 1791, 22083, 37843, 63615}}, +{8061, 17, 20010, {1, 1, 1, 3, 11, 63, 41, 243, 103, 875, 1337, 3731, 6317, 12951, 31743, 56935, 55975}}, +{8062, 17, 20012, {1, 1, 3, 13, 19, 11, 51, 97, 469, 279, 1621, 3521, 853, 11849, 3331, 27907, 119081}}, +{8063, 17, 20023, {1, 1, 5, 1, 23, 55, 9, 141, 449, 41, 167, 2441, 6783, 2785, 3547, 35379, 74973}}, +{8064, 17, 20024, {1, 1, 5, 3, 15, 55, 13, 75, 107, 153, 1841, 3991, 3229, 6523, 18541, 21571, 31539}}, +{8065, 17, 20030, {1, 3, 1, 1, 27, 37, 35, 201, 401, 867, 1861, 1783, 6255, 14001, 29543, 25843, 39719}}, +{8066, 17, 20038, {1, 1, 7, 15, 3, 43, 113, 173, 297, 457, 1369, 4053, 5033, 5513, 27387, 14725, 79937}}, +{8067, 17, 20041, {1, 1, 5, 13, 5, 27, 109, 93, 187, 833, 1551, 2899, 1681, 6979, 1289, 3507, 66499}}, +{8068, 17, 20055, {1, 1, 3, 11, 11, 47, 121, 29, 129, 807, 2037, 1527, 6083, 14803, 10669, 46047, 70241}}, +{8069, 17, 20059, {1, 3, 1, 9, 29, 3, 19, 191, 461, 527, 1389, 3359, 81, 6773, 12185, 49207, 19091}}, +{8070, 17, 20061, {1, 3, 7, 7, 5, 47, 33, 27, 445, 1, 149, 343, 4827, 91, 29233, 37775, 89321}}, +{8071, 17, 20080, {1, 3, 5, 1, 13, 55, 107, 99, 259, 591, 983, 3863, 1231, 3457, 29645, 10709, 16543}}, +{8072, 17, 20086, {1, 3, 7, 9, 29, 5, 9, 165, 337, 187, 219, 97, 6511, 193, 23947, 36329, 35317}}, +{8073, 17, 20089, {1, 3, 7, 1, 31, 25, 5, 175, 409, 1021, 1873, 289, 7143, 15341, 31501, 25707, 106453}}, +{8074, 17, 20095, {1, 3, 7, 7, 27, 1, 15, 221, 341, 987, 1739, 1183, 8139, 11081, 29721, 42991, 72805}}, +{8075, 17, 20111, {1, 1, 1, 9, 11, 1, 13, 17, 501, 543, 1485, 987, 1861, 8527, 1621, 30461, 23057}}, +{8076, 17, 20116, {1, 3, 7, 7, 9, 41, 1, 253, 71, 1009, 427, 3347, 6987, 3303, 30535, 33345, 126459}}, +{8077, 17, 20130, {1, 1, 1, 7, 11, 11, 15, 11, 305, 559, 1805, 1111, 377, 1495, 13471, 34831, 123125}}, +{8078, 17, 20136, {1, 1, 5, 7, 9, 37, 27, 45, 61, 705, 263, 3181, 7077, 5227, 28121, 42865, 3809}}, +{8079, 17, 20147, {1, 1, 5, 1, 23, 25, 29, 199, 259, 959, 661, 43, 6157, 1547, 1497, 24077, 129939}}, +{8080, 17, 20153, {1, 3, 5, 3, 13, 49, 33, 19, 367, 891, 1777, 3119, 5673, 8383, 14487, 1763, 63495}}, +{8081, 17, 20156, {1, 1, 1, 13, 9, 57, 35, 181, 7, 225, 449, 3843, 6257, 4983, 31307, 16559, 27633}}, +{8082, 17, 20167, {1, 3, 1, 11, 7, 33, 55, 81, 41, 61, 1711, 3273, 7629, 11283, 9103, 24105, 107547}}, +{8083, 17, 20173, {1, 3, 5, 5, 13, 17, 13, 51, 235, 869, 1543, 1249, 7749, 14773, 21751, 53497, 108709}}, +{8084, 17, 20182, {1, 1, 3, 9, 3, 63, 89, 43, 23, 479, 115, 3917, 7943, 7323, 5659, 64507, 46941}}, +{8085, 17, 20185, {1, 1, 3, 1, 25, 63, 25, 169, 459, 633, 1785, 1059, 5113, 4799, 29281, 24561, 17017}}, +{8086, 17, 20202, {1, 1, 3, 3, 15, 3, 11, 173, 493, 5, 1575, 653, 7391, 7453, 8297, 28653, 6213}}, +{8087, 17, 20209, {1, 1, 7, 5, 29, 5, 1, 57, 75, 479, 787, 3417, 3349, 111, 17787, 41141, 97597}}, +{8088, 17, 20229, {1, 3, 7, 1, 11, 7, 107, 159, 435, 159, 1401, 803, 7065, 5923, 4005, 37271, 113791}}, +{8089, 17, 20233, {1, 1, 5, 1, 23, 55, 7, 59, 351, 801, 1279, 3231, 4561, 2857, 20563, 46115, 79489}}, +{8090, 17, 20236, {1, 3, 3, 15, 19, 13, 113, 33, 149, 175, 1127, 3815, 4357, 12645, 4449, 61355, 83023}}, +{8091, 17, 20241, {1, 1, 7, 15, 3, 17, 41, 57, 243, 319, 1631, 2751, 7853, 5977, 28367, 20023, 56049}}, +{8092, 17, 20242, {1, 3, 1, 7, 27, 59, 7, 13, 497, 241, 1827, 2861, 1331, 1759, 6037, 18967, 42849}}, +{8093, 17, 20248, {1, 3, 1, 1, 31, 43, 41, 183, 241, 219, 335, 2331, 755, 10589, 29431, 29007, 66667}}, +{8094, 17, 20278, {1, 1, 3, 1, 27, 37, 61, 117, 471, 39, 139, 3821, 2945, 7035, 23673, 20167, 56169}}, +{8095, 17, 20282, {1, 3, 1, 1, 9, 29, 123, 61, 171, 1015, 1029, 1695, 1039, 11883, 259, 10879, 97709}}, +{8096, 17, 20299, {1, 3, 3, 5, 29, 39, 65, 193, 285, 635, 999, 717, 5465, 1849, 4293, 19775, 79121}}, +{8097, 17, 20307, {1, 1, 7, 1, 3, 3, 103, 15, 451, 307, 1027, 263, 6585, 11651, 14457, 62695, 38407}}, +{8098, 17, 20313, {1, 3, 7, 11, 13, 13, 29, 83, 267, 561, 2041, 13, 3167, 3475, 14735, 34455, 117533}}, +{8099, 17, 20314, {1, 3, 1, 15, 5, 1, 35, 225, 151, 637, 1347, 833, 7077, 13145, 10285, 46583, 14351}}, +{8100, 17, 20320, {1, 1, 3, 15, 27, 63, 119, 159, 209, 421, 1413, 2727, 1607, 7175, 6133, 29051, 97387}}, +{8101, 17, 20326, {1, 1, 3, 5, 9, 29, 35, 93, 353, 903, 1037, 469, 5473, 7193, 21883, 14709, 89023}}, +{8102, 17, 20332, {1, 1, 1, 11, 9, 17, 51, 155, 145, 443, 1985, 423, 4721, 15721, 9747, 10303, 21909}}, +{8103, 17, 20350, {1, 3, 7, 15, 19, 49, 53, 153, 241, 739, 1585, 3945, 4869, 11, 15845, 17937, 69397}}, +{8104, 17, 20360, {1, 1, 5, 7, 19, 53, 43, 211, 327, 723, 1513, 1569, 919, 1771, 11309, 50787, 7459}}, +{8105, 17, 20371, {1, 1, 1, 9, 7, 29, 49, 89, 409, 685, 201, 1327, 2807, 13101, 2485, 62909, 102595}}, +{8106, 17, 20373, {1, 3, 1, 13, 21, 51, 37, 231, 271, 475, 855, 3703, 4447, 5161, 17937, 14471, 47173}}, +{8107, 17, 20377, {1, 1, 7, 3, 9, 7, 121, 197, 71, 147, 1669, 1745, 6589, 15029, 1529, 12625, 121925}}, +{8108, 17, 20390, {1, 1, 1, 3, 7, 47, 63, 61, 187, 341, 919, 307, 389, 14141, 12941, 17917, 104289}}, +{8109, 17, 20396, {1, 3, 5, 13, 19, 43, 57, 11, 383, 311, 1229, 3527, 3301, 12473, 24377, 16279, 92733}}, +{8110, 17, 20404, {1, 3, 3, 5, 25, 35, 63, 23, 131, 481, 809, 3627, 5685, 13695, 14121, 64751, 66181}}, +{8111, 17, 20413, {1, 3, 1, 5, 11, 43, 89, 55, 103, 219, 1861, 3223, 5111, 5879, 31399, 1395, 87419}}, +{8112, 17, 20434, {1, 3, 1, 11, 21, 27, 123, 205, 47, 923, 7, 1635, 4019, 8431, 28313, 24275, 129617}}, +{8113, 17, 20436, {1, 1, 1, 3, 1, 11, 91, 215, 393, 999, 1071, 3225, 4415, 759, 24499, 16109, 33791}}, +{8114, 17, 20440, {1, 1, 3, 13, 19, 45, 77, 103, 105, 395, 529, 3631, 8179, 4467, 30263, 39379, 70507}}, +{8115, 17, 20443, {1, 3, 3, 9, 17, 45, 101, 219, 433, 971, 471, 1243, 6955, 5941, 20641, 16119, 129383}}, +{8116, 17, 20445, {1, 1, 7, 7, 9, 9, 91, 95, 503, 171, 129, 1509, 7179, 5367, 2219, 50445, 112459}}, +{8117, 17, 20464, {1, 3, 7, 1, 17, 17, 19, 173, 229, 519, 147, 1835, 3797, 8091, 20335, 33177, 90197}}, +{8118, 17, 20476, {1, 3, 3, 5, 23, 29, 107, 205, 43, 969, 799, 1239, 1353, 5221, 15175, 42945, 34043}}, +{8119, 17, 20494, {1, 1, 5, 7, 31, 63, 67, 87, 189, 301, 1719, 3937, 965, 2505, 24781, 25133, 91675}}, +{8120, 17, 20496, {1, 3, 1, 7, 15, 25, 11, 39, 281, 35, 1149, 1445, 6451, 12069, 20959, 29895, 60059}}, +{8121, 17, 20501, {1, 1, 5, 1, 1, 17, 65, 213, 359, 561, 2015, 1629, 3521, 6877, 8099, 62483, 103903}}, +{8122, 17, 20518, {1, 1, 7, 9, 7, 49, 1, 227, 49, 823, 1141, 2419, 2697, 13293, 14143, 6323, 16081}}, +{8123, 17, 20527, {1, 3, 3, 1, 9, 13, 99, 235, 343, 601, 927, 183, 4545, 14529, 5521, 55571, 90675}}, +{8124, 17, 20529, {1, 1, 5, 1, 13, 49, 95, 153, 131, 955, 283, 2951, 3651, 7743, 4285, 42621, 110577}}, +{8125, 17, 20535, {1, 1, 1, 9, 19, 59, 97, 181, 67, 357, 497, 287, 3523, 3729, 28981, 59687, 39463}}, +{8126, 17, 20544, {1, 1, 3, 7, 5, 19, 107, 55, 393, 225, 1953, 669, 8063, 6537, 15983, 59891, 95079}}, +{8127, 17, 20568, {1, 3, 1, 5, 29, 21, 17, 169, 447, 697, 1613, 3483, 3139, 11175, 28865, 12065, 130241}}, +{8128, 17, 20589, {1, 3, 5, 7, 5, 49, 35, 181, 85, 505, 1537, 1345, 773, 3255, 27405, 3959, 126377}}, +{8129, 17, 20592, {1, 1, 7, 15, 9, 9, 17, 99, 409, 319, 807, 1721, 4023, 2171, 32657, 51663, 23253}}, +{8130, 17, 20601, {1, 3, 5, 1, 5, 3, 37, 219, 89, 263, 397, 573, 6147, 9525, 2521, 11153, 94319}}, +{8131, 17, 20617, {1, 1, 5, 5, 11, 39, 55, 205, 209, 239, 1443, 2477, 1941, 8337, 2883, 54593, 129859}}, +{8132, 17, 20625, {1, 1, 1, 7, 11, 13, 127, 65, 127, 413, 1553, 413, 3395, 9451, 7517, 34103, 57029}}, +{8133, 17, 20626, {1, 1, 1, 15, 5, 25, 109, 181, 399, 1023, 277, 3365, 6209, 827, 13933, 27483, 63835}}, +{8134, 17, 20632, {1, 1, 3, 3, 21, 57, 95, 127, 481, 365, 197, 3631, 7443, 4925, 31277, 35061, 35875}}, +{8135, 17, 20638, {1, 1, 7, 13, 3, 31, 59, 127, 441, 967, 1049, 1281, 3553, 375, 9683, 45755, 18889}}, +{8136, 17, 20644, {1, 1, 1, 13, 11, 39, 49, 43, 383, 607, 157, 1887, 3623, 13335, 31949, 49843, 96781}}, +{8137, 17, 20647, {1, 3, 7, 13, 19, 35, 21, 9, 299, 425, 1921, 3481, 6849, 4149, 5227, 56737, 27559}}, +{8138, 17, 20662, {1, 3, 7, 5, 21, 11, 79, 97, 1, 849, 819, 1133, 3393, 5429, 10621, 38787, 120785}}, +{8139, 17, 20671, {1, 1, 1, 13, 21, 29, 3, 239, 399, 619, 759, 2655, 3691, 655, 30979, 15507, 114791}}, +{8140, 17, 20674, {1, 3, 5, 3, 1, 61, 79, 43, 273, 965, 1759, 3901, 2437, 1703, 20205, 46291, 23679}}, +{8141, 17, 20683, {1, 1, 1, 9, 19, 57, 75, 245, 377, 261, 231, 3683, 6745, 7797, 28471, 56269, 109969}}, +{8142, 17, 20704, {1, 3, 1, 11, 9, 55, 53, 87, 33, 431, 1805, 2933, 455, 12479, 16235, 2667, 70105}}, +{8143, 17, 20724, {1, 3, 5, 1, 29, 1, 101, 17, 377, 499, 1365, 209, 4819, 15099, 8769, 37003, 53003}}, +{8144, 17, 20742, {1, 3, 5, 11, 11, 39, 109, 235, 337, 393, 35, 1071, 7085, 7165, 25143, 24223, 71493}}, +{8145, 17, 20748, {1, 3, 1, 5, 13, 49, 9, 205, 305, 943, 799, 2405, 319, 10755, 9785, 32023, 48015}}, +{8146, 17, 20765, {1, 3, 1, 9, 29, 35, 123, 101, 73, 747, 1257, 407, 5871, 4271, 14837, 52727, 13339}}, +{8147, 17, 20776, {1, 3, 3, 9, 31, 7, 113, 27, 89, 123, 1117, 531, 5531, 7897, 11209, 35267, 123457}}, +{8148, 17, 20789, {1, 1, 1, 1, 29, 19, 93, 11, 61, 743, 267, 13, 6561, 7667, 20537, 12675, 10481}}, +{8149, 17, 20796, {1, 1, 5, 13, 27, 47, 103, 171, 349, 139, 1709, 961, 783, 7147, 5569, 53395, 80797}}, +{8150, 17, 20802, {1, 3, 1, 9, 21, 49, 41, 175, 507, 861, 1157, 1033, 6795, 5795, 603, 12485, 75263}}, +{8151, 17, 20807, {1, 1, 5, 7, 23, 3, 21, 165, 123, 951, 785, 2065, 8001, 7009, 22981, 10011, 9807}}, +{8152, 17, 20814, {1, 3, 7, 15, 1, 53, 49, 197, 231, 351, 141, 3465, 7907, 10695, 30913, 26753, 71079}}, +{8153, 17, 20821, {1, 3, 5, 3, 29, 45, 23, 131, 65, 507, 75, 275, 7287, 187, 1093, 52657, 31533}}, +{8154, 17, 20832, {1, 3, 5, 9, 9, 7, 113, 125, 441, 75, 663, 4081, 3147, 1469, 28375, 35747, 122965}}, +{8155, 17, 20835, {1, 1, 7, 3, 3, 57, 5, 17, 183, 237, 965, 3709, 4161, 9513, 217, 58835, 78789}}, +{8156, 17, 20847, {1, 1, 3, 1, 7, 25, 13, 29, 173, 319, 1723, 57, 2401, 10405, 15541, 52915, 93747}}, +{8157, 17, 20859, {1, 1, 7, 5, 1, 31, 11, 61, 341, 97, 1199, 2585, 5909, 3707, 31507, 51233, 2389}}, +{8158, 17, 20871, {1, 1, 5, 15, 15, 21, 127, 155, 229, 203, 1303, 3215, 1965, 9481, 31909, 52307, 112207}}, +{8159, 17, 20883, {1, 3, 1, 13, 9, 45, 91, 39, 113, 587, 895, 637, 2475, 1695, 9347, 53255, 75797}}, +{8160, 17, 20886, {1, 3, 5, 13, 17, 11, 35, 83, 69, 255, 741, 3927, 153, 11001, 29145, 37107, 51873}}, +{8161, 17, 20892, {1, 1, 7, 5, 5, 37, 35, 219, 153, 1005, 973, 2555, 893, 5931, 23857, 34631, 74561}}, +{8162, 17, 20906, {1, 3, 1, 11, 21, 63, 113, 29, 115, 307, 957, 407, 879, 4819, 2865, 1773, 116825}}, +{8163, 17, 20908, {1, 3, 7, 3, 19, 55, 87, 21, 139, 571, 311, 2295, 2729, 6371, 11845, 30223, 19247}}, +{8164, 17, 20957, {1, 3, 7, 5, 23, 9, 59, 25, 357, 863, 435, 2509, 5599, 14039, 25731, 41645, 255}}, +{8165, 17, 20962, {1, 3, 7, 13, 9, 3, 63, 115, 503, 489, 1585, 813, 5419, 691, 23973, 18677, 59979}}, +{8166, 17, 20968, {1, 1, 1, 1, 13, 3, 55, 23, 185, 731, 459, 1497, 433, 16243, 29995, 20777, 59513}}, +{8167, 17, 20979, {1, 1, 7, 3, 27, 55, 77, 57, 349, 5, 617, 385, 6225, 7025, 23335, 877, 21973}}, +{8168, 17, 20991, {1, 3, 3, 5, 3, 37, 105, 197, 153, 639, 1643, 1093, 801, 4605, 4551, 46081, 7739}}, +{8169, 17, 20998, {1, 1, 5, 11, 29, 23, 5, 91, 39, 489, 2029, 887, 4451, 11463, 5641, 56299, 34027}}, +{8170, 17, 21007, {1, 1, 7, 3, 17, 11, 25, 161, 317, 701, 155, 1989, 7549, 11529, 9945, 18395, 61251}}, +{8171, 17, 21010, {1, 1, 7, 13, 23, 55, 113, 91, 17, 149, 1893, 2793, 8185, 81, 29487, 47925, 51837}}, +{8172, 17, 21026, {1, 3, 7, 7, 9, 29, 103, 161, 215, 129, 113, 1987, 919, 9639, 20715, 6541, 15041}}, +{8173, 17, 21037, {1, 1, 5, 9, 19, 19, 127, 43, 263, 997, 1687, 3801, 4249, 6309, 25889, 1787, 122771}}, +{8174, 17, 21038, {1, 3, 5, 13, 17, 3, 91, 183, 349, 467, 333, 3299, 3085, 12135, 16801, 31471, 37227}}, +{8175, 17, 21045, {1, 1, 5, 3, 7, 53, 11, 221, 407, 545, 237, 3631, 1791, 3729, 19737, 921, 57303}}, +{8176, 17, 21057, {1, 3, 7, 15, 3, 27, 71, 45, 219, 9, 1135, 2267, 6841, 8637, 30317, 9397, 115425}}, +{8177, 17, 21082, {1, 1, 3, 5, 29, 59, 121, 225, 419, 813, 1725, 3969, 3451, 8457, 31803, 57659, 33263}}, +{8178, 17, 21093, {1, 3, 3, 3, 17, 3, 65, 249, 423, 293, 1333, 3947, 1477, 4005, 30445, 28171, 95823}}, +{8179, 17, 21094, {1, 3, 3, 11, 29, 45, 67, 89, 75, 95, 555, 1823, 2795, 11929, 1995, 30013, 116241}}, +{8180, 17, 21105, {1, 3, 3, 3, 23, 35, 87, 221, 385, 275, 803, 387, 7765, 15637, 27953, 20913, 25279}}, +{8181, 17, 21117, {1, 3, 7, 15, 15, 43, 21, 179, 393, 95, 1913, 1715, 4467, 15093, 13613, 50775, 37133}}, +{8182, 17, 21121, {1, 1, 7, 7, 31, 27, 49, 71, 323, 123, 597, 2395, 4449, 7249, 20197, 19789, 92685}}, +{8183, 17, 21124, {1, 1, 5, 13, 31, 37, 89, 225, 357, 201, 1887, 3915, 2165, 10809, 21623, 34375, 110905}}, +{8184, 17, 21136, {1, 1, 5, 7, 11, 53, 37, 55, 61, 679, 1465, 1587, 2215, 16237, 14985, 50507, 128637}}, +{8185, 17, 21139, {1, 1, 7, 1, 15, 53, 115, 21, 279, 555, 43, 2429, 7251, 2141, 4813, 47047, 119551}}, +{8186, 17, 21142, {1, 1, 5, 13, 11, 41, 59, 245, 337, 117, 1125, 4007, 947, 10591, 17795, 48535, 72171}}, +{8187, 17, 21145, {1, 1, 5, 15, 27, 41, 71, 43, 505, 539, 975, 1567, 795, 4433, 11689, 53051, 98819}}, +{8188, 17, 21167, {1, 1, 7, 9, 1, 57, 57, 137, 323, 311, 759, 3027, 3713, 13, 24133, 21451, 1153}}, +{8189, 17, 21170, {1, 1, 5, 15, 31, 49, 23, 123, 271, 549, 1995, 5, 6065, 3797, 1085, 50137, 19741}}, +{8190, 17, 21175, {1, 3, 3, 13, 5, 15, 21, 117, 487, 43, 1759, 2899, 4239, 9729, 16711, 31559, 34553}}, +{8191, 17, 21179, {1, 1, 5, 13, 5, 23, 83, 49, 147, 267, 923, 1377, 1687, 1793, 30383, 19537, 66989}}, +{8192, 17, 21182, {1, 1, 1, 13, 9, 41, 105, 241, 499, 891, 885, 3349, 4703, 5609, 11999, 58025, 69089}}, +{8193, 17, 21193, {1, 1, 7, 9, 21, 11, 121, 69, 115, 895, 91, 3745, 41, 12787, 26181, 31399, 30463}}, +{8194, 17, 21194, {1, 1, 7, 13, 11, 3, 23, 173, 5, 907, 45, 3465, 2807, 3731, 14347, 27973, 8567}}, +{8195, 17, 21207, {1, 3, 7, 5, 27, 47, 43, 25, 499, 57, 649, 705, 6223, 4213, 4549, 23213, 13657}}, +{8196, 17, 21217, {1, 1, 7, 11, 21, 35, 5, 79, 295, 359, 1993, 99, 7917, 14917, 2131, 45527, 31451}}, +{8197, 17, 21224, {1, 1, 5, 15, 1, 39, 85, 93, 65, 991, 389, 585, 4835, 11671, 10913, 41787, 84953}}, +{8198, 17, 21244, {1, 1, 1, 5, 27, 5, 1, 15, 11, 83, 1191, 3945, 4697, 7703, 6929, 6057, 88721}}, +{8199, 17, 21247, {1, 1, 3, 7, 27, 39, 71, 181, 191, 997, 419, 1671, 7771, 15305, 18677, 45033, 64745}}, +{8200, 17, 21252, {1, 3, 7, 3, 15, 41, 33, 239, 93, 307, 153, 2701, 1549, 5011, 6913, 19257, 55829}}, +{8201, 17, 21264, {1, 3, 3, 11, 21, 47, 69, 223, 365, 877, 431, 1629, 4803, 11591, 13973, 56359, 11897}}, +{8202, 17, 21273, {1, 3, 7, 7, 1, 59, 63, 129, 251, 873, 603, 2707, 2847, 8739, 31343, 63291, 5607}}, +{8203, 17, 21289, {1, 3, 5, 5, 19, 13, 79, 235, 151, 571, 953, 2191, 5973, 4751, 11119, 14439, 97755}}, +{8204, 17, 21290, {1, 1, 5, 1, 27, 3, 105, 139, 13, 821, 221, 2025, 7303, 1891, 28193, 45537, 92703}}, +{8205, 17, 21295, {1, 3, 7, 9, 13, 63, 27, 149, 51, 121, 587, 3695, 4115, 3955, 22493, 34903, 51669}}, +{8206, 17, 21297, {1, 1, 5, 7, 19, 5, 89, 87, 269, 585, 421, 3827, 315, 14739, 109, 43009, 94969}}, +{8207, 17, 21309, {1, 1, 5, 15, 9, 53, 125, 83, 159, 917, 1583, 585, 6839, 14957, 20007, 60467, 96309}}, +{8208, 17, 21318, {1, 3, 5, 1, 23, 49, 109, 91, 17, 731, 1083, 3153, 1825, 14293, 25639, 44599, 47541}}, +{8209, 17, 21322, {1, 1, 3, 7, 21, 51, 45, 25, 367, 925, 799, 1673, 6977, 7155, 829, 25899, 104615}}, +{8210, 17, 21324, {1, 3, 3, 13, 13, 49, 95, 239, 195, 353, 1967, 1419, 929, 503, 11717, 9485, 62885}}, +{8211, 17, 21329, {1, 1, 1, 15, 3, 41, 109, 91, 327, 789, 1429, 1159, 2801, 4845, 19663, 47737, 11029}}, +{8212, 17, 21332, {1, 3, 5, 1, 21, 63, 57, 107, 229, 771, 1911, 647, 6989, 12615, 23191, 64941, 97595}}, +{8213, 17, 21336, {1, 1, 1, 15, 5, 13, 15, 109, 459, 447, 1625, 1269, 7629, 7929, 4405, 12143, 40481}}, +{8214, 17, 21342, {1, 3, 3, 1, 23, 3, 95, 229, 363, 379, 1149, 1615, 5125, 3645, 27535, 58791, 38091}}, +{8215, 17, 21351, {1, 1, 1, 1, 9, 45, 119, 85, 151, 171, 1123, 41, 6517, 8067, 17845, 23301, 95383}}, +{8216, 17, 21355, {1, 3, 1, 15, 17, 31, 103, 71, 35, 1019, 1687, 1175, 6119, 14075, 26601, 28873, 36617}}, +{8217, 17, 21363, {1, 3, 3, 9, 13, 39, 7, 17, 207, 219, 637, 3025, 1709, 4031, 563, 14865, 129389}}, +{8218, 17, 21372, {1, 3, 7, 1, 21, 11, 121, 85, 111, 641, 1163, 3173, 5189, 13261, 19471, 39635, 76545}}, +{8219, 17, 21382, {1, 3, 7, 15, 3, 45, 3, 37, 121, 967, 1861, 3257, 3699, 6881, 11905, 8413, 59397}}, +{8220, 17, 21388, {1, 3, 3, 13, 25, 53, 85, 181, 1, 979, 2045, 297, 1739, 8139, 17897, 35251, 7193}}, +{8221, 17, 21394, {1, 1, 1, 3, 5, 49, 77, 115, 377, 209, 1415, 3747, 485, 803, 2507, 27729, 52201}}, +{8222, 17, 21403, {1, 3, 1, 5, 31, 55, 85, 171, 135, 893, 1423, 3693, 6155, 5321, 8297, 39183, 88377}}, +{8223, 17, 21409, {1, 3, 3, 15, 1, 35, 73, 239, 181, 101, 509, 2449, 4955, 13049, 27631, 16871, 40151}}, +{8224, 17, 21416, {1, 1, 7, 13, 27, 7, 109, 71, 437, 835, 563, 1355, 3681, 7431, 32743, 59693, 125055}}, +{8225, 17, 21421, {1, 1, 7, 5, 19, 23, 29, 147, 291, 507, 1943, 2069, 3309, 11569, 1031, 49345, 86735}}, +{8226, 17, 21424, {1, 1, 3, 13, 17, 45, 91, 167, 19, 137, 527, 961, 4435, 2277, 6863, 57917, 129407}}, +{8227, 17, 21444, {1, 3, 5, 7, 11, 31, 79, 207, 43, 871, 1121, 2929, 6899, 4099, 29533, 45333, 33299}}, +{8228, 17, 21453, {1, 1, 7, 5, 5, 49, 13, 95, 475, 91, 337, 3531, 3157, 1331, 32655, 46169, 3549}}, +{8229, 17, 21466, {1, 3, 1, 5, 5, 9, 73, 177, 123, 251, 717, 541, 7083, 6907, 1417, 31203, 9755}}, +{8230, 17, 21471, {1, 3, 1, 11, 21, 11, 91, 155, 447, 165, 1525, 2073, 5103, 193, 2677, 43673, 70579}}, +{8231, 17, 21495, {1, 3, 7, 1, 7, 27, 115, 247, 211, 779, 1999, 209, 3215, 111, 25567, 34641, 130873}}, +{8232, 17, 21499, {1, 1, 5, 9, 25, 7, 15, 19, 217, 831, 1577, 2051, 3533, 2337, 7675, 2845, 69135}}, +{8233, 17, 21504, {1, 3, 5, 15, 29, 11, 91, 59, 221, 383, 1235, 1261, 2967, 14989, 11455, 6459, 58047}}, +{8234, 17, 21507, {1, 3, 5, 1, 3, 35, 5, 127, 99, 981, 493, 3001, 5651, 3125, 27789, 57389, 115631}}, +{8235, 17, 21521, {1, 3, 5, 5, 29, 63, 123, 161, 247, 177, 1653, 2665, 3903, 11129, 20961, 49429, 44075}}, +{8236, 17, 21527, {1, 3, 1, 1, 13, 9, 57, 167, 291, 765, 1929, 397, 5503, 5601, 6957, 62003, 104631}}, +{8237, 17, 21555, {1, 1, 7, 15, 9, 43, 57, 85, 157, 361, 1931, 2183, 8045, 14939, 2169, 25733, 29095}}, +{8238, 17, 21558, {1, 1, 3, 15, 13, 35, 47, 123, 13, 667, 1373, 4069, 6259, 13453, 13439, 25349, 99437}}, +{8239, 17, 21562, {1, 3, 7, 1, 31, 15, 69, 45, 355, 919, 415, 793, 3987, 8785, 4905, 8177, 123989}}, +{8240, 17, 21570, {1, 3, 7, 13, 29, 27, 69, 57, 385, 185, 171, 2499, 3983, 13437, 23585, 21501, 88079}}, +{8241, 17, 21576, {1, 1, 5, 11, 27, 3, 77, 99, 221, 997, 1653, 1963, 2251, 15505, 26347, 51933, 100679}}, +{8242, 17, 21579, {1, 1, 1, 7, 19, 39, 49, 69, 193, 235, 959, 2823, 2573, 8001, 4389, 13217, 60975}}, +{8243, 17, 21581, {1, 1, 7, 5, 1, 3, 3, 189, 199, 293, 1225, 1913, 7271, 2255, 661, 23293, 82069}}, +{8244, 17, 21587, {1, 1, 5, 5, 21, 31, 35, 113, 47, 479, 325, 1663, 7409, 8975, 14151, 56317, 79663}}, +{8245, 17, 21590, {1, 1, 5, 9, 15, 63, 99, 135, 277, 715, 667, 387, 6929, 12873, 12913, 2599, 84939}}, +{8246, 17, 21599, {1, 1, 7, 15, 23, 39, 67, 25, 179, 313, 459, 295, 1103, 1737, 7529, 29463, 104693}}, +{8247, 17, 21605, {1, 1, 3, 13, 23, 11, 111, 67, 105, 191, 1967, 3497, 7621, 487, 18545, 59521, 115315}}, +{8248, 17, 21612, {1, 1, 1, 7, 25, 45, 83, 61, 231, 569, 155, 2817, 6985, 5289, 6731, 3087, 89749}}, +{8249, 17, 21618, {1, 3, 7, 1, 1, 61, 103, 49, 135, 411, 659, 1735, 4461, 8077, 12885, 62791, 114769}}, +{8250, 17, 21630, {1, 1, 7, 13, 3, 53, 21, 81, 433, 563, 857, 891, 195, 11669, 24769, 56539, 47601}}, +{8251, 17, 21639, {1, 3, 1, 13, 3, 41, 59, 101, 67, 803, 1209, 3267, 1255, 5763, 5483, 36339, 38451}}, +{8252, 17, 21640, {1, 3, 5, 3, 25, 51, 53, 213, 329, 11, 483, 81, 2151, 7623, 26309, 15289, 85103}}, +{8253, 17, 21643, {1, 3, 3, 13, 23, 17, 9, 161, 417, 207, 39, 3615, 7567, 15207, 20383, 58885, 121765}}, +{8254, 17, 21648, {1, 3, 1, 7, 15, 59, 9, 195, 187, 583, 341, 2737, 3891, 331, 18055, 60455, 113271}}, +{8255, 17, 21669, {1, 1, 3, 3, 19, 25, 95, 37, 281, 59, 1613, 2733, 5715, 4067, 5509, 5851, 35189}}, +{8256, 17, 21679, {1, 3, 1, 3, 31, 43, 125, 107, 341, 109, 1991, 849, 7795, 13607, 20421, 3339, 78979}}, +{8257, 17, 21681, {1, 3, 7, 13, 15, 57, 87, 151, 479, 99, 479, 447, 7407, 303, 16397, 15699, 122273}}, +{8258, 17, 21687, {1, 1, 3, 1, 27, 61, 79, 195, 5, 839, 1411, 3451, 4627, 13715, 18401, 24325, 44027}}, +{8259, 17, 21688, {1, 1, 7, 15, 21, 39, 57, 207, 213, 367, 547, 1203, 6385, 2555, 31465, 15675, 7133}}, +{8260, 17, 21706, {1, 1, 5, 15, 27, 3, 75, 123, 337, 1019, 1525, 3065, 1919, 10779, 27409, 6291, 86291}}, +{8261, 17, 21713, {1, 1, 7, 11, 15, 27, 67, 145, 125, 521, 647, 2957, 6337, 14973, 24139, 29107, 27151}}, +{8262, 17, 21714, {1, 1, 1, 13, 25, 57, 103, 83, 321, 111, 131, 2051, 5267, 4723, 1939, 40389, 4803}}, +{8263, 17, 21716, {1, 3, 1, 7, 29, 7, 35, 133, 349, 855, 613, 2563, 2261, 2119, 13939, 24727, 26719}}, +{8264, 17, 21730, {1, 3, 3, 1, 11, 61, 25, 177, 427, 1005, 2027, 649, 7871, 7803, 4717, 59207, 57945}}, +{8265, 17, 21732, {1, 1, 7, 1, 15, 45, 75, 133, 193, 745, 485, 197, 6001, 13837, 615, 43629, 127321}}, +{8266, 17, 21749, {1, 3, 3, 13, 5, 7, 101, 183, 211, 283, 1327, 1395, 8175, 13359, 18361, 54243, 3555}}, +{8267, 17, 21756, {1, 1, 7, 13, 7, 43, 19, 41, 319, 701, 795, 1407, 7113, 9149, 31953, 17075, 53975}}, +{8268, 17, 21774, {1, 3, 5, 13, 11, 19, 101, 125, 327, 75, 1471, 3465, 2247, 5107, 11519, 45161, 71373}}, +{8269, 17, 21779, {1, 3, 7, 13, 23, 59, 53, 57, 137, 575, 59, 3829, 963, 11259, 25771, 29223, 79535}}, +{8270, 17, 21781, {1, 3, 3, 11, 17, 31, 111, 147, 499, 441, 1385, 769, 6901, 8349, 1427, 16561, 7485}}, +{8271, 17, 21786, {1, 1, 7, 9, 21, 7, 47, 83, 351, 867, 265, 1329, 7853, 6959, 11821, 44947, 42275}}, +{8272, 17, 21792, {1, 1, 7, 15, 3, 17, 79, 143, 449, 577, 1007, 1101, 3229, 6861, 23921, 37551, 117309}}, +{8273, 17, 21810, {1, 3, 5, 11, 27, 63, 107, 15, 289, 821, 1723, 1945, 1373, 14469, 30985, 55987, 21255}}, +{8274, 17, 21819, {1, 3, 5, 3, 21, 39, 79, 85, 485, 733, 2031, 1573, 6873, 12225, 30471, 54233, 26967}}, +{8275, 17, 21829, {1, 3, 5, 7, 17, 29, 93, 251, 437, 583, 825, 551, 6545, 10905, 27863, 37037, 52129}}, +{8276, 17, 21830, {1, 3, 7, 9, 23, 1, 23, 85, 195, 319, 1759, 3985, 2413, 16205, 22197, 48821, 94907}}, +{8277, 17, 21844, {1, 1, 3, 7, 17, 47, 3, 195, 167, 925, 11, 3431, 1767, 5917, 13915, 54565, 64625}}, +{8278, 17, 21853, {1, 3, 1, 13, 23, 43, 97, 93, 313, 773, 591, 127, 6005, 11497, 32573, 8173, 92053}}, +{8279, 17, 21867, {1, 1, 5, 9, 17, 47, 115, 237, 389, 619, 377, 561, 1333, 6433, 9743, 32673, 98039}}, +{8280, 17, 21869, {1, 3, 7, 15, 23, 17, 99, 225, 145, 191, 2041, 581, 841, 9377, 18123, 32773, 66849}}, +{8281, 17, 21882, {1, 3, 7, 15, 21, 49, 97, 41, 357, 527, 2019, 2083, 2611, 12449, 20037, 52503, 105991}}, +{8282, 17, 21891, {1, 1, 5, 13, 17, 53, 41, 75, 355, 207, 1675, 591, 5797, 9217, 16443, 3205, 81905}}, +{8283, 17, 21898, {1, 3, 7, 11, 1, 61, 29, 207, 449, 103, 1527, 2327, 7895, 10137, 25223, 51607, 60809}}, +{8284, 17, 21917, {1, 3, 3, 5, 15, 57, 87, 233, 301, 989, 485, 2143, 7411, 5475, 23377, 56005, 59721}}, +{8285, 17, 21934, {1, 3, 1, 15, 29, 7, 95, 141, 369, 231, 735, 1103, 1565, 11575, 571, 3257, 62961}}, +{8286, 17, 21946, {1, 1, 5, 15, 27, 19, 25, 35, 303, 555, 95, 1323, 6139, 5079, 21763, 59591, 103537}}, +{8287, 17, 21948, {1, 1, 1, 13, 25, 23, 85, 151, 135, 349, 1753, 1061, 7697, 1723, 5213, 12581, 103995}}, +{8288, 17, 21963, {1, 3, 1, 9, 29, 51, 101, 195, 59, 809, 1527, 2179, 63, 3681, 29823, 57537, 121371}}, +{8289, 17, 21966, {1, 1, 7, 11, 27, 61, 85, 213, 245, 261, 1649, 2423, 6127, 5687, 4247, 56061, 109793}}, +{8290, 17, 21968, {1, 3, 5, 15, 11, 33, 127, 31, 269, 857, 2027, 2611, 1729, 11783, 16459, 31083, 30671}}, +{8291, 17, 21973, {1, 1, 7, 9, 11, 29, 127, 177, 505, 227, 1499, 1309, 6855, 9999, 21815, 32987, 79109}}, +{8292, 17, 21977, {1, 3, 7, 11, 7, 21, 107, 1, 493, 459, 867, 3199, 7985, 12957, 28197, 41133, 105985}}, +{8293, 17, 21980, {1, 1, 3, 15, 1, 57, 113, 97, 213, 547, 1017, 2961, 461, 16125, 10621, 4243, 58277}}, +{8294, 17, 21984, {1, 1, 3, 5, 11, 57, 61, 47, 209, 961, 333, 795, 4491, 15115, 25745, 62633, 66269}}, +{8295, 17, 21994, {1, 1, 7, 3, 19, 13, 49, 167, 455, 863, 581, 1407, 4247, 15023, 2247, 19981, 125891}}, +{8296, 17, 21999, {1, 1, 7, 15, 17, 55, 27, 35, 33, 349, 879, 1781, 1075, 2475, 30689, 42043, 29423}}, +{8297, 17, 22018, {1, 1, 1, 11, 25, 53, 121, 117, 117, 845, 447, 3927, 1951, 8643, 24497, 44833, 99533}}, +{8298, 17, 22020, {1, 1, 7, 13, 3, 59, 117, 9, 359, 453, 327, 3419, 5957, 97, 20541, 49441, 5673}}, +{8299, 17, 22029, {1, 3, 5, 5, 31, 35, 95, 107, 435, 733, 827, 1361, 6627, 8905, 2681, 25473, 46093}}, +{8300, 17, 22032, {1, 3, 3, 5, 7, 23, 75, 137, 231, 915, 637, 2963, 4409, 12799, 31587, 65363, 69539}}, +{8301, 17, 22041, {1, 1, 1, 7, 15, 35, 19, 233, 189, 837, 243, 2525, 6185, 565, 8133, 4265, 3089}}, +{8302, 17, 22047, {1, 1, 5, 5, 19, 59, 103, 201, 287, 449, 21, 2331, 341, 13145, 18607, 46407, 2767}}, +{8303, 17, 22048, {1, 3, 3, 15, 19, 41, 49, 179, 109, 367, 1185, 1045, 1635, 9647, 16613, 25357, 34291}}, +{8304, 17, 22071, {1, 3, 5, 1, 13, 11, 89, 25, 159, 637, 1979, 549, 3553, 9163, 227, 50553, 46307}}, +{8305, 17, 22075, {1, 1, 3, 1, 17, 33, 73, 239, 261, 751, 1267, 2643, 2549, 8331, 25083, 9715, 67289}}, +{8306, 17, 22078, {1, 1, 1, 13, 3, 49, 7, 35, 367, 293, 903, 1045, 569, 6017, 27635, 51833, 32963}}, +{8307, 17, 22083, {1, 3, 5, 3, 31, 3, 69, 137, 57, 87, 719, 3977, 3031, 7675, 24605, 8757, 93173}}, +{8308, 17, 22089, {1, 3, 3, 1, 7, 45, 97, 35, 233, 69, 1525, 4047, 2599, 13679, 4389, 49079, 121465}}, +{8309, 17, 22097, {1, 1, 7, 13, 7, 25, 57, 211, 337, 189, 1825, 2451, 7651, 11277, 27763, 40671, 57223}}, +{8310, 17, 22110, {1, 1, 1, 1, 15, 59, 55, 169, 461, 907, 407, 803, 3349, 4727, 20983, 47717, 51647}}, +{8311, 17, 22113, {1, 3, 7, 1, 15, 51, 25, 119, 439, 593, 1289, 3959, 5489, 13283, 31837, 8441, 58373}}, +{8312, 17, 22119, {1, 3, 1, 9, 5, 1, 81, 45, 13, 537, 1091, 3861, 6781, 5679, 2807, 29757, 40917}}, +{8313, 17, 22120, {1, 3, 5, 3, 27, 41, 19, 235, 207, 697, 775, 837, 3431, 3175, 10807, 42775, 67987}}, +{8314, 17, 22126, {1, 3, 7, 3, 29, 33, 35, 119, 271, 609, 1747, 2839, 3415, 2275, 30979, 41293, 99341}}, +{8315, 17, 22133, {1, 3, 3, 3, 5, 17, 13, 169, 269, 709, 1449, 3169, 1545, 16075, 8937, 39705, 19609}}, +{8316, 17, 22134, {1, 3, 5, 15, 29, 13, 1, 199, 65, 385, 977, 797, 1181, 10979, 241, 40393, 73663}}, +{8317, 17, 22140, {1, 1, 3, 7, 17, 35, 47, 63, 193, 451, 151, 3415, 99, 14557, 26025, 31361, 112639}}, +{8318, 17, 22147, {1, 1, 3, 5, 19, 13, 29, 33, 365, 311, 1241, 217, 6205, 13067, 18585, 21693, 97127}}, +{8319, 17, 22161, {1, 1, 3, 15, 19, 7, 87, 25, 91, 13, 1839, 1445, 957, 9779, 25557, 37027, 38987}}, +{8320, 17, 22164, {1, 1, 5, 1, 21, 5, 79, 67, 481, 455, 37, 1321, 7723, 1413, 7919, 11035, 5739}}, +{8321, 17, 22173, {1, 1, 1, 15, 9, 55, 111, 1, 383, 439, 1037, 4055, 4243, 10443, 26737, 21039, 130847}}, +{8322, 17, 22197, {1, 1, 7, 9, 13, 25, 71, 137, 307, 717, 1009, 2477, 3861, 14145, 14549, 59589, 93401}}, +{8323, 17, 22207, {1, 1, 7, 5, 29, 63, 77, 49, 471, 267, 1457, 1743, 1915, 14793, 17899, 28011, 92183}}, +{8324, 17, 22210, {1, 3, 7, 7, 7, 41, 47, 251, 75, 749, 1915, 1015, 5869, 3211, 24097, 14349, 130571}}, +{8325, 17, 22216, {1, 1, 1, 1, 31, 63, 105, 83, 345, 147, 975, 135, 7299, 15801, 19311, 26143, 80293}}, +{8326, 17, 22234, {1, 1, 3, 1, 7, 1, 47, 45, 251, 635, 583, 3515, 5233, 6281, 7797, 37949, 75877}}, +{8327, 17, 22257, {1, 1, 3, 3, 5, 53, 99, 175, 155, 327, 1841, 211, 2811, 16099, 17255, 34253, 124141}}, +{8328, 17, 22264, {1, 3, 1, 3, 13, 27, 81, 217, 115, 245, 101, 1641, 29, 1441, 4829, 28399, 102303}}, +{8329, 17, 22278, {1, 3, 1, 5, 11, 55, 31, 91, 337, 203, 987, 977, 4929, 14933, 25149, 20493, 19783}}, +{8330, 17, 22284, {1, 1, 5, 9, 9, 37, 103, 211, 349, 165, 1421, 3015, 5133, 4615, 28173, 45787, 10711}}, +{8331, 17, 22287, {1, 1, 1, 1, 1, 17, 29, 117, 421, 651, 1617, 1677, 7841, 16303, 8843, 1321, 90701}}, +{8332, 17, 22299, {1, 1, 1, 15, 27, 23, 49, 195, 139, 319, 1277, 901, 63, 14677, 21815, 19497, 24883}}, +{8333, 17, 22301, {1, 3, 3, 13, 1, 23, 17, 189, 293, 765, 1503, 1485, 7427, 11807, 17629, 61739, 111365}}, +{8334, 17, 22308, {1, 1, 5, 5, 15, 41, 25, 53, 221, 449, 1597, 2763, 4119, 6319, 17509, 23493, 104707}}, +{8335, 17, 22337, {1, 3, 7, 11, 29, 21, 101, 197, 161, 457, 331, 3817, 5139, 14307, 23225, 55567, 62535}}, +{8336, 17, 22349, {1, 1, 7, 5, 9, 57, 39, 101, 5, 847, 1311, 313, 2877, 14811, 21969, 31741, 8075}}, +{8337, 17, 22350, {1, 3, 5, 3, 1, 11, 45, 163, 251, 775, 1031, 1957, 1631, 1691, 3191, 6255, 13037}}, +{8338, 17, 22357, {1, 1, 3, 13, 7, 11, 95, 97, 409, 835, 707, 1579, 2409, 9451, 15069, 62425, 106499}}, +{8339, 17, 22364, {1, 3, 3, 11, 5, 25, 23, 207, 429, 299, 537, 1467, 6309, 891, 15009, 56733, 60397}}, +{8340, 17, 22373, {1, 3, 5, 3, 29, 47, 95, 115, 207, 177, 543, 427, 145, 11169, 7441, 10911, 87413}}, +{8341, 17, 22377, {1, 3, 7, 11, 25, 53, 15, 225, 115, 295, 919, 39, 513, 9989, 11045, 24015, 102387}}, +{8342, 17, 22380, {1, 1, 7, 15, 13, 31, 103, 143, 357, 825, 183, 137, 2671, 9803, 14777, 48333, 79483}}, +{8343, 17, 22386, {1, 3, 5, 1, 25, 13, 65, 9, 461, 307, 1289, 1035, 7253, 14223, 16829, 23361, 84987}}, +{8344, 17, 22391, {1, 3, 5, 7, 5, 57, 47, 251, 5, 9, 965, 2883, 3105, 13931, 807, 31977, 119035}}, +{8345, 17, 22392, {1, 1, 3, 5, 3, 7, 55, 165, 3, 787, 1587, 989, 6049, 14021, 30789, 15283, 92851}}, +{8346, 17, 22411, {1, 1, 5, 5, 3, 17, 11, 167, 487, 885, 193, 3485, 8179, 9485, 24913, 40267, 70625}}, +{8347, 17, 22422, {1, 1, 7, 1, 27, 31, 9, 139, 73, 137, 783, 321, 691, 6157, 19905, 45525, 84877}}, +{8348, 17, 22425, {1, 3, 1, 9, 17, 39, 127, 177, 301, 579, 1065, 3899, 281, 9177, 16295, 51217, 120293}}, +{8349, 17, 22431, {1, 1, 7, 9, 31, 59, 17, 93, 247, 779, 847, 1183, 3453, 1073, 18597, 2655, 121633}}, +{8350, 17, 22438, {1, 1, 7, 1, 25, 43, 47, 253, 23, 999, 973, 1201, 1061, 5947, 5619, 36311, 1545}}, +{8351, 17, 22441, {1, 3, 5, 7, 11, 5, 103, 119, 229, 657, 1993, 1991, 1597, 13165, 19137, 7161, 83487}}, +{8352, 17, 22442, {1, 1, 1, 1, 11, 23, 105, 183, 467, 83, 899, 2447, 4949, 4171, 28943, 4829, 13033}}, +{8353, 17, 22449, {1, 3, 1, 7, 15, 7, 47, 215, 253, 109, 1975, 3337, 1553, 13575, 16835, 61525, 26423}}, +{8354, 17, 22452, {1, 1, 7, 1, 21, 17, 53, 79, 175, 267, 999, 249, 6177, 10453, 12475, 59801, 47351}}, +{8355, 17, 22461, {1, 3, 5, 11, 3, 57, 5, 193, 421, 799, 1833, 2635, 6537, 4669, 9597, 40661, 12113}}, +{8356, 17, 22467, {1, 1, 7, 11, 9, 11, 69, 103, 139, 167, 159, 2469, 703, 1519, 21553, 62875, 60449}}, +{8357, 17, 22479, {1, 1, 5, 3, 9, 11, 17, 183, 499, 301, 1275, 605, 7655, 12141, 7783, 39413, 116263}}, +{8358, 17, 22484, {1, 1, 1, 7, 31, 55, 23, 79, 49, 247, 761, 3573, 8187, 4879, 27379, 15725, 81415}}, +{8359, 17, 22487, {1, 3, 5, 5, 5, 49, 23, 205, 509, 383, 1165, 3839, 7663, 1539, 19967, 55901, 4351}}, +{8360, 17, 22493, {1, 1, 1, 11, 7, 15, 3, 159, 235, 735, 391, 2231, 5043, 9759, 4569, 35601, 71989}}, +{8361, 17, 22510, {1, 3, 3, 15, 23, 3, 49, 97, 99, 517, 1097, 3517, 1035, 2319, 27705, 25547, 101555}}, +{8362, 17, 22521, {1, 3, 7, 11, 27, 29, 33, 241, 205, 113, 291, 1993, 3277, 13155, 1039, 42367, 130477}}, +{8363, 17, 22533, {1, 1, 1, 3, 29, 19, 15, 159, 35, 153, 1177, 3011, 6271, 8203, 8971, 19183, 102871}}, +{8364, 17, 22534, {1, 1, 1, 5, 5, 51, 19, 175, 209, 895, 229, 2355, 499, 7877, 4935, 22737, 35587}}, +{8365, 17, 22543, {1, 3, 7, 11, 15, 9, 7, 113, 41, 835, 1593, 3933, 7165, 10959, 15487, 30019, 114505}}, +{8366, 17, 22548, {1, 1, 7, 5, 31, 21, 27, 11, 421, 165, 1605, 1859, 29, 13051, 3273, 3893, 56089}}, +{8367, 17, 22552, {1, 3, 5, 5, 17, 51, 55, 187, 401, 977, 95, 2617, 727, 9609, 5075, 48989, 120299}}, +{8368, 17, 22558, {1, 1, 5, 7, 21, 31, 127, 87, 379, 125, 247, 3607, 2555, 11873, 32535, 16677, 122273}}, +{8369, 17, 22561, {1, 1, 1, 5, 19, 21, 51, 185, 203, 145, 1073, 167, 235, 12753, 17315, 14683, 44101}}, +{8370, 17, 22562, {1, 3, 3, 1, 5, 61, 71, 17, 63, 151, 823, 17, 5315, 4861, 17279, 23049, 84971}}, +{8371, 17, 22568, {1, 3, 3, 5, 21, 63, 21, 235, 295, 467, 1661, 2487, 335, 6107, 28709, 55875, 129085}}, +{8372, 17, 22571, {1, 3, 3, 5, 1, 55, 35, 187, 5, 687, 1633, 2999, 4513, 10105, 15249, 22591, 102857}}, +{8373, 17, 22574, {1, 3, 1, 5, 19, 1, 113, 27, 261, 623, 831, 3011, 4091, 11967, 17191, 17433, 99925}}, +{8374, 17, 22581, {1, 3, 5, 5, 25, 59, 81, 249, 463, 523, 183, 3049, 3675, 2705, 28379, 1279, 25579}}, +{8375, 17, 22594, {1, 1, 3, 9, 19, 19, 71, 127, 189, 613, 647, 1449, 7755, 1415, 9067, 30683, 79703}}, +{8376, 17, 22603, {1, 1, 7, 1, 27, 33, 61, 135, 233, 633, 1969, 2245, 5841, 14069, 6497, 63617, 101483}}, +{8377, 17, 22605, {1, 3, 3, 9, 23, 3, 17, 163, 309, 741, 2023, 2647, 5847, 7871, 22311, 38377, 70663}}, +{8378, 17, 22606, {1, 3, 5, 15, 31, 33, 51, 243, 209, 273, 1305, 1599, 6115, 6249, 8639, 5903, 17215}}, +{8379, 17, 22623, {1, 1, 1, 1, 21, 11, 107, 185, 463, 435, 149, 3789, 6283, 1327, 20893, 10417, 78673}}, +{8380, 17, 22630, {1, 1, 1, 13, 5, 53, 121, 129, 493, 419, 1711, 2765, 7673, 8979, 25845, 62759, 9669}}, +{8381, 17, 22651, {1, 3, 5, 5, 1, 39, 123, 47, 449, 639, 625, 2355, 511, 1685, 1415, 32417, 76529}}, +{8382, 17, 22657, {1, 3, 1, 11, 1, 49, 67, 237, 203, 967, 1401, 2773, 4951, 13889, 14147, 41031, 71897}}, +{8383, 17, 22669, {1, 3, 5, 11, 13, 49, 17, 113, 315, 207, 1057, 3395, 6151, 2767, 16571, 1811, 66403}}, +{8384, 17, 22670, {1, 1, 7, 7, 29, 63, 49, 115, 327, 987, 1853, 3355, 8139, 2703, 30039, 51343, 86999}}, +{8385, 17, 22677, {1, 1, 3, 9, 1, 3, 45, 35, 509, 483, 159, 1795, 8023, 6989, 3755, 20887, 13587}}, +{8386, 17, 22682, {1, 1, 3, 7, 1, 27, 39, 159, 283, 843, 317, 3229, 2297, 15031, 22039, 21721, 70583}}, +{8387, 17, 22698, {1, 1, 3, 11, 9, 23, 1, 35, 79, 77, 1671, 2583, 647, 12313, 16271, 2959, 108389}}, +{8388, 17, 22712, {1, 1, 1, 7, 5, 55, 1, 233, 429, 231, 833, 1279, 7815, 1051, 30627, 4435, 25997}}, +{8389, 17, 22715, {1, 3, 1, 15, 19, 53, 9, 165, 307, 437, 551, 2477, 1841, 11799, 18477, 5871, 20065}}, +{8390, 17, 22729, {1, 1, 1, 1, 21, 5, 65, 41, 77, 909, 93, 751, 2973, 7341, 30427, 60075, 71457}}, +{8391, 17, 22732, {1, 1, 3, 11, 25, 51, 49, 63, 165, 263, 1915, 747, 8053, 6361, 4843, 20189, 110147}}, +{8392, 17, 22735, {1, 3, 1, 9, 29, 9, 45, 177, 415, 557, 1555, 2967, 1239, 8115, 12853, 19193, 73681}}, +{8393, 17, 22738, {1, 1, 5, 5, 11, 5, 51, 157, 325, 517, 1601, 3911, 1487, 13631, 7483, 61515, 48937}}, +{8394, 17, 22740, {1, 3, 7, 5, 29, 31, 107, 47, 437, 837, 1791, 477, 1717, 7, 25855, 48793, 16385}}, +{8395, 17, 22750, {1, 1, 1, 3, 29, 49, 31, 255, 233, 935, 1993, 125, 2255, 12785, 2807, 54697, 62591}}, +{8396, 17, 22753, {1, 3, 1, 7, 15, 13, 9, 245, 79, 289, 841, 253, 5259, 16123, 29189, 63837, 127915}}, +{8397, 17, 22760, {1, 3, 7, 15, 15, 55, 91, 103, 445, 289, 1471, 423, 3387, 15609, 19311, 28993, 23473}}, +{8398, 17, 22765, {1, 1, 3, 11, 31, 39, 69, 125, 115, 309, 397, 3417, 5693, 10301, 1489, 25955, 2699}}, +{8399, 17, 22768, {1, 3, 3, 5, 13, 21, 51, 207, 239, 311, 1601, 2925, 6285, 9597, 30579, 62957, 6153}}, +{8400, 17, 22778, {1, 1, 7, 1, 27, 21, 63, 143, 399, 971, 1385, 1875, 5143, 6423, 6223, 27009, 14237}}, +{8401, 17, 22785, {1, 3, 5, 1, 5, 59, 125, 133, 151, 997, 1315, 3007, 8173, 16289, 13409, 839, 103519}}, +{8402, 17, 22809, {1, 1, 1, 13, 7, 57, 83, 33, 191, 121, 939, 3927, 6089, 10083, 5903, 52229, 78325}}, +{8403, 17, 22810, {1, 1, 3, 5, 9, 61, 43, 107, 279, 135, 1109, 3779, 5305, 15333, 12217, 41257, 20265}}, +{8404, 17, 22812, {1, 3, 7, 1, 31, 59, 83, 43, 219, 119, 511, 2973, 4587, 10701, 30959, 21489, 124077}}, +{8405, 17, 22828, {1, 1, 7, 9, 17, 3, 59, 151, 281, 209, 1405, 173, 3589, 7679, 29803, 53947, 68291}}, +{8406, 17, 22840, {1, 1, 7, 7, 5, 19, 53, 91, 1, 513, 1495, 231, 3627, 1115, 16121, 12953, 108343}}, +{8407, 17, 22845, {1, 3, 1, 13, 17, 3, 35, 35, 211, 481, 2029, 1035, 3131, 5653, 18097, 10735, 102453}}, +{8408, 17, 22848, {1, 3, 1, 11, 29, 7, 121, 135, 51, 837, 681, 1497, 7435, 2215, 26527, 33029, 93241}}, +{8409, 17, 22857, {1, 3, 3, 15, 29, 43, 17, 243, 195, 315, 499, 3801, 5691, 12119, 4061, 51769, 80497}}, +{8410, 17, 22877, {1, 1, 3, 1, 11, 1, 113, 11, 387, 579, 275, 2995, 895, 11859, 4017, 1543, 11853}}, +{8411, 17, 22882, {1, 1, 7, 9, 31, 27, 63, 217, 97, 275, 435, 1355, 5205, 6587, 32589, 46485, 103587}}, +{8412, 17, 22887, {1, 3, 7, 3, 7, 19, 51, 41, 81, 261, 1909, 1475, 425, 3173, 5679, 34701, 34977}}, +{8413, 17, 22894, {1, 1, 7, 3, 27, 15, 35, 49, 387, 471, 1997, 3643, 2701, 11853, 21311, 36027, 104357}}, +{8414, 17, 22912, {1, 3, 1, 9, 5, 47, 73, 163, 309, 891, 229, 2433, 6715, 6721, 25233, 37043, 29367}}, +{8415, 17, 22930, {1, 1, 1, 7, 27, 15, 9, 185, 421, 597, 565, 143, 1531, 15585, 17057, 54309, 82915}}, +{8416, 17, 22936, {1, 1, 7, 1, 5, 43, 87, 61, 121, 341, 25, 3795, 7161, 11985, 32197, 789, 69543}}, +{8417, 17, 22939, {1, 3, 5, 13, 29, 39, 81, 39, 263, 729, 1833, 365, 1073, 9869, 1845, 52621, 5}}, +{8418, 17, 22957, {1, 1, 7, 7, 5, 33, 117, 11, 371, 161, 1303, 629, 2285, 5827, 32355, 43359, 115595}}, +{8419, 17, 22970, {1, 3, 5, 5, 13, 57, 63, 9, 243, 533, 173, 2197, 717, 13441, 22131, 17783, 3319}}, +{8420, 17, 22980, {1, 1, 7, 11, 15, 31, 87, 255, 183, 273, 805, 2347, 5881, 15401, 273, 17397, 41827}}, +{8421, 17, 22984, {1, 3, 1, 13, 7, 17, 121, 49, 47, 121, 333, 3629, 5337, 4117, 2735, 36581, 61345}}, +{8422, 17, 22992, {1, 3, 3, 11, 9, 7, 25, 223, 379, 119, 385, 1217, 4803, 2947, 30665, 7733, 77893}}, +{8423, 17, 22998, {1, 3, 3, 7, 31, 35, 127, 97, 5, 373, 7, 3035, 843, 5991, 9265, 34289, 42785}}, +{8424, 17, 23001, {1, 3, 7, 3, 27, 19, 95, 253, 349, 871, 807, 413, 5847, 10467, 4277, 12429, 75773}}, +{8425, 17, 23044, {1, 3, 3, 7, 21, 1, 79, 89, 219, 505, 41, 505, 5159, 12839, 3317, 49873, 73705}}, +{8426, 17, 23061, {1, 3, 1, 7, 21, 43, 121, 113, 477, 559, 1831, 3759, 3315, 6367, 7149, 16395, 44703}}, +{8427, 17, 23062, {1, 1, 1, 7, 13, 53, 35, 53, 489, 975, 631, 863, 3067, 1905, 21351, 14705, 80041}}, +{8428, 17, 23071, {1, 1, 1, 5, 13, 27, 121, 65, 351, 123, 1731, 367, 8061, 5229, 8537, 20897, 130373}}, +{8429, 17, 23075, {1, 1, 5, 11, 15, 63, 101, 107, 105, 619, 1771, 3549, 7191, 9083, 16827, 29639, 34219}}, +{8430, 17, 23089, {1, 3, 1, 9, 15, 13, 87, 157, 379, 433, 217, 815, 5079, 1797, 26707, 35165, 92305}}, +{8431, 17, 23090, {1, 1, 5, 13, 27, 35, 31, 65, 313, 629, 375, 1391, 5373, 3497, 7311, 23105, 45293}}, +{8432, 17, 23096, {1, 3, 1, 3, 5, 39, 91, 37, 401, 419, 949, 2431, 3685, 6671, 20789, 8597, 44215}}, +{8433, 17, 23101, {1, 1, 7, 11, 7, 15, 3, 181, 363, 913, 309, 2009, 3805, 6651, 27677, 37711, 40813}}, +{8434, 17, 23114, {1, 3, 5, 5, 17, 11, 47, 9, 27, 459, 773, 1403, 7069, 12651, 8163, 42425, 126697}}, +{8435, 17, 23121, {1, 3, 1, 3, 11, 21, 65, 103, 405, 843, 59, 3653, 1759, 5265, 401, 58019, 124999}}, +{8436, 17, 23124, {1, 1, 3, 7, 11, 25, 61, 211, 199, 849, 1835, 1181, 5003, 3873, 23743, 45451, 54901}}, +{8437, 17, 23127, {1, 3, 5, 3, 29, 25, 43, 199, 481, 991, 699, 3937, 7601, 1253, 24399, 6625, 93917}}, +{8438, 17, 23128, {1, 1, 7, 3, 29, 33, 33, 151, 3, 825, 743, 773, 7825, 8157, 22121, 50095, 16435}}, +{8439, 17, 23137, {1, 3, 1, 1, 27, 15, 81, 151, 271, 167, 1755, 1289, 7473, 8525, 12525, 63139, 48787}}, +{8440, 17, 23138, {1, 1, 7, 13, 27, 33, 87, 125, 211, 631, 149, 3451, 643, 6975, 2659, 12629, 33187}}, +{8441, 17, 23150, {1, 1, 3, 3, 5, 49, 99, 99, 85, 647, 351, 2829, 7005, 7283, 5857, 46157, 52061}}, +{8442, 17, 23155, {1, 1, 3, 5, 11, 37, 43, 129, 21, 639, 187, 2279, 8189, 12877, 28707, 7133, 93639}}, +{8443, 17, 23168, {1, 1, 3, 7, 19, 13, 35, 51, 77, 811, 1553, 2769, 763, 4965, 4643, 37639, 44229}}, +{8444, 17, 23173, {1, 3, 5, 15, 11, 29, 103, 203, 435, 1017, 531, 1453, 1407, 6569, 619, 52103, 45213}}, +{8445, 17, 23174, {1, 1, 7, 5, 25, 25, 47, 229, 201, 843, 473, 2637, 2265, 4627, 20013, 41217, 76095}}, +{8446, 17, 23195, {1, 3, 3, 15, 23, 61, 109, 31, 57, 595, 1303, 3915, 67, 8205, 3553, 9543, 103385}}, +{8447, 17, 23202, {1, 1, 3, 3, 21, 19, 21, 41, 137, 905, 2045, 491, 1783, 151, 20963, 38009, 735}}, +{8448, 17, 23225, {1, 1, 7, 11, 13, 33, 95, 251, 179, 211, 1687, 3189, 6213, 3905, 2117, 15153, 4855}}, +{8449, 17, 23226, {1, 1, 5, 3, 19, 9, 67, 243, 23, 611, 1007, 1317, 7303, 11065, 21157, 56677, 81683}}, +{8450, 17, 23239, {1, 1, 3, 5, 19, 41, 63, 129, 233, 15, 37, 1445, 1095, 11309, 30181, 49199, 85113}}, +{8451, 17, 23253, {1, 3, 7, 1, 21, 53, 83, 79, 155, 379, 773, 1823, 1003, 2787, 31107, 36115, 40987}}, +{8452, 17, 23263, {1, 3, 3, 5, 3, 19, 7, 247, 417, 573, 407, 3577, 6079, 10275, 29791, 35149, 102565}}, +{8453, 17, 23264, {1, 3, 3, 9, 21, 49, 57, 223, 125, 671, 655, 2995, 5849, 5355, 21171, 54857, 114841}}, +{8454, 17, 23281, {1, 3, 7, 3, 27, 23, 125, 103, 485, 955, 963, 1865, 2321, 2263, 32497, 47973, 122111}}, +{8455, 17, 23282, {1, 1, 3, 15, 3, 1, 37, 19, 287, 165, 1717, 851, 3619, 13623, 24295, 48253, 13143}}, +{8456, 17, 23288, {1, 1, 7, 9, 13, 59, 69, 97, 113, 163, 871, 1795, 2719, 13675, 11767, 23687, 65841}}, +{8457, 17, 23294, {1, 1, 5, 3, 21, 31, 41, 115, 469, 177, 137, 2129, 1385, 10835, 16471, 59411, 30795}}, +{8458, 17, 23302, {1, 1, 7, 7, 13, 45, 73, 119, 457, 673, 1481, 3735, 2675, 11413, 9069, 34741, 8757}}, +{8459, 17, 23311, {1, 3, 5, 3, 15, 9, 11, 191, 499, 51, 1963, 3957, 1341, 7129, 13491, 65369, 4339}}, +{8460, 17, 23320, {1, 3, 7, 1, 5, 45, 103, 209, 183, 205, 525, 2417, 847, 10801, 10699, 16723, 36421}}, +{8461, 17, 23325, {1, 3, 7, 13, 3, 57, 37, 75, 299, 359, 2017, 125, 6737, 4859, 18443, 20765, 40319}}, +{8462, 17, 23356, {1, 1, 3, 5, 5, 17, 43, 141, 31, 141, 1019, 1685, 6831, 9433, 31245, 29227, 64083}}, +{8463, 17, 23374, {1, 3, 1, 13, 25, 47, 107, 69, 459, 595, 1759, 3391, 1531, 15197, 25975, 16971, 70861}}, +{8464, 17, 23388, {1, 1, 3, 11, 3, 53, 63, 211, 69, 469, 1407, 1435, 2763, 917, 19943, 16591, 97101}}, +{8465, 17, 23402, {1, 3, 5, 13, 25, 41, 39, 61, 319, 809, 1109, 169, 3101, 8801, 21697, 50759, 130985}}, +{8466, 17, 23415, {1, 3, 1, 9, 23, 1, 11, 249, 243, 605, 1419, 269, 1601, 2063, 5365, 38077, 106161}}, +{8467, 17, 23421, {1, 1, 7, 7, 19, 55, 97, 155, 477, 845, 61, 263, 1337, 8857, 31611, 44417, 43111}}, +{8468, 17, 23426, {1, 3, 3, 15, 7, 63, 45, 239, 291, 279, 1875, 3769, 1571, 15857, 13335, 17209, 34399}}, +{8469, 17, 23443, {1, 1, 7, 11, 19, 19, 69, 111, 217, 927, 1643, 1077, 4763, 15893, 17491, 39737, 10705}}, +{8470, 17, 23446, {1, 1, 5, 11, 3, 3, 31, 199, 109, 403, 973, 3833, 2729, 7285, 26743, 53915, 96203}}, +{8471, 17, 23455, {1, 3, 3, 11, 9, 7, 19, 145, 495, 805, 381, 919, 1323, 4343, 15887, 5163, 68267}}, +{8472, 17, 23461, {1, 1, 3, 11, 15, 31, 27, 201, 251, 279, 1377, 1313, 7143, 9731, 10451, 63431, 31307}}, +{8473, 17, 23468, {1, 1, 7, 1, 1, 55, 35, 249, 133, 645, 425, 279, 6401, 11687, 751, 947, 21791}}, +{8474, 17, 23471, {1, 3, 5, 9, 5, 43, 89, 31, 419, 573, 1087, 2197, 3451, 2393, 6569, 4859, 36607}}, +{8475, 17, 23485, {1, 3, 5, 15, 25, 51, 11, 149, 483, 789, 661, 967, 3537, 15511, 26587, 29861, 120337}}, +{8476, 17, 23486, {1, 3, 5, 13, 21, 39, 75, 111, 57, 321, 1591, 381, 7399, 10807, 26651, 62489, 78341}}, +{8477, 17, 23488, {1, 3, 1, 13, 1, 1, 49, 137, 193, 967, 805, 221, 803, 11381, 27803, 51013, 10475}}, +{8478, 17, 23498, {1, 3, 7, 5, 3, 13, 47, 195, 123, 753, 397, 1203, 981, 12863, 20845, 36155, 19055}}, +{8479, 17, 23500, {1, 1, 1, 9, 9, 11, 53, 203, 3, 163, 1537, 2061, 941, 12629, 16053, 34881, 31489}}, +{8480, 17, 23515, {1, 1, 1, 15, 5, 23, 51, 197, 459, 21, 1989, 2529, 4267, 1505, 8951, 15777, 20493}}, +{8481, 17, 23521, {1, 1, 7, 3, 31, 55, 9, 55, 217, 695, 1563, 4077, 3207, 7029, 10881, 39581, 82511}}, +{8482, 17, 23527, {1, 3, 1, 5, 1, 11, 81, 1, 505, 631, 1093, 3655, 2085, 7349, 5009, 49381, 30527}}, +{8483, 17, 23534, {1, 1, 7, 1, 27, 51, 25, 235, 213, 59, 611, 3883, 2909, 6411, 19605, 49001, 114529}}, +{8484, 17, 23546, {1, 3, 5, 3, 25, 29, 19, 137, 199, 681, 1625, 2711, 4873, 14677, 9767, 30441, 54673}}, +{8485, 17, 23559, {1, 1, 1, 9, 27, 43, 109, 161, 139, 675, 741, 2839, 1425, 5701, 19897, 12787, 33069}}, +{8486, 17, 23560, {1, 3, 5, 11, 21, 19, 77, 107, 197, 591, 1899, 1311, 3347, 6369, 26891, 3771, 32455}}, +{8487, 17, 23566, {1, 1, 7, 15, 31, 13, 109, 69, 207, 349, 249, 971, 7891, 10919, 31579, 38453, 124601}}, +{8488, 17, 23584, {1, 3, 5, 5, 27, 61, 67, 193, 53, 259, 1729, 4033, 2637, 8217, 22351, 4001, 118527}}, +{8489, 17, 23587, {1, 1, 3, 5, 9, 45, 55, 73, 189, 131, 1947, 1889, 837, 4085, 10393, 64359, 1037}}, +{8490, 17, 23594, {1, 3, 7, 3, 13, 51, 55, 37, 335, 939, 35, 461, 5057, 2595, 3305, 58823, 3941}}, +{8491, 17, 23602, {1, 1, 7, 11, 7, 3, 121, 139, 241, 477, 615, 2707, 5391, 7611, 11563, 41083, 16719}}, +{8492, 17, 23607, {1, 3, 3, 15, 27, 55, 13, 221, 195, 543, 215, 4035, 1647, 8111, 26425, 43571, 79893}}, +{8493, 17, 23616, {1, 1, 1, 5, 31, 5, 35, 145, 481, 339, 1951, 2155, 1309, 9851, 31505, 37371, 21247}}, +{8494, 17, 23621, {1, 1, 7, 9, 7, 5, 73, 119, 3, 741, 1351, 2855, 2207, 1465, 12047, 13507, 129173}}, +{8495, 17, 23631, {1, 1, 7, 13, 5, 57, 119, 63, 367, 327, 1257, 3191, 6929, 9593, 16565, 54397, 100305}}, +{8496, 17, 23634, {1, 3, 1, 11, 9, 1, 85, 53, 65, 945, 17, 1963, 4819, 16173, 11669, 53579, 33701}}, +{8497, 17, 23636, {1, 1, 3, 15, 25, 27, 3, 25, 23, 429, 197, 2717, 6107, 6719, 12457, 31793, 78647}}, +{8498, 17, 23649, {1, 1, 3, 1, 7, 63, 111, 235, 299, 91, 369, 1423, 7083, 4229, 18535, 33793, 19943}}, +{8499, 17, 23652, {1, 1, 7, 13, 9, 11, 123, 9, 169, 895, 1989, 1047, 6139, 11773, 19381, 9593, 14809}}, +{8500, 17, 23679, {1, 3, 1, 3, 29, 31, 63, 91, 59, 391, 1695, 2459, 3301, 5615, 3425, 8029, 16069}}, +{8501, 17, 23686, {1, 1, 7, 1, 25, 25, 79, 49, 131, 695, 987, 2911, 1109, 8237, 18227, 37287, 22443}}, +{8502, 17, 23697, {1, 3, 3, 3, 25, 21, 33, 207, 187, 381, 129, 445, 2967, 5119, 18777, 14849, 97115}}, +{8503, 17, 23703, {1, 1, 7, 13, 19, 9, 93, 185, 391, 579, 1509, 3245, 3921, 9473, 4795, 6685, 49549}}, +{8504, 17, 23714, {1, 1, 5, 11, 1, 49, 57, 127, 363, 811, 1383, 2869, 7625, 15177, 2581, 64253, 53677}}, +{8505, 17, 23719, {1, 1, 7, 3, 7, 27, 73, 187, 31, 1011, 1013, 3269, 6625, 5001, 20805, 13331, 93725}}, +{8506, 17, 23723, {1, 3, 7, 1, 23, 61, 123, 9, 141, 113, 1009, 3713, 4947, 9929, 24125, 1101, 104249}}, +{8507, 17, 23726, {1, 3, 7, 3, 23, 17, 25, 187, 189, 875, 1435, 163, 4197, 6619, 29031, 23117, 45347}}, +{8508, 17, 23728, {1, 1, 5, 7, 11, 17, 9, 55, 117, 223, 417, 3993, 1843, 5817, 20435, 56705, 98337}}, +{8509, 17, 23733, {1, 1, 7, 3, 21, 59, 3, 77, 297, 61, 407, 1603, 3209, 1611, 30185, 50275, 56139}}, +{8510, 17, 23740, {1, 1, 1, 5, 31, 3, 101, 167, 367, 543, 339, 1885, 7855, 9989, 30969, 6735, 108123}}, +{8511, 17, 23751, {1, 1, 3, 9, 27, 63, 9, 79, 335, 351, 673, 3107, 3955, 1799, 16879, 57631, 109073}}, +{8512, 17, 23755, {1, 1, 1, 3, 27, 17, 107, 115, 155, 371, 379, 2837, 6213, 2663, 1101, 451, 69517}}, +{8513, 17, 23765, {1, 1, 3, 9, 13, 3, 55, 9, 449, 43, 1011, 3281, 5311, 223, 10715, 6639, 79949}}, +{8514, 17, 23766, {1, 3, 3, 11, 23, 9, 43, 185, 271, 1005, 1041, 2633, 377, 4247, 10417, 51903, 19239}}, +{8515, 17, 23769, {1, 3, 1, 9, 15, 39, 115, 233, 33, 425, 1979, 583, 1901, 8943, 1527, 56065, 50159}}, +{8516, 17, 23779, {1, 1, 3, 1, 13, 1, 105, 149, 13, 625, 671, 1811, 3701, 241, 27357, 25835, 127265}}, +{8517, 17, 23794, {1, 3, 1, 9, 11, 23, 107, 197, 21, 589, 1065, 2591, 1163, 15013, 8931, 6355, 87079}}, +{8518, 17, 23796, {1, 3, 5, 3, 17, 5, 121, 61, 99, 987, 2033, 2237, 2299, 14689, 19785, 9599, 101035}}, +{8519, 17, 23803, {1, 1, 1, 1, 17, 25, 5, 97, 55, 75, 1419, 2793, 7215, 3185, 7029, 23023, 89089}}, +{8520, 17, 23813, {1, 3, 3, 3, 11, 57, 103, 191, 405, 463, 1421, 253, 6069, 10905, 18193, 719, 17337}}, +{8521, 17, 23820, {1, 3, 5, 11, 23, 37, 39, 169, 295, 527, 1671, 3913, 6057, 689, 27719, 47245, 95895}}, +{8522, 17, 23841, {1, 3, 7, 5, 13, 9, 43, 189, 411, 155, 559, 3701, 1623, 2401, 10359, 22675, 41897}}, +{8523, 17, 23853, {1, 1, 1, 11, 17, 55, 47, 101, 357, 669, 857, 2745, 6425, 11839, 13095, 10757, 52383}}, +{8524, 17, 23861, {1, 1, 7, 5, 11, 13, 53, 151, 93, 455, 133, 3353, 1417, 7917, 12913, 2615, 34281}}, +{8525, 17, 23862, {1, 1, 3, 5, 29, 57, 43, 35, 203, 423, 311, 3133, 1757, 1291, 2019, 3115, 126939}}, +{8526, 17, 23873, {1, 1, 3, 11, 9, 43, 119, 95, 135, 351, 1865, 2821, 717, 6275, 19713, 42315, 97935}}, +{8527, 17, 23876, {1, 3, 7, 7, 31, 51, 7, 29, 405, 31, 1765, 3231, 1315, 1307, 26469, 62033, 35619}}, +{8528, 17, 23897, {1, 1, 5, 7, 5, 17, 49, 137, 501, 631, 1401, 2851, 6971, 14721, 4329, 26483, 120007}}, +{8529, 17, 23898, {1, 1, 5, 13, 21, 19, 95, 93, 125, 331, 1797, 1653, 1891, 11081, 30989, 24671, 95421}}, +{8530, 17, 23903, {1, 3, 3, 11, 13, 29, 61, 157, 165, 39, 661, 89, 637, 1397, 12561, 62399, 129107}}, +{8531, 17, 23904, {1, 3, 1, 15, 13, 19, 5, 115, 345, 903, 531, 4069, 6775, 7433, 569, 21779, 13271}}, +{8532, 17, 23910, {1, 3, 3, 9, 5, 53, 17, 115, 67, 939, 1907, 3979, 4311, 3573, 857, 34931, 112397}}, +{8533, 17, 23931, {1, 3, 7, 11, 9, 47, 83, 85, 277, 219, 1701, 3013, 3037, 3473, 3797, 40713, 118573}}, +{8534, 17, 23933, {1, 1, 3, 13, 25, 33, 117, 115, 179, 119, 487, 3213, 2873, 17, 20865, 20043, 64381}}, +{8535, 17, 23934, {1, 1, 1, 3, 1, 45, 73, 103, 75, 579, 981, 2449, 2141, 8697, 22995, 59693, 104461}}, +{8536, 17, 23943, {1, 3, 1, 1, 29, 9, 9, 201, 55, 389, 1069, 2057, 4149, 9217, 10753, 7889, 95849}}, +{8537, 17, 23952, {1, 3, 7, 9, 27, 39, 19, 223, 7, 253, 55, 503, 3339, 6049, 32603, 34807, 115403}}, +{8538, 17, 23955, {1, 1, 5, 3, 13, 21, 67, 87, 205, 309, 1371, 1579, 281, 16135, 28403, 25951, 24109}}, +{8539, 17, 23962, {1, 3, 1, 3, 17, 21, 49, 77, 393, 943, 1701, 2661, 5173, 12875, 2731, 40531, 19301}}, +{8540, 17, 23971, {1, 3, 1, 5, 23, 29, 61, 161, 373, 389, 1699, 359, 2513, 4717, 30397, 24395, 20881}}, +{8541, 17, 23978, {1, 3, 5, 5, 29, 3, 115, 251, 277, 487, 7, 3301, 7945, 14233, 20497, 62035, 21537}}, +{8542, 17, 23998, {1, 1, 1, 9, 7, 59, 23, 85, 367, 109, 1761, 4011, 6535, 8263, 2081, 63647, 69807}}, +{8543, 17, 24003, {1, 1, 7, 11, 21, 41, 29, 219, 271, 617, 929, 407, 2899, 14299, 7645, 44815, 58817}}, +{8544, 17, 24009, {1, 3, 5, 7, 11, 29, 119, 33, 261, 571, 2013, 3327, 2181, 12767, 93, 2437, 76533}}, +{8545, 17, 24017, {1, 1, 7, 13, 17, 39, 55, 203, 261, 917, 967, 3651, 7235, 13751, 14439, 7591, 96553}}, +{8546, 17, 24045, {1, 1, 1, 1, 11, 39, 19, 21, 125, 93, 1773, 1155, 6213, 7173, 9057, 6219, 4643}}, +{8547, 17, 24046, {1, 3, 1, 5, 1, 31, 55, 143, 425, 539, 61, 3377, 7647, 257, 15007, 24511, 8707}}, +{8548, 17, 24060, {1, 3, 3, 11, 27, 51, 103, 197, 427, 139, 181, 1169, 3123, 11803, 5285, 1321, 62267}}, +{8549, 17, 24064, {1, 3, 5, 9, 11, 3, 13, 149, 197, 37, 31, 927, 3313, 16149, 14209, 60177, 46525}}, +{8550, 17, 24076, {1, 1, 5, 13, 15, 29, 103, 49, 355, 797, 1253, 1833, 621, 3877, 9981, 49207, 91035}}, +{8551, 17, 24079, {1, 1, 3, 3, 13, 19, 27, 51, 151, 275, 35, 3755, 7511, 14197, 26141, 43765, 104327}}, +{8552, 17, 24087, {1, 3, 5, 15, 23, 47, 101, 213, 97, 957, 831, 1533, 7913, 15763, 29717, 60425, 38559}}, +{8553, 17, 24094, {1, 1, 7, 9, 29, 31, 49, 245, 361, 299, 151, 2969, 1487, 1761, 11697, 4043, 100909}}, +{8554, 17, 24100, {1, 1, 1, 3, 17, 49, 99, 159, 3, 525, 1527, 3435, 5113, 459, 13341, 54103, 85813}}, +{8555, 17, 24118, {1, 3, 1, 1, 5, 59, 35, 75, 107, 91, 1621, 3261, 619, 3271, 10813, 29857, 1547}}, +{8556, 17, 24121, {1, 1, 5, 9, 9, 33, 85, 245, 39, 879, 1621, 2587, 3825, 12939, 30113, 24611, 68491}}, +{8557, 17, 24132, {1, 3, 1, 3, 9, 39, 93, 241, 307, 237, 3, 1763, 7729, 9257, 31911, 32591, 77333}}, +{8558, 17, 24147, {1, 3, 1, 3, 27, 7, 51, 121, 317, 361, 1027, 95, 7035, 3097, 21007, 38311, 88287}}, +{8559, 17, 24165, {1, 3, 7, 3, 19, 3, 111, 115, 339, 793, 1571, 3101, 1911, 14929, 12841, 45871, 119905}}, +{8560, 17, 24172, {1, 1, 5, 7, 31, 61, 37, 143, 279, 941, 1215, 2411, 7617, 1657, 10189, 19139, 6307}}, +{8561, 17, 24177, {1, 1, 3, 9, 21, 35, 13, 157, 187, 79, 689, 1085, 37, 4549, 5901, 15321, 61627}}, +{8562, 17, 24184, {1, 3, 1, 13, 15, 39, 21, 231, 39, 327, 801, 2321, 587, 1877, 3489, 54467, 95773}}, +{8563, 17, 24187, {1, 1, 5, 7, 1, 9, 53, 1, 243, 365, 789, 3833, 317, 10697, 26567, 65187, 22507}}, +{8564, 17, 24213, {1, 3, 3, 7, 9, 41, 31, 135, 425, 939, 15, 2043, 6593, 7651, 25467, 62549, 35847}}, +{8565, 17, 24217, {1, 1, 1, 7, 15, 23, 19, 57, 421, 25, 1037, 3055, 6173, 12451, 485, 54567, 109561}}, +{8566, 17, 24223, {1, 3, 5, 1, 3, 29, 67, 233, 157, 677, 1711, 513, 4673, 2895, 1983, 31075, 1861}}, +{8567, 17, 24230, {1, 1, 1, 1, 7, 39, 115, 251, 275, 791, 15, 1685, 6835, 14685, 12607, 28213, 121475}}, +{8568, 17, 24234, {1, 1, 5, 5, 13, 11, 103, 93, 489, 709, 1339, 2407, 1663, 10195, 3135, 15531, 88427}}, +{8569, 17, 24241, {1, 1, 7, 7, 17, 1, 123, 143, 31, 721, 1739, 2273, 3785, 10261, 14741, 52573, 113677}}, +{8570, 17, 24248, {1, 3, 7, 3, 9, 21, 77, 13, 241, 429, 165, 3399, 7543, 2633, 21129, 13537, 84473}}, +{8571, 17, 24259, {1, 1, 1, 11, 21, 33, 125, 123, 189, 337, 163, 3727, 2101, 14113, 1719, 46017, 68601}}, +{8572, 17, 24262, {1, 1, 7, 9, 9, 53, 101, 111, 125, 605, 1419, 3901, 1769, 4585, 20063, 20857, 21901}}, +{8573, 17, 24271, {1, 3, 7, 11, 1, 19, 51, 7, 457, 119, 871, 3847, 57, 11437, 28763, 58831, 675}}, +{8574, 17, 24279, {1, 3, 1, 15, 25, 63, 69, 25, 405, 823, 1701, 2441, 7561, 8679, 31643, 29325, 25563}}, +{8575, 17, 24286, {1, 1, 3, 9, 15, 5, 89, 13, 73, 951, 959, 2693, 4565, 13095, 991, 12419, 8267}}, +{8576, 17, 24289, {1, 1, 7, 1, 15, 1, 119, 223, 213, 585, 1047, 2623, 4141, 2043, 1583, 59155, 5133}}, +{8577, 17, 24295, {1, 3, 3, 3, 17, 37, 81, 233, 87, 843, 1597, 1251, 4713, 10813, 24357, 48499, 84465}}, +{8578, 17, 24296, {1, 1, 1, 1, 11, 55, 125, 5, 255, 809, 543, 2351, 7079, 7801, 29247, 23937, 97405}}, +{8579, 17, 24299, {1, 3, 3, 5, 17, 55, 87, 245, 371, 679, 943, 655, 5857, 261, 28229, 22519, 35191}}, +{8580, 17, 24314, {1, 1, 7, 15, 9, 49, 25, 155, 13, 893, 1303, 2317, 2903, 15601, 1433, 20397, 70125}}, +{8581, 17, 24336, {1, 3, 5, 3, 11, 47, 99, 63, 253, 95, 1023, 397, 4307, 4771, 17027, 19833, 18269}}, +{8582, 17, 24342, {1, 3, 3, 7, 25, 17, 69, 119, 475, 575, 1637, 3785, 649, 11557, 22457, 38633, 96153}}, +{8583, 17, 24346, {1, 1, 1, 5, 31, 55, 85, 83, 307, 201, 1543, 727, 977, 15779, 21907, 31025, 38969}}, +{8584, 17, 24357, {1, 3, 5, 1, 7, 53, 107, 239, 341, 237, 1567, 2717, 3197, 12419, 23733, 42119, 86619}}, +{8585, 17, 24367, {1, 1, 5, 13, 3, 7, 105, 95, 201, 953, 781, 2043, 5263, 13427, 10303, 60027, 19297}}, +{8586, 17, 24370, {1, 1, 5, 15, 25, 51, 5, 77, 165, 297, 1281, 1635, 4139, 11569, 32325, 23135, 27013}}, +{8587, 17, 24372, {1, 1, 3, 9, 3, 59, 107, 137, 251, 715, 1477, 511, 5629, 12205, 7541, 62559, 4253}}, +{8588, 17, 24387, {1, 1, 7, 11, 31, 29, 7, 251, 119, 547, 1179, 3063, 1625, 8941, 30515, 13601, 72741}}, +{8589, 17, 24389, {1, 3, 7, 13, 27, 43, 31, 43, 465, 355, 1063, 2305, 1425, 11963, 27327, 53335, 127517}}, +{8590, 17, 24402, {1, 3, 1, 3, 21, 17, 53, 171, 269, 783, 349, 1879, 575, 13537, 16931, 61171, 23499}}, +{8591, 17, 24414, {1, 3, 5, 3, 11, 5, 121, 227, 237, 841, 431, 3209, 3241, 6071, 23465, 39533, 102391}}, +{8592, 17, 24420, {1, 3, 5, 11, 9, 1, 59, 143, 181, 869, 1859, 1543, 6419, 13305, 29075, 28051, 105799}}, +{8593, 17, 24435, {1, 1, 7, 13, 31, 1, 105, 169, 67, 693, 1667, 2181, 4127, 4605, 3701, 36467, 19631}}, +{8594, 17, 24437, {1, 1, 7, 5, 31, 15, 119, 161, 55, 549, 1195, 4051, 1923, 2497, 8289, 60393, 96181}}, +{8595, 17, 24442, {1, 1, 3, 3, 5, 43, 13, 123, 469, 603, 2047, 2347, 815, 3457, 7503, 25261, 71951}}, +{8596, 17, 24444, {1, 1, 7, 3, 13, 25, 85, 141, 497, 405, 957, 1407, 2075, 12445, 6675, 9993, 40429}}, +{8597, 17, 24447, {1, 1, 5, 13, 29, 43, 99, 113, 307, 1003, 859, 723, 7513, 12249, 12653, 57685, 89551}}, +{8598, 17, 24468, {1, 3, 7, 3, 11, 3, 9, 141, 501, 113, 69, 2285, 4525, 9049, 24765, 11585, 53787}}, +{8599, 17, 24475, {1, 1, 3, 1, 25, 41, 103, 159, 215, 871, 77, 1849, 609, 15877, 32515, 22931, 11933}}, +{8600, 17, 24484, {1, 1, 5, 11, 3, 27, 27, 111, 479, 861, 1041, 3777, 4443, 3095, 30379, 6293, 30823}}, +{8601, 17, 24493, {1, 3, 5, 5, 27, 45, 9, 25, 451, 845, 1153, 897, 325, 15679, 30151, 37695, 54593}}, +{8602, 17, 24494, {1, 3, 7, 1, 15, 47, 87, 135, 87, 567, 221, 3173, 769, 8173, 2957, 51287, 20961}}, +{8603, 17, 24496, {1, 3, 1, 9, 3, 33, 1, 71, 147, 983, 1485, 3531, 213, 2353, 28269, 49353, 88343}}, +{8604, 17, 24514, {1, 1, 3, 11, 11, 63, 109, 255, 35, 127, 1777, 791, 1379, 9539, 4915, 21593, 98901}}, +{8605, 17, 24519, {1, 1, 7, 5, 3, 47, 93, 219, 381, 963, 359, 2461, 7629, 2803, 17345, 54311, 79057}}, +{8606, 17, 24533, {1, 3, 5, 13, 13, 21, 1, 65, 455, 203, 29, 3717, 4495, 1285, 25289, 38597, 42431}}, +{8607, 17, 24538, {1, 1, 3, 3, 27, 57, 7, 171, 65, 469, 1921, 3855, 1637, 5517, 14907, 48239, 117573}}, +{8608, 17, 24559, {1, 3, 5, 1, 11, 35, 105, 251, 19, 219, 1191, 2177, 7885, 8399, 30527, 61415, 122215}}, +{8609, 17, 24568, {1, 3, 5, 5, 21, 25, 59, 193, 509, 147, 1805, 561, 3505, 9639, 14221, 31, 99261}}, +{8610, 17, 24573, {1, 1, 5, 13, 31, 23, 35, 143, 367, 385, 1335, 2497, 3573, 8113, 16661, 16147, 8763}}, +{8611, 17, 24577, {1, 1, 7, 13, 15, 27, 35, 15, 7, 539, 633, 1145, 2267, 11527, 20975, 16689, 58227}}, +{8612, 17, 24587, {1, 1, 1, 15, 9, 11, 51, 121, 381, 331, 1445, 187, 519, 15827, 27611, 32891, 113671}}, +{8613, 17, 24592, {1, 3, 1, 5, 19, 3, 77, 67, 107, 105, 1025, 3229, 6869, 5717, 4227, 28489, 59759}}, +{8614, 17, 24601, {1, 1, 5, 15, 25, 23, 7, 25, 103, 733, 525, 453, 6467, 2901, 7197, 33267, 68177}}, +{8615, 17, 24602, {1, 1, 5, 7, 27, 27, 41, 93, 449, 733, 571, 411, 1709, 9557, 549, 5925, 24123}}, +{8616, 17, 24608, {1, 1, 7, 5, 31, 57, 119, 227, 105, 533, 717, 3357, 2495, 6467, 7211, 38169, 44603}}, +{8617, 17, 24645, {1, 1, 5, 7, 29, 9, 125, 241, 471, 571, 1271, 2911, 8087, 5067, 31139, 39681, 28579}}, +{8618, 17, 24650, {1, 3, 5, 11, 25, 53, 109, 35, 183, 109, 1961, 1681, 7773, 6935, 28049, 37279, 96829}}, +{8619, 17, 24657, {1, 1, 1, 11, 1, 17, 47, 245, 231, 747, 1395, 1635, 5129, 3165, 627, 34463, 38967}}, +{8620, 17, 24664, {1, 3, 5, 1, 9, 41, 25, 215, 251, 525, 1399, 3405, 7399, 11041, 5599, 51167, 38697}}, +{8621, 17, 24670, {1, 3, 3, 13, 11, 15, 121, 95, 139, 611, 633, 3941, 2619, 15123, 28535, 64823, 17527}}, +{8622, 17, 24673, {1, 3, 7, 13, 21, 53, 65, 175, 81, 5, 699, 1525, 7397, 2465, 4479, 58225, 26387}}, +{8623, 17, 24676, {1, 1, 5, 7, 9, 31, 31, 149, 359, 613, 397, 153, 4861, 8195, 22969, 26003, 124423}}, +{8624, 17, 24680, {1, 3, 1, 13, 27, 17, 107, 27, 19, 13, 1481, 573, 7701, 6273, 30255, 16125, 11809}}, +{8625, 17, 24686, {1, 3, 1, 9, 15, 1, 45, 105, 287, 901, 667, 3197, 3493, 12259, 1511, 63361, 94257}}, +{8626, 17, 24700, {1, 3, 1, 3, 25, 53, 19, 87, 365, 585, 1569, 1731, 3747, 11985, 22673, 17767, 113779}}, +{8627, 17, 24704, {1, 3, 3, 9, 7, 21, 103, 201, 501, 149, 1939, 3111, 4739, 8389, 27127, 55889, 54487}}, +{8628, 17, 24714, {1, 3, 5, 7, 25, 53, 75, 57, 19, 505, 849, 2631, 6999, 11269, 24541, 17695, 97671}}, +{8629, 17, 24728, {1, 1, 7, 15, 5, 51, 123, 93, 445, 379, 1729, 2747, 5821, 10779, 29335, 57419, 109339}}, +{8630, 17, 24731, {1, 1, 7, 3, 7, 57, 117, 65, 297, 891, 487, 1535, 2361, 10457, 30759, 34571, 129949}}, +{8631, 17, 24733, {1, 3, 5, 5, 17, 51, 27, 103, 55, 925, 947, 1237, 1629, 12687, 14775, 49627, 100939}}, +{8632, 17, 24747, {1, 3, 3, 15, 1, 11, 75, 177, 399, 55, 1705, 1165, 7525, 8909, 13071, 60703, 11561}}, +{8633, 17, 24749, {1, 1, 1, 7, 13, 29, 23, 65, 279, 853, 637, 3947, 4099, 6465, 7061, 50417, 35015}}, +{8634, 17, 24750, {1, 1, 3, 3, 15, 11, 111, 169, 135, 279, 1941, 3035, 3027, 6813, 13363, 20387, 3257}}, +{8635, 17, 24764, {1, 3, 3, 11, 3, 5, 95, 181, 405, 313, 39, 1503, 2443, 3221, 17021, 23485, 43909}}, +{8636, 17, 24782, {1, 1, 1, 3, 17, 63, 27, 247, 441, 533, 449, 3845, 4021, 14269, 31477, 7013, 37473}}, +{8637, 17, 24784, {1, 1, 5, 13, 29, 39, 41, 95, 417, 21, 685, 609, 5787, 13145, 32677, 6121, 50919}}, +{8638, 17, 24793, {1, 1, 5, 3, 17, 5, 93, 143, 171, 681, 1143, 2875, 805, 15823, 29649, 63327, 12041}}, +{8639, 17, 24794, {1, 1, 1, 11, 3, 53, 123, 105, 59, 485, 1799, 2939, 657, 2485, 29563, 36221, 89095}}, +{8640, 17, 24810, {1, 1, 5, 5, 15, 13, 127, 87, 211, 579, 175, 793, 6895, 9051, 17681, 28831, 31783}}, +{8641, 17, 24817, {1, 3, 7, 5, 11, 37, 9, 219, 453, 697, 139, 335, 6411, 8495, 4203, 29065, 114837}}, +{8642, 17, 24820, {1, 1, 3, 5, 31, 25, 89, 215, 249, 271, 1731, 3133, 3947, 10227, 9679, 51303, 82833}}, +{8643, 17, 24823, {1, 3, 5, 1, 31, 15, 7, 131, 369, 757, 1963, 3223, 35, 13967, 31807, 5093, 113743}}, +{8644, 17, 24832, {1, 1, 7, 3, 15, 23, 21, 173, 295, 929, 1137, 3943, 1985, 13015, 8523, 59117, 127}}, +{8645, 17, 24855, {1, 3, 7, 1, 31, 1, 115, 229, 345, 859, 1757, 1835, 7491, 4545, 1483, 40149, 122321}}, +{8646, 17, 24859, {1, 1, 1, 3, 13, 5, 3, 133, 177, 47, 1515, 17, 5663, 3185, 2775, 31389, 37409}}, +{8647, 17, 24862, {1, 1, 3, 3, 31, 3, 43, 137, 185, 803, 709, 391, 3513, 8117, 32593, 46593, 61037}}, +{8648, 17, 24877, {1, 1, 1, 7, 29, 27, 13, 35, 61, 961, 777, 2725, 7379, 7053, 21781, 60285, 49221}}, +{8649, 17, 24890, {1, 3, 7, 15, 7, 7, 15, 123, 109, 97, 361, 791, 4773, 8111, 4319, 13981, 92505}}, +{8650, 17, 24900, {1, 1, 3, 11, 21, 33, 113, 221, 453, 981, 341, 4041, 5129, 5981, 11051, 17243, 19023}}, +{8651, 17, 24904, {1, 3, 1, 1, 19, 7, 75, 213, 467, 221, 1829, 1275, 5729, 6843, 23855, 44805, 89269}}, +{8652, 17, 24909, {1, 1, 3, 7, 5, 29, 39, 125, 147, 329, 1485, 2793, 2329, 14979, 18395, 37951, 58699}}, +{8653, 17, 24910, {1, 3, 1, 3, 11, 37, 117, 189, 103, 381, 39, 31, 5205, 5601, 17127, 49073, 121417}}, +{8654, 17, 24915, {1, 3, 3, 13, 23, 49, 57, 187, 441, 189, 349, 2559, 3313, 1321, 7731, 57309, 80195}}, +{8655, 17, 24922, {1, 3, 7, 1, 17, 9, 21, 15, 447, 333, 959, 3471, 5301, 8573, 9761, 23183, 57997}}, +{8656, 17, 24937, {1, 3, 1, 9, 19, 1, 101, 71, 325, 309, 85, 2097, 8003, 12249, 1887, 2097, 68375}}, +{8657, 17, 24945, {1, 1, 7, 7, 11, 39, 85, 241, 293, 205, 387, 1539, 6583, 1395, 8869, 48843, 49983}}, +{8658, 17, 24962, {1, 3, 7, 13, 11, 23, 83, 125, 55, 429, 169, 1893, 4657, 643, 3405, 9943, 128753}}, +{8659, 17, 24964, {1, 1, 3, 11, 19, 43, 13, 171, 495, 117, 437, 3697, 6723, 6199, 1859, 39637, 111499}}, +{8660, 17, 24991, {1, 1, 1, 5, 1, 31, 83, 199, 129, 941, 1637, 1997, 5011, 14957, 32427, 60797, 4989}}, +{8661, 17, 24992, {1, 3, 3, 3, 5, 61, 33, 225, 315, 157, 1709, 807, 7809, 11063, 319, 20901, 73599}}, +{8662, 17, 24995, {1, 1, 7, 3, 27, 3, 1, 173, 125, 769, 1203, 3357, 4899, 13115, 7081, 42459, 18525}}, +{8663, 17, 25001, {1, 1, 7, 9, 9, 27, 43, 115, 229, 867, 661, 1825, 2883, 4285, 22393, 65141, 24699}}, +{8664, 17, 25009, {1, 1, 3, 7, 5, 9, 93, 47, 33, 823, 309, 2977, 5791, 9177, 27645, 35683, 57455}}, +{8665, 17, 25019, {1, 1, 5, 7, 9, 53, 9, 77, 499, 1023, 917, 209, 7311, 249, 773, 18303, 41447}}, +{8666, 17, 25021, {1, 1, 3, 5, 7, 9, 33, 73, 325, 369, 1657, 2257, 2893, 13911, 10797, 21055, 103511}}, +{8667, 17, 25029, {1, 3, 1, 3, 21, 31, 125, 29, 149, 513, 979, 2271, 989, 9541, 4179, 13215, 71369}}, +{8668, 17, 25034, {1, 1, 7, 7, 19, 41, 39, 165, 59, 79, 137, 3479, 3389, 6635, 21467, 51073, 20765}}, +{8669, 17, 25036, {1, 3, 3, 5, 7, 13, 109, 53, 335, 627, 339, 3825, 287, 6077, 11319, 2377, 112693}}, +{8670, 17, 25039, {1, 3, 3, 1, 3, 57, 9, 47, 437, 717, 563, 1219, 6191, 9081, 21533, 2651, 17275}}, +{8671, 17, 25057, {1, 1, 1, 5, 21, 9, 109, 109, 339, 947, 1699, 1487, 6477, 12601, 12327, 39427, 80937}}, +{8672, 17, 25063, {1, 1, 7, 9, 1, 5, 55, 43, 95, 733, 1151, 3657, 2119, 11947, 21279, 21581, 22053}}, +{8673, 17, 25064, {1, 3, 5, 11, 7, 9, 97, 149, 55, 523, 1911, 1389, 5343, 5533, 15439, 65313, 73421}}, +{8674, 17, 25075, {1, 1, 3, 7, 19, 15, 119, 141, 57, 243, 423, 981, 1407, 12633, 20455, 53069, 98593}}, +{8675, 17, 25077, {1, 1, 3, 3, 15, 57, 71, 203, 15, 133, 601, 805, 2821, 11623, 147, 4333, 97681}}, +{8676, 17, 25084, {1, 1, 5, 7, 17, 61, 15, 251, 53, 699, 105, 1195, 3979, 41, 9077, 5145, 80057}}, +{8677, 17, 25088, {1, 1, 5, 15, 29, 33, 53, 19, 41, 471, 1143, 65, 5833, 8417, 17263, 35859, 45035}}, +{8678, 17, 25091, {1, 1, 1, 1, 15, 51, 73, 131, 181, 147, 1863, 3777, 1749, 10135, 11591, 12395, 85163}}, +{8679, 17, 25105, {1, 3, 1, 9, 23, 63, 83, 199, 87, 499, 2025, 863, 4665, 3941, 17647, 52463, 108615}}, +{8680, 17, 25134, {1, 3, 5, 7, 11, 39, 65, 161, 367, 593, 699, 1807, 7217, 5221, 22093, 44933, 6201}}, +{8681, 17, 25165, {1, 1, 7, 13, 9, 41, 35, 77, 353, 291, 1267, 3923, 5397, 15401, 30317, 14945, 8715}}, +{8682, 17, 25183, {1, 3, 1, 15, 11, 3, 29, 25, 505, 945, 1425, 2297, 1133, 4675, 8069, 55115, 114177}}, +{8683, 17, 25184, {1, 3, 1, 5, 27, 63, 25, 7, 5, 399, 473, 1325, 7391, 5953, 27755, 65407, 89435}}, +{8684, 17, 25202, {1, 3, 3, 13, 21, 61, 5, 119, 23, 999, 849, 1225, 3077, 821, 12059, 43223, 45427}}, +{8685, 17, 25204, {1, 3, 7, 13, 1, 5, 93, 173, 181, 453, 1449, 3823, 1713, 14737, 8891, 43643, 1983}}, +{8686, 17, 25211, {1, 1, 3, 3, 29, 53, 31, 163, 321, 539, 1283, 429, 3449, 15617, 4761, 21187, 120725}}, +{8687, 17, 25223, {1, 1, 1, 1, 13, 27, 49, 37, 33, 631, 375, 425, 2465, 8773, 2777, 2115, 35633}}, +{8688, 17, 25224, {1, 3, 5, 3, 25, 25, 27, 201, 63, 259, 1571, 1143, 2325, 6773, 11941, 28897, 19719}}, +{8689, 17, 25235, {1, 1, 3, 5, 11, 39, 59, 203, 37, 899, 559, 2599, 4397, 12159, 29579, 51251, 83213}}, +{8690, 17, 25241, {1, 1, 1, 7, 9, 19, 63, 169, 257, 921, 381, 3605, 3479, 1739, 26599, 20599, 29617}}, +{8691, 17, 25253, {1, 1, 1, 9, 7, 29, 123, 35, 419, 963, 855, 1903, 6199, 2727, 29811, 49279, 101673}}, +{8692, 17, 25258, {1, 3, 5, 11, 29, 23, 73, 13, 467, 935, 181, 3837, 8117, 11501, 18361, 26803, 99471}}, +{8693, 17, 25277, {1, 1, 1, 5, 31, 41, 109, 45, 115, 113, 1893, 727, 2453, 13463, 22339, 13495, 11473}}, +{8694, 17, 25278, {1, 1, 5, 9, 5, 31, 109, 145, 511, 243, 57, 2219, 1601, 1821, 12787, 48239, 89645}}, +{8695, 17, 25280, {1, 3, 1, 7, 19, 41, 25, 57, 45, 489, 1531, 3959, 2007, 14247, 13445, 1991, 114977}}, +{8696, 17, 25290, {1, 3, 7, 15, 7, 17, 107, 27, 249, 207, 183, 2483, 5817, 8927, 10715, 63631, 51947}}, +{8697, 17, 25295, {1, 3, 1, 3, 13, 21, 57, 113, 171, 885, 1335, 783, 7575, 4443, 19497, 13827, 130727}}, +{8698, 17, 25300, {1, 1, 5, 7, 19, 33, 95, 13, 387, 297, 1597, 767, 7543, 16063, 10367, 51683, 119811}}, +{8699, 17, 25307, {1, 3, 7, 9, 27, 57, 111, 209, 305, 139, 179, 25, 2295, 2593, 31361, 23677, 74501}}, +{8700, 17, 25319, {1, 3, 7, 3, 21, 63, 97, 189, 3, 693, 209, 2227, 7169, 9, 32575, 61521, 115155}}, +{8701, 17, 25323, {1, 1, 1, 11, 13, 21, 125, 249, 193, 895, 139, 1207, 5941, 5821, 6623, 7753, 80939}}, +{8702, 17, 25326, {1, 3, 5, 5, 11, 49, 17, 21, 423, 497, 835, 539, 6195, 12783, 1271, 20069, 2657}}, +{8703, 17, 25333, {1, 1, 7, 15, 13, 39, 83, 191, 77, 95, 661, 3627, 1853, 1349, 23109, 43583, 104121}}, +{8704, 17, 25334, {1, 3, 1, 15, 31, 15, 71, 255, 489, 91, 351, 367, 309, 6275, 18325, 51231, 52159}}, +{8705, 17, 25337, {1, 1, 7, 13, 21, 49, 37, 135, 355, 421, 507, 2563, 4955, 4095, 1933, 29517, 119699}}, +{8706, 17, 25348, {1, 1, 1, 1, 27, 41, 15, 161, 475, 635, 863, 3773, 6015, 6197, 24261, 26271, 42375}}, +{8707, 17, 25351, {1, 1, 7, 13, 25, 7, 23, 185, 129, 597, 1561, 3003, 2879, 15187, 4913, 24589, 12927}}, +{8708, 17, 25372, {1, 1, 3, 3, 9, 23, 49, 233, 345, 83, 823, 2627, 5019, 2365, 23755, 9855, 48515}}, +{8709, 17, 25381, {1, 3, 1, 1, 11, 7, 117, 213, 27, 923, 375, 2597, 8173, 8935, 16487, 49283, 104569}}, +{8710, 17, 25403, {1, 1, 7, 7, 23, 13, 61, 131, 313, 883, 495, 1105, 6207, 1473, 21655, 51883, 403}}, +{8711, 17, 25406, {1, 3, 3, 1, 25, 5, 5, 159, 243, 929, 1429, 1151, 5043, 11551, 21231, 38767, 105299}}, +{8712, 17, 25431, {1, 3, 7, 7, 15, 37, 49, 219, 67, 147, 873, 2391, 455, 9565, 8977, 64759, 40347}}, +{8713, 17, 25437, {1, 1, 1, 13, 21, 13, 13, 243, 303, 333, 187, 3591, 871, 2501, 30853, 5247, 48855}}, +{8714, 17, 25453, {1, 1, 1, 5, 1, 5, 127, 249, 23, 79, 789, 3507, 8119, 5025, 26545, 54009, 100633}}, +{8715, 17, 25459, {1, 3, 3, 11, 3, 31, 27, 115, 423, 309, 1805, 169, 789, 4081, 28139, 35355, 47991}}, +{8716, 17, 25462, {1, 3, 1, 5, 19, 13, 43, 165, 165, 241, 309, 1703, 7631, 5899, 12041, 21235, 97045}}, +{8717, 17, 25466, {1, 3, 1, 13, 15, 49, 29, 199, 93, 611, 77, 2681, 191, 10215, 8115, 11895, 108687}}, +{8718, 17, 25477, {1, 1, 3, 3, 13, 45, 15, 151, 345, 111, 1829, 1357, 6317, 5239, 26193, 46763, 73101}}, +{8719, 17, 25484, {1, 3, 7, 3, 1, 19, 119, 63, 23, 759, 173, 307, 967, 2731, 9353, 14479, 119}}, +{8720, 17, 25495, {1, 3, 5, 15, 5, 21, 127, 21, 419, 575, 991, 3465, 7365, 5711, 30657, 43513, 22447}}, +{8721, 17, 25501, {1, 3, 7, 1, 19, 5, 49, 7, 45, 963, 1755, 3745, 4061, 4619, 9089, 59953, 100265}}, +{8722, 17, 25506, {1, 1, 1, 3, 25, 53, 97, 97, 347, 749, 823, 1499, 8151, 9957, 731, 22317, 121623}}, +{8723, 17, 25511, {1, 3, 5, 5, 19, 3, 121, 127, 313, 457, 1737, 4065, 5295, 7957, 16373, 62085, 5711}}, +{8724, 17, 25515, {1, 1, 7, 13, 7, 37, 97, 43, 179, 837, 161, 477, 5095, 4985, 111, 58743, 24049}}, +{8725, 17, 25525, {1, 3, 1, 13, 27, 13, 91, 241, 339, 235, 111, 369, 3361, 15105, 11097, 23955, 53561}}, +{8726, 17, 25529, {1, 3, 5, 3, 9, 17, 103, 133, 309, 683, 71, 3329, 7229, 8763, 4165, 9649, 8529}}, +{8727, 17, 25532, {1, 3, 5, 13, 29, 55, 29, 205, 433, 1007, 1173, 731, 5653, 89, 18447, 37911, 65603}}, +{8728, 17, 25538, {1, 3, 5, 1, 15, 1, 7, 195, 397, 877, 1433, 3487, 1581, 1539, 3361, 7453, 46451}}, +{8729, 17, 25549, {1, 1, 5, 13, 23, 1, 47, 245, 19, 859, 681, 2971, 2531, 11393, 32765, 4595, 45213}}, +{8730, 17, 25552, {1, 3, 1, 3, 1, 11, 85, 185, 467, 413, 25, 3677, 881, 1791, 14655, 44811, 50819}}, +{8731, 17, 25564, {1, 3, 5, 9, 9, 21, 65, 99, 441, 215, 1453, 2873, 5883, 485, 20883, 1303, 11837}}, +{8732, 17, 25567, {1, 3, 3, 5, 9, 37, 87, 211, 247, 535, 1163, 1785, 4219, 12559, 17419, 48201, 21725}}, +{8733, 17, 25574, {1, 1, 1, 11, 29, 11, 9, 215, 375, 601, 627, 2641, 6961, 6175, 10995, 49299, 102891}}, +{8734, 17, 25577, {1, 3, 1, 3, 7, 7, 23, 139, 89, 1005, 1815, 947, 1507, 10349, 35, 43595, 104697}}, +{8735, 17, 25583, {1, 1, 5, 13, 29, 47, 77, 255, 341, 333, 1211, 3473, 1303, 11237, 28371, 43283, 77617}}, +{8736, 17, 25588, {1, 3, 3, 13, 27, 17, 73, 95, 227, 241, 1369, 833, 6683, 2193, 309, 64249, 6731}}, +{8737, 17, 25603, {1, 3, 3, 3, 15, 29, 45, 209, 401, 725, 1123, 1659, 6099, 15941, 5797, 30563, 119385}}, +{8738, 17, 25610, {1, 1, 1, 1, 7, 55, 95, 151, 351, 373, 1131, 2357, 7535, 3899, 19047, 17879, 34623}}, +{8739, 17, 25615, {1, 3, 1, 5, 31, 5, 33, 97, 477, 399, 1255, 1073, 1513, 11651, 2951, 31351, 102635}}, +{8740, 17, 25624, {1, 1, 3, 13, 17, 63, 51, 209, 57, 87, 977, 3663, 6717, 15441, 10709, 607, 48297}}, +{8741, 17, 25636, {1, 1, 5, 1, 9, 29, 1, 105, 343, 19, 977, 3401, 3873, 4259, 23057, 13071, 105771}}, +{8742, 17, 25639, {1, 1, 1, 5, 1, 33, 59, 17, 115, 225, 853, 3295, 965, 12547, 26971, 50097, 54999}}, +{8743, 17, 25643, {1, 3, 3, 13, 1, 51, 29, 19, 245, 781, 493, 1121, 2937, 4177, 3267, 47463, 101195}}, +{8744, 17, 25645, {1, 3, 7, 5, 3, 51, 25, 131, 451, 997, 1809, 1583, 355, 15383, 28159, 39141, 109379}}, +{8745, 17, 25648, {1, 1, 5, 7, 3, 19, 75, 103, 401, 115, 1627, 423, 2485, 7281, 6177, 54677, 31499}}, +{8746, 17, 25671, {1, 1, 1, 11, 23, 7, 57, 121, 5, 921, 1191, 1779, 1979, 3427, 25617, 19423, 73835}}, +{8747, 17, 25678, {1, 3, 3, 11, 17, 51, 15, 163, 265, 665, 1399, 1977, 3097, 7109, 14741, 24291, 79239}}, +{8748, 17, 25689, {1, 1, 7, 3, 25, 61, 69, 77, 341, 23, 713, 2879, 8075, 14855, 9691, 58241, 113277}}, +{8749, 17, 25708, {1, 3, 7, 9, 27, 43, 95, 11, 239, 445, 951, 3869, 1049, 6493, 9569, 9285, 29183}}, +{8750, 17, 25716, {1, 1, 3, 1, 1, 23, 27, 101, 337, 171, 1977, 3181, 2693, 8591, 32309, 24909, 106535}}, +{8751, 17, 25725, {1, 1, 1, 7, 23, 59, 79, 115, 49, 351, 871, 1209, 1045, 5985, 28427, 23047, 113571}}, +{8752, 17, 25730, {1, 1, 7, 13, 27, 3, 35, 7, 319, 503, 977, 3747, 4859, 16315, 30375, 25999, 24341}}, +{8753, 17, 25739, {1, 3, 3, 7, 23, 43, 67, 21, 399, 349, 1541, 2991, 5781, 14501, 5609, 65093, 12789}}, +{8754, 17, 25747, {1, 3, 1, 11, 5, 21, 17, 157, 311, 663, 469, 4033, 1557, 7569, 31163, 14079, 127771}}, +{8755, 17, 25753, {1, 1, 7, 15, 15, 31, 15, 183, 365, 35, 1433, 2793, 6685, 10565, 30409, 46815, 14173}}, +{8756, 17, 25790, {1, 1, 7, 7, 7, 45, 61, 163, 99, 353, 1535, 3185, 4023, 7999, 26173, 12675, 98073}}, +{8757, 17, 25797, {1, 1, 5, 13, 1, 11, 107, 41, 171, 773, 1513, 883, 2117, 14449, 32323, 58271, 97173}}, +{8758, 17, 25804, {1, 1, 3, 13, 27, 15, 123, 247, 281, 851, 233, 1173, 6863, 14805, 12401, 30729, 104127}}, +{8759, 17, 25809, {1, 1, 7, 11, 25, 9, 97, 215, 217, 51, 1865, 3897, 725, 4779, 21661, 11853, 72225}}, +{8760, 17, 25816, {1, 1, 5, 3, 5, 31, 125, 81, 367, 705, 325, 519, 3879, 5607, 3247, 7149, 33177}}, +{8761, 17, 25825, {1, 3, 3, 7, 17, 17, 19, 113, 331, 277, 317, 1893, 1287, 8965, 27523, 61355, 45331}}, +{8762, 17, 25831, {1, 3, 7, 9, 27, 15, 87, 21, 343, 479, 11, 2945, 1235, 1591, 28195, 40559, 42773}}, +{8763, 17, 25845, {1, 3, 3, 13, 1, 45, 115, 41, 263, 569, 71, 4051, 739, 1031, 19213, 23961, 110767}}, +{8764, 17, 25846, {1, 3, 7, 1, 9, 41, 21, 131, 3, 617, 191, 4051, 2445, 13451, 11889, 25075, 82631}}, +{8765, 17, 25867, {1, 3, 3, 15, 7, 55, 65, 67, 443, 1023, 1445, 1467, 3907, 11449, 2247, 65085, 102161}}, +{8766, 17, 25870, {1, 3, 5, 15, 19, 27, 97, 181, 51, 591, 99, 1443, 4927, 9809, 29693, 44293, 29369}}, +{8767, 17, 25897, {1, 1, 7, 7, 17, 59, 69, 163, 37, 171, 107, 2581, 3567, 9455, 19707, 6329, 27755}}, +{8768, 17, 25908, {1, 1, 1, 11, 15, 17, 83, 223, 183, 861, 1047, 3739, 3509, 5571, 28259, 42781, 130657}}, +{8769, 17, 25937, {1, 3, 3, 7, 15, 11, 33, 115, 297, 841, 1629, 1559, 2261, 11763, 22255, 63819, 55831}}, +{8770, 17, 25940, {1, 3, 3, 5, 19, 49, 17, 251, 507, 251, 805, 1041, 3947, 2219, 19977, 65449, 25031}}, +{8771, 17, 25944, {1, 1, 1, 11, 3, 7, 81, 17, 219, 729, 949, 3257, 6495, 4701, 2181, 7009, 106465}}, +{8772, 17, 25949, {1, 3, 7, 5, 27, 35, 15, 83, 43, 1013, 1427, 1943, 7555, 6613, 26879, 42685, 22071}}, +{8773, 17, 25954, {1, 1, 3, 13, 23, 55, 15, 87, 15, 579, 717, 777, 149, 11431, 26197, 17711, 7337}}, +{8774, 17, 25960, {1, 1, 5, 1, 31, 45, 113, 253, 211, 915, 1855, 4043, 2159, 1803, 5061, 40473, 3657}}, +{8775, 17, 25963, {1, 1, 3, 7, 25, 15, 37, 73, 467, 969, 1123, 4053, 4837, 10091, 25461, 40803, 91157}}, +{8776, 17, 25966, {1, 1, 5, 1, 7, 31, 77, 207, 21, 623, 577, 1195, 5839, 13013, 11189, 61691, 33327}}, +{8777, 17, 25978, {1, 3, 7, 7, 13, 3, 9, 55, 47, 779, 599, 3747, 1533, 14705, 23185, 4011, 36003}}, +{8778, 17, 25996, {1, 1, 5, 5, 31, 17, 99, 253, 103, 957, 241, 1893, 7435, 14907, 9089, 23205, 70639}}, +{8779, 17, 26007, {1, 3, 7, 15, 7, 55, 53, 101, 227, 541, 2017, 275, 577, 15621, 1799, 50373, 43197}}, +{8780, 17, 26011, {1, 3, 1, 15, 29, 23, 69, 193, 429, 359, 1045, 4091, 6551, 1673, 29113, 43247, 80993}}, +{8781, 17, 26027, {1, 3, 7, 11, 5, 37, 13, 27, 277, 65, 565, 2631, 6919, 5593, 8481, 14703, 9719}}, +{8782, 17, 26032, {1, 3, 1, 15, 5, 7, 83, 51, 77, 307, 1299, 1373, 5281, 15359, 15569, 50093, 59661}}, +{8783, 17, 26038, {1, 3, 5, 11, 13, 31, 99, 123, 263, 319, 2033, 4055, 2427, 103, 2009, 27517, 112467}}, +{8784, 17, 26049, {1, 1, 7, 3, 13, 1, 51, 131, 17, 861, 459, 3925, 5511, 5255, 28553, 36437, 54591}}, +{8785, 17, 26052, {1, 3, 7, 5, 9, 57, 49, 119, 291, 727, 1611, 4035, 4517, 10979, 28445, 26905, 57517}}, +{8786, 17, 26055, {1, 1, 5, 9, 9, 55, 43, 209, 411, 137, 1619, 3965, 5253, 8217, 7569, 42043, 104163}}, +{8787, 17, 26085, {1, 3, 3, 7, 21, 3, 107, 255, 353, 735, 71, 1789, 3351, 755, 22805, 53537, 126859}}, +{8788, 17, 26089, {1, 1, 7, 5, 15, 55, 13, 167, 165, 289, 1231, 2547, 8135, 5475, 2361, 49019, 110579}}, +{8789, 17, 26090, {1, 3, 1, 11, 17, 21, 59, 37, 177, 517, 499, 4035, 749, 14297, 22415, 54975, 29769}}, +{8790, 17, 26098, {1, 3, 7, 3, 3, 59, 55, 17, 483, 625, 875, 1465, 7583, 2969, 2741, 36965, 80367}}, +{8791, 17, 26104, {1, 1, 3, 13, 31, 5, 11, 149, 7, 297, 1485, 735, 4095, 10089, 5757, 64997, 56629}}, +{8792, 17, 26110, {1, 3, 1, 13, 19, 43, 77, 209, 309, 739, 1765, 3297, 8167, 6523, 27987, 25235, 80555}}, +{8793, 17, 26113, {1, 1, 3, 9, 31, 57, 125, 75, 3, 633, 85, 3339, 1691, 9721, 17465, 36801, 106147}}, +{8794, 17, 26126, {1, 3, 5, 15, 27, 7, 111, 7, 475, 523, 1825, 1367, 1549, 15533, 13827, 14471, 100271}}, +{8795, 17, 26133, {1, 1, 5, 3, 5, 61, 1, 221, 163, 183, 1701, 3549, 349, 10057, 26169, 20725, 55305}}, +{8796, 17, 26138, {1, 1, 3, 1, 15, 41, 13, 71, 269, 909, 1253, 2553, 83, 10055, 1057, 39841, 20437}}, +{8797, 17, 26140, {1, 3, 3, 5, 29, 39, 113, 23, 137, 601, 361, 1779, 279, 15803, 8993, 2633, 114847}}, +{8798, 17, 26156, {1, 1, 3, 7, 29, 45, 35, 27, 71, 253, 231, 3449, 1955, 9109, 9043, 50593, 15023}}, +{8799, 17, 26159, {1, 3, 1, 11, 17, 45, 85, 255, 341, 957, 769, 3009, 3997, 6435, 1161, 34219, 97077}}, +{8800, 17, 26176, {1, 1, 5, 1, 1, 19, 9, 51, 477, 129, 1411, 3223, 5069, 3237, 15947, 27215, 70401}}, +{8801, 17, 26186, {1, 1, 3, 1, 1, 1, 73, 31, 301, 227, 119, 607, 3379, 3907, 1263, 2651, 43769}}, +{8802, 17, 26203, {1, 1, 1, 15, 21, 59, 109, 155, 473, 361, 1871, 3085, 513, 12607, 12747, 41067, 44977}}, +{8803, 17, 26210, {1, 1, 7, 3, 27, 21, 89, 71, 437, 671, 1469, 2191, 4225, 6343, 1131, 29141, 25221}}, +{8804, 17, 26222, {1, 1, 7, 9, 7, 45, 95, 197, 391, 11, 1913, 3107, 5247, 959, 30395, 32809, 20893}}, +{8805, 17, 26224, {1, 3, 7, 15, 13, 49, 77, 245, 463, 769, 1807, 1311, 2715, 14819, 27595, 57521, 105221}}, +{8806, 17, 26229, {1, 1, 1, 5, 23, 45, 119, 77, 325, 405, 1631, 461, 6357, 7037, 31699, 46295, 118577}}, +{8807, 17, 26233, {1, 3, 5, 1, 21, 3, 31, 13, 7, 571, 633, 425, 6547, 3423, 19355, 49481, 76289}}, +{8808, 17, 26236, {1, 1, 3, 9, 7, 51, 113, 173, 169, 97, 1821, 979, 2553, 11505, 20047, 39277, 122905}}, +{8809, 17, 26239, {1, 1, 5, 13, 17, 9, 111, 205, 261, 671, 657, 507, 3903, 10767, 4387, 3045, 102617}}, +{8810, 17, 26267, {1, 1, 3, 3, 5, 11, 19, 61, 401, 605, 455, 2457, 4471, 7255, 18435, 49673, 97289}}, +{8811, 17, 26291, {1, 3, 1, 1, 31, 25, 77, 35, 65, 127, 929, 2325, 2315, 13819, 5509, 12515, 36991}}, +{8812, 17, 26293, {1, 1, 7, 5, 21, 49, 33, 119, 181, 645, 1425, 2411, 245, 13755, 18775, 50061, 47119}}, +{8813, 17, 26298, {1, 3, 7, 5, 27, 43, 81, 191, 233, 435, 829, 3881, 713, 11153, 4637, 37721, 115567}}, +{8814, 17, 26303, {1, 3, 7, 1, 27, 59, 51, 165, 59, 931, 1921, 3059, 6843, 813, 22063, 29445, 114765}}, +{8815, 17, 26308, {1, 1, 5, 11, 31, 53, 89, 69, 29, 893, 1241, 7, 1707, 16167, 8371, 14021, 103281}}, +{8816, 17, 26312, {1, 3, 1, 1, 23, 21, 3, 35, 73, 769, 1417, 4051, 3223, 813, 1141, 18823, 31951}}, +{8817, 17, 26315, {1, 3, 7, 11, 9, 17, 89, 85, 407, 137, 1865, 2881, 1495, 3757, 3711, 36651, 1797}}, +{8818, 17, 26342, {1, 3, 5, 1, 25, 29, 29, 217, 15, 173, 479, 2363, 2341, 6193, 16403, 64097, 1173}}, +{8819, 17, 26354, {1, 3, 3, 3, 11, 29, 113, 167, 333, 573, 1467, 2223, 5693, 1063, 20299, 40993, 69055}}, +{8820, 17, 26363, {1, 1, 3, 7, 3, 51, 45, 139, 79, 393, 1251, 1087, 1423, 1827, 23445, 41635, 78511}}, +{8821, 17, 26365, {1, 3, 3, 13, 29, 45, 85, 229, 33, 373, 113, 1205, 997, 11777, 7663, 18513, 5797}}, +{8822, 17, 26383, {1, 1, 5, 5, 15, 5, 127, 85, 49, 345, 901, 3215, 2347, 2329, 19597, 39555, 25031}}, +{8823, 17, 26391, {1, 1, 7, 11, 9, 25, 71, 183, 341, 1011, 439, 3649, 2859, 10183, 7635, 45297, 38581}}, +{8824, 17, 26398, {1, 1, 1, 11, 23, 13, 1, 69, 461, 77, 1641, 2851, 1889, 2413, 1131, 39009, 33773}}, +{8825, 17, 26416, {1, 3, 7, 7, 25, 19, 67, 233, 141, 207, 1501, 453, 4773, 7411, 22839, 25365, 53189}}, +{8826, 17, 26421, {1, 1, 7, 3, 3, 17, 13, 167, 73, 1005, 887, 2595, 4351, 3249, 5653, 36025, 33733}}, +{8827, 17, 26425, {1, 1, 7, 15, 11, 1, 105, 215, 329, 601, 1477, 723, 4597, 3525, 26235, 63957, 26677}}, +{8828, 17, 26434, {1, 1, 1, 11, 27, 15, 111, 133, 327, 567, 845, 2135, 7905, 7297, 29255, 14947, 104885}}, +{8829, 17, 26439, {1, 1, 7, 9, 21, 11, 67, 179, 459, 423, 295, 3445, 1681, 12907, 29281, 7445, 35539}}, +{8830, 17, 26453, {1, 1, 3, 11, 23, 61, 111, 123, 81, 439, 299, 3557, 2821, 705, 15393, 37175, 11533}}, +{8831, 17, 26454, {1, 1, 3, 1, 13, 15, 113, 227, 285, 313, 687, 2085, 6363, 8003, 32661, 36461, 68759}}, +{8832, 17, 26470, {1, 3, 3, 1, 27, 7, 101, 177, 363, 461, 1519, 2339, 473, 7469, 4335, 30951, 130987}}, +{8833, 17, 26491, {1, 1, 1, 3, 31, 39, 59, 159, 207, 93, 581, 1973, 945, 11343, 15901, 22001, 3515}}, +{8834, 17, 26493, {1, 3, 7, 5, 11, 53, 125, 57, 389, 985, 1055, 3803, 3879, 5537, 28221, 36805, 16025}}, +{8835, 17, 26500, {1, 1, 1, 9, 1, 63, 81, 57, 59, 813, 865, 3491, 3771, 6121, 6847, 14765, 68567}}, +{8836, 17, 26509, {1, 1, 7, 7, 13, 17, 23, 211, 435, 167, 933, 357, 3567, 3019, 28439, 17701, 119937}}, +{8837, 17, 26518, {1, 1, 1, 9, 7, 53, 103, 155, 211, 719, 413, 3673, 2795, 15687, 1737, 50855, 129133}}, +{8838, 17, 26531, {1, 1, 3, 13, 11, 23, 53, 121, 497, 383, 1655, 937, 5563, 2549, 23183, 46149, 78875}}, +{8839, 17, 26533, {1, 3, 5, 11, 25, 1, 45, 139, 437, 729, 2009, 3245, 4091, 551, 25993, 31655, 33641}}, +{8840, 17, 26540, {1, 3, 1, 13, 7, 23, 87, 111, 471, 501, 1767, 1051, 7037, 3199, 19609, 43227, 53667}}, +{8841, 17, 26552, {1, 3, 7, 1, 25, 1, 49, 189, 55, 375, 601, 2065, 2991, 7697, 25739, 14951, 43705}}, +{8842, 17, 26566, {1, 1, 7, 5, 29, 21, 51, 111, 81, 809, 1963, 2143, 5529, 15701, 4719, 11857, 88207}}, +{8843, 17, 26569, {1, 1, 5, 11, 27, 27, 7, 145, 281, 939, 537, 1255, 1475, 11383, 15081, 9105, 102775}}, +{8844, 17, 26583, {1, 1, 5, 7, 9, 45, 67, 23, 65, 139, 1871, 3975, 6357, 6515, 25423, 23915, 76289}}, +{8845, 17, 26590, {1, 1, 5, 11, 31, 31, 89, 65, 451, 341, 819, 2439, 6753, 15113, 9085, 32687, 5055}}, +{8846, 17, 26596, {1, 1, 5, 1, 15, 29, 123, 83, 495, 185, 303, 315, 6015, 5257, 2467, 4903, 78269}}, +{8847, 17, 26624, {1, 1, 3, 5, 31, 51, 49, 199, 501, 407, 733, 1181, 8023, 7321, 14765, 17535, 19893}}, +{8848, 17, 26636, {1, 1, 5, 5, 19, 15, 103, 183, 13, 969, 1537, 3053, 3173, 12983, 21761, 33733, 67799}}, +{8849, 17, 26667, {1, 3, 1, 1, 27, 55, 37, 149, 379, 11, 1655, 2317, 3135, 6459, 25941, 12679, 60245}}, +{8850, 17, 26669, {1, 1, 3, 9, 9, 13, 33, 243, 337, 741, 1685, 1147, 5465, 4865, 559, 23993, 47273}}, +{8851, 17, 26672, {1, 3, 5, 13, 21, 11, 39, 169, 135, 209, 1909, 3655, 3117, 1075, 8165, 54633, 28189}}, +{8852, 17, 26675, {1, 3, 1, 15, 9, 23, 11, 123, 63, 133, 947, 907, 3853, 10291, 22905, 4561, 92497}}, +{8853, 17, 26687, {1, 1, 3, 13, 17, 9, 5, 209, 429, 3, 2035, 1497, 6765, 5991, 24991, 8155, 103417}}, +{8854, 17, 26689, {1, 1, 5, 13, 27, 47, 79, 11, 41, 791, 1939, 3099, 4069, 4665, 20801, 18659, 72163}}, +{8855, 17, 26696, {1, 3, 1, 13, 25, 37, 79, 131, 233, 647, 291, 1419, 5157, 4261, 27715, 611, 83157}}, +{8856, 17, 26702, {1, 1, 5, 1, 17, 61, 45, 163, 137, 937, 91, 1695, 1553, 543, 28615, 6855, 75201}}, +{8857, 17, 26714, {1, 1, 3, 13, 7, 63, 109, 13, 351, 159, 1111, 2791, 4701, 5805, 9707, 18361, 98091}}, +{8858, 17, 26716, {1, 1, 3, 11, 11, 21, 55, 247, 111, 801, 93, 3091, 1043, 9761, 23679, 5555, 195}}, +{8859, 17, 26729, {1, 1, 1, 1, 13, 43, 123, 113, 265, 561, 659, 3755, 6605, 10949, 30511, 29495, 9075}}, +{8860, 17, 26732, {1, 3, 1, 7, 23, 63, 19, 73, 233, 1017, 851, 1971, 3999, 7407, 25309, 63991, 92867}}, +{8861, 17, 26737, {1, 3, 3, 3, 19, 63, 127, 107, 465, 463, 1507, 1323, 4729, 14717, 9129, 24859, 117565}}, +{8862, 17, 26747, {1, 1, 7, 1, 19, 11, 13, 85, 339, 939, 895, 887, 765, 15501, 8783, 65087, 77899}}, +{8863, 17, 26773, {1, 3, 7, 3, 7, 15, 43, 153, 365, 223, 1947, 2295, 787, 5549, 20089, 29203, 4807}}, +{8864, 17, 26780, {1, 3, 7, 3, 31, 27, 51, 217, 483, 623, 633, 2123, 1211, 9173, 17949, 54251, 89161}}, +{8865, 17, 26801, {1, 3, 3, 11, 3, 11, 111, 73, 283, 23, 1925, 253, 5141, 12545, 24913, 16847, 13067}}, +{8866, 17, 26811, {1, 3, 5, 5, 31, 39, 35, 235, 135, 85, 191, 999, 6633, 12527, 21401, 61339, 81239}}, +{8867, 17, 26813, {1, 1, 3, 15, 9, 13, 39, 125, 137, 639, 555, 813, 2821, 1199, 32075, 15079, 104609}}, +{8868, 17, 26831, {1, 3, 7, 7, 15, 43, 99, 51, 245, 25, 147, 89, 6841, 5523, 28493, 13967, 113109}}, +{8869, 17, 26836, {1, 1, 3, 13, 7, 5, 27, 121, 269, 231, 1011, 1365, 5055, 11619, 27393, 48033, 65725}}, +{8870, 17, 26839, {1, 1, 7, 5, 9, 23, 41, 71, 327, 339, 1681, 3303, 4143, 421, 15213, 48405, 98067}}, +{8871, 17, 26849, {1, 3, 7, 15, 15, 33, 73, 33, 351, 131, 1051, 3909, 7535, 7659, 9443, 35015, 329}}, +{8872, 17, 26862, {1, 1, 3, 9, 19, 55, 97, 223, 265, 877, 235, 867, 4961, 3137, 19885, 10955, 7655}}, +{8873, 17, 26869, {1, 3, 5, 13, 1, 11, 75, 215, 271, 793, 1691, 1437, 1317, 10977, 1311, 64865, 92361}}, +{8874, 17, 26873, {1, 1, 1, 5, 23, 23, 35, 53, 187, 345, 115, 929, 3919, 4523, 31709, 16771, 33399}}, +{8875, 17, 26874, {1, 3, 5, 11, 17, 7, 75, 57, 351, 359, 1737, 2665, 4259, 13905, 6999, 45359, 117891}}, +{8876, 17, 26888, {1, 1, 5, 3, 23, 29, 49, 209, 417, 843, 531, 1649, 7829, 6271, 3759, 39727, 47415}}, +{8877, 17, 26891, {1, 1, 7, 1, 21, 45, 101, 105, 385, 797, 985, 1447, 3757, 3287, 583, 29283, 96821}}, +{8878, 17, 26896, {1, 1, 7, 9, 1, 29, 15, 207, 289, 465, 815, 2289, 449, 9403, 19197, 13797, 102651}}, +{8879, 17, 26899, {1, 3, 7, 15, 5, 45, 81, 187, 21, 433, 679, 2759, 3375, 6935, 22595, 50149, 13557}}, +{8880, 17, 26912, {1, 3, 3, 5, 11, 55, 69, 219, 95, 21, 645, 1955, 7527, 6037, 29427, 36297, 62013}}, +{8881, 17, 26921, {1, 1, 7, 15, 13, 35, 25, 67, 383, 13, 539, 2399, 4611, 8065, 3815, 27771, 50411}}, +{8882, 17, 26935, {1, 3, 1, 3, 27, 47, 65, 33, 393, 895, 1663, 1289, 1057, 11887, 1259, 53611, 36811}}, +{8883, 17, 26941, {1, 3, 5, 3, 5, 1, 27, 65, 379, 15, 1643, 1461, 3009, 8177, 15589, 5889, 1103}}, +{8884, 17, 26949, {1, 1, 5, 15, 27, 53, 43, 173, 377, 665, 581, 1061, 1363, 15015, 26709, 29507, 28075}}, +{8885, 17, 26954, {1, 1, 7, 3, 9, 11, 45, 71, 23, 995, 1277, 855, 1001, 12927, 19753, 46639, 16949}}, +{8886, 17, 26967, {1, 1, 7, 5, 15, 33, 27, 27, 437, 415, 1785, 2091, 279, 8041, 2209, 15821, 122363}}, +{8887, 17, 26977, {1, 1, 7, 1, 21, 1, 47, 215, 463, 959, 849, 1703, 5175, 10043, 16991, 11023, 52201}}, +{8888, 17, 27011, {1, 1, 1, 11, 21, 7, 121, 31, 95, 631, 1717, 3017, 2083, 2047, 12051, 63117, 25949}}, +{8889, 17, 27018, {1, 1, 5, 5, 9, 5, 105, 121, 205, 643, 1721, 2601, 2991, 2381, 4873, 12049, 20043}}, +{8890, 17, 27026, {1, 3, 5, 11, 7, 11, 97, 187, 253, 571, 101, 3077, 1479, 9513, 15451, 37105, 34445}}, +{8891, 17, 27028, {1, 1, 7, 11, 19, 19, 39, 115, 221, 13, 217, 369, 6855, 14529, 143, 13461, 62927}}, +{8892, 17, 27032, {1, 3, 3, 7, 29, 27, 9, 171, 419, 571, 837, 3829, 1871, 12691, 30693, 4195, 38905}}, +{8893, 17, 27044, {1, 1, 1, 11, 5, 55, 17, 41, 241, 419, 337, 897, 4663, 14469, 18701, 18009, 44605}}, +{8894, 17, 27053, {1, 1, 7, 7, 1, 33, 63, 197, 257, 655, 1287, 2571, 57, 13275, 29669, 8501, 61389}}, +{8895, 17, 27062, {1, 3, 5, 3, 29, 39, 101, 215, 101, 271, 1373, 2171, 841, 9865, 28951, 20369, 42413}}, +{8896, 17, 27065, {1, 3, 5, 1, 31, 23, 119, 137, 263, 633, 1239, 281, 4965, 14913, 30229, 14147, 37183}}, +{8897, 17, 27068, {1, 3, 1, 3, 11, 55, 33, 45, 69, 913, 269, 1021, 4005, 15191, 11187, 45917, 76905}}, +{8898, 17, 27080, {1, 1, 1, 13, 27, 11, 75, 139, 243, 221, 1289, 2195, 7041, 10053, 5731, 35245, 41317}}, +{8899, 17, 27083, {1, 1, 7, 9, 25, 11, 81, 243, 233, 137, 831, 2825, 6007, 7305, 31733, 64343, 7047}}, +{8900, 17, 27093, {1, 3, 5, 9, 17, 61, 25, 245, 285, 969, 1397, 1331, 5393, 3653, 15533, 9121, 111115}}, +{8901, 17, 27098, {1, 1, 5, 9, 1, 9, 61, 205, 285, 849, 1071, 1013, 2655, 10121, 15165, 25189, 56207}}, +{8902, 17, 27107, {1, 3, 5, 7, 19, 45, 121, 19, 237, 711, 1523, 3251, 693, 13567, 31993, 11239, 64127}}, +{8903, 17, 27110, {1, 1, 1, 11, 23, 25, 33, 211, 321, 1021, 1855, 291, 2911, 11841, 21929, 64147, 63201}}, +{8904, 17, 27114, {1, 1, 7, 3, 27, 21, 119, 219, 431, 819, 83, 2487, 7533, 10697, 3129, 53301, 104999}}, +{8905, 17, 27121, {1, 3, 5, 15, 9, 25, 89, 65, 293, 411, 989, 3103, 5563, 15703, 8757, 32595, 43409}}, +{8906, 17, 27127, {1, 3, 3, 1, 31, 31, 45, 173, 231, 171, 1185, 1499, 1713, 9945, 11575, 37113, 103989}}, +{8907, 17, 27137, {1, 1, 5, 13, 27, 3, 93, 253, 23, 71, 1963, 2571, 6259, 15757, 9709, 42835, 42047}}, +{8908, 17, 27144, {1, 1, 7, 11, 5, 11, 123, 117, 39, 559, 111, 527, 6253, 781, 9177, 47189, 94031}}, +{8909, 17, 27155, {1, 1, 5, 15, 5, 49, 93, 185, 167, 787, 1553, 3291, 3723, 1651, 23225, 5643, 42967}}, +{8910, 17, 27171, {1, 3, 1, 13, 15, 35, 19, 193, 505, 127, 661, 1943, 1249, 5103, 8233, 64319, 76955}}, +{8911, 17, 27178, {1, 3, 7, 7, 17, 13, 97, 185, 415, 331, 283, 3341, 2903, 2927, 7729, 4095, 103083}}, +{8912, 17, 27180, {1, 1, 3, 15, 15, 25, 65, 45, 413, 521, 747, 2605, 5845, 12909, 7651, 45937, 99043}}, +{8913, 17, 27185, {1, 1, 5, 9, 9, 21, 3, 75, 335, 745, 1493, 1721, 1977, 11105, 22621, 49281, 107113}}, +{8914, 17, 27191, {1, 3, 1, 11, 25, 11, 99, 53, 239, 831, 655, 615, 7565, 14039, 29115, 26165, 127159}}, +{8915, 17, 27192, {1, 1, 7, 5, 31, 35, 75, 157, 441, 815, 119, 565, 2703, 14059, 7867, 42487, 93647}}, +{8916, 17, 27195, {1, 3, 7, 3, 3, 59, 101, 223, 257, 989, 363, 1059, 5157, 11129, 1481, 19287, 117623}}, +{8917, 17, 27212, {1, 1, 1, 1, 29, 27, 1, 129, 253, 673, 103, 1881, 7053, 1261, 32003, 23345, 102503}}, +{8918, 17, 27215, {1, 3, 1, 9, 11, 37, 3, 99, 303, 519, 1175, 3021, 2275, 9919, 25011, 45865, 71351}}, +{8919, 17, 27218, {1, 1, 7, 15, 27, 9, 107, 61, 385, 21, 861, 2119, 4643, 8379, 25455, 22425, 113387}}, +{8920, 17, 27230, {1, 1, 1, 7, 27, 15, 73, 211, 497, 527, 873, 329, 2213, 415, 13987, 56581, 27829}}, +{8921, 17, 27234, {1, 3, 5, 1, 31, 43, 107, 149, 209, 211, 2029, 2793, 2213, 12389, 27177, 51375, 51983}}, +{8922, 17, 27245, {1, 3, 3, 7, 25, 57, 67, 101, 127, 43, 1775, 801, 3343, 12203, 8667, 58387, 10735}}, +{8923, 17, 27248, {1, 1, 7, 5, 13, 47, 101, 123, 133, 593, 1409, 3525, 2545, 13009, 11873, 38463, 1075}}, +{8924, 17, 27263, {1, 3, 3, 1, 3, 19, 75, 221, 157, 67, 397, 1141, 5073, 10795, 9857, 35459, 62701}}, +{8925, 17, 27279, {1, 1, 7, 7, 23, 17, 41, 179, 83, 543, 1839, 3709, 131, 15681, 9147, 18685, 90389}}, +{8926, 17, 27288, {1, 1, 5, 7, 17, 15, 31, 217, 79, 687, 1927, 2889, 6127, 15095, 28437, 16403, 123275}}, +{8927, 17, 27294, {1, 3, 7, 15, 13, 17, 123, 75, 45, 635, 525, 3897, 6769, 13855, 16695, 18039, 37479}}, +{8928, 17, 27303, {1, 1, 5, 1, 23, 15, 69, 161, 503, 339, 1061, 839, 9, 10013, 24493, 32711, 50147}}, +{8929, 17, 27304, {1, 3, 3, 11, 5, 45, 9, 233, 131, 629, 1111, 3311, 2211, 9079, 19763, 23793, 85389}}, +{8930, 17, 27312, {1, 1, 7, 7, 7, 27, 15, 85, 291, 925, 1545, 3061, 4867, 1613, 13467, 53731, 92811}}, +{8931, 17, 27330, {1, 3, 5, 1, 21, 21, 71, 33, 141, 675, 1519, 3275, 1491, 10717, 28199, 14983, 18961}}, +{8932, 17, 27341, {1, 3, 5, 5, 31, 13, 109, 239, 369, 373, 257, 3765, 2531, 13281, 11877, 29439, 106939}}, +{8933, 17, 27342, {1, 3, 7, 15, 13, 39, 111, 203, 109, 179, 789, 3849, 433, 5745, 2343, 15795, 92603}}, +{8934, 17, 27344, {1, 3, 5, 5, 11, 57, 3, 245, 289, 249, 713, 315, 2261, 1249, 6963, 44507, 100829}}, +{8935, 17, 27353, {1, 3, 5, 11, 5, 49, 97, 245, 363, 315, 509, 17, 4485, 15393, 28491, 17945, 65663}}, +{8936, 17, 27356, {1, 3, 5, 1, 5, 13, 15, 17, 141, 119, 1393, 581, 2439, 2015, 11527, 8537, 103005}}, +{8937, 17, 27366, {1, 3, 5, 1, 25, 9, 117, 25, 99, 777, 985, 1159, 99, 3013, 21429, 19027, 61833}}, +{8938, 17, 27369, {1, 1, 1, 5, 1, 47, 37, 83, 159, 29, 281, 3789, 2525, 15999, 8965, 11145, 14453}}, +{8939, 17, 27377, {1, 1, 3, 1, 11, 63, 77, 207, 267, 473, 241, 629, 6969, 9093, 839, 3875, 18873}}, +{8940, 17, 27387, {1, 3, 5, 7, 31, 57, 103, 65, 349, 321, 717, 2403, 105, 643, 27999, 2509, 123061}}, +{8941, 17, 27409, {1, 1, 5, 7, 3, 31, 7, 113, 17, 995, 1211, 1749, 6757, 3391, 8011, 47715, 24301}}, +{8942, 17, 27437, {1, 3, 7, 11, 7, 55, 29, 155, 373, 81, 1255, 2205, 3233, 9537, 22129, 24505, 79021}}, +{8943, 17, 27443, {1, 1, 7, 5, 3, 49, 5, 51, 89, 107, 585, 3933, 745, 11685, 20663, 12521, 24357}}, +{8944, 17, 27446, {1, 1, 7, 1, 17, 17, 83, 215, 357, 581, 2025, 3411, 7287, 11925, 2253, 43513, 98655}}, +{8945, 17, 27450, {1, 3, 5, 3, 27, 27, 51, 147, 471, 509, 423, 3807, 677, 8429, 581, 47999, 35913}}, +{8946, 17, 27452, {1, 3, 3, 9, 15, 31, 1, 93, 207, 759, 1991, 473, 2273, 43, 12547, 58085, 20953}}, +{8947, 17, 27457, {1, 1, 3, 3, 1, 27, 39, 219, 381, 187, 159, 2333, 6141, 3775, 5693, 14853, 38765}}, +{8948, 17, 27472, {1, 3, 1, 5, 19, 1, 19, 237, 231, 975, 1609, 723, 241, 10105, 18817, 58373, 118889}}, +{8949, 17, 27475, {1, 1, 5, 7, 7, 43, 99, 181, 109, 529, 421, 1493, 1075, 12219, 24287, 33479, 29987}}, +{8950, 17, 27487, {1, 1, 7, 1, 17, 11, 79, 85, 157, 851, 1429, 3355, 139, 14327, 30025, 60303, 109015}}, +{8951, 17, 27488, {1, 3, 5, 9, 11, 15, 37, 79, 5, 169, 999, 815, 6255, 11763, 16299, 49891, 101917}}, +{8952, 17, 27493, {1, 3, 5, 9, 29, 45, 51, 211, 159, 771, 1631, 2871, 4877, 4941, 18127, 15669, 57515}}, +{8953, 17, 27506, {1, 1, 3, 3, 19, 29, 9, 205, 253, 399, 303, 2441, 3187, 641, 23341, 52951, 57559}}, +{8954, 17, 27508, {1, 3, 3, 15, 11, 29, 121, 227, 69, 935, 365, 217, 4617, 13193, 27663, 46903, 107843}}, +{8955, 17, 27521, {1, 1, 5, 11, 13, 31, 13, 243, 275, 685, 1613, 1915, 2775, 11225, 4729, 45549, 103875}}, +{8956, 17, 27522, {1, 1, 5, 1, 9, 61, 35, 143, 165, 441, 517, 1735, 5281, 10139, 21107, 11713, 130483}}, +{8957, 17, 27527, {1, 3, 5, 5, 13, 21, 7, 219, 97, 887, 1845, 469, 2523, 1569, 9959, 4397, 15823}}, +{8958, 17, 27536, {1, 3, 7, 11, 15, 27, 73, 223, 365, 939, 331, 145, 683, 6441, 23421, 59177, 31763}}, +{8959, 17, 27539, {1, 3, 1, 5, 9, 59, 85, 113, 343, 831, 121, 3157, 6059, 14923, 27401, 19759, 14223}}, +{8960, 17, 27541, {1, 3, 1, 7, 17, 25, 3, 39, 471, 759, 2041, 609, 4293, 7491, 8041, 50857, 25601}}, +{8961, 17, 27546, {1, 1, 5, 15, 19, 45, 21, 5, 269, 197, 527, 1839, 1719, 15105, 18671, 42167, 9617}}, +{8962, 17, 27557, {1, 3, 1, 3, 5, 35, 3, 105, 395, 113, 1945, 3945, 3951, 12207, 32135, 34121, 10237}}, +{8963, 17, 27564, {1, 1, 5, 13, 21, 43, 51, 255, 57, 399, 1937, 1573, 363, 11589, 26989, 54345, 94341}}, +{8964, 17, 27572, {1, 3, 3, 3, 5, 45, 83, 125, 179, 923, 39, 3617, 7683, 8191, 31469, 23633, 79179}}, +{8965, 17, 27576, {1, 3, 7, 9, 9, 37, 107, 65, 423, 77, 1779, 1375, 2085, 11779, 6535, 2973, 29425}}, +{8966, 17, 27584, {1, 1, 7, 3, 11, 39, 101, 137, 407, 855, 1767, 1717, 2821, 10447, 31187, 6329, 124111}}, +{8967, 17, 27608, {1, 1, 5, 11, 27, 27, 45, 103, 225, 681, 725, 1791, 2881, 2923, 14473, 12269, 58743}}, +{8968, 17, 27611, {1, 1, 3, 11, 15, 39, 113, 167, 143, 677, 1189, 1571, 5339, 6065, 30187, 19639, 42227}}, +{8969, 17, 27618, {1, 1, 1, 3, 13, 7, 113, 75, 129, 619, 1741, 1495, 4751, 11085, 22391, 199, 105463}}, +{8970, 17, 27620, {1, 1, 3, 3, 19, 47, 77, 195, 209, 453, 495, 1605, 5255, 15327, 8941, 18239, 54511}}, +{8971, 17, 27627, {1, 1, 7, 7, 21, 29, 95, 175, 3, 689, 611, 2467, 6919, 12399, 18869, 16171, 102753}}, +{8972, 17, 27630, {1, 1, 5, 1, 27, 43, 61, 133, 37, 603, 315, 1915, 813, 15769, 27447, 29589, 122281}}, +{8973, 17, 27637, {1, 1, 7, 3, 11, 1, 119, 235, 93, 481, 1811, 1643, 4853, 11313, 8991, 6153, 68985}}, +{8974, 17, 27638, {1, 1, 1, 7, 1, 13, 99, 83, 221, 775, 1345, 219, 4445, 11837, 10405, 43563, 122111}}, +{8975, 17, 27641, {1, 1, 5, 13, 21, 33, 105, 19, 343, 571, 703, 429, 2485, 15531, 9801, 24101, 88275}}, +{8976, 17, 27647, {1, 3, 5, 1, 27, 55, 73, 49, 33, 773, 1411, 1227, 6827, 1271, 28897, 24265, 32383}}, +{8977, 17, 27650, {1, 3, 7, 3, 9, 45, 59, 5, 157, 669, 261, 2077, 1425, 8221, 5849, 40857, 121029}}, +{8978, 17, 27676, {1, 3, 7, 11, 23, 5, 87, 113, 279, 611, 1195, 1775, 5813, 6737, 18051, 41341, 93331}}, +{8979, 17, 27683, {1, 1, 7, 7, 9, 55, 113, 3, 167, 295, 1579, 2833, 4003, 7583, 22833, 44427, 34781}}, +{8980, 17, 27690, {1, 1, 5, 13, 21, 33, 127, 175, 153, 961, 819, 143, 3969, 6159, 29437, 14123, 65317}}, +{8981, 17, 27695, {1, 1, 1, 15, 31, 27, 1, 17, 329, 963, 1907, 421, 535, 2323, 22749, 44375, 115531}}, +{8982, 17, 27700, {1, 1, 5, 15, 15, 23, 57, 171, 253, 401, 1577, 3855, 197, 7979, 17577, 25275, 88831}}, +{8983, 17, 27704, {1, 1, 7, 9, 27, 9, 7, 13, 381, 847, 533, 357, 6551, 13441, 5717, 20209, 64347}}, +{8984, 17, 27709, {1, 1, 7, 9, 1, 1, 31, 245, 315, 901, 1857, 497, 4285, 13227, 3937, 45025, 59627}}, +{8985, 17, 27715, {1, 1, 7, 3, 5, 23, 119, 147, 479, 71, 113, 3379, 863, 8285, 31259, 15863, 47267}}, +{8986, 17, 27727, {1, 3, 5, 1, 5, 7, 77, 163, 421, 353, 1757, 1335, 4975, 3011, 11703, 56075, 12045}}, +{8987, 17, 27745, {1, 1, 5, 3, 31, 25, 81, 59, 211, 463, 1693, 609, 3307, 3641, 19643, 29361, 8399}}, +{8988, 17, 27763, {1, 1, 7, 13, 19, 47, 43, 43, 275, 735, 535, 3689, 3987, 10695, 17243, 60565, 72299}}, +{8989, 17, 27769, {1, 3, 3, 5, 25, 35, 75, 63, 305, 127, 189, 1785, 731, 12089, 27811, 43259, 28191}}, +{8990, 17, 27770, {1, 3, 7, 11, 17, 17, 59, 107, 139, 355, 1055, 3181, 4743, 14785, 26323, 441, 35613}}, +{8991, 17, 27796, {1, 3, 1, 1, 17, 17, 39, 203, 373, 601, 449, 1837, 835, 7061, 14655, 61765, 80735}}, +{8992, 17, 27810, {1, 3, 5, 7, 27, 17, 25, 41, 125, 895, 1843, 3167, 1527, 4707, 6477, 33575, 97247}}, +{8993, 17, 27812, {1, 3, 3, 3, 13, 39, 25, 15, 279, 347, 1121, 3603, 3019, 9577, 16863, 61483, 15995}}, +{8994, 17, 27834, {1, 3, 5, 11, 15, 33, 15, 81, 185, 289, 909, 1237, 3623, 3983, 24211, 62719, 79685}}, +{8995, 17, 27847, {1, 1, 1, 7, 29, 1, 53, 17, 137, 269, 1209, 3937, 4167, 14057, 8061, 38863, 101477}}, +{8996, 17, 27848, {1, 1, 1, 9, 5, 45, 95, 127, 507, 159, 1763, 1527, 5689, 11007, 549, 22837, 99207}}, +{8997, 17, 27862, {1, 3, 3, 1, 15, 57, 127, 39, 73, 397, 67, 3159, 119, 8929, 29425, 57687, 68063}}, +{8998, 17, 27868, {1, 3, 1, 3, 27, 7, 111, 209, 291, 17, 1381, 1597, 5389, 4577, 20463, 28325, 23743}}, +{8999, 17, 27881, {1, 3, 3, 7, 23, 41, 83, 81, 213, 537, 1037, 2371, 1485, 8391, 12471, 58541, 27559}}, +{9000, 17, 27884, {1, 3, 1, 15, 21, 43, 87, 75, 451, 851, 1917, 2739, 2167, 12531, 29931, 8017, 15163}}, +{9001, 17, 27890, {1, 1, 3, 9, 27, 19, 41, 145, 401, 759, 527, 3085, 187, 10615, 4995, 22421, 69867}}, +{9002, 17, 27895, {1, 3, 3, 13, 29, 51, 65, 47, 157, 609, 1061, 1913, 6195, 12503, 10375, 55819, 122091}}, +{9003, 17, 27904, {1, 1, 3, 7, 1, 19, 3, 149, 453, 279, 569, 3429, 331, 711, 26773, 21163, 129339}}, +{9004, 17, 27914, {1, 1, 5, 3, 7, 47, 39, 181, 115, 771, 2037, 411, 2697, 7501, 6393, 19461, 74967}}, +{9005, 17, 27919, {1, 3, 3, 5, 5, 17, 89, 161, 409, 49, 1447, 3977, 4777, 15553, 3521, 32553, 126385}}, +{9006, 17, 27921, {1, 3, 1, 3, 25, 59, 73, 105, 505, 1009, 1147, 317, 3457, 13743, 8337, 38077, 7709}}, +{9007, 17, 27931, {1, 3, 3, 15, 23, 37, 25, 123, 413, 911, 637, 2345, 691, 15199, 22927, 52467, 126715}}, +{9008, 17, 27933, {1, 1, 5, 1, 9, 51, 93, 123, 269, 45, 1947, 179, 5091, 3743, 31491, 39771, 119175}}, +{9009, 17, 27938, {1, 3, 1, 5, 29, 23, 107, 183, 25, 115, 187, 857, 7337, 469, 8755, 17281, 45941}}, +{9010, 17, 27943, {1, 3, 1, 13, 25, 61, 85, 115, 181, 955, 1365, 837, 5941, 13209, 27009, 58865, 115149}}, +{9011, 17, 27949, {1, 1, 1, 11, 31, 63, 101, 29, 37, 185, 465, 2651, 6249, 6887, 25021, 60539, 50037}}, +{9012, 17, 28005, {1, 3, 1, 7, 7, 61, 57, 243, 143, 223, 1759, 4085, 6765, 13293, 31929, 29579, 35053}}, +{9013, 17, 28012, {1, 3, 1, 3, 29, 9, 121, 3, 285, 199, 1439, 3151, 5059, 8535, 17049, 38917, 46347}}, +{9014, 17, 28017, {1, 3, 1, 3, 17, 43, 63, 87, 427, 341, 1251, 3775, 7729, 3183, 10579, 917, 49035}}, +{9015, 17, 28024, {1, 1, 7, 3, 5, 59, 119, 227, 495, 345, 841, 2021, 2483, 15987, 24663, 9819, 33009}}, +{9016, 17, 28030, {1, 1, 5, 11, 19, 57, 23, 181, 63, 991, 1, 2927, 4785, 9645, 17435, 55627, 1069}}, +{9017, 17, 28034, {1, 1, 7, 1, 31, 11, 57, 123, 279, 815, 1407, 3509, 3963, 8503, 20345, 7777, 103701}}, +{9018, 17, 28045, {1, 1, 5, 5, 19, 51, 37, 15, 363, 939, 1863, 3485, 7073, 3035, 31279, 7289, 39811}}, +{9019, 17, 28048, {1, 1, 3, 3, 3, 41, 29, 37, 311, 535, 1993, 3937, 309, 13055, 22595, 59641, 95317}}, +{9020, 17, 28054, {1, 3, 7, 9, 19, 29, 23, 181, 503, 223, 1655, 997, 7861, 5867, 16979, 4559, 7447}}, +{9021, 17, 28063, {1, 3, 5, 3, 13, 13, 3, 137, 361, 101, 1005, 2339, 609, 11891, 15245, 9653, 63579}}, +{9022, 17, 28069, {1, 1, 1, 15, 31, 15, 117, 151, 51, 805, 1403, 3243, 4007, 11979, 3945, 61935, 43225}}, +{9023, 17, 28070, {1, 1, 7, 3, 1, 43, 93, 105, 9, 555, 731, 655, 2097, 8015, 27557, 27985, 11323}}, +{9024, 17, 28073, {1, 3, 3, 9, 23, 35, 59, 217, 437, 755, 685, 1431, 2965, 5269, 25621, 21735, 1397}}, +{9025, 17, 28084, {1, 1, 5, 1, 9, 61, 41, 53, 101, 111, 531, 3385, 4771, 9535, 15995, 29687, 99035}}, +{9026, 17, 28096, {1, 1, 7, 7, 1, 3, 25, 251, 463, 99, 677, 1889, 3697, 5579, 11429, 38301, 57917}}, +{9027, 17, 28114, {1, 1, 5, 9, 11, 15, 65, 31, 369, 825, 1229, 1595, 3891, 5235, 16973, 25307, 7805}}, +{9028, 17, 28126, {1, 3, 7, 15, 27, 37, 35, 103, 393, 781, 1713, 2009, 1973, 15461, 6801, 17557, 105139}}, +{9029, 17, 28141, {1, 3, 7, 7, 17, 51, 83, 29, 113, 173, 1733, 2137, 3041, 11361, 15999, 25779, 112493}}, +{9030, 17, 28149, {1, 3, 5, 11, 19, 3, 89, 103, 449, 375, 437, 4077, 889, 12163, 29323, 48845, 7783}}, +{9031, 17, 28165, {1, 3, 7, 1, 19, 25, 83, 35, 203, 27, 507, 25, 6629, 13941, 6187, 17533, 83349}}, +{9032, 17, 28177, {1, 3, 5, 9, 15, 59, 3, 87, 473, 733, 1263, 1733, 4275, 9283, 32535, 20807, 59487}}, +{9033, 17, 28189, {1, 3, 3, 9, 19, 11, 27, 83, 355, 949, 1339, 171, 921, 14171, 16271, 41485, 20405}}, +{9034, 17, 28190, {1, 1, 3, 11, 25, 51, 9, 241, 367, 519, 1895, 429, 7689, 9469, 32709, 46363, 75767}}, +{9035, 17, 28203, {1, 1, 7, 7, 27, 59, 85, 87, 467, 273, 1763, 391, 451, 16165, 7501, 44779, 68281}}, +{9036, 17, 28206, {1, 1, 7, 5, 1, 35, 5, 217, 31, 145, 1151, 2255, 3543, 401, 17141, 5981, 25183}}, +{9037, 17, 28208, {1, 1, 1, 13, 11, 11, 19, 93, 95, 751, 31, 1091, 2733, 10517, 2553, 5247, 42651}}, +{9038, 17, 28220, {1, 3, 7, 5, 15, 1, 67, 21, 303, 137, 355, 1989, 5211, 4985, 645, 6867, 126931}}, +{9039, 17, 28226, {1, 1, 3, 15, 21, 23, 59, 209, 121, 623, 575, 2447, 6149, 10481, 4959, 22913, 64963}}, +{9040, 17, 28231, {1, 3, 1, 1, 25, 55, 47, 95, 215, 609, 639, 1023, 1579, 5953, 3063, 13721, 17607}}, +{9041, 17, 28249, {1, 1, 1, 11, 7, 61, 127, 173, 307, 623, 453, 3827, 4847, 16085, 4407, 4043, 14881}}, +{9042, 17, 28256, {1, 1, 7, 11, 5, 15, 51, 125, 439, 795, 203, 91, 3543, 6925, 32055, 52277, 26841}}, +{9043, 17, 28259, {1, 1, 1, 13, 15, 9, 107, 183, 391, 751, 243, 1105, 8031, 7443, 137, 45695, 80163}}, +{9044, 17, 28265, {1, 3, 5, 9, 5, 61, 117, 113, 121, 291, 225, 1705, 4017, 13113, 11035, 28613, 25927}}, +{9045, 17, 28266, {1, 1, 3, 11, 27, 9, 45, 85, 309, 991, 1639, 1183, 8013, 14587, 7563, 21111, 48497}}, +{9046, 17, 28271, {1, 3, 1, 9, 21, 61, 123, 189, 265, 593, 163, 3681, 2271, 2795, 753, 48019, 129507}}, +{9047, 17, 28274, {1, 1, 1, 5, 31, 51, 127, 79, 333, 177, 1723, 1365, 2055, 3063, 10693, 61223, 60659}}, +{9048, 17, 28280, {1, 3, 7, 15, 9, 11, 11, 223, 31, 397, 319, 3283, 3765, 4729, 4711, 58323, 114063}}, +{9049, 17, 28296, {1, 1, 7, 11, 7, 63, 107, 215, 19, 491, 131, 2491, 6373, 11081, 2159, 1311, 109547}}, +{9050, 17, 28316, {1, 3, 5, 5, 21, 13, 105, 21, 193, 447, 1331, 2439, 4165, 15689, 21273, 4007, 55161}}, +{9051, 17, 28319, {1, 3, 5, 11, 19, 47, 25, 211, 335, 437, 1041, 2093, 7239, 2869, 18273, 40505, 13681}}, +{9052, 17, 28343, {1, 3, 3, 15, 7, 13, 127, 59, 439, 163, 1841, 1945, 4915, 16269, 18315, 15057, 43197}}, +{9053, 17, 28344, {1, 1, 3, 3, 15, 33, 101, 241, 131, 353, 1749, 3965, 1231, 8167, 9309, 40337, 4419}}, +{9054, 17, 28357, {1, 3, 1, 1, 1, 43, 33, 129, 137, 889, 799, 2937, 3633, 4769, 2411, 56059, 585}}, +{9055, 17, 28358, {1, 1, 3, 9, 25, 31, 45, 199, 229, 175, 1099, 1143, 1721, 11811, 22757, 59843, 117813}}, +{9056, 17, 28364, {1, 1, 7, 7, 19, 45, 43, 101, 219, 209, 1169, 599, 5523, 2463, 15161, 16675, 85111}}, +{9057, 17, 28370, {1, 1, 3, 15, 23, 27, 91, 51, 397, 705, 651, 2345, 3875, 10005, 29523, 42805, 76891}}, +{9058, 17, 28372, {1, 3, 3, 5, 29, 49, 17, 233, 149, 821, 1953, 1931, 7127, 957, 6477, 21259, 126657}}, +{9059, 17, 28379, {1, 3, 3, 3, 27, 49, 57, 145, 143, 1, 583, 3987, 651, 12285, 20139, 51063, 21449}}, +{9060, 17, 28388, {1, 1, 3, 5, 29, 61, 41, 93, 277, 111, 395, 2929, 5325, 15183, 3981, 23799, 72781}}, +{9061, 17, 28392, {1, 1, 7, 5, 25, 43, 85, 137, 401, 261, 1183, 3959, 1983, 16209, 30523, 429, 109181}}, +{9062, 17, 28395, {1, 1, 1, 5, 7, 19, 79, 237, 373, 929, 907, 1771, 6991, 211, 5269, 2135, 32051}}, +{9063, 17, 28406, {1, 1, 7, 5, 17, 15, 41, 49, 363, 15, 1483, 1017, 2439, 11713, 19983, 26275, 11945}}, +{9064, 17, 28418, {1, 1, 7, 7, 19, 5, 55, 15, 15, 573, 1075, 3225, 6815, 11893, 18417, 50833, 71903}}, +{9065, 17, 28423, {1, 1, 7, 9, 23, 37, 75, 3, 477, 291, 37, 1861, 2697, 13369, 24573, 27285, 96757}}, +{9066, 17, 28435, {1, 1, 1, 13, 5, 29, 65, 195, 365, 465, 865, 2705, 5249, 7051, 3795, 56611, 72317}}, +{9067, 17, 28444, {1, 1, 3, 9, 19, 9, 85, 239, 509, 313, 1137, 2221, 5475, 71, 11901, 1877, 68701}}, +{9068, 17, 28454, {1, 3, 3, 7, 3, 53, 55, 223, 441, 159, 933, 2573, 3441, 3295, 25005, 29021, 97145}}, +{9069, 17, 28468, {1, 3, 5, 5, 3, 11, 101, 181, 293, 319, 47, 2971, 387, 4697, 26613, 8531, 20461}}, +{9070, 17, 28477, {1, 3, 3, 13, 17, 11, 41, 233, 455, 353, 1817, 3065, 4657, 1717, 3039, 10937, 107085}}, +{9071, 17, 28478, {1, 1, 7, 1, 17, 23, 85, 5, 291, 725, 1791, 3525, 7705, 6561, 25311, 44679, 21419}}, +{9072, 17, 28480, {1, 1, 7, 1, 23, 41, 97, 117, 435, 261, 2007, 965, 6913, 12245, 25723, 8445, 30871}}, +{9073, 17, 28486, {1, 1, 1, 15, 29, 39, 101, 33, 55, 1019, 1431, 2601, 3837, 14873, 11785, 12449, 30815}}, +{9074, 17, 28489, {1, 1, 5, 3, 15, 35, 101, 7, 479, 535, 1875, 2435, 1461, 13967, 2755, 45879, 93561}}, +{9075, 17, 28500, {1, 3, 1, 5, 29, 57, 89, 209, 473, 289, 1843, 2051, 3997, 1753, 18179, 41355, 89301}}, +{9076, 17, 28507, {1, 3, 1, 11, 17, 45, 47, 57, 109, 309, 1009, 653, 5175, 15599, 21617, 35353, 55253}}, +{9077, 17, 28519, {1, 3, 5, 3, 1, 11, 57, 83, 385, 765, 1887, 785, 2115, 8689, 14783, 14841, 122221}}, +{9078, 17, 28523, {1, 3, 5, 11, 11, 5, 77, 115, 189, 371, 887, 3653, 8159, 15737, 6763, 52807, 128841}}, +{9079, 17, 28534, {1, 1, 1, 11, 11, 33, 9, 145, 439, 565, 171, 3867, 7149, 4369, 15073, 3277, 25873}}, +{9080, 17, 28547, {1, 1, 3, 1, 11, 9, 17, 255, 129, 835, 1705, 1551, 877, 4831, 12717, 2549, 62723}}, +{9081, 17, 28549, {1, 1, 7, 11, 17, 33, 21, 195, 143, 153, 1855, 1323, 1225, 16359, 16479, 8883, 76449}}, +{9082, 17, 28562, {1, 1, 1, 5, 31, 23, 61, 53, 77, 465, 1983, 4019, 4865, 14721, 18601, 48179, 100453}}, +{9083, 17, 28571, {1, 3, 1, 13, 19, 53, 83, 63, 165, 393, 469, 1465, 2669, 10155, 7029, 26185, 121223}}, +{9084, 17, 28583, {1, 1, 1, 3, 3, 3, 123, 23, 45, 359, 1063, 847, 3943, 6113, 23749, 30323, 10583}}, +{9085, 17, 28584, {1, 3, 5, 15, 1, 55, 65, 149, 139, 217, 141, 2425, 7019, 14127, 11725, 50821, 52643}}, +{9086, 17, 28595, {1, 3, 5, 15, 13, 13, 15, 93, 457, 869, 117, 585, 7159, 5957, 15073, 21861, 118119}}, +{9087, 17, 28597, {1, 3, 1, 15, 3, 31, 29, 245, 47, 895, 197, 1169, 945, 11503, 26615, 14079, 27175}}, +{9088, 17, 28604, {1, 3, 5, 5, 31, 1, 107, 109, 253, 999, 1451, 2243, 6675, 10779, 26181, 64597, 16443}}, +{9089, 17, 28607, {1, 3, 7, 15, 9, 53, 25, 41, 151, 197, 1955, 2365, 5305, 2901, 24825, 9595, 57377}}, +{9090, 17, 28609, {1, 3, 1, 3, 25, 37, 37, 193, 417, 373, 1127, 3239, 4583, 2861, 14501, 64163, 30055}}, +{9091, 17, 28612, {1, 3, 7, 9, 7, 21, 49, 231, 241, 95, 1757, 2281, 2679, 1611, 11115, 31743, 26851}}, +{9092, 17, 28630, {1, 3, 5, 5, 1, 1, 23, 173, 195, 593, 1639, 1449, 4733, 2451, 12677, 31959, 128217}}, +{9093, 17, 28640, {1, 1, 1, 7, 17, 49, 117, 253, 167, 721, 889, 3027, 7781, 13521, 15477, 17981, 95487}}, +{9094, 17, 28669, {1, 1, 1, 15, 13, 47, 125, 9, 33, 567, 1733, 1263, 307, 10285, 6325, 55827, 39823}}, +{9095, 17, 28677, {1, 1, 1, 15, 23, 3, 11, 169, 369, 667, 313, 2287, 6655, 16067, 5915, 8605, 92177}}, +{9096, 17, 28682, {1, 3, 3, 15, 13, 21, 125, 111, 171, 785, 79, 2281, 1247, 11321, 30397, 28555, 84863}}, +{9097, 17, 28690, {1, 1, 5, 13, 1, 31, 123, 97, 127, 245, 1213, 2381, 3545, 13545, 28657, 54087, 79039}}, +{9098, 17, 28695, {1, 1, 7, 9, 9, 21, 87, 111, 27, 33, 843, 199, 1465, 6555, 8019, 39521, 98883}}, +{9099, 17, 28696, {1, 3, 3, 5, 5, 55, 61, 219, 279, 207, 1811, 667, 2989, 3133, 25213, 51979, 87695}}, +{9100, 17, 28717, {1, 1, 7, 3, 17, 11, 31, 97, 277, 385, 229, 3045, 557, 13521, 32733, 36831, 43003}}, +{9101, 17, 28730, {1, 3, 5, 13, 27, 57, 31, 207, 147, 405, 1495, 2471, 4889, 14861, 4861, 28185, 62363}}, +{9102, 17, 28737, {1, 1, 5, 13, 23, 19, 5, 21, 509, 299, 1077, 1747, 6229, 2375, 17903, 58473, 72637}}, +{9103, 17, 28752, {1, 3, 7, 11, 15, 61, 63, 165, 27, 461, 1359, 3375, 3029, 9907, 17393, 11097, 43593}}, +{9104, 17, 28761, {1, 3, 5, 1, 17, 29, 15, 5, 419, 19, 1981, 3169, 2389, 9169, 31697, 26201, 6997}}, +{9105, 17, 28774, {1, 3, 3, 1, 29, 31, 89, 79, 347, 707, 505, 2087, 2163, 5465, 8677, 11421, 93217}}, +{9106, 17, 28783, {1, 3, 7, 9, 3, 23, 75, 215, 7, 971, 925, 3223, 7825, 12347, 19763, 10927, 41245}}, +{9107, 17, 28791, {1, 3, 5, 5, 3, 43, 119, 79, 373, 761, 709, 1897, 3953, 13895, 13421, 16939, 112449}}, +{9108, 17, 28801, {1, 1, 3, 15, 11, 25, 65, 101, 315, 1005, 1319, 1163, 161, 15331, 4845, 40375, 121361}}, +{9109, 17, 28802, {1, 1, 3, 7, 1, 57, 63, 131, 145, 1007, 549, 2327, 1513, 3591, 10839, 56297, 80613}}, +{9110, 17, 28814, {1, 1, 3, 5, 1, 19, 79, 81, 505, 945, 65, 319, 6105, 5491, 13257, 4651, 48247}}, +{9111, 17, 28837, {1, 3, 1, 9, 27, 41, 61, 41, 421, 707, 1279, 3699, 2403, 4075, 16947, 53435, 2917}}, +{9112, 17, 28838, {1, 1, 5, 13, 11, 29, 35, 141, 313, 769, 749, 4025, 2597, 12197, 32265, 32159, 37003}}, +{9113, 17, 28842, {1, 3, 7, 11, 25, 63, 121, 15, 273, 877, 637, 409, 5001, 4723, 27985, 55501, 43495}}, +{9114, 17, 28844, {1, 3, 1, 13, 27, 29, 127, 65, 275, 967, 1723, 4007, 6147, 13277, 8361, 12305, 95433}}, +{9115, 17, 28849, {1, 3, 3, 13, 11, 45, 7, 101, 169, 361, 517, 2897, 4283, 7587, 7495, 31549, 29113}}, +{9116, 17, 28864, {1, 3, 3, 1, 9, 27, 65, 15, 279, 127, 1039, 829, 5739, 1949, 24789, 30433, 54503}}, +{9117, 17, 28867, {1, 3, 7, 5, 13, 19, 95, 133, 25, 271, 1527, 3571, 101, 15987, 10985, 55761, 39833}}, +{9118, 17, 28881, {1, 3, 5, 9, 27, 5, 37, 219, 249, 947, 1063, 4081, 1763, 15003, 23753, 3975, 109803}}, +{9119, 17, 28882, {1, 3, 3, 5, 21, 37, 35, 145, 323, 573, 1939, 885, 4645, 4515, 16815, 28783, 76017}}, +{9120, 17, 28893, {1, 3, 7, 13, 27, 41, 39, 123, 423, 949, 1487, 2207, 8069, 15337, 20671, 20163, 70667}}, +{9121, 17, 28903, {1, 1, 3, 3, 15, 29, 69, 15, 151, 729, 35, 2067, 6715, 12759, 27611, 54133, 16561}}, +{9122, 17, 28907, {1, 3, 7, 13, 21, 13, 7, 161, 327, 339, 535, 2059, 413, 11161, 18415, 12415, 63713}}, +{9123, 17, 28909, {1, 3, 5, 5, 23, 49, 9, 181, 417, 339, 1013, 1707, 5097, 13319, 18951, 56415, 14397}}, +{9124, 17, 28921, {1, 1, 5, 7, 29, 23, 117, 159, 287, 695, 71, 2393, 2655, 6417, 24349, 20441, 77987}}, +{9125, 17, 28927, {1, 1, 5, 7, 31, 23, 81, 125, 145, 141, 1459, 4095, 713, 1817, 9263, 21025, 91983}}, +{9126, 17, 28929, {1, 1, 1, 9, 17, 23, 91, 39, 459, 299, 1951, 3229, 6229, 3267, 15883, 31719, 96573}}, +{9127, 17, 28935, {1, 1, 1, 15, 3, 51, 9, 7, 455, 653, 1447, 153, 8117, 723, 2177, 9107, 7757}}, +{9128, 17, 28941, {1, 3, 1, 15, 27, 47, 49, 245, 499, 807, 175, 1653, 1693, 3931, 27479, 30095, 62353}}, +{9129, 17, 28942, {1, 1, 5, 5, 23, 7, 15, 193, 499, 193, 201, 2771, 4153, 11533, 25883, 23337, 126685}}, +{9130, 17, 28954, {1, 1, 1, 7, 9, 43, 125, 181, 425, 557, 1401, 2593, 1933, 6803, 20021, 32687, 126465}}, +{9131, 17, 28959, {1, 3, 3, 13, 27, 19, 99, 29, 395, 765, 1137, 2963, 7397, 9695, 19259, 27965, 83157}}, +{9132, 17, 28960, {1, 3, 7, 7, 17, 29, 7, 241, 5, 281, 1489, 1599, 5567, 4579, 7739, 41413, 110571}}, +{9133, 17, 28990, {1, 3, 3, 9, 7, 5, 83, 1, 231, 1003, 631, 2557, 831, 6495, 30409, 53519, 79331}}, +{9134, 17, 28992, {1, 1, 5, 1, 7, 49, 45, 241, 201, 551, 1645, 2003, 1455, 3317, 23639, 7841, 100765}}, +{9135, 17, 29004, {1, 3, 5, 13, 25, 47, 103, 37, 81, 263, 1143, 801, 5863, 6871, 8615, 57363, 90161}}, +{9136, 17, 29010, {1, 3, 7, 11, 27, 23, 119, 211, 473, 207, 605, 637, 3369, 7287, 27827, 25003, 65925}}, +{9137, 17, 29012, {1, 3, 1, 15, 27, 31, 97, 247, 75, 893, 1099, 3609, 6807, 4393, 10253, 62759, 89971}}, +{9138, 17, 29021, {1, 1, 7, 15, 27, 19, 43, 59, 419, 263, 387, 3193, 5589, 4197, 19143, 64749, 103093}}, +{9139, 17, 29035, {1, 1, 7, 11, 21, 51, 97, 227, 251, 869, 1927, 2331, 7741, 8207, 12885, 13267, 17945}}, +{9140, 17, 29040, {1, 1, 7, 7, 5, 53, 41, 147, 75, 709, 607, 1073, 2853, 8081, 12797, 5279, 86083}}, +{9141, 17, 29059, {1, 1, 5, 5, 15, 21, 77, 189, 269, 595, 197, 3117, 5073, 14277, 26867, 49505, 75755}}, +{9142, 17, 29068, {1, 3, 5, 15, 13, 55, 1, 223, 135, 367, 735, 3139, 4851, 9773, 11699, 19081, 26011}}, +{9143, 17, 29080, {1, 3, 5, 7, 9, 3, 89, 103, 321, 727, 1809, 3527, 6881, 2399, 13593, 27867, 16219}}, +{9144, 17, 29086, {1, 3, 3, 1, 23, 5, 53, 51, 403, 753, 2037, 1261, 7575, 2725, 11341, 18533, 98767}}, +{9145, 17, 29089, {1, 1, 1, 11, 1, 13, 37, 141, 477, 689, 1789, 1913, 5753, 6069, 6965, 55209, 77329}}, +{9146, 17, 29090, {1, 3, 7, 3, 17, 59, 79, 249, 381, 163, 1773, 1645, 7295, 2359, 21889, 28429, 117073}}, +{9147, 17, 29095, {1, 3, 5, 15, 7, 45, 59, 3, 93, 259, 1257, 2967, 1175, 10171, 873, 51423, 67437}}, +{9148, 17, 29113, {1, 1, 7, 13, 17, 33, 53, 217, 159, 683, 1169, 3363, 4591, 3959, 10089, 35443, 99677}}, +{9149, 17, 29127, {1, 3, 7, 9, 3, 1, 5, 171, 17, 635, 369, 1529, 4861, 4977, 29303, 42357, 69309}}, +{9150, 17, 29131, {1, 3, 7, 9, 21, 17, 77, 127, 105, 427, 525, 1123, 2365, 7487, 6315, 64773, 122747}}, +{9151, 17, 29148, {1, 1, 1, 15, 19, 63, 65, 83, 219, 987, 169, 2589, 3809, 8807, 22473, 6479, 44617}}, +{9152, 17, 29161, {1, 3, 1, 7, 11, 51, 107, 19, 379, 191, 1013, 3145, 1501, 11871, 14111, 18269, 98247}}, +{9153, 17, 29172, {1, 1, 7, 5, 17, 63, 23, 231, 423, 855, 1955, 907, 4553, 16173, 7701, 40329, 42047}}, +{9154, 17, 29179, {1, 3, 7, 1, 7, 45, 103, 127, 185, 721, 1035, 839, 691, 6823, 23819, 50781, 92767}}, +{9155, 17, 29188, {1, 1, 1, 3, 9, 21, 57, 253, 285, 85, 1227, 365, 2347, 7491, 15183, 8619, 108819}}, +{9156, 17, 29192, {1, 1, 3, 15, 27, 13, 5, 85, 45, 1009, 1315, 1749, 2797, 3941, 19367, 50855, 60693}}, +{9157, 17, 29195, {1, 3, 5, 15, 29, 63, 115, 197, 317, 601, 711, 377, 7489, 4247, 4843, 56549, 108447}}, +{9158, 17, 29206, {1, 3, 7, 15, 11, 25, 7, 145, 371, 395, 1743, 267, 2609, 15707, 13909, 55031, 71115}}, +{9159, 17, 29210, {1, 3, 1, 1, 1, 53, 111, 245, 433, 309, 245, 15, 2091, 9051, 11095, 31821, 104535}}, +{9160, 17, 29215, {1, 3, 1, 15, 25, 31, 99, 89, 259, 595, 1095, 3681, 5105, 8671, 23663, 29717, 126429}}, +{9161, 17, 29221, {1, 3, 7, 7, 5, 31, 15, 59, 109, 527, 257, 1785, 6799, 1283, 11741, 34589, 102397}}, +{9162, 17, 29222, {1, 3, 3, 15, 9, 27, 55, 35, 291, 587, 1281, 779, 4615, 373, 24037, 64671, 124019}}, +{9163, 17, 29236, {1, 1, 5, 5, 13, 51, 49, 19, 37, 857, 539, 1291, 6021, 8645, 30351, 33839, 111515}}, +{9164, 17, 29246, {1, 1, 5, 13, 3, 47, 9, 197, 19, 337, 2025, 3003, 7179, 5755, 31187, 59317, 69753}}, +{9165, 17, 29248, {1, 1, 7, 3, 3, 43, 11, 3, 123, 29, 857, 3349, 791, 11157, 23967, 33729, 28445}}, +{9166, 17, 29253, {1, 1, 5, 1, 1, 11, 73, 231, 173, 925, 331, 161, 3303, 11015, 17507, 21271, 56865}}, +{9167, 17, 29272, {1, 1, 3, 9, 21, 21, 115, 145, 421, 981, 1789, 3343, 7591, 12043, 5795, 17737, 106501}}, +{9168, 17, 29288, {1, 1, 7, 13, 7, 15, 51, 75, 497, 637, 1073, 1505, 5613, 1415, 30861, 26159, 79573}}, +{9169, 17, 29293, {1, 1, 3, 15, 17, 35, 17, 129, 169, 283, 1383, 149, 211, 1381, 22205, 28367, 831}}, +{9170, 17, 29294, {1, 3, 5, 5, 17, 11, 127, 183, 503, 499, 2011, 2721, 2717, 3105, 4731, 60319, 9361}}, +{9171, 17, 29308, {1, 1, 1, 7, 27, 55, 77, 203, 255, 761, 1159, 2915, 4479, 13671, 19757, 65497, 4461}}, +{9172, 17, 29318, {1, 3, 1, 9, 9, 51, 67, 205, 445, 35, 371, 1837, 3623, 10365, 19463, 59005, 3185}}, +{9173, 17, 29321, {1, 3, 7, 3, 23, 5, 51, 141, 293, 489, 263, 2187, 1259, 2729, 1779, 61027, 53931}}, +{9174, 17, 29322, {1, 1, 1, 15, 27, 7, 15, 109, 475, 839, 175, 953, 4531, 437, 22475, 24167, 19051}}, +{9175, 17, 29339, {1, 1, 7, 9, 25, 23, 41, 107, 299, 115, 1713, 1559, 5701, 5427, 28813, 39913, 15941}}, +{9176, 17, 29365, {1, 3, 5, 7, 5, 25, 99, 9, 307, 591, 1303, 3501, 1589, 12095, 26629, 52127, 60635}}, +{9177, 17, 29369, {1, 3, 7, 3, 9, 23, 3, 29, 113, 49, 1601, 541, 1415, 11601, 19165, 46595, 111623}}, +{9178, 17, 29372, {1, 1, 3, 11, 5, 53, 37, 153, 51, 41, 1267, 545, 2055, 13137, 7749, 30721, 119591}}, +{9179, 17, 29377, {1, 3, 5, 11, 1, 15, 65, 17, 155, 65, 745, 2547, 6351, 2347, 13553, 5785, 129857}}, +{9180, 17, 29392, {1, 3, 7, 13, 5, 53, 11, 59, 453, 467, 1275, 3669, 4481, 5229, 2953, 23369, 100161}}, +{9181, 17, 29401, {1, 3, 1, 1, 13, 41, 91, 179, 331, 547, 1571, 1787, 6467, 12375, 4579, 45023, 119149}}, +{9182, 17, 29402, {1, 3, 3, 5, 17, 55, 105, 57, 227, 323, 1517, 1215, 3149, 13919, 18595, 5525, 82445}}, +{9183, 17, 29418, {1, 3, 1, 13, 19, 23, 17, 239, 81, 481, 1625, 2003, 7295, 2185, 7021, 19357, 37867}}, +{9184, 17, 29437, {1, 3, 5, 9, 11, 15, 61, 223, 153, 139, 2023, 2579, 495, 14319, 2835, 26541, 113115}}, +{9185, 17, 29445, {1, 1, 3, 13, 29, 9, 13, 149, 325, 87, 697, 2345, 2205, 5069, 9939, 61351, 127313}}, +{9186, 17, 29446, {1, 1, 7, 11, 13, 53, 45, 197, 167, 551, 439, 3715, 4587, 8549, 28193, 35827, 96721}}, +{9187, 17, 29460, {1, 3, 1, 1, 17, 7, 31, 205, 219, 739, 1165, 243, 3877, 15943, 15207, 43857, 120565}}, +{9188, 17, 29467, {1, 3, 7, 9, 7, 43, 81, 203, 295, 553, 279, 2717, 9, 751, 24715, 21591, 11485}}, +{9189, 17, 29473, {1, 1, 1, 11, 15, 17, 41, 121, 355, 157, 955, 3875, 7595, 235, 4937, 20607, 11401}}, +{9190, 17, 29476, {1, 1, 7, 7, 13, 49, 33, 161, 65, 251, 1895, 2665, 3017, 9725, 10797, 46313, 43407}}, +{9191, 17, 29488, {1, 1, 3, 9, 23, 17, 127, 69, 385, 875, 461, 3305, 3001, 5875, 13547, 61239, 113571}}, +{9192, 17, 29511, {1, 3, 7, 5, 15, 47, 113, 131, 465, 89, 733, 433, 799, 5689, 723, 63479, 106945}}, +{9193, 17, 29512, {1, 3, 3, 15, 29, 1, 51, 115, 317, 1021, 1219, 1797, 4005, 10435, 28935, 49467, 66833}}, +{9194, 17, 29517, {1, 1, 3, 11, 15, 9, 51, 209, 477, 479, 1099, 2781, 5525, 12715, 9067, 18317, 121671}}, +{9195, 17, 29523, {1, 3, 1, 7, 19, 35, 61, 27, 479, 815, 1639, 2825, 7449, 13697, 3079, 49833, 35119}}, +{9196, 17, 29526, {1, 3, 7, 3, 17, 53, 95, 155, 505, 185, 717, 3419, 3857, 2369, 14525, 22797, 38553}}, +{9197, 17, 29535, {1, 3, 1, 13, 27, 5, 11, 21, 507, 65, 39, 2841, 7887, 2783, 18767, 34171, 40527}}, +{9198, 17, 29539, {1, 3, 1, 7, 9, 47, 69, 217, 251, 775, 631, 1967, 5541, 10679, 16439, 33533, 57817}}, +{9199, 17, 29545, {1, 1, 5, 11, 27, 57, 103, 255, 359, 745, 63, 3725, 4113, 10943, 7833, 46857, 99239}}, +{9200, 17, 29559, {1, 3, 1, 5, 31, 41, 69, 245, 401, 451, 959, 351, 6999, 6187, 21437, 55067, 53547}}, +{9201, 17, 29560, {1, 1, 1, 13, 25, 49, 85, 181, 457, 731, 743, 1901, 7013, 12027, 14729, 24193, 89685}}, +{9202, 17, 29589, {1, 3, 3, 1, 31, 29, 101, 137, 117, 135, 345, 1419, 7133, 2695, 3631, 53049, 45875}}, +{9203, 17, 29593, {1, 1, 1, 13, 11, 51, 95, 221, 339, 655, 201, 3007, 8179, 8093, 22399, 59123, 127319}}, +{9204, 17, 29599, {1, 3, 7, 3, 31, 37, 23, 199, 191, 649, 817, 1959, 893, 2333, 21477, 29087, 115667}}, +{9205, 17, 29603, {1, 3, 3, 5, 9, 55, 123, 67, 39, 533, 797, 2575, 3955, 14585, 28587, 13079, 60053}}, +{9206, 17, 29610, {1, 3, 1, 1, 17, 19, 15, 219, 185, 21, 967, 667, 3361, 3883, 8059, 26199, 80913}}, +{9207, 17, 29629, {1, 3, 3, 11, 23, 5, 99, 57, 379, 151, 271, 3735, 7087, 12731, 2949, 54831, 37835}}, +{9208, 17, 29644, {1, 3, 1, 7, 21, 25, 9, 195, 497, 585, 901, 19, 7675, 13611, 31155, 14567, 20545}}, +{9209, 17, 29656, {1, 1, 3, 3, 27, 45, 51, 169, 397, 531, 673, 2935, 3779, 7169, 23479, 16157, 100237}}, +{9210, 17, 29662, {1, 1, 1, 1, 19, 49, 3, 75, 455, 805, 591, 1929, 2883, 2797, 31379, 12025, 120929}}, +{9211, 17, 29675, {1, 3, 5, 3, 17, 39, 115, 93, 341, 329, 1857, 2753, 4923, 12539, 25589, 19437, 29027}}, +{9212, 17, 29692, {1, 3, 5, 9, 27, 37, 21, 235, 499, 369, 1341, 3719, 6819, 3153, 30619, 50901, 52999}}, +{9213, 17, 29704, {1, 3, 1, 11, 3, 55, 43, 219, 83, 771, 783, 3569, 7879, 2363, 30605, 5965, 126855}}, +{9214, 17, 29707, {1, 3, 7, 13, 7, 25, 111, 63, 355, 317, 1579, 1523, 2733, 11963, 25205, 20545, 67389}}, +{9215, 17, 29715, {1, 3, 5, 7, 3, 17, 55, 99, 321, 633, 2013, 1991, 1019, 9223, 21117, 23337, 90589}}, +{9216, 17, 29717, {1, 3, 1, 1, 17, 25, 79, 171, 303, 403, 2037, 2595, 3951, 8021, 8669, 9363, 20345}}, +{9217, 17, 29722, {1, 1, 1, 7, 13, 7, 11, 7, 347, 53, 1763, 3097, 3353, 3769, 22947, 20919, 92247}}, +{9218, 17, 29731, {1, 3, 5, 11, 19, 29, 91, 191, 511, 705, 1317, 3367, 7, 4999, 30251, 18299, 66983}}, +{9219, 17, 29740, {1, 1, 3, 7, 19, 17, 71, 77, 285, 189, 853, 2305, 4205, 15603, 15501, 48073, 11411}}, +{9220, 17, 29743, {1, 3, 7, 5, 21, 15, 47, 13, 277, 969, 1861, 3493, 6723, 11521, 22145, 43779, 44713}}, +{9221, 17, 29752, {1, 1, 3, 5, 19, 47, 51, 207, 229, 957, 709, 267, 8081, 611, 26403, 14871, 111841}}, +{9222, 17, 29760, {1, 3, 7, 1, 19, 43, 71, 73, 405, 351, 1131, 3527, 5949, 14363, 20041, 48123, 68123}}, +{9223, 17, 29766, {1, 3, 3, 7, 23, 51, 81, 13, 161, 453, 365, 1089, 3505, 12359, 14277, 56113, 19717}}, +{9224, 17, 29770, {1, 1, 1, 7, 29, 35, 103, 137, 317, 417, 1465, 2787, 6935, 9885, 12943, 43937, 28353}}, +{9225, 17, 29794, {1, 1, 3, 13, 19, 37, 97, 5, 115, 89, 1005, 3033, 2011, 2633, 10615, 6641, 73385}}, +{9226, 17, 29796, {1, 3, 7, 7, 31, 39, 107, 165, 61, 1009, 1159, 865, 3469, 11093, 10425, 43959, 37395}}, +{9227, 17, 29814, {1, 3, 5, 9, 7, 51, 99, 91, 37, 457, 39, 2455, 7481, 4929, 29755, 50603, 48943}}, +{9228, 17, 29817, {1, 1, 5, 13, 5, 39, 47, 149, 341, 303, 843, 3619, 7527, 8739, 5893, 42623, 99899}}, +{9229, 17, 29829, {1, 1, 1, 1, 1, 41, 73, 71, 409, 351, 131, 515, 6657, 337, 23913, 583, 21665}}, +{9230, 17, 29841, {1, 1, 3, 3, 11, 45, 39, 113, 315, 965, 1605, 2779, 501, 7429, 2567, 7011, 71445}}, +{9231, 17, 29851, {1, 3, 7, 13, 21, 13, 45, 105, 385, 281, 1683, 3997, 6391, 10943, 22349, 37261, 57555}}, +{9232, 17, 29860, {1, 1, 3, 5, 17, 55, 109, 71, 393, 561, 433, 1091, 1923, 13861, 12981, 5523, 15467}}, +{9233, 17, 29864, {1, 3, 7, 5, 17, 11, 113, 119, 37, 989, 1609, 2191, 1511, 11835, 25423, 793, 15227}}, +{9234, 17, 29869, {1, 3, 1, 5, 5, 55, 105, 225, 349, 351, 1259, 1309, 821, 2733, 1357, 3665, 38863}}, +{9235, 17, 29870, {1, 3, 5, 1, 23, 61, 49, 113, 169, 319, 85, 1581, 97, 5271, 30625, 37693, 7297}}, +{9236, 17, 29889, {1, 3, 5, 1, 1, 25, 31, 125, 307, 731, 1815, 1047, 7251, 12481, 20781, 63275, 51985}}, +{9237, 17, 29896, {1, 3, 5, 9, 11, 9, 121, 111, 45, 751, 793, 2593, 6409, 4355, 30183, 36959, 105161}}, +{9238, 17, 29901, {1, 1, 3, 9, 25, 37, 95, 253, 401, 481, 1521, 3555, 231, 15459, 1581, 36661, 121727}}, +{9239, 17, 29913, {1, 3, 5, 3, 27, 11, 107, 115, 213, 813, 27, 1789, 603, 383, 1129, 63365, 51147}}, +{9240, 17, 29919, {1, 1, 3, 13, 25, 7, 33, 1, 97, 907, 35, 4069, 5001, 507, 911, 62037, 22019}}, +{9241, 17, 29920, {1, 1, 3, 5, 7, 55, 35, 95, 261, 217, 1565, 3473, 3475, 12181, 569, 27389, 81771}}, +{9242, 17, 29947, {1, 1, 3, 5, 11, 33, 95, 121, 453, 711, 361, 3927, 5231, 15685, 31143, 56915, 23707}}, +{9243, 17, 29958, {1, 1, 3, 11, 25, 15, 53, 155, 469, 647, 1547, 335, 3753, 12873, 13639, 25129, 79287}}, +{9244, 17, 29975, {1, 3, 3, 3, 1, 21, 21, 121, 105, 903, 83, 2287, 4295, 14369, 29183, 26841, 38115}}, +{9245, 17, 29981, {1, 1, 7, 11, 5, 29, 65, 191, 389, 419, 1315, 739, 3485, 10587, 2399, 36377, 28789}}, +{9246, 17, 29985, {1, 3, 3, 11, 3, 29, 71, 169, 265, 747, 395, 1211, 3487, 15705, 25611, 18183, 85771}}, +{9247, 17, 29998, {1, 1, 7, 3, 23, 5, 45, 47, 337, 571, 33, 1221, 5671, 1233, 28361, 36945, 911}}, +{9248, 17, 30010, {1, 1, 5, 11, 17, 15, 57, 97, 185, 999, 1277, 3371, 2785, 3341, 13395, 11925, 86777}}, +{9249, 17, 30012, {1, 1, 3, 1, 31, 37, 23, 105, 503, 869, 1309, 3733, 4629, 8263, 11763, 30669, 26179}}, +{9250, 17, 30044, {1, 1, 3, 15, 25, 61, 37, 27, 325, 413, 809, 2959, 8137, 3397, 21185, 27995, 84297}}, +{9251, 17, 30048, {1, 3, 5, 5, 1, 55, 95, 41, 493, 469, 331, 1789, 7037, 7947, 14239, 16109, 51795}}, +{9252, 17, 30051, {1, 1, 1, 1, 19, 33, 111, 237, 261, 331, 871, 3539, 1731, 6953, 11345, 37901, 5623}}, +{9253, 17, 30063, {1, 1, 5, 7, 21, 41, 49, 179, 49, 797, 231, 1299, 145, 7743, 725, 60595, 19581}}, +{9254, 17, 30065, {1, 3, 7, 15, 7, 43, 67, 219, 133, 641, 1657, 2301, 1591, 12309, 6395, 3999, 92961}}, +{9255, 17, 30072, {1, 1, 1, 5, 1, 49, 37, 81, 219, 323, 461, 1379, 1797, 14825, 21811, 7347, 35643}}, +{9256, 17, 30077, {1, 1, 1, 11, 1, 3, 83, 31, 307, 83, 1169, 3277, 1875, 13397, 20265, 46707, 15205}}, +{9257, 17, 30087, {1, 3, 7, 11, 29, 41, 69, 33, 405, 991, 1937, 1217, 2137, 8657, 4319, 41119, 43371}}, +{9258, 17, 30088, {1, 3, 3, 3, 25, 49, 107, 197, 347, 923, 1585, 3023, 4087, 13875, 22015, 35733, 33755}}, +{9259, 17, 30101, {1, 3, 3, 5, 15, 61, 89, 249, 141, 853, 1469, 999, 7425, 10015, 12341, 51535, 61619}}, +{9260, 17, 30112, {1, 1, 7, 13, 31, 61, 89, 113, 117, 429, 1011, 1589, 1419, 5083, 4843, 26759, 47401}}, +{9261, 17, 30121, {1, 1, 7, 9, 17, 37, 119, 39, 499, 93, 1155, 3069, 2033, 12483, 29849, 40077, 11103}}, +{9262, 17, 30122, {1, 3, 1, 15, 11, 5, 23, 121, 283, 717, 1573, 3911, 2031, 2617, 20387, 33157, 301}}, +{9263, 17, 30130, {1, 3, 5, 7, 17, 61, 109, 3, 205, 617, 1171, 223, 6609, 15027, 2629, 15801, 73749}}, +{9264, 17, 30135, {1, 1, 3, 7, 5, 49, 9, 73, 333, 401, 675, 2765, 993, 77, 19237, 60929, 88703}}, +{9265, 17, 30139, {1, 1, 1, 9, 21, 25, 53, 249, 241, 43, 1959, 545, 3729, 11395, 3027, 12661, 87729}}, +{9266, 17, 30142, {1, 3, 3, 15, 15, 61, 33, 59, 155, 773, 1043, 3111, 6549, 5397, 29099, 57851, 107671}}, +{9267, 17, 30164, {1, 3, 7, 1, 29, 29, 1, 161, 273, 883, 1913, 2389, 401, 9425, 17613, 50443, 84601}}, +{9268, 17, 30167, {1, 3, 7, 11, 15, 63, 41, 53, 371, 153, 1491, 3013, 6635, 4955, 30145, 20175, 16541}}, +{9269, 17, 30180, {1, 3, 3, 11, 31, 27, 127, 207, 11, 313, 1067, 3445, 3075, 4071, 28305, 58911, 85273}}, +{9270, 17, 30202, {1, 1, 7, 11, 17, 47, 77, 119, 209, 657, 1181, 459, 5821, 4267, 5757, 53703, 35621}}, +{9271, 17, 30211, {1, 3, 1, 15, 27, 41, 3, 217, 457, 531, 1749, 2847, 4715, 11451, 25071, 53999, 93503}}, +{9272, 17, 30214, {1, 3, 5, 3, 19, 29, 9, 177, 355, 265, 883, 1113, 2397, 1819, 20757, 50389, 95551}}, +{9273, 17, 30217, {1, 1, 3, 15, 3, 45, 85, 211, 377, 293, 1791, 1193, 1117, 9383, 28039, 27155, 129513}}, +{9274, 17, 30223, {1, 1, 7, 5, 1, 17, 59, 215, 161, 933, 1653, 2407, 2693, 3655, 7515, 2239, 88985}}, +{9275, 17, 30228, {1, 1, 3, 11, 31, 3, 1, 77, 459, 817, 651, 603, 1711, 9391, 20607, 48195, 127153}}, +{9276, 17, 30235, {1, 1, 5, 13, 11, 49, 25, 13, 51, 443, 1877, 1257, 163, 4673, 30313, 18841, 24547}}, +{9277, 17, 30256, {1, 1, 7, 7, 15, 33, 43, 79, 127, 625, 1991, 1311, 2095, 14659, 3477, 56023, 57955}}, +{9278, 17, 30265, {1, 3, 7, 15, 29, 7, 119, 183, 123, 323, 1723, 959, 2733, 2097, 2927, 57595, 86067}}, +{9279, 17, 30286, {1, 3, 5, 5, 29, 57, 93, 139, 495, 739, 1715, 713, 243, 2027, 11223, 44143, 119155}}, +{9280, 17, 30293, {1, 3, 1, 9, 3, 63, 113, 29, 19, 439, 869, 1101, 4947, 2191, 14737, 57049, 93505}}, +{9281, 17, 30298, {1, 1, 7, 1, 11, 39, 27, 29, 281, 829, 1979, 2185, 2207, 14969, 7447, 55541, 59593}}, +{9282, 17, 30310, {1, 1, 7, 13, 11, 15, 15, 143, 383, 469, 1439, 2823, 7489, 7675, 15433, 26203, 80433}}, +{9283, 17, 30314, {1, 1, 1, 7, 15, 45, 23, 93, 477, 1, 1431, 3173, 7879, 12211, 13051, 56971, 114289}}, +{9284, 17, 30327, {1, 3, 1, 1, 27, 55, 61, 185, 323, 569, 1063, 1357, 7373, 14947, 15967, 64517, 104625}}, +{9285, 17, 30333, {1, 1, 5, 11, 25, 1, 127, 163, 419, 657, 911, 361, 3675, 10765, 24565, 2661, 61979}}, +{9286, 17, 30334, {1, 3, 7, 15, 29, 53, 29, 149, 465, 535, 1865, 2243, 4783, 9327, 24843, 52313, 15683}}, +{9287, 17, 30337, {1, 1, 7, 7, 17, 7, 85, 187, 91, 1013, 1917, 2959, 3571, 12047, 25267, 34095, 9877}}, +{9288, 17, 30338, {1, 1, 1, 7, 5, 27, 111, 107, 313, 571, 1081, 3193, 1025, 2589, 1523, 40453, 77065}}, +{9289, 17, 30344, {1, 3, 7, 1, 19, 27, 1, 103, 479, 405, 583, 1737, 3495, 9093, 20397, 16429, 45609}}, +{9290, 17, 30349, {1, 1, 3, 11, 17, 1, 125, 97, 261, 651, 901, 1245, 1181, 14469, 16229, 31935, 100227}}, +{9291, 17, 30352, {1, 1, 7, 11, 15, 1, 19, 151, 453, 833, 1371, 1109, 5373, 25, 5619, 58351, 26349}}, +{9292, 17, 30362, {1, 1, 7, 15, 17, 55, 51, 67, 123, 13, 1873, 1035, 5871, 11943, 11543, 43261, 62587}}, +{9293, 17, 30374, {1, 3, 1, 13, 21, 15, 83, 205, 333, 379, 2021, 1389, 861, 10395, 20587, 38207, 49109}}, +{9294, 17, 30380, {1, 1, 5, 3, 13, 49, 89, 85, 463, 1005, 1367, 3487, 581, 12145, 22445, 35343, 65745}}, +{9295, 17, 30388, {1, 3, 3, 3, 29, 27, 99, 195, 89, 793, 1677, 3989, 4811, 8303, 9165, 50349, 96947}}, +{9296, 17, 30391, {1, 1, 3, 5, 29, 11, 91, 107, 13, 659, 213, 1613, 2245, 11567, 28157, 2937, 53275}}, +{9297, 17, 30395, {1, 3, 7, 5, 3, 41, 65, 27, 93, 747, 1143, 505, 3881, 2123, 2903, 54137, 96185}}, +{9298, 17, 30403, {1, 1, 3, 15, 9, 49, 3, 25, 77, 681, 1709, 915, 2243, 2127, 18243, 13915, 67399}}, +{9299, 17, 30409, {1, 3, 5, 7, 13, 49, 89, 67, 63, 271, 1651, 897, 4035, 1067, 13743, 56791, 44371}}, +{9300, 17, 30424, {1, 1, 7, 9, 25, 19, 125, 15, 125, 705, 1359, 817, 1241, 12447, 19097, 33209, 89091}}, +{9301, 17, 30427, {1, 3, 7, 3, 19, 43, 127, 197, 39, 709, 257, 3547, 3069, 1187, 21255, 6453, 40763}}, +{9302, 17, 30430, {1, 3, 3, 5, 3, 53, 37, 65, 415, 183, 991, 533, 7805, 9905, 18925, 52665, 100987}}, +{9303, 17, 30451, {1, 3, 3, 11, 17, 41, 17, 137, 143, 277, 945, 1531, 7427, 7287, 30869, 27651, 116507}}, +{9304, 17, 30460, {1, 1, 1, 3, 13, 3, 9, 163, 113, 373, 1909, 1051, 97, 10729, 28615, 40081, 129297}}, +{9305, 17, 30475, {1, 3, 3, 9, 11, 47, 113, 27, 307, 339, 1319, 3083, 7383, 1551, 26691, 28769, 114313}}, +{9306, 17, 30480, {1, 3, 7, 7, 25, 49, 31, 231, 485, 629, 59, 283, 7463, 6603, 23055, 63643, 10121}}, +{9307, 17, 30485, {1, 3, 7, 9, 5, 55, 53, 127, 147, 103, 1697, 485, 7051, 14153, 21631, 35561, 10393}}, +{9308, 17, 30486, {1, 3, 3, 7, 23, 7, 83, 17, 135, 487, 315, 719, 7003, 3919, 13255, 24031, 110493}}, +{9309, 17, 30489, {1, 3, 1, 15, 27, 55, 121, 177, 205, 733, 933, 1535, 2925, 4259, 22203, 59059, 89209}}, +{9310, 17, 30492, {1, 1, 1, 11, 9, 11, 127, 47, 493, 349, 1415, 3089, 4739, 14347, 31579, 20739, 72997}}, +{9311, 17, 30499, {1, 3, 1, 7, 9, 31, 121, 111, 163, 733, 1699, 1507, 5467, 13499, 25269, 6303, 70201}}, +{9312, 17, 30511, {1, 3, 1, 5, 7, 23, 123, 203, 329, 387, 577, 2331, 2283, 14029, 19409, 103, 2477}}, +{9313, 17, 30533, {1, 1, 7, 15, 11, 29, 29, 153, 289, 333, 1669, 2065, 5465, 8835, 28753, 21209, 34283}}, +{9314, 17, 30534, {1, 3, 5, 11, 15, 33, 45, 81, 241, 461, 1167, 1073, 5511, 795, 30955, 49121, 42805}}, +{9315, 17, 30540, {1, 1, 1, 13, 7, 33, 11, 201, 161, 475, 1359, 2329, 177, 9883, 8967, 21399, 73045}}, +{9316, 17, 30545, {1, 3, 3, 1, 25, 59, 85, 51, 481, 751, 1213, 3019, 421, 9903, 30071, 50661, 94715}}, +{9317, 17, 30552, {1, 3, 3, 1, 5, 61, 3, 179, 131, 233, 1627, 3577, 6323, 14161, 21595, 44963, 20215}}, +{9318, 17, 30557, {1, 1, 1, 5, 9, 53, 45, 105, 275, 769, 105, 2757, 6769, 14987, 19955, 18291, 81707}}, +{9319, 17, 30558, {1, 1, 7, 1, 1, 59, 33, 19, 385, 775, 423, 1799, 1325, 13545, 16027, 58347, 102397}}, +{9320, 17, 30567, {1, 1, 3, 11, 15, 61, 63, 59, 355, 659, 1483, 3781, 7383, 5563, 32537, 34175, 40303}}, +{9321, 17, 30568, {1, 3, 5, 7, 5, 37, 19, 223, 323, 129, 287, 2655, 3767, 16201, 4147, 315, 54885}}, +{9322, 17, 30581, {1, 1, 7, 13, 13, 23, 43, 129, 405, 205, 1691, 2189, 3313, 11789, 10263, 16367, 65547}}, +{9323, 17, 30597, {1, 3, 5, 1, 15, 21, 85, 233, 427, 71, 475, 3731, 3335, 11483, 28613, 4335, 35669}}, +{9324, 17, 30607, {1, 1, 3, 3, 31, 47, 27, 109, 373, 451, 1459, 3103, 1941, 10405, 20233, 30517, 122787}}, +{9325, 17, 30621, {1, 3, 1, 7, 3, 11, 113, 49, 355, 465, 1959, 1355, 6521, 10863, 11481, 13385, 31787}}, +{9326, 17, 30632, {1, 3, 1, 1, 9, 45, 125, 69, 267, 413, 717, 2767, 833, 317, 23019, 37753, 3081}}, +{9327, 17, 30650, {1, 1, 7, 7, 13, 55, 75, 105, 71, 505, 239, 3739, 4873, 4257, 18841, 41711, 24045}}, +{9328, 17, 30655, {1, 1, 5, 13, 21, 59, 107, 229, 421, 441, 1079, 3727, 7941, 8443, 30433, 56419, 105751}}, +{9329, 17, 30657, {1, 1, 1, 9, 15, 59, 29, 49, 117, 1009, 1971, 115, 2899, 1069, 29145, 11855, 35277}}, +{9330, 17, 30660, {1, 3, 7, 15, 19, 55, 111, 77, 169, 537, 1695, 2687, 3871, 14017, 15119, 27313, 112807}}, +{9331, 17, 30669, {1, 1, 3, 7, 29, 5, 41, 201, 211, 127, 1877, 643, 2441, 8743, 29393, 6077, 52597}}, +{9332, 17, 30675, {1, 3, 1, 11, 7, 1, 95, 15, 229, 339, 475, 3463, 7827, 9943, 30903, 65013, 1145}}, +{9333, 17, 30678, {1, 1, 1, 5, 23, 19, 81, 23, 475, 169, 373, 1147, 1805, 12779, 13173, 8945, 28175}}, +{9334, 17, 30682, {1, 3, 5, 9, 3, 53, 127, 33, 237, 803, 121, 307, 4981, 8765, 12761, 23601, 92921}}, +{9335, 17, 30687, {1, 1, 3, 7, 17, 63, 11, 37, 213, 619, 1095, 1693, 6747, 7373, 17355, 5987, 97923}}, +{9336, 17, 30688, {1, 1, 3, 15, 11, 37, 109, 175, 503, 339, 591, 2745, 2387, 7419, 13915, 4769, 48229}}, +{9337, 17, 30698, {1, 3, 5, 7, 19, 17, 5, 81, 471, 989, 249, 437, 7309, 5747, 25277, 31911, 87907}}, +{9338, 17, 30711, {1, 3, 1, 7, 15, 25, 49, 243, 423, 911, 1957, 911, 6331, 9831, 26021, 58877, 99257}}, +{9339, 17, 30728, {1, 3, 5, 11, 3, 55, 39, 129, 271, 145, 1973, 3391, 2905, 9229, 7989, 15641, 67933}}, +{9340, 17, 30733, {1, 3, 5, 9, 13, 13, 43, 135, 183, 319, 1391, 2953, 2207, 14205, 31203, 6329, 98907}}, +{9341, 17, 30741, {1, 3, 1, 9, 27, 41, 27, 155, 11, 191, 1747, 975, 7043, 13139, 30387, 47099, 120321}}, +{9342, 17, 30746, {1, 1, 5, 9, 25, 27, 53, 235, 437, 77, 371, 2413, 4867, 14245, 27199, 37387, 88217}}, +{9343, 17, 30752, {1, 1, 7, 7, 11, 59, 103, 15, 109, 65, 1987, 3695, 7737, 7341, 26963, 16075, 6301}}, +{9344, 17, 30764, {1, 3, 7, 5, 7, 59, 109, 159, 121, 377, 1851, 3983, 5421, 7633, 7321, 14869, 54633}}, +{9345, 17, 30769, {1, 1, 3, 15, 21, 51, 35, 243, 397, 411, 1107, 3689, 7913, 14715, 26349, 23361, 90665}}, +{9346, 17, 30784, {1, 1, 1, 3, 5, 11, 77, 205, 187, 981, 1969, 1749, 6295, 8267, 16073, 54451, 103603}}, +{9347, 17, 30796, {1, 3, 3, 9, 11, 13, 113, 83, 243, 1021, 2003, 2277, 6457, 10535, 13461, 52741, 9385}}, +{9348, 17, 30799, {1, 3, 3, 11, 19, 9, 103, 13, 219, 269, 1805, 2689, 5219, 11497, 4909, 57985, 40141}}, +{9349, 17, 30804, {1, 1, 1, 1, 29, 25, 15, 217, 69, 567, 839, 1515, 3627, 9837, 21433, 37177, 10487}}, +{9350, 17, 30811, {1, 1, 7, 15, 15, 23, 119, 217, 277, 447, 551, 825, 7571, 3083, 16573, 1189, 64959}}, +{9351, 17, 30814, {1, 1, 3, 11, 9, 13, 63, 77, 313, 195, 941, 1621, 165, 8905, 20265, 53761, 25091}}, +{9352, 17, 30818, {1, 3, 3, 9, 17, 5, 9, 183, 175, 1015, 253, 233, 2883, 15587, 27175, 38517, 22707}}, +{9353, 17, 30827, {1, 3, 3, 11, 23, 63, 83, 17, 49, 671, 749, 3249, 7821, 7189, 26735, 28995, 101737}}, +{9354, 17, 30838, {1, 1, 7, 5, 25, 15, 97, 247, 161, 585, 1307, 3803, 1105, 9093, 23523, 1383, 65671}}, +{9355, 17, 30842, {1, 1, 3, 15, 29, 51, 65, 237, 349, 709, 799, 1425, 6267, 6283, 4773, 18123, 74833}}, +{9356, 17, 30854, {1, 1, 5, 5, 11, 13, 9, 251, 373, 189, 467, 945, 7279, 11349, 10917, 6581, 83967}}, +{9357, 17, 30863, {1, 1, 7, 15, 23, 27, 1, 197, 41, 325, 757, 1229, 6295, 345, 26147, 40135, 123063}}, +{9358, 17, 30865, {1, 1, 7, 9, 23, 9, 93, 225, 191, 837, 103, 3367, 5411, 8289, 7057, 55391, 10669}}, +{9359, 17, 30877, {1, 1, 5, 15, 21, 17, 49, 221, 487, 23, 1943, 1563, 6157, 4035, 27769, 14933, 56913}}, +{9360, 17, 30881, {1, 1, 5, 13, 13, 43, 67, 245, 457, 365, 1115, 2205, 6229, 4173, 25167, 56333, 55605}}, +{9361, 17, 30887, {1, 1, 5, 11, 15, 59, 109, 83, 17, 913, 497, 1299, 5221, 321, 32139, 13717, 94311}}, +{9362, 17, 30908, {1, 3, 3, 3, 31, 11, 5, 203, 3, 843, 2039, 25, 6211, 14927, 6015, 46269, 90369}}, +{9363, 17, 30916, {1, 1, 3, 9, 21, 51, 91, 203, 149, 147, 197, 1771, 2921, 6609, 2343, 35249, 12963}}, +{9364, 17, 30919, {1, 3, 1, 7, 17, 43, 91, 229, 107, 521, 737, 2355, 5855, 6707, 21217, 47041, 81833}}, +{9365, 17, 30925, {1, 3, 3, 7, 7, 31, 97, 135, 503, 665, 1799, 2937, 6867, 4125, 7375, 34401, 18111}}, +{9366, 17, 30928, {1, 1, 7, 1, 11, 29, 89, 185, 495, 633, 507, 3727, 5999, 5871, 5911, 24877, 10259}}, +{9367, 17, 30944, {1, 1, 1, 13, 25, 3, 25, 65, 91, 411, 147, 3699, 7003, 3017, 25635, 56619, 101491}}, +{9368, 17, 30947, {1, 3, 5, 7, 31, 1, 63, 255, 115, 179, 87, 735, 1649, 4767, 31093, 60149, 49829}}, +{9369, 17, 30950, {1, 1, 3, 1, 21, 63, 67, 85, 399, 279, 1963, 1759, 4679, 15423, 11533, 54387, 36563}}, +{9370, 17, 30968, {1, 3, 5, 3, 31, 53, 73, 73, 481, 443, 1393, 2763, 1199, 5375, 8977, 5369, 114603}}, +{9371, 17, 30971, {1, 1, 1, 3, 29, 47, 73, 205, 469, 187, 815, 2787, 1431, 4705, 11455, 53643, 89269}}, +{9372, 17, 30973, {1, 3, 3, 9, 27, 57, 93, 55, 287, 539, 1259, 3279, 1563, 11399, 22975, 27077, 41031}}, +{9373, 17, 30976, {1, 1, 3, 15, 7, 27, 67, 25, 169, 263, 621, 1921, 509, 11715, 15363, 27447, 75535}}, +{9374, 17, 30986, {1, 1, 1, 9, 29, 63, 31, 99, 321, 361, 1693, 763, 5593, 10815, 741, 31257, 70843}}, +{9375, 17, 30993, {1, 1, 1, 9, 1, 17, 73, 141, 401, 549, 415, 1289, 1697, 1903, 8919, 59563, 60017}}, +{9376, 17, 30994, {1, 3, 7, 3, 5, 51, 127, 221, 9, 929, 153, 1045, 6587, 13653, 5343, 14043, 116125}}, +{9377, 17, 31012, {1, 3, 3, 13, 13, 17, 29, 93, 465, 59, 1207, 3121, 6331, 8647, 5047, 41869, 51969}}, +{9378, 17, 31016, {1, 1, 1, 15, 23, 29, 47, 149, 119, 855, 367, 1419, 7739, 1141, 19787, 38185, 84403}}, +{9379, 17, 31029, {1, 3, 1, 9, 29, 63, 5, 63, 435, 401, 1023, 1981, 6819, 7547, 30065, 33833, 7471}}, +{9380, 17, 31039, {1, 3, 1, 15, 1, 47, 35, 161, 243, 225, 935, 2179, 7737, 7841, 28523, 11505, 103741}}, +{9381, 17, 31041, {1, 1, 7, 3, 7, 57, 73, 55, 101, 905, 1705, 4057, 3781, 8213, 18997, 17185, 33265}}, +{9382, 17, 31042, {1, 1, 5, 1, 7, 57, 31, 77, 323, 395, 927, 1969, 6973, 9013, 30789, 757, 84075}}, +{9383, 17, 31044, {1, 1, 3, 7, 15, 53, 51, 205, 401, 679, 1295, 1955, 7739, 11423, 23207, 55449, 60419}}, +{9384, 17, 31053, {1, 3, 5, 11, 23, 21, 67, 141, 157, 767, 219, 3607, 1847, 11051, 31499, 8461, 106353}}, +{9385, 17, 31059, {1, 1, 3, 9, 17, 19, 123, 169, 1, 31, 1019, 1823, 6043, 1895, 17293, 62079, 16945}}, +{9386, 17, 31062, {1, 3, 5, 9, 3, 15, 49, 27, 183, 293, 989, 2161, 1845, 1103, 20149, 11121, 31935}}, +{9387, 17, 31077, {1, 3, 1, 3, 17, 39, 103, 45, 491, 91, 413, 487, 1381, 5457, 22503, 40477, 94297}}, +{9388, 17, 31095, {1, 1, 3, 7, 29, 11, 87, 79, 349, 437, 945, 3753, 6691, 4373, 24875, 54397, 33697}}, +{9389, 17, 31101, {1, 1, 7, 1, 9, 31, 105, 121, 97, 947, 129, 1909, 2371, 5493, 29523, 52685, 24325}}, +{9390, 17, 31105, {1, 1, 5, 9, 19, 21, 63, 115, 511, 525, 49, 1879, 6075, 8181, 10135, 56785, 53309}}, +{9391, 17, 31118, {1, 1, 5, 15, 3, 55, 75, 135, 451, 697, 1407, 2765, 2443, 11589, 24863, 47187, 98477}}, +{9392, 17, 31129, {1, 1, 1, 13, 27, 37, 77, 157, 121, 603, 491, 2201, 619, 9157, 32511, 19843, 49919}}, +{9393, 17, 31132, {1, 1, 3, 1, 23, 17, 23, 115, 119, 349, 987, 2587, 1847, 12099, 31955, 31685, 1989}}, +{9394, 17, 31141, {1, 3, 7, 7, 5, 47, 63, 209, 69, 921, 1041, 1391, 7485, 11121, 30993, 5691, 74551}}, +{9395, 17, 31159, {1, 3, 1, 3, 23, 61, 55, 253, 355, 299, 971, 279, 3543, 10073, 5199, 50539, 88303}}, +{9396, 17, 31183, {1, 1, 1, 11, 13, 19, 7, 255, 189, 267, 2021, 93, 219, 10537, 28627, 58141, 53675}}, +{9397, 17, 31185, {1, 3, 3, 7, 27, 61, 83, 95, 163, 777, 1533, 2485, 7211, 6979, 4013, 20797, 91411}}, +{9398, 17, 31195, {1, 1, 7, 13, 15, 37, 5, 109, 133, 225, 59, 3855, 3351, 659, 24321, 63531, 15573}}, +{9399, 17, 31202, {1, 1, 5, 1, 7, 55, 59, 213, 45, 77, 2003, 2921, 1105, 11089, 17197, 45459, 67681}}, +{9400, 17, 31213, {1, 1, 1, 5, 13, 21, 107, 245, 505, 409, 1453, 1201, 6945, 2103, 7377, 59413, 8785}}, +{9401, 17, 31238, {1, 1, 1, 13, 5, 37, 73, 55, 39, 219, 225, 3877, 6583, 3105, 25355, 14839, 23435}}, +{9402, 17, 31241, {1, 1, 7, 1, 21, 35, 87, 227, 487, 767, 609, 1685, 2731, 10135, 381, 24021, 122137}}, +{9403, 17, 31252, {1, 1, 1, 3, 29, 13, 19, 255, 355, 505, 1757, 3537, 3029, 11403, 22685, 61169, 397}}, +{9404, 17, 31262, {1, 1, 7, 1, 29, 43, 11, 207, 83, 97, 435, 1453, 4709, 4193, 18517, 47203, 3255}}, +{9405, 17, 31265, {1, 1, 1, 1, 21, 49, 39, 163, 459, 849, 561, 1207, 4109, 1435, 17519, 14839, 1331}}, +{9406, 17, 31295, {1, 1, 3, 11, 27, 35, 65, 219, 135, 559, 1111, 2959, 7835, 5165, 26641, 22765, 121829}}, +{9407, 17, 31300, {1, 3, 5, 3, 23, 31, 57, 149, 431, 451, 189, 1771, 5877, 3503, 7531, 46485, 129031}}, +{9408, 17, 31303, {1, 1, 3, 11, 1, 13, 47, 17, 331, 1003, 215, 2797, 689, 6289, 12719, 37139, 35827}}, +{9409, 17, 31317, {1, 3, 5, 9, 19, 13, 11, 29, 275, 165, 783, 313, 2153, 6009, 2247, 5699, 128753}}, +{9410, 17, 31318, {1, 1, 7, 13, 5, 43, 51, 75, 411, 743, 335, 217, 559, 15389, 6567, 41193, 127443}}, +{9411, 17, 31324, {1, 3, 5, 15, 5, 63, 7, 145, 445, 835, 825, 35, 5951, 5121, 16365, 36789, 2941}}, +{9412, 17, 31338, {1, 3, 5, 5, 29, 1, 61, 19, 427, 245, 445, 3505, 3647, 8817, 8031, 64577, 60745}}, +{9413, 17, 31340, {1, 1, 3, 9, 29, 9, 35, 225, 55, 535, 1537, 831, 6483, 16123, 26079, 32809, 62227}}, +{9414, 17, 31345, {1, 3, 7, 7, 25, 33, 15, 61, 343, 749, 1963, 2763, 3171, 6755, 6529, 49449, 88903}}, +{9415, 17, 31355, {1, 1, 7, 13, 17, 35, 91, 119, 87, 1023, 1101, 1785, 2005, 15947, 21679, 63179, 3389}}, +{9416, 17, 31362, {1, 3, 1, 1, 1, 1, 123, 195, 315, 681, 153, 1621, 5097, 3669, 20505, 39305, 127065}}, +{9417, 17, 31371, {1, 1, 5, 11, 1, 17, 73, 251, 185, 59, 1723, 2321, 2103, 6331, 29571, 63811, 66651}}, +{9418, 17, 31373, {1, 1, 7, 13, 15, 19, 111, 91, 211, 85, 711, 2197, 3107, 2717, 16725, 52995, 65791}}, +{9419, 17, 31381, {1, 3, 3, 9, 21, 41, 53, 145, 459, 155, 93, 2833, 6747, 737, 30625, 40581, 65825}}, +{9420, 17, 31391, {1, 3, 3, 3, 1, 45, 119, 81, 185, 431, 1221, 3043, 7277, 10537, 12355, 42261, 126117}}, +{9421, 17, 31409, {1, 3, 7, 7, 11, 47, 37, 41, 123, 643, 707, 2963, 6183, 15527, 10951, 24031, 38187}}, +{9422, 17, 31410, {1, 3, 1, 7, 13, 57, 1, 149, 117, 627, 1999, 2805, 4857, 12805, 31453, 25699, 109447}}, +{9423, 17, 31412, {1, 3, 5, 3, 9, 37, 83, 221, 77, 573, 661, 465, 1279, 7355, 24061, 36151, 96595}}, +{9424, 17, 31434, {1, 1, 7, 15, 29, 31, 125, 205, 449, 563, 1263, 3427, 8013, 14025, 15235, 11833, 25601}}, +{9425, 17, 31458, {1, 3, 7, 11, 31, 35, 99, 193, 163, 527, 1455, 395, 4853, 2561, 11909, 57311, 101007}}, +{9426, 17, 31467, {1, 1, 5, 3, 17, 39, 99, 173, 497, 245, 1671, 3457, 83, 11959, 2963, 3401, 102259}}, +{9427, 17, 31470, {1, 1, 1, 5, 25, 41, 119, 81, 301, 797, 661, 2543, 1195, 2111, 1785, 41533, 51947}}, +{9428, 17, 31475, {1, 3, 3, 13, 5, 59, 61, 153, 213, 541, 1849, 249, 3897, 3877, 17095, 6857, 76781}}, +{9429, 17, 31481, {1, 3, 7, 1, 19, 13, 57, 47, 359, 165, 1085, 2263, 3261, 12825, 17405, 25853, 20731}}, +{9430, 17, 31482, {1, 1, 1, 7, 7, 43, 7, 65, 51, 503, 173, 1023, 283, 14809, 1183, 33497, 110683}}, +{9431, 17, 31484, {1, 3, 5, 11, 19, 51, 29, 157, 159, 191, 1293, 2951, 6569, 12433, 14587, 30631, 30485}}, +{9432, 17, 31492, {1, 3, 7, 5, 1, 27, 25, 221, 255, 471, 779, 3991, 6985, 1803, 28451, 33403, 5567}}, +{9433, 17, 31507, {1, 1, 5, 5, 7, 29, 55, 241, 457, 863, 1715, 3393, 4127, 13985, 6313, 13683, 114837}}, +{9434, 17, 31514, {1, 3, 5, 5, 11, 27, 55, 109, 247, 199, 1593, 2881, 307, 97, 24751, 35921, 121931}}, +{9435, 17, 31538, {1, 3, 1, 13, 3, 59, 17, 161, 47, 467, 1019, 3629, 3017, 15645, 3983, 32393, 79213}}, +{9436, 17, 31547, {1, 1, 3, 11, 19, 57, 67, 199, 319, 107, 2043, 2045, 4025, 5733, 29979, 37721, 117031}}, +{9437, 17, 31549, {1, 3, 7, 11, 9, 23, 31, 81, 177, 801, 1177, 3451, 7777, 15351, 7579, 39033, 23847}}, +{9438, 17, 31555, {1, 1, 3, 5, 17, 61, 63, 7, 371, 905, 1147, 1383, 4075, 6721, 17503, 32015, 112547}}, +{9439, 17, 31557, {1, 1, 3, 13, 13, 25, 69, 159, 49, 133, 227, 2155, 1603, 10077, 3429, 39131, 18949}}, +{9440, 17, 31597, {1, 3, 5, 3, 29, 5, 115, 93, 243, 791, 1113, 2841, 4733, 3041, 31733, 28539, 84567}}, +{9441, 17, 31598, {1, 3, 3, 7, 21, 9, 5, 95, 489, 517, 1453, 2697, 7951, 12369, 19571, 29811, 51805}}, +{9442, 17, 31610, {1, 1, 5, 9, 1, 29, 97, 191, 73, 357, 745, 2787, 7815, 4565, 19761, 33729, 86849}}, +{9443, 17, 31625, {1, 3, 5, 13, 3, 5, 35, 79, 387, 813, 1673, 3187, 337, 5539, 6761, 46903, 122967}}, +{9444, 17, 31634, {1, 1, 7, 11, 1, 15, 125, 175, 255, 35, 145, 2391, 887, 10505, 11587, 53941, 5089}}, +{9445, 17, 31643, {1, 1, 7, 13, 9, 13, 15, 215, 361, 227, 1665, 3345, 3615, 14031, 16281, 4457, 52037}}, +{9446, 17, 31645, {1, 3, 5, 9, 31, 21, 3, 189, 211, 855, 1781, 2097, 1345, 6763, 27651, 54137, 52689}}, +{9447, 17, 31659, {1, 3, 1, 5, 29, 9, 99, 183, 183, 205, 149, 53, 7179, 3387, 9603, 4281, 47145}}, +{9448, 17, 31669, {1, 3, 1, 11, 13, 35, 97, 21, 29, 877, 191, 1621, 2501, 4283, 1707, 48957, 129029}}, +{9449, 17, 31670, {1, 3, 1, 9, 5, 19, 57, 219, 105, 467, 1179, 3155, 7743, 4835, 14845, 35671, 47655}}, +{9450, 17, 31682, {1, 3, 1, 7, 27, 41, 27, 185, 271, 611, 1173, 2875, 529, 11619, 20231, 18741, 41799}}, +{9451, 17, 31694, {1, 3, 7, 13, 9, 3, 35, 71, 467, 689, 1797, 319, 6657, 13193, 15861, 7567, 12891}}, +{9452, 17, 31717, {1, 1, 7, 13, 19, 57, 25, 141, 195, 995, 859, 811, 4685, 6711, 8963, 49657, 54751}}, +{9453, 17, 31718, {1, 1, 1, 11, 27, 25, 9, 91, 97, 251, 757, 2783, 5447, 3617, 26801, 32501, 55245}}, +{9454, 17, 31729, {1, 3, 7, 1, 5, 1, 103, 129, 127, 593, 857, 3957, 3665, 10279, 26211, 2095, 15869}}, +{9455, 17, 31736, {1, 1, 7, 1, 25, 49, 3, 139, 25, 545, 615, 1353, 4103, 1099, 21729, 45383, 110611}}, +{9456, 17, 31742, {1, 3, 5, 3, 7, 49, 83, 41, 209, 357, 939, 849, 5851, 3945, 831, 8131, 105897}}, +{9457, 17, 31749, {1, 1, 1, 3, 27, 19, 123, 71, 195, 1019, 1021, 1287, 5665, 5277, 8647, 27033, 89539}}, +{9458, 17, 31773, {1, 1, 1, 9, 27, 51, 49, 159, 401, 1013, 763, 653, 1449, 12441, 21191, 28871, 106181}}, +{9459, 17, 31777, {1, 1, 5, 7, 31, 7, 105, 137, 331, 367, 1305, 2761, 863, 3915, 12633, 32251, 82867}}, +{9460, 17, 31778, {1, 3, 7, 11, 9, 47, 35, 57, 137, 269, 443, 79, 11, 11817, 28995, 46681, 104263}}, +{9461, 17, 31784, {1, 3, 1, 5, 3, 25, 89, 179, 183, 835, 367, 2215, 295, 5365, 1899, 10785, 88979}}, +{9462, 17, 31801, {1, 3, 7, 13, 3, 5, 93, 43, 409, 363, 267, 2077, 3745, 445, 25957, 34103, 29475}}, +{9463, 17, 31812, {1, 1, 1, 7, 27, 21, 121, 29, 171, 783, 553, 265, 6835, 3929, 18127, 33463, 70999}}, +{9464, 17, 31821, {1, 3, 3, 15, 15, 55, 13, 1, 297, 935, 1307, 1779, 2239, 15471, 32453, 30649, 45973}}, +{9465, 17, 31822, {1, 3, 7, 5, 25, 41, 3, 171, 347, 607, 1873, 1087, 2433, 8377, 7959, 19941, 117319}}, +{9466, 17, 31836, {1, 1, 1, 3, 5, 47, 107, 69, 431, 63, 325, 1241, 3487, 11249, 28559, 30001, 93789}}, +{9467, 17, 31850, {1, 1, 1, 5, 15, 17, 9, 145, 335, 169, 1099, 3637, 5397, 6711, 16095, 27053, 124247}}, +{9468, 17, 31855, {1, 3, 3, 5, 3, 9, 65, 97, 421, 951, 2003, 2837, 7095, 15685, 5147, 56801, 98679}}, +{9469, 17, 31858, {1, 3, 7, 15, 1, 33, 115, 45, 215, 253, 361, 555, 787, 15483, 25531, 53273, 8933}}, +{9470, 17, 31860, {1, 3, 1, 9, 3, 63, 47, 205, 457, 977, 991, 3189, 1369, 14899, 10937, 56999, 11525}}, +{9471, 17, 31886, {1, 1, 7, 5, 11, 61, 53, 55, 231, 357, 1695, 2489, 2355, 7583, 14097, 50039, 96595}}, +{9472, 17, 31891, {1, 3, 7, 7, 3, 57, 115, 245, 259, 573, 1275, 2971, 1793, 13683, 8683, 51815, 26807}}, +{9473, 17, 31909, {1, 1, 5, 3, 17, 59, 55, 237, 491, 757, 1447, 2941, 2641, 14175, 4401, 4367, 36853}}, +{9474, 17, 31928, {1, 3, 1, 15, 3, 63, 67, 1, 403, 79, 1161, 2379, 3337, 14447, 5877, 40759, 12573}}, +{9475, 17, 31931, {1, 1, 7, 15, 17, 1, 91, 5, 173, 215, 1567, 1851, 3309, 9813, 21215, 19151, 96785}}, +{9476, 17, 31934, {1, 1, 1, 9, 31, 45, 123, 221, 397, 51, 1489, 3247, 923, 10423, 10461, 51231, 92909}}, +{9477, 17, 31941, {1, 1, 1, 13, 27, 17, 105, 163, 403, 193, 1487, 2421, 4415, 14303, 6419, 24105, 29997}}, +{9478, 17, 31942, {1, 1, 5, 13, 31, 55, 17, 125, 341, 219, 401, 1611, 891, 12909, 13949, 46245, 26769}}, +{9479, 17, 31945, {1, 3, 7, 3, 31, 41, 65, 207, 311, 643, 1617, 271, 3749, 14635, 26385, 55251, 50719}}, +{9480, 17, 31951, {1, 3, 3, 13, 7, 55, 69, 241, 413, 399, 137, 2255, 5395, 12625, 26583, 64603, 22571}}, +{9481, 17, 31959, {1, 3, 5, 3, 31, 15, 15, 161, 153, 445, 595, 273, 6631, 12845, 23331, 16963, 52099}}, +{9482, 17, 31963, {1, 3, 3, 1, 27, 39, 71, 41, 455, 841, 831, 1719, 3531, 5113, 29183, 1933, 42227}}, +{9483, 17, 31970, {1, 3, 7, 3, 1, 15, 31, 183, 429, 557, 1747, 1059, 2079, 16361, 29103, 43207, 921}}, +{9484, 17, 31984, {1, 3, 1, 1, 31, 39, 97, 73, 339, 405, 1423, 2215, 5435, 9205, 1889, 58249, 61517}}, +{9485, 17, 31987, {1, 3, 7, 1, 23, 59, 127, 245, 11, 627, 1555, 2497, 6427, 7205, 22675, 62847, 69691}}, +{9486, 17, 31990, {1, 1, 3, 5, 1, 13, 95, 9, 167, 481, 947, 3181, 8057, 5559, 7537, 33757, 72419}}, +{9487, 17, 32001, {1, 1, 7, 3, 15, 9, 105, 205, 287, 375, 115, 1731, 1063, 11551, 12077, 41013, 88853}}, +{9488, 17, 32007, {1, 3, 3, 9, 5, 63, 127, 33, 409, 279, 1379, 4069, 4091, 14703, 27435, 19525, 71261}}, +{9489, 17, 32008, {1, 3, 1, 13, 31, 31, 59, 205, 167, 131, 891, 1259, 6909, 211, 31517, 8085, 112065}}, +{9490, 17, 32025, {1, 1, 5, 11, 17, 25, 119, 77, 449, 569, 381, 825, 2459, 983, 2959, 51611, 90721}}, +{9491, 17, 32035, {1, 3, 1, 7, 17, 55, 91, 231, 133, 541, 499, 3609, 4237, 11627, 30007, 58911, 43443}}, +{9492, 17, 32038, {1, 3, 7, 7, 29, 5, 47, 187, 71, 695, 1389, 2855, 5815, 11605, 3643, 24961, 25793}}, +{9493, 17, 32047, {1, 3, 3, 5, 11, 31, 43, 31, 185, 1021, 795, 3585, 3981, 8627, 18117, 42351, 19513}}, +{9494, 17, 32049, {1, 1, 5, 13, 9, 3, 115, 45, 39, 577, 1847, 653, 2625, 9367, 27923, 35661, 113613}}, +{9495, 17, 32062, {1, 3, 7, 7, 17, 9, 69, 233, 367, 673, 11, 2215, 1177, 4501, 9693, 62013, 45647}}, +{9496, 17, 32067, {1, 3, 5, 7, 7, 53, 11, 227, 465, 843, 2017, 689, 6767, 10321, 25163, 56561, 6865}}, +{9497, 17, 32070, {1, 3, 3, 5, 13, 43, 119, 9, 185, 893, 133, 863, 7137, 6653, 7875, 23167, 13893}}, +{9498, 17, 32073, {1, 3, 5, 9, 1, 47, 17, 85, 273, 901, 493, 2411, 983, 15717, 25151, 21323, 57939}}, +{9499, 17, 32074, {1, 1, 7, 5, 19, 17, 49, 37, 425, 443, 781, 2593, 4929, 12313, 12727, 42285, 88451}}, +{9500, 17, 32079, {1, 3, 3, 11, 9, 53, 17, 67, 237, 463, 1509, 2153, 3715, 7909, 21151, 64517, 87695}}, +{9501, 17, 32081, {1, 3, 7, 1, 29, 39, 25, 83, 413, 1005, 2011, 3933, 2911, 7041, 10537, 23135, 22671}}, +{9502, 17, 32082, {1, 1, 3, 9, 23, 61, 117, 33, 431, 181, 1819, 683, 1809, 1723, 27041, 29113, 99347}}, +{9503, 17, 32107, {1, 1, 5, 11, 11, 7, 101, 181, 51, 857, 923, 3495, 7123, 7775, 30081, 48513, 116137}}, +{9504, 17, 32127, {1, 1, 3, 11, 15, 31, 97, 127, 365, 799, 715, 2101, 6081, 11607, 1055, 35027, 62967}}, +{9505, 17, 32145, {1, 3, 5, 7, 3, 31, 109, 247, 225, 221, 1093, 2633, 1847, 7427, 8767, 16581, 32145}}, +{9506, 17, 32151, {1, 3, 1, 7, 15, 23, 43, 109, 327, 417, 1895, 2333, 6265, 6599, 6623, 47375, 92731}}, +{9507, 17, 32152, {1, 3, 7, 1, 29, 29, 45, 217, 163, 941, 1327, 3685, 5481, 15783, 26281, 60339, 34277}}, +{9508, 17, 32173, {1, 1, 7, 11, 1, 7, 119, 201, 29, 193, 1805, 1395, 267, 2011, 637, 26765, 48883}}, +{9509, 17, 32174, {1, 1, 3, 7, 11, 63, 41, 89, 365, 729, 25, 3185, 2143, 1737, 29693, 7443, 78079}}, +{9510, 17, 32186, {1, 3, 1, 13, 25, 27, 63, 233, 79, 1007, 1357, 679, 7581, 8333, 2469, 31787, 128531}}, +{9511, 17, 32194, {1, 3, 1, 3, 23, 39, 53, 99, 219, 475, 931, 507, 3615, 10613, 14663, 1151, 123459}}, +{9512, 17, 32196, {1, 1, 1, 1, 13, 15, 67, 45, 393, 791, 415, 2731, 1151, 8935, 28983, 7239, 106247}}, +{9513, 17, 32200, {1, 3, 7, 7, 11, 35, 95, 153, 421, 193, 1997, 2587, 3183, 9229, 17663, 28221, 6759}}, +{9514, 17, 32208, {1, 3, 1, 7, 5, 5, 123, 55, 509, 973, 261, 463, 2723, 15225, 1925, 62283, 86329}}, +{9515, 17, 32218, {1, 1, 3, 13, 5, 47, 123, 239, 273, 407, 1725, 717, 1229, 1387, 11743, 13739, 104503}}, +{9516, 17, 32236, {1, 3, 3, 13, 23, 35, 43, 113, 299, 847, 1903, 3445, 3395, 641, 11271, 61517, 40747}}, +{9517, 17, 32260, {1, 3, 1, 15, 17, 49, 97, 9, 335, 731, 151, 167, 8129, 11845, 18285, 20113, 122397}}, +{9518, 17, 32263, {1, 1, 5, 11, 11, 63, 3, 153, 345, 511, 1939, 1815, 7231, 10555, 14293, 50753, 14681}}, +{9519, 17, 32288, {1, 3, 7, 5, 21, 31, 127, 223, 241, 783, 887, 3519, 4743, 3541, 4143, 57461, 27791}}, +{9520, 17, 32298, {1, 1, 5, 7, 13, 15, 83, 225, 201, 979, 145, 769, 1491, 12155, 21307, 64877, 113277}}, +{9521, 17, 32315, {1, 1, 7, 1, 27, 25, 105, 69, 239, 323, 1059, 573, 4913, 14215, 27007, 42351, 66315}}, +{9522, 17, 32332, {1, 1, 3, 11, 21, 33, 93, 23, 363, 633, 935, 637, 6171, 12695, 14077, 17505, 69681}}, +{9523, 17, 32340, {1, 3, 1, 5, 15, 11, 93, 211, 175, 377, 33, 1403, 5097, 1503, 8483, 2881, 85877}}, +{9524, 17, 32354, {1, 1, 5, 3, 5, 51, 5, 255, 429, 661, 625, 3015, 4813, 3573, 22917, 45967, 70559}}, +{9525, 17, 32359, {1, 1, 7, 3, 11, 41, 3, 197, 181, 897, 767, 1385, 7395, 15543, 4655, 40309, 73169}}, +{9526, 17, 32366, {1, 1, 5, 9, 15, 35, 71, 119, 509, 817, 1169, 75, 1337, 2959, 611, 38243, 46987}}, +{9527, 17, 32368, {1, 1, 1, 9, 1, 7, 43, 65, 479, 625, 1685, 1309, 5619, 14163, 13633, 18169, 8311}}, +{9528, 17, 32377, {1, 3, 5, 9, 19, 39, 95, 105, 273, 1023, 79, 229, 6895, 2931, 5717, 27911, 22139}}, +{9529, 17, 32384, {1, 3, 5, 7, 1, 55, 15, 15, 297, 731, 2029, 2789, 11, 1333, 26571, 62595, 15131}}, +{9530, 17, 32399, {1, 1, 5, 7, 29, 35, 3, 125, 381, 709, 2047, 2395, 6315, 2301, 7175, 19857, 75085}}, +{9531, 17, 32417, {1, 1, 5, 15, 23, 45, 95, 117, 49, 635, 1525, 1105, 7335, 4653, 18159, 29729, 62627}}, +{9532, 17, 32424, {1, 3, 3, 11, 29, 19, 29, 169, 141, 243, 1765, 1829, 4555, 16299, 3053, 58933, 44605}}, +{9533, 17, 32427, {1, 1, 3, 15, 5, 45, 35, 213, 385, 993, 1521, 9, 3561, 10497, 12601, 38163, 86501}}, +{9534, 17, 32429, {1, 3, 3, 13, 9, 23, 109, 95, 491, 1003, 473, 3325, 6577, 14617, 17765, 33391, 82927}}, +{9535, 17, 32438, {1, 3, 3, 11, 25, 31, 93, 111, 231, 71, 1233, 3581, 6789, 4569, 16741, 61967, 32249}}, +{9536, 17, 32442, {1, 3, 3, 15, 15, 63, 39, 247, 79, 923, 327, 2639, 2013, 12325, 18133, 60623, 2215}}, +{9537, 17, 32447, {1, 3, 5, 1, 5, 49, 121, 53, 283, 529, 37, 3233, 6285, 12447, 4355, 9343, 45631}}, +{9538, 17, 32469, {1, 1, 7, 11, 11, 11, 111, 139, 429, 279, 1019, 2139, 2033, 6809, 8847, 22535, 107005}}, +{9539, 17, 32479, {1, 3, 5, 1, 1, 21, 35, 97, 167, 57, 491, 511, 4065, 11699, 16851, 6847, 40929}}, +{9540, 17, 32483, {1, 3, 1, 15, 3, 55, 113, 33, 255, 537, 835, 1867, 3927, 839, 955, 29079, 93727}}, +{9541, 17, 32498, {1, 1, 7, 3, 5, 7, 35, 111, 165, 885, 115, 3051, 4541, 1701, 22827, 361, 91843}}, +{9542, 17, 32503, {1, 1, 7, 11, 7, 55, 81, 43, 237, 725, 1761, 1599, 639, 14189, 31241, 52827, 107943}}, +{9543, 17, 32507, {1, 3, 1, 3, 29, 35, 67, 119, 369, 877, 1861, 123, 8121, 13861, 31155, 60245, 79799}}, +{9544, 17, 32521, {1, 1, 3, 13, 7, 49, 63, 19, 253, 723, 639, 1677, 291, 13697, 22231, 46893, 90069}}, +{9545, 17, 32532, {1, 3, 5, 1, 7, 57, 29, 233, 35, 715, 515, 3221, 2715, 13839, 18321, 4445, 103843}}, +{9546, 17, 32539, {1, 3, 1, 7, 1, 63, 33, 7, 481, 461, 1923, 2679, 2441, 5449, 13233, 2245, 48667}}, +{9547, 17, 32551, {1, 1, 7, 11, 11, 9, 95, 151, 441, 333, 1871, 1181, 3027, 12887, 11923, 63847, 6953}}, +{9548, 17, 32572, {1, 3, 5, 5, 15, 33, 53, 47, 351, 387, 55, 393, 5475, 3027, 18565, 37997, 120877}}, +{9549, 17, 32577, {1, 3, 5, 9, 23, 43, 67, 97, 445, 783, 1499, 1977, 1441, 10159, 13479, 149, 4939}}, +{9550, 17, 32578, {1, 3, 7, 3, 15, 41, 119, 55, 139, 25, 849, 857, 53, 10421, 2683, 24839, 107797}}, +{9551, 17, 32587, {1, 1, 7, 13, 25, 51, 51, 13, 333, 93, 95, 1755, 3055, 12585, 3519, 44857, 11257}}, +{9552, 17, 32592, {1, 1, 5, 11, 29, 55, 13, 235, 419, 327, 823, 2675, 8031, 9303, 8749, 20215, 12111}}, +{9553, 17, 32602, {1, 1, 3, 5, 7, 31, 103, 19, 467, 255, 583, 419, 2845, 12179, 63, 51693, 9755}}, +{9554, 17, 32604, {1, 1, 1, 13, 15, 29, 109, 81, 381, 659, 601, 3867, 7663, 7307, 16445, 56327, 48559}}, +{9555, 17, 32613, {1, 3, 3, 15, 31, 35, 29, 153, 423, 247, 55, 3259, 6199, 4199, 13931, 14433, 52645}}, +{9556, 17, 32625, {1, 1, 5, 11, 9, 17, 17, 191, 231, 977, 721, 2817, 2485, 4965, 32341, 55131, 4547}}, +{9557, 17, 32631, {1, 1, 7, 7, 7, 7, 89, 69, 299, 503, 597, 311, 1321, 2335, 30193, 45347, 126631}}, +{9558, 17, 32641, {1, 1, 7, 11, 13, 43, 105, 153, 89, 229, 1573, 1549, 3699, 15981, 28911, 45011, 83759}}, +{9559, 17, 32642, {1, 3, 7, 3, 1, 3, 121, 137, 263, 325, 1449, 3793, 5795, 7715, 7449, 26453, 85081}}, +{9560, 17, 32644, {1, 3, 1, 7, 23, 15, 39, 217, 99, 873, 1641, 1411, 4627, 283, 20707, 41795, 62239}}, +{9561, 17, 32656, {1, 3, 5, 9, 15, 15, 35, 255, 501, 945, 79, 799, 2361, 4495, 27825, 27699, 129335}}, +{9562, 17, 32678, {1, 3, 1, 7, 9, 19, 89, 31, 65, 905, 1475, 1353, 7253, 12825, 20723, 47757, 12007}}, +{9563, 17, 32681, {1, 1, 3, 3, 15, 35, 83, 239, 463, 835, 1249, 2521, 3429, 14073, 13569, 6161, 71309}}, +{9564, 17, 32701, {1, 1, 7, 11, 31, 43, 15, 57, 461, 917, 339, 3787, 2925, 1879, 7217, 17091, 108819}}, +{9565, 17, 32713, {1, 3, 7, 3, 17, 51, 29, 105, 221, 941, 1291, 835, 1563, 15623, 2953, 62985, 63037}}, +{9566, 17, 32721, {1, 1, 7, 3, 1, 39, 83, 41, 399, 465, 587, 2011, 137, 6017, 5067, 52389, 71053}}, +{9567, 17, 32727, {1, 1, 7, 11, 17, 55, 103, 239, 173, 181, 1219, 2671, 5183, 3799, 19589, 31247, 68889}}, +{9568, 17, 32731, {1, 1, 3, 3, 21, 43, 123, 253, 281, 627, 353, 3077, 1685, 12143, 19723, 57775, 70761}}, +{9569, 17, 32734, {1, 1, 7, 15, 31, 13, 101, 159, 311, 305, 1783, 3523, 149, 9269, 7103, 40315, 30569}}, +{9570, 17, 32740, {1, 1, 5, 3, 29, 47, 11, 219, 301, 207, 1361, 563, 7831, 14469, 18983, 54535, 64647}}, +{9571, 17, 32773, {1, 1, 3, 15, 11, 37, 85, 237, 225, 1009, 1065, 985, 6849, 5395, 22853, 43965, 51363}}, +{9572, 17, 32774, {1, 3, 3, 1, 11, 61, 45, 131, 201, 609, 757, 2539, 3817, 9309, 24759, 26789, 41437}}, +{9573, 17, 32785, {1, 1, 7, 3, 21, 5, 19, 137, 75, 573, 583, 2499, 41, 3429, 24273, 36711, 110015}}, +{9574, 17, 32788, {1, 3, 7, 9, 1, 51, 39, 75, 115, 269, 1983, 2709, 6989, 6521, 5551, 43675, 1019}}, +{9575, 17, 32792, {1, 1, 3, 9, 27, 1, 125, 7, 67, 821, 275, 1253, 4635, 3557, 4155, 13831, 1523}}, +{9576, 17, 32797, {1, 1, 5, 15, 23, 15, 79, 43, 275, 791, 1867, 2495, 2933, 2167, 22819, 52913, 88871}}, +{9577, 17, 32801, {1, 1, 1, 5, 31, 59, 27, 153, 159, 919, 219, 3373, 3227, 6321, 27559, 33905, 126145}}, +{9578, 17, 32811, {1, 3, 3, 13, 23, 21, 119, 175, 119, 741, 1745, 3985, 3847, 5163, 13699, 32373, 75201}}, +{9579, 17, 32821, {1, 3, 7, 15, 1, 47, 101, 89, 425, 269, 713, 3587, 3373, 13315, 16481, 40031, 50353}}, +{9580, 17, 32828, {1, 3, 7, 3, 19, 29, 5, 69, 385, 979, 1893, 1849, 8007, 14415, 18343, 60555, 109117}}, +{9581, 17, 32839, {1, 1, 3, 13, 5, 35, 111, 239, 489, 395, 1565, 1607, 543, 89, 8971, 22311, 899}}, +{9582, 17, 32854, {1, 1, 7, 7, 11, 51, 105, 211, 341, 85, 991, 1275, 3995, 12611, 2363, 29501, 44217}}, +{9583, 17, 32867, {1, 1, 5, 13, 9, 17, 93, 69, 145, 917, 469, 1109, 7405, 12903, 8341, 50383, 20133}}, +{9584, 17, 32870, {1, 3, 1, 7, 27, 45, 45, 85, 101, 161, 1117, 2757, 7847, 359, 17155, 27073, 123535}}, +{9585, 17, 32873, {1, 3, 1, 3, 9, 11, 67, 205, 109, 257, 1635, 141, 3969, 11571, 211, 48683, 108671}}, +{9586, 17, 32881, {1, 1, 3, 7, 13, 9, 29, 251, 113, 851, 1549, 981, 5553, 6095, 28885, 32953, 112563}}, +{9587, 17, 32891, {1, 1, 5, 7, 11, 5, 13, 83, 343, 499, 587, 3887, 3859, 11459, 7361, 25665, 86151}}, +{9588, 17, 32900, {1, 1, 5, 1, 13, 43, 3, 37, 273, 749, 1707, 2069, 3083, 1095, 3081, 23919, 21939}}, +{9589, 17, 32903, {1, 3, 5, 13, 13, 49, 115, 99, 357, 95, 699, 2615, 1911, 12675, 8607, 12535, 118651}}, +{9590, 17, 32910, {1, 1, 7, 7, 29, 43, 17, 131, 271, 895, 1427, 3659, 1843, 8247, 1175, 48239, 54435}}, +{9591, 17, 32917, {1, 1, 1, 9, 1, 27, 85, 163, 353, 669, 745, 317, 2505, 7685, 14831, 31131, 106687}}, +{9592, 17, 32922, {1, 1, 7, 9, 1, 23, 121, 53, 289, 651, 303, 3049, 6819, 6733, 17485, 20023, 110009}}, +{9593, 17, 32928, {1, 3, 7, 3, 5, 47, 93, 75, 363, 479, 825, 1801, 6807, 3341, 6419, 9889, 5557}}, +{9594, 17, 32945, {1, 1, 3, 15, 23, 5, 7, 25, 73, 811, 1597, 2041, 6707, 6817, 20427, 50749, 46255}}, +{9595, 17, 32946, {1, 3, 7, 9, 1, 11, 61, 63, 435, 977, 1937, 93, 2685, 643, 20113, 25873, 63829}}, +{9596, 17, 32951, {1, 1, 3, 15, 5, 41, 31, 53, 143, 271, 27, 3899, 5045, 1063, 17229, 52715, 67689}}, +{9597, 17, 32958, {1, 1, 3, 11, 1, 57, 121, 13, 291, 861, 1547, 3899, 7949, 15401, 29807, 52307, 104359}}, +{9598, 17, 32965, {1, 3, 5, 15, 23, 3, 95, 43, 377, 437, 1687, 3075, 5131, 11791, 3637, 12621, 105575}}, +{9599, 17, 32978, {1, 3, 1, 3, 27, 1, 117, 11, 153, 401, 1971, 2097, 3227, 14603, 4757, 56281, 112263}}, +{9600, 17, 32980, {1, 3, 3, 5, 13, 25, 51, 209, 367, 327, 1941, 1943, 1347, 14393, 31997, 16001, 129047}}, +{9601, 17, 32983, {1, 1, 5, 11, 19, 51, 109, 229, 71, 923, 1741, 1193, 4657, 6043, 26703, 17757, 75009}}, +{9602, 17, 32987, {1, 1, 7, 3, 23, 3, 125, 165, 137, 999, 1583, 3493, 859, 15603, 7143, 28791, 28201}}, +{9603, 17, 33023, {1, 1, 5, 11, 29, 57, 65, 41, 295, 729, 635, 1871, 6347, 3509, 59, 40765, 42673}}, +{9604, 17, 33031, {1, 3, 3, 3, 15, 59, 53, 97, 15, 131, 891, 1105, 841, 6065, 14427, 4721, 106433}}, +{9605, 17, 33032, {1, 1, 1, 7, 19, 37, 101, 121, 141, 613, 1363, 691, 1731, 12477, 8339, 55669, 99379}}, +{9606, 17, 33035, {1, 3, 5, 13, 17, 49, 75, 25, 447, 113, 1853, 3465, 5225, 4531, 14287, 1039, 17399}}, +{9607, 17, 33038, {1, 3, 5, 3, 3, 49, 101, 79, 117, 939, 1161, 1991, 2343, 7183, 12599, 52877, 94337}}, +{9608, 17, 33040, {1, 3, 1, 1, 19, 47, 73, 195, 475, 435, 1807, 2723, 7885, 15469, 26057, 37325, 57005}}, +{9609, 17, 33043, {1, 1, 1, 11, 17, 7, 111, 143, 357, 977, 719, 553, 4559, 7225, 10405, 26895, 8385}}, +{9610, 17, 33050, {1, 3, 3, 9, 17, 5, 1, 73, 125, 913, 1275, 2387, 5153, 13611, 20585, 8465, 27545}}, +{9611, 17, 33059, {1, 1, 7, 5, 27, 51, 107, 147, 503, 699, 851, 1729, 2875, 16331, 28025, 26451, 92705}}, +{9612, 17, 33080, {1, 1, 5, 9, 3, 37, 21, 139, 13, 427, 225, 1345, 2491, 15495, 25847, 3095, 128879}}, +{9613, 17, 33098, {1, 1, 3, 11, 7, 47, 113, 133, 99, 871, 1151, 1953, 7931, 6389, 28715, 36861, 60017}}, +{9614, 17, 33108, {1, 1, 7, 1, 21, 47, 35, 83, 137, 945, 2047, 3491, 3719, 3001, 20563, 51243, 14491}}, +{9615, 17, 33115, {1, 1, 5, 15, 1, 13, 85, 61, 479, 853, 813, 805, 4931, 12651, 22757, 29531, 92861}}, +{9616, 17, 33117, {1, 3, 7, 7, 27, 63, 31, 169, 43, 185, 637, 729, 7231, 2381, 23539, 53885, 90215}}, +{9617, 17, 33133, {1, 1, 3, 13, 5, 51, 69, 111, 357, 277, 1889, 3809, 8031, 13341, 14261, 34001, 63317}}, +{9618, 17, 33134, {1, 1, 7, 3, 11, 59, 1, 43, 227, 503, 1407, 3917, 7077, 847, 4513, 53007, 66721}}, +{9619, 17, 33157, {1, 1, 5, 11, 15, 25, 109, 169, 25, 391, 597, 2997, 2377, 9045, 15239, 25291, 5451}}, +{9620, 17, 33169, {1, 3, 3, 11, 15, 11, 1, 59, 347, 707, 239, 2473, 8057, 4787, 32247, 17955, 79151}}, +{9621, 17, 33170, {1, 3, 7, 11, 9, 59, 9, 117, 137, 713, 451, 1105, 4485, 14979, 26271, 46017, 89211}}, +{9622, 17, 33176, {1, 3, 3, 3, 3, 19, 95, 131, 413, 291, 1179, 3265, 7107, 10419, 13527, 19905, 8059}}, +{9623, 17, 33182, {1, 3, 7, 9, 29, 43, 19, 243, 443, 27, 1401, 3469, 6925, 2833, 19715, 39667, 11983}}, +{9624, 17, 33192, {1, 3, 3, 7, 23, 33, 115, 59, 29, 61, 1085, 1115, 4007, 12673, 26479, 22397, 95609}}, +{9625, 17, 33205, {1, 3, 3, 5, 1, 47, 43, 83, 21, 621, 59, 1, 891, 12285, 31855, 48641, 52479}}, +{9626, 17, 33212, {1, 3, 3, 5, 3, 9, 17, 181, 15, 315, 1705, 2461, 1853, 14007, 17665, 40593, 126179}}, +{9627, 17, 33215, {1, 3, 5, 3, 3, 23, 83, 163, 29, 293, 1891, 2631, 2989, 7295, 2441, 21689, 8187}}, +{9628, 17, 33217, {1, 3, 1, 1, 1, 23, 53, 215, 185, 843, 1083, 2603, 3857, 4981, 25079, 20249, 93717}}, +{9629, 17, 33227, {1, 3, 5, 11, 7, 61, 127, 13, 449, 395, 1909, 3967, 2441, 3073, 8159, 33979, 26345}}, +{9630, 17, 33229, {1, 1, 5, 1, 15, 5, 93, 87, 319, 173, 1729, 1395, 1019, 5139, 10819, 29877, 81025}}, +{9631, 17, 33238, {1, 3, 3, 7, 17, 55, 61, 227, 299, 245, 849, 211, 895, 2999, 18215, 37069, 32821}}, +{9632, 17, 33241, {1, 1, 5, 3, 17, 49, 115, 55, 447, 533, 1463, 2983, 3245, 9345, 11955, 49145, 128035}}, +{9633, 17, 33260, {1, 3, 1, 7, 5, 17, 61, 71, 101, 529, 1761, 827, 7887, 5713, 31039, 18087, 82277}}, +{9634, 17, 33271, {1, 3, 1, 11, 27, 59, 1, 231, 303, 431, 1279, 3647, 1333, 3675, 29401, 55533, 65997}}, +{9635, 17, 33278, {1, 1, 5, 9, 7, 9, 111, 245, 269, 919, 1147, 1601, 6219, 4931, 3035, 12231, 4011}}, +{9636, 17, 33293, {1, 3, 5, 15, 3, 19, 83, 25, 129, 979, 79, 3027, 3983, 7703, 16859, 12085, 83115}}, +{9637, 17, 33294, {1, 1, 5, 11, 31, 41, 99, 3, 383, 943, 1579, 2435, 1209, 161, 31733, 11755, 95697}}, +{9638, 17, 33296, {1, 1, 1, 9, 9, 55, 115, 187, 499, 165, 1081, 813, 2545, 8065, 10501, 15475, 85107}}, +{9639, 17, 33302, {1, 1, 1, 3, 1, 31, 81, 213, 301, 575, 605, 543, 3347, 12759, 21645, 37173, 36127}}, +{9640, 17, 33305, {1, 3, 3, 9, 21, 29, 51, 91, 307, 617, 1839, 443, 1013, 4473, 3885, 57669, 123271}}, +{9641, 17, 33329, {1, 3, 1, 15, 31, 43, 83, 187, 51, 513, 1505, 3895, 3557, 9527, 27537, 6173, 99595}}, +{9642, 17, 33330, {1, 3, 3, 1, 3, 53, 113, 27, 431, 505, 219, 2143, 6691, 3219, 9589, 9885, 24037}}, +{9643, 17, 33332, {1, 1, 5, 9, 13, 3, 53, 145, 49, 411, 691, 289, 6443, 4963, 13815, 23663, 95497}}, +{9644, 17, 33354, {1, 3, 5, 9, 19, 7, 53, 101, 199, 69, 1821, 3233, 3267, 5947, 4869, 30095, 21255}}, +{9645, 17, 33383, {1, 1, 5, 11, 29, 7, 79, 11, 451, 585, 987, 2333, 1891, 1853, 14739, 34399, 62895}}, +{9646, 17, 33387, {1, 3, 1, 7, 29, 43, 103, 219, 139, 359, 1663, 3453, 7469, 1943, 11457, 19227, 62211}}, +{9647, 17, 33397, {1, 3, 3, 11, 9, 47, 17, 237, 87, 881, 583, 3473, 2579, 975, 1531, 50997, 76219}}, +{9648, 17, 33408, {1, 1, 7, 15, 31, 37, 79, 115, 95, 515, 2003, 2595, 4077, 4537, 9171, 31183, 41219}}, +{9649, 17, 33417, {1, 1, 1, 9, 21, 41, 93, 33, 211, 341, 233, 2217, 6657, 12913, 8329, 3881, 42563}}, +{9650, 17, 33420, {1, 3, 3, 11, 25, 3, 23, 197, 49, 339, 877, 1117, 7817, 14143, 1575, 50301, 92367}}, +{9651, 17, 33423, {1, 3, 5, 5, 19, 45, 69, 179, 447, 861, 1633, 1941, 5821, 1843, 4085, 23501, 109047}}, +{9652, 17, 33431, {1, 3, 1, 3, 31, 29, 49, 183, 311, 133, 345, 1541, 111, 5571, 1943, 11039, 127673}}, +{9653, 17, 33438, {1, 3, 1, 5, 3, 13, 63, 5, 59, 789, 71, 3271, 3871, 9105, 22525, 31, 117803}}, +{9654, 17, 33442, {1, 3, 1, 13, 31, 43, 97, 133, 313, 729, 287, 2971, 5623, 13183, 15179, 47271, 28853}}, +{9655, 17, 33444, {1, 1, 3, 13, 27, 15, 35, 37, 507, 139, 1933, 2847, 361, 10261, 21031, 3889, 56875}}, +{9656, 17, 33448, {1, 3, 1, 15, 31, 13, 45, 73, 279, 331, 471, 3881, 3295, 12035, 28329, 899, 47397}}, +{9657, 17, 33456, {1, 1, 3, 13, 1, 7, 81, 255, 315, 595, 43, 3919, 5229, 7953, 25711, 19509, 107181}}, +{9658, 17, 33459, {1, 1, 3, 15, 7, 33, 117, 169, 71, 577, 629, 3665, 7761, 13529, 26375, 17181, 22125}}, +{9659, 17, 33466, {1, 3, 5, 7, 5, 7, 1, 93, 489, 289, 329, 2273, 685, 14835, 11433, 26041, 112735}}, +{9660, 17, 33473, {1, 3, 3, 3, 9, 39, 45, 23, 171, 35, 571, 551, 7815, 6169, 24283, 61477, 71877}}, +{9661, 17, 33476, {1, 1, 5, 7, 23, 15, 81, 215, 297, 269, 655, 2059, 3643, 12741, 11955, 41085, 46047}}, +{9662, 17, 33491, {1, 1, 7, 5, 3, 35, 125, 141, 419, 137, 1031, 2053, 7925, 7267, 6267, 34323, 77495}}, +{9663, 17, 33494, {1, 1, 7, 11, 3, 57, 91, 43, 139, 691, 1569, 1825, 7855, 1093, 19263, 31601, 16019}}, +{9664, 17, 33507, {1, 3, 1, 5, 21, 7, 11, 225, 105, 757, 1493, 455, 4757, 12007, 5139, 3545, 79717}}, +{9665, 17, 33514, {1, 3, 1, 13, 17, 29, 125, 249, 475, 79, 1271, 341, 863, 853, 2105, 32897, 121261}}, +{9666, 17, 33521, {1, 3, 1, 11, 17, 59, 3, 29, 61, 399, 1465, 4029, 2103, 12481, 28495, 34363, 63781}}, +{9667, 17, 33528, {1, 3, 3, 15, 29, 13, 101, 191, 435, 215, 1355, 2263, 6059, 4545, 7535, 15041, 84091}}, +{9668, 17, 33534, {1, 1, 3, 9, 29, 23, 99, 55, 91, 145, 235, 2847, 725, 209, 24565, 16545, 103669}}, +{9669, 17, 33536, {1, 1, 1, 1, 31, 15, 93, 197, 207, 357, 667, 3511, 3865, 5329, 6491, 9027, 125979}}, +{9670, 17, 33551, {1, 3, 3, 13, 17, 35, 99, 187, 153, 589, 1633, 4053, 1023, 9541, 9841, 39585, 24885}}, +{9671, 17, 33554, {1, 3, 7, 11, 23, 5, 71, 89, 455, 665, 1221, 1821, 591, 11459, 503, 56777, 65691}}, +{9672, 17, 33563, {1, 3, 1, 1, 9, 33, 51, 203, 223, 709, 1263, 3535, 7753, 8279, 8673, 60259, 2671}}, +{9673, 17, 33575, {1, 1, 7, 9, 17, 63, 5, 229, 495, 435, 1711, 3359, 399, 15901, 28519, 56627, 8079}}, +{9674, 17, 33579, {1, 3, 5, 11, 9, 25, 49, 143, 275, 989, 461, 447, 1917, 9253, 28421, 1803, 119725}}, +{9675, 17, 33582, {1, 3, 3, 7, 25, 3, 39, 171, 303, 905, 1353, 2561, 7347, 7339, 15271, 61945, 26343}}, +{9676, 17, 33601, {1, 1, 1, 3, 5, 63, 9, 229, 107, 815, 1705, 3621, 2345, 3065, 16315, 17017, 33667}}, +{9677, 17, 33602, {1, 3, 5, 13, 29, 13, 91, 111, 475, 561, 443, 3825, 5331, 11211, 27639, 28305, 101831}}, +{9678, 17, 33614, {1, 3, 1, 9, 15, 33, 17, 47, 249, 89, 429, 3819, 1959, 14317, 10737, 28151, 40395}}, +{9679, 17, 33625, {1, 3, 7, 13, 19, 29, 83, 81, 511, 783, 823, 2865, 5823, 9459, 27413, 63297, 44181}}, +{9680, 17, 33628, {1, 3, 1, 1, 19, 53, 45, 227, 193, 631, 289, 1227, 6241, 6915, 16051, 31237, 50201}}, +{9681, 17, 33637, {1, 3, 7, 7, 15, 49, 77, 147, 421, 515, 927, 1561, 4391, 12943, 6807, 36889, 70249}}, +{9682, 17, 33656, {1, 3, 7, 7, 17, 15, 63, 123, 101, 283, 59, 977, 5185, 16161, 5007, 36255, 11537}}, +{9683, 17, 33665, {1, 1, 7, 1, 13, 17, 79, 35, 193, 947, 767, 1365, 2145, 13267, 30561, 51949, 37591}}, +{9684, 17, 33683, {1, 1, 1, 13, 11, 13, 91, 129, 355, 549, 295, 673, 209, 15953, 14703, 30857, 47967}}, +{9685, 17, 33695, {1, 3, 5, 9, 17, 17, 83, 161, 189, 585, 21, 1019, 4879, 15943, 17281, 46013, 94839}}, +{9686, 17, 33696, {1, 3, 5, 9, 23, 39, 65, 25, 181, 3, 2005, 635, 201, 9391, 8755, 38535, 88697}}, +{9687, 17, 33702, {1, 3, 1, 15, 13, 35, 47, 125, 429, 901, 895, 3495, 327, 397, 7847, 62157, 3489}}, +{9688, 17, 33708, {1, 3, 5, 3, 19, 21, 81, 39, 85, 169, 1981, 3323, 113, 2057, 16617, 58051, 55059}}, +{9689, 17, 33711, {1, 3, 1, 13, 9, 1, 101, 81, 129, 717, 1495, 4077, 5555, 93, 12957, 14805, 110219}}, +{9690, 17, 33716, {1, 3, 5, 5, 5, 47, 107, 111, 387, 987, 2009, 179, 1111, 3443, 25579, 12293, 123035}}, +{9691, 17, 33728, {1, 1, 7, 13, 21, 25, 33, 211, 9, 783, 1785, 2691, 6835, 2867, 22469, 17853, 90685}}, +{9692, 17, 33737, {1, 1, 3, 3, 19, 57, 59, 203, 197, 347, 553, 1361, 7593, 91, 15303, 30045, 86605}}, +{9693, 17, 33761, {1, 3, 5, 7, 29, 23, 1, 235, 159, 277, 1227, 1727, 1853, 9717, 2377, 13597, 18119}}, +{9694, 17, 33774, {1, 1, 1, 11, 15, 29, 5, 15, 349, 685, 197, 3127, 1075, 8847, 27873, 539, 57149}}, +{9695, 17, 33782, {1, 1, 7, 9, 23, 25, 121, 239, 219, 747, 1981, 2683, 5319, 75, 22569, 29697, 27627}}, +{9696, 17, 33788, {1, 3, 7, 5, 31, 43, 95, 131, 423, 547, 1437, 127, 1953, 861, 839, 54503, 20465}}, +{9697, 17, 33791, {1, 1, 5, 3, 29, 29, 71, 237, 275, 493, 513, 4067, 393, 9415, 20511, 29257, 86267}}, +{9698, 17, 33793, {1, 1, 1, 1, 25, 11, 59, 185, 211, 175, 37, 2999, 4919, 10225, 16727, 60447, 59985}}, +{9699, 17, 33811, {1, 1, 3, 3, 1, 9, 69, 195, 197, 677, 229, 599, 5613, 4537, 5495, 58801, 14297}}, +{9700, 17, 33813, {1, 3, 1, 15, 17, 23, 5, 101, 331, 943, 1433, 2199, 313, 469, 3651, 3281, 100119}}, +{9701, 17, 33818, {1, 1, 5, 15, 13, 25, 87, 45, 229, 821, 59, 761, 6259, 15159, 3197, 39763, 87301}}, +{9702, 17, 33829, {1, 3, 5, 7, 19, 21, 89, 15, 19, 623, 603, 4069, 3531, 13353, 21267, 6355, 53821}}, +{9703, 17, 33842, {1, 1, 5, 9, 13, 13, 111, 77, 439, 599, 1577, 959, 4567, 3117, 7127, 49265, 35667}}, +{9704, 17, 33854, {1, 3, 7, 9, 27, 61, 1, 19, 43, 475, 221, 655, 4351, 15827, 30489, 22245, 41077}}, +{9705, 17, 33856, {1, 1, 3, 13, 17, 17, 111, 85, 253, 11, 367, 2349, 4103, 12517, 27037, 42481, 84451}}, +{9706, 17, 33868, {1, 3, 5, 7, 7, 25, 53, 27, 429, 503, 893, 2923, 2539, 15849, 30157, 12111, 108893}}, +{9707, 17, 33879, {1, 1, 7, 9, 13, 29, 51, 113, 273, 745, 759, 263, 3031, 705, 23203, 64245, 127183}}, +{9708, 17, 33885, {1, 1, 1, 9, 29, 5, 25, 165, 261, 319, 645, 2199, 3135, 10263, 10711, 18713, 63337}}, +{9709, 17, 33886, {1, 1, 5, 1, 23, 41, 43, 71, 365, 683, 1107, 1671, 7079, 8933, 12815, 8095, 97955}}, +{9710, 17, 33892, {1, 3, 1, 15, 9, 43, 105, 217, 131, 299, 1459, 1087, 3493, 15297, 11741, 43383, 35021}}, +{9711, 17, 33907, {1, 3, 1, 3, 3, 57, 69, 7, 73, 977, 1163, 3591, 243, 13129, 23247, 20609, 22489}}, +{9712, 17, 33913, {1, 3, 7, 5, 1, 57, 65, 27, 121, 575, 903, 3527, 5601, 5597, 1941, 60079, 88121}}, +{9713, 17, 33923, {1, 3, 1, 3, 15, 3, 23, 87, 233, 389, 1671, 1557, 4825, 1017, 17697, 26735, 53421}}, +{9714, 17, 33925, {1, 3, 5, 3, 5, 43, 61, 249, 273, 251, 1383, 2415, 1061, 12363, 3071, 23785, 127909}}, +{9715, 17, 33935, {1, 3, 3, 13, 5, 63, 15, 165, 353, 603, 1627, 2037, 487, 11603, 719, 54693, 52645}}, +{9716, 17, 33937, {1, 3, 5, 11, 31, 41, 41, 83, 481, 251, 1903, 2655, 5237, 6073, 20201, 14069, 91649}}, +{9717, 17, 33954, {1, 3, 1, 15, 21, 41, 99, 61, 55, 63, 1595, 1805, 7625, 12261, 23275, 43471, 5147}}, +{9718, 17, 33963, {1, 3, 1, 5, 23, 21, 71, 169, 197, 51, 1653, 3053, 4663, 293, 12751, 15641, 83993}}, +{9719, 17, 33966, {1, 3, 5, 15, 29, 45, 55, 199, 275, 103, 1093, 3569, 5997, 9445, 2291, 30973, 68589}}, +{9720, 17, 33977, {1, 3, 5, 7, 15, 3, 15, 3, 287, 961, 1759, 1153, 7613, 9885, 8981, 5109, 112865}}, +{9721, 17, 33978, {1, 1, 1, 9, 1, 37, 111, 61, 309, 581, 875, 2121, 1035, 4345, 1351, 59743, 34955}}, +{9722, 17, 33991, {1, 3, 7, 7, 11, 23, 51, 235, 23, 697, 991, 1995, 3615, 6665, 15885, 18555, 11711}}, +{9723, 17, 33998, {1, 3, 7, 13, 3, 59, 87, 129, 405, 689, 1189, 2071, 877, 12347, 18381, 28367, 27247}}, +{9724, 17, 34012, {1, 1, 1, 9, 23, 29, 113, 71, 479, 421, 215, 1029, 6125, 13575, 10823, 45303, 3153}}, +{9725, 17, 34016, {1, 1, 3, 11, 13, 5, 31, 29, 279, 597, 791, 319, 1391, 14487, 3811, 36913, 11513}}, +{9726, 17, 34025, {1, 3, 7, 11, 9, 11, 55, 167, 69, 519, 1887, 145, 6133, 1307, 14465, 17419, 18319}}, +{9727, 17, 34033, {1, 1, 3, 1, 29, 25, 57, 75, 19, 187, 1591, 421, 959, 7499, 8377, 42811, 53423}}, +{9728, 17, 34036, {1, 3, 1, 3, 7, 9, 73, 217, 383, 755, 1561, 3923, 3891, 16129, 13195, 62097, 67493}}, +{9729, 17, 34045, {1, 3, 7, 9, 5, 7, 47, 29, 319, 243, 405, 2867, 5803, 2273, 4913, 54777, 88301}}, +{9730, 17, 34065, {1, 3, 7, 1, 25, 11, 51, 183, 387, 863, 39, 2119, 2395, 10175, 20833, 3235, 108197}}, +{9731, 17, 34078, {1, 1, 7, 13, 25, 43, 21, 67, 103, 709, 603, 1045, 7079, 8867, 29039, 61499, 39533}}, +{9732, 17, 34093, {1, 1, 7, 5, 7, 55, 77, 115, 409, 287, 1149, 1535, 7459, 5525, 27129, 43659, 86953}}, +{9733, 17, 34101, {1, 3, 5, 3, 21, 41, 47, 147, 267, 473, 1501, 2663, 5381, 41, 18265, 53845, 16039}}, +{9734, 17, 34108, {1, 1, 7, 15, 27, 63, 95, 103, 169, 1, 133, 3103, 7539, 5765, 11453, 4133, 95133}}, +{9735, 17, 34111, {1, 3, 3, 15, 3, 53, 121, 135, 385, 475, 889, 2557, 4937, 11129, 18461, 16757, 30339}}, +{9736, 17, 34120, {1, 3, 1, 13, 11, 39, 111, 13, 475, 201, 1973, 2151, 6973, 4083, 12593, 44093, 108037}}, +{9737, 17, 34123, {1, 3, 7, 9, 31, 31, 97, 235, 179, 689, 403, 1995, 7697, 7511, 29333, 11005, 50723}}, +{9738, 17, 34125, {1, 1, 7, 13, 23, 5, 7, 171, 441, 921, 1455, 3865, 7089, 5469, 10423, 53013, 80559}}, +{9739, 17, 34153, {1, 3, 5, 3, 25, 43, 105, 157, 507, 143, 297, 1111, 2761, 14103, 4965, 36733, 11741}}, +{9740, 17, 34171, {1, 3, 7, 9, 29, 61, 49, 239, 271, 697, 211, 1633, 2991, 14933, 12347, 44291, 12219}}, +{9741, 17, 34174, {1, 1, 7, 7, 17, 61, 29, 43, 87, 633, 937, 1931, 3541, 12259, 23045, 5923, 48479}}, +{9742, 17, 34178, {1, 3, 3, 3, 15, 25, 105, 17, 159, 863, 1377, 331, 1475, 10573, 28947, 8141, 26671}}, +{9743, 17, 34183, {1, 1, 7, 7, 31, 59, 81, 23, 467, 241, 1257, 1337, 7731, 9071, 3417, 51191, 78369}}, +{9744, 17, 34190, {1, 1, 5, 9, 11, 45, 49, 227, 319, 63, 1339, 885, 4571, 11649, 5607, 10509, 55055}}, +{9745, 17, 34201, {1, 3, 3, 9, 29, 17, 7, 235, 191, 927, 575, 1115, 4111, 14179, 2041, 13331, 29825}}, +{9746, 17, 34211, {1, 1, 5, 9, 27, 61, 71, 201, 341, 577, 221, 1371, 1135, 4347, 24211, 36171, 23435}}, +{9747, 17, 34220, {1, 3, 3, 1, 1, 29, 75, 121, 193, 647, 1429, 275, 5243, 783, 28533, 13941, 68035}}, +{9748, 17, 34225, {1, 3, 5, 15, 21, 27, 117, 183, 251, 991, 935, 3119, 5133, 2765, 7423, 28867, 120565}}, +{9749, 17, 34237, {1, 3, 5, 5, 13, 23, 29, 101, 299, 699, 1249, 1225, 1335, 6079, 17825, 60467, 87787}}, +{9750, 17, 34249, {1, 1, 1, 9, 15, 19, 11, 163, 433, 553, 1487, 813, 3293, 1195, 895, 28431, 62905}}, +{9751, 17, 34250, {1, 1, 1, 13, 25, 37, 111, 129, 391, 813, 1061, 4065, 7339, 10731, 23799, 41463, 99673}}, +{9752, 17, 34264, {1, 1, 7, 15, 3, 21, 45, 77, 471, 155, 967, 711, 4947, 13983, 27827, 28653, 117839}}, +{9753, 17, 34269, {1, 1, 5, 9, 13, 39, 107, 237, 233, 881, 297, 2189, 8085, 1221, 18659, 299, 90951}}, +{9754, 17, 34276, {1, 1, 1, 13, 21, 53, 83, 17, 487, 215, 1203, 3017, 7887, 3759, 10521, 31223, 87917}}, +{9755, 17, 34279, {1, 1, 7, 1, 13, 31, 123, 219, 127, 743, 1325, 3907, 129, 8901, 4855, 22509, 47331}}, +{9756, 17, 34293, {1, 1, 7, 11, 29, 37, 11, 157, 401, 35, 2037, 2873, 7409, 7837, 1247, 33911, 3979}}, +{9757, 17, 34303, {1, 1, 5, 15, 1, 13, 35, 253, 287, 1007, 1417, 1613, 6019, 11617, 6323, 56263, 45073}}, +{9758, 17, 34310, {1, 3, 1, 15, 1, 59, 41, 239, 373, 443, 897, 275, 5783, 8619, 18559, 16279, 92063}}, +{9759, 17, 34340, {1, 3, 1, 9, 23, 33, 83, 43, 231, 819, 1657, 1031, 5507, 12621, 8961, 23059, 63453}}, +{9760, 17, 34349, {1, 1, 7, 5, 29, 49, 21, 251, 267, 43, 729, 4013, 1497, 15489, 16761, 49689, 122755}}, +{9761, 17, 34352, {1, 3, 7, 1, 31, 21, 11, 149, 127, 711, 1249, 49, 5503, 677, 12313, 61301, 16279}}, +{9762, 17, 34355, {1, 1, 5, 11, 9, 15, 41, 61, 81, 991, 1387, 3567, 221, 15835, 8609, 28265, 98199}}, +{9763, 17, 34358, {1, 3, 1, 7, 21, 35, 13, 59, 173, 637, 107, 393, 4551, 6523, 27389, 33129, 45579}}, +{9764, 17, 34362, {1, 1, 1, 9, 29, 51, 65, 199, 417, 553, 1321, 2513, 4749, 8477, 19721, 24301, 16301}}, +{9765, 17, 34376, {1, 3, 5, 1, 25, 13, 7, 55, 163, 581, 1677, 2313, 6843, 15697, 3055, 53171, 59899}}, +{9766, 17, 34381, {1, 3, 1, 5, 31, 13, 101, 195, 235, 359, 911, 1017, 2575, 12801, 997, 7819, 73243}}, +{9767, 17, 34387, {1, 1, 7, 1, 9, 39, 59, 83, 57, 885, 317, 2689, 5741, 11833, 25563, 62581, 62239}}, +{9768, 17, 34389, {1, 1, 5, 15, 25, 25, 55, 207, 223, 907, 913, 387, 5599, 15567, 8859, 13703, 66071}}, +{9769, 17, 34394, {1, 1, 5, 15, 19, 39, 83, 177, 333, 531, 1257, 2687, 7793, 15967, 19175, 1381, 106629}}, +{9770, 17, 34410, {1, 3, 5, 13, 29, 29, 77, 1, 273, 483, 725, 3825, 5115, 4043, 11571, 8693, 49761}}, +{9771, 17, 34423, {1, 1, 7, 3, 5, 45, 37, 65, 267, 191, 301, 2863, 167, 9303, 14563, 41553, 119561}}, +{9772, 17, 34434, {1, 1, 7, 5, 21, 41, 107, 213, 267, 427, 699, 1485, 2125, 16011, 29243, 4691, 50545}}, +{9773, 17, 34436, {1, 3, 3, 9, 15, 29, 81, 53, 289, 689, 933, 2667, 5175, 10409, 28221, 56375, 49109}}, +{9774, 17, 34448, {1, 1, 1, 15, 3, 11, 77, 107, 353, 349, 219, 1961, 7559, 10081, 25119, 46041, 103827}}, +{9775, 17, 34453, {1, 3, 3, 1, 5, 27, 109, 17, 271, 543, 565, 397, 2649, 12037, 4525, 37835, 107071}}, +{9776, 17, 34454, {1, 1, 5, 15, 3, 37, 123, 157, 389, 619, 1379, 4093, 6107, 4419, 21011, 36189, 21269}}, +{9777, 17, 34460, {1, 3, 1, 7, 25, 17, 37, 133, 247, 113, 985, 815, 441, 7869, 25121, 49459, 429}}, +{9778, 17, 34464, {1, 3, 3, 11, 7, 23, 59, 51, 403, 685, 2019, 1167, 7973, 6915, 10819, 43807, 127793}}, +{9779, 17, 34479, {1, 1, 3, 1, 29, 3, 125, 107, 305, 101, 391, 2733, 6883, 5867, 5139, 16025, 112439}}, +{9780, 17, 34491, {1, 1, 5, 5, 23, 23, 89, 33, 275, 451, 1033, 649, 3761, 4735, 26021, 9627, 102747}}, +{9781, 17, 34501, {1, 1, 5, 13, 3, 17, 117, 251, 425, 917, 759, 3047, 8171, 14421, 27765, 11085, 64889}}, +{9782, 17, 34508, {1, 3, 1, 9, 7, 23, 107, 143, 123, 413, 2045, 655, 6283, 8783, 20263, 55463, 33271}}, +{9783, 17, 34516, {1, 3, 7, 11, 5, 49, 73, 55, 465, 43, 587, 3943, 521, 12357, 16273, 26603, 23219}}, +{9784, 17, 34529, {1, 3, 5, 13, 9, 3, 127, 171, 271, 227, 993, 1427, 2235, 6325, 13501, 1411, 44393}}, +{9785, 17, 34530, {1, 1, 1, 3, 13, 27, 19, 37, 175, 423, 5, 3403, 5427, 16345, 30297, 11909, 104647}}, +{9786, 17, 34553, {1, 3, 1, 3, 3, 39, 111, 179, 487, 923, 1945, 1609, 4689, 11807, 13725, 3081, 48163}}, +{9787, 17, 34564, {1, 3, 1, 1, 9, 35, 7, 151, 109, 925, 1249, 3171, 1207, 2053, 5135, 34821, 57291}}, +{9788, 17, 34568, {1, 1, 5, 13, 31, 35, 101, 199, 499, 725, 1229, 2857, 6437, 503, 14437, 35721, 24971}}, +{9789, 17, 34571, {1, 1, 1, 15, 3, 49, 75, 101, 373, 119, 875, 245, 15, 12937, 4731, 13037, 1555}}, +{9790, 17, 34582, {1, 1, 1, 7, 15, 5, 53, 5, 423, 69, 73, 2139, 383, 4035, 6723, 59941, 124503}}, +{9791, 17, 34586, {1, 1, 3, 13, 1, 23, 29, 47, 145, 785, 1013, 1579, 4579, 107, 17571, 46311, 27777}}, +{9792, 17, 34598, {1, 1, 1, 5, 23, 25, 97, 75, 105, 183, 827, 3871, 2005, 6453, 28729, 42583, 62979}}, +{9793, 17, 34604, {1, 3, 5, 9, 11, 49, 29, 201, 333, 441, 429, 1955, 5301, 11775, 22915, 58693, 111917}}, +{9794, 17, 34610, {1, 3, 3, 1, 15, 37, 117, 223, 319, 181, 61, 177, 507, 14871, 16419, 34261, 106937}}, +{9795, 17, 34619, {1, 3, 3, 9, 25, 27, 81, 253, 459, 5, 693, 1271, 485, 16171, 427, 17917, 4393}}, +{9796, 17, 34621, {1, 3, 3, 1, 27, 47, 11, 57, 269, 95, 569, 2733, 3275, 1599, 15073, 58071, 86805}}, +{9797, 17, 34633, {1, 3, 7, 13, 21, 57, 75, 63, 53, 487, 251, 3193, 4279, 2311, 6613, 38319, 93557}}, +{9798, 17, 34634, {1, 3, 5, 5, 31, 35, 39, 255, 11, 81, 605, 1457, 6367, 14121, 8069, 46653, 79945}}, +{9799, 17, 34657, {1, 1, 1, 7, 17, 19, 19, 247, 13, 757, 1069, 2811, 4969, 10943, 29399, 4153, 120817}}, +{9800, 17, 34682, {1, 1, 1, 15, 31, 13, 1, 247, 157, 785, 1565, 897, 4825, 8375, 4933, 60671, 88403}}, +{9801, 17, 34688, {1, 3, 3, 7, 31, 53, 117, 207, 243, 603, 625, 1039, 5725, 5021, 20227, 28613, 123759}}, +{9802, 17, 34691, {1, 1, 5, 1, 7, 29, 65, 153, 393, 821, 295, 2705, 5999, 15801, 31301, 15545, 52917}}, +{9803, 17, 34694, {1, 1, 1, 1, 11, 51, 97, 143, 27, 279, 1005, 1235, 5539, 1523, 26293, 35015, 47835}}, +{9804, 17, 34706, {1, 3, 3, 13, 27, 17, 123, 147, 39, 35, 567, 961, 5431, 5557, 17849, 46675, 102181}}, +{9805, 17, 34708, {1, 1, 7, 11, 7, 25, 73, 223, 459, 207, 1637, 647, 2057, 685, 24539, 48809, 26877}}, +{9806, 17, 34724, {1, 3, 1, 3, 21, 43, 121, 11, 431, 383, 1703, 1451, 2349, 11845, 13801, 20589, 43125}}, +{9807, 17, 34727, {1, 1, 5, 1, 27, 29, 89, 233, 437, 303, 853, 3425, 263, 2073, 14111, 39129, 59547}}, +{9808, 17, 34751, {1, 1, 1, 3, 3, 47, 99, 207, 261, 179, 1761, 2657, 4339, 6567, 25455, 18729, 51431}}, +{9809, 17, 34753, {1, 3, 3, 13, 5, 5, 109, 125, 123, 233, 1713, 1539, 4375, 12187, 18355, 49597, 109959}}, +{9810, 17, 34759, {1, 3, 7, 7, 9, 23, 45, 193, 363, 837, 855, 1413, 7587, 9091, 27907, 17809, 63249}}, +{9811, 17, 34763, {1, 3, 3, 9, 19, 23, 63, 85, 419, 1007, 1753, 539, 1471, 2171, 9239, 36289, 105503}}, +{9812, 17, 34777, {1, 3, 1, 11, 23, 5, 105, 79, 473, 879, 1623, 3155, 5157, 4699, 697, 41919, 15441}}, +{9813, 17, 34778, {1, 1, 7, 11, 5, 21, 43, 207, 491, 355, 857, 2325, 819, 15849, 24529, 5789, 110661}}, +{9814, 17, 34780, {1, 1, 5, 15, 19, 33, 81, 137, 473, 853, 1681, 3841, 5617, 13715, 1987, 52983, 66327}}, +{9815, 17, 34796, {1, 3, 5, 7, 11, 31, 69, 85, 33, 197, 1771, 1957, 1311, 169, 14159, 7327, 8577}}, +{9816, 17, 34799, {1, 1, 3, 9, 11, 23, 19, 143, 9, 579, 111, 2973, 3567, 8561, 10447, 55875, 64305}}, +{9817, 17, 34801, {1, 1, 5, 7, 1, 17, 93, 11, 423, 1007, 839, 719, 3965, 14531, 17301, 29577, 4083}}, +{9818, 17, 34817, {1, 3, 5, 13, 19, 17, 123, 61, 59, 115, 1165, 579, 2545, 633, 5597, 21865, 109167}}, +{9819, 17, 34824, {1, 1, 5, 3, 29, 29, 99, 163, 321, 367, 1523, 3719, 665, 15843, 28831, 63823, 113533}}, +{9820, 17, 34827, {1, 1, 1, 3, 15, 7, 85, 1, 181, 759, 537, 3315, 7159, 4363, 4183, 53775, 8801}}, +{9821, 17, 34837, {1, 3, 1, 1, 15, 53, 9, 35, 459, 417, 1169, 2055, 1175, 10923, 335, 24269, 93001}}, +{9822, 17, 34841, {1, 3, 1, 5, 31, 43, 51, 149, 175, 541, 629, 1147, 7585, 9725, 18623, 13345, 65391}}, +{9823, 17, 34853, {1, 3, 7, 1, 13, 39, 13, 217, 507, 765, 721, 1491, 5037, 6267, 2871, 19181, 123751}}, +{9824, 17, 34858, {1, 1, 3, 5, 21, 9, 123, 195, 63, 347, 7, 531, 3015, 9457, 29543, 51479, 26607}}, +{9825, 17, 34877, {1, 1, 1, 1, 21, 15, 81, 127, 429, 15, 901, 1503, 1919, 6515, 2477, 53571, 113447}}, +{9826, 17, 34886, {1, 3, 1, 13, 9, 33, 79, 169, 499, 767, 441, 2085, 2429, 10213, 4125, 2611, 26137}}, +{9827, 17, 34895, {1, 1, 3, 1, 19, 23, 83, 179, 447, 513, 913, 1201, 1861, 11595, 29037, 7775, 116417}}, +{9828, 17, 34897, {1, 3, 3, 7, 3, 57, 47, 183, 413, 319, 1375, 1401, 2231, 14331, 28625, 43839, 102717}}, +{9829, 17, 34898, {1, 1, 5, 11, 31, 27, 111, 85, 191, 155, 2025, 1501, 4991, 4655, 3451, 10219, 60391}}, +{9830, 17, 34916, {1, 3, 3, 7, 17, 19, 113, 37, 423, 479, 709, 3659, 6567, 1709, 13483, 61821, 77101}}, +{9831, 17, 34923, {1, 3, 1, 13, 3, 17, 73, 61, 275, 359, 1341, 449, 1373, 12047, 11207, 52651, 83305}}, +{9832, 17, 34928, {1, 1, 7, 9, 9, 45, 15, 121, 15, 51, 509, 2189, 5057, 6119, 11669, 14559, 108323}}, +{9833, 17, 34934, {1, 1, 7, 7, 25, 13, 13, 141, 157, 249, 823, 821, 1909, 5925, 3505, 13187, 19237}}, +{9834, 17, 34940, {1, 3, 3, 1, 9, 51, 79, 91, 5, 709, 787, 2427, 4613, 7307, 20141, 1675, 49779}}, +{9835, 17, 34944, {1, 1, 1, 11, 11, 13, 33, 81, 413, 981, 907, 2709, 4113, 10607, 2587, 12845, 11103}}, +{9836, 17, 34947, {1, 1, 7, 9, 13, 25, 37, 81, 375, 1013, 2027, 321, 3947, 2269, 10687, 7537, 67495}}, +{9837, 17, 34953, {1, 3, 5, 11, 9, 43, 53, 111, 339, 841, 503, 3209, 6437, 10893, 13627, 51809, 57229}}, +{9838, 17, 34956, {1, 3, 1, 1, 21, 15, 71, 93, 453, 405, 1099, 2979, 7471, 10173, 17875, 13179, 48615}}, +{9839, 17, 34967, {1, 3, 5, 9, 9, 1, 121, 117, 275, 157, 57, 3459, 4787, 15005, 24591, 23963, 45077}}, +{9840, 17, 34968, {1, 1, 5, 3, 21, 57, 113, 207, 169, 603, 637, 1455, 6281, 6527, 17219, 32307, 18617}}, +{9841, 17, 34971, {1, 3, 7, 5, 25, 15, 99, 91, 253, 267, 537, 713, 3929, 895, 7999, 47989, 118731}}, +{9842, 17, 34974, {1, 3, 7, 15, 23, 17, 5, 129, 121, 251, 219, 2547, 7291, 1079, 14577, 56229, 35253}}, +{9843, 17, 34977, {1, 3, 1, 15, 5, 61, 35, 135, 497, 681, 751, 2303, 6697, 11225, 30389, 61673, 87313}}, +{9844, 17, 34980, {1, 3, 1, 7, 7, 37, 9, 85, 257, 805, 1325, 3597, 6065, 727, 18203, 57077, 437}}, +{9845, 17, 34983, {1, 3, 5, 7, 5, 43, 29, 179, 73, 173, 1441, 1233, 1779, 7893, 10629, 27547, 7775}}, +{9846, 17, 34998, {1, 1, 7, 5, 31, 29, 21, 35, 289, 423, 449, 3331, 2929, 6827, 15569, 9873, 76889}}, +{9847, 17, 35004, {1, 1, 7, 13, 13, 37, 55, 99, 135, 797, 1263, 2539, 893, 4225, 16689, 38259, 50857}}, +{9848, 17, 35010, {1, 1, 3, 1, 5, 3, 95, 29, 15, 539, 825, 3931, 4809, 8299, 29891, 61357, 97523}}, +{9849, 17, 35012, {1, 3, 1, 9, 27, 25, 115, 239, 387, 163, 1153, 31, 2375, 7943, 31929, 1121, 33085}}, +{9850, 17, 35030, {1, 3, 5, 9, 3, 53, 121, 159, 165, 81, 317, 3051, 1991, 493, 2029, 43305, 130209}}, +{9851, 17, 35039, {1, 1, 1, 5, 9, 57, 39, 247, 73, 613, 1047, 3289, 2569, 5363, 18475, 32749, 39415}}, +{9852, 17, 35058, {1, 3, 1, 5, 19, 23, 39, 33, 151, 463, 153, 737, 2501, 7531, 2769, 35595, 71799}}, +{9853, 17, 35063, {1, 3, 5, 5, 29, 49, 105, 81, 67, 441, 1101, 2241, 6243, 6177, 7157, 51635, 81241}}, +{9854, 17, 35082, {1, 3, 3, 3, 29, 53, 13, 239, 487, 503, 97, 1323, 1817, 13021, 12881, 26943, 21011}}, +{9855, 17, 35095, {1, 1, 1, 15, 25, 9, 5, 205, 85, 635, 789, 2495, 5069, 4987, 847, 26857, 84225}}, +{9856, 17, 35096, {1, 1, 3, 15, 9, 51, 79, 13, 377, 637, 159, 3407, 2057, 13967, 31781, 40869, 52987}}, +{9857, 17, 35101, {1, 3, 1, 13, 11, 27, 103, 207, 383, 887, 749, 1119, 285, 4269, 31745, 57539, 5671}}, +{9858, 17, 35102, {1, 3, 1, 13, 23, 19, 41, 43, 455, 425, 1653, 4091, 4855, 16321, 169, 59289, 82397}}, +{9859, 17, 35105, {1, 3, 3, 15, 31, 39, 51, 127, 391, 989, 1831, 3327, 6487, 6077, 17277, 52093, 20389}}, +{9860, 17, 35112, {1, 3, 5, 15, 19, 1, 21, 241, 15, 543, 1529, 2355, 1503, 12795, 17321, 41219, 61115}}, +{9861, 17, 35118, {1, 1, 3, 11, 9, 33, 21, 197, 307, 141, 1663, 371, 1663, 8307, 3617, 56941, 62477}}, +{9862, 17, 35120, {1, 3, 7, 9, 19, 53, 123, 3, 29, 635, 1795, 2471, 2491, 15847, 9169, 2561, 101515}}, +{9863, 17, 35130, {1, 1, 5, 3, 19, 11, 117, 231, 475, 837, 1833, 3499, 4415, 9961, 28285, 37821, 81497}}, +{9864, 17, 35143, {1, 1, 3, 5, 7, 11, 57, 89, 345, 157, 1519, 3021, 7157, 2159, 32557, 31559, 128907}}, +{9865, 17, 35147, {1, 1, 7, 3, 27, 1, 15, 177, 489, 405, 811, 3597, 4939, 15595, 7279, 58097, 84703}}, +{9866, 17, 35152, {1, 3, 1, 9, 25, 61, 119, 219, 111, 339, 1091, 759, 6087, 16001, 6757, 15627, 1691}}, +{9867, 17, 35157, {1, 3, 7, 9, 1, 39, 107, 139, 143, 917, 421, 1623, 7135, 4851, 6687, 6177, 102425}}, +{9868, 17, 35164, {1, 1, 7, 13, 23, 17, 19, 167, 317, 331, 743, 3737, 2195, 545, 2185, 9125, 30503}}, +{9869, 17, 35178, {1, 1, 5, 13, 27, 33, 117, 141, 493, 129, 1553, 2335, 4161, 14205, 24177, 35163, 84869}}, +{9870, 17, 35195, {1, 3, 7, 1, 11, 9, 75, 133, 113, 507, 2007, 2473, 4769, 14655, 17967, 17709, 90653}}, +{9871, 17, 35197, {1, 1, 7, 11, 17, 11, 83, 23, 387, 61, 29, 3905, 4351, 15173, 28375, 9129, 111939}}, +{9872, 17, 35201, {1, 1, 5, 15, 15, 53, 81, 125, 189, 937, 1607, 2595, 2847, 7229, 22241, 26269, 64781}}, +{9873, 17, 35207, {1, 3, 1, 7, 5, 11, 61, 111, 13, 423, 885, 2329, 6003, 16331, 11207, 25743, 54619}}, +{9874, 17, 35231, {1, 3, 5, 9, 1, 13, 95, 241, 237, 629, 263, 1629, 1063, 12695, 14501, 5455, 121483}}, +{9875, 17, 35249, {1, 1, 7, 15, 5, 17, 45, 255, 143, 79, 87, 1755, 6215, 5095, 32411, 8695, 85511}}, +{9876, 17, 35250, {1, 3, 7, 7, 21, 11, 117, 135, 333, 73, 1471, 2749, 5801, 4209, 9353, 46171, 90645}}, +{9877, 17, 35256, {1, 1, 7, 13, 11, 35, 77, 149, 159, 783, 1527, 2881, 1409, 3455, 26991, 3225, 30693}}, +{9878, 17, 35259, {1, 1, 3, 15, 19, 55, 21, 245, 207, 103, 775, 2041, 4637, 7333, 11267, 60509, 43099}}, +{9879, 17, 35262, {1, 3, 3, 15, 17, 63, 23, 81, 183, 923, 75, 391, 615, 13343, 20839, 56529, 115747}}, +{9880, 17, 35273, {1, 3, 1, 13, 5, 5, 15, 27, 263, 497, 1365, 2733, 5395, 7461, 2725, 24735, 89251}}, +{9881, 17, 35282, {1, 1, 7, 7, 29, 17, 39, 117, 363, 915, 123, 283, 4575, 3497, 20995, 37883, 16645}}, +{9882, 17, 35298, {1, 3, 3, 9, 1, 25, 79, 181, 331, 617, 393, 1807, 5145, 8007, 9173, 45189, 37945}}, +{9883, 17, 35307, {1, 3, 1, 5, 1, 9, 127, 137, 379, 371, 367, 3237, 581, 15295, 18191, 37689, 103495}}, +{9884, 17, 35328, {1, 1, 7, 1, 29, 53, 103, 173, 171, 973, 933, 3847, 3185, 10107, 31701, 45021, 106251}}, +{9885, 17, 35334, {1, 1, 1, 7, 23, 9, 61, 25, 343, 471, 2041, 2179, 7647, 1885, 15353, 50379, 67681}}, +{9886, 17, 35343, {1, 1, 5, 11, 31, 13, 51, 185, 83, 917, 85, 1317, 8185, 14949, 32455, 57939, 1217}}, +{9887, 17, 35345, {1, 1, 7, 5, 23, 45, 101, 227, 497, 941, 985, 167, 6847, 9611, 20011, 40069, 83285}}, +{9888, 17, 35355, {1, 1, 5, 13, 17, 33, 61, 197, 433, 255, 67, 1479, 5663, 6501, 30695, 27235, 80141}}, +{9889, 17, 35388, {1, 1, 3, 5, 11, 45, 123, 49, 327, 893, 1963, 2225, 2611, 8925, 22811, 2313, 8411}}, +{9890, 17, 35399, {1, 3, 7, 7, 15, 39, 75, 235, 13, 847, 575, 3947, 6947, 2061, 13467, 103, 86285}}, +{9891, 17, 35403, {1, 1, 7, 3, 21, 43, 113, 197, 141, 873, 1139, 2707, 7235, 10683, 10831, 33695, 57063}}, +{9892, 17, 35408, {1, 3, 5, 1, 3, 27, 45, 43, 119, 979, 1933, 1851, 6497, 14937, 4965, 41285, 120221}}, +{9893, 17, 35413, {1, 1, 3, 1, 23, 59, 67, 7, 49, 351, 1053, 1837, 501, 7671, 26239, 51951, 95119}}, +{9894, 17, 35418, {1, 3, 5, 11, 3, 19, 33, 33, 219, 175, 1439, 197, 1841, 159, 11229, 20463, 81797}}, +{9895, 17, 35434, {1, 1, 7, 1, 13, 11, 79, 75, 53, 525, 91, 233, 5999, 2921, 21295, 56831, 116049}}, +{9896, 17, 35436, {1, 3, 3, 13, 29, 7, 71, 207, 193, 635, 1393, 3093, 3775, 12445, 23281, 29401, 103225}}, +{9897, 17, 35448, {1, 1, 7, 3, 29, 57, 111, 163, 63, 593, 881, 1587, 3027, 12599, 30977, 38891, 95495}}, +{9898, 17, 35460, {1, 1, 5, 15, 17, 57, 111, 169, 149, 767, 377, 765, 7533, 1539, 22979, 55489, 29799}}, +{9899, 17, 35475, {1, 3, 5, 15, 25, 7, 127, 71, 319, 389, 497, 1513, 1287, 7359, 12311, 45457, 45897}}, +{9900, 17, 35494, {1, 1, 5, 3, 3, 35, 45, 17, 49, 483, 197, 727, 5355, 7201, 3035, 14313, 40933}}, +{9901, 17, 35497, {1, 1, 7, 15, 1, 9, 27, 59, 455, 653, 1907, 281, 1435, 14593, 18909, 37655, 87603}}, +{9902, 17, 35503, {1, 1, 7, 11, 29, 9, 67, 17, 353, 709, 859, 3687, 7741, 4251, 12263, 41717, 79393}}, +{9903, 17, 35508, {1, 3, 3, 3, 1, 15, 113, 187, 255, 851, 503, 4089, 7923, 1701, 305, 8353, 16357}}, +{9904, 17, 35511, {1, 1, 5, 3, 17, 31, 29, 233, 377, 215, 1889, 3459, 2443, 3907, 4193, 16519, 49089}}, +{9905, 17, 35518, {1, 1, 3, 1, 17, 39, 11, 255, 247, 305, 669, 1769, 1355, 12055, 2275, 51681, 112337}}, +{9906, 17, 35520, {1, 3, 1, 1, 17, 17, 75, 95, 409, 21, 1513, 1443, 4931, 6491, 1587, 62979, 90395}}, +{9907, 17, 35530, {1, 1, 3, 5, 3, 19, 125, 175, 279, 911, 301, 407, 7773, 949, 32107, 13571, 58717}}, +{9908, 17, 35537, {1, 3, 3, 15, 31, 35, 11, 223, 125, 209, 1719, 1725, 3387, 14879, 32243, 7219, 126791}}, +{9909, 17, 35543, {1, 1, 3, 1, 31, 29, 67, 79, 93, 193, 1573, 2285, 3209, 8397, 17717, 5657, 61545}}, +{9910, 17, 35560, {1, 3, 1, 9, 11, 33, 85, 121, 193, 63, 461, 1835, 889, 10687, 19831, 49551, 59087}}, +{9911, 17, 35566, {1, 3, 3, 7, 11, 3, 9, 87, 91, 487, 289, 1113, 8135, 7971, 16693, 31009, 81197}}, +{9912, 17, 35571, {1, 3, 3, 1, 23, 23, 61, 209, 409, 845, 547, 1493, 465, 6399, 17633, 53647, 52425}}, +{9913, 17, 35598, {1, 1, 7, 7, 21, 31, 71, 249, 63, 895, 653, 93, 4429, 8951, 16873, 48089, 33947}}, +{9914, 17, 35609, {1, 3, 5, 11, 3, 35, 49, 15, 379, 645, 855, 3657, 8019, 2141, 11233, 60731, 80455}}, +{9915, 17, 35612, {1, 3, 1, 3, 1, 53, 101, 157, 255, 765, 1575, 1615, 7677, 9699, 13351, 2207, 90939}}, +{9916, 17, 35615, {1, 3, 7, 7, 5, 43, 123, 109, 119, 391, 1889, 1991, 3151, 1457, 16321, 65245, 75891}}, +{9917, 17, 35616, {1, 3, 1, 15, 9, 1, 113, 249, 1, 675, 501, 487, 2209, 4411, 6609, 29243, 100177}}, +{9918, 17, 35622, {1, 1, 1, 7, 9, 23, 9, 197, 341, 191, 453, 3733, 5475, 15515, 28979, 36077, 17801}}, +{9919, 17, 35626, {1, 1, 3, 13, 5, 35, 85, 121, 59, 429, 1251, 3437, 3121, 12411, 14713, 28125, 31921}}, +{9920, 17, 35633, {1, 3, 5, 3, 27, 17, 61, 255, 485, 709, 83, 3201, 2191, 3371, 2941, 10931, 22141}}, +{9921, 17, 35636, {1, 1, 1, 1, 19, 19, 25, 177, 397, 579, 529, 1619, 3887, 4537, 8123, 52481, 8305}}, +{9922, 17, 35645, {1, 1, 3, 15, 3, 15, 77, 51, 31, 881, 203, 2359, 4947, 6321, 14705, 16471, 84395}}, +{9923, 17, 35653, {1, 3, 7, 9, 13, 53, 67, 41, 289, 721, 1743, 2725, 435, 1327, 14953, 14283, 113211}}, +{9924, 17, 35663, {1, 3, 1, 5, 19, 23, 73, 181, 187, 675, 125, 1877, 6167, 7919, 3955, 25007, 28299}}, +{9925, 17, 35665, {1, 1, 3, 1, 5, 11, 123, 189, 173, 123, 499, 2175, 483, 13017, 14709, 5797, 36327}}, +{9926, 17, 35682, {1, 3, 7, 5, 21, 39, 79, 229, 19, 203, 375, 3901, 1053, 14209, 13535, 63155, 99727}}, +{9927, 17, 35687, {1, 1, 1, 13, 11, 29, 29, 173, 441, 271, 1147, 2891, 965, 10777, 16325, 37135, 101601}}, +{9928, 17, 35688, {1, 1, 3, 3, 25, 13, 79, 233, 75, 191, 987, 3231, 3667, 1525, 14193, 62027, 77441}}, +{9929, 17, 35691, {1, 3, 1, 1, 15, 53, 17, 45, 367, 263, 425, 1565, 6139, 13833, 12547, 61103, 75361}}, +{9930, 17, 35696, {1, 1, 5, 15, 5, 57, 123, 47, 407, 887, 375, 1181, 5367, 10283, 24799, 33121, 76373}}, +{9931, 17, 35727, {1, 1, 7, 3, 11, 17, 65, 133, 3, 609, 601, 3391, 7801, 4137, 32095, 55983, 23037}}, +{9932, 17, 35741, {1, 3, 1, 3, 25, 5, 125, 5, 297, 571, 145, 3601, 1929, 13457, 16977, 21049, 92169}}, +{9933, 17, 35742, {1, 3, 5, 13, 23, 29, 13, 143, 507, 187, 857, 427, 5125, 1377, 10947, 58473, 110541}}, +{9934, 17, 35746, {1, 3, 3, 15, 15, 49, 39, 103, 193, 507, 639, 2399, 3829, 12105, 15993, 52975, 115935}}, +{9935, 17, 35748, {1, 3, 7, 3, 7, 41, 95, 127, 193, 923, 1729, 3039, 7959, 3345, 7725, 35293, 34361}}, +{9936, 17, 35752, {1, 3, 5, 13, 17, 53, 111, 141, 151, 389, 1955, 3333, 4523, 6331, 21239, 57447, 113325}}, +{9937, 17, 35770, {1, 3, 7, 15, 31, 7, 11, 35, 105, 607, 1665, 3281, 487, 9417, 26205, 26963, 81537}}, +{9938, 17, 35811, {1, 3, 1, 1, 17, 15, 3, 55, 451, 691, 1525, 2009, 6443, 4629, 15091, 46961, 83361}}, +{9939, 17, 35817, {1, 3, 1, 15, 1, 29, 99, 79, 225, 665, 623, 2389, 3303, 7221, 20567, 15917, 24677}}, +{9940, 17, 35832, {1, 1, 3, 15, 3, 17, 125, 239, 485, 849, 327, 1459, 3911, 2145, 14475, 24337, 19695}}, +{9941, 17, 35838, {1, 3, 5, 7, 7, 37, 19, 51, 373, 587, 147, 563, 7623, 7781, 18289, 37239, 6803}}, +{9942, 17, 35850, {1, 3, 5, 1, 9, 63, 5, 87, 171, 5, 1553, 429, 5001, 7881, 1493, 20425, 57727}}, +{9943, 17, 35863, {1, 3, 5, 9, 25, 43, 17, 71, 87, 869, 1219, 2661, 4571, 9689, 18799, 62467, 128531}}, +{9944, 17, 35870, {1, 1, 3, 3, 19, 53, 61, 9, 55, 433, 1555, 2369, 1423, 9081, 19185, 8513, 111079}}, +{9945, 17, 35879, {1, 3, 5, 15, 11, 61, 1, 147, 17, 71, 1563, 1113, 4809, 16229, 23743, 59757, 64699}}, +{9946, 17, 35880, {1, 1, 5, 11, 29, 23, 61, 43, 203, 97, 1119, 237, 6445, 14507, 9799, 18447, 14745}}, +{9947, 17, 35891, {1, 3, 5, 15, 11, 17, 117, 139, 117, 537, 251, 149, 2731, 15863, 1381, 25435, 25501}}, +{9948, 17, 35893, {1, 3, 3, 15, 31, 57, 53, 43, 95, 445, 1423, 3833, 2485, 11789, 16011, 8101, 39165}}, +{9949, 17, 35903, {1, 1, 3, 11, 15, 37, 117, 3, 245, 57, 593, 2771, 7181, 11397, 5691, 3217, 44139}}, +{9950, 17, 35905, {1, 3, 5, 1, 11, 13, 121, 85, 85, 511, 1837, 611, 237, 4893, 24025, 28903, 102025}}, +{9951, 17, 35926, {1, 3, 1, 11, 5, 45, 43, 45, 393, 741, 1157, 1511, 1665, 2359, 19071, 24537, 122879}}, +{9952, 17, 35930, {1, 3, 3, 3, 9, 59, 27, 11, 257, 203, 1535, 2729, 2313, 3539, 1689, 31901, 42949}}, +{9953, 17, 35941, {1, 1, 1, 11, 17, 7, 21, 35, 479, 697, 107, 1317, 6585, 705, 3789, 20439, 33375}}, +{9954, 17, 35956, {1, 1, 3, 11, 19, 37, 123, 233, 253, 733, 901, 3047, 3595, 2357, 24533, 40519, 109171}}, +{9955, 17, 35963, {1, 3, 3, 13, 29, 51, 25, 149, 57, 253, 2001, 351, 7367, 15361, 4955, 60951, 19449}}, +{9956, 17, 35970, {1, 1, 3, 15, 21, 53, 25, 239, 257, 437, 711, 3599, 5441, 7405, 15039, 19207, 63841}}, +{9957, 17, 35984, {1, 3, 1, 9, 17, 41, 43, 231, 413, 747, 1447, 1407, 2615, 14529, 10781, 20001, 82713}}, +{9958, 17, 35996, {1, 3, 7, 7, 9, 29, 25, 55, 53, 423, 1711, 2871, 2675, 421, 31703, 57099, 2955}}, +{9959, 17, 36005, {1, 3, 1, 7, 31, 17, 113, 83, 387, 611, 1815, 2137, 3453, 4409, 20377, 60263, 81205}}, +{9960, 17, 36012, {1, 1, 5, 3, 11, 1, 7, 225, 367, 267, 95, 939, 3801, 2619, 1207, 62695, 116407}}, +{9961, 17, 36015, {1, 3, 3, 9, 5, 39, 85, 45, 247, 483, 491, 865, 3493, 8243, 8411, 26449, 50473}}, +{9962, 17, 36030, {1, 3, 3, 9, 1, 53, 23, 127, 13, 529, 1925, 2629, 3451, 15073, 16075, 29909, 34101}}, +{9963, 17, 36035, {1, 3, 1, 11, 1, 9, 125, 57, 79, 633, 979, 3843, 325, 883, 7769, 40155, 104057}}, +{9964, 17, 36042, {1, 1, 7, 13, 23, 53, 27, 157, 493, 901, 1077, 1079, 1327, 15903, 20603, 64377, 103335}}, +{9965, 17, 36047, {1, 3, 3, 3, 3, 35, 37, 167, 73, 301, 385, 1045, 6913, 2269, 22491, 19735, 70125}}, +{9966, 17, 36049, {1, 1, 1, 11, 5, 23, 23, 85, 267, 845, 207, 77, 1245, 16209, 25579, 12417, 48723}}, +{9967, 17, 36059, {1, 1, 5, 15, 11, 17, 43, 83, 373, 1005, 541, 115, 163, 2165, 8181, 35839, 44471}}, +{9968, 17, 36071, {1, 3, 5, 7, 27, 41, 101, 13, 213, 235, 2037, 2179, 2121, 4481, 8127, 20011, 3981}}, +{9969, 17, 36080, {1, 1, 5, 11, 7, 43, 59, 129, 127, 387, 489, 1985, 623, 13307, 19765, 62155, 93271}}, +{9970, 17, 36085, {1, 1, 7, 5, 23, 63, 23, 177, 211, 233, 101, 1809, 7411, 8003, 25101, 32601, 75071}}, +{9971, 17, 36097, {1, 1, 1, 11, 3, 25, 9, 91, 459, 611, 867, 3639, 5457, 9101, 15333, 40069, 67723}}, +{9972, 17, 36110, {1, 3, 7, 5, 3, 29, 111, 75, 459, 195, 1405, 2281, 6085, 4425, 29061, 57335, 87449}}, +{9973, 17, 36115, {1, 3, 7, 11, 21, 45, 53, 81, 77, 863, 1901, 3355, 5253, 10897, 26289, 48399, 26877}}, +{9974, 17, 36118, {1, 3, 3, 13, 21, 37, 69, 87, 259, 101, 1203, 167, 6229, 145, 9355, 15347, 68047}}, +{9975, 17, 36124, {1, 1, 3, 1, 31, 1, 15, 229, 429, 915, 929, 381, 1857, 8441, 22207, 47071, 127853}}, +{9976, 17, 36137, {1, 3, 7, 3, 15, 9, 13, 161, 173, 573, 405, 3253, 7331, 13965, 3061, 40687, 130185}}, +{9977, 17, 36138, {1, 3, 5, 5, 29, 29, 9, 115, 393, 377, 909, 321, 2861, 9881, 17863, 52033, 55133}}, +{9978, 17, 36155, {1, 1, 7, 7, 27, 53, 101, 213, 199, 301, 1995, 2549, 5037, 13639, 18423, 23547, 79359}}, +{9979, 17, 36160, {1, 3, 1, 7, 21, 51, 29, 151, 301, 665, 571, 53, 2637, 7229, 12517, 33647, 49413}}, +{9980, 17, 36189, {1, 3, 3, 13, 13, 49, 49, 131, 325, 273, 1127, 2981, 2365, 14287, 23185, 26915, 81755}}, +{9981, 17, 36190, {1, 1, 5, 3, 17, 45, 25, 79, 37, 265, 1205, 1805, 6707, 11525, 16473, 39525, 9571}}, +{9982, 17, 36203, {1, 3, 3, 15, 9, 43, 55, 101, 469, 939, 365, 3443, 5759, 4751, 28893, 46727, 74569}}, +{9983, 17, 36211, {1, 3, 7, 9, 5, 33, 11, 201, 263, 227, 1475, 2795, 1489, 11129, 18053, 31009, 73105}}, +{9984, 17, 36218, {1, 3, 5, 5, 5, 25, 41, 151, 393, 237, 2017, 3811, 953, 13835, 28761, 22439, 76355}}, +{9985, 17, 36230, {1, 1, 5, 13, 21, 37, 29, 11, 289, 67, 1317, 511, 685, 15227, 8731, 15039, 79491}}, +{9986, 17, 36241, {1, 3, 1, 9, 31, 59, 123, 169, 473, 139, 575, 1057, 3213, 8213, 21845, 28123, 105335}}, +{9987, 17, 36244, {1, 1, 1, 5, 21, 47, 23, 121, 403, 5, 1457, 2137, 569, 9267, 6367, 6991, 3113}}, +{9988, 17, 36253, {1, 3, 3, 7, 13, 7, 25, 215, 81, 1003, 2041, 1317, 3913, 14705, 30551, 50889, 83441}}, +{9989, 17, 36257, {1, 3, 3, 3, 13, 17, 63, 229, 83, 901, 953, 2603, 4685, 6961, 7519, 52441, 33223}}, +{9990, 17, 36264, {1, 3, 7, 5, 7, 57, 65, 73, 243, 531, 261, 2517, 4083, 5889, 22913, 49603, 67135}}, +{9991, 17, 36272, {1, 3, 5, 11, 15, 47, 81, 83, 35, 1021, 1313, 1109, 5103, 5469, 18149, 15307, 34939}}, +{9992, 17, 36290, {1, 3, 7, 5, 21, 13, 105, 157, 435, 23, 931, 3565, 1, 4987, 8829, 7327, 51049}}, +{9993, 17, 36292, {1, 1, 3, 11, 29, 9, 59, 49, 261, 1009, 1953, 2683, 8125, 10937, 16683, 36013, 5967}}, +{9994, 17, 36301, {1, 1, 1, 1, 19, 29, 57, 9, 307, 457, 675, 3023, 495, 15257, 7945, 10449, 30155}}, +{9995, 17, 36309, {1, 1, 7, 13, 25, 9, 51, 135, 491, 205, 1715, 3253, 1031, 4137, 14885, 39925, 6061}}, +{9996, 17, 36313, {1, 1, 7, 7, 3, 13, 111, 91, 469, 133, 1221, 1035, 919, 3697, 26387, 41675, 487}}, +{9997, 17, 36316, {1, 1, 3, 1, 19, 53, 11, 113, 245, 747, 189, 4051, 87, 1767, 3595, 10259, 100097}}, +{9998, 17, 36319, {1, 1, 5, 3, 23, 49, 31, 47, 341, 1019, 723, 2353, 6191, 3809, 3297, 39443, 73529}}, +{9999, 17, 36330, {1, 3, 3, 9, 25, 27, 123, 49, 51, 85, 1063, 2633, 6549, 14493, 7367, 3557, 60651}}, +{10000, 17, 36335, {1, 3, 7, 5, 13, 27, 127, 65, 115, 731, 1147, 283, 91, 14205, 2457, 57083, 35815}}, +{10001, 17, 36347, {1, 3, 3, 3, 25, 63, 99, 249, 25, 951, 733, 3621, 7139, 14223, 23641, 20287, 30743}}, +{10002, 17, 36353, {1, 3, 3, 7, 21, 23, 83, 207, 235, 467, 1857, 2661, 1391, 10097, 12297, 54825, 5035}}, +{10003, 17, 36356, {1, 1, 5, 3, 31, 17, 77, 9, 215, 553, 989, 3643, 729, 2057, 32053, 50305, 5499}}, +{10004, 17, 36368, {1, 1, 7, 1, 23, 5, 111, 195, 431, 947, 403, 1781, 943, 15073, 67, 52225, 98987}}, +{10005, 17, 36374, {1, 1, 5, 11, 23, 1, 41, 33, 457, 767, 275, 801, 5119, 3781, 14805, 52789, 41775}}, +{10006, 17, 36377, {1, 1, 5, 3, 9, 53, 15, 183, 281, 691, 165, 3277, 7673, 1509, 16605, 53799, 100185}}, +{10007, 17, 36384, {1, 3, 5, 11, 19, 45, 29, 159, 167, 67, 1259, 879, 7787, 8855, 24153, 42667, 102855}}, +{10008, 17, 36407, {1, 1, 7, 13, 31, 19, 43, 133, 295, 287, 1985, 2451, 2297, 3853, 22401, 27659, 11149}}, +{10009, 17, 36413, {1, 1, 7, 13, 31, 39, 125, 21, 173, 103, 1119, 3739, 6467, 2113, 4465, 26537, 129949}}, +{10010, 17, 36419, {1, 1, 5, 15, 21, 47, 35, 125, 199, 335, 421, 31, 185, 12769, 30659, 33427, 106981}}, +{10011, 17, 36425, {1, 3, 5, 13, 25, 35, 53, 253, 325, 921, 1705, 2735, 6437, 2287, 20479, 61107, 91453}}, +{10012, 17, 36426, {1, 3, 7, 13, 25, 63, 83, 183, 5, 401, 329, 525, 3141, 393, 30469, 16529, 9605}}, +{10013, 17, 36446, {1, 3, 3, 13, 19, 23, 15, 85, 323, 545, 149, 3645, 6269, 15595, 18453, 39, 128169}}, +{10014, 17, 36461, {1, 3, 7, 15, 17, 5, 61, 61, 91, 353, 1039, 2959, 4147, 13205, 12599, 53281, 39509}}, +{10015, 17, 36467, {1, 1, 3, 7, 21, 9, 97, 111, 249, 775, 845, 1789, 667, 489, 6689, 29217, 56527}}, +{10016, 17, 36474, {1, 3, 5, 7, 11, 5, 59, 219, 29, 803, 923, 3861, 7953, 8969, 1819, 43501, 20513}}, +{10017, 17, 36480, {1, 1, 5, 11, 7, 53, 63, 231, 193, 293, 1467, 1409, 6397, 13237, 15903, 19271, 66257}}, +{10018, 17, 36486, {1, 3, 1, 15, 23, 15, 37, 123, 189, 63, 1121, 751, 6711, 10095, 6493, 40709, 47641}}, +{10019, 17, 36489, {1, 3, 7, 3, 23, 59, 99, 183, 249, 479, 771, 1087, 7979, 409, 4819, 4337, 33345}}, +{10020, 17, 36495, {1, 1, 5, 1, 17, 7, 15, 167, 305, 411, 1429, 3127, 23, 9123, 7185, 44405, 114841}}, +{10021, 17, 36525, {1, 1, 5, 11, 3, 29, 29, 31, 399, 777, 251, 1841, 3607, 211, 23543, 29111, 54565}}, +{10022, 17, 36526, {1, 3, 3, 9, 27, 33, 79, 27, 469, 67, 1327, 183, 5783, 10039, 13165, 20443, 4913}}, +{10023, 17, 36533, {1, 3, 7, 15, 21, 23, 5, 227, 141, 1021, 69, 3347, 7221, 13837, 20921, 20525, 32567}}, +{10024, 17, 36534, {1, 1, 5, 5, 25, 53, 73, 111, 319, 311, 1597, 1809, 5343, 13963, 6613, 14471, 53871}}, +{10025, 17, 36540, {1, 3, 3, 1, 15, 57, 47, 205, 53, 471, 185, 273, 8077, 5031, 31195, 30859, 15979}}, +{10026, 17, 36555, {1, 1, 3, 5, 23, 15, 87, 211, 83, 265, 1629, 2979, 69, 12559, 30455, 36363, 61461}}, +{10027, 17, 36563, {1, 1, 7, 7, 1, 47, 5, 199, 95, 17, 57, 1887, 6847, 9501, 21361, 57763, 77069}}, +{10028, 17, 36565, {1, 1, 3, 5, 9, 15, 15, 149, 141, 605, 639, 2197, 7237, 5753, 9415, 4677, 129947}}, +{10029, 17, 36588, {1, 3, 7, 1, 7, 9, 29, 249, 275, 461, 1667, 4093, 5763, 3205, 24079, 11883, 86455}}, +{10030, 17, 36593, {1, 1, 3, 5, 15, 39, 117, 145, 153, 671, 1819, 111, 3607, 12279, 4927, 63759, 42905}}, +{10031, 17, 36596, {1, 1, 1, 5, 31, 5, 35, 183, 189, 839, 1811, 1877, 6545, 11373, 27947, 27183, 29857}}, +{10032, 17, 36606, {1, 3, 5, 7, 29, 47, 3, 183, 511, 145, 1953, 3419, 6385, 7745, 12823, 59783, 69399}}, +{10033, 17, 36614, {1, 3, 5, 9, 5, 39, 85, 145, 33, 899, 1009, 2035, 6145, 3855, 20583, 4329, 95231}}, +{10034, 17, 36626, {1, 1, 3, 3, 15, 61, 85, 181, 247, 705, 413, 1633, 7489, 1785, 30397, 42851, 80197}}, +{10035, 17, 36628, {1, 3, 3, 13, 23, 11, 3, 97, 307, 183, 113, 3881, 7455, 8327, 6749, 23977, 101629}}, +{10036, 17, 36641, {1, 1, 7, 13, 1, 23, 59, 219, 125, 789, 1401, 707, 6915, 6275, 25813, 46595, 54119}}, +{10037, 17, 36642, {1, 3, 7, 9, 5, 7, 37, 33, 165, 181, 833, 1993, 4541, 5799, 23323, 39825, 44575}}, +{10038, 17, 36651, {1, 3, 1, 13, 13, 43, 69, 219, 437, 521, 503, 2293, 3607, 6845, 22583, 291, 65645}}, +{10039, 17, 36653, {1, 1, 7, 9, 29, 13, 123, 67, 191, 933, 1875, 1223, 5525, 13797, 29771, 58191, 84469}}, +{10040, 17, 36673, {1, 1, 7, 7, 3, 57, 101, 69, 23, 239, 1023, 3289, 1541, 6245, 23379, 161, 61155}}, +{10041, 17, 36676, {1, 3, 7, 13, 25, 33, 49, 145, 487, 681, 451, 1719, 109, 16273, 20009, 3003, 115815}}, +{10042, 17, 36679, {1, 1, 5, 11, 11, 59, 41, 133, 303, 469, 1975, 847, 5291, 13947, 8759, 8533, 25099}}, +{10043, 17, 36694, {1, 1, 1, 1, 29, 31, 53, 11, 239, 57, 1627, 1247, 1577, 3269, 20751, 4627, 40499}}, +{10044, 17, 36698, {1, 3, 7, 15, 1, 1, 51, 39, 383, 203, 1841, 3867, 4975, 9937, 1863, 52611, 83189}}, +{10045, 17, 36704, {1, 3, 7, 7, 13, 59, 15, 217, 355, 945, 1317, 815, 2413, 10985, 30647, 37745, 126553}}, +{10046, 17, 36714, {1, 1, 3, 11, 7, 29, 101, 137, 97, 119, 927, 3269, 6977, 4253, 10741, 61907, 122815}}, +{10047, 17, 36721, {1, 3, 3, 1, 29, 5, 49, 137, 411, 349, 905, 2481, 4961, 4513, 29409, 19503, 77915}}, +{10048, 17, 36722, {1, 1, 7, 13, 29, 59, 93, 61, 393, 29, 257, 3601, 6281, 5105, 17339, 53827, 83137}}, +{10049, 17, 36727, {1, 1, 1, 13, 5, 23, 61, 7, 51, 161, 737, 1549, 6021, 3385, 5539, 21261, 69995}}, +{10050, 17, 36749, {1, 1, 1, 15, 31, 1, 21, 113, 481, 7, 175, 717, 1593, 5937, 12347, 51835, 66649}}, +{10051, 17, 36758, {1, 1, 3, 7, 9, 51, 9, 199, 39, 607, 1157, 3913, 7767, 14195, 28721, 27655, 34709}}, +{10052, 17, 36761, {1, 3, 5, 5, 1, 15, 49, 33, 441, 721, 1749, 1497, 2023, 8351, 12641, 11861, 78545}}, +{10053, 17, 36771, {1, 3, 1, 7, 7, 17, 103, 113, 243, 25, 889, 1419, 3163, 12401, 22459, 39037, 101719}}, +{10054, 17, 36788, {1, 1, 7, 11, 17, 45, 121, 215, 3, 409, 1871, 2149, 4249, 5071, 14277, 55869, 91233}}, +{10055, 17, 36797, {1, 1, 3, 7, 19, 31, 47, 241, 175, 749, 1709, 355, 6037, 10555, 24107, 64683, 42673}}, +{10056, 17, 36805, {1, 3, 7, 11, 5, 21, 105, 137, 307, 101, 417, 1903, 1027, 10257, 27767, 9755, 92105}}, +{10057, 17, 36830, {1, 1, 3, 13, 9, 59, 11, 63, 295, 923, 401, 1471, 3517, 7761, 28855, 11525, 72455}}, +{10058, 17, 36833, {1, 1, 7, 15, 31, 51, 77, 29, 323, 579, 1313, 3441, 2903, 1683, 20605, 8185, 29753}}, +{10059, 17, 36839, {1, 1, 5, 15, 11, 59, 119, 109, 233, 1001, 1527, 2709, 73, 5311, 18313, 27155, 85999}}, +{10060, 17, 36843, {1, 3, 1, 5, 9, 59, 105, 93, 213, 401, 839, 3225, 3263, 13501, 2413, 60367, 121281}}, +{10061, 17, 36860, {1, 1, 7, 3, 19, 25, 75, 27, 325, 435, 527, 1465, 3601, 5785, 6135, 32841, 60129}}, +{10062, 17, 36866, {1, 1, 3, 7, 31, 19, 37, 157, 189, 51, 869, 2963, 5269, 9151, 14845, 30441, 89685}}, +{10063, 17, 36871, {1, 3, 3, 9, 17, 51, 23, 177, 417, 255, 1739, 3085, 7811, 15177, 25433, 38487, 51021}}, +{10064, 17, 36875, {1, 1, 3, 7, 27, 1, 45, 235, 59, 491, 1327, 3967, 7585, 4313, 29669, 47193, 89427}}, +{10065, 17, 36877, {1, 1, 3, 9, 19, 5, 27, 63, 263, 593, 1599, 1311, 1029, 603, 25291, 51391, 98915}}, +{10066, 17, 36880, {1, 3, 3, 15, 11, 7, 97, 99, 263, 155, 437, 3849, 2665, 3371, 8179, 51883, 3601}}, +{10067, 17, 36892, {1, 1, 3, 15, 7, 35, 37, 149, 251, 619, 1423, 553, 4453, 16365, 22543, 6951, 34655}}, +{10068, 17, 36911, {1, 3, 3, 11, 15, 21, 95, 143, 31, 425, 179, 2383, 4799, 7655, 26945, 9273, 103469}}, +{10069, 17, 36914, {1, 3, 1, 9, 13, 49, 3, 117, 361, 459, 227, 2067, 4909, 13461, 22505, 10259, 59697}}, +{10070, 17, 36916, {1, 1, 7, 7, 7, 23, 67, 217, 313, 965, 1747, 995, 579, 6217, 8915, 49329, 851}}, +{10071, 17, 36923, {1, 1, 3, 1, 17, 19, 7, 99, 281, 207, 1685, 2401, 967, 9399, 28741, 28839, 6003}}, +{10072, 17, 36940, {1, 3, 3, 5, 31, 61, 105, 251, 499, 319, 1167, 2203, 1195, 2663, 11797, 12981, 125523}}, +{10073, 17, 36943, {1, 3, 1, 5, 23, 19, 99, 101, 85, 837, 501, 2737, 4051, 2413, 9275, 38995, 21633}}, +{10074, 17, 36948, {1, 3, 7, 13, 17, 17, 119, 75, 281, 527, 1477, 1515, 7765, 5573, 10143, 6219, 57817}}, +{10075, 17, 36957, {1, 1, 5, 11, 19, 35, 85, 171, 107, 905, 1395, 1199, 7345, 15719, 14021, 47425, 36081}}, +{10076, 17, 36958, {1, 1, 3, 9, 9, 63, 109, 15, 323, 73, 1541, 2227, 5197, 12617, 23379, 53415, 105291}}, +{10077, 17, 36967, {1, 3, 3, 5, 5, 41, 85, 99, 3, 895, 1383, 3627, 3897, 1893, 23673, 56501, 78411}}, +{10078, 17, 36974, {1, 1, 7, 1, 25, 27, 45, 185, 475, 577, 1619, 727, 1407, 2383, 9215, 55295, 27349}}, +{10079, 17, 36981, {1, 3, 7, 11, 3, 51, 53, 53, 399, 711, 1075, 511, 5369, 10777, 14419, 63217, 130181}}, +{10080, 17, 37001, {1, 1, 7, 13, 25, 19, 107, 71, 151, 73, 735, 3837, 5307, 10229, 10529, 9989, 111925}}, +{10081, 17, 37012, {1, 1, 1, 15, 19, 59, 65, 77, 465, 957, 1085, 1359, 3959, 15823, 6273, 12565, 126167}}, +{10082, 17, 37015, {1, 1, 5, 5, 31, 53, 23, 173, 407, 795, 41, 3275, 1953, 13673, 26625, 33477, 14149}}, +{10083, 17, 37019, {1, 1, 7, 7, 1, 11, 121, 139, 77, 321, 1939, 2597, 621, 9579, 11629, 13119, 30505}}, +{10084, 17, 37035, {1, 1, 1, 5, 3, 33, 45, 127, 169, 581, 1521, 1019, 6489, 1069, 2469, 40255, 66619}}, +{10085, 17, 37040, {1, 3, 7, 5, 29, 47, 7, 245, 459, 417, 1027, 857, 4905, 11255, 3267, 9491, 78013}}, +{10086, 17, 37063, {1, 3, 5, 9, 25, 49, 61, 215, 19, 731, 303, 1001, 6031, 3705, 7797, 31957, 119383}}, +{10087, 17, 37064, {1, 3, 5, 5, 1, 9, 37, 187, 235, 453, 963, 2833, 3501, 605, 2763, 41215, 93547}}, +{10088, 17, 37069, {1, 3, 1, 1, 21, 3, 41, 53, 425, 687, 1051, 2365, 7835, 3981, 5557, 61993, 127417}}, +{10089, 17, 37077, {1, 3, 3, 7, 13, 61, 41, 189, 261, 163, 1931, 1803, 2379, 16379, 25453, 17911, 123431}}, +{10090, 17, 37093, {1, 1, 7, 15, 23, 21, 95, 7, 27, 897, 721, 3917, 7971, 4643, 5223, 46583, 32453}}, +{10091, 17, 37097, {1, 1, 7, 7, 1, 25, 83, 109, 223, 573, 533, 449, 6477, 10719, 28705, 8283, 94963}}, +{10092, 17, 37106, {1, 1, 5, 13, 21, 45, 63, 31, 21, 223, 31, 1249, 425, 7199, 11539, 7731, 44333}}, +{10093, 17, 37115, {1, 1, 5, 15, 29, 5, 87, 215, 287, 567, 297, 451, 5867, 15511, 1005, 57469, 87257}}, +{10094, 17, 37118, {1, 3, 5, 11, 13, 51, 117, 139, 377, 1015, 1237, 2053, 7625, 1003, 22673, 64345, 16203}}, +{10095, 17, 37123, {1, 1, 3, 15, 19, 39, 73, 205, 185, 331, 869, 857, 5043, 7247, 25253, 5799, 64857}}, +{10096, 17, 37129, {1, 3, 7, 1, 25, 63, 125, 47, 161, 289, 373, 1603, 1663, 1123, 28907, 37855, 47935}}, +{10097, 17, 37130, {1, 1, 7, 15, 9, 17, 97, 63, 79, 123, 1357, 3055, 2323, 16083, 21861, 38743, 81291}}, +{10098, 17, 37135, {1, 1, 3, 15, 5, 23, 7, 159, 127, 511, 55, 2691, 6823, 16151, 8059, 43021, 18911}}, +{10099, 17, 37137, {1, 1, 3, 9, 27, 19, 41, 75, 375, 921, 1745, 35, 1189, 5857, 29869, 43827, 16899}}, +{10100, 17, 37138, {1, 1, 1, 5, 3, 21, 13, 235, 51, 529, 291, 2619, 5419, 12573, 10907, 8865, 54987}}, +{10101, 17, 37140, {1, 3, 1, 13, 7, 9, 85, 131, 159, 743, 1671, 3001, 4559, 12343, 27563, 49941, 68447}}, +{10102, 17, 37144, {1, 1, 7, 5, 17, 61, 99, 63, 199, 383, 485, 2569, 5329, 645, 18805, 20421, 101229}}, +{10103, 17, 37149, {1, 1, 1, 15, 3, 59, 41, 247, 213, 843, 2003, 125, 7755, 4203, 20277, 47195, 48249}}, +{10104, 17, 37156, {1, 1, 5, 15, 15, 17, 113, 101, 27, 811, 1791, 1777, 749, 14317, 17267, 54467, 118369}}, +{10105, 17, 37159, {1, 3, 3, 3, 19, 37, 23, 117, 275, 733, 1259, 567, 1769, 12071, 5413, 49411, 99259}}, +{10106, 17, 37163, {1, 3, 1, 11, 3, 27, 103, 113, 251, 731, 481, 2771, 3205, 14151, 19403, 30307, 114691}}, +{10107, 17, 37165, {1, 1, 5, 15, 19, 15, 103, 25, 357, 197, 1437, 3621, 4747, 773, 5769, 33465, 28307}}, +{10108, 17, 37183, {1, 1, 5, 15, 5, 17, 89, 87, 423, 611, 549, 2549, 1275, 14545, 2931, 3853, 24577}}, +{10109, 17, 37185, {1, 3, 5, 1, 15, 13, 29, 49, 279, 495, 697, 1015, 4899, 15977, 10765, 47979, 40237}}, +{10110, 17, 37195, {1, 3, 3, 9, 31, 51, 21, 5, 279, 947, 1871, 3075, 5433, 1631, 30075, 30517, 99609}}, +{10111, 17, 37198, {1, 1, 1, 15, 19, 63, 79, 81, 19, 629, 617, 1887, 4015, 15501, 10551, 56419, 108739}}, +{10112, 17, 37203, {1, 1, 3, 9, 31, 15, 45, 37, 43, 349, 1357, 189, 4551, 9363, 15683, 48445, 89279}}, +{10113, 17, 37212, {1, 1, 1, 1, 17, 19, 121, 119, 397, 947, 1797, 613, 1627, 9591, 15779, 62295, 118843}}, +{10114, 17, 37233, {1, 1, 1, 7, 25, 55, 71, 227, 507, 497, 1209, 2919, 5733, 15785, 21437, 40043, 2325}}, +{10115, 17, 37236, {1, 1, 1, 15, 11, 1, 59, 93, 69, 859, 67, 1831, 6345, 5643, 29515, 20337, 77281}}, +{10116, 17, 37240, {1, 3, 5, 9, 19, 53, 59, 63, 161, 853, 697, 1441, 3457, 951, 29659, 15337, 38443}}, +{10117, 17, 37256, {1, 3, 1, 9, 7, 21, 73, 81, 89, 291, 411, 3793, 4639, 2829, 6855, 38113, 32875}}, +{10118, 17, 37264, {1, 1, 7, 1, 15, 3, 79, 35, 363, 459, 907, 1157, 5165, 8021, 10135, 36367, 111991}}, +{10119, 17, 37267, {1, 3, 5, 13, 21, 23, 63, 155, 393, 869, 1553, 3345, 2711, 8249, 24907, 28111, 36667}}, +{10120, 17, 37273, {1, 1, 7, 11, 15, 25, 29, 93, 45, 637, 1473, 2053, 313, 8047, 23411, 8643, 2925}}, +{10121, 17, 37295, {1, 3, 7, 9, 11, 5, 73, 69, 311, 949, 2017, 259, 2861, 10547, 12017, 34125, 74101}}, +{10122, 17, 37315, {1, 3, 1, 13, 19, 61, 115, 59, 447, 787, 1621, 2221, 7841, 5329, 18137, 13857, 51889}}, +{10123, 17, 37330, {1, 3, 7, 13, 1, 23, 117, 49, 449, 541, 7, 3269, 1725, 6677, 15979, 4319, 40919}}, +{10124, 17, 37336, {1, 3, 5, 5, 17, 29, 35, 123, 3, 481, 305, 1589, 4319, 5183, 31907, 53019, 49375}}, +{10125, 17, 37339, {1, 3, 1, 7, 11, 59, 79, 89, 479, 821, 763, 3597, 7457, 13775, 11213, 22777, 80379}}, +{10126, 17, 37342, {1, 1, 3, 7, 13, 17, 65, 155, 335, 671, 331, 895, 7459, 1719, 10675, 60109, 63143}}, +{10127, 17, 37357, {1, 3, 5, 1, 29, 33, 105, 249, 61, 469, 1629, 3777, 4393, 14457, 11701, 6065, 2635}}, +{10128, 17, 37365, {1, 3, 7, 3, 13, 13, 21, 15, 363, 63, 1263, 1479, 1459, 6577, 7481, 30393, 19831}}, +{10129, 17, 37372, {1, 1, 3, 7, 29, 25, 71, 247, 501, 815, 1697, 2457, 4975, 3821, 25759, 24901, 120603}}, +{10130, 17, 37381, {1, 1, 1, 5, 19, 3, 59, 163, 367, 779, 47, 905, 897, 3293, 13951, 25497, 99151}}, +{10131, 17, 37399, {1, 3, 1, 5, 11, 47, 21, 171, 123, 215, 1797, 3741, 4921, 7213, 4847, 3239, 114839}}, +{10132, 17, 37416, {1, 3, 3, 5, 23, 63, 57, 31, 409, 431, 1337, 3301, 4695, 7401, 9383, 12639, 34347}}, +{10133, 17, 37429, {1, 3, 3, 5, 27, 57, 29, 147, 111, 1015, 815, 1509, 3967, 7255, 15109, 26001, 90775}}, +{10134, 17, 37436, {1, 1, 7, 13, 31, 45, 21, 99, 377, 399, 255, 459, 6043, 11055, 5675, 3333, 32813}}, +{10135, 17, 37442, {1, 3, 1, 7, 1, 55, 121, 77, 429, 433, 297, 3181, 3029, 6777, 22795, 61515, 58553}}, +{10136, 17, 37451, {1, 3, 5, 9, 1, 19, 121, 1, 499, 589, 1597, 2219, 1029, 4223, 31613, 45685, 53517}}, +{10137, 17, 37453, {1, 3, 1, 9, 29, 39, 83, 193, 43, 41, 467, 1711, 2761, 10635, 15503, 38043, 120615}}, +{10138, 17, 37475, {1, 1, 7, 13, 27, 61, 1, 181, 163, 613, 221, 63, 6147, 8215, 15093, 2417, 71489}}, +{10139, 17, 37482, {1, 1, 7, 15, 31, 63, 47, 139, 427, 847, 53, 1275, 1019, 9455, 12537, 22467, 129947}}, +{10140, 17, 37489, {1, 1, 5, 3, 7, 1, 67, 189, 501, 319, 37, 2849, 2535, 10917, 11115, 48083, 67255}}, +{10141, 17, 37490, {1, 1, 3, 13, 7, 31, 69, 137, 19, 73, 1553, 3945, 2381, 8761, 3977, 24291, 128189}}, +{10142, 17, 37523, {1, 3, 5, 11, 1, 59, 43, 229, 301, 771, 559, 195, 1675, 12605, 22211, 2915, 90351}}, +{10143, 17, 37525, {1, 3, 3, 9, 13, 27, 97, 33, 273, 229, 1537, 1179, 6985, 11679, 17889, 44673, 126641}}, +{10144, 17, 37530, {1, 1, 7, 3, 31, 29, 41, 123, 491, 639, 269, 45, 2155, 14103, 6725, 50781, 42785}}, +{10145, 17, 37535, {1, 3, 5, 9, 9, 11, 89, 249, 475, 701, 1029, 985, 8167, 439, 31897, 24529, 45759}}, +{10146, 17, 37539, {1, 1, 5, 11, 9, 39, 127, 179, 15, 135, 1437, 3331, 5553, 939, 15319, 64937, 110783}}, +{10147, 17, 37548, {1, 3, 1, 5, 7, 61, 1, 219, 111, 801, 85, 3427, 2533, 12861, 5395, 28969, 48091}}, +{10148, 17, 37559, {1, 1, 1, 9, 23, 57, 77, 41, 61, 635, 457, 231, 8121, 5349, 27021, 64807, 87563}}, +{10149, 17, 37560, {1, 3, 5, 7, 31, 31, 101, 155, 255, 199, 1973, 903, 7681, 15379, 12845, 47943, 60663}}, +{10150, 17, 37566, {1, 1, 5, 7, 1, 7, 71, 121, 323, 669, 193, 1209, 267, 9, 21223, 22037, 121567}}, +{10151, 17, 37597, {1, 3, 1, 5, 17, 29, 97, 189, 219, 813, 187, 1763, 5817, 13185, 467, 40159, 18037}}, +{10152, 17, 37601, {1, 1, 7, 9, 7, 59, 3, 189, 379, 843, 631, 3945, 2909, 4191, 30343, 11223, 105629}}, +{10153, 17, 37602, {1, 3, 1, 3, 15, 17, 23, 73, 439, 699, 657, 451, 6139, 15869, 4101, 32327, 55485}}, +{10154, 17, 37604, {1, 3, 3, 5, 21, 37, 87, 157, 205, 493, 705, 1539, 2193, 13539, 2797, 49063, 55595}}, +{10155, 17, 37616, {1, 1, 5, 11, 11, 41, 5, 131, 445, 781, 1153, 1371, 6763, 3101, 32449, 16065, 86579}}, +{10156, 17, 37622, {1, 3, 5, 1, 23, 51, 97, 87, 161, 261, 269, 2035, 2139, 3049, 32217, 25189, 93571}}, +{10157, 17, 37658, {1, 3, 1, 11, 23, 1, 111, 45, 19, 19, 1767, 3571, 6027, 3593, 17453, 53821, 28121}}, +{10158, 17, 37660, {1, 3, 3, 5, 17, 5, 17, 247, 5, 73, 29, 443, 7713, 15803, 22311, 56755, 100119}}, +{10159, 17, 37667, {1, 3, 1, 13, 7, 1, 41, 139, 317, 977, 1529, 1217, 529, 3231, 21491, 28461, 96699}}, +{10160, 17, 37684, {1, 3, 1, 13, 11, 41, 103, 99, 81, 849, 231, 1729, 761, 711, 11499, 25581, 59433}}, +{10161, 17, 37693, {1, 1, 5, 5, 13, 33, 79, 175, 89, 29, 295, 2867, 1197, 6137, 32063, 23471, 21721}}, +{10162, 17, 37694, {1, 1, 5, 15, 17, 29, 123, 249, 273, 437, 443, 2601, 3957, 11955, 261, 54863, 85727}}, +{10163, 17, 37696, {1, 1, 5, 13, 3, 31, 57, 205, 3, 903, 905, 3851, 757, 13761, 28615, 48185, 33227}}, +{10164, 17, 37706, {1, 3, 7, 1, 1, 1, 107, 15, 307, 405, 45, 297, 4365, 1569, 9263, 13685, 36027}}, +{10165, 17, 37711, {1, 3, 1, 9, 17, 61, 113, 121, 249, 743, 191, 2523, 6621, 5395, 23797, 57975, 51675}}, +{10166, 17, 37730, {1, 3, 5, 3, 27, 21, 49, 113, 59, 989, 501, 2651, 3827, 5121, 29667, 32903, 84199}}, +{10167, 17, 37735, {1, 1, 7, 7, 19, 43, 11, 191, 143, 93, 1167, 2521, 2569, 12187, 28575, 13073, 113545}}, +{10168, 17, 37742, {1, 1, 7, 3, 27, 39, 11, 85, 61, 979, 49, 2191, 2607, 13967, 28123, 48903, 16327}}, +{10169, 17, 37744, {1, 1, 5, 3, 17, 17, 1, 149, 189, 1017, 705, 3119, 6441, 1595, 30533, 18795, 34265}}, +{10170, 17, 37759, {1, 1, 3, 11, 31, 11, 125, 109, 39, 41, 191, 2615, 1377, 16089, 8793, 31425, 90507}}, +{10171, 17, 37777, {1, 1, 1, 1, 23, 15, 21, 245, 337, 649, 585, 2893, 927, 883, 15119, 2595, 127963}}, +{10172, 17, 37783, {1, 3, 5, 3, 13, 17, 123, 167, 471, 5, 1671, 2787, 5081, 12903, 4257, 19213, 2503}}, +{10173, 17, 37784, {1, 1, 5, 7, 21, 57, 75, 171, 509, 591, 85, 407, 1747, 6375, 19641, 55683, 111289}}, +{10174, 17, 37793, {1, 1, 7, 7, 3, 31, 121, 111, 19, 361, 1033, 4033, 2359, 13451, 15095, 61817, 69683}}, +{10175, 17, 37800, {1, 1, 5, 9, 21, 33, 83, 179, 387, 69, 1085, 2147, 2751, 10899, 16971, 40623, 110891}}, +{10176, 17, 37818, {1, 1, 7, 9, 11, 45, 81, 71, 73, 551, 145, 159, 7519, 3459, 5197, 48913, 59045}}, +{10177, 17, 37823, {1, 3, 1, 3, 7, 35, 17, 249, 207, 767, 1189, 1451, 4351, 3673, 28807, 671, 69271}}, +{10178, 17, 37825, {1, 3, 1, 15, 21, 27, 81, 243, 55, 191, 1497, 3205, 1601, 705, 14891, 14403, 130729}}, +{10179, 17, 37828, {1, 3, 1, 7, 17, 43, 41, 123, 507, 201, 1873, 3547, 5681, 1819, 4251, 39661, 57923}}, +{10180, 17, 37832, {1, 3, 1, 9, 3, 59, 57, 235, 445, 479, 961, 1937, 2229, 2511, 15235, 59707, 72261}}, +{10181, 17, 37849, {1, 1, 5, 13, 9, 63, 67, 217, 63, 259, 175, 2469, 3075, 12365, 7727, 42215, 12635}}, +{10182, 17, 37856, {1, 1, 3, 13, 11, 9, 125, 131, 17, 399, 675, 767, 7349, 10433, 21615, 46823, 3955}}, +{10183, 17, 37861, {1, 1, 3, 15, 19, 53, 73, 171, 125, 531, 1093, 1449, 2931, 10897, 12263, 9799, 98251}}, +{10184, 17, 37862, {1, 1, 5, 5, 11, 27, 33, 9, 503, 545, 339, 1099, 1973, 13261, 26871, 14569, 22755}}, +{10185, 17, 37886, {1, 3, 7, 1, 19, 5, 79, 133, 247, 1021, 1431, 3707, 4603, 3285, 5469, 46963, 98203}}, +{10186, 17, 37893, {1, 3, 5, 7, 15, 11, 87, 169, 495, 763, 1295, 2533, 4213, 8671, 21683, 12521, 90071}}, +{10187, 17, 37915, {1, 1, 3, 1, 17, 55, 7, 165, 313, 659, 49, 377, 6675, 15255, 9881, 11751, 87789}}, +{10188, 17, 37922, {1, 3, 1, 15, 3, 49, 27, 109, 145, 1011, 1939, 3201, 6141, 7229, 20741, 59285, 129365}}, +{10189, 17, 37936, {1, 1, 5, 5, 5, 51, 117, 17, 363, 795, 1343, 2637, 6209, 1045, 22515, 10687, 48487}}, +{10190, 17, 37939, {1, 1, 5, 15, 1, 37, 91, 241, 245, 703, 505, 3369, 6163, 10265, 12497, 46301, 109523}}, +{10191, 17, 37945, {1, 1, 7, 11, 3, 37, 67, 35, 229, 823, 193, 913, 3331, 4475, 9271, 11859, 52709}}, +{10192, 17, 37956, {1, 1, 3, 3, 7, 25, 61, 159, 81, 1011, 1491, 1439, 1031, 765, 9839, 61891, 20969}}, +{10193, 17, 37960, {1, 3, 3, 7, 25, 39, 73, 59, 101, 101, 225, 1105, 5943, 5223, 12585, 16411, 62699}}, +{10194, 17, 37971, {1, 1, 7, 5, 25, 19, 27, 113, 465, 319, 2035, 2127, 1319, 11793, 26821, 44805, 28217}}, +{10195, 17, 37980, {1, 3, 5, 11, 7, 9, 81, 107, 67, 31, 1503, 3303, 4451, 11417, 32681, 26861, 54845}}, +{10196, 17, 38002, {1, 3, 1, 1, 3, 51, 93, 235, 93, 247, 2027, 1517, 6797, 1703, 10233, 45313, 60771}}, +{10197, 17, 38007, {1, 3, 3, 15, 25, 11, 83, 77, 413, 189, 119, 597, 2199, 12347, 7935, 40191, 125569}}, +{10198, 17, 38018, {1, 3, 7, 9, 11, 3, 77, 31, 89, 163, 1993, 3017, 3973, 10943, 22247, 45565, 7261}}, +{10199, 17, 38020, {1, 3, 7, 7, 15, 13, 7, 155, 373, 893, 607, 3521, 7455, 13809, 6145, 31743, 86329}}, +{10200, 17, 38038, {1, 1, 1, 15, 25, 41, 111, 65, 11, 627, 59, 2725, 995, 3761, 25361, 45189, 48355}}, +{10201, 17, 38041, {1, 1, 7, 5, 29, 43, 91, 139, 323, 503, 679, 4079, 403, 1899, 1425, 26989, 117057}}, +{10202, 17, 38044, {1, 3, 5, 13, 1, 17, 19, 61, 205, 833, 345, 1031, 7995, 999, 27469, 15943, 88011}}, +{10203, 17, 38048, {1, 3, 1, 7, 23, 49, 123, 9, 11, 761, 1163, 669, 3837, 15225, 23393, 19513, 9457}}, +{10204, 17, 38051, {1, 1, 5, 9, 9, 33, 29, 123, 277, 433, 1799, 1583, 3133, 13461, 26443, 15807, 80173}}, +{10205, 17, 38054, {1, 3, 7, 3, 31, 29, 77, 105, 297, 617, 491, 647, 6541, 5033, 31841, 48405, 126985}}, +{10206, 17, 38065, {1, 1, 5, 5, 31, 39, 17, 25, 3, 279, 89, 3985, 3333, 5681, 3701, 36319, 12585}}, +{10207, 17, 38066, {1, 1, 7, 13, 13, 19, 93, 129, 51, 875, 1083, 1739, 5193, 6217, 10033, 51839, 66071}}, +{10208, 17, 38077, {1, 1, 7, 9, 15, 23, 93, 121, 507, 115, 707, 3181, 1521, 9609, 4577, 54389, 19167}}, +{10209, 17, 38090, {1, 3, 3, 7, 17, 51, 19, 29, 387, 711, 1105, 1627, 4421, 15183, 14149, 26485, 106425}}, +{10210, 17, 38109, {1, 3, 3, 15, 25, 59, 11, 45, 259, 1019, 1997, 3373, 5083, 5701, 30217, 44845, 67559}}, +{10211, 17, 38119, {1, 3, 3, 9, 17, 47, 5, 103, 477, 785, 235, 1523, 1505, 8811, 15255, 53493, 4383}}, +{10212, 17, 38120, {1, 3, 7, 3, 7, 37, 73, 247, 397, 409, 1065, 525, 5665, 8533, 30627, 19035, 22937}}, +{10213, 17, 38123, {1, 3, 3, 15, 15, 47, 123, 215, 413, 249, 55, 2563, 8033, 8743, 18659, 7947, 56057}}, +{10214, 17, 38146, {1, 1, 7, 3, 11, 61, 103, 109, 313, 293, 149, 999, 901, 13387, 15351, 52973, 68385}}, +{10215, 17, 38155, {1, 1, 1, 5, 31, 13, 57, 43, 263, 141, 335, 2777, 3435, 4231, 20623, 2597, 33481}}, +{10216, 17, 38160, {1, 1, 7, 13, 21, 53, 101, 75, 237, 275, 1903, 3501, 8023, 3651, 19609, 44417, 60287}}, +{10217, 17, 38181, {1, 1, 1, 1, 13, 43, 83, 255, 355, 567, 1781, 2943, 1061, 2701, 24861, 58381, 60255}}, +{10218, 17, 38188, {1, 1, 3, 9, 25, 5, 81, 85, 445, 857, 517, 3687, 2641, 6699, 19273, 4481, 8715}}, +{10219, 17, 38199, {1, 1, 3, 7, 17, 39, 33, 31, 29, 269, 379, 3149, 4731, 10387, 7941, 49199, 18423}}, +{10220, 17, 38203, {1, 1, 7, 15, 19, 37, 105, 157, 185, 1023, 1865, 53, 6765, 3, 22897, 17019, 109521}}, +{10221, 17, 38225, {1, 3, 7, 5, 5, 7, 117, 211, 19, 149, 1091, 3721, 201, 4455, 18965, 51401, 67225}}, +{10222, 17, 38226, {1, 3, 5, 11, 1, 55, 101, 41, 469, 271, 1251, 949, 861, 11903, 14773, 25675, 114161}}, +{10223, 17, 38231, {1, 1, 7, 7, 23, 13, 103, 185, 137, 575, 797, 1195, 5301, 13307, 12043, 26003, 31719}}, +{10224, 17, 38244, {1, 1, 5, 7, 11, 51, 17, 71, 321, 559, 1461, 3571, 1033, 15575, 7097, 14703, 52359}}, +{10225, 17, 38248, {1, 1, 1, 5, 21, 9, 123, 211, 233, 81, 111, 1433, 7825, 11771, 30743, 23993, 48717}}, +{10226, 17, 38259, {1, 3, 5, 15, 7, 3, 109, 33, 99, 135, 393, 3463, 7271, 14387, 30723, 19079, 83073}}, +{10227, 17, 38268, {1, 3, 3, 15, 3, 51, 77, 219, 409, 11, 67, 3787, 5155, 9259, 7185, 21611, 32577}}, +{10228, 17, 38271, {1, 3, 7, 1, 5, 49, 125, 85, 151, 301, 887, 1765, 5, 12849, 11775, 11319, 29547}}, +{10229, 17, 38272, {1, 1, 7, 11, 17, 15, 105, 29, 327, 637, 1493, 3361, 1823, 14709, 18355, 741, 57807}}, +{10230, 17, 38278, {1, 1, 7, 7, 3, 27, 15, 113, 227, 617, 1543, 1719, 8065, 13627, 23525, 20511, 64759}}, +{10231, 17, 38292, {1, 1, 3, 3, 21, 47, 89, 177, 381, 711, 1367, 2405, 887, 2351, 22957, 49679, 5963}}, +{10232, 17, 38296, {1, 3, 7, 9, 7, 1, 39, 71, 9, 275, 875, 1385, 6215, 10419, 25921, 63427, 18031}}, +{10233, 17, 38318, {1, 1, 7, 5, 23, 57, 27, 7, 445, 111, 953, 37, 2769, 1967, 8165, 35417, 36471}}, +{10234, 17, 38326, {1, 3, 3, 11, 23, 17, 119, 113, 275, 625, 1957, 2795, 3815, 7937, 11049, 31939, 128053}}, +{10235, 17, 38338, {1, 3, 3, 5, 7, 35, 45, 41, 251, 491, 1953, 3201, 751, 5705, 595, 27003, 77917}}, +{10236, 17, 38347, {1, 3, 5, 3, 25, 17, 55, 137, 299, 541, 289, 2225, 4667, 3569, 13687, 36193, 75705}}, +{10237, 17, 38373, {1, 1, 7, 15, 21, 9, 27, 157, 469, 441, 193, 2097, 4863, 2147, 31197, 24283, 102039}}, +{10238, 17, 38378, {1, 1, 1, 11, 17, 39, 73, 37, 91, 121, 1283, 367, 1875, 14365, 28349, 60993, 10791}}, +{10239, 17, 38380, {1, 3, 5, 9, 13, 63, 89, 53, 459, 347, 343, 2321, 5237, 2497, 279, 63833, 10709}}, +{10240, 17, 38388, {1, 1, 1, 15, 11, 23, 41, 79, 45, 567, 1217, 1669, 1679, 2561, 16191, 49041, 4081}}, +{10241, 17, 38392, {1, 3, 1, 5, 3, 9, 103, 245, 47, 561, 229, 2945, 6563, 797, 21571, 25769, 12995}}, +{10242, 17, 38397, {1, 3, 5, 7, 5, 47, 99, 55, 49, 951, 765, 2095, 8021, 4389, 20501, 26047, 119967}}, +{10243, 17, 38398, {1, 1, 5, 3, 15, 47, 81, 121, 379, 527, 419, 1093, 367, 10939, 17181, 13905, 49859}}, +{10244, 17, 38401, {1, 3, 3, 5, 7, 59, 53, 255, 131, 685, 1677, 3757, 3601, 89, 6225, 32705, 28287}}, +{10245, 17, 38404, {1, 3, 7, 1, 7, 55, 85, 47, 425, 793, 605, 2313, 791, 4247, 9693, 10633, 82915}}, +{10246, 17, 38422, {1, 3, 5, 13, 13, 49, 127, 213, 27, 657, 419, 55, 6289, 295, 4211, 8899, 120237}}, +{10247, 17, 38432, {1, 1, 7, 11, 11, 7, 75, 35, 315, 125, 517, 3677, 2323, 6897, 11535, 36789, 20179}}, +{10248, 17, 38469, {1, 1, 5, 9, 11, 3, 77, 43, 323, 647, 383, 485, 3937, 9081, 27745, 59149, 103433}}, +{10249, 17, 38482, {1, 3, 3, 13, 3, 47, 91, 81, 115, 625, 2003, 3601, 531, 113, 20719, 47391, 111039}}, +{10250, 17, 38493, {1, 1, 3, 13, 5, 49, 123, 189, 109, 325, 497, 923, 3861, 14029, 22651, 19857, 104801}}, +{10251, 17, 38507, {1, 1, 5, 3, 29, 23, 25, 23, 501, 371, 1983, 1303, 2261, 11865, 13281, 2587, 75741}}, +{10252, 17, 38518, {1, 3, 5, 13, 27, 61, 45, 11, 157, 615, 897, 1529, 2213, 757, 30105, 2011, 27267}}, +{10253, 17, 38521, {1, 3, 5, 13, 29, 31, 95, 159, 449, 307, 1575, 1897, 2301, 14023, 6921, 30543, 31843}}, +{10254, 17, 38527, {1, 3, 3, 5, 1, 1, 79, 147, 437, 623, 1161, 3407, 3073, 15425, 4329, 19651, 90597}}, +{10255, 17, 38533, {1, 1, 1, 11, 17, 7, 43, 171, 447, 841, 573, 3775, 5517, 3629, 18241, 31907, 51423}}, +{10256, 17, 38534, {1, 1, 3, 7, 15, 53, 111, 203, 171, 963, 1983, 2017, 6067, 12281, 3417, 7431, 33803}}, +{10257, 17, 38552, {1, 3, 1, 1, 31, 49, 125, 65, 7, 579, 1709, 1815, 2643, 11537, 30093, 11813, 65157}}, +{10258, 17, 38561, {1, 3, 7, 15, 1, 3, 61, 21, 163, 809, 1263, 2577, 7811, 12611, 6921, 18529, 25709}}, +{10259, 17, 38576, {1, 1, 3, 5, 17, 43, 13, 81, 29, 905, 1975, 589, 5875, 15683, 29447, 46453, 127911}}, +{10260, 17, 38581, {1, 1, 5, 3, 19, 29, 11, 67, 375, 771, 755, 3939, 1465, 3275, 1119, 24695, 105105}}, +{10261, 17, 38585, {1, 1, 3, 11, 23, 37, 33, 135, 329, 733, 245, 2353, 2547, 7823, 16265, 5975, 37877}}, +{10262, 17, 38594, {1, 3, 7, 13, 15, 9, 47, 181, 239, 723, 1219, 409, 1685, 5493, 14189, 18107, 26231}}, +{10263, 17, 38606, {1, 1, 5, 1, 9, 1, 65, 125, 439, 591, 1499, 3797, 5879, 4231, 18655, 9643, 42265}}, +{10264, 17, 38613, {1, 1, 7, 7, 11, 51, 111, 47, 169, 39, 45, 2211, 6729, 10987, 22367, 27257, 112711}}, +{10265, 17, 38617, {1, 3, 5, 3, 19, 61, 89, 185, 23, 793, 1457, 1743, 3743, 15063, 14053, 50201, 109175}}, +{10266, 17, 38634, {1, 1, 5, 13, 31, 51, 69, 135, 427, 527, 1673, 2393, 5829, 683, 1509, 56617, 105735}}, +{10267, 17, 38644, {1, 1, 1, 15, 31, 51, 3, 105, 125, 593, 1589, 3217, 7449, 525, 30599, 11689, 14781}}, +{10268, 17, 38651, {1, 1, 1, 11, 9, 37, 113, 45, 487, 961, 87, 1461, 3521, 8645, 19771, 43817, 43277}}, +{10269, 17, 38661, {1, 1, 7, 3, 7, 11, 45, 97, 11, 593, 319, 2597, 37, 4157, 6669, 29929, 17213}}, +{10270, 17, 38665, {1, 3, 7, 3, 29, 21, 101, 93, 289, 975, 1937, 3423, 757, 7075, 12575, 26801, 90989}}, +{10271, 17, 38668, {1, 1, 7, 15, 25, 49, 49, 149, 503, 365, 1359, 2155, 7977, 14955, 18439, 44269, 88995}}, +{10272, 17, 38674, {1, 3, 7, 13, 25, 27, 15, 67, 157, 873, 339, 2143, 1405, 12209, 30939, 36109, 107699}}, +{10273, 17, 38689, {1, 3, 5, 5, 21, 33, 121, 95, 61, 159, 1423, 2899, 3811, 263, 9139, 54481, 107375}}, +{10274, 17, 38695, {1, 1, 7, 7, 13, 49, 83, 53, 267, 131, 673, 3945, 5255, 2009, 21017, 41749, 44817}}, +{10275, 17, 38696, {1, 3, 1, 13, 25, 57, 125, 5, 323, 653, 221, 2013, 7225, 8719, 28049, 41953, 14725}}, +{10276, 17, 38707, {1, 3, 7, 7, 5, 13, 35, 161, 221, 951, 769, 717, 267, 2233, 23387, 47411, 95739}}, +{10277, 17, 38710, {1, 3, 7, 11, 23, 47, 37, 67, 501, 159, 763, 4045, 5125, 5667, 9895, 33041, 101171}}, +{10278, 17, 38716, {1, 1, 7, 1, 31, 31, 111, 183, 33, 895, 1819, 3593, 1285, 10145, 3679, 36615, 82863}}, +{10279, 17, 38733, {1, 3, 5, 7, 21, 59, 55, 163, 139, 855, 1903, 3229, 3745, 10289, 28831, 46895, 12647}}, +{10280, 17, 38736, {1, 3, 7, 9, 25, 31, 113, 177, 459, 201, 565, 2089, 725, 9273, 26249, 5987, 49573}}, +{10281, 17, 38742, {1, 1, 7, 15, 3, 37, 49, 145, 121, 803, 1197, 2797, 21, 833, 2277, 28189, 93171}}, +{10282, 17, 38751, {1, 1, 7, 7, 13, 31, 93, 153, 345, 363, 1825, 1481, 3347, 13277, 26119, 63153, 118231}}, +{10283, 17, 38752, {1, 3, 1, 11, 31, 9, 33, 95, 433, 595, 1131, 465, 1797, 15453, 32527, 40789, 37799}}, +{10284, 17, 38775, {1, 1, 5, 11, 31, 29, 83, 33, 243, 633, 1325, 3843, 7717, 851, 29789, 48827, 89209}}, +{10285, 17, 38779, {1, 1, 3, 7, 25, 31, 127, 219, 281, 51, 1843, 3363, 5985, 1697, 3083, 18967, 117421}}, +{10286, 17, 38792, {1, 3, 7, 9, 1, 19, 125, 199, 41, 117, 903, 1131, 7731, 14431, 24753, 62841, 50251}}, +{10287, 17, 38798, {1, 3, 5, 5, 11, 37, 19, 249, 97, 59, 1849, 1151, 2171, 1217, 31277, 26547, 86601}}, +{10288, 17, 38819, {1, 3, 3, 7, 29, 35, 21, 7, 93, 971, 1155, 1847, 89, 6759, 29611, 40793, 88327}}, +{10289, 17, 38822, {1, 3, 5, 5, 29, 23, 91, 71, 479, 943, 1839, 3699, 2491, 9603, 15061, 43221, 20435}}, +{10290, 17, 38839, {1, 3, 3, 7, 29, 11, 15, 83, 21, 585, 501, 161, 4797, 11243, 14879, 12519, 19069}}, +{10291, 17, 38851, {1, 1, 5, 15, 13, 37, 9, 215, 433, 925, 987, 3253, 8027, 7013, 20801, 12891, 36497}}, +{10292, 17, 38854, {1, 3, 7, 1, 15, 31, 95, 85, 355, 1013, 1963, 2943, 1925, 13691, 15237, 28943, 63873}}, +{10293, 17, 38863, {1, 3, 3, 1, 17, 21, 99, 201, 465, 819, 665, 901, 2671, 2457, 29603, 35275, 28339}}, +{10294, 17, 38865, {1, 1, 1, 9, 5, 23, 111, 107, 27, 433, 1341, 91, 6879, 1933, 25433, 37435, 99061}}, +{10295, 17, 38887, {1, 3, 5, 13, 11, 55, 27, 151, 397, 591, 89, 1221, 5581, 2701, 15033, 41879, 71415}}, +{10296, 17, 38896, {1, 3, 3, 5, 17, 35, 15, 119, 487, 903, 875, 3391, 7731, 12181, 27823, 32561, 59133}}, +{10297, 17, 38901, {1, 1, 5, 7, 15, 33, 67, 53, 307, 947, 857, 2713, 803, 765, 4175, 15513, 23985}}, +{10298, 17, 38912, {1, 3, 1, 15, 23, 11, 15, 101, 467, 429, 153, 3205, 5627, 7555, 22515, 12721, 7905}}, +{10299, 17, 38918, {1, 1, 3, 7, 19, 61, 55, 187, 413, 49, 1031, 3415, 3903, 6933, 20017, 50429, 116407}}, +{10300, 17, 38929, {1, 3, 1, 13, 13, 15, 33, 1, 403, 441, 1969, 775, 2209, 15061, 15657, 28819, 62705}}, +{10301, 17, 38941, {1, 1, 5, 13, 13, 47, 67, 97, 87, 677, 1639, 3281, 1395, 8499, 18449, 49935, 25775}}, +{10302, 17, 38948, {1, 3, 3, 13, 7, 13, 77, 45, 405, 881, 293, 2263, 6517, 15415, 25809, 5681, 31327}}, +{10303, 17, 38965, {1, 3, 7, 5, 5, 51, 63, 171, 401, 671, 1631, 1735, 7361, 8741, 31933, 44761, 12209}}, +{10304, 17, 38969, {1, 1, 7, 3, 13, 3, 39, 223, 105, 781, 241, 2895, 5165, 12135, 5683, 63009, 58399}}, +{10305, 17, 38977, {1, 1, 5, 11, 29, 11, 37, 1, 445, 157, 219, 2269, 3025, 5721, 24539, 41879, 128445}}, +{10306, 17, 38987, {1, 3, 7, 15, 23, 21, 125, 105, 141, 101, 1981, 3765, 5349, 13781, 10055, 7069, 77721}}, +{10307, 17, 38992, {1, 1, 7, 9, 3, 37, 111, 95, 33, 53, 1021, 1629, 6945, 4657, 19977, 36715, 101401}}, +{10308, 17, 38995, {1, 3, 3, 1, 9, 5, 65, 77, 459, 471, 1045, 2351, 2787, 13001, 16211, 22585, 116205}}, +{10309, 17, 39001, {1, 1, 7, 9, 25, 41, 21, 187, 471, 997, 583, 2243, 6537, 11837, 21089, 51051, 98517}}, +{10310, 17, 39004, {1, 1, 7, 5, 13, 15, 81, 39, 223, 935, 951, 5, 4315, 11789, 18365, 49647, 92461}}, +{10311, 17, 39011, {1, 3, 3, 5, 11, 15, 97, 245, 43, 819, 1415, 3287, 2051, 15879, 21727, 54467, 53875}}, +{10312, 17, 39018, {1, 3, 1, 11, 7, 47, 125, 155, 301, 469, 805, 3789, 6967, 12117, 30369, 55183, 12671}}, +{10313, 17, 39025, {1, 1, 3, 13, 17, 25, 45, 199, 69, 1015, 581, 3891, 7743, 9273, 7639, 59055, 93923}}, +{10314, 17, 39031, {1, 1, 5, 11, 9, 47, 39, 251, 489, 47, 83, 2147, 943, 1959, 21361, 5325, 106079}}, +{10315, 17, 39032, {1, 3, 5, 13, 27, 59, 35, 1, 155, 367, 165, 2665, 3021, 1127, 28585, 45347, 66763}}, +{10316, 17, 39044, {1, 3, 1, 5, 31, 31, 15, 125, 485, 581, 1987, 2293, 4573, 11431, 20773, 58661, 79869}}, +{10317, 17, 39056, {1, 3, 5, 15, 31, 11, 109, 229, 11, 831, 1545, 919, 6125, 9337, 4169, 58041, 67577}}, +{10318, 17, 39065, {1, 1, 1, 3, 1, 43, 13, 89, 89, 863, 1607, 1897, 4831, 5239, 24503, 51853, 126983}}, +{10319, 17, 39066, {1, 1, 5, 11, 11, 37, 11, 253, 495, 83, 941, 3665, 5187, 13679, 11811, 29563, 80571}}, +{10320, 17, 39084, {1, 3, 7, 15, 3, 45, 45, 157, 477, 321, 1401, 1133, 271, 12455, 31543, 18223, 116701}}, +{10321, 17, 39095, {1, 1, 5, 3, 7, 5, 17, 127, 195, 583, 715, 3975, 6865, 7617, 6749, 15687, 42375}}, +{10322, 17, 39099, {1, 1, 1, 7, 5, 7, 21, 163, 303, 45, 1435, 1345, 2489, 15333, 18459, 60837, 104339}}, +{10323, 17, 39101, {1, 3, 1, 1, 7, 23, 39, 93, 347, 947, 345, 1713, 6383, 15411, 10849, 32559, 126431}}, +{10324, 17, 39102, {1, 3, 1, 5, 19, 41, 119, 213, 3, 991, 1745, 3989, 155, 7761, 28179, 59805, 106759}}, +{10325, 17, 39104, {1, 1, 7, 5, 25, 11, 105, 89, 505, 711, 1213, 2831, 8087, 8855, 31171, 49749, 921}}, +{10326, 17, 39109, {1, 1, 5, 5, 23, 61, 49, 101, 209, 805, 123, 17, 805, 9033, 25753, 33261, 33753}}, +{10327, 17, 39114, {1, 1, 3, 5, 5, 17, 93, 223, 179, 307, 869, 1851, 4313, 477, 12925, 21365, 103999}}, +{10328, 17, 39121, {1, 1, 7, 13, 21, 23, 105, 53, 393, 939, 291, 2407, 4815, 4961, 30305, 8613, 62599}}, +{10329, 17, 39122, {1, 1, 1, 11, 9, 55, 55, 135, 411, 225, 205, 3357, 4553, 10139, 17649, 51209, 94037}}, +{10330, 17, 39127, {1, 3, 5, 15, 17, 17, 119, 15, 121, 581, 169, 2495, 3673, 7173, 13099, 7683, 53397}}, +{10331, 17, 39150, {1, 3, 1, 11, 29, 29, 119, 255, 447, 85, 845, 1015, 2793, 2471, 12639, 32155, 99193}}, +{10332, 17, 39172, {1, 3, 3, 3, 9, 33, 77, 251, 425, 1007, 1003, 2697, 4989, 7799, 26581, 15963, 50443}}, +{10333, 17, 39181, {1, 3, 1, 5, 13, 47, 13, 203, 473, 529, 147, 2061, 343, 4029, 14615, 51355, 27863}}, +{10334, 17, 39184, {1, 1, 3, 15, 19, 63, 39, 25, 241, 487, 461, 3021, 3545, 4537, 8991, 17689, 77131}}, +{10335, 17, 39193, {1, 3, 5, 5, 7, 1, 61, 89, 495, 943, 1061, 405, 449, 12785, 25151, 24497, 65709}}, +{10336, 17, 39199, {1, 1, 5, 3, 7, 43, 51, 55, 193, 615, 37, 1377, 2541, 3861, 29447, 32269, 106335}}, +{10337, 17, 39200, {1, 1, 5, 11, 21, 55, 103, 43, 421, 673, 175, 979, 5175, 1301, 8617, 55875, 111095}}, +{10338, 17, 39206, {1, 3, 5, 13, 29, 31, 33, 241, 129, 473, 201, 2015, 447, 99, 23781, 33517, 107851}}, +{10339, 17, 39209, {1, 3, 5, 3, 13, 27, 125, 205, 287, 957, 1609, 2907, 5481, 14239, 19719, 22459, 75365}}, +{10340, 17, 39235, {1, 3, 3, 5, 27, 23, 53, 39, 329, 381, 745, 517, 7853, 5333, 2773, 29119, 7049}}, +{10341, 17, 39238, {1, 3, 5, 15, 29, 11, 89, 3, 503, 755, 485, 2669, 6737, 16241, 7345, 50991, 107291}}, +{10342, 17, 39242, {1, 1, 7, 3, 17, 45, 11, 3, 157, 715, 577, 1309, 3323, 9401, 10573, 55135, 100067}}, +{10343, 17, 39244, {1, 1, 5, 9, 19, 21, 49, 103, 349, 503, 1447, 675, 4273, 7673, 27507, 57697, 80875}}, +{10344, 17, 39280, {1, 1, 5, 1, 9, 53, 19, 99, 225, 915, 431, 781, 3291, 4383, 26505, 50339, 99799}}, +{10345, 17, 39290, {1, 3, 1, 5, 7, 37, 87, 201, 481, 991, 1553, 1867, 7893, 13147, 18647, 10373, 51951}}, +{10346, 17, 39292, {1, 1, 3, 13, 17, 37, 19, 199, 253, 901, 759, 3545, 3565, 10461, 11867, 57605, 75555}}, +{10347, 17, 39296, {1, 1, 1, 5, 15, 23, 115, 69, 363, 673, 201, 2451, 3197, 10059, 1667, 47145, 89}}, +{10348, 17, 39305, {1, 1, 7, 13, 19, 31, 63, 35, 93, 939, 1057, 3221, 951, 3575, 9659, 7005, 2087}}, +{10349, 17, 39308, {1, 1, 7, 15, 15, 21, 79, 7, 23, 595, 1123, 1909, 6863, 7383, 28067, 30113, 107497}}, +{10350, 17, 39311, {1, 3, 5, 7, 11, 47, 41, 177, 163, 855, 1853, 3837, 6995, 9727, 27285, 62667, 77531}}, +{10351, 17, 39326, {1, 3, 7, 3, 3, 29, 99, 163, 95, 893, 1049, 2001, 2961, 601, 4613, 59745, 61203}}, +{10352, 17, 39329, {1, 3, 5, 1, 27, 5, 5, 47, 119, 631, 1171, 3467, 2115, 8581, 24863, 64193, 52093}}, +{10353, 17, 39330, {1, 1, 1, 5, 9, 51, 49, 251, 97, 177, 311, 993, 1103, 7875, 25273, 51587, 9081}}, +{10354, 17, 39336, {1, 3, 7, 5, 31, 21, 43, 137, 143, 779, 691, 2331, 5073, 5409, 13335, 999, 127765}}, +{10355, 17, 39339, {1, 1, 7, 1, 31, 33, 27, 193, 175, 755, 1559, 659, 5663, 10491, 29209, 50979, 116683}}, +{10356, 17, 39353, {1, 3, 1, 7, 23, 49, 1, 39, 117, 45, 1767, 3503, 4901, 5699, 23613, 44195, 17867}}, +{10357, 17, 39359, {1, 3, 7, 13, 3, 5, 105, 89, 343, 627, 1117, 3419, 2081, 5747, 7919, 44329, 125133}}, +{10358, 17, 39374, {1, 3, 1, 9, 13, 33, 53, 203, 17, 927, 127, 2195, 415, 11301, 15115, 54467, 128777}}, +{10359, 17, 39391, {1, 3, 7, 1, 9, 41, 15, 89, 403, 333, 57, 1159, 1325, 2335, 10609, 20485, 110317}}, +{10360, 17, 39392, {1, 3, 3, 5, 3, 61, 25, 155, 477, 907, 359, 359, 5119, 8157, 29945, 38955, 106485}}, +{10361, 17, 39402, {1, 1, 7, 5, 19, 47, 91, 89, 367, 703, 761, 431, 6813, 2983, 29739, 52453, 125935}}, +{10362, 17, 39409, {1, 1, 1, 7, 7, 61, 127, 239, 277, 649, 1111, 2319, 1737, 5071, 13469, 52119, 48899}}, +{10363, 17, 39410, {1, 3, 5, 15, 7, 17, 21, 209, 265, 895, 719, 263, 6871, 5835, 28483, 49859, 67619}}, +{10364, 17, 39415, {1, 3, 3, 15, 3, 7, 113, 109, 333, 545, 597, 1193, 7593, 3961, 25169, 64673, 47839}}, +{10365, 17, 39419, {1, 1, 1, 3, 15, 45, 55, 41, 317, 719, 1587, 2953, 2441, 1127, 9183, 21637, 69075}}, +{10366, 17, 39431, {1, 3, 1, 9, 25, 57, 59, 29, 89, 833, 379, 1085, 763, 14747, 30797, 24089, 83367}}, +{10367, 17, 39432, {1, 1, 5, 13, 29, 3, 117, 239, 453, 595, 243, 3103, 6047, 631, 22739, 41669, 11683}}, +{10368, 17, 39438, {1, 1, 3, 1, 9, 53, 81, 21, 67, 735, 827, 3519, 7991, 16249, 4183, 61295, 4531}}, +{10369, 17, 39443, {1, 3, 5, 3, 1, 57, 47, 99, 91, 71, 1421, 2949, 5951, 15439, 25239, 26453, 50199}}, +{10370, 17, 39445, {1, 1, 3, 15, 21, 3, 93, 21, 41, 809, 855, 727, 7797, 6957, 15835, 27175, 60617}}, +{10371, 17, 39449, {1, 1, 1, 13, 1, 3, 83, 135, 197, 171, 1459, 2841, 5021, 6961, 30675, 38295, 39555}}, +{10372, 17, 39461, {1, 1, 7, 5, 7, 49, 83, 83, 117, 73, 639, 2717, 651, 3253, 31635, 14427, 116509}}, +{10373, 17, 39462, {1, 3, 1, 3, 23, 63, 15, 23, 433, 539, 903, 2655, 1787, 12901, 12013, 41315, 128217}}, +{10374, 17, 39485, {1, 3, 1, 7, 5, 19, 3, 137, 493, 681, 775, 3725, 4855, 10817, 25277, 3631, 60779}}, +{10375, 17, 39508, {1, 3, 3, 5, 1, 7, 67, 39, 309, 77, 1679, 2853, 3803, 2065, 7461, 1555, 88219}}, +{10376, 17, 39515, {1, 1, 3, 5, 3, 47, 17, 193, 429, 789, 1525, 969, 7905, 6523, 10149, 64689, 40037}}, +{10377, 17, 39522, {1, 3, 5, 7, 21, 17, 65, 61, 255, 517, 1765, 2603, 4929, 11073, 7871, 29313, 84739}}, +{10378, 17, 39533, {1, 1, 5, 7, 13, 55, 111, 63, 499, 9, 1715, 957, 6951, 15839, 13531, 45483, 17923}}, +{10379, 17, 39541, {1, 1, 1, 1, 27, 7, 13, 135, 27, 259, 1735, 3847, 7931, 14777, 15249, 62367, 45773}}, +{10380, 17, 39542, {1, 1, 5, 3, 5, 7, 99, 171, 491, 1007, 195, 2223, 2657, 13557, 6549, 47125, 25117}}, +{10381, 17, 39557, {1, 1, 1, 9, 13, 21, 59, 205, 205, 951, 1707, 3387, 2901, 5463, 13403, 1917, 90591}}, +{10382, 17, 39570, {1, 3, 3, 5, 21, 37, 71, 91, 297, 885, 1415, 355, 2877, 9261, 6485, 45855, 90081}}, +{10383, 17, 39575, {1, 1, 5, 9, 23, 51, 107, 75, 93, 1015, 439, 3589, 3307, 337, 17247, 42285, 85417}}, +{10384, 17, 39576, {1, 1, 7, 15, 29, 33, 51, 23, 269, 35, 1241, 1137, 729, 14531, 14603, 47547, 17151}}, +{10385, 17, 39591, {1, 3, 3, 1, 25, 21, 51, 229, 55, 561, 653, 3289, 7629, 15445, 21115, 35941, 113669}}, +{10386, 17, 39597, {1, 1, 5, 15, 1, 33, 119, 171, 75, 621, 2025, 3235, 1895, 8279, 13205, 61085, 105401}}, +{10387, 17, 39603, {1, 3, 1, 7, 25, 33, 73, 25, 1, 531, 603, 77, 4939, 5957, 28065, 59467, 66659}}, +{10388, 17, 39610, {1, 1, 7, 3, 17, 61, 103, 47, 289, 39, 917, 2515, 6607, 1129, 23361, 46321, 81929}}, +{10389, 17, 39612, {1, 1, 7, 5, 29, 53, 5, 191, 151, 19, 895, 1215, 5401, 9861, 24751, 15481, 34179}}, +{10390, 17, 39617, {1, 3, 7, 9, 5, 3, 29, 205, 173, 547, 727, 947, 5619, 4181, 30621, 5553, 37587}}, +{10391, 17, 39620, {1, 1, 3, 9, 13, 59, 95, 145, 287, 849, 1483, 3375, 3531, 6585, 29565, 4243, 88333}}, +{10392, 17, 39624, {1, 1, 7, 11, 21, 23, 59, 223, 71, 743, 443, 697, 7789, 10371, 28565, 45127, 37967}}, +{10393, 17, 39627, {1, 3, 5, 11, 15, 25, 79, 71, 21, 817, 751, 189, 1769, 3835, 21465, 17991, 102043}}, +{10394, 17, 39635, {1, 1, 7, 11, 3, 19, 25, 5, 261, 181, 49, 261, 7715, 2195, 19771, 43463, 36533}}, +{10395, 17, 39641, {1, 1, 7, 13, 21, 21, 15, 235, 191, 197, 1305, 1351, 4511, 625, 6613, 37053, 59491}}, +{10396, 17, 39666, {1, 1, 1, 13, 15, 13, 93, 239, 251, 1009, 527, 1347, 4173, 14753, 27389, 20397, 13101}}, +{10397, 17, 39668, {1, 1, 3, 1, 15, 11, 127, 141, 277, 775, 1419, 2353, 6929, 2265, 7253, 19807, 74853}}, +{10398, 17, 39686, {1, 3, 3, 15, 15, 49, 9, 183, 407, 377, 675, 871, 347, 3417, 4409, 7805, 40507}}, +{10399, 17, 39692, {1, 3, 5, 3, 23, 11, 81, 53, 343, 681, 1777, 3411, 757, 10875, 3581, 56105, 79907}}, +{10400, 17, 39700, {1, 3, 5, 1, 25, 9, 109, 55, 283, 311, 1607, 2479, 5675, 8819, 10853, 38719, 44471}}, +{10401, 17, 39709, {1, 1, 7, 7, 9, 53, 33, 195, 503, 167, 993, 3203, 3885, 1921, 1039, 25785, 47411}}, +{10402, 17, 39726, {1, 3, 3, 3, 31, 3, 11, 85, 475, 743, 1825, 2649, 2373, 12177, 21481, 35579, 85803}}, +{10403, 17, 39728, {1, 3, 7, 3, 23, 45, 45, 207, 369, 773, 1579, 783, 2491, 7441, 21203, 57091, 107413}}, +{10404, 17, 39737, {1, 1, 1, 5, 19, 7, 97, 213, 431, 533, 637, 1767, 4945, 4693, 977, 64781, 111811}}, +{10405, 17, 39738, {1, 3, 7, 7, 1, 55, 101, 251, 153, 95, 1043, 3219, 3499, 6297, 11571, 9131, 61899}}, +{10406, 17, 39755, {1, 3, 5, 5, 25, 53, 121, 255, 69, 661, 799, 3559, 2029, 11701, 14151, 37897, 18333}}, +{10407, 17, 39757, {1, 1, 1, 9, 21, 19, 97, 21, 321, 957, 1115, 251, 5131, 8465, 24215, 34423, 12747}}, +{10408, 17, 39758, {1, 3, 5, 7, 17, 19, 99, 135, 429, 625, 1401, 1025, 4193, 2911, 7349, 34135, 9341}}, +{10409, 17, 39765, {1, 3, 5, 1, 5, 63, 97, 121, 307, 547, 1967, 641, 487, 4627, 30899, 62049, 94343}}, +{10410, 17, 39766, {1, 3, 5, 13, 1, 1, 109, 23, 267, 843, 271, 2277, 855, 4245, 2177, 33633, 113835}}, +{10411, 17, 39769, {1, 1, 3, 7, 3, 27, 91, 79, 27, 855, 2025, 443, 4797, 9005, 27533, 20497, 100431}}, +{10412, 17, 39779, {1, 3, 3, 5, 23, 7, 73, 35, 395, 649, 881, 2923, 4065, 853, 10829, 19461, 82383}}, +{10413, 17, 39785, {1, 3, 1, 5, 25, 13, 85, 93, 369, 259, 393, 3233, 799, 12409, 26631, 64291, 110133}}, +{10414, 17, 39794, {1, 3, 5, 5, 31, 35, 25, 239, 455, 893, 573, 1449, 3359, 12077, 17149, 12921, 66931}}, +{10415, 17, 39796, {1, 1, 7, 3, 25, 39, 67, 87, 215, 325, 627, 3609, 4417, 10021, 12047, 64593, 116525}}, +{10416, 17, 39809, {1, 1, 5, 5, 23, 51, 125, 247, 83, 419, 655, 635, 7053, 4907, 12887, 18083, 49481}}, +{10417, 17, 39815, {1, 1, 7, 11, 5, 25, 65, 139, 235, 331, 1885, 1851, 1061, 13265, 14371, 23067, 56757}}, +{10418, 17, 39829, {1, 1, 7, 9, 11, 15, 29, 255, 509, 869, 561, 2201, 487, 2989, 14943, 65373, 35789}}, +{10419, 17, 39834, {1, 1, 1, 3, 3, 33, 23, 121, 129, 351, 1481, 65, 321, 15927, 23849, 2813, 98547}}, +{10420, 17, 39839, {1, 1, 1, 3, 23, 55, 121, 35, 339, 87, 1147, 401, 1477, 10617, 15943, 20535, 89321}}, +{10421, 17, 39850, {1, 3, 5, 15, 25, 59, 111, 185, 305, 47, 523, 2801, 5485, 625, 30191, 58153, 9019}}, +{10422, 17, 39857, {1, 1, 7, 13, 15, 51, 105, 55, 77, 419, 1011, 1117, 2705, 15093, 15629, 51429, 58487}}, +{10423, 17, 39881, {1, 3, 7, 5, 15, 27, 19, 7, 401, 295, 1841, 1167, 2133, 1967, 6941, 13571, 29467}}, +{10424, 17, 39905, {1, 1, 5, 15, 25, 43, 23, 253, 173, 927, 1299, 2779, 5489, 16135, 1503, 51097, 105751}}, +{10425, 17, 39912, {1, 3, 3, 5, 9, 13, 5, 13, 411, 639, 1323, 1495, 2539, 15087, 21489, 49653, 76229}}, +{10426, 17, 39938, {1, 1, 1, 11, 7, 51, 47, 99, 247, 541, 1355, 2373, 4121, 13621, 7715, 16763, 127985}}, +{10427, 17, 39940, {1, 1, 3, 9, 7, 1, 85, 45, 269, 769, 581, 2229, 7143, 5203, 22483, 18511, 30997}}, +{10428, 17, 39944, {1, 3, 5, 7, 21, 41, 97, 225, 109, 195, 1197, 3417, 7613, 13225, 29157, 18969, 82045}}, +{10429, 17, 39955, {1, 3, 3, 3, 17, 41, 13, 77, 129, 679, 1659, 1299, 4809, 8537, 19081, 1281, 70793}}, +{10430, 17, 39961, {1, 1, 5, 5, 5, 49, 5, 15, 313, 941, 775, 259, 6579, 7745, 20531, 51669, 35257}}, +{10431, 17, 39977, {1, 1, 5, 5, 17, 35, 13, 235, 169, 699, 1365, 3907, 4231, 10965, 7737, 6735, 4253}}, +{10432, 17, 39980, {1, 1, 5, 3, 29, 3, 1, 197, 133, 935, 571, 3977, 2467, 2029, 12803, 64559, 6427}}, +{10433, 17, 39986, {1, 3, 5, 5, 27, 5, 69, 57, 439, 925, 1695, 827, 4685, 10971, 3011, 56821, 92187}}, +{10434, 17, 39988, {1, 1, 1, 3, 9, 45, 77, 179, 173, 1023, 907, 1999, 3913, 6973, 26987, 30237, 62987}}, +{10435, 17, 39991, {1, 3, 7, 3, 5, 21, 17, 97, 433, 277, 1515, 2923, 8025, 14119, 11243, 3983, 33943}}, +{10436, 17, 39998, {1, 1, 5, 7, 15, 13, 119, 169, 21, 927, 439, 361, 2655, 2237, 19775, 4157, 84245}}, +{10437, 17, 40003, {1, 3, 5, 5, 31, 41, 117, 159, 421, 505, 1617, 3855, 7835, 8105, 29525, 56735, 82335}}, +{10438, 17, 40005, {1, 1, 5, 5, 1, 33, 51, 3, 79, 933, 389, 493, 5969, 12493, 26723, 61159, 116951}}, +{10439, 17, 40023, {1, 3, 7, 13, 17, 23, 75, 13, 355, 111, 675, 3191, 3931, 5651, 17495, 4595, 49869}}, +{10440, 17, 40024, {1, 1, 7, 7, 15, 21, 35, 125, 89, 903, 697, 3493, 4043, 6631, 4793, 45655, 86969}}, +{10441, 17, 40045, {1, 3, 1, 15, 13, 43, 113, 213, 451, 473, 191, 2913, 6391, 1321, 29615, 24791, 26979}}, +{10442, 17, 40046, {1, 3, 3, 13, 17, 25, 9, 163, 163, 161, 1647, 3949, 1343, 12881, 10931, 31365, 70013}}, +{10443, 17, 40058, {1, 3, 7, 3, 3, 19, 1, 121, 387, 543, 1655, 1797, 6727, 2951, 21925, 21595, 73207}}, +{10444, 17, 40088, {1, 1, 5, 9, 7, 19, 91, 9, 83, 893, 1393, 163, 2219, 7763, 32395, 29569, 98645}}, +{10445, 17, 40091, {1, 1, 5, 7, 13, 63, 91, 115, 247, 387, 87, 3239, 7561, 297, 32615, 48817, 41761}}, +{10446, 17, 40098, {1, 3, 5, 3, 21, 23, 27, 141, 257, 377, 1745, 443, 897, 9033, 1715, 9225, 110181}}, +{10447, 17, 40109, {1, 1, 7, 9, 23, 49, 125, 131, 225, 253, 139, 2057, 3273, 4049, 6861, 4463, 11659}}, +{10448, 17, 40112, {1, 1, 5, 11, 5, 41, 97, 213, 133, 481, 2009, 2039, 1533, 10765, 22427, 23297, 80661}}, +{10449, 17, 40124, {1, 1, 5, 15, 9, 11, 77, 129, 421, 219, 1623, 703, 1611, 13377, 9859, 42869, 101943}}, +{10450, 17, 40130, {1, 3, 3, 3, 17, 63, 55, 29, 317, 973, 1159, 11, 1733, 14551, 25911, 39151, 45861}}, +{10451, 17, 40153, {1, 3, 7, 11, 29, 63, 107, 193, 263, 799, 1171, 543, 553, 12591, 21965, 8165, 64347}}, +{10452, 17, 40166, {1, 1, 7, 15, 23, 49, 65, 65, 401, 897, 681, 1113, 6737, 9157, 1557, 55891, 129175}}, +{10453, 17, 40175, {1, 3, 3, 1, 15, 23, 107, 123, 313, 633, 1009, 2615, 1155, 11701, 21945, 7939, 28111}}, +{10454, 17, 40183, {1, 3, 1, 11, 15, 11, 47, 137, 299, 393, 877, 1989, 5903, 6505, 9599, 4129, 23073}}, +{10455, 17, 40184, {1, 1, 7, 15, 9, 49, 67, 15, 79, 125, 505, 17, 8071, 12957, 13855, 23611, 66465}}, +{10456, 17, 40207, {1, 1, 5, 13, 31, 49, 1, 161, 121, 145, 711, 1347, 5297, 11309, 9871, 43075, 95541}}, +{10457, 17, 40215, {1, 3, 3, 13, 19, 7, 55, 199, 469, 471, 1269, 3779, 6251, 3513, 1775, 19501, 94055}}, +{10458, 17, 40225, {1, 3, 3, 13, 9, 41, 109, 211, 197, 227, 1211, 3327, 1247, 12253, 4493, 31507, 38677}}, +{10459, 17, 40235, {1, 1, 7, 3, 11, 45, 11, 103, 325, 849, 1817, 3971, 1059, 9047, 27237, 32211, 121165}}, +{10460, 17, 40240, {1, 3, 3, 3, 13, 43, 7, 35, 293, 3, 679, 1441, 5189, 7585, 32009, 6151, 89803}}, +{10461, 17, 40255, {1, 1, 7, 9, 29, 41, 127, 255, 363, 913, 2027, 3891, 5187, 10233, 8871, 48085, 125609}}, +{10462, 17, 40263, {1, 3, 1, 5, 21, 23, 59, 145, 171, 775, 535, 3803, 6981, 15901, 20255, 63199, 92905}}, +{10463, 17, 40270, {1, 3, 5, 9, 7, 63, 53, 7, 145, 547, 1753, 3351, 1273, 8175, 24103, 42133, 87459}}, +{10464, 17, 40277, {1, 3, 7, 7, 25, 33, 5, 217, 469, 473, 1573, 2525, 7345, 5261, 7023, 50893, 124129}}, +{10465, 17, 40282, {1, 3, 5, 13, 5, 51, 23, 61, 429, 775, 519, 2671, 1979, 9005, 21617, 33611, 120487}}, +{10466, 17, 40297, {1, 3, 3, 15, 23, 1, 73, 187, 47, 369, 943, 99, 2529, 5569, 13649, 51481, 128949}}, +{10467, 17, 40306, {1, 3, 1, 5, 25, 55, 35, 191, 327, 845, 1353, 261, 6297, 6067, 22241, 32381, 17749}}, +{10468, 17, 40315, {1, 1, 5, 15, 31, 5, 29, 129, 15, 47, 739, 755, 7595, 14743, 14705, 34347, 11805}}, +{10469, 17, 40333, {1, 3, 1, 3, 15, 49, 119, 47, 185, 63, 2003, 2847, 5393, 855, 7699, 29521, 67011}}, +{10470, 17, 40334, {1, 3, 7, 15, 11, 41, 37, 149, 173, 1015, 29, 1805, 1269, 16199, 32337, 11023, 60065}}, +{10471, 17, 40336, {1, 1, 1, 7, 31, 19, 65, 81, 255, 875, 1379, 2347, 1873, 14427, 29523, 38413, 65583}}, +{10472, 17, 40342, {1, 1, 1, 15, 13, 59, 3, 219, 127, 479, 1029, 3385, 563, 11825, 10081, 17423, 26431}}, +{10473, 17, 40345, {1, 1, 1, 1, 25, 27, 79, 87, 489, 281, 457, 3527, 5117, 4705, 21167, 46211, 90383}}, +{10474, 17, 40348, {1, 3, 7, 13, 7, 5, 67, 111, 53, 439, 1483, 3639, 7781, 9471, 10957, 60711, 64957}}, +{10475, 17, 40355, {1, 3, 7, 9, 7, 7, 41, 137, 159, 245, 551, 4007, 1277, 4743, 4863, 48689, 123289}}, +{10476, 17, 40372, {1, 3, 7, 9, 15, 49, 55, 77, 41, 475, 1563, 3569, 5993, 301, 14831, 44095, 22641}}, +{10477, 17, 40381, {1, 1, 1, 1, 15, 33, 39, 135, 81, 533, 869, 305, 1125, 6399, 14321, 37217, 121081}}, +{10478, 17, 40390, {1, 1, 7, 15, 21, 59, 43, 7, 225, 1, 115, 1531, 2931, 2593, 15935, 61973, 106899}}, +{10479, 17, 40407, {1, 1, 1, 1, 13, 13, 99, 191, 437, 367, 641, 1933, 5807, 11677, 13557, 46475, 34875}}, +{10480, 17, 40435, {1, 3, 7, 9, 21, 7, 119, 209, 31, 919, 901, 1229, 5823, 11439, 18151, 18991, 114743}}, +{10481, 17, 40437, {1, 3, 3, 3, 19, 37, 109, 53, 411, 617, 1841, 2769, 1271, 5719, 22359, 1199, 72405}}, +{10482, 17, 40441, {1, 1, 1, 5, 29, 3, 51, 59, 141, 897, 1907, 3799, 1463, 5661, 181, 50565, 95085}}, +{10483, 17, 40444, {1, 1, 1, 7, 1, 35, 77, 225, 341, 587, 137, 35, 2177, 15177, 12869, 35013, 39471}}, +{10484, 17, 40458, {1, 1, 3, 13, 15, 63, 45, 33, 337, 1, 1133, 263, 4985, 11591, 1085, 31197, 67897}}, +{10485, 17, 40460, {1, 1, 5, 13, 23, 11, 123, 21, 185, 639, 145, 3865, 2999, 6261, 23247, 23055, 32755}}, +{10486, 17, 40481, {1, 1, 5, 9, 19, 21, 47, 133, 281, 431, 1661, 3719, 3637, 973, 9727, 52627, 60035}}, +{10487, 17, 40484, {1, 1, 3, 5, 3, 19, 19, 89, 63, 549, 551, 3357, 5665, 4781, 22437, 1149, 10825}}, +{10488, 17, 40487, {1, 3, 5, 15, 3, 25, 81, 193, 11, 711, 1481, 1767, 1159, 4967, 16915, 3387, 26245}}, +{10489, 17, 40493, {1, 1, 1, 3, 29, 39, 23, 131, 473, 107, 765, 2249, 6087, 9145, 20751, 21085, 42989}}, +{10490, 17, 40494, {1, 3, 1, 9, 7, 39, 13, 199, 475, 333, 269, 1041, 5927, 14039, 19081, 9045, 119645}}, +{10491, 17, 40501, {1, 1, 5, 13, 11, 61, 99, 71, 151, 175, 1327, 3397, 5063, 10683, 7895, 62255, 85749}}, +{10492, 17, 40502, {1, 3, 7, 9, 1, 57, 21, 217, 423, 467, 1435, 2887, 1567, 8819, 19961, 36507, 110309}}, +{10493, 17, 40525, {1, 3, 3, 11, 11, 35, 77, 127, 153, 357, 865, 1943, 1947, 10995, 13617, 44347, 26851}}, +{10494, 17, 40550, {1, 3, 1, 11, 9, 43, 31, 81, 123, 813, 995, 169, 6593, 13621, 32195, 51125, 53509}}, +{10495, 17, 40553, {1, 1, 5, 5, 27, 29, 77, 35, 93, 545, 377, 2345, 6475, 15729, 15103, 49591, 101121}}, +{10496, 17, 40559, {1, 1, 5, 13, 1, 17, 97, 187, 129, 173, 641, 2937, 3277, 15087, 28111, 46905, 112367}}, +{10497, 17, 40562, {1, 3, 7, 7, 1, 27, 75, 43, 305, 431, 571, 1327, 7419, 3093, 2691, 23417, 11975}}, +{10498, 17, 40573, {1, 1, 5, 15, 17, 3, 91, 57, 417, 87, 1891, 1973, 5765, 5521, 21931, 60011, 20883}}, +{10499, 17, 40574, {1, 3, 1, 3, 27, 13, 105, 153, 495, 371, 453, 1295, 5675, 6377, 8971, 40505, 41149}}, +{10500, 17, 40578, {1, 1, 1, 15, 1, 17, 105, 177, 41, 455, 611, 3585, 2307, 2603, 20985, 5581, 14033}}, +{10501, 17, 40583, {1, 3, 3, 9, 7, 41, 33, 145, 307, 293, 1321, 2151, 3265, 14845, 15687, 38715, 8041}}, +{10502, 17, 40584, {1, 3, 3, 3, 5, 47, 127, 253, 129, 337, 1467, 5, 2743, 1921, 26979, 11737, 41479}}, +{10503, 17, 40587, {1, 1, 1, 5, 15, 35, 37, 9, 5, 405, 1041, 1903, 3655, 14315, 9441, 20577, 50715}}, +{10504, 17, 40597, {1, 1, 5, 15, 7, 5, 53, 61, 409, 353, 87, 1805, 4523, 11417, 24105, 21451, 56387}}, +{10505, 17, 40620, {1, 3, 3, 5, 5, 9, 25, 249, 511, 795, 559, 2695, 3071, 3971, 29421, 46593, 96563}}, +{10506, 17, 40623, {1, 1, 3, 1, 3, 39, 61, 85, 399, 105, 1253, 3787, 3065, 10553, 8195, 5637, 129579}}, +{10507, 17, 40631, {1, 3, 3, 7, 23, 23, 23, 197, 263, 687, 943, 1977, 5767, 15373, 17995, 24509, 81293}}, +{10508, 17, 40643, {1, 3, 1, 11, 15, 37, 15, 67, 207, 985, 895, 509, 3435, 11563, 2055, 19253, 42649}}, +{10509, 17, 40660, {1, 1, 7, 3, 1, 51, 59, 133, 241, 569, 1575, 3633, 2243, 11939, 5501, 11249, 86013}}, +{10510, 17, 40667, {1, 1, 7, 13, 25, 59, 97, 191, 385, 179, 1195, 1537, 1837, 11953, 14231, 37025, 49803}}, +{10511, 17, 40676, {1, 3, 5, 5, 13, 49, 19, 171, 503, 433, 1633, 553, 2759, 4379, 18313, 62437, 37453}}, +{10512, 17, 40693, {1, 3, 3, 15, 29, 49, 107, 239, 21, 913, 1095, 989, 4749, 10657, 27169, 15913, 1573}}, +{10513, 17, 40697, {1, 1, 1, 1, 3, 3, 53, 241, 287, 149, 557, 2665, 2027, 449, 29231, 23025, 102521}}, +{10514, 17, 40708, {1, 3, 5, 7, 23, 21, 9, 1, 11, 837, 1337, 2815, 7883, 16053, 10031, 43405, 5037}}, +{10515, 17, 40718, {1, 3, 7, 1, 23, 53, 113, 125, 337, 491, 1125, 3083, 4941, 951, 15805, 1571, 79779}}, +{10516, 17, 40726, {1, 3, 7, 13, 1, 3, 95, 105, 431, 723, 1771, 3773, 177, 2045, 24719, 57727, 79005}}, +{10517, 17, 40735, {1, 3, 1, 1, 7, 17, 107, 171, 213, 437, 409, 2015, 7543, 12693, 23597, 44477, 72543}}, +{10518, 17, 40739, {1, 3, 5, 9, 7, 21, 27, 167, 473, 901, 1245, 3737, 3485, 14593, 7619, 18753, 14209}}, +{10519, 17, 40748, {1, 1, 1, 3, 25, 37, 51, 21, 363, 73, 711, 3749, 5147, 8495, 30151, 14275, 128217}}, +{10520, 17, 40760, {1, 3, 1, 13, 17, 35, 69, 15, 293, 331, 301, 691, 7315, 6495, 315, 62909, 105047}}, +{10521, 17, 40763, {1, 3, 5, 3, 25, 23, 105, 111, 213, 887, 1701, 2085, 5931, 9217, 4009, 2321, 103631}}, +{10522, 17, 40773, {1, 1, 7, 15, 17, 57, 59, 249, 267, 941, 777, 2509, 6587, 12033, 24969, 31563, 129049}}, +{10523, 17, 40774, {1, 1, 1, 5, 31, 23, 31, 217, 509, 973, 659, 673, 7759, 3865, 21221, 4319, 117411}}, +{10524, 17, 40786, {1, 1, 3, 7, 13, 13, 103, 179, 107, 233, 753, 3121, 835, 13595, 9271, 31421, 45275}}, +{10525, 17, 40791, {1, 3, 5, 13, 23, 61, 125, 189, 283, 83, 1087, 755, 3697, 14845, 27901, 16389, 82993}}, +{10526, 17, 40798, {1, 3, 1, 3, 1, 55, 25, 139, 435, 681, 1913, 975, 3109, 6699, 12943, 50865, 71811}}, +{10527, 17, 40801, {1, 3, 1, 5, 15, 61, 17, 219, 29, 805, 1881, 3761, 3535, 473, 15629, 26301, 51085}}, +{10528, 17, 40808, {1, 3, 1, 1, 7, 43, 87, 93, 355, 247, 641, 2851, 4565, 9293, 6025, 1945, 112549}}, +{10529, 17, 40811, {1, 3, 7, 5, 19, 55, 69, 227, 107, 443, 1587, 2457, 2873, 953, 27529, 57527, 54145}}, +{10530, 17, 40813, {1, 1, 5, 9, 1, 33, 31, 241, 339, 791, 399, 3435, 1711, 10815, 32657, 59875, 31291}}, +{10531, 17, 40825, {1, 1, 1, 7, 25, 59, 87, 115, 435, 47, 1907, 193, 6069, 10933, 9877, 46443, 3451}}, +{10532, 17, 40831, {1, 3, 3, 15, 25, 33, 19, 121, 133, 253, 1227, 75, 2839, 3341, 30727, 52451, 44883}}, +{10533, 17, 40835, {1, 1, 7, 11, 5, 47, 97, 255, 235, 565, 1701, 529, 839, 15473, 24471, 5749, 73135}}, +{10534, 17, 40856, {1, 1, 3, 7, 21, 15, 31, 81, 389, 957, 603, 3879, 2875, 11987, 24625, 53667, 77775}}, +{10535, 17, 40861, {1, 1, 5, 11, 29, 29, 31, 233, 107, 541, 561, 2533, 1421, 13587, 6943, 45635, 71315}}, +{10536, 17, 40880, {1, 3, 1, 9, 25, 19, 33, 53, 509, 485, 1637, 2877, 5927, 16059, 195, 17279, 127025}}, +{10537, 17, 40889, {1, 1, 1, 3, 9, 23, 97, 101, 337, 43, 1979, 1139, 3693, 2601, 8225, 53037, 63709}}, +{10538, 17, 40912, {1, 1, 7, 7, 17, 25, 121, 253, 63, 105, 527, 1397, 121, 9665, 29151, 10795, 79077}}, +{10539, 17, 40918, {1, 3, 3, 1, 27, 33, 123, 69, 209, 25, 1677, 1569, 4441, 7817, 5165, 29517, 117165}}, +{10540, 17, 40924, {1, 1, 5, 15, 3, 59, 13, 25, 359, 71, 179, 3925, 6899, 6007, 9121, 36297, 88541}}, +{10541, 17, 40927, {1, 1, 3, 11, 23, 17, 55, 133, 27, 277, 1055, 1057, 807, 1221, 1665, 64129, 102395}}, +{10542, 17, 40928, {1, 3, 1, 15, 13, 15, 105, 141, 329, 73, 609, 1663, 3277, 1767, 6371, 34325, 109563}}, +{10543, 17, 40938, {1, 1, 5, 1, 17, 21, 37, 81, 187, 403, 291, 1495, 5071, 14289, 29075, 44089, 95001}}, +{10544, 17, 40952, {1, 3, 3, 3, 15, 33, 49, 155, 41, 853, 15, 3571, 1433, 8469, 18711, 59007, 98703}}, +{10545, 17, 40957, {1, 3, 1, 13, 17, 47, 61, 151, 127, 87, 207, 3157, 5141, 14745, 32567, 18401, 7497}}, +{10546, 17, 40961, {1, 3, 5, 1, 19, 25, 49, 147, 137, 603, 1223, 3195, 5965, 11335, 20343, 10109, 63975}}, +{10547, 17, 40968, {1, 1, 7, 13, 29, 59, 1, 33, 157, 765, 961, 641, 7303, 3279, 20287, 37553, 114573}}, +{10548, 17, 40974, {1, 3, 5, 1, 11, 63, 63, 41, 15, 717, 1037, 227, 7875, 8681, 26943, 11761, 28005}}, +{10549, 17, 40986, {1, 3, 1, 3, 19, 5, 67, 169, 209, 293, 343, 2033, 7669, 1077, 15513, 54475, 15459}}, +{10550, 17, 40992, {1, 1, 3, 3, 17, 47, 49, 187, 341, 767, 1463, 301, 2083, 9265, 12313, 14763, 126627}}, +{10551, 17, 41001, {1, 3, 5, 13, 11, 15, 45, 237, 445, 55, 319, 2989, 5043, 1053, 22809, 23111, 7617}}, +{10552, 17, 41004, {1, 1, 7, 9, 7, 15, 41, 185, 511, 701, 1279, 1995, 7829, 2947, 3431, 45799, 1709}}, +{10553, 17, 41022, {1, 3, 7, 15, 5, 15, 85, 29, 487, 811, 1653, 483, 1193, 11331, 21815, 57215, 8373}}, +{10554, 17, 41033, {1, 3, 1, 15, 27, 19, 111, 161, 19, 373, 419, 1547, 2415, 10705, 17283, 56663, 73625}}, +{10555, 17, 41036, {1, 1, 3, 11, 27, 7, 75, 57, 411, 35, 685, 1249, 5227, 7313, 3167, 30537, 40655}}, +{10556, 17, 41039, {1, 3, 1, 9, 7, 37, 9, 209, 353, 319, 843, 657, 2069, 6523, 611, 16291, 107121}}, +{10557, 17, 41044, {1, 1, 5, 11, 11, 51, 25, 171, 315, 63, 207, 2279, 2379, 3583, 31927, 62451, 109911}}, +{10558, 17, 41064, {1, 1, 7, 11, 15, 41, 19, 175, 103, 605, 1889, 3161, 1217, 3259, 29655, 11715, 35551}}, +{10559, 17, 41078, {1, 3, 5, 13, 23, 11, 121, 147, 179, 397, 659, 3753, 2355, 1093, 25863, 39751, 112381}}, +{10560, 17, 41091, {1, 3, 5, 7, 1, 23, 37, 117, 7, 361, 991, 661, 4427, 15333, 5307, 55171, 96959}}, +{10561, 17, 41103, {1, 3, 1, 5, 17, 9, 77, 147, 289, 79, 295, 1271, 7809, 6387, 31785, 26489, 9335}}, +{10562, 17, 41108, {1, 1, 1, 7, 17, 33, 63, 147, 17, 515, 1349, 1907, 7703, 5511, 27773, 54025, 30019}}, +{10563, 17, 41112, {1, 3, 5, 3, 27, 57, 75, 129, 219, 533, 207, 3569, 5799, 6943, 12271, 53115, 120389}}, +{10564, 17, 41127, {1, 1, 1, 13, 11, 25, 101, 251, 289, 215, 1875, 1821, 703, 15395, 27167, 43187, 63401}}, +{10565, 17, 41128, {1, 1, 7, 15, 7, 39, 125, 41, 57, 513, 17, 965, 3225, 12833, 21131, 53243, 60377}}, +{10566, 17, 41136, {1, 3, 5, 3, 21, 19, 43, 195, 259, 523, 587, 3393, 6621, 43, 10951, 51877, 79967}}, +{10567, 17, 41141, {1, 3, 3, 7, 7, 19, 11, 89, 321, 821, 99, 2201, 1297, 949, 11539, 6295, 19721}}, +{10568, 17, 41146, {1, 1, 5, 3, 29, 27, 123, 111, 441, 441, 337, 3849, 1677, 14403, 17203, 50661, 92177}}, +{10569, 17, 41156, {1, 3, 5, 9, 23, 23, 73, 153, 241, 841, 371, 1503, 5815, 14117, 4679, 17997, 112269}}, +{10570, 17, 41159, {1, 1, 1, 1, 7, 37, 105, 185, 453, 905, 15, 57, 6963, 9665, 3371, 2391, 96023}}, +{10571, 17, 41163, {1, 3, 7, 1, 1, 21, 35, 43, 449, 111, 191, 2163, 3249, 15049, 30215, 43569, 127973}}, +{10572, 17, 41165, {1, 3, 3, 3, 17, 13, 77, 123, 471, 929, 1797, 2061, 355, 4441, 1101, 24631, 128711}}, +{10573, 17, 41166, {1, 3, 7, 7, 17, 51, 1, 69, 23, 1003, 535, 3751, 765, 5253, 21027, 52901, 61951}}, +{10574, 17, 41184, {1, 1, 7, 9, 25, 13, 33, 13, 423, 787, 223, 729, 4443, 227, 11487, 14259, 52951}}, +{10575, 17, 41193, {1, 3, 5, 5, 25, 27, 113, 93, 13, 679, 1295, 3773, 7253, 14629, 8907, 45885, 85387}}, +{10576, 17, 41202, {1, 3, 3, 13, 15, 55, 99, 31, 119, 955, 1477, 3745, 6777, 973, 4723, 62133, 65093}}, +{10577, 17, 41211, {1, 3, 3, 9, 13, 51, 105, 37, 477, 579, 765, 2573, 6869, 3891, 30969, 63413, 56603}}, +{10578, 17, 41216, {1, 3, 1, 3, 15, 23, 67, 109, 75, 721, 523, 1433, 3455, 6377, 23795, 13711, 121349}}, +{10579, 17, 41239, {1, 1, 3, 11, 5, 5, 99, 117, 233, 621, 509, 3235, 7483, 12325, 13203, 20075, 27537}}, +{10580, 17, 41243, {1, 3, 3, 9, 23, 51, 93, 245, 307, 689, 1993, 3607, 1985, 11839, 25553, 54941, 68741}}, +{10581, 17, 41249, {1, 1, 3, 5, 19, 21, 33, 71, 447, 539, 351, 2549, 87, 4317, 1287, 62289, 121065}}, +{10582, 17, 41262, {1, 3, 5, 5, 9, 23, 37, 189, 449, 263, 37, 3127, 1709, 10793, 7379, 38565, 8267}}, +{10583, 17, 41267, {1, 1, 7, 7, 7, 33, 23, 79, 457, 947, 1275, 2755, 3747, 9225, 31385, 8785, 76945}}, +{10584, 17, 41276, {1, 3, 1, 9, 17, 33, 29, 59, 505, 649, 1679, 3609, 1361, 5987, 26455, 17295, 98697}}, +{10585, 17, 41279, {1, 1, 3, 11, 7, 47, 127, 79, 419, 143, 349, 985, 6397, 10271, 29427, 19661, 32629}}, +{10586, 17, 41305, {1, 1, 5, 13, 15, 5, 79, 171, 491, 223, 1601, 705, 623, 4405, 10065, 28057, 105737}}, +{10587, 17, 41306, {1, 1, 7, 3, 29, 7, 81, 69, 265, 669, 1763, 2109, 6275, 7683, 19561, 26737, 54449}}, +{10588, 17, 41312, {1, 1, 1, 7, 1, 1, 5, 9, 65, 487, 1663, 1021, 1819, 9971, 22065, 40407, 4187}}, +{10589, 17, 41317, {1, 3, 5, 5, 21, 33, 11, 213, 309, 575, 427, 1421, 6435, 981, 31533, 16751, 47813}}, +{10590, 17, 41321, {1, 3, 3, 13, 7, 59, 65, 65, 401, 195, 211, 421, 1139, 11729, 19717, 20699, 111863}}, +{10591, 17, 41332, {1, 3, 7, 5, 17, 51, 25, 217, 223, 935, 431, 1703, 4869, 5635, 199, 5485, 37311}}, +{10592, 17, 41335, {1, 1, 3, 11, 23, 25, 15, 37, 187, 1007, 857, 3327, 5471, 10089, 13745, 1741, 37769}}, +{10593, 17, 41345, {1, 3, 5, 15, 31, 17, 75, 125, 1, 449, 1293, 3427, 709, 8285, 31143, 50655, 130793}}, +{10594, 17, 41346, {1, 1, 7, 3, 25, 55, 105, 255, 319, 183, 1571, 2425, 5429, 7151, 8569, 37447, 23055}}, +{10595, 17, 41351, {1, 3, 1, 1, 23, 37, 17, 61, 161, 559, 1025, 2651, 5861, 5231, 1365, 4853, 127301}}, +{10596, 17, 41365, {1, 3, 1, 9, 17, 37, 87, 241, 411, 53, 1555, 3805, 6867, 125, 9829, 53581, 117413}}, +{10597, 17, 41388, {1, 3, 3, 3, 23, 55, 121, 109, 441, 623, 1345, 3055, 2591, 11329, 16891, 61347, 125643}}, +{10598, 17, 41399, {1, 3, 1, 1, 5, 29, 53, 97, 15, 275, 1587, 1245, 379, 16117, 24369, 26873, 39547}}, +{10599, 17, 41405, {1, 3, 1, 5, 3, 63, 85, 167, 301, 45, 1357, 1185, 3939, 945, 24961, 59427, 128129}}, +{10600, 17, 41414, {1, 3, 1, 7, 23, 25, 109, 253, 37, 151, 17, 1241, 787, 15895, 7947, 65071, 14765}}, +{10601, 17, 41432, {1, 3, 3, 1, 7, 3, 103, 35, 73, 533, 1055, 823, 7403, 8117, 28813, 42457, 56037}}, +{10602, 17, 41454, {1, 3, 5, 15, 1, 15, 97, 109, 293, 259, 935, 2977, 5257, 14563, 28871, 17647, 34185}}, +{10603, 17, 41461, {1, 1, 1, 3, 29, 21, 101, 163, 173, 1019, 1025, 553, 945, 3781, 1097, 58025, 124819}}, +{10604, 17, 41462, {1, 1, 3, 9, 7, 35, 65, 61, 31, 547, 75, 3515, 6719, 12809, 23287, 14609, 30341}}, +{10605, 17, 41471, {1, 3, 7, 9, 3, 53, 21, 207, 383, 917, 1383, 2873, 1663, 15665, 1787, 50741, 35145}}, +{10606, 17, 41478, {1, 3, 7, 5, 3, 35, 113, 191, 171, 635, 1597, 2943, 2421, 5555, 6457, 22087, 104221}}, +{10607, 17, 41490, {1, 1, 1, 1, 29, 25, 3, 225, 175, 807, 1325, 215, 6475, 10729, 18619, 45401, 20627}}, +{10608, 17, 41506, {1, 1, 5, 11, 23, 25, 39, 207, 81, 633, 403, 3369, 1295, 1289, 20853, 48899, 16613}}, +{10609, 17, 41508, {1, 1, 7, 15, 5, 23, 17, 77, 169, 969, 1459, 3795, 3121, 5501, 32323, 46743, 124175}}, +{10610, 17, 41512, {1, 1, 7, 13, 3, 25, 77, 153, 105, 1017, 1599, 237, 4691, 1993, 6707, 50265, 13529}}, +{10611, 17, 41517, {1, 3, 3, 15, 7, 11, 81, 223, 61, 589, 1263, 3999, 7643, 12101, 19853, 49279, 29999}}, +{10612, 17, 41520, {1, 3, 1, 13, 3, 31, 61, 59, 41, 313, 115, 561, 3973, 13513, 6359, 29395, 34565}}, +{10613, 17, 41529, {1, 1, 7, 7, 7, 61, 91, 181, 307, 875, 2045, 1367, 3743, 6497, 2443, 12153, 96431}}, +{10614, 17, 41530, {1, 1, 3, 7, 19, 63, 97, 211, 157, 945, 891, 3747, 5483, 3081, 28939, 11179, 15935}}, +{10615, 17, 41544, {1, 3, 7, 3, 23, 39, 51, 137, 91, 179, 1515, 1397, 2783, 9343, 11483, 52407, 111725}}, +{10616, 17, 41550, {1, 3, 3, 11, 11, 25, 111, 61, 115, 329, 485, 1713, 565, 8607, 18869, 6595, 18605}}, +{10617, 17, 41571, {1, 1, 5, 1, 13, 59, 67, 231, 443, 695, 1185, 393, 6393, 12957, 15817, 37219, 113127}}, +{10618, 17, 41577, {1, 3, 5, 3, 15, 57, 25, 97, 321, 627, 15, 2005, 3813, 10399, 26779, 24243, 66463}}, +{10619, 17, 41580, {1, 3, 7, 7, 17, 43, 117, 179, 447, 1005, 2007, 1753, 7685, 13331, 5187, 49341, 111927}}, +{10620, 17, 41595, {1, 1, 3, 3, 5, 53, 35, 185, 93, 847, 1523, 3039, 25, 3351, 23195, 41133, 38547}}, +{10621, 17, 41613, {1, 1, 7, 5, 27, 59, 95, 137, 55, 129, 331, 127, 7421, 5633, 557, 18137, 89055}}, +{10622, 17, 41622, {1, 3, 3, 11, 5, 53, 93, 137, 175, 191, 1645, 2047, 2569, 8177, 22691, 4037, 31823}}, +{10623, 17, 41635, {1, 3, 3, 11, 11, 45, 77, 7, 21, 541, 49, 1689, 171, 829, 28917, 45095, 1807}}, +{10624, 17, 41642, {1, 3, 7, 5, 21, 5, 113, 81, 33, 681, 361, 1107, 1597, 115, 11503, 27413, 9199}}, +{10625, 17, 41661, {1, 1, 3, 11, 29, 57, 15, 249, 105, 683, 833, 2579, 3517, 16153, 17373, 32587, 124333}}, +{10626, 17, 41676, {1, 3, 7, 13, 3, 35, 55, 23, 293, 5, 2003, 2741, 4237, 8117, 20569, 63967, 106041}}, +{10627, 17, 41681, {1, 3, 3, 1, 1, 15, 57, 119, 135, 967, 1495, 801, 4959, 5037, 10051, 53915, 116891}}, +{10628, 17, 41684, {1, 1, 7, 9, 15, 29, 53, 139, 505, 473, 1179, 3289, 369, 13147, 15739, 16739, 54949}}, +{10629, 17, 41687, {1, 1, 5, 7, 7, 45, 17, 213, 381, 63, 437, 3099, 3765, 175, 13521, 11689, 58675}}, +{10630, 17, 41688, {1, 1, 7, 1, 15, 35, 55, 43, 147, 873, 1193, 3801, 2301, 14569, 31789, 50443, 62577}}, +{10631, 17, 41694, {1, 1, 5, 7, 21, 41, 3, 45, 43, 303, 1465, 1461, 5295, 13397, 30439, 7103, 87505}}, +{10632, 17, 41698, {1, 1, 1, 15, 19, 27, 81, 141, 307, 259, 521, 1785, 6917, 15635, 27781, 64809, 53297}}, +{10633, 17, 41710, {1, 1, 1, 7, 27, 15, 53, 99, 377, 935, 1869, 3835, 741, 8447, 18947, 10727, 72179}}, +{10634, 17, 41712, {1, 1, 3, 5, 15, 51, 91, 207, 7, 997, 935, 591, 7325, 3025, 11335, 32087, 109535}}, +{10635, 17, 41721, {1, 3, 1, 5, 11, 13, 1, 57, 45, 307, 1839, 1735, 2247, 13117, 17471, 16599, 103063}}, +{10636, 17, 41722, {1, 3, 5, 11, 19, 7, 121, 3, 325, 731, 1945, 4025, 7649, 8939, 11147, 59065, 49971}}, +{10637, 17, 41729, {1, 3, 1, 5, 29, 63, 95, 121, 467, 7, 1857, 2389, 5213, 3931, 21187, 43529, 6767}}, +{10638, 17, 41744, {1, 1, 7, 7, 9, 53, 31, 227, 95, 827, 927, 3501, 2003, 12853, 2595, 33223, 125799}}, +{10639, 17, 41747, {1, 3, 3, 3, 27, 25, 105, 143, 233, 887, 1135, 3449, 5767, 11447, 10251, 34621, 102113}}, +{10640, 17, 41753, {1, 3, 3, 15, 3, 63, 85, 119, 103, 835, 443, 3861, 4957, 5389, 6137, 48851, 51887}}, +{10641, 17, 41766, {1, 3, 7, 9, 23, 23, 45, 129, 463, 653, 1309, 3533, 1303, 2955, 18023, 37457, 114765}}, +{10642, 17, 41783, {1, 3, 7, 1, 23, 17, 31, 151, 71, 515, 781, 1793, 3507, 6051, 30279, 29461, 48271}}, +{10643, 17, 41790, {1, 3, 5, 15, 1, 31, 9, 187, 131, 571, 1309, 965, 7561, 16113, 23209, 54615, 16969}}, +{10644, 17, 41810, {1, 3, 5, 11, 11, 9, 109, 161, 9, 697, 1683, 1245, 2223, 3571, 18117, 13085, 99315}}, +{10645, 17, 41819, {1, 3, 3, 1, 13, 21, 27, 17, 11, 11, 1095, 1447, 6941, 3399, 21245, 36661, 54283}}, +{10646, 17, 41825, {1, 3, 1, 3, 21, 51, 21, 197, 161, 689, 1219, 1337, 6623, 5765, 11579, 2679, 23889}}, +{10647, 17, 41828, {1, 1, 5, 11, 7, 31, 101, 25, 231, 719, 1677, 1545, 459, 14735, 25153, 65079, 15141}}, +{10648, 17, 41843, {1, 1, 7, 9, 17, 7, 49, 1, 83, 829, 815, 307, 3405, 15189, 23699, 50889, 70391}}, +{10649, 17, 41846, {1, 1, 3, 15, 21, 57, 97, 191, 415, 899, 197, 2635, 7507, 14009, 8633, 48997, 93925}}, +{10650, 17, 41862, {1, 3, 5, 15, 23, 13, 67, 127, 33, 551, 911, 3933, 2027, 10665, 19509, 18485, 76111}}, +{10651, 17, 41871, {1, 1, 5, 7, 23, 63, 19, 149, 139, 155, 1621, 3391, 2337, 2809, 21161, 38565, 401}}, +{10652, 17, 41874, {1, 1, 1, 7, 19, 23, 81, 49, 339, 879, 1903, 657, 2677, 2273, 10853, 3225, 57933}}, +{10653, 17, 41876, {1, 3, 5, 5, 13, 31, 19, 203, 269, 1015, 997, 2151, 4471, 11331, 5363, 46519, 51709}}, +{10654, 17, 41892, {1, 1, 5, 11, 29, 19, 17, 169, 511, 389, 1429, 2707, 1341, 10511, 6779, 43345, 68693}}, +{10655, 17, 41899, {1, 1, 5, 11, 19, 25, 29, 37, 423, 345, 953, 2525, 5937, 6595, 31389, 39347, 36343}}, +{10656, 17, 41916, {1, 3, 1, 3, 15, 25, 45, 95, 111, 207, 19, 1723, 4113, 421, 3297, 46771, 8639}}, +{10657, 17, 41928, {1, 1, 3, 9, 9, 47, 27, 99, 327, 393, 1547, 1587, 4463, 719, 14609, 24347, 68107}}, +{10658, 17, 41957, {1, 3, 7, 7, 29, 19, 57, 229, 131, 497, 109, 251, 6599, 8947, 10255, 12875, 83831}}, +{10659, 17, 41964, {1, 3, 3, 7, 17, 5, 17, 45, 423, 393, 1793, 3, 603, 15221, 13141, 40585, 37489}}, +{10660, 17, 41969, {1, 1, 1, 11, 5, 1, 53, 147, 129, 135, 1473, 17, 7539, 13513, 16045, 17375, 41261}}, +{10661, 17, 41981, {1, 3, 1, 5, 3, 15, 75, 57, 47, 581, 739, 3529, 4323, 10225, 27861, 14431, 106811}}, +{10662, 17, 41996, {1, 3, 3, 13, 23, 57, 41, 39, 217, 67, 595, 1381, 6281, 10125, 30605, 7935, 124219}}, +{10663, 17, 41999, {1, 1, 7, 15, 15, 45, 1, 135, 495, 271, 2023, 3267, 39, 15025, 32763, 39023, 20041}}, +{10664, 17, 42001, {1, 3, 7, 13, 23, 53, 75, 147, 187, 633, 1989, 1885, 6581, 12169, 13639, 19707, 96429}}, +{10665, 17, 42017, {1, 1, 5, 9, 13, 55, 13, 41, 305, 105, 1983, 273, 35, 5185, 22569, 54203, 31641}}, +{10666, 17, 42023, {1, 1, 3, 15, 21, 19, 59, 35, 165, 575, 1961, 1443, 4803, 2339, 28329, 47695, 21505}}, +{10667, 17, 42027, {1, 3, 1, 3, 23, 45, 95, 85, 55, 457, 1957, 1243, 4091, 14669, 13213, 53901, 122605}}, +{10668, 17, 42032, {1, 3, 7, 1, 13, 1, 61, 253, 195, 839, 181, 1153, 1391, 205, 6725, 1757, 86817}}, +{10669, 17, 42035, {1, 1, 3, 9, 7, 13, 115, 137, 169, 851, 299, 509, 6709, 6331, 51, 31833, 25217}}, +{10670, 17, 42044, {1, 1, 5, 15, 29, 23, 119, 15, 41, 585, 1713, 1203, 1653, 3287, 25333, 58873, 71853}}, +{10671, 17, 42050, {1, 3, 5, 15, 1, 45, 35, 79, 97, 381, 2027, 3795, 2127, 4775, 4579, 63267, 24719}}, +{10672, 17, 42061, {1, 1, 5, 7, 17, 21, 123, 75, 3, 887, 1537, 2017, 1623, 16315, 12535, 64281, 54925}}, +{10673, 17, 42062, {1, 1, 3, 13, 5, 23, 117, 43, 305, 365, 775, 1599, 5917, 13995, 6353, 3113, 106317}}, +{10674, 17, 42073, {1, 1, 3, 11, 21, 19, 9, 11, 129, 349, 579, 3523, 5259, 8083, 24513, 15077, 115377}}, +{10675, 17, 42098, {1, 1, 7, 9, 19, 31, 107, 3, 185, 821, 907, 2389, 7015, 3161, 13603, 35063, 60641}}, +{10676, 17, 42104, {1, 1, 3, 1, 19, 35, 105, 245, 363, 745, 1287, 4051, 5201, 7787, 20919, 26567, 37357}}, +{10677, 17, 42109, {1, 3, 1, 1, 23, 31, 1, 149, 61, 489, 371, 987, 3689, 14275, 8581, 48221, 44183}}, +{10678, 17, 42120, {1, 1, 5, 3, 9, 35, 51, 17, 439, 355, 461, 2129, 1567, 13261, 22347, 17013, 53857}}, +{10679, 17, 42125, {1, 3, 3, 15, 3, 33, 59, 185, 157, 933, 1489, 647, 4839, 12139, 3145, 57819, 11731}}, +{10680, 17, 42131, {1, 3, 5, 15, 17, 31, 59, 51, 117, 1001, 1585, 2861, 2785, 9579, 28013, 4481, 126723}}, +{10681, 17, 42143, {1, 3, 7, 13, 27, 1, 41, 119, 179, 879, 1617, 4053, 3537, 15389, 16381, 40153, 68019}}, +{10682, 17, 42153, {1, 1, 3, 13, 13, 35, 45, 203, 333, 337, 1415, 1889, 2361, 4207, 10411, 21013, 44009}}, +{10683, 17, 42176, {1, 3, 3, 5, 27, 9, 17, 85, 331, 369, 1219, 247, 1977, 12267, 1181, 18811, 54017}}, +{10684, 17, 42182, {1, 3, 5, 9, 21, 57, 57, 175, 283, 639, 1155, 1595, 8187, 9981, 21451, 7525, 52751}}, +{10685, 17, 42188, {1, 3, 1, 5, 27, 61, 95, 25, 271, 81, 1335, 2821, 7805, 10167, 13197, 58341, 62325}}, +{10686, 17, 42203, {1, 1, 7, 3, 15, 31, 75, 5, 211, 663, 551, 963, 6015, 11907, 17045, 22863, 32389}}, +{10687, 17, 42216, {1, 1, 7, 5, 21, 53, 67, 71, 251, 135, 1153, 2247, 2499, 15431, 21419, 46737, 2827}}, +{10688, 17, 42219, {1, 1, 5, 3, 31, 25, 39, 209, 437, 791, 1595, 637, 1581, 6575, 26407, 24043, 11277}}, +{10689, 17, 42227, {1, 3, 3, 5, 21, 15, 13, 19, 259, 949, 1237, 239, 5739, 4661, 3405, 55775, 58781}}, +{10690, 17, 42234, {1, 1, 3, 5, 1, 63, 5, 197, 329, 625, 981, 913, 3957, 2765, 8801, 56675, 129511}}, +{10691, 17, 42251, {1, 3, 3, 3, 29, 53, 65, 145, 435, 937, 787, 2043, 4945, 14585, 2789, 15771, 112335}}, +{10692, 17, 42254, {1, 3, 7, 13, 3, 23, 33, 141, 131, 375, 739, 711, 897, 469, 3635, 43335, 3069}}, +{10693, 17, 42256, {1, 1, 7, 11, 29, 13, 111, 149, 197, 793, 1541, 1879, 7683, 9397, 6873, 43733, 118507}}, +{10694, 17, 42259, {1, 3, 7, 7, 29, 21, 97, 113, 139, 573, 1099, 2615, 5123, 13021, 9533, 57673, 79283}}, +{10695, 17, 42282, {1, 3, 1, 5, 11, 9, 59, 89, 469, 797, 1119, 1037, 1667, 5947, 6051, 65045, 98275}}, +{10696, 17, 42289, {1, 3, 3, 9, 11, 7, 51, 191, 321, 677, 1601, 681, 3579, 14441, 26579, 18019, 43065}}, +{10697, 17, 42302, {1, 3, 5, 11, 7, 11, 79, 21, 335, 537, 801, 3553, 4311, 375, 7333, 64839, 88841}}, +{10698, 17, 42307, {1, 3, 1, 7, 5, 11, 15, 163, 69, 645, 57, 3685, 5143, 8275, 12763, 25035, 68949}}, +{10699, 17, 42310, {1, 1, 3, 13, 29, 33, 125, 179, 431, 129, 1367, 951, 5843, 13419, 13897, 17315, 58083}}, +{10700, 17, 42322, {1, 1, 3, 11, 31, 33, 3, 7, 185, 821, 231, 869, 6147, 15243, 32029, 20295, 60871}}, +{10701, 17, 42328, {1, 1, 1, 1, 31, 43, 21, 103, 275, 573, 805, 225, 2049, 8375, 32595, 53201, 126487}}, +{10702, 17, 42338, {1, 1, 1, 9, 31, 29, 7, 91, 277, 937, 1223, 2435, 4335, 7861, 9647, 13577, 30059}}, +{10703, 17, 42349, {1, 1, 1, 1, 23, 25, 69, 175, 293, 905, 765, 1527, 6655, 15431, 2511, 3147, 75431}}, +{10704, 17, 42367, {1, 3, 3, 3, 15, 53, 109, 195, 87, 557, 1277, 1471, 7401, 14127, 11479, 41505, 769}}, +{10705, 17, 42386, {1, 1, 5, 11, 23, 37, 121, 181, 199, 359, 1521, 2561, 3641, 7621, 14219, 6959, 77529}}, +{10706, 17, 42398, {1, 3, 1, 11, 5, 7, 69, 199, 501, 251, 707, 1485, 8125, 3209, 30883, 40259, 85087}}, +{10707, 17, 42404, {1, 3, 5, 13, 9, 35, 5, 133, 505, 39, 581, 1605, 6303, 1211, 27211, 55591, 31689}}, +{10708, 17, 42413, {1, 1, 5, 3, 17, 7, 11, 61, 483, 59, 1569, 2583, 759, 5759, 3575, 44547, 89783}}, +{10709, 17, 42419, {1, 1, 7, 15, 5, 27, 107, 5, 471, 421, 383, 3591, 3609, 13817, 633, 22043, 83119}}, +{10710, 17, 42421, {1, 1, 3, 7, 27, 55, 61, 249, 37, 241, 1483, 2839, 1231, 4765, 1551, 55801, 129679}}, +{10711, 17, 42422, {1, 1, 1, 3, 11, 1, 19, 207, 143, 351, 409, 721, 4597, 13389, 30297, 43253, 129923}}, +{10712, 17, 42431, {1, 3, 3, 7, 7, 53, 83, 27, 167, 163, 537, 3871, 2459, 12813, 30019, 41131, 56109}}, +{10713, 17, 42445, {1, 1, 5, 1, 23, 37, 11, 67, 161, 751, 123, 307, 3341, 12983, 21565, 58529, 94503}}, +{10714, 17, 42448, {1, 3, 3, 15, 11, 33, 39, 195, 467, 647, 1479, 1197, 7949, 6501, 18375, 15263, 21121}}, +{10715, 17, 42451, {1, 3, 5, 13, 3, 35, 9, 253, 299, 679, 69, 165, 2735, 14725, 4217, 16391, 107017}}, +{10716, 17, 42454, {1, 1, 1, 15, 3, 11, 87, 87, 391, 515, 843, 3957, 1365, 13201, 15983, 53647, 35643}}, +{10717, 17, 42458, {1, 1, 3, 7, 9, 53, 45, 221, 209, 855, 169, 2729, 1219, 5229, 14111, 28877, 114653}}, +{10718, 17, 42470, {1, 1, 5, 3, 11, 17, 5, 93, 303, 785, 1895, 2483, 7399, 14031, 1007, 2743, 47307}}, +{10719, 17, 42476, {1, 1, 7, 11, 9, 13, 115, 31, 223, 1011, 723, 1291, 5183, 559, 15881, 43045, 28131}}, +{10720, 17, 42500, {1, 3, 7, 11, 7, 59, 85, 111, 79, 227, 691, 1597, 2453, 10023, 19255, 47781, 88351}}, +{10721, 17, 42509, {1, 3, 3, 7, 21, 33, 39, 35, 253, 743, 563, 2455, 8015, 13403, 24883, 47881, 115559}}, +{10722, 17, 42538, {1, 3, 1, 1, 5, 33, 69, 37, 225, 157, 1347, 3241, 4981, 15985, 9949, 49189, 21267}}, +{10723, 17, 42543, {1, 1, 3, 11, 9, 33, 123, 133, 215, 297, 961, 1571, 1133, 1, 31871, 25253, 100097}}, +{10724, 17, 42545, {1, 1, 1, 7, 13, 29, 101, 127, 113, 785, 1257, 525, 7397, 13143, 30315, 5969, 37829}}, +{10725, 17, 42546, {1, 1, 1, 7, 29, 33, 17, 95, 439, 577, 1857, 423, 63, 15365, 4777, 59073, 7773}}, +{10726, 17, 42563, {1, 1, 5, 15, 3, 17, 89, 133, 217, 601, 1979, 391, 105, 13709, 10081, 37725, 40957}}, +{10727, 17, 42570, {1, 1, 1, 15, 25, 7, 85, 197, 155, 367, 1927, 2007, 2563, 13147, 2345, 28735, 88243}}, +{10728, 17, 42580, {1, 3, 5, 3, 5, 33, 87, 153, 153, 779, 825, 2163, 385, 11663, 2005, 51261, 25893}}, +{10729, 17, 42584, {1, 3, 5, 5, 23, 15, 19, 99, 71, 723, 523, 3683, 7773, 191, 17423, 30497, 129889}}, +{10730, 17, 42589, {1, 1, 7, 11, 1, 3, 49, 119, 39, 661, 297, 27, 1575, 12145, 18519, 57285, 50059}}, +{10731, 17, 42608, {1, 3, 7, 5, 7, 37, 75, 235, 403, 743, 603, 1689, 5031, 8871, 28241, 16917, 16947}}, +{10732, 17, 42618, {1, 1, 5, 13, 17, 41, 67, 219, 237, 365, 833, 3521, 3211, 1037, 5657, 34789, 119739}}, +{10733, 17, 42629, {1, 1, 5, 7, 3, 61, 89, 107, 335, 825, 803, 2445, 6861, 5421, 14585, 44037, 92711}}, +{10734, 17, 42636, {1, 3, 7, 3, 19, 25, 81, 51, 101, 477, 1653, 2841, 6597, 9261, 30609, 15681, 48897}}, +{10735, 17, 42639, {1, 1, 7, 11, 17, 1, 43, 39, 133, 513, 1839, 553, 6379, 4865, 28161, 7249, 80073}}, +{10736, 17, 42644, {1, 1, 5, 5, 13, 45, 19, 225, 399, 679, 195, 3613, 413, 2901, 26749, 39971, 31435}}, +{10737, 17, 42647, {1, 3, 7, 3, 23, 55, 57, 77, 447, 721, 677, 271, 6211, 12631, 5843, 35991, 82653}}, +{10738, 17, 42651, {1, 1, 1, 1, 3, 63, 23, 195, 1, 1019, 723, 3865, 5913, 5491, 5495, 27483, 73637}}, +{10739, 17, 42654, {1, 3, 1, 11, 17, 31, 27, 211, 411, 789, 1049, 2487, 2203, 6457, 7275, 4833, 14131}}, +{10740, 17, 42658, {1, 1, 5, 15, 15, 13, 65, 155, 127, 753, 1605, 1859, 2873, 9197, 1763, 11969, 82971}}, +{10741, 17, 42669, {1, 1, 3, 11, 11, 63, 13, 29, 31, 851, 251, 3231, 1227, 5513, 9785, 34659, 123811}}, +{10742, 17, 42678, {1, 3, 5, 1, 19, 57, 41, 205, 91, 39, 989, 1897, 4789, 16071, 6507, 29363, 75773}}, +{10743, 17, 42689, {1, 1, 1, 1, 5, 29, 113, 203, 53, 599, 1529, 1417, 7017, 9609, 4867, 17659, 80719}}, +{10744, 17, 42695, {1, 3, 7, 9, 27, 17, 77, 25, 461, 511, 781, 2977, 7601, 3551, 23615, 57669, 119723}}, +{10745, 17, 42696, {1, 3, 3, 9, 23, 43, 115, 21, 125, 237, 893, 1431, 7423, 3717, 4371, 36193, 30481}}, +{10746, 17, 42710, {1, 1, 5, 13, 3, 37, 13, 239, 267, 665, 205, 2745, 3865, 12167, 26689, 999, 9355}}, +{10747, 17, 42716, {1, 1, 1, 1, 31, 35, 55, 115, 387, 217, 657, 2827, 2963, 3687, 24271, 41701, 5911}}, +{10748, 17, 42730, {1, 1, 3, 3, 27, 57, 41, 183, 351, 841, 1327, 719, 7043, 12503, 17953, 60719, 98223}}, +{10749, 17, 42732, {1, 3, 1, 1, 27, 1, 119, 85, 197, 673, 1951, 2949, 4783, 561, 12807, 43355, 63397}}, +{10750, 17, 42747, {1, 1, 7, 7, 17, 63, 109, 87, 303, 439, 529, 685, 111, 8405, 21249, 33803, 77927}}, +{10751, 17, 42750, {1, 1, 7, 9, 11, 63, 27, 185, 445, 25, 1313, 3979, 4229, 8797, 10671, 33995, 84463}}, +{10752, 17, 42752, {1, 1, 1, 15, 27, 63, 67, 237, 39, 993, 851, 4075, 3417, 1077, 11939, 31737, 93897}}, +{10753, 17, 42761, {1, 1, 3, 5, 25, 9, 51, 241, 213, 661, 1135, 213, 7027, 5933, 24485, 65029, 8583}}, +{10754, 17, 42772, {1, 3, 5, 11, 31, 1, 17, 237, 107, 1021, 279, 181, 1741, 11099, 7871, 63231, 64445}}, +{10755, 17, 42776, {1, 3, 5, 9, 17, 21, 11, 45, 23, 409, 519, 1703, 5467, 9591, 13555, 23739, 73837}}, +{10756, 17, 42779, {1, 3, 3, 15, 3, 39, 11, 157, 273, 241, 413, 1723, 3179, 2125, 16859, 5231, 122969}}, +{10757, 17, 42797, {1, 3, 5, 11, 21, 27, 29, 243, 255, 1011, 1179, 3545, 3557, 8091, 31569, 10217, 108361}}, +{10758, 17, 42815, {1, 1, 5, 9, 25, 33, 29, 67, 395, 123, 1405, 3855, 7481, 5601, 21231, 17099, 13399}}, +{10759, 17, 42824, {1, 1, 5, 5, 13, 17, 111, 47, 77, 827, 577, 1767, 3367, 11719, 8801, 22431, 85451}}, +{10760, 17, 42837, {1, 3, 7, 11, 11, 31, 17, 141, 149, 293, 55, 3459, 19, 13709, 29135, 62765, 66455}}, +{10761, 17, 42844, {1, 1, 7, 15, 13, 19, 59, 211, 189, 773, 1791, 2089, 2857, 1635, 17777, 46585, 70115}}, +{10762, 17, 42868, {1, 1, 5, 11, 29, 29, 15, 7, 93, 733, 1605, 3731, 2381, 1063, 15565, 25081, 46651}}, +{10763, 17, 42877, {1, 3, 1, 9, 25, 5, 87, 113, 25, 93, 881, 1137, 3237, 10983, 14317, 25945, 121493}}, +{10764, 17, 42888, {1, 1, 5, 11, 29, 47, 99, 111, 165, 453, 259, 2001, 7715, 2609, 15633, 40273, 2065}}, +{10765, 17, 42891, {1, 1, 7, 13, 11, 29, 33, 255, 149, 361, 89, 2837, 49, 3033, 1917, 9029, 38123}}, +{10766, 17, 42912, {1, 1, 1, 7, 27, 31, 105, 61, 469, 497, 1919, 3005, 3651, 2143, 24359, 8053, 103647}}, +{10767, 17, 42918, {1, 1, 3, 13, 31, 63, 101, 47, 397, 89, 1915, 2385, 5399, 8897, 21001, 42997, 110333}}, +{10768, 17, 42921, {1, 3, 7, 5, 29, 1, 5, 119, 493, 349, 153, 1839, 283, 14343, 12975, 55597, 89467}}, +{10769, 17, 42927, {1, 3, 5, 3, 5, 51, 71, 227, 63, 799, 745, 1387, 2435, 1003, 27937, 43421, 12279}}, +{10770, 17, 42949, {1, 3, 3, 7, 7, 31, 37, 61, 11, 175, 581, 1583, 4737, 3087, 10335, 60683, 57085}}, +{10771, 17, 42953, {1, 3, 1, 1, 1, 63, 59, 47, 417, 35, 1673, 3277, 1873, 14981, 22463, 26835, 91115}}, +{10772, 17, 42967, {1, 1, 7, 5, 15, 23, 115, 13, 253, 583, 219, 1307, 1189, 9891, 641, 20841, 87133}}, +{10773, 17, 42974, {1, 1, 5, 11, 1, 3, 71, 235, 429, 335, 1649, 1775, 3077, 13723, 3209, 19807, 7283}}, +{10774, 17, 42989, {1, 1, 7, 1, 31, 49, 39, 141, 127, 63, 1561, 2559, 7661, 4825, 9419, 15327, 87145}}, +{10775, 17, 42995, {1, 1, 5, 3, 17, 33, 51, 219, 467, 151, 161, 3301, 7509, 2235, 30371, 64031, 62741}}, +{10776, 17, 42997, {1, 3, 1, 3, 23, 63, 43, 29, 399, 279, 271, 3537, 1863, 1811, 14917, 28247, 34807}}, +{10777, 17, 43007, {1, 1, 3, 5, 13, 29, 37, 151, 129, 19, 149, 2145, 5363, 6835, 19655, 1207, 74527}}, +{10778, 17, 43018, {1, 3, 5, 7, 27, 35, 63, 53, 247, 987, 1767, 483, 3489, 1711, 10763, 6981, 78251}}, +{10779, 17, 43025, {1, 1, 3, 1, 15, 47, 83, 147, 375, 539, 1623, 29, 4599, 7981, 23533, 64659, 48753}}, +{10780, 17, 43031, {1, 1, 1, 9, 21, 17, 85, 45, 167, 469, 1319, 2969, 1605, 1405, 9961, 28829, 125757}}, +{10781, 17, 43032, {1, 3, 1, 11, 3, 45, 43, 159, 301, 579, 1821, 701, 1149, 457, 16601, 49377, 99845}}, +{10782, 17, 43038, {1, 1, 7, 13, 11, 7, 37, 227, 345, 973, 1167, 1247, 5109, 10917, 3029, 60065, 127347}}, +{10783, 17, 43041, {1, 1, 3, 5, 3, 63, 95, 233, 495, 225, 1225, 3451, 7731, 14677, 10437, 1417, 33293}}, +{10784, 17, 43054, {1, 1, 7, 15, 1, 3, 3, 171, 201, 1009, 1481, 587, 7661, 10085, 4961, 46415, 28573}}, +{10785, 17, 43074, {1, 1, 5, 1, 3, 45, 67, 79, 463, 733, 2007, 2811, 2943, 14857, 23469, 14479, 97875}}, +{10786, 17, 43085, {1, 1, 1, 5, 19, 1, 29, 29, 447, 173, 1081, 153, 5343, 5707, 1357, 30169, 122527}}, +{10787, 17, 43097, {1, 1, 1, 5, 15, 57, 33, 129, 71, 717, 173, 3271, 4741, 13211, 28321, 56793, 119833}}, +{10788, 17, 43098, {1, 3, 3, 9, 9, 41, 47, 71, 103, 713, 725, 1335, 5261, 13835, 17619, 47429, 69815}}, +{10789, 17, 43110, {1, 3, 3, 15, 7, 3, 71, 25, 75, 967, 1037, 3585, 3407, 9979, 2195, 51087, 126535}}, +{10790, 17, 43119, {1, 3, 3, 11, 25, 7, 25, 249, 473, 339, 1211, 3503, 4343, 9707, 26127, 62061, 52479}}, +{10791, 17, 43131, {1, 1, 3, 3, 27, 9, 79, 197, 207, 845, 377, 3231, 5177, 899, 19497, 41187, 105897}}, +{10792, 17, 43143, {1, 3, 5, 15, 5, 27, 65, 151, 207, 677, 713, 2495, 681, 15341, 5389, 51965, 43761}}, +{10793, 17, 43144, {1, 3, 3, 11, 19, 11, 55, 189, 291, 183, 1345, 2677, 791, 2391, 25771, 55147, 24223}}, +{10794, 17, 43152, {1, 1, 3, 11, 31, 59, 29, 5, 275, 483, 1361, 1527, 3019, 245, 17667, 57905, 41329}}, +{10795, 17, 43157, {1, 3, 3, 9, 7, 19, 83, 71, 147, 999, 793, 3535, 1931, 12817, 2707, 45735, 31311}}, +{10796, 17, 43178, {1, 1, 5, 7, 5, 1, 117, 247, 127, 1011, 1441, 2449, 4095, 12239, 4743, 64781, 32621}}, +{10797, 17, 43180, {1, 3, 1, 11, 19, 57, 43, 39, 97, 485, 951, 989, 5975, 5219, 14421, 43681, 37305}}, +{10798, 17, 43192, {1, 1, 5, 15, 7, 49, 113, 161, 199, 545, 1113, 3821, 2019, 8747, 4085, 50823, 31955}}, +{10799, 17, 43197, {1, 3, 3, 3, 19, 41, 47, 191, 403, 25, 2043, 3489, 6263, 4843, 12961, 63791, 5027}}, +{10800, 17, 43203, {1, 1, 7, 1, 25, 55, 5, 51, 121, 273, 973, 3893, 1771, 9373, 21927, 29353, 95935}}, +{10801, 17, 43220, {1, 3, 3, 3, 27, 1, 97, 63, 445, 179, 481, 2995, 3123, 4687, 24359, 35973, 74535}}, +{10802, 17, 43236, {1, 1, 5, 1, 29, 23, 117, 183, 197, 819, 695, 641, 4155, 13593, 30965, 41407, 42433}}, +{10803, 17, 43245, {1, 3, 5, 1, 23, 53, 61, 253, 87, 487, 1995, 1281, 3367, 15047, 3493, 41711, 53407}}, +{10804, 17, 43246, {1, 1, 1, 9, 27, 49, 83, 21, 63, 181, 1661, 1649, 281, 12141, 25771, 35563, 42643}}, +{10805, 17, 43260, {1, 3, 5, 13, 15, 59, 121, 113, 379, 487, 1929, 3725, 2477, 6527, 8619, 64869, 57103}}, +{10806, 17, 43265, {1, 3, 1, 7, 27, 39, 69, 93, 193, 395, 433, 2091, 151, 6921, 11599, 36143, 41179}}, +{10807, 17, 43271, {1, 1, 7, 1, 31, 33, 73, 199, 57, 37, 1387, 3505, 7919, 3507, 2855, 8239, 84527}}, +{10808, 17, 43285, {1, 1, 7, 5, 15, 5, 119, 253, 263, 785, 1409, 1485, 3675, 5515, 13057, 30323, 98015}}, +{10809, 17, 43286, {1, 3, 1, 1, 11, 5, 57, 83, 365, 703, 1923, 1397, 1103, 4015, 13123, 47093, 113793}}, +{10810, 17, 43290, {1, 3, 3, 1, 5, 61, 29, 173, 189, 999, 897, 3389, 6745, 1487, 2349, 59105, 107407}}, +{10811, 17, 43299, {1, 1, 1, 1, 17, 51, 65, 1, 249, 863, 399, 3819, 2485, 12215, 12365, 58909, 25559}}, +{10812, 17, 43314, {1, 3, 7, 1, 31, 39, 43, 219, 51, 13, 779, 505, 2259, 14571, 9049, 21555, 11869}}, +{10813, 17, 43323, {1, 1, 7, 7, 13, 5, 97, 85, 111, 511, 587, 63, 2395, 8099, 26223, 757, 119821}}, +{10814, 17, 43337, {1, 3, 3, 5, 5, 19, 113, 35, 101, 41, 499, 1313, 6489, 6793, 31435, 45007, 95691}}, +{10815, 17, 43348, {1, 3, 5, 15, 19, 37, 103, 187, 347, 667, 1957, 1825, 7447, 12359, 21779, 52749, 18679}}, +{10816, 17, 43355, {1, 3, 5, 5, 17, 19, 19, 193, 435, 379, 439, 2093, 725, 2133, 15659, 54645, 59567}}, +{10817, 17, 43357, {1, 3, 7, 3, 23, 35, 33, 13, 23, 349, 231, 1635, 1625, 5039, 21299, 36413, 104681}}, +{10818, 17, 43358, {1, 1, 3, 13, 23, 49, 15, 253, 509, 9, 411, 2157, 3737, 11227, 6021, 42919, 100375}}, +{10819, 17, 43361, {1, 1, 7, 1, 17, 11, 33, 167, 219, 63, 137, 741, 4193, 16149, 9657, 50223, 85213}}, +{10820, 17, 43362, {1, 3, 7, 11, 23, 59, 113, 149, 427, 697, 1723, 255, 201, 10081, 1079, 323, 109091}}, +{10821, 17, 43364, {1, 3, 3, 15, 11, 9, 89, 39, 67, 249, 1939, 1737, 3719, 10515, 16517, 22345, 83959}}, +{10822, 17, 43368, {1, 3, 3, 13, 5, 33, 127, 9, 329, 429, 563, 1579, 4427, 8343, 22083, 5035, 124915}}, +{10823, 17, 43376, {1, 1, 1, 5, 15, 57, 121, 171, 315, 983, 743, 2015, 2421, 12431, 2561, 13331, 73163}}, +{10824, 17, 43385, {1, 1, 3, 9, 1, 39, 85, 159, 23, 979, 1467, 231, 4231, 3669, 16747, 24195, 46745}}, +{10825, 17, 43386, {1, 1, 3, 7, 3, 11, 65, 67, 85, 455, 365, 2279, 3471, 12771, 14443, 42773, 28723}}, +{10826, 17, 43391, {1, 3, 5, 1, 13, 9, 105, 237, 103, 59, 1301, 3125, 509, 12669, 3893, 9775, 81303}}, +{10827, 17, 43397, {1, 1, 3, 11, 19, 9, 125, 23, 191, 979, 533, 429, 3239, 15013, 13833, 40689, 102827}}, +{10828, 17, 43431, {1, 3, 3, 7, 15, 5, 83, 243, 467, 913, 1279, 3889, 8049, 8357, 5957, 39073, 93521}}, +{10829, 17, 43438, {1, 3, 3, 3, 19, 5, 123, 77, 289, 57, 2001, 807, 5257, 1671, 20273, 10183, 128439}}, +{10830, 17, 43440, {1, 1, 7, 13, 19, 45, 25, 47, 135, 929, 1353, 2731, 3351, 7637, 27037, 58835, 50285}}, +{10831, 17, 43452, {1, 3, 1, 1, 13, 55, 55, 197, 409, 93, 1351, 161, 1885, 5913, 27937, 49793, 84541}}, +{10832, 17, 43463, {1, 1, 3, 7, 29, 21, 113, 179, 203, 533, 1471, 2035, 447, 6781, 28729, 31099, 23027}}, +{10833, 17, 43470, {1, 1, 3, 11, 27, 3, 5, 209, 367, 945, 749, 3637, 2881, 8139, 27875, 34223, 97263}}, +{10834, 17, 43478, {1, 3, 5, 13, 25, 27, 35, 3, 13, 707, 303, 3663, 6617, 13501, 25537, 33077, 71485}}, +{10835, 17, 43481, {1, 1, 7, 15, 11, 29, 65, 47, 235, 635, 133, 153, 6175, 2961, 8171, 28641, 122589}}, +{10836, 17, 43488, {1, 1, 5, 15, 17, 41, 85, 147, 323, 673, 1629, 3477, 3341, 16373, 13901, 60961, 39451}}, +{10837, 17, 43491, {1, 3, 1, 15, 29, 15, 37, 109, 293, 863, 1835, 1173, 2263, 13815, 24995, 6989, 103417}}, +{10838, 17, 43506, {1, 3, 3, 15, 3, 31, 23, 47, 15, 717, 1457, 1067, 6229, 7051, 21771, 54815, 115827}}, +{10839, 17, 43512, {1, 1, 1, 13, 21, 3, 45, 239, 89, 603, 407, 781, 8095, 7389, 18035, 32229, 39867}}, +{10840, 17, 43539, {1, 1, 3, 7, 7, 59, 79, 51, 411, 917, 803, 2455, 2623, 12413, 23957, 44199, 67903}}, +{10841, 17, 43567, {1, 3, 1, 9, 17, 37, 117, 47, 101, 733, 1861, 1111, 6785, 13743, 24371, 49427, 54711}}, +{10842, 17, 43579, {1, 3, 1, 15, 27, 63, 107, 33, 351, 287, 1765, 1947, 6209, 8127, 30007, 18757, 31453}}, +{10843, 17, 43584, {1, 3, 5, 13, 11, 13, 29, 247, 7, 609, 1235, 1767, 5365, 12673, 10151, 51579, 106407}}, +{10844, 17, 43601, {1, 3, 7, 15, 5, 25, 81, 197, 51, 615, 1695, 259, 7983, 1403, 7903, 21441, 73263}}, +{10845, 17, 43614, {1, 1, 5, 1, 13, 61, 55, 175, 445, 3, 1957, 1171, 6823, 4285, 11847, 12789, 79787}}, +{10846, 17, 43617, {1, 1, 5, 15, 17, 51, 111, 201, 45, 97, 45, 2533, 1125, 3663, 13685, 45719, 51497}}, +{10847, 17, 43623, {1, 3, 3, 13, 29, 59, 111, 97, 381, 477, 1229, 3709, 5185, 7055, 32729, 32881, 25539}}, +{10848, 17, 43630, {1, 3, 1, 9, 1, 39, 57, 143, 189, 625, 1717, 1755, 3129, 807, 27975, 15511, 66123}}, +{10849, 17, 43647, {1, 3, 3, 1, 5, 41, 25, 27, 163, 397, 1595, 2325, 1803, 12439, 25743, 24509, 72613}}, +{10850, 17, 43658, {1, 1, 5, 13, 29, 41, 125, 113, 367, 709, 1911, 669, 831, 5375, 31145, 26197, 33543}}, +{10851, 17, 43663, {1, 1, 5, 1, 1, 5, 91, 199, 133, 273, 393, 1179, 717, 12791, 17693, 6905, 20433}}, +{10852, 17, 43665, {1, 1, 3, 15, 29, 35, 9, 127, 383, 673, 1821, 2765, 2425, 11789, 19741, 43189, 99557}}, +{10853, 17, 43691, {1, 1, 7, 13, 9, 19, 119, 103, 11, 983, 623, 391, 1609, 2333, 19843, 28269, 41237}}, +{10854, 17, 43701, {1, 3, 7, 5, 29, 3, 13, 213, 387, 361, 749, 669, 1625, 5687, 11369, 38119, 38389}}, +{10855, 17, 43705, {1, 3, 5, 13, 13, 51, 47, 33, 1, 979, 1817, 2633, 7181, 47, 3603, 49211, 4377}}, +{10856, 17, 43708, {1, 3, 1, 1, 11, 63, 5, 249, 13, 805, 1097, 1449, 5235, 16299, 25855, 30949, 3013}}, +{10857, 17, 43719, {1, 3, 7, 9, 29, 35, 89, 135, 475, 945, 999, 771, 6023, 13317, 32611, 43971, 10393}}, +{10858, 17, 43731, {1, 1, 1, 5, 23, 3, 37, 117, 95, 985, 1599, 2191, 3617, 5831, 31113, 10873, 112219}}, +{10859, 17, 43737, {1, 3, 5, 7, 11, 15, 55, 65, 239, 365, 1209, 3509, 8101, 8619, 24775, 65291, 50589}}, +{10860, 17, 43740, {1, 1, 7, 9, 21, 19, 123, 83, 317, 717, 433, 31, 2597, 14723, 28839, 7817, 126123}}, +{10861, 17, 43747, {1, 1, 7, 11, 3, 33, 99, 39, 227, 279, 353, 1921, 7883, 16187, 5157, 41121, 89425}}, +{10862, 17, 43749, {1, 3, 5, 9, 25, 7, 29, 165, 129, 77, 159, 923, 1357, 1159, 23537, 58087, 56443}}, +{10863, 17, 43750, {1, 1, 7, 3, 13, 51, 45, 161, 27, 41, 1295, 2937, 7223, 5271, 17927, 23311, 2543}}, +{10864, 17, 43754, {1, 1, 1, 1, 11, 53, 119, 165, 409, 785, 1649, 3587, 259, 10997, 3171, 31271, 104631}}, +{10865, 17, 43764, {1, 1, 5, 7, 5, 7, 49, 201, 373, 825, 1755, 3751, 8041, 8133, 21347, 12039, 3049}}, +{10866, 17, 43767, {1, 1, 1, 3, 7, 29, 103, 1, 473, 65, 761, 1611, 5121, 14345, 32535, 16679, 11321}}, +{10867, 17, 43768, {1, 3, 3, 11, 21, 57, 35, 63, 237, 415, 1943, 483, 5377, 14647, 23433, 45459, 32535}}, +{10868, 17, 43773, {1, 1, 1, 15, 21, 57, 7, 103, 493, 279, 665, 3699, 169, 7619, 3571, 11539, 31983}}, +{10869, 17, 43785, {1, 1, 1, 1, 9, 5, 81, 159, 105, 927, 379, 1133, 1805, 14341, 9833, 63151, 70877}}, +{10870, 17, 43788, {1, 1, 7, 5, 19, 5, 63, 127, 129, 43, 757, 2215, 3899, 643, 19731, 17345, 102611}}, +{10871, 17, 43810, {1, 3, 7, 7, 27, 21, 3, 69, 475, 283, 319, 833, 3683, 11275, 18191, 44027, 24901}}, +{10872, 17, 43819, {1, 1, 5, 5, 31, 25, 63, 33, 505, 765, 257, 1147, 779, 12505, 19971, 24695, 65935}}, +{10873, 17, 43834, {1, 1, 1, 15, 23, 33, 31, 107, 59, 639, 1307, 3211, 6171, 15665, 16775, 61671, 25569}}, +{10874, 17, 43853, {1, 3, 3, 9, 31, 3, 113, 199, 425, 895, 1051, 2125, 1525, 15199, 14845, 4213, 18449}}, +{10875, 17, 43866, {1, 3, 5, 3, 3, 11, 75, 121, 33, 265, 459, 3879, 909, 6533, 18451, 32421, 117427}}, +{10876, 17, 43871, {1, 1, 1, 9, 11, 9, 125, 175, 309, 847, 959, 2013, 1557, 9291, 2963, 43275, 9917}}, +{10877, 17, 43872, {1, 1, 5, 3, 15, 39, 67, 35, 373, 601, 463, 1263, 1615, 15059, 31011, 36059, 114493}}, +{10878, 17, 43881, {1, 1, 5, 15, 5, 43, 49, 239, 461, 171, 1863, 2249, 2923, 15897, 22941, 29925, 21429}}, +{10879, 17, 43889, {1, 1, 1, 15, 13, 31, 127, 205, 361, 149, 1641, 1443, 5959, 13183, 13861, 9533, 1011}}, +{10880, 17, 43902, {1, 1, 3, 13, 9, 49, 39, 67, 165, 695, 611, 2261, 3425, 6247, 23575, 51833, 106167}}, +{10881, 17, 43926, {1, 1, 7, 9, 29, 21, 75, 251, 87, 263, 2035, 1007, 3821, 12719, 8889, 47901, 39037}}, +{10882, 17, 43935, {1, 3, 1, 3, 15, 51, 79, 127, 201, 497, 1881, 3841, 1821, 14435, 4933, 6853, 104305}}, +{10883, 17, 43946, {1, 1, 5, 11, 23, 47, 33, 109, 481, 585, 333, 2525, 593, 1625, 5787, 23839, 30647}}, +{10884, 17, 43951, {1, 1, 5, 1, 17, 3, 7, 43, 113, 873, 1433, 3377, 45, 831, 17015, 21479, 7257}}, +{10885, 17, 43953, {1, 1, 1, 1, 13, 21, 59, 159, 279, 871, 53, 3647, 2599, 12417, 25807, 6867, 18251}}, +{10886, 17, 43971, {1, 1, 5, 9, 29, 61, 7, 81, 353, 761, 269, 4047, 3051, 8385, 2919, 18875, 15239}}, +{10887, 17, 44008, {1, 1, 7, 13, 31, 17, 71, 103, 107, 655, 1263, 849, 1809, 349, 3239, 45381, 117451}}, +{10888, 17, 44011, {1, 1, 5, 9, 27, 45, 83, 207, 117, 77, 437, 523, 851, 13595, 12381, 27271, 59951}}, +{10889, 17, 44026, {1, 3, 3, 15, 3, 33, 103, 217, 61, 443, 1077, 2887, 1751, 11111, 465, 37051, 89687}}, +{10890, 17, 44033, {1, 1, 1, 5, 15, 15, 13, 115, 275, 565, 1257, 1067, 6561, 8143, 2149, 53169, 123637}}, +{10891, 17, 44048, {1, 3, 3, 15, 27, 63, 25, 191, 143, 103, 1247, 1053, 2469, 9823, 4437, 18195, 91751}}, +{10892, 17, 44057, {1, 1, 7, 11, 1, 63, 31, 103, 249, 861, 983, 335, 35, 4291, 16307, 43669, 68065}}, +{10893, 17, 44058, {1, 3, 1, 15, 13, 29, 51, 145, 177, 851, 39, 3531, 4477, 4243, 3301, 64293, 15741}}, +{10894, 17, 44067, {1, 1, 7, 3, 29, 45, 5, 85, 185, 191, 1007, 3085, 2177, 14911, 18319, 265, 25435}}, +{10895, 17, 44081, {1, 1, 5, 9, 9, 57, 47, 143, 217, 947, 2021, 1835, 4773, 15145, 26519, 46407, 103667}}, +{10896, 17, 44087, {1, 3, 1, 11, 1, 7, 51, 75, 207, 757, 89, 1289, 39, 15641, 9477, 28503, 47113}}, +{10897, 17, 44099, {1, 3, 1, 11, 9, 19, 21, 197, 429, 121, 813, 3447, 6091, 3167, 5401, 27791, 26499}}, +{10898, 17, 44105, {1, 1, 7, 15, 1, 15, 85, 247, 3, 111, 433, 3103, 5049, 7929, 22645, 53247, 53417}}, +{10899, 17, 44106, {1, 1, 7, 7, 27, 19, 125, 101, 269, 7, 777, 1289, 1429, 11561, 18043, 3601, 125857}}, +{10900, 17, 44114, {1, 1, 1, 13, 11, 9, 127, 231, 239, 435, 1291, 4025, 1049, 15549, 7577, 51147, 38121}}, +{10901, 17, 44116, {1, 1, 7, 3, 9, 55, 57, 137, 387, 565, 873, 1417, 5993, 4849, 1731, 51653, 105697}}, +{10902, 17, 44130, {1, 1, 7, 9, 7, 47, 115, 119, 325, 881, 1687, 1009, 7007, 12541, 6737, 28471, 7369}}, +{10903, 17, 44139, {1, 3, 1, 1, 11, 47, 25, 163, 399, 977, 1777, 727, 5575, 1311, 23843, 2199, 93229}}, +{10904, 17, 44141, {1, 1, 7, 5, 13, 19, 53, 123, 439, 585, 1977, 3387, 5305, 1463, 14307, 9519, 537}}, +{10905, 17, 44153, {1, 1, 7, 15, 1, 53, 13, 213, 323, 699, 1585, 3499, 2441, 3055, 31263, 63923, 9779}}, +{10906, 17, 44159, {1, 1, 5, 5, 21, 43, 123, 43, 475, 521, 1301, 3185, 5627, 7443, 1195, 39485, 113125}}, +{10907, 17, 44160, {1, 1, 5, 7, 9, 3, 39, 5, 237, 719, 1743, 1153, 6401, 14701, 5503, 38491, 24123}}, +{10908, 17, 44170, {1, 3, 5, 9, 17, 33, 117, 23, 409, 63, 1829, 2587, 3489, 3209, 4775, 40069, 4721}}, +{10909, 17, 44172, {1, 3, 3, 5, 21, 63, 95, 231, 25, 167, 1181, 813, 4591, 5227, 21999, 19633, 37547}}, +{10910, 17, 44187, {1, 1, 7, 11, 13, 9, 13, 147, 239, 951, 1247, 1199, 7907, 12493, 25371, 1917, 107499}}, +{10911, 17, 44190, {1, 1, 5, 15, 3, 49, 31, 103, 189, 561, 1763, 3941, 3525, 3165, 7789, 57729, 92635}}, +{10912, 17, 44193, {1, 1, 1, 5, 3, 61, 107, 163, 465, 631, 1519, 169, 4469, 8153, 11039, 247, 37657}}, +{10913, 17, 44199, {1, 3, 1, 5, 9, 37, 51, 195, 465, 975, 169, 1077, 995, 2669, 7663, 28997, 25779}}, +{10914, 17, 44213, {1, 1, 7, 13, 7, 37, 3, 117, 147, 335, 629, 4077, 5855, 2893, 5629, 55075, 83359}}, +{10915, 17, 44218, {1, 1, 5, 9, 9, 25, 53, 63, 315, 287, 1833, 1397, 2395, 5719, 6719, 18003, 101073}}, +{10916, 17, 44223, {1, 1, 7, 1, 13, 19, 13, 81, 497, 399, 413, 2411, 3915, 14037, 19735, 4587, 69655}}, +{10917, 17, 44235, {1, 3, 1, 7, 5, 61, 101, 209, 299, 729, 1359, 4013, 2057, 8439, 8113, 57417, 8951}}, +{10918, 17, 44243, {1, 3, 5, 7, 29, 21, 67, 73, 107, 359, 1655, 3729, 4403, 10467, 28103, 10261, 74651}}, +{10919, 17, 44262, {1, 1, 1, 9, 3, 39, 25, 91, 287, 497, 1743, 339, 4739, 1709, 16351, 45385, 64693}}, +{10920, 17, 44283, {1, 3, 1, 1, 7, 13, 41, 93, 49, 285, 997, 891, 4353, 4249, 11269, 36935, 71249}}, +{10921, 17, 44291, {1, 3, 3, 13, 13, 23, 97, 231, 101, 93, 1183, 201, 6795, 16287, 30707, 20845, 105873}}, +{10922, 17, 44293, {1, 1, 1, 9, 7, 57, 123, 167, 451, 245, 1887, 1839, 2967, 2387, 15075, 11877, 629}}, +{10923, 17, 44308, {1, 3, 3, 1, 13, 13, 83, 41, 219, 313, 1743, 1265, 4435, 11731, 17625, 64235, 24865}}, +{10924, 17, 44327, {1, 3, 1, 9, 13, 17, 109, 235, 387, 581, 887, 1071, 603, 10955, 5001, 8419, 20997}}, +{10925, 17, 44341, {1, 3, 1, 5, 31, 55, 1, 219, 27, 623, 1425, 1309, 5409, 9633, 3231, 15029, 22989}}, +{10926, 17, 44346, {1, 3, 3, 13, 25, 47, 23, 223, 283, 189, 1665, 3743, 387, 1807, 16919, 8511, 15933}}, +{10927, 17, 44348, {1, 1, 1, 1, 13, 11, 81, 59, 423, 1007, 317, 2761, 2617, 9715, 24853, 63585, 77083}}, +{10928, 17, 44354, {1, 3, 1, 3, 3, 11, 103, 123, 401, 467, 1159, 2725, 3275, 15513, 2281, 21617, 87211}}, +{10929, 17, 44366, {1, 1, 5, 7, 23, 17, 25, 83, 11, 901, 809, 3233, 3929, 8685, 7609, 50949, 104841}}, +{10930, 17, 44368, {1, 3, 7, 1, 15, 33, 37, 245, 275, 453, 729, 721, 1589, 5417, 29839, 57315, 67227}}, +{10931, 17, 44373, {1, 3, 7, 3, 21, 17, 51, 213, 225, 471, 1201, 931, 1229, 9503, 5507, 4057, 7737}}, +{10932, 17, 44384, {1, 3, 1, 11, 29, 55, 19, 193, 9, 151, 597, 1377, 827, 8549, 1293, 10963, 86183}}, +{10933, 17, 44390, {1, 3, 3, 15, 17, 23, 89, 47, 195, 333, 2001, 1001, 6715, 9797, 21631, 5723, 88847}}, +{10934, 17, 44393, {1, 3, 5, 9, 21, 33, 111, 101, 503, 513, 785, 1947, 1139, 7921, 13189, 34831, 80963}}, +{10935, 17, 44394, {1, 3, 3, 13, 9, 61, 35, 39, 451, 485, 661, 1993, 4705, 9477, 32541, 16553, 33167}}, +{10936, 17, 44399, {1, 3, 3, 9, 29, 37, 115, 87, 367, 325, 539, 1975, 6769, 1453, 31099, 3335, 16939}}, +{10937, 17, 44401, {1, 1, 1, 7, 15, 21, 113, 203, 97, 847, 625, 847, 1819, 1109, 14503, 25319, 100259}}, +{10938, 17, 44408, {1, 1, 5, 11, 9, 13, 65, 21, 429, 865, 513, 2183, 3785, 11817, 6283, 23041, 7969}}, +{10939, 17, 44411, {1, 1, 5, 13, 1, 41, 109, 43, 91, 211, 1477, 3543, 5217, 3133, 12503, 15523, 12917}}, +{10940, 17, 44417, {1, 3, 7, 9, 23, 53, 109, 89, 229, 939, 1211, 2771, 541, 15915, 5411, 47273, 54453}}, +{10941, 17, 44420, {1, 1, 1, 3, 3, 45, 31, 63, 99, 347, 17, 523, 441, 12325, 15673, 1887, 15289}}, +{10942, 17, 44424, {1, 1, 1, 7, 29, 61, 35, 115, 345, 1011, 5, 595, 465, 3897, 28147, 791, 98757}}, +{10943, 17, 44444, {1, 1, 5, 9, 27, 1, 21, 155, 467, 469, 1565, 1439, 5809, 851, 32503, 3025, 97231}}, +{10944, 17, 44451, {1, 1, 1, 9, 3, 17, 15, 73, 487, 1011, 63, 2605, 6647, 9385, 4527, 21993, 19783}}, +{10945, 17, 44453, {1, 1, 3, 9, 17, 17, 65, 75, 175, 897, 1317, 2593, 1495, 15835, 12025, 57457, 29577}}, +{10946, 17, 44466, {1, 1, 1, 13, 7, 1, 13, 145, 491, 427, 375, 1235, 3045, 2991, 26607, 30581, 43377}}, +{10947, 17, 44472, {1, 1, 1, 1, 31, 1, 75, 235, 345, 75, 1505, 1401, 6921, 6207, 13729, 21545, 34703}}, +{10948, 17, 44475, {1, 3, 7, 9, 31, 35, 53, 233, 85, 385, 2045, 1401, 5365, 827, 13093, 41097, 97381}}, +{10949, 17, 44486, {1, 3, 7, 15, 5, 9, 19, 125, 49, 29, 1553, 675, 3947, 4775, 8161, 12321, 55191}}, +{10950, 17, 44500, {1, 3, 3, 7, 17, 17, 27, 237, 87, 927, 275, 1965, 4993, 1429, 31613, 38403, 119319}}, +{10951, 17, 44510, {1, 3, 7, 13, 25, 61, 87, 133, 37, 725, 697, 371, 7607, 13861, 8015, 63997, 25745}}, +{10952, 17, 44531, {1, 1, 5, 3, 1, 29, 115, 53, 355, 533, 1711, 3863, 6983, 4849, 15787, 38933, 100299}}, +{10953, 17, 44534, {1, 1, 3, 5, 7, 11, 95, 21, 363, 1005, 425, 3497, 841, 8251, 11933, 47783, 122699}}, +{10954, 17, 44553, {1, 1, 1, 11, 15, 41, 23, 159, 191, 433, 919, 3151, 5311, 2061, 11277, 4947, 10549}}, +{10955, 17, 44559, {1, 1, 5, 1, 29, 57, 23, 239, 179, 821, 1825, 1745, 4357, 4041, 27517, 8557, 86969}}, +{10956, 17, 44564, {1, 3, 1, 13, 3, 45, 91, 21, 221, 203, 683, 1787, 375, 4101, 13555, 43269, 8063}}, +{10957, 17, 44580, {1, 1, 5, 15, 17, 61, 95, 95, 285, 597, 1967, 4061, 389, 3813, 6061, 50261, 56035}}, +{10958, 17, 44583, {1, 1, 7, 9, 9, 35, 103, 255, 239, 77, 145, 4089, 757, 16151, 29963, 1229, 31895}}, +{10959, 17, 44589, {1, 1, 7, 7, 29, 51, 63, 105, 55, 609, 665, 2101, 4605, 7085, 18543, 64221, 102503}}, +{10960, 17, 44592, {1, 1, 3, 9, 23, 49, 83, 71, 191, 917, 39, 1013, 4689, 2407, 1733, 31113, 31263}}, +{10961, 17, 44609, {1, 1, 5, 11, 31, 51, 17, 223, 325, 829, 541, 3561, 5319, 15397, 12479, 57199, 38611}}, +{10962, 17, 44627, {1, 3, 1, 3, 19, 57, 19, 191, 427, 905, 1111, 695, 5447, 4061, 25543, 45699, 113283}}, +{10963, 17, 44633, {1, 1, 3, 7, 5, 11, 59, 249, 375, 889, 563, 2757, 5857, 3595, 23183, 1785, 105017}}, +{10964, 17, 44643, {1, 3, 5, 7, 11, 55, 95, 167, 27, 823, 903, 2403, 1137, 3209, 6313, 61871, 129865}}, +{10965, 17, 44646, {1, 1, 3, 11, 25, 3, 89, 171, 209, 409, 1357, 3825, 5261, 10805, 13493, 3303, 129987}}, +{10966, 17, 44650, {1, 1, 5, 1, 23, 21, 3, 207, 471, 375, 1785, 2555, 1613, 16235, 1585, 48221, 10197}}, +{10967, 17, 44674, {1, 1, 1, 15, 13, 33, 89, 185, 331, 239, 1401, 789, 2687, 15193, 20911, 18935, 28751}}, +{10968, 17, 44676, {1, 1, 1, 13, 27, 19, 111, 139, 385, 531, 1069, 2343, 7405, 10305, 7049, 48215, 77591}}, +{10969, 17, 44680, {1, 3, 7, 13, 23, 9, 113, 107, 441, 265, 1617, 63, 7629, 5505, 7059, 47307, 82527}}, +{10970, 17, 44683, {1, 3, 1, 9, 27, 27, 35, 233, 189, 517, 1285, 1843, 1569, 14921, 6617, 44337, 46917}}, +{10971, 17, 44703, {1, 1, 3, 15, 7, 15, 9, 255, 109, 629, 437, 3601, 6591, 10873, 1765, 46459, 110991}}, +{10972, 17, 44704, {1, 1, 5, 15, 17, 13, 115, 97, 401, 979, 1139, 2607, 6537, 5369, 17775, 7657, 57175}}, +{10973, 17, 44716, {1, 1, 5, 15, 27, 15, 43, 95, 271, 945, 1205, 3505, 7403, 13203, 27259, 24821, 62921}}, +{10974, 17, 44733, {1, 1, 7, 15, 9, 13, 53, 177, 93, 169, 1933, 1101, 4847, 15477, 22107, 13009, 93675}}, +{10975, 17, 44748, {1, 3, 1, 3, 13, 57, 121, 229, 353, 449, 769, 1207, 557, 5673, 13129, 29383, 35925}}, +{10976, 17, 44759, {1, 3, 3, 1, 31, 33, 5, 87, 461, 873, 795, 2715, 1421, 14723, 17917, 20681, 46103}}, +{10977, 17, 44763, {1, 1, 7, 3, 29, 5, 49, 215, 341, 25, 1473, 177, 1443, 14181, 26723, 49143, 73461}}, +{10978, 17, 44781, {1, 3, 1, 5, 17, 53, 5, 27, 1, 325, 1335, 2941, 7195, 8179, 26971, 63469, 49357}}, +{10979, 17, 44782, {1, 3, 5, 3, 3, 5, 29, 241, 119, 415, 1371, 3201, 2815, 15567, 32521, 18635, 2101}}, +{10980, 17, 44789, {1, 3, 1, 3, 7, 13, 127, 157, 271, 403, 187, 3663, 4073, 12613, 1305, 31061, 48361}}, +{10981, 17, 44794, {1, 1, 3, 5, 1, 39, 41, 201, 113, 923, 621, 497, 3823, 12543, 27273, 58509, 21613}}, +{10982, 17, 44799, {1, 1, 1, 11, 5, 51, 93, 39, 345, 175, 679, 617, 3445, 8591, 4017, 5147, 88847}}, +{10983, 17, 44804, {1, 1, 7, 7, 7, 9, 63, 7, 89, 711, 487, 69, 447, 3355, 31929, 34719, 93629}}, +{10984, 17, 44813, {1, 3, 1, 3, 27, 11, 51, 11, 471, 889, 1935, 2185, 1277, 3127, 8853, 17839, 40279}}, +{10985, 17, 44822, {1, 3, 3, 15, 25, 35, 71, 213, 121, 935, 1601, 537, 5753, 8743, 15243, 59545, 60399}}, +{10986, 17, 44838, {1, 1, 3, 15, 31, 41, 51, 205, 123, 215, 305, 3777, 4103, 7275, 21603, 56853, 54575}}, +{10987, 17, 44842, {1, 3, 7, 9, 17, 19, 37, 59, 193, 303, 1079, 3627, 6503, 14649, 10283, 64469, 83677}}, +{10988, 17, 44849, {1, 3, 1, 5, 11, 3, 115, 139, 213, 307, 721, 1611, 5093, 11817, 32503, 38559, 38449}}, +{10989, 17, 44856, {1, 3, 1, 1, 17, 31, 41, 113, 135, 733, 723, 2021, 7397, 15917, 15741, 7295, 69885}}, +{10990, 17, 44870, {1, 1, 7, 11, 31, 3, 125, 77, 89, 793, 1441, 1527, 457, 9457, 13581, 62979, 125279}}, +{10991, 17, 44887, {1, 1, 1, 5, 9, 17, 19, 115, 43, 395, 183, 2091, 7021, 7555, 20165, 45165, 58925}}, +{10992, 17, 44904, {1, 1, 1, 15, 23, 37, 97, 45, 357, 201, 425, 3605, 5305, 10079, 16397, 40635, 15355}}, +{10993, 17, 44915, {1, 1, 3, 7, 3, 43, 65, 89, 51, 801, 917, 2835, 5675, 2347, 16587, 19701, 68655}}, +{10994, 17, 44917, {1, 3, 7, 13, 11, 59, 93, 155, 53, 435, 165, 3231, 429, 12757, 27033, 14081, 12625}}, +{10995, 17, 44921, {1, 3, 1, 15, 15, 33, 121, 157, 271, 295, 901, 1689, 709, 13395, 17773, 14397, 37743}}, +{10996, 17, 44928, {1, 1, 1, 3, 7, 17, 125, 113, 223, 603, 425, 3213, 2781, 2921, 15181, 18649, 93493}}, +{10997, 17, 44933, {1, 3, 3, 5, 1, 25, 3, 101, 151, 435, 1339, 1207, 7687, 12579, 29331, 4653, 67353}}, +{10998, 17, 44934, {1, 1, 7, 1, 29, 53, 101, 61, 31, 633, 1899, 3919, 1879, 3143, 25319, 45809, 77425}}, +{10999, 17, 44937, {1, 1, 5, 1, 17, 31, 79, 247, 77, 197, 1693, 313, 2183, 14343, 4511, 26009, 44943}}, +{11000, 17, 44940, {1, 1, 7, 5, 31, 29, 119, 251, 345, 867, 271, 165, 6425, 8343, 11251, 28125, 34849}}, +{11001, 17, 44951, {1, 3, 1, 1, 13, 35, 9, 103, 365, 675, 1653, 4095, 3123, 8245, 4679, 18951, 88543}}, +{11002, 17, 44961, {1, 1, 1, 1, 23, 29, 109, 157, 253, 751, 145, 2077, 4555, 7523, 30099, 37709, 97369}}, +{11003, 17, 44962, {1, 3, 3, 11, 5, 1, 51, 11, 203, 963, 1961, 351, 6697, 8137, 25933, 53505, 28531}}, +{11004, 17, 44971, {1, 1, 7, 15, 27, 1, 31, 159, 447, 501, 1873, 2845, 875, 1671, 5049, 38901, 32559}}, +{11005, 17, 44982, {1, 1, 3, 3, 29, 19, 33, 83, 71, 703, 1861, 3683, 3589, 15339, 21075, 40399, 47853}}, +{11006, 17, 44985, {1, 3, 3, 7, 5, 41, 61, 181, 319, 77, 777, 2537, 3887, 2687, 29227, 55217, 55813}}, +{11007, 17, 44996, {1, 3, 3, 1, 25, 41, 23, 31, 31, 775, 693, 891, 861, 7613, 9557, 43275, 36311}}, +{11008, 17, 44999, {1, 1, 7, 13, 11, 5, 99, 217, 81, 441, 765, 3981, 2921, 9657, 6905, 30657, 18395}}, +{11009, 17, 45014, {1, 3, 1, 11, 21, 55, 25, 209, 13, 1021, 1373, 785, 3243, 1541, 12033, 17309, 116517}}, +{11010, 17, 45029, {1, 1, 1, 7, 3, 3, 61, 113, 453, 405, 1321, 2327, 3529, 12779, 11707, 55795, 105137}}, +{11011, 17, 45033, {1, 3, 1, 13, 15, 53, 17, 189, 197, 459, 1999, 935, 7835, 9563, 31231, 47757, 80807}}, +{11012, 17, 45036, {1, 3, 5, 13, 11, 15, 91, 115, 427, 723, 1815, 3527, 5917, 4931, 28297, 12257, 5587}}, +{11013, 17, 45047, {1, 1, 5, 9, 31, 5, 77, 201, 373, 143, 581, 1199, 6807, 6059, 3133, 57069, 4895}}, +{11014, 17, 45065, {1, 3, 1, 9, 17, 13, 127, 61, 235, 991, 279, 1545, 2875, 8453, 13329, 39763, 66897}}, +{11015, 17, 45076, {1, 1, 3, 15, 31, 51, 3, 95, 221, 685, 635, 1747, 177, 9781, 4859, 45345, 37607}}, +{11016, 17, 45085, {1, 3, 5, 1, 3, 55, 63, 51, 63, 707, 883, 2985, 3699, 3881, 8159, 41775, 41411}}, +{11017, 17, 45086, {1, 1, 1, 11, 3, 41, 69, 181, 413, 33, 525, 1883, 6063, 13787, 1259, 19497, 8119}}, +{11018, 17, 45090, {1, 1, 5, 15, 13, 27, 65, 63, 117, 831, 855, 369, 1005, 9069, 16179, 32027, 6527}}, +{11019, 17, 45107, {1, 3, 7, 5, 25, 51, 63, 163, 101, 299, 1637, 641, 2077, 9195, 11181, 59783, 109481}}, +{11020, 17, 45119, {1, 3, 5, 13, 27, 13, 117, 253, 257, 919, 709, 411, 5525, 1247, 19951, 51423, 34605}}, +{11021, 17, 45121, {1, 1, 5, 5, 1, 37, 49, 125, 87, 291, 339, 3235, 1477, 9787, 19637, 22855, 103013}}, +{11022, 17, 45128, {1, 3, 7, 15, 25, 17, 77, 23, 303, 739, 1921, 1425, 6451, 9521, 6311, 38551, 123683}}, +{11023, 17, 45139, {1, 3, 1, 7, 13, 19, 33, 73, 347, 85, 1693, 3671, 713, 1191, 3285, 6815, 61833}}, +{11024, 17, 45151, {1, 1, 3, 3, 13, 53, 81, 177, 305, 967, 551, 1177, 2315, 4899, 5733, 11147, 128895}}, +{11025, 17, 45157, {1, 3, 5, 3, 17, 17, 93, 173, 417, 645, 1631, 1817, 6127, 3545, 6127, 22331, 59751}}, +{11026, 17, 45162, {1, 1, 5, 11, 7, 53, 61, 117, 133, 141, 283, 3351, 6745, 599, 7221, 50583, 9067}}, +{11027, 17, 45164, {1, 3, 7, 3, 29, 45, 71, 177, 97, 897, 589, 3319, 1821, 7207, 25715, 13043, 96695}}, +{11028, 17, 45176, {1, 3, 3, 1, 13, 39, 19, 49, 419, 905, 1063, 4023, 145, 1479, 22197, 43883, 45503}}, +{11029, 17, 45179, {1, 3, 3, 15, 9, 45, 45, 201, 61, 193, 375, 2439, 2339, 15981, 5197, 6285, 109389}}, +{11030, 17, 45198, {1, 1, 7, 13, 29, 51, 93, 223, 509, 1003, 1861, 3715, 2511, 13843, 25297, 1241, 12157}}, +{11031, 17, 45209, {1, 3, 5, 15, 19, 17, 95, 243, 251, 485, 1837, 1829, 2081, 15117, 29635, 63861, 100397}}, +{11032, 17, 45231, {1, 1, 7, 3, 1, 37, 31, 53, 483, 849, 1197, 3069, 2539, 2529, 12749, 64331, 45757}}, +{11033, 17, 45234, {1, 3, 7, 7, 1, 19, 25, 243, 335, 99, 1507, 2155, 6085, 2253, 32439, 16141, 6781}}, +{11034, 17, 45236, {1, 3, 7, 15, 9, 13, 35, 63, 371, 373, 1891, 3913, 4577, 15553, 13079, 60251, 71193}}, +{11035, 17, 45251, {1, 3, 1, 7, 15, 13, 105, 113, 409, 289, 57, 1095, 791, 15675, 21471, 42851, 29203}}, +{11036, 17, 45260, {1, 1, 1, 13, 1, 57, 65, 7, 153, 929, 1325, 229, 3841, 8967, 29889, 49427, 46853}}, +{11037, 17, 45268, {1, 1, 3, 11, 29, 1, 79, 111, 479, 931, 1619, 505, 4503, 4055, 18849, 3979, 46091}}, +{11038, 17, 45277, {1, 1, 7, 3, 31, 27, 127, 63, 219, 43, 883, 1265, 5733, 9051, 17059, 61625, 93843}}, +{11039, 17, 45299, {1, 1, 7, 7, 23, 21, 35, 211, 243, 399, 1225, 1415, 5923, 2143, 25303, 36171, 126349}}, +{11040, 17, 45301, {1, 3, 1, 3, 3, 13, 77, 205, 271, 393, 769, 2101, 4045, 6159, 3409, 44065, 102799}}, +{11041, 17, 45338, {1, 1, 5, 15, 19, 1, 67, 199, 367, 51, 495, 2051, 3195, 15239, 10525, 45319, 50489}}, +{11042, 17, 45344, {1, 1, 1, 9, 3, 19, 105, 147, 417, 399, 373, 1025, 2727, 13779, 30079, 22723, 41551}}, +{11043, 17, 45349, {1, 1, 3, 1, 9, 15, 105, 95, 267, 995, 275, 2627, 3883, 10785, 8075, 40591, 54647}}, +{11044, 17, 45364, {1, 1, 1, 5, 31, 37, 117, 185, 55, 273, 525, 445, 4221, 2081, 16017, 19859, 3297}}, +{11045, 17, 45367, {1, 3, 5, 13, 21, 13, 105, 231, 461, 831, 393, 3253, 1213, 2625, 3393, 36715, 104889}}, +{11046, 17, 45371, {1, 3, 5, 15, 1, 17, 103, 129, 257, 1003, 285, 2927, 3967, 53, 5197, 39665, 50751}}, +{11047, 17, 45373, {1, 1, 1, 13, 1, 61, 47, 255, 137, 849, 213, 301, 681, 9547, 28209, 32941, 72109}}, +{11048, 17, 45376, {1, 1, 7, 11, 31, 15, 81, 117, 327, 289, 1861, 861, 6189, 13425, 18279, 7635, 116969}}, +{11049, 17, 45381, {1, 3, 3, 3, 9, 11, 13, 181, 183, 621, 329, 2751, 3989, 6345, 20319, 52267, 79695}}, +{11050, 17, 45400, {1, 1, 7, 13, 9, 1, 5, 125, 1, 735, 691, 13, 3961, 2273, 18299, 65221, 20115}}, +{11051, 17, 45406, {1, 3, 7, 1, 7, 3, 87, 115, 241, 101, 523, 3019, 7571, 7721, 27409, 49751, 97859}}, +{11052, 17, 45416, {1, 3, 5, 11, 9, 5, 33, 59, 299, 191, 307, 2115, 2823, 10187, 10437, 34137, 93217}}, +{11053, 17, 45422, {1, 3, 3, 7, 21, 31, 5, 113, 77, 215, 177, 2029, 7241, 4465, 31489, 10165, 19035}}, +{11054, 17, 45427, {1, 3, 5, 1, 27, 63, 11, 161, 435, 941, 1593, 1765, 1519, 9111, 12787, 35961, 105263}}, +{11055, 17, 45440, {1, 1, 1, 9, 11, 57, 41, 229, 387, 617, 1991, 221, 2857, 4337, 13851, 23185, 111031}}, +{11056, 17, 45458, {1, 1, 3, 5, 21, 27, 125, 83, 129, 919, 65, 403, 2981, 10111, 17017, 24829, 12205}}, +{11057, 17, 45467, {1, 3, 3, 9, 25, 19, 109, 47, 199, 395, 1909, 2819, 5361, 6629, 7067, 18755, 17921}}, +{11058, 17, 45474, {1, 1, 3, 15, 25, 37, 111, 129, 409, 291, 1403, 2785, 3819, 10245, 24647, 64799, 64951}}, +{11059, 17, 45476, {1, 3, 5, 11, 1, 7, 105, 223, 427, 661, 1817, 1023, 145, 927, 6507, 13235, 30147}}, +{11060, 17, 45488, {1, 3, 5, 13, 7, 15, 65, 125, 121, 113, 923, 2729, 1397, 14247, 8487, 54907, 41921}}, +{11061, 17, 45494, {1, 1, 5, 1, 13, 15, 47, 111, 453, 375, 1705, 1539, 4103, 601, 7499, 33287, 123689}}, +{11062, 17, 45497, {1, 1, 5, 3, 21, 11, 87, 115, 483, 617, 1593, 2817, 6519, 16203, 361, 34415, 100829}}, +{11063, 17, 45500, {1, 3, 7, 15, 23, 25, 41, 193, 473, 517, 1195, 3627, 1089, 13391, 3653, 25637, 5643}}, +{11064, 17, 45512, {1, 3, 1, 1, 13, 57, 29, 175, 35, 107, 5, 3641, 1843, 1507, 7591, 39967, 66859}}, +{11065, 17, 45515, {1, 1, 3, 13, 1, 39, 31, 11, 493, 123, 523, 843, 133, 7971, 14131, 51927, 97943}}, +{11066, 17, 45523, {1, 1, 3, 7, 23, 45, 5, 195, 195, 683, 497, 1215, 5855, 14569, 20441, 29541, 30431}}, +{11067, 17, 45542, {1, 3, 1, 11, 31, 39, 127, 187, 187, 17, 817, 907, 4657, 8223, 13305, 36489, 28909}}, +{11068, 17, 45553, {1, 1, 7, 13, 9, 1, 59, 27, 449, 887, 39, 191, 803, 2339, 5213, 2611, 93175}}, +{11069, 17, 45559, {1, 1, 1, 1, 29, 17, 105, 13, 175, 401, 1145, 297, 6873, 889, 10301, 48993, 49959}}, +{11070, 17, 45589, {1, 3, 5, 5, 1, 57, 81, 81, 403, 719, 1887, 2597, 1069, 5219, 29767, 46905, 8025}}, +{11071, 17, 45594, {1, 1, 5, 11, 13, 37, 41, 3, 487, 895, 343, 1729, 3777, 8681, 24737, 34179, 15015}}, +{11072, 17, 45596, {1, 1, 1, 15, 9, 43, 67, 203, 71, 399, 23, 529, 2375, 15373, 21013, 17389, 93809}}, +{11073, 17, 45603, {1, 3, 7, 7, 9, 23, 81, 27, 39, 529, 631, 199, 3555, 953, 4249, 39297, 88107}}, +{11074, 17, 45605, {1, 3, 1, 3, 31, 45, 33, 63, 319, 245, 1567, 3359, 2051, 11523, 30177, 20293, 13245}}, +{11075, 17, 45610, {1, 1, 1, 13, 9, 61, 39, 127, 453, 1019, 2037, 3541, 6983, 10717, 19587, 8981, 99637}}, +{11076, 17, 45630, {1, 3, 5, 9, 15, 7, 55, 79, 93, 303, 1423, 499, 5499, 795, 14553, 16945, 46161}}, +{11077, 17, 45638, {1, 1, 7, 5, 21, 21, 27, 201, 147, 461, 363, 267, 2963, 3409, 17835, 40777, 71879}}, +{11078, 17, 45641, {1, 1, 7, 9, 23, 63, 115, 243, 103, 119, 2023, 2223, 7989, 1365, 26181, 4631, 88001}}, +{11079, 17, 45647, {1, 3, 5, 5, 27, 57, 101, 199, 461, 853, 449, 2733, 2225, 8609, 19461, 15265, 54079}}, +{11080, 17, 45655, {1, 3, 3, 15, 29, 59, 115, 105, 145, 391, 303, 901, 5481, 1491, 30441, 22331, 3841}}, +{11081, 17, 45659, {1, 1, 3, 1, 27, 45, 11, 167, 73, 181, 253, 1947, 1731, 15269, 16971, 12299, 46439}}, +{11082, 17, 45665, {1, 1, 7, 13, 11, 21, 83, 157, 75, 705, 1709, 487, 5029, 9879, 27589, 21601, 50575}}, +{11083, 17, 45689, {1, 1, 5, 3, 27, 37, 101, 163, 115, 903, 1137, 3807, 2899, 3407, 27935, 14203, 31009}}, +{11084, 17, 45695, {1, 3, 5, 9, 31, 33, 63, 69, 159, 737, 1973, 3661, 6159, 1781, 9239, 12989, 82947}}, +{11085, 17, 45702, {1, 3, 5, 9, 15, 33, 41, 89, 183, 933, 1305, 1013, 7245, 16225, 10891, 6641, 61699}}, +{11086, 17, 45708, {1, 1, 5, 3, 25, 41, 91, 183, 45, 553, 1817, 3305, 5169, 9051, 24917, 52431, 52505}}, +{11087, 17, 45726, {1, 3, 3, 9, 3, 9, 127, 59, 117, 1001, 1255, 3435, 3797, 8507, 28593, 24119, 75569}}, +{11088, 17, 45729, {1, 3, 1, 5, 17, 43, 45, 21, 461, 339, 1127, 2213, 7351, 14585, 2001, 32619, 33825}}, +{11089, 17, 45739, {1, 1, 5, 11, 3, 37, 61, 83, 101, 707, 861, 3037, 1867, 7747, 16313, 58745, 14387}}, +{11090, 17, 45744, {1, 1, 5, 3, 27, 25, 99, 17, 293, 867, 1655, 2301, 2007, 7379, 14487, 18233, 3625}}, +{11091, 17, 45747, {1, 1, 7, 13, 25, 29, 21, 133, 207, 119, 423, 1561, 6587, 1221, 27295, 48141, 125473}}, +{11092, 17, 45762, {1, 3, 3, 1, 19, 45, 39, 85, 127, 249, 157, 1307, 7343, 6309, 31073, 16909, 93223}}, +{11093, 17, 45764, {1, 1, 5, 13, 19, 43, 111, 109, 385, 847, 1071, 1009, 2783, 8471, 5719, 50459, 110507}}, +{11094, 17, 45773, {1, 1, 5, 15, 1, 45, 39, 197, 209, 839, 485, 3943, 5939, 11835, 18297, 61217, 85015}}, +{11095, 17, 45774, {1, 1, 1, 15, 5, 61, 1, 195, 415, 355, 1593, 151, 8143, 3527, 11633, 44337, 99749}}, +{11096, 17, 45781, {1, 1, 5, 13, 11, 11, 117, 109, 91, 663, 1351, 2361, 1409, 9317, 31133, 17577, 123919}}, +{11097, 17, 45785, {1, 3, 3, 9, 3, 5, 115, 173, 459, 937, 1581, 781, 1069, 573, 24025, 30721, 116837}}, +{11098, 17, 45792, {1, 1, 1, 5, 21, 37, 47, 51, 21, 169, 119, 3285, 2543, 14023, 29179, 13407, 130491}}, +{11099, 17, 45801, {1, 3, 5, 5, 25, 27, 41, 147, 485, 79, 737, 699, 6763, 16347, 9265, 52129, 41431}}, +{11100, 17, 45802, {1, 1, 1, 3, 5, 33, 115, 187, 311, 717, 1897, 2215, 2639, 4167, 1429, 26359, 52703}}, +{11101, 17, 45812, {1, 3, 5, 5, 13, 51, 103, 5, 47, 683, 319, 2969, 7701, 11031, 9257, 16725, 80825}}, +{11102, 17, 45816, {1, 3, 1, 11, 31, 47, 17, 205, 11, 411, 523, 4053, 6743, 3095, 3219, 63163, 84547}}, +{11103, 17, 45829, {1, 1, 7, 15, 9, 55, 109, 225, 273, 595, 1697, 2059, 21, 11319, 23277, 60613, 4539}}, +{11104, 17, 45833, {1, 1, 5, 13, 3, 59, 49, 239, 509, 847, 975, 3361, 5443, 1941, 29277, 56379, 38997}}, +{11105, 17, 45847, {1, 3, 1, 7, 15, 5, 49, 19, 235, 437, 1309, 827, 4123, 5839, 22409, 42535, 98041}}, +{11106, 17, 45851, {1, 1, 5, 15, 9, 33, 57, 153, 165, 215, 177, 1271, 1861, 15489, 4183, 43701, 114169}}, +{11107, 17, 45854, {1, 3, 5, 5, 13, 3, 119, 89, 17, 421, 1205, 835, 4917, 6113, 28991, 26839, 114871}}, +{11108, 17, 45863, {1, 3, 5, 1, 7, 49, 49, 159, 205, 601, 1939, 4063, 5975, 11747, 10329, 21103, 16779}}, +{11109, 17, 45870, {1, 1, 5, 15, 13, 33, 89, 21, 113, 639, 891, 989, 829, 1435, 11475, 42711, 67049}}, +{11110, 17, 45901, {1, 1, 5, 5, 9, 59, 57, 105, 385, 733, 1175, 329, 6809, 7175, 27267, 9941, 14203}}, +{11111, 17, 45910, {1, 3, 1, 13, 21, 53, 83, 139, 287, 659, 1991, 3225, 4153, 4325, 16803, 27719, 86263}}, +{11112, 17, 45920, {1, 3, 5, 13, 27, 21, 111, 105, 29, 573, 405, 2781, 1737, 12057, 25263, 16903, 45389}}, +{11113, 17, 45932, {1, 1, 5, 5, 23, 23, 61, 27, 335, 279, 937, 2509, 4751, 2993, 28069, 30187, 3595}}, +{11114, 17, 45938, {1, 1, 5, 7, 29, 37, 117, 71, 221, 875, 1987, 2329, 5953, 15901, 29813, 17419, 4745}}, +{11115, 17, 45940, {1, 3, 3, 13, 21, 51, 77, 85, 53, 573, 1129, 3415, 2283, 5221, 29991, 46091, 65843}}, +{11116, 17, 45943, {1, 1, 1, 3, 17, 51, 89, 211, 463, 743, 1189, 4083, 1437, 5219, 8373, 15559, 18557}}, +{11117, 17, 45949, {1, 1, 5, 3, 29, 27, 1, 207, 285, 739, 505, 1587, 6565, 14195, 4995, 39453, 61023}}, +{11118, 17, 45953, {1, 3, 3, 15, 7, 57, 19, 45, 39, 881, 1207, 2829, 3265, 2637, 7843, 62889, 53289}}, +{11119, 17, 45963, {1, 1, 1, 11, 31, 21, 73, 245, 87, 457, 1523, 2397, 1157, 8237, 26195, 23149, 106523}}, +{11120, 17, 45971, {1, 3, 5, 13, 3, 55, 3, 179, 107, 85, 639, 2711, 6359, 1599, 2325, 59573, 111941}}, +{11121, 17, 45989, {1, 1, 1, 13, 17, 61, 45, 253, 45, 149, 1251, 139, 7113, 6503, 27675, 37301, 21713}}, +{11122, 17, 45999, {1, 3, 5, 9, 31, 31, 67, 79, 355, 225, 1187, 761, 4927, 5481, 9139, 13399, 35653}}, +{11123, 17, 46001, {1, 1, 5, 3, 7, 3, 95, 119, 161, 529, 1443, 1099, 609, 3919, 10935, 37779, 92993}}, +{11124, 17, 46008, {1, 1, 7, 9, 13, 21, 13, 7, 165, 173, 989, 2315, 2305, 13115, 6933, 56233, 112113}}, +{11125, 17, 46022, {1, 1, 7, 3, 9, 11, 25, 45, 493, 119, 839, 3907, 2273, 14113, 29453, 55181, 667}}, +{11126, 17, 46026, {1, 3, 5, 15, 25, 33, 15, 23, 245, 517, 1883, 2865, 1483, 7043, 32615, 12261, 49297}}, +{11127, 17, 46034, {1, 3, 7, 9, 31, 35, 89, 103, 245, 441, 1709, 1321, 3743, 3767, 23885, 43587, 18017}}, +{11128, 17, 46040, {1, 3, 7, 5, 23, 43, 103, 7, 47, 187, 1257, 3517, 591, 16263, 12047, 16699, 81633}}, +{11129, 17, 46043, {1, 1, 5, 15, 5, 5, 79, 11, 327, 719, 37, 2913, 6107, 3463, 25901, 6125, 100647}}, +{11130, 17, 46045, {1, 1, 1, 11, 13, 29, 83, 251, 41, 125, 1137, 2627, 4643, 29, 24631, 51435, 98643}}, +{11131, 17, 46061, {1, 1, 7, 3, 27, 3, 69, 245, 365, 599, 1575, 2969, 3441, 12327, 18951, 56167, 13861}}, +{11132, 17, 46062, {1, 3, 3, 11, 5, 47, 103, 233, 351, 821, 867, 3199, 6133, 4627, 22663, 14775, 83205}}, +{11133, 17, 46076, {1, 3, 1, 13, 9, 35, 27, 251, 281, 727, 873, 3713, 5247, 8407, 17739, 57207, 126201}}, +{11134, 17, 46084, {1, 1, 7, 11, 11, 35, 53, 115, 93, 663, 625, 565, 3137, 7869, 18845, 49155, 83395}}, +{11135, 17, 46094, {1, 3, 3, 5, 21, 13, 99, 151, 319, 9, 1363, 1489, 2545, 1963, 1271, 24815, 43355}}, +{11136, 17, 46102, {1, 3, 5, 9, 15, 51, 109, 85, 67, 131, 1947, 181, 7331, 15163, 2255, 33449, 78107}}, +{11137, 17, 46118, {1, 1, 7, 9, 27, 61, 1, 163, 309, 739, 453, 1837, 2093, 16021, 8485, 19755, 61335}}, +{11138, 17, 46149, {1, 3, 5, 7, 3, 13, 11, 195, 91, 143, 203, 2785, 7319, 7153, 19265, 11597, 63365}}, +{11139, 17, 46154, {1, 3, 1, 9, 29, 1, 123, 247, 253, 757, 191, 1699, 6625, 1785, 29199, 29409, 32577}}, +{11140, 17, 46167, {1, 3, 5, 11, 23, 21, 31, 35, 383, 587, 65, 1695, 4045, 12305, 12437, 5919, 51465}}, +{11141, 17, 46173, {1, 1, 5, 9, 11, 13, 123, 171, 499, 877, 1785, 561, 2547, 1797, 27679, 56305, 93223}}, +{11142, 17, 46177, {1, 3, 1, 3, 25, 41, 63, 243, 219, 533, 753, 1903, 3257, 11901, 4777, 28629, 111141}}, +{11143, 17, 46192, {1, 3, 3, 5, 31, 47, 1, 253, 283, 995, 1787, 1767, 6599, 11913, 21515, 39259, 117727}}, +{11144, 17, 46197, {1, 1, 7, 7, 31, 35, 39, 255, 463, 763, 881, 2583, 347, 14343, 22761, 45821, 119155}}, +{11145, 17, 46201, {1, 3, 5, 9, 5, 37, 43, 55, 423, 525, 157, 3593, 2831, 11539, 15675, 11695, 100609}}, +{11146, 17, 46214, {1, 3, 3, 5, 11, 9, 27, 57, 409, 201, 1029, 2461, 5823, 2593, 32031, 4203, 55327}}, +{11147, 17, 46217, {1, 1, 7, 15, 15, 25, 69, 83, 309, 687, 1607, 819, 7381, 3697, 5289, 33153, 48157}}, +{11148, 17, 46223, {1, 1, 5, 5, 31, 57, 41, 195, 201, 59, 2045, 2213, 6695, 3839, 17331, 4981, 26803}}, +{11149, 17, 46226, {1, 1, 1, 11, 7, 53, 109, 169, 387, 181, 391, 19, 4159, 299, 29059, 27781, 110193}}, +{11150, 17, 46228, {1, 3, 7, 15, 5, 31, 95, 155, 47, 601, 1463, 1799, 8027, 3003, 18067, 24589, 108171}}, +{11151, 17, 46237, {1, 3, 3, 7, 11, 61, 21, 121, 117, 149, 1037, 3829, 3581, 15223, 17051, 34539, 37263}}, +{11152, 17, 46241, {1, 3, 3, 3, 15, 15, 115, 91, 443, 309, 1073, 2053, 789, 7415, 26253, 62657, 49729}}, +{11153, 17, 46251, {1, 3, 5, 5, 31, 19, 23, 221, 19, 105, 1105, 2025, 4209, 7531, 30191, 40777, 46069}}, +{11154, 17, 46259, {1, 1, 1, 7, 29, 45, 29, 215, 33, 21, 1147, 1725, 3711, 2759, 12731, 57031, 42361}}, +{11155, 17, 46262, {1, 1, 5, 15, 13, 59, 111, 169, 317, 841, 1387, 3513, 3137, 8265, 31789, 26963, 126219}}, +{11156, 17, 46266, {1, 1, 3, 1, 23, 21, 13, 113, 71, 177, 345, 3149, 1461, 12945, 3971, 59759, 61839}}, +{11157, 17, 46294, {1, 3, 5, 13, 9, 19, 103, 17, 95, 617, 1477, 263, 4259, 12899, 24351, 47431, 11583}}, +{11158, 17, 46300, {1, 3, 5, 11, 13, 11, 7, 61, 13, 63, 1687, 631, 381, 5899, 10225, 19657, 37087}}, +{11159, 17, 46303, {1, 3, 5, 3, 7, 53, 11, 193, 103, 427, 1097, 299, 2905, 5019, 31803, 28931, 47495}}, +{11160, 17, 46309, {1, 3, 3, 11, 21, 31, 125, 249, 233, 941, 975, 2287, 7837, 6481, 11021, 52829, 63023}}, +{11161, 17, 46321, {1, 1, 7, 15, 13, 17, 33, 85, 503, 11, 689, 637, 4063, 12223, 1835, 17161, 35213}}, +{11162, 17, 46331, {1, 3, 5, 13, 25, 37, 21, 135, 377, 623, 895, 2547, 2757, 9055, 17337, 65457, 24737}}, +{11163, 17, 46339, {1, 1, 1, 15, 25, 11, 17, 95, 65, 271, 1791, 841, 1441, 11177, 10087, 63963, 71481}}, +{11164, 17, 46342, {1, 3, 5, 11, 31, 1, 37, 107, 109, 459, 1185, 2155, 271, 11775, 23243, 53517, 103669}}, +{11165, 17, 46354, {1, 3, 1, 9, 1, 49, 23, 141, 169, 475, 469, 2271, 1379, 13139, 1765, 63625, 14143}}, +{11166, 17, 46370, {1, 1, 1, 9, 13, 7, 23, 219, 381, 105, 743, 1745, 2999, 661, 7245, 39653, 99913}}, +{11167, 17, 46372, {1, 3, 1, 11, 7, 35, 9, 215, 41, 537, 1569, 1803, 3613, 667, 15089, 39485, 85457}}, +{11168, 17, 46379, {1, 1, 1, 15, 9, 49, 75, 235, 119, 97, 273, 209, 2707, 2071, 21943, 60249, 57737}}, +{11169, 17, 46382, {1, 1, 5, 15, 31, 19, 33, 49, 279, 461, 143, 3001, 3539, 1015, 27597, 35389, 36483}}, +{11170, 17, 46393, {1, 3, 7, 1, 23, 51, 123, 247, 485, 343, 1365, 593, 6465, 12305, 29375, 30641, 43165}}, +{11171, 17, 46402, {1, 1, 7, 13, 15, 11, 125, 51, 235, 717, 1427, 3203, 1711, 12607, 8805, 5773, 27467}}, +{11172, 17, 46407, {1, 3, 5, 5, 5, 13, 51, 181, 133, 977, 469, 2513, 6819, 12985, 8917, 47317, 47557}}, +{11173, 17, 46416, {1, 1, 5, 7, 3, 7, 71, 17, 345, 921, 1621, 2801, 5825, 827, 17711, 33701, 113503}}, +{11174, 17, 46425, {1, 3, 1, 1, 17, 7, 99, 83, 73, 349, 567, 713, 5639, 4969, 11549, 35317, 28995}}, +{11175, 17, 46437, {1, 3, 3, 9, 11, 53, 123, 227, 391, 775, 1013, 3971, 6183, 14453, 6403, 57063, 7123}}, +{11176, 17, 46444, {1, 1, 1, 15, 27, 13, 51, 147, 151, 535, 2017, 3019, 6791, 3931, 12529, 30855, 33243}}, +{11177, 17, 46447, {1, 3, 1, 1, 27, 43, 103, 85, 135, 207, 621, 251, 3723, 10893, 29533, 31023, 11043}}, +{11178, 17, 46449, {1, 3, 7, 5, 7, 39, 55, 133, 141, 63, 237, 3299, 861, 15123, 11859, 13271, 32893}}, +{11179, 17, 46456, {1, 3, 7, 9, 23, 17, 73, 197, 113, 725, 137, 2835, 2877, 6913, 22949, 56071, 67597}}, +{11180, 17, 46462, {1, 3, 7, 7, 15, 3, 15, 253, 51, 443, 15, 2549, 7833, 4713, 29211, 22339, 6009}}, +{11181, 17, 46472, {1, 3, 5, 15, 19, 55, 35, 59, 281, 995, 1113, 605, 2345, 10009, 14629, 11757, 53241}}, +{11182, 17, 46475, {1, 1, 1, 11, 3, 31, 11, 193, 437, 1003, 873, 909, 6513, 2045, 10495, 17387, 25461}}, +{11183, 17, 46486, {1, 1, 3, 5, 21, 61, 47, 177, 379, 773, 951, 419, 4455, 10171, 17403, 19045, 87327}}, +{11184, 17, 46490, {1, 3, 3, 11, 31, 41, 69, 229, 207, 299, 1743, 1417, 4785, 1327, 26967, 43077, 124319}}, +{11185, 17, 46495, {1, 3, 7, 15, 19, 37, 65, 219, 33, 691, 205, 1577, 4775, 8427, 28315, 53559, 100789}}, +{11186, 17, 46501, {1, 3, 5, 11, 5, 39, 55, 147, 139, 871, 1563, 3661, 4791, 423, 30007, 1589, 20255}}, +{11187, 17, 46514, {1, 1, 3, 15, 5, 61, 89, 83, 261, 519, 1367, 2019, 3799, 8237, 9011, 28995, 1587}}, +{11188, 17, 46526, {1, 1, 7, 15, 17, 55, 49, 41, 353, 507, 1565, 3365, 7947, 10391, 1323, 61591, 126305}}, +{11189, 17, 46528, {1, 3, 3, 5, 13, 19, 49, 195, 355, 915, 1867, 3513, 1239, 4809, 16925, 22947, 92641}}, +{11190, 17, 46538, {1, 1, 7, 3, 31, 51, 45, 241, 55, 195, 1233, 3675, 8077, 4981, 17679, 53025, 77927}}, +{11191, 17, 46551, {1, 3, 5, 11, 23, 5, 93, 49, 277, 979, 1093, 3031, 6131, 8085, 19121, 45305, 6705}}, +{11192, 17, 46552, {1, 1, 7, 13, 29, 25, 83, 105, 469, 729, 1495, 2607, 2681, 13959, 101, 1913, 2671}}, +{11193, 17, 46564, {1, 1, 1, 15, 7, 19, 63, 105, 253, 807, 1889, 2433, 1591, 16267, 11997, 18939, 113313}}, +{11194, 17, 46579, {1, 1, 5, 3, 13, 23, 29, 227, 337, 115, 783, 475, 6949, 9485, 1797, 18713, 123981}}, +{11195, 17, 46586, {1, 3, 3, 9, 21, 43, 115, 225, 147, 753, 919, 1157, 2901, 14813, 30035, 52553, 30225}}, +{11196, 17, 46602, {1, 1, 3, 15, 23, 19, 65, 83, 457, 965, 579, 2133, 291, 2033, 7533, 52995, 92243}}, +{11197, 17, 46615, {1, 1, 1, 5, 11, 3, 23, 245, 255, 373, 1119, 3695, 6449, 13497, 817, 32215, 103599}}, +{11198, 17, 46616, {1, 3, 1, 5, 5, 19, 57, 53, 145, 441, 1253, 929, 1299, 11491, 29457, 11245, 55717}}, +{11199, 17, 46621, {1, 1, 7, 13, 9, 13, 73, 85, 127, 29, 629, 409, 2487, 13079, 3767, 27985, 110139}}, +{11200, 17, 46635, {1, 1, 5, 11, 29, 39, 27, 9, 487, 623, 757, 2879, 669, 12521, 23471, 47933, 41721}}, +{11201, 17, 46643, {1, 1, 7, 15, 21, 9, 59, 39, 325, 787, 1347, 3039, 7333, 9793, 19337, 41285, 48339}}, +{11202, 17, 46645, {1, 3, 3, 11, 11, 21, 127, 45, 173, 981, 483, 3707, 3651, 10545, 16865, 62105, 114847}}, +{11203, 17, 46649, {1, 3, 5, 11, 11, 49, 89, 179, 393, 455, 1775, 1903, 8173, 12589, 17281, 57687, 56153}}, +{11204, 17, 46667, {1, 3, 1, 3, 7, 7, 59, 223, 255, 559, 375, 2427, 6921, 3709, 24767, 16213, 60373}}, +{11205, 17, 46670, {1, 1, 7, 15, 3, 31, 37, 129, 307, 1023, 1807, 519, 6779, 8997, 15383, 4391, 61161}}, +{11206, 17, 46672, {1, 1, 1, 1, 9, 25, 53, 27, 263, 459, 1015, 417, 4195, 10931, 20507, 19299, 82371}}, +{11207, 17, 46678, {1, 1, 3, 1, 7, 7, 49, 221, 47, 7, 1747, 1533, 3089, 14369, 32609, 64157, 78139}}, +{11208, 17, 46681, {1, 3, 7, 5, 5, 13, 101, 231, 227, 19, 1359, 3017, 1405, 3715, 3541, 933, 1117}}, +{11209, 17, 46684, {1, 1, 7, 15, 5, 63, 59, 253, 269, 781, 1639, 2247, 1041, 667, 7055, 21221, 84447}}, +{11210, 17, 46687, {1, 1, 7, 3, 9, 13, 115, 247, 215, 173, 457, 1125, 5613, 13171, 17847, 26323, 68461}}, +{11211, 17, 46705, {1, 3, 5, 9, 15, 19, 95, 213, 425, 567, 1625, 1659, 6961, 10569, 20985, 17255, 89919}}, +{11212, 17, 46708, {1, 3, 5, 5, 3, 11, 107, 123, 265, 743, 499, 1885, 6079, 7791, 24953, 30925, 112517}}, +{11213, 17, 46721, {1, 1, 5, 15, 29, 27, 103, 195, 119, 873, 1751, 2091, 6623, 7583, 20413, 52367, 16831}}, +{11214, 17, 46724, {1, 1, 7, 7, 21, 15, 111, 197, 89, 107, 1317, 2107, 1951, 189, 31663, 63007, 21405}}, +{11215, 17, 46739, {1, 3, 1, 13, 27, 15, 93, 251, 209, 93, 1419, 3785, 1899, 3143, 3205, 16309, 121455}}, +{11216, 17, 46757, {1, 1, 7, 7, 17, 43, 23, 251, 425, 591, 1101, 1317, 6369, 14209, 10257, 33813, 59557}}, +{11217, 17, 46762, {1, 1, 7, 3, 5, 41, 65, 59, 327, 369, 1867, 1045, 4953, 3155, 25679, 8545, 22753}}, +{11218, 17, 46764, {1, 1, 5, 3, 5, 25, 117, 97, 369, 721, 1459, 2501, 4899, 5299, 3859, 2509, 127723}}, +{11219, 17, 46776, {1, 3, 3, 1, 27, 13, 65, 185, 255, 543, 2013, 2027, 1131, 4067, 1327, 44639, 53275}}, +{11220, 17, 46784, {1, 1, 7, 3, 11, 15, 53, 67, 265, 477, 971, 3201, 51, 10599, 23691, 10493, 130347}}, +{11221, 17, 46790, {1, 3, 7, 7, 19, 35, 47, 61, 375, 547, 1867, 1147, 7775, 12757, 15101, 63243, 89817}}, +{11222, 17, 46796, {1, 1, 5, 3, 5, 21, 57, 59, 145, 901, 835, 1093, 6487, 12727, 20585, 6309, 67803}}, +{11223, 17, 46799, {1, 1, 1, 11, 13, 31, 75, 171, 189, 741, 1923, 3503, 4887, 15423, 2499, 39125, 4125}}, +{11224, 17, 46802, {1, 3, 7, 1, 29, 31, 103, 207, 383, 631, 1017, 1693, 6251, 9429, 17491, 60959, 68131}}, +{11225, 17, 46813, {1, 1, 1, 1, 19, 45, 127, 105, 451, 287, 657, 3521, 2021, 15793, 8993, 34837, 65441}}, +{11226, 17, 46814, {1, 1, 7, 9, 17, 15, 13, 189, 255, 753, 1779, 3047, 1179, 13201, 28249, 5909, 35775}}, +{11227, 17, 46824, {1, 3, 3, 3, 5, 11, 125, 207, 375, 375, 135, 2939, 1141, 12211, 727, 16137, 52253}}, +{11228, 17, 46832, {1, 3, 7, 9, 29, 3, 83, 221, 281, 299, 667, 3435, 589, 8039, 7991, 24289, 13079}}, +{11229, 17, 46841, {1, 3, 5, 13, 9, 11, 11, 99, 337, 155, 233, 2497, 3385, 15045, 5783, 40915, 19201}}, +{11230, 17, 46856, {1, 1, 7, 5, 5, 23, 25, 223, 341, 149, 505, 893, 4933, 14899, 29899, 207, 125359}}, +{11231, 17, 46862, {1, 3, 3, 15, 3, 5, 43, 165, 21, 993, 1091, 3849, 6005, 1905, 7199, 13495, 76915}}, +{11232, 17, 46864, {1, 1, 1, 15, 1, 19, 55, 217, 179, 431, 935, 2219, 8135, 15071, 17437, 43271, 115963}}, +{11233, 17, 46869, {1, 1, 7, 15, 7, 61, 45, 157, 441, 107, 1955, 2877, 5285, 12157, 21783, 60999, 102949}}, +{11234, 17, 46874, {1, 1, 1, 3, 9, 29, 41, 75, 81, 73, 1859, 2923, 3009, 10847, 30257, 44527, 21933}}, +{11235, 17, 46895, {1, 1, 3, 3, 29, 29, 103, 3, 401, 197, 237, 3727, 7919, 13669, 26869, 64987, 1581}}, +{11236, 17, 46900, {1, 1, 5, 13, 13, 47, 99, 209, 45, 745, 1239, 663, 5535, 3777, 10479, 15327, 1441}}, +{11237, 17, 46903, {1, 3, 1, 9, 1, 49, 31, 231, 15, 1001, 773, 2113, 1957, 15271, 25355, 7461, 33089}}, +{11238, 17, 46927, {1, 1, 1, 5, 13, 31, 123, 123, 439, 373, 1817, 2555, 7905, 3151, 2311, 62083, 45535}}, +{11239, 17, 46946, {1, 3, 1, 3, 31, 37, 83, 117, 177, 483, 1285, 1725, 821, 2115, 12893, 54301, 36491}}, +{11240, 17, 46948, {1, 3, 3, 3, 9, 13, 87, 7, 467, 287, 1173, 2739, 3293, 883, 9123, 30799, 110221}}, +{11241, 17, 46955, {1, 3, 1, 15, 3, 5, 119, 235, 393, 789, 67, 1193, 1613, 8607, 17371, 16723, 103747}}, +{11242, 17, 46965, {1, 3, 1, 13, 13, 47, 61, 51, 447, 1, 1221, 1619, 3785, 5851, 10557, 51181, 6535}}, +{11243, 17, 46972, {1, 3, 5, 11, 1, 1, 85, 119, 195, 177, 805, 1161, 4851, 15765, 24405, 41757, 110081}}, +{11244, 17, 46976, {1, 1, 7, 1, 17, 21, 89, 13, 59, 169, 1847, 2401, 6243, 2841, 6153, 16039, 47407}}, +{11245, 17, 46985, {1, 1, 3, 15, 21, 53, 103, 187, 143, 897, 65, 3677, 213, 4027, 22365, 53703, 82951}}, +{11246, 17, 46999, {1, 3, 5, 5, 25, 5, 39, 49, 55, 71, 825, 2123, 2345, 5683, 18027, 29897, 53023}}, +{11247, 17, 47003, {1, 1, 3, 5, 13, 55, 27, 77, 327, 429, 1219, 2103, 7095, 13461, 31027, 15383, 98485}}, +{11248, 17, 47006, {1, 3, 1, 3, 9, 41, 33, 241, 487, 229, 1743, 951, 2319, 15595, 3213, 5959, 90721}}, +{11249, 17, 47016, {1, 1, 7, 1, 29, 45, 45, 163, 123, 227, 305, 1577, 5465, 5639, 14507, 65155, 71425}}, +{11250, 17, 47030, {1, 1, 5, 1, 3, 5, 33, 15, 203, 141, 465, 3509, 6653, 14193, 7073, 22525, 22951}}, +{11251, 17, 47034, {1, 1, 7, 3, 27, 39, 3, 27, 75, 821, 1329, 3655, 4715, 7659, 31957, 60219, 79123}}, +{11252, 17, 47053, {1, 3, 5, 13, 29, 45, 111, 19, 207, 387, 87, 3731, 7427, 13351, 9497, 34285, 25623}}, +{11253, 17, 47056, {1, 1, 3, 11, 19, 39, 79, 219, 97, 125, 947, 1397, 3645, 1021, 9403, 38695, 54985}}, +{11254, 17, 47059, {1, 3, 3, 7, 3, 3, 45, 93, 65, 289, 1843, 1599, 897, 16159, 23485, 24699, 43123}}, +{11255, 17, 47072, {1, 3, 5, 3, 15, 1, 81, 219, 299, 429, 1115, 1763, 6381, 869, 7817, 143, 23583}}, +{11256, 17, 47077, {1, 1, 3, 5, 1, 35, 95, 147, 425, 1011, 1039, 2875, 3089, 3685, 9995, 13279, 60923}}, +{11257, 17, 47099, {1, 1, 5, 7, 5, 59, 105, 241, 151, 307, 735, 1541, 3115, 12331, 19535, 56965, 127015}}, +{11258, 17, 47105, {1, 3, 5, 7, 5, 33, 83, 179, 65, 397, 787, 3425, 1305, 10713, 6973, 9007, 112081}}, +{11259, 17, 47108, {1, 3, 7, 13, 29, 11, 37, 31, 271, 501, 897, 1383, 5333, 13627, 22091, 38421, 94575}}, +{11260, 17, 47112, {1, 3, 1, 1, 9, 61, 87, 115, 13, 79, 391, 2385, 7157, 3369, 26035, 883, 34705}}, +{11261, 17, 47115, {1, 1, 3, 9, 21, 29, 15, 165, 53, 719, 1509, 1295, 4437, 8229, 17961, 55297, 62635}}, +{11262, 17, 47117, {1, 1, 7, 5, 27, 21, 23, 141, 341, 423, 9, 2693, 5555, 5797, 13179, 1107, 33489}}, +{11263, 17, 47120, {1, 3, 1, 13, 27, 33, 101, 29, 379, 119, 1259, 861, 6843, 69, 3253, 61977, 80061}}, +{11264, 17, 47129, {1, 1, 3, 11, 1, 37, 35, 43, 105, 655, 221, 873, 91, 9095, 8999, 44033, 24807}}, +{11265, 17, 47135, {1, 3, 3, 7, 29, 15, 23, 227, 399, 305, 2007, 747, 2717, 14767, 6515, 40617, 7873}}, +{11266, 17, 47151, {1, 1, 5, 15, 21, 43, 39, 7, 261, 421, 505, 1433, 1155, 5621, 2337, 54027, 54039}}, +{11267, 17, 47154, {1, 1, 1, 9, 15, 39, 49, 185, 503, 895, 1321, 375, 4245, 4929, 9637, 50561, 65733}}, +{11268, 17, 47156, {1, 1, 5, 15, 7, 29, 27, 155, 423, 631, 1295, 973, 4227, 2637, 8479, 29527, 70505}}, +{11269, 17, 47166, {1, 3, 1, 3, 31, 33, 13, 67, 195, 335, 1577, 3715, 559, 7251, 7215, 46443, 125359}}, +{11270, 17, 47171, {1, 3, 1, 9, 17, 37, 15, 119, 79, 851, 911, 3549, 99, 9221, 29897, 63489, 34937}}, +{11271, 17, 47195, {1, 3, 5, 9, 31, 11, 125, 1, 265, 467, 835, 2997, 2401, 9615, 19397, 50947, 29963}}, +{11272, 17, 47204, {1, 1, 5, 3, 11, 21, 63, 15, 471, 763, 1963, 2815, 4419, 11457, 7151, 27009, 124847}}, +{11273, 17, 47213, {1, 1, 7, 3, 19, 9, 97, 59, 375, 109, 519, 305, 2787, 3001, 14199, 27415, 35403}}, +{11274, 17, 47222, {1, 1, 1, 3, 13, 47, 3, 93, 307, 979, 419, 2817, 3741, 305, 1813, 34549, 116959}}, +{11275, 17, 47228, {1, 3, 5, 13, 13, 19, 35, 231, 493, 973, 895, 1583, 1843, 9057, 27705, 32333, 130347}}, +{11276, 17, 47241, {1, 1, 1, 13, 31, 35, 81, 11, 363, 229, 1865, 2849, 7805, 877, 3965, 45337, 33239}}, +{11277, 17, 47242, {1, 3, 5, 1, 15, 3, 125, 93, 191, 405, 1359, 929, 3085, 7907, 7777, 7815, 103717}}, +{11278, 17, 47247, {1, 1, 3, 7, 15, 33, 61, 235, 283, 141, 817, 1611, 665, 13113, 4197, 45831, 44505}}, +{11279, 17, 47249, {1, 1, 5, 5, 25, 3, 63, 159, 223, 531, 1147, 2323, 2715, 10319, 32203, 23943, 95407}}, +{11280, 17, 47250, {1, 3, 3, 3, 3, 33, 37, 99, 317, 811, 515, 339, 6527, 11149, 13071, 7177, 1549}}, +{11281, 17, 47261, {1, 3, 1, 11, 31, 53, 9, 17, 297, 259, 1235, 53, 7065, 1721, 8191, 21663, 13393}}, +{11282, 17, 47266, {1, 3, 7, 7, 29, 41, 127, 179, 113, 191, 783, 861, 6509, 5199, 3369, 18327, 30647}}, +{11283, 17, 47268, {1, 3, 1, 7, 23, 41, 49, 155, 135, 513, 1127, 1443, 8081, 2553, 10389, 35459, 122513}}, +{11284, 17, 47278, {1, 1, 7, 3, 25, 3, 117, 125, 283, 165, 1409, 1587, 7915, 12899, 12239, 48161, 7385}}, +{11285, 17, 47286, {1, 3, 7, 3, 23, 19, 29, 47, 7, 723, 455, 4013, 2739, 12303, 29883, 51485, 1571}}, +{11286, 17, 47312, {1, 1, 1, 11, 1, 31, 111, 199, 207, 209, 1163, 2865, 5335, 2647, 9125, 6737, 99881}}, +{11287, 17, 47315, {1, 3, 1, 11, 31, 19, 59, 153, 65, 133, 1399, 2709, 905, 3257, 13603, 46299, 15139}}, +{11288, 17, 47321, {1, 3, 1, 1, 23, 19, 123, 115, 59, 667, 333, 2461, 1843, 16049, 12353, 17297, 107779}}, +{11289, 17, 47322, {1, 1, 5, 1, 5, 29, 91, 241, 97, 557, 1701, 2441, 2995, 13103, 9261, 55833, 843}}, +{11290, 17, 47324, {1, 1, 1, 5, 15, 19, 23, 189, 69, 91, 427, 3149, 5199, 13073, 32273, 41503, 98749}}, +{11291, 17, 47331, {1, 3, 5, 11, 19, 3, 71, 125, 307, 241, 861, 681, 5657, 5189, 7555, 2037, 72921}}, +{11292, 17, 47338, {1, 1, 5, 5, 29, 61, 93, 61, 421, 685, 883, 1559, 5875, 10561, 11761, 18879, 31577}}, +{11293, 17, 47366, {1, 3, 7, 15, 9, 29, 41, 241, 365, 941, 1087, 3743, 6781, 9467, 1409, 20605, 2361}}, +{11294, 17, 47372, {1, 1, 5, 13, 25, 29, 7, 21, 41, 621, 1751, 3731, 2667, 8613, 20999, 3851, 39677}}, +{11295, 17, 47375, {1, 1, 7, 5, 17, 23, 25, 43, 401, 749, 975, 91, 5277, 2711, 19847, 41419, 11851}}, +{11296, 17, 47378, {1, 1, 7, 9, 13, 37, 113, 89, 435, 749, 1553, 1853, 7709, 5449, 25055, 45207, 2269}}, +{11297, 17, 47387, {1, 3, 1, 11, 3, 59, 79, 13, 35, 901, 165, 907, 7579, 12739, 24679, 54163, 61059}}, +{11298, 17, 47389, {1, 1, 5, 7, 9, 47, 101, 61, 25, 461, 1737, 2825, 4439, 5363, 28433, 61979, 120401}}, +{11299, 17, 47390, {1, 3, 3, 3, 1, 55, 103, 1, 449, 473, 375, 2609, 4933, 3411, 19663, 6067, 61129}}, +{11300, 17, 47396, {1, 1, 3, 9, 27, 29, 53, 151, 391, 507, 425, 3469, 6605, 5783, 31747, 37677, 116037}}, +{11301, 17, 47400, {1, 1, 1, 5, 5, 43, 61, 67, 319, 553, 1163, 3095, 4447, 7505, 15617, 26167, 11145}}, +{11302, 17, 47405, {1, 1, 5, 7, 3, 3, 9, 161, 155, 869, 337, 3693, 6847, 8449, 15077, 54769, 123335}}, +{11303, 17, 47408, {1, 3, 3, 7, 11, 19, 17, 71, 105, 649, 323, 3033, 1695, 15973, 6361, 3163, 17669}}, +{11304, 17, 47411, {1, 3, 7, 13, 13, 9, 3, 251, 149, 513, 637, 2211, 6397, 1741, 8547, 3165, 38241}}, +{11305, 17, 47431, {1, 1, 5, 5, 1, 57, 73, 35, 287, 347, 221, 3261, 7693, 5443, 6175, 18181, 23733}}, +{11306, 17, 47443, {1, 3, 7, 5, 5, 19, 1, 167, 5, 825, 815, 1369, 7657, 6169, 9583, 34761, 81003}}, +{11307, 17, 47459, {1, 3, 3, 5, 15, 17, 23, 157, 475, 297, 1495, 811, 8135, 11453, 9683, 55505, 84361}}, +{11308, 17, 47466, {1, 1, 1, 11, 1, 63, 59, 189, 205, 1023, 1065, 1095, 2293, 14629, 29399, 2925, 28327}}, +{11309, 17, 47479, {1, 3, 1, 3, 31, 33, 85, 183, 383, 731, 1223, 3353, 3703, 5655, 31265, 12249, 22127}}, +{11310, 17, 47480, {1, 3, 5, 7, 7, 29, 61, 3, 375, 95, 1815, 4065, 6287, 3797, 32397, 50581, 123371}}, +{11311, 17, 47495, {1, 3, 1, 9, 13, 37, 57, 139, 43, 561, 425, 3603, 1167, 10281, 31825, 32673, 106169}}, +{11312, 17, 47504, {1, 3, 5, 3, 15, 41, 29, 223, 79, 851, 1741, 2241, 5659, 9773, 18369, 37239, 14831}}, +{11313, 17, 47519, {1, 3, 1, 1, 7, 11, 83, 63, 51, 521, 1911, 475, 5207, 3219, 10257, 40461, 9087}}, +{11314, 17, 47520, {1, 3, 5, 7, 23, 17, 97, 195, 5, 451, 1971, 1881, 921, 8729, 3443, 64529, 67747}}, +{11315, 17, 47530, {1, 1, 3, 9, 21, 63, 45, 181, 429, 605, 169, 3493, 2381, 2887, 19515, 53151, 60147}}, +{11316, 17, 47537, {1, 3, 3, 7, 15, 11, 117, 161, 333, 139, 587, 2331, 3175, 12093, 12649, 52381, 107117}}, +{11317, 17, 47555, {1, 1, 5, 15, 23, 57, 19, 57, 507, 461, 799, 611, 1589, 10909, 7649, 17817, 24677}}, +{11318, 17, 47558, {1, 1, 3, 15, 1, 61, 9, 201, 401, 387, 527, 2855, 2339, 3813, 11825, 14273, 73745}}, +{11319, 17, 47567, {1, 3, 1, 5, 1, 37, 27, 105, 475, 335, 1169, 3233, 3225, 12861, 10133, 36673, 55025}}, +{11320, 17, 47569, {1, 1, 1, 9, 27, 53, 55, 197, 229, 5, 93, 1157, 7929, 9745, 5295, 15359, 75567}}, +{11321, 17, 47572, {1, 1, 7, 5, 11, 3, 109, 81, 457, 159, 1899, 557, 1067, 295, 2661, 1145, 8745}}, +{11322, 17, 47582, {1, 1, 1, 15, 31, 29, 77, 171, 411, 425, 1041, 2791, 2567, 5357, 21871, 27689, 103485}}, +{11323, 17, 47591, {1, 3, 5, 11, 19, 47, 23, 97, 405, 667, 2045, 2951, 2063, 7775, 20629, 34283, 26925}}, +{11324, 17, 47595, {1, 3, 5, 7, 5, 51, 125, 67, 165, 145, 733, 1649, 5787, 4333, 24355, 33397, 101001}}, +{11325, 17, 47598, {1, 3, 7, 11, 13, 7, 117, 147, 449, 201, 953, 553, 1839, 6903, 10417, 42751, 36823}}, +{11326, 17, 47609, {1, 1, 3, 5, 3, 21, 109, 35, 95, 953, 211, 2849, 5681, 16287, 16553, 30345, 69729}}, +{11327, 17, 47612, {1, 3, 7, 5, 25, 37, 21, 143, 317, 621, 1417, 283, 3801, 15375, 3799, 13345, 59727}}, +{11328, 17, 47616, {1, 3, 3, 9, 3, 37, 113, 127, 123, 979, 1225, 2585, 2055, 2571, 16727, 38863, 74347}}, +{11329, 17, 47625, {1, 3, 3, 3, 23, 13, 49, 111, 277, 143, 1171, 605, 91, 13693, 1971, 18209, 114203}}, +{11330, 17, 47640, {1, 1, 1, 9, 27, 33, 73, 9, 93, 343, 55, 3045, 2029, 3665, 28483, 6601, 72085}}, +{11331, 17, 47649, {1, 1, 1, 15, 17, 55, 87, 231, 103, 1005, 1451, 3617, 7477, 2045, 10683, 39053, 1289}}, +{11332, 17, 47655, {1, 3, 7, 7, 25, 55, 39, 89, 489, 609, 1969, 159, 7485, 10713, 28371, 14935, 95347}}, +{11333, 17, 47661, {1, 3, 3, 13, 25, 9, 83, 167, 25, 135, 2017, 3313, 1493, 7799, 22479, 49471, 20149}}, +{11334, 17, 47688, {1, 1, 1, 15, 25, 13, 63, 117, 97, 449, 1331, 229, 6027, 1023, 26705, 15283, 60385}}, +{11335, 17, 47711, {1, 1, 7, 5, 5, 37, 3, 79, 337, 861, 1549, 915, 7303, 1503, 19245, 60721, 45313}}, +{11336, 17, 47717, {1, 3, 7, 15, 19, 1, 11, 39, 505, 757, 1627, 2137, 3209, 7651, 31291, 45913, 26851}}, +{11337, 17, 47721, {1, 3, 1, 5, 25, 21, 85, 233, 171, 269, 367, 1651, 3961, 2487, 1977, 7027, 2725}}, +{11338, 17, 47724, {1, 1, 5, 15, 13, 23, 81, 145, 201, 323, 425, 2785, 1149, 12617, 11451, 23205, 117691}}, +{11339, 17, 47727, {1, 1, 7, 11, 29, 37, 69, 141, 15, 773, 1299, 2147, 8129, 12227, 27811, 58701, 103637}}, +{11340, 17, 47730, {1, 3, 5, 13, 3, 33, 29, 227, 261, 221, 823, 1399, 5107, 2423, 23809, 42175, 28207}}, +{11341, 17, 47739, {1, 3, 1, 15, 21, 1, 121, 255, 259, 441, 45, 1899, 2489, 4155, 18317, 52695, 607}}, +{11342, 17, 47745, {1, 3, 5, 9, 25, 43, 115, 111, 329, 997, 753, 1513, 6949, 3197, 28275, 48855, 25089}}, +{11343, 17, 47752, {1, 3, 3, 3, 25, 9, 21, 213, 111, 173, 913, 1465, 4437, 9725, 1455, 53517, 81843}}, +{11344, 17, 47758, {1, 3, 5, 5, 5, 25, 3, 159, 19, 203, 181, 3447, 6395, 2145, 11289, 16797, 59567}}, +{11345, 17, 47765, {1, 3, 3, 1, 29, 25, 43, 115, 257, 833, 379, 941, 4389, 5795, 12593, 2471, 127149}}, +{11346, 17, 47770, {1, 3, 1, 9, 3, 15, 81, 141, 155, 515, 1677, 2569, 1105, 15653, 24143, 3439, 17317}}, +{11347, 17, 47782, {1, 3, 1, 13, 27, 13, 103, 87, 27, 971, 671, 629, 4943, 13897, 4003, 21507, 40193}}, +{11348, 17, 47786, {1, 3, 5, 9, 1, 49, 11, 15, 511, 837, 1953, 1585, 1867, 9095, 543, 16993, 115187}}, +{11349, 17, 47791, {1, 1, 5, 11, 21, 49, 37, 61, 9, 629, 1025, 1635, 4047, 15491, 28481, 43235, 53165}}, +{11350, 17, 47793, {1, 1, 5, 7, 15, 57, 121, 119, 405, 29, 655, 3085, 7131, 14761, 2273, 47113, 8603}}, +{11351, 17, 47796, {1, 1, 3, 3, 11, 45, 51, 107, 367, 235, 675, 3777, 6081, 16319, 19499, 36893, 25579}}, +{11352, 17, 47814, {1, 1, 7, 11, 1, 13, 43, 159, 415, 423, 1223, 2201, 1089, 10189, 12457, 26691, 3603}}, +{11353, 17, 47823, {1, 1, 3, 3, 3, 37, 109, 67, 487, 785, 637, 3931, 929, 14153, 25283, 483, 14371}}, +{11354, 17, 47826, {1, 1, 7, 9, 31, 59, 9, 245, 479, 113, 1419, 3265, 8131, 11123, 32519, 12141, 82059}}, +{11355, 17, 47837, {1, 1, 1, 7, 25, 25, 31, 13, 81, 217, 997, 1161, 1049, 5487, 8487, 57807, 126115}}, +{11356, 17, 47854, {1, 1, 3, 15, 1, 23, 63, 39, 503, 933, 1915, 687, 547, 779, 7689, 38607, 125229}}, +{11357, 17, 47856, {1, 1, 3, 3, 31, 49, 51, 87, 99, 327, 783, 3487, 7307, 2759, 22781, 56343, 126805}}, +{11358, 17, 47871, {1, 3, 3, 11, 27, 43, 99, 197, 275, 19, 775, 329, 3815, 14277, 3363, 26375, 75427}}, +{11359, 17, 47879, {1, 1, 5, 15, 15, 19, 65, 109, 103, 411, 1591, 2569, 1981, 4773, 7861, 6303, 127421}}, +{11360, 17, 47880, {1, 3, 1, 13, 1, 53, 107, 151, 317, 201, 1053, 2701, 5039, 2179, 10085, 31727, 85579}}, +{11361, 17, 47885, {1, 3, 1, 9, 5, 55, 71, 143, 187, 29, 1363, 2403, 2675, 2187, 12123, 32825, 56461}}, +{11362, 17, 47886, {1, 1, 7, 11, 5, 57, 91, 95, 85, 597, 925, 11, 1915, 9159, 9997, 29565, 111655}}, +{11363, 17, 47903, {1, 1, 5, 9, 25, 57, 79, 189, 205, 687, 471, 601, 5343, 9031, 7853, 6079, 40567}}, +{11364, 17, 47907, {1, 1, 3, 1, 31, 53, 67, 191, 511, 369, 1273, 3859, 4253, 14469, 3427, 17691, 22599}}, +{11365, 17, 47913, {1, 1, 3, 9, 17, 53, 101, 219, 41, 663, 635, 3889, 2197, 8125, 8313, 14957, 111445}}, +{11366, 17, 47916, {1, 1, 5, 5, 7, 49, 113, 9, 399, 257, 617, 63, 2773, 4411, 1193, 54449, 89003}}, +{11367, 17, 47928, {1, 1, 7, 11, 13, 29, 77, 73, 161, 419, 985, 303, 2237, 15217, 26621, 20441, 113955}}, +{11368, 17, 47936, {1, 3, 3, 9, 17, 39, 37, 139, 289, 421, 1021, 2635, 2805, 5815, 9101, 48077, 114009}}, +{11369, 17, 47945, {1, 1, 1, 15, 25, 43, 71, 35, 103, 827, 1301, 3567, 3425, 3689, 14453, 10733, 81257}}, +{11370, 17, 47948, {1, 3, 5, 5, 15, 31, 41, 161, 481, 231, 1135, 3045, 439, 11785, 14863, 39729, 59539}}, +{11371, 17, 47956, {1, 1, 5, 7, 27, 9, 81, 141, 395, 105, 41, 3719, 3105, 13685, 7451, 31381, 82907}}, +{11372, 17, 47965, {1, 3, 1, 13, 15, 25, 127, 231, 433, 837, 1923, 1301, 2479, 3243, 21605, 55789, 11311}}, +{11373, 17, 47970, {1, 3, 5, 7, 17, 5, 27, 111, 217, 445, 1245, 1029, 7663, 10291, 16483, 37503, 110205}}, +{11374, 17, 47972, {1, 1, 1, 7, 31, 21, 51, 235, 487, 457, 1687, 2947, 5067, 13779, 7671, 7257, 119141}}, +{11375, 17, 47981, {1, 1, 5, 13, 25, 31, 59, 183, 33, 887, 469, 813, 7939, 11775, 5795, 26227, 57703}}, +{11376, 17, 47987, {1, 3, 3, 15, 17, 7, 19, 87, 365, 177, 1157, 1023, 3055, 15439, 27187, 32593, 112507}}, +{11377, 17, 48010, {1, 1, 1, 9, 19, 49, 103, 239, 207, 409, 1613, 2793, 5477, 11221, 21611, 19963, 99333}}, +{11378, 17, 48012, {1, 3, 3, 11, 17, 1, 103, 77, 93, 197, 1883, 4053, 4613, 11571, 1841, 23189, 4235}}, +{11379, 17, 48023, {1, 3, 5, 9, 9, 49, 29, 231, 167, 593, 1909, 2457, 323, 10549, 6551, 45597, 96591}}, +{11380, 17, 48033, {1, 1, 7, 11, 15, 39, 33, 61, 13, 879, 1589, 2169, 125, 2427, 13029, 24919, 14147}}, +{11381, 17, 48051, {1, 3, 5, 5, 25, 53, 49, 255, 263, 917, 1997, 171, 2945, 14243, 12983, 21821, 119547}}, +{11382, 17, 48071, {1, 1, 1, 15, 5, 25, 113, 235, 311, 377, 1059, 1365, 3457, 8699, 18617, 25119, 110659}}, +{11383, 17, 48075, {1, 1, 5, 1, 9, 61, 1, 137, 301, 85, 1527, 3831, 923, 13753, 20909, 14007, 22939}}, +{11384, 17, 48077, {1, 1, 7, 9, 23, 17, 31, 107, 55, 293, 425, 3513, 3503, 10075, 6299, 40007, 54355}}, +{11385, 17, 48080, {1, 3, 5, 5, 27, 39, 95, 187, 239, 949, 531, 3541, 99, 6339, 32295, 10377, 111287}}, +{11386, 17, 48099, {1, 1, 5, 15, 19, 39, 23, 89, 185, 47, 87, 1721, 2471, 13221, 13201, 31, 12897}}, +{11387, 17, 48106, {1, 3, 1, 9, 7, 7, 109, 241, 39, 687, 175, 139, 583, 1629, 19775, 6371, 121879}}, +{11388, 17, 48114, {1, 1, 1, 13, 13, 9, 73, 153, 367, 425, 217, 3981, 5203, 1111, 12333, 59799, 105259}}, +{11389, 17, 48120, {1, 1, 3, 5, 7, 33, 27, 123, 335, 727, 1619, 3999, 7799, 2807, 2251, 45835, 113193}}, +{11390, 17, 48128, {1, 3, 1, 7, 25, 3, 49, 163, 447, 555, 647, 1461, 5881, 15755, 32233, 48915, 96203}}, +{11391, 17, 48145, {1, 3, 7, 7, 21, 11, 61, 101, 323, 165, 1489, 2933, 3363, 8471, 4311, 65279, 123813}}, +{11392, 17, 48152, {1, 3, 1, 1, 15, 1, 101, 225, 473, 479, 1237, 113, 7591, 2883, 3891, 53703, 14607}}, +{11393, 17, 48155, {1, 3, 5, 3, 17, 51, 23, 31, 487, 957, 1623, 2329, 2801, 6213, 7523, 14131, 23893}}, +{11394, 17, 48182, {1, 1, 5, 7, 9, 39, 93, 105, 13, 481, 53, 3785, 5621, 11889, 993, 23611, 73651}}, +{11395, 17, 48188, {1, 3, 7, 15, 21, 57, 97, 69, 339, 289, 1805, 2661, 1165, 6079, 1127, 51285, 54453}}, +{11396, 17, 48203, {1, 1, 3, 3, 3, 3, 1, 179, 123, 1011, 1363, 231, 6983, 9499, 91, 52573, 32565}}, +{11397, 17, 48217, {1, 3, 3, 15, 5, 37, 97, 7, 189, 547, 1965, 3821, 4907, 8181, 12857, 7907, 19361}}, +{11398, 17, 48218, {1, 1, 5, 3, 29, 33, 45, 99, 359, 337, 1377, 577, 3117, 9545, 30093, 26147, 128509}}, +{11399, 17, 48236, {1, 3, 5, 11, 7, 49, 99, 249, 37, 755, 383, 2845, 4153, 695, 11099, 33653, 105155}}, +{11400, 17, 48241, {1, 3, 1, 1, 19, 3, 3, 177, 97, 323, 1367, 213, 4391, 11223, 26497, 12289, 39047}}, +{11401, 17, 48244, {1, 1, 3, 7, 3, 33, 73, 199, 339, 479, 1797, 3905, 2849, 5667, 18015, 36653, 83491}}, +{11402, 17, 48264, {1, 1, 5, 3, 27, 59, 27, 241, 49, 161, 451, 3993, 2489, 10681, 11895, 60405, 47021}}, +{11403, 17, 48269, {1, 1, 7, 5, 9, 23, 115, 131, 383, 895, 1591, 585, 2571, 7485, 31535, 12871, 95717}}, +{11404, 17, 48278, {1, 1, 1, 15, 13, 49, 3, 157, 311, 159, 1239, 159, 5643, 6405, 11763, 34609, 75259}}, +{11405, 17, 48282, {1, 1, 1, 13, 11, 41, 119, 3, 165, 943, 2035, 179, 357, 14591, 20099, 4787, 12659}}, +{11406, 17, 48288, {1, 1, 5, 11, 13, 9, 67, 139, 259, 947, 1559, 283, 1557, 11297, 29753, 21953, 100317}}, +{11407, 17, 48311, {1, 1, 7, 11, 13, 39, 105, 83, 109, 723, 1643, 3599, 1471, 13653, 4583, 18595, 91935}}, +{11408, 17, 48315, {1, 1, 5, 9, 25, 5, 69, 189, 209, 779, 1421, 467, 849, 12887, 10317, 3005, 100813}}, +{11409, 17, 48317, {1, 3, 7, 11, 19, 1, 93, 239, 333, 713, 1525, 813, 5913, 10811, 7077, 20573, 86999}}, +{11410, 17, 48329, {1, 3, 1, 5, 25, 1, 107, 153, 225, 889, 1319, 497, 2193, 11511, 17553, 23733, 83179}}, +{11411, 17, 48330, {1, 3, 3, 3, 5, 45, 51, 37, 443, 851, 263, 4067, 2629, 10887, 29081, 30489, 1161}}, +{11412, 17, 48337, {1, 1, 3, 9, 25, 19, 115, 31, 347, 641, 1103, 1121, 7051, 14071, 16663, 48517, 24655}}, +{11413, 17, 48350, {1, 1, 3, 15, 11, 33, 123, 181, 225, 437, 875, 1997, 209, 5487, 1989, 6745, 38423}}, +{11414, 17, 48353, {1, 3, 7, 5, 27, 5, 105, 203, 51, 683, 1523, 347, 6881, 4353, 4531, 29589, 108053}}, +{11415, 17, 48360, {1, 1, 3, 9, 15, 33, 127, 145, 125, 429, 915, 1307, 1495, 3553, 26797, 36819, 121375}}, +{11416, 17, 48374, {1, 3, 5, 15, 7, 1, 55, 99, 7, 405, 885, 59, 5359, 13969, 32037, 53399, 77293}}, +{11417, 17, 48380, {1, 1, 7, 1, 29, 31, 89, 69, 405, 837, 1949, 2337, 1139, 14129, 16867, 15167, 21117}}, +{11418, 17, 48405, {1, 1, 3, 5, 3, 25, 61, 175, 135, 109, 959, 501, 13, 16057, 25031, 16321, 27617}}, +{11419, 17, 48406, {1, 3, 1, 5, 17, 39, 59, 113, 25, 707, 1641, 3489, 6193, 10085, 13837, 57851, 77475}}, +{11420, 17, 48409, {1, 1, 3, 5, 17, 35, 111, 163, 253, 641, 715, 1101, 4411, 10771, 20241, 46415, 114719}}, +{11421, 17, 48412, {1, 3, 1, 1, 7, 11, 77, 59, 71, 869, 1505, 751, 4367, 9603, 29735, 7333, 62487}}, +{11422, 17, 48416, {1, 3, 7, 9, 3, 51, 93, 195, 497, 659, 1563, 3801, 6933, 9089, 10891, 9853, 93611}}, +{11423, 17, 48419, {1, 3, 1, 7, 21, 47, 61, 117, 293, 281, 1547, 3437, 4947, 12119, 21425, 5591, 23951}}, +{11424, 17, 48425, {1, 1, 7, 13, 19, 59, 121, 249, 147, 759, 1963, 465, 7785, 7015, 81, 47869, 123845}}, +{11425, 17, 48434, {1, 1, 7, 13, 5, 35, 45, 69, 167, 263, 979, 2855, 1845, 5531, 17167, 7363, 89233}}, +{11426, 17, 48443, {1, 3, 3, 3, 17, 43, 109, 193, 389, 867, 1403, 1271, 7127, 13977, 22547, 53997, 24475}}, +{11427, 17, 48445, {1, 1, 1, 5, 25, 43, 47, 163, 417, 967, 819, 2433, 439, 8499, 29705, 32697, 109963}}, +{11428, 17, 48453, {1, 1, 1, 15, 19, 5, 83, 237, 431, 697, 1383, 2499, 6907, 9033, 12147, 23479, 17649}}, +{11429, 17, 48454, {1, 3, 5, 13, 27, 35, 103, 95, 239, 903, 537, 601, 417, 15859, 16533, 16753, 128229}}, +{11430, 17, 48482, {1, 1, 3, 1, 11, 55, 57, 9, 229, 135, 805, 2745, 2023, 12645, 29135, 39051, 17065}}, +{11431, 17, 48491, {1, 3, 5, 3, 13, 25, 77, 29, 449, 31, 1733, 1451, 3895, 11551, 1011, 22817, 35959}}, +{11432, 17, 48501, {1, 3, 3, 3, 1, 31, 93, 47, 255, 393, 571, 443, 6079, 6245, 11773, 42087, 40651}}, +{11433, 17, 48517, {1, 3, 1, 5, 17, 49, 119, 219, 375, 337, 29, 3409, 3187, 15243, 25853, 44385, 103675}}, +{11434, 17, 48518, {1, 3, 7, 15, 15, 21, 79, 109, 81, 119, 603, 1665, 7813, 3485, 11801, 48693, 108307}}, +{11435, 17, 48545, {1, 1, 1, 15, 9, 5, 103, 141, 181, 841, 7, 1217, 7713, 4843, 9089, 53641, 3029}}, +{11436, 17, 48548, {1, 3, 3, 1, 29, 47, 13, 179, 439, 387, 1553, 3141, 947, 4893, 29119, 30865, 14207}}, +{11437, 17, 48552, {1, 1, 1, 15, 29, 1, 41, 135, 43, 673, 1527, 883, 3211, 5195, 30219, 47133, 56819}}, +{11438, 17, 48569, {1, 3, 5, 13, 13, 47, 97, 219, 277, 397, 1901, 821, 1961, 705, 7291, 19435, 123563}}, +{11439, 17, 48575, {1, 1, 7, 15, 5, 49, 93, 59, 221, 205, 115, 559, 5633, 5819, 6923, 18301, 72639}}, +{11440, 17, 48580, {1, 3, 5, 13, 29, 49, 25, 203, 125, 385, 487, 1897, 2177, 6859, 6105, 763, 36673}}, +{11441, 17, 48584, {1, 3, 3, 9, 23, 63, 9, 115, 489, 89, 1113, 1351, 8181, 2569, 18263, 32619, 24795}}, +{11442, 17, 48590, {1, 1, 5, 11, 25, 51, 97, 155, 15, 139, 1275, 3479, 5851, 3099, 7417, 57155, 90185}}, +{11443, 17, 48595, {1, 3, 1, 11, 1, 37, 67, 221, 493, 475, 1881, 2277, 4365, 9411, 16629, 65229, 28803}}, +{11444, 17, 48602, {1, 3, 1, 1, 15, 53, 39, 141, 453, 151, 335, 795, 1515, 2719, 24197, 21153, 129549}}, +{11445, 17, 48604, {1, 1, 1, 7, 19, 31, 59, 123, 73, 149, 469, 1199, 3603, 1539, 29157, 50031, 22109}}, +{11446, 17, 48618, {1, 1, 3, 15, 23, 51, 45, 211, 423, 553, 1289, 1125, 6347, 6711, 23761, 14109, 17261}}, +{11447, 17, 48625, {1, 3, 5, 13, 5, 7, 35, 185, 263, 791, 161, 325, 4771, 11913, 31595, 56675, 68615}}, +{11448, 17, 48626, {1, 1, 5, 9, 19, 27, 89, 147, 55, 197, 1695, 99, 755, 15115, 1933, 41439, 85063}}, +{11449, 17, 48638, {1, 1, 7, 7, 17, 11, 103, 55, 281, 707, 1973, 2055, 5015, 5713, 3717, 44149, 8033}}, +{11450, 17, 48668, {1, 3, 1, 5, 21, 49, 55, 93, 161, 565, 81, 3241, 3709, 8185, 16935, 60369, 118127}}, +{11451, 17, 48677, {1, 3, 7, 9, 27, 1, 105, 133, 397, 351, 1021, 739, 161, 9971, 24733, 29239, 68853}}, +{11452, 17, 48678, {1, 1, 7, 1, 1, 19, 97, 243, 73, 969, 313, 399, 2955, 2467, 18265, 60637, 35457}}, +{11453, 17, 48687, {1, 3, 1, 11, 29, 25, 35, 35, 469, 143, 1195, 911, 1023, 14685, 10933, 16449, 102113}}, +{11454, 17, 48692, {1, 1, 5, 3, 31, 21, 65, 181, 13, 235, 501, 3621, 3567, 8771, 32747, 59231, 91551}}, +{11455, 17, 48696, {1, 1, 1, 13, 29, 21, 13, 33, 193, 565, 203, 3927, 4749, 9897, 26109, 14221, 27733}}, +{11456, 17, 48704, {1, 1, 1, 5, 29, 41, 7, 125, 391, 295, 533, 2135, 3107, 7711, 27811, 55767, 78821}}, +{11457, 17, 48707, {1, 1, 7, 3, 19, 25, 117, 195, 155, 685, 147, 2049, 3751, 4585, 24893, 36895, 80371}}, +{11458, 17, 48714, {1, 3, 5, 5, 23, 41, 9, 125, 315, 809, 1019, 1453, 4605, 13753, 30641, 50677, 94781}}, +{11459, 17, 48731, {1, 1, 1, 7, 27, 45, 103, 199, 37, 291, 651, 185, 6715, 15387, 30873, 63051, 123231}}, +{11460, 17, 48740, {1, 1, 5, 7, 17, 5, 75, 129, 401, 107, 1681, 2039, 299, 12399, 30947, 26327, 91589}}, +{11461, 17, 48750, {1, 3, 3, 15, 17, 19, 109, 19, 493, 797, 209, 929, 2821, 395, 22173, 27803, 87953}}, +{11462, 17, 48761, {1, 3, 7, 5, 7, 5, 71, 159, 483, 389, 1817, 4093, 963, 4253, 31267, 63919, 62113}}, +{11463, 17, 48785, {1, 3, 3, 15, 9, 49, 89, 49, 15, 61, 2041, 2357, 2173, 3349, 32565, 23207, 21177}}, +{11464, 17, 48786, {1, 1, 1, 13, 15, 21, 31, 143, 387, 371, 567, 1903, 3793, 9559, 7055, 31251, 13663}}, +{11465, 17, 48798, {1, 1, 3, 13, 3, 7, 49, 31, 255, 581, 627, 1947, 2965, 2787, 8275, 59785, 19979}}, +{11466, 17, 48807, {1, 3, 3, 13, 29, 47, 53, 133, 301, 253, 1215, 3409, 5745, 247, 31585, 5555, 31011}}, +{11467, 17, 48808, {1, 3, 7, 15, 23, 49, 1, 89, 141, 423, 707, 645, 7955, 10485, 27223, 35867, 45461}}, +{11468, 17, 48814, {1, 1, 3, 3, 29, 25, 123, 63, 197, 429, 169, 3229, 3797, 4029, 29947, 52781, 16065}}, +{11469, 17, 48826, {1, 3, 3, 7, 29, 17, 83, 95, 199, 253, 133, 265, 6723, 6207, 12863, 61311, 21937}}, +{11470, 17, 48828, {1, 3, 7, 13, 19, 61, 89, 151, 249, 597, 1389, 717, 5111, 3285, 6251, 50237, 108703}}, +{11471, 17, 48834, {1, 3, 5, 11, 1, 23, 35, 61, 143, 45, 625, 1693, 4943, 2213, 9317, 7601, 28359}}, +{11472, 17, 48840, {1, 3, 3, 15, 29, 43, 115, 23, 167, 355, 977, 439, 4767, 9967, 22997, 54725, 125637}}, +{11473, 17, 48845, {1, 3, 7, 1, 29, 45, 83, 71, 395, 247, 1, 113, 6393, 12445, 16137, 35125, 102053}}, +{11474, 17, 48858, {1, 1, 1, 7, 17, 55, 17, 159, 33, 237, 207, 1297, 5611, 6023, 17709, 60905, 3533}}, +{11475, 17, 48864, {1, 3, 1, 13, 27, 57, 27, 235, 141, 917, 1655, 659, 939, 559, 2651, 705, 80141}}, +{11476, 17, 48869, {1, 3, 7, 3, 3, 17, 111, 117, 467, 129, 1105, 3457, 2093, 8513, 19941, 22111, 54597}}, +{11477, 17, 48870, {1, 3, 7, 3, 5, 17, 59, 195, 23, 547, 1799, 1427, 391, 4043, 10407, 31055, 38495}}, +{11478, 17, 48879, {1, 1, 1, 7, 21, 9, 71, 33, 209, 773, 1243, 3239, 3763, 15229, 9609, 24395, 56145}}, +{11479, 17, 48887, {1, 3, 5, 13, 13, 45, 71, 91, 23, 553, 665, 1753, 5173, 4355, 14317, 42517, 32307}}, +{11480, 17, 48899, {1, 3, 5, 11, 31, 3, 37, 95, 63, 425, 1611, 2983, 5075, 1375, 14305, 11099, 101203}}, +{11481, 17, 48911, {1, 1, 3, 1, 21, 7, 15, 141, 389, 871, 617, 271, 1037, 13569, 13019, 58899, 54097}}, +{11482, 17, 48920, {1, 3, 7, 1, 13, 25, 21, 251, 467, 373, 1539, 4065, 1871, 791, 26315, 64187, 119455}}, +{11483, 17, 48926, {1, 3, 1, 3, 25, 37, 43, 9, 187, 323, 409, 443, 2861, 14145, 26185, 24049, 109613}}, +{11484, 17, 48929, {1, 1, 3, 7, 21, 61, 3, 81, 445, 673, 1269, 613, 1279, 8209, 22911, 48017, 54181}}, +{11485, 17, 48971, {1, 1, 1, 15, 25, 63, 71, 147, 217, 491, 183, 977, 4967, 3471, 8791, 11843, 68005}}, +{11486, 17, 48974, {1, 1, 1, 5, 25, 43, 13, 237, 57, 919, 1641, 399, 4269, 7357, 3465, 63901, 61329}}, +{11487, 17, 48981, {1, 1, 7, 15, 27, 57, 47, 187, 295, 117, 1223, 2963, 4995, 13279, 25107, 56089, 37293}}, +{11488, 17, 48998, {1, 1, 5, 13, 29, 19, 83, 121, 129, 931, 1933, 1141, 3125, 3321, 22019, 52729, 119643}}, +{11489, 17, 49007, {1, 1, 1, 1, 21, 19, 49, 241, 227, 57, 1919, 113, 6993, 4687, 1043, 5247, 15565}}, +{11490, 17, 49028, {1, 3, 3, 15, 5, 21, 65, 129, 485, 173, 1663, 2419, 4279, 4167, 25827, 28457, 68219}}, +{11491, 17, 49031, {1, 1, 3, 1, 17, 9, 65, 21, 487, 875, 1111, 1679, 6451, 14825, 23931, 16053, 79687}}, +{11492, 17, 49056, {1, 3, 3, 5, 13, 5, 49, 15, 267, 389, 1111, 1505, 5815, 6285, 26075, 167, 70325}}, +{11493, 17, 49065, {1, 1, 3, 11, 5, 15, 57, 171, 407, 497, 1979, 2819, 1267, 6893, 6601, 30971, 24477}}, +{11494, 17, 49079, {1, 1, 1, 15, 7, 5, 69, 181, 195, 847, 1245, 4019, 2469, 1407, 17013, 43437, 16307}}, +{11495, 17, 49083, {1, 3, 1, 11, 15, 17, 115, 197, 215, 35, 1489, 659, 4725, 11339, 30259, 52539, 13365}}, +{11496, 17, 49088, {1, 1, 1, 13, 23, 43, 21, 33, 17, 969, 1321, 2469, 4371, 7685, 6817, 20179, 113483}}, +{11497, 17, 49093, {1, 3, 7, 3, 31, 11, 79, 55, 123, 263, 1061, 2087, 183, 11623, 20703, 60291, 115261}}, +{11498, 17, 49100, {1, 1, 5, 13, 5, 53, 21, 71, 399, 165, 1997, 2667, 7361, 8863, 27859, 17235, 77623}}, +{11499, 17, 49103, {1, 3, 3, 15, 21, 55, 27, 31, 371, 289, 253, 1453, 105, 7035, 14787, 2281, 128359}}, +{11500, 17, 49124, {1, 1, 3, 15, 23, 29, 3, 143, 47, 255, 115, 2741, 6773, 16267, 5975, 3689, 97497}}, +{11501, 17, 49136, {1, 1, 1, 15, 9, 57, 109, 43, 359, 365, 1577, 4091, 7399, 10521, 7983, 56119, 65451}}, +{11502, 17, 49139, {1, 3, 7, 7, 29, 55, 115, 155, 121, 679, 663, 2345, 3765, 4493, 9555, 24043, 41467}}, +{11503, 17, 49142, {1, 1, 3, 1, 19, 55, 67, 255, 355, 701, 2027, 3703, 7839, 1701, 7657, 36429, 36623}}, +{11504, 17, 49145, {1, 3, 5, 5, 29, 7, 31, 123, 21, 901, 1581, 3993, 5105, 9715, 18347, 27415, 19253}}, +{11505, 17, 49146, {1, 3, 5, 3, 3, 53, 121, 105, 51, 577, 157, 2151, 5105, 7855, 8595, 24457, 55931}}, +{11506, 17, 49171, {1, 3, 1, 9, 23, 25, 67, 115, 79, 809, 1215, 943, 1075, 7103, 729, 18791, 115977}}, +{11507, 17, 49187, {1, 3, 1, 13, 3, 57, 105, 161, 277, 393, 1671, 2765, 5781, 13429, 24075, 10931, 50951}}, +{11508, 17, 49190, {1, 3, 5, 9, 19, 61, 9, 227, 455, 541, 721, 2855, 949, 10159, 13801, 48199, 26747}}, +{11509, 17, 49194, {1, 3, 1, 3, 25, 61, 53, 177, 441, 697, 1845, 3573, 6673, 9691, 911, 46387, 64727}}, +{11510, 17, 49196, {1, 1, 1, 11, 7, 13, 95, 221, 455, 967, 869, 883, 6301, 5261, 18401, 35745, 114645}}, +{11511, 17, 49207, {1, 3, 1, 11, 15, 7, 115, 217, 235, 539, 491, 603, 2201, 241, 25445, 29773, 122695}}, +{11512, 17, 49216, {1, 1, 5, 3, 19, 9, 71, 193, 131, 927, 1931, 3981, 7537, 10811, 27285, 45865, 106171}}, +{11513, 17, 49219, {1, 1, 7, 5, 5, 21, 107, 77, 363, 733, 1011, 3259, 5263, 15043, 19153, 32117, 129409}}, +{11514, 17, 49222, {1, 1, 3, 13, 21, 5, 9, 103, 369, 699, 329, 1065, 895, 13211, 19017, 5359, 38335}}, +{11515, 17, 49240, {1, 1, 7, 15, 21, 11, 73, 153, 371, 753, 805, 3519, 5839, 1809, 7201, 8189, 68361}}, +{11516, 17, 49250, {1, 3, 7, 9, 27, 45, 25, 175, 317, 381, 961, 619, 4827, 15161, 19091, 29369, 21097}}, +{11517, 17, 49262, {1, 1, 5, 5, 7, 7, 21, 69, 23, 589, 1413, 653, 911, 13599, 18349, 47307, 64047}}, +{11518, 17, 49276, {1, 1, 1, 13, 27, 23, 87, 249, 135, 727, 375, 3641, 1489, 13053, 5151, 62689, 101347}}, +{11519, 17, 49289, {1, 1, 5, 11, 7, 39, 1, 109, 203, 961, 973, 1181, 2357, 5123, 31481, 58345, 52705}}, +{11520, 17, 49292, {1, 1, 1, 15, 25, 15, 85, 49, 77, 235, 1761, 2731, 4157, 2057, 27587, 30299, 52997}}, +{11521, 17, 49298, {1, 1, 5, 3, 1, 13, 47, 219, 51, 521, 625, 3243, 7093, 10823, 9559, 58191, 95573}}, +{11522, 17, 49319, {1, 3, 5, 13, 27, 63, 13, 7, 167, 909, 1559, 2103, 1807, 943, 28997, 31015, 85407}}, +{11523, 17, 49320, {1, 1, 3, 5, 17, 21, 101, 163, 477, 223, 175, 3435, 7071, 5121, 28015, 33365, 121057}}, +{11524, 17, 49325, {1, 3, 7, 1, 11, 35, 111, 41, 261, 45, 1009, 2827, 4019, 5029, 22289, 20235, 13481}}, +{11525, 17, 49333, {1, 3, 5, 5, 15, 41, 109, 7, 329, 447, 65, 1317, 6169, 15947, 31191, 47091, 60643}}, +{11526, 17, 49340, {1, 3, 7, 7, 21, 13, 29, 113, 511, 407, 1211, 2065, 455, 10049, 5745, 48589, 48669}}, +{11527, 17, 49343, {1, 1, 5, 5, 21, 45, 89, 19, 279, 165, 1897, 957, 8045, 565, 4959, 37173, 100773}}, +{11528, 17, 49352, {1, 3, 1, 15, 9, 17, 99, 143, 489, 633, 1721, 1255, 3655, 10083, 29079, 17109, 10035}}, +{11529, 17, 49363, {1, 1, 3, 3, 3, 23, 47, 9, 255, 169, 1103, 1799, 7899, 7673, 19259, 61919, 112831}}, +{11530, 17, 49375, {1, 1, 5, 5, 31, 37, 83, 229, 93, 575, 1589, 2353, 185, 7783, 9413, 9617, 123197}}, +{11531, 17, 49391, {1, 3, 5, 7, 31, 7, 113, 255, 231, 309, 1215, 737, 3635, 14631, 28737, 45127, 111399}}, +{11532, 17, 49405, {1, 1, 7, 1, 11, 5, 55, 235, 369, 983, 873, 655, 6277, 11425, 11191, 38231, 88941}}, +{11533, 17, 49413, {1, 3, 1, 9, 3, 1, 119, 93, 245, 167, 853, 2543, 203, 5313, 14129, 6283, 107117}}, +{11534, 17, 49420, {1, 3, 3, 13, 21, 33, 59, 167, 435, 163, 1873, 3341, 2895, 13205, 14147, 19567, 100127}}, +{11535, 17, 49425, {1, 1, 5, 9, 7, 15, 39, 81, 475, 511, 1585, 63, 6861, 10055, 3577, 48999, 80979}}, +{11536, 17, 49431, {1, 1, 5, 13, 21, 29, 17, 3, 499, 739, 1257, 2925, 8179, 13367, 18879, 19917, 109907}}, +{11537, 17, 49432, {1, 3, 7, 13, 15, 57, 109, 19, 265, 579, 233, 2507, 5059, 14713, 9549, 41915, 56199}}, +{11538, 17, 49441, {1, 3, 3, 5, 31, 25, 85, 163, 187, 795, 1597, 1963, 473, 4673, 4555, 51365, 73817}}, +{11539, 17, 49456, {1, 3, 3, 13, 25, 35, 71, 251, 33, 971, 235, 1919, 6705, 14657, 23417, 56377, 21071}}, +{11540, 17, 49476, {1, 3, 3, 11, 3, 29, 85, 193, 11, 831, 29, 1233, 6199, 11991, 9205, 3323, 23749}}, +{11541, 17, 49479, {1, 3, 7, 7, 11, 15, 1, 17, 87, 665, 1593, 2331, 845, 7821, 89, 7057, 114975}}, +{11542, 17, 49504, {1, 1, 5, 11, 9, 37, 39, 79, 455, 397, 1431, 1541, 7629, 15133, 21395, 35619, 123801}}, +{11543, 17, 49514, {1, 1, 1, 7, 11, 59, 67, 45, 169, 869, 1547, 2947, 3025, 12967, 29927, 22181, 44783}}, +{11544, 17, 49528, {1, 1, 5, 7, 3, 57, 123, 253, 369, 537, 83, 1147, 3469, 9775, 14137, 38899, 101143}}, +{11545, 17, 49543, {1, 3, 5, 3, 19, 35, 11, 215, 343, 677, 1873, 1211, 3129, 9017, 29595, 1291, 39397}}, +{11546, 17, 49544, {1, 1, 7, 3, 25, 7, 61, 229, 187, 839, 747, 3347, 4321, 13201, 19665, 56951, 85273}}, +{11547, 17, 49550, {1, 1, 1, 1, 11, 5, 51, 41, 227, 895, 553, 2673, 6581, 6583, 15429, 33211, 100599}}, +{11548, 17, 49558, {1, 3, 3, 5, 21, 27, 91, 65, 213, 341, 723, 567, 4761, 11549, 15041, 23079, 55245}}, +{11549, 17, 49568, {1, 1, 3, 1, 15, 43, 83, 57, 473, 453, 1351, 2055, 5769, 3887, 29481, 57915, 14017}}, +{11550, 17, 49578, {1, 3, 3, 3, 21, 29, 121, 137, 99, 527, 711, 1169, 7869, 6245, 25423, 38989, 87019}}, +{11551, 17, 49600, {1, 1, 5, 11, 9, 61, 125, 7, 207, 245, 1019, 635, 7099, 13133, 11809, 56705, 18801}}, +{11552, 17, 49612, {1, 3, 7, 9, 15, 31, 37, 205, 439, 651, 255, 971, 4311, 7137, 11821, 45041, 31081}}, +{11553, 17, 49633, {1, 1, 5, 9, 7, 55, 51, 147, 371, 881, 359, 3021, 1141, 14515, 14605, 64067, 98231}}, +{11554, 17, 49634, {1, 3, 1, 3, 29, 9, 109, 21, 437, 321, 753, 3227, 2929, 14787, 2451, 54331, 115921}}, +{11555, 17, 49636, {1, 3, 5, 7, 1, 29, 13, 167, 89, 185, 409, 209, 6625, 5237, 22513, 2095, 26427}}, +{11556, 17, 49643, {1, 1, 1, 3, 3, 31, 25, 145, 27, 345, 957, 823, 7873, 9469, 29115, 12455, 39447}}, +{11557, 17, 49654, {1, 1, 3, 3, 31, 15, 99, 181, 247, 165, 441, 59, 1181, 2851, 1337, 4929, 31079}}, +{11558, 17, 49657, {1, 1, 3, 11, 3, 47, 41, 53, 41, 435, 945, 3839, 8083, 4927, 26919, 24689, 61015}}, +{11559, 17, 49663, {1, 3, 3, 9, 7, 21, 121, 233, 493, 271, 549, 1627, 5861, 377, 20751, 52927, 3649}}, +{11560, 17, 49667, {1, 1, 1, 7, 15, 49, 29, 149, 57, 513, 873, 93, 337, 12559, 24287, 27771, 28207}}, +{11561, 17, 49693, {1, 1, 5, 7, 7, 7, 75, 161, 419, 601, 55, 2599, 5325, 12419, 26755, 5103, 10231}}, +{11562, 17, 49700, {1, 3, 5, 15, 3, 55, 67, 183, 7, 371, 141, 4093, 4567, 13971, 3327, 20701, 78819}}, +{11563, 17, 49703, {1, 1, 1, 13, 15, 41, 45, 29, 375, 235, 1985, 1051, 5863, 7043, 11143, 59381, 55007}}, +{11564, 17, 49712, {1, 3, 1, 15, 15, 29, 15, 101, 395, 39, 1839, 1689, 429, 405, 29337, 28573, 10599}}, +{11565, 17, 49717, {1, 3, 3, 11, 7, 5, 11, 153, 235, 227, 561, 1037, 2283, 6657, 6729, 17939, 29809}}, +{11566, 17, 49718, {1, 1, 1, 5, 15, 59, 33, 69, 275, 447, 661, 2071, 5811, 10463, 32707, 64503, 106313}}, +{11567, 17, 49721, {1, 1, 7, 1, 21, 53, 21, 235, 497, 309, 1207, 1613, 7739, 12785, 7743, 37671, 29197}}, +{11568, 17, 49727, {1, 3, 5, 9, 9, 51, 33, 105, 275, 917, 1911, 3607, 865, 899, 5405, 59593, 113965}}, +{11569, 17, 49730, {1, 3, 1, 7, 7, 63, 51, 83, 481, 347, 1323, 3549, 2873, 12527, 16515, 61077, 63239}}, +{11570, 17, 49735, {1, 1, 1, 1, 13, 21, 87, 139, 461, 215, 1173, 1197, 2091, 11247, 25647, 23443, 105761}}, +{11571, 17, 49739, {1, 1, 1, 1, 27, 33, 21, 27, 365, 75, 351, 2111, 3897, 13325, 4821, 41355, 95681}}, +{11572, 17, 49747, {1, 3, 5, 5, 15, 41, 15, 93, 397, 461, 1993, 321, 4375, 1205, 18417, 37549, 30181}}, +{11573, 17, 49765, {1, 3, 5, 15, 1, 49, 101, 129, 215, 773, 1265, 2245, 2517, 16261, 32149, 3545, 27631}}, +{11574, 17, 49770, {1, 1, 1, 15, 5, 5, 3, 127, 265, 721, 875, 3117, 2177, 7843, 15871, 22687, 89347}}, +{11575, 17, 49772, {1, 3, 7, 11, 29, 23, 69, 41, 155, 257, 563, 509, 6105, 9169, 18341, 25373, 127397}}, +{11576, 17, 49777, {1, 1, 5, 13, 31, 23, 65, 131, 131, 61, 1979, 2737, 3793, 3617, 14385, 189, 84567}}, +{11577, 17, 49789, {1, 1, 1, 13, 21, 33, 43, 97, 83, 903, 1971, 3209, 5391, 7703, 13795, 3895, 78045}}, +{11578, 17, 49817, {1, 3, 3, 5, 17, 53, 113, 237, 269, 83, 589, 4029, 3309, 14531, 11359, 25803, 25525}}, +{11579, 17, 49829, {1, 1, 7, 1, 21, 35, 43, 73, 251, 705, 1737, 3341, 1581, 9663, 6251, 16329, 44491}}, +{11580, 17, 49839, {1, 3, 3, 7, 17, 5, 65, 19, 203, 717, 807, 1759, 6907, 15801, 30369, 2655, 69565}}, +{11581, 17, 49844, {1, 1, 1, 1, 31, 21, 75, 221, 115, 395, 1495, 2739, 1745, 5981, 28045, 56581, 130695}}, +{11582, 17, 49851, {1, 3, 1, 9, 27, 5, 113, 123, 367, 701, 647, 117, 2389, 12309, 1747, 23421, 21583}}, +{11583, 17, 49854, {1, 1, 1, 15, 27, 57, 95, 81, 347, 765, 1435, 1727, 153, 6051, 27085, 62787, 40903}}, +{11584, 17, 49874, {1, 1, 3, 11, 23, 29, 23, 29, 169, 653, 835, 357, 5113, 5293, 11779, 23567, 64569}}, +{11585, 17, 49883, {1, 1, 7, 13, 31, 7, 101, 235, 99, 247, 1267, 509, 3927, 14317, 3217, 24389, 34215}}, +{11586, 17, 49886, {1, 3, 3, 5, 21, 27, 33, 229, 33, 551, 815, 3551, 4261, 13325, 31117, 40689, 66549}}, +{11587, 17, 49892, {1, 3, 7, 1, 23, 1, 99, 11, 139, 569, 365, 1233, 3281, 7817, 8833, 47699, 97825}}, +{11588, 17, 49895, {1, 1, 3, 1, 19, 39, 19, 151, 25, 73, 1271, 1435, 3109, 2571, 9191, 48257, 61001}}, +{11589, 17, 49914, {1, 3, 7, 1, 23, 63, 1, 115, 159, 943, 1637, 1443, 809, 10705, 12563, 63111, 96343}}, +{11590, 17, 49931, {1, 1, 7, 15, 5, 17, 65, 157, 45, 199, 371, 2497, 4367, 9109, 31955, 64253, 69279}}, +{11591, 17, 49933, {1, 3, 3, 15, 29, 45, 103, 183, 87, 543, 97, 1545, 2719, 5619, 28871, 4049, 111825}}, +{11592, 17, 49934, {1, 1, 5, 7, 27, 63, 65, 241, 103, 483, 579, 3589, 5673, 13283, 24193, 31993, 72713}}, +{11593, 17, 49941, {1, 3, 7, 9, 21, 35, 59, 183, 459, 211, 753, 3941, 5389, 10535, 2895, 44307, 26577}}, +{11594, 17, 49952, {1, 3, 1, 3, 9, 11, 15, 141, 159, 853, 1975, 4027, 8053, 16129, 32687, 29117, 67507}}, +{11595, 17, 49967, {1, 3, 3, 1, 19, 51, 55, 167, 85, 869, 437, 457, 7879, 2097, 4403, 2139, 10589}}, +{11596, 17, 49969, {1, 3, 3, 15, 19, 33, 63, 229, 197, 269, 1189, 317, 5087, 3147, 787, 64317, 43293}}, +{11597, 17, 49972, {1, 3, 5, 11, 25, 25, 121, 37, 371, 117, 1683, 2921, 671, 11353, 32273, 57597, 56901}}, +{11598, 17, 49976, {1, 3, 7, 7, 9, 37, 91, 159, 195, 1, 77, 2085, 985, 9999, 5639, 25041, 66393}}, +{11599, 17, 49979, {1, 1, 7, 5, 11, 17, 67, 21, 301, 971, 591, 3809, 4795, 12301, 16977, 27495, 98539}}, +{11600, 17, 49999, {1, 3, 1, 9, 13, 53, 83, 205, 111, 609, 631, 23, 1781, 15401, 1563, 34367, 40345}}, +{11601, 17, 50008, {1, 3, 7, 1, 31, 23, 101, 47, 55, 905, 953, 733, 5173, 5937, 17703, 31077, 49707}}, +{11602, 17, 50030, {1, 3, 5, 3, 5, 3, 127, 171, 511, 289, 685, 1157, 6521, 3301, 3017, 58857, 55289}}, +{11603, 17, 50041, {1, 1, 5, 1, 1, 29, 59, 7, 423, 83, 797, 2633, 2015, 1657, 7575, 39819, 181}}, +{11604, 17, 50042, {1, 3, 5, 15, 25, 27, 39, 99, 83, 381, 401, 1033, 867, 15645, 28643, 34917, 53215}}, +{11605, 17, 50044, {1, 3, 5, 15, 17, 1, 67, 63, 355, 841, 681, 2807, 531, 15295, 7859, 64031, 121519}}, +{11606, 17, 50057, {1, 3, 1, 5, 21, 57, 63, 247, 467, 101, 129, 2627, 4763, 479, 11145, 8861, 69803}}, +{11607, 17, 50060, {1, 3, 1, 15, 13, 13, 77, 39, 297, 401, 1653, 659, 3909, 13179, 10477, 45967, 1665}}, +{11608, 17, 50075, {1, 3, 7, 5, 29, 17, 35, 157, 309, 747, 1717, 1279, 6103, 3509, 17499, 22989, 43157}}, +{11609, 17, 50077, {1, 1, 1, 7, 11, 51, 55, 119, 145, 505, 179, 3979, 1237, 12801, 15921, 13561, 69161}}, +{11610, 17, 50091, {1, 1, 5, 7, 13, 9, 73, 203, 247, 257, 1607, 1183, 6237, 12327, 5059, 51645, 88781}}, +{11611, 17, 50096, {1, 3, 5, 9, 1, 9, 27, 59, 235, 81, 689, 2457, 893, 6107, 27643, 40145, 2329}}, +{11612, 17, 50099, {1, 1, 1, 11, 11, 19, 65, 63, 27, 513, 1473, 2955, 8037, 4991, 22035, 41965, 82589}}, +{11613, 17, 50106, {1, 3, 1, 1, 9, 53, 97, 95, 247, 379, 259, 2789, 1433, 15299, 18309, 51813, 63271}}, +{11614, 17, 50116, {1, 1, 5, 1, 11, 41, 69, 193, 391, 27, 1511, 1575, 1161, 14741, 25193, 31149, 79573}}, +{11615, 17, 50133, {1, 3, 7, 15, 19, 31, 101, 9, 111, 427, 531, 1335, 767, 15075, 28373, 54015, 108021}}, +{11616, 17, 50144, {1, 3, 1, 3, 29, 17, 83, 163, 179, 703, 2027, 3027, 5267, 16111, 23929, 9653, 38633}}, +{11617, 17, 50153, {1, 3, 5, 9, 3, 7, 111, 1, 311, 143, 1563, 2605, 301, 2447, 5009, 63767, 37529}}, +{11618, 17, 50154, {1, 3, 5, 5, 23, 23, 97, 11, 475, 741, 1385, 2491, 1717, 14587, 6289, 27651, 21873}}, +{11619, 17, 50168, {1, 1, 5, 1, 31, 31, 119, 93, 209, 861, 1591, 1233, 3469, 9799, 5969, 35965, 110841}}, +{11620, 17, 50179, {1, 1, 5, 13, 19, 31, 69, 107, 423, 651, 757, 665, 1297, 9985, 14983, 3153, 26425}}, +{11621, 17, 50188, {1, 1, 5, 3, 23, 5, 89, 77, 461, 799, 683, 2885, 845, 12847, 26721, 13145, 88689}}, +{11622, 17, 50194, {1, 1, 3, 3, 19, 3, 41, 71, 247, 293, 1047, 2349, 6815, 2413, 13683, 51421, 110737}}, +{11623, 17, 50203, {1, 3, 3, 9, 19, 51, 91, 193, 447, 305, 751, 1757, 1547, 12683, 4645, 39767, 6433}}, +{11624, 17, 50212, {1, 1, 7, 1, 11, 51, 83, 175, 461, 259, 1337, 175, 877, 15895, 22487, 8079, 71291}}, +{11625, 17, 50216, {1, 1, 1, 11, 13, 23, 19, 69, 285, 629, 563, 2433, 815, 4851, 10617, 59949, 59119}}, +{11626, 17, 50222, {1, 3, 5, 5, 19, 49, 47, 27, 343, 579, 197, 35, 7051, 2441, 30091, 9645, 101899}}, +{11627, 17, 50229, {1, 1, 3, 3, 21, 25, 125, 215, 159, 259, 1915, 2193, 4213, 16157, 8665, 10967, 112793}}, +{11628, 17, 50230, {1, 1, 5, 11, 29, 11, 53, 45, 121, 533, 257, 1749, 6311, 7715, 12037, 12003, 38987}}, +{11629, 17, 50234, {1, 3, 1, 11, 25, 31, 93, 191, 231, 801, 361, 1275, 5031, 7927, 26333, 39795, 45875}}, +{11630, 17, 50251, {1, 1, 5, 1, 7, 37, 117, 35, 257, 225, 1769, 1805, 1593, 1507, 27741, 31561, 52107}}, +{11631, 17, 50253, {1, 1, 3, 3, 27, 23, 55, 5, 137, 677, 459, 2821, 1331, 5845, 17751, 17557, 60495}}, +{11632, 17, 50262, {1, 1, 7, 7, 5, 47, 85, 17, 287, 757, 2013, 2233, 2975, 13769, 23199, 32117, 84429}}, +{11633, 17, 50266, {1, 3, 3, 11, 1, 15, 39, 133, 79, 915, 147, 1489, 2319, 13715, 31317, 46785, 64147}}, +{11634, 17, 50272, {1, 1, 3, 11, 1, 25, 83, 69, 395, 537, 895, 565, 2781, 12685, 7831, 36369, 27871}}, +{11635, 17, 50287, {1, 1, 1, 1, 13, 17, 59, 179, 509, 979, 315, 3495, 1773, 16375, 27873, 18065, 20285}}, +{11636, 17, 50295, {1, 1, 5, 1, 27, 31, 39, 251, 121, 899, 751, 1603, 7501, 425, 25791, 35407, 110405}}, +{11637, 17, 50305, {1, 1, 7, 11, 11, 3, 107, 247, 79, 349, 405, 3469, 2201, 8007, 22891, 7901, 11413}}, +{11638, 17, 50306, {1, 1, 1, 11, 15, 55, 121, 151, 127, 239, 115, 611, 6191, 15435, 19831, 64745, 110473}}, +{11639, 17, 50311, {1, 1, 7, 1, 21, 25, 57, 11, 31, 823, 1855, 2337, 7655, 10845, 22167, 36977, 94265}}, +{11640, 17, 50320, {1, 3, 5, 1, 31, 11, 117, 97, 341, 953, 1499, 2487, 559, 8609, 6321, 20669, 28945}}, +{11641, 17, 50323, {1, 3, 7, 1, 5, 27, 15, 161, 83, 139, 75, 3645, 5227, 16199, 1833, 21767, 67579}}, +{11642, 17, 50325, {1, 1, 7, 5, 31, 35, 75, 115, 451, 773, 1987, 1069, 651, 961, 16317, 18391, 56519}}, +{11643, 17, 50339, {1, 1, 1, 1, 31, 11, 23, 255, 215, 251, 867, 2381, 2351, 13189, 17705, 33569, 102361}}, +{11644, 17, 50356, {1, 3, 7, 1, 17, 49, 49, 125, 445, 947, 1985, 2113, 3025, 6277, 1981, 33329, 99413}}, +{11645, 17, 50365, {1, 3, 3, 3, 27, 7, 59, 109, 37, 777, 1359, 2157, 3185, 7317, 30887, 10499, 126563}}, +{11646, 17, 50366, {1, 3, 3, 9, 27, 5, 99, 167, 457, 363, 2031, 1805, 4661, 8695, 4667, 61129, 81143}}, +{11647, 17, 50368, {1, 1, 5, 13, 5, 47, 95, 249, 289, 631, 1739, 2947, 7169, 13019, 10429, 16197, 11539}}, +{11648, 17, 50377, {1, 3, 7, 15, 27, 45, 93, 131, 269, 835, 399, 1133, 6509, 1279, 3635, 17977, 38667}}, +{11649, 17, 50386, {1, 1, 5, 3, 17, 51, 1, 77, 105, 237, 995, 2643, 6921, 6707, 30129, 1543, 94501}}, +{11650, 17, 50397, {1, 1, 1, 7, 29, 1, 117, 33, 141, 805, 1553, 3943, 45, 8911, 24191, 45191, 36525}}, +{11651, 17, 50411, {1, 1, 7, 7, 31, 21, 97, 29, 179, 345, 1059, 701, 7709, 15831, 22923, 57233, 58961}}, +{11652, 17, 50414, {1, 1, 3, 15, 15, 5, 85, 227, 13, 351, 1167, 3283, 6833, 565, 21019, 53249, 4639}}, +{11653, 17, 50425, {1, 3, 3, 5, 27, 1, 5, 89, 101, 295, 481, 2397, 1459, 3729, 3703, 25109, 69237}}, +{11654, 17, 50451, {1, 3, 7, 13, 31, 37, 69, 147, 505, 487, 1701, 1145, 2061, 10067, 18269, 13049, 92091}}, +{11655, 17, 50463, {1, 3, 3, 1, 29, 39, 33, 199, 499, 377, 1081, 3787, 4843, 16287, 23397, 19083, 91381}}, +{11656, 17, 50467, {1, 1, 1, 13, 21, 61, 121, 251, 511, 615, 625, 2245, 5951, 16165, 2155, 37301, 68319}}, +{11657, 17, 50473, {1, 1, 1, 15, 19, 35, 57, 99, 1, 97, 1177, 3109, 7213, 5447, 25251, 24803, 107449}}, +{11658, 17, 50487, {1, 3, 1, 11, 11, 59, 95, 135, 329, 931, 843, 2847, 463, 10725, 3933, 32325, 44545}}, +{11659, 17, 50501, {1, 1, 7, 13, 13, 57, 29, 175, 11, 701, 231, 2907, 5555, 16159, 1249, 38049, 40115}}, +{11660, 17, 50505, {1, 1, 5, 15, 23, 37, 47, 221, 465, 631, 57, 1189, 2083, 6561, 10725, 8015, 21231}}, +{11661, 17, 50514, {1, 3, 7, 5, 9, 25, 31, 47, 139, 639, 999, 2909, 39, 16227, 16967, 30555, 125541}}, +{11662, 17, 50516, {1, 3, 3, 9, 5, 3, 9, 9, 43, 999, 159, 3063, 3661, 7089, 28929, 55305, 105521}}, +{11663, 17, 50536, {1, 3, 1, 11, 17, 7, 3, 57, 457, 753, 135, 3721, 1111, 7267, 12603, 50511, 85433}}, +{11664, 17, 50547, {1, 3, 5, 1, 27, 3, 107, 187, 247, 891, 1311, 423, 1767, 14769, 22119, 36225, 94267}}, +{11665, 17, 50566, {1, 3, 5, 15, 1, 13, 65, 35, 435, 557, 1755, 1343, 2647, 179, 7781, 62903, 18741}}, +{11666, 17, 50572, {1, 1, 7, 15, 29, 57, 63, 227, 407, 163, 1207, 2717, 2731, 1737, 6379, 14937, 46683}}, +{11667, 17, 50583, {1, 1, 1, 9, 25, 35, 93, 1, 77, 677, 875, 3787, 3075, 14033, 23017, 3487, 14999}}, +{11668, 17, 50593, {1, 3, 3, 9, 3, 45, 115, 61, 437, 823, 1401, 459, 301, 5519, 31003, 64499, 1757}}, +{11669, 17, 50599, {1, 3, 1, 11, 23, 37, 69, 215, 197, 961, 1501, 2953, 3679, 6775, 24679, 44215, 52357}}, +{11670, 17, 50613, {1, 3, 1, 15, 29, 23, 1, 133, 451, 677, 687, 1269, 5987, 11975, 11929, 63691, 48683}}, +{11671, 17, 50617, {1, 1, 1, 7, 13, 31, 13, 71, 355, 345, 1193, 3421, 7601, 7413, 6719, 28681, 97605}}, +{11672, 17, 50618, {1, 1, 5, 13, 23, 3, 15, 253, 109, 17, 341, 471, 1131, 14901, 31783, 41369, 64139}}, +{11673, 17, 50620, {1, 1, 3, 1, 25, 25, 85, 157, 443, 83, 269, 3789, 7977, 7783, 28433, 30563, 82805}}, +{11674, 17, 50628, {1, 1, 7, 5, 3, 11, 83, 63, 253, 349, 217, 2733, 4183, 2759, 7617, 41749, 14015}}, +{11675, 17, 50638, {1, 1, 5, 7, 7, 7, 91, 201, 449, 247, 889, 3829, 3529, 14253, 24091, 33521, 6049}}, +{11676, 17, 50652, {1, 1, 3, 7, 25, 7, 123, 161, 227, 965, 511, 619, 4359, 11833, 12859, 26091, 3867}}, +{11677, 17, 50655, {1, 1, 7, 9, 5, 41, 71, 111, 95, 261, 1809, 3835, 7625, 12085, 28885, 64829, 48981}}, +{11678, 17, 50662, {1, 1, 5, 3, 13, 55, 57, 79, 457, 785, 653, 1429, 3879, 13559, 3953, 18205, 5777}}, +{11679, 17, 50665, {1, 3, 5, 9, 23, 25, 107, 255, 151, 191, 119, 3367, 1081, 12691, 3575, 38171, 42573}}, +{11680, 17, 50673, {1, 1, 7, 15, 3, 23, 115, 233, 265, 187, 1961, 1303, 5101, 1035, 6803, 14557, 4527}}, +{11681, 17, 50683, {1, 1, 3, 11, 19, 37, 45, 167, 17, 793, 1361, 3571, 5889, 14421, 20453, 5093, 59927}}, +{11682, 17, 50689, {1, 1, 7, 15, 3, 53, 1, 11, 159, 389, 171, 2351, 7189, 3109, 1541, 53595, 24247}}, +{11683, 17, 50690, {1, 1, 7, 1, 7, 43, 75, 175, 253, 687, 1811, 3277, 447, 8711, 14281, 53265, 7379}}, +{11684, 17, 50692, {1, 1, 5, 3, 21, 45, 113, 25, 309, 31, 1765, 305, 1423, 115, 26421, 50267, 122115}}, +{11685, 17, 50696, {1, 3, 5, 13, 15, 47, 17, 17, 445, 775, 243, 3959, 7263, 9375, 12017, 57399, 58203}}, +{11686, 17, 50704, {1, 3, 3, 1, 31, 37, 37, 213, 125, 929, 243, 1011, 2841, 4499, 16961, 12639, 23381}}, +{11687, 17, 50713, {1, 3, 1, 3, 7, 53, 31, 165, 311, 239, 731, 1759, 1769, 203, 23201, 20267, 33381}}, +{11688, 17, 50719, {1, 3, 3, 11, 1, 1, 73, 57, 497, 693, 693, 861, 5587, 16307, 8559, 28785, 91147}}, +{11689, 17, 50738, {1, 3, 1, 3, 11, 61, 11, 241, 473, 479, 1831, 1771, 25, 10217, 32683, 40165, 98433}}, +{11690, 17, 50757, {1, 1, 5, 3, 17, 51, 39, 27, 189, 631, 689, 2849, 1849, 9143, 19263, 32729, 23031}}, +{11691, 17, 50761, {1, 1, 5, 9, 15, 39, 103, 83, 485, 689, 1561, 55, 5219, 12069, 32225, 7781, 114299}}, +{11692, 17, 50764, {1, 1, 1, 1, 31, 49, 71, 145, 485, 907, 1551, 3931, 4081, 2159, 24747, 6953, 15887}}, +{11693, 17, 50770, {1, 1, 3, 7, 27, 61, 57, 153, 15, 881, 271, 267, 5827, 7625, 18179, 3769, 42211}}, +{11694, 17, 50776, {1, 3, 1, 3, 21, 49, 65, 177, 341, 851, 1825, 3347, 113, 8077, 1117, 9463, 115821}}, +{11695, 17, 50803, {1, 3, 5, 11, 27, 17, 75, 35, 475, 389, 313, 2187, 7005, 911, 21921, 10979, 13705}}, +{11696, 17, 50805, {1, 1, 5, 9, 1, 49, 15, 21, 163, 355, 193, 3473, 4451, 5325, 28343, 251, 125963}}, +{11697, 17, 50806, {1, 3, 7, 1, 9, 63, 9, 129, 453, 887, 1841, 597, 1989, 14755, 7847, 7581, 251}}, +{11698, 17, 50816, {1, 3, 7, 13, 31, 15, 123, 3, 427, 101, 1039, 1355, 3653, 2871, 28937, 31243, 108827}}, +{11699, 17, 50826, {1, 3, 7, 13, 3, 17, 71, 243, 145, 747, 1933, 1105, 455, 6355, 20321, 60075, 31575}}, +{11700, 17, 50840, {1, 3, 5, 5, 11, 25, 95, 85, 461, 459, 313, 173, 1413, 15761, 31481, 63793, 29047}}, +{11701, 17, 50845, {1, 3, 7, 7, 3, 5, 3, 95, 107, 995, 1203, 2965, 2419, 5325, 17667, 40205, 91059}}, +{11702, 17, 50852, {1, 1, 3, 9, 25, 3, 113, 79, 359, 69, 93, 1539, 483, 12701, 19075, 35021, 17929}}, +{11703, 17, 50855, {1, 3, 5, 1, 31, 35, 67, 97, 105, 381, 973, 1355, 3901, 3847, 12343, 64309, 29835}}, +{11704, 17, 50862, {1, 3, 7, 1, 11, 33, 117, 237, 449, 101, 317, 23, 5157, 8187, 28839, 29465, 97485}}, +{11705, 17, 50876, {1, 3, 5, 5, 1, 49, 93, 71, 89, 607, 1143, 3271, 5825, 8529, 18479, 23859, 40571}}, +{11706, 17, 50879, {1, 3, 1, 3, 13, 35, 79, 9, 315, 943, 1199, 1521, 2023, 11745, 8273, 27643, 89545}}, +{11707, 17, 50882, {1, 3, 5, 1, 21, 3, 15, 111, 19, 895, 1539, 3331, 6741, 9087, 5231, 13435, 60645}}, +{11708, 17, 50894, {1, 3, 1, 9, 25, 9, 109, 253, 263, 425, 915, 1955, 659, 6249, 11803, 34523, 22645}}, +{11709, 17, 50899, {1, 1, 1, 9, 15, 23, 13, 79, 369, 689, 565, 743, 3897, 8837, 13753, 17213, 86801}}, +{11710, 17, 50905, {1, 1, 1, 5, 31, 27, 111, 231, 25, 617, 897, 1325, 4885, 5731, 2027, 34639, 67863}}, +{11711, 17, 50924, {1, 1, 3, 13, 1, 9, 29, 23, 95, 113, 1035, 2729, 6555, 335, 24795, 35387, 31301}}, +{11712, 17, 50936, {1, 1, 1, 7, 3, 53, 91, 143, 167, 773, 207, 31, 4993, 7953, 26997, 40031, 113939}}, +{11713, 17, 50944, {1, 1, 3, 5, 17, 43, 121, 231, 411, 575, 1621, 3079, 535, 3313, 19443, 58271, 54207}}, +{11714, 17, 50973, {1, 1, 1, 7, 11, 41, 61, 81, 97, 91, 1987, 981, 3745, 819, 23785, 48331, 63761}}, +{11715, 17, 50974, {1, 1, 5, 13, 7, 29, 25, 73, 355, 669, 241, 65, 2249, 5551, 5217, 58573, 34049}}, +{11716, 17, 51002, {1, 1, 7, 11, 1, 45, 125, 107, 127, 639, 1989, 2727, 2103, 8985, 30249, 40037, 40931}}, +{11717, 17, 51007, {1, 1, 5, 13, 21, 59, 99, 131, 359, 615, 665, 577, 2559, 3555, 11355, 26213, 76427}}, +{11718, 17, 51009, {1, 3, 3, 1, 19, 9, 85, 111, 381, 661, 561, 3419, 1355, 8473, 329, 4989, 9087}}, +{11719, 17, 51029, {1, 1, 7, 5, 11, 23, 33, 95, 343, 9, 1579, 2663, 6245, 267, 7187, 25381, 103181}}, +{11720, 17, 51036, {1, 1, 7, 11, 23, 7, 113, 49, 89, 587, 1221, 409, 873, 15531, 2721, 44519, 25349}}, +{11721, 17, 51063, {1, 3, 3, 1, 17, 17, 45, 239, 453, 639, 1433, 2829, 6009, 12447, 9393, 59979, 93343}}, +{11722, 17, 51067, {1, 1, 3, 15, 19, 61, 125, 101, 219, 327, 1551, 1623, 951, 8379, 21009, 64089, 21891}}, +{11723, 17, 51070, {1, 1, 5, 7, 23, 5, 111, 43, 57, 71, 407, 4027, 4869, 12033, 19941, 51969, 120115}}, +{11724, 17, 51074, {1, 3, 7, 15, 17, 49, 31, 145, 185, 169, 1559, 4011, 5293, 7559, 23487, 12213, 2757}}, +{11725, 17, 51079, {1, 3, 7, 3, 3, 59, 119, 3, 509, 539, 1623, 539, 1405, 3913, 213, 30293, 68497}}, +{11726, 17, 51083, {1, 1, 1, 9, 15, 43, 67, 171, 397, 233, 379, 1681, 6877, 9169, 19667, 1971, 115347}}, +{11727, 17, 51093, {1, 1, 5, 15, 1, 45, 25, 133, 99, 181, 1825, 3485, 5633, 4629, 30181, 15761, 87161}}, +{11728, 17, 51094, {1, 1, 5, 3, 5, 55, 97, 117, 303, 591, 733, 3631, 4305, 169, 5361, 64491, 71793}}, +{11729, 17, 51124, {1, 1, 5, 11, 19, 9, 5, 147, 223, 51, 1763, 3899, 7393, 8107, 19619, 60509, 61427}}, +{11730, 17, 51131, {1, 1, 1, 15, 15, 3, 103, 15, 423, 649, 613, 1387, 6229, 4147, 17517, 225, 35697}}, +{11731, 17, 51151, {1, 3, 1, 3, 21, 57, 77, 193, 203, 649, 631, 3753, 4259, 3983, 27707, 33623, 83857}}, +{11732, 17, 51153, {1, 3, 3, 5, 11, 37, 95, 201, 83, 643, 1639, 153, 7683, 15249, 23859, 27021, 43321}}, +{11733, 17, 51156, {1, 3, 5, 13, 23, 31, 69, 215, 303, 433, 1325, 1013, 2903, 12659, 3813, 34497, 59651}}, +{11734, 17, 51165, {1, 3, 1, 9, 15, 39, 113, 253, 173, 393, 19, 2343, 2939, 8871, 29741, 2141, 121675}}, +{11735, 17, 51175, {1, 1, 7, 9, 7, 9, 91, 211, 169, 299, 507, 2849, 1321, 15397, 23949, 32387, 108691}}, +{11736, 17, 51184, {1, 1, 7, 13, 1, 21, 119, 127, 229, 253, 39, 323, 1831, 121, 17385, 45511, 43743}}, +{11737, 17, 51187, {1, 1, 1, 15, 25, 25, 97, 209, 375, 945, 1343, 2205, 1701, 13085, 25547, 55555, 129395}}, +{11738, 17, 51203, {1, 1, 1, 5, 31, 25, 91, 255, 163, 169, 703, 1607, 4731, 7413, 10013, 10925, 109151}}, +{11739, 17, 51220, {1, 3, 3, 9, 15, 47, 71, 219, 9, 37, 231, 3227, 3447, 8129, 23421, 30113, 120725}}, +{11740, 17, 51224, {1, 3, 3, 11, 15, 47, 93, 203, 299, 865, 151, 3999, 1245, 8487, 13355, 27373, 93583}}, +{11741, 17, 51233, {1, 3, 7, 5, 13, 7, 97, 81, 271, 95, 513, 365, 5039, 403, 5285, 29475, 129347}}, +{11742, 17, 51234, {1, 1, 7, 7, 9, 27, 25, 207, 161, 785, 1453, 3031, 763, 2313, 29347, 61457, 52561}}, +{11743, 17, 51239, {1, 3, 3, 11, 25, 25, 39, 61, 165, 803, 1435, 3643, 299, 13751, 24239, 53955, 94889}}, +{11744, 17, 51246, {1, 3, 5, 9, 9, 13, 63, 221, 123, 947, 905, 913, 953, 7429, 25409, 43017, 2217}}, +{11745, 17, 51248, {1, 1, 3, 3, 31, 19, 107, 211, 503, 675, 1921, 3027, 1273, 5699, 20683, 55605, 119803}}, +{11746, 17, 51251, {1, 1, 3, 3, 9, 17, 115, 183, 325, 259, 2013, 1505, 6999, 11573, 5315, 18731, 9405}}, +{11747, 17, 51257, {1, 3, 1, 5, 29, 37, 81, 145, 5, 851, 1803, 2011, 6655, 3601, 11325, 17137, 68501}}, +{11748, 17, 51266, {1, 3, 5, 1, 25, 51, 111, 19, 75, 765, 1843, 139, 7253, 12967, 13387, 48631, 124881}}, +{11749, 17, 51280, {1, 3, 3, 7, 15, 29, 7, 231, 13, 901, 1913, 3817, 3993, 3049, 32367, 4201, 90837}}, +{11750, 17, 51285, {1, 3, 1, 11, 27, 5, 109, 57, 81, 147, 1141, 2153, 5255, 6367, 189, 5959, 88843}}, +{11751, 17, 51286, {1, 3, 5, 5, 19, 35, 17, 149, 407, 889, 1583, 1727, 465, 10785, 6043, 21785, 80935}}, +{11752, 17, 51289, {1, 1, 3, 7, 15, 21, 105, 249, 427, 491, 923, 3189, 8103, 3875, 18347, 35799, 36703}}, +{11753, 17, 51295, {1, 1, 3, 15, 3, 45, 93, 197, 265, 309, 1909, 1635, 1743, 9499, 21897, 36889, 67449}}, +{11754, 17, 51296, {1, 3, 1, 11, 15, 57, 31, 231, 363, 879, 1377, 1941, 6969, 10721, 21933, 33419, 102939}}, +{11755, 17, 51311, {1, 1, 3, 9, 3, 57, 49, 51, 71, 991, 885, 1367, 2937, 9301, 29893, 9867, 113711}}, +{11756, 17, 51329, {1, 3, 7, 7, 11, 59, 123, 247, 51, 659, 1323, 3371, 3417, 12295, 2021, 62753, 28059}}, +{11757, 17, 51350, {1, 1, 7, 11, 3, 57, 53, 1, 203, 287, 219, 3531, 1365, 6235, 30187, 4479, 29567}}, +{11758, 17, 51356, {1, 1, 7, 9, 5, 41, 41, 39, 137, 495, 149, 2421, 7365, 11381, 25403, 16063, 47491}}, +{11759, 17, 51363, {1, 1, 5, 13, 25, 25, 47, 25, 213, 661, 1345, 883, 7573, 3291, 21303, 8033, 102639}}, +{11760, 17, 51365, {1, 1, 5, 3, 9, 49, 75, 221, 455, 139, 1533, 3155, 1023, 7249, 10129, 63165, 1713}}, +{11761, 17, 51370, {1, 3, 5, 11, 17, 1, 23, 241, 83, 359, 1243, 2791, 2975, 6271, 19035, 55057, 7625}}, +{11762, 17, 51372, {1, 3, 1, 9, 17, 61, 109, 255, 447, 939, 899, 551, 7049, 4247, 17333, 43369, 30105}}, +{11763, 17, 51377, {1, 1, 3, 5, 3, 31, 79, 39, 225, 605, 1893, 3523, 5391, 6879, 18619, 2339, 108295}}, +{11764, 17, 51383, {1, 1, 5, 1, 29, 15, 123, 39, 239, 57, 843, 2799, 4755, 4993, 23383, 45559, 48359}}, +{11765, 17, 51384, {1, 1, 5, 5, 7, 5, 99, 1, 351, 213, 1061, 721, 343, 16071, 29641, 55607, 76727}}, +{11766, 17, 51397, {1, 3, 1, 7, 9, 9, 15, 25, 87, 595, 71, 3769, 2583, 10105, 28639, 48899, 49753}}, +{11767, 17, 51407, {1, 3, 5, 3, 31, 29, 99, 77, 323, 615, 581, 1725, 2471, 16263, 4903, 205, 55441}}, +{11768, 17, 51422, {1, 1, 5, 11, 17, 53, 47, 53, 125, 717, 867, 1251, 4009, 13981, 10165, 4769, 117431}}, +{11769, 17, 51435, {1, 1, 3, 7, 7, 19, 119, 27, 163, 11, 693, 3197, 3981, 12591, 26017, 62113, 48391}}, +{11770, 17, 51440, {1, 1, 3, 15, 13, 17, 13, 81, 19, 821, 677, 233, 5227, 14855, 18269, 18895, 90041}}, +{11771, 17, 51446, {1, 1, 3, 9, 27, 61, 125, 221, 415, 183, 1137, 1879, 3451, 3599, 27317, 53449, 35499}}, +{11772, 17, 51463, {1, 3, 3, 15, 3, 27, 53, 93, 17, 405, 373, 2531, 3121, 2299, 1593, 34623, 102389}}, +{11773, 17, 51467, {1, 1, 1, 11, 23, 19, 85, 87, 209, 17, 1805, 4067, 7401, 6097, 5865, 61383, 42971}}, +{11774, 17, 51491, {1, 1, 7, 9, 29, 43, 99, 125, 385, 347, 97, 1121, 1533, 10545, 17383, 48649, 78443}}, +{11775, 17, 51493, {1, 3, 3, 13, 7, 9, 95, 105, 463, 911, 357, 423, 5701, 2389, 16307, 17817, 108775}}, +{11776, 17, 51494, {1, 3, 5, 11, 21, 21, 79, 53, 511, 995, 1709, 1715, 6031, 10507, 10735, 48817, 28569}}, +{11777, 17, 51508, {1, 3, 5, 7, 31, 49, 43, 109, 267, 981, 1529, 3611, 3379, 1295, 27489, 46721, 58423}}, +{11778, 17, 51518, {1, 3, 3, 11, 3, 31, 21, 3, 79, 31, 1885, 3029, 6337, 15457, 8995, 9955, 95019}}, +{11779, 17, 51520, {1, 1, 7, 13, 9, 9, 77, 73, 111, 769, 813, 1599, 5925, 1063, 12151, 54125, 67723}}, +{11780, 17, 51526, {1, 1, 1, 7, 13, 5, 43, 201, 379, 199, 769, 3227, 3995, 1543, 21903, 10651, 122007}}, +{11781, 17, 51529, {1, 3, 7, 13, 11, 53, 83, 201, 231, 137, 617, 2395, 2513, 6659, 9387, 15653, 96927}}, +{11782, 17, 51530, {1, 3, 1, 13, 29, 19, 97, 57, 231, 985, 805, 1169, 831, 15867, 20195, 53533, 99735}}, +{11783, 17, 51537, {1, 1, 3, 13, 19, 15, 19, 39, 99, 31, 421, 755, 7439, 4927, 19893, 15449, 47937}}, +{11784, 17, 51547, {1, 3, 3, 9, 1, 17, 71, 37, 289, 537, 69, 3687, 6537, 12295, 28403, 6627, 72991}}, +{11785, 17, 51559, {1, 3, 3, 15, 31, 53, 21, 223, 451, 309, 895, 3923, 3149, 5167, 1979, 31425, 53485}}, +{11786, 17, 51565, {1, 3, 1, 1, 29, 7, 5, 197, 445, 455, 185, 633, 897, 4561, 28833, 39477, 46665}}, +{11787, 17, 51568, {1, 1, 3, 9, 29, 19, 45, 239, 323, 1005, 101, 2083, 7403, 10401, 987, 32301, 58141}}, +{11788, 17, 51580, {1, 3, 3, 5, 31, 17, 7, 141, 245, 301, 1607, 3381, 7517, 6663, 6327, 15321, 19963}}, +{11789, 17, 51583, {1, 1, 7, 5, 5, 37, 109, 31, 285, 767, 1689, 2961, 5511, 15415, 32011, 14889, 7237}}, +{11790, 17, 51584, {1, 1, 3, 7, 31, 35, 47, 157, 407, 719, 1213, 1241, 2475, 10321, 11547, 52641, 21603}}, +{11791, 17, 51593, {1, 1, 1, 7, 5, 45, 35, 137, 403, 321, 1151, 529, 6297, 3059, 27791, 18387, 101431}}, +{11792, 17, 51594, {1, 1, 3, 11, 21, 19, 97, 121, 377, 325, 741, 1601, 1115, 6233, 19089, 40491, 53259}}, +{11793, 17, 51607, {1, 1, 1, 9, 3, 13, 83, 243, 443, 91, 1455, 1875, 3327, 7245, 12735, 14943, 44163}}, +{11794, 17, 51608, {1, 3, 5, 11, 1, 15, 107, 211, 25, 125, 623, 1319, 6133, 12177, 1377, 32547, 110919}}, +{11795, 17, 51620, {1, 1, 3, 3, 7, 39, 23, 99, 433, 581, 53, 3421, 733, 12767, 23595, 22957, 88821}}, +{11796, 17, 51624, {1, 1, 1, 13, 5, 53, 103, 127, 409, 379, 1155, 3097, 6529, 11685, 22147, 46003, 59771}}, +{11797, 17, 51642, {1, 3, 3, 3, 15, 37, 9, 67, 237, 79, 697, 1943, 1021, 3217, 16013, 14727, 105729}}, +{11798, 17, 51649, {1, 1, 7, 1, 9, 43, 55, 79, 63, 553, 871, 2881, 6487, 4667, 24263, 41995, 60907}}, +{11799, 17, 51652, {1, 1, 7, 7, 23, 31, 55, 23, 451, 593, 85, 43, 965, 12491, 15121, 16129, 90639}}, +{11800, 17, 51659, {1, 1, 7, 13, 11, 53, 21, 123, 237, 147, 511, 2105, 5961, 4465, 4015, 19069, 89203}}, +{11801, 17, 51661, {1, 3, 5, 1, 1, 39, 59, 239, 391, 91, 923, 85, 1047, 1489, 31119, 58485, 129171}}, +{11802, 17, 51670, {1, 3, 5, 13, 3, 21, 35, 205, 219, 795, 901, 2465, 5887, 275, 22003, 29659, 50589}}, +{11803, 17, 51674, {1, 3, 1, 5, 1, 35, 127, 147, 159, 791, 1643, 1811, 1199, 3851, 9681, 19845, 127075}}, +{11804, 17, 51698, {1, 3, 3, 7, 17, 19, 13, 223, 395, 971, 125, 181, 4455, 13305, 30433, 46161, 122277}}, +{11805, 17, 51707, {1, 3, 1, 3, 19, 1, 15, 71, 425, 459, 655, 2251, 5525, 7611, 5819, 1255, 43107}}, +{11806, 17, 51725, {1, 1, 5, 15, 3, 9, 83, 191, 439, 663, 399, 2263, 1857, 15421, 2079, 2381, 59193}}, +{11807, 17, 51737, {1, 3, 5, 5, 1, 7, 9, 77, 347, 419, 1329, 3173, 7295, 3631, 13435, 3217, 18053}}, +{11808, 17, 51753, {1, 3, 3, 7, 29, 39, 35, 71, 119, 745, 603, 2247, 377, 3297, 30983, 27857, 105739}}, +{11809, 17, 51754, {1, 1, 5, 13, 9, 59, 57, 239, 247, 921, 1383, 2315, 241, 4435, 24661, 6129, 122727}}, +{11810, 17, 51779, {1, 1, 5, 7, 3, 15, 39, 165, 27, 803, 609, 3081, 6009, 12665, 24155, 51647, 3857}}, +{11811, 17, 51791, {1, 3, 5, 11, 27, 41, 61, 255, 195, 169, 557, 1739, 4029, 1791, 471, 16321, 49801}}, +{11812, 17, 51796, {1, 3, 7, 13, 17, 45, 35, 177, 109, 113, 551, 219, 4065, 303, 15489, 25427, 12349}}, +{11813, 17, 51809, {1, 3, 5, 5, 25, 15, 79, 165, 231, 867, 483, 3563, 6611, 11277, 3193, 37455, 127373}}, +{11814, 17, 51816, {1, 3, 3, 11, 25, 21, 47, 255, 27, 543, 485, 2675, 5893, 3029, 3857, 50967, 14681}}, +{11815, 17, 51819, {1, 3, 7, 11, 3, 23, 81, 135, 77, 227, 417, 1733, 5175, 15295, 15985, 50329, 48641}}, +{11816, 17, 51827, {1, 3, 5, 1, 3, 47, 33, 67, 201, 235, 1299, 3703, 1959, 8091, 11115, 10869, 9595}}, +{11817, 17, 51829, {1, 3, 7, 13, 1, 45, 61, 49, 471, 923, 1827, 2175, 1433, 3473, 3781, 7923, 121525}}, +{11818, 17, 51834, {1, 3, 5, 7, 25, 59, 113, 19, 415, 839, 167, 3549, 7435, 6573, 767, 2751, 18383}}, +{11819, 17, 51836, {1, 3, 3, 1, 5, 11, 125, 241, 395, 423, 955, 2551, 963, 8197, 30253, 10473, 28505}}, +{11820, 17, 51846, {1, 1, 1, 3, 5, 31, 69, 103, 153, 505, 1507, 2827, 165, 4943, 8343, 54253, 87593}}, +{11821, 17, 51849, {1, 3, 3, 1, 7, 37, 27, 75, 251, 623, 965, 1907, 6063, 761, 765, 10103, 43479}}, +{11822, 17, 51855, {1, 1, 1, 13, 7, 21, 53, 219, 267, 57, 959, 579, 2951, 13797, 3249, 29895, 47467}}, +{11823, 17, 51858, {1, 1, 5, 9, 13, 7, 85, 107, 3, 635, 1235, 1339, 3263, 3895, 25911, 7521, 34149}}, +{11824, 17, 51869, {1, 1, 5, 15, 29, 37, 73, 43, 413, 993, 499, 719, 1557, 14397, 11245, 58197, 127901}}, +{11825, 17, 51870, {1, 1, 5, 15, 9, 37, 87, 57, 63, 337, 927, 1887, 6407, 11237, 23233, 53567, 120449}}, +{11826, 17, 51874, {1, 1, 3, 7, 27, 11, 85, 227, 159, 849, 647, 1977, 4623, 7343, 8089, 4251, 26609}}, +{11827, 17, 51918, {1, 1, 5, 11, 11, 3, 105, 191, 189, 627, 367, 3935, 6647, 13069, 26195, 23137, 56427}}, +{11828, 17, 51926, {1, 1, 3, 3, 29, 51, 39, 3, 437, 1011, 1061, 1747, 3051, 11165, 8155, 9723, 41035}}, +{11829, 17, 51932, {1, 3, 7, 15, 9, 43, 79, 195, 265, 395, 1349, 337, 911, 15767, 3593, 42859, 70181}}, +{11830, 17, 51936, {1, 3, 7, 7, 11, 47, 11, 85, 489, 801, 1177, 3861, 3517, 9209, 27505, 12291, 35691}}, +{11831, 17, 51948, {1, 1, 3, 9, 15, 61, 71, 123, 287, 419, 1079, 3489, 3519, 12739, 21341, 24323, 33961}}, +{11832, 17, 51954, {1, 3, 7, 3, 9, 17, 119, 137, 389, 391, 601, 1875, 2197, 5271, 13289, 43597, 43279}}, +{11833, 17, 51959, {1, 3, 7, 15, 29, 35, 41, 171, 183, 701, 1673, 981, 5479, 21, 11353, 64953, 88189}}, +{11834, 17, 51971, {1, 3, 3, 13, 15, 35, 35, 81, 297, 245, 475, 393, 5401, 12369, 21129, 65213, 125013}}, +{11835, 17, 51983, {1, 1, 7, 13, 15, 57, 25, 143, 389, 111, 1219, 2195, 769, 9005, 10367, 39435, 3631}}, +{11836, 17, 51992, {1, 3, 3, 13, 9, 29, 9, 47, 127, 377, 1195, 1221, 5751, 15481, 10537, 29909, 112691}}, +{11837, 17, 51997, {1, 1, 3, 5, 17, 47, 29, 1, 299, 651, 1023, 1601, 5917, 3781, 18421, 42393, 51789}}, +{11838, 17, 52016, {1, 3, 3, 15, 31, 51, 101, 147, 367, 159, 359, 705, 3773, 8649, 31373, 5733, 58287}}, +{11839, 17, 52021, {1, 3, 5, 11, 11, 51, 55, 79, 147, 917, 1945, 1725, 289, 12777, 30099, 3013, 91527}}, +{11840, 17, 52031, {1, 1, 7, 13, 1, 51, 33, 27, 169, 573, 117, 2479, 761, 1283, 32723, 13589, 88821}}, +{11841, 17, 52033, {1, 1, 1, 3, 23, 13, 33, 207, 137, 391, 1309, 4093, 6889, 827, 9331, 57113, 110193}}, +{11842, 17, 52034, {1, 1, 1, 13, 15, 57, 115, 53, 59, 443, 1, 3545, 6923, 6603, 8631, 41703, 8519}}, +{11843, 17, 52048, {1, 1, 5, 5, 25, 29, 53, 153, 107, 423, 1829, 2469, 1843, 889, 31727, 20701, 6343}}, +{11844, 17, 52053, {1, 1, 7, 13, 11, 41, 7, 219, 77, 663, 329, 2639, 1111, 1293, 16771, 20731, 46973}}, +{11845, 17, 52057, {1, 3, 3, 15, 23, 19, 45, 107, 111, 155, 1595, 1821, 471, 6089, 21587, 49259, 85393}}, +{11846, 17, 52067, {1, 3, 1, 3, 27, 21, 39, 227, 359, 885, 449, 2615, 3519, 5377, 16017, 57159, 82399}}, +{11847, 17, 52076, {1, 3, 3, 15, 31, 33, 77, 33, 87, 821, 701, 2859, 1777, 3007, 16757, 5447, 3557}}, +{11848, 17, 52079, {1, 1, 1, 15, 11, 31, 127, 79, 363, 341, 169, 3451, 6351, 6867, 13511, 833, 103151}}, +{11849, 17, 52081, {1, 3, 5, 7, 27, 23, 5, 67, 159, 535, 103, 843, 8187, 6891, 19169, 22565, 95255}}, +{11850, 17, 52109, {1, 3, 5, 5, 15, 27, 53, 49, 343, 815, 1203, 1031, 6359, 1337, 1629, 47783, 103391}}, +{11851, 17, 52127, {1, 3, 1, 1, 13, 19, 51, 185, 45, 549, 619, 2247, 2541, 10421, 31507, 60785, 87139}}, +{11852, 17, 52128, {1, 3, 1, 15, 29, 9, 47, 127, 41, 767, 1375, 2183, 7169, 12855, 15021, 377, 69327}}, +{11853, 17, 52133, {1, 1, 3, 9, 5, 23, 23, 203, 101, 809, 1155, 2885, 3901, 3081, 1827, 65373, 106133}}, +{11854, 17, 52148, {1, 3, 3, 13, 3, 21, 73, 135, 353, 905, 1757, 1361, 3801, 15541, 2261, 17159, 18037}}, +{11855, 17, 52155, {1, 1, 7, 7, 27, 23, 57, 33, 225, 407, 1709, 1159, 6353, 13341, 15883, 17339, 50423}}, +{11856, 17, 52157, {1, 1, 3, 15, 13, 21, 33, 91, 183, 975, 1623, 3187, 5495, 8947, 7031, 19687, 104483}}, +{11857, 17, 52172, {1, 3, 5, 7, 17, 25, 77, 1, 335, 85, 1783, 2617, 4463, 3807, 12883, 24487, 66205}}, +{11858, 17, 52178, {1, 1, 3, 15, 23, 37, 83, 93, 211, 757, 903, 2681, 49, 435, 21057, 63635, 36489}}, +{11859, 17, 52184, {1, 3, 1, 13, 3, 45, 63, 57, 65, 21, 627, 1467, 51, 15887, 27465, 59227, 108233}}, +{11860, 17, 52199, {1, 1, 7, 5, 15, 41, 53, 57, 301, 677, 803, 1675, 6937, 3159, 14281, 22355, 37783}}, +{11861, 17, 52200, {1, 1, 5, 13, 15, 43, 39, 245, 191, 875, 1505, 2085, 3903, 185, 24461, 28939, 98771}}, +{11862, 17, 52205, {1, 1, 7, 9, 17, 25, 29, 31, 439, 159, 533, 3177, 4155, 403, 23735, 61817, 121909}}, +{11863, 17, 52206, {1, 1, 3, 15, 29, 43, 111, 47, 483, 513, 63, 2423, 4979, 5159, 15499, 33391, 51575}}, +{11864, 17, 52232, {1, 1, 5, 15, 15, 43, 13, 41, 445, 929, 1365, 2023, 6173, 6067, 30969, 51457, 51179}}, +{11865, 17, 52237, {1, 3, 3, 11, 15, 17, 93, 235, 159, 599, 635, 1113, 1017, 7413, 7737, 20051, 79127}}, +{11866, 17, 52243, {1, 1, 1, 15, 5, 19, 81, 65, 479, 119, 1831, 2515, 2929, 15395, 31607, 29969, 49935}}, +{11867, 17, 52246, {1, 3, 1, 13, 23, 47, 45, 151, 51, 217, 803, 3265, 5907, 14371, 8287, 25659, 27655}}, +{11868, 17, 52252, {1, 1, 1, 13, 13, 53, 11, 63, 501, 487, 1683, 1147, 4693, 2761, 19359, 2215, 112393}}, +{11869, 17, 52261, {1, 3, 3, 1, 31, 15, 61, 237, 129, 119, 135, 39, 6509, 3753, 16997, 3841, 24521}}, +{11870, 17, 52265, {1, 3, 5, 7, 5, 27, 113, 251, 217, 923, 229, 2259, 5241, 6331, 6773, 41929, 89605}}, +{11871, 17, 52266, {1, 1, 5, 9, 17, 41, 21, 185, 95, 137, 1151, 195, 913, 531, 15731, 22893, 93521}}, +{11872, 17, 52273, {1, 1, 5, 1, 29, 57, 123, 11, 345, 581, 227, 1539, 7527, 8537, 16429, 8437, 18953}}, +{11873, 17, 52274, {1, 1, 3, 7, 7, 21, 103, 239, 115, 513, 1287, 3717, 331, 5453, 18943, 17247, 64975}}, +{11874, 17, 52288, {1, 3, 7, 11, 21, 37, 79, 83, 93, 155, 1297, 1371, 1109, 6569, 21137, 29237, 24007}}, +{11875, 17, 52300, {1, 1, 1, 13, 17, 11, 127, 89, 397, 497, 1017, 721, 2837, 5623, 31745, 52243, 107225}}, +{11876, 17, 52303, {1, 1, 7, 9, 15, 43, 29, 215, 449, 233, 313, 2587, 2903, 2735, 4539, 50481, 85279}}, +{11877, 17, 52321, {1, 1, 3, 15, 13, 35, 109, 211, 299, 255, 1595, 533, 1801, 13965, 25277, 52347, 13447}}, +{11878, 17, 52322, {1, 1, 1, 15, 9, 23, 115, 119, 207, 973, 1339, 1315, 6465, 9917, 4593, 65435, 2515}}, +{11879, 17, 52328, {1, 3, 3, 3, 7, 25, 115, 115, 213, 845, 1445, 1217, 1563, 12491, 5197, 44409, 79895}}, +{11880, 17, 52333, {1, 1, 1, 3, 9, 33, 31, 203, 19, 895, 1145, 2893, 4807, 7501, 6999, 54883, 13797}}, +{11881, 17, 52351, {1, 1, 3, 1, 19, 51, 73, 29, 451, 533, 83, 2477, 335, 9703, 9747, 57427, 69443}}, +{11882, 17, 52357, {1, 1, 7, 5, 21, 11, 53, 133, 165, 291, 591, 1419, 3661, 4697, 21363, 53467, 84063}}, +{11883, 17, 52372, {1, 1, 7, 3, 13, 7, 85, 49, 193, 289, 1531, 709, 2351, 12085, 28553, 57145, 129517}}, +{11884, 17, 52381, {1, 1, 1, 1, 17, 19, 13, 213, 75, 977, 811, 1813, 7293, 13795, 28569, 28133, 11949}}, +{11885, 17, 52386, {1, 1, 5, 1, 27, 11, 47, 89, 271, 65, 1651, 2331, 3289, 6227, 15027, 19959, 22945}}, +{11886, 17, 52395, {1, 3, 7, 9, 17, 37, 17, 245, 249, 501, 405, 951, 3005, 9757, 10265, 35575, 70529}}, +{11887, 17, 52403, {1, 3, 1, 15, 21, 47, 15, 75, 113, 45, 125, 1393, 3361, 13477, 24325, 39743, 67409}}, +{11888, 17, 52423, {1, 3, 5, 1, 13, 3, 33, 51, 463, 241, 1421, 1607, 3937, 3405, 26653, 33955, 97915}}, +{11889, 17, 52427, {1, 3, 7, 13, 29, 17, 41, 193, 461, 787, 459, 4019, 1887, 13831, 9387, 25215, 69801}}, +{11890, 17, 52432, {1, 3, 1, 11, 31, 55, 13, 235, 85, 953, 109, 233, 1893, 13225, 26165, 59237, 15845}}, +{11891, 17, 52438, {1, 1, 1, 13, 11, 43, 127, 193, 143, 831, 875, 2471, 7011, 3063, 21979, 42113, 80581}}, +{11892, 17, 52444, {1, 3, 7, 1, 5, 1, 63, 55, 349, 525, 441, 2695, 3301, 15737, 13355, 16727, 25001}}, +{11893, 17, 52457, {1, 3, 7, 7, 31, 23, 87, 99, 331, 101, 1341, 3, 1447, 9507, 18627, 2503, 57597}}, +{11894, 17, 52468, {1, 1, 1, 9, 11, 19, 89, 141, 269, 31, 1933, 429, 7765, 5905, 15327, 25913, 17281}}, +{11895, 17, 52480, {1, 3, 1, 9, 23, 61, 75, 15, 121, 635, 1409, 615, 7841, 11993, 1637, 26073, 70763}}, +{11896, 17, 52498, {1, 3, 3, 1, 5, 63, 85, 3, 443, 87, 1201, 275, 3457, 16187, 26839, 16593, 36335}}, +{11897, 17, 52516, {1, 1, 5, 5, 27, 61, 1, 145, 287, 563, 1135, 2703, 733, 10209, 3937, 23807, 56857}}, +{11898, 17, 52520, {1, 3, 3, 7, 1, 41, 97, 155, 305, 395, 1607, 1171, 1061, 12301, 8041, 12111, 66831}}, +{11899, 17, 52525, {1, 3, 7, 15, 9, 61, 127, 225, 125, 231, 87, 2433, 6951, 2999, 24859, 61685, 111943}}, +{11900, 17, 52531, {1, 3, 5, 15, 13, 39, 87, 57, 305, 469, 1929, 1559, 1383, 2779, 3883, 845, 45181}}, +{11901, 17, 52540, {1, 1, 1, 15, 19, 1, 23, 41, 207, 731, 501, 1147, 6543, 5011, 483, 56889, 48993}}, +{11902, 17, 52545, {1, 3, 3, 15, 21, 35, 75, 129, 441, 497, 953, 201, 6849, 2893, 6351, 62163, 84127}}, +{11903, 17, 52546, {1, 1, 1, 9, 21, 31, 91, 79, 345, 649, 1529, 805, 4931, 12887, 30167, 52305, 92561}}, +{11904, 17, 52552, {1, 1, 5, 1, 3, 21, 121, 223, 67, 185, 801, 889, 7443, 8419, 19929, 11451, 11487}}, +{11905, 17, 52557, {1, 1, 3, 15, 21, 51, 119, 31, 197, 773, 617, 2055, 799, 9105, 12353, 33635, 27589}}, +{11906, 17, 52569, {1, 3, 5, 3, 27, 11, 41, 105, 289, 877, 1175, 3111, 3161, 12537, 18001, 38061, 59089}}, +{11907, 17, 52575, {1, 3, 3, 5, 3, 27, 101, 253, 225, 915, 1757, 1601, 3391, 10443, 3983, 58427, 93391}}, +{11908, 17, 52582, {1, 3, 1, 7, 9, 43, 85, 115, 169, 285, 1267, 3791, 2701, 5599, 10099, 48105, 45219}}, +{11909, 17, 52594, {1, 1, 7, 13, 25, 57, 35, 223, 265, 451, 1913, 2715, 8017, 3725, 7079, 34611, 61159}}, +{11910, 17, 52615, {1, 1, 3, 7, 23, 27, 93, 195, 449, 845, 865, 655, 4263, 12743, 7467, 7929, 7095}}, +{11911, 17, 52619, {1, 3, 5, 5, 29, 51, 109, 123, 227, 693, 2033, 3829, 7187, 4027, 17861, 45093, 7355}}, +{11912, 17, 52624, {1, 1, 1, 11, 27, 31, 127, 75, 443, 479, 865, 1377, 711, 3791, 27235, 17405, 25975}}, +{11913, 17, 52645, {1, 3, 5, 7, 1, 49, 79, 167, 471, 453, 211, 265, 8163, 6517, 3413, 17283, 51961}}, +{11914, 17, 52663, {1, 3, 1, 5, 17, 29, 15, 239, 385, 239, 425, 2197, 3553, 14913, 14889, 31645, 67477}}, +{11915, 17, 52664, {1, 3, 3, 5, 1, 11, 25, 105, 367, 253, 1395, 2077, 2613, 4535, 18215, 37657, 48283}}, +{11916, 17, 52675, {1, 3, 3, 1, 1, 41, 7, 161, 437, 659, 833, 3175, 2063, 14497, 6655, 8817, 127321}}, +{11917, 17, 52687, {1, 3, 1, 11, 17, 27, 3, 51, 75, 183, 1889, 287, 5429, 14007, 14445, 47395, 94543}}, +{11918, 17, 52696, {1, 1, 7, 13, 29, 9, 109, 19, 73, 3, 1529, 457, 6413, 4113, 14733, 24455, 44623}}, +{11919, 17, 52701, {1, 3, 1, 15, 15, 31, 83, 25, 263, 229, 1801, 377, 1703, 8571, 10393, 52021, 100937}}, +{11920, 17, 52706, {1, 3, 5, 9, 25, 57, 79, 19, 117, 437, 275, 3439, 6393, 2111, 8317, 3521, 96927}}, +{11921, 17, 52708, {1, 3, 1, 13, 27, 43, 103, 171, 361, 949, 347, 809, 5819, 2763, 10447, 35129, 46985}}, +{11922, 17, 52711, {1, 3, 5, 11, 17, 1, 27, 37, 473, 851, 1057, 831, 4373, 5179, 18193, 48731, 64317}}, +{11923, 17, 52726, {1, 3, 1, 7, 17, 5, 19, 217, 439, 549, 1983, 2473, 6059, 5271, 10279, 7793, 114357}}, +{11924, 17, 52748, {1, 3, 1, 5, 25, 19, 99, 65, 507, 527, 825, 2517, 2299, 1725, 9913, 5779, 12207}}, +{11925, 17, 52754, {1, 3, 1, 1, 29, 41, 119, 27, 411, 475, 461, 1885, 2339, 4945, 24665, 13621, 78129}}, +{11926, 17, 52756, {1, 3, 1, 11, 27, 29, 119, 155, 487, 29, 1545, 675, 1417, 6119, 12451, 21345, 39377}}, +{11927, 17, 52759, {1, 1, 3, 7, 19, 5, 111, 227, 49, 307, 549, 737, 4793, 13885, 22971, 18653, 69573}}, +{11928, 17, 52769, {1, 3, 3, 1, 27, 59, 87, 7, 379, 497, 903, 591, 6105, 1957, 25849, 55957, 120181}}, +{11929, 17, 52784, {1, 3, 5, 15, 19, 31, 43, 1, 35, 341, 311, 1343, 3625, 16181, 31047, 59679, 89231}}, +{11930, 17, 52790, {1, 1, 1, 15, 21, 19, 93, 229, 49, 597, 1465, 2027, 5935, 12269, 20239, 17861, 26311}}, +{11931, 17, 52804, {1, 1, 1, 1, 3, 31, 115, 87, 129, 419, 871, 2469, 3807, 4473, 25025, 36923, 67959}}, +{11932, 17, 52807, {1, 1, 1, 3, 23, 31, 41, 247, 295, 369, 1131, 2183, 8097, 7609, 4387, 37565, 50177}}, +{11933, 17, 52808, {1, 3, 1, 11, 9, 17, 111, 249, 417, 775, 217, 1435, 6295, 5065, 2967, 55361, 91933}}, +{11934, 17, 52819, {1, 3, 5, 7, 19, 21, 71, 219, 411, 31, 335, 2915, 3687, 5691, 12405, 34659, 76721}}, +{11935, 17, 52826, {1, 3, 5, 13, 29, 31, 95, 203, 149, 399, 547, 2529, 2485, 3371, 20219, 33647, 34217}}, +{11936, 17, 52828, {1, 3, 5, 13, 31, 41, 97, 115, 427, 35, 1319, 2335, 715, 2541, 4507, 49395, 33895}}, +{11937, 17, 52832, {1, 3, 7, 15, 3, 49, 3, 49, 153, 93, 1343, 1035, 5685, 15855, 15751, 27663, 99553}}, +{11938, 17, 52835, {1, 1, 7, 5, 27, 7, 53, 135, 453, 981, 1767, 3503, 1259, 11973, 23259, 41051, 96593}}, +{11939, 17, 52849, {1, 1, 7, 9, 5, 59, 57, 141, 41, 639, 1681, 145, 7019, 6621, 14221, 12051, 71871}}, +{11940, 17, 52859, {1, 1, 3, 1, 13, 39, 7, 187, 7, 919, 1555, 2111, 6507, 2099, 10643, 22851, 82033}}, +{11941, 17, 52877, {1, 3, 7, 9, 25, 59, 27, 225, 239, 715, 1115, 2309, 7785, 11849, 8991, 54305, 107305}}, +{11942, 17, 52880, {1, 1, 7, 11, 21, 51, 1, 223, 481, 195, 2005, 2651, 6797, 12201, 11013, 1843, 65167}}, +{11943, 17, 52896, {1, 3, 3, 11, 27, 3, 117, 5, 255, 595, 399, 1329, 1437, 12061, 32679, 16655, 76235}}, +{11944, 17, 52899, {1, 1, 7, 13, 21, 1, 35, 159, 329, 37, 1247, 2663, 3889, 14603, 25799, 45363, 87963}}, +{11945, 17, 52905, {1, 1, 7, 7, 7, 11, 53, 215, 351, 329, 1039, 969, 4449, 14785, 28617, 25953, 78663}}, +{11946, 17, 52913, {1, 1, 7, 7, 27, 17, 19, 223, 143, 433, 789, 1941, 5527, 711, 25097, 4571, 121975}}, +{11947, 17, 52933, {1, 3, 1, 13, 11, 47, 31, 249, 325, 1003, 509, 2741, 3953, 1691, 12661, 16097, 80211}}, +{11948, 17, 52934, {1, 3, 7, 9, 27, 11, 21, 129, 25, 57, 1523, 3631, 2639, 2541, 14249, 34539, 70551}}, +{11949, 17, 52938, {1, 1, 5, 3, 31, 47, 47, 73, 71, 783, 1353, 2157, 2563, 14015, 997, 31611, 118649}}, +{11950, 17, 52957, {1, 1, 5, 5, 25, 35, 25, 207, 349, 503, 121, 3455, 5783, 10899, 12745, 35117, 36679}}, +{11951, 17, 52979, {1, 3, 1, 3, 11, 39, 123, 177, 19, 441, 1979, 1257, 1351, 4253, 15145, 44559, 59379}}, +{11952, 17, 52981, {1, 3, 7, 3, 7, 35, 41, 203, 439, 1013, 1055, 1165, 1043, 11183, 1795, 31253, 113693}}, +{11953, 17, 52986, {1, 3, 1, 13, 7, 43, 57, 1, 229, 345, 631, 841, 7923, 5971, 20489, 47917, 66833}}, +{11954, 17, 53005, {1, 1, 1, 15, 27, 5, 31, 117, 153, 755, 1207, 619, 8185, 4329, 9979, 57255, 79045}}, +{11955, 17, 53008, {1, 3, 3, 7, 23, 1, 7, 227, 337, 417, 1895, 765, 7799, 13599, 27253, 4485, 112391}}, +{11956, 17, 53024, {1, 3, 5, 13, 27, 63, 5, 87, 101, 351, 953, 2235, 1587, 5479, 26529, 34165, 83303}}, +{11957, 17, 53029, {1, 1, 5, 15, 1, 43, 63, 193, 143, 711, 1779, 3531, 1355, 16253, 14595, 32343, 131021}}, +{11958, 17, 53054, {1, 1, 1, 9, 29, 37, 29, 71, 11, 877, 1301, 2415, 5593, 1855, 25223, 6805, 12901}}, +{11959, 17, 53073, {1, 1, 7, 9, 31, 5, 49, 63, 185, 373, 129, 1695, 7841, 4477, 17809, 42771, 120221}}, +{11960, 17, 53083, {1, 1, 5, 3, 15, 43, 49, 45, 47, 775, 699, 2787, 7831, 4189, 18317, 63933, 83669}}, +{11961, 17, 53086, {1, 3, 5, 3, 23, 33, 85, 255, 119, 685, 1245, 1647, 1999, 13063, 9241, 49017, 32619}}, +{11962, 17, 53095, {1, 1, 7, 15, 29, 15, 125, 233, 189, 411, 1251, 3459, 7213, 10081, 4403, 56819, 17103}}, +{11963, 17, 53102, {1, 3, 3, 11, 21, 13, 93, 125, 213, 793, 1057, 2363, 661, 12213, 2259, 3787, 91451}}, +{11964, 17, 53107, {1, 3, 5, 5, 19, 35, 5, 153, 507, 691, 1743, 1777, 7579, 14229, 10155, 18529, 35945}}, +{11965, 17, 53126, {1, 3, 7, 5, 27, 35, 13, 77, 189, 793, 877, 643, 2787, 5817, 22589, 58363, 49059}}, +{11966, 17, 53130, {1, 3, 7, 9, 9, 37, 21, 251, 119, 895, 1023, 91, 4317, 10943, 7355, 36961, 36903}}, +{11967, 17, 53138, {1, 3, 3, 13, 19, 49, 15, 105, 399, 29, 1903, 3503, 3453, 15429, 31503, 57815, 34009}}, +{11968, 17, 53144, {1, 1, 5, 1, 19, 35, 49, 97, 335, 665, 1871, 887, 4713, 517, 9571, 41601, 9673}}, +{11969, 17, 53156, {1, 3, 5, 13, 29, 45, 111, 233, 251, 407, 1135, 2791, 6525, 11633, 22295, 65381, 117511}}, +{11970, 17, 53163, {1, 1, 3, 3, 17, 7, 65, 43, 391, 91, 315, 3559, 479, 7337, 25629, 785, 19855}}, +{11971, 17, 53165, {1, 1, 5, 9, 29, 31, 67, 17, 381, 875, 1001, 415, 2263, 4415, 11263, 309, 117623}}, +{11972, 17, 53173, {1, 1, 7, 11, 25, 1, 59, 61, 247, 649, 687, 907, 1037, 13935, 7229, 39769, 92755}}, +{11973, 17, 53177, {1, 3, 5, 15, 21, 51, 27, 79, 343, 785, 1567, 1349, 7991, 8531, 11243, 61351, 21297}}, +{11974, 17, 53183, {1, 1, 1, 3, 31, 41, 67, 169, 83, 959, 813, 1953, 2467, 12369, 31431, 50761, 75731}}, +{11975, 17, 53192, {1, 1, 5, 11, 25, 37, 83, 163, 3, 161, 1249, 3009, 7167, 5473, 10561, 44899, 130879}}, +{11976, 17, 53195, {1, 1, 7, 11, 9, 61, 61, 113, 81, 205, 731, 3887, 5525, 13415, 25181, 11557, 59343}}, +{11977, 17, 53200, {1, 3, 7, 5, 19, 27, 107, 89, 295, 715, 1439, 1285, 5813, 8895, 7233, 32905, 3273}}, +{11978, 17, 53212, {1, 1, 5, 1, 29, 11, 125, 253, 445, 295, 1721, 1271, 2203, 2215, 7613, 55655, 112157}}, +{11979, 17, 53219, {1, 1, 5, 11, 11, 13, 111, 55, 19, 551, 1365, 477, 2513, 12311, 22485, 23291, 92447}}, +{11980, 17, 53221, {1, 1, 7, 11, 9, 5, 3, 109, 507, 441, 1767, 1781, 3077, 219, 29293, 21237, 71159}}, +{11981, 17, 53245, {1, 1, 3, 11, 3, 45, 99, 113, 367, 569, 1907, 1281, 51, 13693, 14639, 32999, 77461}}, +{11982, 17, 53254, {1, 3, 5, 11, 5, 19, 97, 11, 473, 937, 1623, 1507, 3245, 9331, 16005, 37505, 40085}}, +{11983, 17, 53257, {1, 1, 7, 13, 21, 61, 103, 111, 35, 141, 61, 1043, 1989, 1311, 29021, 2617, 89915}}, +{11984, 17, 53265, {1, 3, 7, 15, 19, 31, 39, 175, 371, 459, 1293, 1645, 1125, 1199, 4811, 55721, 76071}}, +{11985, 17, 53266, {1, 1, 7, 3, 3, 35, 17, 7, 91, 317, 1615, 3559, 191, 2579, 15027, 58711, 36009}}, +{11986, 17, 53268, {1, 1, 1, 13, 1, 27, 45, 87, 443, 443, 853, 3917, 1437, 4053, 14861, 2897, 109853}}, +{11987, 17, 53275, {1, 1, 5, 3, 21, 47, 73, 195, 115, 517, 1781, 2341, 805, 5679, 12053, 29113, 100479}}, +{11988, 17, 53277, {1, 1, 7, 1, 25, 27, 61, 167, 203, 57, 527, 1071, 7131, 8403, 9943, 11503, 33081}}, +{11989, 17, 53284, {1, 1, 5, 13, 31, 43, 35, 195, 177, 229, 1401, 4011, 2363, 15787, 21125, 32103, 62337}}, +{11990, 17, 53294, {1, 1, 5, 11, 19, 13, 3, 249, 119, 35, 747, 1419, 5451, 13043, 19813, 54859, 94825}}, +{11991, 17, 53308, {1, 3, 1, 9, 17, 13, 51, 125, 391, 157, 1199, 1805, 1763, 11831, 20915, 38547, 14221}}, +{11992, 17, 53314, {1, 1, 7, 1, 23, 61, 25, 69, 435, 183, 1379, 1211, 5529, 9447, 4575, 14127, 91867}}, +{11993, 17, 53319, {1, 3, 3, 15, 11, 15, 101, 135, 419, 685, 1097, 787, 2045, 3393, 26221, 23653, 116917}}, +{11994, 17, 53326, {1, 3, 1, 11, 29, 23, 13, 153, 27, 683, 1569, 413, 261, 10291, 23763, 15579, 39337}}, +{11995, 17, 53328, {1, 3, 7, 7, 19, 23, 121, 23, 339, 165, 1137, 2791, 319, 16111, 14847, 28171, 79237}}, +{11996, 17, 53340, {1, 3, 1, 5, 9, 59, 33, 19, 191, 707, 1883, 1683, 1161, 12905, 12299, 22201, 19811}}, +{11997, 17, 53364, {1, 3, 1, 3, 27, 11, 69, 199, 415, 251, 1079, 1709, 4539, 7867, 21321, 33617, 53459}}, +{11998, 17, 53367, {1, 1, 3, 9, 19, 59, 21, 95, 275, 213, 1819, 721, 6271, 11845, 9573, 16105, 12755}}, +{11999, 17, 53377, {1, 1, 1, 15, 23, 7, 91, 235, 43, 95, 913, 715, 3229, 12339, 23089, 30963, 129525}}, +{12000, 17, 53395, {1, 1, 7, 9, 7, 41, 43, 131, 485, 621, 1293, 1955, 5215, 6545, 29225, 53587, 46901}}, +{12001, 17, 53398, {1, 3, 1, 5, 7, 57, 97, 199, 225, 707, 1223, 1829, 497, 12587, 24551, 12907, 82411}}, +{12002, 17, 53407, {1, 1, 3, 7, 21, 9, 63, 15, 263, 957, 155, 4021, 4455, 2025, 16981, 19743, 88619}}, +{12003, 17, 53413, {1, 1, 7, 5, 31, 3, 27, 45, 369, 747, 1559, 1429, 8049, 15069, 19897, 50067, 52861}}, +{12004, 17, 53414, {1, 1, 5, 13, 23, 35, 91, 139, 73, 275, 207, 2709, 3801, 12755, 19155, 61629, 5513}}, +{12005, 17, 53417, {1, 1, 5, 7, 5, 25, 33, 45, 325, 847, 81, 891, 3191, 14115, 25095, 39867, 3839}}, +{12006, 17, 53443, {1, 3, 5, 13, 9, 31, 31, 113, 507, 833, 691, 2041, 4873, 81, 21365, 35265, 37627}}, +{12007, 17, 53473, {1, 1, 5, 13, 9, 51, 127, 131, 285, 683, 593, 3411, 6685, 3601, 12255, 8337, 80597}}, +{12008, 17, 53476, {1, 1, 5, 15, 29, 13, 79, 199, 157, 421, 1697, 2063, 2213, 4141, 21045, 45785, 124023}}, +{12009, 17, 53480, {1, 3, 1, 11, 19, 5, 79, 57, 71, 373, 487, 671, 3671, 9093, 20989, 48477, 104951}}, +{12010, 17, 53486, {1, 3, 5, 15, 13, 7, 39, 243, 507, 739, 1905, 3431, 4141, 9345, 27877, 64735, 112997}}, +{12011, 17, 53506, {1, 3, 3, 5, 17, 25, 31, 243, 393, 61, 199, 2825, 6981, 5887, 22289, 9201, 77689}}, +{12012, 17, 53542, {1, 3, 5, 15, 15, 63, 77, 39, 463, 883, 671, 3285, 6925, 15085, 1665, 64005, 130619}}, +{12013, 17, 53546, {1, 3, 3, 11, 21, 15, 7, 115, 9, 879, 1097, 3993, 3929, 9809, 22105, 9549, 31819}}, +{12014, 17, 53554, {1, 1, 7, 15, 3, 9, 19, 97, 327, 105, 1915, 205, 3873, 1229, 29915, 57375, 108217}}, +{12015, 17, 53563, {1, 1, 3, 11, 29, 41, 77, 11, 183, 73, 1651, 3739, 3911, 8695, 15339, 19293, 1827}}, +{12016, 17, 53580, {1, 1, 1, 5, 23, 49, 35, 175, 99, 49, 615, 1733, 6901, 2351, 18765, 55553, 99791}}, +{12017, 17, 53591, {1, 3, 7, 3, 25, 17, 67, 161, 507, 941, 35, 2619, 339, 791, 6485, 64277, 123867}}, +{12018, 17, 53598, {1, 1, 3, 13, 11, 9, 79, 193, 75, 391, 1753, 3537, 6971, 6607, 11933, 4447, 87793}}, +{12019, 17, 53611, {1, 1, 1, 5, 19, 9, 63, 203, 51, 395, 1365, 2393, 7265, 11709, 13721, 4519, 118765}}, +{12020, 17, 53621, {1, 1, 3, 9, 17, 53, 29, 103, 325, 973, 903, 785, 7535, 9951, 8121, 12603, 38679}}, +{12021, 17, 53625, {1, 3, 1, 7, 7, 63, 1, 123, 439, 181, 1373, 2705, 995, 10789, 7495, 54543, 120109}}, +{12022, 17, 53628, {1, 1, 7, 3, 17, 13, 79, 179, 165, 965, 1537, 3753, 3497, 12127, 6983, 48605, 113057}}, +{12023, 17, 53632, {1, 1, 5, 7, 3, 7, 41, 25, 267, 633, 19, 1317, 3445, 12377, 27881, 55249, 40841}}, +{12024, 17, 53650, {1, 3, 5, 1, 31, 55, 43, 129, 411, 281, 1, 851, 2419, 7943, 13721, 39371, 114557}}, +{12025, 17, 53655, {1, 1, 7, 7, 23, 19, 83, 37, 9, 161, 125, 3179, 7973, 9703, 23199, 32723, 130915}}, +{12026, 17, 53675, {1, 1, 7, 5, 27, 21, 11, 219, 403, 239, 1723, 2957, 3029, 9911, 10981, 35421, 74025}}, +{12027, 17, 53677, {1, 3, 1, 1, 31, 59, 69, 77, 395, 1, 157, 1259, 4913, 2089, 17619, 51033, 130899}}, +{12028, 17, 53680, {1, 3, 3, 3, 19, 11, 83, 237, 103, 921, 487, 1833, 8187, 3811, 18887, 9389, 80927}}, +{12029, 17, 53683, {1, 3, 7, 3, 17, 51, 107, 209, 187, 831, 1501, 1337, 803, 10361, 11347, 65291, 42219}}, +{12030, 17, 53700, {1, 3, 3, 15, 7, 29, 61, 25, 413, 257, 1185, 4009, 7463, 1839, 6645, 28389, 14449}}, +{12031, 17, 53709, {1, 3, 1, 9, 5, 31, 83, 55, 375, 399, 945, 997, 7649, 12631, 7691, 53325, 50173}}, +{12032, 17, 53724, {1, 1, 5, 9, 13, 9, 83, 37, 487, 975, 487, 3587, 7285, 7505, 10155, 673, 126505}}, +{12033, 17, 53731, {1, 3, 5, 7, 21, 3, 35, 21, 367, 323, 1579, 3351, 5465, 13719, 17033, 42573, 55079}}, +{12034, 17, 53733, {1, 3, 3, 15, 11, 27, 121, 109, 267, 855, 1417, 3839, 6535, 1051, 29355, 23815, 76031}}, +{12035, 17, 53738, {1, 1, 7, 9, 5, 31, 35, 53, 369, 137, 1545, 927, 825, 1333, 13637, 11003, 96963}}, +{12036, 17, 53762, {1, 1, 5, 3, 29, 41, 31, 85, 35, 477, 227, 3325, 1213, 681, 14591, 31325, 12199}}, +{12037, 17, 53767, {1, 3, 7, 11, 11, 11, 33, 255, 335, 747, 855, 31, 6101, 293, 20423, 47521, 62573}}, +{12038, 17, 53785, {1, 1, 1, 15, 31, 15, 33, 175, 321, 441, 1197, 3579, 4989, 9275, 30485, 1077, 122947}}, +{12039, 17, 53786, {1, 3, 5, 15, 23, 21, 127, 223, 249, 373, 1309, 1469, 5701, 9097, 29897, 26627, 38489}}, +{12040, 17, 53795, {1, 3, 7, 3, 3, 35, 83, 149, 259, 315, 1467, 1953, 6035, 7961, 10901, 25171, 130713}}, +{12041, 17, 53802, {1, 1, 3, 9, 7, 63, 55, 33, 375, 421, 151, 1721, 1999, 14937, 17539, 48323, 97345}}, +{12042, 17, 53812, {1, 1, 5, 5, 3, 21, 47, 19, 227, 131, 1591, 3779, 929, 13879, 13489, 19805, 20135}}, +{12043, 17, 53821, {1, 1, 7, 1, 31, 25, 87, 125, 213, 135, 809, 3067, 5035, 7407, 2193, 31423, 123973}}, +{12044, 17, 53827, {1, 3, 5, 13, 17, 19, 77, 169, 345, 115, 227, 649, 3609, 15063, 1895, 17533, 95859}}, +{12045, 17, 53833, {1, 3, 5, 15, 17, 29, 17, 11, 145, 601, 1871, 851, 8161, 14029, 10039, 4247, 62393}}, +{12046, 17, 53841, {1, 1, 7, 13, 25, 5, 49, 231, 261, 71, 335, 4081, 7915, 11367, 17087, 26041, 128737}}, +{12047, 17, 53848, {1, 1, 1, 13, 13, 21, 77, 113, 373, 1005, 109, 2877, 3001, 15011, 2465, 37015, 69049}}, +{12048, 17, 53869, {1, 1, 3, 15, 31, 33, 119, 121, 41, 9, 1567, 577, 1687, 12117, 17049, 675, 10729}}, +{12049, 17, 53897, {1, 3, 5, 11, 31, 7, 47, 41, 127, 81, 273, 1649, 975, 3953, 17021, 24163, 12599}}, +{12050, 17, 53905, {1, 3, 1, 3, 27, 41, 75, 237, 317, 85, 1995, 2255, 2191, 6441, 26629, 25797, 97681}}, +{12051, 17, 53912, {1, 1, 1, 3, 11, 5, 31, 109, 227, 977, 59, 793, 3305, 10905, 16529, 21345, 2403}}, +{12052, 17, 53921, {1, 3, 5, 9, 9, 37, 107, 129, 421, 383, 1415, 885, 3383, 9547, 7303, 41745, 59919}}, +{12053, 17, 53928, {1, 1, 7, 7, 29, 27, 59, 177, 97, 299, 1019, 1393, 7763, 5715, 9253, 58035, 23431}}, +{12054, 17, 53948, {1, 3, 3, 3, 23, 13, 51, 101, 75, 857, 1699, 2687, 3983, 10427, 19845, 49503, 96033}}, +{12055, 17, 53954, {1, 1, 1, 7, 21, 51, 25, 71, 265, 999, 1259, 625, 775, 11045, 20769, 42597, 115521}}, +{12056, 17, 53968, {1, 3, 1, 13, 25, 47, 21, 245, 201, 667, 1193, 1087, 407, 6057, 14929, 35291, 57615}}, +{12057, 17, 53977, {1, 1, 1, 7, 27, 25, 93, 85, 321, 1009, 1045, 1901, 349, 11393, 10917, 10413, 94125}}, +{12058, 17, 53983, {1, 1, 1, 15, 3, 63, 59, 51, 307, 135, 785, 1921, 6921, 5689, 8487, 21061, 69903}}, +{12059, 17, 53984, {1, 3, 7, 1, 13, 47, 59, 155, 107, 573, 843, 2849, 6685, 5927, 31747, 21541, 94271}}, +{12060, 17, 54002, {1, 1, 7, 15, 23, 7, 85, 169, 209, 527, 1027, 3745, 4773, 14893, 10789, 1243, 87133}}, +{12061, 17, 54007, {1, 1, 5, 9, 1, 1, 53, 57, 245, 899, 1785, 1951, 7651, 10909, 30167, 40789, 66965}}, +{12062, 17, 54013, {1, 1, 1, 7, 17, 33, 65, 79, 455, 677, 157, 1313, 1573, 9697, 4161, 4609, 42783}}, +{12063, 17, 54014, {1, 3, 7, 7, 27, 15, 109, 113, 239, 521, 563, 2493, 1471, 15817, 14515, 48465, 66009}}, +{12064, 17, 54021, {1, 3, 5, 3, 29, 33, 125, 169, 483, 593, 1665, 657, 3799, 15829, 29591, 25813, 40987}}, +{12065, 17, 54026, {1, 3, 1, 11, 15, 25, 21, 215, 341, 241, 1599, 3807, 6633, 15137, 15377, 56881, 47499}}, +{12066, 17, 54028, {1, 3, 3, 3, 15, 49, 89, 117, 191, 641, 675, 2671, 4243, 1617, 20261, 42669, 119173}}, +{12067, 17, 54031, {1, 1, 1, 13, 13, 43, 73, 103, 183, 239, 555, 2121, 4889, 1431, 20601, 21545, 11809}}, +{12068, 17, 54036, {1, 3, 1, 9, 9, 9, 121, 51, 77, 455, 1481, 427, 1961, 12149, 21273, 16295, 21909}}, +{12069, 17, 54067, {1, 1, 5, 11, 19, 55, 37, 63, 493, 663, 945, 2191, 2491, 11545, 7407, 36295, 94293}}, +{12070, 17, 54069, {1, 3, 5, 15, 25, 35, 103, 33, 171, 425, 409, 5, 2519, 2239, 30557, 20007, 69079}}, +{12071, 17, 54074, {1, 1, 5, 11, 13, 29, 71, 21, 35, 833, 191, 365, 7013, 12413, 10227, 56705, 61705}}, +{12072, 17, 54076, {1, 1, 1, 1, 21, 13, 87, 113, 63, 537, 283, 925, 2147, 1683, 31239, 2775, 131021}}, +{12073, 17, 54105, {1, 1, 3, 9, 23, 1, 117, 19, 487, 235, 877, 149, 369, 9615, 12501, 60175, 35741}}, +{12074, 17, 54111, {1, 1, 7, 9, 5, 25, 107, 199, 339, 755, 245, 2861, 1119, 14683, 2221, 5227, 81479}}, +{12075, 17, 54118, {1, 1, 1, 15, 5, 15, 37, 63, 511, 219, 783, 3245, 5563, 13231, 22311, 16803, 10393}}, +{12076, 17, 54129, {1, 3, 7, 5, 1, 15, 9, 21, 287, 991, 555, 771, 7683, 1661, 6553, 43735, 118713}}, +{12077, 17, 54145, {1, 3, 1, 3, 3, 29, 119, 157, 13, 599, 537, 2921, 5207, 11621, 1515, 6351, 118429}}, +{12078, 17, 54157, {1, 1, 5, 1, 27, 39, 111, 117, 481, 25, 549, 913, 6427, 7703, 23099, 50501, 7617}}, +{12079, 17, 54158, {1, 1, 7, 5, 29, 63, 43, 151, 63, 43, 197, 3165, 3879, 12435, 461, 64475, 60597}}, +{12080, 17, 54163, {1, 3, 1, 11, 31, 35, 59, 207, 387, 441, 1293, 2117, 3751, 12653, 2811, 42585, 33297}}, +{12081, 17, 54166, {1, 3, 7, 15, 27, 47, 13, 15, 135, 433, 615, 1, 171, 11503, 27117, 64635, 122191}}, +{12082, 17, 54172, {1, 1, 7, 1, 23, 23, 107, 135, 311, 395, 373, 2771, 81, 12513, 16739, 6715, 94999}}, +{12083, 17, 54185, {1, 3, 5, 7, 19, 9, 21, 139, 307, 231, 65, 59, 7767, 2897, 3503, 58163, 48807}}, +{12084, 17, 54186, {1, 3, 5, 13, 23, 5, 51, 247, 125, 911, 1395, 1337, 3215, 15811, 12729, 21495, 22597}}, +{12085, 17, 54188, {1, 3, 5, 5, 1, 19, 123, 125, 197, 533, 1699, 1397, 3473, 15201, 24493, 3395, 98261}}, +{12086, 17, 54208, {1, 1, 3, 7, 29, 39, 69, 97, 353, 293, 1103, 543, 5015, 9913, 6965, 61921, 122073}}, +{12087, 17, 54223, {1, 1, 3, 13, 19, 41, 117, 253, 449, 231, 865, 3055, 4751, 3277, 22863, 3249, 38359}}, +{12088, 17, 54237, {1, 3, 5, 13, 9, 7, 107, 17, 251, 501, 1925, 3733, 5035, 13213, 12535, 13705, 73047}}, +{12089, 17, 54241, {1, 3, 7, 5, 23, 5, 83, 45, 457, 667, 913, 1167, 7063, 10915, 10911, 20501, 61823}}, +{12090, 17, 54244, {1, 3, 3, 13, 7, 15, 29, 223, 503, 713, 667, 3989, 5927, 5909, 27633, 17615, 97931}}, +{12091, 17, 54259, {1, 3, 7, 13, 19, 53, 25, 41, 311, 327, 1323, 3361, 1095, 12701, 1065, 34155, 34705}}, +{12092, 17, 54273, {1, 1, 7, 7, 11, 35, 63, 73, 179, 477, 467, 4043, 3097, 16089, 12749, 18233, 50299}}, +{12093, 17, 54276, {1, 3, 3, 13, 5, 27, 31, 207, 357, 469, 607, 961, 7393, 6707, 25833, 22337, 119083}}, +{12094, 17, 54280, {1, 1, 3, 3, 7, 53, 47, 55, 267, 107, 1307, 2151, 793, 15605, 12153, 13075, 76529}}, +{12095, 17, 54294, {1, 3, 5, 1, 13, 35, 63, 191, 375, 221, 1603, 2049, 5363, 1481, 32271, 22635, 118603}}, +{12096, 17, 54298, {1, 1, 1, 11, 17, 63, 13, 3, 353, 943, 443, 141, 7441, 12335, 4499, 15923, 63677}}, +{12097, 17, 54303, {1, 3, 7, 13, 21, 51, 125, 61, 203, 1, 707, 3893, 4627, 3125, 14629, 62721, 85101}}, +{12098, 17, 54304, {1, 1, 3, 5, 31, 23, 63, 241, 41, 721, 599, 1761, 2593, 1685, 31247, 7811, 87561}}, +{12099, 17, 54309, {1, 1, 7, 9, 7, 53, 51, 9, 303, 675, 1261, 1591, 4363, 15, 29723, 54533, 103869}}, +{12100, 17, 54310, {1, 3, 5, 7, 27, 21, 103, 113, 463, 379, 635, 2363, 607, 11445, 22475, 58433, 93071}}, +{12101, 17, 54316, {1, 1, 5, 5, 5, 63, 23, 67, 399, 279, 829, 945, 6545, 14951, 5135, 22889, 87625}}, +{12102, 17, 54336, {1, 1, 7, 15, 1, 59, 69, 123, 169, 821, 1125, 2051, 3375, 11691, 1379, 57461, 124209}}, +{12103, 17, 54354, {1, 1, 5, 15, 31, 57, 51, 59, 297, 459, 701, 241, 2801, 11893, 4007, 13165, 79403}}, +{12104, 17, 54359, {1, 1, 5, 9, 11, 41, 79, 47, 19, 529, 21, 1871, 371, 6269, 7433, 36183, 96113}}, +{12105, 17, 54375, {1, 1, 7, 5, 29, 3, 33, 191, 119, 501, 1637, 2903, 3347, 4581, 17407, 18169, 10595}}, +{12106, 17, 54376, {1, 3, 5, 11, 9, 35, 95, 193, 413, 727, 1157, 3331, 5993, 1781, 22653, 3975, 110557}}, +{12107, 17, 54381, {1, 1, 1, 1, 23, 5, 35, 65, 57, 515, 569, 4031, 7983, 4603, 29419, 44847, 63601}}, +{12108, 17, 54390, {1, 3, 1, 7, 21, 5, 77, 23, 317, 803, 723, 3229, 7171, 2883, 10943, 50323, 108579}}, +{12109, 17, 54396, {1, 3, 5, 11, 15, 53, 75, 127, 177, 19, 501, 1201, 5113, 9069, 8817, 14725, 104737}}, +{12110, 17, 54399, {1, 3, 7, 9, 7, 39, 5, 121, 409, 103, 1075, 451, 7603, 16023, 32557, 43159, 94385}}, +{12111, 17, 54409, {1, 3, 1, 11, 29, 57, 123, 141, 57, 945, 1777, 2427, 2359, 12839, 7325, 7945, 129811}}, +{12112, 17, 54424, {1, 3, 5, 15, 5, 3, 17, 55, 467, 61, 131, 2891, 6331, 5859, 20437, 49425, 80731}}, +{12113, 17, 54434, {1, 1, 1, 15, 29, 13, 127, 181, 361, 1019, 1675, 2755, 6533, 8957, 14691, 4285, 65459}}, +{12114, 17, 54436, {1, 1, 7, 11, 23, 43, 111, 183, 103, 269, 229, 3291, 1873, 11349, 29319, 64829, 19639}}, +{12115, 17, 54439, {1, 3, 7, 11, 15, 63, 1, 253, 489, 863, 1707, 2769, 3201, 7901, 18161, 12515, 130237}}, +{12116, 17, 54445, {1, 3, 1, 7, 1, 25, 43, 159, 505, 511, 1745, 1421, 6779, 11103, 23535, 61129, 124571}}, +{12117, 17, 54448, {1, 1, 3, 13, 19, 33, 17, 243, 481, 617, 1061, 1891, 7165, 6821, 18505, 8965, 70179}}, +{12118, 17, 54457, {1, 1, 7, 13, 17, 17, 65, 23, 255, 361, 1873, 1605, 2041, 11119, 11419, 63131, 49207}}, +{12119, 17, 54465, {1, 1, 5, 13, 15, 57, 27, 223, 199, 529, 1115, 1513, 8083, 11713, 21005, 50741, 122223}}, +{12120, 17, 54471, {1, 3, 5, 15, 29, 35, 107, 85, 141, 505, 1553, 1283, 4581, 5077, 9461, 59853, 23219}}, +{12121, 17, 54472, {1, 3, 5, 11, 11, 45, 53, 195, 199, 773, 1911, 721, 1563, 3769, 3267, 30673, 80313}}, +{12122, 17, 54485, {1, 3, 7, 7, 21, 37, 9, 129, 431, 79, 1559, 2125, 7781, 6441, 23533, 46919, 25315}}, +{12123, 17, 54508, {1, 1, 5, 15, 11, 61, 77, 231, 349, 647, 225, 85, 6789, 12557, 6505, 21985, 54965}}, +{12124, 17, 54513, {1, 1, 5, 1, 19, 21, 33, 211, 347, 491, 1119, 1619, 3739, 11255, 26705, 59691, 35337}}, +{12125, 17, 54528, {1, 1, 3, 3, 29, 15, 7, 23, 279, 145, 699, 289, 475, 1681, 3201, 64477, 24919}}, +{12126, 17, 54534, {1, 1, 7, 7, 23, 53, 75, 71, 315, 403, 1521, 1417, 3749, 11243, 3951, 61039, 51143}}, +{12127, 17, 54537, {1, 3, 7, 3, 15, 21, 81, 219, 249, 387, 1405, 3495, 7143, 2599, 25435, 15259, 66069}}, +{12128, 17, 54540, {1, 1, 5, 7, 31, 9, 63, 55, 409, 421, 1851, 847, 1593, 10447, 2833, 13209, 47285}}, +{12129, 17, 54551, {1, 1, 3, 7, 15, 3, 35, 49, 253, 21, 1705, 357, 2751, 9671, 12429, 4549, 118691}}, +{12130, 17, 54561, {1, 1, 5, 15, 1, 3, 97, 197, 43, 923, 1273, 663, 4291, 12357, 28221, 15291, 60989}}, +{12131, 17, 54573, {1, 1, 7, 7, 15, 3, 35, 115, 449, 641, 743, 1855, 359, 10983, 2831, 43983, 56465}}, +{12132, 17, 54579, {1, 3, 7, 11, 1, 51, 69, 27, 29, 187, 1673, 1273, 7987, 1223, 8971, 53805, 4413}}, +{12133, 17, 54586, {1, 1, 3, 11, 1, 55, 91, 241, 35, 97, 1027, 3967, 703, 3535, 21681, 55825, 50423}}, +{12134, 17, 54591, {1, 1, 7, 11, 21, 53, 111, 125, 11, 355, 1585, 3603, 1705, 16311, 7045, 15503, 63625}}, +{12135, 17, 54596, {1, 1, 5, 15, 25, 47, 31, 29, 333, 361, 1831, 1545, 7751, 8679, 32453, 61755, 94637}}, +{12136, 17, 54599, {1, 1, 3, 3, 23, 3, 79, 11, 367, 551, 281, 1273, 5097, 12527, 473, 33855, 85783}}, +{12137, 17, 54605, {1, 1, 1, 15, 27, 21, 107, 121, 187, 495, 1877, 1957, 3647, 13263, 30729, 18131, 33689}}, +{12138, 17, 54613, {1, 1, 5, 13, 3, 43, 41, 53, 127, 299, 839, 3327, 7929, 9921, 29471, 18075, 34283}}, +{12139, 17, 54623, {1, 1, 7, 13, 31, 5, 59, 75, 335, 929, 379, 139, 7121, 9281, 31161, 3177, 2615}}, +{12140, 17, 54654, {1, 3, 7, 1, 11, 19, 81, 199, 425, 639, 497, 693, 1271, 7363, 10543, 52513, 130549}}, +{12141, 17, 54667, {1, 3, 3, 7, 21, 41, 101, 67, 363, 5, 1455, 1433, 81, 15609, 16231, 13285, 38995}}, +{12142, 17, 54681, {1, 1, 3, 15, 11, 19, 123, 177, 429, 27, 141, 3095, 5379, 2241, 29877, 59383, 25199}}, +{12143, 17, 54684, {1, 1, 7, 7, 19, 63, 93, 217, 279, 349, 149, 2479, 2355, 6475, 29993, 37941, 58715}}, +{12144, 17, 54687, {1, 3, 7, 3, 21, 23, 59, 177, 489, 817, 1209, 1629, 5805, 3137, 23767, 62967, 16609}}, +{12145, 17, 54694, {1, 3, 3, 7, 9, 55, 59, 31, 191, 891, 833, 1059, 3007, 2331, 385, 58247, 110697}}, +{12146, 17, 54706, {1, 1, 3, 3, 11, 61, 9, 189, 79, 621, 209, 2785, 2959, 4133, 20691, 45605, 117089}}, +{12147, 17, 54712, {1, 3, 3, 5, 5, 47, 31, 1, 451, 765, 2027, 2327, 1725, 14341, 7997, 6449, 77893}}, +{12148, 17, 54715, {1, 1, 7, 1, 7, 27, 27, 129, 227, 505, 1461, 783, 945, 12653, 17913, 61631, 41875}}, +{12149, 17, 54723, {1, 1, 1, 11, 13, 41, 41, 221, 483, 825, 451, 493, 1717, 10389, 7805, 37707, 30733}}, +{12150, 17, 54725, {1, 1, 5, 3, 31, 31, 75, 3, 323, 83, 563, 919, 7387, 1673, 6157, 7415, 14947}}, +{12151, 17, 54726, {1, 1, 7, 13, 19, 37, 29, 93, 153, 491, 1033, 1389, 6361, 11133, 20049, 24585, 107325}}, +{12152, 17, 54740, {1, 1, 1, 15, 3, 35, 79, 251, 383, 665, 2033, 3165, 3411, 15965, 28281, 56521, 56479}}, +{12153, 17, 54750, {1, 3, 1, 15, 23, 1, 87, 145, 443, 405, 635, 1597, 1455, 5983, 12741, 55133, 2815}}, +{12154, 17, 54760, {1, 1, 1, 13, 11, 25, 19, 129, 23, 913, 1121, 223, 1991, 13449, 30443, 50573, 108467}}, +{12155, 17, 54768, {1, 1, 7, 11, 29, 31, 49, 51, 415, 293, 173, 4091, 159, 2679, 30643, 58725, 109287}}, +{12156, 17, 54771, {1, 1, 1, 7, 15, 53, 69, 231, 387, 693, 1299, 1383, 7935, 10313, 22403, 59341, 3347}}, +{12157, 17, 54773, {1, 3, 3, 5, 9, 21, 111, 11, 469, 109, 1565, 3107, 2975, 12491, 26773, 33245, 27589}}, +{12158, 17, 54796, {1, 1, 3, 5, 3, 9, 103, 127, 345, 301, 857, 2035, 3269, 13819, 7555, 5197, 94557}}, +{12159, 17, 54801, {1, 3, 7, 3, 31, 3, 61, 253, 221, 359, 1281, 1405, 4819, 1329, 17773, 29539, 127043}}, +{12160, 17, 54808, {1, 1, 7, 11, 17, 47, 105, 253, 253, 531, 119, 2009, 6125, 9387, 13141, 29079, 28361}}, +{12161, 17, 54814, {1, 1, 3, 5, 21, 13, 21, 223, 79, 819, 1425, 1001, 6517, 8883, 29997, 30637, 7717}}, +{12162, 17, 54837, {1, 3, 1, 3, 1, 23, 113, 69, 235, 95, 1873, 689, 4611, 13209, 12681, 16057, 114071}}, +{12163, 17, 54847, {1, 3, 3, 13, 25, 21, 93, 55, 253, 373, 1659, 829, 6539, 7453, 28195, 33131, 92559}}, +{12164, 17, 54849, {1, 1, 3, 11, 25, 29, 81, 235, 429, 811, 1867, 2923, 5949, 4423, 93, 64631, 48357}}, +{12165, 17, 54864, {1, 3, 5, 13, 29, 27, 35, 15, 105, 849, 247, 3999, 6441, 12443, 19817, 49897, 21515}}, +{12166, 17, 54867, {1, 1, 5, 15, 13, 59, 3, 199, 267, 463, 655, 3875, 2895, 13411, 5081, 22069, 6053}}, +{12167, 17, 54889, {1, 1, 5, 9, 5, 13, 111, 83, 281, 543, 629, 1349, 1863, 9523, 19201, 39229, 78265}}, +{12168, 17, 54895, {1, 3, 7, 1, 29, 23, 109, 75, 347, 643, 97, 1981, 2797, 11201, 28355, 54105, 45551}}, +{12169, 17, 54907, {1, 3, 1, 7, 9, 5, 77, 17, 179, 957, 621, 779, 7117, 1491, 11563, 10131, 98335}}, +{12170, 17, 54919, {1, 3, 3, 1, 3, 53, 39, 217, 309, 105, 485, 3123, 3143, 2359, 4923, 22307, 120319}}, +{12171, 17, 54923, {1, 1, 7, 7, 11, 5, 65, 165, 321, 455, 625, 2417, 999, 14999, 6777, 13319, 43399}}, +{12172, 17, 54926, {1, 1, 7, 3, 11, 55, 43, 119, 135, 129, 581, 3593, 3475, 14667, 30509, 5007, 120135}}, +{12173, 17, 54940, {1, 1, 1, 11, 7, 17, 95, 169, 401, 87, 1425, 1821, 7619, 3605, 10993, 35837, 87311}}, +{12174, 17, 54950, {1, 1, 7, 11, 11, 35, 29, 63, 395, 301, 373, 2457, 6859, 1915, 11215, 41075, 78219}}, +{12175, 17, 54954, {1, 3, 5, 7, 25, 3, 97, 43, 273, 459, 103, 3441, 71, 10269, 29893, 46053, 104801}}, +{12176, 17, 54961, {1, 3, 3, 7, 31, 3, 121, 255, 73, 783, 977, 513, 6527, 1189, 8925, 23245, 22287}}, +{12177, 17, 54973, {1, 3, 3, 13, 15, 53, 51, 135, 465, 341, 263, 1687, 4085, 14257, 18745, 46945, 115475}}, +{12178, 17, 54974, {1, 3, 1, 5, 31, 1, 1, 91, 511, 771, 1501, 2613, 991, 3859, 28911, 65417, 201}}, +{12179, 17, 54976, {1, 1, 7, 1, 27, 21, 107, 153, 163, 949, 811, 3087, 3443, 5621, 28795, 58311, 63763}}, +{12180, 17, 54986, {1, 1, 7, 5, 29, 29, 57, 175, 29, 821, 1545, 2643, 725, 16225, 29111, 19675, 129995}}, +{12181, 17, 54993, {1, 1, 7, 3, 31, 31, 61, 155, 265, 323, 1829, 3891, 6393, 8573, 10627, 10839, 78683}}, +{12182, 17, 55000, {1, 3, 5, 7, 29, 7, 67, 181, 313, 731, 1761, 1681, 3673, 8939, 811, 48931, 82021}}, +{12183, 17, 55010, {1, 3, 1, 3, 11, 51, 81, 67, 173, 881, 855, 3627, 1613, 4825, 7035, 36261, 64899}}, +{12184, 17, 55019, {1, 3, 7, 7, 15, 53, 123, 41, 265, 817, 807, 3875, 7675, 16225, 13313, 62217, 47647}}, +{12185, 17, 55021, {1, 1, 3, 13, 23, 47, 125, 155, 403, 651, 1693, 2185, 5565, 9947, 20893, 11287, 118943}}, +{12186, 17, 55030, {1, 3, 7, 3, 19, 47, 69, 5, 209, 259, 367, 3929, 7579, 12687, 18109, 51885, 128281}}, +{12187, 17, 55033, {1, 1, 7, 5, 27, 41, 45, 41, 205, 1001, 1509, 2649, 1141, 5355, 10265, 34131, 112111}}, +{12188, 17, 55039, {1, 3, 7, 5, 19, 41, 103, 63, 49, 25, 271, 793, 3217, 4741, 2563, 61333, 113205}}, +{12189, 17, 55047, {1, 3, 3, 15, 15, 35, 13, 233, 277, 673, 545, 545, 7419, 6707, 1867, 58873, 110027}}, +{12190, 17, 55048, {1, 1, 7, 3, 9, 23, 67, 55, 3, 1019, 2001, 2909, 7311, 9295, 26953, 43217, 54597}}, +{12191, 17, 55054, {1, 3, 5, 7, 13, 33, 67, 27, 75, 569, 1777, 791, 1223, 1805, 19167, 60537, 60039}}, +{12192, 17, 55059, {1, 1, 5, 13, 15, 61, 49, 59, 289, 907, 1055, 3579, 8169, 12119, 25479, 32867, 65343}}, +{12193, 17, 55068, {1, 3, 5, 9, 5, 63, 91, 225, 377, 469, 891, 891, 5115, 11487, 30151, 44357, 120077}}, +{12194, 17, 55071, {1, 1, 1, 15, 29, 59, 19, 51, 295, 585, 149, 497, 5837, 11629, 7825, 18129, 113797}}, +{12195, 17, 55075, {1, 1, 3, 7, 31, 25, 77, 209, 183, 337, 1753, 2703, 2559, 11847, 17349, 27359, 21771}}, +{12196, 17, 55077, {1, 1, 7, 7, 13, 23, 69, 61, 353, 339, 833, 1935, 4333, 10521, 20331, 62145, 59245}}, +{12197, 17, 55081, {1, 1, 5, 13, 19, 57, 35, 59, 203, 99, 487, 2747, 637, 8213, 27053, 29, 64335}}, +{12198, 17, 55095, {1, 3, 5, 7, 27, 5, 71, 147, 339, 313, 913, 2845, 5713, 4383, 18969, 54871, 51931}}, +{12199, 17, 55099, {1, 1, 1, 5, 7, 23, 19, 11, 111, 543, 311, 1519, 387, 10175, 18209, 14115, 123421}}, +{12200, 17, 55110, {1, 3, 7, 11, 7, 7, 123, 193, 417, 65, 1317, 3821, 2315, 14527, 14113, 25873, 23977}}, +{12201, 17, 55116, {1, 1, 3, 15, 21, 11, 3, 37, 115, 395, 877, 1227, 6997, 4357, 11397, 52855, 24899}}, +{12202, 17, 55122, {1, 1, 7, 5, 15, 45, 45, 17, 441, 605, 429, 739, 4759, 5249, 11311, 55049, 56909}}, +{12203, 17, 55134, {1, 1, 1, 5, 3, 5, 77, 31, 407, 703, 385, 235, 7751, 617, 16013, 27269, 66971}}, +{12204, 17, 55144, {1, 3, 3, 15, 25, 27, 19, 251, 465, 197, 1039, 3261, 4557, 4821, 16083, 43997, 61371}}, +{12205, 17, 55147, {1, 3, 3, 15, 21, 45, 13, 139, 213, 797, 619, 2125, 3805, 4149, 11427, 59807, 104587}}, +{12206, 17, 55158, {1, 3, 1, 1, 29, 27, 25, 7, 371, 535, 1613, 1083, 4221, 8913, 10601, 6447, 17619}}, +{12207, 17, 55162, {1, 1, 3, 3, 13, 35, 37, 127, 285, 899, 307, 123, 129, 14035, 26503, 64103, 27155}}, +{12208, 17, 55171, {1, 1, 7, 7, 27, 25, 45, 245, 271, 281, 69, 3505, 7087, 1529, 7121, 30327, 89131}}, +{12209, 17, 55185, {1, 1, 3, 11, 13, 57, 31, 23, 455, 427, 1683, 3019, 5827, 8817, 12943, 321, 39951}}, +{12210, 17, 55192, {1, 3, 1, 3, 31, 41, 69, 211, 385, 275, 1569, 2265, 4017, 11057, 15, 16619, 126967}}, +{12211, 17, 55197, {1, 3, 3, 1, 27, 27, 21, 145, 125, 929, 1371, 1469, 1591, 5283, 4651, 1265, 17161}}, +{12212, 17, 55207, {1, 3, 7, 5, 29, 31, 41, 141, 49, 967, 1421, 663, 6089, 3831, 11353, 38809, 108605}}, +{12213, 17, 55228, {1, 1, 7, 15, 11, 23, 91, 31, 9, 717, 265, 1729, 3563, 8145, 20441, 22933, 103683}}, +{12214, 17, 55246, {1, 1, 7, 3, 17, 13, 47, 13, 241, 1017, 1803, 2091, 7379, 2941, 11783, 36189, 53513}}, +{12215, 17, 55253, {1, 3, 1, 11, 31, 63, 107, 79, 427, 385, 1497, 1265, 5135, 13597, 27343, 56733, 100595}}, +{12216, 17, 55254, {1, 3, 7, 3, 9, 15, 119, 29, 205, 151, 1453, 3575, 3627, 7815, 3553, 31457, 14267}}, +{12217, 17, 55281, {1, 3, 1, 7, 15, 21, 73, 47, 417, 29, 1231, 2477, 161, 15997, 4457, 3939, 43929}}, +{12218, 17, 55300, {1, 1, 5, 5, 19, 49, 103, 251, 359, 69, 669, 299, 8161, 10579, 13999, 26859, 92199}}, +{12219, 17, 55303, {1, 1, 3, 1, 9, 27, 81, 7, 115, 29, 1067, 1933, 3061, 2885, 27883, 65227, 59365}}, +{12220, 17, 55307, {1, 1, 1, 5, 23, 17, 1, 113, 495, 155, 1673, 3945, 8053, 7935, 3537, 65141, 11809}}, +{12221, 17, 55312, {1, 1, 1, 15, 15, 59, 61, 213, 303, 851, 1893, 615, 6659, 9351, 16621, 6097, 114383}}, +{12222, 17, 55328, {1, 3, 1, 7, 19, 11, 95, 127, 277, 677, 1631, 2563, 3295, 7029, 4059, 44079, 128857}}, +{12223, 17, 55331, {1, 3, 7, 11, 27, 49, 99, 43, 279, 771, 123, 2969, 699, 12915, 22039, 62257, 79359}}, +{12224, 17, 55337, {1, 1, 7, 3, 19, 45, 45, 113, 251, 883, 715, 1541, 1573, 3345, 23855, 62681, 57591}}, +{12225, 17, 55348, {1, 1, 5, 15, 11, 1, 51, 15, 135, 519, 961, 1447, 4425, 2139, 3309, 35111, 74143}}, +{12226, 17, 55352, {1, 3, 7, 7, 17, 39, 109, 25, 11, 549, 315, 2175, 685, 11837, 9151, 6277, 45011}}, +{12227, 17, 55357, {1, 1, 1, 9, 27, 7, 95, 1, 385, 167, 453, 1027, 4105, 16351, 19, 10375, 62833}}, +{12228, 17, 55372, {1, 3, 7, 13, 17, 19, 107, 11, 441, 171, 185, 3567, 1245, 12161, 30257, 48105, 87105}}, +{12229, 17, 55375, {1, 3, 3, 9, 15, 5, 109, 225, 85, 919, 513, 3559, 5411, 9009, 27391, 25115, 84875}}, +{12230, 17, 55377, {1, 3, 3, 7, 11, 37, 81, 51, 121, 25, 1897, 2121, 6425, 16087, 4259, 29501, 118067}}, +{12231, 17, 55394, {1, 1, 7, 3, 5, 53, 73, 127, 137, 739, 543, 1723, 1163, 2791, 18519, 1459, 50869}}, +{12232, 17, 55406, {1, 1, 3, 11, 29, 51, 101, 189, 193, 839, 25, 3109, 3035, 3917, 23929, 38577, 129705}}, +{12233, 17, 55424, {1, 3, 7, 15, 9, 29, 93, 101, 271, 791, 1257, 1843, 2701, 8205, 15195, 9109, 120835}}, +{12234, 17, 55429, {1, 3, 3, 5, 29, 47, 31, 135, 483, 385, 1395, 2955, 7291, 12885, 9491, 14581, 66293}}, +{12235, 17, 55430, {1, 1, 7, 1, 5, 37, 105, 149, 63, 617, 1611, 3025, 3177, 15463, 3373, 3503, 95001}}, +{12236, 17, 55436, {1, 1, 5, 13, 1, 57, 19, 35, 127, 423, 1221, 1547, 4083, 347, 17131, 60087, 27437}}, +{12237, 17, 55439, {1, 3, 7, 9, 25, 1, 105, 39, 25, 921, 1897, 1729, 2207, 7761, 24197, 457, 64241}}, +{12238, 17, 55447, {1, 3, 7, 9, 15, 21, 13, 113, 379, 1021, 489, 1757, 5869, 4833, 24717, 52227, 3209}}, +{12239, 17, 55453, {1, 3, 1, 5, 9, 61, 25, 41, 183, 473, 383, 2259, 6939, 3, 32161, 6319, 93099}}, +{12240, 17, 55458, {1, 1, 5, 13, 13, 47, 97, 3, 357, 837, 1655, 485, 4251, 12153, 9013, 25121, 51877}}, +{12241, 17, 55460, {1, 1, 1, 15, 7, 59, 65, 119, 467, 313, 1333, 2007, 5165, 13935, 13679, 3999, 81811}}, +{12242, 17, 55478, {1, 1, 5, 13, 13, 1, 63, 117, 449, 13, 1017, 1583, 7599, 3669, 32699, 59455, 32363}}, +{12243, 17, 55489, {1, 1, 7, 9, 7, 15, 37, 251, 167, 25, 1085, 2067, 2771, 5737, 20661, 19231, 59547}}, +{12244, 17, 55501, {1, 1, 5, 13, 29, 11, 63, 37, 281, 657, 1567, 2879, 7601, 15617, 16527, 51695, 5583}}, +{12245, 17, 55502, {1, 1, 5, 3, 31, 17, 19, 65, 315, 413, 927, 3617, 4089, 11899, 3759, 47991, 1685}}, +{12246, 17, 55519, {1, 1, 1, 1, 13, 47, 89, 91, 379, 429, 283, 3765, 2923, 14955, 26399, 9579, 39817}}, +{12247, 17, 55525, {1, 1, 1, 9, 1, 17, 91, 119, 327, 291, 39, 2883, 6265, 553, 7559, 60577, 34393}}, +{12248, 17, 55530, {1, 3, 5, 5, 9, 33, 123, 219, 103, 529, 181, 1321, 6815, 2411, 10555, 43911, 18889}}, +{12249, 17, 55544, {1, 1, 5, 7, 9, 13, 7, 45, 427, 523, 1189, 255, 2103, 7217, 16249, 14631, 90409}}, +{12250, 17, 55550, {1, 1, 1, 9, 11, 35, 55, 71, 89, 637, 1417, 411, 5305, 10125, 20715, 62927, 4993}}, +{12251, 17, 55558, {1, 3, 1, 9, 1, 59, 27, 221, 267, 797, 1081, 951, 1369, 2677, 20763, 63301, 61963}}, +{12252, 17, 55561, {1, 3, 5, 5, 17, 9, 67, 177, 89, 953, 1329, 1649, 989, 7773, 28747, 26231, 42331}}, +{12253, 17, 55569, {1, 3, 3, 9, 23, 35, 17, 145, 53, 519, 1173, 2079, 2593, 3633, 32005, 30573, 55651}}, +{12254, 17, 55586, {1, 1, 7, 7, 17, 41, 47, 253, 107, 843, 9, 323, 2391, 3267, 25813, 1741, 93493}}, +{12255, 17, 55591, {1, 1, 1, 9, 31, 43, 47, 91, 235, 569, 2017, 2385, 5055, 5747, 26471, 48819, 47315}}, +{12256, 17, 55598, {1, 3, 5, 9, 1, 17, 87, 91, 55, 287, 995, 2577, 1151, 9119, 22791, 50899, 16423}}, +{12257, 17, 55605, {1, 3, 7, 1, 3, 29, 9, 193, 269, 201, 325, 2209, 1061, 7957, 23265, 65083, 27575}}, +{12258, 17, 55609, {1, 3, 7, 15, 27, 23, 37, 239, 165, 959, 1965, 2105, 1581, 6621, 17315, 49255, 62487}}, +{12259, 17, 55618, {1, 3, 7, 7, 11, 31, 73, 145, 429, 421, 571, 3375, 2797, 15889, 26523, 12315, 48061}}, +{12260, 17, 55630, {1, 3, 3, 15, 23, 27, 105, 75, 497, 137, 475, 1343, 537, 10499, 27807, 46623, 32435}}, +{12261, 17, 55642, {1, 1, 7, 15, 15, 11, 51, 107, 225, 557, 1461, 3447, 1243, 13827, 23675, 26139, 54603}}, +{12262, 17, 55644, {1, 3, 5, 5, 7, 25, 51, 3, 85, 371, 1503, 3217, 1779, 7141, 29471, 42247, 107699}}, +{12263, 17, 55653, {1, 3, 7, 15, 23, 53, 127, 229, 241, 165, 1985, 1921, 5917, 15743, 18349, 23981, 58241}}, +{12264, 17, 55654, {1, 1, 3, 13, 9, 63, 49, 67, 21, 57, 377, 1807, 5603, 13651, 28039, 3745, 4903}}, +{12265, 17, 55660, {1, 3, 7, 11, 1, 43, 17, 95, 79, 343, 1939, 2349, 5195, 3047, 4325, 27829, 53809}}, +{12266, 17, 55671, {1, 1, 5, 9, 7, 43, 111, 221, 493, 151, 1635, 3949, 6661, 4861, 17661, 61909, 4975}}, +{12267, 17, 55693, {1, 3, 1, 3, 31, 47, 63, 45, 401, 153, 1139, 2125, 6639, 14093, 31607, 20645, 52245}}, +{12268, 17, 55706, {1, 1, 3, 1, 19, 31, 59, 139, 285, 749, 751, 775, 7795, 14917, 30295, 61037, 12315}}, +{12269, 17, 55712, {1, 3, 3, 9, 15, 55, 79, 183, 373, 663, 497, 2589, 4955, 5409, 23527, 2683, 5487}}, +{12270, 17, 55718, {1, 3, 7, 11, 25, 47, 53, 225, 197, 109, 1937, 1375, 7347, 7353, 2335, 21775, 14877}}, +{12271, 17, 55739, {1, 3, 1, 9, 23, 61, 51, 221, 129, 57, 115, 1031, 6793, 14773, 3331, 24951, 94761}}, +{12272, 17, 55747, {1, 1, 5, 15, 31, 9, 69, 117, 295, 147, 673, 3627, 7167, 13835, 20593, 53163, 83033}}, +{12273, 17, 55754, {1, 3, 7, 9, 15, 63, 111, 225, 147, 863, 691, 629, 7485, 483, 21835, 46251, 94645}}, +{12274, 17, 55771, {1, 3, 3, 3, 11, 41, 23, 159, 133, 787, 1617, 629, 5047, 4465, 29051, 47499, 7211}}, +{12275, 17, 55774, {1, 1, 3, 13, 21, 61, 29, 159, 73, 165, 917, 2577, 7237, 11807, 3767, 56861, 51395}}, +{12276, 17, 55780, {1, 1, 5, 3, 15, 31, 37, 233, 283, 265, 1645, 3843, 1971, 4989, 26823, 15243, 74931}}, +{12277, 17, 55783, {1, 3, 7, 11, 9, 51, 7, 119, 237, 905, 1211, 3041, 7641, 3387, 8373, 38961, 68925}}, +{12278, 17, 55784, {1, 1, 7, 3, 17, 53, 55, 195, 57, 957, 2027, 3965, 2993, 411, 13947, 58349, 32169}}, +{12279, 17, 55789, {1, 1, 7, 9, 7, 37, 55, 93, 173, 769, 1381, 3977, 5293, 5051, 21455, 45547, 64653}}, +{12280, 17, 55798, {1, 3, 5, 7, 1, 41, 89, 161, 315, 361, 1675, 2993, 3281, 13043, 19003, 22129, 130379}}, +{12281, 17, 55802, {1, 3, 1, 9, 13, 37, 85, 197, 465, 177, 661, 943, 541, 11117, 9751, 4193, 98291}}, +{12282, 17, 55823, {1, 1, 3, 7, 21, 7, 67, 17, 41, 817, 1159, 1483, 6937, 10079, 3639, 27887, 14541}}, +{12283, 17, 55828, {1, 3, 3, 15, 17, 63, 69, 215, 437, 883, 1857, 3319, 3107, 16279, 10709, 30433, 52551}}, +{12284, 17, 55837, {1, 1, 3, 11, 1, 5, 69, 37, 419, 999, 1711, 875, 3807, 10811, 16345, 61155, 116043}}, +{12285, 17, 55838, {1, 3, 7, 13, 17, 7, 57, 237, 81, 691, 1143, 4075, 2481, 643, 8091, 8243, 80111}}, +{12286, 17, 55847, {1, 1, 7, 7, 17, 61, 73, 215, 113, 885, 159, 2243, 1177, 10981, 10123, 48995, 123349}}, +{12287, 17, 55848, {1, 1, 1, 7, 31, 47, 99, 15, 371, 343, 1483, 1985, 25, 11125, 8357, 10677, 130895}}, +{12288, 17, 55885, {1, 3, 1, 13, 25, 41, 83, 37, 129, 493, 641, 185, 6607, 7213, 13285, 10439, 73227}}, +{12289, 17, 55897, {1, 1, 5, 7, 17, 15, 93, 53, 281, 91, 115, 3675, 3081, 9825, 23653, 40095, 91803}}, +{12290, 17, 55904, {1, 1, 1, 5, 3, 25, 39, 207, 419, 361, 953, 2823, 8105, 15763, 29199, 61607, 32633}}, +{12291, 17, 55910, {1, 1, 3, 1, 31, 51, 55, 3, 277, 639, 191, 1783, 139, 29, 16659, 30199, 69109}}, +{12292, 17, 55919, {1, 1, 1, 7, 31, 59, 25, 13, 239, 617, 115, 1787, 5757, 9927, 2417, 37313, 115135}}, +{12293, 17, 55922, {1, 1, 3, 5, 19, 35, 5, 187, 483, 823, 1875, 163, 4235, 853, 23679, 50899, 94981}}, +{12294, 17, 55931, {1, 3, 3, 11, 9, 39, 121, 201, 189, 543, 1493, 1215, 351, 16063, 1701, 56559, 108053}}, +{12295, 17, 55933, {1, 3, 1, 7, 1, 39, 31, 163, 347, 307, 349, 4081, 1729, 16265, 363, 28297, 50631}}, +{12296, 17, 55937, {1, 3, 7, 13, 21, 55, 127, 161, 75, 9, 1285, 1839, 5283, 5667, 10979, 22185, 7581}}, +{12297, 17, 55943, {1, 1, 3, 5, 13, 45, 17, 181, 117, 395, 1685, 663, 3441, 5359, 7157, 27759, 102343}}, +{12298, 17, 55955, {1, 3, 1, 7, 7, 31, 97, 187, 383, 769, 1469, 4007, 5521, 13973, 49, 43823, 75649}}, +{12299, 17, 55957, {1, 3, 5, 7, 31, 13, 47, 11, 335, 961, 321, 3367, 1903, 503, 8409, 1101, 58215}}, +{12300, 17, 55968, {1, 1, 7, 7, 25, 49, 39, 1, 453, 419, 333, 1759, 2287, 6243, 10723, 13687, 56853}}, +{12301, 17, 55980, {1, 3, 3, 7, 11, 55, 125, 197, 19, 591, 1969, 511, 2501, 8429, 29467, 27917, 63457}}, +{12302, 17, 55986, {1, 1, 3, 11, 11, 43, 35, 213, 231, 119, 379, 3761, 4891, 5677, 20317, 5459, 55487}}, +{12303, 17, 55992, {1, 1, 5, 7, 21, 9, 127, 59, 97, 963, 847, 2131, 7907, 11409, 8785, 48197, 96907}}, +{12304, 17, 56005, {1, 3, 5, 3, 23, 7, 45, 95, 179, 691, 1571, 3091, 6359, 9105, 26021, 26925, 43}}, +{12305, 17, 56034, {1, 3, 3, 7, 21, 7, 11, 219, 439, 465, 1983, 117, 4639, 8387, 27637, 15883, 5567}}, +{12306, 17, 56051, {1, 1, 7, 3, 1, 3, 51, 205, 425, 133, 563, 1317, 533, 1227, 8361, 23407, 39825}}, +{12307, 17, 56054, {1, 1, 5, 3, 3, 39, 19, 69, 477, 605, 3, 1887, 2077, 13673, 2763, 64415, 104519}}, +{12308, 17, 56065, {1, 1, 5, 15, 11, 45, 89, 245, 177, 591, 1313, 587, 4781, 5103, 26401, 12643, 38959}}, +{12309, 17, 56080, {1, 1, 1, 5, 11, 13, 15, 95, 271, 99, 2001, 2701, 6065, 3527, 7423, 37525, 117161}}, +{12310, 17, 56101, {1, 3, 7, 7, 21, 17, 111, 149, 373, 591, 1461, 809, 3877, 8635, 13209, 31439, 64285}}, +{12311, 17, 56113, {1, 3, 1, 15, 25, 51, 55, 161, 357, 181, 41, 2345, 3553, 9917, 30123, 40683, 122497}}, +{12312, 17, 56126, {1, 3, 7, 15, 5, 55, 119, 239, 291, 665, 1537, 3309, 2519, 12397, 25897, 51529, 28673}}, +{12313, 17, 56131, {1, 1, 1, 9, 25, 45, 21, 119, 19, 145, 313, 2509, 1031, 3319, 14863, 10759, 22577}}, +{12314, 17, 56134, {1, 3, 1, 15, 1, 61, 87, 229, 511, 83, 79, 51, 1407, 16293, 26217, 25839, 86207}}, +{12315, 17, 56143, {1, 3, 7, 7, 23, 43, 89, 11, 43, 801, 569, 3273, 315, 9537, 681, 34783, 97101}}, +{12316, 17, 56148, {1, 1, 5, 1, 13, 31, 77, 115, 501, 669, 27, 3765, 6789, 9139, 30587, 45995, 102433}}, +{12317, 17, 56152, {1, 1, 7, 1, 15, 21, 57, 197, 243, 353, 71, 341, 7319, 8467, 9779, 15755, 4185}}, +{12318, 17, 56174, {1, 1, 1, 1, 17, 21, 3, 185, 277, 585, 265, 3189, 3975, 353, 8541, 23905, 21881}}, +{12319, 17, 56181, {1, 3, 5, 3, 5, 23, 113, 253, 343, 73, 1419, 2529, 4333, 2007, 14307, 60591, 55411}}, +{12320, 17, 56182, {1, 1, 7, 3, 25, 35, 109, 173, 351, 487, 1551, 3207, 1189, 5091, 3581, 4699, 22085}}, +{12321, 17, 56185, {1, 1, 3, 11, 9, 9, 71, 173, 17, 595, 2015, 2543, 4889, 6025, 15265, 6459, 3977}}, +{12322, 17, 56192, {1, 3, 5, 15, 11, 13, 11, 189, 431, 307, 317, 3131, 1421, 10863, 5311, 25273, 43187}}, +{12323, 17, 56201, {1, 1, 1, 7, 7, 41, 103, 231, 321, 327, 1849, 2485, 6461, 10259, 4577, 52951, 33053}}, +{12324, 17, 56215, {1, 3, 3, 15, 11, 33, 73, 155, 453, 597, 575, 2119, 327, 4227, 32271, 7429, 102007}}, +{12325, 17, 56219, {1, 1, 3, 7, 15, 9, 95, 177, 21, 245, 257, 3637, 821, 16351, 1733, 10635, 59885}}, +{12326, 17, 56222, {1, 1, 3, 7, 23, 41, 107, 147, 57, 877, 1609, 3275, 339, 12997, 5989, 62293, 21549}}, +{12327, 17, 56258, {1, 1, 7, 13, 19, 39, 111, 229, 321, 487, 873, 3365, 4915, 251, 30629, 45775, 73549}}, +{12328, 17, 56264, {1, 1, 1, 13, 25, 61, 43, 111, 135, 463, 1921, 1723, 7505, 13805, 30633, 51683, 7353}}, +{12329, 17, 56269, {1, 1, 1, 1, 31, 41, 35, 205, 375, 189, 635, 3589, 3507, 8131, 13437, 22823, 68451}}, +{12330, 17, 56272, {1, 3, 7, 5, 31, 47, 13, 229, 105, 195, 685, 529, 39, 2651, 6821, 11043, 112123}}, +{12331, 17, 56278, {1, 3, 7, 13, 3, 23, 21, 203, 89, 957, 1577, 1711, 585, 3937, 17681, 55577, 61075}}, +{12332, 17, 56282, {1, 3, 3, 3, 17, 37, 49, 7, 287, 183, 1185, 2979, 2103, 1217, 22105, 11677, 19603}}, +{12333, 17, 56306, {1, 1, 1, 9, 29, 35, 93, 179, 403, 563, 441, 3485, 6909, 12647, 3885, 60089, 29275}}, +{12334, 17, 56308, {1, 3, 3, 9, 15, 37, 49, 103, 509, 77, 495, 921, 2599, 14735, 30951, 22779, 47747}}, +{12335, 17, 56318, {1, 3, 3, 11, 17, 45, 43, 235, 379, 51, 925, 89, 2241, 10273, 27649, 8101, 93977}}, +{12336, 17, 56329, {1, 3, 3, 3, 11, 7, 25, 163, 405, 997, 847, 2743, 4705, 7041, 10997, 50189, 10775}}, +{12337, 17, 56356, {1, 1, 1, 13, 19, 43, 3, 125, 37, 41, 5, 965, 2681, 3737, 29057, 37777, 119537}}, +{12338, 17, 56360, {1, 1, 1, 1, 11, 27, 101, 67, 73, 199, 1739, 2835, 5837, 10595, 9865, 38493, 99323}}, +{12339, 17, 56383, {1, 3, 1, 13, 27, 43, 21, 79, 419, 847, 843, 2563, 8133, 10295, 10127, 30839, 104863}}, +{12340, 17, 56388, {1, 3, 3, 11, 15, 37, 71, 251, 157, 971, 165, 1647, 2583, 205, 23555, 55297, 106893}}, +{12341, 17, 56391, {1, 1, 5, 15, 1, 21, 113, 107, 287, 727, 71, 2655, 1435, 11125, 15257, 18899, 37737}}, +{12342, 17, 56405, {1, 1, 3, 3, 27, 49, 17, 85, 57, 237, 349, 4049, 1103, 2523, 3919, 36587, 128595}}, +{12343, 17, 56406, {1, 3, 5, 9, 13, 1, 65, 13, 361, 409, 413, 2153, 5953, 10651, 25383, 49777, 65399}}, +{12344, 17, 56416, {1, 1, 7, 9, 19, 47, 69, 127, 121, 925, 57, 2775, 4981, 3643, 4077, 3081, 56093}}, +{12345, 17, 56426, {1, 3, 3, 13, 1, 53, 45, 13, 489, 445, 623, 3547, 1659, 1899, 11971, 3725, 12445}}, +{12346, 17, 56439, {1, 3, 7, 11, 13, 9, 59, 157, 125, 975, 1283, 297, 3609, 3179, 31341, 54727, 112515}}, +{12347, 17, 56446, {1, 1, 1, 13, 23, 63, 69, 249, 159, 593, 47, 3957, 757, 14693, 26345, 18839, 111263}}, +{12348, 17, 56450, {1, 1, 1, 1, 31, 37, 37, 199, 7, 425, 337, 1475, 271, 16215, 12089, 16765, 13519}}, +{12349, 17, 56459, {1, 1, 7, 11, 31, 59, 121, 139, 413, 807, 737, 1235, 3505, 5859, 14205, 31939, 4713}}, +{12350, 17, 56461, {1, 1, 1, 9, 21, 51, 113, 159, 345, 807, 635, 523, 5535, 13307, 4239, 14847, 23711}}, +{12351, 17, 56464, {1, 3, 5, 13, 31, 7, 33, 1, 293, 271, 1829, 2535, 6333, 12037, 29401, 35009, 37789}}, +{12352, 17, 56469, {1, 1, 7, 3, 7, 57, 31, 45, 177, 475, 843, 1265, 585, 16099, 29293, 52407, 56131}}, +{12353, 17, 56489, {1, 3, 3, 11, 1, 25, 117, 205, 139, 141, 1229, 903, 1883, 11269, 30493, 3979, 4263}}, +{12354, 17, 56490, {1, 1, 5, 13, 25, 43, 9, 237, 347, 869, 1765, 1389, 1931, 13331, 17325, 45999, 121201}}, +{12355, 17, 56497, {1, 3, 3, 11, 3, 13, 95, 49, 389, 53, 491, 1467, 5105, 16053, 6305, 15759, 51991}}, +{12356, 17, 56509, {1, 3, 5, 15, 1, 53, 85, 69, 75, 409, 1299, 1245, 7951, 10709, 9157, 3509, 103975}}, +{12357, 17, 56515, {1, 1, 1, 13, 1, 33, 97, 235, 463, 413, 1759, 1891, 1781, 5261, 5759, 201, 69199}}, +{12358, 17, 56518, {1, 1, 3, 13, 21, 27, 101, 143, 123, 705, 969, 2461, 6057, 13091, 6077, 38311, 30379}}, +{12359, 17, 56524, {1, 3, 3, 1, 13, 11, 73, 33, 495, 513, 763, 3089, 421, 13663, 30169, 56599, 38847}}, +{12360, 17, 56535, {1, 1, 7, 13, 13, 31, 91, 63, 233, 137, 859, 2449, 539, 12461, 13477, 31605, 58919}}, +{12361, 17, 56542, {1, 1, 1, 9, 13, 49, 107, 45, 451, 707, 1735, 1881, 3451, 9131, 25481, 10841, 116067}}, +{12362, 17, 56545, {1, 3, 7, 1, 27, 21, 51, 117, 63, 53, 575, 3325, 1099, 11181, 23609, 47141, 115421}}, +{12363, 17, 56551, {1, 3, 1, 13, 25, 29, 53, 135, 165, 319, 1695, 341, 8157, 10671, 7095, 60749, 31513}}, +{12364, 17, 56555, {1, 1, 7, 5, 3, 53, 123, 137, 449, 87, 951, 693, 6943, 15331, 1515, 24019, 56613}}, +{12365, 17, 56560, {1, 3, 7, 5, 25, 17, 43, 251, 301, 203, 633, 1271, 6253, 4475, 10773, 25003, 67599}}, +{12366, 17, 56569, {1, 1, 3, 9, 1, 25, 117, 159, 13, 155, 851, 2497, 6155, 6549, 27909, 24423, 82357}}, +{12367, 17, 56580, {1, 1, 1, 1, 21, 59, 103, 43, 291, 111, 1355, 401, 5129, 16017, 25947, 15391, 46745}}, +{12368, 17, 56584, {1, 1, 1, 13, 13, 51, 95, 111, 17, 963, 1535, 3003, 6163, 11377, 6787, 57275, 109559}}, +{12369, 17, 56598, {1, 1, 5, 11, 11, 3, 85, 207, 489, 117, 269, 747, 5719, 8501, 7307, 59223, 18941}}, +{12370, 17, 56601, {1, 1, 5, 1, 9, 53, 41, 255, 271, 995, 1939, 2739, 2221, 14841, 22617, 10643, 6427}}, +{12371, 17, 56602, {1, 3, 3, 9, 7, 55, 109, 143, 427, 45, 579, 115, 2061, 8447, 29469, 5523, 129063}}, +{12372, 17, 56623, {1, 3, 7, 5, 23, 63, 119, 31, 53, 821, 135, 2677, 807, 4685, 24391, 55165, 88079}}, +{12373, 17, 56637, {1, 3, 5, 9, 15, 11, 73, 177, 243, 375, 115, 1633, 7983, 15039, 21169, 25325, 128479}}, +{12374, 17, 56638, {1, 3, 3, 5, 21, 51, 13, 51, 75, 993, 77, 209, 2761, 451, 11987, 40297, 2383}}, +{12375, 17, 56643, {1, 3, 7, 1, 19, 9, 11, 161, 19, 851, 1313, 1169, 4405, 7493, 23935, 37323, 107387}}, +{12376, 17, 56650, {1, 3, 5, 15, 5, 11, 79, 129, 507, 247, 811, 1145, 3893, 5205, 11309, 38205, 2051}}, +{12377, 17, 56673, {1, 1, 5, 1, 11, 13, 33, 155, 21, 185, 771, 3261, 981, 743, 12479, 22611, 25321}}, +{12378, 17, 56676, {1, 1, 5, 9, 7, 25, 11, 235, 429, 563, 1647, 1429, 1385, 14411, 3831, 19769, 67599}}, +{12379, 17, 56686, {1, 3, 3, 5, 5, 7, 109, 117, 251, 823, 669, 2043, 1843, 11829, 27051, 35865, 11461}}, +{12380, 17, 56704, {1, 3, 5, 5, 7, 3, 45, 63, 305, 99, 393, 1765, 1711, 15569, 27295, 16555, 77631}}, +{12381, 17, 56710, {1, 3, 5, 11, 23, 33, 49, 125, 85, 677, 1589, 2667, 5723, 15619, 30415, 39561, 122763}}, +{12382, 17, 56721, {1, 3, 7, 13, 27, 21, 99, 209, 481, 123, 1285, 115, 6517, 11753, 11365, 44959, 89}}, +{12383, 17, 56731, {1, 1, 1, 7, 15, 15, 45, 151, 489, 169, 933, 2987, 657, 3095, 6745, 131, 37767}}, +{12384, 17, 56738, {1, 3, 1, 15, 1, 37, 99, 137, 151, 891, 715, 383, 1293, 719, 10957, 5557, 92841}}, +{12385, 17, 56747, {1, 1, 1, 3, 27, 59, 93, 49, 473, 313, 431, 1129, 5995, 13101, 13185, 7091, 109677}}, +{12386, 17, 56750, {1, 3, 3, 7, 1, 41, 55, 135, 271, 527, 1919, 1093, 2579, 3725, 22853, 31613, 4729}}, +{12387, 17, 56752, {1, 1, 7, 1, 7, 13, 63, 255, 219, 837, 117, 2323, 4295, 15697, 8607, 47047, 117869}}, +{12388, 17, 56757, {1, 1, 1, 7, 29, 29, 55, 171, 437, 733, 491, 1037, 7221, 5705, 31819, 19583, 103991}}, +{12389, 17, 56787, {1, 3, 7, 1, 31, 19, 65, 39, 151, 517, 1985, 2251, 6147, 12983, 28263, 35891, 7545}}, +{12390, 17, 56796, {1, 1, 7, 7, 21, 41, 97, 253, 427, 391, 849, 611, 4827, 10807, 6267, 22513, 62803}}, +{12391, 17, 56803, {1, 3, 7, 7, 25, 9, 49, 245, 491, 39, 603, 1853, 5655, 3517, 10745, 55069, 121497}}, +{12392, 17, 56812, {1, 3, 1, 5, 9, 39, 109, 195, 283, 141, 2007, 3, 1267, 13053, 8387, 48665, 48877}}, +{12393, 17, 56815, {1, 1, 3, 7, 27, 61, 49, 43, 229, 497, 2015, 1345, 3195, 7139, 13453, 56993, 15099}}, +{12394, 17, 56824, {1, 3, 5, 11, 31, 53, 87, 97, 385, 387, 1107, 3287, 2517, 7421, 1007, 37421, 124113}}, +{12395, 17, 56829, {1, 3, 3, 11, 9, 55, 51, 215, 181, 419, 863, 3149, 5815, 15579, 28527, 34715, 61375}}, +{12396, 17, 56833, {1, 3, 3, 3, 31, 57, 5, 35, 445, 957, 1897, 105, 2533, 10255, 19795, 49127, 38491}}, +{12397, 17, 56839, {1, 3, 3, 13, 25, 53, 1, 159, 443, 541, 439, 3377, 5511, 9667, 26777, 32599, 36981}}, +{12398, 17, 56840, {1, 1, 1, 3, 23, 29, 97, 131, 59, 143, 1601, 2765, 4569, 11081, 6027, 38641, 100745}}, +{12399, 17, 56845, {1, 3, 3, 15, 9, 15, 19, 35, 321, 935, 465, 2707, 4799, 7455, 12743, 31029, 114149}}, +{12400, 17, 56853, {1, 1, 1, 1, 11, 51, 23, 79, 387, 701, 107, 623, 231, 12571, 7719, 3061, 79605}}, +{12401, 17, 56854, {1, 3, 5, 15, 17, 49, 109, 83, 185, 295, 853, 219, 3615, 535, 32001, 6655, 4185}}, +{12402, 17, 56858, {1, 3, 3, 15, 15, 7, 35, 151, 305, 705, 1383, 1595, 5595, 11995, 15491, 49119, 83383}}, +{12403, 17, 56863, {1, 3, 7, 9, 3, 25, 57, 47, 359, 719, 1937, 1403, 1399, 10827, 24181, 29141, 79017}}, +{12404, 17, 56864, {1, 3, 5, 1, 1, 21, 21, 245, 361, 485, 1521, 3935, 1587, 8653, 25871, 49449, 103413}}, +{12405, 17, 56881, {1, 3, 3, 3, 9, 61, 31, 69, 401, 261, 1217, 3069, 4045, 12437, 32017, 15113, 10769}}, +{12406, 17, 56882, {1, 3, 1, 1, 21, 33, 123, 87, 481, 793, 625, 4087, 1361, 11077, 18835, 13287, 40107}}, +{12407, 17, 56896, {1, 3, 7, 3, 9, 49, 101, 213, 467, 77, 1691, 2621, 4411, 8025, 30247, 13691, 20559}}, +{12408, 17, 56901, {1, 1, 1, 9, 29, 49, 47, 135, 1, 337, 1649, 389, 3845, 7213, 19527, 2619, 78841}}, +{12409, 17, 56902, {1, 3, 7, 9, 23, 23, 47, 97, 493, 767, 137, 1467, 7015, 2883, 12749, 9267, 12441}}, +{12410, 17, 56908, {1, 1, 3, 15, 9, 57, 53, 19, 401, 385, 1159, 1185, 6977, 14027, 3183, 59119, 42065}}, +{12411, 17, 56923, {1, 1, 1, 15, 21, 33, 83, 251, 147, 395, 321, 443, 6893, 1877, 6687, 28863, 86531}}, +{12412, 17, 56925, {1, 3, 3, 1, 3, 47, 27, 247, 121, 827, 1399, 4079, 7545, 11691, 27915, 28811, 17099}}, +{12413, 17, 56926, {1, 3, 5, 7, 5, 59, 73, 69, 117, 897, 905, 3273, 2935, 11077, 32443, 60959, 16081}}, +{12414, 17, 56932, {1, 1, 7, 5, 27, 49, 107, 169, 75, 435, 1913, 2089, 5733, 2361, 5163, 52239, 87411}}, +{12415, 17, 56939, {1, 1, 7, 13, 1, 13, 123, 89, 427, 301, 1217, 1491, 5361, 10381, 28971, 57655, 108607}}, +{12416, 17, 56947, {1, 1, 7, 11, 13, 5, 23, 151, 117, 369, 623, 2263, 2609, 109, 32485, 52133, 69391}}, +{12417, 17, 56954, {1, 3, 7, 11, 7, 33, 127, 43, 123, 203, 775, 3215, 5115, 1805, 14581, 46791, 128781}}, +{12418, 17, 56970, {1, 3, 3, 1, 7, 23, 37, 99, 1, 719, 293, 2727, 6859, 683, 13241, 17839, 4215}}, +{12419, 17, 56972, {1, 1, 1, 13, 27, 41, 93, 25, 59, 947, 971, 1523, 4443, 1209, 32317, 58651, 11121}}, +{12420, 17, 56977, {1, 1, 1, 3, 31, 33, 23, 87, 349, 265, 445, 3489, 783, 7833, 5767, 59295, 45057}}, +{12421, 17, 56980, {1, 1, 1, 1, 15, 47, 19, 15, 217, 837, 2043, 2805, 4701, 5873, 1517, 46743, 61655}}, +{12422, 17, 56993, {1, 3, 7, 1, 27, 27, 9, 107, 25, 897, 955, 3763, 821, 1535, 14557, 38537, 128737}}, +{12423, 17, 57013, {1, 3, 3, 7, 19, 49, 121, 217, 401, 975, 1189, 715, 3113, 4219, 4885, 57861, 6833}}, +{12424, 17, 57017, {1, 3, 3, 1, 17, 59, 53, 15, 259, 791, 2035, 499, 7707, 13685, 14367, 20155, 91033}}, +{12425, 17, 57018, {1, 3, 5, 5, 11, 11, 69, 237, 139, 73, 541, 1135, 2647, 14109, 18113, 8051, 31917}}, +{12426, 17, 57031, {1, 1, 1, 15, 11, 23, 89, 181, 295, 743, 29, 4009, 4683, 13989, 4575, 38865, 30449}}, +{12427, 17, 57059, {1, 1, 1, 11, 21, 63, 31, 121, 55, 153, 1143, 4059, 3247, 11725, 17659, 48935, 118369}}, +{12428, 17, 57062, {1, 1, 7, 9, 17, 29, 27, 167, 69, 957, 2009, 2795, 3161, 3493, 16365, 43637, 102321}}, +{12429, 17, 57065, {1, 3, 5, 13, 27, 23, 17, 7, 345, 253, 631, 1389, 2523, 9993, 32619, 46731, 4757}}, +{12430, 17, 57071, {1, 1, 1, 11, 17, 1, 41, 107, 25, 183, 1361, 1211, 3607, 12713, 16011, 42987, 36415}}, +{12431, 17, 57083, {1, 1, 7, 5, 13, 29, 33, 69, 261, 213, 73, 3737, 3867, 503, 28225, 53735, 91695}}, +{12432, 17, 57093, {1, 3, 7, 7, 21, 63, 75, 39, 259, 367, 487, 2087, 5411, 1925, 29589, 39019, 73283}}, +{12433, 17, 57097, {1, 3, 1, 7, 29, 29, 25, 191, 91, 509, 1485, 853, 7011, 13321, 27769, 10249, 87341}}, +{12434, 17, 57106, {1, 1, 7, 7, 1, 9, 115, 71, 321, 913, 1679, 2129, 771, 9217, 4731, 24353, 35631}}, +{12435, 17, 57118, {1, 3, 1, 13, 5, 45, 53, 255, 429, 805, 1983, 1437, 2677, 6337, 22221, 55455, 39855}}, +{12436, 17, 57133, {1, 1, 1, 1, 1, 5, 111, 231, 321, 961, 371, 3825, 3623, 3985, 32151, 6113, 130687}}, +{12437, 17, 57134, {1, 3, 7, 3, 15, 29, 103, 181, 261, 149, 1161, 1745, 1765, 1677, 20051, 47033, 84997}}, +{12438, 17, 57141, {1, 3, 7, 1, 25, 21, 7, 229, 407, 673, 1525, 1207, 3099, 14849, 22103, 45695, 85951}}, +{12439, 17, 57146, {1, 3, 7, 1, 9, 5, 105, 149, 181, 81, 1589, 3477, 5387, 7943, 29203, 50355, 39001}}, +{12440, 17, 57156, {1, 3, 7, 1, 21, 31, 39, 121, 397, 1023, 711, 623, 6193, 12315, 11101, 11911, 50033}}, +{12441, 17, 57174, {1, 3, 7, 3, 7, 19, 73, 69, 201, 337, 1037, 3663, 2679, 5153, 28171, 24455, 74685}}, +{12442, 17, 57183, {1, 3, 1, 1, 21, 35, 121, 111, 217, 809, 507, 1347, 4439, 4601, 26371, 23595, 3583}}, +{12443, 17, 57189, {1, 3, 3, 7, 1, 51, 83, 231, 419, 597, 305, 3405, 5831, 11845, 1861, 48671, 105315}}, +{12444, 17, 57190, {1, 3, 1, 15, 25, 37, 103, 141, 495, 727, 1919, 2821, 4689, 6727, 27117, 2259, 54559}}, +{12445, 17, 57193, {1, 3, 5, 3, 27, 55, 5, 117, 199, 979, 1745, 401, 7967, 5345, 29747, 54085, 124765}}, +{12446, 17, 57196, {1, 3, 3, 15, 23, 61, 1, 29, 489, 131, 583, 389, 6033, 8007, 22933, 44513, 111845}}, +{12447, 17, 57207, {1, 1, 7, 13, 3, 55, 119, 147, 181, 485, 793, 3593, 6971, 2227, 28507, 62393, 127303}}, +{12448, 17, 57211, {1, 1, 5, 3, 29, 53, 37, 59, 213, 283, 1809, 3685, 2677, 5761, 19705, 47079, 3477}}, +{12449, 17, 57214, {1, 1, 1, 7, 21, 63, 91, 13, 347, 605, 589, 415, 5737, 10281, 30941, 25609, 67973}}, +{12450, 17, 57218, {1, 1, 3, 1, 27, 49, 87, 161, 507, 693, 59, 1375, 6737, 1029, 14731, 32335, 51961}}, +{12451, 17, 57230, {1, 3, 3, 9, 11, 15, 121, 121, 151, 335, 221, 3099, 1999, 1047, 20891, 23015, 95809}}, +{12452, 17, 57235, {1, 1, 7, 7, 1, 49, 63, 227, 113, 161, 863, 801, 2559, 7737, 27619, 27419, 128009}}, +{12453, 17, 57241, {1, 1, 7, 1, 25, 59, 67, 111, 435, 309, 807, 2107, 8077, 9671, 6739, 53757, 41259}}, +{12454, 17, 57251, {1, 3, 7, 3, 3, 19, 7, 111, 237, 981, 1717, 3131, 6631, 467, 13103, 61435, 126469}}, +{12455, 17, 57260, {1, 1, 7, 9, 19, 31, 59, 185, 199, 111, 351, 611, 6355, 1095, 28549, 32871, 44537}}, +{12456, 17, 57263, {1, 1, 3, 11, 23, 25, 31, 1, 461, 83, 1723, 1711, 3679, 10963, 14927, 17377, 911}}, +{12457, 17, 57265, {1, 1, 5, 13, 3, 37, 127, 159, 199, 223, 1097, 3033, 5825, 13777, 22189, 44305, 20509}}, +{12458, 17, 57271, {1, 1, 5, 15, 13, 49, 17, 79, 289, 601, 1023, 657, 1687, 14477, 15929, 4279, 68007}}, +{12459, 17, 57272, {1, 1, 5, 7, 29, 3, 45, 225, 65, 711, 1039, 3585, 4957, 9041, 22761, 26649, 95627}}, +{12460, 17, 57290, {1, 3, 5, 5, 13, 29, 33, 211, 461, 799, 1437, 1057, 485, 9535, 8133, 57527, 12873}}, +{12461, 17, 57295, {1, 1, 3, 3, 15, 43, 53, 15, 395, 561, 1371, 3543, 7707, 2399, 13311, 25641, 58865}}, +{12462, 17, 57298, {1, 3, 1, 7, 1, 9, 115, 39, 249, 87, 835, 97, 8137, 6665, 11951, 21045, 76387}}, +{12463, 17, 57325, {1, 3, 3, 9, 5, 63, 115, 163, 331, 1007, 733, 4027, 2911, 5329, 6967, 3535, 107293}}, +{12464, 17, 57328, {1, 3, 1, 11, 5, 55, 81, 63, 345, 535, 1093, 207, 4053, 9129, 10397, 26641, 95171}}, +{12465, 17, 57340, {1, 1, 3, 3, 13, 27, 65, 37, 255, 69, 19, 2565, 4329, 11223, 18131, 18701, 31111}}, +{12466, 17, 57344, {1, 3, 7, 7, 25, 57, 81, 189, 227, 377, 829, 1583, 1343, 4643, 23485, 47463, 83535}}, +{12467, 17, 57353, {1, 3, 5, 9, 13, 33, 103, 75, 501, 803, 427, 1171, 1187, 2655, 24187, 32907, 120239}}, +{12468, 17, 57368, {1, 3, 1, 7, 31, 63, 21, 137, 241, 63, 1925, 2193, 1135, 11159, 14685, 28397, 59}}, +{12469, 17, 57371, {1, 1, 7, 1, 15, 7, 85, 87, 493, 63, 561, 1069, 5481, 12253, 25149, 35283, 16123}}, +{12470, 17, 57383, {1, 3, 3, 5, 19, 17, 23, 95, 429, 805, 1343, 2243, 233, 7219, 6549, 21477, 83679}}, +{12471, 17, 57402, {1, 3, 3, 1, 3, 55, 83, 107, 131, 311, 741, 781, 6227, 10059, 3903, 235, 45971}}, +{12472, 17, 57407, {1, 1, 3, 13, 21, 43, 79, 149, 367, 755, 463, 221, 5117, 7015, 17599, 64665, 37443}}, +{12473, 17, 57419, {1, 1, 7, 15, 3, 59, 107, 13, 213, 287, 1505, 2131, 6965, 12873, 23973, 8449, 24829}}, +{12474, 17, 57424, {1, 3, 5, 11, 25, 45, 39, 17, 175, 749, 1179, 3349, 6723, 12543, 3557, 34521, 103197}}, +{12475, 17, 57433, {1, 1, 3, 13, 23, 41, 21, 25, 91, 941, 879, 4015, 137, 12949, 17245, 41903, 39803}}, +{12476, 17, 57452, {1, 1, 7, 15, 11, 33, 45, 127, 321, 895, 1543, 4013, 6179, 14209, 13317, 46803, 99891}}, +{12477, 17, 57458, {1, 3, 3, 13, 13, 11, 101, 11, 177, 869, 509, 2323, 449, 16379, 31965, 2899, 59229}}, +{12478, 17, 57467, {1, 1, 5, 7, 15, 37, 113, 237, 463, 489, 1145, 1629, 3101, 10305, 31705, 29957, 99665}}, +{12479, 17, 57470, {1, 3, 5, 7, 21, 29, 45, 133, 367, 657, 1315, 537, 6069, 8141, 31479, 32983, 57}}, +{12480, 17, 57473, {1, 1, 3, 9, 13, 39, 109, 125, 467, 975, 829, 4007, 773, 6639, 8793, 4579, 60547}}, +{12481, 17, 57479, {1, 1, 1, 15, 21, 5, 113, 51, 159, 501, 1921, 4095, 5603, 16055, 16649, 50229, 49863}}, +{12482, 17, 57480, {1, 1, 5, 13, 9, 21, 77, 187, 355, 299, 1017, 491, 6725, 4177, 16739, 15909, 84069}}, +{12483, 17, 57486, {1, 3, 7, 5, 13, 13, 51, 19, 159, 339, 735, 933, 2523, 11435, 20793, 21975, 19007}}, +{12484, 17, 57491, {1, 1, 7, 5, 1, 11, 61, 111, 129, 643, 1741, 945, 7349, 11579, 24793, 1751, 2367}}, +{12485, 17, 57493, {1, 1, 5, 5, 29, 45, 63, 177, 507, 277, 1789, 729, 4277, 10099, 28985, 43009, 2319}}, +{12486, 17, 57524, {1, 3, 3, 13, 19, 53, 73, 227, 487, 131, 1227, 3735, 3979, 7383, 6923, 31979, 6651}}, +{12487, 17, 57528, {1, 3, 3, 15, 7, 47, 31, 255, 317, 621, 497, 4069, 5249, 15093, 18013, 6891, 81893}}, +{12488, 17, 57534, {1, 1, 7, 5, 17, 23, 119, 27, 55, 555, 221, 2693, 1757, 11117, 23409, 21135, 122977}}, +{12489, 17, 57542, {1, 1, 5, 1, 15, 17, 127, 109, 75, 1017, 1167, 2975, 3249, 5399, 12599, 50779, 78215}}, +{12490, 17, 57560, {1, 3, 5, 5, 1, 13, 65, 199, 101, 75, 513, 493, 6931, 9363, 5607, 16331, 69219}}, +{12491, 17, 57565, {1, 1, 1, 15, 19, 37, 63, 177, 397, 645, 905, 1599, 609, 14291, 14681, 46719, 117745}}, +{12492, 17, 57570, {1, 3, 7, 13, 3, 57, 63, 49, 67, 913, 1659, 1857, 3595, 9219, 11341, 39735, 82275}}, +{12493, 17, 57579, {1, 1, 5, 11, 19, 1, 5, 181, 55, 763, 469, 2417, 2349, 12437, 22589, 17867, 95701}}, +{12494, 17, 57590, {1, 3, 7, 13, 1, 9, 11, 159, 103, 737, 1989, 59, 4711, 8093, 31703, 45663, 92913}}, +{12495, 17, 57601, {1, 3, 3, 11, 15, 9, 35, 217, 299, 479, 1539, 2605, 2003, 8841, 27261, 28853, 98877}}, +{12496, 17, 57604, {1, 1, 5, 5, 15, 45, 73, 159, 205, 1017, 159, 3659, 2377, 3651, 6489, 19711, 109959}}, +{12497, 17, 57607, {1, 1, 3, 15, 7, 41, 7, 47, 357, 433, 211, 111, 2565, 8637, 15917, 47887, 128513}}, +{12498, 17, 57621, {1, 3, 7, 3, 25, 9, 33, 33, 5, 805, 1541, 3333, 7257, 9011, 4813, 53195, 52469}}, +{12499, 17, 57635, {1, 1, 7, 15, 27, 3, 11, 57, 415, 371, 563, 2515, 149, 6555, 31273, 51465, 2989}}, +{12500, 17, 57642, {1, 1, 1, 11, 3, 41, 25, 175, 499, 879, 1145, 1083, 7857, 10497, 16991, 23351, 115353}}, +{12501, 17, 57650, {1, 1, 3, 15, 15, 9, 39, 239, 285, 413, 989, 2927, 7205, 79, 20101, 30115, 113933}}, +{12502, 17, 57655, {1, 1, 7, 5, 13, 29, 29, 69, 25, 533, 1731, 1391, 4065, 12597, 19167, 51989, 101273}}, +{12503, 17, 57670, {1, 1, 5, 3, 9, 41, 83, 127, 197, 627, 173, 273, 593, 15733, 19285, 26517, 107877}}, +{12504, 17, 57676, {1, 1, 1, 5, 29, 17, 89, 163, 125, 473, 1577, 2435, 3379, 3057, 1829, 64325, 111719}}, +{12505, 17, 57682, {1, 3, 1, 11, 1, 29, 97, 53, 421, 941, 1737, 3337, 2715, 1633, 28485, 30369, 116047}}, +{12506, 17, 57687, {1, 1, 5, 13, 25, 43, 39, 85, 385, 129, 819, 1647, 3527, 12319, 573, 58703, 29463}}, +{12507, 17, 57691, {1, 3, 3, 9, 23, 59, 31, 215, 49, 451, 645, 3687, 4507, 9359, 28161, 34609, 123409}}, +{12508, 17, 57700, {1, 3, 1, 9, 13, 25, 97, 239, 203, 31, 1465, 1089, 7665, 3007, 22465, 28389, 119869}}, +{12509, 17, 57704, {1, 3, 3, 1, 29, 51, 19, 83, 443, 193, 647, 3125, 7269, 3031, 9967, 40447, 102179}}, +{12510, 17, 57707, {1, 3, 5, 15, 5, 63, 125, 55, 295, 787, 559, 3309, 7491, 9907, 5775, 15155, 41793}}, +{12511, 17, 57721, {1, 3, 7, 7, 21, 61, 125, 207, 43, 159, 539, 435, 1945, 725, 797, 47489, 43099}}, +{12512, 17, 57731, {1, 1, 5, 7, 11, 11, 61, 103, 23, 693, 493, 1045, 4435, 9009, 22075, 24839, 125431}}, +{12513, 17, 57733, {1, 3, 1, 9, 13, 61, 83, 181, 373, 949, 1397, 247, 5079, 10933, 31887, 14147, 55121}}, +{12514, 17, 57738, {1, 1, 7, 15, 31, 47, 87, 219, 357, 409, 943, 2993, 7615, 7071, 14179, 41489, 104401}}, +{12515, 17, 57745, {1, 3, 3, 1, 11, 15, 87, 241, 389, 761, 1523, 3049, 2111, 11581, 5493, 11301, 32017}}, +{12516, 17, 57748, {1, 1, 7, 11, 29, 39, 37, 63, 411, 671, 1789, 3541, 5651, 11721, 10871, 53867, 112895}}, +{12517, 17, 57751, {1, 3, 3, 1, 23, 21, 99, 161, 467, 197, 1263, 451, 5469, 7667, 22139, 31599, 8345}}, +{12518, 17, 57757, {1, 3, 1, 3, 11, 41, 13, 79, 3, 377, 1865, 2297, 1383, 14033, 17141, 24787, 127911}}, +{12519, 17, 57761, {1, 1, 1, 1, 5, 11, 5, 181, 323, 853, 831, 1599, 3939, 6391, 22817, 37969, 9997}}, +{12520, 17, 57774, {1, 1, 3, 11, 29, 61, 11, 171, 181, 631, 757, 3879, 4779, 16183, 5969, 7909, 42855}}, +{12521, 17, 57779, {1, 3, 3, 15, 19, 17, 107, 187, 19, 743, 909, 1963, 2131, 2107, 659, 35829, 57905}}, +{12522, 17, 57786, {1, 1, 7, 1, 31, 29, 67, 99, 353, 715, 65, 3907, 1931, 1289, 9217, 60635, 32737}}, +{12523, 17, 57808, {1, 3, 3, 13, 3, 17, 19, 173, 263, 203, 1233, 1407, 933, 8905, 26905, 63343, 64963}}, +{12524, 17, 57814, {1, 3, 1, 13, 21, 43, 97, 79, 163, 529, 1571, 1027, 4339, 16235, 9189, 29203, 36789}}, +{12525, 17, 57817, {1, 1, 7, 1, 31, 1, 117, 247, 193, 333, 1797, 3515, 285, 2803, 25345, 9101, 110569}}, +{12526, 17, 57824, {1, 1, 5, 11, 17, 63, 45, 167, 35, 925, 569, 3687, 6739, 12453, 26171, 28249, 73827}}, +{12527, 17, 57827, {1, 1, 5, 1, 19, 49, 107, 183, 435, 305, 1191, 2711, 891, 15813, 13449, 23489, 89749}}, +{12528, 17, 57848, {1, 1, 1, 11, 7, 53, 105, 17, 433, 351, 1151, 4077, 5371, 10183, 18895, 13229, 101219}}, +{12529, 17, 57853, {1, 3, 7, 9, 21, 33, 27, 125, 177, 607, 817, 2689, 2123, 2037, 29643, 27219, 44591}}, +{12530, 17, 57857, {1, 3, 5, 11, 27, 51, 29, 161, 469, 349, 1445, 3613, 1487, 961, 29017, 2235, 45905}}, +{12531, 17, 57858, {1, 1, 3, 11, 7, 15, 37, 195, 329, 875, 559, 1361, 7373, 7143, 15059, 59205, 37167}}, +{12532, 17, 57867, {1, 1, 5, 1, 7, 25, 27, 211, 301, 369, 227, 123, 4415, 15993, 4829, 43801, 83639}}, +{12533, 17, 57872, {1, 1, 3, 5, 25, 37, 31, 205, 69, 275, 855, 1407, 2989, 11001, 16963, 31497, 3505}}, +{12534, 17, 57887, {1, 1, 7, 7, 25, 33, 81, 181, 197, 717, 207, 535, 8083, 5765, 2523, 40347, 27245}}, +{12535, 17, 57894, {1, 3, 1, 5, 13, 3, 107, 143, 233, 419, 1831, 2149, 7277, 13449, 31609, 48345, 82621}}, +{12536, 17, 57915, {1, 3, 5, 9, 31, 35, 39, 113, 415, 803, 1479, 3169, 8015, 4659, 2445, 9159, 91625}}, +{12537, 17, 57920, {1, 3, 1, 5, 27, 25, 83, 165, 459, 955, 1535, 377, 5531, 2945, 18285, 18097, 21589}}, +{12538, 17, 57923, {1, 1, 1, 15, 13, 23, 11, 159, 471, 951, 1971, 677, 2641, 3227, 14761, 39421, 29841}}, +{12539, 17, 57932, {1, 1, 7, 11, 19, 37, 101, 97, 373, 559, 105, 905, 897, 15309, 14979, 52029, 38989}}, +{12540, 17, 57937, {1, 1, 5, 15, 31, 43, 71, 75, 481, 997, 5, 1005, 4987, 7907, 16237, 43075, 94827}}, +{12541, 17, 57943, {1, 3, 5, 11, 23, 55, 123, 91, 183, 307, 97, 1999, 3341, 4717, 19643, 9455, 26555}}, +{12542, 17, 57950, {1, 1, 7, 3, 29, 61, 75, 197, 125, 579, 145, 1333, 85, 15655, 28177, 6169, 43289}}, +{12543, 17, 57960, {1, 3, 7, 13, 21, 15, 1, 221, 293, 991, 35, 2701, 2909, 7333, 27319, 32281, 77861}}, +{12544, 17, 57971, {1, 1, 3, 1, 17, 11, 81, 209, 499, 125, 105, 2987, 3891, 9531, 27963, 39611, 43633}}, +{12545, 17, 57974, {1, 3, 3, 3, 29, 45, 51, 63, 209, 75, 1321, 4055, 7851, 12329, 8371, 59513, 49105}}, +{12546, 17, 57983, {1, 1, 7, 5, 9, 63, 59, 127, 445, 899, 1857, 3737, 625, 15021, 25177, 21007, 25935}}, +{12547, 17, 57987, {1, 1, 5, 9, 9, 57, 25, 63, 235, 191, 1527, 1783, 1401, 1813, 2553, 1241, 100029}}, +{12548, 17, 57994, {1, 3, 1, 11, 27, 5, 49, 39, 505, 653, 1083, 921, 1045, 11337, 25499, 36211, 75851}}, +{12549, 17, 58001, {1, 3, 3, 1, 29, 19, 71, 93, 223, 153, 561, 1657, 5821, 14181, 1275, 24633, 114787}}, +{12550, 17, 58002, {1, 1, 1, 9, 7, 13, 17, 239, 457, 731, 1811, 3015, 4465, 5865, 2387, 30455, 17405}}, +{12551, 17, 58013, {1, 3, 5, 1, 7, 45, 117, 207, 7, 645, 131, 863, 6443, 14455, 11885, 39257, 126431}}, +{12552, 17, 58023, {1, 1, 3, 5, 17, 23, 3, 27, 475, 731, 431, 1967, 981, 12727, 1301, 17647, 62481}}, +{12553, 17, 58027, {1, 1, 1, 13, 11, 53, 105, 109, 105, 461, 1787, 2851, 1299, 9925, 13055, 58301, 24483}}, +{12554, 17, 58029, {1, 1, 1, 11, 7, 35, 11, 173, 247, 289, 1269, 361, 2059, 5051, 25731, 58085, 21387}}, +{12555, 17, 58032, {1, 3, 1, 5, 9, 31, 59, 151, 435, 519, 1863, 2255, 2585, 10033, 29189, 27189, 25023}}, +{12556, 17, 58041, {1, 1, 5, 5, 25, 17, 53, 189, 187, 847, 369, 3287, 6047, 2385, 26045, 48821, 23335}}, +{12557, 17, 58047, {1, 1, 1, 9, 15, 55, 79, 21, 433, 131, 1677, 3681, 6173, 9189, 15053, 12971, 81135}}, +{12558, 17, 58062, {1, 1, 3, 5, 29, 5, 11, 213, 151, 77, 1493, 3959, 7675, 7689, 10381, 15871, 123463}}, +{12559, 17, 58086, {1, 3, 7, 11, 19, 47, 31, 81, 207, 789, 1945, 2671, 1987, 6363, 26401, 9799, 59531}}, +{12560, 17, 58092, {1, 1, 1, 7, 17, 7, 83, 181, 339, 423, 267, 2251, 1847, 14883, 13423, 27223, 81799}}, +{12561, 17, 58095, {1, 3, 5, 15, 9, 9, 73, 95, 197, 267, 743, 2369, 6417, 3555, 9885, 6373, 87651}}, +{12562, 17, 58097, {1, 1, 3, 13, 21, 29, 57, 59, 395, 631, 993, 17, 2939, 14117, 27521, 61387, 74927}}, +{12563, 17, 58100, {1, 1, 3, 13, 1, 29, 23, 151, 381, 591, 1217, 2295, 4403, 15865, 4325, 31329, 56989}}, +{12564, 17, 58117, {1, 3, 5, 1, 27, 7, 111, 79, 287, 945, 1237, 2857, 1461, 2477, 10929, 17117, 98677}}, +{12565, 17, 58121, {1, 1, 1, 5, 15, 35, 109, 39, 391, 57, 1783, 3133, 5563, 7721, 12651, 3437, 46697}}, +{12566, 17, 58132, {1, 3, 5, 5, 13, 47, 123, 51, 383, 91, 641, 1607, 4461, 7, 6427, 42755, 130097}}, +{12567, 17, 58142, {1, 1, 5, 5, 25, 49, 33, 59, 351, 1003, 301, 2721, 7705, 5447, 21367, 63007, 112465}}, +{12568, 17, 58145, {1, 1, 5, 13, 31, 11, 73, 1, 359, 201, 1465, 187, 7385, 12817, 12911, 17775, 77937}}, +{12569, 17, 58152, {1, 3, 1, 15, 29, 5, 117, 69, 79, 93, 947, 133, 1049, 13907, 3611, 42123, 8041}}, +{12570, 17, 58155, {1, 1, 7, 7, 29, 17, 71, 171, 357, 619, 1199, 3817, 6889, 9607, 19075, 15539, 54939}}, +{12571, 17, 58163, {1, 1, 1, 7, 23, 29, 91, 227, 119, 865, 943, 381, 5289, 189, 15917, 13875, 31095}}, +{12572, 17, 58166, {1, 1, 7, 1, 9, 49, 93, 175, 105, 61, 1285, 3659, 2383, 505, 12337, 43801, 67035}}, +{12573, 17, 58170, {1, 3, 5, 1, 31, 47, 75, 17, 455, 231, 1887, 2295, 2533, 733, 29001, 22001, 119423}}, +{12574, 17, 58175, {1, 3, 7, 3, 5, 5, 69, 205, 459, 805, 1257, 3283, 3305, 6845, 1405, 56051, 63453}}, +{12575, 17, 58184, {1, 3, 3, 3, 19, 57, 65, 149, 175, 683, 1719, 637, 4951, 13645, 30455, 22379, 105369}}, +{12576, 17, 58197, {1, 3, 1, 11, 31, 27, 69, 13, 191, 645, 1563, 3897, 2387, 2269, 12999, 42217, 100853}}, +{12577, 17, 58202, {1, 3, 1, 13, 31, 7, 11, 227, 267, 373, 1249, 2591, 4769, 303, 5865, 59911, 4991}}, +{12578, 17, 58204, {1, 3, 7, 11, 7, 31, 87, 205, 45, 785, 1947, 1965, 5851, 7501, 89, 38897, 91939}}, +{12579, 17, 58208, {1, 3, 5, 9, 21, 37, 79, 181, 163, 355, 1129, 3439, 5103, 15903, 2935, 22505, 97451}}, +{12580, 17, 58213, {1, 1, 3, 9, 7, 37, 107, 255, 69, 133, 551, 1357, 31, 7059, 29195, 30151, 81785}}, +{12581, 17, 58220, {1, 3, 3, 5, 3, 51, 3, 143, 305, 697, 1041, 1267, 7635, 1483, 649, 28275, 65059}}, +{12582, 17, 58226, {1, 3, 1, 7, 11, 13, 113, 81, 159, 993, 797, 3207, 3787, 13005, 29393, 51107, 42709}}, +{12583, 17, 58231, {1, 1, 3, 13, 7, 11, 113, 195, 349, 377, 2033, 197, 147, 13839, 5405, 29577, 64535}}, +{12584, 17, 58235, {1, 3, 1, 9, 1, 1, 77, 73, 383, 463, 1871, 1589, 1805, 2085, 5195, 17805, 33159}}, +{12585, 17, 58254, {1, 1, 1, 9, 25, 37, 123, 119, 507, 515, 1547, 139, 7501, 4725, 30195, 18199, 41145}}, +{12586, 17, 58261, {1, 3, 3, 7, 17, 33, 99, 11, 487, 343, 403, 337, 3831, 6031, 20375, 2071, 39795}}, +{12587, 17, 58271, {1, 1, 5, 1, 13, 57, 59, 11, 391, 953, 597, 1411, 3929, 13963, 15003, 59385, 12293}}, +{12588, 17, 58278, {1, 3, 1, 15, 23, 61, 67, 129, 63, 555, 433, 631, 2725, 317, 10121, 9217, 124371}}, +{12589, 17, 58287, {1, 1, 5, 7, 19, 23, 17, 45, 75, 819, 1879, 2315, 1439, 2643, 26561, 19209, 16081}}, +{12590, 17, 58327, {1, 3, 5, 7, 5, 35, 121, 233, 91, 89, 1741, 3015, 4223, 9605, 22795, 55845, 47167}}, +{12591, 17, 58333, {1, 3, 7, 7, 13, 23, 11, 51, 91, 367, 773, 1303, 2151, 14423, 22263, 28413, 107461}}, +{12592, 17, 58337, {1, 1, 1, 11, 29, 17, 49, 53, 379, 819, 1551, 2907, 5805, 2167, 16123, 9263, 43903}}, +{12593, 17, 58357, {1, 3, 1, 13, 19, 27, 33, 127, 131, 697, 489, 3289, 1895, 3243, 19497, 32419, 55741}}, +{12594, 17, 58362, {1, 3, 1, 15, 7, 51, 91, 45, 251, 829, 2015, 2659, 151, 3327, 25281, 49291, 106343}}, +{12595, 17, 58364, {1, 1, 5, 5, 27, 11, 85, 45, 203, 413, 293, 3067, 4109, 959, 22337, 38767, 75829}}, +{12596, 17, 58375, {1, 1, 3, 5, 21, 35, 65, 173, 315, 423, 171, 3837, 817, 10153, 5517, 18115, 117437}}, +{12597, 17, 58384, {1, 1, 1, 7, 9, 29, 101, 55, 253, 37, 1717, 7, 3181, 1067, 20637, 54773, 106777}}, +{12598, 17, 58387, {1, 3, 7, 11, 13, 11, 87, 83, 83, 969, 589, 3625, 3373, 3921, 24487, 34235, 96289}}, +{12599, 17, 58405, {1, 3, 1, 11, 25, 35, 65, 131, 491, 167, 449, 2949, 5807, 5649, 7569, 37363, 106819}}, +{12600, 17, 58406, {1, 1, 5, 1, 9, 37, 33, 237, 79, 163, 1791, 3499, 4951, 2009, 16183, 10121, 40221}}, +{12601, 17, 58417, {1, 1, 5, 15, 21, 49, 123, 53, 27, 273, 1655, 3713, 5699, 1659, 31985, 6779, 10195}}, +{12602, 17, 58424, {1, 3, 5, 11, 27, 37, 93, 17, 263, 41, 1583, 703, 7689, 6667, 15497, 15255, 67153}}, +{12603, 17, 58435, {1, 1, 5, 9, 19, 13, 121, 39, 321, 177, 711, 3223, 3859, 14775, 19061, 40587, 97199}}, +{12604, 17, 58450, {1, 3, 7, 9, 23, 11, 93, 243, 3, 811, 679, 1103, 7579, 14147, 20255, 22485, 117179}}, +{12605, 17, 58452, {1, 3, 3, 5, 23, 9, 21, 243, 27, 501, 1273, 1501, 5331, 15663, 19483, 10637, 90905}}, +{12606, 17, 58459, {1, 3, 1, 15, 13, 11, 89, 37, 63, 463, 731, 3615, 3923, 4677, 21329, 1069, 57565}}, +{12607, 17, 58461, {1, 1, 1, 13, 19, 39, 63, 59, 389, 367, 1285, 2005, 8103, 4179, 3805, 55475, 126589}}, +{12608, 17, 58466, {1, 3, 5, 11, 27, 57, 27, 63, 365, 171, 665, 2035, 2831, 15955, 11551, 26741, 121059}}, +{12609, 17, 58468, {1, 3, 3, 3, 23, 19, 13, 7, 331, 613, 1783, 733, 7465, 1089, 4683, 15695, 31125}}, +{12610, 17, 58485, {1, 1, 5, 3, 3, 23, 95, 157, 303, 987, 307, 2679, 6173, 6633, 17727, 30901, 76109}}, +{12611, 17, 58489, {1, 1, 1, 1, 11, 21, 111, 81, 31, 727, 1133, 4083, 5811, 2707, 31749, 42939, 92225}}, +{12612, 17, 58492, {1, 3, 1, 11, 29, 21, 31, 115, 351, 213, 201, 3511, 3707, 12821, 8845, 59789, 59721}}, +{12613, 17, 58495, {1, 3, 5, 9, 7, 27, 65, 1, 305, 937, 1201, 2045, 2431, 12275, 24431, 3317, 119671}}, +{12614, 17, 58505, {1, 1, 7, 11, 19, 43, 107, 107, 261, 933, 1125, 1875, 1943, 7477, 20759, 57853, 29459}}, +{12615, 17, 58523, {1, 1, 3, 3, 17, 43, 79, 19, 167, 341, 237, 677, 725, 2353, 12003, 48921, 20707}}, +{12616, 17, 58535, {1, 3, 3, 5, 31, 39, 91, 81, 121, 59, 737, 1767, 4407, 9159, 10237, 25361, 38891}}, +{12617, 17, 58536, {1, 1, 5, 7, 31, 47, 37, 47, 171, 623, 597, 2807, 4875, 15139, 18809, 24279, 36563}}, +{12618, 17, 58549, {1, 3, 5, 3, 3, 7, 31, 135, 81, 777, 1055, 337, 4309, 9575, 11075, 54429, 30097}}, +{12619, 17, 58550, {1, 1, 5, 1, 3, 57, 53, 25, 117, 961, 947, 257, 2645, 6935, 27511, 54051, 129095}}, +{12620, 17, 58561, {1, 1, 1, 15, 23, 45, 11, 173, 407, 373, 1051, 3519, 1875, 1291, 4393, 9047, 102159}}, +{12621, 17, 58562, {1, 1, 3, 5, 9, 51, 23, 253, 261, 339, 505, 3601, 265, 8375, 7241, 40715, 114439}}, +{12622, 17, 58573, {1, 1, 7, 7, 3, 63, 5, 233, 259, 947, 1367, 2699, 6029, 9371, 6567, 39961, 31621}}, +{12623, 17, 58576, {1, 1, 3, 3, 25, 43, 73, 61, 305, 257, 235, 421, 6621, 1025, 18831, 44525, 87665}}, +{12624, 17, 58592, {1, 3, 5, 7, 19, 33, 77, 163, 191, 115, 1275, 3551, 3521, 6767, 30209, 48895, 114185}}, +{12625, 17, 58601, {1, 1, 3, 3, 29, 37, 3, 165, 267, 807, 967, 2893, 3287, 12249, 21411, 19291, 91781}}, +{12626, 17, 58622, {1, 1, 5, 5, 27, 55, 51, 137, 429, 775, 1525, 3911, 5367, 5981, 24373, 16331, 31887}}, +{12627, 17, 58627, {1, 1, 5, 11, 17, 49, 37, 243, 509, 563, 1381, 2013, 7341, 10509, 10049, 29135, 32709}}, +{12628, 17, 58629, {1, 1, 3, 13, 1, 33, 119, 5, 477, 701, 1329, 1023, 2091, 12895, 6443, 1053, 44741}}, +{12629, 17, 58634, {1, 3, 5, 7, 13, 19, 1, 113, 3, 481, 1555, 2857, 3519, 7903, 16153, 62909, 78877}}, +{12630, 17, 58639, {1, 1, 7, 11, 7, 27, 47, 175, 87, 605, 411, 4065, 8059, 5023, 27719, 3111, 62247}}, +{12631, 17, 58641, {1, 3, 1, 15, 27, 37, 71, 77, 297, 647, 1651, 2543, 3925, 4827, 28587, 49663, 56581}}, +{12632, 17, 58644, {1, 3, 5, 1, 19, 49, 63, 9, 43, 243, 931, 3577, 2371, 10513, 13691, 27739, 61011}}, +{12633, 17, 58654, {1, 1, 3, 1, 23, 27, 53, 149, 157, 735, 1087, 1529, 6613, 2493, 4879, 26771, 123711}}, +{12634, 17, 58663, {1, 3, 7, 13, 5, 3, 43, 3, 343, 497, 943, 3443, 4335, 4779, 4033, 25871, 10965}}, +{12635, 17, 58667, {1, 3, 5, 1, 5, 11, 93, 73, 199, 455, 421, 3495, 4381, 717, 21033, 41287, 44743}}, +{12636, 17, 58677, {1, 1, 3, 9, 13, 33, 77, 143, 81, 57, 1061, 3205, 2411, 1347, 23149, 21913, 119331}}, +{12637, 17, 58682, {1, 3, 1, 7, 1, 15, 45, 247, 119, 905, 457, 3939, 4865, 11191, 27705, 46315, 68367}}, +{12638, 17, 58690, {1, 3, 3, 15, 31, 5, 55, 169, 381, 1009, 1893, 2751, 411, 8653, 30367, 54919, 23541}}, +{12639, 17, 58692, {1, 3, 7, 1, 29, 27, 77, 239, 109, 125, 355, 2759, 2229, 3435, 16241, 53309, 613}}, +{12640, 17, 58695, {1, 3, 1, 3, 11, 27, 33, 167, 311, 1003, 1635, 2479, 1831, 6225, 17711, 30185, 87043}}, +{12641, 17, 58710, {1, 3, 7, 13, 7, 61, 3, 243, 55, 259, 461, 3357, 121, 9107, 19393, 3719, 71403}}, +{12642, 17, 58713, {1, 1, 7, 15, 23, 25, 55, 89, 241, 297, 113, 59, 4799, 381, 29127, 811, 91149}}, +{12643, 17, 58723, {1, 1, 3, 3, 13, 35, 43, 163, 69, 69, 1949, 2383, 887, 2349, 12539, 167, 23697}}, +{12644, 17, 58740, {1, 3, 3, 11, 3, 45, 23, 149, 55, 963, 1293, 2715, 1401, 16081, 12821, 2129, 26835}}, +{12645, 17, 58749, {1, 3, 3, 13, 29, 47, 21, 249, 141, 179, 627, 329, 6377, 12049, 11715, 1447, 119359}}, +{12646, 17, 58760, {1, 1, 5, 13, 7, 59, 103, 189, 401, 169, 455, 1197, 1881, 12679, 4533, 25561, 79281}}, +{12647, 17, 58766, {1, 1, 7, 15, 21, 59, 97, 77, 397, 487, 647, 2277, 269, 713, 17741, 37387, 100143}}, +{12648, 17, 58773, {1, 3, 5, 1, 1, 43, 31, 201, 21, 805, 1533, 1407, 4719, 2673, 22757, 7605, 72485}}, +{12649, 17, 58780, {1, 1, 3, 11, 27, 25, 99, 135, 225, 367, 1311, 683, 7193, 8209, 17081, 55709, 3029}}, +{12650, 17, 58787, {1, 3, 5, 5, 17, 9, 59, 27, 153, 353, 647, 2919, 1877, 5359, 19787, 46237, 7}}, +{12651, 17, 58796, {1, 3, 3, 15, 11, 39, 75, 223, 489, 57, 1355, 3941, 6603, 12883, 20909, 24065, 53543}}, +{12652, 17, 58816, {1, 1, 3, 9, 17, 47, 61, 49, 397, 23, 2019, 37, 23, 8967, 10357, 54419, 27279}}, +{12653, 17, 58822, {1, 1, 1, 7, 31, 43, 87, 111, 293, 969, 1431, 2275, 3131, 2915, 24595, 63049, 71517}}, +{12654, 17, 58831, {1, 1, 3, 11, 11, 63, 89, 33, 95, 299, 593, 3353, 7389, 841, 1895, 64835, 19915}}, +{12655, 17, 58839, {1, 1, 1, 3, 13, 63, 51, 3, 327, 401, 1289, 2699, 5599, 5101, 3189, 23415, 53429}}, +{12656, 17, 58849, {1, 1, 7, 13, 27, 15, 57, 201, 365, 643, 171, 2417, 1763, 7567, 5323, 50911, 24281}}, +{12657, 17, 58859, {1, 3, 3, 13, 31, 37, 31, 243, 225, 431, 379, 1565, 1567, 11477, 4641, 58823, 88565}}, +{12658, 17, 58870, {1, 3, 3, 7, 13, 39, 79, 169, 401, 177, 2023, 1703, 5563, 15619, 21445, 59287, 30141}}, +{12659, 17, 58879, {1, 3, 3, 15, 17, 47, 13, 163, 361, 353, 1435, 2083, 4109, 14105, 28585, 1721, 119133}}, +{12660, 17, 58889, {1, 3, 3, 3, 29, 41, 97, 131, 501, 415, 1735, 2315, 6499, 11417, 3879, 3957, 47117}}, +{12661, 17, 58904, {1, 1, 3, 13, 5, 25, 29, 65, 235, 949, 1571, 927, 515, 7519, 23123, 4127, 71019}}, +{12662, 17, 58914, {1, 1, 5, 13, 1, 41, 5, 137, 487, 711, 561, 2495, 5367, 6955, 9453, 54499, 118373}}, +{12663, 17, 58923, {1, 3, 3, 5, 27, 15, 23, 237, 95, 873, 1949, 1579, 7089, 8837, 30463, 9903, 61919}}, +{12664, 17, 58940, {1, 3, 1, 13, 5, 5, 15, 5, 429, 617, 383, 2495, 409, 15541, 11209, 20625, 58493}}, +{12665, 17, 58945, {1, 1, 7, 11, 25, 21, 113, 219, 459, 777, 289, 2435, 6665, 83, 22997, 6561, 82923}}, +{12666, 17, 58952, {1, 1, 1, 7, 19, 53, 37, 249, 273, 639, 2007, 1463, 7819, 9013, 19539, 41235, 58059}}, +{12667, 17, 58960, {1, 1, 3, 11, 13, 51, 97, 55, 237, 159, 1305, 3705, 2527, 13065, 13873, 10275, 3769}}, +{12668, 17, 58965, {1, 1, 5, 7, 13, 49, 41, 13, 301, 461, 1169, 3805, 7163, 4133, 17255, 48283, 87059}}, +{12669, 17, 58986, {1, 3, 7, 15, 9, 19, 45, 195, 445, 145, 543, 2839, 315, 10991, 3317, 46501, 29209}}, +{12670, 17, 59000, {1, 1, 3, 5, 23, 51, 53, 119, 217, 747, 1307, 3039, 5523, 5891, 21035, 56471, 80305}}, +{12671, 17, 59006, {1, 3, 1, 3, 23, 17, 97, 71, 7, 839, 229, 3407, 3025, 1989, 16599, 38755, 11139}}, +{12672, 17, 59027, {1, 1, 7, 7, 7, 19, 67, 43, 293, 191, 1549, 1621, 7083, 11633, 1899, 4515, 89753}}, +{12673, 17, 59034, {1, 3, 7, 11, 1, 23, 17, 63, 265, 709, 453, 1309, 6861, 7257, 17705, 28565, 15231}}, +{12674, 17, 59052, {1, 3, 5, 13, 1, 53, 99, 79, 241, 771, 497, 987, 2353, 6931, 227, 57781, 109583}}, +{12675, 17, 59058, {1, 3, 3, 5, 31, 47, 17, 97, 93, 119, 2045, 3597, 7983, 4993, 30659, 3419, 32803}}, +{12676, 17, 59081, {1, 3, 7, 1, 11, 41, 3, 7, 155, 627, 979, 2405, 7467, 6763, 28523, 56493, 1291}}, +{12677, 17, 59082, {1, 1, 1, 7, 3, 43, 13, 187, 415, 1001, 667, 1371, 8075, 12855, 27215, 9399, 70657}}, +{12678, 17, 59089, {1, 3, 1, 9, 29, 53, 117, 17, 443, 381, 507, 643, 5891, 10725, 20251, 497, 101313}}, +{12679, 17, 59096, {1, 3, 3, 1, 31, 47, 59, 75, 173, 347, 1, 117, 3639, 10231, 863, 56795, 56107}}, +{12680, 17, 59118, {1, 3, 1, 15, 11, 41, 97, 251, 177, 275, 1849, 1281, 3659, 9709, 16239, 7445, 47661}}, +{12681, 17, 59123, {1, 3, 3, 5, 13, 1, 27, 251, 89, 863, 685, 3915, 2201, 4313, 32083, 37171, 120885}}, +{12682, 17, 59126, {1, 3, 3, 3, 3, 11, 77, 135, 147, 475, 505, 611, 4763, 9445, 28639, 51343, 119093}}, +{12683, 17, 59132, {1, 3, 7, 1, 11, 9, 67, 73, 375, 977, 1011, 1621, 6623, 8077, 26321, 7461, 130637}}, +{12684, 17, 59135, {1, 3, 5, 15, 15, 59, 63, 217, 117, 375, 1151, 3451, 5843, 13221, 20673, 10817, 57711}}, +{12685, 17, 59150, {1, 1, 3, 5, 19, 5, 9, 101, 321, 815, 451, 719, 523, 1299, 27823, 48041, 45939}}, +{12686, 17, 59174, {1, 1, 1, 9, 5, 49, 59, 59, 409, 5, 1075, 21, 7837, 4543, 3085, 55473, 89309}}, +{12687, 17, 59177, {1, 3, 3, 13, 9, 31, 93, 181, 153, 795, 713, 933, 6001, 9075, 29781, 14029, 46361}}, +{12688, 17, 59185, {1, 3, 5, 3, 9, 21, 79, 129, 361, 627, 743, 3041, 5381, 3627, 12581, 35183, 83183}}, +{12689, 17, 59195, {1, 3, 3, 3, 29, 29, 93, 187, 341, 727, 181, 133, 6525, 5673, 2739, 23349, 62505}}, +{12690, 17, 59203, {1, 3, 5, 13, 27, 59, 127, 149, 321, 613, 1543, 1537, 2909, 5139, 3755, 49285, 35183}}, +{12691, 17, 59206, {1, 3, 3, 9, 5, 31, 19, 173, 137, 19, 799, 1847, 3897, 15775, 22411, 55405, 95713}}, +{12692, 17, 59234, {1, 3, 5, 5, 31, 1, 87, 97, 481, 797, 459, 793, 4339, 5443, 31717, 6691, 68841}}, +{12693, 17, 59248, {1, 3, 3, 5, 3, 9, 123, 21, 393, 683, 1007, 971, 729, 7113, 2811, 51183, 37093}}, +{12694, 17, 59258, {1, 3, 5, 5, 27, 31, 19, 227, 123, 937, 763, 2117, 3825, 9151, 95, 54963, 62919}}, +{12695, 17, 59260, {1, 3, 1, 3, 23, 21, 21, 7, 7, 165, 99, 3073, 91, 8725, 17613, 47119, 41441}}, +{12696, 17, 59270, {1, 3, 7, 9, 29, 49, 117, 49, 205, 605, 1567, 3323, 1559, 10949, 14349, 34951, 99901}}, +{12697, 17, 59284, {1, 1, 1, 1, 15, 41, 31, 133, 439, 305, 719, 147, 6849, 5947, 31749, 45171, 15265}}, +{12698, 17, 59291, {1, 1, 5, 11, 19, 37, 13, 253, 385, 625, 1801, 1191, 547, 12025, 17971, 54127, 97323}}, +{12699, 17, 59293, {1, 3, 5, 5, 27, 9, 57, 245, 59, 211, 1195, 763, 6743, 6309, 25759, 26633, 27497}}, +{12700, 17, 59297, {1, 3, 5, 5, 9, 51, 49, 29, 213, 855, 305, 3961, 3187, 6815, 19015, 2539, 81705}}, +{12701, 17, 59312, {1, 1, 5, 7, 11, 61, 123, 163, 127, 871, 463, 2279, 5931, 2913, 23215, 40215, 91373}}, +{12702, 17, 59315, {1, 1, 7, 1, 29, 57, 55, 189, 285, 603, 747, 3753, 3359, 10277, 25319, 17569, 80125}}, +{12703, 17, 59327, {1, 3, 1, 9, 7, 53, 9, 55, 117, 495, 2045, 2487, 1625, 775, 17773, 62159, 79537}}, +{12704, 17, 59332, {1, 1, 5, 1, 1, 11, 67, 79, 57, 677, 2045, 3913, 853, 3581, 10509, 35097, 24585}}, +{12705, 17, 59347, {1, 3, 7, 7, 19, 15, 13, 237, 297, 807, 657, 2229, 2931, 10283, 49, 56485, 113889}}, +{12706, 17, 59354, {1, 3, 5, 13, 11, 23, 37, 229, 253, 411, 39, 1069, 3683, 12141, 11087, 64875, 62991}}, +{12707, 17, 59363, {1, 1, 1, 1, 13, 11, 21, 227, 305, 1021, 1039, 3095, 4621, 5723, 31989, 30681, 58487}}, +{12708, 17, 59369, {1, 3, 3, 5, 17, 47, 127, 65, 85, 961, 277, 549, 2111, 4183, 771, 11921, 111489}}, +{12709, 17, 59377, {1, 3, 3, 5, 31, 39, 89, 51, 277, 705, 375, 1603, 2793, 7425, 25065, 44945, 48391}}, +{12710, 17, 59406, {1, 1, 5, 7, 9, 45, 21, 217, 183, 65, 625, 1239, 4241, 8043, 13615, 5611, 82501}}, +{12711, 17, 59413, {1, 1, 7, 13, 15, 51, 29, 35, 73, 601, 233, 3117, 3031, 4229, 4299, 62761, 45291}}, +{12712, 17, 59423, {1, 3, 5, 5, 27, 55, 7, 1, 333, 501, 913, 1939, 5131, 5597, 1271, 30195, 20947}}, +{12713, 17, 59434, {1, 3, 5, 15, 19, 27, 43, 111, 435, 615, 811, 2113, 2503, 7553, 1619, 24773, 40881}}, +{12714, 17, 59441, {1, 3, 5, 11, 11, 31, 21, 147, 151, 141, 527, 1839, 339, 1225, 29621, 19691, 22031}}, +{12715, 17, 59442, {1, 1, 3, 13, 23, 35, 61, 181, 221, 837, 241, 3033, 1849, 12563, 11387, 3027, 33419}}, +{12716, 17, 59456, {1, 3, 3, 7, 1, 39, 125, 249, 231, 575, 1847, 197, 3969, 12945, 10257, 27227, 94097}}, +{12717, 17, 59465, {1, 3, 1, 11, 19, 7, 85, 119, 37, 253, 1575, 447, 6947, 14399, 32095, 15385, 62917}}, +{12718, 17, 59479, {1, 3, 7, 11, 23, 53, 113, 193, 253, 651, 1717, 447, 4055, 13675, 18479, 28375, 66475}}, +{12719, 17, 59501, {1, 1, 7, 3, 17, 27, 13, 209, 67, 271, 121, 1565, 2589, 8033, 3939, 14181, 111787}}, +{12720, 17, 59504, {1, 1, 3, 3, 5, 57, 75, 87, 165, 947, 967, 3353, 2055, 16195, 3701, 62637, 58343}}, +{12721, 17, 59507, {1, 1, 7, 13, 31, 41, 125, 111, 253, 257, 57, 679, 3333, 8259, 26331, 15883, 95023}}, +{12722, 17, 59514, {1, 3, 7, 11, 1, 47, 5, 249, 353, 271, 1121, 1935, 4971, 8447, 9983, 55959, 66179}}, +{12723, 17, 59523, {1, 3, 5, 11, 1, 61, 101, 43, 97, 241, 687, 4027, 4319, 4905, 12357, 51099, 97093}}, +{12724, 17, 59525, {1, 1, 3, 15, 25, 25, 117, 139, 475, 961, 1585, 2795, 2411, 11049, 18209, 15511, 43193}}, +{12725, 17, 59526, {1, 3, 3, 9, 9, 11, 107, 15, 189, 27, 289, 3111, 851, 3401, 31981, 7181, 47533}}, +{12726, 17, 59537, {1, 1, 5, 15, 31, 57, 37, 77, 205, 707, 1505, 1343, 629, 13335, 6719, 35405, 38905}}, +{12727, 17, 59543, {1, 3, 7, 7, 21, 63, 35, 125, 507, 285, 621, 2257, 3009, 13703, 9761, 54927, 16925}}, +{12728, 17, 59560, {1, 1, 1, 11, 11, 53, 37, 17, 167, 663, 1349, 1395, 7721, 9329, 2161, 37093, 52425}}, +{12729, 17, 59563, {1, 1, 7, 9, 1, 15, 113, 53, 87, 133, 131, 847, 609, 14737, 1639, 15511, 46987}}, +{12730, 17, 59566, {1, 1, 7, 7, 25, 21, 125, 149, 201, 791, 1323, 2817, 1141, 289, 14349, 64461, 76575}}, +{12731, 17, 59577, {1, 3, 3, 7, 15, 1, 123, 227, 83, 967, 2039, 3205, 715, 10787, 11235, 50375, 66911}}, +{12732, 17, 59580, {1, 3, 3, 11, 9, 45, 41, 57, 327, 903, 1705, 3947, 3173, 1035, 25529, 15217, 80795}}, +{12733, 17, 59586, {1, 3, 1, 13, 15, 63, 69, 57, 479, 277, 1641, 3465, 2629, 9901, 5781, 55101, 33049}}, +{12734, 17, 59597, {1, 1, 3, 3, 31, 25, 57, 189, 491, 335, 373, 3069, 1623, 10781, 6559, 27057, 111491}}, +{12735, 17, 59612, {1, 3, 3, 15, 19, 57, 67, 225, 343, 93, 315, 1011, 4437, 10371, 27927, 51269, 65653}}, +{12736, 17, 59615, {1, 3, 5, 5, 21, 43, 105, 153, 65, 167, 369, 3167, 785, 7509, 3753, 9035, 29039}}, +{12737, 17, 59622, {1, 1, 7, 3, 17, 9, 113, 21, 175, 967, 13, 2701, 5667, 9761, 20267, 33497, 88819}}, +{12738, 17, 59631, {1, 1, 1, 7, 9, 61, 121, 205, 283, 259, 2027, 2361, 3995, 6787, 26867, 61681, 96149}}, +{12739, 17, 59657, {1, 3, 3, 13, 31, 37, 125, 151, 317, 947, 423, 2907, 6905, 13247, 27997, 4755, 73173}}, +{12740, 17, 59660, {1, 1, 7, 13, 1, 63, 85, 75, 33, 483, 85, 1583, 4783, 14003, 31147, 12643, 99447}}, +{12741, 17, 59665, {1, 1, 1, 7, 31, 5, 93, 179, 213, 857, 3, 1015, 1481, 2413, 28759, 13941, 24851}}, +{12742, 17, 59671, {1, 1, 5, 5, 5, 35, 73, 57, 469, 885, 1951, 3599, 5555, 7259, 22599, 7627, 109227}}, +{12743, 17, 59675, {1, 1, 5, 13, 1, 1, 69, 107, 473, 793, 1851, 887, 2241, 7851, 21821, 25431, 118565}}, +{12744, 17, 59688, {1, 1, 1, 3, 15, 51, 57, 175, 91, 113, 1671, 925, 2187, 1097, 28793, 45819, 41855}}, +{12745, 17, 59706, {1, 1, 3, 3, 15, 51, 99, 177, 379, 713, 1273, 3245, 5515, 14657, 28981, 1197, 29283}}, +{12746, 17, 59708, {1, 3, 3, 15, 13, 27, 29, 7, 17, 373, 779, 1589, 3077, 13673, 31029, 43765, 74339}}, +{12747, 17, 59713, {1, 1, 3, 1, 25, 17, 15, 223, 219, 569, 155, 1307, 7143, 7975, 22581, 53223, 44271}}, +{12748, 17, 59714, {1, 1, 1, 7, 11, 23, 67, 177, 189, 267, 1799, 2453, 2367, 4193, 1827, 10191, 12265}}, +{12749, 17, 59720, {1, 3, 3, 11, 3, 29, 121, 231, 211, 191, 1803, 1171, 6801, 4007, 14111, 42951, 8311}}, +{12750, 17, 59737, {1, 3, 3, 11, 9, 23, 11, 231, 349, 47, 1645, 345, 3681, 12227, 29955, 32131, 391}}, +{12751, 17, 59743, {1, 1, 3, 11, 27, 17, 17, 49, 463, 173, 1993, 2339, 3763, 1931, 29969, 55579, 114805}}, +{12752, 17, 59744, {1, 3, 5, 15, 5, 21, 105, 69, 173, 771, 815, 3807, 577, 12589, 32193, 37601, 23961}}, +{12753, 17, 59749, {1, 1, 3, 9, 21, 63, 57, 213, 327, 765, 333, 2065, 719, 6159, 15769, 49335, 2289}}, +{12754, 17, 59756, {1, 3, 3, 1, 27, 51, 13, 87, 465, 729, 507, 2811, 6721, 14279, 31733, 56165, 78169}}, +{12755, 17, 59783, {1, 1, 1, 9, 25, 1, 47, 37, 407, 623, 1409, 3703, 4491, 3037, 8129, 13547, 50517}}, +{12756, 17, 59784, {1, 3, 5, 13, 5, 51, 127, 225, 215, 377, 1013, 2387, 4237, 1317, 5245, 17535, 100707}}, +{12757, 17, 59787, {1, 3, 5, 13, 31, 25, 123, 243, 317, 505, 483, 1743, 3097, 4139, 4525, 63143, 47665}}, +{12758, 17, 59795, {1, 3, 3, 13, 27, 19, 21, 187, 211, 471, 1931, 2877, 3635, 9233, 12385, 15741, 50843}}, +{12759, 17, 59804, {1, 1, 3, 13, 23, 33, 71, 45, 371, 621, 1057, 1605, 6329, 3763, 8613, 2965, 8141}}, +{12760, 17, 59811, {1, 1, 5, 7, 7, 17, 33, 209, 293, 35, 1665, 3721, 6245, 14567, 15349, 16195, 59757}}, +{12761, 17, 59814, {1, 1, 7, 7, 31, 19, 47, 83, 277, 323, 1225, 969, 2193, 10175, 27657, 50265, 9817}}, +{12762, 17, 59823, {1, 1, 5, 7, 15, 21, 103, 95, 189, 737, 309, 357, 5953, 9701, 15757, 20753, 88647}}, +{12763, 17, 59838, {1, 1, 5, 13, 5, 13, 61, 235, 333, 889, 1559, 1653, 1871, 10631, 18067, 47037, 9507}}, +{12764, 17, 59840, {1, 3, 7, 1, 31, 61, 69, 159, 41, 107, 807, 1517, 3551, 3435, 6151, 50025, 126949}}, +{12765, 17, 59846, {1, 1, 7, 15, 7, 41, 55, 103, 9, 105, 1397, 3955, 7723, 3389, 32435, 36005, 73733}}, +{12766, 17, 59849, {1, 1, 1, 13, 15, 59, 43, 151, 321, 215, 411, 3103, 7455, 14041, 1673, 56425, 59085}}, +{12767, 17, 59855, {1, 1, 1, 1, 5, 39, 81, 183, 509, 455, 753, 3743, 227, 7807, 23747, 42289, 122765}}, +{12768, 17, 59860, {1, 1, 7, 3, 9, 29, 89, 131, 141, 851, 1221, 67, 3117, 1329, 13151, 36827, 34313}}, +{12769, 17, 59867, {1, 3, 1, 5, 9, 29, 11, 189, 389, 79, 1903, 835, 6043, 8953, 18985, 8305, 51939}}, +{12770, 17, 59869, {1, 3, 5, 3, 9, 49, 47, 43, 193, 917, 795, 2719, 5709, 9993, 30637, 26841, 93113}}, +{12771, 17, 59885, {1, 3, 7, 5, 13, 15, 85, 169, 315, 963, 617, 1191, 6739, 11535, 3423, 6695, 2047}}, +{12772, 17, 59888, {1, 3, 1, 3, 5, 49, 41, 255, 131, 255, 825, 1485, 7005, 10107, 3913, 4731, 33199}}, +{12773, 17, 59893, {1, 3, 1, 9, 27, 63, 109, 29, 183, 381, 591, 617, 1187, 4381, 30543, 9933, 109785}}, +{12774, 17, 59904, {1, 3, 7, 7, 13, 29, 125, 105, 353, 677, 623, 1553, 5435, 10853, 16663, 42277, 64333}}, +{12775, 17, 59919, {1, 3, 3, 11, 3, 47, 49, 41, 249, 497, 963, 237, 625, 11303, 6871, 60441, 39559}}, +{12776, 17, 59922, {1, 3, 3, 1, 1, 27, 107, 253, 59, 445, 1761, 2865, 7117, 2363, 4007, 46047, 10811}}, +{12777, 17, 59927, {1, 3, 5, 5, 25, 13, 17, 107, 321, 691, 351, 577, 5001, 9437, 12451, 44997, 42727}}, +{12778, 17, 59937, {1, 3, 1, 9, 1, 31, 87, 117, 111, 379, 1989, 1155, 4777, 8563, 14585, 33375, 66985}}, +{12779, 17, 59940, {1, 3, 5, 5, 9, 51, 79, 135, 89, 929, 277, 763, 5569, 15545, 28393, 56921, 102093}}, +{12780, 17, 59944, {1, 1, 3, 7, 7, 55, 15, 37, 3, 439, 577, 2051, 101, 13655, 11959, 38127, 6639}}, +{12781, 17, 59947, {1, 1, 3, 9, 21, 11, 27, 221, 465, 565, 1313, 1405, 2421, 10543, 18369, 33751, 87785}}, +{12782, 17, 59949, {1, 3, 5, 11, 21, 39, 105, 231, 469, 711, 997, 427, 5797, 3249, 15141, 29413, 66509}}, +{12783, 17, 59961, {1, 3, 7, 5, 25, 31, 111, 37, 229, 773, 193, 553, 673, 4693, 24441, 8713, 121203}}, +{12784, 17, 59975, {1, 3, 1, 9, 23, 27, 103, 7, 183, 549, 1433, 2831, 3383, 13229, 10005, 14135, 15967}}, +{12785, 17, 59981, {1, 3, 3, 11, 11, 59, 11, 251, 373, 399, 255, 1177, 5493, 13559, 29037, 23405, 79495}}, +{12786, 17, 59994, {1, 3, 1, 11, 25, 45, 69, 115, 153, 259, 527, 9, 5807, 6015, 3765, 61621, 8645}}, +{12787, 17, 59999, {1, 3, 3, 9, 19, 5, 113, 191, 345, 655, 429, 3975, 4297, 5723, 5345, 64457, 79031}}, +{12788, 17, 60018, {1, 3, 7, 7, 15, 59, 5, 87, 289, 1005, 931, 2403, 485, 16043, 15623, 39253, 61377}}, +{12789, 17, 60023, {1, 3, 3, 9, 17, 53, 31, 9, 217, 711, 1007, 1375, 2733, 13735, 19825, 59741, 83827}}, +{12790, 17, 60024, {1, 1, 3, 15, 11, 11, 41, 195, 79, 1013, 1353, 1961, 7365, 7533, 13315, 8441, 90705}}, +{12791, 17, 60039, {1, 1, 5, 7, 23, 17, 93, 165, 371, 495, 865, 2753, 15, 10729, 16553, 6039, 96721}}, +{12792, 17, 60043, {1, 3, 3, 3, 25, 25, 67, 119, 485, 63, 75, 2365, 4711, 16129, 5589, 50621, 1203}}, +{12793, 17, 60048, {1, 1, 7, 1, 27, 57, 49, 79, 479, 79, 683, 753, 345, 2007, 18983, 42729, 56369}}, +{12794, 17, 60054, {1, 1, 7, 7, 1, 23, 9, 155, 425, 735, 1625, 2271, 7875, 11219, 12147, 52351, 55845}}, +{12795, 17, 60073, {1, 1, 1, 9, 13, 11, 67, 139, 259, 59, 1593, 1207, 237, 11683, 24719, 27689, 115617}}, +{12796, 17, 60079, {1, 1, 5, 7, 7, 15, 9, 171, 35, 131, 133, 3939, 1401, 6347, 4051, 64235, 68581}}, +{12797, 17, 60082, {1, 3, 3, 1, 27, 21, 29, 119, 201, 527, 763, 203, 1139, 3951, 3341, 17023, 13493}}, +{12798, 17, 60102, {1, 1, 1, 15, 27, 31, 97, 203, 255, 573, 781, 4095, 3381, 363, 32733, 34517, 77973}}, +{12799, 17, 60108, {1, 1, 3, 9, 29, 9, 115, 207, 267, 513, 1071, 3943, 5045, 10071, 6627, 18043, 44289}}, +{12800, 17, 60111, {1, 1, 7, 7, 29, 25, 51, 31, 305, 239, 197, 3825, 2363, 4903, 16237, 37571, 66545}}, +{12801, 17, 60120, {1, 1, 5, 11, 29, 11, 63, 145, 185, 359, 249, 1179, 105, 1745, 28819, 40513, 74525}}, +{12802, 17, 60149, {1, 1, 7, 1, 15, 35, 39, 5, 139, 119, 2047, 3369, 2857, 11037, 30523, 24813, 89209}}, +{12803, 17, 60153, {1, 1, 5, 11, 9, 41, 97, 15, 357, 95, 361, 3, 3227, 8445, 16541, 30661, 84215}}, +{12804, 17, 60161, {1, 1, 7, 5, 11, 55, 77, 19, 331, 621, 893, 577, 1025, 1561, 32331, 59469, 67065}}, +{12805, 17, 60168, {1, 3, 7, 7, 17, 53, 55, 65, 295, 391, 445, 33, 5361, 669, 6447, 3833, 129463}}, +{12806, 17, 60176, {1, 3, 7, 5, 21, 5, 83, 207, 485, 597, 1429, 581, 6831, 2885, 24669, 35211, 69549}}, +{12807, 17, 60182, {1, 3, 3, 1, 3, 33, 69, 199, 427, 893, 1823, 1291, 4533, 11779, 18515, 17597, 79159}}, +{12808, 17, 60185, {1, 3, 1, 1, 17, 41, 91, 21, 509, 875, 777, 639, 4009, 12103, 12947, 58395, 36625}}, +{12809, 17, 60204, {1, 1, 7, 15, 13, 11, 19, 243, 365, 661, 1193, 279, 6055, 13921, 5811, 14337, 105375}}, +{12810, 17, 60212, {1, 3, 7, 3, 3, 51, 101, 175, 83, 921, 523, 3909, 8003, 1295, 4153, 4757, 107881}}, +{12811, 17, 60215, {1, 1, 1, 3, 19, 15, 39, 125, 401, 399, 381, 1123, 2339, 12231, 13387, 50829, 79263}}, +{12812, 17, 60219, {1, 3, 1, 1, 15, 13, 55, 181, 53, 671, 1929, 1003, 521, 15279, 1837, 11877, 79241}}, +{12813, 17, 60222, {1, 3, 3, 9, 23, 45, 21, 37, 1, 701, 1253, 2595, 6261, 4139, 24443, 6655, 109755}}, +{12814, 17, 60229, {1, 3, 7, 1, 1, 13, 57, 41, 95, 985, 1613, 3487, 7509, 213, 32139, 27869, 123589}}, +{12815, 17, 60234, {1, 3, 7, 11, 15, 27, 27, 97, 167, 755, 1331, 3961, 3067, 13827, 8983, 8755, 77847}}, +{12816, 17, 60241, {1, 1, 5, 13, 5, 59, 51, 193, 339, 837, 137, 3807, 2617, 14449, 11035, 16827, 24531}}, +{12817, 17, 60248, {1, 1, 7, 15, 17, 37, 67, 99, 261, 743, 275, 33, 8107, 4959, 9683, 19757, 36471}}, +{12818, 17, 60277, {1, 3, 5, 5, 29, 7, 107, 95, 235, 761, 1205, 3125, 4791, 4645, 25623, 6463, 121887}}, +{12819, 17, 60282, {1, 3, 1, 1, 19, 19, 73, 189, 243, 669, 489, 1927, 1651, 11391, 30699, 64719, 60359}}, +{12820, 17, 60287, {1, 3, 7, 3, 29, 47, 7, 21, 299, 739, 1605, 749, 5755, 11579, 793, 36845, 14695}}, +{12821, 17, 60303, {1, 1, 5, 15, 17, 53, 107, 49, 103, 505, 1191, 2881, 7435, 7515, 24237, 5397, 47003}}, +{12822, 17, 60306, {1, 1, 7, 15, 25, 45, 121, 157, 313, 709, 1519, 2195, 5487, 1789, 32401, 4197, 9329}}, +{12823, 17, 60327, {1, 3, 3, 11, 21, 17, 77, 153, 275, 765, 1943, 3395, 5807, 12809, 29891, 42579, 75565}}, +{12824, 17, 60333, {1, 3, 5, 11, 11, 3, 63, 9, 223, 441, 1047, 441, 867, 3399, 15813, 13, 25293}}, +{12825, 17, 60334, {1, 1, 7, 1, 17, 25, 1, 7, 211, 117, 1417, 1057, 3369, 13211, 11437, 20877, 114867}}, +{12826, 17, 60336, {1, 1, 1, 15, 5, 41, 89, 165, 343, 447, 55, 1013, 8179, 12295, 18615, 23885, 46149}}, +{12827, 17, 60345, {1, 1, 5, 1, 15, 37, 109, 141, 323, 151, 1669, 1365, 3047, 13145, 30355, 12377, 102467}}, +{12828, 17, 60359, {1, 1, 3, 15, 15, 49, 83, 127, 285, 715, 981, 1153, 3019, 11071, 24229, 63807, 16315}}, +{12829, 17, 60368, {1, 1, 3, 1, 23, 35, 21, 179, 83, 929, 1033, 643, 3591, 10363, 7739, 259, 106879}}, +{12830, 17, 60380, {1, 1, 5, 7, 19, 9, 63, 241, 387, 851, 1709, 1161, 7469, 2093, 6169, 6085, 29851}}, +{12831, 17, 60389, {1, 3, 7, 5, 17, 59, 99, 87, 189, 853, 193, 1191, 5683, 15865, 27791, 55575, 13479}}, +{12832, 17, 60390, {1, 3, 3, 3, 25, 51, 81, 129, 365, 319, 179, 2863, 511, 14471, 3689, 59505, 80105}}, +{12833, 17, 60394, {1, 1, 1, 15, 5, 33, 69, 35, 429, 715, 1781, 783, 1089, 8969, 26987, 23519, 34227}}, +{12834, 17, 60407, {1, 3, 5, 9, 1, 51, 9, 121, 325, 945, 2025, 1985, 7337, 10837, 21299, 20591, 76905}}, +{12835, 17, 60414, {1, 3, 7, 3, 15, 51, 19, 109, 297, 491, 15, 1905, 1479, 1997, 18129, 43861, 84925}}, +{12836, 17, 60419, {1, 1, 3, 5, 7, 21, 1, 137, 207, 943, 1171, 2019, 6687, 10683, 20937, 34033, 43907}}, +{12837, 17, 60426, {1, 1, 1, 11, 25, 21, 47, 227, 247, 933, 471, 955, 4299, 5605, 18469, 62357, 98273}}, +{12838, 17, 60428, {1, 1, 5, 13, 21, 39, 41, 23, 493, 311, 1401, 537, 2919, 11519, 12597, 58321, 41401}}, +{12839, 17, 60431, {1, 1, 7, 5, 31, 55, 93, 151, 219, 765, 1247, 2775, 7167, 13413, 17071, 57969, 114069}}, +{12840, 17, 60440, {1, 3, 1, 15, 31, 41, 85, 161, 379, 337, 1639, 933, 3511, 925, 3523, 52379, 18421}}, +{12841, 17, 60450, {1, 3, 3, 11, 17, 17, 71, 11, 291, 305, 1295, 1175, 1803, 6247, 26523, 46467, 126999}}, +{12842, 17, 60469, {1, 1, 1, 13, 9, 43, 113, 7, 1, 443, 719, 3045, 2527, 5233, 13969, 50463, 115629}}, +{12843, 17, 60473, {1, 1, 1, 13, 9, 31, 87, 119, 351, 53, 985, 2017, 1187, 10429, 13719, 41383, 12749}}, +{12844, 17, 60474, {1, 1, 1, 15, 23, 17, 5, 215, 383, 299, 305, 3577, 7707, 6927, 28591, 44287, 65697}}, +{12845, 17, 60484, {1, 1, 5, 7, 23, 61, 89, 235, 97, 463, 237, 2117, 5503, 13693, 28231, 7745, 73631}}, +{12846, 17, 60496, {1, 3, 7, 3, 17, 43, 73, 245, 145, 267, 855, 187, 6167, 3999, 9935, 14347, 57727}}, +{12847, 17, 60502, {1, 1, 7, 3, 25, 47, 11, 221, 425, 527, 1341, 3973, 4635, 16321, 30021, 48547, 109409}}, +{12848, 17, 60508, {1, 3, 1, 13, 5, 11, 41, 191, 121, 219, 1315, 583, 2997, 5883, 31689, 64835, 35351}}, +{12849, 17, 60511, {1, 1, 3, 3, 15, 47, 49, 115, 107, 757, 329, 1653, 4633, 14605, 1579, 62413, 88685}}, +{12850, 17, 60522, {1, 1, 1, 5, 19, 47, 63, 131, 427, 335, 269, 3581, 7613, 15685, 16957, 30487, 94965}}, +{12851, 17, 60529, {1, 1, 3, 15, 31, 11, 77, 115, 467, 249, 247, 651, 3769, 3701, 21627, 36219, 77309}}, +{12852, 17, 60530, {1, 3, 1, 5, 5, 29, 45, 21, 37, 733, 1773, 2467, 2747, 9391, 5449, 23285, 20089}}, +{12853, 17, 60536, {1, 3, 5, 13, 29, 31, 51, 199, 77, 711, 1313, 3303, 2675, 177, 7915, 37129, 123641}}, +{12854, 17, 60551, {1, 3, 7, 15, 17, 17, 99, 43, 9, 699, 491, 669, 1313, 1377, 30015, 59261, 97321}}, +{12855, 17, 60557, {1, 3, 1, 13, 9, 13, 21, 199, 249, 775, 399, 897, 2205, 15357, 17281, 3193, 255}}, +{12856, 17, 60566, {1, 3, 1, 13, 7, 23, 7, 181, 65, 253, 199, 333, 6507, 4409, 13319, 30165, 95191}}, +{12857, 17, 60576, {1, 3, 3, 1, 31, 9, 31, 71, 301, 867, 1655, 2065, 597, 15247, 3019, 31763, 91889}}, +{12858, 17, 60579, {1, 3, 5, 5, 3, 35, 113, 133, 39, 1013, 991, 3521, 5805, 87, 32393, 28619, 34325}}, +{12859, 17, 60585, {1, 3, 1, 9, 15, 27, 45, 85, 61, 99, 1085, 3251, 7085, 4137, 27443, 42581, 94031}}, +{12860, 17, 60588, {1, 1, 5, 7, 11, 49, 97, 129, 339, 259, 821, 165, 833, 11383, 21629, 17473, 2947}}, +{12861, 17, 60600, {1, 3, 3, 3, 11, 7, 27, 231, 169, 847, 1767, 1823, 3855, 14277, 12457, 55825, 14377}}, +{12862, 17, 60613, {1, 1, 7, 3, 27, 5, 47, 193, 207, 747, 271, 3155, 1097, 2229, 4919, 22327, 12659}}, +{12863, 17, 60628, {1, 1, 5, 3, 27, 29, 105, 199, 31, 73, 1741, 2173, 4577, 3917, 31513, 45983, 118015}}, +{12864, 17, 60631, {1, 1, 3, 1, 19, 5, 23, 249, 35, 891, 1105, 1907, 5453, 1877, 1965, 3169, 107091}}, +{12865, 17, 60648, {1, 1, 7, 9, 11, 47, 57, 171, 255, 661, 1925, 2223, 525, 4775, 12327, 8067, 47083}}, +{12866, 17, 60651, {1, 3, 3, 11, 29, 43, 37, 33, 459, 117, 7, 1739, 3585, 7429, 2217, 9533, 95299}}, +{12867, 17, 60653, {1, 1, 5, 11, 23, 3, 33, 13, 45, 201, 467, 597, 4891, 2673, 32407, 56935, 121991}}, +{12868, 17, 60671, {1, 1, 7, 5, 29, 63, 7, 59, 417, 547, 17, 3701, 5775, 1079, 26527, 47187, 14827}}, +{12869, 17, 60673, {1, 1, 5, 3, 27, 11, 85, 129, 377, 497, 1659, 1965, 581, 15075, 31265, 195, 62307}}, +{12870, 17, 60691, {1, 1, 3, 9, 3, 57, 33, 57, 279, 955, 741, 955, 6501, 8069, 27305, 15363, 34715}}, +{12871, 17, 60697, {1, 3, 7, 13, 29, 23, 25, 171, 201, 529, 661, 4089, 5755, 12459, 31269, 9763, 53217}}, +{12872, 17, 60700, {1, 3, 7, 1, 3, 19, 27, 201, 261, 421, 1487, 2907, 547, 15791, 7661, 42871, 116343}}, +{12873, 17, 60714, {1, 3, 7, 9, 5, 59, 51, 91, 7, 399, 2001, 661, 6577, 7473, 5439, 29073, 3391}}, +{12874, 17, 60724, {1, 1, 7, 1, 23, 39, 119, 105, 113, 913, 1097, 2547, 8143, 11409, 23197, 59527, 55677}}, +{12875, 17, 60728, {1, 3, 3, 15, 31, 35, 103, 207, 247, 801, 1821, 1995, 4437, 12891, 659, 15687, 53}}, +{12876, 17, 60733, {1, 3, 3, 5, 13, 5, 45, 187, 231, 661, 1553, 2909, 3715, 4499, 14773, 5957, 24171}}, +{12877, 17, 60736, {1, 1, 1, 11, 3, 53, 93, 29, 379, 713, 299, 445, 2815, 9825, 30941, 22413, 91563}}, +{12878, 17, 60745, {1, 3, 1, 1, 27, 31, 111, 83, 349, 895, 1007, 2649, 7139, 5863, 27739, 53099, 6837}}, +{12879, 17, 60746, {1, 3, 1, 5, 23, 57, 121, 229, 487, 405, 2001, 2761, 3011, 2219, 10711, 31139, 83809}}, +{12880, 17, 60753, {1, 3, 7, 5, 13, 51, 37, 181, 359, 909, 2001, 793, 1143, 9219, 5111, 23021, 126081}}, +{12881, 17, 60754, {1, 3, 1, 13, 27, 27, 99, 25, 189, 129, 1831, 1005, 8119, 2557, 26985, 63447, 89693}}, +{12882, 17, 60782, {1, 1, 7, 5, 1, 21, 79, 33, 99, 7, 433, 1343, 3121, 3705, 477, 41191, 13749}}, +{12883, 17, 60784, {1, 1, 5, 5, 29, 53, 75, 243, 35, 461, 1399, 129, 177, 6533, 22209, 23503, 43819}}, +{12884, 17, 60790, {1, 3, 7, 7, 31, 37, 109, 9, 255, 263, 35, 3451, 7629, 9849, 10387, 3165, 120623}}, +{12885, 17, 60793, {1, 3, 5, 3, 27, 53, 93, 111, 239, 723, 293, 1481, 4427, 13623, 1989, 47705, 122069}}, +{12886, 17, 60805, {1, 3, 7, 7, 31, 37, 37, 213, 191, 627, 1821, 3621, 2875, 15759, 17525, 50969, 35311}}, +{12887, 17, 60830, {1, 3, 5, 5, 11, 41, 87, 233, 79, 251, 25, 1385, 3527, 7853, 5541, 36519, 42779}}, +{12888, 17, 60836, {1, 3, 1, 5, 9, 1, 117, 11, 61, 879, 553, 383, 6237, 15207, 3057, 28051, 59149}}, +{12889, 17, 60846, {1, 1, 1, 15, 15, 7, 37, 133, 81, 815, 893, 2281, 2459, 15325, 20107, 2289, 34535}}, +{12890, 17, 60851, {1, 1, 5, 11, 17, 3, 45, 159, 409, 643, 969, 1289, 4353, 10465, 16233, 55561, 111667}}, +{12891, 17, 60880, {1, 1, 5, 13, 23, 1, 79, 127, 485, 1013, 629, 791, 853, 9247, 26333, 1123, 17313}}, +{12892, 17, 60896, {1, 1, 5, 11, 27, 17, 97, 157, 479, 421, 1739, 3257, 2419, 6673, 2759, 19399, 120305}}, +{12893, 17, 60905, {1, 3, 5, 1, 3, 43, 71, 55, 111, 949, 1957, 3777, 3409, 8229, 26585, 49221, 33639}}, +{12894, 17, 60923, {1, 3, 7, 9, 17, 45, 71, 71, 417, 1007, 213, 1069, 2693, 5065, 23489, 33363, 120459}}, +{12895, 17, 60925, {1, 1, 1, 1, 25, 47, 81, 251, 341, 101, 1941, 1133, 3205, 4141, 26561, 56095, 37193}}, +{12896, 17, 60932, {1, 1, 3, 7, 25, 45, 97, 95, 135, 871, 949, 3489, 7593, 10717, 26163, 12711, 76989}}, +{12897, 17, 60939, {1, 3, 1, 9, 3, 11, 35, 7, 471, 509, 1335, 385, 1297, 11201, 28553, 51609, 45351}}, +{12898, 17, 60942, {1, 1, 5, 11, 21, 23, 105, 31, 125, 5, 1721, 1503, 7807, 13093, 24873, 18467, 30183}}, +{12899, 17, 60953, {1, 3, 7, 15, 15, 57, 61, 213, 79, 655, 517, 1031, 6719, 4807, 12805, 2605, 35407}}, +{12900, 17, 60956, {1, 1, 3, 15, 21, 5, 93, 61, 103, 945, 935, 115, 1281, 7735, 20723, 37211, 50039}}, +{12901, 17, 60959, {1, 3, 3, 15, 19, 51, 79, 187, 127, 205, 121, 701, 6065, 15185, 29343, 58249, 25331}}, +{12902, 17, 60963, {1, 3, 3, 15, 17, 49, 23, 163, 201, 809, 1203, 687, 1777, 695, 18779, 31571, 118383}}, +{12903, 17, 60969, {1, 1, 1, 5, 25, 45, 121, 223, 233, 193, 1459, 1889, 5537, 4421, 13659, 4591, 112563}}, +{12904, 17, 60978, {1, 3, 5, 3, 31, 37, 109, 15, 381, 373, 993, 3633, 641, 4411, 32265, 46481, 49195}}, +{12905, 17, 60980, {1, 3, 3, 11, 19, 21, 39, 67, 447, 829, 1163, 55, 2153, 15045, 6643, 48235, 59261}}, +{12906, 17, 60987, {1, 3, 3, 1, 7, 63, 37, 71, 35, 601, 1719, 447, 8009, 7235, 13225, 44103, 82409}}, +{12907, 17, 61007, {1, 3, 3, 7, 13, 33, 69, 115, 207, 807, 109, 2989, 3727, 9017, 29095, 11377, 122401}}, +{12908, 17, 61012, {1, 1, 3, 15, 9, 9, 57, 197, 115, 73, 1277, 1727, 5275, 11897, 12157, 34763, 58273}}, +{12909, 17, 61015, {1, 1, 3, 15, 19, 19, 127, 105, 289, 663, 877, 1303, 4901, 8897, 4803, 36853, 93361}}, +{12910, 17, 61025, {1, 1, 3, 7, 23, 29, 121, 29, 439, 795, 1469, 523, 7767, 12061, 15613, 57343, 21291}}, +{12911, 17, 61026, {1, 1, 1, 9, 25, 29, 15, 165, 383, 233, 91, 2065, 2741, 7809, 5325, 48581, 65551}}, +{12912, 17, 61038, {1, 1, 5, 15, 29, 19, 103, 143, 283, 597, 1055, 3525, 6115, 11083, 22497, 42893, 86849}}, +{12913, 17, 61040, {1, 1, 1, 15, 13, 43, 75, 157, 267, 519, 1231, 929, 1585, 16137, 1045, 4353, 63473}}, +{12914, 17, 61052, {1, 1, 1, 9, 17, 25, 73, 227, 145, 921, 1845, 2057, 3099, 15523, 8993, 14135, 37811}}, +{12915, 17, 61061, {1, 3, 3, 15, 17, 57, 107, 215, 271, 841, 1543, 2803, 625, 15359, 13341, 36879, 83191}}, +{12916, 17, 61074, {1, 3, 5, 13, 3, 17, 127, 81, 193, 253, 71, 3205, 1157, 1313, 27341, 49657, 96539}}, +{12917, 17, 61083, {1, 3, 1, 5, 27, 43, 1, 111, 23, 963, 1853, 925, 7401, 13999, 29797, 47125, 59955}}, +{12918, 17, 61085, {1, 3, 3, 1, 31, 55, 107, 121, 37, 159, 61, 577, 5711, 6745, 20077, 42333, 37105}}, +{12919, 17, 61086, {1, 1, 5, 3, 31, 11, 1, 7, 295, 515, 203, 707, 2919, 9619, 8877, 45143, 101861}}, +{12920, 17, 61096, {1, 3, 7, 11, 5, 23, 71, 9, 99, 947, 1141, 1651, 1903, 13607, 15433, 55005, 127639}}, +{12921, 17, 61119, {1, 1, 7, 3, 13, 61, 25, 111, 239, 243, 1069, 3551, 3339, 743, 29921, 21313, 54953}}, +{12922, 17, 61124, {1, 1, 3, 3, 23, 7, 21, 47, 367, 871, 1647, 2183, 2615, 2257, 30447, 25761, 110221}}, +{12923, 17, 61127, {1, 3, 7, 15, 13, 51, 115, 19, 277, 463, 475, 3467, 7313, 2477, 10841, 13585, 61449}}, +{12924, 17, 61128, {1, 1, 7, 9, 1, 27, 111, 209, 391, 621, 1047, 549, 2013, 549, 24213, 6369, 68691}}, +{12925, 17, 61133, {1, 1, 1, 11, 19, 59, 11, 107, 79, 1013, 357, 1729, 889, 12823, 6537, 35717, 42761}}, +{12926, 17, 61134, {1, 1, 3, 15, 29, 41, 49, 177, 309, 293, 1035, 1481, 1395, 2009, 7917, 365, 28981}}, +{12927, 17, 61146, {1, 3, 7, 11, 31, 19, 51, 113, 479, 347, 353, 929, 1089, 3373, 2807, 55201, 23137}}, +{12928, 17, 61155, {1, 3, 1, 15, 7, 55, 79, 191, 267, 701, 1885, 1241, 7085, 9835, 24239, 7609, 13967}}, +{12929, 17, 61161, {1, 1, 3, 15, 25, 33, 69, 5, 93, 375, 435, 2401, 1591, 8173, 17293, 20281, 63809}}, +{12930, 17, 61162, {1, 3, 5, 3, 9, 49, 63, 47, 217, 773, 1241, 1131, 7521, 15607, 24341, 20353, 122801}}, +{12931, 17, 61169, {1, 3, 7, 15, 21, 1, 57, 159, 279, 987, 1641, 3883, 1659, 7875, 24857, 33273, 88933}}, +{12932, 17, 61179, {1, 1, 3, 11, 3, 23, 45, 31, 279, 643, 1285, 471, 137, 15871, 13927, 52361, 118901}}, +{12933, 17, 61182, {1, 3, 1, 15, 27, 51, 83, 19, 299, 213, 1001, 897, 2751, 13085, 20841, 24891, 113173}}, +{12934, 17, 61190, {1, 1, 7, 5, 5, 27, 77, 77, 165, 489, 359, 1607, 3903, 16241, 641, 25999, 29279}}, +{12935, 17, 61201, {1, 3, 3, 7, 15, 23, 103, 49, 259, 519, 641, 1577, 3713, 12181, 287, 29483, 58505}}, +{12936, 17, 61208, {1, 1, 7, 13, 11, 29, 125, 45, 45, 167, 261, 2735, 2421, 15457, 5965, 44005, 82141}}, +{12937, 17, 61238, {1, 1, 3, 9, 25, 21, 9, 3, 57, 1017, 1359, 79, 6789, 7805, 20683, 25695, 38893}}, +{12938, 17, 61241, {1, 1, 7, 1, 29, 53, 87, 171, 51, 5, 9, 3033, 787, 10611, 15913, 35703, 70459}}, +{12939, 17, 61247, {1, 1, 3, 5, 1, 33, 111, 139, 477, 33, 1287, 3615, 5235, 15491, 2915, 47821, 55257}}, +{12940, 17, 61259, {1, 1, 1, 13, 5, 23, 55, 225, 303, 587, 1595, 307, 3809, 8093, 13297, 63213, 104317}}, +{12941, 17, 61267, {1, 1, 3, 15, 31, 29, 13, 33, 267, 481, 1039, 3805, 2549, 861, 12483, 61829, 127725}}, +{12942, 17, 61269, {1, 3, 5, 11, 23, 17, 23, 117, 333, 167, 1965, 1387, 5453, 15545, 123, 12991, 36281}}, +{12943, 17, 61295, {1, 3, 5, 1, 3, 9, 25, 55, 497, 951, 1377, 993, 6089, 4801, 32719, 31579, 126663}}, +{12944, 17, 61304, {1, 3, 5, 11, 15, 37, 103, 51, 509, 585, 769, 425, 835, 14027, 30265, 55735, 36655}}, +{12945, 17, 61309, {1, 1, 1, 13, 9, 49, 105, 61, 493, 3, 1663, 815, 8105, 16361, 32477, 30437, 61519}}, +{12946, 17, 61310, {1, 3, 7, 11, 29, 23, 105, 87, 119, 399, 1405, 1515, 7017, 12729, 13769, 29741, 30921}}, +{12947, 17, 61313, {1, 3, 7, 13, 13, 7, 93, 227, 489, 843, 923, 3373, 759, 5105, 9059, 21079, 101335}}, +{12948, 17, 61320, {1, 1, 1, 1, 29, 53, 119, 227, 171, 363, 289, 827, 425, 12827, 25791, 21587, 109567}}, +{12949, 17, 61325, {1, 1, 5, 11, 29, 29, 53, 127, 441, 219, 1049, 275, 525, 5535, 20907, 9299, 76319}}, +{12950, 17, 61334, {1, 3, 7, 15, 3, 53, 109, 61, 275, 391, 1147, 2953, 1439, 4417, 679, 10949, 35101}}, +{12951, 17, 61337, {1, 1, 5, 13, 9, 1, 109, 137, 249, 835, 721, 129, 2883, 13043, 31827, 36741, 107167}}, +{12952, 17, 61386, {1, 1, 5, 9, 27, 17, 117, 121, 111, 433, 743, 1987, 6839, 8439, 2533, 62135, 54281}}, +{12953, 17, 61399, {1, 3, 5, 15, 11, 61, 117, 103, 409, 485, 1047, 469, 2245, 7193, 2541, 9399, 88127}}, +{12954, 17, 61422, {1, 3, 1, 9, 3, 49, 111, 201, 87, 181, 1243, 3261, 1827, 10385, 13045, 58331, 107729}}, +{12955, 17, 61429, {1, 3, 5, 15, 13, 29, 61, 223, 227, 733, 1757, 755, 4231, 13537, 1509, 54623, 120221}}, +{12956, 17, 61436, {1, 1, 1, 15, 13, 9, 7, 233, 391, 689, 355, 1203, 5811, 7759, 2647, 54949, 51891}}, +{12957, 17, 61439, {1, 1, 3, 1, 3, 27, 95, 51, 497, 315, 915, 1055, 2917, 167, 1849, 26591, 102729}}, +{12958, 17, 61466, {1, 3, 7, 13, 1, 51, 3, 113, 437, 449, 1889, 2887, 4735, 5693, 8191, 12847, 52651}}, +{12959, 17, 61477, {1, 1, 7, 13, 1, 45, 41, 221, 403, 185, 1653, 1809, 6405, 9193, 1381, 36677, 43255}}, +{12960, 17, 61478, {1, 1, 5, 1, 25, 51, 109, 245, 291, 809, 1381, 3235, 5933, 10185, 18663, 15589, 39539}}, +{12961, 17, 61490, {1, 3, 3, 1, 27, 29, 3, 227, 275, 705, 489, 681, 323, 7453, 26005, 13791, 115219}}, +{12962, 17, 61495, {1, 3, 5, 1, 3, 51, 101, 75, 157, 529, 45, 3105, 3617, 13081, 21665, 50065, 117823}}, +{12963, 17, 61504, {1, 3, 5, 15, 9, 43, 41, 169, 391, 455, 1375, 253, 1257, 14427, 16325, 11571, 26361}}, +{12964, 17, 61514, {1, 1, 5, 7, 5, 41, 81, 173, 275, 225, 301, 335, 5473, 1509, 20897, 21951, 103967}}, +{12965, 17, 61516, {1, 3, 5, 1, 13, 27, 107, 19, 221, 609, 823, 1193, 665, 4947, 11967, 57373, 21665}}, +{12966, 17, 61521, {1, 3, 7, 13, 7, 11, 109, 59, 193, 103, 943, 595, 5121, 6159, 2103, 52863, 57541}}, +{12967, 17, 61527, {1, 3, 5, 3, 5, 51, 85, 227, 465, 1013, 601, 1687, 7615, 5991, 8635, 64487, 69967}}, +{12968, 17, 61531, {1, 3, 1, 11, 29, 49, 79, 25, 447, 119, 569, 383, 5261, 6209, 21965, 40863, 96593}}, +{12969, 17, 61540, {1, 1, 3, 13, 9, 49, 59, 93, 369, 789, 1373, 425, 3565, 13357, 17783, 46435, 129653}}, +{12970, 17, 61550, {1, 3, 7, 5, 5, 39, 51, 15, 421, 531, 1855, 2105, 5335, 8509, 20841, 44997, 48235}}, +{12971, 17, 61557, {1, 3, 7, 3, 27, 47, 113, 1, 453, 565, 1843, 243, 7663, 10697, 7725, 24485, 49435}}, +{12972, 17, 61562, {1, 1, 1, 11, 25, 25, 47, 1, 475, 831, 1833, 391, 5173, 14873, 14263, 36061, 26781}}, +{12973, 17, 61577, {1, 1, 7, 15, 21, 13, 5, 169, 241, 235, 547, 1565, 2053, 6877, 12811, 22213, 106907}}, +{12974, 17, 61583, {1, 3, 7, 1, 21, 11, 101, 115, 243, 985, 1389, 2189, 563, 12453, 14951, 58889, 48079}}, +{12975, 17, 61597, {1, 1, 5, 7, 9, 37, 33, 241, 337, 453, 1955, 1731, 4445, 8887, 27715, 63975, 95891}}, +{12976, 17, 61602, {1, 1, 5, 1, 23, 21, 95, 237, 241, 991, 1159, 2417, 2279, 8941, 20987, 39773, 79327}}, +{12977, 17, 61604, {1, 3, 3, 1, 19, 39, 73, 253, 137, 1009, 1793, 4007, 2017, 7503, 16689, 29013, 41571}}, +{12978, 17, 61607, {1, 3, 7, 15, 3, 63, 77, 11, 293, 495, 339, 3525, 5747, 1807, 11705, 55807, 54163}}, +{12979, 17, 61622, {1, 3, 7, 3, 25, 41, 127, 23, 113, 807, 387, 3529, 2173, 11217, 21257, 61169, 47749}}, +{12980, 17, 61625, {1, 3, 3, 5, 27, 5, 43, 55, 207, 995, 811, 1473, 481, 4317, 2015, 49161, 94711}}, +{12981, 17, 61633, {1, 3, 1, 9, 21, 61, 41, 147, 425, 353, 1943, 2455, 379, 10729, 3045, 16013, 44527}}, +{12982, 17, 61640, {1, 3, 1, 5, 17, 43, 109, 231, 313, 277, 939, 3491, 5883, 2297, 4763, 33403, 62395}}, +{12983, 17, 61643, {1, 1, 3, 9, 1, 49, 37, 145, 383, 467, 621, 2873, 873, 6163, 16475, 49045, 115599}}, +{12984, 17, 61651, {1, 1, 1, 9, 5, 15, 125, 157, 459, 727, 807, 2769, 5531, 11531, 4277, 42301, 16969}}, +{12985, 17, 61658, {1, 1, 3, 1, 15, 23, 39, 121, 163, 537, 409, 1217, 8007, 5671, 19681, 25371, 69227}}, +{12986, 17, 61670, {1, 3, 7, 9, 23, 1, 93, 41, 267, 995, 1917, 3441, 6237, 7233, 30215, 31945, 33967}}, +{12987, 17, 61674, {1, 1, 1, 15, 7, 5, 123, 53, 359, 677, 1061, 1649, 651, 14079, 30211, 14827, 123175}}, +{12988, 17, 61676, {1, 3, 1, 5, 11, 19, 121, 135, 167, 293, 493, 949, 5459, 11785, 21445, 57161, 129737}}, +{12989, 17, 61679, {1, 1, 3, 13, 19, 39, 43, 55, 149, 549, 479, 925, 341, 1151, 12007, 23473, 10671}}, +{12990, 17, 61688, {1, 3, 5, 9, 7, 41, 37, 103, 381, 373, 1767, 3959, 3001, 7903, 24033, 55123, 93627}}, +{12991, 17, 61693, {1, 3, 3, 3, 31, 27, 93, 175, 393, 575, 703, 3715, 6043, 11763, 7613, 15907, 56821}}, +{12992, 17, 61701, {1, 3, 3, 13, 3, 13, 75, 85, 89, 851, 1171, 3075, 5265, 10293, 14745, 32153, 89877}}, +{12993, 17, 61711, {1, 1, 7, 11, 1, 25, 101, 149, 187, 197, 1485, 1555, 1599, 7413, 23275, 27093, 73483}}, +{12994, 17, 61714, {1, 3, 1, 1, 19, 15, 63, 111, 211, 197, 77, 1683, 3159, 235, 32601, 35715, 59537}}, +{12995, 17, 61723, {1, 3, 5, 11, 23, 61, 91, 135, 403, 669, 267, 2507, 2931, 7813, 5047, 40027, 111705}}, +{12996, 17, 61725, {1, 1, 5, 13, 7, 5, 65, 37, 87, 405, 335, 1095, 3717, 1717, 31551, 28181, 47407}}, +{12997, 17, 61726, {1, 1, 5, 13, 3, 43, 67, 99, 507, 861, 1063, 3003, 6095, 11079, 6919, 41597, 97709}}, +{12998, 17, 61729, {1, 1, 3, 1, 7, 23, 109, 161, 321, 499, 549, 363, 2061, 6519, 1531, 1969, 83845}}, +{12999, 17, 61741, {1, 3, 7, 5, 17, 39, 55, 59, 455, 433, 601, 365, 7987, 2207, 3463, 31755, 94203}}, +{13000, 17, 61761, {1, 3, 5, 5, 29, 61, 79, 101, 125, 1011, 867, 2935, 3269, 13601, 21935, 50355, 65883}}, +{13001, 17, 61779, {1, 1, 1, 5, 3, 41, 101, 107, 299, 125, 81, 2421, 2937, 787, 19479, 25803, 74473}}, +{13002, 17, 61781, {1, 3, 3, 1, 3, 15, 73, 13, 167, 387, 75, 601, 415, 6927, 32277, 16709, 12477}}, +{13003, 17, 61782, {1, 1, 5, 1, 19, 37, 53, 45, 139, 737, 159, 2299, 6219, 11613, 22873, 18303, 56875}}, +{13004, 17, 61797, {1, 1, 3, 9, 23, 15, 17, 37, 373, 445, 1369, 2997, 49, 13901, 13155, 37375, 29063}}, +{13005, 17, 61809, {1, 3, 3, 11, 17, 1, 45, 91, 445, 631, 1297, 1907, 3765, 13893, 29379, 17939, 36573}}, +{13006, 17, 61810, {1, 1, 7, 13, 11, 31, 101, 165, 413, 305, 361, 4019, 3183, 2321, 7819, 49275, 101041}}, +{13007, 17, 61816, {1, 1, 7, 1, 13, 43, 125, 165, 357, 293, 1343, 2219, 4189, 6095, 28509, 27763, 53871}}, +{13008, 17, 61822, {1, 3, 3, 11, 29, 33, 105, 71, 297, 637, 1493, 3797, 5525, 15093, 21647, 57647, 1467}}, +{13009, 17, 61849, {1, 1, 1, 13, 19, 7, 5, 141, 71, 221, 923, 1039, 4777, 9481, 1267, 55345, 116061}}, +{13010, 17, 61876, {1, 1, 7, 11, 19, 43, 57, 243, 21, 217, 1075, 569, 3735, 10477, 18595, 34133, 70391}}, +{13011, 17, 61893, {1, 3, 3, 1, 21, 61, 7, 135, 401, 101, 321, 2959, 7371, 3303, 23023, 28163, 19833}}, +{13012, 17, 61905, {1, 1, 3, 9, 31, 43, 27, 243, 297, 145, 663, 3951, 4283, 10421, 9355, 30381, 68317}}, +{13013, 17, 61908, {1, 3, 7, 13, 29, 53, 101, 253, 49, 129, 831, 513, 5567, 5063, 157, 6465, 90983}}, +{13014, 17, 61911, {1, 1, 5, 15, 27, 29, 3, 231, 503, 173, 913, 3971, 7685, 9679, 32243, 967, 73195}}, +{13015, 17, 61912, {1, 1, 1, 15, 19, 55, 127, 3, 405, 239, 1063, 3473, 7543, 4049, 14509, 22657, 5611}}, +{13016, 17, 61928, {1, 3, 7, 1, 21, 39, 61, 249, 421, 401, 1667, 1981, 5503, 9191, 24027, 35049, 12199}}, +{13017, 17, 61934, {1, 3, 5, 5, 27, 1, 99, 83, 287, 997, 721, 1345, 2197, 6335, 4245, 42575, 102635}}, +{13018, 17, 61957, {1, 3, 3, 1, 31, 7, 103, 107, 387, 273, 951, 2475, 1275, 15607, 2159, 55083, 86107}}, +{13019, 17, 61961, {1, 3, 3, 5, 21, 59, 69, 55, 121, 601, 5, 1871, 7161, 4583, 23867, 7933, 3125}}, +{13020, 17, 61969, {1, 1, 1, 15, 17, 41, 51, 45, 383, 579, 713, 275, 1395, 11665, 30521, 11683, 126493}}, +{13021, 17, 61979, {1, 1, 1, 15, 17, 47, 15, 139, 175, 283, 1377, 827, 5753, 8855, 26437, 59219, 105601}}, +{13022, 17, 61982, {1, 1, 7, 11, 13, 3, 27, 141, 137, 851, 767, 2575, 7685, 11719, 24401, 52547, 127299}}, +{13023, 17, 62003, {1, 3, 3, 9, 11, 41, 75, 69, 167, 897, 1213, 3723, 6773, 12141, 28033, 19695, 128545}}, +{13024, 17, 62006, {1, 1, 5, 13, 7, 61, 55, 131, 465, 169, 1669, 711, 5901, 10769, 11273, 23809, 63625}}, +{13025, 17, 62010, {1, 1, 5, 1, 27, 25, 35, 167, 83, 921, 251, 2571, 6723, 14767, 26715, 21699, 60779}}, +{13026, 17, 62015, {1, 3, 1, 9, 15, 5, 59, 241, 405, 323, 1917, 1161, 6079, 13443, 13079, 58617, 63381}}, +{13027, 17, 62020, {1, 3, 1, 5, 9, 5, 79, 123, 87, 395, 667, 2787, 3711, 3613, 1803, 17885, 78975}}, +{13028, 17, 62024, {1, 3, 3, 5, 17, 45, 61, 107, 485, 163, 33, 1491, 7131, 59, 27327, 8043, 14907}}, +{13029, 17, 62029, {1, 3, 1, 11, 27, 37, 5, 251, 115, 339, 1621, 2013, 3517, 2213, 10145, 47121, 84485}}, +{13030, 17, 62032, {1, 3, 3, 1, 9, 11, 71, 25, 363, 867, 1485, 3897, 3339, 7599, 20777, 52009, 127097}}, +{13031, 17, 62035, {1, 1, 3, 9, 25, 37, 29, 231, 183, 315, 399, 879, 6169, 6355, 3729, 9187, 19405}}, +{13032, 17, 62038, {1, 3, 5, 3, 31, 37, 127, 71, 171, 687, 1237, 151, 7391, 2395, 11979, 23381, 117879}}, +{13033, 17, 62047, {1, 1, 1, 13, 13, 43, 71, 235, 131, 79, 1321, 235, 2221, 1133, 13509, 12205, 44771}}, +{13034, 17, 62068, {1, 3, 7, 5, 29, 51, 125, 191, 153, 35, 1657, 2141, 3701, 7177, 31723, 15189, 55441}}, +{13035, 17, 62071, {1, 1, 5, 1, 5, 35, 13, 165, 461, 255, 1825, 1531, 6195, 7717, 973, 12367, 71747}}, +{13036, 17, 62082, {1, 3, 1, 9, 13, 57, 25, 83, 389, 405, 227, 1037, 3805, 15653, 25365, 47991, 54315}}, +{13037, 17, 62088, {1, 1, 1, 13, 17, 55, 113, 151, 145, 951, 1849, 2205, 6513, 7845, 7947, 59429, 44911}}, +{13038, 17, 62096, {1, 3, 5, 3, 25, 9, 99, 159, 183, 445, 153, 3053, 2537, 1787, 19029, 60047, 128203}}, +{13039, 17, 62108, {1, 1, 5, 5, 31, 37, 13, 11, 271, 491, 1141, 1827, 3751, 9471, 7579, 35969, 95245}}, +{13040, 17, 62124, {1, 3, 3, 15, 1, 43, 9, 109, 13, 991, 345, 1577, 947, 3197, 16747, 8127, 116937}}, +{13041, 17, 62142, {1, 3, 3, 15, 11, 17, 103, 89, 33, 741, 1855, 2879, 3899, 9535, 15119, 56165, 86055}}, +{13042, 17, 62147, {1, 3, 5, 1, 31, 41, 57, 205, 69, 163, 1383, 2087, 6483, 6281, 32079, 40825, 28709}}, +{13043, 17, 62153, {1, 1, 1, 13, 23, 57, 103, 247, 421, 773, 1733, 3249, 6681, 9675, 11669, 51673, 86189}}, +{13044, 17, 62159, {1, 1, 5, 15, 7, 37, 63, 123, 77, 941, 277, 1061, 803, 2135, 15745, 47413, 73843}}, +{13045, 17, 62161, {1, 1, 3, 5, 19, 15, 35, 59, 321, 527, 1669, 2929, 513, 4453, 20521, 19781, 115501}}, +{13046, 17, 62171, {1, 1, 7, 3, 23, 1, 99, 251, 129, 271, 1555, 1191, 2445, 11533, 11921, 19131, 80653}}, +{13047, 17, 62189, {1, 1, 7, 15, 15, 33, 79, 89, 113, 517, 1655, 43, 6255, 15415, 19559, 63309, 16857}}, +{13048, 17, 62207, {1, 3, 5, 1, 13, 61, 87, 159, 65, 875, 163, 663, 7651, 8775, 32505, 39313, 83331}}, +{13049, 17, 62227, {1, 1, 7, 15, 27, 19, 63, 117, 427, 233, 1243, 755, 3201, 5153, 31959, 64545, 69219}}, +{13050, 17, 62230, {1, 1, 5, 3, 3, 27, 15, 11, 427, 431, 107, 2433, 6923, 7503, 31347, 64849, 14541}}, +{13051, 17, 62234, {1, 1, 3, 11, 7, 23, 53, 253, 483, 63, 1749, 2989, 5219, 7361, 6423, 1503, 95431}}, +{13052, 17, 62236, {1, 1, 5, 9, 1, 19, 23, 25, 301, 665, 1457, 2423, 6623, 9771, 2755, 8963, 51037}}, +{13053, 17, 62239, {1, 3, 3, 7, 21, 1, 3, 131, 377, 897, 15, 437, 4075, 7669, 31529, 64123, 101249}}, +{13054, 17, 62257, {1, 3, 5, 3, 31, 41, 99, 27, 397, 393, 1895, 2249, 3925, 6393, 2839, 375, 56721}}, +{13055, 17, 62270, {1, 3, 7, 15, 1, 45, 65, 113, 85, 557, 857, 2281, 1395, 2055, 2405, 34541, 63719}}, +{13056, 17, 62278, {1, 3, 1, 15, 7, 43, 21, 29, 15, 229, 1287, 3005, 339, 5833, 21867, 21643, 37557}}, +{13057, 17, 62287, {1, 3, 7, 3, 3, 51, 67, 119, 423, 539, 1995, 4039, 2999, 2787, 29327, 62687, 11893}}, +{13058, 17, 62295, {1, 3, 7, 3, 25, 23, 85, 11, 105, 523, 889, 2983, 2031, 2049, 16119, 41925, 38345}}, +{13059, 17, 62301, {1, 3, 7, 3, 13, 63, 59, 65, 183, 695, 293, 3301, 7895, 13915, 25847, 22819, 92189}}, +{13060, 17, 62306, {1, 1, 3, 3, 7, 27, 101, 229, 435, 227, 1759, 1275, 5781, 6079, 25125, 64833, 69577}}, +{13061, 17, 62312, {1, 1, 3, 1, 29, 1, 61, 45, 193, 441, 687, 841, 4491, 10683, 13989, 60461, 78071}}, +{13062, 17, 62317, {1, 3, 1, 9, 5, 33, 99, 229, 181, 675, 1629, 1855, 4719, 9585, 8059, 26363, 31161}}, +{13063, 17, 62330, {1, 3, 1, 11, 11, 37, 79, 53, 163, 49, 1173, 1715, 8087, 6535, 14985, 24069, 118597}}, +{13064, 17, 62342, {1, 1, 7, 15, 9, 59, 123, 79, 237, 131, 1693, 2525, 6339, 9843, 24309, 24969, 37645}}, +{13065, 17, 62359, {1, 3, 3, 7, 19, 49, 85, 133, 415, 239, 555, 2581, 6523, 2733, 19665, 19989, 105585}}, +{13066, 17, 62365, {1, 3, 3, 7, 23, 37, 31, 121, 59, 7, 2031, 2893, 6429, 10305, 21221, 20105, 38879}}, +{13067, 17, 62366, {1, 3, 1, 13, 23, 21, 93, 93, 343, 641, 411, 971, 1777, 2135, 22895, 9055, 114457}}, +{13068, 17, 62370, {1, 3, 5, 3, 15, 33, 23, 7, 59, 413, 277, 3551, 7737, 2285, 7951, 5013, 94469}}, +{13069, 17, 62375, {1, 3, 1, 15, 25, 1, 109, 245, 153, 187, 1099, 1071, 145, 6735, 10327, 3921, 62123}}, +{13070, 17, 62376, {1, 1, 7, 11, 11, 53, 51, 123, 277, 281, 1763, 3161, 7639, 14515, 29725, 3919, 5525}}, +{13071, 17, 62387, {1, 3, 3, 15, 27, 47, 109, 121, 317, 221, 187, 617, 1331, 5401, 861, 62465, 9227}}, +{13072, 17, 62404, {1, 3, 3, 15, 27, 25, 101, 111, 469, 85, 1285, 1621, 5393, 1367, 17115, 35141, 126989}}, +{13073, 17, 62411, {1, 3, 5, 1, 15, 23, 25, 249, 69, 17, 1103, 2603, 59, 15637, 22051, 29243, 53113}}, +{13074, 17, 62435, {1, 3, 1, 9, 17, 49, 73, 13, 207, 963, 379, 3561, 6447, 7895, 18651, 8109, 3943}}, +{13075, 17, 62441, {1, 3, 5, 11, 7, 41, 55, 85, 481, 831, 593, 4093, 1151, 12353, 24231, 46091, 80967}}, +{13076, 17, 62442, {1, 3, 7, 7, 5, 39, 47, 187, 427, 1007, 813, 3617, 6063, 12981, 18573, 34061, 85741}}, +{13077, 17, 62452, {1, 3, 3, 11, 9, 17, 29, 141, 341, 485, 1075, 4067, 7247, 11295, 31803, 18347, 54985}}, +{13078, 17, 62459, {1, 1, 3, 7, 17, 25, 7, 29, 355, 35, 1753, 669, 4123, 4293, 22875, 36677, 61201}}, +{13079, 17, 62461, {1, 1, 5, 9, 13, 45, 29, 153, 169, 387, 1275, 3161, 4937, 5331, 16203, 43925, 129231}}, +{13080, 17, 62473, {1, 3, 3, 9, 19, 27, 109, 95, 499, 929, 1627, 3215, 6097, 15837, 5655, 29877, 122513}}, +{13081, 17, 62474, {1, 3, 7, 11, 1, 25, 15, 41, 65, 411, 289, 883, 5069, 8405, 11159, 57357, 114253}}, +{13082, 17, 62493, {1, 1, 3, 11, 31, 57, 39, 89, 77, 321, 1667, 871, 6429, 1005, 18905, 13877, 9305}}, +{13083, 17, 62510, {1, 1, 7, 7, 27, 57, 23, 37, 281, 625, 1871, 565, 5979, 13925, 22591, 2375, 8577}}, +{13084, 17, 62518, {1, 1, 1, 7, 31, 35, 91, 221, 495, 811, 1321, 2235, 4287, 3009, 5745, 35013, 93715}}, +{13085, 17, 62524, {1, 1, 7, 3, 11, 53, 17, 13, 319, 225, 117, 3365, 537, 5249, 14219, 23879, 4321}}, +{13086, 17, 62549, {1, 3, 5, 1, 31, 57, 35, 95, 257, 933, 471, 627, 6733, 8707, 25173, 44291, 105041}}, +{13087, 17, 62556, {1, 1, 3, 3, 31, 53, 69, 19, 277, 669, 497, 3957, 2781, 14107, 27741, 53519, 41057}}, +{13088, 17, 62565, {1, 1, 3, 15, 11, 21, 11, 25, 257, 665, 491, 2119, 3893, 14401, 29147, 3369, 116569}}, +{13089, 17, 62566, {1, 3, 1, 1, 13, 49, 31, 231, 217, 711, 1987, 1487, 7073, 473, 28781, 51283, 86049}}, +{13090, 17, 62580, {1, 1, 1, 5, 23, 31, 119, 115, 381, 179, 1725, 2323, 8013, 15191, 13255, 57813, 95437}}, +{13091, 17, 62584, {1, 1, 3, 15, 15, 37, 83, 223, 259, 605, 2013, 4089, 395, 2063, 11735, 51931, 74677}}, +{13092, 17, 62589, {1, 1, 7, 3, 1, 61, 107, 169, 213, 789, 425, 2309, 225, 1305, 20697, 26281, 60129}}, +{13093, 17, 62596, {1, 1, 5, 15, 27, 15, 69, 169, 289, 931, 1491, 3711, 6875, 7723, 21103, 31795, 53955}}, +{13094, 17, 62608, {1, 1, 1, 3, 3, 43, 49, 205, 247, 817, 2037, 2305, 7935, 255, 18835, 49423, 90727}}, +{13095, 17, 62636, {1, 3, 7, 9, 17, 3, 95, 239, 431, 665, 1271, 3559, 5703, 14607, 9723, 11807, 122937}}, +{13096, 17, 62642, {1, 3, 5, 13, 5, 15, 13, 111, 375, 895, 833, 813, 5451, 13841, 1321, 25273, 25443}}, +{13097, 17, 62651, {1, 1, 3, 1, 11, 49, 3, 97, 467, 631, 51, 3577, 1777, 15965, 6837, 38827, 68627}}, +{13098, 17, 62654, {1, 1, 7, 1, 3, 11, 73, 155, 77, 623, 811, 337, 6837, 10925, 2097, 28325, 97487}}, +{13099, 17, 62659, {1, 1, 1, 3, 29, 35, 9, 215, 415, 143, 1837, 3723, 73, 11305, 23187, 19995, 52987}}, +{13100, 17, 62666, {1, 1, 7, 1, 25, 39, 35, 67, 245, 295, 1143, 2043, 1049, 629, 14111, 62893, 86899}}, +{13101, 17, 62680, {1, 3, 7, 5, 3, 41, 123, 97, 241, 743, 259, 3163, 2289, 6363, 24033, 10789, 44117}}, +{13102, 17, 62692, {1, 3, 1, 7, 25, 33, 33, 17, 359, 567, 901, 3595, 179, 8671, 841, 24787, 4367}}, +{13103, 17, 62701, {1, 3, 1, 13, 5, 13, 57, 185, 321, 727, 789, 3081, 5345, 9721, 32029, 11663, 55695}}, +{13104, 17, 62702, {1, 1, 7, 7, 5, 51, 85, 255, 329, 263, 297, 1687, 6799, 10973, 8265, 19615, 115333}}, +{13105, 17, 62714, {1, 1, 1, 5, 29, 27, 55, 167, 465, 73, 661, 137, 7831, 2571, 15373, 64223, 27335}}, +{13106, 17, 62716, {1, 3, 7, 13, 5, 23, 77, 15, 345, 21, 1729, 3231, 967, 12573, 31415, 24249, 110525}}, +{13107, 17, 62733, {1, 1, 7, 9, 31, 37, 41, 119, 169, 891, 1845, 2139, 1747, 1147, 21983, 11617, 25963}}, +{13108, 17, 62762, {1, 3, 3, 7, 23, 5, 1, 11, 95, 795, 1371, 2631, 3241, 6935, 17353, 25013, 89765}}, +{13109, 17, 62769, {1, 3, 1, 7, 19, 3, 121, 19, 389, 117, 1905, 3135, 7601, 12541, 20855, 38613, 15005}}, +{13110, 17, 62770, {1, 3, 3, 5, 17, 43, 91, 99, 113, 545, 1955, 37, 3411, 15173, 24961, 28761, 15245}}, +{13111, 17, 62787, {1, 3, 3, 13, 25, 9, 83, 17, 17, 271, 1133, 3851, 4607, 11017, 14867, 20677, 42881}}, +{13112, 17, 62794, {1, 1, 5, 15, 5, 9, 99, 179, 263, 623, 441, 2577, 189, 11595, 21505, 27215, 54081}}, +{13113, 17, 62801, {1, 1, 7, 1, 1, 63, 123, 119, 245, 467, 169, 3075, 909, 3581, 14571, 33071, 6261}}, +{13114, 17, 62807, {1, 1, 1, 13, 9, 35, 47, 161, 47, 893, 57, 703, 3373, 4167, 26555, 51265, 1391}}, +{13115, 17, 62808, {1, 3, 1, 13, 9, 61, 9, 5, 47, 259, 579, 113, 355, 14539, 25757, 10119, 96869}}, +{13116, 17, 62813, {1, 1, 5, 11, 3, 5, 61, 231, 291, 21, 1711, 2981, 4727, 14287, 12149, 40275, 51809}}, +{13117, 17, 62817, {1, 3, 5, 3, 21, 5, 87, 251, 373, 679, 949, 1023, 5183, 14549, 4135, 54927, 20369}}, +{13118, 17, 62818, {1, 3, 3, 11, 7, 43, 127, 97, 469, 81, 1843, 3955, 125, 8607, 27185, 50761, 122753}}, +{13119, 17, 62832, {1, 3, 5, 5, 25, 61, 1, 55, 333, 949, 1005, 1051, 6291, 8343, 9627, 37739, 116911}}, +{13120, 17, 62841, {1, 3, 3, 13, 21, 9, 67, 225, 179, 837, 2009, 3171, 217, 5629, 23451, 63171, 53225}}, +{13121, 17, 62857, {1, 3, 7, 1, 23, 15, 91, 163, 351, 883, 579, 3923, 2641, 12735, 24955, 1131, 65119}}, +{13122, 17, 62860, {1, 1, 1, 11, 29, 5, 113, 217, 171, 535, 913, 2419, 3843, 12365, 8287, 27367, 57369}}, +{13123, 17, 62871, {1, 1, 5, 11, 9, 41, 57, 243, 123, 159, 1517, 2653, 4307, 4243, 2801, 43131, 18435}}, +{13124, 17, 62882, {1, 1, 7, 9, 23, 59, 83, 159, 57, 723, 1635, 7, 1463, 121, 541, 7657, 83917}}, +{13125, 17, 62888, {1, 3, 7, 7, 23, 27, 125, 103, 247, 1019, 1063, 3979, 8085, 6449, 12443, 63427, 106235}}, +{13126, 17, 62913, {1, 1, 7, 5, 9, 31, 23, 83, 503, 605, 1731, 3341, 7427, 14571, 5981, 39043, 42965}}, +{13127, 17, 62919, {1, 3, 5, 1, 17, 49, 109, 171, 301, 951, 1879, 1317, 457, 8085, 6803, 62521, 67871}}, +{13128, 17, 62920, {1, 1, 7, 11, 11, 27, 1, 71, 335, 137, 265, 1267, 6399, 14823, 925, 49895, 19731}}, +{13129, 17, 62925, {1, 3, 1, 13, 3, 35, 75, 253, 211, 483, 1495, 3695, 3033, 14643, 1861, 51269, 32655}}, +{13130, 17, 62933, {1, 3, 7, 1, 5, 17, 63, 1, 83, 435, 2007, 2023, 57, 8639, 27067, 4039, 1955}}, +{13131, 17, 62938, {1, 3, 5, 15, 27, 51, 59, 47, 77, 131, 507, 559, 645, 16067, 20989, 15565, 39925}}, +{13132, 17, 62940, {1, 3, 3, 5, 11, 15, 63, 121, 39, 1019, 1027, 2821, 3297, 13769, 18587, 14199, 82251}}, +{13133, 17, 62949, {1, 1, 5, 1, 31, 11, 89, 75, 147, 1007, 917, 3519, 5097, 5695, 15185, 14819, 38597}}, +{13134, 17, 62956, {1, 3, 3, 3, 15, 7, 127, 55, 83, 887, 1901, 75, 639, 713, 13631, 27447, 106707}}, +{13135, 17, 62971, {1, 3, 3, 15, 27, 25, 85, 163, 187, 959, 815, 1403, 6129, 6515, 31597, 28307, 30077}}, +{13136, 17, 62978, {1, 3, 1, 13, 5, 19, 117, 89, 11, 489, 845, 2899, 3695, 3279, 22355, 38759, 85849}}, +{13137, 17, 62990, {1, 3, 1, 7, 25, 59, 109, 185, 87, 591, 825, 1119, 7439, 5451, 17959, 51299, 76693}}, +{13138, 17, 62995, {1, 1, 7, 5, 25, 29, 115, 249, 185, 529, 593, 103, 1739, 4769, 25925, 3317, 102445}}, +{13139, 17, 62997, {1, 1, 3, 1, 3, 35, 19, 255, 279, 295, 1075, 2817, 3513, 7501, 15885, 21653, 113447}}, +{13140, 17, 63004, {1, 3, 1, 5, 27, 1, 21, 137, 303, 981, 631, 2339, 397, 13075, 28815, 50925, 44379}}, +{13141, 17, 63011, {1, 1, 7, 7, 31, 31, 59, 129, 105, 181, 1041, 2685, 1061, 1721, 30365, 6873, 30011}}, +{13142, 17, 63032, {1, 1, 3, 1, 19, 31, 125, 39, 9, 631, 1239, 1061, 6313, 9639, 5991, 27293, 84635}}, +{13143, 17, 63038, {1, 3, 3, 11, 17, 59, 17, 241, 195, 175, 1845, 251, 3323, 13399, 20493, 15241, 69303}}, +{13144, 17, 63067, {1, 1, 5, 3, 9, 19, 59, 25, 49, 359, 263, 4045, 1527, 6703, 555, 26413, 42757}}, +{13145, 17, 63069, {1, 1, 5, 9, 23, 5, 7, 223, 247, 407, 1079, 1069, 3417, 14795, 5015, 2965, 99059}}, +{13146, 17, 63076, {1, 3, 7, 5, 27, 47, 9, 37, 47, 181, 819, 2049, 2643, 9231, 8173, 33495, 91321}}, +{13147, 17, 63083, {1, 3, 5, 11, 5, 27, 5, 237, 349, 653, 1443, 137, 7969, 5961, 24749, 37523, 88921}}, +{13148, 17, 63088, {1, 3, 7, 13, 11, 51, 49, 71, 339, 195, 1239, 3479, 2771, 15217, 23729, 7839, 32633}}, +{13149, 17, 63094, {1, 1, 5, 5, 5, 13, 103, 185, 13, 273, 1793, 761, 5327, 8659, 32599, 38181, 121115}}, +{13150, 17, 63097, {1, 3, 7, 15, 17, 55, 69, 151, 231, 421, 1679, 3657, 8001, 12599, 13761, 13517, 130199}}, +{13151, 17, 63100, {1, 1, 5, 3, 5, 15, 15, 61, 489, 219, 925, 2329, 3415, 10779, 31297, 63805, 13375}}, +{13152, 17, 63104, {1, 1, 7, 9, 7, 11, 87, 45, 39, 885, 87, 1877, 8135, 1247, 25685, 23631, 65579}}, +{13153, 17, 63114, {1, 3, 3, 7, 1, 17, 31, 75, 455, 535, 509, 2151, 1737, 7579, 12727, 25139, 32659}}, +{13154, 17, 63116, {1, 3, 5, 7, 15, 27, 111, 145, 99, 767, 167, 3391, 2155, 7895, 3405, 47451, 65185}}, +{13155, 17, 63122, {1, 1, 1, 3, 23, 31, 15, 53, 59, 787, 431, 2691, 71, 2843, 13469, 54029, 2233}}, +{13156, 17, 63128, {1, 1, 5, 1, 5, 39, 57, 31, 75, 507, 811, 2747, 317, 13545, 7395, 65161, 87987}}, +{13157, 17, 63149, {1, 3, 5, 5, 13, 17, 11, 89, 371, 337, 913, 2775, 27, 4923, 24013, 62955, 65185}}, +{13158, 17, 63150, {1, 3, 3, 7, 9, 27, 91, 187, 17, 443, 807, 853, 6243, 12351, 8123, 4203, 61021}}, +{13159, 17, 63157, {1, 1, 1, 5, 9, 33, 101, 211, 205, 701, 1289, 1253, 653, 8591, 13009, 48525, 77051}}, +{13160, 17, 63167, {1, 3, 5, 11, 5, 19, 1, 67, 259, 355, 15, 2169, 6785, 2019, 8675, 1019, 85903}}, +{13161, 17, 63187, {1, 3, 7, 5, 27, 31, 103, 163, 369, 685, 659, 2009, 5819, 10437, 17311, 35083, 122125}}, +{13162, 17, 63200, {1, 3, 5, 7, 19, 13, 93, 113, 377, 359, 1697, 4063, 4379, 9321, 7335, 25491, 85939}}, +{13163, 17, 63220, {1, 3, 3, 5, 7, 25, 41, 225, 355, 257, 743, 2067, 7627, 14317, 7385, 25187, 63103}}, +{13164, 17, 63223, {1, 1, 7, 7, 17, 43, 75, 1, 95, 547, 1937, 2263, 1709, 5067, 22651, 55733, 44619}}, +{13165, 17, 63229, {1, 1, 7, 3, 5, 27, 45, 23, 107, 547, 1733, 1169, 6709, 861, 4439, 55381, 96447}}, +{13166, 17, 63235, {1, 1, 7, 11, 25, 23, 127, 159, 489, 945, 843, 3715, 5215, 2131, 9681, 35515, 108109}}, +{13167, 17, 63247, {1, 1, 3, 7, 5, 1, 67, 59, 83, 745, 1337, 855, 6087, 14319, 13405, 36261, 49091}}, +{13168, 17, 63252, {1, 3, 1, 1, 13, 27, 41, 155, 463, 709, 1111, 2017, 4701, 8663, 29703, 45311, 113347}}, +{13169, 17, 63255, {1, 1, 7, 5, 1, 11, 83, 101, 283, 505, 893, 705, 2331, 5127, 21793, 28095, 59055}}, +{13170, 17, 63289, {1, 1, 5, 9, 25, 7, 97, 155, 71, 569, 1481, 897, 6177, 13367, 12163, 18171, 24785}}, +{13171, 17, 63298, {1, 3, 5, 11, 19, 25, 7, 15, 511, 369, 957, 1247, 6097, 11181, 17265, 24777, 87377}}, +{13172, 17, 63303, {1, 3, 1, 7, 11, 9, 39, 191, 9, 793, 867, 2779, 3447, 3805, 21025, 64719, 15669}}, +{13173, 17, 63327, {1, 1, 3, 1, 31, 43, 107, 103, 175, 131, 1525, 993, 635, 14383, 26835, 15929, 109977}}, +{13174, 17, 63328, {1, 1, 1, 3, 19, 17, 99, 249, 47, 467, 853, 2805, 3155, 1565, 17291, 18865, 11039}}, +{13175, 17, 63348, {1, 1, 5, 13, 25, 61, 91, 67, 361, 947, 1909, 3403, 945, 3481, 16703, 50227, 43963}}, +{13176, 17, 63355, {1, 3, 1, 3, 19, 27, 31, 219, 185, 579, 1539, 315, 4421, 9473, 30289, 48477, 61365}}, +{13177, 17, 63357, {1, 1, 3, 1, 23, 11, 101, 1, 133, 305, 1107, 1145, 1733, 13275, 221, 5071, 81987}}, +{13178, 17, 63368, {1, 1, 1, 13, 7, 61, 47, 5, 137, 979, 1183, 2049, 5263, 6515, 5585, 6093, 119689}}, +{13179, 17, 63391, {1, 3, 1, 5, 19, 47, 83, 115, 215, 901, 1685, 755, 2327, 13297, 6847, 40329, 19225}}, +{13180, 17, 63402, {1, 1, 3, 3, 3, 13, 31, 127, 199, 655, 55, 2183, 5031, 945, 6073, 54729, 108281}}, +{13181, 17, 63409, {1, 1, 1, 1, 11, 51, 37, 19, 73, 205, 1377, 1881, 3679, 4487, 14693, 41735, 27349}}, +{13182, 17, 63416, {1, 3, 7, 13, 1, 35, 37, 73, 45, 973, 209, 529, 5283, 9765, 26367, 12697, 8685}}, +{13183, 17, 63419, {1, 3, 3, 9, 3, 45, 115, 35, 475, 663, 487, 3613, 4151, 15623, 3057, 31519, 87545}}, +{13184, 17, 63430, {1, 3, 7, 5, 23, 13, 25, 255, 355, 433, 1671, 667, 7463, 14189, 14107, 1531, 11695}}, +{13185, 17, 63442, {1, 1, 7, 3, 15, 25, 37, 127, 265, 493, 1763, 2721, 4335, 13753, 5947, 18375, 29911}}, +{13186, 17, 63457, {1, 1, 3, 15, 1, 55, 25, 69, 335, 157, 1923, 1757, 5689, 6731, 723, 6471, 57415}}, +{13187, 17, 63458, {1, 3, 3, 3, 1, 15, 127, 227, 401, 395, 503, 3783, 1737, 8785, 16287, 34949, 91683}}, +{13188, 17, 63482, {1, 3, 5, 15, 23, 29, 55, 119, 115, 855, 657, 3729, 5309, 14773, 5647, 25953, 67303}}, +{13189, 17, 63487, {1, 3, 5, 13, 23, 25, 1, 187, 67, 389, 359, 619, 2523, 11203, 11049, 60345, 53931}}, +{13190, 17, 63488, {1, 3, 1, 7, 7, 45, 99, 123, 495, 797, 939, 3387, 7563, 16289, 8309, 14917, 99867}}, +{13191, 17, 63500, {1, 3, 5, 11, 29, 49, 89, 205, 447, 541, 1279, 1153, 7277, 5393, 8743, 41057, 100119}}, +{13192, 17, 63511, {1, 1, 1, 9, 1, 7, 43, 165, 259, 311, 993, 1381, 3363, 577, 4023, 443, 101785}}, +{13193, 17, 63517, {1, 1, 7, 9, 25, 55, 93, 63, 423, 787, 549, 1039, 383, 15855, 6013, 51399, 60007}}, +{13194, 17, 63528, {1, 3, 3, 1, 5, 17, 103, 91, 309, 85, 1319, 3869, 559, 3993, 18111, 17753, 66681}}, +{13195, 17, 63531, {1, 3, 7, 9, 1, 11, 87, 151, 311, 597, 811, 3955, 275, 6555, 17005, 26763, 31227}}, +{13196, 17, 63559, {1, 1, 3, 11, 19, 51, 41, 101, 183, 1003, 1635, 2061, 3305, 12925, 7223, 4859, 24433}}, +{13197, 17, 63566, {1, 3, 7, 11, 7, 43, 79, 53, 43, 429, 947, 2533, 7005, 15147, 13435, 33997, 21201}}, +{13198, 17, 63578, {1, 1, 3, 5, 15, 17, 61, 41, 383, 465, 1439, 3503, 3981, 14469, 5075, 25953, 70461}}, +{13199, 17, 63580, {1, 1, 1, 13, 21, 53, 25, 59, 59, 195, 665, 3367, 2777, 9179, 24207, 56729, 94241}}, +{13200, 17, 63584, {1, 3, 7, 15, 27, 13, 41, 147, 415, 351, 961, 3811, 1605, 14231, 31789, 41189, 50265}}, +{13201, 17, 63587, {1, 3, 3, 7, 31, 39, 85, 219, 323, 657, 423, 1579, 3623, 7663, 14631, 47169, 88795}}, +{13202, 17, 63594, {1, 3, 1, 3, 1, 3, 125, 65, 259, 3, 1897, 2203, 347, 4101, 23841, 20217, 117407}}, +{13203, 17, 63607, {1, 1, 3, 7, 29, 1, 75, 255, 413, 237, 1531, 2103, 6847, 10395, 9817, 9383, 60679}}, +{13204, 17, 63611, {1, 3, 5, 3, 7, 63, 17, 83, 375, 835, 1707, 3227, 327, 2205, 25025, 47471, 39967}}, +{13205, 17, 63630, {1, 3, 7, 7, 9, 51, 23, 189, 157, 351, 755, 2695, 3923, 3481, 12159, 1041, 94563}}, +{13206, 17, 63632, {1, 1, 3, 11, 25, 27, 39, 19, 221, 795, 523, 695, 3257, 8045, 2643, 43239, 13291}}, +{13207, 17, 63641, {1, 3, 3, 5, 29, 1, 33, 117, 477, 147, 1117, 1943, 7967, 15999, 10673, 13349, 89471}}, +{13208, 17, 63647, {1, 1, 3, 9, 17, 51, 55, 115, 147, 687, 1751, 3685, 3099, 15369, 371, 55673, 67951}}, +{13209, 17, 63651, {1, 1, 7, 1, 5, 25, 67, 31, 103, 439, 1581, 705, 3855, 15985, 7151, 56511, 23697}}, +{13210, 17, 63666, {1, 3, 5, 3, 21, 7, 11, 123, 121, 1009, 277, 623, 7913, 7525, 4759, 19245, 16735}}, +{13211, 17, 63668, {1, 1, 5, 11, 7, 57, 103, 147, 199, 209, 233, 3665, 4215, 13511, 16393, 37873, 120857}}, +{13212, 17, 63695, {1, 1, 7, 9, 27, 45, 29, 97, 279, 379, 1683, 1965, 1183, 11389, 20445, 38435, 56893}}, +{13213, 17, 63697, {1, 3, 5, 5, 27, 23, 89, 169, 329, 659, 393, 903, 6217, 6459, 27327, 2843, 44889}}, +{13214, 17, 63709, {1, 1, 1, 15, 3, 53, 109, 83, 195, 5, 1865, 729, 3627, 13307, 20761, 50375, 60379}}, +{13215, 17, 63723, {1, 1, 1, 13, 25, 57, 17, 185, 359, 797, 469, 2637, 973, 2731, 25299, 15169, 90187}}, +{13216, 17, 63737, {1, 3, 5, 1, 19, 39, 87, 161, 117, 565, 1737, 3995, 6487, 5067, 18531, 38803, 45453}}, +{13217, 17, 63746, {1, 1, 1, 5, 19, 3, 93, 85, 479, 369, 469, 1407, 475, 7775, 12273, 34417, 65611}}, +{13218, 17, 63752, {1, 1, 3, 15, 31, 11, 105, 19, 281, 711, 713, 3423, 797, 11215, 31409, 44891, 110413}}, +{13219, 17, 63755, {1, 1, 3, 11, 13, 17, 59, 111, 59, 431, 1517, 2159, 1697, 12309, 16293, 2097, 107273}}, +{13220, 17, 63775, {1, 3, 5, 15, 25, 19, 97, 107, 97, 563, 247, 3691, 2775, 10631, 15113, 25721, 12995}}, +{13221, 17, 63781, {1, 1, 5, 3, 31, 25, 47, 201, 231, 123, 1923, 2287, 1711, 12271, 1573, 6605, 72991}}, +{13222, 17, 63794, {1, 1, 5, 5, 27, 17, 109, 125, 423, 1, 819, 3041, 685, 8791, 19697, 13107, 67681}}, +{13223, 17, 63796, {1, 1, 5, 3, 5, 63, 115, 95, 117, 715, 1523, 1231, 8171, 1615, 9819, 14361, 87075}}, +{13224, 17, 63808, {1, 1, 7, 7, 7, 35, 35, 175, 349, 853, 1665, 3101, 6051, 10737, 933, 40591, 9419}}, +{13225, 17, 63817, {1, 1, 1, 3, 23, 49, 65, 23, 103, 837, 403, 3799, 6515, 15363, 28079, 36381, 59523}}, +{13226, 17, 63820, {1, 3, 1, 15, 15, 25, 119, 181, 229, 685, 1047, 2397, 4855, 15393, 2371, 42441, 30151}}, +{13227, 17, 63826, {1, 3, 7, 11, 15, 5, 13, 93, 219, 203, 475, 523, 5827, 6579, 26759, 29795, 108463}}, +{13228, 17, 63838, {1, 1, 7, 13, 25, 53, 75, 195, 443, 1003, 501, 2543, 5453, 3119, 19225, 59631, 16413}}, +{13229, 17, 63848, {1, 1, 7, 13, 13, 25, 93, 211, 191, 1005, 1567, 3057, 3001, 1125, 6237, 35725, 108257}}, +{13230, 17, 63861, {1, 1, 3, 7, 21, 11, 57, 205, 487, 263, 1801, 3235, 1819, 10875, 6063, 26211, 54699}}, +{13231, 17, 63862, {1, 3, 3, 7, 11, 59, 89, 217, 15, 991, 1343, 1247, 277, 13377, 18499, 64987, 26053}}, +{13232, 17, 63866, {1, 3, 3, 1, 15, 51, 111, 69, 137, 817, 1207, 1729, 3877, 9873, 18449, 50749, 57457}}, +{13233, 17, 63878, {1, 3, 3, 5, 3, 39, 97, 147, 327, 257, 1547, 769, 7077, 5221, 13679, 44237, 70053}}, +{13234, 17, 63889, {1, 1, 5, 11, 19, 15, 79, 187, 335, 645, 1235, 4041, 4831, 10847, 28135, 48353, 64921}}, +{13235, 17, 63892, {1, 1, 7, 9, 3, 43, 41, 149, 71, 205, 1513, 2801, 6785, 3187, 25401, 55367, 114491}}, +{13236, 17, 63901, {1, 1, 7, 1, 25, 11, 37, 205, 365, 435, 147, 1303, 587, 14563, 32461, 28983, 86157}}, +{13237, 17, 63915, {1, 1, 7, 1, 31, 11, 51, 37, 401, 343, 1677, 991, 501, 11993, 14781, 37055, 30161}}, +{13238, 17, 63917, {1, 3, 5, 9, 9, 21, 95, 45, 447, 957, 943, 3997, 4033, 8371, 25007, 52827, 50207}}, +{13239, 17, 63926, {1, 1, 7, 1, 9, 45, 3, 255, 297, 341, 215, 3631, 7049, 7625, 4145, 50109, 48615}}, +{13240, 17, 63932, {1, 3, 3, 9, 27, 49, 41, 143, 291, 343, 719, 311, 3819, 7699, 17631, 64785, 49239}}, +{13241, 17, 63937, {1, 1, 7, 3, 27, 35, 61, 183, 153, 781, 979, 1465, 3315, 14893, 29847, 18461, 74949}}, +{13242, 17, 63938, {1, 3, 5, 15, 19, 61, 39, 219, 279, 909, 1295, 1681, 8021, 957, 7675, 14001, 77669}}, +{13243, 17, 63943, {1, 3, 1, 5, 15, 59, 127, 85, 229, 649, 503, 3267, 2465, 5637, 2729, 24831, 44791}}, +{13244, 17, 63944, {1, 3, 7, 11, 23, 55, 61, 191, 345, 255, 105, 1361, 3913, 7655, 8865, 1825, 80619}}, +{13245, 17, 63950, {1, 3, 3, 13, 29, 15, 53, 19, 1, 651, 917, 2043, 2333, 13695, 28225, 16457, 11287}}, +{13246, 17, 63952, {1, 1, 3, 13, 15, 53, 41, 211, 13, 287, 383, 3923, 665, 10343, 4803, 22199, 90521}}, +{13247, 17, 63955, {1, 3, 7, 11, 23, 27, 127, 241, 11, 451, 495, 2779, 319, 13119, 5575, 43043, 11659}}, +{13248, 17, 63957, {1, 1, 1, 7, 17, 53, 55, 39, 233, 273, 1873, 843, 7885, 329, 6809, 33119, 116017}}, +{13249, 17, 63961, {1, 1, 1, 7, 21, 41, 23, 113, 283, 265, 1535, 2371, 3975, 6293, 22497, 65349, 48653}}, +{13250, 17, 63962, {1, 3, 7, 9, 25, 21, 61, 135, 245, 777, 679, 2603, 565, 3251, 32469, 12707, 40297}}, +{13251, 17, 63978, {1, 1, 1, 5, 31, 49, 35, 215, 445, 669, 779, 2231, 5399, 5853, 17941, 33973, 126141}}, +{13252, 17, 63983, {1, 3, 5, 5, 3, 31, 45, 235, 51, 65, 295, 3755, 8101, 821, 28331, 38837, 55235}}, +{13253, 17, 63988, {1, 1, 5, 15, 23, 15, 37, 197, 59, 455, 1875, 1745, 7565, 8039, 15901, 63129, 36095}}, +{13254, 17, 64008, {1, 1, 5, 11, 7, 1, 77, 235, 309, 245, 1539, 1421, 3401, 1477, 12655, 19851, 86147}}, +{13255, 17, 64013, {1, 1, 3, 9, 27, 9, 113, 127, 167, 213, 161, 4065, 1275, 10699, 26111, 26213, 129091}}, +{13256, 17, 64019, {1, 3, 5, 9, 9, 17, 109, 205, 23, 145, 1261, 51, 5855, 7411, 20551, 5801, 47841}}, +{13257, 17, 64026, {1, 1, 3, 3, 15, 1, 1, 39, 431, 601, 177, 525, 6951, 6271, 27031, 37157, 73979}}, +{13258, 17, 64028, {1, 3, 1, 3, 19, 61, 11, 131, 31, 223, 959, 3531, 2433, 15675, 29201, 49277, 43977}}, +{13259, 17, 64032, {1, 1, 5, 9, 5, 27, 57, 3, 503, 755, 1261, 3659, 6685, 10041, 24739, 12201, 19753}}, +{13260, 17, 64042, {1, 1, 7, 3, 31, 27, 7, 191, 7, 415, 1665, 1413, 7493, 2645, 23577, 46331, 9481}}, +{13261, 17, 64044, {1, 1, 5, 1, 29, 59, 99, 231, 33, 613, 1347, 2671, 1767, 15685, 26583, 44699, 73511}}, +{13262, 17, 64055, {1, 1, 3, 3, 9, 47, 93, 87, 45, 549, 219, 2141, 233, 10239, 30325, 14985, 70325}}, +{13263, 17, 64070, {1, 1, 3, 3, 21, 39, 81, 179, 319, 853, 93, 2869, 59, 6675, 22391, 16089, 33949}}, +{13264, 17, 64079, {1, 1, 3, 7, 31, 19, 73, 249, 175, 57, 1717, 3557, 2307, 4595, 22045, 33291, 123003}}, +{13265, 17, 64084, {1, 1, 1, 3, 7, 23, 81, 229, 387, 1001, 1371, 17, 667, 3043, 30507, 44613, 32239}}, +{13266, 17, 64087, {1, 1, 7, 15, 15, 59, 83, 99, 101, 863, 333, 845, 7547, 13345, 7599, 51, 10963}}, +{13267, 17, 64093, {1, 1, 1, 3, 15, 55, 73, 37, 429, 711, 1315, 2911, 5109, 953, 14721, 25551, 33527}}, +{13268, 17, 64100, {1, 1, 5, 9, 11, 57, 75, 107, 449, 293, 1267, 2633, 5291, 9939, 12365, 1975, 75705}}, +{13269, 17, 64104, {1, 3, 3, 7, 19, 51, 111, 233, 369, 873, 1419, 425, 6587, 11371, 29613, 28041, 77405}}, +{13270, 17, 64109, {1, 3, 1, 15, 11, 1, 65, 185, 301, 25, 75, 1353, 6879, 11519, 24093, 65223, 130659}}, +{13271, 17, 64140, {1, 1, 3, 3, 17, 17, 33, 177, 467, 841, 949, 1119, 7869, 5835, 22175, 20439, 98923}}, +{13272, 17, 64148, {1, 3, 1, 9, 1, 19, 1, 9, 487, 425, 1095, 1995, 693, 12661, 27717, 56167, 34829}}, +{13273, 17, 64151, {1, 1, 7, 7, 27, 57, 85, 159, 109, 801, 477, 3953, 3195, 11079, 26885, 59833, 4971}}, +{13274, 17, 64152, {1, 1, 1, 15, 25, 9, 89, 231, 499, 623, 1385, 3753, 4781, 15263, 12721, 17511, 67327}}, +{13275, 17, 64171, {1, 1, 3, 7, 9, 11, 103, 65, 319, 681, 1423, 2355, 6243, 399, 8483, 23697, 107995}}, +{13276, 17, 64179, {1, 1, 1, 1, 5, 7, 63, 117, 151, 905, 163, 3813, 6931, 13161, 15131, 63067, 15649}}, +{13277, 17, 64186, {1, 3, 3, 3, 13, 57, 69, 199, 283, 153, 617, 123, 3125, 3057, 8121, 14483, 28085}}, +{13278, 17, 64203, {1, 3, 7, 15, 25, 45, 25, 179, 91, 457, 681, 537, 243, 4369, 11395, 17565, 47875}}, +{13279, 17, 64206, {1, 3, 1, 13, 29, 51, 101, 23, 143, 715, 1725, 791, 6001, 4283, 10689, 49237, 5231}}, +{13280, 17, 64213, {1, 3, 3, 5, 27, 41, 39, 17, 501, 587, 1067, 1859, 9, 13449, 31257, 17675, 99769}}, +{13281, 17, 64214, {1, 1, 1, 3, 15, 57, 119, 195, 15, 779, 761, 733, 3505, 4815, 23167, 411, 52303}}, +{13282, 17, 64220, {1, 3, 1, 13, 9, 31, 5, 141, 19, 487, 739, 577, 4383, 1951, 24293, 45503, 111923}}, +{13283, 17, 64233, {1, 3, 1, 11, 25, 37, 107, 245, 89, 107, 1969, 1569, 7475, 11795, 6123, 45311, 52251}}, +{13284, 17, 64239, {1, 1, 7, 11, 15, 9, 67, 141, 199, 91, 819, 3721, 6251, 6107, 9393, 14941, 98545}}, +{13285, 17, 64248, {1, 3, 3, 11, 23, 9, 31, 211, 339, 665, 1507, 2255, 3589, 11495, 28393, 2017, 106735}}, +{13286, 17, 64251, {1, 3, 5, 11, 27, 13, 105, 217, 173, 337, 1573, 837, 3771, 8645, 28749, 27501, 45045}}, +{13287, 17, 64259, {1, 1, 5, 1, 11, 43, 99, 217, 131, 545, 1323, 3089, 5689, 785, 9043, 29961, 17855}}, +{13288, 17, 64268, {1, 1, 3, 9, 31, 41, 61, 239, 271, 123, 1583, 397, 4243, 12197, 9847, 12341, 130533}}, +{13289, 17, 64273, {1, 3, 5, 3, 27, 11, 33, 31, 77, 403, 823, 2791, 3475, 4201, 15967, 39149, 107137}}, +{13290, 17, 64279, {1, 3, 1, 11, 9, 5, 103, 145, 85, 341, 1615, 729, 7209, 10289, 20807, 54167, 15613}}, +{13291, 17, 64283, {1, 3, 7, 1, 29, 33, 91, 219, 171, 367, 907, 3645, 1059, 9031, 247, 13231, 14323}}, +{13292, 17, 64292, {1, 1, 1, 7, 19, 15, 65, 61, 221, 941, 1005, 1447, 3513, 8917, 17399, 52471, 64245}}, +{13293, 17, 64296, {1, 1, 5, 7, 5, 35, 15, 253, 325, 313, 2015, 3239, 1633, 9745, 11617, 10575, 35877}}, +{13294, 17, 64301, {1, 3, 5, 3, 13, 1, 115, 207, 227, 637, 1119, 781, 2897, 1573, 16499, 43167, 20631}}, +{13295, 17, 64302, {1, 3, 5, 9, 17, 47, 117, 7, 303, 719, 975, 1167, 2463, 5255, 28237, 33495, 57133}}, +{13296, 17, 64324, {1, 3, 5, 11, 5, 43, 123, 63, 19, 97, 1423, 695, 5985, 5923, 5755, 22721, 5411}}, +{13297, 17, 64331, {1, 3, 1, 9, 9, 25, 87, 197, 325, 827, 1679, 1561, 101, 3951, 17453, 33537, 121431}}, +{13298, 17, 64346, {1, 1, 7, 5, 13, 33, 3, 191, 171, 37, 619, 1917, 7525, 14103, 25807, 25455, 57455}}, +{13299, 17, 64364, {1, 3, 3, 1, 9, 35, 93, 159, 455, 115, 479, 665, 477, 4483, 29751, 45047, 41251}}, +{13300, 17, 64382, {1, 3, 1, 3, 11, 47, 41, 199, 511, 475, 151, 1163, 239, 6731, 4461, 39845, 99555}}, +{13301, 17, 64386, {1, 1, 5, 7, 9, 5, 49, 221, 503, 637, 1323, 3303, 4137, 6675, 17709, 49233, 38325}}, +{13302, 17, 64400, {1, 1, 5, 15, 1, 43, 55, 67, 291, 393, 237, 3555, 4171, 909, 8655, 46309, 61799}}, +{13303, 17, 64409, {1, 3, 5, 3, 3, 37, 125, 249, 509, 611, 983, 4093, 1633, 10063, 10811, 60033, 40999}}, +{13304, 17, 64419, {1, 3, 5, 11, 1, 37, 75, 255, 279, 545, 1999, 833, 2789, 14601, 16707, 64703, 53545}}, +{13305, 17, 64433, {1, 1, 5, 7, 3, 15, 59, 11, 17, 711, 721, 765, 3747, 13549, 28641, 47437, 42261}}, +{13306, 17, 64454, {1, 3, 7, 1, 3, 45, 65, 45, 279, 929, 933, 2215, 7095, 14593, 6047, 40747, 109789}}, +{13307, 17, 64458, {1, 3, 7, 15, 15, 55, 89, 155, 345, 515, 1005, 2921, 1761, 1095, 28463, 20971, 62451}}, +{13308, 17, 64482, {1, 3, 3, 1, 1, 41, 35, 149, 481, 171, 305, 1411, 237, 4515, 32375, 22645, 741}}, +{13309, 17, 64494, {1, 1, 1, 15, 17, 1, 123, 235, 221, 495, 1693, 3109, 6453, 8827, 23775, 9303, 30237}}, +{13310, 17, 64496, {1, 3, 3, 5, 7, 63, 37, 13, 457, 159, 1683, 2207, 1731, 3341, 7415, 21073, 119417}}, +{13311, 17, 64505, {1, 1, 7, 15, 21, 27, 5, 67, 267, 919, 203, 1129, 4029, 3407, 16767, 35485, 66903}}, +{13312, 17, 64514, {1, 1, 1, 5, 15, 29, 99, 5, 219, 677, 443, 3799, 2461, 747, 20885, 32661, 44079}}, +{13313, 17, 64519, {1, 1, 1, 1, 3, 55, 53, 151, 195, 587, 1155, 2439, 3817, 8735, 30849, 54107, 14113}}, +{13314, 17, 64525, {1, 1, 1, 9, 29, 15, 89, 175, 373, 925, 301, 3749, 5439, 2653, 22819, 41201, 77043}}, +{13315, 17, 64528, {1, 1, 1, 1, 25, 49, 29, 129, 331, 539, 1247, 773, 7891, 5905, 19571, 17919, 6815}}, +{13316, 17, 64534, {1, 1, 3, 15, 5, 63, 123, 133, 141, 383, 1893, 573, 629, 3939, 9455, 50433, 111415}}, +{13317, 17, 64561, {1, 1, 7, 9, 15, 33, 119, 159, 17, 511, 1841, 427, 3911, 8609, 4215, 9799, 84397}}, +{13318, 17, 64571, {1, 1, 7, 3, 9, 25, 63, 247, 235, 635, 915, 3423, 5421, 7021, 9203, 18121, 3683}}, +{13319, 17, 64579, {1, 3, 1, 1, 25, 11, 105, 1, 491, 137, 1923, 103, 3371, 3543, 5173, 36777, 23417}}, +{13320, 17, 64591, {1, 3, 3, 13, 19, 37, 93, 191, 101, 193, 351, 839, 7147, 5477, 29225, 45307, 1455}}, +{13321, 17, 64606, {1, 3, 1, 5, 11, 17, 95, 239, 105, 407, 395, 919, 3317, 14825, 23447, 4897, 128363}}, +{13322, 17, 64616, {1, 1, 1, 11, 27, 47, 83, 137, 163, 673, 1291, 3041, 4559, 7217, 23613, 19477, 93805}}, +{13323, 17, 64619, {1, 1, 1, 15, 25, 51, 37, 9, 23, 757, 1921, 2649, 5677, 11421, 10231, 1775, 124709}}, +{13324, 17, 64640, {1, 3, 1, 13, 31, 37, 37, 163, 59, 975, 1203, 1425, 1255, 3259, 16681, 38101, 118165}}, +{13325, 17, 64645, {1, 1, 3, 11, 17, 17, 31, 23, 169, 305, 3, 1631, 6853, 7019, 14539, 57663, 70377}}, +{13326, 17, 64649, {1, 1, 7, 3, 15, 61, 113, 31, 497, 935, 473, 819, 1223, 13907, 5075, 45177, 20255}}, +{13327, 17, 64652, {1, 3, 7, 13, 9, 41, 123, 121, 497, 877, 915, 3323, 4815, 4175, 25979, 38751, 107099}}, +{13328, 17, 64670, {1, 1, 3, 7, 13, 33, 31, 167, 331, 595, 517, 1237, 1947, 1905, 28155, 52431, 93065}}, +{13329, 17, 64673, {1, 3, 1, 1, 11, 51, 7, 151, 323, 211, 523, 2929, 233, 3633, 2785, 6043, 100101}}, +{13330, 17, 64674, {1, 1, 7, 13, 29, 3, 125, 247, 121, 567, 857, 3225, 7461, 15413, 773, 54939, 67443}}, +{13331, 17, 64683, {1, 1, 1, 15, 19, 29, 101, 179, 369, 115, 1777, 3223, 1499, 12487, 41, 50607, 111137}}, +{13332, 17, 64697, {1, 1, 3, 1, 9, 59, 21, 25, 173, 357, 1143, 1353, 3907, 10743, 30325, 39211, 116671}}, +{13333, 17, 64703, {1, 1, 7, 15, 9, 63, 67, 229, 7, 399, 2037, 3531, 6393, 4273, 9365, 52009, 118093}}, +{13334, 17, 64711, {1, 1, 7, 1, 31, 21, 5, 251, 433, 1, 481, 4041, 6179, 825, 8671, 20597, 103257}}, +{13335, 17, 64723, {1, 1, 7, 1, 15, 41, 69, 93, 47, 17, 1901, 2671, 4739, 1883, 30239, 50763, 108295}}, +{13336, 17, 64736, {1, 3, 7, 15, 29, 19, 63, 213, 475, 133, 43, 955, 2001, 555, 10479, 1333, 52807}}, +{13337, 17, 64739, {1, 3, 3, 15, 27, 13, 91, 109, 71, 333, 1971, 3355, 2175, 11457, 31101, 30217, 68263}}, +{13338, 17, 64741, {1, 1, 5, 1, 21, 33, 51, 169, 365, 475, 1015, 985, 7217, 15453, 7727, 49843, 57733}}, +{13339, 17, 64748, {1, 1, 7, 1, 11, 37, 67, 135, 429, 403, 1663, 2037, 7849, 3757, 6373, 38703, 46393}}, +{13340, 17, 64759, {1, 1, 1, 3, 15, 3, 29, 101, 327, 643, 47, 1805, 6873, 1659, 31097, 34847, 46843}}, +{13341, 17, 64768, {1, 3, 1, 15, 9, 45, 7, 189, 175, 955, 45, 3545, 3595, 7443, 2913, 54501, 63279}}, +{13342, 17, 64771, {1, 3, 7, 11, 1, 39, 59, 179, 209, 121, 445, 4077, 4851, 15161, 29133, 13543, 106247}}, +{13343, 17, 64778, {1, 3, 7, 7, 5, 53, 73, 107, 409, 639, 1731, 1921, 999, 14445, 17629, 3667, 74819}}, +{13344, 17, 64792, {1, 3, 3, 9, 23, 41, 117, 195, 497, 425, 627, 1599, 7715, 1401, 7217, 61113, 67135}}, +{13345, 17, 64821, {1, 1, 5, 13, 9, 33, 97, 115, 233, 833, 1041, 1755, 5317, 12703, 25709, 62293, 2569}}, +{13346, 17, 64831, {1, 1, 1, 11, 1, 7, 27, 151, 325, 905, 1279, 4093, 7495, 9803, 17339, 7977, 24009}}, +{13347, 17, 64839, {1, 3, 1, 11, 25, 59, 89, 175, 67, 139, 1507, 411, 7863, 9585, 14869, 46655, 126021}}, +{13348, 17, 64848, {1, 3, 3, 15, 29, 5, 111, 251, 69, 177, 519, 901, 4331, 5341, 22031, 3851, 114369}}, +{13349, 17, 64860, {1, 3, 5, 3, 19, 9, 83, 69, 411, 673, 1549, 3429, 3647, 12601, 17177, 16161, 114561}}, +{13350, 17, 64867, {1, 1, 5, 5, 21, 15, 65, 179, 405, 571, 1245, 3693, 7471, 12109, 20177, 28783, 124339}}, +{13351, 17, 64870, {1, 1, 5, 5, 9, 61, 69, 99, 9, 829, 1823, 3803, 1181, 3073, 10069, 28689, 21347}}, +{13352, 17, 64874, {1, 1, 5, 1, 3, 11, 25, 99, 241, 957, 1137, 7, 3809, 7073, 21217, 49447, 41425}}, +{13353, 17, 64879, {1, 3, 1, 9, 15, 59, 13, 29, 467, 893, 1667, 31, 3269, 12599, 28673, 17101, 81591}}, +{13354, 17, 64887, {1, 3, 7, 3, 15, 55, 79, 177, 1, 891, 217, 2725, 6171, 7779, 16173, 1003, 37093}}, +{13355, 17, 64894, {1, 3, 7, 11, 15, 61, 13, 181, 421, 83, 905, 1089, 4597, 3291, 23243, 53123, 21315}}, +{13356, 17, 64897, {1, 1, 3, 3, 21, 63, 113, 149, 203, 379, 583, 1955, 8087, 9155, 23019, 17757, 1537}}, +{13357, 17, 64898, {1, 3, 5, 9, 27, 41, 61, 207, 213, 253, 693, 273, 1835, 14135, 11519, 40819, 50999}}, +{13358, 17, 64921, {1, 3, 5, 3, 1, 51, 71, 237, 355, 327, 1903, 133, 6075, 4685, 29689, 48723, 67791}}, +{13359, 17, 64933, {1, 3, 5, 9, 21, 13, 101, 23, 95, 369, 1657, 989, 4081, 1373, 29005, 7247, 53923}}, +{13360, 17, 64940, {1, 1, 7, 13, 15, 3, 71, 189, 345, 771, 251, 937, 1041, 3017, 27279, 1635, 32581}}, +{13361, 17, 64957, {1, 1, 5, 7, 23, 63, 99, 43, 237, 189, 1549, 25, 63, 14089, 14387, 51423, 57193}}, +{13362, 17, 64969, {1, 1, 7, 15, 13, 55, 89, 87, 95, 241, 827, 501, 2341, 14357, 831, 27101, 98285}}, +{13363, 17, 64972, {1, 1, 1, 9, 29, 29, 125, 81, 73, 123, 329, 2617, 1259, 4415, 30007, 19467, 117847}}, +{13364, 17, 64978, {1, 3, 1, 11, 15, 63, 85, 121, 409, 885, 1197, 423, 2673, 12107, 1127, 14119, 90541}}, +{13365, 17, 64984, {1, 3, 1, 3, 1, 35, 117, 149, 213, 925, 923, 1013, 3547, 6877, 3467, 47893, 38645}}, +{13366, 17, 64993, {1, 1, 3, 15, 3, 21, 87, 199, 197, 851, 1711, 3449, 1771, 1727, 11651, 51903, 99835}}, +{13367, 17, 64999, {1, 3, 3, 1, 5, 27, 57, 243, 465, 173, 697, 4011, 6177, 3019, 31317, 24699, 53151}}, +{13368, 17, 65000, {1, 3, 5, 7, 7, 51, 61, 177, 489, 381, 493, 1975, 3143, 8003, 7735, 46363, 110705}}, +{13369, 17, 65006, {1, 1, 7, 5, 27, 45, 69, 33, 229, 725, 2033, 3655, 3027, 11795, 2941, 7921, 117605}}, +{13370, 17, 65011, {1, 3, 1, 7, 3, 37, 91, 255, 13, 651, 49, 309, 7425, 11641, 3661, 3929, 94199}}, +{13371, 17, 65014, {1, 3, 7, 5, 7, 47, 121, 203, 297, 941, 1585, 3659, 265, 159, 30729, 31825, 343}}, +{13372, 17, 65036, {1, 3, 5, 9, 3, 25, 95, 215, 125, 105, 37, 943, 4095, 8169, 26763, 20975, 122307}}, +{13373, 17, 65044, {1, 1, 3, 15, 9, 13, 81, 25, 51, 15, 599, 835, 6723, 9487, 25219, 60401, 48749}}, +{13374, 17, 65063, {1, 3, 3, 15, 15, 47, 41, 219, 77, 43, 1705, 2363, 7005, 7137, 17687, 665, 116097}}, +{13375, 17, 65067, {1, 3, 5, 1, 17, 33, 71, 3, 253, 355, 117, 1995, 3339, 11789, 13563, 58889, 18553}}, +{13376, 17, 65075, {1, 3, 5, 1, 21, 33, 89, 177, 9, 951, 1593, 1419, 3295, 9617, 31661, 7841, 119939}}, +{13377, 17, 65077, {1, 3, 3, 1, 31, 35, 25, 9, 379, 271, 923, 2387, 3351, 5869, 4501, 6855, 28273}}, +{13378, 17, 65082, {1, 1, 5, 9, 11, 15, 127, 79, 405, 579, 395, 2469, 5847, 7589, 17577, 61717, 6493}}, +{13379, 17, 65095, {1, 3, 7, 13, 29, 13, 99, 209, 79, 469, 5, 2231, 89, 1557, 5123, 47169, 46529}}, +{13380, 17, 65101, {1, 3, 7, 9, 13, 35, 119, 53, 7, 351, 601, 901, 5407, 13673, 6929, 38311, 2659}}, +{13381, 17, 65104, {1, 3, 7, 9, 13, 23, 61, 255, 113, 331, 367, 2979, 2741, 6971, 26447, 6861, 116267}}, +{13382, 17, 65109, {1, 1, 3, 3, 25, 57, 93, 5, 387, 87, 1765, 1277, 8175, 11185, 4377, 9779, 95569}}, +{13383, 17, 65110, {1, 1, 7, 11, 29, 43, 31, 155, 111, 409, 733, 1919, 2681, 8435, 5877, 35439, 15435}}, +{13384, 17, 65116, {1, 1, 1, 7, 19, 33, 109, 125, 51, 733, 997, 3467, 5081, 8371, 263, 31461, 46117}}, +{13385, 17, 65126, {1, 3, 3, 7, 27, 61, 57, 75, 317, 247, 1535, 3757, 4617, 15627, 11191, 3581, 64475}}, +{13386, 17, 65129, {1, 3, 3, 1, 31, 7, 95, 151, 159, 475, 559, 379, 361, 5953, 5551, 20313, 64015}}, +{13387, 17, 65138, {1, 1, 5, 1, 11, 31, 71, 77, 493, 697, 345, 1809, 611, 14319, 6591, 23657, 44071}}, +{13388, 17, 65160, {1, 1, 1, 13, 5, 1, 9, 233, 229, 397, 1201, 1817, 7409, 11521, 3753, 35611, 123037}}, +{13389, 17, 65171, {1, 3, 7, 15, 9, 15, 85, 163, 99, 867, 265, 1021, 129, 11059, 123, 27185, 68435}}, +{13390, 17, 65173, {1, 3, 1, 11, 25, 43, 105, 165, 291, 977, 463, 2699, 5361, 9951, 29735, 63501, 86235}}, +{13391, 17, 65180, {1, 3, 7, 13, 9, 33, 39, 145, 441, 233, 373, 193, 1451, 7975, 2871, 64431, 43339}}, +{13392, 17, 65189, {1, 1, 7, 13, 15, 25, 45, 27, 319, 719, 1801, 447, 3027, 769, 271, 37227, 26447}}, +{13393, 17, 65193, {1, 1, 5, 1, 29, 1, 59, 59, 121, 251, 387, 55, 5957, 10527, 24227, 38841, 29115}}, +{13394, 17, 65208, {1, 3, 1, 5, 31, 25, 67, 191, 137, 849, 631, 953, 3103, 9737, 28993, 49413, 60709}}, +{13395, 17, 65214, {1, 3, 3, 15, 7, 5, 37, 179, 357, 961, 1649, 441, 5287, 4161, 24013, 39661, 76233}}, +{13396, 17, 65216, {1, 1, 5, 1, 9, 1, 47, 209, 219, 1021, 969, 2343, 5675, 7137, 14247, 50305, 72613}}, +{13397, 17, 65225, {1, 1, 3, 1, 9, 43, 43, 47, 35, 97, 617, 1033, 2387, 14155, 17049, 53333, 108619}}, +{13398, 17, 65236, {1, 3, 1, 3, 1, 45, 11, 171, 349, 65, 909, 1801, 1075, 10905, 7395, 19997, 128205}}, +{13399, 17, 65239, {1, 1, 7, 11, 19, 39, 117, 175, 459, 791, 1383, 3473, 6937, 8447, 10077, 13353, 122063}}, +{13400, 17, 65273, {1, 3, 3, 9, 3, 27, 115, 29, 135, 305, 1023, 2517, 1981, 4969, 18149, 35565, 120785}}, +{13401, 17, 65274, {1, 3, 3, 11, 15, 23, 27, 115, 411, 805, 841, 2205, 5997, 5141, 10679, 25235, 81989}}, +{13402, 17, 65281, {1, 1, 3, 9, 11, 63, 27, 185, 337, 891, 1447, 1397, 8009, 4453, 23077, 37599, 93389}}, +{13403, 17, 65294, {1, 1, 5, 13, 27, 11, 77, 11, 447, 81, 1603, 2317, 6499, 6631, 27305, 51049, 40967}}, +{13404, 17, 65324, {1, 3, 7, 1, 7, 43, 83, 33, 69, 119, 139, 1391, 4879, 3759, 31211, 29203, 110229}}, +{13405, 17, 65335, {1, 3, 7, 15, 31, 59, 53, 97, 135, 233, 1421, 587, 2985, 3627, 7355, 53829, 51581}}, +{13406, 17, 65354, {1, 3, 7, 15, 1, 37, 39, 225, 147, 37, 327, 2819, 6081, 4337, 22063, 21177, 91065}}, +{13407, 17, 65359, {1, 1, 3, 1, 13, 31, 61, 133, 433, 243, 131, 3625, 6389, 335, 24029, 33217, 80833}}, +{13408, 17, 65373, {1, 1, 7, 11, 21, 39, 95, 181, 35, 499, 677, 3935, 1379, 6791, 12633, 13671, 28317}}, +{13409, 17, 65383, {1, 3, 1, 5, 7, 57, 5, 229, 389, 197, 1523, 1221, 609, 10449, 6389, 9279, 53871}}, +{13410, 17, 65387, {1, 3, 5, 7, 1, 39, 69, 131, 387, 839, 1375, 3841, 81, 7395, 5837, 32067, 51183}}, +{13411, 17, 65397, {1, 1, 5, 3, 5, 27, 107, 171, 53, 923, 345, 445, 1101, 11201, 20563, 30889, 72361}}, +{13412, 17, 65411, {1, 3, 7, 11, 19, 7, 99, 219, 485, 403, 293, 3967, 7517, 4765, 11331, 55, 92641}}, +{13413, 17, 65413, {1, 1, 7, 13, 19, 9, 73, 31, 405, 513, 941, 3645, 7075, 8109, 21431, 52791, 120927}}, +{13414, 17, 65418, {1, 1, 1, 15, 29, 33, 75, 65, 479, 47, 35, 4023, 4853, 2793, 29895, 2711, 83779}}, +{13415, 17, 65441, {1, 1, 3, 15, 11, 1, 9, 149, 503, 845, 647, 1233, 4355, 3623, 3197, 36015, 24839}}, +{13416, 17, 65444, {1, 1, 7, 1, 31, 35, 59, 25, 393, 503, 227, 3243, 301, 11121, 32463, 38185, 69969}}, +{13417, 17, 65447, {1, 1, 1, 7, 9, 15, 11, 89, 19, 605, 1657, 3335, 1967, 29, 28619, 42301, 79909}}, +{13418, 17, 65448, {1, 3, 7, 7, 19, 29, 111, 55, 299, 733, 547, 395, 4831, 1991, 7357, 25781, 115129}}, +{13419, 17, 65473, {1, 1, 3, 7, 5, 33, 31, 101, 163, 389, 1163, 1843, 4105, 14209, 29261, 5821, 17929}}, +{13420, 17, 65476, {1, 3, 5, 1, 11, 23, 53, 227, 497, 695, 313, 3305, 6549, 15401, 9339, 40283, 60531}}, +{13421, 17, 65480, {1, 3, 5, 5, 3, 29, 77, 149, 509, 747, 85, 2561, 4435, 14475, 22887, 38177, 24535}}, +{13422, 17, 65494, {1, 1, 7, 1, 1, 33, 7, 77, 153, 369, 689, 3325, 1173, 16203, 1499, 36627, 66915}}, +{13423, 17, 65509, {1, 1, 5, 11, 23, 61, 95, 61, 289, 71, 653, 2817, 365, 7391, 1613, 48901, 57471}}, +{13424, 17, 65519, {1, 3, 3, 7, 15, 29, 65, 133, 15, 921, 1601, 1941, 6917, 10945, 20101, 59809, 9017}}, +{13425, 17, 65527, {1, 3, 3, 15, 7, 51, 95, 53, 87, 1017, 1039, 3405, 1967, 9855, 4905, 4651, 83487}}, +{13426, 18, 19, {1, 3, 5, 13, 23, 27, 31, 179, 121, 597, 829, 4003, 2487, 3977, 3087, 26791, 28305, 138357}}, +{13427, 18, 31, {1, 1, 5, 5, 5, 39, 95, 117, 461, 117, 109, 2571, 7651, 12361, 17921, 555, 33353, 186427}}, +{13428, 18, 38, {1, 1, 3, 13, 23, 47, 89, 125, 271, 609, 215, 3861, 6883, 3217, 2547, 54943, 60565, 215939}}, +{13429, 18, 61, {1, 1, 7, 15, 25, 61, 47, 93, 219, 919, 1551, 1417, 2753, 4353, 9201, 46423, 31227, 150649}}, +{13430, 18, 64, {1, 1, 1, 3, 29, 39, 11, 61, 137, 809, 147, 2715, 5455, 9431, 5725, 46135, 118193, 54099}}, +{13431, 18, 109, {1, 1, 3, 1, 25, 37, 83, 211, 423, 779, 1731, 2827, 883, 10477, 28771, 21723, 114333, 56293}}, +{13432, 18, 115, {1, 1, 5, 5, 27, 17, 21, 125, 495, 655, 1803, 3555, 1997, 15593, 29705, 48537, 53935, 179773}}, +{13433, 18, 118, {1, 1, 7, 5, 19, 63, 55, 15, 469, 769, 967, 3047, 1713, 11655, 15313, 29965, 78857, 223391}}, +{13434, 18, 131, {1, 3, 3, 5, 27, 33, 51, 171, 417, 243, 1203, 3505, 2533, 2695, 219, 57423, 5145, 143165}}, +{13435, 18, 167, {1, 3, 5, 9, 5, 19, 95, 97, 1, 863, 693, 2977, 4839, 6649, 22587, 40745, 113839, 69131}}, +{13436, 18, 200, {1, 3, 5, 1, 31, 39, 53, 85, 509, 5, 359, 1947, 3279, 5433, 21763, 46713, 37289, 35911}}, +{13437, 18, 241, {1, 3, 7, 13, 17, 35, 59, 63, 95, 667, 1775, 2165, 7861, 15731, 12159, 36179, 115457, 184819}}, +{13438, 18, 244, {1, 3, 3, 15, 19, 51, 7, 83, 367, 573, 503, 535, 333, 13041, 7187, 14479, 57473, 242951}}, +{13439, 18, 247, {1, 3, 5, 1, 7, 27, 65, 201, 365, 445, 985, 1175, 6391, 7345, 19935, 29085, 103001, 231855}}, +{13440, 18, 261, {1, 3, 5, 13, 15, 61, 95, 125, 135, 217, 1787, 417, 7641, 11825, 14531, 48497, 125087, 73279}}, +{13441, 18, 265, {1, 1, 5, 13, 7, 25, 77, 99, 341, 447, 1711, 137, 2749, 3465, 26255, 719, 102595, 112825}}, +{13442, 18, 304, {1, 1, 7, 7, 15, 13, 127, 57, 359, 591, 713, 409, 1293, 4979, 7035, 11369, 85255, 207241}}, +{13443, 18, 314, {1, 3, 3, 5, 1, 45, 123, 183, 297, 375, 1269, 1197, 2389, 6269, 24549, 44643, 75893, 161509}}, +{13444, 18, 341, {1, 1, 5, 7, 17, 55, 67, 51, 449, 383, 2037, 871, 1359, 15317, 22055, 4655, 18065, 258271}}, +{13445, 18, 376, {1, 1, 3, 11, 21, 27, 59, 205, 145, 195, 1747, 1121, 1061, 8879, 31455, 56541, 74765, 183047}}, +{13446, 18, 395, {1, 1, 5, 15, 1, 11, 69, 157, 13, 185, 1355, 467, 4383, 13103, 21679, 35169, 33427, 32113}}, +{13447, 18, 405, {1, 3, 1, 3, 29, 41, 15, 209, 313, 61, 1749, 2457, 1897, 15595, 24441, 39913, 40499, 5179}}, +{13448, 18, 406, {1, 3, 7, 15, 25, 41, 87, 125, 239, 73, 207, 2043, 1133, 12845, 8533, 16339, 117913, 118677}}, +{13449, 18, 443, {1, 1, 3, 15, 25, 9, 15, 97, 395, 99, 2017, 1003, 847, 2535, 11753, 54769, 54011, 73541}}, +{13450, 18, 451, {1, 1, 7, 15, 11, 61, 13, 49, 319, 871, 893, 165, 3957, 8683, 31197, 39491, 58705, 213411}}, +{13451, 18, 458, {1, 3, 7, 3, 17, 43, 29, 81, 461, 595, 541, 243, 5587, 13083, 29981, 16187, 124601, 89543}}, +{13452, 18, 460, {1, 1, 5, 11, 7, 5, 61, 43, 445, 115, 1705, 419, 4627, 15063, 16053, 26249, 112243, 208711}}, +{13453, 18, 468, {1, 3, 3, 9, 27, 21, 89, 49, 41, 859, 681, 2043, 7445, 9591, 13443, 36981, 66785, 227899}}, +{13454, 18, 472, {1, 1, 3, 5, 11, 55, 51, 45, 41, 739, 1199, 191, 4563, 4035, 3657, 12189, 52879, 33961}}, +{13455, 18, 482, {1, 1, 1, 3, 17, 59, 47, 217, 389, 783, 1501, 517, 6311, 7903, 1371, 50617, 41723, 116473}}, +{13456, 18, 491, {1, 1, 5, 13, 29, 39, 101, 203, 101, 479, 1337, 2647, 6447, 563, 2593, 16533, 122535, 25587}}, +{13457, 18, 496, {1, 1, 3, 3, 27, 21, 75, 173, 289, 279, 665, 3177, 559, 8539, 10903, 16779, 128219, 125907}}, +{13458, 18, 524, {1, 1, 1, 11, 27, 1, 61, 247, 113, 585, 331, 3443, 5939, 5213, 27289, 57057, 17349, 62359}}, +{13459, 18, 536, {1, 3, 5, 15, 21, 41, 67, 47, 121, 11, 545, 3609, 7745, 3669, 9045, 8377, 97655, 99631}}, +{13460, 18, 542, {1, 3, 5, 9, 11, 15, 111, 61, 67, 775, 579, 3421, 7827, 13607, 32373, 43531, 86149, 238827}}, +{13461, 18, 557, {1, 1, 1, 1, 9, 45, 79, 153, 331, 399, 1777, 3515, 3363, 3499, 13461, 48651, 21731, 220611}}, +{13462, 18, 572, {1, 1, 1, 1, 31, 57, 117, 223, 139, 725, 1115, 3203, 8185, 11983, 20245, 55913, 36803, 68101}}, +{13463, 18, 580, {1, 1, 1, 3, 31, 57, 53, 79, 225, 307, 1645, 3311, 643, 6587, 12037, 12453, 83461, 195503}}, +{13464, 18, 592, {1, 3, 1, 7, 23, 25, 65, 233, 273, 97, 37, 1563, 3635, 9299, 24367, 42761, 55, 128675}}, +{13465, 18, 656, {1, 3, 3, 11, 29, 21, 97, 143, 447, 345, 389, 381, 1403, 685, 309, 11103, 69769, 194441}}, +{13466, 18, 713, {1, 3, 3, 11, 23, 55, 119, 71, 23, 291, 1241, 1723, 5025, 4499, 26617, 22875, 62185, 240321}}, +{13467, 18, 719, {1, 1, 7, 11, 19, 63, 31, 131, 393, 99, 1061, 3805, 7477, 15357, 8269, 26067, 113349, 239333}}, +{13468, 18, 738, {1, 3, 5, 1, 5, 37, 77, 83, 37, 759, 1297, 3067, 5369, 5977, 7531, 49079, 94503, 192765}}, +{13469, 18, 749, {1, 1, 7, 1, 23, 9, 119, 137, 469, 73, 2001, 2629, 2681, 2295, 2055, 44027, 47627, 45283}}, +{13470, 18, 752, {1, 3, 1, 7, 31, 17, 61, 137, 241, 325, 1417, 2383, 4171, 2495, 215, 59593, 98495, 74727}}, +{13471, 18, 767, {1, 1, 7, 13, 7, 5, 59, 189, 131, 865, 1963, 1811, 5629, 16189, 16397, 58069, 72081, 191457}}, +{13472, 18, 772, {1, 1, 7, 15, 23, 33, 93, 247, 395, 643, 693, 3587, 4375, 5519, 9449, 37515, 11455, 218337}}, +{13473, 18, 782, {1, 1, 3, 1, 27, 63, 113, 91, 477, 55, 1461, 1547, 4743, 699, 21639, 1815, 169, 34239}}, +{13474, 18, 789, {1, 1, 5, 15, 29, 37, 19, 19, 247, 771, 695, 319, 1779, 10553, 16165, 60507, 87161, 86967}}, +{13475, 18, 830, {1, 1, 7, 1, 25, 61, 13, 167, 251, 861, 1717, 1533, 7323, 3945, 20879, 37759, 129689, 35901}}, +{13476, 18, 838, {1, 3, 3, 7, 7, 61, 11, 25, 187, 949, 1393, 1743, 745, 16313, 5293, 16921, 17619, 237705}}, +{13477, 18, 916, {1, 3, 5, 11, 7, 27, 11, 107, 299, 711, 149, 1581, 7747, 14285, 6411, 52209, 79043, 61117}}, +{13478, 18, 920, {1, 1, 5, 1, 17, 19, 91, 185, 53, 699, 1185, 4007, 1099, 1965, 20239, 19547, 120859, 234149}}, +{13479, 18, 936, {1, 1, 5, 5, 13, 61, 117, 187, 149, 957, 837, 3549, 6221, 501, 24755, 47975, 67007, 12329}}, +{13480, 18, 991, {1, 1, 3, 15, 21, 41, 55, 81, 397, 403, 1699, 1057, 6125, 11987, 3103, 43361, 21277, 156577}}, +{13481, 18, 998, {1, 1, 5, 11, 5, 27, 5, 177, 387, 859, 809, 3919, 4085, 1535, 6009, 13265, 3065, 217945}}, +{13482, 18, 1016, {1, 3, 1, 13, 15, 57, 107, 81, 437, 305, 879, 1691, 3685, 11415, 3749, 46999, 113933, 10515}}, +{13483, 18, 1024, {1, 1, 7, 13, 9, 43, 59, 223, 189, 329, 829, 2033, 1835, 8255, 8121, 46463, 61433, 86453}}, +{13484, 18, 1053, {1, 3, 1, 9, 11, 49, 63, 125, 11, 987, 2017, 2623, 4753, 13889, 57, 24755, 108489, 175383}}, +{13485, 18, 1081, {1, 1, 1, 3, 25, 33, 39, 151, 405, 657, 1755, 957, 5557, 7611, 25839, 51385, 92713, 64009}}, +{13486, 18, 1090, {1, 3, 7, 9, 17, 17, 115, 89, 225, 715, 1085, 543, 1047, 15053, 14359, 43301, 31455, 156555}}, +{13487, 18, 1125, {1, 1, 7, 11, 11, 21, 115, 5, 371, 1003, 1053, 1713, 5921, 7277, 799, 62483, 28079, 222319}}, +{13488, 18, 1135, {1, 1, 3, 3, 31, 15, 127, 213, 459, 229, 1477, 1863, 1021, 14881, 16299, 5953, 121455, 49659}}, +{13489, 18, 1143, {1, 1, 5, 9, 3, 39, 87, 219, 57, 479, 69, 2777, 8105, 11975, 14743, 26205, 93303, 45311}}, +{13490, 18, 1150, {1, 1, 5, 13, 3, 43, 55, 139, 19, 715, 2035, 2993, 2945, 9075, 6275, 32233, 103127, 49523}}, +{13491, 18, 1154, {1, 3, 1, 13, 19, 31, 109, 211, 261, 231, 697, 383, 2173, 14617, 11877, 37009, 5485, 236549}}, +{13492, 18, 1171, {1, 1, 5, 3, 5, 23, 91, 115, 369, 11, 1021, 519, 655, 4461, 23743, 56981, 51687, 114845}}, +{13493, 18, 1174, {1, 3, 7, 9, 29, 23, 19, 127, 17, 369, 1537, 2705, 4993, 1869, 15447, 28127, 73609, 97683}}, +{13494, 18, 1202, {1, 1, 3, 9, 17, 61, 97, 187, 213, 861, 725, 3205, 103, 12729, 2915, 28389, 83123, 124065}}, +{13495, 18, 1213, {1, 3, 1, 1, 5, 61, 47, 187, 471, 137, 1595, 707, 2449, 14315, 16409, 41467, 37533, 1649}}, +{13496, 18, 1225, {1, 3, 5, 5, 7, 39, 1, 245, 361, 43, 1259, 3149, 3449, 15723, 6225, 27445, 80529, 215349}}, +{13497, 18, 1233, {1, 3, 3, 11, 17, 27, 37, 47, 157, 345, 1437, 3219, 5663, 7299, 23925, 34067, 102379, 42767}}, +{13498, 18, 1234, {1, 3, 5, 13, 21, 59, 43, 189, 17, 303, 1949, 3627, 3495, 7981, 18115, 34221, 43511, 255257}}, +{13499, 18, 1252, {1, 3, 7, 15, 3, 29, 81, 243, 321, 853, 595, 2451, 1713, 11859, 27689, 12849, 24505, 9547}}, +{13500, 18, 1255, {1, 3, 1, 3, 7, 7, 89, 183, 51, 901, 253, 2421, 7453, 15827, 21451, 58653, 51933, 239113}}, +{13501, 18, 1294, {1, 1, 7, 3, 21, 59, 93, 25, 219, 805, 1699, 3777, 3683, 5351, 5481, 44797, 651, 32161}}, +{13502, 18, 1349, {1, 3, 7, 5, 31, 15, 15, 167, 305, 545, 331, 3765, 8191, 5763, 16965, 7239, 73735, 1049}}, +{13503, 18, 1354, {1, 3, 1, 15, 13, 19, 59, 107, 213, 39, 1547, 3413, 6175, 16195, 4635, 8945, 60301, 196697}}, +{13504, 18, 1378, {1, 1, 3, 1, 29, 17, 51, 61, 261, 951, 643, 2329, 2235, 9171, 11265, 3523, 89781, 227125}}, +{13505, 18, 1383, {1, 3, 5, 1, 1, 51, 75, 199, 479, 899, 1425, 3697, 2039, 4503, 11789, 16853, 94607, 236887}}, +{13506, 18, 1387, {1, 3, 1, 9, 19, 43, 111, 41, 385, 677, 1067, 3391, 7819, 13663, 17713, 10155, 124243, 56005}}, +{13507, 18, 1392, {1, 3, 5, 3, 15, 3, 105, 23, 307, 955, 843, 1277, 6697, 11903, 8901, 36129, 51685, 251115}}, +{13508, 18, 1402, {1, 3, 1, 5, 27, 35, 95, 57, 207, 49, 1559, 171, 4703, 511, 4169, 23241, 111447, 173109}}, +{13509, 18, 1420, {1, 3, 1, 13, 23, 5, 31, 15, 223, 673, 1333, 2243, 2479, 7489, 31891, 33909, 96803, 227027}}, +{13510, 18, 1428, {1, 3, 5, 11, 5, 45, 19, 13, 367, 475, 1719, 3947, 5295, 2319, 20697, 181, 16925, 80239}}, +{13511, 18, 1437, {1, 1, 5, 13, 15, 47, 89, 15, 153, 73, 523, 3529, 5401, 15881, 13779, 32123, 82347, 58749}}, +{13512, 18, 1448, {1, 3, 5, 7, 5, 7, 123, 217, 261, 65, 685, 2175, 3289, 7473, 17857, 48335, 94183, 216857}}, +{13513, 18, 1459, {1, 3, 7, 13, 7, 23, 85, 25, 231, 19, 1179, 2705, 6433, 10827, 1969, 51521, 76775, 260291}}, +{13514, 18, 1473, {1, 3, 3, 13, 9, 39, 5, 141, 475, 777, 1809, 1975, 2347, 12611, 28303, 15239, 45429, 170015}}, +{13515, 18, 1507, {1, 1, 7, 7, 31, 31, 39, 19, 317, 897, 739, 275, 2261, 16013, 1123, 33181, 96603, 37563}}, +{13516, 18, 1516, {1, 1, 7, 13, 31, 55, 87, 239, 193, 435, 625, 2153, 3979, 15537, 19937, 50621, 48273, 31381}}, +{13517, 18, 1528, {1, 1, 1, 15, 1, 57, 73, 237, 361, 749, 379, 2511, 501, 10783, 2787, 36983, 12393, 14345}}, +{13518, 18, 1573, {1, 1, 1, 3, 25, 33, 85, 25, 83, 939, 139, 2601, 6385, 16041, 28463, 38977, 28163, 232165}}, +{13519, 18, 1592, {1, 3, 5, 3, 9, 19, 119, 171, 499, 19, 569, 353, 1619, 6235, 24431, 47401, 48125, 168819}}, +{13520, 18, 1597, {1, 1, 1, 3, 9, 27, 121, 137, 411, 391, 1437, 1339, 7475, 3889, 15451, 34809, 69807, 162851}}, +{13521, 18, 1654, {1, 3, 5, 11, 31, 39, 41, 3, 171, 35, 81, 2713, 1077, 10697, 12343, 52133, 52825, 152255}}, +{13522, 18, 1663, {1, 1, 3, 11, 17, 51, 83, 19, 357, 207, 897, 2167, 1333, 4111, 29295, 65371, 73447, 61765}}, +{13523, 18, 1730, {1, 1, 3, 7, 9, 59, 17, 135, 365, 931, 1203, 277, 5531, 4213, 12969, 2617, 591, 154539}}, +{13524, 18, 1739, {1, 3, 7, 11, 1, 53, 31, 49, 135, 603, 227, 911, 7371, 8559, 27195, 33065, 71351, 245255}}, +{13525, 18, 1741, {1, 1, 7, 1, 15, 5, 31, 135, 197, 791, 1531, 2567, 2545, 15515, 25417, 27431, 15571, 176829}}, +{13526, 18, 1753, {1, 3, 1, 1, 15, 7, 89, 217, 505, 859, 1329, 2285, 7921, 11839, 7699, 56867, 112483, 3895}}, +{13527, 18, 1783, {1, 3, 1, 3, 27, 57, 37, 117, 491, 815, 275, 381, 7443, 3297, 1523, 34211, 97589, 232261}}, +{13528, 18, 1804, {1, 1, 3, 3, 29, 63, 69, 153, 297, 423, 1435, 3927, 7265, 13223, 17607, 21201, 57929, 73037}}, +{13529, 18, 1807, {1, 3, 1, 3, 23, 41, 1, 167, 121, 217, 973, 2149, 3807, 9895, 29635, 1625, 99829, 218541}}, +{13530, 18, 1832, {1, 3, 5, 7, 31, 33, 53, 165, 51, 119, 7, 1655, 6521, 5481, 9503, 6833, 80483, 252111}}, +{13531, 18, 1850, {1, 1, 7, 1, 5, 63, 25, 219, 165, 893, 1665, 2789, 1113, 9277, 3151, 12625, 82403, 59749}}, +{13532, 18, 1852, {1, 3, 7, 3, 21, 13, 127, 127, 145, 993, 715, 1947, 7501, 4385, 11759, 2179, 26039, 28027}}, +{13533, 18, 1881, {1, 3, 5, 9, 23, 27, 123, 1, 231, 709, 1615, 1433, 5991, 1045, 16269, 123, 110249, 154819}}, +{13534, 18, 1894, {1, 1, 1, 5, 17, 11, 123, 151, 387, 905, 991, 1571, 4463, 6765, 31905, 59307, 75175, 204571}}, +{13535, 18, 1927, {1, 3, 1, 11, 27, 49, 1, 181, 77, 1023, 807, 3479, 7965, 4633, 17495, 5991, 77081, 249343}}, +{13536, 18, 1952, {1, 3, 1, 1, 13, 53, 105, 79, 269, 173, 1319, 1695, 1215, 3651, 25063, 34949, 77243, 214671}}, +{13537, 18, 1969, {1, 1, 1, 1, 3, 19, 103, 233, 1, 507, 721, 1797, 5025, 405, 13027, 23693, 89963, 25771}}, +{13538, 18, 1999, {1, 3, 5, 9, 21, 53, 1, 241, 405, 707, 1807, 3615, 1199, 11155, 27741, 53931, 55091, 248677}}, +{13539, 18, 2018, {1, 3, 5, 7, 27, 27, 39, 77, 475, 845, 1393, 3779, 5261, 13017, 13517, 18595, 64485, 180577}}, +{13540, 18, 2047, {1, 1, 3, 5, 7, 21, 95, 59, 203, 233, 1167, 3457, 3965, 4321, 14885, 6335, 78353, 39341}}, +{13541, 18, 2066, {1, 1, 7, 13, 27, 19, 27, 133, 419, 507, 945, 3595, 131, 7981, 31451, 62347, 19151, 256127}}, +{13542, 18, 2068, {1, 3, 7, 3, 7, 15, 9, 173, 257, 983, 223, 2881, 6911, 3681, 26183, 38943, 112171, 148627}}, +{13543, 18, 2093, {1, 3, 3, 15, 5, 49, 91, 205, 303, 183, 775, 3841, 4943, 14417, 23013, 59337, 85835, 181771}}, +{13544, 18, 2105, {1, 3, 5, 9, 21, 1, 117, 27, 509, 263, 1215, 893, 6677, 3275, 20831, 5045, 127323, 62589}}, +{13545, 18, 2116, {1, 1, 1, 3, 17, 61, 77, 239, 379, 649, 1151, 2359, 2659, 13853, 30589, 55873, 50359, 184125}}, +{13546, 18, 2149, {1, 1, 7, 5, 17, 33, 95, 111, 245, 873, 1721, 3079, 7753, 12889, 27107, 8267, 119413, 249045}}, +{13547, 18, 2201, {1, 1, 1, 15, 13, 23, 59, 169, 449, 283, 913, 2099, 5337, 4307, 3701, 16395, 112987, 14183}}, +{13548, 18, 2228, {1, 1, 5, 3, 5, 15, 3, 249, 97, 849, 1551, 3437, 1247, 10915, 24073, 53723, 40345, 37215}}, +{13549, 18, 2245, {1, 1, 1, 5, 21, 59, 109, 79, 9, 827, 1329, 405, 3821, 8415, 11239, 1003, 78967, 112627}}, +{13550, 18, 2246, {1, 1, 1, 11, 21, 7, 21, 45, 327, 365, 865, 1409, 1273, 15675, 21425, 45367, 22279, 240943}}, +{13551, 18, 2283, {1, 3, 3, 7, 3, 19, 83, 163, 381, 547, 195, 1537, 7905, 9057, 1309, 41135, 118857, 101725}}, +{13552, 18, 2288, {1, 1, 5, 9, 11, 19, 107, 247, 309, 343, 1697, 699, 7137, 12815, 18405, 42673, 505, 104801}}, +{13553, 18, 2320, {1, 3, 5, 3, 13, 43, 55, 15, 441, 843, 1153, 3739, 67, 11053, 30985, 55329, 57301, 190991}}, +{13554, 18, 2326, {1, 1, 5, 3, 23, 41, 9, 239, 227, 145, 1895, 2645, 945, 6421, 2859, 16173, 97043, 234649}}, +{13555, 18, 2386, {1, 3, 1, 3, 23, 47, 57, 207, 441, 279, 1951, 3041, 2465, 6143, 27669, 41171, 89627, 2489}}, +{13556, 18, 2392, {1, 3, 1, 11, 7, 9, 19, 51, 345, 187, 1699, 1483, 15, 10321, 25277, 34889, 85225, 259071}}, +{13557, 18, 2395, {1, 1, 1, 15, 27, 15, 79, 51, 407, 757, 611, 3955, 1123, 14659, 11273, 56639, 64727, 183077}}, +{13558, 18, 2413, {1, 3, 7, 1, 13, 61, 89, 157, 29, 561, 791, 995, 4233, 11351, 16335, 47041, 108671, 120115}}, +{13559, 18, 2419, {1, 3, 3, 15, 17, 35, 15, 223, 57, 7, 961, 3327, 7287, 5537, 26231, 3289, 106555, 109781}}, +{13560, 18, 2441, {1, 3, 7, 15, 17, 3, 25, 121, 349, 995, 1353, 2991, 3071, 3583, 26173, 42343, 60495, 44035}}, +{13561, 18, 2466, {1, 3, 1, 11, 5, 5, 83, 249, 427, 173, 1733, 45, 3277, 7911, 18091, 61305, 130251, 31849}}, +{13562, 18, 2477, {1, 1, 1, 9, 3, 23, 23, 127, 371, 1011, 573, 1769, 1707, 15351, 30077, 61139, 122963, 203481}}, +{13563, 18, 2485, {1, 1, 1, 13, 27, 41, 97, 29, 461, 207, 1393, 707, 5633, 7155, 13455, 7305, 107539, 136413}}, +{13564, 18, 2492, {1, 1, 1, 9, 3, 13, 61, 115, 297, 333, 1679, 127, 8049, 3129, 31845, 40039, 77087, 6831}}, +{13565, 18, 2495, {1, 3, 3, 11, 27, 25, 49, 29, 423, 193, 1955, 2927, 5679, 3537, 16911, 47065, 126803, 129957}}, +{13566, 18, 2498, {1, 1, 1, 3, 21, 31, 25, 187, 301, 883, 1301, 415, 1515, 14761, 227, 24377, 54415, 64553}}, +{13567, 18, 2504, {1, 3, 7, 7, 3, 5, 69, 221, 357, 587, 1387, 3719, 5355, 10569, 14731, 22515, 107237, 1673}}, +{13568, 18, 2515, {1, 1, 3, 15, 27, 7, 89, 23, 213, 655, 779, 1641, 1793, 1499, 27279, 59423, 56715, 90313}}, +{13569, 18, 2521, {1, 3, 3, 7, 3, 33, 85, 181, 509, 327, 353, 1625, 4995, 15627, 17071, 31885, 122423, 100337}}, +{13570, 18, 2561, {1, 3, 5, 9, 7, 39, 45, 157, 279, 211, 1163, 3283, 4419, 10187, 22397, 42119, 25105, 163925}}, +{13571, 18, 2579, {1, 3, 3, 15, 17, 37, 75, 65, 501, 765, 1171, 2451, 309, 551, 15573, 65497, 106435, 20817}}, +{13572, 18, 2604, {1, 1, 3, 1, 13, 1, 79, 117, 5, 285, 953, 2401, 2479, 15765, 25677, 63611, 91807, 78153}}, +{13573, 18, 2657, {1, 1, 5, 15, 1, 7, 123, 159, 217, 307, 1779, 2625, 101, 13887, 31721, 55769, 94899, 183427}}, +{13574, 18, 2681, {1, 3, 5, 5, 11, 13, 59, 205, 221, 871, 753, 823, 547, 11055, 31621, 54379, 23631, 137027}}, +{13575, 18, 2691, {1, 3, 3, 7, 5, 17, 7, 31, 37, 237, 1633, 969, 4123, 6643, 28499, 3277, 130223, 37465}}, +{13576, 18, 2731, {1, 3, 7, 5, 29, 41, 65, 159, 487, 61, 1217, 4093, 487, 15257, 13379, 46641, 88043, 107425}}, +{13577, 18, 2739, {1, 1, 7, 7, 19, 29, 87, 119, 13, 877, 467, 2661, 7733, 9303, 20069, 8445, 126159, 69421}}, +{13578, 18, 2765, {1, 3, 1, 13, 1, 57, 77, 241, 185, 479, 859, 2397, 1167, 6545, 20715, 50701, 107781, 149965}}, +{13579, 18, 2790, {1, 1, 5, 1, 1, 3, 19, 31, 473, 685, 1455, 1537, 1843, 4051, 17475, 56717, 70257, 112815}}, +{13580, 18, 2802, {1, 3, 7, 15, 9, 21, 19, 201, 13, 551, 1053, 1291, 3793, 7923, 30425, 55513, 30033, 70597}}, +{13581, 18, 2819, {1, 3, 1, 15, 21, 47, 127, 117, 199, 655, 1979, 1291, 8017, 11769, 9071, 12029, 112369, 2529}}, +{13582, 18, 2891, {1, 3, 5, 1, 15, 3, 25, 199, 101, 997, 597, 2485, 6509, 11913, 19573, 13985, 56165, 249}}, +{13583, 18, 2905, {1, 1, 7, 3, 19, 45, 107, 229, 241, 747, 1219, 3133, 3675, 4441, 13933, 64571, 95445, 250713}}, +{13584, 18, 2911, {1, 3, 1, 5, 11, 31, 89, 119, 503, 99, 75, 349, 7479, 15161, 6365, 62461, 39443, 188455}}, +{13585, 18, 2912, {1, 1, 5, 13, 25, 31, 65, 237, 259, 329, 89, 1283, 6033, 4401, 7655, 38837, 62367, 76555}}, +{13586, 18, 2921, {1, 1, 1, 7, 19, 61, 109, 41, 361, 89, 171, 2319, 3625, 8905, 24461, 36135, 28515, 101547}}, +{13587, 18, 2924, {1, 3, 5, 3, 5, 45, 123, 227, 339, 79, 309, 2619, 1621, 1295, 6395, 6717, 119933, 187231}}, +{13588, 18, 2945, {1, 1, 1, 3, 3, 45, 91, 225, 269, 475, 1159, 2599, 5087, 4141, 28375, 22413, 56235, 256559}}, +{13589, 18, 2952, {1, 1, 1, 13, 7, 51, 27, 65, 65, 381, 169, 1759, 4653, 9885, 25839, 19851, 4965, 249097}}, +{13590, 18, 2972, {1, 3, 7, 11, 25, 11, 83, 137, 419, 277, 503, 2823, 2759, 8173, 9405, 23731, 116087, 9735}}, +{13591, 18, 2986, {1, 1, 5, 5, 27, 17, 123, 145, 41, 85, 1099, 1087, 1465, 7063, 8585, 39427, 15479, 243967}}, +{13592, 18, 3000, {1, 1, 7, 3, 21, 53, 105, 185, 101, 763, 593, 2649, 3273, 5655, 12233, 11761, 27093, 121347}}, +{13593, 18, 3008, {1, 1, 1, 5, 11, 55, 107, 167, 179, 681, 741, 1821, 4297, 14677, 9949, 9647, 60465, 36999}}, +{13594, 18, 3011, {1, 1, 1, 7, 25, 43, 95, 71, 161, 517, 1475, 1989, 6273, 13295, 19681, 51773, 93523, 33441}}, +{13595, 18, 3018, {1, 3, 1, 13, 23, 59, 95, 177, 73, 707, 37, 421, 3747, 14207, 17159, 4957, 20161, 26185}}, +{13596, 18, 3047, {1, 1, 7, 13, 13, 1, 19, 153, 445, 429, 1911, 3515, 639, 16015, 833, 54347, 87717, 82175}}, +{13597, 18, 3071, {1, 3, 5, 9, 1, 9, 115, 87, 341, 651, 1583, 807, 559, 13579, 9647, 37277, 125555, 169655}}, +{13598, 18, 3079, {1, 1, 3, 5, 13, 23, 117, 229, 205, 803, 1381, 2773, 7099, 4031, 597, 37135, 11643, 92325}}, +{13599, 18, 3083, {1, 3, 7, 9, 27, 15, 33, 147, 1, 799, 1511, 2609, 1419, 5991, 15571, 56995, 97695, 223969}}, +{13600, 18, 3086, {1, 3, 1, 3, 17, 9, 17, 189, 407, 355, 765, 2545, 1079, 15253, 4785, 5187, 80775, 238775}}, +{13601, 18, 3148, {1, 1, 3, 1, 31, 29, 3, 159, 263, 325, 125, 2221, 6369, 5717, 13985, 33829, 21375, 134249}}, +{13602, 18, 3156, {1, 3, 7, 3, 5, 29, 39, 75, 183, 155, 1017, 637, 921, 9561, 14893, 59695, 38325, 15503}}, +{13603, 18, 3194, {1, 1, 3, 13, 9, 31, 43, 71, 241, 661, 325, 357, 431, 903, 5039, 24535, 94241, 228605}}, +{13604, 18, 3230, {1, 3, 1, 1, 17, 37, 93, 47, 25, 207, 611, 415, 6473, 15979, 2025, 19003, 8941, 248779}}, +{13605, 18, 3233, {1, 1, 7, 15, 19, 17, 81, 201, 121, 11, 1975, 1289, 4405, 7851, 9707, 20057, 33749, 187161}}, +{13606, 18, 3254, {1, 1, 3, 5, 29, 31, 47, 99, 435, 795, 947, 1299, 4011, 8315, 12827, 48071, 86567, 154655}}, +{13607, 18, 3268, {1, 1, 5, 3, 9, 59, 115, 191, 177, 65, 1835, 3989, 1819, 14325, 8939, 25337, 16099, 200577}}, +{13608, 18, 3305, {1, 3, 7, 9, 15, 47, 7, 195, 413, 1013, 1607, 3317, 6979, 13243, 275, 34125, 66069, 90201}}, +{13609, 18, 3323, {1, 1, 3, 3, 29, 3, 51, 137, 341, 393, 897, 351, 1937, 6793, 12551, 18873, 110949, 133925}}, +{13610, 18, 3326, {1, 3, 5, 9, 29, 41, 79, 169, 113, 123, 1229, 1885, 6153, 1549, 31729, 41949, 74083, 41387}}, +{13611, 18, 3343, {1, 3, 1, 15, 31, 49, 7, 233, 305, 435, 1299, 3037, 2387, 15431, 817, 11783, 24067, 116527}}, +{13612, 18, 3345, {1, 3, 5, 13, 7, 17, 49, 33, 133, 45, 689, 2381, 2649, 2433, 27535, 21755, 88611, 200585}}, +{13613, 18, 3382, {1, 1, 5, 11, 1, 61, 87, 97, 91, 433, 313, 2541, 5289, 5769, 17963, 5719, 12165, 146849}}, +{13614, 18, 3413, {1, 3, 7, 13, 17, 21, 37, 191, 489, 847, 841, 3567, 7339, 15233, 23973, 1209, 99741, 243303}}, +{13615, 18, 3420, {1, 3, 1, 1, 5, 21, 11, 39, 69, 751, 1679, 143, 6187, 2963, 695, 45763, 126749, 243841}}, +{13616, 18, 3434, {1, 3, 3, 9, 21, 55, 43, 73, 133, 417, 495, 2899, 5681, 13049, 30241, 44519, 19095, 30673}}, +{13617, 18, 3453, {1, 1, 5, 9, 17, 51, 121, 205, 273, 597, 1325, 3755, 5113, 12287, 21323, 17947, 23807, 20025}}, +{13618, 18, 3472, {1, 1, 7, 7, 21, 11, 25, 33, 207, 13, 1639, 1971, 7401, 11771, 7879, 59027, 111981, 65451}}, +{13619, 18, 3488, {1, 3, 5, 15, 3, 15, 121, 23, 199, 839, 937, 3659, 5379, 2139, 31631, 17215, 65349, 157413}}, +{13620, 18, 3503, {1, 1, 1, 7, 3, 7, 81, 49, 17, 693, 1819, 2737, 7329, 49, 1655, 42317, 31385, 11435}}, +{13621, 18, 3506, {1, 3, 5, 15, 25, 51, 121, 133, 457, 159, 869, 855, 3529, 2691, 147, 58621, 78379, 148519}}, +{13622, 18, 3518, {1, 1, 3, 7, 1, 53, 109, 81, 37, 553, 1921, 3081, 2665, 12665, 13887, 1035, 16987, 48883}}, +{13623, 18, 3532, {1, 1, 5, 1, 19, 1, 121, 97, 143, 871, 1401, 2879, 5657, 5479, 14011, 65131, 56011, 241055}}, +{13624, 18, 3543, {1, 1, 7, 5, 9, 21, 9, 43, 331, 183, 1313, 2495, 6905, 2763, 29567, 7579, 95169, 130937}}, +{13625, 18, 3547, {1, 3, 7, 3, 3, 37, 65, 195, 339, 527, 1383, 3063, 7749, 11109, 8097, 27257, 107615, 134241}}, +{13626, 18, 3573, {1, 1, 1, 5, 25, 25, 63, 179, 135, 65, 169, 2709, 5435, 12119, 21549, 59847, 129639, 220163}}, +{13627, 18, 3574, {1, 3, 5, 1, 3, 17, 87, 181, 9, 923, 731, 3397, 7079, 3281, 10455, 35471, 20439, 206209}}, +{13628, 18, 3587, {1, 1, 1, 5, 31, 25, 15, 89, 381, 675, 1217, 3175, 707, 585, 1695, 57771, 92433, 203523}}, +{13629, 18, 3632, {1, 3, 5, 15, 5, 7, 9, 87, 461, 1017, 869, 1541, 7833, 3117, 24917, 13917, 104797, 149045}}, +{13630, 18, 3664, {1, 1, 7, 15, 13, 49, 9, 89, 165, 827, 657, 1977, 7471, 15437, 25785, 1455, 52803, 198793}}, +{13631, 18, 3713, {1, 3, 1, 15, 3, 39, 27, 205, 325, 345, 965, 1439, 4403, 10717, 9591, 46845, 123983, 76181}}, +{13632, 18, 3726, {1, 3, 1, 1, 25, 23, 97, 135, 367, 179, 1563, 75, 455, 3517, 21539, 59565, 43449, 139495}}, +{13633, 18, 3768, {1, 1, 5, 15, 13, 27, 55, 21, 1, 505, 1349, 409, 2491, 5299, 15771, 59389, 110377, 209275}}, +{13634, 18, 3771, {1, 1, 7, 9, 31, 15, 63, 91, 3, 559, 419, 1237, 1157, 5811, 24335, 19215, 12581, 148813}}, +{13635, 18, 3810, {1, 1, 7, 13, 23, 3, 81, 127, 33, 931, 867, 2905, 1011, 16207, 1543, 54309, 10611, 152733}}, +{13636, 18, 3848, {1, 3, 5, 7, 21, 19, 45, 101, 439, 537, 267, 945, 8007, 9383, 13211, 21867, 5731, 150203}}, +{13637, 18, 3868, {1, 1, 3, 9, 29, 3, 31, 219, 217, 775, 1011, 445, 2663, 1691, 9837, 5727, 116283, 128627}}, +{13638, 18, 3896, {1, 3, 3, 3, 21, 1, 97, 239, 457, 925, 1923, 1693, 1187, 13437, 8529, 22081, 633, 76109}}, +{13639, 18, 3910, {1, 3, 7, 7, 19, 5, 9, 15, 337, 855, 1563, 3159, 2799, 4103, 2013, 47789, 77027, 22425}}, +{13640, 18, 3921, {1, 1, 3, 15, 15, 41, 27, 77, 489, 377, 1953, 305, 5081, 1895, 5117, 51455, 71859, 190289}}, +{13641, 18, 3928, {1, 1, 5, 7, 7, 7, 13, 25, 115, 657, 223, 3185, 5327, 2559, 5147, 22237, 91933, 195429}}, +{13642, 18, 3940, {1, 1, 3, 5, 5, 19, 3, 197, 371, 237, 555, 2873, 3401, 3329, 29165, 4593, 111677, 244025}}, +{13643, 18, 3947, {1, 3, 5, 15, 15, 55, 29, 75, 329, 623, 279, 2831, 4489, 7803, 24119, 12959, 59783, 135213}}, +{13644, 18, 3949, {1, 3, 5, 13, 31, 21, 93, 77, 401, 353, 893, 917, 4813, 8027, 7847, 55315, 60213, 102763}}, +{13645, 18, 4001, {1, 1, 5, 13, 29, 49, 91, 35, 79, 625, 1539, 509, 823, 2239, 30867, 21729, 33195, 38189}}, +{13646, 18, 4004, {1, 3, 3, 3, 19, 11, 39, 145, 5, 329, 1653, 3205, 4431, 9291, 30369, 63173, 72317, 236103}}, +{13647, 18, 4022, {1, 3, 3, 15, 27, 9, 111, 191, 249, 845, 1845, 2097, 6529, 9559, 25757, 29085, 2615, 175759}}, +{13648, 18, 4026, {1, 3, 7, 1, 17, 59, 119, 125, 213, 995, 601, 2517, 1225, 2301, 13031, 40881, 31623, 165799}}, +{13649, 18, 4036, {1, 3, 3, 13, 25, 61, 97, 157, 347, 931, 1731, 3697, 5815, 7309, 30605, 3853, 72395, 103609}}, +{13650, 18, 4073, {1, 1, 7, 5, 23, 13, 51, 117, 495, 683, 777, 1629, 5683, 801, 4907, 24935, 9457, 214131}}, +{13651, 18, 4093, {1, 1, 5, 9, 1, 29, 107, 253, 195, 921, 345, 1451, 2253, 12723, 571, 12009, 34149, 140659}}, +{13652, 18, 4099, {1, 1, 5, 9, 31, 17, 93, 5, 455, 205, 1439, 1199, 7371, 12973, 16455, 675, 60561, 99575}}, +{13653, 18, 4120, {1, 3, 3, 3, 31, 37, 115, 49, 31, 285, 2029, 1369, 3443, 2411, 10367, 44859, 26737, 195703}}, +{13654, 18, 4136, {1, 1, 3, 1, 15, 39, 113, 37, 257, 3, 817, 2901, 4029, 12595, 30475, 34883, 109133, 92159}}, +{13655, 18, 4156, {1, 1, 7, 5, 9, 1, 9, 101, 317, 167, 1975, 411, 6875, 6951, 4401, 59483, 129813, 78289}}, +{13656, 18, 4176, {1, 1, 7, 9, 9, 5, 73, 7, 57, 907, 1887, 2923, 961, 8521, 873, 33791, 114485, 43081}}, +{13657, 18, 4182, {1, 1, 5, 7, 13, 45, 91, 179, 499, 197, 1337, 1321, 5307, 15503, 20449, 60813, 97393, 255741}}, +{13658, 18, 4191, {1, 1, 1, 5, 25, 13, 69, 221, 207, 823, 845, 3845, 6743, 5123, 27447, 2079, 100635, 124157}}, +{13659, 18, 4198, {1, 3, 5, 11, 13, 39, 121, 209, 137, 63, 1479, 323, 5347, 9797, 17785, 55541, 108713, 243347}}, +{13660, 18, 4252, {1, 1, 3, 9, 29, 45, 43, 81, 115, 979, 727, 423, 1133, 8757, 27833, 39907, 104663, 33067}}, +{13661, 18, 4259, {1, 3, 5, 1, 13, 61, 49, 17, 409, 567, 1035, 2299, 3711, 15485, 7767, 27809, 1275, 96455}}, +{13662, 18, 4261, {1, 1, 5, 9, 5, 33, 13, 9, 505, 459, 747, 4079, 4271, 6925, 13933, 31349, 5793, 68381}}, +{13663, 18, 4294, {1, 3, 3, 11, 15, 47, 15, 187, 349, 847, 817, 3551, 6059, 6451, 32615, 1635, 108889, 48003}}, +{13664, 18, 4341, {1, 3, 5, 7, 3, 31, 11, 255, 367, 295, 1079, 2981, 5583, 10771, 25359, 16083, 24163, 111201}}, +{13665, 18, 4348, {1, 3, 5, 5, 7, 5, 127, 19, 343, 849, 287, 1471, 7299, 1209, 31349, 33473, 4989, 229181}}, +{13666, 18, 4356, {1, 1, 3, 9, 25, 61, 7, 65, 77, 745, 1871, 2427, 3669, 8965, 11177, 5531, 115801, 34327}}, +{13667, 18, 4384, {1, 3, 3, 15, 1, 57, 125, 167, 173, 875, 347, 2317, 6687, 4339, 10573, 7841, 16241, 192225}}, +{13668, 18, 4389, {1, 3, 1, 3, 15, 37, 45, 189, 75, 1017, 1919, 3401, 329, 2539, 32697, 60801, 52017, 192611}}, +{13669, 18, 4401, {1, 3, 1, 5, 1, 23, 43, 55, 1, 443, 1769, 1633, 5225, 6855, 5419, 65139, 22237, 17415}}, +{13670, 18, 4428, {1, 3, 5, 15, 25, 7, 107, 209, 325, 367, 373, 1855, 1313, 12899, 30137, 19007, 9911, 11791}}, +{13671, 18, 4431, {1, 3, 7, 13, 3, 57, 123, 93, 279, 469, 1817, 3409, 565, 3997, 14119, 58341, 59691, 163323}}, +{13672, 18, 4445, {1, 1, 3, 9, 3, 3, 69, 109, 47, 487, 1895, 2003, 7309, 9803, 9527, 52211, 31213, 41521}}, +{13673, 18, 4470, {1, 1, 7, 7, 9, 15, 101, 227, 75, 501, 25, 1481, 4847, 13279, 28673, 11069, 61987, 5365}}, +{13674, 18, 4473, {1, 3, 1, 1, 25, 5, 47, 125, 97, 969, 1077, 1185, 6033, 13927, 18149, 34255, 14353, 66323}}, +{13675, 18, 4474, {1, 1, 3, 1, 25, 41, 19, 69, 385, 585, 1049, 3497, 3615, 13211, 18855, 61303, 115739, 42639}}, +{13676, 18, 4490, {1, 3, 7, 7, 13, 15, 13, 133, 497, 265, 1809, 4073, 5673, 7543, 30823, 13505, 76167, 98683}}, +{13677, 18, 4509, {1, 1, 5, 5, 3, 59, 47, 191, 419, 505, 2035, 329, 553, 1561, 27885, 39767, 102611, 12689}}, +{13678, 18, 4510, {1, 3, 7, 3, 27, 49, 27, 133, 305, 537, 385, 335, 2417, 14891, 31299, 26201, 124655, 150545}}, +{13679, 18, 4533, {1, 1, 1, 9, 7, 1, 27, 105, 347, 481, 2043, 1645, 4367, 10335, 16457, 48713, 64699, 63595}}, +{13680, 18, 4548, {1, 1, 3, 3, 7, 57, 125, 209, 299, 525, 591, 1265, 7557, 15113, 19319, 56269, 43919, 215435}}, +{13681, 18, 4558, {1, 1, 1, 11, 29, 59, 119, 245, 63, 919, 1913, 3969, 545, 1033, 20975, 61327, 36783, 124303}}, +{13682, 18, 4594, {1, 1, 7, 7, 11, 63, 45, 135, 405, 931, 753, 2559, 5475, 2107, 6437, 6055, 43497, 133571}}, +{13683, 18, 4596, {1, 3, 1, 13, 31, 39, 39, 141, 231, 83, 69, 473, 1095, 13617, 10909, 49861, 98029, 235003}}, +{13684, 18, 4603, {1, 3, 7, 13, 13, 41, 73, 107, 505, 359, 957, 1599, 7617, 1843, 25531, 63755, 96295, 167955}}, +{13685, 18, 4610, {1, 3, 3, 11, 13, 41, 61, 65, 165, 507, 1007, 1695, 91, 8781, 15017, 12063, 95331, 179853}}, +{13686, 18, 4619, {1, 3, 7, 7, 29, 19, 7, 95, 303, 641, 581, 3539, 4495, 13549, 20195, 20845, 16961, 95053}}, +{13687, 18, 4630, {1, 1, 7, 5, 15, 27, 13, 155, 345, 341, 1583, 2207, 2497, 6509, 24343, 3109, 71431, 184871}}, +{13688, 18, 4652, {1, 1, 3, 15, 31, 35, 37, 249, 71, 1005, 681, 3457, 3387, 13797, 8781, 11789, 16825, 11133}}, +{13689, 18, 4658, {1, 3, 7, 11, 5, 29, 121, 139, 77, 859, 163, 2749, 6401, 16303, 22659, 11817, 61667, 119993}}, +{13690, 18, 4682, {1, 1, 7, 11, 15, 45, 71, 87, 293, 981, 1581, 2789, 4117, 12791, 13611, 489, 74823, 71263}}, +{13691, 18, 4708, {1, 1, 3, 9, 15, 21, 59, 167, 469, 723, 1609, 2111, 6359, 10781, 1043, 51039, 24429, 14605}}, +{13692, 18, 4736, {1, 3, 3, 9, 13, 25, 1, 43, 61, 869, 1919, 601, 8003, 15841, 10141, 33187, 124991, 94205}}, +{13693, 18, 4753, {1, 1, 7, 5, 23, 13, 67, 43, 167, 667, 1743, 2523, 2245, 9287, 8115, 64995, 121371, 188321}}, +{13694, 18, 4760, {1, 1, 1, 9, 13, 19, 45, 249, 21, 751, 239, 4035, 4549, 8905, 9377, 47535, 78135, 210429}}, +{13695, 18, 4781, {1, 1, 3, 7, 5, 43, 13, 227, 75, 785, 631, 205, 3475, 9735, 17867, 61407, 75897, 51151}}, +{13696, 18, 4784, {1, 3, 3, 9, 31, 21, 11, 53, 247, 717, 1505, 3903, 3249, 3185, 29007, 48795, 43413, 158653}}, +{13697, 18, 4799, {1, 1, 5, 11, 19, 9, 37, 159, 183, 521, 743, 2877, 2291, 10317, 1211, 17951, 16335, 66439}}, +{13698, 18, 4807, {1, 1, 3, 7, 3, 41, 15, 113, 125, 391, 201, 3841, 255, 15381, 16801, 47219, 119691, 51811}}, +{13699, 18, 4808, {1, 1, 3, 1, 1, 29, 79, 181, 481, 969, 297, 625, 7449, 5813, 5915, 20011, 44853, 231933}}, +{13700, 18, 4842, {1, 1, 1, 5, 5, 49, 63, 171, 93, 107, 1083, 1277, 121, 4421, 18951, 61155, 66643, 120049}}, +{13701, 18, 4882, {1, 3, 7, 5, 25, 59, 111, 197, 459, 217, 1819, 1603, 5581, 11361, 17721, 57475, 11171, 186577}}, +{13702, 18, 4897, {1, 3, 3, 1, 25, 19, 29, 157, 25, 595, 501, 2145, 7513, 10323, 11107, 13269, 21763, 9427}}, +{13703, 18, 4900, {1, 3, 7, 3, 9, 49, 119, 117, 445, 91, 227, 1203, 6245, 9575, 30653, 65429, 64987, 81249}}, +{13704, 18, 4922, {1, 1, 5, 5, 5, 5, 77, 77, 425, 789, 467, 3931, 4815, 11195, 21939, 59513, 78547, 238035}}, +{13705, 18, 4936, {1, 3, 1, 11, 11, 29, 115, 37, 423, 997, 1231, 3987, 5057, 14533, 18005, 51513, 71851, 258137}}, +{13706, 18, 4960, {1, 3, 1, 1, 27, 31, 7, 223, 23, 59, 1465, 2045, 6677, 15707, 25101, 22269, 46995, 89141}}, +{13707, 18, 4970, {1, 1, 1, 5, 21, 7, 115, 133, 407, 373, 1495, 2551, 6947, 3309, 14903, 5683, 67345, 139381}}, +{13708, 18, 4978, {1, 1, 5, 3, 13, 31, 5, 221, 187, 9, 165, 2295, 1239, 5665, 14543, 3963, 4931, 8269}}, +{13709, 18, 4994, {1, 3, 5, 13, 15, 5, 37, 171, 419, 665, 765, 1619, 1561, 1661, 5873, 25595, 34827, 215599}}, +{13710, 18, 5003, {1, 3, 1, 15, 13, 33, 45, 107, 275, 771, 1105, 2895, 187, 5173, 21179, 35047, 50825, 176775}}, +{13711, 18, 5044, {1, 3, 7, 5, 17, 5, 59, 195, 441, 625, 1205, 207, 4703, 10627, 17123, 61785, 100779, 258597}}, +{13712, 18, 5061, {1, 1, 1, 13, 17, 3, 13, 201, 241, 657, 153, 289, 5213, 2129, 13447, 28807, 25405, 33803}}, +{13713, 18, 5107, {1, 3, 1, 9, 19, 9, 51, 133, 159, 743, 1023, 291, 7137, 6949, 30419, 13449, 111505, 212393}}, +{13714, 18, 5127, {1, 3, 5, 7, 31, 29, 79, 211, 425, 93, 1173, 1957, 6737, 1725, 30703, 43237, 119747, 157395}}, +{13715, 18, 5131, {1, 1, 7, 3, 17, 21, 39, 19, 485, 663, 19, 761, 1525, 11059, 12833, 17567, 61123, 124801}}, +{13716, 18, 5136, {1, 1, 7, 3, 7, 25, 17, 199, 413, 821, 1561, 3855, 1871, 14041, 7525, 19383, 51017, 213357}}, +{13717, 18, 5145, {1, 3, 3, 9, 25, 11, 63, 83, 217, 587, 47, 3775, 767, 9191, 5127, 9133, 97689, 122949}}, +{13718, 18, 5146, {1, 1, 1, 9, 19, 7, 89, 125, 23, 813, 1277, 2965, 1939, 1453, 6349, 53127, 109813, 63767}}, +{13719, 18, 5175, {1, 1, 5, 15, 29, 63, 117, 37, 185, 69, 1823, 2791, 4125, 11757, 14847, 15567, 126141, 185951}}, +{13720, 18, 5218, {1, 3, 7, 1, 23, 11, 15, 113, 209, 785, 229, 3207, 97, 2489, 4587, 14253, 30421, 51027}}, +{13721, 18, 5223, {1, 3, 1, 7, 7, 33, 57, 51, 219, 233, 89, 3781, 2055, 4163, 10935, 51913, 63507, 18645}}, +{13722, 18, 5248, {1, 3, 1, 7, 7, 55, 107, 187, 109, 867, 955, 139, 4979, 8627, 5835, 28761, 72061, 99413}}, +{13723, 18, 5294, {1, 1, 1, 3, 5, 59, 17, 121, 511, 29, 1009, 2875, 2459, 1817, 11741, 13869, 72543, 70485}}, +{13724, 18, 5299, {1, 1, 5, 1, 27, 19, 125, 65, 379, 803, 411, 2403, 719, 10683, 23351, 18113, 66773, 252223}}, +{13725, 18, 5301, {1, 1, 7, 9, 31, 51, 65, 233, 171, 357, 1465, 1609, 4263, 15207, 18825, 48831, 69459, 211321}}, +{13726, 18, 5311, {1, 1, 3, 3, 5, 35, 53, 245, 469, 1011, 759, 455, 4487, 9835, 10349, 61755, 73279, 186049}}, +{13727, 18, 5343, {1, 1, 7, 3, 27, 19, 105, 193, 403, 907, 295, 1445, 1867, 8867, 7821, 45309, 129069, 83953}}, +{13728, 18, 5344, {1, 1, 7, 7, 7, 51, 85, 97, 473, 837, 201, 501, 2929, 9457, 6473, 3653, 126991, 218069}}, +{13729, 18, 5396, {1, 3, 3, 5, 25, 49, 85, 223, 127, 563, 239, 1975, 119, 6029, 19349, 59533, 44173, 142229}}, +{13730, 18, 5406, {1, 1, 3, 7, 23, 11, 27, 49, 467, 701, 2037, 2367, 5829, 12533, 9641, 38629, 90505, 132013}}, +{13731, 18, 5410, {1, 1, 7, 1, 13, 25, 79, 107, 37, 331, 355, 3639, 4875, 6635, 21703, 18289, 36257, 201857}}, +{13732, 18, 5424, {1, 1, 5, 1, 3, 39, 25, 101, 199, 401, 1495, 3683, 5447, 12313, 19707, 20853, 66821, 73959}}, +{13733, 18, 5447, {1, 1, 1, 9, 15, 9, 3, 231, 479, 97, 221, 973, 839, 1757, 8759, 45625, 44691, 139803}}, +{13734, 18, 5461, {1, 1, 7, 15, 9, 51, 23, 233, 311, 83, 287, 4035, 2087, 4245, 25457, 43105, 104903, 132811}}, +{13735, 18, 5468, {1, 1, 1, 9, 5, 13, 33, 167, 363, 67, 601, 2143, 5495, 1277, 14615, 32759, 34935, 158625}}, +{13736, 18, 5475, {1, 1, 5, 11, 5, 63, 35, 49, 183, 705, 377, 2607, 2947, 10119, 15631, 60247, 99309, 25747}}, +{13737, 18, 5478, {1, 3, 7, 5, 7, 3, 127, 109, 165, 767, 1873, 3825, 441, 11957, 2581, 38309, 129623, 77451}}, +{13738, 18, 5523, {1, 3, 1, 7, 19, 53, 101, 117, 505, 363, 1399, 1015, 631, 8309, 17507, 28941, 42585, 116283}}, +{13739, 18, 5530, {1, 1, 7, 7, 9, 27, 127, 195, 499, 225, 153, 517, 3909, 9801, 3787, 32829, 6599, 190807}}, +{13740, 18, 5535, {1, 1, 5, 1, 3, 49, 125, 235, 255, 329, 909, 1685, 759, 2287, 3479, 23491, 71157, 81457}}, +{13741, 18, 5548, {1, 1, 3, 9, 19, 21, 93, 37, 259, 69, 219, 1943, 4747, 13951, 14945, 46099, 87189, 222287}}, +{13742, 18, 5559, {1, 1, 7, 5, 21, 33, 61, 227, 167, 569, 1355, 2997, 4917, 10765, 7015, 54335, 125543, 112867}}, +{13743, 18, 5580, {1, 1, 5, 3, 25, 35, 97, 23, 365, 159, 1211, 1283, 979, 8993, 21323, 6863, 46869, 36169}}, +{13744, 18, 5604, {1, 1, 7, 13, 15, 49, 45, 209, 397, 785, 47, 2307, 4749, 2735, 29525, 54921, 23321, 216197}}, +{13745, 18, 5622, {1, 1, 1, 11, 31, 23, 27, 127, 197, 595, 29, 773, 3291, 6355, 11891, 6635, 99871, 177531}}, +{13746, 18, 5641, {1, 1, 7, 11, 9, 49, 85, 59, 211, 307, 1821, 3947, 4175, 11287, 27889, 107, 46463, 237129}}, +{13747, 18, 5649, {1, 3, 3, 7, 31, 31, 9, 49, 365, 189, 1211, 943, 337, 13809, 16941, 17053, 70125, 149865}}, +{13748, 18, 5656, {1, 3, 1, 13, 9, 21, 67, 1, 365, 77, 1701, 559, 3461, 8961, 13801, 16111, 65239, 157713}}, +{13749, 18, 5671, {1, 3, 7, 13, 19, 49, 29, 233, 361, 1011, 1617, 2989, 2387, 14027, 4021, 28791, 33155, 171449}}, +{13750, 18, 5689, {1, 1, 5, 13, 31, 19, 77, 69, 49, 513, 1411, 77, 4993, 907, 23483, 20129, 29491, 138187}}, +{13751, 18, 5721, {1, 3, 3, 11, 23, 33, 19, 55, 307, 455, 1783, 3997, 6411, 3355, 8815, 39883, 124381, 49667}}, +{13752, 18, 5731, {1, 3, 3, 15, 27, 7, 25, 243, 275, 27, 23, 3039, 6497, 15975, 5877, 58611, 6317, 209119}}, +{13753, 18, 5734, {1, 3, 1, 5, 7, 21, 97, 247, 297, 181, 773, 3095, 2441, 15683, 29609, 50431, 92813, 723}}, +{13754, 18, 5738, {1, 1, 1, 3, 17, 25, 69, 171, 27, 83, 173, 163, 7915, 13547, 5915, 20275, 101613, 225081}}, +{13755, 18, 5740, {1, 1, 7, 15, 19, 13, 53, 95, 171, 889, 131, 1979, 2537, 7749, 77, 49293, 68875, 159125}}, +{13756, 18, 5748, {1, 1, 1, 5, 11, 7, 7, 29, 397, 435, 1495, 2263, 3677, 11121, 1269, 5415, 44427, 249943}}, +{13757, 18, 5791, {1, 3, 1, 5, 23, 21, 13, 185, 231, 757, 1647, 663, 1273, 11641, 25563, 46793, 54231, 113143}}, +{13758, 18, 5801, {1, 3, 3, 7, 11, 21, 83, 109, 409, 923, 1541, 2805, 1781, 6903, 9093, 37327, 60923, 167271}}, +{13759, 18, 5807, {1, 3, 7, 5, 29, 37, 87, 85, 93, 749, 875, 2869, 1023, 13303, 26865, 30971, 40863, 237075}}, +{13760, 18, 5822, {1, 1, 7, 13, 21, 25, 39, 213, 303, 265, 1251, 2963, 3819, 8507, 23239, 52625, 123375, 58553}}, +{13761, 18, 5829, {1, 1, 1, 1, 3, 1, 7, 67, 339, 583, 3, 2489, 5481, 12241, 21695, 31351, 39389, 131925}}, +{13762, 18, 5834, {1, 1, 5, 11, 11, 3, 95, 23, 133, 415, 77, 1891, 4083, 7097, 26455, 28689, 83047, 49759}}, +{13763, 18, 5847, {1, 3, 7, 15, 19, 31, 65, 189, 489, 461, 1255, 1897, 3361, 12223, 9721, 45937, 102695, 113431}}, +{13764, 18, 5854, {1, 3, 1, 5, 9, 57, 3, 225, 241, 769, 1003, 2255, 7655, 4837, 25267, 35845, 49545, 24931}}, +{13765, 18, 5878, {1, 1, 1, 1, 1, 43, 3, 217, 397, 419, 1189, 2037, 5941, 4341, 19851, 13773, 15225, 167581}}, +{13766, 18, 5882, {1, 1, 1, 9, 3, 27, 65, 49, 115, 787, 1637, 1867, 7265, 8541, 1587, 58987, 82161, 19997}}, +{13767, 18, 5919, {1, 3, 7, 11, 17, 17, 93, 103, 309, 159, 781, 3179, 5759, 7661, 5693, 48531, 127375, 141449}}, +{13768, 18, 5947, {1, 3, 7, 5, 13, 39, 79, 241, 7, 137, 219, 523, 541, 4787, 23327, 41665, 111017, 118901}}, +{13769, 18, 5981, {1, 1, 3, 15, 31, 23, 107, 221, 295, 935, 1165, 2463, 1635, 10205, 18057, 28217, 51755, 85579}}, +{13770, 18, 5982, {1, 3, 1, 11, 23, 47, 7, 59, 75, 603, 1237, 2601, 6873, 12735, 32181, 46849, 106363, 171753}}, +{13771, 18, 6025, {1, 1, 7, 13, 15, 31, 3, 113, 355, 955, 919, 1807, 7903, 5485, 1733, 64759, 15817, 93829}}, +{13772, 18, 6028, {1, 1, 3, 15, 11, 33, 95, 67, 511, 971, 343, 41, 2849, 10695, 24487, 8971, 129279, 197635}}, +{13773, 18, 6039, {1, 3, 1, 13, 13, 47, 77, 127, 193, 191, 1185, 3321, 1685, 1421, 28675, 12593, 86689, 186763}}, +{13774, 18, 6056, {1, 3, 7, 13, 1, 11, 123, 91, 287, 751, 11, 2753, 7153, 5253, 21817, 10459, 122225, 105775}}, +{13775, 18, 6064, {1, 3, 3, 13, 1, 17, 121, 13, 391, 253, 1323, 1515, 2067, 8009, 5173, 59543, 109511, 156821}}, +{13776, 18, 6073, {1, 1, 5, 3, 7, 1, 119, 151, 281, 859, 675, 2923, 6627, 16071, 24653, 41325, 118413, 191981}}, +{13777, 18, 6081, {1, 3, 5, 3, 31, 17, 57, 255, 473, 455, 203, 173, 345, 1477, 27939, 39289, 105081, 136179}}, +{13778, 18, 6088, {1, 3, 3, 7, 1, 35, 29, 81, 337, 483, 951, 955, 4343, 14827, 17427, 59919, 81883, 114289}}, +{13779, 18, 6101, {1, 3, 5, 11, 3, 39, 49, 177, 335, 57, 173, 1827, 5729, 2689, 12109, 13247, 117559, 31735}}, +{13780, 18, 6139, {1, 3, 1, 3, 9, 9, 41, 97, 37, 897, 545, 2289, 7917, 5701, 21953, 1863, 33727, 28451}}, +{13781, 18, 6142, {1, 1, 5, 3, 29, 61, 59, 129, 387, 965, 285, 3503, 1651, 10423, 24861, 31853, 38491, 155187}}, +{13782, 18, 6194, {1, 3, 1, 13, 23, 33, 13, 161, 133, 29, 1073, 1491, 3687, 6821, 24153, 3675, 33771, 230087}}, +{13783, 18, 6199, {1, 1, 7, 7, 29, 23, 23, 55, 189, 203, 641, 3391, 1217, 3199, 32531, 43103, 24007, 85613}}, +{13784, 18, 6200, {1, 1, 1, 11, 7, 57, 117, 245, 467, 861, 1265, 2827, 2761, 2817, 15679, 53223, 47245, 139871}}, +{13785, 18, 6203, {1, 1, 3, 15, 25, 1, 125, 237, 489, 1003, 515, 1117, 4427, 4877, 8685, 46211, 19889, 82491}}, +{13786, 18, 6214, {1, 1, 3, 3, 25, 3, 63, 217, 485, 699, 161, 1459, 2973, 15949, 30681, 30991, 13933, 86505}}, +{13787, 18, 6238, {1, 1, 7, 9, 27, 57, 23, 217, 401, 613, 277, 2827, 7111, 2133, 17489, 62059, 7273, 170917}}, +{13788, 18, 6241, {1, 1, 3, 13, 7, 19, 39, 63, 203, 1001, 279, 879, 4293, 10121, 969, 11571, 96427, 218969}}, +{13789, 18, 6244, {1, 3, 7, 7, 5, 21, 113, 203, 77, 971, 1351, 1097, 2581, 7519, 16049, 10565, 5055, 241561}}, +{13790, 18, 6248, {1, 3, 3, 11, 1, 21, 93, 111, 221, 31, 1245, 1499, 2289, 2299, 23457, 49221, 68879, 125029}}, +{13791, 18, 6256, {1, 1, 7, 3, 15, 19, 57, 189, 243, 785, 399, 3147, 6107, 2327, 6275, 9993, 53051, 34053}}, +{13792, 18, 6266, {1, 3, 7, 15, 5, 63, 7, 193, 115, 579, 1987, 765, 7871, 14179, 26383, 61455, 14241, 123515}}, +{13793, 18, 6271, {1, 3, 7, 13, 19, 13, 91, 225, 295, 675, 1995, 1145, 4929, 5163, 1101, 60681, 76777, 146875}}, +{13794, 18, 6275, {1, 3, 7, 15, 21, 37, 57, 89, 297, 143, 717, 4021, 3259, 8869, 21189, 39333, 125045, 94469}}, +{13795, 18, 6295, {1, 1, 5, 9, 27, 35, 69, 121, 433, 39, 889, 915, 4055, 11479, 24757, 53455, 17503, 113295}}, +{13796, 18, 6315, {1, 1, 3, 3, 23, 19, 81, 191, 33, 865, 59, 603, 2819, 4919, 22495, 25089, 73905, 44971}}, +{13797, 18, 6364, {1, 3, 3, 11, 19, 45, 125, 229, 143, 167, 867, 671, 2225, 16099, 14909, 14937, 78063, 135143}}, +{13798, 18, 6368, {1, 1, 7, 11, 21, 55, 73, 247, 211, 895, 1147, 17, 2119, 3261, 19815, 28055, 50139, 178459}}, +{13799, 18, 6377, {1, 1, 3, 1, 19, 3, 37, 221, 243, 459, 1539, 3899, 4597, 5503, 23015, 57019, 62637, 177821}}, +{13800, 18, 6400, {1, 3, 1, 3, 9, 5, 91, 3, 319, 609, 1241, 3953, 5569, 8757, 6453, 8083, 55285, 38297}}, +{13801, 18, 6430, {1, 3, 5, 15, 9, 51, 37, 53, 137, 95, 123, 157, 15, 7421, 22469, 49787, 96245, 199309}}, +{13802, 18, 6477, {1, 3, 1, 1, 29, 61, 85, 211, 437, 1013, 1251, 61, 157, 4325, 24247, 1065, 24875, 31509}}, +{13803, 18, 6480, {1, 3, 1, 13, 7, 43, 13, 171, 53, 567, 77, 3781, 5077, 6691, 32485, 24253, 83919, 159371}}, +{13804, 18, 6490, {1, 1, 1, 13, 15, 15, 19, 53, 325, 309, 53, 1857, 7361, 8831, 31751, 44749, 109265, 227875}}, +{13805, 18, 6526, {1, 3, 7, 3, 31, 19, 113, 253, 361, 697, 1137, 2029, 3673, 10323, 10455, 24935, 7325, 43673}}, +{13806, 18, 6539, {1, 3, 1, 1, 17, 31, 3, 55, 121, 967, 1701, 2171, 4393, 11937, 3987, 5139, 68913, 134233}}, +{13807, 18, 6556, {1, 1, 7, 15, 23, 37, 121, 241, 297, 419, 373, 1219, 739, 4567, 28593, 61267, 95711, 201299}}, +{13808, 18, 6584, {1, 1, 1, 9, 23, 31, 101, 243, 163, 333, 1707, 2553, 5285, 12827, 5051, 14165, 505, 253585}}, +{13809, 18, 6598, {1, 1, 1, 9, 11, 29, 81, 45, 101, 235, 1079, 4091, 1069, 3439, 23599, 6699, 71783, 236943}}, +{13810, 18, 6601, {1, 3, 7, 11, 29, 49, 99, 59, 1, 267, 887, 2941, 6717, 7501, 22549, 53393, 34569, 34671}}, +{13811, 18, 6609, {1, 3, 1, 15, 23, 13, 113, 47, 11, 79, 989, 1025, 35, 10475, 8079, 33121, 32477, 178595}}, +{13812, 18, 6612, {1, 3, 7, 1, 21, 19, 51, 31, 393, 171, 553, 2221, 7017, 8567, 21803, 51803, 83737, 196409}}, +{13813, 18, 6645, {1, 1, 3, 3, 1, 27, 117, 207, 37, 733, 2001, 2575, 4849, 5609, 743, 35987, 109993, 227663}}, +{13814, 18, 6655, {1, 1, 7, 15, 29, 47, 85, 213, 335, 633, 849, 3269, 7723, 4651, 355, 54565, 58829, 22781}}, +{13815, 18, 6679, {1, 3, 7, 5, 5, 3, 91, 243, 17, 85, 1983, 3909, 1839, 10403, 503, 28451, 3221, 215397}}, +{13816, 18, 6683, {1, 1, 1, 15, 13, 3, 9, 25, 249, 113, 1619, 2313, 6461, 2323, 14319, 59635, 9569, 220583}}, +{13817, 18, 6719, {1, 3, 5, 7, 31, 59, 41, 43, 43, 921, 647, 2141, 7011, 2749, 24711, 19067, 107895, 107145}}, +{13818, 18, 6727, {1, 1, 3, 3, 15, 63, 41, 241, 181, 729, 843, 3569, 2645, 2727, 25331, 23067, 115421, 86025}}, +{13819, 18, 6734, {1, 3, 1, 15, 11, 47, 9, 183, 341, 775, 1067, 1317, 6835, 7873, 2653, 33517, 103979, 196761}}, +{13820, 18, 6770, {1, 1, 3, 13, 29, 11, 105, 9, 49, 823, 1343, 759, 1263, 12413, 26047, 54285, 57319, 215387}}, +{13821, 18, 6776, {1, 1, 5, 13, 21, 55, 75, 149, 63, 737, 1305, 929, 4149, 2793, 24505, 11541, 74765, 8207}}, +{13822, 18, 6791, {1, 3, 5, 9, 25, 1, 43, 157, 303, 395, 301, 1561, 5963, 3501, 2259, 59777, 100953, 16051}}, +{13823, 18, 6798, {1, 3, 1, 13, 19, 25, 33, 209, 11, 95, 655, 595, 3081, 10345, 26615, 45129, 84023, 158079}}, +{13824, 18, 6800, {1, 3, 1, 9, 31, 61, 103, 203, 471, 215, 1103, 759, 1197, 3333, 15859, 36103, 31563, 5987}}, +{13825, 18, 6826, {1, 1, 1, 7, 1, 49, 121, 227, 153, 793, 1723, 1033, 6875, 6683, 2503, 57213, 97967, 120383}}, +{13826, 18, 6833, {1, 3, 7, 11, 3, 15, 35, 181, 19, 249, 755, 1385, 3297, 4665, 2761, 22717, 126199, 85065}}, +{13827, 18, 6836, {1, 3, 7, 15, 5, 45, 17, 55, 111, 597, 553, 1203, 7183, 8465, 28523, 50073, 90889, 187205}}, +{13828, 18, 6858, {1, 3, 3, 9, 31, 57, 13, 139, 291, 881, 501, 2051, 617, 5151, 28225, 44777, 31645, 6805}}, +{13829, 18, 6882, {1, 3, 5, 13, 1, 23, 107, 1, 201, 35, 1673, 2281, 7663, 1115, 25061, 59615, 127955, 169685}}, +{13830, 18, 6901, {1, 1, 3, 15, 15, 5, 17, 75, 307, 591, 1661, 855, 4239, 13359, 20027, 51871, 35241, 32769}}, +{13831, 18, 6923, {1, 1, 1, 15, 5, 23, 59, 205, 223, 103, 1889, 141, 6157, 9187, 23571, 15267, 1941, 119173}}, +{13832, 18, 6967, {1, 3, 5, 9, 27, 63, 59, 11, 279, 493, 209, 4087, 1055, 9841, 31753, 37459, 27757, 213151}}, +{13833, 18, 6979, {1, 1, 3, 11, 31, 33, 13, 87, 285, 847, 2005, 3431, 253, 15157, 31359, 45303, 114337, 42541}}, +{13834, 18, 7022, {1, 1, 1, 7, 7, 3, 17, 203, 133, 321, 241, 1323, 5639, 10953, 10069, 4941, 17077, 54493}}, +{13835, 18, 7060, {1, 1, 7, 1, 9, 5, 125, 5, 421, 609, 645, 1927, 3785, 2295, 1491, 23019, 85497, 161231}}, +{13836, 18, 7064, {1, 3, 3, 11, 19, 35, 115, 95, 353, 773, 2025, 2621, 2821, 6361, 29589, 20989, 99645, 90387}}, +{13837, 18, 7083, {1, 3, 1, 15, 23, 3, 71, 253, 467, 307, 1109, 2695, 7175, 15087, 1587, 48229, 104307, 218905}}, +{13838, 18, 7093, {1, 3, 3, 5, 17, 29, 107, 153, 371, 205, 7, 597, 7393, 2345, 20149, 47417, 37983, 200683}}, +{13839, 18, 7094, {1, 1, 7, 1, 3, 55, 113, 117, 241, 923, 1217, 3825, 2635, 8007, 12673, 9533, 7121, 3825}}, +{13840, 18, 7120, {1, 1, 1, 3, 21, 63, 25, 111, 31, 151, 67, 3735, 7833, 749, 28743, 59291, 4989, 93329}}, +{13841, 18, 7125, {1, 3, 5, 13, 31, 5, 91, 153, 235, 1019, 431, 1951, 7501, 8483, 19625, 57789, 13203, 36693}}, +{13842, 18, 7142, {1, 1, 7, 3, 15, 51, 99, 29, 403, 343, 1903, 907, 3255, 4149, 29551, 18885, 74391, 96119}}, +{13843, 18, 7151, {1, 1, 7, 11, 31, 11, 63, 213, 437, 879, 359, 555, 7549, 14269, 31489, 51001, 76857, 237305}}, +{13844, 18, 7165, {1, 1, 1, 15, 23, 21, 31, 227, 311, 273, 253, 2439, 7217, 2191, 31743, 47669, 62279, 201305}}, +{13845, 18, 7173, {1, 3, 5, 11, 3, 43, 97, 121, 363, 91, 201, 1095, 5267, 633, 19111, 36099, 23035, 205655}}, +{13846, 18, 7188, {1, 3, 1, 9, 21, 31, 39, 11, 227, 699, 473, 2109, 2757, 13821, 31181, 40493, 57279, 260085}}, +{13847, 18, 7191, {1, 1, 5, 7, 27, 57, 65, 11, 173, 709, 1139, 3735, 5291, 16053, 32579, 25275, 79865, 196033}}, +{13848, 18, 7202, {1, 1, 1, 9, 19, 35, 83, 153, 287, 207, 593, 2177, 3243, 10433, 24583, 881, 71865, 250223}}, +{13849, 18, 7216, {1, 3, 3, 9, 3, 35, 107, 3, 193, 1011, 463, 1643, 2733, 2157, 6329, 24583, 116901, 226385}}, +{13850, 18, 7219, {1, 3, 1, 11, 3, 47, 39, 33, 495, 137, 1591, 1335, 1347, 4527, 389, 43341, 80163, 5219}}, +{13851, 18, 7267, {1, 3, 3, 5, 19, 51, 121, 135, 93, 891, 13, 1339, 5187, 5005, 12823, 14465, 73845, 119685}}, +{13852, 18, 7358, {1, 3, 7, 7, 19, 1, 57, 193, 325, 49, 813, 5, 4431, 1119, 13625, 43613, 127989, 42669}}, +{13853, 18, 7383, {1, 3, 5, 15, 11, 33, 7, 45, 215, 469, 1059, 4095, 3549, 11839, 5463, 21383, 4831, 188345}}, +{13854, 18, 7387, {1, 1, 1, 13, 5, 61, 7, 161, 99, 623, 1589, 1045, 2385, 8899, 19327, 41373, 109241, 111895}}, +{13855, 18, 7396, {1, 1, 5, 7, 11, 39, 115, 41, 21, 491, 1221, 2805, 4311, 7137, 3151, 1387, 24633, 94679}}, +{13856, 18, 7408, {1, 1, 3, 7, 3, 39, 71, 175, 443, 187, 1727, 2535, 5099, 1881, 21639, 5717, 48589, 95037}}, +{13857, 18, 7432, {1, 1, 1, 11, 25, 21, 37, 227, 407, 73, 721, 3515, 381, 981, 21389, 5205, 31851, 140457}}, +{13858, 18, 7462, {1, 3, 3, 3, 27, 35, 13, 129, 457, 315, 253, 2545, 5469, 6695, 25223, 20115, 38039, 133655}}, +{13859, 18, 7480, {1, 1, 3, 11, 21, 47, 77, 231, 87, 245, 2039, 2515, 2873, 1711, 3361, 62123, 67117, 239047}}, +{13860, 18, 7488, {1, 1, 7, 7, 29, 21, 39, 175, 477, 813, 447, 1109, 7391, 14631, 4437, 42539, 13003, 75403}}, +{13861, 18, 7497, {1, 3, 1, 11, 11, 9, 119, 19, 99, 483, 61, 1883, 3415, 2137, 30415, 34519, 115191, 24437}}, +{13862, 18, 7531, {1, 1, 1, 9, 7, 47, 115, 233, 419, 427, 1605, 3821, 6243, 10861, 28495, 48265, 80811, 147701}}, +{13863, 18, 7561, {1, 3, 5, 5, 11, 61, 51, 155, 279, 463, 31, 1559, 2837, 8795, 4049, 13651, 109227, 52131}}, +{13864, 18, 7582, {1, 1, 7, 9, 25, 33, 97, 79, 477, 83, 923, 3293, 6381, 3063, 23293, 35381, 82867, 233189}}, +{13865, 18, 7591, {1, 1, 1, 9, 11, 39, 109, 189, 219, 1021, 137, 2041, 2719, 1763, 31787, 29377, 96287, 179685}}, +{13866, 18, 7612, {1, 3, 7, 5, 3, 15, 37, 179, 77, 751, 709, 893, 7705, 1563, 7843, 29843, 1107, 35919}}, +{13867, 18, 7677, {1, 3, 3, 3, 29, 17, 123, 201, 275, 487, 1979, 1361, 7523, 13783, 10129, 16877, 127049, 163221}}, +{13868, 18, 7687, {1, 1, 1, 9, 27, 35, 69, 167, 509, 133, 1073, 3773, 265, 8455, 12341, 127, 115075, 94537}}, +{13869, 18, 7701, {1, 3, 7, 9, 13, 35, 57, 83, 123, 211, 739, 253, 3907, 5405, 3229, 46837, 77483, 5915}}, +{13870, 18, 7705, {1, 1, 7, 3, 7, 27, 71, 235, 133, 803, 611, 529, 4449, 16113, 8151, 36519, 34561, 36361}}, +{13871, 18, 7712, {1, 1, 3, 1, 31, 9, 123, 85, 407, 415, 353, 3239, 673, 4641, 25883, 61117, 7669, 240851}}, +{13872, 18, 7721, {1, 1, 5, 11, 29, 9, 49, 31, 3, 249, 1769, 3325, 503, 1397, 30677, 22515, 81279, 90309}}, +{13873, 18, 7736, {1, 3, 5, 3, 15, 63, 121, 253, 421, 279, 497, 3881, 6977, 11061, 5883, 38347, 8351, 118123}}, +{13874, 18, 7756, {1, 1, 1, 13, 1, 27, 3, 91, 281, 563, 1283, 1893, 7593, 12171, 27041, 7769, 95691, 13791}}, +{13875, 18, 7777, {1, 1, 3, 3, 29, 59, 87, 153, 337, 819, 787, 2631, 1889, 13869, 29237, 57097, 91621, 4011}}, +{13876, 18, 7783, {1, 1, 1, 15, 7, 49, 1, 83, 299, 353, 131, 1635, 3723, 16209, 1061, 50669, 68083, 133443}}, +{13877, 18, 7792, {1, 3, 5, 5, 27, 17, 5, 239, 285, 831, 1487, 721, 4891, 4265, 23753, 43921, 116709, 105027}}, +{13878, 18, 7797, {1, 1, 7, 7, 5, 35, 63, 97, 215, 447, 353, 495, 8119, 12537, 9679, 58641, 65057, 21999}}, +{13879, 18, 7802, {1, 3, 7, 5, 23, 43, 69, 115, 59, 603, 493, 1665, 5003, 13607, 28491, 4439, 11855, 228183}}, +{13880, 18, 7808, {1, 3, 3, 3, 15, 35, 19, 63, 241, 357, 979, 2891, 3105, 14085, 10539, 62335, 130903, 163153}}, +{13881, 18, 7866, {1, 3, 5, 3, 23, 51, 23, 193, 129, 171, 1913, 1025, 6397, 15657, 19611, 57455, 87531, 51039}}, +{13882, 18, 7885, {1, 1, 3, 9, 1, 9, 7, 239, 87, 527, 1401, 2703, 4021, 3845, 29269, 48217, 61091, 131949}}, +{13883, 18, 7891, {1, 3, 1, 5, 17, 45, 59, 223, 287, 295, 1959, 3985, 3671, 14605, 18949, 34147, 51251, 10271}}, +{13884, 18, 7913, {1, 3, 5, 9, 5, 49, 63, 105, 43, 157, 1827, 495, 5823, 6323, 6601, 51379, 64411, 204103}}, +{13885, 18, 7936, {1, 1, 7, 1, 11, 31, 117, 9, 13, 965, 177, 1247, 2487, 9849, 20367, 49287, 2193, 235689}}, +{13886, 18, 7946, {1, 1, 3, 11, 19, 31, 23, 215, 489, 657, 801, 3937, 379, 12083, 14969, 37857, 39027, 63985}}, +{13887, 18, 7963, {1, 1, 5, 1, 9, 59, 53, 187, 341, 65, 1251, 767, 4897, 13263, 17439, 26625, 122107, 163653}}, +{13888, 18, 7996, {1, 1, 3, 13, 31, 41, 125, 253, 481, 107, 233, 2305, 3321, 7303, 28585, 12787, 83307, 31497}}, +{13889, 18, 7999, {1, 1, 3, 13, 25, 41, 55, 83, 101, 115, 549, 531, 3085, 9497, 27989, 28257, 121075, 189671}}, +{13890, 18, 8011, {1, 3, 5, 11, 13, 53, 121, 85, 355, 275, 1925, 2117, 1349, 5903, 2041, 20963, 60803, 1121}}, +{13891, 18, 8014, {1, 1, 5, 5, 13, 7, 125, 63, 311, 187, 1127, 643, 6137, 845, 23945, 9403, 451, 53027}}, +{13892, 18, 8028, {1, 1, 3, 7, 19, 31, 27, 239, 337, 61, 641, 1693, 7289, 5675, 30067, 41091, 124607, 36971}}, +{13893, 18, 8047, {1, 3, 1, 13, 25, 61, 11, 81, 165, 129, 241, 711, 5193, 13017, 30821, 35239, 110809, 60909}}, +{13894, 18, 8077, {1, 3, 3, 13, 15, 13, 71, 19, 87, 499, 1395, 1191, 1445, 2687, 4691, 16773, 114269, 186237}}, +{13895, 18, 8101, {1, 3, 3, 15, 1, 49, 33, 109, 241, 5, 431, 461, 3865, 14029, 9827, 54455, 52159, 211585}}, +{13896, 18, 8119, {1, 3, 5, 7, 31, 27, 115, 113, 367, 591, 873, 1447, 6819, 7011, 14095, 55243, 4039, 226985}}, +{13897, 18, 8125, {1, 1, 7, 3, 1, 19, 69, 239, 417, 833, 1867, 3111, 2617, 12781, 5531, 17345, 75717, 139667}}, +{13898, 18, 8140, {1, 1, 5, 11, 11, 63, 23, 141, 221, 897, 1269, 2185, 6057, 8865, 20449, 58255, 27073, 158305}}, +{13899, 18, 8152, {1, 3, 3, 5, 23, 23, 121, 39, 457, 935, 691, 2329, 7055, 2821, 12669, 28713, 82321, 245783}}, +{13900, 18, 8209, {1, 1, 1, 9, 27, 9, 35, 23, 139, 823, 703, 917, 1281, 12155, 11681, 26083, 119445, 181489}}, +{13901, 18, 8212, {1, 1, 3, 7, 27, 21, 35, 243, 17, 633, 1665, 3419, 6301, 16099, 17477, 24983, 128455, 127501}}, +{13902, 18, 8231, {1, 3, 1, 1, 17, 19, 59, 165, 487, 985, 597, 689, 7103, 14475, 6985, 29755, 115977, 105943}}, +{13903, 18, 8258, {1, 1, 5, 5, 23, 41, 67, 175, 3, 571, 1501, 3315, 6111, 1847, 28975, 54117, 66605, 69997}}, +{13904, 18, 8275, {1, 3, 5, 5, 13, 37, 113, 75, 383, 297, 1187, 2055, 3433, 14651, 30393, 29647, 126403, 32265}}, +{13905, 18, 8303, {1, 1, 3, 5, 31, 29, 25, 169, 465, 219, 81, 2019, 4255, 6003, 7425, 53269, 31105, 211937}}, +{13906, 18, 8308, {1, 3, 7, 11, 13, 7, 11, 195, 327, 883, 1295, 3721, 1197, 7585, 5693, 993, 125017, 12007}}, +{13907, 18, 8312, {1, 3, 3, 7, 5, 37, 71, 37, 63, 651, 669, 3445, 3959, 249, 10599, 22329, 107701, 107729}}, +{13908, 18, 8345, {1, 1, 1, 9, 7, 47, 21, 181, 395, 345, 757, 481, 2759, 8157, 19847, 55743, 63137, 224765}}, +{13909, 18, 8346, {1, 3, 5, 9, 29, 3, 61, 35, 271, 157, 549, 843, 2907, 91, 16325, 4241, 94495, 78861}}, +{13910, 18, 8370, {1, 3, 1, 9, 17, 11, 53, 243, 49, 911, 1193, 793, 901, 3727, 21849, 33987, 565, 154171}}, +{13911, 18, 8402, {1, 1, 5, 1, 9, 5, 89, 81, 65, 111, 781, 3775, 591, 4987, 29833, 58159, 7253, 206447}}, +{13912, 18, 8411, {1, 3, 1, 7, 3, 59, 77, 83, 173, 545, 103, 2541, 8095, 10797, 11111, 62351, 88827, 55081}}, +{13913, 18, 8414, {1, 1, 3, 11, 29, 37, 19, 47, 145, 19, 513, 3269, 2205, 5317, 19207, 38051, 5413, 78089}}, +{13914, 18, 8424, {1, 1, 5, 9, 21, 57, 75, 249, 21, 879, 1377, 3407, 6123, 11917, 12493, 44873, 113539, 114717}}, +{13915, 18, 8435, {1, 3, 3, 9, 7, 55, 121, 57, 491, 39, 1561, 2625, 639, 13553, 1159, 43071, 68869, 248837}}, +{13916, 18, 8452, {1, 1, 1, 11, 25, 19, 107, 239, 171, 1001, 69, 4095, 49, 9569, 22613, 59865, 54959, 70031}}, +{13917, 18, 8462, {1, 1, 3, 13, 27, 15, 105, 205, 205, 581, 1965, 1535, 6531, 15935, 7623, 33695, 9317, 44257}}, +{13918, 18, 8479, {1, 1, 1, 3, 3, 51, 115, 185, 315, 763, 211, 339, 7083, 4895, 23277, 14165, 101731, 218903}}, +{13919, 18, 8509, {1, 1, 3, 13, 29, 1, 69, 55, 423, 781, 183, 1417, 151, 14507, 5217, 27757, 52447, 145913}}, +{13920, 18, 8515, {1, 3, 1, 11, 29, 39, 29, 151, 85, 387, 885, 507, 133, 9819, 12627, 30951, 79839, 206267}}, +{13921, 18, 8522, {1, 3, 3, 7, 1, 53, 99, 141, 91, 51, 143, 1751, 3989, 6811, 7339, 52141, 43473, 18615}}, +{13922, 18, 8541, {1, 3, 3, 15, 27, 11, 29, 37, 387, 655, 2019, 1135, 3619, 12995, 12755, 26063, 109419, 103875}}, +{13923, 18, 8560, {1, 3, 3, 13, 31, 15, 93, 231, 195, 261, 1055, 2363, 1123, 3927, 6907, 365, 27043, 157049}}, +{13924, 18, 8563, {1, 1, 1, 15, 7, 29, 105, 199, 507, 437, 117, 2963, 7801, 6291, 19261, 30377, 92205, 20723}}, +{13925, 18, 8585, {1, 1, 1, 9, 29, 19, 75, 189, 3, 387, 1491, 2291, 7739, 12993, 11835, 10873, 54583, 207963}}, +{13926, 18, 8594, {1, 3, 7, 3, 23, 11, 25, 105, 57, 713, 1291, 3293, 4693, 13859, 27541, 31529, 65929, 245143}}, +{13927, 18, 8596, {1, 1, 7, 7, 19, 13, 19, 189, 253, 337, 351, 1751, 6173, 12207, 24483, 31381, 82035, 157143}}, +{13928, 18, 8603, {1, 3, 3, 11, 11, 49, 117, 177, 301, 417, 855, 2433, 5619, 7339, 30361, 29251, 20411, 184981}}, +{13929, 18, 8610, {1, 1, 1, 1, 11, 55, 77, 99, 209, 781, 1193, 2841, 783, 1485, 19413, 52255, 19529, 253927}}, +{13930, 18, 8647, {1, 3, 1, 3, 15, 49, 85, 191, 389, 411, 479, 341, 4985, 6193, 19099, 11497, 103285, 162333}}, +{13931, 18, 8661, {1, 3, 1, 3, 11, 31, 71, 91, 357, 615, 2007, 3601, 5393, 8079, 16811, 54127, 26049, 116341}}, +{13932, 18, 8662, {1, 1, 3, 15, 9, 39, 121, 53, 43, 617, 905, 3629, 6327, 13453, 1435, 24113, 7523, 228523}}, +{13933, 18, 8672, {1, 3, 5, 11, 21, 51, 11, 125, 33, 935, 1069, 2807, 4951, 13261, 17611, 38779, 62203, 135759}}, +{13934, 18, 8690, {1, 1, 1, 13, 29, 59, 53, 245, 219, 423, 809, 1109, 7255, 14679, 25247, 43235, 129565, 72649}}, +{13935, 18, 8696, {1, 3, 5, 7, 27, 29, 119, 91, 297, 407, 187, 2829, 5637, 13851, 14073, 461, 64081, 33971}}, +{13936, 18, 8739, {1, 1, 5, 11, 15, 27, 29, 233, 487, 859, 1021, 3117, 1439, 16021, 31315, 35775, 117363, 131635}}, +{13937, 18, 8783, {1, 1, 5, 3, 3, 1, 91, 229, 327, 777, 393, 3853, 3455, 1785, 13749, 25173, 51575, 167237}}, +{13938, 18, 8811, {1, 3, 7, 9, 27, 7, 15, 71, 283, 71, 1783, 1357, 5581, 3143, 26075, 47751, 71001, 157107}}, +{13939, 18, 8813, {1, 3, 3, 7, 23, 9, 69, 21, 333, 223, 1735, 1057, 8091, 1927, 8507, 40901, 40233, 164115}}, +{13940, 18, 8821, {1, 3, 7, 3, 11, 49, 29, 81, 215, 289, 1137, 765, 6385, 5935, 3435, 11991, 30867, 60745}}, +{13941, 18, 8856, {1, 1, 1, 1, 7, 39, 33, 173, 225, 533, 1927, 3607, 1059, 8779, 2649, 6801, 103963, 167471}}, +{13942, 18, 8877, {1, 3, 3, 15, 27, 51, 107, 3, 195, 87, 739, 1425, 747, 1501, 22245, 59233, 124867, 79753}}, +{13943, 18, 8885, {1, 1, 3, 3, 13, 41, 125, 101, 225, 749, 221, 2735, 6441, 11353, 3943, 35329, 53437, 149063}}, +{13944, 18, 8897, {1, 3, 3, 15, 3, 53, 75, 77, 1, 907, 573, 1909, 363, 6913, 559, 58489, 1053, 25513}}, +{13945, 18, 8898, {1, 1, 7, 11, 7, 15, 91, 155, 447, 555, 473, 3625, 7529, 16307, 32241, 64077, 46943, 85717}}, +{13946, 18, 8934, {1, 1, 1, 13, 9, 61, 91, 41, 101, 107, 1081, 2511, 2881, 14095, 3861, 22771, 32687, 77287}}, +{13947, 18, 8955, {1, 3, 3, 7, 21, 3, 51, 177, 203, 861, 1507, 1177, 2369, 11735, 1667, 28607, 97671, 123263}}, +{13948, 18, 8972, {1, 1, 1, 3, 5, 57, 13, 127, 353, 65, 663, 3849, 3579, 5521, 11765, 63427, 76349, 102517}}, +{13949, 18, 8977, {1, 1, 7, 11, 27, 55, 79, 249, 397, 77, 1543, 3787, 4889, 11145, 18691, 62899, 66425, 116195}}, +{13950, 18, 9038, {1, 1, 1, 3, 5, 3, 1, 143, 73, 999, 2013, 2001, 4001, 6563, 30811, 61445, 2645, 203631}}, +{13951, 18, 9045, {1, 1, 1, 15, 1, 49, 35, 61, 493, 101, 1407, 2211, 7467, 12321, 15901, 15479, 62939, 14643}}, +{13952, 18, 9071, {1, 1, 3, 11, 21, 33, 123, 95, 449, 355, 1501, 1627, 1411, 6183, 17457, 2199, 96313, 25023}}, +{13953, 18, 9085, {1, 1, 5, 5, 13, 49, 73, 203, 83, 3, 137, 119, 3001, 10685, 18231, 60727, 31785, 158605}}, +{13954, 18, 9110, {1, 3, 1, 11, 23, 19, 123, 9, 269, 501, 2005, 3695, 3327, 5353, 12619, 12987, 18213, 29355}}, +{13955, 18, 9120, {1, 3, 1, 5, 1, 25, 99, 197, 327, 575, 773, 2009, 6653, 1807, 20381, 55725, 124359, 176893}}, +{13956, 18, 9157, {1, 1, 7, 15, 27, 9, 81, 175, 73, 727, 1907, 1237, 4983, 16123, 16479, 2283, 57805, 13593}}, +{13957, 18, 9164, {1, 1, 3, 13, 7, 13, 13, 139, 283, 721, 487, 1821, 4257, 5105, 8057, 27193, 46857, 169927}}, +{13958, 18, 9185, {1, 1, 5, 5, 29, 5, 81, 211, 441, 685, 981, 3097, 6253, 10673, 12253, 54943, 69401, 147769}}, +{13959, 18, 9203, {1, 3, 3, 1, 13, 35, 73, 145, 139, 781, 37, 803, 3607, 4327, 1153, 11325, 131025, 168729}}, +{13960, 18, 9235, {1, 3, 1, 13, 17, 41, 19, 59, 23, 561, 315, 719, 3325, 275, 12715, 59843, 16597, 81691}}, +{13961, 18, 9278, {1, 3, 1, 11, 1, 53, 11, 237, 363, 345, 331, 129, 6885, 3105, 12487, 53803, 8897, 193777}}, +{13962, 18, 9290, {1, 3, 7, 15, 3, 53, 55, 101, 389, 839, 413, 2851, 3989, 12857, 25723, 16595, 94145, 193049}}, +{13963, 18, 9292, {1, 3, 1, 7, 15, 31, 3, 115, 197, 753, 1035, 1369, 4925, 4497, 1641, 63743, 127089, 114097}}, +{13964, 18, 9319, {1, 3, 5, 5, 23, 1, 35, 99, 277, 769, 895, 581, 6969, 15339, 10309, 27101, 22611, 86179}}, +{13965, 18, 9334, {1, 1, 1, 11, 19, 17, 45, 35, 257, 313, 815, 1469, 3651, 15101, 22775, 51729, 75401, 123653}}, +{13966, 18, 9362, {1, 3, 1, 15, 5, 11, 83, 141, 373, 935, 1123, 1849, 1267, 15427, 10615, 63303, 109771, 188601}}, +{13967, 18, 9387, {1, 3, 5, 3, 29, 23, 79, 193, 261, 29, 1857, 789, 4359, 14211, 22181, 64901, 129089, 65587}}, +{13968, 18, 9404, {1, 3, 1, 3, 29, 15, 19, 239, 497, 771, 239, 2853, 2391, 8153, 31899, 53759, 127219, 78833}}, +{13969, 18, 9407, {1, 1, 7, 7, 5, 57, 9, 93, 69, 993, 193, 3629, 5761, 9339, 28073, 50035, 81635, 83119}}, +{13970, 18, 9410, {1, 1, 5, 13, 7, 35, 79, 247, 43, 1011, 1189, 2881, 1963, 8889, 9929, 50043, 112581, 224139}}, +{13971, 18, 9422, {1, 3, 3, 7, 15, 63, 85, 33, 107, 37, 45, 1271, 4735, 1151, 19793, 6589, 50875, 185061}}, +{13972, 18, 9478, {1, 3, 1, 15, 1, 63, 1, 201, 207, 179, 67, 3703, 2629, 10517, 1, 39645, 119733, 6449}}, +{13973, 18, 9512, {1, 3, 5, 1, 3, 7, 97, 101, 233, 71, 255, 3767, 8127, 8041, 25001, 7601, 129595, 131657}}, +{13974, 18, 9535, {1, 1, 7, 1, 25, 29, 105, 25, 267, 191, 267, 3141, 4445, 5043, 25203, 32055, 11035, 229031}}, +{13975, 18, 9604, {1, 1, 1, 13, 3, 1, 1, 147, 63, 259, 1171, 401, 6289, 13577, 28129, 1349, 85027, 178123}}, +{13976, 18, 9616, {1, 1, 1, 13, 1, 59, 109, 95, 49, 309, 1141, 1355, 3415, 11237, 21619, 12039, 1795, 57775}}, +{13977, 18, 9622, {1, 3, 1, 11, 19, 3, 51, 227, 277, 49, 703, 2701, 515, 8893, 20163, 65297, 114781, 225687}}, +{13978, 18, 9631, {1, 3, 7, 11, 19, 47, 121, 199, 173, 905, 1903, 1781, 2425, 13381, 25843, 23279, 87701, 10723}}, +{13979, 18, 9656, {1, 3, 1, 13, 7, 21, 17, 15, 85, 241, 119, 2361, 7921, 6077, 955, 34221, 78179, 35511}}, +{13980, 18, 9710, {1, 1, 7, 11, 9, 1, 1, 29, 445, 557, 241, 959, 6077, 3547, 30987, 48129, 79699, 236611}}, +{13981, 18, 9721, {1, 3, 1, 15, 13, 29, 57, 117, 347, 719, 1435, 307, 5209, 4009, 10517, 3373, 67667, 260101}}, +{13982, 18, 9728, {1, 1, 7, 13, 11, 41, 17, 143, 467, 993, 779, 3991, 623, 8915, 21615, 56477, 59721, 164241}}, +{13983, 18, 9733, {1, 1, 3, 7, 15, 37, 53, 33, 395, 547, 1815, 2517, 6575, 14035, 1, 10919, 25467, 117521}}, +{13984, 18, 9738, {1, 1, 3, 9, 17, 47, 45, 3, 509, 53, 1245, 883, 7917, 15445, 4169, 49637, 90933, 109469}}, +{13985, 18, 9774, {1, 3, 1, 3, 27, 37, 3, 95, 31, 665, 701, 1979, 3735, 3257, 18943, 41201, 95721, 69451}}, +{13986, 18, 9791, {1, 1, 1, 15, 19, 49, 61, 5, 115, 801, 805, 2723, 1387, 13165, 20717, 40767, 88857, 28207}}, +{13987, 18, 9803, {1, 1, 5, 9, 21, 25, 23, 179, 59, 29, 547, 1829, 4411, 6689, 22363, 43975, 52259, 187563}}, +{13988, 18, 9805, {1, 1, 5, 11, 13, 31, 97, 131, 135, 415, 53, 4015, 3629, 6613, 25541, 47221, 66483, 224545}}, +{13989, 18, 9817, {1, 3, 1, 11, 19, 13, 65, 95, 381, 759, 1319, 2997, 6321, 9203, 24483, 9925, 10799, 117119}}, +{13990, 18, 9823, {1, 3, 5, 13, 27, 17, 39, 225, 199, 125, 1125, 2673, 6787, 8861, 13139, 13849, 65459, 40183}}, +{13991, 18, 9839, {1, 1, 5, 3, 17, 55, 23, 75, 457, 959, 1507, 1267, 6857, 16141, 1889, 10779, 41331, 166075}}, +{13992, 18, 9847, {1, 3, 1, 15, 7, 55, 109, 59, 241, 431, 1281, 183, 1029, 14617, 4003, 41871, 36007, 129617}}, +{13993, 18, 9854, {1, 3, 1, 1, 27, 61, 79, 93, 217, 251, 671, 989, 7031, 10035, 15455, 13685, 95471, 997}}, +{13994, 18, 9863, {1, 1, 3, 13, 1, 5, 125, 179, 357, 537, 1303, 2653, 7319, 2075, 3861, 11743, 89659, 221705}}, +{13995, 18, 9872, {1, 1, 1, 7, 3, 55, 5, 201, 153, 639, 835, 1913, 3331, 10727, 30365, 15133, 67911, 17851}}, +{13996, 18, 9884, {1, 1, 3, 13, 21, 1, 67, 71, 265, 43, 279, 2009, 873, 4447, 32001, 50783, 76613, 63919}}, +{13997, 18, 9935, {1, 1, 3, 11, 17, 43, 19, 195, 233, 17, 1855, 1227, 3435, 4313, 6417, 51019, 130091, 124947}}, +{13998, 18, 9937, {1, 1, 7, 9, 19, 9, 95, 87, 297, 817, 1217, 3637, 2371, 7073, 387, 62121, 43507, 93927}}, +{13999, 18, 9974, {1, 3, 5, 13, 1, 15, 29, 123, 137, 425, 531, 2659, 2077, 1345, 2803, 49469, 29031, 170825}}, +{14000, 18, 9980, {1, 1, 5, 7, 15, 13, 119, 231, 139, 673, 1105, 2355, 3023, 4437, 17491, 47367, 12751, 183319}}, +{14001, 18, 10003, {1, 1, 5, 15, 19, 5, 125, 121, 509, 539, 473, 2087, 4421, 4205, 23457, 34481, 111231, 145035}}, +{14002, 18, 10015, {1, 3, 7, 5, 23, 21, 85, 23, 415, 715, 1579, 3447, 2373, 233, 19401, 54869, 15977, 138119}}, +{14003, 18, 10016, {1, 1, 3, 11, 21, 1, 37, 127, 101, 943, 79, 2119, 5679, 10749, 16209, 16715, 29421, 259735}}, +{14004, 18, 10066, {1, 3, 7, 7, 23, 25, 1, 73, 505, 979, 535, 87, 4165, 9353, 20075, 57597, 74651, 22133}}, +{14005, 18, 10093, {1, 1, 7, 3, 11, 19, 75, 213, 293, 15, 1981, 1259, 5455, 2897, 18861, 6317, 10339, 123967}}, +{14006, 18, 10118, {1, 3, 1, 3, 29, 5, 93, 169, 51, 519, 1649, 2789, 1251, 8359, 11489, 62443, 91549, 148357}}, +{14007, 18, 10132, {1, 3, 3, 13, 5, 47, 39, 163, 341, 755, 737, 2335, 2389, 8351, 26193, 58111, 18425, 129313}}, +{14008, 18, 10135, {1, 1, 3, 1, 31, 49, 101, 69, 345, 291, 1257, 1801, 1613, 1479, 4403, 21307, 44947, 68591}}, +{14009, 18, 10151, {1, 3, 3, 9, 5, 23, 65, 65, 187, 709, 883, 2199, 1037, 8679, 31527, 23561, 92225, 254215}}, +{14010, 18, 10158, {1, 3, 7, 7, 23, 13, 87, 209, 163, 705, 1199, 3007, 5469, 2453, 2691, 17841, 97045, 174149}}, +{14011, 18, 10169, {1, 1, 1, 9, 5, 35, 21, 91, 145, 559, 131, 3911, 1777, 8225, 6077, 58223, 100827, 3641}}, +{14012, 18, 10172, {1, 1, 5, 5, 7, 5, 31, 189, 117, 785, 1493, 3899, 471, 10971, 4607, 21063, 67225, 195367}}, +{14013, 18, 10180, {1, 1, 7, 5, 31, 61, 63, 163, 417, 655, 2033, 1255, 1139, 6867, 28655, 55295, 100519, 166629}}, +{14014, 18, 10187, {1, 3, 3, 3, 7, 35, 83, 55, 7, 607, 253, 915, 6801, 7505, 15929, 16829, 78469, 150947}}, +{14015, 18, 10189, {1, 3, 3, 9, 29, 3, 127, 235, 347, 3, 193, 1547, 8073, 14963, 20351, 28951, 53855, 261375}}, +{14016, 18, 10192, {1, 1, 7, 3, 31, 19, 75, 87, 23, 419, 75, 1677, 2371, 8875, 31993, 4465, 76085, 86499}}, +{14017, 18, 10197, {1, 3, 5, 7, 1, 51, 47, 161, 415, 521, 1099, 1295, 2545, 15167, 13983, 7347, 60631, 4089}}, +{14018, 18, 10211, {1, 1, 1, 9, 7, 59, 71, 187, 441, 273, 769, 2649, 3261, 12661, 23045, 32035, 104573, 120589}}, +{14019, 18, 10214, {1, 3, 7, 13, 23, 51, 113, 205, 443, 291, 475, 2961, 7615, 105, 22099, 6045, 22667, 65515}}, +{14020, 18, 10256, {1, 1, 5, 11, 1, 1, 23, 231, 413, 371, 1285, 2695, 2751, 4235, 15779, 1903, 24469, 259157}}, +{14021, 18, 10278, {1, 3, 3, 7, 7, 47, 87, 105, 311, 251, 573, 3221, 5757, 11107, 11161, 8809, 14467, 33153}}, +{14022, 18, 10290, {1, 1, 7, 1, 31, 49, 51, 31, 305, 315, 547, 1159, 2741, 3773, 13299, 40115, 62523, 108487}}, +{14023, 18, 10301, {1, 3, 1, 11, 11, 43, 33, 213, 107, 467, 1509, 4081, 4723, 2409, 1447, 42759, 64717, 161991}}, +{14024, 18, 10310, {1, 3, 7, 3, 31, 23, 25, 159, 95, 721, 1981, 3659, 4819, 10119, 25451, 10165, 31281, 238319}}, +{14025, 18, 10344, {1, 3, 1, 5, 19, 27, 67, 125, 481, 585, 43, 3697, 4997, 581, 6439, 33477, 115023, 51759}}, +{14026, 18, 10473, {1, 3, 7, 7, 15, 53, 89, 173, 369, 365, 91, 1583, 4611, 7189, 30383, 47397, 73657, 158695}}, +{14027, 18, 10474, {1, 1, 1, 15, 1, 21, 125, 13, 243, 729, 1397, 2451, 3233, 15593, 2815, 56215, 22685, 167343}}, +{14028, 18, 10482, {1, 3, 1, 13, 13, 29, 119, 223, 51, 695, 273, 2381, 4431, 4891, 29875, 49511, 111003, 174413}}, +{14029, 18, 10499, {1, 3, 3, 15, 9, 13, 19, 177, 371, 957, 255, 115, 4701, 6089, 7237, 17077, 87949, 3111}}, +{14030, 18, 10525, {1, 1, 7, 11, 29, 49, 59, 201, 145, 219, 1159, 3863, 715, 10489, 25883, 56445, 122103, 149877}}, +{14031, 18, 10532, {1, 3, 1, 13, 15, 51, 91, 109, 433, 45, 2045, 3121, 1109, 14713, 2667, 40463, 52185, 64743}}, +{14032, 18, 10535, {1, 3, 3, 7, 21, 31, 7, 155, 347, 305, 1557, 1311, 3315, 1363, 403, 62063, 114195, 44623}}, +{14033, 18, 10556, {1, 3, 5, 11, 9, 11, 11, 245, 49, 21, 239, 3043, 3525, 1055, 21891, 19153, 123689, 170195}}, +{14034, 18, 10568, {1, 1, 1, 11, 17, 51, 83, 249, 483, 489, 1063, 469, 6153, 15551, 13783, 27945, 103775, 68175}}, +{14035, 18, 10579, {1, 3, 3, 13, 11, 61, 107, 113, 503, 819, 1593, 2851, 6711, 14623, 3709, 10931, 8743, 62321}}, +{14036, 18, 10586, {1, 1, 5, 15, 5, 37, 23, 131, 329, 499, 1765, 1273, 819, 11573, 3307, 46933, 22087, 173459}}, +{14037, 18, 10609, {1, 1, 1, 3, 31, 5, 49, 57, 239, 981, 1863, 3233, 2727, 7389, 7923, 63259, 62873, 113607}}, +{14038, 18, 10612, {1, 1, 7, 7, 11, 27, 119, 137, 115, 211, 1239, 2153, 2579, 11501, 747, 31141, 129793, 151589}}, +{14039, 18, 10650, {1, 3, 3, 9, 9, 55, 121, 199, 91, 835, 521, 2433, 8123, 2045, 32553, 48993, 9935, 220537}}, +{14040, 18, 10665, {1, 3, 7, 11, 15, 57, 53, 145, 299, 623, 691, 1557, 785, 15851, 27075, 5983, 18043, 22241}}, +{14041, 18, 10685, {1, 1, 3, 1, 1, 57, 57, 195, 381, 913, 167, 333, 5541, 2323, 17001, 34817, 30795, 144051}}, +{14042, 18, 10686, {1, 3, 3, 3, 31, 1, 83, 31, 91, 855, 195, 3449, 8057, 11061, 29089, 1597, 127581, 189033}}, +{14043, 18, 10688, {1, 3, 1, 1, 21, 59, 113, 179, 13, 523, 629, 3693, 7155, 893, 17449, 46535, 18051, 9191}}, +{14044, 18, 10711, {1, 1, 1, 3, 27, 19, 75, 229, 181, 653, 1849, 501, 5871, 14769, 27461, 59193, 115013, 72227}}, +{14045, 18, 10728, {1, 3, 3, 13, 17, 41, 111, 107, 453, 299, 1699, 2871, 2955, 4215, 13919, 19785, 30339, 148445}}, +{14046, 18, 10748, {1, 3, 3, 11, 5, 19, 21, 87, 173, 439, 1651, 2393, 4137, 16285, 16093, 22953, 105663, 226575}}, +{14047, 18, 10751, {1, 3, 5, 7, 19, 61, 101, 251, 295, 89, 1695, 1359, 5797, 8587, 18753, 65223, 51079, 96169}}, +{14048, 18, 10781, {1, 1, 1, 5, 3, 1, 79, 63, 221, 601, 1385, 1963, 4601, 15217, 4861, 58295, 61043, 88523}}, +{14049, 18, 10805, {1, 3, 3, 7, 31, 63, 73, 177, 455, 487, 1009, 2103, 4753, 3143, 10121, 36509, 24753, 230869}}, +{14050, 18, 10823, {1, 1, 5, 1, 17, 27, 103, 63, 475, 665, 1189, 3513, 89, 2669, 1227, 20635, 121549, 248851}}, +{14051, 18, 10838, {1, 1, 3, 7, 25, 19, 117, 243, 337, 207, 903, 3751, 3309, 11955, 12651, 25359, 83419, 19701}}, +{14052, 18, 10857, {1, 1, 7, 15, 19, 21, 3, 235, 289, 185, 1175, 2291, 4003, 7753, 4775, 65321, 48957, 220261}}, +{14053, 18, 10865, {1, 3, 5, 11, 23, 21, 107, 65, 117, 329, 1085, 3555, 1183, 15241, 32663, 50985, 66753, 38023}}, +{14054, 18, 10872, {1, 1, 7, 9, 11, 49, 65, 17, 291, 435, 1221, 3829, 5467, 5181, 19891, 7091, 80673, 90495}}, +{14055, 18, 10893, {1, 1, 1, 15, 17, 47, 119, 173, 297, 477, 859, 3661, 8081, 8257, 20841, 55123, 11231, 193669}}, +{14056, 18, 10899, {1, 1, 7, 7, 27, 11, 119, 109, 199, 727, 1569, 3749, 4067, 11675, 30213, 58091, 64303, 92785}}, +{14057, 18, 10917, {1, 3, 7, 15, 15, 39, 101, 149, 299, 449, 1017, 723, 7731, 7929, 22465, 61583, 69851, 150507}}, +{14058, 18, 10935, {1, 3, 5, 15, 5, 13, 97, 127, 21, 673, 353, 3885, 5761, 11443, 10089, 23701, 85879, 42217}}, +{14059, 18, 11001, {1, 3, 1, 5, 27, 55, 31, 167, 69, 453, 925, 555, 5135, 2759, 27077, 14497, 94333, 108729}}, +{14060, 18, 11072, {1, 1, 7, 15, 11, 55, 9, 241, 55, 611, 149, 2605, 653, 1631, 15059, 6349, 12321, 124561}}, +{14061, 18, 11089, {1, 1, 1, 9, 3, 11, 95, 67, 443, 103, 1687, 2667, 4567, 4271, 15601, 27859, 4757, 53289}}, +{14062, 18, 11090, {1, 1, 5, 9, 23, 21, 1, 125, 105, 975, 1879, 1821, 5273, 7079, 25009, 10471, 29119, 73249}}, +{14063, 18, 11108, {1, 1, 7, 1, 31, 61, 17, 23, 485, 565, 1325, 1559, 4131, 751, 2071, 4719, 15925, 101207}}, +{14064, 18, 11117, {1, 1, 5, 5, 13, 53, 13, 93, 149, 139, 1429, 3605, 3545, 11193, 14139, 6093, 115727, 183105}}, +{14065, 18, 11136, {1, 1, 1, 7, 15, 37, 51, 77, 177, 967, 405, 563, 3047, 8499, 26787, 27609, 23613, 239679}}, +{14066, 18, 11148, {1, 1, 1, 5, 27, 37, 1, 129, 197, 133, 1329, 3673, 3143, 1059, 19209, 39027, 43787, 42821}}, +{14067, 18, 11153, {1, 3, 7, 5, 5, 47, 105, 121, 219, 777, 1569, 1359, 1955, 13207, 14895, 7829, 40499, 182911}}, +{14068, 18, 11181, {1, 3, 5, 7, 11, 41, 41, 155, 245, 383, 405, 2415, 5809, 5117, 31523, 16927, 76785, 113731}}, +{14069, 18, 11190, {1, 3, 3, 9, 9, 21, 13, 197, 409, 931, 305, 1129, 865, 12961, 5239, 35823, 82565, 226765}}, +{14070, 18, 11201, {1, 1, 5, 3, 17, 27, 59, 79, 359, 601, 979, 1355, 1657, 10479, 4741, 36391, 111527, 105139}}, +{14071, 18, 11204, {1, 3, 5, 9, 13, 43, 31, 1, 309, 723, 1049, 803, 1653, 2551, 26317, 49731, 67799, 129225}}, +{14072, 18, 11216, {1, 1, 5, 3, 1, 39, 95, 243, 499, 809, 1515, 981, 585, 7907, 16801, 43381, 117537, 99787}}, +{14073, 18, 11237, {1, 1, 5, 5, 25, 23, 15, 127, 33, 799, 647, 2923, 7805, 2681, 14773, 42751, 106861, 119657}}, +{14074, 18, 11259, {1, 3, 1, 1, 1, 47, 11, 179, 179, 659, 1061, 2511, 3601, 7107, 27887, 48427, 40559, 106043}}, +{14075, 18, 11279, {1, 1, 7, 11, 5, 33, 115, 195, 431, 383, 1571, 3485, 5741, 5775, 14891, 26389, 71723, 198861}}, +{14076, 18, 11282, {1, 1, 5, 5, 11, 55, 37, 57, 381, 607, 2017, 1981, 6113, 3771, 8827, 13335, 88587, 102791}}, +{14077, 18, 11304, {1, 1, 1, 11, 29, 23, 73, 149, 405, 581, 721, 281, 5315, 4675, 13013, 39003, 20335, 109855}}, +{14078, 18, 11312, {1, 1, 7, 15, 17, 57, 39, 51, 403, 979, 1543, 1235, 797, 5949, 26647, 15125, 33255, 152861}}, +{14079, 18, 11332, {1, 1, 5, 3, 25, 27, 7, 147, 257, 163, 1297, 2289, 693, 7771, 6341, 22323, 1653, 177669}}, +{14080, 18, 11341, {1, 1, 3, 9, 1, 39, 47, 231, 15, 705, 897, 3943, 6281, 6679, 21695, 29553, 39509, 83135}}, +{14081, 18, 11354, {1, 3, 3, 15, 17, 43, 15, 195, 31, 501, 529, 3117, 6031, 12101, 30687, 52465, 66171, 149591}}, +{14082, 18, 11356, {1, 1, 3, 5, 13, 17, 63, 41, 303, 671, 1225, 1761, 6159, 3203, 23611, 18309, 115027, 116325}}, +{14083, 18, 11365, {1, 1, 5, 13, 17, 5, 97, 155, 479, 525, 1403, 4063, 8167, 6443, 20627, 41399, 26897, 102841}}, +{14084, 18, 11377, {1, 3, 5, 9, 9, 27, 59, 177, 453, 659, 765, 431, 4209, 12679, 10719, 22473, 81597, 20057}}, +{14085, 18, 11417, {1, 3, 3, 1, 3, 37, 91, 97, 159, 845, 519, 2603, 6979, 6711, 29781, 53639, 103357, 111671}}, +{14086, 18, 11427, {1, 1, 3, 3, 25, 15, 27, 9, 503, 719, 153, 3071, 281, 5341, 32595, 13069, 6461, 160319}}, +{14087, 18, 11433, {1, 3, 3, 5, 29, 7, 119, 229, 117, 925, 465, 1703, 7277, 10631, 9429, 41011, 45181, 229239}}, +{14088, 18, 11434, {1, 1, 7, 7, 31, 63, 67, 55, 445, 39, 1363, 1369, 1061, 8555, 29263, 47341, 49563, 80445}}, +{14089, 18, 11439, {1, 1, 7, 1, 23, 23, 49, 205, 371, 101, 1963, 2763, 3475, 835, 20371, 51343, 9771, 69713}}, +{14090, 18, 11444, {1, 3, 3, 7, 3, 29, 7, 185, 511, 93, 1077, 3971, 2981, 16367, 12703, 36179, 47755, 42767}}, +{14091, 18, 11448, {1, 1, 1, 11, 27, 47, 43, 39, 129, 337, 1249, 3557, 2871, 13565, 19525, 46263, 49203, 148235}}, +{14092, 18, 11461, {1, 3, 5, 11, 19, 3, 83, 151, 425, 199, 847, 3751, 1729, 12457, 21819, 295, 53627, 17555}}, +{14093, 18, 11466, {1, 1, 3, 5, 7, 43, 21, 221, 93, 785, 1851, 3891, 2103, 5219, 31845, 58943, 42461, 160149}}, +{14094, 18, 11468, {1, 3, 5, 9, 25, 11, 43, 171, 445, 335, 1907, 3401, 815, 10341, 17779, 24895, 7727, 168143}}, +{14095, 18, 11473, {1, 3, 1, 5, 27, 25, 41, 13, 239, 233, 1861, 3409, 4325, 2227, 30197, 59329, 48501, 168799}}, +{14096, 18, 11489, {1, 3, 5, 13, 9, 55, 83, 185, 287, 83, 1545, 2803, 2177, 6195, 14455, 30541, 75731, 98915}}, +{14097, 18, 11499, {1, 3, 3, 5, 25, 19, 5, 203, 303, 703, 1861, 3867, 2683, 8223, 11107, 54785, 106053, 135543}}, +{14098, 18, 11516, {1, 1, 1, 13, 19, 7, 11, 197, 303, 541, 977, 2083, 4739, 7971, 2245, 11029, 77333, 16573}}, +{14099, 18, 11531, {1, 1, 1, 3, 11, 33, 77, 59, 283, 791, 365, 4027, 487, 10559, 4543, 58111, 91861, 102905}}, +{14100, 18, 11533, {1, 3, 7, 7, 15, 3, 19, 51, 339, 377, 929, 693, 1617, 14057, 7107, 27181, 7411, 202843}}, +{14101, 18, 11557, {1, 3, 3, 9, 19, 9, 73, 109, 333, 917, 1227, 2871, 4893, 11029, 5619, 27091, 9381, 213403}}, +{14102, 18, 11572, {1, 1, 1, 9, 9, 13, 77, 131, 163, 619, 169, 315, 1277, 13705, 16853, 1179, 86433, 135427}}, +{14103, 18, 11608, {1, 3, 5, 9, 15, 47, 57, 119, 325, 529, 893, 2395, 5159, 5481, 18689, 6457, 114733, 159999}}, +{14104, 18, 11635, {1, 3, 7, 5, 15, 9, 113, 235, 475, 93, 495, 2983, 2769, 5209, 7481, 49699, 46961, 246393}}, +{14105, 18, 11638, {1, 1, 7, 1, 5, 31, 113, 27, 359, 635, 955, 2795, 6289, 11621, 11059, 2259, 57443, 243143}}, +{14106, 18, 11644, {1, 3, 3, 13, 19, 33, 53, 141, 437, 415, 919, 1375, 2703, 13731, 31559, 14115, 50101, 85199}}, +{14107, 18, 11684, {1, 1, 7, 13, 27, 57, 111, 89, 89, 313, 1107, 4049, 2485, 269, 10197, 36995, 71381, 112795}}, +{14108, 18, 11702, {1, 1, 3, 7, 17, 23, 119, 123, 145, 213, 1273, 1707, 4005, 13815, 23495, 36359, 14391, 94287}}, +{14109, 18, 11740, {1, 1, 7, 1, 5, 49, 81, 193, 105, 1003, 413, 2975, 1725, 5647, 25447, 43501, 4431, 115489}}, +{14110, 18, 11749, {1, 3, 1, 5, 29, 13, 47, 37, 441, 955, 611, 853, 7225, 4959, 8739, 31703, 48095, 124085}}, +{14111, 18, 11754, {1, 1, 5, 15, 31, 9, 125, 53, 229, 631, 1031, 3923, 4417, 12637, 22093, 46985, 103417, 193443}}, +{14112, 18, 11764, {1, 1, 7, 1, 7, 9, 77, 11, 451, 615, 1259, 3097, 1513, 13641, 26845, 17399, 63661, 9231}}, +{14113, 18, 11767, {1, 1, 7, 13, 25, 47, 125, 1, 333, 599, 1133, 3527, 7451, 2849, 27227, 40015, 118185, 24737}}, +{14114, 18, 11784, {1, 1, 5, 5, 31, 15, 85, 37, 121, 677, 593, 2757, 739, 839, 3939, 36339, 116663, 955}}, +{14115, 18, 11789, {1, 3, 1, 11, 19, 13, 87, 109, 149, 215, 1811, 3813, 7699, 16189, 12841, 52081, 104545, 245819}}, +{14116, 18, 11795, {1, 1, 7, 3, 31, 17, 99, 23, 377, 131, 821, 1167, 4437, 15727, 20753, 8163, 43719, 7243}}, +{14117, 18, 11798, {1, 3, 7, 13, 21, 5, 5, 167, 9, 1009, 1013, 797, 6145, 2855, 19969, 59887, 3419, 238661}}, +{14118, 18, 11804, {1, 1, 7, 1, 5, 39, 47, 91, 185, 139, 959, 3149, 3423, 8909, 2045, 18187, 71935, 238605}}, +{14119, 18, 11818, {1, 3, 5, 11, 29, 63, 105, 43, 27, 221, 879, 181, 1499, 10343, 27135, 823, 4893, 101707}}, +{14120, 18, 11820, {1, 3, 5, 11, 5, 13, 59, 83, 315, 999, 1205, 939, 3661, 3081, 15551, 13791, 49027, 26843}}, +{14121, 18, 11860, {1, 1, 1, 5, 3, 57, 105, 169, 123, 463, 1471, 445, 743, 13353, 17661, 23437, 35451, 115919}}, +{14122, 18, 11869, {1, 1, 5, 11, 9, 3, 41, 63, 501, 861, 153, 1591, 1379, 5189, 24483, 8073, 43319, 248959}}, +{14123, 18, 11874, {1, 1, 7, 3, 29, 45, 51, 177, 1, 961, 1493, 2179, 3723, 1923, 1517, 44823, 81613, 194641}}, +{14124, 18, 11903, {1, 1, 5, 11, 17, 17, 61, 141, 5, 529, 379, 2509, 1487, 13141, 10877, 18603, 40569, 69639}}, +{14125, 18, 11916, {1, 1, 5, 15, 1, 15, 33, 219, 269, 557, 7, 3627, 183, 6975, 4627, 15235, 51863, 172393}}, +{14126, 18, 11927, {1, 3, 7, 9, 1, 37, 13, 75, 151, 153, 1693, 2835, 3093, 8847, 6721, 44135, 128931, 230745}}, +{14127, 18, 11933, {1, 1, 3, 13, 29, 63, 33, 153, 503, 137, 401, 2315, 2223, 10843, 4235, 37295, 103249, 183899}}, +{14128, 18, 11962, {1, 1, 7, 11, 15, 25, 49, 55, 39, 13, 269, 3119, 3445, 8265, 16781, 57239, 97489, 204841}}, +{14129, 18, 12009, {1, 1, 1, 1, 25, 57, 117, 199, 41, 351, 477, 1891, 7913, 14439, 25305, 64811, 57731, 184265}}, +{14130, 18, 12020, {1, 3, 3, 1, 13, 41, 33, 53, 381, 31, 1861, 2207, 1497, 15539, 23589, 53215, 36887, 134007}}, +{14131, 18, 12035, {1, 1, 5, 7, 15, 37, 13, 99, 17, 325, 643, 2943, 7967, 11531, 21301, 5125, 63201, 101203}}, +{14132, 18, 12041, {1, 1, 7, 11, 23, 21, 119, 151, 457, 929, 1917, 3123, 1133, 11861, 27889, 40421, 90949, 113237}}, +{14133, 18, 12049, {1, 3, 5, 9, 13, 35, 111, 83, 371, 589, 1507, 3559, 773, 5895, 31453, 40865, 124103, 250473}}, +{14134, 18, 12065, {1, 3, 3, 15, 11, 7, 93, 163, 285, 763, 2023, 1047, 3349, 13575, 22571, 21513, 56081, 204765}}, +{14135, 18, 12072, {1, 3, 3, 5, 19, 19, 47, 25, 49, 717, 1155, 3901, 407, 2699, 30961, 55647, 96043, 185559}}, +{14136, 18, 12098, {1, 1, 1, 7, 29, 1, 49, 87, 311, 435, 1235, 1041, 6595, 1639, 32495, 44245, 6593, 236331}}, +{14137, 18, 12100, {1, 3, 7, 9, 27, 13, 1, 41, 75, 953, 1635, 101, 7231, 13019, 14773, 17315, 120993, 111215}}, +{14138, 18, 12107, {1, 1, 5, 9, 23, 31, 87, 47, 83, 791, 1239, 1453, 5459, 4847, 7285, 32667, 45991, 103593}}, +{14139, 18, 12167, {1, 3, 1, 3, 27, 47, 97, 191, 5, 961, 1191, 3897, 6821, 4257, 22047, 31557, 52603, 251405}}, +{14140, 18, 12202, {1, 1, 5, 3, 23, 45, 103, 115, 287, 47, 93, 2761, 6467, 14031, 21881, 31631, 47605, 237635}}, +{14141, 18, 12207, {1, 3, 7, 15, 23, 41, 63, 239, 115, 655, 1949, 1969, 3145, 91, 16735, 49295, 117995, 40537}}, +{14142, 18, 12233, {1, 1, 7, 11, 5, 25, 99, 247, 11, 707, 1497, 785, 6055, 8521, 12179, 56363, 110131, 55449}}, +{14143, 18, 12269, {1, 1, 1, 7, 5, 31, 99, 7, 285, 281, 1207, 1173, 7637, 9595, 31413, 16597, 96157, 39059}}, +{14144, 18, 12290, {1, 3, 7, 7, 3, 49, 79, 69, 57, 523, 65, 2785, 2907, 11295, 16199, 25845, 51801, 67417}}, +{14145, 18, 12304, {1, 1, 3, 1, 1, 53, 57, 117, 1, 927, 1787, 3059, 7441, 14663, 10881, 2225, 29375, 93717}}, +{14146, 18, 12314, {1, 1, 5, 5, 29, 17, 67, 35, 475, 367, 155, 3463, 2339, 6239, 31073, 56169, 130309, 28981}}, +{14147, 18, 12340, {1, 1, 1, 5, 7, 53, 61, 105, 355, 817, 869, 2863, 6041, 11459, 4151, 61115, 100689, 32917}}, +{14148, 18, 12416, {1, 3, 5, 11, 31, 11, 33, 105, 437, 767, 101, 2979, 3911, 4859, 15551, 23545, 10705, 6271}}, +{14149, 18, 12425, {1, 1, 7, 5, 1, 17, 109, 205, 409, 893, 889, 2181, 6167, 14273, 25389, 50279, 5497, 191755}}, +{14150, 18, 12428, {1, 3, 7, 15, 29, 11, 79, 101, 123, 399, 1159, 1263, 3513, 13169, 2199, 41057, 98639, 227107}}, +{14151, 18, 12446, {1, 1, 3, 11, 13, 31, 51, 119, 257, 829, 337, 3267, 7673, 15459, 26681, 4041, 89429, 198607}}, +{14152, 18, 12462, {1, 3, 7, 11, 23, 29, 49, 159, 327, 415, 857, 2411, 2429, 11839, 20263, 61813, 31811, 225443}}, +{14153, 18, 12476, {1, 1, 3, 11, 7, 61, 61, 119, 431, 299, 1815, 2857, 7605, 7517, 15137, 13727, 73021, 199325}}, +{14154, 18, 12496, {1, 1, 7, 3, 5, 19, 51, 19, 59, 637, 591, 2999, 5997, 13487, 807, 4887, 112189, 226597}}, +{14155, 18, 12511, {1, 1, 1, 13, 21, 5, 55, 167, 463, 679, 891, 3597, 785, 7717, 17495, 51681, 55957, 48561}}, +{14156, 18, 12518, {1, 1, 5, 5, 9, 55, 55, 143, 193, 839, 785, 1713, 7457, 11591, 15803, 2479, 124663, 72631}}, +{14157, 18, 12530, {1, 3, 5, 9, 21, 27, 109, 91, 483, 905, 1369, 2573, 7173, 13977, 20131, 17637, 127477, 66457}}, +{14158, 18, 12532, {1, 1, 5, 7, 31, 17, 43, 153, 505, 413, 867, 769, 6947, 10815, 18805, 5957, 27715, 24529}}, +{14159, 18, 12539, {1, 3, 5, 9, 13, 41, 107, 199, 69, 1019, 2037, 3221, 1081, 15051, 6713, 46379, 17223, 85453}}, +{14160, 18, 12567, {1, 3, 3, 7, 23, 51, 45, 133, 227, 373, 1815, 3795, 5567, 7153, 25003, 64951, 75377, 174115}}, +{14161, 18, 12597, {1, 1, 7, 15, 7, 51, 33, 239, 113, 133, 1213, 327, 4841, 11297, 1093, 40013, 60843, 99845}}, +{14162, 18, 12601, {1, 1, 1, 11, 3, 37, 33, 107, 275, 747, 1451, 1787, 5029, 3101, 11575, 36555, 46181, 221643}}, +{14163, 18, 12602, {1, 1, 3, 3, 29, 53, 57, 67, 209, 153, 345, 2897, 5657, 8907, 14159, 9899, 102487, 237721}}, +{14164, 18, 12622, {1, 3, 1, 7, 7, 59, 17, 151, 423, 903, 2035, 861, 1057, 2399, 28547, 3659, 29583, 100651}}, +{14165, 18, 12693, {1, 1, 5, 15, 27, 53, 101, 17, 405, 869, 1253, 1923, 999, 7787, 23621, 4351, 48611, 47129}}, +{14166, 18, 12707, {1, 3, 7, 11, 13, 43, 61, 161, 43, 831, 2021, 579, 5353, 12451, 32261, 39885, 90051, 34407}}, +{14167, 18, 12713, {1, 1, 1, 5, 25, 19, 37, 33, 37, 59, 1399, 1587, 1517, 4261, 31215, 33777, 50447, 87049}}, +{14168, 18, 12716, {1, 1, 3, 1, 19, 17, 113, 31, 385, 135, 143, 3997, 1365, 2625, 22591, 8887, 31353, 240603}}, +{14169, 18, 12734, {1, 3, 7, 11, 21, 7, 55, 171, 233, 1007, 1321, 2903, 2457, 3941, 19667, 49115, 99119, 185989}}, +{14170, 18, 12763, {1, 3, 7, 9, 3, 31, 83, 99, 303, 443, 99, 2285, 1491, 15897, 21735, 1575, 74449, 59615}}, +{14171, 18, 12765, {1, 3, 1, 5, 29, 37, 125, 213, 277, 115, 255, 137, 6071, 13561, 23871, 48129, 120211, 168603}}, +{14172, 18, 12799, {1, 1, 7, 3, 9, 21, 93, 239, 399, 21, 9, 409, 3403, 9517, 6421, 17121, 65697, 251985}}, +{14173, 18, 12843, {1, 1, 1, 15, 27, 35, 17, 113, 471, 357, 1703, 871, 1803, 3495, 27437, 48343, 86425, 155245}}, +{14174, 18, 12853, {1, 3, 7, 11, 19, 45, 51, 195, 345, 77, 1403, 2527, 3405, 14057, 31965, 17375, 35107, 246545}}, +{14175, 18, 12865, {1, 3, 5, 7, 7, 5, 115, 39, 51, 261, 1883, 1793, 3423, 3613, 20399, 27267, 99875, 119719}}, +{14176, 18, 12866, {1, 3, 3, 9, 21, 23, 65, 69, 261, 79, 151, 3387, 7789, 13275, 30135, 52229, 40787, 181297}}, +{14177, 18, 12919, {1, 1, 5, 13, 19, 49, 111, 125, 433, 99, 1673, 2091, 5447, 9377, 9085, 4659, 75121, 105809}}, +{14178, 18, 12926, {1, 3, 7, 1, 3, 27, 107, 109, 245, 431, 1727, 3269, 2099, 10777, 21843, 63377, 47343, 126269}}, +{14179, 18, 12936, {1, 3, 1, 15, 7, 17, 107, 153, 37, 287, 1873, 573, 5025, 3735, 32545, 35693, 38083, 89569}}, +{14180, 18, 12944, {1, 3, 1, 3, 9, 51, 99, 247, 45, 703, 1231, 1895, 6309, 12137, 14697, 25441, 129701, 198811}}, +{14181, 18, 12959, {1, 3, 3, 11, 5, 43, 1, 31, 359, 563, 1013, 3475, 3935, 7855, 10085, 15279, 25109, 225643}}, +{14182, 18, 12965, {1, 3, 3, 3, 9, 47, 49, 193, 223, 23, 391, 847, 7233, 14955, 10645, 50535, 5415, 119791}}, +{14183, 18, 12980, {1, 3, 1, 7, 3, 7, 57, 189, 219, 287, 401, 1767, 5585, 13983, 18485, 56725, 71905, 33779}}, +{14184, 18, 13004, {1, 3, 5, 15, 23, 17, 115, 223, 35, 263, 345, 3459, 857, 1467, 30255, 50127, 72985, 62509}}, +{14185, 18, 13016, {1, 3, 1, 9, 3, 27, 125, 43, 47, 183, 1421, 319, 4273, 10701, 21761, 23947, 22531, 10855}}, +{14186, 18, 13019, {1, 1, 3, 15, 13, 55, 77, 1, 295, 841, 1115, 4093, 7993, 13309, 24851, 35411, 105201, 188543}}, +{14187, 18, 13037, {1, 3, 3, 5, 19, 39, 101, 19, 225, 997, 1999, 407, 3147, 15393, 30379, 26221, 21685, 114167}}, +{14188, 18, 13055, {1, 3, 3, 3, 23, 15, 3, 57, 45, 381, 47, 1839, 5491, 6775, 18477, 51443, 757, 183111}}, +{14189, 18, 13063, {1, 3, 3, 7, 31, 27, 107, 229, 1, 977, 125, 1137, 4873, 14381, 8705, 64641, 38447, 239887}}, +{14190, 18, 13098, {1, 1, 3, 13, 9, 35, 49, 187, 459, 407, 1677, 2007, 1091, 12385, 8911, 38221, 108681, 171641}}, +{14191, 18, 13103, {1, 1, 3, 5, 7, 61, 115, 155, 437, 829, 1041, 2191, 1489, 1269, 27613, 48713, 40095, 206057}}, +{14192, 18, 13106, {1, 3, 7, 1, 23, 1, 17, 215, 363, 119, 845, 987, 5619, 5857, 11307, 63171, 76921, 201767}}, +{14193, 18, 13115, {1, 1, 7, 9, 29, 23, 63, 247, 37, 199, 103, 1215, 913, 12865, 24089, 35101, 117677, 261393}}, +{14194, 18, 13143, {1, 1, 1, 1, 3, 19, 7, 159, 183, 275, 467, 3629, 6575, 3351, 26955, 29247, 119007, 67895}}, +{14195, 18, 13144, {1, 1, 7, 13, 1, 33, 31, 211, 103, 495, 417, 817, 7129, 10169, 11445, 41511, 73101, 185357}}, +{14196, 18, 13153, {1, 1, 3, 5, 3, 27, 99, 1, 425, 295, 131, 835, 1833, 4547, 8777, 29489, 60303, 191437}}, +{14197, 18, 13171, {1, 1, 5, 5, 31, 63, 71, 189, 317, 61, 385, 891, 2257, 8281, 17325, 12207, 125847, 28259}}, +{14198, 18, 13184, {1, 1, 3, 3, 19, 19, 97, 83, 495, 551, 1339, 1699, 3047, 13623, 27731, 28999, 101225, 146139}}, +{14199, 18, 13193, {1, 3, 5, 7, 25, 9, 37, 73, 239, 47, 583, 3337, 1329, 79, 30109, 12451, 10163, 62943}}, +{14200, 18, 13199, {1, 1, 3, 1, 9, 1, 31, 181, 231, 441, 1241, 233, 6049, 2401, 9867, 58911, 20599, 26321}}, +{14201, 18, 13207, {1, 3, 1, 15, 21, 43, 21, 43, 273, 865, 79, 2069, 3375, 16069, 12355, 56355, 9735, 243719}}, +{14202, 18, 13217, {1, 3, 5, 11, 13, 21, 5, 73, 423, 761, 1947, 2935, 3931, 5573, 83, 58251, 113115, 245767}}, +{14203, 18, 13227, {1, 3, 7, 7, 15, 49, 73, 211, 309, 635, 1257, 2185, 7151, 11959, 26885, 45955, 103503, 161709}}, +{14204, 18, 13232, {1, 3, 1, 15, 31, 53, 29, 35, 343, 87, 1833, 2483, 1847, 4709, 6105, 21961, 106541, 46741}}, +{14205, 18, 13276, {1, 1, 7, 7, 21, 43, 41, 51, 29, 521, 713, 3693, 483, 11777, 10453, 43691, 97585, 133193}}, +{14206, 18, 13283, {1, 3, 3, 11, 5, 45, 3, 179, 183, 255, 1291, 1795, 5721, 10911, 18395, 64349, 23141, 99481}}, +{14207, 18, 13307, {1, 1, 1, 5, 5, 25, 61, 169, 475, 953, 617, 559, 5945, 16377, 30063, 30079, 83305, 81745}}, +{14208, 18, 13317, {1, 1, 5, 11, 29, 59, 113, 37, 153, 807, 135, 2639, 4535, 7079, 6387, 63523, 89669, 198803}}, +{14209, 18, 13330, {1, 1, 7, 7, 19, 23, 71, 51, 165, 733, 1427, 2473, 331, 5027, 9299, 20617, 126775, 91619}}, +{14210, 18, 13345, {1, 3, 5, 7, 31, 35, 117, 235, 29, 677, 1243, 281, 6287, 535, 4783, 37781, 130929, 14193}}, +{14211, 18, 13363, {1, 1, 5, 3, 25, 1, 29, 109, 289, 631, 41, 361, 5537, 9657, 7475, 63749, 50325, 169791}}, +{14212, 18, 13387, {1, 3, 3, 15, 21, 53, 85, 43, 341, 907, 475, 3257, 2541, 10397, 30847, 63681, 121427, 192135}}, +{14213, 18, 13426, {1, 1, 1, 1, 9, 59, 59, 233, 335, 345, 1749, 4007, 1833, 7789, 21015, 48939, 15967, 201321}}, +{14214, 18, 13428, {1, 1, 1, 5, 11, 9, 101, 243, 391, 1003, 1019, 311, 3707, 10223, 21627, 8237, 53861, 159785}}, +{14215, 18, 13431, {1, 3, 7, 15, 5, 3, 109, 197, 507, 947, 833, 1161, 4021, 5575, 8081, 45381, 112597, 70407}}, +{14216, 18, 13489, {1, 1, 3, 1, 7, 63, 63, 53, 481, 1003, 43, 2503, 2303, 12593, 21403, 2965, 5377, 91491}}, +{14217, 18, 13501, {1, 1, 1, 1, 29, 45, 49, 73, 253, 197, 1245, 1509, 4747, 6207, 28321, 59193, 112687, 83719}}, +{14218, 18, 13533, {1, 1, 7, 3, 11, 51, 23, 83, 185, 643, 1427, 227, 2261, 12521, 27033, 5129, 53111, 34975}}, +{14219, 18, 13589, {1, 1, 7, 3, 5, 41, 55, 175, 447, 603, 723, 2141, 1189, 4921, 16905, 2463, 83641, 247241}}, +{14220, 18, 13600, {1, 3, 3, 13, 5, 11, 95, 59, 391, 319, 1675, 329, 7559, 11585, 28905, 27843, 106667, 15531}}, +{14221, 18, 13603, {1, 3, 3, 3, 27, 17, 103, 115, 447, 657, 267, 2541, 665, 7819, 4155, 32191, 60999, 48737}}, +{14222, 18, 13623, {1, 1, 5, 7, 7, 49, 87, 171, 457, 149, 1699, 4081, 3913, 7889, 29517, 3339, 33139, 8925}}, +{14223, 18, 13665, {1, 1, 1, 9, 11, 51, 87, 115, 429, 505, 1665, 2361, 5811, 1621, 12727, 33703, 52255, 93835}}, +{14224, 18, 13672, {1, 3, 3, 5, 27, 11, 35, 49, 281, 607, 1791, 4065, 5103, 5253, 975, 20353, 38253, 139363}}, +{14225, 18, 13675, {1, 1, 5, 9, 29, 15, 37, 141, 445, 751, 1219, 2217, 7207, 14981, 21113, 3313, 107127, 135567}}, +{14226, 18, 13708, {1, 3, 3, 15, 1, 41, 23, 27, 167, 609, 913, 631, 923, 6939, 9793, 57869, 126577, 145271}}, +{14227, 18, 13713, {1, 1, 3, 7, 27, 47, 127, 5, 213, 575, 559, 2541, 3457, 2903, 19529, 53395, 105353, 212607}}, +{14228, 18, 13720, {1, 3, 1, 13, 27, 41, 31, 111, 371, 1019, 241, 2075, 2571, 10739, 28163, 16093, 41127, 69783}}, +{14229, 18, 13730, {1, 1, 5, 1, 21, 9, 15, 141, 287, 675, 1721, 2291, 6587, 7503, 6363, 9109, 33547, 259627}}, +{14230, 18, 13735, {1, 3, 7, 3, 3, 53, 7, 153, 183, 761, 191, 3735, 2619, 11153, 19601, 33855, 82345, 72755}}, +{14231, 18, 13767, {1, 3, 1, 9, 19, 21, 41, 105, 281, 833, 981, 2733, 7179, 14691, 18365, 56283, 53719, 191601}}, +{14232, 18, 13773, {1, 1, 7, 11, 23, 1, 55, 213, 105, 517, 809, 4087, 825, 7011, 15701, 54047, 123831, 49833}}, +{14233, 18, 13792, {1, 1, 7, 13, 27, 9, 111, 57, 357, 95, 1489, 887, 5273, 2833, 8757, 9371, 44637, 94939}}, +{14234, 18, 13843, {1, 1, 3, 5, 1, 17, 43, 31, 509, 353, 401, 1077, 7567, 9657, 15065, 32017, 8491, 214477}}, +{14235, 18, 13891, {1, 1, 1, 15, 7, 59, 41, 99, 101, 845, 1479, 2153, 4281, 12839, 237, 54095, 125873, 57165}}, +{14236, 18, 13946, {1, 3, 7, 13, 5, 17, 1, 249, 309, 351, 709, 3943, 7775, 6449, 26611, 54019, 121015, 213535}}, +{14237, 18, 13967, {1, 1, 1, 5, 7, 25, 33, 149, 291, 777, 161, 2729, 117, 4999, 16781, 23383, 85161, 71689}}, +{14238, 18, 13976, {1, 1, 3, 11, 5, 63, 119, 165, 45, 135, 1723, 811, 1259, 11055, 28625, 37559, 128401, 100715}}, +{14239, 18, 14017, {1, 3, 7, 1, 1, 39, 11, 255, 423, 289, 1359, 2827, 4637, 4089, 26659, 58701, 117403, 133971}}, +{14240, 18, 14030, {1, 1, 7, 1, 25, 9, 127, 121, 147, 831, 17, 3521, 1535, 10931, 17305, 56671, 22425, 157341}}, +{14241, 18, 14041, {1, 3, 1, 15, 5, 55, 95, 95, 169, 497, 739, 2031, 339, 13461, 20619, 24553, 81805, 90789}}, +{14242, 18, 14054, {1, 1, 7, 7, 7, 19, 15, 203, 287, 673, 1033, 3857, 2761, 10835, 11039, 62329, 37893, 6119}}, +{14243, 18, 14058, {1, 1, 3, 11, 19, 35, 55, 9, 399, 443, 583, 89, 2387, 747, 9551, 9907, 96871, 175457}}, +{14244, 18, 14060, {1, 1, 3, 1, 11, 57, 121, 89, 491, 133, 545, 683, 5751, 839, 25975, 44725, 59863, 142671}}, +{14245, 18, 14063, {1, 1, 3, 1, 23, 1, 111, 177, 1, 103, 1933, 2783, 6857, 51, 14547, 5945, 14757, 39783}}, +{14246, 18, 14078, {1, 3, 7, 13, 25, 13, 51, 247, 325, 361, 1225, 15, 1929, 1729, 25293, 59495, 82111, 101809}}, +{14247, 18, 14080, {1, 3, 3, 1, 19, 37, 67, 85, 105, 589, 1273, 2995, 8017, 1613, 22189, 2549, 22671, 72813}}, +{14248, 18, 14089, {1, 3, 7, 9, 15, 41, 25, 43, 411, 663, 387, 2861, 3627, 5839, 733, 53479, 76241, 116763}}, +{14249, 18, 14131, {1, 3, 3, 3, 17, 5, 73, 153, 133, 247, 881, 2853, 6059, 2259, 10181, 63251, 107089, 22579}}, +{14250, 18, 14134, {1, 3, 1, 5, 11, 15, 17, 235, 23, 15, 521, 235, 4137, 12705, 24775, 18197, 56295, 28035}}, +{14251, 18, 14137, {1, 3, 5, 5, 13, 9, 77, 69, 19, 755, 1663, 1499, 1049, 12935, 28835, 55413, 71511, 221223}}, +{14252, 18, 14188, {1, 1, 1, 1, 27, 31, 21, 39, 197, 519, 1621, 3703, 2541, 8865, 21947, 53605, 114551, 205697}}, +{14253, 18, 14215, {1, 1, 1, 13, 11, 53, 41, 245, 495, 275, 385, 3071, 1913, 11135, 8571, 58551, 39049, 5459}}, +{14254, 18, 14222, {1, 3, 5, 5, 11, 63, 25, 173, 57, 441, 1749, 79, 3191, 7733, 13111, 23453, 118399, 101845}}, +{14255, 18, 14249, {1, 1, 3, 11, 29, 25, 119, 39, 65, 623, 517, 1325, 5981, 8381, 32031, 25585, 105537, 214241}}, +{14256, 18, 14292, {1, 3, 5, 9, 21, 43, 13, 69, 109, 311, 1893, 1941, 2491, 7815, 4067, 56749, 33761, 191145}}, +{14257, 18, 14320, {1, 1, 1, 7, 9, 5, 123, 149, 65, 729, 1967, 3089, 3757, 2333, 24587, 36047, 118105, 146277}}, +{14258, 18, 14339, {1, 3, 7, 13, 9, 35, 39, 219, 161, 93, 275, 3619, 353, 14595, 24673, 54753, 117175, 81891}}, +{14259, 18, 14346, {1, 3, 3, 13, 15, 61, 95, 135, 271, 595, 1103, 877, 747, 2535, 7733, 25509, 65673, 62089}}, +{14260, 18, 14353, {1, 3, 3, 5, 21, 21, 67, 5, 373, 377, 61, 2337, 489, 5801, 23203, 42377, 7801, 178095}}, +{14261, 18, 14365, {1, 1, 7, 5, 25, 17, 61, 133, 181, 261, 1627, 1615, 6851, 4763, 30353, 53349, 7545, 66733}}, +{14262, 18, 14384, {1, 3, 5, 7, 29, 3, 85, 231, 121, 669, 1925, 403, 777, 10605, 24125, 60819, 8253, 81209}}, +{14263, 18, 14414, {1, 1, 5, 3, 5, 5, 1, 53, 9, 445, 1339, 2643, 5527, 13757, 9409, 31993, 80845, 97863}}, +{14264, 18, 14428, {1, 1, 7, 13, 29, 49, 97, 89, 319, 349, 1739, 3615, 1113, 11791, 17429, 37195, 1159, 32211}}, +{14265, 18, 14435, {1, 3, 5, 11, 9, 61, 109, 167, 119, 499, 1157, 3615, 5773, 8839, 27915, 47837, 14945, 187225}}, +{14266, 18, 14483, {1, 1, 5, 1, 9, 3, 7, 179, 323, 279, 43, 1337, 4813, 9917, 2033, 34657, 130769, 208089}}, +{14267, 18, 14486, {1, 1, 3, 1, 31, 57, 57, 73, 21, 661, 1861, 1661, 7619, 12155, 23123, 49751, 130697, 74143}}, +{14268, 18, 14506, {1, 3, 3, 13, 11, 61, 95, 75, 227, 491, 463, 597, 2721, 12323, 26195, 53657, 44413, 68965}}, +{14269, 18, 14513, {1, 1, 7, 11, 5, 51, 103, 123, 203, 911, 203, 1641, 7009, 9479, 303, 37649, 32751, 172777}}, +{14270, 18, 14520, {1, 1, 3, 7, 11, 59, 111, 5, 271, 863, 269, 3457, 489, 10877, 8645, 62567, 24893, 201587}}, +{14271, 18, 14526, {1, 1, 5, 7, 29, 23, 127, 151, 371, 121, 1103, 3951, 3107, 15563, 6243, 1631, 75065, 107681}}, +{14272, 18, 14528, {1, 1, 7, 15, 27, 45, 43, 83, 461, 673, 715, 3245, 313, 13731, 21981, 58853, 46569, 165463}}, +{14273, 18, 14533, {1, 1, 1, 9, 7, 53, 63, 43, 3, 187, 1325, 447, 5113, 4993, 21807, 24329, 4499, 30067}}, +{14274, 18, 14576, {1, 3, 1, 9, 21, 45, 111, 231, 407, 213, 1977, 2269, 2323, 4595, 30427, 54753, 95049, 195409}}, +{14275, 18, 14599, {1, 1, 1, 9, 29, 43, 89, 201, 499, 329, 847, 3831, 5403, 13001, 6037, 14371, 25805, 169237}}, +{14276, 18, 14613, {1, 1, 1, 11, 29, 61, 61, 203, 91, 189, 1603, 939, 6575, 3195, 4731, 44923, 33627, 21683}}, +{14277, 18, 14639, {1, 3, 3, 11, 7, 57, 93, 181, 479, 99, 681, 2875, 7649, 5555, 27087, 6841, 69859, 153689}}, +{14278, 18, 14644, {1, 1, 1, 9, 17, 45, 97, 47, 91, 879, 1463, 3041, 2917, 769, 13675, 26489, 88559, 120991}}, +{14279, 18, 14653, {1, 3, 7, 1, 11, 13, 43, 9, 483, 399, 793, 3965, 2375, 4957, 17747, 50905, 56987, 231265}}, +{14280, 18, 14662, {1, 3, 3, 13, 23, 45, 69, 67, 397, 437, 1993, 2569, 8035, 8531, 27623, 53567, 123189, 242515}}, +{14281, 18, 14695, {1, 1, 1, 3, 5, 9, 21, 227, 499, 205, 431, 3711, 5307, 15773, 11337, 6349, 123507, 95941}}, +{14282, 18, 14704, {1, 3, 7, 1, 13, 15, 101, 91, 209, 611, 537, 1427, 101, 2619, 10513, 44323, 92745, 249127}}, +{14283, 18, 14713, {1, 3, 3, 1, 21, 7, 79, 241, 273, 567, 605, 2371, 5427, 15147, 20139, 40987, 75551, 236213}}, +{14284, 18, 14725, {1, 1, 7, 11, 25, 19, 77, 209, 313, 663, 115, 3697, 3641, 12461, 9877, 18331, 70809, 78923}}, +{14285, 18, 14783, {1, 1, 5, 5, 29, 45, 7, 207, 1, 357, 1089, 3861, 4161, 3209, 27845, 20947, 68909, 125179}}, +{14286, 18, 14810, {1, 3, 1, 13, 17, 11, 27, 165, 179, 489, 1611, 2801, 2385, 2971, 6777, 16149, 59811, 151043}}, +{14287, 18, 14816, {1, 1, 3, 3, 17, 53, 121, 227, 7, 71, 1855, 639, 5135, 6349, 7163, 22997, 112551, 44167}}, +{14288, 18, 14822, {1, 3, 1, 11, 15, 9, 125, 213, 485, 291, 1781, 3621, 7529, 13353, 13903, 24151, 130253, 187097}}, +{14289, 18, 14828, {1, 3, 1, 3, 1, 61, 39, 157, 455, 945, 739, 589, 7259, 7149, 16455, 12649, 72003, 152419}}, +{14290, 18, 14883, {1, 1, 3, 3, 31, 23, 17, 255, 319, 907, 563, 2571, 2149, 15323, 20289, 46061, 32769, 184353}}, +{14291, 18, 14889, {1, 3, 7, 9, 21, 51, 27, 13, 495, 909, 2039, 1435, 4791, 10037, 30119, 3405, 22535, 42247}}, +{14292, 18, 14904, {1, 1, 3, 15, 11, 25, 123, 149, 185, 635, 473, 527, 433, 10373, 18205, 853, 94619, 202507}}, +{14293, 18, 14917, {1, 1, 7, 15, 7, 39, 7, 69, 157, 533, 369, 4031, 1335, 4279, 8049, 28491, 103753, 257477}}, +{14294, 18, 14927, {1, 3, 1, 15, 29, 51, 113, 77, 5, 961, 1863, 1477, 5009, 9519, 32029, 2367, 55705, 149597}}, +{14295, 18, 14941, {1, 3, 1, 5, 19, 43, 49, 107, 59, 693, 867, 3011, 2703, 3633, 24567, 52621, 35839, 134823}}, +{14296, 18, 14946, {1, 3, 3, 7, 19, 15, 81, 105, 23, 375, 451, 3017, 1263, 7589, 24453, 21885, 57651, 52613}}, +{14297, 18, 14952, {1, 1, 3, 7, 3, 59, 19, 1, 3, 243, 1891, 2041, 4707, 15557, 28885, 5959, 22517, 237131}}, +{14298, 18, 15010, {1, 3, 7, 11, 25, 33, 105, 15, 245, 247, 1357, 1255, 7463, 4815, 13727, 41687, 112425, 58827}}, +{14299, 18, 15012, {1, 1, 7, 1, 19, 31, 37, 201, 217, 127, 927, 763, 6359, 9951, 2581, 49171, 104305, 215923}}, +{14300, 18, 15033, {1, 1, 7, 7, 13, 9, 9, 139, 363, 85, 1703, 3615, 2545, 15991, 20677, 12109, 54951, 2171}}, +{14301, 18, 15041, {1, 3, 1, 13, 27, 3, 37, 195, 185, 829, 815, 1621, 2917, 8643, 29071, 45523, 38475, 243505}}, +{14302, 18, 15047, {1, 1, 7, 3, 19, 29, 91, 85, 331, 231, 1609, 2583, 1091, 4191, 29929, 55377, 105077, 168425}}, +{14303, 18, 15066, {1, 1, 5, 3, 29, 35, 3, 61, 389, 339, 705, 473, 2075, 7373, 9699, 38809, 60415, 66423}}, +{14304, 18, 15068, {1, 3, 1, 5, 17, 25, 17, 37, 335, 787, 1891, 1861, 4325, 12721, 9675, 13671, 18655, 235443}}, +{14305, 18, 15072, {1, 3, 3, 5, 23, 13, 83, 191, 263, 325, 1847, 1717, 7089, 15709, 26567, 44489, 66523, 3107}}, +{14306, 18, 15095, {1, 3, 7, 7, 25, 29, 63, 55, 9, 481, 899, 669, 5481, 11227, 1637, 17017, 124509, 102775}}, +{14307, 18, 15150, {1, 1, 1, 5, 21, 41, 101, 93, 129, 1023, 561, 2969, 1525, 2929, 32729, 54513, 4359, 28745}}, +{14308, 18, 15152, {1, 1, 5, 13, 15, 13, 79, 9, 257, 535, 861, 2703, 6161, 6659, 10369, 7, 117467, 146651}}, +{14309, 18, 15175, {1, 1, 3, 13, 31, 11, 43, 95, 441, 921, 1323, 343, 5339, 13149, 19643, 24253, 32055, 180327}}, +{14310, 18, 15176, {1, 1, 5, 15, 11, 27, 109, 149, 255, 1021, 249, 1913, 5213, 301, 9939, 49779, 26097, 66007}}, +{14311, 18, 15210, {1, 3, 1, 11, 15, 33, 53, 159, 433, 167, 1107, 3577, 6231, 8309, 28125, 55381, 127309, 14459}}, +{14312, 18, 15245, {1, 3, 5, 9, 7, 3, 45, 139, 133, 359, 537, 805, 3931, 5181, 915, 63317, 86227, 231573}}, +{14313, 18, 15258, {1, 1, 1, 3, 11, 31, 97, 127, 117, 151, 711, 2457, 2777, 3855, 21829, 7913, 30785, 141449}}, +{14314, 18, 15263, {1, 3, 7, 13, 11, 17, 65, 63, 289, 851, 1929, 4021, 105, 5207, 17085, 64119, 48659, 31687}}, +{14315, 18, 15264, {1, 1, 7, 11, 31, 57, 63, 251, 341, 727, 505, 1851, 783, 16191, 9335, 39421, 14793, 238215}}, +{14316, 18, 15279, {1, 3, 3, 11, 23, 13, 119, 195, 117, 579, 693, 3059, 2967, 12791, 26905, 28527, 13393, 11869}}, +{14317, 18, 15301, {1, 3, 7, 11, 23, 7, 61, 143, 409, 309, 651, 3321, 4027, 1351, 10339, 18451, 18447, 235665}}, +{14318, 18, 15306, {1, 1, 1, 9, 13, 21, 7, 65, 103, 789, 973, 475, 2831, 13337, 18989, 40573, 105375, 2221}}, +{14319, 18, 15313, {1, 3, 5, 15, 3, 59, 115, 61, 365, 653, 523, 3927, 8175, 6751, 32561, 55919, 64903, 139005}}, +{14320, 18, 15329, {1, 3, 3, 13, 1, 7, 51, 63, 179, 525, 1899, 373, 3797, 6329, 5539, 32669, 65903, 154993}}, +{14321, 18, 15341, {1, 3, 1, 1, 31, 53, 87, 39, 317, 71, 1899, 925, 4719, 11645, 27125, 50391, 116491, 219271}}, +{14322, 18, 15367, {1, 3, 7, 13, 7, 23, 1, 57, 333, 277, 893, 3245, 1417, 13115, 21835, 25879, 91305, 54691}}, +{14323, 18, 15368, {1, 3, 1, 11, 27, 5, 109, 69, 221, 453, 299, 517, 609, 11959, 27789, 33107, 46559, 121673}}, +{14324, 18, 15386, {1, 3, 5, 7, 27, 7, 119, 169, 129, 643, 173, 2479, 6163, 11159, 11897, 57153, 11347, 135337}}, +{14325, 18, 15404, {1, 1, 5, 13, 13, 59, 21, 13, 429, 601, 267, 1635, 2579, 12053, 31583, 14847, 78187, 217099}}, +{14326, 18, 15422, {1, 3, 5, 9, 5, 3, 125, 159, 411, 15, 479, 933, 6307, 9707, 23491, 6501, 70993, 161365}}, +{14327, 18, 15436, {1, 1, 7, 7, 3, 33, 87, 177, 283, 825, 1935, 1545, 7071, 9975, 1795, 48277, 115725, 173439}}, +{14328, 18, 15444, {1, 3, 3, 9, 19, 63, 17, 119, 13, 337, 2021, 2221, 3237, 3253, 18661, 15479, 59377, 76095}}, +{14329, 18, 15467, {1, 1, 1, 11, 17, 15, 93, 249, 333, 171, 575, 3251, 5413, 3587, 22807, 29273, 56461, 97801}}, +{14330, 18, 15498, {1, 3, 3, 11, 13, 7, 27, 167, 389, 693, 1473, 555, 1603, 3167, 3985, 3841, 100283, 195253}}, +{14331, 18, 15503, {1, 3, 7, 1, 23, 7, 89, 231, 85, 797, 1935, 2557, 4365, 2221, 21069, 44055, 77723, 226547}}, +{14332, 18, 15528, {1, 3, 1, 5, 5, 49, 47, 187, 71, 903, 1279, 3219, 8041, 10915, 5249, 17755, 80077, 3479}}, +{14333, 18, 15534, {1, 1, 3, 13, 5, 53, 35, 25, 183, 791, 1651, 1041, 1221, 2171, 26221, 20649, 126851, 163047}}, +{14334, 18, 15536, {1, 1, 5, 9, 29, 3, 75, 31, 385, 293, 171, 3023, 2075, 14541, 30879, 13895, 67637, 87831}}, +{14335, 18, 15559, {1, 3, 5, 7, 3, 41, 115, 213, 23, 895, 361, 27, 5839, 12447, 13829, 29183, 106539, 134891}}, +{14336, 18, 15565, {1, 3, 7, 7, 11, 39, 99, 229, 195, 633, 837, 3697, 1161, 15119, 20831, 27371, 92195, 26993}}, +{14337, 18, 15583, {1, 1, 5, 9, 25, 17, 5, 169, 475, 73, 1451, 2057, 3671, 12801, 9671, 57427, 25321, 154969}}, +{14338, 18, 15599, {1, 3, 5, 11, 25, 23, 9, 145, 341, 339, 1855, 981, 8041, 569, 19851, 29521, 21767, 136505}}, +{14339, 18, 15602, {1, 1, 1, 1, 3, 9, 101, 253, 475, 529, 387, 1893, 5509, 5763, 29555, 13307, 30001, 105057}}, +{14340, 18, 15616, {1, 3, 3, 5, 17, 23, 127, 161, 375, 817, 1229, 1197, 1097, 3053, 14351, 21213, 12501, 137397}}, +{14341, 18, 15626, {1, 1, 1, 9, 7, 1, 57, 185, 281, 65, 181, 2483, 4739, 4353, 29837, 40613, 32489, 23317}}, +{14342, 18, 15667, {1, 1, 3, 9, 5, 35, 43, 191, 409, 95, 537, 2465, 515, 1633, 20887, 32535, 43863, 199885}}, +{14343, 18, 15684, {1, 3, 3, 13, 19, 49, 41, 51, 3, 979, 1623, 3323, 7711, 3707, 29417, 58011, 114467, 227499}}, +{14344, 18, 15711, {1, 1, 1, 11, 21, 7, 23, 51, 39, 25, 1971, 213, 369, 9149, 12845, 57631, 16597, 22031}}, +{14345, 18, 15745, {1, 3, 3, 11, 27, 59, 71, 37, 461, 353, 2041, 1961, 4643, 6953, 18129, 60337, 82769, 20819}}, +{14346, 18, 15763, {1, 1, 3, 11, 25, 19, 17, 5, 503, 227, 2021, 733, 2867, 201, 25779, 49811, 81167, 95437}}, +{14347, 18, 15779, {1, 3, 3, 15, 7, 53, 35, 143, 27, 937, 215, 3249, 4151, 1933, 25267, 18047, 35131, 25903}}, +{14348, 18, 15811, {1, 1, 1, 3, 3, 39, 71, 99, 291, 97, 1389, 3803, 2881, 9765, 11277, 20071, 15133, 37349}}, +{14349, 18, 15814, {1, 1, 7, 11, 9, 55, 1, 241, 391, 935, 1555, 3585, 1807, 10057, 2633, 14023, 14409, 199643}}, +{14350, 18, 15817, {1, 3, 3, 3, 19, 9, 57, 237, 107, 869, 147, 2673, 5271, 8999, 20723, 63017, 75989, 20131}}, +{14351, 18, 15853, {1, 3, 3, 3, 25, 11, 61, 77, 119, 657, 2011, 3489, 7835, 4473, 2531, 65231, 104797, 161443}}, +{14352, 18, 15881, {1, 1, 5, 5, 11, 63, 25, 93, 181, 797, 367, 3357, 5291, 5087, 28661, 34093, 75195, 165345}}, +{14353, 18, 15890, {1, 1, 1, 7, 17, 1, 77, 149, 59, 633, 1551, 1305, 7677, 8671, 17457, 64037, 104451, 112387}}, +{14354, 18, 15899, {1, 3, 1, 1, 15, 33, 37, 187, 247, 261, 1101, 3451, 7747, 12197, 22465, 30589, 12573, 204517}}, +{14355, 18, 15905, {1, 3, 3, 11, 3, 39, 71, 139, 145, 139, 101, 2815, 3457, 14033, 4531, 42133, 54147, 71259}}, +{14356, 18, 15915, {1, 3, 1, 1, 23, 37, 19, 113, 443, 57, 439, 2929, 3835, 5431, 11189, 4539, 72531, 124453}}, +{14357, 18, 15937, {1, 3, 3, 5, 3, 17, 21, 217, 41, 665, 1565, 3753, 5289, 9789, 29205, 16453, 88979, 171387}}, +{14358, 18, 15950, {1, 3, 3, 13, 27, 15, 15, 223, 231, 311, 311, 1143, 8113, 13863, 3191, 51103, 109437, 245557}}, +{14359, 18, 16002, {1, 1, 3, 13, 11, 59, 7, 191, 477, 683, 353, 2845, 7623, 9035, 453, 48429, 40111, 162859}}, +{14360, 18, 16041, {1, 3, 7, 5, 29, 37, 55, 59, 259, 851, 861, 1951, 7847, 8537, 30107, 2999, 59137, 155615}}, +{14361, 18, 16042, {1, 3, 7, 11, 3, 13, 73, 147, 393, 327, 1289, 37, 795, 1413, 19215, 28345, 124301, 23135}}, +{14362, 18, 16052, {1, 1, 5, 11, 29, 17, 107, 69, 433, 845, 1351, 2551, 807, 15315, 15511, 39475, 84879, 129405}}, +{14363, 18, 16121, {1, 3, 3, 9, 15, 3, 23, 5, 211, 871, 689, 2319, 39, 2215, 25171, 43169, 113715, 186049}}, +{14364, 18, 16132, {1, 1, 3, 7, 3, 37, 23, 9, 453, 649, 373, 1273, 1539, 6221, 27469, 44675, 13513, 131179}}, +{14365, 18, 16136, {1, 3, 1, 5, 29, 41, 119, 133, 37, 761, 1193, 2311, 4945, 7337, 17027, 12873, 51489, 160633}}, +{14366, 18, 16150, {1, 3, 1, 3, 21, 63, 75, 115, 105, 223, 933, 445, 5789, 4611, 13609, 2873, 16679, 222895}}, +{14367, 18, 16153, {1, 1, 7, 5, 17, 13, 15, 217, 193, 863, 1319, 2337, 3055, 14879, 8669, 5705, 42965, 166443}}, +{14368, 18, 16180, {1, 1, 7, 11, 3, 55, 57, 131, 289, 843, 1693, 881, 6737, 5557, 18365, 12393, 38479, 189177}}, +{14369, 18, 16190, {1, 1, 3, 5, 3, 59, 13, 123, 397, 479, 79, 569, 535, 2529, 26225, 43475, 76925, 187763}}, +{14370, 18, 16192, {1, 1, 5, 15, 15, 37, 1, 97, 489, 331, 1499, 1759, 3621, 5373, 1425, 6477, 45805, 235511}}, +{14371, 18, 16195, {1, 3, 1, 3, 7, 51, 55, 157, 61, 751, 1881, 4093, 2557, 11129, 23239, 16335, 8949, 205007}}, +{14372, 18, 16210, {1, 1, 1, 1, 13, 21, 67, 141, 85, 1023, 223, 747, 1951, 10279, 6399, 49887, 100437, 76757}}, +{14373, 18, 16225, {1, 1, 3, 11, 1, 51, 29, 33, 173, 769, 879, 2883, 417, 15031, 13377, 63919, 118803, 87969}}, +{14374, 18, 16256, {1, 1, 1, 5, 1, 1, 17, 153, 81, 691, 961, 3399, 5005, 10617, 18467, 13775, 34905, 241349}}, +{14375, 18, 16266, {1, 1, 1, 13, 7, 37, 57, 187, 389, 575, 1827, 2017, 4541, 10513, 23409, 30945, 126855, 239657}}, +{14376, 18, 16274, {1, 1, 5, 5, 17, 41, 83, 177, 285, 695, 29, 1653, 953, 6377, 13571, 58663, 9265, 100759}}, +{14377, 18, 16302, {1, 3, 5, 3, 5, 13, 27, 153, 207, 699, 1805, 947, 979, 2719, 389, 61953, 16991, 160073}}, +{14378, 18, 16310, {1, 1, 7, 13, 17, 37, 113, 185, 239, 455, 1557, 3201, 1111, 4875, 23197, 41883, 70507, 255047}}, +{14379, 18, 16322, {1, 3, 5, 11, 9, 51, 47, 137, 413, 1015, 259, 1829, 6043, 11757, 22317, 15155, 107827, 171003}}, +{14380, 18, 16339, {1, 1, 1, 13, 27, 7, 49, 91, 285, 13, 2007, 3469, 1223, 2483, 16155, 8413, 10529, 224195}}, +{14381, 18, 16345, {1, 1, 7, 3, 9, 49, 119, 81, 331, 187, 1695, 1729, 533, 6359, 7053, 34665, 37541, 100225}}, +{14382, 18, 16348, {1, 3, 7, 1, 7, 35, 115, 91, 479, 515, 1249, 121, 2885, 16383, 1777, 44205, 86459, 255885}}, +{14383, 18, 16357, {1, 1, 7, 13, 13, 27, 11, 49, 221, 829, 1787, 2889, 3875, 1679, 25333, 1323, 9813, 189373}}, +{14384, 18, 16382, {1, 3, 7, 5, 31, 5, 117, 77, 209, 619, 191, 2969, 2221, 15339, 11461, 64201, 130461, 204467}}, +{14385, 18, 16402, {1, 3, 1, 1, 29, 5, 91, 31, 313, 901, 1501, 2837, 3615, 7765, 341, 13873, 21663, 260637}}, +{14386, 18, 16461, {1, 1, 1, 9, 1, 41, 97, 15, 141, 901, 1309, 3341, 4871, 16033, 12343, 1555, 94989, 78295}}, +{14387, 18, 16469, {1, 1, 7, 3, 3, 15, 1, 29, 445, 59, 475, 3033, 4227, 3219, 6093, 58953, 92179, 49343}}, +{14388, 18, 16474, {1, 1, 5, 3, 27, 25, 109, 13, 219, 983, 131, 2517, 1161, 16063, 32737, 6077, 91183, 37457}}, +{14389, 18, 16483, {1, 3, 3, 1, 3, 1, 85, 147, 17, 543, 1475, 3873, 3719, 2737, 30977, 15953, 66077, 258979}}, +{14390, 18, 16497, {1, 3, 5, 1, 29, 9, 21, 51, 5, 985, 1177, 3287, 2183, 7301, 13713, 53403, 38439, 195863}}, +{14391, 18, 16523, {1, 1, 7, 15, 31, 53, 47, 173, 477, 439, 751, 1019, 3371, 9319, 17995, 29029, 90657, 209277}}, +{14392, 18, 16534, {1, 1, 5, 5, 17, 5, 59, 115, 375, 231, 1891, 1321, 3639, 16117, 32639, 28793, 68213, 41091}}, +{14393, 18, 16550, {1, 3, 5, 11, 17, 15, 13, 11, 459, 767, 849, 1407, 6611, 6409, 21515, 63175, 127155, 171959}}, +{14394, 18, 16564, {1, 1, 5, 1, 17, 49, 61, 161, 399, 137, 845, 2673, 2431, 15343, 389, 42337, 23031, 94811}}, +{14395, 18, 16582, {1, 1, 1, 9, 21, 23, 75, 177, 351, 197, 1619, 2443, 6829, 3773, 16399, 31949, 44975, 221363}}, +{14396, 18, 16591, {1, 1, 3, 1, 11, 19, 103, 61, 135, 863, 1427, 2657, 4553, 1277, 20249, 3973, 25467, 18847}}, +{14397, 18, 16609, {1, 3, 3, 13, 17, 31, 19, 163, 323, 195, 603, 4069, 3181, 12069, 22117, 44229, 23585, 202785}}, +{14398, 18, 16642, {1, 1, 7, 5, 17, 3, 77, 111, 491, 829, 1375, 2829, 5599, 14057, 21387, 52345, 108281, 211285}}, +{14399, 18, 16648, {1, 3, 3, 1, 17, 43, 71, 13, 321, 393, 1803, 727, 5101, 13485, 8693, 60505, 13893, 3467}}, +{14400, 18, 16656, {1, 1, 5, 1, 23, 31, 121, 15, 215, 215, 1113, 3335, 7431, 4863, 31429, 49903, 59403, 60797}}, +{14401, 18, 16662, {1, 3, 3, 9, 21, 43, 61, 171, 361, 323, 1895, 3647, 729, 8809, 9351, 14573, 93593, 17485}}, +{14402, 18, 16665, {1, 3, 3, 7, 7, 19, 45, 247, 203, 757, 1941, 3753, 5317, 13239, 18945, 26173, 43929, 66889}}, +{14403, 18, 16678, {1, 1, 1, 15, 5, 17, 11, 21, 193, 941, 517, 191, 6067, 8403, 27339, 31035, 34767, 28675}}, +{14404, 18, 16701, {1, 3, 1, 7, 27, 59, 27, 7, 491, 551, 867, 3693, 391, 9799, 11051, 28347, 57555, 23079}}, +{14405, 18, 16713, {1, 3, 3, 1, 25, 21, 63, 253, 459, 603, 107, 1229, 1433, 4263, 24341, 20493, 40165, 254725}}, +{14406, 18, 16716, {1, 3, 5, 3, 9, 7, 63, 195, 19, 973, 47, 811, 2207, 3613, 8911, 17495, 62403, 77951}}, +{14407, 18, 16758, {1, 3, 5, 11, 5, 13, 83, 125, 467, 111, 1819, 3807, 4259, 2885, 29577, 13539, 69859, 97379}}, +{14408, 18, 16768, {1, 1, 5, 15, 5, 33, 109, 203, 129, 587, 9, 3025, 2839, 11405, 11257, 7779, 30311, 14015}}, +{14409, 18, 16797, {1, 1, 7, 15, 5, 47, 103, 199, 391, 61, 129, 3511, 1295, 15067, 23919, 2941, 120463, 21665}}, +{14410, 18, 16804, {1, 1, 5, 5, 7, 7, 125, 153, 365, 815, 1423, 4053, 875, 2405, 21291, 26785, 31371, 211045}}, +{14411, 18, 16811, {1, 3, 3, 9, 31, 47, 1, 247, 197, 1019, 985, 2277, 875, 3969, 15093, 15561, 110101, 156547}}, +{14412, 18, 16813, {1, 1, 3, 1, 9, 47, 71, 125, 17, 501, 1783, 2337, 483, 12719, 22453, 16701, 102639, 152955}}, +{14413, 18, 16881, {1, 1, 3, 11, 13, 31, 9, 63, 261, 257, 319, 1443, 5011, 9799, 18639, 53081, 56879, 102335}}, +{14414, 18, 16888, {1, 3, 3, 1, 5, 59, 127, 163, 323, 997, 1755, 1445, 2285, 4935, 22123, 815, 115131, 1009}}, +{14415, 18, 16893, {1, 1, 3, 11, 11, 43, 65, 127, 137, 583, 173, 2601, 5809, 15773, 16129, 2543, 68281, 96107}}, +{14416, 18, 16922, {1, 3, 5, 9, 25, 25, 95, 73, 313, 893, 1805, 2301, 5917, 15159, 8637, 25505, 66053, 31627}}, +{14417, 18, 16937, {1, 1, 3, 7, 25, 59, 55, 13, 297, 849, 187, 359, 3745, 12655, 29293, 58581, 89799, 195867}}, +{14418, 18, 16958, {1, 1, 5, 13, 19, 5, 51, 85, 259, 59, 1003, 2991, 6605, 8405, 5221, 45607, 130729, 99641}}, +{14419, 18, 16965, {1, 3, 5, 5, 25, 61, 51, 211, 143, 233, 1465, 1165, 1769, 3021, 9491, 30335, 34787, 142605}}, +{14420, 18, 16978, {1, 3, 5, 13, 23, 9, 89, 249, 71, 179, 841, 3375, 21, 6757, 27495, 7531, 123725, 253855}}, +{14421, 18, 16980, {1, 3, 7, 13, 9, 33, 109, 103, 475, 781, 493, 2079, 6529, 13443, 2181, 26925, 31345, 142863}}, +{14422, 18, 16989, {1, 1, 7, 9, 15, 41, 17, 85, 503, 839, 533, 731, 2735, 12949, 11395, 22539, 130147, 40045}}, +{14423, 18, 17011, {1, 1, 5, 9, 25, 21, 29, 79, 405, 383, 1271, 385, 7629, 3889, 5319, 57739, 51411, 50895}}, +{14424, 18, 17014, {1, 3, 7, 5, 13, 35, 17, 97, 261, 437, 951, 1403, 2407, 11447, 13565, 10165, 100001, 253093}}, +{14425, 18, 17023, {1, 3, 1, 3, 11, 39, 31, 187, 473, 565, 351, 4007, 2621, 14463, 9009, 40679, 81069, 51131}}, +{14426, 18, 17063, {1, 3, 5, 5, 9, 17, 11, 151, 59, 249, 281, 203, 6423, 4977, 18557, 65383, 88361, 87437}}, +{14427, 18, 17081, {1, 3, 5, 7, 15, 25, 3, 157, 179, 439, 1627, 3493, 6641, 6403, 2361, 3613, 33817, 22585}}, +{14428, 18, 17084, {1, 3, 5, 1, 13, 63, 77, 195, 233, 175, 631, 1021, 637, 13231, 26187, 131, 127379, 256183}}, +{14429, 18, 17099, {1, 1, 7, 9, 5, 13, 15, 187, 55, 37, 1113, 2191, 3439, 1073, 26239, 3049, 19807, 250869}}, +{14430, 18, 17126, {1, 1, 7, 3, 13, 15, 77, 47, 317, 285, 753, 2419, 7795, 11423, 6043, 2913, 42819, 50603}}, +{14431, 18, 17129, {1, 3, 7, 15, 21, 17, 63, 71, 97, 535, 1085, 1531, 5165, 13717, 1537, 26797, 111787, 189403}}, +{14432, 18, 17138, {1, 1, 1, 7, 9, 3, 43, 209, 385, 851, 1411, 4039, 3259, 13387, 24505, 33325, 83741, 241255}}, +{14433, 18, 17164, {1, 1, 1, 1, 3, 41, 13, 43, 303, 445, 1097, 3517, 7753, 8459, 3017, 16385, 13775, 248655}}, +{14434, 18, 17170, {1, 3, 5, 15, 5, 61, 31, 57, 269, 931, 1071, 1137, 6181, 13005, 18493, 1345, 105203, 117309}}, +{14435, 18, 17203, {1, 1, 3, 13, 21, 29, 3, 179, 367, 155, 993, 117, 5849, 10181, 1175, 55769, 16025, 67669}}, +{14436, 18, 17206, {1, 1, 3, 9, 11, 9, 33, 131, 181, 1003, 253, 2759, 1877, 11851, 22959, 37823, 82737, 110329}}, +{14437, 18, 17224, {1, 1, 1, 5, 7, 5, 107, 191, 385, 129, 567, 2585, 7295, 3005, 28185, 7095, 54851, 257587}}, +{14438, 18, 17305, {1, 3, 7, 9, 21, 61, 103, 155, 503, 307, 993, 683, 1491, 14895, 9213, 34535, 17765, 12457}}, +{14439, 18, 17322, {1, 3, 3, 1, 7, 47, 27, 173, 97, 889, 853, 3995, 4943, 71, 20479, 16741, 35479, 35307}}, +{14440, 18, 17327, {1, 1, 5, 3, 15, 35, 29, 207, 117, 267, 1835, 2565, 1199, 3813, 13999, 10537, 129915, 210651}}, +{14441, 18, 17332, {1, 3, 3, 13, 5, 57, 77, 193, 11, 279, 745, 2511, 5775, 13527, 26329, 16303, 111511, 70025}}, +{14442, 18, 17342, {1, 3, 7, 9, 17, 1, 73, 1, 125, 939, 863, 2763, 1951, 3191, 5567, 59729, 32149, 149417}}, +{14443, 18, 17387, {1, 3, 3, 1, 19, 25, 119, 63, 101, 33, 77, 3587, 6367, 8275, 24957, 32087, 7031, 217291}}, +{14444, 18, 17410, {1, 1, 1, 13, 7, 25, 75, 161, 143, 353, 973, 2957, 749, 13519, 11295, 34287, 60727, 83731}}, +{14445, 18, 17419, {1, 3, 7, 7, 17, 9, 59, 45, 97, 619, 895, 1955, 8143, 2507, 4673, 39425, 35679, 152069}}, +{14446, 18, 17429, {1, 1, 5, 9, 31, 19, 115, 177, 349, 877, 525, 305, 2187, 12195, 13529, 61641, 102293, 69941}}, +{14447, 18, 17439, {1, 3, 7, 11, 23, 59, 15, 243, 511, 465, 905, 1979, 2263, 2105, 9009, 3691, 22241, 97765}}, +{14448, 18, 17440, {1, 1, 7, 9, 29, 13, 3, 207, 51, 405, 1703, 1923, 1781, 14723, 8103, 10707, 64799, 99349}}, +{14449, 18, 17457, {1, 1, 7, 5, 23, 29, 51, 63, 489, 273, 1577, 2807, 5427, 9949, 1929, 19791, 109405, 241465}}, +{14450, 18, 17458, {1, 3, 3, 7, 29, 61, 103, 55, 29, 17, 1081, 21, 5791, 9803, 19385, 45091, 118069, 61383}}, +{14451, 18, 17469, {1, 3, 1, 7, 3, 15, 75, 47, 475, 87, 1541, 3933, 1081, 12361, 29213, 64333, 7229, 226909}}, +{14452, 18, 17477, {1, 1, 5, 7, 21, 45, 19, 137, 351, 229, 1773, 1829, 5025, 12661, 18745, 54917, 10419, 176667}}, +{14453, 18, 17512, {1, 1, 1, 3, 9, 37, 81, 25, 11, 327, 1653, 2751, 2823, 12575, 30287, 46265, 17299, 93595}}, +{14454, 18, 17518, {1, 1, 1, 3, 15, 17, 43, 163, 223, 731, 631, 2813, 1723, 6089, 14245, 64339, 114291, 40331}}, +{14455, 18, 17532, {1, 3, 7, 5, 21, 45, 41, 17, 495, 61, 1369, 369, 4493, 12071, 3813, 41455, 62561, 174399}}, +{14456, 18, 17536, {1, 1, 1, 5, 9, 41, 95, 113, 109, 519, 1683, 2265, 2875, 12649, 15575, 53511, 100707, 224035}}, +{14457, 18, 17559, {1, 3, 7, 9, 29, 7, 109, 109, 283, 111, 1167, 3679, 369, 11597, 19459, 759, 128667, 172427}}, +{14458, 18, 17569, {1, 1, 1, 3, 13, 31, 97, 31, 477, 507, 835, 465, 7501, 2485, 19485, 51055, 56363, 229341}}, +{14459, 18, 17641, {1, 3, 5, 11, 3, 23, 67, 173, 99, 963, 977, 1949, 1263, 2427, 15181, 23571, 23509, 26481}}, +{14460, 18, 17667, {1, 3, 3, 1, 29, 3, 35, 191, 197, 277, 397, 205, 5945, 1069, 31789, 3551, 101901, 222609}}, +{14461, 18, 17674, {1, 1, 5, 9, 11, 23, 109, 81, 295, 7, 755, 2345, 2823, 11133, 22623, 14515, 57059, 231099}}, +{14462, 18, 17693, {1, 3, 1, 3, 21, 29, 37, 71, 111, 737, 1881, 871, 5843, 5889, 14615, 49909, 7105, 48335}}, +{14463, 18, 17710, {1, 3, 1, 15, 23, 31, 87, 181, 483, 225, 2003, 365, 1569, 11153, 14673, 30085, 56497, 203723}}, +{14464, 18, 17729, {1, 1, 3, 15, 17, 47, 99, 167, 485, 431, 1481, 2225, 1537, 8513, 19407, 34165, 27289, 84393}}, +{14465, 18, 17754, {1, 3, 7, 3, 11, 17, 115, 205, 403, 831, 1869, 3623, 5215, 15511, 11297, 25181, 127491, 155887}}, +{14466, 18, 17763, {1, 1, 7, 5, 31, 37, 23, 21, 403, 529, 1185, 3363, 6319, 2435, 2687, 39407, 121891, 133047}}, +{14467, 18, 17780, {1, 3, 7, 1, 21, 31, 43, 61, 371, 987, 1783, 3811, 6227, 13199, 31799, 28863, 49329, 73947}}, +{14468, 18, 17784, {1, 3, 1, 1, 13, 1, 5, 99, 35, 793, 483, 2573, 2249, 6345, 12793, 61917, 49419, 58011}}, +{14469, 18, 17790, {1, 3, 1, 15, 3, 45, 35, 189, 67, 447, 1455, 3575, 8191, 7907, 21559, 38211, 26945, 240679}}, +{14470, 18, 17830, {1, 1, 3, 11, 27, 49, 9, 109, 93, 473, 1465, 271, 7389, 47, 8101, 6219, 17437, 220461}}, +{14471, 18, 17851, {1, 1, 7, 3, 23, 31, 75, 61, 375, 901, 1329, 2603, 3469, 12957, 23949, 62183, 126763, 68965}}, +{14472, 18, 17868, {1, 1, 7, 9, 13, 59, 75, 233, 339, 29, 1117, 1693, 593, 15317, 29753, 3079, 43583, 79939}}, +{14473, 18, 17879, {1, 1, 5, 1, 17, 57, 81, 123, 101, 765, 1941, 3143, 7403, 9105, 23197, 28983, 128059, 5931}}, +{14474, 18, 17896, {1, 3, 5, 11, 19, 31, 89, 165, 213, 251, 965, 3203, 1621, 4323, 26877, 17109, 18321, 162413}}, +{14475, 18, 17901, {1, 3, 3, 9, 11, 59, 123, 213, 335, 267, 1767, 3317, 5189, 10149, 27921, 19331, 71541, 170501}}, +{14476, 18, 17916, {1, 3, 3, 15, 3, 3, 115, 235, 305, 219, 265, 1535, 4925, 5597, 20857, 32381, 117237, 197533}}, +{14477, 18, 17935, {1, 3, 5, 13, 13, 59, 93, 85, 419, 337, 513, 2131, 5665, 12229, 1389, 34355, 65485, 81141}}, +{14478, 18, 17953, {1, 3, 7, 7, 11, 59, 111, 219, 293, 289, 325, 623, 3853, 3775, 14771, 5945, 119451, 162861}}, +{14479, 18, 17991, {1, 3, 1, 11, 19, 33, 119, 239, 431, 803, 1119, 2445, 3203, 7219, 31963, 34519, 104953, 254491}}, +{14480, 18, 18009, {1, 3, 7, 9, 21, 53, 21, 115, 365, 419, 11, 3803, 4283, 417, 8937, 64533, 56433, 166025}}, +{14481, 18, 18016, {1, 1, 7, 3, 17, 5, 99, 143, 485, 309, 1255, 2641, 3427, 1681, 3301, 64531, 38629, 20945}}, +{14482, 18, 18034, {1, 1, 5, 1, 31, 3, 115, 217, 451, 5, 1447, 2317, 1725, 12931, 25799, 23569, 51747, 28821}}, +{14483, 18, 18061, {1, 3, 7, 3, 31, 55, 109, 107, 211, 381, 1067, 3973, 5007, 8939, 8605, 55221, 124603, 47115}}, +{14484, 18, 18070, {1, 1, 1, 11, 19, 13, 99, 241, 103, 711, 1823, 2671, 653, 10217, 14195, 39735, 54807, 105599}}, +{14485, 18, 18079, {1, 3, 3, 7, 9, 33, 43, 131, 493, 141, 827, 2909, 2847, 12879, 7879, 6263, 25981, 57323}}, +{14486, 18, 18132, {1, 1, 1, 1, 1, 41, 55, 175, 479, 725, 157, 3403, 5809, 10685, 20433, 21729, 9493, 205685}}, +{14487, 18, 18145, {1, 1, 7, 5, 1, 33, 31, 245, 109, 711, 1047, 941, 449, 1055, 16249, 45211, 48311, 171339}}, +{14488, 18, 18169, {1, 3, 3, 9, 27, 9, 113, 69, 269, 643, 1371, 3521, 4969, 5373, 11133, 63109, 42725, 126969}}, +{14489, 18, 18170, {1, 1, 5, 15, 9, 21, 1, 195, 421, 429, 1103, 2727, 463, 9801, 8955, 62841, 94687, 114509}}, +{14490, 18, 18190, {1, 1, 5, 5, 5, 47, 9, 221, 59, 115, 359, 1147, 749, 1009, 23129, 641, 39471, 23073}}, +{14491, 18, 18192, {1, 3, 5, 13, 27, 29, 19, 3, 121, 773, 625, 2757, 6377, 15867, 14563, 40391, 4351, 21153}}, +{14492, 18, 18201, {1, 1, 5, 9, 11, 25, 51, 101, 273, 541, 1761, 593, 7111, 4369, 30095, 34867, 103989, 19855}}, +{14493, 18, 18228, {1, 1, 3, 13, 27, 55, 79, 115, 105, 855, 627, 2227, 2927, 8757, 8713, 54607, 43671, 130153}}, +{14494, 18, 18243, {1, 1, 3, 5, 7, 45, 21, 71, 157, 773, 1265, 841, 2463, 2217, 6087, 28683, 21251, 72377}}, +{14495, 18, 18260, {1, 1, 3, 1, 15, 11, 117, 211, 223, 713, 545, 907, 6907, 41, 17039, 23079, 86657, 5765}}, +{14496, 18, 18279, {1, 1, 5, 3, 27, 33, 77, 137, 401, 585, 911, 1189, 2749, 3427, 2701, 2453, 84857, 176585}}, +{14497, 18, 18285, {1, 1, 1, 3, 7, 39, 73, 143, 29, 569, 939, 301, 7827, 7691, 11513, 64517, 113679, 234165}}, +{14498, 18, 18297, {1, 3, 1, 11, 29, 57, 127, 181, 175, 973, 1537, 761, 5205, 13641, 32649, 8621, 77509, 261235}}, +{14499, 18, 18300, {1, 3, 5, 5, 13, 19, 117, 225, 477, 297, 1807, 2357, 5653, 3791, 6325, 54877, 120659, 91013}}, +{14500, 18, 18321, {1, 3, 1, 1, 3, 55, 19, 99, 321, 877, 541, 511, 141, 15047, 26377, 9, 2765, 223533}}, +{14501, 18, 18344, {1, 1, 1, 11, 13, 59, 121, 147, 215, 117, 1047, 3055, 2129, 15191, 14425, 28327, 108541, 114275}}, +{14502, 18, 18358, {1, 1, 1, 15, 3, 21, 105, 61, 501, 899, 195, 2745, 5989, 4433, 19525, 35477, 22997, 241657}}, +{14503, 18, 18364, {1, 1, 3, 5, 19, 47, 77, 247, 413, 317, 1255, 2087, 4493, 2211, 9003, 22145, 94001, 50579}}, +{14504, 18, 18376, {1, 3, 7, 11, 31, 47, 25, 191, 65, 409, 1349, 2481, 7619, 223, 18051, 63609, 77187, 75483}}, +{14505, 18, 18390, {1, 1, 1, 9, 21, 59, 115, 251, 401, 91, 627, 3273, 2393, 2949, 11475, 23669, 16171, 77507}}, +{14506, 18, 18399, {1, 3, 5, 1, 19, 7, 65, 253, 217, 493, 227, 3269, 4261, 2295, 32037, 5773, 12925, 41821}}, +{14507, 18, 18400, {1, 1, 5, 11, 5, 31, 71, 205, 285, 37, 1863, 1873, 191, 16137, 2955, 51993, 91401, 206967}}, +{14508, 18, 18427, {1, 3, 1, 7, 23, 31, 21, 81, 37, 903, 817, 3447, 8067, 3087, 25831, 46247, 77255, 68365}}, +{14509, 18, 18443, {1, 1, 7, 11, 7, 43, 21, 243, 431, 633, 2047, 577, 7297, 8151, 15951, 30313, 121569, 241687}}, +{14510, 18, 18487, {1, 1, 3, 5, 7, 45, 35, 189, 381, 849, 1869, 1193, 6815, 9017, 29053, 63605, 113623, 249097}}, +{14511, 18, 18493, {1, 3, 3, 11, 13, 1, 73, 151, 197, 591, 1101, 2437, 6695, 8337, 26539, 40147, 45673, 57727}}, +{14512, 18, 18508, {1, 1, 5, 1, 19, 15, 61, 151, 37, 893, 1819, 2317, 6299, 13097, 5109, 32613, 123685, 128173}}, +{14513, 18, 18532, {1, 1, 1, 7, 25, 29, 29, 203, 179, 211, 1483, 3315, 7125, 6931, 609, 849, 117571, 26829}}, +{14514, 18, 18535, {1, 3, 3, 11, 11, 47, 33, 101, 181, 431, 183, 2777, 5269, 4177, 15727, 717, 111243, 34825}}, +{14515, 18, 18580, {1, 3, 5, 11, 17, 19, 19, 143, 137, 537, 1249, 2889, 1911, 3895, 15433, 60165, 83815, 205569}}, +{14516, 18, 18587, {1, 3, 3, 7, 9, 59, 13, 159, 307, 625, 1, 2887, 3307, 16371, 4269, 56253, 71171, 55543}}, +{14517, 18, 18606, {1, 1, 1, 11, 7, 63, 15, 53, 409, 7, 1317, 473, 7481, 10321, 27941, 4941, 40003, 194153}}, +{14518, 18, 18659, {1, 1, 1, 1, 11, 53, 93, 157, 289, 231, 31, 273, 8131, 7861, 31041, 55221, 58305, 203403}}, +{14519, 18, 18662, {1, 1, 5, 11, 15, 53, 103, 41, 439, 601, 1949, 1087, 4275, 4675, 31879, 40909, 22365, 124781}}, +{14520, 18, 18679, {1, 3, 5, 9, 1, 47, 81, 47, 197, 499, 329, 2387, 5455, 15571, 2289, 44121, 12105, 11883}}, +{14521, 18, 18694, {1, 1, 3, 3, 7, 47, 93, 33, 265, 149, 845, 723, 7783, 6651, 22939, 58027, 66959, 3991}}, +{14522, 18, 18697, {1, 1, 5, 11, 23, 35, 123, 143, 35, 981, 1269, 2853, 4547, 7877, 16181, 17155, 57605, 11589}}, +{14523, 18, 18706, {1, 1, 7, 11, 9, 57, 87, 151, 333, 743, 1939, 3273, 1047, 5033, 16061, 37237, 12013, 17669}}, +{14524, 18, 18708, {1, 3, 7, 5, 29, 15, 109, 185, 51, 159, 1353, 3041, 7821, 14053, 13643, 62045, 78475, 43603}}, +{14525, 18, 18728, {1, 3, 1, 9, 29, 25, 121, 49, 415, 561, 325, 1139, 1993, 6437, 6025, 25225, 20761, 250589}}, +{14526, 18, 18731, {1, 3, 5, 3, 15, 39, 33, 43, 437, 605, 1081, 2397, 3821, 10961, 4853, 19517, 95817, 142023}}, +{14527, 18, 18733, {1, 1, 3, 11, 23, 51, 119, 13, 227, 981, 2017, 3265, 1215, 8737, 10719, 48027, 43239, 19425}}, +{14528, 18, 18751, {1, 3, 1, 15, 5, 5, 33, 175, 509, 611, 451, 2653, 1553, 1941, 25221, 31259, 6027, 159847}}, +{14529, 18, 18766, {1, 3, 7, 11, 7, 25, 71, 61, 89, 775, 609, 2363, 4261, 10677, 1243, 44895, 49113, 209603}}, +{14530, 18, 18773, {1, 3, 5, 15, 23, 23, 3, 15, 489, 455, 1303, 745, 5311, 1639, 18317, 33729, 119303, 255359}}, +{14531, 18, 18796, {1, 3, 7, 5, 13, 53, 29, 127, 159, 67, 469, 1735, 3497, 6985, 24735, 32957, 1225, 24447}}, +{14532, 18, 18811, {1, 3, 5, 5, 9, 13, 119, 83, 387, 777, 361, 3183, 6351, 9071, 13699, 53873, 54663, 67453}}, +{14533, 18, 18823, {1, 1, 5, 9, 17, 33, 9, 159, 143, 193, 1055, 2903, 2719, 12521, 5231, 37639, 94963, 105673}}, +{14534, 18, 18832, {1, 3, 3, 1, 27, 53, 87, 49, 465, 517, 1333, 411, 4089, 9985, 12989, 59511, 49939, 223481}}, +{14535, 18, 18854, {1, 1, 5, 9, 27, 59, 35, 125, 393, 271, 1565, 2847, 8139, 15627, 16059, 55319, 11131, 35141}}, +{14536, 18, 18858, {1, 1, 1, 1, 25, 1, 27, 195, 113, 539, 1281, 2273, 4793, 695, 25599, 41145, 107431, 160137}}, +{14537, 18, 18883, {1, 3, 3, 7, 13, 7, 35, 137, 83, 995, 1671, 1701, 3157, 15583, 7637, 18947, 59675, 9421}}, +{14538, 18, 18900, {1, 1, 7, 15, 23, 37, 109, 93, 377, 885, 1843, 1867, 2013, 10535, 5717, 55463, 18307, 125537}}, +{14539, 18, 18967, {1, 3, 7, 11, 25, 33, 91, 213, 109, 599, 131, 1879, 1375, 2911, 4649, 8809, 41199, 61629}}, +{14540, 18, 18974, {1, 3, 1, 1, 11, 17, 117, 243, 427, 913, 495, 527, 4277, 8867, 3131, 14143, 81677, 177369}}, +{14541, 18, 18990, {1, 3, 7, 11, 11, 37, 71, 185, 487, 161, 1773, 837, 243, 14105, 6881, 2155, 63679, 220387}}, +{14542, 18, 19009, {1, 1, 5, 3, 11, 41, 33, 99, 495, 757, 1083, 1987, 1997, 11057, 18445, 61903, 78163, 121701}}, +{14543, 18, 19055, {1, 1, 1, 1, 23, 37, 9, 19, 411, 11, 1487, 1279, 2129, 7449, 29631, 34559, 129753, 112627}}, +{14544, 18, 19058, {1, 1, 3, 11, 31, 39, 41, 207, 141, 383, 723, 3053, 743, 4479, 12395, 56659, 130303, 152005}}, +{14545, 18, 19074, {1, 3, 1, 7, 27, 25, 19, 37, 29, 781, 1115, 2569, 4113, 14033, 18653, 1055, 50639, 70413}}, +{14546, 18, 19079, {1, 1, 3, 1, 9, 15, 109, 7, 221, 161, 569, 2915, 2717, 2439, 4257, 61851, 113183, 63139}}, +{14547, 18, 19086, {1, 3, 5, 1, 17, 45, 3, 147, 207, 769, 321, 11, 2747, 7189, 8067, 34951, 50851, 42625}}, +{14548, 18, 19128, {1, 1, 7, 11, 15, 53, 117, 161, 219, 937, 1661, 3767, 959, 10351, 26685, 40095, 109821, 140139}}, +{14549, 18, 19145, {1, 3, 3, 9, 15, 47, 61, 35, 289, 743, 1723, 2189, 749, 13499, 22897, 55385, 114953, 67191}}, +{14550, 18, 19163, {1, 3, 7, 3, 23, 19, 123, 217, 393, 889, 1665, 13, 5663, 8695, 29767, 13433, 65133, 226713}}, +{14551, 18, 19175, {1, 1, 7, 11, 5, 57, 59, 171, 321, 519, 1333, 1975, 5331, 2383, 26863, 8989, 82167, 6915}}, +{14552, 18, 19189, {1, 1, 3, 3, 7, 17, 105, 79, 7, 827, 1277, 3805, 5943, 3161, 28953, 15657, 615, 149131}}, +{14553, 18, 19196, {1, 1, 5, 1, 5, 7, 99, 65, 295, 933, 365, 1867, 1959, 10733, 26947, 29659, 121889, 200379}}, +{14554, 18, 19204, {1, 3, 1, 13, 25, 21, 89, 247, 251, 43, 1539, 1317, 1875, 9237, 20693, 58433, 16757, 25451}}, +{14555, 18, 19213, {1, 3, 3, 13, 11, 47, 73, 21, 467, 337, 1881, 2723, 7023, 2767, 12553, 65533, 20517, 203749}}, +{14556, 18, 19237, {1, 1, 1, 1, 1, 17, 85, 133, 369, 577, 71, 859, 8151, 919, 10843, 44017, 10097, 199893}}, +{14557, 18, 19276, {1, 3, 5, 5, 23, 19, 21, 233, 475, 123, 621, 687, 6945, 2373, 6447, 31243, 3525, 256545}}, +{14558, 18, 19287, {1, 1, 7, 5, 9, 5, 35, 21, 33, 353, 1429, 3249, 6159, 8757, 6213, 855, 75863, 74507}}, +{14559, 18, 19291, {1, 1, 5, 11, 29, 21, 45, 155, 369, 769, 1041, 3929, 7377, 1621, 5285, 55213, 66143, 110251}}, +{14560, 18, 19293, {1, 3, 7, 11, 13, 57, 45, 207, 259, 907, 573, 663, 7727, 12677, 5949, 57625, 42183, 217491}}, +{14561, 18, 19304, {1, 3, 5, 3, 21, 63, 113, 159, 87, 551, 1405, 2867, 239, 10941, 27633, 13947, 69689, 225771}}, +{14562, 18, 19371, {1, 1, 3, 1, 1, 59, 5, 41, 125, 707, 1457, 1, 4263, 5519, 26101, 46339, 44949, 63689}}, +{14563, 18, 19379, {1, 1, 1, 1, 11, 9, 65, 155, 3, 85, 273, 2287, 6059, 3289, 19045, 14705, 112465, 202019}}, +{14564, 18, 19381, {1, 3, 3, 3, 21, 49, 95, 75, 479, 519, 1511, 1609, 2421, 14435, 11749, 49627, 16221, 98351}}, +{14565, 18, 19405, {1, 1, 3, 5, 25, 57, 1, 39, 377, 523, 529, 701, 6749, 10109, 15845, 53301, 70979, 210997}}, +{14566, 18, 19417, {1, 3, 1, 3, 27, 29, 101, 87, 361, 1, 229, 2653, 769, 16121, 18221, 31937, 12187, 63801}}, +{14567, 18, 19420, {1, 3, 3, 1, 25, 27, 49, 235, 309, 23, 1625, 589, 1251, 10305, 26943, 38949, 82539, 135491}}, +{14568, 18, 19424, {1, 1, 7, 7, 13, 13, 13, 61, 509, 73, 201, 2309, 1601, 3145, 19867, 5623, 117455, 180681}}, +{14569, 18, 19462, {1, 3, 3, 13, 13, 47, 71, 9, 123, 719, 701, 353, 1877, 3103, 20017, 64731, 72729, 147631}}, +{14570, 18, 19474, {1, 3, 1, 7, 29, 29, 53, 97, 409, 67, 1033, 2403, 2471, 10869, 2837, 43459, 117415, 213371}}, +{14571, 18, 19492, {1, 1, 7, 1, 7, 23, 103, 157, 315, 335, 375, 3493, 4095, 5331, 7773, 64173, 23167, 21259}}, +{14572, 18, 19501, {1, 3, 5, 13, 13, 55, 107, 147, 447, 281, 401, 1897, 7887, 15005, 21645, 26007, 19673, 238931}}, +{14573, 18, 19504, {1, 3, 1, 7, 17, 39, 109, 113, 143, 59, 1095, 225, 1455, 5021, 5011, 2039, 4381, 219847}}, +{14574, 18, 19516, {1, 3, 3, 7, 1, 35, 121, 145, 297, 251, 1153, 1955, 7881, 15461, 26961, 915, 30253, 15289}}, +{14575, 18, 19519, {1, 3, 5, 15, 5, 57, 43, 157, 49, 17, 993, 4085, 5639, 9405, 28661, 30191, 73291, 76913}}, +{14576, 18, 19534, {1, 1, 7, 1, 25, 63, 117, 55, 63, 649, 1635, 2505, 2765, 2715, 30241, 62699, 19567, 65953}}, +{14577, 18, 19555, {1, 3, 5, 13, 21, 49, 111, 127, 179, 819, 1737, 2519, 815, 10541, 15821, 54203, 71767, 7091}}, +{14578, 18, 19597, {1, 1, 1, 3, 27, 41, 101, 139, 39, 995, 819, 319, 1481, 15265, 20611, 22445, 53733, 82871}}, +{14579, 18, 19600, {1, 3, 3, 13, 7, 61, 103, 203, 353, 205, 1927, 2665, 757, 12277, 31217, 22247, 14527, 26385}}, +{14580, 18, 19615, {1, 1, 7, 3, 5, 35, 87, 235, 139, 785, 417, 3975, 6753, 4267, 15201, 8747, 12491, 159979}}, +{14581, 18, 19621, {1, 3, 1, 9, 9, 11, 117, 231, 503, 933, 1461, 2657, 7771, 2161, 26723, 4853, 23215, 162315}}, +{14582, 18, 19646, {1, 1, 7, 15, 27, 25, 115, 9, 257, 89, 571, 41, 2169, 10619, 2695, 2107, 64747, 40489}}, +{14583, 18, 19651, {1, 3, 7, 9, 29, 61, 91, 117, 279, 721, 233, 177, 5509, 7599, 2379, 20297, 75425, 25051}}, +{14584, 18, 19693, {1, 1, 1, 15, 31, 41, 3, 57, 59, 47, 963, 2831, 1885, 1989, 26803, 48243, 112065, 27753}}, +{14585, 18, 19702, {1, 1, 5, 15, 9, 57, 41, 255, 179, 719, 1463, 2857, 285, 9623, 13111, 20415, 28819, 149441}}, +{14586, 18, 19726, {1, 3, 1, 9, 17, 63, 21, 79, 473, 525, 1557, 3205, 7097, 14379, 28039, 30731, 62383, 247429}}, +{14587, 18, 19754, {1, 3, 3, 13, 25, 45, 97, 213, 11, 801, 1519, 1085, 6167, 13701, 6707, 47223, 69923, 66239}}, +{14588, 18, 19759, {1, 1, 1, 13, 1, 1, 9, 21, 363, 729, 1715, 1249, 5299, 11357, 20627, 33559, 84255, 133743}}, +{14589, 18, 19764, {1, 3, 3, 13, 17, 33, 23, 255, 309, 605, 1177, 1305, 2717, 6561, 29193, 7971, 117525, 79139}}, +{14590, 18, 19788, {1, 3, 1, 1, 7, 15, 73, 171, 11, 791, 241, 2641, 5397, 10403, 22207, 64123, 124507, 63855}}, +{14591, 18, 19793, {1, 3, 1, 11, 11, 7, 109, 103, 321, 1009, 1237, 3347, 287, 2389, 16529, 7789, 3347, 97827}}, +{14592, 18, 19836, {1, 3, 3, 3, 1, 27, 17, 9, 223, 755, 559, 3811, 2997, 1543, 23197, 42371, 5837, 13809}}, +{14593, 18, 19855, {1, 3, 1, 3, 7, 57, 31, 23, 35, 329, 1155, 2525, 3029, 5495, 12005, 18045, 4539, 75789}}, +{14594, 18, 19858, {1, 1, 5, 13, 3, 31, 121, 161, 325, 869, 715, 851, 1273, 1871, 22711, 61499, 36291, 11663}}, +{14595, 18, 19880, {1, 1, 5, 11, 7, 39, 23, 139, 197, 47, 513, 373, 6859, 11217, 17725, 60949, 19299, 91425}}, +{14596, 18, 19883, {1, 1, 3, 7, 15, 63, 123, 11, 109, 829, 231, 2591, 7997, 9061, 18647, 3209, 38509, 211219}}, +{14597, 18, 19917, {1, 1, 1, 11, 13, 35, 73, 223, 325, 49, 1317, 4063, 4127, 2755, 555, 51057, 44909, 205723}}, +{14598, 18, 19918, {1, 3, 3, 13, 17, 41, 115, 141, 503, 525, 63, 2487, 3225, 959, 10623, 28577, 89127, 157269}}, +{14599, 18, 19936, {1, 3, 1, 9, 25, 9, 43, 43, 279, 111, 1141, 3033, 7229, 5725, 8277, 59141, 116811, 127945}}, +{14600, 18, 19946, {1, 3, 7, 11, 27, 27, 93, 243, 135, 333, 1475, 1259, 1583, 7191, 6831, 53485, 128819, 174211}}, +{14601, 18, 19954, {1, 3, 3, 3, 17, 17, 43, 251, 433, 1011, 1817, 2835, 7721, 2449, 9463, 23779, 31427, 88127}}, +{14602, 18, 19979, {1, 1, 3, 3, 11, 49, 61, 41, 211, 559, 1761, 1303, 2119, 5743, 25515, 60705, 54405, 241063}}, +{14603, 18, 19993, {1, 1, 3, 11, 7, 61, 15, 115, 29, 35, 187, 3137, 6177, 1449, 32723, 15917, 107851, 101077}}, +{14604, 18, 19994, {1, 3, 5, 13, 21, 7, 11, 231, 417, 73, 1175, 735, 627, 7393, 7233, 39883, 129481, 106733}}, +{14605, 18, 20006, {1, 3, 1, 15, 27, 61, 63, 201, 27, 431, 1127, 1555, 1953, 13051, 18701, 30097, 95549, 198465}}, +{14606, 18, 20017, {1, 1, 3, 1, 23, 25, 43, 85, 291, 85, 1861, 675, 7451, 14701, 3929, 10835, 25569, 154687}}, +{14607, 18, 20032, {1, 3, 7, 15, 5, 43, 91, 225, 283, 259, 1311, 3977, 585, 14803, 14117, 2121, 106981, 157577}}, +{14608, 18, 20038, {1, 1, 1, 11, 7, 51, 49, 115, 477, 861, 1115, 743, 5109, 959, 7105, 9245, 66297, 188751}}, +{14609, 18, 20050, {1, 3, 3, 11, 23, 1, 11, 111, 163, 643, 1907, 3613, 2967, 10071, 6023, 1307, 62341, 241025}}, +{14610, 18, 20080, {1, 3, 5, 5, 15, 29, 31, 43, 445, 219, 1261, 421, 6035, 6461, 25583, 817, 100509, 239637}}, +{14611, 18, 20135, {1, 1, 7, 3, 27, 51, 121, 93, 349, 125, 2013, 1671, 8049, 7807, 7291, 64413, 93625, 245611}}, +{14612, 18, 20142, {1, 3, 3, 9, 11, 1, 91, 137, 501, 617, 1513, 799, 1705, 15737, 14989, 53611, 48781, 64481}}, +{14613, 18, 20159, {1, 3, 3, 1, 21, 55, 95, 79, 383, 617, 1589, 2671, 4057, 13525, 9269, 23539, 13317, 87701}}, +{14614, 18, 20173, {1, 1, 3, 1, 29, 17, 121, 45, 91, 215, 325, 2853, 1213, 10221, 7233, 34063, 21887, 142943}}, +{14615, 18, 20186, {1, 3, 3, 11, 27, 53, 55, 149, 107, 379, 441, 585, 5697, 16353, 5613, 4323, 55315, 197603}}, +{14616, 18, 20229, {1, 3, 7, 3, 31, 9, 71, 175, 485, 35, 675, 2091, 2351, 7985, 14207, 52687, 8559, 1067}}, +{14617, 18, 20234, {1, 1, 5, 15, 29, 37, 9, 73, 357, 961, 489, 875, 7465, 3231, 27821, 42499, 127837, 117215}}, +{14618, 18, 20263, {1, 3, 7, 7, 19, 43, 75, 153, 27, 291, 2039, 2661, 5513, 13429, 27307, 5305, 44771, 200621}}, +{14619, 18, 20270, {1, 1, 1, 15, 5, 39, 61, 107, 201, 485, 319, 335, 5537, 14195, 31861, 63637, 68497, 45637}}, +{14620, 18, 20299, {1, 3, 7, 7, 23, 49, 95, 225, 25, 933, 667, 2993, 2181, 15659, 31343, 20249, 57039, 43399}}, +{14621, 18, 20304, {1, 3, 3, 7, 17, 25, 29, 243, 511, 91, 1409, 203, 2749, 7067, 12471, 41737, 32761, 7535}}, +{14622, 18, 20319, {1, 1, 7, 9, 27, 43, 63, 65, 325, 817, 1127, 2039, 6171, 5867, 10593, 17205, 95913, 207417}}, +{14623, 18, 20329, {1, 1, 7, 3, 3, 51, 107, 153, 193, 579, 593, 2915, 7641, 5157, 1131, 29793, 66579, 81903}}, +{14624, 18, 20337, {1, 1, 5, 15, 19, 61, 125, 107, 235, 513, 1897, 875, 6341, 1817, 10631, 63905, 42993, 150699}}, +{14625, 18, 20353, {1, 1, 3, 11, 27, 1, 93, 107, 325, 459, 1733, 2527, 4557, 2277, 19345, 8205, 67337, 242559}}, +{14626, 18, 20401, {1, 1, 7, 3, 3, 45, 27, 227, 201, 99, 589, 1665, 4851, 2655, 9915, 41321, 59865, 71501}}, +{14627, 18, 20434, {1, 3, 1, 9, 3, 25, 117, 199, 125, 849, 135, 1771, 4743, 13475, 23711, 17389, 52711, 200143}}, +{14628, 18, 20436, {1, 3, 1, 3, 11, 23, 67, 155, 133, 557, 1933, 3169, 1707, 16045, 11039, 13889, 71045, 245885}}, +{14629, 18, 20473, {1, 1, 5, 9, 1, 7, 99, 13, 315, 251, 1289, 225, 2847, 8451, 3139, 46829, 124745, 64825}}, +{14630, 18, 20488, {1, 3, 7, 13, 19, 45, 87, 161, 271, 401, 1995, 935, 1803, 4051, 11709, 26993, 120139, 147895}}, +{14631, 18, 20512, {1, 1, 7, 5, 15, 11, 47, 215, 51, 1019, 2039, 3767, 929, 3845, 3939, 64077, 48115, 61845}}, +{14632, 18, 20515, {1, 1, 1, 5, 1, 39, 15, 77, 179, 13, 1099, 203, 3363, 9071, 12033, 49159, 71137, 124177}}, +{14633, 18, 20517, {1, 3, 5, 5, 1, 31, 83, 219, 387, 347, 1099, 925, 4423, 5081, 15981, 35881, 79131, 248301}}, +{14634, 18, 20530, {1, 3, 7, 3, 25, 19, 53, 43, 347, 845, 1735, 3237, 2795, 2253, 2997, 43729, 122833, 124869}}, +{14635, 18, 20571, {1, 3, 5, 11, 5, 19, 93, 55, 297, 231, 239, 3335, 253, 13607, 16769, 48879, 61439, 54827}}, +{14636, 18, 20574, {1, 3, 7, 11, 11, 55, 121, 73, 19, 1017, 727, 579, 8011, 9559, 15051, 7895, 17609, 103061}}, +{14637, 18, 20589, {1, 1, 7, 5, 19, 47, 85, 195, 75, 1003, 439, 3069, 2107, 12751, 26729, 2329, 1191, 86547}}, +{14638, 18, 20592, {1, 3, 3, 9, 5, 31, 63, 227, 481, 793, 1853, 1491, 2109, 4199, 32149, 45229, 54685, 124819}}, +{14639, 18, 20611, {1, 1, 1, 3, 15, 15, 41, 45, 153, 429, 1691, 1897, 7253, 7239, 26133, 36527, 90319, 186097}}, +{14640, 18, 20613, {1, 3, 1, 13, 15, 33, 103, 113, 121, 387, 177, 1943, 3181, 5483, 18515, 38807, 22655, 59787}}, +{14641, 18, 20628, {1, 1, 5, 7, 15, 3, 53, 155, 99, 133, 579, 2129, 6881, 11091, 26715, 15485, 108071, 230881}}, +{14642, 18, 20637, {1, 1, 3, 13, 25, 61, 91, 81, 9, 1011, 1993, 2485, 3707, 11127, 21279, 15853, 104081, 203769}}, +{14643, 18, 20638, {1, 1, 7, 3, 17, 23, 37, 171, 315, 247, 275, 3215, 7139, 11739, 25859, 34803, 124601, 9169}}, +{14644, 18, 20719, {1, 3, 7, 9, 21, 29, 97, 213, 309, 865, 597, 1811, 5547, 3741, 31927, 53379, 43293, 23589}}, +{14645, 18, 20724, {1, 3, 7, 9, 7, 43, 107, 187, 485, 977, 1329, 3037, 3701, 9667, 13581, 6283, 39221, 63841}}, +{14646, 18, 20772, {1, 1, 3, 11, 3, 51, 117, 45, 293, 409, 689, 153, 1163, 10921, 22709, 30415, 120475, 120751}}, +{14647, 18, 20796, {1, 3, 5, 15, 31, 59, 57, 63, 249, 763, 1627, 3039, 4309, 14115, 25489, 35009, 126609, 146041}}, +{14648, 18, 20799, {1, 1, 1, 9, 3, 47, 21, 183, 495, 361, 1439, 407, 5757, 12645, 11425, 1923, 94511, 205127}}, +{14649, 18, 20816, {1, 3, 1, 9, 15, 5, 101, 107, 385, 175, 791, 901, 4427, 10415, 8163, 14417, 62997, 139309}}, +{14650, 18, 20841, {1, 3, 5, 3, 13, 57, 9, 99, 77, 123, 1607, 3643, 3879, 503, 6021, 60211, 106471, 221801}}, +{14651, 18, 20844, {1, 1, 7, 5, 27, 35, 11, 33, 415, 387, 1461, 741, 55, 15095, 21177, 5715, 109893, 204843}}, +{14652, 18, 20862, {1, 1, 1, 15, 7, 49, 51, 81, 157, 421, 279, 1951, 6847, 10259, 31925, 60761, 12395, 49511}}, +{14653, 18, 20865, {1, 3, 7, 11, 5, 33, 27, 135, 247, 813, 1889, 2547, 2359, 9535, 4141, 59713, 88685, 214641}}, +{14654, 18, 20902, {1, 1, 5, 15, 17, 61, 99, 103, 39, 151, 1033, 2743, 6639, 5271, 22059, 12681, 22763, 88255}}, +{14655, 18, 20938, {1, 1, 7, 13, 5, 11, 39, 139, 353, 989, 1391, 169, 3709, 735, 22965, 227, 103623, 153893}}, +{14656, 18, 20957, {1, 1, 7, 3, 9, 51, 53, 87, 411, 617, 671, 681, 5057, 6003, 23137, 30881, 2289, 187133}}, +{14657, 18, 20971, {1, 1, 7, 7, 17, 59, 77, 219, 25, 53, 145, 129, 4289, 14257, 7159, 44833, 22131, 53393}}, +{14658, 18, 20973, {1, 3, 7, 1, 9, 59, 79, 177, 149, 637, 1641, 3713, 2709, 12321, 5691, 18239, 8617, 225979}}, +{14659, 18, 20981, {1, 1, 7, 5, 9, 9, 67, 51, 451, 815, 295, 813, 1257, 179, 28769, 57241, 51753, 164873}}, +{14660, 18, 20982, {1, 3, 1, 9, 19, 61, 53, 65, 29, 503, 715, 1837, 7487, 16187, 27303, 54681, 98753, 100471}}, +{14661, 18, 20985, {1, 1, 3, 1, 15, 51, 1, 79, 179, 367, 841, 1313, 797, 4777, 1369, 13317, 65059, 204877}}, +{14662, 18, 20991, {1, 3, 5, 9, 15, 19, 109, 45, 473, 517, 1139, 15, 1997, 4245, 11169, 56417, 75017, 37957}}, +{14663, 18, 21012, {1, 1, 7, 1, 3, 41, 75, 95, 59, 503, 1439, 2633, 3527, 5363, 24357, 43659, 10387, 208319}}, +{14664, 18, 21022, {1, 1, 5, 1, 31, 7, 71, 231, 505, 241, 1579, 3517, 3995, 8269, 6793, 15883, 102779, 75589}}, +{14665, 18, 21026, {1, 3, 5, 1, 13, 61, 87, 213, 501, 307, 1629, 2715, 7245, 747, 20601, 28105, 79249, 76231}}, +{14666, 18, 21028, {1, 1, 7, 11, 5, 13, 69, 221, 485, 59, 2027, 483, 6851, 11719, 16787, 54111, 47579, 49959}}, +{14667, 18, 21050, {1, 1, 3, 15, 3, 33, 57, 75, 375, 45, 851, 1673, 8167, 867, 32087, 34157, 96701, 72893}}, +{14668, 18, 21075, {1, 1, 3, 1, 21, 31, 65, 85, 181, 453, 815, 3139, 205, 429, 7451, 50855, 41085, 137927}}, +{14669, 18, 21077, {1, 3, 1, 9, 3, 57, 99, 183, 305, 991, 809, 4021, 3131, 4459, 5839, 32493, 116541, 59329}}, +{14670, 18, 21078, {1, 3, 7, 1, 5, 19, 3, 91, 297, 715, 1081, 445, 393, 12685, 4457, 61437, 103701, 75917}}, +{14671, 18, 21106, {1, 1, 7, 15, 17, 39, 19, 255, 247, 391, 1055, 1241, 4515, 10217, 23363, 40301, 115053, 234349}}, +{14672, 18, 21122, {1, 3, 5, 1, 21, 9, 33, 243, 501, 793, 219, 3595, 2585, 5083, 15377, 35761, 90609, 93761}}, +{14673, 18, 21127, {1, 1, 5, 13, 3, 1, 5, 77, 265, 525, 1107, 1879, 1119, 2277, 30557, 43547, 81947, 134075}}, +{14674, 18, 21155, {1, 1, 7, 5, 11, 47, 71, 83, 255, 183, 515, 2591, 3933, 16025, 16727, 43421, 18725, 106675}}, +{14675, 18, 21167, {1, 3, 1, 1, 5, 17, 57, 209, 509, 421, 1247, 3153, 1835, 8777, 13285, 27699, 34001, 186553}}, +{14676, 18, 21169, {1, 1, 3, 11, 27, 19, 73, 65, 179, 115, 845, 2507, 7673, 14429, 10553, 4999, 82323, 247379}}, +{14677, 18, 21204, {1, 3, 7, 7, 17, 59, 97, 183, 407, 697, 1423, 123, 6479, 3997, 729, 31587, 114383, 61673}}, +{14678, 18, 21230, {1, 1, 5, 9, 21, 23, 21, 153, 187, 255, 125, 1469, 2639, 8099, 29689, 36415, 103959, 231621}}, +{14679, 18, 21256, {1, 1, 3, 11, 19, 59, 115, 205, 123, 133, 1953, 3471, 2495, 329, 32385, 21931, 9691, 51405}}, +{14680, 18, 21285, {1, 3, 3, 13, 7, 7, 115, 65, 301, 621, 1091, 2137, 5729, 5027, 21331, 24803, 114789, 142039}}, +{14681, 18, 21312, {1, 1, 7, 5, 31, 19, 103, 69, 503, 663, 1497, 2867, 5295, 893, 15927, 37513, 94553, 72369}}, +{14682, 18, 21329, {1, 3, 3, 15, 17, 33, 99, 249, 277, 259, 9, 99, 3073, 12017, 14847, 7685, 102499, 26489}}, +{14683, 18, 21351, {1, 1, 1, 1, 5, 23, 31, 45, 29, 483, 1977, 1129, 6925, 2273, 16573, 53039, 90251, 137191}}, +{14684, 18, 21372, {1, 3, 1, 13, 27, 47, 29, 51, 473, 895, 671, 3917, 6905, 15769, 9019, 28879, 120591, 220753}}, +{14685, 18, 21376, {1, 3, 1, 13, 27, 29, 53, 255, 507, 819, 1251, 2463, 1717, 14461, 31997, 30829, 8803, 115539}}, +{14686, 18, 21424, {1, 3, 3, 15, 27, 1, 109, 225, 451, 409, 2025, 2701, 4121, 9949, 1551, 13625, 73577, 211549}}, +{14687, 18, 21448, {1, 1, 1, 3, 23, 57, 49, 35, 365, 711, 2001, 997, 1853, 2913, 15667, 30255, 19535, 2171}}, +{14688, 18, 21465, {1, 1, 7, 1, 21, 37, 127, 3, 117, 449, 1689, 1391, 1427, 12641, 15199, 23769, 66553, 34669}}, +{14689, 18, 21495, {1, 3, 7, 9, 31, 45, 51, 137, 181, 469, 573, 89, 7257, 10991, 30705, 37827, 75071, 152885}}, +{14690, 18, 21509, {1, 3, 1, 1, 19, 13, 55, 223, 261, 353, 1497, 183, 8173, 14421, 9977, 24095, 47215, 155189}}, +{14691, 18, 21550, {1, 1, 3, 15, 15, 41, 31, 105, 459, 27, 299, 159, 2167, 14809, 9983, 2755, 121715, 35921}}, +{14692, 18, 21562, {1, 1, 3, 7, 31, 5, 85, 137, 431, 849, 1479, 2681, 167, 5727, 3211, 30765, 63295, 39509}}, +{14693, 18, 21575, {1, 1, 5, 7, 5, 51, 21, 103, 175, 927, 1115, 1507, 505, 8093, 25831, 54303, 40397, 61249}}, +{14694, 18, 21579, {1, 1, 7, 3, 23, 53, 49, 225, 7, 425, 403, 3949, 1081, 15335, 21737, 647, 107875, 236183}}, +{14695, 18, 21582, {1, 1, 5, 7, 17, 21, 85, 229, 325, 57, 601, 2785, 6417, 5135, 17917, 12861, 97675, 115457}}, +{14696, 18, 21600, {1, 1, 3, 3, 13, 23, 73, 111, 385, 47, 605, 1169, 1729, 2335, 18739, 61293, 41915, 237645}}, +{14697, 18, 21615, {1, 1, 1, 5, 31, 11, 123, 13, 465, 755, 1073, 1885, 2105, 5971, 2347, 10911, 125823, 156037}}, +{14698, 18, 21617, {1, 3, 7, 11, 17, 47, 3, 165, 227, 355, 87, 839, 7741, 12275, 28579, 25337, 87671, 224847}}, +{14699, 18, 21624, {1, 1, 5, 15, 23, 33, 9, 1, 257, 121, 1049, 1009, 187, 9935, 26093, 21921, 130247, 240291}}, +{14700, 18, 21633, {1, 1, 3, 13, 13, 27, 87, 221, 27, 117, 551, 2533, 7611, 5333, 14635, 9911, 37555, 250621}}, +{14701, 18, 21636, {1, 3, 7, 15, 29, 39, 33, 1, 495, 889, 1397, 3415, 7193, 11533, 27379, 36425, 13739, 146635}}, +{14702, 18, 21645, {1, 1, 7, 11, 1, 23, 85, 127, 79, 989, 321, 1913, 7571, 9889, 11803, 1307, 120513, 218077}}, +{14703, 18, 21654, {1, 1, 7, 5, 5, 15, 35, 9, 351, 973, 1455, 2043, 5527, 9431, 16059, 53915, 105785, 180579}}, +{14704, 18, 21660, {1, 1, 1, 13, 13, 45, 15, 41, 131, 463, 1011, 3559, 6393, 4737, 6041, 33073, 60989, 56761}}, +{14705, 18, 21667, {1, 1, 3, 9, 31, 35, 23, 133, 33, 233, 543, 957, 4913, 12441, 10293, 31611, 83383, 154551}}, +{14706, 18, 21702, {1, 3, 3, 1, 29, 37, 117, 247, 345, 197, 1617, 3333, 7901, 8343, 55, 16529, 34627, 172703}}, +{14707, 18, 21714, {1, 1, 1, 13, 23, 51, 7, 219, 503, 215, 375, 2275, 5467, 13953, 13987, 22735, 67505, 185977}}, +{14708, 18, 21719, {1, 3, 5, 5, 29, 53, 85, 147, 167, 409, 853, 667, 4431, 5227, 15535, 34375, 107135, 220637}}, +{14709, 18, 21736, {1, 3, 7, 7, 19, 3, 73, 123, 455, 539, 1735, 1423, 5337, 16311, 15469, 36071, 126437, 219249}}, +{14710, 18, 21767, {1, 1, 1, 3, 19, 49, 17, 133, 101, 1013, 683, 869, 6267, 409, 31379, 2535, 8039, 63205}}, +{14711, 18, 21781, {1, 1, 1, 13, 13, 53, 25, 31, 501, 629, 645, 1811, 3675, 13317, 17009, 7359, 85475, 249823}}, +{14712, 18, 21795, {1, 1, 3, 11, 5, 1, 41, 17, 159, 361, 1439, 2083, 1425, 7221, 9117, 59543, 59285, 188615}}, +{14713, 18, 21841, {1, 3, 7, 1, 11, 27, 71, 121, 471, 749, 1983, 3715, 6463, 5793, 1063, 18201, 189, 243751}}, +{14714, 18, 21853, {1, 3, 3, 11, 19, 17, 15, 175, 379, 683, 1491, 2385, 6981, 1183, 16829, 2103, 9309, 46119}}, +{14715, 18, 21867, {1, 1, 7, 5, 17, 39, 109, 9, 279, 309, 1, 1523, 4551, 3855, 13277, 36125, 54191, 45085}}, +{14716, 18, 21878, {1, 3, 5, 3, 9, 59, 51, 5, 431, 657, 161, 2725, 2401, 9743, 12925, 43501, 51551, 163737}}, +{14717, 18, 21891, {1, 1, 5, 3, 9, 13, 7, 177, 121, 795, 1169, 3169, 3793, 3995, 29027, 32967, 82273, 207939}}, +{14718, 18, 21897, {1, 3, 7, 13, 1, 1, 31, 91, 245, 775, 1589, 2263, 6303, 15787, 3111, 52553, 52507, 183971}}, +{14719, 18, 21954, {1, 3, 5, 11, 15, 49, 73, 191, 67, 449, 1245, 2445, 5617, 8625, 27971, 35939, 76907, 76207}}, +{14720, 18, 21956, {1, 3, 1, 11, 15, 47, 29, 91, 437, 895, 1941, 249, 2739, 15479, 29699, 7257, 39897, 65985}}, +{14721, 18, 21965, {1, 3, 5, 7, 13, 23, 45, 113, 297, 373, 1505, 2317, 7509, 12059, 13737, 29081, 87337, 221917}}, +{14722, 18, 21977, {1, 3, 3, 3, 1, 5, 13, 215, 221, 461, 1337, 3569, 2257, 12135, 14685, 39721, 16723, 234791}}, +{14723, 18, 21978, {1, 1, 7, 5, 11, 25, 71, 103, 87, 533, 779, 379, 6695, 13451, 24801, 49235, 35109, 100865}}, +{14724, 18, 21983, {1, 3, 3, 15, 13, 51, 27, 11, 279, 847, 135, 1119, 2765, 3805, 20273, 29089, 83379, 190353}}, +{14725, 18, 22002, {1, 3, 7, 5, 17, 29, 111, 35, 189, 273, 503, 541, 6691, 9051, 10403, 7559, 54787, 25403}}, +{14726, 18, 22013, {1, 3, 5, 9, 21, 29, 85, 235, 223, 677, 71, 1313, 6587, 10983, 199, 27721, 78627, 105505}}, +{14727, 18, 22014, {1, 3, 1, 3, 13, 3, 123, 115, 173, 907, 1555, 1489, 2745, 6451, 25347, 24105, 66471, 181009}}, +{14728, 18, 22054, {1, 1, 7, 1, 31, 15, 13, 97, 511, 827, 1193, 3081, 1517, 13511, 24887, 39239, 85175, 150213}}, +{14729, 18, 22058, {1, 1, 1, 5, 17, 39, 121, 67, 207, 877, 1885, 171, 2687, 13081, 27267, 58699, 118575, 213025}}, +{14730, 18, 22066, {1, 1, 3, 9, 9, 27, 101, 215, 31, 37, 1629, 3631, 3225, 9667, 31547, 41939, 38683, 150805}}, +{14731, 18, 22085, {1, 3, 1, 11, 11, 59, 17, 15, 187, 667, 747, 2193, 6749, 6019, 31805, 52433, 4141, 52613}}, +{14732, 18, 22103, {1, 3, 3, 13, 9, 1, 51, 101, 213, 881, 899, 2197, 3017, 1591, 9271, 44017, 99893, 192005}}, +{14733, 18, 22138, {1, 3, 7, 13, 23, 41, 79, 83, 123, 585, 49, 849, 2133, 12473, 6907, 15487, 45783, 46609}}, +{14734, 18, 22140, {1, 3, 7, 13, 27, 23, 71, 13, 319, 903, 1123, 933, 2603, 11631, 19953, 47001, 127751, 84547}}, +{14735, 18, 22153, {1, 1, 1, 15, 3, 61, 79, 231, 43, 217, 801, 997, 6545, 13657, 25589, 30435, 49497, 1037}}, +{14736, 18, 22164, {1, 3, 3, 3, 21, 29, 121, 35, 129, 239, 1645, 3147, 7647, 1201, 19287, 7075, 67961, 62481}}, +{14737, 18, 22167, {1, 3, 7, 7, 3, 23, 45, 177, 469, 897, 359, 2521, 2079, 985, 14993, 56813, 20667, 187341}}, +{14738, 18, 22189, {1, 3, 5, 7, 23, 53, 15, 45, 297, 93, 247, 1165, 2683, 5899, 7113, 14859, 22733, 173835}}, +{14739, 18, 22202, {1, 1, 3, 15, 23, 17, 43, 179, 103, 197, 1857, 323, 267, 12417, 2343, 41527, 12243, 112023}}, +{14740, 18, 22212, {1, 3, 7, 13, 7, 43, 75, 19, 169, 621, 735, 141, 3087, 765, 5901, 34029, 117603, 5137}}, +{14741, 18, 22234, {1, 1, 3, 5, 15, 17, 67, 177, 371, 249, 99, 1651, 3701, 343, 435, 50307, 33915, 115391}}, +{14742, 18, 22239, {1, 1, 3, 13, 19, 53, 69, 1, 435, 71, 339, 2289, 1591, 8783, 8087, 25855, 115311, 191115}}, +{14743, 18, 22245, {1, 3, 5, 11, 1, 55, 59, 7, 101, 655, 353, 483, 5681, 12721, 15973, 51377, 94921, 246365}}, +{14744, 18, 22272, {1, 3, 5, 3, 25, 23, 99, 145, 277, 741, 595, 2653, 1393, 2867, 271, 49131, 111973, 118869}}, +{14745, 18, 22308, {1, 1, 7, 13, 11, 51, 127, 27, 305, 265, 1755, 3189, 4679, 9721, 24409, 46941, 94353, 95643}}, +{14746, 18, 22318, {1, 1, 5, 11, 1, 63, 53, 149, 459, 155, 1431, 3969, 3417, 12121, 14535, 52089, 110745, 57}}, +{14747, 18, 22320, {1, 1, 5, 9, 23, 33, 17, 175, 313, 185, 101, 531, 2941, 14999, 31413, 12103, 33709, 260555}}, +{14748, 18, 22338, {1, 1, 3, 13, 3, 11, 67, 95, 211, 673, 23, 2379, 6985, 12101, 13021, 9255, 116437, 228877}}, +{14749, 18, 22350, {1, 1, 3, 15, 7, 51, 25, 109, 45, 691, 869, 485, 111, 11465, 27953, 54375, 10805, 221023}}, +{14750, 18, 22374, {1, 3, 7, 7, 17, 53, 59, 101, 221, 593, 587, 873, 931, 14617, 12067, 58655, 102437, 31675}}, +{14751, 18, 22388, {1, 1, 3, 15, 25, 57, 35, 231, 491, 671, 933, 3525, 1237, 10155, 27501, 50781, 23183, 108283}}, +{14752, 18, 22391, {1, 3, 5, 5, 31, 63, 117, 205, 199, 841, 1455, 3901, 2127, 13573, 20667, 49489, 60217, 197421}}, +{14753, 18, 22422, {1, 1, 3, 7, 15, 21, 73, 211, 421, 873, 607, 709, 9, 10985, 28653, 64579, 118145, 3095}}, +{14754, 18, 22426, {1, 1, 1, 13, 17, 53, 27, 105, 201, 399, 737, 3235, 1287, 13859, 6049, 62249, 88259, 52991}}, +{14755, 18, 22441, {1, 3, 7, 7, 25, 45, 67, 147, 275, 315, 1675, 2289, 4611, 6325, 26617, 38079, 125219, 23569}}, +{14756, 18, 22481, {1, 1, 7, 7, 9, 61, 115, 251, 297, 691, 1881, 1815, 7229, 10859, 8257, 38097, 87927, 162845}}, +{14757, 18, 22488, {1, 3, 3, 9, 9, 59, 17, 207, 433, 825, 93, 697, 7263, 15983, 14829, 47471, 17579, 151519}}, +{14758, 18, 22500, {1, 1, 1, 11, 21, 31, 7, 41, 383, 731, 2033, 3417, 4187, 5515, 10093, 15875, 78551, 2057}}, +{14759, 18, 22517, {1, 3, 7, 15, 5, 29, 7, 171, 129, 727, 1815, 1361, 6137, 10333, 22203, 361, 92437, 6545}}, +{14760, 18, 22531, {1, 1, 3, 13, 25, 45, 111, 69, 333, 365, 765, 2755, 3485, 2729, 23467, 64809, 120755, 169279}}, +{14761, 18, 22552, {1, 1, 3, 1, 19, 13, 33, 165, 157, 429, 1175, 3435, 7523, 5055, 12295, 34309, 36933, 164037}}, +{14762, 18, 22574, {1, 1, 3, 11, 31, 49, 37, 161, 465, 311, 1839, 689, 6837, 13473, 29883, 61587, 86077, 156921}}, +{14763, 18, 22579, {1, 3, 3, 1, 3, 23, 69, 159, 501, 303, 1495, 9, 6055, 545, 12247, 23413, 67247, 38137}}, +{14764, 18, 22582, {1, 1, 5, 15, 5, 39, 107, 121, 295, 167, 1055, 2703, 147, 7291, 3981, 51989, 92953, 225987}}, +{14765, 18, 22586, {1, 3, 1, 1, 21, 5, 91, 129, 57, 53, 365, 2497, 5017, 13535, 19305, 60447, 115467, 225317}}, +{14766, 18, 22594, {1, 3, 1, 7, 25, 17, 51, 15, 119, 1013, 719, 991, 2655, 12587, 15749, 11723, 18461, 155937}}, +{14767, 18, 22611, {1, 3, 7, 3, 25, 33, 59, 135, 501, 813, 235, 3775, 2781, 13137, 32673, 31643, 78881, 207651}}, +{14768, 18, 22614, {1, 1, 7, 13, 27, 51, 99, 189, 187, 577, 941, 1275, 7297, 14731, 12599, 49049, 96439, 35093}}, +{14769, 18, 22700, {1, 3, 1, 15, 9, 45, 1, 149, 305, 231, 935, 1377, 6345, 14795, 20969, 26263, 5711, 146949}}, +{14770, 18, 22711, {1, 1, 5, 9, 5, 9, 47, 127, 105, 517, 671, 67, 4639, 2477, 23109, 56707, 72131, 100709}}, +{14771, 18, 22749, {1, 3, 5, 3, 21, 23, 7, 193, 491, 197, 319, 3207, 2183, 2133, 3127, 34555, 53707, 170875}}, +{14772, 18, 22759, {1, 1, 3, 9, 5, 23, 109, 91, 359, 913, 179, 1031, 3617, 12497, 23299, 53293, 114603, 9931}}, +{14773, 18, 22774, {1, 3, 1, 5, 1, 47, 73, 103, 333, 483, 1015, 3085, 5229, 3171, 16539, 13493, 68957, 177645}}, +{14774, 18, 22777, {1, 1, 1, 9, 27, 15, 25, 255, 383, 501, 831, 2463, 237, 16065, 6991, 56503, 117303, 140573}}, +{14775, 18, 22780, {1, 1, 3, 5, 9, 25, 15, 179, 415, 729, 1163, 2649, 2907, 9591, 29129, 42775, 80537, 139897}}, +{14776, 18, 22783, {1, 1, 3, 7, 31, 15, 113, 1, 263, 685, 1953, 1479, 5143, 8585, 9057, 61479, 122065, 191541}}, +{14777, 18, 22785, {1, 3, 1, 11, 25, 47, 25, 229, 463, 197, 1123, 2665, 2345, 11701, 10435, 15205, 35437, 137619}}, +{14778, 18, 22840, {1, 3, 3, 5, 19, 57, 89, 101, 373, 283, 57, 1701, 5025, 6677, 20321, 58459, 9319, 161501}}, +{14779, 18, 22878, {1, 1, 1, 13, 3, 51, 111, 23, 325, 813, 441, 2371, 1993, 6839, 359, 9873, 33719, 208163}}, +{14780, 18, 22884, {1, 3, 1, 11, 23, 53, 35, 89, 91, 601, 433, 1671, 1919, 2115, 6355, 10639, 87305, 194185}}, +{14781, 18, 22888, {1, 1, 5, 9, 29, 31, 43, 153, 209, 835, 865, 2431, 1085, 9771, 14483, 19551, 98673, 146881}}, +{14782, 18, 22927, {1, 1, 7, 3, 7, 33, 49, 111, 111, 843, 479, 2113, 4575, 14911, 5161, 7153, 37525, 217887}}, +{14783, 18, 22941, {1, 1, 7, 9, 27, 5, 23, 217, 11, 79, 1637, 2047, 6697, 5601, 2877, 63497, 100127, 157833}}, +{14784, 18, 22951, {1, 1, 7, 11, 31, 41, 91, 39, 207, 185, 1163, 2115, 2963, 7605, 12597, 54175, 7221, 117129}}, +{14785, 18, 22958, {1, 3, 7, 13, 9, 15, 3, 47, 281, 451, 1111, 3585, 4505, 9465, 8047, 45893, 27179, 124373}}, +{14786, 18, 22980, {1, 3, 5, 11, 27, 29, 11, 221, 483, 29, 17, 1067, 6761, 39, 13419, 7263, 127547, 178951}}, +{14787, 18, 23007, {1, 3, 5, 5, 19, 3, 51, 155, 41, 251, 851, 1191, 4445, 8337, 25339, 32931, 4743, 31883}}, +{14788, 18, 23032, {1, 3, 7, 15, 9, 3, 113, 151, 239, 611, 381, 1141, 2865, 3071, 7293, 61997, 2891, 14533}}, +{14789, 18, 23041, {1, 3, 5, 3, 15, 59, 3, 37, 385, 587, 837, 2483, 5493, 10571, 26129, 44835, 63425, 246953}}, +{14790, 18, 23044, {1, 3, 5, 13, 9, 9, 93, 11, 139, 619, 581, 2859, 5481, 11941, 20661, 37463, 95369, 177009}}, +{14791, 18, 23059, {1, 1, 7, 11, 7, 17, 89, 7, 479, 377, 1631, 509, 7429, 13733, 24011, 24191, 98409, 180761}}, +{14792, 18, 23065, {1, 3, 7, 1, 5, 17, 51, 113, 181, 75, 1787, 2221, 6181, 16069, 3031, 32531, 107833, 239907}}, +{14793, 18, 23072, {1, 1, 5, 11, 3, 25, 13, 35, 311, 865, 873, 1811, 3101, 4445, 18155, 18647, 55693, 144963}}, +{14794, 18, 23137, {1, 3, 7, 13, 1, 9, 73, 189, 255, 301, 1579, 597, 6027, 15621, 27287, 14615, 76051, 143445}}, +{14795, 18, 23144, {1, 3, 1, 13, 19, 59, 11, 97, 501, 857, 1071, 3633, 8059, 2469, 16803, 49395, 73631, 114297}}, +{14796, 18, 23155, {1, 1, 1, 5, 19, 3, 59, 179, 343, 745, 497, 2965, 3841, 3119, 17707, 31577, 39801, 108819}}, +{14797, 18, 23162, {1, 3, 3, 9, 11, 17, 19, 199, 283, 229, 493, 631, 8133, 1531, 25271, 11353, 114759, 70655}}, +{14798, 18, 23167, {1, 1, 7, 7, 3, 11, 1, 95, 167, 863, 1009, 1695, 2773, 11667, 23515, 12927, 87883, 28773}}, +{14799, 18, 23183, {1, 3, 1, 15, 9, 1, 31, 243, 57, 349, 483, 659, 1971, 7971, 23797, 4403, 83837, 239261}}, +{14800, 18, 23192, {1, 3, 7, 5, 11, 17, 55, 5, 209, 233, 1969, 925, 695, 1321, 11965, 29849, 120519, 195105}}, +{14801, 18, 23197, {1, 3, 7, 11, 9, 45, 27, 9, 57, 649, 1801, 2653, 1535, 45, 8901, 28755, 26475, 112341}}, +{14802, 18, 23216, {1, 1, 3, 13, 11, 57, 103, 213, 193, 779, 541, 3685, 4191, 6105, 7199, 63659, 49673, 208361}}, +{14803, 18, 23221, {1, 3, 3, 7, 15, 15, 9, 207, 387, 429, 1213, 1703, 5753, 10261, 8705, 62783, 9643, 248591}}, +{14804, 18, 23228, {1, 3, 3, 15, 23, 17, 5, 83, 295, 685, 2003, 1723, 2799, 14699, 25171, 20275, 45597, 214107}}, +{14805, 18, 23233, {1, 1, 1, 15, 13, 33, 111, 69, 329, 273, 1303, 3377, 4151, 12547, 20411, 54845, 7839, 173939}}, +{14806, 18, 23234, {1, 1, 5, 15, 25, 31, 11, 75, 69, 501, 1485, 3659, 3889, 9715, 9633, 45313, 112377, 27799}}, +{14807, 18, 23251, {1, 1, 3, 11, 31, 27, 7, 25, 315, 593, 315, 275, 1453, 9429, 10023, 17939, 37651, 217435}}, +{14808, 18, 23257, {1, 3, 7, 7, 27, 41, 69, 95, 19, 763, 1733, 2097, 6723, 7051, 15209, 53047, 56117, 87639}}, +{14809, 18, 23258, {1, 3, 7, 5, 15, 61, 31, 19, 361, 571, 727, 405, 835, 4847, 26777, 50311, 104125, 127197}}, +{14810, 18, 23288, {1, 1, 1, 11, 11, 61, 59, 63, 409, 219, 1135, 3385, 5583, 16143, 22709, 31247, 19871, 68557}}, +{14811, 18, 23302, {1, 3, 7, 1, 11, 3, 121, 41, 135, 427, 1267, 2169, 507, 757, 12411, 50655, 75625, 1199}}, +{14812, 18, 23341, {1, 1, 7, 5, 17, 21, 89, 119, 55, 395, 979, 909, 1711, 3289, 8433, 9, 12743, 109027}}, +{14813, 18, 23373, {1, 1, 1, 13, 5, 11, 93, 35, 437, 173, 1157, 2749, 6855, 8307, 26145, 22593, 125415, 65509}}, +{14814, 18, 23402, {1, 1, 5, 3, 25, 27, 1, 173, 113, 373, 1769, 2941, 1895, 3399, 27665, 50613, 20747, 31903}}, +{14815, 18, 23409, {1, 1, 1, 1, 9, 7, 53, 73, 465, 725, 1537, 579, 83, 925, 15507, 13595, 16927, 205087}}, +{14816, 18, 23428, {1, 1, 3, 7, 7, 23, 31, 127, 27, 727, 1305, 3879, 817, 15995, 28607, 22695, 6367, 161587}}, +{14817, 18, 23435, {1, 3, 1, 7, 29, 23, 27, 117, 279, 917, 1105, 2061, 7719, 13633, 16501, 33739, 71939, 143115}}, +{14818, 18, 23440, {1, 3, 7, 11, 7, 27, 65, 133, 411, 441, 925, 1485, 2035, 3067, 14511, 58511, 120773, 228731}}, +{14819, 18, 23449, {1, 1, 3, 9, 21, 55, 27, 73, 175, 395, 1201, 2599, 3839, 11163, 5057, 3385, 43265, 105211}}, +{14820, 18, 23459, {1, 1, 1, 3, 7, 63, 91, 197, 417, 763, 1391, 3729, 2791, 1975, 23655, 50611, 110315, 86879}}, +{14821, 18, 23473, {1, 3, 3, 5, 31, 35, 67, 67, 89, 933, 1005, 1837, 5947, 2559, 27731, 25151, 102959, 81557}}, +{14822, 18, 23500, {1, 3, 3, 1, 3, 39, 57, 199, 87, 91, 1641, 3407, 2823, 10441, 26357, 56677, 17647, 86831}}, +{14823, 18, 23511, {1, 3, 5, 7, 15, 5, 49, 227, 395, 837, 1707, 1677, 1907, 13101, 1929, 61701, 1479, 80671}}, +{14824, 18, 23548, {1, 1, 1, 11, 17, 57, 37, 151, 61, 709, 2027, 2239, 3283, 5467, 17221, 40759, 91637, 258167}}, +{14825, 18, 23560, {1, 3, 5, 11, 27, 29, 121, 181, 503, 705, 225, 1111, 7183, 3219, 3233, 2085, 113619, 32959}}, +{14826, 18, 23563, {1, 1, 7, 5, 29, 31, 93, 113, 457, 161, 337, 2003, 1865, 13357, 19961, 51485, 62751, 111285}}, +{14827, 18, 23594, {1, 3, 1, 1, 23, 25, 65, 99, 11, 835, 661, 3291, 2655, 1135, 19957, 5029, 110483, 2499}}, +{14828, 18, 23601, {1, 1, 1, 1, 25, 21, 59, 203, 471, 697, 455, 1561, 3215, 609, 5097, 8715, 115705, 21441}}, +{14829, 18, 23625, {1, 1, 5, 13, 27, 37, 15, 175, 191, 975, 977, 401, 7053, 14291, 14621, 48989, 113033, 172569}}, +{14830, 18, 23640, {1, 3, 1, 1, 19, 11, 125, 53, 307, 421, 93, 2487, 5907, 2195, 30569, 21009, 20759, 246937}}, +{14831, 18, 23650, {1, 3, 7, 3, 23, 21, 103, 115, 453, 537, 473, 1069, 3007, 15111, 3477, 5635, 46423, 68633}}, +{14832, 18, 23662, {1, 3, 3, 1, 21, 1, 49, 197, 173, 775, 1877, 1309, 729, 3555, 5981, 32539, 22765, 171077}}, +{14833, 18, 23692, {1, 1, 3, 13, 19, 5, 75, 149, 441, 665, 1567, 2433, 8173, 12639, 27479, 47221, 66203, 89017}}, +{14834, 18, 23726, {1, 1, 1, 11, 1, 55, 99, 119, 491, 621, 619, 2521, 905, 11601, 26481, 2023, 127413, 220387}}, +{14835, 18, 23738, {1, 1, 7, 11, 9, 21, 57, 93, 243, 229, 1445, 997, 1317, 2327, 14141, 45787, 82295, 72823}}, +{14836, 18, 23743, {1, 3, 7, 3, 11, 7, 115, 143, 349, 507, 1047, 2573, 2491, 13351, 19019, 4857, 62781, 261261}}, +{14837, 18, 23755, {1, 1, 3, 1, 1, 13, 45, 227, 41, 947, 693, 2853, 7459, 1485, 22087, 61195, 111771, 136389}}, +{14838, 18, 23760, {1, 1, 3, 11, 13, 53, 49, 15, 425, 29, 681, 1493, 1385, 9555, 13291, 36735, 12351, 29293}}, +{14839, 18, 23799, {1, 1, 3, 1, 5, 19, 37, 45, 69, 209, 365, 3949, 6163, 5207, 9297, 21147, 71437, 40487}}, +{14840, 18, 23848, {1, 3, 3, 13, 31, 21, 9, 177, 95, 285, 1953, 1969, 7367, 7401, 12017, 9939, 11895, 213133}}, +{14841, 18, 23859, {1, 1, 7, 1, 1, 63, 103, 141, 39, 679, 123, 2941, 4335, 199, 12237, 6599, 48641, 140063}}, +{14842, 18, 23876, {1, 3, 7, 3, 31, 17, 21, 77, 65, 979, 109, 3325, 1781, 6983, 31477, 23149, 33943, 96137}}, +{14843, 18, 23897, {1, 3, 3, 5, 21, 5, 125, 117, 427, 381, 511, 2643, 409, 4945, 3167, 45879, 1469, 56077}}, +{14844, 18, 23907, {1, 3, 1, 5, 27, 43, 83, 31, 65, 645, 1205, 1387, 723, 15359, 13517, 23601, 61717, 47079}}, +{14845, 18, 23919, {1, 3, 3, 13, 15, 37, 101, 175, 225, 513, 483, 1291, 669, 5335, 16023, 287, 51819, 239803}}, +{14846, 18, 23921, {1, 3, 3, 3, 3, 1, 75, 175, 185, 949, 673, 2239, 4355, 10687, 27093, 37409, 23193, 211819}}, +{14847, 18, 23931, {1, 1, 3, 13, 21, 3, 41, 55, 243, 501, 285, 7, 6291, 7725, 17051, 45753, 115117, 14323}}, +{14848, 18, 23933, {1, 1, 1, 5, 13, 11, 51, 175, 435, 673, 67, 1525, 323, 5739, 19977, 62317, 97511, 130883}}, +{14849, 18, 23943, {1, 3, 5, 11, 7, 11, 97, 59, 295, 409, 453, 2439, 5217, 10315, 469, 31187, 17325, 158079}}, +{14850, 18, 23957, {1, 1, 3, 5, 31, 9, 15, 63, 411, 427, 277, 2687, 5021, 1507, 22453, 35559, 122081, 121669}}, +{14851, 18, 23986, {1, 3, 5, 13, 3, 21, 69, 51, 27, 571, 1981, 2729, 5733, 1225, 26821, 43763, 57355, 169279}}, +{14852, 18, 24020, {1, 1, 1, 13, 31, 37, 33, 19, 313, 341, 1141, 1689, 4511, 789, 15317, 61263, 79371, 65157}}, +{14853, 18, 24043, {1, 3, 3, 15, 27, 41, 107, 23, 499, 339, 273, 1937, 2743, 10879, 27127, 64817, 1217, 45863}}, +{14854, 18, 24064, {1, 1, 5, 9, 19, 43, 125, 223, 473, 489, 1999, 1513, 6479, 9511, 12503, 29419, 22559, 209499}}, +{14855, 18, 24082, {1, 3, 1, 13, 25, 55, 53, 61, 303, 337, 1325, 2525, 6503, 1155, 6841, 58167, 8175, 183949}}, +{14856, 18, 24084, {1, 3, 3, 11, 3, 15, 55, 105, 497, 527, 1007, 3545, 4187, 8723, 12761, 20751, 101583, 225373}}, +{14857, 18, 24088, {1, 3, 3, 9, 19, 59, 57, 215, 313, 871, 407, 2475, 879, 15147, 31945, 23939, 104073, 217619}}, +{14858, 18, 24117, {1, 1, 3, 1, 27, 23, 3, 43, 471, 757, 1525, 3003, 2779, 6731, 12423, 59621, 72935, 192283}}, +{14859, 18, 24149, {1, 3, 1, 7, 13, 23, 13, 91, 95, 745, 639, 2627, 4595, 11735, 4143, 23573, 98647, 171201}}, +{14860, 18, 24165, {1, 1, 1, 15, 3, 61, 33, 181, 351, 777, 1365, 1691, 2465, 5289, 24567, 8059, 95301, 75855}}, +{14861, 18, 24223, {1, 3, 5, 13, 1, 57, 57, 187, 1, 601, 563, 1703, 1307, 14673, 7793, 44589, 7629, 254071}}, +{14862, 18, 24247, {1, 1, 5, 13, 29, 17, 61, 233, 371, 909, 529, 185, 127, 15773, 19529, 49271, 26749, 70869}}, +{14863, 18, 24259, {1, 1, 3, 9, 21, 41, 37, 71, 505, 969, 301, 1667, 5879, 13187, 2461, 17301, 103673, 235133}}, +{14864, 18, 24283, {1, 3, 1, 3, 9, 13, 75, 63, 313, 273, 1061, 3821, 539, 9887, 19775, 17259, 93133, 217245}}, +{14865, 18, 24296, {1, 3, 5, 5, 21, 27, 9, 11, 461, 575, 507, 577, 4559, 9995, 13953, 61023, 121941, 195419}}, +{14866, 18, 24336, {1, 3, 3, 7, 17, 17, 45, 193, 271, 571, 1337, 2107, 1923, 4791, 23773, 60923, 58085, 81219}}, +{14867, 18, 24342, {1, 3, 1, 7, 11, 7, 85, 33, 231, 307, 993, 1509, 1427, 9545, 7919, 39775, 81145, 79139}}, +{14868, 18, 24389, {1, 3, 5, 3, 9, 57, 117, 187, 57, 719, 1635, 2499, 6747, 6649, 22643, 16429, 83233, 122057}}, +{14869, 18, 24394, {1, 1, 3, 11, 7, 39, 103, 221, 167, 181, 1355, 989, 3399, 9471, 10493, 57267, 106551, 158599}}, +{14870, 18, 24414, {1, 3, 1, 15, 23, 19, 29, 11, 355, 923, 1401, 509, 3647, 5663, 2353, 53217, 70687, 145613}}, +{14871, 18, 24424, {1, 3, 3, 11, 11, 5, 21, 107, 177, 429, 119, 1029, 5931, 7543, 15455, 62797, 118095, 35387}}, +{14872, 18, 24441, {1, 3, 5, 15, 19, 53, 17, 215, 279, 497, 1157, 2235, 5541, 5899, 20711, 20843, 113821, 164231}}, +{14873, 18, 24491, {1, 1, 1, 15, 21, 33, 67, 247, 55, 573, 1863, 2703, 5267, 4071, 18235, 44659, 102379, 171529}}, +{14874, 18, 24502, {1, 3, 1, 15, 5, 59, 69, 189, 313, 243, 339, 3097, 4999, 5909, 1903, 56143, 76209, 83073}}, +{14875, 18, 24534, {1, 3, 5, 15, 11, 41, 65, 207, 95, 115, 1203, 3731, 6845, 11173, 8281, 40623, 97119, 218455}}, +{14876, 18, 24540, {1, 3, 7, 13, 29, 57, 5, 31, 255, 539, 107, 953, 3707, 9233, 20295, 17459, 2005, 56193}}, +{14877, 18, 24543, {1, 1, 1, 15, 5, 31, 83, 165, 211, 433, 1411, 2949, 4817, 1645, 1693, 9877, 118493, 142923}}, +{14878, 18, 24549, {1, 3, 1, 11, 19, 61, 35, 21, 159, 159, 1717, 3227, 3351, 8641, 20575, 13721, 114649, 129201}}, +{14879, 18, 24567, {1, 3, 1, 13, 9, 41, 17, 7, 209, 501, 445, 23, 7911, 5867, 30129, 643, 36363, 52037}}, +{14880, 18, 24583, {1, 3, 5, 11, 31, 55, 27, 81, 413, 167, 599, 2231, 7055, 4013, 26729, 63927, 12075, 208123}}, +{14881, 18, 24693, {1, 1, 7, 9, 11, 39, 99, 187, 169, 999, 609, 3647, 2497, 8969, 30919, 29145, 67699, 51601}}, +{14882, 18, 24704, {1, 3, 1, 1, 11, 11, 69, 29, 197, 979, 1135, 869, 5435, 5151, 26349, 55911, 68051, 131849}}, +{14883, 18, 24719, {1, 1, 1, 5, 27, 1, 85, 145, 439, 585, 1713, 677, 1833, 14139, 5547, 31265, 82223, 47605}}, +{14884, 18, 24749, {1, 3, 5, 9, 17, 23, 31, 199, 447, 551, 683, 2977, 7839, 8681, 15923, 61057, 89875, 52945}}, +{14885, 18, 24799, {1, 1, 3, 11, 9, 17, 29, 125, 195, 123, 1259, 2729, 3099, 2229, 9683, 13121, 105399, 111833}}, +{14886, 18, 24830, {1, 3, 1, 3, 1, 47, 93, 117, 461, 633, 1641, 933, 7927, 13569, 483, 28159, 121561, 164325}}, +{14887, 18, 24835, {1, 3, 1, 5, 21, 19, 79, 183, 395, 23, 767, 519, 4857, 10385, 12425, 26207, 114623, 37125}}, +{14888, 18, 24907, {1, 1, 5, 5, 9, 47, 67, 217, 499, 843, 1539, 301, 1485, 3157, 22375, 47199, 26215, 182785}}, +{14889, 18, 24917, {1, 1, 1, 13, 9, 37, 87, 49, 445, 681, 1097, 1049, 4093, 13167, 18447, 58243, 41797, 217929}}, +{14890, 18, 24940, {1, 1, 5, 13, 13, 49, 21, 149, 79, 113, 1217, 921, 6321, 9345, 27987, 21723, 49249, 18813}}, +{14891, 18, 24943, {1, 3, 1, 3, 15, 27, 67, 69, 131, 713, 1741, 1955, 5665, 8749, 11971, 11257, 13999, 124535}}, +{14892, 18, 24958, {1, 3, 1, 3, 3, 11, 21, 167, 441, 557, 593, 3261, 3099, 2801, 21725, 23247, 106891, 129187}}, +{14893, 18, 24962, {1, 1, 1, 11, 5, 55, 33, 71, 505, 85, 1609, 521, 5459, 12777, 13007, 255, 67537, 2877}}, +{14894, 18, 24964, {1, 1, 1, 3, 31, 47, 49, 119, 351, 797, 1407, 4089, 2381, 12409, 12849, 23489, 53631, 119387}}, +{14895, 18, 24968, {1, 3, 5, 11, 25, 11, 25, 185, 85, 849, 141, 385, 3663, 13133, 8451, 61463, 35129, 149933}}, +{14896, 18, 25015, {1, 3, 7, 9, 23, 17, 21, 197, 15, 893, 939, 707, 5491, 7249, 14009, 18973, 111545, 36809}}, +{14897, 18, 25024, {1, 3, 3, 13, 23, 15, 19, 193, 223, 627, 1529, 1963, 1003, 7199, 15361, 25233, 110281, 221761}}, +{14898, 18, 25027, {1, 3, 3, 1, 17, 51, 61, 215, 311, 919, 349, 59, 2897, 12137, 5931, 37611, 124387, 83503}}, +{14899, 18, 25033, {1, 3, 7, 9, 13, 47, 53, 139, 481, 733, 389, 1209, 3281, 593, 29103, 61521, 41445, 11015}}, +{14900, 18, 25041, {1, 1, 1, 13, 3, 31, 19, 47, 151, 883, 1707, 827, 2129, 4333, 871, 42967, 79701, 192211}}, +{14901, 18, 25047, {1, 3, 3, 11, 11, 51, 121, 241, 199, 881, 1493, 2381, 5161, 13287, 8155, 52481, 120307, 206203}}, +{14902, 18, 25057, {1, 1, 1, 13, 15, 37, 27, 151, 17, 851, 1343, 1447, 43, 10267, 18267, 21347, 129277, 83987}}, +{14903, 18, 25082, {1, 1, 3, 3, 13, 17, 53, 217, 253, 853, 1461, 1953, 617, 4209, 9925, 377, 42789, 150415}}, +{14904, 18, 25093, {1, 3, 7, 11, 13, 23, 83, 235, 39, 701, 1091, 25, 1807, 15431, 2169, 5339, 123679, 117053}}, +{14905, 18, 25105, {1, 3, 7, 13, 3, 29, 43, 149, 33, 873, 1177, 1961, 7943, 11317, 30725, 55765, 50929, 12335}}, +{14906, 18, 25112, {1, 1, 3, 5, 25, 1, 91, 121, 295, 25, 1743, 2125, 2643, 11175, 15089, 44979, 28355, 543}}, +{14907, 18, 25117, {1, 1, 1, 13, 27, 27, 43, 195, 377, 821, 437, 3445, 2673, 15221, 15101, 25143, 22347, 218549}}, +{14908, 18, 25131, {1, 1, 3, 7, 9, 51, 121, 231, 91, 913, 1325, 167, 8067, 8119, 9307, 33551, 58069, 170567}}, +{14909, 18, 25139, {1, 3, 7, 7, 15, 7, 85, 51, 11, 353, 1117, 2479, 3091, 2377, 23589, 38537, 113047, 261285}}, +{14910, 18, 25194, {1, 1, 3, 5, 15, 33, 61, 145, 147, 815, 767, 9, 2059, 11463, 1883, 8565, 101043, 117565}}, +{14911, 18, 25204, {1, 3, 5, 3, 5, 49, 5, 33, 15, 13, 895, 3973, 7963, 3831, 26817, 10799, 111409, 90679}}, +{14912, 18, 25244, {1, 1, 5, 7, 5, 51, 35, 237, 217, 531, 719, 2711, 1937, 16071, 23233, 22799, 66023, 145739}}, +{14913, 18, 25247, {1, 3, 5, 1, 5, 63, 1, 163, 9, 697, 1379, 2989, 7113, 9821, 15941, 6495, 7825, 29715}}, +{14914, 18, 25253, {1, 3, 5, 7, 9, 41, 113, 173, 151, 963, 2019, 3531, 1133, 4287, 16917, 16929, 12345, 31201}}, +{14915, 18, 25258, {1, 3, 7, 1, 25, 9, 5, 195, 175, 297, 717, 3725, 33, 5155, 4405, 56171, 105597, 132407}}, +{14916, 18, 25275, {1, 1, 7, 7, 3, 59, 115, 95, 227, 951, 843, 619, 7791, 10981, 11773, 57651, 108391, 179561}}, +{14917, 18, 25320, {1, 3, 3, 1, 9, 3, 59, 161, 417, 413, 1933, 1027, 4575, 10427, 15643, 16049, 120089, 176607}}, +{14918, 18, 25338, {1, 3, 3, 3, 15, 1, 83, 195, 59, 859, 1669, 1063, 2069, 15875, 16459, 53741, 114521, 37641}}, +{14919, 18, 25343, {1, 1, 1, 11, 11, 45, 47, 143, 11, 239, 1329, 865, 2693, 899, 26265, 43255, 125679, 130099}}, +{14920, 18, 25351, {1, 3, 5, 3, 31, 51, 95, 127, 79, 167, 117, 3177, 5875, 14039, 20341, 47815, 118799, 211871}}, +{14921, 18, 25358, {1, 1, 1, 1, 3, 21, 65, 203, 11, 565, 537, 1307, 8189, 11423, 7745, 56117, 110959, 95361}}, +{14922, 18, 25372, {1, 1, 7, 7, 21, 63, 63, 231, 441, 127, 1943, 13, 4813, 10607, 23867, 43891, 15801, 173245}}, +{14923, 18, 25399, {1, 3, 3, 5, 25, 23, 123, 133, 129, 303, 1993, 1453, 1109, 4649, 30315, 62399, 121575, 60069}}, +{14924, 18, 25408, {1, 3, 5, 3, 29, 23, 69, 141, 137, 1017, 1915, 35, 3817, 6249, 22427, 7281, 88473, 230167}}, +{14925, 18, 25432, {1, 3, 7, 7, 19, 37, 93, 217, 287, 731, 583, 3377, 2879, 4873, 5549, 52949, 127285, 211173}}, +{14926, 18, 25442, {1, 1, 5, 7, 23, 41, 49, 145, 277, 571, 1225, 455, 2133, 1229, 25421, 20179, 70919, 242825}}, +{14927, 18, 25462, {1, 3, 5, 5, 29, 3, 1, 89, 413, 901, 1343, 3963, 6969, 14649, 18331, 4573, 82077, 100693}}, +{14928, 18, 25465, {1, 1, 1, 13, 31, 53, 107, 95, 151, 539, 1593, 3763, 1007, 8959, 25235, 16461, 121819, 106143}}, +{14929, 18, 25468, {1, 1, 1, 3, 11, 15, 5, 157, 347, 81, 2013, 2025, 6541, 12287, 1315, 23285, 23539, 75027}}, +{14930, 18, 25482, {1, 1, 5, 7, 17, 11, 65, 157, 93, 607, 1445, 4089, 3139, 4699, 1225, 58935, 93673, 146467}}, +{14931, 18, 25489, {1, 3, 3, 13, 29, 59, 69, 141, 257, 463, 93, 649, 8179, 15205, 6943, 45317, 31269, 70825}}, +{14932, 18, 25490, {1, 3, 5, 9, 23, 39, 113, 61, 315, 463, 1739, 149, 6007, 2789, 12021, 969, 18551, 153669}}, +{14933, 18, 25505, {1, 1, 3, 15, 19, 9, 23, 211, 265, 877, 325, 2635, 8131, 4957, 24371, 60975, 3887, 198927}}, +{14934, 18, 25511, {1, 1, 3, 11, 29, 31, 5, 105, 157, 573, 2009, 1701, 1549, 1641, 17429, 13587, 48421, 8675}}, +{14935, 18, 25512, {1, 1, 5, 13, 3, 13, 17, 55, 101, 369, 705, 3635, 5195, 10439, 12881, 21565, 1671, 75489}}, +{14936, 18, 25552, {1, 3, 3, 1, 1, 23, 85, 189, 347, 205, 5, 3465, 3269, 3347, 10163, 26921, 86555, 9387}}, +{14937, 18, 25555, {1, 3, 7, 15, 27, 21, 79, 151, 279, 627, 1093, 1929, 5549, 12141, 5245, 55747, 65939, 193759}}, +{14938, 18, 25595, {1, 1, 1, 5, 5, 23, 57, 235, 143, 129, 795, 35, 4375, 12577, 871, 20879, 82811, 52279}}, +{14939, 18, 25636, {1, 3, 1, 5, 11, 1, 125, 99, 89, 629, 857, 2631, 393, 15075, 27473, 42695, 61505, 239651}}, +{14940, 18, 25672, {1, 1, 5, 1, 9, 11, 55, 203, 453, 677, 259, 1979, 4101, 16067, 26783, 17907, 75349, 62797}}, +{14941, 18, 25685, {1, 3, 7, 5, 5, 19, 85, 165, 341, 405, 1779, 87, 889, 265, 9851, 36175, 69697, 123769}}, +{14942, 18, 25696, {1, 3, 7, 1, 7, 49, 93, 57, 85, 597, 183, 3253, 6301, 9307, 8753, 38133, 58743, 19621}}, +{14943, 18, 25720, {1, 1, 3, 9, 1, 15, 125, 215, 391, 141, 87, 37, 4333, 5033, 30549, 64281, 18577, 156093}}, +{14944, 18, 25730, {1, 3, 3, 15, 17, 25, 29, 81, 339, 865, 1619, 773, 901, 8163, 22275, 57159, 119951, 137451}}, +{14945, 18, 25735, {1, 3, 5, 15, 7, 57, 113, 221, 13, 49, 1653, 3695, 4423, 4383, 28669, 64175, 130355, 202543}}, +{14946, 18, 25753, {1, 1, 3, 9, 29, 21, 19, 119, 409, 717, 1853, 3981, 4489, 3985, 31205, 10423, 13223, 131973}}, +{14947, 18, 25756, {1, 1, 3, 15, 29, 7, 1, 85, 133, 345, 317, 2363, 7803, 4975, 19441, 10497, 42059, 131531}}, +{14948, 18, 25769, {1, 1, 7, 13, 3, 53, 49, 27, 487, 901, 801, 335, 6317, 14205, 26655, 52747, 102659, 231359}}, +{14949, 18, 25821, {1, 3, 3, 3, 13, 33, 113, 107, 407, 499, 903, 3059, 1343, 11859, 6315, 23071, 73627, 44239}}, +{14950, 18, 25825, {1, 3, 5, 15, 1, 53, 59, 247, 213, 981, 443, 3, 615, 12067, 3881, 61759, 101219, 110407}}, +{14951, 18, 25840, {1, 3, 5, 13, 7, 31, 87, 161, 61, 1023, 147, 2075, 7245, 9025, 7229, 60935, 104481, 169561}}, +{14952, 18, 25860, {1, 3, 1, 15, 25, 17, 53, 107, 311, 621, 1493, 2443, 4635, 12163, 12543, 43031, 90843, 139645}}, +{14953, 18, 25869, {1, 3, 5, 11, 7, 49, 91, 165, 91, 329, 493, 3533, 7429, 7047, 14767, 31641, 62005, 77267}}, +{14954, 18, 25872, {1, 1, 3, 9, 31, 21, 19, 167, 185, 199, 1989, 1093, 4213, 4769, 21659, 19685, 122123, 215233}}, +{14955, 18, 25956, {1, 3, 3, 7, 27, 23, 99, 205, 365, 689, 1281, 419, 4207, 5355, 20245, 25029, 123029, 61499}}, +{14956, 18, 25973, {1, 3, 3, 7, 19, 15, 29, 185, 165, 203, 1859, 2895, 6361, 6331, 13641, 42577, 33757, 41305}}, +{14957, 18, 25994, {1, 3, 5, 11, 21, 43, 15, 11, 425, 125, 1597, 1109, 3335, 7009, 20799, 41261, 127813, 181261}}, +{14958, 18, 26002, {1, 1, 5, 5, 27, 35, 35, 159, 111, 1011, 1487, 813, 4985, 2555, 23741, 44675, 97159, 250477}}, +{14959, 18, 26020, {1, 3, 3, 7, 17, 41, 81, 187, 367, 767, 1345, 205, 5797, 9129, 21973, 39911, 130131, 96891}}, +{14960, 18, 26023, {1, 3, 5, 1, 1, 47, 57, 177, 127, 791, 1427, 1895, 5995, 12569, 32711, 58599, 55641, 80405}}, +{14961, 18, 26041, {1, 3, 3, 1, 23, 13, 115, 81, 511, 677, 775, 3143, 4963, 7093, 15963, 59893, 22609, 137601}}, +{14962, 18, 26044, {1, 1, 5, 9, 17, 17, 115, 127, 397, 139, 1171, 207, 3485, 15869, 465, 26267, 29957, 205459}}, +{14963, 18, 26069, {1, 3, 7, 3, 9, 29, 23, 189, 447, 481, 753, 2415, 2669, 6007, 15201, 7317, 18861, 173759}}, +{14964, 18, 26097, {1, 3, 5, 7, 13, 43, 13, 163, 363, 683, 1869, 1237, 2523, 3661, 13887, 5593, 91513, 220177}}, +{14965, 18, 26113, {1, 1, 1, 11, 7, 11, 43, 39, 319, 793, 375, 3159, 7621, 8965, 25743, 351, 31873, 18115}}, +{14966, 18, 26138, {1, 1, 5, 5, 11, 57, 79, 147, 55, 553, 417, 1365, 3979, 9789, 22677, 58645, 104549, 9019}}, +{14967, 18, 26167, {1, 1, 3, 11, 17, 37, 127, 5, 165, 867, 79, 2259, 197, 4789, 28109, 46721, 3431, 118939}}, +{14968, 18, 26216, {1, 1, 5, 13, 19, 45, 113, 11, 125, 351, 1753, 3201, 1697, 2567, 9717, 22247, 84309, 248583}}, +{14969, 18, 26230, {1, 1, 5, 9, 5, 37, 65, 47, 261, 855, 1573, 2267, 7977, 13029, 32527, 59805, 103591, 180041}}, +{14970, 18, 26243, {1, 3, 3, 9, 31, 5, 115, 159, 111, 899, 1907, 2671, 1575, 7021, 10281, 34905, 641, 63549}}, +{14971, 18, 26245, {1, 3, 5, 1, 17, 61, 45, 9, 375, 761, 117, 1767, 4657, 12217, 12067, 42807, 118587, 72715}}, +{14972, 18, 26263, {1, 1, 1, 13, 3, 3, 93, 3, 351, 97, 119, 1743, 81, 12761, 22529, 47191, 111315, 256501}}, +{14973, 18, 26264, {1, 1, 5, 7, 29, 23, 41, 9, 231, 567, 1565, 3539, 7241, 11535, 7375, 10391, 127045, 9371}}, +{14974, 18, 26269, {1, 1, 1, 15, 23, 47, 39, 57, 73, 809, 513, 3233, 8071, 8595, 13817, 821, 89091, 107173}}, +{14975, 18, 26311, {1, 1, 1, 13, 13, 43, 75, 239, 487, 175, 1561, 3925, 3743, 14247, 15713, 55005, 116135, 199827}}, +{14976, 18, 26346, {1, 1, 3, 7, 13, 15, 67, 147, 77, 241, 1763, 651, 1107, 4943, 15651, 23259, 45931, 34717}}, +{14977, 18, 26354, {1, 1, 3, 5, 15, 15, 67, 153, 163, 179, 1567, 685, 3245, 2205, 8373, 56567, 32091, 23313}}, +{14978, 18, 26365, {1, 1, 7, 9, 1, 27, 79, 209, 263, 517, 635, 3, 103, 2173, 22659, 11319, 103757, 144449}}, +{14979, 18, 26368, {1, 1, 1, 5, 11, 63, 21, 89, 443, 775, 327, 1559, 1421, 2309, 18597, 46385, 16547, 186813}}, +{14980, 18, 26398, {1, 1, 7, 9, 27, 37, 43, 7, 305, 117, 1103, 1801, 3349, 12225, 28215, 8857, 118677, 88909}}, +{14981, 18, 26401, {1, 3, 3, 7, 15, 59, 21, 19, 371, 81, 755, 1565, 4823, 16363, 20301, 33571, 74423, 177205}}, +{14982, 18, 26426, {1, 1, 3, 9, 15, 33, 23, 31, 171, 713, 271, 2437, 3609, 4271, 24355, 46283, 121767, 188501}}, +{14983, 18, 26436, {1, 1, 1, 1, 21, 3, 3, 241, 339, 211, 443, 1577, 343, 2625, 1077, 29933, 106401, 51439}}, +{14984, 18, 26443, {1, 3, 5, 15, 13, 31, 11, 167, 15, 101, 373, 2095, 3017, 1347, 15029, 6579, 21233, 87589}}, +{14985, 18, 26448, {1, 3, 1, 3, 15, 1, 61, 239, 13, 867, 1621, 2275, 5757, 8275, 7923, 44469, 113513, 84927}}, +{14986, 18, 26458, {1, 1, 1, 13, 23, 27, 101, 25, 459, 517, 127, 1131, 669, 13209, 23671, 3379, 66091, 72919}}, +{14987, 18, 26464, {1, 3, 5, 7, 29, 53, 25, 185, 101, 707, 281, 183, 2823, 7241, 3127, 48093, 20195, 208349}}, +{14988, 18, 26476, {1, 3, 3, 15, 31, 11, 3, 165, 453, 609, 1053, 3937, 1989, 13887, 13415, 8005, 103537, 17853}}, +{14989, 18, 26503, {1, 1, 3, 7, 3, 41, 13, 67, 227, 265, 767, 391, 1835, 8827, 13131, 42605, 117089, 12475}}, +{14990, 18, 26504, {1, 1, 7, 3, 15, 31, 45, 157, 261, 207, 1109, 1587, 5389, 13239, 31697, 35969, 79839, 209633}}, +{14991, 18, 26515, {1, 1, 5, 9, 31, 3, 35, 187, 5, 945, 633, 2645, 171, 2221, 18369, 41765, 82373, 8007}}, +{14992, 18, 26531, {1, 1, 7, 7, 3, 57, 73, 103, 245, 811, 1637, 101, 6335, 9911, 663, 21779, 31681, 119141}}, +{14993, 18, 26548, {1, 1, 5, 13, 27, 25, 5, 203, 183, 251, 1803, 665, 6295, 965, 5269, 379, 78455, 7097}}, +{14994, 18, 26570, {1, 1, 5, 3, 19, 55, 45, 161, 481, 737, 1903, 1093, 3313, 4427, 7959, 6231, 94769, 123827}}, +{14995, 18, 26589, {1, 1, 7, 11, 29, 41, 77, 165, 49, 875, 137, 2003, 8093, 1941, 25979, 10765, 99241, 71275}}, +{14996, 18, 26594, {1, 3, 5, 3, 23, 1, 89, 163, 293, 701, 29, 2543, 4487, 14873, 28123, 48643, 31633, 74179}}, +{14997, 18, 26608, {1, 1, 7, 1, 13, 33, 33, 173, 111, 959, 205, 1633, 3127, 3963, 6455, 41809, 60655, 247121}}, +{14998, 18, 26623, {1, 3, 5, 13, 1, 49, 87, 217, 381, 125, 823, 837, 3967, 8157, 11097, 35721, 93591, 3939}}, +{14999, 18, 26678, {1, 3, 7, 1, 7, 27, 29, 21, 295, 127, 823, 2409, 1873, 2417, 27961, 39211, 14785, 71557}}, +{15000, 18, 26690, {1, 3, 1, 5, 31, 59, 43, 121, 217, 417, 2029, 3983, 5629, 10447, 1073, 57515, 58849, 178927}}, +{15001, 18, 26709, {1, 3, 3, 11, 5, 59, 45, 39, 269, 483, 757, 3245, 4383, 11127, 26535, 17395, 60953, 259333}}, +{15002, 18, 26725, {1, 1, 1, 5, 5, 49, 81, 241, 371, 353, 1293, 3375, 6725, 11891, 5973, 13901, 37999, 17751}}, +{15003, 18, 26744, {1, 3, 3, 7, 31, 21, 45, 107, 33, 911, 1869, 2643, 2655, 3979, 5509, 33065, 128463, 246937}}, +{15004, 18, 26763, {1, 1, 1, 1, 31, 33, 99, 29, 485, 11, 1423, 1775, 2045, 741, 30691, 53957, 13891, 57303}}, +{15005, 18, 26765, {1, 1, 7, 13, 7, 37, 117, 121, 51, 743, 887, 1769, 1049, 12859, 1663, 27763, 90969, 38935}}, +{15006, 18, 26768, {1, 3, 5, 7, 3, 41, 121, 89, 461, 979, 457, 2973, 8109, 13819, 30237, 54671, 66967, 135233}}, +{15007, 18, 26784, {1, 1, 7, 13, 13, 47, 51, 121, 295, 847, 681, 1163, 8123, 14179, 26561, 54057, 74043, 146155}}, +{15008, 18, 26802, {1, 3, 3, 11, 21, 15, 9, 85, 445, 11, 1525, 3165, 5929, 12481, 10769, 31885, 51487, 248933}}, +{15009, 18, 26814, {1, 3, 1, 9, 25, 41, 59, 139, 293, 1021, 2043, 967, 3949, 7309, 6545, 62761, 37761, 22395}}, +{15010, 18, 26856, {1, 3, 7, 15, 25, 45, 29, 75, 283, 845, 687, 3285, 7263, 10237, 5343, 58635, 85137, 2387}}, +{15011, 18, 26861, {1, 1, 3, 15, 29, 33, 111, 175, 251, 181, 709, 1373, 1661, 1155, 30479, 57823, 28809, 74117}}, +{15012, 18, 26862, {1, 3, 3, 5, 11, 37, 55, 155, 439, 173, 1861, 1713, 1675, 12119, 12531, 50995, 124657, 58321}}, +{15013, 18, 26894, {1, 1, 5, 13, 1, 23, 27, 141, 3, 985, 1439, 781, 7381, 2223, 26673, 46607, 54953, 24547}}, +{15014, 18, 26908, {1, 1, 5, 7, 5, 3, 41, 115, 503, 731, 633, 3631, 3455, 15937, 22639, 41163, 65243, 233749}}, +{15015, 18, 26915, {1, 3, 1, 1, 5, 57, 89, 35, 53, 653, 1763, 1247, 6999, 1811, 28191, 52327, 129421, 191093}}, +{15016, 18, 26929, {1, 3, 3, 9, 3, 27, 107, 13, 475, 409, 1623, 483, 3127, 12841, 4777, 36157, 24967, 89795}}, +{15017, 18, 26930, {1, 1, 3, 5, 7, 29, 15, 225, 257, 923, 251, 21, 4559, 3571, 9351, 1739, 37393, 170789}}, +{15018, 18, 26939, {1, 3, 7, 5, 11, 7, 107, 237, 343, 665, 767, 2293, 4781, 4811, 11227, 25045, 3951, 44307}}, +{15019, 18, 26941, {1, 3, 7, 7, 13, 31, 47, 9, 121, 441, 1011, 2015, 8053, 355, 13441, 23213, 60675, 259761}}, +{15020, 18, 26987, {1, 1, 5, 9, 21, 61, 85, 141, 271, 577, 17, 243, 3049, 2479, 28947, 53351, 67379, 211133}}, +{15021, 18, 27023, {1, 1, 1, 15, 23, 1, 119, 141, 311, 543, 1463, 3633, 8111, 9439, 4147, 64913, 28261, 197217}}, +{15022, 18, 27066, {1, 3, 1, 15, 15, 33, 125, 231, 225, 797, 605, 259, 3673, 10423, 7541, 26289, 61681, 136463}}, +{15023, 18, 27079, {1, 3, 1, 13, 23, 15, 15, 151, 289, 657, 1883, 2923, 6861, 1411, 17159, 9353, 79463, 135813}}, +{15024, 18, 27086, {1, 3, 7, 11, 5, 59, 101, 167, 291, 63, 753, 1105, 8173, 2389, 22097, 7207, 110377, 15797}}, +{15025, 18, 27091, {1, 3, 7, 15, 7, 9, 7, 135, 303, 675, 1803, 2827, 1711, 9543, 16567, 24075, 17065, 22193}}, +{15026, 18, 27113, {1, 3, 5, 7, 17, 7, 125, 57, 423, 733, 1813, 4031, 713, 10687, 27315, 37599, 78807, 103429}}, +{15027, 18, 27157, {1, 1, 5, 15, 21, 11, 87, 21, 415, 571, 1169, 2561, 7071, 12499, 195, 20111, 116757, 157731}}, +{15028, 18, 27174, {1, 3, 3, 15, 7, 33, 11, 241, 23, 189, 599, 2891, 2829, 13327, 21777, 57733, 38583, 162161}}, +{15029, 18, 27188, {1, 1, 1, 15, 3, 49, 7, 143, 291, 301, 1439, 793, 3447, 1167, 2815, 24875, 117437, 112561}}, +{15030, 18, 27191, {1, 3, 5, 13, 29, 11, 51, 255, 365, 741, 1919, 2091, 2865, 12721, 4329, 37281, 128703, 739}}, +{15031, 18, 27197, {1, 1, 1, 13, 19, 31, 39, 141, 81, 133, 297, 3837, 7537, 16043, 11755, 10289, 74399, 95371}}, +{15032, 18, 27206, {1, 1, 7, 5, 21, 35, 125, 109, 241, 217, 1219, 2617, 1925, 9573, 19305, 44689, 89365, 248869}}, +{15033, 18, 27210, {1, 3, 5, 5, 13, 33, 43, 221, 325, 267, 837, 809, 6025, 9847, 9267, 13465, 45937, 204339}}, +{15034, 18, 27245, {1, 3, 1, 3, 25, 53, 85, 249, 105, 619, 917, 1213, 5365, 6197, 22929, 27529, 71011, 141651}}, +{15035, 18, 27254, {1, 1, 5, 1, 29, 9, 27, 161, 269, 775, 1043, 303, 4503, 5059, 479, 17237, 51383, 152495}}, +{15036, 18, 27383, {1, 3, 1, 5, 19, 5, 127, 139, 1, 461, 943, 593, 7457, 3357, 1909, 64633, 91811, 92703}}, +{15037, 18, 27387, {1, 1, 5, 7, 1, 21, 83, 29, 123, 83, 1085, 2727, 651, 15801, 20561, 34821, 17671, 162227}}, +{15038, 18, 27416, {1, 3, 7, 1, 19, 59, 33, 195, 81, 69, 51, 1473, 3873, 4247, 3587, 4293, 30831, 245345}}, +{15039, 18, 27422, {1, 3, 1, 3, 23, 27, 19, 115, 275, 293, 705, 131, 1001, 8881, 30165, 25149, 38679, 175167}}, +{15040, 18, 27472, {1, 1, 3, 15, 11, 11, 79, 55, 323, 217, 859, 897, 6567, 12529, 3161, 13009, 100787, 3501}}, +{15041, 18, 27478, {1, 3, 1, 15, 17, 63, 51, 71, 55, 207, 1095, 2527, 611, 9281, 7375, 14553, 16021, 88537}}, +{15042, 18, 27548, {1, 1, 7, 9, 11, 23, 95, 25, 327, 873, 575, 3583, 6587, 137, 23737, 59341, 83281, 93541}}, +{15043, 18, 27579, {1, 1, 5, 7, 15, 37, 89, 105, 471, 757, 103, 3747, 3565, 4957, 23537, 16193, 84843, 256757}}, +{15044, 18, 27582, {1, 3, 5, 1, 15, 17, 119, 231, 387, 715, 797, 3807, 4985, 8335, 4885, 45541, 69597, 238599}}, +{15045, 18, 27589, {1, 1, 3, 1, 7, 21, 87, 205, 39, 503, 433, 3643, 4719, 2051, 10049, 28997, 75981, 253647}}, +{15046, 18, 27593, {1, 3, 1, 13, 9, 21, 103, 63, 27, 267, 185, 3507, 3009, 5183, 2261, 40249, 33733, 70493}}, +{15047, 18, 27613, {1, 1, 3, 13, 7, 7, 79, 13, 141, 327, 1035, 1699, 6273, 5621, 13877, 57607, 50207, 184643}}, +{15048, 18, 27649, {1, 1, 3, 1, 9, 19, 75, 99, 115, 469, 1025, 1999, 1985, 9975, 11069, 59113, 80877, 124153}}, +{15049, 18, 27717, {1, 3, 5, 7, 19, 27, 47, 3, 313, 575, 107, 991, 2575, 11001, 12323, 21443, 126245, 219649}}, +{15050, 18, 27729, {1, 1, 1, 5, 19, 33, 13, 1, 357, 225, 1355, 1827, 7127, 6387, 19299, 24935, 26847, 251433}}, +{15051, 18, 27751, {1, 1, 1, 5, 3, 3, 113, 19, 425, 209, 159, 347, 1349, 6771, 13125, 8393, 21435, 186369}}, +{15052, 18, 27757, {1, 1, 5, 11, 5, 39, 95, 3, 193, 741, 1755, 3361, 1927, 12909, 5413, 29111, 123429, 109191}}, +{15053, 18, 27766, {1, 1, 1, 13, 31, 23, 43, 163, 421, 719, 457, 3149, 7741, 1465, 15719, 42831, 99051, 164675}}, +{15054, 18, 27791, {1, 1, 1, 7, 15, 1, 29, 15, 9, 577, 269, 31, 4361, 5081, 32185, 54869, 115105, 151233}}, +{15055, 18, 27794, {1, 1, 1, 11, 19, 3, 67, 3, 377, 487, 1287, 3463, 6523, 15237, 3171, 38673, 7359, 29739}}, +{15056, 18, 27854, {1, 3, 5, 11, 9, 13, 47, 191, 97, 641, 807, 1085, 1537, 2855, 24615, 32383, 66425, 53713}}, +{15057, 18, 27856, {1, 1, 5, 7, 19, 25, 93, 1, 21, 853, 813, 2535, 4291, 9051, 3385, 507, 73889, 85397}}, +{15058, 18, 27866, {1, 1, 3, 13, 7, 15, 103, 199, 83, 585, 1859, 2089, 839, 8923, 14615, 3399, 7703, 229937}}, +{15059, 18, 27875, {1, 1, 3, 3, 11, 23, 125, 135, 475, 613, 327, 339, 3081, 13221, 4889, 41233, 36547, 195357}}, +{15060, 18, 27902, {1, 3, 7, 7, 19, 23, 85, 217, 501, 447, 1873, 2175, 6753, 2825, 5171, 47561, 13321, 59583}}, +{15061, 18, 27916, {1, 1, 5, 13, 23, 59, 109, 195, 487, 785, 21, 1595, 5641, 10103, 8115, 60647, 78425, 237379}}, +{15062, 18, 27924, {1, 1, 3, 15, 21, 17, 85, 51, 369, 475, 1021, 1129, 7233, 6593, 12467, 55399, 128157, 80539}}, +{15063, 18, 27933, {1, 3, 3, 9, 31, 27, 69, 145, 489, 251, 1997, 1157, 2027, 16109, 4085, 24859, 63561, 79591}}, +{15064, 18, 27940, {1, 3, 3, 5, 29, 49, 41, 185, 405, 471, 431, 3539, 6593, 1185, 24383, 17009, 111215, 79839}}, +{15065, 18, 27947, {1, 1, 7, 3, 3, 15, 97, 157, 301, 227, 717, 3291, 2471, 11515, 30657, 30745, 72147, 98653}}, +{15066, 18, 27969, {1, 3, 5, 1, 23, 21, 67, 223, 185, 385, 137, 2897, 2423, 6119, 28471, 52269, 95725, 9105}}, +{15067, 18, 27981, {1, 3, 3, 11, 19, 1, 111, 131, 293, 495, 1043, 631, 1375, 15347, 22029, 29163, 120025, 81631}}, +{15068, 18, 27996, {1, 1, 7, 5, 17, 55, 47, 183, 367, 81, 555, 2857, 4787, 5605, 32053, 11815, 81771, 234993}}, +{15069, 18, 28005, {1, 3, 7, 15, 15, 49, 45, 221, 49, 299, 887, 3991, 2097, 10819, 23297, 1823, 11319, 205273}}, +{15070, 18, 28030, {1, 1, 1, 1, 1, 15, 91, 253, 213, 849, 501, 1073, 5503, 1379, 28887, 51811, 109763, 226149}}, +{15071, 18, 28064, {1, 1, 1, 7, 27, 39, 17, 29, 359, 655, 1695, 1781, 1203, 1125, 8983, 3477, 13925, 218399}}, +{15072, 18, 28102, {1, 3, 7, 13, 1, 25, 33, 185, 87, 19, 151, 371, 1221, 4859, 20103, 11435, 104263, 218515}}, +{15073, 18, 28108, {1, 1, 3, 5, 17, 43, 29, 149, 207, 39, 1539, 2933, 6825, 12391, 18163, 24543, 35305, 196295}}, +{15074, 18, 28120, {1, 3, 7, 9, 21, 61, 69, 231, 401, 95, 1757, 839, 3395, 7573, 6583, 34621, 119303, 20767}}, +{15075, 18, 28125, {1, 1, 7, 1, 25, 53, 63, 105, 241, 591, 23, 3219, 2387, 13945, 3047, 30939, 63243, 60941}}, +{15076, 18, 28130, {1, 1, 5, 7, 25, 47, 7, 227, 57, 279, 81, 4017, 3117, 6229, 20029, 30031, 25049, 102291}}, +{15077, 18, 28142, {1, 3, 3, 1, 21, 15, 69, 57, 311, 9, 853, 3377, 2949, 4781, 15419, 54741, 11603, 136821}}, +{15078, 18, 28149, {1, 3, 3, 13, 13, 5, 103, 253, 27, 449, 821, 3241, 41, 6643, 15217, 61691, 58463, 46117}}, +{15079, 18, 28165, {1, 1, 7, 7, 27, 51, 1, 239, 71, 955, 145, 1059, 5645, 7025, 4839, 11459, 3051, 235989}}, +{15080, 18, 28169, {1, 1, 5, 15, 15, 13, 33, 21, 209, 681, 1163, 3109, 1441, 6895, 20829, 48769, 35373, 195171}}, +{15081, 18, 28177, {1, 1, 7, 3, 11, 7, 25, 27, 463, 77, 1293, 1977, 4931, 8089, 11079, 14793, 123049, 32259}}, +{15082, 18, 28211, {1, 3, 1, 15, 11, 49, 7, 103, 79, 773, 235, 1653, 6477, 8835, 26627, 61101, 40633, 98155}}, +{15083, 18, 28213, {1, 3, 5, 7, 3, 53, 77, 197, 49, 57, 1533, 3485, 6603, 1131, 9073, 37023, 85293, 170883}}, +{15084, 18, 28220, {1, 3, 7, 15, 23, 5, 125, 75, 413, 521, 1897, 1099, 35, 2013, 687, 51511, 21359, 19995}}, +{15085, 18, 28261, {1, 3, 1, 11, 19, 13, 91, 181, 39, 613, 1917, 3149, 669, 9927, 20967, 38313, 13537, 181873}}, +{15086, 18, 28271, {1, 3, 5, 7, 5, 23, 25, 145, 189, 679, 483, 2689, 2855, 9631, 8863, 34841, 83311, 211507}}, +{15087, 18, 28299, {1, 3, 5, 15, 15, 15, 87, 53, 309, 807, 1405, 259, 3181, 12187, 31529, 8861, 70557, 247787}}, +{15088, 18, 28326, {1, 1, 7, 13, 7, 15, 1, 205, 91, 325, 1371, 531, 4917, 10291, 30827, 32491, 34497, 250301}}, +{15089, 18, 28330, {1, 3, 1, 11, 29, 17, 97, 37, 259, 1021, 1705, 4001, 4385, 7047, 14593, 63443, 3283, 18195}}, +{15090, 18, 28350, {1, 1, 7, 9, 9, 55, 11, 113, 351, 513, 197, 873, 1595, 11331, 27711, 419, 73097, 144357}}, +{15091, 18, 28355, {1, 3, 7, 15, 29, 31, 37, 15, 233, 573, 1457, 293, 5437, 15909, 3087, 24535, 6507, 173555}}, +{15092, 18, 28367, {1, 1, 1, 7, 7, 47, 81, 241, 257, 389, 233, 3275, 919, 14911, 14473, 58457, 78195, 121421}}, +{15093, 18, 28376, {1, 3, 7, 13, 1, 63, 9, 233, 231, 771, 1851, 3829, 7089, 4573, 13297, 58963, 2065, 8365}}, +{15094, 18, 28379, {1, 1, 5, 1, 31, 45, 45, 209, 77, 977, 159, 1521, 969, 10115, 32387, 52821, 124209, 51841}}, +{15095, 18, 28381, {1, 3, 5, 5, 13, 27, 53, 171, 91, 743, 217, 3805, 7721, 15127, 20679, 57459, 53649, 16381}}, +{15096, 18, 28447, {1, 3, 1, 15, 23, 43, 105, 169, 143, 759, 463, 1237, 3311, 2919, 16675, 53049, 12403, 153651}}, +{15097, 18, 28465, {1, 3, 3, 11, 5, 27, 1, 135, 17, 683, 679, 2591, 2929, 12417, 18379, 61903, 81991, 25231}}, +{15098, 18, 28471, {1, 1, 1, 5, 13, 59, 73, 119, 369, 445, 553, 243, 7523, 1105, 20349, 8417, 87535, 148857}}, +{15099, 18, 28472, {1, 3, 7, 15, 29, 3, 49, 49, 7, 753, 1597, 1427, 7485, 9119, 17427, 24961, 114897, 62841}}, +{15100, 18, 28478, {1, 1, 7, 7, 17, 35, 49, 225, 267, 801, 1359, 2131, 6093, 3859, 11305, 6287, 106459, 31093}}, +{15101, 18, 28480, {1, 1, 5, 3, 1, 45, 19, 89, 145, 23, 1071, 3053, 3463, 6781, 8635, 1961, 54403, 183401}}, +{15102, 18, 28489, {1, 3, 1, 13, 17, 35, 105, 155, 145, 597, 1169, 3731, 725, 2185, 23365, 31849, 113717, 185413}}, +{15103, 18, 28514, {1, 3, 3, 5, 3, 5, 13, 119, 39, 383, 1595, 63, 7003, 6465, 19847, 37213, 42921, 254479}}, +{15104, 18, 28525, {1, 3, 3, 1, 3, 33, 43, 255, 227, 151, 1911, 2657, 6529, 3855, 24411, 8485, 30385, 193265}}, +{15105, 18, 28537, {1, 1, 7, 7, 21, 53, 101, 37, 193, 107, 1095, 369, 6423, 3491, 1219, 53385, 31041, 122587}}, +{15106, 18, 28550, {1, 1, 7, 3, 13, 39, 101, 109, 113, 201, 619, 2489, 4545, 5017, 25519, 44281, 128605, 128595}}, +{15107, 18, 28559, {1, 1, 3, 13, 25, 7, 99, 141, 465, 625, 667, 1633, 6719, 16195, 365, 34355, 65025, 128025}}, +{15108, 18, 28595, {1, 1, 1, 7, 15, 51, 43, 159, 223, 493, 411, 65, 5753, 10219, 21885, 33267, 116643, 76777}}, +{15109, 18, 28601, {1, 3, 5, 13, 25, 39, 97, 31, 245, 367, 685, 103, 4093, 10449, 3849, 52659, 63355, 262059}}, +{15110, 18, 28629, {1, 3, 3, 1, 9, 49, 25, 157, 107, 821, 265, 2939, 6365, 7539, 17935, 50147, 88907, 214317}}, +{15111, 18, 28657, {1, 1, 1, 13, 17, 5, 55, 217, 137, 915, 121, 3187, 3111, 7145, 30477, 20023, 71969, 179417}}, +{15112, 18, 28667, {1, 1, 1, 5, 7, 15, 47, 71, 197, 725, 523, 2207, 5729, 741, 8595, 39125, 25431, 101093}}, +{15113, 18, 28711, {1, 3, 1, 7, 19, 37, 117, 235, 353, 459, 207, 953, 4955, 14979, 22897, 53911, 7783, 203667}}, +{15114, 18, 28718, {1, 1, 5, 13, 9, 17, 21, 95, 37, 751, 1463, 2491, 791, 1569, 32055, 61415, 113885, 259285}}, +{15115, 18, 28730, {1, 1, 3, 11, 1, 23, 5, 73, 61, 719, 215, 469, 3267, 12003, 16535, 46913, 58321, 2407}}, +{15116, 18, 28732, {1, 1, 5, 11, 5, 9, 81, 1, 275, 877, 791, 1591, 2109, 9983, 29085, 15069, 44757, 17887}}, +{15117, 18, 28777, {1, 3, 7, 11, 23, 47, 121, 53, 55, 677, 1239, 2591, 579, 11321, 14231, 53701, 71947, 56793}}, +{15118, 18, 28801, {1, 1, 5, 1, 7, 31, 39, 205, 231, 843, 159, 2301, 7765, 3317, 8935, 60647, 110545, 142543}}, +{15119, 18, 28822, {1, 3, 3, 11, 25, 39, 9, 131, 145, 373, 41, 1687, 417, 9427, 8657, 18315, 18505, 144055}}, +{15120, 18, 28855, {1, 3, 7, 3, 1, 51, 61, 223, 409, 607, 1281, 1767, 4719, 10741, 21537, 17307, 5473, 76127}}, +{15121, 18, 28859, {1, 1, 1, 1, 1, 43, 35, 157, 183, 835, 1141, 3235, 1383, 11381, 4503, 20435, 73125, 196955}}, +{15122, 18, 28869, {1, 1, 5, 7, 13, 47, 9, 191, 349, 587, 1887, 3667, 619, 9443, 28781, 7759, 6023, 81595}}, +{15123, 18, 28893, {1, 3, 5, 9, 31, 27, 77, 47, 375, 229, 989, 1241, 4937, 5881, 18797, 21743, 49947, 246165}}, +{15124, 18, 28904, {1, 1, 5, 1, 29, 23, 43, 237, 293, 391, 243, 3471, 5205, 9951, 29329, 19873, 114325, 19239}}, +{15125, 18, 28922, {1, 3, 3, 5, 19, 49, 23, 149, 419, 23, 21, 515, 3321, 3157, 28559, 8521, 11119, 192881}}, +{15126, 18, 28930, {1, 3, 1, 9, 29, 17, 15, 13, 171, 57, 1849, 3815, 7361, 7723, 23657, 60883, 54953, 159861}}, +{15127, 18, 28949, {1, 1, 3, 5, 13, 57, 35, 227, 143, 725, 2023, 2583, 2277, 4721, 4395, 61479, 112487, 211861}}, +{15128, 18, 28972, {1, 1, 5, 7, 7, 25, 83, 95, 281, 931, 415, 1661, 1543, 5313, 13317, 21203, 23965, 60891}}, +{15129, 18, 29002, {1, 3, 3, 1, 25, 51, 65, 147, 7, 521, 235, 2165, 6219, 14247, 30621, 43245, 8133, 49481}}, +{15130, 18, 29009, {1, 1, 5, 11, 13, 27, 39, 51, 213, 811, 151, 1157, 7821, 6481, 32097, 12319, 52005, 33291}}, +{15131, 18, 29061, {1, 1, 1, 13, 19, 15, 39, 205, 481, 253, 1643, 2969, 3181, 13995, 29877, 1307, 101721, 119111}}, +{15132, 18, 29068, {1, 1, 1, 11, 5, 63, 57, 53, 187, 315, 1521, 847, 5955, 3179, 21459, 25937, 83215, 181599}}, +{15133, 18, 29107, {1, 1, 7, 13, 17, 35, 113, 73, 105, 497, 1183, 3397, 4443, 14697, 29201, 40737, 40943, 3529}}, +{15134, 18, 29119, {1, 3, 5, 5, 3, 53, 101, 125, 173, 137, 333, 381, 1143, 1165, 789, 50013, 23595, 50235}}, +{15135, 18, 29142, {1, 1, 3, 1, 23, 3, 21, 143, 475, 337, 1693, 2341, 6509, 4167, 21031, 13887, 83191, 85187}}, +{15136, 18, 29146, {1, 1, 3, 1, 29, 59, 39, 217, 77, 943, 1531, 383, 6535, 2593, 8601, 61865, 26629, 57313}}, +{15137, 18, 29152, {1, 3, 5, 15, 17, 15, 19, 31, 273, 507, 1193, 2501, 4677, 13355, 5287, 1155, 102959, 185219}}, +{15138, 18, 29200, {1, 1, 1, 9, 3, 3, 5, 111, 159, 913, 331, 303, 3673, 12227, 5245, 63749, 107123, 26315}}, +{15139, 18, 29206, {1, 3, 5, 11, 13, 13, 115, 237, 481, 793, 1783, 1107, 4811, 3965, 29571, 63237, 15013, 176925}}, +{15140, 18, 29245, {1, 1, 7, 1, 13, 57, 85, 15, 19, 889, 1637, 1721, 6299, 6659, 5541, 24365, 38363, 67749}}, +{15141, 18, 29254, {1, 1, 3, 1, 9, 39, 15, 183, 133, 821, 1361, 2617, 7197, 8251, 12599, 60549, 42947, 72519}}, +{15142, 18, 29258, {1, 3, 1, 5, 19, 17, 69, 189, 309, 33, 2003, 569, 6189, 7845, 22351, 14623, 35287, 160511}}, +{15143, 18, 29260, {1, 1, 7, 13, 25, 3, 1, 203, 163, 661, 513, 3513, 741, 16259, 29817, 6059, 23823, 51869}}, +{15144, 18, 29268, {1, 3, 3, 1, 9, 43, 59, 77, 465, 223, 2007, 2187, 1499, 9373, 10535, 22207, 111689, 108485}}, +{15145, 18, 29281, {1, 1, 5, 15, 1, 21, 87, 163, 177, 751, 115, 3981, 4257, 5345, 31211, 44075, 16983, 69783}}, +{15146, 18, 29306, {1, 1, 1, 3, 29, 31, 7, 41, 181, 979, 1661, 1403, 2577, 983, 545, 6205, 20183, 44735}}, +{15147, 18, 29317, {1, 3, 3, 15, 5, 1, 85, 243, 59, 161, 1053, 803, 1813, 13583, 2559, 62761, 105337, 83209}}, +{15148, 18, 29324, {1, 3, 3, 3, 5, 21, 101, 61, 379, 369, 1865, 3289, 2643, 951, 26493, 17915, 8185, 42387}}, +{15149, 18, 29342, {1, 3, 5, 15, 15, 13, 119, 103, 141, 735, 1317, 3345, 2885, 4145, 30719, 965, 10819, 90295}}, +{15150, 18, 29375, {1, 3, 7, 13, 15, 11, 19, 163, 495, 369, 1285, 609, 1559, 9965, 31123, 55101, 76743, 104435}}, +{15151, 18, 29384, {1, 1, 5, 1, 25, 5, 5, 139, 441, 447, 353, 1369, 959, 14593, 30991, 20651, 126945, 2219}}, +{15152, 18, 29389, {1, 3, 5, 9, 21, 9, 113, 83, 115, 15, 161, 1559, 3095, 1447, 10253, 51481, 114541, 248375}}, +{15153, 18, 29411, {1, 3, 3, 1, 31, 61, 111, 69, 495, 195, 1153, 2605, 5061, 15509, 8253, 41909, 126033, 51173}}, +{15154, 18, 29413, {1, 1, 7, 15, 15, 41, 121, 75, 471, 539, 341, 441, 5357, 11509, 32525, 65477, 101251, 164835}}, +{15155, 18, 29446, {1, 1, 5, 7, 3, 63, 13, 123, 285, 499, 1023, 3533, 483, 13747, 26515, 52381, 9073, 256319}}, +{15156, 18, 29457, {1, 3, 1, 13, 29, 41, 75, 43, 229, 557, 1775, 1933, 5567, 11439, 22045, 10571, 96761, 98559}}, +{15157, 18, 29458, {1, 1, 3, 11, 19, 39, 3, 93, 435, 433, 2005, 1561, 385, 15865, 19763, 44105, 48107, 163063}}, +{15158, 18, 29483, {1, 1, 7, 5, 29, 37, 53, 19, 335, 325, 133, 2055, 3029, 14573, 30395, 38599, 97637, 203443}}, +{15159, 18, 29488, {1, 1, 7, 15, 29, 51, 7, 145, 21, 955, 1013, 579, 4971, 4849, 11691, 23725, 71079, 102641}}, +{15160, 18, 29494, {1, 1, 7, 3, 9, 49, 79, 187, 237, 823, 1951, 2947, 3633, 9119, 14393, 52969, 44703, 222389}}, +{15161, 18, 29506, {1, 3, 5, 11, 13, 9, 13, 245, 499, 661, 1899, 1313, 6907, 12259, 4577, 38547, 79687, 17555}}, +{15162, 18, 29553, {1, 3, 3, 1, 5, 59, 123, 197, 293, 247, 687, 695, 7493, 3115, 28535, 44335, 31905, 81607}}, +{15163, 18, 29569, {1, 3, 1, 3, 19, 5, 45, 101, 457, 395, 565, 3155, 8081, 4863, 1199, 32133, 73087, 27025}}, +{15164, 18, 29587, {1, 3, 7, 1, 31, 35, 111, 95, 379, 663, 731, 1813, 4551, 13105, 18275, 19729, 121971, 139959}}, +{15165, 18, 29590, {1, 1, 7, 3, 23, 47, 11, 117, 323, 943, 183, 2169, 4625, 12931, 1305, 23345, 119521, 67911}}, +{15166, 18, 29600, {1, 1, 1, 13, 19, 45, 37, 77, 301, 741, 747, 241, 5865, 11141, 7961, 10609, 97833, 256555}}, +{15167, 18, 29612, {1, 1, 1, 11, 27, 21, 119, 103, 277, 761, 201, 2063, 1043, 13303, 6535, 15553, 57695, 124187}}, +{15168, 18, 29665, {1, 3, 7, 3, 1, 11, 79, 143, 345, 237, 1421, 193, 1889, 2515, 11729, 559, 35227, 9393}}, +{15169, 18, 29722, {1, 3, 1, 1, 27, 27, 117, 159, 183, 871, 47, 989, 999, 303, 30833, 8229, 116301, 199439}}, +{15170, 18, 29745, {1, 1, 1, 1, 31, 27, 41, 83, 435, 409, 999, 2275, 4489, 1985, 21455, 23275, 125039, 192979}}, +{15171, 18, 29746, {1, 3, 7, 3, 19, 49, 27, 185, 9, 385, 191, 735, 3439, 16307, 21181, 58749, 128393, 140383}}, +{15172, 18, 29752, {1, 3, 7, 3, 15, 5, 65, 89, 11, 915, 673, 947, 3847, 6833, 10095, 34261, 101645, 42131}}, +{15173, 18, 29775, {1, 3, 5, 11, 11, 25, 79, 225, 495, 951, 1033, 5, 699, 9621, 1791, 48221, 59275, 49875}}, +{15174, 18, 29778, {1, 3, 7, 13, 29, 59, 105, 101, 233, 901, 863, 413, 2087, 16209, 445, 27463, 61465, 121795}}, +{15175, 18, 29800, {1, 1, 1, 11, 5, 19, 11, 51, 503, 313, 195, 3, 7249, 4919, 11931, 15569, 118297, 115989}}, +{15176, 18, 29829, {1, 3, 3, 13, 13, 61, 63, 57, 429, 487, 2033, 847, 7539, 1469, 3197, 1307, 124557, 211999}}, +{15177, 18, 29830, {1, 3, 7, 13, 25, 27, 39, 103, 165, 39, 1587, 3103, 1745, 12593, 10779, 37105, 29059, 256739}}, +{15178, 18, 29877, {1, 3, 3, 9, 25, 51, 105, 109, 99, 267, 623, 1351, 3837, 793, 28609, 52199, 15621, 77873}}, +{15179, 18, 29881, {1, 1, 3, 7, 29, 61, 45, 237, 431, 791, 91, 1259, 8071, 11103, 27257, 10153, 18639, 248949}}, +{15180, 18, 29884, {1, 1, 1, 9, 15, 47, 113, 189, 291, 837, 1317, 2263, 7183, 6669, 17241, 35275, 9087, 241577}}, +{15181, 18, 29895, {1, 1, 3, 1, 15, 59, 85, 21, 69, 569, 1473, 2735, 713, 3817, 14677, 26897, 75291, 251255}}, +{15182, 18, 29899, {1, 1, 1, 7, 17, 21, 105, 77, 367, 905, 513, 1807, 5571, 14627, 10349, 47821, 34395, 51143}}, +{15183, 18, 29916, {1, 3, 7, 13, 27, 19, 123, 145, 371, 857, 1699, 2231, 373, 781, 28713, 21441, 64059, 10689}}, +{15184, 18, 29923, {1, 1, 1, 7, 19, 57, 81, 223, 87, 315, 1253, 421, 1371, 1547, 1411, 6809, 23889, 213385}}, +{15185, 18, 29935, {1, 3, 1, 5, 23, 57, 89, 15, 227, 965, 1247, 3861, 7723, 15621, 7151, 53961, 47167, 73679}}, +{15186, 18, 29955, {1, 3, 7, 15, 31, 21, 9, 79, 87, 561, 1001, 3395, 2095, 15381, 30725, 48111, 68031, 121687}}, +{15187, 18, 29962, {1, 3, 1, 9, 15, 29, 83, 87, 377, 331, 2035, 93, 2319, 3637, 4809, 40091, 93141, 39881}}, +{15188, 18, 29969, {1, 3, 3, 11, 21, 39, 27, 159, 161, 439, 1417, 595, 4873, 15703, 32743, 56603, 35881, 160727}}, +{15189, 18, 29997, {1, 1, 3, 5, 21, 37, 55, 159, 497, 425, 469, 1185, 5015, 7045, 7179, 65325, 97167, 75723}}, +{15190, 18, 30032, {1, 3, 1, 7, 31, 21, 125, 223, 479, 765, 1115, 33, 2765, 12781, 22923, 36051, 103749, 33703}}, +{15191, 18, 30041, {1, 1, 7, 1, 9, 3, 29, 125, 337, 973, 253, 3179, 3269, 8801, 19369, 20693, 17331, 190295}}, +{15192, 18, 30048, {1, 1, 3, 3, 13, 5, 115, 31, 481, 45, 855, 81, 3663, 10443, 13853, 29847, 99471, 249943}}, +{15193, 18, 30060, {1, 1, 3, 7, 3, 1, 47, 31, 169, 625, 201, 2257, 4617, 1633, 26681, 53793, 78257, 8955}}, +{15194, 18, 30063, {1, 1, 5, 1, 23, 3, 95, 89, 429, 559, 119, 2619, 1235, 7609, 21905, 45495, 19461, 189091}}, +{15195, 18, 30105, {1, 3, 5, 5, 11, 33, 123, 45, 89, 899, 1607, 3717, 6745, 15199, 22955, 15891, 50411, 148201}}, +{15196, 18, 30122, {1, 3, 5, 9, 19, 23, 87, 21, 39, 117, 603, 823, 3015, 14853, 4341, 49029, 97183, 218713}}, +{15197, 18, 30141, {1, 1, 3, 7, 11, 55, 31, 255, 399, 861, 745, 1013, 4583, 15871, 32453, 25357, 90645, 100835}}, +{15198, 18, 30142, {1, 1, 1, 11, 13, 27, 57, 233, 45, 339, 305, 3689, 5273, 11801, 29109, 44139, 83171, 250559}}, +{15199, 18, 30153, {1, 3, 7, 13, 19, 1, 29, 113, 207, 313, 1465, 3563, 2535, 3307, 14921, 1923, 31429, 59815}}, +{15200, 18, 30171, {1, 3, 1, 5, 29, 25, 59, 95, 177, 795, 353, 3973, 8029, 1687, 5045, 16157, 30361, 218479}}, +{15201, 18, 30192, {1, 3, 5, 3, 5, 27, 109, 239, 121, 347, 93, 1645, 3293, 13181, 23793, 42935, 98659, 85385}}, +{15202, 18, 30197, {1, 1, 7, 9, 9, 37, 127, 211, 77, 557, 177, 2465, 7895, 5523, 26665, 23463, 71715, 126673}}, +{15203, 18, 30223, {1, 3, 7, 1, 27, 55, 125, 85, 47, 739, 1513, 3763, 5335, 3135, 11913, 22405, 90785, 88845}}, +{15204, 18, 30235, {1, 3, 3, 9, 29, 21, 123, 211, 491, 83, 697, 929, 3507, 7139, 30569, 16365, 122657, 77523}}, +{15205, 18, 30241, {1, 3, 5, 5, 27, 21, 41, 129, 67, 503, 877, 1893, 6055, 12709, 24613, 43831, 124035, 62631}}, +{15206, 18, 30256, {1, 3, 3, 1, 21, 15, 59, 185, 405, 487, 627, 3737, 345, 14751, 2947, 15815, 55047, 207137}}, +{15207, 18, 30291, {1, 1, 1, 9, 15, 29, 19, 155, 101, 405, 597, 329, 2977, 4333, 5465, 43863, 6009, 229481}}, +{15208, 18, 30293, {1, 1, 1, 11, 7, 27, 93, 207, 43, 599, 1899, 3979, 4219, 10199, 2901, 34261, 19435, 58317}}, +{15209, 18, 30300, {1, 1, 7, 15, 9, 47, 33, 209, 235, 655, 253, 3507, 3355, 1685, 7045, 58907, 41791, 175835}}, +{15210, 18, 30331, {1, 3, 3, 11, 11, 43, 21, 255, 45, 831, 1051, 1271, 7945, 9793, 11125, 17709, 118267, 169981}}, +{15211, 18, 30349, {1, 3, 7, 13, 27, 37, 45, 221, 243, 37, 1493, 2773, 6655, 7451, 22609, 56559, 12063, 221143}}, +{15212, 18, 30361, {1, 3, 1, 1, 9, 15, 97, 61, 241, 825, 735, 3953, 5331, 16373, 19403, 28933, 31881, 111545}}, +{15213, 18, 30367, {1, 1, 1, 15, 29, 1, 127, 111, 329, 741, 1589, 1653, 5949, 8703, 27617, 65285, 122167, 11895}}, +{15214, 18, 30392, {1, 1, 3, 3, 17, 31, 91, 197, 421, 865, 1901, 897, 6917, 15943, 12823, 15325, 17011, 110783}}, +{15215, 18, 30405, {1, 1, 3, 15, 21, 57, 29, 179, 503, 929, 1513, 205, 6083, 4015, 32517, 26921, 54229, 147789}}, +{15216, 18, 30410, {1, 1, 7, 15, 27, 21, 95, 59, 193, 97, 1235, 819, 4435, 371, 627, 24673, 1775, 261041}}, +{15217, 18, 30415, {1, 1, 7, 15, 3, 37, 99, 85, 505, 1011, 19, 1241, 5299, 15661, 27323, 44625, 12683, 225687}}, +{15218, 18, 30439, {1, 1, 7, 3, 25, 37, 111, 121, 217, 659, 365, 2627, 5499, 12911, 951, 54317, 51927, 235327}}, +{15219, 18, 30446, {1, 1, 3, 9, 29, 31, 99, 195, 427, 735, 1817, 3675, 4269, 1579, 12593, 39285, 74909, 230613}}, +{15220, 18, 30501, {1, 3, 1, 13, 7, 21, 37, 101, 111, 931, 1581, 465, 4753, 15607, 14515, 29769, 107711, 32703}}, +{15221, 18, 30526, {1, 1, 7, 15, 25, 57, 117, 119, 309, 345, 491, 3647, 2933, 5409, 15431, 43731, 25537, 17269}}, +{15222, 18, 30531, {1, 1, 5, 3, 15, 9, 83, 221, 501, 675, 1441, 129, 213, 5587, 22361, 16739, 118845, 192835}}, +{15223, 18, 30537, {1, 3, 7, 13, 1, 31, 75, 23, 13, 447, 687, 2711, 7577, 8275, 5051, 61835, 22159, 56477}}, +{15224, 18, 30546, {1, 1, 3, 1, 23, 19, 111, 45, 395, 841, 1665, 21, 7435, 12457, 11065, 20007, 48785, 15115}}, +{15225, 18, 30568, {1, 3, 7, 7, 21, 3, 117, 35, 117, 433, 561, 3045, 2169, 3255, 18015, 41093, 99699, 3479}}, +{15226, 18, 30581, {1, 1, 3, 7, 9, 59, 65, 143, 315, 63, 29, 3817, 1259, 7119, 20847, 44407, 80015, 37851}}, +{15227, 18, 30588, {1, 3, 7, 13, 13, 33, 85, 75, 39, 163, 1759, 1197, 5971, 8815, 8745, 45625, 121873, 246197}}, +{15228, 18, 30598, {1, 1, 1, 13, 31, 41, 61, 7, 145, 113, 943, 3757, 2141, 3523, 22351, 14143, 107683, 105579}}, +{15229, 18, 30607, {1, 1, 5, 5, 23, 27, 75, 77, 25, 901, 1295, 3091, 981, 10109, 12649, 15123, 102433, 145557}}, +{15230, 18, 30609, {1, 1, 7, 5, 9, 11, 19, 229, 301, 835, 1577, 3365, 425, 2271, 15647, 11685, 57315, 131043}}, +{15231, 18, 30616, {1, 3, 1, 13, 31, 3, 113, 7, 473, 395, 1979, 61, 4205, 2031, 28007, 34789, 54463, 94741}}, +{15232, 18, 30626, {1, 1, 3, 5, 7, 13, 35, 151, 461, 621, 185, 2645, 907, 9151, 25953, 26363, 105531, 235555}}, +{15233, 18, 30628, {1, 3, 3, 13, 21, 5, 43, 183, 149, 607, 509, 777, 4089, 16365, 32201, 60431, 58773, 92719}}, +{15234, 18, 30638, {1, 3, 3, 11, 25, 53, 103, 203, 269, 1017, 77, 3537, 4839, 15991, 29223, 57397, 122735, 67299}}, +{15235, 18, 30658, {1, 3, 3, 1, 29, 45, 85, 171, 307, 455, 1399, 2367, 5991, 5751, 27957, 36649, 9251, 38581}}, +{15236, 18, 30663, {1, 1, 5, 13, 29, 15, 127, 1, 175, 921, 671, 2469, 3137, 3679, 32521, 5321, 92505, 45901}}, +{15237, 18, 30675, {1, 3, 3, 11, 23, 23, 113, 255, 443, 609, 1085, 133, 5369, 885, 17043, 20961, 36137, 260457}}, +{15238, 18, 30698, {1, 3, 3, 9, 13, 55, 117, 19, 111, 323, 275, 495, 6679, 2217, 12015, 3053, 32745, 189413}}, +{15239, 18, 30708, {1, 3, 5, 13, 31, 43, 37, 225, 67, 755, 1427, 3967, 6497, 9987, 28145, 50583, 59457, 213217}}, +{15240, 18, 30712, {1, 3, 1, 15, 1, 5, 121, 249, 293, 695, 1697, 313, 61, 4037, 11757, 53739, 5693, 106225}}, +{15241, 18, 30727, {1, 1, 7, 1, 23, 9, 111, 211, 303, 147, 1291, 3807, 1969, 4115, 7473, 50077, 60745, 41605}}, +{15242, 18, 30736, {1, 3, 3, 15, 21, 51, 63, 171, 197, 403, 1327, 1851, 6991, 9069, 19221, 45765, 55489, 34853}}, +{15243, 18, 30748, {1, 1, 5, 3, 5, 53, 87, 241, 255, 309, 1319, 3727, 3189, 10887, 13401, 32371, 24479, 170571}}, +{15244, 18, 30758, {1, 1, 7, 11, 5, 5, 59, 177, 317, 835, 527, 165, 2137, 9597, 30181, 1779, 75407, 185827}}, +{15245, 18, 30775, {1, 3, 3, 7, 25, 15, 15, 183, 235, 955, 27, 2223, 5587, 11301, 17653, 56697, 70787, 198347}}, +{15246, 18, 30793, {1, 3, 5, 5, 11, 63, 123, 41, 169, 975, 1709, 2965, 7491, 4183, 15217, 41343, 36139, 9649}}, +{15247, 18, 30802, {1, 1, 3, 7, 5, 37, 87, 247, 379, 603, 781, 463, 8063, 13681, 32005, 43485, 107401, 42303}}, +{15248, 18, 30820, {1, 3, 5, 9, 19, 53, 61, 219, 217, 361, 769, 1687, 5643, 3145, 12885, 40303, 86377, 255051}}, +{15249, 18, 30823, {1, 1, 7, 11, 15, 49, 127, 99, 127, 515, 647, 1725, 1605, 2357, 2069, 31803, 14179, 180367}}, +{15250, 18, 30827, {1, 3, 5, 15, 9, 7, 41, 3, 49, 485, 1471, 207, 6477, 4463, 12255, 53481, 110785, 909}}, +{15251, 18, 30848, {1, 1, 5, 9, 23, 51, 107, 227, 205, 987, 1525, 2739, 6761, 12343, 32311, 12523, 93351, 29663}}, +{15252, 18, 30893, {1, 3, 5, 11, 21, 19, 53, 169, 197, 21, 825, 4029, 6733, 8943, 13475, 60677, 31001, 242291}}, +{15253, 18, 30906, {1, 3, 7, 13, 9, 27, 87, 37, 265, 877, 735, 2249, 4801, 2365, 16923, 40451, 29693, 222483}}, +{15254, 18, 30950, {1, 1, 3, 9, 31, 61, 71, 103, 215, 421, 193, 3451, 6181, 4271, 30875, 59573, 80773, 100369}}, +{15255, 18, 30956, {1, 1, 3, 13, 17, 55, 73, 191, 233, 821, 961, 1637, 2393, 3453, 25959, 5069, 114585, 186001}}, +{15256, 18, 30996, {1, 1, 7, 5, 15, 27, 39, 23, 69, 811, 709, 2349, 6011, 803, 12497, 7387, 62023, 247875}}, +{15257, 18, 31015, {1, 1, 5, 13, 29, 55, 51, 41, 121, 599, 1633, 3813, 1913, 3803, 26097, 53799, 30997, 261965}}, +{15258, 18, 31016, {1, 1, 1, 11, 31, 25, 19, 195, 87, 657, 1005, 3853, 61, 6585, 24665, 38283, 5495, 257201}}, +{15259, 18, 31034, {1, 1, 1, 11, 23, 43, 91, 121, 49, 491, 1443, 1873, 7689, 15957, 30463, 64079, 100003, 325}}, +{15260, 18, 31099, {1, 1, 7, 1, 25, 51, 27, 105, 119, 233, 513, 3403, 2647, 2847, 12687, 15619, 71225, 243759}}, +{15261, 18, 31123, {1, 1, 7, 3, 17, 49, 19, 123, 307, 463, 1619, 1853, 7019, 2605, 17351, 7971, 20675, 235929}}, +{15262, 18, 31145, {1, 1, 5, 3, 17, 29, 71, 215, 365, 955, 1631, 3549, 1379, 13881, 25409, 55703, 29863, 135401}}, +{15263, 18, 31166, {1, 3, 7, 15, 3, 27, 107, 149, 65, 681, 505, 3957, 6697, 11203, 9321, 63323, 98587, 199241}}, +{15264, 18, 31168, {1, 1, 1, 13, 27, 41, 59, 223, 431, 339, 1805, 899, 639, 6559, 13233, 4773, 37415, 110477}}, +{15265, 18, 31174, {1, 3, 7, 9, 1, 59, 79, 161, 311, 905, 1755, 3915, 6259, 8955, 14187, 11331, 86185, 209805}}, +{15266, 18, 31216, {1, 1, 7, 9, 5, 27, 75, 93, 285, 89, 891, 3341, 1157, 11219, 8883, 8093, 68949, 189643}}, +{15267, 18, 31219, {1, 3, 1, 5, 1, 43, 97, 71, 67, 605, 739, 1641, 4415, 4487, 13437, 12755, 121595, 55761}}, +{15268, 18, 31238, {1, 1, 1, 3, 1, 13, 61, 77, 297, 507, 1527, 3585, 4515, 13913, 7679, 28461, 61807, 196517}}, +{15269, 18, 31256, {1, 1, 1, 3, 21, 23, 101, 135, 59, 485, 1601, 3713, 7409, 349, 16543, 18897, 97253, 149055}}, +{15270, 18, 31304, {1, 1, 1, 13, 5, 37, 15, 37, 109, 1005, 363, 1925, 2701, 13169, 17027, 58453, 27667, 234027}}, +{15271, 18, 31315, {1, 1, 7, 1, 1, 41, 67, 231, 143, 951, 2023, 3465, 1717, 645, 17353, 9037, 129127, 199467}}, +{15272, 18, 31324, {1, 1, 1, 11, 27, 29, 65, 139, 425, 947, 141, 2601, 7339, 4451, 25065, 62691, 62355, 91819}}, +{15273, 18, 31364, {1, 3, 7, 15, 29, 29, 93, 25, 139, 267, 1319, 3839, 7295, 11855, 17775, 30199, 44127, 150875}}, +{15274, 18, 31379, {1, 3, 5, 1, 3, 55, 23, 191, 199, 583, 1167, 1357, 6477, 11827, 15581, 56541, 16603, 120139}}, +{15275, 18, 31382, {1, 1, 1, 3, 5, 47, 103, 211, 443, 491, 1043, 4001, 121, 1637, 5685, 42675, 13009, 22979}}, +{15276, 18, 31412, {1, 1, 1, 9, 21, 7, 77, 17, 303, 955, 51, 2389, 3573, 8817, 28053, 40269, 35457, 211023}}, +{15277, 18, 31451, {1, 3, 5, 15, 3, 39, 17, 75, 223, 37, 1231, 2127, 3575, 9085, 10715, 41871, 103703, 154181}}, +{15278, 18, 31487, {1, 3, 3, 15, 25, 31, 31, 223, 473, 267, 1519, 3205, 7029, 10753, 24757, 28187, 117921, 26783}}, +{15279, 18, 31509, {1, 3, 7, 1, 5, 21, 105, 191, 55, 115, 1813, 3701, 1673, 4199, 2441, 19737, 46913, 208725}}, +{15280, 18, 31510, {1, 1, 5, 5, 19, 63, 89, 141, 143, 783, 545, 883, 2979, 9219, 24983, 41793, 88441, 207095}}, +{15281, 18, 31520, {1, 1, 1, 9, 21, 21, 93, 161, 93, 733, 417, 3133, 8155, 12415, 16343, 11727, 82877, 94469}}, +{15282, 18, 31535, {1, 1, 5, 15, 5, 39, 33, 203, 213, 731, 1849, 1675, 6029, 2743, 1529, 16345, 13955, 54929}}, +{15283, 18, 31564, {1, 1, 7, 7, 23, 47, 121, 211, 271, 737, 1015, 1021, 5641, 12659, 27545, 52363, 104761, 150143}}, +{15284, 18, 31585, {1, 3, 1, 11, 11, 51, 79, 141, 255, 1007, 481, 3221, 7741, 6861, 24943, 63091, 46741, 33359}}, +{15285, 18, 31586, {1, 1, 3, 3, 27, 47, 85, 27, 423, 811, 75, 3911, 1951, 10821, 7487, 18971, 83355, 197479}}, +{15286, 18, 31600, {1, 1, 5, 5, 1, 63, 125, 251, 457, 795, 557, 217, 2335, 5659, 18375, 52183, 9789, 31417}}, +{15287, 18, 31643, {1, 3, 3, 3, 19, 61, 41, 129, 345, 361, 187, 3881, 43, 7197, 7673, 25011, 115155, 16375}}, +{15288, 18, 31646, {1, 3, 3, 7, 13, 7, 55, 91, 153, 341, 2003, 2013, 6891, 2411, 14825, 39555, 50267, 61405}}, +{15289, 18, 31649, {1, 3, 5, 7, 13, 57, 21, 91, 331, 615, 1297, 2881, 2011, 1907, 16489, 43061, 75731, 76675}}, +{15290, 18, 31650, {1, 1, 5, 5, 25, 15, 77, 175, 101, 885, 835, 529, 2787, 547, 20191, 50457, 58557, 61807}}, +{15291, 18, 31674, {1, 3, 7, 1, 13, 47, 101, 117, 179, 245, 861, 611, 4377, 5257, 12807, 26667, 19889, 112485}}, +{15292, 18, 31679, {1, 3, 7, 1, 27, 3, 23, 109, 197, 187, 963, 1827, 5741, 11921, 6359, 3989, 108939, 5761}}, +{15293, 18, 31684, {1, 1, 7, 5, 27, 7, 119, 159, 53, 969, 557, 597, 7821, 7121, 17341, 11233, 10811, 23969}}, +{15294, 18, 31688, {1, 1, 3, 13, 23, 55, 75, 131, 339, 917, 317, 2645, 5973, 9939, 26375, 29261, 80883, 229897}}, +{15295, 18, 31706, {1, 1, 5, 13, 3, 63, 41, 191, 315, 191, 649, 2119, 317, 14699, 4097, 19557, 97015, 124557}}, +{15296, 18, 31735, {1, 3, 7, 15, 13, 29, 29, 43, 47, 37, 729, 185, 4477, 15091, 13991, 18701, 56785, 218823}}, +{15297, 18, 31754, {1, 3, 7, 15, 31, 39, 17, 133, 469, 509, 995, 1683, 391, 1775, 15431, 63489, 7405, 122125}}, +{15298, 18, 31761, {1, 3, 7, 5, 15, 63, 5, 235, 193, 411, 1493, 3967, 3279, 6421, 13359, 20949, 68097, 69469}}, +{15299, 18, 31774, {1, 3, 3, 13, 7, 37, 7, 207, 399, 553, 1629, 1903, 329, 7577, 5813, 17151, 40889, 174811}}, +{15300, 18, 31807, {1, 3, 1, 13, 7, 39, 119, 109, 323, 61, 749, 1377, 911, 8195, 19753, 6265, 60783, 182339}}, +{15301, 18, 31812, {1, 1, 5, 11, 3, 21, 89, 61, 243, 273, 1317, 3443, 117, 6205, 13907, 12903, 95485, 103355}}, +{15302, 18, 31821, {1, 3, 7, 13, 19, 27, 45, 251, 405, 289, 121, 1501, 2599, 8111, 5163, 17437, 75095, 165847}}, +{15303, 18, 31855, {1, 3, 3, 5, 23, 13, 29, 145, 333, 573, 1939, 2133, 5797, 5263, 18835, 11945, 42161, 103123}}, +{15304, 18, 31919, {1, 3, 5, 13, 9, 31, 45, 17, 181, 111, 219, 3451, 1591, 5823, 20307, 41207, 77047, 173401}}, +{15305, 18, 31934, {1, 3, 1, 9, 19, 63, 73, 111, 377, 875, 1749, 2887, 7035, 14209, 1805, 20527, 93839, 225185}}, +{15306, 18, 31956, {1, 3, 1, 9, 15, 45, 97, 235, 11, 803, 899, 427, 3353, 7363, 26687, 1307, 5451, 176233}}, +{15307, 18, 31965, {1, 3, 7, 5, 7, 51, 59, 53, 3, 263, 159, 1005, 6079, 7237, 17419, 56653, 61091, 182209}}, +{15308, 18, 31975, {1, 1, 3, 15, 19, 47, 17, 185, 167, 219, 233, 2921, 5755, 1277, 27281, 33671, 3191, 169477}}, +{15309, 18, 31981, {1, 3, 7, 1, 25, 27, 99, 81, 57, 969, 821, 2397, 2947, 5913, 15247, 47651, 449, 183295}}, +{15310, 18, 31999, {1, 3, 1, 15, 3, 63, 83, 75, 41, 959, 1005, 153, 97, 15381, 6901, 55141, 90215, 161321}}, +{15311, 18, 32014, {1, 3, 1, 9, 1, 1, 29, 191, 43, 241, 607, 667, 1189, 4389, 31335, 14133, 104049, 100925}}, +{15312, 18, 32022, {1, 1, 3, 1, 1, 61, 109, 23, 325, 27, 1601, 3957, 7181, 8375, 9823, 50533, 114895, 73825}}, +{15313, 18, 32049, {1, 1, 7, 7, 1, 25, 51, 19, 383, 955, 1717, 2953, 5431, 7883, 14451, 18619, 9601, 153151}}, +{15314, 18, 32055, {1, 3, 1, 5, 1, 1, 35, 3, 141, 37, 1531, 1855, 7905, 6509, 6223, 45911, 54267, 172275}}, +{15315, 18, 32082, {1, 1, 3, 15, 23, 39, 109, 145, 215, 147, 1191, 2425, 301, 5543, 997, 31071, 101697, 169677}}, +{15316, 18, 32087, {1, 1, 3, 5, 17, 23, 41, 191, 367, 967, 1625, 3669, 769, 7599, 111, 4399, 64121, 232275}}, +{15317, 18, 32100, {1, 3, 5, 1, 25, 61, 47, 247, 413, 605, 399, 1233, 2789, 9775, 7111, 42853, 2305, 87423}}, +{15318, 18, 32104, {1, 3, 7, 3, 1, 25, 73, 247, 221, 235, 169, 889, 5635, 4325, 27015, 39549, 107545, 80885}}, +{15319, 18, 32109, {1, 1, 7, 11, 15, 55, 61, 103, 179, 157, 481, 3089, 4539, 375, 25425, 14995, 60119, 31031}}, +{15320, 18, 32138, {1, 3, 3, 1, 31, 17, 87, 123, 27, 309, 1693, 3871, 7319, 15615, 20113, 18239, 86407, 172381}}, +{15321, 18, 32140, {1, 1, 1, 13, 17, 31, 83, 149, 451, 305, 847, 223, 5705, 9697, 4967, 34273, 4041, 252891}}, +{15322, 18, 32148, {1, 3, 3, 15, 7, 27, 105, 207, 443, 825, 701, 1159, 5267, 14085, 28295, 41757, 47799, 14835}}, +{15323, 18, 32161, {1, 3, 7, 3, 1, 31, 77, 219, 139, 497, 1575, 905, 4341, 4611, 27861, 59871, 45525, 21735}}, +{15324, 18, 32162, {1, 3, 3, 3, 7, 17, 65, 183, 231, 955, 1111, 1899, 1677, 13685, 29395, 10449, 62505, 125643}}, +{15325, 18, 32174, {1, 3, 5, 7, 27, 57, 81, 165, 279, 989, 1569, 573, 7593, 10067, 1343, 12039, 117175, 225125}}, +{15326, 18, 32196, {1, 3, 3, 15, 19, 37, 47, 175, 87, 153, 1137, 1985, 2473, 14767, 19587, 41751, 98937, 66667}}, +{15327, 18, 32220, {1, 3, 5, 3, 19, 51, 25, 155, 37, 597, 719, 1039, 165, 1871, 15677, 59891, 29899, 231979}}, +{15328, 18, 32223, {1, 3, 5, 13, 15, 39, 17, 21, 73, 695, 1813, 2463, 3549, 3081, 14037, 13077, 40417, 258995}}, +{15329, 18, 32267, {1, 1, 5, 9, 29, 5, 105, 75, 97, 937, 1767, 975, 637, 9419, 30673, 33537, 979, 45381}}, +{15330, 18, 32272, {1, 1, 5, 9, 3, 31, 91, 193, 171, 163, 925, 3519, 3621, 4943, 14093, 22881, 18459, 110155}}, +{15331, 18, 32308, {1, 1, 3, 7, 29, 1, 39, 107, 359, 805, 91, 2911, 4741, 3099, 16967, 45849, 95255, 63225}}, +{15332, 18, 32315, {1, 1, 5, 13, 25, 41, 49, 145, 345, 823, 1571, 341, 6323, 9679, 14855, 19965, 108367, 99833}}, +{15333, 18, 32317, {1, 3, 5, 3, 27, 35, 87, 83, 373, 425, 281, 1313, 5153, 6301, 2745, 12677, 34603, 181835}}, +{15334, 18, 32347, {1, 1, 7, 7, 13, 17, 83, 101, 141, 789, 1403, 2777, 2749, 1551, 9009, 9909, 48443, 176679}}, +{15335, 18, 32360, {1, 3, 5, 9, 7, 25, 125, 109, 155, 357, 1111, 3057, 771, 11253, 25811, 60333, 68505, 146987}}, +{15336, 18, 32394, {1, 3, 7, 7, 29, 19, 69, 115, 411, 793, 51, 715, 3035, 11577, 14237, 23963, 13915, 196771}}, +{15337, 18, 32411, {1, 1, 3, 3, 27, 37, 61, 163, 131, 749, 37, 1333, 47, 2519, 25473, 40851, 55861, 113961}}, +{15338, 18, 32420, {1, 3, 5, 1, 3, 49, 19, 251, 125, 387, 1887, 3571, 1465, 4831, 3859, 43357, 20859, 225835}}, +{15339, 18, 32423, {1, 3, 5, 9, 27, 53, 53, 143, 383, 781, 819, 2921, 3499, 11551, 18761, 14453, 58209, 181763}}, +{15340, 18, 32455, {1, 3, 7, 9, 17, 17, 79, 61, 145, 413, 541, 895, 2077, 6957, 28681, 44821, 30609, 131705}}, +{15341, 18, 32456, {1, 1, 3, 15, 1, 57, 17, 125, 11, 43, 1079, 1023, 5391, 67, 31701, 5737, 429, 75411}}, +{15342, 18, 32510, {1, 1, 7, 7, 21, 45, 65, 127, 447, 793, 161, 333, 637, 7403, 12861, 30173, 125121, 254687}}, +{15343, 18, 32517, {1, 1, 3, 9, 27, 53, 85, 223, 297, 455, 919, 2371, 7049, 7167, 18075, 22815, 10265, 14765}}, +{15344, 18, 32541, {1, 1, 3, 7, 1, 53, 91, 181, 471, 101, 771, 4043, 3039, 1215, 19289, 15941, 55187, 147355}}, +{15345, 18, 32552, {1, 3, 1, 1, 13, 19, 13, 47, 159, 965, 1383, 297, 4299, 7181, 1271, 17057, 114847, 180883}}, +{15346, 18, 32555, {1, 3, 1, 15, 29, 55, 113, 243, 215, 665, 641, 1975, 5907, 2617, 17077, 43697, 61101, 70007}}, +{15347, 18, 32580, {1, 3, 1, 11, 5, 55, 109, 145, 307, 663, 1327, 1247, 8033, 15425, 18539, 57027, 72161, 181655}}, +{15348, 18, 32598, {1, 3, 5, 9, 25, 17, 3, 57, 7, 449, 1049, 3423, 5769, 12713, 29849, 1017, 92579, 131255}}, +{15349, 18, 32654, {1, 1, 7, 13, 25, 13, 55, 217, 461, 595, 931, 1883, 2645, 9625, 20467, 45825, 72027, 163767}}, +{15350, 18, 32662, {1, 3, 5, 15, 29, 49, 23, 47, 45, 645, 973, 3837, 621, 7373, 3585, 16083, 93823, 184593}}, +{15351, 18, 32665, {1, 3, 7, 11, 27, 19, 59, 125, 447, 33, 541, 1067, 6983, 3779, 27275, 34269, 106937, 65085}}, +{15352, 18, 32678, {1, 3, 1, 9, 23, 23, 51, 43, 475, 861, 1759, 2559, 3059, 1175, 31555, 27671, 117653, 162735}}, +{15353, 18, 32682, {1, 1, 7, 13, 7, 61, 33, 49, 23, 737, 949, 1785, 2921, 873, 26631, 61941, 14467, 76225}}, +{15354, 18, 32687, {1, 3, 7, 5, 31, 11, 49, 149, 7, 85, 1929, 1001, 4185, 221, 23719, 52265, 52973, 67967}}, +{15355, 18, 32692, {1, 3, 1, 13, 17, 31, 35, 191, 65, 527, 51, 1093, 3673, 11167, 29985, 59739, 43567, 109817}}, +{15356, 18, 32710, {1, 1, 1, 11, 23, 39, 95, 121, 501, 355, 1043, 993, 7533, 15763, 18399, 31601, 49373, 243209}}, +{15357, 18, 32791, {1, 1, 3, 3, 15, 37, 57, 183, 27, 981, 153, 1481, 549, 7847, 2689, 57401, 46359, 175401}}, +{15358, 18, 32792, {1, 3, 5, 9, 31, 19, 83, 79, 413, 597, 1957, 3027, 4751, 1437, 11255, 39513, 56927, 166841}}, +{15359, 18, 32813, {1, 3, 7, 5, 27, 61, 69, 65, 143, 321, 1129, 2521, 4467, 4369, 11727, 35643, 80155, 184241}}, +{15360, 18, 32826, {1, 3, 7, 1, 25, 27, 107, 219, 481, 457, 2027, 1057, 6409, 5641, 19711, 11009, 44295, 28171}}, +{15361, 18, 32831, {1, 3, 3, 9, 3, 17, 85, 5, 341, 107, 2037, 93, 741, 5279, 20093, 28637, 80823, 210279}}, +{15362, 18, 32836, {1, 1, 7, 15, 5, 9, 33, 167, 451, 463, 1951, 2395, 3821, 2915, 15195, 34517, 113545, 22173}}, +{15363, 18, 32843, {1, 1, 3, 1, 23, 55, 113, 159, 139, 795, 69, 2021, 6769, 10807, 18605, 54161, 39501, 233797}}, +{15364, 18, 32854, {1, 1, 7, 11, 17, 53, 103, 131, 385, 909, 629, 3127, 6117, 11457, 31115, 8255, 33227, 170877}}, +{15365, 18, 32893, {1, 1, 3, 9, 23, 19, 99, 221, 141, 731, 311, 2617, 2763, 375, 26763, 56473, 6613, 60519}}, +{15366, 18, 32897, {1, 3, 1, 9, 7, 29, 15, 105, 243, 159, 1755, 3999, 5861, 12009, 30111, 48269, 70427, 187173}}, +{15367, 18, 32912, {1, 1, 3, 13, 1, 35, 39, 121, 409, 571, 1835, 1535, 4671, 12671, 4503, 4783, 48009, 216837}}, +{15368, 18, 32951, {1, 1, 1, 9, 25, 61, 87, 109, 489, 107, 1741, 859, 237, 7161, 27117, 58587, 55445, 155763}}, +{15369, 18, 32963, {1, 1, 7, 15, 9, 21, 61, 159, 301, 863, 1823, 11, 419, 6717, 28199, 24129, 58419, 22147}}, +{15370, 18, 32970, {1, 3, 1, 5, 9, 7, 13, 205, 185, 759, 777, 2877, 5991, 14555, 18793, 51485, 6373, 232105}}, +{15371, 18, 32975, {1, 1, 3, 5, 7, 25, 51, 79, 227, 447, 867, 2709, 2677, 15249, 22957, 45577, 39011, 16839}}, +{15372, 18, 33028, {1, 1, 1, 3, 5, 51, 69, 135, 395, 339, 685, 3657, 3789, 16345, 2911, 51737, 97471, 126605}}, +{15373, 18, 33052, {1, 3, 7, 15, 15, 5, 85, 153, 507, 347, 1457, 527, 1055, 7773, 4161, 10487, 92373, 256535}}, +{15374, 18, 33061, {1, 3, 3, 3, 1, 9, 25, 1, 155, 321, 1739, 555, 7719, 10501, 19075, 12529, 75975, 229905}}, +{15375, 18, 33083, {1, 1, 1, 3, 29, 31, 89, 23, 283, 875, 1653, 855, 7613, 15277, 23845, 47443, 287, 217441}}, +{15376, 18, 33103, {1, 3, 3, 1, 25, 7, 75, 119, 493, 131, 231, 3063, 7171, 5437, 16385, 50347, 87427, 53603}}, +{15377, 18, 33117, {1, 3, 7, 7, 27, 55, 103, 223, 219, 103, 733, 1233, 1931, 2119, 19333, 59839, 100421, 256811}}, +{15378, 18, 33139, {1, 3, 7, 15, 23, 63, 77, 151, 285, 701, 1403, 1267, 6975, 11421, 24943, 51647, 75651, 191675}}, +{15379, 18, 33151, {1, 1, 5, 7, 25, 23, 25, 7, 503, 759, 997, 1711, 1439, 12483, 30117, 55205, 8813, 221589}}, +{15380, 18, 33162, {1, 3, 7, 5, 21, 3, 117, 65, 461, 851, 915, 575, 3061, 1055, 11999, 8375, 128677, 98005}}, +{15381, 18, 33209, {1, 3, 7, 7, 19, 13, 123, 23, 41, 293, 79, 1435, 1175, 7399, 14907, 4671, 88029, 220627}}, +{15382, 18, 33210, {1, 3, 3, 13, 11, 17, 65, 21, 143, 257, 1001, 2423, 5659, 11681, 23605, 40649, 49797, 55497}}, +{15383, 18, 33223, {1, 3, 5, 5, 29, 15, 125, 83, 139, 381, 1435, 2129, 1699, 10725, 531, 767, 112477, 134223}}, +{15384, 18, 33227, {1, 3, 7, 9, 9, 23, 35, 1, 127, 143, 707, 1475, 4705, 8921, 14919, 50909, 64425, 33381}}, +{15385, 18, 33241, {1, 1, 1, 15, 11, 63, 87, 101, 243, 833, 707, 4095, 201, 4877, 10219, 39019, 129779, 229857}}, +{15386, 18, 33263, {1, 1, 1, 11, 5, 9, 35, 177, 303, 545, 917, 1037, 1789, 12147, 29095, 27391, 112833, 104713}}, +{15387, 18, 33341, {1, 1, 1, 5, 27, 23, 111, 219, 439, 445, 967, 3527, 6203, 1829, 19657, 48965, 85213, 58719}}, +{15388, 18, 33344, {1, 3, 7, 11, 15, 7, 95, 113, 317, 225, 1229, 3033, 5777, 4075, 24093, 3539, 19333, 212757}}, +{15389, 18, 33356, {1, 3, 7, 7, 1, 35, 35, 67, 459, 769, 1675, 3509, 7393, 10433, 12003, 7385, 4425, 188989}}, +{15390, 18, 33390, {1, 1, 7, 9, 5, 45, 35, 27, 443, 301, 533, 2803, 99, 17, 20749, 58353, 93067, 118763}}, +{15391, 18, 33398, {1, 1, 3, 3, 13, 51, 61, 181, 81, 859, 1461, 3455, 2277, 13769, 1251, 4313, 119973, 30693}}, +{15392, 18, 33423, {1, 1, 3, 7, 15, 29, 23, 207, 239, 65, 1889, 151, 7793, 2657, 13673, 29033, 74477, 215027}}, +{15393, 18, 33428, {1, 1, 5, 1, 19, 35, 19, 71, 187, 783, 543, 505, 347, 3191, 1087, 49735, 54109, 27979}}, +{15394, 18, 33444, {1, 3, 3, 3, 3, 61, 67, 59, 207, 957, 1709, 1567, 7973, 5921, 29841, 8311, 81165, 91965}}, +{15395, 18, 33454, {1, 1, 1, 7, 23, 47, 109, 189, 447, 861, 1615, 3283, 3059, 749, 28729, 8713, 38743, 211019}}, +{15396, 18, 33479, {1, 3, 5, 1, 17, 51, 127, 181, 355, 515, 603, 465, 1825, 9281, 31971, 42793, 22467, 175777}}, +{15397, 18, 33510, {1, 3, 1, 5, 3, 29, 111, 91, 99, 15, 535, 3047, 1083, 7181, 28003, 60719, 71825, 12293}}, +{15398, 18, 33514, {1, 3, 5, 7, 1, 43, 83, 117, 221, 353, 139, 647, 6017, 4655, 31823, 22097, 118537, 71803}}, +{15399, 18, 33528, {1, 1, 3, 3, 27, 11, 35, 169, 215, 883, 1195, 2983, 4651, 15893, 24051, 313, 103947, 5227}}, +{15400, 18, 33548, {1, 3, 5, 13, 3, 51, 33, 159, 499, 763, 845, 1541, 3837, 9397, 855, 4187, 112167, 243817}}, +{15401, 18, 33566, {1, 1, 7, 9, 1, 15, 19, 239, 227, 561, 1685, 2841, 53, 9753, 15105, 34277, 128859, 100085}}, +{15402, 18, 33570, {1, 3, 5, 13, 15, 7, 57, 9, 415, 1005, 583, 1347, 4349, 3603, 9125, 15019, 77735, 237011}}, +{15403, 18, 33593, {1, 1, 1, 13, 27, 21, 105, 17, 235, 605, 1417, 2053, 3233, 11617, 28651, 43161, 71663, 98373}}, +{15404, 18, 33599, {1, 3, 5, 13, 29, 17, 123, 105, 477, 359, 613, 1699, 2581, 3007, 8507, 14391, 95487, 633}}, +{15405, 18, 33619, {1, 1, 7, 7, 13, 55, 107, 211, 71, 339, 1169, 2629, 165, 16207, 25523, 7101, 47553, 261131}}, +{15406, 18, 33635, {1, 3, 5, 15, 11, 7, 45, 207, 39, 41, 781, 3347, 2529, 4475, 9665, 31499, 119837, 128755}}, +{15407, 18, 33659, {1, 3, 1, 15, 23, 59, 59, 17, 89, 823, 59, 3991, 305, 14893, 1411, 8015, 92193, 66935}}, +{15408, 18, 33680, {1, 1, 7, 15, 19, 29, 11, 207, 429, 851, 1661, 2903, 4413, 447, 29447, 39243, 70435, 160451}}, +{15409, 18, 33699, {1, 1, 3, 13, 17, 5, 93, 89, 455, 67, 33, 65, 7957, 14383, 28525, 56983, 71899, 4881}}, +{15410, 18, 33713, {1, 3, 3, 5, 11, 7, 47, 233, 433, 791, 47, 2561, 6539, 1151, 2083, 12309, 62353, 69507}}, +{15411, 18, 33758, {1, 3, 5, 11, 15, 55, 101, 251, 41, 39, 383, 3481, 1817, 3447, 6205, 38169, 98267, 157091}}, +{15412, 18, 33771, {1, 3, 5, 7, 9, 47, 113, 55, 421, 703, 849, 2251, 129, 9257, 28097, 33475, 98933, 32041}}, +{15413, 18, 33779, {1, 3, 3, 11, 9, 59, 1, 211, 277, 969, 977, 3079, 4707, 3341, 17679, 9469, 52859, 125883}}, +{15414, 18, 33800, {1, 1, 7, 13, 29, 19, 49, 149, 259, 573, 1137, 2571, 2661, 12865, 24993, 10721, 96921, 85931}}, +{15415, 18, 33829, {1, 3, 1, 9, 15, 27, 91, 127, 305, 159, 523, 2539, 1969, 4325, 595, 37077, 79919, 26889}}, +{15416, 18, 33836, {1, 3, 1, 11, 1, 5, 65, 75, 317, 909, 1601, 2713, 6891, 4927, 28427, 5791, 82285, 35209}}, +{15417, 18, 33844, {1, 3, 7, 7, 9, 5, 111, 167, 477, 437, 1133, 2715, 6189, 5051, 4765, 26267, 99819, 70419}}, +{15418, 18, 33856, {1, 1, 3, 9, 27, 57, 23, 233, 423, 191, 1159, 1539, 6397, 16041, 8803, 19787, 114447, 17029}}, +{15419, 18, 33859, {1, 1, 5, 1, 11, 3, 111, 125, 287, 487, 1663, 1953, 3771, 2011, 18167, 47471, 94041, 87569}}, +{15420, 18, 33873, {1, 3, 1, 11, 5, 9, 75, 153, 37, 803, 971, 1667, 4631, 9183, 20179, 6905, 80949, 54443}}, +{15421, 18, 33874, {1, 1, 1, 5, 13, 29, 91, 201, 49, 739, 1569, 2725, 257, 5505, 5289, 40731, 27843, 16565}}, +{15422, 18, 33929, {1, 1, 7, 13, 27, 41, 81, 199, 99, 43, 1331, 3237, 6493, 3839, 19329, 44371, 19715, 60553}}, +{15423, 18, 33944, {1, 1, 5, 7, 29, 41, 67, 163, 467, 93, 1977, 2625, 6967, 6655, 19835, 39517, 10259, 200487}}, +{15424, 18, 33965, {1, 1, 3, 15, 23, 35, 31, 171, 175, 883, 593, 245, 6209, 7381, 5555, 54507, 66159, 40771}}, +{15425, 18, 33978, {1, 3, 3, 11, 3, 63, 75, 177, 239, 77, 1543, 875, 7951, 7571, 961, 9909, 101781, 160399}}, +{15426, 18, 33986, {1, 3, 1, 3, 3, 37, 71, 231, 373, 443, 835, 1321, 2107, 2929, 7527, 47969, 15329, 94537}}, +{15427, 18, 34006, {1, 3, 3, 15, 7, 5, 127, 121, 159, 25, 399, 3009, 4401, 9649, 4311, 18045, 22557, 135177}}, +{15428, 18, 34025, {1, 1, 1, 3, 29, 57, 75, 73, 261, 493, 1417, 1351, 3407, 8553, 4893, 10325, 123149, 161435}}, +{15429, 18, 34106, {1, 3, 3, 11, 15, 5, 87, 115, 337, 213, 949, 1925, 5057, 5831, 6837, 51167, 25291, 182197}}, +{15430, 18, 34126, {1, 3, 1, 11, 25, 49, 27, 101, 403, 989, 1129, 3933, 1147, 13091, 11965, 38075, 68251, 103293}}, +{15431, 18, 34171, {1, 1, 7, 5, 7, 49, 1, 189, 275, 63, 149, 3255, 1175, 7811, 24845, 20755, 99391, 140673}}, +{15432, 18, 34189, {1, 3, 1, 13, 17, 35, 37, 37, 415, 125, 643, 443, 6215, 299, 31237, 45687, 78535, 102123}}, +{15433, 18, 34204, {1, 3, 5, 3, 27, 41, 85, 215, 47, 21, 725, 1967, 2317, 121, 7827, 48229, 82027, 60271}}, +{15434, 18, 34260, {1, 3, 5, 1, 1, 55, 37, 183, 117, 421, 383, 3883, 5519, 6161, 6823, 18423, 77747, 215969}}, +{15435, 18, 34270, {1, 3, 5, 13, 31, 3, 117, 59, 375, 797, 1129, 1283, 3245, 12775, 30353, 3837, 130273, 228899}}, +{15436, 18, 34280, {1, 3, 5, 1, 7, 33, 17, 153, 179, 255, 537, 2911, 1223, 367, 18131, 25903, 33509, 220031}}, +{15437, 18, 34298, {1, 3, 7, 5, 5, 7, 103, 233, 309, 947, 1835, 3509, 4267, 15619, 5895, 30707, 81841, 191899}}, +{15438, 18, 34313, {1, 1, 5, 11, 3, 15, 91, 83, 319, 765, 895, 2565, 6833, 1719, 2971, 37483, 21709, 23193}}, +{15439, 18, 34321, {1, 1, 3, 11, 31, 57, 83, 233, 439, 161, 1503, 749, 6347, 15379, 2317, 24671, 93399, 239585}}, +{15440, 18, 34333, {1, 1, 3, 9, 29, 45, 19, 107, 295, 153, 189, 2521, 5465, 7321, 6143, 229, 100553, 258911}}, +{15441, 18, 34370, {1, 3, 7, 11, 31, 27, 95, 21, 249, 981, 1725, 1481, 1025, 9301, 11809, 53109, 29007, 127683}}, +{15442, 18, 34376, {1, 3, 1, 3, 1, 23, 97, 137, 5, 471, 1887, 1035, 2681, 5143, 3145, 1517, 88107, 245245}}, +{15443, 18, 34387, {1, 1, 1, 1, 15, 11, 13, 9, 405, 607, 403, 1693, 4363, 9365, 6425, 48121, 78969, 87341}}, +{15444, 18, 34389, {1, 1, 7, 15, 3, 17, 7, 51, 111, 1023, 9, 465, 1909, 16283, 4763, 50939, 119029, 198257}}, +{15445, 18, 34417, {1, 3, 3, 1, 31, 11, 113, 13, 499, 433, 1941, 991, 5439, 3123, 24591, 16171, 55099, 206015}}, +{15446, 18, 34429, {1, 3, 5, 15, 25, 49, 125, 101, 251, 619, 1895, 4063, 3065, 14965, 20081, 11233, 58253, 69633}}, +{15447, 18, 34440, {1, 1, 1, 5, 21, 35, 29, 241, 359, 553, 1001, 1865, 5183, 5233, 16371, 55277, 102091, 143275}}, +{15448, 18, 34443, {1, 1, 1, 3, 29, 37, 3, 191, 239, 961, 2031, 1337, 1169, 5229, 22861, 38257, 55027, 153703}}, +{15449, 18, 34451, {1, 3, 5, 7, 7, 35, 49, 139, 509, 381, 1267, 2641, 747, 16239, 23133, 32111, 70471, 128427}}, +{15450, 18, 34470, {1, 1, 1, 9, 23, 25, 117, 125, 369, 891, 103, 2215, 3571, 1291, 9001, 35671, 67119, 198847}}, +{15451, 18, 34484, {1, 1, 5, 9, 17, 19, 27, 7, 207, 55, 1099, 2117, 7511, 14999, 7761, 32215, 103401, 68599}}, +{15452, 18, 34493, {1, 1, 7, 9, 1, 59, 41, 91, 9, 225, 457, 3241, 4713, 2923, 11973, 2867, 130583, 202007}}, +{15453, 18, 34496, {1, 3, 1, 9, 31, 47, 63, 49, 457, 757, 885, 937, 2973, 12147, 2607, 52907, 126047, 83275}}, +{15454, 18, 34514, {1, 3, 5, 11, 17, 1, 79, 123, 505, 203, 1779, 71, 4357, 2285, 31625, 15225, 86519, 2021}}, +{15455, 18, 34526, {1, 3, 1, 11, 21, 17, 41, 169, 125, 995, 351, 1235, 25, 7463, 2099, 18917, 71355, 26983}}, +{15456, 18, 34535, {1, 1, 7, 1, 21, 23, 41, 5, 415, 405, 1235, 1245, 151, 11283, 25293, 45147, 12597, 39501}}, +{15457, 18, 34585, {1, 1, 1, 5, 29, 29, 15, 165, 259, 179, 1479, 3535, 779, 6583, 885, 34331, 71193, 154417}}, +{15458, 18, 34591, {1, 1, 1, 5, 3, 1, 13, 181, 507, 339, 333, 4059, 7963, 15649, 15507, 16913, 34741, 202039}}, +{15459, 18, 34592, {1, 3, 7, 1, 1, 9, 17, 119, 77, 583, 259, 883, 4011, 4275, 9599, 58663, 73237, 202783}}, +{15460, 18, 34602, {1, 1, 5, 11, 23, 27, 19, 171, 373, 779, 661, 1701, 3363, 13095, 897, 51233, 1319, 41093}}, +{15461, 18, 34607, {1, 3, 3, 3, 29, 21, 105, 29, 429, 657, 1735, 1279, 809, 14963, 9735, 23251, 44879, 159371}}, +{15462, 18, 34644, {1, 1, 5, 11, 17, 27, 117, 65, 193, 539, 1095, 439, 1687, 11277, 513, 30611, 88885, 69145}}, +{15463, 18, 34657, {1, 3, 1, 7, 11, 1, 27, 41, 63, 501, 917, 2397, 6839, 10835, 26437, 56169, 46631, 64095}}, +{15464, 18, 34675, {1, 1, 7, 15, 29, 5, 17, 217, 333, 389, 403, 3167, 3599, 12055, 30669, 44821, 109811, 237393}}, +{15465, 18, 34681, {1, 3, 5, 13, 1, 39, 51, 233, 159, 135, 763, 2499, 7741, 13099, 8639, 8043, 39827, 5989}}, +{15466, 18, 34693, {1, 1, 7, 3, 1, 61, 41, 37, 37, 67, 867, 2631, 6265, 5551, 161, 56643, 126087, 126829}}, +{15467, 18, 34706, {1, 1, 7, 1, 21, 39, 101, 225, 489, 123, 661, 2489, 1865, 6809, 21663, 59405, 45579, 51257}}, +{15468, 18, 34745, {1, 3, 7, 9, 27, 53, 11, 97, 369, 389, 1933, 3321, 543, 12331, 11571, 10685, 49049, 244027}}, +{15469, 18, 34759, {1, 3, 5, 3, 7, 15, 21, 165, 181, 877, 1161, 1815, 2097, 449, 32411, 22843, 12467, 55397}}, +{15470, 18, 34765, {1, 3, 1, 3, 11, 45, 23, 193, 287, 137, 333, 1831, 457, 583, 23081, 4525, 4781, 249509}}, +{15471, 18, 34774, {1, 3, 5, 5, 15, 13, 27, 199, 267, 297, 923, 3861, 4949, 7945, 25291, 45407, 47529, 127287}}, +{15472, 18, 34780, {1, 1, 5, 7, 19, 29, 113, 51, 503, 487, 699, 2097, 2957, 6519, 19487, 46873, 38871, 89997}}, +{15473, 18, 34794, {1, 1, 5, 13, 17, 31, 57, 127, 335, 223, 1545, 3749, 1539, 3293, 21159, 13019, 48343, 190895}}, +{15474, 18, 34807, {1, 1, 7, 9, 25, 19, 75, 41, 511, 269, 819, 3313, 6805, 15051, 4349, 1809, 34841, 190641}}, +{15475, 18, 34808, {1, 3, 5, 9, 27, 7, 91, 187, 123, 519, 477, 2719, 211, 1225, 22689, 37043, 66291, 205441}}, +{15476, 18, 34835, {1, 1, 5, 13, 5, 41, 95, 49, 187, 239, 1213, 2363, 8075, 12423, 6361, 42471, 70047, 188063}}, +{15477, 18, 34842, {1, 3, 7, 3, 27, 23, 21, 217, 65, 143, 1171, 1441, 1603, 2235, 20923, 32611, 111903, 132771}}, +{15478, 18, 34865, {1, 1, 7, 9, 3, 29, 33, 203, 497, 179, 1253, 2083, 7407, 12551, 8371, 62167, 93875, 193017}}, +{15479, 18, 34907, {1, 1, 1, 13, 7, 61, 43, 107, 417, 757, 1701, 3187, 5489, 11359, 20469, 20249, 93581, 207969}}, +{15480, 18, 34928, {1, 1, 7, 3, 31, 51, 51, 183, 483, 885, 1627, 3605, 6687, 1271, 27013, 40409, 103807, 189805}}, +{15481, 18, 34949, {1, 1, 3, 1, 21, 21, 107, 185, 267, 981, 147, 1873, 1085, 15829, 10315, 21673, 7713, 120087}}, +{15482, 18, 34961, {1, 1, 5, 3, 7, 27, 73, 131, 287, 657, 1351, 547, 3655, 2433, 6753, 2465, 110299, 194587}}, +{15483, 18, 34964, {1, 1, 7, 7, 17, 55, 29, 223, 411, 775, 745, 3515, 4573, 4289, 7411, 55999, 22021, 110567}}, +{15484, 18, 34987, {1, 3, 1, 3, 29, 55, 7, 183, 507, 773, 1299, 3653, 7693, 3773, 29549, 4171, 123039, 137495}}, +{15485, 18, 34990, {1, 1, 1, 7, 5, 25, 53, 85, 41, 837, 587, 2997, 7281, 6821, 15609, 47855, 49017, 108557}}, +{15486, 18, 35019, {1, 1, 5, 5, 1, 17, 109, 231, 295, 825, 1909, 683, 2197, 1895, 8641, 37917, 36347, 38683}}, +{15487, 18, 35069, {1, 3, 7, 3, 23, 39, 91, 121, 223, 505, 127, 3439, 7779, 12917, 17351, 33063, 84019, 40077}}, +{15488, 18, 35077, {1, 3, 3, 1, 19, 1, 125, 99, 143, 549, 709, 3605, 2377, 761, 14369, 52191, 80811, 214877}}, +{15489, 18, 35090, {1, 1, 7, 9, 13, 57, 39, 91, 505, 299, 1241, 1697, 5821, 5327, 22439, 42321, 120941, 40009}}, +{15490, 18, 35152, {1, 1, 3, 13, 15, 59, 15, 129, 265, 841, 1255, 1915, 4645, 5991, 26801, 7839, 66961, 59045}}, +{15491, 18, 35173, {1, 3, 7, 15, 17, 57, 61, 173, 391, 1001, 1815, 2565, 1445, 13237, 2273, 61683, 62327, 180255}}, +{15492, 18, 35174, {1, 1, 3, 3, 23, 29, 115, 185, 333, 103, 1807, 3271, 4803, 9743, 3031, 25263, 30761, 1899}}, +{15493, 18, 35202, {1, 1, 1, 7, 1, 13, 63, 113, 467, 17, 1803, 3141, 7069, 8895, 25823, 40347, 11211, 88769}}, +{15494, 18, 35214, {1, 3, 5, 1, 3, 3, 29, 101, 315, 915, 341, 287, 4167, 7579, 19797, 18287, 19079, 52805}}, +{15495, 18, 35219, {1, 3, 7, 15, 31, 61, 27, 153, 387, 273, 343, 881, 2273, 6621, 19391, 41735, 123899, 117851}}, +{15496, 18, 35226, {1, 1, 7, 11, 5, 49, 83, 223, 87, 341, 1023, 2785, 3635, 2651, 5179, 25907, 115249, 74001}}, +{15497, 18, 35235, {1, 3, 3, 7, 31, 37, 123, 79, 365, 455, 639, 691, 2659, 12215, 26785, 48785, 120175, 155501}}, +{15498, 18, 35255, {1, 3, 3, 11, 19, 49, 81, 97, 429, 317, 257, 663, 5009, 2855, 22721, 51553, 32511, 188977}}, +{15499, 18, 35310, {1, 1, 7, 11, 5, 37, 1, 123, 477, 747, 839, 3975, 6347, 489, 31387, 56037, 62935, 177587}}, +{15500, 18, 35318, {1, 1, 1, 1, 29, 7, 119, 233, 255, 25, 127, 1377, 991, 12151, 31259, 64863, 34733, 86101}}, +{15501, 18, 35321, {1, 3, 7, 5, 19, 57, 67, 1, 81, 719, 891, 2485, 3817, 1055, 437, 9779, 23823, 173219}}, +{15502, 18, 35333, {1, 1, 1, 5, 1, 63, 87, 163, 135, 809, 637, 1233, 5245, 481, 11011, 23477, 114963, 96051}}, +{15503, 18, 35337, {1, 1, 7, 5, 25, 39, 57, 129, 311, 525, 1555, 179, 639, 4949, 8809, 31215, 95975, 79407}}, +{15504, 18, 35346, {1, 3, 1, 1, 15, 59, 77, 87, 479, 889, 1619, 331, 4781, 10597, 935, 28105, 83861, 134273}}, +{15505, 18, 35373, {1, 3, 5, 15, 21, 55, 61, 105, 373, 185, 1579, 3487, 2621, 8993, 6443, 31709, 57329, 128165}}, +{15506, 18, 35414, {1, 3, 3, 3, 7, 21, 117, 159, 177, 927, 1873, 1865, 3219, 1693, 1173, 34365, 107053, 113949}}, +{15507, 18, 35478, {1, 3, 7, 1, 17, 37, 35, 101, 305, 141, 1681, 1949, 47, 11351, 989, 13887, 127429, 13059}}, +{15508, 18, 35497, {1, 1, 3, 7, 13, 41, 125, 115, 65, 621, 1401, 631, 5875, 8589, 17185, 22757, 83625, 92907}}, +{15509, 18, 35503, {1, 3, 1, 5, 25, 37, 73, 39, 495, 645, 265, 2685, 5875, 5919, 23223, 44593, 26207, 49921}}, +{15510, 18, 35512, {1, 3, 1, 13, 25, 31, 39, 15, 179, 791, 1817, 3617, 2139, 1827, 21215, 21767, 15009, 239443}}, +{15511, 18, 35515, {1, 1, 3, 7, 17, 9, 33, 121, 235, 535, 1537, 3307, 2881, 4351, 4721, 34131, 129619, 137993}}, +{15512, 18, 35526, {1, 1, 3, 1, 3, 51, 79, 213, 205, 323, 1749, 2563, 2013, 6519, 18923, 25937, 74445, 252283}}, +{15513, 18, 35577, {1, 3, 5, 11, 3, 53, 17, 195, 305, 543, 1937, 2997, 4593, 7801, 15307, 46359, 39365, 59537}}, +{15514, 18, 35585, {1, 1, 1, 13, 31, 53, 111, 163, 139, 163, 999, 83, 5125, 10047, 11143, 51407, 13627, 3621}}, +{15515, 18, 35592, {1, 1, 3, 9, 5, 1, 125, 95, 281, 939, 913, 1441, 1209, 12983, 27759, 22393, 75985, 178997}}, +{15516, 18, 35615, {1, 3, 5, 3, 5, 27, 91, 41, 51, 447, 491, 3405, 497, 2873, 17865, 30651, 104197, 71751}}, +{15517, 18, 35616, {1, 3, 7, 1, 29, 61, 73, 31, 423, 933, 1327, 809, 1461, 269, 15121, 18649, 36095, 139429}}, +{15518, 18, 35622, {1, 1, 7, 7, 19, 49, 51, 173, 297, 411, 1255, 1093, 2821, 6743, 1927, 27563, 68459, 261411}}, +{15519, 18, 35634, {1, 3, 5, 1, 5, 33, 27, 119, 103, 615, 149, 2299, 6801, 15615, 7361, 31045, 87719, 9557}}, +{15520, 18, 35657, {1, 1, 3, 9, 17, 23, 89, 35, 151, 385, 319, 2065, 1897, 1987, 15159, 34855, 5395, 110751}}, +{15521, 18, 35672, {1, 3, 1, 13, 7, 47, 19, 185, 207, 787, 1179, 1073, 1463, 6277, 6129, 25031, 91969, 123235}}, +{15522, 18, 35708, {1, 1, 7, 3, 19, 63, 97, 1, 381, 71, 1169, 339, 6585, 3629, 31357, 59451, 102735, 253667}}, +{15523, 18, 35772, {1, 3, 3, 13, 9, 27, 69, 17, 509, 599, 1247, 2267, 3309, 1905, 17995, 41263, 5947, 51607}}, +{15524, 18, 35790, {1, 3, 1, 9, 31, 45, 69, 243, 171, 555, 61, 1135, 1993, 8615, 18363, 19545, 64015, 81391}}, +{15525, 18, 35804, {1, 1, 1, 1, 19, 49, 31, 65, 53, 123, 271, 3007, 4509, 9465, 3855, 12673, 19457, 14677}}, +{15526, 18, 35811, {1, 3, 5, 13, 29, 53, 91, 145, 115, 53, 839, 1911, 2887, 6053, 18437, 42273, 63093, 70937}}, +{15527, 18, 35814, {1, 1, 5, 5, 27, 13, 87, 175, 485, 699, 463, 811, 4991, 15303, 23007, 10021, 59125, 39997}}, +{15528, 18, 35837, {1, 1, 5, 5, 27, 21, 89, 61, 109, 555, 953, 2811, 3015, 3249, 16085, 64413, 84605, 177333}}, +{15529, 18, 35846, {1, 1, 7, 3, 1, 29, 83, 143, 67, 577, 971, 2339, 6521, 6341, 27141, 37149, 99813, 37579}}, +{15530, 18, 35873, {1, 3, 3, 7, 23, 29, 117, 5, 287, 559, 667, 2349, 7481, 679, 9633, 40857, 89841, 98125}}, +{15531, 18, 35883, {1, 1, 1, 3, 31, 31, 83, 117, 213, 213, 23, 3803, 5967, 7759, 19521, 13229, 62231, 150687}}, +{15532, 18, 35918, {1, 3, 7, 9, 1, 15, 37, 191, 19, 107, 1723, 3517, 3477, 3777, 4359, 45815, 58661, 33217}}, +{15533, 18, 35920, {1, 1, 5, 1, 17, 3, 3, 255, 501, 1021, 1731, 481, 6145, 3475, 3417, 11847, 92203, 75109}}, +{15534, 18, 35925, {1, 1, 5, 1, 1, 61, 89, 107, 503, 627, 931, 1355, 2067, 12487, 20665, 61543, 15501, 103843}}, +{15535, 18, 35926, {1, 1, 5, 9, 25, 17, 7, 255, 251, 939, 851, 2241, 939, 15331, 29357, 2485, 80791, 152601}}, +{15536, 18, 35945, {1, 1, 5, 3, 13, 25, 35, 113, 83, 765, 1317, 1409, 369, 2215, 5659, 3581, 13925, 108673}}, +{15537, 18, 35956, {1, 1, 1, 1, 13, 13, 83, 27, 5, 563, 723, 2733, 3155, 6567, 24595, 45569, 37587, 144401}}, +{15538, 18, 36003, {1, 1, 1, 9, 31, 51, 73, 105, 299, 857, 669, 963, 4115, 14939, 11669, 46215, 92707, 149249}}, +{15539, 18, 36023, {1, 1, 3, 5, 7, 41, 105, 213, 3, 999, 93, 1497, 6783, 1559, 20047, 40761, 88219, 64769}}, +{15540, 18, 36024, {1, 3, 1, 5, 13, 17, 79, 29, 453, 75, 1095, 623, 7401, 4225, 30467, 60795, 130045, 154767}}, +{15541, 18, 36059, {1, 1, 5, 3, 31, 59, 33, 129, 505, 277, 1623, 3531, 6841, 12903, 7231, 5801, 92405, 260195}}, +{15542, 18, 36061, {1, 1, 3, 5, 27, 23, 63, 219, 225, 547, 1163, 1899, 4191, 9725, 30077, 30157, 73395, 38195}}, +{15543, 18, 36072, {1, 1, 1, 11, 17, 27, 63, 127, 95, 205, 1753, 2023, 6803, 4355, 28169, 16691, 25105, 8969}}, +{15544, 18, 36075, {1, 1, 5, 3, 23, 23, 89, 115, 231, 647, 513, 3161, 3175, 5061, 5797, 35387, 109827, 19511}}, +{15545, 18, 36103, {1, 3, 5, 5, 11, 9, 39, 251, 367, 253, 2031, 3909, 1057, 12545, 25397, 51571, 91229, 83721}}, +{15546, 18, 36110, {1, 3, 5, 7, 5, 35, 57, 153, 111, 789, 177, 2237, 1333, 13185, 993, 22099, 62113, 211815}}, +{15547, 18, 36131, {1, 1, 5, 15, 19, 37, 123, 221, 375, 605, 791, 1663, 7537, 7193, 20149, 58077, 113129, 185493}}, +{15548, 18, 36151, {1, 1, 1, 1, 1, 53, 117, 227, 441, 851, 1171, 4031, 2313, 2847, 25533, 31767, 18197, 153101}}, +{15549, 18, 36160, {1, 1, 3, 3, 13, 9, 65, 225, 71, 763, 1507, 3795, 4321, 399, 12515, 4527, 89193, 236161}}, +{15550, 18, 36199, {1, 1, 3, 11, 21, 63, 73, 125, 369, 309, 953, 3525, 3925, 13609, 26061, 21739, 112867, 112985}}, +{15551, 18, 36223, {1, 1, 7, 1, 27, 25, 3, 129, 321, 193, 1871, 233, 837, 11163, 14861, 42721, 72849, 206739}}, +{15552, 18, 36227, {1, 3, 7, 3, 5, 51, 43, 177, 167, 11, 1297, 1805, 515, 6485, 8253, 271, 47435, 252291}}, +{15553, 18, 36234, {1, 3, 3, 3, 19, 47, 47, 47, 299, 101, 1535, 3593, 4669, 10367, 19219, 16579, 85269, 36115}}, +{15554, 18, 36236, {1, 1, 7, 15, 7, 51, 53, 181, 379, 267, 985, 3401, 2189, 10197, 14183, 413, 76797, 24751}}, +{15555, 18, 36284, {1, 1, 5, 7, 13, 27, 65, 119, 235, 131, 1921, 3411, 1511, 11221, 30315, 11799, 127563, 203533}}, +{15556, 18, 36319, {1, 3, 1, 3, 13, 55, 101, 189, 483, 261, 467, 645, 417, 6203, 9221, 19671, 102331, 259335}}, +{15557, 18, 36332, {1, 1, 5, 15, 19, 7, 81, 1, 371, 119, 1433, 1211, 303, 14393, 27107, 45295, 109211, 224661}}, +{15558, 18, 36343, {1, 3, 7, 9, 19, 53, 31, 55, 103, 351, 1511, 377, 981, 6709, 19553, 53579, 55043, 170489}}, +{15559, 18, 36373, {1, 3, 3, 15, 31, 49, 1, 251, 187, 73, 119, 3041, 5455, 5355, 22245, 7735, 14661, 258447}}, +{15560, 18, 36401, {1, 3, 7, 11, 13, 1, 61, 97, 179, 975, 1653, 3301, 4303, 2271, 30171, 63287, 51271, 21909}}, +{15561, 18, 36413, {1, 1, 5, 11, 21, 45, 101, 131, 121, 881, 1205, 1849, 4337, 5687, 31967, 22559, 98017, 202557}}, +{15562, 18, 36433, {1, 3, 3, 7, 1, 49, 11, 35, 141, 309, 651, 3319, 4313, 3675, 27699, 49429, 109805, 167089}}, +{15563, 18, 36459, {1, 1, 3, 13, 13, 15, 61, 251, 335, 365, 677, 2183, 6291, 8857, 15231, 551, 63149, 76729}}, +{15564, 18, 36480, {1, 3, 3, 13, 1, 59, 85, 127, 409, 1007, 1947, 3495, 6227, 11447, 14329, 3769, 109619, 59063}}, +{15565, 18, 36485, {1, 3, 5, 11, 11, 59, 67, 209, 491, 757, 1137, 1977, 3155, 9339, 11219, 20303, 66417, 187911}}, +{15566, 18, 36510, {1, 1, 5, 9, 27, 51, 87, 249, 327, 867, 29, 3811, 4769, 12353, 24803, 35747, 84101, 210975}}, +{15567, 18, 36513, {1, 3, 7, 7, 23, 37, 23, 55, 237, 543, 779, 1305, 1535, 13333, 1403, 10903, 113135, 195799}}, +{15568, 18, 36523, {1, 1, 3, 11, 1, 1, 3, 153, 401, 35, 981, 79, 4227, 9203, 8179, 29325, 104809, 140613}}, +{15569, 18, 36528, {1, 3, 5, 9, 13, 39, 101, 181, 507, 307, 1411, 1443, 6855, 8747, 22709, 37869, 102303, 577}}, +{15570, 18, 36537, {1, 3, 5, 1, 25, 41, 3, 239, 195, 1, 1277, 2085, 4253, 14683, 24171, 56733, 82795, 213291}}, +{15571, 18, 36558, {1, 1, 3, 5, 25, 55, 31, 55, 215, 149, 1813, 3775, 779, 6137, 10561, 41671, 96883, 177435}}, +{15572, 18, 36563, {1, 1, 5, 11, 15, 5, 1, 237, 131, 13, 229, 3203, 2431, 1829, 31983, 59535, 31381, 175455}}, +{15573, 18, 36576, {1, 3, 3, 7, 5, 19, 61, 253, 223, 609, 1395, 2495, 5501, 6571, 12989, 889, 49435, 200251}}, +{15574, 18, 36608, {1, 1, 7, 13, 25, 49, 33, 157, 457, 259, 1935, 2249, 7419, 12685, 30509, 32187, 108839, 178963}}, +{15575, 18, 36611, {1, 3, 3, 15, 19, 27, 91, 133, 369, 931, 359, 759, 2647, 13643, 14877, 14031, 115367, 201745}}, +{15576, 18, 36617, {1, 1, 5, 3, 9, 23, 87, 27, 203, 995, 1759, 999, 949, 2733, 29053, 46581, 129003, 42585}}, +{15577, 18, 36653, {1, 1, 3, 1, 1, 21, 63, 243, 257, 741, 681, 2471, 2455, 15145, 31739, 8751, 15963, 165405}}, +{15578, 18, 36716, {1, 3, 3, 1, 25, 21, 69, 213, 219, 9, 199, 487, 4103, 141, 18177, 58797, 60415, 6313}}, +{15579, 18, 36721, {1, 3, 1, 5, 23, 43, 61, 121, 123, 89, 283, 1313, 2707, 10199, 7699, 17437, 130995, 140327}}, +{15580, 18, 36733, {1, 3, 5, 13, 31, 41, 111, 39, 403, 5, 1125, 2867, 3143, 7051, 9891, 43349, 20751, 88465}}, +{15581, 18, 36761, {1, 1, 3, 1, 19, 53, 83, 207, 285, 789, 1515, 3455, 4057, 15777, 27879, 46971, 122661, 143407}}, +{15582, 18, 36783, {1, 3, 3, 11, 25, 21, 127, 191, 313, 357, 1625, 1323, 1151, 12509, 22275, 23517, 12221, 258709}}, +{15583, 18, 36786, {1, 1, 5, 7, 1, 47, 1, 107, 387, 965, 1319, 2911, 2121, 8595, 9, 21587, 81187, 2803}}, +{15584, 18, 36795, {1, 3, 3, 5, 19, 55, 37, 213, 23, 767, 1493, 635, 4289, 2503, 16835, 47851, 77335, 60565}}, +{15585, 18, 36800, {1, 1, 1, 7, 23, 9, 101, 145, 457, 691, 1895, 2145, 7527, 7687, 20781, 10957, 24859, 79137}}, +{15586, 18, 36810, {1, 3, 7, 15, 9, 9, 15, 195, 493, 859, 687, 1445, 429, 8599, 24591, 40709, 118361, 148163}}, +{15587, 18, 36812, {1, 1, 1, 3, 7, 51, 45, 143, 339, 475, 1177, 2829, 785, 10141, 4923, 29135, 22603, 119973}}, +{15588, 18, 36817, {1, 3, 5, 15, 25, 37, 1, 13, 351, 127, 143, 2637, 1215, 14577, 12465, 10575, 67997, 21877}}, +{15589, 18, 36818, {1, 3, 7, 3, 27, 19, 59, 241, 327, 307, 731, 3471, 6123, 13607, 8793, 14825, 110681, 83259}}, +{15590, 18, 36851, {1, 1, 1, 11, 25, 5, 59, 85, 335, 189, 499, 1305, 5801, 7259, 2397, 14045, 55585, 258579}}, +{15591, 18, 36853, {1, 1, 3, 5, 21, 49, 49, 63, 261, 657, 1453, 55, 1325, 15513, 14891, 60689, 15381, 252641}}, +{15592, 18, 36868, {1, 1, 7, 15, 25, 3, 85, 33, 495, 867, 903, 1813, 2871, 365, 17399, 45695, 102851, 225873}}, +{15593, 18, 36889, {1, 1, 1, 13, 13, 63, 29, 35, 325, 893, 1313, 133, 8169, 7791, 9271, 36759, 92275, 169717}}, +{15594, 18, 36890, {1, 1, 7, 3, 21, 45, 7, 151, 387, 891, 1921, 1701, 307, 5323, 16321, 51229, 79369, 21513}}, +{15595, 18, 36896, {1, 1, 1, 11, 7, 27, 17, 75, 161, 649, 337, 1731, 2905, 4589, 17387, 10455, 70673, 228373}}, +{15596, 18, 36905, {1, 1, 3, 15, 17, 35, 45, 131, 469, 629, 1771, 1965, 5065, 6249, 29041, 52791, 55619, 154531}}, +{15597, 18, 36919, {1, 1, 7, 3, 25, 53, 85, 233, 161, 163, 1155, 3159, 1551, 13099, 25647, 26777, 91647, 162755}}, +{15598, 18, 36938, {1, 1, 3, 9, 17, 11, 39, 63, 503, 927, 1621, 3425, 4835, 7083, 16449, 47913, 127905, 165567}}, +{15599, 18, 36946, {1, 1, 7, 1, 29, 9, 1, 111, 285, 1009, 1427, 3071, 205, 12269, 31337, 14501, 10923, 14277}}, +{15600, 18, 36951, {1, 1, 5, 5, 1, 3, 51, 205, 477, 661, 1555, 2113, 6487, 4755, 13633, 16391, 35775, 52623}}, +{15601, 18, 36952, {1, 3, 3, 3, 27, 23, 109, 49, 71, 19, 733, 1361, 4369, 14527, 20443, 10507, 120183, 246115}}, +{15602, 18, 36964, {1, 3, 3, 5, 7, 47, 51, 197, 97, 471, 1631, 3317, 5857, 9405, 30359, 7741, 45079, 175929}}, +{15603, 18, 36968, {1, 1, 3, 3, 13, 63, 39, 173, 511, 525, 1687, 1735, 6877, 7383, 27971, 26503, 6189, 232251}}, +{15604, 18, 36979, {1, 1, 5, 3, 5, 31, 101, 99, 51, 987, 1627, 3899, 6321, 9441, 4983, 64001, 30923, 199495}}, +{15605, 18, 36981, {1, 3, 1, 1, 11, 39, 119, 123, 33, 1017, 1477, 283, 4939, 453, 16445, 25599, 106857, 257811}}, +{15606, 18, 37021, {1, 3, 1, 11, 13, 1, 3, 101, 275, 75, 1795, 1449, 2503, 11765, 19299, 14237, 157, 244825}}, +{15607, 18, 37026, {1, 3, 7, 15, 23, 1, 85, 65, 55, 103, 1523, 1443, 1021, 5733, 3297, 10889, 22487, 82503}}, +{15608, 18, 37075, {1, 1, 7, 3, 17, 59, 109, 113, 17, 173, 1709, 273, 5327, 3243, 10751, 58361, 42303, 78391}}, +{15609, 18, 37077, {1, 1, 5, 15, 25, 11, 101, 133, 193, 131, 1671, 3045, 7111, 14331, 15665, 56407, 31561, 154555}}, +{15610, 18, 37108, {1, 3, 3, 5, 15, 41, 105, 65, 81, 293, 389, 2653, 1883, 14741, 23553, 33349, 39665, 154233}}, +{15611, 18, 37112, {1, 1, 5, 15, 31, 19, 121, 41, 261, 511, 1679, 957, 1647, 12647, 12285, 30291, 122483, 187911}}, +{15612, 18, 37150, {1, 3, 1, 5, 27, 25, 17, 45, 303, 947, 1123, 2729, 281, 12389, 27987, 42667, 16089, 17129}}, +{15613, 18, 37154, {1, 3, 7, 15, 13, 17, 25, 223, 125, 837, 159, 253, 2599, 11381, 639, 32545, 50633, 139025}}, +{15614, 18, 37156, {1, 3, 1, 13, 23, 43, 25, 83, 507, 47, 99, 697, 4453, 2139, 17151, 50709, 37099, 212957}}, +{15615, 18, 37163, {1, 1, 7, 7, 29, 7, 63, 141, 475, 853, 1073, 143, 6979, 5663, 29691, 59489, 89689, 223047}}, +{15616, 18, 37178, {1, 1, 1, 1, 13, 27, 101, 61, 27, 735, 207, 2065, 5811, 5461, 21493, 15481, 103727, 80017}}, +{15617, 18, 37183, {1, 3, 1, 11, 9, 9, 35, 251, 147, 841, 1891, 1909, 5053, 5103, 11751, 16209, 110475, 114875}}, +{15618, 18, 37185, {1, 3, 3, 11, 13, 55, 117, 205, 71, 159, 1797, 989, 2221, 16087, 18287, 8355, 96403, 146613}}, +{15619, 18, 37191, {1, 1, 5, 5, 29, 25, 73, 63, 299, 839, 1225, 3583, 5641, 1341, 29431, 7035, 99107, 13493}}, +{15620, 18, 37198, {1, 1, 3, 5, 27, 53, 9, 51, 79, 701, 667, 1469, 4455, 13761, 18607, 39429, 7687, 201115}}, +{15621, 18, 37203, {1, 3, 7, 11, 23, 35, 101, 129, 491, 369, 565, 2557, 2529, 1003, 16003, 33873, 52155, 861}}, +{15622, 18, 37225, {1, 1, 1, 15, 27, 63, 1, 55, 331, 853, 899, 1027, 7389, 8935, 12559, 27315, 101753, 255331}}, +{15623, 18, 37243, {1, 3, 3, 15, 5, 41, 93, 39, 473, 887, 1667, 847, 7619, 8407, 6539, 31989, 63807, 21861}}, +{15624, 18, 37252, {1, 1, 5, 11, 27, 57, 73, 249, 331, 653, 21, 2937, 4403, 16195, 18785, 30375, 22939, 235291}}, +{15625, 18, 37262, {1, 1, 7, 1, 7, 41, 59, 161, 295, 503, 595, 3021, 455, 3991, 8617, 65361, 107239, 83205}}, +{15626, 18, 37264, {1, 3, 3, 15, 17, 41, 61, 229, 273, 687, 657, 1969, 2817, 2367, 29183, 41199, 24123, 184081}}, +{15627, 18, 37276, {1, 3, 7, 5, 25, 63, 43, 65, 443, 423, 549, 2031, 3353, 7041, 6563, 18819, 46047, 239823}}, +{15628, 18, 37327, {1, 3, 3, 3, 3, 17, 13, 115, 377, 623, 1959, 127, 5125, 13209, 24731, 23151, 21303, 7213}}, +{15629, 18, 37355, {1, 1, 7, 1, 21, 11, 21, 41, 491, 37, 1759, 2771, 1301, 12995, 17621, 30907, 75511, 82321}}, +{15630, 18, 37403, {1, 3, 3, 13, 13, 23, 77, 211, 215, 711, 427, 2213, 8041, 1595, 26105, 39051, 105407, 242141}}, +{15631, 18, 37415, {1, 3, 3, 9, 13, 35, 117, 207, 75, 395, 723, 3321, 6643, 2429, 10043, 10585, 3529, 64067}}, +{15632, 18, 37422, {1, 1, 1, 7, 3, 1, 83, 93, 311, 157, 891, 1717, 7669, 16067, 11775, 27693, 11757, 94471}}, +{15633, 18, 37448, {1, 3, 3, 5, 17, 63, 23, 177, 289, 921, 315, 3083, 5903, 8697, 22425, 37845, 31171, 49237}}, +{15634, 18, 37451, {1, 1, 7, 9, 21, 63, 29, 227, 427, 271, 525, 2071, 7103, 8389, 29185, 51601, 110737, 16949}}, +{15635, 18, 37478, {1, 3, 3, 3, 3, 49, 25, 173, 79, 343, 509, 1939, 6389, 15501, 20135, 54365, 69931, 135269}}, +{15636, 18, 37484, {1, 1, 3, 3, 21, 23, 41, 71, 169, 947, 1027, 2345, 3397, 12181, 15409, 31725, 41223, 58837}}, +{15637, 18, 37525, {1, 3, 7, 1, 19, 23, 57, 201, 27, 449, 1479, 921, 4703, 10949, 14369, 27929, 45399, 46055}}, +{15638, 18, 37553, {1, 1, 3, 9, 13, 17, 125, 17, 393, 295, 497, 3089, 6589, 4003, 8687, 48145, 2683, 175521}}, +{15639, 18, 37640, {1, 3, 3, 15, 15, 13, 3, 31, 51, 101, 973, 101, 3709, 13437, 51, 14293, 21561, 136497}}, +{15640, 18, 37645, {1, 1, 5, 11, 17, 27, 51, 45, 77, 539, 225, 2029, 533, 153, 26085, 33611, 28153, 75671}}, +{15641, 18, 37658, {1, 1, 1, 15, 3, 59, 59, 123, 475, 225, 1613, 3121, 2865, 4647, 14553, 35449, 121657, 37457}}, +{15642, 18, 37667, {1, 1, 5, 1, 27, 33, 121, 225, 57, 619, 1293, 3813, 2121, 3525, 21995, 47253, 33095, 257451}}, +{15643, 18, 37708, {1, 3, 1, 11, 11, 43, 115, 233, 335, 185, 989, 3567, 4135, 2357, 20559, 43325, 43015, 51695}}, +{15644, 18, 37723, {1, 1, 5, 9, 11, 49, 45, 187, 93, 967, 1609, 2511, 1549, 4045, 21309, 16341, 13495, 214827}}, +{15645, 18, 37732, {1, 1, 1, 13, 21, 23, 81, 7, 259, 483, 1059, 773, 5297, 10123, 9857, 61187, 47355, 76307}}, +{15646, 18, 37747, {1, 3, 7, 9, 29, 51, 113, 255, 223, 853, 1173, 1019, 1587, 9629, 22373, 32731, 125179, 193271}}, +{15647, 18, 37753, {1, 1, 5, 11, 3, 55, 25, 145, 347, 451, 1447, 3399, 5873, 11579, 11107, 64707, 10161, 142003}}, +{15648, 18, 37772, {1, 1, 1, 7, 15, 49, 109, 93, 267, 919, 177, 2247, 8129, 8039, 15629, 63767, 98153, 143255}}, +{15649, 18, 37789, {1, 1, 5, 3, 3, 27, 47, 151, 231, 35, 155, 2745, 7349, 6543, 14117, 19549, 54927, 10819}}, +{15650, 18, 37817, {1, 3, 7, 15, 31, 29, 17, 203, 249, 169, 1071, 3069, 6269, 3455, 27177, 33761, 111003, 4527}}, +{15651, 18, 37826, {1, 3, 1, 5, 31, 15, 65, 189, 3, 917, 857, 1221, 3553, 2883, 3631, 32971, 68057, 109081}}, +{15652, 18, 37831, {1, 3, 1, 9, 3, 55, 127, 57, 125, 463, 199, 317, 3373, 967, 5569, 55997, 17167, 33585}}, +{15653, 18, 37845, {1, 3, 5, 1, 9, 57, 15, 89, 335, 119, 1445, 1931, 4177, 2495, 27507, 8209, 60003, 29657}}, +{15654, 18, 37855, {1, 3, 5, 7, 15, 43, 83, 117, 283, 131, 653, 57, 6789, 7633, 30525, 64131, 101981, 122017}}, +{15655, 18, 37859, {1, 3, 7, 11, 3, 17, 115, 217, 391, 825, 1633, 885, 7787, 5595, 12235, 30233, 53587, 62985}}, +{15656, 18, 37866, {1, 1, 5, 3, 5, 13, 99, 1, 75, 329, 1247, 107, 2337, 4201, 6217, 12273, 41585, 46563}}, +{15657, 18, 37880, {1, 3, 1, 15, 25, 53, 33, 125, 311, 955, 161, 3631, 581, 11915, 4223, 63207, 16517, 201665}}, +{15658, 18, 37885, {1, 1, 5, 1, 27, 23, 93, 211, 483, 691, 949, 1825, 391, 12111, 13639, 61009, 88503, 104823}}, +{15659, 18, 37897, {1, 3, 1, 13, 3, 9, 51, 133, 259, 977, 697, 661, 7661, 3987, 8327, 50155, 112235, 236135}}, +{15660, 18, 37906, {1, 1, 3, 13, 7, 39, 121, 37, 151, 973, 1275, 2699, 3345, 7167, 19245, 55535, 12305, 33567}}, +{15661, 18, 37948, {1, 1, 1, 1, 27, 5, 91, 63, 409, 579, 459, 2335, 4721, 3305, 11293, 15405, 74513, 157863}}, +{15662, 18, 37954, {1, 1, 5, 1, 21, 45, 55, 111, 475, 381, 659, 1131, 3575, 5165, 27221, 46757, 53587, 90741}}, +{15663, 18, 37978, {1, 1, 5, 15, 11, 31, 121, 209, 69, 389, 779, 2833, 4519, 1801, 4363, 24723, 105849, 54475}}, +{15664, 18, 37980, {1, 1, 3, 9, 7, 19, 11, 75, 275, 77, 1997, 1661, 6139, 13165, 30653, 49469, 67053, 3811}}, +{15665, 18, 37990, {1, 1, 3, 9, 5, 11, 5, 151, 395, 715, 1381, 3011, 5939, 1805, 8063, 62877, 99749, 112951}}, +{15666, 18, 38001, {1, 1, 5, 13, 19, 15, 113, 47, 455, 173, 1897, 701, 6093, 2089, 3977, 20599, 60947, 23671}}, +{15667, 18, 38020, {1, 1, 1, 13, 23, 19, 13, 117, 275, 313, 1683, 2975, 179, 3949, 4361, 60211, 91999, 211219}}, +{15668, 18, 38029, {1, 3, 5, 15, 13, 53, 83, 161, 491, 1001, 1773, 1227, 1965, 14479, 17677, 24399, 86431, 203303}}, +{15669, 18, 38047, {1, 1, 7, 15, 5, 51, 103, 131, 351, 747, 1227, 2859, 6693, 10615, 29485, 6619, 106239, 148739}}, +{15670, 18, 38063, {1, 3, 5, 1, 9, 43, 91, 173, 223, 393, 1181, 3785, 6589, 1299, 10217, 20891, 64125, 63409}}, +{15671, 18, 38077, {1, 1, 5, 7, 11, 23, 45, 57, 397, 771, 511, 1849, 343, 14139, 26271, 56241, 52581, 163187}}, +{15672, 18, 38110, {1, 3, 7, 5, 15, 59, 89, 151, 255, 247, 291, 219, 995, 10821, 1445, 35581, 88767, 16871}}, +{15673, 18, 38116, {1, 1, 7, 11, 7, 25, 3, 175, 253, 193, 1641, 1669, 7095, 11871, 10801, 42567, 120663, 109347}}, +{15674, 18, 38119, {1, 3, 5, 7, 31, 41, 119, 39, 149, 653, 153, 2783, 1377, 5223, 17915, 3127, 41869, 193477}}, +{15675, 18, 38176, {1, 3, 3, 13, 23, 19, 47, 85, 487, 103, 237, 2363, 4451, 5077, 23749, 17011, 73561, 169165}}, +{15676, 18, 38186, {1, 1, 3, 9, 21, 25, 77, 235, 53, 681, 1463, 2093, 1525, 12797, 5469, 54277, 15587, 68395}}, +{15677, 18, 38194, {1, 1, 1, 15, 23, 63, 63, 225, 239, 143, 1073, 199, 3231, 1371, 11215, 5999, 100705, 174681}}, +{15678, 18, 38218, {1, 1, 1, 3, 17, 25, 69, 179, 445, 695, 281, 379, 8115, 9443, 13221, 50669, 37369, 62151}}, +{15679, 18, 38241, {1, 3, 3, 9, 11, 29, 21, 89, 441, 353, 401, 1139, 5003, 8087, 24457, 50237, 110993, 117233}}, +{15680, 18, 38247, {1, 3, 3, 1, 13, 45, 31, 249, 295, 149, 591, 2071, 3611, 931, 16261, 8239, 82767, 195665}}, +{15681, 18, 38261, {1, 3, 3, 9, 19, 47, 69, 177, 493, 231, 431, 1359, 6867, 7641, 15661, 25285, 65477, 212643}}, +{15682, 18, 38268, {1, 3, 3, 13, 19, 63, 83, 153, 367, 407, 547, 661, 7743, 5473, 2993, 62937, 33811, 101313}}, +{15683, 18, 38277, {1, 3, 5, 3, 29, 17, 19, 203, 79, 279, 1333, 1851, 51, 9793, 12955, 17383, 73437, 121743}}, +{15684, 18, 38287, {1, 1, 1, 11, 11, 43, 31, 187, 463, 827, 1511, 225, 845, 8963, 1553, 61269, 122033, 245633}}, +{15685, 18, 38295, {1, 1, 3, 3, 31, 23, 9, 241, 377, 317, 655, 2197, 2461, 13239, 15649, 7879, 55085, 129855}}, +{15686, 18, 38299, {1, 3, 5, 7, 9, 37, 1, 191, 185, 145, 1567, 3423, 1127, 1991, 10741, 38407, 22915, 222845}}, +{15687, 18, 38301, {1, 1, 5, 3, 27, 31, 11, 227, 307, 973, 745, 1079, 7479, 10065, 31389, 19195, 114775, 246615}}, +{15688, 18, 38305, {1, 3, 1, 11, 29, 27, 11, 83, 205, 399, 1489, 739, 715, 7955, 16473, 21127, 62379, 260399}}, +{15689, 18, 38312, {1, 3, 3, 3, 25, 25, 123, 163, 399, 841, 963, 2089, 4949, 13085, 19831, 15345, 60377, 164235}}, +{15690, 18, 38315, {1, 1, 1, 9, 3, 21, 101, 105, 397, 23, 1505, 3201, 547, 295, 23247, 18823, 115243, 151073}}, +{15691, 18, 38317, {1, 3, 7, 1, 31, 27, 111, 23, 205, 709, 1625, 3921, 6225, 11039, 29549, 51239, 119003, 133663}}, +{15692, 18, 38343, {1, 3, 3, 11, 21, 49, 111, 195, 25, 833, 1991, 563, 7031, 15429, 5707, 12351, 32221, 16599}}, +{15693, 18, 38344, {1, 1, 5, 7, 5, 7, 39, 171, 39, 921, 385, 2343, 625, 15355, 4923, 36597, 56901, 148377}}, +{15694, 18, 38350, {1, 1, 3, 15, 7, 43, 89, 217, 67, 271, 853, 147, 6767, 3183, 341, 40769, 116767, 22351}}, +{15695, 18, 38358, {1, 3, 5, 7, 7, 3, 105, 27, 183, 59, 953, 4027, 1277, 10323, 29437, 56085, 32677, 198067}}, +{15696, 18, 38364, {1, 1, 1, 15, 23, 29, 51, 209, 13, 177, 1103, 1723, 2877, 9199, 25601, 15537, 8599, 230819}}, +{15697, 18, 38371, {1, 1, 7, 1, 29, 39, 41, 217, 467, 423, 431, 2707, 2017, 11865, 11989, 12045, 71349, 6311}}, +{15698, 18, 38373, {1, 1, 1, 13, 15, 25, 3, 55, 403, 833, 1843, 1159, 1703, 2221, 15379, 65027, 18327, 108881}}, +{15699, 18, 38377, {1, 3, 7, 13, 3, 27, 13, 227, 215, 873, 1073, 1117, 7941, 13607, 7571, 6957, 44991, 239761}}, +{15700, 18, 38392, {1, 3, 7, 11, 23, 1, 95, 235, 283, 977, 1443, 161, 5937, 4351, 30835, 35569, 57509, 1835}}, +{15701, 18, 38407, {1, 3, 3, 13, 11, 1, 85, 75, 261, 543, 9, 899, 5821, 5465, 9771, 53707, 101003, 219215}}, +{15702, 18, 38408, {1, 3, 1, 7, 21, 49, 35, 19, 35, 759, 1467, 1423, 6355, 8415, 563, 24157, 121029, 87309}}, +{15703, 18, 38421, {1, 1, 7, 1, 9, 13, 65, 85, 209, 583, 387, 1743, 2665, 12021, 7525, 27665, 45885, 135039}}, +{15704, 18, 38438, {1, 1, 7, 11, 29, 41, 91, 17, 291, 211, 1801, 493, 899, 14491, 1741, 28971, 35205, 131417}}, +{15705, 18, 38442, {1, 1, 5, 13, 23, 55, 119, 165, 61, 653, 1375, 3575, 5081, 7767, 19963, 61583, 107149, 240639}}, +{15706, 18, 38464, {1, 3, 5, 15, 25, 3, 51, 27, 127, 259, 55, 2221, 3951, 6243, 15825, 42881, 37009, 254401}}, +{15707, 18, 38473, {1, 3, 5, 11, 25, 63, 13, 105, 111, 677, 1545, 2399, 4419, 10853, 7213, 17183, 103411, 67459}}, +{15708, 18, 38484, {1, 1, 1, 11, 11, 31, 73, 125, 155, 545, 1857, 2749, 6389, 4083, 16239, 23651, 68881, 43455}}, +{15709, 18, 38491, {1, 3, 7, 7, 21, 3, 117, 237, 431, 17, 687, 2613, 7483, 3253, 30511, 53833, 33077, 157055}}, +{15710, 18, 38510, {1, 1, 1, 1, 1, 57, 65, 97, 415, 477, 1003, 1415, 1493, 12993, 30965, 24809, 1467, 213021}}, +{15711, 18, 38518, {1, 1, 3, 7, 25, 33, 45, 25, 511, 733, 1077, 2483, 5899, 14295, 11631, 50609, 128989, 45177}}, +{15712, 18, 38531, {1, 1, 3, 3, 25, 17, 115, 31, 115, 191, 293, 3991, 3039, 6751, 16217, 16517, 21121, 193641}}, +{15713, 18, 38537, {1, 3, 3, 13, 25, 23, 7, 51, 363, 641, 333, 2533, 605, 1105, 12941, 4195, 129571, 13253}}, +{15714, 18, 38538, {1, 3, 1, 11, 17, 21, 7, 205, 293, 159, 9, 441, 3287, 10247, 2115, 54099, 128109, 8137}}, +{15715, 18, 38567, {1, 1, 7, 5, 21, 17, 43, 87, 117, 737, 149, 3175, 343, 8509, 12147, 22041, 80037, 23277}}, +{15716, 18, 38594, {1, 3, 3, 1, 3, 7, 101, 245, 11, 1003, 175, 2323, 7807, 15611, 5161, 10277, 37009, 83231}}, +{15717, 18, 38647, {1, 3, 1, 5, 13, 17, 113, 75, 315, 237, 77, 587, 5409, 2053, 22551, 15205, 82545, 18531}}, +{15718, 18, 38651, {1, 3, 5, 11, 9, 57, 61, 117, 281, 111, 369, 2411, 1691, 3391, 5379, 8237, 87329, 4253}}, +{15719, 18, 38654, {1, 3, 3, 3, 19, 25, 101, 1, 495, 25, 1317, 2333, 6183, 12215, 27879, 56403, 37169, 71635}}, +{15720, 18, 38686, {1, 1, 3, 5, 17, 63, 49, 127, 171, 405, 1763, 3697, 405, 2233, 4137, 28787, 108319, 53133}}, +{15721, 18, 38702, {1, 1, 5, 7, 23, 43, 87, 189, 97, 239, 1459, 2115, 7517, 7799, 28957, 37105, 71835, 199195}}, +{15722, 18, 38751, {1, 3, 1, 3, 25, 25, 23, 61, 369, 717, 1711, 1103, 7535, 9871, 25, 26849, 55955, 113389}}, +{15723, 18, 38821, {1, 1, 1, 11, 25, 57, 33, 175, 127, 541, 1031, 2847, 2069, 4033, 25593, 10615, 50097, 122955}}, +{15724, 18, 38825, {1, 3, 3, 13, 11, 27, 97, 171, 245, 33, 213, 4069, 753, 3535, 11727, 34941, 100543, 220789}}, +{15725, 18, 38853, {1, 3, 3, 9, 3, 17, 13, 237, 477, 507, 1751, 3191, 3385, 13977, 23355, 57355, 64341, 37683}}, +{15726, 18, 38863, {1, 1, 7, 13, 13, 43, 7, 153, 209, 7, 63, 585, 1715, 13313, 25355, 46759, 71893, 29755}}, +{15727, 18, 38882, {1, 3, 3, 3, 11, 23, 11, 147, 135, 1011, 1105, 3931, 3861, 13589, 32183, 30727, 37685, 67123}}, +{15728, 18, 38884, {1, 3, 7, 1, 11, 13, 25, 229, 147, 843, 329, 3337, 7559, 13193, 3011, 31549, 102461, 46195}}, +{15729, 18, 38932, {1, 1, 5, 11, 5, 47, 127, 89, 53, 663, 261, 541, 7743, 13037, 9013, 23079, 81225, 239875}}, +{15730, 18, 38941, {1, 1, 7, 3, 5, 39, 15, 177, 357, 357, 1959, 1721, 6703, 11829, 1195, 42113, 88699, 244347}}, +{15731, 18, 38952, {1, 1, 5, 15, 25, 19, 7, 3, 225, 773, 1535, 99, 6555, 4105, 19137, 56155, 109141, 161015}}, +{15732, 18, 38960, {1, 1, 5, 15, 5, 59, 41, 53, 203, 459, 1063, 3015, 5397, 1559, 20835, 57773, 67687, 206189}}, +{15733, 18, 38980, {1, 3, 1, 11, 17, 25, 61, 221, 37, 809, 1461, 1961, 7697, 1777, 23179, 54761, 7787, 177737}}, +{15734, 18, 38995, {1, 3, 7, 15, 27, 21, 49, 107, 353, 677, 461, 239, 5871, 1059, 3011, 32397, 13149, 103973}}, +{15735, 18, 39004, {1, 1, 5, 3, 11, 53, 61, 239, 479, 913, 479, 3435, 4979, 7931, 16841, 60077, 26667, 212601}}, +{15736, 18, 39013, {1, 1, 3, 5, 3, 19, 43, 143, 353, 507, 871, 2547, 7321, 6163, 9425, 62911, 86153, 239011}}, +{15737, 18, 39017, {1, 1, 1, 3, 15, 7, 115, 43, 69, 299, 1235, 1511, 3111, 7465, 769, 46981, 127707, 195839}}, +{15738, 18, 39026, {1, 1, 1, 5, 23, 27, 19, 21, 273, 291, 953, 3577, 3147, 3863, 18625, 53505, 33699, 123305}}, +{15739, 18, 39056, {1, 3, 5, 9, 3, 11, 89, 27, 447, 119, 493, 2605, 8175, 8837, 27555, 2319, 99101, 79121}}, +{15740, 18, 39121, {1, 1, 7, 11, 1, 11, 77, 129, 97, 261, 1241, 3117, 1627, 5397, 6495, 52339, 52711, 206237}}, +{15741, 18, 39124, {1, 3, 7, 9, 27, 57, 77, 147, 35, 845, 1417, 1615, 6097, 12559, 10765, 19027, 91693, 204339}}, +{15742, 18, 39133, {1, 1, 3, 5, 25, 47, 17, 145, 7, 969, 1981, 733, 4303, 7785, 4241, 39733, 82569, 78061}}, +{15743, 18, 39157, {1, 1, 5, 1, 5, 47, 45, 111, 405, 943, 1911, 1613, 3817, 10483, 17729, 7201, 88033, 261701}}, +{15744, 18, 39181, {1, 3, 3, 13, 9, 3, 87, 39, 277, 769, 57, 2503, 7803, 11041, 20945, 19623, 32617, 110027}}, +{15745, 18, 39187, {1, 1, 3, 3, 27, 57, 1, 103, 427, 935, 1617, 665, 837, 8001, 13543, 44771, 64033, 65239}}, +{15746, 18, 39212, {1, 1, 5, 3, 13, 21, 31, 59, 225, 945, 1825, 1511, 3273, 3171, 30347, 21993, 40203, 143297}}, +{15747, 18, 39223, {1, 3, 5, 7, 11, 3, 3, 217, 167, 885, 975, 3249, 7909, 13621, 18697, 61021, 31497, 198033}}, +{15748, 18, 39250, {1, 3, 5, 9, 11, 5, 87, 33, 117, 471, 267, 529, 5879, 13969, 5731, 52613, 106411, 74341}}, +{15749, 18, 39265, {1, 1, 7, 11, 5, 31, 25, 55, 135, 779, 717, 1953, 7929, 11011, 6133, 14099, 106975, 178337}}, +{15750, 18, 39320, {1, 3, 1, 1, 29, 17, 125, 7, 445, 299, 1897, 3235, 8189, 14339, 14725, 63185, 126751, 88747}}, +{15751, 18, 39330, {1, 1, 5, 3, 1, 11, 65, 161, 243, 605, 1945, 3141, 6443, 9703, 13331, 2239, 6315, 247595}}, +{15752, 18, 39335, {1, 3, 1, 7, 15, 23, 83, 215, 331, 631, 453, 879, 4109, 4897, 16535, 55749, 90799, 147287}}, +{15753, 18, 39353, {1, 3, 5, 13, 25, 1, 109, 205, 49, 471, 1735, 973, 1279, 9917, 18225, 44921, 98519, 211541}}, +{15754, 18, 39371, {1, 1, 5, 11, 29, 41, 113, 187, 75, 479, 1633, 841, 6259, 8919, 27751, 25179, 115369, 166567}}, +{15755, 18, 39385, {1, 3, 5, 11, 17, 31, 107, 41, 435, 647, 811, 2937, 5819, 3483, 3835, 57033, 53543, 61973}}, +{15756, 18, 39421, {1, 3, 3, 11, 15, 45, 33, 103, 505, 67, 463, 1275, 2449, 15261, 22867, 25215, 38793, 189309}}, +{15757, 18, 39432, {1, 1, 1, 5, 19, 45, 35, 173, 365, 39, 1599, 3623, 2231, 12141, 19437, 27053, 15869, 104719}}, +{15758, 18, 39443, {1, 3, 7, 7, 9, 17, 87, 151, 249, 81, 1109, 1951, 7475, 1699, 17847, 64149, 50285, 242793}}, +{15759, 18, 39450, {1, 3, 5, 13, 15, 51, 35, 105, 479, 763, 1945, 2349, 2987, 621, 283, 20411, 65799, 86517}}, +{15760, 18, 39455, {1, 3, 3, 1, 19, 31, 49, 229, 249, 689, 737, 4027, 5405, 15211, 26785, 39143, 93163, 190421}}, +{15761, 18, 39468, {1, 3, 7, 5, 1, 21, 63, 97, 347, 73, 745, 3455, 2347, 3821, 31385, 6545, 91803, 72895}}, +{15762, 18, 39473, {1, 1, 1, 15, 23, 11, 107, 47, 183, 235, 1985, 3277, 933, 8491, 14423, 24293, 6783, 162199}}, +{15763, 18, 39488, {1, 3, 3, 9, 17, 3, 123, 59, 277, 773, 1617, 2979, 1555, 9753, 10947, 24745, 89043, 45185}}, +{15764, 18, 39497, {1, 3, 7, 3, 25, 17, 79, 43, 311, 415, 1045, 1289, 7451, 11413, 11319, 37177, 101327, 147453}}, +{15765, 18, 39521, {1, 3, 7, 7, 17, 45, 49, 33, 313, 613, 1773, 773, 161, 13579, 1207, 5681, 120597, 178639}}, +{15766, 18, 39531, {1, 3, 5, 5, 17, 43, 65, 243, 287, 223, 253, 687, 887, 14887, 1077, 53337, 62381, 43531}}, +{15767, 18, 39542, {1, 3, 5, 1, 21, 3, 39, 149, 497, 939, 1537, 437, 5345, 10321, 25151, 48785, 49879, 90945}}, +{15768, 18, 39585, {1, 1, 7, 11, 1, 61, 113, 63, 285, 615, 343, 2897, 1939, 7911, 16387, 10781, 92769, 27995}}, +{15769, 18, 39605, {1, 1, 3, 3, 19, 29, 85, 227, 355, 857, 883, 1853, 5065, 13795, 5749, 59107, 57947, 35775}}, +{15770, 18, 39658, {1, 3, 5, 9, 23, 37, 119, 161, 23, 511, 81, 973, 4769, 10821, 32607, 61731, 64907, 99055}}, +{15771, 18, 39677, {1, 3, 1, 3, 11, 17, 109, 241, 349, 887, 1651, 3865, 2045, 15893, 4597, 11557, 53313, 48489}}, +{15772, 18, 39703, {1, 1, 5, 9, 31, 43, 49, 193, 171, 477, 363, 735, 1379, 8977, 9759, 56477, 99495, 170433}}, +{15773, 18, 39726, {1, 1, 3, 7, 25, 25, 77, 31, 21, 1001, 1527, 1725, 6479, 8927, 11249, 63969, 86291, 74391}}, +{15774, 18, 39731, {1, 3, 5, 13, 1, 43, 27, 7, 507, 569, 251, 2199, 3895, 7845, 13641, 1655, 112949, 119493}}, +{15775, 18, 39745, {1, 3, 7, 15, 7, 1, 123, 27, 121, 261, 201, 1469, 4229, 2933, 25157, 1919, 127937, 21607}}, +{15776, 18, 39776, {1, 1, 3, 9, 29, 59, 47, 81, 293, 191, 401, 849, 4355, 1643, 23533, 8469, 389, 97891}}, +{15777, 18, 39796, {1, 3, 5, 5, 9, 55, 37, 175, 203, 179, 901, 3473, 1489, 1009, 24623, 54895, 8711, 190271}}, +{15778, 18, 39809, {1, 1, 7, 1, 13, 39, 49, 105, 385, 189, 1079, 2799, 5901, 2511, 23199, 58925, 111727, 131193}}, +{15779, 18, 39833, {1, 1, 1, 7, 31, 63, 37, 181, 493, 745, 1131, 223, 8055, 9507, 26667, 22163, 26495, 200945}}, +{15780, 18, 39850, {1, 3, 7, 1, 25, 15, 127, 71, 445, 935, 1439, 1167, 3751, 799, 27253, 46209, 33413, 38553}}, +{15781, 18, 39869, {1, 3, 3, 11, 29, 35, 125, 77, 129, 851, 731, 3259, 4651, 4137, 20921, 19779, 119261, 141507}}, +{15782, 18, 39882, {1, 3, 1, 9, 11, 13, 31, 211, 87, 377, 547, 113, 1071, 7167, 28377, 52943, 50669, 156915}}, +{15783, 18, 39906, {1, 1, 3, 7, 29, 55, 89, 215, 425, 513, 175, 1145, 6995, 1929, 14253, 20563, 118543, 104403}}, +{15784, 18, 39918, {1, 1, 1, 5, 23, 25, 1, 23, 175, 571, 1597, 3801, 1411, 1783, 13045, 37499, 86831, 139101}}, +{15785, 18, 39929, {1, 3, 3, 13, 15, 19, 35, 139, 483, 17, 1555, 3431, 3417, 13695, 15985, 65243, 96659, 76027}}, +{15786, 18, 39947, {1, 3, 7, 9, 23, 7, 17, 89, 33, 353, 1999, 2561, 331, 15661, 25757, 63389, 112913, 131757}}, +{15787, 18, 39985, {1, 3, 1, 11, 27, 59, 37, 75, 121, 429, 1833, 3243, 2029, 2601, 5013, 29433, 123565, 234803}}, +{15788, 18, 39986, {1, 3, 1, 7, 31, 13, 33, 25, 459, 803, 267, 1573, 5579, 4575, 8125, 7491, 72681, 239409}}, +{15789, 18, 40023, {1, 1, 3, 7, 31, 43, 93, 191, 237, 75, 1809, 3257, 4131, 1983, 29153, 23205, 38393, 197859}}, +{15790, 18, 40024, {1, 3, 5, 5, 17, 47, 17, 153, 499, 529, 1515, 1587, 2951, 12431, 12787, 13245, 54117, 82663}}, +{15791, 18, 40039, {1, 1, 1, 13, 7, 23, 23, 7, 441, 991, 641, 2713, 151, 1863, 6065, 47381, 60493, 136325}}, +{15792, 18, 40053, {1, 3, 3, 11, 11, 15, 31, 137, 285, 439, 835, 3033, 6083, 7883, 3405, 35803, 65059, 150143}}, +{15793, 18, 40079, {1, 1, 7, 3, 19, 47, 61, 163, 313, 813, 1315, 2995, 2805, 14397, 6589, 62123, 46229, 206697}}, +{15794, 18, 40084, {1, 3, 5, 5, 27, 51, 25, 99, 241, 571, 1411, 1191, 7095, 8639, 29195, 53733, 53219, 42851}}, +{15795, 18, 40087, {1, 3, 1, 5, 11, 29, 1, 49, 61, 149, 1931, 29, 7163, 3717, 525, 42375, 71451, 8345}}, +{15796, 18, 40094, {1, 3, 3, 3, 13, 19, 97, 249, 265, 509, 1347, 3081, 6535, 7941, 31565, 59897, 91909, 171789}}, +{15797, 18, 40100, {1, 3, 3, 1, 25, 17, 75, 169, 251, 607, 73, 549, 1397, 10661, 1743, 9615, 41327, 243207}}, +{15798, 18, 40112, {1, 3, 1, 11, 7, 7, 15, 181, 385, 883, 651, 2939, 5457, 15309, 9807, 22221, 72893, 146331}}, +{15799, 18, 40129, {1, 3, 3, 5, 7, 7, 53, 75, 139, 459, 1861, 917, 4101, 10379, 18555, 12633, 70023, 254761}}, +{15800, 18, 40132, {1, 3, 3, 1, 17, 51, 5, 109, 471, 3, 1555, 3731, 6711, 9791, 63, 61931, 75269, 138697}}, +{15801, 18, 40142, {1, 1, 7, 15, 11, 1, 53, 141, 423, 567, 1937, 849, 5657, 7437, 32657, 16253, 115219, 106027}}, +{15802, 18, 40154, {1, 3, 5, 1, 17, 29, 65, 213, 443, 541, 697, 3859, 1463, 16081, 23299, 7645, 19475, 77857}}, +{15803, 18, 40177, {1, 1, 7, 3, 21, 43, 99, 101, 329, 755, 1123, 1277, 1381, 7017, 21763, 28243, 109995, 178377}}, +{15804, 18, 40178, {1, 3, 5, 7, 9, 31, 103, 123, 43, 895, 1925, 3383, 3539, 13669, 873, 57361, 45281, 256517}}, +{15805, 18, 40202, {1, 1, 1, 13, 1, 37, 115, 55, 415, 703, 1217, 939, 1145, 4015, 7233, 44799, 79711, 164725}}, +{15806, 18, 40219, {1, 1, 7, 1, 29, 17, 101, 15, 205, 281, 1059, 301, 753, 11953, 10533, 31881, 67741, 12683}}, +{15807, 18, 40303, {1, 1, 7, 13, 9, 23, 31, 237, 181, 813, 1765, 2237, 4897, 9955, 2139, 13113, 123423, 227629}}, +{15808, 18, 40305, {1, 1, 7, 15, 27, 57, 37, 75, 405, 185, 1671, 2245, 7151, 10531, 13161, 15695, 107547, 47689}}, +{15809, 18, 40311, {1, 1, 5, 15, 17, 53, 75, 251, 277, 1001, 179, 589, 1401, 4937, 11601, 47113, 36677, 39263}}, +{15810, 18, 40336, {1, 3, 5, 15, 23, 47, 53, 81, 115, 547, 1363, 2457, 4407, 10861, 25649, 64013, 44747, 97949}}, +{15811, 18, 40342, {1, 1, 3, 1, 25, 29, 121, 43, 205, 591, 211, 1899, 5835, 739, 19627, 60387, 127369, 11255}}, +{15812, 18, 40358, {1, 1, 3, 15, 31, 11, 93, 227, 501, 731, 1355, 3963, 347, 83, 12595, 56431, 80049, 42103}}, +{15813, 18, 40381, {1, 3, 1, 11, 13, 17, 51, 165, 311, 67, 1873, 1493, 3815, 13209, 11637, 5809, 94219, 118077}}, +{15814, 18, 40417, {1, 1, 7, 15, 19, 17, 13, 73, 365, 413, 1215, 2265, 2173, 8725, 4725, 1373, 76733, 95379}}, +{15815, 18, 40438, {1, 3, 1, 7, 7, 61, 13, 145, 205, 113, 1579, 3851, 7515, 10659, 28665, 5277, 65925, 10141}}, +{15816, 18, 40463, {1, 3, 7, 1, 9, 63, 11, 83, 197, 797, 1065, 1521, 1751, 7423, 7473, 4371, 29533, 225167}}, +{15817, 18, 40471, {1, 3, 7, 7, 3, 63, 71, 177, 53, 279, 1837, 2609, 7819, 7285, 11059, 65247, 102869, 24429}}, +{15818, 18, 40472, {1, 3, 3, 13, 9, 21, 123, 125, 367, 85, 85, 1009, 1009, 7779, 3375, 30999, 5035, 215107}}, +{15819, 18, 40488, {1, 3, 3, 9, 31, 53, 5, 43, 483, 483, 1359, 2605, 377, 4243, 13291, 50211, 118603, 259865}}, +{15820, 18, 40491, {1, 1, 1, 5, 19, 37, 109, 139, 373, 79, 1951, 3379, 5679, 6445, 29127, 56229, 97369, 232561}}, +{15821, 18, 40525, {1, 1, 3, 5, 19, 37, 61, 225, 321, 573, 1831, 971, 6507, 10005, 6837, 16433, 70913, 170873}}, +{15822, 18, 40526, {1, 1, 5, 11, 31, 17, 21, 29, 329, 679, 869, 389, 5121, 1819, 3539, 43793, 31617, 204983}}, +{15823, 18, 40550, {1, 1, 7, 7, 21, 11, 83, 97, 297, 275, 1559, 1899, 4957, 11463, 25647, 21095, 70121, 113395}}, +{15824, 18, 40553, {1, 3, 5, 11, 19, 57, 39, 37, 441, 715, 383, 4083, 1937, 12263, 6989, 36159, 118135, 238475}}, +{15825, 18, 40562, {1, 1, 1, 3, 9, 53, 85, 201, 357, 807, 865, 1621, 1993, 7623, 3165, 1005, 93343, 227765}}, +{15826, 18, 40568, {1, 1, 7, 7, 21, 29, 123, 175, 319, 621, 303, 117, 5589, 12511, 26053, 41603, 78439, 71819}}, +{15827, 18, 40580, {1, 1, 7, 15, 31, 47, 75, 225, 295, 67, 1349, 1749, 1363, 8763, 9153, 4059, 72015, 3155}}, +{15828, 18, 40608, {1, 3, 5, 13, 19, 23, 79, 25, 319, 475, 1517, 2757, 4009, 12663, 535, 51617, 55695, 64399}}, +{15829, 18, 40613, {1, 3, 7, 13, 19, 39, 61, 235, 369, 951, 111, 2169, 353, 15371, 8611, 42477, 130981, 97419}}, +{15830, 18, 40652, {1, 1, 3, 13, 27, 31, 115, 201, 3, 291, 793, 237, 3593, 2307, 12745, 54603, 96451, 80853}}, +{15831, 18, 40703, {1, 3, 3, 11, 11, 35, 43, 1, 35, 415, 1307, 2303, 5407, 6883, 29023, 31271, 119721, 90599}}, +{15832, 18, 40712, {1, 1, 5, 9, 21, 23, 3, 1, 333, 463, 1277, 1165, 6521, 4887, 16029, 32537, 43681, 21633}}, +{15833, 18, 40720, {1, 1, 1, 13, 1, 35, 45, 57, 293, 435, 1113, 2477, 6641, 14083, 28489, 26189, 44695, 220481}}, +{15834, 18, 40723, {1, 3, 5, 5, 5, 31, 75, 149, 309, 921, 941, 1063, 7041, 12651, 29533, 46955, 88133, 89989}}, +{15835, 18, 40746, {1, 1, 3, 5, 15, 23, 127, 143, 193, 739, 281, 991, 3731, 16243, 25483, 24979, 102317, 186657}}, +{15836, 18, 40759, {1, 1, 3, 13, 3, 63, 23, 69, 181, 163, 1733, 893, 5513, 1525, 31483, 15033, 108021, 167875}}, +{15837, 18, 40765, {1, 1, 5, 15, 15, 51, 79, 59, 55, 243, 565, 159, 7925, 8393, 20059, 35011, 53779, 166241}}, +{15838, 18, 40771, {1, 1, 3, 5, 11, 57, 85, 175, 495, 999, 1577, 2377, 715, 2473, 16979, 5949, 87691, 195607}}, +{15839, 18, 40778, {1, 1, 1, 13, 17, 21, 53, 73, 187, 63, 335, 3251, 4439, 5701, 13469, 23567, 70125, 68931}}, +{15840, 18, 40788, {1, 1, 1, 13, 23, 11, 55, 75, 37, 845, 745, 2193, 7113, 5657, 29449, 41153, 115547, 87261}}, +{15841, 18, 40804, {1, 3, 3, 9, 21, 39, 47, 145, 301, 883, 625, 2479, 1089, 3393, 23265, 49577, 81027, 186485}}, +{15842, 18, 40835, {1, 1, 3, 7, 3, 11, 37, 117, 79, 905, 493, 265, 1819, 12179, 12361, 27457, 14459, 231837}}, +{15843, 18, 40841, {1, 3, 5, 11, 19, 45, 99, 5, 455, 497, 1851, 2349, 5213, 3671, 5871, 43187, 59011, 211167}}, +{15844, 18, 40907, {1, 3, 7, 5, 23, 61, 63, 97, 413, 575, 1073, 2587, 573, 1805, 32307, 58463, 84927, 15065}}, +{15845, 18, 40934, {1, 3, 1, 13, 23, 9, 39, 1, 53, 383, 1277, 3599, 7719, 16175, 4443, 53143, 24345, 111899}}, +{15846, 18, 40955, {1, 1, 7, 1, 19, 37, 103, 245, 253, 5, 1367, 3127, 4689, 5089, 30697, 45513, 111291, 26599}}, +{15847, 18, 40986, {1, 3, 3, 7, 31, 31, 107, 163, 1, 855, 163, 875, 7481, 5325, 30107, 19377, 3167, 5613}}, +{15848, 18, 41007, {1, 1, 5, 13, 21, 17, 115, 203, 233, 333, 441, 3185, 3197, 3397, 8515, 61879, 11163, 233277}}, +{15849, 18, 41016, {1, 3, 5, 3, 17, 53, 93, 233, 465, 573, 1075, 1905, 1141, 4965, 13469, 24901, 23653, 225233}}, +{15850, 18, 41034, {1, 3, 7, 11, 11, 1, 95, 47, 85, 65, 9, 2413, 7347, 2127, 305, 4673, 79281, 188081}}, +{15851, 18, 41041, {1, 1, 7, 5, 9, 5, 27, 23, 393, 201, 467, 3677, 2641, 4671, 24627, 18927, 45137, 74167}}, +{15852, 18, 41063, {1, 3, 5, 11, 11, 9, 19, 247, 423, 693, 1885, 1129, 7459, 8411, 2573, 54111, 98919, 160075}}, +{15853, 18, 41084, {1, 3, 3, 3, 1, 3, 67, 131, 317, 915, 151, 3609, 4083, 6395, 12877, 44017, 28877, 244165}}, +{15854, 18, 41093, {1, 3, 1, 3, 1, 33, 29, 23, 19, 323, 873, 115, 2439, 4699, 5449, 51637, 68889, 105197}}, +{15855, 18, 41097, {1, 1, 7, 1, 19, 55, 37, 241, 53, 695, 729, 1565, 19, 12875, 26993, 18511, 35615, 169281}}, +{15856, 18, 41111, {1, 3, 3, 1, 1, 7, 121, 49, 345, 883, 1001, 657, 2647, 15387, 30633, 18107, 13745, 217735}}, +{15857, 18, 41118, {1, 3, 5, 15, 11, 45, 73, 77, 307, 373, 1723, 335, 473, 5735, 11747, 39257, 87199, 47663}}, +{15858, 18, 41121, {1, 1, 7, 7, 27, 21, 121, 169, 427, 605, 1593, 3147, 1001, 3773, 31505, 22823, 21543, 82931}}, +{15859, 18, 41141, {1, 1, 1, 9, 11, 59, 91, 165, 249, 859, 483, 3133, 5729, 12675, 7761, 6475, 116823, 224187}}, +{15860, 18, 41160, {1, 1, 3, 3, 27, 31, 51, 1, 429, 517, 1439, 3959, 2343, 6709, 5287, 24039, 52409, 20749}}, +{15861, 18, 41207, {1, 3, 7, 7, 11, 31, 83, 111, 391, 729, 721, 1675, 5679, 14637, 22065, 49903, 113759, 40881}}, +{15862, 18, 41214, {1, 3, 7, 1, 25, 15, 91, 59, 87, 313, 155, 1439, 2419, 2099, 22709, 10289, 40655, 17351}}, +{15863, 18, 41255, {1, 3, 5, 1, 15, 5, 11, 21, 261, 227, 1563, 1177, 4731, 3487, 1607, 46599, 105599, 193425}}, +{15864, 18, 41284, {1, 1, 5, 5, 5, 45, 77, 181, 431, 27, 1985, 881, 2555, 7589, 16199, 31041, 66683, 52499}}, +{15865, 18, 41287, {1, 1, 1, 15, 5, 29, 111, 209, 335, 747, 93, 3551, 5951, 14995, 18451, 33329, 9117, 167455}}, +{15866, 18, 41308, {1, 3, 1, 7, 25, 9, 113, 123, 387, 87, 267, 2251, 3509, 10829, 32733, 48025, 58267, 143553}}, +{15867, 18, 41330, {1, 3, 5, 15, 17, 17, 65, 107, 175, 427, 733, 797, 3837, 12773, 27865, 29481, 4557, 196163}}, +{15868, 18, 41336, {1, 3, 1, 3, 1, 53, 93, 175, 509, 351, 1093, 1039, 6931, 2691, 14957, 44395, 84383, 58915}}, +{15869, 18, 41437, {1, 1, 1, 11, 1, 43, 61, 123, 377, 813, 1335, 1597, 147, 13663, 30781, 47635, 24111, 64307}}, +{15870, 18, 41444, {1, 1, 3, 11, 25, 27, 15, 215, 125, 679, 1491, 3203, 5403, 4531, 11839, 44227, 49239, 110439}}, +{15871, 18, 41456, {1, 1, 3, 13, 9, 35, 71, 127, 127, 629, 1363, 585, 6713, 10637, 6803, 20963, 47157, 157781}}, +{15872, 18, 41481, {1, 1, 3, 11, 13, 21, 117, 241, 365, 175, 1397, 1279, 4117, 5427, 24007, 50711, 465, 225003}}, +{15873, 18, 41489, {1, 1, 1, 9, 13, 63, 49, 189, 113, 61, 353, 2221, 7541, 4075, 5283, 5505, 51035, 35191}}, +{15874, 18, 41499, {1, 1, 7, 9, 11, 37, 123, 63, 331, 691, 1299, 1661, 3769, 7827, 32127, 32149, 7271, 150363}}, +{15875, 18, 41555, {1, 1, 1, 5, 25, 5, 127, 195, 413, 657, 479, 879, 6743, 8959, 791, 22425, 77119, 180721}}, +{15876, 18, 41561, {1, 1, 7, 3, 13, 57, 123, 125, 135, 69, 455, 3363, 1783, 1557, 20401, 26707, 130345, 195881}}, +{15877, 18, 41562, {1, 3, 3, 7, 27, 19, 125, 71, 201, 1017, 1285, 3955, 5255, 14375, 18163, 28537, 76157, 247193}}, +{15878, 18, 41571, {1, 1, 3, 1, 27, 33, 123, 137, 189, 655, 1891, 2419, 5195, 97, 32565, 38581, 62715, 164697}}, +{15879, 18, 41592, {1, 1, 1, 15, 9, 47, 23, 147, 197, 503, 1803, 2953, 2961, 13787, 10545, 35465, 53997, 198655}}, +{15880, 18, 41631, {1, 3, 1, 9, 9, 43, 65, 237, 119, 621, 1517, 3479, 4165, 12797, 14731, 53131, 105501, 112845}}, +{15881, 18, 41661, {1, 3, 3, 15, 3, 23, 47, 163, 469, 363, 1813, 3107, 6167, 8987, 26829, 33099, 6821, 203017}}, +{15882, 18, 41682, {1, 1, 1, 9, 1, 11, 85, 11, 251, 907, 395, 3935, 3403, 229, 16825, 48337, 103647, 91425}}, +{15883, 18, 41710, {1, 3, 1, 5, 17, 57, 21, 181, 31, 27, 235, 4041, 4927, 8319, 29765, 61603, 19081, 75879}}, +{15884, 18, 41724, {1, 1, 5, 15, 11, 3, 7, 225, 247, 221, 251, 1979, 1151, 10829, 26491, 39705, 41587, 99063}}, +{15885, 18, 41727, {1, 3, 5, 5, 19, 23, 57, 127, 467, 409, 43, 829, 3883, 10767, 24351, 31365, 115943, 209231}}, +{15886, 18, 41730, {1, 1, 7, 15, 3, 51, 17, 251, 219, 33, 1511, 2027, 4995, 12277, 7639, 59895, 85267, 87735}}, +{15887, 18, 41744, {1, 3, 7, 3, 7, 29, 93, 57, 427, 235, 1591, 3475, 1159, 2387, 851, 43307, 87081, 151543}}, +{15888, 18, 41769, {1, 3, 7, 7, 1, 9, 21, 167, 73, 439, 2035, 2091, 4563, 4819, 5591, 57123, 78739, 63235}}, +{15889, 18, 41795, {1, 1, 3, 13, 19, 35, 63, 17, 425, 277, 1669, 931, 597, 5621, 22367, 1155, 109099, 169965}}, +{15890, 18, 41798, {1, 3, 7, 5, 11, 11, 41, 71, 35, 183, 555, 2631, 5199, 16381, 16319, 1851, 121551, 141711}}, +{15891, 18, 41804, {1, 3, 5, 5, 21, 17, 3, 95, 47, 1011, 1757, 3295, 1111, 16043, 6377, 16257, 37941, 206637}}, +{15892, 18, 41826, {1, 3, 1, 5, 25, 19, 19, 69, 395, 589, 1311, 1075, 5763, 12475, 3633, 40647, 54487, 97459}}, +{15893, 18, 41852, {1, 3, 5, 7, 13, 23, 83, 91, 419, 415, 685, 1685, 2893, 12953, 30641, 43565, 11851, 187837}}, +{15894, 18, 41868, {1, 1, 5, 11, 27, 1, 61, 155, 279, 737, 215, 2909, 969, 57, 17979, 34537, 41861, 243717}}, +{15895, 18, 41910, {1, 1, 5, 1, 17, 61, 57, 199, 127, 569, 1109, 3057, 7301, 16097, 17579, 25753, 82653, 237273}}, +{15896, 18, 41914, {1, 1, 7, 15, 17, 45, 19, 53, 153, 785, 51, 291, 5261, 1317, 21163, 44393, 108131, 254373}}, +{15897, 18, 41942, {1, 1, 3, 11, 5, 19, 61, 125, 127, 961, 2019, 1725, 855, 677, 20853, 38845, 3239, 95697}}, +{15898, 18, 41969, {1, 1, 3, 15, 3, 3, 117, 17, 61, 201, 241, 1759, 4465, 3985, 6985, 47703, 58657, 52633}}, +{15899, 18, 41975, {1, 3, 3, 11, 31, 39, 107, 171, 19, 825, 1309, 807, 7787, 10761, 20215, 9287, 21553, 179599}}, +{15900, 18, 41976, {1, 3, 7, 9, 5, 7, 121, 15, 3, 199, 97, 3177, 5461, 15713, 27609, 54349, 24963, 186279}}, +{15901, 18, 41994, {1, 3, 1, 15, 11, 9, 123, 187, 363, 5, 837, 451, 1601, 6597, 10857, 46893, 83729, 20409}}, +{15902, 18, 42002, {1, 3, 1, 9, 1, 53, 71, 191, 217, 165, 1709, 1827, 1977, 10073, 11373, 35311, 26637, 134519}}, +{15903, 18, 42037, {1, 3, 5, 11, 31, 55, 101, 189, 277, 347, 629, 223, 785, 5739, 25505, 55601, 55017, 212837}}, +{15904, 18, 42056, {1, 1, 5, 11, 3, 13, 45, 235, 65, 459, 621, 587, 7105, 6181, 13193, 5683, 42935, 198585}}, +{15905, 18, 42079, {1, 1, 3, 1, 3, 17, 27, 109, 261, 979, 903, 1499, 4799, 11759, 10591, 65429, 74587, 16629}}, +{15906, 18, 42085, {1, 1, 5, 1, 13, 63, 29, 11, 441, 151, 611, 4073, 3933, 6793, 28845, 39223, 120823, 49397}}, +{15907, 18, 42089, {1, 3, 3, 5, 21, 13, 23, 53, 357, 197, 1327, 1773, 2961, 11509, 16585, 10201, 28451, 45109}}, +{15908, 18, 42123, {1, 3, 5, 7, 19, 17, 97, 63, 295, 111, 85, 2981, 6719, 9193, 15197, 12117, 2553, 59909}}, +{15909, 18, 42128, {1, 1, 5, 5, 15, 3, 9, 85, 333, 379, 1409, 1445, 4173, 3953, 833, 48089, 120249, 122703}}, +{15910, 18, 42140, {1, 3, 7, 7, 29, 13, 57, 19, 141, 979, 1991, 4011, 8125, 3915, 15753, 1371, 113771, 117273}}, +{15911, 18, 42149, {1, 3, 3, 13, 21, 53, 115, 187, 279, 29, 1355, 1843, 253, 3531, 8193, 54731, 6213, 123467}}, +{15912, 18, 42156, {1, 3, 3, 1, 25, 29, 109, 19, 37, 385, 901, 3737, 6247, 9941, 13185, 2895, 88819, 53029}}, +{15913, 18, 42186, {1, 1, 1, 1, 3, 31, 89, 157, 483, 657, 1833, 2975, 3187, 631, 28685, 7277, 4915, 115955}}, +{15914, 18, 42191, {1, 3, 3, 1, 25, 41, 13, 99, 385, 303, 297, 419, 7919, 12411, 757, 9227, 47867, 120175}}, +{15915, 18, 42205, {1, 3, 5, 11, 23, 15, 21, 157, 177, 301, 789, 2791, 5769, 7809, 2369, 26123, 116465, 22595}}, +{15916, 18, 42221, {1, 1, 5, 9, 17, 63, 45, 239, 465, 811, 1157, 1443, 8137, 12587, 26209, 62057, 59299, 167171}}, +{15917, 18, 42222, {1, 3, 3, 7, 3, 45, 41, 17, 341, 461, 571, 541, 989, 4069, 17531, 46729, 107915, 47871}}, +{15918, 18, 42230, {1, 1, 7, 1, 1, 23, 45, 213, 125, 799, 5, 3443, 2535, 12983, 2133, 63411, 93027, 89831}}, +{15919, 18, 42233, {1, 1, 1, 15, 7, 31, 49, 181, 213, 923, 281, 2059, 861, 6951, 25659, 32209, 66423, 225885}}, +{15920, 18, 42241, {1, 3, 3, 7, 9, 39, 107, 197, 383, 179, 27, 1395, 6397, 16139, 32049, 33567, 43977, 203939}}, +{15921, 18, 42247, {1, 1, 3, 5, 13, 37, 13, 31, 339, 527, 641, 181, 1413, 8145, 341, 57605, 108031, 109311}}, +{15922, 18, 42248, {1, 1, 1, 1, 21, 35, 87, 15, 279, 967, 1003, 813, 5075, 10595, 5609, 33901, 86443, 150007}}, +{15923, 18, 42254, {1, 3, 1, 5, 27, 9, 75, 199, 377, 889, 545, 1987, 6277, 361, 12563, 35699, 27105, 187995}}, +{15924, 18, 42259, {1, 3, 7, 1, 11, 3, 41, 215, 273, 61, 821, 1207, 2809, 8731, 26409, 50323, 22355, 16521}}, +{15925, 18, 42268, {1, 1, 7, 5, 29, 13, 99, 133, 15, 673, 215, 445, 4051, 2187, 9395, 62491, 58685, 224707}}, +{15926, 18, 42295, {1, 3, 3, 13, 21, 59, 17, 1, 271, 613, 939, 1881, 2379, 16325, 3275, 63707, 59961, 106937}}, +{15927, 18, 42304, {1, 3, 3, 1, 23, 53, 51, 181, 391, 375, 767, 239, 373, 4593, 25211, 37173, 70409, 252345}}, +{15928, 18, 42322, {1, 3, 3, 11, 15, 17, 37, 145, 41, 107, 151, 1351, 3457, 14727, 755, 36321, 99397, 73359}}, +{15929, 18, 42334, {1, 3, 5, 7, 25, 31, 39, 185, 341, 721, 1799, 1803, 5985, 10587, 11605, 9937, 23905, 56485}}, +{15930, 18, 42355, {1, 3, 1, 3, 19, 35, 25, 71, 109, 209, 1675, 4043, 2053, 6285, 25317, 50171, 68293, 124385}}, +{15931, 18, 42361, {1, 1, 1, 1, 21, 11, 63, 137, 361, 157, 1985, 2161, 7239, 1795, 10459, 38511, 36817, 253347}}, +{15932, 18, 42373, {1, 1, 1, 5, 31, 3, 13, 83, 185, 175, 567, 295, 459, 11453, 3765, 9841, 30333, 201377}}, +{15933, 18, 42374, {1, 1, 3, 13, 5, 57, 99, 125, 371, 903, 2001, 285, 2005, 8475, 31617, 58265, 641, 115507}}, +{15934, 18, 42398, {1, 3, 5, 9, 11, 17, 123, 67, 77, 803, 815, 3173, 4795, 11917, 1187, 32389, 102289, 248359}}, +{15935, 18, 42411, {1, 1, 5, 5, 27, 19, 59, 145, 361, 821, 33, 1465, 7643, 11101, 145, 21705, 55105, 181245}}, +{15936, 18, 42443, {1, 3, 7, 5, 15, 55, 127, 133, 157, 989, 1211, 3573, 4021, 2967, 2941, 38657, 97681, 114505}}, +{15937, 18, 42446, {1, 1, 7, 7, 23, 17, 39, 209, 117, 195, 931, 5, 7509, 9187, 6011, 10297, 13727, 258007}}, +{15938, 18, 42463, {1, 3, 1, 13, 3, 17, 105, 69, 9, 163, 1615, 241, 5207, 13173, 28521, 51417, 130645, 106787}}, +{15939, 18, 42479, {1, 1, 7, 13, 15, 3, 5, 187, 5, 239, 1799, 3083, 7801, 12781, 24817, 59341, 73867, 175273}}, +{15940, 18, 42482, {1, 1, 3, 11, 11, 1, 89, 17, 497, 217, 1565, 2933, 6449, 7687, 6561, 57903, 92751, 261371}}, +{15941, 18, 42484, {1, 1, 1, 1, 15, 39, 47, 249, 39, 765, 249, 2785, 4401, 16033, 11463, 127, 120109, 83133}}, +{15942, 18, 42498, {1, 1, 3, 3, 19, 59, 47, 153, 505, 1009, 413, 1177, 5999, 6841, 12013, 40295, 115641, 189241}}, +{15943, 18, 42534, {1, 3, 3, 11, 17, 51, 45, 101, 459, 971, 1133, 3467, 4945, 12445, 1267, 41783, 66825, 130167}}, +{15944, 18, 42537, {1, 3, 1, 7, 17, 45, 77, 211, 387, 23, 1903, 2309, 2681, 6897, 6959, 30981, 113537, 207415}}, +{15945, 18, 42557, {1, 1, 3, 1, 19, 9, 103, 89, 461, 881, 71, 2019, 6475, 13563, 18835, 2375, 34807, 1373}}, +{15946, 18, 42570, {1, 1, 7, 11, 3, 31, 125, 121, 43, 737, 1995, 3043, 811, 8883, 8169, 22131, 29295, 194963}}, +{15947, 18, 42599, {1, 3, 7, 11, 7, 45, 125, 149, 427, 187, 1361, 2405, 2815, 8877, 15255, 36867, 95517, 261969}}, +{15948, 18, 42600, {1, 1, 7, 11, 9, 29, 89, 175, 467, 997, 937, 3869, 7843, 12629, 8701, 60717, 30443, 193427}}, +{15949, 18, 42633, {1, 1, 5, 7, 3, 3, 57, 199, 315, 477, 189, 2029, 2059, 3473, 27411, 30419, 26465, 187807}}, +{15950, 18, 42639, {1, 3, 1, 15, 3, 3, 11, 55, 233, 603, 1749, 1737, 5709, 4559, 13427, 39137, 44885, 61611}}, +{15951, 18, 42672, {1, 1, 7, 1, 25, 15, 61, 199, 107, 737, 909, 3229, 1799, 5129, 27655, 45937, 919, 36161}}, +{15952, 18, 42681, {1, 1, 3, 5, 31, 27, 99, 247, 425, 689, 1335, 1661, 625, 15817, 22601, 33293, 113927, 261931}}, +{15953, 18, 42687, {1, 1, 1, 9, 5, 57, 117, 121, 465, 859, 335, 879, 665, 12787, 21313, 46387, 16437, 53769}}, +{15954, 18, 42704, {1, 1, 3, 1, 11, 11, 75, 145, 307, 621, 833, 235, 3907, 11331, 6633, 51905, 72581, 129613}}, +{15955, 18, 42713, {1, 1, 3, 13, 17, 13, 81, 125, 377, 499, 1597, 3437, 4323, 789, 23825, 46609, 105997, 159709}}, +{15956, 18, 42714, {1, 3, 3, 9, 5, 29, 113, 51, 23, 957, 1981, 3205, 2549, 9771, 2555, 44289, 103893, 170241}}, +{15957, 18, 42716, {1, 1, 5, 15, 13, 17, 101, 67, 71, 7, 185, 3775, 5399, 5213, 13095, 26045, 59467, 95547}}, +{15958, 18, 42726, {1, 1, 5, 5, 31, 11, 77, 169, 3, 1007, 1853, 2245, 509, 13489, 2807, 55227, 67541, 242835}}, +{15959, 18, 42730, {1, 3, 7, 15, 11, 63, 39, 97, 1, 219, 1827, 2343, 6009, 4909, 4327, 21853, 46079, 87719}}, +{15960, 18, 42737, {1, 3, 1, 9, 17, 51, 119, 93, 179, 607, 1051, 2381, 619, 11215, 10839, 44771, 20555, 12721}}, +{15961, 18, 42752, {1, 3, 3, 5, 21, 47, 35, 133, 61, 937, 1561, 1655, 6527, 5085, 4141, 60811, 59971, 6309}}, +{15962, 18, 42757, {1, 3, 1, 7, 5, 63, 7, 235, 489, 675, 945, 943, 7107, 6005, 32695, 27655, 113219, 132963}}, +{15963, 18, 42772, {1, 1, 1, 7, 7, 5, 81, 237, 365, 1, 811, 3075, 1771, 5223, 7337, 24601, 68383, 156975}}, +{15964, 18, 42809, {1, 3, 1, 15, 5, 35, 39, 91, 301, 387, 805, 3537, 737, 7453, 4655, 16349, 108261, 123697}}, +{15965, 18, 42853, {1, 3, 5, 3, 9, 59, 95, 187, 155, 183, 589, 2107, 967, 1095, 4875, 46131, 100699, 212797}}, +{15966, 18, 42857, {1, 3, 1, 7, 27, 29, 77, 133, 397, 445, 933, 1483, 5027, 12569, 22163, 58989, 16657, 195347}}, +{15967, 18, 42902, {1, 3, 5, 15, 21, 51, 97, 135, 165, 311, 525, 171, 4785, 7947, 14649, 40837, 58875, 222303}}, +{15968, 18, 42912, {1, 3, 3, 5, 23, 47, 41, 23, 321, 709, 1555, 1139, 3775, 11617, 13001, 18235, 51803, 197863}}, +{15969, 18, 42930, {1, 3, 5, 3, 3, 41, 91, 157, 29, 1005, 945, 3471, 2563, 8493, 24961, 44759, 103079, 50841}}, +{15970, 18, 42936, {1, 1, 5, 11, 23, 19, 91, 115, 165, 291, 1653, 1061, 1067, 6171, 18441, 26067, 3569, 117329}}, +{15971, 18, 42956, {1, 3, 7, 15, 17, 19, 89, 23, 103, 389, 623, 1071, 203, 9545, 21259, 36155, 55395, 141741}}, +{15972, 18, 42959, {1, 3, 5, 11, 27, 43, 31, 193, 55, 489, 353, 1615, 7461, 13977, 31901, 64051, 82667, 258825}}, +{15973, 18, 42978, {1, 1, 3, 7, 5, 39, 7, 245, 241, 843, 1545, 3499, 8117, 15057, 14153, 2665, 107401, 66059}}, +{15974, 18, 43001, {1, 3, 5, 11, 9, 11, 41, 171, 255, 153, 1973, 759, 51, 15601, 327, 25889, 110861, 20555}}, +{15975, 18, 43011, {1, 3, 5, 7, 5, 15, 41, 77, 87, 143, 1141, 3975, 2675, 7131, 5549, 52397, 42073, 27585}}, +{15976, 18, 43047, {1, 1, 3, 7, 29, 5, 79, 243, 359, 817, 1053, 3509, 3347, 6207, 5147, 31063, 116851, 132627}}, +{15977, 18, 43059, {1, 3, 7, 3, 27, 51, 39, 7, 95, 239, 263, 3497, 867, 1869, 16773, 46947, 59193, 37523}}, +{15978, 18, 43094, {1, 3, 1, 1, 25, 31, 113, 127, 187, 77, 675, 3307, 999, 12255, 26441, 30933, 122761, 116783}}, +{15979, 18, 43124, {1, 1, 5, 7, 7, 11, 87, 59, 437, 485, 685, 3159, 7259, 16271, 24899, 17919, 130271, 52953}}, +{15980, 18, 43218, {1, 1, 3, 11, 7, 13, 61, 157, 149, 1001, 285, 3631, 1923, 16013, 19507, 64447, 8073, 261171}}, +{15981, 18, 43220, {1, 3, 7, 9, 7, 13, 45, 7, 225, 671, 287, 1059, 5223, 2077, 7551, 58385, 92955, 162725}}, +{15982, 18, 43240, {1, 1, 5, 11, 11, 21, 17, 145, 97, 633, 475, 2639, 2069, 9663, 23633, 50949, 109941, 119865}}, +{15983, 18, 43258, {1, 1, 5, 13, 9, 49, 127, 171, 199, 413, 1315, 645, 305, 12123, 9559, 38319, 99945, 103313}}, +{15984, 18, 43263, {1, 3, 5, 3, 19, 21, 119, 17, 301, 611, 1785, 2081, 2245, 8761, 4755, 9507, 23133, 144575}}, +{15985, 18, 43265, {1, 3, 7, 11, 17, 25, 101, 59, 397, 249, 687, 715, 1151, 15941, 20525, 5171, 24073, 46257}}, +{15986, 18, 43290, {1, 1, 3, 15, 11, 45, 9, 201, 421, 867, 389, 3615, 5965, 10561, 18309, 17143, 52771, 230743}}, +{15987, 18, 43346, {1, 1, 3, 5, 9, 1, 109, 233, 431, 849, 421, 475, 1331, 9903, 20649, 34759, 118611, 38541}}, +{15988, 18, 43364, {1, 3, 5, 15, 9, 55, 113, 217, 83, 409, 1449, 2325, 4825, 11311, 14565, 65075, 124399, 3591}}, +{15989, 18, 43373, {1, 3, 3, 9, 27, 13, 101, 181, 255, 313, 693, 951, 1153, 13941, 14097, 8325, 4589, 102883}}, +{15990, 18, 43401, {1, 3, 7, 3, 3, 1, 43, 65, 321, 623, 1389, 57, 3461, 9965, 6743, 34843, 91673, 249573}}, +{15991, 18, 43416, {1, 3, 5, 5, 11, 29, 101, 79, 275, 685, 569, 59, 6921, 16065, 30625, 53339, 32283, 93401}}, +{15992, 18, 43443, {1, 3, 1, 11, 29, 33, 103, 145, 431, 289, 1845, 1915, 23, 699, 5475, 18413, 127185, 162637}}, +{15993, 18, 43458, {1, 3, 1, 11, 27, 23, 71, 63, 45, 579, 1187, 1189, 1781, 5595, 9043, 10155, 33321, 36487}}, +{15994, 18, 43497, {1, 3, 3, 15, 17, 19, 85, 233, 293, 833, 1711, 857, 7573, 393, 23141, 58713, 21399, 228381}}, +{15995, 18, 43506, {1, 3, 3, 15, 3, 35, 33, 35, 403, 123, 575, 3509, 6303, 13203, 17997, 15649, 64331, 124101}}, +{15996, 18, 43545, {1, 1, 3, 9, 23, 25, 39, 53, 119, 879, 573, 3225, 5069, 15489, 21887, 11773, 37783, 169523}}, +{15997, 18, 43558, {1, 3, 5, 5, 5, 25, 29, 189, 145, 863, 661, 3939, 1059, 11993, 1487, 3157, 118287, 69835}}, +{15998, 18, 43576, {1, 3, 7, 3, 15, 9, 85, 107, 17, 965, 1097, 2087, 1947, 14649, 4099, 50941, 64511, 209153}}, +{15999, 18, 43579, {1, 3, 5, 15, 19, 21, 127, 71, 429, 97, 1989, 835, 743, 11973, 14635, 45371, 114657, 208085}}, +{16000, 18, 43624, {1, 3, 5, 7, 23, 61, 99, 133, 235, 237, 435, 2681, 331, 7859, 20859, 3573, 102901, 775}}, +{16001, 18, 43630, {1, 3, 3, 9, 7, 57, 29, 15, 53, 569, 871, 1703, 2573, 10791, 719, 3487, 105709, 89573}}, +{16002, 18, 43637, {1, 1, 1, 9, 7, 21, 21, 207, 459, 621, 737, 635, 5101, 4343, 4961, 32067, 64017, 73675}}, +{16003, 18, 43654, {1, 1, 3, 9, 25, 27, 77, 69, 251, 327, 921, 3759, 1715, 14537, 21399, 10937, 9085, 241329}}, +{16004, 18, 43660, {1, 1, 5, 1, 23, 13, 63, 117, 81, 427, 1063, 1987, 2433, 14837, 13473, 28623, 44799, 202223}}, +{16005, 18, 43696, {1, 3, 1, 11, 17, 55, 89, 89, 455, 255, 1009, 1891, 2197, 9045, 23543, 48783, 22871, 58613}}, +{16006, 18, 43706, {1, 3, 7, 15, 25, 5, 11, 71, 399, 23, 239, 93, 6681, 11311, 23403, 58131, 59549, 38917}}, +{16007, 18, 43725, {1, 1, 1, 1, 19, 63, 73, 31, 69, 145, 921, 2475, 3505, 4797, 23805, 28621, 101153, 98895}}, +{16008, 18, 43733, {1, 3, 3, 3, 9, 1, 113, 111, 275, 851, 519, 1607, 635, 13287, 6191, 24545, 112039, 114383}}, +{16009, 18, 43753, {1, 3, 7, 9, 13, 13, 107, 97, 37, 133, 21, 1059, 4201, 6777, 2843, 43503, 23761, 13247}}, +{16010, 18, 43756, {1, 1, 7, 9, 25, 23, 101, 135, 471, 901, 539, 4083, 1765, 15553, 5879, 10787, 67543, 104543}}, +{16011, 18, 43761, {1, 3, 3, 13, 25, 63, 1, 49, 287, 357, 1701, 3689, 3895, 16313, 22619, 20203, 8195, 93127}}, +{16012, 18, 43768, {1, 1, 1, 11, 15, 37, 75, 43, 311, 443, 1639, 549, 4707, 3099, 677, 59115, 11709, 71013}}, +{16013, 18, 43812, {1, 1, 5, 11, 17, 43, 23, 21, 421, 613, 199, 1029, 5255, 271, 12911, 63431, 108889, 253379}}, +{16014, 18, 43822, {1, 3, 7, 11, 27, 45, 9, 89, 65, 25, 1183, 3497, 8123, 2389, 215, 16819, 63777, 163423}}, +{16015, 18, 43841, {1, 1, 5, 5, 29, 43, 65, 201, 391, 861, 1133, 3985, 983, 13039, 15545, 13695, 91467, 963}}, +{16016, 18, 43861, {1, 3, 7, 3, 9, 55, 73, 205, 287, 765, 941, 353, 7379, 2511, 555, 64399, 77605, 121959}}, +{16017, 18, 43868, {1, 3, 1, 11, 25, 15, 109, 35, 351, 675, 1219, 3791, 233, 15133, 30733, 24477, 86077, 85857}}, +{16018, 18, 43877, {1, 1, 1, 7, 13, 33, 63, 45, 503, 525, 781, 517, 2187, 1587, 17297, 26147, 35421, 61269}}, +{16019, 18, 43878, {1, 3, 1, 9, 9, 35, 69, 79, 447, 675, 803, 2793, 5793, 4433, 29227, 5437, 103347, 37713}}, +{16020, 18, 43908, {1, 3, 1, 9, 27, 31, 65, 167, 327, 231, 1959, 657, 3141, 8659, 11055, 23923, 73597, 187139}}, +{16021, 18, 43917, {1, 1, 5, 9, 29, 5, 37, 3, 281, 693, 133, 2139, 5867, 12073, 23669, 11427, 80627, 249003}}, +{16022, 18, 43936, {1, 1, 1, 13, 9, 35, 89, 203, 381, 281, 535, 1061, 7417, 13373, 12149, 37943, 113133, 110797}}, +{16023, 18, 43954, {1, 1, 7, 5, 7, 17, 71, 65, 385, 851, 1357, 3435, 4441, 6999, 27065, 32753, 129531, 52447}}, +{16024, 18, 43963, {1, 3, 7, 1, 3, 21, 25, 113, 361, 219, 1345, 2193, 5711, 3331, 14343, 23075, 39955, 71223}}, +{16025, 18, 43977, {1, 1, 7, 9, 15, 9, 101, 183, 59, 861, 931, 3385, 6517, 12067, 7753, 37997, 128361, 4591}}, +{16026, 18, 44008, {1, 3, 5, 3, 23, 5, 37, 217, 203, 749, 993, 2537, 2425, 13949, 17235, 15461, 21275, 141815}}, +{16027, 18, 44013, {1, 3, 5, 1, 19, 59, 63, 241, 211, 285, 2033, 1111, 2859, 14801, 9491, 14557, 12973, 223089}}, +{16028, 18, 44026, {1, 1, 1, 11, 15, 41, 57, 59, 233, 897, 1193, 381, 2237, 5309, 19237, 57607, 97941, 116573}}, +{16029, 18, 44028, {1, 1, 3, 9, 15, 17, 75, 15, 385, 129, 495, 887, 4933, 15113, 7449, 56213, 15841, 248029}}, +{16030, 18, 44045, {1, 3, 1, 1, 29, 37, 19, 221, 47, 185, 1105, 3297, 5235, 6917, 12041, 10815, 54747, 132329}}, +{16031, 18, 44046, {1, 3, 1, 5, 3, 17, 33, 35, 395, 491, 1157, 2563, 6257, 1025, 18295, 5293, 77851, 140157}}, +{16032, 18, 44053, {1, 3, 1, 13, 7, 31, 95, 21, 347, 409, 1485, 925, 327, 11497, 7305, 6503, 111175, 70989}}, +{16033, 18, 44091, {1, 3, 3, 1, 11, 41, 127, 93, 367, 649, 1585, 3379, 7269, 5537, 26077, 28541, 55379, 22989}}, +{16034, 18, 44101, {1, 1, 1, 5, 27, 11, 35, 49, 7, 113, 1477, 3615, 7567, 505, 13915, 51023, 50783, 45031}}, +{16035, 18, 44129, {1, 1, 7, 5, 25, 1, 35, 59, 269, 427, 791, 3179, 1423, 9801, 17717, 23631, 97947, 126861}}, +{16036, 18, 44139, {1, 3, 5, 7, 1, 51, 77, 97, 19, 287, 303, 791, 307, 4939, 13615, 61225, 98127, 114693}}, +{16037, 18, 44172, {1, 3, 3, 15, 5, 5, 93, 119, 429, 977, 1763, 3727, 1761, 3597, 16489, 71, 44103, 257929}}, +{16038, 18, 44203, {1, 1, 5, 1, 15, 29, 79, 33, 335, 381, 1233, 47, 6741, 4953, 29689, 11223, 129185, 182487}}, +{16039, 18, 44211, {1, 1, 1, 11, 29, 27, 27, 189, 507, 523, 1949, 2567, 4105, 1227, 16631, 34187, 28521, 265}}, +{16040, 18, 44240, {1, 3, 3, 7, 3, 7, 39, 155, 315, 439, 1953, 1227, 6135, 16291, 453, 50929, 67507, 166981}}, +{16041, 18, 44259, {1, 3, 1, 5, 7, 55, 121, 119, 87, 869, 1049, 575, 3675, 13505, 15661, 43899, 106877, 141691}}, +{16042, 18, 44305, {1, 3, 1, 11, 23, 9, 117, 243, 329, 767, 335, 2951, 2887, 13441, 27579, 15437, 31699, 165177}}, +{16043, 18, 44383, {1, 3, 7, 11, 5, 49, 47, 125, 431, 511, 299, 3215, 3287, 7029, 9737, 28317, 34355, 232365}}, +{16044, 18, 44384, {1, 3, 7, 3, 17, 9, 29, 255, 509, 393, 1583, 1979, 6735, 941, 4393, 35741, 82019, 109633}}, +{16045, 18, 44389, {1, 1, 5, 1, 13, 31, 95, 133, 117, 257, 993, 1513, 4669, 12239, 7841, 751, 79567, 23289}}, +{16046, 18, 44390, {1, 1, 7, 9, 25, 33, 127, 181, 61, 333, 1087, 1661, 2715, 2569, 30041, 4937, 36053, 3435}}, +{16047, 18, 44432, {1, 3, 1, 13, 15, 27, 123, 73, 377, 85, 435, 3435, 2079, 9271, 28685, 30089, 38799, 210247}}, +{16048, 18, 44435, {1, 1, 5, 3, 5, 17, 93, 181, 313, 837, 1115, 3099, 3603, 3483, 23185, 9933, 53127, 123245}}, +{16049, 18, 44468, {1, 1, 1, 13, 3, 57, 11, 67, 41, 273, 1005, 2313, 505, 6593, 27287, 47359, 104597, 45475}}, +{16050, 18, 44472, {1, 1, 1, 5, 13, 41, 97, 251, 317, 483, 163, 1493, 6629, 11995, 31293, 4715, 98569, 178419}}, +{16051, 18, 44483, {1, 3, 5, 5, 21, 7, 69, 169, 223, 953, 1573, 1137, 8075, 7733, 23031, 14589, 6453, 228883}}, +{16052, 18, 44497, {1, 1, 7, 9, 27, 37, 3, 183, 41, 99, 111, 1713, 1291, 8263, 6373, 39549, 3099, 156793}}, +{16053, 18, 44550, {1, 1, 3, 1, 23, 43, 15, 27, 223, 173, 1601, 2159, 3595, 15143, 31065, 35799, 77339, 141397}}, +{16054, 18, 44577, {1, 1, 5, 13, 9, 35, 27, 93, 23, 999, 593, 563, 5333, 8825, 27277, 46381, 3171, 6311}}, +{16055, 18, 44584, {1, 3, 7, 15, 25, 17, 7, 237, 379, 649, 1879, 2643, 5951, 4227, 4937, 24549, 43577, 116327}}, +{16056, 18, 44601, {1, 1, 3, 9, 29, 35, 101, 105, 19, 151, 1135, 897, 2427, 15779, 31851, 29183, 44471, 187817}}, +{16057, 18, 44674, {1, 3, 7, 11, 9, 55, 19, 115, 395, 559, 1883, 409, 2459, 201, 18975, 339, 108251, 19429}}, +{16058, 18, 44683, {1, 3, 1, 13, 1, 11, 67, 45, 407, 169, 1401, 381, 3913, 6491, 28133, 63857, 52095, 115749}}, +{16059, 18, 44688, {1, 1, 1, 11, 21, 45, 65, 253, 511, 51, 893, 3533, 2101, 4779, 23941, 22449, 82457, 44447}}, +{16060, 18, 44694, {1, 1, 7, 11, 19, 33, 101, 241, 493, 111, 1967, 469, 6575, 10445, 733, 56467, 27403, 25863}}, +{16061, 18, 44703, {1, 3, 1, 1, 5, 49, 21, 79, 53, 621, 43, 1183, 1385, 9129, 21727, 35559, 35269, 211383}}, +{16062, 18, 44713, {1, 1, 1, 13, 23, 43, 53, 145, 149, 611, 745, 899, 7095, 3243, 1993, 35807, 110783, 246199}}, +{16063, 18, 44721, {1, 1, 7, 9, 25, 37, 71, 233, 407, 1, 1749, 759, 7689, 15573, 7351, 33505, 22631, 49125}}, +{16064, 18, 44722, {1, 3, 1, 13, 31, 49, 105, 13, 257, 843, 1171, 2819, 621, 12567, 24339, 6689, 127413, 249671}}, +{16065, 18, 44733, {1, 1, 5, 11, 5, 1, 93, 21, 317, 789, 571, 2493, 7255, 6459, 14737, 13989, 47003, 246561}}, +{16066, 18, 44746, {1, 3, 5, 7, 9, 11, 69, 143, 175, 581, 825, 2219, 1165, 9061, 6073, 57169, 18135, 94943}}, +{16067, 18, 44748, {1, 1, 5, 7, 7, 55, 121, 107, 395, 939, 1291, 2497, 3757, 1361, 31823, 19375, 22551, 224653}}, +{16068, 18, 44760, {1, 1, 7, 15, 15, 1, 47, 225, 223, 589, 1539, 173, 6257, 5461, 11197, 9801, 80687, 84279}}, +{16069, 18, 44765, {1, 3, 7, 11, 23, 47, 83, 119, 367, 895, 431, 1949, 565, 1397, 24911, 29661, 67861, 74621}}, +{16070, 18, 44766, {1, 3, 3, 9, 17, 29, 15, 65, 157, 255, 303, 1467, 3279, 8873, 31279, 431, 8497, 7209}}, +{16071, 18, 44775, {1, 1, 5, 13, 9, 39, 85, 133, 427, 897, 1665, 2109, 2865, 15573, 27729, 59905, 2241, 83099}}, +{16072, 18, 44794, {1, 3, 1, 13, 1, 45, 65, 65, 249, 79, 1515, 503, 953, 9859, 13307, 27419, 102209, 107529}}, +{16073, 18, 44822, {1, 3, 7, 9, 17, 13, 79, 93, 231, 5, 1811, 557, 1837, 8077, 8109, 3497, 79985, 134375}}, +{16074, 18, 44841, {1, 1, 5, 9, 15, 3, 23, 27, 491, 9, 1657, 3877, 3783, 12645, 2599, 10673, 40035, 197681}}, +{16075, 18, 44859, {1, 1, 5, 3, 5, 13, 121, 145, 291, 621, 1731, 145, 2033, 341, 3667, 4139, 52035, 115865}}, +{16076, 18, 44894, {1, 3, 5, 5, 3, 29, 115, 227, 339, 23, 1659, 2367, 1079, 10757, 30709, 41473, 55847, 228761}}, +{16077, 18, 44900, {1, 3, 5, 7, 7, 61, 103, 57, 197, 31, 237, 2507, 5247, 10529, 13823, 47845, 129031, 47029}}, +{16078, 18, 44904, {1, 3, 7, 5, 3, 17, 91, 31, 277, 977, 1905, 3991, 3657, 12197, 14535, 43263, 109629, 31665}}, +{16079, 18, 44946, {1, 1, 5, 15, 29, 43, 121, 113, 159, 929, 669, 2067, 4999, 6847, 12369, 61795, 98525, 78051}}, +{16080, 18, 44967, {1, 1, 3, 7, 25, 61, 65, 79, 373, 683, 113, 1495, 5447, 15507, 16731, 53959, 62905, 252173}}, +{16081, 18, 44994, {1, 3, 1, 11, 1, 15, 101, 55, 477, 357, 333, 3243, 3325, 5885, 11385, 685, 90575, 23015}}, +{16082, 18, 44999, {1, 3, 1, 7, 15, 13, 91, 141, 209, 865, 2035, 2791, 367, 9953, 29547, 36731, 13649, 192911}}, +{16083, 18, 45013, {1, 1, 5, 15, 9, 59, 37, 131, 3, 299, 897, 119, 7515, 5271, 2207, 18187, 62613, 210345}}, +{16084, 18, 45017, {1, 3, 1, 7, 29, 53, 95, 185, 327, 473, 1525, 3751, 915, 5883, 4137, 46343, 104917, 182895}}, +{16085, 18, 45020, {1, 1, 7, 3, 31, 57, 53, 169, 215, 607, 541, 1081, 5265, 2509, 28379, 41767, 19435, 143693}}, +{16086, 18, 45027, {1, 1, 7, 7, 31, 57, 19, 203, 467, 57, 1305, 1513, 6069, 15595, 31717, 44687, 65335, 159315}}, +{16087, 18, 45029, {1, 1, 1, 1, 13, 1, 41, 39, 489, 465, 1645, 2847, 6193, 11025, 11297, 55945, 92085, 243061}}, +{16088, 18, 45066, {1, 3, 3, 13, 15, 47, 87, 77, 321, 903, 181, 2093, 1673, 5375, 17969, 48467, 83441, 120867}}, +{16089, 18, 45074, {1, 3, 3, 13, 13, 17, 65, 181, 283, 471, 745, 1091, 7255, 5987, 29423, 27579, 96201, 218157}}, +{16090, 18, 45080, {1, 1, 1, 7, 13, 5, 101, 131, 309, 401, 99, 2353, 55, 2377, 6059, 64777, 33401, 225605}}, +{16091, 18, 45090, {1, 3, 1, 15, 9, 35, 37, 197, 65, 593, 411, 2233, 1485, 9599, 9581, 31935, 115145, 76867}}, +{16092, 18, 45101, {1, 3, 7, 9, 3, 41, 103, 237, 453, 335, 1831, 3947, 7573, 3859, 12495, 60617, 20715, 163119}}, +{16093, 18, 45110, {1, 3, 5, 7, 9, 9, 25, 79, 421, 267, 585, 1093, 2237, 8881, 7311, 39417, 110901, 8969}}, +{16094, 18, 45113, {1, 3, 3, 15, 1, 29, 75, 159, 89, 965, 457, 1645, 1485, 729, 30547, 2275, 79633, 126089}}, +{16095, 18, 45134, {1, 3, 7, 7, 19, 47, 55, 115, 287, 477, 719, 3311, 2455, 12033, 13811, 34011, 45153, 126991}}, +{16096, 18, 45136, {1, 3, 7, 5, 9, 33, 27, 215, 7, 113, 1027, 415, 1057, 13011, 1547, 7955, 21347, 79427}}, +{16097, 18, 45148, {1, 3, 1, 11, 1, 41, 27, 29, 255, 763, 219, 897, 915, 453, 9417, 22845, 31655, 228869}}, +{16098, 18, 45158, {1, 1, 7, 13, 7, 49, 105, 111, 53, 219, 171, 841, 5027, 5311, 28171, 58719, 32241, 170921}}, +{16099, 18, 45176, {1, 3, 5, 7, 21, 53, 11, 169, 45, 429, 1727, 1953, 8119, 14955, 19997, 62665, 31345, 135715}}, +{16100, 18, 45181, {1, 1, 5, 13, 17, 13, 125, 247, 411, 663, 1725, 2515, 7995, 8963, 5797, 32871, 66603, 137997}}, +{16101, 18, 45185, {1, 1, 5, 5, 23, 37, 15, 63, 35, 817, 463, 1413, 1203, 8031, 4169, 45755, 93511, 134751}}, +{16102, 18, 45188, {1, 1, 1, 1, 31, 17, 15, 125, 199, 57, 1499, 1567, 6113, 6503, 515, 57841, 49885, 213881}}, +{16103, 18, 45203, {1, 1, 7, 7, 15, 1, 67, 213, 197, 471, 577, 27, 1533, 13009, 31861, 62435, 113139, 77057}}, +{16104, 18, 45209, {1, 3, 7, 1, 29, 21, 99, 173, 137, 19, 1727, 1157, 5215, 4367, 28803, 26031, 120195, 60111}}, +{16105, 18, 45231, {1, 1, 5, 9, 25, 55, 27, 45, 231, 693, 765, 429, 2897, 6045, 19705, 61903, 5385, 172967}}, +{16106, 18, 45234, {1, 3, 1, 5, 9, 17, 35, 151, 91, 41, 89, 3751, 27, 5721, 26117, 6105, 31609, 79569}}, +{16107, 18, 45239, {1, 3, 5, 11, 15, 3, 25, 73, 383, 765, 729, 51, 4245, 6215, 9435, 45223, 68071, 68453}}, +{16108, 18, 45246, {1, 1, 7, 5, 31, 61, 19, 153, 331, 233, 11, 3047, 3939, 11959, 897, 4437, 2941, 174493}}, +{16109, 18, 45260, {1, 1, 7, 11, 27, 11, 83, 33, 7, 761, 805, 2327, 2997, 12269, 18707, 10615, 114357, 54951}}, +{16110, 18, 45284, {1, 3, 5, 9, 3, 45, 65, 193, 347, 771, 663, 2901, 6467, 14109, 5169, 38021, 39605, 216877}}, +{16111, 18, 45301, {1, 1, 7, 1, 1, 13, 109, 179, 499, 325, 1763, 1923, 7429, 259, 20589, 48473, 49605, 124709}}, +{16112, 18, 45333, {1, 3, 1, 3, 5, 27, 25, 127, 313, 541, 589, 751, 5959, 5801, 32467, 40597, 75625, 24827}}, +{16113, 18, 45350, {1, 1, 1, 3, 13, 35, 71, 223, 281, 767, 447, 1253, 2227, 7305, 23125, 62847, 16783, 76145}}, +{16114, 18, 45354, {1, 1, 5, 5, 11, 1, 95, 215, 351, 915, 1471, 143, 4011, 3373, 19019, 31797, 85891, 33871}}, +{16115, 18, 45446, {1, 1, 3, 9, 15, 39, 125, 29, 85, 625, 1155, 753, 6679, 14239, 14597, 32715, 97313, 162291}}, +{16116, 18, 45458, {1, 1, 1, 7, 13, 47, 127, 69, 199, 145, 123, 3207, 7673, 9991, 27501, 29189, 93027, 136881}}, +{16117, 18, 45518, {1, 3, 1, 15, 9, 21, 121, 23, 457, 315, 437, 1919, 5531, 13817, 8883, 4421, 19487, 88591}}, +{16118, 18, 45566, {1, 3, 1, 9, 15, 49, 101, 27, 11, 283, 1277, 971, 7697, 5915, 12709, 38251, 88165, 261609}}, +{16119, 18, 45569, {1, 1, 3, 9, 17, 19, 53, 131, 327, 917, 603, 2451, 3597, 14731, 9223, 29719, 113507, 69875}}, +{16120, 18, 45575, {1, 1, 5, 7, 1, 3, 77, 71, 149, 901, 283, 1599, 1053, 16305, 9937, 20907, 4133, 29623}}, +{16121, 18, 45576, {1, 1, 3, 9, 25, 63, 101, 255, 397, 233, 1111, 1583, 3431, 5245, 30209, 33201, 63859, 16551}}, +{16122, 18, 45587, {1, 1, 7, 5, 19, 25, 9, 137, 105, 363, 867, 811, 5829, 12595, 18867, 61021, 19425, 99399}}, +{16123, 18, 45615, {1, 1, 3, 7, 11, 1, 119, 95, 367, 239, 1677, 67, 283, 5701, 3635, 26917, 112895, 224049}}, +{16124, 18, 45661, {1, 3, 5, 11, 13, 33, 11, 191, 305, 551, 159, 1953, 4231, 811, 8711, 41291, 110917, 176177}}, +{16125, 18, 45798, {1, 3, 5, 9, 15, 3, 27, 29, 77, 881, 849, 1113, 7151, 3433, 11199, 38409, 98173, 21373}}, +{16126, 18, 45829, {1, 1, 5, 13, 25, 57, 81, 169, 215, 379, 1707, 493, 1071, 4869, 19149, 24585, 61803, 149305}}, +{16127, 18, 45847, {1, 1, 5, 11, 13, 11, 9, 45, 207, 347, 1203, 185, 3919, 3119, 27879, 50793, 18499, 109239}}, +{16128, 18, 45858, {1, 1, 1, 5, 3, 23, 123, 175, 445, 439, 215, 1883, 6857, 14837, 29411, 33633, 96241, 68361}}, +{16129, 18, 45864, {1, 1, 5, 7, 31, 53, 19, 41, 477, 203, 1133, 1471, 5067, 3875, 30655, 9207, 24835, 22019}}, +{16130, 18, 45899, {1, 3, 1, 11, 19, 9, 91, 217, 135, 169, 489, 727, 5471, 2125, 20867, 19689, 78859, 222433}}, +{16131, 18, 45904, {1, 1, 1, 13, 5, 37, 37, 39, 397, 527, 789, 1447, 7123, 6099, 16849, 48895, 95543, 56135}}, +{16132, 18, 45919, {1, 3, 7, 7, 15, 31, 81, 165, 31, 867, 1879, 1161, 3651, 5167, 12855, 60195, 85611, 191791}}, +{16133, 18, 45974, {1, 1, 1, 9, 31, 35, 19, 123, 281, 445, 63, 2683, 7073, 1489, 9791, 40125, 43723, 103765}}, +{16134, 18, 45987, {1, 3, 3, 9, 23, 31, 113, 241, 149, 463, 1047, 3737, 8105, 16295, 4565, 8095, 16617, 87455}}, +{16135, 18, 45989, {1, 3, 5, 15, 1, 47, 29, 77, 27, 1013, 1091, 3657, 835, 563, 7139, 58839, 92697, 114523}}, +{16136, 18, 46008, {1, 3, 1, 1, 5, 49, 87, 251, 473, 583, 2033, 809, 5341, 15835, 691, 57133, 75751, 127717}}, +{16137, 18, 46036, {1, 3, 1, 11, 23, 51, 95, 167, 73, 739, 573, 1113, 7585, 5457, 25767, 5583, 29583, 48263}}, +{16138, 18, 46039, {1, 1, 3, 5, 9, 59, 1, 235, 17, 973, 1987, 3629, 1739, 6419, 29943, 44963, 63943, 18571}}, +{16139, 18, 46043, {1, 3, 7, 11, 9, 37, 25, 253, 307, 411, 891, 1977, 6979, 11287, 12619, 50327, 25831, 135673}}, +{16140, 18, 46045, {1, 1, 5, 15, 23, 27, 83, 157, 253, 559, 1989, 2431, 4821, 6617, 4295, 16143, 249, 109855}}, +{16141, 18, 46079, {1, 1, 3, 9, 31, 59, 117, 139, 379, 703, 49, 3013, 6383, 4019, 7289, 4567, 34931, 224967}}, +{16142, 18, 46084, {1, 1, 1, 3, 3, 33, 49, 127, 177, 417, 723, 3259, 1547, 3297, 19733, 59465, 122179, 13209}}, +{16143, 18, 46091, {1, 3, 3, 1, 3, 61, 23, 177, 77, 579, 1739, 2707, 5319, 13291, 10223, 45395, 62797, 124675}}, +{16144, 18, 46105, {1, 1, 3, 15, 25, 47, 79, 111, 245, 853, 1103, 3741, 5783, 2075, 26371, 28801, 117831, 111735}}, +{16145, 18, 46117, {1, 1, 5, 11, 3, 47, 43, 61, 75, 963, 1507, 3491, 6031, 14171, 32557, 23779, 44815, 168409}}, +{16146, 18, 46141, {1, 3, 3, 7, 21, 39, 61, 109, 13, 833, 373, 4021, 4035, 7987, 18957, 10423, 82823, 8763}}, +{16147, 18, 46147, {1, 1, 7, 3, 3, 33, 113, 77, 447, 127, 213, 1605, 3873, 12345, 7847, 63903, 80665, 6647}}, +{16148, 18, 46162, {1, 3, 1, 5, 25, 11, 49, 233, 377, 791, 43, 195, 393, 1403, 27567, 29673, 11327, 190513}}, +{16149, 18, 46184, {1, 3, 1, 15, 21, 3, 21, 169, 221, 495, 1045, 3715, 4923, 2437, 23203, 59905, 70285, 258455}}, +{16150, 18, 46197, {1, 1, 7, 13, 29, 33, 91, 153, 31, 359, 25, 3947, 1699, 4081, 20907, 24953, 64977, 88115}}, +{16151, 18, 46207, {1, 1, 5, 11, 17, 7, 17, 129, 91, 835, 139, 3823, 1827, 6787, 27367, 26801, 61513, 189677}}, +{16152, 18, 46214, {1, 3, 3, 9, 23, 21, 97, 103, 481, 859, 413, 893, 4021, 8111, 23703, 18791, 102735, 82735}}, +{16153, 18, 46218, {1, 1, 1, 7, 11, 53, 61, 3, 347, 633, 191, 3605, 41, 12605, 14381, 60403, 126223, 186157}}, +{16154, 18, 46237, {1, 3, 5, 1, 11, 33, 61, 235, 245, 623, 2019, 3289, 5761, 15557, 1685, 2173, 104825, 245139}}, +{16155, 18, 46247, {1, 1, 3, 7, 19, 55, 75, 219, 11, 75, 1765, 1833, 263, 6605, 26297, 24969, 17721, 109495}}, +{16156, 18, 46251, {1, 1, 7, 5, 7, 33, 23, 109, 207, 137, 385, 3233, 6765, 3517, 31389, 57049, 25645, 176257}}, +{16157, 18, 46327, {1, 1, 5, 5, 27, 63, 65, 23, 93, 721, 1665, 3805, 3611, 7543, 21119, 38565, 99921, 72773}}, +{16158, 18, 46333, {1, 1, 1, 13, 13, 19, 23, 5, 425, 727, 1469, 1261, 6597, 725, 27129, 36953, 25781, 191581}}, +{16159, 18, 46342, {1, 3, 3, 1, 3, 29, 25, 109, 237, 135, 409, 2239, 5033, 11007, 31861, 55171, 76313, 216271}}, +{16160, 18, 46366, {1, 3, 7, 13, 31, 33, 11, 31, 179, 67, 755, 2513, 37, 12863, 24053, 12315, 45009, 166643}}, +{16161, 18, 46376, {1, 1, 5, 13, 13, 37, 19, 223, 409, 387, 139, 3283, 243, 15573, 24173, 63271, 91561, 168665}}, +{16162, 18, 46384, {1, 3, 5, 7, 17, 25, 63, 231, 23, 965, 1873, 1021, 7927, 11127, 19553, 9883, 83009, 258991}}, +{16163, 18, 46404, {1, 3, 1, 7, 17, 21, 71, 65, 165, 845, 1739, 2395, 5959, 14803, 17333, 59003, 36477, 202511}}, +{16164, 18, 46478, {1, 3, 5, 13, 15, 57, 59, 205, 507, 41, 703, 195, 4373, 4023, 13399, 62061, 43645, 204899}}, +{16165, 18, 46511, {1, 3, 5, 11, 13, 13, 43, 19, 497, 599, 1345, 2001, 407, 2731, 16283, 55161, 130887, 189201}}, +{16166, 18, 46540, {1, 1, 7, 5, 13, 3, 105, 83, 235, 363, 869, 1715, 4031, 3419, 15149, 10627, 47787, 226107}}, +{16167, 18, 46638, {1, 3, 3, 3, 9, 49, 99, 161, 413, 739, 195, 2815, 1157, 9069, 15591, 4509, 30765, 184013}}, +{16168, 18, 46700, {1, 3, 7, 5, 25, 63, 23, 91, 507, 647, 1249, 2035, 4341, 8811, 8345, 49463, 69023, 195775}}, +{16169, 18, 46706, {1, 3, 5, 5, 5, 21, 117, 1, 321, 495, 251, 1961, 8043, 6593, 11017, 6167, 56607, 144009}}, +{16170, 18, 46745, {1, 1, 3, 3, 15, 63, 41, 177, 403, 375, 1771, 3, 7481, 4887, 799, 59283, 106319, 32155}}, +{16171, 18, 46757, {1, 1, 1, 7, 19, 57, 97, 91, 489, 561, 335, 3809, 3167, 8879, 1789, 22329, 58851, 84461}}, +{16172, 18, 46772, {1, 3, 3, 11, 3, 23, 79, 25, 187, 497, 1343, 543, 4495, 14599, 29365, 14795, 26341, 26923}}, +{16173, 18, 46776, {1, 3, 1, 13, 21, 35, 9, 227, 423, 761, 439, 3099, 5167, 12955, 12877, 5591, 123511, 74227}}, +{16174, 18, 46790, {1, 1, 3, 7, 1, 49, 115, 95, 481, 659, 183, 2337, 39, 235, 30869, 10223, 59673, 65293}}, +{16175, 18, 46794, {1, 1, 1, 13, 11, 29, 113, 37, 153, 993, 1195, 1695, 4741, 13671, 29097, 65023, 78281, 156235}}, +{16176, 18, 46804, {1, 3, 5, 11, 19, 17, 47, 243, 273, 679, 393, 4059, 705, 12473, 1867, 13783, 86821, 240545}}, +{16177, 18, 46820, {1, 3, 1, 11, 23, 35, 15, 31, 275, 261, 427, 909, 7925, 4737, 22825, 34859, 28593, 20071}}, +{16178, 18, 46849, {1, 3, 1, 1, 13, 1, 115, 115, 103, 63, 1023, 815, 7007, 6063, 13329, 28051, 29807, 109861}}, +{16179, 18, 46870, {1, 1, 1, 11, 19, 57, 49, 169, 33, 59, 579, 2409, 89, 9655, 18091, 57771, 34509, 175991}}, +{16180, 18, 46876, {1, 1, 5, 9, 27, 19, 41, 217, 313, 359, 1745, 3887, 589, 3103, 10087, 30615, 56793, 102515}}, +{16181, 18, 46903, {1, 3, 7, 11, 25, 43, 101, 245, 67, 1003, 1379, 2141, 8025, 15231, 20705, 45513, 82251, 147295}}, +{16182, 18, 46904, {1, 3, 5, 5, 5, 47, 19, 33, 107, 773, 627, 4077, 5829, 6483, 25791, 35079, 103073, 201657}}, +{16183, 18, 46907, {1, 1, 5, 15, 1, 37, 115, 15, 61, 987, 1029, 2125, 5357, 10233, 14907, 12077, 92143, 207301}}, +{16184, 18, 46932, {1, 1, 7, 7, 3, 15, 95, 3, 393, 535, 819, 743, 3613, 11459, 2269, 17083, 65547, 74813}}, +{16185, 18, 46955, {1, 1, 7, 5, 11, 27, 117, 65, 55, 87, 105, 3219, 1587, 383, 25349, 54561, 11935, 101203}}, +{16186, 18, 46963, {1, 1, 5, 15, 23, 53, 37, 149, 191, 963, 1407, 4091, 1647, 9537, 30247, 23501, 123745, 76301}}, +{16187, 18, 46991, {1, 3, 1, 1, 21, 31, 11, 107, 55, 823, 805, 141, 7177, 15883, 3307, 52245, 115171, 260589}}, +{16188, 18, 47029, {1, 3, 7, 13, 25, 15, 5, 221, 347, 83, 51, 1227, 4591, 851, 10173, 37777, 82441, 175219}}, +{16189, 18, 47036, {1, 1, 7, 15, 17, 41, 121, 215, 111, 999, 367, 1961, 3207, 10145, 10395, 24381, 95937, 12693}}, +{16190, 18, 47054, {1, 1, 1, 11, 23, 27, 117, 255, 87, 519, 599, 3471, 3983, 2797, 13477, 56479, 27321, 101585}}, +{16191, 18, 47099, {1, 1, 5, 9, 1, 3, 35, 15, 457, 209, 141, 1295, 1631, 9745, 30247, 44865, 78113, 13207}}, +{16192, 18, 47106, {1, 3, 3, 1, 27, 63, 29, 31, 277, 173, 1321, 3847, 4127, 8713, 10507, 8697, 97025, 105995}}, +{16193, 18, 47132, {1, 1, 5, 13, 13, 47, 33, 69, 113, 369, 539, 4075, 1013, 9733, 9291, 33377, 130567, 238331}}, +{16194, 18, 47145, {1, 3, 7, 13, 15, 15, 125, 219, 205, 763, 1233, 1911, 7733, 7623, 27305, 6067, 16169, 238805}}, +{16195, 18, 47151, {1, 3, 1, 9, 23, 17, 35, 175, 157, 627, 1045, 1791, 1675, 11699, 2151, 28293, 14529, 30523}}, +{16196, 18, 47156, {1, 1, 5, 9, 5, 1, 23, 151, 295, 949, 371, 3317, 2557, 5815, 9699, 48379, 104561, 103747}}, +{16197, 18, 47171, {1, 3, 5, 5, 11, 57, 125, 247, 29, 257, 979, 2437, 4391, 8229, 11231, 30145, 111165, 92347}}, +{16198, 18, 47188, {1, 1, 3, 3, 27, 17, 71, 71, 357, 367, 1213, 2549, 6049, 15299, 2891, 21839, 109889, 34643}}, +{16199, 18, 47201, {1, 1, 1, 11, 7, 21, 41, 77, 249, 567, 1947, 2989, 875, 12975, 23599, 49313, 67213, 98415}}, +{16200, 18, 47219, {1, 1, 7, 7, 27, 51, 103, 221, 295, 247, 1579, 2435, 67, 3087, 9421, 59573, 111143, 42363}}, +{16201, 18, 47226, {1, 1, 1, 13, 27, 27, 75, 33, 81, 841, 1295, 2823, 997, 16329, 6117, 43361, 63727, 113347}}, +{16202, 18, 47241, {1, 1, 1, 3, 19, 7, 43, 93, 397, 293, 803, 3021, 3915, 1417, 22255, 38529, 53737, 133705}}, +{16203, 18, 47252, {1, 3, 3, 13, 1, 33, 1, 235, 255, 345, 1621, 315, 2685, 6451, 7133, 239, 103075, 175033}}, +{16204, 18, 47261, {1, 3, 1, 11, 29, 47, 61, 115, 395, 633, 1913, 2983, 4581, 3729, 22511, 16479, 80607, 232859}}, +{16205, 18, 47295, {1, 3, 7, 7, 27, 25, 29, 121, 511, 533, 1791, 3349, 4915, 8213, 13913, 6595, 2353, 207495}}, +{16206, 18, 47297, {1, 3, 7, 5, 21, 25, 77, 189, 473, 1015, 1455, 1923, 3281, 15163, 2329, 58529, 55369, 195007}}, +{16207, 18, 47333, {1, 3, 1, 1, 25, 37, 117, 41, 207, 413, 143, 1707, 7463, 15399, 3013, 4141, 37669, 70953}}, +{16208, 18, 47337, {1, 3, 5, 3, 31, 61, 41, 157, 141, 387, 1705, 1661, 3607, 6905, 3305, 63235, 7977, 253707}}, +{16209, 18, 47360, {1, 1, 5, 11, 29, 15, 61, 127, 417, 795, 171, 415, 7935, 4553, 29979, 21153, 108811, 219959}}, +{16210, 18, 47377, {1, 1, 5, 11, 17, 61, 3, 9, 297, 53, 933, 341, 507, 2683, 15313, 24113, 78617, 191127}}, +{16211, 18, 47378, {1, 1, 7, 15, 5, 57, 65, 187, 15, 541, 1843, 731, 7331, 2479, 26259, 32685, 125259, 108693}}, +{16212, 18, 47384, {1, 1, 7, 7, 11, 15, 33, 183, 225, 609, 1755, 3531, 2767, 6267, 30823, 36797, 59699, 136769}}, +{16213, 18, 47389, {1, 3, 5, 13, 15, 19, 77, 239, 307, 691, 1165, 1327, 7901, 9299, 7777, 39151, 96261, 79791}}, +{16214, 18, 47417, {1, 1, 3, 5, 29, 31, 85, 109, 381, 243, 955, 193, 3461, 5163, 18607, 51143, 74457, 84685}}, +{16215, 18, 47420, {1, 1, 5, 9, 11, 23, 77, 247, 149, 759, 1153, 1781, 4107, 16315, 15513, 48545, 55607, 163947}}, +{16216, 18, 47426, {1, 3, 3, 5, 21, 27, 57, 61, 75, 943, 97, 1507, 4091, 671, 23023, 49095, 61649, 222401}}, +{16217, 18, 47443, {1, 1, 3, 13, 1, 3, 15, 105, 285, 255, 577, 1347, 2917, 10257, 21607, 63041, 79823, 6447}}, +{16218, 18, 47504, {1, 1, 3, 1, 17, 25, 109, 47, 445, 225, 1729, 2835, 4569, 8755, 21847, 25839, 43503, 173599}}, +{16219, 18, 47507, {1, 1, 5, 15, 19, 1, 121, 119, 33, 77, 1147, 359, 5747, 2785, 15567, 5409, 125979, 199183}}, +{16220, 18, 47510, {1, 3, 1, 9, 17, 45, 85, 83, 427, 223, 531, 1681, 2343, 14959, 27297, 54607, 70889, 45529}}, +{16221, 18, 47526, {1, 1, 5, 11, 31, 61, 109, 195, 505, 197, 159, 2799, 4517, 11549, 10297, 17415, 58277, 206577}}, +{16222, 18, 47550, {1, 1, 3, 5, 17, 43, 107, 207, 453, 161, 1775, 1287, 5775, 12417, 14201, 48187, 75073, 121099}}, +{16223, 18, 47552, {1, 1, 5, 7, 31, 27, 67, 251, 127, 443, 263, 895, 8081, 14053, 32023, 54743, 14723, 221285}}, +{16224, 18, 47557, {1, 3, 3, 13, 27, 45, 51, 47, 243, 15, 1283, 2291, 3613, 14733, 8777, 3959, 36769, 104789}}, +{16225, 18, 47564, {1, 3, 5, 1, 5, 31, 1, 139, 411, 79, 959, 1431, 2329, 3595, 19231, 55747, 18923, 223709}}, +{16226, 18, 47591, {1, 3, 1, 1, 7, 9, 69, 201, 305, 411, 459, 3201, 2525, 6977, 16249, 17777, 114321, 243831}}, +{16227, 18, 47610, {1, 3, 3, 5, 13, 7, 3, 27, 201, 279, 1253, 1725, 1481, 8885, 1233, 40699, 7267, 189095}}, +{16228, 18, 47621, {1, 3, 5, 5, 31, 61, 53, 231, 93, 597, 2027, 2179, 4517, 565, 27807, 5447, 130341, 10411}}, +{16229, 18, 47639, {1, 1, 7, 1, 9, 17, 63, 245, 405, 23, 1647, 285, 6625, 8935, 959, 29095, 657, 185511}}, +{16230, 18, 47646, {1, 1, 7, 7, 5, 15, 49, 69, 479, 585, 437, 1097, 5933, 1709, 26169, 36895, 16981, 147033}}, +{16231, 18, 47676, {1, 3, 7, 13, 29, 19, 89, 249, 195, 687, 379, 1291, 4791, 9039, 6381, 12965, 99995, 105107}}, +{16232, 18, 47682, {1, 1, 5, 7, 13, 49, 101, 217, 205, 635, 577, 3301, 911, 1793, 22285, 20163, 22593, 45701}}, +{16233, 18, 47732, {1, 3, 7, 9, 3, 21, 55, 123, 205, 309, 59, 3739, 1625, 839, 26733, 27443, 6699, 244287}}, +{16234, 18, 47741, {1, 1, 1, 11, 29, 3, 33, 57, 481, 691, 1401, 3595, 5435, 571, 6945, 10911, 94721, 89751}}, +{16235, 18, 47751, {1, 1, 3, 5, 21, 19, 23, 169, 263, 137, 771, 1995, 2211, 6287, 18691, 14219, 65647, 89885}}, +{16236, 18, 47757, {1, 1, 3, 7, 7, 53, 9, 155, 327, 325, 301, 3703, 1069, 15573, 14873, 15665, 71617, 5079}}, +{16237, 18, 47786, {1, 3, 1, 3, 27, 15, 1, 203, 465, 629, 71, 1093, 2071, 7743, 22441, 42997, 35249, 113329}}, +{16238, 18, 47803, {1, 3, 5, 3, 21, 35, 107, 73, 247, 575, 719, 3215, 3181, 5861, 25169, 6503, 12347, 196371}}, +{16239, 18, 47828, {1, 3, 1, 3, 7, 29, 117, 115, 221, 345, 165, 1367, 1491, 15791, 12647, 34679, 1043, 219311}}, +{16240, 18, 47848, {1, 3, 5, 7, 19, 47, 65, 65, 101, 323, 1209, 3185, 3803, 1077, 18933, 17081, 7475, 165133}}, +{16241, 18, 47853, {1, 1, 7, 1, 25, 9, 61, 245, 175, 201, 1837, 2119, 943, 14043, 14343, 46299, 81151, 5587}}, +{16242, 18, 47856, {1, 1, 1, 1, 31, 27, 49, 89, 387, 975, 1203, 2995, 2969, 1465, 925, 39611, 38101, 126043}}, +{16243, 18, 47862, {1, 3, 7, 13, 21, 17, 45, 139, 359, 11, 335, 79, 6629, 6137, 7879, 62735, 99493, 138943}}, +{16244, 18, 47874, {1, 3, 5, 5, 9, 23, 91, 195, 89, 195, 1931, 3855, 387, 3491, 29643, 59939, 32347, 171539}}, +{16245, 18, 47883, {1, 3, 3, 15, 21, 55, 5, 13, 139, 125, 1731, 3131, 1927, 16051, 8351, 18625, 32465, 255813}}, +{16246, 18, 47916, {1, 3, 7, 11, 21, 45, 53, 225, 33, 733, 115, 639, 4801, 5529, 11041, 3557, 83521, 37525}}, +{16247, 18, 47934, {1, 3, 7, 15, 3, 37, 111, 127, 463, 565, 543, 2593, 2203, 5719, 11667, 63735, 16481, 155613}}, +{16248, 18, 47951, {1, 1, 3, 13, 31, 1, 17, 53, 479, 629, 1517, 89, 3377, 4831, 9213, 55029, 69547, 52363}}, +{16249, 18, 47979, {1, 1, 7, 1, 5, 47, 115, 73, 59, 407, 1227, 2955, 5249, 7921, 4713, 28699, 41455, 1161}}, +{16250, 18, 48010, {1, 1, 7, 7, 5, 7, 39, 7, 97, 867, 247, 639, 3125, 14961, 19737, 52589, 59821, 96095}}, +{16251, 18, 48027, {1, 1, 7, 5, 11, 51, 63, 245, 385, 1003, 189, 4039, 6137, 3621, 13241, 55753, 14855, 50221}}, +{16252, 18, 48046, {1, 3, 5, 3, 9, 61, 83, 209, 301, 917, 259, 187, 6253, 1579, 28285, 16571, 100945, 158067}}, +{16253, 18, 48060, {1, 3, 5, 11, 5, 47, 123, 173, 253, 183, 1823, 459, 4719, 13639, 8455, 12217, 88779, 134863}}, +{16254, 18, 48065, {1, 1, 1, 5, 1, 45, 43, 163, 371, 427, 1791, 1073, 1615, 14473, 15895, 4971, 105269, 109201}}, +{16255, 18, 48075, {1, 3, 1, 15, 11, 9, 99, 99, 25, 21, 1499, 83, 6967, 12923, 13623, 27423, 4707, 477}}, +{16256, 18, 48096, {1, 1, 3, 5, 15, 49, 45, 27, 51, 391, 1849, 347, 6841, 2831, 4425, 40701, 61135, 116945}}, +{16257, 18, 48119, {1, 1, 3, 7, 21, 23, 15, 223, 403, 395, 1997, 3247, 6345, 11739, 6511, 44323, 86667, 213287}}, +{16258, 18, 48173, {1, 3, 7, 11, 31, 21, 75, 129, 427, 777, 1787, 4031, 1493, 2279, 10681, 36675, 25527, 123533}}, +{16259, 18, 48176, {1, 3, 5, 15, 9, 5, 117, 147, 259, 265, 1817, 583, 5341, 12115, 2369, 4023, 123479, 218877}}, +{16260, 18, 48186, {1, 1, 1, 15, 5, 21, 87, 57, 487, 529, 1129, 2989, 39, 5995, 28779, 35813, 97425, 5227}}, +{16261, 18, 48213, {1, 1, 7, 3, 7, 1, 41, 231, 195, 205, 1663, 3149, 4439, 8241, 3085, 43965, 58833, 216779}}, +{16262, 18, 48223, {1, 1, 3, 1, 23, 45, 65, 3, 55, 653, 131, 2425, 5653, 9105, 16921, 55221, 29241, 220927}}, +{16263, 18, 48224, {1, 3, 1, 3, 5, 47, 107, 49, 175, 957, 1287, 1299, 5215, 4141, 31697, 9371, 43339, 133933}}, +{16264, 18, 48229, {1, 3, 1, 7, 13, 55, 33, 163, 361, 793, 101, 2159, 3457, 12893, 11627, 27115, 95201, 2945}}, +{16265, 18, 48241, {1, 1, 7, 15, 11, 39, 79, 113, 385, 41, 1715, 3887, 1347, 8141, 6121, 18653, 50867, 55745}}, +{16266, 18, 48281, {1, 1, 7, 13, 3, 5, 23, 59, 223, 665, 1823, 2989, 1069, 15161, 8917, 5539, 47437, 240933}}, +{16267, 18, 48284, {1, 3, 7, 13, 13, 19, 73, 25, 413, 211, 439, 339, 1159, 16063, 9589, 33451, 28789, 118883}}, +{16268, 18, 48291, {1, 1, 5, 11, 13, 61, 81, 63, 197, 569, 961, 253, 2065, 8969, 24045, 52811, 26929, 111329}}, +{16269, 18, 48308, {1, 3, 7, 5, 19, 23, 27, 163, 37, 103, 1737, 175, 1853, 597, 14147, 46159, 26385, 69427}}, +{16270, 18, 48340, {1, 3, 7, 9, 27, 43, 45, 209, 61, 115, 645, 1149, 1473, 10557, 8541, 51703, 29207, 92059}}, +{16271, 18, 48344, {1, 1, 5, 5, 25, 53, 123, 243, 493, 403, 485, 1505, 6879, 1921, 13569, 28271, 24407, 73057}}, +{16272, 18, 48368, {1, 1, 3, 11, 15, 31, 99, 29, 503, 819, 55, 773, 2993, 15341, 7625, 12835, 28555, 200609}}, +{16273, 18, 48400, {1, 1, 7, 9, 21, 49, 47, 207, 13, 571, 57, 1727, 7441, 1703, 4253, 64851, 113, 180273}}, +{16274, 18, 48406, {1, 3, 3, 9, 23, 1, 1, 53, 195, 569, 925, 1969, 3031, 14371, 17673, 39163, 11819, 117573}}, +{16275, 18, 48409, {1, 1, 1, 11, 5, 3, 103, 133, 447, 1015, 1049, 3283, 7507, 233, 13721, 50721, 75511, 227561}}, +{16276, 18, 48421, {1, 3, 1, 1, 17, 59, 79, 105, 503, 173, 1575, 1563, 5807, 12841, 7983, 28209, 27527, 229919}}, +{16277, 18, 48448, {1, 1, 3, 9, 3, 41, 125, 213, 361, 939, 161, 2235, 2575, 13519, 7957, 21527, 40693, 51055}}, +{16278, 18, 48453, {1, 3, 7, 11, 11, 7, 117, 21, 7, 745, 1109, 3393, 953, 5163, 19909, 49121, 85061, 209555}}, +{16279, 18, 48457, {1, 1, 7, 5, 27, 59, 127, 199, 119, 461, 653, 497, 5867, 767, 16373, 21201, 87589, 171491}}, +{16280, 18, 48478, {1, 1, 7, 11, 7, 21, 121, 97, 17, 827, 1191, 113, 6527, 14977, 32567, 15191, 104541, 140359}}, +{16281, 18, 48493, {1, 1, 7, 13, 19, 29, 127, 207, 233, 511, 43, 3177, 7963, 5559, 24185, 13373, 37853, 150537}}, +{16282, 18, 48527, {1, 3, 3, 9, 15, 17, 119, 201, 443, 51, 17, 605, 4191, 5251, 28903, 4861, 92571, 143499}}, +{16283, 18, 48583, {1, 1, 5, 11, 21, 45, 111, 245, 115, 705, 1267, 3013, 7907, 14973, 30499, 44117, 118229, 136571}}, +{16284, 18, 48597, {1, 3, 7, 7, 31, 35, 69, 143, 269, 27, 1365, 775, 6067, 11477, 28475, 54573, 92827, 226459}}, +{16285, 18, 48641, {1, 1, 5, 1, 1, 29, 41, 189, 423, 245, 1031, 1667, 3465, 1491, 26787, 53851, 26189, 215443}}, +{16286, 18, 48668, {1, 3, 3, 5, 23, 29, 97, 141, 135, 249, 767, 3627, 7867, 9311, 25411, 38325, 118643, 128453}}, +{16287, 18, 48671, {1, 3, 7, 13, 3, 25, 61, 121, 285, 401, 1099, 2327, 5509, 16127, 2363, 52395, 114233, 216013}}, +{16288, 18, 48682, {1, 1, 1, 13, 7, 37, 83, 151, 447, 605, 289, 2941, 6273, 5945, 7493, 29805, 34935, 101177}}, +{16289, 18, 48709, {1, 1, 7, 13, 31, 51, 125, 9, 321, 293, 489, 4023, 2425, 7645, 2927, 20973, 111223, 71255}}, +{16290, 18, 48719, {1, 1, 7, 3, 27, 9, 59, 143, 307, 543, 1995, 111, 5807, 4641, 3581, 2421, 64213, 187567}}, +{16291, 18, 48731, {1, 3, 3, 9, 23, 33, 47, 81, 441, 995, 213, 3501, 1003, 9885, 24101, 58767, 49507, 30525}}, +{16292, 18, 48780, {1, 3, 1, 3, 19, 51, 117, 53, 49, 167, 1799, 1421, 2473, 3183, 14421, 58621, 130703, 48095}}, +{16293, 18, 48791, {1, 1, 7, 7, 5, 25, 33, 237, 447, 377, 517, 2047, 4357, 2747, 16491, 23935, 21655, 144151}}, +{16294, 18, 48797, {1, 1, 7, 7, 17, 5, 57, 67, 89, 897, 1163, 3517, 1651, 6745, 23449, 2853, 43829, 50707}}, +{16295, 18, 48807, {1, 1, 1, 13, 5, 45, 87, 139, 339, 1021, 649, 2957, 7887, 11957, 11235, 11063, 77329, 93121}}, +{16296, 18, 48811, {1, 1, 1, 7, 11, 35, 73, 241, 11, 287, 551, 207, 4701, 2031, 27191, 44337, 35577, 226387}}, +{16297, 18, 48814, {1, 3, 5, 11, 19, 3, 41, 211, 29, 913, 1455, 2525, 3935, 5581, 8043, 12033, 97479, 73521}}, +{16298, 18, 48821, {1, 3, 5, 7, 15, 49, 53, 185, 229, 161, 121, 3407, 903, 7257, 19535, 42197, 3983, 222077}}, +{16299, 18, 48836, {1, 1, 5, 7, 17, 33, 61, 121, 343, 111, 151, 1147, 3743, 2423, 24151, 42307, 50711, 140317}}, +{16300, 18, 48846, {1, 3, 3, 7, 27, 1, 119, 209, 243, 185, 1253, 2307, 7659, 7839, 9697, 16799, 5189, 130005}}, +{16301, 18, 48848, {1, 3, 3, 1, 27, 21, 115, 175, 157, 735, 1233, 1133, 1763, 1125, 4667, 42569, 125185, 218417}}, +{16302, 18, 48854, {1, 3, 5, 9, 5, 37, 97, 165, 87, 447, 1491, 3141, 597, 10651, 9727, 65163, 2469, 141859}}, +{16303, 18, 48874, {1, 1, 5, 13, 11, 53, 111, 123, 423, 413, 1519, 3715, 6623, 15415, 24085, 20925, 1529, 85183}}, +{16304, 18, 48908, {1, 3, 7, 1, 31, 45, 93, 45, 363, 779, 443, 3687, 6051, 11683, 31733, 57251, 55087, 240877}}, +{16305, 18, 48929, {1, 1, 1, 15, 1, 17, 53, 237, 131, 673, 1919, 1531, 7455, 5043, 1709, 23375, 75657, 194393}}, +{16306, 18, 48941, {1, 3, 5, 9, 21, 3, 101, 141, 387, 887, 1329, 2627, 2865, 2685, 20273, 18901, 43805, 181049}}, +{16307, 18, 48954, {1, 3, 5, 5, 7, 49, 55, 243, 311, 653, 959, 3157, 4891, 8777, 14381, 28105, 119323, 181129}}, +{16308, 18, 48961, {1, 1, 1, 9, 17, 33, 97, 123, 71, 5, 793, 2829, 4385, 8577, 9927, 26213, 53287, 203555}}, +{16309, 18, 48962, {1, 1, 1, 9, 15, 61, 51, 31, 195, 1003, 1915, 2349, 5319, 13411, 15265, 36321, 76157, 200437}}, +{16310, 18, 48985, {1, 3, 1, 13, 19, 41, 11, 227, 447, 395, 1885, 2953, 3537, 3855, 21611, 14547, 106573, 233205}}, +{16311, 18, 49001, {1, 3, 1, 11, 1, 1, 7, 61, 69, 631, 1687, 1131, 6901, 5801, 14431, 17807, 35777, 253941}}, +{16312, 18, 49007, {1, 3, 5, 9, 15, 47, 71, 145, 419, 401, 1781, 2031, 3157, 14483, 2393, 4061, 122053, 81701}}, +{16313, 18, 49015, {1, 3, 7, 13, 23, 21, 67, 147, 137, 277, 259, 3119, 4785, 5349, 3193, 21805, 108265, 231111}}, +{16314, 18, 49035, {1, 1, 3, 9, 23, 63, 77, 153, 75, 643, 1341, 3607, 6001, 3387, 17485, 17893, 124699, 99515}}, +{16315, 18, 49062, {1, 1, 7, 11, 9, 51, 79, 255, 255, 723, 1797, 2805, 2505, 3437, 4835, 30731, 73741, 8051}}, +{16316, 18, 49066, {1, 1, 5, 7, 5, 19, 73, 75, 19, 889, 1443, 2263, 5773, 9997, 329, 46679, 82313, 130897}}, +{16317, 18, 49085, {1, 3, 3, 9, 7, 53, 69, 11, 287, 861, 1367, 1433, 2693, 16255, 6785, 24705, 77463, 231247}}, +{16318, 18, 49091, {1, 1, 3, 7, 21, 15, 115, 131, 169, 447, 1731, 2873, 119, 643, 31719, 22193, 17959, 150567}}, +{16319, 18, 49094, {1, 3, 3, 9, 23, 21, 7, 39, 185, 837, 379, 3687, 3751, 14801, 15231, 7239, 77521, 80135}}, +{16320, 18, 49127, {1, 1, 1, 1, 7, 33, 93, 247, 487, 873, 1951, 3273, 551, 3735, 29477, 62387, 30361, 145613}}, +{16321, 18, 49134, {1, 1, 3, 7, 5, 47, 17, 31, 93, 517, 1175, 1033, 7421, 75, 541, 1967, 13059, 104751}}, +{16322, 18, 49183, {1, 3, 5, 3, 19, 23, 123, 115, 99, 747, 655, 2885, 2991, 7497, 5989, 33419, 54363, 224947}}, +{16323, 18, 49221, {1, 3, 3, 1, 15, 9, 51, 3, 307, 879, 1065, 1835, 2267, 11299, 21995, 2997, 102207, 39}}, +{16324, 18, 49231, {1, 3, 5, 3, 9, 19, 19, 79, 499, 121, 951, 1151, 379, 5299, 13727, 49061, 32605, 208683}}, +{16325, 18, 49250, {1, 3, 7, 7, 23, 41, 71, 23, 493, 969, 271, 3729, 6199, 14693, 17625, 52509, 121257, 151175}}, +{16326, 18, 49252, {1, 1, 7, 15, 9, 51, 61, 9, 147, 527, 803, 3255, 723, 3241, 23961, 17497, 122569, 50863}}, +{16327, 18, 49270, {1, 3, 5, 1, 19, 19, 31, 31, 95, 667, 377, 1193, 6759, 8583, 29801, 7989, 113899, 43481}}, +{16328, 18, 49297, {1, 3, 7, 5, 17, 47, 1, 7, 305, 489, 1035, 1335, 5901, 9635, 10433, 4235, 108577, 52661}}, +{16329, 18, 49313, {1, 1, 7, 3, 15, 7, 105, 189, 429, 287, 679, 111, 2087, 8479, 3053, 21763, 65655, 16207}}, +{16330, 18, 49340, {1, 3, 5, 13, 19, 41, 45, 115, 311, 653, 1301, 3797, 6183, 7203, 9829, 13263, 71649, 255611}}, +{16331, 18, 49365, {1, 3, 1, 9, 21, 33, 19, 233, 83, 423, 1701, 347, 3999, 11885, 19699, 61931, 63895, 59615}}, +{16332, 18, 49379, {1, 1, 7, 7, 15, 19, 61, 43, 183, 223, 1135, 3099, 3137, 16181, 31019, 20151, 30169, 13125}}, +{16333, 18, 49386, {1, 1, 1, 11, 9, 11, 3, 157, 495, 207, 603, 1919, 3565, 7639, 4281, 49179, 2465, 224033}}, +{16334, 18, 49391, {1, 3, 1, 13, 13, 19, 127, 81, 475, 659, 1053, 3153, 5223, 12567, 30945, 47109, 98253, 41571}}, +{16335, 18, 49417, {1, 1, 5, 11, 19, 1, 9, 67, 501, 149, 1695, 1265, 6467, 5285, 29865, 46777, 97581, 209395}}, +{16336, 18, 49438, {1, 1, 1, 11, 21, 23, 123, 103, 419, 787, 111, 3327, 673, 3425, 8097, 2411, 107353, 121379}}, +{16337, 18, 49444, {1, 1, 3, 3, 17, 7, 87, 35, 501, 973, 351, 751, 4813, 12245, 3053, 38633, 44995, 37151}}, +{16338, 18, 49453, {1, 3, 5, 15, 7, 57, 99, 53, 3, 355, 153, 3897, 6923, 2075, 10821, 41819, 75665, 21237}}, +{16339, 18, 49454, {1, 3, 5, 9, 3, 29, 85, 115, 191, 977, 1067, 1539, 5287, 3589, 18017, 35571, 41633, 148565}}, +{16340, 18, 49480, {1, 1, 3, 9, 9, 57, 1, 63, 333, 107, 1173, 3377, 3599, 277, 20643, 19295, 91169, 168891}}, +{16341, 18, 49485, {1, 1, 5, 13, 21, 7, 55, 15, 79, 995, 1553, 949, 6357, 8137, 9539, 861, 95635, 63021}}, +{16342, 18, 49498, {1, 1, 5, 13, 31, 59, 11, 55, 159, 449, 307, 2725, 2305, 8259, 13823, 51225, 44775, 54253}}, +{16343, 18, 49513, {1, 3, 3, 15, 19, 61, 105, 19, 211, 693, 835, 3607, 3703, 14007, 24597, 47109, 49855, 166115}}, +{16344, 18, 49527, {1, 3, 1, 9, 27, 33, 81, 229, 445, 171, 247, 2019, 5227, 8759, 30155, 1851, 26909, 47145}}, +{16345, 18, 49531, {1, 1, 3, 5, 23, 1, 57, 49, 177, 451, 1283, 3859, 4719, 13507, 29439, 9155, 129585, 94713}}, +{16346, 18, 49564, {1, 3, 3, 5, 1, 9, 37, 23, 423, 611, 113, 119, 4307, 11747, 93, 51213, 5479, 172061}}, +{16347, 18, 49588, {1, 3, 3, 15, 5, 35, 9, 43, 423, 877, 1563, 3411, 4233, 6961, 22421, 7347, 39553, 199745}}, +{16348, 18, 49609, {1, 3, 1, 9, 15, 35, 85, 57, 151, 323, 1627, 27, 3603, 11475, 6561, 6091, 72099, 185321}}, +{16349, 18, 49617, {1, 1, 3, 15, 17, 21, 3, 119, 455, 147, 1077, 3955, 1355, 3083, 28217, 50745, 114445, 46563}}, +{16350, 18, 49645, {1, 1, 5, 3, 13, 11, 35, 185, 357, 447, 649, 139, 2847, 12011, 7753, 671, 113693, 236281}}, +{16351, 18, 49646, {1, 3, 5, 1, 19, 27, 117, 195, 67, 259, 1073, 81, 5527, 6829, 26675, 60029, 8159, 13553}}, +{16352, 18, 49654, {1, 3, 3, 7, 27, 63, 115, 191, 431, 191, 1547, 2261, 6527, 13459, 12773, 37485, 114847, 61709}}, +{16353, 18, 49697, {1, 1, 3, 1, 29, 63, 47, 77, 415, 191, 325, 2487, 7457, 13721, 1573, 15037, 31941, 226651}}, +{16354, 18, 49718, {1, 1, 5, 11, 29, 59, 49, 209, 195, 901, 691, 3167, 7471, 11609, 30135, 22067, 71395, 248151}}, +{16355, 18, 49741, {1, 3, 7, 11, 7, 43, 55, 69, 289, 735, 1479, 139, 1395, 6463, 19827, 52151, 18963, 103367}}, +{16356, 18, 49754, {1, 3, 5, 5, 27, 45, 77, 79, 89, 79, 913, 1437, 3337, 8861, 5477, 46195, 105869, 242599}}, +{16357, 18, 49756, {1, 3, 5, 3, 3, 27, 103, 207, 233, 995, 1173, 1143, 3517, 3207, 8373, 45145, 79687, 150107}}, +{16358, 18, 49833, {1, 3, 7, 3, 7, 37, 1, 137, 45, 479, 861, 3863, 4249, 3075, 23639, 12531, 118473, 255805}}, +{16359, 18, 49834, {1, 1, 1, 9, 7, 23, 125, 57, 347, 215, 1749, 3029, 97, 14715, 16213, 29291, 104725, 92043}}, +{16360, 18, 49879, {1, 3, 3, 15, 31, 39, 111, 97, 369, 675, 1471, 3889, 6437, 1499, 13325, 46141, 121087, 202493}}, +{16361, 18, 49942, {1, 1, 1, 15, 15, 21, 3, 167, 251, 793, 1291, 427, 6407, 15521, 15441, 20071, 54513, 200485}}, +{16362, 18, 49946, {1, 1, 7, 11, 27, 47, 123, 195, 241, 385, 609, 2323, 1221, 815, 279, 28553, 17663, 180977}}, +{16363, 18, 49982, {1, 1, 3, 15, 23, 53, 21, 19, 329, 903, 561, 1539, 2829, 13037, 29867, 27825, 84005, 14853}}, +{16364, 18, 49994, {1, 1, 5, 1, 21, 27, 103, 99, 31, 829, 515, 3949, 3635, 935, 2127, 56659, 123477, 47003}}, +{16365, 18, 50001, {1, 3, 1, 11, 17, 63, 51, 15, 319, 539, 55, 2561, 1109, 16115, 23387, 20051, 120867, 4019}}, +{16366, 18, 50023, {1, 3, 3, 7, 31, 11, 45, 251, 209, 21, 553, 887, 393, 15183, 14735, 13163, 123681, 15013}}, +{16367, 18, 50047, {1, 3, 1, 7, 21, 41, 105, 39, 213, 477, 985, 2375, 937, 7099, 8867, 36519, 60503, 143225}}, +{16368, 18, 50120, {1, 3, 1, 1, 19, 55, 73, 171, 379, 271, 791, 2477, 5381, 1703, 3805, 37227, 55553, 34549}}, +{16369, 18, 50133, {1, 1, 5, 5, 29, 51, 127, 111, 209, 663, 975, 2293, 8155, 11263, 7891, 15463, 74889, 227403}}, +{16370, 18, 50137, {1, 3, 5, 1, 15, 1, 115, 221, 23, 247, 1597, 87, 7513, 3329, 14491, 8961, 78147, 89499}}, +{16371, 18, 50140, {1, 3, 5, 15, 25, 23, 99, 85, 189, 487, 1559, 427, 6179, 5291, 27279, 65507, 77347, 177073}}, +{16372, 18, 50156, {1, 3, 7, 1, 23, 35, 7, 89, 455, 659, 2039, 3115, 4057, 139, 1269, 62319, 13629, 201571}}, +{16373, 18, 50199, {1, 1, 1, 5, 9, 47, 55, 171, 213, 813, 135, 1545, 1421, 4055, 26697, 18889, 57653, 201369}}, +{16374, 18, 50205, {1, 3, 1, 11, 9, 45, 5, 69, 261, 907, 1229, 1371, 1867, 1771, 17309, 41759, 119129, 43521}}, +{16375, 18, 50215, {1, 1, 7, 5, 11, 27, 9, 237, 405, 53, 1359, 3665, 169, 3547, 23331, 14353, 106627, 219711}}, +{16376, 18, 50216, {1, 3, 3, 5, 17, 23, 9, 41, 81, 601, 1447, 3225, 6721, 161, 16109, 54331, 111273, 81061}}, +{16377, 18, 50224, {1, 1, 5, 7, 7, 37, 71, 13, 505, 671, 425, 2771, 1131, 1259, 13715, 45779, 114839, 217499}}, +{16378, 18, 50229, {1, 1, 1, 5, 9, 51, 85, 223, 117, 403, 1117, 723, 2465, 11947, 7495, 62991, 17825, 169147}}, +{16379, 18, 50233, {1, 1, 3, 13, 5, 57, 47, 35, 313, 901, 365, 1265, 137, 6335, 31419, 38497, 93285, 177187}}, +{16380, 18, 50251, {1, 3, 5, 5, 7, 9, 21, 109, 47, 557, 1449, 3459, 5175, 5135, 727, 55425, 60593, 86571}}, +{16381, 18, 50281, {1, 3, 7, 5, 1, 17, 119, 239, 347, 75, 1345, 2765, 1491, 16297, 25233, 60401, 85433, 59287}}, +{16382, 18, 50326, {1, 1, 5, 5, 19, 57, 41, 53, 161, 475, 1791, 3617, 1651, 15227, 30357, 63547, 69937, 246473}}, +{16383, 18, 50332, {1, 3, 7, 11, 11, 43, 79, 79, 195, 437, 39, 1259, 6041, 14989, 6615, 58747, 43583, 246979}}, +{16384, 18, 50348, {1, 1, 7, 9, 11, 13, 49, 133, 365, 931, 1089, 713, 5997, 8759, 5789, 61329, 22639, 149845}}, +{16385, 18, 50359, {1, 3, 7, 13, 9, 3, 11, 253, 339, 883, 1933, 443, 4265, 14165, 15845, 12625, 1453, 70961}}, +{16386, 18, 50374, {1, 1, 7, 13, 21, 35, 113, 83, 473, 719, 1601, 1727, 3715, 631, 28075, 17725, 11393, 116883}}, +{16387, 18, 50404, {1, 3, 7, 7, 7, 13, 117, 83, 365, 529, 1297, 3903, 2633, 9617, 15819, 38137, 49065, 189445}}, +{16388, 18, 50443, {1, 1, 1, 7, 11, 41, 107, 33, 381, 395, 1993, 2819, 3301, 7543, 6787, 27437, 113681, 132403}}, +{16389, 18, 50488, {1, 1, 1, 1, 3, 59, 91, 235, 67, 987, 1587, 1119, 5851, 13201, 1125, 49709, 381, 183295}}, +{16390, 18, 50493, {1, 3, 5, 9, 3, 33, 45, 187, 455, 151, 823, 565, 5725, 1927, 25387, 61785, 130271, 134083}}, +{16391, 18, 50505, {1, 1, 7, 5, 15, 25, 63, 231, 133, 401, 307, 2961, 4249, 2639, 10207, 8349, 8203, 72783}}, +{16392, 18, 50511, {1, 1, 5, 13, 19, 27, 43, 153, 165, 815, 1385, 3041, 853, 7683, 1035, 13255, 69779, 128765}}, +{16393, 18, 50525, {1, 1, 1, 3, 31, 61, 97, 15, 327, 717, 841, 643, 4781, 11609, 14181, 14625, 75369, 251015}}, +{16394, 18, 50542, {1, 1, 5, 11, 17, 33, 9, 45, 111, 91, 1923, 967, 5649, 13647, 30497, 2925, 18395, 255089}}, +{16395, 18, 50550, {1, 3, 3, 1, 3, 55, 33, 29, 101, 211, 1731, 2351, 7389, 14935, 29703, 60031, 122305, 174323}}, +{16396, 18, 50560, {1, 1, 1, 3, 13, 23, 79, 117, 367, 267, 143, 1537, 3159, 2303, 9653, 12029, 2841, 226971}}, +{16397, 18, 50570, {1, 1, 1, 13, 19, 57, 103, 159, 315, 895, 1879, 2153, 1901, 7635, 14145, 56495, 6203, 151203}}, +{16398, 18, 50587, {1, 3, 3, 11, 31, 11, 75, 5, 419, 963, 1809, 3751, 7291, 12697, 2841, 17965, 91707, 80361}}, +{16399, 18, 50593, {1, 1, 7, 7, 5, 23, 29, 199, 413, 501, 19, 697, 6523, 3997, 4945, 59817, 127613, 220399}}, +{16400, 18, 50611, {1, 1, 7, 5, 1, 17, 51, 9, 183, 689, 325, 2391, 2095, 1907, 10325, 51045, 20097, 33719}}, +{16401, 18, 50649, {1, 3, 5, 11, 3, 33, 45, 221, 325, 7, 253, 1323, 4959, 14067, 10035, 39463, 123171, 194581}}, +{16402, 18, 50656, {1, 1, 3, 3, 15, 45, 25, 57, 357, 907, 1249, 3279, 2631, 9209, 7857, 58233, 29049, 173859}}, +{16403, 18, 50685, {1, 3, 3, 9, 29, 39, 105, 55, 295, 583, 825, 1777, 2403, 9489, 9079, 24855, 18155, 252733}}, +{16404, 18, 50686, {1, 1, 5, 15, 5, 63, 77, 215, 287, 743, 1937, 2103, 2673, 15487, 27855, 46683, 120215, 89721}}, +{16405, 18, 50692, {1, 3, 3, 5, 27, 1, 45, 19, 309, 679, 1405, 415, 6107, 13567, 5803, 61941, 130285, 51847}}, +{16406, 18, 50702, {1, 3, 1, 15, 23, 49, 47, 113, 401, 825, 1299, 2711, 6509, 12225, 16147, 20615, 121305, 121937}}, +{16407, 18, 50704, {1, 3, 5, 5, 31, 41, 31, 57, 385, 919, 593, 1371, 6773, 12099, 23767, 17663, 128321, 188921}}, +{16408, 18, 50709, {1, 1, 3, 15, 5, 41, 17, 7, 479, 143, 549, 1827, 8107, 14775, 28817, 12297, 119893, 191297}}, +{16409, 18, 50720, {1, 3, 7, 5, 29, 61, 27, 123, 269, 223, 121, 1745, 3513, 1989, 9759, 8129, 78933, 40085}}, +{16410, 18, 50726, {1, 1, 5, 13, 23, 49, 125, 225, 479, 123, 41, 2359, 4443, 4729, 31717, 3139, 3869, 118803}}, +{16411, 18, 50729, {1, 3, 3, 3, 15, 7, 7, 87, 415, 95, 1799, 2009, 4711, 15635, 21997, 47201, 16815, 99815}}, +{16412, 18, 50737, {1, 3, 3, 1, 31, 57, 73, 31, 423, 363, 1469, 2411, 6449, 15275, 14189, 51079, 130201, 130181}}, +{16413, 18, 50758, {1, 1, 5, 3, 3, 31, 107, 11, 355, 647, 1463, 3019, 3263, 13727, 10461, 26577, 4439, 132737}}, +{16414, 18, 50772, {1, 1, 1, 7, 13, 55, 31, 227, 71, 563, 1467, 3733, 725, 3443, 19279, 4111, 35749, 62275}}, +{16415, 18, 50849, {1, 3, 3, 15, 9, 17, 61, 95, 43, 583, 1381, 1285, 2655, 9213, 27551, 16237, 29569, 216879}}, +{16416, 18, 50850, {1, 1, 1, 3, 29, 3, 87, 193, 53, 599, 1581, 907, 4381, 8697, 27299, 40259, 122653, 43559}}, +{16417, 18, 50881, {1, 3, 5, 3, 15, 49, 21, 27, 35, 353, 1281, 3253, 7339, 9333, 25253, 35035, 30379, 87387}}, +{16418, 18, 50901, {1, 1, 1, 15, 7, 27, 69, 41, 45, 729, 1005, 3495, 1445, 7421, 27443, 29609, 70105, 93883}}, +{16419, 18, 50906, {1, 1, 7, 7, 1, 41, 15, 149, 107, 121, 639, 3703, 3397, 1727, 14165, 2845, 78531, 175767}}, +{16420, 18, 50915, {1, 3, 7, 15, 27, 17, 121, 175, 399, 551, 1889, 2283, 4343, 3633, 653, 3267, 101901, 162157}}, +{16421, 18, 50961, {1, 3, 3, 15, 23, 41, 97, 251, 435, 955, 69, 509, 8001, 11783, 7397, 7587, 127089, 15391}}, +{16422, 18, 50992, {1, 3, 5, 5, 25, 25, 63, 25, 203, 655, 2039, 2545, 5405, 1377, 30543, 65531, 122825, 6853}}, +{16423, 18, 50997, {1, 1, 7, 9, 9, 43, 73, 195, 465, 497, 1085, 3821, 7115, 7513, 21913, 32499, 96467, 181905}}, +{16424, 18, 51001, {1, 1, 3, 7, 29, 29, 63, 131, 409, 423, 687, 2549, 7367, 6867, 2685, 29137, 61845, 194409}}, +{16425, 18, 51004, {1, 3, 7, 7, 3, 23, 47, 31, 121, 629, 1771, 2387, 861, 2269, 29565, 19599, 18051, 121531}}, +{16426, 18, 51033, {1, 1, 1, 3, 21, 13, 109, 105, 163, 433, 521, 3467, 6225, 3705, 30605, 3265, 119313, 2535}}, +{16427, 18, 51045, {1, 3, 5, 3, 25, 25, 89, 177, 415, 67, 361, 3317, 6411, 4857, 23249, 41959, 59931, 35797}}, +{16428, 18, 51052, {1, 3, 7, 15, 5, 37, 37, 65, 71, 13, 1621, 2217, 3723, 2113, 23755, 46521, 48091, 44307}}, +{16429, 18, 51064, {1, 1, 5, 13, 5, 5, 63, 75, 61, 443, 1663, 3239, 7717, 2623, 5723, 42673, 8519, 58773}}, +{16430, 18, 51085, {1, 1, 3, 1, 29, 13, 35, 61, 391, 517, 1007, 17, 2519, 7121, 20095, 33449, 21397, 103787}}, +{16431, 18, 51127, {1, 1, 5, 1, 9, 45, 49, 151, 39, 347, 1821, 2687, 1551, 12117, 29429, 40963, 77795, 20941}}, +{16432, 18, 51139, {1, 1, 5, 3, 13, 49, 107, 105, 201, 601, 1335, 2389, 6837, 11123, 22985, 62705, 59057, 128333}}, +{16433, 18, 51153, {1, 3, 3, 13, 5, 3, 21, 103, 481, 621, 2037, 2963, 425, 4685, 27475, 24363, 116419, 171743}}, +{16434, 18, 51181, {1, 3, 3, 5, 27, 27, 5, 91, 245, 421, 795, 1869, 6455, 4463, 23467, 24039, 69681, 262127}}, +{16435, 18, 51182, {1, 3, 1, 11, 11, 5, 31, 253, 469, 593, 877, 2041, 4615, 1541, 11823, 58525, 128689, 95985}}, +{16436, 18, 51194, {1, 3, 5, 13, 31, 35, 115, 73, 97, 213, 1499, 1371, 4239, 7897, 3987, 4833, 115043, 222743}}, +{16437, 18, 51196, {1, 3, 3, 5, 31, 15, 17, 233, 137, 521, 1721, 1913, 1881, 13457, 10733, 61527, 19825, 192601}}, +{16438, 18, 51200, {1, 3, 1, 3, 11, 21, 81, 77, 377, 915, 321, 3925, 867, 5491, 4707, 37307, 52141, 29155}}, +{16439, 18, 51239, {1, 1, 5, 1, 13, 51, 97, 161, 295, 159, 1717, 3817, 4687, 1907, 2655, 60577, 73867, 161851}}, +{16440, 18, 51240, {1, 1, 3, 13, 21, 31, 33, 145, 375, 377, 1429, 1981, 4851, 9047, 2685, 49037, 67399, 124243}}, +{16441, 18, 51254, {1, 1, 7, 13, 1, 55, 65, 147, 471, 277, 1585, 3949, 1885, 1635, 15687, 46367, 120931, 192097}}, +{16442, 18, 51260, {1, 1, 7, 9, 13, 27, 33, 41, 377, 863, 1297, 181, 2685, 11285, 3961, 63201, 59757, 70231}}, +{16443, 18, 51342, {1, 1, 3, 15, 29, 3, 79, 25, 147, 683, 1563, 805, 5891, 3355, 20113, 48261, 38195, 14589}}, +{16444, 18, 51370, {1, 1, 7, 11, 9, 15, 21, 33, 47, 923, 1291, 4001, 203, 305, 21575, 41915, 74769, 114921}}, +{16445, 18, 51372, {1, 3, 7, 11, 15, 1, 75, 173, 473, 493, 291, 811, 931, 10731, 9855, 57891, 81575, 250565}}, +{16446, 18, 51377, {1, 3, 3, 3, 31, 31, 71, 141, 389, 661, 71, 3245, 6827, 9219, 26607, 50511, 94783, 130785}}, +{16447, 18, 51398, {1, 1, 7, 3, 9, 15, 67, 141, 293, 779, 3, 3311, 7063, 13709, 29715, 55227, 11043, 150343}}, +{16448, 18, 51402, {1, 3, 3, 3, 21, 9, 45, 111, 207, 715, 345, 1345, 3079, 3851, 23709, 33919, 108213, 25353}}, +{16449, 18, 51407, {1, 3, 5, 13, 7, 3, 35, 95, 397, 397, 1159, 2759, 5233, 16237, 12469, 29543, 39133, 64429}}, +{16450, 18, 51410, {1, 1, 5, 13, 19, 35, 9, 7, 153, 843, 2025, 1379, 3361, 15889, 7411, 26399, 106295, 19851}}, +{16451, 18, 51412, {1, 3, 1, 1, 21, 15, 71, 143, 279, 431, 487, 967, 4445, 11969, 16671, 48891, 59605, 230607}}, +{16452, 18, 51419, {1, 3, 5, 1, 25, 63, 23, 143, 221, 805, 377, 1441, 1971, 1985, 10055, 35991, 115873, 223455}}, +{16453, 18, 51428, {1, 3, 1, 7, 21, 57, 1, 185, 117, 75, 1623, 3805, 2385, 10245, 29009, 59149, 130219, 114763}}, +{16454, 18, 51431, {1, 3, 1, 13, 19, 13, 105, 241, 47, 597, 1725, 2579, 3785, 1667, 12427, 62623, 60883, 189977}}, +{16455, 18, 51460, {1, 3, 5, 13, 1, 55, 59, 133, 263, 415, 1013, 139, 3037, 13661, 15303, 27279, 84095, 184807}}, +{16456, 18, 51475, {1, 3, 1, 11, 7, 45, 3, 179, 315, 639, 875, 3299, 5221, 8463, 17507, 59673, 73865, 98867}}, +{16457, 18, 51477, {1, 3, 7, 7, 3, 3, 53, 233, 219, 519, 585, 3029, 3623, 9559, 2251, 43735, 121513, 208007}}, +{16458, 18, 51478, {1, 3, 1, 3, 17, 47, 47, 145, 445, 541, 163, 2653, 165, 7213, 3311, 57335, 43967, 191841}}, +{16459, 18, 51482, {1, 3, 5, 5, 7, 47, 39, 119, 13, 727, 887, 3743, 3807, 15267, 3977, 52833, 14851, 61851}}, +{16460, 18, 51511, {1, 1, 3, 5, 9, 9, 107, 119, 501, 723, 1965, 3093, 6947, 1783, 11287, 24243, 14005, 106677}}, +{16461, 18, 51518, {1, 3, 3, 11, 11, 29, 85, 243, 359, 195, 221, 1767, 6969, 15275, 20853, 26921, 40903, 29849}}, +{16462, 18, 51568, {1, 3, 1, 5, 31, 3, 11, 247, 371, 339, 1263, 119, 791, 7425, 18879, 11333, 34359, 178929}}, +{16463, 18, 51607, {1, 1, 3, 7, 23, 15, 121, 203, 441, 499, 779, 1971, 339, 8737, 6859, 32417, 97073, 256143}}, +{16464, 18, 51618, {1, 1, 5, 11, 3, 23, 25, 51, 407, 677, 97, 281, 427, 3671, 7939, 54485, 3967, 210199}}, +{16465, 18, 51630, {1, 1, 5, 9, 5, 45, 23, 171, 255, 967, 313, 3881, 6039, 10545, 3591, 51985, 37145, 99291}}, +{16466, 18, 51655, {1, 1, 5, 7, 3, 13, 55, 147, 83, 369, 1707, 1919, 491, 11507, 29559, 29169, 65897, 80587}}, +{16467, 18, 51673, {1, 1, 3, 13, 31, 41, 41, 237, 245, 109, 969, 1797, 8169, 6351, 3657, 9655, 109201, 245117}}, +{16468, 18, 51683, {1, 3, 7, 5, 17, 23, 17, 219, 473, 1, 865, 1949, 7589, 10107, 3035, 19903, 79579, 138695}}, +{16469, 18, 51709, {1, 3, 1, 15, 13, 57, 109, 117, 277, 773, 31, 3807, 7615, 2453, 22655, 51513, 108367, 248473}}, +{16470, 18, 51716, {1, 1, 7, 11, 17, 59, 27, 167, 63, 931, 13, 3721, 1789, 7621, 31093, 27541, 37283, 35193}}, +{16471, 18, 51774, {1, 3, 3, 11, 13, 9, 7, 85, 45, 151, 1865, 4049, 4433, 9517, 231, 30733, 93701, 126585}}, +{16472, 18, 51829, {1, 3, 1, 13, 21, 33, 19, 87, 77, 425, 351, 1163, 7453, 12567, 24615, 35563, 127643, 28625}}, +{16473, 18, 51830, {1, 1, 3, 11, 7, 35, 27, 47, 465, 595, 985, 573, 2541, 7841, 14749, 43761, 26699, 135895}}, +{16474, 18, 51839, {1, 1, 1, 7, 25, 51, 93, 237, 355, 575, 1, 443, 5697, 1997, 28801, 11621, 62531, 88449}}, +{16475, 18, 51849, {1, 1, 1, 9, 23, 35, 23, 91, 161, 601, 1401, 2187, 6283, 10711, 21277, 47771, 12589, 176625}}, +{16476, 18, 51869, {1, 3, 3, 5, 13, 23, 33, 65, 213, 835, 539, 2487, 273, 6113, 18327, 52493, 17571, 160909}}, +{16477, 18, 51886, {1, 3, 1, 5, 25, 9, 117, 201, 457, 331, 1455, 439, 4891, 5515, 21701, 9343, 29085, 120299}}, +{16478, 18, 51905, {1, 1, 1, 5, 29, 7, 43, 125, 155, 43, 1949, 2901, 7293, 13683, 18289, 16873, 27899, 168631}}, +{16479, 18, 51906, {1, 1, 7, 3, 29, 33, 53, 137, 301, 27, 1101, 837, 5843, 13167, 6073, 49083, 120031, 45065}}, +{16480, 18, 51915, {1, 3, 5, 1, 31, 47, 127, 185, 279, 603, 1699, 1693, 3263, 9055, 3525, 46065, 79305, 19949}}, +{16481, 18, 51948, {1, 3, 7, 9, 17, 47, 25, 191, 369, 877, 1477, 3041, 5123, 1393, 5061, 1755, 61051, 55299}}, +{16482, 18, 51988, {1, 1, 5, 13, 13, 7, 89, 141, 251, 321, 1515, 2677, 5103, 12901, 29875, 165, 15073, 47795}}, +{16483, 18, 51998, {1, 3, 1, 7, 1, 37, 55, 173, 191, 981, 685, 4003, 6319, 3037, 30637, 11955, 81015, 89239}}, +{16484, 18, 52004, {1, 3, 5, 5, 1, 5, 55, 251, 229, 153, 425, 2793, 6779, 15797, 10087, 7573, 121789, 115479}}, +{16485, 18, 52026, {1, 3, 7, 13, 23, 39, 23, 21, 55, 543, 1539, 3055, 7825, 2865, 8967, 56719, 117219, 142137}}, +{16486, 18, 52036, {1, 1, 5, 13, 1, 29, 81, 11, 509, 61, 1681, 1911, 829, 10583, 7105, 42047, 128579, 48891}}, +{16487, 18, 52082, {1, 1, 3, 13, 7, 27, 81, 89, 129, 239, 309, 1353, 5265, 12255, 29391, 1659, 114857, 43551}}, +{16488, 18, 52127, {1, 1, 7, 13, 23, 15, 9, 93, 35, 839, 549, 1793, 4693, 13295, 10603, 18179, 33141, 239555}}, +{16489, 18, 52145, {1, 3, 1, 7, 17, 5, 11, 193, 143, 579, 1199, 1239, 4503, 15855, 23345, 34789, 59427, 235319}}, +{16490, 18, 52157, {1, 3, 5, 3, 25, 63, 11, 203, 415, 135, 261, 1843, 3409, 4605, 15213, 28537, 75787, 100007}}, +{16491, 18, 52165, {1, 1, 1, 5, 3, 37, 29, 157, 213, 235, 959, 1087, 2843, 10265, 28233, 14281, 25867, 204031}}, +{16492, 18, 52193, {1, 3, 3, 7, 19, 49, 55, 111, 253, 823, 533, 941, 2509, 5595, 9267, 28457, 84301, 165385}}, +{16493, 18, 52211, {1, 3, 5, 9, 5, 59, 13, 85, 339, 889, 597, 3517, 7001, 5525, 25451, 13855, 19033, 182677}}, +{16494, 18, 52213, {1, 3, 1, 15, 23, 29, 31, 105, 353, 825, 1977, 2013, 131, 1969, 427, 16465, 90817, 257931}}, +{16495, 18, 52218, {1, 3, 1, 3, 29, 9, 109, 243, 321, 15, 1479, 787, 4667, 13925, 7347, 7977, 105585, 143959}}, +{16496, 18, 52220, {1, 1, 7, 15, 5, 45, 11, 95, 215, 719, 827, 77, 7263, 5705, 26971, 26845, 82127, 2849}}, +{16497, 18, 52238, {1, 1, 7, 9, 5, 43, 103, 133, 203, 127, 2021, 3609, 6971, 13447, 27089, 62287, 104391, 147901}}, +{16498, 18, 52240, {1, 3, 1, 3, 3, 41, 61, 101, 381, 985, 1795, 2465, 2899, 13517, 23953, 38831, 43569, 128643}}, +{16499, 18, 52243, {1, 3, 5, 5, 9, 49, 13, 7, 215, 85, 1203, 647, 6627, 1861, 17901, 40203, 13007, 84975}}, +{16500, 18, 52250, {1, 3, 5, 15, 31, 13, 55, 89, 397, 641, 1599, 3379, 3401, 4173, 5757, 42945, 59269, 106891}}, +{16501, 18, 52279, {1, 1, 5, 13, 25, 17, 45, 27, 151, 725, 819, 581, 3675, 3983, 9499, 47511, 128039, 56825}}, +{16502, 18, 52285, {1, 1, 5, 1, 7, 11, 65, 63, 301, 927, 409, 3729, 7227, 12849, 17855, 36527, 2907, 66819}}, +{16503, 18, 52306, {1, 3, 3, 3, 29, 35, 39, 1, 349, 429, 805, 3639, 3909, 4211, 10393, 36223, 72543, 136375}}, +{16504, 18, 52370, {1, 1, 1, 9, 23, 27, 25, 213, 195, 455, 883, 3357, 7277, 9061, 14103, 6005, 35031, 72703}}, +{16505, 18, 52432, {1, 1, 3, 3, 11, 17, 19, 181, 25, 775, 897, 3809, 2031, 13017, 7505, 37469, 107335, 174309}}, +{16506, 18, 52457, {1, 1, 7, 13, 7, 1, 57, 27, 159, 465, 533, 3409, 3863, 14001, 8011, 25873, 14971, 67243}}, +{16507, 18, 52466, {1, 1, 3, 11, 19, 5, 11, 19, 75, 489, 1879, 1539, 6563, 4729, 15605, 35203, 47993, 110139}}, +{16508, 18, 52514, {1, 3, 5, 9, 23, 17, 67, 89, 379, 849, 1667, 955, 1537, 11781, 9791, 46959, 79481, 237335}}, +{16509, 18, 52557, {1, 1, 7, 9, 3, 31, 127, 145, 29, 35, 463, 4009, 4427, 16215, 12093, 50085, 51259, 45091}}, +{16510, 18, 52560, {1, 1, 5, 9, 25, 3, 1, 131, 221, 951, 117, 3227, 797, 7617, 13243, 50139, 26737, 105875}}, +{16511, 18, 52585, {1, 1, 5, 3, 11, 5, 7, 155, 211, 865, 27, 3943, 7923, 9973, 23233, 37399, 89951, 106555}}, +{16512, 18, 52586, {1, 1, 3, 13, 21, 61, 77, 121, 227, 527, 1641, 3535, 3801, 7221, 6423, 9179, 114935, 33373}}, +{16513, 18, 52603, {1, 3, 7, 5, 31, 7, 123, 159, 367, 369, 1905, 1689, 6773, 675, 30289, 54149, 71469, 232835}}, +{16514, 18, 52650, {1, 1, 1, 13, 9, 23, 83, 237, 251, 941, 781, 1489, 6037, 6001, 15909, 50527, 60143, 238499}}, +{16515, 18, 52672, {1, 3, 1, 11, 5, 7, 103, 43, 413, 247, 535, 2107, 1801, 16381, 32529, 2355, 39143, 71281}}, +{16516, 18, 52681, {1, 1, 7, 5, 5, 31, 19, 11, 191, 643, 923, 1661, 2215, 11817, 23937, 62907, 128301, 21459}}, +{16517, 18, 52692, {1, 3, 7, 15, 1, 51, 123, 61, 99, 751, 1819, 1191, 3865, 8765, 7131, 33965, 55697, 87059}}, +{16518, 18, 52735, {1, 1, 5, 13, 5, 57, 41, 103, 135, 207, 517, 3995, 2537, 15705, 9123, 26193, 30653, 190549}}, +{16519, 18, 52760, {1, 1, 3, 1, 23, 5, 109, 209, 407, 143, 943, 2325, 8087, 559, 23675, 31815, 43805, 67497}}, +{16520, 18, 52772, {1, 1, 5, 9, 25, 33, 13, 21, 93, 357, 1551, 739, 5595, 16285, 30761, 54075, 75505, 177333}}, +{16521, 18, 52781, {1, 3, 5, 11, 17, 59, 31, 249, 95, 561, 1849, 4061, 5577, 2607, 30083, 59033, 56697, 89761}}, +{16522, 18, 52793, {1, 1, 3, 13, 27, 57, 9, 17, 323, 813, 1197, 2775, 3443, 9523, 24509, 12129, 89697, 169043}}, +{16523, 18, 52796, {1, 3, 5, 13, 17, 51, 91, 1, 105, 345, 829, 1365, 2755, 7197, 26655, 1303, 52223, 133893}}, +{16524, 18, 52807, {1, 1, 7, 1, 31, 3, 51, 21, 327, 851, 153, 3329, 3393, 8489, 5879, 25035, 124403, 172657}}, +{16525, 18, 52821, {1, 1, 1, 5, 3, 21, 61, 29, 99, 343, 621, 3163, 3763, 9347, 7691, 34667, 24555, 125819}}, +{16526, 18, 52849, {1, 1, 1, 1, 3, 17, 83, 191, 83, 315, 1091, 589, 5081, 4611, 15521, 25791, 9103, 13741}}, +{16527, 18, 52866, {1, 3, 5, 3, 7, 53, 9, 227, 399, 857, 673, 3027, 5045, 5573, 7467, 4813, 99659, 142845}}, +{16528, 18, 52868, {1, 1, 5, 11, 23, 37, 71, 151, 279, 879, 601, 2391, 7091, 12669, 10203, 11747, 9613, 248261}}, +{16529, 18, 52872, {1, 1, 3, 3, 29, 25, 33, 25, 1, 683, 1475, 457, 3641, 14219, 20105, 21449, 6903, 43819}}, +{16530, 18, 52875, {1, 1, 7, 7, 5, 1, 73, 79, 357, 971, 699, 1105, 1683, 1687, 32677, 62467, 47671, 88149}}, +{16531, 18, 52886, {1, 3, 1, 15, 23, 13, 93, 75, 307, 81, 1607, 1333, 6969, 7747, 27135, 58941, 26355, 5565}}, +{16532, 18, 52890, {1, 1, 7, 3, 27, 35, 85, 195, 421, 999, 1721, 2029, 283, 13995, 21649, 7519, 73357, 193171}}, +{16533, 18, 52896, {1, 3, 7, 15, 17, 63, 21, 187, 475, 671, 1681, 2731, 8169, 3327, 19789, 53295, 43219, 6949}}, +{16534, 18, 52925, {1, 1, 7, 13, 9, 33, 47, 115, 295, 123, 1293, 1627, 4261, 4503, 15925, 16521, 81759, 247089}}, +{16535, 18, 52931, {1, 3, 1, 13, 11, 15, 83, 129, 409, 465, 873, 1333, 7939, 973, 2753, 33727, 128975, 43333}}, +{16536, 18, 52937, {1, 3, 3, 3, 27, 59, 1, 137, 145, 29, 1189, 2615, 3249, 11197, 17165, 32313, 14065, 44199}}, +{16537, 18, 52938, {1, 3, 3, 11, 17, 49, 107, 111, 45, 963, 1129, 1775, 7671, 1495, 14531, 49743, 63321, 159841}}, +{16538, 18, 52952, {1, 1, 5, 9, 5, 11, 79, 99, 155, 347, 1777, 3793, 1765, 2319, 3135, 30237, 100845, 52689}}, +{16539, 18, 52979, {1, 3, 7, 13, 21, 57, 71, 207, 149, 161, 265, 991, 6967, 8905, 21581, 13921, 79201, 95667}}, +{16540, 18, 53013, {1, 3, 5, 15, 13, 53, 95, 81, 443, 161, 1071, 2749, 6637, 837, 15015, 62397, 33295, 112005}}, +{16541, 18, 53023, {1, 3, 1, 1, 31, 25, 37, 111, 79, 293, 249, 1523, 1509, 1993, 17167, 62939, 118281, 62699}}, +{16542, 18, 53027, {1, 3, 7, 7, 5, 33, 61, 179, 265, 405, 287, 1899, 437, 1609, 19617, 41093, 36341, 176593}}, +{16543, 18, 53033, {1, 1, 5, 3, 9, 33, 97, 45, 23, 807, 1575, 627, 7465, 4805, 11191, 35439, 69433, 47275}}, +{16544, 18, 53039, {1, 1, 1, 5, 1, 51, 51, 247, 453, 449, 1487, 141, 2501, 8039, 14749, 63733, 91963, 232951}}, +{16545, 18, 53041, {1, 3, 3, 13, 15, 7, 81, 211, 445, 15, 899, 835, 5163, 3403, 7367, 29963, 80413, 87209}}, +{16546, 18, 53048, {1, 3, 1, 11, 25, 43, 113, 139, 381, 391, 485, 1503, 4195, 10109, 13771, 35865, 50909, 224887}}, +{16547, 18, 53073, {1, 1, 7, 9, 9, 51, 21, 85, 137, 765, 951, 2453, 227, 9177, 1457, 47937, 84203, 118987}}, +{16548, 18, 53095, {1, 3, 5, 9, 1, 1, 21, 41, 133, 317, 519, 2249, 3453, 2957, 2029, 54737, 42515, 176017}}, +{16549, 18, 53099, {1, 3, 1, 7, 9, 27, 79, 193, 209, 281, 267, 1267, 7013, 13667, 13331, 32863, 5289, 15077}}, +{16550, 18, 53120, {1, 1, 5, 11, 29, 3, 3, 177, 75, 485, 1735, 3955, 4349, 7893, 13075, 58735, 8629, 78143}}, +{16551, 18, 53154, {1, 1, 7, 13, 3, 15, 15, 77, 7, 843, 1561, 461, 6817, 4363, 7861, 45697, 115663, 93789}}, +{16552, 18, 53168, {1, 1, 1, 7, 5, 35, 83, 213, 229, 383, 747, 337, 2589, 683, 18575, 42415, 74889, 227331}}, +{16553, 18, 53192, {1, 3, 5, 3, 17, 35, 57, 213, 247, 273, 689, 1889, 5667, 357, 4267, 11611, 20621, 159039}}, +{16554, 18, 53205, {1, 3, 3, 15, 7, 55, 25, 83, 293, 939, 1169, 2507, 3939, 7537, 2959, 40231, 124511, 181091}}, +{16555, 18, 53206, {1, 1, 5, 9, 31, 51, 67, 149, 509, 695, 449, 2761, 6597, 4741, 4205, 49177, 45599, 167807}}, +{16556, 18, 53234, {1, 1, 7, 15, 3, 7, 113, 71, 279, 885, 251, 2831, 855, 6673, 6511, 63861, 41109, 177119}}, +{16557, 18, 53246, {1, 1, 5, 3, 7, 23, 125, 11, 217, 1023, 549, 529, 3891, 10595, 13751, 37729, 113469, 110549}}, +{16558, 18, 53253, {1, 1, 3, 15, 21, 9, 13, 63, 93, 635, 659, 2837, 6303, 10083, 10107, 27859, 33891, 181229}}, +{16559, 18, 53263, {1, 1, 7, 3, 3, 43, 5, 149, 353, 353, 565, 2441, 7113, 6493, 30355, 17887, 110787, 187199}}, +{16560, 18, 53275, {1, 1, 3, 7, 19, 43, 99, 63, 169, 743, 185, 3817, 6677, 5549, 1609, 24701, 98669, 233701}}, +{16561, 18, 53313, {1, 1, 1, 1, 21, 49, 73, 169, 223, 551, 553, 917, 4705, 14951, 14031, 19753, 96205, 131755}}, +{16562, 18, 53331, {1, 1, 3, 3, 17, 49, 51, 249, 293, 921, 435, 2915, 3125, 3487, 11417, 35043, 29543, 35933}}, +{16563, 18, 53349, {1, 1, 3, 9, 23, 43, 73, 151, 379, 911, 671, 151, 955, 11885, 28795, 23967, 117135, 137985}}, +{16564, 18, 53367, {1, 1, 3, 7, 29, 3, 51, 231, 59, 227, 443, 3533, 7785, 12535, 25725, 7451, 9391, 239281}}, +{16565, 18, 53383, {1, 3, 3, 9, 17, 37, 91, 195, 5, 843, 313, 1417, 1207, 3225, 15949, 34023, 1275, 221057}}, +{16566, 18, 53392, {1, 1, 3, 15, 3, 51, 111, 135, 63, 495, 1967, 2151, 197, 10913, 20705, 1021, 68431, 67119}}, +{16567, 18, 53404, {1, 1, 5, 3, 7, 29, 87, 219, 273, 267, 1317, 797, 6723, 947, 29867, 32571, 12337, 234715}}, +{16568, 18, 53407, {1, 3, 5, 15, 1, 9, 91, 63, 97, 107, 451, 4025, 233, 7803, 17031, 7669, 49417, 256611}}, +{16569, 18, 53411, {1, 1, 7, 3, 17, 17, 45, 197, 227, 133, 799, 411, 6739, 8037, 19553, 53009, 25201, 107625}}, +{16570, 18, 53417, {1, 3, 5, 7, 3, 39, 25, 95, 197, 127, 45, 173, 3305, 6575, 19633, 54919, 35373, 59509}}, +{16571, 18, 53425, {1, 3, 3, 3, 9, 1, 107, 211, 217, 715, 311, 3641, 8055, 1, 9017, 29329, 128467, 46911}}, +{16572, 18, 53443, {1, 1, 1, 7, 1, 13, 13, 79, 259, 533, 1761, 449, 3363, 3061, 26227, 50407, 122951, 261425}}, +{16573, 18, 53469, {1, 3, 5, 5, 29, 19, 41, 7, 25, 203, 587, 3321, 655, 15877, 10423, 41481, 70325, 165527}}, +{16574, 18, 53480, {1, 3, 5, 9, 11, 45, 91, 253, 7, 137, 795, 2379, 4527, 1677, 5081, 6523, 97245, 3691}}, +{16575, 18, 53508, {1, 3, 7, 9, 25, 43, 125, 243, 391, 785, 651, 3245, 7979, 14689, 15443, 40501, 5519, 96551}}, +{16576, 18, 53535, {1, 1, 1, 3, 25, 53, 45, 159, 47, 701, 1655, 2019, 2355, 11213, 12403, 42291, 44925, 72689}}, +{16577, 18, 53536, {1, 1, 1, 5, 21, 19, 77, 31, 3, 161, 149, 3759, 6331, 12311, 7021, 1117, 12459, 134821}}, +{16578, 18, 53542, {1, 1, 3, 9, 9, 59, 23, 255, 437, 625, 719, 3727, 7157, 1889, 31523, 59127, 114143, 174179}}, +{16579, 18, 53563, {1, 1, 1, 15, 23, 7, 47, 137, 77, 519, 1681, 1159, 6121, 14789, 21343, 43101, 44709, 179863}}, +{16580, 18, 53577, {1, 3, 1, 3, 17, 27, 103, 11, 327, 735, 1949, 3719, 811, 2267, 13187, 29747, 98433, 242021}}, +{16581, 18, 53591, {1, 1, 7, 15, 15, 63, 25, 203, 109, 585, 409, 4093, 6669, 2381, 30721, 58975, 17235, 257959}}, +{16582, 18, 53607, {1, 3, 3, 5, 5, 19, 27, 69, 69, 193, 693, 1169, 6321, 3425, 9285, 28019, 128343, 185165}}, +{16583, 18, 53626, {1, 1, 3, 9, 7, 51, 113, 93, 81, 385, 1811, 2601, 2065, 1029, 24515, 7199, 26425, 174283}}, +{16584, 18, 53628, {1, 1, 1, 5, 29, 55, 93, 219, 281, 887, 891, 2763, 6083, 9627, 18559, 21329, 73887, 83699}}, +{16585, 18, 53638, {1, 1, 1, 3, 21, 31, 49, 173, 15, 177, 1001, 3453, 5623, 14107, 8837, 10163, 26817, 41947}}, +{16586, 18, 53675, {1, 1, 3, 5, 27, 63, 117, 49, 405, 281, 981, 2363, 1525, 9685, 29089, 16739, 66509, 125823}}, +{16587, 18, 53685, {1, 3, 7, 13, 27, 29, 57, 189, 345, 135, 753, 463, 731, 4823, 14335, 33299, 105229, 54705}}, +{16588, 18, 53692, {1, 3, 1, 1, 9, 43, 51, 25, 371, 261, 1409, 3493, 2811, 12915, 16075, 62159, 125945, 108453}}, +{16589, 18, 53703, {1, 3, 7, 15, 13, 33, 47, 53, 263, 669, 1383, 3059, 4043, 4777, 14679, 2077, 11019, 5803}}, +{16590, 18, 53722, {1, 1, 3, 11, 21, 7, 39, 71, 215, 79, 1849, 1261, 45, 1273, 27591, 4653, 25119, 30445}}, +{16591, 18, 53738, {1, 3, 5, 9, 21, 3, 17, 207, 417, 777, 37, 3349, 2761, 4469, 3457, 15593, 87251, 38601}}, +{16592, 18, 53748, {1, 1, 7, 13, 29, 29, 101, 103, 487, 87, 1129, 2497, 5501, 4813, 8623, 25077, 50487, 94053}}, +{16593, 18, 53752, {1, 3, 3, 11, 7, 23, 95, 245, 127, 55, 431, 2707, 4955, 15871, 29589, 60023, 1921, 227623}}, +{16594, 18, 53764, {1, 1, 3, 11, 17, 61, 103, 59, 477, 99, 1203, 157, 203, 557, 22921, 47363, 12853, 144067}}, +{16595, 18, 53781, {1, 3, 1, 13, 15, 23, 51, 109, 499, 841, 1779, 2515, 2519, 4945, 20061, 12395, 9223, 157901}}, +{16596, 18, 53788, {1, 3, 7, 9, 9, 15, 57, 223, 223, 463, 427, 2145, 1219, 12639, 28361, 46019, 128101, 198479}}, +{16597, 18, 53791, {1, 3, 7, 7, 1, 1, 99, 101, 135, 169, 1885, 3979, 3051, 13649, 26607, 45067, 4503, 74087}}, +{16598, 18, 53816, {1, 3, 7, 5, 17, 63, 27, 45, 447, 759, 1099, 3407, 489, 2719, 31577, 10355, 126835, 203439}}, +{16599, 18, 53824, {1, 1, 5, 1, 21, 19, 1, 239, 433, 531, 1181, 2021, 423, 3235, 8457, 44459, 117401, 63545}}, +{16600, 18, 53830, {1, 3, 7, 13, 21, 39, 25, 65, 405, 785, 137, 2899, 3255, 11165, 7827, 46425, 89063, 102787}}, +{16601, 18, 53839, {1, 1, 1, 11, 25, 3, 39, 61, 395, 35, 2001, 3201, 2233, 9625, 26489, 54167, 88495, 127441}}, +{16602, 18, 53844, {1, 1, 7, 7, 3, 27, 11, 49, 117, 711, 1881, 1457, 6759, 10517, 12733, 47435, 103111, 237237}}, +{16603, 18, 53875, {1, 1, 5, 5, 1, 61, 121, 155, 223, 733, 1349, 2825, 2093, 4481, 21389, 40227, 20453, 116907}}, +{16604, 18, 53921, {1, 3, 7, 7, 5, 11, 85, 131, 345, 723, 853, 3679, 7859, 11923, 16619, 63169, 127261, 155665}}, +{16605, 18, 53922, {1, 1, 5, 1, 3, 51, 93, 225, 197, 893, 555, 2611, 6225, 7819, 31655, 12235, 24919, 31451}}, +{16606, 18, 53927, {1, 1, 3, 3, 11, 23, 95, 205, 85, 705, 545, 155, 5533, 14837, 8341, 42473, 96891, 70695}}, +{16607, 18, 53948, {1, 3, 3, 5, 17, 31, 99, 187, 219, 275, 685, 2933, 4535, 13495, 20351, 60667, 95211, 129233}}, +{16608, 18, 53956, {1, 1, 1, 11, 9, 11, 123, 231, 127, 199, 733, 2495, 2601, 10565, 3155, 45251, 128319, 187457}}, +{16609, 18, 53990, {1, 3, 1, 9, 3, 33, 41, 109, 279, 851, 1115, 3773, 2383, 1885, 6993, 59693, 69863, 88081}}, +{16610, 18, 53994, {1, 1, 7, 13, 3, 27, 27, 203, 337, 965, 959, 1125, 2897, 8653, 15827, 51187, 12121, 4665}}, +{16611, 18, 54001, {1, 3, 1, 9, 19, 7, 23, 113, 257, 671, 571, 1061, 4353, 217, 13603, 27961, 68431, 147187}}, +{16612, 18, 54016, {1, 3, 5, 9, 25, 61, 7, 139, 237, 859, 761, 2005, 5981, 153, 6553, 53005, 72653, 33571}}, +{16613, 18, 54019, {1, 3, 5, 5, 9, 35, 63, 149, 427, 65, 635, 1955, 1845, 13781, 9761, 36147, 91479, 141305}}, +{16614, 18, 54070, {1, 1, 3, 5, 13, 39, 53, 113, 481, 933, 239, 3713, 7453, 12363, 14763, 46955, 108545, 74349}}, +{16615, 18, 54074, {1, 3, 1, 7, 13, 41, 57, 225, 213, 617, 1947, 2855, 4885, 8553, 20259, 57125, 59369, 178553}}, +{16616, 18, 54088, {1, 3, 5, 15, 31, 31, 19, 87, 461, 403, 1193, 2123, 4991, 14551, 17153, 14171, 17157, 194879}}, +{16617, 18, 54102, {1, 1, 5, 11, 5, 27, 119, 65, 111, 455, 1949, 3441, 6951, 6819, 12839, 6913, 57695, 145925}}, +{16618, 18, 54111, {1, 1, 1, 15, 19, 41, 55, 45, 33, 559, 589, 3773, 745, 8515, 32389, 47797, 145, 105503}}, +{16619, 18, 54130, {1, 1, 3, 15, 13, 53, 35, 223, 247, 893, 149, 553, 829, 5129, 26417, 15769, 95411, 6595}}, +{16620, 18, 54152, {1, 1, 5, 3, 3, 59, 35, 187, 387, 3, 847, 3579, 7869, 481, 23955, 22191, 21041, 230449}}, +{16621, 18, 54170, {1, 1, 3, 15, 23, 11, 97, 199, 11, 647, 803, 2391, 5791, 2223, 22187, 49675, 87775, 196871}}, +{16622, 18, 54172, {1, 3, 7, 5, 25, 63, 107, 227, 133, 337, 1767, 2459, 2987, 10463, 25001, 17047, 79901, 222877}}, +{16623, 18, 54211, {1, 3, 1, 13, 25, 5, 47, 109, 473, 389, 1743, 3951, 4231, 827, 4189, 29903, 106909, 152835}}, +{16624, 18, 54218, {1, 1, 5, 3, 7, 61, 121, 189, 303, 21, 957, 545, 7893, 3217, 25847, 29371, 100569, 132393}}, +{16625, 18, 54228, {1, 1, 1, 15, 29, 17, 59, 37, 449, 149, 845, 555, 7603, 11911, 18477, 23279, 107167, 160339}}, +{16626, 18, 54251, {1, 1, 7, 5, 13, 27, 43, 167, 443, 445, 2011, 2179, 2785, 13663, 21957, 2455, 18217, 19303}}, +{16627, 18, 54253, {1, 1, 1, 5, 19, 45, 71, 39, 21, 791, 1467, 855, 3101, 8267, 15529, 919, 105313, 75627}}, +{16628, 18, 54268, {1, 3, 1, 11, 31, 25, 57, 177, 211, 327, 679, 771, 7725, 6123, 23931, 48223, 9063, 133319}}, +{16629, 18, 54271, {1, 3, 5, 3, 1, 11, 19, 153, 177, 563, 1919, 117, 5583, 1519, 16623, 10871, 15511, 66113}}, +{16630, 18, 54274, {1, 1, 7, 7, 9, 45, 63, 253, 415, 347, 81, 2991, 2691, 2383, 15573, 33783, 12445, 224107}}, +{16631, 18, 54288, {1, 3, 5, 5, 7, 17, 99, 231, 439, 1009, 623, 833, 685, 6419, 30313, 56197, 73239, 260007}}, +{16632, 18, 54314, {1, 1, 5, 5, 5, 51, 97, 239, 267, 629, 1211, 2175, 5681, 3107, 11381, 57047, 120175, 131285}}, +{16633, 18, 54319, {1, 1, 7, 7, 29, 11, 21, 49, 481, 279, 1795, 1295, 453, 15985, 19941, 51853, 15115, 107271}}, +{16634, 18, 54321, {1, 1, 5, 1, 23, 61, 33, 21, 409, 57, 903, 557, 1673, 2759, 23705, 4109, 58865, 233081}}, +{16635, 18, 54324, {1, 1, 1, 5, 11, 37, 79, 15, 213, 485, 1477, 3925, 3205, 9267, 22043, 54197, 57101, 66185}}, +{16636, 18, 54341, {1, 1, 7, 13, 31, 27, 95, 141, 131, 43, 2039, 2257, 17, 14427, 5699, 22263, 86851, 226283}}, +{16637, 18, 54353, {1, 3, 5, 5, 11, 5, 5, 217, 363, 163, 1241, 3683, 1409, 1731, 20973, 63849, 35041, 94859}}, +{16638, 18, 54366, {1, 1, 7, 1, 25, 61, 67, 239, 369, 319, 1157, 2435, 2147, 12057, 4451, 3005, 31787, 199653}}, +{16639, 18, 54370, {1, 3, 5, 1, 11, 57, 1, 163, 433, 11, 1299, 1711, 1601, 4677, 16481, 25175, 63893, 41853}}, +{16640, 18, 54420, {1, 1, 3, 1, 29, 49, 91, 15, 313, 533, 115, 4005, 3157, 10615, 27915, 52613, 64447, 93091}}, +{16641, 18, 54423, {1, 3, 7, 3, 7, 17, 103, 67, 237, 595, 1571, 3421, 3971, 11123, 145, 52087, 59273, 21417}}, +{16642, 18, 54434, {1, 3, 5, 11, 31, 37, 105, 205, 377, 243, 841, 3153, 6847, 14171, 19947, 61561, 35, 261753}}, +{16643, 18, 54440, {1, 3, 5, 9, 29, 21, 103, 219, 107, 427, 1841, 2015, 2919, 5721, 8631, 48841, 33281, 35835}}, +{16644, 18, 54454, {1, 1, 3, 5, 25, 27, 67, 65, 305, 677, 1975, 1049, 7277, 15279, 30181, 48941, 119087, 130265}}, +{16645, 18, 54495, {1, 1, 3, 9, 29, 27, 109, 167, 351, 463, 663, 3155, 919, 10627, 30163, 62233, 32927, 210775}}, +{16646, 18, 54501, {1, 3, 5, 5, 19, 9, 17, 93, 33, 999, 1537, 3045, 3735, 4625, 31363, 46075, 80985, 108331}}, +{16647, 18, 54526, {1, 3, 7, 7, 11, 63, 83, 157, 205, 505, 657, 1901, 1405, 8349, 16473, 29397, 130379, 167963}}, +{16648, 18, 54639, {1, 3, 1, 15, 25, 49, 65, 189, 461, 923, 1839, 2597, 2471, 14103, 2915, 48429, 74387, 243465}}, +{16649, 18, 54653, {1, 3, 7, 11, 31, 47, 109, 21, 205, 343, 1999, 315, 8119, 15937, 8761, 55257, 99983, 131641}}, +{16650, 18, 54667, {1, 1, 3, 11, 3, 23, 73, 125, 17, 967, 1811, 1413, 4783, 8303, 25301, 26859, 90583, 140721}}, +{16651, 18, 54678, {1, 1, 5, 5, 25, 41, 49, 127, 391, 381, 1575, 1697, 5205, 12805, 24365, 20275, 58819, 167845}}, +{16652, 18, 54700, {1, 1, 7, 11, 17, 53, 51, 35, 383, 931, 359, 2863, 119, 6683, 26247, 14281, 49205, 256869}}, +{16653, 18, 54717, {1, 1, 7, 9, 23, 5, 69, 97, 407, 15, 579, 2905, 47, 6227, 23997, 42459, 26569, 225467}}, +{16654, 18, 54780, {1, 3, 3, 11, 7, 3, 125, 87, 347, 79, 1571, 1513, 285, 12101, 1731, 27887, 42009, 173243}}, +{16655, 18, 54801, {1, 3, 7, 13, 3, 5, 99, 29, 77, 873, 1111, 1451, 5493, 10669, 22597, 54437, 55521, 101617}}, +{16656, 18, 54813, {1, 3, 1, 3, 3, 17, 41, 215, 207, 71, 683, 1979, 4849, 2437, 5717, 28999, 55005, 233929}}, +{16657, 18, 54814, {1, 1, 1, 1, 23, 21, 105, 223, 5, 235, 1533, 3715, 2689, 13937, 12125, 63879, 111537, 39817}}, +{16658, 18, 54850, {1, 3, 3, 15, 25, 47, 71, 229, 21, 563, 1851, 2423, 131, 4431, 31567, 8883, 1311, 227893}}, +{16659, 18, 54883, {1, 3, 5, 11, 7, 23, 19, 59, 397, 315, 1149, 3595, 5973, 11027, 5233, 55237, 102777, 137421}}, +{16660, 18, 54907, {1, 1, 7, 9, 17, 61, 45, 235, 387, 171, 1079, 3119, 6933, 3591, 751, 35495, 49969, 204611}}, +{16661, 18, 54919, {1, 1, 7, 7, 21, 7, 105, 79, 81, 245, 1229, 409, 5159, 9815, 6713, 4687, 120541, 246133}}, +{16662, 18, 54931, {1, 3, 7, 13, 23, 31, 85, 97, 481, 497, 581, 1179, 243, 1767, 11855, 11599, 3141, 104741}}, +{16663, 18, 54933, {1, 3, 7, 3, 3, 45, 15, 29, 413, 631, 273, 1007, 2979, 11307, 24535, 9305, 83591, 77121}}, +{16664, 18, 54991, {1, 3, 7, 15, 21, 55, 11, 169, 417, 631, 141, 1489, 3371, 16073, 11215, 15479, 125341, 131731}}, +{16665, 18, 55003, {1, 1, 7, 5, 13, 33, 7, 121, 295, 191, 497, 2233, 997, 13833, 14503, 38357, 79007, 53985}}, +{16666, 18, 55009, {1, 3, 3, 3, 29, 63, 97, 27, 449, 643, 317, 1989, 1481, 2873, 21247, 35989, 61295, 101829}}, +{16667, 18, 55030, {1, 3, 1, 7, 13, 49, 27, 227, 21, 983, 179, 2761, 2859, 2851, 26447, 33295, 126963, 41441}}, +{16668, 18, 55034, {1, 1, 5, 13, 27, 1, 61, 115, 185, 867, 2017, 2257, 5035, 7855, 25849, 48189, 28287, 133261}}, +{16669, 18, 55039, {1, 1, 7, 13, 27, 17, 13, 205, 379, 717, 247, 3341, 2841, 10845, 26979, 5589, 1935, 48371}}, +{16670, 18, 55048, {1, 3, 1, 11, 9, 51, 25, 185, 65, 643, 1867, 3825, 3395, 8883, 29239, 20019, 19071, 3377}}, +{16671, 18, 55059, {1, 1, 1, 1, 11, 57, 61, 113, 419, 249, 153, 2883, 87, 7919, 11941, 46725, 38701, 73715}}, +{16672, 18, 55061, {1, 3, 3, 11, 3, 15, 19, 87, 27, 839, 463, 1757, 3137, 10821, 2857, 58101, 91983, 137045}}, +{16673, 18, 55068, {1, 3, 3, 1, 25, 25, 15, 93, 359, 5, 53, 647, 6245, 1957, 4651, 14697, 12193, 231303}}, +{16674, 18, 55077, {1, 1, 5, 9, 31, 49, 69, 223, 133, 595, 777, 1281, 727, 6671, 21453, 14193, 51769, 258301}}, +{16675, 18, 55122, {1, 3, 5, 11, 29, 37, 75, 17, 229, 121, 313, 2873, 5233, 13231, 7589, 40075, 42101, 137697}}, +{16676, 18, 55149, {1, 1, 7, 1, 31, 9, 15, 63, 149, 5, 1785, 21, 2619, 15071, 3243, 58023, 20697, 205181}}, +{16677, 18, 55157, {1, 3, 7, 7, 25, 61, 59, 157, 251, 303, 1905, 2389, 1681, 319, 14155, 49089, 45381, 124447}}, +{16678, 18, 55158, {1, 3, 5, 5, 25, 27, 41, 125, 105, 867, 365, 117, 7215, 2887, 28499, 9597, 105999, 150189}}, +{16679, 18, 55178, {1, 1, 5, 13, 5, 33, 47, 221, 207, 641, 525, 3215, 5293, 16343, 16169, 44393, 26305, 194411}}, +{16680, 18, 55222, {1, 3, 5, 13, 29, 17, 31, 77, 511, 465, 1141, 597, 5111, 6629, 14557, 13057, 11643, 250925}}, +{16681, 18, 55234, {1, 1, 7, 11, 1, 5, 65, 139, 471, 265, 1145, 965, 47, 10971, 15615, 62031, 58523, 175593}}, +{16682, 18, 55236, {1, 1, 5, 1, 23, 61, 57, 139, 377, 843, 79, 2873, 1823, 7551, 26741, 63031, 124879, 115295}}, +{16683, 18, 55251, {1, 1, 5, 13, 9, 19, 1, 61, 331, 1015, 1035, 1691, 4057, 6071, 24929, 39569, 95695, 39307}}, +{16684, 18, 55269, {1, 3, 3, 5, 23, 17, 13, 65, 381, 893, 1879, 3735, 1547, 6735, 30251, 11471, 102997, 126429}}, +{16685, 18, 55270, {1, 1, 5, 13, 1, 43, 15, 1, 155, 221, 1463, 3793, 6467, 7221, 28027, 55357, 69397, 87565}}, +{16686, 18, 55284, {1, 1, 7, 3, 17, 9, 71, 75, 77, 639, 1251, 701, 473, 12337, 1893, 6349, 10837, 27797}}, +{16687, 18, 55309, {1, 3, 5, 11, 11, 11, 125, 23, 161, 937, 707, 2487, 695, 8495, 16219, 33671, 109463, 248305}}, +{16688, 18, 55322, {1, 1, 1, 11, 5, 49, 15, 47, 393, 407, 39, 1867, 7727, 12701, 7805, 119, 77401, 186421}}, +{16689, 18, 55334, {1, 1, 5, 5, 19, 21, 77, 187, 387, 51, 1497, 1225, 3101, 791, 529, 4321, 118435, 112889}}, +{16690, 18, 55340, {1, 3, 1, 13, 27, 17, 11, 63, 201, 909, 1549, 3243, 1803, 9461, 20985, 24637, 100993, 200473}}, +{16691, 18, 55348, {1, 3, 7, 13, 11, 35, 97, 213, 415, 467, 2013, 2159, 7017, 7895, 18235, 50659, 113169, 141887}}, +{16692, 18, 55377, {1, 1, 3, 7, 13, 21, 119, 109, 471, 323, 277, 1685, 2399, 14777, 2643, 5879, 113043, 45223}}, +{16693, 18, 55430, {1, 3, 1, 13, 19, 5, 1, 75, 499, 297, 1897, 591, 3223, 12939, 30593, 4053, 122207, 215171}}, +{16694, 18, 55433, {1, 3, 3, 9, 21, 11, 29, 205, 13, 381, 569, 599, 7089, 8145, 18531, 34477, 101057, 64269}}, +{16695, 18, 55441, {1, 1, 5, 15, 1, 19, 37, 131, 325, 441, 3, 4001, 6937, 9207, 27543, 30321, 37083, 241019}}, +{16696, 18, 55470, {1, 3, 7, 13, 7, 15, 9, 159, 97, 905, 557, 1913, 7325, 4057, 19461, 14277, 36873, 25619}}, +{16697, 18, 55535, {1, 3, 5, 7, 3, 51, 99, 9, 185, 227, 2041, 331, 3925, 12481, 17485, 37137, 3753, 125269}}, +{16698, 18, 55561, {1, 1, 7, 11, 31, 49, 89, 37, 49, 863, 833, 3263, 351, 6277, 23055, 49727, 25005, 161585}}, +{16699, 18, 55567, {1, 3, 5, 1, 9, 35, 89, 101, 117, 365, 1015, 1159, 4623, 4541, 6831, 28091, 10647, 221415}}, +{16700, 18, 55597, {1, 1, 5, 5, 13, 47, 125, 209, 199, 885, 927, 1411, 795, 8835, 28589, 48753, 27191, 53455}}, +{16701, 18, 55630, {1, 1, 5, 9, 7, 19, 3, 87, 157, 121, 1433, 1463, 3241, 5969, 203, 36723, 14779, 63949}}, +{16702, 18, 55648, {1, 1, 3, 9, 1, 47, 71, 113, 405, 561, 1149, 3599, 4173, 6819, 5493, 45987, 41521, 221503}}, +{16703, 18, 55653, {1, 3, 3, 1, 3, 55, 101, 103, 161, 549, 457, 2529, 2043, 8843, 5677, 7449, 45185, 178289}}, +{16704, 18, 55657, {1, 1, 1, 3, 31, 25, 1, 161, 7, 503, 641, 2221, 749, 1521, 6151, 19245, 55913, 80141}}, +{16705, 18, 55665, {1, 1, 1, 9, 3, 45, 73, 217, 249, 929, 163, 2139, 3921, 11223, 11161, 52697, 89633, 14243}}, +{16706, 18, 55678, {1, 1, 7, 15, 17, 41, 5, 119, 211, 53, 985, 2679, 679, 9349, 25577, 26947, 35141, 93999}}, +{16707, 18, 55684, {1, 3, 1, 15, 17, 43, 51, 15, 363, 615, 889, 195, 6279, 15477, 31545, 50941, 119711, 66535}}, +{16708, 18, 55691, {1, 1, 1, 13, 7, 11, 17, 127, 131, 759, 739, 161, 5937, 13611, 31757, 10681, 101357, 82873}}, +{16709, 18, 55693, {1, 3, 5, 7, 21, 63, 75, 33, 233, 981, 589, 3409, 3523, 1871, 8919, 38513, 32825, 56935}}, +{16710, 18, 55702, {1, 3, 5, 3, 9, 9, 85, 221, 203, 727, 1035, 1069, 2409, 2687, 235, 23395, 64163, 193235}}, +{16711, 18, 55708, {1, 3, 3, 7, 1, 35, 119, 175, 203, 819, 207, 2283, 4175, 3581, 11647, 43073, 104573, 86607}}, +{16712, 18, 55715, {1, 3, 3, 15, 11, 63, 59, 153, 279, 779, 261, 3317, 7671, 11727, 19381, 33227, 79331, 187227}}, +{16713, 18, 55739, {1, 1, 3, 1, 7, 1, 115, 15, 235, 9, 1877, 1911, 1089, 9939, 9537, 39563, 95327, 70323}}, +{16714, 18, 55761, {1, 1, 5, 7, 25, 61, 63, 145, 425, 617, 1813, 3255, 6797, 16019, 18849, 44191, 69877, 179933}}, +{16715, 18, 55767, {1, 1, 3, 13, 17, 45, 69, 247, 27, 367, 871, 1185, 895, 7991, 8145, 22869, 97609, 14673}}, +{16716, 18, 55768, {1, 3, 3, 11, 19, 41, 99, 213, 159, 803, 121, 1197, 2849, 15191, 15603, 52445, 105077, 128231}}, +{16717, 18, 55774, {1, 3, 1, 11, 21, 61, 117, 167, 437, 447, 419, 1673, 755, 15331, 29819, 16099, 130773, 177547}}, +{16718, 18, 55787, {1, 3, 7, 7, 1, 15, 79, 109, 351, 71, 985, 89, 7517, 4175, 30533, 52125, 100863, 186477}}, +{16719, 18, 55811, {1, 1, 3, 1, 15, 1, 103, 65, 511, 241, 1279, 3233, 7141, 255, 10925, 28271, 56151, 252121}}, +{16720, 18, 55835, {1, 1, 1, 13, 17, 49, 59, 93, 19, 343, 979, 865, 3447, 4595, 3067, 26807, 98915, 126237}}, +{16721, 18, 55894, {1, 3, 3, 5, 17, 5, 91, 199, 191, 775, 233, 919, 277, 3485, 9231, 37025, 23493, 186745}}, +{16722, 18, 55897, {1, 3, 1, 1, 11, 5, 103, 187, 85, 47, 1111, 883, 6155, 15315, 9041, 58275, 75037, 7773}}, +{16723, 18, 55904, {1, 3, 1, 3, 19, 5, 7, 211, 481, 713, 383, 1203, 6089, 15817, 31577, 7283, 25457, 101455}}, +{16724, 18, 55931, {1, 3, 5, 7, 21, 9, 59, 127, 375, 477, 721, 3931, 7089, 9079, 5015, 62019, 113747, 36055}}, +{16725, 18, 55950, {1, 3, 7, 13, 3, 17, 47, 177, 103, 535, 1787, 509, 5253, 2857, 13421, 19875, 37397, 251353}}, +{16726, 18, 55961, {1, 1, 5, 7, 19, 31, 41, 93, 301, 45, 251, 2691, 4657, 2627, 17321, 24627, 80221, 117191}}, +{16727, 18, 55973, {1, 3, 5, 7, 5, 31, 27, 3, 463, 549, 1669, 499, 815, 4091, 7049, 60957, 102849, 235617}}, +{16728, 18, 56078, {1, 3, 5, 1, 21, 31, 57, 201, 503, 977, 893, 3927, 1605, 8265, 5137, 51009, 89375, 237909}}, +{16729, 18, 56099, {1, 3, 3, 1, 27, 5, 11, 81, 445, 229, 5, 543, 3397, 12961, 31911, 36945, 59485, 305}}, +{16730, 18, 56105, {1, 1, 5, 13, 31, 63, 39, 171, 243, 39, 1147, 459, 7215, 14603, 20625, 47369, 121495, 237741}}, +{16731, 18, 56119, {1, 3, 3, 13, 15, 63, 39, 23, 305, 685, 1885, 571, 2657, 16031, 24759, 10639, 25619, 246137}}, +{16732, 18, 56133, {1, 1, 1, 5, 19, 33, 5, 187, 167, 725, 1405, 511, 701, 13283, 3513, 16495, 8755, 221751}}, +{16733, 18, 56168, {1, 1, 7, 11, 3, 27, 27, 237, 495, 637, 479, 3247, 3825, 2567, 12853, 52881, 34807, 161483}}, +{16734, 18, 56191, {1, 3, 3, 9, 23, 43, 101, 175, 19, 443, 787, 1053, 4113, 12777, 4615, 53115, 2873, 117383}}, +{16735, 18, 56202, {1, 3, 1, 13, 3, 23, 33, 93, 145, 937, 957, 2463, 827, 383, 16749, 61567, 10029, 188159}}, +{16736, 18, 56209, {1, 1, 7, 15, 21, 23, 3, 71, 323, 995, 645, 1189, 1029, 519, 3479, 13587, 95641, 215337}}, +{16737, 18, 56215, {1, 3, 7, 11, 9, 17, 101, 59, 421, 417, 797, 3089, 773, 15959, 18127, 13681, 104667, 217433}}, +{16738, 18, 56232, {1, 3, 5, 7, 31, 21, 9, 7, 377, 589, 1497, 939, 5389, 10997, 22291, 19639, 72187, 66193}}, +{16739, 18, 56240, {1, 1, 1, 13, 19, 1, 127, 185, 251, 167, 1289, 2715, 5885, 12715, 18261, 36861, 102721, 246917}}, +{16740, 18, 56260, {1, 1, 7, 1, 23, 41, 19, 151, 125, 465, 813, 1711, 7933, 13561, 29737, 59207, 62533, 124149}}, +{16741, 18, 56270, {1, 3, 5, 9, 7, 13, 17, 119, 425, 877, 1207, 2211, 2943, 13921, 28251, 44143, 112149, 152341}}, +{16742, 18, 56278, {1, 3, 5, 9, 15, 21, 87, 83, 77, 731, 91, 3091, 5687, 9647, 2037, 39031, 106583, 66533}}, +{16743, 18, 56281, {1, 1, 7, 9, 31, 49, 7, 119, 147, 599, 1191, 297, 1597, 10723, 16893, 47387, 106995, 165409}}, +{16744, 18, 56288, {1, 3, 3, 3, 3, 63, 11, 193, 241, 63, 1671, 2139, 5689, 13967, 9239, 7535, 34237, 140283}}, +{16745, 18, 56303, {1, 3, 5, 13, 9, 23, 65, 247, 473, 825, 109, 1897, 245, 10517, 8147, 25989, 96447, 118689}}, +{16746, 18, 56308, {1, 1, 3, 5, 27, 35, 65, 23, 159, 729, 189, 2661, 4245, 14377, 21043, 15551, 2717, 146949}}, +{16747, 18, 56312, {1, 1, 3, 13, 23, 5, 35, 63, 293, 347, 883, 149, 5145, 10821, 5813, 24183, 94711, 64787}}, +{16748, 18, 56320, {1, 1, 5, 3, 27, 3, 127, 141, 237, 535, 1509, 2755, 5843, 2379, 19413, 52345, 100247, 42571}}, +{16749, 18, 56326, {1, 3, 3, 9, 1, 55, 61, 105, 29, 1021, 1215, 2157, 7453, 4643, 26793, 33553, 2959, 51485}}, +{16750, 18, 56392, {1, 1, 3, 7, 31, 51, 59, 49, 321, 207, 415, 2115, 219, 5045, 31133, 17961, 130779, 28255}}, +{16751, 18, 56395, {1, 3, 7, 15, 9, 29, 31, 185, 111, 959, 7, 827, 7891, 5449, 22221, 49933, 2091, 194683}}, +{16752, 18, 56403, {1, 3, 7, 1, 11, 59, 75, 255, 387, 913, 423, 2915, 5079, 6363, 5175, 57977, 5559, 13257}}, +{16753, 18, 56419, {1, 1, 7, 1, 21, 3, 21, 13, 157, 3, 715, 3525, 7769, 5333, 25345, 53473, 44323, 203167}}, +{16754, 18, 56428, {1, 1, 7, 11, 31, 25, 55, 5, 169, 695, 1599, 2357, 1427, 14469, 15223, 34275, 42605, 23005}}, +{16755, 18, 56450, {1, 1, 1, 15, 19, 51, 117, 135, 297, 831, 329, 3793, 4673, 3795, 24185, 52971, 30423, 68771}}, +{16756, 18, 56452, {1, 1, 7, 5, 19, 33, 79, 77, 315, 29, 307, 1709, 3489, 14515, 12477, 58939, 53753, 165031}}, +{16757, 18, 56485, {1, 1, 7, 1, 27, 57, 119, 207, 355, 279, 1371, 3917, 2821, 5285, 12673, 28973, 54957, 94001}}, +{16758, 18, 56486, {1, 3, 7, 3, 19, 57, 53, 199, 485, 805, 301, 1337, 5993, 2187, 30573, 12045, 101205, 129841}}, +{16759, 18, 56492, {1, 1, 3, 9, 15, 45, 71, 119, 445, 759, 1361, 1299, 2927, 2343, 22085, 53733, 21241, 1553}}, +{16760, 18, 56498, {1, 3, 5, 3, 27, 11, 1, 239, 497, 343, 1989, 1463, 2473, 5191, 6271, 14129, 124453, 96817}}, +{16761, 18, 56510, {1, 3, 5, 7, 27, 19, 123, 27, 483, 557, 1545, 1871, 1297, 587, 1067, 51259, 119231, 173659}}, +{16762, 18, 56512, {1, 3, 1, 1, 27, 45, 41, 113, 453, 553, 2019, 2039, 1709, 13017, 5497, 34459, 60295, 229405}}, +{16763, 18, 56524, {1, 3, 1, 11, 1, 57, 51, 125, 261, 915, 1673, 25, 529, 653, 17247, 64225, 98991, 248143}}, +{16764, 18, 56530, {1, 3, 5, 15, 25, 27, 31, 1, 463, 249, 113, 1955, 2223, 5463, 12281, 20843, 26495, 256759}}, +{16765, 18, 56545, {1, 1, 3, 11, 27, 33, 57, 205, 89, 435, 1983, 1165, 3843, 127, 30179, 63971, 10211, 105403}}, +{16766, 18, 56551, {1, 3, 3, 5, 21, 49, 35, 161, 273, 205, 41, 1881, 2013, 12549, 24859, 55711, 98235, 237281}}, +{16767, 18, 56565, {1, 3, 3, 1, 15, 35, 95, 1, 221, 675, 385, 2257, 2531, 2129, 12895, 11565, 125977, 51973}}, +{16768, 18, 56580, {1, 1, 1, 15, 19, 61, 35, 55, 9, 721, 499, 2577, 3001, 14861, 22293, 56195, 72855, 166703}}, +{16769, 18, 56587, {1, 1, 1, 7, 5, 25, 59, 175, 81, 989, 935, 2579, 8183, 1109, 4645, 53753, 115795, 105091}}, +{16770, 18, 56589, {1, 3, 3, 13, 7, 55, 7, 113, 197, 763, 1747, 3291, 1109, 4391, 18257, 28563, 97413, 5847}}, +{16771, 18, 56592, {1, 1, 1, 7, 23, 55, 91, 83, 479, 305, 843, 2055, 3405, 15243, 31551, 5275, 8651, 66915}}, +{16772, 18, 56611, {1, 3, 7, 9, 3, 19, 83, 229, 235, 903, 1495, 1033, 2729, 14927, 11847, 22979, 13905, 84413}}, +{16773, 18, 56623, {1, 3, 3, 13, 27, 37, 83, 193, 475, 439, 745, 757, 7359, 6683, 5839, 50765, 6933, 117411}}, +{16774, 18, 56635, {1, 3, 5, 11, 31, 25, 33, 77, 113, 815, 123, 2721, 2133, 8995, 15237, 54565, 5155, 51235}}, +{16775, 18, 56646, {1, 3, 3, 7, 15, 31, 73, 91, 379, 39, 913, 53, 41, 1059, 25883, 11769, 63015, 48125}}, +{16776, 18, 56660, {1, 1, 5, 5, 5, 13, 81, 169, 71, 529, 1429, 2101, 4069, 5509, 30283, 40625, 103673, 183243}}, +{16777, 18, 56680, {1, 3, 3, 5, 23, 39, 39, 237, 445, 567, 343, 2521, 2287, 1851, 2315, 59979, 5015, 243349}}, +{16778, 18, 56686, {1, 1, 7, 1, 1, 51, 89, 229, 187, 207, 245, 3521, 2987, 4347, 6997, 62565, 54397, 140473}}, +{16779, 18, 56716, {1, 3, 1, 5, 7, 59, 45, 161, 457, 655, 1591, 215, 2213, 15101, 14791, 40397, 95811, 126291}}, +{16780, 18, 56749, {1, 1, 3, 1, 5, 23, 7, 199, 143, 561, 1669, 17, 8109, 11003, 4535, 8593, 112021, 223153}}, +{16781, 18, 56790, {1, 3, 5, 9, 3, 37, 111, 15, 235, 697, 385, 2197, 909, 1247, 26199, 50661, 100643, 122577}}, +{16782, 18, 56809, {1, 3, 5, 11, 23, 53, 95, 75, 463, 137, 1511, 3373, 3071, 547, 22399, 51891, 9123, 240925}}, +{16783, 18, 56869, {1, 3, 7, 3, 21, 35, 69, 197, 371, 15, 185, 3539, 29, 15071, 17069, 34669, 37023, 189385}}, +{16784, 18, 56884, {1, 1, 1, 15, 5, 21, 7, 5, 201, 881, 841, 827, 503, 3545, 17771, 64481, 65105, 209947}}, +{16785, 18, 56887, {1, 1, 1, 5, 3, 31, 83, 201, 455, 169, 1797, 1769, 1999, 8629, 14313, 16851, 64955, 180631}}, +{16786, 18, 56893, {1, 1, 5, 5, 1, 35, 49, 61, 499, 619, 1509, 3015, 237, 8979, 3471, 11513, 80193, 24135}}, +{16787, 18, 56906, {1, 3, 3, 9, 25, 29, 111, 19, 339, 739, 1751, 2671, 5399, 5965, 3943, 45577, 70605, 203117}}, +{16788, 18, 56932, {1, 3, 3, 7, 3, 9, 15, 147, 177, 545, 161, 2211, 4653, 15891, 15939, 19153, 77827, 245787}}, +{16789, 18, 56959, {1, 1, 1, 1, 25, 47, 37, 159, 273, 825, 1037, 2047, 7149, 5517, 699, 49687, 110115, 159475}}, +{16790, 18, 56965, {1, 3, 1, 7, 7, 55, 77, 231, 197, 381, 2013, 2421, 7551, 9955, 21031, 11365, 48271, 190147}}, +{16791, 18, 56983, {1, 1, 5, 9, 25, 1, 81, 145, 215, 427, 905, 2307, 6149, 12777, 131, 57091, 106137, 24625}}, +{16792, 18, 57018, {1, 3, 1, 13, 13, 63, 103, 245, 275, 745, 841, 2993, 2083, 8903, 4499, 55979, 22323, 244447}}, +{16793, 18, 57023, {1, 1, 5, 5, 15, 11, 59, 181, 191, 219, 599, 59, 1079, 4445, 16537, 31127, 103257, 233855}}, +{16794, 18, 57025, {1, 3, 7, 9, 9, 37, 109, 41, 145, 1001, 609, 551, 6843, 13791, 15103, 27851, 7693, 145207}}, +{16795, 18, 57032, {1, 3, 1, 9, 3, 35, 63, 219, 49, 567, 1537, 1327, 6487, 16039, 26019, 13851, 116929, 175121}}, +{16796, 18, 57040, {1, 3, 7, 15, 17, 31, 27, 91, 241, 229, 485, 2601, 3859, 12609, 19847, 31939, 50815, 235529}}, +{16797, 18, 57046, {1, 1, 5, 15, 27, 31, 3, 47, 69, 427, 95, 1445, 1223, 2953, 32343, 6841, 67851, 79561}}, +{16798, 18, 57071, {1, 3, 5, 13, 13, 37, 19, 127, 259, 139, 1597, 651, 4845, 6413, 18205, 56005, 32107, 140783}}, +{16799, 18, 57091, {1, 1, 7, 5, 15, 23, 81, 195, 127, 113, 499, 733, 5907, 12107, 18105, 28113, 16111, 152327}}, +{16800, 18, 57094, {1, 1, 5, 15, 9, 49, 109, 181, 187, 591, 1625, 3641, 313, 1225, 11725, 9047, 30351, 124301}}, +{16801, 18, 57108, {1, 3, 1, 1, 9, 45, 103, 219, 155, 805, 1775, 759, 1687, 11415, 21623, 37831, 18995, 21667}}, +{16802, 18, 57122, {1, 3, 3, 5, 25, 13, 11, 37, 489, 935, 373, 811, 5045, 3615, 2111, 22909, 117155, 69483}}, +{16803, 18, 57127, {1, 3, 3, 5, 9, 45, 71, 87, 265, 93, 161, 2983, 1023, 3633, 5965, 9499, 35653, 219257}}, +{16804, 18, 57168, {1, 1, 5, 13, 21, 27, 101, 231, 85, 469, 1023, 3735, 5093, 253, 22585, 61975, 81041, 4175}}, +{16805, 18, 57183, {1, 3, 1, 7, 5, 41, 105, 153, 391, 5, 1917, 331, 7679, 14359, 13177, 40755, 78669, 133527}}, +{16806, 18, 57184, {1, 3, 3, 15, 21, 61, 87, 63, 227, 195, 1095, 1629, 7787, 5887, 20855, 30203, 61973, 30627}}, +{16807, 18, 57193, {1, 3, 1, 15, 31, 41, 125, 223, 201, 717, 1309, 595, 5333, 10585, 32525, 8597, 92637, 111073}}, +{16808, 18, 57202, {1, 3, 5, 3, 21, 29, 39, 105, 275, 515, 503, 79, 6715, 14203, 14035, 20871, 122417, 243167}}, +{16809, 18, 57235, {1, 3, 7, 5, 29, 41, 3, 89, 165, 879, 773, 3989, 3945, 4771, 2809, 59105, 37177, 193887}}, +{16810, 18, 57237, {1, 3, 3, 3, 27, 1, 91, 191, 135, 257, 527, 2971, 7117, 6013, 8735, 52363, 110617, 96959}}, +{16811, 18, 57251, {1, 3, 7, 9, 3, 63, 67, 67, 231, 23, 1539, 771, 1485, 4331, 19231, 50539, 15081, 75945}}, +{16812, 18, 57289, {1, 3, 3, 11, 29, 11, 77, 67, 497, 861, 21, 2939, 2463, 14435, 27399, 19733, 118207, 60909}}, +{16813, 18, 57349, {1, 1, 5, 5, 1, 11, 117, 55, 485, 877, 1213, 2231, 2613, 14027, 18491, 45431, 113303, 28457}}, +{16814, 18, 57359, {1, 3, 7, 1, 13, 49, 77, 59, 455, 251, 1033, 3451, 7641, 389, 3987, 62361, 90125, 94569}}, +{16815, 18, 57374, {1, 1, 7, 15, 3, 5, 45, 173, 343, 445, 1871, 2505, 1385, 2641, 21299, 35139, 61781, 101195}}, +{16816, 18, 57377, {1, 3, 1, 9, 25, 27, 89, 123, 473, 901, 1513, 2585, 5641, 13123, 22653, 32985, 15763, 9161}}, +{16817, 18, 57387, {1, 3, 3, 9, 29, 41, 5, 127, 489, 715, 1981, 3953, 3557, 10081, 31913, 52191, 118727, 4443}}, +{16818, 18, 57415, {1, 1, 5, 1, 19, 57, 125, 33, 253, 297, 265, 2249, 6859, 14971, 3519, 24783, 127491, 210441}}, +{16819, 18, 57440, {1, 1, 7, 7, 31, 1, 47, 175, 305, 933, 679, 317, 7511, 13219, 9509, 61183, 58907, 72905}}, +{16820, 18, 57446, {1, 1, 1, 7, 13, 49, 75, 85, 341, 911, 1217, 3631, 1849, 9715, 23193, 947, 106647, 180455}}, +{16821, 18, 57450, {1, 1, 7, 7, 1, 49, 91, 195, 329, 771, 607, 1707, 2723, 291, 21393, 6549, 31645, 151431}}, +{16822, 18, 57469, {1, 3, 7, 5, 17, 57, 7, 231, 247, 217, 1729, 3231, 7515, 15341, 18681, 21733, 28723, 228187}}, +{16823, 18, 57491, {1, 1, 5, 9, 5, 19, 121, 251, 43, 951, 957, 173, 4863, 5027, 6781, 29421, 4877, 47749}}, +{16824, 18, 57503, {1, 3, 7, 7, 11, 33, 107, 233, 329, 589, 869, 913, 7687, 13223, 27577, 24379, 13037, 214713}}, +{16825, 18, 57507, {1, 3, 7, 13, 1, 13, 121, 103, 387, 193, 543, 3085, 4323, 9885, 24499, 34985, 45763, 13107}}, +{16826, 18, 57542, {1, 1, 3, 15, 25, 63, 85, 41, 457, 779, 1199, 2235, 309, 2549, 3341, 36265, 17873, 32361}}, +{16827, 18, 57569, {1, 3, 3, 3, 15, 31, 11, 57, 499, 415, 1625, 1195, 6863, 6073, 25083, 57705, 76203, 130993}}, +{16828, 18, 57599, {1, 3, 5, 5, 21, 13, 43, 161, 255, 31, 1901, 3325, 3209, 9809, 8227, 9005, 57263, 95095}}, +{16829, 18, 57601, {1, 1, 3, 15, 13, 33, 5, 123, 291, 579, 1747, 3319, 7351, 1679, 11365, 26909, 74445, 139017}}, +{16830, 18, 57607, {1, 1, 3, 13, 17, 39, 1, 253, 487, 935, 1711, 1397, 503, 7817, 28509, 20665, 78551, 204319}}, +{16831, 18, 57608, {1, 1, 3, 1, 5, 39, 123, 105, 305, 77, 63, 3285, 7463, 11199, 647, 37757, 91083, 108325}}, +{16832, 18, 57625, {1, 1, 7, 5, 9, 49, 121, 155, 389, 119, 1327, 3583, 7715, 2705, 20047, 19151, 101455, 205263}}, +{16833, 18, 57644, {1, 1, 5, 7, 31, 23, 13, 109, 103, 41, 433, 3609, 4973, 11481, 8381, 4725, 113633, 134651}}, +{16834, 18, 57662, {1, 3, 7, 7, 25, 25, 107, 189, 89, 625, 187, 2185, 713, 10107, 11139, 63681, 97005, 79329}}, +{16835, 18, 57664, {1, 3, 1, 11, 3, 41, 43, 161, 337, 955, 1035, 451, 5989, 3593, 18087, 22667, 110213, 128545}}, +{16836, 18, 57674, {1, 1, 5, 1, 25, 31, 95, 113, 205, 565, 557, 3885, 7163, 10703, 27159, 11395, 117459, 52439}}, +{16837, 18, 57698, {1, 1, 1, 5, 27, 31, 39, 61, 323, 983, 1361, 2387, 5401, 8287, 17855, 49783, 65327, 202861}}, +{16838, 18, 57700, {1, 3, 5, 3, 31, 39, 105, 113, 183, 311, 667, 945, 3677, 14623, 27907, 16673, 77899, 182863}}, +{16839, 18, 57709, {1, 1, 5, 3, 17, 27, 99, 93, 81, 805, 1799, 2855, 6859, 3917, 26177, 22307, 59213, 210123}}, +{16840, 18, 57724, {1, 3, 5, 1, 19, 37, 51, 65, 495, 229, 229, 1283, 2967, 5329, 24339, 58739, 23145, 7033}}, +{16841, 18, 57728, {1, 3, 3, 15, 11, 51, 121, 41, 75, 845, 1771, 3625, 6137, 3463, 11767, 45181, 70907, 42771}}, +{16842, 18, 57740, {1, 3, 7, 9, 15, 25, 55, 219, 265, 655, 167, 1247, 5409, 5623, 21045, 12333, 25799, 218601}}, +{16843, 18, 57745, {1, 3, 3, 13, 31, 39, 77, 155, 471, 969, 755, 2745, 3057, 3621, 32423, 48687, 9409, 90997}}, +{16844, 18, 57751, {1, 1, 3, 15, 27, 1, 77, 231, 147, 235, 2027, 4045, 7431, 14655, 6361, 43155, 9839, 161713}}, +{16845, 18, 57774, {1, 3, 7, 5, 25, 19, 25, 75, 415, 931, 457, 3691, 687, 4849, 15469, 42871, 37949, 74163}}, +{16846, 18, 57782, {1, 3, 5, 9, 17, 19, 29, 117, 387, 1021, 1159, 2467, 2585, 2563, 9155, 44763, 93319, 6321}}, +{16847, 18, 57796, {1, 3, 5, 7, 25, 33, 127, 175, 143, 705, 539, 2563, 945, 11369, 19971, 19019, 116195, 84121}}, +{16848, 18, 57803, {1, 3, 7, 7, 5, 55, 29, 1, 419, 715, 1275, 2983, 7853, 12245, 32109, 27371, 123547, 82723}}, +{16849, 18, 57823, {1, 1, 1, 13, 3, 29, 31, 213, 195, 609, 1465, 1711, 6747, 13309, 1131, 3151, 48779, 91571}}, +{16850, 18, 57863, {1, 1, 5, 3, 17, 7, 103, 7, 217, 87, 1641, 833, 4551, 14205, 15119, 6711, 111273, 200545}}, +{16851, 18, 57894, {1, 3, 1, 5, 3, 39, 99, 15, 433, 895, 165, 4049, 3183, 4385, 24695, 40009, 67151, 156643}}, +{16852, 18, 57925, {1, 1, 7, 3, 29, 9, 15, 27, 109, 1019, 327, 2837, 5297, 12455, 2355, 37703, 122995, 177871}}, +{16853, 18, 57971, {1, 1, 5, 15, 29, 5, 121, 117, 31, 155, 1027, 1105, 8057, 8677, 9523, 3019, 98801, 15539}}, +{16854, 18, 58013, {1, 3, 7, 3, 1, 1, 37, 67, 471, 317, 1571, 2801, 7383, 4339, 8095, 45685, 95885, 39577}}, +{16855, 18, 58020, {1, 3, 7, 13, 17, 13, 91, 79, 49, 321, 1235, 311, 129, 6537, 6643, 25813, 48251, 138823}}, +{16856, 18, 58032, {1, 1, 5, 3, 21, 19, 67, 61, 153, 611, 1819, 3755, 5959, 3419, 6117, 1159, 68925, 146199}}, +{16857, 18, 58038, {1, 1, 7, 9, 23, 3, 7, 13, 429, 463, 653, 3461, 6337, 4511, 18097, 44837, 99845, 37101}}, +{16858, 18, 58061, {1, 3, 5, 13, 9, 5, 123, 199, 83, 409, 1391, 1567, 7327, 8173, 30971, 18241, 7755, 185375}}, +{16859, 18, 58069, {1, 3, 1, 7, 19, 51, 51, 23, 85, 923, 1969, 2329, 7343, 12489, 16135, 64783, 117063, 141071}}, +{16860, 18, 58080, {1, 3, 1, 3, 23, 29, 5, 77, 207, 351, 367, 2097, 2639, 9255, 21971, 64167, 98069, 81153}}, +{16861, 18, 58089, {1, 1, 7, 15, 27, 1, 83, 255, 47, 935, 567, 3573, 3629, 5833, 483, 1001, 9337, 119847}}, +{16862, 18, 58107, {1, 3, 7, 11, 31, 53, 25, 35, 463, 51, 401, 3279, 7709, 11265, 17905, 40423, 26277, 43355}}, +{16863, 18, 58121, {1, 1, 7, 5, 9, 15, 73, 217, 239, 405, 1651, 2131, 6791, 11241, 21717, 7393, 77251, 28131}}, +{16864, 18, 58130, {1, 3, 5, 3, 13, 43, 115, 159, 215, 811, 1349, 2941, 2073, 1821, 6891, 17285, 72027, 137849}}, +{16865, 18, 58146, {1, 3, 3, 3, 15, 11, 29, 53, 307, 409, 1069, 3713, 3205, 6185, 2565, 14973, 46149, 162527}}, +{16866, 18, 58190, {1, 1, 3, 15, 21, 39, 61, 209, 211, 123, 697, 2285, 859, 2501, 5847, 56449, 106575, 261069}}, +{16867, 18, 58195, {1, 3, 3, 5, 25, 21, 39, 131, 189, 747, 1499, 1865, 3369, 9161, 12543, 63155, 70083, 69441}}, +{16868, 18, 58202, {1, 3, 1, 15, 31, 43, 127, 57, 169, 109, 979, 1399, 3065, 5865, 16891, 56003, 14319, 94109}}, +{16869, 18, 58237, {1, 1, 1, 13, 23, 57, 13, 239, 139, 41, 1959, 429, 209, 543, 21297, 15343, 16521, 52305}}, +{16870, 18, 58253, {1, 1, 7, 1, 17, 1, 115, 139, 93, 123, 867, 3257, 8135, 12089, 1503, 33287, 79283, 151419}}, +{16871, 18, 58299, {1, 3, 7, 7, 27, 17, 15, 253, 89, 959, 597, 2193, 3505, 13865, 2179, 58711, 114615, 15227}}, +{16872, 18, 58302, {1, 3, 7, 5, 1, 5, 105, 241, 361, 229, 1069, 3815, 1409, 4909, 31785, 46555, 123523, 53259}}, +{16873, 18, 58327, {1, 1, 5, 5, 15, 49, 13, 195, 467, 285, 1405, 3011, 2069, 8331, 13953, 31107, 46581, 154615}}, +{16874, 18, 58328, {1, 3, 5, 7, 21, 23, 17, 17, 345, 369, 1521, 3755, 2165, 15387, 2851, 11115, 60483, 236049}}, +{16875, 18, 58364, {1, 3, 3, 1, 5, 41, 53, 239, 127, 237, 609, 927, 3787, 5059, 1865, 52991, 56229, 102093}}, +{16876, 18, 58367, {1, 1, 7, 5, 23, 7, 15, 199, 325, 695, 1525, 3435, 3997, 11577, 22985, 57713, 94309, 218433}}, +{16877, 18, 58375, {1, 3, 3, 5, 25, 25, 61, 99, 237, 447, 1905, 783, 5239, 11415, 16833, 27815, 115539, 161111}}, +{16878, 18, 58394, {1, 1, 5, 9, 31, 49, 55, 199, 159, 751, 849, 1045, 5485, 8883, 8549, 11735, 35983, 161067}}, +{16879, 18, 58405, {1, 1, 5, 9, 23, 51, 79, 171, 87, 493, 1911, 3867, 3435, 493, 16639, 64085, 97797, 244959}}, +{16880, 18, 58417, {1, 1, 5, 11, 29, 33, 15, 107, 283, 545, 1995, 995, 7181, 3581, 8621, 42391, 117997, 397}}, +{16881, 18, 58424, {1, 3, 7, 13, 31, 25, 91, 75, 123, 451, 1023, 375, 4505, 13235, 8913, 34389, 77385, 168659}}, +{16882, 18, 58430, {1, 1, 3, 3, 3, 3, 85, 143, 173, 709, 1313, 593, 6931, 14609, 13803, 30305, 109089, 11473}}, +{16883, 18, 58452, {1, 3, 7, 5, 25, 45, 25, 223, 407, 597, 83, 2543, 3823, 13959, 9089, 28325, 29237, 57147}}, +{16884, 18, 58466, {1, 1, 1, 3, 25, 53, 57, 255, 231, 361, 109, 113, 6091, 13043, 28399, 29111, 57987, 137709}}, +{16885, 18, 58468, {1, 1, 1, 5, 11, 25, 53, 141, 275, 237, 1427, 1691, 6043, 8951, 10683, 17477, 117645, 89007}}, +{16886, 18, 58495, {1, 3, 3, 13, 7, 23, 73, 213, 285, 667, 1765, 1545, 1401, 12483, 6349, 47205, 25791, 16749}}, +{16887, 18, 58501, {1, 1, 1, 15, 31, 45, 105, 249, 385, 607, 723, 745, 7037, 15735, 3637, 29013, 127315, 165507}}, +{16888, 18, 58544, {1, 1, 7, 5, 21, 63, 95, 247, 161, 839, 939, 931, 4277, 7363, 8289, 55183, 122413, 152997}}, +{16889, 18, 58571, {1, 3, 7, 11, 15, 59, 91, 5, 209, 31, 1581, 979, 6289, 11443, 26641, 20183, 106907, 128647}}, +{16890, 18, 58609, {1, 1, 3, 15, 21, 33, 117, 89, 457, 405, 1971, 2211, 4379, 16189, 7933, 39351, 79813, 56373}}, +{16891, 18, 58610, {1, 3, 3, 9, 5, 9, 93, 75, 55, 271, 321, 3143, 3893, 2601, 26169, 35179, 43063, 156635}}, +{16892, 18, 58616, {1, 3, 3, 11, 29, 37, 95, 249, 221, 965, 423, 1637, 4663, 14839, 16757, 4261, 128453, 165593}}, +{16893, 18, 58619, {1, 3, 3, 7, 1, 55, 31, 235, 447, 839, 721, 1125, 6503, 4019, 23351, 37057, 96103, 143805}}, +{16894, 18, 58641, {1, 3, 7, 5, 31, 39, 7, 157, 469, 719, 1613, 395, 8133, 9753, 17323, 13849, 45409, 7601}}, +{16895, 18, 58642, {1, 3, 7, 7, 31, 37, 89, 215, 453, 659, 605, 3325, 987, 4611, 29667, 23229, 4201, 229675}}, +{16896, 18, 58648, {1, 1, 5, 5, 3, 3, 21, 249, 377, 343, 1751, 891, 5275, 14853, 32703, 51001, 6759, 162991}}, +{16897, 18, 58660, {1, 3, 1, 13, 11, 21, 55, 17, 495, 481, 1817, 919, 2495, 16367, 3343, 16997, 83437, 127791}}, +{16898, 18, 58675, {1, 3, 1, 1, 5, 57, 65, 223, 33, 491, 1953, 1521, 4903, 5007, 14583, 17321, 82231, 206299}}, +{16899, 18, 58678, {1, 3, 7, 11, 21, 45, 55, 141, 185, 379, 851, 885, 3385, 10311, 701, 2983, 71045, 171525}}, +{16900, 18, 58690, {1, 3, 7, 3, 29, 1, 53, 139, 7, 985, 291, 3949, 1163, 14637, 363, 59679, 121571, 121081}}, +{16901, 18, 58735, {1, 3, 7, 1, 31, 1, 111, 19, 421, 917, 1529, 1361, 4461, 12457, 9791, 19985, 77283, 117059}}, +{16902, 18, 58760, {1, 3, 1, 5, 7, 55, 93, 243, 477, 193, 1983, 489, 3735, 1391, 24035, 36395, 49101, 175861}}, +{16903, 18, 58766, {1, 1, 1, 11, 3, 25, 69, 167, 351, 193, 1299, 617, 7455, 2545, 18359, 9951, 119513, 128139}}, +{16904, 18, 58799, {1, 3, 3, 7, 5, 23, 101, 47, 385, 591, 345, 3501, 531, 3277, 28945, 18695, 58587, 87221}}, +{16905, 18, 58825, {1, 1, 3, 3, 29, 47, 5, 91, 365, 1, 2015, 323, 1601, 10615, 28975, 60263, 4813, 143351}}, +{16906, 18, 58836, {1, 3, 1, 7, 25, 43, 65, 211, 91, 759, 985, 3675, 5701, 4373, 27781, 51949, 40667, 102665}}, +{16907, 18, 58855, {1, 3, 3, 5, 3, 43, 91, 33, 247, 593, 849, 1955, 7769, 2307, 2877, 26037, 28907, 211021}}, +{16908, 18, 58864, {1, 3, 5, 15, 29, 29, 85, 97, 99, 979, 2033, 1415, 2955, 15733, 5567, 6241, 100195, 89077}}, +{16909, 18, 58910, {1, 3, 7, 13, 13, 19, 121, 211, 381, 73, 1131, 1881, 1693, 7873, 27557, 201, 24997, 202471}}, +{16910, 18, 58937, {1, 3, 1, 15, 15, 33, 11, 99, 479, 271, 1873, 1117, 3559, 6605, 15995, 44805, 12465, 71933}}, +{16911, 18, 58943, {1, 3, 5, 3, 19, 61, 15, 55, 423, 431, 1321, 3345, 1633, 4587, 24909, 54985, 31831, 181083}}, +{16912, 18, 58952, {1, 1, 3, 5, 29, 43, 49, 205, 415, 907, 1651, 57, 3043, 10763, 16255, 9567, 59453, 135637}}, +{16913, 18, 58965, {1, 3, 3, 1, 17, 11, 29, 33, 293, 203, 1687, 1565, 6131, 5435, 29023, 28425, 102151, 251913}}, +{16914, 18, 58988, {1, 1, 5, 7, 9, 9, 43, 191, 269, 681, 607, 3045, 2799, 14919, 8083, 57781, 19345, 49365}}, +{16915, 18, 58994, {1, 1, 5, 13, 11, 53, 67, 127, 117, 395, 575, 1651, 2601, 15019, 21413, 34433, 66847, 84159}}, +{16916, 18, 58999, {1, 3, 5, 5, 15, 59, 33, 41, 301, 699, 1479, 2285, 1813, 2459, 4775, 53213, 26039, 223155}}, +{16917, 18, 59006, {1, 3, 1, 15, 17, 57, 5, 211, 357, 175, 945, 3625, 3943, 12871, 26805, 29305, 8839, 107837}}, +{16918, 18, 59029, {1, 3, 5, 15, 21, 41, 105, 229, 265, 777, 2047, 767, 2901, 8873, 7631, 18545, 86697, 252965}}, +{16919, 18, 59033, {1, 1, 5, 11, 31, 63, 115, 119, 271, 921, 1221, 3341, 6083, 4293, 28581, 57323, 33889, 112577}}, +{16920, 18, 59069, {1, 1, 5, 5, 31, 21, 119, 93, 287, 139, 451, 2535, 3925, 10671, 21279, 55071, 76127, 248203}}, +{16921, 18, 59096, {1, 3, 7, 11, 19, 61, 61, 53, 203, 181, 963, 3581, 519, 14679, 7717, 31981, 128709, 197269}}, +{16922, 18, 59106, {1, 1, 1, 13, 25, 23, 89, 95, 221, 803, 1433, 3617, 3217, 2033, 7859, 14279, 107239, 5139}}, +{16923, 18, 59123, {1, 3, 7, 3, 29, 41, 87, 21, 71, 959, 1149, 2961, 7471, 11665, 16037, 5791, 110155, 35365}}, +{16924, 18, 59130, {1, 1, 1, 11, 21, 49, 101, 45, 311, 529, 1301, 1377, 983, 3937, 6967, 8413, 33511, 9617}}, +{16925, 18, 59152, {1, 3, 3, 5, 15, 41, 107, 49, 409, 537, 289, 3351, 5307, 16221, 907, 39847, 61579, 161487}}, +{16926, 18, 59162, {1, 1, 3, 11, 5, 49, 71, 107, 431, 469, 453, 1367, 7811, 10485, 3861, 62797, 82025, 253785}}, +{16927, 18, 59180, {1, 1, 3, 3, 27, 19, 89, 13, 445, 915, 1259, 1423, 3987, 3661, 18183, 18521, 18831, 191447}}, +{16928, 18, 59183, {1, 1, 7, 5, 13, 15, 9, 89, 129, 949, 1733, 245, 6815, 8477, 1273, 34737, 33027, 191415}}, +{16929, 18, 59195, {1, 1, 7, 15, 25, 63, 83, 195, 319, 987, 1395, 3559, 6287, 5139, 25967, 48711, 58467, 110983}}, +{16930, 18, 59205, {1, 1, 3, 9, 5, 3, 35, 171, 15, 883, 915, 2451, 871, 11741, 32715, 33475, 81711, 259157}}, +{16931, 18, 59210, {1, 1, 7, 13, 23, 63, 33, 11, 117, 351, 1701, 671, 6753, 5, 9477, 54701, 65507, 242621}}, +{16932, 18, 59217, {1, 3, 7, 11, 21, 37, 127, 143, 369, 819, 1369, 93, 7009, 3773, 30153, 30181, 120783, 137857}}, +{16933, 18, 59218, {1, 3, 3, 7, 27, 61, 15, 141, 67, 815, 1449, 1129, 4703, 3811, 3067, 61697, 8881, 110957}}, +{16934, 18, 59236, {1, 1, 7, 13, 31, 21, 59, 75, 335, 851, 503, 251, 4869, 11789, 30871, 14641, 19319, 156843}}, +{16935, 18, 59267, {1, 3, 5, 5, 9, 41, 11, 67, 231, 945, 37, 2925, 5723, 9053, 13477, 59735, 75181, 60335}}, +{16936, 18, 59298, {1, 1, 5, 1, 13, 39, 81, 43, 363, 611, 1661, 3833, 7387, 10531, 21319, 55579, 102705, 103009}}, +{16937, 18, 59318, {1, 3, 1, 7, 23, 25, 67, 179, 327, 401, 1693, 1453, 4773, 6363, 27169, 49747, 29055, 49145}}, +{16938, 18, 59321, {1, 3, 5, 7, 13, 47, 5, 175, 369, 921, 507, 113, 6069, 10919, 11099, 19795, 95819, 52419}}, +{16939, 18, 59327, {1, 1, 1, 5, 5, 53, 93, 47, 75, 837, 109, 3691, 6961, 10715, 14269, 63791, 1941, 136899}}, +{16940, 18, 59354, {1, 1, 1, 3, 1, 63, 57, 117, 157, 327, 879, 2411, 3987, 15393, 8503, 29829, 77795, 121307}}, +{16941, 18, 59363, {1, 3, 5, 1, 25, 5, 47, 45, 433, 121, 607, 1233, 6433, 3031, 16369, 58589, 79357, 151353}}, +{16942, 18, 59377, {1, 1, 1, 1, 9, 15, 77, 163, 225, 445, 1479, 1267, 2571, 2661, 21489, 5433, 123969, 191967}}, +{16943, 18, 59389, {1, 1, 7, 1, 9, 49, 17, 19, 449, 113, 1289, 2335, 3309, 2595, 17819, 18481, 86605, 125911}}, +{16944, 18, 59403, {1, 1, 5, 11, 11, 23, 65, 147, 257, 625, 1901, 913, 5711, 8159, 16237, 25133, 100059, 11395}}, +{16945, 18, 59420, {1, 3, 7, 13, 5, 33, 89, 189, 171, 185, 751, 2915, 5025, 15981, 14853, 12229, 52829, 59953}}, +{16946, 18, 59444, {1, 3, 1, 13, 3, 37, 15, 87, 463, 655, 1927, 2705, 1885, 14801, 3491, 52835, 81761, 90273}}, +{16947, 18, 59471, {1, 1, 7, 3, 5, 15, 29, 255, 199, 225, 647, 3215, 6795, 3821, 31763, 31059, 65495, 89981}}, +{16948, 18, 59476, {1, 1, 7, 7, 9, 25, 11, 85, 111, 283, 507, 2077, 2993, 5415, 31785, 16495, 82361, 122105}}, +{16949, 18, 59483, {1, 1, 3, 11, 27, 21, 127, 175, 397, 419, 1115, 2285, 223, 3881, 4187, 53759, 115035, 181647}}, +{16950, 18, 59502, {1, 3, 7, 11, 27, 31, 29, 233, 137, 827, 1009, 3879, 7595, 12989, 27655, 8517, 28083, 214985}}, +{16951, 18, 59509, {1, 3, 5, 9, 25, 23, 85, 191, 475, 445, 621, 1341, 4045, 4299, 24933, 32765, 20219, 86949}}, +{16952, 18, 59538, {1, 3, 1, 5, 25, 35, 121, 33, 199, 405, 163, 3487, 1087, 743, 21989, 47273, 49221, 124831}}, +{16953, 18, 59556, {1, 1, 5, 1, 7, 3, 91, 15, 335, 351, 1311, 777, 4303, 7203, 19465, 9135, 32251, 69805}}, +{16954, 18, 59571, {1, 3, 3, 7, 23, 55, 73, 77, 189, 801, 1877, 1901, 2675, 1015, 3041, 35925, 125903, 126227}}, +{16955, 18, 59592, {1, 3, 3, 1, 1, 23, 105, 75, 435, 743, 651, 1045, 579, 13637, 14821, 62683, 95229, 156475}}, +{16956, 18, 59610, {1, 3, 3, 5, 1, 53, 89, 239, 439, 195, 189, 731, 1805, 15123, 23315, 47737, 29167, 112081}}, +{16957, 18, 59654, {1, 1, 5, 7, 31, 11, 119, 191, 155, 61, 247, 915, 5813, 995, 20093, 23379, 118969, 65001}}, +{16958, 18, 59677, {1, 3, 7, 3, 1, 61, 45, 85, 295, 269, 539, 1787, 6639, 11093, 11303, 18509, 77637, 200743}}, +{16959, 18, 59699, {1, 3, 1, 1, 13, 17, 75, 51, 199, 151, 1529, 1443, 4983, 6723, 6071, 34711, 39159, 5441}}, +{16960, 18, 59716, {1, 3, 3, 3, 31, 15, 91, 125, 261, 683, 1769, 1697, 2761, 11373, 13607, 24933, 19079, 55497}}, +{16961, 18, 59719, {1, 1, 1, 15, 21, 49, 117, 99, 29, 969, 463, 3869, 1251, 8815, 16443, 46861, 82839, 233325}}, +{16962, 18, 59737, {1, 3, 5, 3, 27, 39, 89, 225, 161, 63, 61, 2875, 4037, 10413, 5067, 27893, 78825, 250207}}, +{16963, 18, 59747, {1, 1, 1, 9, 13, 49, 93, 11, 23, 25, 2003, 57, 3065, 11241, 13935, 2969, 44235, 39287}}, +{16964, 18, 59789, {1, 3, 3, 9, 21, 5, 55, 247, 193, 523, 575, 1235, 3277, 5253, 5293, 7919, 7573, 168809}}, +{16965, 18, 59807, {1, 3, 1, 13, 29, 39, 43, 21, 511, 205, 303, 703, 3861, 2467, 3909, 31597, 51081, 9863}}, +{16966, 18, 59811, {1, 3, 7, 1, 25, 55, 11, 131, 5, 49, 371, 1683, 1907, 5661, 1015, 15171, 101477, 11221}}, +{16967, 18, 59818, {1, 3, 5, 5, 9, 15, 93, 245, 357, 703, 701, 3675, 4527, 9225, 16137, 55433, 81887, 99153}}, +{16968, 18, 59825, {1, 1, 3, 3, 11, 1, 39, 251, 291, 599, 643, 231, 4031, 7055, 99, 14039, 81811, 184251}}, +{16969, 18, 59826, {1, 3, 5, 13, 29, 55, 11, 117, 325, 401, 2013, 3235, 995, 9255, 2741, 8211, 71451, 180619}}, +{16970, 18, 59832, {1, 1, 1, 5, 31, 41, 41, 175, 247, 3, 739, 1391, 3311, 5975, 16921, 4291, 75065, 161745}}, +{16971, 18, 59858, {1, 1, 7, 13, 23, 19, 13, 149, 203, 351, 2033, 1867, 3871, 14437, 3793, 17399, 99577, 171605}}, +{16972, 18, 59860, {1, 1, 5, 11, 7, 9, 1, 195, 261, 977, 315, 3771, 1179, 16281, 20747, 56309, 108609, 209205}}, +{16973, 18, 59873, {1, 3, 3, 5, 19, 15, 123, 153, 325, 601, 393, 753, 93, 4803, 24343, 42645, 128209, 45773}}, +{16974, 18, 59876, {1, 3, 1, 13, 3, 29, 97, 95, 115, 539, 155, 2789, 1277, 13127, 20383, 52807, 97295, 54589}}, +{16975, 18, 59907, {1, 1, 1, 3, 25, 59, 27, 149, 365, 317, 773, 3379, 5931, 14637, 19881, 37283, 118027, 21557}}, +{16976, 18, 59928, {1, 3, 5, 3, 25, 11, 101, 221, 199, 689, 515, 2255, 6107, 6259, 2853, 19039, 117089, 107181}}, +{16977, 18, 59933, {1, 3, 5, 7, 29, 63, 19, 113, 249, 147, 737, 3959, 209, 7001, 24263, 20443, 99923, 145709}}, +{16978, 18, 59938, {1, 1, 5, 9, 25, 37, 69, 41, 87, 369, 1913, 2255, 7581, 5301, 25751, 24981, 1183, 171969}}, +{16979, 18, 59940, {1, 3, 3, 1, 9, 25, 55, 5, 267, 295, 43, 819, 4569, 7065, 31527, 57811, 48721, 107707}}, +{16980, 18, 59958, {1, 1, 7, 9, 19, 19, 1, 199, 371, 1003, 597, 2097, 4071, 6185, 879, 13545, 30033, 120313}}, +{16981, 18, 59984, {1, 1, 1, 7, 9, 11, 51, 155, 309, 493, 899, 3121, 2085, 10541, 21979, 4725, 70381, 69643}}, +{16982, 18, 60020, {1, 1, 1, 1, 13, 45, 123, 119, 459, 295, 1005, 4093, 393, 11063, 27235, 28209, 1671, 215619}}, +{16983, 18, 60024, {1, 1, 7, 13, 19, 25, 125, 255, 509, 529, 1577, 3221, 4051, 7697, 2065, 42597, 86295, 131719}}, +{16984, 18, 60033, {1, 3, 3, 9, 19, 13, 21, 199, 97, 949, 1297, 379, 1801, 13247, 22563, 49517, 22757, 87371}}, +{16985, 18, 60034, {1, 3, 3, 1, 17, 63, 109, 175, 301, 565, 1181, 465, 3457, 7175, 21225, 33149, 122169, 148043}}, +{16986, 18, 60063, {1, 1, 1, 1, 5, 7, 21, 251, 53, 369, 955, 583, 4703, 9729, 15853, 55701, 29317, 27}}, +{16987, 18, 60070, {1, 3, 3, 1, 31, 3, 53, 57, 231, 441, 109, 149, 8107, 2303, 29729, 42279, 46909, 209877}}, +{16988, 18, 60087, {1, 1, 1, 11, 23, 57, 63, 189, 259, 657, 1653, 1155, 2885, 3317, 22559, 3145, 19151, 172507}}, +{16989, 18, 60091, {1, 3, 7, 5, 31, 63, 103, 147, 287, 685, 1197, 99, 4907, 12335, 12001, 20303, 75503, 231259}}, +{16990, 18, 60105, {1, 3, 3, 13, 15, 33, 63, 11, 99, 299, 97, 2669, 3635, 9969, 1525, 36555, 85215, 86915}}, +{16991, 18, 60126, {1, 3, 7, 5, 25, 47, 25, 61, 227, 939, 1719, 245, 2389, 14663, 30671, 22667, 38873, 245509}}, +{16992, 18, 60132, {1, 1, 3, 5, 25, 15, 105, 203, 57, 961, 1941, 1241, 3163, 6203, 19631, 10383, 19235, 57569}}, +{16993, 18, 60154, {1, 1, 3, 9, 1, 35, 41, 3, 449, 87, 641, 269, 1529, 14559, 16571, 4863, 21625, 921}}, +{16994, 18, 60174, {1, 1, 7, 11, 25, 53, 85, 209, 181, 417, 1657, 2117, 4581, 7069, 15533, 64475, 82381, 146943}}, +{16995, 18, 60181, {1, 3, 1, 7, 17, 53, 5, 199, 347, 887, 1041, 595, 1843, 10931, 30559, 42849, 73723, 220473}}, +{16996, 18, 60198, {1, 3, 7, 7, 21, 53, 105, 21, 141, 575, 1965, 2187, 7293, 13675, 2471, 1259, 42485, 62911}}, +{16997, 18, 60212, {1, 1, 3, 9, 5, 27, 21, 101, 101, 71, 1215, 3235, 2451, 14835, 27817, 30079, 124301, 253691}}, +{16998, 18, 60247, {1, 1, 7, 1, 11, 37, 105, 127, 115, 157, 279, 2425, 2139, 131, 22717, 40803, 74867, 86021}}, +{16999, 18, 60254, {1, 1, 1, 7, 11, 59, 95, 61, 255, 523, 501, 2895, 7531, 8151, 18393, 42069, 120809, 236537}}, +{17000, 18, 60275, {1, 1, 1, 7, 17, 23, 31, 59, 377, 187, 873, 1565, 3459, 2975, 11633, 13247, 13095, 193803}}, +{17001, 18, 60284, {1, 3, 7, 1, 25, 3, 85, 5, 485, 451, 1385, 1663, 4825, 14019, 29437, 33717, 105343, 161335}}, +{17002, 18, 60317, {1, 1, 1, 3, 27, 43, 71, 167, 425, 579, 1739, 3557, 7403, 2023, 6533, 61177, 119273, 85229}}, +{17003, 18, 60318, {1, 1, 7, 3, 31, 37, 19, 213, 373, 505, 97, 3669, 7005, 2205, 26519, 61999, 18395, 25967}}, +{17004, 18, 60346, {1, 3, 3, 7, 29, 17, 9, 137, 265, 875, 887, 3029, 3295, 11619, 8357, 46241, 23543, 43191}}, +{17005, 18, 60360, {1, 1, 5, 1, 25, 43, 33, 133, 65, 7, 1581, 3577, 5997, 6129, 30649, 18923, 56459, 227869}}, +{17006, 18, 60380, {1, 1, 5, 13, 27, 45, 27, 111, 429, 565, 1449, 1475, 6613, 4469, 16083, 42349, 66843, 214875}}, +{17007, 18, 60389, {1, 3, 1, 1, 21, 21, 107, 7, 15, 675, 233, 4021, 1097, 1393, 6445, 3323, 102435, 249355}}, +{17008, 18, 60393, {1, 1, 5, 15, 17, 51, 99, 249, 437, 667, 1921, 2371, 3813, 10543, 19, 39079, 116825, 242821}}, +{17009, 18, 60401, {1, 1, 1, 1, 7, 15, 27, 29, 161, 37, 1847, 287, 4379, 1399, 24547, 60361, 68131, 232883}}, +{17010, 18, 60407, {1, 1, 3, 9, 17, 21, 41, 169, 61, 771, 241, 1435, 4151, 1789, 12195, 27239, 62371, 165145}}, +{17011, 18, 60408, {1, 3, 5, 15, 31, 19, 127, 181, 463, 183, 749, 253, 2403, 1363, 3965, 7953, 124025, 226691}}, +{17012, 18, 60462, {1, 1, 3, 7, 17, 57, 85, 89, 17, 33, 819, 2191, 1525, 15651, 23483, 26027, 86379, 40191}}, +{17013, 18, 60484, {1, 1, 5, 1, 9, 45, 65, 65, 359, 5, 531, 2581, 6313, 13219, 6005, 36215, 16275, 208253}}, +{17014, 18, 60505, {1, 3, 1, 1, 23, 15, 51, 43, 85, 461, 773, 219, 2681, 3377, 9797, 54469, 112871, 231533}}, +{17015, 18, 60521, {1, 3, 7, 7, 15, 9, 97, 115, 301, 493, 1085, 2021, 2305, 15003, 11381, 9339, 63015, 179115}}, +{17016, 18, 60527, {1, 3, 5, 3, 3, 61, 111, 103, 283, 7, 143, 353, 7815, 7901, 25795, 7577, 92991, 228315}}, +{17017, 18, 60532, {1, 1, 7, 13, 29, 3, 53, 105, 83, 531, 497, 729, 1375, 7063, 18655, 35219, 9671, 102913}}, +{17018, 18, 60545, {1, 1, 5, 15, 11, 7, 65, 31, 15, 921, 743, 1469, 5669, 5437, 20019, 28123, 5717, 6181}}, +{17019, 18, 60546, {1, 3, 3, 15, 19, 1, 3, 183, 315, 595, 1033, 3259, 7815, 8281, 32103, 8699, 59149, 56657}}, +{17020, 18, 60555, {1, 1, 1, 7, 9, 1, 87, 81, 267, 637, 1617, 2113, 487, 23, 11213, 29211, 92715, 177767}}, +{17021, 18, 60563, {1, 3, 5, 13, 29, 37, 31, 55, 343, 759, 813, 2945, 7189, 4821, 30661, 38373, 2793, 98683}}, +{17022, 18, 60586, {1, 3, 5, 7, 9, 43, 113, 145, 103, 303, 1065, 3781, 3527, 9449, 17355, 38301, 74859, 30735}}, +{17023, 18, 60626, {1, 1, 1, 1, 3, 53, 53, 27, 119, 701, 1777, 3959, 5911, 8473, 24997, 17557, 11593, 201381}}, +{17024, 18, 60637, {1, 3, 3, 9, 3, 3, 107, 115, 423, 531, 735, 931, 8053, 4661, 1919, 29551, 62515, 210255}}, +{17025, 18, 60665, {1, 1, 3, 9, 21, 21, 117, 67, 301, 49, 2025, 781, 7951, 15719, 27287, 34551, 115241, 243981}}, +{17026, 18, 60673, {1, 1, 7, 9, 9, 25, 87, 229, 375, 353, 445, 3169, 1865, 7305, 11175, 47081, 28609, 107301}}, +{17027, 18, 60685, {1, 3, 3, 11, 7, 31, 19, 177, 17, 535, 1353, 2587, 7723, 8039, 13607, 5017, 104937, 207761}}, +{17028, 18, 60703, {1, 1, 5, 3, 11, 27, 29, 193, 235, 435, 1451, 3487, 5749, 4825, 9487, 53933, 92061, 223305}}, +{17029, 18, 60734, {1, 3, 3, 3, 5, 5, 99, 237, 91, 945, 1373, 3303, 3079, 5345, 6843, 34131, 62851, 259561}}, +{17030, 18, 60742, {1, 1, 3, 7, 7, 25, 11, 27, 329, 37, 307, 771, 659, 13045, 25767, 18887, 54407, 251313}}, +{17031, 18, 60790, {1, 1, 1, 11, 29, 59, 37, 121, 281, 55, 495, 159, 3925, 4447, 14825, 24831, 103147, 211951}}, +{17032, 18, 60830, {1, 3, 3, 7, 23, 31, 59, 67, 303, 383, 1179, 2347, 4001, 14797, 14579, 55365, 112239, 65309}}, +{17033, 18, 60848, {1, 3, 3, 9, 15, 17, 61, 123, 339, 319, 765, 1517, 1269, 69, 9065, 32347, 21377, 38449}}, +{17034, 18, 60857, {1, 3, 5, 3, 7, 35, 71, 63, 251, 457, 351, 385, 4041, 11489, 14511, 11875, 45307, 205041}}, +{17035, 18, 60871, {1, 1, 1, 7, 1, 25, 115, 195, 41, 1001, 835, 767, 7991, 7475, 22397, 36899, 77255, 194827}}, +{17036, 18, 60875, {1, 3, 3, 11, 7, 49, 45, 13, 373, 167, 741, 2569, 3781, 1131, 2909, 40387, 77877, 201859}}, +{17037, 18, 60913, {1, 3, 5, 3, 17, 11, 123, 137, 65, 835, 1385, 1157, 7387, 12301, 5759, 13137, 30595, 50923}}, +{17038, 18, 60923, {1, 1, 5, 7, 1, 55, 57, 97, 377, 223, 115, 2515, 2565, 14965, 10485, 23957, 108239, 160707}}, +{17039, 18, 60972, {1, 3, 1, 9, 15, 17, 81, 65, 387, 275, 997, 1485, 4129, 999, 4915, 55867, 103799, 191829}}, +{17040, 18, 60989, {1, 1, 1, 5, 15, 5, 35, 167, 249, 419, 267, 503, 469, 3163, 19939, 65501, 88573, 11621}}, +{17041, 18, 61001, {1, 3, 3, 13, 7, 9, 101, 125, 371, 97, 1855, 1755, 4103, 12283, 18655, 5965, 17743, 254779}}, +{17042, 18, 61002, {1, 1, 3, 7, 13, 15, 119, 227, 451, 863, 1005, 491, 6515, 717, 12783, 14161, 106249, 185297}}, +{17043, 18, 61019, {1, 1, 7, 13, 17, 23, 95, 143, 133, 219, 897, 2291, 7469, 923, 22323, 60583, 2457, 197231}}, +{17044, 18, 61022, {1, 1, 1, 11, 3, 25, 115, 187, 319, 999, 867, 1725, 6969, 239, 2527, 55283, 91099, 252153}}, +{17045, 18, 61059, {1, 1, 7, 9, 3, 37, 107, 25, 425, 95, 631, 2831, 1265, 11509, 18865, 39791, 22281, 220517}}, +{17046, 18, 61065, {1, 3, 5, 1, 1, 47, 121, 173, 489, 241, 3, 3707, 7081, 5341, 23143, 7321, 30605, 191665}}, +{17047, 18, 61066, {1, 1, 7, 7, 7, 27, 23, 43, 145, 11, 1155, 691, 6993, 9509, 5991, 40705, 58215, 202915}}, +{17048, 18, 61071, {1, 3, 5, 1, 31, 1, 7, 189, 379, 431, 417, 3843, 3885, 3263, 16333, 58123, 68307, 33795}}, +{17049, 18, 61076, {1, 1, 5, 5, 19, 27, 19, 217, 509, 535, 287, 1637, 4829, 2665, 15393, 35185, 125335, 10909}}, +{17050, 18, 61141, {1, 3, 5, 7, 25, 13, 67, 243, 255, 1021, 1203, 821, 7811, 149, 26731, 12913, 18171, 101385}}, +{17051, 18, 61148, {1, 1, 1, 3, 25, 61, 59, 207, 449, 789, 1831, 1731, 513, 10099, 291, 1963, 100233, 21847}}, +{17052, 18, 61167, {1, 1, 7, 1, 27, 19, 45, 81, 479, 31, 707, 2669, 3589, 15411, 12089, 38235, 60897, 135451}}, +{17053, 18, 61190, {1, 3, 5, 15, 11, 3, 113, 169, 171, 21, 1291, 2031, 2023, 5783, 6137, 54637, 50247, 233753}}, +{17054, 18, 61218, {1, 1, 5, 1, 11, 13, 73, 97, 269, 801, 1015, 1329, 1779, 15225, 24251, 35191, 8619, 130993}}, +{17055, 18, 61247, {1, 1, 7, 9, 9, 19, 35, 255, 505, 513, 547, 405, 3065, 4965, 30877, 50091, 81319, 29273}}, +{17056, 18, 61256, {1, 1, 1, 9, 7, 61, 45, 75, 343, 911, 1683, 453, 1225, 10939, 19901, 63685, 123507, 252027}}, +{17057, 18, 61289, {1, 1, 5, 11, 21, 55, 37, 161, 143, 463, 1937, 3349, 2953, 14827, 7893, 26581, 128459, 72325}}, +{17058, 18, 61292, {1, 3, 5, 9, 31, 57, 115, 77, 225, 859, 621, 731, 5677, 759, 20773, 52285, 65555, 4303}}, +{17059, 18, 61307, {1, 1, 3, 15, 23, 15, 49, 171, 137, 449, 855, 565, 5579, 5957, 13643, 8979, 90327, 116349}}, +{17060, 18, 61319, {1, 1, 3, 5, 9, 13, 27, 43, 391, 595, 731, 101, 7121, 13555, 29181, 38273, 42309, 175297}}, +{17061, 18, 61353, {1, 1, 3, 11, 3, 59, 17, 143, 251, 47, 1391, 1297, 23, 15871, 13153, 44081, 65423, 54875}}, +{17062, 18, 61362, {1, 3, 7, 11, 25, 43, 3, 163, 273, 277, 755, 2743, 5909, 10841, 31331, 64131, 13945, 91557}}, +{17063, 18, 61379, {1, 3, 1, 13, 31, 35, 5, 165, 417, 623, 1083, 1221, 1051, 8917, 6725, 11385, 76315, 119837}}, +{17064, 18, 61382, {1, 1, 5, 3, 21, 53, 47, 247, 471, 877, 709, 2425, 3, 1963, 24331, 52151, 98859, 119033}}, +{17065, 18, 61433, {1, 1, 7, 3, 29, 29, 43, 59, 503, 891, 763, 2927, 1613, 9091, 10393, 36003, 61147, 3437}}, +{17066, 18, 61434, {1, 1, 5, 15, 27, 59, 73, 163, 425, 855, 349, 3451, 5779, 10523, 9103, 46477, 129873, 39091}}, +{17067, 18, 61454, {1, 3, 7, 15, 25, 45, 77, 171, 467, 1017, 1553, 1877, 5507, 3909, 12157, 60441, 98261, 37781}}, +{17068, 18, 61461, {1, 1, 7, 13, 13, 39, 99, 51, 197, 327, 1101, 2679, 8025, 11853, 7763, 62537, 96999, 88673}}, +{17069, 18, 61475, {1, 3, 1, 11, 5, 61, 29, 219, 471, 387, 319, 433, 5383, 3933, 27603, 61171, 104711, 233295}}, +{17070, 18, 61481, {1, 3, 5, 11, 15, 23, 91, 119, 207, 717, 1333, 783, 437, 13073, 10923, 27049, 87233, 174899}}, +{17071, 18, 61534, {1, 1, 1, 1, 13, 19, 109, 139, 183, 299, 1023, 3265, 5153, 6307, 27879, 55311, 95201, 19481}}, +{17072, 18, 61547, {1, 1, 5, 11, 13, 61, 81, 115, 53, 483, 693, 3527, 5033, 8527, 31345, 46155, 12403, 126815}}, +{17073, 18, 61564, {1, 3, 7, 3, 27, 7, 73, 227, 269, 683, 719, 763, 5417, 9523, 13625, 6945, 116225, 223093}}, +{17074, 18, 61568, {1, 3, 5, 9, 21, 51, 111, 157, 451, 247, 1375, 1631, 2783, 3371, 22713, 34153, 41949, 141351}}, +{17075, 18, 61588, {1, 1, 5, 1, 21, 19, 45, 69, 41, 453, 523, 3163, 7351, 4467, 18865, 35371, 129577, 78039}}, +{17076, 18, 61604, {1, 3, 5, 1, 29, 33, 13, 19, 341, 321, 117, 1187, 7021, 5785, 5553, 58055, 113557, 46957}}, +{17077, 18, 61626, {1, 1, 5, 5, 13, 59, 47, 59, 69, 125, 1491, 2813, 5005, 5973, 3145, 27579, 7763, 129949}}, +{17078, 18, 61645, {1, 1, 7, 11, 11, 7, 117, 235, 407, 749, 1925, 1735, 4499, 13027, 19355, 1981, 105657, 242853}}, +{17079, 18, 61646, {1, 1, 7, 1, 15, 19, 5, 247, 203, 707, 809, 2085, 5801, 9947, 569, 9883, 109861, 156751}}, +{17080, 18, 61654, {1, 3, 5, 3, 13, 59, 67, 181, 261, 873, 1589, 2249, 7213, 14625, 28403, 41101, 73439, 46873}}, +{17081, 18, 61663, {1, 1, 5, 7, 3, 63, 79, 115, 123, 485, 1373, 3781, 4315, 4627, 29003, 64101, 67521, 184053}}, +{17082, 18, 61669, {1, 1, 3, 9, 11, 57, 93, 243, 505, 189, 449, 643, 5267, 7447, 32265, 44095, 63015, 36905}}, +{17083, 18, 61702, {1, 3, 7, 13, 25, 59, 31, 93, 401, 41, 183, 759, 2473, 8705, 8211, 13543, 59749, 235217}}, +{17084, 18, 61705, {1, 1, 5, 5, 29, 3, 65, 133, 325, 239, 649, 3225, 4095, 11691, 4479, 15419, 100551, 261981}}, +{17085, 18, 61714, {1, 3, 7, 1, 17, 11, 63, 97, 431, 161, 1437, 3679, 1643, 10583, 20731, 45919, 94093, 147067}}, +{17086, 18, 61739, {1, 1, 7, 1, 25, 13, 63, 155, 221, 345, 189, 1199, 5465, 14767, 26263, 54093, 23697, 71231}}, +{17087, 18, 61744, {1, 1, 7, 3, 3, 19, 23, 75, 381, 339, 1989, 1137, 6449, 1437, 32279, 17195, 117423, 259311}}, +{17088, 18, 61749, {1, 3, 5, 3, 27, 45, 117, 113, 129, 585, 2019, 807, 5573, 7407, 9957, 8741, 52333, 115607}}, +{17089, 18, 61776, {1, 1, 3, 7, 9, 5, 77, 9, 417, 725, 429, 1657, 5445, 1901, 28745, 26807, 111743, 169739}}, +{17090, 18, 61786, {1, 3, 1, 5, 7, 63, 51, 183, 117, 383, 435, 755, 7849, 5997, 32697, 5789, 5189, 80645}}, +{17091, 18, 61822, {1, 1, 3, 15, 5, 47, 105, 175, 41, 275, 1441, 3183, 3651, 9561, 5749, 20431, 45969, 59473}}, +{17092, 18, 61826, {1, 1, 1, 11, 13, 35, 19, 129, 125, 35, 339, 3099, 5337, 15605, 10213, 1171, 61869, 216681}}, +{17093, 18, 61862, {1, 3, 7, 1, 7, 25, 23, 9, 431, 73, 1803, 3969, 7853, 12845, 8075, 14553, 124825, 50561}}, +{17094, 18, 61865, {1, 1, 1, 7, 29, 21, 79, 247, 313, 143, 59, 2689, 5643, 827, 26597, 56423, 107903, 180809}}, +{17095, 18, 61868, {1, 3, 7, 1, 3, 3, 25, 39, 269, 529, 67, 3703, 2163, 12417, 6307, 29883, 40303, 171831}}, +{17096, 18, 61879, {1, 3, 7, 13, 1, 19, 71, 245, 267, 105, 749, 1203, 7953, 1881, 9273, 4629, 71793, 195393}}, +{17097, 18, 61885, {1, 1, 1, 15, 3, 49, 53, 145, 47, 959, 1107, 1361, 4517, 16055, 32119, 58433, 110123, 81487}}, +{17098, 18, 61900, {1, 3, 1, 1, 5, 3, 99, 93, 257, 659, 19, 3789, 203, 6183, 11571, 54845, 80591, 243303}}, +{17099, 18, 61905, {1, 3, 7, 1, 1, 7, 27, 11, 255, 261, 769, 2877, 6013, 8431, 25669, 43591, 122501, 208947}}, +{17100, 18, 61906, {1, 1, 7, 7, 3, 25, 117, 19, 15, 843, 401, 613, 801, 10579, 129, 12249, 107465, 95953}}, +{17101, 18, 61962, {1, 1, 3, 5, 1, 35, 95, 93, 243, 937, 1543, 3443, 175, 2199, 12521, 2521, 87225, 38631}}, +{17102, 18, 61967, {1, 3, 7, 13, 21, 29, 81, 139, 247, 937, 1835, 3887, 6917, 15709, 20947, 3341, 125521, 247195}}, +{17103, 18, 61972, {1, 1, 5, 11, 31, 19, 111, 215, 191, 347, 1215, 1757, 6751, 3099, 755, 43753, 2813, 159123}}, +{17104, 18, 61976, {1, 3, 3, 3, 31, 5, 35, 87, 293, 581, 1501, 3255, 7041, 5233, 2053, 63403, 37943, 12115}}, +{17105, 18, 62027, {1, 1, 7, 15, 11, 31, 5, 123, 225, 703, 733, 635, 2193, 3059, 30933, 43149, 79409, 106995}}, +{17106, 18, 62048, {1, 3, 1, 7, 11, 21, 45, 135, 99, 883, 85, 3861, 6617, 7169, 29887, 329, 42487, 129001}}, +{17107, 18, 62051, {1, 1, 1, 3, 11, 53, 31, 245, 141, 667, 1615, 3311, 1475, 12785, 3509, 47153, 105747, 141275}}, +{17108, 18, 62066, {1, 1, 3, 15, 7, 15, 55, 13, 465, 707, 1299, 1393, 399, 9229, 4897, 50313, 1275, 131811}}, +{17109, 18, 62081, {1, 1, 3, 15, 5, 57, 43, 19, 335, 929, 459, 327, 5715, 7173, 27643, 535, 46221, 144619}}, +{17110, 18, 62108, {1, 3, 5, 1, 9, 1, 63, 187, 71, 899, 969, 1349, 1553, 15593, 22783, 211, 41643, 163981}}, +{17111, 18, 62178, {1, 1, 1, 13, 3, 63, 35, 37, 311, 253, 1393, 629, 5299, 14837, 15053, 28041, 81541, 149037}}, +{17112, 18, 62189, {1, 3, 3, 11, 13, 45, 17, 165, 497, 751, 635, 2939, 6891, 14877, 32763, 20671, 106845, 258033}}, +{17113, 18, 62224, {1, 1, 3, 11, 21, 7, 3, 247, 243, 219, 1651, 929, 2737, 9507, 31819, 61389, 14593, 137207}}, +{17114, 18, 62229, {1, 1, 7, 5, 15, 33, 31, 29, 467, 75, 523, 1067, 7313, 11715, 26581, 47037, 106385, 199859}}, +{17115, 18, 62282, {1, 3, 1, 7, 19, 59, 35, 35, 3, 899, 799, 1379, 5113, 7653, 17977, 42197, 52397, 179705}}, +{17116, 18, 62318, {1, 1, 7, 5, 13, 13, 67, 157, 181, 633, 21, 3107, 6301, 7523, 23981, 9079, 88875, 195869}}, +{17117, 18, 62320, {1, 3, 7, 9, 7, 9, 115, 49, 293, 691, 1729, 4087, 6353, 963, 12433, 22135, 96383, 127745}}, +{17118, 18, 62329, {1, 3, 7, 7, 21, 5, 43, 247, 89, 275, 1219, 311, 5677, 7161, 13853, 38613, 84935, 223563}}, +{17119, 18, 62341, {1, 3, 1, 5, 29, 61, 17, 235, 127, 979, 973, 1463, 371, 5567, 6949, 34165, 3075, 169347}}, +{17120, 18, 62353, {1, 3, 3, 15, 25, 51, 43, 73, 7, 123, 1761, 1461, 5291, 14271, 19335, 45379, 123469, 190439}}, +{17121, 18, 62359, {1, 3, 3, 13, 19, 57, 25, 161, 351, 703, 819, 753, 3101, 9043, 19179, 22665, 118533, 45817}}, +{17122, 18, 62382, {1, 3, 5, 15, 3, 33, 15, 63, 251, 87, 611, 1187, 2639, 6001, 16135, 27505, 71077, 34101}}, +{17123, 18, 62389, {1, 1, 5, 3, 31, 5, 13, 239, 119, 803, 1881, 3479, 1933, 6421, 21411, 62923, 76851, 211029}}, +{17124, 18, 62396, {1, 3, 1, 11, 13, 59, 13, 77, 87, 343, 1733, 3493, 5937, 15733, 7763, 12839, 68639, 70965}}, +{17125, 18, 62425, {1, 1, 1, 3, 5, 19, 73, 109, 197, 1007, 1369, 623, 3249, 9263, 12463, 37105, 40599, 115323}}, +{17126, 18, 62455, {1, 1, 7, 1, 21, 23, 27, 221, 117, 27, 1811, 837, 7355, 8083, 12657, 34137, 102025, 6511}}, +{17127, 18, 62484, {1, 3, 7, 13, 13, 29, 7, 103, 511, 449, 1443, 775, 3503, 1057, 8809, 48583, 27649, 206219}}, +{17128, 18, 62494, {1, 1, 7, 1, 15, 37, 53, 205, 393, 691, 989, 3493, 7813, 12371, 18125, 62569, 57075, 100625}}, +{17129, 18, 62507, {1, 3, 5, 7, 11, 11, 55, 7, 487, 861, 1589, 1003, 607, 10031, 22481, 41905, 67791, 168167}}, +{17130, 18, 62512, {1, 3, 1, 9, 21, 31, 25, 187, 315, 379, 961, 2721, 3395, 12321, 21693, 56977, 73197, 160023}}, +{17131, 18, 62550, {1, 3, 3, 7, 9, 25, 103, 1, 13, 1021, 1777, 1015, 2269, 2131, 191, 2561, 74755, 27131}}, +{17132, 18, 62577, {1, 1, 3, 13, 21, 29, 97, 153, 499, 207, 719, 585, 8155, 2873, 22073, 45933, 92875, 19205}}, +{17133, 18, 62590, {1, 3, 7, 15, 13, 31, 43, 223, 405, 839, 1241, 2219, 6911, 9469, 24477, 63157, 95503, 128431}}, +{17134, 18, 62599, {1, 3, 5, 15, 5, 11, 79, 129, 235, 171, 289, 1791, 6061, 9107, 13859, 55923, 30197, 111025}}, +{17135, 18, 62617, {1, 1, 7, 11, 13, 23, 51, 139, 219, 467, 1923, 2847, 1977, 1503, 1939, 55579, 65357, 50047}}, +{17136, 18, 62679, {1, 3, 7, 11, 27, 25, 91, 95, 73, 189, 1537, 273, 725, 1215, 15255, 18847, 67419, 162153}}, +{17137, 18, 62702, {1, 3, 3, 11, 3, 63, 49, 131, 219, 285, 819, 2801, 2645, 2943, 15055, 15659, 130641, 82913}}, +{17138, 18, 62745, {1, 1, 3, 7, 17, 19, 37, 59, 391, 1009, 1569, 2569, 2519, 33, 18827, 23277, 94797, 103673}}, +{17139, 18, 62772, {1, 3, 5, 9, 27, 57, 69, 185, 49, 829, 29, 1247, 6129, 14935, 8005, 48343, 55789, 170099}}, +{17140, 18, 62794, {1, 3, 3, 7, 19, 55, 77, 231, 79, 787, 1597, 2701, 4999, 4247, 31849, 7797, 118993, 77871}}, +{17141, 18, 62835, {1, 1, 7, 13, 5, 45, 105, 137, 239, 923, 593, 3227, 3603, 15463, 15533, 55285, 95295, 141951}}, +{17142, 18, 62842, {1, 3, 1, 5, 29, 3, 113, 241, 255, 181, 1933, 2579, 1865, 11083, 8023, 34271, 78603, 240781}}, +{17143, 18, 62847, {1, 1, 3, 7, 17, 21, 123, 75, 305, 485, 9, 3037, 677, 8001, 16803, 25851, 121773, 77729}}, +{17144, 18, 62857, {1, 3, 1, 5, 23, 7, 39, 25, 381, 1003, 361, 995, 1751, 9599, 6399, 9627, 19303, 249899}}, +{17145, 18, 62894, {1, 3, 5, 5, 13, 39, 65, 145, 351, 135, 981, 3657, 4711, 13649, 17253, 46443, 99187, 176683}}, +{17146, 18, 62911, {1, 3, 1, 9, 9, 41, 79, 237, 445, 507, 1947, 2905, 8161, 715, 24499, 62397, 26393, 197221}}, +{17147, 18, 62928, {1, 3, 5, 3, 23, 9, 107, 121, 59, 265, 177, 3495, 391, 4537, 32099, 45217, 128285, 259285}}, +{17148, 18, 62954, {1, 3, 3, 15, 5, 61, 87, 209, 139, 461, 485, 3261, 7425, 6193, 22221, 22145, 93989, 101459}}, +{17149, 18, 62964, {1, 3, 1, 1, 15, 51, 29, 145, 385, 695, 375, 3743, 1387, 15385, 7995, 22993, 64115, 239897}}, +{17150, 18, 62977, {1, 1, 5, 15, 9, 11, 73, 219, 293, 941, 477, 3935, 2717, 9559, 20537, 6935, 39711, 13623}}, +{17151, 18, 62984, {1, 3, 3, 11, 3, 23, 127, 21, 61, 59, 1685, 507, 3883, 6587, 6355, 65407, 54311, 228555}}, +{17152, 18, 63007, {1, 3, 1, 1, 25, 47, 51, 111, 77, 871, 1045, 4017, 7683, 7729, 24155, 3481, 31749, 245155}}, +{17153, 18, 63017, {1, 3, 5, 1, 25, 29, 119, 131, 475, 763, 1639, 1937, 7387, 2307, 24081, 34797, 91785, 52055}}, +{17154, 18, 63058, {1, 1, 5, 1, 29, 19, 119, 111, 119, 751, 1079, 1911, 4085, 8909, 4351, 30037, 37691, 57175}}, +{17155, 18, 63067, {1, 1, 7, 7, 27, 33, 71, 189, 105, 821, 1543, 2939, 3829, 6485, 22235, 7097, 76987, 207121}}, +{17156, 18, 63085, {1, 1, 3, 3, 7, 7, 65, 121, 355, 405, 1019, 1779, 7301, 10609, 25927, 16501, 37287, 133383}}, +{17157, 18, 63150, {1, 1, 3, 11, 31, 57, 109, 197, 165, 711, 271, 653, 5835, 14905, 26065, 52287, 106215, 225075}}, +{17158, 18, 63170, {1, 1, 3, 3, 1, 41, 5, 169, 15, 49, 1311, 2715, 579, 1693, 28001, 17935, 18585, 123531}}, +{17159, 18, 63184, {1, 1, 7, 7, 1, 49, 59, 75, 173, 361, 1947, 2707, 1835, 12025, 24051, 24359, 121841, 215797}}, +{17160, 18, 63210, {1, 1, 5, 13, 7, 49, 15, 181, 409, 1005, 383, 3449, 2987, 13051, 7097, 34571, 55495, 65251}}, +{17161, 18, 63215, {1, 1, 3, 11, 5, 9, 67, 41, 9, 79, 401, 379, 4107, 5231, 519, 47877, 17273, 137479}}, +{17162, 18, 63217, {1, 1, 3, 13, 25, 7, 9, 165, 103, 37, 1369, 933, 1119, 1025, 19767, 25765, 55487, 249709}}, +{17163, 18, 63229, {1, 3, 5, 5, 19, 53, 105, 135, 245, 957, 185, 2901, 1741, 10429, 747, 23365, 49363, 84095}}, +{17164, 18, 63237, {1, 1, 1, 15, 29, 17, 107, 193, 17, 447, 1261, 1935, 5749, 2303, 23287, 59883, 28655, 188055}}, +{17165, 18, 63259, {1, 1, 5, 9, 13, 27, 99, 253, 299, 481, 89, 3041, 1549, 15417, 30495, 2063, 53649, 219883}}, +{17166, 18, 63265, {1, 3, 3, 15, 19, 19, 7, 149, 67, 349, 789, 129, 2783, 2887, 28631, 26001, 62407, 151767}}, +{17167, 18, 63271, {1, 3, 3, 13, 7, 29, 65, 25, 93, 627, 301, 721, 7249, 13295, 19995, 33715, 36441, 157625}}, +{17168, 18, 63286, {1, 1, 1, 3, 29, 63, 85, 27, 507, 543, 1887, 3169, 4239, 4455, 22047, 15369, 48913, 192071}}, +{17169, 18, 63298, {1, 3, 7, 5, 9, 33, 125, 41, 7, 723, 1091, 3311, 8173, 3861, 31507, 42669, 68853, 60043}}, +{17170, 18, 63343, {1, 3, 1, 13, 13, 7, 121, 41, 181, 913, 371, 163, 7061, 8779, 18345, 41915, 1785, 107113}}, +{17171, 18, 63355, {1, 1, 1, 9, 13, 41, 23, 35, 157, 247, 1243, 1101, 5193, 4027, 29917, 44099, 46211, 162059}}, +{17172, 18, 63361, {1, 3, 1, 5, 15, 51, 3, 241, 131, 741, 1885, 2397, 5673, 9097, 9319, 15381, 55655, 207569}}, +{17173, 18, 63362, {1, 1, 3, 15, 25, 15, 69, 55, 435, 727, 1007, 375, 7871, 10437, 11011, 36711, 11269, 105159}}, +{17174, 18, 63379, {1, 3, 3, 13, 17, 1, 101, 189, 295, 185, 1715, 2609, 6767, 11751, 11469, 3951, 80743, 114439}}, +{17175, 18, 63397, {1, 3, 1, 7, 21, 41, 93, 39, 433, 917, 279, 161, 267, 10201, 26583, 30363, 110187, 46501}}, +{17176, 18, 63415, {1, 1, 7, 7, 13, 15, 89, 167, 365, 925, 107, 3537, 6815, 15251, 23149, 61821, 66569, 135353}}, +{17177, 18, 63421, {1, 1, 1, 3, 13, 59, 21, 255, 111, 603, 547, 465, 3001, 16055, 26389, 64301, 112751, 219279}}, +{17178, 18, 63463, {1, 1, 1, 15, 17, 3, 21, 49, 327, 349, 489, 957, 807, 11685, 23975, 34729, 100773, 223551}}, +{17179, 18, 63491, {1, 3, 5, 15, 19, 59, 63, 71, 233, 767, 1789, 3609, 5911, 3405, 7519, 3611, 92015, 126669}}, +{17180, 18, 63527, {1, 1, 1, 11, 7, 31, 79, 57, 115, 763, 1643, 3329, 7209, 1385, 15565, 64353, 60637, 59445}}, +{17181, 18, 63545, {1, 1, 3, 1, 13, 3, 47, 89, 507, 523, 1, 1391, 6973, 7267, 32527, 52631, 20775, 234503}}, +{17182, 18, 63553, {1, 3, 1, 9, 23, 23, 95, 57, 295, 857, 213, 1211, 3503, 3043, 24843, 16149, 118719, 171585}}, +{17183, 18, 63560, {1, 3, 1, 5, 1, 13, 63, 167, 305, 711, 759, 2521, 5051, 9125, 22917, 24647, 100777, 261137}}, +{17184, 18, 63563, {1, 1, 5, 9, 25, 19, 5, 225, 511, 543, 685, 733, 7249, 10447, 11115, 25927, 104327, 92861}}, +{17185, 18, 63566, {1, 3, 1, 7, 15, 7, 15, 83, 379, 461, 943, 317, 7735, 12655, 7549, 6371, 20901, 170331}}, +{17186, 18, 63589, {1, 1, 1, 13, 7, 17, 41, 51, 47, 15, 477, 1203, 819, 1615, 13805, 40147, 3967, 192647}}, +{17187, 18, 63599, {1, 3, 7, 11, 9, 11, 111, 75, 171, 833, 1503, 2325, 7279, 2687, 16499, 11547, 99409, 186429}}, +{17188, 18, 63601, {1, 1, 5, 3, 13, 21, 75, 17, 447, 647, 1309, 2297, 7911, 12093, 16237, 50831, 96123, 134479}}, +{17189, 18, 63608, {1, 1, 5, 15, 19, 29, 35, 255, 291, 437, 85, 2143, 3281, 3629, 29339, 28169, 46561, 236595}}, +{17190, 18, 63620, {1, 3, 7, 1, 31, 57, 125, 109, 317, 461, 681, 1379, 6387, 14971, 8451, 17655, 87619, 51721}}, +{17191, 18, 63654, {1, 3, 7, 1, 23, 33, 45, 149, 43, 465, 997, 601, 693, 6273, 12867, 25885, 81353, 60437}}, +{17192, 18, 63703, {1, 1, 7, 7, 31, 25, 113, 205, 481, 141, 1757, 587, 2981, 7637, 3869, 4151, 69541, 68587}}, +{17193, 18, 63719, {1, 1, 7, 13, 17, 31, 69, 247, 137, 79, 1221, 1693, 3747, 10711, 1671, 31587, 12139, 248585}}, +{17194, 18, 63758, {1, 1, 1, 3, 1, 61, 39, 139, 37, 79, 125, 1145, 7505, 10129, 29209, 52045, 99159, 195553}}, +{17195, 18, 63769, {1, 1, 5, 3, 13, 41, 13, 11, 167, 953, 1961, 3557, 871, 1687, 28479, 10621, 27533, 243519}}, +{17196, 18, 63782, {1, 1, 7, 7, 1, 35, 107, 227, 375, 225, 483, 1239, 7591, 8549, 7351, 62001, 70245, 102795}}, +{17197, 18, 63803, {1, 1, 1, 9, 29, 35, 15, 3, 337, 1017, 1065, 2107, 2457, 9455, 7069, 55081, 57887, 149679}}, +{17198, 18, 63811, {1, 1, 7, 1, 1, 1, 13, 63, 287, 895, 593, 1253, 4717, 10313, 10275, 22143, 59149, 38865}}, +{17199, 18, 63851, {1, 1, 3, 15, 27, 39, 73, 11, 509, 391, 1901, 503, 5523, 6777, 30849, 41301, 35067, 68443}}, +{17200, 18, 63854, {1, 3, 3, 15, 17, 57, 39, 229, 273, 917, 577, 3627, 3285, 4495, 28581, 34011, 38537, 194999}}, +{17201, 18, 63872, {1, 1, 7, 3, 17, 51, 91, 203, 161, 757, 581, 1625, 477, 8839, 16515, 43101, 121497, 23603}}, +{17202, 18, 63878, {1, 3, 3, 5, 19, 29, 55, 127, 283, 999, 1227, 1937, 4471, 11305, 8813, 40509, 78521, 175573}}, +{17203, 18, 63895, {1, 3, 3, 3, 5, 29, 33, 249, 25, 213, 1315, 393, 6967, 12751, 7485, 39561, 14801, 191921}}, +{17204, 18, 63917, {1, 3, 7, 9, 23, 15, 93, 69, 23, 239, 1993, 3375, 539, 14141, 10123, 33561, 127565, 181527}}, +{17205, 18, 63930, {1, 3, 3, 15, 13, 15, 65, 241, 83, 351, 1943, 1305, 7181, 11803, 31907, 63623, 5439, 150661}}, +{17206, 18, 63935, {1, 3, 7, 11, 13, 17, 17, 37, 409, 577, 973, 797, 1761, 5333, 13803, 22991, 29743, 53051}}, +{17207, 18, 63955, {1, 3, 5, 5, 27, 25, 91, 225, 411, 23, 877, 2487, 8061, 12337, 11471, 8857, 10791, 112699}}, +{17208, 18, 63964, {1, 1, 5, 3, 15, 1, 87, 249, 205, 1011, 2045, 1879, 4137, 5877, 12709, 5231, 74283, 124315}}, +{17209, 18, 63967, {1, 1, 7, 7, 31, 37, 117, 71, 139, 391, 1085, 4033, 3087, 3063, 19991, 8787, 96899, 17279}}, +{17210, 18, 63980, {1, 1, 7, 15, 19, 47, 45, 181, 303, 151, 337, 2557, 6131, 3161, 13097, 52777, 77783, 259817}}, +{17211, 18, 63985, {1, 1, 3, 3, 1, 55, 115, 227, 83, 591, 967, 4067, 3441, 243, 13443, 4043, 129365, 161459}}, +{17212, 18, 63992, {1, 1, 3, 15, 5, 23, 71, 31, 271, 585, 931, 909, 3375, 15063, 12111, 35811, 124047, 68225}}, +{17213, 18, 64021, {1, 1, 5, 11, 1, 59, 19, 193, 323, 489, 837, 3709, 1807, 11617, 30931, 33561, 2805, 100979}}, +{17214, 18, 64026, {1, 3, 5, 7, 27, 7, 71, 67, 167, 521, 1237, 2911, 3531, 2885, 4669, 25703, 87647, 36381}}, +{17215, 18, 64044, {1, 3, 3, 13, 13, 21, 97, 225, 477, 1023, 2029, 877, 3849, 4675, 17665, 19257, 9697, 168577}}, +{17216, 18, 64055, {1, 1, 7, 15, 25, 31, 19, 255, 45, 539, 1831, 2655, 7471, 12011, 12455, 3681, 123881, 234471}}, +{17217, 18, 64056, {1, 1, 3, 9, 17, 39, 105, 73, 271, 555, 987, 873, 5371, 12381, 13469, 54961, 125701, 194063}}, +{17218, 18, 64061, {1, 1, 5, 5, 7, 27, 15, 195, 121, 175, 991, 955, 5007, 11423, 1539, 21381, 79891, 162149}}, +{17219, 18, 64067, {1, 3, 1, 7, 25, 23, 69, 69, 177, 545, 481, 3503, 3721, 1077, 8763, 6919, 64743, 172311}}, +{17220, 18, 64081, {1, 1, 3, 15, 31, 5, 33, 45, 81, 795, 435, 399, 4591, 3741, 26493, 14791, 59529, 89989}}, +{17221, 18, 64100, {1, 1, 7, 13, 21, 29, 95, 75, 213, 59, 1635, 479, 441, 14667, 16389, 9139, 30955, 169895}}, +{17222, 18, 64109, {1, 3, 3, 3, 17, 61, 103, 85, 233, 287, 447, 2687, 4755, 9489, 1669, 10405, 58489, 170429}}, +{17223, 18, 64112, {1, 1, 5, 5, 13, 9, 63, 129, 321, 531, 393, 3353, 5309, 16375, 20473, 12595, 52239, 183647}}, +{17224, 18, 64118, {1, 1, 3, 7, 7, 31, 101, 253, 119, 325, 351, 2321, 1899, 14073, 8985, 13609, 32043, 33225}}, +{17225, 18, 64124, {1, 1, 3, 13, 7, 25, 73, 191, 399, 591, 819, 2859, 6053, 815, 30417, 5709, 18277, 121991}}, +{17226, 18, 64145, {1, 3, 3, 1, 7, 47, 7, 81, 451, 463, 699, 1857, 8169, 15649, 22693, 28673, 9717, 227583}}, +{17227, 18, 64151, {1, 3, 3, 3, 31, 45, 123, 205, 23, 901, 1003, 1149, 7481, 6925, 23845, 18573, 97047, 248957}}, +{17228, 18, 64203, {1, 1, 3, 3, 21, 9, 53, 241, 125, 583, 1055, 3981, 8113, 12477, 8455, 6289, 112253, 17321}}, +{17229, 18, 64208, {1, 1, 7, 3, 19, 5, 51, 111, 443, 283, 117, 2127, 4273, 2335, 20373, 2885, 57439, 56839}}, +{17230, 18, 64236, {1, 1, 5, 15, 7, 5, 65, 163, 27, 691, 1667, 69, 2459, 7477, 21349, 52417, 42299, 75965}}, +{17231, 18, 64254, {1, 1, 1, 13, 13, 19, 87, 223, 475, 205, 1113, 887, 2213, 5533, 15875, 36173, 53933, 200173}}, +{17232, 18, 64261, {1, 3, 3, 13, 23, 17, 93, 37, 391, 127, 873, 1445, 3007, 10863, 21245, 55025, 99275, 255329}}, +{17233, 18, 64280, {1, 3, 1, 15, 1, 47, 57, 5, 207, 825, 161, 539, 6151, 12829, 14121, 51217, 25547, 234303}}, +{17234, 18, 64296, {1, 1, 5, 1, 21, 63, 15, 83, 19, 817, 591, 3131, 889, 12451, 14363, 27295, 83877, 124701}}, +{17235, 18, 64313, {1, 1, 7, 7, 11, 21, 87, 85, 13, 555, 163, 9, 5973, 14749, 19585, 57287, 43421, 66301}}, +{17236, 18, 64314, {1, 3, 5, 5, 7, 33, 19, 7, 9, 819, 533, 2105, 4275, 10611, 30517, 35863, 84687, 245157}}, +{17237, 18, 64316, {1, 3, 5, 13, 3, 55, 111, 157, 235, 405, 39, 2191, 905, 3099, 245, 37371, 365, 257385}}, +{17238, 18, 64348, {1, 3, 3, 13, 29, 39, 125, 235, 213, 879, 497, 1659, 6689, 12165, 18621, 14657, 37079, 167867}}, +{17239, 18, 64352, {1, 1, 5, 15, 5, 5, 27, 197, 77, 477, 1115, 3369, 2253, 5757, 20855, 4473, 112501, 76881}}, +{17240, 18, 64355, {1, 3, 3, 13, 13, 61, 37, 97, 229, 743, 1381, 3979, 307, 319, 16765, 56295, 109303, 21361}}, +{17241, 18, 64361, {1, 1, 7, 11, 19, 7, 63, 145, 129, 899, 93, 1851, 7901, 8767, 15553, 13913, 4897, 129483}}, +{17242, 18, 64388, {1, 3, 5, 11, 7, 23, 19, 5, 465, 365, 883, 3563, 4395, 2759, 4273, 623, 75047, 249519}}, +{17243, 18, 64398, {1, 3, 1, 5, 29, 43, 75, 7, 509, 373, 359, 2041, 5957, 1251, 32431, 37803, 120915, 45137}}, +{17244, 18, 64403, {1, 3, 1, 5, 21, 9, 43, 1, 337, 743, 1359, 1629, 5117, 2499, 16129, 22831, 38795, 32137}}, +{17245, 18, 64419, {1, 3, 3, 7, 23, 57, 9, 31, 351, 559, 1729, 1461, 3037, 12685, 8899, 14859, 108851, 170195}}, +{17246, 18, 64421, {1, 1, 1, 15, 23, 57, 39, 23, 283, 487, 1055, 1265, 6781, 7955, 195, 37745, 66115, 56413}}, +{17247, 18, 64428, {1, 1, 3, 7, 27, 35, 57, 17, 137, 17, 905, 4033, 5775, 5305, 22975, 17547, 106297, 146287}}, +{17248, 18, 64453, {1, 1, 1, 3, 5, 39, 73, 151, 469, 523, 119, 539, 2817, 7783, 22957, 59937, 21331, 172437}}, +{17249, 18, 64463, {1, 1, 3, 13, 21, 1, 23, 109, 113, 257, 817, 1671, 6729, 1571, 15009, 48539, 94025, 160379}}, +{17250, 18, 64475, {1, 1, 1, 1, 31, 23, 83, 107, 225, 715, 949, 69, 2163, 4777, 7715, 25901, 82935, 81455}}, +{17251, 18, 64511, {1, 3, 5, 13, 29, 11, 61, 169, 241, 973, 315, 3991, 1389, 3293, 31123, 59419, 7359, 170929}}, +{17252, 18, 64537, {1, 1, 7, 3, 21, 15, 111, 41, 329, 513, 1175, 4037, 2747, 11465, 17253, 54055, 29409, 230925}}, +{17253, 18, 64576, {1, 3, 5, 15, 31, 17, 105, 45, 61, 339, 1387, 1021, 4499, 13671, 25521, 52081, 49153, 31587}}, +{17254, 18, 64579, {1, 3, 3, 3, 29, 17, 51, 103, 429, 849, 1759, 1267, 6255, 4631, 32643, 44977, 40875, 239457}}, +{17255, 18, 64581, {1, 1, 7, 15, 3, 11, 123, 157, 73, 151, 777, 3855, 1913, 969, 11821, 16889, 63503, 197305}}, +{17256, 18, 64606, {1, 3, 1, 5, 13, 49, 61, 209, 105, 523, 851, 3667, 7525, 5537, 12851, 42867, 50535, 131403}}, +{17257, 18, 64615, {1, 3, 1, 7, 13, 19, 107, 71, 479, 895, 405, 89, 1345, 5543, 12709, 6093, 97581, 20483}}, +{17258, 18, 64649, {1, 3, 3, 11, 3, 47, 117, 175, 175, 321, 1257, 365, 1193, 12813, 2713, 26941, 43605, 223323}}, +{17259, 18, 64655, {1, 1, 7, 1, 19, 35, 45, 143, 395, 255, 1599, 575, 2637, 1287, 27673, 48329, 57975, 44173}}, +{17260, 18, 64664, {1, 3, 5, 1, 1, 19, 107, 233, 465, 661, 91, 4007, 6409, 3399, 8175, 54171, 111417, 124955}}, +{17261, 18, 64667, {1, 1, 5, 13, 9, 27, 121, 225, 55, 761, 779, 3015, 6333, 10779, 26531, 57103, 33463, 90219}}, +{17262, 18, 64712, {1, 3, 1, 9, 17, 3, 85, 147, 111, 133, 869, 1833, 2401, 5811, 24415, 27095, 65529, 164121}}, +{17263, 18, 64715, {1, 1, 5, 13, 11, 37, 13, 83, 391, 909, 2013, 1327, 6697, 1711, 29265, 10607, 20127, 57873}}, +{17264, 18, 64718, {1, 3, 1, 11, 17, 17, 33, 101, 383, 837, 1769, 1711, 3735, 14777, 27101, 56853, 110643, 101917}}, +{17265, 18, 64741, {1, 3, 5, 13, 25, 7, 37, 99, 473, 211, 1469, 1827, 6307, 8835, 15853, 22027, 43095, 15817}}, +{17266, 18, 64766, {1, 3, 1, 5, 19, 13, 61, 193, 57, 359, 1277, 749, 5499, 11239, 20681, 48477, 7225, 259259}}, +{17267, 18, 64780, {1, 1, 1, 7, 27, 17, 79, 213, 307, 761, 429, 1519, 7483, 6007, 11251, 13263, 24851, 7919}}, +{17268, 18, 64788, {1, 1, 3, 5, 9, 37, 101, 149, 405, 413, 1213, 157, 3811, 4485, 13099, 32697, 75677, 127815}}, +{17269, 18, 64791, {1, 3, 3, 7, 29, 29, 13, 113, 45, 885, 1471, 3433, 2289, 4375, 815, 16741, 20933, 9763}}, +{17270, 18, 64795, {1, 3, 5, 15, 5, 3, 7, 37, 347, 41, 1977, 395, 6363, 3591, 21457, 31455, 60547, 108153}}, +{17271, 18, 64798, {1, 3, 5, 7, 19, 9, 113, 1, 241, 439, 731, 1591, 3347, 1295, 6635, 25267, 13239, 214669}}, +{17272, 18, 64816, {1, 1, 3, 5, 7, 7, 69, 77, 281, 851, 1533, 1, 7351, 3429, 29237, 54597, 11171, 66613}}, +{17273, 18, 64819, {1, 1, 7, 15, 29, 7, 59, 9, 105, 129, 1397, 3841, 3945, 4755, 19877, 11109, 17497, 225473}}, +{17274, 18, 64822, {1, 3, 7, 7, 15, 61, 3, 207, 97, 229, 1251, 101, 3157, 5729, 15579, 14849, 119119, 91891}}, +{17275, 18, 64833, {1, 3, 3, 9, 27, 15, 85, 221, 231, 577, 1787, 3489, 2393, 7593, 13175, 25561, 108505, 97267}}, +{17276, 18, 64836, {1, 3, 7, 13, 23, 3, 7, 85, 307, 899, 371, 3539, 3467, 7955, 9539, 53583, 125587, 30969}}, +{17277, 18, 64876, {1, 1, 5, 7, 7, 31, 115, 245, 375, 803, 1121, 3775, 3565, 15283, 25981, 24681, 34469, 172003}}, +{17278, 18, 64891, {1, 1, 5, 1, 31, 5, 5, 161, 153, 235, 1703, 2163, 1089, 16233, 6183, 25167, 102925, 36673}}, +{17279, 18, 64907, {1, 3, 3, 5, 1, 57, 59, 5, 87, 497, 151, 1731, 2727, 4583, 28165, 63053, 76003, 29259}}, +{17280, 18, 64943, {1, 1, 5, 7, 5, 21, 79, 111, 347, 879, 827, 3947, 4421, 9589, 23971, 11681, 104555, 226535}}, +{17281, 18, 64965, {1, 1, 5, 1, 17, 35, 105, 159, 391, 495, 1709, 3731, 261, 2359, 1413, 37105, 8979, 189381}}, +{17282, 18, 64977, {1, 3, 3, 1, 11, 23, 21, 213, 261, 755, 1503, 2369, 1765, 14531, 2605, 15609, 48691, 113059}}, +{17283, 18, 64999, {1, 3, 5, 1, 1, 55, 87, 197, 89, 391, 1157, 3523, 385, 5871, 13681, 29097, 101903, 184553}}, +{17284, 18, 65034, {1, 3, 7, 5, 17, 51, 87, 191, 495, 761, 1943, 1845, 2963, 13133, 22439, 20101, 96759, 215215}}, +{17285, 18, 65036, {1, 3, 5, 11, 23, 9, 53, 41, 229, 233, 2025, 2835, 2359, 4755, 3015, 48267, 20721, 61001}}, +{17286, 18, 65089, {1, 1, 7, 9, 27, 35, 45, 201, 137, 291, 151, 733, 6199, 3127, 3073, 14491, 95051, 12469}}, +{17287, 18, 65107, {1, 1, 1, 9, 7, 49, 73, 233, 239, 881, 1991, 695, 5947, 9377, 12027, 41137, 80217, 122961}}, +{17288, 18, 65110, {1, 1, 5, 11, 3, 15, 85, 203, 305, 945, 1007, 1831, 3999, 373, 21141, 63829, 91779, 122495}}, +{17289, 18, 65120, {1, 1, 1, 11, 23, 51, 127, 215, 441, 467, 229, 3071, 2731, 8813, 30155, 60289, 54531, 196187}}, +{17290, 18, 65132, {1, 3, 5, 15, 29, 31, 11, 129, 443, 649, 773, 3035, 7915, 13831, 31979, 5577, 42869, 153591}}, +{17291, 18, 65143, {1, 1, 3, 11, 21, 37, 23, 79, 153, 7, 1801, 441, 8189, 7235, 6311, 965, 71993, 81755}}, +{17292, 18, 65150, {1, 3, 5, 5, 23, 13, 93, 39, 247, 367, 811, 1381, 6809, 16219, 8755, 41923, 79873, 105781}}, +{17293, 18, 65177, {1, 3, 5, 9, 19, 43, 21, 229, 251, 187, 1047, 2295, 5529, 2965, 1507, 16185, 121183, 30551}}, +{17294, 18, 65201, {1, 3, 7, 9, 19, 11, 33, 213, 39, 811, 231, 1527, 6093, 1507, 3541, 37585, 78785, 215419}}, +{17295, 18, 65214, {1, 3, 7, 7, 11, 13, 109, 119, 175, 311, 719, 3127, 6351, 1909, 5441, 5411, 58751, 80875}}, +{17296, 18, 65234, {1, 1, 1, 7, 17, 35, 57, 139, 289, 137, 1919, 2131, 6145, 3953, 24887, 64737, 4677, 23833}}, +{17297, 18, 65240, {1, 1, 3, 13, 1, 21, 83, 243, 27, 69, 501, 3925, 3339, 13313, 27021, 38319, 76441, 146397}}, +{17298, 18, 65243, {1, 3, 7, 9, 15, 17, 97, 117, 505, 673, 1333, 3891, 7775, 6323, 12967, 17387, 19501, 68347}}, +{17299, 18, 65259, {1, 1, 1, 5, 27, 55, 43, 47, 399, 147, 1539, 2663, 5555, 11993, 8759, 33783, 8361, 78633}}, +{17300, 18, 65276, {1, 1, 1, 15, 1, 17, 21, 85, 129, 117, 339, 1319, 1119, 6869, 12913, 56873, 30795, 76849}}, +{17301, 18, 65287, {1, 1, 5, 5, 11, 1, 11, 175, 355, 737, 1367, 3089, 5993, 4377, 10325, 3817, 61735, 187689}}, +{17302, 18, 65306, {1, 3, 5, 5, 21, 41, 85, 219, 425, 611, 1219, 1849, 349, 925, 26185, 31591, 23855, 35549}}, +{17303, 18, 65311, {1, 1, 3, 5, 21, 3, 77, 25, 265, 949, 1979, 1561, 4243, 12437, 5215, 23445, 33295, 130385}}, +{17304, 18, 65321, {1, 1, 3, 1, 13, 7, 3, 81, 143, 735, 31, 1781, 1537, 10789, 11923, 61589, 75761, 178837}}, +{17305, 18, 65350, {1, 1, 7, 7, 11, 47, 55, 37, 39, 533, 1773, 3121, 183, 7193, 19403, 45757, 20457, 158437}}, +{17306, 18, 65364, {1, 1, 5, 5, 3, 15, 53, 41, 139, 529, 601, 2967, 4683, 3869, 13449, 30155, 85833, 190053}}, +{17307, 18, 65451, {1, 1, 5, 1, 11, 39, 85, 131, 349, 175, 267, 779, 923, 5905, 32727, 22055, 63087, 247607}}, +{17308, 18, 65488, {1, 3, 5, 7, 7, 59, 11, 49, 465, 617, 557, 251, 1303, 10369, 29207, 13457, 113591, 43717}}, +{17309, 18, 65510, {1, 3, 5, 3, 27, 39, 21, 157, 39, 891, 1833, 2887, 7395, 7965, 21771, 42675, 71705, 177323}}, +{17310, 18, 65528, {1, 3, 7, 7, 21, 51, 53, 83, 433, 889, 1033, 1701, 6285, 14335, 1683, 3637, 110241, 110355}}, +{17311, 18, 65533, {1, 1, 7, 7, 11, 23, 35, 63, 71, 867, 79, 2551, 1837, 773, 21093, 60433, 67305, 70731}}, +{17312, 18, 65553, {1, 3, 5, 11, 9, 25, 67, 23, 137, 75, 707, 2229, 6237, 9871, 29063, 30433, 112897, 68037}}, +{17313, 18, 65563, {1, 3, 7, 13, 1, 45, 119, 149, 487, 667, 1177, 2927, 1875, 11963, 20771, 1177, 2331, 244039}}, +{17314, 18, 65579, {1, 3, 3, 7, 19, 61, 89, 163, 91, 409, 1109, 1947, 1017, 12385, 13487, 45645, 64175, 184221}}, +{17315, 18, 65621, {1, 1, 1, 15, 13, 47, 21, 203, 341, 845, 443, 1891, 2591, 2721, 7515, 52161, 70359, 173139}}, +{17316, 18, 65625, {1, 3, 3, 11, 5, 3, 119, 179, 509, 33, 1909, 2531, 6713, 12447, 30157, 61019, 45857, 165557}}, +{17317, 18, 65635, {1, 3, 7, 5, 3, 47, 79, 55, 321, 71, 1917, 4053, 6603, 3079, 28133, 15611, 99161, 118279}}, +{17318, 18, 65644, {1, 1, 1, 7, 19, 13, 3, 31, 213, 705, 435, 2381, 991, 4719, 24473, 8907, 122013, 228081}}, +{17319, 18, 65690, {1, 1, 7, 11, 27, 15, 5, 123, 169, 197, 361, 3803, 2001, 14547, 22967, 27575, 118325, 130651}}, +{17320, 18, 65696, {1, 3, 3, 5, 29, 43, 77, 15, 463, 753, 695, 3489, 2023, 9913, 13029, 26621, 129393, 209439}}, +{17321, 18, 65705, {1, 1, 5, 15, 1, 39, 55, 129, 247, 729, 1537, 2529, 3981, 13153, 1505, 12743, 104173, 218423}}, +{17322, 18, 65716, {1, 3, 7, 3, 21, 3, 49, 173, 445, 821, 3, 2671, 1865, 1377, 7589, 65485, 96485, 80193}}, +{17323, 18, 65725, {1, 3, 3, 11, 7, 21, 99, 143, 333, 869, 1469, 1579, 1749, 2203, 18773, 47377, 103211, 238357}}, +{17324, 18, 65733, {1, 3, 5, 11, 11, 19, 25, 253, 229, 755, 101, 269, 6703, 5603, 23201, 57163, 28431, 159653}}, +{17325, 18, 65740, {1, 3, 5, 3, 3, 15, 45, 225, 325, 997, 1061, 883, 3885, 7633, 461, 44411, 52129, 84535}}, +{17326, 18, 65758, {1, 1, 7, 1, 27, 29, 51, 23, 473, 443, 117, 3021, 55, 7413, 7911, 3063, 47533, 234941}}, +{17327, 18, 65786, {1, 3, 3, 15, 19, 43, 37, 95, 249, 805, 603, 865, 2115, 6999, 9739, 59029, 12181, 211159}}, +{17328, 18, 65806, {1, 3, 7, 3, 3, 61, 105, 113, 11, 169, 1007, 689, 2553, 14561, 17473, 38249, 41225, 80021}}, +{17329, 18, 65834, {1, 3, 7, 11, 5, 47, 69, 49, 457, 931, 435, 1423, 411, 15163, 3171, 29143, 101153, 240869}}, +{17330, 18, 65844, {1, 3, 7, 1, 17, 1, 13, 45, 155, 551, 1783, 3583, 2767, 2761, 18019, 61635, 104527, 123817}}, +{17331, 18, 65866, {1, 1, 5, 11, 9, 43, 101, 205, 233, 689, 1247, 2903, 3117, 12261, 11827, 50403, 103727, 35533}}, +{17332, 18, 65895, {1, 1, 5, 13, 23, 37, 121, 195, 133, 265, 1517, 823, 5933, 13917, 6363, 8533, 58443, 178549}}, +{17333, 18, 65902, {1, 1, 7, 9, 29, 1, 3, 195, 221, 877, 71, 473, 1173, 15285, 6057, 60005, 92401, 65357}}, +{17334, 18, 65953, {1, 3, 7, 1, 5, 25, 15, 207, 455, 447, 1125, 3731, 1289, 867, 22111, 38893, 70779, 88277}}, +{17335, 18, 65954, {1, 1, 1, 13, 31, 19, 15, 179, 183, 351, 1197, 1929, 3569, 12251, 17641, 4097, 24141, 186857}}, +{17336, 18, 65983, {1, 1, 1, 9, 19, 9, 125, 23, 431, 225, 943, 479, 2615, 443, 30977, 10889, 17107, 116819}}, +{17337, 18, 65985, {1, 3, 1, 9, 9, 13, 85, 123, 85, 857, 125, 3149, 1105, 3687, 2313, 38749, 52131, 259511}}, +{17338, 18, 66003, {1, 3, 5, 7, 27, 33, 57, 105, 511, 871, 1089, 2311, 3291, 2245, 3365, 30211, 62549, 56207}}, +{17339, 18, 66010, {1, 1, 7, 11, 1, 19, 75, 37, 139, 173, 391, 317, 2575, 11887, 4289, 32275, 43487, 487}}, +{17340, 18, 66025, {1, 1, 7, 1, 11, 3, 9, 217, 343, 35, 59, 93, 1343, 5043, 14869, 63717, 40983, 235373}}, +{17341, 18, 66050, {1, 1, 3, 5, 15, 13, 93, 247, 417, 179, 307, 3299, 4383, 5491, 21271, 37155, 32289, 75737}}, +{17342, 18, 66074, {1, 3, 3, 9, 3, 39, 63, 243, 305, 729, 9, 3317, 3301, 13165, 20437, 36505, 32977, 2761}}, +{17343, 18, 66076, {1, 3, 7, 5, 3, 37, 61, 109, 351, 641, 1699, 2517, 2637, 4995, 27365, 56971, 53609, 14373}}, +{17344, 18, 66097, {1, 3, 1, 15, 31, 53, 127, 123, 219, 1003, 1425, 1201, 5303, 10369, 21481, 26987, 42541, 37855}}, +{17345, 18, 66132, {1, 3, 3, 13, 9, 29, 35, 111, 395, 791, 1619, 2647, 713, 15955, 19145, 33883, 65215, 166267}}, +{17346, 18, 66158, {1, 1, 7, 11, 17, 5, 45, 249, 421, 273, 411, 2885, 7027, 11933, 24847, 36969, 124701, 214931}}, +{17347, 18, 66175, {1, 1, 3, 1, 27, 41, 125, 83, 327, 643, 223, 151, 6709, 15949, 125, 13275, 90405, 15759}}, +{17348, 18, 66185, {1, 1, 5, 15, 19, 45, 55, 109, 497, 1011, 1363, 1937, 3697, 7475, 10533, 65325, 29681, 76275}}, +{17349, 18, 66199, {1, 1, 1, 3, 23, 17, 59, 209, 229, 151, 1199, 279, 191, 8993, 25939, 13885, 113477, 166961}}, +{17350, 18, 66206, {1, 3, 5, 1, 19, 61, 27, 129, 103, 721, 1451, 2803, 5879, 3523, 15443, 4047, 95927, 50339}}, +{17351, 18, 66222, {1, 1, 1, 11, 27, 9, 53, 47, 331, 185, 1337, 3429, 807, 3341, 14871, 11035, 50651, 243843}}, +{17352, 18, 66227, {1, 3, 5, 11, 7, 57, 125, 15, 271, 811, 1873, 3093, 7841, 5761, 19955, 571, 123319, 149465}}, +{17353, 18, 66241, {1, 3, 1, 3, 31, 61, 71, 47, 477, 273, 167, 1069, 3513, 1463, 2667, 22097, 60367, 246045}}, +{17354, 18, 66272, {1, 1, 1, 11, 1, 55, 35, 233, 37, 659, 1517, 411, 2981, 10339, 21857, 33701, 44393, 6861}}, +{17355, 18, 66324, {1, 1, 5, 7, 11, 43, 109, 205, 103, 315, 1925, 2109, 6307, 7915, 19793, 61167, 27963, 251913}}, +{17356, 18, 66424, {1, 1, 5, 11, 5, 63, 107, 219, 53, 251, 1053, 2035, 77, 15885, 22011, 3945, 91, 204899}}, +{17357, 18, 66460, {1, 3, 7, 13, 21, 45, 51, 53, 99, 831, 1421, 3171, 4241, 14105, 26161, 45071, 2813, 54339}}, +{17358, 18, 66464, {1, 3, 5, 1, 3, 61, 43, 141, 355, 699, 11, 2203, 8055, 14815, 24597, 65201, 32689, 70167}}, +{17359, 18, 66481, {1, 3, 1, 5, 11, 27, 109, 239, 199, 23, 375, 1477, 3197, 4401, 29901, 46623, 79593, 133143}}, +{17360, 18, 66482, {1, 1, 1, 3, 23, 9, 63, 103, 41, 177, 1365, 1971, 5937, 13055, 27713, 13535, 47371, 57841}}, +{17361, 18, 66523, {1, 1, 5, 5, 19, 15, 5, 21, 307, 65, 215, 3801, 4149, 6565, 10249, 63541, 30867, 12129}}, +{17362, 18, 66526, {1, 3, 3, 9, 11, 1, 107, 99, 235, 331, 1479, 1365, 2557, 9545, 25767, 12461, 6471, 184643}}, +{17363, 18, 66532, {1, 3, 3, 5, 17, 13, 103, 223, 95, 955, 1479, 1825, 705, 5311, 28531, 22787, 118899, 181829}}, +{17364, 18, 66539, {1, 3, 7, 1, 5, 59, 65, 11, 251, 419, 659, 2559, 5445, 4221, 5871, 51845, 33925, 167037}}, +{17365, 18, 66541, {1, 3, 5, 13, 15, 45, 35, 181, 325, 293, 1897, 3321, 6081, 9919, 27641, 9407, 35263, 231009}}, +{17366, 18, 66573, {1, 3, 3, 3, 3, 35, 85, 33, 293, 777, 1945, 3771, 6967, 12353, 2737, 12501, 127359, 163591}}, +{17367, 18, 66582, {1, 3, 7, 9, 13, 7, 119, 107, 309, 811, 1113, 2465, 4867, 4295, 565, 59159, 94587, 119761}}, +{17368, 18, 66591, {1, 3, 3, 1, 1, 31, 61, 49, 461, 635, 233, 175, 6237, 10463, 17847, 54925, 115675, 260575}}, +{17369, 18, 66615, {1, 3, 5, 15, 25, 17, 61, 155, 235, 483, 1771, 2903, 3163, 2525, 17153, 54701, 49521, 11911}}, +{17370, 18, 66622, {1, 3, 3, 5, 1, 35, 51, 23, 187, 107, 177, 1381, 165, 6149, 10841, 3619, 107811, 188811}}, +{17371, 18, 66629, {1, 1, 5, 9, 7, 35, 5, 233, 43, 913, 939, 2195, 1369, 5355, 7941, 26075, 66813, 227623}}, +{17372, 18, 66641, {1, 3, 7, 11, 5, 43, 97, 211, 427, 875, 1179, 3631, 7989, 2419, 17209, 15789, 128209, 224117}}, +{17373, 18, 66712, {1, 1, 1, 7, 17, 7, 109, 255, 111, 883, 371, 3481, 6031, 14665, 5905, 28735, 113003, 327}}, +{17374, 18, 66724, {1, 3, 5, 3, 5, 61, 7, 155, 87, 861, 39, 3163, 179, 15493, 16403, 18755, 116157, 233185}}, +{17375, 18, 66731, {1, 3, 5, 5, 23, 45, 67, 205, 395, 417, 1235, 669, 5097, 6823, 31483, 61395, 36073, 24183}}, +{17376, 18, 66745, {1, 1, 3, 1, 11, 35, 123, 171, 125, 759, 197, 907, 2273, 3623, 31861, 60071, 91857, 158011}}, +{17377, 18, 66759, {1, 3, 7, 11, 19, 19, 25, 25, 167, 429, 1565, 3179, 5453, 15731, 30727, 32111, 63685, 113309}}, +{17378, 18, 66808, {1, 3, 7, 9, 15, 33, 67, 225, 495, 19, 1881, 1357, 4311, 9547, 18717, 20749, 8819, 209979}}, +{17379, 18, 66814, {1, 3, 5, 3, 13, 47, 107, 153, 461, 815, 1521, 2361, 7721, 10631, 2799, 62321, 59755, 170803}}, +{17380, 18, 66821, {1, 3, 7, 5, 25, 61, 5, 235, 71, 349, 1555, 3419, 1159, 2027, 17391, 29849, 47145, 122057}}, +{17381, 18, 66831, {1, 1, 5, 11, 19, 19, 101, 45, 333, 553, 1431, 4077, 2629, 15997, 19793, 65521, 124287, 174675}}, +{17382, 18, 66834, {1, 3, 7, 11, 25, 39, 103, 219, 375, 27, 227, 1061, 445, 14803, 18883, 49191, 33303, 114467}}, +{17383, 18, 66879, {1, 1, 5, 7, 3, 13, 117, 29, 387, 891, 371, 2199, 7023, 13671, 26291, 61563, 2733, 16093}}, +{17384, 18, 66884, {1, 3, 5, 11, 29, 5, 17, 249, 149, 777, 1817, 319, 19, 12321, 15241, 29069, 58381, 157467}}, +{17385, 18, 66899, {1, 3, 7, 9, 29, 17, 81, 141, 201, 383, 429, 3675, 69, 8155, 22821, 60707, 127015, 248279}}, +{17386, 18, 66901, {1, 3, 7, 9, 25, 5, 11, 27, 423, 987, 99, 3599, 4849, 4513, 32119, 34301, 6327, 249457}}, +{17387, 18, 66924, {1, 3, 3, 7, 13, 25, 71, 227, 307, 985, 665, 3097, 6713, 3823, 6357, 58199, 84057, 28055}}, +{17388, 18, 66929, {1, 3, 5, 7, 19, 21, 93, 45, 159, 527, 493, 59, 1111, 1415, 1949, 28525, 50343, 11039}}, +{17389, 18, 66942, {1, 3, 5, 13, 17, 35, 79, 229, 449, 533, 235, 3445, 8153, 15473, 12975, 53909, 24589, 237049}}, +{17390, 18, 66985, {1, 1, 7, 5, 3, 53, 93, 33, 339, 423, 497, 2691, 6125, 3931, 25357, 27509, 92509, 227209}}, +{17391, 18, 66986, {1, 1, 7, 3, 13, 49, 111, 179, 449, 279, 827, 1481, 2477, 6867, 18079, 6261, 30885, 205675}}, +{17392, 18, 66994, {1, 3, 7, 7, 11, 9, 13, 105, 367, 639, 1307, 1617, 4759, 8387, 8909, 13715, 56599, 113259}}, +{17393, 18, 67066, {1, 1, 3, 3, 15, 17, 103, 125, 205, 67, 999, 3965, 907, 13235, 15275, 58457, 66889, 227279}}, +{17394, 18, 67075, {1, 3, 3, 3, 11, 35, 99, 81, 421, 75, 1757, 2413, 5655, 1227, 4019, 14503, 20719, 224807}}, +{17395, 18, 67099, {1, 1, 7, 11, 17, 17, 109, 203, 331, 813, 987, 2925, 1601, 13617, 29, 8235, 95129, 117987}}, +{17396, 18, 67130, {1, 3, 7, 5, 5, 33, 105, 191, 183, 899, 1949, 2923, 2473, 3435, 8097, 35615, 10109, 62563}}, +{17397, 18, 67173, {1, 1, 7, 13, 5, 25, 21, 159, 487, 415, 1507, 2161, 649, 14425, 2605, 8357, 92441, 87323}}, +{17398, 18, 67183, {1, 3, 7, 15, 3, 23, 87, 209, 407, 765, 975, 3859, 675, 6351, 18703, 44919, 57155, 134961}}, +{17399, 18, 67186, {1, 3, 5, 15, 7, 59, 77, 37, 235, 565, 1707, 3531, 6733, 2223, 12621, 59523, 83547, 172355}}, +{17400, 18, 67197, {1, 3, 7, 5, 23, 15, 57, 217, 151, 333, 1033, 2549, 303, 1455, 5329, 20187, 55415, 166093}}, +{17401, 18, 67201, {1, 3, 1, 13, 21, 27, 1, 85, 335, 201, 135, 2603, 291, 10573, 28411, 1059, 129871, 98303}}, +{17402, 18, 67208, {1, 1, 3, 5, 23, 61, 123, 169, 503, 629, 711, 2795, 2291, 13273, 32703, 63377, 72809, 214927}}, +{17403, 18, 67221, {1, 3, 5, 13, 31, 11, 115, 133, 443, 709, 263, 3739, 2777, 11545, 19137, 61285, 64065, 214477}}, +{17404, 18, 67238, {1, 3, 1, 11, 29, 25, 3, 5, 385, 613, 1277, 1445, 1643, 15137, 28041, 47713, 122051, 62915}}, +{17405, 18, 67252, {1, 3, 5, 11, 3, 11, 1, 137, 457, 577, 783, 1745, 5, 5817, 26569, 50751, 14075, 246219}}, +{17406, 18, 67256, {1, 1, 1, 9, 7, 9, 105, 27, 167, 939, 799, 2773, 6427, 15579, 1975, 10695, 111429, 227105}}, +{17407, 18, 67270, {1, 3, 1, 11, 23, 23, 73, 103, 103, 61, 1743, 3061, 8127, 15893, 21223, 43549, 103659, 89129}}, +{17408, 18, 67288, {1, 1, 7, 13, 5, 43, 59, 235, 139, 961, 839, 3843, 1317, 4903, 21043, 15479, 115065, 112531}}, +{17409, 18, 67318, {1, 3, 1, 3, 19, 15, 57, 145, 193, 321, 1919, 385, 125, 15517, 14243, 62845, 38995, 120045}}, +{17410, 18, 67329, {1, 3, 3, 7, 17, 61, 77, 75, 267, 203, 1911, 2599, 1797, 761, 28101, 58603, 107755, 158689}}, +{17411, 18, 67349, {1, 1, 5, 11, 15, 21, 71, 227, 377, 361, 2013, 129, 6271, 1421, 6009, 52261, 113389, 74915}}, +{17412, 18, 67369, {1, 1, 5, 7, 3, 39, 27, 49, 97, 885, 651, 1633, 3445, 3415, 20167, 26667, 52997, 221391}}, +{17413, 18, 67392, {1, 1, 7, 9, 7, 59, 95, 127, 479, 871, 845, 2951, 673, 6385, 10057, 2605, 78529, 230771}}, +{17414, 18, 67435, {1, 3, 5, 7, 31, 15, 53, 125, 223, 711, 875, 429, 7237, 4005, 2153, 26865, 63205, 144125}}, +{17415, 18, 67473, {1, 1, 7, 9, 1, 57, 19, 189, 67, 423, 1937, 37, 4925, 15503, 25969, 20419, 59921, 58119}}, +{17416, 18, 67496, {1, 1, 7, 7, 31, 51, 99, 189, 21, 1011, 1551, 3529, 7617, 15805, 11365, 43123, 84785, 203703}}, +{17417, 18, 67507, {1, 1, 3, 15, 3, 63, 9, 67, 399, 151, 253, 1839, 1365, 16295, 13145, 29211, 48681, 177643}}, +{17418, 18, 67514, {1, 1, 1, 5, 13, 37, 1, 21, 435, 483, 939, 535, 1505, 10879, 7027, 5599, 63261, 158573}}, +{17419, 18, 67536, {1, 1, 7, 15, 13, 39, 113, 209, 213, 1017, 1197, 285, 4221, 6831, 13383, 2265, 34313, 160879}}, +{17420, 18, 67555, {1, 3, 7, 15, 25, 23, 95, 217, 141, 681, 451, 1275, 4957, 10197, 21375, 50905, 11087, 96135}}, +{17421, 18, 67598, {1, 3, 1, 11, 17, 35, 87, 15, 57, 777, 1429, 615, 681, 8437, 23981, 51781, 112169, 198471}}, +{17422, 18, 67615, {1, 3, 1, 5, 21, 37, 113, 105, 123, 327, 549, 1641, 7697, 2127, 5709, 8351, 56787, 260157}}, +{17423, 18, 67625, {1, 3, 7, 15, 19, 17, 51, 15, 367, 89, 1635, 353, 4855, 1551, 7197, 27403, 11259, 176029}}, +{17424, 18, 67645, {1, 3, 1, 1, 27, 9, 3, 35, 213, 31, 885, 797, 7077, 15641, 22509, 35193, 112411, 157335}}, +{17425, 18, 67651, {1, 1, 5, 1, 5, 9, 101, 149, 169, 581, 1927, 197, 5935, 6361, 3915, 15541, 69575, 102451}}, +{17426, 18, 67663, {1, 3, 3, 13, 23, 63, 45, 205, 271, 17, 707, 937, 2547, 12019, 8559, 26163, 58117, 138625}}, +{17427, 18, 67672, {1, 1, 3, 1, 19, 63, 125, 175, 253, 629, 1121, 3701, 7755, 61, 13037, 39417, 6179, 261923}}, +{17428, 18, 67682, {1, 1, 5, 1, 25, 63, 27, 245, 371, 657, 157, 3821, 3279, 8977, 9065, 35611, 27325, 205737}}, +{17429, 18, 67699, {1, 3, 7, 15, 7, 57, 19, 191, 1, 927, 1379, 2579, 4335, 7163, 4877, 51435, 17309, 100173}}, +{17430, 18, 67718, {1, 1, 1, 5, 21, 59, 107, 195, 317, 691, 541, 69, 7235, 2175, 25191, 23913, 126369, 9263}}, +{17431, 18, 67780, {1, 3, 5, 15, 17, 7, 67, 27, 263, 855, 1065, 973, 6705, 10729, 8719, 32741, 59207, 249107}}, +{17432, 18, 67795, {1, 3, 1, 1, 21, 23, 115, 119, 351, 207, 1691, 1105, 7479, 3877, 24439, 29017, 34171, 133797}}, +{17433, 18, 67804, {1, 3, 3, 3, 11, 23, 39, 165, 99, 1023, 309, 3933, 4235, 3891, 27237, 30887, 34363, 175017}}, +{17434, 18, 67818, {1, 3, 1, 5, 17, 33, 79, 105, 253, 515, 823, 1783, 1523, 2095, 10355, 8929, 51001, 112815}}, +{17435, 18, 67832, {1, 3, 7, 15, 11, 27, 123, 161, 279, 541, 1343, 1009, 6015, 8565, 27031, 233, 2153, 179243}}, +{17436, 18, 67941, {1, 1, 7, 7, 1, 53, 1, 33, 75, 57, 723, 3855, 3301, 14941, 6637, 25181, 103441, 208339}}, +{17437, 18, 67984, {1, 3, 7, 13, 3, 23, 11, 75, 55, 19, 1181, 3451, 4901, 2621, 18323, 42395, 95701, 237753}}, +{17438, 18, 68044, {1, 1, 1, 5, 1, 1, 123, 203, 367, 71, 1897, 295, 6719, 2647, 7135, 34511, 79853, 58351}}, +{17439, 18, 68059, {1, 3, 3, 7, 7, 63, 87, 91, 223, 265, 927, 3843, 1703, 11633, 8077, 26425, 46573, 181201}}, +{17440, 18, 68062, {1, 3, 3, 3, 1, 51, 3, 99, 37, 251, 1739, 2813, 3955, 8745, 4425, 42419, 124177, 173997}}, +{17441, 18, 68065, {1, 3, 5, 15, 9, 19, 11, 207, 123, 287, 1703, 2155, 2729, 4541, 4925, 4735, 77159, 97911}}, +{17442, 18, 68071, {1, 3, 3, 15, 23, 31, 35, 33, 507, 315, 1071, 3001, 7569, 11749, 3183, 6989, 68637, 177803}}, +{17443, 18, 68072, {1, 3, 5, 1, 31, 1, 113, 39, 295, 263, 1113, 619, 5523, 15385, 24115, 24233, 91943, 129299}}, +{17444, 18, 68085, {1, 1, 5, 11, 9, 57, 89, 49, 67, 601, 1277, 2275, 6349, 4141, 28397, 47061, 28143, 126291}}, +{17445, 18, 68090, {1, 3, 7, 15, 11, 63, 123, 187, 305, 1009, 1509, 2569, 2235, 8233, 27351, 53437, 34353, 105799}}, +{17446, 18, 68101, {1, 1, 3, 1, 13, 9, 11, 169, 427, 171, 1031, 633, 4275, 1173, 11233, 57997, 107753, 257337}}, +{17447, 18, 68102, {1, 3, 5, 5, 3, 39, 49, 233, 309, 999, 1275, 85, 1663, 16275, 9145, 18439, 59055, 249657}}, +{17448, 18, 68106, {1, 1, 3, 7, 11, 55, 73, 75, 115, 397, 945, 3657, 6847, 7341, 21305, 30119, 65675, 169281}}, +{17449, 18, 68164, {1, 1, 7, 7, 3, 5, 31, 179, 183, 479, 329, 217, 1077, 6893, 23425, 21903, 34293, 184819}}, +{17450, 18, 68191, {1, 1, 3, 3, 7, 63, 97, 255, 289, 917, 1881, 3829, 2433, 3473, 11045, 37739, 73349, 171899}}, +{17451, 18, 68192, {1, 3, 5, 5, 27, 23, 61, 151, 353, 667, 1889, 2323, 3261, 15999, 24225, 35265, 97301, 75743}}, +{17452, 18, 68195, {1, 3, 7, 1, 19, 41, 81, 61, 461, 275, 131, 2665, 5615, 1719, 21047, 42025, 97725, 196587}}, +{17453, 18, 68209, {1, 1, 7, 11, 3, 5, 47, 107, 397, 237, 1795, 3049, 5317, 14147, 15299, 50469, 83855, 75685}}, +{17454, 18, 68245, {1, 1, 7, 7, 19, 31, 39, 153, 225, 591, 1547, 3755, 3219, 15823, 4015, 30977, 63999, 198023}}, +{17455, 18, 68246, {1, 3, 1, 1, 17, 57, 91, 3, 425, 465, 735, 719, 2955, 3003, 6669, 14335, 32137, 82265}}, +{17456, 18, 68274, {1, 3, 1, 9, 13, 25, 93, 187, 119, 735, 447, 3387, 5111, 6525, 28241, 37643, 99023, 58551}}, +{17457, 18, 68293, {1, 1, 7, 1, 23, 15, 105, 89, 109, 743, 2007, 3131, 4839, 3285, 14681, 47097, 69531, 104647}}, +{17458, 18, 68294, {1, 1, 5, 7, 27, 33, 85, 109, 165, 569, 511, 3223, 2201, 2869, 30457, 42585, 125187, 83115}}, +{17459, 18, 68322, {1, 1, 7, 13, 1, 39, 55, 69, 279, 757, 425, 1317, 2403, 10711, 3341, 33491, 5607, 214161}}, +{17460, 18, 68353, {1, 3, 3, 9, 23, 57, 109, 9, 473, 323, 1371, 657, 5039, 1947, 12787, 29099, 81887, 44039}}, +{17461, 18, 68359, {1, 3, 1, 9, 21, 49, 39, 71, 493, 611, 1465, 3965, 7509, 5315, 4095, 21865, 123533, 148467}}, +{17462, 18, 68377, {1, 1, 7, 5, 15, 45, 67, 109, 143, 423, 205, 849, 1291, 245, 26275, 62873, 69177, 173705}}, +{17463, 18, 68401, {1, 3, 7, 13, 3, 13, 103, 45, 171, 919, 903, 2171, 5025, 14855, 895, 36937, 37643, 30311}}, +{17464, 18, 68422, {1, 3, 1, 5, 31, 35, 67, 111, 201, 183, 375, 905, 5705, 8839, 31551, 22525, 53013, 34189}}, +{17465, 18, 68434, {1, 1, 3, 7, 25, 11, 85, 231, 285, 957, 1731, 1267, 8179, 14195, 18405, 8489, 32503, 86257}}, +{17466, 18, 68443, {1, 3, 7, 5, 29, 7, 73, 15, 501, 909, 1325, 793, 4479, 12137, 30871, 36243, 109781, 7235}}, +{17467, 18, 68445, {1, 1, 3, 15, 13, 13, 75, 221, 497, 921, 1939, 2791, 5277, 6257, 11129, 109, 27549, 44901}}, +{17468, 18, 68476, {1, 1, 7, 3, 21, 9, 35, 113, 101, 15, 545, 2429, 5869, 11379, 14427, 28605, 108313, 220523}}, +{17469, 18, 68492, {1, 3, 5, 5, 21, 31, 79, 101, 11, 687, 609, 3741, 1259, 1529, 10185, 49863, 86529, 5147}}, +{17470, 18, 68504, {1, 3, 1, 5, 5, 49, 105, 213, 435, 201, 511, 525, 5219, 9503, 32023, 25407, 2493, 51165}}, +{17471, 18, 68525, {1, 1, 5, 9, 9, 61, 67, 107, 351, 519, 1373, 1261, 1069, 4325, 9579, 37117, 71759, 17601}}, +{17472, 18, 68540, {1, 1, 7, 7, 27, 63, 63, 229, 239, 291, 1813, 3831, 8091, 2553, 18445, 60707, 88855, 224325}}, +{17473, 18, 68543, {1, 1, 5, 7, 15, 23, 109, 7, 409, 447, 185, 3535, 4643, 13431, 11107, 48771, 95843, 155889}}, +{17474, 18, 68555, {1, 3, 3, 11, 9, 47, 13, 31, 83, 837, 1661, 2283, 299, 13161, 25305, 6079, 107237, 58477}}, +{17475, 18, 68563, {1, 3, 7, 15, 3, 31, 21, 245, 105, 141, 703, 71, 1887, 9345, 15719, 37737, 58431, 195997}}, +{17476, 18, 68576, {1, 1, 1, 13, 25, 21, 23, 67, 349, 581, 1585, 809, 3955, 4621, 25989, 25633, 107229, 193271}}, +{17477, 18, 68581, {1, 1, 5, 3, 15, 57, 111, 147, 243, 575, 851, 3461, 5171, 4203, 21855, 59579, 90509, 16897}}, +{17478, 18, 68617, {1, 1, 5, 13, 5, 45, 83, 59, 253, 261, 1277, 3179, 6397, 4277, 6629, 10979, 55759, 3033}}, +{17479, 18, 68631, {1, 1, 1, 9, 25, 1, 127, 159, 273, 357, 1343, 3209, 649, 6631, 1365, 40813, 98955, 181679}}, +{17480, 18, 68656, {1, 3, 1, 11, 1, 9, 67, 5, 41, 661, 863, 3769, 2737, 7261, 26829, 43093, 113025, 127975}}, +{17481, 18, 68666, {1, 1, 3, 3, 7, 5, 77, 207, 125, 625, 437, 1059, 2635, 1099, 25567, 63759, 97575, 231313}}, +{17482, 18, 68714, {1, 3, 7, 5, 21, 41, 11, 177, 489, 405, 1831, 1373, 6267, 11275, 23613, 55565, 120353, 98771}}, +{17483, 18, 68743, {1, 1, 3, 11, 15, 55, 103, 185, 493, 755, 1235, 3143, 4355, 4887, 11245, 60103, 4023, 184729}}, +{17484, 18, 68761, {1, 3, 1, 1, 23, 5, 103, 117, 269, 101, 2013, 1781, 6445, 8753, 15041, 13993, 28753, 47133}}, +{17485, 18, 68764, {1, 3, 7, 5, 9, 23, 1, 203, 19, 535, 1445, 1713, 5503, 11555, 6195, 35797, 55663, 10187}}, +{17486, 18, 68767, {1, 3, 5, 1, 15, 3, 125, 225, 447, 269, 1663, 1823, 4309, 12243, 16689, 3889, 41111, 123355}}, +{17487, 18, 68768, {1, 1, 1, 5, 21, 33, 83, 147, 243, 101, 1085, 121, 4939, 6081, 22621, 52995, 103047, 82531}}, +{17488, 18, 68786, {1, 3, 5, 3, 21, 3, 5, 81, 431, 191, 1973, 3675, 6691, 8687, 31619, 51669, 95541, 110447}}, +{17489, 18, 68788, {1, 1, 1, 15, 1, 11, 83, 145, 75, 133, 967, 2837, 5111, 6099, 9119, 53661, 128647, 40557}}, +{17490, 18, 68848, {1, 1, 1, 7, 3, 57, 101, 231, 255, 117, 1903, 2133, 3867, 11299, 647, 58853, 22153, 135959}}, +{17491, 18, 68851, {1, 3, 5, 5, 9, 19, 89, 229, 313, 421, 201, 953, 2487, 6283, 1305, 33421, 20933, 164841}}, +{17492, 18, 68914, {1, 1, 3, 3, 1, 45, 93, 165, 343, 577, 1329, 3019, 2727, 14397, 7123, 63347, 45525, 35133}}, +{17493, 18, 68946, {1, 3, 5, 5, 19, 1, 33, 55, 49, 1003, 1567, 2539, 7461, 14641, 7655, 37499, 65525, 84961}}, +{17494, 18, 68952, {1, 3, 5, 5, 29, 3, 77, 39, 251, 791, 215, 3779, 1589, 3577, 22299, 24133, 105449, 257157}}, +{17495, 18, 68973, {1, 3, 1, 5, 7, 23, 109, 209, 35, 571, 1047, 3453, 3657, 11713, 19379, 57101, 29943, 60909}}, +{17496, 18, 69001, {1, 1, 7, 11, 17, 63, 15, 175, 333, 831, 1447, 1991, 3339, 2519, 30127, 51481, 71935, 144995}}, +{17497, 18, 69016, {1, 3, 1, 11, 13, 51, 17, 67, 43, 209, 789, 1285, 5655, 5841, 10203, 32053, 15721, 211725}}, +{17498, 18, 69035, {1, 1, 5, 7, 31, 49, 69, 255, 325, 819, 1769, 1961, 7403, 1241, 2241, 40425, 14839, 178969}}, +{17499, 18, 69037, {1, 1, 3, 9, 1, 5, 9, 35, 167, 865, 337, 1079, 6195, 10139, 19215, 57607, 122437, 197147}}, +{17500, 18, 69049, {1, 1, 1, 15, 23, 7, 47, 155, 345, 547, 333, 3747, 961, 1397, 17067, 33385, 48253, 138611}}, +{17501, 18, 69052, {1, 1, 7, 9, 29, 27, 81, 183, 153, 171, 1125, 1929, 1047, 12463, 1543, 42981, 126163, 203259}}, +{17502, 18, 69058, {1, 1, 5, 3, 1, 41, 123, 213, 7, 179, 1, 3527, 1437, 3545, 2025, 5325, 27097, 187823}}, +{17503, 18, 69063, {1, 1, 7, 1, 19, 5, 111, 251, 431, 91, 1437, 1155, 335, 9587, 18287, 23937, 123331, 3939}}, +{17504, 18, 69075, {1, 1, 1, 9, 13, 59, 75, 219, 225, 313, 525, 2003, 7829, 7063, 22123, 4263, 95491, 9375}}, +{17505, 18, 69112, {1, 3, 1, 1, 27, 29, 71, 189, 169, 301, 165, 2967, 5147, 7127, 2191, 34259, 66605, 149603}}, +{17506, 18, 69117, {1, 3, 5, 13, 29, 57, 105, 31, 495, 311, 1161, 2109, 1471, 1275, 12761, 58379, 46365, 229935}}, +{17507, 18, 69124, {1, 1, 7, 3, 7, 49, 125, 189, 309, 399, 1361, 3969, 2177, 8171, 26623, 41855, 2809, 5825}}, +{17508, 18, 69127, {1, 3, 5, 7, 17, 21, 77, 101, 37, 661, 1743, 2243, 823, 12431, 26931, 7163, 108093, 191305}}, +{17509, 18, 69134, {1, 1, 7, 5, 27, 55, 109, 119, 13, 727, 421, 3469, 1137, 6125, 5107, 52733, 102891, 147425}}, +{17510, 18, 69139, {1, 1, 3, 5, 17, 45, 17, 211, 137, 21, 689, 1487, 233, 9845, 6499, 52617, 73081, 198137}}, +{17511, 18, 69161, {1, 3, 7, 1, 25, 27, 67, 7, 161, 633, 729, 807, 7371, 7301, 29499, 45939, 110565, 219491}}, +{17512, 18, 69196, {1, 3, 3, 13, 17, 7, 55, 211, 103, 981, 1809, 1913, 5705, 14011, 7405, 13893, 92053, 17997}}, +{17513, 18, 69224, {1, 1, 1, 1, 15, 9, 75, 37, 5, 443, 157, 2749, 5587, 16087, 14953, 26793, 21229, 226879}}, +{17514, 18, 69238, {1, 3, 3, 3, 9, 13, 113, 7, 255, 647, 235, 1713, 525, 8579, 20873, 49565, 43869, 145823}}, +{17515, 18, 69301, {1, 1, 5, 15, 9, 1, 119, 189, 73, 321, 1045, 467, 1565, 14381, 22683, 7939, 44337, 231901}}, +{17516, 18, 69316, {1, 1, 3, 13, 21, 61, 35, 105, 425, 395, 381, 1205, 3631, 8099, 23723, 29435, 94683, 180367}}, +{17517, 18, 69325, {1, 3, 3, 13, 19, 15, 59, 111, 355, 165, 857, 3131, 5037, 2527, 17533, 53563, 621, 89837}}, +{17518, 18, 69334, {1, 3, 3, 11, 11, 41, 3, 75, 179, 325, 897, 3141, 75, 1735, 493, 1123, 126763, 68645}}, +{17519, 18, 69347, {1, 3, 5, 7, 19, 61, 9, 99, 101, 583, 1967, 621, 1869, 10693, 2025, 62797, 85727, 212309}}, +{17520, 18, 69359, {1, 3, 1, 13, 23, 47, 15, 29, 199, 889, 423, 3995, 1655, 10753, 25301, 55551, 94829, 205833}}, +{17521, 18, 69381, {1, 1, 1, 1, 21, 1, 91, 237, 195, 721, 881, 1155, 4109, 10367, 1873, 6851, 13295, 182363}}, +{17522, 18, 69388, {1, 1, 5, 15, 19, 35, 37, 197, 137, 255, 93, 681, 949, 15183, 24785, 39357, 65547, 149013}}, +{17523, 18, 69393, {1, 3, 3, 3, 27, 27, 95, 239, 171, 513, 655, 1629, 4577, 3005, 1681, 2581, 59995, 83981}}, +{17524, 18, 69409, {1, 3, 3, 7, 29, 33, 111, 85, 437, 297, 1563, 2411, 6171, 2043, 17625, 59093, 995, 211599}}, +{17525, 18, 69422, {1, 3, 1, 13, 19, 35, 33, 9, 57, 153, 819, 2017, 5879, 13559, 23135, 25981, 41091, 50975}}, +{17526, 18, 69453, {1, 3, 5, 11, 23, 53, 11, 123, 119, 57, 1775, 3457, 7939, 4999, 10771, 23571, 30099, 17361}}, +{17527, 18, 69459, {1, 1, 7, 11, 27, 13, 7, 215, 7, 1009, 1967, 1845, 6679, 13781, 21797, 18755, 47131, 245907}}, +{17528, 18, 69481, {1, 1, 1, 3, 19, 47, 35, 13, 287, 349, 439, 3125, 2387, 12483, 3833, 29399, 27037, 30235}}, +{17529, 18, 69487, {1, 3, 1, 15, 17, 41, 15, 21, 499, 87, 1899, 2835, 1919, 925, 4525, 12935, 25021, 106657}}, +{17530, 18, 69490, {1, 1, 1, 13, 17, 59, 73, 75, 443, 199, 1871, 3447, 4517, 8395, 16661, 30655, 17871, 231337}}, +{17531, 18, 69495, {1, 1, 7, 1, 1, 53, 17, 49, 259, 77, 917, 631, 6061, 12291, 17715, 49761, 70699, 68313}}, +{17532, 18, 69501, {1, 1, 3, 9, 13, 27, 67, 149, 229, 347, 1397, 3457, 6047, 13117, 11, 18121, 70323, 36441}}, +{17533, 18, 69511, {1, 3, 5, 7, 27, 13, 69, 177, 451, 87, 647, 3797, 5433, 3137, 20213, 9809, 126877, 55243}}, +{17534, 18, 69512, {1, 3, 7, 13, 21, 57, 73, 157, 173, 631, 1527, 337, 5605, 8041, 2181, 19567, 19829, 63353}}, +{17535, 18, 69532, {1, 3, 3, 7, 11, 5, 111, 161, 247, 553, 435, 3883, 5639, 10889, 8953, 58297, 15197, 99711}}, +{17536, 18, 69542, {1, 1, 7, 13, 11, 29, 71, 251, 387, 1003, 1275, 763, 67, 10597, 5995, 53677, 4683, 2157}}, +{17537, 18, 69560, {1, 1, 3, 9, 23, 27, 93, 209, 325, 517, 297, 3215, 4359, 395, 10377, 36967, 69803, 190037}}, +{17538, 18, 69565, {1, 1, 1, 3, 27, 61, 21, 229, 469, 3, 387, 523, 4753, 2267, 9879, 32113, 60837, 76205}}, +{17539, 18, 69571, {1, 3, 1, 7, 31, 31, 67, 15, 161, 699, 713, 2973, 2007, 693, 21823, 57549, 28989, 157879}}, +{17540, 18, 69611, {1, 3, 1, 1, 3, 63, 111, 61, 311, 685, 1029, 345, 6763, 16217, 14505, 9777, 3513, 160985}}, +{17541, 18, 69633, {1, 1, 1, 11, 5, 25, 13, 79, 337, 3, 1997, 3489, 7621, 12115, 9221, 7953, 19067, 52697}}, +{17542, 18, 69640, {1, 1, 1, 3, 19, 3, 85, 127, 475, 391, 293, 2249, 1211, 1185, 17133, 6753, 65517, 98157}}, +{17543, 18, 69667, {1, 1, 5, 9, 11, 31, 57, 107, 315, 983, 1117, 2189, 4813, 9925, 26635, 30589, 32989, 44195}}, +{17544, 18, 69669, {1, 1, 7, 7, 21, 1, 1, 221, 421, 199, 539, 3981, 4627, 15655, 12621, 20427, 11619, 187185}}, +{17545, 18, 69679, {1, 1, 7, 5, 13, 19, 49, 31, 55, 35, 1847, 3173, 475, 15245, 30907, 50075, 130837, 87283}}, +{17546, 18, 69688, {1, 1, 7, 15, 13, 47, 13, 17, 169, 185, 1411, 1689, 2339, 2159, 10591, 52283, 26785, 255707}}, +{17547, 18, 69699, {1, 3, 5, 7, 3, 29, 7, 83, 329, 747, 1755, 1067, 2565, 2437, 12309, 15043, 97589, 69409}}, +{17548, 18, 69756, {1, 3, 3, 9, 19, 49, 9, 231, 427, 131, 485, 1637, 1129, 14723, 19071, 47997, 74613, 171539}}, +{17549, 18, 69759, {1, 1, 1, 1, 5, 17, 105, 39, 313, 407, 1321, 3013, 8035, 4395, 15917, 21105, 53599, 21341}}, +{17550, 18, 69770, {1, 3, 1, 15, 7, 35, 5, 153, 485, 1019, 713, 1891, 5023, 13885, 15911, 48215, 81719, 228189}}, +{17551, 18, 69772, {1, 1, 3, 3, 19, 3, 103, 55, 221, 847, 27, 1653, 4887, 3617, 30235, 42353, 67007, 21443}}, +{17552, 18, 69826, {1, 1, 7, 15, 15, 39, 65, 189, 251, 411, 1953, 1187, 141, 14919, 7763, 50879, 2569, 63467}}, +{17553, 18, 69840, {1, 1, 7, 1, 15, 3, 37, 133, 11, 745, 697, 3755, 1233, 2009, 25597, 40661, 40743, 198117}}, +{17554, 18, 69846, {1, 1, 7, 15, 5, 17, 13, 253, 197, 491, 1499, 2141, 6803, 13833, 27297, 385, 54341, 64305}}, +{17555, 18, 69868, {1, 3, 5, 7, 3, 11, 19, 193, 441, 575, 1649, 1821, 2621, 15803, 7343, 37361, 16467, 60629}}, +{17556, 18, 69885, {1, 3, 3, 11, 11, 29, 109, 1, 83, 475, 1913, 1975, 1289, 5221, 24221, 7479, 26683, 203435}}, +{17557, 18, 69946, {1, 1, 3, 13, 3, 35, 119, 131, 323, 413, 147, 4009, 3167, 11161, 30523, 65223, 109859, 239317}}, +{17558, 18, 69966, {1, 3, 1, 11, 25, 17, 103, 165, 437, 163, 1141, 105, 3655, 8105, 20859, 50727, 27915, 19309}}, +{17559, 18, 69973, {1, 3, 3, 11, 9, 59, 17, 135, 131, 781, 675, 2865, 7287, 11431, 3717, 56691, 54971, 83433}}, +{17560, 18, 69977, {1, 1, 1, 11, 3, 1, 59, 35, 299, 927, 1761, 823, 287, 13271, 30321, 32895, 45961, 23151}}, +{17561, 18, 69980, {1, 3, 3, 7, 11, 3, 11, 115, 241, 497, 1359, 1789, 6677, 2683, 21145, 58185, 46131, 17591}}, +{17562, 18, 69984, {1, 3, 1, 3, 17, 5, 65, 169, 247, 1001, 1183, 1801, 759, 2797, 28721, 7549, 112463, 127451}}, +{17563, 18, 69994, {1, 1, 1, 11, 1, 49, 5, 227, 333, 793, 759, 2845, 6261, 6325, 6581, 35853, 39737, 21457}}, +{17564, 18, 70024, {1, 1, 1, 3, 7, 17, 81, 105, 453, 207, 1113, 301, 4933, 14715, 18815, 29165, 85251, 209171}}, +{17565, 18, 70044, {1, 3, 1, 13, 3, 25, 7, 109, 249, 649, 1009, 937, 659, 14605, 13325, 26003, 45507, 166837}}, +{17566, 18, 70053, {1, 3, 7, 11, 19, 57, 55, 213, 261, 325, 761, 3167, 6823, 15039, 13329, 30195, 52103, 27877}}, +{17567, 18, 70086, {1, 3, 3, 11, 31, 45, 3, 185, 225, 143, 651, 327, 4263, 6005, 31577, 57779, 90485, 48393}}, +{17568, 18, 70113, {1, 1, 3, 13, 9, 21, 97, 63, 285, 531, 1275, 175, 693, 3735, 15137, 62193, 80533, 196545}}, +{17569, 18, 70120, {1, 1, 1, 11, 5, 25, 101, 111, 101, 17, 1999, 3709, 19, 5087, 20151, 4781, 88417, 186293}}, +{17570, 18, 70131, {1, 1, 5, 7, 31, 37, 39, 85, 451, 189, 1521, 619, 5021, 2601, 32447, 43513, 8317, 170611}}, +{17571, 18, 70150, {1, 1, 7, 1, 25, 45, 33, 111, 443, 719, 1869, 3619, 5751, 2649, 27823, 55465, 113203, 23875}}, +{17572, 18, 70178, {1, 3, 5, 15, 19, 47, 49, 241, 75, 395, 307, 1001, 137, 7029, 21661, 39159, 94129, 106693}}, +{17573, 18, 70198, {1, 3, 7, 1, 7, 35, 85, 27, 285, 975, 565, 2119, 5861, 9229, 15877, 25017, 10551, 155357}}, +{17574, 18, 70227, {1, 3, 3, 5, 29, 41, 17, 159, 211, 571, 907, 1745, 6541, 11643, 4441, 54599, 83359, 57227}}, +{17575, 18, 70285, {1, 3, 7, 5, 19, 11, 37, 191, 75, 443, 1833, 1715, 6949, 2477, 31161, 15647, 84305, 82887}}, +{17576, 18, 70288, {1, 1, 3, 9, 29, 35, 87, 11, 147, 443, 1659, 2457, 1615, 16135, 10729, 31583, 111583, 52607}}, +{17577, 18, 70291, {1, 3, 7, 1, 7, 47, 55, 133, 53, 23, 225, 2689, 3075, 12435, 8337, 37065, 58631, 247415}}, +{17578, 18, 70309, {1, 3, 3, 9, 23, 39, 5, 17, 353, 443, 627, 1609, 5277, 3899, 31111, 5935, 25445, 161043}}, +{17579, 18, 70334, {1, 3, 3, 11, 31, 11, 97, 99, 37, 169, 1361, 689, 5481, 5935, 11957, 36761, 105641, 250905}}, +{17580, 18, 70339, {1, 1, 7, 15, 31, 33, 3, 201, 125, 649, 315, 497, 7715, 2331, 9081, 16073, 88459, 70475}}, +{17581, 18, 70381, {1, 1, 7, 13, 25, 25, 39, 193, 185, 253, 495, 1143, 3745, 3459, 10935, 22029, 70213, 245827}}, +{17582, 18, 70413, {1, 3, 3, 11, 1, 47, 93, 27, 117, 755, 1837, 4045, 4839, 3413, 21395, 41905, 6505, 158029}}, +{17583, 18, 70414, {1, 3, 5, 5, 3, 41, 23, 207, 3, 409, 1635, 3511, 899, 747, 10623, 44933, 62439, 75577}}, +{17584, 18, 70481, {1, 3, 7, 15, 1, 15, 113, 175, 43, 513, 515, 1295, 1903, 9961, 20995, 57319, 40649, 22799}}, +{17585, 18, 70488, {1, 1, 5, 9, 7, 25, 99, 167, 117, 547, 777, 3819, 4409, 13465, 3963, 53355, 67895, 58007}}, +{17586, 18, 70493, {1, 1, 5, 9, 25, 9, 11, 113, 455, 563, 143, 1507, 4055, 6805, 25027, 37645, 475, 193193}}, +{17587, 18, 70515, {1, 1, 1, 11, 15, 27, 123, 199, 229, 27, 1285, 4013, 6541, 11203, 23705, 56821, 59665, 151109}}, +{17588, 18, 70540, {1, 1, 3, 1, 31, 19, 27, 129, 235, 407, 865, 2723, 5387, 7727, 2309, 45787, 118107, 199907}}, +{17589, 18, 70543, {1, 1, 5, 15, 17, 1, 21, 167, 165, 203, 745, 825, 7993, 15191, 13731, 13417, 543, 201511}}, +{17590, 18, 70558, {1, 3, 1, 1, 29, 49, 45, 81, 321, 755, 1319, 633, 4889, 7809, 6305, 58233, 20213, 144915}}, +{17591, 18, 70568, {1, 1, 3, 13, 1, 31, 73, 173, 111, 961, 1995, 3827, 879, 5567, 31103, 13227, 126611, 204507}}, +{17592, 18, 70582, {1, 1, 3, 7, 21, 3, 75, 137, 125, 981, 1991, 1167, 1249, 3821, 19503, 52855, 122329, 68717}}, +{17593, 18, 70593, {1, 1, 1, 13, 17, 17, 69, 167, 327, 635, 427, 2125, 7499, 9715, 24097, 39361, 64301, 63411}}, +{17594, 18, 70596, {1, 1, 1, 1, 31, 57, 55, 31, 289, 251, 823, 2301, 5965, 3381, 479, 39545, 93051, 68683}}, +{17595, 18, 70613, {1, 1, 3, 3, 15, 27, 117, 37, 29, 851, 1891, 3507, 6279, 323, 11451, 57961, 41487, 188359}}, +{17596, 18, 70620, {1, 1, 5, 1, 25, 55, 125, 207, 129, 849, 589, 1381, 3395, 645, 1157, 29285, 105423, 104429}}, +{17597, 18, 70647, {1, 1, 7, 7, 9, 47, 41, 103, 473, 395, 883, 1087, 2827, 9685, 6313, 15461, 39803, 254865}}, +{17598, 18, 70666, {1, 1, 7, 3, 17, 55, 71, 119, 159, 185, 1415, 3033, 3045, 1403, 18349, 2727, 123995, 45953}}, +{17599, 18, 70710, {1, 1, 3, 15, 17, 11, 19, 25, 483, 29, 1329, 1779, 2885, 6655, 28327, 42255, 87555, 211051}}, +{17600, 18, 70719, {1, 3, 5, 11, 29, 19, 43, 141, 157, 87, 1091, 3505, 3139, 11919, 12123, 31581, 116229, 167875}}, +{17601, 18, 70721, {1, 3, 1, 5, 25, 55, 113, 219, 491, 607, 1641, 3833, 3153, 1881, 16027, 39923, 38551, 204819}}, +{17602, 18, 70722, {1, 1, 5, 3, 7, 9, 73, 181, 305, 211, 1699, 983, 3051, 11643, 12445, 44827, 74613, 199699}}, +{17603, 18, 70742, {1, 1, 3, 5, 23, 21, 115, 49, 311, 205, 963, 1357, 4013, 8357, 7065, 47757, 7937, 249935}}, +{17604, 18, 70757, {1, 1, 1, 9, 23, 61, 21, 165, 9, 829, 457, 3975, 5831, 10901, 15871, 36769, 45899, 162083}}, +{17605, 18, 70764, {1, 1, 3, 3, 25, 41, 91, 45, 37, 939, 299, 3815, 6433, 3121, 10585, 62125, 51333, 171615}}, +{17606, 18, 70781, {1, 1, 5, 11, 1, 1, 39, 45, 141, 803, 1493, 1151, 6243, 8683, 30223, 53661, 7949, 197291}}, +{17607, 18, 70795, {1, 1, 3, 1, 17, 35, 29, 253, 395, 933, 1015, 3431, 139, 9095, 30745, 39747, 58837, 28517}}, +{17608, 18, 70803, {1, 1, 5, 3, 21, 17, 105, 21, 249, 387, 1985, 951, 6323, 8221, 24601, 57367, 18751, 240661}}, +{17609, 18, 70809, {1, 1, 7, 9, 5, 21, 23, 149, 243, 501, 935, 855, 1821, 15885, 2239, 39091, 93615, 31411}}, +{17610, 18, 70821, {1, 1, 1, 3, 23, 11, 43, 5, 65, 193, 1723, 3253, 7533, 12987, 571, 56073, 125061, 97117}}, +{17611, 18, 70846, {1, 1, 1, 13, 13, 21, 113, 79, 115, 867, 777, 2199, 501, 2913, 18697, 14959, 18369, 41631}}, +{17612, 18, 70882, {1, 1, 7, 13, 13, 53, 101, 165, 447, 995, 587, 201, 1701, 6429, 8647, 59265, 27321, 110841}}, +{17613, 18, 70887, {1, 3, 1, 3, 25, 35, 67, 95, 173, 877, 1133, 3027, 2321, 12517, 4313, 24469, 40313, 253095}}, +{17614, 18, 70940, {1, 1, 1, 9, 17, 33, 103, 141, 259, 963, 1975, 2979, 5017, 15689, 30659, 55145, 73737, 43539}}, +{17615, 18, 70961, {1, 3, 1, 15, 7, 7, 7, 1, 267, 415, 1591, 17, 2451, 13415, 6993, 16631, 90019, 237161}}, +{17616, 18, 70996, {1, 1, 7, 11, 11, 37, 107, 143, 263, 49, 1391, 3269, 6139, 1413, 26557, 16369, 86789, 89151}}, +{17617, 18, 71012, {1, 1, 7, 13, 27, 41, 3, 169, 453, 547, 157, 3219, 4711, 9805, 10657, 8121, 40229, 247825}}, +{17618, 18, 71046, {1, 3, 3, 3, 25, 25, 109, 253, 67, 901, 259, 1159, 6161, 6763, 19669, 42775, 74089, 69821}}, +{17619, 18, 71057, {1, 3, 7, 15, 11, 25, 91, 137, 247, 851, 511, 1847, 1179, 411, 9545, 31275, 46201, 169677}}, +{17620, 18, 71060, {1, 1, 5, 3, 3, 61, 19, 167, 491, 765, 1997, 3267, 883, 15439, 27581, 24865, 128245, 130055}}, +{17621, 18, 71063, {1, 1, 3, 9, 17, 61, 7, 109, 325, 347, 1109, 889, 2995, 4763, 21551, 60137, 91833, 126989}}, +{17622, 18, 71079, {1, 3, 3, 7, 5, 17, 61, 107, 209, 577, 885, 2611, 1471, 7549, 16199, 12319, 48865, 242229}}, +{17623, 18, 71080, {1, 3, 5, 1, 5, 49, 85, 177, 213, 583, 857, 179, 1805, 4297, 5835, 61923, 22741, 261983}}, +{17624, 18, 71111, {1, 3, 1, 13, 1, 1, 83, 227, 457, 375, 567, 1563, 2085, 8153, 12563, 44561, 115487, 188351}}, +{17625, 18, 71118, {1, 3, 1, 9, 15, 39, 127, 135, 181, 967, 1495, 3187, 7463, 9651, 26261, 57435, 42069, 48549}}, +{17626, 18, 71129, {1, 3, 1, 7, 5, 31, 111, 19, 19, 855, 273, 2089, 6001, 2799, 26013, 6625, 75623, 150185}}, +{17627, 18, 71136, {1, 1, 7, 1, 31, 19, 15, 159, 35, 791, 1005, 3947, 7031, 41, 28807, 45299, 37761, 101191}}, +{17628, 18, 71142, {1, 3, 5, 3, 15, 7, 7, 67, 329, 367, 843, 2309, 3023, 5369, 21561, 18881, 14395, 193369}}, +{17629, 18, 71145, {1, 3, 3, 11, 21, 53, 3, 251, 87, 131, 563, 847, 8049, 1639, 30103, 30461, 108427, 125197}}, +{17630, 18, 71151, {1, 1, 1, 5, 21, 45, 79, 229, 29, 133, 1873, 261, 4221, 3091, 25569, 11219, 70693, 227025}}, +{17631, 18, 71163, {1, 3, 1, 5, 17, 9, 75, 101, 155, 311, 789, 821, 7361, 3791, 18511, 57607, 97647, 42107}}, +{17632, 18, 71218, {1, 3, 1, 11, 21, 39, 33, 179, 7, 775, 55, 3779, 6163, 3575, 27535, 32363, 9169, 57133}}, +{17633, 18, 71223, {1, 3, 7, 3, 19, 33, 19, 11, 173, 175, 219, 3585, 1115, 15693, 23481, 45669, 94149, 19531}}, +{17634, 18, 71232, {1, 1, 5, 11, 11, 49, 29, 217, 229, 757, 1031, 3833, 4235, 13535, 8765, 20707, 52851, 9037}}, +{17635, 18, 71237, {1, 3, 1, 13, 25, 61, 65, 111, 95, 533, 1235, 2947, 3239, 9513, 11395, 9321, 117535, 228289}}, +{17636, 18, 71272, {1, 1, 1, 3, 19, 33, 13, 233, 331, 811, 1931, 1109, 7705, 3129, 19757, 44325, 97903, 165311}}, +{17637, 18, 71323, {1, 1, 3, 15, 13, 55, 57, 81, 257, 613, 1305, 653, 6059, 4935, 15707, 4717, 1859, 109265}}, +{17638, 18, 71339, {1, 1, 7, 15, 15, 19, 19, 91, 213, 311, 1651, 2215, 6985, 2989, 11961, 28647, 111163, 217187}}, +{17639, 18, 71341, {1, 3, 3, 5, 15, 31, 45, 193, 119, 11, 511, 3155, 5989, 813, 32655, 41531, 121007, 24733}}, +{17640, 18, 71349, {1, 3, 7, 1, 19, 63, 61, 11, 225, 677, 1323, 1655, 7607, 15691, 27083, 56743, 116167, 250413}}, +{17641, 18, 71368, {1, 1, 1, 15, 7, 25, 27, 213, 171, 1011, 1483, 119, 6849, 12527, 20601, 35701, 68377, 245669}}, +{17642, 18, 71379, {1, 3, 7, 5, 27, 5, 7, 117, 127, 871, 631, 3395, 1501, 4839, 1857, 45769, 107597, 90385}}, +{17643, 18, 71395, {1, 1, 3, 13, 1, 15, 49, 69, 479, 919, 881, 3069, 5609, 12795, 30225, 14411, 122847, 75569}}, +{17644, 18, 71407, {1, 1, 5, 9, 1, 15, 91, 207, 235, 667, 321, 2047, 841, 16049, 12499, 8799, 8245, 42199}}, +{17645, 18, 71421, {1, 3, 7, 15, 11, 19, 99, 163, 331, 953, 791, 3443, 3215, 8025, 1999, 43685, 72595, 153185}}, +{17646, 18, 71430, {1, 3, 1, 13, 25, 23, 17, 133, 59, 233, 151, 1971, 3611, 3951, 16979, 991, 73325, 158475}}, +{17647, 18, 71436, {1, 3, 5, 11, 1, 53, 123, 81, 285, 457, 1183, 489, 939, 3069, 15845, 24799, 81301, 105187}}, +{17648, 18, 71454, {1, 3, 5, 1, 11, 5, 61, 151, 5, 813, 1347, 1107, 4915, 4035, 18709, 20909, 60569, 55007}}, +{17649, 18, 71467, {1, 3, 3, 7, 27, 41, 79, 193, 471, 415, 937, 2561, 1669, 9213, 21145, 44917, 64763, 33195}}, +{17650, 18, 71472, {1, 3, 7, 13, 31, 5, 71, 237, 419, 957, 1741, 2829, 5879, 8143, 8717, 48995, 114465, 110295}}, +{17651, 18, 71478, {1, 1, 7, 3, 7, 23, 83, 161, 381, 313, 383, 2813, 333, 4647, 18321, 10437, 111645, 55509}}, +{17652, 18, 71481, {1, 1, 5, 9, 23, 1, 83, 121, 245, 37, 1097, 1437, 3891, 2727, 30775, 27649, 95571, 216245}}, +{17653, 18, 71501, {1, 1, 5, 7, 1, 43, 59, 253, 329, 421, 791, 3945, 2599, 2243, 11121, 37761, 27223, 176867}}, +{17654, 18, 71519, {1, 3, 5, 5, 25, 59, 85, 155, 367, 291, 1025, 1415, 7871, 14191, 23249, 32233, 93253, 177869}}, +{17655, 18, 71530, {1, 1, 1, 9, 21, 41, 111, 241, 177, 999, 779, 2827, 1683, 6405, 16133, 26523, 102567, 190313}}, +{17656, 18, 71550, {1, 3, 3, 15, 13, 59, 69, 239, 231, 511, 1675, 147, 4041, 3723, 29191, 24913, 15601, 198141}}, +{17657, 18, 71573, {1, 3, 3, 9, 17, 29, 1, 107, 243, 509, 1949, 205, 1693, 6339, 31591, 61527, 128043, 222497}}, +{17658, 18, 71593, {1, 3, 7, 3, 21, 7, 87, 57, 9, 209, 1831, 2189, 5523, 8509, 23687, 46221, 87469, 146815}}, +{17659, 18, 71608, {1, 3, 7, 9, 5, 45, 51, 207, 401, 681, 469, 1951, 793, 16379, 32143, 55457, 91787, 178569}}, +{17660, 18, 71619, {1, 3, 3, 9, 19, 15, 121, 143, 243, 795, 1839, 2411, 7175, 11535, 31995, 4157, 20111, 92653}}, +{17661, 18, 71622, {1, 3, 1, 1, 1, 5, 47, 107, 455, 429, 1411, 2375, 2823, 14657, 16297, 21893, 115257, 50343}}, +{17662, 18, 71636, {1, 3, 5, 9, 19, 63, 55, 197, 281, 797, 1539, 2601, 4497, 1631, 26583, 23819, 104553, 27285}}, +{17663, 18, 71650, {1, 1, 3, 9, 23, 41, 123, 37, 327, 789, 1711, 1299, 6735, 7243, 30635, 21251, 56081, 65623}}, +{17664, 18, 71655, {1, 3, 7, 15, 25, 49, 89, 231, 133, 1003, 351, 765, 7115, 16239, 1141, 44063, 31519, 233719}}, +{17665, 18, 71685, {1, 3, 7, 3, 13, 37, 93, 83, 59, 539, 1185, 525, 705, 993, 1113, 1871, 60817, 254075}}, +{17666, 18, 71703, {1, 3, 7, 11, 25, 33, 23, 21, 141, 451, 25, 1321, 5139, 8947, 10305, 30175, 43123, 113049}}, +{17667, 18, 71714, {1, 3, 5, 5, 17, 1, 125, 211, 143, 637, 1175, 1149, 6775, 11091, 12503, 5537, 35379, 30045}}, +{17668, 18, 71748, {1, 1, 1, 15, 17, 31, 123, 33, 279, 831, 1247, 2305, 1033, 3201, 231, 23173, 34453, 66617}}, +{17669, 18, 71758, {1, 3, 3, 1, 3, 1, 23, 115, 421, 553, 273, 4091, 5965, 7521, 18393, 31229, 78533, 243921}}, +{17670, 18, 71766, {1, 1, 7, 15, 15, 29, 73, 165, 391, 215, 1801, 45, 7451, 6969, 27897, 36599, 103647, 145165}}, +{17671, 18, 71772, {1, 3, 3, 13, 5, 7, 67, 81, 477, 301, 1397, 921, 3777, 12431, 14753, 50555, 24497, 52995}}, +{17672, 18, 71785, {1, 1, 5, 5, 27, 21, 91, 155, 405, 347, 1135, 3701, 2471, 577, 3927, 52605, 1725, 25803}}, +{17673, 18, 71794, {1, 3, 1, 3, 15, 57, 117, 175, 437, 13, 1821, 649, 899, 1295, 2753, 2183, 47923, 163407}}, +{17674, 18, 71796, {1, 3, 5, 9, 23, 15, 103, 179, 233, 787, 715, 3751, 3321, 2069, 8299, 43417, 96549, 180737}}, +{17675, 18, 71803, {1, 3, 7, 9, 1, 41, 81, 205, 141, 707, 397, 763, 4797, 8843, 3311, 37425, 43873, 131491}}, +{17676, 18, 71809, {1, 1, 5, 3, 9, 29, 123, 163, 15, 871, 159, 2615, 6987, 471, 25653, 11295, 94481, 195409}}, +{17677, 18, 71858, {1, 3, 7, 3, 13, 7, 9, 59, 59, 381, 2027, 2639, 59, 7977, 14505, 34327, 99113, 157439}}, +{17678, 18, 71863, {1, 1, 5, 9, 27, 13, 87, 85, 443, 531, 1069, 3479, 6547, 13943, 13711, 11007, 37395, 190293}}, +{17679, 18, 71878, {1, 3, 7, 9, 19, 47, 95, 229, 395, 979, 359, 1799, 7389, 14377, 19371, 56785, 6699, 215433}}, +{17680, 18, 71895, {1, 1, 1, 5, 21, 15, 59, 17, 281, 585, 293, 3029, 2539, 16089, 19, 34757, 115811, 235565}}, +{17681, 18, 71899, {1, 1, 7, 11, 27, 19, 55, 217, 475, 119, 1291, 1761, 6879, 4355, 30019, 17573, 14987, 204623}}, +{17682, 18, 71906, {1, 1, 7, 11, 29, 47, 5, 201, 165, 845, 385, 2903, 7735, 10855, 14171, 17881, 45001, 100725}}, +{17683, 18, 71908, {1, 1, 5, 5, 31, 57, 99, 35, 315, 363, 1135, 897, 1041, 729, 26987, 15299, 29563, 67293}}, +{17684, 18, 71917, {1, 1, 5, 7, 27, 13, 99, 81, 491, 887, 1309, 3343, 7241, 1289, 12021, 52533, 101799, 238721}}, +{17685, 18, 71952, {1, 1, 1, 11, 27, 49, 79, 235, 49, 215, 2003, 2771, 5943, 1183, 31931, 33885, 56971, 52665}}, +{17686, 18, 71957, {1, 1, 1, 13, 13, 1, 123, 1, 191, 747, 859, 2287, 5113, 3715, 2217, 61483, 195, 237163}}, +{17687, 18, 71961, {1, 3, 7, 15, 13, 13, 17, 207, 141, 821, 231, 1373, 5355, 6503, 2403, 18183, 83717, 170047}}, +{17688, 18, 71973, {1, 3, 1, 3, 13, 11, 41, 51, 443, 201, 1349, 2331, 1009, 16169, 5247, 50315, 15589, 150497}}, +{17689, 18, 71980, {1, 3, 5, 13, 29, 21, 93, 55, 27, 17, 1615, 3473, 3641, 10999, 31955, 4699, 23585, 141243}}, +{17690, 18, 71997, {1, 3, 3, 11, 11, 27, 125, 139, 53, 637, 241, 2651, 4999, 5923, 16203, 13645, 95965, 94459}}, +{17691, 18, 72017, {1, 3, 7, 3, 9, 53, 87, 171, 489, 691, 303, 3599, 6093, 841, 3527, 12953, 22907, 69823}}, +{17692, 18, 72060, {1, 1, 5, 13, 31, 11, 33, 207, 437, 683, 703, 1757, 1443, 14269, 12677, 20877, 46791, 176135}}, +{17693, 18, 72091, {1, 1, 7, 1, 13, 53, 123, 199, 173, 585, 1099, 3653, 2253, 13741, 15675, 38755, 74545, 139053}}, +{17694, 18, 72097, {1, 3, 3, 3, 17, 11, 1, 161, 383, 409, 605, 889, 827, 263, 9677, 42857, 127691, 99621}}, +{17695, 18, 72166, {1, 3, 5, 9, 21, 21, 11, 151, 199, 695, 493, 569, 881, 10533, 11255, 61997, 124921, 211139}}, +{17696, 18, 72172, {1, 3, 5, 5, 9, 47, 109, 7, 195, 287, 97, 3691, 6929, 6985, 3063, 16185, 6313, 228147}}, +{17697, 18, 72183, {1, 3, 1, 3, 3, 9, 107, 243, 391, 893, 1207, 2229, 5295, 723, 14753, 10921, 104147, 214941}}, +{17698, 18, 72203, {1, 3, 1, 9, 5, 63, 63, 247, 413, 805, 285, 4001, 6735, 3531, 25949, 44845, 66959, 194429}}, +{17699, 18, 72205, {1, 1, 3, 1, 15, 15, 43, 69, 419, 739, 1739, 1091, 1043, 3217, 1139, 44749, 74131, 165145}}, +{17700, 18, 72213, {1, 1, 3, 9, 17, 53, 119, 25, 427, 791, 1873, 481, 6793, 4767, 30449, 18079, 52105, 260371}}, +{17701, 18, 72214, {1, 1, 3, 15, 15, 41, 15, 53, 395, 571, 1727, 3081, 4531, 4215, 22359, 18165, 91843, 157273}}, +{17702, 18, 72230, {1, 3, 3, 9, 19, 15, 55, 185, 321, 285, 695, 1067, 2551, 1401, 20023, 22671, 21365, 89053}}, +{17703, 18, 72239, {1, 1, 7, 15, 23, 57, 71, 141, 57, 479, 543, 3783, 3635, 14011, 23603, 40877, 21837, 81079}}, +{17704, 18, 72248, {1, 3, 7, 11, 31, 5, 83, 177, 105, 981, 331, 2901, 1781, 8407, 30199, 19287, 116219, 78471}}, +{17705, 18, 72251, {1, 1, 1, 9, 7, 13, 61, 21, 299, 15, 1045, 475, 7141, 4827, 5921, 17323, 42909, 203623}}, +{17706, 18, 72280, {1, 3, 7, 1, 17, 59, 99, 221, 77, 37, 1263, 2137, 1567, 12473, 20029, 9231, 32739, 17021}}, +{17707, 18, 72313, {1, 1, 1, 5, 23, 61, 39, 13, 97, 191, 1479, 19, 1913, 3185, 32393, 59067, 5483, 158895}}, +{17708, 18, 72338, {1, 1, 1, 7, 5, 51, 81, 223, 435, 939, 781, 1153, 6409, 6369, 30559, 19007, 50121, 26525}}, +{17709, 18, 72340, {1, 3, 3, 5, 29, 1, 57, 127, 153, 897, 161, 683, 295, 11207, 245, 1819, 3061, 242609}}, +{17710, 18, 72343, {1, 1, 1, 7, 5, 19, 105, 57, 263, 433, 1339, 1479, 6671, 9917, 26299, 4573, 68725, 195}}, +{17711, 18, 72368, {1, 3, 5, 15, 1, 19, 45, 95, 155, 117, 367, 2051, 1053, 8847, 6399, 23641, 95355, 98415}}, +{17712, 18, 72371, {1, 3, 3, 15, 3, 1, 5, 115, 349, 747, 1865, 1669, 659, 7097, 7871, 3685, 11013, 59837}}, +{17713, 18, 72426, {1, 3, 3, 5, 9, 47, 51, 131, 327, 903, 975, 2481, 3509, 12481, 4049, 38053, 4629, 254415}}, +{17714, 18, 72439, {1, 3, 5, 9, 31, 47, 1, 29, 37, 683, 1363, 2527, 4019, 4965, 14077, 14191, 101, 1945}}, +{17715, 18, 72446, {1, 1, 7, 1, 9, 35, 41, 187, 509, 33, 385, 3907, 1461, 6827, 6931, 44723, 109495, 184641}}, +{17716, 18, 72494, {1, 3, 5, 9, 5, 49, 21, 171, 353, 927, 409, 913, 5199, 11747, 8777, 19891, 63189, 118839}}, +{17717, 18, 72519, {1, 3, 3, 1, 27, 49, 43, 157, 75, 469, 787, 3957, 4147, 13919, 17489, 57103, 62091, 135589}}, +{17718, 18, 72573, {1, 1, 3, 11, 7, 45, 29, 177, 185, 185, 1537, 127, 121, 817, 31269, 1677, 20245, 3835}}, +{17719, 18, 72577, {1, 1, 5, 3, 21, 9, 67, 79, 391, 971, 1711, 2607, 5705, 12863, 12415, 41255, 26447, 1643}}, +{17720, 18, 72578, {1, 1, 5, 5, 9, 63, 67, 245, 31, 225, 309, 1753, 1507, 817, 4275, 51843, 22331, 196875}}, +{17721, 18, 72614, {1, 3, 1, 13, 15, 39, 3, 245, 147, 485, 241, 2507, 1859, 7299, 15037, 41139, 82757, 224031}}, +{17722, 18, 72628, {1, 3, 3, 15, 7, 51, 9, 103, 37, 643, 25, 2067, 7619, 11991, 12885, 46809, 109107, 22393}}, +{17723, 18, 72640, {1, 1, 1, 9, 1, 55, 119, 85, 115, 827, 187, 2241, 2553, 577, 12115, 2391, 69705, 232101}}, +{17724, 18, 72676, {1, 1, 5, 7, 13, 61, 125, 129, 475, 703, 1723, 3233, 5713, 1941, 21375, 42119, 75199, 73163}}, +{17725, 18, 72708, {1, 1, 5, 5, 5, 21, 73, 155, 493, 81, 1627, 827, 5925, 7391, 1587, 39425, 11807, 64385}}, +{17726, 18, 72717, {1, 3, 1, 15, 27, 35, 111, 183, 283, 335, 1387, 669, 6041, 11637, 26255, 21113, 121183, 219703}}, +{17727, 18, 72766, {1, 3, 5, 15, 15, 23, 119, 91, 197, 809, 975, 3275, 6171, 11769, 8385, 5461, 4561, 29159}}, +{17728, 18, 72786, {1, 1, 5, 9, 29, 9, 107, 233, 417, 1005, 799, 1437, 2679, 15643, 32341, 54055, 27861, 115483}}, +{17729, 18, 72788, {1, 1, 5, 7, 27, 19, 95, 153, 175, 407, 215, 303, 8165, 14791, 2099, 61797, 129411, 10461}}, +{17730, 18, 72795, {1, 1, 1, 13, 25, 51, 11, 77, 97, 495, 971, 449, 2833, 7121, 24105, 34527, 123135, 129305}}, +{17731, 18, 72797, {1, 1, 7, 11, 23, 9, 111, 101, 169, 233, 267, 953, 6379, 15887, 22921, 33665, 95195, 159707}}, +{17732, 18, 72798, {1, 1, 5, 15, 21, 3, 21, 57, 173, 513, 2027, 1235, 5031, 5375, 2717, 23361, 71817, 232101}}, +{17733, 18, 72808, {1, 3, 3, 11, 7, 25, 43, 65, 19, 135, 1611, 85, 7673, 6459, 27813, 55557, 100989, 25205}}, +{17734, 18, 72826, {1, 3, 7, 1, 15, 37, 55, 141, 239, 205, 647, 3715, 1617, 13507, 9847, 64681, 108711, 231329}}, +{17735, 18, 72835, {1, 3, 5, 9, 21, 27, 79, 153, 335, 299, 493, 887, 1457, 16011, 13795, 50205, 43319, 130963}}, +{17736, 18, 72837, {1, 1, 3, 1, 23, 59, 121, 83, 463, 151, 323, 2977, 4769, 6011, 20135, 59541, 23179, 203487}}, +{17737, 18, 72865, {1, 1, 5, 7, 9, 17, 63, 149, 59, 281, 763, 619, 2551, 8179, 2963, 61283, 107727, 119817}}, +{17738, 18, 72871, {1, 3, 7, 3, 15, 39, 11, 145, 141, 965, 505, 2625, 4335, 7619, 11007, 43321, 33199, 212661}}, +{17739, 18, 72872, {1, 3, 5, 9, 9, 61, 27, 223, 5, 941, 513, 1437, 481, 9651, 6567, 57945, 52547, 21283}}, +{17740, 18, 72898, {1, 3, 1, 1, 25, 1, 87, 25, 121, 757, 529, 3857, 1321, 13479, 5357, 49341, 5797, 235895}}, +{17741, 18, 72907, {1, 3, 5, 1, 21, 35, 37, 215, 509, 165, 1423, 3067, 4779, 4693, 12523, 48099, 69283, 255111}}, +{17742, 18, 72909, {1, 1, 3, 1, 31, 15, 45, 127, 339, 331, 1249, 1075, 6169, 2941, 30471, 46789, 118039, 224651}}, +{17743, 18, 72917, {1, 1, 5, 13, 21, 37, 39, 61, 191, 17, 177, 3719, 2177, 11039, 20047, 14489, 20475, 171235}}, +{17744, 18, 72934, {1, 1, 3, 9, 19, 11, 65, 111, 121, 901, 99, 1861, 3687, 765, 24861, 46315, 63433, 171679}}, +{17745, 18, 72987, {1, 3, 1, 7, 1, 51, 87, 199, 241, 909, 353, 2471, 7163, 9547, 16351, 41129, 12217, 194099}}, +{17746, 18, 73000, {1, 1, 7, 7, 17, 17, 127, 67, 51, 217, 1189, 19, 2099, 10281, 9071, 21185, 122821, 110211}}, +{17747, 18, 73005, {1, 3, 3, 7, 15, 3, 53, 45, 77, 665, 701, 3175, 6151, 2639, 19819, 1063, 25079, 203343}}, +{17748, 18, 73014, {1, 1, 5, 11, 11, 5, 103, 11, 481, 999, 713, 499, 5069, 921, 20619, 25623, 69601, 82941}}, +{17749, 18, 73023, {1, 3, 5, 9, 15, 61, 67, 79, 371, 993, 475, 617, 1611, 12513, 14907, 55313, 39207, 112653}}, +{17750, 18, 73025, {1, 1, 5, 15, 17, 45, 91, 187, 175, 465, 907, 3371, 3743, 15657, 30511, 58191, 105683, 216759}}, +{17751, 18, 73074, {1, 1, 5, 9, 23, 1, 17, 79, 73, 717, 1785, 677, 7377, 4511, 21927, 34341, 47119, 193977}}, +{17752, 18, 73076, {1, 3, 7, 13, 21, 1, 59, 179, 121, 641, 175, 563, 961, 10549, 15779, 49875, 8109, 1039}}, +{17753, 18, 73113, {1, 1, 5, 7, 17, 9, 37, 171, 335, 135, 1403, 2541, 3845, 15311, 1905, 40853, 11013, 255669}}, +{17754, 18, 73116, {1, 1, 7, 1, 5, 23, 113, 111, 337, 755, 2037, 3067, 2821, 10549, 28467, 22615, 71585, 61871}}, +{17755, 18, 73140, {1, 1, 3, 9, 7, 3, 49, 229, 111, 871, 1711, 1793, 3089, 12571, 30883, 44773, 80827, 151709}}, +{17756, 18, 73149, {1, 1, 5, 1, 13, 41, 3, 253, 399, 881, 1107, 4081, 1849, 115, 31557, 2515, 126751, 195663}}, +{17757, 18, 73186, {1, 1, 3, 1, 13, 31, 113, 85, 57, 549, 1653, 2927, 5433, 11879, 22709, 41675, 13395, 46931}}, +{17758, 18, 73188, {1, 1, 3, 9, 21, 1, 109, 65, 377, 63, 861, 1031, 2709, 7265, 9861, 64109, 34577, 9743}}, +{17759, 18, 73191, {1, 1, 7, 7, 17, 31, 5, 177, 253, 387, 1271, 2805, 2211, 1813, 11649, 3217, 123793, 197753}}, +{17760, 18, 73205, {1, 1, 3, 9, 15, 63, 89, 59, 455, 783, 1181, 7, 2309, 15961, 11231, 37389, 101221, 119331}}, +{17761, 18, 73215, {1, 3, 3, 13, 7, 3, 15, 251, 431, 951, 639, 1585, 1247, 15927, 9695, 37469, 34945, 219723}}, +{17762, 18, 73216, {1, 1, 5, 3, 21, 29, 83, 151, 383, 227, 215, 2329, 1297, 13709, 15653, 3119, 111319, 222877}}, +{17763, 18, 73239, {1, 3, 1, 13, 1, 43, 127, 125, 243, 955, 583, 3497, 6605, 3821, 4657, 10599, 90927, 82725}}, +{17764, 18, 73294, {1, 1, 1, 1, 15, 51, 61, 167, 489, 603, 873, 907, 575, 6957, 24409, 63587, 50205, 159291}}, +{17765, 18, 73311, {1, 3, 3, 1, 19, 23, 7, 23, 239, 961, 1001, 1541, 2211, 4637, 19931, 39153, 102769, 242005}}, +{17766, 18, 73330, {1, 1, 1, 15, 19, 31, 73, 121, 119, 199, 979, 4061, 3903, 12055, 27957, 15999, 5709, 210329}}, +{17767, 18, 73366, {1, 1, 7, 13, 25, 35, 21, 25, 241, 937, 13, 947, 943, 3727, 15321, 46665, 99437, 233919}}, +{17768, 18, 73379, {1, 1, 1, 9, 3, 51, 127, 113, 105, 335, 685, 2173, 4329, 7569, 5617, 32407, 21649, 30609}}, +{17769, 18, 73386, {1, 3, 7, 9, 9, 13, 69, 191, 95, 727, 1649, 1201, 2093, 10053, 29381, 6207, 70755, 118505}}, +{17770, 18, 73391, {1, 1, 1, 11, 21, 57, 77, 139, 271, 21, 1747, 2337, 7761, 7753, 6847, 5219, 87033, 229105}}, +{17771, 18, 73418, {1, 3, 3, 1, 5, 51, 15, 235, 87, 567, 391, 3039, 2253, 11177, 11899, 25305, 14815, 51051}}, +{17772, 18, 73438, {1, 3, 5, 7, 27, 51, 69, 93, 261, 947, 31, 2751, 6685, 3655, 24125, 22161, 108421, 230865}}, +{17773, 18, 73476, {1, 1, 3, 3, 27, 17, 35, 97, 285, 855, 1767, 2545, 825, 11519, 11231, 50951, 32883, 78573}}, +{17774, 18, 73503, {1, 3, 7, 13, 1, 57, 99, 193, 371, 839, 1319, 2295, 5897, 7893, 14339, 64217, 16951, 234953}}, +{17775, 18, 73509, {1, 3, 1, 3, 11, 37, 13, 21, 299, 379, 63, 1209, 7879, 5001, 10181, 40173, 1753, 104821}}, +{17776, 18, 73534, {1, 3, 5, 9, 23, 51, 75, 103, 249, 533, 621, 15, 1883, 2109, 20859, 4635, 120615, 135515}}, +{17777, 18, 73545, {1, 1, 3, 3, 21, 45, 113, 57, 495, 457, 685, 3625, 243, 14831, 12351, 63001, 118191, 153875}}, +{17778, 18, 73548, {1, 3, 5, 5, 21, 15, 65, 251, 183, 241, 1513, 2711, 4527, 12675, 26747, 5181, 4237, 246479}}, +{17779, 18, 73563, {1, 1, 5, 3, 27, 29, 91, 93, 345, 893, 195, 3109, 2611, 12657, 10401, 15063, 95807, 244587}}, +{17780, 18, 73575, {1, 3, 5, 13, 19, 49, 85, 155, 159, 939, 1139, 1569, 1129, 8641, 18391, 55201, 108491, 77863}}, +{17781, 18, 73582, {1, 3, 5, 9, 25, 53, 75, 77, 85, 903, 1399, 2379, 2219, 14725, 21877, 24271, 40955, 61849}}, +{17782, 18, 73603, {1, 1, 5, 9, 13, 49, 53, 177, 163, 331, 533, 1469, 1397, 8187, 12379, 10185, 125541, 260271}}, +{17783, 18, 73609, {1, 1, 7, 9, 19, 31, 81, 89, 281, 397, 1917, 145, 2723, 15019, 18841, 13887, 11859, 171749}}, +{17784, 18, 73610, {1, 3, 7, 13, 25, 17, 87, 189, 29, 283, 913, 3855, 5707, 15881, 12787, 42357, 84579, 78531}}, +{17785, 18, 73645, {1, 1, 5, 15, 15, 31, 37, 249, 445, 119, 431, 4069, 5699, 10119, 31661, 9555, 6869, 1145}}, +{17786, 18, 73646, {1, 3, 7, 1, 31, 29, 57, 177, 341, 411, 1019, 1889, 383, 1461, 26695, 61777, 18367, 137233}}, +{17787, 18, 73678, {1, 3, 5, 1, 7, 53, 29, 53, 387, 675, 435, 461, 6247, 7519, 14003, 9037, 116599, 54471}}, +{17788, 18, 73685, {1, 3, 3, 7, 17, 59, 91, 77, 169, 591, 95, 113, 6135, 10479, 17153, 52953, 16183, 90775}}, +{17789, 18, 73708, {1, 3, 3, 15, 11, 11, 117, 141, 493, 163, 65, 1305, 7477, 7383, 22651, 64271, 80983, 154845}}, +{17790, 18, 73747, {1, 1, 1, 3, 9, 15, 83, 11, 113, 77, 1115, 1417, 511, 6825, 21013, 37241, 104695, 31335}}, +{17791, 18, 73765, {1, 1, 7, 3, 13, 33, 115, 121, 245, 673, 1991, 2157, 479, 9843, 5963, 4637, 8925, 27751}}, +{17792, 18, 73797, {1, 3, 3, 7, 19, 11, 67, 125, 339, 27, 1545, 2319, 5977, 11603, 23219, 48273, 119265, 20151}}, +{17793, 18, 73810, {1, 1, 5, 7, 27, 29, 31, 227, 279, 405, 1133, 689, 1133, 8957, 29629, 48849, 109995, 259749}}, +{17794, 18, 73819, {1, 3, 5, 7, 7, 61, 95, 243, 91, 741, 1591, 3169, 2287, 11015, 15601, 43043, 65319, 50671}}, +{17795, 18, 73825, {1, 1, 5, 5, 13, 47, 31, 95, 425, 715, 1603, 3485, 673, 12869, 32561, 42329, 112809, 181971}}, +{17796, 18, 73845, {1, 3, 3, 3, 17, 51, 109, 45, 397, 457, 1379, 3845, 4215, 14185, 16597, 27711, 74283, 98151}}, +{17797, 18, 73855, {1, 1, 1, 15, 7, 25, 13, 49, 441, 513, 1769, 707, 6037, 9689, 18915, 35647, 110823, 196633}}, +{17798, 18, 73866, {1, 1, 1, 1, 23, 53, 93, 61, 277, 125, 55, 2453, 3331, 14037, 10809, 33205, 43785, 248743}}, +{17799, 18, 73890, {1, 1, 3, 7, 23, 15, 93, 77, 333, 801, 1969, 31, 51, 5239, 24241, 5077, 113503, 132211}}, +{17800, 18, 73919, {1, 3, 3, 1, 7, 55, 53, 5, 311, 657, 1507, 3413, 565, 15745, 6129, 40285, 91811, 90527}}, +{17801, 18, 73922, {1, 3, 3, 13, 19, 23, 45, 25, 509, 313, 915, 2199, 5549, 8469, 32735, 37877, 11607, 37993}}, +{17802, 18, 73936, {1, 1, 5, 11, 25, 33, 55, 31, 311, 851, 159, 2103, 2641, 8957, 9375, 37179, 33667, 100513}}, +{17803, 18, 73939, {1, 3, 1, 1, 7, 7, 17, 75, 217, 171, 359, 1169, 4105, 929, 6427, 56349, 77985, 41941}}, +{17804, 18, 73964, {1, 1, 1, 15, 5, 51, 73, 63, 259, 351, 1797, 1001, 5025, 11203, 30221, 54345, 11331, 158415}}, +{17805, 18, 73976, {1, 3, 1, 5, 3, 21, 13, 3, 63, 779, 871, 2517, 6345, 4103, 16321, 30211, 120815, 83751}}, +{17806, 18, 73984, {1, 1, 3, 13, 11, 7, 41, 255, 215, 37, 279, 2485, 6511, 12855, 22857, 55695, 122717, 238151}}, +{17807, 18, 73990, {1, 3, 3, 3, 1, 55, 27, 193, 509, 677, 1861, 573, 5341, 5285, 6909, 51781, 91203, 139791}}, +{17808, 18, 74013, {1, 3, 7, 11, 5, 63, 87, 215, 305, 235, 1049, 1339, 5301, 9639, 29861, 58415, 68303, 76907}}, +{17809, 18, 74014, {1, 1, 5, 11, 13, 13, 67, 139, 19, 577, 165, 3067, 8023, 10905, 3159, 41289, 118231, 119673}}, +{17810, 18, 74020, {1, 1, 3, 1, 15, 5, 69, 119, 363, 703, 461, 2293, 3801, 14217, 10709, 9553, 100651, 186115}}, +{17811, 18, 74035, {1, 3, 7, 15, 19, 21, 59, 237, 227, 193, 827, 619, 3447, 13815, 3467, 38911, 41403, 99627}}, +{17812, 18, 74038, {1, 1, 3, 3, 27, 23, 41, 199, 161, 555, 1629, 3187, 1355, 5947, 1157, 25877, 110989, 231285}}, +{17813, 18, 74069, {1, 1, 3, 15, 3, 43, 103, 29, 179, 223, 375, 2877, 1917, 9367, 15337, 15381, 62833, 139003}}, +{17814, 18, 74119, {1, 3, 3, 11, 23, 33, 107, 189, 511, 209, 1519, 2809, 6185, 5921, 20939, 63879, 113687, 79149}}, +{17815, 18, 74123, {1, 3, 5, 15, 1, 63, 101, 227, 419, 803, 59, 2261, 6905, 10679, 5393, 54447, 58521, 59855}}, +{17816, 18, 74126, {1, 1, 7, 13, 13, 21, 121, 123, 181, 371, 1485, 3191, 2627, 6197, 11169, 44927, 34739, 10687}}, +{17817, 18, 74153, {1, 1, 3, 3, 25, 47, 13, 115, 187, 967, 1439, 1021, 4413, 3343, 31463, 3729, 13511, 162125}}, +{17818, 18, 74179, {1, 3, 3, 15, 15, 59, 29, 129, 469, 171, 2045, 2859, 1097, 11199, 12147, 37465, 14179, 197923}}, +{17819, 18, 74200, {1, 1, 7, 5, 13, 35, 41, 167, 207, 123, 1077, 3145, 2803, 15729, 767, 7321, 84375, 190855}}, +{17820, 18, 74210, {1, 3, 5, 11, 3, 5, 65, 3, 111, 725, 143, 2945, 4755, 3407, 31801, 15329, 70311, 119197}}, +{17821, 18, 74216, {1, 1, 5, 3, 17, 19, 61, 73, 261, 663, 821, 3389, 3883, 9961, 17727, 33113, 98371, 247097}}, +{17822, 18, 74250, {1, 3, 1, 9, 29, 17, 43, 43, 481, 1015, 1249, 607, 3495, 13259, 29001, 23083, 51487, 81723}}, +{17823, 18, 74263, {1, 3, 1, 3, 25, 57, 5, 33, 313, 21, 1731, 3417, 7033, 6609, 31631, 63231, 61107, 10941}}, +{17824, 18, 74264, {1, 3, 3, 11, 29, 29, 117, 131, 417, 789, 1545, 1677, 3213, 13869, 5319, 41387, 13895, 252387}}, +{17825, 18, 74279, {1, 3, 3, 13, 25, 47, 55, 213, 83, 345, 1453, 159, 1521, 14777, 24177, 7631, 81259, 135411}}, +{17826, 18, 74285, {1, 1, 3, 15, 11, 63, 49, 69, 273, 843, 1661, 1157, 1285, 12751, 5, 54909, 114375, 6395}}, +{17827, 18, 74294, {1, 3, 1, 11, 25, 1, 83, 55, 161, 125, 1547, 401, 7639, 4289, 7075, 9971, 33825, 135071}}, +{17828, 18, 74298, {1, 3, 7, 9, 17, 5, 79, 131, 373, 1023, 573, 2219, 1789, 5789, 5347, 26455, 58661, 206417}}, +{17829, 18, 74303, {1, 1, 7, 5, 1, 43, 83, 107, 125, 289, 793, 1731, 5167, 8943, 28397, 26877, 53781, 95899}}, +{17830, 18, 74306, {1, 3, 3, 13, 21, 53, 123, 103, 385, 753, 1917, 2075, 4385, 5757, 9221, 35797, 86743, 69069}}, +{17831, 18, 74366, {1, 3, 3, 3, 5, 19, 119, 221, 457, 907, 359, 3493, 2331, 5685, 11133, 29293, 27051, 213927}}, +{17832, 18, 74369, {1, 1, 3, 11, 11, 31, 29, 129, 429, 601, 1217, 3653, 5935, 14823, 21161, 33423, 98391, 214703}}, +{17833, 18, 74403, {1, 1, 3, 15, 31, 49, 109, 139, 349, 13, 205, 2483, 8083, 8391, 4789, 30355, 12165, 195263}}, +{17834, 18, 74406, {1, 1, 1, 9, 19, 63, 15, 167, 45, 185, 811, 529, 6811, 13441, 27195, 59047, 106675, 167125}}, +{17835, 18, 74442, {1, 1, 7, 1, 19, 19, 39, 1, 349, 467, 551, 4081, 4743, 11627, 607, 22005, 60893, 49101}}, +{17836, 18, 74450, {1, 3, 7, 9, 9, 25, 105, 119, 113, 825, 1429, 2019, 5209, 8491, 6017, 47783, 88455, 119083}}, +{17837, 18, 74452, {1, 3, 3, 13, 21, 39, 107, 119, 321, 251, 563, 311, 4441, 6491, 3157, 65479, 107349, 211621}}, +{17838, 18, 74459, {1, 1, 7, 13, 9, 3, 17, 117, 327, 459, 489, 7, 6883, 10047, 31935, 28069, 37903, 188281}}, +{17839, 18, 74461, {1, 1, 7, 1, 15, 53, 47, 127, 483, 595, 811, 1143, 4543, 10043, 30349, 24409, 91947, 240165}}, +{17840, 18, 74477, {1, 1, 1, 13, 25, 43, 109, 161, 147, 1009, 1071, 1533, 2781, 13439, 20507, 41387, 26943, 84675}}, +{17841, 18, 74478, {1, 3, 5, 13, 19, 21, 23, 167, 135, 257, 587, 2691, 5877, 3047, 11745, 24895, 114799, 48003}}, +{17842, 18, 74489, {1, 3, 1, 1, 9, 57, 33, 51, 137, 109, 137, 195, 1233, 11139, 16833, 27545, 35877, 126627}}, +{17843, 18, 74504, {1, 1, 1, 15, 5, 37, 7, 19, 363, 411, 1193, 767, 6209, 9115, 14699, 55515, 46023, 90693}}, +{17844, 18, 74528, {1, 3, 5, 3, 19, 55, 85, 117, 391, 757, 861, 3537, 6507, 6993, 19589, 6843, 33557, 64683}}, +{17845, 18, 74533, {1, 1, 7, 5, 5, 61, 99, 9, 311, 595, 807, 429, 63, 12359, 28289, 709, 129911, 143745}}, +{17846, 18, 74538, {1, 1, 1, 7, 17, 9, 9, 117, 19, 985, 657, 2803, 2699, 829, 31069, 13277, 106769, 109231}}, +{17847, 18, 74551, {1, 1, 5, 13, 25, 19, 63, 217, 419, 221, 1921, 215, 2631, 4659, 29855, 46549, 62257, 260113}}, +{17848, 18, 74580, {1, 3, 3, 9, 13, 45, 63, 129, 147, 489, 879, 3025, 6777, 1119, 20963, 30553, 20863, 169837}}, +{17849, 18, 74589, {1, 3, 5, 9, 25, 61, 79, 51, 495, 583, 1519, 1501, 123, 13871, 32239, 957, 31921, 255561}}, +{17850, 18, 74590, {1, 3, 7, 3, 31, 61, 89, 65, 305, 429, 785, 3871, 7711, 2745, 24131, 43055, 51167, 87743}}, +{17851, 18, 74593, {1, 3, 1, 11, 19, 23, 89, 117, 185, 121, 109, 1327, 6553, 14367, 16069, 28657, 81751, 10185}}, +{17852, 18, 74608, {1, 3, 5, 5, 17, 33, 115, 61, 101, 367, 1465, 3899, 6601, 4483, 2447, 49575, 129987, 11703}}, +{17853, 18, 74611, {1, 1, 3, 13, 13, 59, 79, 83, 253, 171, 53, 2467, 5005, 1045, 943, 62419, 98563, 78935}}, +{17854, 18, 74617, {1, 1, 7, 15, 31, 17, 77, 73, 249, 247, 119, 1655, 7079, 14593, 105, 55767, 130401, 74189}}, +{17855, 18, 74623, {1, 3, 5, 11, 19, 29, 79, 251, 75, 949, 527, 2779, 5839, 11451, 24125, 45991, 127437, 86541}}, +{17856, 18, 74648, {1, 1, 5, 7, 1, 29, 127, 27, 477, 807, 829, 1569, 205, 13319, 16149, 26003, 38985, 188587}}, +{17857, 18, 74704, {1, 1, 1, 3, 19, 29, 39, 71, 17, 51, 1169, 467, 7505, 1867, 4469, 32161, 43031, 31675}}, +{17858, 18, 74735, {1, 1, 1, 15, 27, 45, 67, 107, 127, 469, 1955, 1933, 2379, 8513, 32071, 35043, 126537, 23303}}, +{17859, 18, 74737, {1, 3, 7, 9, 23, 41, 23, 197, 97, 213, 17, 1751, 5467, 6179, 29291, 33397, 42131, 151093}}, +{17860, 18, 74738, {1, 3, 7, 15, 27, 3, 39, 87, 365, 77, 487, 293, 6405, 2239, 30455, 44723, 12399, 100013}}, +{17861, 18, 74779, {1, 3, 5, 9, 29, 21, 55, 183, 343, 263, 1643, 2027, 2255, 6259, 18277, 64661, 39391, 255839}}, +{17862, 18, 74781, {1, 1, 7, 11, 21, 55, 11, 139, 261, 11, 1721, 3779, 85, 8203, 12089, 50579, 128341, 119043}}, +{17863, 18, 74809, {1, 3, 5, 13, 27, 53, 109, 1, 313, 661, 431, 1543, 1571, 7337, 18857, 49951, 7881, 228161}}, +{17864, 18, 74812, {1, 1, 7, 5, 5, 31, 27, 149, 239, 199, 1011, 1979, 5297, 14609, 26971, 65531, 64215, 115109}}, +{17865, 18, 74827, {1, 1, 5, 13, 15, 11, 63, 225, 165, 405, 1367, 2291, 5171, 12419, 19561, 37719, 621, 137607}}, +{17866, 18, 74868, {1, 3, 1, 15, 25, 1, 125, 243, 97, 455, 1977, 3333, 801, 1343, 993, 18453, 19285, 71547}}, +{17867, 18, 74871, {1, 1, 5, 11, 9, 51, 109, 135, 73, 147, 649, 4071, 7425, 3093, 26417, 51139, 1523, 142225}}, +{17868, 18, 74905, {1, 3, 7, 11, 1, 39, 109, 119, 337, 715, 1087, 4005, 1393, 6397, 31135, 38935, 106255, 60723}}, +{17869, 18, 74930, {1, 1, 1, 9, 9, 11, 45, 11, 171, 671, 965, 109, 2261, 13775, 8539, 63669, 10507, 249113}}, +{17870, 18, 74962, {1, 3, 1, 15, 21, 33, 127, 173, 419, 31, 299, 857, 4915, 11331, 29385, 47375, 111891, 14505}}, +{17871, 18, 74990, {1, 3, 5, 13, 7, 43, 85, 183, 377, 275, 803, 1755, 8005, 15327, 31043, 18851, 122581, 229731}}, +{17872, 18, 74995, {1, 3, 5, 1, 27, 9, 41, 73, 283, 475, 671, 747, 1419, 15209, 25465, 60061, 91417, 103203}}, +{17873, 18, 75007, {1, 3, 1, 15, 15, 43, 13, 45, 217, 519, 363, 3265, 6213, 13045, 3709, 22119, 79733, 224195}}, +{17874, 18, 75012, {1, 3, 1, 15, 15, 59, 95, 71, 171, 769, 1395, 2673, 4523, 749, 13411, 60431, 124651, 11475}}, +{17875, 18, 75030, {1, 1, 7, 3, 1, 35, 13, 239, 101, 355, 1201, 3665, 5403, 11413, 11983, 52469, 63621, 155819}}, +{17876, 18, 75033, {1, 1, 1, 7, 31, 59, 87, 25, 511, 483, 569, 3337, 4027, 8347, 3031, 24351, 57963, 79425}}, +{17877, 18, 75039, {1, 3, 1, 3, 11, 17, 29, 249, 61, 923, 585, 2107, 2727, 8589, 22809, 3, 17937, 163267}}, +{17878, 18, 75055, {1, 3, 5, 11, 27, 3, 73, 187, 19, 975, 257, 2361, 935, 9071, 29991, 13619, 92169, 101031}}, +{17879, 18, 75078, {1, 1, 5, 13, 17, 53, 105, 157, 343, 673, 237, 3231, 7311, 1593, 18521, 57889, 79805, 97847}}, +{17880, 18, 75120, {1, 3, 1, 3, 31, 55, 63, 167, 489, 167, 121, 3333, 2475, 1545, 13291, 921, 101757, 62147}}, +{17881, 18, 75130, {1, 3, 3, 15, 13, 17, 9, 209, 339, 567, 2011, 1737, 1455, 9289, 6105, 49733, 74237, 93195}}, +{17882, 18, 75159, {1, 1, 7, 11, 3, 13, 77, 115, 305, 327, 1005, 3381, 4269, 4835, 27221, 16301, 75173, 244603}}, +{17883, 18, 75163, {1, 3, 5, 7, 7, 31, 47, 75, 499, 41, 281, 167, 3525, 8649, 23623, 4987, 2057, 204083}}, +{17884, 18, 75170, {1, 3, 3, 5, 9, 5, 35, 53, 269, 437, 1035, 1675, 4567, 13291, 19787, 28937, 108915, 62545}}, +{17885, 18, 75193, {1, 3, 1, 5, 15, 59, 57, 181, 321, 1, 791, 2149, 591, 6691, 8759, 62861, 10815, 257331}}, +{17886, 18, 75228, {1, 1, 7, 1, 21, 25, 93, 39, 429, 455, 669, 1725, 7087, 11805, 22405, 13083, 88411, 225967}}, +{17887, 18, 75244, {1, 1, 5, 15, 5, 45, 15, 1, 55, 281, 2027, 97, 2639, 57, 23717, 21669, 92181, 32731}}, +{17888, 18, 75249, {1, 3, 7, 3, 7, 3, 67, 201, 445, 577, 1011, 793, 7763, 10823, 30309, 41565, 37263, 218909}}, +{17889, 18, 75328, {1, 1, 7, 3, 17, 53, 51, 119, 399, 903, 1785, 1053, 4315, 2967, 17579, 64185, 55005, 12969}}, +{17890, 18, 75357, {1, 3, 3, 13, 21, 63, 13, 1, 427, 39, 71, 1811, 1237, 1623, 11401, 14371, 44355, 93089}}, +{17891, 18, 75373, {1, 1, 5, 1, 17, 39, 39, 105, 187, 691, 251, 3957, 931, 12149, 18299, 48819, 23061, 49179}}, +{17892, 18, 75392, {1, 1, 5, 11, 31, 3, 23, 211, 101, 763, 237, 3635, 417, 4935, 14997, 3859, 22343, 153541}}, +{17893, 18, 75428, {1, 3, 7, 5, 21, 37, 59, 137, 13, 179, 527, 895, 3451, 1743, 3149, 10665, 119427, 259343}}, +{17894, 18, 75438, {1, 3, 5, 3, 7, 37, 103, 173, 453, 327, 131, 2453, 7795, 12585, 13947, 59161, 41845, 29527}}, +{17895, 18, 75469, {1, 3, 3, 1, 17, 49, 57, 251, 295, 279, 1545, 3963, 589, 9211, 32371, 14963, 116927, 197321}}, +{17896, 18, 75487, {1, 1, 3, 7, 17, 59, 37, 115, 315, 591, 481, 767, 4611, 14741, 6949, 19507, 6567, 143371}}, +{17897, 18, 75494, {1, 1, 5, 3, 19, 53, 121, 229, 355, 909, 339, 1645, 2747, 7045, 9085, 5799, 50997, 17981}}, +{17898, 18, 75515, {1, 3, 3, 9, 3, 1, 109, 7, 15, 177, 789, 3911, 6427, 8453, 22583, 12039, 124587, 123887}}, +{17899, 18, 75526, {1, 1, 5, 1, 7, 23, 15, 193, 109, 685, 1147, 3921, 2329, 15153, 25045, 28389, 34759, 256611}}, +{17900, 18, 75532, {1, 1, 3, 3, 23, 27, 55, 43, 485, 541, 1617, 3761, 1051, 7525, 19941, 52699, 35421, 162939}}, +{17901, 18, 75543, {1, 3, 7, 1, 25, 9, 113, 251, 477, 1005, 9, 3321, 5817, 965, 18523, 29407, 53353, 205575}}, +{17902, 18, 75549, {1, 1, 7, 11, 9, 31, 111, 175, 227, 33, 1745, 1141, 1547, 2113, 8785, 40273, 100301, 190749}}, +{17903, 18, 75559, {1, 1, 5, 11, 19, 49, 45, 197, 457, 223, 91, 2769, 6331, 1161, 6609, 61905, 42257, 152117}}, +{17904, 18, 75563, {1, 1, 7, 11, 1, 17, 37, 153, 431, 933, 269, 1529, 1297, 15567, 149, 41701, 59867, 93631}}, +{17905, 18, 75568, {1, 1, 5, 9, 25, 33, 83, 127, 305, 667, 343, 185, 3527, 13079, 10567, 35753, 72191, 214091}}, +{17906, 18, 75598, {1, 3, 7, 1, 1, 7, 75, 241, 185, 81, 2043, 3081, 3563, 385, 3055, 59421, 27081, 32521}}, +{17907, 18, 75612, {1, 1, 3, 5, 31, 1, 101, 21, 69, 979, 917, 695, 5601, 12251, 15031, 18715, 116985, 53071}}, +{17908, 18, 75622, {1, 1, 3, 9, 23, 57, 91, 127, 327, 979, 721, 3855, 1131, 997, 32227, 33843, 128299, 15239}}, +{17909, 18, 75640, {1, 3, 7, 13, 23, 1, 87, 105, 259, 939, 1935, 1983, 6619, 1611, 31901, 14745, 96641, 211945}}, +{17910, 18, 75683, {1, 1, 3, 5, 25, 17, 39, 95, 137, 971, 377, 2493, 981, 329, 25845, 44513, 100561, 57985}}, +{17911, 18, 75689, {1, 1, 3, 9, 27, 37, 69, 103, 167, 131, 487, 2935, 7099, 15375, 4825, 12209, 117165, 84909}}, +{17912, 18, 75690, {1, 3, 1, 15, 27, 19, 115, 239, 247, 243, 83, 1535, 8095, 3953, 25721, 62983, 89045, 16783}}, +{17913, 18, 75692, {1, 1, 5, 1, 19, 13, 125, 39, 439, 411, 171, 155, 5117, 15137, 19851, 251, 37921, 97209}}, +{17914, 18, 75752, {1, 1, 1, 5, 13, 41, 17, 97, 215, 323, 1333, 775, 1155, 15269, 19943, 48489, 71741, 202501}}, +{17915, 18, 75766, {1, 3, 5, 3, 1, 31, 55, 125, 69, 437, 1649, 2791, 8027, 15509, 31575, 8491, 106953, 155215}}, +{17916, 18, 75769, {1, 3, 3, 13, 19, 45, 39, 63, 227, 67, 2021, 1243, 6525, 7211, 6275, 39719, 74513, 6713}}, +{17917, 18, 75791, {1, 1, 5, 11, 13, 45, 15, 101, 171, 613, 1561, 2939, 3849, 2917, 29765, 2027, 53617, 59939}}, +{17918, 18, 75794, {1, 1, 5, 9, 27, 21, 119, 19, 441, 759, 703, 2985, 3007, 2087, 5207, 64403, 20273, 66181}}, +{17919, 18, 75806, {1, 1, 7, 13, 21, 3, 49, 3, 485, 883, 1863, 1925, 877, 10009, 24191, 58639, 107755, 106539}}, +{17920, 18, 75809, {1, 1, 1, 5, 27, 37, 23, 185, 281, 533, 437, 555, 8151, 6489, 22343, 4573, 91577, 167919}}, +{17921, 18, 75819, {1, 1, 7, 15, 3, 61, 103, 221, 223, 703, 133, 2923, 1027, 14643, 26413, 16523, 107223, 97185}}, +{17922, 18, 75834, {1, 3, 1, 11, 13, 15, 1, 203, 363, 675, 511, 3225, 1163, 741, 16063, 8097, 95905, 148465}}, +{17923, 18, 75895, {1, 3, 1, 7, 11, 11, 11, 243, 371, 129, 209, 3533, 1279, 12181, 31973, 29165, 122089, 115117}}, +{17924, 18, 75908, {1, 3, 1, 5, 25, 17, 31, 45, 215, 809, 1443, 3245, 1005, 2903, 20783, 23041, 96577, 192063}}, +{17925, 18, 75951, {1, 3, 3, 3, 19, 17, 101, 219, 91, 805, 189, 761, 4771, 11629, 7285, 21631, 21691, 47421}}, +{17926, 18, 75960, {1, 3, 7, 1, 31, 11, 71, 149, 303, 793, 35, 3109, 2769, 11593, 31839, 2053, 4541, 202997}}, +{17927, 18, 75965, {1, 1, 1, 3, 11, 19, 113, 249, 141, 659, 1117, 2145, 2617, 1075, 25347, 12913, 27457, 222095}}, +{17928, 18, 75974, {1, 3, 1, 3, 5, 23, 41, 57, 193, 815, 1293, 1109, 7597, 999, 10773, 41065, 18555, 35617}}, +{17929, 18, 75978, {1, 1, 3, 1, 31, 11, 127, 99, 163, 293, 299, 3415, 3761, 8781, 5327, 47631, 56411, 242787}}, +{17930, 18, 75998, {1, 3, 7, 13, 3, 41, 23, 169, 419, 725, 1419, 2643, 5265, 77, 24077, 18639, 78665, 205303}}, +{17931, 18, 76001, {1, 1, 5, 1, 31, 39, 39, 205, 413, 393, 1713, 309, 707, 4153, 10461, 16053, 26963, 253993}}, +{17932, 18, 76007, {1, 3, 7, 5, 23, 37, 125, 87, 199, 631, 1935, 551, 7047, 4585, 21257, 42345, 39365, 249393}}, +{17933, 18, 76016, {1, 3, 5, 13, 17, 55, 29, 209, 151, 465, 155, 363, 3097, 4093, 9869, 23297, 33973, 115543}}, +{17934, 18, 76091, {1, 1, 1, 13, 23, 59, 83, 71, 145, 717, 127, 1299, 1701, 10885, 5343, 40793, 87819, 66621}}, +{17935, 18, 76119, {1, 3, 3, 9, 19, 37, 23, 11, 269, 603, 871, 851, 837, 15303, 7595, 56481, 57819, 185065}}, +{17936, 18, 76135, {1, 3, 1, 1, 3, 15, 11, 249, 413, 723, 1403, 3233, 2747, 10335, 7127, 63285, 29237, 191953}}, +{17937, 18, 76170, {1, 3, 1, 1, 11, 31, 67, 139, 51, 413, 521, 969, 171, 5943, 31613, 16477, 85771, 202139}}, +{17938, 18, 76189, {1, 3, 7, 5, 5, 21, 109, 25, 463, 873, 493, 2673, 6409, 11199, 17195, 40623, 76821, 72509}}, +{17939, 18, 76214, {1, 1, 7, 7, 11, 1, 95, 43, 243, 67, 1289, 3219, 2255, 4957, 17561, 40499, 48537, 108809}}, +{17940, 18, 76225, {1, 1, 7, 15, 3, 39, 45, 75, 43, 821, 533, 4043, 1503, 83, 26937, 56327, 114149, 156845}}, +{17941, 18, 76235, {1, 3, 1, 1, 31, 21, 59, 1, 77, 147, 137, 1827, 4123, 2791, 27859, 57921, 40569, 134753}}, +{17942, 18, 76259, {1, 1, 5, 13, 31, 41, 111, 11, 181, 963, 459, 2771, 6123, 4035, 1627, 2047, 109537, 33653}}, +{17943, 18, 76261, {1, 3, 5, 7, 31, 57, 17, 21, 5, 761, 1833, 1279, 1239, 10089, 22531, 32547, 82699, 28389}}, +{17944, 18, 76262, {1, 3, 5, 13, 11, 39, 11, 61, 299, 753, 1067, 1347, 5189, 12859, 681, 46309, 31873, 90333}}, +{17945, 18, 76266, {1, 3, 1, 5, 13, 27, 119, 205, 377, 457, 817, 3017, 279, 1859, 30241, 52089, 61445, 176203}}, +{17946, 18, 76286, {1, 1, 3, 5, 11, 35, 17, 163, 27, 1001, 417, 2899, 1959, 5513, 1441, 19743, 67147, 236591}}, +{17947, 18, 76289, {1, 3, 5, 13, 15, 39, 53, 179, 447, 675, 933, 1261, 4415, 9845, 28459, 33497, 107375, 156855}}, +{17948, 18, 76310, {1, 3, 3, 13, 27, 31, 11, 191, 413, 1011, 2035, 3965, 2071, 5429, 16247, 7439, 15079, 225041}}, +{17949, 18, 76319, {1, 3, 3, 11, 7, 23, 87, 215, 241, 687, 1351, 2399, 4677, 12967, 22957, 10443, 116701, 155477}}, +{17950, 18, 76364, {1, 3, 7, 5, 25, 55, 5, 197, 359, 879, 619, 1969, 1513, 12743, 10953, 28343, 63685, 39115}}, +{17951, 18, 76375, {1, 1, 3, 1, 19, 15, 63, 7, 305, 343, 1333, 3845, 377, 14031, 28383, 4271, 60063, 11827}}, +{17952, 18, 76392, {1, 3, 5, 15, 25, 21, 115, 101, 171, 735, 787, 3143, 593, 8793, 4121, 15471, 53491, 20617}}, +{17953, 18, 76422, {1, 1, 5, 15, 15, 51, 103, 17, 433, 611, 1351, 1729, 6147, 11623, 3, 6319, 6133, 19029}}, +{17954, 18, 76450, {1, 3, 1, 13, 29, 15, 115, 97, 505, 985, 745, 745, 1459, 7193, 1247, 58901, 114255, 212849}}, +{17955, 18, 76496, {1, 1, 7, 1, 1, 53, 99, 35, 377, 723, 1751, 2625, 5113, 13295, 20133, 26831, 41657, 51717}}, +{17956, 18, 76521, {1, 3, 5, 15, 15, 39, 17, 227, 351, 435, 49, 203, 6959, 11673, 15755, 29733, 51445, 64619}}, +{17957, 18, 76522, {1, 1, 1, 3, 25, 51, 57, 137, 415, 49, 355, 2149, 7607, 10781, 30363, 43889, 55543, 36637}}, +{17958, 18, 76527, {1, 1, 7, 5, 5, 15, 73, 189, 153, 949, 527, 587, 513, 12891, 16765, 41477, 75569, 80747}}, +{17959, 18, 76536, {1, 1, 5, 5, 9, 5, 3, 225, 115, 125, 821, 3551, 4833, 927, 24331, 63669, 26549, 220159}}, +{17960, 18, 76541, {1, 1, 3, 9, 21, 7, 9, 183, 391, 783, 493, 2785, 3879, 8311, 9935, 60629, 119329, 5791}}, +{17961, 18, 76553, {1, 1, 5, 15, 15, 41, 61, 97, 33, 29, 199, 3335, 1531, 6107, 757, 33797, 3001, 224507}}, +{17962, 18, 76568, {1, 1, 3, 9, 13, 39, 25, 247, 407, 1, 1129, 1453, 7091, 5557, 8657, 33961, 100763, 25099}}, +{17963, 18, 76574, {1, 3, 3, 13, 31, 21, 69, 73, 431, 827, 861, 235, 2369, 4283, 27183, 29095, 99957, 97577}}, +{17964, 18, 76584, {1, 1, 7, 13, 1, 25, 21, 173, 365, 921, 21, 3527, 2481, 8795, 25621, 41755, 127249, 221385}}, +{17965, 18, 76604, {1, 1, 1, 5, 25, 25, 65, 203, 305, 373, 527, 4033, 3483, 9403, 28669, 32083, 52273, 77037}}, +{17966, 18, 76607, {1, 3, 1, 15, 9, 23, 19, 7, 29, 83, 1163, 1147, 5315, 2381, 21203, 33915, 109511, 40669}}, +{17967, 18, 76609, {1, 3, 7, 15, 23, 19, 69, 127, 113, 937, 935, 1067, 2431, 7677, 21327, 44095, 82799, 5715}}, +{17968, 18, 76669, {1, 1, 5, 5, 7, 37, 107, 223, 433, 515, 393, 1721, 1977, 6383, 18835, 54841, 103263, 196997}}, +{17969, 18, 76683, {1, 1, 1, 3, 1, 11, 85, 173, 259, 685, 595, 1635, 6979, 4483, 8097, 42249, 56259, 105925}}, +{17970, 18, 76745, {1, 1, 7, 7, 1, 23, 11, 253, 187, 665, 313, 3745, 2423, 15835, 32085, 48643, 75625, 47511}}, +{17971, 18, 76753, {1, 1, 3, 5, 1, 59, 127, 83, 501, 387, 977, 3515, 7921, 12329, 14757, 20287, 49699, 91237}}, +{17972, 18, 76754, {1, 3, 5, 11, 31, 45, 51, 109, 319, 621, 1013, 3519, 4023, 12099, 28829, 26691, 83131, 261497}}, +{17973, 18, 76756, {1, 1, 3, 3, 5, 35, 51, 253, 253, 569, 1017, 2299, 8159, 13783, 22123, 55213, 111527, 110699}}, +{17974, 18, 76760, {1, 3, 7, 3, 9, 5, 59, 129, 41, 845, 723, 1607, 3047, 14323, 19277, 39447, 12465, 45925}}, +{17975, 18, 76782, {1, 1, 3, 1, 17, 35, 51, 79, 115, 361, 739, 2037, 6167, 14699, 28187, 65271, 67285, 48489}}, +{17976, 18, 76821, {1, 3, 1, 11, 1, 29, 95, 181, 419, 235, 745, 621, 3889, 2933, 743, 23801, 32057, 54103}}, +{17977, 18, 76828, {1, 3, 1, 11, 17, 47, 43, 55, 7, 695, 1653, 3983, 961, 3037, 8669, 10039, 86571, 6981}}, +{17978, 18, 76849, {1, 1, 5, 15, 13, 19, 67, 141, 291, 511, 1913, 397, 7423, 6541, 21845, 49821, 126047, 218587}}, +{17979, 18, 76850, {1, 1, 5, 3, 11, 13, 103, 213, 189, 115, 1495, 2695, 2127, 11979, 13609, 46615, 64775, 206417}}, +{17980, 18, 76870, {1, 3, 1, 5, 5, 9, 57, 207, 253, 251, 1155, 1319, 6699, 6613, 21757, 49703, 124879, 89987}}, +{17981, 18, 76874, {1, 3, 5, 7, 23, 25, 35, 81, 165, 789, 771, 415, 5557, 8431, 12043, 44359, 9447, 229481}}, +{17982, 18, 76898, {1, 1, 1, 13, 17, 21, 63, 251, 387, 767, 85, 3901, 3227, 10329, 5049, 56173, 58065, 78595}}, +{17983, 18, 76903, {1, 3, 1, 15, 23, 5, 45, 7, 123, 389, 1041, 1223, 5865, 5365, 2915, 24861, 106893, 170769}}, +{17984, 18, 76910, {1, 3, 7, 15, 27, 61, 27, 59, 309, 103, 279, 1829, 1501, 11277, 4461, 34817, 60973, 99805}}, +{17985, 18, 76921, {1, 1, 3, 9, 1, 25, 57, 85, 411, 699, 911, 1643, 2687, 13539, 10187, 21597, 18883, 212975}}, +{17986, 18, 76968, {1, 1, 3, 7, 5, 7, 81, 209, 225, 321, 1867, 2189, 6315, 5393, 8859, 47471, 41677, 222455}}, +{17987, 18, 77013, {1, 1, 5, 11, 27, 33, 119, 159, 273, 659, 883, 3773, 6519, 15449, 17219, 23923, 33749, 225489}}, +{17988, 18, 77027, {1, 1, 7, 13, 29, 39, 1, 161, 165, 531, 1019, 2369, 2093, 4341, 24945, 28537, 49467, 258065}}, +{17989, 18, 77042, {1, 3, 3, 3, 15, 59, 23, 143, 377, 943, 1329, 977, 7025, 2167, 17973, 65087, 115757, 75959}}, +{17990, 18, 77059, {1, 1, 1, 15, 17, 55, 33, 167, 43, 719, 51, 3873, 3317, 10763, 639, 58195, 20023, 100725}}, +{17991, 18, 77062, {1, 1, 7, 5, 17, 23, 71, 249, 23, 929, 467, 3073, 3355, 1343, 18755, 12247, 49737, 184103}}, +{17992, 18, 77074, {1, 3, 3, 15, 1, 9, 17, 193, 157, 265, 983, 1825, 4805, 2131, 22117, 32937, 57, 261867}}, +{17993, 18, 77076, {1, 3, 5, 9, 5, 1, 101, 141, 511, 489, 73, 1789, 1303, 2633, 709, 11891, 44897, 191229}}, +{17994, 18, 77110, {1, 1, 7, 15, 1, 27, 121, 7, 129, 421, 725, 1421, 3883, 13335, 7247, 8393, 85029, 127691}}, +{17995, 18, 77113, {1, 1, 3, 9, 19, 53, 121, 115, 85, 909, 1535, 3261, 7063, 16381, 1719, 19847, 19041, 215433}}, +{17996, 18, 77131, {1, 1, 7, 3, 17, 45, 91, 187, 181, 829, 609, 931, 5727, 3971, 14567, 15871, 9825, 184165}}, +{17997, 18, 77157, {1, 1, 1, 3, 5, 29, 7, 249, 361, 815, 1101, 1485, 6879, 5379, 7179, 27467, 101427, 196089}}, +{17998, 18, 77158, {1, 1, 5, 7, 23, 11, 27, 175, 237, 747, 1911, 3107, 961, 6649, 29887, 11003, 27561, 233841}}, +{17999, 18, 77216, {1, 1, 1, 5, 11, 5, 125, 227, 303, 315, 1879, 817, 7445, 1447, 9333, 54825, 118865, 216397}}, +{18000, 18, 77246, {1, 1, 3, 13, 17, 33, 27, 95, 245, 25, 1741, 2633, 1869, 14111, 24507, 61287, 46397, 220803}}, +{18001, 18, 77258, {1, 1, 7, 7, 25, 5, 41, 101, 171, 333, 497, 3417, 4921, 4553, 25487, 51529, 72873, 43525}}, +{18002, 18, 77281, {1, 1, 7, 7, 9, 19, 25, 161, 235, 929, 1663, 3237, 323, 3889, 31423, 2345, 63113, 212659}}, +{18003, 18, 77284, {1, 1, 5, 13, 29, 59, 39, 25, 393, 519, 429, 1461, 5867, 113, 28091, 36813, 47827, 163407}}, +{18004, 18, 77294, {1, 3, 5, 13, 15, 49, 85, 161, 83, 389, 765, 3349, 4659, 11007, 24749, 51121, 93511, 229885}}, +{18005, 18, 77302, {1, 3, 5, 11, 5, 27, 107, 233, 221, 425, 941, 1181, 5403, 4373, 32625, 41991, 2019, 245967}}, +{18006, 18, 77306, {1, 3, 5, 9, 9, 53, 97, 27, 221, 731, 1301, 3517, 4407, 11369, 4251, 31121, 4813, 42029}}, +{18007, 18, 77315, {1, 1, 1, 9, 17, 59, 107, 247, 231, 123, 1177, 3299, 6163, 4855, 14547, 63171, 45201, 27711}}, +{18008, 18, 77352, {1, 3, 7, 3, 25, 31, 63, 37, 123, 457, 1531, 3723, 4807, 14665, 17973, 42547, 5417, 170323}}, +{18009, 18, 77360, {1, 3, 7, 3, 17, 19, 57, 7, 359, 741, 385, 3127, 855, 10803, 30093, 24501, 53629, 40447}}, +{18010, 18, 77365, {1, 3, 7, 15, 11, 45, 49, 125, 445, 795, 113, 2425, 7085, 7337, 16297, 26447, 94369, 12371}}, +{18011, 18, 77370, {1, 3, 7, 9, 29, 59, 35, 191, 123, 619, 415, 1081, 2469, 4125, 25587, 7853, 119781, 9447}}, +{18012, 18, 77378, {1, 3, 1, 15, 13, 13, 111, 89, 381, 757, 389, 253, 6929, 33, 8263, 17385, 122129, 146679}}, +{18013, 18, 77380, {1, 1, 3, 3, 15, 35, 101, 95, 479, 577, 1645, 3781, 7533, 4665, 6561, 49897, 72413, 151383}}, +{18014, 18, 77407, {1, 1, 1, 1, 7, 49, 23, 223, 189, 763, 227, 2805, 8093, 389, 11525, 30915, 91341, 210231}}, +{18015, 18, 77408, {1, 1, 7, 3, 19, 23, 3, 137, 79, 569, 1833, 2091, 4235, 10739, 22855, 33845, 120141, 220267}}, +{18016, 18, 77414, {1, 3, 7, 3, 11, 43, 85, 63, 419, 681, 365, 3017, 3603, 6413, 13515, 16003, 107949, 241261}}, +{18017, 18, 77444, {1, 1, 5, 13, 3, 35, 41, 193, 189, 999, 1395, 2431, 2227, 7245, 23929, 16137, 14591, 54999}}, +{18018, 18, 77454, {1, 1, 7, 15, 23, 51, 47, 77, 31, 25, 589, 611, 371, 13329, 5873, 2133, 40351, 145293}}, +{18019, 18, 77481, {1, 1, 7, 15, 17, 19, 53, 155, 309, 573, 1059, 3557, 2445, 12205, 4497, 32061, 130293, 73859}}, +{18020, 18, 77482, {1, 1, 7, 13, 3, 25, 71, 157, 237, 185, 1035, 1759, 1331, 13533, 25635, 811, 54391, 91109}}, +{18021, 18, 77531, {1, 1, 1, 11, 5, 21, 99, 31, 259, 413, 2033, 2187, 755, 4591, 28641, 64031, 88499, 160789}}, +{18022, 18, 77544, {1, 3, 7, 13, 29, 33, 13, 157, 97, 981, 329, 81, 6351, 4171, 10925, 22733, 72521, 105477}}, +{18023, 18, 77552, {1, 3, 7, 9, 11, 31, 97, 35, 337, 309, 847, 3429, 2697, 3141, 19481, 43679, 11129, 205757}}, +{18024, 18, 77569, {1, 3, 1, 7, 27, 45, 123, 193, 439, 639, 633, 1375, 7307, 1599, 23379, 56811, 100877, 228687}}, +{18025, 18, 77579, {1, 3, 7, 1, 29, 43, 103, 131, 103, 933, 143, 2431, 2221, 4565, 20841, 58611, 49163, 13673}}, +{18026, 18, 77610, {1, 3, 5, 13, 25, 17, 121, 17, 455, 941, 1577, 509, 5401, 797, 29573, 38373, 50527, 17951}}, +{18027, 18, 77612, {1, 1, 1, 13, 25, 21, 77, 253, 199, 871, 935, 3919, 1687, 6653, 20345, 56969, 77989, 244767}}, +{18028, 18, 77623, {1, 1, 3, 1, 17, 5, 5, 191, 279, 33, 579, 651, 969, 6091, 11659, 1643, 17935, 85145}}, +{18029, 18, 77649, {1, 3, 3, 9, 29, 1, 103, 39, 83, 295, 1237, 207, 4837, 7899, 27879, 23195, 29549, 206885}}, +{18030, 18, 77650, {1, 3, 5, 1, 9, 55, 115, 37, 225, 447, 943, 1133, 6203, 949, 9973, 4309, 43969, 166795}}, +{18031, 18, 77661, {1, 1, 7, 7, 17, 43, 75, 251, 35, 489, 1011, 355, 4113, 2377, 13775, 34935, 84905, 252973}}, +{18032, 18, 77675, {1, 3, 3, 3, 11, 45, 3, 1, 135, 499, 81, 3265, 6657, 3875, 27565, 60931, 13117, 87931}}, +{18033, 18, 77686, {1, 1, 3, 1, 9, 1, 77, 69, 137, 241, 1613, 2607, 3307, 171, 13551, 54529, 45937, 180411}}, +{18034, 18, 77742, {1, 1, 1, 1, 19, 29, 77, 255, 95, 461, 567, 1103, 2753, 10627, 19479, 43411, 128565, 29869}}, +{18035, 18, 77791, {1, 1, 3, 5, 5, 63, 123, 159, 165, 733, 1107, 1711, 5039, 9221, 15541, 5527, 27629, 206505}}, +{18036, 18, 77792, {1, 3, 1, 3, 7, 45, 73, 63, 413, 693, 433, 2281, 3981, 7719, 31473, 56939, 70391, 67467}}, +{18037, 18, 77807, {1, 1, 1, 11, 19, 33, 113, 151, 427, 603, 1653, 2451, 5367, 12171, 14373, 33175, 62013, 209273}}, +{18038, 18, 77815, {1, 3, 5, 5, 17, 37, 109, 5, 187, 293, 617, 2663, 7381, 14217, 23561, 48999, 108717, 248289}}, +{18039, 18, 77842, {1, 1, 5, 1, 9, 27, 35, 127, 355, 479, 281, 2081, 7303, 259, 8893, 59141, 20927, 61611}}, +{18040, 18, 77847, {1, 3, 3, 15, 31, 33, 71, 209, 315, 363, 593, 1035, 8029, 12501, 2859, 54745, 39391, 153259}}, +{18041, 18, 77899, {1, 3, 3, 11, 21, 39, 35, 173, 171, 15, 987, 3737, 7415, 1827, 973, 6831, 108643, 241333}}, +{18042, 18, 77901, {1, 3, 7, 9, 17, 37, 127, 243, 153, 195, 113, 309, 5301, 13619, 7927, 35385, 9501, 99241}}, +{18043, 18, 77904, {1, 3, 5, 13, 23, 9, 81, 235, 139, 635, 443, 2235, 2613, 2389, 18431, 8409, 2885, 254811}}, +{18044, 18, 77914, {1, 3, 7, 9, 1, 5, 15, 109, 141, 173, 1059, 1961, 7945, 10381, 17337, 19591, 42173, 119831}}, +{18045, 18, 77925, {1, 3, 1, 13, 19, 7, 111, 111, 345, 327, 1147, 2293, 49, 16213, 25309, 60537, 50421, 108467}}, +{18046, 18, 77950, {1, 1, 5, 1, 3, 23, 63, 219, 69, 879, 1397, 3857, 1859, 1939, 4851, 26549, 86019, 7927}}, +{18047, 18, 77959, {1, 3, 1, 13, 23, 61, 25, 31, 301, 189, 1031, 2817, 829, 8777, 26869, 54405, 43535, 234687}}, +{18048, 18, 77994, {1, 1, 1, 9, 11, 31, 13, 139, 77, 567, 949, 3415, 6955, 14973, 9565, 37911, 18395, 94167}}, +{18049, 18, 78004, {1, 3, 5, 13, 17, 17, 21, 213, 171, 993, 1001, 979, 5085, 3909, 11797, 48669, 73541, 48979}}, +{18050, 18, 78043, {1, 1, 7, 9, 7, 37, 35, 107, 347, 239, 585, 2883, 3235, 1053, 14871, 25799, 4861, 56335}}, +{18051, 18, 78052, {1, 1, 3, 5, 19, 7, 91, 139, 325, 921, 863, 209, 845, 15943, 8281, 55103, 110193, 216091}}, +{18052, 18, 78061, {1, 3, 1, 13, 31, 33, 65, 155, 177, 103, 1991, 343, 6299, 3587, 30215, 64335, 114301, 220403}}, +{18053, 18, 78064, {1, 3, 5, 3, 31, 37, 121, 157, 443, 349, 1097, 3683, 503, 14061, 14685, 29755, 61543, 232983}}, +{18054, 18, 78084, {1, 3, 3, 11, 17, 59, 29, 161, 381, 791, 1647, 1077, 6369, 1095, 17279, 43141, 65003, 144609}}, +{18055, 18, 78094, {1, 1, 5, 1, 1, 15, 67, 77, 3, 585, 1909, 1485, 3003, 591, 4711, 10279, 75901, 226417}}, +{18056, 18, 78099, {1, 3, 7, 5, 1, 5, 5, 193, 469, 631, 1065, 607, 2751, 8163, 13633, 40563, 1417, 118169}}, +{18057, 18, 78129, {1, 1, 7, 9, 25, 25, 109, 27, 157, 495, 225, 1385, 4315, 995, 10591, 1629, 129939, 56765}}, +{18058, 18, 78142, {1, 3, 1, 7, 9, 23, 61, 63, 35, 145, 1537, 1029, 4225, 1467, 10519, 32861, 519, 53983}}, +{18059, 18, 78149, {1, 3, 3, 11, 7, 59, 25, 199, 403, 967, 1089, 1121, 1063, 6701, 16827, 55479, 72983, 36873}}, +{18060, 18, 78153, {1, 1, 1, 13, 9, 27, 19, 23, 395, 229, 1837, 1231, 1737, 10475, 16743, 42369, 130331, 47255}}, +{18061, 18, 78171, {1, 1, 5, 7, 29, 15, 95, 155, 339, 65, 751, 2399, 5615, 2987, 16769, 57381, 113021, 41417}}, +{18062, 18, 78173, {1, 3, 1, 9, 15, 17, 1, 111, 197, 7, 417, 3999, 7261, 5939, 16773, 29275, 105559, 84685}}, +{18063, 18, 78174, {1, 3, 3, 13, 19, 31, 103, 1, 37, 269, 1257, 1397, 4293, 3019, 6503, 7727, 93943, 237313}}, +{18064, 18, 78195, {1, 1, 3, 9, 13, 37, 67, 129, 43, 669, 1331, 1787, 8185, 323, 18749, 13737, 86123, 154131}}, +{18065, 18, 78201, {1, 3, 1, 11, 3, 51, 13, 35, 197, 867, 559, 1381, 1057, 13293, 20603, 18633, 50503, 169685}}, +{18066, 18, 78202, {1, 3, 1, 11, 9, 35, 7, 51, 499, 885, 353, 4095, 6491, 5917, 15053, 18363, 99593, 213089}}, +{18067, 18, 78241, {1, 1, 3, 9, 19, 23, 107, 147, 339, 331, 1349, 2855, 3721, 13317, 26457, 783, 93949, 196051}}, +{18068, 18, 78247, {1, 1, 5, 1, 9, 61, 89, 217, 315, 385, 1729, 2641, 5753, 6269, 547, 33737, 20103, 31533}}, +{18069, 18, 78274, {1, 3, 5, 13, 13, 61, 3, 191, 57, 683, 1227, 1255, 3651, 10687, 9049, 6529, 60783, 28639}}, +{18070, 18, 78276, {1, 1, 7, 11, 25, 41, 79, 19, 383, 363, 1731, 1597, 1651, 15037, 22191, 51883, 41927, 82419}}, +{18071, 18, 78303, {1, 3, 5, 9, 15, 61, 39, 149, 49, 633, 709, 1743, 621, 14659, 3309, 64129, 91897, 74235}}, +{18072, 18, 78307, {1, 3, 7, 15, 5, 59, 7, 197, 111, 885, 1737, 855, 2807, 3817, 13759, 29989, 45105, 171689}}, +{18073, 18, 78328, {1, 1, 3, 9, 21, 25, 55, 67, 483, 437, 303, 703, 6993, 1971, 4565, 56117, 6105, 254517}}, +{18074, 18, 78344, {1, 3, 3, 13, 15, 13, 19, 3, 487, 751, 1185, 2985, 1619, 7139, 26087, 21105, 9049, 236153}}, +{18075, 18, 78362, {1, 1, 5, 7, 15, 55, 51, 231, 85, 953, 713, 659, 2021, 4271, 15961, 26873, 31141, 76635}}, +{18076, 18, 78367, {1, 3, 5, 1, 11, 39, 3, 223, 367, 903, 799, 415, 7247, 9539, 14479, 37195, 59951, 181935}}, +{18077, 18, 78368, {1, 1, 5, 3, 13, 47, 17, 159, 439, 859, 1067, 3111, 5277, 13973, 21999, 28381, 115685, 231483}}, +{18078, 18, 78409, {1, 1, 7, 15, 17, 21, 69, 131, 193, 479, 1075, 3271, 2057, 1295, 31235, 35027, 94145, 65419}}, +{18079, 18, 78412, {1, 3, 3, 5, 5, 21, 5, 81, 113, 259, 837, 831, 5985, 6717, 12041, 40355, 50957, 111185}}, +{18080, 18, 78417, {1, 1, 1, 9, 15, 47, 103, 195, 465, 739, 1415, 225, 3121, 12623, 7539, 17555, 36703, 217641}}, +{18081, 18, 78430, {1, 3, 1, 3, 31, 17, 91, 153, 221, 217, 525, 981, 281, 9869, 9713, 10669, 12049, 97615}}, +{18082, 18, 78433, {1, 1, 5, 7, 29, 1, 1, 199, 415, 843, 301, 941, 4589, 13301, 5833, 41311, 74019, 78537}}, +{18083, 18, 78440, {1, 1, 5, 11, 13, 5, 41, 127, 213, 917, 1297, 2281, 3193, 3877, 9517, 40685, 14657, 185139}}, +{18084, 18, 78451, {1, 1, 1, 7, 21, 45, 87, 33, 425, 487, 643, 271, 7087, 5979, 14795, 27575, 34541, 173251}}, +{18085, 18, 78453, {1, 3, 7, 5, 21, 11, 7, 169, 325, 905, 973, 2853, 7929, 8801, 1005, 60641, 45973, 81859}}, +{18086, 18, 78458, {1, 3, 3, 1, 1, 35, 39, 81, 93, 463, 697, 2309, 7769, 5169, 17595, 41447, 28837, 52613}}, +{18087, 18, 78467, {1, 1, 7, 1, 1, 23, 37, 17, 137, 873, 1657, 681, 503, 7887, 24463, 32453, 112727, 133347}}, +{18088, 18, 78479, {1, 1, 5, 9, 19, 35, 37, 85, 11, 245, 11, 3, 6475, 5953, 247, 49447, 32813, 243841}}, +{18089, 18, 78507, {1, 3, 5, 3, 19, 53, 37, 45, 431, 259, 1831, 1443, 2237, 7651, 20701, 22857, 50041, 119667}}, +{18090, 18, 78518, {1, 1, 7, 1, 5, 37, 113, 69, 389, 369, 1251, 1989, 7613, 10669, 4233, 33379, 72465, 256861}}, +{18091, 18, 78535, {1, 1, 7, 5, 27, 55, 17, 75, 373, 325, 1981, 1743, 7341, 319, 28169, 3587, 66057, 169723}}, +{18092, 18, 78542, {1, 3, 3, 15, 27, 31, 47, 91, 367, 245, 2045, 979, 2169, 10935, 29523, 64871, 119447, 92131}}, +{18093, 18, 78549, {1, 3, 7, 15, 9, 11, 93, 61, 249, 107, 1883, 2547, 375, 4195, 6451, 14533, 62529, 93557}}, +{18094, 18, 78554, {1, 1, 1, 3, 29, 61, 65, 155, 301, 1017, 131, 1567, 3649, 3447, 27943, 52111, 9133, 88147}}, +{18095, 18, 78556, {1, 1, 1, 1, 21, 59, 107, 151, 265, 707, 767, 2325, 8095, 14027, 15355, 15465, 83143, 116199}}, +{18096, 18, 78583, {1, 3, 1, 15, 23, 51, 31, 25, 439, 357, 1563, 1091, 2135, 1327, 18427, 60965, 29215, 157351}}, +{18097, 18, 78590, {1, 3, 3, 13, 29, 37, 25, 215, 149, 487, 703, 1787, 3641, 8301, 8795, 13845, 95245, 169793}}, +{18098, 18, 78615, {1, 3, 3, 11, 27, 3, 49, 87, 69, 687, 1181, 3405, 589, 12901, 14199, 48607, 74027, 181379}}, +{18099, 18, 78635, {1, 3, 5, 13, 9, 15, 33, 229, 135, 769, 1005, 2435, 4831, 5493, 16745, 64379, 20253, 52661}}, +{18100, 18, 78649, {1, 1, 1, 13, 9, 61, 33, 127, 339, 15, 945, 219, 4291, 6995, 29127, 61853, 40741, 170541}}, +{18101, 18, 78684, {1, 3, 3, 15, 9, 33, 75, 39, 327, 133, 733, 1125, 2747, 15031, 24575, 65013, 41997, 158679}}, +{18102, 18, 78691, {1, 1, 3, 9, 3, 9, 63, 83, 493, 175, 249, 1977, 8177, 4067, 2131, 12467, 86185, 73417}}, +{18103, 18, 78705, {1, 1, 3, 13, 29, 55, 91, 109, 73, 913, 1343, 2147, 105, 8763, 7613, 55749, 4339, 61253}}, +{18104, 18, 78724, {1, 1, 5, 5, 17, 19, 45, 57, 345, 835, 341, 1365, 5187, 7485, 22685, 32321, 67279, 141119}}, +{18105, 18, 78755, {1, 1, 3, 11, 9, 47, 11, 231, 241, 681, 255, 3663, 5547, 997, 2445, 64413, 55349, 61785}}, +{18106, 18, 78770, {1, 3, 5, 5, 23, 29, 23, 249, 149, 1011, 173, 271, 485, 1239, 81, 59277, 96669, 210859}}, +{18107, 18, 78772, {1, 3, 3, 1, 17, 9, 41, 39, 309, 131, 1431, 1497, 1669, 14191, 22795, 48951, 101731, 70847}}, +{18108, 18, 78818, {1, 1, 3, 15, 1, 11, 37, 79, 23, 1023, 585, 127, 7817, 15009, 3897, 44601, 83039, 240457}}, +{18109, 18, 78837, {1, 3, 5, 9, 21, 33, 55, 31, 193, 745, 1741, 3637, 7265, 8969, 11797, 33239, 29123, 126077}}, +{18110, 18, 78844, {1, 3, 3, 13, 31, 5, 87, 215, 271, 573, 1423, 2611, 947, 14669, 23785, 60579, 127099, 55877}}, +{18111, 18, 78849, {1, 3, 1, 13, 5, 53, 103, 85, 237, 457, 739, 1201, 133, 8589, 13471, 6707, 42257, 141989}}, +{18112, 18, 78909, {1, 1, 1, 5, 23, 3, 65, 159, 445, 823, 341, 1723, 6263, 9421, 16023, 19145, 52337, 229397}}, +{18113, 18, 78915, {1, 3, 5, 3, 15, 3, 15, 251, 407, 137, 951, 1319, 1035, 7713, 29579, 19591, 77841, 84949}}, +{18114, 18, 78941, {1, 1, 7, 15, 19, 25, 63, 141, 511, 11, 1027, 1209, 6627, 8127, 14879, 12965, 109973, 144501}}, +{18115, 18, 78958, {1, 1, 1, 3, 11, 57, 65, 169, 453, 197, 1249, 2933, 3743, 1971, 19373, 32109, 73265, 46185}}, +{18116, 18, 78975, {1, 1, 3, 1, 3, 1, 21, 47, 471, 565, 1795, 1771, 3187, 7189, 18627, 22993, 112319, 158693}}, +{18117, 18, 78979, {1, 1, 5, 7, 5, 25, 127, 113, 31, 609, 1273, 2799, 5713, 16091, 22239, 43617, 126003, 218991}}, +{18118, 18, 78986, {1, 3, 3, 7, 19, 59, 19, 185, 483, 431, 335, 565, 819, 2555, 18653, 36573, 50085, 31007}}, +{18119, 18, 79029, {1, 1, 3, 13, 17, 61, 5, 219, 297, 755, 2005, 391, 4927, 1517, 11341, 9527, 51739, 182599}}, +{18120, 18, 79030, {1, 3, 7, 9, 9, 3, 39, 211, 475, 717, 189, 819, 529, 469, 28559, 7321, 60213, 79505}}, +{18121, 18, 79044, {1, 3, 1, 9, 17, 39, 53, 65, 247, 145, 9, 1669, 7221, 8359, 11021, 29775, 24693, 208655}}, +{18122, 18, 79048, {1, 1, 5, 13, 7, 7, 31, 135, 375, 439, 1419, 3579, 4313, 14057, 31505, 55249, 5345, 69537}}, +{18123, 18, 79056, {1, 3, 5, 9, 21, 3, 125, 223, 9, 73, 1693, 281, 3941, 10377, 29365, 19807, 73973, 169113}}, +{18124, 18, 79095, {1, 3, 7, 15, 29, 41, 119, 75, 241, 79, 1969, 1091, 6241, 10685, 11579, 3791, 124443, 5051}}, +{18125, 18, 79099, {1, 3, 7, 15, 23, 53, 13, 255, 205, 547, 255, 1589, 7261, 15735, 14521, 29679, 109373, 236433}}, +{18126, 18, 79121, {1, 3, 7, 3, 17, 37, 71, 163, 95, 265, 1, 3239, 1779, 9047, 31387, 32291, 86741, 55317}}, +{18127, 18, 79150, {1, 3, 1, 9, 31, 55, 117, 247, 317, 673, 749, 1155, 7743, 6427, 25273, 49701, 62345, 20913}}, +{18128, 18, 79196, {1, 3, 3, 7, 27, 55, 35, 111, 69, 799, 213, 3011, 4359, 14763, 7387, 13281, 58397, 38415}}, +{18129, 18, 79199, {1, 1, 5, 9, 5, 61, 49, 219, 419, 297, 1019, 2181, 6069, 12957, 24637, 23317, 6389, 240893}}, +{18130, 18, 79220, {1, 1, 5, 15, 13, 57, 59, 43, 373, 647, 1407, 3955, 5583, 15229, 20935, 38007, 65971, 95987}}, +{18131, 18, 79229, {1, 1, 7, 7, 23, 17, 77, 91, 449, 75, 1059, 3337, 2041, 261, 25077, 28161, 44537, 189443}}, +{18132, 18, 79263, {1, 1, 7, 11, 9, 7, 117, 225, 457, 941, 161, 1825, 1101, 193, 32619, 37245, 102633, 86707}}, +{18133, 18, 79264, {1, 1, 1, 7, 13, 43, 33, 137, 275, 691, 1387, 1265, 759, 1457, 4877, 41813, 4159, 234397}}, +{18134, 18, 79296, {1, 3, 3, 1, 9, 23, 71, 39, 205, 175, 953, 2965, 3283, 6025, 5905, 34691, 120987, 71841}}, +{18135, 18, 79302, {1, 3, 1, 13, 31, 63, 49, 73, 299, 169, 1265, 2205, 1299, 10045, 6919, 26067, 56909, 42549}}, +{18136, 18, 79354, {1, 3, 3, 1, 31, 41, 75, 219, 457, 407, 5, 1901, 6823, 531, 3155, 64375, 38523, 68217}}, +{18137, 18, 79387, {1, 1, 7, 9, 7, 35, 123, 193, 145, 1021, 757, 3775, 2313, 11885, 11649, 61071, 129363, 120467}}, +{18138, 18, 79399, {1, 3, 7, 3, 29, 21, 127, 93, 415, 641, 453, 923, 7713, 9569, 5961, 25969, 31095, 93317}}, +{18139, 18, 79435, {1, 3, 3, 1, 5, 15, 21, 235, 211, 663, 385, 2429, 319, 11571, 17539, 42975, 43179, 100105}}, +{18140, 18, 79525, {1, 3, 7, 7, 25, 57, 51, 215, 393, 167, 1569, 3235, 5555, 3391, 2389, 36485, 21919, 164479}}, +{18141, 18, 79540, {1, 3, 3, 3, 29, 21, 81, 59, 239, 671, 605, 583, 2341, 2321, 28593, 19035, 10209, 36433}}, +{18142, 18, 79552, {1, 3, 3, 11, 31, 33, 1, 147, 111, 523, 427, 3545, 111, 8009, 29101, 34549, 122745, 82117}}, +{18143, 18, 79562, {1, 3, 5, 15, 19, 37, 97, 141, 387, 523, 467, 1657, 4161, 5505, 18091, 39597, 124423, 74827}}, +{18144, 18, 79576, {1, 1, 1, 11, 21, 63, 61, 13, 169, 851, 1863, 3307, 7189, 10791, 22619, 24431, 127781, 14717}}, +{18145, 18, 79579, {1, 1, 3, 13, 27, 41, 69, 127, 497, 565, 1489, 277, 2551, 15409, 9885, 187, 101319, 194121}}, +{18146, 18, 79605, {1, 1, 7, 7, 17, 45, 1, 139, 347, 503, 1189, 1459, 6117, 14319, 22153, 2915, 91991, 246679}}, +{18147, 18, 79618, {1, 3, 3, 3, 9, 41, 25, 199, 327, 295, 945, 2765, 563, 11605, 24267, 37729, 80057, 169479}}, +{18148, 18, 79648, {1, 1, 7, 3, 23, 19, 13, 219, 235, 837, 1015, 2071, 2727, 3989, 32539, 26713, 112391, 163943}}, +{18149, 18, 79654, {1, 3, 3, 9, 21, 27, 17, 187, 315, 753, 817, 3053, 5961, 973, 23973, 37621, 105637, 247711}}, +{18150, 18, 79666, {1, 1, 7, 1, 11, 15, 45, 25, 421, 213, 663, 3829, 469, 15889, 28773, 14323, 107705, 111729}}, +{18151, 18, 79686, {1, 1, 1, 7, 7, 7, 51, 189, 457, 95, 1903, 639, 1933, 7409, 22327, 18959, 42679, 158987}}, +{18152, 18, 79697, {1, 1, 5, 9, 13, 13, 49, 159, 387, 365, 1799, 2399, 6375, 14965, 32495, 5383, 73479, 5653}}, +{18153, 18, 79700, {1, 1, 3, 1, 29, 23, 81, 73, 183, 563, 435, 133, 5731, 6663, 21219, 60007, 101215, 68775}}, +{18154, 18, 79723, {1, 1, 7, 11, 31, 47, 43, 159, 221, 745, 1317, 2405, 4563, 4073, 27675, 14225, 114231, 222553}}, +{18155, 18, 79749, {1, 1, 1, 5, 11, 63, 105, 99, 413, 81, 771, 547, 1633, 8097, 30431, 31417, 101379, 163575}}, +{18156, 18, 79750, {1, 1, 3, 9, 23, 29, 123, 149, 241, 267, 1925, 467, 7743, 4473, 12223, 10521, 86265, 89949}}, +{18157, 18, 79764, {1, 3, 5, 1, 31, 29, 111, 67, 311, 851, 1919, 2563, 3725, 4035, 7241, 13859, 105207, 200599}}, +{18158, 18, 79771, {1, 3, 7, 3, 19, 53, 113, 107, 133, 243, 2021, 2669, 4633, 14393, 24827, 1233, 81471, 20105}}, +{18159, 18, 79774, {1, 1, 1, 5, 3, 23, 43, 149, 157, 875, 1175, 963, 6189, 7343, 13913, 41375, 112857, 236047}}, +{18160, 18, 79780, {1, 3, 5, 15, 11, 31, 43, 225, 469, 229, 703, 3033, 2341, 10309, 12057, 13325, 109019, 130789}}, +{18161, 18, 79789, {1, 1, 1, 7, 27, 47, 45, 49, 371, 971, 1121, 2179, 1267, 9499, 10771, 28781, 77059, 90765}}, +{18162, 18, 79798, {1, 1, 7, 1, 17, 27, 59, 169, 269, 217, 983, 1365, 1985, 12287, 5385, 46407, 24827, 155761}}, +{18163, 18, 79821, {1, 1, 7, 11, 9, 5, 19, 205, 159, 937, 763, 3823, 3625, 14209, 32031, 58879, 118449, 50723}}, +{18164, 18, 79850, {1, 1, 5, 3, 25, 55, 27, 35, 125, 999, 1541, 3883, 539, 5691, 18071, 63199, 112089, 194825}}, +{18165, 18, 79864, {1, 3, 3, 1, 27, 43, 57, 225, 173, 673, 1339, 3433, 5743, 1375, 32429, 35071, 98035, 229973}}, +{18166, 18, 79898, {1, 3, 3, 9, 3, 51, 5, 203, 439, 41, 529, 863, 6735, 13211, 7075, 55637, 24481, 46673}}, +{18167, 18, 79904, {1, 1, 5, 11, 15, 23, 93, 7, 181, 843, 777, 1299, 1941, 7147, 26253, 10967, 5387, 84611}}, +{18168, 18, 79934, {1, 3, 1, 7, 9, 57, 127, 155, 257, 423, 1421, 261, 4477, 11169, 22997, 12371, 8705, 135883}}, +{18169, 18, 79936, {1, 3, 1, 9, 17, 9, 15, 209, 427, 889, 1939, 3623, 2587, 4037, 32233, 40391, 32529, 63851}}, +{18170, 18, 79942, {1, 3, 3, 13, 3, 19, 49, 155, 213, 239, 817, 1787, 2999, 9955, 20155, 44711, 41367, 59623}}, +{18171, 18, 79945, {1, 3, 7, 5, 5, 39, 103, 181, 405, 85, 1997, 3639, 1259, 10737, 189, 44377, 23589, 89371}}, +{18172, 18, 79963, {1, 3, 5, 11, 15, 13, 57, 81, 203, 773, 1571, 3235, 6625, 13803, 2091, 64265, 131013, 189705}}, +{18173, 18, 79987, {1, 1, 1, 13, 15, 3, 113, 159, 149, 55, 355, 2345, 5043, 4067, 23277, 32647, 43755, 5445}}, +{18174, 18, 80057, {1, 3, 3, 9, 31, 7, 67, 177, 423, 269, 1731, 3957, 4383, 13483, 14653, 8243, 57689, 37375}}, +{18175, 18, 80077, {1, 1, 3, 5, 25, 5, 77, 199, 161, 859, 497, 1679, 6809, 4877, 1107, 16443, 15505, 138155}}, +{18176, 18, 80078, {1, 3, 5, 1, 11, 57, 7, 49, 145, 569, 571, 2679, 7531, 14517, 12425, 6285, 116961, 116397}}, +{18177, 18, 80080, {1, 1, 7, 11, 1, 37, 65, 43, 151, 419, 801, 3231, 5321, 10725, 12885, 62771, 16507, 179009}}, +{18178, 18, 80102, {1, 1, 5, 11, 29, 55, 89, 81, 325, 47, 1037, 3235, 2017, 10875, 8919, 25115, 118035, 178227}}, +{18179, 18, 80106, {1, 3, 1, 7, 1, 43, 101, 25, 449, 617, 381, 3437, 6655, 1291, 18693, 53939, 99143, 195695}}, +{18180, 18, 80111, {1, 3, 1, 5, 23, 7, 47, 159, 295, 939, 173, 3087, 1497, 6353, 13893, 13465, 118973, 193737}}, +{18181, 18, 80152, {1, 1, 3, 9, 3, 41, 65, 79, 449, 345, 2039, 1193, 5915, 13689, 1257, 23273, 48515, 256793}}, +{18182, 18, 80155, {1, 3, 5, 11, 11, 55, 13, 117, 343, 899, 1853, 373, 6885, 12863, 1209, 34433, 48215, 218187}}, +{18183, 18, 80173, {1, 3, 7, 7, 3, 45, 103, 145, 55, 507, 743, 4027, 2075, 15707, 4473, 50077, 64551, 204305}}, +{18184, 18, 80186, {1, 1, 3, 5, 31, 45, 123, 233, 363, 1003, 411, 1459, 6455, 985, 29451, 17625, 44153, 137097}}, +{18185, 18, 80203, {1, 3, 3, 1, 27, 11, 53, 251, 41, 43, 495, 107, 6145, 8785, 28997, 7181, 92903, 105785}}, +{18186, 18, 80223, {1, 1, 3, 11, 13, 5, 117, 141, 463, 639, 1857, 2873, 3627, 6081, 18207, 29451, 80909, 73557}}, +{18187, 18, 80233, {1, 1, 1, 3, 29, 51, 15, 81, 85, 487, 307, 2481, 2769, 14901, 9407, 58321, 52813, 230393}}, +{18188, 18, 80258, {1, 3, 3, 11, 31, 7, 107, 43, 205, 811, 1121, 2757, 2447, 6843, 21347, 9143, 41003, 80507}}, +{18189, 18, 80281, {1, 1, 1, 1, 29, 19, 13, 203, 47, 689, 2003, 1477, 7857, 5031, 21781, 5745, 3649, 160389}}, +{18190, 18, 80318, {1, 3, 3, 7, 21, 21, 65, 3, 351, 157, 167, 3425, 2395, 9165, 26143, 57221, 127171, 54461}}, +{18191, 18, 80326, {1, 3, 1, 15, 13, 13, 65, 53, 305, 719, 181, 709, 5485, 13385, 30287, 52669, 82647, 83851}}, +{18192, 18, 80330, {1, 1, 3, 11, 11, 23, 31, 109, 205, 123, 509, 3831, 7771, 7341, 31613, 28035, 38061, 49375}}, +{18193, 18, 80337, {1, 3, 3, 3, 15, 33, 47, 159, 321, 589, 393, 3253, 3743, 6161, 445, 33129, 8181, 27793}}, +{18194, 18, 80344, {1, 1, 1, 13, 9, 57, 111, 253, 203, 539, 673, 855, 1937, 2699, 25795, 6889, 13531, 63561}}, +{18195, 18, 80365, {1, 1, 1, 13, 31, 45, 13, 101, 113, 903, 1699, 2423, 7967, 7957, 20303, 64395, 124447, 33947}}, +{18196, 18, 80383, {1, 3, 5, 11, 17, 39, 59, 181, 421, 535, 1445, 3927, 5433, 12885, 12497, 47231, 39819, 46371}}, +{18197, 18, 80389, {1, 3, 5, 7, 27, 3, 75, 49, 461, 781, 433, 1767, 6903, 11907, 2063, 55199, 82823, 229405}}, +{18198, 18, 80413, {1, 3, 3, 15, 17, 61, 17, 23, 247, 683, 33, 4027, 341, 8069, 2529, 9757, 95653, 12927}}, +{18199, 18, 80441, {1, 3, 3, 11, 17, 7, 29, 205, 353, 917, 219, 3509, 7803, 5939, 25111, 45357, 9259, 1549}}, +{18200, 18, 80449, {1, 3, 3, 15, 21, 7, 23, 25, 459, 291, 31, 2091, 1177, 9311, 12231, 16617, 33575, 252643}}, +{18201, 18, 80461, {1, 3, 5, 5, 3, 51, 113, 123, 453, 503, 1575, 2785, 5011, 1789, 819, 30857, 12955, 172421}}, +{18202, 18, 80467, {1, 1, 5, 3, 15, 15, 125, 65, 113, 281, 53, 3417, 5279, 6351, 25931, 54835, 124077, 204241}}, +{18203, 18, 80476, {1, 1, 3, 9, 29, 31, 19, 179, 275, 933, 711, 3351, 6221, 1711, 9375, 11645, 118911, 249395}}, +{18204, 18, 80507, {1, 3, 7, 13, 23, 59, 43, 61, 85, 267, 691, 3949, 2135, 3203, 21455, 61895, 71157, 136739}}, +{18205, 18, 80516, {1, 1, 7, 5, 19, 27, 69, 141, 9, 633, 95, 3789, 7823, 12635, 27661, 30285, 129469, 67163}}, +{18206, 18, 80519, {1, 3, 3, 9, 11, 25, 103, 47, 425, 809, 1279, 411, 219, 6703, 24145, 17303, 56835, 84879}}, +{18207, 18, 80568, {1, 1, 5, 13, 29, 41, 47, 133, 197, 615, 169, 2157, 1795, 4945, 31693, 57763, 39369, 83353}}, +{18208, 18, 80571, {1, 3, 1, 3, 27, 23, 23, 213, 387, 239, 977, 221, 383, 11005, 7221, 8795, 100963, 163777}}, +{18209, 18, 80579, {1, 1, 1, 1, 31, 29, 87, 93, 239, 399, 801, 3143, 6973, 16331, 16865, 1823, 1127, 41983}}, +{18210, 18, 80586, {1, 1, 3, 13, 7, 39, 25, 251, 277, 417, 119, 3033, 6785, 9783, 1641, 60169, 25047, 182263}}, +{18211, 18, 80599, {1, 1, 5, 5, 7, 35, 17, 47, 295, 861, 1671, 1971, 4583, 3925, 31013, 50039, 125191, 143019}}, +{18212, 18, 80610, {1, 1, 5, 1, 3, 57, 11, 23, 273, 209, 617, 1499, 665, 1193, 7539, 1625, 48065, 82843}}, +{18213, 18, 80629, {1, 1, 3, 15, 15, 17, 39, 145, 193, 503, 1305, 2071, 93, 11529, 14267, 14779, 49327, 51347}}, +{18214, 18, 80642, {1, 3, 5, 3, 7, 39, 63, 171, 263, 493, 383, 3209, 4277, 6259, 1345, 48013, 110571, 127865}}, +{18215, 18, 80690, {1, 3, 1, 7, 15, 29, 93, 75, 37, 235, 1095, 153, 745, 9785, 28831, 58899, 67091, 34743}}, +{18216, 18, 80713, {1, 3, 7, 9, 27, 23, 67, 85, 491, 447, 1899, 709, 555, 13979, 12529, 38383, 16091, 117301}}, +{18217, 18, 80716, {1, 1, 5, 3, 9, 55, 109, 173, 29, 19, 1265, 2391, 7761, 1953, 5643, 24079, 14187, 127017}}, +{18218, 18, 80737, {1, 3, 7, 13, 21, 57, 105, 145, 73, 421, 403, 5, 3523, 7005, 1109, 63357, 111671, 191857}}, +{18219, 18, 80743, {1, 1, 7, 13, 5, 27, 21, 5, 199, 515, 917, 365, 2775, 12453, 26989, 60593, 98977, 161759}}, +{18220, 18, 80750, {1, 3, 1, 13, 15, 37, 71, 65, 27, 533, 1311, 2981, 1945, 7183, 5337, 20659, 67355, 185633}}, +{18221, 18, 80786, {1, 1, 5, 7, 21, 39, 21, 195, 443, 979, 1033, 1823, 3045, 3023, 31783, 61803, 1023, 119291}}, +{18222, 18, 80811, {1, 1, 3, 11, 5, 15, 107, 155, 465, 249, 1845, 357, 2769, 3313, 12335, 16615, 20809, 103469}}, +{18223, 18, 80834, {1, 1, 3, 9, 13, 21, 11, 227, 173, 949, 1255, 3257, 601, 10865, 12779, 9173, 87255, 12867}}, +{18224, 18, 80839, {1, 3, 3, 15, 3, 41, 97, 141, 385, 23, 1253, 2905, 1523, 7647, 7069, 61143, 101245, 59747}}, +{18225, 18, 80840, {1, 3, 1, 3, 7, 35, 117, 93, 357, 741, 1673, 3295, 6809, 547, 22949, 42151, 91241, 16189}}, +{18226, 18, 80846, {1, 3, 5, 9, 25, 31, 27, 221, 55, 595, 1513, 3963, 3143, 1189, 19843, 6361, 19575, 231765}}, +{18227, 18, 80848, {1, 1, 5, 1, 3, 35, 91, 217, 385, 717, 57, 1471, 3529, 859, 15259, 4411, 54491, 79841}}, +{18228, 18, 80876, {1, 1, 5, 9, 29, 47, 111, 89, 469, 975, 513, 1339, 1747, 8839, 30375, 46217, 128191, 95831}}, +{18229, 18, 80911, {1, 1, 5, 13, 9, 45, 3, 221, 223, 461, 1353, 3953, 5505, 3139, 3407, 12953, 74487, 209401}}, +{18230, 18, 80947, {1, 1, 7, 7, 7, 43, 33, 143, 427, 183, 573, 2881, 7355, 10693, 12841, 14267, 61847, 47689}}, +{18231, 18, 81001, {1, 1, 3, 5, 23, 45, 53, 173, 347, 715, 173, 3385, 429, 8143, 2831, 57883, 77245, 37613}}, +{18232, 18, 81031, {1, 1, 1, 13, 21, 47, 33, 157, 171, 47, 1981, 2003, 7401, 7687, 10553, 38083, 111901, 30251}}, +{18233, 18, 81045, {1, 1, 5, 9, 23, 35, 121, 251, 7, 835, 1561, 1605, 7023, 15645, 14313, 6361, 107973, 211667}}, +{18234, 18, 81056, {1, 3, 1, 13, 25, 39, 81, 31, 145, 483, 1587, 3457, 5293, 927, 3529, 22457, 69689, 190371}}, +{18235, 18, 81073, {1, 1, 1, 3, 25, 61, 87, 111, 441, 829, 313, 2271, 205, 10187, 3003, 47237, 99899, 200553}}, +{18236, 18, 81083, {1, 1, 7, 13, 31, 51, 9, 243, 219, 139, 1703, 2001, 959, 11265, 27897, 9081, 4473, 107737}}, +{18237, 18, 81145, {1, 3, 5, 1, 25, 37, 61, 131, 487, 35, 1293, 833, 3847, 11315, 11811, 2763, 2199, 81127}}, +{18238, 18, 81168, {1, 3, 7, 7, 31, 33, 87, 111, 429, 809, 173, 1093, 7719, 14307, 5735, 61019, 21223, 26361}}, +{18239, 18, 81177, {1, 1, 3, 11, 17, 33, 31, 17, 49, 885, 1279, 2243, 3693, 61, 30909, 35807, 14027, 159225}}, +{18240, 18, 81207, {1, 3, 7, 11, 9, 35, 61, 75, 171, 117, 1285, 935, 7271, 3509, 14119, 31065, 58181, 136623}}, +{18241, 18, 81208, {1, 1, 3, 15, 3, 43, 93, 221, 239, 783, 37, 4007, 3637, 10461, 18425, 59629, 93781, 252689}}, +{18242, 18, 81226, {1, 3, 5, 7, 5, 61, 19, 107, 123, 417, 1655, 2307, 8177, 13617, 17195, 31597, 66241, 107199}}, +{18243, 18, 81245, {1, 3, 7, 7, 5, 5, 25, 69, 383, 217, 993, 2719, 3425, 8395, 1125, 10763, 80111, 70421}}, +{18244, 18, 81269, {1, 1, 3, 9, 29, 45, 123, 45, 89, 1015, 1703, 4049, 4969, 3801, 23657, 41031, 66415, 34063}}, +{18245, 18, 81285, {1, 1, 3, 3, 7, 53, 125, 63, 67, 335, 1937, 1793, 4641, 7115, 10951, 45503, 54723, 177433}}, +{18246, 18, 81289, {1, 3, 5, 1, 21, 55, 83, 199, 509, 331, 695, 2133, 1881, 14369, 21687, 2343, 85895, 99255}}, +{18247, 18, 81292, {1, 1, 5, 9, 11, 5, 111, 97, 433, 851, 1537, 411, 6629, 5185, 30749, 50017, 46177, 213347}}, +{18248, 18, 81298, {1, 3, 3, 1, 7, 21, 95, 229, 311, 605, 1277, 2435, 5053, 3051, 15447, 35479, 2835, 204149}}, +{18249, 18, 81310, {1, 3, 5, 9, 31, 27, 79, 201, 329, 735, 1933, 27, 6201, 9375, 24801, 34045, 16227, 61013}}, +{18250, 18, 81346, {1, 1, 5, 5, 31, 7, 73, 197, 455, 835, 1845, 2733, 3371, 513, 10495, 43659, 4621, 68969}}, +{18251, 18, 81348, {1, 1, 1, 15, 21, 55, 15, 83, 419, 471, 1427, 919, 7125, 7635, 25579, 19493, 37381, 191563}}, +{18252, 18, 81355, {1, 1, 7, 3, 15, 35, 25, 73, 295, 507, 719, 3307, 4253, 945, 21005, 24903, 80287, 48885}}, +{18253, 18, 81388, {1, 3, 7, 15, 27, 13, 71, 79, 189, 491, 1185, 3007, 4285, 13005, 18973, 33759, 15327, 45595}}, +{18254, 18, 81396, {1, 3, 3, 9, 9, 33, 115, 103, 31, 949, 1817, 2865, 1215, 9611, 16019, 7925, 72945, 208301}}, +{18255, 18, 81415, {1, 1, 1, 5, 19, 35, 89, 181, 409, 641, 1277, 2201, 2825, 5707, 13463, 34741, 39303, 217803}}, +{18256, 18, 81460, {1, 1, 3, 11, 13, 31, 65, 191, 11, 179, 509, 2513, 3861, 13323, 11817, 24901, 53815, 44343}}, +{18257, 18, 81482, {1, 3, 1, 5, 5, 57, 97, 25, 83, 177, 1963, 2367, 6703, 13361, 8749, 45533, 87883, 2977}}, +{18258, 18, 81518, {1, 3, 5, 3, 15, 41, 113, 145, 39, 509, 81, 1387, 2881, 1441, 75, 28409, 61417, 79393}}, +{18259, 18, 81523, {1, 3, 3, 3, 17, 1, 41, 19, 173, 133, 2033, 3637, 7415, 1841, 19497, 42643, 122885, 195301}}, +{18260, 18, 81529, {1, 3, 3, 9, 15, 37, 11, 87, 291, 881, 1471, 2469, 6877, 6813, 8273, 1455, 30957, 181887}}, +{18261, 18, 81545, {1, 3, 5, 9, 25, 41, 7, 71, 451, 831, 495, 3991, 4173, 4307, 31249, 7253, 57141, 35495}}, +{18262, 18, 81570, {1, 1, 7, 9, 15, 39, 29, 193, 327, 837, 991, 3503, 1175, 14965, 18151, 22479, 51127, 159019}}, +{18263, 18, 81576, {1, 3, 1, 9, 23, 41, 89, 211, 179, 507, 1005, 613, 8083, 15655, 1927, 23401, 51025, 21589}}, +{18264, 18, 81604, {1, 1, 5, 15, 5, 63, 105, 229, 239, 399, 591, 2233, 391, 2871, 29829, 49961, 62045, 190437}}, +{18265, 18, 81613, {1, 3, 5, 9, 7, 23, 85, 219, 163, 37, 1881, 589, 4239, 12845, 19993, 57267, 29519, 207597}}, +{18266, 18, 81631, {1, 3, 7, 15, 19, 19, 115, 141, 41, 405, 657, 2517, 4231, 10247, 21383, 11479, 52955, 121545}}, +{18267, 18, 81656, {1, 3, 1, 7, 23, 33, 65, 229, 287, 739, 1265, 1105, 487, 3801, 5211, 44731, 5359, 103685}}, +{18268, 18, 81679, {1, 3, 1, 13, 23, 29, 101, 153, 395, 335, 899, 303, 2073, 15767, 1303, 15539, 12889, 35517}}, +{18269, 18, 81684, {1, 1, 5, 11, 5, 63, 41, 53, 99, 339, 563, 2921, 4959, 13941, 13655, 10115, 56867, 42919}}, +{18270, 18, 81698, {1, 3, 5, 5, 5, 35, 127, 225, 497, 27, 139, 3269, 3929, 3369, 22697, 19421, 2921, 171927}}, +{18271, 18, 81736, {1, 1, 1, 15, 15, 21, 35, 251, 67, 447, 1045, 1173, 2951, 6589, 27261, 36597, 98721, 7205}}, +{18272, 18, 81747, {1, 3, 3, 9, 11, 63, 83, 19, 163, 381, 87, 1211, 3007, 4971, 27105, 2341, 21389, 32995}}, +{18273, 18, 81765, {1, 1, 3, 3, 21, 19, 63, 65, 505, 987, 1821, 2419, 3195, 2573, 1481, 35279, 45135, 597}}, +{18274, 18, 81775, {1, 3, 1, 15, 29, 5, 77, 65, 121, 223, 2009, 593, 7929, 10353, 22301, 25137, 40289, 95847}}, +{18275, 18, 81805, {1, 1, 3, 1, 17, 49, 9, 167, 69, 729, 1189, 1191, 1, 12603, 8281, 45193, 1427, 15887}}, +{18276, 18, 81842, {1, 1, 3, 7, 17, 5, 11, 217, 505, 317, 505, 1201, 8025, 13255, 12591, 16207, 32387, 242425}}, +{18277, 18, 81859, {1, 3, 7, 9, 25, 9, 97, 23, 91, 765, 653, 2689, 2787, 11719, 8455, 24665, 26907, 78525}}, +{18278, 18, 81865, {1, 3, 3, 15, 27, 19, 79, 157, 117, 715, 1921, 2453, 499, 13593, 14173, 1993, 110087, 151427}}, +{18279, 18, 81866, {1, 3, 1, 13, 5, 43, 59, 21, 451, 863, 533, 1723, 2059, 1611, 10403, 36479, 36999, 109553}}, +{18280, 18, 81892, {1, 3, 7, 7, 29, 63, 51, 5, 475, 549, 123, 1949, 5279, 8581, 20053, 52287, 125223, 152299}}, +{18281, 18, 81902, {1, 3, 1, 1, 7, 19, 1, 215, 273, 157, 1557, 425, 7549, 12337, 1735, 30917, 116487, 177335}}, +{18282, 18, 81933, {1, 1, 1, 1, 7, 47, 61, 191, 73, 551, 1435, 2283, 3191, 8545, 11875, 41389, 17607, 26869}}, +{18283, 18, 81934, {1, 1, 7, 9, 13, 61, 109, 121, 365, 223, 1729, 3311, 7249, 10765, 12419, 4235, 64127, 132257}}, +{18284, 18, 81942, {1, 1, 3, 13, 17, 25, 65, 49, 417, 311, 141, 1127, 53, 945, 28277, 33347, 96399, 166049}}, +{18285, 18, 81969, {1, 3, 7, 9, 5, 21, 93, 203, 467, 805, 115, 1757, 4535, 8687, 10423, 8065, 2955, 20403}}, +{18286, 18, 81981, {1, 3, 3, 15, 7, 63, 103, 137, 227, 111, 735, 2139, 4293, 5347, 4131, 63405, 42599, 173299}}, +{18287, 18, 81999, {1, 3, 7, 7, 17, 53, 127, 251, 57, 625, 843, 3045, 1319, 10085, 18591, 36115, 104193, 183891}}, +{18288, 18, 82004, {1, 3, 7, 1, 31, 57, 107, 253, 207, 739, 1703, 1377, 3807, 10289, 22969, 13087, 2805, 261279}}, +{18289, 18, 82008, {1, 1, 5, 5, 5, 59, 59, 63, 77, 663, 1109, 2159, 3725, 12355, 4805, 22433, 81851, 9419}}, +{18290, 18, 82032, {1, 1, 7, 15, 1, 1, 101, 101, 295, 311, 447, 3931, 933, 15713, 8919, 7185, 38577, 254203}}, +{18291, 18, 82035, {1, 1, 5, 15, 7, 35, 35, 141, 283, 665, 1685, 3875, 495, 1655, 8269, 23493, 1523, 248783}}, +{18292, 18, 82060, {1, 1, 5, 9, 27, 35, 25, 57, 285, 469, 1491, 1479, 3705, 11357, 5319, 11575, 116207, 215961}}, +{18293, 18, 82063, {1, 3, 5, 11, 7, 41, 67, 161, 73, 777, 247, 823, 6677, 1631, 3431, 2821, 25291, 17633}}, +{18294, 18, 82071, {1, 1, 3, 9, 19, 17, 45, 181, 139, 85, 857, 1231, 7167, 2951, 26847, 39113, 51705, 104617}}, +{18295, 18, 82081, {1, 3, 5, 1, 5, 55, 101, 209, 1, 47, 1059, 2175, 1549, 8007, 11267, 21863, 125567, 102775}}, +{18296, 18, 82082, {1, 3, 3, 15, 15, 21, 79, 85, 427, 963, 1335, 2129, 6831, 6613, 13319, 15781, 3781, 222547}}, +{18297, 18, 82105, {1, 3, 3, 13, 19, 63, 25, 123, 1, 215, 139, 1345, 5035, 3107, 14381, 6239, 18481, 202581}}, +{18298, 18, 82106, {1, 1, 5, 1, 11, 11, 11, 53, 109, 533, 1113, 177, 609, 15391, 22735, 62229, 103591, 89143}}, +{18299, 18, 82120, {1, 1, 5, 15, 3, 21, 115, 223, 167, 441, 277, 2971, 933, 2841, 26893, 48513, 74553, 250413}}, +{18300, 18, 82125, {1, 1, 1, 7, 19, 17, 43, 181, 483, 897, 819, 1657, 5539, 8847, 23483, 57605, 104703, 242559}}, +{18301, 18, 82156, {1, 3, 5, 11, 3, 63, 3, 129, 45, 981, 45, 845, 1481, 14735, 30451, 16937, 13789, 27107}}, +{18302, 18, 82176, {1, 3, 3, 15, 25, 11, 33, 49, 155, 947, 521, 3417, 3299, 1123, 9517, 32127, 117795, 223167}}, +{18303, 18, 82203, {1, 3, 5, 15, 3, 35, 27, 37, 287, 541, 727, 2779, 7033, 5189, 21579, 36895, 109645, 123353}}, +{18304, 18, 82210, {1, 3, 7, 9, 15, 53, 123, 125, 405, 841, 119, 63, 853, 8693, 1537, 25509, 49345, 54301}}, +{18305, 18, 82241, {1, 3, 7, 9, 11, 63, 65, 145, 283, 529, 1553, 883, 3319, 8601, 29379, 26991, 127343, 98701}}, +{18306, 18, 82287, {1, 1, 1, 7, 23, 59, 11, 89, 407, 869, 445, 659, 3029, 5465, 5063, 36775, 69089, 205367}}, +{18307, 18, 82323, {1, 3, 7, 5, 19, 35, 99, 49, 257, 287, 1113, 2825, 2797, 7283, 31757, 47015, 106987, 82589}}, +{18308, 18, 82330, {1, 3, 7, 11, 15, 37, 41, 101, 493, 725, 1091, 503, 2611, 13025, 11071, 39311, 5193, 92127}}, +{18309, 18, 82366, {1, 1, 3, 7, 9, 59, 69, 113, 381, 341, 1495, 3169, 5099, 69, 7911, 9721, 84609, 254171}}, +{18310, 18, 82378, {1, 3, 5, 7, 21, 19, 75, 71, 7, 617, 1185, 2787, 4147, 16045, 18859, 52347, 66551, 161563}}, +{18311, 18, 82395, {1, 3, 5, 3, 27, 39, 17, 205, 425, 3, 1443, 1947, 7645, 10125, 24577, 45373, 38015, 30407}}, +{18312, 18, 82398, {1, 3, 3, 11, 1, 57, 105, 251, 65, 389, 1993, 3933, 3093, 1425, 9483, 5953, 13147, 234121}}, +{18313, 18, 82401, {1, 3, 3, 3, 1, 27, 105, 45, 435, 393, 609, 291, 545, 4905, 22621, 62115, 78955, 84355}}, +{18314, 18, 82404, {1, 3, 7, 9, 1, 15, 91, 183, 301, 223, 1183, 1877, 2141, 5549, 371, 44147, 6771, 136777}}, +{18315, 18, 82419, {1, 1, 5, 15, 5, 49, 127, 161, 121, 979, 1247, 3681, 3805, 3363, 11643, 25735, 21193, 111657}}, +{18316, 18, 82421, {1, 3, 5, 15, 15, 33, 47, 91, 137, 323, 1577, 3723, 3609, 11533, 4415, 26467, 120947, 200919}}, +{18317, 18, 82428, {1, 3, 3, 3, 3, 33, 121, 161, 453, 205, 1815, 65, 5893, 4669, 14377, 10905, 9559, 56359}}, +{18318, 18, 82442, {1, 1, 1, 7, 1, 55, 21, 143, 411, 65, 1009, 2989, 133, 7059, 30981, 15417, 2651, 110345}}, +{18319, 18, 82452, {1, 1, 3, 7, 19, 25, 91, 241, 193, 903, 661, 665, 7681, 14111, 29197, 51299, 109519, 155827}}, +{18320, 18, 82455, {1, 1, 1, 15, 25, 3, 79, 57, 417, 73, 705, 7, 4415, 7699, 28185, 53005, 88547, 7281}}, +{18321, 18, 82466, {1, 1, 7, 13, 27, 21, 35, 197, 65, 171, 1773, 393, 3759, 8335, 5987, 20611, 91373, 80715}}, +{18322, 18, 82510, {1, 3, 7, 3, 17, 51, 85, 229, 131, 733, 281, 3157, 1283, 10751, 20203, 49955, 23861, 128517}}, +{18323, 18, 82524, {1, 1, 5, 15, 3, 27, 35, 87, 391, 509, 1627, 769, 701, 4933, 24597, 9695, 111441, 198493}}, +{18324, 18, 82545, {1, 1, 1, 15, 3, 31, 73, 235, 341, 263, 883, 2369, 4887, 4659, 9493, 6763, 130625, 15031}}, +{18325, 18, 82555, {1, 3, 1, 15, 1, 11, 63, 79, 389, 355, 619, 1361, 313, 1199, 555, 42213, 81089, 170863}}, +{18326, 18, 82581, {1, 3, 1, 15, 21, 27, 1, 179, 19, 241, 1655, 1803, 5413, 5353, 65, 31211, 3501, 27205}}, +{18327, 18, 82588, {1, 3, 3, 9, 9, 19, 63, 191, 217, 271, 1453, 2777, 2915, 13291, 31391, 37489, 86435, 22857}}, +{18328, 18, 82591, {1, 3, 5, 9, 13, 41, 85, 11, 333, 479, 363, 2591, 697, 8587, 3647, 5741, 21627, 244573}}, +{18329, 18, 82636, {1, 1, 3, 1, 5, 61, 83, 229, 193, 977, 677, 2585, 3273, 12035, 2621, 12943, 49293, 37985}}, +{18330, 18, 82658, {1, 1, 5, 7, 27, 9, 69, 189, 489, 747, 519, 719, 1493, 13337, 14933, 44359, 11471, 57245}}, +{18331, 18, 82675, {1, 3, 5, 1, 5, 17, 75, 89, 417, 367, 57, 1641, 1573, 1819, 31237, 5213, 78821, 149853}}, +{18332, 18, 82678, {1, 1, 7, 3, 7, 17, 121, 91, 211, 101, 1145, 3753, 2997, 67, 10755, 11261, 122489, 61679}}, +{18333, 18, 82716, {1, 3, 7, 7, 15, 17, 73, 133, 429, 285, 201, 1917, 5677, 1793, 21653, 49729, 68965, 5347}}, +{18334, 18, 82725, {1, 3, 3, 13, 23, 17, 49, 249, 71, 169, 619, 843, 2163, 585, 23309, 39509, 68087, 232233}}, +{18335, 18, 82743, {1, 1, 7, 15, 23, 15, 19, 227, 89, 719, 1247, 2521, 1509, 7553, 12225, 12865, 100107, 261847}}, +{18336, 18, 82744, {1, 1, 5, 3, 23, 17, 117, 5, 401, 57, 1945, 1081, 1269, 5921, 31815, 42341, 112099, 130047}}, +{18337, 18, 82762, {1, 1, 1, 1, 9, 5, 87, 203, 211, 1009, 403, 1617, 3969, 2541, 7261, 6989, 16579, 206159}}, +{18338, 18, 82770, {1, 3, 7, 9, 5, 13, 93, 191, 79, 631, 1019, 3639, 7137, 13859, 19603, 63263, 82947, 181023}}, +{18339, 18, 82809, {1, 1, 5, 11, 25, 17, 85, 51, 61, 311, 517, 2001, 6325, 6831, 10835, 20101, 115241, 15815}}, +{18340, 18, 82846, {1, 3, 7, 13, 29, 19, 33, 115, 473, 477, 471, 773, 4097, 11697, 30781, 20843, 27089, 181927}}, +{18341, 18, 82855, {1, 3, 5, 5, 21, 27, 3, 239, 45, 335, 505, 149, 3005, 3511, 18037, 31291, 6145, 2913}}, +{18342, 18, 82882, {1, 1, 3, 1, 25, 49, 21, 225, 27, 395, 415, 1813, 5727, 7211, 9887, 63533, 99185, 119269}}, +{18343, 18, 82899, {1, 3, 3, 5, 15, 53, 127, 195, 81, 895, 587, 561, 5951, 9901, 18117, 37855, 19393, 259031}}, +{18344, 18, 82905, {1, 1, 7, 13, 9, 49, 109, 127, 53, 735, 391, 1523, 3759, 10363, 11299, 3203, 89121, 122643}}, +{18345, 18, 82950, {1, 1, 5, 3, 13, 3, 21, 247, 259, 557, 977, 1465, 6889, 3879, 4627, 1439, 122809, 248941}}, +{18346, 18, 82953, {1, 3, 7, 15, 7, 19, 113, 251, 245, 63, 267, 1873, 6601, 16253, 24643, 7433, 130051, 233047}}, +{18347, 18, 82967, {1, 1, 3, 9, 29, 39, 47, 31, 493, 817, 1697, 2139, 1059, 11365, 31653, 56477, 119191, 45509}}, +{18348, 18, 82971, {1, 1, 1, 15, 9, 29, 99, 61, 109, 341, 1009, 1551, 897, 13075, 10603, 25153, 65911, 228213}}, +{18349, 18, 82987, {1, 3, 7, 7, 29, 47, 57, 85, 263, 767, 1633, 2473, 199, 49, 22287, 33345, 118877, 248435}}, +{18350, 18, 83007, {1, 3, 1, 9, 5, 45, 5, 179, 9, 129, 1231, 4075, 7497, 2159, 18101, 31039, 95213, 171913}}, +{18351, 18, 83009, {1, 1, 1, 13, 23, 1, 89, 63, 21, 983, 481, 773, 5957, 4823, 4483, 50405, 42979, 243567}}, +{18352, 18, 83012, {1, 1, 5, 13, 15, 21, 65, 133, 347, 511, 1887, 743, 7825, 1681, 4857, 49247, 21277, 212995}}, +{18353, 18, 83030, {1, 3, 7, 9, 7, 51, 3, 233, 287, 727, 815, 3609, 397, 5721, 16473, 7549, 100455, 136233}}, +{18354, 18, 83045, {1, 3, 1, 1, 31, 51, 59, 37, 79, 623, 1219, 2655, 4619, 11967, 11377, 28985, 16069, 188773}}, +{18355, 18, 83050, {1, 3, 3, 13, 13, 59, 93, 159, 197, 339, 1633, 1601, 255, 1631, 4989, 12019, 23921, 261273}}, +{18356, 18, 83052, {1, 1, 3, 13, 27, 25, 55, 43, 147, 981, 65, 725, 5753, 115, 26125, 25501, 89099, 233419}}, +{18357, 18, 83070, {1, 3, 7, 5, 25, 3, 95, 135, 191, 417, 929, 3855, 5829, 3827, 13979, 65367, 63683, 85911}}, +{18358, 18, 83076, {1, 3, 5, 1, 7, 63, 45, 187, 355, 735, 1325, 1461, 3869, 2127, 18231, 45891, 24027, 202997}}, +{18359, 18, 83086, {1, 3, 7, 13, 19, 47, 89, 229, 253, 659, 355, 3323, 4081, 8243, 32553, 46579, 46431, 53291}}, +{18360, 18, 83128, {1, 1, 5, 11, 3, 61, 33, 65, 239, 779, 665, 1337, 6427, 12787, 1495, 27105, 71455, 89715}}, +{18361, 18, 83141, {1, 3, 1, 11, 31, 33, 115, 69, 511, 187, 99, 1055, 1065, 9531, 29897, 23897, 80581, 166957}}, +{18362, 18, 83153, {1, 1, 7, 13, 19, 1, 13, 241, 89, 761, 425, 3865, 961, 14999, 24175, 19103, 39095, 38899}}, +{18363, 18, 83156, {1, 3, 7, 7, 11, 17, 25, 217, 113, 615, 1455, 1409, 5679, 2321, 28687, 8089, 74031, 230559}}, +{18364, 18, 83194, {1, 3, 7, 1, 25, 15, 77, 111, 405, 523, 961, 647, 3857, 14355, 27063, 48829, 87913, 254965}}, +{18365, 18, 83225, {1, 1, 3, 3, 5, 13, 67, 155, 393, 943, 1875, 1209, 3765, 8627, 15123, 43405, 78473, 146127}}, +{18366, 18, 83261, {1, 1, 3, 7, 29, 43, 23, 33, 35, 883, 1859, 1559, 4163, 13277, 16971, 15289, 60305, 56743}}, +{18367, 18, 83264, {1, 1, 1, 5, 19, 55, 37, 53, 123, 35, 1477, 1035, 4683, 259, 20079, 37041, 48081, 198685}}, +{18368, 18, 83322, {1, 1, 3, 3, 1, 19, 27, 129, 427, 685, 959, 2501, 2761, 9495, 23649, 18789, 54521, 219547}}, +{18369, 18, 83382, {1, 1, 7, 1, 31, 11, 65, 171, 229, 11, 1825, 1641, 2731, 11085, 2567, 30831, 20365, 242731}}, +{18370, 18, 83391, {1, 1, 1, 13, 13, 5, 21, 175, 265, 271, 133, 407, 3415, 5943, 15385, 12817, 106159, 41859}}, +{18371, 18, 83399, {1, 3, 7, 1, 11, 45, 105, 229, 395, 877, 1495, 2113, 1733, 10117, 1125, 9989, 109637, 124517}}, +{18372, 18, 83406, {1, 1, 7, 3, 27, 43, 57, 77, 63, 907, 1137, 3333, 189, 15285, 13895, 23773, 73523, 47811}}, +{18373, 18, 83427, {1, 3, 3, 11, 17, 19, 81, 197, 73, 897, 515, 3801, 5105, 6987, 10125, 7239, 32339, 124411}}, +{18374, 18, 83439, {1, 3, 1, 9, 11, 15, 99, 109, 307, 133, 249, 1463, 5479, 8565, 19489, 13773, 11443, 149799}}, +{18375, 18, 83444, {1, 3, 7, 7, 19, 53, 61, 75, 83, 545, 1449, 683, 5845, 8325, 18111, 35941, 51843, 97907}}, +{18376, 18, 83453, {1, 1, 1, 3, 31, 23, 37, 187, 207, 51, 439, 3095, 2217, 6393, 9117, 2779, 47331, 118275}}, +{18377, 18, 83457, {1, 1, 3, 9, 23, 17, 41, 37, 59, 281, 319, 1333, 6207, 2265, 4445, 50831, 115893, 120491}}, +{18378, 18, 83475, {1, 3, 1, 13, 27, 23, 25, 23, 187, 51, 1257, 379, 921, 3801, 24537, 59547, 34191, 184625}}, +{18379, 18, 83484, {1, 1, 5, 3, 23, 21, 23, 159, 163, 537, 1589, 2797, 8007, 6767, 31331, 20741, 119969, 174135}}, +{18380, 18, 83488, {1, 3, 1, 1, 13, 35, 73, 147, 491, 317, 69, 1069, 5413, 13973, 19741, 44717, 63263, 77145}}, +{18381, 18, 83493, {1, 3, 1, 15, 31, 41, 23, 79, 55, 863, 129, 2229, 3395, 1621, 6273, 44521, 100047, 42337}}, +{18382, 18, 83512, {1, 3, 7, 3, 7, 5, 79, 1, 191, 227, 1039, 2909, 1085, 3173, 29311, 13861, 124785, 212453}}, +{18383, 18, 83525, {1, 3, 1, 5, 13, 9, 99, 213, 61, 201, 889, 1171, 3981, 2091, 31679, 26643, 5611, 154339}}, +{18384, 18, 83535, {1, 3, 3, 7, 27, 49, 53, 77, 285, 441, 1669, 2157, 223, 1899, 2725, 36547, 39273, 206653}}, +{18385, 18, 83560, {1, 3, 3, 9, 29, 5, 91, 1, 13, 409, 1275, 891, 6557, 5157, 6481, 57381, 87683, 117277}}, +{18386, 18, 83617, {1, 3, 3, 1, 11, 7, 13, 69, 9, 1015, 907, 2685, 6665, 16307, 24567, 13191, 9567, 55073}}, +{18387, 18, 83664, {1, 3, 1, 5, 19, 15, 65, 13, 503, 427, 1947, 1869, 5857, 823, 20533, 25337, 83551, 128505}}, +{18388, 18, 83676, {1, 1, 5, 11, 25, 53, 83, 175, 445, 5, 841, 2773, 4381, 2829, 1927, 63689, 63643, 246629}}, +{18389, 18, 83757, {1, 3, 1, 11, 27, 63, 43, 95, 453, 235, 673, 117, 6617, 7589, 5767, 16465, 36961, 39395}}, +{18390, 18, 83770, {1, 1, 3, 13, 3, 27, 119, 87, 209, 167, 721, 1499, 1955, 9151, 11649, 29009, 25249, 26125}}, +{18391, 18, 83775, {1, 1, 5, 1, 9, 59, 47, 57, 81, 243, 485, 559, 7311, 15119, 9827, 47219, 5941, 16909}}, +{18392, 18, 83835, {1, 3, 7, 11, 29, 13, 97, 63, 289, 653, 1811, 835, 801, 13103, 9333, 7785, 111587, 10021}}, +{18393, 18, 83838, {1, 3, 3, 1, 27, 61, 73, 165, 279, 239, 865, 517, 7763, 1917, 9839, 20725, 50721, 171351}}, +{18394, 18, 83848, {1, 3, 7, 1, 27, 29, 43, 137, 353, 927, 889, 2511, 709, 3309, 967, 18119, 48099, 98139}}, +{18395, 18, 83856, {1, 3, 1, 1, 17, 5, 79, 23, 367, 231, 605, 3809, 7557, 14283, 18417, 15775, 107421, 9587}}, +{18396, 18, 83878, {1, 1, 1, 7, 25, 9, 93, 41, 165, 509, 661, 2165, 3595, 2555, 11399, 2403, 76179, 176003}}, +{18397, 18, 83884, {1, 3, 3, 7, 27, 19, 55, 213, 83, 601, 377, 2381, 6831, 5609, 31321, 26897, 105321, 144705}}, +{18398, 18, 83896, {1, 3, 7, 7, 21, 11, 45, 55, 379, 133, 653, 3593, 7481, 15789, 12723, 9697, 20073, 58211}}, +{18399, 18, 83902, {1, 3, 5, 1, 1, 57, 89, 159, 461, 719, 1251, 3899, 1063, 10753, 6509, 28391, 129377, 195279}}, +{18400, 18, 83922, {1, 3, 7, 7, 5, 39, 59, 81, 27, 169, 1541, 2213, 3631, 11601, 13153, 43221, 14587, 29719}}, +{18401, 18, 83977, {1, 1, 1, 1, 3, 29, 103, 125, 35, 455, 255, 3855, 567, 12013, 13285, 44753, 117415, 226285}}, +{18402, 18, 83985, {1, 1, 5, 1, 21, 41, 59, 69, 83, 813, 1041, 2559, 1947, 7343, 5291, 39281, 56141, 54487}}, +{18403, 18, 83988, {1, 1, 7, 15, 25, 17, 83, 115, 321, 659, 1625, 3253, 281, 6673, 26301, 45647, 92151, 150707}}, +{18404, 18, 84034, {1, 1, 5, 15, 9, 19, 83, 167, 325, 869, 501, 483, 2155, 14697, 12755, 54687, 100637, 6791}}, +{18405, 18, 84046, {1, 1, 7, 3, 3, 47, 91, 79, 347, 215, 847, 2957, 5881, 5371, 20099, 45603, 29349, 175357}}, +{18406, 18, 84058, {1, 3, 1, 3, 13, 43, 101, 235, 505, 289, 691, 673, 5579, 8721, 9639, 18569, 44797, 250887}}, +{18407, 18, 84069, {1, 1, 3, 11, 23, 27, 85, 223, 365, 767, 577, 2781, 4179, 12963, 25235, 51021, 84989, 149521}}, +{18408, 18, 84107, {1, 1, 1, 1, 9, 51, 13, 129, 393, 725, 1301, 1391, 4693, 4979, 16801, 21361, 122157, 56675}}, +{18409, 18, 84155, {1, 3, 5, 11, 7, 21, 97, 97, 17, 915, 255, 155, 3961, 7999, 7493, 52683, 49377, 131663}}, +{18410, 18, 84157, {1, 3, 5, 15, 31, 23, 41, 187, 89, 933, 309, 2519, 6595, 13785, 14339, 44393, 64439, 142105}}, +{18411, 18, 84160, {1, 1, 1, 11, 13, 57, 29, 249, 467, 863, 77, 3185, 6221, 13109, 32397, 13859, 27331, 35295}}, +{18412, 18, 84165, {1, 3, 3, 3, 23, 31, 29, 189, 405, 855, 1597, 3167, 4171, 13801, 12297, 38019, 130141, 135517}}, +{18413, 18, 84187, {1, 1, 5, 7, 13, 37, 87, 41, 503, 281, 103, 1997, 3603, 4185, 25331, 55123, 74263, 248695}}, +{18414, 18, 84214, {1, 3, 1, 15, 13, 57, 67, 135, 429, 489, 829, 2069, 7657, 15713, 3907, 5819, 114005, 187859}}, +{18415, 18, 84226, {1, 1, 3, 1, 23, 43, 93, 63, 5, 435, 1649, 1429, 2923, 9035, 28667, 13991, 74491, 236225}}, +{18416, 18, 84235, {1, 3, 3, 7, 19, 29, 37, 143, 443, 955, 1431, 3193, 6023, 2421, 28955, 29171, 126785, 124709}}, +{18417, 18, 84240, {1, 3, 7, 7, 23, 45, 59, 101, 25, 711, 1685, 851, 3101, 12273, 10775, 57633, 52739, 244681}}, +{18418, 18, 84255, {1, 1, 1, 5, 3, 13, 97, 143, 367, 139, 1535, 873, 8005, 2795, 11103, 3837, 125833, 194903}}, +{18419, 18, 84273, {1, 3, 5, 7, 23, 61, 61, 203, 443, 543, 573, 2835, 941, 12315, 18453, 34367, 94359, 132437}}, +{18420, 18, 84291, {1, 1, 7, 5, 11, 21, 87, 27, 495, 67, 1267, 2029, 5041, 4133, 18821, 50249, 52397, 101431}}, +{18421, 18, 84311, {1, 3, 3, 3, 13, 51, 89, 183, 61, 919, 1841, 373, 7091, 9413, 1227, 44515, 72869, 198769}}, +{18422, 18, 84317, {1, 3, 3, 11, 13, 63, 13, 253, 203, 571, 91, 3477, 123, 15353, 7803, 62729, 14337, 252725}}, +{18423, 18, 84328, {1, 1, 7, 1, 11, 57, 45, 251, 351, 895, 1813, 3857, 7545, 9739, 32029, 24915, 46261, 8149}}, +{18424, 18, 84346, {1, 3, 1, 15, 25, 41, 71, 47, 265, 567, 307, 4079, 1943, 10407, 2999, 6605, 97621, 194711}}, +{18425, 18, 84357, {1, 1, 3, 5, 17, 29, 97, 249, 449, 761, 1727, 1533, 7417, 16167, 421, 39075, 1029, 180923}}, +{18426, 18, 84361, {1, 1, 1, 3, 11, 27, 67, 227, 131, 453, 951, 3897, 515, 4513, 17361, 50049, 4533, 35953}}, +{18427, 18, 84372, {1, 1, 1, 13, 7, 53, 25, 163, 453, 195, 1115, 1019, 3799, 7489, 12419, 15141, 112001, 106459}}, +{18428, 18, 84388, {1, 1, 3, 9, 27, 15, 63, 109, 293, 867, 645, 1821, 2867, 9653, 32617, 39617, 125589, 249169}}, +{18429, 18, 84415, {1, 1, 7, 5, 19, 17, 15, 105, 65, 143, 961, 493, 7301, 11299, 4549, 49873, 82447, 107}}, +{18430, 18, 84438, {1, 1, 7, 1, 31, 21, 19, 61, 255, 815, 421, 3097, 4993, 9709, 11529, 53839, 32653, 137861}}, +{18431, 18, 84444, {1, 3, 1, 9, 5, 5, 59, 179, 115, 101, 407, 1143, 309, 843, 31143, 60639, 126659, 111695}}, +{18432, 18, 84447, {1, 3, 7, 13, 7, 47, 65, 127, 159, 817, 1029, 2983, 5443, 11087, 10595, 47143, 128353, 195189}}, +{18433, 18, 84451, {1, 3, 7, 1, 27, 21, 61, 235, 433, 929, 581, 1925, 8185, 6037, 28859, 16843, 43499, 217091}}, +{18434, 18, 84465, {1, 3, 7, 11, 1, 11, 81, 187, 227, 967, 25, 2285, 1251, 10743, 2321, 29029, 89739, 188023}}, +{18435, 18, 84471, {1, 3, 5, 11, 21, 25, 57, 201, 89, 965, 1593, 2879, 2469, 13675, 28789, 11407, 13109, 52749}}, +{18436, 18, 84496, {1, 3, 3, 3, 19, 25, 87, 3, 127, 881, 645, 207, 1129, 4235, 1533, 52503, 128733, 238679}}, +{18437, 18, 84554, {1, 3, 3, 1, 5, 5, 63, 181, 493, 457, 1529, 1795, 219, 10807, 26713, 49673, 47167, 103595}}, +{18438, 18, 84561, {1, 1, 3, 3, 1, 31, 65, 79, 473, 257, 1477, 387, 2843, 4031, 8459, 44849, 115157, 8417}}, +{18439, 18, 84571, {1, 3, 3, 5, 15, 1, 105, 67, 343, 333, 1961, 649, 5105, 11387, 27437, 35471, 26295, 220309}}, +{18440, 18, 84580, {1, 3, 7, 15, 1, 7, 23, 113, 67, 1019, 1793, 3237, 7223, 5691, 6279, 50231, 49393, 84393}}, +{18441, 18, 84598, {1, 1, 1, 7, 9, 29, 125, 249, 89, 813, 561, 871, 1957, 1095, 18563, 5257, 39563, 225651}}, +{18442, 18, 84611, {1, 1, 1, 15, 17, 11, 51, 191, 217, 617, 793, 3633, 4673, 15463, 10621, 47221, 51611, 155937}}, +{18443, 18, 84620, {1, 3, 7, 15, 13, 7, 63, 57, 45, 1005, 685, 2913, 3597, 9933, 14819, 26015, 80023, 60547}}, +{18444, 18, 84625, {1, 1, 5, 5, 31, 43, 69, 63, 425, 439, 143, 933, 675, 11301, 31779, 53445, 25143, 213213}}, +{18445, 18, 84632, {1, 1, 1, 5, 21, 9, 91, 89, 483, 153, 389, 7, 633, 15527, 21833, 45171, 88331, 150935}}, +{18446, 18, 84648, {1, 3, 5, 5, 11, 31, 49, 139, 295, 289, 1623, 3359, 7551, 11285, 25083, 27699, 91869, 237571}}, +{18447, 18, 84659, {1, 1, 1, 9, 9, 25, 55, 71, 51, 603, 1901, 2729, 6803, 11135, 5427, 37285, 69141, 262073}}, +{18448, 18, 84662, {1, 1, 3, 11, 3, 7, 81, 89, 49, 303, 755, 223, 603, 12525, 26037, 47867, 118871, 238677}}, +{18449, 18, 84683, {1, 3, 3, 11, 1, 53, 55, 15, 341, 151, 245, 1979, 3523, 15151, 25075, 21425, 48689, 125391}}, +{18450, 18, 84697, {1, 3, 3, 7, 15, 21, 73, 247, 215, 339, 1995, 633, 2557, 5625, 28443, 16413, 34615, 260591}}, +{18451, 18, 84698, {1, 3, 5, 1, 1, 59, 21, 247, 403, 15, 1129, 2263, 3361, 10675, 30417, 31285, 69913, 124329}}, +{18452, 18, 84709, {1, 1, 5, 1, 17, 3, 103, 107, 333, 191, 345, 3219, 3845, 5953, 26403, 51115, 71623, 52293}}, +{18453, 18, 84722, {1, 1, 7, 5, 29, 13, 59, 65, 185, 91, 717, 3179, 1237, 1187, 25485, 40119, 6069, 23567}}, +{18454, 18, 84753, {1, 1, 1, 5, 17, 57, 27, 39, 269, 627, 1239, 135, 623, 483, 19229, 51939, 114387, 146431}}, +{18455, 18, 84775, {1, 3, 7, 9, 21, 41, 119, 129, 177, 149, 1527, 3639, 4489, 11635, 23007, 59863, 85199, 87795}}, +{18456, 18, 84789, {1, 3, 5, 9, 17, 25, 57, 237, 129, 855, 199, 1929, 2793, 4277, 4509, 46301, 32905, 102015}}, +{18457, 18, 84885, {1, 1, 7, 1, 15, 23, 3, 131, 475, 347, 1301, 241, 153, 2801, 29271, 1337, 107613, 154105}}, +{18458, 18, 84890, {1, 1, 1, 13, 5, 19, 43, 47, 381, 709, 637, 2565, 7503, 10027, 16873, 23511, 101785, 47987}}, +{18459, 18, 84899, {1, 1, 5, 13, 31, 15, 125, 97, 361, 819, 121, 2723, 3395, 6943, 5279, 55977, 103559, 134177}}, +{18460, 18, 84926, {1, 1, 7, 13, 17, 27, 105, 11, 327, 203, 1355, 1437, 959, 10113, 7405, 43511, 114073, 199463}}, +{18461, 18, 84946, {1, 1, 7, 5, 29, 19, 7, 151, 107, 739, 1021, 1287, 6881, 2741, 3407, 13847, 75669, 116015}}, +{18462, 18, 84958, {1, 1, 1, 5, 5, 17, 99, 67, 179, 319, 149, 4069, 7811, 3055, 24669, 21635, 68057, 72059}}, +{18463, 18, 84976, {1, 3, 1, 11, 3, 3, 103, 45, 431, 159, 1693, 1069, 3403, 6121, 12695, 16565, 29787, 199327}}, +{18464, 18, 84979, {1, 1, 5, 5, 5, 35, 97, 9, 7, 703, 1533, 847, 7693, 16041, 13127, 26829, 68801, 205219}}, +{18465, 18, 85003, {1, 1, 5, 9, 25, 59, 3, 63, 305, 71, 1429, 1567, 2377, 12611, 9267, 62381, 32373, 187735}}, +{18466, 18, 85014, {1, 1, 3, 15, 5, 31, 21, 113, 329, 573, 1975, 1615, 947, 987, 4655, 46803, 100251, 89729}}, +{18467, 18, 85017, {1, 1, 5, 9, 15, 63, 83, 5, 71, 191, 1127, 3529, 7325, 1169, 4255, 6715, 42765, 73231}}, +{18468, 18, 85024, {1, 3, 3, 9, 11, 1, 1, 23, 97, 967, 1465, 1305, 2073, 3143, 31333, 1409, 95321, 182333}}, +{18469, 18, 85029, {1, 3, 5, 13, 21, 53, 47, 105, 75, 721, 239, 3619, 2581, 2063, 21227, 25579, 23729, 20067}}, +{18470, 18, 85036, {1, 3, 5, 13, 1, 55, 55, 115, 391, 539, 869, 3347, 189, 11087, 11533, 18747, 25387, 19205}}, +{18471, 18, 85042, {1, 3, 1, 15, 25, 57, 81, 27, 379, 635, 1697, 2805, 8071, 11407, 14843, 17593, 20819, 42891}}, +{18472, 18, 85054, {1, 3, 5, 11, 1, 59, 51, 187, 11, 211, 1425, 3829, 3193, 15743, 16479, 4205, 108205, 205367}}, +{18473, 18, 85056, {1, 1, 1, 5, 7, 7, 59, 85, 63, 509, 897, 2473, 7345, 111, 4431, 55273, 114037, 232541}}, +{18474, 18, 85061, {1, 1, 5, 9, 29, 7, 25, 41, 401, 843, 115, 163, 6835, 13943, 5223, 31033, 10813, 250471}}, +{18475, 18, 85066, {1, 1, 5, 11, 27, 45, 43, 233, 195, 151, 11, 1539, 4775, 15743, 15507, 26939, 30353, 162929}}, +{18476, 18, 85073, {1, 3, 1, 7, 7, 39, 1, 87, 85, 1019, 1711, 2707, 735, 5093, 8231, 25069, 102861, 45751}}, +{18477, 18, 85096, {1, 3, 7, 1, 19, 49, 55, 249, 255, 809, 1799, 3475, 7697, 5003, 12437, 52313, 96355, 138537}}, +{18478, 18, 85101, {1, 1, 3, 5, 5, 43, 25, 95, 349, 775, 213, 3643, 1355, 7745, 9553, 53367, 123655, 195365}}, +{18479, 18, 85109, {1, 1, 1, 1, 19, 53, 39, 105, 449, 447, 147, 2293, 7817, 1503, 31985, 37193, 51039, 209083}}, +{18480, 18, 85114, {1, 3, 3, 15, 27, 15, 59, 51, 411, 543, 421, 3595, 2091, 7171, 23595, 33509, 37283, 105719}}, +{18481, 18, 85119, {1, 3, 1, 11, 5, 37, 5, 203, 171, 853, 1875, 2735, 4003, 15163, 26193, 36149, 31389, 256631}}, +{18482, 18, 85123, {1, 3, 5, 1, 21, 1, 127, 41, 185, 929, 1757, 2711, 2947, 9709, 18401, 45037, 1371, 242397}}, +{18483, 18, 85149, {1, 1, 1, 1, 13, 43, 51, 187, 487, 759, 1579, 959, 2499, 4781, 27179, 6839, 43869, 36163}}, +{18484, 18, 85185, {1, 3, 1, 15, 5, 3, 101, 25, 181, 107, 1105, 879, 5341, 12215, 21615, 9619, 129591, 108393}}, +{18485, 18, 85228, {1, 1, 7, 1, 11, 39, 55, 101, 43, 935, 1703, 1269, 6751, 13723, 7463, 10055, 112971, 72789}}, +{18486, 18, 85236, {1, 3, 5, 13, 7, 3, 81, 41, 55, 375, 663, 801, 5051, 14583, 30793, 63897, 127255, 174179}}, +{18487, 18, 85281, {1, 3, 1, 7, 19, 31, 53, 29, 313, 57, 1411, 103, 6863, 10673, 4341, 5587, 106059, 222309}}, +{18488, 18, 85282, {1, 3, 7, 3, 1, 33, 89, 199, 91, 557, 715, 2715, 4753, 5987, 30355, 13819, 57443, 112179}}, +{18489, 18, 85293, {1, 3, 5, 7, 13, 27, 55, 11, 495, 29, 1273, 1727, 3397, 2739, 22907, 46203, 16687, 47385}}, +{18490, 18, 85302, {1, 3, 5, 9, 13, 23, 23, 107, 353, 429, 359, 2667, 6137, 7213, 7977, 35903, 118507, 209243}}, +{18491, 18, 85319, {1, 3, 1, 13, 9, 7, 37, 135, 377, 753, 1819, 113, 7379, 2795, 10373, 7131, 17845, 246101}}, +{18492, 18, 85353, {1, 1, 3, 11, 11, 45, 53, 209, 49, 385, 1573, 1129, 2939, 10949, 413, 59193, 15399, 169355}}, +{18493, 18, 85354, {1, 1, 5, 15, 29, 29, 89, 139, 403, 11, 1335, 2601, 3631, 15317, 1707, 3517, 1939, 121997}}, +{18494, 18, 85356, {1, 3, 1, 7, 17, 3, 113, 97, 435, 911, 1743, 1649, 4829, 9995, 2873, 17527, 46931, 86199}}, +{18495, 18, 85389, {1, 1, 7, 1, 13, 19, 83, 51, 49, 671, 1651, 3443, 2279, 5677, 8859, 41945, 110607, 200469}}, +{18496, 18, 85418, {1, 1, 5, 13, 19, 63, 19, 73, 205, 571, 507, 1781, 1489, 5909, 10351, 64607, 67023, 49441}}, +{18497, 18, 85446, {1, 1, 3, 5, 13, 35, 107, 63, 489, 69, 1541, 3761, 17, 9317, 20323, 35401, 61451, 116115}}, +{18498, 18, 85450, {1, 3, 1, 5, 31, 35, 39, 119, 237, 533, 107, 3235, 4929, 15839, 9309, 50131, 110945, 24739}}, +{18499, 18, 85463, {1, 3, 1, 5, 3, 25, 73, 145, 391, 481, 1927, 3071, 4347, 13415, 26723, 51629, 3003, 54575}}, +{18500, 18, 85497, {1, 3, 3, 11, 29, 63, 63, 183, 11, 269, 153, 3379, 5603, 14279, 28579, 4653, 98179, 125693}}, +{18501, 18, 85534, {1, 1, 5, 15, 1, 51, 101, 69, 177, 233, 213, 2389, 4963, 3391, 13419, 41283, 25667, 187239}}, +{18502, 18, 85543, {1, 1, 1, 11, 13, 29, 95, 231, 481, 283, 1323, 521, 4689, 5311, 21949, 31851, 115845, 50433}}, +{18503, 18, 85549, {1, 3, 7, 15, 11, 31, 67, 207, 57, 439, 1561, 2167, 673, 6467, 8189, 31783, 5051, 64097}}, +{18504, 18, 85562, {1, 1, 7, 9, 17, 57, 77, 85, 119, 149, 211, 2727, 4921, 8701, 23121, 36355, 9179, 68003}}, +{18505, 18, 85587, {1, 1, 5, 15, 1, 15, 123, 205, 79, 299, 71, 3413, 7635, 5699, 32393, 10253, 86205, 216015}}, +{18506, 18, 85590, {1, 1, 5, 11, 23, 39, 105, 187, 487, 247, 333, 2423, 5643, 8111, 23549, 50153, 122859, 100361}}, +{18507, 18, 85599, {1, 1, 1, 9, 11, 33, 65, 125, 67, 743, 1331, 1563, 6333, 11375, 15873, 18137, 52765, 224889}}, +{18508, 18, 85630, {1, 3, 5, 9, 15, 17, 81, 165, 3, 609, 635, 2093, 6635, 8647, 25883, 18907, 73333, 80835}}, +{18509, 18, 85660, {1, 1, 1, 11, 1, 1, 25, 115, 205, 941, 1917, 1295, 3659, 821, 11355, 1435, 40289, 115627}}, +{18510, 18, 85669, {1, 3, 1, 9, 13, 23, 35, 105, 441, 777, 1255, 3315, 1157, 8719, 9939, 38931, 120723, 123201}}, +{18511, 18, 85693, {1, 1, 5, 3, 1, 21, 95, 143, 23, 233, 73, 1223, 5619, 8583, 21417, 61971, 74565, 116249}}, +{18512, 18, 85711, {1, 1, 7, 7, 23, 35, 21, 201, 441, 623, 419, 2375, 1189, 15681, 29469, 29437, 124525, 241899}}, +{18513, 18, 85716, {1, 1, 3, 1, 11, 7, 23, 171, 435, 467, 1811, 63, 3705, 9395, 579, 58305, 86165, 67805}}, +{18514, 18, 85773, {1, 3, 1, 3, 13, 11, 107, 243, 163, 79, 815, 1149, 2247, 12411, 30287, 56915, 26939, 85883}}, +{18515, 18, 85801, {1, 3, 3, 1, 5, 23, 105, 63, 35, 57, 1815, 3325, 3727, 3623, 7203, 8301, 28073, 190053}}, +{18516, 18, 85815, {1, 3, 1, 11, 23, 33, 121, 55, 287, 139, 491, 907, 4237, 17, 20055, 63729, 7517, 151597}}, +{18517, 18, 85839, {1, 3, 5, 5, 21, 1, 37, 19, 159, 1013, 27, 2627, 851, 14021, 31311, 5871, 77613, 125311}}, +{18518, 18, 85842, {1, 3, 3, 1, 27, 3, 51, 133, 459, 581, 383, 1351, 6149, 15611, 2631, 20797, 65955, 113665}}, +{18519, 18, 85864, {1, 3, 1, 11, 23, 61, 75, 217, 283, 405, 767, 1151, 7501, 5553, 113, 48331, 49379, 191473}}, +{18520, 18, 85867, {1, 3, 5, 5, 15, 3, 19, 27, 497, 519, 1611, 709, 405, 13329, 27861, 14981, 47197, 173979}}, +{18521, 18, 85903, {1, 1, 7, 7, 25, 19, 99, 219, 349, 713, 1421, 3427, 153, 13319, 22415, 48617, 119637, 20835}}, +{18522, 18, 85917, {1, 1, 1, 3, 13, 37, 43, 9, 317, 961, 1255, 2975, 2775, 12283, 29941, 57495, 77413, 256695}}, +{18523, 18, 85921, {1, 1, 7, 5, 29, 37, 91, 199, 397, 739, 877, 251, 847, 2951, 19497, 57285, 76891, 258711}}, +{18524, 18, 85928, {1, 1, 7, 15, 21, 55, 107, 115, 481, 845, 2015, 481, 3823, 14071, 4037, 39687, 62867, 170891}}, +{18525, 18, 85934, {1, 3, 3, 1, 17, 51, 81, 195, 189, 455, 1343, 1493, 351, 361, 20289, 37423, 7747, 245861}}, +{18526, 18, 85974, {1, 1, 5, 15, 9, 41, 71, 155, 197, 563, 1271, 2227, 2557, 6657, 13565, 8467, 96135, 5903}}, +{18527, 18, 85994, {1, 1, 5, 13, 29, 33, 115, 131, 283, 435, 1327, 1113, 4729, 14125, 23743, 40121, 119955, 237453}}, +{18528, 18, 85999, {1, 1, 1, 1, 13, 21, 109, 91, 105, 749, 1695, 1123, 4349, 9855, 31565, 64001, 7919, 83591}}, +{18529, 18, 86004, {1, 3, 1, 1, 13, 19, 89, 83, 13, 609, 731, 2655, 1123, 13415, 5645, 10003, 69381, 187621}}, +{18530, 18, 86008, {1, 3, 1, 15, 3, 37, 1, 139, 11, 917, 1191, 1381, 6035, 13851, 4565, 5427, 117703, 109965}}, +{18531, 18, 86046, {1, 1, 5, 3, 17, 37, 15, 115, 19, 65, 1807, 3879, 2709, 9819, 11457, 53705, 14821, 156079}}, +{18532, 18, 86067, {1, 1, 7, 13, 17, 29, 105, 77, 127, 457, 1287, 1533, 6879, 4001, 4083, 29523, 81175, 226409}}, +{18533, 18, 86084, {1, 3, 1, 5, 5, 59, 21, 253, 459, 733, 409, 3359, 1913, 8893, 16113, 61063, 6511, 22441}}, +{18534, 18, 86087, {1, 3, 5, 11, 7, 1, 121, 217, 63, 83, 173, 1869, 7931, 655, 21053, 20703, 116853, 131785}}, +{18535, 18, 86093, {1, 1, 7, 7, 5, 13, 41, 57, 1, 17, 649, 233, 2867, 5577, 30553, 7635, 45305, 47979}}, +{18536, 18, 86121, {1, 1, 7, 1, 1, 29, 61, 241, 107, 891, 49, 3433, 5045, 143, 22473, 29243, 82625, 184163}}, +{18537, 18, 86122, {1, 3, 1, 11, 11, 21, 119, 43, 117, 429, 1569, 637, 67, 9475, 31779, 2237, 122037, 245361}}, +{18538, 18, 86127, {1, 1, 7, 1, 31, 61, 9, 179, 467, 153, 1913, 2839, 6255, 12715, 28229, 20189, 3617, 213539}}, +{18539, 18, 86151, {1, 1, 7, 13, 25, 61, 9, 109, 331, 577, 21, 1017, 6521, 5991, 26573, 56881, 58455, 169407}}, +{18540, 18, 86166, {1, 1, 7, 9, 31, 57, 51, 41, 327, 859, 1295, 1577, 1071, 3277, 11685, 62129, 34111, 174639}}, +{18541, 18, 86179, {1, 3, 5, 1, 7, 63, 35, 165, 43, 943, 1545, 3717, 1471, 11579, 29637, 22913, 8867, 12837}}, +{18542, 18, 86188, {1, 1, 3, 1, 23, 7, 19, 151, 359, 347, 1085, 3923, 1039, 5149, 6047, 49811, 33099, 247983}}, +{18543, 18, 86193, {1, 1, 1, 5, 29, 23, 73, 189, 59, 865, 1499, 1953, 1261, 1071, 26761, 26145, 129427, 223219}}, +{18544, 18, 86206, {1, 3, 1, 9, 1, 29, 107, 173, 387, 703, 193, 1965, 6233, 10997, 32697, 31005, 15415, 94345}}, +{18545, 18, 86214, {1, 1, 3, 9, 31, 35, 7, 15, 317, 79, 2045, 1455, 1559, 15087, 287, 46665, 37225, 149017}}, +{18546, 18, 86226, {1, 1, 5, 13, 17, 27, 11, 107, 47, 803, 1487, 3049, 1171, 6237, 9157, 10037, 122349, 236877}}, +{18547, 18, 86242, {1, 1, 7, 9, 21, 35, 53, 139, 165, 73, 1405, 2941, 3553, 11945, 2493, 5743, 63749, 140535}}, +{18548, 18, 86256, {1, 3, 7, 11, 7, 57, 41, 187, 483, 499, 687, 117, 4951, 14709, 17025, 23027, 94863, 228465}}, +{18549, 18, 86259, {1, 3, 7, 7, 27, 29, 85, 117, 201, 637, 823, 1135, 7595, 3323, 23579, 40759, 25087, 995}}, +{18550, 18, 86298, {1, 3, 1, 9, 31, 53, 101, 29, 381, 101, 1939, 1973, 8191, 8155, 13881, 32309, 92907, 239525}}, +{18551, 18, 86300, {1, 1, 5, 7, 3, 35, 15, 207, 1, 47, 325, 559, 3377, 3909, 31225, 28367, 63891, 19129}}, +{18552, 18, 86307, {1, 1, 1, 5, 31, 61, 117, 211, 127, 969, 73, 1295, 7167, 14881, 9965, 28143, 28161, 131867}}, +{18553, 18, 86310, {1, 3, 7, 5, 5, 57, 37, 207, 201, 79, 1151, 3685, 2071, 1751, 5481, 51447, 103437, 154895}}, +{18554, 18, 86319, {1, 3, 5, 13, 9, 5, 57, 27, 131, 211, 1481, 2237, 4227, 6927, 18625, 49773, 55399, 15209}}, +{18555, 18, 86321, {1, 3, 1, 7, 23, 29, 3, 179, 479, 787, 463, 2041, 2581, 6281, 1657, 51433, 93807, 160047}}, +{18556, 18, 86328, {1, 1, 3, 13, 25, 35, 33, 231, 385, 479, 335, 3837, 5517, 13603, 15623, 46737, 42507, 208355}}, +{18557, 18, 86356, {1, 1, 7, 9, 3, 25, 51, 125, 213, 175, 1575, 1755, 1843, 14361, 13155, 22445, 55435, 62793}}, +{18558, 18, 86360, {1, 1, 1, 7, 25, 3, 21, 7, 309, 547, 19, 471, 2679, 16185, 12149, 41437, 47625, 75113}}, +{18559, 18, 86375, {1, 1, 5, 1, 9, 23, 81, 95, 123, 143, 1111, 9, 3501, 11897, 26499, 10009, 48073, 182529}}, +{18560, 18, 86399, {1, 3, 1, 1, 1, 17, 15, 157, 129, 1005, 543, 3917, 3493, 6537, 26997, 33217, 7987, 251635}}, +{18561, 18, 86400, {1, 3, 1, 13, 11, 41, 9, 19, 173, 751, 491, 1645, 5205, 9907, 28503, 61137, 79727, 200851}}, +{18562, 18, 86403, {1, 1, 1, 1, 3, 5, 105, 203, 97, 903, 1507, 2719, 5275, 1023, 29595, 42507, 39893, 151495}}, +{18563, 18, 86430, {1, 1, 1, 11, 31, 53, 51, 65, 145, 671, 489, 109, 803, 8541, 4439, 33893, 98495, 114955}}, +{18564, 18, 86446, {1, 1, 7, 11, 27, 63, 117, 235, 497, 841, 1461, 3757, 1077, 6997, 9611, 47453, 20197, 176939}}, +{18565, 18, 86460, {1, 3, 3, 3, 31, 17, 85, 145, 377, 225, 1033, 3017, 735, 5811, 25503, 25457, 124623, 51713}}, +{18566, 18, 86465, {1, 3, 3, 13, 19, 33, 127, 57, 321, 687, 1651, 3321, 5051, 8511, 19609, 49927, 30499, 102613}}, +{18567, 18, 86486, {1, 1, 5, 13, 7, 17, 17, 147, 381, 137, 1007, 2607, 1071, 8921, 13955, 47223, 130359, 246265}}, +{18568, 18, 86502, {1, 3, 7, 9, 13, 35, 71, 129, 57, 233, 357, 3181, 2841, 3707, 24947, 57777, 115133, 6049}}, +{18569, 18, 86563, {1, 3, 7, 15, 23, 1, 107, 225, 57, 633, 1515, 1631, 4303, 4221, 8281, 59139, 45023, 70219}}, +{18570, 18, 86595, {1, 1, 7, 5, 9, 9, 93, 131, 41, 245, 1261, 459, 4811, 10987, 10421, 63839, 34067, 196353}}, +{18571, 18, 86635, {1, 3, 3, 13, 17, 3, 87, 255, 167, 701, 821, 1965, 1415, 4101, 549, 6347, 92421, 47193}}, +{18572, 18, 86649, {1, 3, 7, 11, 23, 17, 51, 81, 71, 345, 971, 917, 1057, 3627, 20361, 13491, 12855, 234215}}, +{18573, 18, 86661, {1, 1, 1, 13, 17, 9, 25, 155, 463, 851, 243, 3887, 2445, 7459, 19915, 21813, 86969, 85891}}, +{18574, 18, 86674, {1, 1, 7, 1, 9, 15, 57, 201, 193, 169, 351, 1355, 1089, 4705, 15153, 51359, 49907, 66007}}, +{18575, 18, 86689, {1, 3, 1, 9, 19, 13, 69, 83, 39, 667, 1549, 1503, 7167, 8657, 17269, 59357, 80091, 194007}}, +{18576, 18, 86721, {1, 3, 5, 5, 17, 37, 125, 117, 355, 685, 637, 3159, 4783, 3159, 14953, 12731, 126759, 89149}}, +{18577, 18, 86734, {1, 3, 3, 9, 15, 53, 7, 41, 473, 857, 511, 3741, 6837, 6167, 26351, 9885, 104819, 48221}}, +{18578, 18, 86741, {1, 3, 7, 15, 21, 21, 21, 101, 465, 223, 13, 1773, 2763, 8621, 23591, 12633, 82143, 134899}}, +{18579, 18, 86742, {1, 3, 1, 1, 29, 25, 67, 19, 349, 503, 655, 3567, 97, 6967, 18253, 42755, 33041, 250279}}, +{18580, 18, 86784, {1, 1, 7, 9, 17, 1, 7, 165, 255, 613, 579, 127, 7567, 13181, 6255, 1785, 21527, 113815}}, +{18581, 18, 86799, {1, 3, 1, 5, 27, 33, 61, 235, 37, 135, 1515, 3611, 1825, 9627, 18805, 37065, 126107, 23223}}, +{18582, 18, 86808, {1, 3, 7, 5, 23, 11, 29, 121, 129, 311, 429, 1653, 5789, 7693, 18775, 18189, 97203, 213501}}, +{18583, 18, 86837, {1, 3, 7, 3, 29, 61, 87, 197, 43, 509, 5, 3275, 345, 7885, 4381, 22059, 1395, 40125}}, +{18584, 18, 86869, {1, 3, 5, 1, 1, 59, 69, 125, 297, 983, 641, 2665, 7045, 8591, 16581, 58657, 119189, 256579}}, +{18585, 18, 86900, {1, 3, 7, 7, 7, 53, 65, 181, 149, 987, 1377, 4045, 971, 9827, 17727, 59357, 90975, 27395}}, +{18586, 18, 86949, {1, 1, 7, 7, 1, 51, 109, 165, 361, 515, 739, 3709, 6431, 113, 21401, 41743, 53071, 134205}}, +{18587, 18, 86993, {1, 3, 1, 13, 5, 51, 107, 99, 135, 163, 1705, 1683, 6221, 1377, 2211, 13379, 22801, 208753}}, +{18588, 18, 86999, {1, 3, 5, 11, 11, 39, 49, 45, 503, 549, 821, 4077, 885, 13721, 29673, 28435, 6235, 212071}}, +{18589, 18, 87030, {1, 3, 3, 11, 15, 25, 17, 67, 125, 7, 1163, 973, 5325, 12707, 12763, 9481, 21363, 195897}}, +{18590, 18, 87041, {1, 1, 7, 9, 17, 19, 15, 13, 107, 919, 461, 343, 1101, 8195, 29293, 61643, 64995, 230469}}, +{18591, 18, 87044, {1, 3, 5, 1, 9, 25, 39, 65, 27, 461, 669, 2841, 7973, 11565, 9531, 52235, 6741, 215513}}, +{18592, 18, 87084, {1, 3, 3, 1, 7, 57, 101, 199, 37, 79, 2033, 1723, 6877, 2733, 26445, 62625, 21671, 238431}}, +{18593, 18, 87116, {1, 1, 1, 9, 27, 31, 125, 199, 331, 611, 523, 407, 747, 9499, 4685, 17805, 43717, 253233}}, +{18594, 18, 87138, {1, 1, 3, 7, 29, 7, 7, 153, 339, 337, 701, 2639, 6311, 6375, 26023, 27693, 59733, 260405}}, +{18595, 18, 87162, {1, 1, 7, 7, 15, 27, 23, 49, 181, 433, 485, 2915, 6021, 9095, 15951, 47257, 104513, 208089}}, +{18596, 18, 87188, {1, 1, 5, 7, 19, 19, 125, 153, 109, 829, 1967, 2567, 7157, 6001, 10151, 55323, 92405, 82549}}, +{18597, 18, 87211, {1, 1, 3, 11, 13, 17, 85, 215, 265, 875, 311, 3773, 8059, 2115, 19259, 63999, 77411, 220267}}, +{18598, 18, 87234, {1, 3, 1, 15, 15, 35, 81, 213, 411, 435, 105, 1487, 1991, 14539, 8175, 2115, 47259, 45893}}, +{18599, 18, 87245, {1, 3, 1, 11, 9, 47, 27, 115, 449, 521, 321, 2463, 1355, 5785, 11269, 45337, 29049, 91675}}, +{18600, 18, 87246, {1, 3, 1, 13, 21, 53, 49, 83, 373, 519, 757, 1241, 577, 14443, 449, 44773, 116673, 155209}}, +{18601, 18, 87260, {1, 3, 3, 1, 29, 63, 97, 145, 371, 585, 1809, 3997, 249, 283, 28369, 27325, 61673, 12637}}, +{18602, 18, 87270, {1, 3, 5, 9, 11, 55, 77, 89, 285, 297, 861, 2791, 3245, 15093, 32489, 40477, 97603, 35347}}, +{18603, 18, 87284, {1, 1, 1, 3, 27, 33, 115, 209, 169, 893, 393, 1457, 6069, 12511, 20423, 11385, 86711, 197555}}, +{18604, 18, 87293, {1, 3, 5, 15, 21, 25, 87, 159, 477, 177, 991, 495, 29, 9347, 9721, 4071, 30145, 214155}}, +{18605, 18, 87296, {1, 1, 5, 3, 11, 45, 53, 251, 177, 651, 549, 3377, 3247, 8761, 20339, 27743, 103387, 159591}}, +{18606, 18, 87299, {1, 3, 7, 11, 17, 27, 43, 179, 507, 553, 261, 3939, 6133, 6347, 12987, 46071, 42551, 99225}}, +{18607, 18, 87305, {1, 3, 3, 11, 3, 33, 85, 51, 277, 117, 1295, 2435, 1467, 13787, 2209, 52673, 53515, 157625}}, +{18608, 18, 87308, {1, 3, 3, 3, 9, 15, 121, 229, 227, 795, 541, 3727, 4333, 2251, 27833, 43567, 82505, 230427}}, +{18609, 18, 87313, {1, 1, 5, 13, 29, 19, 119, 63, 207, 945, 761, 2601, 1391, 8939, 11683, 52433, 63301, 82501}}, +{18610, 18, 87323, {1, 3, 7, 1, 3, 57, 127, 115, 209, 31, 1631, 347, 3937, 4015, 13313, 49507, 15103, 237071}}, +{18611, 18, 87332, {1, 3, 1, 13, 3, 25, 85, 151, 115, 385, 303, 2453, 2417, 8051, 1447, 59517, 3711, 160345}}, +{18612, 18, 87361, {1, 3, 1, 13, 1, 23, 49, 75, 117, 295, 1737, 2091, 6229, 3157, 32737, 13751, 101667, 96261}}, +{18613, 18, 87376, {1, 3, 3, 5, 27, 19, 103, 201, 65, 757, 1847, 239, 2185, 15139, 8883, 17737, 9207, 147663}}, +{18614, 18, 87392, {1, 3, 1, 9, 3, 39, 51, 1, 419, 929, 1049, 2891, 2585, 2759, 27587, 55711, 15461, 46851}}, +{18615, 18, 87419, {1, 1, 5, 3, 23, 23, 23, 101, 249, 997, 1889, 2293, 5693, 939, 29619, 2775, 49293, 168895}}, +{18616, 18, 87432, {1, 3, 1, 15, 9, 63, 17, 97, 385, 517, 1737, 713, 157, 2597, 20889, 35209, 47525, 14389}}, +{18617, 18, 87435, {1, 3, 1, 1, 7, 27, 9, 147, 349, 493, 341, 2699, 7743, 4283, 24691, 11881, 78619, 153899}}, +{18618, 18, 87445, {1, 3, 1, 9, 15, 25, 103, 177, 485, 355, 1319, 767, 6675, 3425, 7187, 53767, 92023, 151523}}, +{18619, 18, 87466, {1, 1, 3, 3, 15, 35, 25, 177, 295, 5, 661, 3651, 2597, 16229, 1343, 54941, 72047, 169155}}, +{18620, 18, 87491, {1, 1, 1, 1, 19, 29, 63, 229, 79, 551, 1401, 2851, 6935, 12485, 9243, 21671, 54209, 105347}}, +{18621, 18, 87503, {1, 1, 3, 1, 13, 33, 53, 125, 261, 623, 65, 3863, 1899, 2453, 16483, 48655, 50771, 248555}}, +{18622, 18, 87558, {1, 3, 5, 7, 25, 15, 107, 149, 485, 247, 1977, 3125, 4663, 4925, 15749, 39429, 52315, 30545}}, +{18623, 18, 87570, {1, 1, 7, 13, 23, 13, 127, 111, 9, 17, 1887, 1341, 3017, 14333, 6003, 35113, 14935, 17593}}, +{18624, 18, 87581, {1, 1, 1, 15, 23, 17, 111, 43, 71, 549, 1369, 1711, 3903, 13605, 14573, 18973, 28157, 128421}}, +{18625, 18, 87603, {1, 1, 7, 15, 27, 23, 5, 99, 87, 865, 1979, 3287, 3977, 14989, 17439, 14593, 92711, 211259}}, +{18626, 18, 87615, {1, 3, 3, 15, 5, 19, 3, 231, 127, 863, 1537, 369, 7915, 10281, 13925, 12931, 3905, 178609}}, +{18627, 18, 87623, {1, 1, 3, 15, 13, 5, 17, 217, 383, 251, 1701, 3379, 8157, 4991, 8563, 24611, 66081, 205775}}, +{18628, 18, 87635, {1, 3, 7, 11, 9, 25, 73, 131, 217, 601, 843, 807, 4509, 16209, 29581, 50869, 56595, 14283}}, +{18629, 18, 87647, {1, 3, 5, 9, 5, 59, 57, 153, 359, 775, 859, 1897, 6415, 7389, 10851, 64247, 21627, 145017}}, +{18630, 18, 87651, {1, 3, 7, 1, 27, 11, 117, 179, 175, 343, 687, 2775, 3655, 11655, 2641, 355, 83447, 237799}}, +{18631, 18, 87657, {1, 1, 7, 11, 17, 59, 91, 21, 403, 797, 1839, 525, 3279, 6575, 30083, 12503, 83057, 109465}}, +{18632, 18, 87665, {1, 3, 7, 1, 25, 27, 41, 223, 169, 679, 699, 3287, 6305, 6459, 23145, 45519, 127487, 183563}}, +{18633, 18, 87694, {1, 3, 3, 1, 9, 45, 105, 57, 185, 97, 899, 3113, 7081, 7057, 14559, 53537, 105623, 155399}}, +{18634, 18, 87701, {1, 3, 7, 5, 17, 35, 89, 13, 87, 587, 451, 4079, 1005, 4311, 15861, 49977, 59653, 12107}}, +{18635, 18, 87705, {1, 3, 7, 3, 19, 55, 43, 77, 317, 369, 71, 937, 1905, 5005, 17715, 4005, 55445, 25159}}, +{18636, 18, 87722, {1, 1, 7, 15, 15, 51, 87, 37, 59, 755, 763, 455, 711, 13399, 30999, 61269, 66037, 202793}}, +{18637, 18, 87739, {1, 1, 3, 5, 11, 57, 111, 135, 325, 553, 273, 1533, 3431, 6427, 24771, 42143, 56711, 220873}}, +{18638, 18, 87750, {1, 1, 1, 13, 3, 49, 53, 81, 491, 177, 1543, 1847, 7907, 7817, 15417, 9897, 101597, 160195}}, +{18639, 18, 87790, {1, 3, 1, 15, 19, 15, 91, 123, 365, 113, 129, 3371, 5789, 13553, 6887, 62317, 84269, 44777}}, +{18640, 18, 87795, {1, 3, 7, 13, 15, 63, 43, 175, 449, 437, 597, 1371, 5101, 13797, 28025, 15809, 7645, 21169}}, +{18641, 18, 87797, {1, 1, 7, 13, 23, 63, 105, 69, 219, 153, 1539, 1537, 6899, 9363, 27459, 34551, 62563, 236679}}, +{18642, 18, 87816, {1, 3, 7, 3, 9, 33, 3, 101, 135, 571, 127, 3881, 7017, 13403, 13817, 55167, 8645, 471}}, +{18643, 18, 87884, {1, 3, 3, 13, 7, 53, 29, 89, 473, 135, 639, 3137, 93, 965, 4867, 58265, 114963, 175295}}, +{18644, 18, 87917, {1, 3, 1, 1, 9, 11, 45, 123, 129, 441, 1601, 39, 4657, 3701, 29581, 16045, 57173, 75195}}, +{18645, 18, 87930, {1, 1, 3, 11, 7, 21, 9, 73, 25, 891, 1625, 3019, 223, 14351, 30621, 3075, 79051, 178127}}, +{18646, 18, 87942, {1, 1, 7, 3, 7, 43, 69, 209, 9, 857, 1539, 2629, 5277, 14583, 16443, 28275, 54143, 206479}}, +{18647, 18, 87953, {1, 3, 5, 9, 27, 15, 109, 237, 323, 103, 837, 597, 3609, 6249, 795, 37191, 20997, 142079}}, +{18648, 18, 87954, {1, 1, 3, 1, 27, 33, 123, 191, 55, 531, 1707, 2633, 6717, 9645, 21377, 51593, 9017, 178185}}, +{18649, 18, 87984, {1, 1, 5, 15, 3, 3, 67, 225, 229, 161, 2039, 1499, 873, 8803, 29901, 58809, 35625, 207797}}, +{18650, 18, 87989, {1, 3, 3, 7, 3, 47, 99, 237, 221, 31, 1043, 1081, 837, 1617, 17323, 43879, 55615, 238537}}, +{18651, 18, 88008, {1, 3, 7, 1, 17, 37, 45, 211, 245, 657, 221, 1067, 1683, 16127, 585, 9067, 25935, 162469}}, +{18652, 18, 88016, {1, 1, 5, 9, 23, 27, 5, 237, 137, 227, 129, 279, 4171, 5963, 349, 12387, 40701, 177255}}, +{18653, 18, 88038, {1, 3, 7, 15, 17, 11, 95, 69, 49, 901, 509, 2541, 3001, 15501, 24235, 39863, 95381, 260793}}, +{18654, 18, 88042, {1, 3, 3, 3, 29, 3, 125, 3, 423, 609, 1401, 2337, 1093, 11419, 29735, 9033, 115977, 210201}}, +{18655, 18, 88044, {1, 1, 1, 9, 11, 21, 71, 33, 399, 1005, 1691, 1501, 2585, 7361, 21527, 7535, 87091, 192319}}, +{18656, 18, 88049, {1, 1, 1, 11, 5, 49, 65, 115, 239, 255, 381, 2803, 3447, 5775, 18243, 16545, 108901, 81355}}, +{18657, 18, 88083, {1, 3, 7, 15, 31, 5, 81, 213, 281, 903, 189, 1807, 3551, 4423, 3591, 27449, 71659, 255357}}, +{18658, 18, 88119, {1, 1, 1, 15, 11, 1, 25, 213, 259, 215, 435, 3531, 4889, 9509, 21391, 21589, 89871, 85895}}, +{18659, 18, 88134, {1, 3, 3, 9, 29, 29, 37, 127, 419, 631, 1793, 1547, 1463, 13265, 17233, 24627, 3687, 174179}}, +{18660, 18, 88138, {1, 1, 1, 7, 27, 61, 105, 135, 439, 161, 721, 2779, 6731, 14575, 4565, 25869, 38981, 191683}}, +{18661, 18, 88143, {1, 1, 7, 13, 21, 41, 43, 5, 313, 407, 505, 231, 5023, 8971, 15825, 38461, 38797, 136027}}, +{18662, 18, 88191, {1, 3, 7, 3, 7, 59, 11, 255, 327, 843, 1179, 889, 4505, 10891, 7901, 14485, 72297, 255985}}, +{18663, 18, 88216, {1, 1, 5, 3, 9, 37, 89, 59, 413, 51, 515, 4009, 6501, 8443, 14381, 60917, 43567, 234431}}, +{18664, 18, 88231, {1, 1, 3, 9, 9, 57, 65, 205, 367, 935, 1975, 2561, 225, 12529, 4721, 56659, 87901, 219641}}, +{18665, 18, 88232, {1, 3, 7, 15, 23, 55, 61, 15, 89, 267, 1245, 2703, 7471, 10499, 19, 19357, 72413, 199289}}, +{18666, 18, 88297, {1, 1, 1, 13, 1, 29, 65, 11, 353, 509, 1831, 2181, 5265, 14761, 913, 17109, 113613, 37143}}, +{18667, 18, 88300, {1, 1, 7, 5, 17, 37, 97, 249, 169, 223, 475, 2091, 3101, 8541, 325, 42359, 16121, 151739}}, +{18668, 18, 88308, {1, 1, 3, 13, 1, 45, 13, 209, 395, 215, 15, 2287, 5365, 9887, 29799, 51957, 97483, 109467}}, +{18669, 18, 88317, {1, 3, 7, 1, 9, 35, 91, 51, 387, 833, 783, 2483, 3743, 6155, 5881, 3047, 86191, 151867}}, +{18670, 18, 88344, {1, 1, 1, 7, 15, 25, 13, 3, 119, 333, 761, 3459, 2555, 15737, 12945, 15225, 45487, 78235}}, +{18671, 18, 88350, {1, 3, 1, 3, 13, 55, 111, 45, 121, 593, 633, 2705, 1653, 13275, 13533, 3559, 100573, 124363}}, +{18672, 18, 88371, {1, 1, 3, 1, 29, 49, 65, 69, 133, 667, 653, 2559, 6335, 8019, 9251, 5415, 90125, 197413}}, +{18673, 18, 88469, {1, 1, 1, 7, 23, 53, 99, 149, 39, 453, 129, 185, 1143, 12799, 23339, 41293, 94023, 105581}}, +{18674, 18, 88483, {1, 3, 3, 13, 5, 3, 5, 215, 425, 455, 421, 3815, 5983, 3851, 19569, 17363, 6411, 60037}}, +{18675, 18, 88485, {1, 3, 7, 1, 29, 7, 63, 207, 299, 17, 1915, 2041, 8129, 661, 32481, 55475, 72027, 239683}}, +{18676, 18, 88518, {1, 1, 5, 13, 29, 11, 39, 177, 177, 479, 1291, 3931, 4353, 327, 7827, 9529, 6967, 6469}}, +{18677, 18, 88586, {1, 1, 5, 3, 25, 39, 121, 15, 7, 715, 583, 3997, 1373, 7747, 1777, 7269, 105333, 201511}}, +{18678, 18, 88605, {1, 3, 3, 9, 11, 7, 81, 109, 129, 359, 1281, 1163, 4895, 10303, 17801, 43461, 120271, 173027}}, +{18679, 18, 88621, {1, 3, 5, 1, 23, 59, 123, 75, 505, 925, 637, 1713, 995, 14031, 13711, 62569, 90553, 242345}}, +{18680, 18, 88651, {1, 3, 3, 15, 19, 11, 39, 203, 229, 619, 735, 1367, 4963, 5263, 30229, 17847, 9623, 3277}}, +{18681, 18, 88656, {1, 1, 7, 13, 5, 27, 23, 223, 377, 335, 1821, 2481, 4111, 10373, 18423, 7237, 75225, 223433}}, +{18682, 18, 88665, {1, 3, 7, 1, 21, 19, 71, 107, 19, 703, 945, 3831, 1099, 6267, 17489, 27665, 8861, 127499}}, +{18683, 18, 88668, {1, 3, 5, 1, 19, 49, 117, 181, 245, 939, 1279, 3127, 4427, 3061, 23399, 64805, 43077, 100789}}, +{18684, 18, 88712, {1, 1, 3, 3, 31, 55, 53, 205, 97, 645, 215, 2617, 7419, 7159, 27373, 62341, 58121, 248677}}, +{18685, 18, 88717, {1, 1, 7, 5, 15, 41, 99, 75, 201, 187, 197, 3773, 3097, 6803, 5307, 31375, 26743, 142723}}, +{18686, 18, 88751, {1, 3, 5, 11, 23, 61, 127, 15, 89, 245, 1345, 1305, 5937, 15917, 23867, 50319, 91921, 248663}}, +{18687, 18, 88754, {1, 1, 3, 9, 27, 7, 1, 75, 181, 155, 1947, 577, 2975, 8855, 5295, 43403, 112497, 100679}}, +{18688, 18, 88756, {1, 1, 1, 11, 29, 61, 35, 241, 207, 73, 1747, 1797, 3665, 14275, 25359, 28685, 79367, 81819}}, +{18689, 18, 88785, {1, 3, 5, 9, 11, 1, 37, 79, 431, 157, 1979, 159, 3087, 1731, 26141, 31411, 56457, 94293}}, +{18690, 18, 88801, {1, 3, 7, 1, 17, 35, 107, 243, 279, 79, 227, 1275, 761, 11485, 22181, 16415, 68801, 4577}}, +{18691, 18, 88807, {1, 3, 1, 9, 21, 43, 115, 131, 129, 123, 1677, 1875, 7355, 15927, 845, 24101, 48985, 39703}}, +{18692, 18, 88826, {1, 1, 7, 3, 17, 25, 105, 189, 317, 109, 1629, 3103, 615, 1047, 621, 62743, 43631, 9811}}, +{18693, 18, 88848, {1, 3, 1, 3, 3, 45, 49, 73, 383, 761, 685, 3211, 3855, 16307, 30469, 1393, 52535, 165503}}, +{18694, 18, 88854, {1, 3, 5, 15, 1, 41, 89, 105, 213, 33, 1477, 711, 4823, 503, 12533, 56781, 42825, 223399}}, +{18695, 18, 88864, {1, 3, 5, 9, 17, 45, 63, 113, 359, 927, 1467, 2811, 4275, 5193, 6023, 32689, 87747, 234697}}, +{18696, 18, 88879, {1, 1, 3, 1, 21, 49, 73, 157, 97, 915, 1689, 3289, 7515, 10759, 32253, 63175, 66175, 125813}}, +{18697, 18, 88939, {1, 1, 1, 5, 19, 1, 127, 229, 453, 617, 511, 1515, 3815, 3125, 26851, 31635, 35389, 237483}}, +{18698, 18, 88947, {1, 1, 1, 13, 27, 61, 75, 23, 289, 133, 975, 3217, 3777, 12095, 15235, 33845, 125503, 88417}}, +{18699, 18, 88987, {1, 1, 3, 13, 27, 49, 29, 115, 221, 995, 1305, 2717, 2243, 13391, 20841, 863, 63195, 46829}}, +{18700, 18, 88990, {1, 3, 1, 11, 31, 49, 43, 163, 503, 123, 657, 1285, 3695, 8401, 17087, 48289, 3947, 41495}}, +{18701, 18, 88996, {1, 3, 7, 9, 21, 17, 125, 75, 395, 979, 781, 2501, 6511, 4619, 28943, 18295, 87547, 196289}}, +{18702, 18, 89008, {1, 3, 3, 5, 3, 39, 107, 199, 7, 331, 77, 511, 5787, 3155, 29605, 44633, 51041, 89141}}, +{18703, 18, 89011, {1, 1, 3, 7, 11, 37, 79, 69, 181, 623, 299, 2321, 4371, 7449, 3137, 25753, 116673, 30441}}, +{18704, 18, 89043, {1, 1, 5, 9, 11, 13, 49, 207, 179, 671, 1469, 1005, 6887, 12203, 9365, 62455, 36283, 42053}}, +{18705, 18, 89045, {1, 3, 1, 1, 7, 31, 115, 79, 435, 101, 1525, 3695, 3229, 11401, 23959, 62055, 37725, 219753}}, +{18706, 18, 89050, {1, 3, 3, 7, 25, 49, 123, 161, 275, 291, 255, 2247, 4271, 10771, 2449, 26343, 61169, 30691}}, +{18707, 18, 89097, {1, 1, 7, 1, 15, 3, 11, 15, 125, 1021, 1817, 417, 2721, 13985, 19039, 451, 32559, 199407}}, +{18708, 18, 89100, {1, 1, 5, 15, 11, 25, 23, 101, 427, 431, 1353, 1957, 3529, 513, 11937, 14469, 89539, 242015}}, +{18709, 18, 89106, {1, 1, 5, 13, 27, 5, 107, 29, 469, 3, 1427, 1949, 7007, 16339, 3375, 63545, 100739, 229487}}, +{18710, 18, 89134, {1, 3, 5, 13, 15, 17, 59, 213, 417, 557, 11, 811, 5041, 4133, 25735, 46807, 65669, 148081}}, +{18711, 18, 89178, {1, 1, 5, 13, 9, 47, 35, 173, 277, 805, 1249, 3707, 1079, 2833, 29383, 58995, 21005, 181567}}, +{18712, 18, 89189, {1, 3, 5, 1, 5, 25, 125, 45, 157, 291, 1329, 3317, 2311, 9919, 31001, 65127, 19451, 117621}}, +{18713, 18, 89202, {1, 1, 5, 9, 31, 21, 9, 193, 23, 879, 699, 1135, 7151, 8635, 20711, 45207, 67047, 4397}}, +{18714, 18, 89211, {1, 3, 1, 11, 11, 49, 119, 129, 409, 491, 463, 833, 3661, 607, 25961, 6061, 12747, 160337}}, +{18715, 18, 89224, {1, 3, 1, 15, 31, 35, 93, 95, 239, 695, 1113, 2371, 2625, 10371, 10781, 46209, 67051, 109923}}, +{18716, 18, 89241, {1, 3, 5, 9, 5, 61, 25, 19, 99, 159, 55, 43, 3679, 1023, 17951, 44841, 101653, 195955}}, +{18717, 18, 89251, {1, 1, 3, 11, 19, 45, 99, 47, 407, 115, 353, 3537, 7147, 5837, 27309, 44539, 30227, 93183}}, +{18718, 18, 89254, {1, 1, 7, 15, 13, 59, 83, 215, 79, 865, 269, 2999, 2415, 10631, 23655, 51583, 46105, 43965}}, +{18719, 18, 89258, {1, 3, 7, 5, 17, 1, 7, 119, 501, 25, 1097, 3639, 7017, 381, 4793, 37263, 60431, 77323}}, +{18720, 18, 89295, {1, 3, 7, 13, 1, 37, 99, 103, 459, 853, 5, 3093, 6167, 14497, 7003, 36979, 71919, 64823}}, +{18721, 18, 89328, {1, 3, 7, 5, 23, 7, 37, 255, 297, 115, 113, 579, 4561, 5245, 11173, 28645, 23989, 240777}}, +{18722, 18, 89357, {1, 3, 5, 9, 29, 47, 43, 145, 481, 251, 737, 2531, 2425, 529, 3953, 13229, 35933, 187855}}, +{18723, 18, 89403, {1, 3, 1, 15, 15, 15, 29, 73, 405, 91, 1399, 3599, 1517, 11075, 11265, 22817, 26619, 1183}}, +{18724, 18, 89420, {1, 1, 5, 15, 21, 47, 93, 33, 47, 527, 877, 3453, 3867, 4007, 32503, 11789, 68333, 187419}}, +{18725, 18, 89426, {1, 1, 3, 13, 5, 3, 99, 21, 17, 779, 541, 3919, 1339, 13507, 28965, 61145, 50421, 192319}}, +{18726, 18, 89465, {1, 1, 3, 7, 31, 63, 17, 9, 331, 681, 515, 1067, 351, 2471, 31271, 36015, 72911, 32383}}, +{18727, 18, 89471, {1, 1, 3, 7, 1, 55, 97, 211, 409, 499, 1207, 2405, 2291, 1373, 1263, 65303, 38655, 159965}}, +{18728, 18, 89475, {1, 1, 1, 5, 23, 11, 21, 23, 35, 19, 1699, 2325, 6117, 14971, 32327, 31369, 28061, 112819}}, +{18729, 18, 89547, {1, 3, 3, 13, 29, 63, 19, 201, 173, 395, 1437, 369, 7045, 14347, 5393, 11311, 28415, 161019}}, +{18730, 18, 89549, {1, 3, 1, 5, 31, 15, 101, 13, 97, 865, 1063, 2129, 811, 3337, 7585, 54803, 122099, 149531}}, +{18731, 18, 89558, {1, 3, 3, 13, 19, 5, 47, 13, 497, 683, 1197, 3509, 4375, 3353, 31847, 283, 95281, 7975}}, +{18732, 18, 89564, {1, 1, 7, 5, 25, 19, 59, 105, 167, 775, 581, 2679, 3003, 9345, 20209, 31487, 25357, 226341}}, +{18733, 18, 89611, {1, 1, 5, 5, 31, 61, 13, 77, 189, 141, 1157, 609, 7245, 15303, 32743, 50229, 67391, 173977}}, +{18734, 18, 89616, {1, 3, 7, 13, 17, 11, 49, 135, 475, 303, 1373, 1437, 6119, 1729, 21347, 31643, 86523, 41223}}, +{18735, 18, 89626, {1, 3, 7, 13, 3, 19, 103, 53, 209, 281, 77, 2009, 7911, 8549, 17655, 33165, 9685, 2289}}, +{18736, 18, 89650, {1, 3, 3, 9, 5, 31, 71, 113, 93, 255, 165, 3465, 6769, 13047, 20701, 33669, 22537, 175209}}, +{18737, 18, 89691, {1, 3, 1, 1, 15, 59, 89, 227, 275, 451, 869, 1865, 1327, 3895, 5459, 47997, 34287, 95343}}, +{18738, 18, 89718, {1, 3, 7, 13, 27, 1, 25, 99, 475, 421, 693, 1955, 4017, 16037, 29915, 52415, 99913, 59151}}, +{18739, 18, 89764, {1, 3, 5, 1, 9, 61, 107, 149, 465, 1003, 891, 2387, 407, 5851, 6287, 56401, 109693, 72035}}, +{18740, 18, 89776, {1, 1, 1, 11, 25, 53, 101, 125, 35, 949, 1019, 3087, 2785, 11271, 25623, 57313, 115683, 101923}}, +{18741, 18, 89785, {1, 3, 5, 13, 19, 13, 97, 147, 149, 483, 1727, 1771, 2089, 8661, 28223, 30437, 42565, 13261}}, +{18742, 18, 89813, {1, 3, 3, 11, 17, 9, 13, 13, 419, 531, 1617, 1459, 411, 9953, 25581, 30305, 120721, 81113}}, +{18743, 18, 89817, {1, 3, 3, 9, 9, 9, 83, 35, 367, 981, 911, 1915, 4937, 16187, 20441, 30433, 107605, 119939}}, +{18744, 18, 89861, {1, 3, 7, 11, 11, 47, 31, 7, 141, 905, 1753, 3069, 47, 7347, 10517, 19515, 126827, 68669}}, +{18745, 18, 89876, {1, 3, 3, 9, 17, 33, 121, 159, 265, 389, 261, 2479, 7705, 6453, 31963, 14123, 100201, 77235}}, +{18746, 18, 89889, {1, 1, 5, 5, 13, 63, 3, 1, 107, 383, 633, 2183, 1437, 14525, 29315, 3277, 2153, 204061}}, +{18747, 18, 89904, {1, 3, 3, 3, 17, 9, 47, 173, 17, 413, 451, 1127, 1807, 5265, 32543, 8215, 123601, 138777}}, +{18748, 18, 89939, {1, 3, 1, 1, 7, 57, 93, 29, 101, 955, 1445, 4017, 2853, 3551, 22173, 40355, 34687, 133063}}, +{18749, 18, 89948, {1, 1, 5, 11, 19, 15, 95, 177, 49, 971, 15, 2293, 2627, 7841, 2103, 64331, 60481, 182431}}, +{18750, 18, 89952, {1, 3, 1, 15, 25, 57, 47, 85, 485, 11, 1669, 995, 6939, 4125, 19513, 62397, 62645, 82213}}, +{18751, 18, 89964, {1, 1, 1, 11, 1, 37, 101, 157, 17, 261, 997, 817, 2195, 4141, 10505, 60685, 98165, 167391}}, +{18752, 18, 89969, {1, 1, 1, 1, 31, 9, 103, 97, 161, 13, 1043, 307, 7321, 671, 12417, 58661, 23031, 207833}}, +{18753, 18, 89979, {1, 1, 7, 9, 15, 49, 69, 117, 93, 95, 507, 393, 6169, 2111, 27179, 47217, 93699, 67315}}, +{18754, 18, 90009, {1, 3, 7, 1, 23, 41, 115, 125, 343, 615, 397, 1199, 3041, 11019, 1071, 51069, 75757, 245765}}, +{18755, 18, 90022, {1, 1, 1, 13, 7, 15, 111, 239, 29, 419, 203, 2395, 3995, 13, 32341, 17471, 53259, 3317}}, +{18756, 18, 90031, {1, 3, 1, 11, 29, 27, 15, 217, 17, 163, 1847, 3549, 4911, 4539, 4927, 57157, 44893, 41669}}, +{18757, 18, 90043, {1, 1, 7, 7, 25, 15, 101, 149, 433, 717, 1827, 3837, 4565, 14521, 28857, 27775, 117429, 136131}}, +{18758, 18, 90045, {1, 1, 1, 3, 25, 35, 85, 3, 381, 253, 375, 3967, 3101, 12727, 31739, 48885, 35821, 92229}}, +{18759, 18, 90068, {1, 3, 3, 7, 29, 5, 51, 157, 67, 467, 1957, 3453, 1353, 4839, 25379, 42731, 109385, 52479}}, +{18760, 18, 90071, {1, 3, 7, 13, 3, 55, 61, 73, 257, 313, 89, 2557, 7467, 2223, 2951, 49265, 126605, 72007}}, +{18761, 18, 90082, {1, 3, 7, 5, 5, 11, 83, 3, 347, 63, 479, 529, 5059, 7029, 20523, 58387, 44891, 168921}}, +{18762, 18, 90087, {1, 3, 1, 11, 3, 51, 99, 5, 161, 279, 1509, 3659, 3107, 13925, 5117, 46153, 48731, 69767}}, +{18763, 18, 90117, {1, 1, 5, 5, 3, 53, 49, 243, 383, 401, 1205, 975, 3305, 12769, 25533, 28733, 115161, 160885}}, +{18764, 18, 90127, {1, 1, 1, 7, 15, 5, 43, 143, 493, 527, 1625, 2115, 3929, 12425, 16127, 25045, 55973, 202359}}, +{18765, 18, 90163, {1, 3, 7, 7, 11, 9, 69, 79, 417, 941, 473, 1655, 5763, 9889, 22443, 12153, 103489, 74737}}, +{18766, 18, 90166, {1, 1, 7, 9, 27, 31, 97, 253, 199, 99, 1955, 1481, 2509, 11923, 6337, 15899, 122515, 244721}}, +{18767, 18, 90177, {1, 1, 5, 13, 29, 15, 35, 177, 261, 613, 1279, 2837, 2945, 4501, 22865, 36893, 51979, 245569}}, +{18768, 18, 90211, {1, 1, 5, 9, 21, 5, 85, 5, 303, 165, 681, 3965, 2575, 1493, 10367, 55845, 92139, 92539}}, +{18769, 18, 90218, {1, 3, 5, 1, 23, 49, 49, 161, 481, 181, 1991, 1845, 4541, 14187, 10893, 64931, 79943, 57907}}, +{18770, 18, 90225, {1, 3, 1, 5, 11, 27, 19, 193, 371, 463, 1573, 271, 1127, 15091, 9967, 40337, 104163, 159339}}, +{18771, 18, 90231, {1, 3, 1, 3, 13, 3, 57, 149, 465, 789, 1155, 2223, 2007, 13987, 19057, 40447, 5217, 86191}}, +{18772, 18, 90235, {1, 3, 5, 5, 9, 45, 27, 155, 95, 171, 489, 2539, 843, 16125, 7047, 58541, 84641, 212013}}, +{18773, 18, 90289, {1, 3, 5, 13, 13, 53, 101, 159, 7, 481, 143, 3869, 6629, 3527, 1555, 6019, 155, 230157}}, +{18774, 18, 90344, {1, 3, 1, 1, 19, 59, 59, 129, 107, 887, 1595, 93, 6577, 3947, 14409, 31081, 68595, 226741}}, +{18775, 18, 90347, {1, 3, 3, 11, 13, 49, 81, 253, 363, 875, 489, 2181, 3487, 1615, 31157, 32949, 44809, 119421}}, +{18776, 18, 90379, {1, 1, 3, 1, 3, 19, 71, 93, 397, 521, 2015, 3829, 3013, 3941, 29437, 1959, 70283, 254361}}, +{18777, 18, 90387, {1, 3, 1, 3, 27, 11, 95, 39, 299, 521, 389, 3451, 3047, 8637, 22537, 11279, 67407, 101511}}, +{18778, 18, 90418, {1, 3, 1, 1, 27, 43, 123, 237, 315, 503, 1059, 2185, 3963, 1593, 19157, 13909, 58025, 91649}}, +{18779, 18, 90435, {1, 1, 7, 1, 5, 19, 79, 109, 459, 541, 521, 89, 389, 13499, 9769, 1429, 117357, 153261}}, +{18780, 18, 90444, {1, 1, 5, 3, 9, 29, 21, 97, 219, 915, 2013, 1955, 1015, 549, 9777, 5005, 110953, 16915}}, +{18781, 18, 90472, {1, 1, 1, 9, 29, 11, 103, 167, 465, 515, 843, 151, 769, 12033, 9451, 14949, 110075, 113947}}, +{18782, 18, 90478, {1, 3, 5, 1, 21, 1, 105, 49, 35, 737, 231, 2761, 1519, 9997, 601, 20883, 42575, 98081}}, +{18783, 18, 90485, {1, 1, 1, 5, 13, 63, 47, 171, 187, 407, 643, 1423, 6325, 10079, 23781, 36353, 20655, 10231}}, +{18784, 18, 90486, {1, 1, 7, 13, 13, 13, 91, 31, 19, 305, 505, 1937, 2683, 10791, 7719, 54797, 9405, 195819}}, +{18785, 18, 90513, {1, 1, 1, 7, 17, 9, 21, 211, 85, 851, 211, 1533, 4035, 11, 26873, 16755, 77809, 44603}}, +{18786, 18, 90514, {1, 1, 3, 1, 29, 47, 31, 141, 9, 881, 1229, 1261, 3747, 4603, 22177, 48937, 21435, 157029}}, +{18787, 18, 90532, {1, 1, 1, 9, 11, 35, 109, 187, 319, 863, 1339, 2193, 4147, 3721, 7243, 18295, 92461, 88875}}, +{18788, 18, 90567, {1, 1, 1, 1, 25, 41, 79, 191, 47, 819, 2013, 3133, 2763, 9231, 10343, 49693, 26753, 97465}}, +{18789, 18, 90595, {1, 3, 1, 3, 17, 25, 63, 139, 179, 113, 1681, 1997, 4561, 14453, 30721, 7053, 22937, 183303}}, +{18790, 18, 90597, {1, 1, 7, 3, 29, 11, 41, 157, 427, 887, 295, 443, 5593, 8633, 9757, 37595, 121655, 135739}}, +{18791, 18, 90621, {1, 3, 1, 7, 29, 5, 23, 231, 85, 67, 103, 1395, 7821, 9551, 17019, 1825, 69963, 254583}}, +{18792, 18, 90631, {1, 1, 7, 9, 7, 23, 7, 205, 17, 111, 1219, 3101, 7485, 11579, 11791, 10203, 119835, 175985}}, +{18793, 18, 90668, {1, 3, 3, 13, 3, 57, 101, 255, 331, 911, 491, 3929, 2519, 2185, 21107, 24599, 92831, 75001}}, +{18794, 18, 90706, {1, 3, 7, 1, 23, 53, 69, 229, 295, 881, 905, 3727, 3885, 7967, 2061, 53595, 16033, 36443}}, +{18795, 18, 90708, {1, 1, 7, 15, 21, 1, 127, 115, 191, 53, 929, 1093, 5447, 1665, 4409, 22611, 38157, 139201}}, +{18796, 18, 90715, {1, 3, 3, 13, 29, 31, 113, 215, 365, 41, 1977, 2839, 4147, 8321, 1361, 45717, 80505, 176631}}, +{18797, 18, 90724, {1, 3, 5, 3, 3, 57, 25, 81, 41, 229, 669, 3371, 7505, 1197, 14921, 34365, 67571, 27355}}, +{18798, 18, 90769, {1, 3, 7, 9, 17, 35, 7, 169, 13, 163, 2007, 3697, 5635, 8003, 26105, 62917, 19349, 47029}}, +{18799, 18, 90791, {1, 1, 5, 5, 29, 27, 89, 137, 69, 189, 871, 3139, 6383, 14955, 15349, 60447, 122291, 26541}}, +{18800, 18, 90792, {1, 1, 7, 13, 27, 49, 115, 111, 441, 865, 1397, 161, 755, 14461, 8601, 45533, 105309, 149799}}, +{18801, 18, 90805, {1, 1, 7, 3, 9, 29, 91, 5, 239, 605, 491, 1705, 4099, 9111, 19821, 56903, 62815, 40615}}, +{18802, 18, 90810, {1, 1, 7, 15, 5, 45, 71, 225, 211, 539, 1881, 1201, 5675, 6061, 12121, 13289, 30455, 33131}}, +{18803, 18, 90820, {1, 1, 5, 15, 5, 59, 35, 121, 185, 143, 165, 2999, 7907, 5035, 8337, 11951, 66403, 219997}}, +{18804, 18, 90844, {1, 1, 5, 9, 3, 7, 27, 129, 245, 93, 715, 1249, 1717, 13381, 31255, 23153, 22227, 8077}}, +{18805, 18, 90907, {1, 3, 5, 11, 19, 49, 21, 163, 157, 615, 1475, 2453, 6315, 12325, 26565, 58399, 49385, 252127}}, +{18806, 18, 90925, {1, 3, 7, 11, 23, 3, 35, 61, 409, 795, 1447, 3461, 535, 6533, 25757, 31783, 9509, 217589}}, +{18807, 18, 90926, {1, 1, 5, 15, 9, 21, 67, 65, 399, 515, 777, 3183, 1155, 16071, 7339, 59985, 56659, 200701}}, +{18808, 18, 90934, {1, 3, 3, 1, 15, 33, 119, 145, 71, 517, 1775, 163, 5307, 1549, 31071, 56289, 128395, 230381}}, +{18809, 18, 90946, {1, 3, 1, 7, 7, 47, 97, 187, 193, 887, 515, 1301, 4841, 12069, 413, 41503, 36421, 45909}}, +{18810, 18, 90981, {1, 1, 5, 3, 17, 21, 53, 227, 137, 865, 715, 3601, 5027, 2983, 24113, 23349, 106391, 188193}}, +{18811, 18, 90999, {1, 3, 7, 15, 29, 37, 91, 235, 351, 15, 425, 681, 187, 1517, 30079, 41347, 49691, 66369}}, +{18812, 18, 91003, {1, 1, 5, 5, 15, 25, 93, 245, 397, 517, 1635, 2475, 5543, 9597, 27721, 21475, 79571, 259011}}, +{18813, 18, 91019, {1, 1, 1, 5, 21, 29, 5, 161, 37, 409, 1661, 3371, 5663, 4317, 9951, 23605, 7393, 90593}}, +{18814, 18, 91022, {1, 1, 3, 15, 21, 51, 79, 159, 209, 891, 1391, 2895, 5003, 6601, 17983, 42359, 104497, 162181}}, +{18815, 18, 91050, {1, 3, 7, 11, 23, 51, 99, 145, 21, 345, 1389, 1035, 5939, 8293, 22765, 23331, 7789, 115149}}, +{18816, 18, 91055, {1, 1, 5, 11, 27, 61, 115, 123, 317, 607, 463, 779, 5121, 3861, 18761, 39407, 125837, 244163}}, +{18817, 18, 91064, {1, 1, 7, 3, 15, 9, 33, 1, 437, 621, 31, 147, 8157, 3451, 18223, 61187, 125297, 211225}}, +{18818, 18, 91078, {1, 3, 1, 11, 27, 55, 21, 251, 5, 57, 1889, 71, 3745, 499, 9043, 62683, 21945, 138615}}, +{18819, 18, 91117, {1, 1, 3, 13, 25, 9, 1, 31, 277, 373, 507, 301, 2341, 1741, 11997, 47661, 44121, 183151}}, +{18820, 18, 91120, {1, 3, 3, 5, 15, 51, 5, 233, 475, 397, 1833, 1267, 7025, 2593, 15425, 47053, 16205, 208007}}, +{18821, 18, 91129, {1, 3, 3, 9, 31, 51, 123, 219, 493, 789, 659, 985, 7283, 11545, 15383, 25173, 130423, 196619}}, +{18822, 18, 91140, {1, 1, 1, 15, 9, 17, 37, 145, 297, 933, 1019, 1699, 2149, 12391, 17003, 42157, 126283, 252231}}, +{18823, 18, 91157, {1, 3, 5, 9, 17, 1, 91, 69, 335, 857, 925, 3855, 2225, 6909, 19101, 12191, 92117, 229077}}, +{18824, 18, 91161, {1, 3, 5, 13, 5, 21, 67, 17, 307, 879, 1563, 3169, 745, 6799, 27237, 39621, 1413, 146295}}, +{18825, 18, 91240, {1, 3, 7, 13, 17, 59, 23, 253, 415, 761, 451, 2773, 3523, 10985, 29853, 7275, 79521, 133447}}, +{18826, 18, 91260, {1, 1, 1, 1, 15, 43, 89, 19, 85, 837, 1335, 1641, 105, 5429, 8317, 45555, 104447, 102313}}, +{18827, 18, 91270, {1, 3, 3, 5, 17, 21, 67, 235, 367, 265, 1069, 835, 5457, 177, 26987, 39477, 6895, 123283}}, +{18828, 18, 91287, {1, 1, 5, 15, 19, 61, 5, 15, 487, 291, 661, 825, 1569, 8795, 13035, 57077, 112847, 160267}}, +{18829, 18, 91321, {1, 1, 7, 9, 27, 21, 91, 133, 361, 7, 447, 3035, 3523, 13167, 15927, 35555, 35713, 91291}}, +{18830, 18, 91336, {1, 3, 7, 11, 17, 23, 77, 255, 437, 897, 1185, 1633, 6451, 13081, 29097, 61335, 39671, 177835}}, +{18831, 18, 91341, {1, 1, 7, 5, 31, 49, 81, 221, 167, 241, 1895, 1813, 1493, 2475, 379, 5685, 116341, 121823}}, +{18832, 18, 91378, {1, 3, 5, 9, 25, 11, 117, 253, 337, 381, 743, 69, 1641, 3649, 26335, 59683, 28729, 83449}}, +{18833, 18, 91398, {1, 3, 1, 7, 15, 17, 59, 9, 129, 233, 1905, 1371, 6521, 8953, 26173, 9707, 70817, 260035}}, +{18834, 18, 91437, {1, 3, 1, 5, 19, 53, 23, 255, 305, 835, 1387, 2947, 3013, 9117, 27571, 47123, 49881, 47229}}, +{18835, 18, 91440, {1, 1, 3, 5, 23, 37, 123, 193, 365, 49, 1211, 3083, 8133, 14205, 11361, 55945, 23225, 159109}}, +{18836, 18, 91475, {1, 1, 7, 11, 5, 49, 43, 165, 97, 581, 617, 3045, 6187, 8399, 24045, 46713, 28389, 156811}}, +{18837, 18, 91494, {1, 3, 1, 5, 29, 17, 75, 231, 59, 143, 2041, 2319, 2289, 11805, 4039, 29895, 91305, 179091}}, +{18838, 18, 91500, {1, 1, 7, 7, 29, 5, 13, 43, 409, 81, 751, 2157, 2543, 13317, 28275, 60871, 119833, 36743}}, +{18839, 18, 91511, {1, 1, 5, 13, 5, 5, 21, 101, 497, 993, 157, 647, 3587, 1495, 20233, 30889, 112579, 172009}}, +{18840, 18, 91567, {1, 1, 7, 13, 7, 19, 101, 217, 305, 897, 1305, 1693, 6881, 2415, 17373, 56327, 53971, 19021}}, +{18841, 18, 91572, {1, 1, 7, 15, 31, 61, 93, 99, 459, 999, 239, 969, 2427, 12295, 23699, 4839, 73707, 110365}}, +{18842, 18, 91601, {1, 3, 5, 9, 15, 59, 29, 35, 15, 331, 93, 529, 2651, 5675, 3039, 25967, 2907, 222053}}, +{18843, 18, 91617, {1, 3, 3, 1, 1, 17, 59, 81, 495, 917, 1907, 3, 1989, 14339, 21311, 60909, 39393, 54115}}, +{18844, 18, 91653, {1, 3, 1, 9, 1, 37, 31, 201, 251, 117, 1753, 2453, 5007, 6935, 1165, 49231, 51495, 200219}}, +{18845, 18, 91678, {1, 1, 3, 3, 15, 47, 17, 175, 77, 363, 1455, 1417, 1357, 2295, 31165, 53337, 97891, 145621}}, +{18846, 18, 91705, {1, 3, 3, 3, 27, 31, 41, 179, 47, 629, 5, 2543, 6817, 8953, 7151, 20715, 52363, 251037}}, +{18847, 18, 91723, {1, 3, 1, 1, 21, 11, 103, 87, 285, 189, 1911, 2979, 7563, 13405, 2309, 25695, 106277, 179493}}, +{18848, 18, 91725, {1, 1, 1, 5, 7, 19, 1, 233, 261, 825, 1071, 3529, 5617, 11207, 24559, 47461, 79753, 41009}}, +{18849, 18, 91733, {1, 1, 3, 1, 15, 35, 65, 157, 381, 509, 1455, 3117, 31, 2251, 29729, 33687, 74999, 214765}}, +{18850, 18, 91761, {1, 1, 7, 11, 31, 43, 11, 147, 509, 891, 1929, 357, 3905, 16251, 30169, 27787, 124003, 142587}}, +{18851, 18, 91768, {1, 1, 7, 11, 3, 31, 93, 161, 311, 377, 1119, 2177, 4339, 3889, 24299, 35167, 87583, 145611}}, +{18852, 18, 91790, {1, 1, 5, 9, 23, 9, 73, 85, 233, 919, 1319, 13, 3353, 1029, 31251, 17731, 86759, 11705}}, +{18853, 18, 91804, {1, 1, 1, 7, 27, 23, 67, 235, 207, 161, 697, 2433, 833, 5305, 32695, 29327, 25285, 51289}}, +{18854, 18, 91807, {1, 3, 3, 3, 31, 55, 107, 211, 61, 993, 1443, 463, 5029, 5401, 8821, 29721, 113939, 194839}}, +{18855, 18, 91808, {1, 1, 1, 11, 11, 33, 39, 167, 17, 863, 363, 3967, 2277, 4053, 15403, 31887, 98565, 217953}}, +{18856, 18, 91818, {1, 1, 7, 1, 21, 47, 97, 147, 155, 327, 1417, 3531, 7649, 8975, 21221, 57631, 72611, 97745}}, +{18857, 18, 91840, {1, 3, 3, 1, 1, 63, 19, 91, 105, 991, 819, 673, 7845, 14947, 1633, 40517, 91525, 151041}}, +{18858, 18, 91849, {1, 1, 7, 11, 25, 43, 57, 141, 65, 415, 1045, 3947, 7099, 11653, 29321, 51591, 2591, 44803}}, +{18859, 18, 91869, {1, 3, 1, 9, 15, 19, 105, 37, 485, 3, 213, 1217, 951, 5637, 1589, 25501, 95073, 124683}}, +{18860, 18, 91873, {1, 1, 5, 7, 13, 19, 55, 143, 507, 575, 715, 1633, 5201, 10493, 26041, 18407, 8097, 152313}}, +{18861, 18, 91876, {1, 1, 3, 5, 9, 51, 5, 171, 143, 877, 1571, 2997, 4209, 13423, 9389, 23015, 6665, 254799}}, +{18862, 18, 91888, {1, 3, 5, 15, 31, 43, 87, 79, 89, 463, 1075, 1257, 1631, 13225, 13529, 53267, 73651, 89125}}, +{18863, 18, 91891, {1, 3, 7, 13, 23, 17, 93, 113, 45, 225, 1939, 3301, 6031, 9749, 16577, 12857, 68437, 169861}}, +{18864, 18, 91897, {1, 3, 3, 15, 31, 11, 91, 127, 227, 813, 105, 901, 6861, 10627, 18425, 2553, 102503, 83167}}, +{18865, 18, 91911, {1, 3, 3, 13, 17, 63, 83, 163, 451, 659, 1995, 2283, 6297, 8097, 20935, 6017, 4977, 5045}}, +{18866, 18, 91965, {1, 1, 5, 13, 27, 47, 103, 129, 259, 975, 391, 2343, 6639, 1385, 30187, 35401, 74321, 24751}}, +{18867, 18, 91971, {1, 3, 1, 13, 1, 57, 37, 65, 57, 413, 63, 3819, 5915, 3925, 20777, 48539, 3019, 54965}}, +{18868, 18, 91988, {1, 1, 7, 3, 7, 13, 91, 33, 143, 489, 657, 3127, 707, 10841, 11307, 37855, 92697, 119189}}, +{18869, 18, 91992, {1, 1, 3, 11, 25, 47, 11, 57, 463, 693, 55, 501, 3765, 15443, 12917, 61677, 97145, 213637}}, +{18870, 18, 92004, {1, 3, 1, 1, 13, 49, 13, 225, 101, 475, 627, 1447, 7587, 11335, 3599, 20795, 72915, 174663}}, +{18871, 18, 92021, {1, 3, 7, 5, 31, 15, 115, 255, 329, 365, 959, 3399, 4695, 14537, 1447, 17391, 88557, 130213}}, +{18872, 18, 92035, {1, 1, 1, 9, 25, 47, 29, 173, 29, 149, 291, 691, 7621, 7607, 20769, 7149, 27323, 57689}}, +{18873, 18, 92068, {1, 3, 5, 15, 3, 61, 119, 247, 25, 495, 1297, 1119, 8011, 16077, 21567, 30559, 88455, 68763}}, +{18874, 18, 92098, {1, 1, 7, 1, 11, 47, 109, 115, 313, 517, 1951, 3319, 337, 11793, 22345, 33457, 47383, 213893}}, +{18875, 18, 92104, {1, 1, 5, 11, 11, 53, 103, 237, 383, 927, 421, 4085, 3327, 169, 9941, 24753, 65437, 108173}}, +{18876, 18, 92121, {1, 1, 5, 11, 17, 59, 107, 53, 479, 143, 825, 2667, 5219, 6143, 11573, 33637, 124981, 98195}}, +{18877, 18, 92127, {1, 3, 3, 13, 3, 17, 61, 129, 475, 585, 1611, 1791, 7817, 4099, 20437, 51411, 130173, 220085}}, +{18878, 18, 92151, {1, 3, 3, 3, 27, 25, 33, 255, 361, 967, 1415, 3213, 3341, 15875, 32359, 53267, 27665, 178301}}, +{18879, 18, 92162, {1, 1, 5, 3, 13, 9, 91, 187, 173, 525, 1675, 2217, 4093, 2009, 16917, 18485, 104849, 163233}}, +{18880, 18, 92186, {1, 1, 1, 11, 3, 17, 125, 157, 9, 429, 1573, 2257, 7943, 9893, 5611, 64619, 4509, 200181}}, +{18881, 18, 92191, {1, 3, 1, 1, 3, 9, 83, 53, 315, 85, 1093, 2621, 663, 12369, 317, 6089, 16479, 225071}}, +{18882, 18, 92192, {1, 3, 3, 1, 25, 47, 57, 45, 219, 45, 945, 3989, 4889, 8989, 381, 52483, 57029, 253899}}, +{18883, 18, 92207, {1, 3, 3, 5, 3, 61, 75, 189, 53, 489, 553, 2381, 7485, 9941, 29733, 2611, 74119, 203647}}, +{18884, 18, 92260, {1, 3, 1, 11, 27, 63, 53, 61, 59, 613, 465, 867, 1985, 7605, 14301, 53847, 68547, 14717}}, +{18885, 18, 92282, {1, 3, 5, 11, 5, 41, 51, 11, 59, 761, 59, 267, 7273, 3061, 11223, 48825, 117869, 158551}}, +{18886, 18, 92288, {1, 3, 7, 1, 31, 47, 111, 43, 435, 997, 135, 3369, 6439, 5637, 13629, 13221, 90607, 86359}}, +{18887, 18, 92297, {1, 1, 1, 11, 23, 51, 109, 223, 495, 765, 1557, 3545, 305, 4949, 23931, 45115, 12121, 14487}}, +{18888, 18, 92303, {1, 3, 5, 9, 5, 25, 41, 249, 27, 375, 1339, 3647, 3529, 2077, 21091, 45523, 67191, 1257}}, +{18889, 18, 92315, {1, 1, 3, 7, 13, 15, 63, 45, 187, 761, 1245, 3381, 1817, 2491, 16469, 64417, 87333, 143103}}, +{18890, 18, 92322, {1, 1, 3, 13, 11, 33, 87, 11, 279, 689, 1047, 3935, 5359, 11309, 19735, 33259, 12347, 183653}}, +{18891, 18, 92327, {1, 1, 5, 7, 5, 49, 109, 221, 455, 167, 785, 1859, 4337, 14937, 209, 23435, 22923, 172985}}, +{18892, 18, 92341, {1, 3, 7, 9, 13, 7, 127, 117, 147, 741, 531, 2627, 2565, 11083, 30577, 42471, 77065, 120983}}, +{18893, 18, 92389, {1, 1, 7, 1, 5, 61, 115, 203, 15, 305, 1005, 2085, 2597, 4371, 11661, 33219, 53657, 40325}}, +{18894, 18, 92390, {1, 3, 7, 13, 13, 15, 69, 167, 369, 747, 1115, 1493, 4881, 2693, 32281, 27089, 56821, 121693}}, +{18895, 18, 92422, {1, 3, 5, 3, 19, 51, 101, 29, 411, 509, 847, 1033, 4135, 15561, 7045, 60757, 48479, 247295}}, +{18896, 18, 92439, {1, 1, 5, 3, 27, 47, 103, 123, 413, 71, 689, 2113, 4347, 1983, 25727, 20095, 3271, 133081}}, +{18897, 18, 92452, {1, 1, 3, 3, 5, 39, 87, 27, 505, 631, 689, 2591, 1955, 3205, 12681, 10821, 13343, 101505}}, +{18898, 18, 92470, {1, 3, 7, 9, 31, 23, 103, 223, 499, 721, 13, 1399, 7369, 3945, 27727, 7923, 60265, 197793}}, +{18899, 18, 92473, {1, 3, 3, 5, 27, 7, 119, 23, 371, 495, 1583, 3913, 5139, 12151, 17477, 10907, 121775, 13369}}, +{18900, 18, 92493, {1, 3, 7, 1, 19, 53, 91, 235, 161, 97, 37, 1115, 5909, 1943, 8137, 1541, 16253, 252151}}, +{18901, 18, 92508, {1, 3, 7, 5, 3, 1, 107, 241, 187, 253, 1225, 2827, 4191, 2749, 25629, 47465, 19969, 45035}}, +{18902, 18, 92517, {1, 3, 1, 5, 1, 29, 47, 233, 175, 313, 793, 2089, 6235, 6595, 27599, 20505, 63379, 8729}}, +{18903, 18, 92529, {1, 3, 7, 11, 15, 9, 87, 113, 389, 1, 1057, 3307, 3455, 1847, 1497, 28115, 92897, 2383}}, +{18904, 18, 92551, {1, 3, 7, 13, 19, 59, 45, 59, 49, 273, 1619, 1975, 5949, 9951, 7685, 52559, 42377, 29855}}, +{18905, 18, 92557, {1, 1, 3, 9, 19, 7, 119, 35, 85, 37, 269, 3443, 8015, 8061, 6001, 19123, 70643, 115513}}, +{18906, 18, 92596, {1, 1, 3, 15, 3, 19, 83, 171, 259, 207, 1495, 513, 5455, 4071, 27471, 15773, 66301, 228743}}, +{18907, 18, 92611, {1, 3, 7, 9, 3, 27, 93, 3, 471, 13, 677, 4067, 1941, 15345, 26629, 29419, 121593, 108669}}, +{18908, 18, 92613, {1, 3, 7, 15, 29, 43, 97, 41, 15, 181, 1969, 1901, 7237, 3879, 19337, 17659, 17957, 164667}}, +{18909, 18, 92642, {1, 3, 1, 1, 25, 33, 7, 41, 387, 469, 795, 781, 113, 4161, 29687, 32225, 73905, 137879}}, +{18910, 18, 92666, {1, 1, 3, 13, 9, 59, 89, 23, 393, 111, 1957, 719, 6179, 16183, 31331, 48015, 32147, 31691}}, +{18911, 18, 92684, {1, 3, 7, 5, 9, 45, 73, 219, 181, 51, 717, 1813, 2581, 1395, 17595, 23689, 89709, 201451}}, +{18912, 18, 92723, {1, 3, 7, 3, 1, 21, 15, 35, 131, 515, 803, 1429, 3855, 349, 11795, 26787, 6109, 117745}}, +{18913, 18, 92732, {1, 3, 3, 9, 7, 11, 57, 15, 491, 371, 1787, 85, 577, 11455, 27419, 20687, 2493, 209993}}, +{18914, 18, 92738, {1, 3, 7, 15, 5, 5, 87, 197, 93, 643, 247, 31, 357, 7377, 10509, 29883, 42747, 248861}}, +{18915, 18, 92783, {1, 3, 3, 3, 29, 33, 47, 253, 485, 25, 2003, 2953, 1629, 11549, 5697, 1135, 117761, 96411}}, +{18916, 18, 92808, {1, 3, 5, 1, 29, 5, 27, 187, 235, 423, 41, 1855, 4359, 15627, 28409, 49331, 37735, 68823}}, +{18917, 18, 92816, {1, 1, 5, 5, 21, 61, 67, 85, 41, 671, 1617, 3867, 7913, 1693, 18487, 1831, 100971, 168191}}, +{18918, 18, 92835, {1, 1, 7, 3, 1, 61, 111, 87, 55, 229, 217, 2801, 563, 13617, 9641, 22247, 16039, 113541}}, +{18919, 18, 92847, {1, 3, 5, 7, 5, 29, 67, 99, 91, 561, 1203, 643, 2607, 13421, 29695, 31925, 82985, 69031}}, +{18920, 18, 92879, {1, 1, 1, 1, 27, 7, 63, 107, 269, 163, 1711, 587, 5657, 15077, 24709, 10235, 95483, 94799}}, +{18921, 18, 92881, {1, 3, 3, 5, 29, 5, 127, 137, 67, 609, 1657, 1131, 959, 15773, 17295, 58575, 96525, 80529}}, +{18922, 18, 92884, {1, 3, 7, 7, 25, 15, 89, 93, 145, 695, 367, 2853, 3073, 4867, 26823, 31467, 94769, 9145}}, +{18923, 18, 92932, {1, 1, 7, 15, 15, 5, 1, 225, 57, 381, 1295, 2525, 1493, 2401, 91, 19809, 32803, 195289}}, +{18924, 18, 92935, {1, 3, 3, 7, 29, 51, 29, 63, 249, 107, 1689, 3703, 7227, 6967, 27861, 39167, 20043, 218827}}, +{18925, 18, 92960, {1, 1, 3, 13, 17, 1, 77, 143, 167, 255, 1709, 2089, 7465, 4805, 16185, 15167, 20493, 240855}}, +{18926, 18, 92990, {1, 1, 5, 1, 11, 43, 107, 175, 93, 955, 615, 2923, 3637, 7451, 18847, 53467, 12463, 127249}}, +{18927, 18, 93010, {1, 1, 3, 13, 31, 1, 61, 113, 479, 777, 1805, 3625, 6299, 12221, 29599, 60175, 31165, 122815}}, +{18928, 18, 93025, {1, 3, 3, 11, 11, 29, 89, 129, 195, 337, 1843, 2769, 1747, 7137, 9901, 18459, 25215, 70609}}, +{18929, 18, 93046, {1, 1, 3, 7, 17, 35, 55, 81, 413, 25, 1505, 2185, 3121, 11435, 17885, 12543, 36767, 64039}}, +{18930, 18, 93085, {1, 3, 1, 13, 25, 9, 83, 25, 5, 49, 1975, 3967, 4135, 13213, 26479, 63913, 14921, 96193}}, +{18931, 18, 93089, {1, 3, 7, 5, 17, 15, 101, 47, 245, 821, 1275, 3343, 5471, 5045, 31741, 3319, 8141, 95501}}, +{18932, 18, 93096, {1, 3, 1, 13, 1, 5, 105, 39, 175, 439, 1625, 249, 4859, 12449, 30529, 45669, 49071, 214037}}, +{18933, 18, 93145, {1, 1, 7, 7, 17, 21, 83, 123, 261, 559, 1967, 2933, 4417, 8331, 10119, 21793, 128729, 187247}}, +{18934, 18, 93155, {1, 1, 7, 9, 15, 43, 77, 231, 241, 419, 503, 3335, 927, 2567, 31259, 52453, 114441, 257449}}, +{18935, 18, 93169, {1, 3, 3, 1, 9, 29, 21, 89, 311, 185, 519, 271, 3595, 8951, 6105, 64593, 38209, 120491}}, +{18936, 18, 93179, {1, 1, 7, 9, 1, 57, 65, 5, 275, 615, 801, 2839, 2851, 15609, 28731, 31223, 87725, 437}}, +{18937, 18, 93184, {1, 3, 3, 5, 29, 3, 67, 53, 17, 499, 263, 651, 7963, 5371, 11593, 34761, 57427, 84979}}, +{18938, 18, 93204, {1, 3, 7, 11, 15, 9, 33, 165, 313, 659, 909, 969, 2309, 2197, 27263, 35273, 52887, 236107}}, +{18939, 18, 93211, {1, 1, 7, 1, 13, 17, 29, 3, 329, 573, 619, 1013, 6947, 7031, 30773, 41129, 116481, 184233}}, +{18940, 18, 93213, {1, 1, 5, 9, 13, 5, 87, 235, 63, 759, 1143, 1861, 3783, 2735, 26191, 64387, 3651, 119447}}, +{18941, 18, 93227, {1, 1, 3, 7, 15, 41, 117, 135, 273, 655, 251, 1859, 4363, 14725, 29385, 6269, 91505, 82679}}, +{18942, 18, 93285, {1, 3, 7, 3, 13, 21, 21, 9, 121, 899, 199, 1973, 7437, 9771, 26647, 30909, 118573, 152913}}, +{18943, 18, 93292, {1, 3, 3, 9, 31, 43, 5, 249, 109, 183, 161, 1185, 4025, 10331, 20983, 28549, 122687, 183429}}, +{18944, 18, 93320, {1, 3, 7, 7, 11, 45, 111, 99, 487, 971, 597, 1555, 273, 10403, 25289, 45483, 35845, 35791}}, +{18945, 18, 93356, {1, 1, 1, 7, 11, 49, 125, 229, 279, 289, 1945, 3575, 5683, 15659, 31123, 12517, 79303, 255797}}, +{18946, 18, 93371, {1, 3, 1, 15, 9, 23, 61, 53, 383, 855, 1743, 407, 4401, 7507, 26307, 56205, 110943, 184183}}, +{18947, 18, 93374, {1, 3, 5, 13, 23, 29, 101, 243, 417, 925, 1267, 257, 5893, 4335, 6309, 43519, 126035, 99205}}, +{18948, 18, 93385, {1, 3, 1, 5, 5, 35, 83, 25, 31, 455, 1799, 2919, 7037, 11829, 12239, 12969, 108469, 89513}}, +{18949, 18, 93403, {1, 3, 5, 9, 17, 29, 61, 217, 183, 131, 425, 4025, 7141, 5445, 21497, 10603, 53423, 5701}}, +{18950, 18, 93406, {1, 1, 1, 15, 27, 35, 9, 139, 261, 43, 587, 3835, 4627, 11689, 15739, 6031, 73547, 134271}}, +{18951, 18, 93427, {1, 1, 3, 3, 25, 15, 7, 225, 29, 785, 2047, 2219, 6083, 7973, 17053, 56167, 83915, 87597}}, +{18952, 18, 93451, {1, 3, 7, 15, 13, 43, 85, 121, 421, 867, 1895, 2437, 6003, 5269, 8625, 26877, 100023, 110229}}, +{18953, 18, 93454, {1, 3, 3, 3, 25, 49, 121, 1, 125, 353, 1811, 1575, 3925, 13897, 26087, 24977, 105995, 242817}}, +{18954, 18, 93472, {1, 1, 1, 9, 31, 55, 71, 241, 439, 927, 955, 109, 7779, 2397, 18797, 34177, 1255, 178671}}, +{18955, 18, 93482, {1, 1, 7, 7, 5, 15, 99, 225, 49, 407, 1711, 4027, 4845, 9209, 20983, 33969, 14205, 9351}}, +{18956, 18, 93507, {1, 3, 5, 1, 9, 13, 113, 143, 97, 189, 929, 1163, 2261, 9761, 30011, 32911, 117043, 169493}}, +{18957, 18, 93537, {1, 1, 3, 5, 9, 35, 95, 77, 5, 95, 1745, 2013, 7009, 5427, 18969, 2771, 5099, 52939}}, +{18958, 18, 93562, {1, 3, 7, 9, 13, 19, 31, 189, 367, 569, 95, 1665, 6231, 2169, 22589, 8427, 116097, 41077}}, +{18959, 18, 93564, {1, 3, 7, 3, 31, 61, 45, 233, 327, 541, 87, 3449, 2767, 12237, 17747, 53827, 80389, 121489}}, +{18960, 18, 93608, {1, 3, 7, 15, 31, 1, 49, 73, 157, 131, 553, 3417, 5283, 4737, 31675, 63213, 43689, 261869}}, +{18961, 18, 93636, {1, 3, 7, 1, 3, 5, 113, 43, 343, 39, 135, 1555, 7955, 9851, 30983, 21955, 34871, 147649}}, +{18962, 18, 93640, {1, 3, 5, 3, 5, 27, 15, 179, 141, 983, 265, 2651, 5907, 10501, 6275, 29629, 115965, 125745}}, +{18963, 18, 93653, {1, 3, 7, 13, 1, 1, 81, 105, 309, 457, 1817, 3435, 4615, 1181, 27835, 26075, 63447, 44701}}, +{18964, 18, 93654, {1, 1, 5, 5, 25, 19, 85, 103, 409, 323, 2001, 3719, 3403, 1301, 19615, 47829, 109905, 65777}}, +{18965, 18, 93664, {1, 3, 5, 3, 21, 15, 47, 75, 467, 273, 1885, 3929, 1877, 5209, 6881, 34431, 35663, 100205}}, +{18966, 18, 93676, {1, 1, 5, 3, 3, 9, 47, 143, 471, 653, 1011, 2263, 3673, 11921, 31207, 50365, 27177, 214377}}, +{18967, 18, 93721, {1, 3, 1, 15, 3, 43, 81, 253, 495, 139, 679, 2207, 4603, 5269, 27133, 46461, 120783, 185595}}, +{18968, 18, 93740, {1, 1, 7, 3, 13, 3, 109, 197, 477, 101, 859, 1035, 777, 10153, 15581, 22715, 17493, 120851}}, +{18969, 18, 93743, {1, 3, 1, 3, 23, 5, 121, 67, 265, 935, 741, 3311, 541, 1093, 1639, 5941, 5587, 150345}}, +{18970, 18, 93745, {1, 3, 1, 5, 3, 13, 65, 173, 493, 303, 359, 3813, 6007, 1105, 12185, 10431, 17117, 164899}}, +{18971, 18, 93751, {1, 3, 3, 1, 25, 33, 71, 181, 149, 7, 333, 1981, 2981, 14683, 10997, 63373, 22605, 119681}}, +{18972, 18, 93770, {1, 1, 1, 15, 29, 35, 89, 21, 281, 175, 587, 3117, 7221, 8239, 26399, 49133, 65895, 142175}}, +{18973, 18, 93796, {1, 3, 7, 15, 9, 9, 35, 161, 65, 749, 421, 3575, 6307, 2029, 11423, 63901, 102049, 26333}}, +{18974, 18, 93820, {1, 3, 1, 13, 1, 45, 97, 41, 231, 245, 271, 1497, 3119, 6225, 21665, 12113, 67315, 62779}}, +{18975, 18, 93824, {1, 1, 1, 7, 3, 29, 119, 193, 179, 353, 1015, 2803, 6869, 7653, 22309, 53421, 86969, 115549}}, +{18976, 18, 93833, {1, 3, 3, 5, 17, 37, 49, 129, 195, 537, 1237, 2775, 6683, 699, 19181, 61125, 27483, 175645}}, +{18977, 18, 93841, {1, 3, 7, 3, 7, 49, 107, 41, 285, 335, 1415, 4015, 1301, 6525, 32429, 9337, 87923, 176751}}, +{18978, 18, 93847, {1, 1, 5, 9, 21, 43, 91, 25, 225, 311, 417, 303, 2629, 3609, 29987, 28647, 104173, 52383}}, +{18979, 18, 93848, {1, 3, 5, 9, 13, 47, 75, 143, 109, 173, 503, 3843, 1767, 9433, 10009, 5653, 87339, 212975}}, +{18980, 18, 93854, {1, 3, 1, 13, 13, 55, 123, 95, 499, 245, 1875, 3661, 7661, 6927, 21003, 51729, 88089, 89063}}, +{18981, 18, 93882, {1, 1, 3, 1, 31, 7, 93, 35, 169, 191, 1079, 2137, 4401, 1563, 20021, 9101, 66881, 231589}}, +{18982, 18, 93943, {1, 3, 1, 15, 21, 41, 75, 231, 459, 701, 1715, 2581, 4445, 5877, 4765, 1037, 15827, 189529}}, +{18983, 18, 93958, {1, 3, 5, 13, 17, 23, 41, 133, 143, 297, 1335, 3907, 7745, 5139, 9397, 5765, 5347, 243091}}, +{18984, 18, 93972, {1, 1, 5, 13, 7, 15, 31, 183, 315, 153, 785, 2723, 97, 14361, 10509, 17717, 46615, 133289}}, +{18985, 18, 93975, {1, 3, 7, 9, 13, 3, 75, 103, 445, 409, 603, 201, 1873, 9277, 23953, 6881, 64327, 196771}}, +{18986, 18, 94003, {1, 1, 7, 13, 15, 21, 73, 183, 419, 997, 857, 1373, 3855, 417, 10175, 5253, 66509, 15731}}, +{18987, 18, 94009, {1, 3, 3, 9, 19, 7, 15, 119, 497, 25, 1165, 105, 2605, 15097, 28241, 2269, 519, 235655}}, +{18988, 18, 94020, {1, 3, 3, 9, 27, 9, 103, 205, 97, 317, 1621, 971, 931, 9099, 24583, 12695, 122399, 78021}}, +{18989, 18, 94072, {1, 1, 3, 5, 27, 45, 41, 239, 87, 603, 317, 3507, 7677, 9141, 26721, 40225, 80515, 205263}}, +{18990, 18, 94081, {1, 1, 3, 1, 25, 3, 63, 165, 41, 783, 291, 1997, 3769, 1881, 30613, 18821, 86175, 38837}}, +{18991, 18, 94093, {1, 1, 3, 5, 17, 19, 95, 17, 357, 587, 689, 3127, 6999, 6703, 23923, 55945, 97629, 210177}}, +{18992, 18, 94102, {1, 1, 3, 15, 21, 55, 63, 229, 397, 1007, 779, 2105, 681, 10659, 26679, 681, 115901, 83627}}, +{18993, 18, 94122, {1, 1, 7, 11, 25, 9, 47, 133, 109, 17, 697, 749, 5529, 9289, 29675, 2631, 15247, 13913}}, +{18994, 18, 94135, {1, 1, 7, 7, 3, 55, 29, 13, 467, 889, 675, 1187, 3301, 13721, 13783, 44559, 78177, 114219}}, +{18995, 18, 94136, {1, 3, 5, 13, 15, 11, 77, 71, 313, 427, 1385, 2007, 4003, 1529, 4797, 12289, 24897, 129513}}, +{18996, 18, 94150, {1, 1, 3, 11, 9, 47, 103, 253, 345, 659, 1109, 3493, 2515, 5669, 30551, 25077, 97393, 252689}}, +{18997, 18, 94184, {1, 3, 7, 9, 25, 19, 69, 161, 365, 51, 1365, 1045, 4319, 10035, 15529, 23251, 44359, 62163}}, +{18998, 18, 94187, {1, 3, 1, 7, 3, 25, 119, 33, 19, 561, 659, 2741, 6177, 899, 30911, 9627, 83003, 12939}}, +{18999, 18, 94258, {1, 3, 7, 1, 13, 37, 19, 161, 427, 621, 1045, 1963, 6067, 4439, 32507, 32775, 5201, 144645}}, +{19000, 18, 94264, {1, 1, 5, 7, 31, 17, 89, 239, 317, 109, 1827, 1395, 1587, 14813, 29911, 63545, 22939, 235383}}, +{19001, 18, 94272, {1, 1, 7, 15, 1, 17, 41, 123, 405, 539, 1063, 1443, 4611, 1847, 24107, 29365, 85859, 218601}}, +{19002, 18, 94278, {1, 1, 5, 13, 21, 27, 101, 223, 245, 705, 1579, 679, 5461, 8955, 15031, 7731, 31219, 165033}}, +{19003, 18, 94281, {1, 1, 7, 11, 19, 29, 13, 223, 179, 481, 761, 1543, 3195, 10695, 17147, 37577, 130901, 44699}}, +{19004, 18, 94317, {1, 1, 7, 3, 19, 53, 49, 1, 393, 583, 1183, 2817, 1293, 12949, 15491, 44467, 86261, 220439}}, +{19005, 18, 94348, {1, 3, 7, 15, 15, 47, 7, 125, 467, 511, 1207, 3787, 5575, 5359, 3859, 29933, 104627, 243073}}, +{19006, 18, 94376, {1, 1, 1, 13, 27, 25, 17, 243, 477, 457, 1835, 2859, 1023, 10107, 26829, 49853, 114569, 250471}}, +{19007, 18, 94382, {1, 3, 1, 15, 11, 43, 15, 235, 431, 671, 1935, 1143, 4121, 15403, 19313, 15919, 111961, 50455}}, +{19008, 18, 94387, {1, 3, 3, 3, 11, 45, 107, 143, 353, 671, 1259, 1599, 6075, 10645, 9131, 28133, 58679, 29883}}, +{19009, 18, 94389, {1, 3, 5, 15, 15, 43, 29, 171, 303, 71, 1751, 411, 7615, 12063, 26829, 31469, 34335, 3163}}, +{19010, 18, 94393, {1, 1, 7, 7, 25, 63, 25, 25, 27, 671, 505, 1235, 1985, 2593, 30031, 3251, 94729, 248911}}, +{19011, 18, 94402, {1, 1, 3, 1, 19, 15, 125, 133, 133, 209, 1749, 2091, 6325, 1275, 5675, 2249, 22631, 56293}}, +{19012, 18, 94421, {1, 1, 5, 1, 19, 27, 25, 99, 211, 739, 565, 3903, 7701, 7547, 12303, 5421, 24663, 22807}}, +{19013, 18, 94422, {1, 3, 5, 13, 5, 45, 99, 67, 21, 269, 851, 3333, 4555, 12483, 14645, 44757, 99047, 198521}}, +{19014, 18, 94431, {1, 1, 5, 13, 19, 1, 123, 87, 109, 799, 591, 2997, 1005, 16369, 10329, 34541, 100935, 200397}}, +{19015, 18, 94473, {1, 3, 5, 1, 13, 51, 93, 23, 19, 23, 965, 171, 6865, 3561, 23255, 44295, 87405, 222269}}, +{19016, 18, 94487, {1, 1, 3, 5, 1, 53, 25, 129, 123, 737, 271, 61, 113, 8481, 27075, 58633, 21499, 156689}}, +{19017, 18, 94504, {1, 3, 3, 11, 3, 43, 11, 123, 243, 1015, 1389, 3663, 1725, 6933, 5315, 7137, 127705, 56607}}, +{19018, 18, 94510, {1, 1, 5, 13, 7, 23, 43, 103, 503, 173, 267, 1509, 3311, 9553, 28851, 15771, 28741, 236427}}, +{19019, 18, 94522, {1, 1, 5, 15, 27, 43, 119, 3, 13, 107, 317, 3725, 6669, 4945, 30485, 10155, 96893, 154081}}, +{19020, 18, 94532, {1, 3, 7, 5, 11, 21, 61, 99, 155, 45, 569, 1325, 673, 15803, 12047, 55431, 9515, 106969}}, +{19021, 18, 94572, {1, 1, 7, 11, 27, 49, 121, 145, 105, 223, 1471, 1163, 3889, 4213, 21195, 45649, 14663, 82799}}, +{19022, 18, 94589, {1, 1, 3, 3, 31, 21, 17, 85, 31, 695, 1591, 2465, 907, 11621, 29681, 13131, 77187, 175913}}, +{19023, 18, 94599, {1, 3, 5, 5, 21, 49, 77, 229, 359, 825, 1851, 1223, 3351, 5349, 30971, 20797, 26975, 94425}}, +{19024, 18, 94603, {1, 1, 3, 1, 3, 63, 23, 219, 503, 47, 1675, 1641, 5257, 8035, 29793, 30093, 44897, 235691}}, +{19025, 18, 94647, {1, 1, 7, 9, 27, 37, 109, 33, 511, 203, 1195, 3281, 407, 15237, 28485, 21379, 106325, 231755}}, +{19026, 18, 94665, {1, 3, 1, 3, 9, 45, 19, 31, 255, 799, 909, 767, 421, 3301, 18557, 15043, 48505, 36763}}, +{19027, 18, 94695, {1, 3, 7, 13, 1, 45, 59, 233, 319, 265, 517, 1571, 4593, 12813, 30729, 19517, 70345, 142411}}, +{19028, 18, 94716, {1, 1, 1, 13, 17, 15, 79, 93, 265, 381, 285, 253, 919, 3715, 30555, 38801, 30439, 51511}}, +{19029, 18, 94738, {1, 1, 7, 15, 25, 39, 71, 57, 145, 487, 1655, 2589, 7655, 8413, 24537, 36761, 36427, 88929}}, +{19030, 18, 94740, {1, 1, 3, 3, 29, 41, 61, 191, 97, 849, 911, 3269, 5425, 13997, 7749, 537, 113705, 179765}}, +{19031, 18, 94778, {1, 1, 5, 9, 13, 55, 33, 221, 27, 521, 13, 2847, 6035, 8397, 6579, 29353, 101953, 88983}}, +{19032, 18, 94803, {1, 3, 3, 13, 31, 47, 97, 177, 373, 353, 159, 249, 4741, 7427, 8353, 38617, 13857, 122081}}, +{19033, 18, 94810, {1, 3, 5, 15, 13, 21, 1, 239, 369, 253, 1009, 1927, 5111, 2219, 28167, 32013, 51487, 210521}}, +{19034, 18, 94815, {1, 3, 5, 9, 17, 21, 37, 105, 405, 39, 321, 1515, 3759, 15469, 13643, 60157, 72127, 233505}}, +{19035, 18, 94821, {1, 3, 7, 5, 1, 3, 3, 125, 283, 757, 829, 2303, 3715, 6027, 17795, 37359, 54721, 5891}}, +{19036, 18, 94862, {1, 3, 7, 15, 27, 63, 117, 101, 341, 965, 1543, 51, 3397, 14051, 9889, 64647, 111169, 249477}}, +{19037, 18, 94886, {1, 1, 5, 13, 5, 29, 51, 61, 233, 685, 751, 163, 2319, 14691, 29881, 39029, 57093, 240147}}, +{19038, 18, 94900, {1, 3, 5, 3, 9, 21, 107, 147, 263, 471, 621, 3485, 197, 13271, 24689, 64341, 110163, 142711}}, +{19039, 18, 94924, {1, 3, 1, 7, 1, 23, 17, 31, 131, 631, 795, 3751, 5337, 9151, 2873, 31113, 65303, 244969}}, +{19040, 18, 94952, {1, 1, 5, 11, 3, 51, 93, 155, 389, 859, 1181, 2711, 1375, 6119, 229, 47767, 115521, 114129}}, +{19041, 18, 94963, {1, 3, 3, 15, 5, 7, 29, 187, 259, 911, 1537, 1885, 6139, 4549, 21655, 58771, 1003, 124609}}, +{19042, 18, 94970, {1, 1, 3, 15, 25, 45, 97, 217, 331, 305, 1105, 3465, 3651, 10171, 31601, 6947, 4545, 232627}}, +{19043, 18, 94980, {1, 1, 5, 5, 9, 53, 109, 201, 473, 201, 1113, 973, 1825, 13089, 1207, 9947, 92515, 216199}}, +{19044, 18, 94992, {1, 3, 7, 3, 1, 49, 25, 109, 249, 489, 1663, 3493, 4615, 13899, 27851, 60711, 14351, 41787}}, +{19045, 18, 95017, {1, 3, 3, 7, 3, 15, 29, 53, 61, 669, 371, 2187, 6769, 4623, 25785, 12997, 52263, 28387}}, +{19046, 18, 95028, {1, 1, 1, 3, 9, 31, 69, 3, 441, 219, 285, 183, 1971, 10903, 8271, 19389, 61913, 203537}}, +{19047, 18, 95031, {1, 1, 5, 3, 9, 63, 117, 131, 53, 525, 1349, 2701, 1317, 6047, 1661, 51785, 93199, 158645}}, +{19048, 18, 95035, {1, 3, 5, 3, 21, 61, 11, 91, 317, 635, 61, 1919, 2139, 12817, 6587, 63201, 52659, 8971}}, +{19049, 18, 95040, {1, 3, 1, 9, 11, 47, 49, 35, 115, 711, 511, 835, 3787, 837, 15737, 7467, 53263, 132047}}, +{19050, 18, 95058, {1, 1, 5, 3, 27, 47, 121, 211, 65, 363, 1067, 3813, 6353, 13701, 23943, 7573, 112721, 219587}}, +{19051, 18, 95079, {1, 1, 3, 7, 21, 39, 15, 199, 113, 517, 1429, 1399, 6007, 1389, 16425, 17709, 1231, 51803}}, +{19052, 18, 95122, {1, 3, 5, 11, 5, 37, 35, 97, 215, 281, 517, 1777, 4171, 10161, 18369, 23233, 83005, 75519}}, +{19053, 18, 95149, {1, 3, 7, 9, 3, 9, 69, 111, 135, 351, 971, 3551, 3739, 3571, 22861, 62669, 83723, 10707}}, +{19054, 18, 95150, {1, 3, 3, 5, 31, 35, 103, 205, 321, 553, 409, 363, 4085, 7735, 5513, 64249, 127883, 147839}}, +{19055, 18, 95167, {1, 1, 7, 3, 23, 35, 85, 231, 251, 237, 421, 757, 7081, 11247, 24941, 22649, 51111, 157383}}, +{19056, 18, 95175, {1, 3, 7, 5, 23, 35, 7, 101, 491, 529, 1437, 489, 5057, 12955, 27543, 60903, 104151, 42545}}, +{19057, 18, 95205, {1, 1, 3, 15, 23, 53, 85, 89, 247, 269, 1555, 3789, 467, 11145, 11751, 44343, 120117, 9975}}, +{19058, 18, 95229, {1, 1, 5, 3, 29, 49, 123, 179, 311, 45, 1839, 2725, 7307, 5525, 32075, 7979, 107751, 133677}}, +{19059, 18, 95321, {1, 1, 5, 3, 31, 21, 65, 229, 31, 597, 755, 2653, 2699, 2075, 11693, 28953, 55811, 13653}}, +{19060, 18, 95345, {1, 1, 1, 7, 25, 51, 119, 21, 245, 493, 407, 2997, 4255, 15487, 26359, 24153, 42955, 142191}}, +{19061, 18, 95364, {1, 1, 5, 3, 27, 61, 13, 209, 13, 401, 399, 2909, 3623, 8057, 21301, 32273, 112127, 210221}}, +{19062, 18, 95379, {1, 3, 5, 13, 3, 19, 121, 19, 57, 583, 947, 3591, 5283, 10831, 20429, 54097, 7559, 112465}}, +{19063, 18, 95386, {1, 3, 5, 1, 21, 1, 125, 245, 217, 165, 1319, 2119, 4641, 9481, 4147, 7079, 119015, 128401}}, +{19064, 18, 95395, {1, 1, 5, 3, 3, 31, 25, 63, 17, 191, 497, 819, 1515, 11215, 24961, 7679, 125801, 239521}}, +{19065, 18, 95416, {1, 1, 5, 1, 3, 25, 27, 43, 37, 863, 739, 2585, 773, 799, 17649, 21171, 123541, 164777}}, +{19066, 18, 95419, {1, 3, 5, 7, 7, 25, 15, 251, 305, 159, 1941, 3655, 2881, 15123, 10911, 35541, 62221, 175845}}, +{19067, 18, 95433, {1, 1, 1, 9, 19, 5, 103, 1, 417, 951, 139, 2413, 2983, 15471, 9495, 41349, 110175, 29501}}, +{19068, 18, 95464, {1, 1, 1, 5, 29, 53, 95, 173, 211, 803, 1599, 4093, 5559, 15855, 12271, 12583, 102221, 203453}}, +{19069, 18, 95490, {1, 3, 5, 5, 19, 43, 31, 175, 493, 289, 1865, 2925, 3833, 11327, 23337, 62669, 99485, 230583}}, +{19070, 18, 95496, {1, 3, 3, 11, 11, 25, 95, 215, 501, 421, 725, 1571, 2133, 2761, 8649, 45359, 88851, 55057}}, +{19071, 18, 95504, {1, 1, 7, 7, 21, 45, 69, 63, 399, 929, 1431, 3397, 3613, 14595, 10417, 62913, 106283, 120869}}, +{19072, 18, 95513, {1, 3, 7, 15, 13, 45, 11, 177, 125, 611, 1115, 2441, 2689, 12517, 8989, 34991, 23789, 51543}}, +{19073, 18, 95523, {1, 1, 3, 1, 3, 15, 5, 125, 511, 137, 1919, 2953, 5267, 3543, 5485, 7463, 130407, 255945}}, +{19074, 18, 95525, {1, 1, 3, 7, 7, 21, 95, 97, 51, 91, 813, 2819, 2839, 12041, 26197, 20143, 51403, 171337}}, +{19075, 18, 95558, {1, 1, 1, 1, 7, 27, 15, 125, 441, 387, 1869, 2157, 5863, 581, 893, 58827, 104063, 93735}}, +{19076, 18, 95572, {1, 3, 3, 7, 27, 9, 79, 97, 465, 207, 931, 2809, 2225, 13749, 18819, 30605, 9829, 130743}}, +{19077, 18, 95591, {1, 3, 5, 13, 31, 41, 19, 147, 293, 725, 297, 397, 1343, 12669, 15339, 58599, 12113, 149835}}, +{19078, 18, 95609, {1, 3, 3, 13, 27, 13, 121, 253, 349, 229, 915, 1673, 3819, 77, 20691, 53823, 78265, 138743}}, +{19079, 18, 95619, {1, 1, 5, 5, 29, 41, 65, 235, 123, 871, 1809, 3013, 3531, 1551, 8441, 23481, 58729, 117639}}, +{19080, 18, 95625, {1, 1, 7, 5, 23, 55, 89, 81, 201, 313, 1307, 2427, 2025, 8543, 26631, 58655, 122095, 247579}}, +{19081, 18, 95633, {1, 3, 1, 5, 3, 63, 89, 219, 449, 9, 1771, 2915, 5925, 13773, 26119, 61309, 65107, 33001}}, +{19082, 18, 95649, {1, 3, 7, 1, 27, 11, 25, 221, 139, 665, 1543, 2157, 7617, 9135, 567, 64985, 88749, 54223}}, +{19083, 18, 95652, {1, 1, 3, 9, 13, 41, 7, 99, 483, 115, 1499, 3343, 7207, 1805, 16031, 63707, 8555, 90959}}, +{19084, 18, 95655, {1, 3, 1, 9, 15, 53, 41, 239, 295, 47, 1645, 1095, 5163, 7739, 26635, 28245, 9315, 100629}}, +{19085, 18, 95696, {1, 3, 1, 5, 1, 19, 69, 5, 171, 669, 673, 633, 6895, 7571, 11539, 25133, 99235, 7991}}, +{19086, 18, 95721, {1, 3, 5, 11, 21, 37, 63, 77, 281, 307, 1711, 2671, 1315, 14683, 28757, 22751, 56477, 190805}}, +{19087, 18, 95766, {1, 3, 3, 5, 15, 1, 5, 21, 199, 161, 655, 1263, 3315, 16051, 2409, 773, 9075, 121265}}, +{19088, 18, 95772, {1, 3, 3, 3, 7, 23, 71, 195, 11, 263, 1845, 165, 3489, 447, 11315, 23861, 110949, 78909}}, +{19089, 18, 95775, {1, 1, 7, 5, 1, 53, 37, 9, 439, 135, 909, 457, 6993, 11401, 14065, 30795, 56149, 168013}}, +{19090, 18, 95794, {1, 1, 1, 15, 23, 37, 13, 87, 113, 251, 233, 725, 7757, 14399, 3023, 54277, 87879, 54053}}, +{19091, 18, 95796, {1, 3, 5, 11, 11, 57, 109, 171, 171, 17, 343, 2749, 6525, 9735, 11715, 23783, 54439, 82819}}, +{19092, 18, 95818, {1, 1, 1, 15, 3, 47, 73, 237, 399, 301, 947, 2055, 1909, 14105, 26893, 47805, 25, 172957}}, +{19093, 18, 95820, {1, 1, 7, 7, 11, 27, 93, 167, 117, 637, 351, 319, 4605, 12897, 31001, 39655, 53551, 246113}}, +{19094, 18, 95832, {1, 3, 5, 15, 3, 37, 25, 9, 421, 519, 257, 3251, 1649, 4069, 999, 59367, 112383, 32095}}, +{19095, 18, 95842, {1, 3, 7, 7, 25, 57, 11, 37, 271, 545, 1213, 1927, 6471, 5145, 22995, 51051, 126981, 260457}}, +{19096, 18, 95851, {1, 3, 5, 11, 1, 61, 77, 201, 395, 199, 477, 103, 4069, 7003, 26371, 49145, 103839, 195661}}, +{19097, 18, 95854, {1, 3, 3, 9, 13, 41, 25, 125, 161, 371, 179, 351, 7169, 7179, 21627, 57793, 104679, 158583}}, +{19098, 18, 95859, {1, 3, 7, 11, 5, 7, 111, 163, 201, 783, 189, 273, 2751, 13917, 28501, 18261, 12755, 15521}}, +{19099, 18, 95868, {1, 1, 5, 7, 3, 37, 121, 209, 503, 299, 1301, 3703, 2321, 99, 14953, 28087, 85059, 256911}}, +{19100, 18, 95881, {1, 3, 3, 13, 3, 29, 95, 249, 383, 971, 1291, 13, 1587, 3447, 26477, 15837, 111141, 73899}}, +{19101, 18, 95895, {1, 1, 7, 1, 17, 57, 31, 1, 219, 329, 19, 3841, 1829, 5179, 14945, 6625, 3783, 200583}}, +{19102, 18, 95943, {1, 3, 1, 3, 1, 31, 23, 17, 209, 383, 297, 3065, 4323, 7847, 30189, 56541, 57535, 24853}}, +{19103, 18, 95949, {1, 1, 3, 11, 31, 35, 125, 141, 251, 79, 161, 775, 2455, 6959, 26433, 39145, 26563, 665}}, +{19104, 18, 95978, {1, 1, 7, 1, 11, 9, 9, 211, 231, 723, 1337, 1713, 3779, 2001, 23451, 27107, 64297, 254943}}, +{19105, 18, 95980, {1, 3, 7, 15, 21, 55, 19, 159, 449, 837, 1259, 1851, 5061, 355, 21531, 63479, 114657, 139265}}, +{19106, 18, 96010, {1, 1, 1, 3, 11, 55, 103, 179, 363, 567, 421, 981, 7221, 2077, 19339, 1155, 67019, 218231}}, +{19107, 18, 96020, {1, 1, 7, 11, 3, 43, 55, 161, 347, 995, 1555, 3251, 1605, 13313, 4499, 19361, 60145, 71593}}, +{19108, 18, 96024, {1, 1, 5, 3, 9, 15, 119, 213, 455, 241, 857, 683, 1247, 13085, 23919, 20365, 16303, 73263}}, +{19109, 18, 96063, {1, 1, 3, 13, 25, 17, 45, 193, 375, 289, 1381, 3629, 3015, 15883, 20633, 7431, 108787, 233297}}, +{19110, 18, 96108, {1, 1, 1, 15, 21, 57, 105, 91, 233, 961, 1623, 3849, 711, 3857, 32657, 5935, 85113, 38287}}, +{19111, 18, 96125, {1, 3, 3, 3, 15, 31, 97, 217, 335, 385, 1661, 3927, 6849, 137, 28871, 56485, 32777, 260033}}, +{19112, 18, 96154, {1, 1, 3, 13, 5, 61, 19, 255, 123, 481, 1865, 1815, 3047, 173, 25363, 1277, 6453, 174405}}, +{19113, 18, 96172, {1, 3, 7, 13, 27, 9, 19, 21, 433, 857, 1931, 2927, 629, 7733, 13503, 48263, 67517, 26495}}, +{19114, 18, 96189, {1, 1, 1, 3, 5, 43, 61, 239, 81, 585, 187, 1123, 3319, 8699, 20925, 40815, 76575, 169383}}, +{19115, 18, 96204, {1, 3, 3, 3, 9, 49, 71, 225, 95, 365, 645, 237, 7829, 5727, 17031, 58971, 71415, 232423}}, +{19116, 18, 96219, {1, 3, 5, 9, 25, 49, 113, 47, 105, 609, 1557, 2099, 2129, 8663, 24811, 25505, 38153, 185821}}, +{19117, 18, 96256, {1, 3, 5, 13, 23, 55, 107, 17, 309, 807, 635, 1007, 6207, 3363, 7607, 25013, 4141, 171509}}, +{19118, 18, 96261, {1, 1, 1, 13, 27, 35, 31, 89, 109, 879, 1845, 3999, 5415, 8777, 9605, 29703, 28149, 36469}}, +{19119, 18, 96289, {1, 3, 1, 3, 13, 3, 51, 31, 479, 549, 1245, 2033, 961, 13893, 21829, 32791, 109497, 187425}}, +{19120, 18, 96292, {1, 1, 5, 3, 19, 5, 25, 187, 173, 869, 201, 3851, 7369, 6229, 16577, 45623, 19859, 209855}}, +{19121, 18, 96296, {1, 1, 7, 9, 1, 9, 53, 47, 289, 557, 999, 141, 3789, 3087, 30217, 24221, 81431, 157507}}, +{19122, 18, 96324, {1, 1, 3, 9, 1, 25, 11, 73, 155, 155, 621, 4047, 6759, 5641, 28147, 8523, 69439, 92613}}, +{19123, 18, 96345, {1, 3, 1, 5, 25, 23, 41, 79, 71, 793, 1381, 307, 7863, 16289, 28783, 5299, 128481, 222799}}, +{19124, 18, 96346, {1, 1, 7, 1, 17, 33, 117, 111, 15, 249, 1397, 1349, 4883, 6009, 3179, 33509, 56355, 31937}}, +{19125, 18, 96358, {1, 3, 5, 13, 29, 15, 41, 185, 91, 501, 571, 2889, 6901, 3875, 3737, 23657, 101587, 261181}}, +{19126, 18, 96386, {1, 1, 7, 9, 21, 49, 33, 143, 19, 203, 75, 1353, 585, 7719, 11311, 48989, 10803, 51743}}, +{19127, 18, 96412, {1, 1, 7, 13, 23, 31, 103, 209, 375, 817, 1461, 3657, 7931, 15893, 15065, 28721, 54299, 71147}}, +{19128, 18, 96428, {1, 3, 7, 7, 7, 25, 37, 173, 355, 499, 247, 459, 7701, 2219, 11703, 20631, 128857, 125367}}, +{19129, 18, 96445, {1, 1, 3, 5, 25, 61, 43, 135, 451, 667, 547, 443, 5071, 12671, 26975, 20131, 101545, 115281}}, +{19130, 18, 96446, {1, 3, 3, 5, 9, 19, 75, 133, 211, 585, 1283, 3397, 3181, 65, 20213, 47725, 101883, 194749}}, +{19131, 18, 96448, {1, 1, 1, 1, 19, 13, 75, 135, 111, 641, 765, 1631, 4711, 241, 15125, 38233, 95535, 177965}}, +{19132, 18, 96458, {1, 1, 7, 13, 31, 1, 91, 61, 299, 35, 1327, 3903, 6193, 5589, 6331, 6321, 105741, 89639}}, +{19133, 18, 96475, {1, 3, 3, 15, 1, 55, 11, 39, 171, 713, 973, 1827, 3487, 13057, 30775, 16881, 124989, 208193}}, +{19134, 18, 96482, {1, 3, 7, 1, 21, 29, 19, 75, 397, 755, 1601, 2907, 6861, 10377, 23127, 2443, 86545, 3841}}, +{19135, 18, 96494, {1, 3, 1, 11, 25, 33, 53, 195, 343, 425, 1523, 3051, 3115, 3205, 3457, 20521, 39187, 33307}}, +{19136, 18, 96502, {1, 3, 5, 1, 25, 23, 47, 5, 133, 511, 1549, 2691, 7861, 4987, 2877, 38693, 37491, 22481}}, +{19137, 18, 96508, {1, 1, 5, 15, 5, 55, 125, 231, 11, 451, 1443, 3865, 4115, 2379, 13675, 29953, 85721, 114859}}, +{19138, 18, 96511, {1, 3, 1, 15, 19, 37, 29, 75, 483, 785, 1933, 2435, 1811, 2787, 32653, 23159, 80993, 26867}}, +{19139, 18, 96516, {1, 1, 1, 15, 7, 27, 53, 99, 11, 693, 1085, 743, 939, 6461, 6391, 45913, 94037, 217039}}, +{19140, 18, 96520, {1, 3, 3, 9, 19, 37, 93, 77, 363, 125, 1675, 347, 5599, 7771, 23549, 39945, 106931, 127959}}, +{19141, 18, 96547, {1, 3, 1, 5, 27, 47, 107, 85, 31, 621, 1529, 2349, 7055, 889, 4663, 1705, 40011, 214775}}, +{19142, 18, 96556, {1, 3, 1, 5, 11, 47, 35, 13, 139, 783, 1009, 845, 4139, 14713, 24191, 17597, 124923, 219657}}, +{19143, 18, 96561, {1, 1, 7, 3, 3, 25, 63, 207, 361, 587, 763, 3027, 6523, 6783, 11203, 57313, 115397, 149921}}, +{19144, 18, 96568, {1, 1, 7, 1, 21, 55, 109, 183, 487, 869, 195, 83, 3675, 13103, 12383, 63519, 48379, 256443}}, +{19145, 18, 96581, {1, 3, 7, 13, 9, 21, 29, 163, 105, 871, 747, 2459, 7383, 439, 5223, 1655, 1469, 50345}}, +{19146, 18, 96582, {1, 3, 1, 1, 15, 63, 37, 159, 385, 795, 1369, 1973, 6119, 6027, 23913, 52475, 80827, 198261}}, +{19147, 18, 96679, {1, 3, 3, 11, 15, 5, 121, 231, 43, 907, 1621, 3895, 5075, 10865, 3123, 49657, 69827, 215813}}, +{19148, 18, 96683, {1, 3, 1, 15, 7, 41, 75, 105, 87, 899, 629, 1699, 5861, 9279, 30107, 37443, 7555, 64461}}, +{19149, 18, 96717, {1, 3, 1, 7, 9, 15, 119, 127, 121, 621, 1117, 1659, 605, 13705, 31181, 40063, 17257, 77645}}, +{19150, 18, 96754, {1, 1, 5, 5, 3, 37, 95, 237, 379, 375, 903, 257, 4425, 14191, 9185, 57133, 82067, 73521}}, +{19151, 18, 96769, {1, 1, 7, 15, 1, 43, 63, 45, 121, 669, 1775, 179, 7385, 3557, 17261, 379, 24759, 214831}}, +{19152, 18, 96799, {1, 1, 3, 9, 31, 5, 43, 153, 451, 573, 1623, 2831, 4483, 7219, 27657, 47111, 58165, 145799}}, +{19153, 18, 96805, {1, 1, 3, 11, 3, 11, 111, 83, 329, 807, 779, 1223, 6095, 7269, 22425, 19343, 11937, 10173}}, +{19154, 18, 96809, {1, 1, 1, 13, 27, 15, 7, 111, 37, 663, 51, 3759, 6321, 8253, 737, 59501, 109595, 177827}}, +{19155, 18, 96823, {1, 1, 3, 3, 29, 39, 79, 115, 307, 765, 331, 377, 1873, 14491, 11065, 11865, 76717, 29101}}, +{19156, 18, 96829, {1, 3, 7, 3, 21, 45, 97, 213, 309, 3, 483, 3933, 1043, 8519, 22517, 34675, 78819, 172479}}, +{19157, 18, 96832, {1, 3, 5, 3, 31, 51, 27, 137, 405, 427, 815, 43, 6551, 10971, 28589, 53077, 36639, 167661}}, +{19158, 18, 96850, {1, 3, 1, 3, 29, 5, 111, 19, 343, 21, 557, 4067, 1525, 12793, 11513, 48869, 78035, 171531}}, +{19159, 18, 96856, {1, 1, 5, 7, 25, 47, 53, 245, 135, 137, 1697, 2057, 3147, 15903, 26979, 2157, 43967, 207661}}, +{19160, 18, 96906, {1, 1, 5, 3, 25, 11, 15, 59, 511, 307, 757, 3275, 1299, 10373, 11943, 54169, 32417, 21645}}, +{19161, 18, 96962, {1, 3, 3, 11, 15, 15, 5, 137, 237, 741, 1613, 3565, 7359, 6181, 25953, 18137, 59759, 186693}}, +{19162, 18, 96974, {1, 3, 5, 3, 19, 13, 99, 167, 45, 71, 1683, 3635, 7603, 14879, 23903, 14795, 58395, 11853}}, +{19163, 18, 96979, {1, 3, 1, 7, 15, 45, 111, 111, 175, 567, 1031, 2255, 3895, 11861, 20195, 15461, 88411, 225713}}, +{19164, 18, 96997, {1, 1, 7, 3, 5, 5, 85, 65, 231, 643, 1591, 219, 2929, 4845, 29327, 14769, 46629, 131367}}, +{19165, 18, 96998, {1, 1, 5, 9, 29, 21, 47, 87, 113, 469, 1647, 2461, 3663, 5865, 6647, 41345, 39539, 220301}}, +{19166, 18, 97002, {1, 1, 5, 11, 9, 55, 5, 147, 141, 181, 283, 1695, 6537, 11095, 10385, 36013, 111653, 182273}}, +{19167, 18, 97054, {1, 1, 3, 5, 17, 45, 103, 253, 407, 151, 1585, 1585, 6661, 14579, 5723, 37641, 56813, 258819}}, +{19168, 18, 97064, {1, 3, 3, 3, 5, 63, 85, 201, 87, 419, 1993, 737, 5859, 6049, 17393, 9453, 65915, 1731}}, +{19169, 18, 97067, {1, 1, 3, 3, 3, 27, 97, 135, 137, 731, 1559, 3409, 5973, 15981, 19833, 8419, 33273, 44155}}, +{19170, 18, 97110, {1, 3, 3, 9, 31, 55, 109, 191, 119, 59, 645, 1047, 7767, 8379, 13781, 52289, 31605, 186667}}, +{19171, 18, 97116, {1, 3, 1, 15, 9, 1, 23, 31, 23, 311, 1879, 1939, 5509, 14573, 10501, 38867, 39131, 231151}}, +{19172, 18, 97137, {1, 3, 7, 1, 31, 33, 33, 19, 475, 723, 795, 1793, 6639, 14349, 16639, 31473, 110411, 95703}}, +{19173, 18, 97138, {1, 1, 5, 9, 11, 3, 39, 119, 455, 839, 513, 2423, 2219, 6059, 6125, 60995, 117701, 204057}}, +{19174, 18, 97143, {1, 1, 1, 9, 5, 23, 87, 33, 59, 241, 1427, 3867, 1091, 14683, 21651, 7091, 38011, 63809}}, +{19175, 18, 97183, {1, 1, 7, 15, 15, 23, 75, 227, 415, 1015, 2033, 1311, 6659, 5093, 14799, 65331, 96989, 170395}}, +{19176, 18, 97187, {1, 3, 5, 15, 25, 61, 33, 179, 503, 875, 1853, 257, 6727, 9117, 16777, 29585, 110901, 231617}}, +{19177, 18, 97190, {1, 1, 1, 15, 13, 53, 73, 151, 315, 887, 669, 3959, 5279, 1461, 15497, 40107, 9595, 252059}}, +{19178, 18, 97202, {1, 3, 7, 13, 17, 45, 43, 61, 99, 555, 981, 3255, 6385, 8723, 24451, 45243, 68617, 171911}}, +{19179, 18, 97219, {1, 3, 3, 11, 1, 29, 97, 219, 341, 597, 503, 773, 3777, 5431, 4581, 37169, 57269, 186377}}, +{19180, 18, 97239, {1, 3, 1, 11, 15, 49, 119, 189, 279, 821, 1541, 1343, 4379, 5833, 26537, 29769, 121125, 202553}}, +{19181, 18, 97245, {1, 3, 5, 9, 19, 23, 5, 197, 323, 101, 1155, 7, 5933, 3111, 19595, 36807, 40147, 153}}, +{19182, 18, 97246, {1, 1, 5, 11, 17, 9, 83, 51, 185, 415, 367, 1431, 7803, 8253, 16283, 54545, 99733, 57777}}, +{19183, 18, 97249, {1, 1, 5, 7, 5, 31, 41, 13, 33, 531, 1381, 781, 1699, 6321, 18125, 34567, 113253, 104181}}, +{19184, 18, 97264, {1, 3, 1, 5, 1, 59, 37, 239, 343, 395, 121, 2181, 2485, 13825, 19127, 22689, 103023, 198213}}, +{19185, 18, 97267, {1, 3, 1, 15, 29, 17, 11, 27, 413, 273, 1805, 2845, 8147, 10301, 5423, 29859, 85243, 190379}}, +{19186, 18, 97269, {1, 3, 1, 15, 7, 61, 29, 135, 273, 951, 725, 1345, 4231, 13651, 31291, 6081, 85735, 96023}}, +{19187, 18, 97274, {1, 1, 3, 11, 15, 29, 81, 129, 245, 295, 527, 3905, 4323, 5447, 21253, 51177, 105105, 48323}}, +{19188, 18, 97282, {1, 1, 3, 13, 13, 45, 71, 43, 383, 95, 1689, 639, 4631, 15113, 28053, 49247, 128303, 183999}}, +{19189, 18, 97287, {1, 1, 1, 3, 19, 31, 93, 35, 369, 765, 1201, 1625, 7683, 8719, 13843, 42723, 62323, 49431}}, +{19190, 18, 97294, {1, 3, 3, 11, 5, 39, 49, 217, 109, 63, 1753, 2489, 6017, 403, 16657, 59577, 80255, 66071}}, +{19191, 18, 97299, {1, 3, 5, 5, 11, 1, 79, 37, 261, 537, 1845, 3567, 3233, 16249, 9795, 2471, 69661, 118231}}, +{19192, 18, 97306, {1, 3, 3, 1, 19, 61, 35, 253, 31, 19, 161, 2597, 5733, 8231, 26569, 38613, 121945, 137391}}, +{19193, 18, 97347, {1, 3, 7, 3, 15, 25, 125, 231, 187, 797, 1237, 1767, 1557, 1095, 13613, 43325, 33801, 127881}}, +{19194, 18, 97361, {1, 1, 1, 9, 23, 63, 75, 107, 311, 493, 471, 2985, 1861, 4285, 27125, 14961, 122567, 152033}}, +{19195, 18, 97371, {1, 3, 5, 7, 9, 7, 43, 117, 203, 727, 101, 3831, 3201, 2327, 4675, 12085, 25131, 211835}}, +{19196, 18, 97435, {1, 1, 7, 11, 17, 1, 5, 87, 291, 1023, 1345, 3879, 7739, 9201, 19573, 20037, 128711, 187263}}, +{19197, 18, 97466, {1, 1, 3, 13, 25, 39, 71, 251, 365, 617, 1539, 2121, 3803, 8003, 23393, 56991, 56143, 223453}}, +{19198, 18, 97473, {1, 3, 5, 13, 25, 61, 71, 139, 319, 399, 903, 3063, 3667, 275, 13297, 25285, 120417, 169613}}, +{19199, 18, 97474, {1, 3, 1, 9, 9, 41, 59, 213, 195, 705, 313, 2313, 4993, 323, 24049, 30527, 27287, 80489}}, +{19200, 18, 97559, {1, 1, 5, 1, 29, 57, 107, 161, 217, 295, 721, 3857, 1935, 14981, 12243, 38541, 51177, 248889}}, +{19201, 18, 97565, {1, 1, 1, 15, 5, 25, 95, 137, 11, 215, 971, 1573, 4341, 4725, 8201, 33147, 87687, 187405}}, +{19202, 18, 97587, {1, 3, 3, 9, 9, 13, 31, 3, 175, 309, 145, 2265, 4863, 7199, 23881, 15445, 123753, 126653}}, +{19203, 18, 97611, {1, 1, 7, 3, 7, 43, 51, 191, 21, 639, 939, 691, 7823, 10529, 7757, 9291, 115045, 51539}}, +{19204, 18, 97622, {1, 1, 7, 13, 7, 45, 91, 173, 73, 779, 1647, 2059, 1373, 16027, 4611, 45787, 699, 78905}}, +{19205, 18, 97625, {1, 1, 5, 15, 5, 23, 123, 45, 265, 1009, 235, 1343, 5779, 209, 23263, 63163, 26079, 240905}}, +{19206, 18, 97632, {1, 1, 1, 11, 19, 31, 75, 105, 71, 21, 1361, 2125, 6949, 2111, 10333, 61881, 112811, 85723}}, +{19207, 18, 97635, {1, 3, 5, 7, 27, 17, 95, 35, 503, 181, 1885, 1097, 6019, 13745, 15009, 26343, 117727, 93017}}, +{19208, 18, 97652, {1, 1, 3, 11, 27, 41, 109, 23, 365, 283, 1509, 3269, 5969, 14567, 27715, 429, 65813, 169391}}, +{19209, 18, 97672, {1, 1, 5, 9, 11, 1, 23, 143, 401, 61, 993, 3029, 1901, 12947, 10439, 48661, 113863, 9353}}, +{19210, 18, 97678, {1, 3, 7, 3, 15, 27, 123, 51, 403, 569, 75, 3837, 8167, 10875, 29861, 44133, 52385, 185515}}, +{19211, 18, 97683, {1, 3, 3, 15, 15, 45, 3, 77, 439, 265, 103, 3715, 7889, 9241, 26511, 19063, 108239, 237233}}, +{19212, 18, 97695, {1, 1, 5, 13, 7, 47, 7, 185, 155, 833, 1895, 1103, 6761, 4307, 19551, 2371, 41079, 207663}}, +{19213, 18, 97705, {1, 1, 3, 7, 1, 49, 79, 127, 149, 383, 919, 3787, 6703, 8823, 15551, 28397, 11497, 144227}}, +{19214, 18, 97713, {1, 1, 7, 15, 7, 5, 9, 161, 425, 275, 1943, 3003, 3615, 1417, 587, 20949, 9651, 101257}}, +{19215, 18, 97719, {1, 3, 5, 11, 31, 11, 113, 201, 113, 889, 867, 3537, 7173, 3403, 4713, 29709, 50127, 55893}}, +{19216, 18, 97757, {1, 3, 7, 11, 11, 17, 123, 97, 3, 1009, 1567, 3261, 8053, 4639, 24493, 64085, 73975, 123965}}, +{19217, 18, 97761, {1, 1, 7, 1, 31, 7, 111, 137, 427, 615, 865, 2243, 3603, 5943, 1639, 22213, 81977, 77283}}, +{19218, 18, 97762, {1, 1, 5, 11, 25, 63, 5, 19, 67, 469, 621, 2831, 1635, 11859, 23143, 29189, 43955, 87475}}, +{19219, 18, 97771, {1, 3, 7, 15, 7, 61, 125, 207, 401, 567, 1943, 2645, 641, 15427, 24467, 41767, 122591, 48905}}, +{19220, 18, 97795, {1, 3, 3, 5, 1, 61, 65, 169, 329, 489, 435, 1719, 491, 6189, 18383, 34973, 90611, 180991}}, +{19221, 18, 97809, {1, 3, 7, 9, 25, 43, 115, 11, 289, 193, 263, 3885, 4881, 15669, 19757, 20073, 119873, 67069}}, +{19222, 18, 97826, {1, 1, 7, 11, 3, 45, 93, 115, 233, 891, 1541, 2557, 2115, 2237, 4253, 30445, 32983, 86185}}, +{19223, 18, 97845, {1, 3, 7, 3, 29, 23, 105, 51, 157, 505, 773, 2403, 1237, 5193, 32725, 53331, 66377, 25745}}, +{19224, 18, 97877, {1, 3, 5, 11, 31, 5, 111, 251, 287, 225, 913, 97, 3429, 15111, 10637, 18843, 102589, 229667}}, +{19225, 18, 97882, {1, 3, 7, 13, 21, 43, 27, 11, 265, 991, 1645, 1967, 2675, 3083, 2957, 65275, 7757, 201953}}, +{19226, 18, 97891, {1, 3, 7, 7, 23, 59, 37, 105, 113, 961, 1585, 855, 6037, 8461, 24057, 46861, 42421, 21061}}, +{19227, 18, 97903, {1, 1, 5, 1, 7, 45, 37, 147, 225, 793, 737, 753, 565, 5347, 15393, 42611, 39253, 246455}}, +{19228, 18, 97961, {1, 3, 3, 5, 29, 59, 125, 69, 283, 677, 1615, 3341, 219, 10753, 445, 43343, 117035, 137907}}, +{19229, 18, 97970, {1, 1, 5, 1, 19, 41, 93, 137, 481, 93, 703, 1211, 4051, 5591, 5913, 32831, 62027, 60519}}, +{19230, 18, 97975, {1, 1, 7, 13, 17, 63, 65, 147, 361, 83, 1383, 1761, 579, 9493, 2611, 6951, 12197, 81857}}, +{19231, 18, 97996, {1, 3, 3, 15, 11, 3, 25, 7, 221, 211, 1745, 1173, 5479, 12063, 5667, 43443, 4865, 193345}}, +{19232, 18, 98001, {1, 1, 5, 11, 31, 11, 71, 61, 57, 851, 1089, 1395, 4525, 1223, 27681, 14355, 23125, 257233}}, +{19233, 18, 98014, {1, 3, 1, 11, 25, 59, 17, 193, 229, 1005, 387, 3993, 2457, 4185, 18421, 1315, 125155, 142277}}, +{19234, 18, 98023, {1, 1, 5, 11, 13, 55, 123, 191, 5, 1023, 705, 3481, 367, 12961, 11917, 12131, 99109, 105093}}, +{19235, 18, 98035, {1, 1, 3, 11, 13, 29, 57, 57, 467, 19, 1409, 971, 3041, 13487, 24737, 3377, 97883, 248893}}, +{19236, 18, 98052, {1, 3, 7, 3, 3, 37, 109, 77, 201, 469, 39, 1747, 2027, 14781, 18821, 34647, 123865, 195097}}, +{19237, 18, 98059, {1, 3, 3, 5, 29, 27, 97, 217, 249, 141, 431, 1621, 539, 8945, 3443, 48227, 27867, 205355}}, +{19238, 18, 98061, {1, 1, 3, 13, 7, 57, 65, 167, 103, 511, 239, 325, 1793, 2811, 14223, 40999, 12589, 149759}}, +{19239, 18, 98086, {1, 3, 5, 11, 3, 1, 61, 87, 283, 29, 507, 3473, 2685, 13829, 32337, 8413, 12201, 152309}}, +{19240, 18, 98098, {1, 3, 5, 15, 1, 23, 103, 173, 423, 915, 1519, 1859, 7341, 8689, 17141, 53769, 81189, 144305}}, +{19241, 18, 98117, {1, 1, 1, 5, 31, 41, 89, 117, 329, 245, 381, 3357, 1053, 15079, 3569, 27665, 65645, 259279}}, +{19242, 18, 98118, {1, 1, 7, 5, 3, 55, 91, 35, 463, 15, 1195, 533, 6013, 10755, 1919, 61169, 81285, 82757}}, +{19243, 18, 98132, {1, 3, 5, 11, 3, 29, 85, 169, 163, 733, 939, 3401, 3709, 3307, 17329, 56873, 10721, 174235}}, +{19244, 18, 98135, {1, 1, 5, 1, 11, 45, 75, 247, 435, 21, 1985, 2261, 7013, 4935, 2457, 41077, 53121, 143269}}, +{19245, 18, 98145, {1, 3, 3, 13, 17, 59, 43, 149, 27, 1, 367, 957, 5607, 2591, 22161, 10095, 73769, 52455}}, +{19246, 18, 98160, {1, 1, 3, 13, 15, 15, 121, 83, 469, 819, 1973, 3595, 2313, 1621, 3105, 42971, 7243, 98727}}, +{19247, 18, 98194, {1, 1, 5, 7, 21, 53, 123, 9, 119, 437, 1567, 431, 3647, 10967, 22037, 8523, 81279, 126473}}, +{19248, 18, 98205, {1, 1, 5, 13, 5, 23, 125, 119, 195, 555, 341, 2037, 313, 6323, 27201, 8377, 122793, 197781}}, +{19249, 18, 98210, {1, 3, 3, 5, 17, 25, 67, 237, 349, 443, 1529, 3541, 3105, 10105, 13409, 20165, 64597, 244513}}, +{19250, 18, 98224, {1, 1, 5, 1, 11, 43, 77, 245, 359, 625, 1171, 597, 3, 591, 2457, 20275, 75995, 204685}}, +{19251, 18, 98227, {1, 3, 1, 11, 5, 13, 99, 107, 285, 617, 1687, 2959, 4439, 771, 3103, 62363, 89437, 172221}}, +{19252, 18, 98254, {1, 3, 1, 11, 1, 63, 43, 85, 23, 95, 501, 1223, 669, 16101, 1071, 53175, 102101, 419}}, +{19253, 18, 98271, {1, 3, 1, 5, 19, 23, 63, 105, 289, 419, 885, 441, 5107, 4213, 8683, 1847, 113301, 240821}}, +{19254, 18, 98272, {1, 1, 1, 9, 9, 9, 111, 63, 53, 531, 517, 3463, 8171, 2645, 13883, 52213, 40707, 24637}}, +{19255, 18, 98302, {1, 3, 1, 5, 15, 43, 71, 215, 117, 685, 1819, 1105, 5805, 8875, 31093, 31077, 93807, 65631}}, +{19256, 18, 98320, {1, 1, 7, 7, 17, 15, 31, 87, 13, 615, 2003, 3461, 7585, 1947, 6693, 26141, 95059, 52229}}, +{19257, 18, 98346, {1, 1, 3, 5, 5, 55, 7, 41, 473, 541, 545, 2901, 763, 12731, 24715, 43301, 7981, 123961}}, +{19258, 18, 98356, {1, 3, 1, 11, 13, 29, 65, 47, 511, 931, 1681, 3813, 995, 4261, 32243, 21327, 33749, 52607}}, +{19259, 18, 98360, {1, 1, 3, 1, 27, 51, 19, 119, 71, 989, 485, 1483, 4115, 11743, 5513, 32447, 62599, 163185}}, +{19260, 18, 98366, {1, 3, 7, 13, 7, 5, 127, 67, 221, 773, 1641, 3763, 2061, 2025, 29813, 64385, 109219, 70149}}, +{19261, 18, 98478, {1, 1, 5, 15, 9, 29, 105, 245, 333, 11, 803, 1877, 6735, 3797, 1913, 63837, 23649, 234721}}, +{19262, 18, 98483, {1, 3, 7, 13, 11, 21, 113, 175, 385, 885, 1259, 983, 7715, 11889, 12515, 35723, 9897, 63415}}, +{19263, 18, 98486, {1, 1, 5, 9, 31, 63, 53, 51, 375, 133, 2021, 3173, 3861, 9885, 4117, 37505, 73687, 16411}}, +{19264, 18, 98497, {1, 3, 7, 7, 11, 13, 99, 235, 285, 159, 489, 917, 3033, 7711, 6545, 52893, 28549, 68791}}, +{19265, 18, 98528, {1, 1, 5, 11, 31, 15, 89, 157, 105, 347, 455, 3391, 5341, 16035, 11819, 57679, 48057, 147673}}, +{19266, 18, 98537, {1, 3, 1, 5, 21, 5, 1, 41, 213, 677, 1745, 2591, 6237, 14265, 5963, 30017, 47293, 199411}}, +{19267, 18, 98551, {1, 3, 1, 15, 19, 9, 65, 103, 489, 977, 579, 2571, 2827, 12971, 24445, 17963, 68829, 89781}}, +{19268, 18, 98557, {1, 3, 5, 7, 3, 45, 9, 223, 137, 749, 919, 2695, 7569, 6735, 16649, 55899, 91531, 10709}}, +{19269, 18, 98572, {1, 1, 5, 11, 25, 51, 81, 243, 473, 85, 1189, 2317, 785, 9307, 25555, 36623, 66881, 150945}}, +{19270, 18, 98575, {1, 1, 3, 7, 9, 17, 99, 57, 333, 891, 71, 2359, 2067, 13265, 30077, 17935, 47343, 22673}}, +{19271, 18, 98600, {1, 1, 5, 7, 13, 17, 77, 109, 427, 667, 1367, 2383, 7505, 11239, 14229, 35431, 35473, 62447}}, +{19272, 18, 98628, {1, 1, 1, 15, 27, 5, 51, 221, 471, 877, 449, 3961, 4197, 15713, 2955, 58985, 31431, 241539}}, +{19273, 18, 98635, {1, 1, 7, 1, 13, 61, 55, 199, 87, 679, 723, 271, 1061, 8043, 13163, 8079, 81501, 60467}}, +{19274, 18, 98645, {1, 1, 3, 3, 11, 1, 85, 65, 445, 731, 2017, 3113, 8085, 7133, 14789, 2435, 38459, 234997}}, +{19275, 18, 98652, {1, 3, 3, 9, 23, 31, 49, 137, 349, 651, 1975, 3429, 7137, 7841, 28297, 58209, 36493, 259097}}, +{19276, 18, 98655, {1, 1, 7, 15, 23, 11, 87, 133, 245, 445, 151, 4075, 141, 15395, 16649, 36925, 98421, 217265}}, +{19277, 18, 98665, {1, 3, 3, 5, 25, 53, 57, 177, 481, 177, 671, 1249, 2663, 12855, 24537, 31867, 110323, 164113}}, +{19278, 18, 98710, {1, 3, 5, 7, 23, 25, 19, 91, 447, 1023, 373, 3863, 4399, 12973, 7475, 37485, 8567, 53271}}, +{19279, 18, 98719, {1, 1, 5, 7, 31, 33, 31, 75, 223, 299, 1549, 1863, 353, 4339, 8891, 10365, 3399, 185807}}, +{19280, 18, 98720, {1, 1, 7, 9, 31, 53, 23, 203, 319, 915, 1923, 205, 3119, 7243, 25251, 12907, 101921, 102695}}, +{19281, 18, 98786, {1, 1, 7, 9, 15, 1, 123, 173, 123, 215, 263, 3003, 5881, 1117, 15195, 47457, 66663, 224177}}, +{19282, 18, 98792, {1, 1, 7, 13, 11, 25, 61, 121, 173, 115, 1897, 2145, 7783, 9673, 3321, 1707, 61475, 53875}}, +{19283, 18, 98806, {1, 3, 7, 3, 31, 21, 27, 99, 421, 225, 1565, 2351, 2275, 10583, 7877, 43505, 27629, 140919}}, +{19284, 18, 98816, {1, 3, 5, 5, 11, 45, 71, 105, 487, 867, 361, 3995, 2039, 1495, 27481, 4753, 20657, 67077}}, +{19285, 18, 98836, {1, 1, 5, 1, 19, 33, 1, 77, 377, 353, 719, 1463, 7053, 7409, 32165, 15557, 117673, 69887}}, +{19286, 18, 98859, {1, 1, 5, 7, 25, 5, 15, 231, 23, 213, 1627, 1801, 7793, 651, 9903, 51745, 111611, 39679}}, +{19287, 18, 98864, {1, 3, 3, 5, 23, 43, 37, 199, 437, 19, 1853, 2119, 461, 12641, 15865, 39941, 122545, 213443}}, +{19288, 18, 98879, {1, 3, 3, 11, 31, 45, 19, 227, 507, 909, 1501, 2021, 905, 1763, 1897, 3735, 81475, 30005}}, +{19289, 18, 98905, {1, 1, 5, 5, 29, 9, 55, 25, 23, 59, 593, 2197, 6029, 8235, 8397, 27521, 96221, 168837}}, +{19290, 18, 98917, {1, 3, 1, 15, 5, 33, 75, 121, 433, 557, 1011, 3785, 2545, 953, 17295, 14407, 94871, 60445}}, +{19291, 18, 98929, {1, 3, 3, 7, 7, 53, 29, 75, 171, 587, 1701, 3815, 2761, 4403, 39, 17291, 34897, 187257}}, +{19292, 18, 98969, {1, 3, 1, 15, 17, 57, 11, 95, 335, 13, 265, 1161, 7945, 6419, 26723, 31907, 89995, 82265}}, +{19293, 18, 98975, {1, 1, 7, 5, 9, 59, 27, 153, 37, 165, 823, 3525, 621, 4777, 3485, 9109, 116567, 34691}}, +{19294, 18, 98976, {1, 1, 5, 13, 23, 27, 11, 63, 35, 39, 995, 2101, 2611, 14139, 2683, 63787, 19813, 97497}}, +{19295, 18, 98981, {1, 3, 7, 15, 31, 15, 3, 163, 167, 53, 71, 1881, 4213, 3485, 21525, 705, 122345, 203549}}, +{19296, 18, 98999, {1, 3, 5, 5, 21, 33, 85, 133, 21, 505, 1639, 3989, 771, 7171, 21953, 34503, 31247, 247459}}, +{19297, 18, 99020, {1, 1, 7, 7, 31, 1, 27, 39, 469, 243, 679, 4091, 7137, 8505, 13329, 34139, 69485, 259795}}, +{19298, 18, 99026, {1, 3, 5, 5, 31, 43, 31, 161, 413, 657, 1407, 1417, 7349, 3301, 7691, 49355, 22929, 68043}}, +{19299, 18, 99054, {1, 1, 7, 11, 15, 61, 73, 217, 163, 503, 193, 3795, 41, 16251, 1187, 65363, 113211, 100337}}, +{19300, 18, 99083, {1, 3, 1, 11, 9, 15, 109, 187, 109, 865, 845, 1579, 321, 1269, 20613, 5693, 58421, 254959}}, +{19301, 18, 99093, {1, 3, 1, 13, 11, 3, 19, 135, 93, 779, 1383, 219, 2737, 377, 1125, 35663, 130815, 103797}}, +{19302, 18, 99103, {1, 1, 5, 11, 25, 25, 71, 249, 201, 679, 1677, 1817, 7619, 10327, 14821, 47847, 33629, 250979}}, +{19303, 18, 99131, {1, 1, 7, 15, 23, 19, 69, 39, 25, 843, 99, 3499, 2457, 11681, 30009, 17609, 46653, 162427}}, +{19304, 18, 99156, {1, 3, 3, 7, 23, 25, 77, 135, 61, 501, 1381, 3977, 1957, 11255, 16053, 30297, 58835, 97589}}, +{19305, 18, 99159, {1, 3, 5, 3, 9, 31, 9, 55, 421, 109, 1823, 1921, 7349, 2661, 4503, 36691, 48843, 182631}}, +{19306, 18, 99165, {1, 1, 1, 11, 7, 23, 107, 125, 393, 105, 1407, 3461, 4539, 6121, 7881, 32407, 83749, 98831}}, +{19307, 18, 99170, {1, 3, 3, 13, 5, 59, 5, 3, 185, 959, 241, 819, 1443, 1789, 12771, 26703, 25399, 182583}}, +{19308, 18, 99189, {1, 1, 1, 3, 3, 47, 7, 45, 93, 373, 175, 87, 649, 12903, 5029, 1945, 111967, 140889}}, +{19309, 18, 99223, {1, 3, 1, 11, 9, 47, 25, 191, 215, 845, 1557, 9, 3451, 5837, 11763, 29127, 113115, 99039}}, +{19310, 18, 99227, {1, 1, 1, 5, 23, 53, 45, 1, 361, 751, 807, 1765, 685, 2109, 28437, 60489, 65739, 234511}}, +{19311, 18, 99271, {1, 3, 3, 7, 15, 57, 71, 61, 195, 123, 1745, 3249, 351, 14309, 2017, 15653, 110803, 45937}}, +{19312, 18, 99277, {1, 3, 7, 9, 25, 11, 25, 29, 467, 313, 1927, 2423, 7311, 14299, 8145, 8123, 115103, 213881}}, +{19313, 18, 99278, {1, 1, 3, 15, 1, 35, 111, 99, 507, 417, 1433, 129, 5565, 13365, 18853, 8607, 109739, 120623}}, +{19314, 18, 99313, {1, 1, 1, 7, 13, 31, 93, 3, 327, 67, 1101, 1965, 5939, 6505, 3117, 3021, 33707, 79353}}, +{19315, 18, 99314, {1, 1, 3, 7, 15, 21, 23, 117, 367, 137, 287, 903, 4685, 13943, 26779, 24607, 70853, 99743}}, +{19316, 18, 99345, {1, 1, 7, 11, 25, 43, 67, 181, 459, 737, 1567, 3491, 5085, 6487, 23115, 62341, 102943, 77301}}, +{19317, 18, 99361, {1, 1, 3, 15, 7, 35, 81, 199, 455, 851, 835, 3421, 4675, 15173, 9205, 7305, 109849, 15183}}, +{19318, 18, 99367, {1, 3, 5, 11, 9, 55, 3, 53, 235, 271, 1265, 3681, 3627, 3485, 11591, 53097, 85949, 158173}}, +{19319, 18, 99386, {1, 3, 7, 3, 15, 27, 57, 183, 487, 9, 1797, 2973, 3687, 12987, 9133, 14595, 52067, 131217}}, +{19320, 18, 99394, {1, 1, 5, 3, 7, 25, 19, 215, 291, 325, 813, 577, 4249, 10373, 17233, 29557, 72979, 70721}}, +{19321, 18, 99417, {1, 3, 1, 7, 25, 1, 107, 167, 367, 303, 883, 993, 4189, 6557, 13697, 15251, 77065, 116127}}, +{19322, 18, 99418, {1, 3, 5, 11, 13, 59, 9, 121, 489, 593, 1503, 601, 5263, 13837, 20991, 35761, 45867, 155905}}, +{19323, 18, 99453, {1, 1, 3, 3, 19, 47, 127, 115, 267, 261, 969, 961, 5919, 10085, 29363, 4935, 100485, 75561}}, +{19324, 18, 99454, {1, 3, 1, 15, 11, 53, 39, 187, 53, 11, 1951, 913, 965, 2565, 5457, 3237, 24923, 245681}}, +{19325, 18, 99477, {1, 1, 7, 3, 15, 5, 25, 45, 17, 45, 1317, 1853, 6627, 15879, 29935, 24749, 118149, 35359}}, +{19326, 18, 99518, {1, 1, 7, 1, 21, 45, 67, 71, 25, 743, 925, 3441, 3013, 1613, 6321, 12491, 119931, 164701}}, +{19327, 18, 99544, {1, 1, 7, 1, 13, 15, 35, 187, 91, 995, 401, 2443, 4183, 10823, 20589, 27413, 117095, 20359}}, +{19328, 18, 99559, {1, 3, 3, 7, 15, 51, 55, 167, 409, 859, 719, 3223, 2457, 16013, 13639, 4027, 79339, 225113}}, +{19329, 18, 99592, {1, 3, 1, 9, 3, 29, 105, 193, 279, 27, 1093, 2199, 6983, 619, 10163, 40365, 71015, 102191}}, +{19330, 18, 99597, {1, 1, 3, 9, 29, 5, 33, 247, 27, 299, 2017, 379, 6199, 15047, 18329, 3493, 47679, 76703}}, +{19331, 18, 99603, {1, 3, 5, 5, 9, 19, 51, 129, 157, 831, 1373, 653, 7489, 13125, 1815, 10915, 88679, 50269}}, +{19332, 18, 99621, {1, 3, 3, 9, 9, 49, 79, 11, 181, 679, 1697, 3707, 205, 13305, 6293, 56653, 42619, 116257}}, +{19333, 18, 99646, {1, 1, 5, 9, 23, 41, 17, 135, 145, 715, 257, 1561, 6941, 2411, 31459, 25055, 35807, 51579}}, +{19334, 18, 99693, {1, 1, 1, 7, 11, 13, 49, 155, 403, 569, 751, 2959, 425, 13949, 22047, 49829, 71925, 101647}}, +{19335, 18, 99722, {1, 1, 3, 15, 15, 15, 17, 213, 113, 395, 1999, 2039, 3623, 13255, 24435, 54487, 78773, 202637}}, +{19336, 18, 99760, {1, 3, 7, 9, 5, 21, 61, 165, 97, 349, 1131, 2677, 333, 13129, 2137, 22909, 95795, 143081}}, +{19337, 18, 99780, {1, 1, 1, 5, 31, 41, 109, 179, 295, 475, 639, 3929, 1841, 7545, 19411, 52573, 10173, 236769}}, +{19338, 18, 99789, {1, 1, 1, 5, 27, 51, 9, 217, 393, 671, 931, 433, 7303, 16295, 6727, 5703, 88241, 132665}}, +{19339, 18, 99804, {1, 1, 7, 13, 21, 33, 19, 241, 497, 519, 1413, 489, 4975, 1345, 24925, 40383, 110815, 136217}}, +{19340, 18, 99823, {1, 3, 1, 9, 7, 51, 79, 15, 15, 601, 997, 3713, 7829, 903, 12393, 60059, 42057, 175141}}, +{19341, 18, 99826, {1, 1, 5, 15, 9, 63, 107, 63, 495, 591, 207, 779, 8069, 3013, 23839, 3075, 127481, 193885}}, +{19342, 18, 99832, {1, 1, 1, 7, 13, 17, 121, 171, 99, 59, 1043, 1109, 1337, 1179, 27635, 34063, 12945, 1431}}, +{19343, 18, 99842, {1, 3, 1, 3, 5, 47, 101, 205, 157, 595, 263, 3887, 7015, 4693, 15211, 25381, 128803, 227233}}, +{19344, 18, 99851, {1, 1, 3, 11, 17, 33, 1, 19, 153, 603, 119, 2305, 4041, 4011, 19849, 761, 52807, 129811}}, +{19345, 18, 99862, {1, 3, 7, 15, 21, 7, 13, 225, 497, 459, 389, 911, 6349, 5059, 6363, 41915, 90687, 214501}}, +{19346, 18, 99871, {1, 3, 1, 15, 1, 39, 31, 83, 147, 629, 185, 1913, 3217, 959, 651, 65267, 108613, 20391}}, +{19347, 18, 99899, {1, 3, 1, 7, 9, 11, 29, 201, 245, 815, 1869, 2597, 5693, 15669, 23293, 30885, 4029, 225737}}, +{19348, 18, 99940, {1, 3, 5, 11, 7, 29, 119, 207, 499, 23, 1563, 3645, 3839, 2509, 24043, 64231, 22509, 221835}}, +{19349, 18, 99983, {1, 3, 3, 7, 11, 49, 13, 201, 353, 217, 831, 2803, 1521, 12989, 25339, 41035, 2125, 165271}}, +{19350, 18, 99985, {1, 1, 5, 11, 1, 45, 93, 29, 55, 1007, 1919, 241, 5931, 9211, 17291, 39849, 25453, 96077}}, +{19351, 18, 100025, {1, 3, 1, 1, 29, 43, 11, 105, 331, 693, 1363, 291, 8191, 7813, 14135, 38287, 15469, 256913}}, +{19352, 18, 100043, {1, 3, 5, 11, 19, 21, 23, 117, 253, 111, 733, 3785, 5835, 423, 30251, 27283, 79561, 162095}}, +{19353, 18, 100070, {1, 3, 3, 1, 9, 19, 83, 13, 37, 725, 1597, 1117, 8067, 8085, 1315, 41813, 8973, 175525}}, +{19354, 18, 100076, {1, 1, 5, 3, 13, 39, 3, 213, 335, 907, 1143, 1729, 601, 11255, 24351, 41045, 11335, 186221}}, +{19355, 18, 100084, {1, 3, 3, 9, 17, 11, 29, 33, 303, 815, 1607, 2403, 8095, 4213, 16697, 64733, 24439, 93081}}, +{19356, 18, 100096, {1, 1, 1, 3, 13, 37, 35, 181, 243, 645, 1915, 3521, 569, 3005, 7271, 32755, 64575, 119813}}, +{19357, 18, 100105, {1, 1, 5, 13, 25, 59, 77, 121, 459, 755, 385, 1893, 1227, 9957, 5069, 40063, 27261, 4703}}, +{19358, 18, 100108, {1, 3, 1, 3, 29, 41, 95, 255, 219, 21, 317, 3021, 2615, 5101, 19413, 25795, 6521, 157749}}, +{19359, 18, 100123, {1, 3, 3, 5, 7, 33, 7, 205, 415, 23, 1431, 117, 1605, 9541, 11825, 49195, 86341, 99673}}, +{19360, 18, 100132, {1, 3, 3, 5, 17, 37, 33, 209, 49, 161, 321, 3697, 6483, 12859, 895, 675, 1899, 260289}}, +{19361, 18, 100141, {1, 1, 3, 15, 1, 27, 83, 125, 309, 553, 505, 2209, 4931, 2593, 28253, 12879, 74971, 9047}}, +{19362, 18, 100181, {1, 3, 7, 3, 15, 3, 105, 19, 41, 119, 149, 3847, 6593, 875, 23777, 4547, 57717, 139387}}, +{19363, 18, 100191, {1, 1, 1, 3, 9, 43, 25, 15, 67, 609, 951, 273, 8095, 621, 24819, 17233, 53423, 192757}}, +{19364, 18, 100202, {1, 3, 5, 3, 9, 49, 107, 215, 245, 217, 545, 2285, 2075, 401, 26599, 32967, 130457, 203755}}, +{19365, 18, 100216, {1, 1, 5, 1, 7, 31, 87, 181, 135, 155, 9, 1431, 307, 13367, 31147, 10327, 2817, 63327}}, +{19366, 18, 100246, {1, 3, 3, 3, 29, 17, 55, 201, 33, 275, 2005, 3037, 3439, 1513, 7563, 46491, 103319, 5279}}, +{19367, 18, 100256, {1, 3, 7, 11, 31, 63, 105, 169, 257, 225, 711, 2041, 1519, 11801, 18543, 35173, 92125, 72729}}, +{19368, 18, 100271, {1, 1, 3, 3, 11, 13, 127, 231, 229, 809, 303, 1167, 47, 4281, 2373, 10455, 74685, 131775}}, +{19369, 18, 100285, {1, 1, 5, 15, 1, 5, 97, 139, 189, 39, 37, 3513, 2119, 1453, 11477, 45477, 75613, 169915}}, +{19370, 18, 100294, {1, 3, 5, 1, 15, 27, 31, 87, 311, 785, 489, 1331, 5259, 6963, 26441, 41675, 107187, 60723}}, +{19371, 18, 100305, {1, 1, 3, 5, 13, 9, 33, 3, 273, 357, 841, 1421, 5993, 12449, 6821, 4283, 9437, 215035}}, +{19372, 18, 100321, {1, 3, 3, 1, 15, 43, 101, 35, 23, 743, 29, 3953, 3095, 14355, 25977, 12513, 54565, 20199}}, +{19373, 18, 100331, {1, 3, 3, 1, 11, 53, 99, 95, 63, 503, 1361, 3231, 2445, 5073, 4667, 33033, 4575, 139475}}, +{19374, 18, 100334, {1, 3, 3, 5, 19, 57, 15, 115, 125, 1017, 1913, 907, 2461, 3229, 16591, 6591, 26385, 228661}}, +{19375, 18, 100345, {1, 3, 1, 11, 27, 19, 7, 121, 245, 997, 1743, 2571, 1333, 9603, 27811, 42081, 44365, 94943}}, +{19376, 18, 100346, {1, 3, 1, 1, 13, 5, 127, 217, 63, 137, 989, 1441, 1133, 8273, 18091, 22243, 122931, 28867}}, +{19377, 18, 100369, {1, 1, 7, 15, 23, 39, 57, 83, 321, 817, 819, 223, 4803, 6935, 2027, 20373, 119683, 29781}}, +{19378, 18, 100372, {1, 1, 7, 7, 9, 1, 55, 211, 455, 283, 1647, 471, 4351, 14119, 6945, 63117, 109687, 200165}}, +{19379, 18, 100382, {1, 1, 7, 7, 29, 45, 113, 253, 135, 375, 1091, 959, 1423, 1241, 31689, 33751, 73459, 91769}}, +{19380, 18, 100403, {1, 3, 5, 11, 23, 63, 55, 181, 453, 267, 995, 1309, 2847, 3791, 21683, 59809, 81891, 132635}}, +{19381, 18, 100451, {1, 1, 1, 13, 17, 37, 87, 17, 61, 689, 1895, 3877, 4717, 6447, 22329, 1619, 30069, 190887}}, +{19382, 18, 100488, {1, 3, 1, 7, 27, 61, 17, 51, 99, 909, 85, 951, 107, 1923, 35, 63389, 90273, 152643}}, +{19383, 18, 100499, {1, 1, 1, 1, 15, 39, 77, 255, 191, 613, 655, 1881, 267, 3927, 18025, 13825, 15381, 169193}}, +{19384, 18, 100501, {1, 3, 3, 1, 31, 17, 73, 69, 231, 221, 501, 3755, 1671, 2049, 22493, 16353, 1775, 181783}}, +{19385, 18, 100511, {1, 1, 7, 5, 31, 45, 125, 189, 287, 487, 1911, 3133, 3257, 8967, 21295, 1247, 72297, 68269}}, +{19386, 18, 100536, {1, 3, 3, 1, 7, 9, 123, 147, 7, 381, 1597, 1289, 7831, 14493, 21145, 15487, 70353, 147891}}, +{19387, 18, 100629, {1, 1, 5, 9, 15, 17, 43, 87, 101, 425, 1819, 163, 6741, 8255, 2591, 17719, 112871, 110793}}, +{19388, 18, 100652, {1, 1, 3, 9, 3, 27, 7, 41, 43, 743, 131, 705, 2607, 9963, 26367, 41191, 126347, 164291}}, +{19389, 18, 100655, {1, 3, 3, 15, 7, 17, 97, 153, 283, 461, 1723, 2421, 4973, 16369, 30633, 62299, 119425, 3591}}, +{19390, 18, 100669, {1, 1, 1, 13, 7, 33, 95, 255, 429, 693, 849, 3783, 5985, 8551, 23227, 1015, 109023, 42493}}, +{19391, 18, 100687, {1, 3, 1, 7, 3, 43, 53, 137, 413, 265, 2033, 1347, 335, 529, 24751, 16443, 122195, 158951}}, +{19392, 18, 100692, {1, 1, 5, 9, 27, 21, 83, 185, 325, 557, 1247, 2739, 6925, 5459, 26027, 62217, 61113, 197743}}, +{19393, 18, 100696, {1, 1, 3, 13, 9, 57, 79, 133, 137, 851, 863, 1605, 7839, 11809, 29941, 20473, 6687, 164479}}, +{19394, 18, 100701, {1, 1, 3, 9, 9, 51, 123, 29, 139, 43, 1329, 2701, 3413, 3875, 19673, 62369, 10529, 226525}}, +{19395, 18, 100706, {1, 3, 1, 5, 25, 47, 7, 201, 119, 623, 9, 25, 1713, 10817, 8201, 5847, 77477, 237883}}, +{19396, 18, 100711, {1, 1, 5, 13, 15, 53, 39, 93, 235, 619, 1695, 2389, 2571, 2389, 4619, 45769, 17245, 69973}}, +{19397, 18, 100726, {1, 1, 7, 1, 31, 9, 75, 143, 1, 67, 809, 1037, 2801, 16129, 22443, 26021, 119683, 14681}}, +{19398, 18, 100754, {1, 3, 1, 9, 23, 49, 69, 71, 139, 953, 1053, 3059, 1061, 5881, 26207, 15907, 79389, 95341}}, +{19399, 18, 100759, {1, 3, 5, 1, 19, 39, 69, 183, 95, 289, 847, 393, 1649, 1275, 21187, 34715, 67553, 123239}}, +{19400, 18, 100790, {1, 1, 1, 5, 21, 39, 119, 193, 347, 87, 731, 3327, 6089, 13781, 20389, 52303, 11869, 48975}}, +{19401, 18, 100838, {1, 3, 5, 1, 19, 17, 93, 33, 215, 457, 687, 1325, 1997, 2655, 21195, 54997, 36877, 57991}}, +{19402, 18, 100878, {1, 1, 1, 3, 17, 45, 91, 45, 231, 611, 413, 2321, 7181, 13765, 7791, 6973, 24497, 231795}}, +{19403, 18, 100880, {1, 3, 3, 15, 7, 29, 103, 31, 295, 637, 1775, 2293, 8001, 4175, 1257, 16881, 93695, 180591}}, +{19404, 18, 100885, {1, 1, 1, 13, 31, 7, 47, 51, 267, 231, 463, 939, 7977, 8593, 15329, 36871, 50449, 222341}}, +{19405, 18, 100886, {1, 3, 7, 3, 27, 31, 57, 135, 507, 177, 1455, 1963, 4473, 6449, 727, 49853, 65275, 237531}}, +{19406, 18, 100943, {1, 3, 7, 11, 31, 21, 111, 231, 269, 27, 719, 3275, 2489, 3689, 3425, 23763, 39413, 64565}}, +{19407, 18, 100948, {1, 1, 1, 11, 23, 27, 31, 153, 201, 985, 1553, 3061, 7663, 4079, 13549, 48765, 64169, 68223}}, +{19408, 18, 100957, {1, 1, 7, 15, 11, 53, 125, 23, 73, 799, 591, 665, 127, 3941, 11251, 12649, 2657, 230923}}, +{19409, 18, 100962, {1, 1, 7, 15, 29, 43, 95, 81, 337, 367, 779, 1237, 7627, 997, 3355, 1245, 70477, 159097}}, +{19410, 18, 100968, {1, 3, 1, 13, 19, 31, 11, 91, 179, 425, 1395, 1439, 2723, 401, 26779, 36723, 115743, 179653}}, +{19411, 18, 100981, {1, 1, 3, 1, 29, 35, 11, 217, 301, 421, 765, 1949, 5475, 2247, 3953, 27091, 16895, 194821}}, +{19412, 18, 100986, {1, 1, 5, 9, 11, 21, 95, 135, 127, 65, 609, 3893, 7143, 13231, 29199, 36205, 38711, 159599}}, +{19413, 18, 101001, {1, 3, 5, 13, 25, 25, 101, 221, 495, 993, 961, 2575, 907, 5277, 18415, 1797, 22043, 129889}}, +{19414, 18, 101012, {1, 1, 1, 15, 21, 21, 99, 3, 175, 735, 659, 543, 7573, 15549, 14067, 60009, 65785, 112927}}, +{19415, 18, 101015, {1, 3, 7, 7, 3, 39, 61, 203, 143, 581, 487, 2097, 3943, 6869, 14435, 46431, 101781, 233067}}, +{19416, 18, 101019, {1, 1, 3, 1, 13, 27, 21, 147, 295, 89, 1845, 1017, 4621, 10029, 3517, 25371, 104531, 225179}}, +{19417, 18, 101037, {1, 1, 3, 11, 25, 51, 45, 179, 299, 487, 2039, 85, 4643, 8211, 12051, 64819, 93481, 159511}}, +{19418, 18, 101063, {1, 1, 5, 3, 21, 7, 73, 193, 415, 7, 125, 2487, 7369, 2043, 7633, 19265, 65337, 57399}}, +{19419, 18, 101105, {1, 1, 5, 3, 3, 53, 51, 169, 313, 973, 1549, 243, 3155, 13827, 24971, 61393, 15147, 187397}}, +{19420, 18, 101144, {1, 3, 3, 3, 29, 33, 91, 41, 367, 77, 1259, 1703, 2105, 14473, 17763, 29809, 47777, 205553}}, +{19421, 18, 101147, {1, 3, 7, 3, 23, 61, 59, 235, 51, 41, 417, 691, 2953, 15577, 32283, 2793, 109557, 64729}}, +{19422, 18, 101154, {1, 1, 5, 9, 13, 17, 93, 201, 151, 323, 1481, 3645, 3039, 5131, 503, 42055, 114939, 198755}}, +{19423, 18, 101163, {1, 3, 5, 1, 21, 53, 75, 29, 283, 541, 499, 309, 1923, 995, 21479, 56183, 103743, 152113}}, +{19424, 18, 101166, {1, 3, 1, 3, 21, 51, 67, 97, 481, 509, 805, 213, 5157, 13573, 16187, 8199, 28025, 208445}}, +{19425, 18, 101173, {1, 1, 7, 7, 15, 25, 107, 127, 355, 249, 707, 1287, 6831, 5317, 15613, 12837, 48091, 27611}}, +{19426, 18, 101174, {1, 3, 3, 7, 31, 53, 127, 239, 17, 709, 979, 4023, 7149, 4239, 20015, 44365, 113245, 75873}}, +{19427, 18, 101219, {1, 3, 5, 11, 27, 37, 49, 123, 137, 967, 1857, 3961, 7429, 8355, 30733, 64587, 73903, 188581}}, +{19428, 18, 101240, {1, 3, 3, 7, 19, 51, 69, 121, 345, 637, 1987, 335, 7071, 13849, 22369, 46895, 20761, 148227}}, +{19429, 18, 101250, {1, 1, 3, 11, 9, 1, 93, 151, 487, 889, 919, 2429, 5425, 15303, 12583, 57627, 42683, 98265}}, +{19430, 18, 101259, {1, 3, 5, 3, 1, 29, 87, 189, 285, 805, 933, 1381, 2789, 107, 14215, 33171, 110573, 250983}}, +{19431, 18, 101273, {1, 3, 1, 1, 27, 43, 63, 115, 317, 401, 885, 1029, 7003, 10041, 15299, 42251, 58675, 177545}}, +{19432, 18, 101274, {1, 3, 5, 7, 11, 33, 119, 5, 185, 777, 1795, 1585, 3543, 1801, 17681, 1041, 44513, 105435}}, +{19433, 18, 101285, {1, 3, 1, 9, 19, 33, 15, 253, 299, 925, 241, 1333, 615, 12501, 499, 44449, 16595, 70357}}, +{19434, 18, 101300, {1, 1, 3, 13, 13, 31, 17, 123, 215, 805, 1177, 3683, 27, 11881, 7645, 25575, 63057, 89547}}, +{19435, 18, 101309, {1, 1, 5, 5, 17, 1, 57, 183, 267, 825, 1987, 329, 5603, 1295, 425, 61871, 27859, 157109}}, +{19436, 18, 101310, {1, 3, 3, 11, 19, 45, 37, 79, 191, 17, 17, 3379, 7941, 3159, 20351, 26341, 34687, 116281}}, +{19437, 18, 101321, {1, 1, 3, 7, 11, 7, 61, 199, 459, 993, 1729, 3751, 1067, 14965, 14669, 40281, 12579, 154601}}, +{19438, 18, 101324, {1, 3, 3, 13, 19, 53, 17, 39, 137, 219, 1645, 2899, 505, 10057, 22891, 32317, 81201, 126291}}, +{19439, 18, 101363, {1, 3, 5, 7, 21, 53, 65, 125, 69, 781, 761, 1683, 5817, 11859, 11543, 62853, 57149, 212261}}, +{19440, 18, 101366, {1, 3, 5, 9, 13, 25, 81, 119, 439, 25, 239, 2867, 421, 12631, 22705, 31039, 96105, 79023}}, +{19441, 18, 101377, {1, 3, 5, 3, 19, 9, 51, 135, 437, 393, 1711, 1205, 5195, 10927, 28583, 7513, 110227, 139295}}, +{19442, 18, 101380, {1, 3, 7, 9, 31, 15, 5, 143, 49, 13, 1143, 2325, 5437, 14289, 31555, 58777, 102675, 64559}}, +{19443, 18, 101389, {1, 1, 7, 3, 3, 21, 65, 127, 341, 109, 167, 1835, 6687, 1695, 15631, 47047, 127543, 51413}}, +{19444, 18, 101407, {1, 1, 3, 1, 31, 49, 103, 147, 59, 701, 1251, 3391, 1935, 5371, 28585, 50023, 73839, 118205}}, +{19445, 18, 101411, {1, 3, 3, 1, 5, 49, 91, 23, 91, 663, 1369, 1437, 2657, 11369, 29857, 53875, 127045, 242323}}, +{19446, 18, 101432, {1, 3, 1, 3, 23, 33, 7, 105, 353, 863, 1211, 1175, 1347, 12913, 11973, 55255, 27145, 175539}}, +{19447, 18, 101476, {1, 1, 1, 13, 9, 29, 71, 71, 509, 571, 2005, 3125, 2731, 6829, 26863, 16459, 113195, 80247}}, +{19448, 18, 101488, {1, 3, 5, 1, 7, 11, 45, 177, 281, 695, 1197, 2035, 2137, 11833, 12417, 5805, 77211, 45553}}, +{19449, 18, 101494, {1, 1, 7, 7, 27, 59, 91, 183, 267, 373, 677, 2431, 903, 4229, 31997, 19843, 125089, 242871}}, +{19450, 18, 101514, {1, 3, 3, 13, 23, 23, 53, 101, 225, 247, 2013, 853, 279, 2161, 30045, 28255, 130907, 57157}}, +{19451, 18, 101534, {1, 3, 5, 13, 5, 11, 63, 137, 219, 661, 773, 1991, 4081, 5963, 25207, 50461, 85293, 159441}}, +{19452, 18, 101537, {1, 3, 1, 15, 5, 59, 43, 87, 429, 77, 73, 1275, 2619, 16133, 20009, 26089, 38129, 157267}}, +{19453, 18, 101543, {1, 1, 5, 15, 9, 59, 37, 127, 127, 733, 1703, 1331, 4293, 3555, 22739, 49513, 34533, 143225}}, +{19454, 18, 101547, {1, 1, 7, 7, 11, 51, 121, 59, 505, 147, 1855, 1661, 5539, 3421, 28863, 14811, 39811, 228927}}, +{19455, 18, 101584, {1, 1, 5, 5, 1, 31, 57, 167, 107, 753, 1835, 2491, 3311, 8639, 8743, 17279, 77071, 8673}}, +{19456, 18, 101589, {1, 1, 3, 3, 15, 39, 1, 223, 395, 603, 1095, 435, 1225, 4045, 21721, 40767, 48971, 1583}}, +{19457, 18, 101590, {1, 1, 3, 13, 9, 17, 47, 175, 229, 827, 769, 2901, 137, 9931, 11115, 25337, 105811, 68413}}, +{19458, 18, 101629, {1, 1, 1, 5, 29, 55, 43, 39, 319, 919, 749, 931, 1973, 13147, 913, 48353, 40955, 189783}}, +{19459, 18, 101678, {1, 3, 5, 5, 13, 33, 81, 213, 79, 781, 1069, 3117, 5859, 9061, 30963, 17307, 6281, 208707}}, +{19460, 18, 101683, {1, 1, 5, 13, 27, 63, 41, 91, 123, 763, 1115, 3193, 4571, 4573, 8235, 24291, 40911, 225985}}, +{19461, 18, 101700, {1, 1, 1, 7, 13, 5, 77, 215, 67, 183, 1447, 1571, 213, 3481, 28349, 22451, 44951, 240257}}, +{19462, 18, 101712, {1, 3, 7, 7, 3, 21, 39, 233, 263, 19, 489, 1511, 2313, 1799, 25173, 17913, 70593, 2969}}, +{19463, 18, 101748, {1, 3, 7, 15, 3, 1, 93, 101, 393, 911, 1055, 953, 1279, 11947, 11963, 53443, 29105, 226057}}, +{19464, 18, 101757, {1, 1, 3, 7, 7, 53, 119, 39, 439, 629, 1845, 3411, 3633, 16345, 27501, 59565, 39581, 85373}}, +{19465, 18, 101762, {1, 1, 5, 7, 19, 39, 19, 191, 509, 239, 359, 645, 8107, 13721, 21289, 20763, 67727, 45957}}, +{19466, 18, 101771, {1, 1, 1, 13, 5, 13, 113, 41, 135, 351, 311, 1099, 2391, 16165, 15805, 54737, 102645, 224417}}, +{19467, 18, 101785, {1, 3, 3, 9, 17, 47, 95, 249, 45, 749, 313, 317, 2413, 15861, 27221, 35537, 6407, 50111}}, +{19468, 18, 101795, {1, 1, 7, 5, 29, 57, 81, 7, 233, 393, 307, 1089, 1367, 12275, 11861, 29119, 27271, 36351}}, +{19469, 18, 101822, {1, 3, 5, 15, 9, 15, 23, 241, 233, 305, 1025, 2035, 4897, 10321, 17345, 42873, 109045, 129533}}, +{19470, 18, 101851, {1, 3, 5, 9, 21, 33, 111, 81, 311, 829, 1851, 1437, 5935, 7847, 15493, 28531, 74879, 40567}}, +{19471, 18, 101863, {1, 3, 7, 7, 13, 21, 43, 119, 507, 701, 1385, 745, 799, 1567, 13271, 40267, 130843, 59951}}, +{19472, 18, 101894, {1, 3, 3, 1, 19, 43, 45, 119, 87, 263, 1475, 3897, 2811, 2711, 4949, 48043, 125237, 230897}}, +{19473, 18, 101903, {1, 1, 7, 1, 1, 53, 17, 71, 313, 373, 5, 2359, 1643, 9867, 18365, 5011, 40675, 105371}}, +{19474, 18, 101924, {1, 3, 7, 11, 23, 49, 123, 255, 33, 241, 473, 959, 1859, 6109, 5433, 27625, 46839, 90727}}, +{19475, 18, 101939, {1, 1, 1, 3, 31, 43, 33, 129, 159, 445, 1831, 1005, 587, 2091, 5749, 33271, 50909, 65057}}, +{19476, 18, 101980, {1, 1, 7, 13, 3, 21, 17, 125, 357, 97, 1255, 669, 1583, 7433, 32287, 61795, 5915, 211593}}, +{19477, 18, 101993, {1, 1, 7, 7, 31, 19, 71, 211, 213, 731, 1491, 3315, 3633, 14953, 21369, 4977, 33533, 12115}}, +{19478, 18, 101994, {1, 3, 1, 1, 31, 1, 87, 253, 211, 57, 1431, 2613, 4075, 14463, 11287, 38671, 100129, 4241}}, +{19479, 18, 101996, {1, 1, 1, 5, 21, 13, 27, 29, 31, 285, 179, 3861, 5319, 15683, 2579, 15663, 63357, 81849}}, +{19480, 18, 102007, {1, 1, 3, 7, 23, 29, 29, 79, 263, 865, 1237, 3871, 2097, 5337, 2387, 59277, 28831, 57957}}, +{19481, 18, 102044, {1, 3, 7, 15, 15, 31, 83, 195, 87, 691, 71, 1025, 3145, 675, 14619, 22399, 88885, 222969}}, +{19482, 18, 102086, {1, 1, 5, 7, 19, 3, 121, 105, 383, 675, 777, 2073, 643, 14439, 19467, 13159, 115421, 250561}}, +{19483, 18, 102097, {1, 3, 5, 9, 13, 41, 119, 23, 355, 765, 579, 849, 3313, 2443, 29521, 42965, 102559, 227707}}, +{19484, 18, 102113, {1, 3, 3, 7, 23, 55, 115, 83, 331, 873, 797, 621, 1197, 15299, 26307, 34287, 120459, 260603}}, +{19485, 18, 102123, {1, 1, 3, 5, 7, 11, 113, 119, 65, 691, 1169, 2291, 7283, 1391, 10737, 3801, 40649, 191009}}, +{19486, 18, 102155, {1, 1, 7, 9, 3, 23, 95, 109, 457, 277, 871, 3013, 2833, 4131, 21081, 43635, 19875, 162173}}, +{19487, 18, 102157, {1, 1, 3, 15, 25, 7, 45, 109, 195, 935, 1487, 1603, 1663, 15595, 10687, 4073, 34863, 45851}}, +{19488, 18, 102169, {1, 1, 1, 5, 21, 19, 37, 141, 377, 553, 1225, 2485, 1235, 13179, 2587, 43659, 1405, 52023}}, +{19489, 18, 102181, {1, 3, 1, 9, 5, 27, 1, 219, 397, 555, 533, 941, 2755, 1295, 16157, 30733, 54279, 168455}}, +{19490, 18, 102182, {1, 3, 3, 1, 27, 41, 93, 177, 119, 581, 167, 3943, 5765, 15455, 555, 17419, 33117, 160599}}, +{19491, 18, 102185, {1, 1, 3, 7, 15, 25, 29, 177, 503, 529, 229, 2535, 1493, 805, 30983, 26309, 123453, 118441}}, +{19492, 18, 102199, {1, 1, 7, 15, 13, 33, 83, 151, 183, 433, 823, 4003, 1991, 6563, 18743, 61835, 56535, 191193}}, +{19493, 18, 102208, {1, 1, 1, 13, 9, 31, 91, 63, 455, 67, 243, 1573, 3507, 9491, 4677, 13835, 121603, 241781}}, +{19494, 18, 102213, {1, 1, 5, 5, 29, 13, 45, 29, 289, 909, 1923, 3371, 3675, 13119, 24599, 58511, 109467, 126865}}, +{19495, 18, 102226, {1, 1, 5, 9, 21, 41, 41, 179, 25, 463, 949, 819, 397, 12329, 3461, 34773, 61337, 23579}}, +{19496, 18, 102290, {1, 3, 3, 11, 1, 25, 17, 165, 77, 455, 1983, 143, 2763, 8165, 14849, 1601, 30093, 54599}}, +{19497, 18, 102296, {1, 1, 7, 3, 7, 1, 117, 117, 53, 611, 1405, 3357, 1717, 8157, 247, 17501, 30201, 192485}}, +{19498, 18, 102306, {1, 1, 1, 5, 23, 47, 95, 173, 133, 603, 1627, 4039, 5599, 10575, 30275, 60287, 3313, 77551}}, +{19499, 18, 102317, {1, 1, 1, 9, 31, 49, 87, 169, 221, 561, 1045, 365, 1955, 9905, 13057, 33717, 91203, 57513}}, +{19500, 18, 102337, {1, 3, 3, 1, 19, 25, 113, 231, 415, 717, 1767, 755, 4825, 7541, 10121, 9351, 72093, 255877}}, +{19501, 18, 102344, {1, 3, 1, 7, 1, 35, 3, 231, 345, 375, 809, 2753, 849, 13915, 16127, 7575, 45259, 28917}}, +{19502, 18, 102350, {1, 3, 3, 11, 23, 43, 13, 37, 305, 765, 517, 333, 473, 14949, 11939, 35171, 63963, 181825}}, +{19503, 18, 102378, {1, 3, 3, 3, 5, 43, 35, 89, 293, 913, 1325, 2097, 603, 14365, 4005, 38935, 23837, 34271}}, +{19504, 18, 102383, {1, 1, 3, 15, 1, 47, 67, 199, 167, 909, 1167, 1513, 7087, 5017, 23469, 2621, 24961, 226679}}, +{19505, 18, 102391, {1, 3, 7, 15, 23, 37, 111, 217, 33, 423, 457, 1767, 4821, 10233, 27045, 33397, 85351, 156751}}, +{19506, 18, 102400, {1, 3, 3, 7, 31, 25, 67, 65, 291, 169, 1505, 1707, 4833, 11541, 1189, 62959, 59831, 48729}}, +{19507, 18, 102409, {1, 1, 5, 7, 27, 27, 15, 23, 189, 819, 709, 3591, 2781, 14807, 20303, 27795, 88349, 210251}}, +{19508, 18, 102427, {1, 3, 7, 15, 1, 19, 49, 103, 219, 85, 1281, 3981, 7229, 10427, 11689, 1547, 90747, 12283}}, +{19509, 18, 102434, {1, 1, 1, 13, 31, 49, 81, 121, 287, 851, 333, 353, 7373, 10165, 1157, 11713, 89445, 210709}}, +{19510, 18, 102453, {1, 3, 7, 5, 31, 35, 3, 229, 443, 973, 1971, 1861, 5695, 6725, 6405, 45927, 115313, 228667}}, +{19511, 18, 102472, {1, 3, 3, 11, 29, 17, 105, 203, 69, 945, 1239, 3213, 6005, 10095, 31233, 37421, 62911, 91371}}, +{19512, 18, 102502, {1, 1, 7, 1, 21, 59, 7, 43, 391, 299, 1225, 283, 3351, 11495, 25071, 16619, 65127, 114033}}, +{19513, 18, 102525, {1, 1, 3, 9, 17, 11, 71, 73, 377, 437, 311, 1083, 6941, 1039, 1047, 55647, 21239, 209201}}, +{19514, 18, 102547, {1, 3, 7, 5, 29, 51, 113, 163, 215, 511, 615, 2427, 2747, 14389, 1005, 27015, 31809, 30603}}, +{19515, 18, 102554, {1, 1, 1, 3, 9, 61, 9, 201, 259, 411, 175, 1003, 401, 13695, 13103, 3075, 43695, 177139}}, +{19516, 18, 102560, {1, 1, 5, 3, 17, 47, 125, 173, 277, 17, 619, 2295, 3091, 5615, 4529, 54065, 81875, 97279}}, +{19517, 18, 102578, {1, 3, 3, 9, 3, 61, 97, 151, 287, 671, 1439, 1129, 6343, 8161, 24593, 40371, 109705, 106279}}, +{19518, 18, 102580, {1, 3, 3, 1, 5, 61, 21, 31, 41, 855, 1541, 3351, 575, 3195, 17155, 46913, 1797, 146401}}, +{19519, 18, 102597, {1, 1, 7, 13, 11, 43, 27, 97, 479, 117, 1873, 3103, 1947, 9273, 29171, 35719, 10601, 209629}}, +{19520, 18, 102616, {1, 3, 1, 9, 21, 47, 53, 129, 85, 505, 165, 3437, 5687, 10289, 6615, 46719, 50731, 25271}}, +{19521, 18, 102625, {1, 1, 3, 1, 1, 33, 37, 239, 45, 565, 1907, 3831, 2177, 10967, 12689, 49395, 36289, 247507}}, +{19522, 18, 102632, {1, 1, 5, 1, 19, 57, 75, 245, 59, 967, 1319, 3971, 5267, 11713, 15417, 60503, 63431, 157267}}, +{19523, 18, 102663, {1, 1, 5, 7, 7, 15, 99, 87, 331, 261, 1973, 219, 3063, 4071, 19273, 48637, 128089, 55511}}, +{19524, 18, 102669, {1, 3, 5, 13, 23, 43, 7, 171, 173, 1023, 1145, 3551, 5127, 6365, 18013, 1613, 51997, 107265}}, +{19525, 18, 102681, {1, 3, 5, 3, 7, 7, 23, 195, 251, 387, 1889, 3645, 4221, 6025, 27291, 24831, 123749, 231403}}, +{19526, 18, 102694, {1, 3, 1, 1, 29, 49, 107, 215, 93, 211, 1349, 1925, 7149, 1015, 27465, 34139, 126149, 121349}}, +{19527, 18, 102706, {1, 1, 5, 5, 19, 15, 121, 189, 167, 801, 483, 1955, 8031, 4749, 26665, 64791, 18671, 123221}}, +{19528, 18, 102715, {1, 3, 3, 15, 23, 57, 15, 249, 197, 103, 2021, 1897, 5975, 12821, 6441, 62719, 81415, 232417}}, +{19529, 18, 102723, {1, 1, 3, 9, 17, 45, 111, 225, 103, 121, 1259, 2849, 2235, 2041, 13261, 7929, 76325, 38677}}, +{19530, 18, 102730, {1, 1, 3, 9, 25, 17, 63, 63, 369, 387, 31, 1423, 5699, 12519, 27407, 53193, 963, 123473}}, +{19531, 18, 102743, {1, 3, 3, 13, 3, 59, 59, 3, 367, 357, 1391, 1519, 2619, 2291, 1349, 28275, 21655, 8763}}, +{19532, 18, 102856, {1, 1, 7, 1, 31, 51, 121, 49, 157, 509, 1513, 3247, 3439, 8691, 20729, 17585, 49013, 228695}}, +{19533, 18, 102870, {1, 1, 5, 9, 11, 29, 103, 49, 209, 35, 673, 1409, 2483, 4561, 12435, 46139, 31019, 50929}}, +{19534, 18, 102898, {1, 1, 3, 9, 11, 45, 77, 143, 277, 769, 1151, 3705, 7901, 3735, 31155, 46135, 84061, 254357}}, +{19535, 18, 102926, {1, 3, 3, 3, 5, 51, 95, 7, 155, 121, 1899, 2261, 2915, 6637, 6557, 20535, 20937, 257275}}, +{19536, 18, 102931, {1, 1, 7, 9, 13, 49, 125, 135, 7, 535, 1171, 3501, 1701, 5791, 10121, 9845, 21645, 56451}}, +{19537, 18, 102938, {1, 1, 7, 5, 9, 1, 115, 27, 229, 813, 133, 753, 1959, 13121, 30425, 31059, 114619, 132257}}, +{19538, 18, 102947, {1, 1, 5, 3, 23, 25, 41, 165, 21, 551, 1751, 3563, 731, 15811, 14777, 22327, 82853, 116699}}, +{19539, 18, 102968, {1, 3, 1, 9, 3, 25, 95, 211, 457, 25, 349, 921, 213, 5721, 26725, 19541, 102473, 200845}}, +{19540, 18, 102976, {1, 3, 1, 13, 5, 1, 31, 49, 493, 785, 61, 2603, 5997, 12545, 9793, 32521, 99859, 256105}}, +{19541, 18, 102993, {1, 3, 3, 7, 31, 19, 31, 121, 507, 79, 685, 197, 4027, 12909, 30533, 38427, 38993, 14581}}, +{19542, 18, 103005, {1, 3, 7, 13, 13, 23, 63, 15, 223, 25, 1957, 2527, 6061, 11753, 4835, 34553, 45579, 205805}}, +{19543, 18, 103019, {1, 3, 3, 3, 5, 39, 55, 123, 275, 185, 749, 3227, 8137, 12959, 7243, 20613, 46247, 106127}}, +{19544, 18, 103022, {1, 1, 7, 13, 1, 21, 49, 145, 237, 291, 1721, 2981, 267, 1255, 21817, 39553, 21937, 115307}}, +{19545, 18, 103057, {1, 1, 1, 15, 5, 63, 3, 201, 117, 991, 1049, 1975, 5117, 5799, 28211, 37907, 46799, 240847}}, +{19546, 18, 103080, {1, 3, 3, 5, 25, 15, 29, 111, 201, 857, 319, 2695, 4251, 4303, 28495, 12481, 31979, 107503}}, +{19547, 18, 103100, {1, 1, 3, 11, 3, 27, 81, 55, 489, 983, 293, 3181, 4593, 4759, 18437, 51185, 47701, 75469}}, +{19548, 18, 103106, {1, 3, 1, 3, 11, 25, 113, 243, 365, 299, 1717, 561, 5173, 5983, 7453, 33563, 98519, 162451}}, +{19549, 18, 103126, {1, 3, 1, 5, 1, 21, 3, 87, 267, 483, 1397, 791, 4807, 4649, 13713, 19861, 110471, 51443}}, +{19550, 18, 103173, {1, 3, 7, 5, 31, 9, 13, 251, 351, 609, 841, 3267, 4201, 8771, 6673, 44867, 105221, 189399}}, +{19551, 18, 103202, {1, 1, 3, 1, 13, 43, 47, 153, 331, 1013, 705, 1867, 563, 6361, 7407, 46243, 30521, 213831}}, +{19552, 18, 103207, {1, 3, 3, 7, 29, 41, 3, 179, 319, 877, 905, 3803, 2775, 9729, 5673, 9521, 117887, 37605}}, +{19553, 18, 103219, {1, 1, 5, 5, 11, 49, 111, 195, 467, 931, 849, 2785, 7829, 2291, 29031, 52019, 86493, 213971}}, +{19554, 18, 103226, {1, 1, 3, 11, 13, 11, 81, 81, 419, 621, 181, 1203, 7305, 7857, 16885, 2531, 53127, 35553}}, +{19555, 18, 103228, {1, 1, 5, 1, 19, 35, 75, 131, 159, 211, 319, 2805, 6497, 14759, 28997, 62347, 4013, 233821}}, +{19556, 18, 103248, {1, 3, 3, 15, 1, 55, 107, 105, 35, 369, 1259, 665, 6717, 2555, 7149, 10373, 33153, 105915}}, +{19557, 18, 103274, {1, 3, 7, 5, 31, 13, 27, 207, 359, 355, 2047, 1777, 5555, 12659, 30547, 3655, 86189, 961}}, +{19558, 18, 103288, {1, 3, 7, 9, 9, 55, 7, 117, 57, 115, 745, 501, 2341, 3899, 8229, 10625, 66905, 187959}}, +{19559, 18, 103291, {1, 3, 3, 13, 25, 43, 87, 197, 303, 405, 1459, 3385, 4109, 8325, 24747, 18405, 48845, 96673}}, +{19560, 18, 103293, {1, 3, 5, 3, 21, 37, 109, 9, 183, 585, 1287, 3851, 4939, 1057, 19489, 42603, 32447, 117957}}, +{19561, 18, 103324, {1, 1, 5, 13, 3, 47, 109, 115, 73, 733, 1189, 3773, 7471, 10339, 5093, 50253, 122665, 254381}}, +{19562, 18, 103358, {1, 1, 5, 5, 21, 33, 113, 187, 51, 245, 241, 3887, 4075, 11945, 20883, 18817, 43567, 851}}, +{19563, 18, 103372, {1, 3, 7, 3, 1, 29, 87, 101, 29, 93, 643, 2659, 1753, 4797, 17477, 16087, 43453, 110383}}, +{19564, 18, 103375, {1, 1, 7, 13, 17, 51, 75, 91, 445, 171, 1369, 499, 3753, 14035, 4445, 21437, 86205, 231163}}, +{19565, 18, 103390, {1, 1, 7, 13, 17, 41, 67, 49, 225, 659, 1181, 1751, 5211, 6847, 20339, 34271, 60273, 52315}}, +{19566, 18, 103414, {1, 1, 5, 5, 5, 17, 87, 223, 25, 773, 53, 2447, 6805, 6547, 4429, 46809, 51171, 66457}}, +{19567, 18, 103432, {1, 1, 5, 3, 29, 49, 11, 205, 279, 821, 725, 2425, 443, 211, 6347, 59845, 90763, 237911}}, +{19568, 18, 103446, {1, 1, 3, 9, 31, 7, 49, 1, 229, 755, 517, 809, 2955, 3571, 2385, 33097, 19659, 55397}}, +{19569, 18, 103455, {1, 3, 5, 3, 5, 21, 67, 227, 359, 401, 1697, 2131, 4585, 2661, 3659, 22621, 51639, 245877}}, +{19570, 18, 103471, {1, 1, 7, 5, 11, 7, 57, 133, 9, 917, 427, 2777, 6009, 11393, 29473, 59311, 77095, 176215}}, +{19571, 18, 103474, {1, 1, 7, 5, 13, 29, 101, 15, 293, 7, 797, 437, 3739, 3369, 16917, 19047, 17773, 219541}}, +{19572, 18, 103476, {1, 3, 1, 9, 13, 51, 15, 19, 209, 991, 413, 787, 3797, 14029, 23699, 8591, 40429, 56115}}, +{19573, 18, 103515, {1, 3, 7, 3, 31, 9, 77, 33, 487, 155, 1903, 3023, 8163, 385, 4703, 57511, 102083, 85785}}, +{19574, 18, 103527, {1, 1, 5, 11, 17, 59, 115, 73, 89, 723, 1523, 2671, 1755, 3463, 19861, 31573, 126405, 90215}}, +{19575, 18, 103542, {1, 3, 3, 13, 17, 27, 123, 37, 71, 173, 203, 1245, 7905, 8955, 22589, 56705, 120473, 90129}}, +{19576, 18, 103562, {1, 3, 3, 1, 17, 63, 55, 225, 259, 531, 1493, 2639, 1319, 10865, 17993, 11205, 13253, 111261}}, +{19577, 18, 103569, {1, 1, 1, 11, 25, 17, 41, 45, 385, 1009, 1573, 1797, 527, 543, 14743, 35789, 63871, 112183}}, +{19578, 18, 103572, {1, 1, 7, 15, 15, 57, 109, 127, 143, 955, 1091, 2585, 3429, 11763, 5849, 53805, 116865, 68895}}, +{19579, 18, 103581, {1, 1, 7, 15, 9, 11, 1, 9, 491, 765, 1835, 3825, 5043, 13091, 4123, 19621, 17687, 241015}}, +{19580, 18, 103609, {1, 3, 5, 7, 25, 51, 117, 193, 91, 451, 1871, 3819, 1881, 8065, 25809, 36257, 107955, 37109}}, +{19581, 18, 103612, {1, 3, 1, 15, 5, 5, 101, 7, 59, 859, 977, 2673, 2825, 3291, 26283, 23467, 28383, 257775}}, +{19582, 18, 103618, {1, 3, 3, 15, 17, 43, 87, 191, 85, 829, 653, 327, 1773, 10101, 2707, 18341, 61435, 242215}}, +{19583, 18, 103637, {1, 3, 7, 13, 27, 43, 127, 253, 403, 81, 505, 2841, 1509, 4951, 23791, 18099, 46747, 192717}}, +{19584, 18, 103644, {1, 1, 1, 9, 31, 15, 127, 29, 171, 999, 1919, 4059, 2781, 2475, 8997, 15459, 37003, 217141}}, +{19585, 18, 103653, {1, 3, 3, 1, 31, 41, 67, 31, 171, 719, 789, 645, 3925, 11117, 1241, 63221, 1087, 59789}}, +{19586, 18, 103663, {1, 1, 1, 9, 17, 41, 107, 13, 405, 879, 1955, 3309, 1281, 10601, 13883, 43987, 111691, 130555}}, +{19587, 18, 103671, {1, 3, 7, 9, 21, 17, 127, 243, 51, 689, 1945, 3769, 7121, 7703, 16825, 34893, 32167, 20167}}, +{19588, 18, 103678, {1, 1, 1, 5, 7, 7, 61, 149, 75, 289, 717, 1951, 5917, 13375, 15683, 27507, 10897, 199009}}, +{19589, 18, 103695, {1, 3, 7, 9, 25, 61, 43, 167, 45, 299, 5, 125, 3289, 13685, 10843, 25535, 98383, 143401}}, +{19590, 18, 103698, {1, 1, 3, 15, 21, 27, 37, 45, 233, 179, 611, 3025, 7887, 9421, 16791, 17147, 49013, 33249}}, +{19591, 18, 103720, {1, 3, 7, 15, 19, 43, 43, 9, 255, 295, 649, 811, 1303, 1989, 5401, 53891, 42679, 66879}}, +{19592, 18, 103723, {1, 1, 7, 7, 25, 31, 89, 199, 455, 733, 295, 1157, 4375, 7341, 7823, 6025, 56311, 257579}}, +{19593, 18, 103738, {1, 1, 7, 3, 1, 51, 15, 29, 35, 917, 1839, 741, 1089, 8615, 4967, 34047, 32981, 200693}}, +{19594, 18, 103743, {1, 3, 3, 11, 21, 13, 71, 53, 315, 801, 1015, 3829, 2297, 6649, 28501, 18173, 83121, 107195}}, +{19595, 18, 103745, {1, 1, 7, 7, 1, 5, 127, 103, 435, 707, 7, 1045, 187, 10927, 32395, 24999, 58463, 94069}}, +{19596, 18, 103757, {1, 1, 7, 9, 11, 25, 73, 57, 231, 455, 1033, 2899, 2861, 8811, 21671, 16115, 97807, 221791}}, +{19597, 18, 103810, {1, 3, 5, 11, 11, 19, 105, 37, 181, 1, 1231, 2275, 4789, 13071, 24843, 25901, 123711, 145609}}, +{19598, 18, 103822, {1, 3, 7, 13, 7, 7, 21, 215, 393, 43, 1713, 2921, 1959, 14417, 17109, 55793, 36285, 81731}}, +{19599, 18, 103855, {1, 1, 5, 15, 29, 15, 5, 115, 15, 795, 1535, 2473, 3663, 10123, 20721, 32739, 21141, 217731}}, +{19600, 18, 103887, {1, 1, 3, 1, 15, 13, 21, 49, 293, 689, 985, 3949, 3329, 7167, 16925, 15069, 47345, 192749}}, +{19601, 18, 103905, {1, 3, 3, 7, 5, 27, 85, 11, 337, 651, 777, 1775, 5279, 15229, 21473, 36561, 85293, 27893}}, +{19602, 18, 103915, {1, 3, 7, 1, 15, 29, 7, 199, 71, 893, 1587, 1831, 3891, 3299, 14323, 23165, 28199, 84055}}, +{19603, 18, 103925, {1, 1, 1, 7, 9, 27, 15, 75, 497, 127, 433, 1781, 3711, 12659, 3765, 40827, 112425, 36281}}, +{19604, 18, 103929, {1, 1, 5, 1, 31, 59, 9, 91, 301, 217, 2013, 2015, 265, 3795, 14609, 13389, 5451, 260169}}, +{19605, 18, 103945, {1, 1, 1, 15, 19, 43, 85, 37, 33, 687, 1253, 2615, 4027, 3741, 13971, 21261, 106261, 204233}}, +{19606, 18, 103954, {1, 1, 7, 9, 31, 45, 105, 111, 207, 433, 633, 3949, 8057, 5049, 23657, 12227, 86251, 218077}}, +{19607, 18, 103969, {1, 3, 5, 11, 13, 33, 1, 67, 117, 595, 1835, 287, 2509, 14841, 1525, 15761, 61319, 182531}}, +{19608, 18, 104011, {1, 1, 3, 9, 7, 43, 105, 85, 17, 349, 1769, 3945, 31, 4907, 9373, 22447, 70905, 29189}}, +{19609, 18, 104055, {1, 1, 5, 5, 9, 19, 93, 179, 95, 255, 1807, 2717, 4757, 15025, 19479, 63499, 42441, 236519}}, +{19610, 18, 104111, {1, 1, 1, 1, 21, 35, 1, 101, 343, 1023, 1311, 347, 301, 8419, 23367, 31543, 51661, 148277}}, +{19611, 18, 104116, {1, 1, 7, 11, 23, 37, 113, 207, 147, 743, 1905, 1683, 3733, 5659, 22491, 62129, 111671, 227019}}, +{19612, 18, 104125, {1, 1, 3, 13, 27, 5, 21, 207, 445, 319, 1355, 2541, 2853, 583, 1261, 64477, 18337, 91611}}, +{19613, 18, 104145, {1, 3, 5, 3, 1, 31, 51, 55, 487, 735, 1599, 523, 5323, 10855, 28717, 62103, 18671, 143885}}, +{19614, 18, 104162, {1, 3, 1, 1, 15, 5, 79, 107, 173, 747, 1213, 1151, 875, 12759, 27115, 16403, 31349, 208909}}, +{19615, 18, 104176, {1, 3, 5, 9, 13, 57, 35, 121, 135, 237, 1707, 3655, 8109, 3623, 5119, 27645, 49401, 46453}}, +{19616, 18, 104193, {1, 3, 7, 11, 27, 3, 103, 231, 43, 515, 1279, 499, 1355, 2605, 11587, 33641, 81661, 29441}}, +{19617, 18, 104199, {1, 3, 5, 7, 13, 27, 55, 191, 81, 185, 527, 519, 4555, 3349, 24533, 60635, 40009, 230761}}, +{19618, 18, 104224, {1, 1, 5, 3, 13, 35, 75, 211, 67, 305, 705, 543, 3819, 16265, 9867, 64309, 35047, 24873}}, +{19619, 18, 104236, {1, 3, 1, 1, 11, 37, 75, 3, 145, 327, 1243, 3291, 7127, 5009, 7757, 59567, 90459, 98035}}, +{19620, 18, 104247, {1, 3, 5, 9, 9, 5, 71, 29, 243, 41, 447, 2597, 1243, 12899, 19681, 30523, 90799, 142279}}, +{19621, 18, 104254, {1, 3, 3, 3, 15, 21, 25, 101, 451, 651, 143, 3899, 3377, 4855, 23843, 25047, 87951, 239229}}, +{19622, 18, 104289, {1, 1, 1, 1, 23, 29, 25, 31, 227, 43, 399, 723, 693, 12379, 11343, 46123, 105435, 224997}}, +{19623, 18, 104325, {1, 1, 7, 3, 21, 47, 77, 57, 397, 689, 267, 813, 1279, 1727, 7451, 34025, 90273, 111663}}, +{19624, 18, 104332, {1, 1, 5, 3, 25, 61, 7, 137, 271, 723, 495, 2575, 3695, 4947, 31973, 47835, 107003, 221839}}, +{19625, 18, 104335, {1, 3, 1, 7, 5, 25, 21, 95, 323, 3, 613, 1721, 2551, 8803, 6803, 52765, 34543, 110945}}, +{19626, 18, 104353, {1, 3, 5, 9, 27, 23, 123, 193, 63, 161, 1395, 679, 161, 13719, 29321, 19243, 51947, 229547}}, +{19627, 18, 104363, {1, 3, 5, 15, 15, 37, 127, 103, 439, 513, 989, 1393, 3761, 9109, 20649, 18171, 69939, 117447}}, +{19628, 18, 104371, {1, 1, 7, 9, 7, 57, 87, 159, 195, 821, 57, 2469, 7693, 6759, 32595, 41109, 94785, 53381}}, +{19629, 18, 104373, {1, 3, 3, 7, 17, 63, 41, 7, 437, 469, 1453, 3741, 7591, 5563, 11819, 23861, 129777, 119731}}, +{19630, 18, 104406, {1, 1, 3, 3, 27, 55, 21, 145, 243, 991, 687, 909, 2105, 4485, 9095, 3677, 53819, 183027}}, +{19631, 18, 104412, {1, 1, 1, 15, 13, 61, 27, 81, 95, 37, 1439, 973, 7613, 5749, 16811, 26801, 105745, 8847}}, +{19632, 18, 104440, {1, 3, 1, 9, 15, 17, 111, 61, 27, 373, 89, 2729, 6397, 4899, 11297, 4403, 30657, 207379}}, +{19633, 18, 104459, {1, 3, 5, 15, 19, 9, 19, 19, 497, 667, 105, 601, 6715, 6355, 4231, 19241, 101771, 105651}}, +{19634, 18, 104461, {1, 1, 3, 9, 11, 11, 115, 109, 177, 753, 997, 2119, 5969, 13377, 13285, 25373, 105023, 158393}}, +{19635, 18, 104469, {1, 3, 5, 15, 27, 23, 19, 117, 129, 457, 1973, 2171, 8071, 2093, 13407, 9295, 82967, 184753}}, +{19636, 18, 104479, {1, 1, 7, 5, 1, 45, 9, 25, 307, 629, 1169, 2859, 3987, 11411, 13609, 44993, 26019, 107003}}, +{19637, 18, 104483, {1, 1, 1, 13, 29, 15, 13, 163, 203, 885, 281, 1605, 8001, 899, 4081, 65467, 61283, 198963}}, +{19638, 18, 104490, {1, 1, 3, 5, 27, 9, 89, 193, 375, 633, 1807, 2069, 3467, 3167, 23751, 39115, 90093, 190365}}, +{19639, 18, 104500, {1, 3, 3, 5, 1, 1, 19, 161, 21, 745, 493, 2227, 7993, 3337, 27041, 4817, 58963, 237015}}, +{19640, 18, 104536, {1, 3, 5, 15, 15, 45, 51, 145, 299, 787, 1059, 2407, 1143, 775, 17473, 22235, 18241, 103897}}, +{19641, 18, 104560, {1, 1, 1, 9, 11, 35, 75, 195, 281, 935, 113, 3009, 4797, 7221, 12475, 18563, 10315, 255541}}, +{19642, 18, 104569, {1, 1, 5, 7, 25, 9, 121, 179, 303, 511, 2041, 1485, 529, 13843, 29013, 28139, 63237, 21259}}, +{19643, 18, 104588, {1, 3, 7, 11, 9, 21, 61, 177, 63, 179, 679, 17, 4069, 8929, 14499, 53913, 27925, 48449}}, +{19644, 18, 104591, {1, 3, 5, 3, 9, 27, 111, 247, 253, 175, 1591, 3583, 3351, 9039, 597, 23859, 126585, 157367}}, +{19645, 18, 104621, {1, 1, 7, 9, 1, 9, 29, 1, 273, 89, 767, 1873, 39, 10487, 29857, 23577, 67457, 44571}}, +{19646, 18, 104661, {1, 1, 7, 5, 5, 23, 13, 181, 283, 333, 21, 1409, 5937, 8981, 7445, 61267, 21729, 32677}}, +{19647, 18, 104675, {1, 3, 1, 15, 31, 5, 45, 253, 179, 91, 341, 359, 4269, 7567, 23699, 30589, 42909, 126171}}, +{19648, 18, 104684, {1, 3, 7, 7, 23, 45, 15, 93, 115, 873, 49, 845, 827, 14357, 20163, 41565, 37105, 120331}}, +{19649, 18, 104713, {1, 1, 7, 7, 15, 25, 55, 175, 11, 457, 1537, 1937, 807, 11399, 27751, 16935, 75231, 204039}}, +{19650, 18, 104747, {1, 3, 7, 13, 1, 37, 67, 145, 471, 1013, 1273, 4093, 4449, 4433, 29063, 205, 93249, 140383}}, +{19651, 18, 104750, {1, 3, 1, 13, 1, 57, 85, 223, 349, 125, 863, 2179, 7813, 8817, 1767, 19169, 41367, 65883}}, +{19652, 18, 104757, {1, 3, 3, 15, 21, 39, 3, 31, 67, 505, 271, 505, 5495, 4183, 3631, 4567, 48061, 149565}}, +{19653, 18, 104775, {1, 1, 7, 11, 13, 39, 109, 201, 287, 1013, 1505, 3105, 3845, 1963, 4361, 61753, 29145, 146235}}, +{19654, 18, 104782, {1, 3, 5, 3, 29, 39, 71, 99, 501, 53, 835, 3295, 5335, 1017, 25913, 63637, 115353, 210509}}, +{19655, 18, 104803, {1, 3, 1, 13, 9, 53, 33, 177, 419, 63, 793, 1329, 2261, 11633, 18805, 49771, 47533, 74949}}, +{19656, 18, 104820, {1, 3, 7, 11, 7, 49, 123, 237, 195, 17, 1919, 1911, 4135, 11829, 26307, 34905, 114361, 228655}}, +{19657, 18, 104824, {1, 3, 5, 3, 5, 57, 65, 161, 195, 857, 1187, 2303, 1975, 2555, 26065, 17963, 57403, 136193}}, +{19658, 18, 104829, {1, 1, 3, 11, 1, 5, 105, 217, 229, 769, 1393, 2419, 7751, 14293, 9407, 4569, 30663, 89345}}, +{19659, 18, 104830, {1, 3, 3, 7, 23, 15, 15, 189, 67, 863, 485, 2435, 5145, 10537, 16485, 50369, 118245, 253201}}, +{19660, 18, 104836, {1, 1, 1, 5, 27, 27, 47, 129, 383, 227, 115, 3027, 1575, 15765, 10207, 4885, 125707, 184703}}, +{19661, 18, 104851, {1, 3, 5, 5, 17, 9, 45, 55, 151, 751, 415, 2139, 8071, 2309, 27641, 29743, 47183, 21437}}, +{19662, 18, 104882, {1, 3, 3, 7, 9, 47, 51, 31, 261, 237, 1695, 1065, 4503, 7167, 25791, 39659, 90145, 130481}}, +{19663, 18, 104920, {1, 1, 3, 3, 21, 27, 53, 249, 407, 779, 1315, 1005, 6953, 14959, 2265, 61645, 118623, 254067}}, +{19664, 18, 104941, {1, 3, 1, 9, 13, 25, 33, 225, 467, 325, 1513, 1237, 1569, 8749, 1587, 4699, 19893, 163597}}, +{19665, 18, 104963, {1, 3, 5, 5, 29, 29, 1, 55, 437, 575, 149, 791, 4243, 4405, 22963, 64125, 21631, 25819}}, +{19666, 18, 104989, {1, 3, 5, 3, 25, 9, 19, 27, 419, 139, 2035, 2065, 1925, 11499, 20053, 13161, 15115, 120891}}, +{19667, 18, 104999, {1, 1, 5, 9, 7, 9, 113, 3, 195, 555, 863, 595, 6569, 9819, 14727, 38285, 13737, 130903}}, +{19668, 18, 105006, {1, 1, 3, 7, 19, 17, 35, 107, 489, 285, 247, 3103, 2919, 11163, 2811, 62081, 42989, 24495}}, +{19669, 18, 105040, {1, 3, 1, 15, 17, 5, 123, 221, 117, 689, 1567, 3803, 5801, 14121, 23263, 8851, 41559, 226271}}, +{19670, 18, 105066, {1, 1, 1, 15, 21, 39, 87, 135, 485, 59, 1899, 2483, 2599, 8783, 6129, 55407, 7291, 217117}}, +{19671, 18, 105089, {1, 1, 3, 11, 27, 53, 45, 241, 51, 829, 121, 3047, 6785, 15127, 13923, 47913, 9087, 112005}}, +{19672, 18, 105120, {1, 1, 1, 13, 5, 9, 45, 37, 235, 497, 871, 1471, 2895, 247, 9085, 39611, 63445, 218391}}, +{19673, 18, 105125, {1, 1, 5, 3, 5, 29, 23, 155, 339, 293, 535, 1569, 2625, 2867, 4639, 53049, 88721, 96903}}, +{19674, 18, 105137, {1, 1, 3, 15, 5, 25, 17, 45, 47, 683, 949, 1381, 5929, 9539, 3345, 59883, 19071, 200411}}, +{19675, 18, 105179, {1, 1, 1, 11, 11, 5, 71, 15, 469, 749, 1763, 541, 7109, 11731, 8463, 35145, 121795, 219441}}, +{19676, 18, 105215, {1, 3, 7, 11, 5, 17, 63, 159, 69, 993, 1519, 1531, 6913, 3901, 22131, 42909, 41299, 261813}}, +{19677, 18, 105244, {1, 1, 3, 5, 21, 27, 27, 197, 339, 275, 2011, 2263, 855, 1939, 21561, 30577, 6515, 124417}}, +{19678, 18, 105258, {1, 3, 5, 15, 25, 35, 91, 31, 269, 857, 327, 3643, 3211, 14401, 18399, 9007, 12897, 25555}}, +{19679, 18, 105263, {1, 1, 7, 15, 19, 47, 127, 157, 407, 867, 943, 1509, 3113, 49, 32131, 46975, 130013, 66457}}, +{19680, 18, 105280, {1, 3, 3, 13, 31, 45, 59, 135, 67, 825, 157, 2441, 2851, 2355, 28115, 14075, 106317, 145945}}, +{19681, 18, 105286, {1, 1, 1, 15, 27, 27, 5, 211, 85, 749, 671, 1341, 6865, 10027, 14419, 20159, 126647, 147893}}, +{19682, 18, 105380, {1, 1, 1, 7, 25, 49, 115, 231, 65, 161, 1409, 573, 2859, 639, 12567, 58459, 73781, 136893}}, +{19683, 18, 105397, {1, 1, 1, 7, 11, 57, 97, 141, 327, 975, 1799, 3051, 365, 9331, 14583, 16723, 113153, 224127}}, +{19684, 18, 105409, {1, 3, 1, 13, 13, 17, 105, 109, 151, 41, 1903, 1685, 2285, 5697, 16559, 34133, 106045, 203217}}, +{19685, 18, 105427, {1, 1, 1, 3, 29, 61, 43, 255, 269, 277, 1847, 3781, 7991, 131, 9833, 34305, 10763, 41869}}, +{19686, 18, 105452, {1, 1, 7, 3, 11, 1, 85, 89, 247, 99, 419, 2041, 3729, 10301, 5291, 36033, 31749, 261871}}, +{19687, 18, 105469, {1, 3, 7, 9, 27, 27, 41, 3, 303, 893, 697, 1631, 5015, 4233, 22827, 3913, 22245, 121193}}, +{19688, 18, 105472, {1, 3, 3, 13, 19, 11, 15, 239, 419, 123, 1213, 185, 4465, 4909, 25421, 18363, 72537, 167939}}, +{19689, 18, 105477, {1, 1, 3, 5, 13, 49, 57, 197, 19, 877, 1465, 2933, 5909, 7147, 1039, 37035, 91209, 126013}}, +{19690, 18, 105490, {1, 1, 3, 5, 23, 7, 63, 179, 59, 47, 1501, 1863, 2949, 13959, 28131, 29705, 107975, 155251}}, +{19691, 18, 105505, {1, 1, 1, 5, 25, 51, 77, 169, 327, 585, 1531, 3367, 3075, 6313, 26725, 453, 68635, 173787}}, +{19692, 18, 105529, {1, 3, 7, 9, 5, 15, 43, 45, 311, 367, 297, 2249, 7507, 4785, 22685, 37279, 121683, 141453}}, +{19693, 18, 105530, {1, 3, 7, 15, 17, 33, 43, 251, 281, 345, 1659, 3729, 7629, 6179, 26107, 64255, 88003, 2545}}, +{19694, 18, 105604, {1, 3, 7, 9, 17, 13, 71, 49, 341, 495, 1975, 173, 5773, 3821, 6615, 50917, 53781, 75557}}, +{19695, 18, 105614, {1, 1, 5, 13, 17, 21, 121, 35, 195, 367, 1191, 1331, 6423, 8425, 7705, 59117, 44575, 225431}}, +{19696, 18, 105622, {1, 1, 1, 5, 25, 39, 89, 65, 449, 491, 211, 2949, 4493, 23, 22571, 4801, 50525, 222563}}, +{19697, 18, 105625, {1, 1, 7, 5, 7, 21, 15, 171, 443, 225, 577, 1841, 8139, 15071, 6095, 60185, 71957, 244753}}, +{19698, 18, 105652, {1, 1, 5, 9, 31, 33, 21, 195, 415, 1003, 441, 627, 2339, 8245, 11187, 55933, 59045, 177455}}, +{19699, 18, 105687, {1, 1, 3, 9, 31, 29, 7, 15, 31, 577, 1435, 1317, 2923, 3807, 29693, 45857, 61787, 213565}}, +{19700, 18, 105693, {1, 3, 7, 15, 17, 51, 65, 87, 295, 811, 753, 1113, 7695, 275, 28331, 46363, 53247, 166993}}, +{19701, 18, 105707, {1, 1, 5, 11, 15, 31, 31, 47, 273, 383, 1831, 3821, 1337, 13257, 415, 35453, 15293, 173095}}, +{19702, 18, 105721, {1, 3, 1, 13, 19, 21, 63, 199, 159, 475, 1257, 3119, 7083, 2861, 21099, 16873, 83583, 186289}}, +{19703, 18, 105730, {1, 1, 7, 13, 15, 23, 11, 103, 387, 899, 261, 2863, 3681, 5683, 5587, 64655, 7411, 148633}}, +{19704, 18, 105736, {1, 3, 1, 13, 1, 45, 5, 173, 379, 287, 1451, 2253, 3811, 10963, 20285, 59681, 81285, 48523}}, +{19705, 18, 105753, {1, 1, 5, 9, 27, 17, 57, 25, 499, 289, 1083, 3057, 793, 5251, 10519, 36647, 67751, 237487}}, +{19706, 18, 105759, {1, 1, 3, 1, 17, 13, 23, 73, 1, 951, 111, 3769, 3611, 4827, 10081, 55919, 21411, 127303}}, +{19707, 18, 105760, {1, 3, 1, 1, 29, 35, 93, 139, 179, 217, 1839, 1907, 4365, 1813, 31985, 28927, 39319, 233413}}, +{19708, 18, 105802, {1, 1, 1, 7, 7, 47, 37, 127, 449, 473, 311, 3833, 3263, 4163, 15985, 50159, 82685, 73273}}, +{19709, 18, 105822, {1, 1, 1, 3, 3, 5, 69, 95, 101, 115, 1575, 63, 1897, 13733, 22149, 8793, 82983, 192553}}, +{19710, 18, 105832, {1, 3, 1, 5, 3, 57, 121, 13, 291, 975, 505, 3105, 6929, 12737, 25869, 29173, 16757, 17733}}, +{19711, 18, 105865, {1, 1, 3, 13, 13, 23, 51, 51, 239, 795, 877, 1547, 6533, 11497, 14309, 32941, 128109, 187313}}, +{19712, 18, 105873, {1, 1, 3, 5, 19, 37, 57, 223, 509, 379, 1235, 1881, 4133, 13219, 5479, 36781, 56155, 231001}}, +{19713, 18, 105874, {1, 1, 1, 5, 25, 45, 111, 183, 37, 875, 1487, 3771, 5593, 6835, 10921, 40697, 114455, 259491}}, +{19714, 18, 105880, {1, 1, 3, 11, 13, 5, 43, 47, 7, 435, 1543, 3835, 1631, 8889, 23567, 24705, 26687, 14261}}, +{19715, 18, 105899, {1, 3, 3, 11, 1, 13, 51, 171, 433, 1011, 679, 1307, 1683, 7379, 7163, 29727, 40209, 259973}}, +{19716, 18, 105902, {1, 3, 1, 5, 25, 33, 111, 11, 303, 815, 1883, 263, 7907, 12637, 19203, 64151, 55739, 240509}}, +{19717, 18, 105909, {1, 3, 5, 7, 23, 51, 3, 183, 425, 47, 231, 807, 1891, 10943, 17873, 20209, 60871, 30269}}, +{19718, 18, 105919, {1, 1, 1, 1, 1, 23, 11, 183, 351, 5, 37, 3883, 1291, 15933, 11379, 53057, 61389, 240547}}, +{19719, 18, 105922, {1, 3, 1, 5, 7, 53, 97, 29, 239, 805, 1929, 1001, 5103, 11, 24695, 7825, 109755, 254717}}, +{19720, 18, 105946, {1, 3, 3, 11, 15, 37, 115, 117, 391, 313, 1761, 3627, 3931, 10277, 1767, 25401, 123827, 60463}}, +{19721, 18, 105975, {1, 1, 7, 9, 9, 61, 23, 65, 473, 579, 1979, 415, 629, 3613, 27409, 46909, 3281, 3883}}, +{19722, 18, 105992, {1, 3, 3, 13, 25, 17, 71, 247, 297, 451, 153, 1949, 2727, 6427, 19815, 54013, 129363, 248237}}, +{19723, 18, 106005, {1, 1, 7, 7, 29, 9, 57, 171, 159, 287, 693, 1365, 4665, 5255, 15013, 21225, 125409, 5893}}, +{19724, 18, 106057, {1, 3, 3, 1, 9, 43, 13, 139, 359, 267, 115, 2025, 693, 4789, 10353, 60459, 30835, 56575}}, +{19725, 18, 106081, {1, 1, 1, 7, 23, 35, 35, 77, 245, 705, 75, 2841, 1683, 6109, 19661, 49021, 25019, 7297}}, +{19726, 18, 106093, {1, 3, 1, 5, 1, 19, 49, 53, 19, 435, 1471, 409, 7051, 7057, 3621, 42925, 59551, 70941}}, +{19727, 18, 106117, {1, 3, 7, 5, 21, 27, 39, 221, 389, 255, 537, 597, 7729, 10473, 6657, 13261, 11303, 112409}}, +{19728, 18, 106127, {1, 3, 7, 13, 29, 29, 81, 107, 329, 25, 537, 561, 2247, 10371, 30031, 20537, 28437, 113319}}, +{19729, 18, 106135, {1, 1, 5, 9, 9, 7, 89, 155, 337, 829, 755, 3259, 3563, 11849, 31179, 43297, 79601, 187545}}, +{19730, 18, 106141, {1, 3, 3, 5, 11, 63, 101, 159, 357, 627, 587, 3233, 405, 4083, 5953, 44541, 110723, 240573}}, +{19731, 18, 106189, {1, 1, 3, 15, 5, 39, 87, 231, 455, 195, 1603, 315, 3869, 6375, 745, 28349, 56469, 119033}}, +{19732, 18, 106190, {1, 1, 7, 1, 11, 7, 79, 47, 391, 585, 1299, 3237, 7345, 15959, 4293, 43285, 111737, 215923}}, +{19733, 18, 106197, {1, 1, 3, 15, 21, 53, 113, 73, 265, 589, 299, 289, 3983, 1653, 17407, 15287, 53199, 44221}}, +{19734, 18, 106214, {1, 3, 1, 3, 1, 13, 31, 41, 509, 523, 401, 2647, 2731, 5699, 15649, 51737, 81249, 230865}}, +{19735, 18, 106237, {1, 3, 5, 3, 15, 53, 91, 209, 249, 243, 1119, 2531, 319, 9259, 26555, 59579, 28767, 235073}}, +{19736, 18, 106245, {1, 1, 1, 13, 29, 25, 57, 3, 413, 945, 841, 1151, 7167, 2545, 7283, 3947, 109375, 148677}}, +{19737, 18, 106257, {1, 3, 3, 7, 29, 27, 81, 141, 21, 771, 577, 897, 73, 13081, 30035, 49213, 90627, 7483}}, +{19738, 18, 106300, {1, 3, 1, 13, 23, 11, 19, 159, 183, 789, 683, 2071, 7107, 3025, 27333, 9571, 69621, 48529}}, +{19739, 18, 106335, {1, 3, 1, 9, 5, 43, 7, 123, 341, 75, 1709, 135, 7929, 14563, 6849, 32783, 91971, 223789}}, +{19740, 18, 106351, {1, 1, 7, 3, 19, 13, 45, 229, 7, 559, 1895, 2649, 7593, 1063, 17715, 45019, 29743, 37819}}, +{19741, 18, 106370, {1, 1, 5, 3, 11, 25, 11, 169, 249, 415, 249, 209, 2223, 5947, 23381, 12109, 37697, 131729}}, +{19742, 18, 106375, {1, 1, 1, 7, 19, 47, 125, 117, 235, 825, 801, 921, 2363, 1261, 20529, 65445, 55315, 173561}}, +{19743, 18, 106376, {1, 1, 1, 1, 5, 39, 31, 11, 239, 333, 727, 3991, 1453, 2201, 18129, 3513, 112057, 109673}}, +{19744, 18, 106384, {1, 1, 7, 5, 21, 59, 37, 255, 261, 1, 1401, 1101, 1233, 3813, 22809, 39389, 66263, 191623}}, +{19745, 18, 106403, {1, 3, 1, 7, 5, 51, 73, 85, 319, 671, 1149, 1631, 6021, 10711, 3813, 36485, 106147, 202021}}, +{19746, 18, 106405, {1, 3, 3, 13, 7, 63, 59, 253, 337, 453, 61, 209, 2809, 10429, 28069, 55971, 57985, 244779}}, +{19747, 18, 106406, {1, 1, 1, 9, 27, 59, 45, 101, 427, 713, 1667, 2965, 6161, 1235, 8793, 2387, 66031, 85151}}, +{19748, 18, 106429, {1, 1, 3, 1, 5, 25, 101, 7, 449, 149, 823, 725, 6803, 11949, 13009, 14785, 45633, 241957}}, +{19749, 18, 106447, {1, 3, 7, 15, 29, 45, 103, 151, 159, 23, 1353, 3541, 5909, 4173, 31391, 16179, 38289, 206603}}, +{19750, 18, 106466, {1, 1, 7, 7, 23, 3, 97, 29, 141, 383, 379, 3189, 4399, 4545, 30797, 55827, 126223, 97049}}, +{19751, 18, 106495, {1, 3, 3, 7, 25, 35, 61, 15, 349, 929, 65, 3697, 7637, 12239, 29051, 36001, 114513, 151069}}, +{19752, 18, 106532, {1, 3, 3, 11, 19, 1, 23, 245, 9, 689, 1251, 1043, 2393, 15817, 31561, 21059, 3435, 228091}}, +{19753, 18, 106542, {1, 3, 7, 3, 23, 17, 121, 147, 427, 47, 905, 3877, 2301, 15709, 13599, 48895, 108955, 53219}}, +{19754, 18, 106547, {1, 3, 7, 3, 25, 31, 53, 143, 1, 841, 1691, 749, 6713, 5373, 23487, 25749, 13911, 240923}}, +{19755, 18, 106564, {1, 3, 5, 3, 7, 39, 101, 83, 159, 187, 583, 721, 7745, 1119, 61, 27319, 35157, 241729}}, +{19756, 18, 106576, {1, 1, 5, 11, 27, 21, 79, 199, 179, 463, 987, 3909, 1741, 503, 12339, 15323, 4063, 180337}}, +{19757, 18, 106586, {1, 3, 7, 11, 23, 43, 7, 115, 489, 215, 209, 3213, 4057, 13221, 27061, 52037, 34921, 36385}}, +{19758, 18, 106592, {1, 1, 7, 1, 15, 13, 113, 55, 207, 839, 1939, 4095, 5629, 7647, 12753, 59739, 60779, 196589}}, +{19759, 18, 106597, {1, 1, 1, 5, 5, 13, 113, 243, 297, 513, 1615, 1513, 1247, 4025, 20901, 44775, 86987, 75437}}, +{19760, 18, 106610, {1, 1, 3, 7, 7, 35, 77, 115, 223, 929, 1683, 949, 2191, 15533, 29471, 24103, 102475, 173027}}, +{19761, 18, 106612, {1, 3, 1, 11, 23, 37, 7, 179, 287, 267, 319, 3147, 1481, 12297, 28185, 51423, 7505, 236225}}, +{19762, 18, 106635, {1, 1, 3, 5, 27, 5, 71, 95, 289, 121, 939, 3543, 365, 4903, 10091, 3903, 111155, 83517}}, +{19763, 18, 106640, {1, 1, 7, 9, 29, 3, 87, 245, 313, 973, 1181, 3389, 3697, 13237, 13703, 31557, 17269, 17329}}, +{19764, 18, 106673, {1, 1, 5, 11, 5, 41, 117, 51, 239, 907, 809, 741, 5327, 3403, 11825, 46981, 93485, 38053}}, +{19765, 18, 106691, {1, 1, 7, 1, 25, 41, 5, 169, 11, 599, 1451, 2189, 7255, 8441, 11169, 58313, 4387, 69}}, +{19766, 18, 106724, {1, 3, 1, 13, 5, 21, 75, 229, 153, 355, 1511, 175, 4793, 12111, 25321, 39983, 84205, 195003}}, +{19767, 18, 106731, {1, 1, 7, 1, 17, 61, 67, 181, 69, 149, 921, 1107, 6319, 431, 29481, 12507, 13109, 29527}}, +{19768, 18, 106741, {1, 1, 5, 5, 27, 47, 69, 119, 469, 193, 513, 1573, 7421, 2723, 20997, 59585, 49645, 261259}}, +{19769, 18, 106748, {1, 1, 3, 9, 27, 41, 41, 3, 181, 803, 1281, 2937, 6745, 5629, 8403, 18987, 98411, 128321}}, +{19770, 18, 106765, {1, 3, 3, 9, 5, 29, 55, 223, 309, 841, 1049, 1163, 3497, 8935, 8529, 51367, 90693, 77463}}, +{19771, 18, 106789, {1, 3, 5, 3, 3, 59, 23, 31, 309, 907, 107, 3471, 4365, 14463, 24093, 35435, 24587, 151163}}, +{19772, 18, 106822, {1, 3, 3, 1, 11, 37, 99, 95, 485, 601, 1797, 891, 5645, 8927, 22085, 5185, 18495, 260455}}, +{19773, 18, 106856, {1, 3, 7, 15, 31, 61, 5, 177, 159, 287, 311, 1377, 1419, 4387, 25297, 22505, 100937, 223785}}, +{19774, 18, 106861, {1, 3, 3, 3, 27, 31, 45, 171, 95, 507, 1475, 4013, 2781, 133, 6857, 3367, 103455, 69559}}, +{19775, 18, 106870, {1, 3, 3, 7, 9, 51, 47, 247, 213, 665, 1929, 2799, 5513, 9183, 20197, 14831, 75277, 187565}}, +{19776, 18, 106883, {1, 3, 1, 9, 13, 11, 15, 253, 145, 31, 847, 1579, 5513, 9, 3327, 46049, 16709, 56353}}, +{19777, 18, 106895, {1, 3, 3, 3, 9, 17, 59, 131, 3, 621, 1209, 3415, 2999, 127, 629, 7925, 6109, 59743}}, +{19778, 18, 106928, {1, 1, 5, 15, 29, 35, 87, 197, 495, 671, 51, 293, 3943, 7969, 4739, 10161, 119943, 97217}}, +{19779, 18, 106938, {1, 1, 1, 9, 25, 57, 61, 197, 139, 899, 783, 3835, 3407, 16301, 19033, 33359, 56309, 16237}}, +{19780, 18, 106979, {1, 1, 5, 11, 25, 47, 95, 121, 197, 511, 227, 2281, 5805, 10581, 14885, 19685, 28075, 25431}}, +{19781, 18, 106985, {1, 1, 3, 9, 1, 43, 59, 105, 319, 45, 1567, 905, 7641, 2199, 3979, 13717, 22829, 44777}}, +{19782, 18, 107005, {1, 3, 7, 1, 19, 49, 105, 53, 227, 293, 989, 697, 2553, 4561, 14851, 8999, 74815, 207475}}, +{19783, 18, 107012, {1, 1, 5, 11, 23, 3, 85, 29, 419, 847, 1385, 3857, 641, 14951, 25629, 18019, 2497, 24723}}, +{19784, 18, 107019, {1, 3, 5, 15, 5, 11, 51, 225, 179, 695, 787, 663, 7051, 3595, 4987, 53315, 88693, 7915}}, +{19785, 18, 107045, {1, 3, 1, 13, 17, 51, 51, 247, 431, 555, 603, 3301, 443, 629, 26509, 32047, 54433, 208297}}, +{19786, 18, 107052, {1, 3, 7, 7, 13, 41, 95, 105, 135, 443, 377, 1259, 3301, 6945, 11677, 33869, 107799, 186567}}, +{19787, 18, 107082, {1, 1, 5, 7, 31, 17, 85, 129, 409, 781, 983, 25, 6877, 83, 12625, 31919, 41989, 55195}}, +{19788, 18, 107089, {1, 1, 3, 3, 7, 45, 37, 45, 237, 967, 1371, 657, 7983, 3121, 32707, 25757, 49987, 92683}}, +{19789, 18, 107118, {1, 3, 1, 1, 19, 57, 63, 25, 355, 893, 2017, 1671, 7343, 4451, 28243, 22157, 103901, 178017}}, +{19790, 18, 107163, {1, 3, 7, 13, 17, 59, 81, 99, 329, 117, 1395, 2565, 5725, 2371, 343, 4713, 35077, 49793}}, +{19791, 18, 107202, {1, 3, 7, 15, 31, 19, 87, 243, 411, 339, 1063, 117, 1827, 1583, 12571, 23153, 3363, 81695}}, +{19792, 18, 107238, {1, 3, 7, 1, 3, 49, 95, 133, 295, 433, 1885, 843, 6679, 13673, 32277, 59085, 46957, 217037}}, +{19793, 18, 107242, {1, 1, 3, 9, 23, 53, 45, 183, 79, 55, 1267, 283, 3249, 4101, 8107, 54473, 126141, 127235}}, +{19794, 18, 107244, {1, 3, 5, 7, 19, 57, 113, 205, 37, 817, 929, 3643, 2231, 15725, 1733, 7877, 116741, 254529}}, +{19795, 18, 107264, {1, 3, 1, 9, 9, 7, 75, 45, 83, 203, 1401, 445, 1043, 239, 30865, 32189, 91081, 180681}}, +{19796, 18, 107273, {1, 1, 7, 7, 1, 3, 61, 255, 483, 599, 897, 1601, 5189, 13279, 4981, 37235, 117505, 66625}}, +{19797, 18, 107291, {1, 1, 3, 13, 29, 43, 65, 73, 213, 307, 959, 2735, 5155, 16063, 15745, 6225, 50159, 182445}}, +{19798, 18, 107293, {1, 1, 3, 9, 31, 61, 73, 185, 457, 687, 1887, 4041, 3455, 4739, 16399, 40929, 32631, 179031}}, +{19799, 18, 107312, {1, 3, 3, 15, 5, 45, 1, 241, 187, 23, 63, 2497, 7759, 9175, 11003, 40579, 45769, 107133}}, +{19800, 18, 107318, {1, 3, 3, 7, 5, 63, 7, 67, 31, 917, 1825, 2037, 2527, 9767, 2665, 18573, 14289, 21583}}, +{19801, 18, 107335, {1, 1, 5, 15, 15, 25, 51, 127, 261, 925, 1651, 769, 7779, 7327, 7239, 20437, 9947, 144697}}, +{19802, 18, 107349, {1, 1, 5, 1, 5, 13, 99, 7, 269, 135, 345, 1851, 7963, 457, 24573, 32529, 127359, 157755}}, +{19803, 18, 107350, {1, 3, 5, 15, 21, 17, 31, 115, 321, 351, 117, 1301, 2455, 3363, 14213, 62903, 75273, 261119}}, +{19804, 18, 107363, {1, 3, 7, 1, 1, 9, 53, 209, 319, 489, 827, 1365, 4709, 7419, 28213, 56095, 9611, 234877}}, +{19805, 18, 107390, {1, 1, 5, 5, 1, 7, 49, 15, 377, 309, 1701, 1775, 5571, 12437, 27521, 54753, 68977, 138549}}, +{19806, 18, 107405, {1, 1, 3, 11, 9, 29, 67, 21, 411, 647, 983, 1075, 2387, 13355, 1781, 56129, 87235, 260133}}, +{19807, 18, 107408, {1, 3, 1, 11, 5, 57, 71, 159, 345, 853, 745, 3733, 1607, 7265, 20097, 18911, 101141, 70495}}, +{19808, 18, 107427, {1, 1, 3, 9, 1, 43, 127, 127, 471, 465, 1777, 1879, 4655, 12925, 24935, 58445, 78303, 200463}}, +{19809, 18, 107433, {1, 1, 1, 15, 5, 33, 63, 17, 401, 831, 1559, 3547, 7869, 13901, 18185, 9399, 65859, 185315}}, +{19810, 18, 107444, {1, 3, 7, 1, 25, 21, 17, 175, 401, 833, 847, 3593, 1283, 14745, 11827, 1987, 89299, 187369}}, +{19811, 18, 107514, {1, 1, 7, 13, 29, 31, 45, 219, 177, 369, 1313, 3015, 5859, 1829, 8793, 49109, 97581, 233179}}, +{19812, 18, 107522, {1, 3, 3, 15, 17, 31, 61, 215, 231, 495, 1307, 3067, 3187, 8813, 22505, 14055, 30773, 177955}}, +{19813, 18, 107545, {1, 3, 7, 15, 9, 61, 57, 105, 89, 267, 233, 905, 3727, 1841, 31875, 32499, 27003, 208491}}, +{19814, 18, 107582, {1, 3, 1, 11, 31, 9, 63, 55, 213, 209, 1625, 2635, 4335, 15201, 6127, 11097, 37991, 62813}}, +{19815, 18, 107590, {1, 1, 1, 5, 13, 49, 127, 249, 339, 525, 1943, 2935, 3255, 5199, 6869, 6325, 731, 51085}}, +{19816, 18, 107593, {1, 1, 5, 7, 7, 29, 59, 187, 463, 409, 1321, 377, 7361, 8303, 20385, 39649, 81379, 235555}}, +{19817, 18, 107599, {1, 1, 5, 13, 15, 45, 99, 57, 217, 535, 1747, 4081, 4781, 1005, 25197, 23853, 90587, 189579}}, +{19818, 18, 107604, {1, 1, 7, 7, 23, 31, 1, 151, 339, 447, 523, 2609, 5917, 6965, 25815, 62797, 104083, 245917}}, +{19819, 18, 107608, {1, 3, 5, 3, 7, 37, 79, 253, 423, 511, 1477, 3121, 5557, 1413, 31075, 22249, 117639, 243543}}, +{19820, 18, 107627, {1, 1, 3, 7, 5, 31, 93, 117, 135, 235, 745, 3287, 4451, 2487, 15179, 62229, 18247, 150277}}, +{19821, 18, 107638, {1, 1, 7, 15, 31, 57, 125, 219, 433, 629, 1809, 2499, 6083, 7631, 31495, 63183, 28533, 120579}}, +{19822, 18, 107666, {1, 1, 1, 13, 31, 47, 77, 73, 343, 867, 1055, 1121, 3035, 15693, 6971, 50231, 16527, 190795}}, +{19823, 18, 107678, {1, 3, 7, 7, 11, 1, 5, 215, 87, 885, 1429, 1277, 3831, 9341, 22011, 34585, 56167, 65301}}, +{19824, 18, 107701, {1, 3, 1, 15, 13, 53, 91, 59, 277, 819, 453, 3191, 757, 4729, 20605, 4283, 110745, 233655}}, +{19825, 18, 107720, {1, 3, 3, 5, 17, 47, 69, 117, 113, 775, 935, 1879, 2239, 5877, 18337, 50895, 44891, 2759}}, +{19826, 18, 107723, {1, 3, 5, 1, 27, 31, 77, 65, 355, 405, 825, 2419, 3337, 10179, 27665, 35459, 13721, 154227}}, +{19827, 18, 107725, {1, 3, 3, 7, 23, 61, 9, 241, 239, 85, 485, 2659, 5371, 16175, 28691, 49109, 124433, 167033}}, +{19828, 18, 107731, {1, 3, 3, 3, 11, 57, 37, 155, 443, 249, 1913, 1347, 6569, 5357, 4231, 58273, 50707, 57097}}, +{19829, 18, 107737, {1, 1, 3, 3, 1, 7, 87, 115, 259, 807, 45, 2997, 63, 16313, 12507, 39925, 17699, 24411}}, +{19830, 18, 107767, {1, 3, 3, 1, 19, 59, 97, 209, 247, 395, 21, 1803, 2547, 11607, 15703, 58099, 111907, 196101}}, +{19831, 18, 107779, {1, 1, 7, 13, 27, 61, 73, 183, 493, 953, 445, 567, 7373, 15275, 30081, 539, 89365, 3455}}, +{19832, 18, 107788, {1, 3, 1, 3, 25, 35, 3, 105, 243, 781, 1937, 2781, 7849, 2159, 2221, 58005, 89313, 182183}}, +{19833, 18, 107799, {1, 1, 7, 15, 21, 7, 67, 163, 179, 453, 581, 2245, 3915, 8985, 16809, 35113, 93605, 79009}}, +{19834, 18, 107819, {1, 1, 7, 5, 29, 57, 13, 75, 387, 511, 331, 1119, 307, 6145, 3841, 49987, 67335, 120419}}, +{19835, 18, 107833, {1, 3, 1, 5, 13, 21, 119, 207, 453, 943, 137, 2245, 7771, 5737, 9541, 29209, 106867, 110513}}, +{19836, 18, 107881, {1, 3, 7, 13, 7, 3, 99, 129, 245, 687, 883, 1321, 1131, 6661, 7437, 1345, 128247, 167877}}, +{19837, 18, 107901, {1, 1, 3, 11, 7, 57, 59, 3, 217, 549, 85, 2607, 215, 2249, 3963, 42931, 33747, 226265}}, +{19838, 18, 107911, {1, 1, 5, 5, 29, 23, 115, 215, 103, 427, 1689, 831, 3293, 14055, 3735, 49521, 17703, 182887}}, +{19839, 18, 107930, {1, 1, 1, 15, 5, 43, 27, 181, 217, 955, 225, 2731, 7347, 14123, 26169, 4371, 26907, 15017}}, +{19840, 18, 107936, {1, 1, 7, 7, 31, 55, 63, 223, 61, 63, 431, 2779, 3169, 14323, 2945, 63913, 85407, 76511}}, +{19841, 18, 107980, {1, 1, 3, 11, 5, 27, 113, 75, 313, 697, 13, 1853, 7467, 5701, 16749, 17939, 13475, 39807}}, +{19842, 18, 108004, {1, 1, 7, 5, 13, 53, 55, 115, 125, 341, 321, 3291, 2675, 13659, 16819, 45397, 42917, 104361}}, +{19843, 18, 108008, {1, 3, 3, 15, 27, 47, 19, 213, 441, 605, 593, 2287, 4847, 10505, 22185, 36157, 10881, 87799}}, +{19844, 18, 108016, {1, 1, 1, 11, 15, 39, 109, 3, 469, 371, 1743, 2789, 199, 8703, 7407, 3353, 103417, 73319}}, +{19845, 18, 108066, {1, 3, 7, 5, 25, 61, 77, 111, 263, 399, 1579, 3447, 6205, 5945, 28099, 39183, 77003, 115001}}, +{19846, 18, 108071, {1, 1, 1, 3, 1, 7, 57, 193, 379, 923, 151, 2227, 7285, 2371, 24567, 34037, 80655, 125499}}, +{19847, 18, 108107, {1, 3, 5, 7, 13, 15, 5, 193, 55, 319, 1851, 2439, 8071, 5329, 3155, 64669, 18547, 238997}}, +{19848, 18, 108110, {1, 3, 3, 11, 7, 23, 1, 203, 333, 951, 153, 1249, 5093, 407, 361, 14175, 45149, 186291}}, +{19849, 18, 108124, {1, 3, 1, 11, 13, 19, 89, 229, 139, 981, 455, 907, 5109, 8513, 23823, 54933, 69985, 227679}}, +{19850, 18, 108145, {1, 3, 5, 13, 23, 47, 65, 123, 115, 759, 375, 1283, 729, 11045, 22015, 18287, 112603, 75911}}, +{19851, 18, 108148, {1, 1, 3, 1, 5, 43, 91, 123, 219, 409, 517, 3999, 1409, 5949, 15727, 62705, 73573, 198447}}, +{19852, 18, 108158, {1, 3, 3, 3, 5, 23, 95, 51, 275, 455, 1831, 2427, 3779, 10209, 30839, 23393, 25681, 8715}}, +{19853, 18, 108164, {1, 3, 5, 3, 9, 5, 61, 97, 497, 397, 695, 517, 3313, 4911, 1961, 45805, 99135, 216657}}, +{19854, 18, 108197, {1, 1, 1, 7, 13, 41, 19, 31, 103, 1005, 73, 1855, 405, 12395, 19979, 17663, 105183, 28493}}, +{19855, 18, 108198, {1, 3, 1, 11, 27, 27, 69, 149, 1, 225, 1809, 1367, 3663, 6545, 8475, 40837, 64459, 66705}}, +{19856, 18, 108219, {1, 3, 3, 1, 29, 21, 113, 149, 215, 443, 1069, 3437, 1793, 13573, 28285, 33707, 29127, 40715}}, +{19857, 18, 108222, {1, 3, 3, 5, 21, 9, 53, 181, 455, 283, 245, 3999, 875, 9799, 10963, 31603, 34907, 64977}}, +{19858, 18, 108224, {1, 3, 1, 11, 31, 51, 29, 103, 61, 529, 777, 1097, 445, 9169, 6305, 4513, 60189, 164103}}, +{19859, 18, 108227, {1, 1, 1, 3, 21, 5, 87, 11, 461, 637, 1283, 1471, 1429, 2401, 12163, 29401, 30089, 41745}}, +{19860, 18, 108290, {1, 1, 3, 3, 17, 43, 13, 153, 73, 419, 747, 279, 7195, 4383, 26345, 28365, 97753, 208989}}, +{19861, 18, 108302, {1, 3, 7, 1, 17, 55, 103, 151, 327, 575, 1923, 1533, 4699, 2171, 15447, 64047, 59007, 54523}}, +{19862, 18, 108329, {1, 3, 7, 7, 3, 51, 79, 39, 403, 599, 161, 2465, 4911, 10327, 23599, 3267, 44177, 184231}}, +{19863, 18, 108335, {1, 3, 3, 15, 5, 19, 57, 83, 507, 927, 665, 3471, 5037, 2051, 22923, 36813, 97393, 102715}}, +{19864, 18, 108338, {1, 3, 3, 13, 11, 19, 91, 179, 113, 295, 855, 2071, 3265, 4089, 8627, 7461, 23855, 53675}}, +{19865, 18, 108362, {1, 1, 3, 5, 21, 41, 11, 227, 87, 417, 209, 2013, 4849, 5291, 22073, 40235, 71283, 140785}}, +{19866, 18, 108398, {1, 3, 3, 5, 29, 57, 95, 65, 177, 177, 1973, 563, 5249, 337, 7611, 45099, 15443, 46583}}, +{19867, 18, 108405, {1, 1, 7, 3, 3, 5, 107, 75, 31, 293, 821, 1837, 2363, 13621, 8793, 29841, 127201, 131707}}, +{19868, 18, 108409, {1, 1, 1, 5, 1, 45, 69, 61, 157, 999, 183, 3431, 3487, 9461, 17545, 26973, 115527, 58419}}, +{19869, 18, 108431, {1, 1, 7, 7, 27, 5, 125, 153, 191, 745, 125, 2807, 5043, 10657, 24487, 19517, 31735, 42421}}, +{19870, 18, 108449, {1, 1, 7, 9, 25, 37, 73, 255, 141, 229, 1723, 1331, 6089, 13109, 30683, 2335, 111517, 105411}}, +{19871, 18, 108474, {1, 1, 5, 7, 3, 61, 79, 203, 423, 669, 1757, 1725, 4239, 7013, 28591, 61853, 81103, 39813}}, +{19872, 18, 108488, {1, 1, 3, 7, 21, 27, 23, 119, 441, 113, 1019, 285, 53, 8643, 31689, 2629, 126573, 60835}}, +{19873, 18, 108530, {1, 1, 5, 11, 29, 49, 23, 55, 441, 809, 1177, 1371, 5945, 6461, 11537, 12287, 85637, 232065}}, +{19874, 18, 108545, {1, 3, 1, 15, 5, 13, 19, 209, 105, 897, 565, 3209, 487, 9837, 22169, 26317, 39907, 185193}}, +{19875, 18, 108551, {1, 1, 1, 5, 23, 45, 49, 55, 501, 213, 1217, 3159, 733, 5889, 5475, 4953, 37317, 100369}}, +{19876, 18, 108558, {1, 1, 5, 1, 19, 5, 57, 137, 361, 605, 1077, 2015, 5511, 4667, 18457, 45979, 120253, 203397}}, +{19877, 18, 108585, {1, 1, 7, 9, 19, 19, 11, 187, 5, 647, 275, 1265, 7587, 16183, 369, 31885, 58347, 36829}}, +{19878, 18, 108613, {1, 3, 5, 3, 31, 31, 7, 105, 359, 839, 641, 3215, 4807, 13397, 885, 52867, 57125, 180607}}, +{19879, 18, 108638, {1, 1, 7, 9, 19, 45, 43, 211, 429, 757, 1637, 1569, 935, 8899, 24823, 18599, 111373, 190979}}, +{19880, 18, 108642, {1, 1, 7, 7, 13, 47, 3, 241, 467, 209, 323, 3467, 4397, 15395, 15373, 14499, 92443, 65931}}, +{19881, 18, 108653, {1, 3, 3, 5, 5, 9, 67, 115, 45, 279, 1753, 1575, 8127, 9651, 5169, 25643, 29671, 214383}}, +{19882, 18, 108671, {1, 3, 7, 7, 29, 7, 37, 205, 495, 445, 1771, 1439, 3577, 10423, 10865, 26851, 15251, 63373}}, +{19883, 18, 108675, {1, 3, 1, 9, 29, 13, 45, 61, 153, 193, 1407, 1075, 4023, 2367, 1147, 51277, 52975, 123061}}, +{19884, 18, 108684, {1, 3, 3, 3, 31, 25, 113, 173, 345, 565, 145, 3437, 7051, 12557, 27919, 41733, 76717, 192645}}, +{19885, 18, 108687, {1, 3, 3, 7, 3, 55, 35, 219, 55, 467, 635, 3833, 3753, 1099, 15301, 53121, 120807, 70481}}, +{19886, 18, 108696, {1, 3, 7, 7, 13, 1, 121, 191, 71, 193, 1891, 2303, 1401, 9143, 31297, 38979, 43093, 138941}}, +{19887, 18, 108786, {1, 3, 7, 5, 17, 51, 83, 201, 231, 423, 511, 1301, 6075, 475, 2603, 49327, 78565, 220827}}, +{19888, 18, 108792, {1, 3, 1, 7, 5, 61, 23, 11, 9, 711, 251, 1383, 613, 6213, 8921, 27267, 66009, 28575}}, +{19889, 18, 108795, {1, 3, 1, 3, 13, 13, 61, 211, 353, 883, 343, 1089, 2041, 7781, 25285, 9053, 76801, 153009}}, +{19890, 18, 108818, {1, 3, 7, 5, 17, 61, 67, 69, 361, 937, 949, 1483, 2825, 3753, 16533, 17277, 16539, 140521}}, +{19891, 18, 108830, {1, 3, 5, 9, 7, 19, 31, 239, 357, 561, 1583, 3059, 2023, 2213, 11283, 18603, 83487, 162415}}, +{19892, 18, 108836, {1, 1, 3, 15, 15, 59, 9, 43, 353, 203, 765, 1907, 2733, 3747, 30617, 32671, 119005, 72131}}, +{19893, 18, 108839, {1, 3, 1, 7, 17, 61, 55, 113, 439, 75, 703, 2741, 1059, 4561, 15923, 17153, 32563, 79681}}, +{19894, 18, 108851, {1, 1, 1, 15, 11, 57, 91, 245, 187, 185, 1859, 1209, 3247, 10863, 22421, 47287, 26831, 200935}}, +{19895, 18, 108875, {1, 1, 3, 13, 11, 39, 61, 211, 51, 197, 861, 2965, 4691, 9955, 2289, 28795, 61537, 235359}}, +{19896, 18, 108883, {1, 1, 7, 1, 31, 37, 121, 107, 79, 521, 371, 983, 6189, 4515, 25691, 26933, 123189, 70033}}, +{19897, 18, 108895, {1, 3, 3, 15, 19, 33, 31, 237, 35, 877, 1013, 3445, 573, 1145, 27781, 26327, 117451, 142339}}, +{19898, 18, 108908, {1, 3, 3, 15, 15, 9, 17, 185, 151, 499, 493, 1331, 1587, 12657, 22577, 7957, 126253, 57971}}, +{19899, 18, 108953, {1, 3, 7, 15, 3, 29, 43, 105, 423, 601, 793, 1011, 6657, 7287, 18561, 46993, 72945, 233051}}, +{19900, 18, 108956, {1, 1, 7, 5, 15, 17, 125, 141, 75, 877, 281, 2011, 4217, 9785, 7587, 42863, 35585, 212795}}, +{19901, 18, 108963, {1, 1, 3, 3, 3, 37, 67, 129, 433, 233, 115, 687, 6253, 12805, 10935, 49963, 91675, 241951}}, +{19902, 18, 108989, {1, 3, 1, 5, 3, 41, 3, 233, 317, 959, 1407, 1251, 743, 4165, 15561, 41165, 22393, 111633}}, +{19903, 18, 109001, {1, 3, 3, 15, 17, 15, 53, 245, 109, 413, 1149, 35, 2931, 11635, 27091, 63659, 33973, 16867}}, +{19904, 18, 109009, {1, 3, 7, 13, 3, 43, 83, 201, 367, 275, 235, 1795, 4041, 13539, 22345, 31451, 83985, 3527}}, +{19905, 18, 109052, {1, 3, 3, 9, 31, 47, 63, 117, 195, 497, 453, 1183, 3857, 14075, 28057, 13205, 54331, 54641}}, +{19906, 18, 109083, {1, 1, 7, 11, 11, 39, 37, 183, 213, 537, 1371, 901, 5255, 11791, 18993, 58785, 114113, 229815}}, +{19907, 18, 109090, {1, 3, 5, 5, 13, 45, 77, 165, 329, 439, 2011, 1845, 4577, 12457, 16959, 45943, 37715, 169775}}, +{19908, 18, 109104, {1, 1, 3, 11, 5, 7, 21, 245, 365, 371, 1291, 2569, 1791, 6003, 18619, 18661, 98551, 89645}}, +{19909, 18, 109121, {1, 3, 1, 7, 3, 51, 49, 245, 151, 919, 489, 3967, 3157, 7159, 17207, 19749, 94455, 112403}}, +{19910, 18, 109128, {1, 3, 7, 5, 9, 15, 17, 201, 273, 669, 1571, 3915, 1859, 2569, 28855, 27225, 116711, 148377}}, +{19911, 18, 109141, {1, 3, 7, 3, 19, 45, 115, 71, 201, 85, 1349, 3897, 4941, 10839, 14781, 36487, 107037, 109185}}, +{19912, 18, 109146, {1, 3, 5, 13, 11, 11, 35, 19, 213, 41, 45, 4075, 3163, 12937, 17487, 28911, 21289, 198489}}, +{19913, 18, 109155, {1, 1, 1, 11, 7, 35, 67, 23, 451, 235, 717, 181, 6697, 9359, 24561, 36187, 125179, 35119}}, +{19914, 18, 109162, {1, 1, 7, 15, 7, 47, 55, 125, 465, 251, 211, 3137, 4101, 1341, 2287, 22149, 45089, 94173}}, +{19915, 18, 109209, {1, 3, 1, 15, 19, 7, 15, 207, 7, 759, 869, 2337, 6805, 8287, 13447, 9963, 7177, 173505}}, +{19916, 18, 109216, {1, 3, 7, 13, 15, 3, 65, 143, 291, 511, 939, 669, 4095, 1931, 26015, 18253, 102461, 93837}}, +{19917, 18, 109243, {1, 3, 1, 5, 23, 3, 19, 121, 489, 583, 1425, 627, 4229, 5343, 3759, 17845, 105369, 132239}}, +{19918, 18, 109265, {1, 3, 3, 9, 29, 9, 17, 153, 111, 879, 1225, 979, 2687, 10477, 10105, 18091, 37825, 28077}}, +{19919, 18, 109282, {1, 1, 7, 9, 3, 51, 75, 101, 197, 551, 89, 1441, 607, 14025, 30411, 26887, 3435, 32977}}, +{19920, 18, 109306, {1, 1, 7, 3, 25, 29, 95, 123, 197, 767, 1513, 721, 4149, 10873, 32247, 4469, 42297, 49651}}, +{19921, 18, 109316, {1, 3, 5, 15, 11, 3, 77, 161, 309, 923, 513, 161, 6447, 9811, 9209, 21413, 8611, 237557}}, +{19922, 18, 109334, {1, 3, 1, 3, 23, 11, 61, 107, 317, 771, 1469, 3367, 6607, 11495, 12271, 59989, 52483, 194761}}, +{19923, 18, 109359, {1, 3, 7, 7, 23, 1, 37, 47, 185, 863, 1153, 3517, 6165, 3921, 19311, 37339, 112477, 204915}}, +{19924, 18, 109373, {1, 3, 7, 7, 15, 61, 9, 113, 175, 305, 1759, 2933, 2139, 3591, 15303, 54479, 126511, 255205}}, +{19925, 18, 109386, {1, 1, 1, 3, 29, 43, 19, 183, 121, 577, 1329, 1737, 4373, 5577, 24023, 40103, 22333, 123423}}, +{19926, 18, 109394, {1, 3, 5, 1, 29, 1, 5, 177, 271, 431, 139, 705, 4319, 9301, 15887, 13253, 13275, 233317}}, +{19927, 18, 109403, {1, 1, 3, 7, 21, 3, 13, 51, 459, 359, 1721, 193, 4887, 7805, 20615, 28813, 82427, 57853}}, +{19928, 18, 109409, {1, 3, 3, 13, 3, 29, 43, 95, 339, 993, 979, 2323, 7505, 10203, 9475, 16513, 21651, 104871}}, +{19929, 18, 109412, {1, 1, 3, 15, 11, 5, 97, 127, 397, 25, 507, 1839, 2313, 13399, 899, 25713, 94363, 178287}}, +{19930, 18, 109427, {1, 1, 5, 5, 9, 53, 95, 171, 107, 129, 1041, 3583, 5479, 943, 21435, 36481, 85519, 169651}}, +{19931, 18, 109439, {1, 1, 1, 1, 1, 11, 17, 249, 277, 805, 1827, 2705, 3015, 9033, 25019, 38593, 59235, 21145}}, +{19932, 18, 109464, {1, 1, 7, 3, 7, 59, 107, 213, 109, 213, 555, 3463, 953, 3173, 18947, 2863, 27889, 32493}}, +{19933, 18, 109467, {1, 3, 5, 15, 21, 11, 99, 131, 287, 513, 1393, 3327, 7347, 4343, 8805, 29571, 97151, 97313}}, +{19934, 18, 109476, {1, 3, 5, 3, 17, 53, 23, 21, 227, 291, 111, 1951, 6593, 16325, 31725, 31997, 116907, 181027}}, +{19935, 18, 109488, {1, 1, 5, 3, 15, 57, 93, 153, 345, 257, 169, 795, 3907, 5669, 25447, 28775, 1489, 216417}}, +{19936, 18, 109497, {1, 1, 1, 5, 19, 19, 113, 55, 431, 685, 1839, 711, 4909, 10211, 25765, 37, 72657, 79769}}, +{19937, 18, 109523, {1, 3, 5, 7, 19, 17, 93, 145, 99, 799, 1615, 1583, 7705, 1069, 30259, 37951, 78965, 16203}}, +{19938, 18, 109551, {1, 3, 7, 13, 23, 61, 119, 49, 413, 1021, 415, 465, 7395, 31, 16415, 1009, 9843, 86531}}, +{19939, 18, 109556, {1, 1, 3, 15, 17, 21, 83, 69, 411, 1, 269, 1391, 295, 13649, 21649, 62453, 11457, 215375}}, +{19940, 18, 109566, {1, 3, 3, 7, 25, 53, 95, 99, 447, 323, 27, 1595, 3771, 16099, 31523, 14405, 66999, 65733}}, +{19941, 18, 109598, {1, 1, 3, 11, 25, 29, 19, 95, 101, 661, 537, 641, 1455, 16151, 29087, 54009, 89395, 2223}}, +{19942, 18, 109628, {1, 1, 1, 11, 11, 33, 91, 227, 449, 661, 1621, 1743, 2859, 9797, 32397, 41767, 116325, 6839}}, +{19943, 18, 109643, {1, 3, 3, 7, 31, 41, 15, 139, 53, 789, 25, 67, 1131, 5987, 14091, 37259, 70313, 6633}}, +{19944, 18, 109663, {1, 3, 7, 13, 21, 29, 71, 245, 497, 493, 207, 3221, 3695, 3045, 1497, 29235, 65113, 82015}}, +{19945, 18, 109674, {1, 1, 7, 5, 29, 29, 87, 197, 123, 323, 773, 157, 2925, 9235, 31625, 58187, 121457, 25561}}, +{19946, 18, 109688, {1, 1, 1, 9, 3, 15, 99, 55, 133, 757, 1405, 997, 5201, 8971, 6095, 33309, 35587, 254545}}, +{19947, 18, 109691, {1, 3, 5, 9, 19, 57, 85, 45, 429, 823, 1369, 933, 1971, 13753, 11351, 45805, 16527, 129907}}, +{19948, 18, 109704, {1, 3, 3, 15, 23, 15, 35, 89, 477, 875, 1087, 2837, 1093, 617, 18687, 53269, 63447, 226393}}, +{19949, 18, 109715, {1, 1, 7, 9, 27, 37, 23, 107, 265, 485, 1975, 3159, 4065, 10089, 26975, 45067, 4241, 49051}}, +{19950, 18, 109717, {1, 3, 3, 1, 29, 53, 89, 129, 149, 717, 749, 1481, 7829, 15887, 23185, 30667, 11749, 188963}}, +{19951, 18, 109746, {1, 3, 5, 9, 13, 47, 119, 135, 407, 99, 1773, 2307, 7885, 4013, 25723, 53519, 37487, 205671}}, +{19952, 18, 109789, {1, 1, 5, 1, 11, 27, 121, 213, 147, 669, 799, 485, 4275, 15909, 30583, 45925, 90365, 226901}}, +{19953, 18, 109794, {1, 1, 3, 5, 1, 19, 81, 109, 217, 949, 1637, 3413, 5957, 7293, 17337, 63857, 103815, 80805}}, +{19954, 18, 109868, {1, 3, 7, 3, 9, 43, 119, 251, 345, 3, 203, 829, 3391, 2575, 6859, 50849, 22221, 227581}}, +{19955, 18, 109886, {1, 1, 7, 15, 13, 43, 7, 23, 101, 89, 1747, 1231, 1883, 13363, 10981, 59179, 59555, 242021}}, +{19956, 18, 109888, {1, 1, 5, 5, 23, 15, 93, 183, 231, 891, 1745, 2665, 1689, 8515, 11717, 35643, 113067, 233757}}, +{19957, 18, 109903, {1, 3, 7, 11, 29, 21, 13, 59, 103, 105, 483, 863, 2711, 7917, 29279, 53931, 7011, 60075}}, +{19958, 18, 109908, {1, 1, 3, 15, 5, 37, 101, 163, 31, 575, 2029, 1625, 4545, 12579, 15175, 32667, 59497, 63653}}, +{19959, 18, 109912, {1, 3, 5, 7, 23, 37, 61, 101, 273, 49, 1943, 3381, 491, 4079, 20341, 26463, 122261, 77965}}, +{19960, 18, 109927, {1, 1, 3, 15, 9, 51, 53, 89, 175, 487, 1583, 1797, 4353, 1339, 19613, 26913, 78955, 166523}}, +{19961, 18, 109936, {1, 3, 3, 9, 27, 57, 25, 207, 233, 675, 661, 2629, 6971, 8723, 31199, 47215, 36931, 28347}}, +{19962, 18, 109979, {1, 3, 1, 3, 31, 15, 123, 17, 211, 883, 1861, 2747, 8075, 5373, 23521, 46217, 86629, 171777}}, +{19963, 18, 110005, {1, 3, 5, 9, 11, 43, 45, 171, 465, 835, 603, 2121, 409, 1643, 20327, 63211, 129479, 223113}}, +{19964, 18, 110010, {1, 1, 5, 7, 13, 57, 83, 233, 307, 489, 941, 1723, 6149, 5557, 2053, 17377, 31597, 176051}}, +{19965, 18, 110017, {1, 1, 7, 3, 11, 11, 85, 163, 169, 989, 1289, 2749, 7681, 4679, 645, 36589, 85907, 194713}}, +{19966, 18, 110041, {1, 1, 1, 7, 3, 57, 39, 149, 463, 947, 481, 1163, 7171, 8539, 28991, 61235, 74487, 107051}}, +{19967, 18, 110042, {1, 1, 3, 7, 9, 57, 89, 101, 231, 163, 1355, 1393, 5823, 7565, 26285, 13523, 130329, 26099}}, +{19968, 18, 110047, {1, 1, 7, 15, 13, 59, 111, 35, 265, 927, 125, 1881, 5397, 757, 23845, 9677, 76077, 163361}}, +{19969, 18, 110048, {1, 1, 7, 9, 1, 63, 61, 157, 389, 143, 1445, 881, 3609, 9955, 11159, 59677, 45831, 138345}}, +{19970, 18, 110053, {1, 3, 5, 7, 5, 45, 65, 23, 257, 589, 905, 3651, 743, 117, 30307, 7415, 103331, 252889}}, +{19971, 18, 110054, {1, 1, 7, 13, 3, 57, 113, 91, 217, 967, 481, 989, 4795, 3549, 23717, 60793, 80281, 19977}}, +{19972, 18, 110057, {1, 3, 3, 1, 15, 37, 113, 245, 239, 575, 197, 2803, 7743, 13447, 3601, 56981, 76381, 13321}}, +{19973, 18, 110091, {1, 3, 1, 11, 27, 33, 99, 151, 43, 835, 1951, 1957, 2983, 6781, 9319, 2119, 40533, 118325}}, +{19974, 18, 110093, {1, 3, 3, 7, 27, 19, 23, 243, 347, 477, 1661, 1891, 2439, 2485, 31743, 1427, 20317, 90803}}, +{19975, 18, 110112, {1, 3, 1, 1, 3, 59, 71, 129, 21, 3, 449, 629, 3657, 4045, 8305, 40461, 60927, 38529}}, +{19976, 18, 110127, {1, 3, 3, 7, 9, 11, 85, 185, 369, 451, 887, 3709, 6931, 111, 1379, 8741, 58777, 188045}}, +{19977, 18, 110178, {1, 3, 7, 11, 23, 13, 77, 141, 99, 543, 725, 2439, 6825, 1361, 2785, 5345, 5941, 234751}}, +{19978, 18, 110183, {1, 1, 5, 5, 17, 55, 69, 9, 431, 585, 1049, 165, 1705, 14907, 8655, 12485, 22783, 91195}}, +{19979, 18, 110184, {1, 1, 7, 11, 29, 41, 91, 137, 17, 785, 1151, 2033, 7031, 15077, 2241, 21453, 117947, 128891}}, +{19980, 18, 110195, {1, 1, 1, 11, 17, 53, 113, 195, 409, 275, 1757, 245, 6263, 14785, 29159, 43827, 65027, 248403}}, +{19981, 18, 110307, {1, 3, 3, 3, 5, 15, 23, 41, 261, 891, 1021, 1999, 4883, 9233, 10385, 21953, 50711, 4247}}, +{19982, 18, 110334, {1, 1, 1, 13, 23, 47, 33, 77, 317, 251, 617, 2265, 7549, 327, 2317, 41209, 41063, 120863}}, +{19983, 18, 110336, {1, 1, 7, 11, 15, 17, 25, 105, 253, 713, 1147, 415, 5777, 2215, 4207, 33857, 17001, 260533}}, +{19984, 18, 110354, {1, 1, 1, 11, 31, 45, 3, 25, 329, 45, 1563, 121, 1413, 16229, 32485, 54477, 101025, 64847}}, +{19985, 18, 110356, {1, 3, 5, 1, 15, 59, 113, 203, 481, 545, 371, 1357, 5549, 3043, 397, 61483, 59779, 58159}}, +{19986, 18, 110390, {1, 3, 3, 3, 25, 39, 29, 193, 379, 293, 1173, 3389, 4231, 11519, 6681, 28813, 63609, 13029}}, +{19987, 18, 110419, {1, 3, 1, 1, 27, 57, 37, 249, 441, 905, 463, 3543, 7203, 10075, 5373, 46103, 6685, 146943}}, +{19988, 18, 110452, {1, 3, 5, 7, 31, 51, 21, 139, 209, 219, 1663, 837, 3351, 6291, 735, 8715, 33751, 199485}}, +{19989, 18, 110461, {1, 3, 5, 11, 19, 57, 41, 163, 287, 327, 243, 2891, 1095, 3959, 5067, 2867, 16207, 213089}}, +{19990, 18, 110465, {1, 1, 5, 11, 21, 59, 97, 239, 309, 371, 797, 453, 2595, 4277, 3771, 5665, 10075, 56101}}, +{19991, 18, 110466, {1, 1, 3, 15, 17, 29, 103, 33, 449, 525, 961, 3551, 3611, 14057, 15971, 26981, 35169, 130213}}, +{19992, 18, 110468, {1, 1, 3, 1, 5, 13, 39, 211, 387, 797, 1051, 3287, 3737, 12953, 3387, 35107, 78809, 162907}}, +{19993, 18, 110486, {1, 1, 7, 9, 7, 63, 127, 115, 173, 981, 623, 737, 7625, 12245, 4195, 61873, 104301, 250333}}, +{19994, 18, 110511, {1, 1, 1, 5, 19, 5, 123, 43, 209, 741, 747, 1057, 2683, 15359, 24121, 38413, 5823, 62213}}, +{19995, 18, 110531, {1, 1, 7, 1, 23, 13, 63, 165, 309, 323, 247, 3827, 5451, 4823, 23925, 56957, 69765, 259923}}, +{19996, 18, 110561, {1, 1, 5, 1, 5, 49, 51, 65, 31, 257, 1363, 3031, 5765, 3645, 16383, 6347, 30429, 130557}}, +{19997, 18, 110573, {1, 3, 5, 13, 9, 63, 31, 3, 317, 379, 1345, 2161, 7787, 2055, 21507, 20347, 97021, 183377}}, +{19998, 18, 110593, {1, 3, 5, 11, 15, 59, 13, 139, 415, 821, 639, 1249, 6349, 15861, 21377, 22813, 42839, 76595}}, +{19999, 18, 110611, {1, 1, 7, 9, 23, 11, 25, 115, 393, 153, 1269, 871, 1323, 1891, 11619, 3103, 79813, 39811}}, +{20000, 18, 110614, {1, 3, 1, 15, 27, 37, 63, 253, 1, 855, 1651, 3111, 6693, 1825, 22549, 64189, 18347, 253425}}, +{20001, 18, 110651, {1, 3, 1, 11, 23, 27, 119, 59, 421, 343, 831, 2679, 5899, 12087, 15953, 18601, 109551, 33895}}, +{20002, 18, 110661, {1, 3, 1, 13, 29, 3, 91, 227, 301, 491, 1045, 2105, 5189, 13717, 1095, 6039, 16229, 215687}}, +{20003, 18, 110665, {1, 1, 7, 3, 11, 53, 85, 25, 23, 293, 841, 3569, 5335, 8949, 28665, 15139, 100807, 155587}}, +{20004, 18, 110701, {1, 1, 1, 9, 31, 1, 77, 149, 181, 5, 915, 1155, 4717, 2837, 17545, 3235, 26811, 124901}}, +{20005, 18, 110730, {1, 1, 3, 5, 25, 27, 47, 215, 425, 195, 1575, 3961, 3521, 4197, 9565, 32523, 125091, 165543}}, +{20006, 18, 110735, {1, 3, 7, 3, 17, 57, 7, 137, 507, 303, 1123, 1511, 2465, 4277, 19959, 31951, 83157, 62843}}, +{20007, 18, 110738, {1, 3, 3, 1, 27, 43, 79, 191, 265, 167, 665, 4017, 6613, 1175, 5427, 47139, 91517, 32071}}, +{20008, 18, 110759, {1, 1, 1, 11, 29, 63, 9, 39, 303, 1021, 415, 2157, 5227, 13557, 4931, 12541, 74101, 13189}}, +{20009, 18, 110763, {1, 1, 3, 9, 15, 41, 45, 163, 301, 315, 1433, 1449, 3589, 15783, 16069, 16155, 10527, 69335}}, +{20010, 18, 110768, {1, 3, 1, 1, 1, 5, 75, 169, 215, 115, 939, 1285, 43, 1941, 27847, 5245, 51211, 244817}}, +{20011, 18, 110774, {1, 1, 1, 15, 7, 33, 31, 23, 397, 537, 1415, 329, 6705, 15015, 18883, 62895, 21435, 233075}}, +{20012, 18, 110783, {1, 3, 3, 5, 11, 49, 73, 147, 183, 317, 11, 1997, 1045, 6015, 29159, 55195, 105711, 134727}}, +{20013, 18, 110785, {1, 3, 3, 9, 21, 41, 5, 213, 421, 539, 1269, 1929, 3701, 2165, 14997, 21933, 58167, 239719}}, +{20014, 18, 110809, {1, 3, 1, 5, 23, 63, 37, 27, 21, 547, 1499, 1621, 141, 5309, 32257, 47241, 123617, 243853}}, +{20015, 18, 110812, {1, 1, 1, 13, 31, 45, 47, 91, 165, 1007, 1295, 4035, 1461, 10423, 7747, 7329, 114599, 169375}}, +{20016, 18, 110840, {1, 1, 5, 3, 21, 9, 75, 61, 35, 745, 31, 4085, 3645, 16239, 14979, 15725, 108859, 56745}}, +{20017, 18, 110853, {1, 1, 5, 15, 11, 31, 13, 229, 417, 147, 1993, 4043, 7757, 13507, 15297, 56119, 2223, 142275}}, +{20018, 18, 110905, {1, 3, 5, 13, 3, 57, 45, 109, 135, 829, 159, 769, 865, 2583, 15755, 44343, 84561, 98621}}, +{20019, 18, 110933, {1, 1, 7, 11, 17, 11, 115, 45, 371, 411, 863, 2139, 3897, 13981, 16771, 4587, 25195, 66077}}, +{20020, 18, 110961, {1, 3, 7, 15, 17, 47, 51, 133, 133, 475, 1363, 3325, 4287, 4837, 22077, 60225, 3097, 246805}}, +{20021, 18, 110962, {1, 3, 5, 9, 29, 51, 127, 125, 353, 519, 129, 1409, 1497, 3167, 14163, 24921, 81343, 129835}}, +{20022, 18, 110974, {1, 3, 5, 5, 19, 39, 95, 109, 229, 1015, 367, 2373, 709, 6169, 4089, 13533, 22399, 118977}}, +{20023, 18, 110987, {1, 1, 5, 5, 17, 21, 91, 131, 309, 739, 1373, 3723, 6659, 1119, 27521, 55589, 34967, 70831}}, +{20024, 18, 110989, {1, 3, 1, 11, 5, 7, 85, 215, 425, 947, 589, 375, 5943, 13399, 18307, 27007, 18919, 200617}}, +{20025, 18, 111007, {1, 1, 3, 15, 11, 37, 111, 179, 259, 517, 1679, 225, 3493, 15025, 21751, 40687, 73001, 214477}}, +{20026, 18, 111011, {1, 1, 7, 15, 17, 41, 109, 129, 427, 847, 1965, 3269, 5871, 12331, 26899, 49791, 103471, 213789}}, +{20027, 18, 111043, {1, 3, 3, 3, 9, 41, 25, 115, 95, 737, 717, 1545, 841, 14923, 7409, 45365, 100139, 77787}}, +{20028, 18, 111070, {1, 1, 3, 15, 11, 3, 63, 23, 425, 433, 537, 1599, 2691, 11271, 1695, 40579, 53507, 73033}}, +{20029, 18, 111088, {1, 3, 7, 13, 9, 21, 85, 31, 337, 583, 1883, 3877, 7197, 7715, 21525, 53273, 11263, 41907}}, +{20030, 18, 111127, {1, 3, 7, 1, 7, 53, 61, 45, 299, 885, 1391, 3109, 6851, 6079, 18857, 44537, 95713, 146125}}, +{20031, 18, 111140, {1, 1, 1, 3, 21, 49, 95, 105, 419, 315, 365, 3035, 4169, 5723, 26921, 62809, 27019, 243965}}, +{20032, 18, 111149, {1, 1, 3, 5, 11, 39, 71, 89, 249, 11, 1395, 105, 6637, 4577, 22979, 32405, 93163, 58785}}, +{20033, 18, 111229, {1, 1, 1, 1, 27, 25, 125, 85, 495, 697, 1793, 301, 7665, 12671, 25359, 38803, 58723, 189837}}, +{20034, 18, 111230, {1, 3, 5, 11, 17, 11, 61, 211, 19, 901, 1701, 223, 2195, 15571, 3529, 34699, 94607, 196519}}, +{20035, 18, 111243, {1, 3, 7, 11, 15, 1, 111, 1, 381, 145, 293, 3639, 6931, 13195, 19985, 58491, 53067, 184411}}, +{20036, 18, 111267, {1, 3, 1, 15, 31, 39, 39, 101, 17, 431, 1151, 2465, 727, 12709, 5377, 5857, 49707, 76439}}, +{20037, 18, 111287, {1, 3, 3, 5, 7, 1, 3, 39, 357, 339, 415, 567, 7245, 13943, 7495, 54133, 119705, 160615}}, +{20038, 18, 111313, {1, 3, 5, 15, 9, 17, 13, 253, 337, 673, 1745, 2613, 4635, 14025, 11159, 50001, 40753, 172983}}, +{20039, 18, 111356, {1, 3, 7, 11, 3, 15, 19, 107, 393, 1015, 1441, 181, 5721, 9987, 15557, 37263, 90053, 205685}}, +{20040, 18, 111368, {1, 1, 5, 1, 9, 3, 69, 123, 245, 111, 283, 1581, 259, 275, 813, 12213, 19639, 7335}}, +{20041, 18, 111409, {1, 3, 7, 7, 1, 55, 101, 63, 259, 705, 653, 3821, 2081, 6447, 25471, 15523, 38827, 68055}}, +{20042, 18, 111419, {1, 1, 5, 7, 27, 9, 97, 149, 445, 341, 167, 3695, 375, 853, 8143, 36027, 62729, 197357}}, +{20043, 18, 111430, {1, 3, 7, 1, 1, 37, 97, 103, 493, 319, 1287, 3787, 4079, 13049, 14305, 6665, 4631, 96225}}, +{20044, 18, 111433, {1, 1, 5, 7, 1, 5, 127, 143, 251, 725, 1759, 2381, 181, 15741, 9395, 64441, 44347, 221697}}, +{20045, 18, 111442, {1, 3, 1, 3, 25, 47, 29, 167, 397, 827, 1255, 3271, 6307, 13915, 3131, 19123, 88619, 62847}}, +{20046, 18, 111467, {1, 3, 5, 1, 29, 11, 59, 203, 245, 553, 617, 1287, 205, 2291, 3613, 39933, 116981, 43595}}, +{20047, 18, 111491, {1, 1, 3, 9, 27, 33, 35, 77, 437, 1003, 119, 253, 6643, 113, 10587, 41073, 55371, 233307}}, +{20048, 18, 111503, {1, 3, 7, 1, 29, 63, 1, 231, 373, 995, 1063, 1385, 273, 14115, 6899, 62991, 112003, 80527}}, +{20049, 18, 111527, {1, 3, 3, 1, 31, 21, 55, 115, 393, 685, 245, 1587, 5617, 267, 19639, 15169, 14073, 173091}}, +{20050, 18, 111531, {1, 3, 1, 11, 29, 45, 53, 21, 433, 979, 1067, 2999, 6279, 4739, 30835, 61653, 112893, 75839}}, +{20051, 18, 111541, {1, 1, 5, 11, 23, 25, 15, 107, 325, 981, 1057, 1181, 4465, 16291, 1523, 64497, 129437, 45067}}, +{20052, 18, 111546, {1, 1, 1, 5, 1, 21, 79, 135, 419, 997, 1967, 747, 2097, 15397, 4415, 15807, 79583, 259561}}, +{20053, 18, 111548, {1, 3, 1, 7, 5, 49, 105, 109, 243, 371, 13, 2297, 2845, 12569, 13165, 13551, 75471, 168579}}, +{20054, 18, 111577, {1, 1, 1, 1, 9, 33, 7, 233, 43, 773, 1121, 3763, 4047, 15039, 8165, 25407, 82561, 215045}}, +{20055, 18, 111625, {1, 3, 7, 1, 17, 41, 105, 129, 333, 687, 1357, 1197, 1271, 3835, 15823, 36777, 94311, 192321}}, +{20056, 18, 111636, {1, 1, 5, 15, 13, 31, 93, 249, 81, 167, 1681, 1587, 179, 5755, 27741, 29437, 100407, 63287}}, +{20057, 18, 111650, {1, 3, 3, 13, 11, 39, 85, 23, 37, 183, 547, 1255, 1167, 15961, 23281, 59989, 99393, 34983}}, +{20058, 18, 111655, {1, 3, 7, 5, 13, 33, 17, 243, 321, 845, 447, 1997, 4639, 11175, 24651, 18281, 82677, 244543}}, +{20059, 18, 111662, {1, 3, 5, 13, 3, 63, 75, 35, 493, 207, 1707, 1401, 3687, 11353, 5461, 23433, 71259, 93483}}, +{20060, 18, 111673, {1, 1, 3, 1, 19, 61, 81, 133, 115, 957, 669, 647, 347, 8739, 18451, 39641, 118677, 136601}}, +{20061, 18, 111699, {1, 1, 7, 13, 3, 13, 119, 187, 111, 181, 1865, 1613, 201, 3633, 17805, 46553, 8899, 100407}}, +{20062, 18, 111727, {1, 3, 3, 9, 19, 33, 35, 215, 235, 893, 877, 3099, 7597, 13521, 22473, 65435, 3205, 44897}}, +{20063, 18, 111729, {1, 3, 3, 11, 27, 3, 101, 201, 215, 373, 859, 1435, 2637, 6795, 21157, 3333, 27797, 199427}}, +{20064, 18, 111741, {1, 1, 7, 13, 31, 33, 85, 205, 273, 565, 2033, 3451, 7581, 16223, 1383, 16297, 1263, 49065}}, +{20065, 18, 111757, {1, 1, 1, 13, 11, 29, 65, 71, 395, 179, 1193, 3859, 3075, 10133, 6463, 34617, 20173, 203471}}, +{20066, 18, 111781, {1, 1, 7, 3, 7, 29, 11, 115, 465, 695, 1759, 3137, 6337, 977, 43, 62501, 13297, 59319}}, +{20067, 18, 111791, {1, 3, 5, 9, 31, 59, 11, 107, 109, 797, 177, 2891, 2535, 4305, 19255, 9591, 84417, 87381}}, +{20068, 18, 111826, {1, 3, 3, 3, 1, 9, 45, 219, 73, 573, 1477, 3699, 8145, 835, 7123, 37167, 53411, 45397}}, +{20069, 18, 111838, {1, 3, 5, 15, 15, 41, 37, 63, 233, 971, 1497, 1223, 3909, 11721, 9217, 41055, 9779, 199339}}, +{20070, 18, 111854, {1, 3, 3, 7, 17, 61, 91, 237, 313, 841, 7, 3283, 4049, 10403, 22157, 4889, 31903, 188043}}, +{20071, 18, 111861, {1, 3, 7, 1, 25, 3, 59, 87, 191, 725, 1615, 4057, 3037, 14597, 17371, 42221, 73919, 58009}}, +{20072, 18, 111866, {1, 3, 5, 11, 27, 7, 45, 231, 315, 727, 843, 2191, 7909, 53, 23309, 55189, 96193, 174017}}, +{20073, 18, 111868, {1, 3, 5, 11, 27, 51, 127, 187, 209, 883, 429, 137, 4585, 15195, 16527, 32571, 30905, 8137}}, +{20074, 18, 111897, {1, 1, 1, 11, 15, 55, 13, 161, 183, 671, 659, 3669, 4461, 13691, 17119, 26877, 52041, 110103}}, +{20075, 18, 111903, {1, 3, 5, 9, 5, 45, 29, 19, 415, 931, 683, 2987, 3839, 4529, 3091, 54457, 115537, 102671}}, +{20076, 18, 111904, {1, 1, 7, 13, 23, 31, 61, 17, 327, 951, 1333, 713, 4309, 1955, 22797, 27007, 106673, 47177}}, +{20077, 18, 111959, {1, 3, 3, 9, 31, 49, 19, 115, 413, 257, 1799, 3641, 2075, 15613, 14293, 16123, 45131, 209389}}, +{20078, 18, 111975, {1, 1, 7, 15, 1, 15, 27, 63, 463, 825, 1081, 991, 2641, 5999, 8551, 41119, 80251, 189263}}, +{20079, 18, 112018, {1, 1, 5, 9, 7, 55, 125, 97, 245, 997, 457, 1087, 1297, 3433, 14887, 24117, 30689, 184809}}, +{20080, 18, 112023, {1, 3, 1, 9, 23, 59, 81, 233, 341, 943, 1335, 2819, 2625, 4957, 14925, 7917, 107383, 204493}}, +{20081, 18, 112033, {1, 3, 5, 5, 5, 25, 79, 29, 191, 541, 1295, 269, 613, 5201, 28639, 52839, 52865, 75181}}, +{20082, 18, 112036, {1, 3, 3, 7, 19, 45, 35, 201, 391, 317, 1323, 2733, 3407, 10273, 32689, 52153, 108751, 242493}}, +{20083, 18, 112043, {1, 3, 1, 7, 15, 27, 45, 21, 383, 483, 1857, 3443, 2263, 11471, 3697, 63929, 116399, 229733}}, +{20084, 18, 112095, {1, 1, 3, 9, 13, 27, 19, 37, 181, 811, 1833, 177, 7689, 10073, 20229, 31397, 65415, 68461}}, +{20085, 18, 112113, {1, 1, 1, 15, 19, 53, 65, 209, 433, 783, 1647, 4075, 3155, 733, 25603, 39033, 43109, 151257}}, +{20086, 18, 112136, {1, 3, 3, 5, 9, 37, 61, 75, 497, 825, 1785, 3709, 1731, 889, 19325, 57453, 39095, 190855}}, +{20087, 18, 112153, {1, 3, 3, 13, 3, 53, 21, 39, 483, 833, 1191, 2829, 1323, 1877, 17257, 36077, 47997, 25349}}, +{20088, 18, 112165, {1, 1, 7, 9, 29, 25, 7, 91, 87, 723, 777, 1865, 7763, 10995, 15953, 36111, 21313, 214417}}, +{20089, 18, 112166, {1, 3, 5, 3, 17, 15, 85, 133, 245, 317, 879, 3237, 7049, 6501, 13359, 34063, 124703, 118289}}, +{20090, 18, 112177, {1, 1, 1, 7, 11, 25, 111, 143, 369, 593, 237, 2787, 1015, 13059, 23275, 38453, 90809, 25803}}, +{20091, 18, 112189, {1, 1, 7, 5, 13, 21, 39, 235, 381, 381, 949, 773, 1123, 9911, 18115, 47657, 47849, 197633}}, +{20092, 18, 112226, {1, 1, 3, 13, 15, 57, 47, 203, 483, 341, 137, 1283, 2847, 5051, 22593, 60915, 45123, 258733}}, +{20093, 18, 112237, {1, 1, 3, 5, 29, 7, 23, 127, 493, 543, 747, 3547, 4433, 5847, 28999, 18079, 81205, 231557}}, +{20094, 18, 112240, {1, 1, 3, 15, 9, 63, 17, 197, 75, 387, 1679, 2631, 1033, 2757, 18365, 11957, 98915, 24223}}, +{20095, 18, 112255, {1, 1, 3, 9, 27, 55, 67, 97, 345, 995, 1151, 1747, 4889, 13847, 13237, 9035, 13461, 10377}}, +{20096, 18, 112265, {1, 1, 5, 9, 27, 13, 7, 77, 399, 191, 137, 2801, 6379, 15969, 1727, 27503, 97385, 147625}}, +{20097, 18, 112280, {1, 3, 1, 7, 5, 9, 103, 163, 489, 615, 1359, 2635, 3115, 13795, 18853, 65225, 26545, 212065}}, +{20098, 18, 112292, {1, 3, 7, 3, 13, 25, 125, 133, 359, 423, 751, 4045, 1209, 7521, 6653, 39171, 125083, 229399}}, +{20099, 18, 112307, {1, 3, 1, 9, 15, 21, 121, 223, 283, 313, 1807, 3829, 5279, 10609, 20113, 7851, 23731, 245327}}, +{20100, 18, 112316, {1, 1, 1, 11, 15, 13, 63, 253, 311, 369, 1549, 2803, 2029, 14967, 14217, 1387, 104669, 63375}}, +{20101, 18, 112342, {1, 1, 3, 3, 31, 49, 59, 189, 249, 779, 275, 3761, 3465, 2205, 11543, 16973, 126249, 104769}}, +{20102, 18, 112345, {1, 3, 1, 5, 11, 39, 59, 33, 121, 151, 467, 1011, 1379, 13955, 20117, 52537, 51049, 50663}}, +{20103, 18, 112351, {1, 1, 1, 7, 5, 41, 121, 29, 357, 33, 849, 2441, 2127, 1337, 21147, 63869, 80215, 31211}}, +{20104, 18, 112361, {1, 3, 3, 3, 25, 41, 17, 101, 173, 915, 463, 2391, 1671, 8789, 13357, 42127, 17599, 61087}}, +{20105, 18, 112364, {1, 1, 3, 9, 29, 23, 47, 211, 435, 223, 1421, 2463, 4543, 8569, 30209, 46621, 14367, 13263}}, +{20106, 18, 112372, {1, 3, 7, 7, 5, 9, 75, 209, 299, 81, 1705, 2335, 6703, 6309, 5859, 57889, 43219, 7667}}, +{20107, 18, 112382, {1, 3, 3, 3, 19, 31, 107, 87, 413, 111, 215, 2711, 7053, 5223, 25241, 26675, 16067, 122719}}, +{20108, 18, 112389, {1, 1, 1, 15, 21, 3, 15, 13, 281, 63, 725, 2025, 4813, 14177, 18577, 875, 118623, 192005}}, +{20109, 18, 112408, {1, 3, 5, 9, 17, 21, 85, 173, 59, 153, 763, 3899, 1985, 2071, 10439, 44911, 60915, 122419}}, +{20110, 18, 112417, {1, 3, 7, 13, 11, 63, 59, 95, 53, 927, 555, 1897, 5195, 13469, 16973, 3463, 125173, 256021}}, +{20111, 18, 112423, {1, 1, 3, 7, 9, 63, 33, 193, 61, 445, 1247, 1379, 4701, 5311, 30709, 16795, 69871, 161113}}, +{20112, 18, 112476, {1, 3, 1, 3, 21, 25, 125, 111, 109, 75, 455, 861, 6483, 4501, 19095, 45601, 78415, 30995}}, +{20113, 18, 112480, {1, 1, 3, 5, 1, 25, 15, 25, 223, 961, 537, 1453, 4951, 5085, 19801, 9863, 108819, 7319}}, +{20114, 18, 112483, {1, 3, 1, 5, 29, 21, 79, 113, 177, 691, 219, 3159, 3493, 25, 30655, 46257, 23707, 243377}}, +{20115, 18, 112513, {1, 1, 3, 3, 27, 21, 11, 95, 43, 161, 2029, 4091, 6695, 7179, 9955, 45195, 32017, 128605}}, +{20116, 18, 112538, {1, 1, 7, 5, 19, 37, 47, 83, 169, 143, 773, 2127, 347, 1887, 2861, 8155, 21437, 175641}}, +{20117, 18, 112543, {1, 3, 1, 1, 27, 63, 119, 57, 77, 931, 629, 1807, 4469, 2315, 3767, 19207, 114581, 125135}}, +{20118, 18, 112574, {1, 1, 5, 11, 13, 51, 51, 239, 333, 369, 1035, 3017, 103, 1809, 14579, 34425, 123915, 258397}}, +{20119, 18, 112599, {1, 1, 1, 3, 3, 19, 63, 237, 141, 929, 943, 2597, 3983, 1043, 24269, 12325, 39013, 216689}}, +{20120, 18, 112605, {1, 1, 3, 7, 9, 61, 73, 31, 287, 303, 1415, 3453, 2667, 8625, 14347, 51953, 9181, 251937}}, +{20121, 18, 112667, {1, 1, 7, 1, 15, 41, 1, 197, 87, 311, 1147, 3799, 2585, 14027, 491, 54203, 124861, 227637}}, +{20122, 18, 112688, {1, 3, 7, 3, 15, 35, 97, 89, 65, 493, 1897, 3345, 3807, 5911, 12461, 21393, 116975, 212801}}, +{20123, 18, 112735, {1, 1, 7, 11, 29, 47, 61, 171, 399, 929, 93, 2815, 4933, 9209, 15053, 21911, 117217, 52539}}, +{20124, 18, 112746, {1, 3, 1, 1, 19, 25, 11, 41, 73, 317, 215, 923, 5153, 8025, 18703, 11513, 107981, 2027}}, +{20125, 18, 112810, {1, 1, 5, 7, 27, 33, 47, 99, 171, 259, 2017, 2055, 909, 4185, 26689, 23155, 109857, 213957}}, +{20126, 18, 112817, {1, 3, 7, 3, 31, 17, 39, 203, 255, 345, 1461, 1561, 4349, 6451, 14763, 32993, 74475, 140557}}, +{20127, 18, 112827, {1, 1, 5, 3, 21, 57, 75, 201, 371, 529, 1471, 243, 3751, 581, 18405, 40933, 106311, 745}}, +{20128, 18, 112835, {1, 1, 3, 13, 7, 53, 125, 15, 55, 267, 1865, 3297, 4331, 2913, 21675, 58911, 28419, 105585}}, +{20129, 18, 112892, {1, 3, 5, 13, 7, 13, 37, 37, 207, 127, 785, 1129, 8123, 7655, 16003, 18907, 48883, 2001}}, +{20130, 18, 112898, {1, 1, 5, 3, 11, 3, 127, 149, 503, 1019, 887, 3429, 7775, 7113, 19571, 34461, 38889, 66981}}, +{20131, 18, 112915, {1, 3, 7, 7, 1, 55, 87, 217, 465, 485, 411, 2955, 4899, 1741, 7051, 42885, 1837, 68175}}, +{20132, 18, 112918, {1, 1, 7, 1, 7, 39, 25, 1, 185, 523, 273, 2409, 1867, 3101, 29823, 4509, 81621, 11815}}, +{20133, 18, 112937, {1, 1, 1, 11, 13, 11, 89, 237, 355, 347, 91, 1791, 5745, 4181, 29207, 39495, 5275, 199395}}, +{20134, 18, 112940, {1, 1, 7, 3, 17, 37, 109, 169, 191, 295, 1001, 2631, 1981, 11821, 8315, 40675, 1293, 220247}}, +{20135, 18, 112958, {1, 3, 1, 7, 31, 25, 5, 55, 1, 795, 1663, 3177, 6821, 2073, 25789, 23691, 25015, 75203}}, +{20136, 18, 113013, {1, 3, 5, 9, 19, 9, 97, 129, 351, 735, 1897, 3555, 1731, 5413, 32051, 12869, 111973, 100157}}, +{20137, 18, 113014, {1, 3, 3, 15, 27, 1, 3, 167, 7, 851, 805, 713, 6389, 1455, 32371, 7617, 107157, 131299}}, +{20138, 18, 113027, {1, 3, 1, 13, 31, 29, 91, 123, 387, 939, 223, 3583, 2889, 5307, 16561, 6055, 4437, 123229}}, +{20139, 18, 113048, {1, 3, 5, 11, 27, 17, 5, 145, 369, 449, 1677, 1039, 3553, 3057, 11667, 51879, 20519, 41573}}, +{20140, 18, 113051, {1, 3, 1, 9, 9, 1, 91, 33, 379, 35, 691, 375, 5937, 15019, 16177, 53457, 52015, 232257}}, +{20141, 18, 113053, {1, 1, 3, 11, 23, 17, 75, 217, 377, 571, 1725, 2719, 3911, 12277, 27799, 55573, 21981, 112529}}, +{20142, 18, 113102, {1, 3, 1, 11, 9, 37, 81, 95, 501, 615, 327, 3751, 7333, 15407, 7785, 29113, 116335, 221853}}, +{20143, 18, 113104, {1, 1, 1, 3, 17, 1, 125, 157, 461, 845, 93, 107, 4429, 2271, 14445, 32919, 81175, 244557}}, +{20144, 18, 113114, {1, 3, 3, 1, 27, 23, 33, 15, 29, 361, 409, 981, 7819, 10259, 21971, 23317, 66641, 54591}}, +{20145, 18, 113130, {1, 3, 7, 13, 31, 63, 11, 167, 511, 81, 1165, 3973, 4275, 3315, 10227, 34973, 58505, 2333}}, +{20146, 18, 113159, {1, 3, 1, 9, 3, 49, 111, 101, 41, 775, 449, 1349, 4411, 8691, 535, 60137, 3269, 204895}}, +{20147, 18, 113180, {1, 3, 7, 15, 7, 43, 39, 147, 309, 185, 733, 1473, 5467, 6183, 17971, 56805, 111931, 163515}}, +{20148, 18, 113189, {1, 3, 1, 3, 21, 31, 17, 129, 317, 587, 801, 2517, 2569, 765, 20869, 16461, 34425, 101123}}, +{20149, 18, 113211, {1, 3, 1, 7, 13, 63, 117, 31, 25, 741, 365, 687, 6195, 2093, 14679, 16861, 123381, 25263}}, +{20150, 18, 113245, {1, 1, 1, 3, 13, 59, 65, 131, 41, 39, 1659, 1491, 225, 10277, 12445, 4161, 92119, 146705}}, +{20151, 18, 113261, {1, 3, 5, 1, 31, 11, 21, 203, 345, 473, 1643, 1377, 555, 11675, 15383, 30855, 41249, 231059}}, +{20152, 18, 113273, {1, 1, 7, 15, 3, 23, 33, 133, 433, 407, 1217, 3345, 7455, 11489, 21463, 41621, 95755, 86971}}, +{20153, 18, 113292, {1, 1, 1, 3, 13, 47, 45, 181, 489, 89, 427, 1915, 3993, 10133, 20437, 31811, 48421, 150009}}, +{20154, 18, 113314, {1, 3, 1, 9, 9, 25, 89, 195, 503, 755, 59, 1869, 6645, 13841, 22973, 17761, 46759, 68717}}, +{20155, 18, 113319, {1, 3, 1, 1, 19, 21, 119, 123, 481, 289, 1009, 3769, 3909, 1123, 17875, 17383, 71533, 45455}}, +{20156, 18, 113323, {1, 1, 1, 3, 31, 33, 127, 43, 467, 749, 377, 3025, 511, 13335, 23987, 63627, 50211, 197253}}, +{20157, 18, 113326, {1, 1, 5, 13, 29, 7, 101, 43, 299, 769, 1637, 3731, 1945, 9933, 22263, 1523, 127557, 116867}}, +{20158, 18, 113337, {1, 1, 3, 11, 1, 59, 25, 45, 275, 535, 1349, 3625, 8125, 727, 1215, 15487, 86229, 124817}}, +{20159, 18, 113338, {1, 3, 3, 13, 3, 11, 25, 237, 213, 331, 395, 1775, 1225, 6859, 16577, 39105, 118081, 74727}}, +{20160, 18, 113355, {1, 1, 1, 9, 5, 27, 117, 75, 479, 757, 1299, 2273, 3221, 5297, 249, 60327, 48739, 107023}}, +{20161, 18, 113365, {1, 1, 5, 9, 27, 9, 123, 49, 63, 763, 121, 3955, 2069, 5999, 25973, 64661, 6321, 1179}}, +{20162, 18, 113376, {1, 3, 7, 11, 9, 51, 65, 93, 51, 51, 829, 3239, 7431, 3489, 7691, 38777, 28151, 96635}}, +{20163, 18, 113408, {1, 3, 3, 13, 15, 51, 13, 203, 49, 73, 363, 2173, 7771, 11527, 27683, 39333, 2083, 178623}}, +{20164, 18, 113462, {1, 1, 5, 5, 15, 27, 27, 127, 503, 955, 427, 3061, 6213, 917, 889, 12601, 72445, 105383}}, +{20165, 18, 113476, {1, 3, 5, 3, 27, 43, 105, 187, 309, 747, 1843, 723, 539, 8829, 19171, 46009, 26129, 173145}}, +{20166, 18, 113503, {1, 3, 7, 7, 9, 51, 121, 139, 107, 453, 1103, 2957, 633, 1435, 27275, 53231, 51393, 16847}}, +{20167, 18, 113550, {1, 3, 7, 5, 25, 31, 71, 191, 169, 69, 1477, 1413, 7659, 11737, 12365, 25067, 21787, 16225}}, +{20168, 18, 113578, {1, 1, 7, 1, 9, 33, 37, 123, 391, 341, 829, 1543, 7323, 14695, 16431, 20009, 95821, 182791}}, +{20169, 18, 113580, {1, 3, 1, 5, 9, 59, 109, 39, 301, 977, 1963, 177, 8107, 16193, 5691, 14157, 71605, 250839}}, +{20170, 18, 113634, {1, 3, 5, 9, 29, 33, 33, 153, 7, 217, 201, 563, 6577, 9605, 16671, 63949, 97937, 234309}}, +{20171, 18, 113653, {1, 3, 7, 3, 25, 11, 81, 89, 275, 801, 477, 1921, 2279, 1651, 13333, 9127, 99693, 83141}}, +{20172, 18, 113677, {1, 3, 7, 5, 23, 51, 23, 51, 447, 689, 387, 1845, 6033, 2037, 20139, 33165, 56111, 243353}}, +{20173, 18, 113713, {1, 3, 5, 7, 5, 7, 105, 121, 439, 471, 721, 85, 1627, 3735, 29611, 15537, 36131, 30225}}, +{20174, 18, 113751, {1, 1, 5, 5, 7, 29, 31, 209, 183, 217, 467, 1287, 6145, 14737, 16249, 8857, 101405, 103355}}, +{20175, 18, 113771, {1, 3, 3, 5, 19, 1, 43, 15, 239, 63, 617, 2189, 3841, 1223, 12217, 4121, 88047, 14069}}, +{20176, 18, 113781, {1, 3, 7, 1, 9, 49, 11, 65, 297, 943, 1739, 3797, 6169, 2057, 5031, 2149, 21439, 141039}}, +{20177, 18, 113797, {1, 1, 1, 7, 15, 59, 35, 203, 347, 529, 1741, 1003, 6143, 4979, 15495, 48447, 2139, 187025}}, +{20178, 18, 113846, {1, 1, 7, 13, 15, 17, 77, 225, 461, 691, 1067, 1133, 6555, 511, 25845, 39835, 11755, 142743}}, +{20179, 18, 113849, {1, 3, 3, 11, 27, 25, 49, 51, 335, 1, 381, 2703, 7023, 14739, 19335, 39625, 82255, 76277}}, +{20180, 18, 113855, {1, 3, 3, 7, 19, 3, 35, 95, 203, 991, 515, 2245, 6085, 4129, 9581, 38309, 114203, 136021}}, +{20181, 18, 113878, {1, 1, 7, 7, 21, 61, 31, 57, 459, 119, 523, 1293, 3647, 735, 28849, 15581, 123943, 210069}}, +{20182, 18, 113884, {1, 1, 7, 3, 9, 55, 103, 23, 401, 109, 23, 4083, 6179, 12817, 2787, 43337, 53647, 241507}}, +{20183, 18, 113926, {1, 1, 5, 7, 9, 51, 37, 133, 97, 933, 1509, 2229, 1769, 12901, 15439, 25687, 128823, 72451}}, +{20184, 18, 113938, {1, 3, 1, 13, 17, 19, 7, 109, 299, 799, 621, 3393, 3645, 283, 29889, 63215, 97805, 45795}}, +{20185, 18, 113956, {1, 3, 1, 15, 21, 7, 65, 237, 221, 433, 1611, 2591, 3639, 3231, 6025, 53465, 88091, 17657}}, +{20186, 18, 113980, {1, 1, 7, 9, 27, 13, 11, 185, 381, 43, 961, 2743, 2691, 10531, 3713, 61757, 124011, 209323}}, +{20187, 18, 113986, {1, 3, 5, 1, 13, 7, 109, 65, 359, 577, 2001, 3085, 3519, 8577, 19299, 40145, 37159, 82421}}, +{20188, 18, 113991, {1, 1, 3, 11, 7, 5, 21, 215, 391, 317, 879, 1835, 611, 7189, 3887, 45383, 41025, 175701}}, +{20189, 18, 114005, {1, 1, 1, 1, 5, 17, 69, 115, 481, 477, 2017, 583, 8033, 11349, 16625, 213, 88033, 31707}}, +{20190, 18, 114022, {1, 1, 7, 15, 19, 55, 121, 35, 1, 71, 1011, 3247, 4133, 1681, 29943, 30149, 96797, 177707}}, +{20191, 18, 114036, {1, 3, 5, 13, 11, 45, 83, 153, 455, 223, 787, 2025, 5271, 229, 17549, 5775, 75311, 134523}}, +{20192, 18, 114046, {1, 3, 5, 7, 21, 43, 3, 253, 395, 651, 1111, 1685, 539, 6555, 25761, 39477, 15823, 261825}}, +{20193, 18, 114050, {1, 3, 7, 15, 27, 35, 43, 191, 269, 247, 883, 887, 1505, 7433, 6239, 5421, 49583, 17765}}, +{20194, 18, 114061, {1, 1, 5, 15, 7, 19, 113, 177, 63, 119, 517, 3987, 971, 12071, 13107, 28913, 85675, 204921}}, +{20195, 18, 114067, {1, 3, 7, 15, 31, 47, 21, 129, 31, 505, 661, 855, 6135, 13063, 27971, 63801, 27469, 75373}}, +{20196, 18, 114117, {1, 1, 7, 5, 13, 23, 111, 85, 279, 969, 483, 831, 483, 9065, 10997, 59031, 5083, 150939}}, +{20197, 18, 114142, {1, 3, 5, 7, 17, 55, 11, 223, 189, 209, 139, 577, 5443, 913, 19085, 53113, 8427, 11251}}, +{20198, 18, 114158, {1, 1, 1, 7, 23, 61, 95, 213, 443, 803, 1545, 3625, 2195, 2649, 10913, 14339, 23001, 16735}}, +{20199, 18, 114165, {1, 3, 3, 3, 13, 45, 15, 225, 419, 445, 527, 635, 2279, 5097, 25267, 199, 66187, 156717}}, +{20200, 18, 114200, {1, 1, 1, 7, 23, 17, 113, 245, 99, 159, 919, 2961, 1731, 6241, 12749, 8925, 44153, 243249}}, +{20201, 18, 114219, {1, 3, 1, 3, 29, 57, 43, 245, 389, 233, 135, 45, 3771, 14061, 10173, 51939, 128985, 81605}}, +{20202, 18, 114254, {1, 1, 1, 15, 1, 19, 25, 111, 91, 193, 1185, 3679, 7155, 7077, 13743, 35631, 128975, 196979}}, +{20203, 18, 114265, {1, 3, 3, 13, 31, 57, 25, 53, 149, 331, 643, 915, 1607, 14429, 29803, 23459, 72915, 39253}}, +{20204, 18, 114272, {1, 3, 3, 9, 23, 45, 9, 29, 383, 277, 981, 1647, 5217, 4449, 26759, 63849, 98081, 37565}}, +{20205, 18, 114312, {1, 1, 1, 15, 3, 23, 9, 121, 231, 27, 1961, 2389, 1689, 7041, 8069, 37973, 74601, 15553}}, +{20206, 18, 114318, {1, 1, 5, 15, 15, 29, 11, 177, 355, 47, 1821, 393, 3383, 10439, 6357, 41119, 60323, 206253}}, +{20207, 18, 114348, {1, 1, 1, 1, 21, 29, 87, 149, 157, 979, 1867, 729, 1949, 4409, 27495, 6841, 89033, 214957}}, +{20208, 18, 114377, {1, 1, 3, 3, 9, 7, 115, 129, 141, 157, 881, 109, 5537, 303, 32549, 1953, 9903, 82401}}, +{20209, 18, 114383, {1, 1, 5, 15, 9, 19, 93, 53, 319, 913, 1341, 705, 4639, 16189, 11375, 39155, 81393, 115843}}, +{20210, 18, 114386, {1, 1, 5, 7, 31, 21, 3, 47, 437, 799, 359, 3291, 3917, 12983, 19283, 23769, 34033, 226041}}, +{20211, 18, 114431, {1, 3, 7, 7, 27, 13, 65, 31, 181, 511, 1373, 3871, 1537, 6015, 12103, 42187, 121043, 95715}}, +{20212, 18, 114448, {1, 1, 5, 11, 1, 55, 91, 11, 105, 137, 1787, 81, 5163, 5793, 17403, 59433, 113439, 65751}}, +{20213, 18, 114479, {1, 1, 3, 13, 21, 57, 87, 157, 379, 5, 285, 3217, 4557, 3359, 28953, 63397, 110537, 230571}}, +{20214, 18, 114487, {1, 3, 7, 7, 7, 27, 25, 109, 125, 337, 719, 561, 5903, 12913, 6987, 17157, 50655, 195109}}, +{20215, 18, 114513, {1, 3, 3, 15, 3, 11, 97, 93, 441, 19, 1435, 515, 6129, 5177, 28075, 53495, 107817, 78399}}, +{20216, 18, 114542, {1, 3, 1, 9, 13, 7, 89, 171, 165, 479, 223, 4001, 691, 4033, 13577, 33363, 63447, 46609}}, +{20217, 18, 114572, {1, 3, 7, 1, 15, 47, 103, 45, 209, 639, 1465, 2795, 6025, 7981, 29491, 47743, 12861, 222445}}, +{20218, 18, 114584, {1, 3, 3, 3, 1, 25, 121, 91, 253, 969, 1259, 1409, 1329, 15995, 17733, 24081, 101747, 120619}}, +{20219, 18, 114600, {1, 3, 7, 11, 11, 5, 7, 241, 469, 411, 1733, 1385, 7005, 10977, 23369, 10675, 90341, 93077}}, +{20220, 18, 114605, {1, 3, 3, 13, 17, 35, 107, 189, 437, 801, 1761, 3133, 3847, 14079, 22465, 45957, 38449, 54273}}, +{20221, 18, 114623, {1, 1, 7, 9, 9, 47, 55, 107, 491, 281, 777, 2187, 6179, 6607, 2151, 9093, 42873, 104677}}, +{20222, 18, 114628, {1, 1, 5, 3, 25, 3, 37, 55, 339, 619, 1227, 3859, 5593, 9639, 31199, 48155, 80779, 6497}}, +{20223, 18, 114640, {1, 1, 7, 1, 21, 49, 105, 45, 119, 635, 163, 3821, 3689, 11395, 19265, 14289, 89259, 167433}}, +{20224, 18, 114650, {1, 3, 3, 15, 29, 23, 11, 255, 425, 443, 1659, 3965, 4791, 10223, 11113, 48751, 7987, 166605}}, +{20225, 18, 114668, {1, 1, 7, 3, 7, 1, 113, 153, 233, 803, 539, 297, 4847, 11203, 29393, 54319, 94373, 173471}}, +{20226, 18, 114671, {1, 3, 3, 5, 27, 57, 23, 147, 423, 617, 103, 3369, 4825, 13613, 23635, 61977, 5331, 115243}}, +{20227, 18, 114674, {1, 3, 3, 9, 11, 47, 41, 27, 345, 657, 1873, 365, 1685, 11181, 31977, 60489, 98741, 215357}}, +{20228, 18, 114700, {1, 3, 1, 11, 19, 33, 39, 223, 151, 921, 309, 3413, 6735, 11971, 25583, 6927, 54821, 125203}}, +{20229, 18, 114731, {1, 1, 5, 1, 27, 31, 61, 247, 207, 895, 1453, 3613, 7097, 6537, 29407, 9903, 39937, 98285}}, +{20230, 18, 114748, {1, 3, 1, 5, 7, 11, 119, 7, 323, 27, 1069, 2033, 7387, 3381, 19007, 49039, 39453, 115411}}, +{20231, 18, 114759, {1, 1, 7, 3, 9, 15, 51, 139, 353, 857, 1829, 3955, 7669, 3961, 22805, 39879, 26677, 66865}}, +{20232, 18, 114766, {1, 3, 5, 7, 1, 11, 59, 95, 181, 645, 829, 3119, 3607, 5973, 12381, 41577, 79443, 226945}}, +{20233, 18, 114768, {1, 3, 3, 5, 3, 13, 91, 119, 103, 889, 703, 3005, 541, 7529, 12613, 14267, 70445, 217543}}, +{20234, 18, 114784, {1, 1, 5, 7, 17, 41, 5, 225, 85, 759, 1071, 2055, 1655, 14811, 25635, 50803, 58545, 105687}}, +{20235, 18, 114808, {1, 3, 5, 13, 3, 7, 77, 209, 139, 717, 985, 1085, 831, 11011, 27313, 46423, 29435, 207359}}, +{20236, 18, 114813, {1, 3, 1, 7, 27, 45, 39, 75, 311, 937, 1593, 1357, 4815, 1997, 1045, 48681, 49301, 155607}}, +{20237, 18, 114829, {1, 3, 5, 11, 21, 9, 111, 39, 447, 241, 1613, 1799, 4817, 1861, 1263, 63641, 92081, 252051}}, +{20238, 18, 114830, {1, 1, 1, 13, 31, 13, 39, 29, 349, 25, 1227, 2457, 3831, 7965, 16903, 25825, 62381, 101765}}, +{20239, 18, 114842, {1, 1, 3, 7, 15, 17, 5, 29, 83, 607, 931, 261, 1087, 16247, 10129, 7813, 5445, 167723}}, +{20240, 18, 114875, {1, 3, 5, 9, 15, 31, 69, 191, 139, 467, 1681, 1951, 7813, 4295, 18191, 11411, 15601, 13025}}, +{20241, 18, 114898, {1, 1, 1, 11, 29, 53, 97, 205, 281, 917, 1009, 913, 1003, 16085, 30339, 55753, 53099, 30697}}, +{20242, 18, 114903, {1, 1, 3, 15, 25, 35, 7, 227, 63, 251, 845, 843, 7117, 6021, 26917, 43611, 108643, 215471}}, +{20243, 18, 114913, {1, 1, 3, 11, 19, 29, 75, 5, 131, 37, 1185, 2387, 8161, 1621, 19887, 20525, 33067, 30869}}, +{20244, 18, 114928, {1, 1, 3, 3, 7, 37, 75, 159, 313, 17, 479, 2477, 7779, 309, 26095, 35693, 92561, 143151}}, +{20245, 18, 114937, {1, 1, 5, 9, 5, 29, 65, 223, 331, 1013, 37, 1813, 1379, 9277, 14681, 61687, 24763, 124669}}, +{20246, 18, 114958, {1, 3, 1, 1, 17, 47, 7, 219, 11, 13, 1517, 2583, 7483, 5399, 6883, 51387, 17901, 108659}}, +{20247, 18, 114963, {1, 3, 7, 11, 9, 63, 81, 91, 411, 535, 255, 3683, 5285, 1787, 27205, 43651, 15647, 230651}}, +{20248, 18, 115000, {1, 3, 1, 11, 7, 47, 35, 255, 341, 379, 421, 753, 7821, 13271, 13021, 463, 48457, 132521}}, +{20249, 18, 115018, {1, 1, 5, 7, 21, 23, 53, 229, 393, 509, 1641, 2245, 6941, 10447, 3231, 5451, 18883, 47401}}, +{20250, 18, 115023, {1, 3, 1, 7, 13, 61, 71, 49, 147, 625, 299, 3843, 4851, 3483, 27005, 23871, 18855, 124893}}, +{20251, 18, 115028, {1, 3, 1, 7, 31, 13, 127, 177, 259, 179, 531, 1775, 5481, 13157, 23821, 31773, 93941, 237697}}, +{20252, 18, 115042, {1, 1, 7, 1, 23, 21, 111, 219, 401, 455, 1603, 2077, 1537, 2063, 17821, 52087, 20707, 29535}}, +{20253, 18, 115084, {1, 1, 3, 11, 17, 17, 13, 79, 49, 353, 1691, 361, 2805, 7121, 27013, 50631, 108235, 70513}}, +{20254, 18, 115096, {1, 1, 5, 3, 15, 25, 103, 73, 377, 253, 1303, 501, 555, 15789, 16647, 9019, 60581, 157337}}, +{20255, 18, 115105, {1, 3, 5, 9, 23, 45, 3, 251, 25, 559, 429, 1091, 5657, 15387, 5113, 64533, 131049, 127587}}, +{20256, 18, 115117, {1, 1, 3, 15, 1, 53, 71, 141, 413, 849, 737, 3045, 7119, 8049, 18295, 31447, 70735, 117457}}, +{20257, 18, 115149, {1, 1, 1, 11, 17, 11, 69, 155, 211, 249, 1869, 1575, 6859, 7045, 7015, 20135, 84157, 232621}}, +{20258, 18, 115155, {1, 3, 7, 5, 19, 55, 15, 163, 457, 371, 1665, 1935, 601, 3629, 21975, 1191, 45133, 111649}}, +{20259, 18, 115198, {1, 3, 7, 11, 23, 33, 5, 253, 355, 379, 933, 1781, 3989, 6191, 19081, 7651, 74671, 258799}}, +{20260, 18, 115221, {1, 1, 3, 3, 23, 3, 63, 123, 273, 861, 369, 2409, 1505, 9059, 10727, 189, 122911, 44037}}, +{20261, 18, 115222, {1, 1, 7, 13, 13, 23, 19, 87, 191, 397, 2027, 1689, 1143, 10919, 27073, 15013, 118429, 119165}}, +{20262, 18, 115225, {1, 1, 5, 9, 15, 13, 29, 81, 409, 955, 1827, 1341, 3473, 16005, 29041, 57527, 7329, 167093}}, +{20263, 18, 115276, {1, 1, 5, 3, 11, 31, 47, 13, 171, 995, 961, 3885, 3259, 2745, 12405, 49281, 2901, 207591}}, +{20264, 18, 115294, {1, 3, 5, 13, 31, 3, 1, 215, 465, 279, 1697, 2449, 3829, 2053, 9877, 52911, 126077, 210515}}, +{20265, 18, 115297, {1, 1, 3, 7, 11, 27, 55, 115, 249, 353, 407, 2567, 8105, 7747, 18111, 3383, 101875, 2185}}, +{20266, 18, 115321, {1, 1, 3, 9, 25, 5, 35, 137, 405, 667, 1671, 2965, 5975, 4999, 18421, 43623, 64621, 129797}}, +{20267, 18, 115348, {1, 3, 7, 13, 3, 17, 33, 191, 463, 787, 1795, 3037, 1679, 63, 12389, 3983, 22385, 84235}}, +{20268, 18, 115364, {1, 1, 5, 9, 11, 25, 85, 215, 355, 553, 317, 1637, 3461, 15943, 2619, 14545, 125507, 18659}}, +{20269, 18, 115376, {1, 1, 7, 5, 3, 41, 105, 179, 125, 557, 1345, 3631, 481, 10621, 11213, 40223, 46581, 113137}}, +{20270, 18, 115385, {1, 3, 3, 15, 1, 63, 95, 213, 89, 21, 1249, 3063, 413, 4307, 26723, 10225, 115143, 144817}}, +{20271, 18, 115386, {1, 3, 5, 15, 9, 43, 41, 117, 419, 143, 1651, 377, 4775, 8761, 23793, 8719, 76499, 208119}}, +{20272, 18, 115400, {1, 3, 3, 1, 21, 29, 47, 117, 23, 333, 1153, 1067, 5859, 9375, 29997, 58991, 55895, 204933}}, +{20273, 18, 115414, {1, 1, 3, 11, 11, 21, 115, 85, 223, 281, 701, 1331, 1341, 1149, 5993, 10885, 77353, 113553}}, +{20274, 18, 115465, {1, 1, 5, 1, 25, 1, 1, 153, 449, 231, 593, 3061, 4157, 6661, 21735, 11361, 57751, 129569}}, +{20275, 18, 115485, {1, 1, 3, 7, 27, 63, 81, 251, 125, 197, 1525, 1637, 4643, 4743, 17127, 51217, 95781, 973}}, +{20276, 18, 115492, {1, 1, 3, 7, 11, 51, 13, 139, 83, 341, 543, 3061, 7777, 6705, 9609, 28933, 24669, 225275}}, +{20277, 18, 115501, {1, 3, 1, 9, 25, 39, 99, 139, 5, 725, 1759, 1577, 1751, 3197, 3169, 39051, 1743, 108813}}, +{20278, 18, 115519, {1, 1, 7, 5, 31, 15, 115, 229, 499, 291, 501, 3119, 2293, 14137, 625, 16379, 111057, 101643}}, +{20279, 18, 115527, {1, 3, 7, 15, 31, 1, 51, 73, 455, 51, 1983, 3687, 6049, 3495, 26247, 6567, 28479, 158909}}, +{20280, 18, 115531, {1, 3, 5, 5, 9, 11, 77, 181, 165, 773, 1611, 3945, 6787, 3827, 28597, 53269, 34003, 237291}}, +{20281, 18, 115567, {1, 1, 5, 3, 31, 57, 15, 9, 163, 363, 1021, 2193, 8175, 3851, 26059, 63915, 114293, 163637}}, +{20282, 18, 115572, {1, 1, 3, 7, 27, 49, 35, 121, 469, 833, 879, 1601, 6991, 13271, 8085, 45343, 5189, 109413}}, +{20283, 18, 115631, {1, 3, 1, 15, 7, 11, 111, 153, 129, 769, 565, 2693, 333, 7343, 28535, 56937, 85641, 19871}}, +{20284, 18, 115648, {1, 1, 5, 13, 7, 49, 121, 223, 55, 33, 19, 2291, 1847, 10173, 23337, 23431, 18181, 155663}}, +{20285, 18, 115660, {1, 3, 1, 11, 25, 9, 3, 255, 425, 861, 1025, 3719, 6995, 14687, 31083, 60609, 115375, 17813}}, +{20286, 18, 115672, {1, 1, 5, 13, 1, 55, 109, 239, 13, 939, 1077, 669, 1643, 10949, 25399, 55055, 125829, 253077}}, +{20287, 18, 115681, {1, 1, 5, 3, 15, 51, 13, 133, 257, 387, 2017, 2223, 1479, 9377, 12867, 9833, 32323, 6255}}, +{20288, 18, 115688, {1, 3, 1, 9, 1, 53, 121, 163, 349, 491, 1867, 3403, 6859, 459, 1483, 23893, 66851, 150843}}, +{20289, 18, 115694, {1, 1, 1, 1, 1, 33, 51, 33, 177, 633, 449, 2705, 663, 3701, 8331, 43895, 87223, 48587}}, +{20290, 18, 115699, {1, 3, 5, 7, 23, 7, 99, 43, 217, 31, 749, 2831, 1557, 3295, 6797, 45229, 46831, 62183}}, +{20291, 18, 115719, {1, 1, 7, 7, 1, 45, 35, 51, 415, 693, 479, 1017, 6703, 241, 30887, 8953, 26901, 2951}}, +{20292, 18, 115726, {1, 3, 3, 7, 29, 3, 25, 217, 67, 769, 653, 3983, 5513, 15481, 21399, 17525, 81747, 109843}}, +{20293, 18, 115733, {1, 3, 5, 5, 29, 17, 97, 187, 157, 189, 1531, 1123, 4291, 14831, 15493, 62753, 53563, 153679}}, +{20294, 18, 115796, {1, 3, 7, 13, 15, 63, 47, 5, 351, 275, 1177, 3947, 6755, 1319, 17053, 14267, 98215, 228795}}, +{20295, 18, 115879, {1, 3, 7, 5, 19, 45, 43, 223, 213, 903, 539, 267, 83, 6951, 2979, 56929, 58405, 198373}}, +{20296, 18, 115880, {1, 1, 5, 11, 21, 37, 109, 103, 29, 49, 17, 3987, 5679, 2559, 17391, 46157, 38743, 82245}}, +{20297, 18, 115888, {1, 1, 3, 7, 7, 35, 57, 187, 113, 361, 721, 1821, 6473, 10233, 22549, 37725, 8445, 220669}}, +{20298, 18, 115908, {1, 3, 3, 9, 21, 41, 73, 29, 163, 701, 1277, 3869, 1529, 4889, 10091, 65507, 53829, 191347}}, +{20299, 18, 115925, {1, 1, 5, 15, 5, 21, 39, 39, 341, 271, 1543, 3161, 3935, 8319, 24921, 19575, 95009, 256221}}, +{20300, 18, 115942, {1, 1, 1, 3, 11, 33, 63, 189, 21, 773, 1261, 3947, 183, 6769, 31337, 22179, 57255, 8323}}, +{20301, 18, 115978, {1, 1, 3, 15, 29, 59, 103, 251, 107, 499, 915, 387, 3127, 5597, 3345, 15657, 979, 91685}}, +{20302, 18, 115986, {1, 3, 3, 11, 13, 27, 9, 137, 177, 75, 567, 1511, 7355, 3087, 15309, 51733, 87329, 217125}}, +{20303, 18, 116014, {1, 1, 1, 15, 9, 43, 113, 177, 507, 379, 765, 75, 6895, 7523, 24611, 7315, 49653, 59263}}, +{20304, 18, 116019, {1, 3, 1, 5, 29, 23, 59, 215, 267, 161, 1957, 341, 4081, 9635, 3345, 12323, 128751, 144577}}, +{20305, 18, 116031, {1, 3, 3, 13, 17, 55, 59, 73, 65, 697, 1209, 3345, 5629, 4545, 23043, 37649, 55015, 10263}}, +{20306, 18, 116048, {1, 1, 7, 1, 21, 3, 7, 19, 445, 417, 1677, 799, 1241, 15463, 19815, 52845, 81309, 256713}}, +{20307, 18, 116069, {1, 1, 3, 13, 13, 57, 17, 199, 3, 377, 1799, 2713, 3937, 12511, 7439, 33605, 56697, 168195}}, +{20308, 18, 116091, {1, 3, 1, 7, 21, 53, 115, 97, 389, 83, 961, 813, 1499, 3411, 22377, 33323, 118405, 115947}}, +{20309, 18, 116103, {1, 3, 7, 11, 23, 43, 85, 249, 151, 893, 833, 901, 7731, 13467, 14721, 38613, 104033, 136097}}, +{20310, 18, 116107, {1, 3, 1, 11, 23, 23, 119, 129, 175, 159, 1031, 2379, 2753, 6755, 10979, 18225, 52375, 257003}}, +{20311, 18, 116145, {1, 3, 1, 13, 1, 9, 61, 255, 433, 621, 1469, 705, 5841, 7421, 23873, 30487, 55823, 119705}}, +{20312, 18, 116152, {1, 3, 1, 15, 19, 31, 29, 163, 87, 793, 885, 2495, 4609, 2757, 5333, 52937, 79187, 228777}}, +{20313, 18, 116247, {1, 1, 1, 3, 17, 43, 69, 241, 143, 173, 327, 2747, 5617, 16347, 16155, 47775, 25917, 163663}}, +{20314, 18, 116289, {1, 1, 1, 1, 19, 19, 15, 27, 25, 139, 691, 4019, 3055, 10301, 11281, 10957, 59117, 178149}}, +{20315, 18, 116316, {1, 1, 1, 3, 15, 15, 37, 89, 103, 7, 527, 2823, 7205, 6831, 25179, 22249, 103323, 31251}}, +{20316, 18, 116344, {1, 1, 3, 3, 7, 49, 7, 241, 37, 11, 577, 1987, 1935, 14787, 16411, 36305, 65185, 221253}}, +{20317, 18, 116354, {1, 1, 1, 5, 31, 51, 123, 169, 441, 13, 721, 2359, 5687, 2641, 16339, 8441, 55967, 98775}}, +{20318, 18, 116368, {1, 1, 7, 5, 21, 23, 91, 229, 23, 105, 339, 2371, 7803, 14913, 12651, 40573, 117399, 134865}}, +{20319, 18, 116377, {1, 3, 1, 15, 19, 27, 127, 77, 469, 343, 451, 2251, 6705, 7765, 8623, 10367, 100379, 140899}}, +{20320, 18, 116383, {1, 3, 1, 5, 1, 11, 93, 231, 33, 133, 1545, 1015, 7577, 8871, 29975, 12141, 130833, 103123}}, +{20321, 18, 116387, {1, 3, 3, 5, 7, 25, 95, 93, 293, 543, 1785, 2097, 6045, 4225, 607, 443, 72055, 32269}}, +{20322, 18, 116408, {1, 1, 1, 1, 5, 55, 47, 105, 189, 359, 1589, 765, 2303, 11963, 25565, 40669, 98977, 242089}}, +{20323, 18, 116428, {1, 1, 1, 15, 13, 45, 121, 235, 125, 181, 1891, 3265, 2097, 3207, 31647, 13407, 22515, 15155}}, +{20324, 18, 116445, {1, 1, 5, 15, 13, 11, 81, 233, 307, 505, 221, 813, 6483, 741, 9819, 19405, 74235, 144761}}, +{20325, 18, 116476, {1, 3, 5, 7, 9, 25, 31, 209, 337, 473, 1831, 2711, 5551, 13531, 28747, 1875, 6401, 159995}}, +{20326, 18, 116482, {1, 1, 7, 7, 29, 3, 127, 207, 387, 849, 1449, 2741, 2105, 885, 18115, 5433, 122119, 16969}}, +{20327, 18, 116488, {1, 3, 7, 9, 25, 17, 43, 209, 41, 927, 409, 1567, 1609, 12487, 16305, 41365, 10991, 172127}}, +{20328, 18, 116493, {1, 1, 3, 7, 27, 29, 63, 127, 81, 283, 1459, 143, 5993, 14027, 8055, 28065, 128389, 255307}}, +{20329, 18, 116502, {1, 3, 7, 11, 13, 41, 63, 223, 215, 901, 1853, 2881, 5149, 7439, 4519, 33279, 127765, 139431}}, +{20330, 18, 116518, {1, 3, 7, 7, 15, 61, 61, 173, 221, 711, 191, 3863, 2695, 9663, 6277, 8791, 128019, 256755}}, +{20331, 18, 116524, {1, 3, 1, 9, 29, 45, 83, 43, 297, 605, 1887, 2421, 2307, 5199, 17275, 39225, 127215, 253687}}, +{20332, 18, 116527, {1, 1, 5, 3, 21, 23, 121, 125, 497, 945, 1367, 2757, 3481, 8607, 32447, 62373, 32171, 226621}}, +{20333, 18, 116549, {1, 3, 1, 5, 7, 1, 71, 255, 465, 951, 129, 1989, 6053, 3737, 6511, 54519, 16947, 124491}}, +{20334, 18, 116561, {1, 3, 5, 1, 9, 21, 127, 49, 85, 615, 1897, 1715, 7923, 10309, 16919, 24131, 18015, 140195}}, +{20335, 18, 116562, {1, 1, 1, 1, 5, 27, 3, 205, 29, 319, 485, 3941, 7829, 789, 4207, 39939, 67761, 152459}}, +{20336, 18, 116568, {1, 3, 7, 11, 9, 41, 1, 129, 511, 831, 1007, 2011, 6211, 9179, 20877, 62121, 21879, 23661}}, +{20337, 18, 116577, {1, 1, 7, 1, 19, 53, 75, 123, 181, 735, 925, 1065, 3317, 3201, 27473, 19379, 78223, 45725}}, +{20338, 18, 116590, {1, 1, 5, 9, 9, 61, 3, 193, 441, 815, 583, 3235, 247, 14091, 19877, 33505, 3477, 20111}}, +{20339, 18, 116602, {1, 1, 5, 13, 29, 53, 55, 165, 359, 889, 1833, 1543, 7913, 307, 22853, 37839, 15569, 140127}}, +{20340, 18, 116607, {1, 1, 1, 15, 21, 53, 63, 195, 299, 1019, 1371, 1311, 5401, 8015, 30335, 56281, 61011, 59279}}, +{20341, 18, 116611, {1, 1, 3, 13, 3, 57, 45, 239, 445, 419, 581, 3971, 4621, 9327, 27255, 53069, 126415, 250313}}, +{20342, 18, 116626, {1, 3, 1, 9, 5, 63, 21, 25, 447, 961, 1857, 3123, 3029, 9743, 26069, 38251, 58475, 108737}}, +{20343, 18, 116637, {1, 3, 1, 15, 13, 59, 5, 21, 171, 107, 1631, 2407, 6695, 8079, 2805, 50995, 53173, 104757}}, +{20344, 18, 116647, {1, 3, 7, 7, 1, 55, 103, 67, 369, 533, 515, 2363, 5147, 11633, 20435, 24591, 68155, 140029}}, +{20345, 18, 116665, {1, 3, 7, 13, 19, 51, 13, 149, 159, 915, 1029, 2825, 5259, 5139, 31325, 42825, 119923, 227811}}, +{20346, 18, 116674, {1, 3, 3, 3, 23, 17, 121, 25, 403, 333, 491, 2869, 881, 12997, 5101, 48351, 90831, 143009}}, +{20347, 18, 116700, {1, 1, 3, 15, 23, 63, 93, 43, 107, 393, 419, 3509, 1543, 10295, 11019, 8389, 73753, 42681}}, +{20348, 18, 116714, {1, 1, 7, 1, 29, 49, 41, 189, 303, 955, 1241, 1623, 2269, 3413, 6261, 2155, 90945, 95117}}, +{20349, 18, 116719, {1, 1, 3, 15, 31, 13, 103, 241, 189, 283, 1303, 1693, 1587, 16313, 205, 43421, 121799, 200151}}, +{20350, 18, 116744, {1, 3, 5, 1, 29, 27, 105, 83, 345, 411, 1197, 3489, 5891, 1137, 7311, 681, 127991, 69533}}, +{20351, 18, 116764, {1, 3, 5, 15, 31, 11, 105, 221, 57, 39, 145, 3233, 1431, 16271, 21225, 47989, 72583, 191327}}, +{20352, 18, 116774, {1, 3, 7, 9, 25, 47, 109, 61, 257, 949, 981, 1383, 8003, 4661, 19555, 20191, 114641, 84817}}, +{20353, 18, 116778, {1, 1, 5, 9, 17, 9, 19, 209, 73, 573, 1039, 2741, 1495, 1615, 6299, 20507, 84729, 166977}}, +{20354, 18, 116798, {1, 3, 5, 13, 27, 51, 39, 203, 437, 725, 1479, 3071, 621, 15563, 28473, 58403, 25943, 116683}}, +{20355, 18, 116803, {1, 1, 3, 9, 5, 29, 63, 61, 329, 305, 523, 2243, 6689, 11773, 19319, 57783, 24265, 218153}}, +{20356, 18, 116806, {1, 3, 7, 5, 17, 27, 115, 9, 243, 613, 679, 1915, 7265, 2989, 13663, 15115, 50779, 235761}}, +{20357, 18, 116827, {1, 1, 5, 5, 13, 35, 111, 151, 255, 569, 1209, 3277, 4503, 3797, 22601, 19523, 126339, 141289}}, +{20358, 18, 116839, {1, 1, 3, 9, 15, 51, 85, 125, 233, 1011, 231, 2949, 1091, 8605, 14855, 62401, 14143, 212557}}, +{20359, 18, 116863, {1, 3, 5, 11, 29, 53, 83, 31, 201, 219, 1083, 967, 6913, 10325, 1971, 55841, 7733, 208883}}, +{20360, 18, 116873, {1, 3, 3, 1, 23, 33, 51, 103, 265, 285, 1363, 2813, 3327, 7921, 13537, 31483, 43405, 189641}}, +{20361, 18, 116882, {1, 1, 7, 15, 27, 3, 5, 87, 117, 437, 1251, 189, 3271, 15579, 25025, 23203, 39421, 133581}}, +{20362, 18, 116887, {1, 1, 5, 1, 9, 3, 91, 45, 71, 557, 2019, 2355, 5539, 2843, 13025, 61017, 3475, 179891}}, +{20363, 18, 116915, {1, 1, 7, 5, 17, 11, 127, 241, 9, 971, 1699, 2719, 1947, 109, 19817, 13949, 120247, 60775}}, +{20364, 18, 116939, {1, 1, 5, 9, 9, 39, 117, 221, 197, 767, 1691, 4075, 3665, 1271, 16119, 64129, 2681, 105325}}, +{20365, 18, 116944, {1, 3, 3, 11, 31, 51, 5, 23, 419, 715, 1985, 4095, 7255, 10491, 25575, 6177, 35917, 178345}}, +{20366, 18, 116953, {1, 3, 5, 7, 15, 23, 99, 203, 461, 509, 1501, 1965, 1105, 1341, 21713, 21901, 129905, 67937}}, +{20367, 18, 116965, {1, 3, 3, 15, 25, 5, 55, 167, 477, 125, 163, 2379, 2433, 12975, 26259, 55825, 19913, 202873}}, +{20368, 18, 117002, {1, 3, 3, 7, 15, 15, 67, 227, 413, 905, 1609, 2083, 4011, 10477, 22809, 61873, 96423, 119253}}, +{20369, 18, 117007, {1, 3, 1, 11, 13, 17, 37, 147, 355, 445, 619, 3181, 5939, 6953, 15859, 37979, 24723, 133037}}, +{20370, 18, 117015, {1, 1, 5, 15, 5, 25, 89, 3, 279, 569, 343, 2453, 5739, 2901, 6709, 43957, 75791, 20791}}, +{20371, 18, 117032, {1, 1, 3, 5, 13, 39, 53, 203, 75, 945, 635, 349, 2339, 2549, 23827, 7903, 128005, 14949}}, +{20372, 18, 117035, {1, 1, 7, 3, 7, 59, 59, 77, 143, 99, 1313, 3957, 3807, 15731, 20919, 60829, 105967, 226767}}, +{20373, 18, 117052, {1, 1, 3, 7, 17, 49, 27, 245, 129, 583, 1055, 741, 5607, 689, 20075, 54837, 113257, 222677}}, +{20374, 18, 117087, {1, 1, 7, 13, 17, 5, 19, 141, 205, 749, 1769, 2981, 5787, 4511, 135, 19475, 113735, 116859}}, +{20375, 18, 117139, {1, 3, 7, 1, 9, 33, 111, 139, 77, 117, 363, 1171, 2587, 1539, 30791, 10697, 6879, 104827}}, +{20376, 18, 117157, {1, 3, 3, 5, 27, 47, 49, 215, 65, 435, 1601, 231, 2047, 10405, 28409, 17013, 103909, 232051}}, +{20377, 18, 117193, {1, 3, 3, 3, 13, 19, 3, 159, 293, 675, 247, 2829, 6703, 6085, 1935, 18209, 15709, 186669}}, +{20378, 18, 117211, {1, 3, 3, 5, 21, 55, 17, 237, 121, 603, 953, 947, 6973, 15979, 11029, 12381, 12807, 131603}}, +{20379, 18, 117214, {1, 3, 5, 3, 3, 41, 121, 203, 283, 349, 1841, 115, 6567, 2131, 883, 50515, 78381, 168189}}, +{20380, 18, 117220, {1, 3, 7, 15, 5, 55, 85, 13, 77, 443, 1711, 1043, 1265, 3701, 5121, 41435, 40637, 69125}}, +{20381, 18, 117238, {1, 1, 5, 15, 15, 33, 67, 235, 3, 95, 1685, 731, 2187, 11857, 7197, 62113, 12565, 127455}}, +{20382, 18, 117248, {1, 3, 7, 7, 11, 45, 125, 231, 263, 611, 221, 195, 6347, 14029, 7823, 52295, 78879, 211441}}, +{20383, 18, 117275, {1, 3, 7, 15, 9, 63, 75, 189, 187, 449, 27, 3647, 4705, 13037, 3773, 36441, 35445, 181793}}, +{20384, 18, 117293, {1, 1, 5, 3, 31, 19, 123, 39, 297, 1017, 1191, 2227, 6085, 5117, 16569, 64743, 29329, 157279}}, +{20385, 18, 117301, {1, 1, 5, 5, 15, 47, 111, 61, 435, 657, 141, 3445, 6921, 7759, 30141, 37631, 85969, 227563}}, +{20386, 18, 117319, {1, 3, 1, 13, 27, 39, 15, 167, 151, 185, 1513, 211, 951, 12705, 25703, 29289, 120993, 156741}}, +{20387, 18, 117338, {1, 3, 7, 7, 7, 39, 19, 221, 351, 951, 1231, 1915, 3043, 189, 18977, 50149, 56583, 122147}}, +{20388, 18, 117347, {1, 1, 5, 15, 29, 37, 77, 207, 291, 851, 131, 1041, 1657, 4393, 5023, 12745, 32253, 204431}}, +{20389, 18, 117361, {1, 1, 7, 15, 11, 59, 85, 255, 67, 23, 1321, 2153, 7043, 417, 15719, 59937, 37619, 109331}}, +{20390, 18, 117380, {1, 3, 7, 15, 25, 37, 43, 15, 385, 735, 1741, 3655, 4215, 1097, 19519, 44313, 99851, 204717}}, +{20391, 18, 117389, {1, 1, 3, 7, 15, 17, 17, 105, 399, 49, 105, 159, 465, 11991, 29797, 23907, 129609, 179013}}, +{20392, 18, 117398, {1, 1, 7, 13, 9, 17, 87, 51, 391, 695, 545, 3061, 4499, 2059, 10095, 13847, 68519, 60611}}, +{20393, 18, 117435, {1, 3, 3, 1, 31, 7, 11, 233, 231, 189, 1599, 1589, 401, 8759, 17273, 43613, 48709, 253521}}, +{20394, 18, 117458, {1, 1, 1, 11, 5, 9, 27, 77, 491, 951, 579, 1635, 3241, 14497, 27149, 45001, 56769, 160731}}, +{20395, 18, 117476, {1, 3, 7, 15, 29, 11, 125, 101, 19, 971, 107, 1525, 3939, 7633, 16355, 24727, 19475, 157571}}, +{20396, 18, 117498, {1, 1, 1, 9, 25, 7, 35, 187, 321, 483, 1919, 1911, 7869, 12903, 26977, 49419, 24973, 214731}}, +{20397, 18, 117500, {1, 1, 5, 3, 23, 1, 11, 143, 315, 1015, 1367, 1555, 1041, 6655, 10481, 49275, 49575, 101061}}, +{20398, 18, 117529, {1, 3, 5, 15, 15, 59, 13, 117, 217, 975, 1821, 3829, 1545, 921, 20875, 43305, 18793, 158651}}, +{20399, 18, 117554, {1, 3, 3, 11, 23, 23, 91, 7, 29, 613, 1093, 3881, 3301, 3751, 16137, 48277, 119813, 177341}}, +{20400, 18, 117556, {1, 3, 3, 15, 7, 37, 115, 19, 147, 585, 1877, 2395, 3343, 9567, 16199, 13969, 89731, 124835}}, +{20401, 18, 117565, {1, 1, 5, 7, 29, 3, 59, 141, 375, 527, 1219, 409, 7155, 2823, 32497, 23103, 73187, 53089}}, +{20402, 18, 117580, {1, 1, 5, 3, 13, 27, 111, 63, 189, 813, 643, 19, 3461, 13891, 26651, 52395, 74729, 148397}}, +{20403, 18, 117585, {1, 3, 5, 1, 27, 61, 97, 227, 123, 829, 1559, 2523, 7737, 6047, 213, 23613, 61571, 7093}}, +{20404, 18, 117592, {1, 1, 1, 11, 17, 1, 73, 203, 391, 937, 321, 3431, 7163, 3547, 29467, 65271, 69775, 226405}}, +{20405, 18, 117597, {1, 1, 5, 15, 25, 7, 75, 199, 511, 731, 1547, 2127, 1609, 5623, 26771, 29935, 76671, 178683}}, +{20406, 18, 117616, {1, 3, 5, 15, 25, 49, 99, 23, 281, 81, 507, 1499, 5235, 9945, 14099, 5993, 319, 178581}}, +{20407, 18, 117637, {1, 3, 7, 9, 5, 13, 105, 7, 135, 827, 927, 3463, 839, 7047, 19863, 63859, 13951, 221795}}, +{20408, 18, 117644, {1, 1, 1, 13, 7, 21, 59, 9, 467, 299, 1035, 1395, 7413, 7313, 24769, 44043, 50679, 72867}}, +{20409, 18, 117659, {1, 1, 7, 1, 31, 33, 95, 155, 429, 413, 493, 2025, 2069, 551, 507, 13515, 3507, 93873}}, +{20410, 18, 117703, {1, 1, 3, 5, 3, 33, 109, 1, 299, 727, 495, 2981, 3795, 11467, 27173, 4171, 6859, 129961}}, +{20411, 18, 117704, {1, 1, 7, 9, 23, 41, 113, 103, 161, 303, 1565, 2637, 7113, 11635, 13707, 3559, 21007, 250107}}, +{20412, 18, 117727, {1, 1, 5, 13, 1, 49, 11, 87, 31, 77, 1847, 1137, 3031, 1943, 28755, 32197, 96043, 152447}}, +{20413, 18, 117738, {1, 1, 3, 7, 3, 3, 123, 65, 175, 809, 681, 2135, 5279, 7119, 4573, 19287, 90235, 183391}}, +{20414, 18, 117770, {1, 3, 1, 13, 7, 5, 25, 151, 437, 155, 1841, 219, 5641, 12097, 6153, 11, 60315, 169293}}, +{20415, 18, 117796, {1, 1, 7, 5, 21, 29, 23, 83, 35, 651, 1507, 635, 3867, 12133, 25523, 55341, 105741, 240349}}, +{20416, 18, 117799, {1, 1, 1, 15, 9, 29, 27, 151, 463, 747, 547, 577, 1263, 15235, 6695, 60849, 72231, 175671}}, +{20417, 18, 117820, {1, 3, 5, 11, 11, 43, 81, 37, 505, 509, 1325, 3295, 839, 5855, 19795, 1403, 15711, 219481}}, +{20418, 18, 117832, {1, 3, 3, 15, 25, 61, 121, 37, 201, 133, 537, 1345, 4213, 13023, 18795, 8949, 84431, 105521}}, +{20419, 18, 117840, {1, 3, 7, 11, 13, 51, 87, 245, 357, 7, 699, 2003, 5963, 1399, 69, 19083, 114585, 232313}}, +{20420, 18, 117843, {1, 1, 1, 13, 9, 29, 65, 123, 37, 885, 227, 2795, 1037, 10905, 21217, 4081, 77643, 254245}}, +{20421, 18, 117865, {1, 3, 1, 3, 25, 23, 71, 189, 253, 785, 1337, 1275, 3285, 1067, 8607, 3883, 119099, 116637}}, +{20422, 18, 117868, {1, 1, 1, 15, 19, 43, 17, 89, 257, 175, 1943, 207, 597, 9279, 405, 33209, 65221, 39557}}, +{20423, 18, 117874, {1, 1, 7, 5, 7, 47, 127, 11, 197, 871, 23, 1951, 6829, 7831, 5223, 56287, 115649, 114283}}, +{20424, 18, 117886, {1, 3, 1, 3, 1, 35, 81, 189, 19, 117, 1683, 469, 8117, 5449, 22871, 5505, 125111, 128717}}, +{20425, 18, 117962, {1, 3, 7, 5, 7, 31, 105, 57, 387, 691, 1293, 3103, 2329, 16247, 18357, 55453, 112633, 225641}}, +{20426, 18, 117967, {1, 3, 1, 3, 13, 3, 65, 25, 47, 413, 521, 3507, 1793, 14431, 22341, 39813, 46399, 204501}}, +{20427, 18, 117995, {1, 3, 1, 1, 31, 37, 21, 45, 261, 665, 1243, 1937, 5001, 3789, 26473, 20153, 107131, 75523}}, +{20428, 18, 118000, {1, 3, 5, 15, 27, 61, 109, 139, 19, 583, 353, 445, 53, 67, 20753, 57827, 116527, 55109}}, +{20429, 18, 118017, {1, 1, 3, 3, 1, 37, 113, 21, 305, 967, 1703, 2095, 1059, 2843, 22381, 24871, 24765, 52425}}, +{20430, 18, 118037, {1, 3, 7, 11, 27, 59, 111, 111, 283, 79, 1227, 3631, 4169, 5671, 7769, 56553, 75503, 206259}}, +{20431, 18, 118038, {1, 1, 5, 11, 11, 1, 127, 13, 17, 255, 1383, 2879, 6785, 289, 7061, 53067, 11539, 131405}}, +{20432, 18, 118051, {1, 1, 5, 15, 29, 27, 67, 15, 247, 689, 579, 3237, 5279, 13847, 20305, 60237, 115841, 144855}}, +{20433, 18, 118057, {1, 1, 5, 1, 9, 25, 75, 11, 83, 1015, 281, 1617, 7449, 10673, 7033, 38839, 113703, 233101}}, +{20434, 18, 118072, {1, 3, 3, 3, 23, 41, 81, 109, 199, 969, 935, 1793, 6921, 4013, 9625, 48149, 54395, 1193}}, +{20435, 18, 118080, {1, 3, 5, 7, 19, 63, 25, 201, 63, 799, 765, 533, 1417, 3199, 7773, 44247, 112207, 11783}}, +{20436, 18, 118098, {1, 3, 1, 11, 7, 25, 87, 159, 491, 749, 1157, 667, 2951, 12019, 22259, 36933, 124159, 176041}}, +{20437, 18, 118107, {1, 1, 5, 15, 21, 19, 113, 175, 129, 385, 2025, 2685, 1925, 8547, 4835, 15953, 128023, 236341}}, +{20438, 18, 118109, {1, 1, 1, 9, 13, 47, 25, 81, 389, 249, 1857, 1061, 4439, 3717, 16299, 23247, 95275, 222701}}, +{20439, 18, 118114, {1, 3, 3, 1, 3, 61, 61, 117, 159, 689, 43, 113, 4203, 7699, 27607, 37195, 63415, 90481}}, +{20440, 18, 118123, {1, 3, 1, 5, 11, 49, 73, 13, 307, 655, 645, 2765, 6079, 12687, 22417, 44713, 5247, 40265}}, +{20441, 18, 118150, {1, 1, 7, 13, 5, 55, 57, 237, 317, 101, 481, 2515, 707, 6385, 9421, 50557, 92395, 193737}}, +{20442, 18, 118159, {1, 3, 5, 1, 27, 35, 65, 107, 63, 57, 1699, 4077, 4279, 8547, 15137, 11533, 117641, 64925}}, +{20443, 18, 118164, {1, 1, 5, 1, 13, 7, 7, 141, 305, 191, 2033, 2677, 6025, 12927, 4057, 12047, 60253, 90803}}, +{20444, 18, 118173, {1, 1, 7, 3, 1, 9, 63, 233, 185, 97, 913, 187, 4321, 8951, 27669, 27035, 30029, 218725}}, +{20445, 18, 118201, {1, 1, 7, 1, 11, 59, 41, 195, 335, 551, 491, 3079, 7777, 4003, 24543, 17165, 103261, 167505}}, +{20446, 18, 118212, {1, 1, 3, 3, 9, 59, 37, 185, 289, 845, 1083, 63, 7439, 4677, 29245, 40813, 16295, 45499}}, +{20447, 18, 118246, {1, 3, 5, 1, 1, 37, 89, 5, 277, 493, 155, 1641, 5395, 11389, 26247, 2833, 103803, 74447}}, +{20448, 18, 118257, {1, 1, 3, 1, 29, 55, 83, 211, 377, 583, 1075, 2679, 7157, 11719, 1653, 5977, 52263, 45531}}, +{20449, 18, 118303, {1, 1, 5, 15, 1, 31, 89, 7, 239, 821, 887, 1319, 225, 14555, 5443, 44717, 99803, 241577}}, +{20450, 18, 118310, {1, 3, 5, 11, 7, 23, 81, 161, 67, 1011, 177, 2837, 7767, 14385, 29415, 9377, 7407, 128403}}, +{20451, 18, 118313, {1, 1, 7, 11, 3, 13, 13, 237, 199, 601, 481, 3809, 6591, 8497, 25361, 22547, 28317, 22961}}, +{20452, 18, 118324, {1, 3, 1, 1, 31, 29, 105, 161, 483, 391, 321, 1087, 4149, 8803, 22291, 24611, 114447, 33645}}, +{20453, 18, 118334, {1, 3, 1, 11, 1, 47, 41, 45, 287, 503, 169, 2265, 1835, 6609, 25245, 7069, 61137, 160653}}, +{20454, 18, 118336, {1, 1, 7, 13, 11, 39, 29, 39, 489, 205, 741, 2871, 377, 10679, 11689, 50947, 85309, 95697}}, +{20455, 18, 118339, {1, 3, 7, 7, 23, 19, 103, 15, 79, 425, 369, 2009, 4417, 11031, 2113, 36969, 73241, 120903}}, +{20456, 18, 118353, {1, 3, 1, 7, 27, 9, 43, 33, 123, 895, 223, 1045, 2701, 3339, 12099, 24449, 52973, 175671}}, +{20457, 18, 118354, {1, 3, 5, 5, 3, 1, 13, 117, 429, 167, 1361, 2299, 7565, 1153, 9259, 29209, 25747, 71005}}, +{20458, 18, 118390, {1, 3, 1, 15, 7, 7, 13, 209, 73, 523, 1549, 2545, 5583, 10209, 27205, 41243, 14217, 208993}}, +{20459, 18, 118396, {1, 3, 5, 5, 3, 29, 99, 255, 479, 297, 1319, 2171, 7321, 14425, 15869, 44449, 10917, 171165}}, +{20460, 18, 118436, {1, 3, 3, 11, 13, 49, 29, 95, 79, 987, 161, 859, 6503, 8839, 14131, 30249, 16183, 40257}}, +{20461, 18, 118453, {1, 3, 3, 11, 27, 7, 27, 33, 255, 847, 789, 3897, 2599, 16107, 22379, 1853, 102713, 197547}}, +{20462, 18, 118466, {1, 1, 3, 9, 29, 11, 107, 227, 35, 183, 639, 1585, 313, 1451, 19789, 13855, 94277, 85569}}, +{20463, 18, 118492, {1, 3, 7, 7, 25, 33, 101, 49, 137, 457, 2027, 3317, 1961, 6097, 739, 12875, 69503, 95453}}, +{20464, 18, 118506, {1, 3, 3, 11, 29, 13, 127, 3, 31, 319, 1341, 927, 5067, 13891, 31265, 41381, 49341, 160343}}, +{20465, 18, 118525, {1, 1, 3, 15, 31, 21, 93, 155, 471, 707, 1395, 2995, 867, 10353, 8137, 44267, 24823, 6113}}, +{20466, 18, 118557, {1, 3, 1, 7, 7, 33, 83, 79, 349, 687, 1045, 1183, 4441, 15199, 1953, 36395, 84691, 134939}}, +{20467, 18, 118561, {1, 1, 3, 15, 13, 21, 41, 105, 189, 439, 1171, 4005, 7641, 1597, 24317, 58749, 35539, 220647}}, +{20468, 18, 118586, {1, 1, 3, 15, 13, 39, 49, 5, 461, 613, 1633, 1951, 7959, 5733, 10061, 18829, 49505, 90033}}, +{20469, 18, 118606, {1, 3, 5, 5, 29, 25, 19, 227, 379, 525, 687, 2629, 7729, 4791, 5911, 14481, 49063, 216669}}, +{20470, 18, 118627, {1, 3, 7, 7, 7, 63, 93, 227, 79, 165, 1971, 1695, 4485, 6009, 8769, 12861, 83653, 27667}}, +{20471, 18, 118641, {1, 1, 5, 5, 25, 11, 23, 89, 363, 491, 459, 4063, 3787, 9375, 28011, 44757, 56441, 116609}}, +{20472, 18, 118654, {1, 3, 5, 9, 7, 53, 43, 149, 435, 35, 135, 1759, 3197, 7749, 12731, 28295, 25901, 125847}}, +{20473, 18, 118687, {1, 1, 3, 5, 15, 15, 1, 215, 307, 711, 1971, 2795, 677, 11921, 10303, 37997, 6653, 51295}}, +{20474, 18, 118688, {1, 1, 5, 15, 1, 59, 75, 195, 51, 215, 1303, 3023, 8023, 10951, 13015, 23513, 37029, 23581}}, +{20475, 18, 118735, {1, 1, 1, 3, 27, 3, 77, 165, 97, 499, 937, 1129, 6649, 11305, 27763, 32849, 78251, 210407}}, +{20476, 18, 118737, {1, 3, 3, 3, 9, 21, 19, 197, 339, 53, 1875, 1057, 3485, 14645, 13417, 39307, 81437, 45857}}, +{20477, 18, 118750, {1, 1, 1, 5, 19, 5, 95, 205, 399, 699, 819, 1927, 7913, 8109, 1223, 28595, 397, 81051}}, +{20478, 18, 118773, {1, 3, 7, 13, 23, 11, 37, 167, 189, 813, 1199, 3545, 655, 13239, 10469, 33895, 119025, 185361}}, +{20479, 18, 118778, {1, 1, 5, 11, 9, 13, 41, 37, 443, 269, 1199, 1347, 7081, 11273, 14389, 64083, 117901, 51903}}, +{20480, 18, 118786, {1, 1, 3, 13, 5, 17, 117, 151, 155, 637, 731, 1839, 855, 9749, 19529, 18101, 20341, 21941}}, +{20481, 18, 118809, {1, 1, 1, 11, 15, 17, 35, 9, 91, 907, 667, 853, 1455, 10097, 31277, 749, 47089, 219517}}, +{20482, 18, 118833, {1, 3, 7, 1, 27, 31, 9, 145, 309, 811, 5, 2645, 7851, 1953, 21427, 18805, 108755, 77215}}, +{20483, 18, 118853, {1, 1, 7, 3, 21, 7, 25, 233, 145, 1015, 43, 2205, 4735, 13257, 24001, 50469, 42567, 253745}}, +{20484, 18, 118854, {1, 3, 1, 15, 3, 53, 51, 45, 397, 379, 641, 895, 7569, 15783, 23923, 6147, 121395, 261853}}, +{20485, 18, 118863, {1, 1, 1, 1, 23, 47, 35, 125, 289, 65, 1875, 2309, 519, 5435, 5271, 25319, 14557, 19389}}, +{20486, 18, 118881, {1, 3, 5, 7, 27, 43, 15, 61, 357, 791, 1781, 3671, 3911, 1325, 5607, 44107, 67873, 119849}}, +{20487, 18, 118896, {1, 3, 1, 5, 25, 37, 105, 51, 491, 407, 475, 1763, 1425, 14883, 31435, 48979, 120667, 131089}}, +{20488, 18, 118917, {1, 3, 5, 13, 1, 51, 109, 161, 215, 871, 185, 2389, 7977, 6705, 14045, 45569, 44557, 114795}}, +{20489, 18, 118921, {1, 3, 7, 11, 17, 21, 111, 183, 343, 593, 447, 3995, 759, 3709, 32655, 30141, 127225, 120899}}, +{20490, 18, 118939, {1, 1, 5, 3, 17, 3, 69, 25, 113, 897, 1933, 2717, 2003, 5847, 2541, 62415, 50975, 97903}}, +{20491, 18, 118948, {1, 1, 1, 1, 9, 35, 107, 81, 257, 57, 1719, 4049, 1237, 10659, 4689, 20887, 90791, 251911}}, +{20492, 18, 118960, {1, 1, 7, 11, 1, 49, 83, 213, 169, 169, 825, 2983, 5833, 2413, 32165, 47459, 129021, 156217}}, +{20493, 18, 118970, {1, 1, 5, 13, 15, 39, 61, 93, 407, 553, 839, 4035, 6609, 6327, 945, 49625, 127867, 240161}}, +{20494, 18, 118983, {1, 1, 1, 15, 23, 47, 21, 235, 81, 431, 1819, 1141, 7973, 4623, 4539, 23201, 83111, 230857}}, +{20495, 18, 119025, {1, 3, 3, 15, 9, 15, 15, 173, 29, 803, 1453, 2621, 8095, 6639, 6607, 21471, 44785, 122271}}, +{20496, 18, 119026, {1, 3, 3, 7, 21, 5, 127, 203, 43, 581, 1925, 165, 4615, 9141, 18563, 54413, 71559, 172791}}, +{20497, 18, 119064, {1, 3, 3, 3, 27, 31, 55, 3, 381, 971, 1087, 2659, 139, 10935, 9189, 3445, 15071, 218873}}, +{20498, 18, 119069, {1, 3, 1, 3, 1, 57, 47, 71, 85, 335, 207, 225, 2931, 14721, 21431, 17199, 745, 177403}}, +{20499, 18, 119079, {1, 3, 1, 7, 7, 17, 21, 57, 345, 29, 1147, 1179, 7371, 14725, 27445, 62061, 16483, 112489}}, +{20500, 18, 119085, {1, 3, 7, 15, 23, 11, 91, 1, 1, 117, 1665, 3899, 5683, 14497, 25633, 6233, 104029, 22155}}, +{20501, 18, 119115, {1, 3, 5, 9, 1, 27, 15, 187, 37, 329, 585, 729, 5651, 15715, 4339, 1899, 90611, 195643}}, +{20502, 18, 119165, {1, 1, 3, 11, 1, 45, 95, 103, 13, 83, 319, 2295, 6333, 13469, 19237, 55985, 129725, 141699}}, +{20503, 18, 119166, {1, 1, 5, 11, 7, 41, 97, 159, 511, 617, 1545, 3023, 7919, 8437, 8345, 16701, 69053, 105047}}, +{20504, 18, 119193, {1, 3, 3, 11, 29, 35, 23, 95, 277, 931, 857, 3887, 4597, 10841, 12947, 18009, 61499, 242827}}, +{20505, 18, 119194, {1, 1, 3, 3, 7, 63, 35, 161, 125, 637, 149, 1045, 3297, 16213, 1543, 8073, 80373, 61507}}, +{20506, 18, 119199, {1, 1, 7, 5, 31, 43, 113, 189, 181, 659, 1971, 3309, 4237, 4279, 31563, 29429, 17443, 154385}}, +{20507, 18, 119215, {1, 1, 1, 13, 19, 43, 99, 91, 47, 477, 153, 3295, 6281, 779, 17169, 343, 1723, 171133}}, +{20508, 18, 119218, {1, 1, 1, 15, 9, 35, 123, 45, 417, 631, 1415, 1835, 3063, 897, 18947, 62477, 12759, 97831}}, +{20509, 18, 119241, {1, 1, 3, 13, 31, 1, 31, 139, 411, 605, 1829, 303, 3891, 15807, 7335, 44833, 87427, 62183}}, +{20510, 18, 119277, {1, 1, 3, 13, 29, 55, 97, 107, 241, 981, 1281, 3295, 6825, 15865, 4221, 24695, 54203, 252069}}, +{20511, 18, 119301, {1, 3, 7, 13, 1, 3, 33, 165, 483, 813, 127, 1717, 8077, 3521, 23465, 41705, 2769, 173233}}, +{20512, 18, 119306, {1, 3, 1, 11, 11, 51, 39, 125, 375, 825, 1775, 2923, 4903, 4779, 907, 47787, 22293, 169631}}, +{20513, 18, 119335, {1, 3, 5, 5, 13, 27, 43, 229, 267, 153, 567, 3403, 2103, 6203, 29629, 29715, 116735, 122515}}, +{20514, 18, 119344, {1, 3, 5, 13, 3, 3, 15, 5, 345, 343, 691, 3703, 361, 2019, 9309, 26909, 22897, 103555}}, +{20515, 18, 119364, {1, 3, 1, 11, 9, 25, 123, 235, 131, 469, 1749, 3681, 3841, 10157, 15183, 61413, 42207, 170359}}, +{20516, 18, 119373, {1, 1, 7, 3, 13, 9, 7, 191, 239, 417, 817, 1381, 1179, 2719, 21025, 17429, 50295, 196485}}, +{20517, 18, 119382, {1, 1, 7, 9, 9, 31, 123, 229, 381, 569, 513, 1617, 6141, 9717, 31769, 30159, 113697, 254237}}, +{20518, 18, 119410, {1, 1, 1, 15, 31, 43, 37, 17, 283, 905, 297, 1317, 1883, 11313, 5653, 55655, 121029, 149831}}, +{20519, 18, 119425, {1, 1, 1, 7, 7, 47, 83, 101, 497, 465, 1133, 3877, 5371, 3355, 17161, 50185, 120837, 255103}}, +{20520, 18, 119459, {1, 1, 3, 5, 5, 19, 3, 251, 433, 303, 1193, 1263, 2139, 473, 10725, 57725, 111411, 133687}}, +{20521, 18, 119473, {1, 1, 1, 7, 3, 1, 99, 115, 481, 395, 115, 1699, 953, 2807, 7227, 52781, 2855, 161159}}, +{20522, 18, 119486, {1, 1, 5, 9, 25, 25, 85, 3, 451, 847, 837, 3669, 4717, 3661, 29111, 43735, 49445, 100379}}, +{20523, 18, 119500, {1, 1, 7, 9, 19, 61, 67, 123, 195, 483, 1741, 2719, 7809, 5035, 30689, 21325, 56191, 46127}}, +{20524, 18, 119508, {1, 1, 3, 11, 15, 39, 101, 27, 103, 807, 1557, 1647, 1285, 16169, 20203, 57153, 60749, 71361}}, +{20525, 18, 119511, {1, 3, 3, 3, 19, 1, 93, 31, 105, 925, 689, 3061, 7451, 12667, 27179, 36295, 61011, 90321}}, +{20526, 18, 119517, {1, 3, 7, 15, 19, 35, 47, 241, 261, 935, 1033, 751, 6519, 6911, 13519, 2539, 40285, 81535}}, +{20527, 18, 119528, {1, 1, 7, 13, 17, 31, 71, 135, 167, 5, 673, 2909, 4377, 3453, 31289, 38081, 21993, 192933}}, +{20528, 18, 119533, {1, 1, 5, 15, 23, 49, 85, 127, 13, 849, 1661, 2099, 3479, 3613, 21723, 58147, 56321, 203171}}, +{20529, 18, 119539, {1, 1, 7, 15, 23, 63, 3, 207, 445, 573, 1419, 1161, 2237, 1251, 23387, 65259, 81447, 74555}}, +{20530, 18, 119542, {1, 3, 5, 3, 25, 61, 37, 25, 287, 969, 37, 1615, 7923, 4457, 27611, 8519, 113957, 237427}}, +{20531, 18, 119546, {1, 3, 5, 11, 11, 25, 117, 169, 149, 701, 139, 2835, 6029, 9067, 841, 51707, 9287, 115825}}, +{20532, 18, 119566, {1, 1, 1, 13, 31, 5, 9, 5, 313, 1023, 551, 3635, 6765, 13379, 29135, 39737, 80913, 256355}}, +{20533, 18, 119587, {1, 3, 1, 13, 9, 23, 105, 117, 181, 211, 755, 555, 2763, 13965, 14743, 63725, 16377, 203435}}, +{20534, 18, 119590, {1, 3, 1, 15, 11, 45, 111, 147, 471, 321, 381, 2921, 6423, 629, 25117, 51213, 126941, 181931}}, +{20535, 18, 119607, {1, 1, 1, 11, 1, 49, 127, 105, 315, 1, 859, 1223, 5967, 2521, 14491, 58399, 45155, 192567}}, +{20536, 18, 119614, {1, 1, 3, 9, 19, 21, 73, 93, 95, 307, 293, 3243, 4765, 2253, 16775, 29861, 3785, 90357}}, +{20537, 18, 119625, {1, 1, 3, 7, 3, 53, 33, 167, 165, 509, 1133, 169, 6951, 7715, 26317, 5249, 86235, 39649}}, +{20538, 18, 119633, {1, 1, 5, 5, 3, 47, 105, 89, 201, 1003, 877, 635, 2225, 6391, 21247, 5707, 1233, 87055}}, +{20539, 18, 119634, {1, 1, 1, 1, 9, 39, 61, 201, 435, 843, 1245, 533, 1757, 1117, 19687, 54817, 32495, 228865}}, +{20540, 18, 119643, {1, 3, 1, 1, 3, 61, 63, 117, 143, 217, 435, 1977, 2647, 7631, 12969, 50211, 26483, 256329}}, +{20541, 18, 119683, {1, 3, 3, 9, 21, 25, 113, 243, 457, 143, 833, 1505, 3071, 1845, 17867, 58205, 103819, 185215}}, +{20542, 18, 119704, {1, 1, 5, 7, 23, 51, 11, 117, 195, 535, 685, 31, 3037, 9719, 22811, 42959, 21021, 126297}}, +{20543, 18, 119710, {1, 3, 3, 1, 1, 17, 107, 245, 257, 547, 887, 45, 5243, 2439, 22191, 19503, 2143, 75187}}, +{20544, 18, 119734, {1, 3, 7, 9, 11, 27, 123, 197, 353, 151, 1115, 403, 1105, 7425, 7463, 42065, 116187, 154537}}, +{20545, 18, 119752, {1, 3, 5, 15, 23, 5, 49, 177, 223, 615, 1255, 2081, 321, 8733, 19549, 53027, 275, 62739}}, +{20546, 18, 119760, {1, 3, 7, 1, 17, 61, 3, 233, 249, 763, 369, 555, 1621, 7221, 22575, 13295, 99793, 233635}}, +{20547, 18, 119826, {1, 1, 3, 1, 27, 41, 125, 113, 47, 583, 543, 453, 1213, 14187, 1645, 35761, 110051, 197081}}, +{20548, 18, 119922, {1, 1, 7, 9, 29, 43, 105, 125, 489, 135, 153, 2279, 4079, 6731, 12055, 60181, 82563, 173991}}, +{20549, 18, 119931, {1, 3, 7, 3, 29, 1, 67, 151, 127, 625, 113, 2127, 6723, 12359, 28609, 60605, 20375, 120129}}, +{20550, 18, 119977, {1, 1, 5, 7, 9, 13, 27, 171, 129, 199, 303, 4045, 2047, 8887, 22233, 57571, 40545, 36479}}, +{20551, 18, 120015, {1, 3, 1, 7, 1, 5, 127, 203, 213, 691, 1155, 27, 5409, 13519, 6747, 42371, 37089, 145855}}, +{20552, 18, 120020, {1, 3, 3, 9, 3, 33, 119, 25, 337, 715, 1093, 987, 7157, 14975, 28595, 19021, 1243, 148707}}, +{20553, 18, 120083, {1, 3, 1, 13, 3, 41, 81, 151, 23, 787, 181, 2357, 5077, 1997, 6451, 25505, 44875, 198341}}, +{20554, 18, 120086, {1, 1, 7, 3, 5, 15, 9, 169, 337, 487, 1325, 1505, 465, 2339, 20747, 8269, 96875, 108985}}, +{20555, 18, 120101, {1, 3, 1, 7, 23, 7, 113, 181, 25, 989, 1649, 1, 823, 6793, 18729, 3599, 97951, 239609}}, +{20556, 18, 120105, {1, 3, 7, 7, 3, 63, 63, 207, 419, 355, 1133, 2979, 2071, 11699, 32565, 61347, 106475, 16893}}, +{20557, 18, 120155, {1, 1, 7, 5, 7, 3, 119, 133, 189, 341, 1571, 1559, 4309, 16203, 22459, 21019, 80375, 3453}}, +{20558, 18, 120188, {1, 1, 3, 11, 21, 21, 45, 69, 485, 21, 727, 703, 5209, 14745, 3437, 54603, 104357, 151207}}, +{20559, 18, 120195, {1, 3, 7, 5, 25, 17, 13, 147, 329, 93, 121, 315, 2779, 6921, 425, 50441, 1133, 252291}}, +{20560, 18, 120216, {1, 1, 3, 5, 5, 51, 15, 135, 323, 841, 409, 1067, 3243, 4207, 6833, 59329, 90545, 116661}}, +{20561, 18, 120228, {1, 1, 3, 15, 25, 7, 43, 147, 153, 947, 79, 1897, 4519, 14441, 27181, 38517, 71673, 158597}}, +{20562, 18, 120238, {1, 3, 3, 3, 3, 47, 109, 111, 273, 271, 741, 3999, 649, 7367, 14933, 11785, 92709, 133815}}, +{20563, 18, 120255, {1, 1, 3, 13, 5, 41, 55, 15, 409, 355, 1255, 3043, 7503, 3523, 4261, 48927, 119901, 149411}}, +{20564, 18, 120317, {1, 1, 5, 1, 11, 57, 3, 149, 409, 287, 909, 3541, 4243, 4485, 3611, 63213, 102575, 49863}}, +{20565, 18, 120327, {1, 1, 3, 7, 15, 55, 119, 185, 511, 301, 237, 3701, 3195, 1323, 27511, 44635, 45363, 117683}}, +{20566, 18, 120369, {1, 3, 3, 11, 3, 61, 125, 15, 235, 819, 467, 1097, 1055, 16343, 8329, 37807, 38663, 145625}}, +{20567, 18, 120382, {1, 1, 7, 1, 25, 49, 117, 163, 413, 509, 63, 1313, 5113, 6505, 25475, 12059, 88021, 168037}}, +{20568, 18, 120404, {1, 3, 3, 9, 9, 37, 15, 185, 359, 231, 1483, 2999, 773, 10375, 27103, 39899, 100187, 54485}}, +{20569, 18, 120414, {1, 3, 3, 1, 13, 63, 111, 79, 133, 425, 1491, 3735, 533, 13417, 5161, 11455, 16907, 132267}}, +{20570, 18, 120432, {1, 3, 1, 15, 15, 47, 57, 157, 453, 681, 1811, 1685, 4329, 131, 22763, 1017, 66637, 1673}}, +{20571, 18, 120435, {1, 3, 7, 3, 31, 5, 105, 101, 431, 983, 1333, 845, 7369, 15041, 6527, 8617, 61911, 137513}}, +{20572, 18, 120454, {1, 3, 7, 15, 3, 45, 57, 23, 393, 495, 769, 215, 3611, 12907, 20637, 52997, 88345, 37961}}, +{20573, 18, 120463, {1, 3, 5, 7, 31, 3, 85, 249, 353, 559, 1803, 959, 4625, 9413, 22339, 6071, 124765, 43973}}, +{20574, 18, 120471, {1, 3, 1, 9, 31, 15, 109, 197, 179, 293, 457, 709, 627, 7743, 1997, 59625, 36919, 252849}}, +{20575, 18, 120505, {1, 1, 7, 11, 17, 21, 89, 11, 431, 617, 1029, 2649, 1725, 2723, 18367, 46103, 108063, 221855}}, +{20576, 18, 120528, {1, 3, 7, 1, 29, 7, 81, 187, 353, 807, 965, 3655, 3255, 9139, 28619, 32127, 107901, 139099}}, +{20577, 18, 120588, {1, 1, 5, 3, 17, 9, 39, 59, 431, 829, 525, 1885, 2387, 13381, 5271, 29739, 80413, 240595}}, +{20578, 18, 120616, {1, 3, 1, 5, 1, 5, 25, 9, 193, 971, 681, 2921, 3271, 3891, 20123, 37477, 33141, 82481}}, +{20579, 18, 120630, {1, 1, 3, 5, 1, 63, 77, 93, 63, 399, 1945, 387, 5457, 7339, 13279, 34119, 129903, 12621}}, +{20580, 18, 120644, {1, 3, 3, 11, 17, 11, 117, 189, 473, 23, 13, 1261, 2153, 12181, 21075, 33179, 43355, 168293}}, +{20581, 18, 120672, {1, 3, 5, 11, 21, 13, 73, 227, 211, 939, 885, 2091, 1123, 14809, 15705, 56675, 58087, 1451}}, +{20582, 18, 120677, {1, 3, 7, 1, 15, 15, 101, 235, 287, 675, 1741, 3885, 6211, 14817, 10235, 29289, 60401, 27639}}, +{20583, 18, 120718, {1, 3, 5, 13, 13, 7, 117, 31, 143, 505, 1823, 2841, 2133, 7305, 14093, 14229, 85179, 136793}}, +{20584, 18, 120725, {1, 1, 3, 15, 27, 15, 67, 237, 315, 793, 207, 3781, 5201, 13191, 9601, 44041, 116097, 178543}}, +{20585, 18, 120730, {1, 3, 1, 9, 9, 47, 53, 225, 109, 831, 1757, 349, 6353, 15417, 16395, 36295, 10901, 122349}}, +{20586, 18, 120756, {1, 1, 1, 1, 1, 17, 109, 13, 123, 537, 1859, 3717, 4441, 4271, 29017, 13601, 18533, 216695}}, +{20587, 18, 120759, {1, 3, 3, 13, 31, 23, 45, 233, 29, 295, 761, 757, 777, 3499, 26715, 24153, 113777, 256337}}, +{20588, 18, 120765, {1, 3, 5, 7, 23, 57, 37, 179, 511, 897, 2031, 1285, 3957, 15085, 19993, 28819, 39959, 187445}}, +{20589, 18, 120795, {1, 3, 1, 15, 25, 41, 121, 227, 433, 859, 357, 3107, 3241, 879, 10763, 59473, 73145, 258493}}, +{20590, 18, 120821, {1, 3, 3, 5, 13, 9, 85, 117, 347, 161, 995, 549, 5443, 9057, 28931, 57549, 27523, 54717}}, +{20591, 18, 120850, {1, 1, 5, 13, 13, 33, 97, 37, 55, 367, 403, 2361, 5717, 4433, 26921, 14227, 69445, 100337}}, +{20592, 18, 120868, {1, 3, 5, 7, 1, 41, 89, 165, 163, 1, 685, 3577, 1079, 1057, 125, 35853, 8387, 113035}}, +{20593, 18, 120880, {1, 3, 3, 13, 3, 59, 119, 51, 325, 205, 821, 1417, 2097, 13725, 31785, 53803, 15737, 2013}}, +{20594, 18, 120885, {1, 3, 7, 7, 1, 45, 95, 221, 249, 65, 1479, 2163, 5761, 15321, 8013, 25771, 110897, 214127}}, +{20595, 18, 120892, {1, 3, 3, 5, 25, 11, 27, 29, 95, 955, 1989, 3775, 609, 7073, 4571, 38857, 92205, 156209}}, +{20596, 18, 120897, {1, 3, 1, 13, 29, 57, 97, 47, 499, 641, 587, 2125, 2257, 13911, 13993, 1715, 46233, 181279}}, +{20597, 18, 120912, {1, 1, 7, 13, 7, 55, 69, 235, 379, 269, 1969, 2733, 3677, 1707, 26999, 64041, 98111, 138691}}, +{20598, 18, 120934, {1, 1, 3, 5, 27, 63, 65, 251, 413, 903, 1307, 2941, 5649, 11271, 1935, 49389, 37995, 218197}}, +{20599, 18, 120991, {1, 3, 3, 13, 7, 1, 45, 225, 13, 169, 581, 1657, 117, 10251, 23435, 40379, 127085, 88185}}, +{20600, 18, 121004, {1, 1, 7, 5, 21, 63, 69, 37, 459, 115, 1403, 1939, 6437, 13149, 3597, 50115, 129075, 260613}}, +{20601, 18, 121021, {1, 1, 3, 5, 29, 57, 15, 223, 131, 907, 1561, 1103, 4355, 2763, 6359, 55401, 1751, 53143}}, +{20602, 18, 121022, {1, 1, 7, 11, 15, 5, 17, 159, 505, 407, 1873, 2501, 2203, 12559, 5123, 53281, 29307, 16215}}, +{20603, 18, 121036, {1, 1, 1, 15, 9, 41, 77, 145, 325, 529, 1939, 3835, 3109, 12215, 18323, 2551, 89793, 94745}}, +{20604, 18, 121041, {1, 3, 1, 9, 21, 5, 7, 57, 99, 1005, 1211, 4063, 6851, 7653, 29283, 15463, 121289, 187055}}, +{20605, 18, 121069, {1, 1, 3, 3, 13, 11, 17, 125, 173, 283, 1419, 2533, 6875, 16031, 26633, 51027, 27343, 74257}}, +{20606, 18, 121078, {1, 1, 3, 11, 29, 49, 87, 19, 367, 941, 983, 1041, 8099, 8735, 30123, 62665, 87051, 98745}}, +{20607, 18, 121126, {1, 1, 1, 15, 25, 57, 97, 177, 467, 181, 923, 3833, 5405, 14335, 23495, 48323, 70331, 136825}}, +{20608, 18, 121135, {1, 1, 1, 13, 21, 17, 29, 237, 305, 117, 1077, 2999, 1879, 6875, 19321, 10999, 130513, 160883}}, +{20609, 18, 121138, {1, 3, 7, 15, 19, 47, 89, 153, 287, 7, 1429, 1507, 2853, 4197, 11195, 33891, 59063, 189601}}, +{20610, 18, 121162, {1, 1, 3, 15, 31, 5, 113, 71, 13, 925, 147, 451, 5701, 13671, 13943, 13799, 59627, 115715}}, +{20611, 18, 121176, {1, 1, 1, 5, 13, 25, 51, 11, 409, 393, 1479, 2583, 3101, 303, 17609, 10653, 69107, 150459}}, +{20612, 18, 121186, {1, 1, 5, 7, 21, 27, 107, 77, 61, 467, 1723, 1247, 287, 1039, 25347, 18111, 24837, 42903}}, +{20613, 18, 121209, {1, 3, 5, 5, 1, 29, 57, 177, 311, 9, 819, 3235, 3887, 9679, 11849, 31755, 68467, 135587}}, +{20614, 18, 121212, {1, 1, 5, 5, 29, 15, 13, 69, 163, 709, 1405, 3835, 777, 7567, 10153, 5043, 129465, 59113}}, +{20615, 18, 121221, {1, 1, 1, 13, 3, 47, 97, 101, 179, 53, 1919, 17, 3597, 11769, 17971, 39257, 76167, 255653}}, +{20616, 18, 121225, {1, 1, 7, 5, 1, 45, 121, 223, 299, 271, 1857, 1955, 5509, 1245, 9519, 60547, 78497, 191251}}, +{20617, 18, 121228, {1, 1, 1, 11, 5, 57, 87, 113, 59, 547, 1591, 1905, 475, 4687, 27591, 43807, 9617, 70769}}, +{20618, 18, 121239, {1, 1, 7, 1, 1, 35, 35, 11, 107, 401, 827, 2271, 2131, 12751, 25771, 51311, 46897, 198655}}, +{20619, 18, 121245, {1, 3, 3, 3, 15, 29, 91, 147, 9, 611, 1739, 3211, 3883, 14205, 24073, 37445, 54451, 208123}}, +{20620, 18, 121264, {1, 3, 7, 1, 25, 53, 33, 161, 365, 651, 1263, 1623, 1767, 3789, 18013, 52133, 60119, 100859}}, +{20621, 18, 121270, {1, 3, 5, 9, 15, 9, 97, 67, 379, 981, 1323, 1095, 3701, 3257, 13647, 12511, 53375, 156689}}, +{20622, 18, 121299, {1, 1, 3, 5, 9, 23, 97, 239, 171, 501, 1549, 1029, 8019, 5023, 9439, 14223, 54433, 152855}}, +{20623, 18, 121306, {1, 1, 7, 13, 17, 35, 111, 169, 81, 599, 1673, 3461, 7905, 7925, 16311, 20327, 57109, 158719}}, +{20624, 18, 121315, {1, 1, 3, 15, 7, 33, 23, 33, 273, 987, 1489, 363, 4017, 8919, 28839, 10143, 114179, 218155}}, +{20625, 18, 121317, {1, 3, 5, 13, 29, 5, 61, 133, 65, 933, 509, 551, 7365, 3703, 15003, 27849, 64211, 140383}}, +{20626, 18, 121321, {1, 1, 1, 13, 7, 25, 49, 1, 269, 601, 251, 33, 2443, 13725, 5805, 63347, 109489, 111491}}, +{20627, 18, 121324, {1, 1, 7, 9, 31, 23, 117, 71, 371, 733, 605, 4019, 4577, 3887, 31061, 24939, 57905, 148331}}, +{20628, 18, 121330, {1, 3, 5, 1, 3, 35, 35, 227, 355, 27, 1673, 2173, 5001, 14613, 6343, 40775, 72349, 101287}}, +{20629, 18, 121339, {1, 1, 7, 15, 29, 3, 43, 77, 43, 51, 1495, 2577, 2093, 7515, 20151, 44533, 32223, 6355}}, +{20630, 18, 121346, {1, 1, 5, 5, 11, 47, 91, 221, 35, 969, 343, 3287, 857, 4851, 12599, 939, 53615, 262125}}, +{20631, 18, 121370, {1, 1, 5, 7, 29, 11, 67, 155, 317, 629, 211, 583, 1061, 13243, 13999, 45405, 18187, 99021}}, +{20632, 18, 121372, {1, 3, 7, 13, 3, 39, 5, 207, 175, 515, 1181, 739, 379, 9919, 12079, 18903, 62475, 239383}}, +{20633, 18, 121393, {1, 1, 1, 15, 25, 15, 113, 215, 281, 861, 1055, 2577, 5545, 12365, 16097, 35775, 8331, 119353}}, +{20634, 18, 121396, {1, 1, 1, 1, 25, 55, 111, 185, 485, 361, 155, 4077, 5517, 16057, 19069, 40129, 38959, 211233}}, +{20635, 18, 121414, {1, 1, 3, 3, 13, 1, 93, 129, 243, 813, 115, 177, 53, 8251, 32351, 63847, 54537, 25527}}, +{20636, 18, 121442, {1, 3, 5, 11, 25, 47, 113, 69, 285, 451, 2011, 81, 6535, 3409, 8647, 56575, 975, 149571}}, +{20637, 18, 121475, {1, 1, 7, 7, 19, 1, 75, 123, 413, 697, 41, 3179, 4075, 15967, 2477, 17549, 54193, 258657}}, +{20638, 18, 121499, {1, 1, 5, 5, 11, 23, 19, 253, 303, 255, 901, 875, 1517, 6953, 25189, 26763, 28843, 167705}}, +{20639, 18, 121512, {1, 3, 7, 7, 17, 45, 31, 79, 279, 965, 1869, 1201, 1627, 14035, 11651, 45021, 76171, 49137}}, +{20640, 18, 121518, {1, 3, 1, 15, 9, 55, 83, 59, 437, 915, 1667, 89, 2797, 1841, 29261, 23497, 55785, 102265}}, +{20641, 18, 121588, {1, 1, 5, 5, 3, 59, 17, 131, 199, 541, 1647, 2175, 4449, 6081, 10609, 39467, 72945, 32423}}, +{20642, 18, 121597, {1, 3, 1, 7, 5, 7, 85, 11, 255, 397, 87, 1661, 6523, 5699, 29407, 28015, 50783, 246625}}, +{20643, 18, 121612, {1, 3, 3, 13, 5, 61, 123, 147, 295, 37, 301, 2549, 7615, 5725, 32477, 18121, 69353, 242579}}, +{20644, 18, 121629, {1, 3, 5, 7, 9, 45, 83, 211, 475, 281, 743, 3955, 7811, 6043, 30547, 5315, 53345, 25775}}, +{20645, 18, 121630, {1, 3, 3, 5, 7, 63, 125, 43, 131, 353, 345, 1689, 5483, 5467, 13445, 13041, 68381, 134567}}, +{20646, 18, 121634, {1, 3, 5, 11, 31, 9, 123, 53, 237, 911, 349, 3737, 1867, 7375, 3031, 4191, 8697, 182255}}, +{20647, 18, 121680, {1, 1, 3, 3, 11, 11, 89, 251, 69, 93, 1241, 1719, 2227, 1793, 21683, 58099, 110831, 24835}}, +{20648, 18, 121725, {1, 1, 5, 9, 3, 57, 3, 17, 11, 217, 923, 3623, 727, 1837, 21203, 63007, 33691, 216259}}, +{20649, 18, 121798, {1, 3, 3, 9, 21, 25, 83, 115, 325, 921, 811, 303, 3555, 10669, 5837, 45585, 61923, 159061}}, +{20650, 18, 121815, {1, 3, 3, 15, 17, 29, 77, 75, 509, 363, 199, 317, 7375, 11971, 15679, 17135, 101925, 103375}}, +{20651, 18, 121822, {1, 3, 5, 5, 29, 45, 85, 151, 73, 329, 911, 3055, 2381, 4717, 5133, 58987, 59885, 226689}}, +{20652, 18, 121837, {1, 3, 5, 1, 11, 59, 17, 83, 385, 867, 215, 2275, 7247, 10613, 6493, 63843, 74483, 134271}}, +{20653, 18, 121840, {1, 1, 7, 13, 29, 25, 77, 61, 281, 439, 353, 2213, 697, 14741, 1597, 7515, 7703, 149123}}, +{20654, 18, 121869, {1, 3, 7, 7, 7, 53, 77, 21, 483, 793, 969, 123, 3581, 12489, 22943, 54573, 25785, 178419}}, +{20655, 18, 121878, {1, 3, 5, 3, 17, 59, 75, 55, 125, 569, 1625, 77, 4593, 8493, 5259, 54537, 100479, 107509}}, +{20656, 18, 121897, {1, 1, 1, 15, 5, 7, 11, 169, 349, 133, 1113, 2877, 6109, 16275, 9755, 1385, 55005, 36095}}, +{20657, 18, 121920, {1, 1, 7, 7, 21, 25, 41, 161, 11, 321, 343, 705, 4601, 12867, 21997, 25283, 78467, 159089}}, +{20658, 18, 121929, {1, 3, 7, 1, 15, 3, 71, 227, 427, 883, 1021, 1405, 7791, 12669, 9159, 30931, 105993, 40917}}, +{20659, 18, 121944, {1, 1, 5, 5, 25, 41, 93, 57, 125, 915, 701, 2589, 7147, 15369, 28307, 54635, 13253, 97177}}, +{20660, 18, 121999, {1, 3, 1, 13, 11, 63, 103, 241, 317, 927, 965, 3179, 5213, 13849, 11509, 52665, 1637, 235647}}, +{20661, 18, 122008, {1, 3, 5, 3, 31, 31, 111, 9, 339, 1017, 1715, 101, 6849, 14329, 31607, 40741, 73067, 119001}}, +{20662, 18, 122056, {1, 3, 1, 13, 3, 55, 53, 15, 185, 717, 1447, 3029, 4899, 14217, 19949, 32817, 24829, 206829}}, +{20663, 18, 122062, {1, 3, 7, 9, 21, 11, 33, 213, 5, 769, 1807, 2179, 63, 5167, 23235, 25495, 113299, 129419}}, +{20664, 18, 122067, {1, 3, 7, 11, 11, 33, 23, 125, 21, 609, 595, 1329, 6175, 15837, 3889, 57797, 81453, 211413}}, +{20665, 18, 122083, {1, 1, 5, 11, 31, 7, 13, 73, 143, 559, 1541, 275, 3349, 2987, 21797, 32921, 125395, 247667}}, +{20666, 18, 122095, {1, 1, 3, 11, 19, 1, 23, 167, 337, 75, 1597, 3591, 2705, 7323, 5957, 7317, 58945, 44625}}, +{20667, 18, 122110, {1, 1, 5, 11, 27, 19, 63, 231, 353, 645, 531, 3861, 1681, 6901, 16217, 20639, 70077, 220233}}, +{20668, 18, 122118, {1, 1, 5, 15, 31, 41, 19, 253, 147, 365, 509, 1199, 6699, 14633, 1339, 48203, 58707, 83315}}, +{20669, 18, 122127, {1, 1, 5, 7, 19, 47, 47, 17, 267, 139, 549, 803, 4625, 6851, 32141, 12891, 43785, 211361}}, +{20670, 18, 122189, {1, 3, 1, 13, 19, 35, 13, 45, 167, 627, 1449, 3041, 5043, 9279, 15889, 41675, 25769, 13835}}, +{20671, 18, 122207, {1, 3, 7, 7, 19, 47, 13, 117, 403, 79, 1623, 3741, 3255, 2301, 25, 2311, 5237, 150879}}, +{20672, 18, 122226, {1, 1, 1, 15, 29, 43, 75, 21, 237, 809, 129, 2637, 181, 15921, 30709, 61281, 82405, 232885}}, +{20673, 18, 122253, {1, 1, 3, 15, 15, 15, 55, 217, 243, 579, 945, 3993, 1875, 2425, 25045, 36729, 42935, 213703}}, +{20674, 18, 122301, {1, 3, 3, 1, 5, 59, 115, 71, 483, 327, 701, 2893, 1815, 4611, 3843, 5893, 126479, 167807}}, +{20675, 18, 122324, {1, 3, 1, 7, 17, 59, 115, 191, 3, 615, 215, 2121, 5085, 15233, 16661, 6215, 31061, 192847}}, +{20676, 18, 122337, {1, 3, 1, 1, 21, 25, 41, 195, 151, 905, 1587, 439, 3317, 2275, 4743, 33505, 1185, 254873}}, +{20677, 18, 122362, {1, 1, 3, 9, 11, 49, 37, 117, 419, 1007, 789, 1323, 345, 2047, 20697, 57063, 69167, 219393}}, +{20678, 18, 122368, {1, 3, 1, 1, 25, 49, 81, 79, 117, 1015, 1777, 2427, 527, 10139, 16261, 42587, 33933, 19749}}, +{20679, 18, 122371, {1, 1, 5, 15, 31, 43, 19, 17, 97, 591, 891, 177, 7835, 3979, 15473, 2173, 65555, 182773}}, +{20680, 18, 122378, {1, 1, 3, 15, 13, 53, 31, 179, 247, 635, 683, 423, 2981, 14401, 26385, 10935, 68497, 181703}}, +{20681, 18, 122404, {1, 3, 3, 9, 25, 55, 43, 29, 487, 969, 989, 3561, 6425, 11619, 5773, 56515, 17461, 151239}}, +{20682, 18, 122443, {1, 1, 5, 13, 3, 31, 73, 51, 213, 215, 297, 783, 697, 14197, 7277, 60697, 985, 189995}}, +{20683, 18, 122451, {1, 3, 3, 5, 9, 47, 69, 27, 15, 407, 1029, 2541, 183, 4413, 5143, 33903, 49509, 49007}}, +{20684, 18, 122457, {1, 1, 1, 3, 5, 3, 9, 165, 215, 577, 1657, 363, 737, 5483, 5955, 34533, 45861, 104645}}, +{20685, 18, 122458, {1, 1, 5, 7, 31, 27, 37, 215, 125, 915, 1297, 3095, 1529, 12737, 25675, 29355, 83939, 106765}}, +{20686, 18, 122479, {1, 1, 3, 3, 1, 49, 29, 115, 395, 647, 147, 3905, 1025, 8873, 10587, 25471, 72089, 171467}}, +{20687, 18, 122484, {1, 3, 7, 1, 21, 55, 57, 233, 487, 883, 439, 929, 1405, 13709, 2389, 20205, 17579, 9129}}, +{20688, 18, 122521, {1, 3, 5, 5, 23, 51, 55, 45, 307, 855, 933, 1443, 4757, 8719, 28401, 35189, 105329, 9211}}, +{20689, 18, 122540, {1, 3, 7, 11, 29, 17, 17, 147, 221, 997, 1433, 59, 8027, 231, 30335, 2153, 21393, 116661}}, +{20690, 18, 122545, {1, 1, 7, 3, 5, 43, 47, 155, 357, 915, 1923, 3315, 4107, 9785, 4847, 57683, 87569, 179583}}, +{20691, 18, 122552, {1, 1, 7, 7, 27, 5, 37, 95, 265, 113, 143, 3755, 5793, 5601, 16621, 54777, 15989, 158933}}, +{20692, 18, 122560, {1, 3, 1, 1, 13, 31, 113, 255, 367, 559, 1777, 4065, 8061, 15785, 10345, 54833, 95277, 159347}}, +{20693, 18, 122575, {1, 1, 1, 15, 3, 43, 85, 251, 193, 19, 1685, 271, 1779, 11901, 18983, 65361, 128217, 248051}}, +{20694, 18, 122578, {1, 3, 5, 7, 29, 21, 5, 47, 263, 913, 83, 3233, 113, 8341, 14473, 37405, 2363, 155931}}, +{20695, 18, 122605, {1, 1, 7, 15, 7, 25, 41, 39, 315, 323, 827, 1277, 1211, 4465, 21161, 36865, 6689, 139147}}, +{20696, 18, 122661, {1, 1, 1, 9, 11, 45, 81, 235, 31, 247, 77, 1877, 7119, 16007, 2225, 65, 85537, 99251}}, +{20697, 18, 122673, {1, 1, 3, 11, 19, 5, 49, 179, 345, 961, 349, 2099, 2317, 12771, 27169, 59389, 116071, 68333}}, +{20698, 18, 122722, {1, 3, 3, 5, 15, 53, 47, 177, 103, 941, 87, 2813, 7729, 8003, 7717, 40095, 74569, 106617}}, +{20699, 18, 122728, {1, 1, 7, 7, 31, 23, 105, 205, 325, 855, 1529, 3601, 7151, 15827, 16241, 18221, 55771, 139225}}, +{20700, 18, 122739, {1, 3, 5, 13, 13, 5, 95, 167, 25, 779, 1147, 221, 5055, 10943, 28077, 15131, 89501, 137407}}, +{20701, 18, 122751, {1, 3, 7, 13, 31, 3, 105, 163, 41, 823, 1493, 2985, 5589, 3543, 24683, 34469, 40595, 200875}}, +{20702, 18, 122762, {1, 3, 5, 3, 27, 35, 105, 163, 477, 667, 45, 319, 3201, 11535, 19349, 55253, 60275, 209597}}, +{20703, 18, 122769, {1, 3, 1, 11, 5, 13, 25, 225, 169, 925, 1617, 537, 891, 5583, 7181, 39953, 97537, 104019}}, +{20704, 18, 122772, {1, 3, 5, 9, 13, 1, 69, 147, 465, 259, 1219, 2407, 4015, 4883, 4333, 40441, 31289, 52989}}, +{20705, 18, 122782, {1, 3, 5, 5, 17, 29, 105, 233, 307, 807, 1535, 251, 135, 925, 6865, 59739, 112757, 208275}}, +{20706, 18, 122798, {1, 1, 1, 7, 9, 21, 49, 247, 33, 127, 1277, 1745, 139, 12165, 23517, 50235, 101003, 109031}}, +{20707, 18, 122810, {1, 3, 5, 9, 19, 7, 9, 139, 511, 901, 551, 2717, 6091, 3213, 819, 51381, 108333, 119681}}, +{20708, 18, 122812, {1, 1, 1, 3, 19, 17, 73, 19, 313, 589, 1965, 1745, 921, 4237, 12527, 10735, 110139, 171513}}, +{20709, 18, 122818, {1, 1, 5, 15, 25, 29, 15, 217, 87, 793, 419, 915, 1359, 10507, 25343, 62977, 100913, 110041}}, +{20710, 18, 122829, {1, 3, 7, 15, 15, 15, 91, 243, 441, 437, 1759, 2659, 2319, 7783, 16857, 19051, 15463, 253115}}, +{20711, 18, 122851, {1, 1, 5, 13, 15, 5, 7, 165, 355, 559, 217, 235, 3565, 12047, 2387, 62285, 73363, 238551}}, +{20712, 18, 122857, {1, 3, 7, 11, 5, 5, 69, 205, 179, 815, 335, 979, 2129, 6221, 31987, 13623, 23103, 24373}}, +{20713, 18, 122868, {1, 1, 7, 11, 31, 51, 55, 93, 195, 219, 825, 2919, 4495, 5927, 11813, 16415, 121595, 188613}}, +{20714, 18, 122893, {1, 1, 3, 1, 3, 11, 73, 45, 141, 219, 337, 2569, 6549, 3699, 2417, 2945, 19389, 82561}}, +{20715, 18, 122894, {1, 3, 1, 13, 5, 47, 47, 81, 11, 57, 1965, 2173, 3209, 10617, 19887, 5571, 61403, 37401}}, +{20716, 18, 122902, {1, 3, 3, 7, 3, 5, 99, 253, 287, 655, 813, 3365, 2387, 8951, 1561, 37637, 97625, 148699}}, +{20717, 18, 122921, {1, 1, 3, 5, 9, 31, 49, 7, 55, 607, 1489, 3229, 5871, 1271, 22751, 32309, 16125, 93409}}, +{20718, 18, 122959, {1, 3, 1, 5, 19, 35, 29, 233, 407, 297, 1465, 3089, 7535, 7221, 24469, 42653, 65719, 196771}}, +{20719, 18, 122984, {1, 1, 7, 13, 17, 19, 37, 45, 211, 545, 963, 79, 13, 8319, 8045, 24975, 122749, 25845}}, +{20720, 18, 123001, {1, 3, 5, 3, 23, 23, 53, 101, 363, 49, 1351, 3419, 1603, 10795, 5289, 63695, 113911, 228301}}, +{20721, 18, 123038, {1, 3, 7, 9, 15, 59, 125, 59, 11, 397, 693, 397, 3829, 14349, 13973, 54739, 22093, 216009}}, +{20722, 18, 123076, {1, 1, 1, 13, 5, 63, 21, 23, 421, 35, 589, 803, 6193, 11375, 9501, 34441, 68421, 120109}}, +{20723, 18, 123100, {1, 3, 3, 7, 23, 25, 79, 203, 177, 173, 175, 809, 4331, 6953, 4999, 34345, 94481, 88683}}, +{20724, 18, 123107, {1, 3, 3, 3, 1, 51, 109, 195, 83, 747, 63, 325, 927, 1757, 32055, 37185, 22697, 41509}}, +{20725, 18, 123122, {1, 3, 5, 13, 1, 63, 45, 73, 121, 445, 1935, 3373, 563, 7503, 17941, 60313, 42219, 220917}}, +{20726, 18, 123139, {1, 3, 5, 13, 27, 31, 7, 83, 109, 387, 447, 1691, 1301, 7449, 8075, 30713, 87207, 84855}}, +{20727, 18, 123175, {1, 3, 1, 5, 25, 51, 83, 11, 261, 977, 1415, 2973, 1789, 12641, 16279, 4225, 44237, 173561}}, +{20728, 18, 123190, {1, 1, 5, 15, 17, 47, 105, 199, 83, 705, 1215, 2759, 7509, 10407, 4005, 4575, 65961, 209933}}, +{20729, 18, 123201, {1, 3, 1, 13, 27, 3, 5, 199, 405, 515, 291, 3399, 1497, 14755, 30229, 35075, 111585, 16633}}, +{20730, 18, 123219, {1, 1, 1, 13, 17, 53, 93, 161, 447, 903, 947, 1871, 3597, 10575, 18389, 48551, 65229, 32591}}, +{20731, 18, 123232, {1, 3, 5, 11, 9, 7, 53, 155, 299, 523, 1653, 3517, 2725, 9485, 27099, 47895, 30169, 260463}}, +{20732, 18, 123255, {1, 1, 3, 13, 11, 45, 31, 183, 445, 21, 313, 2597, 195, 16053, 7323, 52951, 25919, 9323}}, +{20733, 18, 123285, {1, 1, 1, 15, 1, 35, 15, 115, 53, 561, 1141, 3261, 83, 2547, 8925, 43455, 112755, 94157}}, +{20734, 18, 123328, {1, 1, 3, 5, 27, 25, 81, 51, 209, 87, 379, 3167, 4953, 13885, 20159, 103, 115363, 123585}}, +{20735, 18, 123385, {1, 3, 5, 1, 25, 29, 107, 225, 77, 435, 2009, 4069, 3703, 8855, 14101, 61683, 16993, 110823}}, +{20736, 18, 123397, {1, 3, 7, 3, 31, 25, 51, 117, 397, 271, 89, 3571, 2357, 4923, 16303, 2357, 107775, 73809}}, +{20737, 18, 123404, {1, 1, 3, 1, 29, 21, 33, 67, 363, 753, 915, 3715, 2013, 8439, 5779, 267, 32687, 104283}}, +{20738, 18, 123419, {1, 3, 1, 11, 11, 7, 31, 43, 339, 917, 2005, 759, 4285, 1933, 4341, 19111, 130651, 122853}}, +{20739, 18, 123435, {1, 1, 5, 1, 17, 63, 85, 63, 387, 127, 1313, 619, 6525, 9003, 10915, 64507, 13175, 45219}}, +{20740, 18, 123437, {1, 3, 7, 9, 25, 15, 43, 13, 411, 391, 571, 527, 8175, 10849, 20093, 2987, 29869, 77207}}, +{20741, 18, 123443, {1, 1, 5, 3, 29, 53, 105, 57, 91, 977, 1103, 2977, 5617, 7203, 26717, 28463, 55909, 59943}}, +{20742, 18, 123500, {1, 3, 1, 7, 1, 47, 111, 215, 189, 377, 11, 871, 2267, 5705, 8165, 38895, 71025, 10921}}, +{20743, 18, 123506, {1, 1, 7, 9, 29, 55, 1, 103, 505, 697, 317, 3209, 3643, 13689, 8499, 14671, 67937, 100467}}, +{20744, 18, 123511, {1, 3, 1, 5, 25, 15, 99, 199, 117, 957, 1421, 1719, 5185, 15247, 28615, 2657, 46867, 190135}}, +{20745, 18, 123512, {1, 1, 7, 9, 27, 55, 81, 47, 15, 497, 537, 857, 2905, 1909, 3341, 32625, 123189, 21875}}, +{20746, 18, 123518, {1, 3, 1, 3, 19, 51, 97, 143, 305, 1021, 543, 829, 7593, 8101, 6337, 4869, 19177, 38981}}, +{20747, 18, 123522, {1, 3, 3, 15, 9, 37, 51, 193, 295, 731, 809, 4065, 3377, 15303, 12505, 11327, 76191, 139899}}, +{20748, 18, 123545, {1, 1, 5, 1, 3, 19, 5, 223, 379, 7, 755, 1127, 505, 9429, 27409, 50817, 97599, 179019}}, +{20749, 18, 123572, {1, 3, 5, 3, 5, 11, 83, 119, 3, 311, 405, 2401, 1821, 1381, 4567, 44079, 61903, 183583}}, +{20750, 18, 123587, {1, 3, 7, 9, 7, 11, 107, 95, 271, 537, 335, 3079, 6695, 1163, 32055, 44985, 29075, 94235}}, +{20751, 18, 123594, {1, 3, 7, 7, 7, 57, 59, 85, 199, 563, 1835, 351, 7675, 2601, 3717, 57975, 92529, 101511}}, +{20752, 18, 123607, {1, 1, 1, 5, 17, 5, 97, 43, 101, 141, 1511, 199, 7157, 3169, 24815, 55653, 104195, 37951}}, +{20753, 18, 123608, {1, 1, 1, 11, 23, 29, 41, 47, 447, 583, 773, 859, 1657, 8707, 16709, 53477, 42037, 186809}}, +{20754, 18, 123630, {1, 1, 1, 13, 13, 5, 85, 9, 213, 511, 1003, 811, 2271, 14715, 21423, 48127, 50613, 214031}}, +{20755, 18, 123635, {1, 1, 3, 5, 7, 31, 87, 101, 297, 853, 1599, 1521, 4965, 9655, 23543, 62277, 11231, 49931}}, +{20756, 18, 123659, {1, 1, 7, 7, 19, 31, 9, 165, 207, 919, 739, 3849, 2121, 867, 3233, 40867, 75721, 5327}}, +{20757, 18, 123692, {1, 3, 7, 1, 17, 3, 27, 13, 431, 283, 465, 1427, 1937, 15601, 21793, 9315, 54285, 196453}}, +{20758, 18, 123695, {1, 1, 7, 3, 17, 39, 65, 137, 511, 19, 1357, 3373, 5227, 2485, 1151, 25061, 117507, 119219}}, +{20759, 18, 123700, {1, 3, 3, 9, 9, 23, 13, 235, 505, 625, 115, 3859, 6943, 14719, 6363, 14957, 28241, 187989}}, +{20760, 18, 123730, {1, 3, 7, 13, 11, 31, 23, 39, 463, 441, 1145, 417, 4177, 1655, 26491, 16895, 26263, 198157}}, +{20761, 18, 123748, {1, 3, 3, 7, 25, 55, 121, 157, 131, 537, 1891, 2367, 1717, 2331, 20251, 8679, 62657, 121957}}, +{20762, 18, 123751, {1, 1, 1, 11, 7, 43, 59, 101, 333, 961, 569, 1603, 3009, 6539, 9627, 5759, 44401, 127613}}, +{20763, 18, 123770, {1, 3, 3, 3, 1, 27, 15, 135, 235, 215, 627, 2427, 2647, 3201, 22873, 64445, 32635, 16587}}, +{20764, 18, 123793, {1, 3, 7, 7, 5, 49, 63, 103, 467, 897, 117, 1149, 6045, 5003, 5005, 6183, 90815, 190909}}, +{20765, 18, 123800, {1, 1, 3, 3, 31, 43, 45, 227, 363, 409, 1097, 3155, 1519, 14461, 29377, 19577, 52595, 94041}}, +{20766, 18, 123803, {1, 3, 1, 1, 3, 25, 83, 243, 57, 243, 389, 1427, 5197, 13125, 18571, 17845, 74961, 125569}}, +{20767, 18, 123851, {1, 3, 5, 5, 1, 39, 11, 175, 97, 1001, 143, 3653, 5887, 5845, 5691, 5433, 62629, 176261}}, +{20768, 18, 123859, {1, 1, 1, 13, 11, 41, 41, 155, 17, 823, 1507, 733, 5663, 13657, 24133, 9971, 27179, 108075}}, +{20769, 18, 123866, {1, 1, 7, 9, 19, 9, 103, 29, 427, 363, 931, 3959, 1629, 5127, 14807, 61937, 127175, 237233}}, +{20770, 18, 123868, {1, 1, 1, 5, 29, 53, 51, 229, 123, 1001, 697, 411, 4669, 5051, 18447, 55437, 129269, 72613}}, +{20771, 18, 123877, {1, 3, 7, 3, 19, 53, 111, 131, 255, 547, 653, 2839, 1447, 14397, 5707, 23773, 127897, 135177}}, +{20772, 18, 123884, {1, 3, 3, 5, 21, 37, 53, 219, 359, 341, 489, 2477, 3383, 6931, 7753, 2619, 114267, 63271}}, +{20773, 18, 123909, {1, 1, 3, 15, 15, 15, 95, 171, 301, 563, 603, 593, 4037, 7305, 10849, 11753, 103087, 74887}}, +{20774, 18, 123910, {1, 1, 5, 3, 11, 51, 105, 35, 155, 643, 569, 1697, 1679, 7547, 19289, 7065, 57359, 142855}}, +{20775, 18, 123919, {1, 1, 7, 15, 23, 55, 17, 67, 375, 559, 355, 165, 93, 973, 22831, 48027, 98435, 59945}}, +{20776, 18, 123927, {1, 3, 7, 3, 5, 43, 9, 253, 111, 819, 45, 3461, 4821, 14735, 14469, 29793, 30681, 26359}}, +{20777, 18, 123937, {1, 3, 3, 5, 15, 1, 39, 233, 63, 287, 131, 3453, 427, 4929, 30085, 18583, 50119, 262101}}, +{20778, 18, 123950, {1, 3, 7, 9, 31, 7, 127, 157, 287, 57, 1091, 1989, 5045, 13071, 27705, 58125, 85317, 66649}}, +{20779, 18, 123957, {1, 1, 1, 15, 17, 29, 25, 223, 311, 489, 1901, 3197, 1813, 10097, 31915, 54871, 32289, 227001}}, +{20780, 18, 123979, {1, 3, 7, 5, 31, 35, 69, 87, 131, 963, 1125, 1109, 8037, 3257, 27655, 50999, 3715, 57851}}, +{20781, 18, 123996, {1, 1, 5, 5, 27, 7, 119, 29, 425, 721, 541, 3069, 3349, 13623, 12293, 51395, 14033, 61545}}, +{20782, 18, 124040, {1, 3, 7, 3, 17, 49, 103, 115, 387, 729, 1389, 2257, 3273, 3375, 23143, 2835, 28071, 79533}}, +{20783, 18, 124054, {1, 1, 3, 7, 9, 19, 55, 159, 261, 467, 17, 2595, 3947, 7045, 193, 23629, 89067, 81197}}, +{20784, 18, 124063, {1, 1, 1, 15, 13, 39, 103, 195, 251, 769, 1003, 2707, 3263, 8451, 8007, 53789, 112653, 258717}}, +{20785, 18, 124067, {1, 3, 5, 1, 3, 21, 29, 217, 125, 779, 1597, 513, 2677, 3979, 31903, 64813, 69963, 92887}}, +{20786, 18, 124088, {1, 1, 3, 11, 11, 59, 81, 237, 447, 703, 41, 3369, 3547, 14935, 31693, 52005, 74149, 131039}}, +{20787, 18, 124101, {1, 1, 3, 1, 23, 1, 33, 93, 275, 847, 921, 2745, 533, 8975, 30529, 46809, 98975, 75541}}, +{20788, 18, 124154, {1, 1, 7, 7, 15, 1, 3, 213, 71, 1009, 1951, 3015, 713, 9365, 21949, 60983, 117633, 225387}}, +{20789, 18, 124162, {1, 1, 1, 11, 31, 27, 59, 179, 231, 635, 1555, 2765, 31, 15065, 22719, 59251, 84733, 96769}}, +{20790, 18, 124167, {1, 3, 7, 3, 19, 5, 35, 207, 317, 735, 943, 3987, 4021, 11229, 13015, 713, 125167, 55887}}, +{20791, 18, 124176, {1, 1, 3, 1, 27, 49, 81, 17, 253, 633, 43, 2953, 3151, 8429, 30625, 28551, 126683, 175087}}, +{20792, 18, 124195, {1, 3, 3, 3, 9, 53, 111, 245, 57, 557, 945, 2957, 7669, 12537, 17291, 9713, 87727, 44739}}, +{20793, 18, 124230, {1, 3, 1, 1, 5, 39, 77, 127, 87, 687, 1485, 1555, 2567, 13551, 17075, 24003, 47627, 129813}}, +{20794, 18, 124267, {1, 3, 5, 9, 25, 35, 87, 233, 439, 563, 1719, 419, 4459, 4285, 25157, 943, 111543, 232107}}, +{20795, 18, 124346, {1, 3, 5, 11, 1, 13, 97, 153, 459, 551, 73, 2087, 3985, 4661, 15603, 22211, 123163, 187233}}, +{20796, 18, 124389, {1, 1, 7, 13, 17, 59, 5, 219, 353, 441, 387, 441, 3009, 485, 20081, 38023, 50659, 159243}}, +{20797, 18, 124418, {1, 3, 1, 7, 21, 31, 117, 49, 227, 677, 417, 1153, 1611, 1669, 25161, 52223, 15109, 114759}}, +{20798, 18, 124420, {1, 1, 7, 9, 19, 13, 111, 7, 1, 701, 731, 2075, 685, 15679, 19149, 44315, 41719, 243975}}, +{20799, 18, 124454, {1, 3, 3, 7, 15, 63, 59, 105, 327, 39, 1497, 2407, 2865, 7065, 9957, 20031, 45359, 73657}}, +{20800, 18, 124490, {1, 3, 1, 13, 7, 3, 55, 221, 443, 953, 15, 2455, 4681, 16247, 18179, 44731, 41323, 172621}}, +{20801, 18, 124503, {1, 1, 3, 9, 1, 27, 65, 167, 115, 137, 819, 2129, 3393, 5901, 11735, 62753, 14941, 21425}}, +{20802, 18, 124519, {1, 3, 7, 11, 7, 9, 41, 175, 237, 481, 59, 265, 2135, 9419, 3937, 55959, 48343, 172549}}, +{20803, 18, 124533, {1, 1, 1, 13, 23, 33, 105, 87, 461, 297, 1345, 3715, 7715, 16369, 19017, 15141, 10873, 109641}}, +{20804, 18, 124544, {1, 3, 5, 1, 11, 1, 13, 41, 447, 511, 447, 2295, 2401, 14171, 16269, 50453, 40361, 205857}}, +{20805, 18, 124589, {1, 1, 3, 3, 27, 7, 35, 193, 113, 341, 335, 2113, 343, 4575, 20863, 40383, 86787, 142603}}, +{20806, 18, 124616, {1, 1, 7, 11, 17, 25, 51, 89, 341, 237, 1233, 1505, 7401, 6887, 26897, 20127, 51077, 107559}}, +{20807, 18, 124630, {1, 1, 1, 15, 9, 59, 29, 115, 339, 785, 201, 947, 1501, 6883, 169, 44059, 17527, 197623}}, +{20808, 18, 124636, {1, 3, 7, 3, 17, 59, 15, 5, 379, 347, 821, 4047, 3565, 13689, 23275, 27901, 121401, 43077}}, +{20809, 18, 124645, {1, 1, 1, 7, 15, 11, 35, 29, 59, 99, 181, 3035, 3239, 1553, 32319, 64195, 115247, 149211}}, +{20810, 18, 124652, {1, 1, 5, 3, 31, 49, 87, 177, 231, 167, 373, 1125, 5919, 4805, 31983, 42873, 30169, 91853}}, +{20811, 18, 124663, {1, 1, 5, 15, 7, 63, 37, 15, 459, 449, 1835, 1769, 2527, 2577, 4251, 62459, 76699, 81721}}, +{20812, 18, 124667, {1, 1, 1, 3, 21, 15, 19, 183, 423, 827, 341, 2101, 3797, 7103, 30845, 24511, 115337, 117019}}, +{20813, 18, 124690, {1, 3, 5, 5, 19, 1, 97, 13, 491, 51, 445, 1987, 7481, 2613, 23141, 36603, 26917, 177397}}, +{20814, 18, 124755, {1, 1, 1, 5, 15, 43, 21, 167, 259, 989, 1937, 1519, 2201, 13973, 18031, 31583, 57557, 252737}}, +{20815, 18, 124757, {1, 3, 3, 7, 31, 11, 89, 53, 279, 83, 1247, 1221, 5499, 1199, 361, 22269, 88633, 134975}}, +{20816, 18, 124819, {1, 1, 3, 5, 9, 5, 113, 41, 143, 655, 1147, 2043, 4229, 10523, 1453, 1735, 76259, 30607}}, +{20817, 18, 124862, {1, 1, 1, 11, 5, 7, 9, 155, 221, 619, 813, 3111, 6039, 10789, 10905, 33285, 62841, 229217}}, +{20818, 18, 124864, {1, 3, 5, 9, 19, 19, 123, 65, 419, 597, 87, 3843, 4857, 15903, 23655, 13023, 8389, 230803}}, +{20819, 18, 124874, {1, 3, 3, 15, 9, 19, 51, 223, 197, 759, 139, 59, 6547, 1043, 5077, 55267, 23681, 17099}}, +{20820, 18, 124882, {1, 1, 3, 3, 15, 43, 63, 85, 227, 961, 1043, 1069, 6557, 7499, 31639, 4345, 26991, 132783}}, +{20821, 18, 124903, {1, 3, 1, 1, 25, 33, 59, 219, 435, 105, 1001, 323, 2729, 12517, 16607, 57533, 101167, 53829}}, +{20822, 18, 124915, {1, 3, 7, 7, 9, 55, 3, 247, 303, 453, 861, 817, 705, 14337, 15965, 28867, 126763, 204005}}, +{20823, 18, 124938, {1, 1, 3, 7, 1, 39, 15, 39, 359, 313, 1753, 2835, 387, 16223, 10945, 19481, 19995, 29989}}, +{20824, 18, 124945, {1, 1, 1, 5, 3, 31, 103, 123, 493, 1023, 119, 2175, 2273, 11637, 21605, 23349, 100759, 41227}}, +{20825, 18, 124973, {1, 3, 7, 13, 5, 13, 17, 7, 341, 945, 621, 1421, 3893, 5825, 26777, 35497, 13791, 25415}}, +{20826, 18, 124986, {1, 1, 5, 1, 19, 27, 39, 7, 177, 749, 1217, 2133, 6913, 13489, 23713, 1085, 31529, 179741}}, +{20827, 18, 124991, {1, 3, 3, 3, 15, 21, 5, 145, 281, 131, 1347, 19, 4917, 8655, 2515, 36927, 56551, 202039}}, +{20828, 18, 125011, {1, 1, 3, 7, 27, 31, 33, 255, 511, 195, 1493, 2221, 2157, 9303, 3957, 14163, 70435, 215763}}, +{20829, 18, 125014, {1, 3, 3, 15, 31, 41, 33, 37, 239, 865, 375, 2217, 809, 11961, 29393, 52145, 76223, 202623}}, +{20830, 18, 125082, {1, 3, 5, 11, 5, 57, 73, 193, 341, 843, 1817, 231, 65, 5941, 29693, 31751, 57081, 180977}}, +{20831, 18, 125105, {1, 3, 1, 9, 29, 57, 85, 107, 343, 891, 465, 2413, 1965, 7303, 7461, 25857, 110517, 16995}}, +{20832, 18, 125163, {1, 1, 7, 15, 7, 49, 121, 211, 253, 511, 1385, 1205, 33, 7713, 20059, 47353, 3267, 215759}}, +{20833, 18, 125165, {1, 1, 3, 9, 15, 63, 45, 155, 415, 589, 651, 3707, 5429, 4497, 13733, 21231, 18953, 28671}}, +{20834, 18, 125205, {1, 1, 5, 15, 7, 57, 31, 109, 427, 921, 629, 3439, 7615, 4535, 1507, 58931, 49597, 214397}}, +{20835, 18, 125219, {1, 3, 3, 5, 21, 35, 9, 241, 67, 767, 659, 1639, 7797, 5209, 14851, 55311, 108549, 175937}}, +{20836, 18, 125239, {1, 1, 7, 15, 21, 61, 13, 47, 267, 269, 1169, 257, 2481, 8345, 1061, 28119, 127197, 95379}}, +{20837, 18, 125240, {1, 1, 3, 7, 21, 35, 121, 223, 145, 665, 1389, 2105, 5499, 1377, 32417, 39027, 5335, 248315}}, +{20838, 18, 125257, {1, 3, 3, 9, 13, 33, 57, 225, 123, 703, 1049, 709, 7347, 11317, 12339, 23247, 62157, 85931}}, +{20839, 18, 125284, {1, 3, 3, 3, 5, 3, 105, 115, 13, 675, 757, 987, 6429, 13017, 21347, 38829, 82153, 220677}}, +{20840, 18, 125302, {1, 3, 1, 13, 5, 51, 75, 205, 7, 561, 207, 1133, 3303, 1889, 17093, 5933, 48109, 244387}}, +{20841, 18, 125327, {1, 3, 3, 7, 11, 11, 71, 243, 235, 941, 1875, 2387, 1139, 16275, 4537, 18791, 67927, 156759}}, +{20842, 18, 125336, {1, 3, 5, 5, 11, 35, 29, 5, 351, 223, 847, 1539, 4903, 7619, 24907, 37071, 57899, 32981}}, +{20843, 18, 125355, {1, 3, 1, 7, 23, 7, 119, 17, 123, 845, 1423, 2995, 3595, 13287, 31217, 33939, 6891, 156477}}, +{20844, 18, 125363, {1, 1, 1, 9, 11, 55, 121, 85, 175, 757, 1093, 513, 1117, 14049, 22377, 4623, 38511, 51391}}, +{20845, 18, 125365, {1, 1, 7, 1, 17, 1, 7, 185, 173, 841, 61, 2735, 6679, 7617, 17309, 58047, 11791, 228635}}, +{20846, 18, 125372, {1, 1, 5, 5, 1, 1, 61, 57, 37, 857, 531, 2655, 1907, 4245, 3047, 50489, 93447, 116637}}, +{20847, 18, 125378, {1, 3, 5, 7, 27, 47, 121, 95, 73, 63, 539, 137, 1765, 4659, 31141, 24495, 109541, 16421}}, +{20848, 18, 125383, {1, 3, 7, 13, 13, 25, 47, 45, 97, 243, 1509, 3539, 4791, 5627, 31981, 57663, 65359, 32183}}, +{20849, 18, 125387, {1, 1, 1, 7, 15, 57, 117, 249, 183, 849, 557, 833, 5751, 8035, 3371, 11389, 125581, 248799}}, +{20850, 18, 125390, {1, 3, 1, 15, 13, 31, 59, 243, 17, 473, 289, 1527, 649, 2807, 6183, 6173, 74381, 261673}}, +{20851, 18, 125414, {1, 1, 7, 7, 19, 17, 95, 81, 191, 487, 2023, 307, 3261, 13885, 9285, 30831, 114009, 26483}}, +{20852, 18, 125435, {1, 1, 3, 11, 17, 21, 85, 193, 477, 267, 393, 39, 5793, 8621, 25379, 9721, 13947, 44235}}, +{20853, 18, 125466, {1, 1, 7, 5, 27, 33, 93, 9, 471, 751, 1279, 695, 2625, 7061, 29577, 5403, 80705, 77895}}, +{20854, 18, 125481, {1, 1, 3, 11, 7, 25, 125, 9, 233, 935, 1897, 3685, 595, 15499, 43, 29251, 18029, 250231}}, +{20855, 18, 125522, {1, 1, 5, 1, 9, 55, 125, 179, 287, 371, 233, 149, 5639, 5737, 25251, 103, 117015, 35579}}, +{20856, 18, 125531, {1, 1, 5, 9, 17, 33, 69, 15, 209, 521, 1083, 2469, 679, 9307, 31539, 63889, 48825, 126327}}, +{20857, 18, 125544, {1, 3, 5, 15, 15, 41, 105, 121, 21, 935, 721, 445, 6759, 4227, 15227, 54933, 69589, 2689}}, +{20858, 18, 125564, {1, 1, 7, 15, 1, 15, 111, 141, 279, 1013, 825, 1069, 3793, 12929, 153, 11463, 87759, 179987}}, +{20859, 18, 125588, {1, 1, 1, 9, 15, 59, 109, 103, 223, 695, 1979, 1241, 2559, 8627, 10559, 53319, 94311, 245193}}, +{20860, 18, 125602, {1, 1, 5, 3, 1, 41, 51, 129, 297, 15, 637, 2489, 343, 13549, 7707, 36757, 55703, 161043}}, +{20861, 18, 125613, {1, 3, 5, 1, 13, 35, 119, 219, 319, 733, 789, 1343, 8035, 15049, 981, 14477, 13717, 177481}}, +{20862, 18, 125621, {1, 1, 1, 11, 5, 17, 3, 43, 129, 705, 1701, 3635, 1201, 12283, 27443, 54257, 102281, 211859}}, +{20863, 18, 125648, {1, 3, 1, 13, 7, 63, 9, 45, 283, 41, 801, 131, 2797, 13329, 19011, 21055, 122965, 7961}}, +{20864, 18, 125651, {1, 3, 3, 5, 9, 27, 99, 129, 499, 523, 1939, 3661, 455, 12601, 11723, 3727, 32671, 78251}}, +{20865, 18, 125681, {1, 3, 7, 5, 9, 57, 63, 47, 49, 745, 945, 2927, 6659, 1023, 9991, 55379, 105295, 259901}}, +{20866, 18, 125719, {1, 1, 3, 3, 3, 47, 15, 237, 193, 409, 1165, 3581, 719, 3049, 14679, 31559, 7825, 96083}}, +{20867, 18, 125773, {1, 1, 7, 11, 9, 55, 29, 123, 163, 415, 2013, 97, 1471, 1409, 28867, 50405, 99417, 57113}}, +{20868, 18, 125774, {1, 1, 7, 15, 5, 17, 57, 123, 25, 119, 1699, 1289, 3139, 7177, 13465, 33583, 34517, 182669}}, +{20869, 18, 125779, {1, 1, 3, 1, 15, 45, 79, 7, 461, 223, 691, 3071, 6233, 14997, 4083, 65391, 60571, 82929}}, +{20870, 18, 125786, {1, 3, 5, 1, 25, 39, 89, 105, 497, 685, 1921, 133, 4849, 8467, 609, 62183, 123787, 223025}}, +{20871, 18, 125792, {1, 1, 1, 13, 3, 57, 117, 241, 501, 107, 1253, 3097, 603, 10645, 3395, 13997, 112527, 208263}}, +{20872, 18, 125822, {1, 1, 7, 9, 7, 31, 25, 97, 205, 785, 517, 549, 6841, 7097, 9635, 17151, 57135, 105469}}, +{20873, 18, 125828, {1, 3, 7, 1, 25, 35, 43, 75, 179, 1023, 1921, 1529, 2791, 6747, 9135, 61801, 46729, 26821}}, +{20874, 18, 125831, {1, 1, 3, 1, 31, 49, 107, 219, 285, 501, 1503, 3103, 5257, 14561, 31493, 7753, 34375, 260357}}, +{20875, 18, 125837, {1, 3, 7, 13, 15, 7, 75, 57, 329, 67, 1541, 2445, 3069, 6723, 10189, 22913, 110781, 243765}}, +{20876, 18, 125880, {1, 1, 5, 3, 5, 45, 47, 39, 493, 787, 1019, 3933, 535, 1763, 139, 45967, 123167, 115019}}, +{20877, 18, 125891, {1, 3, 1, 3, 23, 59, 93, 139, 349, 973, 1401, 2109, 701, 461, 19199, 21733, 80009, 37239}}, +{20878, 18, 125922, {1, 1, 3, 5, 3, 39, 117, 77, 257, 117, 1991, 3371, 509, 3963, 14579, 62459, 52281, 99209}}, +{20879, 18, 125928, {1, 3, 1, 15, 29, 47, 73, 157, 429, 497, 39, 123, 4851, 12871, 4567, 29453, 90777, 188683}}, +{20880, 18, 125931, {1, 3, 3, 1, 17, 25, 5, 247, 61, 81, 1555, 2167, 6003, 15911, 16023, 7841, 50731, 229163}}, +{20881, 18, 125941, {1, 1, 5, 9, 9, 39, 89, 37, 105, 133, 333, 2863, 7249, 2355, 9407, 28145, 25923, 68827}}, +{20882, 18, 125948, {1, 3, 7, 13, 15, 55, 11, 93, 197, 447, 1793, 1793, 4639, 1869, 1711, 1439, 15899, 106931}}, +{20883, 18, 125960, {1, 1, 5, 13, 23, 11, 67, 155, 511, 363, 1073, 2249, 719, 11167, 7953, 21699, 55735, 47353}}, +{20884, 18, 125973, {1, 1, 3, 3, 21, 59, 123, 227, 65, 695, 1769, 4057, 7071, 1827, 13639, 45711, 84019, 96897}}, +{20885, 18, 126014, {1, 3, 1, 11, 25, 51, 57, 139, 147, 589, 1565, 511, 3629, 7329, 9565, 62893, 85789, 112047}}, +{20886, 18, 126016, {1, 3, 5, 5, 23, 11, 93, 75, 25, 947, 1489, 4081, 3395, 4655, 27853, 41299, 89447, 100971}}, +{20887, 18, 126036, {1, 3, 5, 11, 25, 63, 93, 227, 411, 49, 403, 437, 1739, 8453, 31693, 51439, 89729, 113405}}, +{20888, 18, 126043, {1, 3, 7, 9, 29, 13, 51, 155, 403, 627, 173, 2111, 833, 11453, 17673, 7121, 52943, 114835}}, +{20889, 18, 126062, {1, 1, 5, 13, 11, 11, 105, 101, 309, 577, 1003, 3667, 3489, 11807, 6119, 13773, 89879, 12391}}, +{20890, 18, 126076, {1, 3, 7, 9, 17, 11, 111, 239, 225, 723, 933, 3353, 2003, 5273, 207, 38539, 82539, 209781}}, +{20891, 18, 126116, {1, 1, 7, 13, 15, 53, 69, 105, 155, 445, 353, 617, 5625, 13439, 29223, 60439, 119635, 49643}}, +{20892, 18, 126125, {1, 1, 3, 11, 13, 25, 107, 27, 109, 313, 1721, 2647, 1861, 10631, 17131, 31365, 65319, 102905}}, +{20893, 18, 126145, {1, 1, 1, 7, 21, 29, 39, 167, 341, 115, 1523, 2209, 95, 4399, 3881, 38875, 107691, 132471}}, +{20894, 18, 126152, {1, 1, 1, 13, 15, 61, 125, 23, 301, 407, 1497, 3731, 7013, 5405, 31233, 51701, 45619, 107407}}, +{20895, 18, 126175, {1, 3, 5, 5, 31, 27, 77, 21, 339, 1013, 371, 19, 5733, 2177, 15547, 27595, 6805, 172695}}, +{20896, 18, 126188, {1, 3, 5, 11, 5, 15, 71, 23, 441, 169, 1715, 437, 1791, 293, 13441, 11225, 119119, 223035}}, +{20897, 18, 126199, {1, 3, 1, 5, 11, 15, 95, 127, 433, 789, 899, 2591, 2339, 8237, 20765, 32897, 51511, 58437}}, +{20898, 18, 126205, {1, 3, 5, 9, 11, 57, 103, 5, 401, 51, 1813, 923, 1983, 1853, 21913, 3051, 56309, 19423}}, +{20899, 18, 126213, {1, 1, 3, 15, 3, 3, 41, 5, 231, 35, 391, 185, 7585, 1005, 20311, 11193, 18275, 114131}}, +{20900, 18, 126220, {1, 1, 3, 9, 13, 13, 115, 203, 223, 575, 459, 1839, 3949, 16027, 23137, 13723, 19195, 249337}}, +{20901, 18, 126286, {1, 1, 1, 9, 21, 51, 39, 245, 187, 609, 319, 2927, 3625, 10789, 31291, 45557, 45935, 132447}}, +{20902, 18, 126294, {1, 3, 3, 9, 25, 37, 47, 55, 219, 409, 1927, 553, 3953, 6209, 11807, 11133, 48047, 132437}}, +{20903, 18, 126300, {1, 3, 1, 13, 23, 31, 109, 167, 281, 179, 233, 1603, 7391, 9091, 27021, 31213, 13093, 86017}}, +{20904, 18, 126322, {1, 3, 1, 13, 13, 15, 7, 29, 409, 59, 505, 1307, 6247, 6055, 5531, 59727, 58069, 84049}}, +{20905, 18, 126324, {1, 1, 5, 7, 19, 7, 103, 245, 133, 609, 1087, 2365, 3341, 1689, 18841, 19625, 47413, 63445}}, +{20906, 18, 126343, {1, 1, 7, 3, 11, 27, 79, 75, 97, 355, 493, 2035, 3413, 11835, 9157, 51173, 1, 71797}}, +{20907, 18, 126344, {1, 1, 5, 5, 29, 1, 43, 135, 473, 329, 1197, 1693, 3823, 7723, 24771, 22349, 94383, 41461}}, +{20908, 18, 126430, {1, 3, 3, 15, 25, 9, 79, 213, 317, 615, 541, 441, 505, 13665, 3691, 17825, 49303, 91783}}, +{20909, 18, 126433, {1, 3, 1, 11, 27, 33, 65, 31, 469, 799, 1251, 3357, 5239, 5651, 13317, 28553, 64225, 9805}}, +{20910, 18, 126448, {1, 1, 7, 13, 9, 49, 77, 43, 363, 719, 1943, 1285, 1587, 1047, 29419, 24025, 89901, 229095}}, +{20911, 18, 126451, {1, 1, 1, 15, 19, 57, 33, 243, 111, 183, 497, 603, 923, 1957, 6493, 11833, 7331, 229975}}, +{20912, 18, 126457, {1, 3, 1, 1, 13, 43, 31, 25, 169, 303, 69, 723, 1745, 1025, 14301, 2523, 111887, 179519}}, +{20913, 18, 126458, {1, 3, 1, 5, 31, 55, 11, 103, 391, 881, 1885, 3923, 7507, 377, 29331, 32167, 56915, 44211}}, +{20914, 18, 126463, {1, 1, 7, 1, 27, 55, 33, 141, 393, 73, 701, 3173, 973, 15553, 10219, 51441, 55201, 131055}}, +{20915, 18, 126470, {1, 1, 3, 9, 1, 31, 115, 85, 173, 227, 163, 157, 5569, 8291, 27163, 7581, 8699, 104523}}, +{20916, 18, 126484, {1, 1, 1, 5, 5, 19, 11, 55, 217, 571, 1001, 945, 6237, 1993, 11809, 63893, 60081, 102997}}, +{20917, 18, 126518, {1, 3, 3, 15, 15, 7, 51, 161, 147, 263, 1701, 1079, 3027, 11779, 24885, 16127, 68985, 162975}}, +{20918, 18, 126521, {1, 3, 1, 9, 25, 1, 47, 107, 149, 997, 1779, 2905, 4951, 10345, 31059, 63831, 117219, 251935}}, +{20919, 18, 126547, {1, 3, 3, 9, 5, 23, 83, 95, 399, 343, 1597, 1733, 5959, 9685, 4721, 59109, 113633, 80365}}, +{20920, 18, 126556, {1, 1, 7, 11, 31, 43, 71, 133, 305, 529, 645, 3095, 6273, 4019, 14433, 41609, 64093, 79051}}, +{20921, 18, 126583, {1, 3, 5, 11, 1, 63, 123, 25, 245, 583, 1013, 3275, 2997, 13021, 27515, 16233, 113093, 249101}}, +{20922, 18, 126584, {1, 1, 1, 9, 3, 59, 113, 155, 125, 423, 259, 1559, 3745, 9105, 27673, 36601, 36117, 47953}}, +{20923, 18, 126633, {1, 3, 3, 7, 19, 41, 55, 87, 53, 801, 661, 329, 3391, 7581, 25487, 25751, 120171, 35953}}, +{20924, 18, 126673, {1, 1, 7, 15, 31, 57, 49, 179, 147, 139, 957, 289, 4321, 8747, 53, 46003, 40219, 96855}}, +{20925, 18, 126680, {1, 1, 7, 9, 29, 49, 71, 101, 389, 793, 1355, 3263, 6331, 4869, 28479, 8335, 74653, 8519}}, +{20926, 18, 126686, {1, 1, 1, 13, 1, 19, 31, 161, 261, 679, 1115, 985, 2855, 4395, 15087, 18593, 98535, 52537}}, +{20927, 18, 126689, {1, 1, 3, 11, 15, 51, 79, 7, 75, 75, 753, 2637, 7193, 7961, 21411, 24273, 7543, 6277}}, +{20928, 18, 126702, {1, 3, 1, 5, 5, 51, 67, 191, 201, 777, 587, 1439, 1027, 3759, 31141, 42159, 58475, 7355}}, +{20929, 18, 126710, {1, 3, 5, 3, 15, 37, 11, 251, 53, 799, 739, 2225, 6985, 9183, 12341, 29963, 44101, 23889}}, +{20930, 18, 126722, {1, 1, 3, 3, 5, 33, 81, 223, 89, 531, 301, 305, 2401, 4015, 18607, 65041, 82447, 228487}}, +{20931, 18, 126787, {1, 3, 1, 7, 15, 29, 71, 247, 445, 1005, 1229, 3897, 899, 11175, 6349, 29145, 103153, 90275}}, +{20932, 18, 126789, {1, 3, 3, 7, 15, 7, 75, 13, 417, 719, 121, 1345, 3737, 4119, 15259, 33579, 57727, 111517}}, +{20933, 18, 126794, {1, 3, 7, 3, 31, 11, 49, 61, 405, 741, 1607, 1561, 4655, 9775, 14349, 27431, 91791, 228607}}, +{20934, 18, 126801, {1, 3, 5, 13, 17, 27, 93, 153, 99, 683, 219, 3783, 6963, 1633, 6621, 8133, 5111, 57333}}, +{20935, 18, 126857, {1, 3, 3, 3, 25, 29, 75, 155, 159, 25, 637, 3053, 4737, 5831, 9651, 45331, 100407, 188607}}, +{20936, 18, 126891, {1, 3, 1, 9, 21, 55, 123, 27, 509, 227, 1569, 1379, 7137, 11749, 14257, 38349, 459, 54873}}, +{20937, 18, 126896, {1, 1, 7, 15, 29, 35, 81, 79, 237, 155, 1551, 343, 5127, 3233, 3691, 59917, 7367, 181979}}, +{20938, 18, 126902, {1, 3, 1, 15, 1, 57, 111, 121, 375, 635, 1529, 635, 2337, 6553, 22067, 36047, 80099, 116411}}, +{20939, 18, 126911, {1, 1, 3, 3, 29, 27, 19, 3, 69, 197, 1829, 1907, 5901, 12651, 3295, 7805, 57871, 47571}}, +{20940, 18, 126919, {1, 1, 1, 13, 21, 5, 115, 51, 203, 991, 1731, 1101, 1607, 14323, 12233, 48047, 33969, 147621}}, +{20941, 18, 126943, {1, 3, 3, 1, 25, 55, 41, 31, 101, 551, 1519, 1915, 6961, 13919, 15339, 13141, 107625, 9247}}, +{20942, 18, 126947, {1, 1, 7, 11, 17, 25, 87, 175, 341, 445, 1813, 2995, 3217, 6015, 1637, 65243, 72743, 248715}}, +{20943, 18, 126949, {1, 1, 5, 13, 11, 1, 61, 139, 233, 167, 1363, 1991, 7999, 16289, 25595, 8915, 32205, 169963}}, +{20944, 18, 126953, {1, 1, 1, 13, 31, 33, 67, 57, 121, 477, 755, 2035, 3683, 16205, 5511, 25615, 5169, 128843}}, +{20945, 18, 126971, {1, 3, 5, 15, 31, 1, 89, 29, 493, 379, 1627, 491, 2503, 8105, 30275, 27379, 43905, 46397}}, +{20946, 18, 126976, {1, 1, 7, 9, 31, 41, 127, 121, 61, 561, 223, 3231, 7321, 3683, 15455, 8019, 116739, 96557}}, +{20947, 18, 126982, {1, 1, 5, 9, 19, 41, 25, 65, 111, 535, 611, 1631, 4251, 107, 19787, 40749, 65701, 48749}}, +{20948, 18, 127009, {1, 3, 3, 11, 27, 49, 75, 93, 15, 937, 1517, 1577, 7485, 8713, 15979, 13799, 103057, 144799}}, +{20949, 18, 127021, {1, 1, 7, 7, 7, 29, 3, 63, 177, 781, 2001, 315, 6703, 8055, 19081, 33641, 44279, 87597}}, +{20950, 18, 127027, {1, 1, 7, 11, 29, 53, 83, 223, 275, 951, 1883, 2447, 1815, 9313, 9247, 17185, 8143, 135247}}, +{20951, 18, 127039, {1, 1, 5, 13, 21, 47, 87, 55, 169, 95, 777, 2787, 7227, 11373, 16707, 28237, 30789, 64589}}, +{20952, 18, 127041, {1, 1, 1, 11, 15, 41, 1, 55, 337, 493, 1379, 2505, 6831, 10955, 1875, 21821, 54101, 9379}}, +{20953, 18, 127044, {1, 3, 5, 15, 27, 9, 121, 49, 439, 781, 1457, 1341, 7433, 5879, 13039, 24001, 64059, 157077}}, +{20954, 18, 127059, {1, 1, 1, 9, 19, 55, 89, 37, 255, 345, 215, 4067, 8151, 14253, 12121, 3637, 29185, 60643}}, +{20955, 18, 127071, {1, 3, 1, 7, 31, 39, 71, 29, 71, 83, 1249, 871, 8037, 1001, 25245, 26651, 34509, 123607}}, +{20956, 18, 127075, {1, 1, 3, 11, 13, 21, 15, 171, 255, 373, 429, 2179, 4431, 16087, 17949, 16307, 129877, 186495}}, +{20957, 18, 127126, {1, 3, 3, 9, 17, 45, 75, 175, 3, 403, 215, 1781, 7875, 14113, 6967, 65263, 125885, 232983}}, +{20958, 18, 127129, {1, 1, 7, 9, 21, 57, 73, 105, 163, 583, 587, 2743, 2199, 5187, 5571, 56399, 797, 192405}}, +{20959, 18, 127145, {1, 1, 1, 3, 29, 27, 71, 145, 11, 455, 1505, 2789, 4083, 12345, 14785, 4981, 95121, 134977}}, +{20960, 18, 127154, {1, 1, 1, 1, 1, 27, 1, 145, 473, 483, 83, 3009, 7241, 13633, 15071, 30767, 128103, 94727}}, +{20961, 18, 127165, {1, 3, 5, 15, 17, 51, 71, 21, 237, 65, 901, 3365, 7831, 3027, 8751, 14435, 79445, 172587}}, +{20962, 18, 127171, {1, 1, 5, 1, 9, 49, 49, 31, 395, 339, 343, 1813, 2607, 9347, 11239, 6761, 127623, 43459}}, +{20963, 18, 127197, {1, 1, 1, 1, 13, 23, 71, 131, 225, 229, 117, 889, 8145, 5953, 10679, 38687, 80029, 63689}}, +{20964, 18, 127198, {1, 1, 5, 1, 29, 1, 87, 181, 441, 353, 257, 335, 203, 10897, 24085, 26967, 62573, 170285}}, +{20965, 18, 127207, {1, 1, 7, 3, 3, 39, 47, 135, 353, 977, 89, 259, 6411, 5511, 10697, 57623, 27367, 108451}}, +{20966, 18, 127226, {1, 3, 3, 11, 9, 57, 95, 211, 237, 281, 1703, 2107, 2179, 3411, 32621, 5387, 29971, 102889}}, +{20967, 18, 127240, {1, 1, 1, 13, 27, 49, 47, 49, 413, 985, 649, 1245, 807, 13637, 21741, 32565, 80135, 127971}}, +{20968, 18, 127254, {1, 3, 7, 13, 3, 19, 57, 97, 493, 597, 135, 1689, 5011, 4579, 6093, 28341, 37279, 142197}}, +{20969, 18, 127269, {1, 3, 1, 15, 15, 31, 3, 89, 327, 107, 827, 1111, 261, 6211, 4359, 38553, 43297, 75057}}, +{20970, 18, 127305, {1, 1, 1, 9, 19, 19, 53, 195, 141, 297, 141, 3859, 4173, 12243, 31399, 6353, 110505, 172219}}, +{20971, 18, 127323, {1, 3, 3, 9, 31, 51, 59, 53, 55, 723, 1575, 3399, 8057, 12317, 8393, 1719, 96987, 228955}}, +{20972, 18, 127342, {1, 1, 7, 11, 19, 59, 41, 9, 217, 267, 629, 2977, 4515, 463, 31773, 61765, 78827, 51331}}, +{20973, 18, 127347, {1, 3, 3, 13, 9, 55, 51, 177, 183, 431, 555, 3573, 7977, 3067, 21111, 12971, 78283, 260721}}, +{20974, 18, 127363, {1, 1, 1, 11, 27, 5, 89, 69, 435, 199, 221, 1017, 7703, 7469, 7755, 46319, 37941, 55285}}, +{20975, 18, 127394, {1, 1, 7, 13, 19, 55, 53, 207, 367, 177, 1483, 2857, 3753, 5493, 13349, 14033, 7933, 93457}}, +{20976, 18, 127426, {1, 1, 7, 3, 27, 35, 19, 223, 341, 137, 1195, 1263, 5937, 13517, 55, 6391, 106173, 176503}}, +{20977, 18, 127432, {1, 3, 7, 11, 23, 25, 37, 103, 351, 945, 1205, 2543, 3875, 155, 27777, 36647, 47979, 25113}}, +{20978, 18, 127440, {1, 1, 3, 15, 25, 59, 79, 39, 17, 553, 1119, 3353, 2619, 3851, 5945, 47501, 17369, 89355}}, +{20979, 18, 127462, {1, 1, 1, 13, 9, 55, 13, 173, 207, 925, 1855, 1871, 7851, 1361, 20117, 51677, 77703, 51309}}, +{20980, 18, 127468, {1, 3, 1, 1, 31, 57, 3, 25, 329, 927, 1683, 1447, 6853, 103, 9549, 21393, 415, 122749}}, +{20981, 18, 127473, {1, 1, 5, 5, 31, 61, 31, 213, 85, 531, 931, 999, 1189, 5189, 15127, 47799, 70769, 81901}}, +{20982, 18, 127486, {1, 1, 3, 1, 5, 59, 89, 53, 105, 761, 313, 3013, 4093, 9595, 4287, 51505, 20095, 232933}}, +{20983, 18, 127502, {1, 1, 7, 7, 23, 9, 41, 29, 399, 395, 759, 2541, 2373, 15365, 12083, 49579, 34401, 168121}}, +{20984, 18, 127510, {1, 1, 3, 1, 7, 23, 37, 183, 205, 377, 1081, 1081, 7767, 363, 14571, 16265, 18267, 102155}}, +{20985, 18, 127523, {1, 3, 3, 15, 19, 11, 59, 59, 465, 437, 965, 3707, 3505, 14785, 23605, 12505, 130607, 40693}}, +{20986, 18, 127543, {1, 1, 3, 13, 5, 15, 91, 33, 235, 215, 1997, 2035, 7407, 3203, 27143, 14007, 96411, 593}}, +{20987, 18, 127567, {1, 3, 7, 1, 19, 51, 1, 69, 489, 629, 1731, 393, 6807, 10521, 23971, 45649, 105183, 207351}}, +{20988, 18, 127570, {1, 3, 5, 3, 5, 41, 89, 141, 469, 177, 109, 2439, 7155, 2083, 31993, 13933, 100557, 137255}}, +{20989, 18, 127585, {1, 1, 7, 15, 21, 45, 41, 197, 365, 177, 61, 811, 2535, 5219, 3689, 53129, 42063, 60759}}, +{20990, 18, 127588, {1, 3, 5, 1, 23, 7, 19, 193, 253, 793, 539, 3747, 2611, 16211, 17199, 14875, 95377, 6999}}, +{20991, 18, 127619, {1, 1, 3, 5, 9, 5, 9, 129, 217, 473, 151, 3053, 6981, 8075, 32121, 31995, 41271, 208927}}, +{20992, 18, 127621, {1, 1, 5, 9, 9, 9, 89, 139, 381, 937, 1937, 1879, 8191, 2237, 25629, 51471, 87639, 173697}}, +{20993, 18, 127626, {1, 1, 5, 9, 17, 35, 81, 223, 161, 315, 139, 2597, 2599, 16191, 2567, 54947, 8603, 121589}}, +{20994, 18, 127628, {1, 1, 5, 5, 9, 7, 33, 49, 49, 723, 1013, 1055, 4025, 1471, 30081, 17475, 127931, 63723}}, +{20995, 18, 127640, {1, 3, 7, 7, 9, 49, 107, 17, 335, 119, 1959, 3613, 8129, 11033, 12197, 23803, 112595, 131655}}, +{20996, 18, 127662, {1, 3, 5, 11, 3, 45, 91, 17, 181, 1005, 985, 3045, 853, 8181, 5517, 48515, 16225, 237151}}, +{20997, 18, 127684, {1, 1, 3, 1, 3, 63, 35, 135, 61, 383, 1233, 675, 151, 2157, 18711, 37113, 40353, 61783}}, +{20998, 18, 127687, {1, 3, 5, 5, 29, 3, 105, 11, 351, 761, 165, 911, 6903, 10111, 1779, 24601, 3177, 110301}}, +{20999, 18, 127693, {1, 1, 3, 15, 25, 19, 73, 237, 263, 161, 731, 3853, 7705, 14497, 30799, 32979, 100729, 21761}}, +{21000, 18, 127696, {1, 1, 3, 5, 27, 9, 3, 149, 207, 715, 1435, 2563, 2451, 7951, 26313, 55115, 99423, 231639}}, +{21001, 18, 127708, {1, 1, 5, 15, 11, 51, 13, 47, 311, 969, 2013, 357, 4847, 1831, 2235, 22779, 32375, 40893}}, +{21002, 18, 127711, {1, 1, 3, 9, 21, 45, 11, 99, 275, 849, 443, 1257, 7855, 9121, 6549, 20289, 101337, 13869}}, +{21003, 18, 127722, {1, 1, 1, 15, 25, 27, 15, 111, 215, 437, 1923, 1985, 4603, 15469, 6667, 17941, 50433, 152759}}, +{21004, 18, 127732, {1, 3, 7, 15, 7, 37, 119, 53, 337, 853, 1785, 3507, 3743, 14303, 22757, 5149, 1539, 227051}}, +{21005, 18, 127747, {1, 1, 3, 13, 11, 23, 55, 19, 495, 531, 1021, 3831, 5993, 15819, 2121, 52773, 19775, 94643}}, +{21006, 18, 127767, {1, 1, 3, 3, 23, 55, 55, 69, 457, 755, 1187, 3993, 613, 12691, 1779, 21251, 2293, 236725}}, +{21007, 18, 127771, {1, 1, 5, 9, 23, 27, 61, 125, 113, 99, 503, 699, 6873, 13141, 10649, 65209, 21773, 162749}}, +{21008, 18, 127790, {1, 1, 1, 11, 15, 27, 111, 227, 493, 361, 1071, 607, 1409, 9281, 24515, 26739, 82421, 30463}}, +{21009, 18, 127816, {1, 3, 5, 1, 11, 57, 23, 239, 265, 675, 441, 4031, 5163, 15729, 2741, 26037, 32533, 140645}}, +{21010, 18, 127824, {1, 3, 3, 7, 3, 45, 105, 135, 493, 579, 1707, 2933, 1135, 11891, 3171, 45401, 24993, 175681}}, +{21011, 18, 127833, {1, 1, 1, 11, 11, 3, 67, 213, 483, 9, 1053, 213, 3205, 8487, 16093, 7305, 122591, 31811}}, +{21012, 18, 127869, {1, 1, 5, 13, 19, 31, 13, 65, 29, 929, 343, 463, 1885, 13467, 14997, 22737, 42869, 128239}}, +{21013, 18, 127910, {1, 3, 3, 13, 9, 47, 125, 33, 475, 285, 1901, 2525, 305, 11587, 27309, 30037, 70681, 180425}}, +{21014, 18, 127928, {1, 3, 5, 15, 9, 37, 45, 149, 19, 135, 555, 4037, 5173, 12473, 983, 40923, 28561, 185941}}, +{21015, 18, 127933, {1, 3, 3, 9, 23, 35, 35, 151, 113, 885, 1553, 2233, 351, 4071, 28127, 26109, 12299, 163973}}, +{21016, 18, 127963, {1, 3, 3, 11, 17, 55, 125, 87, 315, 917, 383, 2397, 1573, 9255, 10499, 16051, 99487, 139415}}, +{21017, 18, 127975, {1, 1, 3, 1, 29, 21, 101, 153, 5, 705, 1965, 1447, 8163, 13547, 25929, 28569, 57897, 173229}}, +{21018, 18, 128016, {1, 1, 7, 15, 3, 37, 113, 213, 495, 935, 529, 2299, 6901, 1765, 4255, 14579, 14175, 112333}}, +{21019, 18, 128031, {1, 3, 3, 9, 11, 53, 89, 27, 461, 235, 1525, 3533, 3061, 4351, 12847, 21649, 10843, 60901}}, +{21020, 18, 128059, {1, 1, 5, 1, 17, 11, 17, 157, 387, 887, 2017, 3641, 923, 12659, 19691, 18657, 3127, 218819}}, +{21021, 18, 128074, {1, 3, 1, 9, 5, 3, 49, 215, 379, 765, 1375, 345, 2285, 8197, 9531, 6725, 22475, 203883}}, +{21022, 18, 128107, {1, 1, 3, 9, 19, 41, 13, 233, 97, 755, 249, 2011, 5815, 6317, 4121, 63637, 43353, 154753}}, +{21023, 18, 128122, {1, 3, 7, 15, 31, 25, 93, 197, 455, 979, 1805, 2619, 803, 5705, 1679, 29317, 66477, 159187}}, +{21024, 18, 128157, {1, 1, 1, 13, 11, 25, 61, 233, 339, 171, 559, 427, 3239, 8889, 3711, 19743, 18099, 49201}}, +{21025, 18, 128161, {1, 3, 7, 13, 19, 5, 9, 183, 355, 137, 1767, 1113, 1149, 5791, 4099, 37911, 75945, 115397}}, +{21026, 18, 128200, {1, 1, 3, 13, 27, 25, 121, 3, 337, 195, 1841, 2009, 4181, 3197, 20275, 42493, 7495, 24407}}, +{21027, 18, 128213, {1, 1, 1, 15, 3, 43, 39, 25, 57, 829, 565, 1977, 4027, 11053, 13961, 13965, 4207, 1663}}, +{21028, 18, 128229, {1, 3, 5, 9, 11, 7, 107, 205, 479, 961, 1549, 1701, 6305, 15419, 23331, 46443, 55171, 235109}}, +{21029, 18, 128233, {1, 3, 5, 5, 19, 3, 39, 211, 429, 363, 765, 283, 2469, 1947, 10481, 1969, 95545, 187671}}, +{21030, 18, 128241, {1, 1, 1, 1, 11, 55, 47, 121, 251, 63, 767, 3673, 3233, 14865, 25713, 48443, 79139, 225021}}, +{21031, 18, 128259, {1, 1, 3, 11, 25, 35, 57, 103, 385, 155, 173, 4023, 489, 1733, 14423, 61843, 24793, 9871}}, +{21032, 18, 128295, {1, 3, 1, 15, 9, 29, 99, 187, 471, 877, 1321, 2489, 7439, 4259, 32703, 1459, 42093, 261097}}, +{21033, 18, 128299, {1, 1, 3, 11, 9, 25, 113, 251, 337, 405, 847, 2451, 5649, 3449, 11703, 18271, 108005, 208789}}, +{21034, 18, 128313, {1, 3, 3, 7, 13, 53, 61, 251, 461, 461, 1557, 1215, 6731, 13349, 21003, 11573, 66751, 79733}}, +{21035, 18, 128345, {1, 1, 5, 1, 23, 49, 101, 175, 251, 577, 1667, 2561, 6545, 16305, 18457, 65067, 35843, 123445}}, +{21036, 18, 128362, {1, 1, 5, 3, 7, 9, 61, 107, 395, 137, 559, 2315, 2559, 11929, 4843, 41661, 61361, 146163}}, +{21037, 18, 128375, {1, 3, 1, 5, 1, 3, 43, 251, 329, 289, 323, 2201, 4129, 4963, 27477, 18743, 46551, 93061}}, +{21038, 18, 128376, {1, 1, 7, 3, 17, 63, 21, 159, 447, 377, 69, 2517, 8181, 6043, 3039, 7747, 72465, 41027}}, +{21039, 18, 128406, {1, 1, 1, 1, 13, 3, 45, 93, 391, 509, 867, 1561, 5017, 11851, 24891, 22531, 18993, 129421}}, +{21040, 18, 128410, {1, 3, 3, 11, 15, 1, 127, 9, 161, 321, 2003, 239, 1379, 11903, 13503, 26529, 57725, 214797}}, +{21041, 18, 128416, {1, 1, 1, 13, 31, 11, 17, 25, 1, 645, 675, 735, 2083, 1919, 18977, 4995, 91559, 230463}}, +{21042, 18, 128443, {1, 3, 1, 13, 17, 21, 107, 167, 135, 797, 715, 3275, 5437, 4253, 11671, 14867, 36041, 71751}}, +{21043, 18, 128451, {1, 3, 5, 5, 11, 49, 93, 231, 431, 567, 1605, 3281, 7049, 2947, 863, 39593, 117167, 167301}}, +{21044, 18, 128465, {1, 1, 1, 1, 5, 13, 61, 91, 127, 189, 1879, 3921, 4303, 4831, 6765, 31005, 107627, 80693}}, +{21045, 18, 128466, {1, 3, 1, 3, 1, 49, 61, 9, 467, 891, 105, 317, 137, 12789, 12367, 57455, 39777, 88047}}, +{21046, 18, 128484, {1, 1, 3, 13, 23, 63, 37, 103, 23, 223, 647, 2523, 3211, 14551, 22663, 48237, 54777, 180297}}, +{21047, 18, 128499, {1, 3, 3, 7, 29, 51, 85, 179, 441, 431, 535, 2975, 8083, 8619, 30229, 31421, 54063, 163601}}, +{21048, 18, 128502, {1, 3, 1, 1, 27, 39, 125, 171, 57, 729, 511, 957, 7541, 2347, 1669, 32323, 108531, 69943}}, +{21049, 18, 128524, {1, 3, 3, 7, 1, 33, 89, 245, 95, 21, 699, 1441, 2659, 501, 32323, 39145, 82311, 155479}}, +{21050, 18, 128536, {1, 1, 3, 11, 29, 13, 87, 251, 329, 667, 325, 2411, 7959, 8069, 20817, 42445, 121675, 113421}}, +{21051, 18, 128541, {1, 1, 1, 7, 9, 57, 109, 237, 325, 535, 89, 1285, 5649, 13673, 29375, 51553, 81723, 11003}}, +{21052, 18, 128542, {1, 3, 1, 1, 13, 5, 31, 109, 157, 817, 1303, 725, 1841, 5503, 2255, 34637, 93603, 82825}}, +{21053, 18, 128592, {1, 3, 7, 7, 5, 33, 39, 233, 217, 157, 357, 2727, 3565, 1539, 5317, 23967, 30375, 260381}}, +{21054, 18, 128598, {1, 1, 5, 3, 23, 51, 45, 181, 353, 519, 949, 3043, 1517, 3387, 15081, 5997, 31523, 80007}}, +{21055, 18, 128623, {1, 1, 3, 5, 23, 21, 83, 51, 275, 629, 1433, 1821, 3761, 2367, 32089, 13813, 99629, 64603}}, +{21056, 18, 128632, {1, 1, 5, 15, 11, 49, 69, 197, 193, 459, 1915, 787, 3631, 5219, 11109, 12311, 56625, 117439}}, +{21057, 18, 128671, {1, 3, 3, 3, 31, 29, 57, 27, 43, 231, 777, 2139, 2609, 12273, 23777, 4151, 51749, 110013}}, +{21058, 18, 128713, {1, 1, 5, 13, 9, 63, 83, 69, 225, 913, 99, 1167, 5279, 14163, 3979, 55151, 84387, 234583}}, +{21059, 18, 128724, {1, 1, 7, 5, 9, 57, 87, 23, 335, 403, 1843, 725, 5187, 4137, 24299, 44807, 98523, 217815}}, +{21060, 18, 128731, {1, 3, 3, 3, 3, 23, 115, 229, 193, 655, 1205, 3159, 1935, 113, 20943, 32917, 69633, 2133}}, +{21061, 18, 128761, {1, 3, 3, 1, 17, 5, 59, 139, 75, 185, 1951, 3689, 4997, 2761, 8673, 41783, 75075, 101063}}, +{21062, 18, 128767, {1, 3, 1, 13, 1, 51, 63, 127, 67, 743, 1049, 2055, 4249, 131, 8153, 50237, 28135, 76059}}, +{21063, 18, 128782, {1, 3, 7, 13, 5, 39, 83, 63, 429, 573, 1915, 3801, 2223, 1585, 16997, 45571, 23311, 108099}}, +{21064, 18, 128793, {1, 3, 1, 3, 15, 49, 19, 65, 433, 401, 1901, 3653, 2399, 15171, 9695, 30257, 104877, 181221}}, +{21065, 18, 128805, {1, 3, 1, 1, 25, 37, 89, 7, 81, 343, 949, 3535, 1681, 10089, 23513, 3897, 127083, 214005}}, +{21066, 18, 128820, {1, 3, 7, 13, 1, 1, 123, 89, 433, 541, 1579, 931, 3459, 11095, 20729, 13117, 59323, 90309}}, +{21067, 18, 128830, {1, 1, 7, 1, 19, 9, 31, 211, 271, 25, 1053, 2249, 6549, 12785, 16947, 55633, 70155, 253741}}, +{21068, 18, 128842, {1, 3, 5, 9, 7, 49, 11, 251, 101, 795, 1015, 2037, 1239, 10151, 22179, 749, 2373, 224517}}, +{21069, 18, 128852, {1, 3, 7, 15, 21, 19, 15, 59, 439, 621, 1081, 3041, 1587, 3077, 2319, 51135, 110513, 222551}}, +{21070, 18, 128859, {1, 1, 5, 5, 9, 61, 49, 97, 361, 647, 351, 1977, 3023, 10213, 6889, 8753, 72203, 37521}}, +{21071, 18, 128866, {1, 3, 3, 1, 7, 29, 51, 117, 259, 81, 1263, 1829, 6541, 5699, 30367, 61325, 78795, 3491}}, +{21072, 18, 128875, {1, 1, 1, 5, 5, 23, 19, 255, 267, 251, 239, 3561, 6771, 10647, 4129, 40285, 11041, 27023}}, +{21073, 18, 128892, {1, 1, 7, 5, 29, 17, 121, 91, 427, 51, 243, 1617, 5389, 3633, 14105, 5329, 109507, 93719}}, +{21074, 18, 128896, {1, 3, 7, 5, 7, 59, 107, 89, 181, 719, 1029, 585, 2415, 9175, 11605, 9271, 12105, 42503}}, +{21075, 18, 128914, {1, 3, 5, 15, 27, 15, 83, 223, 489, 901, 1823, 1515, 6295, 12509, 27179, 181, 29813, 66163}}, +{21076, 18, 128935, {1, 1, 7, 15, 5, 9, 79, 29, 201, 391, 609, 935, 4025, 201, 8333, 24557, 33739, 257979}}, +{21077, 18, 128964, {1, 3, 3, 9, 9, 19, 55, 211, 347, 943, 559, 467, 1363, 10249, 7109, 41293, 28035, 205889}}, +{21078, 18, 128973, {1, 1, 5, 3, 21, 25, 25, 163, 95, 119, 789, 1679, 3845, 1427, 25531, 13375, 121029, 194845}}, +{21079, 18, 129001, {1, 1, 5, 3, 31, 21, 83, 27, 17, 59, 885, 3889, 4795, 4383, 28739, 55129, 10387, 176437}}, +{21080, 18, 129007, {1, 3, 1, 5, 31, 39, 37, 79, 433, 313, 1155, 3025, 6141, 10695, 27819, 28227, 32161, 250515}}, +{21081, 18, 129012, {1, 1, 5, 9, 27, 41, 3, 129, 235, 621, 1171, 3305, 6309, 5323, 15049, 16301, 13817, 238521}}, +{21082, 18, 129021, {1, 3, 7, 7, 27, 31, 63, 143, 183, 625, 1627, 3093, 6597, 14089, 30197, 60411, 66221, 221691}}, +{21083, 18, 129026, {1, 3, 7, 13, 21, 15, 59, 67, 441, 113, 1229, 1587, 5889, 6691, 10641, 11865, 89791, 82867}}, +{21084, 18, 129055, {1, 1, 7, 9, 13, 21, 53, 145, 235, 877, 2005, 1005, 7137, 6091, 19611, 25959, 124019, 216269}}, +{21085, 18, 129071, {1, 3, 7, 9, 17, 63, 5, 245, 397, 351, 1613, 4079, 7235, 4397, 18951, 11609, 71593, 148615}}, +{21086, 18, 129093, {1, 3, 3, 11, 5, 59, 65, 221, 237, 527, 861, 397, 249, 15273, 8415, 61185, 59419, 98115}}, +{21087, 18, 129105, {1, 1, 3, 5, 5, 59, 17, 247, 3, 765, 835, 1131, 3985, 9021, 18067, 28525, 86513, 250227}}, +{21088, 18, 129124, {1, 3, 7, 15, 25, 47, 119, 143, 143, 283, 1791, 59, 8171, 12577, 17079, 9809, 100299, 63977}}, +{21089, 18, 129148, {1, 3, 5, 13, 1, 47, 93, 159, 199, 863, 1279, 77, 4719, 3623, 30713, 39271, 126299, 130297}}, +{21090, 18, 129151, {1, 1, 5, 3, 23, 11, 119, 187, 57, 373, 747, 1507, 5165, 12929, 903, 49041, 70215, 117113}}, +{21091, 18, 129155, {1, 1, 5, 1, 3, 59, 23, 77, 151, 77, 627, 2865, 7055, 10469, 12095, 20481, 13429, 47573}}, +{21092, 18, 129161, {1, 3, 1, 13, 27, 13, 115, 233, 343, 407, 1321, 4011, 5589, 15369, 23495, 4435, 75421, 229325}}, +{21093, 18, 129200, {1, 3, 3, 3, 5, 51, 89, 53, 275, 279, 203, 2829, 4415, 4735, 25417, 17633, 99445, 183945}}, +{21094, 18, 129224, {1, 3, 3, 15, 7, 9, 91, 63, 143, 945, 453, 4001, 3943, 7285, 9359, 27507, 8571, 31827}}, +{21095, 18, 129230, {1, 3, 3, 11, 15, 49, 103, 25, 273, 791, 145, 2203, 4721, 7709, 25085, 33937, 98693, 97445}}, +{21096, 18, 129237, {1, 1, 5, 15, 9, 13, 87, 27, 331, 137, 1031, 585, 7841, 12213, 32259, 46953, 17813, 203379}}, +{21097, 18, 129298, {1, 3, 1, 5, 29, 53, 121, 179, 21, 311, 991, 2145, 6577, 12889, 8763, 46629, 128093, 105033}}, +{21098, 18, 129300, {1, 3, 1, 9, 7, 29, 57, 137, 333, 109, 615, 749, 2665, 13087, 13989, 41857, 102937, 125183}}, +{21099, 18, 129316, {1, 1, 5, 5, 3, 23, 107, 5, 319, 503, 1209, 47, 349, 11681, 28521, 44707, 112887, 232275}}, +{21100, 18, 129345, {1, 3, 3, 13, 13, 51, 13, 5, 293, 15, 555, 135, 2565, 13325, 30411, 14837, 65591, 249205}}, +{21101, 18, 129351, {1, 3, 5, 13, 17, 3, 73, 255, 447, 699, 503, 3655, 7735, 12163, 6167, 15027, 103831, 146395}}, +{21102, 18, 129352, {1, 3, 1, 13, 5, 9, 27, 45, 397, 463, 1739, 3193, 6731, 7533, 11217, 22359, 82603, 231613}}, +{21103, 18, 129363, {1, 1, 3, 15, 5, 43, 73, 191, 53, 187, 1905, 745, 1571, 9013, 8515, 59527, 104671, 227063}}, +{21104, 18, 129393, {1, 1, 3, 1, 5, 47, 57, 179, 433, 979, 147, 1701, 4019, 6855, 24487, 65495, 69919, 6659}}, +{21105, 18, 129410, {1, 3, 3, 1, 17, 17, 13, 75, 163, 781, 421, 1573, 2519, 9243, 20693, 60909, 65661, 208125}}, +{21106, 18, 129415, {1, 3, 5, 7, 27, 57, 39, 79, 157, 415, 729, 3651, 3581, 9443, 6409, 45993, 99051, 140977}}, +{21107, 18, 129449, {1, 3, 3, 13, 1, 7, 109, 77, 423, 185, 97, 3719, 2355, 10593, 2421, 37339, 24961, 24305}}, +{21108, 18, 129477, {1, 3, 5, 13, 17, 7, 125, 43, 453, 43, 643, 3757, 3721, 16083, 20871, 26451, 95201, 29153}}, +{21109, 18, 129501, {1, 1, 7, 3, 13, 49, 99, 253, 59, 21, 445, 3677, 6683, 2165, 32367, 55249, 5991, 155033}}, +{21110, 18, 129518, {1, 1, 3, 9, 21, 9, 15, 219, 175, 631, 665, 2455, 4701, 10639, 13907, 26937, 58867, 259861}}, +{21111, 18, 129520, {1, 3, 5, 5, 23, 5, 39, 233, 27, 811, 1435, 625, 4703, 3699, 20763, 50047, 123875, 10129}}, +{21112, 18, 129545, {1, 1, 7, 5, 23, 1, 49, 223, 309, 691, 953, 575, 5279, 10515, 11519, 35387, 48417, 134001}}, +{21113, 18, 129563, {1, 1, 7, 11, 3, 15, 125, 109, 39, 713, 1823, 1613, 4347, 6839, 29511, 26865, 102077, 31425}}, +{21114, 18, 129594, {1, 1, 1, 7, 31, 43, 13, 221, 115, 993, 1155, 1641, 1063, 2065, 18909, 45769, 65331, 188455}}, +{21115, 18, 129608, {1, 1, 7, 13, 21, 9, 59, 7, 79, 217, 2009, 667, 7685, 14761, 20149, 44133, 41037, 78369}}, +{21116, 18, 129616, {1, 3, 1, 9, 23, 57, 1, 193, 77, 681, 1135, 3657, 8149, 3559, 25011, 55027, 121903, 240157}}, +{21117, 18, 129652, {1, 3, 3, 5, 31, 41, 59, 5, 159, 627, 1569, 23, 2311, 2239, 20811, 54931, 130949, 193071}}, +{21118, 18, 129659, {1, 1, 1, 1, 27, 45, 43, 1, 381, 801, 451, 1361, 1611, 5379, 27819, 8949, 4953, 222335}}, +{21119, 18, 129680, {1, 1, 7, 7, 7, 11, 101, 17, 197, 561, 297, 159, 7443, 7273, 819, 23487, 24927, 151781}}, +{21120, 18, 129692, {1, 3, 1, 3, 15, 43, 119, 193, 205, 835, 7, 689, 8045, 11167, 19521, 65075, 87265, 53669}}, +{21121, 18, 129738, {1, 3, 7, 7, 9, 51, 43, 209, 239, 415, 995, 4037, 1219, 2683, 30459, 36161, 111157, 184551}}, +{21122, 18, 129764, {1, 3, 7, 11, 27, 3, 81, 43, 407, 463, 231, 3545, 2691, 5235, 22053, 37233, 98757, 149111}}, +{21123, 18, 129782, {1, 3, 1, 5, 17, 25, 47, 185, 487, 403, 1063, 1445, 4457, 15443, 11693, 54823, 131001, 9813}}, +{21124, 18, 129793, {1, 3, 5, 3, 5, 35, 127, 253, 173, 491, 133, 3575, 1981, 12735, 26021, 61615, 74615, 159829}}, +{21125, 18, 129820, {1, 1, 5, 9, 13, 37, 67, 155, 317, 389, 603, 4061, 3527, 9315, 32331, 43145, 82511, 240133}}, +{21126, 18, 129824, {1, 1, 5, 1, 21, 41, 89, 3, 61, 627, 1301, 2073, 447, 8139, 2509, 52075, 50687, 240239}}, +{21127, 18, 129829, {1, 3, 7, 13, 25, 61, 117, 107, 175, 7, 1173, 561, 5777, 10525, 20713, 34987, 48005, 214361}}, +{21128, 18, 129848, {1, 3, 7, 15, 25, 31, 127, 147, 177, 881, 95, 2115, 4765, 10485, 9253, 721, 193, 222459}}, +{21129, 18, 129854, {1, 3, 5, 3, 3, 13, 47, 77, 441, 1001, 215, 2365, 3603, 405, 11401, 14523, 65755, 258229}}, +{21130, 18, 129861, {1, 1, 3, 9, 19, 29, 71, 153, 77, 613, 1815, 2033, 1821, 15497, 18805, 28851, 88247, 143115}}, +{21131, 18, 129879, {1, 3, 1, 11, 21, 19, 37, 35, 427, 887, 1977, 1961, 3619, 10739, 30115, 55937, 102045, 110929}}, +{21132, 18, 129886, {1, 3, 3, 13, 21, 27, 49, 15, 405, 629, 2015, 867, 2121, 13789, 19225, 22343, 105629, 123113}}, +{21133, 18, 129907, {1, 1, 1, 1, 17, 19, 55, 207, 507, 1001, 1753, 315, 2799, 8643, 1519, 4057, 16599, 222223}}, +{21134, 18, 129949, {1, 1, 5, 7, 21, 37, 63, 53, 103, 261, 595, 389, 6041, 11127, 23625, 61683, 80953, 255891}}, +{21135, 18, 129953, {1, 1, 1, 5, 25, 21, 81, 233, 79, 57, 1311, 3965, 7747, 687, 32149, 397, 4551, 37657}}, +{21136, 18, 129980, {1, 1, 1, 5, 9, 19, 87, 67, 325, 157, 317, 591, 1401, 8275, 20413, 39529, 75349, 183679}}, +{21137, 18, 129998, {1, 3, 3, 15, 9, 3, 83, 205, 195, 599, 829, 3109, 3705, 13991, 8781, 41555, 31689, 86933}}, +{21138, 18, 130031, {1, 3, 5, 1, 3, 9, 37, 235, 271, 883, 561, 1473, 7693, 177, 14113, 19507, 75221, 67517}}, +{21139, 18, 130043, {1, 1, 1, 9, 7, 29, 87, 189, 239, 429, 537, 1657, 6373, 2449, 17621, 19649, 77235, 102775}}, +{21140, 18, 130057, {1, 1, 7, 7, 1, 43, 69, 207, 241, 561, 1809, 3119, 4657, 15797, 18751, 52169, 105005, 172657}}, +{21141, 18, 130065, {1, 1, 7, 5, 5, 59, 67, 231, 27, 435, 1073, 2689, 229, 733, 1579, 52289, 110285, 76721}}, +{21142, 18, 130087, {1, 3, 5, 9, 31, 19, 87, 41, 489, 705, 1363, 963, 5865, 8237, 10295, 43169, 81561, 177209}}, +{21143, 18, 130091, {1, 3, 3, 1, 25, 39, 63, 255, 403, 625, 1601, 71, 6609, 4165, 21987, 31269, 25473, 17063}}, +{21144, 18, 130096, {1, 3, 3, 11, 19, 13, 101, 245, 17, 687, 1037, 3345, 7257, 13081, 5131, 29003, 72319, 223505}}, +{21145, 18, 130101, {1, 3, 3, 3, 11, 49, 107, 29, 463, 465, 977, 4007, 2121, 4821, 1465, 53725, 36783, 247057}}, +{21146, 18, 130111, {1, 1, 1, 3, 1, 43, 71, 49, 261, 965, 1041, 3951, 3791, 2503, 26009, 52039, 4639, 141281}}, +{21147, 18, 130126, {1, 1, 3, 5, 29, 45, 79, 33, 119, 491, 1403, 1637, 853, 5609, 29853, 16435, 117877, 58443}}, +{21148, 18, 130137, {1, 1, 3, 5, 13, 17, 109, 187, 201, 705, 235, 1485, 7673, 6335, 3341, 20451, 64697, 129519}}, +{21149, 18, 130138, {1, 1, 7, 13, 11, 41, 95, 81, 135, 783, 1293, 2095, 3599, 10175, 3205, 56915, 131, 19281}}, +{21150, 18, 130149, {1, 3, 5, 9, 13, 19, 53, 223, 283, 733, 1915, 3029, 2779, 8133, 28163, 37263, 91245, 1927}}, +{21151, 18, 130177, {1, 3, 3, 3, 1, 55, 41, 123, 209, 195, 1423, 2467, 3809, 11169, 23593, 8703, 40975, 175651}}, +{21152, 18, 130180, {1, 3, 7, 9, 31, 57, 31, 115, 415, 445, 557, 3971, 1565, 15223, 7799, 10463, 117387, 225127}}, +{21153, 18, 130214, {1, 3, 5, 11, 31, 19, 3, 63, 315, 501, 903, 1925, 3393, 16149, 11013, 15483, 70765, 279}}, +{21154, 18, 130228, {1, 3, 3, 9, 29, 21, 13, 227, 263, 815, 1259, 2549, 955, 9237, 16083, 38891, 31145, 731}}, +{21155, 18, 130240, {1, 3, 3, 5, 27, 23, 33, 189, 107, 655, 889, 1549, 7315, 13341, 12721, 59339, 54503, 91679}}, +{21156, 18, 130267, {1, 3, 7, 5, 15, 9, 1, 255, 451, 91, 1279, 2359, 5913, 5215, 23161, 29327, 45275, 206709}}, +{21157, 18, 130280, {1, 3, 3, 9, 9, 41, 75, 91, 87, 695, 335, 3375, 7307, 14095, 5359, 7815, 9339, 46387}}, +{21158, 18, 130294, {1, 1, 3, 15, 5, 47, 69, 231, 423, 255, 1335, 3395, 2799, 8955, 31445, 59849, 104955, 240587}}, +{21159, 18, 130306, {1, 3, 5, 7, 7, 9, 21, 209, 321, 5, 653, 2199, 3657, 6397, 20229, 32349, 54543, 47971}}, +{21160, 18, 130325, {1, 3, 7, 11, 31, 21, 85, 49, 197, 865, 53, 609, 1867, 14503, 12671, 61703, 39245, 8493}}, +{21161, 18, 130398, {1, 3, 1, 13, 27, 31, 119, 247, 209, 65, 1729, 1563, 1597, 1617, 26597, 50139, 108667, 77035}}, +{21162, 18, 130402, {1, 1, 5, 13, 3, 49, 53, 219, 71, 1013, 1239, 3725, 117, 9273, 8277, 32619, 45933, 71509}}, +{21163, 18, 130421, {1, 3, 7, 13, 1, 3, 119, 153, 79, 555, 429, 1221, 3725, 6073, 1295, 7187, 117709, 258911}}, +{21164, 18, 130438, {1, 3, 3, 13, 1, 13, 105, 185, 81, 989, 563, 3761, 6725, 4699, 10539, 50247, 95307, 211927}}, +{21165, 18, 130441, {1, 3, 7, 3, 21, 11, 45, 81, 495, 391, 1437, 3495, 3789, 13701, 9479, 42505, 22561, 135019}}, +{21166, 18, 130475, {1, 3, 3, 11, 7, 61, 65, 211, 269, 997, 385, 3843, 4905, 2939, 28551, 19515, 25177, 68137}}, +{21167, 18, 130486, {1, 1, 3, 3, 3, 47, 73, 127, 15, 977, 209, 1791, 4711, 6733, 29093, 36311, 13665, 240603}}, +{21168, 18, 130503, {1, 3, 5, 5, 19, 39, 29, 211, 463, 755, 1723, 397, 213, 14009, 22701, 7131, 35587, 183885}}, +{21169, 18, 130551, {1, 3, 5, 9, 11, 29, 7, 25, 381, 631, 1343, 2255, 2535, 3239, 7287, 14161, 69295, 85245}}, +{21170, 18, 130574, {1, 1, 5, 5, 17, 47, 19, 217, 289, 411, 1855, 323, 4109, 2601, 5835, 61909, 99333, 99959}}, +{21171, 18, 130602, {1, 1, 3, 11, 1, 51, 121, 207, 403, 993, 1171, 3451, 3389, 957, 22125, 9333, 110775, 54125}}, +{21172, 18, 130612, {1, 3, 5, 15, 9, 51, 13, 251, 203, 861, 321, 2017, 6933, 10785, 20089, 65213, 105451, 117319}}, +{21173, 18, 130621, {1, 3, 3, 15, 19, 63, 89, 217, 269, 723, 57, 1923, 4267, 4895, 2191, 21605, 62401, 11063}}, +{21174, 18, 130633, {1, 3, 1, 3, 21, 47, 103, 75, 167, 989, 1401, 575, 3717, 10373, 21321, 5487, 36063, 140411}}, +{21175, 18, 130684, {1, 1, 7, 15, 19, 29, 121, 197, 429, 773, 901, 1875, 291, 11395, 31459, 55041, 49263, 185143}}, +{21176, 18, 130688, {1, 3, 3, 1, 19, 17, 19, 21, 41, 885, 1665, 547, 5887, 6205, 3317, 59399, 125559, 82721}}, +{21177, 18, 130698, {1, 3, 1, 9, 15, 39, 81, 9, 279, 33, 1287, 3035, 5759, 10647, 3933, 20953, 3137, 30693}}, +{21178, 18, 130700, {1, 3, 5, 13, 3, 33, 33, 169, 233, 83, 467, 3719, 5617, 6165, 15631, 56059, 95541, 245233}}, +{21179, 18, 130712, {1, 3, 5, 13, 5, 21, 81, 9, 413, 247, 1307, 3363, 3383, 11525, 1259, 8735, 36507, 98359}}, +{21180, 18, 130739, {1, 1, 1, 13, 17, 49, 105, 131, 385, 309, 1295, 565, 8031, 15391, 31263, 52657, 102721, 212195}}, +{21181, 18, 130748, {1, 3, 1, 7, 13, 41, 21, 103, 237, 649, 55, 1565, 6327, 8743, 15457, 29975, 34165, 80839}}, +{21182, 18, 130774, {1, 3, 5, 11, 15, 31, 121, 219, 375, 159, 731, 59, 3205, 15039, 10023, 46209, 34619, 110253}}, +{21183, 18, 130783, {1, 3, 3, 11, 31, 19, 79, 185, 363, 635, 463, 987, 2681, 6405, 30077, 21173, 14213, 58095}}, +{21184, 18, 130802, {1, 1, 5, 13, 23, 37, 57, 111, 293, 553, 269, 3393, 345, 1983, 1097, 47217, 22281, 212607}}, +{21185, 18, 130811, {1, 3, 5, 7, 7, 33, 65, 61, 185, 411, 187, 641, 6437, 4625, 17547, 38941, 81119, 48651}}, +{21186, 18, 130836, {1, 1, 7, 3, 19, 25, 39, 243, 139, 465, 691, 713, 7879, 14539, 31669, 35871, 130681, 255929}}, +{21187, 18, 130840, {1, 3, 1, 1, 3, 43, 87, 13, 179, 835, 719, 1189, 7207, 5863, 6077, 20669, 35469, 211155}}, +{21188, 18, 130856, {1, 3, 7, 13, 25, 59, 97, 129, 151, 985, 739, 1919, 7729, 14057, 21721, 17603, 82797, 181319}}, +{21189, 18, 130864, {1, 1, 7, 7, 5, 3, 21, 141, 379, 257, 207, 597, 4051, 7563, 25481, 59427, 45449, 61159}}, +{21190, 18, 130873, {1, 3, 3, 9, 11, 25, 5, 29, 131, 603, 637, 189, 4033, 13099, 15219, 4447, 73501, 135795}}, +{21191, 18, 130918, {1, 3, 1, 9, 1, 49, 57, 227, 141, 543, 1499, 3525, 3127, 11191, 4071, 47003, 7431, 155137}}, +{21192, 18, 130927, {1, 3, 1, 11, 27, 31, 15, 31, 113, 135, 1251, 245, 6965, 14263, 5679, 55201, 121453, 132503}}, +{21193, 18, 130929, {1, 1, 5, 15, 7, 23, 67, 163, 57, 513, 1809, 1343, 6165, 199, 31169, 30803, 86705, 71103}}, +{21194, 18, 130958, {1, 1, 3, 1, 15, 9, 75, 143, 273, 797, 819, 4037, 2305, 4841, 15697, 41191, 38187, 174131}}, +{21195, 18, 130966, {1, 3, 7, 7, 3, 55, 65, 135, 423, 185, 299, 2221, 7987, 4223, 28183, 32273, 95941, 260297}}, +{21196, 18, 130970, {1, 1, 7, 7, 7, 11, 67, 109, 507, 673, 1555, 2537, 7553, 4659, 3945, 20839, 32539, 43053}}, +{21197, 18, 130976, {1, 1, 7, 15, 1, 47, 61, 73, 211, 397, 1785, 4063, 6461, 13725, 11299, 17565, 80063, 118271}}, +{21198, 18, 131006, {1, 1, 7, 5, 29, 27, 97, 105, 379, 153, 915, 2795, 4933, 6729, 21207, 9995, 70241, 85641}}, +{21199, 18, 131008, {1, 3, 5, 5, 23, 13, 41, 67, 127, 649, 1351, 3597, 7077, 4989, 14649, 17401, 70883, 239841}}, +{21200, 18, 131020, {1, 1, 5, 1, 19, 1, 83, 3, 425, 873, 1943, 3935, 4257, 14587, 11829, 55217, 21963, 39683}}, +{21201, 18, 131059, {1, 1, 7, 11, 15, 7, 37, 239, 337, 245, 1557, 3681, 7357, 9639, 27367, 26869, 114603, 86317}} +}; + +void sobol_generate_direction_vectors(unsigned int vectors[][SOBOL_BITS], int dimensions) +{ + assert(dimensions <= SOBOL_MAX_DIMENSIONS); + + const unsigned int L = SOBOL_BITS; + + /* first dimension is exception */ + unsigned int *v = vectors[0]; + + for(unsigned int i = 0; i < L; i++) + v[i] = 1 << (31-i); // all m's = 1 + + for(int dim = 1; dim < dimensions; dim++) { + SobolDirectionNumbers *numbers = &SOBOL_NUMBERS[dim-1]; + unsigned int s = numbers->s; + unsigned int a = numbers->a; + unsigned int *m = numbers->m; + + v = vectors[dim]; + + if(L <= s) { + for(unsigned int i = 0; i < L; i++) + v[i] = m[i] << (31-i); + } + else { + for(unsigned int i = 0; i < s; i++) + v[i] = m[i] << (31-i); + + for(unsigned int i = s; i < L; i++) { + v[i] = v[i-s] ^ (v[i-s] >> s); + + for(unsigned int k = 1; k < s; k++) + v[i] ^= (((a >> (s-1-k)) & 1) * v[i-k]); + } + } + } +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/sobol.h b/intern/cycles/render/sobol.h new file mode 100644 index 00000000000..bfc2f5512aa --- /dev/null +++ b/intern/cycles/render/sobol.h @@ -0,0 +1,32 @@ +/* + * 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 __SOBOL_H__ +#define __SOBOL_H__ + +CCL_NAMESPACE_BEGIN + +#define SOBOL_BITS 32 +#define SOBOL_MAX_DIMENSIONS 21201 + +void sobol_generate_direction_vectors(unsigned int vectors[][SOBOL_BITS], int dimensions); + +CCL_NAMESPACE_END + +#endif /* __SOBOL_H__ */ + diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp new file mode 100644 index 00000000000..da52eaecc18 --- /dev/null +++ b/intern/cycles/render/svm.cpp @@ -0,0 +1,537 @@ +/* + * 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 "graph.h" +#include "light.h" +#include "mesh.h" +#include "scene.h" +#include "shader.h" +#include "svm.h" + +#include "util_debug.h" +#include "util_foreach.h" +#include "util_progress.h" + +CCL_NAMESPACE_BEGIN + +/* Shader Manager */ + +SVMShaderManager::SVMShaderManager() +{ +} + +SVMShaderManager::~SVMShaderManager() +{ +} + +void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + if(!need_update) + return; + + /* test if we need to update */ + device_free(device, dscene); + + /* svm_nodes */ + vector svm_nodes; + size_t i; + + for(i = 0; i < scene->shaders.size(); i++) { + svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0)); + svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0)); + } + + bool sunsky_done = false; + + for(i = 0; i < scene->shaders.size(); i++) { + Shader *shader = scene->shaders[i]; + + if(progress.get_cancel()) return; + + assert(shader->graph); + + if(shader->has_surface_emission) + scene->light_manager->need_update = true; + + SVMCompiler compiler(scene->shader_manager, scene->image_manager); + compiler.sunsky = (sunsky_done)? NULL: &dscene->data.sunsky; + compiler.background = ((int)i == scene->default_background); + compiler.compile(shader, svm_nodes, i); + if(!compiler.sunsky) + sunsky_done = true; + } + + dscene->svm_nodes.copy((uint4*)&svm_nodes[0], svm_nodes.size()); + device->tex_alloc("__svm_nodes", dscene->svm_nodes); + + for(i = 0; i < scene->shaders.size(); i++) { + Shader *shader = scene->shaders[i]; + shader->need_update = false; + } + + need_update = false; +} + +void SVMShaderManager::device_free(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->svm_nodes); + dscene->svm_nodes.clear(); +} + +/* Graph Compiler */ + +SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_manager_) +{ + shader_manager = shader_manager_; + image_manager = image_manager_; + sunsky = NULL; + max_stack_use = 0; + current_type = SHADER_TYPE_SURFACE; + current_shader = NULL; + background = false; +} + +int SVMCompiler::stack_size(ShaderSocketType type) +{ + if(type == SHADER_SOCKET_FLOAT) + return 1; + else if(type == SHADER_SOCKET_COLOR) + return 3; + else if(type == SHADER_SOCKET_VECTOR) + return 3; + else if(type == SHADER_SOCKET_NORMAL) + return 3; + else if(type == SHADER_SOCKET_POINT) + return 3; + else if(type == SHADER_SOCKET_CLOSURE) + return 0; + + assert(0); + return 0; +} + +int SVMCompiler::stack_find_offset(ShaderSocketType type) +{ + int size = stack_size(type); + int offset = -1; + + /* find free space in stack & mark as used */ + for(int i = 0, num_unused = 0; i < SVM_STACK_SIZE; i++) { + if(active_stack.users[i]) num_unused = 0; + else num_unused++; + + if(num_unused == size) { + offset = i+1 - size; + max_stack_use = max(i+1, max_stack_use); + + while(i >= offset) + active_stack.users[i--] = 1; + + return offset; + } + } + + fprintf(stderr, "Out of SVM stack space.\n"); + assert(0); + + return offset; +} + +void SVMCompiler::stack_assign(ShaderInput *input) +{ + /* stack offset assign? */ + if(input->stack_offset == SVM_STACK_INVALID) { + if(input->link) { + /* linked to output -> use output offset */ + input->stack_offset = input->link->stack_offset; + } + else { + /* not linked to output -> add nodes to load default value */ + input->stack_offset = stack_find_offset(input->type); + + if(input->type == SHADER_SOCKET_FLOAT) { + add_node(NODE_VALUE_F, __float_as_int(input->value.x), input->stack_offset); + } + else if(input->type == SHADER_SOCKET_VECTOR || + input->type == SHADER_SOCKET_NORMAL || + input->type == SHADER_SOCKET_POINT || + input->type == SHADER_SOCKET_COLOR) { + + add_node(NODE_VALUE_V, input->stack_offset); + add_node(NODE_VALUE_V, input->value); + } + else /* should not get called for closure */ + assert(0); + } + } +} + +void SVMCompiler::stack_assign(ShaderOutput *output) +{ + /* if no stack offset assigned yet, find one */ + if(output->stack_offset == SVM_STACK_INVALID) + output->stack_offset = stack_find_offset(output->type); +} + +void SVMCompiler::stack_link(ShaderInput *input, ShaderOutput *output) +{ + if(output->stack_offset == SVM_STACK_INVALID) { + assert(input->link); + assert(stack_size(output->type) == stack_size(input->link->type)); + + output->stack_offset = input->link->stack_offset; + + int size = stack_size(output->type); + + for(int i = 0; i < size; i++) + active_stack.users[output->stack_offset + i]++; + } +} + +void SVMCompiler::stack_clear_users(ShaderNode *node, set& done) +{ + /* optimization we should add: + find and lower user counts for outputs for which all inputs are done. + this is done before the node is compiled, under the assumption that the + node will first load all inputs from the stack and then writes its + outputs. this used to work, but was disabled because it gave trouble + with inputs getting stack positions assigned */ + + foreach(ShaderInput *input, node->inputs) { + ShaderOutput *output = input->link; + + if(output && output->stack_offset != SVM_STACK_INVALID) { + bool all_done = true; + + /* optimization we should add: verify if in->parent is actually used */ + foreach(ShaderInput *in, output->links) + if(in->parent != node && done.find(in->parent) == done.end()) + all_done = false; + + if(all_done) { + int size = stack_size(output->type); + + for(int i = 0; i < size; i++) + active_stack.users[output->stack_offset + i]--; + } + } + } +} + +void SVMCompiler::stack_clear_temporary(ShaderNode *node) +{ + foreach(ShaderInput *input, node->inputs) { + if(!input->link && input->stack_offset != SVM_STACK_INVALID) { + int size = stack_size(input->type); + + for(int i = 0; i < size; i++) + active_stack.users[input->stack_offset + i]--; + } + } +} + +uint SVMCompiler::encode_uchar4(uint x, uint y, uint z, uint w) +{ + assert(x <= 255); + assert(y <= 255); + assert(z <= 255); + assert(w <= 255); + + return (x) | (y << 8) | (z << 16) | (w << 24); +} + +void SVMCompiler::add_node(int a, int b, int c, int d) +{ + svm_nodes.push_back(make_int4(a, b, c, d)); +} + +void SVMCompiler::add_node(NodeType type, int a, int b, int c) +{ + svm_nodes.push_back(make_int4(type, a, b, c)); +} + +void SVMCompiler::add_node(NodeType type, const float3& f) +{ + svm_nodes.push_back(make_int4(type, + __float_as_int(f.x), + __float_as_int(f.y), + __float_as_int(f.z))); +} + +void SVMCompiler::add_node(const float4& f) +{ + svm_nodes.push_back(make_int4( + __float_as_int(f.x), + __float_as_int(f.y), + __float_as_int(f.z), + __float_as_int(f.w))); +} + +uint SVMCompiler::attribute(ustring name) +{ + return shader_manager->get_attribute_id(name); +} + +uint SVMCompiler::attribute(Attribute::Standard std) +{ + return shader_manager->get_attribute_id(std); +} + +bool SVMCompiler::node_skip_input(ShaderNode *node, ShaderInput *input) +{ + /* nasty exception .. */ + if(current_type == SHADER_TYPE_DISPLACEMENT && input->link && input->link->parent->name == ustring("bump")) + return true; + + return false; +} + +void SVMCompiler::find_dependencies(set& dependencies, const set& done, ShaderInput *input) +{ + ShaderNode *node = (input->link)? input->link->parent: NULL; + + if(node && done.find(node) == done.end()) { + foreach(ShaderInput *in, node->inputs) + if(!node_skip_input(node, in)) + find_dependencies(dependencies, done, in); + + dependencies.insert(node); + } +} + +void SVMCompiler::generate_svm_nodes(const set& nodes, set& done) +{ + bool nodes_done; + + do { + nodes_done = true; + + foreach(ShaderNode *node, nodes) { + if(done.find(node) == done.end()) { + bool inputs_done = true; + + foreach(ShaderInput *input, node->inputs) + if(!node_skip_input(node, input)) + if(input->link && done.find(input->link->parent) == done.end()) + inputs_done = false; + + if(inputs_done) { + node->compile(*this); + stack_clear_users(node, done); + stack_clear_temporary(node); + done.insert(node); + } + else + nodes_done = false; + } + } + } while(!nodes_done); +} + +void SVMCompiler::generate_closure(ShaderNode *node, set done, Stack stack) +{ + /* note that done and stack are passed by value, that's intentional + because different branches of the closure tree should not influence + each other */ + active_stack = stack; + + if(node->name == ustring("mix_closure") || node->name == ustring("add_closure")) { + ShaderInput *fin = node->input("Fac"); + ShaderInput *cl1in = node->input("Closure1"); + ShaderInput *cl2in = node->input("Closure2"); + + /* execute dependencies for mix weight */ + if(fin) { + set dependencies; + find_dependencies(dependencies, done, fin); + generate_svm_nodes(dependencies, done); + + /* add mix node */ + stack_assign(fin); + } + + int mix_offset = svm_nodes.size(); + + if(fin) + add_node(NODE_MIX_CLOSURE, fin->stack_offset, 0, 0); + else + add_node(NODE_ADD_CLOSURE, 0, 0, 0); + + /* generate code for closure 1 */ + if(cl1in->link) { + generate_closure(cl1in->link->parent, done, stack); + add_node(NODE_END, 0, 0, 0); + active_stack = stack; + } + else + add_node(NODE_END, 0, 0, 0); + + /* generate code for closure 2 */ + int cl2_offset = svm_nodes.size(); + + if(cl2in->link) { + generate_closure(cl2in->link->parent, done, stack); + add_node(NODE_END, 0, 0, 0); + active_stack = stack; + } + else + add_node(NODE_END, 0, 0, 0); + + /* set jump for mix node, -1 because offset is already + incremented when this jump is added to it */ + svm_nodes[mix_offset].z = cl2_offset - mix_offset - 1; + } + else { + /* execute dependencies for closure */ + foreach(ShaderInput *in, node->inputs) { + if(!node_skip_input(node, in) && in->link) { + set dependencies; + find_dependencies(dependencies, done, in); + generate_svm_nodes(dependencies, done); + } + } + + /* compile closure itself */ + node->compile(*this); + stack_clear_users(node, done); + stack_clear_temporary(node); + + if(node->name == ustring("emission")) + current_shader->has_surface_emission = true; + + /* end node is added outside of this */ + } +} + +void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType type) +{ + /* Converting a shader graph into svm_nodes that can be executed + * sequentially on the virtual machine is fairly simple. We can keep + * looping over nodes and each time all the inputs of a node are + * ready, we add svm_nodes for it that read the inputs from the + * stack and write outputs back to the stack. + * + * With the SVM, we always sample only a single closure. We can think + * of all closures nodes as a binary tree with mix closures as inner + * nodes and other closures as leafs. The SVM will traverse that tree, + * each time deciding to go left or right depending on the mix weights, + * until a closure is found. + * + * We only execute nodes that are needed for the mix weights and chosen + * closure. + */ + + current_type = type; + + /* get input in output node */ + ShaderNode *node = graph->output(); + ShaderInput *clin = NULL; + + if(type == SHADER_TYPE_SURFACE) + clin = node->input("Surface"); + else if(type == SHADER_TYPE_VOLUME) + clin = node->input("Volume"); + else if(type == SHADER_TYPE_DISPLACEMENT) + clin = node->input("Displacement"); + else + assert(0); + + /* clear all compiler state */ + memset(&active_stack, 0, sizeof(active_stack)); + svm_nodes.clear(); + + foreach(ShaderNode *node, graph->nodes) { + foreach(ShaderInput *input, node->inputs) + input->stack_offset = SVM_STACK_INVALID; + foreach(ShaderOutput *output, node->outputs) + output->stack_offset = SVM_STACK_INVALID; + } + + if(clin->link) { + if(type == SHADER_TYPE_SURFACE) { + /* generate surface shader */ + generate_closure(clin->link->parent, set(), Stack()); + shader->has_surface = true; + } + else if(type == SHADER_TYPE_VOLUME) { + /* generate volume shader */ + generate_closure(clin->link->parent, set(), Stack()); + shader->has_volume = true; + } + else if(type == SHADER_TYPE_DISPLACEMENT) { + /* generate displacement shader */ + generate_closure(clin->link->parent, set(), Stack()); + shader->has_displacement = true; + } + } + + /* compile output node */ + node->compile(*this); + + add_node(NODE_END, 0, 0, 0); +} + +void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int index) +{ + /* copy graph for shader with bump mapping */ + ShaderNode *node = shader->graph->output(); + + if(node->input("Surface")->link && node->input("Displacement")->link) + if(!shader->graph_bump) + shader->graph_bump = shader->graph->copy(); + + /* finalize */ + shader->graph->finalize(false, false); + if(shader->graph_bump) + shader->graph_bump->finalize(true, false); + + current_shader = shader; + + shader->has_surface = false; + shader->has_surface_emission = false; + shader->has_volume = false; + shader->has_displacement = false; + + /* generate surface shader */ + compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); + global_svm_nodes[index*2 + 0].y = global_svm_nodes.size(); + global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); + + if(shader->graph_bump) { + compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); + global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); + } + + /* generate volume shader */ + compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); + global_svm_nodes[index*2 + 0].z = global_svm_nodes.size(); + global_svm_nodes[index*2 + 1].z = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); + + /* generate displacement shader */ + compile_type(shader, shader->graph, SHADER_TYPE_DISPLACEMENT); + global_svm_nodes[index*2 + 0].w = global_svm_nodes.size(); + global_svm_nodes[index*2 + 1].w = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h new file mode 100644 index 00000000000..346d2a73801 --- /dev/null +++ b/intern/cycles/render/svm.h @@ -0,0 +1,104 @@ +/* + * 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 __SVM_H__ +#define __SVM_H__ + +#include "attribute.h" +#include "graph.h" +#include "shader.h" + +#include "util_set.h" + +CCL_NAMESPACE_BEGIN + +class Device; +class DeviceScene; +class ImageManager; +class KernelSunSky; +class Scene; +class ShaderGraph; +class ShaderInput; +class ShaderNode; +class ShaderOutput; + +/* Shader Manager */ + +class SVMShaderManager : public ShaderManager { +public: + SVMShaderManager(); + ~SVMShaderManager(); + + void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_free(Device *device, DeviceScene *dscene); +}; + +/* Graph Compiler */ + +class SVMCompiler { +public: + SVMCompiler(ShaderManager *shader_manager, ImageManager *image_manager); + void compile(Shader *shader, vector& svm_nodes, int index); + + void stack_assign(ShaderOutput *output); + void stack_assign(ShaderInput *input); + void stack_link(ShaderInput *input, ShaderOutput *output); + void add_node(NodeType type, int a = 0, int b = 0, int c = 0); + void add_node(int a = 0, int b = 0, int c = 0, int d = 0); + void add_node(NodeType type, const float3& f); + void add_node(const float4& f); + uint attribute(ustring name); + uint attribute(Attribute::Standard std); + uint encode_uchar4(uint x, uint y = 0, uint z = 0, uint w = 0); + + ShaderType output_type() { return current_type; } + + ImageManager *image_manager; + ShaderManager *shader_manager; + KernelSunSky *sunsky; + bool background; + +protected: + struct Stack { + int users[SVM_STACK_SIZE]; + }; + + void stack_clear_temporary(ShaderNode *node); + int stack_size(ShaderSocketType type); + int stack_find_offset(ShaderSocketType type); + void stack_clear_users(ShaderNode *node, set& done); + + bool node_skip_input(ShaderNode *node, ShaderInput *input); + + void find_dependencies(set& dependencies, const set& done, ShaderInput *input); + void generate_svm_nodes(const set& nodes, set& done); + void generate_closure(ShaderNode *node, set done, Stack stack); + + void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); + + vector svm_nodes; + ShaderType current_type; + Shader *current_shader; + Stack active_stack; + int max_stack_use; +}; + +CCL_NAMESPACE_END + +#endif /* __SVM_H__ */ + diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp new file mode 100644 index 00000000000..28ea39e70ed --- /dev/null +++ b/intern/cycles/render/tile.cpp @@ -0,0 +1,116 @@ +/* + * 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 "tile.h" + +#include "util_algorithm.h" + +CCL_NAMESPACE_BEGIN + +TileManager::TileManager(bool progressive_, int passes_, int tile_size_, int min_size_) +{ + progressive = progressive_; + passes = passes_; + tile_size = tile_size_; + min_size = min_size_; + + reset(0, 0); +} + +TileManager::~TileManager() +{ +} + +void TileManager::reset(int width_, int height_) +{ + full_width = width_; + full_height = height_; + + start_resolution = 1; + + int w = width_, h = height_; + + if(min_size != INT_MAX) { + while(w*h > min_size*min_size) { + w = max(1, w/2); + h = max(1, h/2); + + start_resolution *= 2; + } + } + + state.width = 0; + state.height = 0; + state.pass = -1; + state.resolution = start_resolution; + state.tiles.clear(); +} + +void TileManager::set_tiles() +{ + int resolution = state.resolution; + int image_w = max(1, full_width/resolution); + int image_h = max(1, full_height/resolution); + int tile_w = (image_w + tile_size - 1)/tile_size; + int tile_h = (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; + + state.tiles.push_back(Tile(x, y, w, h)); + } + } + + state.width = image_w; + state.height = image_h; +} + +bool TileManager::done() +{ + return (state.pass+1 >= passes); +} + +bool TileManager::next() +{ + if(done()) + return false; + + if(progressive && state.resolution > 1) { + state.pass = 0; + state.resolution /= 2; + set_tiles(); + } + else { + state.pass++; + state.resolution = 1; + set_tiles(); + } + + return true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h new file mode 100644 index 00000000000..c3517b1e24d --- /dev/null +++ b/intern/cycles/render/tile.h @@ -0,0 +1,73 @@ +/* + * 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 __TILE_H__ +#define __TILE_H__ + +#include + +#include "util_list.h" + +CCL_NAMESPACE_BEGIN + +/* Tile */ + +class Tile { +public: + int x, y, w, h; + + Tile(int x_, int y_, int w_, int h_) + : x(x_), y(y_), w(w_), h(h_) {} +}; + +/* Tile Manager */ + +class TileManager { +public: + struct State { + int width; + int height; + int pass; + int resolution; + list tiles; + } state; + + TileManager(bool progressive, int passes, int tile_size, int min_size); + ~TileManager(); + + void reset(int width, int height); + bool next(); + bool done(); + +protected: + void set_tiles(); + + bool progressive; + int passes; + int tile_size; + int min_size; + + int full_width; + int full_height; + int start_resolution; +}; + +CCL_NAMESPACE_END + +#endif /* __TILE_H__ */ + diff --git a/intern/cycles/subd/CMakeLists.txt b/intern/cycles/subd/CMakeLists.txt new file mode 100644 index 00000000000..a14bf7896d8 --- /dev/null +++ b/intern/cycles/subd/CMakeLists.txt @@ -0,0 +1,26 @@ + +INCLUDE_DIRECTORIES(. ../util ../kernel ../kernel/svm ../render) + +SET(sources + subd_build.cpp + subd_dice.cpp + subd_mesh.cpp + subd_patch.cpp + subd_ring.cpp + subd_split.cpp + subd_stencil.cpp) + +SET(headers + subd_build.h + subd_dice.h + subd_edge.h + subd_face.h + subd_mesh.h + subd_patch.h + subd_ring.h + subd_split.h + subd_stencil.h + subd_vert.h) + +ADD_LIBRARY(subd ${sources} ${headers}) + diff --git a/intern/cycles/subd/subd_build.cpp b/intern/cycles/subd/subd_build.cpp new file mode 100644 index 00000000000..4c2a6299014 --- /dev/null +++ b/intern/cycles/subd/subd_build.cpp @@ -0,0 +1,666 @@ +/* + * Copyright 2006, NVIDIA Corporation Ignacio Castano + * + * Modifications copyright (c) 2011, Blender Foundation. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "subd_build.h" +#include "subd_edge.h" +#include "subd_face.h" +#include "subd_ring.h" +#include "subd_mesh.h" +#include "subd_patch.h" +#include "subd_stencil.h" +#include "subd_vert.h" + +#include "util_algorithm.h" +#include "util_debug.h" +#include "util_math.h" +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +/* Subd Builder */ + +SubdBuilder *SubdBuilder::create(bool linear) +{ + if(linear) + return new SubdLinearBuilder(); + else + return new SubdAccBuilder(); +} + +/* Gregory ACC Stencil */ + +class GregoryAccStencil { +public: + SubdFaceRing *ring; + StencilMask stencil[20]; + + GregoryAccStencil(SubdFaceRing *ring_) + { + ring = ring_; + + for(int i = 0; i < 20; i++) + stencil[i].resize(ring->num_verts()); + } + + StencilMask& get(int i) + { + assert(i < 20); + return stencil[i]; + } + + float& get(int i, SubdVert *vert) + { + assert(i < 20); + return stencil[i][ring->vert_index(vert)]; + } +}; + +static float pseudoValence(SubdVert *vert) +{ + float valence = (float)vert->valence(); + + if(vert->is_boundary()) { + /* we treat boundary verts as being half a closed mesh. corners are + special case. n = 4 for corners and n = 2*(n-1) for boundaries. */ + if(valence == 2) return 4; + return (valence - 1)*2; + } + + return valence; +} + +/* Subd ACC Builder */ + +SubdAccBuilder::SubdAccBuilder() +{ +} + +SubdAccBuilder::~SubdAccBuilder() +{ +} + +Patch *SubdAccBuilder::run(SubdFace *face) +{ + SubdFaceRing ring(face, face->edge); + GregoryAccStencil stencil(&ring); + float3 position[20]; + + computeCornerStencil(&ring, &stencil); + computeEdgeStencil(&ring, &stencil); + computeInteriorStencil(&ring, &stencil); + + ring.evaluate_stencils(position, stencil.stencil, 20); + + if(face->num_edges() == 3) { + GregoryTrianglePatch *patch = new GregoryTrianglePatch(); + memcpy(patch->hull, position, sizeof(float3)*20); + return patch; + } + else if(face->num_edges() == 4) { + GregoryQuadPatch *patch = new GregoryQuadPatch(); + memcpy(patch->hull, position, sizeof(float3)*20); + return patch; + } + + assert(0); /* n-gons should have been split already */ + return NULL; +} + +/* Gregory Patch */ + +void SubdAccBuilder::computeCornerStencil(SubdFaceRing *ring, GregoryAccStencil *stencil) +{ + const int cornerIndices[7] = {8, 11, 19, 16, 6, 9, 12}; + int primitiveOffset = ring->is_quad()? 0: 4; + + SubdEdge *firstEdge = ring->firstEdge(); + + /* compute corner control points */ + int v = 0; + + for(SubdFace::EdgeIterator it(firstEdge); !it.isDone(); it.advance(), v++) { + SubdVert *vert = it.current()->from(); + int valence = vert->valence(); + int cid = cornerIndices[primitiveOffset+v]; + + if(vert->is_boundary()) { + /* compute vertex limit position */ + SubdEdge *edge0 = vert->edge; + SubdEdge *edge1 = vert->edge->prev; + + assert(edge0->face == NULL); + assert(edge0->to() != vert); + assert(edge1->face == NULL); + assert(edge1->from() != vert); + + stencil->get(cid, vert) = 2.0f/3.0f; + stencil->get(cid, edge0->to()) = 1.0f/6.0f; + stencil->get(cid, edge1->from()) = 1.0f/6.0f; + + assert(stencil->get(cid).is_normalized()); + } + else { + stencil->get(cid, vert) = 3.0f*valence*valence; + + for(SubdVert::EdgeIterator eit(vert->edge); !eit.isDone(); eit.advance()) { + SubdEdge *edge = eit.current(); + assert(vert->co == edge->from()->co); + + stencil->get(cid, edge->to()) = 12.0f; + + if(SubdFaceRing::is_triangle(edge->face)) { + /* distribute weight to all verts */ + stencil->get(cid, vert) += 1.0f; + stencil->get(cid, edge->to()) += 1.0f; + stencil->get(cid, edge->next->to()) += 1.0f; + } + else + stencil->get(cid, edge->next->to()) = 3.0f; + } + + /* normalize stencil. */ + stencil->get(cid).normalize(); + } + } +} + +void SubdAccBuilder::computeEdgeStencil(SubdFaceRing *ring, GregoryAccStencil *stencil) +{ + const int cornerIndices[7] = {8, 11, 19, 16, 6, 9, 12}; + const int edge1Indices[7] = {9, 13, 18, 14, 7, 10, 13}; + const int edge2Indices[7] = {12, 10, 15, 17, 14, 8, 11}; + int primitiveOffset = ring->is_quad()? 0: 4; + + float tangentScales[14] = { + 0.0f, 0.0f, 0.0f, 0.667791f, 1.0f, + 1.11268f, 1.1284f, 1.10289f, 1.06062f, + 1.01262f, 0.963949f, 0.916926f, 0.872541f, 0.831134f + }; + + SubdEdge *firstEdge = ring->firstEdge(); + + /* compute corner / edge control points */ + int v = 0; + + for(SubdFace::EdgeIterator it(firstEdge); !it.isDone(); it.advance(), v++) { + SubdVert *vert = it.current()->from(); + int valence = vert->valence(); + int cid = cornerIndices[primitiveOffset+v]; + + int i1 = 0, i2 = 0, j = 0; + + for(SubdVert::EdgeIterator eit(vert->edge); !eit.isDone(); eit.advance(), j++) { + SubdEdge *edge = eit.current(); + + /* find index of "our" edge for edge control points */ + if(edge == it.current()) + i1 = j; + if(edge == it.current()->prev->pair) + i2 = j; + } + + if(vert->is_boundary()) { + int num_verts = ring->num_verts(); + StencilMask r0(num_verts); + StencilMask r1(num_verts); + + computeBoundaryTangentStencils(ring, vert, r0, r1); + + int k = valence - 1; + float omega = M_PI / k; + + int eid1 = edge1Indices[primitiveOffset + v]; + int eid2 = edge2Indices[primitiveOffset + v]; + + if(it.current()->is_boundary()) { + assert(it.current()->from() == vert); + + stencil->get(eid1, vert) = 2.0f / 3.0f; + stencil->get(eid1, it.current()->to()) = 1.0f / 3.0f; + + assert(stencil->get(eid1).is_normalized()); + + if(valence == 2) { + for(int i = 0; i < num_verts; i++) + stencil->get(eid1)[i] += r0[i] * 0.0001f; + } + } + else { + stencil->get(eid1) = stencil->get(cid); + + /* compute index of it.current() around vert */ + int idx = 0; + + for(SubdVert::EdgeIterator eit(vert->edges()); !eit.isDone(); eit.advance(), idx++) + if(eit.current() == it.current()) + break; + + assert(idx != valence); + + float c = cosf(idx * omega); + float s = sinf(idx * omega); + + for(int i = 0; i < num_verts; i++) + stencil->get(eid1)[i] += (r0[i] * s + r1[i] * c) / 3.0f; + } + + if(it.current()->prev->is_boundary()) { + assert(it.current()->prev->pair->from() == vert); + + stencil->get(eid2, vert) = 2.0f / 3.0f; + stencil->get(eid2, it.current()->prev->pair->to()) = 1.0f / 3.0f; + + assert(stencil->get(eid2).is_normalized()); + + if(valence == 2) { + for(int i = 0; i < num_verts; i++) + stencil->get(eid2)[i] += r0[i] * 0.0001f; + } + } + else { + stencil->get(eid2) = stencil->get(cid); + + /* compute index of it.current() around vert */ + int idx = 0; + + for(SubdVert::EdgeIterator eit(vert->edges()); !eit.isDone(); eit.advance(), idx++) + if(eit.current() == it.current()->prev->pair) + break; + + assert(idx != valence); + + float c = cosf(idx * omega); + float s = sinf(idx * omega); + + for(int i = 0; i < num_verts; i++) + stencil->get(eid2)[i] += (r0[i] * s + r1[i] * c) / 3; + } + } + else { + float costerm = cosf(M_PI / valence); + float sqrtterm = sqrtf(4.0f + costerm*costerm); + + /* float tangentScale = 1.0f; */ + float tangentScale = tangentScales[min(valence, 13U)]; + + float alpha = (1.0f + costerm / sqrtterm) / (3.0f * valence) * tangentScale; + float beta = 1.0f / (3.0f * valence * sqrtterm) * tangentScale; + + + int eid1 = edge1Indices[primitiveOffset + v]; + int eid2 = edge2Indices[primitiveOffset + v]; + + stencil->get(eid1) = stencil->get(cid); + stencil->get(eid2) = stencil->get(cid); + + int j = 0; + for(SubdVert::EdgeIterator eit(vert->edges()); !eit.isDone(); eit.advance(), j++) { + SubdEdge *edge = eit.current(); + assert(vert->co == edge->from()->co); + + float costerm1_a = cosf(M_PI * 2 * (j-i1) / valence); + float costerm1_b = cosf(M_PI * (2 * (j-i1)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ + + float costerm2_a = cosf(M_PI * 2 * (j-i2) / valence); + float costerm2_b = cosf(M_PI * (2 * (j-i2)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ + + + stencil->get(eid1, edge->to()) += alpha * costerm1_a; + stencil->get(eid2, edge->to()) += alpha * costerm2_a; + + if(SubdFaceRing::is_triangle(edge->face)) { + /* @@ this probably does not provide watertight results!! (1/3 + 1/3 + 1/3 != 1) */ + + /* distribute weight to all verts */ + stencil->get(eid1, vert) += beta * costerm1_b / 3.0f; + stencil->get(eid1, edge->to()) += beta * costerm1_b / 3.0f; + stencil->get(eid1, edge->next->to()) += beta * costerm1_b / 3.0f; + + stencil->get(eid2, vert) += beta * costerm2_b / 3.0f; + stencil->get(eid2, edge->to()) += beta * costerm2_b / 3.0f; + stencil->get(eid2, edge->next->to()) += beta * costerm2_b / 3.0f; + } + else { + stencil->get(eid1, edge->next->to()) += beta * costerm1_b; + stencil->get(eid2, edge->next->to()) += beta * costerm2_b; + } + } + } + } +} + +void SubdAccBuilder::computeInteriorStencil(SubdFaceRing *ring, GregoryAccStencil *stencil) +{ + static int corner1Indices[7] = {8, 11, 19, 16, 6, 9, 12}; + static int corner2Indices[7] = {11, 19, 16, 8, 9, 12, 6}; + static int edge1Indices[7] = {9, 13, 18, 14, 7, 10, 13}; + static int edge2Indices[7] = {10, 15, 17, 12, 8, 11, 14}; + static int interior1Indices[7] = {1, 3, 6, 4, 1, 3, 5}; + static int interior2Indices[7] = {2, 7, 5, 0, 2, 4, 0}; + + int primitiveOffset = ring->is_quad()? 0: 4; + + SubdFace * face = ring->face(); + SubdEdge *firstEdge = ring->firstEdge(); + + /* interior control points */ + int v = 0; + for(SubdFace::EdgeIterator it(firstEdge); !it.isDone(); it.advance(), v++) { + SubdEdge *edge = it.current(); + + if(edge->is_boundary()) { + float valence1 = pseudoValence(edge->from()); + float valence2 = pseudoValence(edge->to()); + + float weights1[4]; + float weights2[4]; + + if(ring->is_quad()) { + weights1[0] = 3 * valence1; + weights1[1] = 6; + weights1[2] = 3; + weights1[3] = 6; + + weights2[0] = 6; + weights2[1] = 3 * valence2; + weights2[2] = 6; + weights2[3] = 3; + } + else { + assert(ring->is_triangle()); + weights1[0] = 3 * valence1 + 1; + weights1[1] = 7; + weights1[2] = 7; + + weights2[0] = 7; + weights2[1] = 3 * valence2 + 1; + weights2[2] = 7; + } + + int idx1 = interior1Indices[primitiveOffset+v]; + int idx2 = interior2Indices[primitiveOffset+v]; + + int i = 0; + for(SubdFace::EdgeIterator it(face->edges(edge)); !it.isDone(); it.advance(), i++) { + SubdVert *vert = it.current()->from(); + stencil->get(idx1, vert) += weights1[i]; + stencil->get(idx2, vert) += weights2[i]; + } + + stencil->get(idx1).normalize(); + stencil->get(idx2).normalize(); + } + else { + SubdVert *e0 = edge->from(); + float costerm0 = cosf(2.0f * M_PI / pseudoValence(e0)); + + SubdVert *f0 = edge->to(); + float costerm1 = cosf(2.0f * M_PI / pseudoValence(f0)); + + /* p0 +------+ q0 + * | | + * f0 +======+ e0 <=== current edge + * | | + * p1 +------+ q1 + */ + + SubdVert *q0 = edge->next->to(); + SubdVert *p0 = edge->prev->from(); + + SubdVert *p1 = edge->pair->next->to(); + SubdVert *q1 = edge->pair->prev->from(); + + + StencilMask x(ring->num_verts()); + StencilMask y(ring->num_verts()); + + for(int i = 0; i < ring->num_verts(); i++) { + x[i] = + (costerm1 * stencil->get(corner1Indices[primitiveOffset+v])[i] - + (2*costerm0 + costerm1) * stencil->get(edge1Indices[primitiveOffset+v])[i] + + 2*costerm0 * stencil->get(edge2Indices[primitiveOffset+v])[i]) / 3.0f; + } + + /* y = (2*( midedgeA1 - midedgeB1) + 4*(centroidA - centroidB))/18.0f; */ + y[ring->vert_index(p0)] = 1; + y[ring->vert_index(p1)] = -1; + + /* add centroidA */ + if(ring->is_triangle()) { + y[ring->vert_index(p0)] += 4.0f / 3.0f; + y[ring->vert_index(e0)] += 4.0f / 3.0f; + y[ring->vert_index(f0)] += 4.0f / 3.0f; + } + else { + y[ring->vert_index(p0)] += 1; + y[ring->vert_index(q0)] += 1; + y[ring->vert_index(e0)] += 1; + y[ring->vert_index(f0)] += 1; + } + + /* sub centroidB */ + if(SubdFaceRing::is_triangle(edge->pair->face)) { + y[ring->vert_index(p1)] -= 4.0f / 3.0f; + y[ring->vert_index(e0)] -= 4.0f / 3.0f; + y[ring->vert_index(f0)] -= 4.0f / 3.0f; + + } + else { + y[ring->vert_index(p1)] -= 1; + y[ring->vert_index(q1)] -= 1; + y[ring->vert_index(e0)] -= 1; + y[ring->vert_index(f0)] -= 1; + } + + y /= 18.0f; + + if(ring->is_triangle()) { + x *= 3.0f / 4.0f; + y *= 3.0f / 4.0f; + } + + /* this change makes the triangle boundaries smoother, but distorts the quads next to them */ + /*if(ring->is_triangle() || SubdFaceRing::is_triangle(edge->pair->face)) + { + y *= 4.0f / 3.0f; + }*/ + + stencil->get(interior1Indices[primitiveOffset+v]) = stencil->get(edge1Indices[primitiveOffset+v]); + stencil->get(interior1Indices[primitiveOffset+v]) += x; + stencil->get(interior1Indices[primitiveOffset+v]) += y; + + for(int i = 0; i < ring->num_verts(); i++) { + x[i] = + (costerm0 * stencil->get(corner2Indices[primitiveOffset+v])[i] - + (2*costerm1 + costerm0) * stencil->get(edge2Indices[primitiveOffset+v])[i] + + 2*costerm1 * stencil->get(edge1Indices[primitiveOffset+v])[i]) / 3.0f; + } + + /* y = (2*( midedgeA2 - midedgeB2) + 4*(centroidA - centroidB))/18.0f; */ + y = 0.0f; + + /* (2*( midedgeA2 - midedgeB2) */ + y[ring->vert_index(q0)] = 1; + y[ring->vert_index(q1)] = -1; + + /* add centroidA */ + if(ring->is_triangle()) { + y[ring->vert_index(p0)] += 4.0f / 3.0f; + y[ring->vert_index(e0)] += 4.0f / 3.0f; + y[ring->vert_index(f0)] += 4.0f / 3.0f; + } + else { + y[ring->vert_index(p0)] += 1; + y[ring->vert_index(q0)] += 1; + y[ring->vert_index(e0)] += 1; + y[ring->vert_index(f0)] += 1; + } + + /* sub centroidB */ + if(SubdFaceRing::is_triangle(edge->pair->face)) { + y[ring->vert_index(p1)] -= 4.0f / 3.0f; + y[ring->vert_index(e0)] -= 4.0f / 3.0f; + y[ring->vert_index(f0)] -= 4.0f / 3.0f; + + } + else { + y[ring->vert_index(p1)] -= 1; + y[ring->vert_index(q1)] -= 1; + y[ring->vert_index(e0)] -= 1; + y[ring->vert_index(f0)] -= 1; + } + + y /= 18.0f; + + if(ring->is_triangle()) { + x *= 3.0f / 4.0f; + y *= 3.0f / 4.0f; + } + + /* this change makes the triangle boundaries smoother, but distorts the quads next to them. */ + /*if(ring->is_triangle() || SubdFaceRing::is_triangle(edge->pair->face)) + y *= 4.0f / 3.0f;*/ + + stencil->get(interior2Indices[primitiveOffset+v]) = stencil->get(edge2Indices[primitiveOffset+v]); + stencil->get(interior2Indices[primitiveOffset+v]) += x; + stencil->get(interior2Indices[primitiveOffset+v]) += y; + } + } +} + +void SubdAccBuilder::computeBoundaryTangentStencils(SubdFaceRing *ring, SubdVert *vert, StencilMask & r0, StencilMask & r1) +{ + assert(vert->is_boundary()); + assert(r0.size() == ring->num_verts()); + assert(r1.size() == ring->num_verts()); + + SubdEdge *edge0 = vert->edge; + assert(edge0->face == NULL); + assert(edge0->to() != vert); + + SubdEdge *edgek = vert->edge->prev; + assert(edgek->face == NULL); + assert(edgek->from() != vert); + + int valence = vert->valence(); + + int k = valence - 1; + float omega = M_PI / k; + float s = sinf(omega); + float c = cosf(omega); + + float factor = 1.0f / (3 * k + c); + + float gamma = -4 * s * factor; + r0[ring->vert_index(vert)] = gamma; + /* r1[ring->vert_index(vert)] = 0; */ + + float salpha0 = -((1 + 2 * c) * sqrtf(1 + c)) * factor / sqrtf(1 - c); + float calpha0 = 1.0f / 2.0f; + + r0[ring->vert_index(edge0->to())] = salpha0; + r1[ring->vert_index(edge0->to())] = calpha0; + + float salphak = salpha0; + float calphak = -1.0f / 2.0f; + + r0[ring->vert_index(edgek->from())] = salphak; + r1[ring->vert_index(edgek->from())] = calphak; + + int j = 0; + for(SubdVert::EdgeIterator it(vert->edges()); !it.isDone(); it.advance(), j++) { + SubdEdge *edge = it.current(); + + if(j == k) break; + + SubdVert *p = edge->to(); + SubdVert *q = edge->pair->prev->from(); + + float alphaj = 4 * sinf(j * omega) * factor; + float betaj = (sinf(j * omega) + sinf((j + 1) * omega)) * factor; + + if(j != 0) + r0[ring->vert_index(p)] += alphaj; + + if(edge->pair->prev->prev->prev == edge->pair) { + r0[ring->vert_index(vert)] += betaj / 3.0f; + r0[ring->vert_index(edge->pair->from())] += betaj / 3.0f; + r0[ring->vert_index(q)] += betaj / 3.0f; + } + else + r0[ring->vert_index(q)] += betaj; + } + + if(valence == 2) { + /* r0 perpendicular to r1 */ + r0[ring->vert_index(vert)] = -4.0f / 3.0f; + r0[ring->vert_index(edgek->from())] = 1.0f / 2.0f; + r0[ring->vert_index(edge0->to())] = 1.0f / 2.0f; + r0[ring->vert_index(edge0->next->to())] = 1.0f / 3.0f; + } +} + +/* Subd Linear Builder */ + +SubdLinearBuilder::SubdLinearBuilder() +{ +} + +SubdLinearBuilder::~SubdLinearBuilder() +{ +} + +Patch *SubdLinearBuilder::run(SubdFace *face) +{ + Patch *patch; + float3 *hull; + + if(face->num_edges() == 3) { + LinearTrianglePatch *lpatch = new LinearTrianglePatch(); + hull = lpatch->hull; + patch = lpatch; + } + else if(face->num_edges() == 4) { + LinearQuadPatch *lpatch = new LinearQuadPatch(); + hull = lpatch->hull; + patch = lpatch; + } + else { + assert(0); /* n-gons should have been split already */ + return NULL; + } + + int i = 0; + + for(SubdFace::EdgeIterator it(face->edge); !it.isDone(); it.advance()) + hull[i++] = it.current()->from()->co; + + if(face->num_edges() == 4) + swap(hull[2], hull[3]); + + return patch; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_build.h b/intern/cycles/subd/subd_build.h new file mode 100644 index 00000000000..e93ffc4a2c4 --- /dev/null +++ b/intern/cycles/subd/subd_build.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 __SUBD_BUILD_H__ +#define __SUBD_BUILD_H__ + +CCL_NAMESPACE_BEGIN + +class SubdFace; +class SubdFaceRing; +class SubdVert; +class GregoryAccStencil; +class Patch; +class StencilMask; + +/* Builder */ + +class SubdBuilder +{ +public: + virtual ~SubdBuilder() {}; + virtual Patch *run(SubdFace *face) = 0; + static SubdBuilder *create(bool linear); +}; + +/* Approximate Catmull Clark using Loop's approximation */ + +class SubdAccBuilder : public SubdBuilder +{ +public: + SubdAccBuilder(); + ~SubdAccBuilder(); + + Patch *run(SubdFace *face); + +protected: + /* Gregory Patch */ + void computeCornerStencil(SubdFaceRing *ring, GregoryAccStencil *stencil); + void computeEdgeStencil(SubdFaceRing *ring, GregoryAccStencil *stencil); + void computeInteriorStencil(SubdFaceRing *ring, GregoryAccStencil *stencil); + void computeBoundaryTangentStencils(SubdFaceRing *ring, + SubdVert *vert, + StencilMask & r0, StencilMask & r1); +}; + +/* Linear Subdivision */ + +class SubdLinearBuilder : public SubdBuilder +{ +public: + SubdLinearBuilder(); + ~SubdLinearBuilder(); + + Patch *run(SubdFace *face); +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_BUILD_H__ */ + diff --git a/intern/cycles/subd/subd_dice.cpp b/intern/cycles/subd/subd_dice.cpp new file mode 100644 index 00000000000..086b7b246d3 --- /dev/null +++ b/intern/cycles/subd/subd_dice.cpp @@ -0,0 +1,461 @@ +/* + * 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 "camera.h" +#include "mesh.h" + +#include "subd_dice.h" +#include "subd_patch.h" + +#include "util_debug.h" + +CCL_NAMESPACE_BEGIN + +/* EdgeDice Base */ + +EdgeDice::EdgeDice(Mesh *mesh_, int shader_, bool smooth_, float dicing_rate_) +{ + mesh = mesh_; + mesh_P = NULL; + mesh_N = NULL; + vert_offset = 0; + dicing_rate = dicing_rate_; + shader = shader_; + smooth = smooth_; + camera = NULL; + + mesh->attributes.add(Attribute::STD_VERTEX_NORMAL); +} + +void EdgeDice::reserve(int num_verts, int num_tris) +{ + vert_offset = mesh->verts.size(); + tri_offset = mesh->triangles.size(); + + mesh->reserve(vert_offset + num_verts, tri_offset + num_tris); + + Attribute *attr_vN = mesh->attributes.add(Attribute::STD_VERTEX_NORMAL); + + mesh_P = &mesh->verts[0]; + mesh_N = attr_vN->data_float3(); +} + +int EdgeDice::add_vert(Patch *patch, float2 uv) +{ + float3 P, N, dPdu, dPdv; + + patch->eval(&P, &dPdu, &dPdv, uv.x, uv.y); + N = normalize(cross(dPdu, dPdv)); + + assert(vert_offset < mesh->verts.size()); + + mesh_P[vert_offset] = P; + mesh_N[vert_offset] = N; + + return vert_offset++; +} + +void EdgeDice::add_triangle(int v0, int v1, int v2) +{ + mesh->add_triangle(v0, v1, v2, shader, smooth); +} + +void EdgeDice::stitch_triangles(vector& outer, vector& inner) +{ + if(inner.size() == 0 || outer.size() == 0) + return; // XXX avoid crashes for Mu or Mv == 1, missing polygons + + /* stitch together two arrays of verts with triangles. at each step, + we compare using the next verts on both sides, to find the split + direction with the smallest diagonal, and use that in order to keep + the triangle shape reasonable. */ + for(size_t i = 0, j = 0; i+1 < inner.size() || j+1 < outer.size();) { + int v0, v1, v2; + + v0 = inner[i]; + v1 = outer[j]; + + if(j+1 == outer.size()) { + v2 = inner[++i]; + } + else if(i+1 == inner.size()) { + v2 = outer[++j]; + } + else { + /* length of diagonals */ + float len1 = len(mesh_P[inner[i]] - mesh_P[outer[j+1]]); + float len2 = len(mesh_P[outer[j]] - mesh_P[inner[i+1]]); + + /* use smallest diagonal */ + if(len1 < len2) + v2 = outer[++j]; + else + v2 = inner[++i]; + } + + add_triangle(v0, v1, v2); + } +} + +/* QuadDice */ + +QuadDice::QuadDice(Mesh *mesh_, int shader_, bool smooth_, float dicing_rate_) +: EdgeDice(mesh_, shader_, smooth_, dicing_rate_) +{ +} + +void QuadDice::reserve(EdgeFactors& ef, int Mu, int Mv) +{ + /* XXX need to make this also work for edge factor 0 and 1 */ + int num_verts = (ef.tu0 + ef.tu1 + ef.tv0 + ef.tv1) + (Mu - 1)*(Mv - 1); + EdgeDice::reserve(num_verts, 0); +} + +float2 QuadDice::map_uv(SubPatch& sub, float u, float v) +{ + /* map UV from subpatch to patch parametric coordinates */ + float2 d0 = interp(sub.P00, sub.P01, v); + float2 d1 = interp(sub.P10, sub.P11, v); + return interp(d0, d1, u); +} + +float3 QuadDice::eval_projected(SubPatch& sub, float u, float v) +{ + float2 uv = map_uv(sub, u, v); + float3 P; + + sub.patch->eval(&P, NULL, NULL, uv.x, uv.y); + if(camera) + P = transform(&camera->worldtoraster, P); + + return P; +} + +int QuadDice::add_vert(SubPatch& sub, float u, float v) +{ + return EdgeDice::add_vert(sub.patch, map_uv(sub, u, v)); +} + +void QuadDice::add_side_u(SubPatch& sub, + vector& outer, vector& inner, + int Mu, int Mv, int tu, int side, int offset) +{ + outer.clear(); + inner.clear(); + + /* set verts on the edge of the patch */ + outer.push_back(offset + ((side)? 2: 0)); + + for(int i = 1; i < tu; i++) { + float u = i/(float)tu; + float v = (side)? 1.0f: 0.0f; + + outer.push_back(add_vert(sub, u, v)); + } + + outer.push_back(offset + ((side)? 3: 1)); + + /* set verts on the edge of the inner grid */ + for(int i = 0; i < Mu-1; i++) { + int j = (side)? Mv-1-1: 0; + inner.push_back(offset + 4 + i + j*(Mu-1)); + } +} + +void QuadDice::add_side_v(SubPatch& sub, + vector& outer, vector& inner, + int Mu, int Mv, int tv, int side, int offset) +{ + outer.clear(); + inner.clear(); + + /* set verts on the edge of the patch */ + outer.push_back(offset + ((side)? 1: 0)); + + for(int j = 1; j < tv; j++) { + float u = (side)? 1.0f: 0.0f; + float v = j/(float)tv; + + outer.push_back(add_vert(sub, u, v)); + } + + outer.push_back(offset + ((side)? 3: 2)); + + /* set verts on the edge of the inner grid */ + for(int j = 0; j < Mv-1; j++) { + int i = (side)? Mu-1-1: 0; + inner.push_back(offset + 4 + i + j*(Mu-1)); + } +} + +float QuadDice::quad_area(const float3& a, const float3& b, const float3& c, const float3& d) +{ + return triangle_area(a, b, d) + triangle_area(a, d, c); +} + +float QuadDice::scale_factor(SubPatch& sub, EdgeFactors& ef, int Mu, int Mv) +{ + /* estimate area as 4x largest of 4 quads */ + float3 P[3][3]; + + for(int i = 0; i < 3; i++) + for(int j = 0; j < 3; j++) + P[i][j] = eval_projected(sub, i*0.5f, j*0.5f); + + float A1 = quad_area(P[0][0], P[1][0], P[0][1], P[1][1]); + float A2 = quad_area(P[1][0], P[2][0], P[1][1], P[2][1]); + float A3 = quad_area(P[0][1], P[1][1], P[0][2], P[1][2]); + float A4 = quad_area(P[1][1], P[2][1], P[1][2], P[2][2]); + float Apatch = max(A1, max(A2, max(A3, A4)))*4.0f; + + /* solve for scaling factor */ + float Atri = dicing_rate*dicing_rate*0.5f; + float Ntris = Apatch/Atri; + + // XXX does the -sqrt solution matter + // XXX max(D, 0.0) is highly suspicious, need to test cases + // where D goes negative + float N = 0.5f*(Ntris - (ef.tu0 + ef.tu1 + ef.tv0 + ef.tv1)); + float D = 4.0f*N*Mu*Mv + (Mu + Mv)*(Mu + Mv); + float S = (Mu + Mv + sqrtf(max(D, 0.0f)))/(2*Mu*Mv); + + return S; +} + +void QuadDice::add_corners(SubPatch& sub) +{ + /* add verts for patch corners */ + if(sub.patch->is_triangle()) { + add_vert(sub, 0.0f, 0.0f); + add_vert(sub, 1.0f, 0.0f); + add_vert(sub, 0.0f, 1.0f); + } + else { + add_vert(sub, 0.0f, 0.0f); + add_vert(sub, 1.0f, 0.0f); + add_vert(sub, 0.0f, 1.0f); + add_vert(sub, 1.0f, 1.0f); + } +} + +void QuadDice::add_grid(SubPatch& sub, int Mu, int Mv, int offset) +{ + /* create inner grid */ + float du = 1.0f/(float)Mu; + float dv = 1.0f/(float)Mv; + + for(int j = 1; j < Mv; j++) { + for(int i = 1; i < Mu; i++) { + float u = i*du; + float v = j*dv; + + add_vert(sub, u, v); + + if(i < Mu-1 && j < Mv-1) { + int i1 = offset + 4 + (i-1) + (j-1)*(Mu-1); + int i2 = offset + 4 + i + (j-1)*(Mu-1); + int i3 = offset + 4 + i + j*(Mu-1); + int i4 = offset + 4 + (i-1) + j*(Mu-1); + + add_triangle(i1, i2, i3); + add_triangle(i1, i3, i4); + } + } + } +} + +void QuadDice::dice(SubPatch& sub, EdgeFactors& ef) +{ + /* compute inner grid size with scale factor */ + int Mu = max(ef.tu0, ef.tu1); + int Mv = max(ef.tv0, ef.tv1); + + float S = scale_factor(sub, ef, Mu, Mv); + Mu = max((int)ceil(S*Mu), 2); // XXX handle 0 & 1? + Mv = max((int)ceil(S*Mv), 2); // XXX handle 0 & 1? + + /* reserve space for new verts */ + int offset = mesh->verts.size(); + reserve(ef, Mu, Mv); + + /* corners and inner grid */ + add_corners(sub); + add_grid(sub, Mu, Mv, offset); + + /* bottom side */ + vector outer, inner; + + add_side_u(sub, outer, inner, Mu, Mv, ef.tu0, 0, offset); + stitch_triangles(outer, inner); + + /* top side */ + add_side_u(sub, outer, inner, Mu, Mv, ef.tu1, 1, offset); + stitch_triangles(inner, outer); + + /* left side */ + add_side_v(sub, outer, inner, Mu, Mv, ef.tv0, 0, offset); + stitch_triangles(inner, outer); + + /* right side */ + add_side_v(sub, outer, inner, Mu, Mv, ef.tv1, 1, offset); + stitch_triangles(outer, inner); + + assert(vert_offset == mesh->verts.size()); +} + +/* TriangleDice */ + +TriangleDice::TriangleDice(Mesh *mesh_, int shader_, bool smooth_, float dicing_rate_) +: EdgeDice(mesh_, shader_, smooth_, dicing_rate_) +{ +} + +void TriangleDice::reserve(EdgeFactors& ef, int M) +{ + int num_verts = ef.tu + ef.tv + ef.tw; + + for(int m = M-2; m > 0; m -= 2) + num_verts += 3 + (m-1)*3; + + if(!(M & 1)) + num_verts++; + + EdgeDice::reserve(num_verts, 0); +} + +float2 TriangleDice::map_uv(SubPatch& sub, float2 uv) +{ + /* map UV from subpatch to patch parametric coordinates */ + return uv.x*sub.Pu + uv.y*sub.Pv + (1.0f - uv.x - uv.y)*sub.Pw; +} + +int TriangleDice::add_vert(SubPatch& sub, float2 uv) +{ + return EdgeDice::add_vert(sub.patch, map_uv(sub, uv)); +} + +void TriangleDice::add_grid(SubPatch& sub, EdgeFactors& ef, int M) +{ + // XXX normals are flipped, why? + + /* grid is constructed starting from the outside edges, and adding + progressively smaller inner triangles that connected to the outer + one, until M = 1 or 2, the we fill up the last part. */ + vector outer_u, outer_v, outer_w; + int m; + + /* add outer corners vertices */ + { + float2 p_u = make_float2(1.0f, 0.0f); + float2 p_v = make_float2(0.0f, 1.0f); + float2 p_w = make_float2(0.0f, 0.0f); + + int corner_u = add_vert(sub, p_u); + int corner_v = add_vert(sub, p_v); + int corner_w = add_vert(sub, p_w); + + outer_u.push_back(corner_v); + outer_v.push_back(corner_w); + outer_w.push_back(corner_u); + + for(int i = 1; i < ef.tu; i++) + outer_u.push_back(add_vert(sub, interp(p_v, p_w, i/(float)ef.tu))); + for(int i = 1; i < ef.tv; i++) + outer_v.push_back(add_vert(sub, interp(p_w, p_u, i/(float)ef.tv))); + for(int i = 1; i < ef.tw; i++) + outer_w.push_back(add_vert(sub, interp(p_u, p_v, i/(float)ef.tw))); + + outer_u.push_back(corner_w); + outer_v.push_back(corner_u); + outer_w.push_back(corner_v); + } + + for(m = M-2; m > 0; m -= 2) { + vector inner_u, inner_v, inner_w; + + float t = m/(float)M; + float2 center = make_float2(1.0f/3.0f, 1.0f/3.0f); + + /* 3 corner vertices */ + float2 p_u = interp(center, make_float2(1.0f, 0.0f), t); + float2 p_v = interp(center, make_float2(0.0f, 1.0f), t); + float2 p_w = interp(center, make_float2(0.0f, 0.0f), t); + + int corner_u = add_vert(sub, p_u); + int corner_v = add_vert(sub, p_v); + int corner_w = add_vert(sub, p_w); + + /* construct array of vertex indices for each side */ + inner_u.push_back(corner_v); + inner_v.push_back(corner_w); + inner_w.push_back(corner_u); + + for(int i = 1; i < m; i++) { + /* add vertices between corners */ + float t = i/(float)m; + + inner_u.push_back(add_vert(sub, interp(p_v, p_w, t))); + inner_v.push_back(add_vert(sub, interp(p_w, p_u, t))); + inner_w.push_back(add_vert(sub, interp(p_u, p_v, t))); + } + + inner_u.push_back(corner_w); + inner_v.push_back(corner_u); + inner_w.push_back(corner_v); + + /* stitch together inner/outer with triangles */ + stitch_triangles(outer_u, inner_u); + stitch_triangles(outer_v, inner_v); + stitch_triangles(outer_w, inner_w); + + outer_u = inner_u; + outer_v = inner_v; + outer_w = inner_w; + } + + /* fill up last part */ + if(m == -1) { + /* single triangle */ + add_triangle(outer_w[0], outer_u[0], outer_v[0]); + } + else { + /* center vertex + 6 triangles */ + int center = add_vert(sub, make_float2(1.0f/3.0f, 1.0f/3.0f)); + + add_triangle(outer_w[0], outer_w[1], center); + add_triangle(outer_w[1], outer_w[2], center); + add_triangle(outer_u[0], outer_u[1], center); + add_triangle(outer_u[1], outer_u[2], center); + add_triangle(outer_v[0], outer_v[1], center); + add_triangle(outer_v[1], outer_v[2], center); + } +} + +void TriangleDice::dice(SubPatch& sub, EdgeFactors& ef) +{ + /* todo: handle 2 1 1 resolution */ + int M = max(ef.tu, max(ef.tv, ef.tw)); + + reserve(ef, M); + add_grid(sub, ef, M); + + assert(vert_offset == mesh->verts.size()); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_dice.h b/intern/cycles/subd/subd_dice.h new file mode 100644 index 00000000000..71879f1f5f1 --- /dev/null +++ b/intern/cycles/subd/subd_dice.h @@ -0,0 +1,159 @@ +/* + * 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 __SUBD_DICE_H__ +#define __SUBD_DICE_H__ + +/* DX11 like EdgeDice implementation, with different tesselation factors for + * each edge for watertight tesselation, with subpatch remapping to work with + * DiagSplit. For more algorithm details, see the DiagSplit paper or the + * ARB_tessellation_shader OpenGL extension, Section 2.X.2. */ + +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Camera; +class Mesh; +class Patch; + +/* EdgeDice Base */ + +class EdgeDice { +public: + Camera *camera; + Mesh *mesh; + float3 *mesh_P; + float3 *mesh_N; + float dicing_rate; + size_t vert_offset; + size_t tri_offset; + int shader; + bool smooth; + + EdgeDice(Mesh *mesh, int shader, bool smooth, float dicing_rate); + + void reserve(int num_verts, int num_tris); + + int add_vert(Patch *patch, float2 uv); + void add_triangle(int v0, int v1, int v2); + + void stitch_triangles(vector& outer, vector& inner); +}; + +/* Quad EdgeDice + * + * Edge tesselation factors and subpatch coordinates are as follows: + * + * tu1 + * P01 --------- P11 + * | | + * tv0 | | tv1 + * | | + * P00 --------- P10 + * tu0 + */ + +class QuadDice : public EdgeDice { +public: + struct SubPatch { + Patch *patch; + + float2 P00; + float2 P10; + float2 P01; + float2 P11; + }; + + struct EdgeFactors { + int tu0; + int tu1; + int tv0; + int tv1; + }; + + QuadDice(Mesh *mesh, int shader, bool smooth, float dicing_rate); + + void reserve(EdgeFactors& ef, int Mu, int Mv); + float3 eval_projected(SubPatch& sub, float u, float v); + + float2 map_uv(SubPatch& sub, float u, float v); + int add_vert(SubPatch& sub, float u, float v); + + void add_corners(SubPatch& sub); + void add_grid(SubPatch& sub, int Mu, int Mv, int offset); + + void add_side_u(SubPatch& sub, + vector& outer, vector& inner, + int Mu, int Mv, int tu, int side, int offset); + + void add_side_v(SubPatch& sub, + vector& outer, vector& inner, + int Mu, int Mv, int tv, int side, int offset); + + float quad_area(const float3& a, const float3& b, const float3& c, const float3& d); + float scale_factor(SubPatch& sub, EdgeFactors& ef, int Mu, int Mv); + + void dice(SubPatch& sub, EdgeFactors& ef); +}; + +/* Triangle EdgeDice + * + * Edge tesselation factors and subpatch coordinates are as follows: + * + * Pw + * /\ + * tv / \ tu + * / \ + * / \ + * Pu -------- Pv + * tw + */ + +class TriangleDice : public EdgeDice { +public: + struct SubPatch { + Patch *patch; + + float2 Pu; + float2 Pv; + float2 Pw; + }; + + struct EdgeFactors { + int tu; + int tv; + int tw; + }; + + TriangleDice(Mesh *mesh, int shader, bool smooth, float dicing_rate); + + void reserve(EdgeFactors& ef, int M); + + float2 map_uv(SubPatch& sub, float2 uv); + int add_vert(SubPatch& sub, float2 uv); + + void add_grid(SubPatch& sub, EdgeFactors& ef, int M); + void dice(SubPatch& sub, EdgeFactors& ef); +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_DICE_H__ */ + diff --git a/intern/cycles/subd/subd_edge.h b/intern/cycles/subd/subd_edge.h new file mode 100644 index 00000000000..edf98c8a5a0 --- /dev/null +++ b/intern/cycles/subd/subd_edge.h @@ -0,0 +1,70 @@ +/* + * Original code in the public domain -- castanyo@yahoo.es + * + * Modifications copyright (c) 2011, Blender Foundation. + * 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. + * + * 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 + * HOLDER 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 __SUBD_EDGE_H__ +#define __SUBD_EDGE_H__ + +#include "subd_mesh.h" + +CCL_NAMESPACE_BEGIN + +/* Subd Half Edge */ + +class SubdEdge +{ +public: + int id; + + SubdEdge *next; + SubdEdge *prev; + SubdEdge *pair; + SubdVert *vert; + SubdFace *face; + + SubdEdge(int id_) + { + id = id_; + next = NULL; + prev = NULL; + pair = NULL; + vert = NULL; + face = NULL; + } + + /* vertex queries */ + SubdVert *from() { return vert; } + SubdVert *to() { return next->vert; } + + /* face queries */ + bool is_boundary() { return !(face && pair->face); } +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_EDGE_H__ */ + diff --git a/intern/cycles/subd/subd_face.h b/intern/cycles/subd/subd_face.h new file mode 100644 index 00000000000..8f8a9ec3f47 --- /dev/null +++ b/intern/cycles/subd/subd_face.h @@ -0,0 +1,109 @@ +/* + * Original code in the public domain -- castanyo@yahoo.es + * + * Modifications copyright (c) 2011, Blender Foundation. + * 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. + * + * 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 + * HOLDER 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 __SUBD_FACE_H__ +#define __SUBD_FACE_H__ + +#include "subd_edge.h" +#include "subd_mesh.h" + +CCL_NAMESPACE_BEGIN + +/* Subd Face */ + +class SubdFace +{ +public: + int id; + SubdEdge *edge; + + SubdFace(int id_) + { + id = id_; + edge = NULL; + } + + bool contains(SubdEdge *e) + { + for(EdgeIterator it(edges()); !it.isDone(); it.advance()) + if(it.current() == e) + return true; + + return false; + } + + int num_edges() + { + int num = 0; + + for(EdgeIterator it(edges()); !it.isDone(); it.advance()) + num++; + + return num; + } + + bool is_boundary() + { + for(EdgeIterator it(edges()); !it.isDone(); it.advance()) { + SubdEdge *edge = it.current(); + + if(edge->pair->face == NULL) + return true; + } + + return false; + } + + /* iterate over edges in clockwise order */ + class EdgeIterator + { + public: + EdgeIterator(SubdEdge *e) : end(NULL), cur(e) { } + + virtual void advance() + { + if (end == NULL) end = cur; + cur = cur->next; + } + + virtual bool isDone() { return end == cur; } + virtual SubdEdge *current() { return cur; } + + private: + SubdEdge *end; + SubdEdge *cur; + }; + + EdgeIterator edges() { return EdgeIterator(edge); } + EdgeIterator edges(SubdEdge *edge) { return EdgeIterator(edge); } +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_FACE_H__ */ + diff --git a/intern/cycles/subd/subd_mesh.cpp b/intern/cycles/subd/subd_mesh.cpp new file mode 100644 index 00000000000..8ed4854b786 --- /dev/null +++ b/intern/cycles/subd/subd_mesh.cpp @@ -0,0 +1,309 @@ +/* + * Original code in the public domain -- castanyo@yahoo.es + * + * Modifications copyright (c) 2011, Blender Foundation. + * 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. + * + * 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 + * HOLDER 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 + +#include "subd_build.h" +#include "subd_edge.h" +#include "subd_face.h" +#include "subd_mesh.h" +#include "subd_patch.h" +#include "subd_split.h" +#include "subd_vert.h" + +#include "util_debug.h" +#include "util_foreach.h" + +CCL_NAMESPACE_BEGIN + +SubdMesh::SubdMesh() +{ +} + +SubdMesh::~SubdMesh() +{ + pair em; + + foreach(SubdVert *vertex, verts) + delete vertex; + foreach(em, edge_map) + delete em.second; + foreach(SubdFace *face, faces) + delete face; + + verts.clear(); + edges.clear(); + edge_map.clear(); + faces.clear(); +} + +SubdVert *SubdMesh::add_vert(const float3& co) +{ + SubdVert *v = new SubdVert(verts.size()); + v->co = co; + verts.push_back(v); + + return v; +} + +SubdFace *SubdMesh::add_face(int v0, int v1, int v2) +{ + int index[3] = {v0, v1, v2}; + return add_face(index, 3); +} + +SubdFace *SubdMesh::add_face(int v0, int v1, int v2, int v3) +{ + int index[4] = {v0, v1, v2, v3}; + return add_face(index, 4); +} + +SubdFace *SubdMesh::add_face(int *index, int num) +{ + /* test non-manifold cases */ + if(!can_add_face(index, num)) { + /* we could try to add face in opposite winding instead .. */ + fprintf(stderr, "Warning: non manifold mesh, invalid face '%lu'.\n", faces.size()); + return NULL; + } + + SubdFace *f = new SubdFace(faces.size()); + + SubdEdge *first_edge = NULL; + SubdEdge *last = NULL; + SubdEdge *current = NULL; + + /* add edges */ + for(int i = 0; i < num-1; i++) { + current = add_edge(index[i], index[i+1]); + assert(current != NULL); + + current->face = f; + + if(last != NULL) { + last->next = current; + current->prev = last; + } + else + first_edge = current; + + last = current; + } + + current = add_edge(index[num-1], index[0]); + assert(current != NULL); + + current->face = f; + + last->next = current; + current->prev = last; + + current->next = first_edge; + first_edge->prev = current; + + f->edge = first_edge; + faces.push_back(f); + + return f; +} + +bool SubdMesh::can_add_face(int *index, int num) +{ + /* manifold check */ + for(int i = 0; i < num-1; i++) + if(!can_add_edge(index[i], index[i+1])) + return false; + + return can_add_edge(index[num-1], index[0]); +} + +bool SubdMesh::can_add_edge(int i, int j) +{ + /* check for degenerate edge */ + if(i == j) + return false; + + /* make sure edge has not been added yet. */ + return find_edge(i, j) == NULL; +} + +SubdEdge *SubdMesh::add_edge(int i, int j) +{ + SubdEdge *edge; + + /* find pair */ + SubdEdge *pair = find_edge(j, i); + + if(pair != NULL) { + /* create edge with same id */ + edge = new SubdEdge(pair->id + 1); + + /* link edge pairs */ + edge->pair = pair; + pair->pair = edge; + + /* not sure this is necessary? */ + pair->vert->edge = pair; + } + else { + /* create edge */ + edge = new SubdEdge(2*edges.size()); + + /* add only unpaired edges */ + edges.push_back(edge); + } + + /* assign vertex and put into map */ + edge->vert = verts[i]; + edge_map[Key(i, j)] = edge; + + /* face and next are set by add_face */ + + return edge; +} + +SubdEdge *SubdMesh::find_edge(int i, int j) +{ + map::const_iterator it = edge_map.find(Key(i, j)); + + return (it == edge_map.end())? NULL: it->second; +} + +bool SubdMesh::link_boundary() +{ + /* link boundary edges once the mesh has been created */ + int num = 0; + + /* create boundary edges */ + int num_edges = edges.size(); + + for(int e = 0; e < num_edges; e++) { + SubdEdge *edge = edges[e]; + + if(edge->pair == NULL) { + SubdEdge *pair = new SubdEdge(edge->id + 1); + + int i = edge->from()->id; + int j = edge->to()->id; + + assert(edge_map.find(Key(j, i)) == edge_map.end()); + + pair->vert = verts[j]; + edge_map[Key(j, i)] = pair; + + edge->pair = pair; + pair->pair = edge; + + num++; + } + } + + /* link boundary edges */ + for(int e = 0; e < num_edges; e++) { + SubdEdge *edge = edges[e]; + + if(edge->pair->face == NULL) + link_boundary_edge(edge->pair); + } + + /* detect boundary intersections */ + int boundaryIntersections = 0; + int num_verts = verts.size(); + + for(int v = 0; v < num_verts; v++) { + SubdVert *vertex = verts[v]; + + int boundarySubdEdges = 0; + for(SubdVert::EdgeIterator it(vertex->edges()); !it.isDone(); it.advance()) + if(it.current()->is_boundary()) + boundarySubdEdges++; + + if(boundarySubdEdges > 2) { + assert((boundarySubdEdges & 1) == 0); + boundaryIntersections++; + } + } + + if(boundaryIntersections != 0) { + fprintf(stderr, "Invalid mesh, boundary intersections found!\n"); + return false; + } + + return true; +} + +void SubdMesh::link_boundary_edge(SubdEdge *edge) +{ + /* link this boundary edge. */ + + /* make sure next pointer has not been set. */ + assert(edge->face == NULL); + assert(edge->next == NULL); + + SubdEdge *next = edge; + + while(next->pair->face != NULL) { + /* get pair prev */ + SubdEdge *e = next->pair->next; + + while(e->next != next->pair) + e = e->next; + + next = e; + } + + edge->next = next->pair; + next->pair->prev = edge; + + /* adjust vertex edge, so that it's the boundary edge. (required for is_boundary()) */ + if(edge->vert->edge != edge) + edge->vert->edge = edge; +} + +void SubdMesh::tesselate(DiagSplit *split, bool linear, Mesh *mesh, int shader, bool smooth) +{ + SubdBuilder *builder = SubdBuilder::create(linear); + int num_faces = faces.size(); + + for(int f = 0; f < num_faces; f++) { + SubdFace *face = faces[f]; + Patch *patch = builder->run(face); + + if(patch->is_triangle()) + split->split_triangle(mesh, patch, shader, smooth); + else + split->split_quad(mesh, patch, shader, smooth); + + delete patch; + } + + delete builder; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_mesh.h b/intern/cycles/subd/subd_mesh.h new file mode 100644 index 00000000000..999d92d6daf --- /dev/null +++ b/intern/cycles/subd/subd_mesh.h @@ -0,0 +1,90 @@ +/* + * Original code in the public domain -- castanyo@yahoo.es + * + * Modifications copyright (c) 2011, Blender Foundation. + * 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. + * + * 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 + * HOLDER 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 __SUBD_MESH_H__ +#define __SUBD_MESH_H__ + +#include "util_map.h" +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class SubdFace; +class SubdVert; +class SubdEdge; + +class DiagSplit; +class Mesh; + +/* Subd Mesh, half edge based for dynamic mesh manipulation */ + +class SubdMesh +{ +public: + vector verts; + vector edges; + vector faces; + + SubdMesh(); + ~SubdMesh(); + + SubdVert *add_vert(const float3& co); + + SubdFace *add_face(int v0, int v1, int v2); + SubdFace *add_face(int v0, int v1, int v2, int v3); + SubdFace *add_face(int *index, int num); + + bool link_boundary(); + void tesselate(DiagSplit *split, bool linear, + Mesh *mesh, int shader, bool smooth); + +protected: + bool can_add_face(int *index, int num); + bool can_add_edge(int i, int j); + SubdEdge *add_edge(int i, int j); + SubdEdge *find_edge(int i, int j); + void link_boundary_edge(SubdEdge *edge); + + struct Key { + Key() {} + Key(int v0, int v1) : p0(v0), p1(v1) {} + + bool operator<(const Key& k) const + { return (p0 < k.p0 || (p0 == k.p0 && p1 < k.p1)); } + + int p0, p1; + }; + + map edge_map; +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_MESH_H__ */ + diff --git a/intern/cycles/subd/subd_patch.cpp b/intern/cycles/subd/subd_patch.cpp new file mode 100644 index 00000000000..ff477296c7e --- /dev/null +++ b/intern/cycles/subd/subd_patch.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. + */ + +/* Parts adapted from code in the public domain in NVidia Mesh Tools. */ + +#include "mesh.h" + +#include "subd_patch.h" + +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* De Casteljau Evaluation */ + +static float3 decasteljau_quadratic(float t, const float3 cp[3]) +{ + float3 d0 = cp[0] + t*(cp[1] - cp[0]); + float3 d1 = cp[1] + t*(cp[2] - cp[1]); + + return d0 + t*(d1 - d0); +} + +static void decasteljau_cubic(float3 *P, float3 *dt, float t, const float3 cp[4]) +{ + float3 d0 = cp[0] + t*(cp[1] - cp[0]); + float3 d1 = cp[1] + t*(cp[2] - cp[1]); + float3 d2 = cp[2] + t*(cp[3] - cp[2]); + + d0 += t*(d1 - d0); + d1 += t*(d2 - d1); + + *P = d0 + t*(d1 - d0); + if(dt) *dt = d1 - d0; +} + +static void decasteljau_bicubic(float3 *P, float3 *du, float3 *dv, const float3 cp[16], float u, float v) +{ + float3 ucp[4], utn[4]; + + /* interpolate over u */ + decasteljau_cubic(ucp+0, utn+0, u, cp); + decasteljau_cubic(ucp+1, utn+1, u, cp+4); + decasteljau_cubic(ucp+2, utn+2, u, cp+8); + decasteljau_cubic(ucp+3, utn+3, u, cp+12); + + /* interpolate over v */ + decasteljau_cubic(P, dv, v, ucp); + if(du) decasteljau_cubic(du, NULL, v, utn); +} + +static float3 decasteljau_tangent(const float3 cp[12], float u, float v) +{ + float3 ucp[3]; + + decasteljau_cubic(ucp+0, NULL, v, cp); + decasteljau_cubic(ucp+1, NULL, v, cp+4); + decasteljau_cubic(ucp+2, NULL, v, cp+8); + + return decasteljau_quadratic(u, ucp); +} + +/* Linear Quad Patch */ + +void LinearQuadPatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + float3 d0 = interp(hull[0], hull[1], u); + float3 d1 = interp(hull[2], hull[3], u); + + *P = interp(d0, d1, v); + + if(dPdu && dPdv) { + *dPdu = interp(hull[1] - hull[0], hull[3] - hull[2], v); + *dPdv = interp(hull[2] - hull[0], hull[3] - hull[1], u); + } +} + +BoundBox LinearQuadPatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 4; i++) + bbox.grow(hull[i]); + + return bbox; +} + +/* Linear Triangle Patch */ + +void LinearTrianglePatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + *P = u*hull[0] + v*hull[1] + (1.0f - u - v)*hull[2]; + + if(dPdu && dPdv) { + *dPdu = hull[0] - hull[2]; + *dPdv = hull[1] - hull[2]; + } +} + +BoundBox LinearTrianglePatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 3; i++) + bbox.grow(hull[i]); + + return bbox; +} + +/* Bicubic Patch */ + +void BicubicPatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + decasteljau_bicubic(P, dPdu, dPdv, hull, u, v); +} + +BoundBox BicubicPatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 16; i++) + bbox.grow(hull[i]); + + return bbox; +} + +/* Bicubic Patch with Tangent Fields */ + +void BicubicTangentPatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + decasteljau_bicubic(P, NULL, NULL, hull, u, v); + + if(dPdu) *dPdu = decasteljau_tangent(utan, u, v); + if(dPdv) *dPdv = decasteljau_tangent(vtan, v, u); +} + +BoundBox BicubicTangentPatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 16; i++) + bbox.grow(hull[i]); + + return bbox; +} + +/* Gregory Patch */ + +static float no_zero_div(float f) +{ + if(f == 0.0f) return 1.0f; + return f; +} + +void GregoryQuadPatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + float3 bicubic[16]; + + float U = 1 - u; + float V = 1 - v; + + /* 8 9 10 11 + * 12 0\1 2/3 13 + * 14 4/5 6\7 15 + * 16 17 18 19 + */ + + bicubic[5] = (u*hull[1] + v*hull[0])/no_zero_div(u + v); + bicubic[6] = (U*hull[2] + v*hull[3])/no_zero_div(U + v); + bicubic[9] = (u*hull[5] + V*hull[4])/no_zero_div(u + V); + bicubic[10] = (U*hull[6] + V*hull[7])/no_zero_div(U + V); + + // Map gregory control points to bezier control points. + bicubic[0] = hull[8]; + bicubic[1] = hull[9]; + bicubic[2] = hull[10]; + bicubic[3] = hull[11]; + bicubic[4] = hull[12]; + bicubic[7] = hull[13]; + bicubic[8] = hull[14]; + bicubic[11] = hull[15]; + bicubic[12] = hull[16]; + bicubic[13] = hull[17]; + bicubic[14] = hull[18]; + bicubic[15] = hull[19]; + + decasteljau_bicubic(P, dPdu, dPdv, bicubic, u, v); +} + +BoundBox GregoryQuadPatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 20; i++) + bbox.grow(hull[i]); + + return bbox; +} + +void GregoryTrianglePatch::eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) +{ + /* 6 + * + * 14 0/1 7 + * + * 13 5/4 3\2 8 + * + * 12 11 10 9 + */ + + float w = 1 - u - v; + float uu = u * u; + float vv = v * v; + float ww = w * w; + float uuu = uu * u; + float vvv = vv * v; + float www = ww * w; + + float U = 1 - u; + float V = 1 - v; + float W = 1 - w; + + float3 C0 = ( v*U * hull[5] + u*V * hull[4] ) / no_zero_div(v*U + u*V); + float3 C1 = ( w*V * hull[3] + v*W * hull[2] ) / no_zero_div(w*V + v*W); + float3 C2 = ( u*W * hull[1] + w*U * hull[0] ) / no_zero_div(u*W + w*U); + + *P = + (hull[12] * www + 3*hull[11] * ww*u + 3*hull[10] * w*uu + hull[ 9]*uuu) * (w + u) + + (hull[ 9] * uuu + 3*hull[ 8] * uu*v + 3*hull[ 7] * u*vv + hull[ 6]*vvv) * (u + v) + + (hull[ 6] * vvv + 3*hull[14] * vv*w + 3*hull[13] * v*ww + hull[12]*www) * (v + w) - + (hull[12] * www*w + hull[ 9] * uuu*u + hull[ 6] * vvv*v) + + 12*(C0 * u*v*ww + C1 * uu*v*w + C2 * u*vv*w); + + if(dPdu || dPdv) { + float3 E1 = (hull[12]*www + 3*hull[11]*ww*u + 3*hull[10]*w*uu + hull[ 9]*uuu); + float3 E2 = (hull[ 9]*uuu + 3*hull[ 8]*uu*v + 3*hull[ 7]*u*vv + hull[ 6]*vvv); + float3 E3 = (hull[ 6]*vvv + 3*hull[14]*vv*w + 3*hull[13]*v*ww + hull[12]*www); + + if(dPdu) { + float3 E1u = 3*( - hull[12]*ww + hull[11]*(ww-2*u*w) + hull[10]*(2*u*w-uu) + hull[ 9]*uu); + float3 E2u = 3*( hull[ 9]*uu + 2*hull[ 8]*u*v + hull[ 7]*vv ); + float3 E3u = 3*( - hull[14]*vv - 2*hull[13]*v*w - hull[12]*ww); + float3 Su = 4*( -hull[12]*www + hull[9]*uuu); + float3 Cu = 12*( C0*(ww*v-2*u*v*w) + C1*(2*u*v*w-uu*v) + C2*vv*(w-u) ); + + *dPdu = E1u*(w+u) + (E2+E2u*(u+v)) + (E3u*(v+w)-E3) - Su + Cu; + } + + if(dPdv) { + float3 E1v = 3*(-hull[12]*ww - 2*hull[11]*w*u - hull[10]*uu ); + float3 E2v = 3*( hull[ 8]*uu + 2*hull[ 7]*u*v + hull[ 6]*vv); + float3 E3v = 3*( hull[ 6]*vv + hull[14]*(2*w*v-vv) + hull[13]*(ww-2*w*v) - hull[12]*ww); + float3 Sv = 4*(-hull[12]*www + hull[ 6]*vvv); + float3 Cv = 12*(C0*(u*ww-2*u*v*w) + C1*uu*(w-v) + C2*(2*u*v*w-u*vv)); + + *dPdv = ((E1v*(w+u)-E1) + (E2+E2v*(u+v)) + E3v*(v+w) - Sv + Cv ); + } + } +} + +BoundBox GregoryTrianglePatch::bound() +{ + BoundBox bbox; + + for(int i = 0; i < 20; i++) + bbox.grow(hull[i]); + + return bbox; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_patch.h b/intern/cycles/subd/subd_patch.h new file mode 100644 index 00000000000..8d4b8a1c911 --- /dev/null +++ b/intern/cycles/subd/subd_patch.h @@ -0,0 +1,107 @@ +/* + * 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 __SUBD_PATCH_H__ +#define __SUBD_PATCH_H__ + +#include "util_boundbox.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class Mesh; + +/* Base */ + +class Patch { +public: + virtual void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) = 0; + virtual bool is_triangle() = 0; + virtual BoundBox bound() = 0; +}; + +/* Linear Quad Patch */ + +class LinearQuadPatch : public Patch { +public: + float3 hull[4]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return false; } + BoundBox bound(); +}; + +/* Linear Triangle Patch */ + +class LinearTrianglePatch : public Patch { +public: + float3 hull[3]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return true; } + BoundBox bound(); +}; + +/* Bicubic Patch */ + +class BicubicPatch : public Patch { +public: + float3 hull[16]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return false; } + BoundBox bound(); +}; + +/* Bicubic Patch with Tangent Fields */ + +class BicubicTangentPatch : public Patch { +public: + float3 hull[16]; + float3 utan[12]; + float3 vtan[12]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return false; } + BoundBox bound(); +}; + +/* Gregory Patches */ + +class GregoryQuadPatch : public Patch { +public: + float3 hull[20]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return false; } + BoundBox bound(); +}; + +class GregoryTrianglePatch : public Patch { +public: + float3 hull[20]; + + void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v); + bool is_triangle() { return true; } + BoundBox bound(); +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_PATCH_H__ */ + diff --git a/intern/cycles/subd/subd_ring.cpp b/intern/cycles/subd/subd_ring.cpp new file mode 100644 index 00000000000..cbd12e60da0 --- /dev/null +++ b/intern/cycles/subd/subd_ring.cpp @@ -0,0 +1,236 @@ +/* + * Copyright 2006, NVIDIA Corporation Ignacio Castano + * + * Modifications copyright (c) 2011, Blender Foundation. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "subd_face.h" +#include "subd_ring.h" +#include "subd_stencil.h" +#include "subd_vert.h" + +#include "util_algorithm.h" +#include "util_debug.h" +#include "util_math.h" + +CCL_NAMESPACE_BEGIN + +/* Utility for sorting verts by index */ + +class vertex_compare +{ +public: + const vector& index; + vertex_compare(const vector& index_) : index(index_) {} + bool operator()(int a, int b) const { return index[a] < index[b]; } +}; + +/* Subd Face Ring */ + +SubdFaceRing::SubdFaceRing(SubdFace *face, SubdEdge *firstEdge) +{ + m_face = face; + m_firstEdge = firstEdge; + m_num_edges = face->num_edges(); + + assert(m_num_edges == 3 || m_num_edges == 4); + + initVerts(); +} + +int SubdFaceRing::num_verts() +{ + return m_verts.size(); +} + +SubdVert *SubdFaceRing::vertexAt(int i) +{ + return m_verts[i]; +} + +int SubdFaceRing::vert_index(SubdVert *vertex) +{ + int count = this->num_verts(); + + for(int i = 0; i < count; i++) + if(m_verts[i] == vertex) + return i; + + assert(0); + return 0; +} + +void SubdFaceRing::evaluate_stencils(float3 *P, StencilMask *mask, int num) +{ + /* first we sort verts by id. this way verts will always be added + in the same order to ensure the exact same float ops happen for control + points of other patches, so we get water-tight patches */ + int num_verts = m_verts.size(); + + vector vmap(num_verts); + vector vertid(num_verts); + + for(int v = 0; v < num_verts; v++) { + vmap[v] = v; + vertid[v] = m_verts[v]->id; + } + + sort(vmap.begin(), vmap.end(), vertex_compare(vertid)); + + /* then evaluate the stencils */ + for(int j = 0; j < num; j++) { + float3 p = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i < num_verts; i++) { + int idx = vmap[i]; + p += m_verts[idx]->co * mask[j][idx]; + } + + P[j] = p; + } +} + +bool SubdFaceRing::is_triangle() +{ + return m_num_edges == 3; +} + +bool SubdFaceRing::is_quad() +{ + return m_num_edges == 4; +} + +int SubdFaceRing::num_edges() +{ + return m_num_edges; +} + +bool SubdFaceRing::is_regular(SubdFace *face) +{ + if(!is_quad(face)) + return false; + + for(SubdFace::EdgeIterator it(face->edges()); !it.isDone(); it.advance()) { + SubdEdge *edge = it.current(); + + /* regular faces don't have boundary edges */ + if(edge->is_boundary()) + return false; + + /* regular faces only have ordinary verts */ + if(edge->vert->valence() != 4) + return false; + + /* regular faces are only adjacent to quads */ + for(SubdVert::EdgeIterator eit(edge); !eit.isDone(); eit.advance()) + if(eit.current()->face == NULL || eit.current()->face->num_edges() != 4) + return false; + } + + return true; +} + +bool SubdFaceRing::is_triangle(SubdFace *face) +{ + return face->num_edges() == 3; +} +bool SubdFaceRing::is_quad(SubdFace *face) +{ + return face->num_edges() == 4; +} + +bool SubdFaceRing::is_boundary(SubdFace *face) +{ + /* note that face->is_boundary() returns a different result. That function + returns true when any of the *edges* are on the boundary. however, this + function returns true if any of the face *verts* are on the boundary. */ + + for(SubdFace::EdgeIterator it(face->edges()); !it.isDone(); it.advance()) { + SubdEdge *edge = it.current(); + + if(edge->vert->is_boundary()) + return true; + } + + return false; +} + +void SubdFaceRing::initVerts() +{ + m_verts.reserve(16); + + /* add face verts */ + for(SubdFace::EdgeIterator it(m_firstEdge); !it.isDone(); it.advance()) { + SubdEdge *edge = it.current(); + m_verts.push_back(edge->from()); + } + + // @@ Add support for non manifold surfaces! + // The fix: + // - not all colocals should point to the same edge. + // - multiple colocals could belong to different boundaries, make sure they point to the right one. + + // @@ When the face neighborhood wraps that could result in overlapping stencils. + + // Add surronding verts. + for(SubdFace::EdgeIterator it(m_firstEdge); !it.isDone(); it.advance()) { + SubdEdge *firstEdge = it.current(); + + int i = 0; + + /* traverse edges around vertex */ + for(SubdVert::ReverseEdgeIterator eit(firstEdge); !eit.isDone(); eit.advance(), i++) { + SubdEdge *edge = eit.current(); + + assert(edge->from()->co == firstEdge->from()->co); + + add_vert(edge->to()); + + if(edge->face != NULL) + add_vert(edge->next->to()); + } + + assert(i == firstEdge->from()->valence()); + } +} + + +void SubdFaceRing::add_vert(SubdVert *vertex) +{ + /* avoid having duplicate verts */ + if(!has_vert(vertex)) + m_verts.push_back(vertex); +} + +bool SubdFaceRing::has_vert(SubdVert *vertex) +{ + int num_verts = m_verts.size(); + + for(int i = 0; i < num_verts; i++) + if(m_verts[i]->co == vertex->co) + return true; + + return false; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_ring.h b/intern/cycles/subd/subd_ring.h new file mode 100644 index 00000000000..f25342233b0 --- /dev/null +++ b/intern/cycles/subd/subd_ring.h @@ -0,0 +1,75 @@ +/* + * Copyright 2006, NVIDIA Corporation Ignacio Castano + * + * Modifications copyright (c) 2011, Blender Foundation. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef __SUBD_FACE_RING_H__ +#define __SUBD_FACE_RING_H__ + +CCL_NAMESPACE_BEGIN + +class StencilMask; +class SubdVert; +class SubdEdge; +class SubdFace; + +class SubdFaceRing +{ +public: + SubdFaceRing(SubdFace *face, SubdEdge *edge); + + SubdFace *face() { return m_face; } + SubdEdge *firstEdge() { return m_firstEdge; } + + int num_verts(); + SubdVert *vertexAt(int i); + int vert_index(SubdVert *vertex); + + void evaluate_stencils(float3 *P, StencilMask *mask, int num); + + bool is_triangle(); + bool is_quad(); + int num_edges(); + + static bool is_regular(SubdFace *face); + static bool is_triangle(SubdFace *face); + static bool is_quad(SubdFace *face); + static bool is_boundary(SubdFace *face); + +protected: + void initVerts(); + void add_vert(SubdVert *vertex); + bool has_vert(SubdVert *vertex); + +protected: + SubdFace *m_face; + SubdEdge *m_firstEdge; + + int m_num_edges; + vector m_verts; +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_FACE_RING_H__ */ + diff --git a/intern/cycles/subd/subd_split.cpp b/intern/cycles/subd/subd_split.cpp new file mode 100644 index 00000000000..712bd041e64 --- /dev/null +++ b/intern/cycles/subd/subd_split.cpp @@ -0,0 +1,325 @@ +/* + * 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 "camera.h" +#include "mesh.h" + +#include "subd_dice.h" +#include "subd_patch.h" +#include "subd_split.h" + +#include "util_debug.h" +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* DiagSplit */ + +DiagSplit::DiagSplit() +{ + test_steps = 3; + split_threshold = 1; + dicing_rate = 0.1f; + camera = NULL; +} + +void DiagSplit::dispatch(QuadDice::SubPatch& sub, QuadDice::EdgeFactors& ef) +{ + subpatches_quad.push_back(sub); + edgefactors_quad.push_back(ef); +} + +void DiagSplit::dispatch(TriangleDice::SubPatch& sub, TriangleDice::EdgeFactors& ef) +{ + subpatches_triangle.push_back(sub); + edgefactors_triangle.push_back(ef); +} + +float3 DiagSplit::project(Patch *patch, float2 uv) +{ + float3 P; + + patch->eval(&P, NULL, NULL, uv.x, uv.y); + if(camera) + P = transform(&camera->worldtoraster, P); + + return P; +} + +int DiagSplit::T(Patch *patch, float2 Pstart, float2 Pend) +{ + float3 Plast = make_float3(0.0f, 0.0f, 0.0f); + float Lsum = 0.0f; + float Lmax = 0.0f; + + for(int i = 0; i < test_steps; i++) { + float t = i/(float)(test_steps-1); + + float3 P = project(patch, Pstart + t*(Pend - Pstart)); + + if(i > 0) { + float L = len(P - Plast); + Lsum += L; + Lmax = max(L, Lmax); + } + + Plast = P; + } + + int tmin = ceil(Lsum/dicing_rate); + int tmax = ceil((test_steps-1)*Lmax/dicing_rate); // XXX paper says N instead of N-1, seems wrong? + + if(tmax - tmin > split_threshold) + return DSPLIT_NON_UNIFORM; + + return tmax; +} + +void DiagSplit::partition_edge(Patch *patch, float2 *P, int *t0, int *t1, float2 Pstart, float2 Pend, int t) +{ + if(t == DSPLIT_NON_UNIFORM) { + *P = (Pstart + Pend)*0.5f; + *t0 = T(patch, Pstart, *P); + *t1 = T(patch, *P, Pend); + } + else { + int I = floor(t*0.5f); + *P = interp(Pstart, Pend, (t == 0)? 0: I/(float)t); /* XXX is t faces or verts */ + *t0 = I; + *t1 = t - I; + } +} + +void DiagSplit::split(TriangleDice::SubPatch& sub, TriangleDice::EdgeFactors& ef, int depth) +{ + assert(ef.tu == T(sub.patch, sub.Pv, sub.Pw)); + assert(ef.tv == T(sub.patch, sub.Pw, sub.Pu)); + assert(ef.tw == T(sub.patch, sub.Pu, sub.Pv)); + + if(depth == 0) { + dispatch(sub, ef); + return; + } + + if(ef.tu == DSPLIT_NON_UNIFORM) { + /* partition edges */ + TriangleDice::EdgeFactors ef0, ef1; + float2 Psplit; + + partition_edge(sub.patch, + &Psplit, &ef1.tu, &ef0.tu, sub.Pv, sub.Pw, ef.tu); + + /* split */ + int tsplit = T(sub.patch, sub.Pu, Psplit); + ef0.tv = ef.tv; + ef0.tw = tsplit; + + ef1.tv = tsplit; + ef1.tw = ef.tw; + + /* create subpatches */ + TriangleDice::SubPatch sub0 = {sub.patch, sub.Pu, Psplit, sub.Pw}; + TriangleDice::SubPatch sub1 = {sub.patch, sub.Pu, sub.Pv, Psplit}; + + split(sub0, ef0, depth+1); + split(sub1, ef1, depth+1); + } + else if(ef.tv == DSPLIT_NON_UNIFORM) { + /* partition edges */ + TriangleDice::EdgeFactors ef0, ef1; + float2 Psplit; + + partition_edge(sub.patch, + &Psplit, &ef1.tu, &ef0.tu, sub.Pw, sub.Pu, ef.tv); + + /* split */ + int tsplit = T(sub.patch, sub.Pv, Psplit); + ef0.tv = ef.tw; + ef0.tw = tsplit; + + ef1.tv = tsplit; + ef1.tw = ef.tu; + + /* create subpatches */ + TriangleDice::SubPatch sub0 = {sub.patch, sub.Pv, Psplit, sub.Pu}; + TriangleDice::SubPatch sub1 = {sub.patch, sub.Pv, sub.Pw, Psplit}; + + split(sub0, ef0, depth+1); + split(sub1, ef1, depth+1); + } + else if(ef.tw == DSPLIT_NON_UNIFORM) { + /* partition edges */ + TriangleDice::EdgeFactors ef0, ef1; + float2 Psplit; + + partition_edge(sub.patch, + &Psplit, &ef1.tu, &ef0.tu, sub.Pu, sub.Pv, ef.tw); + + /* split */ + int tsplit = T(sub.patch, sub.Pw, Psplit); + ef0.tv = ef.tu; + ef0.tw = tsplit; + + ef1.tv = tsplit; + ef1.tw = ef.tv; + + /* create subpatches */ + TriangleDice::SubPatch sub0 = {sub.patch, sub.Pw, Psplit, sub.Pv}; + TriangleDice::SubPatch sub1 = {sub.patch, sub.Pw, sub.Pu, Psplit}; + + split(sub0, ef0, depth+1); + split(sub1, ef1, depth+1); + } + else + dispatch(sub, ef); +} + +void DiagSplit::split(QuadDice::SubPatch& sub, QuadDice::EdgeFactors& ef, int depth) +{ + if((ef.tu0 == DSPLIT_NON_UNIFORM || ef.tu1 == DSPLIT_NON_UNIFORM)) { + /* partition edges */ + QuadDice::EdgeFactors ef0, ef1; + float2 Pu0, Pu1; + + partition_edge(sub.patch, + &Pu0, &ef0.tu0, &ef1.tu0, sub.P00, sub.P10, ef.tu0); + partition_edge(sub.patch, + &Pu1, &ef0.tu1, &ef1.tu1, sub.P01, sub.P11, ef.tu1); + + /* split */ + int tsplit = T(sub.patch, Pu0, Pu1); + ef0.tv0 = ef.tv0; + ef0.tv1 = tsplit; + + ef1.tv0 = tsplit; + ef1.tv1 = ef.tv1; + + /* create subpatches */ + QuadDice::SubPatch sub0 = {sub.patch, sub.P00, Pu0, sub.P01, Pu1}; + QuadDice::SubPatch sub1 = {sub.patch, Pu0, sub.P10, Pu1, sub.P11}; + + split(sub0, ef0, depth+1); + split(sub1, ef1, depth+1); + } + else if(ef.tv0 == DSPLIT_NON_UNIFORM || ef.tv1 == DSPLIT_NON_UNIFORM) { + /* partition edges */ + QuadDice::EdgeFactors ef0, ef1; + float2 Pv0, Pv1; + + partition_edge(sub.patch, + &Pv0, &ef0.tv0, &ef1.tv0, sub.P00, sub.P01, ef.tv0); + partition_edge(sub.patch, + &Pv1, &ef0.tv1, &ef1.tv1, sub.P10, sub.P11, ef.tv1); + + /* split */ + int tsplit = T(sub.patch, Pv0, Pv1); + ef0.tu0 = ef.tu0; + ef0.tu1 = tsplit; + + ef1.tu0 = tsplit; + ef1.tu1 = ef.tu1; + + /* create subpatches */ + QuadDice::SubPatch sub0 = {sub.patch, sub.P00, sub.P10, Pv0, Pv1}; + QuadDice::SubPatch sub1 = {sub.patch, Pv0, Pv1, sub.P01, sub.P11}; + + split(sub0, ef0, depth+1); + split(sub1, ef1, depth+1); + } + else + dispatch(sub, ef); +} + +void DiagSplit::split_triangle(Mesh *mesh, Patch *patch, int shader, bool smooth) +{ + TriangleDice::SubPatch sub; + TriangleDice::EdgeFactors ef; + + sub.patch = patch; + sub.Pu = make_float2(1.0f, 0.0f); + sub.Pv = make_float2(0.0f, 1.0f); + sub.Pw = make_float2(0.0f, 0.0f); + + ef.tu = T(patch, sub.Pv, sub.Pw); + ef.tv = T(patch, sub.Pw, sub.Pu); + ef.tw = T(patch, sub.Pu, sub.Pv); + + split(sub, ef); + + TriangleDice dice(mesh, shader, smooth, dicing_rate); + dice.camera = camera; + + for(size_t i = 0; i < subpatches_triangle.size(); i++) { + TriangleDice::SubPatch& sub = subpatches_triangle[i]; + TriangleDice::EdgeFactors& ef = edgefactors_triangle[i]; + + ef.tu = 4; + ef.tv = 4; + ef.tw = 4; + + ef.tu = max(ef.tu, 1); + ef.tv = max(ef.tv, 1); + ef.tw = max(ef.tw, 1); + + dice.dice(sub, ef); + } + + subpatches_triangle.clear(); + edgefactors_triangle.clear(); +} + +void DiagSplit::split_quad(Mesh *mesh, Patch *patch, int shader, bool smooth) +{ + QuadDice::SubPatch sub; + QuadDice::EdgeFactors ef; + + sub.patch = patch; + sub.P00 = make_float2(0.0f, 0.0f); + sub.P10 = make_float2(1.0f, 0.0f); + sub.P01 = make_float2(0.0f, 1.0f); + sub.P11 = make_float2(1.0f, 1.0f); + + ef.tu0 = T(patch, sub.P00, sub.P10); + ef.tu1 = T(patch, sub.P01, sub.P11); + ef.tv0 = T(patch, sub.P00, sub.P01); + ef.tv1 = T(patch, sub.P10, sub.P11); + + split(sub, ef); + + QuadDice dice(mesh, shader, smooth, dicing_rate); + dice.camera = camera; + + for(size_t i = 0; i < subpatches_quad.size(); i++) { + QuadDice::SubPatch& sub = subpatches_quad[i]; + QuadDice::EdgeFactors& ef = edgefactors_quad[i]; + + ef.tu0 = max(ef.tu0, 1); + ef.tu1 = max(ef.tu1, 1); + ef.tv0 = max(ef.tv0, 1); + ef.tv1 = max(ef.tv1, 1); + + dice.dice(sub, ef); + } + + subpatches_quad.clear(); + edgefactors_quad.clear(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_split.h b/intern/cycles/subd/subd_split.h new file mode 100644 index 00000000000..8ec5d24266e --- /dev/null +++ b/intern/cycles/subd/subd_split.h @@ -0,0 +1,71 @@ +/* + * 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 __SUBD_SPLIT_H__ +#define __SUBD_SPLIT_H__ + +/* DiagSplit: Parallel, Crack-free, Adaptive Tessellation for Micropolygon Rendering + * Splits up patches and determines edge tesselation factors for dicing. Patch + * evaluation at arbitrary points is required for this to work. See the paper + * for more details. */ + +#include "subd_dice.h" + +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class Mesh; +class Patch; + +#define DSPLIT_NON_UNIFORM -1 + +class DiagSplit { +public: + vector subpatches_quad; + vector edgefactors_quad; + vector subpatches_triangle; + vector edgefactors_triangle; + + int test_steps; + int split_threshold; + float dicing_rate; + Camera *camera; + + DiagSplit(); + + float3 project(Patch *patch, float2 uv); + int T(Patch *patch, float2 Pstart, float2 Pend); + void partition_edge(Patch *patch, float2 *P, int *t0, int *t1, + float2 Pstart, float2 Pend, int t); + + void dispatch(QuadDice::SubPatch& sub, QuadDice::EdgeFactors& ef); + void split(QuadDice::SubPatch& sub, QuadDice::EdgeFactors& ef, int depth=0); + + void dispatch(TriangleDice::SubPatch& sub, TriangleDice::EdgeFactors& ef); + void split(TriangleDice::SubPatch& sub, TriangleDice::EdgeFactors& ef, int depth=0); + + void split_triangle(Mesh *mesh, Patch *patch, int shader, bool smooth); + void split_quad(Mesh *mesh, Patch *patch, int shader, bool smooth); +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_SPLIT_H__ */ + diff --git a/intern/cycles/subd/subd_stencil.cpp b/intern/cycles/subd/subd_stencil.cpp new file mode 100644 index 00000000000..599a745eebb --- /dev/null +++ b/intern/cycles/subd/subd_stencil.cpp @@ -0,0 +1,103 @@ +/* + * 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 "subd_stencil.h" + +#include "util_debug.h" +#include "util_math.h" + +CCL_NAMESPACE_BEGIN + +StencilMask::StencilMask() +{ +} + +StencilMask::StencilMask(int size) +{ + /* initialize weights to zero. */ + weights.resize(size, 0.0f); +} + +void StencilMask::resize(int size) +{ + weights.resize(size, 0.0f); +} + +StencilMask& StencilMask::operator=(float value) +{ + const int size = weights.size(); + for(int i = 0; i < size; i++) + weights[i] = value; + + return *this; +} + +void StencilMask::operator+=(const StencilMask& mask) +{ + assert(mask.size() == size()); + + const int size = weights.size(); + for(int i = 0; i < size; i++) + weights[i] += mask.weights[i]; +} + +void StencilMask::operator-=(const StencilMask& mask) +{ + assert(mask.size() == size()); + + const int size = weights.size(); + for(int i = 0; i < size; i++) + weights[i] -= mask.weights[i]; +} + +void StencilMask::operator*=(float scale) +{ + const int size = weights.size(); + + for(int i = 0; i < size; i++) + weights[i] *= scale; +} + +void StencilMask::operator/=(float scale) +{ + *this *= 1.0f/scale; +} + +float StencilMask::sum() const +{ + float total = 0.0f; + const int size = weights.size(); + + for(int i = 0; i < size; i++) + total += weights[i]; + + return total; +} + +bool StencilMask::is_normalized() const +{ + return fabsf(sum() - 1.0f) < 0.0001f; +} + +void StencilMask::normalize() +{ + *this /= sum(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/subd/subd_stencil.h b/intern/cycles/subd/subd_stencil.h new file mode 100644 index 00000000000..e11d8f37cd3 --- /dev/null +++ b/intern/cycles/subd/subd_stencil.h @@ -0,0 +1,65 @@ +/* + * Copyright 2006, NVIDIA Corporation Ignacio Castano + * + * Modifications copyright (c) 2011, Blender Foundation. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef __SUBD_STENCIL__ +#define __SUBD_STENCIL__ + +#include "util_types.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class StencilMask +{ +public: + StencilMask(); + StencilMask(int size); + + void resize(int size); + + StencilMask& operator=(float value); + + void operator+=(const StencilMask& mask); + void operator-=(const StencilMask& mask); + void operator*=(float scale); + void operator/=(float scale); + + int size() const { return weights.size(); } + + float operator[](int i) const { return weights[i]; } + float& operator[](int i) { return weights[i]; } + + float sum() const; + bool is_normalized() const; + void normalize(); + +private: + vector weights; +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_STENCIL__ */ + diff --git a/intern/cycles/subd/subd_vert.h b/intern/cycles/subd/subd_vert.h new file mode 100644 index 00000000000..638019547ae --- /dev/null +++ b/intern/cycles/subd/subd_vert.h @@ -0,0 +1,121 @@ +/* + * Original code in the public domain -- castanyo@yahoo.es + * + * Modifications copyright (c) 2011, Blender Foundation. + * 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. + * + * 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 + * HOLDER 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 __SUBD_VERTEX_H__ +#define __SUBD_VERTEX_H__ + +#include "subd_edge.h" +#include "subd_mesh.h" + +CCL_NAMESPACE_BEGIN + +/* Subd Vertex */ + +class SubdVert +{ +public: + int id; + float3 co; + + SubdEdge *edge; + SubdVert *next; + SubdVert *prev; + + SubdVert(int id_) + { + id = id_; + edge = NULL; + co = make_float3(0.0f, 0.0f, 0.0f); + + next = this; + prev = this; + } + + /* valence */ + int valence() + { + int num = 0; + + for(EdgeIterator it(edges()); !it.isDone(); it.advance()) + num++; + + return num; + } + + /* edge queries */ + bool is_boundary() { return (edge && !edge->face); } + + /* iterator over edges in counterclockwise order */ + class EdgeIterator + { + public: + EdgeIterator(SubdEdge *e) : end(NULL), cur(e) { } + + virtual void advance() + { + if(end == NULL) end = cur; + cur = cur->pair->next; + //cur = cur->prev->pair; + } + + virtual bool isDone() { return end == cur; } + virtual SubdEdge *current() { return cur; } + + private: + SubdEdge *end; + SubdEdge *cur; + }; + + /* iterator over edges in clockwise order */ + class ReverseEdgeIterator + { + public: + ReverseEdgeIterator(SubdEdge *e) : end(NULL), cur(e) { } + + virtual void advance() + { + if(end == NULL) end = cur; + cur = cur->prev->pair; + } + + virtual bool isDone() { return end == cur; } + virtual SubdEdge *current() { return cur; } + + private: + SubdEdge *end; + SubdEdge *cur; + }; + + EdgeIterator edges() { return EdgeIterator(edge); } + EdgeIterator edges(SubdEdge *edge) { return EdgeIterator(edge); } +}; + +CCL_NAMESPACE_END + +#endif /* __SUBD_VERTEX_H__ */ + diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt new file mode 100644 index 00000000000..3fea6182a97 --- /dev/null +++ b/intern/cycles/util/CMakeLists.txt @@ -0,0 +1,47 @@ + +INCLUDE_DIRECTORIES(.) + +SET(sources + util_cache.cpp + util_cuda.cpp + util_dynlib.cpp + util_md5.cpp + util_path.cpp + util_string.cpp + util_system.cpp + util_time.cpp + util_transform.cpp + util_view.cpp) + +SET(headers + util_algorithm.h + util_args.h + util_boundbox.h + util_cache.h + util_cuda.h + util_debug.h + util_dynlib.h + util_function.h + util_hash.h + util_image.h + util_list.h + util_map.h + util_math.h + util_md5.h + util_opengl.h + util_param.h + util_path.h + util_progress.h + util_set.h + util_string.h + util_system.h + util_thread.h + util_time.h + util_transform.h + util_types.h + util_view.h + util_vector.h + util_xml.h) + +ADD_LIBRARY(util ${sources} ${headers}) + diff --git a/intern/cycles/util/util_algorithm.h b/intern/cycles/util/util_algorithm.h new file mode 100644 index 00000000000..708a2730be7 --- /dev/null +++ b/intern/cycles/util/util_algorithm.h @@ -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. + */ + +#ifndef __UTIL_ALGORITHM_H__ +#define __UTIL_ALGORITHM_H__ + +#include + +CCL_NAMESPACE_BEGIN + +using std::sort; +using std::swap; +using std::max; +using std::min; +using std::remove; + +CCL_NAMESPACE_END + +#endif /* __UTIL_ALGORITHM_H__ */ + diff --git a/intern/cycles/util/util_args.h b/intern/cycles/util/util_args.h new file mode 100644 index 00000000000..639fd06bead --- /dev/null +++ b/intern/cycles/util/util_args.h @@ -0,0 +1,34 @@ +/* + * 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_ARGS_H__ +#define __UTIL_ARGS_H__ + +/* Argument Parsing for command line, we use the OpenImageIO + * library because it has nice functions to do this. */ + +#include + +CCL_NAMESPACE_BEGIN + +OIIO_NAMESPACE_USING + +CCL_NAMESPACE_END + +#endif /* __UTIL_ARGS_H__ */ + diff --git a/intern/cycles/util/util_boundbox.h b/intern/cycles/util/util_boundbox.h new file mode 100644 index 00000000000..34cc1d6e11c --- /dev/null +++ b/intern/cycles/util/util_boundbox.h @@ -0,0 +1,98 @@ +/* + * 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_BOUNDBOX_H__ +#define __UTIL_BOUNDBOX_H__ + +#include + +#include "util_transform.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class BoundBox +{ +public: + float3 min, max; + + BoundBox(void) + { + min = make_float3(FLT_MAX, FLT_MAX, FLT_MAX); + max = make_float3(-FLT_MAX, -FLT_MAX, -FLT_MAX); + } + + BoundBox(const float3& min_, const float3& max_) + : min(min_), max(max_) + { + } + + void grow(const float3& pt) + { + min = ccl::min(min, pt); + max = ccl::max(max, pt); + } + + void grow(const BoundBox& bbox) + { + grow(bbox.min); + grow(bbox.max); + } + + void intersect(const BoundBox& bbox) + { + min = ccl::max(min, bbox.min); + max = ccl::min(max, bbox.max); + } + + float area(void) const + { + if(!valid()) + return 0.0f; + + float3 d = max - min; + return dot(d, d)*2.0f; + } + + bool valid(void) const + { + return (min.x <= max.x) && (min.y <= max.y) && (min.z <= max.z); + } + + BoundBox transformed(const Transform *tfm) + { + BoundBox result; + + for(int i = 0; i < 8; i++) { + float3 p; + + p.x = (i & 1)? min.x: max.x; + p.y = (i & 2)? min.y: max.y; + p.z = (i & 4)? min.z: max.z; + + result.grow(transform(tfm, p)); + } + + return result; + } +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_BOUNDBOX_H__ */ + diff --git a/intern/cycles/util/util_cache.cpp b/intern/cycles/util/util_cache.cpp new file mode 100644 index 00000000000..49a0f62cae8 --- /dev/null +++ b/intern/cycles/util/util_cache.cpp @@ -0,0 +1,93 @@ +/* + * 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 + +#include "util_cache.h" +#include "util_foreach.h" +#include "util_md5.h" +#include "util_path.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +/* CacheData */ + +CacheData::CacheData(const string& name_) +{ + name = name_; + f = NULL; +} + +CacheData::~CacheData() +{ + if(f) + fclose(f); +} + +/* Cache */ + +Cache Cache::global; + +string Cache::data_filename(const CacheData& key) +{ + MD5Hash hash; + + foreach(const CacheBuffer& buffer, key.buffers) + hash.append((uint8_t*)buffer.data, buffer.size); + + string fname = key.name + "_" + hash.get_hex(); + return path_get("cache/" + fname); +} + +void Cache::insert(const CacheData& key, const CacheData& value) +{ + string filename = data_filename(key); + FILE *f = fopen(filename.c_str(), "wb"); + + if(!f) { + fprintf(stderr, "Failed to open file %s for writing.\n", filename.c_str()); + return; + } + + foreach(const CacheBuffer& buffer, value.buffers) { + if(!fwrite(&buffer.size, sizeof(buffer.size), 1, f)) + fprintf(stderr, "Failed to write to file %s.\n", filename.c_str()); + if(!fwrite(buffer.data, buffer.size, 1, f)) + fprintf(stderr, "Failed to write to file %s.\n", filename.c_str()); + } + + fclose(f); +} + +bool Cache::lookup(const CacheData& key, CacheData& value) +{ + string filename = data_filename(key); + FILE *f = fopen(filename.c_str(), "rb"); + + if(!f) + return false; + + value.name = key.name; + value.f = f; + + return true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_cache.h b/intern/cycles/util/util_cache.h new file mode 100644 index 00000000000..25b1f2e7a51 --- /dev/null +++ b/intern/cycles/util/util_cache.h @@ -0,0 +1,132 @@ +/* + * 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_CACHE_H__ +#define __UTIL_CACHE_H__ + +/* Disk Cache based on Hashing + * + * To be used to cache expensive computations. The hash key is created from an + * arbitrary number of bytes, by hashing the bytes using MD5, which then gives + * the file name containing the data. This data then is read from the file + * again into the appropriate data structures. + * + * This way we do not need to accurately track changes, compare dates and + * invalidate cache entries, at the cost of exta computation. If everything + * is stored in a global cache, computations can perhaps even be shared between + * different scenes where it may be hard to detect duplicate work. + */ + +#include "util_string.h" +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +class CacheBuffer { +public: + const void *data; + size_t size; + + CacheBuffer(const void *data_, size_t size_) + { data = data_; size = size_; } +}; + +class CacheData { +public: + vector buffers; + string name; + FILE *f; + + CacheData(const string& name = ""); + ~CacheData(); + + template void add(const vector& data) + { + CacheBuffer buffer(&data[0], data.size()*sizeof(T)); + buffers.push_back(buffer); + } + + template void add(const array& data) + { + CacheBuffer buffer(&data[0], data.size()*sizeof(T)); + buffers.push_back(buffer); + } + + void add(void *data, size_t size) + { + CacheBuffer buffer(data, size); + buffers.push_back(buffer); + } + + void add(int& data) + { + CacheBuffer buffer(&data, sizeof(int)); + buffers.push_back(buffer); + } + + void add(size_t& data) + { + CacheBuffer buffer(&data, sizeof(size_t)); + buffers.push_back(buffer); + } + + template void read(array& data) + { + size_t size; + + if(!fread(&size, sizeof(size), 1, f)) { + fprintf(stderr, "Failed to read vector size from cache.\n"); + return; + } + + data.resize(size/sizeof(T)); + + if(!fread(&data[0], size, 1, f)) { + fprintf(stderr, "Failed to read vector data from cache (%ld).\n", size); + return; + } + } + + void read(int& data) + { + if(!fread(&data, sizeof(data), 1, f)) + fprintf(stderr, "Failed to read int from cache.\n"); + } + + void read(size_t& data) + { + if(!fread(&data, sizeof(data), 1, f)) + fprintf(stderr, "Failed to read size_t from cache.\n"); + } +}; + +class Cache { +public: + static Cache global; + + void insert(const CacheData& key, const CacheData& value); + bool lookup(const CacheData& key, CacheData& value); + +protected: + string data_filename(const CacheData& key); +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_CACHE_H__ */ + diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h new file mode 100644 index 00000000000..fbba0fade63 --- /dev/null +++ b/intern/cycles/util/util_color.h @@ -0,0 +1,46 @@ +/* + * 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_COLOR_H__ +#define __UTIL_COLOR_H__ + +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +__device float color_srgb_to_scene_linear(float c) +{ + if(c < 0.04045f) + return (c < 0.0f)? 0.0f: c * (1.0f/12.92f); + else + return pow((c + 0.055f)*(1.0f/1.055f), 2.4f); +} + +__device float color_scene_linear_to_srgb(float c) +{ + if(c < 0.0031308f) + return (c < 0.0f)? 0.0f: c * 12.92f; + else + return 1.055f * pow(c, 1.0f/2.4f) - 0.055f; +} + +CCL_NAMESPACE_END + +#endif /* __UTIL_COLOR_H__ */ + diff --git a/intern/cycles/util/util_cuda.cpp b/intern/cycles/util/util_cuda.cpp new file mode 100644 index 00000000000..15ce7efd9ee --- /dev/null +++ b/intern/cycles/util/util_cuda.cpp @@ -0,0 +1,379 @@ +/* + * 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 "util_cuda.h" +#include "util_debug.h" +#include "util_dynlib.h" + +/* function defininitions */ + +tcuInit *cuInit; +tcuDriverGetVersion *cuDriverGetVersion; +tcuDeviceGet *cuDeviceGet; +tcuDeviceGetCount *cuDeviceGetCount; +tcuDeviceGetName *cuDeviceGetName; +tcuDeviceComputeCapability *cuDeviceComputeCapability; +tcuDeviceTotalMem *cuDeviceTotalMem; +tcuDeviceGetProperties *cuDeviceGetProperties; +tcuDeviceGetAttribute *cuDeviceGetAttribute; +tcuCtxCreate *cuCtxCreate; +tcuCtxDestroy *cuCtxDestroy; +tcuCtxAttach *cuCtxAttach; +tcuCtxDetach *cuCtxDetach; +tcuCtxPushCurrent *cuCtxPushCurrent; +tcuCtxPopCurrent *cuCtxPopCurrent; +tcuCtxGetDevice *cuCtxGetDevice; +tcuCtxSynchronize *cuCtxSynchronize; +tcuModuleLoad *cuModuleLoad; +tcuModuleLoadData *cuModuleLoadData; +tcuModuleLoadDataEx *cuModuleLoadDataEx; +tcuModuleLoadFatBinary *cuModuleLoadFatBinary; +tcuModuleUnload *cuModuleUnload; +tcuModuleGetFunction *cuModuleGetFunction; +tcuModuleGetGlobal *cuModuleGetGlobal; +tcuModuleGetTexRef *cuModuleGetTexRef; +tcuModuleGetSurfRef *cuModuleGetSurfRef; +tcuMemGetInfo *cuMemGetInfo; +tcuMemAlloc *cuMemAlloc; +tcuMemAllocPitch *cuMemAllocPitch; +tcuMemFree *cuMemFree; +tcuMemGetAddressRange *cuMemGetAddressRange; +tcuMemAllocHost *cuMemAllocHost; +tcuMemFreeHost *cuMemFreeHost; +tcuMemHostAlloc *cuMemHostAlloc; +tcuMemHostGetDevicePointer *cuMemHostGetDevicePointer; +tcuMemHostGetFlags *cuMemHostGetFlags; +tcuMemcpyHtoD *cuMemcpyHtoD; +tcuMemcpyDtoH *cuMemcpyDtoH; +tcuMemcpyDtoD *cuMemcpyDtoD; +tcuMemcpyDtoA *cuMemcpyDtoA; +tcuMemcpyAtoD *cuMemcpyAtoD; +tcuMemcpyHtoA *cuMemcpyHtoA; +tcuMemcpyAtoH *cuMemcpyAtoH; +tcuMemcpyAtoA *cuMemcpyAtoA; +tcuMemcpy2D *cuMemcpy2D; +tcuMemcpy2DUnaligned *cuMemcpy2DUnaligned; +tcuMemcpy3D *cuMemcpy3D; +tcuMemcpyHtoDAsync *cuMemcpyHtoDAsync; +tcuMemcpyDtoHAsync *cuMemcpyDtoHAsync; +tcuMemcpyDtoDAsync *cuMemcpyDtoDAsync; +tcuMemcpyHtoAAsync *cuMemcpyHtoAAsync; +tcuMemcpyAtoHAsync *cuMemcpyAtoHAsync; +tcuMemcpy2DAsync *cuMemcpy2DAsync; +tcuMemcpy3DAsync *cuMemcpy3DAsync; +tcuMemsetD8 *cuMemsetD8; +tcuMemsetD16 *cuMemsetD16; +tcuMemsetD32 *cuMemsetD32; +tcuMemsetD2D8 *cuMemsetD2D8; +tcuMemsetD2D16 *cuMemsetD2D16; +tcuMemsetD2D32 *cuMemsetD2D32; +tcuFuncSetBlockShape *cuFuncSetBlockShape; +tcuFuncSetSharedSize *cuFuncSetSharedSize; +tcuFuncGetAttribute *cuFuncGetAttribute; +tcuFuncSetCacheConfig *cuFuncSetCacheConfig; +tcuArrayCreate *cuArrayCreate; +tcuArrayGetDescriptor *cuArrayGetDescriptor; +tcuArrayDestroy *cuArrayDestroy; +tcuArray3DCreate *cuArray3DCreate; +tcuArray3DGetDescriptor *cuArray3DGetDescriptor; +tcuTexRefCreate *cuTexRefCreate; +tcuTexRefDestroy *cuTexRefDestroy; +tcuTexRefSetArray *cuTexRefSetArray; +tcuTexRefSetAddress *cuTexRefSetAddress; +tcuTexRefSetAddress2D *cuTexRefSetAddress2D; +tcuTexRefSetFormat *cuTexRefSetFormat; +tcuTexRefSetAddressMode *cuTexRefSetAddressMode; +tcuTexRefSetFilterMode *cuTexRefSetFilterMode; +tcuTexRefSetFlags *cuTexRefSetFlags; +tcuTexRefGetAddress *cuTexRefGetAddress; +tcuTexRefGetArray *cuTexRefGetArray; +tcuTexRefGetAddressMode *cuTexRefGetAddressMode; +tcuTexRefGetFilterMode *cuTexRefGetFilterMode; +tcuTexRefGetFormat *cuTexRefGetFormat; +tcuTexRefGetFlags *cuTexRefGetFlags; +tcuSurfRefSetArray *cuSurfRefSetArray; +tcuSurfRefGetArray *cuSurfRefGetArray; +tcuParamSetSize *cuParamSetSize; +tcuParamSeti *cuParamSeti; +tcuParamSetf *cuParamSetf; +tcuParamSetv *cuParamSetv; +tcuParamSetTexRef *cuParamSetTexRef; +tcuLaunch *cuLaunch; +tcuLaunchGrid *cuLaunchGrid; +tcuLaunchGridAsync *cuLaunchGridAsync; +tcuEventCreate *cuEventCreate; +tcuEventRecord *cuEventRecord; +tcuEventQuery *cuEventQuery; +tcuEventSynchronize *cuEventSynchronize; +tcuEventDestroy *cuEventDestroy; +tcuEventElapsedTime *cuEventElapsedTime; +tcuStreamCreate *cuStreamCreate; +tcuStreamQuery *cuStreamQuery; +tcuStreamSynchronize *cuStreamSynchronize; +tcuStreamDestroy *cuStreamDestroy; +tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource; +tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray; +tcuGraphicsResourceGetMappedPointer *cuGraphicsResourceGetMappedPointer; +tcuGraphicsResourceSetMapFlags *cuGraphicsResourceSetMapFlags; +tcuGraphicsMapResources *cuGraphicsMapResources; +tcuGraphicsUnmapResources *cuGraphicsUnmapResources; +tcuGetExportTable *cuGetExportTable; +tcuCtxSetLimit *cuCtxSetLimit; +tcuCtxGetLimit *cuCtxGetLimit; +tcuGLCtxCreate *cuGLCtxCreate; +tcuGraphicsGLRegisterBuffer *cuGraphicsGLRegisterBuffer; +tcuGraphicsGLRegisterImage *cuGraphicsGLRegisterImage; +tcuCtxSetCurrent *cuCtxSetCurrent; + +CCL_NAMESPACE_BEGIN + +/* utility macros */ + +#define CUDA_LIBRARY_FIND(name) \ + name = (t##name*)dynamic_library_find(lib, #name); \ + assert(name); + +#define CUDA_LIBRARY_FIND_V2(name) \ + name = (t##name*)dynamic_library_find(lib, #name "_v2"); \ + assert(name); + +/* initialization function */ + +bool cuLibraryInit() +{ + static bool initialized = false; + static bool result = false; + + if(initialized) + return result; + + initialized = true; + + /* library paths */ +#ifdef _WIN32 + /* expected in c:/windows/system or similar, no path needed */ + const char *path = "nvcuda.dll"; +#elif defined(__APPLE__) + /* default installation path */ + const char *path = "/usr/local/cuda/lib/libcuda.dylib"; +#else + const char *path = "libcuda.so"; +#endif + + /* load library */ + DynamicLibrary *lib = dynamic_library_open(path); + + if(lib == NULL) + return false; + + /* detect driver version */ + int driver_version = 1000; + + CUDA_LIBRARY_FIND(cuDriverGetVersion); + if(cuDriverGetVersion) + cuDriverGetVersion(&driver_version); + + /* we require version 4.0 */ + if(driver_version < 4000) + return false; + + /* fetch all function pointers */ + CUDA_LIBRARY_FIND(cuInit); + CUDA_LIBRARY_FIND(cuDeviceGet); + CUDA_LIBRARY_FIND(cuDeviceGetCount); + CUDA_LIBRARY_FIND(cuDeviceGetName); + CUDA_LIBRARY_FIND(cuDeviceComputeCapability); + CUDA_LIBRARY_FIND(cuDeviceTotalMem); + CUDA_LIBRARY_FIND(cuDeviceGetProperties); + CUDA_LIBRARY_FIND(cuDeviceGetAttribute); + CUDA_LIBRARY_FIND(cuCtxCreate); + CUDA_LIBRARY_FIND(cuCtxDestroy); + CUDA_LIBRARY_FIND(cuCtxAttach); + CUDA_LIBRARY_FIND(cuCtxDetach); + CUDA_LIBRARY_FIND(cuCtxPushCurrent); + CUDA_LIBRARY_FIND(cuCtxPopCurrent); + CUDA_LIBRARY_FIND(cuCtxGetDevice); + CUDA_LIBRARY_FIND(cuCtxSynchronize); + CUDA_LIBRARY_FIND(cuModuleLoad); + CUDA_LIBRARY_FIND(cuModuleLoadData); + CUDA_LIBRARY_FIND(cuModuleUnload); + CUDA_LIBRARY_FIND(cuModuleGetFunction); + CUDA_LIBRARY_FIND(cuModuleGetGlobal); + CUDA_LIBRARY_FIND(cuModuleGetTexRef); + CUDA_LIBRARY_FIND(cuMemGetInfo); + CUDA_LIBRARY_FIND(cuMemAlloc); + CUDA_LIBRARY_FIND(cuMemAllocPitch); + CUDA_LIBRARY_FIND(cuMemFree); + CUDA_LIBRARY_FIND(cuMemGetAddressRange); + CUDA_LIBRARY_FIND(cuMemAllocHost); + CUDA_LIBRARY_FIND(cuMemFreeHost); + CUDA_LIBRARY_FIND(cuMemHostAlloc); + CUDA_LIBRARY_FIND(cuMemHostGetDevicePointer); + CUDA_LIBRARY_FIND(cuMemcpyHtoD); + CUDA_LIBRARY_FIND(cuMemcpyDtoH); + CUDA_LIBRARY_FIND(cuMemcpyDtoD); + CUDA_LIBRARY_FIND(cuMemcpyDtoA); + CUDA_LIBRARY_FIND(cuMemcpyAtoD); + CUDA_LIBRARY_FIND(cuMemcpyHtoA); + CUDA_LIBRARY_FIND(cuMemcpyAtoH); + CUDA_LIBRARY_FIND(cuMemcpyAtoA); + CUDA_LIBRARY_FIND(cuMemcpy2D); + CUDA_LIBRARY_FIND(cuMemcpy2DUnaligned); + CUDA_LIBRARY_FIND(cuMemcpy3D); + CUDA_LIBRARY_FIND(cuMemcpyHtoDAsync); + CUDA_LIBRARY_FIND(cuMemcpyDtoHAsync); + CUDA_LIBRARY_FIND(cuMemcpyHtoAAsync); + CUDA_LIBRARY_FIND(cuMemcpyAtoHAsync); + CUDA_LIBRARY_FIND(cuMemcpy2DAsync); + CUDA_LIBRARY_FIND(cuMemcpy3DAsync); + CUDA_LIBRARY_FIND(cuMemsetD8); + CUDA_LIBRARY_FIND(cuMemsetD16); + CUDA_LIBRARY_FIND(cuMemsetD32); + CUDA_LIBRARY_FIND(cuMemsetD2D8); + CUDA_LIBRARY_FIND(cuMemsetD2D16); + CUDA_LIBRARY_FIND(cuMemsetD2D32); + CUDA_LIBRARY_FIND(cuFuncSetBlockShape); + CUDA_LIBRARY_FIND(cuFuncSetSharedSize); + CUDA_LIBRARY_FIND(cuFuncGetAttribute); + CUDA_LIBRARY_FIND(cuArrayCreate); + CUDA_LIBRARY_FIND(cuArrayGetDescriptor); + CUDA_LIBRARY_FIND(cuArrayDestroy); + CUDA_LIBRARY_FIND(cuArray3DCreate); + CUDA_LIBRARY_FIND(cuArray3DGetDescriptor); + CUDA_LIBRARY_FIND(cuTexRefCreate); + CUDA_LIBRARY_FIND(cuTexRefDestroy); + CUDA_LIBRARY_FIND(cuTexRefSetArray); + CUDA_LIBRARY_FIND(cuTexRefSetAddress); + CUDA_LIBRARY_FIND(cuTexRefSetAddress2D); + CUDA_LIBRARY_FIND(cuTexRefSetFormat); + CUDA_LIBRARY_FIND(cuTexRefSetAddressMode); + CUDA_LIBRARY_FIND(cuTexRefSetFilterMode); + CUDA_LIBRARY_FIND(cuTexRefSetFlags); + CUDA_LIBRARY_FIND(cuTexRefGetAddress); + CUDA_LIBRARY_FIND(cuTexRefGetArray); + CUDA_LIBRARY_FIND(cuTexRefGetAddressMode); + CUDA_LIBRARY_FIND(cuTexRefGetFilterMode); + CUDA_LIBRARY_FIND(cuTexRefGetFormat); + CUDA_LIBRARY_FIND(cuTexRefGetFlags); + CUDA_LIBRARY_FIND(cuParamSetSize); + CUDA_LIBRARY_FIND(cuParamSeti); + CUDA_LIBRARY_FIND(cuParamSetf); + CUDA_LIBRARY_FIND(cuParamSetv); + CUDA_LIBRARY_FIND(cuParamSetTexRef); + CUDA_LIBRARY_FIND(cuLaunch); + CUDA_LIBRARY_FIND(cuLaunchGrid); + CUDA_LIBRARY_FIND(cuLaunchGridAsync); + CUDA_LIBRARY_FIND(cuEventCreate); + CUDA_LIBRARY_FIND(cuEventRecord); + CUDA_LIBRARY_FIND(cuEventQuery); + CUDA_LIBRARY_FIND(cuEventSynchronize); + CUDA_LIBRARY_FIND(cuEventDestroy); + CUDA_LIBRARY_FIND(cuEventElapsedTime); + CUDA_LIBRARY_FIND(cuStreamCreate); + CUDA_LIBRARY_FIND(cuStreamQuery); + CUDA_LIBRARY_FIND(cuStreamSynchronize); + CUDA_LIBRARY_FIND(cuStreamDestroy); + + /* cuda 2.1 */ + CUDA_LIBRARY_FIND(cuModuleLoadDataEx); + CUDA_LIBRARY_FIND(cuModuleLoadFatBinary); + CUDA_LIBRARY_FIND(cuGLCtxCreate); + CUDA_LIBRARY_FIND(cuGraphicsGLRegisterBuffer); + CUDA_LIBRARY_FIND(cuGraphicsGLRegisterImage); + + /* cuda 2.3 */ + CUDA_LIBRARY_FIND(cuMemHostGetFlags); + CUDA_LIBRARY_FIND(cuGraphicsGLRegisterBuffer); + CUDA_LIBRARY_FIND(cuGraphicsGLRegisterImage); + + /* cuda 3.0 */ + CUDA_LIBRARY_FIND(cuMemcpyDtoDAsync); + CUDA_LIBRARY_FIND(cuFuncSetCacheConfig); + CUDA_LIBRARY_FIND(cuGraphicsUnregisterResource); + CUDA_LIBRARY_FIND(cuGraphicsSubResourceGetMappedArray); + CUDA_LIBRARY_FIND(cuGraphicsResourceGetMappedPointer); + CUDA_LIBRARY_FIND(cuGraphicsResourceSetMapFlags); + CUDA_LIBRARY_FIND(cuGraphicsMapResources); + CUDA_LIBRARY_FIND(cuGraphicsUnmapResources); + CUDA_LIBRARY_FIND(cuGetExportTable); + + /* cuda 3.1 */ + CUDA_LIBRARY_FIND(cuModuleGetSurfRef); + CUDA_LIBRARY_FIND(cuSurfRefSetArray); + CUDA_LIBRARY_FIND(cuSurfRefGetArray); + CUDA_LIBRARY_FIND(cuCtxSetLimit); + CUDA_LIBRARY_FIND(cuCtxGetLimit); + + /* functions which changed 3.1 -> 3.2 for 64 bit stuff, the cuda library + has both the old ones for compatibility and new ones with _v2 postfix, + we load the _v2 ones here. */ + CUDA_LIBRARY_FIND_V2(cuDeviceTotalMem); + CUDA_LIBRARY_FIND_V2(cuCtxCreate); + CUDA_LIBRARY_FIND_V2(cuModuleGetGlobal); + CUDA_LIBRARY_FIND_V2(cuMemGetInfo); + CUDA_LIBRARY_FIND_V2(cuMemAlloc); + CUDA_LIBRARY_FIND_V2(cuMemAllocPitch); + CUDA_LIBRARY_FIND_V2(cuMemFree); + CUDA_LIBRARY_FIND_V2(cuMemGetAddressRange); + CUDA_LIBRARY_FIND_V2(cuMemAllocHost); + CUDA_LIBRARY_FIND_V2(cuMemHostGetDevicePointer); + CUDA_LIBRARY_FIND_V2(cuMemcpyHtoD); + CUDA_LIBRARY_FIND_V2(cuMemcpyDtoH); + CUDA_LIBRARY_FIND_V2(cuMemcpyDtoD); + CUDA_LIBRARY_FIND_V2(cuMemcpyDtoA); + CUDA_LIBRARY_FIND_V2(cuMemcpyAtoD); + CUDA_LIBRARY_FIND_V2(cuMemcpyHtoA); + CUDA_LIBRARY_FIND_V2(cuMemcpyAtoH); + CUDA_LIBRARY_FIND_V2(cuMemcpyAtoA); + CUDA_LIBRARY_FIND_V2(cuMemcpyHtoAAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpyAtoHAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpy2D); + CUDA_LIBRARY_FIND_V2(cuMemcpy2DUnaligned); + CUDA_LIBRARY_FIND_V2(cuMemcpy3D); + CUDA_LIBRARY_FIND_V2(cuMemcpyHtoDAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpyDtoHAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpyDtoDAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpy2DAsync); + CUDA_LIBRARY_FIND_V2(cuMemcpy3DAsync); + CUDA_LIBRARY_FIND_V2(cuMemsetD8); + CUDA_LIBRARY_FIND_V2(cuMemsetD16); + CUDA_LIBRARY_FIND_V2(cuMemsetD32); + CUDA_LIBRARY_FIND_V2(cuMemsetD2D8); + CUDA_LIBRARY_FIND_V2(cuMemsetD2D16); + CUDA_LIBRARY_FIND_V2(cuMemsetD2D32); + CUDA_LIBRARY_FIND_V2(cuArrayCreate); + CUDA_LIBRARY_FIND_V2(cuArrayGetDescriptor); + CUDA_LIBRARY_FIND_V2(cuArray3DCreate); + CUDA_LIBRARY_FIND_V2(cuArray3DGetDescriptor); + CUDA_LIBRARY_FIND_V2(cuTexRefSetAddress); + CUDA_LIBRARY_FIND_V2(cuTexRefSetAddress2D); + CUDA_LIBRARY_FIND_V2(cuTexRefGetAddress); + CUDA_LIBRARY_FIND_V2(cuGraphicsResourceGetMappedPointer); + CUDA_LIBRARY_FIND_V2(cuGLCtxCreate); + + /* cuda 4.0 */ + CUDA_LIBRARY_FIND(cuCtxSetCurrent); + + /* success */ + result = true; + + return result; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_cuda.h b/intern/cycles/util/util_cuda.h new file mode 100644 index 00000000000..ecfaddf43cb --- /dev/null +++ b/intern/cycles/util/util_cuda.h @@ -0,0 +1,619 @@ +/* + * 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_CUDA_H__ +#define __UTIL_CUDA_H__ + +#include +#include "util_opengl.h" + +CCL_NAMESPACE_BEGIN + +/* CUDA is linked in dynamically at runtime, so we can start the application + * without requiring a CUDA installation. Code adapted from the example + * matrixMulDynlinkJIT in the CUDA SDK. */ + +bool cuLibraryInit(); + +CCL_NAMESPACE_END + +/* defines, structs, enums */ + +#define CUDA_VERSION 3020 + +#if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) +typedef unsigned long long CUdeviceptr; +#else +typedef unsigned int CUdeviceptr; +#endif + +typedef int CUdevice; +typedef struct CUctx_st *CUcontext; +typedef struct CUmod_st *CUmodule; +typedef struct CUfunc_st *CUfunction; +typedef struct CUarray_st *CUarray; +typedef struct CUtexref_st *CUtexref; +typedef struct CUsurfref_st *CUsurfref; +typedef struct CUevent_st *CUevent; +typedef struct CUstream_st *CUstream; +typedef struct CUgraphicsResource_st *CUgraphicsResource; + +typedef struct CUuuid_st { + char bytes[16]; +} CUuuid; + +typedef enum CUctx_flags_enum { + CU_CTX_SCHED_AUTO = 0, + CU_CTX_SCHED_SPIN = 1, + CU_CTX_SCHED_YIELD = 2, + CU_CTX_SCHED_MASK = 0x3, + CU_CTX_BLOCKING_SYNC = 4, + CU_CTX_MAP_HOST = 8, + CU_CTX_LMEM_RESIZE_TO_MAX = 16, + CU_CTX_FLAGS_MASK = 0x1f +} CUctx_flags; + +typedef enum CUevent_flags_enum { + CU_EVENT_DEFAULT = 0, + CU_EVENT_BLOCKING_SYNC = 1, + CU_EVENT_DISABLE_TIMING = 2 +} CUevent_flags; + +typedef enum CUarray_format_enum { + CU_AD_FORMAT_UNSIGNED_INT8 = 0x01, + CU_AD_FORMAT_UNSIGNED_INT16 = 0x02, + CU_AD_FORMAT_UNSIGNED_INT32 = 0x03, + CU_AD_FORMAT_SIGNED_INT8 = 0x08, + CU_AD_FORMAT_SIGNED_INT16 = 0x09, + CU_AD_FORMAT_SIGNED_INT32 = 0x0a, + CU_AD_FORMAT_HALF = 0x10, + CU_AD_FORMAT_FLOAT = 0x20 +} CUarray_format; + +typedef enum CUaddress_mode_enum { + CU_TR_ADDRESS_MODE_WRAP = 0, + CU_TR_ADDRESS_MODE_CLAMP = 1, + CU_TR_ADDRESS_MODE_MIRROR = 2, + CU_TR_ADDRESS_MODE_BORDER = 3 +} CUaddress_mode; + +typedef enum CUfilter_mode_enum { + CU_TR_FILTER_MODE_POINT = 0, + CU_TR_FILTER_MODE_LINEAR = 1 +} CUfilter_mode; + +typedef enum CUdevice_attribute_enum { + CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = 3, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = 4, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = 5, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = 6, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = 7, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = 8, + CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = 8, + CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9, + CU_DEVICE_ATTRIBUTE_WARP_SIZE = 10, + CU_DEVICE_ATTRIBUTE_MAX_PITCH = 11, + CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = 12, + CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = 12, + CU_DEVICE_ATTRIBUTE_CLOCK_RATE = 13, + CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = 14, + CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = 15, + CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = 16, + CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = 17, + CU_DEVICE_ATTRIBUTE_INTEGRATED = 18, + CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = 19, + CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = 20, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = 21, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = 22, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = 23, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = 24, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = 25, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = 26, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = 27, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = 28, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = 29, + CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = 30, + CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31, + CU_DEVICE_ATTRIBUTE_ECC_ENABLED = 32, + CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = 33, + CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = 34, + CU_DEVICE_ATTRIBUTE_TCC_DRIVER = 35 +} CUdevice_attribute; + +typedef struct CUdevprop_st { + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int sharedMemPerBlock; + int totalConstantMemory; + int SIMDWidth; + int memPitch; + int regsPerBlock; + int clockRate; + int textureAlign; +} CUdevprop; + +typedef enum CUfunction_attribute_enum { + CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0, + CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1, + CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2, + CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3, + CU_FUNC_ATTRIBUTE_NUM_REGS = 4, + CU_FUNC_ATTRIBUTE_PTX_VERSION = 5, + CU_FUNC_ATTRIBUTE_BINARY_VERSION = 6, + CU_FUNC_ATTRIBUTE_MAX +} CUfunction_attribute; + +typedef enum CUfunc_cache_enum { + CU_FUNC_CACHE_PREFER_NONE = 0x00, + CU_FUNC_CACHE_PREFER_SHARED = 0x01, + CU_FUNC_CACHE_PREFER_L1 = 0x02 +} CUfunc_cache; + +typedef enum CUmemorytype_enum { + CU_MEMORYTYPE_HOST = 0x01, + CU_MEMORYTYPE_DEVICE = 0x02, + CU_MEMORYTYPE_ARRAY = 0x03 +} CUmemorytype; + +typedef enum CUcomputemode_enum { + CU_COMPUTEMODE_DEFAULT = 0, + CU_COMPUTEMODE_EXCLUSIVE = 1, + CU_COMPUTEMODE_PROHIBITED = 2 +} CUcomputemode; + +typedef enum CUjit_option_enum +{ + CU_JIT_MAX_REGISTERS = 0, + CU_JIT_THREADS_PER_BLOCK, + CU_JIT_WALL_TIME, + CU_JIT_INFO_LOG_BUFFER, + CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES, + CU_JIT_ERROR_LOG_BUFFER, + CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES, + CU_JIT_OPTIMIZATION_LEVEL, + CU_JIT_TARGET_FROM_CUCONTEXT, + CU_JIT_TARGET, + CU_JIT_FALLBACK_STRATEGY + +} CUjit_option; + +typedef enum CUjit_target_enum +{ + CU_TARGET_COMPUTE_10 = 0, + CU_TARGET_COMPUTE_11, + CU_TARGET_COMPUTE_12, + CU_TARGET_COMPUTE_13, + CU_TARGET_COMPUTE_20, + CU_TARGET_COMPUTE_21 +} CUjit_target; + +typedef enum CUjit_fallback_enum +{ + CU_PREFER_PTX = 0, + CU_PREFER_BINARY + +} CUjit_fallback; + +typedef enum CUgraphicsRegisterFlags_enum { + CU_GRAPHICS_REGISTER_FLAGS_NONE = 0x00 +} CUgraphicsRegisterFlags; + +typedef enum CUgraphicsMapResourceFlags_enum { + CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = 0x00, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = 0x01, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 0x02 +} CUgraphicsMapResourceFlags; + +typedef enum CUarray_cubemap_face_enum { + CU_CUBEMAP_FACE_POSITIVE_X = 0x00, + CU_CUBEMAP_FACE_NEGATIVE_X = 0x01, + CU_CUBEMAP_FACE_POSITIVE_Y = 0x02, + CU_CUBEMAP_FACE_NEGATIVE_Y = 0x03, + CU_CUBEMAP_FACE_POSITIVE_Z = 0x04, + CU_CUBEMAP_FACE_NEGATIVE_Z = 0x05 +} CUarray_cubemap_face; + +typedef enum CUlimit_enum { + CU_LIMIT_STACK_SIZE = 0x00, + CU_LIMIT_PRINTF_FIFO_SIZE = 0x01, + CU_LIMIT_MALLOC_HEAP_SIZE = 0x02 +} CUlimit; + +typedef enum cudaError_enum { + CUDA_SUCCESS = 0, + CUDA_ERROR_INVALID_VALUE = 1, + CUDA_ERROR_OUT_OF_MEMORY = 2, + CUDA_ERROR_NOT_INITIALIZED = 3, + CUDA_ERROR_DEINITIALIZED = 4, + CUDA_ERROR_NO_DEVICE = 100, + CUDA_ERROR_INVALID_DEVICE = 101, + CUDA_ERROR_INVALID_IMAGE = 200, + CUDA_ERROR_INVALID_CONTEXT = 201, + CUDA_ERROR_CONTEXT_ALREADY_CURRENT = 202, + CUDA_ERROR_MAP_FAILED = 205, + CUDA_ERROR_UNMAP_FAILED = 206, + CUDA_ERROR_ARRAY_IS_MAPPED = 207, + CUDA_ERROR_ALREADY_MAPPED = 208, + CUDA_ERROR_NO_BINARY_FOR_GPU = 209, + CUDA_ERROR_ALREADY_ACQUIRED = 210, + CUDA_ERROR_NOT_MAPPED = 211, + CUDA_ERROR_NOT_MAPPED_AS_ARRAY = 212, + CUDA_ERROR_NOT_MAPPED_AS_POINTER = 213, + CUDA_ERROR_ECC_UNCORRECTABLE = 214, + CUDA_ERROR_UNSUPPORTED_LIMIT = 215, + CUDA_ERROR_INVALID_SOURCE = 300, + CUDA_ERROR_FILE_NOT_FOUND = 301, + CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = 302, + CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = 303, + CUDA_ERROR_OPERATING_SYSTEM = 304, + CUDA_ERROR_INVALID_HANDLE = 400, + CUDA_ERROR_NOT_FOUND = 500, + CUDA_ERROR_NOT_READY = 600, + CUDA_ERROR_LAUNCH_FAILED = 700, + CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = 701, + CUDA_ERROR_LAUNCH_TIMEOUT = 702, + CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = 703, + CUDA_ERROR_UNKNOWN = 999 +} CUresult; + +#define CU_MEMHOSTALLOC_PORTABLE 0x01 +#define CU_MEMHOSTALLOC_DEVICEMAP 0x02 +#define CU_MEMHOSTALLOC_WRITECOMBINED 0x04 + +typedef struct CUDA_MEMCPY2D_st { + size_t srcXInBytes; + size_t srcY; + + CUmemorytype srcMemoryType; + const void *srcHost; + CUdeviceptr srcDevice; + CUarray srcArray; + size_t srcPitch; + + size_t dstXInBytes; + size_t dstY; + + CUmemorytype dstMemoryType; + void *dstHost; + CUdeviceptr dstDevice; + CUarray dstArray; + size_t dstPitch; + + size_t WidthInBytes; + size_t Height; +} CUDA_MEMCPY2D; + +typedef struct CUDA_MEMCPY3D_st { + size_t srcXInBytes; + size_t srcY; + size_t srcZ; + size_t srcLOD; + CUmemorytype srcMemoryType; + const void *srcHost; + CUdeviceptr srcDevice; + CUarray srcArray; + void *reserved0; + size_t srcPitch; + size_t srcHeight; + + size_t dstXInBytes; + size_t dstY; + size_t dstZ; + size_t dstLOD; + CUmemorytype dstMemoryType; + void *dstHost; + CUdeviceptr dstDevice; + CUarray dstArray; + void *reserved1; + size_t dstPitch; + size_t dstHeight; + + size_t WidthInBytes; + size_t Height; + size_t Depth; +} CUDA_MEMCPY3D; + +typedef struct CUDA_ARRAY_DESCRIPTOR_st +{ + size_t Width; + size_t Height; + + CUarray_format Format; + unsigned int NumChannels; +} CUDA_ARRAY_DESCRIPTOR; + +typedef struct CUDA_ARRAY3D_DESCRIPTOR_st +{ + size_t Width; + size_t Height; + size_t Depth; + + CUarray_format Format; + unsigned int NumChannels; + unsigned int Flags; +} CUDA_ARRAY3D_DESCRIPTOR; + +#define CUDA_ARRAY3D_2DARRAY 0x01 +#define CUDA_ARRAY3D_SURFACE_LDST 0x02 +#define CU_TRSA_OVERRIDE_FORMAT 0x01 +#define CU_TRSF_READ_AS_INTEGER 0x01 +#define CU_TRSF_NORMALIZED_COORDINATES 0x02 +#define CU_TRSF_SRGB 0x10 +#define CU_PARAM_TR_DEFAULT -1 + +#ifdef _WIN32 +#define CUDAAPI __stdcall +#else +#define CUDAAPI +#endif + +/* function types */ + +typedef CUresult CUDAAPI tcuInit(unsigned int Flags); +typedef CUresult CUDAAPI tcuDriverGetVersion(int *driverVersion); +typedef CUresult CUDAAPI tcuDeviceGet(CUdevice *device, int ordinal); +typedef CUresult CUDAAPI tcuDeviceGetCount(int *count); +typedef CUresult CUDAAPI tcuDeviceGetName(char *name, int len, CUdevice dev); +typedef CUresult CUDAAPI tcuDeviceComputeCapability(int *major, int *minor, CUdevice dev); +typedef CUresult CUDAAPI tcuDeviceTotalMem(size_t *bytes, CUdevice dev); +typedef CUresult CUDAAPI tcuDeviceGetProperties(CUdevprop *prop, CUdevice dev); +typedef CUresult CUDAAPI tcuDeviceGetAttribute(int *pi, CUdevice_attribute attrib, CUdevice dev); +typedef CUresult CUDAAPI tcuCtxCreate(CUcontext *pctx, unsigned int flags, CUdevice dev); +typedef CUresult CUDAAPI tcuCtxDestroy(CUcontext ctx); +typedef CUresult CUDAAPI tcuCtxAttach(CUcontext *pctx, unsigned int flags); +typedef CUresult CUDAAPI tcuCtxDetach(CUcontext ctx); +typedef CUresult CUDAAPI tcuCtxPushCurrent(CUcontext ctx ); +typedef CUresult CUDAAPI tcuCtxPopCurrent(CUcontext *pctx); +typedef CUresult CUDAAPI tcuCtxGetDevice(CUdevice *device); +typedef CUresult CUDAAPI tcuCtxSynchronize(void); +typedef CUresult CUDAAPI tcuCtxSetLimit(CUlimit limit, size_t value); +typedef CUresult CUDAAPI tcuCtxGetLimit(size_t *pvalue, CUlimit limit); +typedef CUresult CUDAAPI tcuCtxGetCacheConfig(CUfunc_cache *pconfig); +typedef CUresult CUDAAPI tcuCtxSetCacheConfig(CUfunc_cache config); +typedef CUresult CUDAAPI tcuCtxGetApiVersion(CUcontext ctx, unsigned int *version); +typedef CUresult CUDAAPI tcuModuleLoad(CUmodule *module, const char *fname); +typedef CUresult CUDAAPI tcuModuleLoadData(CUmodule *module, const void *image); +typedef CUresult CUDAAPI tcuModuleLoadDataEx(CUmodule *module, const void *image, unsigned int numOptions, CUjit_option *options, void **optionValues); +typedef CUresult CUDAAPI tcuModuleLoadFatBinary(CUmodule *module, const void *fatCubin); +typedef CUresult CUDAAPI tcuModuleUnload(CUmodule hmod); +typedef CUresult CUDAAPI tcuModuleGetFunction(CUfunction *hfunc, CUmodule hmod, const char *name); +typedef CUresult CUDAAPI tcuModuleGetGlobal(CUdeviceptr *dptr, size_t *bytes, CUmodule hmod, const char *name); +typedef CUresult CUDAAPI tcuModuleGetTexRef(CUtexref *pTexRef, CUmodule hmod, const char *name); +typedef CUresult CUDAAPI tcuModuleGetSurfRef(CUsurfref *pSurfRef, CUmodule hmod, const char *name); +typedef CUresult CUDAAPI tcuMemGetInfo(size_t *free, size_t *total); +typedef CUresult CUDAAPI tcuMemAlloc(CUdeviceptr *dptr, size_t bytesize); +typedef CUresult CUDAAPI tcuMemAllocPitch(CUdeviceptr *dptr, size_t *pPitch, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes); +typedef CUresult CUDAAPI tcuMemFree(CUdeviceptr dptr); +typedef CUresult CUDAAPI tcuMemGetAddressRange(CUdeviceptr *pbase, size_t *psize, CUdeviceptr dptr); +typedef CUresult CUDAAPI tcuMemAllocHost(void **pp, size_t bytesize); +typedef CUresult CUDAAPI tcuMemFreeHost(void *p); +typedef CUresult CUDAAPI tcuMemHostAlloc(void **pp, size_t bytesize, unsigned int Flags); +typedef CUresult CUDAAPI tcuMemHostGetDevicePointer(CUdeviceptr *pdptr, void *p, unsigned int Flags); +typedef CUresult CUDAAPI tcuMemHostGetFlags(unsigned int *pFlags, void *p); +typedef CUresult CUDAAPI tcuMemcpyHtoD(CUdeviceptr dstDevice, const void *srcHost, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyDtoH(void *dstHost, CUdeviceptr srcDevice, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyDtoD(CUdeviceptr dstDevice, CUdeviceptr srcDevice, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyDtoA(CUarray dstArray, size_t dstOffset, CUdeviceptr srcDevice, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyAtoD(CUdeviceptr dstDevice, CUarray srcArray, size_t srcOffset, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyHtoA(CUarray dstArray, size_t dstOffset, const void *srcHost, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyAtoH(void *dstHost, CUarray srcArray, size_t srcOffset, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpyAtoA(CUarray dstArray, size_t dstOffset, CUarray srcArray, size_t srcOffset, size_t ByteCount); +typedef CUresult CUDAAPI tcuMemcpy2D(const CUDA_MEMCPY2D *pCopy); +typedef CUresult CUDAAPI tcuMemcpy2DUnaligned(const CUDA_MEMCPY2D *pCopy); +typedef CUresult CUDAAPI tcuMemcpy3D(const CUDA_MEMCPY3D *pCopy); +typedef CUresult CUDAAPI tcuMemcpyHtoDAsync(CUdeviceptr dstDevice, const void *srcHost, size_t ByteCount, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpyDtoHAsync(void *dstHost, CUdeviceptr srcDevice, size_t ByteCount, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpyDtoDAsync(CUdeviceptr dstDevice, CUdeviceptr srcDevice, size_t ByteCount, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpyHtoAAsync(CUarray dstArray, size_t dstOffset, const void *srcHost, size_t ByteCount, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpyAtoHAsync(void *dstHost, CUarray srcArray, size_t srcOffset, size_t ByteCount, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpy2DAsync(const CUDA_MEMCPY2D *pCopy, CUstream hStream); +typedef CUresult CUDAAPI tcuMemcpy3DAsync(const CUDA_MEMCPY3D *pCopy, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD8(CUdeviceptr dstDevice, unsigned char uc, size_t N); +typedef CUresult CUDAAPI tcuMemsetD16(CUdeviceptr dstDevice, unsigned short us, size_t N); +typedef CUresult CUDAAPI tcuMemsetD32(CUdeviceptr dstDevice, unsigned int ui, size_t N); +typedef CUresult CUDAAPI tcuMemsetD2D8(CUdeviceptr dstDevice, size_t dstPitch, unsigned char uc, size_t Width, size_t Height); +typedef CUresult CUDAAPI tcuMemsetD2D16(CUdeviceptr dstDevice, size_t dstPitch, unsigned short us, size_t Width, size_t Height); +typedef CUresult CUDAAPI tcuMemsetD2D32(CUdeviceptr dstDevice, size_t dstPitch, unsigned int ui, size_t Width, size_t Height); +typedef CUresult CUDAAPI tcuMemsetD8Async(CUdeviceptr dstDevice, unsigned char uc, size_t N, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD16Async(CUdeviceptr dstDevice, unsigned short us, size_t N, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD32Async(CUdeviceptr dstDevice, unsigned int ui, size_t N, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD2D8Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD2D16Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned short us, size_t Width, size_t Height, CUstream hStream); +typedef CUresult CUDAAPI tcuMemsetD2D32Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, CUstream hStream); +typedef CUresult CUDAAPI tcuArrayCreate(CUarray *pHandle, const CUDA_ARRAY_DESCRIPTOR *pAllocateArray); +typedef CUresult CUDAAPI tcuArrayGetDescriptor(CUDA_ARRAY_DESCRIPTOR *pArrayDescriptor, CUarray hArray); +typedef CUresult CUDAAPI tcuArrayDestroy(CUarray hArray); +typedef CUresult CUDAAPI tcuArray3DCreate(CUarray *pHandle, const CUDA_ARRAY3D_DESCRIPTOR *pAllocateArray); +typedef CUresult CUDAAPI tcuArray3DGetDescriptor(CUDA_ARRAY3D_DESCRIPTOR *pArrayDescriptor, CUarray hArray); +typedef CUresult CUDAAPI tcuStreamCreate(CUstream *phStream, unsigned int Flags); +typedef CUresult CUDAAPI tcuStreamWaitEvent(CUstream hStream, CUevent hEvent, unsigned int Flags); +typedef CUresult CUDAAPI tcuStreamQuery(CUstream hStream); +typedef CUresult CUDAAPI tcuStreamSynchronize(CUstream hStream); +typedef CUresult CUDAAPI tcuStreamDestroy(CUstream hStream); +typedef CUresult CUDAAPI tcuEventCreate(CUevent *phEvent, unsigned int Flags); +typedef CUresult CUDAAPI tcuEventRecord(CUevent hEvent, CUstream hStream); +typedef CUresult CUDAAPI tcuEventQuery(CUevent hEvent); +typedef CUresult CUDAAPI tcuEventSynchronize(CUevent hEvent); +typedef CUresult CUDAAPI tcuEventDestroy(CUevent hEvent); +typedef CUresult CUDAAPI tcuEventElapsedTime(float *pMilliseconds, CUevent hStart, CUevent hEnd); +typedef CUresult CUDAAPI tcuFuncSetBlockShape(CUfunction hfunc, int x, int y, int z); +typedef CUresult CUDAAPI tcuFuncSetSharedSize(CUfunction hfunc, unsigned int bytes); +typedef CUresult CUDAAPI tcuFuncGetAttribute(int *pi, CUfunction_attribute attrib, CUfunction hfunc); +typedef CUresult CUDAAPI tcuFuncSetCacheConfig(CUfunction hfunc, CUfunc_cache config); +typedef CUresult CUDAAPI tcuParamSetSize(CUfunction hfunc, unsigned int numbytes); +typedef CUresult CUDAAPI tcuParamSeti(CUfunction hfunc, int offset, unsigned int value); +typedef CUresult CUDAAPI tcuParamSetf(CUfunction hfunc, int offset, float value); +typedef CUresult CUDAAPI tcuParamSetv(CUfunction hfunc, int offset, void *ptr, unsigned int numbytes); +typedef CUresult CUDAAPI tcuLaunch(CUfunction f); +typedef CUresult CUDAAPI tcuLaunchGrid(CUfunction f, int grid_width, int grid_height); +typedef CUresult CUDAAPI tcuLaunchGridAsync(CUfunction f, int grid_width, int grid_height, CUstream hStream); +typedef CUresult CUDAAPI tcuParamSetTexRef(CUfunction hfunc, int texunit, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefSetArray(CUtexref hTexRef, CUarray hArray, unsigned int Flags); +typedef CUresult CUDAAPI tcuTexRefSetAddress(size_t *ByteOffset, CUtexref hTexRef, CUdeviceptr dptr, size_t bytes); +typedef CUresult CUDAAPI tcuTexRefSetAddress2D(CUtexref hTexRef, const CUDA_ARRAY_DESCRIPTOR *desc, CUdeviceptr dptr, size_t Pitch); +typedef CUresult CUDAAPI tcuTexRefSetFormat(CUtexref hTexRef, CUarray_format fmt, int NumPackedComponents); +typedef CUresult CUDAAPI tcuTexRefSetAddressMode(CUtexref hTexRef, int dim, CUaddress_mode am); +typedef CUresult CUDAAPI tcuTexRefSetFilterMode(CUtexref hTexRef, CUfilter_mode fm); +typedef CUresult CUDAAPI tcuTexRefSetFlags(CUtexref hTexRef, unsigned int Flags); +typedef CUresult CUDAAPI tcuTexRefGetAddress(CUdeviceptr *pdptr, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefGetArray(CUarray *phArray, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefGetAddressMode(CUaddress_mode *pam, CUtexref hTexRef, int dim); +typedef CUresult CUDAAPI tcuTexRefGetFilterMode(CUfilter_mode *pfm, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefGetFormat(CUarray_format *pFormat, int *pNumChannels, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefGetFlags(unsigned int *pFlags, CUtexref hTexRef); +typedef CUresult CUDAAPI tcuTexRefCreate(CUtexref *pTexRef); +typedef CUresult CUDAAPI tcuTexRefDestroy(CUtexref hTexRef); +typedef CUresult CUDAAPI tcuSurfRefSetArray(CUsurfref hSurfRef, CUarray hArray, unsigned int Flags); +typedef CUresult CUDAAPI tcuSurfRefGetArray(CUarray *phArray, CUsurfref hSurfRef); +typedef CUresult CUDAAPI tcuGraphicsUnregisterResource(CUgraphicsResource resource); +typedef CUresult CUDAAPI tcuGraphicsSubResourceGetMappedArray(CUarray *pArray, CUgraphicsResource resource, unsigned int arrayIndex, unsigned int mipLevel); +typedef CUresult CUDAAPI tcuGraphicsResourceGetMappedPointer(CUdeviceptr *pDevPtr, size_t *pSize, CUgraphicsResource resource); +typedef CUresult CUDAAPI tcuGraphicsResourceSetMapFlags(CUgraphicsResource resource, unsigned int flags); +typedef CUresult CUDAAPI tcuGraphicsMapResources(unsigned int count, CUgraphicsResource *resources, CUstream hStream); +typedef CUresult CUDAAPI tcuGraphicsUnmapResources(unsigned int count, CUgraphicsResource *resources, CUstream hStream); +typedef CUresult CUDAAPI tcuGetExportTable(const void **ppExportTable, const CUuuid *pExportTableId); +typedef CUresult CUDAAPI tcuGLCtxCreate(CUcontext *pCtx, unsigned int Flags, CUdevice device ); +typedef CUresult CUDAAPI tcuGraphicsGLRegisterBuffer(CUgraphicsResource *pCudaResource, GLuint buffer, unsigned int Flags); +typedef CUresult CUDAAPI tcuGraphicsGLRegisterImage(CUgraphicsResource *pCudaResource, GLuint image, GLenum target, unsigned int Flags); +typedef CUresult CUDAAPI tcuCtxSetCurrent(CUcontext ctx); + +/* function declarations */ + +extern tcuInit *cuInit; +extern tcuDriverGetVersion *cuDriverGetVersion; +extern tcuDeviceGet *cuDeviceGet; +extern tcuDeviceGetCount *cuDeviceGetCount; +extern tcuDeviceGetName *cuDeviceGetName; +extern tcuDeviceComputeCapability *cuDeviceComputeCapability; +extern tcuDeviceTotalMem *cuDeviceTotalMem; +extern tcuDeviceGetProperties *cuDeviceGetProperties; +extern tcuDeviceGetAttribute *cuDeviceGetAttribute; +extern tcuCtxCreate *cuCtxCreate; +extern tcuCtxDestroy *cuCtxDestroy; +extern tcuCtxAttach *cuCtxAttach; +extern tcuCtxDetach *cuCtxDetach; +extern tcuCtxPushCurrent *cuCtxPushCurrent; +extern tcuCtxPopCurrent *cuCtxPopCurrent; +extern tcuCtxGetDevice *cuCtxGetDevice; +extern tcuCtxSynchronize *cuCtxSynchronize; +extern tcuModuleLoad *cuModuleLoad; +extern tcuModuleLoadData *cuModuleLoadData; +extern tcuModuleLoadDataEx *cuModuleLoadDataEx; +extern tcuModuleLoadFatBinary *cuModuleLoadFatBinary; +extern tcuModuleUnload *cuModuleUnload; +extern tcuModuleGetFunction *cuModuleGetFunction; +extern tcuModuleGetGlobal *cuModuleGetGlobal; +extern tcuModuleGetTexRef *cuModuleGetTexRef; +extern tcuModuleGetSurfRef *cuModuleGetSurfRef; +extern tcuMemGetInfo *cuMemGetInfo; +extern tcuMemAlloc *cuMemAlloc; +extern tcuMemAllocPitch *cuMemAllocPitch; +extern tcuMemFree *cuMemFree; +extern tcuMemGetAddressRange *cuMemGetAddressRange; +extern tcuMemAllocHost *cuMemAllocHost; +extern tcuMemFreeHost *cuMemFreeHost; +extern tcuMemHostAlloc *cuMemHostAlloc; +extern tcuMemHostGetDevicePointer *cuMemHostGetDevicePointer; +extern tcuMemHostGetFlags *cuMemHostGetFlags; +extern tcuMemcpyHtoD *cuMemcpyHtoD; +extern tcuMemcpyDtoH *cuMemcpyDtoH; +extern tcuMemcpyDtoD *cuMemcpyDtoD; +extern tcuMemcpyDtoA *cuMemcpyDtoA; +extern tcuMemcpyAtoD *cuMemcpyAtoD; +extern tcuMemcpyHtoA *cuMemcpyHtoA; +extern tcuMemcpyAtoH *cuMemcpyAtoH; +extern tcuMemcpyAtoA *cuMemcpyAtoA; +extern tcuMemcpy2D *cuMemcpy2D; +extern tcuMemcpy2DUnaligned *cuMemcpy2DUnaligned; +extern tcuMemcpy3D *cuMemcpy3D; +extern tcuMemcpyHtoDAsync *cuMemcpyHtoDAsync; +extern tcuMemcpyDtoHAsync *cuMemcpyDtoHAsync; +extern tcuMemcpyDtoDAsync *cuMemcpyDtoDAsync; +extern tcuMemcpyHtoAAsync *cuMemcpyHtoAAsync; +extern tcuMemcpyAtoHAsync *cuMemcpyAtoHAsync; +extern tcuMemcpy2DAsync *cuMemcpy2DAsync; +extern tcuMemcpy3DAsync *cuMemcpy3DAsync; +extern tcuMemsetD8 *cuMemsetD8; +extern tcuMemsetD16 *cuMemsetD16; +extern tcuMemsetD32 *cuMemsetD32; +extern tcuMemsetD2D8 *cuMemsetD2D8; +extern tcuMemsetD2D16 *cuMemsetD2D16; +extern tcuMemsetD2D32 *cuMemsetD2D32; +extern tcuFuncSetBlockShape *cuFuncSetBlockShape; +extern tcuFuncSetSharedSize *cuFuncSetSharedSize; +extern tcuFuncGetAttribute *cuFuncGetAttribute; +extern tcuFuncSetCacheConfig *cuFuncSetCacheConfig; +extern tcuArrayCreate *cuArrayCreate; +extern tcuArrayGetDescriptor *cuArrayGetDescriptor; +extern tcuArrayDestroy *cuArrayDestroy; +extern tcuArray3DCreate *cuArray3DCreate; +extern tcuArray3DGetDescriptor *cuArray3DGetDescriptor; +extern tcuTexRefCreate *cuTexRefCreate; +extern tcuTexRefDestroy *cuTexRefDestroy; +extern tcuTexRefSetArray *cuTexRefSetArray; +extern tcuTexRefSetAddress *cuTexRefSetAddress; +extern tcuTexRefSetAddress2D *cuTexRefSetAddress2D; +extern tcuTexRefSetFormat *cuTexRefSetFormat; +extern tcuTexRefSetAddressMode *cuTexRefSetAddressMode; +extern tcuTexRefSetFilterMode *cuTexRefSetFilterMode; +extern tcuTexRefSetFlags *cuTexRefSetFlags; +extern tcuTexRefGetAddress *cuTexRefGetAddress; +extern tcuTexRefGetArray *cuTexRefGetArray; +extern tcuTexRefGetAddressMode *cuTexRefGetAddressMode; +extern tcuTexRefGetFilterMode *cuTexRefGetFilterMode; +extern tcuTexRefGetFormat *cuTexRefGetFormat; +extern tcuTexRefGetFlags *cuTexRefGetFlags; +extern tcuSurfRefSetArray *cuSurfRefSetArray; +extern tcuSurfRefGetArray *cuSurfRefGetArray; +extern tcuParamSetSize *cuParamSetSize; +extern tcuParamSeti *cuParamSeti; +extern tcuParamSetf *cuParamSetf; +extern tcuParamSetv *cuParamSetv; +extern tcuParamSetTexRef *cuParamSetTexRef; +extern tcuLaunch *cuLaunch; +extern tcuLaunchGrid *cuLaunchGrid; +extern tcuLaunchGridAsync *cuLaunchGridAsync; +extern tcuEventCreate *cuEventCreate; +extern tcuEventRecord *cuEventRecord; +extern tcuEventQuery *cuEventQuery; +extern tcuEventSynchronize *cuEventSynchronize; +extern tcuEventDestroy *cuEventDestroy; +extern tcuEventElapsedTime *cuEventElapsedTime; +extern tcuStreamCreate *cuStreamCreate; +extern tcuStreamQuery *cuStreamQuery; +extern tcuStreamSynchronize *cuStreamSynchronize; +extern tcuStreamDestroy *cuStreamDestroy; +extern tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource; +extern tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray; +extern tcuGraphicsResourceGetMappedPointer *cuGraphicsResourceGetMappedPointer; +extern tcuGraphicsResourceSetMapFlags *cuGraphicsResourceSetMapFlags; +extern tcuGraphicsMapResources *cuGraphicsMapResources; +extern tcuGraphicsUnmapResources *cuGraphicsUnmapResources; +extern tcuGetExportTable *cuGetExportTable; +extern tcuCtxSetLimit *cuCtxSetLimit; +extern tcuCtxGetLimit *cuCtxGetLimit; +extern tcuGLCtxCreate *cuGLCtxCreate; +extern tcuGraphicsGLRegisterBuffer *cuGraphicsGLRegisterBuffer; +extern tcuGraphicsGLRegisterImage *cuGraphicsGLRegisterImage; +extern tcuCtxSetCurrent *cuCtxSetCurrent; + +#endif /* __UTIL_CUDA_H__ */ + diff --git a/intern/cycles/util/util_debug.h b/intern/cycles/util/util_debug.h new file mode 100644 index 00000000000..17c169859ec --- /dev/null +++ b/intern/cycles/util/util_debug.h @@ -0,0 +1,25 @@ +/* + * 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_DEBUG_H__ +#define __UTIL_DEBUG_H__ + +#include + +#endif /* __UTIL_DEBUG_H__ */ + diff --git a/intern/cycles/util/util_dynlib.cpp b/intern/cycles/util/util_dynlib.cpp new file mode 100644 index 00000000000..5836073a07a --- /dev/null +++ b/intern/cycles/util/util_dynlib.cpp @@ -0,0 +1,96 @@ +/* + * 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 + +#include "util_dynlib.h" + +#ifdef _WIN32 + +#include + +CCL_NAMESPACE_BEGIN + +struct DynamicLibrary { + HMODULE module; +}; + +DynamicLibrary *dynamic_library_open(const char *name) +{ + HMODULE module = LoadLibrary(name); + + if(!module) + return NULL; + + DynamicLibrary *lib = new DynamicLibrary(); + lib->module = module; + + return lib; +} + +void *dynamic_library_find(DynamicLibrary *lib, const char *name) +{ + return (void*)GetProcAddress(lib->module, name); +} + +void dynamic_library_close(DynamicLibrary *lib) +{ + FreeLibrary(lib->module); + delete lib; +} + +CCL_NAMESPACE_END + +#else + +#include + +CCL_NAMESPACE_BEGIN + +struct DynamicLibrary { + void *module; +}; + +DynamicLibrary *dynamic_library_open(const char *name) +{ + void *module = dlopen(name, RTLD_NOW); + + if(!module) + return NULL; + + DynamicLibrary *lib = new DynamicLibrary(); + lib->module = module; + + return lib; +} + +void *dynamic_library_find(DynamicLibrary *lib, const char *name) +{ + return dlsym(lib->module, name); +} + +void dynamic_library_close(DynamicLibrary *lib) +{ + dlclose(lib->module); + delete lib; +} + +CCL_NAMESPACE_END + +#endif + diff --git a/intern/cycles/util/util_dynlib.h b/intern/cycles/util/util_dynlib.h new file mode 100644 index 00000000000..888fb6cef24 --- /dev/null +++ b/intern/cycles/util/util_dynlib.h @@ -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. + */ + +#ifndef __UTIL_DYNLIB_H__ +#define __UTIL_DYNLIB_H__ + +CCL_NAMESPACE_BEGIN + +struct DynamicLibrary; + +DynamicLibrary *dynamic_library_open(const char *name); +void *dynamic_library_find(DynamicLibrary *lib, const char *name); +void dynamic_library_close(DynamicLibrary *lib); + +CCL_NAMESPACE_END + +#endif /* __UTIL_DYNLIB_H__ */ + diff --git a/intern/cycles/util/util_foreach.h b/intern/cycles/util/util_foreach.h new file mode 100644 index 00000000000..b8298c003b5 --- /dev/null +++ b/intern/cycles/util/util_foreach.h @@ -0,0 +1,28 @@ +/* + * 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_FOREACH_H__ +#define __UTIL_FOREACH_H__ + +/* Use Boost to get nice foreach() loops for STL data structures. */ + +#include +#define foreach BOOST_FOREACH + +#endif /* __UTIL_FOREACH_H__ */ + diff --git a/intern/cycles/util/util_function.h b/intern/cycles/util/util_function.h new file mode 100644 index 00000000000..dfcd58183d9 --- /dev/null +++ b/intern/cycles/util/util_function.h @@ -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. + */ + +#ifndef __UTIL_FUNCTION_H__ +#define __UTIL_FUNCTION_H__ + +#include +#include + +CCL_NAMESPACE_BEGIN + +using boost::function; +#define function_bind boost::bind + +CCL_NAMESPACE_END + +#endif /* __UTIL_FUNCTION_H__ */ + diff --git a/intern/cycles/util/util_hash.h b/intern/cycles/util/util_hash.h new file mode 100644 index 00000000000..0b7164403f2 --- /dev/null +++ b/intern/cycles/util/util_hash.h @@ -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. + */ + +#ifndef __UTIL_HASH_H__ +#define __UTIL_HASH_H__ + +CCL_NAMESPACE_BEGIN + +static unsigned int hash_int_2d(unsigned int kx, unsigned int ky) +{ + #define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) + + unsigned int a, b, c; + + a = b = c = 0xdeadbeef + (2 << 2) + 13; + a += kx; + b += ky; + + c ^= b; c -= rot(b,14); + a ^= c; a -= rot(c,11); + b ^= a; b -= rot(a,25); + c ^= b; c -= rot(b,16); + a ^= c; a -= rot(c,4); + b ^= a; b -= rot(a,14); + c ^= b; c -= rot(b,24); + + return c; + + #undef rot +} + +CCL_NAMESPACE_END + +#endif /* __UTIL_HASH_H__ */ + diff --git a/intern/cycles/util/util_image.h b/intern/cycles/util/util_image.h new file mode 100644 index 00000000000..df566ccc79c --- /dev/null +++ b/intern/cycles/util/util_image.h @@ -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. + */ + +#ifndef __UTIL_IMAGE_H__ +#define __UTIL_IMAGE_H__ + +/* OpenImageIO is used for all image file reading and writing. */ + +#include + +CCL_NAMESPACE_BEGIN + +OIIO_NAMESPACE_USING + +CCL_NAMESPACE_END + +#endif /* __UTIL_IMAGE_H__ */ + diff --git a/intern/cycles/util/util_list.h b/intern/cycles/util/util_list.h new file mode 100644 index 00000000000..d8f79643469 --- /dev/null +++ b/intern/cycles/util/util_list.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_LIST_H__ +#define __UTIL_LIST_H__ + +#include + +CCL_NAMESPACE_BEGIN + +using std::list; + +CCL_NAMESPACE_END + +#endif /* __UTIL_LIST_H__ */ + diff --git a/intern/cycles/util/util_map.h b/intern/cycles/util/util_map.h new file mode 100644 index 00000000000..884f45c3b27 --- /dev/null +++ b/intern/cycles/util/util_map.h @@ -0,0 +1,34 @@ +/* + * 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_MAP_H__ +#define __UTIL_MAP_H__ + +#include +#include + +CCL_NAMESPACE_BEGIN + +using std::map; +using std::pair; +using std::tr1::unordered_map; + +CCL_NAMESPACE_END + +#endif /* __UTIL_MAP_H__ */ + diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h new file mode 100644 index 00000000000..349496e4a70 --- /dev/null +++ b/intern/cycles/util/util_math.h @@ -0,0 +1,759 @@ +/* + * 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_MATH_H__ +#define __UTIL_MATH_H__ + +/* Math + * + * Basic math functions on scalar and vector types. This header is used by + * both the kernel code when compiled as C++, and other C++ non-kernel code. */ + +#ifndef __KERNEL_OPENCL__ + +#define _USE_MATH_DEFINES + +#include +#include +#include + +#endif + +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +#define M_PI_F ((float)3.14159265358979323846264338327950288) +#define M_PI_2_F ((float)1.57079632679489661923132169163975144) +#define M_PI_4_F ((float)0.785398163397448309615660845819875721) +#define M_1_PI_F ((float)0.318309886183790671537767526745028724) +#define M_2_PI_F ((float)0.636619772367581343075535053490057448) + +/* Scalar */ + +#ifdef _WIN32 + +#define copysignf _copysign + +__device_inline float fmaxf(float a, float b) +{ + return (a > b)? a: b; +} + +__device_inline float fminf(float a, float b) +{ + return (a < b)? a: b; +} + +#endif + +#ifndef __KERNEL_OPENCL__ + +__device_inline int max(int a, int b) +{ + return (a > b)? a: b; +} + +__device_inline int min(int a, int b) +{ + return (a < b)? a: b; +} + +__device_inline float max(float a, float b) +{ + return (a > b)? a: b; +} + +__device_inline float min(float a, float b) +{ + return (a < b)? a: b; +} + +#endif + +__device_inline float min4(float a, float b, float c, float d) +{ + return min(min(min(a, b), c), d); +} + +__device_inline float max4(float a, float b, float c, float d) +{ + return max(max(max(a, b), c), d); +} + +#ifndef __KERNEL_OPENCL__ + +__device_inline int clamp(int a, int mn, int mx) +{ + return min(max(a, mn), mx); +} + +__device_inline float clamp(float a, float mn, float mx) +{ + return min(max(a, mn), mx); +} + +#endif + +__device_inline float signf(float f) +{ + return (f < 0.0f)? -1.0f: 1.0f; +} + +__device_inline float nonzerof(float f, float eps) +{ + if(fabsf(f) < eps) + return signf(f)*eps; + else + return f; +} + +/* Float2 Vector */ + +#ifndef __KERNEL_OPENCL__ + +__device_inline bool is_zero(const float2 a) +{ + return (a.x == 0.0f && a.y == 0.0f); +} + +#endif + +#ifndef __KERNEL_OPENCL__ + +__device_inline float average(const float2 a) +{ + return (a.x + a.y)*(1.0f/2.0f); +} + +#endif + +#ifndef __KERNEL_OPENCL__ + +__device_inline float2 operator-(const float2 a) +{ + float2 r = {-a.x, -a.y}; + return r; +} + +__device_inline float2 operator*(const float2 a, const float2 b) +{ + float2 r = {a.x*b.x, a.y*b.y}; + return r; +} + +__device_inline float2 operator*(const float2 a, float f) +{ + float2 r = {a.x*f, a.y*f}; + return r; +} + +__device_inline float2 operator*(float f, const float2 a) +{ + float2 r = {a.x*f, a.y*f}; + return r; +} + +__device_inline float2 operator/(float f, const float2 a) +{ + float2 r = {f/a.x, f/a.y}; + return r; +} + +__device_inline float2 operator/(const float2 a, float f) +{ + float invf = 1.0f/f; + float2 r = {a.x*invf, a.y*invf}; + return r; +} + +__device_inline float2 operator/(const float2 a, const float2 b) +{ + float2 r = {a.x/b.x, a.y/b.y}; + return r; +} + +__device_inline float2 operator+(const float2 a, const float2 b) +{ + float2 r = {a.x+b.x, a.y+b.y}; + return r; +} + +__device_inline float2 operator-(const float2 a, const float2 b) +{ + float2 r = {a.x-b.x, a.y-b.y}; + return r; +} + +__device_inline float2 operator+=(float2& a, const float2 b) +{ + a.x += b.x; + a.y += b.y; + return a; +} + +__device_inline float2 operator*=(float2& a, const float2 b) +{ + a.x *= b.x; + a.y *= b.y; + return a; +} + +__device_inline float2 operator*=(float2& a, float f) +{ + a.x *= f; + a.y *= f; + return a; +} + +__device_inline float2 operator/=(float2& a, const float2 b) +{ + a.x /= b.x; + a.y /= b.y; + return a; +} + +__device_inline float2 operator/=(float2& a, float f) +{ + float invf = 1.0f/f; + a.x *= invf; + a.y *= invf; + return a; +} + + +__device_inline float dot(const float2 a, const float2 b) +{ + return a.x*b.x + a.y*b.y; +} + +__device_inline float cross(const float2 a, const float2 b) +{ + return (a.x*b.y - a.y*b.x); +} + +#endif + +#ifndef __KERNEL_OPENCL__ + +__device_inline float len(const float2 a) +{ + return sqrtf(dot(a, a)); +} + +__device_inline float2 normalize(const float2 a) +{ + return a/len(a); +} + +__device_inline float2 normalize_len(const float2 a, float *t) +{ + *t = len(a); + return a/(*t); +} + +__device_inline bool operator==(const float2 a, const float2 b) +{ + return (a.x == b.x && a.y == b.y); +} + +__device_inline bool operator!=(const float2 a, const float2 b) +{ + return !(a == b); +} + +__device_inline float2 min(float2 a, float2 b) +{ + float2 r = {min(a.x, b.x), min(a.y, b.y)}; + return r; +} + +__device_inline float2 max(float2 a, float2 b) +{ + float2 r = {max(a.x, b.x), max(a.y, b.y)}; + return r; +} + +__device_inline float2 clamp(float2 a, float2 mn, float2 mx) +{ + return min(max(a, mn), mx); +} + +__device_inline float2 fabs(float2 a) +{ + return make_float2(fabsf(a.x), fabsf(a.y)); +} + +__device_inline float2 as_float2(const float4 a) +{ + return make_float2(a.x, a.y); +} + +#endif + +#ifndef __KERNEL_GPU__ + +__device_inline void print_float2(const char *label, const float2& a) +{ + printf("%s: %.8f %.8f\n", label, a.x, a.y); +} + +#endif + +#ifndef __KERNEL_OPENCL__ + +__device_inline float2 interp(float2 a, float2 b, float t) +{ + return a + t*(b - a); +} + +#endif + +/* Float3 Vector */ + +__device_inline bool is_zero(const float3 a) +{ + return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f); +} + +__device_inline float average(const float3 a) +{ + return (a.x + a.y + a.z)*(1.0f/3.0f); +} + +#ifndef __KERNEL_OPENCL__ + +__device_inline float3 operator-(const float3 a) +{ + float3 r = {-a.x, -a.y, -a.z}; + return r; +} + +__device_inline float3 operator*(const float3 a, const float3 b) +{ + float3 r = {a.x*b.x, a.y*b.y, a.z*b.z}; + return r; +} + +__device_inline float3 operator*(const float3 a, float f) +{ + float3 r = {a.x*f, a.y*f, a.z*f}; + return r; +} + +__device_inline float3 operator*(float f, const float3 a) +{ + float3 r = {a.x*f, a.y*f, a.z*f}; + return r; +} + +__device_inline float3 operator/(float f, const float3 a) +{ + float3 r = {f/a.x, f/a.y, f/a.z}; + return r; +} + +__device_inline float3 operator/(const float3 a, float f) +{ + float invf = 1.0f/f; + float3 r = {a.x*invf, a.y*invf, a.z*invf}; + return r; +} + +__device_inline float3 operator/(const float3 a, const float3 b) +{ + float3 r = {a.x/b.x, a.y/b.y, a.z/b.z}; + return r; +} + +__device_inline float3 operator+(const float3 a, const float3 b) +{ + float3 r = {a.x+b.x, a.y+b.y, a.z+b.z}; + return r; +} + +__device_inline float3 operator-(const float3 a, const float3 b) +{ + float3 r = {a.x-b.x, a.y-b.y, a.z-b.z}; + return r; +} + +__device_inline float3 operator+=(float3& a, const float3 b) +{ + a.x += b.x; + a.y += b.y; + a.z += b.z; + return a; +} + +__device_inline float3 operator*=(float3& a, const float3 b) +{ + a.x *= b.x; + a.y *= b.y; + a.z *= b.z; + return a; +} + +__device_inline float3 operator*=(float3& a, float f) +{ + a.x *= f; + a.y *= f; + a.z *= f; + return a; +} + +__device_inline float3 operator/=(float3& a, const float3 b) +{ + a.x /= b.x; + a.y /= b.y; + a.z /= b.z; + return a; +} + +__device_inline float3 operator/=(float3& a, float f) +{ + float invf = 1.0f/f; + a.x *= invf; + a.y *= invf; + a.z *= invf; + return a; +} + +__device_inline float dot(const float3 a, const float3 b) +{ + return a.x*b.x + a.y*b.y + a.z*b.z; +} + +__device_inline float3 cross(const float3 a, const float3 b) +{ + float3 r = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x}; + return r; +} + +#endif + +__device_inline float len(const float3 a) +{ + return sqrtf(dot(a, a)); +} + +#ifndef __KERNEL_OPENCL__ + +__device_inline float3 normalize(const float3 a) +{ + return a/len(a); +} + +#endif + +__device_inline float3 normalize_len(const float3 a, float *t) +{ + *t = len(a); + return a/(*t); +} + +#ifndef __KERNEL_OPENCL__ + +__device_inline bool operator==(const float3 a, const float3 b) +{ + return (a.x == b.x && a.y == b.y && a.z == b.z); +} + +__device_inline bool operator!=(const float3 a, const float3 b) +{ + return !(a == b); +} + +__device_inline float3 min(float3 a, float3 b) +{ + float3 r = {min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)}; + return r; +} + +__device_inline float3 max(float3 a, float3 b) +{ + float3 r = {max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)}; + return r; +} + +__device_inline float3 clamp(float3 a, float3 mn, float3 mx) +{ + return min(max(a, mn), mx); +} + +__device_inline float3 fabs(float3 a) +{ + return make_float3(fabsf(a.x), fabsf(a.y), fabsf(a.z)); +} + +__device_inline float3 as_float3(const float4& a) +{ + return make_float3(a.x, a.y, a.z); +} + +#endif + +#ifndef __KERNEL_GPU__ + +__device_inline void print_float3(const char *label, const float3& a) +{ + printf("%s: %.8f %.8f %.8f\n", label, a.x, a.y, a.z); +} + +#endif + +__device_inline float3 interp(float3 a, float3 b, float t) +{ + return a + t*(b - a); +} + +/* Float4 Vector */ + +#ifndef __KERNEL_OPENCL__ + +__device_inline bool is_zero(const float4& a) +{ + return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f && a.w == 0.0f); +} + +__device_inline float average(const float4& a) +{ + return (a.x + a.y + a.z + a.w)*(1.0f/4.0f); +} + +__device_inline float4 operator-(const float4& a) +{ + float4 r = {-a.x, -a.y, -a.z, -a.w}; + return r; +} + +__device_inline float4 operator*(const float4& a, const float4& b) +{ + float4 r = {a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w}; + return r; +} + +__device_inline float4 operator*(const float4& a, float f) +{ + float4 r = {a.x*f, a.y*f, a.z*f, a.w*f}; + return r; +} + +__device_inline float4 operator*(float f, const float4& a) +{ + float4 r = {a.x*f, a.y*f, a.z*f, a.w*f}; + return r; +} + +__device_inline float4 operator/(const float4& a, float f) +{ + float invf = 1.0f/f; + float4 r = {a.x*invf, a.y*invf, a.z*invf, a.w*invf}; + return r; +} + +__device_inline float4 operator/(const float4& a, const float4& b) +{ + float4 r = {a.x/b.x, a.y/b.y, a.z/b.z, a.w/b.w}; + return r; +} + +__device_inline float4 operator+(const float4& a, const float4& b) +{ + float4 r = {a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w}; + return r; +} + +__device_inline float4 operator-(const float4& a, const float4& b) +{ + float4 r = {a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w}; + return r; +} + +__device_inline float4 operator+=(float4& a, const float4& b) +{ + a.x += b.x; + a.y += b.y; + a.z += b.z; + a.w += b.w; + return a; +} + +__device_inline float4 operator*=(float4& a, const float4& b) +{ + a.x *= b.x; + a.y *= b.y; + a.z *= b.z; + a.w *= b.w; + return a; +} + +__device_inline float4 operator/=(float4& a, float f) +{ + float invf = 1.0f/f; + a.x *= invf; + a.y *= invf; + a.z *= invf; + a.w *= invf; + return a; +} + +__device_inline float dot(const float4& a, const float4& b) +{ + return a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; +} + +__device_inline float4 cross(const float4& a, const float4& b) +{ + float4 r = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x, 0.0f}; + return r; +} + +__device_inline float4 min(float4 a, float4 b) +{ + return make_float4(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z), min(a.w, b.w)); +} + +__device_inline float4 max(float4 a, float4 b) +{ + return make_float4(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z), max(a.w, b.w)); +} + +#endif + +#ifndef __KERNEL_GPU__ + +__device_inline void print_float4(const char *label, const float4& a) +{ + printf("%s: %.8f %.8f %.8f %.8f\n", label, a.x, a.y, a.z, a.w); +} + +#endif + +/* Int3 */ + +#ifndef __KERNEL_OPENCL__ + +__device_inline int3 max(int3 a, int3 b) +{ + int3 r = {max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)}; + return r; +} + +__device_inline int3 clamp(const int3& a, int mn, int mx) +{ + int3 r = {clamp(a.x, mn, mx), clamp(a.y, mn, mx), clamp(a.z, mn, mx)}; + return r; +} + +__device_inline int3 clamp(const int3& a, int3& mn, int mx) +{ + int3 r = {clamp(a.x, mn.x, mx), clamp(a.y, mn.y, mx), clamp(a.z, mn.z, mx)}; + return r; +} + +#endif + +#ifndef __KERNEL_GPU__ + +__device_inline void print_int3(const char *label, const int3& a) +{ + printf("%s: %d %d %d\n", label, a.x, a.y, a.z); +} + +#endif + +/* Int4 */ + +#ifndef __KERNEL_OPENCL__ + +__device_inline int4 operator>=(float4 a, float4 b) +{ + return make_int4(a.x >= b.x, a.y >= b.y, a.z >= b.z, a.w >= b.w); +} + +#endif + +#ifndef __KERNEL_GPU__ + +__device_inline void print_int4(const char *label, const int4& a) +{ + printf("%s: %d %d %d %d\n", label, a.x, a.y, a.z, a.w); +} + +#endif + +/* Int/Float conversion */ + +#ifndef __KERNEL_OPENCL__ + +__device_inline unsigned int as_uint(float f) +{ + union { unsigned int i; float f; } u; + u.f = f; + return u.i; +} + +__device_inline int __float_as_int(float f) +{ + union { int i; float f; } u; + u.f = f; + return u.i; +} + +__device_inline float __int_as_float(int i) +{ + union { int i; float f; } u; + u.i = i; + return u.f; +} + +__device_inline uint __float_as_uint(float f) +{ + union { uint i; float f; } u; + u.f = f; + return u.i; +} + +__device_inline float __uint_as_float(uint i) +{ + union { uint i; float f; } u; + u.i = i; + return u.f; +} + +/* Interpolation */ + +template __device_inline A lerp(const A& a, const A& b, const B& t) +{ + return (A)(a * ((B)1 - t) + b * t); +} + +/* Triangle */ + +__device_inline float triangle_area(const float3 v1, const float3 v2, const float3 v3) +{ + return len(cross(v3 - v2, v1 - v2))*0.5f; +} + +#endif + +CCL_NAMESPACE_END + +#endif /* __UTIL_MATH_H__ */ + diff --git a/intern/cycles/util/util_md5.cpp b/intern/cycles/util/util_md5.cpp new file mode 100644 index 00000000000..9fd44740531 --- /dev/null +++ b/intern/cycles/util/util_md5.cpp @@ -0,0 +1,350 @@ +/* + * Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * L. Peter Deutsch + * ghost@aladdin.com + */ + +/* Minor modifications done to remove some code and change style. */ + +#include "util_md5.h" + +#include +#include + +CCL_NAMESPACE_BEGIN + +#define T_MASK ((uint32_t)~0) +#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) +#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) +#define T3 0x242070db +#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111) +#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050) +#define T6 0x4787c62a +#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec) +#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe) +#define T9 0x698098d8 +#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850) +#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e) +#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841) +#define T13 0x6b901122 +#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c) +#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71) +#define T16 0x49b40821 +#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d) +#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf) +#define T19 0x265e5a51 +#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855) +#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2) +#define T22 0x02441453 +#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e) +#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437) +#define T25 0x21e1cde6 +#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829) +#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278) +#define T28 0x455a14ed +#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa) +#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07) +#define T31 0x676f02d9 +#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375) +#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd) +#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e) +#define T35 0x6d9d6122 +#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3) +#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb) +#define T38 0x4bdecfa9 +#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f) +#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f) +#define T41 0x289b7ec6 +#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805) +#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a) +#define T44 0x04881d05 +#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6) +#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a) +#define T47 0x1fa27cf8 +#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a) +#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb) +#define T50 0x432aff97 +#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58) +#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6) +#define T53 0x655b59c3 +#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d) +#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82) +#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e) +#define T57 0x6fa87e4f +#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f) +#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb) +#define T60 0x4e0811a1 +#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d) +#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca) +#define T63 0x2ad7d2bb +#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e) + +void MD5Hash::process(const uint8_t *data /*[64]*/) +{ + uint32_t + a = abcd[0], b = abcd[1], + c = abcd[2], d = abcd[3]; + uint32_t t; + /* Define storage for little-endian or both types of CPUs. */ + uint32_t xbuf[16]; + const uint32_t *X; + + { + /* + * Determine dynamically whether this is a big-endian or + * little-endian machine, since we can use a more efficient + * algorithm on the latter. + */ + static const int w = 1; + + if(*((const uint8_t *)&w)) /* dynamic little-endian */ + { + /* + * On little-endian machines, we can process properly aligned + * data without copying it. + */ + if(!((data - (const uint8_t *)0) & 3)) { + /* data are properly aligned */ + X = (const uint32_t *)data; + } + else { + /* not aligned */ + memcpy(xbuf, data, 64); + X = xbuf; + } + } + else { /* dynamic big-endian */ + /* + * On big-endian machines, we must arrange the bytes in the + * right order. + */ + const uint8_t *xp = data; + int i; + + X = xbuf; /* (dynamic only) */ + for(i = 0; i < 16; ++i, xp += 4) + xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24); + } + } + +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) + + /* Round 1. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ +#define F(x, y, z) (((x) & (y)) | (~(x) & (z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + F(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 7, T1); + SET(d, a, b, c, 1, 12, T2); + SET(c, d, a, b, 2, 17, T3); + SET(b, c, d, a, 3, 22, T4); + SET(a, b, c, d, 4, 7, T5); + SET(d, a, b, c, 5, 12, T6); + SET(c, d, a, b, 6, 17, T7); + SET(b, c, d, a, 7, 22, T8); + SET(a, b, c, d, 8, 7, T9); + SET(d, a, b, c, 9, 12, T10); + SET(c, d, a, b, 10, 17, T11); + SET(b, c, d, a, 11, 22, T12); + SET(a, b, c, d, 12, 7, T13); + SET(d, a, b, c, 13, 12, T14); + SET(c, d, a, b, 14, 17, T15); + SET(b, c, d, a, 15, 22, T16); +#undef SET + + /* Round 2. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ +#define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + G(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 1, 5, T17); + SET(d, a, b, c, 6, 9, T18); + SET(c, d, a, b, 11, 14, T19); + SET(b, c, d, a, 0, 20, T20); + SET(a, b, c, d, 5, 5, T21); + SET(d, a, b, c, 10, 9, T22); + SET(c, d, a, b, 15, 14, T23); + SET(b, c, d, a, 4, 20, T24); + SET(a, b, c, d, 9, 5, T25); + SET(d, a, b, c, 14, 9, T26); + SET(c, d, a, b, 3, 14, T27); + SET(b, c, d, a, 8, 20, T28); + SET(a, b, c, d, 13, 5, T29); + SET(d, a, b, c, 2, 9, T30); + SET(c, d, a, b, 7, 14, T31); + SET(b, c, d, a, 12, 20, T32); +#undef SET + + /* Round 3. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + H(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 5, 4, T33); + SET(d, a, b, c, 8, 11, T34); + SET(c, d, a, b, 11, 16, T35); + SET(b, c, d, a, 14, 23, T36); + SET(a, b, c, d, 1, 4, T37); + SET(d, a, b, c, 4, 11, T38); + SET(c, d, a, b, 7, 16, T39); + SET(b, c, d, a, 10, 23, T40); + SET(a, b, c, d, 13, 4, T41); + SET(d, a, b, c, 0, 11, T42); + SET(c, d, a, b, 3, 16, T43); + SET(b, c, d, a, 6, 23, T44); + SET(a, b, c, d, 9, 4, T45); + SET(d, a, b, c, 12, 11, T46); + SET(c, d, a, b, 15, 16, T47); + SET(b, c, d, a, 2, 23, T48); +#undef SET + + /* Round 4. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ +#define I(x, y, z) ((y) ^ ((x) | ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + I(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 6, T49); + SET(d, a, b, c, 7, 10, T50); + SET(c, d, a, b, 14, 15, T51); + SET(b, c, d, a, 5, 21, T52); + SET(a, b, c, d, 12, 6, T53); + SET(d, a, b, c, 3, 10, T54); + SET(c, d, a, b, 10, 15, T55); + SET(b, c, d, a, 1, 21, T56); + SET(a, b, c, d, 8, 6, T57); + SET(d, a, b, c, 15, 10, T58); + SET(c, d, a, b, 6, 15, T59); + SET(b, c, d, a, 13, 21, T60); + SET(a, b, c, d, 4, 6, T61); + SET(d, a, b, c, 11, 10, T62); + SET(c, d, a, b, 2, 15, T63); + SET(b, c, d, a, 9, 21, T64); +#undef SET + + /* Then perform the following additions. (That is increment each + of the four registers by the value it had before this block + was started.) */ + abcd[0] += a; + abcd[1] += b; + abcd[2] += c; + abcd[3] += d; +} + +MD5Hash::MD5Hash() +{ + count[0] = count[1] = 0; + abcd[0] = 0x67452301; + abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; + abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301; + abcd[3] = 0x10325476; +} + +MD5Hash::~MD5Hash() +{ +} + +void MD5Hash::append(const uint8_t *data, int nbytes) +{ + const uint8_t *p = data; + int left = nbytes; + int offset = (count[0] >> 3) & 63; + uint32_t nbits = (uint32_t)(nbytes << 3); + + if(nbytes <= 0) + return; + + /* Update the message length. */ + count[1] += nbytes >> 29; + count[0] += nbits; + if(count[0] < nbits) + count[1]++; + + /* Process an initial partial block. */ + if(offset) { + int copy = (offset + nbytes > 64 ? 64 - offset : nbytes); + + memcpy(buf + offset, p, copy); + if(offset + copy < 64) + return; + p += copy; + left -= copy; + process(buf); + } + + /* Process full blocks. */ + for(; left >= 64; p += 64, left -= 64) + process(p); + + /* Process a final partial block. */ + if(left) + memcpy(buf, p, left); +} + +void MD5Hash::finish(uint8_t digest[16]) +{ + static const uint8_t pad[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + uint8_t data[8]; + int i; + + /* Save the length before padding. */ + for(i = 0; i < 8; ++i) + data[i] = (uint8_t)(count[i >> 2] >> ((i & 3) << 3)); + + /* Pad to 56 bytes mod 64. */ + append(pad, ((55 - (count[0] >> 3)) & 63) + 1); + /* Append the length. */ + append(data, 8); + + for(i = 0; i < 16; ++i) + digest[i] = (uint8_t)(abcd[i >> 2] >> ((i & 3) << 3)); +} + +string MD5Hash::get_hex() +{ + uint8_t digest[16]; + char buf[16*2]; + + finish(digest); + + for(int i=0; i<16; i++) + sprintf(buf + i*2, "%02X", digest[i]); + + return string(buf, sizeof(buf)); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_md5.h b/intern/cycles/util/util_md5.h new file mode 100644 index 00000000000..49f421d43d9 --- /dev/null +++ b/intern/cycles/util/util_md5.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * L. Peter Deutsch + * ghost@aladdin.com + */ + +/* MD5 + * + * Simply MD5 hash computation, used by disk cache. Adapted from external + * code, with minor code modifications done to remove some unused code and + * change code style. */ + +#ifndef __UTIL_MD5_H__ +#define __UTIL_MD5_H__ + +#include "util_string.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class MD5Hash { +public: + MD5Hash(); + ~MD5Hash(); + + void append(const uint8_t *data, int size); + string get_hex(); + +protected: + void process(const uint8_t *data); + void finish(uint8_t digest[16]); + + uint32_t count[2]; /* message length in bits, lsw first */ + uint32_t abcd[4]; /* digest buffer */ + uint8_t buf[64]; /* accumulate block */ +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_MD5_H__ */ + diff --git a/intern/cycles/util/util_opengl.h b/intern/cycles/util/util_opengl.h new file mode 100644 index 00000000000..5396f6f17be --- /dev/null +++ b/intern/cycles/util/util_opengl.h @@ -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. + */ + +#ifndef __UTIL_OPENGL_H__ +#define __UTIL_OPENGL_H__ + +/* OpenGL header includes, used everywhere we use OpenGL, to deal with + * platform differences in one central place. */ + +#ifdef __APPLE__ +#include +#include +#include +#else +#include +#include +#endif + +#endif /* __UTIL_OPENGL_H__ */ + diff --git a/intern/cycles/util/util_param.h b/intern/cycles/util/util_param.h new file mode 100644 index 00000000000..d1ca1b65ffb --- /dev/null +++ b/intern/cycles/util/util_param.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. + */ + +#ifndef __UTIL_PARAM_H__ +#define __UTIL_PARAM_H__ + +/* Parameter value lists from OpenImageIO are used to store custom properties + * on various data, which can then later be used in shaders. */ + +#include +#include +#include + +CCL_NAMESPACE_BEGIN + +OIIO_NAMESPACE_USING + +CCL_NAMESPACE_END + +#endif /* __UTIL_PARAM_H__ */ + diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp new file mode 100644 index 00000000000..4cf6cea0f69 --- /dev/null +++ b/intern/cycles/util/util_path.cpp @@ -0,0 +1,61 @@ +/* + * 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 "util_debug.h" +#include "util_path.h" +#include "util_string.h" + +#include +OIIO_NAMESPACE_USING + +#include + +CCL_NAMESPACE_BEGIN + +static string cached_path = ""; + +void path_init(const string& path) +{ + cached_path = path; +} + +string path_get(const string& sub) +{ + if(cached_path == "") + cached_path = path_dirname(Sysutil::this_program_path()); + + return path_join(cached_path, sub); +} + +string path_filename(const string& path) +{ + return boost::filesystem::path(path).filename(); +} + +string path_dirname(const string& path) +{ + return boost::filesystem::path(path).parent_path().string(); +} + +string path_join(const string& dir, const string& file) +{ + return (boost::filesystem::path(dir) / boost::filesystem::path(file)).string(); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h new file mode 100644 index 00000000000..b80bc0e9131 --- /dev/null +++ b/intern/cycles/util/util_path.h @@ -0,0 +1,41 @@ +/* + * 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_PATH_H__ +#define __UTIL_PATH_H__ + +/* Utility functions to get paths to files distributed with the program. For + * the standalone apps, paths are relative to the executable, for dynamically + * linked libraries, the path to the library may be set with path_init, which + * then makes all paths relative to that. */ + +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +void path_init(const string& path = ""); +string path_get(const string& sub = ""); + +string path_filename(const string& path); +string path_dirname(const string& path); +string path_join(const string& dir, const string& file); + +CCL_NAMESPACE_END + +#endif + diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h new file mode 100644 index 00000000000..86ab34aa7f9 --- /dev/null +++ b/intern/cycles/util/util_progress.h @@ -0,0 +1,173 @@ +/* + * 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_PROGRESS_H__ +#define __UTIL_PROGRESS_H__ + +/* Progress + * + * Simple class to communicate progress status messages, timing information, + * update notifications from a job running in another thread. All methods + * except for the constructor/destructor are thread safe. */ + +#include "util_string.h" +#include "util_thread.h" + +CCL_NAMESPACE_BEGIN + +class Progress { +public: + Progress() + { + pass = 0; + total_time = 0.0f; + pass_time = 0.0f; + status = "Initializing"; + substatus = ""; + update_cb = NULL; + cancel = false; + cancel_message = ""; + cancel_cb = NULL; + } + + Progress(Progress& progress) + { + *this = progress; + } + + Progress& operator=(Progress& progress) + { + thread_scoped_lock lock(progress.progress_mutex); + + progress.get_pass(pass, total_time, pass_time); + progress.get_status(status, substatus); + + return *this; + } + + /* cancel */ + void set_cancel(const string& cancel_message_) + { + thread_scoped_lock lock(progress_mutex); + cancel_message = cancel_message_; + cancel = true; + } + + bool get_cancel() + { + if(!cancel && cancel_cb) + cancel_cb(); + + return cancel; + } + + string get_cancel_message() + { + thread_scoped_lock lock(progress_mutex); + return cancel_message; + } + + void set_cancel_callback(boost::function function) + { + cancel_cb = function; + } + + /* pass and timing information */ + + void set_pass(int pass_, double total_time_, double pass_time_) + { + thread_scoped_lock lock(progress_mutex); + + pass = pass_; + total_time = total_time_; + pass_time = pass_time_; + } + + void get_pass(int& pass_, double& total_time_, double& pass_time_) + { + thread_scoped_lock lock(progress_mutex); + + pass_ = pass; + total_time_ = total_time; + pass_time_ = pass_time; + } + + /* status messages */ + + void set_status(const string& status_, const string& substatus_ = "") + { + { + thread_scoped_lock lock(progress_mutex); + status = status_; + substatus = substatus_; + } + + set_update(); + } + + void set_substatus(const string& substatus_) + { + { + thread_scoped_lock lock(progress_mutex); + substatus = substatus_; + } + + set_update(); + } + + void get_status(string& status_, string& substatus_) + { + thread_scoped_lock lock(progress_mutex); + status_ = status; + substatus_ = substatus; + } + + /* callback */ + + void set_update() + { + if(update_cb) + update_cb(); + } + + void set_update_callback(boost::function function) + { + update_cb = function; + } + +protected: + thread_mutex progress_mutex; + boost::function update_cb; + boost::function cancel_cb; + + int pass; + + double total_time; + double pass_time; + + string status; + string substatus; + + volatile bool cancel; + string cancel_message; +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_PROGRESS_H__ */ + diff --git a/intern/cycles/util/util_set.h b/intern/cycles/util/util_set.h new file mode 100644 index 00000000000..ac310e93e80 --- /dev/null +++ b/intern/cycles/util/util_set.h @@ -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. + */ + +#ifndef __UTIL_SET_H__ +#define __UTIL_SET_H__ + +#include +#include + +CCL_NAMESPACE_BEGIN + +using std::set; +using std::tr1::unordered_set; + +CCL_NAMESPACE_END + +#endif /* __UTIL_SET_H__ */ + diff --git a/intern/cycles/util/util_string.cpp b/intern/cycles/util/util_string.cpp new file mode 100644 index 00000000000..aaa482eec0d --- /dev/null +++ b/intern/cycles/util/util_string.cpp @@ -0,0 +1,92 @@ +/* + * 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 +#include + +#include + +#include "util_foreach.h" +#include "util_string.h" + +#ifdef _WIN32 +#ifndef vsnprintf +#define vsnprintf _vsnprintf +#endif +#endif + +CCL_NAMESPACE_BEGIN + +string string_printf(const char *format, ...) +{ + vector str(128, 0); + + while(1) { + va_list args; + int result; + + va_start(args, format); + result = vsnprintf(&str[0], str.size(), format, args); + va_end(args); + + if(result == -1) { + /* not enough space or formatting error */ + if(str.size() > 65536) { + assert(0); + return string(""); + } + + str.resize(str.size()*2, 0); + continue; + } + else if(result >= (int)str.size()) { + /* not enough space */ + str.resize(result + 1, 0); + continue; + } + + return string(&str[0]); + } +} + +bool string_iequals(const string& a, const string& b) +{ + if(a.size() == b.size()) { + for(size_t i = 0; i < a.size(); i++) + if(toupper(a[i]) != toupper(b[i])) + return false; + + return true; + } + + return false; +} + +void string_split(vector& tokens, const string& str) +{ + vector split; + + boost::split(split, str, boost::is_any_of("\t "), boost::token_compress_on); + + foreach(const string& token, split) + if(token != "") + tokens.push_back(token); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_string.h b/intern/cycles/util/util_string.h new file mode 100644 index 00000000000..72b893d2b17 --- /dev/null +++ b/intern/cycles/util/util_string.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. + */ + +#ifndef __UTIL_STRING_H__ +#define __UTIL_STRING_H__ + +#include +#include +#include + +#include "util_vector.h" + +CCL_NAMESPACE_BEGIN + +using std::string; +using std::stringstream; +using std::ostringstream; +using std::istringstream; + +#ifdef __GNUC__ +#define PRINTF_ATTRIBUTE __attribute__((format(printf, 1, 2))) +#else +#define PRINTF_ATTRIBUTE +#endif + +string string_printf(const char *format, ...) PRINTF_ATTRIBUTE; + +bool string_iequals(const string& a, const string& b); +void string_split(vector& tokens, const string& str); + +CCL_NAMESPACE_END + +#endif /* __UTIL_STRING_H__ */ + diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp new file mode 100644 index 00000000000..fae575873e0 --- /dev/null +++ b/intern/cycles/util/util_system.cpp @@ -0,0 +1,104 @@ +/* + * 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 "util_system.h" +#include "util_types.h" + +#ifdef _WIN32 +#include +#include +#elif defined(__APPLE__) +#include +#include +#else +#include +#endif + +CCL_NAMESPACE_BEGIN + +int system_cpu_thread_count() +{ + static uint count = 0; + + if(count > 0) + return count; + +#ifdef _WIN32 + SYSTEM_INFO info; + GetSystemInfo(&info); + count = (uint)info.dwNumberOfProcessors; +#elif defined(__APPLE__) + size_t len = sizeof(count); + int mib[2] = { CTL_HW, HW_NCPU }; + + sysctl(mib, 2, &count, &len, NULL, 0); +#else + count = (uint)sysconf(_SC_NPROCESSORS_ONLN); +#endif + + if(count < 1) + count = 1; + + return count; +} + +#ifndef _WIN32 +static void __cpuid(int data[4], int selector) +{ + asm("cpuid" : "=a" (data[0]), "=b" (data[1]), "=c" (data[2]), "=d" (data[3]) : "a"(selector)); +} +#endif + +static void replace_string(string& haystack, const string& needle, const string& other) +{ + size_t i; + + while((i = haystack.find(needle)) != string::npos) + haystack.replace(i, needle.length(), other); +} + +string system_cpu_brand_string() +{ + char buf[48]; + int result[4]; + + __cpuid(result, 0x80000000); + + if(result[0] >= (int)0x80000004) { + __cpuid((int*)(buf+0), 0x80000002); + __cpuid((int*)(buf+16), 0x80000003); + __cpuid((int*)(buf+32), 0x80000004); + + string brand = buf; + + /* make it a bit more presentable */ + replace_string(brand, "(TM)", ""); + replace_string(brand, "(R)", ""); + + size_t i; + if((i = brand.find(" ")) != string::npos) + brand = brand.substr(0, i); + + return brand; + } + + return "Unknown CPU"; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_system.h b/intern/cycles/util/util_system.h new file mode 100644 index 00000000000..49a798acf03 --- /dev/null +++ b/intern/cycles/util/util_system.h @@ -0,0 +1,32 @@ +/* + * 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_SYSTEM_H__ +#define __UTIL_SYSTEM_H__ + +#include "util_string.h" + +CCL_NAMESPACE_BEGIN + +int system_cpu_thread_count(); +string system_cpu_brand_string(); + +CCL_NAMESPACE_END + +#endif /* __UTIL_SYSTEM_H__ */ + diff --git a/intern/cycles/util/util_thread.h b/intern/cycles/util/util_thread.h new file mode 100644 index 00000000000..ad95f04b4f9 --- /dev/null +++ b/intern/cycles/util/util_thread.h @@ -0,0 +1,212 @@ +/* + * 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_THREAD_H__ +#define __UTIL_THREAD_H__ + +#include +#include + +CCL_NAMESPACE_BEGIN + +#if 0 + +/* Use STL for threading */ + +using std::thread; +using std::thread_mutex; +typedef std::lock_guard thread_scoped_lock; +using std::condition_variable; + +#else + +/* Use boost for threading */ + +using boost::thread; +typedef boost::mutex thread_mutex; +typedef boost::mutex::scoped_lock thread_scoped_lock; +typedef boost::condition_variable thread_condition_variable; + +#endif + +/* Thread Safe Queue to pass tasks from one thread to another. Tasks should be + * pushed into the queue, while the worker thread waits to pop the next task + * off the queue. Once all tasks are into the queue, calling stop() will stop + * the worker threads from waiting for more tasks once all tasks are done. */ + +template class ThreadQueue +{ +public: + ThreadQueue() + { + tot = 0; + tot_done = 0; + do_stop = false; + do_cancel = false; + } + + /* Main thread functions */ + + /* push a task to be executed */ + void push(const T& value) + { + thread_scoped_lock lock(queue_mutex); + queue.push(value); + tot++; + lock.unlock(); + + queue_cond.notify_one(); + } + + /* wait until all tasks are done */ + void wait_done() + { + thread_scoped_lock lock(done_mutex); + + while(tot_done != tot) + done_cond.wait(lock); + } + + /* stop all worker threads */ + void stop() + { + clear(); + do_stop = true; + queue_cond.notify_all(); + } + + /* cancel all tasks, but keep worker threads running */ + void cancel() + { + clear(); + do_cancel = true; + wait_done(); + do_cancel = false; + } + + /* Worker thread functions + * + * while(queue.worker_wait_pop(task)) { + * for(..) { + * ... do work ... + * + * if(queue.worker_cancel()) + * break; + * } + * + * queue.worker_done(); + * } + */ + + bool worker_wait_pop(T& value) + { + thread_scoped_lock lock(queue_mutex); + + while(queue.empty() && !do_stop) + queue_cond.wait(lock); + + if(queue.empty()) + return false; + + value = queue.front(); + queue.pop(); + + return true; + } + + void worker_done() + { + thread_scoped_lock lock(done_mutex); + tot_done++; + lock.unlock(); + + assert(tot_done <= tot); + + done_cond.notify_all(); + } + + bool worker_cancel() + { + return do_cancel; + } + +protected: + void clear() + { + thread_scoped_lock lock(queue_mutex); + + while(!queue.empty()) { + thread_scoped_lock done_lock(done_mutex); + tot_done++; + done_lock.unlock(); + + queue.pop(); + } + + done_cond.notify_all(); + } + + std::queue queue; + thread_mutex queue_mutex; + thread_mutex done_mutex; + thread_condition_variable queue_cond; + thread_condition_variable done_cond; + volatile bool do_stop; + volatile bool do_cancel; + volatile int tot, tot_done; +}; + +/* Thread Local Storage + * + * Boost implementation is a bit slow, and Mac OS X __thread is not supported + * but the pthreads implementation is optimized, so we use these macros. */ + +#ifdef __APPLE__ + +#define tls_ptr(type, name) \ + pthread_key_t name +#define tls_set(name, value) \ + pthread_setspecific(name, value) +#define tls_get(type, name) \ + ((type*)pthread_getspecific(name)) +#define tls_create(type, name) \ + pthread_key_create(&name, NULL) +#define tls_delete(type, name) \ + pthread_key_delete(name); + +#else + +#ifdef __WIN32 +#define __thread __declspec(thread) +#endif + +#define tls_ptr(type, name) \ + __thread type *name +#define tls_set(name, value) \ + name = value +#define tls_get(type, name) \ + name +#define tls_create(type, name) +#define tls_delete(type, name) + +#endif + +CCL_NAMESPACE_END + +#endif /* __UTIL_THREAD_H__ */ + diff --git a/intern/cycles/util/util_time.cpp b/intern/cycles/util/util_time.cpp new file mode 100644 index 00000000000..5f543fc7f91 --- /dev/null +++ b/intern/cycles/util/util_time.cpp @@ -0,0 +1,72 @@ +/* + * 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 + +#include "util_time.h" + +#ifdef _WIN32 + +#include + +CCL_NAMESPACE_BEGIN + +double time_dt() +{ + __int64 frequency, counter; + + QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); + QueryPerformanceCounter((LARGE_INTEGER*)&counter); + + return (double)counter/(double)frequency; +} + +void time_sleep(double t) +{ + Sleep((int)(t*1000)); +} + +CCL_NAMESPACE_END + +#else + +#include +#include + +CCL_NAMESPACE_BEGIN + +double time_dt() +{ + struct timeval now; + gettimeofday(&now, NULL); + + return now.tv_sec + now.tv_usec*1e-6; +} + +void time_sleep(double t) +{ + if(t >= 1.0) + sleep((int)t); + + usleep((int)(t*1e6)); +} + +CCL_NAMESPACE_END + +#endif + diff --git a/intern/cycles/util/util_time.h b/intern/cycles/util/util_time.h new file mode 100644 index 00000000000..33fa8797a69 --- /dev/null +++ b/intern/cycles/util/util_time.h @@ -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. + */ + +#ifndef __UTIL_TIME_H__ +#define __UTIL_TIME_H__ + +CCL_NAMESPACE_BEGIN + +/* Give current time in seconds in double precision, with good accuracy. */ + +double time_dt(); + +/* Sleep for the specified number of seconds */ + +void time_sleep(double t); + +CCL_NAMESPACE_END + +#endif + diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp new file mode 100644 index 00000000000..5c2f28af318 --- /dev/null +++ b/intern/cycles/util/util_transform.cpp @@ -0,0 +1,142 @@ +/* + * 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. + */ + +/* + * Adapted from code with license: + * + * Copyright (c) 2002, Industrial Light & Magic, a division of Lucas + * Digital Ltd. LLC. 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 Industrial Light & Magic 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 "util_math.h" +#include "util_transform.h" + +CCL_NAMESPACE_BEGIN + +static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) +{ + /* forward elimination */ + for(int i = 0; i < 4; i++) { + int pivot = i; + float pivotsize = M[i][i]; + + if(pivotsize < 0) + pivotsize = -pivotsize; + + for(int j = i + 1; j < 4; j++) { + float tmp = M[j][i]; + + if(tmp < 0) + tmp = -tmp; + + if(tmp > pivotsize) { + pivot = j; + pivotsize = tmp; + } + } + + if(pivotsize == 0) + return false; + + if(pivot != i) { + for(int j = 0; j < 4; j++) { + float tmp; + + tmp = M[i][j]; + M[i][j] = M[pivot][j]; + M[pivot][j] = tmp; + + tmp = R[i][j]; + R[i][j] = R[pivot][j]; + R[pivot][j] = tmp; + } + } + + for(int j = i + 1; j < 4; j++) { + float f = M[j][i] / M[i][i]; + + for(int k = 0; k < 4; k++) { + M[j][k] -= f*M[i][k]; + R[j][k] -= f*R[i][k]; + } + } + } + + /* backward substitution */ + for(int i = 3; i >= 0; --i) { + float f; + + if((f = M[i][i]) == 0) + return false; + + for(int j = 0; j < 4; j++) { + M[i][j] /= f; + R[i][j] /= f; + } + + for(int j = 0; j < i; j++) { + f = M[j][i]; + + for(int k = 0; k < 4; k++) { + M[j][k] -= f*M[i][k]; + R[j][k] -= f*R[i][k]; + } + } + } + + return true; +} + +Transform transform_inverse(const Transform& tfm) +{ + Transform R = transform_identity(); + Transform M = tfm; + + if(!transform_matrix4_gj_inverse((float(*)[4])&R, (float(*)[4])&M)) + return transform_identity(); + + return R; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h new file mode 100644 index 00000000000..9cde410edc8 --- /dev/null +++ b/intern/cycles/util/util_transform.h @@ -0,0 +1,213 @@ +/* + * 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_TRANSFORM_H__ +#define __UTIL_TRANSFORM_H__ + +#ifndef __KERNEL_GPU__ +#include +#endif + +#include "util_math.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +typedef struct Transform { + float4 x, y, z, w; /* rows */ +} Transform; + +__device_inline float3 transform(const Transform *t, const float3 a) +{ + float4 b = {a.x, a.y, a.z, 1.0f}; + float3 c = {dot(t->x, b), dot(t->y, b), dot(t->z, b)}; + + return c/dot(t->w, b); +} + +__device_inline float3 transform_direction(const Transform *t, const float3 a) +{ + float4 b = {a.x, a.y, a.z, 0.0f}; + float3 c = {dot(t->x, b), dot(t->y, b), dot(t->z, b)}; + + return c; +} + +#ifndef __KERNEL_GPU__ + +__device_inline void print_transform(const char *label, const Transform& t) +{ + print_float4(label, t.x); + print_float4(label, t.y); + print_float4(label, t.z); + print_float4(label, t.w); + printf("\n"); +} + +__device_inline Transform transform_transpose(const Transform a) +{ + Transform t; + + t.x.x = a.x.x; t.x.y = a.y.x; t.x.z = a.z.x; t.x.w = a.w.x; + t.y.x = a.x.y; t.y.y = a.y.y; t.y.z = a.z.y; t.y.w = a.w.y; + t.z.x = a.x.z; t.z.y = a.y.z; t.z.z = a.z.z; t.z.w = a.w.z; + t.w.x = a.x.w; t.w.y = a.y.w; t.w.z = a.z.w; t.w.w = a.w.w; + + return t; +} + +__device_inline Transform operator*(const Transform a, const Transform b) +{ + Transform c = transform_transpose(b); + Transform t; + + t.x = make_float4(dot(a.x, c.x), dot(a.x, c.y), dot(a.x, c.z), dot(a.x, c.w)); + t.y = make_float4(dot(a.y, c.x), dot(a.y, c.y), dot(a.y, c.z), dot(a.y, c.w)); + t.z = make_float4(dot(a.z, c.x), dot(a.z, c.y), dot(a.z, c.z), dot(a.z, c.w)); + t.w = make_float4(dot(a.w, c.x), dot(a.w, c.y), dot(a.w, c.z), dot(a.w, c.w)); + + return t; +} + +__device_inline Transform make_transform(float a, float b, float c, float d, + float e, float f, float g, float h, + float i, float j, float k, float l, + float m, float n, float o, float p) +{ + Transform t; + + t.x.x = a; t.x.y = b; t.x.z = c; t.x.w = d; + t.y.x = e; t.y.y = f; t.y.z = g; t.y.w = h; + t.z.x = i; t.z.y = j; t.z.z = k; t.z.w = l; + t.w.x = m; t.w.y = n; t.w.z = o; t.w.w = p; + + return t; +} + +__device_inline Transform transform_translate(float3 t) +{ + return make_transform( + 1, 0, 0, t.x, + 0, 1, 0, t.y, + 0, 0, 1, t.z, + 0, 0, 0, 1); +} + +__device_inline Transform transform_translate(float x, float y, float z) +{ + return transform_translate(make_float3(x, y, z)); +} + +__device_inline Transform transform_scale(float3 s) +{ + return make_transform( + s.x, 0, 0, 0, + 0, s.y, 0, 0, + 0, 0, s.z, 0, + 0, 0, 0, 1); +} + +__device_inline Transform transform_scale(float x, float y, float z) +{ + return transform_scale(make_float3(x, y, z)); +} + +__device_inline Transform transform_perspective(float fov, float n, float f) +{ + Transform persp = make_transform( + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, f / (f - n), -f*n / (f - n), + 0, 0, 1, 0); + + float inv_angle = 1.0f/tanf(0.5f*fov); + + Transform scale = transform_scale(inv_angle, inv_angle, 1); + + return scale * persp; +} + +__device_inline Transform transform_rotate(float angle, float3 axis) +{ + float s = sinf(angle); + float c = cosf(angle); + float t = 1.f - c; + + axis = normalize(axis); + + return make_transform( + axis.x*axis.x*t + c, + axis.x*axis.y*t - s*axis.z, + axis.x*axis.z*t + s*axis.y, + 0.0f, + + axis.y*axis.x*t + s*axis.z, + axis.y*axis.y*t + c, + axis.y*axis.z*t - s*axis.x, + 0.0f, + + axis.z*axis.x*t - s*axis.y, + axis.z*axis.y*t + s*axis.x, + axis.z*axis.z*t + c, + 0.0f, + + 0.0f, 0.0f, 0.0f, 1.0f); +} + +__device_inline Transform transform_euler(float3 euler) +{ + return + transform_rotate(euler.x, make_float3(1.0f, 0.0f, 0.0f)) * + transform_rotate(euler.y, make_float3(1.0f, 0.0f, 0.0f)) * + transform_rotate(euler.z, make_float3(1.0f, 0.0f, 0.0f)); +} + +__device_inline Transform transform_orthographic(float znear, float zfar) +{ + return transform_scale(1.0f, 1.0f, 1.0f / (zfar-znear)) * + transform_translate(0.0f, 0.0f, -znear); +} + +__device_inline Transform transform_identity() +{ + return transform_scale(1.0f, 1.0f, 1.0f); +} + +__device_inline bool operator==(const Transform& A, const Transform& B) +{ + return memcmp(&A, &B, sizeof(Transform)) == 0; +} + +__device_inline bool operator!=(const Transform& A, const Transform& B) +{ + return !(A == B); +} + +__device_inline float3 transform_get_column(const Transform *t, int column) +{ + return make_float3(t->x[column], t->y[column], t->z[column]); +} + +Transform transform_inverse(const Transform& a); + +#endif + +CCL_NAMESPACE_END + +#endif /* __UTIL_TRANSFORM_H__ */ + diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h new file mode 100644 index 00000000000..a0e352128d1 --- /dev/null +++ b/intern/cycles/util/util_types.h @@ -0,0 +1,266 @@ +/* + * 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_TYPES_H__ +#define __UTIL_TYPES_H__ + +#ifndef __KERNEL_OPENCL__ + +#include + +#endif + +/* Qualifiers for kernel code shared by CPU and GPU */ + +#ifndef __KERNEL_GPU__ + +#define __device static inline +#define __global +#define __local +#define __shared +#define __constant +#define __device_inline static inline __attribute__((always_inline)) + +#endif + +/* SIMD Types */ + +#ifndef __KERNEL_GPU__ + +#include +#include + +#endif + +#ifndef _WIN32 +#ifndef __KERNEL_GPU__ + +#include + +#endif +#endif + +CCL_NAMESPACE_BEGIN + +/* Types + * + * Define simpler unsigned type names, and integer with defined number of bits. + * Also vector types, named to be compatible with OpenCL builtin types, while + * working for CUDA and C++ too. */ + +/* Shorter Unsigned Names */ + +typedef unsigned char uchar; +typedef unsigned int uint; + +#ifndef __KERNEL_GPU__ + +/* Fixed Bits Types */ + +#ifdef _WIN32 + +typedef signed char int8_t; +typedef unsigned char uint8_t; + +typedef signed short int16_t; +typedef unsigned short uint16_t; + +typedef signed int int32_t; +typedef unsigned int uint32_t; + +typedef long long int64_t; +typedef unsigned long long uint64_t; + +#endif + +/* Generic Memory Pointer */ + +typedef uint64_t device_ptr; + +/* Vector Types */ + +struct uchar2 { + uchar x, y; + + uchar operator[](int i) const { return *(&x + i); } + uchar& operator[](int i) { return *(&x + i); } +}; + +struct uchar3 { + uchar x, y, z; + + uchar operator[](int i) const { return *(&x + i); } + uchar& operator[](int i) { return *(&x + i); } +}; + +struct uchar4 { + uchar x, y, z, w; + + uchar operator[](int i) const { return *(&x + i); } + uchar& operator[](int i) { return *(&x + i); } +}; + +struct int2 { + int x, y; + + int operator[](int i) const { return *(&x + i); } + int& operator[](int i) { return *(&x + i); } +}; + +struct int3 { + int x, y, z; + + int operator[](int i) const { return *(&x + i); } + int& operator[](int i) { return *(&x + i); } +}; + +struct int4 { + int x, y, z, w; + + int operator[](int i) const { return *(&x + i); } + int& operator[](int i) { return *(&x + i); } +}; + +struct uint2 { + uint x, y; + + uint operator[](int i) const { return *(&x + i); } + uint& operator[](int i) { return *(&x + i); } +}; + +struct uint3 { + uint x, y, z; + + uint operator[](int i) const { return *(&x + i); } + uint& operator[](int i) { return *(&x + i); } +}; + +struct uint4 { + uint x, y, z, w; + + uint operator[](int i) const { return *(&x + i); } + uint& operator[](int i) { return *(&x + i); } +}; + +struct float2 { + float x, y; + + float operator[](int i) const { return *(&x + i); } + float& operator[](int i) { return *(&x + i); } +}; + +struct float3 { + float x, y, z; + + float operator[](int i) const { return *(&x + i); } + float& operator[](int i) { return *(&x + i); } +}; + +struct float4 { + float x, y, z, w; + + float operator[](int i) const { return *(&x + i); } + float& operator[](int i) { return *(&x + i); } +}; + +#endif + +#ifndef __KERNEL_GPU__ + +/* Vector Type Constructors + * + * OpenCL does not support C++ class, so we use these instead. */ + +__device uchar2 make_uchar2(uchar x, uchar y) +{ + uchar2 a = {x, y}; + return a; +} + +__device uchar3 make_uchar3(uchar x, uchar y, uchar z) +{ + uchar3 a = {x, y, z}; + return a; +} + +__device uchar4 make_uchar4(uchar x, uchar y, uchar z, uchar w) +{ + uchar4 a = {x, y, z, w}; + return a; +} + +__device int2 make_int2(int x, int y) +{ + int2 a = {x, y}; + return a; +} + +__device int3 make_int3(int x, int y, int z) +{ + int3 a = {x, y, z}; + return a; +} + +__device int4 make_int4(int x, int y, int z, int w) +{ + int4 a = {x, y, z, w}; + return a; +} + +__device uint2 make_uint2(uint x, uint y) +{ + uint2 a = {x, y}; + return a; +} + +__device uint3 make_uint3(uint x, uint y, uint z) +{ + uint3 a = {x, y, z}; + return a; +} + +__device uint4 make_uint4(uint x, uint y, uint z, uint w) +{ + uint4 a = {x, y, z, w}; + return a; +} + +__device float2 make_float2(float x, float y) +{ + float2 a = {x, y}; + return a; +} + +__device float3 make_float3(float x, float y, float z) +{ + float3 a = {x, y, z}; + return a; +} + +__device float4 make_float4(float x, float y, float z, float w) +{ + float4 a = {x, y, z, w}; + return a; +} + +#endif + +CCL_NAMESPACE_END + +#endif /* __UTIL_TYPES_H__ */ + diff --git a/intern/cycles/util/util_vector.h b/intern/cycles/util/util_vector.h new file mode 100644 index 00000000000..fb872936e3f --- /dev/null +++ b/intern/cycles/util/util_vector.h @@ -0,0 +1,137 @@ +/* + * 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_VECTOR_H__ +#define __UTIL_VECTOR_H__ + +/* Vector */ + +#include + +CCL_NAMESPACE_BEGIN + +using std::vector; + +/* Array + * + * Simplified version of vector, serving two purposes: + * - somewhat faster in that it does not clear memory on resize/alloc, + * this was actually showing up in profiles quite significantly + * - if this is used, we are not tempted to use inefficient operations */ + +template +class array +{ +public: + array() + { + data = NULL; + datasize = 0; + } + + array(size_t newsize) + { + if(newsize == 0) { + data = NULL; + datasize = 0; + } + else { + data = new T[newsize]; + datasize = newsize; + } + } + + array(const array& from) + { + *this = from; + } + + array& operator=(const array& from) + { + if(from.datasize == 0) { + data = NULL; + datasize = 0; + } + else { + data = new T[from.datasize]; + memcpy(data, from.data, from.datasize*sizeof(T)); + datasize = from.datasize; + } + + return *this; + } + + array& operator=(const vector& from) + { + datasize = from.size(); + data = NULL; + + if(datasize > 0) { + data = new T[datasize]; + memcpy(data, &from[0], datasize*sizeof(T)); + } + + return *this; + } + + ~array() + { + delete [] data; + } + + void resize(size_t newsize) + { + if(newsize == 0) { + clear(); + } + else { + T *newdata = new T[newsize]; + memcpy(newdata, data, ((datasize < newsize)? datasize: newsize)*sizeof(T)); + delete [] data; + + data = newdata; + datasize = newsize; + } + } + + void clear() + { + delete [] data; + data = NULL; + datasize = 0; + } + + size_t size() const + { + return datasize; + } + + T& operator[](size_t i) const + { + return data[i]; + } + +protected: + T *data; + size_t datasize; +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_VECTOR_H__ */ + diff --git a/intern/cycles/util/util_view.cpp b/intern/cycles/util/util_view.cpp new file mode 100644 index 00000000000..75f0b92e705 --- /dev/null +++ b/intern/cycles/util/util_view.cpp @@ -0,0 +1,189 @@ +/* + * 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 +#include +#include + +#include "util_opengl.h" +#include "util_time.h" +#include "util_view.h" + +CCL_NAMESPACE_BEGIN + +/* structs */ + +struct View { + ViewInitFunc initf; + ViewExitFunc exitf; + ViewResizeFunc resize; + ViewDisplayFunc display; + ViewKeyboardFunc keyboard; + + bool first_display; + bool redraw; + + int width, height; +} V; + +/* public */ + +static void view_display_text(int x, int y, const char *text) +{ + const char *c; + + glRasterPos3f(x, y, 0); + + for(c=text; *c != '\0'; c++) + glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, *c); +} + +void view_display_info(const char *info) +{ + const int height = 20; + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glColor4f(0.1f, 0.1f, 0.1f, 0.8f); + glRectf(0.0f, V.height - height, V.width, V.height); + glDisable(GL_BLEND); + + glColor3f(0.5f, 0.5f, 0.5f); + + view_display_text(10, 7 + V.height - height, info); + + glColor3f(1.0f, 1.0f, 1.0f); +} + +static void view_display() +{ + if(V.first_display) { + if(V.initf) V.initf(); + if(V.exitf) atexit(V.exitf); + + V.first_display = false; + } + + glClearColor(0.05f, 0.05f, 0.05f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluOrtho2D(0, V.width, 0, V.height); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glRasterPos3f(0, 0, 0); + + if(V.display) + V.display(); + + glutSwapBuffers(); +} + +static void view_reshape(int width, int height) +{ + if(width <= 0 || height <= 0) + return; + + V.width = width; + V.height = height; + + glViewport(0, 0, width, height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + if(V.resize) + V.resize(width, height); +} + +static void view_keyboard(unsigned char key, int x, int y) +{ + if(V.keyboard) + V.keyboard(key); + + if(key == 'm') + printf("mouse %d %d\n", x, y); + if(key == 'q') { + if(V.exitf) V.exitf(); + exit(0); + } +} + +void view_idle() +{ + if(V.redraw) { + V.redraw = false; + glutPostRedisplay(); + } + + time_sleep(0.1f); +} + +void view_main_loop(const char *title, int width, int height, + ViewInitFunc initf, ViewExitFunc exitf, + ViewResizeFunc resize, ViewDisplayFunc display, + ViewKeyboardFunc keyboard) +{ + const char *name = "app"; + char *argv = (char*)name; + int argc = 1; + + memset(&V, 0, sizeof(V)); + V.width = width; + V.height = height; + V.first_display = true; + V.redraw = false; + V.initf = initf; + V.exitf = exitf; + V.resize = resize; + V.display = display; + V.keyboard = keyboard; + + glutInit(&argc, &argv); + glutInitWindowSize(width, height); + glutInitWindowPosition(0, 0); + glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH); + glutCreateWindow(title); + +#ifndef __APPLE__ + glewInit(); +#endif + + view_reshape(width, height); + + glutDisplayFunc(view_display); + glutIdleFunc(view_idle); + glutReshapeFunc(view_reshape); + glutKeyboardFunc(view_keyboard); + + glutMainLoop(); +} + +void view_redraw() +{ + V.redraw = true; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_view.h b/intern/cycles/util/util_view.h new file mode 100644 index 00000000000..c6805b5ce7c --- /dev/null +++ b/intern/cycles/util/util_view.h @@ -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. + */ + +#ifndef __UTIL_VIEW_H__ +#define __UTIL_VIEW_H__ + +/* Functions to display a simple OpenGL window using GLUT, simplified to the + * bare minimum we need to reduce boilerplate code in tests apps. */ + +CCL_NAMESPACE_BEGIN + +typedef void (*ViewInitFunc)(void); +typedef void (*ViewExitFunc)(void); +typedef void (*ViewResizeFunc)(int width, int height); +typedef void (*ViewDisplayFunc)(void); +typedef void (*ViewKeyboardFunc)(unsigned char key); + +void view_main_loop(const char *title, int width, int height, + ViewInitFunc initf, ViewExitFunc exitf, + ViewResizeFunc resize, ViewDisplayFunc display, + ViewKeyboardFunc keyboard); + +void view_display_info(const char *info); +void view_redraw(); + +CCL_NAMESPACE_END + +#endif /*__UTIL_VIEW_H__*/ + diff --git a/intern/cycles/util/util_xml.h b/intern/cycles/util/util_xml.h new file mode 100644 index 00000000000..1e6874b7d77 --- /dev/null +++ b/intern/cycles/util/util_xml.h @@ -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. + */ + +#ifndef __UTIL_XML_H__ +#define __UTIL_XML_H__ + +/* PugiXML from OpenImageIO is used for XML parsing. */ + +#include + +CCL_NAMESPACE_BEGIN + +OIIO_NAMESPACE_USING + +CCL_NAMESPACE_END + +#endif /* __UTIL_XML_H__ */ + -- cgit v1.2.3 From 4e235c184b534d31b651ac0449a1b55a000639fc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 27 Apr 2011 14:36:02 +0000 Subject: Blender modifications for Cycles integration. Some notes about code status: * The Blender modifications were fairly quickly put together, much more code polish and work is needed to get this to a state where it can be committed to trunk. Files created with this version may not work in future versions. * Only simple path tracing is supported currently, but we intend to provide finer control, and more options where it makes sense. * For GPU rendering, only CUDA works currently. The intention is to have the same kernel code compile for C++/OpenCL/CUDA, some more work is needed to get OpenCL functional. * There are two shading backends: GPU compatible and Open Shading Language. Unfortunately, OSL only runs on the CPU currently, getting this to run on the GPU would be a major undertaking, and is unlikely to be supported soon. Additionally, it's not possible yet to write custom OSL shaders. * There is some code for adaptive subdivision and displacement, but it's far from finished. The intention is to eventually have a nice unified bump and displacement system. * The code currently has a number of fairly heavy dependencies: Boost, OpenImageIO, GLEW, GLUT, and optionally OSL, Partio. This makes it difficult to compile, we'll try to eliminate some, it may take a while before it becomes easy to compile this. --- CMakeLists.txt | 2 + intern/cycles/device/device_network.cpp | 4 + intern/guardedalloc/MEM_guardedalloc.h | 10 +- .../scripts/startup/bl_ui/properties_particle.py | 29 +- release/scripts/startup/bl_ui/space_node.py | 17 +- source/blender/blenkernel/BKE_depsgraph.h | 4 + source/blender/blenkernel/BKE_node.h | 44 +- source/blender/blenkernel/BKE_object.h | 1 + source/blender/blenkernel/BKE_subsurf.h | 2 +- source/blender/blenkernel/BKE_world.h | 1 + source/blender/blenkernel/intern/anim_sys.c | 6 +- source/blender/blenkernel/intern/depsgraph.c | 105 +- source/blender/blenkernel/intern/material.c | 3 +- source/blender/blenkernel/intern/mesh.c | 1 - source/blender/blenkernel/intern/multires.c | 4 +- source/blender/blenkernel/intern/node.c | 253 +- source/blender/blenkernel/intern/object.c | 43 +- source/blender/blenkernel/intern/scene.c | 2 + source/blender/blenkernel/intern/shrinkwrap.c | 2 +- source/blender/blenkernel/intern/subsurf_ccg.c | 11 +- source/blender/blenkernel/intern/world.c | 43 +- source/blender/blenloader/intern/readfile.c | 56 +- source/blender/blenloader/intern/writefile.c | 12 + source/blender/editors/datafiles/bfont.ttf.c | 11885 ++++++----- source/blender/editors/datafiles/bmonofont.ttf.c | 13316 ++++--------- source/blender/editors/datafiles/startup.blend.c | 19848 ++++++++++++------- source/blender/editors/include/ED_node.h | 11 +- source/blender/editors/include/ED_render.h | 2 + source/blender/editors/include/UI_interface.h | 6 + source/blender/editors/interface/CMakeLists.txt | 1 + .../blender/editors/interface/interface_handlers.c | 8 +- source/blender/editors/interface/interface_icons.c | 1 + .../blender/editors/interface/interface_intern.h | 1 + .../blender/editors/interface/interface_layout.c | 6 +- source/blender/editors/interface/interface_node.c | 567 + source/blender/editors/interface/interface_panel.c | 23 +- .../blender/editors/interface/interface_widgets.c | 46 +- source/blender/editors/interface/view2d.c | 7 +- source/blender/editors/object/object_add.c | 13 +- source/blender/editors/render/render_preview.c | 83 +- source/blender/editors/render/render_shading.c | 83 +- source/blender/editors/screen/area.c | 34 +- .../blender/editors/space_buttons/buttons_header.c | 32 +- .../blender/editors/space_buttons/buttons_intern.h | 3 - .../blender/editors/space_buttons/space_buttons.c | 2 +- source/blender/editors/space_node/CMakeLists.txt | 1 + source/blender/editors/space_node/drawnode.c | 138 +- source/blender/editors/space_node/node_draw.c | 35 +- source/blender/editors/space_node/node_edit.c | 132 +- source/blender/editors/space_node/node_header.c | 4 +- source/blender/editors/space_node/node_intern.h | 3 + source/blender/editors/space_node/node_layout.c | 128 + source/blender/editors/space_node/node_ops.c | 3 +- source/blender/editors/space_node/space_node.c | 22 +- source/blender/editors/space_view3d/drawobject.c | 4 +- source/blender/editors/space_view3d/space_view3d.c | 21 +- source/blender/editors/space_view3d/view3d_draw.c | 38 + source/blender/makesdna/DNA_ID.h | 1 + source/blender/makesdna/DNA_image_types.h | 1 - source/blender/makesdna/DNA_lamp_types.h | 12 +- source/blender/makesdna/DNA_node_types.h | 145 +- source/blender/makesdna/DNA_object_types.h | 1 + source/blender/makesdna/DNA_space_types.h | 6 + source/blender/makesdna/DNA_view3d_types.h | 2 + source/blender/makesdna/DNA_world_types.h | 6 +- source/blender/makesrna/RNA_access.h | 1494 +- source/blender/makesrna/RNA_define.h | 2 +- source/blender/makesrna/RNA_types.h | 7 + source/blender/makesrna/intern/CMakeLists.txt | 1 + source/blender/makesrna/intern/makesrna.c | 218 +- source/blender/makesrna/intern/rna_ID.c | 12 +- source/blender/makesrna/intern/rna_access.c | 19 +- source/blender/makesrna/intern/rna_animation.c | 2 +- source/blender/makesrna/intern/rna_define.c | 3 +- source/blender/makesrna/intern/rna_internal.h | 10 +- .../blender/makesrna/intern/rna_internal_types.h | 1 + source/blender/makesrna/intern/rna_lamp.c | 20 + source/blender/makesrna/intern/rna_main_api.c | 2 +- source/blender/makesrna/intern/rna_material.c | 2 +- source/blender/makesrna/intern/rna_nodetree.c | 375 +- .../blender/makesrna/intern/rna_nodetree_types.h | 37 +- source/blender/makesrna/intern/rna_object_api.c | 8 +- source/blender/makesrna/intern/rna_render.c | 79 +- source/blender/makesrna/intern/rna_scene.c | 9 +- source/blender/makesrna/intern/rna_space.c | 52 +- source/blender/makesrna/intern/rna_ui.c | 6 +- source/blender/makesrna/intern/rna_ui_api.c | 21 + source/blender/makesrna/intern/rna_wm.c | 9 +- source/blender/makesrna/intern/rna_world.c | 21 + source/blender/modifiers/intern/MOD_subsurf.c | 8 +- source/blender/nodes/CMakeLists.txt | 32 + source/blender/nodes/SHD_node.h | 57 +- .../nodes/intern/SHD_nodes/SHD_add_closure.c | 64 + .../blender/nodes/intern/SHD_nodes/SHD_attribute.c | 59 + .../nodes/intern/SHD_nodes/SHD_background.c | 65 + .../nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c | 65 + .../nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c | 63 + .../nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 83 + .../nodes/intern/SHD_nodes/SHD_bsdf_glossy.c | 65 + .../nodes/intern/SHD_nodes/SHD_bsdf_translucent.c | 63 + .../nodes/intern/SHD_nodes/SHD_bsdf_transparent.c | 63 + .../nodes/intern/SHD_nodes/SHD_bsdf_velvet.c | 65 + .../blender/nodes/intern/SHD_nodes/SHD_emission.c | 64 + .../blender/nodes/intern/SHD_nodes/SHD_fresnel.c | 62 + source/blender/nodes/intern/SHD_nodes/SHD_geom.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_geometry.c | 64 + .../blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c | 2 - .../nodes/intern/SHD_nodes/SHD_light_path.c | 63 + source/blender/nodes/intern/SHD_nodes/SHD_math.c | 4 +- .../nodes/intern/SHD_nodes/SHD_mix_closure.c | 65 + .../nodes/intern/SHD_nodes/SHD_output_lamp.c | 58 + .../nodes/intern/SHD_nodes/SHD_output_material.c | 60 + .../nodes/intern/SHD_nodes/SHD_output_world.c | 59 + .../blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 72 + .../nodes/intern/SHD_nodes/SHD_tex_clouds.c | 75 + .../blender/nodes/intern/SHD_nodes/SHD_tex_coord.c | 63 + .../nodes/intern/SHD_nodes/SHD_tex_distnoise.c | 74 + .../nodes/intern/SHD_nodes/SHD_tex_environment.c | 70 + .../blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 70 + .../blender/nodes/intern/SHD_nodes/SHD_tex_magic.c | 72 + .../nodes/intern/SHD_nodes/SHD_tex_marble.c | 77 + .../nodes/intern/SHD_nodes/SHD_tex_musgrave.c | 78 + .../blender/nodes/intern/SHD_nodes/SHD_tex_noise.c | 64 + .../blender/nodes/intern/SHD_nodes/SHD_tex_sky.c | 74 + .../nodes/intern/SHD_nodes/SHD_tex_stucci.c | 75 + .../nodes/intern/SHD_nodes/SHD_tex_voronoi.c | 79 + .../blender/nodes/intern/SHD_nodes/SHD_tex_wood.c | 76 + source/blender/python/intern/bpy_rna.c | 13 +- source/blender/render/CMakeLists.txt | 9 +- source/blender/render/SConscript | 7 + source/blender/render/extern/include/RE_pipeline.h | 18 +- source/blender/render/intern/source/pipeline.c | 137 +- source/blender/windowmanager/intern/wm_draw.c | 41 +- .../blender/windowmanager/intern/wm_event_system.c | 6 +- source/creator/CMakeLists.txt | 13 + 135 files changed, 28078 insertions(+), 24186 deletions(-) create mode 100644 source/blender/editors/interface/interface_node.c create mode 100644 source/blender/editors/space_node/node_layout.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_attribute.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_background.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_emission.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_geometry.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_light_path.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_output_material.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_output_world.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 3711227fdef..e24ce2990f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,6 +90,7 @@ enable_testing() set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE ) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE ) +set(INCLUDE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/include CACHE INTERNAL "" FORCE ) #----------------------------------------------------------------------------- # Load some macros. @@ -170,6 +171,7 @@ if(UNIX AND NOT APPLE) option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON) endif() option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON) +option(WITH_API_INSTALL "Copy API header files into the blender install folder" ON) # Debug option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF) diff --git a/intern/cycles/device/device_network.cpp b/intern/cycles/device/device_network.cpp index eb101cdfba4..0feba34f713 100644 --- a/intern/cycles/device/device_network.cpp +++ b/intern/cycles/device/device_network.cpp @@ -24,6 +24,8 @@ CCL_NAMESPACE_BEGIN +#ifdef WITH_NETWORK + class NetworkDevice : public Device { public: @@ -378,5 +380,7 @@ void Device::server_run() } } +#endif + CCL_NAMESPACE_END diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index f96a49b9f4a..1bc7f7c59dd 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -61,6 +61,14 @@ #ifndef MEM_MALLOCN_H #define MEM_MALLOCN_H +#ifndef LIBEXPORT +#ifdef _WIN32 +#define LIBEXPORT __declspec(dllexport) +#else +#define LIBEXPORT +#endif +#endif + #include /* needed for FILE* */ #include "MEM_sys_types.h" /* needed for uintptr_t */ @@ -95,7 +103,7 @@ extern "C" { /** * Duplicates a block of memory, and returns a pointer to the * newly allocated block. */ - void *MEM_dupallocN(void *vmemh) WARN_UNUSED; + LIBEXPORT void *MEM_dupallocN(void *vmemh) WARN_UNUSED; /** * Reallocates a block of memory, and returns pointer to the newly diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index 5037308c6fd..1876b86fcc9 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -51,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 == False def particle_get_settings(context): @@ -75,12 +75,11 @@ class ParticleButtonsPanel(): class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel): bl_label = "" bl_options = {'HIDE_HEADER'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): engine = context.scene.render.engine - return (context.particle_system or context.object or context.space_data.pin_id) and (engine in cls.COMPAT_ENGINES) + return (context.particle_system or context.object or context.space_data.pin_id) def draw(self, context): layout = self.layout @@ -180,7 +179,6 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Emission" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -250,7 +248,6 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Hair dynamics" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -260,7 +257,7 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel): return False if psys.settings is None: return False - return psys.settings.type == 'HAIR' and (engine in cls.COMPAT_ENGINES) + return psys.settings.type == 'HAIR' def draw_header(self, context): #cloth = context.cloth.collision_settings @@ -306,7 +303,6 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Cache" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -321,7 +317,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel): phystype = psys.settings.physics_type if phystype == 'NO' or phystype == 'KEYED': return False - return (psys.settings.type in {'EMITTER', 'REACTOR'} or (psys.settings.type == 'HAIR' and (psys.use_hair_dynamics or psys.point_cache.is_baked))) and engine in cls.COMPAT_ENGINES + return (psys.settings.type in {'EMITTER', 'REACTOR'} or (psys.settings.type == 'HAIR' and (psys.use_hair_dynamics or psys.point_cache.is_baked))) def draw(self, context): psys = context.particle_system @@ -331,7 +327,6 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Velocity" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -381,7 +376,6 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Rotation" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -430,7 +424,6 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Physics" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -645,7 +638,6 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Boid Brain" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -657,7 +649,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel): return False if psys != None and psys.point_cache.use_external: return False - return settings.physics_type == 'BOIDS' and engine in cls.COMPAT_ENGINES + return settings.physics_type == 'BOIDS' def draw(self, context): layout = self.layout @@ -746,7 +738,6 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Render" - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -755,7 +746,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel): if settings is None: return False - return engine in cls.COMPAT_ENGINES + return True def draw(self, context): layout = self.layout @@ -923,7 +914,6 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Display" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -931,7 +921,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel): engine = context.scene.render.engine if settings is None: return False - return engine in cls.COMPAT_ENGINES + return True def draw(self, context): layout = self.layout @@ -985,7 +975,6 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Children" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1085,7 +1074,6 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Field Weights" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1106,7 +1094,6 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Force Field Settings" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} def draw(self, context): layout = self.layout @@ -1140,7 +1127,6 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel): bl_label = "Vertexgroups" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1209,7 +1195,6 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel): class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, bpy.types.Panel): - COMPAT_ENGINES = {'BLENDER_RENDER'} _context_path = "particle_system.settings" _property_type = bpy.types.ParticleSettings diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index fed1cc49c4c..29fe32119ba 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -41,13 +41,16 @@ class NODE_HT_header(bpy.types.Header): row = layout.row() row.prop(snode, "tree_type", text="", expand=True) - if snode.tree_type == 'MATERIAL': - ob = snode.id_from - snode_id = snode.id - if ob: - layout.template_ID(ob, "active_material", new="material.new") - if snode_id: - layout.prop(snode_id, "use_nodes") + if snode.tree_type == 'SHADER': + row.prop(snode, "shader_type", text="", expand=True) + + if snode.shader_type == 'OBJECT': + ob = snode.id_from + snode_id = snode.id + if ob: + layout.template_ID(ob, "active_material", new="material.new") + if snode_id: + layout.prop(snode_id, "use_nodes") elif snode.tree_type == 'TEXTURE': row.prop(snode, "texture_type", text="", expand=True) diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h index 14251fb1762..9b2c1d117f5 100644 --- a/source/blender/blenkernel/BKE_depsgraph.h +++ b/source/blender/blenkernel/BKE_depsgraph.h @@ -121,6 +121,10 @@ void DAG_ids_flush_update(struct Main *bmain, int time); void DAG_id_tag_update(struct ID *id, short flag); /* flush all tagged updates */ void DAG_ids_flush_tagged(struct Main *bmain); + /* clear ID recalc flags */ +void DAG_ids_clear_recalc(struct Main *bmain); + /* test if any of this id type is tagged for update */ +int DAG_id_type_tagged(struct Main *bmain, short idtype); /* (re)-create dependency graph for armature pose */ void DAG_pose_sort(struct Object *ob); diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index a126f405d09..a2cfc037f44 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -68,6 +68,7 @@ typedef struct bNodeSocketType { const char *name; float val1, val2, val3, val4; /* default alloc value for inputs */ float min, max; /* default range for inputs */ + int flag; /* after this line is used internal only */ struct bNodeSocket *sock; /* used during verify_types */ @@ -124,8 +125,12 @@ typedef struct bNodeType { #define NODE_CLASS_MATTE 9 #define NODE_CLASS_DISTORT 10 #define NODE_CLASS_OP_DYNAMIC 11 -#define NODE_CLASS_PATTERN 12 -#define NODE_CLASS_TEXTURE 13 +#define NODE_CLASS_PATTERN 12 +#define NODE_CLASS_TEXTURE 13 +#define NODE_CLASS_CLOSURE 14 + +/* bNodeSocketType flag */ +#define SOCK_NO_VALUE 1 /* enum values for input/output */ #define SOCK_IN 1 @@ -256,7 +261,7 @@ struct ShadeResult; #define SH_NODE_RGBTOBW 105 #define SH_NODE_TEXTURE 106 #define SH_NODE_NORMAL 107 -#define SH_NODE_GEOMETRY 108 +#define SH_NODE_GEOM 108 #define SH_NODE_MAPPING 109 #define SH_NODE_CURVE_VEC 110 #define SH_NODE_CURVE_RGB 111 @@ -271,6 +276,39 @@ struct ShadeResult; #define SH_NODE_HUE_SAT 122 #define NODE_DYNAMIC 123 +#define SH_NODE_OUTPUT_MATERIAL 124 +#define SH_NODE_OUTPUT_WORLD 125 +#define SH_NODE_OUTPUT_LAMP 126 +#define SH_NODE_FRESNEL 127 +#define SH_NODE_MIX_CLOSURE 128 +#define SH_NODE_ATTRIBUTE 129 +#define SH_NODE_BACKGROUND 130 +#define SH_NODE_BSDF_ANISOTROPIC 131 +#define SH_NODE_BSDF_DIFFUSE 132 +#define SH_NODE_BSDF_GLOSSY 133 +#define SH_NODE_BSDF_GLASS 134 +#define SH_NODE_BSDF_TRANSLUCENT 137 +#define SH_NODE_BSDF_TRANSPARENT 138 +#define SH_NODE_BSDF_VELVET 139 +#define SH_NODE_EMISSION 140 +#define SH_NODE_GEOMETRY 141 +#define SH_NODE_LIGHT_PATH 142 +#define SH_NODE_TEX_IMAGE 143 +#define SH_NODE_TEX_NOISE 144 +#define SH_NODE_TEX_SKY 145 +#define SH_NODE_TEX_BLEND 146 +#define SH_NODE_TEX_VORONOI 147 +#define SH_NODE_TEX_MAGIC 148 +#define SH_NODE_TEX_MARBLE 149 +#define SH_NODE_TEX_CLOUDS 150 +#define SH_NODE_TEX_WOOD 151 +#define SH_NODE_TEX_MUSGRAVE 152 +#define SH_NODE_TEX_STUCCI 153 +#define SH_NODE_TEX_DISTNOISE 154 +#define SH_NODE_TEX_COORD 155 +#define SH_NODE_ADD_CLOSURE 156 +#define SH_NODE_TEX_ENVIRONMENT 157 + /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 #define SH_NODE_MAT_SPEC 2 diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 3a98f892bd8..a6b5c04b5c3 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -83,6 +83,7 @@ float dof_camera(struct Object *ob); void *add_lamp(const char *name); struct Lamp *copy_lamp(struct Lamp *la); +struct Lamp *localize_lamp(struct Lamp *la); void make_local_lamp(struct Lamp *la); void free_camera(struct Camera *ca); void free_lamp(struct Lamp *la); diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h index b82db853d37..a400c1e27b9 100644 --- a/source/blender/blenkernel/BKE_subsurf.h +++ b/source/blender/blenkernel/BKE_subsurf.h @@ -54,7 +54,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived( struct DerivedMesh *dm, struct SubsurfModifierData *smd, int useRenderParams, float (*vertCos)[3], - int isFinalCalc, int editMode); + int isFinalCalc, int forEditMode, int inEditMode); void subsurf_calculate_limit_positions(struct Mesh *me, float (*positions_r)[3]); diff --git a/source/blender/blenkernel/BKE_world.h b/source/blender/blenkernel/BKE_world.h index 30780b87085..6c8d1ba7945 100644 --- a/source/blender/blenkernel/BKE_world.h +++ b/source/blender/blenkernel/BKE_world.h @@ -40,6 +40,7 @@ struct World; void free_world(struct World *sc); struct World *add_world(const char *name); struct World *copy_world(struct World *wrld); +struct World *localize_world(struct World *wrld); void make_local_world(struct World *wrld); #endif diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 5198172c205..f17d362f237 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -45,9 +45,11 @@ #include "BLI_utildefines.h" #include "DNA_anim_types.h" +#include "DNA_lamp_types.h" #include "DNA_material_types.h" #include "DNA_scene_types.h" #include "DNA_texture_types.h" +#include "DNA_world_types.h" #include "BKE_animsys.h" #include "BKE_action.h" @@ -2198,7 +2200,7 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) EVAL_ANIM_NODETREE_IDS(main->tex.first, Tex, ADT_RECALC_ANIM); /* lamps */ - EVAL_ANIM_IDS(main->lamp.first, ADT_RECALC_ANIM); + EVAL_ANIM_NODETREE_IDS(main->lamp.first, Lamp, ADT_RECALC_ANIM); /* materials */ EVAL_ANIM_NODETREE_IDS(main->mat.first, Material, ADT_RECALC_ANIM); @@ -2235,7 +2237,7 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) EVAL_ANIM_IDS(main->object.first, 0); /* worlds */ - EVAL_ANIM_IDS(main->world.first, ADT_RECALC_ANIM); + EVAL_ANIM_NODETREE_IDS(main->world.first, World, ADT_RECALC_ANIM); /* scenes */ EVAL_ANIM_NODETREE_IDS(main->scene.first, Scene, ADT_RECALC_ANIM); diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 94fbcd9ccb4..96391a36b34 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -1748,9 +1748,22 @@ void DAG_scene_sort(Main *bmain, Scene *sce) sce->recalc |= SCE_PRV_CHANGED; /* test for 3d preview */ } +static void lib_id_recalc_tag(Main *bmain, ID *id) +{ + id->flag |= LIB_ID_RECALC; + bmain->id_tag_update[id->name[0]] = 1; +} + +static void lib_id_recalc_data_tag(Main *bmain, ID *id) +{ + id->flag |= LIB_ID_RECALC_DATA; + bmain->id_tag_update[id->name[0]] = 1; +} + /* node was checked to have lasttime != curtime and is if type ID_OB */ static void flush_update_node(DagNode *node, unsigned int layer, int curtime) { + Main *bmain= G.main; DagAdjList *itA; Object *ob, *obc; int oldflag, changed=0; @@ -1776,20 +1789,24 @@ static void flush_update_node(DagNode *node, unsigned int layer, int curtime) if(itA->type & DAG_RL_OB_OB) { //printf("ob %s changes ob %s\n", ob->id.name, obc->id.name); obc->recalc |= OB_RECALC_OB; + lib_id_recalc_tag(bmain, &obc->id); } if(itA->type & DAG_RL_OB_DATA) { //printf("ob %s changes obdata %s\n", ob->id.name, obc->id.name); obc->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &obc->id); } } if(ob->recalc & OB_RECALC_DATA) { if(itA->type & DAG_RL_DATA_OB) { //printf("obdata %s changes ob %s\n", ob->id.name, obc->id.name); obc->recalc |= OB_RECALC_OB; + lib_id_recalc_tag(bmain, &obc->id); } if(itA->type & DAG_RL_DATA_DATA) { //printf("obdata %s changes obdata %s\n", ob->id.name, obc->id.name); obc->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &obc->id); } } if(oldflag!=obc->recalc) changed= 1; @@ -1820,6 +1837,7 @@ static void flush_update_node(DagNode *node, unsigned int layer, int curtime) if(itA->type & (DAG_RL_OB_DATA|DAG_RL_DATA_DATA)) { // printf("parent %s changes ob %s\n", ob->id.name, obc->id.name); obc->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &obc->id); } } } @@ -1859,6 +1877,7 @@ static unsigned int flush_layer_node(Scene *sce, DagNode *node, int curtime) /* node was checked to have lasttime != curtime , and is of type ID_OB */ static void flush_pointcache_reset(Scene *scene, DagNode *node, int curtime, int reset) { + Main *bmain= G.main; DagAdjList *itA; Object *ob; @@ -1870,8 +1889,10 @@ static void flush_pointcache_reset(Scene *scene, DagNode *node, int curtime, int ob= (Object*)(itA->node->ob); if(reset || (ob->recalc & OB_RECALC_ALL)) { - if(BKE_ptcache_object_reset(scene, ob, PTCACHE_RESET_DEPSGRAPH)) + if(BKE_ptcache_object_reset(scene, ob, PTCACHE_RESET_DEPSGRAPH)) { ob->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &ob->id); + } flush_pointcache_reset(scene, itA->node, curtime, 1); } @@ -1986,8 +2007,10 @@ void DAG_scene_flush_update(Main *bmain, Scene *sce, unsigned int lay, const sho ob= (Object*)(itA->node->ob); if(ob->recalc & OB_RECALC_ALL) { - if(BKE_ptcache_object_reset(sce, ob, PTCACHE_RESET_DEPSGRAPH)) + if(BKE_ptcache_object_reset(sce, ob, PTCACHE_RESET_DEPSGRAPH)) { ob->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &ob->id); + } flush_pointcache_reset(sce, itA->node, lasttime, 1); } @@ -2162,6 +2185,12 @@ static void dag_object_time_update_flags(Object *ob) } } } + + if(ob->recalc & OB_RECALC_OB) + lib_id_recalc_tag(G.main, &ob->id); + if(ob->recalc & OB_RECALC_DATA) + lib_id_recalc_data_tag(G.main, &ob->id); + } /* flag all objects that need recalc, for changes in time for example */ /* do_time: make this optional because undo resets objects to their animated locations without this */ @@ -2320,6 +2349,9 @@ void DAG_on_visible_update(Main *bmain, const short do_time) DAG_scene_update_flags(bmain, scene, lay, do_time); scene->lay_updated |= lay; } + + /* hack to get objects updating on layer changes */ + bmain->id_tag_update['O'] = 1; } static void dag_id_flush_update__isDependentTexture(void *userData, Object *UNUSED(ob), ID **idpoin) @@ -2366,6 +2398,7 @@ static void dag_id_flush_update(Scene *sce, ID *id) for(obt=bmain->object.first; obt; obt= obt->id.next) { if(!(ob && obt == ob) && obt->data == id) { obt->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &obt->id); BKE_ptcache_object_reset(sce, obt, PTCACHE_RESET_DEPSGRAPH); } } @@ -2379,8 +2412,10 @@ static void dag_id_flush_update(Scene *sce, ID *id) data.is_dependent= 0; modifiers_foreachIDLink(obt, dag_id_flush_update__isDependentTexture, &data); - if (data.is_dependent) + if (data.is_dependent) { obt->recalc |= OB_RECALC_DATA; + lib_id_recalc_data_tag(bmain, &obt->id); + } /* particle settings can use the texture as well */ if(obt->particlesystem.first) { @@ -2393,7 +2428,8 @@ static void dag_id_flush_update(Scene *sce, ID *id) mtex = *mtexp; if(mtex && mtex->tex == (Tex*)id) { obt->recalc |= OB_RECALC_DATA; - + lib_id_recalc_data_tag(bmain, &obt->id); + if(mtex->mapto & PAMAP_INIT) psys->recalc |= PSYS_RECALC_RESET; if(mtex->mapto & PAMAP_CHILD) @@ -2413,6 +2449,8 @@ static void dag_id_flush_update(Scene *sce, ID *id) Key *key= ob_get_key(obt); if(!(ob && obt == ob) && ((ID *)key == id)) { obt->flag |= (OB_RECALC_OB|OB_RECALC_DATA); + lib_id_recalc_tag(bmain, &obt->id); + lib_id_recalc_data_tag(bmain, &obt->id); BKE_ptcache_object_reset(sce, obt, PTCACHE_RESET_DEPSGRAPH); } } @@ -2437,7 +2475,7 @@ void DAG_ids_flush_tagged(Main *bmain) ListBase *lbarray[MAX_LIBARRAY]; Scene *sce; unsigned int lay; - int a, have_tag = 0; + int a, do_flush = 0; dag_current_scene_layers(bmain, &sce, &lay); @@ -2455,23 +2493,47 @@ void DAG_ids_flush_tagged(Main *bmain) looping over all ID's in case there are no tags */ if(id && bmain->id_tag_update[id->name[0]]) { for(; id; id=id->next) { - if(id->flag & LIB_ID_RECALC) { + if(id->flag & (LIB_ID_RECALC|LIB_ID_RECALC_DATA)) { dag_id_flush_update(sce, id); - id->flag &= ~LIB_ID_RECALC; + do_flush = 1; } } - - have_tag = 1; } } - if(have_tag) { - /* clear tags */ - memset(bmain->id_tag_update, 0, sizeof(bmain->id_tag_update)); - - /* flush changes to other objects */ + /* flush changes to other objects */ + if(do_flush) DAG_scene_flush_update(bmain, sce, lay, 0); +} + +void DAG_ids_clear_recalc(Main *bmain) +{ + ListBase *lbarray[MAX_LIBARRAY]; + int a, first_tag = 1; + + /* loop over all ID types */ + a = set_listbasepointers(bmain, lbarray); + + while(a--) { + ListBase *lb = lbarray[a]; + ID *id = lb->first; + + /* we tag based on first ID type character to avoid + looping over all ID's in case there are no tags */ + if(id && bmain->id_tag_update[id->name[0]]) { + /* do editors update */ + if(first_tag) { + dag_editors_update(bmain, NULL); + first_tag = 0; + } + + for(; id; id=id->next) + if(id->flag & (LIB_ID_RECALC|LIB_ID_RECALC_DATA)) + id->flag &= ~(LIB_ID_RECALC|LIB_ID_RECALC_DATA); + } } + + memset(bmain->id_tag_update, 0, sizeof(bmain->id_tag_update)); } void DAG_id_tag_update(ID *id, short flag) @@ -2481,8 +2543,14 @@ void DAG_id_tag_update(ID *id, short flag) if(id==NULL) return; /* tag ID for update */ - id->flag |= LIB_ID_RECALC; - bmain->id_tag_update[id->name[0]] = 1; + if(flag) { + if(flag & OB_RECALC_OB) + lib_id_recalc_tag(bmain, id); + if(flag & (OB_RECALC_DATA|PSYS_RECALC)) + lib_id_recalc_data_tag(bmain, id); + } + else + lib_id_recalc_tag(bmain, id); /* flag is for objects and particle systems */ if(flag) { @@ -2514,6 +2582,11 @@ void DAG_id_tag_update(ID *id, short flag) } } +int DAG_id_type_tagged(Main *bmain, short idtype) +{ + return bmain->id_tag_update[((char*)&idtype)[0]]; +} + #if 0 // UNUSED /* recursively descends tree, each node only checked once */ /* node is checked to be of type object */ diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index fd58dc2dfc0..334f018efc9 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -258,9 +258,8 @@ Material *localize_material(Material *ma) man->preview = NULL; - if(ma->nodetree) { + if(ma->nodetree) man->nodetree= ntreeLocalize(ma->nodetree); - } man->gpumaterial.first= man->gpumaterial.last= NULL; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 45a60b842a7..4459b8fb423 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -199,7 +199,6 @@ Mesh *add_mesh(const char *name) me->smoothresh= 30; me->texflag= AUTOSPACE; me->flag= ME_TWOSIDED; - me->bb= unit_boundbox(); me->drawflag= ME_DRAWEDGES|ME_DRAWFACES|ME_DRAWCREASES; return me; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 5706a3997e6..637f5da45af 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -465,7 +465,7 @@ static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lv return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0); } -static DerivedMesh *subsurf_dm_create_local(Object *UNUSED(ob), DerivedMesh *dm, int lvl, int simple, int optimal) +static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal) { SubsurfModifierData smd= {{NULL}}; @@ -476,7 +476,7 @@ static DerivedMesh *subsurf_dm_create_local(Object *UNUSED(ob), DerivedMesh *dm, if(optimal) smd.flags |= eSubsurfModifierFlag_ControlEdges; - return subsurf_make_derived_from_derived(dm, &smd, 0, NULL, 0, 0); + return subsurf_make_derived_from_derived(dm, &smd, 0, NULL, 0, 0, (ob->mode & OB_MODE_EDIT)); } diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 4b40c07b7a9..9f9af8e4c6f 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -45,6 +45,10 @@ #include "DNA_anim_types.h" #include "DNA_action_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_node_types.h" +#include "DNA_world_types.h" #include "DNA_node_types.h" #include "BLI_listbase.h" @@ -517,6 +521,9 @@ void nodeGroupVerify(bNodeTree *ngroup) if(ngroup->type==NTREE_SHADER) { Material *ma; + Lamp *la; + World *wrld; + for(ma= G.main->mat.first; ma; ma= ma->id.next) { if(ma->nodetree) { bNode *node; @@ -525,6 +532,25 @@ void nodeGroupVerify(bNodeTree *ngroup) nodeVerifyType(ma->nodetree, node); } } + + for(la= G.main->lamp.first; la; la= la->id.next) { + if(la->nodetree) { + bNode *node; + for(node= la->nodetree->nodes.first; node; node= node->next) + if(node->id == (ID *)ngroup) + nodeVerifyType(la->nodetree, node); + } + } + + for(wrld= G.main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) { + bNode *node; + for(node= wrld->nodetree->nodes.first; node; node= node->next) + if(node->id == (ID *)ngroup) + nodeVerifyType(wrld->nodetree, node); + } + } + } else if(ngroup->type==NTREE_COMPOSIT) { Scene *sce; @@ -550,6 +576,28 @@ void nodeGroupVerify(bNodeTree *ngroup) } } +static void nodeGroupTagUseFlags(bNodeTree *ntree, bNodeTree *ngroup) +{ + bNode *node; + bNodeSocket *sock; + + if(!ntree) + return; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->id==(ID *)ngroup) { + for(sock= node->inputs.first; sock; sock= sock->next) + if(sock->link) + if(sock->groupsock) + sock->groupsock->flag |= SOCK_IN_USE; + for(sock= node->outputs.first; sock; sock= sock->next) + if(nodeCountSocketLinks(ntree, sock)) + if(sock->groupsock) + sock->groupsock->flag |= SOCK_IN_USE; + } + } +} + /* also to check all users of groups. Now only used in editor for hide/unhide */ /* should become callbackable? */ void nodeGroupSocketUseFlags(bNodeTree *ngroup) @@ -568,62 +616,26 @@ void nodeGroupSocketUseFlags(bNodeTree *ngroup) /* tag all thats in use */ if(ngroup->type==NTREE_SHADER) { Material *ma; - for(ma= G.main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) { - for(node= ma->nodetree->nodes.first; node; node= node->next) { - if(node->id==&ngroup->id) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(ma->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } + Lamp *la; + World *wrld; + + for(ma= G.main->mat.first; ma; ma= ma->id.next) + nodeGroupTagUseFlags(ma->nodetree, ngroup); + for(la= G.main->lamp.first; la; la= la->id.next) + nodeGroupTagUseFlags(la->nodetree, ngroup); + for(wrld= G.main->world.first; wrld; wrld= wrld->id.next) + nodeGroupTagUseFlags(wrld->nodetree, ngroup); } else if(ngroup->type==NTREE_COMPOSIT) { Scene *sce; - for(sce= G.main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) { - for(node= sce->nodetree->nodes.first; node; node= node->next) { - if(node->id==(ID *)ngroup) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(sce->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } + for(sce= G.main->scene.first; sce; sce= sce->id.next) + nodeGroupTagUseFlags(sce->nodetree, ngroup); } else if(ngroup->type==NTREE_TEXTURE) { Tex *tx; - for(tx= G.main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) { - for(node= tx->nodetree->nodes.first; node; node= node->next) { - if(node->id==(ID *)ngroup) { - for(sock= node->inputs.first; sock; sock= sock->next) - if(sock->link) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - for(sock= node->outputs.first; sock; sock= sock->next) - if(nodeCountSocketLinks(tx->nodetree, sock)) - if(sock->groupsock) - sock->groupsock->flag |= SOCK_IN_USE; - } - } - } - } + for(tx= G.main->tex.first; tx; tx= tx->id.next) + nodeGroupTagUseFlags(tx->nodetree, ngroup); } - } /* finds a node based on its name */ bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name) @@ -1478,6 +1490,9 @@ void ntreeMakeLocal(bNodeTree *ntree) /* now check users of groups... again typedepending, callback... */ if(ntree->type==NTREE_SHADER) { Material *ma; + Lamp *la; + World *wrld; + for(ma= G.main->mat.first; ma; ma= ma->id.next) { if(ma->nodetree) { bNode *node; @@ -1491,6 +1506,48 @@ void ntreeMakeLocal(bNodeTree *ntree) } } } + + for(ma= G.main->mat.first; ma; ma= ma->id.next) { + if(ma->nodetree) { + bNode *node; + + /* find if group is in tree */ + for(node= ma->nodetree->nodes.first; node; node= node->next) { + if(node->id == (ID *)ntree) { + if(ma->id.lib) lib= 1; + else local= 1; + } + } + } + } + + for(la= G.main->lamp.first; la; la= la->id.next) { + if(la->nodetree) { + bNode *node; + + /* find if group is in tree */ + for(node= la->nodetree->nodes.first; node; node= node->next) { + if(node->id == (ID *)ntree) { + if(la->id.lib) lib= 1; + else local= 1; + } + } + } + } + + for(wrld= G.main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) { + bNode *node; + + /* find if group is in tree */ + for(node= wrld->nodetree->nodes.first; node; node= node->next) { + if(node->id == (ID *)ntree) { + if(wrld->id.lib) lib= 1; + else local= 1; + } + } + } + } } else if(ntree->type==NTREE_COMPOSIT) { Scene *sce; @@ -1539,6 +1596,9 @@ void ntreeMakeLocal(bNodeTree *ntree) if(ntree->type==NTREE_SHADER) { Material *ma; + Lamp *la; + World *wrld; + for(ma= G.main->mat.first; ma; ma= ma->id.next) { if(ma->nodetree) { bNode *node; @@ -1555,6 +1615,40 @@ void ntreeMakeLocal(bNodeTree *ntree) } } } + + for(la= G.main->lamp.first; la; la= la->id.next) { + if(la->nodetree) { + bNode *node; + + /* find if group is in tree */ + for(node= la->nodetree->nodes.first; node; node= node->next) { + if(node->id == (ID *)ntree) { + if(la->id.lib==NULL) { + node->id= &newtree->id; + newtree->id.us++; + ntree->id.us--; + } + } + } + } + } + + for(wrld= G.main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) { + bNode *node; + + /* find if group is in tree */ + for(node= wrld->nodetree->nodes.first; node; node= node->next) { + if(node->id == (ID *)ntree) { + if(wrld->id.lib==NULL) { + node->id= &newtree->id; + newtree->id.us++; + ntree->id.us--; + } + } + } + } + } } else if(ntree->type==NTREE_COMPOSIT) { Scene *sce; @@ -3504,30 +3598,49 @@ static void registerCompositNodes(ListBase *ntypelist) static void registerShaderNodes(ListBase *ntypelist) { register_node_type_group(ntypelist); - - register_node_type_sh_output(ntypelist); + + register_node_type_sh_value(ntypelist); + register_node_type_sh_rgb(ntypelist); + register_node_type_sh_math(ntypelist); + register_node_type_sh_vect_math(ntypelist); register_node_type_sh_mix_rgb(ntypelist); - register_node_type_sh_valtorgb(ntypelist); register_node_type_sh_rgbtobw(ntypelist); - register_node_type_sh_normal(ntypelist); - register_node_type_sh_geom(ntypelist); register_node_type_sh_mapping(ntypelist); - register_node_type_sh_curve_vec(ntypelist); - register_node_type_sh_curve_rgb(ntypelist); - register_node_type_sh_math(ntypelist); - register_node_type_sh_vect_math(ntypelist); - register_node_type_sh_squeeze(ntypelist); - register_node_type_sh_camera(ntypelist); - register_node_type_sh_material(ntypelist); - register_node_type_sh_material_ext(ntypelist); - register_node_type_sh_value(ntypelist); - register_node_type_sh_rgb(ntypelist); - register_node_type_sh_texture(ntypelist); -// register_node_type_sh_dynamic(ntypelist); - register_node_type_sh_invert(ntypelist); - register_node_type_sh_seprgb(ntypelist); - register_node_type_sh_combrgb(ntypelist); - register_node_type_sh_hue_sat(ntypelist); + + register_node_type_sh_attribute(ntypelist); + register_node_type_sh_geometry(ntypelist); + register_node_type_sh_light_path(ntypelist); + register_node_type_sh_fresnel(ntypelist); + register_node_type_sh_tex_coord(ntypelist); + + register_node_type_sh_background(ntypelist); + register_node_type_sh_bsdf_diffuse(ntypelist); + register_node_type_sh_bsdf_glass(ntypelist); + register_node_type_sh_bsdf_glossy(ntypelist); + register_node_type_sh_bsdf_translucent(ntypelist); + register_node_type_sh_bsdf_transparent(ntypelist); + register_node_type_sh_bsdf_velvet(ntypelist); + register_node_type_sh_emission(ntypelist); + register_node_type_sh_mix_closure(ntypelist); + register_node_type_sh_add_closure(ntypelist); + + register_node_type_sh_output_lamp(ntypelist); + register_node_type_sh_output_material(ntypelist); + register_node_type_sh_output_world(ntypelist); + + register_node_type_sh_tex_blend(ntypelist); + register_node_type_sh_tex_clouds(ntypelist); + register_node_type_sh_tex_distnoise(ntypelist); + register_node_type_sh_tex_image(ntypelist); + register_node_type_sh_tex_environment(ntypelist); + register_node_type_sh_tex_magic(ntypelist); + register_node_type_sh_tex_marble(ntypelist); + register_node_type_sh_tex_musgrave(ntypelist); + register_node_type_sh_tex_noise(ntypelist); + register_node_type_sh_tex_sky(ntypelist); + register_node_type_sh_tex_stucci(ntypelist); + register_node_type_sh_tex_voronoi(ntypelist); + register_node_type_sh_tex_wood(ntypelist); } static void registerTextureNodes(ListBase *ntypelist) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 29fa731594d..d869cb513cd 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -88,6 +88,7 @@ #include "BKE_mesh.h" #include "BKE_mball.h" #include "BKE_modifier.h" +#include "BKE_node.h" #include "BKE_object.h" #include "BKE_paint.h" #include "BKE_particle.h" @@ -859,23 +860,49 @@ Lamp *copy_lamp(Lamp *la) for(a=0; amtex[a]) { - lan->mtex[a]= MEM_mallocN(sizeof(MTex), "copylamptex"); + lan->mtex[a]= MEM_mallocN(sizeof(MTex), "copy_lamp"); memcpy(lan->mtex[a], la->mtex[a], sizeof(MTex)); id_us_plus((ID *)lan->mtex[a]->tex); } } lan->curfalloff = curvemapping_copy(la->curfalloff); - -#if 0 // XXX old animation system - id_us_plus((ID *)lan->ipo); -#endif // XXX old animation system + if(la->nodetree) + lan->nodetree= ntreeCopyTree(la->nodetree); + if (la->preview) lan->preview = BKE_previewimg_copy(la->preview); return lan; } +Lamp *localize_lamp(Lamp *la) +{ + Lamp *lan; + int a; + + lan= copy_libblock(la); + BLI_remlink(&G.main->lamp, lan); + + for(a=0; amtex[a]) { + lan->mtex[a]= MEM_mallocN(sizeof(MTex), "localize_lamp"); + memcpy(lan->mtex[a], la->mtex[a], sizeof(MTex)); + /* free lamp decrements */ + id_us_plus((ID *)lan->mtex[a]->tex); + } + } + + lan->curfalloff = curvemapping_copy(la->curfalloff); + + if(la->nodetree) + lan->nodetree= ntreeLocalize(la->nodetree); + + lan->preview= NULL; + + return lan; +} + void make_local_lamp(Lamp *la) { Main *bmain= G.main; @@ -948,6 +975,12 @@ void free_lamp(Lamp *la) BKE_free_animdata((ID *)la); curvemapping_free(la->curfalloff); + + /* is no lib link block, but lamp extension */ + if(la->nodetree) { + ntreeFreeTree(la->nodetree); + MEM_freeN(la->nodetree); + } BKE_previewimg_free(&la->preview); BKE_icon_delete(&la->id); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 791d572d385..d4a1eb0330c 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -989,6 +989,8 @@ void scene_update_tagged(Main *bmain, Scene *scene) if (scene->physics_settings.quick_cache_step) BKE_ptcache_quick_cache_all(bmain, scene); + + DAG_ids_clear_recalc(bmain); /* in the future this should handle updates for all datablocks, not only objects and scenes. - brecht */ diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index 5b6c6bf8732..7b04a72666d 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -562,7 +562,7 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM ssmd.subdivType = ME_CC_SUBSURF; //catmull clark ssmd.levels = smd->subsurfLevels; //levels - ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, FALSE, NULL, 0, 0); + ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, FALSE, NULL, 0, 0, (ob->mode & OB_MODE_EDIT)); if(ss_mesh) { diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 33094313acd..05a653d7c95 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -2593,7 +2593,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived( struct DerivedMesh *dm, struct SubsurfModifierData *smd, int useRenderParams, float (*vertCos)[3], - int isFinalCalc, int editMode) + int isFinalCalc, int forEditMode, int inEditMode) { int useSimple = smd->subdivType == ME_SIMPLE_SUBSURF; int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr; @@ -2601,7 +2601,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived( int drawInteriorEdges = !(smd->flags & eSubsurfModifierFlag_ControlEdges); CCGDerivedMesh *result; - if(editMode) { + if(forEditMode) { int levels= (smd->modifier.scene)? get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels; smd->emCache = _getSubSurf(smd->emCache, levels, useAging, 0, @@ -2632,7 +2632,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived( int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr; int levels= (smd->modifier.scene)? get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels; CCGSubSurf *ss; - + /* It is quite possible there is a much better place to do this. It * depends a bit on how rigourously we expect this function to never * be called in editmode. In semi-theory we could share a single @@ -2640,8 +2640,11 @@ struct DerivedMesh *subsurf_make_derived_from_derived( * the same so we would need some way of converting them. Its probably * not worth the effort. But then why am I even writing this long * comment that no one will read? Hmmm. - zr + * + * Addendum: we can't really ensure that this is never called in edit + * mode, so now we have a parameter to verify it. - brecht */ - if(smd->emCache) { + if(!inEditMode && smd->emCache) { ccgSubSurf_free(smd->emCache); smd->emCache = NULL; } diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 7a76e61c17b..2e0eec42669 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -43,14 +43,17 @@ #include "DNA_scene_types.h" #include "DNA_texture_types.h" +#include "BLI_listbase.h" #include "BLI_utildefines.h" #include "BKE_world.h" #include "BKE_library.h" #include "BKE_animsys.h" #include "BKE_global.h" -#include "BKE_main.h" #include "BKE_icons.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_node.h" void free_world(World *wrld) { @@ -66,6 +69,12 @@ void free_world(World *wrld) BKE_free_animdata((ID *)wrld); + /* is no lib link block, but world extension */ + if(wrld->nodetree) { + ntreeFreeTree(wrld->nodetree); + MEM_freeN(wrld->nodetree); + } + BKE_icon_delete((struct ID*)wrld); wrld->id.icon_id = 0; } @@ -117,17 +126,41 @@ World *copy_world(World *wrld) for(a=0; amtex[a]) { - wrldn->mtex[a]= MEM_mallocN(sizeof(MTex), "copymaterial"); + wrldn->mtex[a]= MEM_mallocN(sizeof(MTex), "copy_world"); memcpy(wrldn->mtex[a], wrld->mtex[a], sizeof(MTex)); id_us_plus((ID *)wrldn->mtex[a]->tex); } } + + if(wrld->nodetree) + wrldn->nodetree= ntreeCopyTree(wrld->nodetree); if (wrld->preview) wrldn->preview = BKE_previewimg_copy(wrld->preview); + + return wrldn; +} -#if 0 // XXX old animation system - id_us_plus((ID *)wrldn->ipo); -#endif // XXX old animation system +World *localize_world(World *wrld) +{ + World *wrldn; + int a; + + wrldn= copy_libblock(wrld); + BLI_remlink(&G.main->world, wrldn); + + for(a=0; amtex[a]) { + wrldn->mtex[a]= MEM_mallocN(sizeof(MTex), "localize_world"); + memcpy(wrldn->mtex[a], wrld->mtex[a], sizeof(MTex)); + /* free world decrements */ + id_us_plus((ID *)wrldn->mtex[a]->tex); + } + } + + if(wrld->nodetree) + wrldn->nodetree= ntreeLocalize(wrld->nodetree); + + wrldn->preview= NULL; return wrldn; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f669b178252..82c847abebf 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -139,6 +139,8 @@ #include "BLO_undofile.h" #include "BLO_readblenfile.h" // streaming read pipe, for BLO_readblenfile BLO_readblenfilememory +#include "RE_pipeline.h" + #include "readfile.h" #include "PIL_time.h" @@ -2101,6 +2103,8 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) { Scene *sce; Material *ma; + Lamp *la; + World *wrld; Tex *tx; bNodeTree *ntree; @@ -2154,6 +2158,16 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) if(ma->nodetree) ntreeVerifyTypes(ma->nodetree); } + /* and world trees */ + for(wrld= main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) + ntreeVerifyTypes(wrld->nodetree); + } + /* and lamp trees */ + for(la= main->lamp.first; la; la= la->id.next) { + if(la->nodetree) + ntreeVerifyTypes(la->nodetree); + } /* and scene trees */ for(sce= main->scene.first; sce; sce= sce->id.next) { if(sce->nodetree) @@ -2471,6 +2485,9 @@ static void lib_link_lamp(FileData *fd, Main *main) } la->ipo= newlibadr_us(fd, la->id.lib, la->ipo); // XXX depreceated - old animation system + + if(la->nodetree) + lib_link_ntree(fd, &la->id, la->nodetree); la->id.flag -= LIB_NEEDLINK; } @@ -2492,6 +2509,10 @@ static void direct_link_lamp(FileData *fd, Lamp *la) la->curfalloff= newdataadr(fd, la->curfalloff); if(la->curfalloff) direct_link_curvemapping(fd, la->curfalloff); + + la->nodetree= newdataadr(fd, la->nodetree); + if(la->nodetree) + direct_link_nodetree(fd, la->nodetree); la->preview = direct_link_preview_image(fd, la->preview); } @@ -2634,6 +2655,9 @@ static void lib_link_world(FileData *fd, Main *main) mtex->object= newlibadr(fd, wrld->id.lib, mtex->object); } } + + if(wrld->nodetree) + lib_link_ntree(fd, &wrld->id, wrld->nodetree); wrld->id.flag -= LIB_NEEDLINK; } @@ -2651,6 +2675,11 @@ static void direct_link_world(FileData *fd, World *wrld) for(a=0; amtex[a]= newdataadr(fd, wrld->mtex[a]); } + + wrld->nodetree= newdataadr(fd, wrld->nodetree); + if(wrld->nodetree) + direct_link_nodetree(fd, wrld->nodetree); + wrld->preview = direct_link_preview_image(fd, wrld->preview); } @@ -4924,6 +4953,10 @@ static void lib_link_screen(FileData *fd, Main *main) if(snode->id) { if(GS(snode->id->name)==ID_MA) snode->nodetree= ((Material *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_WO) + snode->nodetree= ((World *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_LA) + snode->nodetree= ((Lamp *)snode->id)->nodetree; else if(GS(snode->id->name)==ID_SCE) snode->nodetree= ((Scene *)snode->id)->nodetree; else if(GS(snode->id->name)==ID_TE) @@ -5007,6 +5040,7 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) if(sl->spacetype==SPACE_VIEW3D) { View3D *v3d= (View3D*) sl; BGpic *bgpic; + ARegion *ar; if(v3d->scenelock) v3d->camera= NULL; /* always get from scene */ @@ -5042,6 +5076,15 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) /* not very nice, but could help */ if((v3d->layact & v3d->lay)==0) v3d->layact= v3d->lay; + /* free render engines for now */ + for(ar= sa->regionbase.first; ar; ar= ar->next) { + RegionView3D *rv3d= ar->regiondata; + + if(rv3d && rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine= NULL; + } + } } else if(sl->spacetype==SPACE_IPO) { SpaceIpo *sipo= (SpaceIpo *)sl; @@ -5152,6 +5195,10 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) else { if(GS(snode->id->name)==ID_MA) snode->nodetree= ((Material *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_WO) + snode->nodetree= ((World *)snode->id)->nodetree; + else if(GS(snode->id->name)==ID_LA) + snode->nodetree= ((Lamp *)snode->id)->nodetree; else if(GS(snode->id->name)==ID_SCE) snode->nodetree= ((Scene *)snode->id)->nodetree; else if(GS(snode->id->name)==ID_TE) @@ -5187,6 +5234,7 @@ static void direct_link_region(FileData *fd, ARegion *ar, int spacetype) rv3d->depths= NULL; rv3d->ri= NULL; + rv3d->render_engine= NULL; rv3d->sms= NULL; rv3d->smooth_timer= NULL; } @@ -5691,7 +5739,7 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID if(id->flag & LIB_FAKEUSER) id->us= 1; else id->us= 0; id->icon_id = 0; - id->flag &= ~LIB_ID_RECALC; + id->flag &= ~(LIB_ID_RECALC|LIB_ID_RECALC_DATA); /* this case cannot be direct_linked: it's just the ID part */ if(bhead->code==ID_ID) { @@ -12176,6 +12224,9 @@ static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la) if (la->adt) expand_animdata(fd, mainvar, la->adt); + + if(la->nodetree) + expand_nodetree(fd, mainvar, la->nodetree); } static void expand_lattice(FileData *fd, Main *mainvar, Lattice *lt) @@ -12203,6 +12254,9 @@ static void expand_world(FileData *fd, Main *mainvar, World *wrld) if (wrld->adt) expand_animdata(fd, mainvar, wrld->adt); + + if(wrld->nodetree) + expand_nodetree(fd, mainvar, wrld->nodetree); } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 7f791591e7d..56db4d2a26e 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1771,6 +1771,12 @@ static void write_worlds(WriteData *wd, ListBase *idbase) for(a=0; amtex[a]) writestruct(wd, DATA, "MTex", 1, wrld->mtex[a]); } + + /* nodetree is integral part of lamps, no libdata */ + if(wrld->nodetree) { + writestruct(wd, DATA, "bNodeTree", 1, wrld->nodetree); + write_nodetree(wd, wrld->nodetree); + } write_previews(wd, wrld->preview); } @@ -1800,6 +1806,12 @@ static void write_lamps(WriteData *wd, ListBase *idbase) if(la->curfalloff) write_curvemapping(wd, la->curfalloff); + /* nodetree is integral part of lamps, no libdata */ + if(la->nodetree) { + writestruct(wd, DATA, "bNodeTree", 1, la->nodetree); + write_nodetree(wd, la->nodetree); + } + write_previews(wd, la->preview); } diff --git a/source/blender/editors/datafiles/bfont.ttf.c b/source/blender/editors/datafiles/bfont.ttf.c index 3ebd06a47df..379af401075 100644 --- a/source/blender/editors/datafiles/bfont.ttf.c +++ b/source/blender/editors/datafiles/bfont.ttf.c @@ -2,5621 +2,4533 @@ * \ingroup eddatafiles */ /* DataToC output of file */ - -int datatoc_bfont_ttf_size= 191532; + +int datatoc_bfont_ttf_size= 190044; 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, 1, 0, 0, 0, 19, 1, 0, 0, 4, 0, 48, 71, 68, 69, 70, 0, 38, 3,135, 0, 2, 61, 32, 0, 0, 0, 30, + 71, 80, 79, 83,148,189,162,240, 0, 2, 61, 64, 0, 0,168,250, 71, 83, 85, 66,108,145,116,143, 0, 2,230, 60, 0, 0, 0, 32, + 76, 84, 83, 72,201,155,185, 32, 0, 0, 16, 28, 0, 0, 3,134, 79, 83, 47, 50,160,203,149,139, 0, 0, 1,184, 0, 0, 0, 96, + 99,109, 97,112,206, 17,212,162, 0, 0, 86,120, 0, 0, 7,158, 99,118,116, 32, 57,126, 62, 76, 0, 0,104, 12, 0, 0, 1,252, +102,112,103,109,115,211, 35,176, 0, 0, 94, 24, 0, 0, 7, 5,103, 97,115,112, 0, 4, 0, 7, 0, 2, 61, 20, 0, 0, 0, 12, +103,108,121,102,197,190, 63,150, 0, 0,113, 16, 0, 1,168, 30,104,100,109,120,239, 14,250,171, 0, 0, 19,164, 0, 0, 66,212, +104,101, 97,100,234,253,135,111, 0, 0, 1, 60, 0, 0, 0, 54,104,104,101, 97, 12, 83, 9,164, 0, 0, 1,116, 0, 0, 0, 36, +104,109,116,120,210,203, 46, 39, 0, 0, 2, 24, 0, 0, 14, 4,108,111, 99, 97,146,250, 41, 76, 0, 0,106, 8, 0, 0, 7, 6, +109, 97,120,112, 6, 42, 2,133, 0, 0, 1,152, 0, 0, 0, 32,110, 97,109,101,181, 88,144, 86, 0, 2, 25, 48, 0, 0, 6,162, +112,111,115,116,216, 80,169, 39, 0, 2, 31,212, 0, 0, 29, 63,112,114,101,112,130,220, 33, 19, 0, 0,101, 32, 0, 0, 2,236, + 0, 1, 0, 0, 0, 1, 0, 0, 89,115,200,195, 95, 15, 60,245, 0, 25, 8, 0, 0, 0, 0, 0,193,154, 51, 0, 0, 0, 0, 0, +197, 83, 9, 61,251,137,253,213, 9, 90, 8, 98, 0, 0, 0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7,109,254, 29, + 0, 0, 9,100,251,137,254,162, 9, 90, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 1, 0, 0, + 3,130, 0,160, 0, 22, 0,122, 0, 5, 0, 2, 0, 16, 0, 47, 0, 90, 0, 0, 2, 31, 1, 57, 0, 3, 0, 1, 0, 3, 4,153, + 1,144, 0, 5, 0, 8, 5,154, 5, 51, 0, 0, 1, 30, 5,154, 5, 51, 0, 0, 3,208, 0,102, 1,242, 0, 0, 2, 11, 6, 6, + 3, 8, 4, 2, 2, 4,224, 0, 2,239, 64, 0, 32, 91, 0, 0, 0, 40, 0, 0, 0, 0, 49, 65, 83, 67, 0, 64, 0, 32,255,253, + 6, 31,254, 20, 0,132, 7,109, 1,227, 32, 0, 1,159, 0, 0, 0, 0, 4, 74, 5,182, 0, 0, 0, 32, 0, 2, 4,205, 0,193, + 0, 0, 0, 0, 4, 20, 0, 0, 2, 20, 0, 0, 2, 39, 0,147, 3, 55, 0,133, 5, 43, 0, 51, 4,104, 0,123, 6,154, 0,102, + 5,158, 0,109, 1,207, 0,133, 2,104, 0, 82, 2,104, 0, 61, 4,104, 0, 82, 4,104, 0,102, 2, 0, 0, 63, 2,147, 0, 82, + 2, 37, 0,147, 2,252, 0, 20, 4,104, 0, 98, 4,104, 0,178, 4,104, 0, 96, 4,104, 0, 82, 4,104, 0, 23, 4,104, 0,131, + 4,104, 0,113, 4,104, 0, 90, 4,104, 0,106, 4,104, 0,106, 2, 37, 0,147, 2, 37, 0, 63, 4,104, 0,102, 4,104, 0,102, + 4,104, 0,102, 3,104, 0, 37, 6,238, 0,109, 4,221, 0, 0, 4,248, 0,199, 4,211, 0,125, 5,121, 0,199, 4, 57, 0,199, + 3,238, 0,199, 5,133, 0,125, 5,156, 0,199, 2,182, 0, 82, 2, 43,255, 72, 4,162, 0,199, 3,238, 0,199, 6,246, 0,199, + 5,213, 0,199, 5,240, 0,125, 4,156, 0,199, 5,238, 0,125, 4,184, 0,199, 4, 39, 0,104, 4, 39, 0, 20, 5,150, 0,184, + 4,139, 0, 0, 7, 18, 0, 20, 4, 96, 0, 0, 4, 55, 0, 0, 4, 80, 0, 82, 2,109, 0,164, 2,252, 0, 23, 2,109, 0, 51, + 4, 66, 0, 41, 3, 74,255,252, 4,158, 1,137, 4, 63, 0, 94, 4,176, 0,174, 3,180, 0,113, 4,176, 0,113, 4, 72, 0,113, + 2,162, 0, 29, 4, 37, 0, 37, 4,182, 0,174, 2, 18, 0,160, 2, 18,255,188, 3,248, 0,174, 2, 18, 0,174, 7, 43, 0,174, + 4,182, 0,174, 4,158, 0,113, 4,176, 0,174, 4,176, 0,113, 3, 49, 0,174, 3,156, 0, 90, 2,182, 0, 33, 4,182, 0,164, + 3,213, 0, 0, 5,248, 0, 20, 4, 0, 0, 35, 3,233, 0, 10, 3,135, 0, 82, 2,213, 0, 61, 4,104, 1,233, 2,213, 0, 51, + 4,104, 0,102, 2, 20, 0, 0, 2, 39, 0,147, 4,104, 0,188, 4,104, 0, 68, 4,104, 0,123, 4,104, 0, 29, 4,104, 1,233, + 3,227, 0,121, 4,158, 1, 51, 6,168, 0,100, 2,166, 0, 68, 3,229, 0, 82, 4,104, 0,102, 2,147, 0, 82, 6,168, 0,100, + 4, 0,255,250, 3,109, 0,123, 4,104, 0,102, 2,166, 0, 49, 2,166, 0, 31, 4,158, 1,137, 4,193, 0,174, 5, 61, 0,113, + 2, 37, 0,147, 1,164, 0, 35, 2,166, 0, 63, 2,205, 0, 66, 3,229, 0, 84, 5,229, 0, 63, 5,229, 0, 44, 5,229, 0, 31, + 3,104, 0, 68, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 6,209,255,254, + 4,211, 0,125, 4, 57, 0,199, 4, 57, 0,199, 4, 57, 0,199, 4, 57, 0,199, 2,182, 0, 62, 2,182, 0, 82, 2,182, 0, 17, + 2,182, 0, 64, 5,121, 0, 47, 5,213, 0,199, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, + 4,104, 0,141, 5,240, 0,125, 5,150, 0,184, 5,150, 0,184, 5,150, 0,184, 5,150, 0,184, 4, 55, 0, 0, 4,156, 0,199, + 4,209, 0,174, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 6,170, 0, 94, + 3,180, 0,113, 4, 72, 0,113, 4, 72, 0,113, 4, 72, 0,113, 4, 72, 0,113, 2, 18,255,222, 2, 18, 0,174, 2, 18,255,189, + 2, 18,255,238, 4,158, 0,111, 4,182, 0,174, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, + 4,104, 0,102, 4,158, 0,115, 4,182, 0,164, 4,182, 0,164, 4,182, 0,164, 4,182, 0,164, 3,233, 0, 10, 4,176, 0,174, + 3,233, 0, 10, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,211, 0,125, + 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 5,121, 0,199, + 4,176, 0,113, 5,121, 0, 47, 4,176, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, + 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 5,133, 0,125, 4, 37, 0, 37, 5,133, 0,125, + 4, 37, 0, 37, 5,133, 0,125, 4, 37, 0, 37, 5,133, 0,125, 4, 37, 0, 37, 5,156, 0,199, 4,182, 0,174, 5,156, 0, 0, + 4,182, 0, 18, 2,182,255,245, 2, 18,255,163, 2,182, 0, 61, 2, 18,255,235, 2,182, 0, 48, 2, 18,255,222, 2,182, 0, 82, + 2, 18, 0, 68, 2,182, 0, 82, 2, 18, 0,174, 4,225, 0, 82, 4, 37, 0,160, 2, 43,255, 72, 2, 18,255,188, 4,162, 0,199, + 3,248, 0,174, 3,248, 0,174, 3,238, 0,199, 2, 18, 0,171, 3,238, 0,199, 2, 18, 0,102, 3,238, 0,199, 2, 18, 0,174, + 3,238, 0,199, 2,102, 0,174, 3,238, 0, 29, 2, 18,255,246, 5,213, 0,199, 4,182, 0,174, 5,213, 0,199, 4,182, 0,174, + 5,213, 0,199, 4,182, 0,174, 5, 70,255,255, 5,213, 0,199, 4,182, 0,174, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, + 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 7, 31, 0,125, 7, 72, 0,113, 4,184, 0,199, 3, 49, 0,174, 4,184, 0,199, + 3, 49, 0, 96, 4,184, 0,199, 3, 49, 0,114, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0,104, + 3,156, 0, 90, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0, 20, 2,182, 0, 33, 4, 39, 0, 20, 2,182, 0, 33, 4, 39, 0, 20, + 2,182, 0, 33, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, + 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 7, 18, 0, 20, 5,248, 0, 20, 4, 55, 0, 0, + 3,233, 0, 10, 4, 55, 0, 0, 4, 80, 0, 82, 3,135, 0, 82, 4, 80, 0, 82, 3,135, 0, 82, 4, 80, 0, 82, 3,135, 0, 82, + 2, 76, 0,174, 4,104, 0,203, 4,221, 0, 0, 4, 63, 0, 94, 6,209,255,254, 6,170, 0, 94, 5,240, 0,125, 4,158, 0,115, + 4, 39, 0,104, 3,156, 0, 90, 4,158, 1, 2, 4,158, 1, 2, 4,117, 1, 27, 4,158, 1, 33, 2, 18, 0,160, 4,158, 1,109, + 1,123, 0, 31, 4,158, 1, 2, 4,158, 0,223, 4,158, 1,248, 4,158, 1, 20, 4,221,255,233, 2, 37, 0,147, 4,201,255,231, + 6, 23,255,231, 3,178,255,231, 6, 66,255,231, 5, 84,255,231, 6, 74,255,231, 2,158,255,228, 4,221, 0, 0, 4,248, 0,199, + 3,238, 0,199, 4,139, 0, 37, 4, 57, 0,199, 4, 80, 0, 82, 5,156, 0,199, 5,240, 0,125, 2,182, 0, 82, 4,162, 0,199, + 4,139, 0, 0, 6,246, 0,199, 5,213, 0,199, 4, 63, 0, 82, 5,240, 0,125, 5,135, 0,199, 4,156, 0,199, 4, 66, 0, 78, + 4, 39, 0, 20, 4, 55, 0, 0, 6, 35, 0,104, 4, 96, 0, 0, 6, 35, 0,104, 5,240, 0, 78, 2,182, 0, 64, 4, 55, 0, 0, + 4,176, 0,113, 3,160, 0, 90, 4,182, 0,174, 2,158, 0,164, 4,184, 0,164, 4,176, 0,113, 4,209, 0,174, 3,233, 0, 10, + 4,158, 0,111, 3,160, 0, 90, 3,164, 0,113, 4,182, 0,174, 4,135, 0,113, 2,158, 0,164, 3,248, 0,174, 4, 23,255,242, + 4,193, 0,174, 4, 35, 0, 0, 3,164, 0,113, 4,158, 0,113, 5, 10, 0, 25, 4,158, 0,164, 3,164, 0,113, 4,180, 0,113, + 3,152, 0, 18, 4,184, 0,164, 5,150, 0,113, 4, 49,255,236, 5,236, 0,164, 6, 6, 0,113, 2,158, 0, 21, 4,184, 0,164, + 4,158, 0,113, 4,184, 0,164, 6, 6, 0,113, 4, 57, 0,199, 5,160, 0, 20, 3,238, 0,199, 4,211, 0,125, 4, 39, 0,104, + 2,182, 0, 82, 2,182, 0, 64, 2, 43,255, 72, 7, 72, 0, 0, 7,117, 0,199, 5,160, 0, 20, 4,162, 0,199, 4,174, 0, 25, + 5,135, 0,199, 4,221, 0, 0, 4,156, 0,199, 4,248, 0,199, 3,238, 0,199, 5, 51, 0, 14, 4, 57, 0,199, 6,133, 0, 4, + 4, 92, 0, 72, 5,213, 0,201, 5,213, 0,201, 4,162, 0,199, 5, 90, 0, 0, 6,246, 0,199, 5,156, 0,199, 5,240, 0,125, + 5,135, 0,199, 4,156, 0,199, 4,211, 0,125, 4, 39, 0, 20, 4,174, 0, 25, 6, 35, 0,104, 4, 96, 0, 0, 5,154, 0,199, + 5, 72, 0,166, 7,250, 0,199, 7,250, 0,199, 5, 61, 0, 20, 6,150, 0,199, 4,156, 0,199, 4,193, 0, 59, 8, 29, 0,199, + 4,184, 0, 25, 4, 63, 0, 94, 4,143, 0,117, 4,137, 0,174, 3, 51, 0,174, 4, 96, 0, 41, 4, 72, 0,113, 5,195, 0, 4, + 3,174, 0, 68, 4,233, 0,174, 4,233, 0,174, 3,238, 0,174, 4, 94, 0, 16, 5,190, 0,174, 4,233, 0,174, 4,158, 0,113, + 4,193, 0,174, 4,176, 0,174, 3,180, 0,113, 3,135, 0, 41, 3,233, 0, 10, 5,147, 0,113, 4, 0, 0, 35, 4,209, 0,174, + 4,172, 0,154, 6,244, 0,174, 7, 4, 0,174, 5,109, 0, 41, 5,254, 0,174, 4,137, 0,174, 3,178, 0, 55, 6,121, 0,174, + 4, 63, 0, 35, 4, 72, 0,113, 4,182, 0, 18, 3, 51, 0,174, 3,180, 0,113, 3,156, 0, 90, 2, 18, 0,160, 2, 18,255,238, + 2, 18,255,188, 6,131, 0, 16, 6,229, 0,174, 4,182, 0, 18, 3,238, 0,174, 3,233, 0, 10, 4,193, 0,174, 3,238, 0,199, + 3, 51, 0,174, 7, 18, 0, 20, 5,248, 0, 20, 7, 18, 0, 20, 5,248, 0, 20, 7, 18, 0, 20, 5,248, 0, 20, 4, 55, 0, 0, + 3,233, 0, 10, 4, 0, 0, 82, 8, 0, 0, 82, 8, 0, 0, 82, 3, 74,255,252, 1,102, 0, 23, 1,102, 0, 23, 2, 0, 0, 63, + 1,102, 0, 25, 2,231, 0, 23, 2,231, 0, 23, 3,129, 0, 63, 3,227, 0,123, 3,248, 0,123, 3, 2, 0,150, 6,111, 0,147, + 9, 90, 0,102, 1,207, 0,133, 3, 55, 0,133, 2, 78, 0, 82, 2, 78, 0, 82, 3,246, 0,147, 1, 10,254,160, 2,248, 0,106, + 4,104, 0, 96, 4,104, 0, 68, 6, 0, 0,150, 4,104, 0, 63, 6,104, 0,141, 4, 0, 0,119, 7,231, 0,199, 5,254, 0, 37, + 5,240, 0, 78, 4,244, 0,102, 6, 14, 0, 83, 6, 14, 0, 51, 6, 14, 0, 79, 6, 14, 0,113, 4,166, 0, 98, 4,139, 0, 41, + 5,238, 0,199, 5, 12, 0, 74, 4,104, 0,102, 4,100, 0, 37, 5,168, 0,119, 3, 25, 0, 16, 4,104, 0,102, 4,104, 0,102, + 4,104, 0,102, 4,104, 0,102, 4,170, 0,109, 4,180, 0, 29, 4,180, 0, 29, 4,158, 0,207, 2, 18,255,188, 4, 0, 1,135, + 4, 0, 1,111, 4, 0, 1,125, 2,166, 0, 37, 2,166, 0, 12, 2,166, 0, 59, 2,166, 0, 37, 2,166, 0, 47, 2,166, 0, 49, + 2,166, 0, 33, 4, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2,171, 0, 0, 2, 0, 0, 0, 1, 85, 0, 0, + 4,104, 0, 0, 2, 37, 0, 0, 1,154, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 84, 8, 0, 0, 84, + 2, 18,255,188, 1,102, 0, 23, 4,205, 0, 10, 4, 82, 0, 0, 6,160, 0, 18, 6,246, 0,199, 7, 43, 0,174, 4,221, 0, 0, + 4, 63, 0, 94, 6, 66,254,211, 2,170, 0,115, 3, 51, 0,147, 7, 86, 0, 29, 7, 86, 0, 29, 5,240, 0,125, 4,170, 0,113, + 5,244, 0,184, 5, 47, 0,164, 0, 0,252,143, 0, 0,253, 72, 0, 0,252, 70, 0, 0,253, 4, 0, 0,253, 49, 4, 57, 0,199, + 5,213, 0,201, 4, 72, 0,113, 4,233, 0,174, 7,219, 0,125, 6,111, 0, 0, 5, 37, 0, 20, 4,221, 0, 20, 7, 39, 0,199, + 5,182, 0,174, 5, 47, 0, 0, 4,100, 0, 10, 7, 41, 0,199, 6, 18, 0,174, 5,127, 0, 20, 4,240, 0, 10, 7,139, 0,199, + 6,162, 0,174, 4, 94, 0, 57, 3,174, 0, 23, 6, 35, 0,104, 5,236, 0,164, 5,240, 0,125, 4,158, 0,113, 4,193, 0, 0, + 3,221, 0, 0, 4,193, 0, 0, 3,221, 0, 0, 9,100, 0,125, 8, 88, 0,113, 6, 63, 0,125, 5, 25, 0,113, 7,178, 0,125, + 6, 80, 0,113, 7,219, 0,125, 6,111, 0, 0, 4,211, 0,125, 3,180, 0,113, 4,223, 0,104, 4,117, 0,201, 4,158, 0,244, + 4,158, 1,225, 4,158, 1,225, 7,233, 0, 41, 7,166, 0, 41, 5,231, 0,201, 4,252, 0,174, 4,156, 0, 47, 4,137, 0, 18, + 4,156, 0,199, 4,176, 0,174, 3,238, 0, 47, 3, 51, 0, 18, 5, 0, 0,199, 4, 8, 0,174, 6,233, 0, 4, 6, 35, 0, 4, + 4, 92, 0, 72, 3,174, 0, 68, 5, 10, 0,199, 4, 74, 0,174, 4,162, 0,199, 4, 43, 0,174, 4,162, 0, 47, 3,248, 0, 18, + 5, 68, 0, 20, 4,209, 0, 41, 5,205, 0,229, 4,250, 0,174, 6, 92, 0,229, 5,172, 0,174, 8, 68, 0,199, 6,184, 0,174, + 5,236, 0,125, 4,242, 0,113, 4,211, 0,125, 3,180, 0,113, 4, 39, 0, 20, 3,135, 0, 41, 4, 55, 0, 0, 3,213, 0, 0, + 4, 55, 0, 0, 3,213, 0, 0, 4,211, 0, 0, 4, 61, 0, 35, 6,137, 0, 20, 5,139, 0, 41, 5, 72, 0,166, 4,188, 0,154, + 5, 72, 0,166, 4,172, 0,154, 5, 72, 0,199, 4,172, 0,174, 6,119, 0, 61, 5, 29, 0, 51, 6,119, 0, 61, 5, 29, 0, 51, + 2,182, 0, 82, 6,133, 0, 4, 5,195, 0, 4, 5, 74, 0,199, 4, 45, 0,174, 5,106, 0, 0, 4,113, 0, 16, 5,156, 0,229, + 4,233, 0,174, 5,203, 0,229, 4,252, 0,174, 5, 72, 0,166, 4,172, 0,154, 7, 6, 0,199, 5,209, 0,174, 2,182, 0, 82, + 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 6,209,255,254, 6,170, 0, 94, 4, 57, 0,199, 4, 72, 0,113, + 5,143, 0,113, 4, 72, 0,102, 5,143, 0,113, 4, 72, 0,102, 6,133, 0, 4, 5,195, 0, 4, 4, 92, 0, 72, 3,174, 0, 68, + 4, 92, 0, 72, 3,184, 0, 27, 5,213, 0,201, 4,233, 0,174, 5,213, 0,201, 4,233, 0,174, 5,240, 0,125, 4,158, 0,113, + 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 4,193, 0, 59, 3,178, 0, 55, 4,174, 0, 25, 3,233, 0, 10, + 4,174, 0, 25, 3,233, 0, 10, 4,174, 0, 25, 3,233, 0, 10, 5, 72, 0,166, 4,172, 0,154, 3,238, 0,199, 3, 51, 0,174, + 6,150, 0,199, 5,254, 0,174, 3,238, 0, 47, 3, 51, 0, 18, 4,195, 0, 0, 4, 47, 0, 35, 4, 96, 0, 0, 4, 0, 0, 35, + 4,156, 0,137, 4,176, 0,113, 6,244, 0,137, 6,254, 0,113, 6,252, 0, 78, 6, 70, 0, 80, 4,197, 0, 78, 4, 16, 0, 80, + 7,164, 0, 0, 6,164, 0, 16, 7,229, 0,199, 7, 47, 0,174, 5,195, 0,125, 4,225, 0,113, 5,129, 0, 20, 5, 18, 0, 41, + 4, 92, 0,111, 3,174, 0, 92, 5, 90, 0, 0, 4, 94, 0, 16, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, + 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 18, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, + 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, + 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, + 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0, 39, 4, 72, 0, 18, 4, 57, 0,199, 4, 72, 0,113, + 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 2,182, 0, 82, 2, 18, 0, 98, 2,182, 0, 82, 2, 18, 0,158, + 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0, 51, + 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,170, 0,113, + 5,240, 0,125, 4,170, 0,113, 5,240, 0,125, 4,170, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,170, 0,113, + 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, + 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, 4, 55, 0, 0, 3,233, 0, 10, + 4, 55, 0, 0, 3,233, 0, 10, 4, 55, 0, 0, 3,233, 0, 10, 4,176, 0,113, 0, 0,251,219, 0, 0,252,106, 0, 0,251,137, + 0, 0,252,106, 0, 0,252,100, 0, 0,252,115, 0, 0,252,115, 0, 0,252,115, 0, 0,252,100, 1,164, 0, 49, 0, 16, 0, 16, + 0, 0, 3,130, 1, 1, 1, 26, 40, 24, 1, 1, 10, 1, 43, 1, 1, 10, 11, 22, 1, 20, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 20, 20, 11, 11, 11, 28, 11, 38, 34, 20, 11, 1, 18, 11, 21, 25, 21, 21, 20, 28, 25, 34, 19, 30, 22, 27, 27, 21, 23, 16, 16, + 38, 18, 1, 5, 1, 32, 1, 1, 17, 11, 28, 11, 21, 42, 25, 46, 12, 12, 10, 12, 24, 46, 21, 11, 11, 18, 42, 11, 46, 25, 11, 26, + 22, 18, 25, 24, 25, 11, 26, 40, 11, 11, 11, 11, 24, 21, 1, 4, 20, 39, 11, 1, 4, 1, 16, 11, 17, 17, 1, 18, 11, 20, 1, 17, + 10, 39, 1, 1, 10, 28, 38, 38, 38, 38, 38, 38, 1, 20, 1, 1, 1, 1, 25, 25, 25, 25, 11, 25, 34, 34, 34, 34, 34, 11, 34, 21, + 21, 21, 21, 38, 19, 22, 17, 17, 17, 17, 17, 17, 22, 28, 21, 21, 21, 21, 12, 12, 12, 12, 21, 46, 21, 21, 21, 21, 21, 11, 21, 46, + 46, 46, 46, 22, 11, 22, 38, 17, 38, 17, 38, 17, 20, 28, 20, 28, 20, 28, 20, 28, 11, 11, 11, 11, 1, 21, 1, 21, 1, 21, 1, 21, + 1, 21, 11, 25, 11, 25, 11, 25, 11, 25, 21, 46, 21, 46, 25, 12, 25, 12, 25, 12, 25, 12, 25, 12, 21, 23, 21, 12, 21, 10, 10, 20, + 12, 20, 12, 20, 12, 20, 36, 20, 12, 25, 46, 25, 46, 25, 46, 24, 25, 46, 34, 21, 34, 21, 34, 21, 42, 40, 22, 18, 22, 18, 22, 18, + 27, 42, 27, 42, 27, 42, 27, 42, 27, 11, 27, 11, 27, 11, 21, 46, 21, 46, 21, 46, 21, 46, 21, 46, 21, 46, 16, 11, 38, 22, 38, 18, + 18, 18, 18, 18, 18, 48, 11, 38, 17, 1, 22, 34, 21, 27, 42, 1, 1, 36, 1, 1, 1, 1, 1, 1, 1, 1, 38, 20, 21, 45, 12, 21, + 13, 21, 22, 38, 34, 25, 23, 1, 18, 21, 34, 25, 21, 25, 28, 25, 17, 34, 21, 19, 32, 27, 38, 25, 16, 25, 34, 25, 38, 11, 22, 46, + 22, 18, 11, 12, 22, 21, 22, 22, 46, 23, 22, 10, 45, 18, 24, 24, 21, 24, 19, 24, 24, 1, 18, 25, 19, 19, 24, 22, 18, 21, 18, 24, + 1, 14, 25, 20, 27, 25, 25, 21, 40, 25, 14, 21, 48, 21, 38, 19, 34, 25, 31, 1, 24, 18, 25, 25, 21, 16, 28, 21, 34, 21, 19, 20, + 27, 48, 25, 16, 21, 20, 25, 25, 23, 16, 25, 22, 36, 22, 17, 20, 25, 20, 22, 21, 25, 26, 25, 25, 10, 22, 19, 25, 21, 18, 11, 28, + 25, 22, 25, 26, 22, 18, 25, 25, 23, 24, 25, 17, 25, 17, 21, 46, 20, 28, 42, 12, 12, 12, 24, 24, 46, 10, 22, 18, 23, 1, 16, 11, + 16, 11, 16, 11, 38, 22, 1, 1, 1, 1, 21, 21, 25, 21, 21, 21, 25, 25, 25, 25, 25, 20, 43, 24, 25, 25, 12, 1, 25, 11, 11, 17, + 11, 1, 1, 42, 25, 34, 1, 12, 12, 12, 12, 38, 23, 30, 43, 1, 1, 23, 23, 11, 11, 11, 11, 25, 20, 20, 25, 12, 1, 1, 1, 17, + 17, 17, 17, 17, 17, 17, 1, 1, 1, 1, 1, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 12, 21, 17, 22, 24, 28, 24, 38, 17, 1, 1, + 1, 20, 20, 34, 21, 25, 28, 1, 1, 1, 1, 1, 1, 25, 21, 25, 29, 23, 32, 38, 1, 1, 28, 24, 24, 22, 25, 25, 23, 20, 1, 26, + 25, 19, 34, 21, 24, 22, 24, 22, 24, 1, 20, 21, 25, 1, 29, 24, 20, 28, 13, 36, 1, 1, 1, 46, 1, 22, 25, 1, 23, 19, 11, 18, + 20, 21, 25, 25, 25, 18, 26, 21, 1, 21, 25, 21, 10, 11, 24, 24, 25, 25, 25, 46, 25, 18, 19, 20, 28, 27, 25, 38, 25, 38, 25, 25, + 25, 42, 21, 19, 22, 20, 18, 25, 24, 10, 22, 10, 22, 25, 24, 25, 32, 24, 24, 20, 21, 25, 24, 25, 20, 18, 21, 21, 25, 38, 17, 38, + 17, 1, 22, 1, 21, 21, 21, 21, 21, 24, 25, 18, 26, 18, 17, 25, 25, 25, 25, 34, 21, 34, 21, 34, 21, 22, 17, 48, 22, 48, 22, 48, + 22, 20, 18, 25, 20, 16, 24, 18, 20, 22, 1, 16, 26, 19, 11, 23, 21, 24, 24, 25, 22, 23, 24, 39, 25, 21, 25, 19, 23, 18, 26, 16, + 22, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 1, 21, 1, 21, 1, 21, 1, + 21, 1, 21, 1, 21, 1, 21, 1, 21, 25, 12, 25, 12, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, + 21, 34, 21, 34, 21, 21, 46, 21, 46, 25, 28, 25, 28, 25, 28, 25, 28, 25, 28, 38, 22, 38, 22, 38, 22, 11, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 19, 0, 0, 3,132, 6, 7, 4, 0, 3, 2, 2, 2, 4, 3, 5, 4, 1, 2, 2, 3, + 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 5, 4, 4, 4, 4, 3, 3, 4, 4, 2, 2, + 3, 3, 5, 4, 4, 4, 4, 4, 3, 3, 4, 4, 5, 3, 3, 3, 2, 2, 2, 3, 2, 3, 4, 4, 3, 4, 3, 2, 3, 4, 2, 2, + 3, 2, 5, 4, 4, 4, 4, 2, 3, 2, 4, 3, 4, 4, 3, 3, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 5, 2, 3, + 3, 2, 5, 3, 3, 3, 3, 3, 3, 4, 4, 2, 1, 3, 2, 3, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 3, 3, + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 4, 3, 4, 4, 4, 4, 4, 4, 4, 3, 4, 3, 4, 3, + 4, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 4, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 4, 4, 4, 4, 4, 5, 4, 4, + 4, 4, 4, 4, 4, 4, 5, 5, 4, 2, 4, 2, 4, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 4, 3, 5, 5, 4, 4, 3, 3, 3, 3, 3, + 3, 2, 3, 1, 3, 3, 3, 3, 4, 2, 4, 5, 3, 5, 4, 5, 2, 4, 4, 3, 4, 3, 3, 4, 4, 2, 3, 4, 5, 4, 3, 4, + 4, 4, 4, 3, 3, 6, 3, 6, 4, 2, 3, 4, 3, 4, 2, 4, 4, 4, 3, 4, 3, 3, 4, 4, 2, 3, 4, 4, 4, 3, 4, 4, + 4, 3, 4, 3, 4, 5, 4, 5, 6, 2, 4, 4, 4, 6, 3, 5, 3, 4, 3, 2, 2, 2, 6, 6, 5, 3, 4, 4, 4, 4, 4, 3, + 4, 3, 5, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 4, 3, 4, 6, 3, 4, 4, 6, 6, 5, 6, 4, 4, 6, 4, 4, 4, 4, 2, + 3, 3, 4, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 3, 3, 3, 5, 4, 4, 4, 6, 6, 4, 5, 3, 3, 6, 4, 3, 4, 2, 3, + 3, 2, 2, 2, 5, 5, 4, 3, 3, 4, 3, 2, 5, 4, 5, 4, 5, 4, 3, 3, 3, 6, 6, 2, 1, 1, 2, 1, 2, 2, 3, 3, + 3, 2, 6, 7, 1, 2, 2, 2, 3, 1, 2, 3, 3, 5, 3, 5, 3, 6, 5, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 4, + 2, 3, 3, 3, 3, 4, 4, 4, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 6, 2, 2, 1, 3, 2, 1, 1, 0, + 0, 6, 6, 2, 1, 4, 3, 6, 5, 5, 4, 4, 5, 2, 2, 6, 6, 4, 4, 4, 4, 0, 0, 0, 0, 0, 3, 4, 3, 4, 6, 5, + 4, 4, 5, 4, 4, 3, 5, 5, 4, 4, 6, 5, 3, 3, 6, 5, 4, 4, 4, 3, 4, 3, 7, 6, 5, 4, 6, 5, 6, 5, 4, 3, + 4, 3, 3, 3, 3, 6, 6, 4, 4, 3, 3, 4, 4, 3, 2, 4, 3, 5, 5, 3, 3, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, + 4, 6, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 2, 5, 4, 4, 3, + 4, 3, 4, 4, 4, 4, 4, 4, 5, 5, 2, 4, 4, 4, 4, 5, 5, 3, 3, 4, 3, 4, 3, 5, 4, 3, 3, 3, 3, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 3, 2, 6, 5, 3, 2, 4, 3, 3, 4, 3, 4, 6, 6, 5, + 5, 4, 3, 6, 5, 6, 6, 4, 4, 4, 5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 3, 3, 3, 3, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 7, 9, 4, 0, 4, 2, 2, 3, 5, 4, 6, 5, + 2, 2, 2, 4, 4, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 3, 6, 5, 4, 4, 5, 4, 4, + 5, 5, 4, 2, 4, 3, 6, 5, 5, 4, 5, 4, 4, 4, 5, 5, 6, 4, 4, 4, 2, 3, 2, 4, 3, 4, 4, 4, 3, 4, 4, 3, + 4, 4, 2, 2, 4, 2, 6, 4, 4, 4, 4, 3, 3, 2, 4, 4, 6, 4, 4, 3, 2, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 3, + 4, 6, 2, 3, 4, 2, 6, 4, 3, 4, 3, 3, 4, 4, 5, 2, 1, 3, 2, 3, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 6, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 3, + 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 4, 3, + 4, 3, 4, 3, 4, 3, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, + 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 4, 2, 2, 4, 4, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, + 4, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 6, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 4, 2, 4, 2, + 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 6, 4, 4, 4, 4, 3, 4, 3, 4, 3, 2, 4, 5, 4, 6, 6, 5, 4, 4, + 3, 4, 4, 4, 4, 2, 4, 1, 4, 4, 4, 4, 5, 2, 4, 5, 5, 5, 5, 6, 2, 5, 4, 3, 5, 4, 4, 5, 5, 4, 4, 5, + 6, 5, 4, 5, 5, 4, 4, 4, 4, 6, 4, 6, 5, 4, 4, 4, 3, 4, 2, 4, 4, 4, 4, 4, 3, 3, 4, 4, 2, 4, 4, 4, + 4, 3, 4, 4, 4, 3, 4, 3, 4, 6, 4, 6, 6, 2, 4, 4, 4, 6, 4, 5, 3, 4, 4, 4, 4, 2, 7, 7, 5, 4, 4, 5, + 5, 4, 4, 3, 5, 4, 6, 4, 5, 5, 4, 5, 6, 5, 5, 5, 4, 4, 4, 4, 6, 4, 5, 5, 8, 8, 5, 6, 4, 4, 7, 4, + 4, 4, 4, 3, 4, 4, 6, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 3, 3, 4, 6, 4, 4, 4, 6, 6, 5, 6, 4, 3, 6, 4, + 4, 4, 3, 3, 3, 2, 2, 2, 6, 6, 4, 3, 4, 4, 3, 3, 6, 6, 6, 6, 6, 6, 4, 4, 4, 7, 7, 3, 1, 1, 2, 1, + 3, 3, 3, 3, 3, 3, 6, 8, 2, 3, 2, 2, 3, 1, 3, 4, 4, 5, 4, 6, 4, 7, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, + 4, 4, 4, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 7, 4, 7, 2, 2, 1, 4, + 2, 1, 1, 0, 0, 7, 7, 2, 1, 4, 4, 6, 6, 6, 5, 4, 5, 2, 3, 6, 6, 5, 4, 5, 4, 0, 0, 0, 0, 0, 4, 5, + 4, 4, 6, 6, 5, 4, 6, 5, 5, 4, 6, 5, 6, 4, 7, 5, 4, 4, 6, 6, 5, 4, 5, 4, 5, 4, 9, 7, 5, 4, 6, 6, + 6, 6, 4, 3, 4, 4, 4, 4, 4, 7, 7, 5, 4, 4, 4, 4, 4, 4, 3, 4, 4, 6, 6, 4, 3, 4, 4, 4, 3, 4, 3, 5, + 4, 5, 4, 5, 4, 7, 6, 6, 6, 4, 3, 4, 3, 4, 4, 4, 4, 4, 4, 7, 6, 6, 4, 5, 4, 5, 4, 6, 5, 6, 5, 4, + 6, 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 4, 5, 4, 5, 4, 6, 6, 4, 4, 5, 4, 5, 4, 6, 6, 4, 3, 4, + 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 3, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 6, 6, 4, 3, 4, 4, 4, 4, 4, + 4, 6, 6, 6, 5, 4, 4, 7, 6, 7, 6, 5, 4, 5, 5, 4, 3, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, + 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 5, + 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, + 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 8, 10, 5, 0, 4, 2, 2, 3, + 5, 4, 7, 6, 2, 2, 2, 4, 4, 2, 3, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 7, 6, 5, + 5, 5, 4, 4, 6, 6, 4, 2, 5, 4, 8, 6, 6, 5, 6, 5, 4, 4, 6, 6, 8, 5, 4, 5, 2, 3, 2, 4, 3, 5, 4, 5, + 4, 5, 4, 3, 4, 5, 2, 2, 4, 2, 8, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 3, 4, 3, 4, 2, 2, 4, 4, + 4, 4, 4, 4, 5, 7, 3, 4, 4, 3, 7, 4, 3, 4, 4, 4, 5, 5, 5, 2, 2, 4, 3, 4, 6, 6, 6, 4, 6, 6, 6, 6, + 6, 6, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 4, 5, 5, 4, 4, 4, 4, + 4, 4, 7, 4, 4, 4, 4, 4, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 5, 4, 6, 4, 6, 4, + 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 6, 4, 6, 4, 6, 4, + 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 4, 2, 2, 5, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, + 5, 6, 5, 6, 5, 6, 6, 5, 6, 5, 6, 5, 6, 5, 7, 7, 5, 3, 5, 3, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 4, 3, 4, 3, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 4, 4, 5, 4, 5, 4, 5, 4, 2, 4, 6, 4, 7, + 7, 6, 5, 4, 4, 5, 5, 4, 5, 2, 5, 1, 5, 5, 5, 5, 6, 2, 5, 6, 5, 6, 5, 6, 2, 6, 5, 4, 6, 4, 5, 6, + 6, 4, 5, 6, 8, 6, 4, 6, 6, 5, 5, 4, 4, 6, 5, 6, 6, 4, 4, 5, 4, 5, 2, 5, 5, 5, 4, 5, 4, 4, 5, 5, + 2, 4, 4, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 6, 4, 6, 6, 2, 5, 5, 5, 6, 4, 6, 4, 5, 4, 4, 4, 2, 8, 8, + 6, 5, 5, 6, 6, 5, 5, 4, 6, 4, 8, 4, 6, 6, 5, 6, 8, 6, 6, 6, 5, 5, 4, 5, 6, 5, 6, 5, 8, 8, 6, 7, + 5, 5, 8, 5, 4, 5, 5, 3, 4, 4, 6, 4, 5, 5, 4, 5, 6, 5, 5, 5, 5, 4, 4, 4, 6, 4, 5, 5, 8, 8, 5, 6, + 4, 4, 7, 4, 4, 5, 3, 4, 4, 2, 2, 2, 7, 7, 5, 4, 4, 5, 4, 3, 8, 6, 8, 6, 8, 6, 4, 4, 4, 8, 8, 3, + 1, 1, 2, 1, 3, 3, 4, 4, 4, 3, 6, 9, 2, 3, 2, 2, 4, 1, 3, 4, 4, 6, 4, 6, 4, 8, 6, 6, 5, 6, 6, 6, + 6, 5, 6, 6, 5, 4, 4, 6, 3, 4, 4, 4, 4, 5, 5, 5, 5, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 8, + 3, 2, 1, 4, 2, 2, 1, 0, 0, 8, 8, 2, 1, 5, 4, 7, 8, 8, 6, 4, 6, 3, 3, 7, 7, 6, 5, 6, 5, 0, 0, 0, + 0, 0, 4, 6, 4, 5, 8, 6, 5, 5, 7, 6, 6, 4, 7, 5, 6, 6, 8, 7, 4, 4, 6, 6, 6, 5, 6, 4, 6, 4, 10, 8, + 6, 5, 8, 6, 8, 6, 5, 4, 5, 4, 5, 5, 5, 8, 8, 6, 5, 5, 5, 5, 5, 4, 3, 5, 4, 8, 6, 4, 4, 5, 4, 5, + 4, 5, 4, 5, 5, 6, 5, 6, 5, 8, 6, 7, 6, 5, 4, 4, 4, 4, 4, 4, 4, 5, 4, 7, 7, 6, 5, 5, 5, 5, 5, 7, + 5, 7, 5, 4, 8, 6, 5, 4, 6, 5, 6, 5, 6, 5, 5, 5, 8, 6, 4, 6, 4, 6, 4, 7, 7, 4, 4, 6, 4, 6, 4, 8, + 6, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 5, 4, 5, 5, 4, 3, 7, 6, 4, 3, 5, + 4, 5, 4, 5, 5, 7, 8, 6, 6, 4, 4, 8, 7, 9, 7, 6, 5, 5, 5, 4, 4, 6, 5, 6, 4, 6, 4, 6, 4, 6, 4, 6, + 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 4, 2, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, + 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 9, 12, 5, 0, + 5, 2, 2, 4, 6, 5, 8, 6, 2, 3, 3, 6, 5, 2, 3, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 5, 5, 5, + 4, 8, 6, 5, 5, 6, 5, 5, 6, 6, 4, 3, 5, 4, 8, 6, 7, 5, 7, 5, 5, 4, 6, 6, 8, 6, 6, 5, 3, 3, 3, 5, + 4, 5, 5, 5, 4, 5, 5, 4, 5, 5, 2, 2, 5, 2, 8, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, 3, 5, 3, 5, + 2, 2, 5, 5, 5, 5, 5, 4, 5, 7, 4, 5, 5, 3, 7, 5, 4, 5, 4, 4, 5, 5, 6, 2, 2, 4, 4, 5, 7, 7, 8, 4, + 6, 6, 6, 6, 6, 6, 8, 5, 5, 5, 5, 5, 4, 4, 4, 4, 6, 6, 7, 7, 7, 7, 7, 5, 7, 6, 6, 6, 6, 6, 5, 5, + 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, + 6, 5, 6, 5, 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, 4, 3, 2, 5, 5, 5, 4, 2, 4, 2, 4, 2, 4, + 3, 4, 2, 6, 5, 6, 5, 6, 5, 6, 6, 5, 7, 5, 7, 5, 7, 5, 9, 8, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, + 5, 4, 4, 4, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 6, 5, 6, 5, 4, 5, 4, 5, 4, 2, + 5, 6, 5, 8, 8, 7, 5, 5, 4, 5, 5, 5, 5, 2, 5, 2, 5, 5, 5, 5, 6, 2, 6, 7, 5, 8, 7, 8, 2, 6, 5, 5, + 6, 5, 5, 6, 7, 4, 5, 6, 8, 6, 5, 7, 6, 5, 5, 4, 6, 6, 6, 6, 7, 4, 6, 5, 4, 5, 2, 5, 5, 5, 5, 5, + 4, 4, 5, 5, 2, 5, 5, 5, 5, 4, 5, 6, 5, 4, 5, 4, 5, 6, 6, 6, 6, 2, 5, 5, 5, 6, 5, 6, 5, 5, 5, 4, + 4, 3, 9, 9, 6, 5, 6, 6, 6, 5, 5, 5, 6, 5, 8, 5, 6, 6, 5, 7, 8, 6, 7, 6, 5, 5, 4, 6, 6, 6, 6, 6, + 8, 8, 7, 7, 5, 5, 9, 5, 5, 5, 5, 4, 5, 5, 6, 4, 5, 5, 5, 5, 6, 5, 5, 5, 5, 4, 4, 5, 6, 5, 5, 5, + 8, 8, 6, 7, 5, 4, 7, 5, 5, 5, 4, 4, 4, 2, 2, 2, 8, 8, 5, 5, 5, 5, 5, 4, 8, 6, 8, 6, 8, 6, 6, 5, + 5, 9, 9, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 3, 6, 11, 2, 4, 3, 3, 4, 1, 4, 5, 5, 8, 5, 7, 5, 9, 8, 7, + 6, 8, 8, 8, 8, 5, 6, 6, 6, 5, 5, 7, 3, 5, 5, 5, 5, 6, 6, 6, 4, 2, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, + 5, 9, 5, 9, 3, 2, 2, 5, 2, 2, 1, 0, 0, 9, 9, 2, 2, 6, 6, 6, 8, 8, 6, 5, 7, 3, 4, 9, 9, 7, 5, 6, + 5, 0, 0, 0, 0, 0, 5, 6, 5, 5, 8, 7, 6, 5, 8, 6, 6, 6, 8, 7, 6, 6, 8, 7, 5, 4, 6, 6, 7, 5, 6, 5, + 6, 5, 12, 9, 7, 5, 8, 7, 8, 7, 5, 4, 5, 5, 5, 5, 5, 9, 9, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 8, 6, 5, + 4, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 6, 5, 9, 8, 7, 6, 5, 4, 4, 4, 6, 4, 6, 4, 6, 5, 8, 7, 7, 6, 6, + 5, 6, 5, 8, 6, 8, 6, 4, 8, 6, 6, 5, 7, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 6, 5, 6, 5, 8, 8, 5, 5, 7, + 5, 7, 5, 8, 6, 5, 4, 5, 4, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 5, 4, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 7, + 7, 5, 4, 5, 5, 6, 5, 5, 5, 8, 8, 8, 7, 5, 5, 10, 7, 9, 8, 6, 5, 6, 5, 5, 4, 7, 5, 6, 5, 6, 5, 6, + 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 4, 2, 4, 2, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 6, + 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, + 10, 12, 6, 0, 5, 3, 2, 4, 6, 6, 8, 7, 2, 3, 3, 6, 5, 2, 3, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, + 2, 5, 5, 5, 4, 8, 6, 6, 6, 6, 5, 5, 6, 6, 4, 3, 5, 4, 8, 6, 7, 5, 7, 5, 5, 4, 6, 6, 8, 6, 6, 5, + 3, 4, 3, 5, 4, 6, 5, 5, 4, 5, 5, 4, 5, 5, 2, 2, 5, 2, 8, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, + 4, 5, 4, 5, 3, 2, 5, 5, 5, 5, 5, 5, 6, 8, 4, 5, 5, 3, 8, 5, 4, 5, 4, 4, 6, 5, 6, 2, 2, 4, 4, 5, + 7, 7, 7, 4, 6, 6, 6, 6, 6, 6, 9, 6, 5, 5, 5, 5, 4, 4, 4, 4, 6, 6, 7, 7, 7, 7, 7, 5, 7, 6, 6, 6, + 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 4, 6, 4, 6, 4, 6, 4, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, 5, 3, 2, 5, 5, 5, 4, 2, 4, + 2, 4, 2, 4, 4, 4, 2, 6, 5, 6, 5, 6, 5, 7, 6, 5, 7, 5, 7, 5, 7, 5, 9, 8, 5, 4, 5, 4, 5, 4, 5, 4, + 5, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 6, 5, 6, 5, 4, 5, + 4, 5, 4, 2, 5, 6, 5, 9, 8, 7, 5, 5, 4, 6, 6, 6, 6, 3, 6, 2, 6, 6, 6, 6, 6, 2, 6, 7, 5, 8, 7, 8, + 2, 6, 6, 5, 6, 5, 5, 6, 7, 4, 5, 6, 8, 6, 5, 7, 6, 5, 5, 4, 6, 8, 6, 8, 7, 4, 6, 5, 4, 5, 2, 5, + 5, 5, 5, 5, 4, 4, 5, 5, 2, 5, 5, 5, 5, 4, 5, 6, 5, 4, 5, 4, 5, 6, 6, 6, 6, 2, 5, 5, 5, 6, 5, 7, + 5, 6, 5, 4, 4, 3, 9, 9, 7, 5, 6, 6, 6, 6, 6, 5, 6, 5, 8, 5, 6, 6, 5, 7, 8, 6, 7, 6, 5, 6, 4, 6, + 8, 6, 6, 6, 10, 10, 7, 8, 6, 6, 10, 5, 5, 5, 5, 4, 5, 5, 6, 4, 5, 5, 5, 5, 6, 5, 5, 5, 5, 4, 4, 5, + 6, 5, 5, 5, 8, 8, 7, 7, 5, 4, 8, 5, 5, 5, 4, 4, 4, 2, 2, 2, 8, 8, 5, 5, 5, 5, 5, 4, 8, 6, 8, 6, + 8, 6, 6, 5, 5, 10, 10, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 3, 9, 12, 2, 4, 3, 3, 4, 1, 4, 5, 5, 8, 5, 8, + 5, 9, 7, 7, 6, 8, 8, 8, 8, 5, 6, 7, 6, 6, 5, 7, 3, 5, 5, 5, 5, 6, 6, 6, 6, 2, 5, 5, 5, 4, 4, 4, + 4, 4, 4, 4, 5, 10, 5, 10, 3, 3, 2, 6, 3, 2, 1, 0, 0, 10, 10, 2, 2, 6, 6, 6, 8, 8, 6, 5, 8, 3, 4, 9, + 9, 7, 5, 6, 5, 0, 0, 0, 0, 0, 5, 6, 5, 5, 10, 7, 6, 6, 9, 7, 6, 6, 9, 8, 8, 6, 10, 7, 5, 4, 8, 6, + 7, 5, 6, 5, 6, 5, 12, 10, 7, 5, 10, 8, 10, 7, 6, 4, 6, 6, 6, 6, 6, 10, 10, 6, 5, 6, 6, 5, 5, 5, 4, 6, + 5, 8, 6, 5, 4, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 7, 6, 10, 8, 7, 6, 6, 4, 4, 4, 6, 4, 6, 4, 6, 5, 8, + 7, 7, 6, 6, 5, 6, 5, 8, 6, 8, 6, 4, 8, 6, 6, 5, 7, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 6, 5, 6, 5, 9, + 8, 5, 5, 7, 5, 7, 5, 8, 6, 5, 4, 5, 4, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 6, 4, 6, 5, 6, 5, 6, 5, 6, + 5, 5, 4, 8, 7, 5, 4, 6, 5, 6, 5, 5, 5, 8, 8, 8, 7, 5, 5, 10, 8, 9, 8, 7, 5, 7, 5, 5, 4, 7, 5, 6, + 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 4, 2, 4, 2, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, + 5, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 11, 14, 7, 0, 6, 3, 3, 5, 7, 6, 9, 8, 3, 3, 3, 6, 6, 3, 4, 3, 4, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 3, 3, 6, 6, 6, 5, 10, 7, 7, 7, 8, 6, 5, 8, 8, 3, 3, 7, 5, 10, 8, 9, 6, 9, 7, 6, 5, 8, 7, + 9, 6, 7, 7, 3, 4, 3, 6, 5, 6, 6, 6, 5, 6, 6, 4, 6, 6, 2, 2, 5, 2, 10, 6, 6, 6, 6, 4, 5, 4, 6, 6, + 8, 6, 6, 5, 4, 5, 4, 6, 3, 3, 6, 6, 6, 6, 5, 5, 6, 9, 4, 5, 6, 4, 9, 6, 5, 6, 4, 4, 6, 6, 7, 3, + 2, 4, 4, 5, 8, 8, 8, 5, 7, 7, 7, 7, 7, 7, 9, 7, 6, 6, 6, 6, 3, 3, 3, 3, 8, 8, 9, 9, 9, 9, 9, 6, + 9, 8, 8, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 10, 5, 6, 6, 6, 6, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 5, 7, 5, 7, 5, 7, 5, 8, 6, 8, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 5, 3, 2, 7, 5, + 5, 5, 2, 5, 2, 5, 2, 5, 3, 5, 2, 8, 6, 8, 6, 8, 6, 8, 8, 6, 9, 6, 9, 6, 9, 6, 10, 10, 7, 4, 7, 4, + 7, 4, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, 7, 6, + 7, 7, 5, 7, 5, 7, 5, 2, 6, 7, 6, 9, 10, 9, 6, 6, 5, 6, 6, 6, 6, 3, 6, 2, 6, 6, 6, 6, 7, 3, 7, 9, + 4, 9, 8, 9, 4, 7, 7, 6, 7, 6, 7, 8, 9, 3, 7, 7, 10, 8, 5, 9, 8, 6, 6, 5, 7, 9, 6, 9, 9, 3, 7, 6, + 5, 6, 4, 6, 6, 6, 6, 6, 5, 5, 6, 6, 4, 5, 6, 6, 6, 5, 6, 8, 6, 5, 6, 5, 6, 8, 6, 8, 8, 4, 6, 6, + 6, 8, 6, 8, 6, 7, 6, 3, 3, 3, 10, 10, 8, 7, 6, 8, 7, 7, 7, 6, 7, 6, 9, 6, 8, 8, 7, 7, 10, 8, 9, 8, + 6, 7, 5, 6, 9, 6, 8, 8, 11, 11, 8, 9, 7, 7, 12, 7, 6, 6, 6, 4, 7, 6, 8, 5, 6, 6, 5, 6, 7, 6, 6, 6, + 6, 5, 6, 6, 8, 6, 6, 6, 10, 10, 8, 8, 6, 5, 9, 6, 6, 6, 4, 5, 5, 2, 2, 2, 10, 9, 6, 5, 6, 6, 5, 4, + 9, 8, 9, 8, 9, 8, 7, 6, 6, 11, 11, 5, 2, 2, 2, 2, 4, 4, 4, 5, 5, 5, 9, 13, 3, 5, 3, 3, 6, 1, 4, 6, + 6, 9, 6, 9, 6, 11, 9, 9, 7, 9, 9, 9, 9, 6, 7, 8, 7, 6, 6, 8, 4, 6, 6, 6, 6, 7, 6, 6, 6, 2, 6, 6, + 6, 4, 4, 4, 4, 4, 4, 4, 6, 11, 6, 11, 4, 3, 2, 6, 3, 2, 1, 0, 0, 11, 11, 2, 2, 7, 7, 8, 10, 10, 7, 6, + 9, 4, 4, 10, 10, 9, 6, 8, 7, 0, 0, 0, 0, 0, 6, 8, 6, 6, 11, 8, 7, 7, 10, 8, 7, 6, 10, 8, 7, 8, 10, 10, + 6, 5, 9, 8, 9, 6, 8, 6, 8, 6, 14, 11, 9, 6, 11, 9, 11, 8, 7, 5, 6, 6, 6, 6, 6, 11, 11, 8, 6, 6, 6, 6, + 6, 5, 4, 7, 6, 9, 8, 6, 5, 7, 6, 7, 5, 7, 5, 7, 7, 8, 6, 9, 7, 11, 10, 9, 7, 7, 5, 5, 6, 7, 6, 7, + 6, 6, 6, 10, 9, 8, 7, 8, 6, 8, 6, 9, 7, 9, 7, 3, 9, 8, 7, 6, 7, 6, 8, 6, 8, 6, 8, 6, 10, 7, 3, 7, + 6, 7, 6, 9, 10, 6, 6, 9, 6, 9, 6, 9, 8, 6, 5, 6, 5, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6, 7, 5, 6, 6, 6, + 6, 6, 6, 8, 6, 6, 4, 9, 8, 5, 4, 7, 6, 6, 6, 6, 6, 9, 10, 9, 9, 6, 6, 10, 9, 11, 9, 8, 6, 8, 7, 6, + 5, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 2, 3, 2, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, + 6, 9, 6, 9, 6, 9, 6, 8, 6, 8, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 7, 6, 7, 6, 7, 6, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 2, 12, 15, 7, 0, 6, 3, 3, 5, 8, 7, 10, 8, 3, 4, 4, 7, 7, 3, 4, 3, 4, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 7, 7, 5, 10, 7, 7, 7, 8, 6, 6, 8, 8, 4, 3, 7, 6, 11, 9, 9, 7, 9, 7, + 7, 7, 8, 7, 11, 7, 7, 7, 4, 4, 4, 6, 5, 7, 7, 7, 6, 7, 7, 3, 6, 7, 3, 3, 6, 3, 11, 7, 7, 7, 7, 4, + 6, 4, 7, 5, 9, 6, 5, 6, 4, 7, 4, 7, 3, 3, 7, 7, 7, 7, 7, 6, 7, 10, 4, 6, 7, 4, 10, 6, 5, 7, 4, 4, + 7, 7, 8, 3, 2, 4, 4, 6, 9, 9, 9, 5, 7, 7, 7, 7, 7, 7, 10, 7, 6, 6, 6, 6, 4, 4, 4, 4, 8, 9, 9, 9, + 9, 9, 9, 7, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 11, 6, 7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 7, 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 8, 7, 8, 7, 6, 7, + 6, 7, 6, 7, 6, 7, 6, 7, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 8, 7, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 7, 6, + 3, 3, 7, 6, 6, 6, 3, 6, 3, 6, 3, 6, 4, 6, 3, 9, 7, 9, 7, 9, 7, 8, 9, 7, 9, 7, 9, 7, 9, 7, 11, 11, + 7, 4, 7, 4, 7, 4, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 7, 4, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, + 11, 9, 7, 5, 7, 7, 6, 7, 6, 7, 6, 3, 7, 7, 7, 10, 11, 9, 7, 7, 6, 7, 7, 7, 7, 3, 7, 2, 7, 7, 7, 7, + 7, 3, 7, 9, 6, 9, 9, 9, 4, 7, 7, 6, 7, 6, 7, 8, 9, 4, 7, 7, 11, 9, 7, 9, 8, 7, 7, 7, 7, 9, 7, 9, + 9, 4, 7, 7, 6, 7, 4, 7, 7, 7, 5, 7, 6, 5, 7, 7, 4, 6, 5, 7, 6, 6, 7, 8, 7, 6, 7, 5, 7, 9, 6, 9, + 9, 4, 7, 7, 7, 9, 6, 9, 6, 7, 7, 4, 4, 3, 11, 11, 9, 7, 7, 8, 7, 7, 7, 6, 8, 6, 9, 7, 9, 9, 7, 8, + 11, 8, 9, 8, 7, 7, 7, 7, 9, 7, 8, 8, 11, 11, 8, 10, 7, 7, 12, 7, 7, 7, 7, 5, 6, 7, 9, 6, 7, 7, 6, 7, + 9, 7, 7, 7, 7, 6, 5, 5, 9, 6, 7, 7, 11, 11, 8, 9, 7, 6, 10, 7, 7, 7, 5, 6, 6, 3, 3, 3, 11, 11, 7, 6, + 5, 7, 6, 5, 11, 9, 11, 9, 11, 9, 7, 5, 6, 12, 12, 5, 2, 2, 2, 2, 4, 4, 4, 5, 5, 5, 9, 15, 3, 5, 4, 4, + 6, 2, 4, 7, 7, 10, 7, 10, 6, 13, 10, 9, 7, 9, 9, 9, 9, 7, 7, 8, 8, 7, 7, 9, 5, 7, 7, 7, 7, 7, 7, 7, + 7, 3, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 6, 12, 6, 12, 4, 3, 2, 7, 3, 2, 1, 0, 0, 12, 12, 3, 2, 7, 7, 9, + 11, 11, 7, 7, 9, 4, 5, 11, 11, 9, 7, 9, 8, 0, 0, 0, 0, 0, 6, 9, 7, 7, 11, 9, 7, 7, 11, 9, 7, 7, 10, 10, + 7, 7, 10, 10, 7, 6, 9, 9, 9, 7, 8, 5, 8, 5, 14, 13, 9, 7, 11, 9, 11, 9, 7, 6, 6, 7, 7, 7, 7, 12, 11, 9, + 7, 7, 7, 7, 7, 6, 5, 7, 7, 10, 9, 7, 6, 8, 6, 7, 6, 7, 6, 8, 7, 8, 7, 9, 8, 12, 11, 10, 9, 7, 6, 7, + 5, 7, 5, 7, 5, 7, 6, 10, 8, 9, 7, 8, 7, 8, 7, 10, 8, 10, 8, 4, 9, 9, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, + 11, 9, 4, 7, 7, 7, 7, 10, 11, 6, 7, 9, 7, 9, 7, 9, 9, 7, 6, 7, 6, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 7, + 6, 7, 5, 7, 5, 7, 5, 8, 7, 6, 5, 10, 9, 6, 5, 7, 6, 7, 6, 7, 7, 11, 11, 10, 9, 7, 6, 11, 10, 12, 11, 9, + 7, 9, 7, 7, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, + 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 3, 4, 3, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, + 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 8, 7, 8, 7, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 7, 5, 7, 5, 7, 5, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 13, 16, 8, 0, 7, 3, 4, 5, 8, 7, 11, 9, 3, 4, 4, 7, 7, 3, 4, 3, + 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 7, 7, 6, 11, 8, 8, 8, 9, 7, 6, 9, 9, 5, 3, 8, 6, 11, 9, + 10, 7, 10, 8, 7, 7, 9, 7, 11, 7, 7, 7, 4, 5, 4, 7, 5, 8, 7, 8, 6, 8, 7, 4, 7, 8, 3, 3, 6, 3, 11, 8, + 8, 8, 8, 5, 6, 4, 8, 6, 10, 7, 6, 6, 5, 7, 5, 7, 3, 4, 7, 7, 7, 7, 7, 6, 8, 11, 5, 6, 7, 4, 11, 7, + 6, 7, 5, 5, 8, 8, 9, 3, 3, 5, 5, 6, 10, 10, 10, 6, 8, 8, 8, 8, 8, 8, 11, 8, 7, 7, 7, 7, 5, 5, 5, 5, + 9, 9, 10, 10, 10, 10, 10, 7, 10, 9, 9, 9, 9, 7, 7, 8, 7, 7, 7, 7, 7, 7, 11, 6, 7, 7, 7, 7, 3, 3, 3, 3, + 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 6, 8, 6, 8, 7, 8, 7, 8, 7, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, + 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 8, 9, 8, 5, 3, 5, 3, 5, 3, 5, 3, + 5, 3, 8, 6, 3, 3, 8, 6, 6, 6, 3, 6, 3, 6, 3, 6, 4, 6, 3, 9, 8, 9, 8, 9, 8, 9, 9, 8, 10, 8, 10, 8, + 10, 8, 12, 12, 8, 5, 8, 5, 8, 5, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 7, 4, 9, 8, 9, 8, 9, 8, 9, 8, + 9, 8, 9, 8, 11, 10, 7, 6, 7, 7, 6, 7, 6, 7, 6, 4, 7, 8, 7, 11, 11, 10, 8, 7, 6, 8, 8, 7, 8, 3, 8, 2, + 8, 8, 8, 8, 8, 3, 8, 10, 6, 10, 9, 10, 4, 8, 8, 7, 7, 7, 7, 9, 10, 5, 8, 8, 11, 9, 7, 10, 9, 7, 7, 7, + 7, 10, 7, 10, 10, 5, 7, 8, 6, 8, 4, 8, 8, 8, 6, 8, 6, 6, 8, 8, 4, 6, 7, 8, 7, 6, 8, 8, 8, 6, 8, 6, + 8, 10, 7, 10, 11, 4, 8, 8, 8, 11, 7, 10, 7, 8, 7, 5, 5, 3, 12, 12, 10, 8, 8, 9, 8, 8, 8, 7, 8, 7, 11, 7, + 9, 9, 8, 9, 11, 9, 10, 9, 7, 8, 7, 8, 10, 7, 9, 9, 13, 13, 9, 11, 8, 8, 13, 8, 7, 8, 7, 5, 7, 7, 9, 6, + 8, 8, 6, 7, 9, 8, 8, 8, 8, 6, 5, 6, 9, 7, 8, 8, 11, 11, 8, 10, 7, 6, 11, 7, 7, 8, 5, 6, 6, 3, 3, 3, + 11, 11, 8, 6, 6, 8, 6, 5, 11, 10, 11, 10, 11, 10, 7, 6, 7, 13, 13, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 9, 16, + 3, 5, 4, 4, 6, 2, 5, 7, 7, 11, 7, 10, 7, 13, 10, 10, 8, 10, 10, 10, 10, 8, 7, 9, 8, 7, 7, 9, 5, 7, 7, 7, + 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 7, 13, 7, 13, 4, 3, 2, 7, 3, 3, 1, 0, 0, 13, 13, 3, + 2, 8, 7, 11, 11, 11, 8, 7, 10, 4, 5, 11, 11, 10, 8, 10, 9, 0, 0, 0, 0, 0, 7, 9, 7, 8, 13, 10, 8, 8, 12, 9, + 8, 7, 12, 10, 9, 7, 12, 10, 7, 6, 10, 10, 10, 8, 8, 6, 8, 6, 15, 14, 10, 8, 13, 10, 13, 10, 8, 6, 8, 7, 8, 8, + 8, 13, 12, 10, 8, 7, 8, 7, 8, 6, 5, 8, 7, 11, 9, 7, 6, 8, 7, 8, 6, 8, 6, 9, 7, 9, 8, 10, 9, 13, 11, 10, + 10, 8, 6, 7, 5, 7, 6, 7, 6, 7, 7, 11, 9, 9, 8, 9, 8, 9, 8, 11, 9, 11, 9, 5, 11, 9, 8, 8, 9, 7, 9, 8, + 9, 8, 9, 8, 11, 9, 5, 8, 7, 8, 7, 11, 11, 7, 7, 10, 7, 10, 7, 11, 9, 7, 6, 7, 7, 9, 8, 9, 8, 10, 8, 10, + 8, 10, 8, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, 7, 5, 11, 10, 6, 5, 8, 7, 7, 7, 7, 8, 11, 12, 11, 10, 8, 7, 13, + 11, 13, 12, 9, 8, 9, 8, 7, 6, 9, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, + 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 10, 8, 10, 8, 10, 8, 10, 8, 10, + 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 9, 8, 9, 8, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 7, 6, 7, + 6, 7, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 14, 17, 8, 0, 7, 4, 4, 6, 9, 8, 12, 10, 3, 4, 4, 8, + 8, 4, 5, 4, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 8, 8, 8, 6, 12, 9, 9, 8, 10, 7, 7, 10, 10, 5, 3, + 8, 7, 12, 10, 11, 8, 11, 8, 7, 7, 10, 8, 13, 8, 7, 8, 4, 5, 4, 7, 6, 8, 7, 8, 7, 8, 8, 4, 7, 8, 4, 4, + 7, 4, 13, 8, 8, 8, 8, 5, 7, 5, 8, 7, 10, 7, 7, 7, 5, 7, 5, 8, 4, 4, 8, 8, 8, 8, 7, 7, 8, 12, 5, 7, + 8, 5, 12, 7, 6, 8, 5, 5, 8, 8, 9, 4, 3, 5, 5, 7, 10, 10, 10, 6, 9, 9, 9, 9, 9, 9, 12, 8, 7, 7, 7, 7, + 5, 5, 5, 5, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10, 10, 7, 8, 8, 7, 7, 7, 7, 7, 7, 12, 7, 8, 8, 8, 8, + 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 7, 9, 7, 9, 7, 9, 7, 8, 7, 8, 7, 8, 7, + 8, 7, 10, 8, 10, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 10, 7, 10, 7, 10, 7, 10, 7, 10, 8, 10, 8, 5, 4, 5, 4, + 5, 4, 5, 4, 5, 4, 8, 8, 3, 4, 8, 7, 7, 7, 4, 7, 4, 7, 4, 7, 5, 7, 4, 10, 8, 10, 8, 10, 8, 10, 10, 8, + 11, 8, 11, 8, 11, 8, 12, 13, 8, 5, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 10, 8, 10, 8, + 10, 8, 10, 8, 10, 8, 10, 8, 13, 10, 7, 7, 7, 8, 7, 8, 7, 8, 7, 4, 8, 9, 7, 12, 12, 11, 8, 7, 7, 8, 8, 8, + 8, 4, 8, 3, 8, 8, 8, 8, 9, 4, 8, 11, 6, 11, 9, 11, 4, 9, 9, 7, 9, 7, 8, 10, 11, 5, 8, 9, 12, 10, 8, 11, + 10, 8, 8, 7, 7, 11, 8, 11, 11, 5, 7, 8, 7, 8, 4, 8, 8, 8, 7, 8, 7, 6, 8, 8, 4, 7, 7, 8, 7, 7, 8, 9, + 8, 7, 8, 6, 8, 10, 7, 10, 11, 4, 8, 8, 8, 11, 7, 10, 7, 8, 7, 5, 5, 3, 13, 13, 10, 8, 8, 10, 9, 8, 9, 7, + 9, 7, 11, 8, 10, 10, 8, 9, 12, 10, 11, 10, 8, 8, 7, 8, 11, 8, 10, 9, 13, 13, 9, 12, 9, 8, 15, 8, 7, 8, 8, 5, + 8, 8, 9, 7, 8, 8, 7, 8, 10, 8, 8, 8, 8, 7, 5, 7, 9, 7, 8, 8, 11, 11, 9, 11, 8, 7, 11, 8, 8, 8, 5, 7, + 7, 4, 4, 4, 12, 12, 8, 7, 7, 8, 7, 6, 13, 10, 13, 10, 13, 10, 7, 7, 7, 14, 14, 6, 3, 3, 3, 3, 6, 6, 6, 7, + 7, 6, 12, 17, 3, 6, 4, 4, 7, 2, 5, 8, 8, 12, 8, 11, 7, 14, 10, 11, 9, 11, 11, 11, 11, 8, 9, 10, 9, 8, 8, 10, + 5, 8, 8, 8, 8, 7, 8, 8, 8, 4, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 7, 14, 7, 14, 5, 4, 2, 8, 4, 3, 1, 0, + 0, 14, 14, 4, 3, 8, 8, 11, 12, 13, 9, 7, 11, 5, 6, 13, 13, 11, 8, 11, 9, 0, 0, 0, 0, 0, 7, 10, 8, 8, 13, 11, + 9, 8, 13, 10, 9, 7, 12, 10, 9, 9, 13, 12, 8, 7, 11, 10, 11, 8, 9, 7, 9, 7, 17, 15, 11, 8, 13, 11, 13, 11, 8, 7, + 9, 8, 8, 8, 8, 14, 13, 10, 8, 8, 8, 8, 8, 7, 5, 9, 8, 11, 10, 8, 7, 9, 8, 8, 7, 8, 7, 9, 8, 10, 8, 11, + 10, 15, 12, 11, 10, 8, 7, 7, 5, 7, 7, 7, 7, 8, 7, 11, 10, 10, 9, 9, 8, 10, 8, 11, 9, 11, 9, 5, 11, 9, 9, 8, + 9, 8, 10, 8, 10, 8, 9, 8, 12, 10, 5, 9, 7, 9, 7, 12, 12, 7, 8, 11, 8, 11, 8, 11, 9, 8, 7, 8, 7, 10, 8, 10, + 8, 11, 8, 11, 8, 11, 8, 8, 7, 8, 7, 8, 7, 8, 7, 9, 8, 7, 5, 12, 11, 7, 5, 8, 7, 8, 7, 8, 8, 12, 12, 12, + 11, 8, 7, 13, 12, 14, 12, 10, 8, 10, 9, 8, 7, 9, 8, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, + 7, 9, 7, 9, 7, 9, 7, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 5, 4, 5, 4, 11, 8, 11, 8, 11, + 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 10, 8, 10, 8, 11, 9, 11, 9, 11, 9, 11, 9, 11, + 9, 7, 7, 7, 7, 7, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 15, 18, 9, 0, 8, 4, 4, 7, 10, 8, 12, 11, + 4, 5, 5, 8, 8, 4, 5, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 8, 8, 8, 6, 13, 10, 10, 9, 10, 8, 8, + 10, 11, 6, 4, 9, 7, 13, 11, 11, 9, 11, 9, 7, 8, 11, 9, 14, 9, 8, 8, 5, 6, 5, 8, 6, 9, 8, 9, 7, 9, 8, 4, + 8, 8, 4, 4, 7, 4, 13, 8, 9, 9, 9, 6, 7, 5, 8, 7, 11, 7, 7, 7, 5, 7, 5, 8, 4, 4, 8, 8, 8, 8, 7, 7, + 9, 12, 5, 7, 8, 5, 12, 8, 7, 8, 5, 5, 9, 8, 10, 4, 3, 5, 5, 7, 11, 11, 11, 6, 10, 10, 10, 10, 10, 10, 13, 9, + 8, 8, 8, 8, 6, 6, 6, 6, 10, 11, 11, 11, 11, 11, 11, 8, 11, 11, 11, 11, 11, 8, 9, 9, 8, 8, 8, 8, 8, 8, 13, 7, + 8, 8, 8, 8, 4, 4, 4, 4, 9, 8, 9, 9, 9, 9, 9, 8, 9, 8, 8, 8, 8, 7, 9, 7, 10, 8, 10, 8, 10, 8, 9, 7, + 9, 7, 9, 7, 9, 7, 10, 9, 10, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 8, 10, 8, 10, 8, 10, 8, 11, 8, 11, 8, + 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 9, 8, 4, 4, 9, 7, 7, 7, 4, 7, 4, 7, 4, 7, 5, 7, 4, 11, 8, 11, 8, 11, + 8, 10, 11, 8, 11, 9, 11, 9, 11, 9, 13, 14, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 5, 8, 5, 8, 5, + 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 14, 11, 8, 7, 8, 8, 7, 8, 7, 8, 7, 4, 8, 10, 8, 13, 13, 11, 9, 7, + 7, 9, 9, 8, 9, 4, 9, 3, 9, 9, 9, 9, 10, 4, 9, 12, 7, 12, 10, 12, 4, 10, 10, 8, 10, 8, 8, 11, 11, 6, 9, 10, + 13, 11, 8, 11, 11, 9, 8, 8, 8, 11, 9, 11, 11, 6, 8, 9, 7, 8, 4, 8, 9, 9, 7, 9, 7, 7, 8, 9, 4, 7, 7, 8, + 8, 7, 9, 9, 9, 7, 9, 7, 8, 11, 8, 10, 12, 4, 8, 9, 8, 12, 8, 11, 8, 9, 7, 6, 6, 4, 14, 15, 11, 9, 9, 11, + 10, 9, 10, 8, 10, 8, 12, 8, 11, 11, 9, 11, 13, 11, 11, 11, 9, 9, 8, 9, 11, 9, 11, 10, 14, 14, 10, 13, 10, 9, 16, 9, + 8, 9, 8, 6, 8, 8, 11, 7, 8, 8, 7, 8, 11, 8, 9, 8, 9, 7, 7, 7, 11, 7, 8, 8, 13, 13, 10, 11, 8, 7, 12, 8, + 8, 8, 6, 7, 7, 4, 4, 4, 12, 13, 8, 7, 7, 8, 7, 6, 14, 11, 14, 11, 14, 11, 8, 7, 8, 15, 15, 6, 3, 3, 3, 3, + 6, 6, 6, 8, 8, 7, 12, 18, 4, 7, 4, 4, 7, 2, 5, 8, 8, 12, 8, 12, 8, 15, 12, 11, 9, 11, 11, 11, 11, 9, 10, 11, + 9, 8, 8, 11, 6, 8, 8, 8, 8, 9, 9, 9, 9, 4, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 8, 15, 8, 15, 5, 4, 3, 8, + 4, 3, 2, 0, 0, 15, 15, 4, 3, 9, 8, 12, 13, 13, 10, 8, 12, 5, 6, 14, 14, 11, 9, 11, 9, 0, 0, 0, 0, 0, 8, 11, + 8, 8, 15, 12, 10, 9, 13, 11, 10, 8, 13, 10, 10, 9, 14, 12, 8, 7, 11, 10, 11, 9, 9, 7, 9, 7, 18, 16, 11, 9, 13, 12, + 15, 12, 9, 7, 9, 8, 9, 9, 9, 15, 14, 11, 8, 9, 9, 9, 9, 8, 6, 10, 8, 12, 11, 8, 7, 9, 8, 9, 7, 9, 7, 10, + 9, 11, 8, 12, 10, 16, 13, 11, 10, 9, 7, 8, 7, 8, 7, 8, 7, 9, 7, 13, 10, 10, 9, 10, 8, 11, 8, 12, 9, 12, 9, 6, + 12, 11, 10, 8, 11, 8, 11, 8, 11, 8, 10, 8, 13, 11, 6, 10, 8, 10, 8, 13, 13, 8, 8, 11, 8, 11, 8, 12, 11, 8, 7, 8, + 7, 11, 8, 11, 8, 11, 9, 11, 9, 11, 9, 9, 7, 9, 7, 9, 7, 9, 7, 10, 8, 8, 6, 13, 11, 8, 6, 9, 8, 9, 7, 9, + 9, 14, 14, 14, 12, 9, 8, 15, 12, 15, 12, 11, 9, 11, 10, 8, 7, 11, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, + 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 6, 4, 11, + 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 8, 11, 8, 11, 9, 11, 9, 11, + 9, 11, 9, 11, 9, 8, 7, 8, 7, 8, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 16, 20, 10, 0, 8, 4, 4, 7, + 10, 9, 13, 11, 4, 5, 5, 9, 9, 4, 5, 4, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 9, 9, 9, 7, 14, 11, 11, + 10, 11, 8, 8, 11, 11, 6, 4, 9, 8, 14, 12, 11, 9, 11, 10, 8, 8, 11, 10, 14, 9, 8, 9, 5, 6, 5, 9, 7, 9, 9, 9, + 8, 9, 9, 4, 8, 9, 4, 4, 8, 4, 14, 9, 9, 9, 9, 6, 7, 5, 9, 8, 12, 8, 8, 8, 6, 9, 6, 9, 4, 4, 9, 9, + 9, 9, 9, 8, 9, 13, 6, 8, 9, 5, 13, 8, 7, 9, 6, 6, 9, 9, 10, 4, 3, 6, 6, 8, 12, 12, 12, 7, 11, 11, 11, 11, + 11, 11, 14, 10, 8, 8, 8, 8, 6, 6, 6, 6, 11, 12, 11, 11, 11, 11, 11, 9, 11, 11, 11, 11, 11, 8, 9, 10, 9, 9, 9, 9, + 9, 9, 14, 8, 9, 9, 9, 9, 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 11, 9, 11, 9, + 11, 9, 10, 8, 10, 8, 10, 8, 10, 8, 11, 9, 11, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 11, 8, 11, 8, 11, 8, 11, 8, + 11, 9, 11, 9, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 10, 8, 4, 4, 9, 8, 8, 8, 4, 8, 4, 8, 4, 8, 6, 8, 4, 12, + 9, 12, 9, 12, 9, 11, 12, 9, 11, 9, 11, 9, 11, 9, 14, 15, 10, 6, 10, 6, 10, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 5, + 8, 5, 8, 5, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 14, 12, 8, 8, 8, 9, 8, 9, 8, 9, 8, 5, 9, 11, 9, 14, + 14, 11, 9, 8, 7, 9, 9, 9, 9, 4, 9, 3, 9, 9, 9, 9, 11, 4, 10, 12, 7, 13, 11, 13, 5, 11, 11, 8, 10, 8, 9, 11, + 11, 6, 9, 10, 14, 12, 9, 11, 11, 9, 9, 8, 8, 13, 9, 13, 11, 6, 8, 9, 7, 9, 5, 9, 9, 10, 8, 9, 7, 7, 9, 9, + 5, 8, 8, 9, 8, 8, 9, 10, 9, 8, 9, 7, 9, 11, 8, 12, 12, 5, 9, 9, 9, 12, 8, 11, 8, 10, 8, 6, 6, 4, 15, 15, + 11, 9, 10, 11, 11, 9, 11, 8, 10, 8, 14, 9, 12, 12, 9, 11, 14, 11, 11, 11, 9, 10, 8, 10, 13, 9, 11, 10, 16, 16, 11, 13, + 10, 10, 16, 10, 9, 9, 9, 6, 9, 9, 11, 7, 9, 9, 8, 9, 11, 9, 9, 9, 9, 8, 7, 8, 11, 8, 9, 9, 14, 14, 11, 12, + 9, 8, 13, 9, 9, 9, 6, 8, 7, 4, 4, 4, 14, 14, 9, 8, 8, 9, 8, 6, 14, 12, 14, 12, 14, 12, 8, 8, 8, 16, 16, 7, + 3, 3, 3, 3, 6, 6, 6, 8, 8, 7, 12, 20, 4, 7, 5, 5, 8, 2, 6, 9, 9, 13, 9, 13, 8, 16, 13, 11, 10, 12, 12, 12, + 12, 9, 10, 11, 10, 9, 9, 11, 6, 9, 9, 9, 9, 9, 9, 9, 10, 4, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 8, 16, 8, 16, + 5, 4, 3, 9, 4, 3, 2, 0, 0, 16, 16, 4, 3, 9, 9, 12, 14, 14, 11, 9, 13, 5, 6, 14, 14, 11, 9, 11, 10, 0, 0, 0, + 0, 0, 8, 12, 9, 9, 16, 13, 11, 9, 14, 11, 11, 9, 14, 12, 11, 9, 15, 14, 9, 7, 13, 12, 11, 9, 10, 8, 10, 8, 19, 17, + 11, 9, 14, 13, 16, 13, 10, 8, 10, 9, 9, 9, 9, 16, 15, 12, 9, 9, 9, 9, 9, 8, 6, 11, 8, 14, 11, 9, 7, 10, 9, 9, + 8, 9, 8, 11, 10, 11, 9, 12, 11, 17, 13, 13, 10, 10, 8, 8, 7, 8, 7, 8, 7, 9, 8, 13, 11, 11, 10, 10, 9, 11, 9, 13, + 10, 13, 10, 6, 14, 11, 11, 9, 11, 9, 11, 9, 11, 9, 10, 9, 14, 11, 6, 11, 9, 11, 9, 14, 14, 8, 9, 11, 9, 11, 9, 14, + 11, 9, 7, 9, 8, 12, 9, 12, 9, 11, 9, 11, 9, 11, 9, 10, 8, 10, 8, 10, 8, 10, 8, 10, 9, 8, 6, 13, 12, 8, 6, 10, + 8, 9, 8, 9, 9, 14, 14, 15, 13, 10, 8, 16, 14, 16, 14, 11, 9, 11, 10, 9, 7, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, + 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 6, + 4, 6, 4, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, + 10, 11, 10, 11, 10, 11, 10, 11, 10, 8, 8, 8, 8, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 17, 20, 10, 0, + 9, 4, 4, 7, 11, 9, 14, 12, 4, 5, 5, 9, 9, 4, 5, 4, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 9, 9, 9, + 7, 15, 10, 11, 10, 12, 9, 9, 12, 12, 6, 5, 10, 8, 15, 13, 13, 10, 13, 11, 9, 9, 12, 10, 15, 9, 9, 10, 5, 6, 5, 9, + 7, 10, 9, 10, 8, 10, 9, 6, 8, 9, 4, 4, 8, 4, 15, 9, 10, 10, 10, 6, 8, 6, 9, 8, 13, 8, 8, 8, 6, 9, 6, 9, + 4, 4, 9, 9, 9, 9, 9, 8, 10, 14, 6, 8, 9, 5, 14, 9, 7, 9, 6, 6, 10, 9, 11, 4, 3, 6, 6, 8, 13, 13, 13, 7, + 10, 10, 10, 10, 10, 10, 14, 10, 9, 9, 9, 9, 6, 6, 6, 6, 12, 13, 13, 13, 13, 13, 13, 9, 13, 12, 12, 12, 12, 9, 10, 10, + 9, 9, 9, 9, 9, 9, 14, 8, 9, 9, 9, 9, 4, 4, 4, 4, 10, 9, 10, 10, 10, 10, 10, 9, 10, 9, 9, 9, 9, 8, 10, 8, + 10, 9, 10, 9, 10, 9, 10, 8, 10, 8, 10, 8, 10, 8, 12, 10, 12, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 8, 12, 8, + 12, 8, 12, 8, 12, 9, 12, 9, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 11, 8, 5, 4, 10, 8, 8, 8, 4, 8, 4, 8, 4, 8, + 6, 8, 4, 13, 9, 13, 9, 13, 9, 11, 13, 9, 13, 10, 13, 10, 13, 10, 15, 15, 11, 6, 11, 6, 11, 6, 9, 8, 9, 8, 9, 8, + 9, 8, 9, 6, 9, 6, 9, 6, 12, 9, 12, 9, 12, 9, 12, 9, 12, 9, 12, 9, 15, 13, 9, 8, 9, 10, 8, 10, 8, 10, 8, 5, + 9, 10, 9, 14, 14, 13, 10, 9, 8, 10, 10, 9, 10, 4, 10, 3, 10, 10, 10, 10, 10, 4, 10, 13, 8, 13, 11, 13, 5, 10, 11, 9, + 10, 9, 10, 12, 13, 6, 10, 10, 15, 13, 9, 13, 12, 10, 9, 9, 9, 14, 9, 14, 13, 6, 9, 10, 8, 9, 5, 9, 10, 10, 8, 10, + 8, 8, 9, 10, 5, 8, 9, 9, 8, 8, 10, 11, 10, 8, 10, 8, 9, 12, 9, 12, 13, 5, 9, 10, 9, 13, 9, 12, 9, 10, 9, 6, + 6, 5, 15, 16, 12, 10, 10, 12, 10, 10, 11, 9, 11, 9, 14, 10, 13, 13, 10, 11, 15, 12, 13, 12, 10, 10, 9, 10, 14, 9, 12, 11, + 17, 17, 11, 14, 11, 10, 18, 11, 9, 10, 9, 6, 9, 9, 12, 8, 9, 9, 8, 9, 12, 9, 10, 9, 10, 8, 8, 8, 12, 8, 9, 9, + 15, 15, 11, 12, 9, 8, 14, 9, 9, 9, 6, 8, 8, 4, 4, 4, 14, 14, 9, 8, 8, 9, 8, 7, 15, 13, 15, 13, 15, 13, 9, 8, + 9, 17, 17, 7, 3, 3, 3, 3, 6, 6, 6, 8, 8, 6, 15, 20, 4, 7, 5, 5, 8, 2, 6, 9, 9, 13, 9, 14, 9, 18, 14, 13, + 11, 13, 13, 13, 13, 10, 10, 12, 11, 9, 9, 12, 7, 9, 9, 9, 9, 9, 10, 10, 10, 4, 9, 9, 9, 6, 6, 6, 6, 6, 6, 6, + 9, 17, 9, 17, 6, 4, 3, 9, 5, 3, 2, 0, 0, 17, 17, 4, 3, 10, 10, 13, 15, 15, 10, 9, 13, 6, 7, 16, 16, 13, 10, 12, + 10, 0, 0, 0, 0, 0, 9, 13, 9, 9, 17, 14, 11, 10, 15, 12, 10, 9, 15, 12, 12, 11, 17, 14, 9, 8, 14, 12, 13, 10, 10, 8, + 10, 8, 20, 18, 13, 10, 15, 13, 17, 14, 10, 8, 10, 9, 10, 10, 10, 17, 16, 14, 9, 10, 10, 10, 10, 9, 6, 11, 9, 14, 12, 10, + 8, 11, 9, 10, 8, 10, 8, 11, 10, 12, 9, 13, 11, 18, 15, 14, 11, 10, 8, 9, 8, 9, 7, 9, 7, 9, 8, 13, 12, 12, 10, 11, + 9, 12, 9, 14, 10, 14, 10, 6, 14, 12, 11, 9, 11, 9, 12, 9, 12, 9, 11, 9, 15, 12, 6, 10, 9, 10, 9, 14, 14, 9, 9, 13, + 9, 13, 9, 14, 12, 10, 8, 10, 8, 13, 9, 13, 9, 13, 10, 13, 10, 13, 10, 10, 8, 10, 8, 10, 8, 10, 8, 11, 9, 9, 6, 14, + 12, 9, 6, 10, 9, 9, 8, 10, 10, 15, 15, 16, 13, 11, 9, 16, 14, 17, 14, 12, 10, 13, 11, 10, 8, 11, 9, 10, 9, 10, 9, 10, + 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 6, 4, 6, 4, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 12, + 9, 12, 9, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 9, 8, 9, 8, 9, 8, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, + 18, 22, 11, 0, 9, 5, 4, 7, 12, 10, 15, 13, 4, 5, 5, 10, 10, 4, 6, 4, 7, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, + 4, 10, 10, 10, 8, 16, 11, 11, 11, 12, 10, 9, 12, 13, 6, 5, 10, 9, 16, 13, 13, 11, 13, 11, 9, 9, 13, 10, 16, 10, 9, 10, + 5, 7, 5, 10, 7, 10, 10, 11, 8, 11, 10, 7, 10, 11, 5, 5, 9, 5, 16, 11, 10, 11, 11, 7, 9, 6, 11, 10, 13, 9, 10, 8, + 6, 10, 6, 10, 5, 4, 10, 10, 10, 10, 10, 9, 10, 15, 6, 10, 10, 6, 15, 9, 8, 10, 6, 6, 10, 11, 12, 4, 4, 6, 6, 10, + 13, 13, 13, 8, 11, 11, 11, 11, 11, 11, 15, 11, 10, 10, 10, 10, 6, 6, 6, 6, 12, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, + 13, 9, 11, 11, 10, 10, 10, 10, 10, 10, 15, 8, 10, 10, 10, 10, 5, 5, 5, 5, 10, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, + 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 8, 11, 8, 11, 8, 11, 8, 12, 11, 12, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 12, 10, 12, 10, 12, 10, 12, 10, 13, 11, 13, 11, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 11, 10, 5, 5, 10, 9, 9, 9, 5, 9, + 5, 9, 5, 9, 6, 9, 5, 13, 11, 13, 11, 13, 11, 13, 13, 11, 13, 10, 13, 10, 13, 10, 16, 16, 11, 7, 11, 7, 11, 7, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 6, 9, 6, 9, 6, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 16, 13, 9, 10, 9, 10, 8, 10, + 8, 10, 8, 5, 10, 11, 10, 15, 15, 13, 10, 9, 9, 10, 10, 10, 10, 5, 10, 3, 10, 10, 10, 10, 11, 4, 11, 14, 8, 14, 12, 14, + 6, 11, 11, 10, 11, 10, 10, 13, 13, 6, 10, 11, 16, 13, 10, 13, 13, 11, 10, 9, 9, 14, 10, 14, 13, 6, 9, 11, 8, 11, 6, 11, + 11, 11, 10, 10, 8, 8, 11, 10, 6, 9, 9, 11, 9, 8, 10, 12, 11, 8, 10, 8, 11, 13, 10, 12, 13, 6, 11, 10, 11, 13, 10, 13, + 10, 11, 9, 6, 6, 5, 16, 17, 13, 10, 11, 13, 11, 11, 11, 10, 12, 10, 14, 10, 13, 13, 10, 12, 16, 13, 13, 13, 11, 11, 9, 11, + 14, 10, 13, 12, 18, 18, 12, 15, 11, 11, 19, 11, 10, 10, 10, 7, 10, 10, 13, 8, 11, 11, 9, 10, 14, 11, 10, 11, 11, 8, 8, 10, + 13, 9, 11, 11, 16, 16, 12, 14, 10, 8, 15, 10, 10, 11, 7, 8, 9, 5, 5, 5, 15, 16, 11, 9, 10, 11, 9, 7, 16, 13, 16, 13, + 16, 13, 9, 10, 9, 18, 18, 7, 3, 3, 4, 3, 6, 6, 6, 8, 8, 7, 15, 21, 4, 7, 6, 6, 9, 2, 7, 10, 10, 14, 10, 14, + 9, 19, 14, 13, 11, 14, 14, 14, 14, 10, 11, 13, 11, 10, 10, 13, 7, 10, 10, 10, 10, 11, 11, 11, 11, 5, 9, 9, 9, 6, 6, 6, + 6, 6, 6, 6, 9, 18, 9, 18, 6, 5, 3, 10, 5, 4, 2, 0, 0, 18, 18, 5, 3, 11, 10, 15, 16, 16, 11, 10, 14, 6, 7, 17, + 17, 13, 10, 13, 12, 0, 0, 0, 0, 0, 10, 13, 10, 11, 18, 14, 12, 11, 16, 13, 11, 10, 16, 14, 12, 11, 17, 14, 10, 8, 14, 12, + 13, 10, 10, 10, 10, 10, 22, 19, 13, 10, 17, 14, 18, 14, 11, 8, 11, 10, 10, 10, 10, 18, 17, 13, 11, 10, 11, 11, 11, 9, 7, 11, + 9, 14, 13, 10, 8, 11, 10, 10, 9, 10, 9, 12, 11, 13, 11, 14, 12, 19, 15, 13, 12, 11, 8, 9, 8, 9, 9, 9, 9, 10, 9, 15, + 13, 13, 11, 12, 11, 13, 11, 15, 12, 15, 12, 6, 14, 13, 12, 10, 12, 10, 13, 11, 13, 11, 12, 11, 16, 14, 6, 11, 10, 11, 10, 15, + 15, 10, 10, 13, 10, 13, 10, 14, 13, 10, 8, 10, 8, 13, 11, 13, 11, 13, 10, 13, 10, 13, 10, 11, 8, 11, 10, 11, 10, 11, 10, 12, + 11, 10, 7, 15, 14, 9, 7, 11, 9, 10, 9, 11, 11, 16, 17, 16, 15, 11, 9, 18, 15, 19, 16, 13, 10, 13, 12, 10, 8, 12, 10, 11, + 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 6, 5, 6, 5, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, + 10, 13, 10, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 9, 10, 9, 10, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 4, 4, 19, 23, 11, 0, 10, 5, 4, 8, 12, 10, 16, 13, 4, 6, 6, 10, 10, 4, 6, 4, 7, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 4, 4, 10, 10, 10, 8, 16, 12, 12, 12, 13, 10, 9, 13, 14, 6, 5, 11, 10, 17, 14, 14, 11, 14, 12, 10, 10, 14, 11, + 17, 10, 10, 10, 6, 7, 6, 10, 8, 11, 10, 11, 9, 11, 10, 7, 10, 11, 5, 5, 9, 5, 17, 11, 10, 11, 11, 8, 9, 6, 11, 10, + 14, 10, 10, 8, 7, 10, 7, 10, 5, 4, 10, 10, 10, 10, 10, 10, 11, 16, 7, 10, 10, 6, 16, 10, 8, 10, 6, 6, 11, 11, 12, 4, + 4, 6, 7, 10, 14, 14, 14, 8, 12, 12, 12, 12, 12, 12, 16, 12, 10, 10, 10, 10, 6, 6, 6, 6, 13, 14, 14, 14, 14, 14, 14, 10, + 14, 14, 14, 14, 14, 10, 11, 11, 10, 10, 10, 10, 10, 10, 16, 9, 10, 10, 10, 10, 5, 5, 5, 5, 10, 11, 10, 10, 10, 10, 10, 10, + 10, 11, 11, 11, 11, 10, 11, 10, 12, 10, 12, 10, 12, 10, 12, 9, 12, 9, 12, 9, 12, 9, 13, 11, 13, 11, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 13, 10, 13, 10, 13, 10, 13, 10, 14, 11, 14, 11, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 11, 10, 5, 5, 11, 9, + 9, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 14, 11, 14, 11, 14, 11, 13, 14, 11, 14, 10, 14, 10, 14, 10, 17, 17, 12, 8, 12, 8, + 12, 8, 10, 9, 10, 9, 10, 9, 10, 9, 10, 6, 10, 6, 10, 6, 14, 11, 14, 11, 14, 11, 14, 11, 14, 11, 14, 11, 17, 14, 10, 10, + 10, 10, 8, 10, 8, 10, 8, 5, 10, 12, 10, 16, 16, 14, 10, 10, 9, 11, 11, 11, 11, 5, 11, 4, 11, 11, 11, 11, 12, 4, 11, 14, + 9, 15, 13, 15, 6, 12, 12, 10, 11, 10, 10, 14, 14, 6, 11, 12, 17, 14, 10, 14, 14, 11, 10, 10, 10, 14, 10, 14, 14, 6, 10, 11, + 8, 11, 6, 11, 11, 11, 10, 10, 8, 9, 11, 10, 6, 9, 10, 11, 10, 9, 10, 12, 11, 9, 10, 9, 11, 13, 10, 14, 14, 6, 11, 10, + 11, 14, 10, 13, 10, 12, 10, 6, 6, 5, 17, 18, 13, 11, 11, 14, 12, 11, 12, 10, 12, 10, 16, 10, 14, 14, 11, 13, 17, 14, 14, 14, + 11, 12, 10, 11, 14, 10, 14, 12, 18, 18, 12, 16, 12, 12, 20, 12, 10, 10, 10, 7, 11, 10, 14, 8, 11, 11, 9, 10, 14, 11, 10, 11, + 11, 9, 9, 10, 13, 10, 11, 11, 17, 17, 13, 15, 10, 9, 15, 10, 10, 11, 7, 9, 9, 5, 5, 5, 15, 16, 11, 9, 10, 11, 10, 8, + 17, 14, 17, 14, 17, 14, 10, 10, 10, 19, 19, 8, 3, 3, 4, 3, 7, 7, 7, 8, 8, 7, 15, 23, 4, 8, 6, 6, 9, 2, 7, 10, + 10, 14, 10, 15, 10, 19, 14, 14, 12, 14, 14, 14, 14, 11, 11, 14, 11, 10, 10, 13, 7, 10, 10, 10, 10, 11, 12, 12, 11, 5, 10, 10, + 10, 6, 6, 6, 6, 6, 6, 6, 10, 19, 10, 19, 6, 5, 3, 10, 5, 4, 2, 0, 0, 19, 19, 5, 3, 11, 10, 16, 17, 17, 12, 10, + 15, 6, 8, 18, 18, 14, 10, 14, 12, 0, 0, 0, 0, 0, 10, 14, 10, 11, 19, 15, 12, 11, 17, 14, 12, 11, 17, 15, 14, 13, 19, 17, + 10, 8, 14, 14, 14, 10, 11, 10, 11, 10, 22, 20, 14, 11, 18, 15, 19, 15, 12, 9, 12, 11, 11, 11, 11, 19, 18, 14, 11, 11, 11, 11, + 11, 9, 7, 12, 10, 16, 14, 10, 8, 12, 10, 11, 9, 11, 9, 13, 11, 14, 11, 15, 12, 20, 16, 14, 12, 12, 9, 10, 9, 10, 9, 10, + 9, 10, 10, 16, 13, 13, 11, 12, 11, 14, 11, 15, 12, 15, 12, 6, 16, 14, 13, 10, 13, 10, 14, 11, 14, 11, 12, 11, 17, 14, 6, 12, + 10, 12, 10, 16, 16, 10, 10, 14, 10, 14, 10, 16, 14, 10, 8, 10, 9, 14, 11, 14, 11, 14, 10, 14, 10, 14, 10, 12, 9, 11, 10, 11, + 10, 11, 10, 12, 11, 10, 7, 16, 15, 9, 7, 11, 10, 10, 10, 11, 11, 17, 17, 17, 15, 11, 9, 19, 16, 20, 17, 14, 10, 13, 12, 10, + 8, 13, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 5, 6, 5, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, + 10, 14, 10, 14, 10, 14, 10, 14, 11, 14, 11, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 10, 10, 10, 10, 10, 10, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 4, 4, 20, 24, 12, 0, 10, 5, 5, 8, 13, 11, 17, 14, 5, 6, 6, 11, 11, 5, 6, 5, 7, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 5, 5, 11, 11, 11, 9, 17, 13, 12, 12, 14, 11, 10, 14, 13, 7, 6, 11, 10, 17, 14, 16, 12, 16, 12, + 11, 11, 13, 12, 18, 11, 11, 11, 6, 7, 6, 11, 8, 12, 11, 12, 9, 12, 10, 7, 11, 12, 5, 5, 10, 5, 19, 12, 11, 12, 12, 8, + 9, 7, 12, 10, 15, 10, 10, 9, 7, 11, 7, 11, 5, 5, 11, 11, 11, 11, 11, 9, 12, 17, 7, 10, 11, 6, 17, 10, 9, 11, 7, 7, + 12, 12, 13, 5, 4, 7, 7, 10, 15, 15, 15, 9, 13, 13, 13, 13, 13, 13, 17, 12, 11, 11, 11, 11, 7, 7, 7, 7, 14, 14, 16, 16, + 16, 16, 16, 11, 16, 13, 13, 13, 13, 11, 12, 12, 11, 11, 11, 11, 11, 11, 17, 9, 10, 10, 10, 10, 5, 5, 5, 5, 11, 12, 11, 11, + 11, 11, 11, 11, 11, 12, 12, 12, 12, 10, 12, 10, 13, 11, 13, 11, 13, 11, 12, 9, 12, 9, 12, 9, 12, 9, 14, 12, 14, 12, 11, 10, + 11, 10, 11, 10, 11, 10, 11, 10, 14, 11, 14, 11, 14, 11, 14, 11, 13, 12, 13, 12, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 13, 10, + 6, 5, 11, 10, 10, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 14, 12, 14, 12, 14, 12, 14, 14, 12, 16, 11, 16, 11, 16, 11, 18, 18, + 12, 8, 12, 8, 12, 8, 11, 9, 11, 9, 11, 9, 11, 9, 11, 7, 11, 7, 11, 7, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, + 18, 15, 11, 10, 11, 11, 9, 11, 9, 11, 9, 6, 11, 13, 11, 17, 17, 16, 11, 11, 9, 12, 12, 11, 12, 5, 12, 4, 12, 12, 12, 12, + 13, 5, 13, 15, 9, 17, 13, 17, 6, 13, 12, 11, 12, 11, 11, 13, 16, 7, 11, 12, 17, 14, 11, 16, 13, 12, 11, 11, 11, 15, 11, 15, + 16, 7, 11, 12, 8, 12, 6, 12, 12, 12, 11, 11, 8, 9, 12, 11, 6, 10, 10, 12, 10, 9, 11, 13, 12, 9, 11, 9, 12, 13, 10, 15, + 15, 6, 12, 11, 12, 15, 11, 14, 11, 12, 11, 7, 7, 6, 19, 19, 14, 11, 12, 13, 13, 12, 12, 11, 13, 11, 17, 11, 14, 14, 11, 13, + 17, 13, 16, 13, 12, 12, 11, 12, 15, 11, 13, 13, 19, 19, 13, 16, 12, 13, 21, 12, 11, 11, 11, 8, 11, 10, 15, 8, 12, 12, 10, 11, + 14, 12, 11, 12, 12, 9, 9, 10, 15, 10, 12, 12, 17, 17, 14, 16, 11, 9, 17, 11, 10, 12, 8, 9, 9, 5, 5, 5, 17, 17, 12, 10, + 10, 12, 9, 8, 18, 15, 18, 15, 18, 15, 11, 10, 10, 20, 20, 8, 4, 4, 4, 4, 8, 8, 8, 10, 10, 8, 15, 23, 5, 8, 6, 6, + 10, 3, 7, 11, 11, 15, 11, 16, 10, 20, 15, 16, 12, 15, 15, 15, 15, 12, 12, 14, 12, 11, 11, 14, 8, 11, 11, 11, 11, 11, 12, 12, + 12, 5, 10, 10, 10, 7, 7, 7, 7, 7, 7, 7, 10, 20, 10, 20, 7, 5, 3, 11, 5, 4, 2, 0, 0, 20, 20, 5, 4, 12, 11, 17, + 17, 19, 13, 11, 16, 7, 8, 18, 18, 16, 11, 15, 13, 0, 0, 0, 0, 0, 11, 14, 10, 12, 19, 16, 13, 12, 18, 14, 13, 11, 18, 15, + 15, 13, 19, 17, 11, 8, 15, 15, 16, 11, 12, 10, 12, 10, 24, 21, 16, 12, 18, 16, 19, 16, 12, 9, 12, 11, 12, 12, 12, 20, 19, 14, + 12, 12, 12, 12, 12, 10, 8, 12, 10, 17, 15, 11, 8, 12, 11, 11, 10, 11, 10, 13, 12, 13, 12, 15, 14, 21, 17, 15, 12, 12, 9, 11, + 9, 11, 11, 11, 11, 11, 10, 17, 15, 13, 13, 13, 12, 13, 12, 16, 13, 16, 13, 7, 17, 15, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, + 17, 14, 7, 13, 11, 13, 11, 17, 17, 11, 10, 15, 10, 15, 10, 17, 15, 11, 8, 11, 9, 14, 12, 14, 12, 16, 11, 16, 11, 16, 11, 13, + 9, 12, 10, 12, 10, 12, 10, 13, 12, 11, 8, 16, 16, 10, 8, 12, 10, 11, 10, 12, 12, 18, 18, 17, 15, 11, 9, 19, 17, 19, 18, 15, + 11, 14, 14, 11, 8, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 11, + 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 7, 5, 7, 5, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, + 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 13, 12, 13, 12, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 11, 10, 11, 10, 11, 10, 12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 21, 26, 13, 0, 11, 5, 6, 8, 14, 12, 17, 15, 4, 6, 6, 12, 12, 6, 7, 6, + 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 9, 18, 13, 13, 13, 14, 11, 10, 14, 15, 8, 6, 12, 10, 18, 15, + 15, 12, 15, 13, 11, 10, 15, 12, 19, 11, 12, 11, 6, 8, 6, 11, 9, 12, 11, 12, 10, 12, 11, 7, 11, 12, 5, 5, 10, 5, 19, 12, + 12, 12, 12, 8, 9, 7, 12, 11, 16, 11, 11, 9, 7, 12, 7, 12, 5, 6, 12, 12, 12, 12, 12, 10, 12, 17, 7, 10, 12, 7, 17, 11, + 9, 12, 7, 7, 12, 12, 14, 6, 4, 7, 7, 10, 15, 15, 15, 9, 13, 13, 13, 13, 13, 13, 18, 13, 11, 11, 11, 11, 8, 8, 8, 8, + 14, 15, 15, 15, 15, 15, 15, 12, 15, 15, 15, 15, 15, 12, 12, 12, 11, 11, 11, 11, 11, 11, 18, 10, 11, 11, 11, 11, 5, 5, 5, 5, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 11, 13, 11, 13, 11, 13, 11, 13, 10, 13, 10, 13, 10, 13, 10, 14, 12, + 14, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 11, 14, 11, 14, 11, 14, 11, 15, 12, 15, 12, 8, 5, 8, 5, 8, 5, 8, 5, + 8, 5, 13, 11, 6, 5, 12, 10, 10, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 15, 12, 15, 12, 15, 12, 14, 15, 12, 15, 12, 15, 12, + 15, 12, 19, 20, 13, 8, 13, 8, 13, 8, 11, 9, 11, 9, 11, 9, 11, 9, 10, 7, 10, 7, 10, 7, 15, 12, 15, 12, 15, 12, 15, 12, + 15, 12, 15, 12, 19, 16, 12, 11, 12, 11, 9, 11, 9, 11, 9, 6, 12, 13, 11, 18, 18, 15, 12, 11, 9, 12, 12, 12, 12, 5, 12, 4, + 12, 12, 12, 12, 13, 6, 13, 16, 10, 16, 14, 17, 6, 13, 13, 11, 12, 11, 11, 15, 15, 8, 12, 13, 18, 15, 11, 15, 15, 12, 11, 10, + 12, 16, 11, 16, 15, 8, 12, 12, 9, 12, 6, 12, 12, 13, 11, 12, 9, 9, 12, 12, 6, 10, 11, 12, 11, 10, 12, 13, 12, 10, 12, 9, + 12, 15, 11, 16, 15, 6, 12, 12, 12, 15, 11, 15, 11, 13, 11, 8, 8, 6, 19, 20, 15, 12, 12, 15, 13, 12, 13, 11, 14, 11, 18, 11, + 15, 15, 12, 14, 18, 15, 15, 15, 12, 13, 10, 12, 16, 11, 15, 14, 20, 20, 14, 17, 13, 13, 21, 13, 11, 12, 11, 8, 12, 11, 15, 9, + 12, 12, 10, 12, 15, 12, 12, 12, 12, 10, 9, 11, 15, 11, 12, 12, 17, 17, 14, 16, 11, 10, 18, 11, 11, 12, 8, 10, 9, 5, 5, 5, + 17, 18, 12, 10, 11, 12, 10, 8, 19, 16, 19, 16, 19, 16, 12, 11, 11, 21, 21, 9, 4, 4, 4, 4, 8, 8, 8, 10, 10, 9, 18, 25, + 4, 8, 6, 6, 10, 3, 7, 12, 12, 16, 12, 17, 11, 21, 17, 15, 13, 16, 16, 16, 16, 12, 12, 15, 12, 12, 12, 15, 8, 12, 12, 12, + 12, 11, 12, 12, 12, 5, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 11, 21, 11, 21, 7, 5, 4, 12, 6, 4, 2, 0, 0, 21, 21, 5, + 4, 13, 12, 17, 18, 19, 13, 11, 16, 7, 8, 19, 19, 15, 12, 16, 13, 0, 0, 0, 0, 0, 11, 15, 11, 12, 20, 17, 13, 12, 19, 15, + 13, 11, 18, 15, 14, 13, 20, 17, 11, 9, 16, 16, 15, 12, 12, 11, 12, 11, 26, 22, 16, 13, 19, 17, 20, 17, 13, 10, 13, 12, 12, 12, + 12, 21, 20, 16, 12, 12, 12, 12, 12, 10, 8, 13, 11, 18, 15, 11, 9, 13, 11, 12, 10, 12, 10, 14, 13, 15, 12, 17, 14, 22, 18, 16, + 13, 13, 10, 10, 9, 12, 11, 12, 11, 11, 11, 17, 15, 14, 13, 14, 12, 15, 12, 17, 14, 17, 14, 8, 18, 15, 14, 11, 14, 12, 15, 12, + 15, 12, 14, 12, 18, 15, 8, 13, 11, 13, 11, 18, 18, 11, 11, 15, 11, 15, 11, 18, 15, 11, 9, 11, 10, 15, 12, 15, 12, 15, 12, 15, + 12, 15, 12, 13, 10, 12, 11, 12, 11, 12, 11, 14, 12, 11, 8, 17, 16, 10, 8, 13, 11, 11, 11, 12, 12, 18, 18, 18, 16, 12, 10, 20, + 18, 21, 18, 15, 12, 14, 14, 11, 9, 14, 12, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, + 11, 13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 5, 8, 5, 15, 12, 15, 12, 15, 12, 15, 12, 15, + 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 12, 11, 12, + 11, 12, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 22, 26, 13, 0, 11, 6, 6, 8, 14, 12, 18, 15, 4, 7, 7, 12, + 12, 6, 7, 6, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 9, 19, 13, 14, 13, 15, 12, 11, 15, 15, 8, 6, + 13, 11, 19, 16, 16, 13, 16, 13, 11, 11, 15, 13, 19, 12, 12, 12, 7, 8, 7, 12, 9, 13, 12, 13, 10, 13, 12, 7, 11, 13, 6, 6, + 11, 6, 20, 13, 13, 13, 13, 9, 10, 7, 13, 11, 16, 11, 11, 10, 8, 12, 8, 12, 6, 6, 12, 12, 12, 12, 12, 11, 13, 18, 7, 11, + 12, 7, 18, 11, 9, 12, 7, 7, 13, 13, 14, 6, 5, 7, 8, 11, 16, 16, 16, 9, 13, 13, 13, 13, 13, 13, 19, 13, 12, 12, 12, 12, + 8, 8, 8, 8, 15, 16, 16, 16, 16, 16, 16, 12, 16, 15, 15, 15, 15, 12, 13, 13, 12, 12, 12, 12, 12, 12, 18, 10, 12, 12, 12, 12, + 6, 6, 6, 6, 13, 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, 13, 10, 13, 10, 13, 10, + 13, 10, 15, 13, 15, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 11, 15, 11, 15, 11, 15, 11, 15, 13, 15, 13, 8, 6, 8, 6, + 8, 6, 8, 6, 8, 6, 13, 12, 6, 6, 13, 11, 11, 11, 6, 11, 6, 11, 6, 11, 7, 11, 6, 16, 13, 16, 13, 16, 13, 15, 16, 13, + 16, 13, 16, 13, 16, 13, 20, 21, 13, 9, 13, 9, 13, 9, 11, 10, 11, 10, 11, 10, 11, 10, 11, 7, 11, 7, 11, 7, 15, 13, 15, 13, + 15, 13, 15, 13, 15, 13, 15, 13, 19, 16, 12, 11, 12, 12, 10, 12, 10, 12, 10, 6, 12, 13, 12, 19, 18, 16, 13, 11, 10, 13, 13, 12, + 13, 6, 13, 4, 13, 13, 13, 13, 13, 6, 13, 17, 10, 17, 15, 17, 7, 13, 14, 12, 13, 12, 12, 15, 16, 8, 13, 13, 19, 16, 12, 16, + 15, 13, 12, 11, 12, 16, 12, 16, 16, 8, 12, 13, 10, 13, 7, 13, 13, 13, 11, 13, 10, 10, 13, 13, 7, 11, 11, 13, 11, 10, 13, 14, + 13, 10, 13, 10, 13, 16, 12, 16, 16, 7, 13, 13, 13, 16, 12, 15, 12, 13, 11, 8, 8, 6, 20, 21, 15, 13, 13, 15, 13, 13, 14, 12, + 14, 12, 18, 12, 16, 16, 13, 15, 19, 15, 16, 15, 13, 13, 11, 13, 16, 12, 15, 15, 22, 22, 15, 18, 14, 13, 23, 13, 12, 13, 12, 9, + 12, 12, 16, 10, 13, 13, 11, 12, 16, 13, 13, 13, 13, 10, 10, 11, 16, 11, 13, 13, 20, 20, 14, 17, 12, 10, 19, 12, 12, 13, 9, 10, + 10, 6, 6, 6, 18, 19, 13, 11, 11, 13, 10, 9, 19, 16, 19, 16, 19, 16, 12, 11, 11, 22, 22, 9, 4, 4, 5, 4, 8, 8, 8, 11, + 11, 8, 18, 26, 4, 8, 7, 7, 11, 3, 8, 12, 12, 17, 12, 18, 11, 22, 17, 16, 14, 17, 17, 17, 17, 13, 13, 15, 13, 12, 12, 15, + 8, 12, 12, 12, 12, 13, 13, 13, 12, 6, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 11, 22, 11, 22, 7, 6, 4, 12, 6, 4, 2, 0, + 0, 22, 22, 6, 4, 13, 12, 18, 19, 20, 13, 12, 17, 7, 9, 20, 20, 16, 13, 16, 14, 0, 0, 0, 0, 0, 12, 16, 12, 13, 22, 17, + 14, 13, 20, 16, 13, 12, 19, 17, 14, 14, 20, 18, 12, 10, 16, 16, 16, 13, 13, 11, 13, 11, 26, 23, 17, 14, 21, 17, 22, 18, 13, 10, + 13, 12, 13, 13, 13, 22, 21, 16, 13, 13, 13, 13, 13, 11, 9, 14, 12, 18, 16, 12, 10, 14, 12, 13, 11, 13, 11, 14, 13, 15, 13, 17, + 15, 23, 19, 16, 14, 13, 10, 11, 10, 12, 10, 12, 10, 12, 11, 18, 15, 15, 13, 15, 13, 15, 13, 18, 14, 18, 14, 8, 18, 16, 15, 12, + 15, 12, 15, 13, 15, 13, 15, 13, 19, 16, 8, 13, 12, 13, 12, 19, 18, 12, 12, 15, 12, 15, 12, 18, 16, 12, 10, 12, 10, 16, 13, 16, + 13, 16, 13, 16, 13, 16, 13, 13, 10, 13, 11, 13, 11, 13, 11, 15, 13, 12, 9, 18, 17, 11, 9, 13, 12, 12, 11, 13, 13, 20, 19, 20, + 17, 13, 11, 22, 18, 22, 19, 16, 13, 15, 15, 12, 10, 15, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, + 12, 13, 12, 13, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 6, 8, 6, 16, 13, 16, 13, 16, + 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 15, 13, 15, 13, 16, 14, 16, 14, 16, 14, 16, 14, 16, + 14, 12, 11, 12, 11, 12, 11, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 23, 28, 14, 0, 12, 6, 6, 8, 15, 13, 19, 16, + 4, 7, 7, 13, 13, 6, 7, 6, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6, 6, 13, 13, 13, 10, 20, 14, 14, 14, 16, 12, 11, + 16, 16, 8, 6, 13, 11, 20, 17, 17, 13, 17, 14, 12, 12, 16, 13, 20, 13, 12, 12, 7, 9, 7, 12, 9, 13, 12, 13, 11, 13, 12, 8, + 12, 14, 6, 6, 11, 6, 20, 14, 13, 13, 13, 9, 10, 8, 14, 11, 17, 11, 11, 10, 8, 12, 8, 13, 6, 6, 13, 13, 13, 13, 12, 11, + 13, 19, 8, 11, 13, 7, 19, 12, 10, 13, 8, 8, 13, 14, 15, 6, 5, 8, 8, 11, 17, 17, 17, 10, 14, 14, 14, 14, 14, 14, 20, 14, + 12, 12, 12, 12, 8, 8, 8, 8, 16, 17, 17, 17, 17, 17, 17, 13, 17, 16, 16, 16, 16, 12, 13, 14, 12, 12, 12, 12, 12, 12, 19, 11, + 12, 12, 12, 12, 6, 6, 6, 6, 13, 14, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 11, 13, 11, 14, 12, 14, 12, 14, 12, 14, 11, + 14, 11, 14, 11, 14, 11, 16, 13, 16, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 12, 16, 12, 16, 12, 16, 12, 16, 14, 16, 14, + 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 14, 12, 6, 6, 13, 11, 11, 11, 6, 11, 6, 11, 6, 11, 8, 11, 6, 17, 14, 17, 14, 17, + 14, 16, 17, 14, 17, 13, 17, 13, 17, 13, 20, 21, 14, 9, 14, 9, 14, 9, 12, 10, 12, 10, 12, 10, 12, 10, 12, 8, 12, 8, 12, 8, + 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 20, 17, 12, 11, 12, 12, 10, 12, 10, 12, 10, 7, 13, 14, 12, 20, 19, 17, 13, 12, + 10, 13, 13, 13, 13, 6, 13, 4, 13, 13, 13, 13, 14, 6, 14, 18, 11, 18, 15, 18, 8, 14, 14, 12, 13, 12, 12, 16, 17, 8, 13, 14, + 20, 17, 12, 17, 16, 13, 12, 12, 12, 18, 13, 18, 17, 8, 12, 13, 10, 14, 8, 14, 13, 14, 11, 13, 10, 10, 14, 13, 8, 11, 12, 14, + 11, 11, 13, 15, 13, 11, 13, 10, 14, 16, 12, 17, 16, 8, 14, 13, 14, 16, 12, 16, 12, 14, 12, 8, 8, 6, 21, 22, 16, 13, 13, 16, + 14, 13, 14, 12, 15, 12, 18, 13, 17, 17, 13, 15, 20, 16, 17, 16, 13, 14, 12, 13, 18, 13, 16, 15, 22, 22, 15, 19, 14, 14, 24, 14, + 12, 13, 13, 9, 13, 12, 16, 11, 14, 14, 11, 13, 17, 14, 13, 14, 13, 11, 10, 11, 16, 11, 14, 13, 20, 20, 16, 18, 13, 11, 19, 12, + 12, 14, 9, 11, 10, 6, 6, 6, 20, 21, 14, 11, 11, 14, 11, 9, 20, 17, 20, 17, 20, 17, 12, 11, 12, 23, 23, 9, 4, 4, 5, 4, + 8, 8, 8, 10, 10, 10, 18, 27, 4, 8, 8, 8, 11, 3, 8, 13, 13, 17, 13, 18, 12, 23, 18, 17, 14, 17, 17, 17, 17, 13, 13, 16, + 14, 13, 13, 16, 9, 13, 13, 13, 13, 13, 14, 14, 13, 6, 12, 12, 12, 8, 8, 8, 8, 8, 8, 8, 12, 23, 12, 23, 8, 6, 4, 13, + 6, 5, 2, 0, 0, 23, 23, 6, 4, 14, 12, 18, 20, 20, 14, 12, 18, 8, 9, 21, 21, 17, 13, 17, 15, 0, 0, 0, 0, 0, 12, 17, + 12, 14, 22, 18, 14, 13, 21, 16, 14, 12, 20, 17, 16, 14, 22, 19, 13, 11, 18, 17, 17, 13, 13, 11, 13, 11, 28, 24, 18, 15, 21, 18, + 22, 19, 14, 11, 14, 13, 13, 13, 13, 23, 22, 17, 14, 13, 13, 13, 13, 11, 9, 14, 13, 18, 16, 13, 11, 14, 12, 13, 11, 13, 11, 15, + 13, 16, 14, 18, 16, 24, 20, 17, 14, 14, 11, 12, 10, 12, 11, 12, 11, 13, 11, 19, 16, 15, 14, 15, 13, 16, 14, 19, 15, 19, 15, 8, + 18, 16, 15, 13, 15, 13, 16, 14, 16, 14, 15, 13, 20, 17, 8, 14, 12, 14, 12, 20, 19, 12, 12, 16, 12, 16, 12, 18, 16, 13, 11, 13, + 11, 17, 14, 17, 14, 17, 13, 17, 13, 17, 13, 14, 11, 13, 11, 13, 11, 13, 11, 15, 13, 12, 9, 19, 18, 11, 9, 14, 12, 13, 11, 13, + 13, 20, 20, 21, 19, 14, 12, 22, 20, 23, 21, 17, 13, 16, 15, 13, 11, 15, 13, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, + 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 6, 8, 6, 17, + 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 16, 14, 16, 14, 17, 15, 17, 15, 17, + 15, 17, 15, 17, 15, 12, 11, 12, 11, 12, 11, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 24, 28, 14, 0, 12, 6, 6, 10, + 16, 13, 20, 17, 5, 7, 7, 13, 13, 6, 8, 6, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6, 6, 13, 13, 13, 10, 21, 15, 15, + 14, 16, 13, 12, 17, 17, 9, 7, 14, 12, 21, 18, 18, 14, 18, 14, 13, 13, 17, 14, 21, 13, 13, 13, 7, 9, 7, 13, 10, 14, 13, 14, + 11, 14, 13, 8, 13, 14, 6, 6, 12, 6, 22, 14, 14, 14, 14, 10, 11, 8, 14, 12, 18, 12, 12, 11, 9, 13, 9, 13, 6, 6, 13, 13, + 13, 13, 13, 12, 14, 20, 8, 12, 13, 8, 20, 12, 10, 13, 8, 8, 14, 14, 16, 6, 5, 8, 8, 12, 18, 18, 18, 10, 15, 15, 15, 15, + 15, 15, 20, 14, 13, 13, 13, 13, 9, 9, 9, 9, 16, 18, 18, 18, 18, 18, 18, 13, 18, 17, 17, 17, 17, 13, 14, 14, 13, 13, 13, 13, + 13, 13, 20, 11, 13, 13, 13, 13, 6, 6, 6, 6, 14, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 12, 14, 12, 15, 13, 15, 13, + 15, 13, 14, 11, 14, 11, 14, 11, 14, 11, 16, 14, 16, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 13, 17, 13, 17, 13, 17, 13, + 17, 14, 17, 14, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 12, 7, 6, 14, 12, 12, 12, 6, 12, 6, 12, 6, 12, 8, 12, 6, 18, + 14, 18, 14, 18, 14, 16, 18, 14, 18, 14, 18, 14, 18, 14, 21, 22, 14, 10, 14, 10, 14, 10, 13, 11, 13, 11, 13, 11, 13, 11, 13, 8, + 13, 8, 13, 8, 17, 14, 17, 14, 17, 14, 17, 14, 17, 14, 17, 14, 21, 18, 13, 12, 13, 13, 11, 13, 11, 13, 11, 7, 13, 15, 13, 20, + 20, 18, 14, 13, 11, 14, 14, 13, 14, 6, 14, 4, 14, 14, 14, 14, 15, 6, 14, 18, 11, 19, 16, 19, 8, 15, 15, 13, 14, 13, 13, 17, + 18, 9, 14, 15, 21, 18, 13, 18, 17, 14, 13, 13, 13, 19, 13, 19, 18, 9, 13, 14, 11, 14, 8, 14, 14, 14, 12, 14, 11, 11, 14, 14, + 8, 12, 12, 14, 12, 11, 14, 15, 14, 11, 14, 11, 14, 16, 13, 18, 18, 8, 14, 14, 14, 18, 13, 17, 13, 14, 13, 9, 9, 7, 22, 23, + 17, 14, 14, 17, 15, 14, 15, 13, 16, 13, 20, 13, 18, 18, 14, 16, 21, 17, 18, 17, 14, 14, 13, 14, 19, 13, 17, 16, 23, 23, 16, 20, + 15, 14, 25, 14, 13, 14, 13, 10, 13, 13, 16, 11, 14, 14, 12, 13, 17, 14, 14, 14, 14, 11, 10, 12, 16, 12, 14, 14, 20, 20, 16, 18, + 13, 11, 20, 13, 13, 14, 10, 11, 11, 6, 6, 6, 20, 21, 14, 12, 12, 14, 12, 10, 21, 18, 21, 18, 21, 18, 13, 12, 12, 24, 24, 10, + 4, 4, 5, 4, 9, 9, 9, 11, 11, 10, 18, 28, 5, 10, 8, 8, 12, 3, 8, 13, 13, 18, 13, 19, 12, 24, 19, 18, 15, 18, 18, 18, + 18, 14, 14, 17, 14, 13, 13, 17, 9, 13, 13, 13, 13, 15, 14, 14, 13, 6, 12, 12, 12, 8, 8, 8, 8, 8, 8, 8, 12, 24, 12, 24, + 8, 6, 4, 13, 6, 5, 2, 0, 0, 24, 24, 6, 4, 14, 13, 20, 21, 22, 15, 13, 19, 8, 10, 22, 22, 18, 14, 17, 15, 0, 0, 0, + 0, 0, 13, 18, 13, 14, 23, 19, 15, 14, 21, 17, 15, 13, 21, 18, 17, 14, 23, 20, 13, 11, 19, 18, 18, 14, 14, 12, 14, 12, 28, 25, + 19, 15, 22, 19, 23, 19, 14, 11, 15, 13, 14, 14, 14, 24, 23, 18, 14, 14, 14, 14, 14, 12, 10, 15, 13, 20, 16, 13, 11, 15, 13, 14, + 12, 14, 12, 16, 14, 17, 14, 18, 16, 25, 21, 18, 15, 14, 11, 13, 10, 13, 12, 13, 12, 13, 12, 20, 17, 16, 14, 16, 14, 17, 14, 19, + 15, 19, 15, 9, 20, 16, 16, 13, 16, 13, 17, 14, 17, 14, 16, 14, 21, 17, 9, 15, 13, 15, 13, 20, 20, 13, 13, 17, 13, 17, 13, 20, + 16, 13, 11, 13, 11, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 14, 11, 14, 12, 14, 12, 14, 12, 16, 14, 13, 10, 20, 18, 12, 10, 14, + 13, 13, 12, 14, 14, 21, 21, 21, 19, 13, 12, 23, 20, 24, 21, 17, 14, 17, 15, 13, 11, 16, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, + 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, + 6, 9, 6, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 17, 14, 17, 14, 17, + 15, 17, 15, 17, 15, 17, 15, 17, 15, 13, 12, 13, 12, 13, 12, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 3, + 0, 0, 0, 3, 0, 0, 0, 28, 0, 1, 0, 0, 0, 0, 2,216, 0, 3, 0, 1, 0, 0, 4,226, 0, 4, 2,188, 0, 0, 0,144, + 0,128, 0, 6, 0, 16, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, 2,201, 2,221, 2,243, + 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4, 13, 4, 79, 4, 95, 4,134, 4,145, + 5, 19, 30, 1, 30, 63, 30,133, 30,241, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, + 32, 68, 32,127, 32,164, 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, + 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, 0,160, 1,146, 1,160, + 1,175, 1,240, 1,250, 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3,132, 3,140, + 3,142, 3,163, 3,209, 3,214, 4, 0, 4, 14, 4, 80, 4, 96, 4,136, 4,146, 30, 0, 30, 62, 30,128, 30,160, 30,242, 31, 77, + 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32,127, 32,163, 32,167, 32,171, 33, 5, 33, 19, + 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,100, 37,202, +251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, 0,178, 0, 97,255, 73,255, 49,255,150,254,133,254,132,254,118, +255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207,253,206,253,205,254,130,254,127, 0, 0,253,154, 0, 0,254, 12, + 0, 0,254, 9,228, 88,228, 24,227,122,228,125, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234,225,225,225,224,225,219, +225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200,224, 37,224, 34,224, 26, +224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,120, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 0, 0, + 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,108, 0, 0, 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, 1,164, 1,165, 1,166, + 1,167, 2,105, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, 1,244, 1,245, 2,107, + 1,246, 1,247, 2,147, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154, 1,248, 1,249, 2, 0, 2, 1, 3,111, 3,112, + 3,113, 3,114, 3,115, 3,116, 3,117, 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 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, 2, 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, 2, 13, + 0,114, 0,100, 0,101, 0,105, 2, 15, 0,120, 0,161, 0,112, 0,107, 2, 32, 0,118, 0,106, 2, 48, 0,136, 0,154, 2, 45, + 0,115, 2, 49, 2, 50, 0,103, 0,119, 2, 39, 2, 42, 2, 41, 1,141, 2, 46, 0,108, 0,124, 2, 33, 0,168, 0,186, 0,129, + 0, 99, 0,110, 2, 44, 1, 66, 2, 47, 2, 40, 0,109, 0,125, 2, 16, 0, 98, 0,130, 0,133, 0,151, 1, 20, 1, 21, 2, 2, + 2, 3, 2, 10, 2, 11, 2, 6, 2, 7, 0,185, 2, 51, 0,193, 1, 58, 2, 23, 2, 28, 2, 20, 2, 21, 2, 52, 2, 53, 2, 14, + 0,121, 2, 8, 2, 12, 2, 17, 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, 1, 75, 1, 82, 0,113, 1, 78, 1, 79, 1, 80, 0,122, 1, 83, 1, 81, 1, 76, 0, 4, + 2,188, 0, 0, 0,144, 0,128, 0, 6, 0, 16, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, + 2,201, 2,221, 2,243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4, 13, 4, 79, + 4, 95, 4,134, 4,145, 5, 19, 30, 1, 30, 63, 30,133, 30,241, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, + 32, 51, 32, 58, 32, 60, 32, 68, 32,127, 32,164, 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, + 34, 6, 34, 15, 34, 18, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, + 0,160, 1,146, 1,160, 1,175, 1,240, 1,250, 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, + 3, 35, 3,132, 3,140, 3,142, 3,163, 3,209, 3,214, 4, 0, 4, 14, 4, 80, 4, 96, 4,136, 4,146, 30, 0, 30, 62, 30,128, + 30,160, 30,242, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32,127, 32,163, 32,167, + 32,171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, + 34, 96, 34,100, 37,202,251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, 0,178, 0, 97,255, 73,255, 49,255,150, +254,133,254,132,254,118,255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207,253,206,253,205,254,130,254,127, 0, 0, +253,154, 0, 0,254, 12, 0, 0,254, 9,228, 88,228, 24,227,122,228,125, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234, +225,225,225,224,225,219,225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200, +224, 37,224, 34,224, 26,224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0,120, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, + 1,164, 1,165, 1,166, 1,167, 2,105, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, + 1,244, 1,245, 2,107, 1,246, 1,247, 2,147, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154, 1,248, 1,249, 2, 0, + 2, 1, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 0, 0, 64, 69, 89, 88, + 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, + 53, 49, 48, 47, 46, 45, 44, 40, 39, 38, 37, 36, 35, 34, 33, 31, 24, 20, 17, 16, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, + 2, 1, 0, 44, 69, 35, 70, 96, 32,176, 38, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97, 32,176, 38, 97,176, 4, 38, + 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 32, 97, 32,176, 70, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97,176, 32, 96, + 32,176, 38, 97,176, 32, 97,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 64, 97, 32,176,102, 96,176, 4, 38, 35, 72, 72, + 45, 44, 69, 35, 70, 35, 97,176, 64, 96, 32,176, 38, 97,176, 64, 97,176, 4, 38, 35, 72, 72, 45, 44, 1, 16, 32, 60, 0, 60, 45, + 44, 32, 69, 35, 32,176,205, 68, 35, 32,184, 1, 90, 81, 88, 35, 32,176,141, 68, 35, 89, 32,176,237, 81, 88, 35, 32,176, 77, 68, + 35, 89, 32,176, 4, 38, 81, 88, 35, 32,176, 13, 68, 35, 89, 33, 33, 45, 44, 32, 32, 69, 24,104, 68, 32,176, 1, 96, 32, 69,176, + 70,118,104,138, 69, 96, 68, 45, 44, 1,177, 11, 10, 67, 35, 67,101, 10, 45, 44, 0,177, 10, 11, 67, 35, 67, 11, 45, 44, 0,176, + 40, 35,112,177, 1, 40, 62, 1,176, 40, 35,112,177, 2, 40, 69, 58,177, 2, 0, 8, 13, 45, 44, 32, 69,176, 3, 37, 69, 97,100, +176, 80, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 73,176, 14, 35, 68, 45, 44, 32, 69,176, 0, 67, 96, 68, 45, 44, 1,176, 6, 67, +176, 7, 67,101, 10, 45, 44, 32,105,176, 64, 97,176, 0,139, 32,177, 44,192,138,140,184, 16, 0, 98, 96, 43, 12,100, 35,100, 97, + 92, 88,176, 3, 97, 89, 45, 44,138, 3, 69,138,138,135,176, 17, 43,176, 41, 35, 68,176, 41,122,228, 24, 45, 44, 69,101,176, 44, + 35, 68, 69,176, 43, 35, 68, 45, 44, 75, 82, 88, 69, 68, 27, 33, 33, 89, 45, 44, 75, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 1, +176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 96, 35,237,236, 45, 44, 1,176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 97, 35,237, +236, 45, 44, 1,176, 6, 37, 16,245, 0,237,236, 45, 44, 70, 35, 70, 96,138,138, 70, 35, 32, 70,138, 96,138, 97,184,255,128, 98, + 35, 32, 16, 35,138,177, 12, 12,138,112, 69, 96, 32,176, 0, 80, 88,176, 1, 97,184,255,186,139, 27,176, 70,140, 89,176, 16, 96, +104, 1, 58, 45, 44, 32, 69,176, 3, 37, 70, 82, 75,176, 19, 81, 91, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, + 35, 33, 56, 27, 33, 17, 89, 45, 44, 32, 69,176, 3, 37, 70, 80, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, + 33, 56, 27, 33, 17, 89, 45, 44, 0,176, 7, 67,176, 6, 67, 11, 45, 44, 33, 33, 12,100, 35,100,139,184, 64, 0, 98, 45, 44, 33, +176,128, 81, 88, 12,100, 35,100,139,184, 32, 0, 98, 27,178, 0, 64, 47, 43, 89,176, 2, 96, 45, 44, 33,176,192, 81, 88, 12,100, + 35,100,139,184, 21, 85, 98, 27,178, 0,128, 47, 43, 89,176, 2, 96, 45, 44, 12,100, 35,100,139,184, 64, 0, 98, 96, 35, 33, 45, + 44, 75, 83, 88,138,176, 4, 37, 73,100, 35, 69,105,176, 64,139, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68, 35, 16,176, 14, +246, 27, 33, 35,138, 18, 17, 32, 57, 47, 89, 45, 44, 75, 83, 88, 32,176, 3, 37, 73,100,105, 32,176, 5, 38,176, 6, 37, 73,100, + 35, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68,176, 4, 38, 16,176, 14,246,138, 16,176, 14, 35, 68,176, 14,246,176, 14, 35, + 68,176, 14,237, 27,138,176, 4, 38, 17, 18, 32, 57, 35, 32, 57, 47, 47, 89, 45, 44, 69, 35, 69, 96, 35, 69, 96, 35, 69, 96, 35, +118,104, 24,176,128, 98, 32, 45, 44,176, 72, 43, 45, 44, 32, 69,176, 0, 84, 88,176, 64, 68, 32, 69,176, 64, 97, 68, 27, 33, 33, + 89, 45, 44, 69,177, 48, 47, 69, 35, 69, 97, 96,176, 1, 96,105, 68, 45, 44, 75, 81, 88,176, 47, 35,112,176, 20, 35, 66, 27, 33, + 33, 89, 45, 44, 75, 81, 88, 32,176, 3, 37, 69,105, 83, 88, 68, 27, 33, 33, 89, 27, 33, 33, 89, 45, 44, 69,176, 20, 67,176, 0, + 96, 99,176, 1, 96,105, 68, 45, 44,176, 47, 69, 68, 45, 44, 69, 35, 32, 69,138, 96, 68, 45, 44, 69, 35, 69, 96, 68, 45, 44, 75, + 35, 81, 88,185, 0, 51,255,224,177, 52, 32, 27,179, 51, 0, 52, 0, 89, 68, 68, 45, 44,176, 22, 67, 88,176, 3, 38, 69,138, 88, +100,102,176, 31, 96, 27,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 89, 35, 88,101, 89,176, 41, 35, 68, 35, 16, +176, 41,224, 27, 33, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88, 75, 83, 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 27, 33, 33, + 33, 33, 89, 45, 44,176, 22, 67, 88,176, 4, 37, 69,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 35, 88, 27,101, + 89,176, 41, 35, 68,176, 5, 37,176, 8, 37, 8, 32, 88, 2, 27, 3, 89,176, 4, 37, 16,176, 5, 37, 32, 70,176, 4, 37, 35, 66, + 60,176, 4, 37,176, 7, 37, 8,176, 7, 37, 16,176, 6, 37, 32, 70,176, 4, 37,176, 1, 96, 35, 66, 60, 32, 88, 1, 27, 0, 89, +176, 4, 37, 16,176, 5, 37,176, 41,224,176, 41, 32, 69,101, 68,176, 7, 37, 16,176, 6, 37,176, 41,224,176, 5, 37,176, 8, 37, + 8, 32, 88, 2, 27, 3, 89,176, 5, 37,176, 3, 37, 67, 72,176, 4, 37,176, 7, 37, 8,176, 6, 37,176, 3, 37,176, 1, 96, 67, + 72, 27, 33, 89, 33, 33, 33, 33, 33, 33, 33, 45, 44, 2,176, 4, 37, 32, 32, 70,176, 4, 37, 35, 66,176, 5, 37, 8,176, 3, 37, + 69, 72, 33, 33, 33, 33, 45, 44, 2,176, 3, 37, 32,176, 4, 37, 8,176, 2, 37, 67, 72, 33, 33, 33, 45, 44, 69, 35, 32, 69, 24, + 32,176, 0, 80, 32, 88, 35,101, 35, 89, 35,104, 32,176, 64, 80, 88, 33,176, 64, 89, 35, 88,101, 89,138, 96, 68, 45, 44, 75, 83, + 35, 75, 81, 90, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 84, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 83, + 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 45, 44,176, 0, 33, 75, 84, 88, 56, 27, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 70, + 43, 27, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 71, 43, 27, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 72, 43, + 27, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 73, 43, 27, 33, 33, 33, 89, 45, 44, 32,138, 8, 35, 75, 83,138, 75, 81, + 90, 88, 35, 56, 27, 33, 33, 89, 45, 44, 0,176, 2, 37, 73,176, 0, 83, 88, 32,176, 64, 56, 17, 27, 33, 89, 45, 44, 1, 70, 35, + 70, 96, 35, 70, 97, 35, 32, 16, 32, 70,138, 97,184,255,128, 98,138,177, 64, 64,138,112, 69, 96,104, 58, 45, 44, 32,138, 35, 73, +100,138, 35, 83, 88, 60, 27, 33, 89, 45, 44, 75, 82, 88,125, 27,122, 89, 45, 44,176, 18, 0, 75, 1, 75, 84, 66, 45, 44,177, 2, + 0, 66,177, 35, 1,136, 81,177, 64, 1,136, 83, 90, 88,185, 16, 0, 0, 32,136, 84, 88,178, 2, 1, 2, 67, 96, 66, 89,177, 36, + 1,136, 81, 88,185, 32, 0, 0, 64,136, 84, 88,178, 2, 2, 2, 67, 96, 66,177, 36, 1,136, 84, 88,178, 2, 32, 2, 67, 96, 66, + 0, 75, 1, 75, 82, 88,178, 2, 8, 2, 67, 96, 66, 89, 27,185, 64, 0, 0,128,136, 84, 88,178, 2, 4, 2, 67, 96, 66, 89,185, + 64, 0, 0,128, 99,184, 1, 0,136, 84, 88,178, 2, 8, 2, 67, 96, 66, 89,185, 64, 0, 1, 0, 99,184, 2, 0,136, 84, 88,178, + 2, 16, 2, 67, 96, 66, 89,185, 64, 0, 2, 0, 99,184, 4, 0,136, 84, 88,178, 2, 64, 2, 67, 96, 66, 89, 89, 89, 89, 89, 45, + 44, 69, 24,104, 35, 75, 81, 88, 35, 32, 69, 32,100,176, 64, 80, 88,124, 89,104,138, 96, 89, 68, 45, 44,176, 0, 22,176, 2, 37, +176, 2, 37, 1,176, 1, 35, 62, 0,176, 2, 35, 62,177, 1, 2, 6, 12,176, 10, 35,101, 66,176, 11, 35, 66, 1,176, 1, 35, 63, + 0,176, 2, 35, 63,177, 1, 2, 6, 12,176, 6, 35,101, 66,176, 7, 35, 66,176, 1, 22, 1, 45, 44,122,138, 16, 69, 35,245, 24, + 45, 0, 0, 0, 64, 16, 9,248, 3,255, 31,143,247,159,247, 2,127,243, 1, 96,242, 1,184,255,232, 64, 43,235, 12, 16, 70,223, + 51,221, 85,222,255,220, 85, 48,221, 1,221, 1, 3, 85,220, 3,250, 31, 48,194, 1,111,192,239,192, 2,252,182, 24, 31, 48,183, + 1, 96,183,128,183, 2,184,255,192, 64, 56,183, 15, 19, 70,231,177, 1, 31,175, 47,175, 63,175, 3, 79,175, 95,175,111,175, 3, + 64,175, 15, 19, 70,172, 81, 24, 31, 31,156, 95,156, 2,224,155, 1, 3, 43,154, 1, 31,154, 1,144,154,160,154, 2,115,154,131, +154, 2, 5,184,255,234, 64, 25,154, 9, 11, 70,175,151,191,151, 2, 3, 43,150, 1, 31,150, 1,159,150,175,150, 2,124,150, 1, + 5,184,255,234, 64,133,150, 9, 11, 70, 47,146, 63,146, 79,146, 3, 64,146, 12, 15, 70, 47,145, 1,159,145, 1,135,134, 24, 31, + 64,124, 80,124, 2, 3, 16,116, 32,116, 48,116, 3, 2,116, 1,242,116, 1, 10,111, 1,255,111, 1,169,111, 1,151,111, 1,117, +111,133,111, 2, 75,111, 1, 10,110, 1,255,110, 1,169,110, 1,151,110, 1, 75,110, 1, 6, 26, 1, 24, 85, 25, 19,255, 31, 7, + 4,255, 31, 6, 3,255, 31, 63,103, 1, 31,103, 47,103, 63,103,255,103, 4, 64,102, 80,102,160,102,176,102, 4, 63,101, 1, 15, +101,175,101, 2, 5,160,100,224,100, 2, 3,184,255,192, 64, 79,100, 6, 10, 70, 97, 95, 43, 31, 96, 95, 71, 31, 95, 80, 34, 31, +247, 91, 1,236, 91, 1, 84, 91,132, 91, 2, 73, 91, 1, 59, 91, 1,249, 90, 1,239, 90, 1,107, 90, 1, 75, 90, 1, 59, 90, 1, + 6, 19, 51, 18, 85, 5, 1, 3, 85, 4, 51, 3, 85, 31, 3, 1, 15, 3, 63, 3,175, 3, 3, 15, 87, 31, 87, 47, 87, 3, 3,184, +255,192,179, 86, 18, 21, 70,184,255,224,179, 86, 7, 11, 70,184,255,192,179, 84, 18, 21, 70,184,255,192, 64,109, 84, 6, 11, 70, + 82, 80, 43, 31, 63, 80, 79, 80, 95, 80, 3,250, 72, 1,239, 72, 1,135, 72, 1,101, 72, 1, 86, 72, 1, 58, 72, 1,250, 71, 1, +239, 71, 1,135, 71, 1, 59, 71, 1, 6, 28, 27,255, 31, 22, 51, 21, 85, 17, 1, 15, 85, 16, 51, 15, 85, 2, 1, 0, 85, 1, 71, + 0, 85,251,250, 43, 31,250, 27, 18, 31, 15, 15, 1, 31, 15,207, 15, 2, 15, 15,255, 15, 2, 6,111, 0,127, 0,175, 0,239, 0, + 4, 16, 0, 1,128, 22, 1, 5, 1,184, 1,144,177, 84, 83, 43, 43, 75,184, 7,255, 82, 75,176, 6, 80, 91,176, 1,136,176, 37, + 83,176, 1,136,176, 64, 81, 90,176, 6,136,176, 0, 85, 90, 91, 88,177, 1, 1,142, 89,133,141,141, 0, 66, 29, 75,176, 50, 83, + 88,176, 96, 29, 89, 75,176,100, 83, 88,176, 64, 29, 89, 75,176,128, 83, 88,176, 16, 29,177, 22, 0, 66, 89,115,115, 94,115,116, +117, 43, 43, 43, 43, 43, 43, 43, 43, 1, 95,115,115,115,115,115,115,115,115,115,115, 0,115, 43, 1, 43, 43, 43, 43, 95,115, 0, +115,116, 43, 43, 43, 1, 95,115,115,115,115,115,115,115,115,115,115, 0, 43, 43, 43, 1, 43, 95,115, 94,115,116,115,115,116, 0, + 43, 43, 43, 43, 1, 95,115,115,115,115,116,115,115,115,115,115,116, 0,115,116,116, 1, 95,115, 43, 0,115,116, 43,115, 1, 43, + 95,115,115,116,116, 95,115, 43, 95,115,115,116,116, 0, 95,115,115, 1, 43, 0, 43,115,116, 1,115, 0, 43,115,116, 43, 1,115, + 0,115, 43, 43,115, 43, 43, 1, 43,115,115,115, 0, 43, 24, 94, 6, 20, 0, 11, 0, 78, 5,182, 0, 23, 0,117, 5,182, 5,205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 20, 0,143, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0, + 0, 0,255,236, 0, 0,254, 20,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, + 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,172, 0,182, + 0,188, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 85, 0,131, 0,151, 0,159, 0,125, 0,229, 0,174, 0,174, 0,113, 0,113, + 0, 0, 0, 0, 0,186, 0,197, 0,186, 0, 0, 0, 0, 0,164, 0,159, 0,140, 0, 0, 0, 0, 0,199, 0,199, 0,125, 0,125, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0,185, 0,138, 0, 0, 0, 0, 0,155, 0,166, 0,143, 0,119, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0,110, 0,144, 0,180, 0,193, 0,213, + 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 0,111, 0,120, 0,150, 0,192, 0,213, 1, 71, 0, 0, 0, 0, 0, 0, 0,254, 1, 58, + 0,197, 0,120, 0,254, 1, 22, 1,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238, 0, 0, 0,150, 0,136, 0,174, 0,150, 0,137, 1, 12, 0,150, 1, 24, 0, 0, 3, 29, 0,148, 2, 90, 0,130, 3,150, + 0, 0, 0,168, 0,140, 0, 0, 0, 0, 2,121, 0,217, 0,180, 1, 10, 0, 0, 1,131, 0,109, 0,127, 0,160, 0, 0, 0, 0, + 0,109, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 0,160, 0, 0, 0,130, 0,137, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5,182,252,148, 0, 17,255,239, 0,131, 0,143, 0, 0, 0, 0, 0,109, 0,123, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,188, 1,170, 3, 84, 0, 0, 0, 0, 0,188, 0,182, 1,215, 1,149, 0, 0, 0,150, 1, 0, 0,174, + 5,182,254,188,254,111,254,131, 0,111, 2,173, 0, 0, 0, 42, 0, 42, 0, 42, 0, 42, 0,111, 0,161, 1, 41, 1,226, 2,113, + 3, 41, 3, 77, 3,124, 3,172, 3,226, 4, 15, 4, 68, 4, 91, 4,149, 4,180, 5, 6, 5, 63, 5,148, 6, 18, 6,101, 6,204, + 7, 63, 7,103, 8, 17, 8,130, 8,218, 9, 61, 9,121, 9,187, 9,247, 10,106, 11, 52, 11,160, 12, 23, 12,116, 12,179, 12,236, + 13, 57, 13,151, 13,205, 14, 16, 14, 73, 14,151, 14,183, 15, 43, 15,124, 15,213, 16, 34, 16,139, 16,252, 17,102, 17,167, 17,229, + 18, 56, 18,238, 19, 77, 19,158, 19,209, 19,247, 20, 23, 20, 59, 20, 89, 20,112, 20,149, 21, 8, 21,105, 21,174, 22, 14, 22,107, + 22,206, 23,162, 23,227, 24, 20, 24, 95, 24,175, 24,200, 25, 57, 25,119, 25,192, 26, 34, 26,131, 26,201, 27, 57, 27,142, 27,207, + 28, 39, 28,212, 29,101, 29,206, 30, 27, 30,117, 30,153, 30,245, 31, 72, 31, 72, 31,144, 31,244, 32,106, 33, 1, 33,116, 33,164, + 34, 93, 34,161, 35, 74, 35,180, 36, 8, 36, 53, 36, 61, 37, 12, 37, 35, 37,126, 37,186, 38, 10, 38,127, 38,164, 38,238, 39, 43, + 39,101, 39,171, 39,226, 40, 42, 40,122, 40,163, 40,200, 40,247, 41,109, 41,133, 41,156, 41,180, 41,203, 41,228, 42, 9, 42,114, + 42,133, 42,157, 42,180, 42,204, 42,229, 42,253, 43, 20, 43, 43, 43, 68, 43,168, 43,191, 43,215, 43,238, 44, 5, 44, 29, 44, 54, + 44,155, 45, 28, 45, 52, 45, 75, 45, 99, 45,124, 45,147, 45,221, 46,120, 46,143, 46,165, 46,187, 46,209, 46,233, 47, 1, 47,177, + 47,196, 47,219, 47,241, 48, 7, 48, 31, 48, 55, 48, 78, 48,101, 48,126, 49, 14, 49, 36, 49, 59, 49, 81, 49,104, 49,127, 49,152, + 50, 9, 50,130, 50,153, 50,175, 50,197, 50,222, 50,244, 51, 89, 51,113, 51,137, 51,159, 51,182, 51,204, 51,227, 52, 0, 52, 23, + 52, 47, 52, 70, 52, 94, 52,117, 52,142, 52,165, 52,189, 52,213, 52,232, 52,240, 53,105, 53,128, 53,150, 53,173, 53,195, 53,218, + 53,241, 54, 5, 54, 38, 54, 61, 54, 83, 54,106, 54,128, 54,151, 54,174, 54,197, 54,221, 54,240, 55, 6, 55, 30, 55, 59, 55,140, + 55,231, 55,254, 56, 21, 56, 44, 56, 67, 56, 90, 56,113, 56,132, 56,152, 56,175, 56,200, 56,241, 57, 21, 57, 44, 57, 67, 57, 86, + 57,105, 57,178, 57,202, 57,231, 57,250, 58, 14, 58, 38, 58, 62, 58, 81, 58,116, 58,193, 59, 14, 59, 37, 59, 59, 59, 79, 59, 98, + 59,121, 59,144, 59,178, 60, 19, 60,108, 60,131, 60,153, 60,176, 60,199, 60,224, 60,248, 61,105, 61,247, 62, 15, 62, 37, 62, 56, + 62, 76, 62,100, 62,124, 62,147, 62,169, 62,192, 62,214, 62,234, 62,253, 63, 20, 63, 42, 63, 61, 63, 81, 63,104, 63,122, 63,209, + 64, 59, 64, 83, 64,105, 64,129, 64,151, 64,174, 64,196, 64,221, 64,245, 65, 14, 65, 38, 65, 57, 65, 76, 65, 99, 65,122, 65,145, + 65,167, 65,192, 65,215, 65,237, 66, 4, 66, 27, 66, 50, 66, 72, 66,123, 66,223, 67,193, 68,150, 68,174, 68,197, 68,220, 68,242, + 69, 5, 69, 24, 69, 78, 69,132, 69,156, 69,215, 69,254, 70, 78, 70,123, 70,194, 71, 5, 71, 50, 71,163, 71,188, 71,246, 72, 27, + 72, 65, 72,130, 72,179, 72,231, 73, 15, 73, 40, 73, 48, 73, 56, 73,106, 73,182, 73,190, 73,198, 73,206, 74, 61, 74, 69, 74, 77, + 74,153, 74,161, 74,169, 74,246, 74,254, 75, 41, 75, 49, 75,121, 75,129, 75,137, 76, 24, 76, 32, 76,142, 77, 16, 77, 41, 77, 66, + 77, 88, 77,110, 77,132, 77,156, 77,177, 78, 35, 78,165, 79, 4, 79,140, 80, 8, 80,110, 80,174, 81, 32, 81, 94, 81,102, 81,226, + 82, 48, 82,114, 83, 18, 83, 26, 83,110, 83,200, 84, 55, 84,144, 84,218, 85, 28, 85,154, 86, 46, 86,143, 87, 25, 87, 50, 87, 75, + 87, 97, 87,119, 87,149, 87,174, 88, 40, 88, 63, 88,170, 88,178, 88,186, 88,211, 88,219, 89,114, 89,209, 90, 47, 90, 70, 90, 93, + 90,166, 90,174, 91, 1, 91, 9, 91, 17, 91,132, 91,140, 92, 25, 92,156, 92,251, 93, 19, 93, 91, 93,191, 93,199, 93,207, 93,215, + 93,223, 93,231, 93,239, 93,247, 94,103, 94,111, 94,119, 94,172, 94,243, 95, 59, 95,145, 95,231, 96, 61, 96,139, 96,238, 97,101, + 97,226, 97,234, 98,101, 98,215, 98,255, 99,101, 99,109, 99,226,100, 96,100,164,100,187,100,245,101, 64,101,165,101,235,101,243, +102, 28,102, 36,102, 44,102,107,102,115,102,240,102,248,103, 50,103,114,103,189,104, 22,104,115,104,213,105, 31,105,136,105,252, +106, 83,106,107,106,218,106,240,107, 76,107, 84,107, 92,107,117,107,125,107,245,108, 84,108,174,108,196,108,218,109, 31,109, 84, +109,127,109,151,109,174,109,197,109,220,109,246,110, 16,110, 40,110, 64,110, 91,110,118,110,145,110,186,110,229,111, 17,111, 68, +111,114,111,206,112, 42,112,148,112,239,113,117,113,184,114, 93,115, 42,115, 50,115, 58,115,109,115,162,115,180,115,210,116, 21, +116,112,116,247,117,129,118, 21,118,195,119, 65,119,247,120,126,120,134,120,233,121, 18,121, 65,121,112,121,155,122, 21,122, 98, +122,145,122,219,123, 1,123, 45,123,201,124, 26,124,163,125, 27,125, 96,125,164,125,240,126, 15,126, 45,126,112,126,163,126,201, +126,238,127, 19,127, 86,127,159,127,252,128, 91,128,138,129, 39,129,145,129,145,129,145,129,145,129,145,129,145,129,145,129,145, +129,145,129,145,129,145,129,145,129,145,129,145,130,219,131, 78,131, 90,131, 98,132, 11,132,136,133, 36,133, 59,133, 82,133,102, +133,122,133,167,133,244,134, 71,134,116,134,160,135, 21,135,124,135,219,136, 62,136, 99,136,136,136,207,137, 14,137, 46,137, 70, +137, 94,137,117,137,140,138, 41,138,228,139,101,139,218,140, 75,140,188,141, 64,141,211,142,107,143, 23,143,184,144, 92,145, 10, +145,186,146,164,147,147,147,155,147,163,148, 16,148,112,148,208,149, 56,149, 82,149,108,150, 44,150, 66,150,200,151, 70,152, 74, +153, 51,153,249,154,230,155, 72,155,151,156, 86,156,155,156,222,157, 13,157, 62,158, 29,158,187,159, 97,159,233,160, 68,160,168, +161, 36,161,178,162, 17,162, 97,162,207,163, 51,163,209,164,134,164,156,164,178,165, 38,165,145,165,255,166,114,166,216,167, 68, +167,142,167,224,168, 46,168,135,168,208,169, 30,169,137,169,252,170,173,171, 87,171,107,171,127,171,206,172, 29,172, 37,172,136, +172,249,173,104,174, 15,174,207,175, 54,175,148,175,243,176, 79,176,182,177, 25,177,103,177,173,178, 47,178,191,179, 76,179,230, +179,238,180, 5,180, 28,180,138,180,249,181,108,181,196,182, 22,182,119,182,190,183, 23,183,113,183,189,184, 65,184,193,184,201, +184,224,184,246,185, 15,185, 39,185, 47,185, 55,185, 78,185,100,185,202,186, 40,186, 66,186, 91,186,116,186,142,186,168,186,194, +187, 44,187,148,187,172,187,195,187,221,187,246,188, 15,188, 40,188, 48,188, 56,188, 81,188,105,188,131,188,157,188,181,188,203, +188,229,188,253,189, 22,189, 46,189, 71,189, 95,189,166,189,225,189,250,190, 19,190, 37,190, 55,190, 80,190,102,190,231,191,154, +191,228,191,236,192,102,192,242,193,139,194, 29,194,162,195, 40,195,187,196, 40,196,132,196,235,197, 79,197,203,198, 38,198,135, +199, 5,199,137,199,157,199,177,199,200,199,223,199,246,200, 13,200, 39,200, 64,200, 90,200,115,200,141,200,166,200,192,200,217, +200,253,201, 30,201, 55,201, 80,201,105,201,130,201,155,201,180,201,205,201,230,202, 8,202, 41,202, 64,202, 87,202,110,202,133, +202,157,202,179,202,205,202,230,203, 0,203, 25,203, 51,203, 76,203,102,203,127,203,163,203,196,203,219,203,242,204, 10,204, 34, +204, 57,204, 81,204,104,204,127,204,152,204,178,204,203,204,229,204,254,205, 24,205, 49,205, 75,205,109,205,145,205,168,205,191, +205,215,205,238,206, 6,206, 30,206, 54,206, 77,206,101,206,125,206,148,206,172,206,195,206,218,206,242,207, 7,207, 31,207, 52, +207, 74,207, 96,207,120,207,141,207,165,207,189,207,213,207,235,208, 2,208, 25,208, 48,208, 70,208, 90,208,157,208,246,209, 75, +209,186,210, 47,210,122,210,200,211, 41,211,146,211,191,211,231,212, 15, 0, 0, 0, 2, 0,193, 0, 0, 4, 10, 5,182, 0, 3, + 0, 7, 0, 43, 64, 11, 5, 2, 2, 9, 4,112, 3,128, 3, 2, 3,184,255,192, 64, 9, 6, 9, 72, 3, 4, 3, 7, 0, 3, 0, + 63, 50, 47, 51, 1, 47, 43, 93, 51, 17, 51, 47, 51, 49, 48, 19, 33, 17, 33, 55, 33, 17, 33,193, 3, 73,252,183,104, 2,121,253, +135, 5,182,250, 74,104, 4,230, 0, 2, 0,147,255,227, 1,145, 5,182, 0, 3, 0, 23, 0, 58,185, 0, 1,255,240, 64, 19, 10, + 20, 72, 16, 25,128, 25,144, 25,160, 25, 4, 3, 14,154, 4, 2, 2, 4,184,255,192, 64, 10, 7, 10, 72, 4, 1, 9,155, 19, 2, + 3, 0, 63, 47,245,206, 1, 47, 43, 51, 47, 16,225, 50, 93, 49, 48, 43, 1, 35, 3, 51, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, + 14, 2, 35, 34, 46, 2, 1, 80,121, 51,223,240, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 1,158, 4, 24, +250,185, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 0, 0, 2, 0,133, 3,166, 2,178, 5,182, 0, 3, 0, 7, + 0, 55, 64, 35, 4,152, 7, 7, 9,208, 9,224, 9, 2, 47, 9,111, 9,127, 9, 3, 0,152, 0, 3, 16, 3,224, 3,240, 3, 4, + 3, 6, 2, 2, 7, 3, 3, 0, 63, 51, 51, 47, 51, 1, 47, 93,225, 93, 93, 18, 57, 47,225, 49, 48, 1, 3, 35, 3, 33, 3, 35, + 3, 1, 74, 41,115, 41, 2, 45, 41,114, 41, 5,182,253,240, 2, 16,253,240, 2, 16, 0, 0, 2, 0, 51, 0, 0, 4,248, 5,182, + 0, 27, 0, 31, 0,153, 64, 88, 3, 3, 26, 26, 24, 22, 30, 29, 7, 4, 6, 23, 23, 6, 25, 0, 1, 4, 4, 5,177, 24, 24, 33, + 21, 31, 28, 8, 4, 9, 20, 20, 18, 15, 14, 11, 4, 19,177, 10, 80, 16, 1, 16, 16, 12, 12, 9, 80, 10, 1, 10, 28, 1, 72, 13, + 1, 13,174, 12, 8, 4, 12, 31, 0, 16,174, 17, 25, 21, 17, 63, 17, 79, 17,223, 17, 3, 12, 17, 12, 17, 5, 23, 19, 6, 10, 5, + 0, 47, 51, 63, 51, 18, 57, 57, 47, 47, 93, 17, 51, 51, 16,225, 50, 50, 17, 51, 51, 16,225, 93, 50, 50, 1, 47, 93, 51, 51, 47, + 51, 47, 93, 16,228, 23, 57, 50, 17, 18, 23, 57, 17, 51, 47,228, 23, 57, 50, 51, 17, 18, 23, 57, 17, 51, 47, 51, 47, 49, 48, 1, + 3, 33, 21, 33, 3, 35, 19, 33, 3, 35, 19, 33, 53, 33, 19, 33, 53, 33, 19, 51, 3, 33, 19, 51, 3, 33, 21, 1, 33, 19, 33, 3, +215, 63, 1, 24,254,205, 82,147, 84,254,221, 82,144, 78,254,254, 1, 29, 65,254,238, 1, 43, 82,147, 82, 1, 37, 84,144, 84, 1, + 6,252,235, 1, 35, 64,254,221, 3,125,254,184,137,254, 84, 1,172,254, 84, 1,172,137, 1, 72,137, 1,176,254, 80, 1,176,254, + 80,137,254,184, 1, 72, 0, 3, 0,123,255,137, 3,217, 6, 18, 0, 45, 0, 54, 0, 63, 0,180, 64, 51, 52, 47, 41, 1, 41, 47, + 33, 1, 33, 6,112, 47, 60, 1, 60, 47, 30, 1, 30, 19, 32, 7, 1, 7, 7, 13, 46,110, 36, 15, 0, 31, 0, 2,255, 0, 1, 0, + 0, 1, 7, 0, 65, 13, 13, 55,110,224, 25, 1, 25,184,255,192, 64, 48, 8, 11, 72, 25, 51, 20, 20, 41, 60, 60, 19, 46, 55, 8, + 61, 40,115, 33, 37, 33, 31, 64, 14, 17, 72, 31, 31, 30, 80, 33, 1, 15, 33, 31, 33, 2, 8, 33, 52, 19,115, 8, 14, 8, 6, 6, + 5, 8,184,255,192,179, 10, 13, 72, 8, 0, 47, 43, 51, 51, 47, 17, 51, 16,225, 50, 47, 94, 93, 93, 51, 51, 47, 43, 17, 51, 16, +225, 50, 18, 57, 57, 18, 57, 17, 51, 51, 17, 51, 1, 47, 43, 93,225, 51, 47, 16,214, 94, 93, 93,113, 50,225, 17, 57, 47, 93, 51, + 51, 93, 51, 93,225, 50, 93, 50, 93, 50, 49, 48, 1, 20, 14, 2, 7, 21, 35, 53, 34, 46, 2, 39, 53, 30, 3, 51, 17, 46, 3, 53, + 52, 62, 2, 55, 53, 51, 21, 22, 22, 23, 7, 38, 38, 39, 17, 30, 3, 7, 52, 46, 2, 39, 17, 54, 54, 1, 20, 30, 2, 23, 17, 6, + 6, 3,217, 50, 93,133, 84,138, 50,102, 96, 84, 32, 33, 87, 96,101, 47, 89,131, 86, 42, 49, 91,129, 79,138,100,169, 67, 66, 56, +140, 74, 88,135, 91, 46,176, 20, 43, 70, 51, 93, 91,254, 18, 17, 40, 66, 49, 89, 83, 1,190, 70,114, 84, 55, 12,230,221, 9, 18, + 26, 17,172, 16, 33, 26, 17, 1,178, 30, 66, 85,110, 74, 67,111, 83, 53, 9,180,176, 5, 42, 31,145, 25, 41, 6,254, 90, 31, 66, + 83,107, 72, 33, 55, 45, 38, 18,254,139, 14, 98, 2,163, 36, 57, 47, 38, 17, 1,113, 16, 89, 0, 0, 5, 0,102,255,236, 6, 51, + 5,203, 0, 9, 0, 29, 0, 39, 0, 59, 0, 63, 0, 93,178, 60, 16, 62,184,255,240, 64, 51, 60, 62, 60, 62, 40, 20, 30,180, 50, +181, 35,180, 40, 65, 15, 65, 1, 5,180, 10,181, 0,180, 16, 20, 32, 20, 48, 20, 3, 20, 63, 6, 62, 24, 37,182, 55,183, 33,182, + 45, 25, 3,182, 15,183, 7,182, 25, 7, 0, 63,225,244,225, 63,225,244,225, 63, 63, 1, 47, 93,225,244,225, 93, 16,222,225,244, +225, 17, 18, 57, 57, 47, 47, 56, 56, 49, 48, 19, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, + 2, 51, 50, 30, 2, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, + 1, 35, 1,250, 71, 80,156,156, 80, 71, 1,199, 36, 74,115, 79, 73,112, 76, 38, 35, 73,113, 78, 75,113, 77, 39, 1,172, 71, 80, +156,156, 80, 71, 1,198, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 75,113, 76, 39,255, 0,252,213,158, 3, 44, 4, 2,165, +165, 1, 74, 1, 72,163,165,108,172,118, 63, 63,118,172,108,108,170,117, 62, 62,117,170,253, 74,165,164, 1, 73, 1, 72,163,165, +108,171,118, 63, 63,118,171,108,108,170,117, 62, 62,117,170, 3,146,250, 74, 5,182, 0, 0, 3, 0,109,255,236, 5,125, 5,205, + 0, 17, 0, 33, 0, 83, 0,128, 64, 77, 39, 24, 23, 74, 4, 73, 44, 73, 72, 10, 71, 54, 65, 71, 66, 32, 66, 1, 54, 66, 54, 66, + 29, 5, 59, 60, 71, 4, 72, 0, 71, 0, 44, 16, 44, 2, 8, 44, 44, 34, 32, 72, 1, 72, 85, 29, 72, 16, 34, 32, 34, 2, 34, 65, + 65, 49, 18, 81, 79, 22, 39, 24, 23, 74, 4, 15, 71, 60, 59, 5, 4, 49, 73, 21, 15, 80, 49, 0, 47,225, 63, 18, 23, 57, 18, 23, + 57, 63,225, 17, 57, 47, 1, 47, 93,225, 16,198, 93, 17, 57, 47, 94, 93,225, 17, 23, 57, 18, 57, 57, 47, 47, 93, 16,225, 16,225, + 17, 51, 17, 18, 23, 57, 49, 48, 1, 20, 30, 2, 23, 62, 3, 53, 52, 46, 2, 35, 34, 6, 19, 50, 62, 2, 55, 1, 14, 3, 21, 20, + 30, 2, 37, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 1, 62, 3, 55, 51, 14, 3, 7, 1, 35, + 39, 14, 3, 35, 34, 46, 2, 1,166, 16, 33, 52, 36, 59, 86, 56, 28, 25, 47, 66, 42, 86,100,135, 58, 98, 84, 72, 32,254,125, 52, + 80, 55, 28, 35, 66, 96,254,125, 40, 77,111, 71, 31, 60, 45, 28, 50, 94,138, 88, 83,131, 91, 48, 50, 84,109, 60, 1, 96, 27, 43, + 34, 27, 10,184, 15, 41, 53, 65, 39, 1, 21,225,168, 49, 96,108,124, 78,105,167,115, 61, 4,141, 34, 65, 65, 67, 37, 35, 62, 64, + 70, 41, 36, 61, 44, 25, 89,251,175, 23, 40, 54, 31, 1,151, 33, 63, 72, 85, 56, 54, 91, 65, 36,240, 78,122,100, 86, 42, 36, 77, + 87, 99, 57, 75,119, 83, 43, 43, 83,119, 75, 64,109, 93, 79, 36,254,140, 29, 60, 68, 78, 47, 66,111, 98, 85, 41,254,219,172, 45, + 71, 49, 27, 53,103,149, 0, 1, 0,133, 3,166, 1, 74, 5,182, 0, 3, 0, 42, 64, 28,192, 5,208, 5,224, 5, 3, 47, 5,111, + 5, 2, 0,152, 0, 3, 16, 3,224, 3,240, 3, 4, 3, 2, 2, 3, 3, 0, 63, 51, 47, 1, 47, 93,225, 93, 93, 49, 48, 1, 3, + 35, 3, 1, 74, 41,115, 41, 5,182,253,240, 2, 16, 0, 0, 1, 0, 82,254,188, 2, 43, 5,182, 0, 19, 0, 26, 64, 13, 6, 14, +242, 9,240, 63, 0, 1, 0, 14,249, 5,248, 0, 63, 63, 1, 47, 93,225,228, 50, 49, 48, 19, 52, 62, 2, 55, 51, 6, 2, 21, 20, + 30, 2, 23, 35, 46, 3, 82, 36, 74,113, 78,172,140,145, 37, 71,106, 69,170, 78,113, 74, 36, 2, 49,125,243,229,211, 93,193,254, + 50,244,119,236,226,212, 94, 90,206,225,240, 0, 0, 1, 0, 61,254,188, 2, 23, 5,182, 0, 19, 0, 28, 64, 14, 6, 14,242, 11, +240,176, 0, 1, 0, 21, 14,248, 5,249, 0, 63, 63, 1, 16,222, 93,225,228, 50, 49, 48, 1, 20, 14, 2, 7, 35, 62, 3, 53, 52, + 2, 39, 51, 30, 3, 2, 23, 36, 75,113, 78,170, 69,106, 72, 36,144,141,172, 78,113, 75, 36, 2, 49,124,240,225,206, 90, 94,212, +226,236,119,244, 1,206,193, 93,211,229,243, 0, 0, 1, 0, 82, 2,119, 4, 20, 6, 20, 0, 14, 0, 36, 64, 21, 31, 16, 1, 0, +152, 0, 14,128, 14,144, 14, 3, 8, 14, 31, 6, 1, 6, 6, 0, 0, 0, 63, 50, 47, 93, 1, 47, 94, 93,229, 93, 49, 48, 1, 3, + 37, 23, 5, 19, 7, 3, 3, 39, 19, 37, 55, 5, 3, 2,152, 43, 1,141, 26,254,134,245,178,176,158,184,242,254,137, 29, 1,135, + 43, 6, 20,254,119,111,193, 28,254,186, 96, 1,102,254,154, 96, 1, 70, 28,193,111, 1,137, 0, 0, 1, 0,102, 1, 6, 4, 2, + 4,162, 0, 11, 0, 41, 64, 24, 16, 13, 1, 6, 9,170, 3,239, 0, 1, 32, 0, 96, 0,160, 0, 3, 0, 9, 0,173, 6, 3,179, + 0, 63, 51,225, 50, 1, 47, 93, 93, 50,225, 50, 93, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 1,233,254,125, 1, +131,150, 1,131,254,125,150, 2,135,150, 1,133,254,123,150,254,127, 0, 0, 1, 0, 63,254,248, 1,121, 0,238, 0, 12, 0, 56, + 64, 20,207, 14, 1, 16, 14,144, 14,160, 14, 3, 27, 12, 43, 12, 2, 12, 1,151, 6, 7,184,255,192, 64, 13, 16, 20, 72, 95, 7, + 1, 16, 7, 1, 7, 6,156, 12, 0, 47,237, 1, 47, 93, 93, 43, 51,237, 50, 93, 93, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, 3, + 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 0, 1, 0, 82, + 1,209, 2, 66, 2,121, 0, 3, 0, 21, 64, 9, 2, 5, 64, 0, 1, 0, 0,185, 1, 0, 47,225, 1, 47, 93, 16,206, 49, 48, 19, + 53, 33, 21, 82, 1,240, 1,209,168,168, 0, 1, 0,147,255,227, 1,145, 0,250, 0, 19, 0, 53, 64, 27,128, 21,144, 21,160, 21, + 3, 17, 21, 1, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, 15, + 0, 47,237, 1, 47, 43, 93, 93,237, 93, 93, 49, 48, 55, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, + 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20,111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 0, 1, + 0, 20, 0, 0, 2,231, 5,182, 0, 3, 0, 30,177, 1, 2,184,255,240, 64, 9, 2, 3, 0, 16, 0, 5, 1, 0, 3, 0, 63, 47, + 17, 1, 51, 56, 50, 47, 56, 51, 49, 48, 1, 1, 35, 1, 2,231,253,224,179, 2, 33, 5,182,250, 74, 5,182, 0, 0, 2, 0, 98, +255,236, 4, 8, 5,205, 0, 19, 0, 39, 0, 38, 64, 21, 30,111, 0, 41, 16, 41, 1, 20,111, 32, 10, 1, 10, 35,115, 15, 7, 25, +115, 5, 25, 0, 63,225, 63,225, 1, 47, 93,225, 93, 16,222,225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, + 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 4, 8, 51,113,178,127,118,175,115, 57, + 51,111,177,126,119,176,116, 58,253, 19, 30, 66,107, 77, 77,108, 69, 31, 31, 69,108, 77, 77,107, 66, 30, 2,221,177,254,232,194, +102,102,194, 1, 24,177,177, 1, 24,193,102,101,193,254,232,178,150,224,149, 75, 74,148,225,151,150,224,148, 74, 74,148,224, 0, + 0, 1, 0,178, 0, 0, 2,199, 5,182, 0, 16, 0, 53, 64, 33, 64, 18, 1, 15, 1, 14, 14, 0,110,191, 1,255, 1, 2,126, 1, + 1, 0, 1, 16, 1, 32, 1, 64, 1, 4, 6, 1, 13, 15, 6, 0, 24, 0, 63, 63,205, 1, 47, 94, 93, 93, 93,225, 51, 47, 17, 51, + 93, 49, 48, 33, 35, 17, 52, 62, 2, 55, 14, 3, 7, 7, 39, 1, 51, 2,199,176, 1, 3, 3, 1, 17, 26, 27, 30, 21,148, 96, 1, +127,150, 3,145, 43, 98, 97, 89, 34, 18, 26, 24, 27, 18,121,123, 1, 43, 0, 1, 0, 96, 0, 0, 3,240, 5,203, 0, 35, 0, 60, + 64, 32, 35, 8,111, 27, 27, 37, 16, 37, 1, 34,111, 1, 33, 1, 17, 17, 32, 1, 1, 1, 8, 34, 16, 13,115, 22, 7, 2, 34,116, + 1, 24, 0, 63,225, 50, 63,225, 51, 18, 57, 1, 47, 93, 51, 47, 17, 51, 16,237, 93, 17, 51, 47,225, 51, 49, 48, 33, 33, 53, 1, + 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 1, 21, 33, 3,240,252,112, 1, 94, 75, +118, 83, 44, 34, 63, 86, 53, 95,153, 69,102, 40, 92,106,118, 65, 96,155,108, 59, 53, 93,129, 75,254,231, 2,177,156, 1,125, 81, +134,128,129, 76, 59, 90, 63, 32, 77, 60,119, 36, 63, 46, 27, 54,101,145, 91, 85,154,149,150, 81,254,213, 8, 0, 0, 1, 0, 82, +255,236, 3,238, 5,203, 0, 57, 0, 93, 64, 11, 33, 48, 33, 48, 18, 26,111, 9, 39,111, 0,184,255,192, 64, 40, 20, 23, 72, 0, + 0, 9, 59, 32, 59, 1, 79, 18, 1, 18, 6, 32,115,171, 33, 1,121, 33, 1, 11, 33, 1, 8, 33, 33, 21, 47, 44,115, 53, 7, 21, +115, 18, 14, 25, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93,225, 57, 1, 47, 93, 93, 16,206, 50, 47, 43,225, 16,225, + 17, 57, 57, 47, 47, 49, 48, 1, 20, 14, 2, 7, 21, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 52, + 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 3,193, 46, 83,116, 71,177,184, + 65,132,202,138,109,193, 85, 87,203, 93, 92,134, 87, 41, 53, 98,141, 89,133,133, 81,126, 85, 44, 36, 66, 92, 56,107,163, 74, 92, + 38, 93,110,125, 70,108,163,110, 56, 4, 96, 73,120, 88, 57, 12, 6, 22,181,145, 96,160,116, 64, 34, 45,170, 46, 50, 40, 74,108, + 67, 68, 97, 63, 30,151, 40, 74,102, 61, 52, 82, 57, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 0, 2, 0, 23, 0, 0, 4, 63, + 5,190, 0, 10, 0, 24, 0, 78, 64, 44, 9, 86, 0, 1, 0, 0, 2,110, 17, 12, 11, 7, 32, 3, 1, 3, 3, 26, 16, 26, 1,119, + 24,135, 24, 2, 24, 95, 5, 1, 5, 9, 6, 24,116, 1, 5, 5, 2, 17, 7, 6, 2, 24, 0, 63, 63, 51, 18, 57, 47, 51,225, 50, + 50, 1, 47, 93, 51, 93, 93, 18, 57, 47, 93, 51, 51, 51, 51,225, 50, 47, 93, 50, 49, 48, 1, 35, 17, 35, 17, 33, 53, 1, 51, 17, + 51, 33, 17, 52, 62, 2, 55, 35, 14, 3, 7, 1, 4, 63,213,176,253, 93, 2,151,188,213,254,123, 3, 4, 5, 1, 9, 7, 21, 25, + 26, 11,254,101, 1, 72,254,184, 1, 72,159, 3,215,252, 48, 1,100, 56,123,117,102, 34, 20, 49, 49, 46, 16,253,160, 0, 0, 1, + 0,131,255,236, 3,246, 5,182, 0, 42, 0, 78, 64, 24, 38, 26,111, 5, 44, 16, 44, 1, 39, 36, 36, 40,104, 35, 1, 89, 35, 1, + 35, 35,240, 15, 1, 15,184,255,192, 64, 18, 8, 11, 72, 15, 29,115, 0, 0, 21, 39,116, 36, 6, 21,115, 16, 10, 25, 0, 63, 51, +225, 63,225, 18, 57, 47,225, 1, 47, 43, 93, 51, 47, 93, 93, 51, 51, 17, 51, 93, 16,222,225, 51, 49, 48, 1, 50, 30, 2, 21, 20, + 14, 2, 35, 34, 46, 2, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 38, 35, 34, 14, 2, 7, 39, 19, 33, 21, 33, 3, 54, 54, 2, 33, + 99,171,127, 72, 68,134,197,128, 51, 99, 91, 82, 33, 33, 89, 98, 99, 42, 79,124, 86, 46,176,168, 27, 63, 63, 57, 21, 90, 55, 2, +178,253,236, 39, 32,105, 3,129, 55,108,160,105,114,182,126, 67, 10, 19, 30, 20,172, 23, 36, 24, 13, 37, 78,118, 81,143,151, 5, + 8, 9, 4, 57, 2,176,166,254, 93, 6, 14, 0, 0, 2, 0,113,255,236, 4, 10, 5,203, 0, 43, 0, 63, 0, 55, 64, 32, 49,110, + 12, 34, 65, 16, 65, 1, 23, 59,111, 0, 0, 16, 0, 32, 0, 3, 0, 54,117, 29, 29, 7, 44,115, 39, 25, 16,115, 7, 7, 0, 63, +225, 63,225, 17, 57, 47,225, 1, 47, 93,225, 50, 93, 16,222, 50,225, 49, 48, 19, 52, 62, 4, 51, 50, 30, 2, 23, 21, 38, 38, 35, + 34, 14, 4, 7, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 1, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 21, + 20, 30, 2,113, 21, 53, 92,142,198,133, 19, 46, 47, 43, 17, 35, 88, 43, 90,137,100, 67, 42, 20, 3, 12, 20, 57, 76, 95, 59, 95, +154,108, 59, 62,116,164,102,100,175,128, 74, 1,219, 60, 99, 72, 39, 33, 66, 99, 66, 67,111, 78, 43, 37, 73,110, 2,113,105,208, +191,164,121, 69, 2, 5, 7, 5,155, 12, 12, 43, 78,108,131,148, 80, 36, 63, 45, 26, 59,114,165,106,114,182,127, 68, 78,160,242, +254,185, 41, 83,127, 87, 70,111, 78, 42, 47, 75, 96, 48, 67,133,106, 67, 0, 1, 0, 90, 0, 0, 4, 6, 5,182, 0, 6, 0, 43, +177, 6, 0,184,255,240, 64, 17, 0, 0, 2, 1, 5, 8, 16, 8, 1, 2, 5, 2,116, 3, 6, 0, 24, 0, 63, 63,225, 50, 1, 47, + 93, 16,206, 50, 17, 57, 47, 56, 51, 49, 48, 33, 1, 33, 53, 33, 21, 1, 1, 25, 2, 51,253, 14, 3,172,253,213, 5, 16,166,145, +250,219, 0, 3, 0,106,255,236, 4, 0, 5,205, 0, 39, 0, 58, 0, 74, 0,128, 64, 83, 30, 35, 50,110, 15, 10, 40, 72,110,195, + 5,211, 5, 2,181, 5, 1, 5, 5, 15, 76, 16, 76, 1, 40,110, 25, 62,110,213, 35, 1,204, 35, 1,186, 35, 1, 35, 35, 16, 25, + 32, 25, 2, 25, 10, 30,104, 56,152, 56, 2, 89, 56, 1, 40, 56, 56, 56, 72, 56, 3, 56,147, 67, 1, 38, 67, 86, 67, 2, 67, 67, + 0, 45,115, 20, 25, 59,115, 0, 7, 0, 63,225, 63,225, 17, 57, 47, 93, 93,193, 93, 93, 93, 57, 57, 1, 47, 93, 51, 47, 93, 93, + 93,225, 16,225, 93, 16,206, 50, 47, 93, 93,225, 18, 57, 16,225, 17, 57, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 7, 30, 3, 21, + 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 3, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 39, 39, + 6, 6, 1, 34, 6, 21, 20, 30, 2, 23, 62, 3, 53, 52, 38, 2, 53, 84,149,113, 66, 40, 70, 96, 56, 58,111, 87, 53, 67,121,169, +102,110,171,117, 61, 45, 76,104, 58, 49, 86, 63, 37, 67,114,149,199, 32, 68,104, 72, 70,107, 72, 36, 39, 73,102, 63, 30,126,128, + 1, 22,106,125, 35, 62, 87, 51, 48, 85, 63, 36,126, 5,205, 44, 88,132, 88, 67,108, 87, 69, 28, 31, 76, 95,118, 73, 92,149,104, + 56, 54,101,146, 92, 75,120, 96, 74, 28, 31, 73, 90,109, 66, 87,131, 88, 44,251,166, 53, 89, 63, 35, 35, 65, 92, 56, 52, 84, 72, + 64, 31, 14, 60,155, 3, 84,106,101, 57, 82, 64, 51, 24, 22, 52, 66, 84, 54,101,106, 0, 0, 2, 0,106,255,236, 4, 4, 5,203, + 0, 41, 0, 61, 0, 53, 64, 30, 57, 21,111, 0, 63, 16, 63, 1, 47,110, 12, 16, 32, 32, 32, 2, 32, 52,117, 27, 27, 7, 42,115, + 37, 7, 16,117, 7, 26, 0, 63,225, 63,225, 17, 57, 47,225, 1, 47, 93, 51,225, 93, 16,222,225, 50, 49, 48, 1, 20, 14, 4, 35, + 34, 46, 2, 39, 53, 22, 22, 51, 50, 62, 2, 55, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, 34, 14, 2, 21, + 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 4, 4, 21, 53, 92,142,198,133, 19, 46, 46, 44, 17, 35, 88, 43,135,174,102, 43, 5, + 13, 20, 56, 76, 96, 59, 95,154,108, 59, 63,115,165,102,101,174,128, 74,254, 37, 60, 99, 72, 39, 33, 66, 99, 66, 68,110, 78, 43, + 37, 73,110, 3, 70,105,209,190,165,120, 69, 2, 5, 6, 5,156, 13, 12, 94,161,214,119, 36, 62, 46, 26, 59,114,165,106,114,183, +127, 68, 78,160,243, 1, 71, 40, 84,127, 87, 70,111, 78, 42, 47, 75, 96, 48, 67,133,107, 66, 0, 0, 2, 0,147,255,227, 1,145, + 4,102, 0, 19, 0, 39, 0, 62, 64, 28, 16, 41,128, 41,144, 41,160, 41, 4, 30, 10,150, 20,192, 0,208, 0, 2, 52, 0, 68, 0, +100, 0,116, 0, 4, 0,184,255,192, 64, 11, 7, 10, 72, 0, 35,155, 25, 16, 5,155, 15, 0, 47,237, 63,237, 1, 47, 43, 93, 93, + 51,229, 50, 93, 49, 48, 55, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, + 14, 2, 35, 34, 46, 2,147, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 20, 34, 46, 27, 26, 47, 34, 20, 20, + 34, 47, 26, 27, 46, 34, 20,111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 3,145, 39, 53, 33, 14, 14, 33, 53, + 39, 37, 52, 34, 16, 16, 34, 52, 0, 2, 0, 63,254,248, 1,145, 4,102, 0, 12, 0, 32, 0, 97, 64, 47, 16, 34,128, 34,144, 34, +160, 34, 4, 23,150,192, 13,208, 13, 2,100, 13,116, 13, 2, 80, 13, 1, 68, 13, 1, 59, 13, 1, 31, 13, 47, 13, 2, 13, 13, 27, + 12, 43, 12, 2, 12, 1,151, 6, 7,184,255,192, 64, 17, 16, 20, 72, 95, 7, 1, 16, 7, 1, 7, 28,155, 18, 16, 6,156, 12, 0, + 47,237, 63,237, 1, 47, 93, 93, 43, 51,237, 50, 93, 51, 47, 93, 93, 93, 93, 93, 93,229, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, + 3, 55, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8, + 17, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 2,237, 39, + 53, 33, 14, 14, 33, 53, 39, 37, 52, 34, 16, 16, 34, 52, 0, 1, 0,102, 0,238, 4, 2, 4,221, 0, 6, 0, 78, 64, 48, 0, 8, + 64, 8, 1, 64, 1, 1, 1, 2, 1, 5, 5, 3, 6,111, 0,127, 0, 2, 48, 0, 1, 0, 0, 4, 32, 3, 1, 80, 3,112, 3,128, + 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 50, 18, 57, 61, 47, 51, + 51, 1, 24, 47, 93, 93, 16,206, 49, 48, 37, 1, 53, 1, 21, 1, 1, 4, 2,252,100, 3,156,253, 33, 2,223,238, 1,168,102, 1, +225,160,254,148,254,190, 0, 2, 0,102, 1,186, 4, 2, 3,233, 0, 3, 0, 7, 0, 92, 64, 61, 7, 2, 9, 64, 9, 1, 4,198, + 0, 1,187, 0, 1,169, 0, 1,134, 0, 1,123, 0, 1,104, 0, 1, 66, 0, 1, 57, 0, 1, 0, 4,173, 31, 5, 47, 5, 2,127, + 5, 1, 0, 5, 16, 5, 2, 6, 5, 5, 0,173,240, 1, 1, 15, 1,111, 1, 2, 1, 0, 47, 93, 93,225, 51, 47, 94, 93, 93,113, +225, 1, 47, 93, 93, 93, 93, 93, 93, 93, 93, 51, 93, 16,206, 50, 49, 48, 19, 53, 33, 21, 1, 53, 33, 21,102, 3,156,252,100, 3, +156, 3, 84,149,149,254,102,150,150, 0, 0, 1, 0,102, 0,238, 4, 2, 4,221, 0, 6, 0, 78, 64, 48, 5, 8, 64, 8, 1, 64, + 6, 1, 6, 5, 4, 1, 1, 3, 0,111, 6,127, 6, 2, 48, 6, 1, 6, 6, 2, 32, 3, 1, 80, 3,112, 3,128, 3,208, 3,240, + 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 51, 18, 57, 61, 47, 51, 51, 1, 24, 47, + 93, 93, 16,206, 49, 48, 19, 1, 1, 53, 1, 21, 1,102, 2,224,253, 32, 3,156,252,100, 1,143, 1, 66, 1,108,160,254, 31,102, +254, 88, 0, 2, 0, 37,255,227, 3, 37, 5,203, 0, 39, 0, 59, 0, 62, 64, 33, 50,154, 40, 40, 39, 70, 0, 0, 20, 11, 70, 28, + 61, 47, 61, 1, 20, 11, 23, 15, 0, 1, 6, 0, 0, 45,155, 55, 19, 16, 81, 23, 4, 0, 63,225, 51, 47,229, 50, 47, 94, 93, 18, + 57, 1, 47, 93, 16,222,225, 17, 57, 47,225, 51, 47,225, 49, 48, 1, 53, 52, 62, 2, 55, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, + 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 14, 3, 21, 21, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, + 1, 25, 15, 39, 66, 50, 48, 68, 43, 21, 30, 57, 85, 56, 83,150, 70, 63, 81,188, 97, 93,149,104, 56, 27, 54, 80, 54, 52, 66, 38, + 14,187, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 1,158, 37, 57, 92, 80, 77, 42, 41, 67, 69, 79, 53, 48, + 79, 57, 31, 52, 34,145, 42, 59, 51, 96,139, 87, 67,105, 90, 84, 47, 45, 67, 63, 66, 44, 18,254,209, 38, 53, 33, 15, 15, 33, 53, + 38, 37, 53, 34, 16, 16, 34, 53, 0, 2, 0,109,255, 74, 6,129, 5,182, 0, 87, 0,104, 0,111, 64, 63, 88, 23, 96, 39, 31, 23, + 1,127, 39, 1, 23, 39, 70, 70, 39, 23, 3, 78, 49, 32, 0, 1, 0,106, 64,106, 1, 59, 64, 78, 1, 78, 44, 12, 91, 18, 7, 18, +100, 28, 15, 18, 31, 18,191, 18, 3, 6, 0, 28, 1, 7, 18, 28, 18, 28, 64, 54, 83, 3, 64, 69, 73, 0, 47, 51,193, 63,193, 18, + 57, 57, 47, 47, 94, 93, 94, 93, 16,193, 17, 51, 16,193, 50, 50, 1, 47, 93,193, 93, 16,222,113,193, 17, 23, 57, 47, 47, 47, 93, + 93, 16,193, 16,193, 49, 48, 1, 20, 14, 4, 35, 34, 46, 2, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, + 3, 6, 6, 20, 20, 21, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 4, 6, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 21, + 6, 6, 35, 34, 36, 38, 2, 53, 52, 18, 54, 36, 51, 50, 4, 22, 18, 1, 20, 22, 51, 50, 62, 2, 55, 55, 38, 38, 35, 34, 14, 2, + 6,129, 19, 37, 57, 76, 97, 58, 45, 73, 52, 33, 6, 4, 18, 54, 71, 89, 53, 77,119, 82, 43, 59,111,158, 98, 45, 90, 82, 69, 23, + 23, 1, 1, 21, 34, 43, 23, 46, 70, 47, 24, 86,152,209,123,169,254,254,175, 90, 79,153,227,147, 61,119,111,100, 43, 86,216,130, +179,254,231,195,102,118,219, 1, 55,193,156, 1, 6,191,106,252, 21,101, 85, 55, 78, 50, 26, 4, 14, 28, 77, 42, 74,101, 63, 28, + 2,219, 62,125,113, 97, 72, 41, 30, 50, 65, 35, 37, 66, 49, 28, 56,101,142, 86,101,168,122, 68, 8, 14, 17, 8,254, 96, 22, 27, + 16, 8, 3, 53, 68, 40, 15, 61,104,140, 78,142,221,152, 79,111,199,254,239,162,151,234,160, 82, 14, 24, 31, 17,141, 38, 44,102, +195, 1, 25,179,188, 1, 69,238,136,101,189,254,241,254,213,133,119, 45, 83,115, 69,253, 8, 13, 58, 94,120, 0, 0, 2, 0, 0, + 0, 0, 4,221, 5,188, 0, 7, 0, 20, 0,132, 64, 36, 6, 5, 70, 2, 1, 70, 20, 1, 2, 20, 3, 73, 8, 1, 73, 1, 1, 8, + 1, 0, 14, 14, 3, 0, 0, 16, 7, 1,128, 7,144, 7,208, 7, 3, 7,184,255,192, 64, 24, 6, 10, 72, 7, 16, 7, 7, 22, 15, + 22, 31, 22, 47, 22,143, 22,159, 22,223, 22, 6, 7, 3, 4,184,255,240, 64, 17, 4, 2, 95, 14, 32, 10, 14, 72, 14, 5, 20, 20, + 5, 3, 4, 0, 18, 0, 63, 50, 63, 57, 47, 18, 57, 43,225, 1, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, 17, 18, 57, + 61, 47, 18, 57, 57, 93, 93, 18, 57, 57, 93, 93, 51, 51, 49, 48, 33, 3, 33, 3, 35, 1, 51, 1, 1, 3, 46, 3, 39, 14, 3, 7, + 3, 4, 31,160,253,223,162,188, 2, 25,170, 2, 26,254,103,148, 6, 17, 18, 18, 8, 7, 18, 18, 17, 6,145, 1,197,254, 59, 5, +188,250, 68, 2,106, 1,168, 18, 52, 60, 65, 31, 31, 66, 61, 51, 17,254, 88, 0, 0, 3, 0,199, 0, 0, 4,135, 5,182, 0, 23, + 0, 34, 0, 47, 0, 98, 64, 62, 11, 30, 90, 5, 6, 1,229, 6,245, 6, 2,214, 6, 1, 6, 6, 36, 42, 91,112, 17,128, 17, 2, + 17,103, 49,127, 49,143, 49, 2, 16, 49, 1, 24, 36, 90, 23,100, 48, 11, 35, 96,121, 24, 1, 11, 24, 1, 8, 24, 24, 0, 36, 96, + 23, 18, 34, 96, 0, 3, 0, 63,225, 63,225, 17, 57, 47, 94, 93, 93,225, 57, 1, 16,246,225, 50, 93, 93, 16,246, 93,225, 18, 57, + 47, 93, 93,113,225, 50, 49, 48, 19, 33, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 35, 33, 19, 51, 50, 62, 2, + 53, 52, 38, 35, 35, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35,199, 1,143,128,195,131, 66, 39, 74,109, 69, 69,121, 90, 52, 65, +123,176,111,254, 27,186,244, 84,114, 70, 31,154,166,223, 1, 10, 88,119, 73, 32, 33, 75,124, 92, 5,182, 39, 87,141,103, 62,108, + 82, 55, 9, 10, 12, 45, 79,120, 86,100,157,109, 58, 3, 74, 30, 59, 89, 59,120,104,253,151,253,240, 40, 72,101, 61, 56, 94, 67, + 37, 0, 0, 1, 0,125,255,236, 4,152, 5,203, 0, 35, 0, 76, 64, 20,175, 14, 1, 14, 64, 21, 24, 72, 14, 14, 24,186, 32, 1, + 96, 32,112, 32, 2, 32,184,255,192, 64, 24, 6, 10, 72, 32, 32, 37,175, 37, 1, 5, 91, 24,102, 36, 33, 0, 95, 29, 4, 13, 10, + 95, 19, 19, 0, 63,225, 51, 63,225, 51, 1, 16,246,225, 93, 17, 51, 47, 43, 93, 93, 18, 57, 47, 43, 93, 49, 48, 1, 34, 14, 2, + 21, 20, 30, 2, 51, 50, 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 3, 25,107,174, +123, 67, 59,118,176,118, 89,160, 78, 39, 78, 85, 97, 59,164,240,157, 76, 87,169,250,162,108,196, 79, 78, 63,148, 5, 39, 81,152, +218,137,141,219,150, 78, 35, 23,162, 15, 23, 14, 7,108,198, 1, 22,169,166, 1, 20,198,110, 44, 42,156, 32, 46, 0, 2, 0,199, + 0, 0, 4,252, 5,182, 0, 12, 0, 23, 0, 38, 64, 21, 13, 91, 0,103, 25, 16, 25, 1, 20, 90, 6,100, 24, 19, 96, 7, 3, 20, + 96, 6, 18, 0, 63,225, 63,225, 1, 16,246,225, 93, 16,246,225, 49, 48, 1, 20, 2, 6, 4, 35, 33, 17, 33, 50, 22, 22, 18, 7, + 52, 46, 2, 35, 35, 17, 51, 32, 0, 4,252, 96,182,254,247,168,254,146, 1,151,153,248,174, 95,197, 66,126,184,117,201,162, 1, + 8, 1, 12, 2,233,185,254,233,187, 94, 5,182, 92,181,254,244,182,146,213,138, 67,251,137, 1, 36, 0, 0, 1, 0,199, 0, 0, + 3,190, 5,182, 0, 11, 0, 66, 64, 38, 20, 8, 1, 8, 8, 1, 4, 0,103, 13, 6, 10, 90, 1,100, 12, 9, 95, 79, 6, 1, 15, + 6,175, 6, 2, 8, 6, 6, 10, 5, 95, 2, 3, 10, 95, 1, 18, 0, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, + 50, 16,230, 50, 17, 57, 47, 93, 49, 48, 33, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 3,190,253, 9, 2,247,253,195, 2, 23, +253,233, 2, 61, 5,182,164,254, 60,162,253,248, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 9, 0,112, 64, 17, 8, 8, 1, 15, + 3, 1,255, 3, 1,128, 3,144, 3,208, 3, 3, 3,184,255,192, 64, 56, 7, 10, 72, 3, 3, 11, 15, 11, 47, 11,143, 11,175, 11, + 4, 7, 6, 0, 90, 1,100, 10, 9, 95, 15, 6, 1, 15, 6, 63, 6,111, 6,255, 6, 4, 8, 6, 64, 26, 29, 72, 6, 64, 16, 21, + 72, 6, 6, 0, 5, 95, 2, 3, 0, 18, 0, 63, 63,225, 18, 57, 47, 43, 43, 94, 93,113,225, 1, 16,246,225, 50, 94, 93, 17, 51, + 47, 43, 93, 93,113, 18, 57, 47, 49, 48, 33, 35, 17, 33, 21, 33, 17, 33, 21, 33, 1,129,186, 2,247,253,195, 2, 23,253,233, 5, +182,164,253,252,164, 0, 0, 1, 0,125,255,236, 4,242, 5,203, 0, 43, 0, 55, 64, 30, 43, 43, 12, 41, 90, 20, 2,103, 45, 16, + 45, 1, 31, 91, 12,102, 44, 43, 95, 0, 0, 36, 26, 95, 17, 4, 36, 95, 7, 19, 0, 63,225, 63,225, 18, 57, 47,225, 1, 16,246, +225, 93, 16,246, 50,225, 17, 57, 47, 49, 48, 1, 33, 17, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 36, 51, 50, 22, 23, 7, 46, + 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 33, 3, 14, 1,228, 55,112,118,130, 75,157,242,166, 86, 95,182, 1, + 11,171,111,204, 88, 72, 36, 83, 88, 93, 46,122,188,127, 66, 55,120,190,134, 44, 73, 62, 55, 26,254,213, 3, 4,253, 51, 18, 28, + 19, 10,105,195, 1, 23,174,172, 1, 22,195,105, 44, 42,162, 17, 30, 23, 14, 81,152,218,137,130,216,156, 86, 5, 8, 11, 5, 1, +180, 0, 0, 1, 0,199, 0, 0, 4,213, 5,182, 0, 11, 0, 61, 64, 35, 9, 1, 90, 0,101, 13,192, 13, 1,191, 13, 1, 32, 13, + 1, 8, 4, 90, 5,100, 12, 3, 95, 15, 8, 1, 8, 8, 8, 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 94, 93,225, 1, + 16,246,225, 50, 93, 93, 93, 16,246,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,213,186,253,102,186,186, + 2,154,186, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0, 82, 0, 0, 2,100, 5,182, 0, 11, 0, 87, 64, 38, 11, 13, + 43, 13, 2,123, 13,155, 13,171, 13,251, 13, 4, 84, 13, 1, 43, 13, 59, 13, 75, 13, 3, 31, 13, 1, 2, 8, 11, 10, 90, 5, 2, +201, 3, 1, 3,184,255,248, 64, 16, 13, 16, 72, 0, 3, 1, 6, 3, 9, 4, 6, 3, 3, 10, 0, 18, 0, 63,193, 50, 63,193, 50, + 1, 47, 94, 93, 43, 93,193, 50,241,193, 50, 95, 93, 93, 93, 93,113, 49, 48, 33, 33, 53, 55, 17, 39, 53, 33, 21, 7, 17, 23, 2, +100,253,238,172,172, 2, 18,172,172,102, 41, 4,152, 41,102,102, 41,251,104, 41, 0, 1,255, 72,254,123, 1,115, 5,182, 0, 19, + 0, 47, 64, 28,223, 21, 1, 96, 21,112, 21, 2, 47, 21, 1, 15, 90, 12, 3, 3, 0, 12, 16, 12, 2, 7, 12, 13, 3, 7, 95, 0, + 0, 47,225, 63, 1, 47, 94, 93, 51, 47, 16,225, 93, 93, 93, 49, 48, 3, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 51, 17, + 20, 14, 2, 29, 51, 76, 28, 34, 78, 45, 37, 75, 61, 38,187, 59,105,147,254,123, 13, 11,160, 9, 11, 19, 50, 88, 68, 5,182,250, + 94,105,154,101, 49, 0, 0, 1, 0,199, 0, 0, 4,162, 5,182, 0, 12, 0,100, 64, 45, 2, 12,102, 12, 1, 12, 0, 10, 11, 16, + 11, 11, 1, 0, 0, 16, 0, 2, 7, 0, 16, 0, 0, 14,176, 14, 1, 47, 14, 1, 16, 14, 1, 8, 4, 90, 5,100, 13, 2, 16, 11, + 16, 72, 8,184,255,240, 64, 12, 11, 16, 72, 2, 8, 5, 10, 6, 3, 0, 5, 18, 0, 63, 51, 63, 51, 18, 57, 57, 43, 43, 1, 16, +246,225, 50, 93, 93, 93, 17, 51, 47, 56, 94, 93, 51, 51, 47, 56, 51, 17, 57, 93, 17, 51, 49, 48, 33, 35, 1, 7, 17, 35, 17, 51, + 17, 55, 1, 51, 1, 4,162,211,254, 61,139,186,186,121, 1,196,209,253,248, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253, +131, 0, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 5, 0, 35, 64, 19, 4, 7,175, 7, 1, 16, 7, 1, 3, 90, 0,100, 6, 1, + 3, 3, 95, 0, 18, 0, 63,225, 63, 1, 16,246,225, 93, 93, 17, 51, 49, 48, 51, 17, 51, 17, 33, 21,199,186, 2, 61, 5,182,250, +240,166, 0, 1, 0,199, 0, 0, 6, 47, 5,182, 0, 25, 0,139, 64, 19, 54, 25, 1, 57, 0, 1, 23, 14, 8, 12, 15, 72, 57, 14, + 1, 14, 17, 90, 25,184,255,248, 64, 28, 12, 15, 72, 25, 0, 8, 12, 15, 72, 0, 13, 13, 12, 9, 16,101, 27, 79, 27, 1, 32, 27, + 1, 15, 27, 1, 8, 11,184,255,248, 64, 26, 12, 15, 72, 38, 11, 1, 11, 2, 8, 90, 9,100, 26, 24, 1, 1, 16, 9, 18, 72, 1, + 14, 11, 3, 17, 12,184,255,240,182, 9, 18, 72, 12, 8, 0, 18, 0, 63, 50, 50, 43, 50, 63, 51, 51, 43, 17, 51, 1, 16,246,225, + 50, 50, 93, 43, 94, 93, 93, 93, 16,246, 17, 57, 57, 17, 51, 43, 51, 43,225, 50, 93, 43, 50, 49, 48, 93, 93, 33, 1, 35, 22, 23, + 22, 22, 21, 17, 35, 17, 33, 1, 51, 1, 33, 17, 35, 17, 52, 54, 55, 54, 55, 35, 1, 3, 35,254, 69, 8, 6, 4, 4, 5,172, 1, + 20, 1,156, 6, 1,158, 1, 20,186, 4, 3, 4, 3, 8,254, 65, 5, 0, 74, 73, 63,139, 57,252,150, 5,182,251, 88, 4,168,250, + 74, 3,119, 52,134, 61, 71, 73,251, 2, 0, 1, 0,199, 0, 0, 5, 14, 5,182, 0, 23, 0, 81, 64, 41, 14, 40, 1, 1, 1, 21, + 90, 0,101, 25,176, 25, 1,143, 25, 1, 0, 25, 16, 25, 2, 39, 12, 1, 12, 3, 9, 90, 10,100, 24, 22, 2, 16, 6, 24, 72, 2, + 11, 3, 13,184,255,240,182, 6, 24, 72, 13, 10, 0, 18, 0, 63, 50, 50, 43, 63, 51, 43, 51, 1, 16,246,225, 50, 50, 93, 93, 93, + 93, 16,246,225, 50, 93, 50, 49, 48, 33, 35, 1, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 46, 3, 53, 17, 51, 5, + 14,215,253, 49, 8, 6, 4, 4, 5,172,213, 2,204, 7, 3, 4, 1, 3, 3, 1,174, 4,186, 77, 76, 65,142, 57,252,231, 5,182, +251, 76, 76, 74, 32, 67, 67, 62, 26, 3, 32, 0, 0, 2, 0,125,255,236, 5,113, 5,205, 0, 19, 0, 39, 0, 52, 64, 32, 30, 91, + 0,103, 41,192, 41, 1,191, 41, 1,112, 41, 1, 47, 41, 95, 41, 2, 20, 91, 10,102, 40, 35, 95, 15, 4, 25, 95, 5, 19, 0, 63, +225, 63,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, + 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 5,113, 81,160,237,155,163,239,157, 76, 76,158, +240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50,106,164,114,114,166,108, 52, 2,221,169,254,234,198,108,108, +198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, + 0,199, 0, 0, 4, 51, 5,182, 0, 14, 0, 25, 0, 70, 64, 44, 21, 91, 40, 0, 56, 0, 72, 0, 3, 0,103, 27,207, 27, 1, 64, + 27, 1, 15, 27, 1, 6, 15, 7, 90, 8,100, 26, 15, 96, 48, 6, 64, 6, 2, 6, 6, 7, 25, 96, 9, 3, 7, 18, 0, 63, 63,225, + 17, 57, 47, 93,225, 1, 16,246,225, 50, 94, 93, 93, 93, 16,246, 93,225, 49, 48, 1, 20, 14, 2, 35, 35, 17, 35, 17, 33, 50, 30, + 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 4, 51, 55,126,207,152,150,186, 1,106,134,194,126, 60,253, 78,129, 93,139, 91, 46, +164,174,160, 4, 10, 91,168,129, 77,253,199, 5,182, 57,109,160,254,103, 32, 71,113, 81,142,137, 0, 2, 0,125,254, 98, 5,113, + 5,205, 0, 29, 0, 49, 0, 56, 64, 34, 40, 91, 0,103, 51,192, 51, 1,191, 51, 1,112, 51, 1, 47, 51, 95, 51, 2, 30, 91, 20, +102, 50, 45, 95, 25, 4, 35, 95, 5, 15, 19, 9, 0, 47, 63, 51,225, 63,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 49, 48, + 1, 20, 14, 2, 7, 22, 22, 23, 7, 38, 38, 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, + 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 5,113, 49, 95,142, 93, 43,137, 90,121,103,173, 51, 17, 41, 18,163,239,157, + 76, 76,158,240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50,106,164,114,114,166,108, 52, 2,221,131,226,181, +132, 38, 94,143, 60,142, 73,198,127, 2, 2,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, 81, 81,153, +219,137,138,218,151, 81, 81,151,218, 0, 0, 2, 0,199, 0, 0, 4,160, 5,182, 0, 15, 0, 28, 0,130, 64, 86, 9, 15, 25, 15, + 2,249, 15, 1, 15, 8, 11, 15, 72, 15, 12, 9, 12, 1, 7, 12, 1, 22, 91, 8, 7, 24, 7, 2, 7, 7, 9, 14, 1,233, 14,249, + 14, 2, 14, 8, 11, 15, 72, 14, 13, 16, 13, 30, 63, 30,143, 30,159, 30,191, 30,223, 30, 5, 32, 30, 1, 16, 1, 90, 2,100, 29, + 12, 3, 16, 96, 0, 0, 1, 8, 0, 0, 1, 28, 96, 3, 3, 14, 1, 18, 0, 63, 51, 63,225, 17, 57, 47, 94, 93,225, 18, 57, 1, + 16,246,225, 50, 93, 93, 16,206, 56, 50, 43, 93,113, 50, 47, 93,225, 18, 57, 94, 93, 17, 51, 43, 93,113, 49, 48, 1, 17, 35, 17, + 33, 32, 22, 21, 20, 14, 2, 7, 1, 35, 1, 39, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 1,129,186, 1,100, 1, 10,254, 49, 81, +104, 55, 1,142,219,254,161,229,164, 90,126, 81, 37, 41, 83,127, 87,160, 2, 92,253,164, 5,182,206,209, 87,130, 93, 62, 20,253, +113, 2, 92,158, 35, 69,103, 69, 72,100, 64, 29, 0, 1, 0,104,255,236, 3,201, 5,203, 0, 51, 0, 66, 64, 39, 89, 35, 1, 35, + 17, 90, 0,103, 53,191, 53,255, 53, 2, 96, 53, 1, 63, 53, 1, 42, 90, 9, 27,102, 52, 17, 42, 5, 39, 95, 36, 32, 4, 14, 96, + 9, 5, 19, 0, 63, 51,225, 63, 51,225, 18, 57, 57, 1, 16,246, 50,225, 93, 93, 93, 16,246,225, 51, 93, 49, 48, 1, 20, 14, 2, + 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, + 20, 30, 2, 23, 30, 3, 3,201, 69,128,184,115,111,193, 65, 34, 87, 96,102, 50,160,153, 29, 73,122, 93, 89,131, 85, 41, 64,116, +161, 97,119,190, 74, 67, 65,165, 88,122,134, 30, 70,115, 84, 91,137, 92, 47, 1,135, 97,153,106, 55, 35, 34,178, 16, 31, 24, 15, +120,112, 54, 80, 67, 63, 37, 35, 83,104,132, 84, 88,138, 95, 50, 45, 35,156, 29, 43,113, 96, 57, 83, 67, 59, 33, 36, 76, 96,126, + 0, 1, 0, 20, 0, 0, 4, 18, 5,182, 0, 7, 0, 94, 64, 50, 15, 9, 1,208, 9, 1, 79, 9,207, 9, 2, 16, 9, 32, 9, 48, + 9, 3,175, 6,239, 6, 2,132, 6, 1, 6, 6, 7, 90, 2, 64, 3,224, 3, 2, 15, 3, 1, 8, 3, 3, 87, 2,103, 2,119, 2, + 3, 2,184,255,192, 64, 11, 7, 10, 72, 2, 7, 3, 95, 4, 3, 0, 18, 0, 63, 63,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, + 16,225, 50, 47, 93, 93, 93, 93, 93,113, 49, 48, 33, 35, 17, 33, 53, 33, 21, 33, 2,113,187,254, 94, 3,254,254, 95, 5, 18,164, +164, 0, 0, 1, 0,184,255,236, 4,221, 5,184, 0, 23, 0, 47, 64, 28, 22, 90, 1,101, 25,176, 25, 1,111, 25,175, 25, 2, 16, + 25, 1, 14, 90, 11,100, 24, 17, 95, 6, 19, 12, 0, 3, 0, 63, 50, 63,225, 1, 16,246,225, 93, 93, 93, 16,246,225, 49, 48, 1, + 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 55, 17, 4,221, 66,133,201,136,128,196,133, 68,187,173, +175, 89,128, 82, 40, 1, 5,184,252, 76,114,196,144, 82, 77,142,199,122, 3,174,252, 72,175,192, 54, 98,136, 81, 3,184, 0, 1, + 0, 0, 0, 0, 4,139, 5,182, 0, 12, 0,108, 64, 16, 3, 2, 9, 9, 4, 0, 96, 1,112, 1,176, 1,240, 1, 4, 1,184,255, +192, 64, 22, 6, 10, 72, 1, 16, 1, 1, 14, 47, 14,127, 14,191, 14, 3, 14, 64, 6, 9, 72, 5, 4,184,255,240,180, 4, 5, 4, + 3, 9,184,255,224,179, 10, 17, 72, 9,184,255,240, 64, 10, 6, 9, 72, 9, 2, 3, 18, 0, 1, 3, 0, 63, 51, 63, 51, 51, 43, + 43, 63, 51, 1, 47, 56, 51, 43, 93, 17, 51, 47, 56, 43, 93, 51, 18, 57, 61, 47, 51, 51, 49, 48, 1, 51, 1, 35, 1, 51, 1, 22, + 22, 23, 54, 54, 55, 3,197,198,254, 23,187,254, 25,197, 1, 39, 29, 42, 17, 15, 46, 31, 5,182,250, 74, 5,182,252, 97, 91,169, + 74, 74,169, 97, 0, 1, 0, 20, 0, 0, 6,254, 5,182, 0, 42, 0,223,182, 16, 8, 21, 24, 72, 16, 15,184,255,248,181, 21, 24, + 72, 15, 7, 1,184,255,248, 64, 18, 21, 24, 72, 1, 0, 8, 21, 24, 72, 0, 22, 29, 8, 21, 24, 72, 29, 28,184,255,248, 64, 47, + 21, 24, 72, 28, 37, 20, 7, 1, 4, 7, 68, 7,180, 7, 3, 7, 4, 37, 20, 37, 36, 37, 68, 37, 84, 37, 5, 7, 22, 37, 37, 22, + 7, 3, 30, 13, 0, 14, 1,112, 14,128, 14,192, 14, 3, 14,184,255,192, 64, 24, 7, 10, 72, 14, 16, 14, 14, 44,111, 44,127, 44, + 2, 32, 44, 48, 44, 2, 15, 44, 1, 8, 31, 30,184,255,240, 64, 19, 30, 22, 32, 10, 17, 72, 22, 16, 6, 9, 72, 22, 13, 0, 30, + 3, 7, 37, 37,184,255,224,179, 10, 17, 72, 37,184,255,240,182, 6, 9, 72, 37, 16, 29, 18, 0, 63, 51, 51, 43, 43, 17, 51, 63, + 51, 51, 51, 43, 43, 1, 47, 56, 51, 94, 93, 93, 93, 17, 51, 47, 56, 43, 93,113, 51, 18, 23, 57, 61, 47, 47, 47, 93, 94, 93,113, + 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 49, 48, 1, 51, 19, 30, 3, 23, 62, 3, 55, 19, 51, 1, 35, 3, 38, + 38, 39, 38, 39, 6, 7, 6, 6, 7, 3, 35, 1, 51, 19, 30, 3, 23, 62, 3, 55, 3, 41,197,229, 15, 29, 25, 19, 6, 4, 12, 16, + 19, 11,200,199,254,145,188,254, 14, 26, 11, 12, 11, 11, 11, 10, 25, 14,242,188,254,126,197,223, 12, 20, 17, 14, 5, 5, 15, 20, + 23, 13, 5,182,252,168, 56,112,105, 94, 38, 38, 90, 99,103, 49, 3,114,250, 74, 3,170, 51,108, 47, 55, 52, 51, 55, 47,112, 54, +252, 92, 5,182,252,135, 46, 99, 98, 91, 38, 37, 98,108,111, 49, 0, 1, 0, 0, 0, 0, 4, 96, 5,182, 0, 11, 0,129, 64, 29, + 9, 10, 16, 10, 10, 0, 55, 11, 1, 11, 8, 56, 5, 1, 5, 2, 2, 1, 0, 0, 1,112, 0,128, 0,192, 0, 3, 0,184,255,192, + 64, 20, 7, 10, 72, 0, 16, 0, 0, 13, 15, 13, 31, 13, 47, 13,127, 13, 4, 8, 7, 6,184,255,240,179, 6, 6, 3, 4,184,255, +240, 64, 16, 4, 40, 2, 1, 39, 8, 1, 2, 8, 4, 9, 6, 3, 4, 0, 18, 0, 63, 50, 63, 51, 18, 57, 57, 93, 93, 1, 47, 56, + 50, 50, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, 57, 61, 47, 51, 93, 51, 51, 93, 17, 51, 24, 47, 56, 51, 49, 48, 33, + 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4, 96,211,254,158,254,145,188, 1,197,254, 90,198, 1, 76, 1, 78,190,254, 91, 2, +123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 0, 0, 0, 4, 55, 5,182, 0, 8, 0,115, 64, 25,239, 10, + 1, 10, 64, 9, 12, 72, 8,171, 7, 1,152, 7, 1, 64, 7, 1, 27, 7, 1, 15, 7, 1, 7,184,255,240, 64, 47, 7, 7, 5, 1, +128, 2, 1, 79, 2, 1, 27, 2, 1, 2, 16, 2, 2, 0, 4, 90,119, 5,135, 5,151, 5, 3, 79, 5, 1, 0, 5, 16, 5, 2, 7, + 5, 54, 0, 1, 0, 1, 4, 18, 7, 1, 3, 0, 63, 51, 63, 18, 57, 93, 1, 47, 94, 93, 93, 93,225, 57, 50, 47, 56, 93, 93, 93, + 51, 17, 51, 47, 56, 93, 93, 93, 93, 93, 51, 43, 93, 49, 48, 1, 1, 51, 1, 17, 35, 17, 1, 51, 2, 27, 1, 84,200,254, 66,187, +254, 66,203, 2,211, 2,227,252,131,253,199, 2, 47, 3,135, 0, 0, 1, 0, 82, 0, 0, 3,254, 5,182, 0, 9, 0, 56, 64, 32, + 9, 9, 3, 7,103, 11, 15, 11, 63, 11, 79, 11,159, 11, 4, 8, 8, 4, 4, 1,102, 10, 7, 4, 95, 5, 3, 2, 8, 95, 1, 18, + 0, 63,225, 57, 63,225, 57, 1, 16,230, 50, 47, 50, 94, 93, 16,230, 50, 50, 47, 49, 48, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, + 3,254,252, 84, 2,199,253, 77, 3,131,253, 58, 2,219,145, 4,127,166,145,251,129, 0, 0, 1, 0,164,254,188, 2, 57, 5,182, + 0, 7, 0, 38, 64, 23, 4, 0,243, 6,241, 0, 1, 16, 1,176, 1,192, 1, 4, 1, 5,245, 2,248, 6,245, 1,249, 0, 63,225, + 63,225, 1, 47, 93,225,237, 50, 49, 48, 1, 33, 17, 33, 21, 35, 17, 51, 2, 57,254,107, 1,149,223,223,254,188, 6,250,149,250, + 49, 0, 0, 1, 0, 23, 0, 0, 2,233, 5,182, 0, 3, 0, 33,183, 2, 1, 1, 16, 1, 5, 0, 3,184,255,240,180, 3, 2, 1, + 0, 3, 0, 63, 47, 47, 1, 47, 56, 51, 17, 51, 56, 17, 51, 49, 48, 19, 1, 35, 1,201, 2, 32,178,253,224, 5,182,250, 74, 5, +182, 0, 0, 1, 0, 51,254,188, 1,201, 5,182, 0, 7, 0, 36, 64, 20, 3, 0,243, 1,241, 96, 6,112, 6, 2, 6, 9, 0,245, + 7,249, 3,245, 4,248, 0, 63,225, 63,225, 1, 16,214, 93,225,237, 50, 49, 48, 23, 51, 17, 35, 53, 33, 17, 33, 51,223,223, 1, +150,254,106,174, 5,207,149,249, 6, 0, 0, 1, 0, 41, 2, 37, 4, 25, 5,193, 0, 6, 0, 18,182, 3, 3, 8, 0, 0, 1, 6, + 0, 63,205, 1, 47, 17, 51, 47, 49, 48, 19, 1, 51, 1, 35, 1, 1, 41, 1,203,102, 1,191,161,254,175,254,163, 2, 37, 3,156, +252,100, 2,223,253, 33, 0, 1,255,252,254,188, 3, 78,255, 72, 0, 3, 0, 18,182, 0, 0, 5, 1, 1,186, 2, 0, 47,225, 1, + 47, 17, 51, 47, 49, 48, 1, 33, 53, 33, 3, 78,252,174, 3, 82,254,188,140, 0, 0, 1, 1,137, 4,217, 3, 18, 6, 33, 0, 13, + 0, 22, 64, 10, 0, 6, 8,128, 15, 0, 95, 0, 2, 0, 0, 47, 93, 26,204, 1, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, + 3, 23, 3, 18,120, 35, 82, 77, 63, 16,219, 16, 43, 46, 48, 21, 4,217, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 0, 0, 2, + 0, 94,255,236, 3,156, 4, 94, 0, 35, 0, 50, 0, 84, 64, 17, 16, 1, 41, 71, 35, 85, 52, 15, 52,111, 52, 2, 6, 48, 72, 12, + 26,184,255,208, 64, 30, 13, 17, 72, 26, 16, 9, 12, 72, 26, 26, 12, 86, 51, 25, 22, 80, 29, 42, 82, 16, 16, 29, 16, 36, 80, 2, + 7, 22, 0, 21, 0, 63, 63, 51,225, 63, 57, 47,225, 16,225, 50, 1, 16,230, 50, 47, 43, 43, 16,225, 94, 93, 16,246,225, 50, 50, + 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, + 17, 37, 50, 62, 2, 53, 53, 7, 14, 3, 21, 20, 22, 3, 25, 37, 8, 33, 66, 78, 96, 63, 69,116, 85, 48,231,236,184, 29, 55, 81, + 52, 83,143, 66, 64, 74,182,100,102,149, 97, 48,254, 47, 61,104, 76, 43,143, 90,122, 73, 32, 97,152, 45, 65, 42, 20, 39, 81,123, + 84,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34,137, 40, 56, 41, 89,138, 98,253, 16,127, 38, 77,117, 79, 99, 7, 4, 32, 57, 81, + 51, 92, 86, 0, 0, 2, 0,174,255,236, 4, 63, 6, 20, 0, 31, 0, 47, 0, 56,181, 45, 72, 5, 87, 49, 49,184,255,184, 64, 23, + 10, 73, 21, 16, 37, 71, 18, 84, 48, 19, 0, 18, 21, 42, 80, 15, 10, 22, 32, 80, 27, 0, 16, 0, 63, 50,225, 63, 51,225, 63, 63, + 1, 16,246,225, 50, 50, 43, 16,246,225, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 35, 7, 35, 17, 51, 17, 20, + 6, 7, 6, 7, 51, 62, 3, 23, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 53, 52, 38, 2,158, 94,154,109, 60, 60,109,154, 94, 59, + 96, 77, 59, 23, 12, 37,133,182, 2, 2, 2, 2, 8, 23, 58, 77, 96, 25, 80,107, 65, 27, 27, 65,108, 81,135,127,127, 4, 94, 72, +143,212,140,141,213,144, 73, 26, 43, 58, 32,139, 6, 20,254,136, 35, 79, 34, 40, 38, 35, 60, 44, 25,151, 51,104,156,105,101,157, +107, 55,218,204,208,206, 0, 1, 0,113,255,236, 3,111, 4, 94, 0, 31, 0, 42, 64, 24, 29, 13, 33, 95, 33,127, 33, 2, 16, 33, + 1, 22, 72, 5, 86, 32, 19, 81, 10, 16, 25, 81, 0, 22, 0, 63,225, 63,225, 1, 16,246,225, 93, 93, 16,206, 50, 49, 48, 5, 34, + 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 6, 6, 2, 82,101,176,130, 74, + 76,133,178,102, 78,149, 50, 54, 23, 56, 60, 58, 26,157,144,145,148, 81,131, 54, 54,123, 20, 63,137,213,150,157,219,137, 62, 34, + 25,154, 10, 19, 15, 9,201,212,211,195, 37, 25,162, 29, 30, 0, 0, 2, 0,113,255,236, 4, 2, 6, 20, 0, 31, 0, 48, 0, 52, + 64, 29, 38, 0, 27, 71, 30, 85, 50, 16, 50, 1, 46, 72, 11, 86, 49, 31, 21, 28, 0, 43, 80, 22, 16, 16, 32, 80, 1, 6, 22, 0, + 63, 51,225, 63, 51,225, 63, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, 49, 48, 37, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, + 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 35, 37, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 84, + 8, 22, 59, 77, 96, 60, 93,154,110, 60, 60,110,154, 93, 59, 96, 77, 60, 22, 12, 3, 3, 2, 4,182,147,254,198, 76,105, 65, 31, + 2, 27, 65,108, 81,135,127,127,147, 34, 61, 46, 26, 72,143,212,140,141,213,144, 73, 26, 44, 58, 32, 34, 31, 26, 55, 16, 1,180, +249,236,131, 46, 94,141, 94, 41,101,157,107, 55,218,204,209,205, 0, 2, 0,113,255,236, 3,225, 4, 94, 0, 30, 0, 39, 0, 67, + 64, 40, 35, 72, 25, 16, 87, 41,224, 41, 1,111, 41, 1, 34, 17, 72, 5, 86, 40, 17, 80, 27, 34, 43, 34, 2, 15, 34, 1, 6, 34, + 34, 20, 31, 80, 10, 16, 20, 81, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93,225, 1, 16,246,225, 50, 93, 93, 16,246, 50, +225, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 3, 34, 6, 7, + 33, 52, 46, 2, 2, 96,110,182,131, 72, 66,120,167,101, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87, + 96,114,133, 11, 1,236, 27, 57, 88, 20, 74,142,210,135,136,214,149, 78, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, + 18, 8, 3,219,156,149, 68,113, 80, 44, 0, 1, 0, 29, 0, 0, 2,240, 6, 31, 0, 27, 0,112, 64, 78,207, 29,223, 29, 2, 96, + 29,128, 29,144, 29,160, 29, 4, 31, 29, 63, 29, 79, 29, 3, 27, 27,127, 16,191, 16, 2, 16, 16, 26, 2, 71, 3, 7, 3, 15, 5, + 31, 5, 47, 5,175, 5, 4, 5, 5, 0, 3, 16, 3, 32, 3,128, 3,144, 3,160, 3, 6, 6, 3, 1, 5, 79, 7, 0, 26, 1, 7, + 26, 15, 20, 80, 13, 1, 2, 21, 0, 63, 63,225, 63, 94, 93, 51,225, 50, 1, 47, 94, 93, 51, 47, 93, 17, 51, 16,225, 50, 50, 47, + 93, 57, 47, 93, 93, 93, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, + 21, 51, 2,139,245,183,194,194, 45, 85,124, 78, 59, 99, 39, 47, 31, 73, 40, 40, 58, 38, 19,245, 3,193,252, 63, 3,193, 75, 68, + 96,107,141, 84, 35, 23, 14,141, 11, 17, 19, 48, 83, 65,104, 0, 0, 3, 0, 37,254, 20, 3,252, 4, 94, 0, 63, 0, 82, 0, 94, + 0,167, 64, 25, 13, 50, 5, 83, 71, 55, 18, 47, 96, 55,112, 55,128, 55, 3, 55, 47, 55, 47, 39, 72, 29, 89, 71, 5,184,255,192, + 64, 77, 7, 10, 72, 5, 5, 1, 10, 29, 1,253, 29, 1,176, 29, 1,136, 29, 1, 32, 29, 48, 29, 64, 29, 3, 29, 29, 96, 31, 96, + 1,191, 96,223, 96, 2,160, 96, 1, 64, 39, 64, 12, 15, 72, 39, 2, 5, 50, 13, 4, 60, 86, 82, 10, 10, 34, 92, 79, 60, 44, 78, + 15, 23, 1, 7, 23, 23, 60, 16, 69, 79, 34, 27, 1, 0, 15, 0, 63,193, 63,225, 63, 57, 47, 94, 93,193, 57, 16,225, 17, 57, 47, +225, 18, 23, 57, 1, 47, 43,193, 93, 93,113, 17, 51, 47, 93, 93, 93, 93,113, 51, 57, 47, 43,225, 16,193, 17, 57, 57, 47, 47, 93, + 16,193, 16,225, 18, 57, 57, 49, 48, 1, 21, 7, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 14, 3, 21, 20, 30, 2, 51, 51, 50, 30, + 2, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 55, 38, 38, 53, 52, 54, 55, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 1, 20, + 30, 2, 51, 50, 54, 53, 52, 46, 2, 35, 35, 34, 14, 2, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3,252,197, 28, 38, 47, + 95,140, 93, 22, 44, 14, 17, 33, 27, 17, 24, 41, 56, 31,176, 93,128, 81, 36, 65,134,205,139,107,160,106, 53, 39, 66, 87, 47, 42, + 54, 64, 69, 43, 71, 49, 27, 50, 98,146, 97, 37, 79, 27,254, 64, 26, 59, 97, 72,186,185, 24, 55, 90, 65,176, 35, 76, 63, 41, 92, +108, 99,100,103,105,100, 99,106, 4, 74,113, 27, 35,109, 69, 76,129, 94, 53, 1, 3, 10, 25, 32, 40, 24, 27, 33, 18, 6, 47, 80, +109, 61, 88,140, 97, 52, 42, 80,113, 71, 60, 91, 66, 42, 11, 19, 82, 53, 61, 89, 42, 18, 63, 81, 96, 51, 89,140, 98, 52, 11, 9, +251, 2, 37, 64, 46, 27,115,108, 46, 58, 33, 12, 16, 44, 77, 3, 96,115,112,111,119,123,116,120, 0, 1, 0,174, 0, 0, 4, 18, + 6, 20, 0, 25, 0, 50, 64, 29, 0, 71, 25, 85, 27, 16, 27, 96, 27,128, 27, 3, 15, 14, 10, 71, 11, 84, 26, 16, 4, 80, 21, 16, + 12, 0, 11, 0, 21, 0, 63, 50, 63, 63,225, 51, 1, 16,246,225, 50, 50, 93, 16,246,225, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, + 21, 17, 35, 17, 51, 17, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,182, 8, 10, 25, 69, 82, 92, 48, +183,185, 2,195,130,130, 52,102,148, 96,253,199, 6, 20,254, 50,144, 43, 63, 42, 20,191,210,253, 51, 0, 0, 2, 0,160, 0, 0, + 1,117, 5,229, 0, 3, 0, 17, 0, 37, 64, 20, 16, 19, 32, 19, 2, 12, 0, 71, 4, 1, 84, 18, 7, 83, 15, 15, 2, 15, 0, 21, + 0, 63, 63, 51, 47,229, 1, 16,246, 50,225, 50, 93, 49, 48, 33, 35, 17, 51, 3, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, + 1,100,182,182,196, 61, 45, 22, 39, 29, 17, 63, 44, 45, 61, 4, 74, 1, 41, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 2,255,188, +254, 20, 1,117, 5,229, 0, 19, 0, 33, 0, 46, 64, 25, 16, 35, 32, 35, 2, 28, 15, 71, 12, 20, 3, 3, 12, 84, 34, 23, 83, 31, + 31, 13, 15, 7, 80, 0, 27, 0, 63,225, 63, 51, 47,229, 1, 16,230, 50, 47, 50, 16,225, 50, 93, 49, 48, 19, 34, 38, 39, 53, 22, + 22, 51, 50, 62, 2, 53, 17, 51, 17, 20, 14, 2, 19, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 66, 48, 63, 23, 26, 54, 35, + 27, 46, 35, 19,182, 34, 72,109, 19, 61, 45, 22, 39, 29, 17, 63, 44, 45, 61,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 4,244, +251, 24, 77,123, 87, 47, 7, 95, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 0, 1, 0,174, 0, 0, 3,240, 6, 20, 0, 14, 0, 94, + 64, 11, 7, 4, 4, 2, 3, 3, 6, 68, 5, 1, 5,184,255,192, 64, 23, 7, 10, 72, 5, 16, 5, 5, 16, 15, 16, 47, 16, 2, 7, + 13, 9, 71, 10, 84, 15, 11, 0, 0,184,255,248, 64, 16, 12, 15, 72, 7, 8, 12, 15, 72, 0, 7, 3, 6, 10, 21, 3, 15, 0, 63, + 63, 51, 18, 57, 57, 43, 43, 63, 1, 16,246,225, 50, 94, 93, 17, 51, 47, 56, 43, 93, 51, 51, 17, 51, 57, 17, 51, 49, 48, 1, 55, + 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 3, 1, 86,135, 1, 37,211,254,111, 1,172,209,254,176,109,180,180, 16, 2, 55, +170, 1,105,254, 37,253,145, 1,248, 82,254, 90, 6, 20,253, 54,254,237, 0, 1, 0,174, 0, 0, 1,100, 6, 20, 0, 3, 0, 26, + 64, 14, 16, 5, 32, 5, 2, 0, 71, 1, 84, 4, 2, 0, 0, 21, 0, 63, 63, 1, 16,246,225, 93, 49, 48, 33, 35, 17, 51, 1,100, +182,182, 6, 20, 0, 1, 0,174, 0, 0, 6,135, 4, 94, 0, 44, 0,101, 64, 63, 35, 10, 71,185, 11, 1,150, 11,166, 11, 2,137, + 11, 1,103, 11,119, 11, 2, 11, 11, 22, 0, 71, 44, 85, 46,240, 46, 1,207, 46, 1, 32, 46, 80, 46, 2, 15, 46, 1, 8, 25, 21, + 71, 22, 84, 45, 35, 26, 26, 4, 15, 80, 40, 31, 16, 23, 15, 22, 11, 0, 21, 0, 63, 50, 50, 63, 63, 51,225, 50, 50, 17, 51, 1, + 16,246,225, 50, 94, 93, 93, 93, 93, 16,246,225, 17, 57, 47, 93, 93, 93, 93,225, 50, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, + 17, 35, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 22, 23, 51, 62, 3, 51, 50, 22, 21, 17, 5,209, +100,105, 73,102, 65, 30,183, 99,105, 77,104, 63, 27,182,148, 26, 10, 24, 66, 79, 89, 46,120,159, 38, 8, 26, 73, 87, 96, 50,175, +177, 2,195,130,130, 47, 91,135, 88,253,162, 2,195,130,130, 52,102,148, 96,253,199, 4, 74,148, 43, 63, 42, 20, 88, 94, 47, 68, + 45, 22,191,210,253, 51, 0, 1, 0,174, 0, 0, 4, 18, 4, 94, 0, 24, 0, 48, 64, 28, 0, 71, 24, 85, 26, 16, 26, 96, 26,128, + 26, 3, 14, 10, 71, 11, 84, 25, 15, 4, 80, 20, 16, 12, 15, 11, 0, 21, 0, 63, 50, 63, 63,225, 51, 1, 16,246,225, 50, 93, 16, +246,225, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, + 67, 29,182,148, 26, 10, 25, 69, 82, 92, 48,183,185, 2,195,130,130, 52,102,148, 96,253,199, 4, 74,148, 43, 63, 42, 20,191,210, +253, 51, 0, 2, 0,113,255,236, 4, 45, 4, 94, 0, 19, 0, 31, 0, 48, 64, 29, 26, 72, 0, 87, 33, 64, 33,208, 33,224, 33, 3, + 15, 33, 1, 6, 20, 72, 10, 86, 32, 29, 80, 15, 16, 23, 80, 5, 22, 0, 63,225, 63,225, 1, 16,246,225, 94, 93, 93, 16,246,225, + 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 45, + 67,125,178,111,103,174,127, 71, 67,124,179,111,103,174,127, 71,253, 0,137,154,154,135,137,154,154,135, 2, 39,137,213,145, 76, + 76,145,213,137,136,211,145, 75, 75,145,211,136,209,211,211,209,209,207,207, 0, 0, 2, 0,174,254, 20, 4, 63, 4, 94, 0, 31, + 0, 48, 0, 54, 64, 30, 46, 72, 27, 87, 50, 16, 50, 1, 38, 16, 6, 12, 71, 13, 84, 49, 32, 80, 17, 22, 16, 14, 15, 12, 27, 43, + 80, 5, 0, 22, 0, 63, 50,225, 63, 63, 63, 51,225, 1, 16,246,225, 50, 50, 50, 93, 16,246,225, 49, 48, 5, 34, 46, 2, 39, 35, + 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 3, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, + 54, 53, 52, 38, 2,158, 59, 96, 77, 59, 23, 12, 3, 3, 2, 4,182,148, 26, 8, 23, 58, 77, 96, 60, 94,154,109, 60, 60,109,154, +129, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127, 20, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 35, 61, 45, 27, + 72,143,212,140,141,213,144, 73, 3,219, 46, 94,140, 95, 41,101,157,107, 55,218,204,208,206, 0, 0, 2, 0,113,254, 20, 4, 2, + 4, 94, 0, 16, 0, 48, 0, 54, 64, 30, 43, 32, 5, 37, 71, 36, 85, 50, 16, 50, 1, 14, 72, 22, 86, 49, 36, 27, 34, 15, 32, 11, + 80, 27, 16, 44, 0, 80, 17, 22, 0, 63,225, 51, 63,225, 51, 63, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, 50, 49, 48, 37, 50, + 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 23, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 55, 51, 17, 35, 17, + 52, 54, 55, 54, 55, 35, 14, 3, 2, 53, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,102, 93,154,110, 60, 60,110,154, 93, 59, + 96, 76, 60, 23, 8, 27,147,182, 4, 2, 3, 3, 12, 22, 59, 77, 96,131, 46, 94,141, 94, 41,101,157,107, 55,218,204,209,205,151, + 72,143,212,140,141,213,144, 73, 27, 45, 61, 35,148,249,202, 1,213, 19, 58, 27, 32, 34, 34, 61, 46, 26, 0, 1, 0,174, 0, 0, + 3, 8, 4, 94, 0, 22, 0, 65, 64, 11,178, 3,194, 3, 2,144, 3,160, 3, 2, 3,184,255,192, 64, 27, 7, 11, 72, 3, 3, 24, + 48, 24, 80, 24,128, 24, 3, 17, 13, 71, 14, 84, 23, 15, 15, 13, 21, 18, 7, 0, 16, 0, 63,193, 51, 63, 63, 1, 16,246,225, 50, + 93, 17, 51, 47, 43, 93, 93, 49, 48, 1, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 2,137, 29, + 72, 26, 24, 28, 59, 26, 63,104, 75, 41,182,148, 22, 8, 25, 57, 71, 88, 4, 94, 5, 5,168, 5, 7, 51, 95,133, 81,253,176, 4, + 74,201, 43, 80, 61, 37, 0, 1, 0, 90,255,236, 3, 63, 4, 94, 0, 53, 0, 72, 64, 45, 37, 19, 71,144, 0,160, 0, 2, 0, 87, + 55, 63, 55, 95, 55,159, 55, 3, 16, 55, 1, 44, 71, 9,159, 29,175, 29, 2, 29, 86, 54, 38, 41, 80, 19, 44, 5, 34, 16, 9, 14, + 80, 5, 22, 0, 63,225, 50, 63, 18, 57, 57,225, 50, 1, 16,246, 93, 50,225, 93, 93, 16,246, 93,225, 51, 49, 48, 1, 20, 14, 2, + 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, + 21, 20, 30, 2, 23, 30, 3, 3, 63, 58,109,154, 96,109,156, 59, 31, 76, 84, 89, 44, 65, 91, 57, 26, 20, 53, 92, 72, 72,115, 80, + 43, 55,100,140, 86, 97,161, 72, 63, 65,137, 71,102, 98, 23, 56, 94, 70, 72,113, 80, 42, 1, 45, 80,120, 81, 40, 35, 34,166, 16, + 31, 24, 15, 22, 41, 59, 36, 31, 50, 49, 50, 31, 31, 60, 74, 97, 67, 70,109, 74, 38, 42, 34,147, 29, 43, 67, 62, 35, 52, 46, 47, + 29, 30, 60, 75, 96, 0, 0, 1, 0, 33,255,236, 2,143, 5, 70, 0, 29, 0, 80,177, 25, 5,184,255,192, 64, 47, 8, 11, 72, 5, + 5, 31, 63, 31, 79, 31, 2, 23, 27, 71, 20, 31, 18, 47, 18, 2, 18, 0, 16, 16, 16, 32, 16,176, 16,192, 16,208, 16, 6, 6, 16, + 26, 18, 79, 22, 20, 23, 15, 0, 80, 11, 22, 0, 63,225, 63, 51, 51,225, 50, 1, 47, 94, 93,198, 93, 51,225, 50, 93, 17, 51, 47, + 43, 51, 49, 48, 37, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 17, 35, 53, 55, 55, 51, 21, 33, 21, 33, 17, 20, 22, 1,250, + 18, 45, 42, 35, 9, 13, 40, 48, 52, 25, 62,106, 77, 44,155,155, 78,105, 1, 20,254,236, 63,129, 4, 6, 8, 3,138, 6, 12, 9, + 5, 32, 78,133,101, 2,125, 81, 78,230,252,137,253,131, 97, 98, 0, 1, 0,164,255,236, 4, 8, 4, 74, 0, 26, 0, 48, 64, 28, + 1, 23, 71, 26, 85, 28, 16, 28, 96, 28,128, 28, 3, 15, 71, 12, 84, 27, 24, 13, 15, 18, 80, 2, 7, 22, 0, 21, 0, 63, 63, 51, +225, 63, 51, 1, 16,246,225, 93, 16,246,225, 50, 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, + 2, 53, 17, 51, 17, 3,117, 27, 10, 25, 69, 82, 92, 48, 91,138, 92, 47,182,106,111, 81,110, 67, 29,182,147, 43, 63, 41, 20, 46, + 98,152,105, 2,205,253, 61,130,130, 52,101,148, 96, 2, 58,251,182, 0, 0, 1, 0, 0, 0, 0, 3,213, 4, 74, 0, 17, 0,109, +185, 0, 17,255,248, 64, 15, 10, 14, 72, 17, 0, 8, 10, 14, 72, 0, 9, 9, 1, 15, 16,184,255,192,179, 18, 21, 72, 16,184,255, +192, 64, 28, 7, 11, 72, 16, 16, 16, 16, 19,191, 19,207, 19,239, 19, 3, 80, 19, 1, 15, 19, 47, 19, 79, 19, 3, 7, 2, 1,184, +255,240, 64, 10, 1, 71, 9, 1, 9, 15, 1, 15, 0, 21, 0, 63, 63, 51, 57, 93, 1, 47, 56,193, 94, 93, 93, 93, 17, 51, 47, 56, + 43, 43,193, 18, 57, 61, 47, 51, 43, 51, 43, 49, 48, 33, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 1,119,254,137,188, +199, 11, 30, 30, 25, 4, 7, 5, 24, 30, 30, 11,199,188,254,137, 4, 74,253,157, 33,104,108, 96, 25, 25, 96,108,104, 33, 2, 99, +251,182, 0, 1, 0, 20, 0, 0, 5,227, 4, 74, 0, 47, 0,195,185, 0, 47,255,248, 64, 12, 10, 14, 72, 47, 0, 8, 9, 14, 72, + 0, 39, 32,184,255,248, 64, 18, 9, 14, 72, 32, 31, 8, 9, 14, 72, 31, 9, 16, 8, 10, 14, 72, 16, 15,184,255,248, 64, 9, 9, + 14, 72, 15, 24, 84, 39, 1, 39,184,255,224, 64, 21, 7, 10, 72, 91, 24, 1, 24, 32, 7, 10, 72, 39, 9, 24, 24, 9, 39, 3, 17, + 45, 46,184,255,192,179, 18, 21, 72, 46,184,255,192, 64, 19, 7, 11, 72, 46, 16, 46, 46, 49, 32, 49, 48, 49, 2, 15, 49, 1, 7, + 18, 17,184,255,240, 64, 22, 17, 45, 31, 9, 9, 1, 9, 17, 15, 39, 25, 6, 25,102, 25,118, 25, 3, 25, 0, 16, 21, 0, 63, 51, + 51, 93, 17, 51, 63, 51, 93, 51, 51, 1, 47, 56, 51, 94, 93, 93, 17, 51, 47, 56, 43, 43, 51, 18, 23, 57, 61, 47, 47, 47, 43, 93, + 43, 93, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 49, 48, 33, 3, 46, 3, 39, 38, 39, 35, 6, 7, 6, 6, 7, + 3, 35, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 3,240,168, 4, 12, 12, 13, + 6, 14, 15, 6, 14, 13, 11, 25, 11,172,211,254,231,191,131, 10, 20, 18, 14, 4, 6, 5, 17, 21, 22, 10,179,196,172, 9, 23, 22, + 18, 4, 6, 3, 13, 18, 21, 11,137,186,254,228, 2,104, 18, 45, 50, 52, 25, 58, 62, 63, 58, 50,106, 37,253,156, 4, 74,253,184, + 45,105,103, 91, 29, 26, 87, 97, 95, 33, 2,107,253,149, 34, 92, 95, 88, 29, 26, 87,104,109, 47, 2, 72,251,182, 0, 1, 0, 35, + 0, 0, 3,219, 4, 74, 0, 11, 0,229, 64,161,137, 9, 1,134, 3, 1, 6, 4, 1,247, 4, 1,229, 4, 1, 54, 4, 1, 4, 5, +232, 6, 1, 6, 3,231, 0, 1, 0, 9, 9, 2, 1,248, 2, 1,234, 2, 1, 57, 2, 1, 2, 1,107, 5,123, 5, 2, 87, 5, 1, + 58, 5, 74, 5, 2,100, 1,116, 1, 2, 88, 1, 1, 53, 1, 69, 1, 2, 5, 1, 9, 1, 9, 5, 3, 11, 6, 8, 1,247, 8, 1, +229, 8, 1, 54, 8, 1, 8, 7, 64, 22, 25, 72, 7, 64, 14, 17, 72,107, 7,123, 7, 2, 87, 7, 1, 58, 7, 74, 7, 2, 7, 13, + 16, 13, 48, 13, 2,144, 13,176, 13, 2, 15, 13, 1, 6,217, 10, 1,200, 10, 1,186, 10, 1, 9, 10, 1, 10, 59, 11, 75, 11, 2, + 40, 11, 1, 5, 11, 21, 11, 2, 11, 7, 21, 1, 15, 0, 63, 63, 1, 47, 93, 93, 93,193, 93, 93, 93, 93, 94, 93, 93,113, 16,222, + 93, 93, 93, 43, 43,193, 93, 93, 93,113, 18, 23, 57, 61, 47, 24, 47, 47, 93, 93, 93, 93, 93, 93, 16,193, 93, 93, 93,113, 17, 51, + 93, 51, 51, 93, 16,193, 93, 93, 93,113, 49, 48, 0, 93, 93, 1, 1, 51, 19, 19, 51, 1, 1, 35, 1, 1, 35, 1,152,254,159,207, +250,250,207,254,157, 1,117,207,254,244,254,242,207, 2, 51, 2, 23,254,102, 1,154,253,233,253,205, 1,180,254, 76, 0, 0, 1, + 0, 10,254, 20, 3,223, 4, 74, 0, 34, 0,100,182, 34, 16, 8, 8, 0, 14, 15,184,255,192,179, 18, 21, 72, 15,184,255,192, 64, + 29, 7, 11, 72, 15, 16, 15, 15, 36,191, 36,207, 36,239, 36, 3, 80, 36, 1, 15, 36, 47, 36, 79, 36, 3, 7, 24, 1, 0,184,255, +240, 64, 12, 0, 34, 16, 8, 35, 28, 80, 21, 27, 14, 0, 15, 0, 63, 50, 63,225, 17, 51, 51, 51, 1, 47, 56,193, 51, 94, 93, 93, + 93, 17, 51, 47, 56, 43, 43,193, 18, 57, 61, 47, 51, 51, 49, 48, 19, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 14, 3, 35, + 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 55, 10,189,215, 14, 29, 25, 18, 4, 6, 5, 22, 27, 29, 11,199,188,254, 78, 28, 65, + 86,116, 80, 52, 76, 27, 21, 64, 35, 48, 70, 52, 37, 15, 57, 4, 74,253,155, 40, 88, 88, 82, 35, 25, 86, 97, 94, 33, 2, 99,251, + 39, 81,129, 90, 49, 11, 6,145, 5, 7, 23, 44, 64, 41,160, 0, 0, 1, 0, 82, 0, 0, 3, 53, 4, 74, 0, 9, 0,108, 64, 11, + 9,151, 3, 1, 3, 8, 9, 13, 72, 3, 7,184,255,192, 64, 17, 7, 10, 72, 7, 7, 11, 63, 11, 95, 11,127, 11, 3,152, 8, 1, + 8,184,255,248,181, 9, 13, 72, 8, 4, 2,184,255,192,183, 18, 21, 72, 63, 2, 1, 2, 7,184,255,240, 64, 18, 7, 12, 72, 7, + 4, 79, 5, 15, 2, 16, 7, 12, 72, 2, 8, 79, 1, 21, 0, 63,225, 50, 43, 63,225, 50, 43, 1, 47, 93, 43, 51, 51, 43, 93, 93, + 17, 51, 47, 43, 51, 43, 93, 51, 49, 48, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, 3, 53,253, 29, 2, 24,254, 9, 2,176,253,244, + 2, 30,125, 3, 68,137,146,252,209, 0, 0, 1, 0, 61,254,188, 2,162, 5,182, 0, 39, 0, 64, 64, 37, 26, 5, 5,247, 32, 39, +241, 35, 19, 15,246, 16, 12, 1, 12, 35, 15,245,217, 16, 1, 15, 16, 95, 16, 2, 16, 16, 41, 26,245, 25,248, 5,245, 6,249, 0, + 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, 47, 93,230, 51, 51,241, 50,226, 47, 50, 49, 48, 5, 20, 30, 2, 23, 21, 46, 3, + 53, 17, 52, 38, 35, 53, 50, 54, 53, 17, 52, 62, 2, 55, 21, 14, 3, 21, 17, 20, 6, 7, 21, 22, 22, 21, 1,244, 24, 45, 65, 40, + 77,131, 95, 54,131,125,125,131, 54, 95,131, 77, 40, 65, 45, 24,119,115,115,119, 16, 48, 61, 35, 13, 1,150, 1, 33, 71,110, 78, + 1, 78,103, 86,155, 86,103, 1, 77, 78,110, 71, 33, 1,149, 1, 13, 35, 61, 48,254,180,105,123, 20, 12, 20,122,106, 0, 0, 1, + 1,233,254, 20, 2,127, 6, 20, 0, 3, 0, 45, 64, 31, 0, 5, 1, 48, 5, 64, 5,112, 5,128, 5, 4, 2,170, 0, 3, 16, 3, + 64, 3,128, 3,192, 3, 5, 7, 3, 2, 27, 0, 0, 0, 63, 63, 1, 47, 94, 93,225, 93,113, 49, 48, 1, 51, 17, 35, 1,233,150, +150, 6, 20,248, 0, 0, 0, 1, 0, 51,254,188, 2,152, 5,182, 0, 41, 0, 64, 64, 37, 13, 36, 36,247, 7, 0,241, 26,246, 20, + 3,144, 29, 1, 29, 4, 26,245,239, 25,255, 25, 2,217, 25, 1, 25, 25, 14, 36,245, 35,249, 13,245, 14,248, 0, 63,225, 63,225, + 17, 57, 47, 93, 93,225, 57, 1, 47, 93, 51, 51,230,241, 50,226, 47, 50, 49, 48, 19, 52, 54, 55, 53, 38, 38, 53, 17, 52, 46, 2, + 39, 53, 30, 3, 21, 17, 20, 30, 2, 51, 21, 34, 6, 21, 17, 20, 14, 2, 7, 53, 62, 3, 53,225,119,115,115,119, 24, 45, 65, 40, + 77,131, 95, 54, 33, 65, 96, 62,125,131, 54, 95,131, 77, 40, 65, 45, 24, 1, 59,106,122, 20, 12, 20,123,105, 1, 76, 48, 61, 35, + 13, 1,149, 1, 33, 71,110, 78,254,179, 52, 72, 45, 20,155, 86,103,254,178, 78,110, 71, 33, 1,150, 1, 13, 35, 61, 48, 0, 1, + 0,102, 2, 74, 4, 2, 3, 90, 0, 35, 0, 60, 64, 13, 29, 37, 16, 37, 1, 16, 10, 1, 10, 23,173, 10, 31,184,255,192, 64, 22, + 16, 19, 72, 31, 31, 5,173, 28, 15, 13, 31, 13, 63, 13, 79, 13,111, 13,143, 13, 6, 13, 0, 47, 93, 51,241,200, 47, 43, 50,225, + 1, 47, 93, 93, 16,206, 49, 48, 1, 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, + 35, 34, 46, 2, 2, 18, 37, 55, 45, 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, + 24, 99,149, 29, 50, 55, 67, 2,139, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 20, 16, 22, 13, 5, 19, 33, 44, 25,162, +108, 5, 13, 25, 0, 2, 0,147,254,139, 1,145, 4, 94, 0, 3, 0, 23, 0, 65,185, 0, 0,255,240, 64, 19, 10, 20, 72, 48, 25, +160, 25,176, 25,192, 25, 4, 2, 4,154, 14, 3, 3, 14,184,255,192, 64, 15, 7, 10, 72, 14, 0, 9,155, 19, 0, 2, 16, 2, 2, + 7, 2, 0, 47, 94, 93, 47,245,206, 1, 47, 43, 51, 47, 16,225, 50, 93, 49, 48, 43, 19, 51, 19, 35, 19, 20, 14, 2, 35, 34, 46, + 2, 53, 52, 62, 2, 51, 50, 30, 2,213,121, 51,223,239, 19, 35, 46, 27, 26, 46, 35, 20, 20, 35, 46, 26, 27, 46, 35, 19, 2,164, +251,231, 5, 72, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, 0, 1, 0,188,255,236, 3,186, 5,203, 0, 37, + 0, 90, 64, 37, 18, 3, 70, 15, 4, 4, 10, 37, 21, 39, 64, 39, 1, 30, 72, 0, 10, 48, 10, 64, 10,208, 10, 4, 6, 10, 27,115, + 15, 18, 15, 33,115, 5, 2, 5, 15,184,255,192, 64, 12, 15, 18, 72, 15, 5, 15, 5, 3, 16, 7, 3, 25, 0, 63, 63, 18, 57, 57, + 47, 47, 43, 17, 51, 16,225, 17, 51, 16,225, 1, 47, 94, 93,225, 93, 16,198, 50, 17, 57, 47, 51,225, 50, 49, 48, 36, 6, 7, 21, + 35, 53, 46, 3, 53, 52, 62, 2, 55, 53, 51, 21, 22, 22, 23, 7, 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 3,118,110, + 76,137, 87,138, 98, 52, 53, 97,139, 86,137, 72,136, 46, 53, 23, 56, 60, 59, 25,157,144,145,148, 81,131, 54,212, 30, 2,200,206, + 13, 75,133,199,137,141,203,136, 75, 13,172,164, 3, 33, 23,154, 10, 19, 15, 9,202,212,210,195, 37, 24,161, 0, 0, 1, 0, 68, + 0, 0, 4, 35, 5,201, 0, 40, 0,117, 64, 17, 13, 17,111, 35, 15, 15, 31, 15, 2, 7, 31, 15, 31, 15, 25, 3, 23,184,255,192, +179, 10, 14, 72, 23,184,255,200, 64, 48, 6, 9, 72, 23, 23, 42, 16, 42, 1, 33, 25, 64, 11, 14, 72, 25, 25, 41, 16, 33,117, 13, + 47, 34,127, 34,143, 34,175, 34,191, 34,223, 34,255, 34, 7, 34, 34, 0, 22,116, 25, 24, 7,115, 0, 7, 0, 63,225, 63,225, 17, + 57, 47, 93, 51,225, 50, 17, 1, 51, 47, 43, 51, 93, 17, 51, 47, 43, 43, 51, 18, 57, 57, 47, 47, 94, 93, 51,225, 50, 49, 48, 1, + 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 17, 33, 21, 33, 21, 20, 14, 2, 7, 33, 21, 33, 53, 62, 3, 53, 53, 35, 53, 51, 17, + 52, 62, 2, 2,154,106,174, 66, 66, 56,141, 75, 48, 82, 60, 33, 1,120,254,136, 23, 39, 51, 27, 2,236,252, 33, 44, 73, 53, 30, +198,198, 59,105,146, 5,201, 45, 35,144, 29, 43, 27, 59, 94, 66,254,217,137,211, 62, 89, 64, 43, 16,166,154, 11, 41, 68, 97, 67, +213,137, 1, 68, 87,137, 95, 50, 0, 2, 0,123, 1, 29, 3,236, 4,139, 0, 35, 0, 55, 0,134, 64, 35, 14,143, 22, 1, 22, 22, + 46,171, 21, 15, 12, 24, 6, 30, 33, 3, 8, 0,112, 18, 1, 18, 18, 57, 16, 57, 1, 4, 32, 36,170,128, 0, 1, 0,184,255,192, + 64, 49, 6, 10, 72, 0, 0, 56, 23,128, 31, 1, 31, 12, 6, 24, 30, 15, 6, 4, 9, 41,174, 0, 27, 1, 27, 13, 5, 51,174,207, + 9,239, 9, 2,144, 9,160, 9,176, 9, 3, 31, 9, 63, 9,111, 9, 3, 9, 0, 47, 93, 93, 93,225,198, 50, 47, 93,225, 18, 23, + 57, 17, 51,198, 93, 50, 17, 1, 51, 47, 43, 93,225,198, 50, 93, 17, 51, 47, 93, 18, 23, 57,241,192, 47, 93, 50, 49, 48, 19, 52, + 54, 55, 39, 55, 23, 54, 54, 51, 50, 22, 23, 55, 23, 7, 22, 22, 21, 20, 6, 7, 23, 7, 39, 6, 6, 35, 34, 38, 39, 7, 39, 55, + 38, 38, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2,186, 35, 31,129, 98,127, 47,108, 60, 60,107, 46,129, 99, +130, 31, 37, 35, 33,127, 96,129, 46,107, 60, 60,110, 45,127, 96,127, 31, 35,138, 37, 65, 87, 50, 51, 89, 66, 38, 38, 66, 89, 51, + 50, 87, 65, 37, 2,211, 59,107, 47,129, 98,129, 32, 36, 36, 32,129, 96,129, 46,109, 60, 60,110, 45,127, 96,127, 31, 35, 36, 32, +127, 96,127, 45,108, 60, 50, 87, 65, 38, 38, 65, 87, 50, 51, 89, 66, 38, 38, 66, 89, 0, 0, 1, 0, 29, 0, 0, 4, 76, 5,182, + 0, 22, 0,149, 64, 91, 48, 24, 1, 15, 19, 12, 22,170, 21, 1, 21, 21, 12, 4, 8, 1,171, 2, 1, 31, 2, 1, 2, 2,152, 0, + 1, 0, 7, 3, 11, 90,153, 20, 1, 20, 16, 15, 12, 1,138, 12, 1, 0, 12, 16, 12, 64, 12, 3, 7, 12, 10, 14, 96, 15, 7, 15, + 6, 18, 96, 19, 3, 0, 19,127, 15,143, 15, 2, 48, 19, 1,208, 19, 1, 15, 19, 31, 19, 2, 15, 19, 15, 19, 1, 11, 18, 21, 1, + 3, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93,113, 93, 17, 51, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 94, 93, 93,113, 51, + 51, 93,225, 50, 50, 57, 93, 50, 47, 93, 93, 51, 57, 57, 17, 51, 47, 93, 51, 18, 57, 57, 93, 49, 48, 1, 1, 51, 1, 51, 21, 33, + 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 51, 1, 51, 2, 51, 1, 90,191,254,127,239,254,211, 1, 45,254,211,178,254, +211, 1, 45,254,211,234,254,133,192, 2,211, 2,227,253, 0,137,158,137,254,250, 1, 6,137,158,137, 3, 0, 0, 0, 2, 1,233, +254, 20, 2,127, 6, 20, 0, 3, 0, 7, 0, 57, 64, 37, 0, 9, 1, 48, 9, 64, 9,112, 9,128, 9, 4, 2, 6,170, 3, 0, 7, + 16, 7, 64, 7,128, 7,192, 7, 5, 7, 7, 4, 3, 4, 3, 6, 27, 0, 0, 0, 63, 63, 57, 57, 47, 47, 1, 47, 94, 93, 51,225, + 50, 93,113, 49, 48, 1, 51, 17, 35, 17, 51, 17, 35, 1,233,150,150,150,150, 6, 20,252,244,254, 25,252,243, 0, 0, 2, 0,121, +255,246, 3, 94, 6, 31, 0, 69, 0, 90, 0,121, 64, 75, 5, 86, 8, 81, 70, 33, 38, 76, 70, 60, 70, 41, 41, 16,255, 33, 1,160, + 33,176, 33, 2, 33, 92,192, 92, 1,191, 92, 1, 70, 70, 0, 23, 70, 8, 8, 49, 0, 0, 1, 0, 0, 16, 0, 48, 0,192, 0,208, + 0,240, 0, 6, 8, 0, 91, 38, 76, 5, 86, 23, 86, 76, 41, 4, 13, 55, 80, 46, 21, 20, 80, 13, 1, 0, 63,225, 63,225, 18, 23, + 57, 17, 51, 17, 51, 1, 16,198, 94, 93,113, 50, 50, 47,225, 16,225, 93, 93, 16,206, 93, 93, 50, 50, 47,225, 18, 57, 57, 16,225, + 17, 57, 57, 49, 48, 19, 52, 62, 2, 55, 38, 38, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, 20, 30, 2, 23, 30, + 3, 21, 20, 14, 2, 7, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 55, 20, + 30, 2, 23, 23, 62, 3, 53, 52, 46, 2, 39, 14, 3,137, 26, 45, 58, 31, 75, 85, 55,100,140, 86, 97,157, 72, 56, 65,140, 71, 99, +102, 24, 57, 95, 70, 72,113, 78, 42, 24, 41, 52, 28, 69, 76, 59,108,155, 96,108,156, 59, 31, 76, 84, 89, 43, 69, 93, 55, 23, 17, + 51, 94, 76, 73,115, 80, 41,154, 28, 63,101, 72, 35, 20, 41, 33, 21, 26, 65,108, 82, 25, 47, 38, 23, 3, 41, 51, 83, 64, 45, 15, + 38,114, 84, 61, 98, 68, 37, 40, 32,139, 28, 39, 59, 57, 27, 46, 44, 47, 29, 28, 65, 78, 97, 62, 52, 85, 68, 49, 16, 38,109, 78, + 71,111, 77, 40, 33, 32,158, 15, 30, 23, 14, 24, 39, 51, 27, 29, 45, 45, 49, 31, 31, 62, 78,100, 89, 37, 63, 58, 55, 30, 15, 13, + 36, 46, 56, 34, 38, 64, 59, 57, 30, 8, 31, 45, 58, 0, 0, 2, 1, 51, 5, 12, 3,106, 5,217, 0, 11, 0, 25, 0, 53, 64, 33, + 12,134,175, 20, 1, 20,192, 6,134, 0, 0, 16, 0, 64, 0, 80, 0, 4, 6, 0, 15, 3,145, 23,159, 9,207, 9, 2, 48, 9, 1, + 9, 0, 47, 93, 93, 51,229, 50, 1, 47, 94, 93,225, 26,220, 93,225, 49, 48, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 37, + 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 1, 51, 56, 40, 39, 58, 58, 39, 40, 56, 1,119, 56, 40, 19, 35, 26, 16, 58, 38, + 40, 56, 5,115, 54, 48, 49, 53, 53, 50, 50, 53, 54, 48, 12, 25, 38, 27, 53, 50, 50, 0, 0, 3, 0,100,255,236, 6, 68, 5,203, + 0, 37, 0, 65, 0, 85, 0,106, 64, 67, 5,197, 26, 15, 15, 34, 26, 34, 26, 34, 38, 76,195, 0, 52, 1,192, 52, 1, 52, 87, 66, +195, 38, 10,201, 21, 0,201, 31, 15, 21, 31, 21, 47, 21,127, 21,143, 21,159, 21, 6, 8, 0, 31, 16, 31, 96, 31,112, 31,128, 31, + 5, 21, 31, 21, 31, 45, 71,200, 59, 81,200, 45, 4, 0, 63,225, 47,225, 17, 57, 57, 47, 47, 93, 94, 93, 16,225, 16,225, 1, 47, +225, 16,222, 93,113,225, 17, 57, 57, 47, 47, 17, 51, 47, 16,225, 49, 48, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 21, + 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 1, 52, 62, 4, 51, 50, 30, 4, 21, 20, 14, 4, 35, 34, 46, + 4, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 3,123, 61, 94, 64, 33, 29, 61, 95, 67, 23, 54, 57, 56, 25, + 24, 49, 53, 60, 35,102,152,101, 51, 54,105,153,100, 63,132, 59, 62, 52, 97,252,190, 54, 97,138,167,192,104,104,192,167,138, 97, + 54, 54, 97,138,167,192,104,104,192,167,138, 97, 54,109,101,175,234,133,133,234,175,101,101,175,234,133,133,234,175,101, 4, 29, + 44, 83,120, 75, 78,120, 82, 43, 7, 12, 17, 9,131, 11, 18, 14, 7, 66,122,170,103,101,167,120, 67, 33, 29,127, 26, 28,254,190, +104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,137, 98, 53, 53, 98,137,167,192,104,133,234,175,101,101,175,234,133, +133,234,175,101,101,175,234, 0, 0, 2, 0, 68, 3, 16, 2, 66, 5,199, 0, 30, 0, 45, 0, 78, 64, 47, 45, 1, 15,224, 0, 29, + 16, 29, 2, 29, 47, 15, 47, 31, 47, 79, 47,127, 47,175, 47, 5, 36,224, 11, 23, 23, 96, 11, 1, 11, 46, 45,228, 15, 15, 26, 1, + 39,228, 0, 6,192, 19,228, 26,222, 0, 63,225, 26,220,196,225, 57, 17, 57, 47,225, 1, 16,198, 93, 50, 47, 16,225, 93, 16,214, + 93,225, 50, 50, 49, 48, 1, 39, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 22, + 21, 17, 3, 14, 3, 21, 20, 22, 51, 50, 62, 2, 53, 53, 1,231, 28, 18, 39, 47, 56, 35, 43, 72, 52, 29,141,143, 99, 61, 56, 48, + 90, 42, 48, 51,117, 60,125,119,201, 51, 68, 41, 18, 50, 42, 34, 58, 43, 25, 3, 29, 82, 22, 35, 25, 13, 26, 51, 77, 51,102,108, + 5, 4, 31, 72, 57, 29, 22,100, 26, 36,106,122,254, 58, 1, 57, 3, 18, 30, 43, 29, 51, 45, 21, 44, 65, 44, 49, 0, 2, 0, 82, + 0,115, 3,147, 3,199, 0, 6, 0, 13, 0, 96, 64, 17, 2, 4, 13,235, 10, 80, 4, 96, 4, 2, 4, 10, 4, 10, 6, 11, 9,184, +255,192, 64, 33, 9, 12, 72, 9, 15, 15, 15,159, 15,175, 15, 3, 6,235,159, 3, 1, 3, 6, 0, 3, 13, 7, 10, 10, 5, 3, 3, + 1, 12, 5, 8, 1, 0, 47, 51, 47, 51, 18, 57, 61, 47, 18, 57, 17, 51, 51, 17, 51, 51, 1, 24, 47, 93,225, 93, 16,198, 43, 50, + 17, 57, 57, 47, 47, 93, 16,225, 17, 51, 49, 48, 19, 1, 23, 3, 19, 7, 1, 37, 1, 23, 3, 19, 7, 1, 82, 1, 53,117,238,238, +117,254,203, 1,151, 1, 54,116,237,237,116,254,202, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 27, 1,158, 78,254,164,254, +164, 78, 1,155, 0, 1, 0,102, 1, 6, 4, 2, 3, 29, 0, 5, 0, 57, 64, 36, 2,170, 1, 7, 16, 7, 1,150, 4, 1,139, 4, + 1,121, 4, 1, 86, 4, 1, 75, 4, 1, 56, 4, 1, 18, 4, 1, 9, 4, 1, 4, 4,173, 5,179, 0, 63,225, 1, 47, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 16,222,225, 49, 48, 1, 17, 35, 17, 33, 53, 4, 2,149,252,249, 3, 29,253,233, 1,129,150, 0,255,255, + 0, 82, 1,209, 2, 66, 2,121, 2, 6, 0, 16, 0, 0, 0, 4, 0,100,255,236, 6, 68, 5,203, 0, 8, 0, 30, 0, 58, 0, 78, + 0,194, 64,125,164, 22,180, 22,196, 22, 3,180, 23,196, 23, 2, 23, 22, 1, 82, 21, 14, 23, 14, 22,197, 21, 14, 20, 21, 21, 14, + 14, 9, 0, 25,197, 26, 9,197, 4, 21, 4, 0, 26, 1, 0, 26,192, 26,208, 26, 3, 7,143, 4, 1, 26, 4, 26, 4, 31, 69,195, + 0, 45, 1,192, 45, 1, 45, 80, 59,195, 31, 14, 24,201, 0, 0, 22, 27, 22, 21, 26, 8,201, 27, 0, 26, 1, 15, 26, 31, 26, 47, + 26,127, 26,143, 26,159, 26, 6, 8, 0, 27, 16, 27, 96, 27,112, 27,128, 27, 5, 26, 27, 26, 27, 38, 64,200, 52, 19, 74,200, 38, + 4, 0, 63,225, 63,225, 17, 57, 57, 47, 47, 93, 94, 93,113, 16,225, 17, 51, 51, 17, 18, 57, 16,225, 50, 1, 47,225, 16,222, 93, +113,225, 17, 57, 57, 47, 47, 93, 94, 93,113, 17, 57, 16,225, 16,225, 50, 17, 57,135, 16, 43, 16, 0,193,135, 5, 43, 16,196, 1, + 93, 49, 48, 93, 1, 51, 50, 54, 53, 52, 38, 35, 35, 5, 20, 14, 2, 7, 22, 23, 30, 2, 23, 23, 35, 3, 35, 17, 35, 17, 51, 50, + 22, 1, 52, 62, 4, 51, 50, 30, 4, 21, 20, 14, 4, 35, 34, 46, 4, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, + 2, 2,231, 72, 91, 79, 83, 89, 70, 1,146, 27, 45, 57, 31, 67, 53, 23, 42, 33, 10, 10,179,206, 95,157,233,168,158,251,235, 54, + 97,138,167,192,104,104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,138, 97, 54,109,101,175,234,133,133,234,175,101, +101,175,234,133,133,234,175,101, 3, 0, 72, 69, 74, 59,129, 48, 75, 57, 40, 13,110, 87, 37, 71, 56, 17, 17, 1, 96,254,160, 3, +125,130,254,195,104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,137, 98, 53, 53, 98,137,167,192,104,133,234,175,101, +101,175,234,133,133,234,175,101,101,175,234, 0, 0, 1,255,250, 6, 20, 4, 6, 6,160, 0, 3, 0, 18,182, 0, 0, 5, 1, 1, +186, 2, 0, 47,225, 1, 47, 17, 51, 47, 49, 48, 1, 33, 53, 33, 4, 6,251,244, 4, 12, 6, 20,140, 0, 0, 2, 0,123, 3, 86, + 2,242, 5,203, 0, 19, 0, 39, 0, 67, 64, 44, 30,171, 10, 41,159, 41, 1, 20,170, 48, 0, 64, 0, 2, 0, 25,174, 16, 15, 32, + 15, 2,224, 15,240, 15, 2,111, 15, 1, 0, 15, 16, 15, 32, 15, 3, 6, 15, 15, 35,174, 5, 4, 0, 63,225, 51, 47, 94, 93, 93, + 93,113,225, 1, 47, 93,225, 93, 16,214,225, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 55, 20, 30, + 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2,123, 50, 85,115, 65, 65,115, 86, 50, 50, 86,115, 65, 65,115, 85, 50,123, 30, + 52, 70, 40, 40, 70, 53, 30, 30, 53, 70, 40, 40, 70, 52, 30, 4,143, 65,115, 86, 50, 50, 86,115, 65, 65,114, 85, 49, 49, 85,114, + 65, 39, 69, 52, 30, 30, 52, 69, 39, 40, 71, 53, 31, 31, 53, 71, 0, 2, 0,102, 0, 0, 4, 2, 4,162, 0, 11, 0, 15, 0, 58, + 64, 33, 16, 17, 1, 15, 8, 8, 6, 9,170, 12, 1, 1, 3,239, 0, 1, 32, 0, 96, 0,160, 0, 3, 0, 13,173, 12, 9, 0,173, + 6, 3,179, 0, 63, 51,225, 50, 47,225, 1, 47, 93, 93, 51, 51, 17, 51,225, 50, 50, 17, 51, 93, 49, 48, 1, 33, 53, 33, 17, 51, + 17, 33, 21, 33, 17, 35, 1, 53, 33, 21, 1,233,254,125, 1,131,150, 1,131,254,125,150,254,125, 3,156, 2,135,150, 1,133,254, +123,150,254,127,254,250,150,150, 0, 1, 0, 49, 2, 74, 2,109, 5,201, 0, 30, 0, 64, 64, 21, 8,225, 0, 23, 32, 79, 32,127, + 32, 2, 32, 64, 6, 10, 72, 29,225, 1, 15, 15, 1,184,255,192, 64, 14, 21, 24, 72, 1, 8, 29, 11,229, 18,222, 29,229, 1,221, + 0, 63,225, 63,225, 18, 57, 1, 47, 43, 51, 47, 16,225, 43, 93, 16,222, 50,225, 49, 48, 1, 33, 53, 55, 62, 3, 53, 52, 38, 35, + 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 7, 33, 2,109,253,196,209, 57, 72, 40, 15, 66, 54, 51, 93, 45, 78, + 54,133, 82, 60, 97, 68, 37, 29, 54, 79, 51,148, 1,140, 2, 74,112,228, 62, 85, 67, 59, 34, 65, 64, 50, 38, 94, 48, 65, 33, 63, + 91, 57, 50, 86, 85, 91, 55,157, 0, 1, 0, 31, 2, 57, 2,104, 5,201, 0, 48, 0, 97, 64, 60, 3, 0, 25, 25, 14, 6, 30,225, + 0, 0, 21,225, 6, 50, 95, 50,143, 50, 2, 50, 64, 6, 10, 72, 39, 39, 14, 64, 25, 32, 72, 14, 3, 25,228, 15, 26, 31, 26, 47, + 26, 95, 26,223, 26, 5, 8, 26, 26, 18, 38, 35,229, 44,222, 18,229, 15, 11,223, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, 93, +225, 57, 1, 47, 43, 51, 47, 43, 93, 16,222,225, 51, 47,225, 17, 18, 57, 47, 18, 57, 49, 48, 1, 20, 6, 7, 22, 22, 21, 20, 14, + 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 35, 53, 51, 50, 54, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, + 50, 30, 2, 2, 78, 81, 69, 88, 88, 40, 83,126, 86, 70,123, 57, 63,132, 53, 98, 88,107, 96, 98, 98, 92, 84, 20, 35, 47, 27, 59, + 97, 51, 69, 29, 61, 68, 76, 44, 69,105, 70, 35, 4,231, 78,106, 24, 23,106, 78, 60,100, 71, 40, 25, 31,133, 34, 38, 83, 73, 74, + 67,113, 79, 64, 32, 47, 30, 14, 41, 37, 96, 23, 37, 26, 15, 34, 60, 83, 0, 1, 1,137, 4,217, 3, 18, 6, 33, 0, 13, 0, 22, + 64, 10, 6, 0, 5,128, 15, 12, 95, 12, 2, 12, 0, 47, 93, 26,205, 1, 47,205, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, + 1,137, 22, 47, 47, 42, 16,219, 16, 63, 77, 81, 35,121, 4,244, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 0, 0, 1, 0,174, +254, 20, 4, 18, 4, 74, 0, 29, 0, 55, 64, 34, 13, 9, 71, 10, 85, 31, 16, 31, 32, 31, 96, 31,112, 31,128, 31, 5, 20, 29, 71, + 28, 84, 30, 26, 27, 3, 80, 17, 22, 11, 21, 28, 9, 15, 0, 63, 51, 63, 63,225, 63, 1, 16,246,225, 50, 93, 16,246,225, 50, 49, + 48, 1, 20, 22, 51, 50, 62, 2, 53, 17, 51, 17, 35, 39, 35, 6, 6, 35, 34, 38, 39, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1,100, +106,111, 82,110, 67, 28,182,147, 27, 10, 48,144,103, 72,106, 35, 1, 2, 2, 1,182,182, 1,135,130,130, 52,101,148, 96, 2, 58, +251,182,147, 83, 84, 46, 42, 38, 40, 35, 85, 42,254,192, 6, 54, 0, 1, 0,113,254,252, 4,102, 6, 20, 0, 19, 0, 55, 64, 33, + 4,153, 0, 5, 48, 5, 64, 5, 80, 5, 4, 6, 5, 5, 13, 1,153, 0, 21, 16, 21, 1, 0, 13, 16, 13, 2, 13, 3, 18, 0, 5, + 0, 0, 47, 50, 63,193, 1, 47, 93, 93, 16,214,225, 18, 57, 47, 94, 93,225, 49, 48, 1, 35, 17, 35, 17, 35, 17, 6, 35, 34, 46, + 2, 53, 52, 62, 2, 51, 33, 4,102,120,207,121, 61, 85, 95,155,109, 60, 65,119,166,100, 2, 51,254,252, 6,121,249,135, 3, 51, + 18, 51,118,192,140,147,197,120, 50, 0, 0, 1, 0,147, 2, 72, 1,145, 3, 94, 0, 19, 0, 51, 64, 26, 16, 21,128, 21,144, 21, +160, 21, 4, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, 15, 0, + 47,229, 1, 47, 43, 93, 93,237, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, 46, 27, + 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2,211, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, 0, 1, + 0, 35,254, 20, 1,152, 0, 0, 0, 25, 0, 57, 64, 31, 20, 19, 19, 21,127, 18,143, 18, 2, 18, 18, 6, 13,132, 0, 27, 6, 26, + 18,140, 21, 64, 9, 14, 72, 21, 21, 19, 10,141, 3, 0, 47,225, 47, 57, 47, 43,225, 1, 16,198, 16,214,225, 17, 57, 47, 93, 51, + 51, 17, 51, 49, 48, 1, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, 39, 55, 51, 7, 30, 3, 1,152,141,150, + 22, 45, 15, 15, 49, 16, 71, 80, 26, 46, 63, 37, 90,121, 57, 34, 58, 43, 25,254,225, 97,108, 6, 3,108, 3, 3, 43, 49, 24, 35, + 26, 19, 9,176,115, 8, 26, 41, 58, 0, 0, 1, 0, 63, 2, 74, 1,186, 5,182, 0, 14, 0, 52, 64, 33, 79, 16,127, 16, 2, 16, + 64, 6, 10, 72, 14, 14, 2,225, 0,127, 3,143, 3, 2, 32, 3, 48, 3, 2, 3, 2,221, 13, 9,229, 0,220, 0, 63,225,205, 63, + 1, 47, 93, 93, 51,225, 51, 47, 43, 93, 49, 48, 1, 51, 17, 35, 17, 52, 62, 2, 55, 6, 6, 7, 7, 39, 1, 51,135,145, 1, 3, + 3, 1, 14, 38, 22, 94, 74, 5,182,252,148, 2, 4, 25, 60, 60, 56, 22, 17, 40, 17, 73, 96, 0, 0, 2, 0, 66, 3, 16, 2,139, + 5,199, 0, 19, 0, 31, 0, 46,178, 26,224, 0,184,255,192, 64, 20, 9, 15, 72, 0, 33, 15, 33, 1, 20,224, 10, 32, 23,228, 5, +192, 29,228, 15,222, 0, 63,225, 26,220,225, 1, 16,214,225, 93, 16,214, 43,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, + 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2,139, 41, 77,109, 68, 63,106, 78, 43, 41, 76,109, 68, + 62,107, 78, 44,254, 58, 75, 86, 85, 75, 75, 85, 86, 75, 4,109, 83,130, 89, 47, 47, 89,130, 83, 83,129, 88, 46, 46, 88,129, 83, +119,121,121,119,120,115,115, 0, 0, 2, 0, 84, 0,115, 3,150, 3,199, 0, 6, 0, 13, 0, 86, 64, 47, 15, 15,159, 15,175, 15, + 3, 7,235, 4, 2, 10, 2, 10, 2, 3, 11, 9, 14, 0,235,159, 3, 1, 16, 3, 32, 3, 64, 3, 3, 3, 13, 7, 10, 6, 0, 3, + 10, 3, 10, 3, 1, 12, 5, 8, 1, 0, 47, 51, 47, 51, 18, 57, 57, 61, 47, 47, 17, 51, 51, 17, 51, 51, 1, 24, 47, 93, 93,225, + 16,198, 50, 17, 57, 57, 47, 47, 17, 51,225, 93, 49, 48, 1, 1, 39, 19, 3, 55, 1, 5, 1, 39, 19, 3, 55, 1, 3,150,254,202, +116,237,237,116, 1, 54,254,104,254,203,117,238,238,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98, 27,254,101, 78, + 1, 92, 1, 92, 78,254, 98, 0,255,255, 0, 63, 0, 0, 5,139, 5,182, 0, 38, 0,123, 0, 0, 0, 39, 2, 23, 2, 74, 0, 0, + 1, 7, 2, 60, 2,252,253,183, 0, 48, 64, 29, 3, 2, 22, 24, 3, 2,191, 22, 1,143, 22, 1, 63, 22, 1, 22, 1, 64, 17, 1, + 0, 17, 1, 17, 0, 64, 0, 1, 0, 17, 93, 53, 17, 93, 93, 53, 17, 93, 93, 93, 53, 53, 0, 63, 53, 53,255,255, 0, 44, 0, 0, + 5,160, 5,182, 0, 38, 0,123,237, 0, 0, 39, 2, 23, 2, 53, 0, 0, 1, 7, 0,116, 3, 51,253,183, 0, 40, 64, 24, 2, 20, + 24, 2, 0, 20, 1, 20, 1,176, 17, 1, 64, 17, 1, 17, 0,112, 0, 1, 64, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 53, 17, 93, + 53, 0, 63, 53,255,255, 0, 31, 0, 0, 5,206, 5,201, 0, 38, 0,117, 0, 0, 0, 39, 2, 23, 2,168, 0, 0, 1, 7, 2, 60, + 3, 63,253,183, 0, 60, 64, 39, 3, 2, 56, 24, 3, 2,112, 56, 1, 80, 56, 1, 56, 1,180, 51, 1,164, 51, 1,132, 51, 1,100, + 51, 1, 80, 51, 1, 48, 51, 1, 32, 51, 1, 51, 15, 76, 1, 93, 17, 93, 93, 93, 93, 93, 93, 93, 53, 17, 93, 93, 53, 53, 0, 63, + 53, 53, 0, 2, 0, 68,254,119, 3, 68, 4, 94, 0, 39, 0, 59, 0, 68, 64, 18, 50,154, 40, 40, 39, 70, 0, 0, 11, 20, 61, 15, + 61, 1, 8, 11, 70, 28,184,255,192, 64, 16, 15, 27, 72, 28, 11, 23, 39, 39, 45,155, 55, 16, 19, 16, 81, 23, 0, 47,225, 51, 63, +229, 50, 47, 18, 57, 1, 47, 43,225, 94, 93, 16,206, 17, 57, 47,225, 51, 47,225, 49, 48, 1, 21, 20, 14, 2, 7, 14, 3, 21, 20, + 30, 2, 51, 50, 54, 55, 23, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 62, 3, 53, 53, 19, 20, 14, 2, 35, 34, 46, 2, 53, 52, + 62, 2, 51, 50, 30, 2, 2, 80, 16, 39, 65, 50, 48, 68, 43, 21, 30, 57, 85, 55, 84,150, 69, 64, 82,188, 97, 93,149,103, 56, 27, + 53, 81, 54, 52, 66, 38, 14,186, 19, 35, 46, 27, 26, 46, 35, 20, 20, 35, 46, 26, 27, 46, 35, 19, 2,164, 37, 58, 91, 81, 76, 42, + 41, 67, 69, 79, 53, 48, 79, 57, 31, 51, 35,146, 42, 58, 51, 96,138, 88, 68,104, 90, 84, 47, 45, 67, 62, 67, 43, 19, 1, 47, 38, + 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52,255,255, 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, + 0, 67,255,189, 1, 82, 0, 21,180, 2, 21, 5, 38, 2,184,255,156,180, 27, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 0,118, 0,141, 1, 82, 0, 19, 64, 11, 2, 33, 5, 38, 2,108, + 21, 27, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 1, 75, + 0, 31, 1, 82, 0, 21,180, 2, 21, 5, 38, 2,184,255,255,180, 29, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, + 0, 0, 4,221, 7, 53, 2, 38, 0, 36, 0, 0, 1, 7, 1, 82, 0, 6, 1, 82, 0, 19, 64, 11, 2, 29, 5, 38, 2, 1, 30, 44, + 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 33, + 1, 82, 0, 23, 64, 13, 3, 2, 30, 5, 38, 3, 2, 1, 21, 41, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, + 0, 0, 4,221, 7, 4, 2, 38, 0, 36, 0, 0, 1, 6, 1, 80, 31,125, 0, 49, 64, 32, 3, 2,239, 26, 1,223, 26, 1, 80, 26, + 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, 3, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 53, 0, 17, 93, 93, 93, 93, + 93, 93, 93, 53, 53, 0, 0, 2,255,254, 0, 0, 6, 86, 5,182, 0, 15, 0, 19, 0,132, 64, 42, 6, 19, 10, 14, 90, 1, 17, 1, + 16, 3, 4, 19,169, 19, 1, 36, 19, 52, 19, 84, 19, 3, 16, 1, 1, 20, 12, 1, 19, 1, 12, 12, 1, 19, 3, 5, 8, 0,103, 21, + 4, 5,184,255,240, 64, 32, 5, 9, 19, 95, 6, 3, 95, 16, 13, 95, 10, 79, 10, 1, 15, 10,175, 10, 2, 8, 16, 10, 16, 10, 6, + 3, 4, 14, 95, 5, 1, 18, 0, 63, 51,225, 47, 63, 57, 57, 47, 47, 94, 93,113, 16,225, 16,225, 16,225, 50, 1, 47, 56, 51, 16, +230, 50, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93,125,135,196,196, 17, 1, 51, 16,225, 50, 17, 51, 49, 48, 33, 33, 17, 33, 3, 35, + 1, 33, 21, 33, 17, 33, 21, 33, 17, 33, 1, 33, 17, 35, 6, 86,253, 8,254, 37,203,186, 2,143, 3,201,253,195, 2, 22,253,234, + 2, 61,251,117, 1,147,108, 1,197,254, 59, 5,182,164,254, 60,162,253,248, 1,198, 2,168, 0,255,255, 0,125,254, 20, 4,152, + 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 0,122, 1,252, 0, 0, 0, 11,182, 1, 79, 42, 36, 24, 32, 37, 1, 43, 53, 0,255,255, + 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255, +194,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, + 0,118, 0, 63, 1, 82, 0, 19, 64, 11, 1, 24, 5, 38, 1, 74, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, + 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 1, 75,255,241, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,253,180, + 20, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 3,190, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106, +255,245, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 1, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0, 62, 0, 0, 2,100, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 0, 67,254,181, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255, +168,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 2,138, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, + 0,118,255,120, 1, 82, 0, 19, 64, 11, 1, 24, 5, 38, 1,106, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 17, + 0, 0, 2,169, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 1, 75,255, 15, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 2, 20, 12, + 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106,255, 13, + 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 47, + 0, 0, 4,252, 5,182, 0, 16, 0, 31, 0, 93, 64, 58, 26, 26, 14, 17, 91, 8,103, 33, 32, 33, 1, 24, 28, 90, 14, 16, 16, 1, + 14,100, 32, 27, 16, 95, 24, 15, 0, 1, 15, 0, 63, 0,111, 0,175, 0,223, 0,255, 0, 6, 8, 0, 64, 26, 29, 72, 0, 0, 2, + 28, 96, 14, 18, 23, 96, 2, 3, 0, 63,225, 63,225, 17, 57, 47, 43, 94, 93,113, 51,225, 50, 1, 16,230, 50, 50, 47, 16,225, 50, + 93, 16,246,225, 17, 57, 47, 49, 48, 19, 51, 17, 33, 50, 22, 22, 18, 21, 20, 2, 6, 4, 35, 33, 17, 35, 37, 52, 46, 2, 35, 35, + 17, 33, 21, 33, 17, 51, 32, 0, 47,152, 1,151,153,248,174, 95, 96,182,254,247,168,254,146,152, 4, 8, 66,126,184,117,201, 1, + 80,254,176,162, 1, 8, 1, 12, 3, 37, 2,145, 92,181,254,244,176,185,254,233,187, 94, 2,131, 96,146,213,138, 67,254, 14,162, +254, 29, 1, 36,255,255, 0,199, 0, 0, 5, 14, 7, 53, 2, 38, 0, 49, 0, 0, 1, 7, 1, 82, 0,139, 1, 82, 0, 19, 64, 11, + 1, 32, 5, 38, 1, 10, 33, 47, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, + 0, 0, 1, 7, 0, 67, 0, 84, 1, 82, 0, 21,180, 2, 40, 5, 38, 2,184,255,171,180, 46, 40, 10, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0,118, 1, 2, 1, 82, 0, 19, 64, 11, 2, 52, + 5, 38, 2, 88, 40, 46, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, + 1, 7, 1, 75, 0,174, 1, 82, 0, 19, 64, 11, 2, 40, 5, 38, 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,125,255,236, 5,113, 7, 53, 2, 38, 0, 50, 0, 0, 1, 7, 1, 82, 0,125, 1, 82, 0, 21,180, 2, 48, 5, 38, 2,184,255, +240,180, 49, 63, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 0, 50, 0, 0, 1, 7, + 0,106, 0,170, 1, 82, 0, 23, 64, 13, 3, 2, 49, 5, 38, 3, 2, 1, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, + 0, 1, 0,141, 1, 45, 3,221, 4,123, 0, 11, 0,135,185, 0, 6,255,240,179, 20, 23, 72, 6,184,255,224, 64, 24, 15, 18, 72, + 0, 16, 20, 23, 72, 0, 32, 15, 18, 72, 9, 16, 20, 23, 72, 9, 32, 15, 18, 72, 3,184,255,240,179, 20, 23, 72, 3,184,255,224, + 64, 48, 15, 18, 72, 64, 13, 1, 7, 5, 5, 3, 11, 1, 1, 80, 3, 1, 3, 8, 10, 10, 4, 2, 2, 32, 0, 1, 0, 0, 32, 0, + 80, 0,112, 0,128, 0,160, 0,192, 0,208, 0,240, 0, 9, 6, 0,179, 0, 25, 63, 94, 93,113, 50, 17, 51, 50, 17, 51, 1, 47, + 93, 51, 17, 51, 17, 51, 17, 51, 93, 49, 48, 0, 43, 43, 43, 43, 1, 43, 43, 43, 43, 1, 1, 55, 1, 1, 23, 1, 1, 7, 1, 1, + 39, 1,203,254,194,105, 1, 61, 1, 66,104,254,191, 1, 63,102,254,190,254,195,103, 2,211, 1, 63,105,254,194, 1, 62,103,254, +191,254,192,102, 1, 61,254,197,103, 0, 0, 3, 0,125,255,180, 5,113, 5,252, 0, 26, 0, 38, 0, 49, 0, 92, 64, 58, 41, 31, + 42, 30, 4, 27, 39, 91, 1, 25, 11, 14, 4, 17, 4,103, 51,192, 51, 1,191, 51, 1,112, 51, 1, 47, 51, 95, 51, 2, 27, 91, 17, +102, 50, 31, 41, 30, 42, 4, 45, 34, 95, 25, 1, 14, 11, 4, 9, 26, 22, 4, 45, 95, 12, 9, 19, 0, 63, 51,225, 63, 51, 18, 23, + 57,225, 17, 23, 57, 1, 16,246,225, 93, 93, 93, 93, 16,246, 17, 23, 57,225, 17, 23, 57, 49, 48, 1, 7, 22, 18, 21, 20, 2, 6, + 6, 35, 34, 39, 7, 39, 55, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 55, 1, 20, 22, 23, 1, 38, 38, 35, 34, 14, 2, 5, 16, + 39, 1, 22, 22, 51, 50, 62, 2, 5, 20, 92, 91, 94, 81,160,237,155,189,133, 78,137, 90, 97, 91, 76,158,240,163, 94,161, 66, 80, +252,183, 46, 48, 2, 67, 48,114, 71,114,166,108, 52, 3,106, 88,253,190, 47,114, 69,114,165,107, 50, 5,174,149, 99,254,222,183, +169,254,234,198,108, 71,127, 78,145,100, 1, 42,190,170, 1, 21,196,107, 42, 38,127,252,225,131,209, 78, 3,177, 29, 32, 81,151, +218,138, 1, 1,151,252, 84, 28, 30, 81,153,219,255,255, 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0, 67, + 0, 61, 1, 82, 0, 21,180, 1, 24, 5, 38, 1,184,255,192,180, 30, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184, +255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0,118, 0,197, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 72, 24, 30, + 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 75, 0,121, + 1, 82, 0, 21,180, 1, 24, 5, 38, 1,184,255,253,180, 32, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, + 4,221, 7, 43, 2, 38, 0, 56, 0, 0, 1, 7, 0,106, 0,125, 1, 82, 0, 23, 64, 13, 2, 1, 33, 5, 38, 2, 1, 1, 24, 44, + 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0,118, + 0, 49, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 99, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,199, 0, 0, + 4, 51, 5,182, 0, 16, 0, 27, 0, 60, 64, 33, 23, 91, 0,103, 29,159, 29, 1, 16, 29, 1, 17, 11, 7, 90, 8,100, 28, 17, 96, + 6, 27, 96, 11, 6, 11, 6, 11, 7, 9, 3, 7, 18, 0, 63, 63, 18, 57, 57, 47, 47, 16,225, 16,225, 1, 16,246,225, 50, 50, 93, + 93, 16,246,225, 49, 48, 1, 20, 14, 2, 35, 35, 17, 35, 17, 51, 21, 51, 50, 30, 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 4, + 51, 55,126,207,152,150,186,186,176,134,194,126, 60,253, 78,129, 93,139, 91, 46,164,174,160, 3, 14, 91,168,129, 77,254,195, 5, +182,252, 57,109,160,254,103, 32, 71,113, 81,143,136, 0, 0, 1, 0,174,255,236, 4,117, 6, 31, 0, 75, 0,109, 64, 72, 7, 70, + 46, 53, 71, 0, 15, 25, 31, 25, 47, 25, 3, 25, 64, 13, 19, 72, 95, 46,111, 46, 2, 15, 0, 31, 0, 47, 0, 3, 8, 25, 46, 0, + 0, 46, 25, 3, 65, 36, 71, 17, 87, 77, 16, 77, 32, 77,192, 77, 3, 64, 71, 65, 84, 76, 36, 7, 53, 3, 22, 58, 80, 71, 1, 65, + 21, 31, 80, 26, 22, 22, 0, 63, 51,225, 63, 63,225, 18, 23, 57, 1, 16,246,225, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 94, 93, + 93, 43, 93, 16,225, 16,225, 49, 48, 1, 20, 14, 4, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, + 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 4, 53, 52, 46, 2, 35, 34, 14, 2, 21, 17, 35, 17, 52, 62, 2, 51, 50, 30, + 2, 3,242, 43, 63, 75, 63, 43, 14, 39, 70, 57, 56, 88, 61, 33, 56,101,141, 85, 97,139, 53, 26, 65, 72, 76, 37, 56, 81, 52, 24, + 17, 43, 72, 56, 63, 85, 53, 22, 41, 62, 72, 62, 41, 33, 60, 83, 51, 49, 88, 66, 39,182, 63,113,156, 92, 92,152,108, 60, 4,236, + 57, 89, 73, 60, 55, 54, 30, 21, 33, 39, 49, 38, 37, 72, 82, 96, 62, 87,126, 81, 39, 35, 34,166, 16, 31, 24, 15, 25, 45, 64, 40, + 36, 59, 56, 58, 35, 40, 68, 67, 70, 42, 54, 79, 63, 54, 58, 67, 44, 42, 62, 41, 19, 19, 48, 83, 65,251, 78, 4,176,104,141, 85, + 37, 38, 76,116,255,255, 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0, 67,148, 0, 0, 21,180, 2, 51, 17, + 38, 2,184,255,229,180, 57, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, + 0, 0, 1, 6, 0,118, 53, 0, 0, 19, 64, 11, 2, 63, 17, 38, 2,133, 51, 57, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 1, 75,226, 0, 0, 19, 64, 11, 2, 51, 17, 38, 2, 51, 59, 51, + 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,227, 2, 38, 0, 68, 0, 0, 1, 6, 1, 82,189, 0, + 0, 19, 64, 11, 2, 59, 17, 38, 2, 41, 60, 74, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,217, + 2, 38, 0, 68, 0, 0, 1, 6, 0,106,222, 0, 0, 23, 64, 13, 3, 2, 60, 17, 38, 3, 2, 47, 51, 71, 12, 34, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 6,135, 2, 38, 0, 68, 0, 0, 1, 6, 1, 80,222, 0, 0, 23, 64, 13, + 3, 2, 56, 17, 38, 3, 2, 48, 61, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0, 94,255,236, 6, 68, 4, 94, + 0, 56, 0, 71, 0, 80, 0,124, 64, 26, 47, 20, 75, 30, 72, 4, 66, 66, 0, 76, 72, 38, 29, 87, 82, 79, 82, 95, 82,159, 82, 3, + 57, 72, 0, 14,184,255,192, 64, 46, 13, 17, 72, 14, 14, 0, 86, 81, 0, 66, 16, 66, 2, 66, 30, 80, 0, 4, 16, 4, 2, 4, 15, + 75, 31, 75, 2, 7, 75, 75, 17, 33, 60, 80, 47, 44, 52, 22, 72, 13, 10, 80, 23, 20, 17, 16, 0, 63, 51, 51,225, 50, 50, 63, 51, + 51,225, 50, 17, 57, 47, 94, 93, 51, 93,225, 50, 93, 1, 16,230, 50, 47, 43, 16,225, 93, 16,246, 50,225, 17, 57, 47, 51,225, 50, + 57, 57, 49, 48, 19, 52, 54, 55, 55, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 22, 23, 54, 54, 51, 50, 30, 2, 21, 21, + 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 38, 39, 14, 3, 35, 34, 46, 2, 55, 20, 22, 51, 50, 62, 2, 53, 53, 7, 14, + 3, 1, 34, 6, 7, 33, 52, 46, 2, 94,231,236,184, 29, 55, 81, 52, 83,143, 66, 64, 74,182,100,131,166, 43, 51,166,103, 97,154, +108, 57,253, 96, 5,147,147, 49, 85, 78, 74, 37, 39, 75, 79, 85, 49,138,202, 62, 34, 76, 95,116, 74, 71,123, 90, 52,189, 97, 79, + 61,104, 76, 43,143, 90,122, 73, 32, 3,133,110,127, 11, 1,215, 26, 55, 84, 1, 51,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34, +137, 40, 56, 85, 93, 85, 93, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, 8,114,115, 54, 85, 59, 31, 39, 81,123, + 82, 92, 86, 38, 77,117, 79, 99, 7, 4, 32, 57, 81, 2, 99,156,149, 68,113, 80, 44, 0,255,255, 0,113,254, 20, 3,111, 4, 94, + 2, 38, 0, 70, 0, 0, 1, 7, 0,122, 1, 66, 0, 0, 0, 11,182, 1, 47, 38, 32, 5, 13, 37, 1, 43, 53, 0,255,255, 0,113, +255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0, 67,148, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255,185,180, 46, 40, + 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0,118, 82, 0, + 0, 19, 64, 11, 2, 52, 17, 38, 2,118, 40, 46, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, + 2, 38, 0, 72, 0, 0, 1, 6, 1, 75,222, 0, 0, 19, 64, 11, 2, 40, 17, 38, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,113,255,236, 3,225, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106,218, 0, 0, 23, 64, 13, 3, 2, 49, 17, + 38, 3, 2, 0, 40, 60, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255,222, 0, 0, 1,103, 6, 33, 2, 38, 0,243, + 0, 0, 1, 7, 0, 67,254, 85, 0, 0, 0, 21,180, 1, 4, 17, 38, 1,184,255,154,180, 10, 4, 1, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,174, 0, 0, 2, 66, 6, 33, 2, 38, 0,243, 0, 0, 1, 7, 0,118,255, 48, 0, 0, 0, 19, 64, 11, 1, 16, + 17, 38, 1,116, 4, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,189, 0, 0, 2, 85, 6, 33, 2, 38, 0,243, 0, 0, + 1, 7, 1, 75,254,187, 0, 0, 0, 19, 64, 11, 1, 4, 17, 38, 1, 0, 12, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, +255,238, 0, 0, 2, 37, 5,217, 2, 38, 0,243, 0, 0, 1, 7, 0,106,254,187, 0, 0, 0, 23, 64, 13, 2, 1, 13, 17, 38, 2, + 1, 0, 4, 24, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0,111,255,236, 4, 45, 6, 35, 0, 39, 0, 57, 0,116, + 64, 70, 18, 40, 72, 0, 35, 32, 22, 25, 4, 28, 34, 24, 28, 34, 34, 28, 24, 3, 10, 0, 87, 59, 64, 59,208, 59,224, 59, 3, 15, + 59, 1, 6, 50, 72, 10, 86, 58, 32, 25, 35, 22, 4, 23, 33, 33, 29, 45, 80, 15, 18, 15,175, 15,191, 15, 2, 48, 15, 1, 23, 15, + 23, 15, 29, 1, 55, 80, 5, 22, 0, 63,225, 63, 57, 57, 47, 47, 93, 93, 17, 51, 16,225, 17, 51, 17, 18, 23, 57, 1, 16,246,225, + 94, 93, 93, 16,230, 17, 23, 57, 47, 47, 47, 17, 18, 23, 57, 16,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, + 51, 50, 22, 23, 55, 38, 38, 39, 5, 39, 55, 38, 38, 39, 55, 22, 22, 23, 55, 23, 7, 30, 3, 7, 52, 46, 2, 35, 34, 14, 2, 21, + 20, 30, 2, 51, 50, 54, 4, 45, 67,125,178,111,104,175,127, 71, 63,118,168,105,102,154, 43, 8, 31,120, 90,255, 0, 74,217, 40, + 85, 47, 70, 65,122, 59,227, 74,195, 67,111, 79, 44,188, 34, 70,110, 75, 77,109, 70, 33, 33, 71,109, 76,154,135, 2, 61,142,220, +152, 79, 66,127,185,119,119,184,126, 65, 59, 60, 4,118,192, 81,153,114,131, 28, 55, 26,123, 32, 72, 44,138,113,117, 65,156,187, +221,176, 56,107, 82, 50, 46, 88,131, 85, 76,125, 90, 49,199, 0,255,255, 0,174, 0, 0, 4, 18, 5,227, 2, 38, 0, 81, 0, 0, + 1, 6, 1, 82,249, 0, 0, 19, 64, 11, 1, 33, 17, 38, 1, 2, 34, 48, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113, +255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0, 67,216, 0, 0, 21,180, 2, 32, 17, 38, 2,184,255,215,180, 38, 32, + 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0,118, 80, 0, + 0, 19, 64, 11, 2, 44, 17, 38, 2, 78, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, + 2, 38, 0, 82, 0, 0, 1, 6, 1, 75,251, 0, 0, 21,180, 2, 32, 17, 38, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,227, 2, 38, 0, 82, 0, 0, 1, 6, 1, 82,226, 0, 0, 21,180, 2, 40, 17, + 38, 2,184,255,253,180, 41, 55, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, 2, 38, 0, 82, + 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 41, 17, 38, 3, 2,184,255,249,180, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0, 0, 3, 0,102, 0,248, 4, 2, 4,172, 0, 3, 0, 23, 0, 43, 0, 96, 64, 21, 48, 45, 1, 34,170, 24, 24, 14, +170, 86, 3,102, 3, 2, 40, 3, 56, 3, 2, 3, 0,184,255,240, 64, 40, 9, 13, 72, 0, 4, 39,173, 16, 29, 1, 15, 29, 1, 29, + 29, 1, 9,173, 0, 19, 16, 19, 32, 19, 96, 19,176, 19,192, 19,208, 19, 7, 7, 19, 19, 0,173, 1,179, 0, 63,225, 51, 47, 94, + 93,225, 17, 51, 47, 93,113,225, 1, 47, 51, 43, 51, 93, 93,225, 51, 47,225, 93, 49, 48, 19, 53, 33, 21, 1, 52, 62, 2, 51, 50, + 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,102, 3,156,253,191, 18, + 31, 41, 24, 23, 42, 32, 18, 18, 32, 42, 23, 24, 41, 31, 18, 18, 31, 41, 24, 23, 42, 32, 18, 18, 32, 42, 23, 24, 41, 31, 18, 2, +135,150,150,254,238, 35, 47, 30, 13, 13, 30, 47, 35, 33, 47, 31, 14, 14, 31, 47, 2,219, 35, 47, 30, 13, 13, 30, 47, 35, 33, 47, + 31, 14, 14, 31, 47, 0, 0, 3, 0,115,255,180, 4, 47, 4,145, 0, 26, 0, 36, 0, 45, 0, 92, 64, 59, 39, 31, 40, 30, 4, 27, + 37, 72, 23, 24, 22, 21, 7, 8, 10, 9, 8, 13, 0, 87, 47, 64, 47,208, 47,224, 47, 3, 15, 47, 1, 6, 27, 72, 13, 86, 46, 40, + 30, 39, 31, 4, 43, 34, 80, 7, 10, 24, 21, 4, 5, 22, 18, 16, 43, 80, 8, 5, 22, 0, 63,198,225, 63,198, 18, 23, 57,225, 17, + 23, 57, 1, 16,246,225, 94, 93, 93, 16,246, 17, 23, 57,225, 17, 23, 57, 49, 48, 1, 20, 14, 2, 35, 34, 39, 7, 39, 55, 38, 38, + 53, 52, 62, 2, 51, 50, 22, 23, 55, 23, 7, 22, 22, 5, 20, 22, 23, 1, 38, 38, 35, 34, 6, 5, 52, 39, 1, 22, 22, 51, 50, 54, + 4, 47, 67,125,178,111,125, 98, 68,131, 80, 63, 70, 67,124,179,111, 63,113, 49, 68,131, 80, 62, 69,253, 0, 19, 22, 1,141, 29, + 75, 45,154,135, 2, 68, 39,254,114, 31, 72, 45,154,135, 2, 39,137,213,145, 76, 53,109, 74,131, 72,213,137,136,211,145, 75, 29, + 28,108, 73,129, 73,209,134, 84,131, 51, 2,135, 17, 18,207,209,159, 99,253,123, 17, 16,211, 0,255,255, 0,164,255,236, 4, 8, + 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0, 67,163, 0, 0, 21,180, 1, 27, 17, 38, 1,184,255,155,180, 33, 27, 12, 25, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0,118, 96, 0, 0, 19, 64, 11, + 1, 39, 17, 38, 1, 87, 27, 33, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 6, 33, 2, 38, 0, 88, + 0, 0, 1, 6, 1, 75, 8, 0, 0, 19, 64, 11, 1, 27, 17, 38, 1, 0, 35, 27, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,164,255,236, 4, 8, 5,217, 2, 38, 0, 88, 0, 0, 1, 6, 0,106, 2, 0, 0, 25,182, 2, 1, 36, 17, 38, 2, 1,184,255, +251,180, 27, 47, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, + 1, 6, 0,118, 14, 0, 0, 19, 64, 11, 1, 47, 17, 38, 1,103, 35, 41, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,174, +254, 20, 4, 63, 6, 20, 0, 32, 0, 49, 0, 56, 64, 31, 47, 72, 10, 87, 51, 16, 51, 1, 39, 32, 31, 21, 27, 71, 28, 84, 50, 29, + 0, 27, 27, 44, 80, 21, 15, 22, 33, 80, 0, 5, 16, 0, 63, 51,225, 63, 51,225, 63, 63, 1, 16,246,225, 50, 50, 50, 50, 93, 16, +246,225, 49, 48, 1, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 17, 7, + 37, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 53, 52, 38, 1,100, 23, 58, 77, 96, 60, 94,154,109, 60, 60,109,154, 94, 59, 96, + 77, 59, 23, 12, 3, 3, 2, 4,182,182, 8, 1, 31, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127, 3,182, 35, 61, 45, 27, 72, +143,212,140,141,213,144, 73, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 8, 0,254, 54,148, 17, 46, 94,140, 95, 41,101,157,107, + 55,218,204,208,206, 0,255,255, 0, 10,254, 20, 3,223, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106,177, 0, 0, 23, 64, 13, + 2, 1, 44, 17, 38, 2, 1, 11, 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 6,193, + 2, 38, 0, 36, 0, 0, 1, 7, 1, 77, 0, 51, 1, 82, 0, 21,180, 2, 23, 5, 38, 2,184,255,255,180, 21, 22, 4, 7, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,111, 2, 38, 0, 68, 0, 0, 1, 6, 1, 77,230, 0, 0, 19, 64, 11, + 2, 53, 17, 38, 2, 35, 51, 52, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7, 64, 2, 38, 0, 36, + 0, 0, 1, 7, 1, 78, 0, 33, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 94,255,236, 3,156, 5,238, 2, 38, 0, 68, 0, 0, 1, 6, 1, 78,212, 0, 0, 19, 64, 11, 2, 56, 17, 38, 2, 37, + 61, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,254, 66, 4,221, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 81, + 3, 98, 0, 0, 0, 20, 64, 13, 2,128, 39, 1, 48, 39, 1, 0, 39, 39, 0, 0, 37, 1, 43, 93, 93, 53,255,255, 0, 94,254, 66, + 3,184, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 1, 81, 2, 90, 0, 0, 0, 32, 64, 22, 2,240, 69, 1,160, 69, 1,144, 69, 1, +128, 69, 1, 48, 69, 1, 0, 69, 69, 0, 0, 37, 1, 43, 93, 93, 93, 93, 93, 53,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, + 0, 38, 0, 0, 1, 7, 0,118, 1, 10, 1, 82, 0, 19, 64, 11, 1, 48, 5, 38, 1,205, 36, 42, 24, 32, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,113,255,236, 3,111, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 0,118, 74, 0, 0, 23, 64, 14, 1, 44, 17, 38, + 1, 16, 32, 1,167, 32, 38, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, 0, 38, + 0, 0, 1, 7, 1, 75, 0,180, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1,119, 44, 36, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,113,255,236, 3,143, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 75,245, 0, 0, 23, 64, 14, 1, 32, 17, 38, 1, 16, + 40, 1, 83, 40, 32, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7, 55, 2, 38, 0, 38, 0, 0, + 1, 7, 1, 79, 2, 0, 1, 82, 0, 19, 64, 11, 1, 47, 5, 38, 1,128, 36, 44, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,113,255,236, 3,111, 5,229, 2, 38, 0, 70, 0, 0, 1, 7, 1, 79, 1, 51, 0, 0, 0, 23, 64, 14, 1, 43, 17, 38, 1, 16, + 32, 1, 77, 32, 40, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, 0, 38, 0, 0, + 1, 7, 1, 76, 0,168, 1, 82, 0, 19, 64, 11, 1, 41, 5, 38, 1,107, 47, 36, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,113,255,236, 3,160, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 76, 6, 0, 0, 23, 64, 14, 1, 37, 17, 38, 1, 16, 43, 1, +100, 43, 32, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 4,252, 7,115, 2, 38, 0, 39, 0, 0, 1, 7, + 1, 76, 0, 74, 1, 82, 0, 21,180, 2, 29, 5, 38, 2,184,255,183,180, 35, 24, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,113,255,236, 5, 82, 6, 20, 2, 38, 0, 71, 0, 0, 1, 7, 2, 56, 2,217, 0, 0, 0, 11,182, 2, 94, 62, 62, 29, 29, 37, + 1, 43, 53, 0,255,255, 0, 47, 0, 0, 4,252, 5,182, 2, 6, 0,146, 0, 0, 0, 2, 0,113,255,236, 4,158, 6, 20, 0, 39, + 0, 56, 0, 85, 64, 49, 31, 27, 0, 45, 71, 38, 29, 29, 11, 34, 38, 85, 58, 16, 58, 1, 54, 72, 11, 86, 57, 39, 21, 37, 29, 79, + 34, 30, 30, 16, 32, 0, 51, 80, 22, 0, 16, 16, 16, 32, 16, 3, 16, 16, 40, 80, 0, 6, 22, 0, 63, 51,225, 63, 93, 51,225, 63, + 18, 57, 47, 51,225, 50, 63, 1, 16,246,225, 93, 16,230, 50, 17, 57, 47, 16,225, 50, 50, 50, 49, 48, 37, 35, 14, 3, 35, 34, 46, + 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 37, 50, 62, 2, + 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 84, 8, 22, 59, 77, 96, 60, 93,154,110, 60, 60,110,154, 93, 59, 96, 77, 60, 22, + 12, 3, 3, 2, 4,254,133, 1,123,182,156,156,147,254,198, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,147, 34, 61, 46, 26, + 70,138,204,134,135,206,139, 71, 25, 44, 58, 32, 33, 31, 26, 55, 16,158,137,182,182,137,251, 43,131, 44, 89,133, 90, 39, 97,149, +102, 52,207,195,198,195,255,255, 0,199, 0, 0, 3,190, 6,193, 2, 38, 0, 40, 0, 0, 1, 7, 1, 77, 0, 10, 1, 82, 0, 19, + 64, 11, 1, 14, 5, 38, 1, 2, 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,111, 2, 38, + 0, 72, 0, 0, 1, 6, 1, 77, 0, 0, 0, 19, 64, 11, 2, 42, 17, 38, 2, 17, 40, 41, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,199, 0, 0, 3,190, 7, 64, 2, 38, 0, 40, 0, 0, 1, 7, 1, 78,255,251, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, + 1, 6, 22, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,238, 2, 38, 0, 72, 0, 0, 1, 6, + 1, 78,234, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 15, 50, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, + 3,190, 7, 26, 2, 38, 0, 40, 0, 0, 1, 7, 1, 79, 1, 63, 1, 53, 0, 19, 64, 11, 1, 23, 5, 38, 1, 7, 12, 20, 1, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,229, 2, 38, 0, 72, 0, 0, 1, 7, 1, 79, 1, 43, 0, 0, + 0, 19, 64, 11, 2, 51, 17, 38, 2, 12, 40, 48, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 66, 3,190, 5,182, + 2, 38, 0, 40, 0, 0, 1, 7, 1, 81, 2, 33, 0, 0, 0, 14,185, 0, 1,255,193,180, 18, 18, 0, 0, 37, 1, 43, 53,255,255, + 0,113,254, 97, 3,225, 4, 94, 2, 38, 0, 72, 0, 0, 1, 7, 1, 81, 2, 59, 0, 31, 0, 39, 64, 19, 2,240, 59, 1,224, 59, + 1,160, 59, 1,144, 59, 1, 80, 59, 1, 0, 59, 1,184,255,202,180, 59, 59, 26, 26, 37, 1, 43, 93, 93, 93, 93, 93, 93, 53, 0, +255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 1, 76,255,249, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, + 1, 4, 23, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, + 1, 76,228, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 9, 51, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, + 4,242, 7,115, 2, 38, 0, 42, 0, 0, 1, 7, 1, 75, 0,215, 1, 82, 0, 19, 64, 11, 1, 44, 5, 38, 1,109, 52, 44, 12, 1, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 37,254, 20, 3,252, 6, 33, 2, 38, 0, 74, 0, 0, 1, 6, 1, 75,198, 0, 0, 19, + 64, 11, 3, 95, 17, 38, 3, 3,103, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,242, 7, 64, 2, 38, + 0, 42, 0, 0, 1, 7, 1, 78, 0,201, 1, 82, 0, 19, 64, 11, 1, 49, 5, 38, 1, 95, 54, 44, 12, 1, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0, 37,254, 20, 3,252, 5,238, 2, 38, 0, 74, 0, 0, 1, 6, 1, 78,177, 0, 0, 21,180, 3,100, 17, 38, 3, +184,255,239,180,105, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,242, 7, 55, 2, 38, 0, 42, 0, 0, + 1, 7, 1, 79, 2, 12, 1, 82, 0, 19, 64, 11, 1, 55, 5, 38, 1, 95, 44, 52, 12, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 37,254, 20, 3,252, 5,229, 2, 38, 0, 74, 0, 0, 1, 7, 1, 79, 0,242, 0, 0, 0, 21,180, 3,106, 17, 38, 3,184,255, +236,180, 95,103, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254, 59, 4,242, 5,203, 2, 38, 0, 42, 0, 0, 1, 7, + 2, 57, 1, 23, 0, 0, 0, 11,182, 1, 81, 44, 50, 12, 1, 37, 1, 43, 53, 0,255,255, 0, 37,254, 20, 3,252, 6, 33, 2, 38, + 0, 74, 0, 0, 1, 6, 2, 58, 45, 0, 0, 19, 64, 11, 3,100, 17, 38, 3, 28,101, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,199, 0, 0, 4,213, 7,115, 2, 38, 0, 43, 0, 0, 1, 7, 1, 75, 0,127, 1, 82, 0, 21,180, 1, 12, 5, 38, 1, +184,255,255,180, 20, 12, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 18, 7,170, 2, 38, 0, 75, 0, 0, + 1, 7, 1, 75, 0, 43, 1,137, 0, 31, 64, 20,112, 13, 1,112, 12, 1, 1,112, 26, 1, 26, 2, 38, 1, 25, 34, 26, 11, 24, 37, + 1, 43, 53, 0, 43, 93, 53, 93, 93, 0, 0, 2, 0, 0, 0, 0, 5,156, 5,182, 0, 19, 0, 23, 0, 86, 64, 47, 20, 4, 12, 90, + 7, 11,101, 25,176, 25, 1,175, 25, 1, 16, 25, 1, 23, 3, 15, 90, 0, 16,100, 24, 14, 95, 23, 22, 10, 18, 96, 19, 7, 3, 19, + 23, 19, 23, 19, 1, 16, 11, 18, 5, 1, 3, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 17, 51, 51, 16,225, 50, 50, 16,225, 1, 16, +246, 50,225, 50, 50, 93, 93, 93, 16,246, 50,225, 50, 50, 49, 48, 19, 53, 51, 21, 33, 53, 51, 21, 51, 21, 35, 17, 35, 17, 33, 17, + 35, 17, 35, 53, 1, 53, 33, 21,199,186, 2,154,186,199,199,186,253,102,186,199, 4, 27,253,102, 4,195,243,243,243,243,150,251, +211, 2,170,253, 86, 4, 45,150,254,139,223,223, 0, 1, 0, 18, 0, 0, 4, 18, 6, 20, 0, 33, 0, 85, 64, 52, 19, 11, 0, 71, + 33, 85, 35, 16, 35, 96, 35,128, 35, 3, 23, 22, 18, 10, 71, 15, 11, 84, 34, 21, 13, 79, 18,191, 14,207, 14, 2, 14, 14, 16, 23, + 4, 80, 0, 29, 16, 29, 32, 29, 3, 29, 16, 16, 0, 11, 0, 21, 0, 63, 50, 63, 63, 93,225, 51, 18, 57, 47, 93, 51,225, 50, 1, + 16,246, 50,225, 50, 50, 50, 93, 16,246,225, 18, 57, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 35, 53, 51, 53, 51, + 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, + 25, 69, 82, 92, 48,183,185, 2,154,130,130, 52,102,148, 96,253,240, 4,213,137,182,182,137,184,144, 43, 63, 42, 20,191,210,253, + 92, 0,255,255,255,245, 0, 0, 2,196, 7, 53, 2, 38, 0, 44, 0, 0, 1, 7, 1, 82,254,243, 1, 82, 0, 19, 64, 11, 1, 20, + 5, 38, 1, 1, 21, 35, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,163, 0, 0, 2,114, 5,227, 2, 38, 0,243, 0, 0, + 1, 7, 1, 82,254,161, 0, 0, 0, 19, 64, 11, 1, 12, 17, 38, 1, 1, 13, 27, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 61, 0, 0, 2,124, 6,193, 2, 38, 0, 44, 0, 0, 1, 7, 1, 77,255, 34, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 1, + 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,235, 0, 0, 2, 42, 5,111, 2, 38, 0,243, 0, 0, 1, 7, 1, 77, +254,208, 0, 0, 0, 19, 64, 11, 1, 6, 17, 38, 1, 1, 4, 5, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 48, 0, 0, + 2,138, 7, 64, 2, 38, 0, 44, 0, 0, 1, 7, 1, 78,255, 15, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, 1, 2, 22, 12, 1, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,222, 0, 0, 2, 56, 5,238, 2, 38, 0,243, 0, 0, 1, 7, 1, 78,254,189, 0, 0, + 0, 19, 64, 11, 1, 9, 17, 38, 1, 2, 14, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 66, 2,100, 5,182, + 2, 38, 0, 44, 0, 0, 1, 7, 1, 81, 0,156, 0, 0, 0, 11,182, 1, 0, 25, 18, 1, 0, 37, 1, 43, 53, 0,255,255, 0, 68, +254, 66, 1,131, 5,229, 2, 38, 0, 76, 0, 0, 1, 6, 1, 81, 37, 0, 0, 16, 64, 10, 2,111, 37, 1, 0, 37, 37, 0, 0, 37, + 1, 43, 93, 53,255,255, 0, 82, 0, 0, 2,100, 7, 55, 2, 38, 0, 44, 0, 0, 1, 7, 1, 79, 0, 80, 1, 82, 0, 19, 64, 11, + 1, 23, 5, 38, 1, 0, 12, 20, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 1,100, 4, 74, 0, 3, 0, 26, + 64, 14, 16, 5, 32, 5, 2, 0, 71, 1, 84, 4, 2, 15, 0, 21, 0, 63, 63, 1, 16,246,225, 93, 49, 48, 33, 35, 17, 51, 1,100, +182,182, 4, 74,255,255, 0, 82,254,123, 4, 41, 5,182, 0, 38, 0, 44, 0, 0, 1, 7, 0, 45, 2,182, 0, 0, 0, 56, 64, 14, + 1, 24,127, 24, 1, 79, 24, 1, 24, 64, 7, 7, 72, 24,184,255,192, 64, 23, 6, 6, 72,191, 33, 1,160, 33, 1,143, 33, 1, 80, + 33, 1, 15, 33, 1, 33, 64, 7, 7, 72, 43, 93, 93, 93, 93, 93, 43, 43, 93, 93, 17, 53,255,255, 0,160,254, 20, 3,135, 5,229, + 0, 38, 0, 76, 0, 0, 1, 7, 0, 77, 2, 18, 0, 0, 0, 46, 64, 32, 3, 2, 30,207, 30, 1,223, 53, 1,159, 53, 1,128, 53, + 1, 95, 53, 1, 64, 53, 1, 32, 53, 1, 0, 53, 1, 53, 64, 6, 6, 72, 43, 93, 93, 93, 93, 93, 93, 93, 93, 17, 53, 53,255,255, +255, 72,254,123, 2,100, 7,115, 2, 38, 0, 45, 0, 0, 1, 7, 1, 75,254,202, 1, 82, 0, 19, 64, 11, 1, 20, 5, 38, 1, 0, + 28, 20, 13, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,188,254, 20, 2, 87, 6, 33, 2, 38, 2, 55, 0, 0, 1, 7, 1, 75, +254,189, 0, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 0, 28, 20, 13, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 59, + 4,162, 5,182, 2, 38, 0, 46, 0, 0, 1, 6, 2, 57,115, 0, 0, 14,185, 0, 1,255,177,180, 13, 19, 5, 0, 37, 1, 43, 53, +255,255, 0,174,254, 59, 3,240, 6, 20, 2, 38, 0, 78, 0, 0, 1, 6, 2, 57, 33, 0, 0, 14,185, 0, 1,255,196,180, 15, 21, + 10, 5, 37, 1, 43, 53, 0, 1, 0,174, 0, 0, 3,240, 4, 74, 0, 17, 0, 73, 64, 10, 1, 16, 16, 14, 15, 15, 68, 17, 1, 17, +184,255,192, 64, 28, 7, 10, 72, 17, 16, 17, 17, 19, 15, 19, 47, 19, 2, 7, 7, 3, 71, 4, 84, 18, 12, 1, 14, 5, 15, 4, 0, + 21, 0, 63, 50, 63, 51, 57, 57, 1, 16,246,225, 50, 94, 93, 17, 51, 47, 56, 43, 93, 51, 17, 51, 57, 17, 51, 49, 48, 33, 1, 7, + 17, 35, 17, 51, 17, 20, 6, 7, 6, 7, 55, 1, 51, 1, 1, 3, 35,254,172,109,180,180, 5, 3, 4, 4,131, 1, 51,205,254,111, + 1,172, 1,233, 81,254,104, 4, 74,254,231, 60,102, 38, 44, 36,176, 1,129,254, 22,253,160, 0,255,255, 0,199, 0, 0, 3,190, + 7,115, 2, 38, 0, 47, 0, 0, 1, 7, 0,118,255,101, 1, 82, 0, 21,180, 1, 18, 5, 38, 1,184,255,112,180, 6, 12, 0, 4, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,171, 0, 0, 2, 52, 7,172, 2, 38, 0, 79, 0, 0, 1, 7, 0,118,255, 34, 1,139, + 0, 31, 64, 20,112, 3, 1,112, 2, 1, 1,112, 16, 1, 16, 2, 38, 1,102, 4, 10, 1, 0, 37, 1, 43, 53, 0, 43, 93, 53, 93, + 93, 0,255,255, 0,199,254, 59, 3,190, 5,182, 2, 38, 0, 47, 0, 0, 1, 6, 2, 57, 45, 0, 0, 14,185, 0, 1,255,221,180, + 6, 12, 0, 4, 37, 1, 43, 53,255,255, 0,102,254, 59, 1,108, 6, 20, 2, 38, 0, 79, 0, 0, 1, 7, 2, 57,254,247, 0, 0, + 0, 14,185, 0, 1,255,224,180, 4, 10, 1, 0, 37, 1, 43, 53,255,255, 0,199, 0, 0, 3,190, 5,183, 2, 38, 0, 47, 0, 0, + 1, 7, 2, 56, 1, 0,255,163, 0, 22, 64, 13, 1, 11, 3, 1, 16, 6, 1, 96, 6, 12, 2, 4, 37, 1, 43, 93, 53, 0, 63, 53, +255,255, 0,174, 0, 0, 2,180, 6, 20, 2, 38, 0, 79, 0, 0, 1, 6, 2, 56, 59, 0, 0, 24, 64, 17, 1, 4, 64, 14, 16, 72, + 4, 64, 6, 9, 72, 94, 4, 4, 3, 3, 37, 1, 43, 43, 43, 53,255,255, 0,199, 0, 0, 3,190, 5,182, 2, 38, 0, 47, 0, 0, + 1, 7, 1, 79, 1,227,253,101, 0, 11,182, 1,171, 6, 14, 0, 4, 37, 1, 43, 53, 0,255,255, 0,174, 0, 0, 2,162, 6, 20, + 0, 38, 0, 79, 0, 0, 1, 7, 1, 79, 1, 45,253, 56, 0, 43, 64, 22,255, 19, 1,239, 19, 1,159, 19, 1,143, 19, 1,127, 19, + 1, 95, 19, 1, 31, 19, 1, 1,184, 1, 46,180, 4, 12, 1, 0, 37, 1, 43, 53, 93, 93, 93, 93, 93, 93, 93, 0, 0, 1, 0, 29, + 0, 0, 3,190, 5,182, 0, 13, 0, 97, 64, 50, 11, 6, 5, 12, 5, 0, 3, 4, 13, 4, 4, 5, 5, 10, 8, 8, 15,175, 15, 1, + 16, 15, 1, 12, 13, 13, 6, 3, 7, 90, 11, 0, 10,100, 14, 5, 4, 13, 12, 4, 12, 4, 12, 1, 7, 95, 10, 18, 1, 3, 0, 63, + 63,225, 18, 57, 57, 47, 47, 17, 51, 17, 51, 1, 16,246, 50, 50,225, 50, 50, 51, 47, 51, 93, 93, 17, 51, 17, 18, 57, 47, 51, 16, +125,135, 4,196,196, 16,135,196,196, 49, 48, 19, 17, 51, 17, 55, 23, 5, 17, 33, 21, 33, 17, 7, 39,199,186,227, 78,254,207, 2, + 61,253, 9, 97, 73, 2,164, 3, 18,253, 99,143,125,190,254, 57,166, 1,248, 60,125, 0, 0, 1,255,246, 0, 0, 2, 29, 6, 20, + 0, 11, 0,105, 64, 59, 64, 13, 80, 13, 2, 9, 6, 5, 10, 5, 0, 3, 4, 11, 10, 11, 11, 8, 4,221, 5, 1,187, 5,203, 5, + 2, 15, 5, 31, 5, 47, 5, 3, 6, 5, 5, 6, 3, 7, 71, 9, 0, 8, 84, 12, 11, 10, 5, 4, 10, 4, 10, 4, 1, 7, 21, 1, + 0, 0, 63, 63, 18, 57, 57, 47, 47, 17, 51, 17, 51, 1, 16,246, 50, 50,225, 50, 50, 50, 47, 94, 93, 93, 93, 51, 17, 51, 47, 51, +125,135, 4,196,196, 16,135,196,196, 1, 93, 49, 48, 19, 17, 51, 17, 55, 23, 7, 17, 35, 17, 7, 39,174,182,107, 78,185,182,106, + 78, 2,246, 3, 30,253, 89, 69,121,120,253, 63, 2, 74, 70,121,255,255, 0,199, 0, 0, 5, 14, 7,115, 2, 38, 0, 49, 0, 0, + 1, 7, 0,118, 0,242, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 85, 24, 30, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,174, 0, 0, 4, 18, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 0,118,111, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 92, 25, 31, + 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 59, 5, 14, 5,182, 2, 38, 0, 49, 0, 0, 1, 7, 2, 57, 0,217, + 0, 0, 0, 14,185, 0, 1,255,225,180, 24, 30, 10, 0, 37, 1, 43, 53,255,255, 0,174,254, 59, 4, 18, 4, 94, 2, 38, 0, 81, + 0, 0, 1, 6, 2, 57, 76, 0, 0, 14,185, 0, 1,255,222,180, 25, 31, 11, 23, 37, 1, 43, 53,255,255, 0,199, 0, 0, 5, 14, + 7,115, 2, 38, 0, 49, 0, 0, 1, 7, 1, 76, 0,156, 1, 82, 0, 19, 64, 11, 1, 29, 5, 38, 1, 0, 35, 24, 10, 0, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 18, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 1, 76, 12, 0, 0, 21,180, 1, + 30, 17, 38, 1,184,255,250,180, 36, 25, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,255, 0, 0, 4,161, 5,182, 0, 39, + 0, 81, 0,143, 0, 0, 1, 6, 2, 7,232, 0, 0, 41, 64, 29, 0, 24, 85, 39,239, 39, 1,191, 39, 1,159, 39, 1, 95, 39, 1, + 47, 39, 1, 39, 64, 8, 8, 72, 39, 64, 6, 6, 72, 43, 43, 93, 93, 93, 93, 93, 16,246, 52, 0, 0, 1, 0,199,254,123, 5, 14, + 5,182, 0, 37, 0, 74, 64, 42, 24, 12, 31, 90, 32, 4, 4, 21, 32,101, 39,176, 39, 1,143, 39, 1, 0, 39, 16, 39, 2, 23, 19, + 14, 20, 90, 21,100, 38, 31, 13, 22, 3, 21, 18, 24, 12, 18, 7, 95, 0, 0, 47,225, 63, 51, 63, 63, 51, 51, 1, 16,246,225, 50, + 50, 50, 93, 93, 93, 16,230, 17, 57, 47, 16,225, 50, 50, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 1, 35, 22, 23, + 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 38, 38, 53, 17, 51, 17, 20, 14, 2, 3,139, 51, 77, 27, 34, 78, 45, 37, 75, 61, 38, +253, 8, 8, 6, 4, 4, 5,172,213, 2,204, 7, 3, 4, 3, 5,174, 55,100,143,254,123, 13, 11,160, 9, 11, 19, 50, 88, 68, 4, +186, 77, 76, 65,142, 57,252,231, 5,182,251,117, 65, 65, 56,125, 52, 3, 32,250, 94,105,154,101, 49, 0, 0, 1, 0,174,254, 20, + 4, 18, 4, 94, 0, 40, 0, 58, 64, 34, 3, 3, 23, 12, 71, 36, 85, 42, 16, 42, 96, 42,128, 42, 3, 26, 22, 71, 23, 84, 41, 26, + 16, 80, 32, 16, 24, 15, 23, 21, 7, 80, 0, 27, 0, 63,225, 63, 63, 63,225, 51, 1, 16,246,225, 50, 93, 16,246,225, 17, 57, 47, + 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 19, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, + 22, 21, 3, 20, 14, 2, 2,238, 48, 63, 23, 26, 54, 35, 27, 46, 35, 19, 2,105,112, 81,110, 67, 29,182,148, 26, 10, 25, 69, 82, + 92, 48,183,185, 2, 34, 72,109,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 3,109,130,130, 52,102,148, 96,253,199, 4, 74,148, + 43, 63, 42, 20,191,210,252,149, 77,123, 87, 47,255,255, 0,125,255,236, 5,113, 6,193, 2, 38, 0, 50, 0, 0, 1, 7, 1, 77, + 0,188, 1, 82, 0, 19, 64, 11, 2, 42, 5, 38, 2, 0, 40, 41, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, + 4, 45, 5,111, 2, 38, 0, 82, 0, 0, 1, 6, 1, 77, 20, 0, 0, 19, 64, 11, 2, 34, 17, 38, 2, 0, 32, 33, 10, 0, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7, 64, 2, 38, 0, 50, 0, 0, 1, 7, 1, 78, 0,170, 1, 82, 0, 19, + 64, 11, 2, 45, 5, 38, 2, 1, 50, 40, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,238, 2, 38, + 0, 82, 0, 0, 1, 6, 1, 78, 0, 0, 0, 21,180, 2, 37, 17, 38, 2,184,255,255,180, 42, 32, 10, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 83, 0,236, 1, 82, 0, 23, 64, 13, 3, 2, + 52, 5, 38, 3, 2, 67, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, + 0, 82, 0, 0, 1, 6, 1, 83, 70, 0, 0, 23, 64, 13, 3, 2, 44, 17, 38, 3, 2, 69, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0, 0, 2, 0,125,255,236, 6,164, 5,205, 0, 25, 0, 42, 0, 91, 64, 54, 20, 22, 1, 22, 22, 0, 20, 24, 90, 39, + 39, 9, 18, 0,103, 44, 31, 44, 1, 31, 91, 9,102, 43, 23, 95, 79, 20, 1, 15, 20,175, 20, 2, 8, 20, 20, 25, 18, 95, 17, 3, + 26, 95, 14, 4, 36, 95, 4, 19, 25, 95, 0, 18, 0, 63,225, 63,225, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, + 93, 16,230, 50, 17, 57, 47,225, 50, 17, 57, 47, 93, 49, 48, 33, 33, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 23, + 33, 21, 33, 17, 33, 21, 33, 17, 33, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, 17, 38, 38, 6,164,253, 10, 43, 91, 48,163, +239,157, 76, 76,158,240,163, 98, 84, 2,244,253,194, 2, 23,253,233, 2, 62,252, 86,114,166,108, 52, 52,107,165,114, 52, 90, 38, + 38, 89, 9, 11,108,198, 1, 23,170,170, 1, 21,196,107, 23,164,254, 60,162,253,248, 4,133, 81,151,218,138,137,219,153, 81, 18, + 15, 4, 88, 16, 17, 0, 0, 3, 0,113,255,236, 6,225, 4, 94, 0, 42, 0, 54, 0, 63, 0,100, 64, 59, 19, 3, 63, 29, 72,208, + 49, 1, 49, 49, 11, 55, 72, 37, 28, 87, 65, 15, 65, 1,255, 65, 1, 64, 65, 1, 43, 72, 11, 86, 64, 29, 80, 27, 63, 43, 63, 2, + 15, 63, 1, 6, 63, 63, 46, 60, 52, 80, 22, 19, 16, 16, 32, 46, 80, 3, 0, 6, 22, 0, 63, 51, 51,225, 50, 63, 51, 51,225, 50, + 18, 57, 47, 94, 93, 93,225, 1, 16,246,225, 93, 93,113, 16,246, 50,225, 17, 57, 47, 93,225, 50, 57, 57, 49, 48, 5, 34, 38, 39, + 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, + 3, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 52, 46, 2, 35, 34, 6, 7, 5, 96,130,204, 65, 63,198,128,103,174,127, + 71, 67,124,179,111,121,195, 63, 60,185,117, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87,251,154,137, +154,150,139,140,151,154,135, 4,240, 27, 57, 88, 62,114,133, 11, 20,112,109,109,112, 76,145,213,137,136,211,145, 75,111,106,105, +112, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, 8, 2, 59,209,211,201,209,220,206,207, 98, 68,113, 80, 44,156, +149, 0,255,255, 0,199, 0, 0, 4,160, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 0,118, 0, 84, 1, 82, 0, 21,180, 2, 41, 5, + 38, 2,184,255,238,180, 29, 35, 2, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 3, 8, 6, 33, 2, 38, 0, 85, + 0, 0, 1, 6, 0,118,206, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 64, 23, 29, 14, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,199,254, 59, 4,160, 5,182, 2, 38, 0, 53, 0, 0, 1, 6, 2, 57,119, 0, 0, 14,185, 0, 2,255,182,180, 29, 35, 2, 13, + 37, 1, 43, 53,255,255, 0, 96,254, 59, 3, 8, 4, 94, 2, 38, 0, 85, 0, 0, 1, 7, 2, 57,254,241, 0, 0, 0, 14,185, 0, + 1,255, 8,180, 23, 29, 14, 3, 37, 1, 43, 53,255,255, 0,199, 0, 0, 4,160, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 1, 76, + 0, 14, 1, 82, 0, 21,180, 2, 34, 5, 38, 2,184,255,169,180, 40, 29, 2, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,114, + 0, 0, 3, 10, 6, 33, 2, 38, 0, 85, 0, 0, 1, 7, 1, 76,255,112, 0, 0, 0, 21,180, 1, 28, 17, 38, 1,184,255,227,180, + 34, 23, 14, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 0,118, + 0, 59, 1, 82, 0, 19, 64, 11, 1, 64, 5, 38, 1,112, 52, 58, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, + 3, 63, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 0,118,220, 0, 0, 19, 64, 11, 1, 66, 17, 38, 1, 93, 54, 60, 8, 0, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 1, 75,255,237, 1, 82, 0, 19, + 64, 11, 1, 52, 5, 38, 1, 34, 60, 52, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, 3, 63, 6, 33, 2, 38, + 0, 86, 0, 0, 1, 6, 1, 75,155, 0, 0, 19, 64, 11, 1, 54, 17, 38, 1, 28, 62, 54, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,104,254, 20, 3,201, 5,203, 2, 38, 0, 54, 0, 0, 1, 7, 0,122, 1, 53, 0, 0, 0, 14,185, 0, 1,255,250,180, + 58, 52, 8, 0, 37, 1, 43, 53,255,255, 0, 90,254, 20, 3, 63, 4, 94, 2, 38, 0, 86, 0, 0, 1, 7, 0,122, 0,240, 0, 0, + 0, 11,182, 1, 1, 60, 54, 8, 0, 37, 1, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, + 1, 76,255,230, 1, 82, 0, 19, 64, 11, 1, 57, 5, 38, 1, 27, 63, 52, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90, +255,236, 3, 63, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 76,151, 0, 0, 19, 64, 11, 1, 59, 17, 38, 1, 24, 65, 54, 8, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20,254, 59, 4, 18, 5,182, 2, 38, 0, 55, 0, 0, 1, 6, 2, 57,249, 0, 0, 14, +185, 0, 1,255,216,180, 8, 14, 3, 5, 37, 1, 43, 53,255,255, 0, 33,254, 59, 2,143, 5, 70, 2, 38, 0, 87, 0, 0, 1, 7, + 2, 57,255, 93, 0, 0, 0, 14,185, 0, 1,255,247,180, 30, 36, 18, 5, 37, 1, 43, 53,255,255, 0, 20, 0, 0, 4, 18, 7,115, + 2, 38, 0, 55, 0, 0, 1, 7, 1, 76,255,200, 1, 82, 0, 19, 64, 11, 1, 13, 5, 38, 1, 3, 19, 8, 3, 5, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 33,255,236, 2,232, 6, 20, 2, 38, 0, 87, 0, 0, 1, 6, 2, 56,111, 0, 0, 11,182, 1, 97, 36, + 36, 24, 24, 37, 1, 43, 53, 0, 0, 1, 0, 20, 0, 0, 4, 18, 5,182, 0, 15, 0,115, 64, 76, 31, 17, 1,224, 17, 1, 95, 17, +223, 17, 2, 32, 17, 48, 17, 64, 17, 3, 8,191, 5,255, 5, 2, 5, 5, 10, 6, 90, 1, 15, 1, 80, 2,240, 2, 2, 31, 2, 1, + 2, 2, 13,119, 1,135, 1,151, 1, 3, 49, 1, 1, 0, 1, 16, 1, 32, 1, 3, 7, 1, 10, 13, 96, 7, 0, 0, 3, 11, 18, 6, + 2, 95, 3, 3, 0, 63,225, 50, 63, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 93, 93, 51, 51, 47, 93, 93, 18, 57, 16,225, 50, 50, + 47, 93, 57, 93, 93, 93,113, 49, 48, 1, 17, 33, 53, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 1,182,254, 94, 3,254,254, + 95, 1, 39,254,217,187,254,215, 3, 51, 1,223,164,164,254, 33,149,253, 98, 2,158,149, 0, 1, 0, 33,255,236, 2,143, 5, 70, + 0, 37, 0,106,182, 20, 31, 1, 32, 28, 28, 5,184,255,192, 64, 55, 8, 11, 72, 5, 5, 39, 47, 39, 63, 39, 2, 31, 27, 35, 71, + 19, 15, 22, 31, 22, 2, 22, 24, 20, 0, 16, 16, 16,160, 16,176, 16,192, 16, 5, 7, 16, 17, 34, 79, 20, 31, 31, 11, 21, 30, 79, + 26, 24, 27, 15, 0, 80, 11, 22, 0, 63,225, 63, 51, 51,225, 50, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 51, 51,196, 93, 50,225, + 50, 50, 93, 17, 51, 47, 43, 51, 17, 51, 0, 93, 49, 48, 37, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 53, 35, 53, 51, 53, + 35, 53, 55, 55, 51, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 22, 1,250, 18, 45, 42, 35, 9, 13, 40, 48, 52, 25, 62,106, 77, 44, +139,139,155,155, 78,105, 1, 20,254,236, 1, 2,254,254, 63,129, 4, 6, 8, 3,138, 6, 12, 9, 5, 32, 78,133,101,251,138,248, + 81, 78,230,252,137,248,138,251, 97, 98,255,255, 0,184,255,236, 4,221, 7, 53, 2, 38, 0, 56, 0, 0, 1, 7, 1, 82, 0, 96, + 1, 82, 0, 21,180, 1, 32, 5, 38, 1,184,255,255,180, 33, 47, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, + 4, 8, 5,227, 2, 38, 0, 88, 0, 0, 1, 6, 1, 82,243, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 6, 36, 50, 12, 25, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 6,193, 2, 38, 0, 56, 0, 0, 1, 7, 1, 77, 0,143, 1, 82, 0, 21, +180, 1, 26, 5, 38, 1,184,255,255,180, 24, 25, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 5,111, + 2, 38, 0, 88, 0, 0, 1, 6, 1, 77, 33, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 5, 27, 28, 12, 25, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,184,255,236, 4,221, 7, 64, 2, 38, 0, 56, 0, 0, 1, 7, 1, 78, 0,125, 1, 82, 0, 19, 64, 11, 1, 29, + 5, 38, 1, 0, 34, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 5,238, 2, 38, 0, 88, 0, 0, + 1, 6, 1, 78, 12, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1, 4, 37, 27, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184, +255,236, 4,221, 7,217, 2, 38, 0, 56, 0, 0, 1, 7, 1, 80, 0,123, 1, 82, 0, 23, 64, 13, 2, 1, 29, 5, 38, 2, 1, 0, + 34, 24, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 8, 6,135, 2, 38, 0, 88, 0, 0, 1, 6, + 1, 80, 12, 0, 0, 23, 64, 13, 2, 1, 32, 17, 38, 2, 1, 5, 37, 27, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 83, 0,178, 1, 82, 0, 23, 64, 13, 2, 1, 36, 5, 38, 2, + 1, 54, 24, 44, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 14, 6, 33, 2, 38, 0, 88, 0, 0, + 1, 6, 1, 83, 80, 0, 0, 23, 64, 13, 2, 1, 39, 17, 38, 2, 1, 72, 27, 47, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,184,254, 66, 4,221, 5,184, 2, 38, 0, 56, 0, 0, 1, 7, 1, 81, 2, 25, 0, 0, 0, 11,182, 1, 13, 37, 30, 11, + 0, 37, 1, 43, 53, 0,255,255, 0,164,254, 66, 4, 22, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 1, 81, 2,184, 0, 0, 0, 11, +182, 1, 14, 33, 33, 26, 26, 37, 1, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 1, 75, + 1, 59, 1, 82, 0, 19, 64, 11, 1, 43, 5, 38, 1, 0, 51, 43, 30, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, + 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 7, 1, 75, 0,174, 0, 0, 0, 19, 64, 11, 1, 48, 17, 38, 1, 0, 56, 48, 17, 46, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 1, 75,255,208, 1, 82, + 0, 19, 64, 11, 1, 9, 5, 38, 1, 2, 17, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, + 2, 38, 0, 92, 0, 0, 1, 6, 1, 75,169, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 2, 43, 35, 0, 15, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106,255,206, 1, 82, 0, 23, 64, 13, 2, 1, + 18, 5, 38, 2, 1, 1, 9, 29, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7,115, 2, 38, + 0, 61, 0, 0, 1, 7, 0,118, 0, 57, 1, 82, 0, 19, 64, 11, 1, 22, 5, 38, 1, 94, 10, 16, 1, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0, 82, 0, 0, 3, 53, 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 0,118,214, 0, 0, 19, 64, 11, 1, 22, 17, 38, + 1, 96, 10, 16, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7, 55, 2, 38, 0, 61, 0, 0, 1, 7, + 1, 79, 1, 41, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 11, 10, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, + 0, 0, 3, 53, 5,229, 2, 38, 0, 93, 0, 0, 1, 7, 1, 79, 0,205, 0, 0, 0, 19, 64, 11, 1, 21, 17, 38, 1, 20, 10, 18, + 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7,115, 2, 38, 0, 61, 0, 0, 1, 7, 1, 76,255,224, + 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 6, 21, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3, 53, + 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 1, 76,134, 0, 0, 19, 64, 11, 1, 15, 17, 38, 1, 16, 21, 10, 1, 0, 37, 1, 43, 53, + 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 2,190, 6, 31, 0, 19, 0, 37, 64, 21, 9, 9, 21, 0, 21, 16, 21, 32, 21, 3, 19, 71, + 0, 84, 20, 13, 80, 6, 1, 0, 21, 0, 63, 63,225, 1, 16,246,225, 93, 17, 51, 47, 49, 48, 51, 17, 52, 62, 2, 51, 50, 22, 23, + 7, 38, 38, 35, 34, 14, 2, 21, 17,174, 45, 85,124, 78, 59, 99, 38, 47, 31, 72, 40, 40, 58, 39, 19, 4,176,107,141, 84, 35, 23, + 14,141, 11, 17, 19, 48, 83, 65,251, 78, 0, 1, 0,203,254, 20, 3,233, 5,203, 0, 43, 0, 74, 64, 42, 48, 45, 1, 41, 31, 31, + 1, 71, 18, 22, 18, 20, 20, 18, 10, 10, 0, 18, 16, 18, 48, 18, 64, 18, 4, 7, 18, 19, 0, 96, 22, 41, 41, 13, 35, 80, 28, 7, + 13, 80, 6, 27, 0, 63,225, 63,225, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 51, 47, 17, 51, 47, 17, 51, 16,225, 50, 47, 50, 93, + 49, 48, 1, 17, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 7, + 38, 38, 35, 34, 14, 2, 21, 21, 51, 21, 2,143, 45, 85,123, 78, 32, 61, 28, 26, 57, 31, 40, 59, 38, 19,194,194, 45, 85,124, 78, + 59, 99, 38, 47, 31, 72, 40, 40, 58, 39, 19,246, 3, 68,252, 63,107,141, 84, 35, 9, 6,153, 8, 10, 19, 48, 83, 65, 3,195, 75, + 68,137,107,141, 84, 35, 23, 14,141, 11, 17, 19, 48, 83, 65,145,137, 0, 0, 4, 0, 0, 0, 0, 4,221, 7,170, 0, 22, 0, 35, + 0, 49, 0, 62, 1, 1, 64, 94,137, 41, 1, 41,190, 42, 42, 48, 49, 49, 29, 56,131, 15, 13, 31, 13, 2, 16, 13, 32, 13, 2, 13, + 13, 86, 35,102, 35, 2, 35, 7, 8, 89, 23,105, 23, 2, 6, 23, 5, 29, 50,131, 15, 0, 31, 0,111, 0, 3, 0, 0,214, 10, 1, + 55, 10, 71, 10, 87, 10,199, 10, 4, 10,217, 3, 1, 56, 3, 72, 3, 88, 3,200, 3, 4, 3, 29, 29, 9, 5, 16, 4, 1,128, 4, +144, 4,208, 4, 3, 4,184,255,192, 64, 24, 6, 10, 72, 4, 16, 4, 4, 64, 15, 64, 31, 64, 47, 64,143, 64,159, 64,223, 64, 6, + 7, 8, 9,184,255,240, 64, 49, 9, 7, 95, 35, 29, 32, 10, 14, 72, 29, 10, 3, 60, 25, 53, 1, 53,140, 18, 16, 60, 1,143, 18, +239, 18, 2, 96, 18, 1, 16, 49, 32, 49, 2, 35, 60, 18, 49, 49, 18, 60, 35, 4, 4, 41, 9, 4, 18, 0, 63, 51, 47, 18, 23, 57, + 47, 47, 47, 47, 93, 93, 93, 93, 16,225, 93, 17, 51, 51, 51, 43, 16,225, 1, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, + 18, 57, 61, 47, 51, 93, 93, 51, 93, 93, 51, 24, 47, 93,225, 17, 18, 57, 57, 93, 18, 57, 57, 93, 51, 47, 93,113,225, 17, 51, 47, + 51, 51, 47,237, 93, 49, 48, 1, 20, 6, 7, 1, 35, 3, 33, 3, 35, 1, 38, 38, 53, 52, 62, 2, 51, 50, 30, 2, 3, 3, 46, 3, + 39, 14, 3, 7, 3, 19, 62, 3, 55, 51, 21, 14, 3, 7, 35, 19, 52, 38, 35, 34, 6, 21, 20, 22, 23, 51, 50, 54, 3, 80, 60, 51, + 1,252,190,154,253,211,156,188, 1,248, 51, 58, 32, 59, 82, 50, 49, 84, 62, 35, 12,148, 6, 17, 18, 18, 8, 7, 18, 18, 17, 6, +145,133, 21, 48, 47, 42, 16,219, 16, 63, 77, 81, 35,121,188, 63, 50, 49, 63, 51, 49, 12, 50, 63, 5,156, 70, 96, 25,251, 35, 1, +135,254,121, 4,219, 25, 96, 70, 51, 79, 56, 29, 29, 55, 79,252, 95, 1,125, 16, 46, 54, 59, 28, 28, 60, 54, 46, 15,254,131, 4, +139, 24, 61, 65, 64, 28, 16, 22, 65, 71, 66, 22,254,246, 52, 60, 60, 52, 51, 59, 3, 60, 0, 5, 0, 94,255,236, 3,156, 7,170, + 0, 13, 0, 49, 0, 64, 0, 84, 0, 96, 0,156, 64, 35, 85,131, 15, 65, 31, 65, 47, 65, 3, 65, 65, 91,131, 75, 6, 13, 75, 13, + 75, 13, 26, 30, 15, 55, 71, 49, 85, 98, 63, 98, 1, 62, 72, 26, 40,184,255,208, 64, 58, 13, 17, 72, 40, 16, 9, 12, 72, 40, 40, + 26, 86, 97, 88,140, 80, 80, 13, 96, 13,112, 13, 3, 13, 13, 80, 80, 5, 94,140, 64, 70, 80, 70, 2, 70, 70, 39, 36, 80, 43, 56, + 82, 30, 30, 43, 16, 50, 80, 15, 21, 22, 14, 21, 15, 5, 1, 5, 0, 47, 93, 63, 63, 51,225, 63, 57, 47,225, 16,225, 50, 51, 47, + 93,225, 17, 57, 47, 51, 47, 93, 16,225, 1, 16,230, 50, 47, 43, 43, 16,225, 93, 16,246,225, 50, 50, 17, 57, 57, 47, 47, 16,205, + 16,225, 51, 47, 93,225, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, + 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 17, 37, 50, 62, 2, 53, 53, 7, 14, 3, 21, 20, 22, 1, 20, 14, + 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,199, 21, 48, 47, 42, 16, +219, 16, 63, 77, 82, 35,120, 1, 82, 37, 8, 33, 66, 78, 96, 63, 69,116, 85, 48,231,236,184, 29, 55, 81, 52, 83,143, 66, 64, 74, +182,100,102,149, 97, 48,254, 47, 61,104, 76, 43,143, 90,122, 73, 32, 97, 1,134, 35, 61, 84, 49, 50, 82, 59, 33, 33, 59, 82, 50, + 48, 84, 62, 35,117, 63, 49, 50, 63, 57, 56, 49, 63, 6,184, 24, 61, 65, 64, 28, 16, 22, 65, 71, 66, 22,249, 92,152, 45, 65, 42, + 20, 39, 81,123, 84,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34,137, 40, 56, 41, 89,138, 98,253, 16,127, 38, 77,117, 79, 99, 7, + 4, 32, 57, 81, 51, 92, 86, 5, 8, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, +255,255,255,254, 0, 0, 6, 86, 7,115, 2, 38, 0,136, 0, 0, 1, 7, 0,118, 2, 37, 1, 82, 0, 21,180, 2, 32, 5, 38, 2, +184, 1, 72,180, 20, 26, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 6, 68, 6, 33, 2, 38, 0,168, 0, 0, + 1, 7, 0,118, 1,117, 0, 0, 0, 19, 64, 11, 3, 93, 17, 38, 3,113, 81, 87, 0, 28, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,125,255,180, 5,113, 7,115, 2, 38, 0,154, 0, 0, 1, 7, 0,118, 1, 2, 1, 82, 0, 19, 64, 11, 3, 62, 5, 38, 3, 88, + 50, 56, 17, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,180, 4, 47, 6, 33, 2, 38, 0,186, 0, 0, 1, 6, 0,118, + 80, 0, 0, 19, 64, 11, 3, 58, 17, 38, 3, 76, 46, 52, 13, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,104,254, 59, 3,201, + 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 2, 57, 0, 0, 0, 14,185, 0, 1,255,218,180, 52, 58, 8, 0, 37, 1, 43, 53,255,255, + 0, 90,254, 59, 3, 63, 4, 94, 2, 38, 0, 86, 0, 0, 1, 6, 2, 57,187, 0, 0, 14,185, 0, 1,255,225,180, 54, 60, 8, 0, + 37, 1, 43, 53, 0, 1, 1, 2, 4,217, 3,154, 6, 33, 0, 20, 0, 37, 64, 17, 15, 14, 4, 4, 0,192, 8, 4, 14,128, 0, 15, + 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 50, 1, 47, 26,204, 57, 61, 47, 51, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, 35, + 53, 62, 3, 55, 51, 30, 3, 23, 3,154,121, 51,108, 52, 54,106, 51,121, 26, 68, 67, 59, 16,192, 16, 59, 67, 69, 25, 4,217, 34, + 97, 55, 55, 97, 34, 27, 29, 76, 81, 81, 34, 34, 81, 81, 76, 29, 0, 1, 1, 2, 4,217, 3,154, 6, 33, 0, 20, 0, 37, 64, 17, + 6, 5, 16, 16, 0,192, 11, 19, 13,128, 16, 15, 6, 95, 6, 2, 6, 0, 47, 93, 51, 26,205, 50, 1, 47, 26,204, 57, 61, 47, 51, + 51, 49, 48, 1, 14, 3, 7, 35, 46, 3, 39, 53, 51, 22, 22, 23, 54, 54, 55, 51, 3,154, 25, 69, 67, 59, 16,192, 16, 59, 67, 68, + 26,121, 51,106, 54, 52,108, 51,121, 6, 6, 29, 76, 81, 80, 35, 35, 80, 81, 76, 29, 27, 34, 97, 56, 56, 97, 34, 0, 1, 1, 27, + 4,217, 3, 90, 5,111, 0, 3, 0, 21, 64, 10, 1, 0, 0,143, 15, 3, 95, 3, 2, 3, 0, 47, 93,225, 1, 47,205, 49, 48, 1, + 33, 21, 33, 1, 27, 2, 63,253,193, 5,111,150, 0, 1, 1, 33, 4,217, 3,123, 5,238, 0, 21, 0, 47, 64, 28, 21,131,255, 0, + 1, 0,192, 11,131, 10, 0,127, 10,143, 10,159, 10, 3, 10,128, 16,143, 15, 5, 95, 5, 2, 5, 0, 47, 93,225, 26,205, 93, 50, + 1, 47,225, 26,220, 93,225, 49, 48, 1, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,123, 4, 44, 77,109, 71, + 73,109, 73, 39, 3,108, 4, 28, 48, 67, 44, 36, 65, 51, 34, 4, 5,238, 61,101, 74, 41, 39, 73,102, 63, 43, 50, 25, 7, 9, 27, + 49, 40, 0, 1, 0,160, 5, 0, 1,117, 5,229, 0, 13, 0, 28, 64, 16, 8,135, 0, 3,145,159, 11,207, 11,239, 11, 3, 48, 11, + 1, 11, 0, 47, 93, 93,229, 1, 47,225, 49, 48, 19, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38,160, 61, 45, 22, 39, 29, 17, + 63, 44, 45, 61, 5,115, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 0, 2, 1,109, 4,217, 3, 49, 6,135, 0, 19, 0, 31, 0, 64, + 64, 45, 20,131, 15, 0, 63, 0, 79, 0, 95, 0, 4, 0, 26,131, 48, 10, 1, 10, 23,140, 15, 15, 31, 15, 63, 15, 79, 15, 95, 15, +175, 15,255, 15, 7, 6, 15, 29,140, 15, 5, 95, 5, 2, 5, 0, 47, 93,225,212, 94, 93,225, 1, 47, 93,225,212, 93,225, 49, 48, + 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 3, 49, 35, 61, + 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 35,117, 63, 49, 50, 63, 57, 56, 49, 63, 5,178, 51, 81, 56, 29, 29, 56, 79, + 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 1, 0, 31,254, 66, 1, 94, 0, 0, 0, 20, 0, 22, 64, 9, + 6,128, 0,132, 13, 18, 3,142, 10, 0, 47,225, 47, 1, 47,225, 26,204, 49, 48, 23, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, + 38, 53, 52, 62, 2, 55, 51, 6,180, 52, 34, 25, 45, 14, 26, 64, 29,100,100, 30, 47, 56, 26,129,139,238, 45, 43, 5, 4,113, 8, + 8,104, 90, 42, 75, 64, 52, 19,133, 0, 0, 1, 1, 2, 4,217, 3,209, 5,227, 0, 27, 0, 56, 64, 35, 15, 23, 47, 23, 2, 23, + 0, 9, 32, 9, 2, 7, 9, 22, 5,143, 14, 64, 16, 19, 72, 14, 64, 7, 11, 72, 14, 14, 19,143, 9, 15, 0, 1, 0, 0, 47, 93, + 50,225, 51, 47, 43, 43,225, 51, 1, 47, 94, 93,204, 93, 49, 48, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, + 50, 54, 55, 51, 14, 3, 2,254, 40, 79, 76, 70, 32, 45, 48, 14,104, 5, 33, 53, 74, 46, 42, 81, 76, 69, 29, 45, 46, 15,105, 5, + 33, 53, 74, 4,219, 35, 43, 35, 53, 62, 60, 98, 69, 37, 35, 42, 35, 52, 62, 60, 97, 69, 38, 0, 0, 2, 0,223, 4,217, 3,190, + 6, 33, 0, 13, 0, 27, 0, 45, 64, 25, 20, 14, 14, 7, 64, 80, 0, 1, 63, 0, 79, 0, 2, 0, 19, 5,146,128, 27, 15, 12, 95, + 12, 2, 12, 0, 47, 93, 51, 26,237, 50, 1, 47, 93, 93, 26,205, 57, 47,205, 49, 48, 19, 62, 3, 55, 51, 21, 14, 3, 7, 35, 37, + 62, 3, 55, 51, 21, 14, 3, 7, 35,223, 22, 47, 47, 42, 16,199, 16, 63, 77, 81, 35,101, 1,107, 21, 48, 47, 42, 16,198, 16, 63, + 77, 81, 35,100, 4,244, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 27, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 0, 0, 1, + 1,248, 4,217, 3, 4, 6, 33, 0, 13, 0, 39, 64, 22, 5, 16, 12, 17, 72, 5, 6, 64, 12, 0, 0, 1, 0, 5,146,128, 15, 12, + 95, 12, 2, 12, 0, 47, 93, 26,237, 1, 47, 93, 51, 26,205, 50, 43, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,248, 10, + 20, 19, 16, 4,199, 6, 33, 45, 52, 24,108, 4,244, 30, 77, 81, 80, 33, 21, 24, 78, 87, 86, 32, 0, 3, 1, 20, 5, 12, 3,137, + 6,180, 0, 13, 0, 27, 0, 41, 0,102, 64, 25, 28,132, 15, 36, 31, 36, 2, 15, 36, 31, 36,207, 36, 3, 36, 64, 9, 12, 72, 36, + 36, 13, 22,132, 14,184,255,192, 64, 39, 9, 13, 72, 14, 14, 5, 16, 12, 17, 72, 5, 6, 12, 13, 5,146, 12, 12, 31, 17,145, 39, +255, 25, 1, 96, 25,176, 25,208, 25, 3, 15, 25, 31, 25, 2, 6, 25, 0, 47, 94, 93, 93, 93, 51,229, 50, 57, 47,237, 1, 47, 51, +205, 50, 43, 51, 47, 43,225, 17, 51, 47, 43, 93,113,225, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 39, 52, 54, 51, 50, 30, + 2, 21, 20, 6, 35, 34, 38, 37, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 1,254, 11, 25, 24, 22, 8,207, 18, 48, 56, 61, + 32, 82,234, 56, 41, 19, 35, 26, 16, 58, 38, 41, 56, 1,181, 56, 40, 19, 35, 26, 16, 58, 38, 40, 56, 5,135, 30, 75, 79, 81, 36, + 20, 32, 77, 80, 81, 37, 6, 54, 48, 12, 25, 38, 27, 53, 50, 50, 53, 54, 48, 12, 25, 38, 27, 53, 50, 50,255,255,255,233, 0, 0, + 4,221, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 84,253,241,255,151, 0, 24,182, 2, 26, 3, 2, 48, 34, 1,184,255,233,180, + 34, 34, 4, 4, 37, 1, 43, 93, 53, 0, 63, 53, 0, 1, 0,147, 2, 72, 1,145, 3, 94, 0, 19, 0, 51, 64, 26, 16, 21,128, 21, +144, 21,160, 21, 4, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, + 15, 0, 47,229, 1, 47, 43, 93, 93,237, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, + 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2,211, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, +255,255,255,231, 0, 0, 4, 77, 5,184, 0, 39, 0, 40, 0,143, 0, 0, 1, 7, 1, 84,253,239,255,151, 0, 46,180, 1, 17, 3, + 1, 18,184,255,192,178, 8, 15, 72,184,255,157, 64, 15, 18, 18, 2, 2, 37, 0, 0,103, 27,191, 27, 1, 15, 27, 1, 1, 93, 93, + 16,254, 52, 1, 43, 43, 53, 0, 63, 53,255,255,255,231, 0, 0, 5, 80, 5,184, 0, 38, 0, 43,123, 0, 1, 7, 1, 84,253,239, +255,151, 0, 49,180, 1, 17, 3, 1, 18,184,255,192,178, 8, 17, 72,184,255,177, 64, 18, 18, 18, 6, 6, 37, 0, 0,101,111, 27, + 1, 47, 27, 1, 16, 27, 1, 27, 1, 16, 93, 93, 93,254, 52, 43, 43, 53, 0, 63, 53, 0,255,255,255,231, 0, 0, 3, 96, 5,184, + 0, 39, 0, 44, 0,252, 0, 0, 1, 7, 1, 84,253,239,255,151, 0,102, 64, 22, 1, 17, 3, 1,192, 18, 1,160, 18, 1, 48, 18, + 1, 32, 18, 1, 16, 18, 1, 0, 18, 1,184,255,165, 64, 47, 18, 18, 6, 6, 37, 0,240, 0, 1,208, 0, 1,192, 0, 1,175, 0, + 1,112, 0, 1, 96, 0, 1, 80, 0, 1, 64, 0, 1, 63, 0, 1, 0, 32, 27, 1, 27, 64, 7, 7, 72, 27, 64, 7, 9, 72, 1, 43, + 43, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 43, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53,255,255,255,231,255,236, 5,195, + 5,205, 0, 38, 0, 50, 82, 0, 1, 7, 1, 84,253,239,255,151, 0, 71, 64, 48, 2, 45, 3, 2,160, 46, 1,128, 46, 1,112, 46, + 1, 80, 46, 1, 32, 46, 1, 16, 46, 1, 0, 46, 1, 36, 46, 46, 10, 10, 37, 1, 0, 80, 0, 1, 80, 0, 1, 0,103,191, 55, 1, + 15, 55, 1, 55, 1, 16, 93, 93,254, 93, 93, 52, 52, 43, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,231, 0, 0, + 5, 84, 5,184, 0, 39, 0, 60, 1, 29, 0, 0, 1, 7, 1, 84,253,239,255,151, 0, 75,180, 1, 14, 3, 1, 15,184,255,192,182, + 22, 23, 72,160, 15, 1, 15,184,255,192,178, 9, 17, 72,184,255,214, 64, 28, 15, 15, 7, 7, 37, 0,192, 5, 1,176, 5, 1,127, + 5, 1, 32, 5, 1, 5, 63, 24, 1, 47, 24, 1, 15, 24, 1, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 43, 43, 93, 43, 53, 0, 63, + 53, 0,255,255,255,231, 0, 0, 6, 0, 5,205, 0, 38, 1,118, 90, 0, 1, 7, 1, 84,253,239,255,151, 0, 53, 64, 35, 1, 53, + 3, 1, 32, 54, 1, 16, 54, 1, 0, 54, 1, 22, 54, 54, 19, 19, 37, 0, 80, 29, 1, 80, 29, 1, 29,103,191, 63, 1, 15, 63, 1, + 63, 1, 16, 93, 93,254, 93, 93, 52, 43, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,228,255,236, 2,119, 6,180, 2, 38, 1,134, + 0, 0, 1, 7, 1, 85,254,208, 0, 0, 0, 24, 64, 15, 3, 2, 1,192, 36, 1, 64, 36, 1, 32, 36, 58, 21, 0, 37, 1, 43, 93, + 93, 53, 53, 53,255,255, 0, 0, 0, 0, 4,221, 5,188, 2, 6, 0, 36, 0, 0,255,255, 0,199, 0, 0, 4,135, 5,182, 2, 6, + 0, 37, 0, 0, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 5, 0, 67, 64, 10,196, 0,244, 0, 2,176, 0, 1, 2, 0,184,255, +192, 64, 31, 8, 19, 72, 0, 0, 7, 15, 7, 47, 7, 79, 7,111, 7, 4, 7, 64, 17, 24, 72, 3, 90, 4,100, 6, 2, 95, 5, 3, + 3, 18, 0, 63, 63,225, 1, 16,246,225, 43, 93, 17, 51, 47, 43, 95, 93, 93, 49, 48, 1, 21, 33, 17, 35, 17, 3,190,253,195,186, + 5,182,166,250,240, 5,182, 0, 0, 2, 0, 37, 0, 0, 4,104, 5,182, 0, 5, 0, 14, 0, 88, 64, 17, 5, 4, 6, 6, 2, 11, + 91, 96, 1,112, 1,176, 1,240, 1, 4, 1,184,255,192, 64, 39, 6, 10, 72, 1, 1, 16, 47, 16, 95, 16,111, 16,127, 16,159, 16, +191, 16, 6, 16, 64, 6, 9, 72, 10, 91, 2, 6, 32, 10, 17, 72, 6, 4, 3, 10, 95, 2, 18, 0, 63,225, 63, 51, 43, 1, 47,225, + 43, 93, 17, 51, 47, 43, 93,225, 18, 57, 61, 47, 51, 51, 49, 48, 37, 21, 33, 53, 1, 51, 7, 6, 6, 7, 3, 33, 3, 38, 38, 4, +104,251,189, 1,194,187, 94, 17, 42, 29,254, 2,174,252, 31, 46,125,125,133, 5, 49,205, 74,168, 91,253, 10, 2,240, 97,168, 0, +255,255, 0,199, 0, 0, 3,190, 5,182, 2, 6, 0, 40, 0, 0,255,255, 0, 82, 0, 0, 3,254, 5,182, 2, 6, 0, 61, 0, 0, +255,255, 0,199, 0, 0, 4,213, 5,182, 2, 6, 0, 43, 0, 0, 0, 3, 0,125,255,236, 5,113, 5,205, 0, 3, 0, 23, 0, 43, + 0, 83, 64, 52, 0, 1, 0, 1, 14, 34, 91, 4,103, 45,208, 45, 1,207, 45, 1,128, 45, 1, 63, 45,111, 45, 2, 24, 91, 14,102, + 44, 3, 96, 15, 0,175, 0,223, 0,255, 0, 4, 8, 0, 0, 29, 39, 95, 19, 4, 29, 95, 9, 19, 0, 63,225, 63,225, 18, 57, 47, + 94, 93,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 18, 57, 57, 47, 47, 49, 48, 1, 33, 21, 33, 37, 20, 2, 6, 6, 35, 34, + 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 1,236, 2, + 22,253,234, 3,133, 81,160,237,155,163,239,157, 76, 76,158,240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50, +106,164,114,114,166,108, 52, 3, 57,161, 69,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137, +219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218,255,255, 0, 82, 0, 0, 2,100, 5,182, 2, 6, 0, 44, 0, 0,255,255, + 0,199, 0, 0, 4,162, 5,182, 2, 6, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 4,139, 5,182, 0, 12, 0, 95, 64, 28, 47, 14, +239, 14,255, 14, 3, 14, 64, 18, 21, 72, 14, 64, 13, 16, 72, 14, 64, 6, 9, 72, 12, 11, 5, 5, 9, 10,184,255,240, 64, 34, 10, + 1, 47, 0, 79, 0, 95, 0,159, 0,175, 0,207, 0,239, 0, 7, 16, 0, 1, 0, 16, 0, 5, 32, 10, 14, 72, 5, 11, 3, 10, 0, + 18, 0, 63, 50, 63, 51, 43, 1, 47, 56, 93, 93, 50, 47, 56, 51, 57, 61, 47, 51, 51, 43, 43, 43, 93, 49, 48, 33, 35, 1, 38, 38, + 39, 6, 6, 7, 1, 35, 1, 51, 4,139,198,254,219, 31, 46, 15, 17, 42, 29,254,217,197, 1,231,187, 3,154, 97,168, 75, 75,168, + 91,252, 96, 5,182, 0,255,255, 0,199, 0, 0, 6, 47, 5,182, 2, 6, 0, 48, 0, 0,255,255, 0,199, 0, 0, 5, 14, 5,182, + 2, 6, 0, 49, 0, 0, 0, 3, 0, 82, 0, 0, 3,238, 5,182, 0, 3, 0, 7, 0, 11, 0, 99, 64, 62, 20, 0, 1, 27, 1, 1, + 0, 1, 0, 1, 11, 6, 6, 0, 8, 1,192, 8, 1, 63, 8, 1, 8, 13, 79, 13,111, 13, 2, 48, 13, 1, 7, 7,112, 11,128, 11, + 2, 79, 11, 1, 11, 3, 95, 15, 0,175, 0, 2, 8, 0, 0, 4, 11, 95, 10, 18, 7, 95, 4, 3, 0, 63,225, 63,225, 17, 57, 47, + 94, 93,225, 1, 47, 93, 93, 51, 47, 93, 93, 16,206, 93, 93,113, 50, 47, 17, 57, 57, 47, 47, 93, 93, 49, 48, 19, 33, 21, 33, 3, + 33, 21, 33, 1, 21, 33, 53,205, 2,166,253, 90, 82, 3, 74,252,182, 3,115,252,100, 3, 78,162, 3, 10,164,251,146,164,164, 0, +255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 0, 50, 0, 0, 0, 1, 0,199, 0, 0, 4,193, 5,182, 0, 7, 0, 49, 64, 30, + 1, 90, 0,101, 9,176, 9, 1,111, 9,159, 9,175, 9, 3, 16, 9, 1, 4, 90, 5,100, 8, 3, 95, 6, 3, 5, 0, 18, 0, 63, + 50, 63,225, 1, 16,246,225, 93, 93, 93, 16,246,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 4,193,187,253,123,186, 3,250, 5, + 18,250,238, 5,182, 0,255,255, 0,199, 0, 0, 4, 51, 5,182, 2, 6, 0, 51, 0, 0, 0, 1, 0, 78, 0, 0, 4, 18, 5,182, + 0, 11, 0, 90, 64, 13, 8, 91, 6, 32, 20, 23, 72, 2, 6, 2, 6, 1, 10,184,255,192, 64, 38, 6, 21, 72, 10, 10, 13, 15, 13, + 47, 13,111, 13,143, 13, 4, 6, 7, 9, 91, 3, 47, 1, 63, 1, 2, 1, 8, 2, 2, 9, 7, 95, 4, 3, 9, 95, 0, 18, 0, 63, +225, 63,225, 18, 57, 61, 47, 51, 1, 24, 47, 93, 51,225, 50, 94, 93, 17, 51, 47, 43, 18, 57, 57, 47, 47, 43,225, 49, 48, 51, 53, + 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 78, 1,158,254,110, 3,125,253, 88, 1,133,254,103, 2,247,152, 2,102, 2, 37,147,164, +253,238,253,164,164, 0,255,255, 0, 20, 0, 0, 4, 18, 5,182, 2, 6, 0, 55, 0, 0,255,255, 0, 0, 0, 0, 4, 55, 5,182, + 2, 6, 0, 60, 0, 0, 0, 3, 0,104,255,236, 5,186, 5,203, 0, 33, 0, 46, 0, 59, 0,129, 64, 80, 34, 2,103, 17, 1, 17, + 90, 59, 33,154, 18, 1,135, 18, 1,122, 18, 1, 18, 18, 27, 40, 91, 8,103, 61, 47, 61, 1, 0, 61, 1,208, 61, 1,175, 61,191, + 61, 2,144, 61, 1, 95, 61, 1, 48, 61, 1, 15, 61, 31, 61, 2, 6, 53, 91, 27,102, 60, 34, 59, 96, 19, 16, 19, 46, 47, 96, 33, + 2, 33, 19, 33, 19, 33, 17, 19, 0, 4, 0, 63, 63, 57, 57, 47, 47, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 16,246,225, 94, + 93, 93, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 93, 51, 51,225, 93, 50, 50, 49, 48, 1, 51, 21, 51, 50, 30, 2, + 21, 20, 14, 4, 35, 35, 21, 35, 53, 35, 34, 46, 4, 53, 52, 62, 2, 51, 51, 19, 51, 50, 62, 2, 53, 52, 46, 2, 43, 3, 34, 14, + 2, 21, 20, 30, 2, 51, 51, 2,180,187, 73,134,194,126, 60, 24, 52, 84,120,159,101, 47,187, 47,101,159,120, 84, 53, 24, 61,126, +194,133, 74,187, 26, 93,139, 91, 46, 41, 83,127, 87, 57,187, 57, 87,127, 84, 40, 46, 91,139, 93, 26, 5,203,180, 94,153,196,102, + 61,129,123,110, 82, 48,225,225, 48, 82,110,123,129, 61,102,196,153, 94,252, 83, 59,105,148, 88, 78,139,104, 60, 60,104,139, 78, + 88,148,105, 59,255,255, 0, 0, 0, 0, 4, 96, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0,104, 0, 0, 5,186, 5,182, 0, 37, + 0,112, 64, 71, 31,103, 9, 1, 9, 90, 28,154, 10, 1,135, 10, 1,122, 10, 1, 10, 10, 19, 35, 91, 0,103, 39, 47, 39, 1, 0, + 39, 1,208, 39, 1,175, 39,191, 39, 2,144, 39, 1, 95, 39, 1, 48, 39, 1, 15, 39, 31, 39, 2, 6, 22, 91, 19,102, 38, 31, 28, + 96, 8, 11, 11, 9, 36, 29, 20, 3, 9, 18, 0, 63, 63, 51, 51, 18, 57, 47, 51,225, 50, 1, 16,246,225, 94, 93, 93, 93, 93, 93, + 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 93, 51,225, 93, 50, 49, 48, 1, 20, 14, 4, 35, 35, 17, 35, 17, 35, 34, 46, 4, 53, + 17, 51, 17, 20, 30, 2, 51, 51, 17, 51, 17, 51, 50, 54, 53, 17, 51, 5,186, 24, 52, 84,120,159,101, 47,187, 47,101,159,120, 84, + 53, 24,193, 46, 91,139, 93, 26,187, 26,186,183,192, 3,215, 61,127,119,106, 78, 46,254, 66, 1,190, 45, 78,104,119,126, 61, 1, +227,254, 33, 88,141, 98, 52, 3, 90,252,166,198,177, 1,227, 0, 0, 1, 0, 78, 0, 0, 5,166, 5,205, 0, 47, 0,124, 64, 81, + 14, 91, 11, 34, 91, 37, 32, 11, 48, 11, 2, 4, 11, 1, 47, 37, 63, 37,223, 37,239, 37, 4, 11, 37, 1, 7, 11, 37, 11, 37, 19, + 43, 91, 6, 35, 22, 35, 2, 35, 29,103, 49,208, 49, 1,207, 49, 1,128, 49, 1, 63, 49,111, 49, 2, 9, 13, 25, 13, 2, 8, 13, + 5, 91, 19,102, 48, 0, 95, 24, 4, 38, 34, 10, 13, 95, 37, 12, 18, 0, 63, 51,225, 50, 50, 50, 63,225, 1, 16,246,225, 51, 94, + 93, 93, 93, 93, 93, 16,246, 50, 93,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 1, 34, 14, 2, 21, 20, + 30, 2, 23, 21, 33, 53, 33, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 33, 21, 33, 53, 62, 3, 53, 52, 46, 2, + 2,250,114,164,106, 50, 35, 81,131, 95,253,176, 1, 98, 64,111, 80, 46, 81,160,236,154,155,235,160, 81, 46, 80,110, 65, 1, 98, +253,176, 95,131, 81, 35, 50,106,164, 5, 41, 68,129,186,117,100,187,171,151, 65,147,164, 48,135,168,199,111,150,244,172, 94, 94, +172,244,150,111,199,168,135, 48,164,147, 65,151,171,187,100,117,186,129, 68, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, + 0, 44, 0, 0, 1, 7, 0,106,255, 13, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106,255,206, 1, 82, 0, 23, + 64, 13, 2, 1, 18, 5, 38, 2, 1, 1, 9, 29, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4,145, + 6, 33, 2, 38, 1,126, 0, 0, 1, 6, 1, 84, 25, 0, 0, 19, 64, 11, 2, 74, 17, 38, 2, 22, 62, 68, 22, 47, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 90,255,236, 3, 92, 6, 33, 2, 38, 1,130, 0, 0, 1, 6, 1, 84,202, 0, 0, 19, 64, 11, 1, 70, + 17, 38, 1,109, 58, 64, 24, 45, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174,254, 20, 4, 18, 6, 33, 2, 38, 1,132, 0, 0, + 1, 6, 1, 84, 68, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 98, 25, 31, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164, +255,236, 2,119, 6, 33, 2, 38, 1,134, 0, 0, 1, 7, 1, 84,254,206, 0, 0, 0, 21,180, 1, 34, 17, 38, 1,184,255,253,180, + 22, 34, 21, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 61, 6,180, 2, 38, 1,146, 0, 0, 1, 6, 1, 85, + 16, 0, 0, 18,178, 3, 2, 1,184,255,238,180, 44, 66, 5, 27, 37, 1, 43, 53, 53, 53, 0, 2, 0,113,255,236, 4,145, 4, 94, + 0, 16, 0, 61, 0, 56, 64, 30, 56, 30, 5, 71, 47, 40, 63, 16, 63, 1, 14, 72, 22, 86, 62, 34, 15, 30, 11, 80, 27, 15, 56, 47, + 44, 0, 80, 51, 17, 22, 0, 63, 51,225, 50, 50, 50, 63,225, 51, 63, 1, 16,246,225, 93, 16,212, 50,225, 50, 50, 49, 48, 37, 50, + 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 23, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 51, 54, 54, 55, 51, 14, 3, + 21, 17, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 35, 14, 3, 2, 53, 76,105, 65, 31, 2, 27, 65,108, 81,135,127, +127,102, 93,154,110, 60, 61,113,162,100,112,144, 49, 12, 10, 33, 25,143, 11, 19, 13, 8, 50, 34, 14, 37, 8, 15, 65, 34, 38, 63, + 50, 36, 12, 12, 22, 59, 77, 96,131, 47, 98,152,104, 15,101,157,107, 55,218,204,209,205,151, 72,143,212,140,141,213,144, 73, 83, + 85, 35, 82, 31, 33,104,121,126, 55,254, 93, 60, 51, 7, 3,133, 9, 17, 16, 39, 64, 48, 34, 61, 46, 26, 0, 2, 0,174,254, 20, + 4,117, 6, 31, 0, 27, 0, 61, 0, 89, 64, 52, 57, 72, 5, 8, 5, 31, 51, 47, 51, 2, 51, 5, 51, 5, 21, 44, 71, 12, 87, 63, + 32, 63, 48, 63, 2, 34, 21, 71, 22, 84, 62, 21, 27, 8, 50, 80, 15, 51, 1, 8, 51, 51, 0, 34, 39, 80, 17, 22, 28, 80, 0, 1, + 0, 63,225, 63,225, 50, 17, 57, 47, 94, 93,225, 57, 63, 1, 16,246,225, 50, 93, 16,246,225, 18, 57, 57, 47, 47, 93, 18, 57, 16, +225, 49, 48, 1, 50, 30, 2, 21, 20, 6, 7, 21, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 17, 35, 17, 52, 62, 2, 23, 34, 14, 2, + 21, 17, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 2,119, 96,163,118, 67,152,143,176, +185, 63,120,173,109, 96,164, 60,182, 69,121,168, 99, 56,100, 75, 44, 32, 78, 82, 82, 36, 80,111, 70, 31, 53, 96,132, 79,102, 77, + 82,119, 78, 37, 38, 68, 95, 6, 31, 49, 98,148, 98,149,173, 23, 6, 21,202,186,108,162,109, 55, 32, 31,253,233, 6, 52,123,178, +115, 55,150, 31, 76,127, 96,252,146, 18, 30, 21, 11, 40, 77,111, 71, 80,117, 77, 37,152, 40, 73,102, 61, 63, 94, 62, 31, 0, 1, + 0, 10,254, 20, 3,223, 4, 74, 0, 27, 0, 99, 64, 22, 29, 64, 18, 21, 72, 80, 29, 1, 15, 29, 47, 29, 79, 29, 3, 7, 26, 5, + 1, 5, 72, 6,184,255,240, 64, 21, 6, 6, 11, 0, 19, 19, 12, 26, 0, 27, 32, 27, 64, 27, 3, 8, 27, 16, 27, 13, 12,184,255, +240, 64, 10, 12, 26, 12, 15, 19, 0, 11, 21, 5, 27, 0, 63, 63, 51, 51, 63, 51, 1, 47, 56, 51, 47, 56, 94, 93, 51, 18, 57, 61, + 47, 51, 51, 51, 24, 47, 56,225, 93, 94, 93, 93, 43, 49, 48, 37, 14, 3, 21, 35, 52, 62, 2, 55, 1, 51, 19, 30, 3, 23, 51, 62, + 3, 55, 19, 51, 2, 96, 22, 34, 24, 12,190, 15, 27, 37, 21,254, 96,189,217, 14, 30, 26, 20, 4, 6, 5, 20, 25, 27, 11,199,188, + 18, 62,136,134,126, 52, 42,121,137,141, 63, 4, 62,253,186, 40, 93, 90, 80, 27, 26, 82, 93, 90, 33, 2, 76, 0, 0, 2, 0,111, +255,236, 4, 45, 6, 31, 0, 50, 0, 68, 0, 81, 64, 46, 26, 70, 0, 56, 5, 5, 46, 51, 72, 15, 36, 87, 70, 64, 70,208, 70,224, + 70, 3, 15, 70, 1, 6, 61, 72, 46, 86, 69, 0, 36, 66, 26, 10, 56, 56, 10, 66, 80, 41, 22, 21, 80, 16, 10, 1, 0, 63, 51,225, + 63,225, 17, 57, 47, 18, 57, 18, 57, 51, 1, 16,246,225, 94, 93, 93, 16,246, 50,225, 17, 57, 47, 57, 57,225, 49, 48, 1, 46, 3, + 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 35, 34, 46, 2, 53, + 52, 62, 2, 1, 52, 46, 2, 39, 14, 3, 21, 20, 30, 2, 51, 50, 54, 2, 20, 56, 93, 67, 37, 51, 92,125, 74, 68,113, 96, 81, 35, + 74, 32, 73, 81, 91, 51, 42, 60, 39, 18, 27, 60, 98, 71, 85,134, 92, 49, 69,127,178,109,103,174,127, 71, 67,114,153, 1,180, 30, + 57, 82, 53, 58,126,104, 68, 38, 73,105, 67,142,153, 3,170, 32, 75, 86, 98, 57, 72,105, 70, 34, 20, 31, 39, 19,145, 20, 38, 30, + 18, 23, 37, 50, 27, 37, 62, 61, 65, 41, 49,108,126,147, 88,127,193,131, 67, 61,117,170,110,106,163,122, 83,254, 81, 69,111, 89, + 73, 31, 16, 58, 98,145,103, 66,111, 81, 45,180, 0, 1, 0, 90,255,236, 3, 92, 4, 94, 0, 57, 0, 89, 64, 55, 29, 35, 1, 1, + 24, 16, 45, 87, 59,160, 59,176, 59,192, 59, 3, 63, 59, 95, 59, 2, 16, 59, 1, 52, 70, 35, 35, 5, 71, 24, 86, 58, 30, 2, 80, +191, 57, 1,121, 57,137, 57, 2, 57, 57, 10, 49, 80, 40, 16, 10, 80, 19, 22, 0, 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, + 16,246,225, 51, 47,225, 93, 93, 93, 16,230, 50, 17, 57, 47, 18, 57, 49, 48, 1, 21, 35, 34, 6, 21, 20, 30, 2, 51, 50, 62, 2, + 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, 38, 38, 35, 34, 6, 21, + 20, 30, 2, 51, 2,156,129,138,133, 41, 70, 96, 55, 51, 92, 81, 71, 31, 59,158,109,113,166,108, 53, 38, 63, 82, 44, 43, 70, 51, + 28, 58,105,144, 86, 53, 90, 82, 77, 40, 63, 75,129, 71,108,115, 39, 72,100, 61, 2,135,153, 91, 94, 51, 69, 42, 18, 15, 24, 31, + 16,160, 34, 41, 49, 86,117, 67, 62, 88, 62, 41, 15, 11, 14, 43, 62, 80, 50, 70,109, 74, 38, 9, 19, 28, 20,147, 34, 38, 77, 77, + 45, 64, 39, 18, 0, 1, 0,113,254,111, 3,106, 6, 20, 0, 51, 0, 57, 64, 31, 46, 3, 3, 31, 70, 26, 32, 20, 1, 20, 53, 16, + 53,192, 53, 2, 10, 72, 41, 0, 0, 41, 86, 52, 25, 46, 3, 0, 80, 1, 0, 0, 63,225, 50, 50, 47, 1, 16,230, 50, 47, 16,225, + 93, 16,214, 93, 50,225, 51, 47, 51, 49, 48, 19, 53, 33, 21, 14, 5, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, + 53, 52, 46, 2, 39, 46, 3, 53, 52, 18, 54, 54, 55, 6, 7, 6, 6, 35,174, 2,182,128,184,126, 76, 40, 13, 45, 84,120, 75, 71, + 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77, 89,135, 92, 46, 92,154,201,108, 43, 47, 40, 96, 47, 5,123,153, +141,118,205,179,154,133,111, 48, 89,108, 64, 35, 17, 15, 46, 59, 72, 42, 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, + 15, 17, 66,108,152,102,148, 1, 1,232,217,108, 3, 3, 2, 4, 0, 1, 0,174,254, 20, 4, 18, 4, 94, 0, 24, 0, 49, 64, 29, + 0, 71, 24, 85, 26, 16, 26, 96, 26,128, 26, 3, 14, 10, 71, 11, 84, 25, 14, 4, 80, 20, 16, 12, 15, 11, 21, 0, 27, 0, 63, 63, + 63, 63,225, 51, 1, 16,246,225, 50, 93, 16,246,225, 49, 48, 1, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, + 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,148, 26, 10, 25, 69, 82, 92, 48,183,185,254, 20, 4,175,130,130, 52,102, +148, 96,253,199, 4, 74,148, 43, 63, 42, 20,191,210,251, 71, 0, 0, 3, 0,113,255,236, 4, 23, 6, 43, 0, 19, 0, 30, 0, 39, + 0, 91, 64, 58, 37, 25, 71, 0, 87, 41, 15, 41, 1,208, 41, 1,127, 41,159, 41, 2, 64, 41, 1, 15, 41, 1, 6, 36, 26, 71, 10, + 86, 40, 26, 80,203, 36, 1,186, 36, 1,137, 36,153, 36, 2, 15, 36, 1, 8, 36, 36, 20, 31, 80, 15, 1, 20, 80, 5, 22, 0, 63, +225, 63,225, 18, 57, 47, 94, 93, 93, 93, 93,225, 1, 16,246,225, 50, 94, 93, 93, 93, 93,113, 16,246,225, 50, 49, 48, 1, 20, 2, + 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 2, + 2, 4, 23, 52,112,179,126,118,175,116, 56, 51,111,177,126,118,176,117, 58,254, 43, 73,104, 69, 35, 3,253,203, 2, 33, 68,104, + 74, 71,102, 68, 35, 5, 2, 51, 9,132, 3, 12,188,254,215,206,109,109,206, 1, 41,188,188, 1, 41,206,108,107,205,254,215,252, +185, 74,148,223,149,147,223,149, 75, 5, 16, 69,137,205,137, 1, 17, 1, 19, 0, 0, 1, 0,164,255,236, 2,119, 4, 72, 0, 21, + 0, 53, 64, 35, 48, 9, 1, 9, 9, 23, 0, 23, 16, 23, 32, 23, 96, 23,112, 23,144, 23,192, 23,208, 23, 8, 8, 1, 71, 20, 84, + 22, 4, 80, 15, 22, 0, 15, 0, 63, 63,225, 1, 16,246,225, 94, 93, 17, 51, 47, 93, 49, 48, 1, 17, 20, 22, 51, 50, 62, 2, 55, + 21, 14, 3, 35, 34, 46, 2, 53, 17, 1, 90, 63, 72, 18, 45, 42, 36, 9, 13, 41, 48, 52, 24, 62,106, 77, 44, 4, 72,252,252, 97, + 98, 4, 6, 8, 3,138, 6, 12, 9, 5, 32, 78,133,101, 3, 4,255,255, 0,174, 0, 0, 3,240, 4, 74, 2, 6, 0,250, 0, 0, + 0, 1,255,242,255,236, 4, 23, 6, 33, 0, 46, 0,104, 64, 42, 34, 21, 21, 26, 18, 18, 1, 41, 10, 41, 10, 41, 0, 80, 26, 1, + 52, 26, 68, 26, 2, 0, 26, 16, 26, 32, 26, 3, 26, 26, 48, 96, 48,144, 48, 2, 15, 48, 1, 6, 46, 0,184,255,240, 64, 15, 0, + 46, 21, 41, 1, 1, 14, 23, 80, 30, 22, 7, 80, 14, 1, 0, 63,225, 63,225, 17, 57, 47, 51, 63, 1, 47, 56, 51, 94, 93, 93, 17, + 51, 47, 93, 93, 93, 18, 57, 57, 61, 47, 24, 47, 17, 51, 51, 17, 18, 57, 17, 51, 49, 48, 35, 1, 39, 46, 3, 35, 34, 6, 7, 53, + 54, 54, 51, 50, 30, 2, 23, 1, 22, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 3, 46, 3, 39, 35, 6, 6, 7, 3, 14, + 1,184, 53, 13, 31, 43, 61, 43, 34, 50, 20, 26, 66, 35, 74,105, 79, 63, 31, 1, 72, 18, 46, 38, 14, 38, 8, 23, 55, 37, 39, 59, + 47, 37, 15,135, 11, 29, 27, 22, 5, 6, 13, 53, 31,229, 4, 51,160, 41, 67, 49, 27, 7, 5,145, 7, 10, 42, 89,135, 93,252, 54, + 54, 57, 7, 3,133, 12, 14, 17, 40, 64, 46, 1,162, 33, 94, 97, 87, 25, 77,170, 79,253,193, 0, 0, 1, 0,174,254, 20, 4, 18, + 4, 74, 0, 29, 0, 63, 64, 38, 13, 12, 9, 71, 10, 85, 31, 16, 31, 32, 31, 96, 31,112, 31,128, 31, 5, 20, 0, 26, 71, 27, 84, + 30, 26, 27, 20, 13, 3, 80, 17, 22, 11, 21, 28, 9, 15, 0, 63, 51, 63, 63,225, 51, 51, 63, 1, 16,246,225, 50, 50, 93, 16,246, +225, 50, 50, 49, 48, 1, 20, 22, 51, 50, 62, 2, 53, 17, 51, 17, 35, 39, 35, 6, 6, 35, 34, 38, 39, 22, 23, 22, 22, 21, 17, 35, + 17, 51, 1,100,106,111, 82,110, 67, 28,182,147, 27, 10, 48,144,103, 72,106, 35, 1, 2, 2, 1,182,182, 1,135,130,130, 52,101, +148, 96, 2, 58,251,182,147, 83, 84, 46, 42, 38, 40, 35, 85, 42,254,192, 6, 54, 0, 1, 0, 0, 0, 0, 3,207, 4, 74, 0, 20, + 0, 59, 64, 22, 20, 19, 7, 7, 0, 13, 71, 14, 87, 22, 16, 22, 1,176, 22, 1, 15, 22, 1, 6, 1, 0,184,255,240,182, 0, 7, + 20, 21, 13, 0, 15, 0, 63, 50, 63, 51, 1, 47, 56, 50, 94, 93, 93,113, 16,246,225, 18, 57, 61, 47, 51, 51, 49, 48, 17, 51, 19, + 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35,188,201, 12, 31, 30, 25, 5, 6, 90,114, 66, 25,182, 37, 92,154,117, +192, 4, 74,253,176, 33, 99,103, 92, 25, 96,205,231, 1, 5,151,163,254,224,254,245,253,127, 0, 0, 1, 0,113,254,111, 3,106, + 6, 20, 0, 70, 0,126, 64, 78, 50, 59, 59, 17, 42, 1, 65, 70, 56, 45, 45, 36, 28, 0, 1, 16, 1, 32, 1, 3, 8, 1, 1, 28, + 70, 32, 17, 1, 17, 72, 63, 72, 95, 72,127, 72,239, 72, 4, 16, 72, 1, 7, 72, 36, 86, 71, 60, 50, 56, 80, 57, 42, 0, 73, 28, + 89, 28,105, 28, 3, 56, 28, 1, 7, 36, 28, 3, 22, 1, 79, 0, 0, 22, 57, 0, 22,250, 0, 63, 63, 18, 57, 47,225, 17, 23, 57, + 93, 93, 17, 57, 16,225, 50, 50, 1, 16,246,225, 93, 93, 16,214, 93,241,192, 47, 94, 93, 17, 18, 57, 47, 51,225, 18, 57, 17, 51, + 47, 51, 49, 48, 1, 21, 35, 34, 14, 2, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, 53, 52, 46, 2, 39, 38, 38, + 53, 52, 62, 2, 55, 53, 38, 38, 53, 52, 62, 2, 55, 6, 7, 6, 6, 35, 35, 53, 33, 21, 35, 34, 14, 2, 21, 20, 30, 2, 51, 3, + 35,162, 81,127, 87, 45, 45, 84,120, 75, 71, 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77,178,184, 47, 78,102, + 55,101,114, 45, 79,107, 62, 34, 39, 33, 85, 46, 62, 2,129, 55, 73,145,115, 71, 32, 70,114, 81, 3,119,137, 49, 85,113, 65, 78, + 96, 59, 34, 17, 15, 46, 59, 72, 42, 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, 15, 34,199,181, 77,127, 99, 67, 17, + 12, 28,134,117, 72,102, 73, 49, 19, 3, 3, 2, 4,153,141, 38, 78,117, 78, 53, 81, 55, 28, 0,255,255, 0,113,255,236, 4, 45, + 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0, 25,255,236, 4,201, 4, 74, 0, 24, 0, 88, 64, 56, 10, 71,143, 22, 1, 22, 22, 14, + 3, 20, 20, 0, 3, 16, 3, 2, 3, 3, 26, 47, 26,159, 26,239, 26, 3, 16, 13, 71, 47, 14,239, 14,255, 14, 3, 14, 64, 16, 21, + 72, 14, 84, 25, 21, 12, 16, 80, 18, 15, 14, 21, 0, 80, 7, 22, 0, 63,225, 63, 63,225, 50, 50, 1, 16,246, 43, 93,225, 51, 93, + 17, 51, 47, 93, 51, 47, 17, 18, 57, 47, 93,225, 49, 48, 37, 50, 54, 55, 21, 6, 6, 35, 34, 38, 53, 17, 33, 17, 35, 17, 35, 53, + 55, 33, 21, 35, 17, 20, 22, 4, 80, 28, 47, 15, 15, 74, 48,113,113,254,109,182,221,137, 4, 39,211, 47,129, 13, 8,144, 9, 17, +132,130, 2,190,252, 80, 3,176, 74, 80,154,253, 78, 70, 55, 0, 0, 2, 0,164,254, 20, 4, 45, 4, 94, 0, 26, 0, 39, 0, 57, + 64, 33, 37, 72, 0, 87, 41,207, 41, 1, 64, 41, 1, 15, 41, 1, 6, 31, 9, 15, 71, 16, 84, 40, 27, 80, 22, 16, 15, 27, 34, 80, + 8, 5, 22, 0, 63, 51,225, 63, 63,225, 1, 16,246,225, 50, 50, 94, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 14, 2, 35, 34, 38, + 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 52, 62, 2, 51, 50, 30, 2, 1, 34, 6, 7, 17, 22, 22, 51, 50, 54, 53, 52, 38, 4, 45, + 63,117,167,104, 75,143, 54, 6, 1, 2, 2, 1,182, 65,120,169,105, 97,163,119, 67,254, 59,137,130, 3, 54,143, 75,140,123,125, + 2, 39,137,213,145, 76, 45, 45, 43, 46, 39, 97, 46,254,221, 4, 19,136,211,145, 75, 75,145,211, 1, 24,196,200,254,172, 51, 49, +211,209,209,207, 0, 1, 0,113,254,111, 3,111, 4, 94, 0, 49, 0, 81, 64, 54, 39, 39, 21, 70, 16, 0, 10, 16, 10, 32, 10, 3, + 10, 51, 63, 51, 95, 51,127, 51,239, 51, 4, 16, 51, 1, 0, 72, 31, 86, 50, 40, 45, 81, 55, 10, 1, 40, 21, 56, 21, 72, 21, 3, + 21, 10, 31, 0, 4, 15, 36, 16, 15,250, 0, 63, 63, 18, 23, 57, 93, 93,225, 50, 1, 16,246,225, 93, 93, 16,214, 93, 50,225, 51, + 47, 49, 48, 1, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, + 23, 7, 46, 3, 35, 34, 14, 2, 1, 45, 28, 73,126, 97, 71, 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77, 77, +132, 98, 55, 73,131,179,106, 78,149, 50, 54, 23, 56, 60, 58, 26, 80,114, 73, 34, 2, 6, 96,121, 78, 47, 22, 15, 46, 59, 72, 42, + 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, 15, 15, 65,118,180,130,154,226,149, 73, 34, 25,154, 10, 19, 15, 9, 57, +112,164, 0, 2, 0,113,255,236, 4,133, 4, 74, 0, 22, 0, 41, 0, 54, 64, 33, 36, 33, 72, 18, 16, 0, 87, 43, 16, 43,144, 43, +160, 43,176, 43,224, 43, 5, 23, 72, 10, 86, 42, 18, 37, 80, 15, 15, 28, 80, 5, 22, 0, 63,225, 63,225, 50, 1, 16,246,225, 93, + 16,246, 50, 50,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 33, 21, 33, 30, 3, 5, 20, 30, 2, 51, 50, + 62, 2, 53, 52, 38, 39, 35, 34, 14, 2, 4, 45, 62,122,180,117,107,175,125, 68, 77,144,206,128, 1,233,254,246, 37, 65, 48, 28, +253, 0, 33, 71,110, 77, 76,109, 71, 33, 79, 75, 59, 95,139, 90, 43, 1,248,111,192,141, 80, 70,138,203,133,156,218,138, 62,154, + 41, 93,108,124, 54, 85,144,105, 59, 55, 98,134, 78,144,215, 89, 44, 99,161, 0, 0, 1, 0, 18,255,229, 3,102, 4, 74, 0, 28, + 0, 58, 64, 36, 1, 15, 13, 31, 13, 2, 6, 13, 87, 30, 16, 30, 1, 43, 26, 59, 26, 2, 26, 3, 71, 16, 24,224, 24, 2, 24, 2, + 25, 80, 28, 15, 8, 80, 19, 22, 0, 63,225, 63,225, 50, 1, 47, 93,225,198, 93, 93, 16,230, 94, 93, 50, 49, 48, 1, 21, 33, 17, + 20, 30, 2, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 17, 33, 53, 55, 3,102,254,140, 25, 45, 62, 36, 18, 42, 40, 36, + 13, 13, 39, 46, 53, 27, 64,117, 89, 52,254,215,134, 4, 74,154,253,162, 59, 82, 51, 23, 3, 6, 7, 4,135, 6, 12, 11, 6, 29, + 77,134,104, 2,115, 74, 80, 0, 0, 1, 0,164,255,236, 4, 61, 4, 74, 0, 29, 0, 41, 64, 24, 16, 71, 27, 87, 31, 16, 31, 96, + 31,128, 31, 3, 8, 71, 5, 84, 30, 21, 6, 15, 13, 80, 0, 22, 0, 63,225, 63, 51, 1, 16,246,225, 93, 16,246,225, 49, 48, 5, + 34, 46, 2, 53, 17, 51, 17, 20, 30, 2, 51, 50, 54, 53, 52, 46, 2, 39, 51, 30, 3, 21, 16, 2, 2, 92,129,170,100, 41,182, 32, + 66,102, 70,146,141, 9, 16, 23, 15,182, 15, 24, 16, 8,244, 20, 80,140,189,109, 2, 88,253,178, 86,140, 99, 54,232,247, 71,125, +117,116, 61, 61,114,119,129, 75,254,193,254,211, 0, 2, 0,113,254, 20, 5, 37, 4, 94, 0, 37, 0, 53, 0, 94, 64, 60, 49, 37, + 71, 22,150, 0,166, 0, 2, 0, 0, 6, 38, 72, 31, 87, 55, 32, 55, 1, 15, 55, 1,224, 55, 1,111, 55,127, 55,159, 55, 3, 64, + 55, 1, 15, 55, 31, 55, 2, 6, 17, 71, 6, 86, 54, 43, 80, 11, 26, 16, 49, 22, 80, 36, 1, 22, 0, 27, 0, 63, 63, 51,225, 50, + 63, 51,225, 1, 16,246,225, 94, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 51,225, 50, 49, 48, 1, 17, 46, 3, 53, 52, + 62, 2, 55, 23, 14, 3, 21, 20, 30, 2, 23, 17, 52, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 17, 1, 52, 46, 2, 35, 34, 14, 2, + 21, 17, 62, 3, 2,102,109,183,134, 75, 32, 56, 78, 45,141, 37, 63, 45, 25, 51, 88,116, 64,165,145, 90,146,102, 55, 86,144,190, +104, 1, 79, 30, 54, 73, 43, 27, 49, 37, 22, 72,123, 89, 51,254, 20, 1,218, 5, 67,137,213,151, 83,152,138,125, 55, 96, 51,104, +114,125, 71,111,153, 97, 48, 7, 2, 94,188,193, 80,144,201,122,149,217,144, 74, 5,254, 38, 4, 37, 98,148,101, 51, 23, 53, 87, + 65,253,160, 7, 59,107,159, 0, 0, 1,255,236,254, 20, 4, 37, 4, 78, 0, 40, 0,160, 64, 26,104, 31,120, 31, 2, 31,103, 9, +119, 9,199, 9, 3, 9, 6,118, 28, 1, 55, 28, 1, 28, 28, 30, 7, 8,184,255,192, 64, 14, 19, 22, 72, 52, 8, 1, 8, 16, 8, + 8,192, 18, 1, 18,184,255,192, 64, 25, 6, 11, 72, 18, 18, 42, 15, 42, 63, 42, 79, 42,207, 42, 4, 6,176, 37,192, 37, 2, 37, + 37, 29, 30,184,255,240, 64, 31, 30, 30, 41, 30, 27, 23, 6, 39, 6, 2, 24, 28, 40, 28, 2, 28, 9, 31, 6, 4, 0, 15, 80, 22, + 27, 7, 15, 35, 80, 0, 15, 0, 63,225, 63, 63,225, 18, 23, 57, 93, 93, 63, 17, 1, 51, 47, 56, 51, 51, 47, 93, 94, 93, 17, 51, + 47, 43, 93, 51, 47, 56, 93, 43, 51, 18, 57, 61, 47, 93, 93, 51, 51, 93, 51, 93, 49, 48, 19, 50, 30, 2, 23, 19, 1, 51, 1, 19, + 30, 3, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 3, 1, 35, 1, 3, 38, 38, 35, 34, 7, 53, 54, 54,188, 45, 73, 58, 49, + 21,123, 1, 31,178,254,115,178, 14, 29, 38, 52, 37, 26, 46, 16, 22, 57, 40, 67, 95, 71, 51, 23,131,254,182,194, 1,198,160, 27, + 71, 53, 36, 28, 22, 62, 4, 78, 31, 62, 92, 61,254,168, 2, 74,252,248,254, 32, 38, 66, 51, 29, 5, 3,141, 6, 11, 38, 70,102, + 65, 1,106,253,131, 3, 62, 1,190, 79, 89, 10,143, 7, 10, 0, 0, 1, 0,164,254, 20, 5,113, 6, 18, 0, 39, 0, 76, 64, 47, + 1, 23, 71, 38, 24, 24, 30, 6, 71, 17, 87, 41, 48, 41, 64, 41,144, 41,176, 41,192, 41, 5, 15, 41, 31, 41, 2, 6, 33, 71, 30, + 84, 40, 11, 31, 15, 1, 38, 80, 22, 25, 22, 23, 27, 0, 0, 0, 63, 63, 63, 51,225, 50, 63, 51, 1, 16,246,225, 94, 93, 93, 16, +246,225, 17, 57, 47, 51,225, 50, 49, 48, 1, 17, 62, 3, 53, 52, 46, 2, 39, 51, 30, 3, 21, 20, 14, 2, 7, 17, 35, 17, 46, 3, + 53, 17, 51, 17, 20, 30, 2, 23, 17, 3, 86, 78,131, 95, 52, 8, 15, 24, 16,182, 16, 24, 16, 8, 87,147,196,109,178,111,188,137, + 76,182, 54, 90,120, 66, 6, 18,250,115, 9, 60,108,156,103, 71,128,126,131, 73, 72,131,126,126, 68,157,220,140, 69, 7,254, 38, + 1,218, 4, 65,136,214,154, 2, 31,253,217,114,154, 97, 46, 5, 5,143, 0, 1, 0,113,255,236, 5,150, 4, 74, 0, 59, 0,112, + 64, 72, 56,103, 29, 1, 29, 71,213, 26, 1,183, 26, 1,169, 26, 1,154, 26, 1, 3, 26, 26, 5, 37, 72, 48, 87, 61, 4, 61, 20, + 61, 2,196, 61,244, 61, 2,123, 61,155, 61, 2, 64, 61, 1, 2, 48, 61, 1, 15, 61, 31, 61, 2, 6, 16, 72, 5, 86, 60, 27, 27, + 42, 10, 15, 32, 21, 80, 57, 53, 0, 22, 0, 63, 50, 50,225, 50, 63, 51, 57, 47, 1, 16,246,225, 94, 93, 93, 95, 93, 93, 93,113, + 16,246,225, 17, 57, 47, 95, 93, 93, 93, 93,225, 93, 57, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 55, 51, 14, 3, 21, 20, 30, 2, + 51, 50, 62, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 39, 51, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 35, 6, + 6, 1,233, 90,140, 96, 50, 15, 31, 47, 32,186, 32, 47, 31, 15, 29, 54, 75, 45, 46, 68, 44, 22,178, 99, 81, 45, 75, 54, 29, 15, + 31, 47, 32,187, 32, 47, 31, 15, 50, 96,141, 90,107,139, 31, 10, 31,139, 20, 82,146,203,121, 81,143,135,135, 72, 73,134,135,142, + 82, 98,150,101, 52, 41, 72, 98, 57, 1, 50,254,206,129,139, 52,101,150, 98, 82,142,135,134, 73, 72,135,135,143, 81,121,203,146, + 82, 87, 91, 91, 87, 0,255,255, 0, 21,255,236, 2,119, 5,217, 2, 38, 1,134, 0, 0, 1, 7, 0,106,254,226, 0, 0, 0, 23, + 64, 13, 2, 1, 31, 17, 38, 2, 1, 50, 22, 42, 20, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 61, + 5,217, 2, 38, 1,146, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 39, 17, 38, 2, 1,184,255,222,180, 30, 50, 5, 27, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 84, 14, 0, + 0, 19, 64, 11, 2, 44, 17, 38, 2, 61, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 61, 6, 33, + 2, 38, 1,146, 0, 0, 1, 6, 1, 84, 16, 0, 0, 19, 64, 11, 1, 42, 17, 38, 1, 29, 30, 36, 5, 27, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,113,255,236, 5,150, 6, 33, 2, 38, 1,150, 0, 0, 1, 7, 1, 84, 0,195, 0, 0, 0, 33, 64, 9, 1, 72, + 17, 38, 1, 96, 60, 1, 60,184,255,192, 64, 9, 9, 11, 72, 61, 60, 66, 5, 48, 37, 1, 43, 43, 93, 53, 0, 43, 53, 0,255,255, + 0,199, 0, 0, 3,190, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106,255,245, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, + 1, 1, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 20,255,236, 5, 6, 5,182, 0, 37, 0,133, 64, 90, + 4, 4, 19, 12, 90, 15, 33, 1,223, 33,255, 33, 2, 33, 85, 39, 15, 39,111, 39,127, 39, 3, 6, 26,244, 24, 1,160, 24,176, 24, + 2,116, 24, 1, 24, 24, 18, 90, 19, 0, 21, 48, 21, 64, 21, 80, 21,192, 21, 5, 21, 21,176, 19, 1,103, 19,119, 19, 2, 94, 19, + 1, 63, 19, 79, 19, 2, 0, 19, 1, 19, 17, 95, 26, 26, 7, 25, 21, 95, 22, 3, 19, 18, 7, 95, 0, 19, 0, 63,225, 63, 63,225, + 50, 18, 57, 47,225, 1, 47, 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 47, 93, 93, 93, 50, 94, 93, 16,246, 93,113,225, 18, 57, + 47, 49, 48, 5, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 53, 52, 38, 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 17, 33, 50, 30, + 2, 21, 21, 20, 14, 2, 3,158, 47, 70, 25, 29, 68, 39, 32, 64, 51, 33,105,123,254,187,187,254,172, 3,177,254, 94, 1, 90, 93, +146,101, 53, 53, 95,132, 20, 13, 11,160, 9, 12, 19, 51, 87, 69,133,115,116,253, 35, 5, 18,164,164,254,111, 49, 94,139, 89,137, +105,154,101, 49,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 1, 97, 0, 0, 1, 7, 0,118, 0, 51, 1, 82, 0, 19, 64, 11, + 1, 18, 5, 38, 1, 62, 6, 12, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,125,255,236, 4,152, 5,203, 0, 38, 0, 95, + 64, 19, 17, 64, 19, 24, 72, 7, 17, 7, 17, 27,202, 35, 1,112, 35,128, 35, 2, 35,184,255,192, 64, 36, 7, 10, 72, 35, 35, 40, +191, 40, 1, 5, 8, 91, 27,102, 39, 8, 95, 15, 5,175, 5, 2, 8, 5, 5, 13, 36, 0, 95, 32, 4, 13, 95, 16, 22, 19, 0, 63, + 51,225, 63,225, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 17, 51, 47, 43, 93, 93, 18, 57, 57, 47, 47, 43, 49, 48, 1, + 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, + 38, 3, 25, 95,160,120, 77, 13, 2,116,253,134, 5, 64,118,171,113, 89,160, 78, 39, 78, 85, 97, 59,164,240,157, 76, 87,169,250, +162,108,196, 79, 78, 63,148, 5, 39, 65,122,175,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,108,198, 1, 22,169,166, 1, + 20,198,110, 44, 42,156, 32, 46,255,255, 0,104,255,236, 3,201, 5,203, 2, 6, 0, 54, 0, 0,255,255, 0, 82, 0, 0, 2,100, + 5,182, 2, 6, 0, 44, 0, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106,255, 13, 1, 82, + 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255, 72,254,123, + 1,115, 5,182, 2, 6, 0, 45, 0, 0, 0, 2, 0, 0,255,233, 6,223, 5,182, 0, 42, 0, 53, 0,141,181, 37, 43, 90, 6, 13, + 8,184,255,248, 64, 83, 20, 23, 72, 8, 90, 35,153, 30, 1, 30, 16, 30, 35, 0, 6,144, 6, 2, 6,224, 35, 1,180, 35,196, 35, +212, 35, 3, 0, 35, 80, 35,144, 35,160, 35, 4, 7, 6, 35, 6, 35, 21, 47, 91, 0,103, 55,207, 55, 1, 55, 64, 6, 9, 72, 21, + 21, 54, 53, 95, 15, 37,175, 37, 2, 8, 37, 37, 43, 8, 95, 35, 3, 25, 96, 18, 19, 43, 96, 6, 18, 0, 63,225, 63,225, 63,225, + 18, 57, 47, 94, 93,225, 17, 1, 51, 47, 43, 93, 16,246,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 94, 93, 17, 51, 56, 93, 16,225, + 43, 50, 16,225, 50, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, + 54, 54, 18, 18, 55, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 6,223, 60,126,194,134,254,191,254,194, 15, + 31, 33, 34, 16, 20, 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,147,109,152,207,126, 55, +253,119,119,174,164, 46, 91,139, 93, 88, 1,172, 97,158,112, 61, 5, 18,113,244,236,212, 81,103,162,111, 59, 14, 11,154, 13, 16, + 63, 98,117, 54, 57,200, 1, 6, 1, 58,170,253,152, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0, 2, 0,199, 0, 0, 7, 12, + 5,182, 0, 22, 0, 33, 0, 83, 64, 50, 17, 23, 90, 14, 6, 6, 10, 27, 91, 0,103, 35, 15, 35, 1, 15, 35, 31, 35,127, 35,255, + 35, 4, 13, 9, 90, 10,100, 34, 33, 8, 95, 17, 15, 13,175, 13, 2, 8, 13, 13, 15, 11, 3, 23, 96, 10, 6, 18, 0, 63, 51,225, + 63, 51, 57, 47, 94, 93, 51,225, 50, 1, 16,246,225, 50, 93,113, 16,246,225, 17, 57, 47, 51,225, 50, 49, 48, 1, 20, 14, 2, 35, + 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 7, 12, 60,126,194,134, +254,191,253,184,186,186, 2, 72,186,109,152,207,126, 55,253,119,119,174,164, 46, 91,139, 93, 88, 1,172, 97,158,112, 61, 2,170, +253, 86, 5,182,253,152, 2,104,253,152, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0, 0, 1, 0, 20, 0, 0, 5, 6, 5,182, + 0, 21, 0,115, 64, 77, 8, 90, 7, 85, 23, 15, 23,111, 23,127, 23, 3, 6,244, 20, 1,160, 20,176, 20, 2,116, 20, 1, 20, 20, + 0, 14, 90, 15, 0, 17, 48, 17, 64, 17, 80, 17,192, 17, 5, 17, 17,176, 15, 1,103, 15,119, 15, 2, 94, 15, 1, 63, 15, 79, 15, + 2, 0, 15, 1, 15, 21, 17, 95, 18, 13, 95, 0, 0, 7, 18, 3, 15, 7, 18, 0, 63, 51, 63, 18, 57, 47,225, 16,225, 50, 1, 47, + 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 50, 47, 93, 93, 93, 94, 93, 16,246,225, 49, 48, 1, 33, 50, 30, 2, 21, 17, 35, 17, + 52, 38, 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 2, 35, 1, 90, 93,146,101, 53,186,105,123,254,187,187,254,172, 3,177,254, 94, + 3,129, 49, 94,139, 89,253,242, 1,246,115,116,253, 35, 5, 18,164,164,255,255, 0,199, 0, 0, 4,162, 7,115, 2, 38, 1,180, + 0, 0, 1, 7, 0,118, 0,137, 1, 82, 0, 19, 64, 11, 1, 23, 5, 38, 1, 34, 11, 17, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 25,255,236, 4,174, 7,105, 2, 38, 1,189, 0, 0, 1, 7, 2, 54, 0, 35, 1, 82, 0, 19, 64, 11, 1, 39, 5, 38, + 1, 13, 44, 34, 19, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199,254,127, 4,193, 5,182, 0, 11, 0, 99, 64, 65,198, 2, +214, 2, 2, 2, 90,197, 3,213, 3, 2,168, 3, 1,150, 3, 1, 3, 16, 14, 17, 72, 71, 3, 1, 58, 3, 1, 3, 3, 5, 9, 90, + 0,101, 13,176, 13, 1,111, 13,159, 13,175, 13, 3, 16, 13, 1, 8, 90, 5,100, 12, 10, 6, 3, 8, 95, 5, 2, 2, 1, 5, 0, + 47, 51, 51, 47, 16,225, 63, 51, 1, 16,246,225, 93, 93, 93, 16,246,225, 17, 57, 47, 93, 93, 43, 93, 93, 93,225, 93, 49, 48, 33, + 33, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4,193,254, 90,177,254, 93,186, 2,133,187,254,127, 1,129, 5,182,250,240, 5, 16, +255,255, 0, 0, 0, 0, 4,221, 5,188, 2, 6, 0, 36, 0, 0, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 16, 0, 27, 0, 75, + 64, 46, 95, 8, 1, 8, 8, 17, 21, 91, 0,103, 29, 15, 29, 95, 29,127, 29,207, 29, 4, 6, 11, 17, 90, 6,100, 28, 27, 95, 15, + 11,175, 11, 2, 8, 11, 11, 17, 10, 95, 7, 3, 17, 96, 6, 18, 0, 63,225, 63,225, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, + 94, 93, 16,246,225, 18, 57, 47, 93, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, 21, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, + 46, 2, 35, 35, 4, 51, 60,126,194,134,254,150, 3, 20,253,166,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 1, +172, 97,158,112, 61, 5,182,164,254, 60, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0,255,255, 0,199, 0, 0, 4,135, 5,182, + 2, 6, 0, 37, 0, 0,255,255, 0,199, 0, 0, 3,190, 5,182, 2, 6, 1, 97, 0, 0, 0, 2, 0, 14,254,127, 5, 10, 5,182, + 0, 17, 0, 27, 0,139, 64, 11, 24, 27, 40, 27, 2, 27, 7, 55, 20, 1, 20,184,255,248, 64, 11, 20, 23, 72, 20, 90, 14, 15, 7, + 1, 7, 7,184,255,240, 64, 16, 48, 14,192, 14, 2, 7, 14, 7, 14, 5, 18, 90, 16, 1, 90, 0,184,255,192, 64, 37, 16, 21, 72, + 0, 0, 16,101, 29, 32, 29, 1, 15, 29, 1, 8, 4, 90, 5, 5, 28, 20, 95, 14, 3, 9, 81, 8, 27, 16, 6, 95, 3, 0, 5, 5, + 3, 18, 0, 63, 51, 47, 51, 16,225, 50, 50, 47,226, 63,225, 17, 1, 51, 47,225, 94, 93, 93, 16,228, 50, 47, 43,225, 16,225, 17, + 57, 57, 47, 47, 93, 56, 94, 93, 16,225, 43, 93, 17, 51, 93, 49, 48, 1, 35, 17, 33, 17, 35, 17, 51, 62, 5, 55, 33, 17, 51, 33, + 17, 33, 14, 5, 7, 5, 10,176,252,100,176,113, 47, 86, 77, 65, 48, 29, 4, 2,101,194,254,131,254,250, 4, 31, 46, 61, 70, 77, + 39,254,127, 1,129,254,127, 2, 39, 85,200,217,230,232,227,105,250,240, 4,106, 76,185,202,209,200,183, 75, 0,255,255, 0,199, + 0, 0, 3,190, 5,182, 2, 6, 0, 40, 0, 0, 0, 1, 0, 4, 0, 0, 6,129, 5,182, 0, 17, 0,203, 64, 78,102, 9,118, 9, +134, 9, 3, 55, 9, 71, 9, 87, 9, 3, 9, 6, 6, 71, 13,247, 13, 2, 13, 90,105, 0,121, 0,137, 0, 3, 56, 0, 72, 0, 88, + 0, 3, 0, 3, 3,168, 14,184, 14, 2,153, 14, 1,134, 14, 1, 87, 14,103, 14,119, 14, 3, 14, 14, 17, 10, 7, 8, 8, 11, 0, + 10, 1,112, 10,128, 10,192, 10, 3, 10,184,255,192, 64, 38, 7, 10, 72, 10, 16, 10, 10, 19,240, 19, 1,191, 19,207, 19,223, 19, + 3,160, 19, 1,143, 19, 1, 64, 19, 1, 15, 19, 31, 19, 2, 8, 2, 1, 1, 16, 17,184,255,240, 64, 15, 17, 17, 18, 6, 3, 3, + 4, 17, 10, 14, 18, 7, 1, 4, 3, 0, 63, 51, 51, 63, 51, 51, 18, 57, 17, 51, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, + 93, 93, 93, 93, 17, 51, 47, 56, 43, 93,113, 51, 51, 17, 51, 17, 18, 57, 47, 93, 93, 93, 93, 51, 17, 51, 93, 93,225, 93, 50, 17, + 51, 93, 93, 49, 48, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, 17, 1, 35, 2, 37,253,237,205, 2, 10,179, 2, + 10,205,253,237, 2, 33,211,253,238,179,253,238,211, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253, 14, 2,229,253, + 27, 2,229,253, 27, 0, 0, 1, 0, 72,255,236, 3,236, 5,203, 0, 57, 0,104, 64, 63, 39, 91, 0, 5, 33, 0, 48, 33, 0, 0, + 33, 48, 3, 19, 28, 91, 11,103, 59,159, 59, 1,112, 19,128, 19, 2, 63, 19, 79, 19, 95, 19, 3, 19, 19, 58, 5, 32, 96,170, 33, + 1,120, 33, 1, 15, 33, 1, 8, 33, 33, 25, 47, 44, 96, 53, 4, 25, 96, 20, 16, 19, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, + 93, 93, 93,225, 57, 17, 1, 51, 47, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 17, 18, 57, 16,225, 49, 48, 1, 20, 14, 2, + 7, 21, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, + 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 3,209, 51, 91,125, 75, 87,138, 94, 50, 67,136,205,137,110,192, 85, 43, 96, 99, 99, + 46,178,176,207,186,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116,131, 71,109,166,113, 57, 4, 96, 73,120, + 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 34, 45,170, 23, 36, 24, 13,148,135,135,129,151, 39, 72,101, 61, 54, 83, 58, + 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 0, 0, 1, 0,201, 0, 0, 5, 16, 5,182, 0, 23, 0,107, 64, 27, 20, 11, 14, 90, + 13,101, 25,208, 25, 1,175, 25, 1, 32, 25, 48, 25, 2, 22, 9, 2, 90, 23,100, 24, 23, 9,184,255,232,179, 20, 24, 72, 9,184, +255,224, 64, 35, 10, 19, 72, 6, 9, 22, 9, 38, 9, 3, 9, 13, 18, 20, 24, 20, 24, 72, 20, 32, 10, 19, 72, 9, 20, 25, 20, 41, + 20, 3, 7, 20, 11, 0, 3, 0, 63, 50, 50, 94, 93, 43, 43, 63, 51, 93, 43, 43, 51, 1, 16,246,225, 50, 50, 93, 93, 93, 16,246, +225, 50, 50, 49, 48, 19, 51, 17, 20, 14, 2, 7, 6, 7, 51, 1, 51, 17, 35, 17, 52, 54, 55, 54, 55, 35, 1, 35,201,174, 1, 2, + 2, 2, 4, 4, 7, 2,204,213,172, 6, 4, 4, 5, 8,253, 49,215, 5,182,252,224, 26, 62, 67, 67, 32, 74, 76, 4,180,250, 74, + 3, 25, 57,142, 65, 76, 77,251, 70, 0,255,255, 0,201, 0, 0, 5, 16, 7,105, 2, 38, 1,178, 0, 0, 1, 7, 2, 54, 0,137, + 1, 82, 0, 21,180, 1, 29, 5, 38, 1,184,255,235,180, 34, 24, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199, 0, 0, + 4,162, 5,182, 0, 10, 0, 94, 64, 33, 8, 9, 9, 16, 9, 1, 0, 0, 16, 0, 2, 7, 0, 16, 0, 0, 12,176, 12, 1, 47, 12, + 1, 16, 12, 1,151, 10, 1, 86, 10, 1, 10,184,255,248, 64, 20, 8, 12, 72, 10, 7, 7, 3, 90, 4,100, 11, 7, 2, 4, 8, 5, + 3, 4, 0, 18, 0, 63, 50, 63, 51, 18, 57, 57, 1, 16,246,225, 50, 17, 51, 43, 93, 93, 93, 93, 93, 17, 51, 47, 56, 94, 93, 51, + 51, 56, 17, 51, 49, 48, 33, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4,162,219,253,186,186,186, 2, 53,207,253,203, 2,229,253, + 27, 5,182,253, 60, 2,196,253, 66, 0, 0, 1, 0, 0,255,233, 4,147, 5,182, 0, 31, 0, 98,177, 8, 3,184,255,248, 64, 59, + 20, 23, 72, 3, 90,137, 25, 1, 25, 16, 25,224, 30, 1,180, 30,196, 30,212, 30, 3, 0, 30, 80, 30,128, 30, 3, 7, 30, 30, 16, + 1, 90, 0,101, 33, 15, 33, 31, 33,127, 33, 3, 8, 16, 16, 32, 3, 95, 30, 3, 20, 96, 17, 13, 19, 0, 18, 0, 63, 63, 51,225, + 63,225, 17, 1, 51, 47, 94, 93, 16,246,225, 17, 57, 47, 94, 93, 93, 93, 51, 56, 93,225, 43, 50, 49, 48, 33, 35, 17, 33, 14, 3, + 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 4,147,186,254,133, 15, 31, 33, 34, 16, 20, + 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,208, 5, 18,113,244,236,212, 81,103,162,111, + 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, 1, 6, 1, 58,170, 0,255,255, 0,199, 0, 0, 6, 47, 5,182, 2, 6, 0, 48, + 0, 0,255,255, 0,199, 0, 0, 4,213, 5,182, 2, 6, 0, 43, 0, 0,255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 0, 50, + 0, 0,255,255, 0,199, 0, 0, 4,193, 5,182, 2, 6, 1,110, 0, 0,255,255, 0,199, 0, 0, 4, 51, 5,182, 2, 6, 0, 51, + 0, 0,255,255, 0,125,255,236, 4,152, 5,203, 2, 6, 0, 38, 0, 0,255,255, 0, 20, 0, 0, 4, 18, 5,182, 2, 6, 0, 55, + 0, 0, 0, 1, 0, 25,255,236, 4,174, 5,182, 0, 33, 0,111, 64, 16, 18, 1, 27, 27, 19, 33, 96, 0,112, 0,176, 0,240, 0, + 4, 0,184,255,192, 64, 16, 6, 10, 72, 0, 16, 0, 0, 35, 15, 35,127, 35, 2, 20, 9, 19,184,255,240, 64, 12, 19, 19, 34,231, + 26,247, 26, 2,214, 26, 1, 26,184,255,224, 64, 16, 10, 14, 72, 18, 1, 26, 3, 0, 13, 95, 10, 6, 19, 19, 0, 3, 0, 63, 50, + 63, 51,225, 17, 23, 57, 43, 93, 93, 17, 1, 51, 47, 56, 51, 51, 93, 17, 51, 47, 56, 43, 93, 51, 18, 57, 17, 51, 51, 49, 48, 1, + 1, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 1, 51, 1, 30, 3, 23, 51, 62, 3, 55, 1, 4,174,254, 84, 38, 83, +112,156,111, 51, 90, 37, 37, 89, 52, 53, 82, 66, 56, 28,253,238,204, 1,127, 5, 10, 9, 9, 4, 2, 3, 11, 11, 11, 3, 1, 55, + 5,182,251,250, 93,164,123, 72, 15, 15,185, 20, 25, 23, 53, 86, 63, 4, 63,252,215, 10, 24, 26, 23, 9, 9, 31, 33, 29, 7, 3, + 24, 0,255,255, 0,104,255,236, 5,186, 5,203, 2, 6, 1,115, 0, 0,255,255, 0, 0, 0, 0, 4, 96, 5,182, 2, 6, 0, 59, + 0, 0, 0, 1, 0,199,254,127, 5,113, 5,182, 0, 11, 0, 59, 64, 33, 3, 90, 2, 2, 9, 90, 0, 13,176, 13, 1,175, 13, 1, + 16, 13, 1, 8, 90, 5,100, 12, 10, 6, 3, 0, 8, 95, 5, 2, 2, 5, 18, 0, 63, 51, 47, 16,225, 50, 63, 51, 1, 16,246,225, + 93, 93, 93, 16,212,225, 51, 47,225, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4,193,176,176,252, 6,186, 2,133, +187,166,253,217, 1,129, 5,182,250,240, 5, 16, 0, 1, 0,166, 0, 0, 4,129, 5,182, 0, 21, 0, 72, 64, 29, 19, 1, 90, 0, +101, 23,112, 23,160, 23, 2, 47, 23, 1, 16, 23, 1, 13, 90, 96, 10,112, 10,160, 10,176, 10, 4, 10,184,255,192, 64, 14, 7, 10, + 72, 10, 19, 16, 95, 5, 5, 20, 11, 3, 0, 18, 0, 63, 63, 51, 57, 47,225, 51, 1, 47, 43, 93,225, 93, 93, 93, 16,246,225, 50, + 49, 48, 33, 35, 17, 6, 6, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 54, 55, 17, 51, 4,129,186,115,195, 98, 93,146,101, + 53,186,105,123, 90,185,112,186, 2, 86, 44, 46, 49, 95,138, 89, 2, 71,253,209,115,116, 40, 40, 2,198, 0, 1, 0,199, 0, 0, + 7, 51, 5,182, 0, 11, 0, 96, 64, 66, 86, 8, 1, 8, 90, 23, 5, 1,134, 5,150, 5,166, 5, 3,103, 5,119, 5, 2, 5, 5, + 1, 9, 90, 0,101, 13, 0, 13, 16, 13, 2, 32, 13, 80, 13,112, 13,128, 13,192, 13,208, 13,224, 13, 7, 15, 13, 1, 7, 4, 90, + 1,100, 12, 10, 6, 2, 3, 8, 4, 95, 1, 18, 0, 63,225, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113, 16,246,225, 17, 57, + 47, 93, 93,113,225, 93, 49, 48, 33, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 7, 51,249,148,186, 2, 31,186, 2, 31,186, 5, +182,250,240, 5, 16,250,240, 5, 16, 0, 0, 1, 0,199,254,127, 7,227, 5,182, 0, 15, 0,113, 64, 75, 86, 12, 1, 12, 90, 23, + 9, 1,134, 9,150, 9,166, 9, 3,103, 9,119, 9, 2, 9, 9, 5, 13, 90, 0, 3, 90, 2, 2, 0,101, 17, 0, 17, 16, 17, 2, + 32, 17, 80, 17,112, 17,128, 17,192, 17,208, 17,224, 17, 7, 15, 17, 1, 7, 8, 90, 5,100, 16, 14, 10, 6, 3, 12, 0, 8, 95, + 5, 2, 2, 5, 18, 0, 63, 51, 47, 16,225, 50, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113, 16,228, 50, 47,225, 16,225, 17, + 57, 47, 93, 93,113,225, 93, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 7, 51,176,176,249,148,186, + 2, 31,186, 2, 31,186,166,253,217, 1,129, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 2, 0, 20, 0, 0, 4,213, 5,182, + 0, 16, 0, 27, 0, 82, 64, 51, 11, 17, 90,144, 6, 1, 6, 6, 8, 21, 91, 0,103, 29, 15, 29, 1, 15, 29, 47, 29, 63, 29, 95, + 29,175, 29, 5, 6, 8, 8, 28, 27, 95, 15, 11,175, 11, 2, 8, 11, 11, 17, 8, 95, 9, 3, 17, 96, 6, 18, 0, 63,225, 63,225, + 18, 57, 47, 94, 93,225, 17, 1, 51, 47, 94, 93,113, 16,246,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, + 53, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 4,213, 60,126,194,134,254,149,254,172, 2, 15,149,152,207, +127, 55,253, 78,160,174,163, 45, 92,138, 93,129, 1,172, 97,158,112, 61, 5, 18,164,253,152, 66,113,152,254,157,132,136, 70, 97, + 60, 27, 0, 3, 0,199, 0, 0, 5,207, 5,182, 0, 14, 0, 25, 0, 29, 0, 73, 64, 43, 19, 91, 0, 0, 1, 0, 0, 6, 26, 90, + 29,101, 31, 15, 31,159, 31, 2, 6, 9, 15, 90, 6,100, 30, 25, 95, 15, 9,175, 9, 2, 8, 9, 9, 27, 7, 3, 15, 96, 26, 6, + 18, 0, 63, 51,225, 63, 51, 57, 47, 94, 93,225, 1, 16,246,225, 50, 94, 93, 16,246,225, 17, 57, 47, 93,225, 49, 48, 1, 20, 14, + 2, 35, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1, 17, 51, 17, 4, 51, 60,126,194,134,254,150, +186,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 3,147,187, 1,172, 97,158,112, 61, 5,182,253,152, 66,113,152, +254,157,132,136, 70, 97, 60, 27,253, 86, 5,182,250, 74, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 14, 0, 25, 0, 72, 64, 46, + 19, 91,144, 0, 1, 0,103, 27, 15, 27, 95, 27, 2, 6, 27, 64, 21, 24, 72, 27, 64, 13, 19, 72, 9, 15, 90, 6,100, 26, 25, 95, + 15, 9,175, 9, 2, 8, 9, 9, 7, 3, 15, 96, 6, 18, 0, 63,225, 63, 57, 47, 94, 93,225, 1, 16,246,225, 50, 43, 43, 94, 93, + 16,246, 93,225, 49, 48, 1, 20, 14, 2, 35, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 4, 51, 60, +126,194,134,254,150,186,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 1,172, 97,158,112, 61, 5,182,253,152, 66, +113,152,254,157,132,136, 70, 97, 60, 27, 0, 1, 0, 59,255,236, 4, 68, 5,203, 0, 36, 0, 81, 64, 47, 29, 32, 91, 12, 22, 30, + 22, 30, 4, 12,103, 38,191, 38,207, 38,223, 38, 3, 4, 4, 37, 30, 95,170, 31, 1,120, 31, 1, 15, 31, 1, 8, 31, 31, 7, 26, + 95, 23, 17, 19, 3, 0, 95, 7, 4, 0, 63,225, 51, 63, 51,225, 17, 57, 47, 94, 93, 93, 93,225, 17, 1, 51, 47, 93, 16,230, 17, + 57, 57, 47, 47, 16,225, 50, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 46, 2, 39, 53, + 22, 22, 51, 50, 18, 19, 33, 53, 33, 46, 3, 1,186, 94,148, 63, 78, 79,196,108,162,244,162, 82, 82,165,247,164, 58, 97, 86, 78, + 39, 78,160, 89,237,247, 6,253,139, 2,113, 9, 71,115,157, 5, 39, 46, 32,156, 42, 44,109,193,254,246,157,179,254,224,202,109, + 7, 14, 23, 15,162, 23, 35, 1, 23, 1, 6,162,111,176,122, 64, 0, 2, 0,199,255,236, 7,158, 5,205, 0, 26, 0, 46, 0, 94, + 64, 60, 27, 91, 10,144, 17, 1, 17, 17, 13, 37, 91, 0,103, 48, 15, 48, 1, 63, 48,111, 48,127, 48,239, 48,255, 48, 5, 48, 64, + 17, 20, 72, 16, 12, 90, 13,100, 47, 42, 95, 22, 4, 11, 95, 15, 16, 1, 8, 16, 16, 13, 14, 3, 13, 18, 32, 95, 5, 19, 0, 63, +225, 63, 63, 18, 57, 47, 94, 93,225, 63,225, 1, 16,246,225, 50, 43, 93,113, 16,246,225, 17, 57, 47, 93, 51,225, 49, 48, 1, 20, + 2, 6, 6, 35, 34, 38, 38, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, + 52, 46, 2, 35, 34, 14, 2, 7,158, 79,155,229,150,151,225,152, 80, 6,254,174,186,186, 1, 86, 11, 85,152,219,145,149,229,154, + 79,251,250, 49,103,157,108,109,157,102, 48, 48,101,157,108,109,158,103, 49, 2,221,169,254,234,198,108,100,183, 1, 3,160,253, + 86, 5,182,253,152,146,236,167, 90,107,197,254,235,171,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, + 0, 25, 0, 0, 3,242, 5,182, 0, 15, 0, 28, 0,155, 64, 9, 6, 0, 1,230, 0,246, 0, 2, 0,184,255,248, 64, 36, 11, 15, + 72, 28, 14, 90, 3, 0, 0, 8, 13,101, 30, 63, 30,143, 30,159, 30,191, 30,223, 30, 5, 32, 30, 1, 6, 1, 1,230, 1,246, 1, + 2, 1,184,255,248, 64, 13, 11, 15, 72, 1, 75, 2, 1, 2, 64, 8, 11, 72, 2,184,255,240, 64, 38, 2, 2, 22, 91,223, 8,239, + 8,255, 8, 3, 8, 64, 15, 19, 72, 7, 8, 23, 8, 2, 8, 8,102, 29, 28, 96, 3, 15, 15, 1, 17, 96, 11, 3, 14, 1, 18, 0, + 63, 51, 63,225, 18, 57, 47, 51,225, 1, 16,246, 94, 93, 43, 93,225, 51, 47, 56, 43, 93, 51, 43, 93,113, 93, 93, 16,246, 17, 57, + 17, 51,225, 50, 43, 93,113, 49, 48, 1, 1, 35, 1, 46, 3, 53, 52, 54, 51, 33, 17, 35, 17, 17, 35, 34, 14, 2, 21, 20, 30, 2, + 51, 51, 2, 66,254,178,219, 1,125, 55, 99, 75, 44,253,251, 1,117,187,188, 74,115, 79, 41, 39, 78,119, 81,180, 2, 92,253,164, + 2,143, 20, 62, 97,136, 93,198,201,250, 74, 2, 92, 2,187, 29, 62, 97, 68, 66,105, 74, 40, 0,255,255, 0, 94,255,236, 3,156, + 4, 94, 2, 6, 0, 68, 0, 0, 0, 2, 0,117,255,236, 4, 33, 6, 35, 0, 39, 0, 59, 0, 73, 64, 44, 45, 72, 9, 30, 87, 61, +208, 61, 1,127, 61, 1, 64, 61, 1, 15, 61, 1, 6, 19, 55, 72, 0, 86, 60, 50, 80, 19, 25, 25, 8, 40, 80, 35, 22, 9, 8, 11, + 16, 72, 9, 81, 8, 1, 0, 63,225, 43, 63,225, 17, 57, 47, 51,225, 1, 16,246,225, 50, 94, 93, 93, 93, 93, 16,246, 50,225, 49, + 48, 19, 52, 18, 54, 54, 55, 54, 54, 55, 23, 14, 3, 7, 14, 3, 7, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, + 1, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 7, 20, 30, 2,117, 49,104,162,113,125,242,102, 33, 50,123,125,117, 44, 62,100, + 72, 41, 4, 13, 18, 62, 84,107, 64, 99,150,101, 50, 69,124,174,104,107,173,123, 66, 1,225, 60, 98, 70, 38, 26, 58, 90, 65, 61, +106, 83, 57, 13, 25, 65,114, 2,147,181, 1, 25,203,126, 25, 27, 49, 20,160, 8, 22, 24, 24, 10, 14, 66,113,165,113, 29, 60, 49, + 32, 73,131,180,108,137,206,138, 69, 89,173,253,254,148, 39, 88,143,105, 84,134, 95, 51, 48, 68, 73, 26,100,188,147, 89, 0, 3, + 0,174, 0, 0, 4, 25, 4, 74, 0, 21, 0, 32, 0, 43, 0, 92, 64, 58, 3, 27, 33, 70, 0, 0, 15, 22, 71, 9, 87, 45, 32, 45, + 1, 64, 45,144, 45,176, 45,208, 45,240, 45, 5, 15, 45, 1, 6, 38, 27, 71, 15, 84, 44, 3, 26, 80,191, 38, 1,121, 38,137, 38, + 2, 38, 38, 27, 37, 80, 16, 15, 27, 80, 15, 21, 0, 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, 16,246,225, 50, 94, 93, 93, +113, 16,246,225, 18, 57, 47,225, 18, 57, 49, 48, 1, 20, 6, 7, 21, 30, 3, 21, 20, 14, 2, 35, 33, 17, 33, 50, 30, 2, 3, 52, + 38, 35, 33, 17, 33, 50, 62, 2, 3, 52, 38, 35, 33, 17, 51, 50, 62, 2, 3,246,123,107, 56, 97, 71, 41, 47,101,159,113,254, 57, + 1,197, 83,142,103, 59,144,130,128,255, 0, 1, 4, 56, 93, 67, 38, 30,109,108,254,245,236, 62, 92, 63, 31, 3, 53,104,117, 18, + 7, 7, 36, 61, 91, 63, 67,116, 86, 48, 4, 74, 28, 64,107,253,199, 92, 72,254,168, 18, 42, 69, 2, 12, 77, 64,254,215, 15, 36, + 60, 0, 0, 1, 0,174, 0, 0, 3, 10, 4, 74, 0, 5, 0, 47, 64, 28, 0, 0, 16, 0, 2, 0, 0, 7,160, 7, 1,129, 7, 1, + 80, 7, 1, 2, 71, 3, 84, 6, 1, 80, 4, 15, 2, 21, 0, 63, 63,225, 1, 16,246,225, 93, 93, 93, 17, 51, 47, 93, 49, 48, 1, + 33, 17, 35, 17, 33, 3, 10,254, 90,182, 2, 92, 3,176,252, 80, 4, 74, 0, 2, 0, 41,254,131, 4, 55, 4, 74, 0, 15, 0, 23, + 0,121, 64, 16, 23, 7, 18, 70, 12, 47, 7, 63, 7, 2, 11, 7, 27, 7, 2, 7,184,255,240, 64, 57,162, 12,178, 12, 2, 4, 12, + 20, 12, 2, 7, 12, 7, 12, 5, 16, 71, 14, 1, 70, 0, 0, 32, 14, 1, 14, 85, 25,175, 25,207, 25, 2, 48, 25, 1, 47, 25, 1, + 4, 70, 5, 5, 24, 18, 79, 12, 15, 23, 14, 6, 80, 3, 21, 5, 0,251, 0, 63, 50, 63,225, 50, 50, 63,225, 17, 1, 51, 47,225, + 93, 93, 93, 16,228, 93, 50, 47,225, 16,225, 17, 57, 57, 47, 47, 93, 93, 56, 93, 93, 16,225, 17, 51, 49, 48, 1, 35, 17, 33, 17, + 35, 17, 51, 62, 2, 18, 55, 33, 17, 51, 33, 17, 35, 14, 3, 7, 4, 55,174,253, 78,174, 86, 65, 99, 67, 34, 1, 2, 23,151,254, +178,192, 7, 36, 58, 81, 52,254,131, 1,125,254,131, 2, 23, 95,223,243, 1, 0,127,252, 80, 3, 36,103,215,209,194, 83,255,255, + 0,113,255,236, 3,225, 4, 94, 2, 6, 0, 72, 0, 0, 0, 1, 0, 4, 0, 0, 5,190, 4, 74, 0, 17, 0,156, 64, 31, 6, 3, + 3, 10, 70, 15, 0, 0,214, 11, 1,185, 11,201, 11, 2,166, 11, 1,151, 11, 1, 11, 11, 14, 7, 4, 5, 5, 8, 7,184,255,192, +179, 18, 21, 72, 7,184,255,192, 64, 36, 7, 11, 72, 15, 7, 1, 6, 7, 16, 7, 7, 19, 0, 19, 16, 19, 2,223, 19, 1, 48, 19, +112, 19,144, 19, 3, 15, 19, 1, 7, 17, 16, 16, 13, 14,184,255,240, 64, 15, 14, 14, 18, 3, 0, 0, 1, 13, 8, 10, 21, 17, 4, + 1, 15, 0, 63, 51, 51, 63, 51, 51, 18, 57, 17, 51, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 93,113, 17, 51, 47, 56, 94, + 93, 43, 43, 51, 51, 17, 51, 17, 18, 57, 47, 93, 93, 93, 93, 51, 17, 51,225, 50, 17, 51, 49, 48, 1, 17, 51, 17, 1, 51, 1, 1, + 35, 1, 17, 35, 17, 1, 35, 1, 1, 51, 2,143,164, 1,160,197,254, 88, 1,206,206,254, 67,164,254, 68,207, 1,207,254, 88,197, + 2, 53, 2, 21,253,235, 2, 21,253,235,253,203, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21, 0, 1, 0, 68,255,236, 3, 82, + 4, 94, 0, 57, 0, 95, 64, 58, 5, 70, 22, 27, 22, 57, 22, 57, 22, 12, 52, 71, 33, 87, 59,176, 59,192, 59,208, 59, 3,111, 59, + 1, 32, 59, 1, 41, 12, 86, 58, 27, 56, 80,207, 57, 1,137, 57,153, 57, 2, 15, 57, 1, 8, 57, 57, 17, 47, 80, 38, 22, 8, 80, + 17, 16, 0, 63,225, 63,225, 17, 57, 47, 94, 93, 93, 93,225, 57, 1, 16,230, 50, 93, 93, 93, 16,246,225, 18, 57, 57, 47, 47, 18, + 57, 16,225, 49, 48, 1, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, + 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 38, 35, 35, 53, 1,113, 61,100, 72, 39,115,108, 71,129, 75, 63, + 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 44, 82, 63, 38, 53,108,166,113,109,175, 58, 31, 76, 87, 97, 51, 55, 96, 70, + 41,133,138,129, 2,135, 18, 39, 64, 45, 77, 77, 38, 34,147, 20, 28, 19, 9, 38, 74,109, 70, 50, 77, 59, 41, 14, 11, 14, 44, 66, + 90, 62, 67,117, 86, 49, 35, 34,166, 16, 31, 24, 15, 18, 42, 69, 51, 94, 91,153, 0, 1, 0,174, 0, 0, 4, 59, 4, 74, 0, 11, + 0, 81, 64, 27, 3, 16, 9, 24, 72, 3, 6, 70, 5, 85, 13, 0, 13, 16, 13, 32, 13,160, 13,192, 13,208, 13,240, 13, 7, 13,184, +255,192,179, 14, 17, 72, 9,184,255,240, 64, 17, 9, 24, 72, 9, 0, 70, 10, 84, 12, 8, 3, 11, 15, 6, 2, 10, 21, 0, 63, 51, + 51, 63, 51, 51, 1, 16,246,225, 50, 43, 43, 93, 16,246,225, 50, 43, 49, 48, 1, 17, 7, 1, 51, 17, 35, 17, 19, 1, 35, 17, 1, + 90, 12, 2, 4,233,172, 11,253,254,234, 4, 74,253,100,252, 3,152,251,182, 2,135, 1, 15,252,106, 4, 74, 0,255,255, 0,174, + 0, 0, 4, 59, 6, 23, 2, 38, 1,210, 0, 0, 1, 6, 2, 54, 37, 0, 0, 21,180, 1, 17, 17, 38, 1,184,255,255,180, 22, 12, + 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 3,229, 4, 74, 0, 10, 0, 65, 64, 35, 0, 1, 1, 4, 0, 3, + 16, 3, 2, 3, 16, 3, 3, 12, 15, 12, 1, 10, 2, 6, 71, 7, 84, 11, 5, 2, 10, 10, 7, 0, 8, 15, 4, 7, 21, 0, 63, 51, + 63, 51, 18, 57, 17, 51, 51, 1, 16,246,225, 50, 50, 93, 17, 51, 47, 56, 93, 51, 51, 17, 51, 49, 48, 1, 51, 1, 1, 35, 1, 17, + 35, 17, 51, 17, 2,250,196,254, 97, 1,198,206,254, 75,180,180, 4, 74,253,241,253,197, 2, 45,253,211, 4, 74,253,235, 0, 1, + 0, 16,255,242, 3,176, 4, 74, 0, 20, 0, 76, 64, 49, 3, 70, 4, 19, 1,244, 19, 1,128, 19,144, 19,192, 19,208, 19, 4, 84, + 19, 1, 19, 19, 11, 1, 71, 0, 85, 22, 15, 22, 47, 22,255, 22, 3, 6, 11, 11, 21, 3, 80, 19, 15, 14, 79, 8, 22, 1, 21, 0, + 63, 63,225, 63,225, 17, 1, 51, 47, 94, 93, 16,246,225, 17, 57, 47, 93, 93, 93,113,225, 49, 48, 33, 35, 17, 33, 2, 2, 6, 6, + 35, 34, 38, 39, 53, 22, 51, 50, 54, 54, 18, 55, 33, 3,176,182,254,254, 20, 64, 95,130, 86, 28, 49, 16, 23, 27, 55, 89, 69, 51, + 18, 2, 84, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250, 0, 1, 0,174, 0, 0, 5, 16, 4, 74, 0, 32, + 0, 94, 64, 63, 31, 1, 70, 0, 85, 34,207, 34, 1, 64, 34, 80, 34, 2, 15, 34, 1, 6, 19, 16, 70, 17, 84, 33, 2, 15, 59, 15, + 75, 15, 91, 15, 3, 9, 15, 25, 15, 41, 15, 3, 15, 31, 18, 15, 52, 25, 68, 25, 84, 25, 3, 6, 25, 22, 25, 38, 25, 3, 25, 9, + 1, 17, 21, 0, 63, 51, 51, 51, 93, 93, 63, 51, 51, 93, 93, 17, 51, 1, 16,246,225, 50, 94, 93, 93, 93, 16,246,225, 50, 49, 48, + 33, 35, 17, 14, 3, 7, 1, 35, 1, 46, 3, 39, 17, 35, 17, 51, 1, 30, 3, 23, 62, 3, 55, 1, 51, 5, 16,161, 6, 17, 20, 18, + 7,254,248,135,254,247, 5, 17, 20, 18, 7,162,221, 1, 11, 13, 22, 19, 15, 4, 6, 14, 19, 22, 13, 1, 14,217, 3,129, 21, 57, + 59, 54, 18,253, 80, 2,176, 13, 49, 59, 62, 26,252,127, 4, 74,253, 71, 34, 67, 60, 50, 16, 17, 49, 59, 65, 33, 2,189, 0, 1, + 0,174, 0, 0, 4, 59, 4, 74, 0, 11, 0, 91, 64, 23, 2, 6, 71, 5, 85, 13, 0, 13, 32, 13, 2, 48, 13, 64, 13, 80, 13,208, + 13,240, 13, 5, 13,184,255,192, 64, 35, 14, 17, 72, 1, 9, 71, 10, 84, 12, 8, 80,235, 1, 1,169, 1,185, 1, 2, 15, 1, 31, + 1, 47, 1, 3, 6, 1, 1, 10, 5, 21, 3, 0, 15, 0, 63, 50, 63, 51, 57, 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 43, 93, +113, 16,246,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1,100, 2, 33,182,182,253,223,182, 4, 74,254, 57, + 1,199,251,182, 1,233,254, 23, 4, 74,255,255, 0,113,255,236, 4, 45, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0,174, 0, 0, + 4, 18, 4, 74, 0, 7, 0, 45, 64, 28, 5, 71, 4, 85, 9, 16, 9, 32, 9, 96, 9,112, 9,128, 9, 5, 0, 71, 1, 84, 8, 7, + 80, 2, 15, 5, 0, 21, 0, 63, 50, 63,225, 1, 16,246,225, 93, 16,246,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 1,100,182, + 3,100,182,254, 8, 4, 74,251,182, 3,176, 0,255,255, 0,174,254, 20, 4, 63, 4, 94, 2, 6, 0, 83, 0, 0,255,255, 0,113, +255,236, 3,111, 4, 94, 2, 6, 0, 70, 0, 0, 0, 1, 0, 41, 0, 0, 3, 94, 4, 74, 0, 7, 0, 88, 64, 60, 32, 9, 1,223, + 9, 1,112, 9,128, 9, 2, 95, 9, 1, 15, 0, 1,204, 0, 1, 15, 0,191, 0, 2, 6, 0, 0, 2, 71, 3, 96, 5,112, 5,208, + 5, 3, 31, 5, 1, 5, 5, 0, 3, 16, 3,176, 3,192, 3, 4, 3, 1, 5, 80, 6, 15, 2, 21, 0, 63, 63,225, 50, 1, 47, 93, + 51, 47, 93, 93, 16,225, 50, 47, 94, 93, 93,113, 93, 93, 93,113, 49, 48, 1, 33, 17, 35, 17, 33, 53, 33, 3, 94,254,193,183,254, +193, 3, 53, 3,176,252, 80, 3,176,154,255,255, 0, 10,254, 20, 3,223, 4, 74, 2, 6, 0, 92, 0, 0, 0, 3, 0,113,254, 20, + 5, 35, 6, 20, 0, 25, 0, 34, 0, 41, 0,116, 64, 75, 39, 0, 11, 70, 29, 23, 12, 13, 19, 73,185, 12,201, 12, 2,151, 12,167, + 12, 2, 12, 12, 18, 35, 72, 5, 87, 43, 32, 43, 1, 15, 43, 1,159, 43,239, 43, 2,128, 43, 1,111, 43, 1, 64, 43, 1, 15, 43, + 31, 43, 2, 6, 26, 72, 18, 86, 42, 24, 0, 38, 30, 80, 0, 23, 16, 39, 29, 80, 10, 13, 22, 11, 27, 0, 63, 63, 51,225, 50, 63, + 51,225, 50, 63, 1, 16,246,225, 94, 93, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 43, 51, 51,225, 50, 50, 49, 48, + 1, 30, 3, 21, 20, 14, 2, 7, 17, 35, 17, 46, 3, 53, 52, 62, 2, 55, 17, 51, 1, 20, 22, 23, 17, 14, 3, 5, 52, 38, 39, 17, + 54, 54, 3, 33,113,189,136, 76, 71,134,190,119,170,114,191,137, 76, 71,133,193,121,170,254, 12,156,174, 88,125, 80, 37, 3, 57, +155,170,172,153, 4, 90, 12, 85,143,198,125,125,200,145, 86, 11,254, 36, 1,220, 10, 86,144,201,126,125,199,143, 85, 11, 1,186, +252, 19,187,210, 19, 3, 60, 9, 61,103,145, 94,186,204, 20,252,198, 20,209, 0,255,255, 0, 35, 0, 0, 3,219, 4, 74, 2, 6, + 0, 91, 0, 0, 0, 1, 0,174,254,131, 4,178, 4, 74, 0, 11, 0, 68, 64, 43, 1, 71, 15, 0, 1, 6, 0, 0, 7, 71,143, 10, + 1, 10, 13, 16, 13, 32, 13, 96, 13,112, 13,128, 13,192, 13, 6, 6, 71, 3, 84, 12, 8, 4, 15, 10, 6, 80, 3, 21, 1,251, 0, + 63, 63,225, 50, 63, 51, 1, 16,246,225, 93, 16,212, 93,225, 51, 47, 94, 93,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, + 17, 51, 4,178,182,252,178,182, 1,248,182,160,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 0, 1, 0,154, 0, 0, 3,254, + 4, 74, 0, 24, 0, 49, 64, 28, 8, 12, 71, 11, 85, 26, 16, 26, 96, 26,128, 26, 3, 1, 71, 23, 84, 25, 8, 3, 80, 18, 18, 11, + 21, 9, 0, 15, 0, 63, 50, 63, 57, 47,225, 51, 1, 16,246,225, 93, 16,246,225, 50, 49, 48, 1, 17, 20, 51, 50, 62, 2, 55, 17, + 51, 17, 35, 17, 14, 3, 35, 34, 46, 2, 53, 17, 1, 80,184, 45, 80, 76, 77, 42,182,182, 44, 80, 85, 94, 58, 78,122, 82, 43, 4, + 74,254,102,174, 15, 28, 44, 28, 1,213,251,182, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1,166, 0, 1, 0,174, 0, 0, 6, 70, + 4, 74, 0, 11, 0,102, 64, 67, 0, 71,182, 9,198, 9, 2,169, 9, 1, 3,116, 9,132, 9,148, 9, 3,103, 9, 1, 6, 9, 9, + 5, 1, 71, 4, 85, 13, 32, 13, 1, 15, 13, 1,128, 13,240, 13, 2,111, 13, 1, 64, 13, 1, 15, 13, 47, 13, 2, 6, 8, 71, 5, + 84, 12, 0, 8, 80, 5, 21, 10, 6, 2, 15, 0, 63, 51, 51, 63,225, 50, 1, 16,246,225, 94, 93, 93, 93, 93,113,113, 16,246,225, + 17, 57, 47, 95, 93, 93, 95, 93, 93,225, 49, 48, 37, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 3,213, 1,186,183,250,104,182, + 1,187,182,154, 3,176,251,182, 4, 74,252, 80, 3,176, 0, 1, 0,174,254,131, 6,229, 4, 74, 0, 15, 0,119, 64, 78, 10, 71, +182, 7,198, 7, 2,169, 7, 1, 3,116, 7,132, 7,148, 7, 3,103, 7, 1, 6, 7, 7, 3, 11, 71, 14, 1, 71, 14, 0, 1, 0, + 0,191, 14, 1, 14, 17, 32, 17, 1, 15, 17, 1, 64, 17,128, 17,224, 17,240, 17, 4, 15, 17, 47, 17, 2, 6, 6, 71, 3, 84, 16, + 12, 8, 4, 15, 14, 10, 6, 80, 3, 21, 1,251, 0, 63, 63,225, 50, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113,113, 16,196, + 93, 50, 47, 93,225, 16,225, 17, 57, 47, 95, 93, 93, 95, 93, 93,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, + 51, 17, 51, 6,229,182,250,127,182, 1,187,182, 1,186,183,159,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 3,176,252, 80, + 0, 2, 0, 41, 0, 0, 4,252, 4, 74, 0, 14, 0, 27, 0, 92, 64, 62, 15, 71, 4, 87, 29, 80, 29, 96, 29,144, 29,224, 29, 4, + 63, 29, 1, 0, 22, 71, 10, 0, 12, 16, 12, 2,176, 12,240, 12, 2, 12, 12, 0, 10, 16, 10, 80, 10, 96, 10,160, 10, 5, 8, 10, + 21, 80,191, 0, 1, 0, 0, 22, 12, 80, 13, 15, 22, 80, 10, 21, 0, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47, 94, 93, 51, 47, + 93,113, 16,225, 50, 93, 93, 16,246,225, 49, 48, 1, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 1, 52, 46, 2, 35, 33, + 17, 33, 50, 62, 2, 2, 72, 1, 20,212,204, 47,101,159,113,254, 57,254,152, 2, 31, 2, 2, 33, 65, 96, 64,255, 0, 1, 4, 55, + 93, 68, 38, 2,135,156,155, 77,124, 88, 47, 3,176,154,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 0, 3, 0,174, 0, 0, + 5, 80, 4, 74, 0, 12, 0, 16, 0, 29, 0, 97, 64, 64, 24, 71, 0, 4, 16, 4, 32, 4,112, 4,208, 4, 5, 6, 4, 4, 10, 14, + 71, 13, 85, 31, 15, 31, 1,191, 31,207, 31,223, 31,255, 31, 4,160, 31, 1, 15, 31,127, 31, 2, 7, 0, 18, 71, 10, 84, 30, 17, + 80,191, 0, 1, 0, 0, 15, 11, 15, 18, 80, 14, 10, 21, 0, 63, 51,225, 63, 51, 57, 47, 93,225, 1, 16,246,225, 50, 94, 93, 93, + 93,113, 16,246,225, 17, 57, 47, 94, 93,225, 49, 48, 1, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 51, 1, 35, 17, 51, 1, 17, 51, + 50, 62, 2, 53, 52, 46, 2, 35, 1,100,236,212,204, 47,101,159,113,254, 98,182, 3,236,182,182,252, 20,219, 56, 93, 67, 38, 33, + 65, 96, 64, 2,135,156,155, 77,124, 88, 47, 4, 74,251,182, 4, 74,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 0, 2, + 0,174, 0, 0, 4, 25, 4, 74, 0, 12, 0, 25, 0, 64, 64, 41, 20, 71, 4, 87, 27, 0, 27, 1, 0, 27, 32, 27,112, 27,144, 27, +176, 27,208, 27, 6, 8, 0, 14, 71, 10, 84, 26, 13, 80,191, 0, 1, 0, 0, 11, 15, 14, 80, 10, 21, 0, 63,225, 63, 57, 47, 93, +225, 1, 16,246,225, 50, 94, 93,113, 16,246,225, 49, 48, 1, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 51, 17, 17, 33, 50, 62, 2, + 53, 52, 46, 2, 35, 1,100, 1, 21,212,204, 47,101,159,113,254, 57,182, 1, 4, 56, 93, 67, 38, 33, 65, 96, 64, 2,135,156,155, + 77,124, 88, 47, 4, 74,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 1, 0, 55,255,236, 3, 66, 4, 94, 0, 38, 0, 94, + 64, 62, 14, 14, 4, 12, 15, 72, 34, 87, 40,143, 40,175, 40, 2, 64, 40, 1, 24, 15, 4, 31, 4, 47, 4, 3, 4, 64, 12, 17, 72, + 4, 88, 39, 13, 80,239, 14, 1,169, 14,185, 14, 2, 15, 14, 31, 14, 47, 14, 3, 6, 14, 14, 7, 18, 81, 29, 16, 7, 81, 0, 22, + 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93, 93,225, 1, 16,230, 43,113, 50, 93, 93, 16,246,225, 50, 17, 57, 47, 49, 48, 5, 34, + 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 33, 53, 33, 38, 38, 35, 34, 14, 2, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 1, + 66, 89,124, 54, 54,131, 82, 73,116, 82, 48, 4,254, 35, 1,219, 13,146,140, 25, 59, 60, 56, 23, 53, 24, 64, 72, 78, 38,102,179, +132, 77, 81,140,186, 20, 30, 29,162, 25, 37, 40, 84,132, 92,154,166,151, 9, 15, 19, 10,154, 12, 22, 16, 9, 62,137,219,157,146, +212,138, 67, 0, 0, 2, 0,174,255,236, 6, 8, 4, 94, 0, 26, 0, 38, 0,114, 64, 75, 27, 72, 10, 32, 17, 1, 79, 17, 1, 17, + 17, 13, 33, 72, 0, 87, 40, 15, 40, 47, 40, 2,239, 40,255, 40, 2, 71, 40, 1, 15, 40, 47, 40, 2, 16, 12, 71, 13, 84, 39, 36, + 80, 22, 16, 11, 80,239, 16, 1,169, 16,185, 16, 2, 44, 16, 1, 11, 16, 27, 16, 2, 6, 16, 16, 13, 14, 15, 13, 21, 30, 80, 5, + 22, 0, 63,225, 63, 63, 18, 57, 47, 94, 93, 93, 93, 93,225, 63,225, 1, 16,246,225, 50, 93, 93, 93,113, 16,246,225, 17, 57, 47, + 93,113, 51,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 30, 2, 5, 20, 22, 51, + 50, 54, 53, 52, 38, 35, 34, 6, 6, 8, 64,120,171,106, 98,162,117, 70, 7,254,239,182,182, 1, 19, 10, 72,118,160, 99, 98,167, +121, 68,253, 41,128,142,143,126,128,143,142,126, 2, 39,137,213,145, 76, 66,129,190,124,254, 23, 4, 74,254, 57,116,177,120, 62, + 75,145,211,136,209,211,211,209,209,207,207, 0, 0, 2, 0, 35, 0, 0, 3,145, 4, 74, 0, 17, 0, 28, 0, 83, 64, 20, 2, 17, + 17, 7, 24, 15, 71, 14, 85, 30, 15, 30,111, 30,143, 30, 3, 6, 0, 1,184,255,240, 64, 25, 1, 1, 18, 70, 7, 64, 18, 21, 72, + 7, 86, 29, 2, 16, 80, 24, 24, 0, 25, 80, 13, 15, 15, 0, 21, 0, 63, 50, 63,225, 18, 57, 47,225, 50, 1, 16,246, 43,225, 51, + 47, 56, 51, 94, 93, 16,246,225, 50, 17, 57, 17, 51, 49, 48, 51, 35, 1, 46, 3, 53, 52, 62, 2, 51, 33, 17, 35, 17, 35, 3, 20, + 30, 2, 51, 51, 17, 35, 34, 6,233,198, 1, 35, 45, 84, 65, 40, 56,100,138, 83, 1,188,182,244,221, 37, 65, 90, 54,219,254,107, +104, 1,205, 12, 48, 76,108, 71, 78,121, 81, 42,251,182, 1,176, 1, 84, 48, 70, 46, 22, 1,102, 95, 0,255,255, 0,113,255,236, + 3,225, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106,218, 0, 0, 23, 64, 13, 3, 2, 49, 17, 38, 3, 2, 0, 40, 60, 5, 15, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 18,254, 20, 4, 18, 6, 20, 0, 49, 0, 83, 64, 50, 31, 23, 12, 71, 45, 85, + 51, 16, 51, 96, 51,128, 51, 3, 35, 34, 30, 22, 71, 27, 23, 84, 50, 33, 25, 79, 30, 26, 26, 28, 35, 16, 80, 0, 41, 16, 41, 32, + 41, 3, 41, 15, 28, 0, 23, 21, 7, 80, 0, 27, 0, 63,225, 63, 63, 63, 93,225, 51, 18, 57, 47, 51,225, 50, 1, 16,246, 50,225, + 50, 50, 50, 93, 16,246,225, 18, 57, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 52, 38, 35, 34, 14, 2, 21, 17, + 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 20, 14, 2, 2,240, 48, 63, 23, 26, 54, 35, + 27, 46, 35, 19,105,112, 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, 25, 69, 82, 92, 48,183,185, 34, 72,109,254, 20, + 14, 11,148, 10, 11, 15, 39, 65, 51, 3, 68,130,130, 52,102,148, 96,253,240, 4,213,137,182,182,137,184,144, 43, 63, 42, 20,191, +210,252,190, 77,123, 87, 47, 0,255,255, 0,174, 0, 0, 3, 10, 6, 33, 2, 38, 1,205, 0, 0, 1, 6, 0,118,212, 0, 0, 19, + 64, 11, 1, 18, 17, 38, 1, 69, 6, 12, 3, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,113,255,236, 3,111, 4, 94, 0, 34, + 0, 79, 64, 49, 23, 23, 22, 31, 13, 36,143, 36,175, 36, 2, 64, 36, 1, 22, 25, 72, 5, 86, 35, 25, 80,239, 22, 1,169, 22,185, + 22, 2, 15, 22, 31, 22, 47, 22, 3, 6, 22, 22, 28, 19, 81, 10, 16, 28, 81, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93, + 93,225, 1, 16,246,225, 50, 93, 93, 16,206, 50, 17, 57, 47, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, + 35, 34, 6, 7, 33, 21, 33, 22, 22, 51, 50, 54, 55, 21, 6, 6, 2, 82,101,176,130, 74, 76,133,178,102, 78,149, 50, 54, 23, 56, + 60, 58, 26,139,146, 14, 1,219,254, 35, 9,146,138, 81,131, 54, 54,123, 20, 63,137,213,150,157,219,137, 62, 34, 25,154, 10, 19, + 15, 9,151,166,154,184,164, 37, 25,162, 29, 30,255,255, 0, 90,255,236, 3, 63, 4, 94, 2, 6, 0, 86, 0, 0,255,255, 0,160, + 0, 0, 1,117, 5,229, 2, 6, 0, 76, 0, 0,255,255,255,238, 0, 0, 2, 37, 5,217, 2, 38, 0,243, 0, 0, 1, 7, 0,106, +254,187, 0, 0, 0, 23, 64, 13, 2, 1, 13, 17, 38, 2, 1, 0, 4, 24, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, +255,188,254, 20, 1,117, 5,229, 2, 6, 0, 77, 0, 0, 0, 2, 0, 16,255,242, 6, 18, 4, 74, 0, 29, 0, 42, 0,107, 64, 69, + 12, 70, 28, 0, 37, 71, 10,212, 28, 1,144, 28,160, 28, 2, 36, 28, 1, 0, 28, 1, 28, 10, 28, 10, 20, 30, 71, 4, 87, 44, 15, + 44, 47, 44, 63, 44, 95, 44,127, 44,191, 44,239, 44, 7, 20, 20, 43, 36, 80,191, 0, 1, 0, 0, 37, 12, 80, 28, 15, 23, 79, 17, + 22, 37, 80, 10, 21, 0, 63,225, 63,225, 63,225, 18, 57, 47, 93,225, 17, 1, 51, 47, 93, 16,246,225, 17, 57, 57, 47, 47, 93, 93, + 93, 93, 16,225, 50, 16,225, 49, 48, 1, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, 51, + 50, 54, 54, 18, 55, 33, 1, 52, 46, 2, 35, 35, 17, 51, 50, 62, 2, 3,135,236,212,203, 46,101,159,113,254, 98,217, 20, 64, 95, +130, 86, 28, 49, 16, 23, 27, 55, 89, 69, 51, 18, 2, 43, 1,217, 33, 65, 96, 64,215,219, 56, 93, 67, 38, 2,135,156,155, 77,124, + 88, 47, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 2, + 0,174, 0, 0, 6,117, 4, 74, 0, 20, 0, 33, 0, 83, 64, 48, 5, 28, 71, 2, 15, 15, 19, 21, 71, 9, 87, 35,239, 35, 1,128, + 35, 1, 63, 35, 1, 16, 35, 1, 1, 18, 71, 19, 84, 34, 27, 17, 80, 5,191, 1, 1, 1, 1, 0, 28, 80, 19, 15, 21, 3, 0, 15, + 0, 63, 50, 63, 51,225, 17, 57, 47, 93, 51,225, 50, 1, 16,246,225, 50, 93, 93, 93, 93, 16,246,225, 17, 57, 47, 51,225, 50, 49, + 48, 1, 17, 33, 17, 51, 17, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 33, 17, 35, 17, 1, 52, 46, 2, 35, 35, 17, 51, 50, 62, 2, + 1,100, 1,207,182,236,212,204, 47,101,159,113,254, 98,254, 49,182, 5, 21, 33, 65, 97, 63,216,220, 55, 93, 68, 38, 4, 74,254, + 57, 1,199,254, 61,156,155, 77,124, 88, 47, 1,233,254, 23, 4, 74,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 1, 0, 18, + 0, 0, 4, 18, 6, 20, 0, 33, 0, 83, 64, 50,104, 20, 1, 20, 11, 0, 71, 33, 85, 35, 16, 35, 96, 35,128, 35, 3, 23, 22, 18, + 10, 71, 15, 11, 84, 34, 21, 13, 79, 18, 14, 14, 16, 23, 4, 80, 0, 29, 16, 29, 32, 29, 3, 29, 15, 16, 0, 11, 0, 21, 0, 63, + 50, 63, 63, 93,225, 51, 18, 57, 47, 51,225, 50, 1, 16,246, 50,225, 50, 50, 50, 93, 16,246,225, 17, 57, 93, 49, 48, 33, 17, 52, + 38, 35, 34, 14, 2, 21, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, + 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, 25, 69, 82, 92, 48,183,185, 2,154,130,130, 52,102,148, 96,253,240, 4, +213,137,182,182,137,184,144, 43, 63, 42, 20,191,210,253, 92, 0,255,255, 0,174, 0, 0, 3,229, 6, 33, 2, 38, 1,212, 0, 0, + 1, 6, 0,118, 8, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 12, 11, 17, 7, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10, +254, 20, 3,223, 6, 23, 2, 38, 0, 92, 0, 0, 1, 6, 2, 54,177, 0, 0, 19, 64, 11, 1, 40, 17, 38, 1, 10, 45, 35, 0, 15, + 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174,254,131, 4, 18, 4, 74, 0, 11, 0, 89, 64, 61,214, 6, 1,183, 6,199, 6, 2, + 6, 71,181, 7,197, 7,213, 7, 3,118, 7,134, 7, 2, 74, 7, 90, 7, 2, 7, 7, 9, 1, 71, 4, 85, 13, 16, 13, 32, 13, 96, + 13,112, 13,128, 13, 5, 0, 71, 9, 84, 12, 5, 0, 80, 9, 21, 6,251, 10, 2, 15, 0, 63, 51, 63, 63,225, 51, 1, 16,246,225, + 93, 16,246,225, 17, 57, 47, 93, 93, 93,225, 93, 93, 49, 48, 37, 33, 17, 51, 17, 33, 17, 35, 17, 33, 17, 51, 1,100, 1,248,182, +254,179,183,254,160,182,154, 3,176,251,182,254,131, 1,125, 4, 74, 0, 0, 1, 0,199, 0, 0, 3,190, 6,227, 0, 7, 0, 68, + 64, 44, 0, 90,223, 3,239, 3,255, 3, 3, 0, 3, 16, 3, 2, 3, 3, 9,176, 9,208, 9, 2, 15, 9,175, 9, 2, 5, 90, 6, +100, 8, 4, 95, 7, 32, 1, 1, 1, 1, 7, 3, 6, 18, 0, 63, 63, 51, 47, 93, 16,225, 1, 16,246,225, 93, 93, 17, 51, 47, 93, + 93,225, 49, 48, 1, 17, 51, 17, 33, 17, 35, 17, 3, 14,176,253,195,186, 5,182, 1, 45,254, 45,250,240, 5,182, 0, 1, 0,174, + 0, 0, 3, 10, 5,137, 0, 7, 0, 48, 64, 28, 5, 71, 0, 0, 16, 0, 2, 0, 0, 9, 2, 71, 3, 84, 8, 16, 6, 32, 6, 2, + 6, 6, 1, 79, 4, 15, 2, 21, 0, 63, 63,225, 51, 47, 93, 1, 16,246,225, 17, 51, 47, 93,225, 49, 48, 1, 33, 17, 35, 17, 33, + 17, 51, 3, 10,254, 90,182, 1,166,182, 3,193,252, 63, 4, 74, 1, 63,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, + 0, 0, 1, 7, 0, 67, 0,231, 1, 82, 0, 21,180, 1, 43, 5, 38, 1,184,255,172,180, 49, 43, 30, 14, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0, 20, 0, 0, 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0, 67, 76, 0, 0, 21,180, 1, 48, 17, 38, 1, +184,255,158,180, 54, 48, 17, 46, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, 0, 0, + 1, 7, 0,118, 1,160, 1, 82, 0, 19, 64, 11, 1, 55, 5, 38, 1,100, 43, 49, 30, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 20, 0, 0, 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 7, 0,118, 1, 23, 0, 0, 0, 19, 64, 11, 1, 60, 17, 38, 1,105, + 48, 54, 17, 46, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7, 43, 2, 38, 0, 58, 0, 0, 1, 7, 0,106, + 1, 57, 1, 82, 0, 25,182, 2, 1, 52, 5, 38, 2, 1,184,255,255,180, 43, 63, 30, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 20, 0, 0, 5,227, 5,217, 2, 38, 0, 90, 0, 0, 1, 7, 0,106, 0,172, 0, 0, 0, 25,182, 2, 1, 57, 17, 38, + 2, 1,184,255,255,180, 48, 68, 17, 46, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, + 0, 60, 0, 0, 1, 7, 0, 67,255,114, 1, 82, 0, 21,180, 1, 9, 5, 38, 1,184,255,164,180, 15, 9, 7, 2, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, 1, 7, 0, 67,255, 75, 0, 0, 0, 21,180, 1, + 35, 17, 38, 1,184,255,164,180, 41, 35, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0, 82, 1,209, 3,174, 2,121, 0, 3, + 0, 29,185, 0, 2,255,192, 64, 11, 6, 12, 72, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, + 53, 33, 21, 82, 3, 92, 1,209,168,168, 0, 1, 0, 82, 1,209, 7,174, 2,121, 0, 3, 0, 29,185, 0, 2,255,192, 64, 11, 6, + 12, 72, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, 53, 33, 21, 82, 7, 92, 1,209,168,168, + 0, 1, 0, 82, 1,209, 7,174, 2,121, 0, 3, 0, 29,185, 0, 2,255,192, 64, 11, 6, 12, 72, 2, 2, 5, 0, 0,185, 1,189, + 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, 53, 33, 21, 82, 7, 92, 1,209,168,168, 0, 2,255,252,254, 49, 3, 78,255,211, + 0, 3, 0, 7, 0, 42, 64, 24, 4, 0, 0, 9, 5, 1, 5,186,239, 6,255, 6, 2, 6, 2,186, 0, 1, 16, 1, 32, 1, 3, 1, + 0, 47, 93,225, 47, 93,225, 1, 47, 51, 17, 51, 47, 51, 49, 48, 1, 33, 53, 33, 53, 33, 53, 33, 3, 78,252,174, 3, 82,252,174, + 3, 82,254, 49,139,140,139, 0, 0, 1, 0, 23, 3,193, 1, 80, 5,182, 0, 12, 0, 37, 64, 23, 95, 14, 1, 6, 15, 7, 95, 7, +111, 7,191, 7,207, 7, 5, 7, 12,152, 1, 12,156, 6, 3, 0, 63,229, 1, 47,225, 47, 93, 51, 93, 49, 48, 19, 39, 62, 3, 55, + 51, 14, 3, 7, 37, 14, 14, 39, 46, 52, 25,137, 15, 29, 26, 22, 8, 3,193, 22, 54,122,124,123, 56, 61,132,131,124, 53, 0, 1, + 0, 23, 3,193, 1, 80, 5,182, 0, 12, 0, 37, 64, 23, 95, 14, 1, 6, 7, 12,152, 15, 1, 95, 1,111, 1,191, 1,207, 1, 5, + 1, 6,156, 0, 3, 0, 63,229, 1, 47, 93,225, 47, 51, 93, 49, 48, 1, 23, 14, 3, 7, 35, 62, 3, 55, 1, 66, 14, 14, 39, 47, + 51, 25,137, 14, 29, 27, 22, 8, 5,182, 22, 55,121,125,122, 56, 60,132,132,124, 53, 0, 0, 1, 0, 63,254,248, 1,121, 0,238, + 0, 12, 0, 53,185, 0, 14,255,192, 64, 20, 10, 24, 72, 12,152, 15, 1, 95, 1,111, 1,127, 1,207, 1, 5, 1, 1, 6, 7,184, +255,192,183, 16, 21, 72, 7, 6,156, 0,168, 0, 63,229, 1, 47, 43, 51, 51, 47, 93,225, 43, 49, 48, 37, 23, 14, 3, 7, 35, 62, + 3, 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 1, 0, 25, + 3,193, 1, 82, 5,182, 0, 12, 0, 43, 64, 28, 95, 14, 1, 6, 15, 5, 95, 5,111, 5,127, 5,191, 5,207, 5,223, 5, 7, 5, + 5, 0,152, 11, 6,156, 0, 3, 0, 63,229, 1, 47,225, 51, 47, 93, 51, 93, 49, 48, 19, 30, 3, 23, 35, 46, 3, 39, 55,238, 8, + 22, 26, 29, 15,137, 25, 52, 46, 39, 14, 14, 5,182, 53,124,132,132, 60, 56,122,125,121, 55, 22, 0, 2, 0, 23, 3,193, 2,209, + 5,182, 0, 12, 0, 25, 0, 98, 64, 72,191, 27, 1,144, 27, 1, 15, 27, 95, 27,111, 27, 3, 19, 15, 20, 95, 20,111, 20,127, 20, +191, 20,207, 20,223, 20, 7, 20, 20, 25,152, 14, 12,152, 0, 1, 80, 1, 96, 1,112, 1,176, 1,192, 1,208, 1, 7, 1, 1, 6, + 15, 7, 95, 7,111, 7,191, 7,207, 7, 5, 7, 25, 12,156, 19, 6, 3, 0, 63, 51,229, 50, 1, 47, 93, 51, 51, 47, 93,225, 47, +225, 51, 47, 93, 51, 93, 93, 93, 49, 48, 1, 39, 62, 3, 55, 51, 14, 3, 7, 33, 39, 62, 3, 55, 51, 14, 3, 7, 1,166, 14, 14, + 39, 46, 52, 25,137, 15, 29, 26, 22, 8,253,184, 14, 14, 39, 46, 52, 25,137, 15, 29, 26, 22, 8, 3,193, 22, 54,122,124,123, 56, + 61,132,131,124, 53, 22, 54,122,124,123, 56, 61,132,131,124, 53, 0, 2, 0, 23, 3,193, 2,209, 5,182, 0, 12, 0, 25, 0, 98, + 64, 72,191, 27, 1,144, 27, 1, 15, 27, 95, 27,111, 27, 3, 19, 0, 20, 80, 20, 96, 20,112, 20,176, 20,192, 20,208, 20, 7, 20, + 20, 25,152, 15, 14, 95, 14,111, 14,191, 14,207, 14, 5, 14, 12,152, 15, 1, 95, 1,111, 1,127, 1,191, 1,207, 1,223, 1, 7, + 1, 1, 6, 7, 19, 6,156, 13, 0, 3, 0, 63, 50,229, 50, 1, 47, 51, 51, 47, 93,225, 47, 93,225, 51, 47, 93, 51, 93, 93, 93, + 49, 48, 1, 23, 14, 3, 7, 35, 62, 3, 55, 33, 23, 14, 3, 7, 35, 62, 3, 55, 1, 66, 14, 14, 39, 47, 51, 25,137, 14, 29, 27, + 22, 8, 2, 72, 14, 14, 39, 47, 51, 25,137, 14, 29, 27, 22, 8, 5,182, 22, 55,121,125,122, 56, 60,132,132,124, 53, 22, 55,121, +125,122, 56, 60,132,132,124, 53, 0, 2, 0, 63,254,248, 2,250, 0,238, 0, 12, 0, 25, 0,126, 64, 81,208, 27,224, 27,240, 27, + 3,164, 27,180, 27,196, 27, 3,144, 27, 1, 2, 32, 27, 48, 27, 64, 27, 96, 27,112, 27,128, 27, 6, 19, 0, 20, 80, 20, 96, 20, +112, 20,192, 20,208, 20, 6, 20, 20, 25,152,144, 14,224, 14,240, 14, 3, 15, 14, 95, 14, 2, 14, 12,152, 15, 1, 95, 1,111, 1, +127, 1,207, 1,223, 1, 6, 1, 1, 6, 7,184,255,192, 64, 10, 16, 24, 72, 7, 19, 6,156, 13, 0,168, 0, 63, 50,229, 50, 1, + 47, 43, 51, 51, 47, 93,225, 47, 93, 93,225, 51, 47, 93, 51, 93, 95, 93, 93, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, 3, 55, 33, + 23, 14, 3, 7, 35, 62, 3, 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8, 2, 72, 14, 14, 39, 47, 51, 25,137, 14, + 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 0, 1, 0,123, + 0, 0, 3,104, 6, 20, 0, 11, 0,124, 64, 82,144, 13,160, 13,224, 13,240, 13, 4,111, 13, 1, 16, 13, 48, 13, 64, 13, 3, 7, + 6,192, 4, 8, 8, 3,228, 11,244, 11, 2,214, 11, 1,119, 11, 1,106, 11, 1, 84, 11, 1, 69, 11, 1, 38, 11, 1, 11,192, 9, + 10, 1, 9, 9, 54, 2, 1, 2,190, 0, 3, 16, 3,160, 3, 3, 3, 4, 1, 0, 5,191, 11, 10, 7, 6,194, 8, 0, 3, 0, 47, + 63,246, 50, 50, 50,225, 50, 50, 50, 1, 47, 93,225, 93, 50, 17, 51, 51, 16,230, 93, 93, 93, 93, 93, 93, 93, 17, 51, 47, 51,230, + 51, 93, 93, 93, 49, 48, 1, 37, 19, 35, 19, 5, 53, 5, 3, 51, 3, 37, 3,104,254,181, 55,217, 55,254,201, 1, 55, 55,217, 55, + 1, 75, 3,221, 31,252, 4, 3,252, 31,180, 30, 1,161,254, 95, 30, 0, 0, 1, 0,123, 0, 0, 3,125, 6, 20, 0, 21, 0,176, + 64,113, 0, 23, 1,160, 23,176, 23,240, 23, 3,127, 23, 1, 32, 23, 64, 23, 80, 23, 3, 8, 13,192, 14, 11, 15, 15, 5, 1, 4, + 18, 1,244, 18, 1,230, 18, 1,135, 18, 1,122, 18, 1,100, 18, 1, 85, 18, 1, 54, 18, 70, 18, 2, 18,192, 16, 20, 17, 16, 16, + 21, 3, 0, 4,190, 5, 10, 10, 9, 6, 0, 5, 1, 0, 5, 16, 5, 32, 5, 80, 5,160, 5,176, 5, 6, 8, 5, 20, 19, 11, 12, +191, 18, 17, 14, 13,194, 15, 0, 9, 1, 0, 8,191, 6, 3, 2, 7,194, 5, 0, 47,246, 50, 50, 50,225, 50, 50, 50, 63,246, 50, + 50, 50,225, 50, 50, 50, 1, 47, 94, 93,113, 51, 51, 51, 47, 16,225, 50, 50, 50, 50, 17, 51, 51, 16,230, 93, 93, 93, 93, 93, 93, + 93,113, 50, 17, 51, 47, 51, 51,230, 50, 93, 93, 93,113, 49, 48, 1, 37, 21, 37, 19, 35, 19, 5, 53, 5, 3, 19, 5, 53, 5, 3, + 51, 3, 37, 21, 37, 19, 2, 49, 1, 76,254,180, 55,217, 56,254,180, 1, 76, 47, 47,254,180, 1, 76, 56,217, 55, 1, 76,254,180, + 47, 1,240, 30,180, 31,254,135, 1,121, 31,180, 30, 1, 34, 1, 19, 31,180, 30, 1,120,254,136, 30,180, 31,254,237, 0, 0, 1, + 0,150, 1,229, 2,109, 3,242, 0, 19, 0, 70, 64, 36, 47, 21, 95, 21,111, 21,127, 21,207, 21,239, 21,255, 21, 7, 16, 21, 1, + 95, 10,111, 10,159, 10,175, 10,223, 10,239, 10, 6, 10,208, 0, 1, 0,184,255,192, 64, 12, 7, 10, 72, 0, 31, 15, 1, 15, 16, + 5, 1, 5, 0, 47, 93,197, 93, 1, 47, 43, 93,197, 93, 93, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, + 46, 2,150, 36, 63, 86, 50, 49, 86, 64, 37, 37, 64, 86, 49, 50, 86, 63, 36, 2,236, 71,100, 63, 28, 28, 63,100, 71, 70,100, 63, + 30, 30, 63,100, 0, 3, 0,147,255,227, 5,219, 0,250, 0, 19, 0, 39, 0, 57, 0,168, 64,118, 20, 59, 36, 59, 2,251, 59, 1, +228, 59, 1,187, 59,203, 59, 2,164, 59, 1,139, 59, 1,100, 59,116, 59, 2, 75, 59, 1, 52, 59, 1, 11, 59, 1, 30,150,102, 20, +118, 20, 2, 20, 20, 0, 40,150, 36, 50, 1,251, 50, 1,224, 50, 1,212, 50, 1,187, 50, 1,164, 50, 1,139, 50, 1,114, 50, 1, +102, 50, 1, 75, 50, 1, 48, 50, 1, 2, 32, 50, 1, 15, 50, 1, 6, 50, 10,150,224, 0,240, 0, 2, 84, 0,100, 0, 2, 0, 0, + 16, 0, 32, 0, 3, 7, 0, 45, 25, 5,155, 55, 35, 15, 0, 47, 51, 51,237, 50, 50, 1, 47, 94, 93, 93, 93,237, 47, 94, 93, 93, + 95, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,113,237, 17, 57, 47, 93,237, 93, 93, 93, 93, 93, 93, 93, 93, 93,113, 49, 48, 55, 52, + 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 37, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 37, 52, + 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 38,147, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2, 37, + 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2, 37, 19, 35, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 54, 73, +111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 37, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, + 37, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 66, 0, 7, 0,102,255,236, 8,244, 5,203, 0, 9, 0, 29, 0, 39, 0, 59, + 0, 63, 0, 73, 0, 93, 0,137, 64, 92, 64,180, 84,181, 74, 30,180, 50,181, 35,180, 40,160, 62, 1, 48, 60, 64, 60,176, 60, 3, + 48, 40, 64, 40, 2, 62, 60, 40, 40, 60, 62, 3, 20, 69,180, 74, 95, 63, 95, 79, 95, 95, 95,127, 95,175, 95, 5, 5,180, 10,181, + 0,180, 16, 20, 32, 20, 48, 20, 3, 20, 71,182, 89,183, 67,182, 79, 25, 63, 6, 62, 24, 37,182, 55,183, 33,182, 45, 25, 3,182, + 15,183, 7,182, 25, 7, 0, 63,225,244,225, 63,225,244,225, 63, 63, 63,225,244,225, 1, 47, 93,225,244,225, 93, 16,222,225, 18, + 23, 57, 47, 47, 47, 93, 93, 93, 16,225,244,225, 16,244,225, 49, 48, 19, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, + 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, + 2, 51, 50, 30, 2, 1, 1, 35, 1, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, + 50, 30, 2,250, 71, 80,156,156, 80, 71, 1,199, 36, 74,115, 79, 73,112, 76, 38, 35, 73,113, 78, 75,113, 77, 39, 1,172, 71, 80, +156,156, 80, 71, 1,198, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 75,113, 76, 39,255, 0,252,213,158, 3, 44, 2,151, 71, + 81,155,155, 81, 71, 1,199, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 74,114, 76, 39, 4, 2,165,165, 1, 74, 1, 72,163, +165,108,172,118, 63, 63,118,172,108,108,170,117, 62, 62,117,170,253, 74,165,164, 1, 73, 1, 72,163,165,108,171,118, 63, 63,118, +171,108,108,170,117, 62, 62,117,170, 3,146,250, 74, 5,182,252, 2,165,164, 1, 73, 1, 72,163,165,108,171,118, 63, 63,118,171, +108,108,170,117, 62, 62,117,170,255,255, 0,133, 3,166, 1, 74, 5,182, 2, 6, 0, 10, 0, 0,255,255, 0,133, 3,166, 2,178, + 5,182, 2, 6, 0, 5, 0, 0, 0, 1, 0, 82, 0,115, 1,252, 3,199, 0, 6, 0, 60,177, 4, 2,184,255,192, 64, 31, 9, 12, + 72, 2, 8, 63, 8,159, 8,175, 8,223, 8,239, 8,255, 8, 6, 6,235,159, 3, 1, 3, 6, 0, 3, 3, 1, 5, 1, 0, 47, 47, + 18, 57, 61, 47, 51, 51, 1, 24, 47, 93,225, 93, 16,198, 43, 50, 49, 48, 19, 1, 23, 3, 19, 7, 1, 82, 1, 53,117,238,238,117, +254,203, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 0, 1, 0, 82, 0,115, 1,252, 3,199, 0, 6, 0, 63, 64, 40, 0,235, +223, 3,239, 3,255, 3, 3, 16, 3, 32, 3, 2, 3, 63, 8,159, 8,175, 8,223, 8,239, 8,255, 8, 6, 4, 63, 2, 1, 2, 6, + 0, 3, 3, 1, 5, 1, 0, 47, 47, 18, 57, 61, 47, 51, 51, 1, 24, 47, 93, 51, 93, 47, 93, 93,225, 49, 48, 1, 1, 39, 19, 3, + 55, 1, 1,252,254,203,117,237,237,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98,255,255, 0,147,255,227, 3, 98, + 5,182, 0, 39, 0, 4, 1,209, 0, 0, 1, 6, 0, 4, 0, 0, 0, 9,181, 47, 49, 1, 16, 49, 1, 93, 93, 0, 0, 1,254,160, + 0, 0, 2,104, 5,182, 0, 3, 0, 29,177, 1, 2,184,255,240, 64, 9, 2, 3, 0, 16, 0, 1, 18, 0, 3, 0, 63, 63, 1, 47, + 56, 50, 47, 56, 51, 49, 48, 1, 1, 35, 1, 2,104,252,213,157, 3, 43, 5,182,250, 74, 5,182, 0, 1, 0,106, 3, 29, 2,147, + 5,199, 0, 20, 0, 65, 64, 23, 0,224, 0, 20, 1, 20, 22, 96, 22,192, 22,224, 22,240, 22, 4, 15, 22, 1, 14, 10,224, 11,184, +255,192, 64, 14, 10, 15, 72, 11, 10, 0,192, 14, 4,228, 17,222, 12,220, 0, 63, 63,225, 51, 26,204, 50, 1, 47, 43,225, 50, 93, + 93, 16,214, 93,225, 49, 48, 1, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 21, 17, 2, 20, 63, 63, 45, + 65, 42, 21,127,105, 16, 9, 64,130,229, 3, 29, 1,166, 81, 68, 21, 52, 87, 65,254,166, 2,157, 88,101,250,254, 80, 0, 0, 1, + 0, 96, 0, 0, 4, 0, 5,182, 0, 17, 0,118, 64, 72, 2, 16, 2, 16, 5, 0, 11, 16, 11, 32, 11, 3, 11, 11, 19, 48, 19, 1, + 14, 0, 4, 90, 5, 9, 5,223, 7, 1, 7, 7, 0, 5, 16, 5,192, 5, 3, 7, 5, 3, 7, 96, 8, 0, 8, 17, 95, 14, 15, 14, + 63, 14,111, 14, 3, 8, 14, 64, 16, 21, 72, 8, 14, 8, 14, 4, 13, 95, 10, 3, 4, 18, 0, 63, 63,225, 18, 57, 57, 47, 47, 43, + 94, 93, 16,225, 17, 51, 16,225, 50, 1, 47, 94, 93, 51, 47, 93, 17, 51, 16,225, 50, 50, 93, 17, 51, 47, 93, 18, 57, 57, 47, 47, + 49, 48, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 1,195, 1, 36,254,220,179,176,176, 2,240,253, +195, 2, 22,253,234, 1,143,137,254,250, 1, 6,137, 4, 39,164,253,252,164, 0, 0, 1, 0, 68, 0, 0, 4, 35, 5,201, 0, 48, + 0,135, 64, 16, 17, 13, 21,111, 43, 39, 35, 15, 19, 35, 19, 35, 19, 30, 3, 27,184,255,192, 64, 62, 9, 14, 72, 27, 27, 50, 16, + 50, 1, 41, 37, 30, 64, 11, 14, 72, 30, 20, 37,117, 38, 17, 38, 16, 41,117, 42, 13, 42,111, 38, 1,208, 42, 1, 15, 42, 31, 42, + 63, 42, 79, 42,175, 42,191, 42, 6, 38, 42, 38, 42, 0, 30, 26,116, 29, 24, 7,115, 0, 7, 0, 63,225, 63,225, 50, 17, 57, 57, + 47, 47, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 43, 51, 51, 93, 17, 51, 47, 43, 51, 18, 57, 57, 47, 47, 17, + 51, 17, 51, 51,225, 50, 50, 49, 48, 1, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 14, + 2, 7, 33, 21, 33, 53, 62, 3, 53, 53, 35, 53, 51, 53, 35, 53, 51, 53, 52, 62, 2, 2,154,106,174, 66, 66, 56,141, 75, 48, 82, + 60, 33, 1,120,254,136, 1,120,254,136, 23, 39, 51, 27, 2,236,252, 33, 44, 73, 53, 30,198,198,198,198, 59,105,146, 5,201, 45, + 35,144, 29, 43, 27, 59, 94, 66,192,137,158,137, 19, 62, 89, 64, 43, 16,166,154, 11, 41, 68, 97, 67, 21,137,158,137,221, 87,137, + 95, 50, 0, 3, 0,150,255,236, 5,182, 5,182, 0, 27, 0, 42, 0, 53, 0,121, 64, 24, 49,111, 28, 18, 16, 15,110, 24, 21, 24, + 28, 24, 28, 24, 36,255, 5, 1, 5, 64, 18, 21, 72, 5,184,255,192, 64, 44, 9, 14, 72, 5, 5, 55, 15, 55, 1, 55, 64, 11, 16, + 72, 43, 35,110, 36,124, 54, 15, 24,117, 21, 18, 21, 43,115, 34, 21, 34, 21, 34, 36, 53,115, 37, 6, 36, 24, 0,117, 9, 25, 0, + 63,225, 63, 63,225, 18, 57, 57, 47, 47, 16,225, 17, 51, 16,225, 50, 1, 16,246,225, 50, 43, 93, 17, 51, 47, 43, 43, 93, 18, 57, + 57, 47, 47, 17, 51, 16,225, 50, 50, 16,225, 49, 48, 37, 50, 62, 2, 55, 21, 6, 6, 35, 34, 46, 2, 53, 17, 35, 53, 55, 55, 51, + 21, 51, 21, 35, 17, 20, 22, 1, 20, 14, 2, 35, 35, 17, 35, 17, 51, 50, 30, 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 5, 59, + 15, 36, 35, 30, 7, 23, 80, 63, 53, 88, 64, 36,156,156, 65,107,209,209, 52,254,140, 52,124,204,152, 47,178,251,134,191,123, 58, +253,189, 26, 93,139, 91, 46,164,174, 57,129, 4, 6, 8, 3,138, 12, 20, 34, 70,106, 72, 1,191, 82, 77,189,211,137,254, 86, 76, + 78, 3,137, 91,168,129, 77,253,199, 5,182, 57,109,160,254,103, 32, 71,113, 81,142,137, 0, 1, 0, 63,255,236, 4, 74, 5,203, + 0, 57, 0,134,180, 18, 7, 40, 54, 25,184,255,192, 64, 75, 9, 13, 72, 25, 25, 59, 16, 59, 1, 44, 35, 35, 19, 5, 13,111, 46, + 34, 99, 40, 1, 40, 40, 58, 19, 35, 96, 36, 16, 36, 8, 44, 96, 45, 5, 45, 95, 36,127, 36,143, 36,239, 36,255, 36, 5, 15, 45, + 31, 45, 47, 45, 95, 45,159, 45,207, 45, 6, 36, 45, 36, 45, 22, 55, 0,116, 51, 7, 22, 95, 25, 29, 25, 0, 63, 51,225, 63,225, + 51, 18, 57, 57, 47, 47, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 17, 1, 51, 47, 93, 51, 51,225, 50, 50, 51, 17, 51, 93, + 17, 51, 47, 43, 51, 18, 57, 57, 49, 48, 1, 34, 14, 2, 7, 33, 21, 33, 20, 7, 6, 20, 21, 20, 20, 23, 33, 21, 33, 22, 22, 51, + 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 35, 53, 51, 38, 52, 53, 52, 54, 53, 35, 53, 51, 62, 3, 51, 50, 22, 23, 7, 38, 38, + 3, 8, 69,118, 94, 67, 18, 1,176,254, 65, 1, 1, 2, 1,129,254,146, 34,185,149, 75,135, 59, 59,133, 91,115,182,135, 88, 21, +164,148, 2, 2,148,160, 18, 88,135,184,114, 97,160, 79, 80, 51,119, 5, 39, 52, 99,143, 91,137, 15, 14, 12, 26, 9, 19, 41, 22, +137,175,184, 32, 26,162, 28, 31, 73,135,193,121,137, 23, 30, 29, 22, 46, 8,137,125,202,144, 78, 43, 49,146, 31, 43, 0, 0, 4, + 0,141,255,248, 5,219, 5,193, 0, 3, 0, 23, 0, 43, 0, 72, 0,134, 64, 10, 1, 2, 57, 70, 24,180, 14, 3, 0, 2,184,255, +240, 64, 74,112, 70,144, 70,160, 70,208, 70, 4,223, 14, 1, 0, 16, 2, 70, 14, 0, 0, 14, 70, 2, 4, 49, 34,180, 15, 4, 1, +239, 4,255, 4, 2, 4, 74, 64,180, 0, 49, 1, 0, 49, 16, 49, 32, 49,224, 49,240, 49, 5, 8, 49, 66,252, 44,253, 61,252, 54, + 7, 39,252, 19,253, 29,252, 9, 25, 3, 6, 1, 24, 0, 63, 63, 63,225,244,225, 63,225,244,225, 1, 47, 94, 93,113,225, 16,222, + 93,113,225, 17, 23, 57, 47, 47, 47, 47, 56, 93, 93, 56, 17, 51, 16,225, 17, 51, 17, 51, 49, 48, 1, 1, 35, 1, 1, 20, 14, 2, + 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 1, 34, 46, 2, + 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, 20, 51, 50, 54, 55, 21, 6, 6, 5, 10,252,213,157, 3, 43, 1,110, + 45, 80,112, 68, 63,110, 81, 47, 44, 80,113, 68, 62,110, 82, 47,254, 51, 17, 38, 60, 43, 42, 60, 37, 17, 17, 37, 60, 42, 43, 60, + 38, 17,253,203, 69,121, 90, 52, 53, 92,125, 72, 51,100, 32, 33, 31, 85, 34,103, 95,194, 51, 90, 35, 35, 99, 5,182,250, 74, 5, +182,251,152, 83,127, 87, 45, 45, 87,127, 83, 83,127, 87, 45, 45, 87,127, 83, 51, 86, 62, 35, 35, 62, 86, 51, 52, 85, 61, 33, 33, + 61, 85, 1,146, 38, 82,128, 90, 95,132, 82, 38, 22, 15,107, 13, 20,116,118,229, 17, 16,107, 18, 19, 0, 0, 2, 0,119,255,236, + 3,123, 5,203, 0, 45, 0, 58, 0, 85, 64, 50, 46,112, 35, 64, 16, 20, 72, 35, 35, 17, 5, 6, 60, 53, 40,110, 25, 20, 16, 17, + 32, 17, 48, 17,128, 17,144, 17, 5, 17, 24, 21, 54,118, 20, 17, 40, 40, 0, 48,118, 30, 7, 0,117, 11, 6, 6, 11, 25, 0, 63, + 51, 47, 16,225, 63,225, 18, 57, 47, 51, 51,225, 50, 50, 1, 47, 93,197, 51,225, 50, 16,214,193, 18, 57, 47, 43,225, 49, 48, 37, + 50, 62, 2, 55, 51, 14, 3, 35, 34, 46, 2, 53, 53, 6, 6, 7, 53, 54, 54, 55, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, + 7, 17, 20, 30, 2, 19, 52, 35, 34, 14, 2, 21, 17, 62, 3, 2,111, 32, 57, 46, 30, 3,100, 4, 38, 70,105, 70, 58,106, 81, 48, + 46, 97, 49, 52, 95, 45, 28, 64,104, 75, 54, 87, 61, 33, 53, 92,124, 71, 17, 36, 55, 99,102, 32, 41, 23, 9, 54, 78, 51, 24,119, + 22, 50, 82, 59, 83,131, 90, 48, 37, 84,136, 99,231, 17, 28, 12,121, 14, 30, 15, 1,238, 59,108, 83, 49, 42, 79,111, 69, 99,166, +134,104, 38,254,211, 48, 81, 59, 33, 4, 33,188, 27, 50, 69, 42,254,106, 33, 78, 98,121, 0, 4, 0,199, 0, 0, 7,137, 5,182, + 0, 23, 0, 43, 0, 55, 0, 59, 0,186, 64,114, 14, 1, 21, 90, 0, 57, 57, 44,225, 34, 16, 0, 1,176, 0, 1,159, 0, 1, 48, + 0, 64, 0, 2, 0, 34, 0, 34, 10, 50,225, 24, 15, 58, 31, 58, 47, 58, 3, 58, 58,239, 24, 1, 24,103, 61,111, 61,191, 61,207, + 61, 3, 64, 61, 1, 12, 8, 3, 9, 90, 10,100, 60, 47,229, 29, 53,229, 39,207, 29,223, 29,239, 29, 3, 29, 64, 6, 11, 72, 15, + 39, 31, 39, 95, 39,111, 39,127, 39,239, 39, 6, 6, 29, 39, 29, 39, 22, 3, 16, 6, 24, 72, 3, 11, 3, 57,229, 56, 14,184,255, +240,182, 6, 24, 72, 14, 1, 10, 18, 0, 63, 51, 51, 43, 51,224, 63, 51, 43, 51, 57, 57, 47, 47, 94, 93, 43, 93, 16,225, 16,225, + 1, 16,246,225, 50, 50, 50, 93, 93, 16,230, 93, 50, 47,113, 16,225, 17, 57, 57, 47, 47, 93, 93, 93,113, 16,225, 51, 47, 16,225, + 50, 50, 49, 48, 33, 35, 1, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 46, 3, 53, 17, 51, 1, 20, 14, 2, 35, 34, + 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 53, 33, 21, 4,168,205,253,135, 8, + 6, 4, 4, 5,166,207, 2,118, 6, 3, 4, 1, 3, 2, 1,164, 2,225, 41, 77,109, 68, 63,107, 77, 44, 41, 77,109, 68, 62,107, + 78, 44,254, 66, 72, 81, 81, 71, 71, 81, 81, 72, 99, 1,240, 4,186, 77, 76, 65,142, 57,252,231, 5,182,251, 76, 76, 74, 32, 67, + 67, 62, 26, 3, 32,252,185, 83,130, 89, 47, 47, 89,130, 83, 83,129, 88, 46, 46, 88,129, 83,113,115,115,113,114,109,109,253, 31, +147,147, 0, 2, 0, 37, 2,229, 5, 80, 5,182, 0, 7, 0, 32, 0,163, 64, 93, 0,196, 1, 19, 10, 16,196, 17,192, 6,208, 6, +224, 6, 3,111, 6, 1, 48, 6, 64, 6, 80, 6, 3, 31, 6, 1, 4, 6, 1, 32, 17,208, 17, 2, 1, 6, 17, 17, 6, 1, 3, 3, + 30, 25, 21, 24,196,159, 23,175, 23, 2, 23, 34, 15, 34, 47, 34, 63, 34, 3, 34, 64, 21, 24, 72, 34, 64, 15, 18, 72,207, 3,239, + 3, 2, 3, 31, 9, 9, 32, 12, 24, 72, 9, 7, 3,200, 4, 24, 20,184,255,224, 64, 12, 12, 24, 72, 20, 17, 8, 1, 1, 21, 18, + 4, 3, 0, 63, 51, 51, 51, 47, 51, 51, 51, 43, 51, 16,225, 50, 51, 43, 17, 51, 1, 47, 93, 43, 43, 93, 16,214, 93,225, 50, 50, + 50, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 50, 50, 16,225, 49, 48, 1, 35, 17, 35, 53, 33, 21, 35, 1, 3, 35, + 30, 3, 21, 17, 35, 17, 51, 19, 19, 51, 17, 35, 17, 52, 62, 2, 55, 35, 3, 1,104,127,196, 2, 10,199, 2, 64,186, 7, 1, 2, + 1, 1,123,186,180,191,178,127, 1, 1, 1, 1, 6,195, 2,229, 2,101,108,108,253,155, 2, 37, 16, 34, 30, 24, 6,254, 73, 2, +209,253,217, 2, 39,253, 47, 1,172, 9, 30, 35, 35, 12,253,219,255,255, 0, 78, 0, 0, 5,166, 5,205, 2, 6, 1,118, 0, 0, + 0, 2, 0,102,255,221, 4,139, 4, 72, 0, 34, 0, 47, 0, 59, 64, 33, 35, 74, 30, 17, 49, 47, 19, 74, 16, 5, 1, 5, 29, 29, + 24, 18, 78, 43, 47, 59, 47, 2, 47, 47, 24, 41, 78, 12, 15, 24, 78, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 93,225, 17, 57, 47, + 1, 47, 93,225, 50, 16,222, 50,225, 49, 48, 5, 34, 46, 2, 53, 52, 62, 4, 51, 50, 30, 2, 21, 33, 17, 30, 3, 51, 50, 62, 2, + 55, 23, 14, 3, 19, 17, 46, 3, 35, 34, 14, 2, 7, 17, 2,121,130,198,134, 69, 44, 76,102,118,128, 63,113,194,142, 81,252,197, + 22, 64, 77, 88, 46, 74,116, 94, 77, 34, 72, 36, 83,110,143,204, 19, 59, 77, 93, 53, 51, 87, 73, 60, 24, 35, 94,157,204,110, 99, +160,126, 92, 60, 29, 79,147,209,131,254,156, 24, 44, 34, 21, 32, 60, 87, 55, 41, 57,101, 77, 44, 2,139, 1, 21, 20, 42, 35, 22, + 19, 33, 42, 23,254,233,255,255, 0, 83,255,236, 5,211, 5,182, 0, 38, 0,123, 20, 0, 0, 39, 2, 23, 2, 94, 0, 0, 1, 7, + 2, 64, 3, 98,253,179, 0, 48, 64, 31, 4, 3, 2, 39, 25, 1,244, 17, 1,228, 17, 1,208, 17, 1,176, 17, 1,160, 17, 1, 48, + 17, 1, 17, 47, 89, 1, 15, 89, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0, 51,255,236, 5,211, + 5,201, 0, 38, 0,117, 20, 0, 0, 39, 2, 23, 2,139, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 60, 64, 40, 4, 3, 2, 73, + 25, 1,240, 51, 1,208, 51, 1,196, 51, 1,180, 51, 1,160, 51, 1,148, 51, 1, 96, 51, 1, 48, 51, 1, 36, 51, 1, 51, 47,123, + 1, 15,123, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0, 79,255,236, 5,211, 5,182, + 0, 38, 2, 61, 20, 0, 0, 39, 2, 23, 2,139, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 60, 64, 40, 4, 3, 2, 61, 25, 1, +240, 39, 1,208, 39, 1,196, 39, 1,180, 39, 1,160, 39, 1,148, 39, 1, 96, 39, 1, 48, 39, 1, 36, 39, 1, 39, 47,111, 1, 15, +111, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0,113,255,236, 5,211, 5,182, 0, 38, + 2, 63, 66, 0, 0, 39, 2, 23, 2, 57, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 52, 64, 34, 4, 3, 2, 31, 25, 1,244, 9, + 1,235, 9, 1,203, 9, 1,180, 9, 1,155, 9, 1,127, 9, 1, 43, 9, 1, 9, 47, 81, 1, 15, 81, 1, 93, 93, 17, 93, 93, 93, + 93, 93, 93, 93, 53, 0, 63, 53, 53, 53, 0, 2, 0, 98,255,236, 4, 59, 5,197, 0, 43, 0, 67, 0, 59, 64, 33, 51, 25, 71, 0, + 87, 69, 64, 69, 1, 15, 69, 1, 6, 63, 72, 33, 12, 86, 68, 56, 79, 19, 19, 44, 33, 28, 80, 39, 4, 44, 80, 7, 22, 0, 63,225, + 63,225, 51, 18, 57, 47,225, 1, 16,246, 50,225, 94, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 14, 4, 35, 34, 46, 2, 53, 52, 62, + 4, 51, 50, 22, 23, 54, 52, 53, 52, 38, 35, 34, 14, 2, 7, 53, 62, 3, 51, 50, 30, 2, 1, 50, 62, 4, 55, 46, 3, 35, 34, 14, + 4, 21, 20, 30, 2, 4, 59, 32, 65,101,138,177,109,106,140, 83, 34, 23, 50, 81,115,153, 98, 91,147, 45, 2,139,137, 31, 68, 67, + 65, 27, 24, 67, 75, 79, 37,125,166, 99, 42,253,158, 53, 94, 81, 67, 53, 37, 10, 10, 41, 59, 73, 42, 62,102, 79, 58, 37, 18, 21, + 45, 70, 3,166,106,225,212,188,141, 82, 66,110,143, 76, 60,141,141,131,101, 61, 79, 69, 19, 42, 11,190,201, 12, 22, 31, 19,174, + 12, 23, 17, 10, 89,150,196,252,115, 44, 77,104,122,133, 67, 40, 69, 51, 30, 48, 81,104,111,110, 47, 50, 86, 64, 36, 0, 0, 2, + 0, 41, 0, 0, 4, 98, 5,182, 0, 5, 0, 14, 0, 88, 64, 17, 2, 1, 9, 9, 5, 14, 91, 96, 4,112, 4,176, 4,240, 4, 4, + 4,184,255,192, 64, 39, 6, 10, 72, 4, 4, 16, 47, 16, 95, 16,111, 16,127, 16,159, 16,191, 16, 6, 16, 64, 6, 9, 72, 13, 91, + 5, 13, 95, 5, 18, 9, 32, 10, 17, 72, 9, 1, 3, 0, 63, 51, 43, 63,225, 1, 47,225, 43, 93, 17, 51, 47, 43, 93,225, 18, 57, + 61, 47, 51, 51, 49, 48, 55, 1, 51, 1, 21, 33, 1, 38, 38, 39, 6, 6, 7, 3, 33, 41, 1,190,187, 1,192,251,199, 2,119, 32, + 45, 15, 17, 42, 29,250, 2,166,113, 5, 69,250,185,111, 3,154, 97,168, 75, 75,168, 91,253, 4, 0, 1, 0,199,254, 20, 5, 39, + 5,182, 0, 7, 0, 55, 64, 17, 0, 90, 7,101, 9, 0, 9, 48, 9, 64, 9,112, 9,128, 9, 5, 9,184,255,192, 64, 15, 20, 24, + 72, 3, 90, 4,100, 8, 2, 95, 5, 3, 4, 0, 27, 0, 63, 50, 63,225, 1, 16,246,225, 43, 93, 16,246,225, 49, 48, 1, 17, 33, + 17, 35, 17, 33, 17, 4,109,253, 20,186, 4, 96,254, 20, 6,252,249, 4, 7,162,248, 94, 0, 1, 0, 74,254, 20, 4,227, 5,182, + 0, 11, 0, 92, 64, 11, 8, 91,112, 6, 1, 2, 6, 2, 6, 0, 10,184,255,192,183, 9, 14, 72, 10, 10, 13, 7, 9,184,255,224, + 64, 9, 15, 24, 72, 9, 3, 0, 0, 12, 13,184,255,192, 64, 15, 19, 24, 72, 8, 2, 2, 9, 7, 95, 4, 3, 9, 95, 0, 27, 0, + 63,225, 63,225, 18, 57, 61, 47, 51, 1, 43, 17, 51, 24, 47, 51, 51, 43, 50, 17, 51, 47, 43, 18, 57, 57, 47, 47, 93,225, 49, 48, + 19, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 74, 2,112,253,160, 4, 72,252,188, 2, 58,253,176, 3,155,254, 20,115, 3,146, + 3, 43,114,164,253, 9,252,157,164, 0, 0, 1, 0,102, 2,135, 4, 2, 3, 29, 0, 3, 0, 50, 64, 31, 2, 5,150, 0, 1,139, + 0, 1,121, 0, 1, 86, 0, 1, 75, 0, 1, 56, 0, 1, 20, 0, 1, 9, 0, 1, 0, 0,173, 1,179, 0, 63,225, 1, 47, 93, 93, + 93, 93, 93, 93, 93, 93, 16,206, 49, 48, 19, 53, 33, 21,102, 3,156, 2,135,150,150, 0, 0, 1, 0, 37,255,242, 4,197, 6,160, + 0, 8, 0, 44, 64, 19, 1, 0, 6, 5, 2, 6, 2, 6, 7, 8, 16, 8, 3, 3,174, 4, 4, 7, 0, 0, 47, 47, 57, 47,225, 1, + 47, 47, 56, 51, 57, 57, 25, 47, 24, 47, 51, 17, 51, 51, 49, 48, 5, 35, 1, 35, 53, 33, 19, 1, 51, 2,115,133,254,235,180, 1, + 41,229, 2, 0,146, 14, 3, 10,143,253,105, 5,172, 0, 0, 3, 0,119, 1,145, 5, 49, 4, 14, 0, 35, 0, 51, 0, 67, 0,118, + 64, 79, 73, 23, 1, 72, 13, 1,240, 69, 1, 47, 69, 95, 69, 2, 58, 39, 74, 39,106, 39, 3, 42, 55, 1, 55, 26, 8, 39, 4, 63, +119, 47,151, 47, 2, 47,170, 32, 18, 48, 18, 2, 18,120, 63, 1, 63,171, 0, 52, 42,174, 23, 58, 36,174, 8, 55, 39, 26, 4, 23, + 5, 0, 13, 16, 13, 2, 7, 13, 13, 31,159, 23, 1, 32, 23, 1, 23, 0, 47, 93, 93, 51, 51, 47, 94, 93, 51, 18, 23, 57,225, 50, + 16,225, 50, 1, 47,225, 93, 47, 93,225, 93, 18, 23, 57, 93, 93, 93, 93, 49, 48, 93, 93, 1, 20, 14, 2, 35, 34, 38, 39, 14, 3, + 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 62, 3, 51, 50, 30, 2, 5, 50, 54, 55, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, + 1, 34, 6, 7, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5, 49, 43, 77,109, 66, 93,155, 65, 29, 70, 78, 83, 43, 65,110, 79, 45, + 43, 78,111, 67, 85,158, 62, 29, 68, 79, 87, 48, 66,109, 77, 43,252,123, 63,108, 52, 49,107, 69, 40, 64, 44, 24, 21, 44, 65, 2, +124, 63,107, 55, 51,108, 68, 39, 64, 45, 24, 25, 46, 64, 2,205, 63,114, 87, 52,105,115, 48, 79, 56, 30, 44, 82,117, 72, 65,115, + 86, 49,107,112, 48, 78, 56, 31, 45, 82,117,249, 87, 97, 94, 90, 29, 51, 68, 38, 36, 66, 50, 30, 1,106, 87, 97, 93, 92, 29, 51, + 68, 39, 38, 67, 49, 28, 0, 1, 0, 16,254, 20, 3, 6, 6, 20, 0, 35, 0, 55, 64, 35, 16, 37,208, 37, 2, 20, 4, 1, 6, 4, + 1, 4, 13,172, 27, 21, 1, 9, 21, 1, 21, 16, 30, 32, 30, 2, 30, 25,174, 18, 28, 7,174, 0, 0, 0, 63,225, 63,225, 1, 47, + 93, 51, 93, 93,225, 50, 93, 93, 93, 49, 48, 1, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 21, 17, 20, 14, 2, 35, 34, 38, 39, 53, + 22, 22, 51, 50, 62, 2, 53, 17, 52, 62, 2, 2,131, 34, 75, 22, 18, 61, 36, 51, 66, 39, 16, 50, 89,124, 74, 36, 75, 23, 20, 62, + 35, 51, 69, 42, 18, 47, 87,121, 6, 20, 9, 9,147, 9, 17, 39, 65, 84, 45,250,215, 94,134, 86, 41, 11, 8,147, 8, 16, 37, 64, + 84, 48, 5, 39, 94,134, 86, 40, 0, 2, 0,102, 1,123, 4, 2, 4, 37, 0, 35, 0, 71, 0, 75, 64, 46, 65, 29, 73, 16, 73, 1, + 46, 16, 10, 32, 10, 2, 10, 64, 41,173, 49,175, 67, 23,173, 10, 31,175, 28, 5,173,223, 13,239, 13,255, 13, 3, 13, 64, 15, 18, + 72, 13, 13, 59,173, 46, 67,179, 0, 63, 51,225, 51, 47, 43, 93,225, 51,245, 50,225, 16,245,225, 51, 1, 47, 93, 51, 93, 16,206, + 50, 49, 48, 1, 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, 35, 34, 46, 2, 3, + 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, 35, 34, 46, 2, 2, 18, 37, 55, 45, + 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, 24, 99,149, 29, 50, 55, 67, 47, 37, + 55, 45, 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, 24, 97,151, 29, 50, 55, 67, + 1,188, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 20, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 1,174, 16, + 21, 13, 5, 19, 32, 44, 26,162,109, 5, 14, 25, 20, 16, 21, 13, 5, 19, 32, 45, 25,162,108, 5, 13, 25, 0, 1, 0,102, 0,164, + 4, 2, 5, 4, 0, 19, 0,166, 64, 17, 10, 13, 14, 17, 18, 9, 18, 18, 0, 3, 4, 7, 8, 19, 8, 9, 19,184,255,240, 64, 79, + 9, 16, 19, 9, 19, 9, 6, 16, 11, 21, 64, 21, 1, 1,198, 6, 1,187, 6, 1,169, 6, 1,134, 6, 1,123, 6, 1,104, 6, 1, + 66, 6, 1, 57, 6, 1, 6, 9, 8, 8, 13, 4,173, 7, 19, 18, 18, 17, 0,173, 14, 31, 3, 47, 3, 2,127, 3, 1, 0, 3, 16, + 3, 2, 6, 3, 3, 10,240, 7, 1, 15, 7,111, 7, 2, 7, 0, 47, 93, 93, 51, 51, 47, 94, 93, 93,113, 51,225, 50, 50, 17, 51, + 16,225, 50, 51, 17, 51, 1, 47, 93, 93, 93, 93, 93, 93, 93, 93, 51, 93, 16,206, 50, 17, 57, 57, 47, 47, 56, 56, 17, 51,125,135, +196,196,196,196, 1, 51, 16,135,196,196,196,196, 49, 48, 1, 35, 53, 33, 19, 33, 53, 33, 19, 23, 7, 51, 21, 33, 3, 33, 21, 33, + 3, 39, 1, 94,248, 1, 62,121,254, 73, 1,252,133,138,105,250,254,193,123, 1,186,254, 0,129,137, 1,186,150, 1, 4,149, 1, + 27, 59,224,149,254,252,150,254,234, 57, 0, 2, 0,102, 0, 0, 4, 2, 4,221, 0, 6, 0, 10, 0, 82, 64, 50, 9, 0, 12, 64, + 12, 1, 8, 64, 1, 1, 1, 2, 1, 5, 5, 3, 6,111, 0,127, 0, 2, 48, 0, 1, 0, 0, 4, 32, 3, 1, 80, 3,112, 3,128, + 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 50, 18, 57, 61, 47, 51, + 51, 1, 24, 47, 93, 51, 93, 16,206, 50, 49, 48, 37, 1, 53, 1, 21, 9, 2, 53, 33, 21, 4, 2,252,100, 3,156,253, 33, 2,223, +252,100, 3,156,238, 1,168,102, 1,225,160,254,148,254,190,254,113,150,150, 0, 0, 2, 0,102, 0, 0, 4, 2, 4,221, 0, 6, + 0, 10, 0, 82, 64, 50, 9, 5, 12, 64, 12, 1, 8, 64, 6, 1, 6, 5, 4, 1, 1, 3, 0,111, 6,127, 6, 2, 48, 6, 1, 6, + 6, 2, 32, 3, 1, 80, 3,112, 3,128, 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, + 51, 47, 93, 93, 51, 18, 57, 61, 47, 51, 51, 1, 24, 47, 93, 51, 93, 16,206, 50, 49, 48, 19, 1, 1, 53, 1, 21, 1, 21, 53, 33, + 21,102, 2,226,253, 30, 3,156,252,100, 3,156, 1,143, 1, 66, 1,106,162,254, 31,102,254, 88,238,150,150, 0, 0, 2, 0,109, + 0, 0, 4, 63, 5,195, 0, 5, 0, 9, 0, 93, 64, 54, 2, 1, 9, 5, 4, 7, 9, 7, 3, 6,172, 0, 11,255, 11, 1, 64, 11, + 80, 11,128, 11,176, 11,192, 11, 5, 15, 11, 47, 11, 2, 8,170, 16, 3, 1, 3, 3, 8, 0, 6, 8, 6, 8, 6, 2, 7,173, 4, + 7, 9,173, 2, 0, 47,225, 63,225, 18, 57, 57, 61, 47, 47, 17, 51, 17, 51, 1, 24, 47, 93,225, 93, 93, 93, 16,222,225, 18, 57, + 57, 17, 51, 51, 17, 51, 51, 49, 48, 1, 1, 35, 1, 1, 51, 9, 3, 4, 63,254, 60, 76,254, 62, 1,194, 76, 1, 12,254,207,254, +207, 1, 49, 2,225,253, 31, 2,223, 2,228,253, 30, 2, 0,254, 0,253,254, 0,255,255, 0, 29, 0, 0, 4, 23, 6, 31, 0, 38, + 0, 73, 0, 0, 1, 7, 0, 76, 2,162, 0, 0, 0, 36, 64, 24, 2, 1,175, 29, 1, 80, 29, 1, 31, 29, 1, 15, 29, 1, 29,175, + 47, 1, 64, 47, 1, 15, 47, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 53,255,255, 0, 29, 0, 0, 4, 6, 6, 31, 0, 38, 0, 73, + 0, 0, 1, 7, 0, 79, 2,162, 0, 0, 0, 34, 64, 23, 1,175, 29, 1, 80, 29, 1, 31, 29, 1, 15, 29, 1, 29,175, 33, 1, 64, + 33, 1, 15, 33, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 0, 1, 0,207, 4,217, 3,205, 6, 23, 0, 21, 0, 63, 64, 41, 0, 23, + 32, 23, 2,175, 23,207, 23, 2, 48, 23,112, 23, 2, 15, 0, 1, 0, 0, 0, 10, 48, 10, 2, 6, 10, 10,127, 0, 1, 0, 64, 6, + 9, 72, 0, 0, 16,142, 5, 0, 47,225, 51, 47, 43, 93, 51, 1, 47, 94, 93, 51, 47, 93, 93, 93,113, 49, 48, 1, 14, 3, 35, 34, + 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,205, 6, 49, 93,141,100,103,140, 88, 41, 5,170, 5, 27, 50, 76, 53, 44, 73, 54, + 34, 6, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, 41, 16, 19, 43, 72, 53, 0, 1,255,188,254, 20, 1,100, 4, 74, 0, 19, + 0, 35, 64, 19, 16, 21, 32, 21, 2, 15, 71, 12, 3, 3, 12, 84, 20, 13, 15, 7, 80, 0, 27, 0, 63,225, 63, 1, 16,230, 50, 47, + 16,225, 93, 49, 48, 19, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 51, 17, 20, 14, 2, 66, 48, 63, 23, 26, 54, 35, 27, 46, + 35, 19,182, 34, 72,109,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 4,244,251, 24, 77,123, 87, 47, 0, 0, 1, 1,135, 4,205, + 2,121, 6, 20, 0, 13, 0, 25, 64, 12, 5,133, 63, 6, 1, 6, 12, 0, 12,146, 5, 0, 0, 63,229, 1, 47, 51,221, 93,225, 49, + 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,135, 9, 18, 17, 14, 4,180, 6, 31, 41, 46, 22, 96, 4,231, 30, 77, 81, 80, 33, + 20, 25, 78, 86, 86, 32, 0, 1, 1,111,254, 59, 2,117,255,131, 0, 13, 0, 22, 64, 9, 12, 0, 0, 5,133, 6, 12,146, 5, 0, + 47,229, 1, 47,225, 50, 47, 51, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,111, 11, 26, 24, 19, 4,178, 6, 31, 44, 54, + 29, 98,254, 86, 25, 76, 84, 83, 33, 20, 25, 77, 87, 86, 33, 0, 0, 1, 1,125, 4,217, 2,131, 6, 33, 0, 13, 0, 23, 64, 10, + 12, 0, 0, 5,133, 6, 5,146, 12, 0, 0, 63,229, 1, 47,225, 50, 47, 51, 49, 48, 1, 14, 3, 7, 35, 53, 62, 3, 55, 51, 2, +131, 12, 26, 24, 18, 4,178, 5, 31, 45, 55, 28, 98, 6, 6, 25, 76, 84, 83, 33, 21, 24, 78, 86, 86, 33, 0, 2, 0, 37, 2, 57, + 2,127, 5,199, 0, 11, 0, 29, 0, 42, 64, 25, 6,225, 12, 31, 79, 31,127, 31, 2, 31, 64, 6, 10, 72, 0,225, 22, 9,229, 27, +222, 3,229, 17,223, 0, 63,225, 63,225, 1, 47,225, 43, 93, 16,222,225, 49, 48, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, + 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22,184, 71, 81, 78, 78, 78, 78, 81, 71, 1,199, 35, 74,115, 79, 74,112, + 75, 38, 35, 73,113, 78,149,154, 4, 2,165,161,159,167,165,159,159,165,108,170,117, 62, 62,117,170,108,108,169,116, 60,236, 0, + 0, 2, 0, 12, 2, 74, 2,143, 5,188, 0, 10, 0, 21, 0, 70, 64, 42, 9, 2,225, 11, 7, 3, 3, 23, 95, 23,143, 23, 2, 23, + 64, 6, 10, 72, 21,225, 5, 1, 4,229, 9, 15, 11, 31, 11, 47, 11, 3, 8, 11, 11, 2, 15,229, 7,220, 2,221, 0, 63, 63,225, + 18, 57, 47, 94, 93, 51,225, 50, 1, 47,225, 43, 93, 18, 57, 47, 51, 51,225, 50, 49, 48, 1, 35, 21, 35, 53, 33, 53, 1, 51, 17, + 51, 33, 53, 52, 54, 55, 14, 3, 7, 7, 2,143,125,143,254,137, 1,121,141,125,254,244, 3, 3, 5, 20, 22, 24, 9,155, 3, 10, +192,192,111, 2, 67,253,205,195, 42, 99, 49, 11, 37, 42, 40, 15,240, 0, 0, 1, 0, 59, 2, 55, 2,102, 5,182, 0, 36, 0, 74, + 64, 23, 33, 34, 34, 30, 29, 29, 11, 32, 20,225, 5, 38, 79, 38,127, 38, 2, 38, 64, 6, 10, 72, 11,184,255,192, 64, 17, 18, 24, + 72, 11, 23,229, 0, 0, 17, 33,229, 30,220, 17,229, 8,223, 0, 63,225, 63,225, 18, 57, 47,225, 1, 47, 43, 43, 93, 16,222,225, + 51, 18, 57, 47, 51, 51, 17, 51, 49, 48, 1, 50, 30, 2, 21, 20, 6, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, + 14, 2, 7, 39, 19, 33, 21, 33, 7, 54, 54, 1, 66, 61,107, 79, 45,166,161, 63,121, 44, 26, 60, 61, 59, 24, 85, 95, 95, 89, 13, + 37, 39, 37, 14, 67, 33, 1,186,254,190, 18, 20, 57, 4,109, 35, 68,101, 65,140,157, 28, 26,141, 18, 27, 19, 10, 76, 88, 77, 85, + 4, 6, 7, 2, 43, 1,168,123,215, 3, 6, 0, 0, 2, 0, 37, 2, 57, 2,127, 5,213, 0, 29, 0, 45, 0, 56, 64, 32, 16, 10, + 33,225, 0, 47, 79, 47,127, 47, 2, 47, 64, 6, 10, 72, 21, 41,225, 10, 36,228, 21, 25, 25, 16, 15,222, 30,229, 5,223, 0, 63, +225, 63, 51, 57, 47, 51,225, 1, 47,225, 50, 43, 93, 16,222,225, 18, 57, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, + 55, 23, 14, 3, 7, 51, 54, 54, 51, 50, 30, 2, 5, 50, 54, 53, 52, 38, 35, 34, 14, 2, 21, 20, 30, 2, 2,127, 42, 78,111, 68, + 64,110, 82, 47, 69,126,178,110, 45, 79,127, 96, 64, 15, 11, 27, 99, 74, 54, 90, 64, 36,254,219, 68, 84, 77, 71, 39, 63, 45, 25, + 25, 45, 61, 3,102, 65,111, 80, 45, 45, 88,128, 83,110,179,143,109, 39,109, 27, 64, 79, 96, 59, 43, 49, 37, 72,105,247, 92, 86, + 82, 90, 25, 41, 55, 30, 44, 73, 53, 29, 0, 1, 0, 47, 2, 74, 2,100, 5,182, 0, 6, 0, 56,185, 0, 0,255,240, 64, 31, 0, + 0, 2, 1,225, 5, 8, 79, 8,127, 8, 2, 8, 64, 6, 10, 72,208, 2,224, 2,240, 2, 3, 2, 2,229, 3,220, 0,221, 0, 63, + 63,225, 1, 47, 93, 43, 93, 16,222,225, 17, 57, 47, 56, 49, 48, 19, 1, 33, 53, 33, 21, 1,141, 1, 64,254, 98, 2, 53,254,191, + 2, 74, 2,241,123,100,252,248, 0, 3, 0, 49, 2, 57, 2,113, 5,199, 0, 37, 0, 52, 0, 68, 0,119, 64, 34, 56,225, 33, 66, +225, 5, 10, 61, 50, 28, 4, 5, 33, 5, 33, 5, 23, 44,225, 15, 70, 79, 70,127, 70, 2, 70, 64, 6, 10, 72, 38,225, 23,184,255, +192, 64, 39, 21, 24, 72, 23, 10, 28, 61, 50, 75, 50, 91, 50,107, 50,155, 50,171, 50, 5, 50, 20, 53,182, 61,198, 61,214, 61, 3, + 61, 0, 41,229, 20,223, 53,229, 0,222, 0, 63,225, 63,225, 17, 57, 93, 17, 18, 57, 93, 17, 18, 57, 57, 1, 47, 43,225, 43, 93, + 16,222,225, 18, 57, 57, 47, 47, 18, 23, 57, 16,225, 16,225, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 7, 30, 3, 21, 20, 14, 2, + 35, 34, 38, 53, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 3, 20, 22, 51, 50, 54, 53, 52, 46, 2, 39, 39, 6, 6, 19, 34, 6, 21, + 20, 30, 2, 23, 62, 3, 53, 52, 38, 1, 82, 52, 94, 70, 42, 22, 39, 52, 30, 34, 62, 48, 28, 42, 77,105, 63,139,150, 25, 42, 56, + 31, 27, 46, 35, 19, 43, 72, 95, 98, 74, 72, 74, 75, 22, 39, 55, 33, 15, 65, 66,148, 56, 63, 18, 32, 45, 26, 24, 44, 32, 19, 65, + 5,199, 27, 55, 84, 56, 37, 62, 50, 40, 17, 19, 45, 55, 69, 42, 57, 93, 66, 36,131,115, 42, 69, 56, 43, 17, 20, 43, 53, 62, 37, + 56, 83, 55, 28,253,104, 59, 70, 70, 59, 30, 48, 39, 32, 15, 6, 34, 77, 1,232, 55, 54, 27, 42, 36, 29, 13, 12, 28, 35, 44, 28, + 54, 55, 0, 2, 0, 33, 2, 57, 2,123, 5,201, 0, 37, 0, 53, 0, 59, 64, 34, 49, 17,224, 9, 28, 0, 55, 79, 55,127, 55, 2, + 55, 64, 6, 10, 72, 41,225, 28, 44,228, 17, 23, 23, 5, 38,229, 33,222, 12,229, 5,223, 0, 63,225, 63,225, 18, 57, 47, 51,225, + 1, 47,225, 43, 93, 16,222, 17, 57,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 35, 14, 3, + 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 37, 34, 6, 21, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 2,123, 33, 90,162,129, + 25, 64, 21, 21, 54, 25, 83,108, 64, 29, 3, 9, 13, 36, 48, 61, 38, 60, 96, 68, 36, 41, 75,108, 67, 65,114, 84, 48,254,203, 68, + 86, 74, 76, 38, 63, 45, 24, 21, 42, 62, 4, 66, 96,187,147, 91, 8, 7,125, 13, 10, 53, 87,114, 61, 18, 36, 27, 17, 37, 71,102, + 65, 66,111, 81, 45, 47, 97,147,172, 94, 88, 76, 88, 25, 41, 51, 26, 36, 72, 59, 36, 0, 0, 22, 0, 84,254,129, 7,193, 5,238, + 0, 5, 0, 11, 0, 17, 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, 83, 0, 95, 0,111, 0,120, 0,129, 0,144, 0,228, 64, 89, 52, 44, 32, 28, 56, 24, 87, 81,122,112,111,116,103,100,100,130, +126,107,112, 81,192, 81,208, 81, 3, 81,111,107,107,111, 81, 3, 93,137, 79,140, 95,140, 2,140,140, 68, 40, 36, 9, 23, 93, 80, + 75, 96, 75, 2, 75, 75, 65, 61, 49, 0, 12, 42, 66, 70, 62, 38, 50,134,143,143,111,121,103,112,112,122, 96,122,111, 84, 72, 72, +112,111,128,111, 2, 97,111, 1,111,184,255,192, 64, 37, 7, 12, 72,111,111, 96, 90, 78, 78,138,120, 31, 96, 47, 96, 63, 96,111, + 96, 4, 96, 96, 1, 44, 28, 24, 18, 12, 57, 53, 33, 7, 15, 1, 1, 7, 1, 0, 47, 94, 93, 51, 51, 51, 51, 47, 51, 51, 51, 51, + 18, 57, 47, 93, 51, 51, 51, 47, 51, 17, 51, 47, 43, 93, 93, 51, 47, 51, 17, 51, 17, 18, 57, 47, 51, 51, 17, 51, 47, 51, 47, 51, + 47, 51, 47, 51, 1, 47, 51, 51, 51, 51, 51, 47, 93, 51, 47, 51, 51, 51, 51, 51, 47, 93, 51, 18, 23, 57, 47, 47, 47, 93, 17, 51, + 51, 51, 47, 51, 51, 17, 51, 51, 17, 51, 47, 51, 47, 51, 47, 51, 49, 48, 19, 17, 33, 21, 35, 21, 37, 53, 33, 17, 35, 53, 1, 17, + 51, 21, 51, 21, 33, 53, 51, 53, 51, 17, 33, 53, 33, 21, 33, 53, 33, 21, 1, 53, 33, 21, 1, 35, 17, 51, 17, 35, 17, 51, 1, 53, + 33, 21, 1, 35, 17, 51, 1, 53, 33, 21, 51, 53, 33, 21, 1, 35, 17, 51, 53, 35, 17, 51, 1, 35, 17, 51, 1, 34, 38, 53, 52, 54, + 55, 50, 22, 21, 20, 6, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 51, 50, 22, 21, 20, 6, 7, 21, 22, 22, 21, 20, 6, + 35, 35, 19, 51, 50, 54, 53, 52, 38, 35, 35, 21, 21, 51, 50, 54, 53, 52, 38, 35, 5, 53, 22, 22, 51, 50, 54, 53, 17, 51, 17, 20, + 6, 35, 34, 84, 1, 47,192, 5,206, 1, 48,109,249, 0,111,192, 5, 14,195,109,253, 73, 1, 17,251,225, 1, 14,254,242, 1, 14, + 4,183,109,109,109,109,251,194, 1, 16,252, 48,111,111, 2,192, 1, 16,119, 1, 17,250,168,111,111,111,111, 6,254,109,109,250, +153,127,135,135,127,127,135,135,127, 72, 63, 63, 72, 69, 66, 66, 1,159,172,109,112, 45, 45, 56, 51,109, 94,207,123, 66, 46, 36, + 41, 48, 59, 74, 49, 37, 38, 52, 1, 14, 16, 32, 20, 37, 49,125,104, 95, 61, 4,190, 1, 48,111,193,193,111,254,208,193,249, 2, + 1, 47,194,109,109,194,254,209,109,109,109,109, 6,254,111,111,250,168, 1, 14, 2, 2, 1, 15,250, 59,109,109, 1,166, 1, 14, + 4, 74,111,111,111,111,252, 47, 1, 16,121, 1, 15,253,104, 1, 16,254,138,159,142,145,155, 1,156,145,142,159,104,103, 94, 94, +102,102, 94, 94,103, 1,234, 67, 83, 49, 68, 8, 4, 11, 68, 58, 81, 89, 1, 98, 34, 32, 34, 29,227,154, 43, 37, 32, 42,252,102, + 3, 5, 36, 50, 1,146,254,114, 94,100, 0, 3, 0, 84,254,193, 7,170, 6, 20, 0, 3, 0, 35, 0, 47, 0, 80, 64, 40, 4, 35, + 35, 36, 32, 42, 48, 42, 64, 42, 3, 42, 42, 79, 36, 1, 36, 36, 2, 28, 11, 11, 2, 21, 21, 2, 35, 35, 48, 45, 1, 45, 45, 39, + 39, 3, 25, 16, 16, 3, 0, 25, 47, 51, 24, 47, 51, 17, 51, 47, 51, 47, 93, 51, 47, 1, 25, 47, 51, 24, 47, 17, 51, 47, 51, 17, + 51, 47, 93, 51, 47, 93, 17, 51, 47, 51, 49, 48, 9, 3, 5, 53, 52, 54, 55, 54, 54, 53, 52, 46, 2, 35, 34, 14, 2, 7, 23, 54, + 54, 51, 50, 22, 21, 20, 6, 7, 6, 6, 21, 21, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3,254, 3,172,252, 84,252, 86, + 3,235, 33, 76, 99, 77, 49, 91,131, 81, 43, 90, 87, 82, 34, 82, 68,126, 56, 63, 62, 39, 82, 69, 74, 27, 71, 70, 68, 71, 71, 68, + 70, 71, 6, 20,252, 86,252, 87, 3,169,251, 47, 44, 62, 58, 76,131, 89, 69,107, 74, 39, 16, 27, 35, 20,178, 34, 46, 58, 47, 49, + 68, 65, 53,121, 80, 59,254,237, 62, 73, 73, 62, 64, 73, 73, 0,255,255,255,188,254, 20, 2, 85, 6, 33, 2, 38, 2, 55, 0, 0, + 0, 7, 1, 76,254,187, 0, 0,255,255, 0, 23, 3,193, 1, 80, 5,182, 2, 6, 2, 7, 0, 0, 0, 2, 0, 10,255,236, 4,178, + 6, 43, 0, 12, 0, 79, 0,117, 64, 71, 77, 13, 67, 16, 62, 0, 59, 8, 71, 67, 67, 26, 59, 71, 79, 0, 16, 1, 16, 16, 81,160, + 81, 1, 63, 81, 1, 51, 71, 0, 26, 16, 26, 32, 26, 3, 26, 34, 80, 41, 62, 79, 79, 78, 0, 78, 0, 41, 16, 41, 48, 41, 64, 41, + 80, 41, 5, 6, 41, 78, 41, 78, 56, 5, 80, 72, 1, 56, 80, 21, 22, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 94, 93, 17, 51, 16, +225, 50, 16,225, 1, 47, 93,225, 93, 93, 17, 51, 47, 93, 51,225, 17, 57, 47,225, 17, 57, 57, 17, 18, 57, 57, 49, 48, 1, 46, 3, + 35, 34, 6, 21, 20, 30, 2, 5, 22, 22, 21, 20, 2, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, + 54, 51, 50, 30, 2, 21, 20, 14, 2, 21, 20, 30, 2, 51, 50, 18, 17, 52, 38, 39, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, + 21, 3,106, 13, 57, 77, 91, 48, 76, 86, 46,106,171, 1, 60, 2, 2, 64,129,196,131,111,146, 86, 34, 10, 11, 10, 31, 31, 24, 54, + 16, 37, 37,100, 54, 50, 69, 44, 19, 10, 11, 10, 21, 48, 78, 58,164,164, 2, 2,174,242,150, 67, 39, 81,127, 89,104,161,117, 75, + 18,143, 3,209,108,170,116, 61, 88, 72, 56,105, 82, 51,138, 22, 58, 31,159,254,238,201,115, 55, 95,125, 69, 40, 93, 89, 75, 24, + 45, 33, 15, 10,127, 17, 26, 28, 50, 68, 40, 35, 86, 93, 97, 45, 42, 74, 54, 31, 1, 50, 1, 48, 23, 62, 20, 2, 75,120,154, 81, + 67,112, 82, 46, 84,156,223,139,137, 0, 0, 1, 0, 0, 0, 0, 4, 72, 5,195, 0, 34, 0,143, 64, 27,175, 36,239, 36, 2, 36, + 64, 9, 12, 72, 34,171, 33, 1,152, 33, 1, 64, 33, 1, 27, 33, 1, 15, 33, 1, 33,184,255,240, 64, 68, 33, 33, 0, 31, 27, 13, + 1, 15, 13, 1, 13, 32, 18, 22, 72,159, 13,175, 13, 2,125, 13, 1,107, 13, 1, 90, 13, 1, 79, 13, 1, 43, 13, 59, 13, 2, 13, + 13, 30, 90,119, 31,135, 31,151, 31, 3, 79, 31, 1, 0, 31, 16, 31, 2, 7, 31, 29, 0, 31, 33, 3, 31, 18, 17, 10, 4, 0, 63, +193, 63, 63, 18, 57, 57, 1, 47, 94, 93, 93, 93,225, 50, 47, 93, 93, 93, 93, 93, 93, 43,113,113, 17, 57, 51, 47, 56, 93, 93, 93, + 93, 93, 51, 43, 93, 49, 48, 1, 62, 3, 55, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 14, 5, 7, 17, 35, 17, 1, + 51, 2, 29, 25, 61, 63, 60, 24, 22, 47, 53, 64, 41, 35, 43, 17, 13, 32, 13, 11, 28, 32, 35, 19, 13, 40, 50, 54, 54, 50, 19,187, +254, 66,203, 2,219, 75,168,160,137, 44, 40, 61, 39, 20, 9, 8,145, 3, 5, 7, 23, 42, 35, 24, 85,110,128,133,133, 60,253,227, + 2, 47, 3,135, 0, 2, 0, 18,255,236, 6, 96, 4, 74, 0, 28, 0, 60, 0,143, 64, 71, 25,103, 47, 1, 47, 71,213, 44, 1,183, + 44, 1,169, 44, 1,154, 44, 1, 3, 44, 44, 3, 55, 72,171, 18,187, 18, 2, 18, 18, 62, 20, 62, 1, 84, 62,100, 62,132, 62,164, + 62,180, 62, 5, 64, 62, 1, 2, 48, 62, 1, 15, 62, 1, 34, 72, 0, 3, 16, 3, 48, 3, 64, 3, 80, 3, 5, 6, 3,184,255,192, + 64, 21, 18, 21, 72, 3, 26, 0, 45, 45, 39, 29, 14, 8, 80, 11, 15, 50, 39, 80, 22, 0, 22, 0, 63, 50,225, 50, 63,225, 50, 50, + 18, 57, 47, 18, 57, 1, 47, 43, 94, 93,225, 93, 93, 95, 93, 93,113, 17, 51, 47, 93,225, 17, 57, 47, 95, 93, 93, 93, 93,225, 93, + 57, 49, 48, 5, 34, 38, 53, 52, 62, 2, 55, 33, 53, 55, 33, 21, 35, 30, 3, 21, 20, 6, 35, 34, 38, 39, 35, 6, 6, 3, 14, 3, + 21, 20, 30, 2, 51, 50, 62, 2, 53, 53, 51, 21, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 39, 2, 41,182,195, 18, 32, 43, 26,254, +235,134, 5,200,243, 24, 38, 27, 15,196,181,106,139, 31, 11, 31,139,186, 22, 40, 31, 18, 29, 54, 75, 45, 46, 68, 44, 22,179, 98, + 82, 45, 75, 54, 29, 15, 25, 36, 21, 20,234,243, 57,125,126,123, 56, 74, 80,154, 56,123,126,125, 57,243,234, 87, 91, 91, 87, 3, +196, 54,118,121,122, 58, 98,131, 78, 33, 41, 72, 98, 57,176,176,130,138, 33, 78,131, 98, 58,122,121,118, 54, 0,255,255, 0,199, + 0, 0, 6, 47, 7,117, 2, 38, 0, 48, 0, 0, 1, 7, 0,118, 1,121, 1, 84, 0, 19, 64, 11, 1, 39, 5, 38, 1, 75, 26, 32, + 9, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 6,135, 6, 33, 2, 38, 0, 80, 0, 0, 1, 7, 0,118, 1,199, + 0, 0, 0, 19, 64, 11, 1, 58, 17, 38, 1,122, 45, 51, 22, 43, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,253,213, 4,221, + 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 2, 91, 1, 27, 0, 0, 0, 13,183, 3, 2, 1, 31, 21, 4, 7, 37, 1, 43, 53, 53, 0, +255,255, 0, 94,253,213, 3,156, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 2, 91, 0,188, 0, 0, 0, 13,183, 3, 2, 20, 61, 51, + 12, 34, 37, 1, 43, 53, 53, 0,255,255,254,211,255,236, 5,195, 5,205, 0, 38, 0, 50, 82, 0, 1, 7, 2, 92,254, 64, 0, 0, + 0, 63,182, 3, 2, 45, 3, 3, 2, 53,184,255,192,178, 9, 15, 72,184,255, 33, 64, 26, 53, 53, 10, 10, 37, 1, 0,176, 0, 1, +128, 0, 1,127, 0, 1, 80, 0, 1, 64, 0, 1, 31, 0, 1, 0, 17, 93, 93, 93, 93, 93, 93, 53, 53, 43, 43, 53, 53, 0, 63, 53, + 53, 0, 0, 2, 0,115,253,213, 2, 55,255,131, 0, 19, 0, 31, 0, 58, 64, 40, 20,131, 15, 0, 63, 0, 79, 0, 95, 0, 4, 0, + 26,131, 48, 10, 1, 10, 29,140, 0, 5, 16, 5, 48, 5, 64, 5, 80, 5,160, 5,240, 5, 7, 6, 5, 23,140, 15, 0, 47,225,212, + 94, 93,225, 1, 47, 93,225,212, 93,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, + 34, 6, 21, 20, 22, 51, 50, 54, 2, 55, 35, 61, 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 35,116, 64, 49, 50, 63, 57, + 56, 49, 64,254,174, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 2, 0,147, + 4,104, 2,217, 5,199, 0, 13, 0, 31, 0, 66, 64, 9, 21, 48, 14, 64, 14, 2, 14, 17, 26,184,255,192, 64, 28, 9, 16, 72, 26, + 26, 43, 13, 1, 4, 13, 20, 13, 2, 13, 6, 5, 12, 5, 12, 63, 17, 79, 17, 95, 17, 3, 17, 29, 0, 47,204, 93, 57, 57, 47, 47, + 1, 47,205, 93, 93, 50, 47, 43, 51,205, 93, 57, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 37, 52, 54, 55, 21, 6, 6, 21, + 20, 30, 2, 21, 20, 6, 35, 34, 38, 1,176, 11, 25, 24, 22, 8,207, 18, 48, 56, 62, 31, 82,254,227,120,122, 60, 57, 31, 37, 31, + 50, 47, 58, 69, 4,137, 30, 75, 79, 81, 36, 20, 32, 77, 80, 81, 37,120, 78,115, 31, 76, 22, 46, 24, 19, 18, 16, 26, 28, 37, 39, + 70, 0,255,255, 0, 29, 0, 0, 6,185, 6, 31, 0, 38, 0, 73, 0, 0, 0, 39, 0, 73, 2,162, 0, 0, 1, 7, 0, 76, 5, 68, + 0, 0, 0, 56, 64, 38, 3, 2,143, 57, 1,112, 57, 1, 64, 57, 1, 47, 57, 1, 15, 57, 1, 57, 1,224, 31, 1,176, 31, 1, 31, +175, 75, 1,112, 75, 1, 64, 75, 1, 15, 75, 1, 93, 93, 93, 93, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53,255,255, 0, 29, + 0, 0, 6,168, 6, 31, 0, 38, 0, 73, 0, 0, 0, 39, 0, 73, 2,162, 0, 0, 1, 7, 0, 79, 5, 68, 0, 0, 0, 54, 64, 37, + 2,143, 57, 1,112, 57, 1, 64, 57, 1, 47, 57, 1, 15, 57, 1, 57, 1,224, 31, 1,176, 31, 1, 31,175, 61, 1,112, 61, 1, 64, + 61, 1, 15, 61, 1, 93, 93, 93, 93, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 0, 2, 0,125,255,236, 6, 37, 6, 20, 0, 32, + 0, 52, 0, 75, 64, 44, 27, 6, 19, 9, 32, 91, 1, 1, 43, 91, 9,103, 54,192, 54, 1,191, 54, 1,112, 54, 1, 47, 54, 95, 54, + 2, 33, 91, 19,102, 53, 6, 27, 14, 48, 95, 32, 24, 4, 38, 95, 14, 19, 0, 63,225, 63,206,225, 18, 57, 57, 1, 16,246,225, 93, + 93, 93, 93, 16,246,225, 51, 47,225, 17, 18, 57, 57, 49, 48, 1, 23, 14, 3, 7, 22, 22, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, + 53, 52, 18, 54, 54, 51, 50, 22, 23, 62, 3, 53, 1, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 6, 23, 14, 12, + 40, 63, 90, 63, 43, 45, 81,160,237,155,163,239,157, 76, 76,158,239,164,158,236, 81, 41, 49, 25, 8,251,242, 52,107,165,114,114, +165,107, 50, 50,106,164,114,114,166,108, 52, 6, 20, 22, 60,112, 97, 76, 24, 89,216,127,170,254,235,198,108,108,198, 1, 23,170, +170, 1, 21,196,107,111,102, 12, 53, 74, 93, 52,252,201,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, + 0,113,255,236, 4,244, 4,242, 0, 32, 0, 44, 0, 74, 64, 44, 23, 74, 25, 25, 30, 18, 10, 39, 72, 0, 0, 16, 0, 2, 7, 0, + 0, 46, 16, 46,144, 46,160, 46,176, 46, 4, 33, 72, 10, 86, 45, 18, 30, 5, 42, 80, 23, 15, 16, 36, 80, 5, 22, 0, 63,225, 63, +198,225, 18, 57, 57, 1, 16,246,225, 93, 17, 51, 47, 94, 93,225, 18, 57, 57, 51, 47,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, + 53, 52, 62, 2, 51, 50, 22, 23, 62, 3, 53, 51, 23, 14, 3, 7, 22, 22, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 45, + 67,125,178,111,103,174,127, 71, 67,124,179,111,100,169, 63, 46, 52, 25, 6,198, 15, 16, 45, 63, 86, 57, 32, 36,253, 0,137,154, +154,135,137,154,154,135, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 71, 68, 13, 55, 75, 93, 51, 23, 74,120, 94, 67, + 20, 65,158, 94,209,211,211,209,208,208,208, 0, 0, 1, 0,184,255,236, 6, 78, 6, 20, 0, 36, 0, 81, 64, 50, 6, 91, 8, 8, + 35, 90, 1,159, 14, 1,176, 14, 1,175, 14, 1, 14, 14, 38,112, 38,128, 38,240, 38, 3, 95, 38, 1, 0, 38, 16, 38, 2, 27, 90, + 24,100, 37, 1, 13, 13, 36, 6, 25, 3, 30, 95, 19, 19, 0, 63,225, 63,206, 51, 51, 47, 51, 1, 16,246,225, 93, 93, 93, 17, 51, + 47, 93, 93,113, 51,225, 51, 47,225, 49, 48, 1, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 51, + 17, 20, 22, 51, 50, 62, 2, 55, 17, 4,221, 52, 62, 32, 10,198, 15, 15, 50, 85,128, 91, 66,133,201,136,128,196,133, 68,187,172, +176, 89,128, 82, 40, 1, 5,182,196, 6, 50, 78,100, 56, 22, 71,130,105, 74, 15,253,145,114,196,144, 82, 77,142,199,122, 3,174, +252, 72,176,191, 54, 98,136, 81, 3,182, 0, 1, 0,164,255,236, 5,121, 4,242, 0, 39, 0, 84, 64, 51, 31, 74, 33, 33, 1, 23, + 71, 26, 39, 39, 41, 16, 41, 1,128, 41,160, 41,224, 41, 3,111, 41, 1, 0, 41, 32, 41, 48, 41, 3, 7, 15, 71, 12, 84, 40, 26, + 38, 38, 31, 24, 13, 15, 18, 80, 2, 7, 22, 0, 21, 0, 63, 63, 51,225, 63, 51,198, 51, 47, 51, 1, 16,246,225, 94, 93, 93, 93, +113, 17, 51, 47, 51,225, 50, 51, 47,225, 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, + 17, 51, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 3,117, 27, 10, 25, 69, 82, 92, 48, 91,138, 92, 47,182,106,111, 81,110, 67, 29, +182, 52, 62, 32, 10,198, 15, 15, 50, 85,128, 91,147, 43, 63, 41, 20, 46, 98,152,105, 2,205,253, 61,130,130, 52,101,148, 96, 2, + 58,123, 6, 50, 78,101, 56, 23, 71,136,109, 72, 7,252,176, 0, 0, 1,252,143, 4,217,254, 25, 6, 33, 0, 13, 0, 22, 64, 10, + 0, 6, 8,128, 15, 0, 95, 0, 2, 0, 0, 47, 93, 26,204, 1, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23,254, 25, +121, 35, 81, 77, 64, 16,219, 16, 43, 46, 48, 22, 4,217, 28, 83, 88, 81, 27, 21, 35, 80, 81, 76, 29, 0, 0, 1,253, 72, 4,217, +254,209, 6, 33, 0, 13, 0, 22, 64, 10, 6, 0, 5,128, 15, 12, 95, 12, 2, 12, 0, 47, 93, 26,205, 1, 47,205, 49, 48, 1, 62, + 3, 55, 51, 21, 14, 3, 7, 35,253, 72, 21, 48, 46, 43, 16,219, 16, 63, 77, 82, 34,121, 4,244, 29, 76, 81, 80, 35, 21, 27, 81, + 88, 83, 28, 0, 0, 1,252, 70, 4,217,255, 20, 5,227, 0, 27, 0, 56, 64, 35, 15, 23, 47, 23, 2, 23, 0, 9, 32, 9, 2, 7, + 9, 22, 5,143, 14, 64, 16, 19, 72, 14, 64, 7, 11, 72, 14, 14, 19,143, 9, 15, 0, 1, 0, 0, 47, 93, 50,225, 51, 47, 43, 43, +225, 51, 1, 47, 94, 93,204, 93, 49, 48, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, +254, 66, 40, 79, 76, 71, 31, 45, 48, 14,104, 5, 33, 53, 74, 46, 41, 81, 77, 69, 29, 45, 46, 15,104, 5, 33, 53, 73, 4,219, 35, + 43, 35, 53, 62, 60, 97, 69, 38, 35, 42, 35, 52, 62, 60, 97, 69, 38, 0, 0, 1,253, 4, 4,184,254,121, 6,143, 0, 27, 0, 38, + 64, 18, 5, 8, 8, 13, 0, 21, 5, 8, 8, 18, 15, 25, 31, 25, 2, 25,128, 6, 0, 47, 26,204, 93, 50, 57, 17, 51, 1, 47,204, + 50, 57, 17, 51, 49, 48, 1, 20, 14, 2, 7, 7, 35, 39, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22,254,121, + 27, 45, 60, 34, 10,113, 14, 37, 60, 42, 23, 21, 36, 50, 29, 28, 52, 16, 16, 50, 41,133,133, 5,211, 39, 58, 41, 27, 7,111,176, + 6, 16, 24, 33, 24, 24, 32, 19, 7, 3, 3,108, 3, 5, 91, 0, 0, 1,253, 49,254,152,254, 6,255,125, 0, 13, 0, 15,181, 8, +135, 0, 11,145, 3, 0, 47,229, 1, 47,225, 49, 48, 5, 52, 54, 51, 50, 22, 21, 20, 14, 2, 35, 34, 38,253, 49, 62, 45, 43, 63, + 17, 29, 39, 21, 45, 62,246, 60, 55, 55, 60, 29, 43, 28, 14, 55,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, + 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,194,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,201, 0, 0, 5, 16, 7,115, 2, 38, 1,178, 0, 0, 1, 7, 0, 67, 0, 66, 1, 82, 0, 21,180, 1, 24, 5, 38, 1, +184,255,163,180, 30, 24, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, + 1, 6, 0, 67,148, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255,185,180, 46, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,174, 0, 0, 4, 59, 6, 33, 2, 38, 1,210, 0, 0, 1, 6, 0, 67,202, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,163,180, + 18, 12, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,125,255,236, 7, 94, 5,201, 0, 69, 0,113, 64, 72, 20, 4, 57, 90, + 37,197, 54, 1,150, 54,166, 54, 2,137, 54, 1, 54, 54, 29, 65, 91, 12,103, 71, 0, 71, 16, 71, 2, 0, 71, 32, 71, 80, 71,112, + 71,208, 71,224, 71, 6, 7, 46, 91, 29,102, 70, 55, 55, 51, 0, 41, 95, 3, 38, 38, 7, 34, 4, 20, 32, 9, 14, 72, 20, 60, 51, + 95, 17, 24, 19, 0, 63, 51,225, 50, 50, 43, 63, 51, 51, 17, 51,225, 50, 18, 57, 47, 1, 16,246,225, 94, 93,113, 16,246,225, 17, + 57, 47, 93, 93, 93, 51,225, 50, 57, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 38, 39, + 35, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, + 17, 51, 17, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5,104, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198,136,111,170, + 73, 2, 75,168,110,136,198,129, 63, 64,125,183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 57,118, 46,187, + 46,118, 59, 92,139, 92, 46, 44, 80,113, 5, 37, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 50, 48, 48, 50,119, +210, 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 36, 38, 1,189,254, 67, 38, 36, 89,164, +229,141,136,207,138, 70, 0, 1, 0, 0, 0, 0, 5,244, 4, 74, 0, 44, 0,231, 64, 9,101, 16, 1,201, 34,249, 34, 2, 33,184, +255,240,179, 10, 16, 72, 44,184,255,240,179, 18, 27, 72, 44,184,255,240, 64, 25, 10, 15, 72, 0, 16, 10, 27, 72, 38, 13, 34, 14, + 33, 34, 21, 44, 0, 6, 86, 15,102, 15, 2, 15, 14,184,255,240, 64, 72, 31, 14, 1,111, 14,127, 14,159, 14,223, 14, 4, 89, 14, + 1, 79, 14, 1,116, 21, 1,107, 21, 1, 36, 21, 52, 21, 2, 36, 6, 52, 6, 68, 6,116, 6,148, 6, 5, 14, 6, 21, 21, 14, 6, + 3, 1, 27, 71, 0, 28, 16, 28, 2, 7, 28, 28, 46, 16, 46, 32, 46, 48, 46,208, 46,224, 46, 5, 2, 1,184,255,240, 64, 30, 1, + 38, 64, 21, 29, 72, 38, 32, 12, 20, 72, 38, 13, 16, 3, 27, 14, 1, 15, 21, 6, 38, 6, 54, 6, 2, 6, 34, 0, 21, 0, 63, 50, + 50, 93, 17, 51, 63, 51, 51, 23, 57, 43, 43, 1, 47, 56, 51, 93, 17, 51, 47, 94, 93,225, 18, 23, 57, 61, 47, 47, 24, 47, 93, 93, + 93, 93, 93, 93, 93,113, 56, 51, 93, 17, 51, 51, 17, 51, 51, 17, 18, 57, 57, 43, 43, 43, 43, 93, 49, 48, 93, 33, 1, 51, 19, 22, + 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 3, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 53, 14, 3, 7, 3, + 1,119,254,137,188,224, 28, 38, 9, 7, 7, 21, 26, 29, 15,119,162,188,201, 12, 31, 30, 24, 5, 7, 90,114, 65, 25,183, 37, 92, +154,117,192,119, 12, 13, 1, 6, 9, 10, 4,152, 4, 74,253, 86, 87,157, 51, 22, 58, 65, 69, 32, 1, 12, 1,207,253,176, 33, 99, +103, 92, 25,103,208,226,255,152,163,254,223,254,245,252,127, 1, 84, 32, 53, 3, 1, 19, 27, 29, 10,254,170, 0, 0, 2, 0, 20, + 0, 0, 4,188, 6, 20, 0, 22, 0, 33, 0,155, 64, 10, 19, 0, 23, 90, 12, 21, 21, 6, 16, 12,184,255,192, 64, 13, 26, 39, 72, + 32, 12, 1, 2,144, 12,160, 12, 2, 12,184,255,192,179, 19, 24, 72, 12,184,255,192, 64, 64, 11, 14, 72, 12, 12, 14, 27, 91, 6, +103, 35, 0, 35, 48, 35, 80, 35, 96, 35,128, 35, 5,224, 35, 1,159, 35, 1, 80, 35, 1, 14, 33, 95, 0, 22, 13, 95, 16, 19, 16, +176, 0, 1,137, 0, 1, 79, 0, 1, 15, 16, 1, 7, 0, 16, 0, 16, 17, 0, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 94, + 93, 93, 93, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 93, 93, 93,113, 16,246,225, 17, 57, 47, 43, 43, 93, 95,113, 43, 51, 18, 57, + 47, 16,225, 50, 50, 49, 48, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 51, 50, 54, + 53, 52, 46, 2, 35, 35, 2, 10,150,152,207,126, 55, 60,126,194,134,254,150,254,196, 1, 60,186, 1,121,254,135,160,174,164, 46, + 91,139, 93,129, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164, 1, 16,254,240,164,252, 64,132,136, 70, 97, 60, 27, 0, 2, + 0, 20, 0, 0, 4,109, 5, 39, 0, 20, 0, 33, 0,129, 64, 9, 19, 2, 22, 71, 16, 0, 12, 1, 12,184,255,192, 64, 71, 13, 26, + 72, 12, 0, 12, 0, 14, 28, 71, 6, 87, 35, 0, 35, 16, 35, 2,112, 35,144, 35,192, 35,224, 35, 4, 14, 21, 80, 2, 1, 13, 80, + 16, 19, 16, 15, 2, 31, 2, 2, 2, 64, 12, 30, 72, 15, 16, 1, 15, 16, 31, 16, 2, 7, 2, 16, 2, 16,127, 17, 1, 48, 17, 1, + 17, 22, 80, 12, 21, 0, 63,225, 47, 93, 93, 57, 57, 47, 47, 94, 93,113, 43, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 93,113, 16, +246,225, 18, 57, 57, 47, 47, 43, 93, 51,225, 50, 50, 49, 48, 1, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, + 51, 21, 33, 1, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, 2,227,254,213, 1, 21,211,205, 47,101,159,113,254, 57,238,238,182, 1, + 43,254,213, 1, 4, 55, 94, 67, 38, 33, 65, 96, 64, 3,176,254,215,156,155, 77,124, 88, 47, 3,176,154,221,221,253,164,254,168, + 17, 41, 66, 48, 49, 66, 40, 17, 0, 1, 0,199,255,236, 6,236, 5,203, 0, 45, 0, 88, 64, 47, 8, 5, 91, 27, 34, 7, 17, 17, + 7, 34, 3, 30, 42, 42, 47, 33, 29, 90, 30,100, 46, 43, 0, 95, 39, 4, 27, 8, 28, 95, 34, 5, 15, 33, 1, 8, 33, 33, 31, 3, + 30, 18, 13, 95, 16, 22, 19, 0, 63, 51,225, 63, 63, 57, 47, 94, 93, 51, 51,225, 50, 50, 63,225, 51, 1, 16,246,225, 50, 17, 51, +125, 47, 18, 23, 57, 24, 47, 47, 47, 51,225, 50, 49, 48, 1, 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, + 34, 38, 38, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 23, 7, 38, 38, 5,109, 95,160,120, 77, 13, 2,116,253,134, + 5, 64,117,172,113, 89,160, 78, 39, 78, 86, 97, 58,158,235,157, 82, 5,254,176,186,186, 1, 86, 14, 99,167,233,149,108,196, 79, + 78, 63,149, 5, 39, 65,122,175,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,100,184, 1, 3,159,253, 86, 5,182,253,152, +143,235,167, 92, 44, 42,156, 32, 46, 0, 0, 1, 0,174,255,236, 5,113, 4, 94, 0, 41, 0,100, 64, 57, 32, 29, 72, 5, 79, 12, + 1, 12, 31, 12, 31, 8, 39, 20, 20, 43, 11, 7, 71, 8, 84, 42, 26, 81, 21, 17, 16, 32, 5, 6, 80, 29, 12,169, 11,185, 11, 2, + 15, 11, 31, 11, 47, 11, 3, 6, 11, 11, 9, 15, 8, 21, 35, 81, 38, 0, 22, 0, 63, 50,225, 63, 63, 57, 47, 94, 93, 93, 51, 51, +225, 50, 50, 63, 51,225, 1, 16,246,225, 50, 17, 51,125, 47, 51, 18, 57, 57, 24, 47, 47, 93, 51,225, 50, 49, 48, 5, 34, 46, 2, + 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 23, 7, 46, 3, 35, 34, 6, 7, 33, 21, 33, 22, 22, 51, 50, 54, 55, 21, 6, + 6, 4, 84, 97,169,129, 79, 7,254,241,182,182, 1, 19, 12, 85,129,165, 94, 78,149, 50, 54, 23, 56, 60, 59, 25,140,145, 14, 1, +219,254, 35, 9,146,138, 82,130, 54, 53,124, 20, 58,123,193,135,254, 23, 4, 74,254, 57,128,181,114, 52, 34, 25,154, 10, 19, 15, + 9,151,166,154,184,164, 37, 25,162, 29, 30, 0, 0, 2, 0, 0, 0, 0, 5, 47, 5,182, 0, 11, 0, 24, 0,174, 64, 73, 8, 6, + 1,216, 6,232, 6, 2, 7, 7, 1,215, 7,231, 7, 2,166, 7, 1,155, 1, 1,119, 0,167, 0, 2, 13, 10, 9, 12, 3, 4, 7, + 6, 19, 19, 8,167, 0, 1, 0, 1, 1, 5, 9, 0, 8, 1, 0, 8, 16, 8, 32, 8,112, 8,128, 8,192, 8, 6, 8, 16, 8, 8, + 26,144, 26,160, 26, 2, 26,184,255,192, 64, 15, 21, 24, 72,143, 26, 1, 64, 26, 1, 15, 26, 1, 8, 4, 5,184,255,240, 64, 19, + 5, 11, 3, 95, 19, 16, 10, 14, 72, 19, 12, 12, 6, 4, 0, 9, 18, 6, 3, 0, 63, 63, 51, 51, 18, 57, 47, 57, 43,225, 50, 1, + 47, 56, 51, 94, 93, 93, 93, 43, 93, 17, 51, 47, 56, 93,113, 51, 18, 57, 47, 51, 93, 17, 57, 61, 47, 51, 51, 18, 57, 57, 18, 57, + 57, 93, 93, 93, 93,113, 93,113, 49, 48, 33, 35, 17, 35, 1, 35, 1, 51, 1, 35, 1, 35, 39, 33, 39, 46, 3, 39, 14, 3, 7, 2, +236,166,127,254,254,197, 2, 57,187, 2, 59,199,254,254,122,232, 1, 35, 53, 18, 28, 22, 17, 7, 9, 17, 21, 25, 17, 2,170,253, + 86, 5,182,250, 74, 2,170,164,143, 48, 76, 67, 65, 37, 37, 65, 67, 73, 45, 0, 0, 2, 0, 10, 0, 0, 4, 90, 4, 74, 0, 11, + 0, 23, 0,207, 64, 56, 57, 2, 89, 2,121, 2,137, 2, 4, 27, 2, 43, 2, 2,181, 5, 1,150, 5,166, 5, 2,135, 5, 1, 9, + 3, 25, 3, 2, 6, 8, 22, 8, 2, 9, 18, 25, 18, 2, 6, 17, 22, 17, 2, 7, 18, 3, 2, 17, 8, 9,182, 0, 1, 0,184,255, +248, 64, 27, 10, 15, 72,185, 11, 1, 11, 8, 10, 15, 72, 0, 11,180, 12, 1, 12, 12, 5, 5, 6, 6, 10, 1, 16, 2, 1,184,255, +192,179, 18, 21, 72, 1,184,255,192, 64, 24, 7, 11, 72, 1, 1, 25,192, 25,224, 25, 2,175, 25, 1, 80, 25, 1, 15, 25, 31, 25, + 2, 9, 10,184,255,240, 64, 15, 10, 4, 8, 80, 12, 11, 17, 17, 1, 11, 15, 10, 6, 1, 21, 0, 63, 51, 51, 63, 18, 57, 47, 18, + 57,225, 50, 1, 47, 56, 51, 93, 93, 93, 93, 17, 51, 47, 43, 43, 51, 56, 18, 57, 47, 51, 18, 57, 61, 47, 93, 51, 51, 43, 93, 43, + 93, 18, 57, 57, 18, 57, 57, 94, 93, 93, 93, 93, 93, 93, 93, 49, 48, 93, 93, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 1, 23, + 14, 3, 7, 51, 46, 3, 39, 2,166, 1,180,188,187, 96,162, 96,186,189, 1,180,113, 5, 27, 35, 37, 13,240, 14, 37, 35, 27, 4, + 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 4, 74,121, 25, 85, 96, 94, 34, 34, 95, 96, 84, 25, 0, 0, 2, 0,199, 0, 0, + 7, 41, 5,182, 0, 19, 0, 32, 0,191, 64, 27,155, 1, 1,119, 0,167, 0, 2, 13, 6, 14, 5, 21, 18, 17, 20, 3, 27, 4, 4, + 5, 0, 1, 15, 14, 27, 5,184,255,240, 64, 93,128, 1, 1,203, 27, 1,132, 27, 1, 43, 27,123, 27, 2, 15, 5, 31, 5, 47, 5, +127, 5,207, 5,223, 5,255, 5, 7, 8, 5, 1, 27, 27, 1, 5, 3, 17, 16, 16, 0, 16, 16, 16,112, 16,176, 16,240, 16, 5, 16, + 16, 34, 48, 34, 80, 34,192, 34,208, 34,224, 34, 5, 12, 8, 90, 9,100, 33, 19, 6, 3, 95, 13, 27, 32, 9, 16, 72, 27, 20, 20, + 14, 9, 4, 1, 17, 18, 10, 14, 3, 0, 63, 51, 63, 51, 51, 51, 18, 57, 47, 57, 43, 51,225, 50, 50, 1, 16,246,225, 50, 93, 17, + 51, 47, 93, 56, 51, 23, 57, 61, 47, 24, 47, 47, 94, 93, 93, 93, 93, 93, 56, 17, 51, 51, 17, 51, 17, 51, 17, 18, 57, 57, 17, 57, + 57, 17, 18, 57, 57, 93, 93, 49, 48, 33, 35, 17, 35, 1, 35, 1, 33, 17, 35, 17, 51, 17, 33, 19, 51, 1, 35, 1, 35, 39, 33, 39, + 46, 3, 39, 14, 3, 7, 4,231,165,129,254,253,196, 1, 8,254,127,186,186, 1,193,241,187, 2, 59,199,254,254,121,233, 1, 35, + 53, 19, 28, 21, 17, 8, 8, 17, 21, 25, 17, 2,170,253, 86, 2,170,253, 86, 5,182,253,152, 2,104,250, 74, 2,170,164,143, 48, + 76, 67, 65, 37, 37, 65, 67, 73, 45, 0, 0, 2, 0,174, 0, 0, 6, 8, 4, 74, 0, 19, 0, 31, 0,235, 64, 49,165, 5, 1,134, + 5,150, 5, 2,119, 5, 1, 6, 9, 22, 9, 2, 25, 2, 41, 2, 73, 2,105, 2,121, 2, 5, 11, 2, 1, 26, 3, 2, 25, 8, 20, + 9, 18, 11, 19, 10, 17, 13, 71, 14,198, 0, 1, 0,184,255,248, 64, 23, 10, 15, 72,201, 19, 1, 19, 8, 10, 15, 72, 0, 19,196, + 20, 1, 20, 20, 5, 5, 6, 9, 10,184,255,240, 64, 19, 47, 10, 63, 10,175, 10, 3, 10, 6, 10, 6, 1, 14, 84, 32, 2, 1, 16, + 1,184,255,192,179, 18, 21, 72, 1,184,255,192, 64, 44, 7, 11, 72, 1, 1, 33,208, 33, 1,191, 33, 1, 96, 33,112, 33,144, 33, + 3, 79, 33, 1, 0, 33, 1, 8, 11, 4, 8, 80, 18, 20, 19, 25, 25, 2, 15, 19, 15, 14, 9, 6, 2, 21, 0, 63, 51, 51, 51, 63, + 51, 18, 57, 47, 18, 57, 51,225, 50, 50, 1, 94, 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 16,230, 17, 57, 57, 47, 47, 93, + 56, 51, 17, 51, 18, 57, 61, 47, 93, 51, 51, 43, 93, 43, 93, 16,225, 50, 17, 18, 57, 57, 17, 18, 57, 57, 17, 57, 57, 93, 93, 93, + 93, 93, 93, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 19, 33, 17, 35, 17, 51, 17, 33, 19, 23, 14, 3, 7, 51, 46, 3, + 39, 4, 84, 1,180,188,187, 96,162, 96,186,189,195,254,233,182,182, 1, 84,181,112, 5, 27, 35, 37, 13,240, 14, 37, 35, 27, 4, + 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 1,233,254, 23, 4, 74,254, 57, 1,199,121, 25, 84, 96, 95, 34, 34, 95, 96, 84, + 25, 0, 0, 2, 0, 20, 0, 0, 5,106, 5,182, 0, 35, 0, 38, 0,192, 64, 17,134, 34, 1,134, 26, 1, 89, 18,137, 18, 2, 37, + 16, 9, 12, 72, 38,184,255,240, 64, 44, 9, 12, 72, 37, 10, 11, 6, 36, 36, 26, 90, 27, 38, 7, 0, 10, 16, 10, 32, 10, 3, 10, + 27, 7, 7, 27, 10, 3, 0, 18, 16, 17, 32, 17, 2,208, 17, 1,128, 17,144, 17, 2, 17,184,255,192, 64, 59, 7, 10, 72, 17, 17, + 40, 31, 40, 1,240, 40, 1,207, 40,223, 40, 2, 64, 40, 80, 40,112, 40, 3, 15, 40, 63, 40, 2, 7, 35, 0, 25, 28, 97, 36, 11, + 79, 6, 1, 15, 6,175, 6, 2, 8, 6, 6, 0, 10, 7, 38, 95, 8, 3, 27, 18, 0, 18, 0, 63, 50, 50, 63,225, 50, 50, 18, 57, + 47, 94, 93,113, 51, 51,225, 50, 1, 47, 51, 94, 93, 93, 93, 93,113, 17, 51, 47, 43, 93, 93,113, 51, 18, 23, 57, 47, 47, 47, 93, + 17, 51, 16,225, 57, 61, 47, 51, 51, 17, 51, 43, 43, 93, 93, 49, 48, 93, 51, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, + 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33, 20,123, 24, 54, 84,124, 95,254,144, 4, 73,254,133, 97, +128, 86, 55, 24,122,190,123, 20, 38, 54, 79, 61, 24,187, 24, 61, 79, 54, 38, 20,123, 1,235, 1, 74,253,111, 1,197, 85,136, 98, + 58, 6, 1,231,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, 72,254, 63, 3, + 90, 1,184, 0, 0, 2, 0, 10, 0, 0, 4,229, 4, 74, 0, 35, 0, 38, 0,199, 64, 13,118, 26,134, 26,150, 26, 3, 37, 16, 7, + 12, 72, 38,184,255,240, 64, 24, 7, 12, 72, 9, 18, 1, 6, 35, 1, 11, 6, 36, 36, 26, 70, 27, 37, 10, 38, 7,167, 27, 1, 10, +184,255,192, 64, 16, 22, 25, 72, 10, 27, 7, 7, 27, 10, 3, 0, 18, 32, 17, 1, 17,184,255,192,179, 18, 21, 72, 17,184,255,192, + 64, 63, 7, 11, 72, 17, 17, 40, 16, 40, 1,207, 40,223, 40, 2, 96, 40,144, 40, 2, 31, 40, 79, 40, 2, 35, 0, 10, 7, 38, 80, + 8, 25, 28, 82, 22, 36, 38, 36, 54, 36,166, 36, 4, 36, 11, 15, 6, 31, 6, 79, 6, 95, 6, 4, 7, 6, 6, 8, 15, 27, 18, 0, + 21, 0, 63, 50, 50, 63, 57, 47, 94, 93, 51, 51, 93,225, 50, 16,225, 50, 50, 1, 47, 51, 93, 93, 93,113, 17, 51, 47, 43, 43,113, + 51, 18, 23, 57, 47, 47, 47, 43, 93, 17, 51, 17, 51, 16,225, 57, 61, 47, 51, 51, 93, 93, 43, 43, 93, 49, 48, 51, 19, 62, 3, 55, + 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 19, 33, 10,123, 22, 44, 66, +103, 83,254,206, 3,207,254,201, 83,104, 67, 44, 23,123,186,123, 20, 36, 48, 68, 53, 4,166, 4, 53, 70, 48, 37, 20,122, 1,180, +252,254, 10, 1, 84, 61,101, 77, 49, 9, 1,100,105,105,254,156, 8, 49, 76,103, 61,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, + 10, 17, 43, 72, 54,254,176, 2,131, 1, 45, 0, 0, 2, 0,199, 0, 0, 7,137, 5,182, 0, 40, 0, 43, 0,202, 64, 21,134, 31, + 1, 89, 23,137, 23, 2, 16, 11, 41, 41, 31, 90, 32, 42, 16, 9, 12, 72, 43,184,255,240, 64, 51, 9, 12, 72, 42, 15, 43, 12, 0, + 15, 16, 15, 32, 15, 3, 7, 15, 12, 32, 32, 12, 15, 3, 22, 40,176, 0,192, 0, 2, 15, 0, 31, 0, 2, 0, 0, 7, 23, 0, 22, + 16, 22, 2,112, 22,128, 22,192, 22, 3, 22,184,255,192, 64, 52, 7, 10, 72, 22, 22, 45,224, 45, 1,159, 45,191, 45, 2, 64, 45, + 1, 47, 45, 1, 10, 6, 90, 7,100, 44, 15, 12, 43, 95, 13, 30, 5, 33, 97, 41, 16, 15, 11, 1, 8, 11, 11, 8, 13, 3, 7, 23, + 32, 3, 0, 18, 0, 63, 23, 50, 63, 51, 57, 47, 94, 93, 51, 51,225, 50, 50, 16,225, 50, 50, 1, 16,246,225, 50, 93, 93, 93, 93, + 17, 51, 47, 43, 93,113, 51, 18, 57, 47, 93, 93, 51, 18, 23, 57, 47, 47, 47, 94, 93, 17, 51, 17, 51, 43, 43, 16,225, 57, 61, 47, + 51, 51, 93, 93, 49, 48, 33, 19, 54, 54, 55, 33, 17, 35, 17, 51, 17, 33, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, + 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33, 2, 51,123, 19, 41, 28,254,123,186,186, 2,164,254,149, 4, 74,254,133, 97, +128, 85, 55, 24,123,190,123, 20, 38, 54, 79, 61, 25,186, 25, 60, 79, 54, 38, 20,123, 1,235, 1, 74,253,111, 1,197, 68,115, 46, +253, 86, 5,182,253,152, 1,221,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, + 72,254, 63, 3, 90, 1,184, 0, 0, 2, 0,174, 0, 0, 6,152, 4, 74, 0, 40, 0, 43, 0,207, 64, 13,118, 31,134, 31,150, 31, + 3, 42, 16, 7, 12, 72, 43,184,255,240, 64, 44, 7, 12, 72, 9, 23, 1, 16, 11, 41, 41, 31, 70, 32, 42, 15, 43, 12,167, 32, 1, + 15, 32, 12, 12, 32, 15, 3, 22, 31, 0, 47, 0, 2,255, 0, 1, 0, 0, 7, 23, 32, 22, 1, 22,184,255,192,179, 18, 21, 72, 22, +184,255,192, 64, 63, 7, 11, 72, 22, 22, 45,207, 45, 1,176, 45, 1,159, 45, 1, 96, 45, 1, 79, 45, 1, 0, 45, 48, 45, 2, 10, + 6, 71, 7, 84, 44, 15, 12, 43, 80, 13, 30, 5, 33, 82,166, 41, 1, 41, 16, 15, 11, 31, 11, 2, 7, 11, 11, 8, 13, 15, 7, 23, + 32, 3, 0, 21, 0, 63, 23, 50, 63, 51, 57, 47, 94, 93, 51, 51, 93,225, 50, 50, 16,225, 50, 50, 1, 16,246,225, 50, 93, 93, 93, + 93, 93, 93, 17, 51, 47, 43, 43,113, 51, 18, 57, 47, 93,113, 18, 23, 57, 47, 47, 47, 93, 17, 51, 17, 51, 16,225, 57, 61, 47, 51, + 51, 93, 43, 43, 93, 49, 48, 33, 19, 54, 54, 55, 33, 17, 35, 17, 51, 17, 33, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, + 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 19, 33, 1,188,123, 16, 29, 19,254,237,182,182, 2, 11,254,213, 3,206,254,201, + 83,104, 67, 45, 23,123,187,123, 20, 36, 48, 68, 53, 4,166, 4, 53, 69, 49, 36, 20,123, 1,180,252,254, 10, 1, 84, 42, 75, 32, +254, 23, 4, 74,254, 57, 1, 94,105,105,254,156, 8, 49, 76,103, 61,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, 10, 17, 43, 72, + 54,254,176, 2,131, 1, 45, 0, 0, 1, 0, 57,254, 70, 3,236, 6,213, 0,118, 0,159, 64, 39, 33, 24, 9, 14, 72, 89, 98, 89, + 81, 77, 77, 71, 81, 59, 91,103,108, 81,103, 68, 53,103, 20, 81, 20,103, 81, 53, 68, 5, 36, 46, 91,114,103,120, 5, 90, 36,184, +255,192, 64, 54, 20, 24, 72, 36, 93, 82, 77,143, 86,159, 86,175, 86, 3, 86, 64, 7, 11, 72, 86, 86, 71,108, 52, 96, 79, 53, 1, + 15, 53,175, 53, 2, 8, 53, 53, 41, 67, 81, 98, 3, 64, 97, 71, 3, 21, 10, 95, 31,251, 41, 96, 0, 19, 0, 63,225, 63,225, 51, + 63,225, 23, 51, 18, 57, 47, 94, 93,113,225, 57, 17, 51, 47, 43, 93, 51,225, 1, 47, 43,225, 16,246,225, 18, 23, 57, 61, 47, 24, + 47, 47, 47, 47, 17, 18, 57, 16,225, 17, 51, 51, 47, 17, 51, 51, 47, 49, 48, 0, 43, 5, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, + 2, 51, 50, 30, 2, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, + 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 51, 50, 22, 23, 21, 38, + 38, 35, 34, 14, 2, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 1,225, 71, 90, 52, 20, 14, 36, 61, 47, 65, 97, + 83, 81, 50, 43, 66, 49, 35, 12, 8, 31, 54, 77, 53, 49, 71, 74, 92, 70,104,136, 79, 32, 49,102,157,108, 89,128, 81, 38, 57,103, +145, 88,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 59,166,103, 24, 55, 54, 50, 20,121, 51, 97, 54, 26, 59, 67, 75, + 42, 31, 47, 14, 11, 34, 17, 22, 48, 48, 46, 20, 82,126, 85, 43, 51, 91,125, 75, 87,138, 94, 50, 67,131,196, 20, 18, 32, 41, 24, + 22, 36, 26, 14, 4, 4, 4, 7, 10, 15, 7,182, 7, 18, 16, 12, 3, 3, 2, 41, 72, 96, 55, 60, 98, 70, 38, 38, 72,105, 68, 71, +101, 63, 29,151, 39, 72,100, 62, 54, 83, 58, 30, 67, 54,125, 48, 75, 17, 30, 65, 63, 58, 23, 27, 34, 97, 56, 36, 70, 56, 35, 9, + 5,119, 5, 7, 23, 41, 56, 33, 13, 63, 92,118, 69, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 0, 1, 0, 23, +254,115, 3, 82, 5, 82, 0,112, 0,183, 64,113, 64, 24, 9, 14, 72,104,104, 98,108, 3, 12, 3,108, 88, 70, 17, 22,108, 17,224, + 95, 1, 95, 82, 17, 51,108, 51, 17,108, 82, 95, 5, 67, 77, 71, 28, 87,114,192,114,208,114,224,114, 3,127,114, 1, 48,114, 1, + 15,114, 1, 7, 38, 70, 67, 64, 12, 17, 72, 67, 22, 22, 81, 80,137, 82,153, 82, 2, 15, 82, 1, 8, 82, 82, 98, 72,104, 7, 82, + 0, 64, 16, 20, 72, 0, 64, 7, 12, 72, 0, 94,108, 0, 3, 91, 80, 12, 98, 16, 52, 43, 80, 62,251, 72, 80, 33, 22, 0, 63,225, + 63,225, 51, 63, 51,225, 23, 51, 47, 43, 43,225, 51, 17, 18, 57, 47, 94, 93, 93,225, 57, 61, 47, 1, 24, 47, 43,225, 94, 93, 93, + 93, 93, 16,246,225, 18, 23, 57, 61, 47, 24, 47, 47, 47, 47, 93, 17, 18, 57, 16,225, 17, 51, 51, 47, 17, 51, 51, 47, 49, 48, 0, + 43, 1, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 35, 34, 14, 2, 21, + 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, + 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 2,207, 31, + 47, 14, 11, 33, 17, 21, 46, 46, 45, 19, 55, 89, 63, 35, 28, 51, 70, 43, 44, 82, 63, 38, 53,108,166,113, 75, 89, 47, 15, 14, 34, + 58, 44, 50, 99, 93, 83, 33, 66, 71, 13, 9, 34, 40, 44, 19, 32, 85,100,111, 57, 88,112, 64, 24, 34, 86,144,110, 55,100, 76, 44, +133,138,129, 97, 61,100, 72, 39,115,108, 71,129, 75, 63, 57,107, 65, 23, 49, 48, 44, 18,121, 51, 98, 54, 26, 58, 67, 75, 5, 82, + 9, 5,119, 5, 7, 21, 38, 51, 31, 14, 49, 69, 88, 53, 50, 77, 59, 41, 14, 11, 14, 44, 66, 91, 61, 68,116, 86, 49, 14, 26, 38, + 23, 22, 35, 24, 13, 3, 4, 3, 22, 19,151, 10, 15, 10, 6, 3, 3, 3, 46, 71, 86, 41, 47, 89, 70, 42, 19, 43, 69, 51, 94, 91, +153, 18, 39, 64, 45, 77, 77, 38, 34,147, 28, 34, 8, 28, 59, 55, 50, 21, 27, 34, 97, 56, 36, 70, 56, 35,255,255, 0,104, 0, 0, + 5,186, 5,182, 2, 6, 1,117, 0, 0,255,255, 0,164,254, 20, 5,113, 6, 18, 2, 6, 1,149, 0, 0, 0, 3, 0,125,255,236, + 5,113, 5,205, 0, 19, 0, 30, 0, 41, 0, 79, 64, 50, 37, 25, 91, 0,103, 43,208, 43, 1,207, 43, 1,128, 43, 1, 63, 43,111, + 43, 2, 36, 26, 91, 10,102, 42, 26, 96, 79, 36, 1, 15, 36,175, 36,223, 36, 3, 8, 36, 36, 20, 31, 95, 15, 4, 20, 95, 5, 19, + 0, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, 50, 93, 93, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 2, 6, 6, + 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 46, 3, 5, +113, 81,160,237,155,163,239,157, 76, 76,158,239,164,154,236,160, 81,253,135,106,158,107, 57, 6,252,154, 6, 58,107,158,109,105, +156,108, 61, 8, 3,100, 8, 59,105,155, 2,221,170,254,235,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,253, + 7, 71,134,194,122,122,194,134, 71, 4,154, 67,128,184,117,117,184,128, 67, 0, 0, 3, 0,113,255,236, 4, 45, 4, 94, 0, 19, + 0, 26, 0, 33, 0, 79, 64, 51, 31, 23, 72, 0, 87, 35, 64, 35,208, 35,224, 35, 3, 15, 35, 1, 30, 24, 72, 10, 86, 34, 24, 80, +239, 30, 1,169, 30,185, 30, 2, 15, 30, 31, 30, 47, 30, 3, 6, 30, 30, 20, 27, 80, 15, 16, 20, 80, 5, 22, 0, 63,225, 63,225, + 18, 57, 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, + 2, 51, 50, 30, 2, 1, 50, 54, 55, 33, 22, 22, 19, 34, 6, 7, 33, 38, 38, 4, 45, 67,125,178,111,103,174,127, 71, 67,124,179, +111,103,174,127, 71,254, 35,141,136, 10,253,190, 9,140,140,137,136, 14, 2, 62, 13,138, 2, 39,137,213,145, 76, 76,145,213,137, +136,211,145, 75, 75,145,211,253,212,178,178,178,178, 3, 68,162,164,164,162, 0, 0, 1, 0, 0, 0, 0, 5, 2, 5,195, 0, 28, + 0, 90, 64, 41, 7, 6, 11, 13, 1,251, 13, 1, 13, 13, 8,144, 25,208, 25, 2, 25, 25, 30, 0, 30, 1,176, 30, 1, 15, 30, 31, + 30, 47, 30, 79, 30, 95, 30,127, 30, 6, 7, 9, 8,184,255,240, 64, 12, 8, 0, 96, 22, 4, 9, 8, 3, 13, 6, 7, 18, 0, 63, + 51, 51, 63, 51, 63,225, 1, 47, 56, 51, 94, 93, 93,113, 17, 51, 47, 93, 18, 57, 61, 47, 93,113, 51, 51, 49, 48, 1, 34, 14, 2, + 7, 1, 35, 1, 51, 1, 22, 22, 23, 54, 54, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, 38, 4,150, 36, 53, 42, 36, 18,254,215,205, +254, 25,197, 1, 39, 29, 46, 17, 14, 42, 26,141, 31, 61, 76,103, 75, 35, 68, 26, 23, 53, 5, 45, 37, 72,103, 66,251,233, 5,182, +252, 97, 91,175, 79, 78,188, 97, 2, 0,113,156, 98, 43, 13, 8,151, 9, 13, 0, 0, 1, 0, 0, 0, 0, 4, 14, 4, 82, 0, 31, + 0,109,185, 0, 30,255,248, 64, 22, 10, 14, 72, 31, 8, 10, 14, 72, 31, 30, 7, 32, 13, 17, 72, 7, 7, 0,224, 22, 1, 22,184, +255,224, 64, 26, 7, 10, 72, 22, 22, 33,191, 33,207, 33,239, 33, 3, 80, 33, 1, 15, 33, 47, 33, 79, 33, 3, 7, 1, 0,184,255, +240, 64, 12, 0, 30, 7, 31, 21, 26, 79, 19, 15, 1, 0, 15, 0, 63, 50, 63,225, 63, 51, 51, 1, 47, 56, 51, 94, 93, 93, 93, 17, + 51, 47, 43, 93, 18, 57, 61, 47, 43, 51, 51, 43, 43, 49, 48, 17, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 62, 3, 51, 50, 22, 23, + 21, 38, 38, 35, 34, 6, 7, 3, 35,188,201, 11, 32, 31, 26, 5, 6, 4, 20, 24, 25, 9, 86, 25, 53, 67, 88, 60, 26, 34, 17, 11, + 38, 18, 47, 58, 24,224,243, 4, 74,253,162, 33,106,110, 97, 25, 25, 95,108,103, 33, 1, 64, 94,117, 66, 24, 5, 5,135, 3, 5, + 80, 88,252,223,255,255, 0, 0, 0, 0, 5, 2, 7,115, 2, 38, 2,128, 0, 0, 1, 7, 3,118, 4,184, 1, 82, 0, 25,182, 2, + 1, 29, 5, 38, 2, 1,184,255,130,180, 49, 29, 8, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 14, + 6, 33, 2, 38, 2,129, 0, 0, 1, 7, 3,118, 4, 80, 0, 0, 0, 25,182, 2, 1, 32, 17, 38, 2, 1,184,255,148,180, 52, 32, + 0, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0,125,254, 20, 9, 90, 5,205, 0, 19, 0, 39, 0, 74, 0,161, 64, 10, + 0, 91, 30, 56, 74, 47, 47, 55, 41, 40,184,255,240, 64, 35, 40, 40, 64, 0, 64, 16, 64, 2,240, 64, 1, 31, 64, 47, 64, 63, 64, + 3, 0, 30, 1, 30, 64, 30, 64, 10, 54, 55, 16,208, 55,224, 55, 2, 55,184,255,192, 64, 52, 7, 11, 72, 55, 55, 76, 15, 76, 1, + 15, 76, 31, 76, 47, 76, 79, 76,127, 76,191, 76,223, 76,239, 76, 8, 7, 20, 91, 10,102, 75, 56, 47, 74, 74, 40, 68, 80, 61, 27, + 54, 40, 15, 35, 95, 15, 4, 25, 95, 5, 19, 0, 63,225, 63,225, 63, 51, 63,225, 17, 57, 17, 51, 51, 1, 16,246,225, 94, 93,113, + 17, 51, 47, 43, 93, 56,193, 18, 57, 57, 47, 47, 93, 93, 93,113, 17, 51, 47, 56,193, 18, 57, 61, 47, 51, 51, 16,225, 49, 48, 1, + 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, + 34, 14, 2, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 55, 5, + 31, 76,150,221,145,152,224,147, 71, 71,147,225,153,144,221,149, 76,252, 35, 47, 97,150,103,103,150, 96, 46, 46, 96,148,103,104, +151, 97, 47, 4, 67,189,215, 13, 29, 25, 19, 4, 6, 4, 23, 27, 29, 11,199,188,254, 78, 29, 64, 86,116, 80, 52, 76, 27, 21, 64, + 35, 48, 70, 52, 37, 15, 57, 2,221,170,254,235,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, + 81, 81,153,219,137,138,218,151, 81, 81,151,218,227,253,155, 40, 88, 88, 83, 34, 25, 86, 97, 94, 33, 2, 99,251, 39, 81,129, 90, + 49, 11, 6,145, 5, 7, 23, 44, 64, 41,160, 0,255,255, 0,113,254, 20, 8, 78, 4, 94, 0, 38, 0, 82, 0, 0, 1, 7, 0, 92, + 4,111, 0, 0, 0, 17,177, 2, 2,184, 4, 20,180, 32, 47, 10, 0, 37, 1, 43, 53, 0, 53, 0, 0, 2, 0,125,255,131, 5,195, + 6, 49, 0, 31, 0, 63, 0, 82, 64, 51, 48, 91, 0,103, 65,180, 65,196, 65, 2,144, 65, 1, 2, 48, 65,128, 65, 2, 32, 91, 16, +102, 64, 25, 24, 1, 11, 24, 1, 4, 8, 20, 8, 2, 7, 56, 53, 59, 95, 27, 24, 21, 3, 40, 37, 95, 8, 5, 11, 18, 0, 63, 51, + 51,225, 50, 63, 51, 51,225, 50, 50, 94, 93, 93, 93, 1, 16,246,225, 93, 95, 93, 93, 16,246,225, 49, 48, 1, 20, 14, 2, 7, 6, + 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, 30, 3, 5, 20, 30, 2, 23, 54, 54, 51, 50, 22, 23, 62, + 3, 53, 52, 46, 2, 39, 6, 6, 35, 34, 38, 39, 14, 3, 5,195, 73,137,197,124, 14, 74, 55, 59, 72, 13,129,199,135, 69, 69,135, +199,129, 13, 72, 59, 55, 74, 14,123,197,137, 74,251,127, 45, 87,127, 83, 17, 67, 53, 49, 69, 17, 82,128, 87, 45, 45, 87,128, 82, + 16, 70, 49, 53, 67, 17, 83,127, 87, 45, 2,221,149,252,192,125, 23, 63, 54, 54, 63, 22,125,192,254,150,150,251,191,123, 23, 63, + 49, 51, 61, 23,125,191,251,150,116,192,146, 98, 21, 48, 38, 40, 46, 21, 98,146,192,116,115,191,146, 98, 22, 50, 41, 41, 48, 22, + 97,145,191, 0, 0, 2, 0,113,255,145, 4,168, 4,182, 0, 31, 0, 55, 0, 84,181, 44, 72, 0, 87, 57, 57,184,255,192,179, 14, + 20, 72, 57,184,255,192, 64, 36, 9, 12, 72, 32, 72, 16, 86, 56, 25, 24, 1, 11, 24, 1, 4, 8, 20, 8, 2, 7, 50, 47, 53, 80, + 27, 2, 21, 15, 41, 38, 35, 80, 8, 5, 11, 22, 0, 63, 51, 51,225, 50, 50, 63, 51, 51,225, 50, 50, 94, 93, 93, 93, 1, 16,246, +225, 43, 43, 16,246,225, 49, 48, 1, 20, 14, 2, 7, 6, 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, + 30, 3, 5, 20, 22, 23, 54, 54, 51, 50, 22, 23, 54, 54, 53, 52, 38, 39, 6, 6, 35, 34, 38, 39, 6, 6, 4,168, 57,107,153, 95, + 9, 60, 56, 58, 59, 8, 93,153,110, 61, 57,108,154, 98, 8, 59, 58, 55, 61, 9, 91,152,109, 60,252,133,111,123, 11, 57, 52, 50, + 57, 12,121,109,110,120, 12, 57, 50, 52, 57, 11,123,111, 2, 39,118,191,142, 90, 18, 57, 46, 45, 56, 18, 90,142,192,119,117,191, +141, 90, 18, 57, 41, 42, 58, 18, 91,141,188,117,172,205, 31, 44, 32, 32, 42, 31,204,171,169,200, 32, 43, 32, 32, 45, 31,200, 0, + 0, 3, 0,125,255,236, 7, 53, 8, 61, 0, 69, 0, 91, 0,109, 0,218, 64,146, 55, 20, 36, 4, 20, 4, 20, 36, 3, 28, 65, 91, + 12,103,111, 0,111, 16,111, 2, 0,111, 32,111, 80,111,128,111,144,111,160,111,208,111,224,111, 8, 45, 91, 28,102,110, 99,104, + 71, 71, 92,104, 81, 64, 82, 80, 82, 96, 82, 3, 82, 82, 95, 0,104, 16,104, 32,104,128,104,144,104, 5, 7,104,224, 77, 1, 77, +191, 86,207, 86, 2, 86, 82,239, 70, 1, 70, 71, 71, 79, 82, 1, 82, 82, 96,107,192,107,208,107,224,107, 4,107,111, 95,127, 95, +175, 95,239, 95, 4, 16, 95, 1, 95, 50, 60, 95, 17, 20,127, 55,143, 55, 2, 55, 64, 7, 10, 72, 55, 55, 23, 17, 19, 37, 3, 3, + 40, 0, 95, 33, 7, 4, 0, 63, 51,225, 50, 51, 17, 51, 63, 51, 51, 47, 43, 93, 51, 16,225, 50, 47, 93, 93,204, 93, 50, 47,113, + 51, 16,205, 93, 16,221, 93,205, 93, 1, 47, 94, 93, 51, 51, 47, 93,205, 16,205, 50, 47, 17, 57, 16,246,225, 93,113, 16,246,225, + 18, 23, 57, 61, 47, 24, 47, 47, 17, 51, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 38, + 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, + 55, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 3, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 5, + 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 5, 63, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198, +136,103,162, 69, 71,160,103,136,198,129, 63, 64,125,183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 42, 86, + 78, 66, 23, 23, 66, 78, 86, 42, 92,139, 92, 46, 44, 80,113, 3, 16, 86,144,122,100, 42, 46, 58,133,124,109, 58,112,119,133, 78, +254,239,120,121, 60, 56, 31, 36, 31, 50, 46, 59, 68, 5, 37, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 42, 44, + 44, 42,119,210, 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 19, 35, 47, 28, 28, 47, 35, + 19, 89,164,229,141,136,207,138, 70, 2,166,129, 36, 42, 36, 45, 53, 16, 35,107,101, 36, 42, 36,226, 77,115, 31, 76, 22, 45, 25, + 19, 18, 16, 26, 28, 37, 38, 70, 0, 3, 0,113,255,236, 5,223, 7, 8, 0, 67, 0, 89, 0,108, 0,178, 64,107, 96,103, 69, 69, + 90,103, 79, 64, 80, 80, 80, 2, 80, 80, 93,111,103,159,103, 2, 16,103, 1,103, 36, 21, 11, 53, 63, 3, 3, 11, 44, 72, 63, 87, +110, 30, 72, 11, 86,109, 0, 75, 1, 75,223, 84, 1, 84, 80, 15, 68, 1, 68, 69, 69,111, 80, 1, 80, 80, 0,106, 1,224,106,240, +106, 2,106, 15, 93,127, 93, 2, 7, 93, 47, 27, 81, 52, 22, 22, 58, 16, 16, 33, 41, 81, 0, 3, 36, 64, 16, 21, 72, 36, 64, 7, + 12, 72, 36, 36, 6, 0, 22, 0, 63, 50, 50, 47, 43, 43, 51, 16,225, 50, 63, 51, 51, 17, 51,225, 50, 47, 94, 93,204, 93,113, 50, + 47,113, 51, 16,205,113, 16,221, 93,205,113, 1, 16,246,225, 16,246,225, 18, 57, 61, 47, 18, 57, 18, 57, 51, 24, 47, 93, 93, 51, + 51, 47, 93,205, 16,205, 50, 47, 17, 57, 49, 48, 5, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, + 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, 14, 2, 7, 39, 62, 3, 51, 50, 30, 2, + 21, 20, 14, 2, 19, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 5, 20, 6, 7, 53, 54, 53, 52, + 46, 4, 53, 52, 54, 51, 50, 22, 4, 16, 81,109, 43, 43,106, 80, 95,169,127, 74, 63,109,147, 84, 31, 64, 60, 52, 20, 63, 17, 41, + 43, 43, 18,112,105,141,136, 73,115, 41, 22, 49, 57, 66, 41,133,140,105,112, 18, 43, 43, 41, 17, 64, 20, 53, 60, 63, 32, 84,147, +109, 63, 74,126,169, 58, 16, 86,144,122,100, 42, 46, 58,134,124,110, 57,112,120,133, 78,254,239,120,121,116, 15, 21, 26, 21, 15, + 50, 46, 59, 68, 20, 35, 32, 32, 35, 63,137,213,150,157,219,137, 62, 9, 16, 22, 12,154, 10, 19, 15, 9,202,211,211,195, 52, 32, + 16, 30, 24, 14,195,211,211,202, 9, 15, 19, 10,154, 12, 22, 16, 9, 62,137,219,157,150,213,137, 63, 6,170,130, 36, 43, 36, 46, + 52, 17, 35,108,101, 36, 42, 36,226, 77,115, 31, 76, 41, 51, 13, 15, 12, 10, 15, 23, 18, 38, 38, 70, 0, 0, 2, 0,125,255,236, + 7, 94, 7, 4, 0, 13, 0, 83, 0,155, 64, 98, 35, 18, 71, 90, 51,197, 68, 1,150, 68,166, 68, 2,137, 68, 1, 68, 68, 43, 79, + 91, 26, 0, 13, 0, 13, 43, 26,103, 85, 0, 85, 16, 85, 2, 0, 85, 32, 85, 80, 85,112, 85,208, 85,224, 85, 6, 7, 60, 91, 43, +102, 84, 69, 69, 65, 14, 55, 95, 48, 17, 52, 9, 4, 4, 0,128, 10, 6, 63, 2,127, 2,207, 2,223, 2,239, 2, 5, 2, 52, 21, + 48, 4, 74, 35, 32, 9, 14, 72, 35, 65, 95, 31, 38, 19, 0, 63, 51,225, 50, 43, 50, 63, 51, 51, 47, 93, 51, 51, 26,205, 57, 47, + 51, 17, 51, 16,225, 50, 18, 57, 47, 1, 16,246,225, 94, 93,113, 16,230, 17, 57, 57, 47, 47, 16,225, 17, 57, 47, 93, 93, 93, 51, +225, 50, 57, 49, 48, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, + 20, 2, 6, 6, 35, 34, 38, 39, 35, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, + 21, 20, 30, 2, 51, 50, 54, 55, 17, 51, 17, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5,139, 82, 34, 50,184, 49, 35, 49,184, 50, + 34, 80, 3, 28, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198,136,111,170, 73, 2, 75,168,110,136,198,129, 63, 64,125, +183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 57,118, 46,187, 46,118, 59, 92,139, 92, 46, 44, 80,113, 7, + 4, 27,172,103,103,103,103,172, 27,254, 33, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 50, 48, 48, 50,119,210, + 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 36, 38, 1,189,254, 67, 38, 36, 89,164,229, +141,136,207,138, 70, 0, 0, 2, 0, 0, 0, 0, 5,244, 5,164, 0, 13, 0, 58, 1, 35, 64, 13, 0, 13, 0, 13, 42, 15,185, 48, + 1,130, 48, 1, 47,184,255,240,179, 10, 16, 72, 58,184,255,240,179, 19, 27, 72, 58,184,255,240, 64, 25, 10, 15, 72,169, 14, 1, + 14, 16, 19, 27, 72, 14, 16, 10, 15, 72, 48, 27, 28, 52,102, 29, 1, 29, 28,184,255,240, 64, 83, 15, 28, 31, 28, 63, 28, 3, 79, + 28,111, 28,127, 28,159, 28,191, 28, 5, 28, 28, 52, 48, 47, 35,144, 35, 1,116, 35, 1,107, 35, 1, 36, 35, 52, 35, 2, 58, 14, + 20,144, 52, 1, 36, 20, 52, 20, 68, 20,116, 20,148, 20, 5, 35, 52, 20, 20, 52, 35, 3, 15, 41, 71, 0, 42, 16, 42, 2, 7, 42, + 42, 60, 16, 60, 32, 60, 48, 60, 3, 16, 15,184,255,240, 64, 53, 15, 9, 4, 4, 0,128, 10, 6, 15, 2,127, 2,143, 2,159, 2, + 4, 2, 64, 20, 23, 72, 2, 52, 64, 21, 29, 72, 52, 32, 12, 20, 72, 27, 52, 30, 3, 14, 41, 28, 15, 15, 35, 20, 38, 20, 54, 20, + 2, 20, 48, 14, 21, 0, 63, 51, 51, 93, 17, 51, 63, 51, 51, 18, 23, 57, 43, 43, 47, 43, 93, 51, 51, 26,205, 57, 47, 51, 1, 47, + 56, 51, 93, 17, 51, 47, 94, 93,225, 18, 23, 57, 61, 47, 47, 47, 93, 93, 17, 51, 51, 93, 93, 93, 93, 17, 51, 51, 17, 51, 24, 47, + 93,113, 56, 51, 93,135,192,192, 1, 43, 43, 93, 43, 43, 43, 93, 93, 17, 18, 57, 57, 47, 47, 49, 48, 1, 21, 7, 35, 39, 35, 7, + 35, 39, 35, 7, 35, 39, 53, 3, 1, 51, 19, 22, 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 3, 53, 51, 20, 2, + 2, 6, 7, 35, 3, 38, 38, 53, 14, 3, 7, 3, 4,186, 82, 34, 50,184, 49, 35, 49,184, 49, 35, 80, 4,254,137,188,224, 28, 38, + 9, 7, 7, 21, 26, 29, 15,119,162,188,201, 12, 31, 30, 24, 5, 7, 90,114, 65, 25,183, 37, 92,154,117,192,119, 12, 13, 1, 6, + 9, 10, 4,152, 5,164, 27,172,103,103,103,103,172, 27,250, 92, 4, 74,253, 86, 87,157, 51, 22, 58, 65, 69, 32, 1, 12, 1,207, +253,176, 33, 99,103, 92, 25,103,208,226,255,152,163,254,223,254,245,252,127, 1, 84, 32, 53, 3, 1, 19, 27, 29, 10,254,170, 0, + 0, 1, 0,125,254, 20, 4,152, 5,203, 0, 35, 0, 84, 64, 23, 17, 90, 15, 16, 1, 7, 16, 64, 15, 18, 72, 16, 16, 24,186, 32, + 1, 96, 32,112, 32, 2, 32,184,255,192, 64, 26, 6, 10, 72, 32, 32, 37,175, 37, 1, 5, 91, 24,102, 36, 33, 0, 95, 29, 4, 15, + 10, 95, 19, 19, 16, 27, 0, 63, 63,225, 51, 63,225, 51, 1, 16,246,225, 93, 17, 51, 47, 43, 93, 93, 18, 57, 47, 43, 94, 93,225, + 49, 48, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 35, 17, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, + 7, 38, 38, 3, 25,107,174,123, 67, 59,118,176,118, 29, 45, 40, 37, 21,187, 16,164,240,157, 76, 87,169,250,162,108,196, 79, 78, + 63,148, 5, 39, 81,152,218,137,141,219,150, 78, 4, 9, 13, 9,253, 98, 1,216,108,198, 1, 21,170,166, 1, 20,198,110, 44, 42, +156, 32, 46, 0, 0, 1, 0,113,254, 20, 3,111, 4, 94, 0, 31, 0, 62, 64, 37, 29, 71, 28, 64, 14, 17, 72, 28, 28, 4, 12, 33, + 95, 33,127, 33, 2, 16, 33, 1, 21, 72, 4, 86, 32, 27, 24, 81, 31, 22, 28, 27, 18, 81, 13, 9, 16, 0, 63, 51,225, 63, 63,225, + 51, 1, 16,246,225, 93, 93, 16,206, 17, 57, 47, 43,225, 49, 48, 4, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, 35, 34, + 6, 21, 20, 22, 51, 50, 54, 55, 17, 35, 17, 35, 1,237,176,130, 74, 76,133,178,102, 78,149, 50, 54, 23, 56, 60, 59, 25,157,144, +145,148, 62,104, 35,183, 18, 20, 63,137,213,150,157,219,137, 62, 34, 25,154, 10, 19, 15, 9,202,211,211,195, 27, 20,253, 90, 1, +216, 0, 0, 1, 0,104,255,250, 4,121, 5, 10, 0, 19, 1, 37, 64,103, 13, 17, 29, 17, 2, 13, 1, 29, 1, 2, 2, 11, 18, 11, + 2, 2, 7, 18, 7, 2, 7, 16, 17, 12, 19, 18, 11, 0, 1, 8, 3, 2, 7, 4, 15, 4, 13, 17, 12, 10, 18, 11, 9, 1, 8, 6, + 2, 7, 5, 14, 5, 13, 16, 17, 12, 17, 10, 19, 18, 11, 18, 9, 0, 1, 8, 1, 6, 3, 2, 7, 2, 4, 5, 12, 11, 2, 1, 14, + 15, 79, 1, 1, 64, 11, 1, 5, 11, 1, 15, 15, 1, 11, 5, 4, 18, 96, 17,112, 17,240, 17, 3, 17,184,255,192, 64, 77, 7, 10, + 72, 17, 8, 7, 17, 21, 32, 21, 48, 21, 2, 3, 6, 0, 9, 4, 7, 1, 1, 2, 19, 10, 16, 13, 4, 11, 17, 17, 18, 4, 7, 1, + 7, 7, 8, 11, 11, 1, 11, 11, 12,176, 12,192, 12, 2, 15, 18, 31, 18, 2, 0, 8, 16, 8, 2, 2, 18, 8, 12, 12, 8, 18, 2, + 4, 4, 15, 14, 64, 7, 13, 72, 14, 5, 4, 0, 47, 51, 47, 43, 51, 18, 23, 57, 47, 47, 47, 47, 93, 93, 93, 17, 51, 47,113, 17, + 51, 47,113, 17, 51, 47, 18, 23, 57, 17, 51, 47, 18, 23, 57, 1, 93, 17, 51, 47, 50, 47, 43, 93, 51, 23, 57, 47, 47, 47, 47, 93, + 93, 17, 51, 17, 51, 17, 51, 17, 51, 16,135,192,192, 16,135,192,192, 16,135,192,192, 16,135,192,192, 16,135, 8,192, 8,192, 8, +192, 8,192, 16,135, 8,192, 8,192, 8,192, 8,192, 49, 48, 0, 94, 93, 93, 93, 93, 1, 5, 7, 37, 3, 39, 19, 37, 55, 5, 19, + 37, 55, 5, 19, 23, 3, 5, 7, 37, 2, 76, 1, 28, 71,254,227,180,129,180,254,229, 70, 1, 31,198,254,228, 71, 1, 29,182,127, +182, 1, 31, 74,254,229, 1,176,166,123,164,254,199, 74, 1, 59,164,123,164, 1, 90,164,125,164, 1, 57, 73,254,196,164,123,164, + 0, 1, 0,201, 4,143, 3,176, 5,184, 0, 21, 0, 66,181, 15, 32, 7, 10, 72, 3,184,255,224, 64, 30, 7, 10, 72, 12, 18, 18, + 23, 0, 0, 6, 16, 6, 32, 6,144, 6,160, 6, 5, 7, 6, 6, 22, 15, 15, 11, 0, 3, 3, 0, 0, 47, 50, 47, 16,205, 50, 47, + 17, 1, 51, 47, 94, 93, 51, 17, 51, 47, 51, 0, 43, 43, 49, 48, 1, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, 33, 54, 54, 51, 50, + 22, 21, 20, 6, 35, 1,139, 6, 44, 48, 56, 40, 9, 23, 37, 29, 1,193, 5, 45, 48, 56, 42, 43, 57, 4,238, 44, 51, 51, 56, 28, + 37, 22, 9, 45, 49, 50, 54, 57, 41, 0, 0, 1, 0,244, 4,229, 3,223, 5,217, 0, 21, 0, 66, 64, 17,128, 8,144, 8, 2, 8, + 8, 23, 0, 20, 16, 20, 32, 20, 3, 7, 20,184,255,192, 64, 18, 13, 16, 72, 20, 20, 22, 21, 20, 20, 9, 14, 64,191, 5, 1, 5, +128, 9, 0, 47, 26,221, 93, 26,205, 17, 51, 47,205, 17, 1, 51, 47, 43, 94, 93, 17, 51, 47, 93, 49, 48, 1, 50, 62, 2, 51, 50, + 22, 21, 21, 35, 53, 52, 38, 35, 34, 14, 2, 35, 35, 53, 1, 2, 78,133,119,112, 58,109,124,133, 58, 46, 42,101,121,145, 85, 16, + 5,102, 36, 43, 36,101,108, 35, 17, 52, 46, 36, 43, 36,129, 0, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 32, 64, 18, + 11, 14, 63, 6, 79, 6, 2, 6, 0, 63, 3, 79, 3, 95, 3, 3, 3, 15, 0, 47,204, 93, 1, 47,205, 93, 50, 57, 49, 48, 1, 52, + 54, 51, 50, 22, 21, 20, 14, 2, 21, 20, 22, 23, 21, 38, 38, 1,225, 68, 59, 47, 50, 31, 37, 31, 57, 60,122,120, 5,182, 57, 70, + 38, 38, 27, 26, 17, 17, 19, 25, 46, 21, 76, 31,115, 0, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 19, 0, 32, 64, 18, 7, 63, + 0, 79, 0, 2, 0, 3, 14, 63, 17, 79, 17, 95, 17, 3, 17, 3, 0, 47,204, 93, 1, 47, 51,205, 93, 57, 49, 48, 1, 20, 6, 7, + 53, 54, 54, 53, 52, 46, 4, 53, 52, 54, 51, 50, 22, 2,211,120,122, 60, 57, 15, 21, 26, 21, 15, 50, 46, 59, 68, 5,182, 77,115, + 31, 76, 21, 46, 25, 13, 15, 12, 10, 15, 23, 18, 38, 38, 70, 0, 0, 8, 0, 41,254,193, 7,193, 5,145, 0, 19, 0, 39, 0, 59, + 0, 79, 0, 99, 0,119, 0,139, 0,159, 0, 0, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 3, 46, 3, 35, + 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, + 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, + 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, + 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 4,111, 3, 24, 36, 46, 25, 30, 47, 33, 20, 3, 75, 5,100,103, 49, 77, 54, 30, + 3, 79, 3, 24, 36, 46, 25, 30, 47, 33, 20, 3, 75, 5,100,103, 49, 77, 54, 30, 3, 1,244, 3, 23, 36, 46, 25, 31, 47, 33, 19, + 3, 76, 5,101,103, 49, 77, 54, 30, 3,251, 47, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3, 4, + 49, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3,251, 47, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, + 76, 5,101,103, 49, 77, 54, 30, 3, 4,240, 3, 24, 36, 45, 25, 31, 47, 33, 20, 3, 75, 5,100,104, 49, 76, 54, 31, 3,249,190, + 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3, 4,207, 28, 35, 19, 6, 5, 18, 35, 30, 90,104, 28, + 51, 72, 43,249,242, 28, 35, 19, 6, 5, 18, 35, 30, 89,105, 29, 51, 71, 43, 1, 22, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, + 51, 72, 43, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, 43, 3,219, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, + 43, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, 43,254, 25, 28, 35, 19, 6, 5, 18, 35, 30, 90,104, 29, 51, 71, 43, 28, + 35, 19, 6, 5, 18, 35, 30, 90,104, 29, 51, 71, 43, 0, 0, 8, 0, 41,254,127, 7,125, 5,211, 0, 12, 0, 25, 0, 38, 0, 51, + 0, 64, 0, 77, 0, 90, 0,103, 0, 0, 5, 23, 14, 3, 7, 35, 62, 3, 55, 3, 39, 62, 3, 55, 51, 14, 3, 7, 1, 55, 30, 3, + 23, 21, 46, 3, 39, 5, 7, 46, 3, 39, 53, 30, 3, 23, 1, 55, 62, 3, 55, 23, 14, 3, 7, 1, 7, 14, 3, 7, 39, 62, 3, 55, + 3, 39, 46, 3, 39, 55, 30, 3, 23, 1, 23, 30, 3, 23, 7, 46, 3, 39, 4, 55, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, + 59, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, 2, 35, 14, 38, 85, 87, 87, 39, 42, 93, 91, 87, 37,251,104, 14, 39, 85, 87, + 86, 39, 42, 93, 91, 87, 37, 3,166, 2, 34, 80, 84, 86, 40, 69, 37, 79, 78, 73, 30,252,234, 2, 35, 79, 84, 86, 40, 69, 37, 79, + 78, 73, 30, 43, 17, 20, 41, 39, 36, 15, 67, 23, 51, 52, 50, 23, 3,106, 17, 20, 40, 39, 37, 15, 67, 23, 52, 52, 50, 22, 35, 14, + 39, 85, 87, 86, 39, 42, 93, 91, 87, 37, 4,152, 14, 38, 85, 87, 87, 39, 42, 93, 91, 87, 37,254, 22, 11, 10, 28, 32, 35, 18, 97, + 10, 21, 18, 16, 5, 59, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, 1,170, 16, 20, 41, 39, 37, 15, 68, 23, 51, 52, 50, 22, +252,149, 16, 20, 41, 39, 37, 15, 68, 23, 51, 52, 50, 22, 2,222, 2, 34, 80, 84, 85, 40, 70, 37, 79, 78, 73, 30,252,233, 2, 35, + 79, 84, 85, 40, 70, 37, 79, 78, 73, 30, 0, 2, 0,201,254,127, 5,211, 7,104, 0, 27, 0, 49, 0,179, 64, 72, 28, 28, 48, 38, + 1,208, 38, 1,175, 38,207, 38, 2, 32, 38, 48, 38,128, 38, 3, 38, 38, 23, 10, 25, 26, 26, 24, 27, 21, 7, 0, 90, 23,101, 51, +208, 51, 1,175, 51, 1, 32, 51, 48, 51, 2, 19, 8, 12, 90, 9,100, 50, 38,159, 28, 1, 28, 64, 6, 9, 72, 28, 28, 44,142, 33, + 5, 26,251, 19,184,255,232,179, 20, 24, 72, 19,184,255,224, 64, 38, 10, 19, 72, 6, 19, 22, 19, 38, 19, 3, 9, 19, 23, 95, 0, + 18, 6, 24, 20, 24, 72, 6, 32, 10, 19, 72, 9, 6, 25, 6, 41, 6, 3, 7, 6, 22, 10, 3, 0, 63, 51, 51, 94, 93, 43, 43, 63, +225, 51, 51, 93, 43, 43, 63, 63,225, 51, 47, 43, 93, 51, 1, 16,246,225, 50, 50, 93, 93, 93, 16,244,225, 50, 50, 51, 51, 57, 47, + 51, 17, 18, 57, 47, 93, 93, 93,113, 51, 47, 49, 48, 33, 17, 52, 54, 55, 54, 55, 35, 1, 35, 17, 51, 17, 20, 14, 2, 7, 6, 7, + 51, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 4,100, 5, 4, 4, 6, 8,253, + 49,215,174, 1, 3, 3, 1, 4, 3, 7, 2,204,213,195,143,218,166,157, 6, 49, 93,141,100,103,140, 88, 42, 4,170, 4, 28, 50, + 76, 53, 43, 73, 55, 34, 6, 3, 25, 56,143, 65, 76, 77,251, 70, 5,182,252,224, 26, 62, 67, 68, 31, 74, 76, 4,180,250,240,253, +217, 1,129, 7,104, 77,119, 80, 41, 39, 79,119, 80, 57, 72, 41, 16, 18, 44, 71, 53, 0, 0, 2, 0,174,254,131, 4,242, 6, 23, + 0, 15, 0, 37, 0,150, 64, 58, 16, 16, 4, 26, 52, 26,132, 26, 3, 7, 26, 26, 11, 5, 13, 14, 14, 15, 12, 9, 16, 9, 24, 72, + 9, 2, 0, 70, 11, 85, 39,164, 39,196, 39,212, 39,244, 39, 4,128, 39, 1, 2, 0, 39, 16, 39, 32, 39, 80, 39, 96, 39,112, 39, + 6, 3,184,255,240, 64, 37, 9, 24, 72, 3, 8, 7, 70, 4, 84, 38, 26,127, 16, 1, 16, 64, 6, 9, 72, 16, 16, 32,142, 21, 17, + 14,251, 9, 2, 5, 15, 11, 96, 8, 4, 0, 21, 0, 63, 50, 50,225, 63, 51, 51, 63, 63,225, 51, 47, 43, 93, 51, 1, 16,246,225, + 50, 50, 43, 93, 95, 93, 93, 16,244,225, 50, 50, 43, 51, 51, 57, 47, 51, 17, 18, 57, 47, 94, 93, 51, 47, 49, 48, 33, 17, 19, 1, + 35, 17, 51, 17, 7, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,143, 11,253, +254,234,172, 12, 2, 4,233,183,123,182,122, 71, 6, 49, 93,141,100,103,140, 88, 42, 4,170, 4, 28, 50, 76, 53, 43, 73, 55, 34, + 6, 2,135, 1, 15,252,106, 4, 74,253,100,252, 3,152,252, 80,253,233, 1,125, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, + 41, 16, 18, 44, 72, 53, 0, 2, 0, 47, 0, 0, 4, 51, 5,182, 0, 22, 0, 33, 0, 82, 64, 44, 19, 0, 23, 90, 12, 21, 21, 6, + 16, 12, 12, 14, 27, 91, 6,103, 35, 14, 33, 95, 0, 22, 13, 95, 16, 19, 16,137, 0, 1, 15, 16, 1, 7, 0, 16, 0, 16, 17, 3, + 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 94, 93, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 16,246,225, 17, 57, 47, 51, 18, + 57, 47, 16,225, 50, 50, 49, 48, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 51, 50, + 54, 53, 52, 46, 2, 35, 35, 1,129,150,152,207,126, 55, 60,126,194,134,254,150,152,152,186, 1, 59,254,197,160,174,164, 46, 91, +139, 93,129, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164,178,178,164,252, 64,132,136, 70, 97, 60, 27, 0, 0, 2, 0, 18, + 0, 0, 4, 25, 6, 20, 0, 20, 0, 33, 0, 97, 64, 59, 1, 1, 14, 28, 71, 8, 87, 35,111, 35,191, 35,223, 35,255, 35, 4, 3, + 0, 22, 71, 18, 17, 14, 84, 34, 21, 80, 4, 3, 15, 80, 18, 0, 18, 4, 64, 7, 36, 72, 15, 18, 1, 15, 18, 31, 18, 2, 7, 4, + 18, 4, 18, 19, 0, 22, 80, 14, 21, 0, 63,225, 63, 57, 57, 47, 47, 94, 93,113, 43, 17, 51, 16,225, 50, 16,225, 1, 16,246,196, + 51,225, 50, 50, 93, 16,246,225, 18, 57, 47, 49, 48, 1, 33, 21, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, + 51, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, 1,100, 1, 23,254,233, 1, 21,211,205, 47,101,159,113,254, 57,156,156,182, 1, + 4, 55, 94, 67, 38, 33, 65, 96, 64, 5, 33,137,253,239,156,155, 77,124, 88, 47, 4,152,137,243,251,218,254,168, 17, 41, 66, 48, + 49, 66, 40, 17, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 19, 0, 34, 0,136, 64, 79, 27, 5, 26, 6, 26, 24, 8, 25, 7, 7, + 6, 25, 6, 25, 6, 12, 30, 91, 40, 0, 56, 0, 72, 0, 3, 0,103, 36,207, 36, 1, 64, 36, 1, 15, 36, 1, 6, 20, 12, 90, 13, +100, 35, 25, 24, 27,175, 26, 1, 26, 26, 20, 34, 6,176, 7, 1, 7, 7, 12, 5, 8, 20, 96, 48, 11, 64, 11, 2, 11, 11, 12, 34, + 96, 14, 3, 12, 18, 0, 63, 63,225, 17, 57, 47, 93,225, 57, 57, 18, 57, 47, 93, 51, 17, 18, 57, 47, 93, 57, 57, 51, 1, 16,246, +225, 50, 94, 93, 93, 93, 16,246, 93,225, 18, 57, 57, 47, 47, 17, 51, 17, 18, 57, 57, 50, 17, 18, 57, 57, 49, 48, 1, 20, 14, 2, + 7, 23, 7, 39, 6, 35, 35, 17, 35, 17, 33, 50, 30, 2, 1, 51, 50, 54, 55, 39, 55, 23, 54, 54, 53, 52, 38, 35, 35, 4, 51, 22, + 47, 75, 54,110,106,129, 93,124,150,186, 1,106,134,194,126, 60,253, 78,129, 38, 68, 31, 92,109,112, 51, 52,164,174,160, 4, 10, + 58,111,100, 86, 32,155, 78,182, 27,253,199, 5,182, 57,109,160,254,103, 5, 5,133, 76,160, 36,115, 87,142,137, 0, 2, 0,174, +254, 20, 4, 63, 4, 94, 0, 35, 0, 57, 0,114, 64, 64, 52, 53, 50, 51, 51, 42, 32, 30, 31, 31, 55, 72, 33, 42, 27, 87, 59, 48, + 59, 1, 42, 16, 12, 71, 13, 84, 58, 51, 53, 50, 47, 15, 52, 31, 52,111, 52,207, 52, 4, 7, 52, 52, 47, 36, 80, 16, 22, 16, 14, + 15, 31, 32, 32, 0, 12, 27, 33, 30, 47, 80, 6, 0, 22, 0, 63, 50,225, 57, 57, 63, 18, 57, 47, 51, 63, 63, 51,225, 17, 57, 47, + 94, 93, 18, 57, 57, 51, 1, 16,246,225, 50, 50, 93, 16,246, 17, 57,225, 57, 47, 57, 51, 17, 57, 47, 57, 57, 51, 49, 48, 5, 34, + 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 6, 7, 23, 7, 39, 6, 6, 3, 34, + 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 55, 39, 55, 23, 54, 53, 52, 38, 2,158, 59, 96, 77, 60, 22, 12, 3, 3, 2, 4,182,148, + 26, 8, 22, 59, 77, 96, 60, 94,153,110, 60, 90, 82,109,106,117, 31, 65, 70, 76,105, 65, 31, 2, 27, 65,108, 81, 17, 33, 15,106, +109,110, 84,127, 20, 25, 44, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 34, 62, 45, 27, 72,143,212,140,175,242, 68,154, 78, +166, 9, 11, 3,219, 46, 94,141, 94, 41,101,157,107, 55, 3, 5,152, 76,158,106,238,208,206, 0, 0, 1, 0, 47, 0, 0, 3,190, + 5,182, 0, 13, 0,137, 64, 21, 31, 5, 47, 5, 2, 5, 5, 8, 15, 0, 31, 0, 2,144, 0,160, 0,224, 0, 3, 0,184,255,192, + 64, 30, 7, 10, 72, 0, 0, 15, 31, 15, 63, 15,159, 15,191, 15, 4, 3, 7, 90, 12, 0, 10, 1, 6, 10,128, 8,192, 8, 2, 8, +184,255,192, 64, 38, 6, 10, 72, 8, 6, 9, 95, 3, 15, 12, 47, 12, 63, 12, 79, 12, 4, 15, 12, 63, 12,175, 12,223, 12,255, 12, + 5, 8, 12, 12, 7, 2, 95, 13, 3, 7, 18, 0, 63, 63,225, 18, 57, 47, 94, 93,113, 51,225, 50, 1, 47, 43, 93,198, 94, 93, 51, +225, 50, 93, 17, 51, 47, 43, 93,113, 18, 57, 47, 93, 49, 48, 1, 21, 33, 17, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 3,190,253, +195, 1, 80,254,176,186,152,152, 5,182,166,254, 21,162,253,125, 2,131,162, 2,145, 0, 0, 1, 0, 18, 0, 0, 3, 10, 4, 74, + 0, 13, 0,110, 64, 29, 11, 11, 0, 32, 6, 48, 6, 2, 6, 6, 15,112, 15,160, 15,192, 15, 3, 9, 13, 71, 4,223, 2,239, 2, + 2, 2, 0,184,255,192,179, 18, 21, 72, 0,184,255,192, 64, 33, 6, 11, 72, 0, 12, 1, 79, 9, 79, 4, 95, 4, 2, 4, 64, 23, + 28, 72, 11, 4, 27, 4, 2, 7, 4, 4, 0, 8, 80, 5, 15, 0, 21, 0, 63, 63,225, 18, 57, 47, 94, 93, 43, 93, 51,225, 50, 1, + 47, 43, 43,198, 93, 51,225, 50, 93, 17, 51, 47, 93, 18, 57, 47, 49, 48, 51, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17, +174,156,156, 2, 92,254, 90, 1, 23,254,233, 1,225,137, 1,224,154,254,186,137,254, 31, 0, 1, 0,199,254, 0, 4,152, 5,182, + 0, 38, 0,102, 64, 65, 9, 21, 1, 7, 7, 7, 5, 34, 91, 18, 40,192, 40, 1,127, 40,143, 40, 2, 16, 40, 64, 40, 2, 28, 28, + 10, 4, 90, 5,100, 39, 29, 32, 95, 23, 28, 0, 96, 15, 13, 47, 13, 63, 13, 3, 15, 13, 63, 13,223, 13,255, 13, 4, 8, 13, 13, + 5, 9, 95, 6, 3, 5, 18, 0, 63, 63,225, 18, 57, 47, 94, 93,113,225, 63,225, 51, 1, 16,246,241, 50,192, 47, 93, 93, 93, 16, +222,225, 18, 57, 47, 49, 48, 0, 94, 93, 1, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, + 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 1,252, 37, 60, 26,186, 2,247,253,195, 29, 71, 45,154,240,165, 87, 82,146, +201,118, 49, 78, 68, 61, 31, 63,127, 72, 1,119, 67,123,174, 2,131, 5, 5,253,135, 5,182,166,254, 11, 5, 3, 92,171,242,151, +170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 0, 0, 1, 0,174,254, 10, 3,197, 4, 74, 0, 35, 0, 92, + 64, 57, 9, 34, 25, 34, 41, 34, 3, 20, 20, 18, 10, 72, 31, 37, 15, 37, 31, 37, 2, 95, 37,127, 37,255, 37, 3, 3, 3, 23, 17, + 71, 18, 84, 36, 4, 0, 13, 81, 11, 26, 27, 26, 2, 7, 26, 26, 18, 22, 80, 19, 15, 18, 21, 7, 81, 0, 27, 0, 63,225, 63, 63, +225, 18, 57, 47, 94, 93,233, 17, 51, 1, 16,246,225, 50, 57, 47, 93,113, 16,222,225, 18, 57, 47, 49, 48, 0, 93, 1, 34, 38, 39, + 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 2, 41, + 75,106, 46, 43,106, 66,118,117,144,157, 26, 62, 31,182, 2, 92,254, 90, 29, 59, 31,102,179,133, 76, 64,111,150,254, 10, 31, 29, +161, 24, 37,195,210,212,202, 10, 8,254, 53, 4, 74,154,254,195, 5, 5, 62,138,219,157,150,213,136, 64, 0, 1, 0, 4,254,127, + 6,203, 5,182, 0, 21, 0,226, 64, 87, 17, 64, 20, 24, 72, 17, 32, 9, 19, 72, 10, 17, 26, 17, 2, 0, 64, 20, 24, 72, 0, 32, + 9, 19, 72, 10, 0, 26, 0, 2, 7, 16, 13, 13, 2, 90, 7, 10, 10,168, 3,184, 3, 2,153, 3, 1,141, 3, 1, 87, 3,103, 3, +119, 3, 3, 3, 3, 3, 18, 6, 0, 14, 15, 16, 15, 64, 12, 24, 72, 15, 17, 15, 21, 90, 4, 18, 1,116, 18,132, 18,196, 18, 3, + 18,184,255,192, 64, 39, 7, 10, 72, 18, 18, 23, 4, 23, 1,240, 23, 1,228, 23, 1,160, 23, 1, 2, 32, 23, 48, 23, 96, 23,112, + 23,144, 23, 5, 15, 23, 1, 8, 9, 8, 5, 8, 6,184,255,240, 64, 19, 6, 6, 22, 19,251, 13, 10, 10, 0, 15, 8, 11, 3, 17, + 95, 5, 3, 0, 18, 0, 63, 50, 50,225, 63, 51, 51, 18, 57, 17, 51, 63, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 95, 93, + 93, 93,113, 17, 51, 47, 43, 93,113,225, 51, 51, 47, 43, 56, 51, 50, 17, 18, 57, 47, 95, 93, 93, 93, 93, 51, 17, 51,225, 50, 17, + 51, 94, 93, 43, 43, 93, 43, 43, 49, 48, 33, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, + 5,174,253,238,179,253,238,211, 2, 33,253,237,205, 2, 10,179, 2, 10,205,253,237, 1,168,195,176, 2,229,253, 27, 2,229,253, + 27, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253,180,253,217, 1,129, 0, 0, 1, 0, 4,254,131, 6, 4, 4, 74, + 0, 21, 1, 17, 64,108, 39, 16, 55, 16, 2, 41, 14, 57, 14, 2, 38, 9, 54, 9, 2, 39, 10, 55, 10, 2, 39, 4, 55, 4, 2, 39, + 4, 55, 4, 2, 39, 1, 55, 1, 2, 17, 64, 20, 24, 72, 17, 32, 9, 19, 72, 10, 17, 26, 17, 2, 0, 64, 20, 24, 72, 0, 32, 9, + 19, 72, 10, 0, 26, 0, 2, 16, 13, 13, 2, 70, 7, 10, 10,205, 3, 1,185, 3, 1,169, 3, 1,150, 3, 1,135, 3, 1, 3, 3, + 3, 18, 6, 0, 14, 15, 16, 15, 64, 10, 24, 72, 15, 17, 15, 21, 70, 18,184,255,192,179, 18, 21, 72, 18,184,255,192, 64, 23, 7, + 11, 72, 18, 18, 23, 16, 23, 1, 0, 23, 1,228, 23,244, 23, 2,180, 23,196, 23, 2, 23,184,255,192, 64, 19, 13, 17, 72, 48, 23, + 1, 2, 32, 23, 1, 15, 23, 1, 7, 9, 8, 5, 8, 6,184,255,240, 64, 19, 6, 6, 22, 19,251, 13, 10, 10, 0, 15, 8, 11, 15, + 17, 96, 5, 3, 0, 21, 0, 63, 50, 50,225, 63, 51, 51, 18, 57, 17, 51, 63, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 95, + 93, 43, 93, 93,113,113, 17, 51, 47, 43, 43,225, 51, 51, 47, 43, 56, 51, 50, 17, 18, 57, 47, 95, 93, 93, 93, 93, 93, 51, 17, 51, +225, 50, 17, 51, 93, 43, 43, 93, 43, 43, 49, 48, 0, 93, 93, 1, 93, 93, 93, 93, 93, 33, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, + 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, 4,240,254, 67,164,254, 68,207, 1,207,254, 88,197, 1,159,164, 1,160,197,254, 88, + 1, 79,197,174, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21,253,235, 2, 21,253,235, 2, 21,253,235,254,101,253,233, 1,125, +255,255, 0, 72,254, 66, 3,236, 5,203, 2, 38, 1,177, 0, 0, 1, 7, 3,127, 1, 72, 0, 0, 0, 17,177, 1, 1,184,255,255, +180, 72, 66, 19, 11, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 68,254, 66, 3, 82, 4, 94, 2, 38, 1,209, 0, 0, 1, 7, 3,127, + 0,242, 0, 0, 0, 17,177, 1, 1,184,255,248,180, 72, 66, 41, 33, 37, 1, 43, 53, 0, 53, 0, 0, 1, 0,199,254,127, 4,236, + 5,182, 0, 16, 0,166, 64, 89, 5, 64, 20, 24, 72,189, 5,205, 5,221, 5, 3, 5, 32, 9, 16, 72, 26, 5, 42, 5, 2, 0, 64, + 20, 24, 72,189, 0,205, 0,221, 0, 3, 0, 32, 9, 16, 72, 26, 0, 42, 0, 2, 6, 16, 16, 8, 14, 15, 16,127, 15,159, 15, 2, + 0, 15, 48, 15, 64, 15, 3, 6, 15, 15, 5, 4, 90, 0, 0, 1, 16, 1, 2, 7, 1, 1, 18,176, 18, 1, 12, 8, 90, 9,100, 17, + 12,184,255,240, 64, 22, 11, 16, 72, 6, 16, 11, 16, 72, 12, 6, 9, 15, 10, 3, 0, 95, 5, 5, 9, 18, 2,251, 0, 63, 63, 51, + 47,225, 63, 51, 18, 57, 57, 43, 43, 1, 16,246,225, 50, 93, 17, 51, 47, 94, 93, 51,225, 50, 51, 47, 94, 93, 93, 56, 51, 18, 57, + 17, 51, 93, 43, 93, 43, 93, 43, 93, 43, 49, 48, 37, 51, 17, 35, 17, 35, 1, 7, 17, 35, 17, 51, 17, 55, 1, 51, 1, 4, 53,183, +177,108,254, 61,139,186,186,121, 1,196,209,253,248,166,253,217, 1,129, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253,131, + 0, 1, 0,174,254,131, 4, 43, 4, 74, 0, 14, 0,153, 64,106, 8, 64, 20, 24, 72,189, 8,205, 8,221, 8, 3, 8, 32, 9, 16, + 72, 26, 8, 42, 8, 2, 3, 64, 20, 24, 72,189, 3,205, 3,221, 3, 3, 3, 32, 9, 16, 72, 26, 3, 42, 3, 2, 8, 7, 70, 0, + 1,118, 1,134, 1, 2,109, 1, 1, 85, 1, 1, 43, 1, 59, 1, 75, 1, 3, 20, 1, 1, 11, 1, 1, 6, 3, 1, 0, 4, 16, 4, + 2, 4, 4, 16, 14, 2, 10, 71, 11, 84, 15, 9, 2, 14, 14, 0, 11, 3, 80, 8, 21, 5,251, 12, 0, 15, 0, 63, 50, 63, 63,225, + 51, 18, 57, 17, 51, 51, 1, 16,246,225, 50, 50, 17, 51, 47, 93, 51, 51, 94, 93, 93, 93, 93, 93, 93, 17, 51,225, 50, 93, 43, 93, + 43, 93, 43, 93, 43, 49, 48, 1, 51, 1, 1, 51, 17, 35, 17, 35, 1, 17, 35, 17, 51, 17, 2,250,196,254, 97, 1, 75,193,174,102, +254, 75,180,180, 4, 74,253,241,254, 95,253,233, 1,125, 2, 45,253,211, 4, 74,253,235, 0, 1, 0,199, 0, 0, 4,162, 5,182, + 0, 18, 0,151,185, 0, 15,255,224, 64, 93, 18, 21, 72, 80, 15, 96, 15, 2, 34, 15, 50, 15, 66, 15, 3, 2, 64, 9, 13, 72, 11, + 7, 90, 8, 52, 18, 84, 18, 2, 18, 15, 87, 3, 1, 3, 12, 29, 4, 1, 11, 4, 1, 4, 4, 0, 8,100, 19, 16, 17, 17, 1, 0, + 16, 0, 0, 16, 0, 2, 7, 0, 0, 20,176, 20, 1, 47, 20, 1, 16, 20, 1, 11, 5, 9, 8, 32, 4, 48, 4, 64, 4, 3, 4, 13, + 4, 13, 16, 9, 3, 8, 0, 18, 0, 63, 50, 63, 51, 57, 57, 47, 47, 93, 17, 18, 57, 57, 1, 93, 93, 93, 17, 51, 47, 94, 93, 56, + 51, 51, 17, 51, 16,230, 17, 57, 47, 93, 93, 51,193, 93, 50, 50, 93, 16,225, 50, 49, 48, 0, 43, 93, 93, 43, 33, 35, 1, 21, 35, + 17, 7, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, 51, 1, 4,162,211,254,174,133,119,186,186,119,133, 1, 65,209,253,248, 1,244, +205, 1,100, 98,253,215, 5,182,253, 6,164, 1, 99,179, 1,166,253,101, 0, 1, 0,174, 0, 0, 4, 35, 4, 74, 0, 19, 0,156, +181, 17, 64, 11, 17, 72, 10,184,255,192,179, 11, 17, 72, 14,184,255,240, 64, 87, 8, 13, 72, 14, 10, 38, 18, 1, 18, 7,137, 19, +153, 19,169, 19, 3, 31, 19, 47, 19, 63, 19, 3, 11, 19, 1, 19, 19, 15, 6, 2, 71, 3, 84, 20, 11, 12, 12, 16, 15, 16, 32, 15, + 48, 15, 2, 15, 15, 21, 0, 21, 16, 21, 2, 0, 21, 64, 21, 96, 21,128, 21,160, 21,192, 21,224, 21, 7, 7, 14, 13, 6, 6, 8, + 19, 8, 19, 8, 2, 11, 4, 15, 16, 2, 21, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 18, 57, 17, 51, 51, 1, 94, 93,113, 17, 51, + 47, 93, 56, 51, 51, 17, 51, 16,246,225, 50, 18, 57, 47, 93, 93, 93, 51,193, 93, 50, 50, 43, 49, 48, 0, 43, 43, 1, 39, 17, 35, + 17, 51, 17, 55, 17, 51, 21, 19, 51, 1, 21, 1, 35, 1, 21, 35, 1,207,109,180,180,109,125,235,197,254, 80, 1,215,207,254,248, +125, 1,178,123,253,211, 4, 74,253,235,123, 1, 70,185, 1, 13,254, 22, 73,253,233, 1, 39,205, 0, 1, 0, 47, 0, 0, 4,162, + 5,182, 0, 20, 0,133, 64, 64, 2, 20,102, 20, 1, 20, 19, 4, 64, 14, 80, 14, 2, 14, 14, 0, 16, 12, 4, 90, 9, 7, 5,100, + 21, 18, 19, 16, 19, 19, 1, 0, 16, 0, 0, 16, 0, 2, 7, 0, 0, 22,176, 22, 1, 47, 22, 1, 16, 22, 1, 15, 6, 95, 12, 9, + 9, 0, 2, 16, 11, 16, 72, 16,184,255,240, 64, 12, 11, 16, 72, 16, 2, 5, 18, 10, 3, 5, 0, 18, 0, 63, 50, 63, 51, 18, 57, + 57, 43, 43, 18, 57, 47, 51,225, 50, 1, 93, 93, 93, 17, 51, 47, 94, 93, 56, 51, 51, 47, 56, 51, 16,246,198, 51,225, 50, 50, 18, + 57, 47, 93, 17, 18, 57, 93, 17, 51, 49, 48, 33, 35, 1, 7, 17, 35, 17, 35, 53, 51, 53, 51, 21, 51, 21, 35, 17, 55, 1, 51, 1, + 4,162,211,254, 61,139,186,152,152,186,213,213,121, 1,196,209,253,248, 2,186,114,253,184, 4, 96,164,178,178,164,254,123,168, + 2, 51,253,131, 0, 1, 0, 18, 0, 0, 3,240, 6, 20, 0, 22, 0,132, 64, 15, 17, 14, 14, 15, 4, 8, 9, 3, 19, 71, 20, 0, + 6, 1, 6,184,255,192,179, 16, 21, 72, 6,184,255,192, 64, 53, 9, 14, 72, 6, 6, 15, 22, 1, 20, 84, 23, 12, 13, 16, 13, 15, + 16, 53, 15, 1, 0, 15, 16, 15, 32, 15, 3, 8, 15, 15, 24, 15, 24, 1, 9, 17, 2, 20, 20, 15, 7, 21, 79, 4, 1, 1, 2, 15, + 21, 12, 15, 2, 0, 0, 63, 63, 63, 18, 57, 47, 51,225, 50, 17, 51, 17, 18, 57, 57, 1, 93, 17, 51, 47, 94, 93, 93, 56, 51, 51, + 17, 51, 16,246, 50,198, 18, 57, 47, 43, 43,113, 16,225, 23, 50, 17, 57, 17, 51, 49, 48, 19, 51, 53, 51, 21, 33, 21, 33, 17, 3, + 51, 55, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 35, 18,156,180, 1,123,254,133, 16, 4,135, 1, 37,211,254,111, 1,172,209,254, +176,109,180,156, 5, 94,182,182,137,254,117,254,237,170, 1,105,254, 37,253,145, 1,248, 82,254, 90, 4,213, 0, 0, 1, 0, 20, + 0, 0, 5, 68, 5,182, 0, 14, 0, 87, 64, 51, 2, 14, 14, 13, 10, 4, 90, 32, 5, 48, 5, 64, 5,128, 5,240, 5, 5, 5, 5, + 0, 7, 12, 13, 13, 1, 0, 16, 0, 0, 16, 0, 2, 7, 0, 0, 16, 16, 16, 1, 2, 10, 5, 12, 7, 95, 8, 3, 5, 0, 18, 0, + 63, 50, 63,225, 51, 18, 57, 57, 1, 93, 17, 51, 47, 94, 93, 56, 51, 51, 17, 51, 47, 18, 57, 47, 93,225, 50, 17, 57, 17, 51, 49, + 48, 33, 35, 1, 7, 17, 35, 17, 33, 53, 33, 17, 55, 1, 51, 1, 5, 68,211,254, 61,139,187,254,172, 2, 15,121, 1,196,209,253, +248, 2,186,114,253,184, 5, 18,164,253, 37,168, 2, 51,253,131, 0, 1, 0, 41, 0, 0, 4,201, 4, 74, 0, 13, 0,103, 64, 64, + 2, 13, 13, 11, 6, 71, 0, 7, 1, 0, 7, 16, 7, 32, 7, 96, 7,192, 7, 5, 8, 7, 7, 3, 9, 0, 1,213, 1,245, 1, 2, + 1, 4, 3, 16, 0, 3, 16, 3, 2, 3, 3, 15, 64, 15,224, 15, 2, 15, 15, 1, 2, 13, 13, 7, 9, 80, 0, 10, 15, 7, 3, 21, + 0, 63, 51, 63, 51,225, 18, 57, 17, 51, 1, 93, 93, 17, 51, 47, 93, 56, 51, 51, 93, 17, 51, 47, 18, 57, 47, 94, 93,113,225, 50, + 50, 17, 51, 49, 48, 1, 51, 1, 1, 35, 1, 17, 35, 17, 33, 53, 33, 7, 17, 3,221,197,254, 96, 1,199,207,254, 76,181,254,152, + 2, 31, 2, 4, 74,253,241,253,197, 2, 45,253,211, 3,176,154, 2,253,237, 0, 0, 1, 0,229,254,127, 5,164, 5,182, 0, 15, + 0, 99, 64, 63, 4, 90, 4, 1, 1,116, 1,132, 1,148, 1, 3, 1, 1, 17, 13, 5, 90, 0, 17,228, 17,244, 17, 2,192, 17, 1, + 2, 16, 17, 32, 17, 64, 17,128, 17, 4, 12, 8, 90, 9,100, 16, 7, 95, 15, 12, 1, 8, 12, 12, 5, 14, 10, 3, 9, 0, 95, 5, + 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 95, 93, 93, 16,220,225, 50, 17, 51, 47, + 93,113,225, 49, 48, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,244,176,176,187,253,103,187,187, 2,153, +187,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 1, 0,174,254,131, 4,219, 4, 74, 0, 15, 0,121, 64, 82, + 8, 0, 71, 4, 11, 1, 11, 11, 15, 71,196, 12,212, 12, 2, 12, 12, 17, 4, 17, 36, 17, 2,212, 17,244, 17, 2,176, 17, 1, 2, + 48, 17, 64, 17, 80, 17,128, 17,144, 17,160, 17, 6, 7, 3, 71, 4, 84, 16, 13,251, 2, 80,235, 7, 1,169, 7,185, 7, 2, 15, + 7, 31, 7, 47, 7, 3, 6, 7, 7, 0, 9, 5, 15, 11, 80, 4, 0, 21, 0, 63, 50,225, 63, 51, 18, 57, 47, 94, 93, 93, 93,225, + 63, 1, 16,246,225, 50, 93, 95, 93, 93,113, 17, 51, 47, 93,225, 51, 47, 93,225, 50, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, + 17, 51, 17, 51, 17, 35, 17, 3,133,253,223,182,182, 2, 33,182,160,182, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, + 1,125, 0, 1, 0,229, 0, 0, 6, 72, 5,182, 0, 13, 0, 93, 64, 59, 9, 1, 90, 0, 0, 5, 64, 11, 1,224, 11, 1, 11, 15, + 32, 15, 1, 0, 15, 16, 15, 48, 15, 64, 15, 96, 15,160, 15,176, 15,224, 15, 8, 6, 8, 4, 90, 5,100, 14, 13, 95, 10, 10, 6, + 3, 95, 15, 8, 1, 8, 8, 8, 6, 3, 5, 0, 18, 0, 63, 50, 63, 57, 47, 94, 93,225, 17, 51, 47,225, 1, 16,246,225, 50, 94, + 93,113, 16,198, 93,113, 17, 57, 47,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 33, 4,244,187,253,103, +187,187, 2,153, 2, 15,254,172, 2,170,253, 86, 5,182,253,152, 2,104,164, 0, 0, 1, 0,174, 0, 0, 5,164, 4, 74, 0, 13, + 0,104, 64, 33, 8, 4, 71, 5, 9, 1, 71, 0, 0, 11, 5, 84, 14, 11, 11, 15, 0, 15, 32, 15, 2,144, 15,176, 15,192, 15,208, + 15,240, 15, 5, 15,184,255,192, 64, 31, 7, 12, 72, 3, 80,235, 8, 1,169, 8,185, 8, 2, 15, 8, 31, 8, 47, 8, 3, 6, 8, + 8, 0, 13, 10, 6, 15, 5, 0, 21, 0, 63, 50, 63, 51,196, 18, 57, 47, 94, 93, 93, 93,225, 1, 43, 93,113, 17, 51, 47, 16,230, + 17, 57, 47,225, 50, 16,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 33, 4, 59,182,253,223,182,182, 2, + 33, 2, 31,254,151, 1,233,254, 23, 4, 74,254, 57, 1,199,154, 0, 1, 0,199,254, 0, 7,219, 5,182, 0, 39, 0, 95, 64, 58, + 9, 11, 1, 7, 18, 18, 0, 32, 90, 33, 33, 37, 24, 91, 8, 41,111, 41, 1, 36, 90, 37,100, 40, 29, 96, 15, 3, 47, 3, 63, 3, + 3, 15, 3, 63, 3,223, 3,255, 3, 4, 8, 3, 3, 37, 35, 95, 38, 3, 33, 37, 18, 19, 22, 95, 13, 28, 0, 63,225, 51, 63, 51, + 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, 93, 16,222,225, 17, 57, 47,225, 50, 57, 47, 49, 48, 0, 94, 93, 1, 54, 54, + 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 35, 34, 7, 17, 35, 17, 33, 17, 35, 17, + 33, 4,193, 30, 73, 46,154,240,165, 86, 82,146,201,118, 49, 78, 67, 61, 31, 63,126, 73, 1,119, 67,124,174,107, 75, 51,187,253, +123,186, 3,250, 3, 27, 5, 3, 92,171,242,151,170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 12,253,137, + 5, 18,250,238, 5,182, 0, 1, 0,174,254, 10, 6,117, 4, 74, 0, 36, 0,119, 64, 78, 11, 35, 27, 35, 2, 3, 3, 25, 17, 71, + 2, 18, 1,194, 18, 1,166, 18,182, 18, 2,119, 18,135, 18, 2, 18, 18, 22, 10, 72, 32, 38, 15, 38, 31, 38, 2, 79, 38, 95, 38, +175, 38,255, 38, 4, 16, 38, 1, 21, 71, 22, 84, 37, 13, 81, 11, 27, 27, 27, 2, 7, 27, 27, 22, 20, 80, 23, 15, 18, 22, 21, 4, + 7, 81, 0, 27, 0, 63,225, 51, 63, 51, 63,225, 18, 57, 47, 94, 93,225, 1, 16,246,225, 93, 93,113, 16,222,225, 17, 57, 47, 93, + 93, 93,113,225, 50, 57, 47, 49, 48, 0, 93, 1, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, + 17, 35, 17, 33, 17, 54, 51, 50, 30, 2, 21, 20, 14, 2, 4,217, 75,106, 46, 43,106, 66,118,117,144,157, 28, 62, 31,182,254, 8, +182, 3,100, 58, 63,102,179,133, 76, 64,111,150,254, 10, 31, 29,161, 24, 37,195,210,212,202, 10, 8,254, 53, 3,176,252, 80, 4, + 74,254, 39, 12, 62,138,219,157,150,213,136, 64, 0, 2, 0,125,255,172, 5,150, 5,205, 0, 62, 0, 82, 0,122, 64, 80, 5, 78, + 16, 50, 4, 0, 73, 91, 0, 32, 16, 32, 2, 53, 32, 53, 32, 24, 63, 91, 0,103, 84, 15, 84, 31, 84, 79, 84, 95, 84,127, 84,159, + 84,175, 84, 7, 7, 43, 91, 24,102, 83, 68, 96, 78, 5, 0, 58, 16, 58, 32, 58, 96, 58,112, 58,128, 58, 6, 58, 58, 7, 38, 95, + 33, 29, 4, 16, 50, 48, 95, 19, 7, 95, 14, 14, 19, 19, 0, 63, 51, 47,225, 16,225, 50, 57, 63, 51,225, 18, 57, 47, 93, 57, 57, +225, 1, 16,246,225, 94, 93, 16,246,225, 17, 57, 57, 47, 47, 93,225, 18, 23, 57, 49, 48, 1, 20, 14, 2, 7, 22, 51, 50, 54, 55, + 21, 6, 6, 35, 34, 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, + 2, 51, 50, 55, 38, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 46, 2, 35, 34, 14, 2, 21, 20, 30, 2, 23, 62, 3, 5,111, 39, + 65, 85, 45, 54, 81, 37, 70, 31, 29, 79, 38,166,139, 50,124, 60,150,232,157, 81, 77,158,242,166, 66,120, 37, 53, 10, 40, 48, 51, + 21,118,169,108, 51, 60,112,160,100, 48, 38, 79, 91, 55, 96,131, 76, 75,133, 98, 57,197, 22, 42, 61, 39, 41, 61, 41, 21, 24, 41, + 54, 31, 42, 66, 46, 24, 2,166,101,175,144,111, 36, 25, 14, 11,170, 13, 12, 98, 17, 17,106,192, 1, 14,165,181, 1, 31,199,105, + 22, 15,156, 5, 10, 9, 5, 81,154,222,141,148,218,144, 70, 7,105, 1, 22,155,133,193,123, 59, 56,123,198,149, 84,137, 99, 54, + 55, 98,135, 80, 72,133,118,101, 39, 33, 98,119,136, 0, 0, 2, 0,113,255,197, 4,164, 4, 94, 0, 13, 0, 77, 0,121, 64, 73, + 68, 5, 17, 50, 4, 63, 0, 72, 84, 33,100, 33, 2, 53, 33, 53, 33, 25, 8, 72, 63, 74, 74, 63, 87, 79,123, 79,139, 79,187, 79, + 3, 95, 79,111, 79, 2, 27, 79, 1, 15, 79, 1, 7, 2, 42, 72, 25, 86, 78, 11, 68, 5, 58, 58, 71, 37, 80, 34, 30, 16, 17, 50, + 47, 80, 20, 71, 80, 14, 14, 20, 22, 0, 63, 51, 47,225, 16,225, 50, 57, 63, 51,233, 18, 57, 47, 57, 57,193, 1, 16,246,225, 95, + 94, 93, 93, 93, 93, 16,230, 50, 47, 16,225, 17, 57, 57, 47, 47, 93,225, 18, 23, 57, 49, 48, 1, 20, 30, 2, 23, 54, 54, 53, 52, + 38, 35, 34, 6, 1, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, + 2, 51, 50, 54, 55, 38, 38, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 22, 22, 51, 50, 54, 55, 21, 6, 6, 2,221, 20, + 32, 42, 21, 57, 72, 56, 61, 62, 65, 1, 76, 69,136, 57, 40, 98, 71,117,179,122, 63, 60,120,180,121, 66, 82, 26, 41, 19, 74, 42, + 84,112, 67, 28, 30, 67,110, 80, 37, 50, 3, 57, 74, 49, 85,114, 65, 64,111, 82, 46, 30, 52, 69, 39, 20, 55, 29, 26, 57, 28, 25, + 66, 1,244, 53, 92, 75, 57, 18, 40,150,107,103,122,122,253,104, 42, 37, 17, 23, 87,151,204,117,131,214,151, 83, 16, 6,150, 5, + 16, 58,111,160,103, 89,148,107, 60, 8, 2, 66,180,119, 94,136, 89, 43, 39, 86,138, 99, 70,120, 99, 77, 27, 10, 13, 6, 8,147, + 9, 7,255,255, 0,125,254, 66, 4,152, 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 3,127, 2, 47, 0, 0, 0, 14,183, 1, 1,117, + 50, 44, 24, 32, 37, 1, 43, 53, 0, 53,255,255, 0,113,254, 66, 3,111, 4, 94, 2, 38, 0, 70, 0, 0, 1, 7, 3,127, 1,113, + 0, 0, 0, 14,183, 1, 1, 82, 46, 40, 5, 13, 37, 1, 43, 53, 0, 53, 0, 1, 0, 20,254,127, 4, 18, 5,182, 0, 11, 0,111, + 64, 57, 31, 13, 1,224, 13, 1, 95, 13,223, 13, 2, 32, 13, 48, 13, 64, 13, 3, 4, 90, 15, 1, 31, 1, 2, 7, 1, 1,175, 10, +239, 10, 2, 10, 10, 11, 90, 6, 64, 7,224, 7, 2, 15, 7, 1, 8, 7, 7, 87, 6,103, 6,119, 6, 3, 6,184,255,192, 64, 15, + 7, 10, 72, 6, 11, 7, 95, 8, 3, 0, 95, 5, 18, 2,251, 0, 63, 63,225, 63,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, 16, +225, 50, 47, 93, 57, 47, 94, 93,225, 93, 93, 93,113, 49, 48, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33, 21, 33, 2,113,176,176,187, +254, 94, 3,254,254, 95,166,253,217, 1,129, 5, 18,164,164, 0, 0, 1, 0, 41,254,131, 3, 94, 4, 74, 0, 11, 0,111, 64, 77, +240, 13, 1,175, 13, 1, 64, 13, 80, 13, 2, 47, 13, 1, 11, 71,175, 8,191, 8,207, 8, 3, 8, 64, 7, 10, 72, 8, 8,223, 5, + 1,157, 5, 1,143, 5, 1, 5, 5, 7, 71, 0, 96, 2,112, 2,208, 2, 3, 31, 2, 1, 2, 2, 0, 0, 16, 0,176, 0,192, 0, + 4, 0, 9,251, 6, 2, 80, 3, 15, 7, 80, 0, 21, 0, 63,225, 63,225, 50, 63, 1, 47, 93, 51, 47, 93, 93, 16,225, 50, 47, 93, + 93, 93, 57, 47, 43, 93,225, 93, 93, 93, 93, 49, 48, 33, 17, 33, 53, 33, 21, 33, 17, 51, 17, 35, 17, 1,104,254,193, 3, 53,254, +193,159,182, 3,176,154,154,252,234,253,233, 1,125, 0,255,255, 0, 0, 0, 0, 4, 55, 5,182, 2, 6, 0, 60, 0, 0, 0, 1, + 0, 0,254, 20, 3,213, 4, 74, 0, 19, 0,124, 64, 19, 10, 10, 0, 71,166, 1, 1,135, 1,151, 1, 2, 1, 1, 3, 17, 18, 16, + 18,184,255,192,179, 18, 21, 72, 18,184,255,192, 64, 32, 7, 11, 72, 18, 18, 21,240, 21, 1,223, 21,239, 21, 2, 80, 21,144, 21, +160, 21, 3, 79, 21, 1, 48, 21, 1, 15, 21, 1, 4, 3,184,255,240, 64, 16, 3, 17, 3, 15, 5, 10, 21, 10, 2, 7, 19, 10, 2, + 21, 0, 27, 0, 63, 63, 51, 51, 94, 93, 63, 51, 1, 47, 56, 51, 93, 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 18, 57, 47, + 93, 93,225, 57, 61, 47, 49, 48, 1, 35, 17, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 2, 70,183,254,113,188,199, 16, + 32, 27, 20, 5, 7, 4, 21, 27, 32, 16,199,188,254,113,254, 20, 1,232, 4, 78,253,207, 46,100, 94, 79, 25, 25, 79, 94,100, 46, + 2, 49,251,178, 0, 1, 0, 0, 0, 0, 4, 55, 5,182, 0, 16, 0,159, 64, 25,239, 18, 1, 18, 64, 9, 12, 72, 0, 0, 4, 8, + 90, 9, 13, 9,150, 9, 1,119, 9,135, 9, 2, 6,184,255,192, 64, 13, 21, 24, 72, 11, 9, 6, 6, 9, 11, 3, 2, 16, 15,184, +255,240, 64, 56,171, 15, 1,144, 15, 1, 20, 15, 1, 15, 1, 2, 16, 16, 2, 1,239, 2, 1,208, 2, 1,191, 2, 1,128, 2, 1, + 79, 2, 95, 2, 2, 20, 2, 1, 0, 2, 1, 7, 2, 2, 18, 7, 10, 95, 4, 0, 13, 13, 1, 8, 18, 15, 1, 3, 0, 63, 51, 63, + 18, 57, 47, 57, 51,225, 50, 17, 1, 51, 47, 94, 93, 93, 93, 93, 93, 93, 93,113, 56, 51, 47, 93, 93, 93, 56, 51, 18, 23, 57, 47, + 47, 47, 43, 93, 93, 17, 51, 16,225, 50, 57, 61, 47, 43, 93, 49, 48, 1, 1, 51, 1, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, + 1, 51, 2, 27, 1, 84,200,254, 66, 1, 39,254,217,187,254,218, 1, 38,254, 66,203, 2,211, 2,227,252,131, 61,164,254,168, 1, + 88,164, 51, 3,135, 0, 0, 1, 0, 0,254, 20, 3,213, 4, 74, 0, 25, 0,133, 64, 21, 14, 14, 23, 1, 71, 6,166, 2, 1,135, + 2,151, 2, 2, 2, 2, 7, 21, 22, 16, 22,184,255,192,179, 18, 21, 72, 22,184,255,192, 64, 32, 7, 11, 72, 22, 22, 27,240, 27, + 1,223, 27,239, 27, 2, 80, 27,144, 27,160, 27, 3, 79, 27, 1, 48, 27, 1, 15, 27, 1, 8, 7,184,255,240, 64, 19, 7, 21, 7, + 15, 0, 3, 79, 5, 14, 21, 14, 2, 7, 14, 23, 6, 21, 1, 27, 0, 63, 63, 51, 51, 94, 93,225, 50, 63, 51, 1, 47, 56, 51, 93, + 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 18, 57, 47, 93, 93, 51,225, 50, 57, 61, 47, 49, 48, 5, 17, 35, 17, 33, 53, 33, + 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 33, 21, 2, 70,183,254,246, 1, 8,254,115,188,199, 16, 32, 27, 20, 5, 7, + 4, 21, 27, 32, 16,199,188,254,113, 1, 10,137,254,157, 1, 99,137, 4, 74,253,207, 46,100, 94, 79, 25, 25, 79, 94,100, 46, 2, + 49,251,182,137, 0, 1, 0, 0,254,127, 4,180, 5,182, 0, 15, 1, 6, 64,136, 71, 15, 1, 72, 9, 1, 3, 15, 0, 11, 6, 5, + 10, 7, 14, 7, 12, 0, 11, 9, 5, 10, 8, 13, 8, 12, 15, 0, 11, 0, 9, 6, 5, 10, 5, 9, 12, 15, 3, 6, 6, 14, 8, 10, + 5, 1,170, 5,186, 5,202, 5,234, 5,250, 5, 5, 5, 48, 11, 14, 72, 5, 4, 90, 1, 13, 14, 16, 11, 14, 1,171, 14,187, 14, +203, 14,235, 14,251, 14, 5, 14, 64, 11, 14, 72, 14, 10, 0, 1,170, 0,186, 0,202, 0,234, 0,250, 0, 5, 0, 48, 11, 14, 72, + 14, 0, 4, 1, 20, 1, 2, 7, 1, 1, 17,212, 17,228, 17,244, 17, 3,192, 17, 1, 2, 32, 17, 64, 17, 2, 17,184,255,192, 64, + 11, 16, 20, 72, 15, 17, 1, 11, 10, 10, 7, 8,184,255,240, 64, 20, 8, 40, 6, 1, 39, 12, 1, 12, 6, 5, 13, 10, 3, 7, 0, + 95, 5, 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 57, 93, 93, 1, 47, 56, 51, 51, 17, 51, 93, 43, 93, 95, 93, 93, 17, 51, + 47, 94, 93, 51, 51, 43, 93,113, 47, 43, 93,113, 56, 51, 16,225, 50, 43, 93,113, 17, 18, 57, 61, 47, 23, 51, 16,135, 14,192, 4, +192, 16,135,192, 14,192, 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 1, 95, 93, 93, 49, 48, 37, 51, 17, 35, 17, 35, 1, 1, + 35, 1, 1, 51, 1, 1, 51, 1, 3,254,182,176,119,254,158,254,145,188, 1,197,254, 90,198, 1, 76, 1, 78,190,254, 91,166,253, +217, 1,129, 2,123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 35,254,131, 4, 31, 4, 74, 0, 15, 1, 57, + 64, 37, 89, 13, 1, 86, 3, 1,180, 12, 1, 12, 32, 14, 17, 72, 61, 12, 1, 41, 12, 1, 11, 12, 27, 12, 2, 12, 11, 70, 8, 0, + 3, 6, 3, 13, 13, 1, 4,184,255,240, 64,113, 21, 24, 72,181, 4, 1,153, 4,169, 4, 2,106, 4,122, 4,138, 4, 3, 69, 4, + 85, 4, 2, 6, 4, 1, 4, 5,219, 2,235, 2,251, 2, 3,201, 2, 1,187, 2, 1,150, 2,166, 2, 2,101, 2,117, 2,133, 2, + 3, 74, 2, 90, 2, 2, 2, 1,223, 5,239, 5,255, 5, 3, 5, 64, 14, 17, 72, 59, 5, 75, 5, 2, 39, 5, 1, 10, 5, 26, 5, + 2, 52, 1, 68, 1, 2, 40, 1, 1, 5, 1, 21, 1, 2, 5, 1, 5, 1, 15, 59, 7, 1, 7, 32, 14, 17, 72, 7, 8,184,255,192, + 64, 73, 7, 12, 72, 8, 8, 17, 96, 17,128, 17,144, 17,176, 17,208, 17,224, 17,240, 17, 7,219, 14, 1,201, 14, 1,186, 14, 1, +101, 14,117, 14,133, 14, 3, 74, 14, 90, 14, 2, 9, 14, 1, 14, 59, 15, 75, 15, 2, 40, 15, 1, 5, 15, 21, 15, 2, 15, 3, 13, + 1, 14, 7, 80, 12, 21, 9,251, 4, 1, 15, 0, 63, 51, 63, 63,225, 51, 18, 57, 57, 1, 47, 93, 93, 93,197, 93, 93, 93, 93, 93, + 93, 93, 17, 51, 47, 43, 51, 43, 93, 18, 57, 57, 47, 47, 93, 93, 93, 93, 93, 93, 43, 93, 16,197, 93, 93, 93, 93, 93, 93, 16,197, + 93, 93, 93, 93, 93, 43, 18, 57, 61, 47, 23, 51, 16,225, 50, 93, 93, 93, 43, 93, 49, 48, 0, 93, 93, 1, 1, 51, 19, 19, 51, 1, + 1, 51, 17, 35, 17, 35, 1, 1, 35, 1,152,254,159,207,250,250,207,254,157, 1, 15,170,174,101,254,244,254,242,207, 2, 51, 2, + 23,254,102, 1,154,253,233,254,103,253,233, 1,125, 1,180,254, 76, 0, 0, 1, 0, 20,254,127, 6, 96, 5,182, 0, 15, 0,148, + 64, 13, 1, 90, 4, 4, 8, 90, 16, 5, 1,208, 5, 1, 5,184,255,192, 64, 68, 7, 18, 72, 5, 5, 17,223, 17, 1,160, 17, 1, + 15, 17, 47, 17, 79, 17,143, 17, 4, 7, 16, 14, 32, 14, 64, 14, 80, 14, 96, 14,128, 14, 6, 14, 14, 0, 90, 9, 15, 11, 31, 11, + 47, 11, 95, 11,111, 11,175, 11, 6, 8, 11, 11, 48, 9, 64, 9, 80, 9,128, 9,144, 9, 5, 9,184,255,192, 64, 17, 7, 10, 72, + 9, 15, 11, 95, 2, 12, 3, 4, 0, 95, 9, 18, 6,251, 0, 63, 63,225, 50, 63, 51,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 16, +225, 50, 47, 93, 94, 93, 93, 93, 17, 51, 47, 43, 93,113,225, 51, 47,225, 49, 48, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33, 17, 33, + 53, 33, 21, 33, 2,113, 2,133,186,176,176,252, 6,254, 94, 3,254,254, 95,166, 5, 16,250,240,253,217, 1,129, 5, 18,164,164, + 0, 1, 0, 41,254,131, 5,109, 4, 74, 0, 15, 0,128,182, 11, 71, 14, 14, 2, 71, 15,184,255,192,179, 14, 24, 72, 15,184,255, +192, 64, 51, 7, 11, 72, 15, 15, 17, 15, 17, 31, 17, 47, 17, 79, 17,191, 17,223, 17, 6, 7, 96, 8,224, 8,240, 8, 3, 8, 8, + 10, 71, 3, 31, 5,239, 5,255, 5, 3, 5, 5, 0, 3, 16, 3, 96, 3,112, 3, 4, 3,184,255,192, 64, 17, 20, 24, 72, 3, 9, + 5, 80, 12, 6, 15, 14, 10, 80, 3, 21, 0,251, 0, 63, 63,225, 50, 63, 51,225, 50, 1, 47, 43, 93, 51, 47, 93, 16,225, 50, 47, + 93, 94, 93, 17, 51, 47, 43, 43,225, 51, 47,225, 49, 48, 1, 35, 17, 33, 17, 33, 53, 33, 21, 33, 17, 33, 17, 51, 17, 51, 5,109, +183,252,178,254,193, 3, 53,254,193, 1,248,182,160,254,131, 1,125, 3,176,154,154,252,234, 3,176,252, 80, 0, 0, 1, 0,166, +254,127, 5, 49, 5,182, 0, 29, 0, 99, 64, 18, 11, 13, 27, 13, 2, 26, 4, 90,144, 29,160, 29, 2, 29, 29, 3, 90, 0,184,255, +192, 64, 44, 7, 16, 72, 0, 0, 31, 15, 31, 31, 31, 47, 31, 79, 31, 95, 31,127, 31,175, 31,191, 31, 8, 7, 18, 90, 15,100, 30, + 21, 95, 26, 10, 10, 4, 27, 16, 3, 29, 95, 4, 18, 1,251, 0, 63, 63,225, 63, 51, 18, 57, 47, 51,225, 1, 16,246,225, 94, 93, + 17, 51, 47, 43,225, 51, 47, 93,225, 50, 49, 48, 93, 37, 17, 35, 17, 35, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, + 50, 62, 2, 55, 17, 51, 17, 5, 49,176,186, 58,105, 99, 97, 49, 93,146,101, 53,186,105,123, 45, 90, 94,102, 56,186,166,253,217, + 1,129, 2, 86, 22, 34, 22, 12, 49, 94,139, 89, 2, 71,253,209,115,116, 10, 20, 30, 20, 2,198,250,240, 0, 1, 0,154,254,131, + 4,158, 4, 74, 0, 28, 0, 97, 64, 23, 11, 9, 27, 9, 43, 9, 3, 7, 21, 0, 71, 24, 24, 28, 71, 0, 25, 16, 25, 32, 25, 3, + 25,184,255,192, 64, 37, 14, 21, 72, 25, 25, 30, 15, 30, 95, 30,127, 30,191, 30,207, 30, 5, 14, 71, 11, 84, 29, 26,251, 21, 16, + 80, 6, 6, 0, 22, 12, 15, 24, 80, 0, 21, 0, 63,225, 63, 51, 18, 57, 47,225, 51, 63, 1, 16,246,225, 93, 17, 51, 47, 43, 93, +225, 51, 47,225, 50, 49, 48, 94, 93, 33, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 51, 50, 62, 2, 55, 17, 51, 17, 51, 17, + 35, 17, 3, 72, 44, 80, 85, 94, 58, 78,122, 82, 43,182,184, 45, 80, 76, 77, 42,182,160,183, 1,233, 30, 48, 32, 17, 47, 84,115, + 68, 1,166,254,102,174, 15, 28, 43, 29, 1,213,252, 80,253,233, 1,125, 0, 1, 0,166, 0, 0, 4,129, 5,182, 0, 29, 0,112, + 64, 46, 11, 4, 27, 4, 2, 28, 15, 29, 4, 14, 20, 14, 2, 7, 14, 14, 6, 19, 23, 90, 22,101, 31,112, 31,160, 31, 2, 47, 31, + 1, 16, 31, 1, 9, 90, 96, 6,112, 6,160, 6,176, 6, 4, 6,184,255,192, 64, 22, 7, 10, 72, 6, 14, 16, 14, 29, 19, 27, 29, + 3, 12, 95, 1, 1, 23, 20, 7, 3, 23, 18, 0, 63, 63, 51, 18, 57, 47,225, 23, 51, 47, 50, 50, 47, 1, 47, 43, 93,225, 93, 93, + 93, 16,246,225, 50, 17, 57, 47, 94, 93, 51,193, 50, 49, 48, 93, 1, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 51, 17, 51, 17, + 54, 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 17, 35, 2, 80, 33, 93,146,101, 53,186,105,123, 12,133, 56,118, 68,186,186, 66,119, + 57,133, 1,252, 49, 94,139, 89, 2, 71,253,209,115,116, 1, 88,254,180, 9, 34, 25, 2,198,250, 74, 2, 86, 26, 37, 11,254,201, + 0, 1, 0,154, 0, 0, 3,254, 4, 74, 0, 28, 0,107, 64, 66, 11, 4, 27, 4, 2, 7, 27, 14, 28, 80, 13, 1, 4, 13, 20, 13, + 36, 13, 3, 8, 13, 13, 6, 18, 22, 90, 21, 85, 30, 16, 30, 96, 30,128, 30, 3, 9, 90, 6, 84, 29, 32, 13, 48, 13, 64, 13, 3, + 13, 15, 13, 28, 18, 26, 28, 3, 11, 95, 1, 1, 22, 19, 7, 15, 22, 21, 0, 63, 63, 51, 18, 57, 47,225, 23, 51, 47, 50, 50, 47, + 93, 1, 16,246,225, 93, 16,246,225, 50, 17, 57, 47, 94, 93, 93, 51,193, 50, 49, 48, 94, 93, 49, 48, 1, 35, 34, 46, 2, 53, 17, + 51, 17, 20, 51, 51, 17, 51, 17, 54, 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 17, 35, 2, 14, 47, 78,122, 82, 43,182,184, 6,125, + 47, 91, 51,182,182, 50, 89, 50,125, 1,106, 47, 84,115, 68, 1,166,254,102,174, 1, 45,254,229, 14, 48, 35, 1,213,251,182, 1, +233, 35, 51, 16,255, 0, 0, 1, 0,199, 0, 0, 4,162, 5,182, 0, 23, 0, 80, 64, 54, 4, 7, 20, 7, 2, 7, 12, 90, 11,101, + 25, 47, 25, 95, 25,111, 25,143, 25,159, 25,175, 25,207, 25,239, 25,255, 25, 9, 16, 25, 1, 2, 22, 90, 23,100, 24, 21, 16, 95, + 0, 5, 16, 5, 2, 5, 5, 23, 11, 18, 0, 3, 0, 63, 63, 51, 57, 47, 93,225, 51, 1, 16,246,225, 50, 93, 93, 16,246,225, 49, + 48, 0, 94, 93, 19, 51, 17, 54, 54, 51, 50, 30, 2, 21, 17, 35, 17, 52, 38, 35, 34, 14, 2, 7, 17, 35,199,186,115,195, 98, 93, +146,101, 53,187,104,123, 45, 90, 95,101, 56,186, 5,182,253,170, 45, 45, 49, 94,138, 89,253,184, 2, 47,115,117, 10, 20, 30, 20, +253, 57, 0, 1, 0,174, 0, 0, 4, 18, 4, 74, 0, 24, 0, 63,185, 0, 20,255,224, 64, 34, 7, 10, 72, 0, 71, 24, 85, 26,239, + 26, 1, 16, 26, 96, 26,128, 26, 3, 13, 9, 71, 10, 84, 25, 8, 3, 80, 18, 18, 11, 15, 10, 0, 21, 0, 63, 50, 63, 57, 47,225, + 51, 1, 16,246,225, 50, 93, 93, 16,246,225, 49, 48, 0, 43, 33, 17, 52, 35, 34, 14, 2, 7, 17, 35, 17, 51, 17, 62, 3, 51, 50, + 30, 2, 21, 17, 3, 92,184, 45, 80, 76, 77, 42,182,182, 44, 80, 85, 94, 58, 78,122, 82, 43, 1,154,174, 15, 28, 44, 28,254, 43, + 4, 74,254, 22, 31, 47, 32, 17, 47, 83,115, 68,254, 90, 0, 2, 0, 61,255,236, 6, 6, 5,205, 0, 43, 0, 54, 0,100, 64, 62, + 50, 91, 20, 11,103, 56, 15, 56, 31, 56, 2, 41, 32, 34, 1, 34, 34, 49, 12, 91, 0,112, 31,128, 31,192, 31, 3, 31, 55, 31, 12, + 96, 49, 79, 43, 1, 15, 43,175, 43,255, 43, 3, 15, 37, 1, 8, 43, 37, 43, 37, 5, 17, 95, 20, 26, 19, 44, 95, 5, 4, 0, 63, +225, 63, 51,225, 17, 57, 57, 47, 47, 94, 93, 93,113, 51,225, 50, 1, 16,214, 93, 50,225, 50, 51, 47, 93,193, 93, 16,246, 50,225, + 49, 48, 1, 62, 3, 51, 50, 22, 22, 18, 21, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, 34, 46, 2, 39, 34, 38, 53, 52, 54, + 55, 51, 6, 6, 21, 20, 51, 1, 34, 14, 2, 7, 33, 52, 46, 2, 1,102, 10, 91,156,221,141,153,214,136, 62,252, 37, 7, 63,116, +169,112,128,207, 91, 42, 91,105,124, 76,152,235,164, 92, 9,143,154, 18, 11,156, 6, 15,103, 2,137, 91,149,110, 65, 7, 3, 18, + 37, 86,139, 3, 57,154,244,171, 91,107,197,254,235,171, 69,122,194,134, 71, 44, 32,170, 15, 26, 18, 10, 97,179,253,155,117,122, + 42, 66, 23, 15, 62, 35, 97, 1,240, 65,126,185,120,117,184,128, 67, 0, 0, 2, 0, 51,255,236, 4,182, 4, 94, 0, 44, 0, 53, + 0,132, 64, 43, 49, 72, 39, 30, 87, 55,255, 55, 1,144, 55,176, 55, 2, 31, 55,127, 55, 2, 48, 31, 72, 5, 15,223, 8, 1, 8, + 8, 19, 0, 5, 16, 5, 32, 5, 3, 64, 5, 80, 5, 2, 5,184,255,192, 64, 40, 16, 19, 72, 5, 54, 5, 31, 80, 48, 27, 18, 43, + 18, 2, 15, 18, 1, 27, 11, 43, 11, 2, 15, 11, 1, 6, 18, 11, 18, 11, 34, 45, 80, 24, 16, 34, 81, 39, 0, 22, 0, 63, 50,225, + 63,225, 18, 57, 57, 47, 47, 94, 93, 93, 93, 93, 51,225, 50, 1, 16,198, 43, 93,113, 50, 50, 47, 93,193, 16,225, 50, 93, 93, 93, + 16,246, 50,225, 49, 48, 5, 34, 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, + 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 3, 34, 6, 7, 33, 52, 46, 2, 3, 53,107,179,130, 75, 4,133,142, 18, 9,149, + 6, 14, 49, 49, 27, 14, 76,116,152, 90, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87, 96,114,133, 11, + 1,236, 27, 57, 89, 20, 70,136,199,129, 2,111,114, 39, 63, 21, 14, 58, 34, 47, 49,108,169,117, 62, 71,129,181,110,113,193,182, + 10, 19, 29, 18,162, 19, 28, 18, 8, 3,219,156,149, 68,113, 80, 44, 0, 0, 2, 0, 61,254,127, 6, 6, 5,205, 0, 46, 0, 57, + 0,114, 64, 70, 27, 90, 28, 28, 34, 53, 91, 20, 11,103, 59, 15, 59, 31, 59, 2, 44, 32, 37, 1, 37, 37, 52, 12, 91, 0,112, 34, +128, 34,192, 34, 3, 34, 58, 34, 12, 96, 52, 79, 46, 1, 15, 46, 63, 46,175, 46, 3, 15, 40, 1, 8, 46, 40, 46, 40, 5, 26, 20, + 17, 96, 29, 18, 27,251, 47, 95, 5, 4, 0, 63,225, 63, 63,225, 51, 51, 18, 57, 57, 47, 47, 94, 93, 93,113, 51,225, 50, 1, 16, +214, 93, 50,225, 50, 51, 47, 93,193, 93, 16,246, 50,225, 18, 57, 47,225, 49, 48, 1, 62, 3, 51, 50, 22, 22, 18, 21, 21, 33, 30, + 3, 51, 50, 54, 55, 21, 14, 3, 7, 17, 35, 17, 46, 3, 39, 34, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 51, 1, 34, 14, 2, 7, + 33, 52, 46, 2, 1,102, 10, 91,156,221,141,153,214,136, 62,252, 37, 7, 63,116,169,112,128,207, 91, 37, 78, 88,100, 58,182,128, +196,138, 77, 8,143,154, 18, 11,156, 6, 15,103, 2,137, 91,149,110, 65, 7, 3, 18, 37, 86,139, 3, 57,154,244,171, 91,107,197, +254,235,171, 69,122,194,134, 71, 44, 32,170, 14, 23, 17, 11, 2,254,145, 1,115, 16,109,176,235,142,117,122, 42, 66, 23, 15, 62, + 35, 97, 1,240, 65,126,185,120,117,184,128, 67, 0, 2, 0, 51,254,131, 4,182, 4, 94, 0, 45, 0, 54, 0,146, 64, 48, 4, 71, + 5, 5, 11, 50, 72, 45, 36, 87, 56,255, 56, 1,144, 56,176, 56, 2, 31, 56,127, 56, 2, 49, 37, 72, 11, 21,223, 14, 1, 14, 14, + 25, 0, 11, 16, 11, 32, 11, 3, 64, 11, 80, 11, 2, 11,184,255,192, 64, 43, 16, 19, 72, 11, 55, 11, 37, 80, 49, 27, 24, 43, 24, + 2, 15, 24, 1, 27, 17, 43, 17, 2, 15, 17, 1, 6, 24, 17, 24, 17, 40, 46, 80, 30, 16, 40, 81, 45, 3, 6, 22, 4,251, 0, 63, + 63, 51, 51,225, 63,225, 18, 57, 57, 47, 47, 94, 93, 93, 93, 93, 51,225, 50, 1, 16,198, 43, 93,113, 50, 50, 47, 93,193, 16,225, + 50, 93, 93, 93, 16,246, 50,225, 18, 57, 47,225, 49, 48, 37, 6, 6, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, 51, 6, + 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 1, 34, 6, 7, 33, 52, 46, 2, 4,133, + 66,128, 76,182, 84,137, 99, 56, 3,133,142, 18, 9,149, 6, 14, 49, 49, 27, 14, 76,116,152, 90, 99,158,110, 59,253, 76, 5,153, +151, 51, 87, 81, 76, 39,254,131,114,133, 11, 1,236, 27, 57, 89, 53, 32, 35, 4,254,149, 1,117, 17, 84,132,178,111, 2,111,114, + 39, 63, 21, 14, 58, 34, 47, 49,108,169,117, 62, 71,129,181,110,113,193,182, 10, 19, 29, 18, 2,240,156,149, 68,113, 80, 44, 0, +255,255, 0, 82, 0, 0, 2,100, 5,182, 2, 6, 0, 44, 0, 0,255,255, 0, 4, 0, 0, 6,129, 7,105, 2, 38, 1,176, 0, 0, + 1, 7, 2, 54, 0,244, 1, 82, 0, 19, 64, 11, 1, 23, 5, 38, 1, 0, 28, 18, 17, 10, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 4, 0, 0, 5,190, 6, 23, 2, 38, 1,208, 0, 0, 1, 7, 2, 54, 0,147, 0, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 0, + 28, 18, 14, 7, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199,254, 0, 4,225, 5,182, 0, 37, 0,103, 64, 63, 27, 27, 5, 33, + 91, 17, 9, 10, 16, 10, 64, 12, 24, 72, 10, 10, 4, 17, 39, 16, 39, 64, 39, 2, 11, 8, 8, 4, 90, 5,100, 38, 31, 95, 28, 22, + 28, 8, 3, 0, 96, 47, 12, 95, 12,239, 12,255, 12, 4, 12, 64, 16, 21, 72, 12, 12, 5, 9, 6, 3, 5, 18, 0, 63, 63, 51, 18, + 57, 47, 43, 93,225, 51, 51, 63, 51,225, 1, 16,246,225, 50, 17, 51, 93, 16,206, 17, 57, 47, 43, 56, 51, 16,225, 17, 57, 47, 49, + 48, 1, 34, 6, 7, 17, 35, 17, 51, 17, 1, 51, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, + 52, 46, 2, 2, 70, 65, 92, 40,186,186, 2, 53,207,253,209, 6,154,240,165, 86, 82,146,201,118, 49, 78, 67, 61, 31, 63,127, 72, + 1,119, 67,124,174, 2,111, 17, 14,253,176, 5,182,253, 60, 2,196,253, 88, 85,163,236,151,170,248,162, 79, 6, 12, 19, 12,162, + 23, 24, 1,239,121,179,118, 58, 0, 1, 0,174,254, 10, 3,233, 4, 74, 0, 35, 0,114, 64, 71, 11, 8, 27, 8, 2, 34, 35, 16, + 31, 35, 1, 35, 35, 29, 5, 13, 13, 30, 20, 72, 5, 37, 15, 37, 1, 95, 37,111, 37,127, 37,159, 37,191, 37,223, 37,255, 37, 7, + 0, 33, 33, 29, 71, 30, 84, 36, 33, 28, 25, 81, 11, 0, 27, 0, 2, 7, 0, 0, 30, 34, 31, 15, 30, 21, 17, 81, 14, 10, 27, 0, + 63, 51,225, 63, 63, 51, 18, 57, 47, 94, 93,225, 51, 51, 1, 16,246,225, 50, 17, 51, 93,113, 16,222,225, 17, 57, 47, 17, 18, 57, + 47,113, 56, 51, 49, 48, 0, 93, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, 35, 34, 6, + 7, 17, 35, 17, 51, 17, 1, 51, 2, 43, 94,163,120, 69, 63,111,150, 87, 76,105, 47, 44,105, 67,118,117, 35, 74,114, 78, 32, 85, + 41,180,180, 1,152,196, 2,106, 5, 64,132,208,148,150,213,136, 64, 31, 29,161, 24, 37,195,210,106,151, 96, 45, 16, 13,254, 80, + 4, 74,254, 10, 1,246, 0, 1, 0, 0,254,127, 5, 86, 5,182, 0, 35, 0,115,177, 7, 2,184,255,248, 64, 70, 20, 23, 72, 2, + 90,137, 24, 1, 24, 16, 24,224, 29, 1,180, 29,196, 29,212, 29, 3, 0, 29, 80, 29, 2, 7, 29, 29, 31, 15, 33, 34, 34, 0, 90, + 35, 32, 31, 37,144, 37,192, 37,240, 37, 3, 15, 37, 31, 37,127, 37, 3, 8, 15, 33,251, 2, 95, 29, 3, 19, 96, 12, 19, 31, 95, + 0, 18, 0, 63,225, 63,225, 63,225, 63, 1, 47, 94, 93, 93, 16,212, 50, 50,225, 57, 47, 51, 17, 18, 57, 47, 94, 93, 93, 93, 51, + 56, 93,225, 43, 50, 49, 48, 33, 17, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, + 33, 17, 51, 3, 35, 19, 3,217,254,133, 15, 32, 33, 33, 16, 20, 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, + 32, 39, 43, 22, 2,208,195,143,217,165, 5, 18,113,245,235,212, 81,103,162,111, 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, + 1, 6, 1, 58,170,250,240,253,217, 1,129, 0, 0, 1, 0, 16,254,131, 4,102, 4, 74, 0, 24, 0, 88, 64, 56, 2, 70,212, 18, +228, 18, 2, 96, 18,112, 18,160, 18,176, 18, 4, 52, 18, 1, 18, 18, 10, 22, 23, 23, 0, 71, 24, 21, 20, 85, 26, 32, 26,176, 26, + 2, 15, 26, 1, 8, 10, 22,251, 2, 80, 18, 15, 13, 79, 7, 22, 20, 80, 0, 21, 0, 63,225, 63,225, 63,225, 63, 1, 47, 94, 93, + 93, 16,244, 50, 50,225, 57, 47, 51, 17, 57, 47, 93, 93, 93,225, 49, 48, 33, 17, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, 51, + 50, 54, 54, 18, 55, 33, 17, 51, 3, 35, 19, 2,250,254,254, 20, 64, 95,130, 86, 28, 49, 16, 22, 28, 55, 89, 69, 51, 18, 2, 84, +182,122,183,123, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,252, 80,253,233, 1,125, 0, 0, 1, 0,229, +254, 0, 4,244, 5,182, 0, 27, 0, 75, 64, 43, 5, 5, 16, 20, 12, 90, 23,101, 29,192, 29, 1,191, 29, 1, 32, 29, 1, 19, 15, + 90, 16,100, 28, 14, 95, 15, 19, 1, 8, 19, 19, 16, 21, 17, 3, 16, 18, 9, 95, 6, 0, 28, 0, 63, 50,225, 63, 63, 51, 18, 57, + 47, 94, 93,225, 1, 16,246,225, 50, 93, 93, 93, 16,246,225, 50, 17, 57, 47, 49, 48, 1, 34, 46, 2, 39, 53, 22, 22, 51, 50, 54, + 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,209, 49, 78, 68, 61, 31, 63,127, 72,187,198,253,103,187,187, 2, +153,187, 82,146,201,254, 0, 6, 12, 19, 12,162, 23, 24,240,247, 2, 31,253, 86, 5,182,253,152, 2,104,250,221,170,248,162, 79, + 0, 1, 0,174,254, 10, 4, 59, 4, 74, 0, 27, 0,105, 64, 26, 3, 3, 16, 20, 12, 71, 23, 85, 29, 0, 29, 32, 29, 2, 48, 29, + 64, 29, 80, 29,208, 29,240, 29, 5, 29,184,255,192, 64, 40, 14, 17, 72, 19, 15, 71, 16, 84, 28, 14, 80,235, 19, 1,169, 19,185, + 19, 2, 15, 19, 31, 19, 47, 19, 3, 6, 19, 19, 16, 21, 17, 15, 16, 21, 7, 81, 4, 0, 27, 0, 63, 50,225, 63, 63, 51, 18, 57, + 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 43, 93,113, 16,246,225, 50, 17, 57, 47, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, + 62, 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,160, 76,105, 47, 44,105, 66, 59, 91, 61, 31,253,223,182, +182, 2, 33,182, 63,111,150,254, 10, 31, 29,161, 24, 37, 45, 97,150,105, 1,178,254, 23, 4, 74,254, 57, 1,199,251,243,150,213, +136, 64, 0, 1, 0,229,254,127, 5,182, 5,182, 0, 15, 0, 82, 64, 50, 2, 3, 3, 13, 5, 90, 4, 1, 0, 17, 16, 17, 32, 17, + 64, 17,128, 17,192, 17,224, 17,240, 17, 7, 12, 8, 90, 9,100, 16, 7, 95, 15, 12, 1, 8, 12, 12, 5, 14, 10, 3, 9, 0, 95, + 5, 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 16,212, 50, 50,225, 50, 57, 47, 51, + 49, 48, 37, 51, 3, 35, 19, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,244,194,143,217,166,187,253,103,187,187, 2,153,187, +166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,174,254,131, 4,242, 4, 74, 0, 15, 0,118, 64, 79, + 13, 14, 14, 8, 0, 71, 15, 12,171, 11,187, 11, 2, 11, 17, 4, 17, 36, 17, 2,212, 17,244, 17, 2,176, 17, 1, 2, 48, 17, 64, + 17, 80, 17,128, 17,144, 17,160, 17, 6, 7, 3, 71, 4, 84, 16, 13,251, 2, 80,235, 7, 1,169, 7,185, 7, 2, 15, 7, 31, 7, + 47, 7, 3, 6, 7, 7, 0, 9, 5, 15, 11, 80, 4, 0, 21, 0, 63, 50,225, 63, 51, 18, 57, 47, 94, 93, 93, 93,225, 63, 1, 16, +246,225, 50, 93, 95, 93, 93,113, 16,212, 93, 50, 50,225, 50, 57, 47, 51, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, + 51, 3, 35, 19, 3,133,253,223,182,182, 2, 33,182,183,123,182,122, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, 1, +125, 0, 0, 1, 0,166,254,127, 4,129, 5,182, 0, 29, 0, 89, 64, 33, 29, 90, 26, 26, 22, 0, 90, 25,101, 31,112, 31,160, 31, + 2, 47, 31, 1, 16, 31, 1, 14, 90, 96, 11,112, 11,160, 11,176, 11, 4, 11,184,255,192, 64, 20, 7, 10, 72, 11, 22, 17, 95, 6, + 6, 12, 26, 27,251, 29, 95, 26, 18, 23, 12, 3, 0, 63, 51, 63,225, 63, 17, 18, 57, 47,225, 51, 1, 47, 43, 93,225, 93, 93, 93, + 16,246,225, 50, 50, 47,225, 49, 48, 37, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 55, 17, 51, 17, 35, + 17, 35, 17, 3,199, 58,105, 99, 97, 49, 93,146,101, 53,186,105,123, 45, 90, 94,102, 56,186,186,176,166, 1,176, 22, 34, 22, 12, + 49, 94,139, 89, 2, 71,253,209,115,116, 10, 20, 30, 20, 2,198,250, 74,254,127, 2, 39, 0, 1, 0,154,254,131, 3,254, 4, 74, + 0, 28, 0, 64, 64, 37, 27, 71, 24, 24, 20, 28, 71, 23, 85, 30, 16, 30, 96, 30,128, 30, 3, 13, 71, 10, 84, 29, 25,251, 20, 15, + 80, 5, 5, 11, 27, 80, 24, 21, 21, 11, 15, 0, 63, 51, 63,225, 18, 57, 47,225, 51, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, + 47,225, 49, 48, 1, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 51, 50, 62, 2, 55, 17, 51, 17, 35, 17, 35, 17, 51, 3, 72, 44, + 80, 85, 94, 58, 78,122, 82, 43,182,184, 45, 80, 76, 77, 42,182,160,182,160, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1,166,254, +102,174, 15, 28, 43, 29, 1,213,251,182,254,131, 2, 23, 0, 1, 0,199,254,127, 6,242, 5,182, 0, 31, 0,154,182, 54, 31, 1, + 57, 0, 1, 31,184,255,248, 64, 44, 12, 15, 72, 31, 0, 8, 12, 15, 72, 0, 13, 13, 12, 16, 9, 18, 19, 19, 14, 8, 12, 15, 72, + 57, 14, 1, 14, 29, 21, 90, 20, 17, 16, 33, 32, 33,192, 33, 2, 15, 33, 1, 8, 11,184,255,248, 64, 16, 12, 15, 72, 38, 11, 1, + 11, 2, 8, 90, 9,100, 32, 16, 95, 12,184,255,240, 64, 22, 9, 18, 72, 0, 9, 12, 3, 21, 18, 18,251, 30, 1, 1, 16, 9, 18, + 72, 1, 14, 10, 3, 0, 63, 51, 51, 43, 17, 51, 63, 63, 23, 51, 43,225, 1, 16,246,225, 50, 50, 93, 43, 94, 93, 93, 16,212, 50, + 50,225, 50, 50, 93, 43, 57, 47, 51, 17, 18, 57, 57, 17, 51, 43, 51, 43, 49, 48, 93, 93, 33, 1, 35, 22, 23, 22, 22, 21, 17, 35, + 17, 33, 1, 51, 1, 33, 17, 51, 3, 35, 19, 35, 17, 52, 62, 2, 55, 54, 55, 35, 1, 3, 35,254, 69, 8, 5, 4, 4, 6,172, 1, + 20, 1,156, 6, 1,158, 1, 20,195,144,217,166,186, 1, 2, 2, 2, 3, 4, 8,254, 65, 5, 0, 74, 73, 63,139, 57,252,150, 5, +182,251, 88, 4,168,250,240,253,217, 1,129, 3,119, 25, 61, 65, 66, 30, 71, 73,251, 2, 0, 1, 0,174,254,131, 5,199, 4, 74, + 0, 36, 0,135, 64, 90, 8, 7, 24, 24, 16, 32, 34, 35, 35, 30, 0, 70, 36, 33,175, 32,191, 32, 2, 32, 38,224, 38, 1,207, 38, + 1, 48, 38, 64, 38, 80, 38,160, 38, 4, 15, 38, 1, 6, 18, 15, 70, 16, 84, 37, 34,251, 1, 59, 14, 75, 14, 91, 14, 3, 11, 14, + 27, 14, 43, 14, 3, 14, 14, 30, 17, 15, 32, 80, 52, 24, 68, 24, 84, 24, 3, 5, 24, 21, 24, 37, 24, 3, 8, 16, 24, 3, 0, 21, + 0, 63, 23, 50, 93, 93,225, 63, 51, 51, 47, 93, 93, 51, 63, 1, 16,246,225, 50, 94, 93, 93, 93, 93, 16,212, 93, 50, 50,225, 50, + 57, 47, 51, 17, 18, 57, 17, 51, 51, 49, 48, 33, 17, 14, 3, 7, 1, 35, 1, 46, 3, 39, 17, 35, 17, 51, 1, 30, 3, 23, 62, 3, + 55, 1, 51, 17, 51, 3, 35, 19, 4,111, 6, 17, 20, 18, 7,254,248,135,254,247, 5, 17, 20, 18, 7,162,221, 1, 11, 13, 22, 19, + 14, 5, 6, 14, 19, 22, 13, 1, 14,217,183,123,182,122, 3,129, 21, 57, 59, 54, 18,253, 80, 2,176, 13, 49, 59, 62, 26,252,127, + 4, 74,253, 71, 34, 67, 60, 50, 16, 17, 49, 59, 65, 33, 2,189,252, 80,253,233, 1,125,255,255, 0, 82, 0, 0, 2,100, 5,182, + 2, 6, 0, 44, 0, 0,255,255, 0, 0, 0, 0, 4,221, 7,105, 2, 38, 0, 36, 0, 0, 1, 7, 2, 54, 0, 33, 1, 82, 0, 19, + 64, 11, 2, 26, 5, 38, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,161, 6, 23, 2, 38, + 0, 68, 0, 0, 1, 6, 2, 54,212, 0, 0, 19, 64, 11, 2, 56, 17, 38, 2, 37, 61, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 0, 0, 0, 4,221, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 33, 1, 82, 0, 23, 64, 13, 3, 2, 30, 5, + 38, 3, 2, 1, 21, 41, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 5,217, 2, 38, 0, 68, + 0, 0, 1, 6, 0,106,222, 0, 0, 23, 64, 13, 3, 2, 60, 17, 38, 3, 2, 47, 51, 71, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255,255,254, 0, 0, 6, 86, 5,182, 2, 6, 0,136, 0, 0,255,255, 0, 94,255,236, 6, 68, 4, 94, 2, 6, 0,168, + 0, 0,255,255, 0,199, 0, 0, 3,200, 7,105, 2, 38, 0, 40, 0, 0, 1, 7, 2, 54,255,251, 1, 82, 0, 19, 64, 11, 1, 17, + 5, 38, 1, 6, 22, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 23, 2, 38, 0, 72, 0, 0, + 1, 6, 2, 54,234, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 15, 50, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,113, +255,236, 5, 18, 5,205, 0, 30, 0, 41, 0, 73, 64, 47, 36, 26, 91, 14,103, 43, 15, 43,143, 43,175, 43,191, 43, 4, 43, 64, 11, + 15, 72, 37, 91, 3, 25,102, 42, 37, 95, 47, 25, 95, 25,127, 25, 3, 25, 25, 9, 31, 95, 19, 19, 3, 0, 95, 9, 4, 0, 63,225, + 51, 63,225, 17, 57, 47, 93,225, 1, 16,246, 50,225, 43, 93, 16,246,225, 50, 49, 48, 1, 34, 6, 7, 53, 62, 3, 51, 50, 22, 22, + 18, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 53, 33, 46, 3, 3, 50, 62, 2, 55, 33, 20, 30, 2, 2,121,128,207, 91, 42, 90, +105,125, 76,160,244,165, 84, 81,157,232,150,153,215,135, 62, 3,219, 7, 64,115,169, 67, 91,149,109, 66, 7,252,237, 38, 85,140, + 5, 41, 44, 32,170, 15, 26, 19, 10,108,198,254,233,171,174,254,235,194,104,107,196, 1, 21,171, 70,122,193,134, 71,251,102, 65, +126,185,120,117,184,127, 68, 0, 0, 2, 0,102,255,236, 3,215, 4, 94, 0, 30, 0, 39, 0, 67, 64, 41, 34, 17, 72, 5, 87, 41, +176, 41, 1, 63, 41, 1, 35, 72, 25, 16, 86, 40, 35, 80,159, 16,175, 16,207, 16,223, 16, 4, 16, 16, 0, 31, 80, 10, 22, 25, 20, + 81, 0, 16, 0, 63,225, 51, 63,225, 17, 57, 47, 93,225, 1, 16,246, 50,225, 93, 93, 16,246,225, 50, 49, 48, 1, 50, 30, 2, 21, + 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 38, 38, 35, 34, 14, 2, 7, 53, 62, 3, 19, 50, 54, 55, 33, 20, 30, 2, 1,231,110,182, +131, 73, 66,120,167,102, 99,158,110, 59, 2,181, 5,154,151, 51, 87, 80, 76, 39, 40, 76, 81, 87, 96,115,133, 11,254, 20, 27, 57, + 88, 4, 94, 74,142,210,135,136,214,149, 78, 71,129,181,110,113,192,182, 10, 19, 28, 18,161, 19, 28, 18, 9,252, 37,156,149, 68, +113, 80, 44, 0,255,255, 0,113,255,236, 5, 18, 7, 43, 2, 38, 2,225, 0, 0, 1, 7, 0,106, 0, 70, 1, 82, 0, 25,182, 3, + 2, 51, 5, 38, 3, 2,184,255,211,180, 42, 62, 24, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,102,255,236, 3,215, + 5,217, 2, 38, 2,226, 0, 0, 1, 6, 0,106,196, 0, 0, 25,182, 3, 2, 49, 17, 38, 3, 2,184,255,244,180, 40, 60, 15, 5, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 4, 0, 0, 6,129, 7, 43, 2, 38, 1,176, 0, 0, 1, 7, 0,106, 0,244, + 1, 82, 0, 23, 64, 13, 2, 1, 27, 5, 38, 2, 1, 0, 18, 38, 17, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 4, + 0, 0, 5,190, 5,217, 2, 38, 1,208, 0, 0, 1, 7, 0,106, 0,145, 0, 0, 0, 25,182, 2, 1, 27, 17, 38, 2, 1,184,255, +255,180, 18, 38, 14, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 72,255,236, 3,236, 7, 43, 2, 38, 1,177, 0, 0, + 1, 7, 0,106,255,191, 1, 82, 0, 25,182, 2, 1, 67, 5, 38, 2, 1,184,255,244,180, 58, 78, 19, 11, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0, 68,255,236, 3, 82, 5,217, 2, 38, 1,209, 0, 0, 1, 7, 0,106,255, 85, 0, 0, 0, 25,182, 2, + 1, 67, 17, 38, 2, 1,184,255,217,180, 58, 78, 41, 33, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 72,255,236, 3,236, + 5,182, 0, 32, 0,114, 64, 45, 0, 91, 27, 28, 91, 32, 32, 64, 16, 24, 72, 29, 27, 32, 32, 27, 29, 3, 13, 22, 91, 5,103, 34, +159, 34, 1,112, 13,128, 13, 2, 63, 13, 79, 13, 95, 13, 3, 13, 32, 29, 95, 30, 27,184,255,240, 64, 24, 7, 13, 72, 27, 25,170, + 0, 1,120, 0, 1, 15, 0, 1, 8, 0, 0, 30, 3, 19, 96, 14, 10, 19, 0, 63, 51,225, 63, 57, 47, 94, 93, 93, 93, 51, 51, 43, + 16,225, 50, 1, 47, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 43, 16,225, 16,225, 49, 48, 1, 30, 3, 21, 20, 14, 2, 35, + 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 35, 53, 1, 33, 53, 33, 21, 1,244,115,186,132, 71, 67,136,205,137,110,192, + 85, 43, 96, 99, 99, 46,178,176,207,186,123, 1,166,253,166, 3, 61, 3, 59, 5, 53,100,151,102, 96,160,116, 64, 34, 45,170, 23, + 36, 24, 13,148,135,135,129,151, 1,209,166,145, 0, 1, 0, 27,254, 20, 3,117, 4, 74, 0, 36, 0,100, 64, 62, 0, 74, 31, 32, + 74, 36, 36, 64, 19, 24, 72, 33, 31, 36, 36, 31, 33, 3, 13, 24, 71, 5, 87, 38,111, 38,159, 38, 2, 48, 38, 1, 15, 38, 1, 7, + 13, 64, 12, 17, 72, 13, 36, 33, 80, 34, 31, 29, 0, 32, 9, 12, 72, 0, 0, 34, 15, 19, 80, 14, 10, 27, 0, 63, 51,225, 63, 57, + 47, 43, 51, 51, 16,225, 50, 1, 47, 43, 94, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 43, 16,225, 16,225, 49, 48, 1, 30, + 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 1, 33, 53, 33, 21, 1,168, 95,168, +125, 73, 71,132,186,115,115,181, 58, 31, 78, 91,102, 54, 71,119, 86, 48, 55, 99,139, 84,109, 1,146,253,198, 3, 6, 1,213, 7, + 65,117,166,108,110,183,132, 73, 36, 34,166, 16, 31, 24, 15, 46, 87,125, 78, 86,125, 82, 39,125, 1,237,154,133,255,255, 0,201, + 0, 0, 5, 16, 6,193, 2, 38, 1,178, 0, 0, 1, 7, 1, 77, 0,176, 1, 82, 0, 21,180, 1, 26, 5, 38, 1,184,255,254,180, + 24, 25, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 59, 5,111, 2, 38, 1,210, 0, 0, 1, 6, 1, 77, + 57, 0, 0, 21,180, 1, 14, 17, 38, 1,184,255,255,180, 12, 13, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,201, 0, 0, + 5, 16, 7, 43, 2, 38, 1,178, 0, 0, 1, 7, 0,106, 0,156, 1, 82, 0, 25,182, 2, 1, 33, 5, 38, 2, 1,184,255,254,180, + 24, 44, 0, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,174, 0, 0, 4, 59, 5,217, 2, 38, 1,210, 0, 0, 1, 6, + 0,106, 37, 0, 0, 25,182, 2, 1, 21, 17, 38, 2, 1,184,255,255,180, 12, 32, 10, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 0, 50, 0, 0, 1, 7, 0,106, 0,170, 1, 82, 0, 23, 64, 13, 3, 2, 49, 5, + 38, 3, 2, 1, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, 2, 38, 0, 82, + 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 41, 17, 38, 3, 2,184,255,249,180, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 2,126, 0, 0,255,255, 0,113,255,236, 4, 45, 4, 94, 2, 6, + 2,127, 0, 0,255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 2,126, 0, 0, 1, 7, 0,106, 0,170, 1, 82, 0, 23, 64, 13, + 4, 3, 51, 5, 38, 4, 3, 1, 42, 62, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, + 2, 38, 2,127, 0, 0, 1, 6, 0,106, 0, 0, 0, 23, 64, 13, 4, 3, 43, 17, 38, 4, 3, 0, 34, 54, 10, 0, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 59,255,236, 4, 68, 7, 43, 2, 38, 1,199, 0, 0, 1, 7, 0,106,255,151, 1, 82, 0, 25, +182, 2, 1, 46, 5, 38, 2, 1,184,255,166,180, 37, 57, 4, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 55,255,236, + 3, 66, 5,217, 2, 38, 1,231, 0, 0, 1, 7, 0,106,255, 56, 0, 0, 0, 25,182, 2, 1, 48, 17, 38, 2, 1,184,255,202,180, + 39, 59, 3, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 25,255,236, 4,174, 6,193, 2, 38, 1,189, 0, 0, 1, 7, + 1, 77, 0, 39, 1, 82, 0, 21,180, 1, 36, 5, 38, 1,184,255,254,180, 34, 35, 19, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 10,254, 20, 3,223, 5,111, 2, 38, 0, 92, 0, 0, 1, 6, 1, 77,187, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 1, 35, 36, + 0, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 25,255,236, 4,174, 7, 43, 2, 38, 1,189, 0, 0, 1, 7, 0,106, 0, 18, + 1, 82, 0, 25,182, 2, 1, 43, 5, 38, 2, 1,184,255,253,180, 34, 54, 19, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0, 10,254, 20, 3,223, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106,167, 0, 0, 23, 64, 13, 2, 1, 44, 17, 38, 2, 1, 1, + 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 25,255,236, 4,174, 7,115, 2, 38, 1,189, 0, 0, 1, 7, + 1, 83, 0,102, 1, 82, 0, 23, 64, 13, 2, 1, 46, 5, 38, 2, 1, 81, 34, 54, 19, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 1, 83, 0, 0, 0, 23, 64, 13, 2, 1, 47, 17, 38, 2, + 1, 90, 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,166, 0, 0, 4,129, 7, 43, 2, 38, 1,193, 0, 0, + 1, 7, 0,106, 0, 84, 1, 82, 0, 23, 64, 13, 2, 1, 31, 5, 38, 2, 1, 15, 22, 42, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0,154, 0, 0, 3,254, 5,217, 2, 38, 1,225, 0, 0, 1, 6, 0,106, 6, 0, 0, 23, 64, 13, 2, 1, 34, 17, + 38, 2, 1, 8, 25, 45, 23, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,199,254,127, 3,190, 5,182, 0, 9, 0,100, + 64, 11, 20, 0, 1,228, 0, 1,208, 0, 1, 2, 0,184,255,192, 64, 53, 8, 19, 72, 0, 0, 11, 47, 11, 79, 11,111, 11,143, 11, + 4, 11, 64, 17, 24, 72, 7, 90,191, 4,207, 4, 2,132, 4, 1, 15, 4, 31, 4, 2, 7, 4, 4, 3, 90, 8,100, 10, 2, 95, 9, + 3, 3, 95, 7, 18, 6,251, 0, 63, 63,225, 63,225, 1, 16,246,225, 50, 47, 94, 93, 93, 93,225, 43, 93, 17, 51, 47, 43, 95, 93, + 93,113, 49, 48, 1, 21, 33, 17, 51, 17, 35, 17, 35, 17, 3,190,253,195,176,176,186, 5,182,166,251,150,253,217, 1,129, 5,182, + 0, 1, 0,174,254,131, 3, 10, 4, 74, 0, 9, 0, 78, 64, 50, 32, 2, 48, 2, 2, 2, 2, 11,192, 11, 1,161, 11, 1,112, 11, + 1, 9, 71,191, 6,207, 6, 2,132, 6, 1, 15, 6, 31, 6, 2, 7, 6, 6, 5, 71, 0, 84, 10, 5, 80, 9, 21, 8,251, 4, 80, + 1, 15, 0, 63,225, 63, 63,225, 1, 16,246,225, 50, 47, 94, 93, 93, 93,225, 93, 93, 93, 17, 51, 47, 93, 49, 48, 51, 17, 33, 21, + 33, 17, 51, 17, 35, 17,174, 2, 92,254, 90,160,182, 4, 74,154,252,234,253,233, 1,125,255,255, 0,199, 0, 0, 5,207, 7, 43, + 2, 38, 1,197, 0, 0, 1, 7, 0,106, 0,252, 1, 82, 0, 23, 64, 13, 4, 3, 39, 5, 38, 4, 3, 0, 30, 50, 6, 28, 37, 1, + 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,174, 0, 0, 5, 80, 5,217, 2, 38, 1,229, 0, 0, 1, 7, 0,106, 0,176, 0, 0, + 0, 23, 64, 13, 4, 3, 39, 17, 38, 4, 3, 0, 30, 50, 10, 13, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 47,254,109, + 3,190, 5,182, 2, 38, 2,155, 0, 0, 1, 7, 3,128, 0,166, 0, 0, 0, 10,179, 1, 31, 31, 7, 1, 16, 60, 17, 53,255,255, + 0, 18,254,109, 3, 10, 4, 74, 2, 38, 2,156, 0, 0, 1, 7, 3,129, 0,137, 0, 0, 0, 10,179, 1, 31, 31, 13, 1, 16, 60, + 17, 53,255,255, 0, 0,254,109, 4,154, 5,182, 0, 38, 0, 59, 0, 0, 1, 7, 3,128, 3, 35, 0, 0, 0, 23,177, 1, 29,184, +255,192,178, 19, 21, 72,184,255,158,180, 29, 29, 0, 0, 37, 1, 43, 43, 53, 0,255,255, 0, 35,254,109, 4, 17, 4, 74, 0, 38, + 0, 91, 0, 0, 1, 7, 3,129, 2,154, 0, 0, 0, 18,179, 1, 80, 29, 1,184,255,154,180, 29, 29, 7, 7, 37, 1, 43, 93, 53, + 0, 1, 0, 0, 0, 0, 4, 96, 5,182, 0, 17, 0,178, 64, 39, 70, 15, 86, 15, 2, 73, 9, 89, 9, 2, 54, 0, 1, 57, 6, 1, + 6, 9, 15, 0, 4, 12, 3, 3, 1, 48, 17, 1, 63, 7, 1, 7, 17, 7, 17, 5, 1, 11, 10,184,255,240,179, 10, 10, 4, 5,184, +255,240, 64, 20, 5, 13, 14, 16, 14, 14, 2, 1, 16, 0, 1, 1,112, 1,128, 1,192, 1, 3, 1,184,255,192, 64, 39, 7, 10, 72, + 1, 1, 19, 15, 19, 31, 19, 47, 19,127, 19, 4, 8, 0, 6, 95, 15, 9, 40, 3, 1, 39, 12, 1, 3, 12, 10, 9, 9, 1, 13, 10, + 3, 5, 1, 18, 0, 63, 51, 63, 51, 18, 57, 47, 17, 57, 57, 93, 93, 17, 51,225, 50, 1, 94, 93, 17, 51, 47, 43, 93,113, 56, 51, + 51, 47, 56, 51, 47, 56, 51, 51, 47, 56, 51, 17, 18, 57, 57, 47, 47, 93, 93, 17, 57, 61, 47, 51, 23, 51, 93, 93, 93, 93, 49, 48, + 1, 1, 35, 1, 1, 35, 1, 33, 53, 33, 1, 51, 1, 1, 51, 1, 33, 21, 2,197, 1,155,211,254,158,254,145,188, 1,154,254,223, + 1, 20,254,146,198, 1, 76, 1, 78,190,254,142, 1, 28, 2,180,253, 76, 2,123,253,133, 2,180,164, 2, 94,253,209, 2, 47,253, +162,164, 0, 1, 0, 35, 0, 0, 3,219, 4, 74, 0, 17, 1, 23, 64,191,128, 8,144, 8, 2, 8, 0, 8, 0, 11, 15, 6, 5, 1, +247, 5, 1,229, 5, 1, 54, 5, 1, 5, 6, 7, 10, 10, 4, 13, 1, 16, 16, 13, 9, 3, 1,248, 3, 1,234, 3, 1, 57, 3, 1, + 3, 2,107, 6,123, 6, 2, 87, 6, 1, 58, 6, 74, 6, 2,100, 2,116, 2, 2, 88, 2, 1, 53, 2, 69, 2, 2, 6, 2, 13, 2, + 13, 6, 3, 15, 6, 12, 1,247, 12, 1,229, 12, 1, 54, 12, 1, 12, 11, 64, 22, 25, 72, 11, 64, 14, 17, 72,107, 11,123, 11, 2, + 87, 11, 1, 58, 11, 74, 11, 2, 11, 11, 19, 16, 19, 48, 19, 2,144, 19,176, 19, 2, 15, 19, 1, 9, 14, 1,248, 14, 1,234, 14, + 1, 57, 14, 1, 14,107, 15,123, 15, 2, 88, 15, 1, 53, 15, 69, 15, 2, 15, 13, 10, 16, 79, 4, 7,239, 1, 1, 11, 1, 27, 1, + 43, 1, 91, 1,107, 1, 5, 6, 1, 1, 2, 15, 11, 21, 5, 2, 15, 0, 63, 51, 63, 51, 18, 57, 47, 94, 93, 93, 51, 51,225, 50, + 50, 1, 47, 93, 93, 93,193, 93, 93, 93,113, 93, 93,113, 16,206, 47, 93, 93, 93, 43, 43,193, 93, 93, 93,113, 18, 23, 57, 61, 47, + 24, 47, 47, 93, 93, 93, 93, 93, 93, 16,193, 93, 93, 93,113, 17, 51, 17, 51, 17, 51, 51, 17, 51, 16,193, 93, 93, 93,113, 17, 18, + 57, 57, 47, 47, 93, 49, 48, 19, 33, 1, 51, 19, 19, 51, 1, 33, 21, 33, 1, 35, 1, 1, 35, 1, 33,104, 1, 0,254,207,207,250, +250,207,254,205, 1, 4,254,247, 1, 74,207,254,244,254,242,207, 1, 74,254,251, 2,123, 1,207,254,102, 1,154,254, 49,137,254, + 14, 1,180,254, 76, 1,242, 0, 0, 2, 0,137, 0, 0, 3,246, 5,182, 0, 14, 0, 25, 0, 64, 64, 41, 6, 25, 90, 9,101, 27, +159, 27, 1, 16, 27, 1, 21, 91, 0,102, 26, 15, 95, 63, 6, 79, 6,111, 6,159, 6,191, 6,223, 6, 6, 6, 6, 7, 25, 95, 9, + 18, 7, 3, 0, 63, 63,225, 17, 57, 47, 93,225, 1, 16,246,225, 93, 93, 16,246,225, 50, 49, 48, 19, 52, 62, 2, 51, 51, 17, 51, + 17, 33, 34, 46, 2, 1, 35, 34, 14, 2, 21, 20, 22, 51, 51,137, 55,127,207,152,149,187,254,149,134,194,126, 60, 2,178,129, 93, +138, 91, 46,163,175,159, 1,172, 87,152,113, 66, 2,104,250, 74, 61,112,158, 1, 95, 27, 60, 97, 70,136,132, 0,255,255, 0,113, +255,236, 4, 2, 6, 20, 2, 6, 0, 71, 0, 0, 0, 2, 0,137,255,236, 6, 59, 5,182, 0, 35, 0, 50, 0, 99, 64, 63, 24, 9, + 50, 90, 26, 26, 17, 34, 90, 1,101, 52, 15, 52, 1,111, 52,159, 52,239, 52, 3, 64, 52, 80, 52, 2, 15, 52, 1, 6, 42, 91, 17, +102, 51, 36, 95, 23, 35, 35, 63, 23, 79, 23,111, 23,191, 23,223, 23, 5, 23, 23, 24, 3, 29, 45, 96, 9, 6, 14, 19, 0, 63, 51, + 51,225, 50, 63, 57, 47, 93, 51, 47, 16,225, 1, 16,246,225, 94, 93, 93, 93,113, 16,246,225, 17, 57, 47,225, 57, 50, 49, 48, 1, + 17, 20, 14, 2, 35, 34, 38, 39, 14, 3, 35, 34, 38, 53, 52, 62, 2, 51, 51, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 5, 35, + 34, 14, 2, 21, 20, 22, 51, 50, 62, 2, 53, 6, 59, 45, 91,140, 94,114,153, 43, 24, 63, 82,103, 63,215,228, 65,138,215,150,122, +187,103, 97, 44, 72, 51, 28,253,186,129, 93,139, 91, 45,126,134, 67, 91, 56, 23, 3, 80,254, 24, 81,139,102, 58, 97, 77, 38, 63, + 46, 25,210,214,103,163,114, 60, 2,104,251,178,112,105, 30, 57, 80, 50, 1,232,166, 30, 67,107, 77,128,130, 37, 62, 77, 41, 0, + 0, 2, 0,113,255,236, 6, 90, 6, 20, 0, 50, 0, 67, 0, 92, 64, 57, 16, 44, 56, 71, 80, 46, 1, 46, 46, 27, 3, 71, 6, 85, + 69,111, 69,127, 69,159, 69,207, 69,239, 69, 5, 64, 69, 1, 15, 69, 47, 69, 2, 6, 65, 72, 27, 86, 68, 4, 4, 51, 62, 80, 37, + 32, 16, 44, 0, 0, 51, 80, 16, 11, 22, 22, 0, 63, 51, 51,225, 50, 63, 63, 51,225, 18, 57, 47, 1, 16,246,225, 94, 93, 93, 93, + 16,246,225, 17, 57, 47, 93,225, 50, 57, 49, 48, 37, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 39, 35, 14, 3, 35, 34, + 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 30, 3, 33, 50, 62, 2, 55, 53, 52, 46, 2, 35, + 34, 6, 21, 20, 22, 4,211,111, 98,182, 47, 92,139, 91, 65,103, 81, 61, 23, 6, 27, 68, 91,121, 81, 93,154,110, 60, 60,110,154, + 93, 59, 96, 77, 59, 23, 12, 3, 3, 2, 4,182, 1, 15, 44, 81,253,166, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,131,130, +130, 1, 53,254,193,105,152, 98, 46, 30, 54, 74, 44, 41, 74, 55, 32, 72,143,212,140,141,213,144, 73, 26, 44, 58, 32, 34, 31, 26, + 54, 17, 1,180,251,146, 62,106, 78, 45, 46, 94,140, 95, 41,101,157,107, 55,218,204,209,205, 0, 0, 1, 0, 78,255,236, 6, 68, + 5,203, 0, 63, 0,133, 64, 86, 13, 91, 32, 0, 91, 43, 37, 32, 7, 32, 43, 43, 32, 7, 3, 22, 51, 90, 54,101, 65,127, 65,143, + 65,159, 65,239, 65,255, 65, 5, 0, 65, 32, 65, 48, 65, 3,112, 22,128, 22, 2, 63, 22, 79, 22, 2, 22, 22, 64, 37, 6, 96, 7, + 0, 52, 1, 52, 52,223, 7, 1,170, 7, 1,120, 7, 1, 15, 7, 1, 8, 7, 7, 27, 48, 95, 59, 19, 21, 18, 96, 27, 4, 0, 63, +225, 51, 63,225, 17, 57, 47, 94, 93, 93, 93, 93, 51, 47, 93, 16,225, 57, 17, 1, 51, 47, 93, 93, 93, 93, 16,246,225, 17, 23, 57, + 47, 47, 47, 18, 57, 16,225, 16,225, 49, 48, 1, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, + 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 3, + 41, 53,101,146, 93,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116,131, 71,109,166,113, 57, 51, 91,125, 75, + 87,138, 94, 50, 24, 50, 79, 55,111, 98,183, 56,102,145, 89, 87,148,108, 60, 1,135, 77,109, 70, 33,151, 39, 72,100, 62, 54, 83, + 58, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 79, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72, 74,104, 65, 30,119,129, 1,201, +254, 45,105,152, 98, 46, 47,100,156, 0, 0, 1, 0, 80,255,236, 5,162, 4, 94, 0, 59, 0,129, 64, 35, 21, 71, 0, 32, 70, 49, + 54, 49, 25, 0, 49, 25, 25, 49, 0, 3, 39, 8, 71, 11, 85, 61, 15, 61, 1,208, 61, 1,191, 61, 1, 48, 61, 1, 39,184,255,192, + 64, 41, 18, 21, 72, 95, 39, 1, 39, 39, 60, 54, 25, 80, 26, 9, 9,223, 26, 1,153, 26,169, 26, 2, 11, 26, 27, 26, 2, 7, 26, + 26, 5, 38, 35, 80, 44, 16, 5, 80, 16, 22, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 51, 47, 16,225, 57, 17, 1, 51, + 47, 93, 43, 93, 93, 93,113, 16,246,225, 17, 23, 57, 47, 47, 47, 17, 18, 57, 16,225, 16,225, 49, 48, 1, 20, 30, 2, 51, 50, 54, + 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 62, 3, 51, + 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 3, 82, 21, 49, 80, 59,105, 96,182, 47, 95,143, 96, 92,144,100, 53,133,138,129, 97, + 61,100, 72, 39,115,108, 71,129, 75, 63, 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 50, 83, 60, 34, 1, 76, 39, 73, 56, + 33,130,130, 1, 53,254,193,105,152, 98, 46, 43, 84,123, 79, 94, 91,153, 18, 39, 64, 45, 77, 77, 38, 34,147, 19, 29, 19, 9, 38, + 74,109, 70, 50, 77, 59, 41, 14, 11, 9, 41, 62, 82, 0, 0, 1, 0, 78,254,127, 4,156, 5,203, 0, 49, 0,131, 64, 84, 15, 91, + 39, 9, 34, 9, 34, 9, 24, 1, 90,112, 46,128, 46, 2, 46, 46, 0, 90, 47, 47, 51, 0, 51, 1,192, 51,208, 51, 2,159, 51, 1, + 0, 51, 32, 51, 48, 51, 3,112, 24,128, 24, 2, 63, 24, 79, 24, 2, 24, 24, 50, 48,251, 39, 8, 96,223, 9, 1,170, 9, 1,120, + 9, 1, 15, 9, 1, 8, 9, 9, 1, 23, 20, 96, 29, 4, 46, 95, 1, 18, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 93, +225, 57, 63, 17, 1, 51, 47, 93, 93, 93, 93, 93,113, 17, 51, 47,225, 50, 47, 93,225, 18, 57, 57, 47, 47, 18, 57,225, 49, 48, 33, + 35, 17, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, + 21, 30, 3, 21, 21, 51, 17, 35, 3,236,187, 56,103,149, 93,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116, +131, 71,109,166,113, 57, 51, 91,125, 75, 87,138, 94, 50,176,176, 1,160, 67,100, 65, 32,151, 39, 72,100, 62, 54, 83, 58, 30, 67, + 54,125, 31, 54, 41, 24, 54, 97,133, 79, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72,250,253,217, 0, 1, 0, 80,254,131, 3,242, + 4, 94, 0, 45, 0,141, 64, 26, 12, 70, 29, 34, 29, 6, 29, 6, 29, 19, 0, 71, 41, 41, 45, 71, 32, 42, 48, 42, 64, 42, 96, 42, + 4, 42,184,255,192, 64, 14, 15, 19, 72, 42, 42, 47,192, 47,208, 47,224, 47, 3, 19,184,255,192, 64, 45, 18, 21, 72, 95, 19, 1, + 19, 19, 46, 43,251, 34, 5, 80,223, 6, 1,153, 6,169, 6, 2, 79, 6, 95, 6, 2, 11, 6, 27, 6, 2, 7, 6, 6, 0, 18, 15, + 80, 24, 16, 41, 80, 0, 21, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 93,233, 57, 63, 17, 1, 51, 47, 93, 43, 93, 17, + 51, 47, 43, 93,225, 50, 47,225, 18, 57, 57, 47, 47, 18, 57, 16,225, 49, 48, 33, 17, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, + 38, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 21, 51, 17, 35, 17, 2,156,129,138,129, 97, + 61,100, 72, 39,115,108, 71,129, 75, 63, 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 44, 82, 63, 38,160,183, 1, 43, 94, +101,153, 18, 39, 64, 45, 77, 77, 38, 34,147, 19, 29, 19, 9, 38, 74,109, 70, 50, 77, 59, 41, 14, 11, 14, 44, 66, 91, 61,145,253, +233, 1,125, 0, 0, 1, 0, 0,255,233, 6,236, 5,182, 0, 49, 0,146, 64,101,215, 6,231, 6, 2, 6, 7, 1, 1,215, 1,247, + 1, 2, 1, 90, 28, 23, 16, 16, 24, 72,139, 23, 1, 23, 16, 7, 14, 72, 23, 28, 49, 90, 30,176, 30, 1,224, 28, 1,180, 28,196, + 28,212, 28, 3, 0, 28, 80, 28,144, 28,160, 28, 4, 7, 28, 30, 28, 30, 14, 36, 90, 39,101, 51, 79, 51,111, 51,127, 51,159, 51, +175, 51,223, 51, 6, 32, 51, 1, 15, 51, 1, 14, 37, 37, 18, 1, 95, 28, 3, 33, 18, 96, 44, 11, 19, 0, 63, 51,225, 50, 63,225, + 18, 57, 47, 1, 47, 93, 93, 93, 16,246,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 93, 16,225, 17, 51, 43, 93, 43, 16,225, 93,113, + 50, 93, 49, 48, 1, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 17, 20, 22, + 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 3,217,254,133, 15, 32, 33, 33, 16, 20, 53, 79,110, 78, 35, 74, 28, + 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,208, 99,110,111, 98,183, 56,102,145, 89, 87,146,104, 58, 5, 18,113,245, +235,212, 81,103,162,111, 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, 1, 6, 1, 58,170,251,209,129,119,119,129, 1,201,254, + 45,105,152, 98, 46, 44, 96,153,108, 0, 0, 1, 0, 16,255,236, 6, 0, 4, 74, 0, 40, 0, 92, 64, 57, 1, 70, 17, 40, 71, 19, +160, 19, 1,219, 17, 1,196, 17, 1,144, 17,160, 17, 2, 36, 17, 1, 16, 17, 1, 17, 19, 17, 19, 9, 27, 71, 30, 85, 42,127, 42, +207, 42,239, 42, 3, 9, 28, 28, 12, 1, 80, 17, 15, 24, 12, 79, 35, 6, 22, 0, 63, 51,225, 50, 63,225, 18, 57, 47, 1, 47, 93, + 16,246,225, 17, 57, 57, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 1, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, + 51, 50, 54, 54, 18, 55, 33, 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2,250,254,254, 20, 64, + 95,130, 86, 28, 49, 16, 22, 28, 55, 89, 69, 51, 18, 2, 84, 21, 49, 80, 59,105, 96,182, 47, 95,143, 96, 92,145,102, 54, 3,176, +254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,253, 61, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, 46, + 98,150,105, 0, 0, 1, 0,199,255,236, 7, 45, 5,182, 0, 29, 0, 92, 64, 55, 27, 19, 90,160, 0, 1, 0, 0, 23, 6, 90, 9, +101, 31,192, 31, 1,175, 31,191, 31, 2, 32, 31, 1, 15, 31, 1, 26, 22, 90, 23,100, 30, 21, 95, 26, 7, 7, 15, 26, 1, 8, 26, + 26, 23, 28, 24, 3, 23, 18, 3, 95, 14, 19, 0, 63,225, 63, 63, 51, 18, 57, 47, 94, 93, 51, 47, 16,225, 1, 16,246,225, 50, 93, + 93, 93, 93, 16,246,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, + 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,213, 98,111,110, 99,182, 56,102,144, 89, 88,145,104, 58,253,102,186,186, 2,154,186, + 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 1, 45,253, 86, 5,182,253,152, 2,104, 0, 1, 0,174, +255,236, 6,139, 4, 74, 0, 31, 0,108, 64, 71, 2, 26, 71, 5, 5, 30, 13, 71, 16, 85, 33, 0, 33, 32, 33, 2, 64, 33, 80, 33, +128, 33,144, 33,176, 33,240, 33, 6, 15, 33, 1, 1, 29, 71, 30, 84, 32, 28, 80, 1, 14, 14,235, 1, 1,169, 1,185, 1, 2, 15, + 1, 31, 1, 47, 1, 3, 6, 1, 1, 30, 3, 31, 15, 30, 21, 10, 80, 21, 22, 0, 63,225, 63, 63, 51, 18, 57, 47, 94, 93, 93, 93, + 51, 47, 16,225, 1, 16,246,225, 50, 93, 93,113, 16,246,225, 17, 57, 47,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 20, 30, 2, 51, + 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 17, 35, 17, 1,100, 2, 33,182, 21, 49, 80, 59,106, 95,182, 47, + 95,143, 96, 91,146,102, 54,253,223,182, 4, 74,254, 57, 1,199,253, 61, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, + 46, 98,150,105,110,254, 23, 4, 74, 0, 0, 1, 0,125,255,236, 5, 82, 5,203, 0, 42, 0, 71, 64, 41, 42, 42, 12, 41, 91, 1, + 20, 64, 9, 14, 72, 20, 20, 1,103, 44,191, 44, 1,112, 44, 1, 31, 91, 12,102, 43, 42, 95, 0, 0, 36, 26, 95, 21, 17, 4, 36, + 95, 7, 19, 0, 63,225, 63, 51,225, 18, 57, 47,225, 1, 16,246,225, 93, 93, 16,230, 50, 47, 43, 16,225, 18, 57, 47, 49, 48, 1, + 33, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 36, 51, 50, 22, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, + 50, 62, 2, 53, 33, 3, 23, 2, 59, 66,142,222,156,157,242,166, 86, 95,182, 1, 11,171,111,204, 88, 72, 36, 83, 88, 93, 46,122, +188,127, 66, 54,112,171,117,108,149, 93, 41,254,136, 2,246, 86,168,254,254,175, 91,105,195, 1, 23,174,172, 1, 22,195,105, 44, + 42,162, 17, 30, 23, 14, 81,152,218,137,130,216,156, 86, 66,119,166,100, 0, 1, 0,113,255,236, 4,123, 4, 94, 0, 40, 0,129, + 64, 90, 40, 40, 12, 39, 71, 1, 20, 64, 12, 17, 72, 20, 20, 1, 87, 42, 20, 42, 36, 42, 2,228, 42,244, 42, 2,208, 42, 1, 2, + 64, 42, 80, 42,128, 42,160, 42,192, 42, 5, 29, 72, 12, 86, 41, 40, 80, 0, 64, 21, 25, 72,203, 0,219, 0,235, 0, 3,169, 0, +185, 0, 2,143, 0,159, 0, 2, 11, 0, 27, 0, 43, 0, 3, 6, 0, 0, 34, 24, 80, 21, 17, 16, 34, 80, 7, 22, 0, 63,225, 63, + 51,225, 18, 57, 47, 94, 93, 93, 93, 93, 43,225, 1, 16,246,225, 93, 95, 93, 93,113, 16,230, 50, 47, 43, 16,225, 18, 57, 47, 49, + 48, 1, 33, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, + 62, 2, 53, 33, 2,123, 2, 0, 57,120,186,129,135,203,136, 68, 76,149,219,143,111,173, 77, 62, 60,148, 91, 97,149,101, 52, 41, + 86,135, 94, 81,116, 74, 35,254,184, 2, 74, 68,130,200,137, 71, 79,147,211,132,130,211,148, 80, 37, 39,141, 29, 41, 58,109,157, + 98, 93,155,112, 62, 45, 80,112, 68, 0, 0, 1, 0, 20,255,236, 4,201, 5,182, 0, 25, 0,101, 64, 47, 6, 90, 9,101, 27, 79, + 27,127, 27,159, 27,175, 27, 4, 0, 27, 1,175, 24,239, 24, 2,132, 24, 1, 24, 24, 0, 90, 19, 64, 21, 1, 15, 21, 1, 8, 21, + 21, 87, 19,103, 19,119, 19, 3, 19,184,255,192, 64, 16, 7, 10, 72, 19, 25, 21, 95, 22, 7, 7, 22, 3, 3, 95, 14, 19, 0, 63, +225, 63, 57, 47, 16,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, 16,225, 50, 47, 93, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 22, + 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 33, 53, 33, 21, 33, 2,113, 98,111,110, 98,183, 56,102,144, 89, + 88,145,105, 58,254, 94, 3,254,254, 95, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 3,149,164,164, + 0, 1, 0, 41,255,236, 4,111, 4, 74, 0, 27, 0,109, 64, 74, 13, 71, 16, 85, 29, 15, 29, 1,207, 29,239, 29,255, 29, 3, 48, + 29, 64, 29, 96, 29, 3, 15, 29, 31, 29, 2, 15, 3, 1,204, 3, 1, 15, 3,191, 3, 2, 6, 3, 3, 5, 71, 26, 96, 0,112, 0, +208, 0, 3, 31, 0, 1, 0, 0, 0, 26, 16, 26, 2, 26, 14, 14, 1, 10, 80, 21, 22, 4, 0, 80, 1, 15, 0, 63,225, 50, 63,225, + 17, 57, 47, 1, 47, 93, 51, 47, 93, 93, 16,225, 50, 47, 94, 93, 93,113, 93, 93, 93,113, 16,246,225, 49, 48, 19, 53, 33, 21, 33, + 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 41, 3, 53,254,193, 21, 49, 80, 59,105, 95,183, + 47, 95,143, 96, 92,146,102, 54, 3,176,154,154,253,215, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, 46, 98,150,105, + 2, 53, 0, 1, 0,111,255,236, 4, 12, 5,203, 0, 57, 0, 93,180, 19, 91, 52, 26, 0,184,255,192, 64, 46, 23, 26, 72, 0, 26, + 0, 26, 47, 10, 10, 39, 59,159, 59, 1, 32, 91, 47,102, 58, 52, 27, 96,170, 24, 1,120, 24, 1, 15, 24, 1, 8, 24, 24, 5, 35, + 96, 38, 42, 19, 14, 96, 11, 5, 4, 0, 63, 51,225, 63, 51,225, 17, 57, 47, 94, 93, 93, 93,225, 57, 1, 16,246,225, 93, 16,206, + 50, 47, 18, 57, 57, 47, 47, 43, 18, 57,225, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, + 2, 51, 51, 21, 35, 34, 14, 2, 21, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3,156, 59, +115,169,109, 72,123,105, 90, 38, 92, 75,162,103, 57, 95, 68, 38, 44, 87,130, 87,195,191, 93,146,101, 53,170,164,108,204, 83, 83, +192,128,128,195,131, 66, 49, 95,137, 87, 74,120, 84, 45, 4, 96, 79,133, 97, 54, 24, 41, 54, 31,125, 54, 67, 30, 58, 83, 54, 62, +100, 72, 39,151, 33, 67,101, 67,137,142, 49, 43,170, 38, 37, 60,111,156, 96, 72,123, 94, 61, 11, 6, 12, 57, 88,119, 0, 0, 1, + 0, 92,255,236, 3,106, 4, 94, 0, 55, 0,109,180, 50, 70, 30, 1, 35,184,255,192, 64, 61, 23, 26, 72, 35, 1, 35, 1, 24, 43, + 15, 57,208, 57,224, 57,240, 57, 3,143, 57, 1, 64, 57, 1, 5, 71, 24, 86, 56, 29, 2, 80,239, 55, 1,169, 55,185, 55, 2, 15, + 55, 31, 55, 47, 55, 3, 6, 55, 55, 10, 47, 80, 44, 40, 16, 10, 80, 15, 19, 22, 0, 63, 51,225, 63, 51,225, 18, 57, 47, 94, 93, + 93, 93,225, 57, 1, 16,246,225, 93, 93, 93, 16,206, 50, 17, 57, 57, 47, 47, 43, 18, 57,225, 49, 48, 1, 21, 35, 34, 6, 21, 20, + 30, 2, 51, 50, 62, 2, 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, + 38, 35, 34, 6, 21, 20, 30, 2, 51, 2,158,129,138,133, 41, 70, 96, 55, 51, 97, 87, 77, 30, 60,175,115,110,162,107, 53, 40, 67, + 89, 48, 43, 73, 53, 30, 58,105,144, 86, 90,162, 80, 63, 75,131, 71,102,109, 38, 68, 95, 57, 2,135,153, 91, 94, 51, 69, 42, 18, + 14, 22, 30, 16,162, 29, 40, 48, 86,120, 71, 61, 91, 64, 41, 13, 11, 14, 41, 59, 77, 50, 70,109, 74, 38, 37, 39,147, 34, 38, 77, + 77, 45, 64, 39, 18, 0,255,255, 0, 0,254,109, 5, 47, 5,182, 2, 38, 1,181, 0, 0, 1, 7, 3,128, 3,184, 0, 0, 0, 13, +180, 1, 1, 49, 49, 0, 1, 16, 60, 17, 53, 0, 53, 0,255,255, 0, 16,254,109, 4, 76, 4, 74, 2, 38, 1,213, 0, 0, 1, 7, + 3,129, 2,213, 0, 0, 0, 13,180, 1, 1, 38, 38, 0, 1, 16, 60, 17, 53, 0, 53, 0,255,255, 0, 0,254,152, 4,221, 5,188, + 2, 38, 0, 36, 0, 0, 1, 7, 2,103, 4,211, 0, 0, 0, 19, 64, 11, 2, 24, 20, 39, 2, 0, 21, 27, 4, 7, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 94,254,152, 3,156, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 2,103, 4,111, 0, 0, 0, 19, 64, 11, + 2, 54, 23, 39, 2, 13, 51, 57, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,225, 2, 38, 0, 36, + 0, 0, 1, 7, 2,102, 4,209, 1, 82, 0, 19, 64, 11, 2, 27, 5, 38, 2, 33, 42, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 94,255,236, 3,156, 6,143, 2, 38, 0, 68, 0, 0, 1, 7, 2,102, 4,117, 0, 0, 0, 19, 64, 11, 2, 57, 17, 38, + 2, 54, 72, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,209, 2, 38, 0, 36, 0, 0, 1, 7, + 3,119, 4,203, 1, 82, 0, 25,182, 3, 2, 21, 5, 38, 3, 2,184,255,255,180, 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0, 94,255,236, 4, 71, 6,127, 2, 38, 0, 68, 0, 0, 1, 7, 3,119, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, + 51, 17, 38, 3, 2, 51, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,209, 2, 38, + 0, 36, 0, 0, 1, 7, 3,120, 4,203, 1, 82, 0, 25,182, 3, 2, 29, 5, 38, 3, 2,184,255,255,180, 37, 29, 4, 7, 37, 1, + 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 18,255,236, 3,156, 6,127, 2, 38, 0, 68, 0, 0, 1, 7, 3,120, 4,137, 0, 0, + 0, 23, 64, 13, 3, 2, 59, 17, 38, 3, 2, 51, 67, 59, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, + 4,221, 8, 74, 2, 38, 0, 36, 0, 0, 1, 7, 3,121, 4,203, 1, 82, 0, 25,182, 3, 2, 21, 5, 38, 3, 2,184,255,255,180, + 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 4, 6, 6,248, 2, 38, 0, 68, 0, 0, 1, 7, + 3,121, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 51, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 0, 0, 0, 4,221, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,122, 4,203, 1, 82, 0, 25,182, 3, 2, 29, 5, 38, + 3, 2,184,255,255,180, 37, 29, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 16, 2, 38, + 0, 68, 0, 0, 1, 7, 3,122, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 59, 17, 38, 3, 2, 11, 59, 51, 12, 34, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 0,254,152, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 0, 39, 1, 75, 0, 31, 1, 82, 1, 7, + 2,103, 4,211, 0, 0, 0, 37, 64, 16, 3, 45, 20, 39, 2, 21, 5, 38, 3, 0, 42, 48, 4, 7, 37, 2,184,255,255,180, 29, 21, + 4, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0, 94,254,152, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 0, 38, + 1, 75,212, 0, 1, 7, 2,103, 4,111, 0, 0, 0, 34, 64, 22, 3, 75, 23, 39, 2, 51, 17, 38, 3, 13, 72, 78, 12, 34, 37, 2, + 37, 59, 51, 12, 34, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 0, 0, 0, 4,221, 8, 19, 2, 38, 0, 36, 0, 0, + 1, 7, 3,123, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 38, 5, 38, 3, 2, 0, 41, 33, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0, 94,255,236, 3,156, 6,193, 2, 38, 0, 68, 0, 0, 1, 7, 3,123, 4,123, 0, 0, 0, 23, 64, 13, 3, 2, + 68, 17, 38, 3, 2, 30, 71, 63, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 8, 19, 2, 38, + 0, 36, 0, 0, 1, 7, 3,124, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 38, 5, 38, 3, 2, 0, 41, 33, 4, 7, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 6,193, 2, 38, 0, 68, 0, 0, 1, 7, 3,124, 4,123, 0, 0, 0, 23, + 64, 13, 3, 2, 68, 17, 38, 3, 2, 30, 71, 63, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, + 8, 88, 2, 38, 0, 36, 0, 0, 1, 7, 3,125, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 0, 29, 21, 4, 7, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 6, 2, 38, 0, 68, 0, 0, 1, 7, 3,125, 4,123, + 0, 0, 0, 23, 64, 13, 3, 2, 56, 17, 38, 3, 2, 30, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, + 0, 0, 4,221, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,126, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 0, + 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 16, 2, 38, 0, 68, 0, 0, 1, 7, + 3,126, 4,123, 0, 0, 0, 23, 64, 13, 3, 2, 56, 17, 38, 3, 2, 30, 80, 94, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 0,254,152, 4,221, 7, 91, 2, 38, 0, 36, 0, 0, 0, 39, 1, 78, 0, 33, 1,109, 1, 7, 2,103, 4,211, 0, 0, + 0, 34, 64, 22, 3, 46, 20, 39, 2, 26, 5, 38, 3, 0, 43, 49, 4, 7, 37, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 43, 53, 0, + 43, 53, 43, 53,255,255, 0, 94,254,152, 3,156, 5,238, 2, 38, 0, 68, 0, 0, 0, 38, 1, 78,212, 0, 1, 7, 2,103, 4,111, + 0, 0, 0, 34, 64, 22, 3, 76, 23, 39, 2, 56, 17, 38, 3, 13, 73, 79, 12, 34, 37, 2, 30, 61, 51, 12, 34, 37, 1, 43, 53, 43, + 53, 0, 43, 53, 43, 53,255,255, 0,199,254,152, 3,190, 5,182, 2, 38, 0, 40, 0, 0, 1, 7, 2,103, 4,170, 0, 0, 0, 19, + 64, 11, 1, 15, 20, 39, 1, 3, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,254,152, 3,225, 4, 94, 2, 38, + 0, 72, 0, 0, 1, 7, 2,103, 4,190, 0, 0, 0, 19, 64, 11, 2, 43, 23, 39, 2, 48, 40, 46, 5, 15, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,199, 0, 0, 3,190, 7,225, 2, 38, 0, 40, 0, 0, 1, 7, 2,102, 4,145, 1, 82, 0, 19, 64, 11, 1, 18, + 5, 38, 1, 13, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6,143, 2, 38, 0, 72, 0, 0, + 1, 7, 2,102, 4,152, 0, 0, 0, 19, 64, 11, 2, 46, 17, 38, 2, 45, 61, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,199, 0, 0, 3,190, 7, 53, 2, 38, 0, 40, 0, 0, 1, 7, 1, 82,255,212, 1, 82, 0, 21,180, 1, 20, 5, 38, 1,184,255, +251,180, 21, 35, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,227, 2, 38, 0, 72, 0, 0, 1, 6, + 1, 82,222, 0, 0, 19, 64, 11, 2, 48, 17, 38, 2, 30, 49, 63, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, + 4, 92, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,119, 4,158, 1, 82, 0, 25,182, 2, 1, 12, 5, 38, 2, 1,184,255,253,180, + 20, 12, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 71, 6,127, 2, 38, 0, 72, 0, 0, 1, 7, + 3,119, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 40, 17, 38, 3, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 39, 0, 0, 3,190, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,120, 4,158, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, + 2, 1,184,255,253,180, 28, 20, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 18,255,236, 3,225, 6,127, 2, 38, + 0, 72, 0, 0, 1, 7, 3,120, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 48, 17, 38, 3, 2, 3, 56, 48, 5, 15, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0,199, 0, 0, 4, 27, 8, 74, 2, 38, 0, 40, 0, 0, 1, 7, 3,121, 4,158, 1, 82, 0, 25, +182, 2, 1, 12, 5, 38, 2, 1,184,255,253,180, 20, 12, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, + 4, 6, 6,248, 2, 38, 0, 72, 0, 0, 1, 7, 3,121, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 40, 17, 38, 3, 2, 3, 48, 40, + 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,199, 0, 0, 3,190, 8, 98, 2, 38, 0, 40, 0, 0, 1, 7, 3,122, + 4,158, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, 2, 1,184,255,253,180, 28, 20, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,113,255,236, 3,225, 7, 16, 2, 38, 0, 72, 0, 0, 1, 7, 3,122, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 48, 17, + 38, 3, 2, 3, 56, 48, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,199,254,152, 3,190, 7,115, 2, 38, 0, 40, + 0, 0, 0, 39, 1, 75,255,241, 1, 82, 1, 7, 2,103, 4,170, 0, 0, 0, 37, 64, 16, 2, 36, 20, 39, 1, 12, 5, 38, 2, 3, + 33, 39, 1, 0, 37, 1,184,255,253,180, 20, 12, 1, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0,113,254,152, + 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 0, 38, 1, 75,222, 0, 1, 7, 2,103, 4,170, 0, 0, 0, 34, 64, 22, 3, 64, 23, 39, + 2, 40, 17, 38, 3, 28, 61, 67, 5, 15, 37, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 82, + 0, 0, 2,100, 7,225, 2, 38, 0, 44, 0, 0, 1, 7, 2,102, 3,176, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 19, 33, 12, + 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 98, 0, 0, 1,215, 6,143, 2, 38, 0,243, 0, 0, 1, 7, 2,102, 3, 94, + 0, 0, 0, 19, 64, 11, 1, 10, 17, 38, 1, 19, 25, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254,152, 2,100, + 5,182, 2, 38, 0, 44, 0, 0, 1, 7, 2,103, 3,190, 0, 0, 0, 21,180, 1, 15, 20, 39, 1,184,255,255,180, 12, 18, 1, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,158,254,152, 1,117, 5,229, 2, 38, 0, 76, 0, 0, 1, 7, 2,103, 3,109, 0, 0, + 0, 21,180, 2, 21, 23, 39, 2,184,255,254,180, 18, 24, 4, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 5,113, + 5,205, 2, 38, 0, 50, 0, 0, 1, 7, 2,103, 5, 92, 0, 0, 0, 19, 64, 11, 2, 43, 20, 39, 2, 0, 40, 46, 10, 0, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,113,254,152, 4, 45, 4, 94, 2, 38, 0, 82, 0, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 21, +180, 2, 35, 23, 39, 2,184,255,255,180, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,225, + 2, 38, 0, 50, 0, 0, 1, 7, 2,102, 5, 78, 1, 82, 0, 19, 64, 11, 2, 46, 5, 38, 2, 21, 61, 40, 10, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6,143, 2, 38, 0, 82, 0, 0, 1, 7, 2,102, 4,164, 0, 0, 0, 19, 64, 11, + 2, 38, 17, 38, 2, 19, 53, 32, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,209, 2, 38, 0, 50, + 0, 0, 1, 7, 3,119, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 40, 5, 38, 3, 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0,113,255,236, 4,104, 6,127, 2, 38, 0, 82, 0, 0, 1, 7, 3,119, 4,170, 0, 0, 0, 25,182, 3, + 2, 32, 17, 38, 3, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, + 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,120, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 48, 5, 38, 3, 2, 5, 56, 48, 10, 0, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 51,255,236, 4, 45, 6,127, 2, 38, 0, 82, 0, 0, 1, 7, 3,120, 4,170, + 0, 0, 0, 25,182, 3, 2, 40, 17, 38, 3, 2,184,255,250,180, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0,125,255,236, 5,113, 8, 74, 2, 38, 0, 50, 0, 0, 1, 7, 3,121, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 40, 5, 38, 3, + 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6,248, 2, 38, 0, 82, 0, 0, + 1, 7, 3,121, 4,170, 0, 0, 0, 25,182, 3, 2, 32, 17, 38, 3, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, 8, 98, 2, 38, 0, 50, 0, 0, 1, 7, 3,122, 5, 88, 1, 82, 0, 23, 64, 13, + 3, 2, 48, 5, 38, 3, 2, 5, 56, 48, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 7, 16, + 2, 38, 0, 82, 0, 0, 1, 7, 3,122, 4,170, 0, 0, 0, 25,182, 3, 2, 40, 17, 38, 3, 2,184,255,250,180, 48, 40, 10, 0, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,254,152, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 0, 39, 1, 75, 0,174, + 1, 82, 1, 7, 2,103, 5, 92, 0, 0, 0, 34, 64, 22, 3, 64, 20, 39, 2, 40, 5, 38, 3, 0, 61, 67, 10, 0, 37, 2, 5, 48, + 40, 10, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,113,254,152, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 0, 38, + 1, 75,251, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 40, 64, 9, 3, 56, 23, 39, 2, 32, 17, 38, 3,184,255,255,181, 53, 59, 10, + 0, 37, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,125,255,236, 6, 37, 7,115, + 2, 38, 2, 95, 0, 0, 1, 7, 0,118, 1, 6, 1, 82, 0, 19, 64, 11, 2, 65, 5, 38, 2, 2, 53, 59, 19, 1, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,113,255,236, 4,244, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 21,180, 2, 58, 17, + 38, 2,184,255,235,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7,115, 2, 38, 2, 95, + 0, 0, 1, 7, 0, 67, 0, 84, 1, 82, 0, 21,180, 2, 53, 5, 38, 2,184,255, 81,180, 59, 53, 19, 1, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,113,255,236, 4,244, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 21,180, 2, 58, 17, 38, 2, +184,255,235,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7,225, 2, 38, 2, 95, 0, 0, + 1, 7, 2,102, 5, 78, 1, 82, 0, 21,180, 2, 60, 5, 38, 2,184,255,188,180, 74, 53, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,113,255,236, 4,244, 6,143, 2, 38, 2, 96, 0, 0, 1, 7, 2,102, 4,164, 0, 0, 0, 21,180, 2, 52, 17, 38, 2, +184,255,176,180, 66, 45, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7, 53, 2, 38, 2, 95, 0, 0, + 1, 7, 1, 82, 0,125, 1, 82, 0, 21,180, 2, 61, 5, 38, 2,184,255,150,180, 62, 76, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,113,255,236, 4, 45, 5,227, 2, 38, 0, 82, 0, 0, 1, 6, 1, 82,226, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255, +253,180, 41, 55, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 6, 37, 6, 20, 2, 38, 2, 95, 0, 0, 1, 7, + 2,103, 5, 92, 0, 0, 0, 21,180, 2, 56, 20, 39, 2,184,255,167,180, 53, 59, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,113,254,152, 4,244, 4,242, 2, 38, 2, 96, 0, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 21,180, 2, 48, 23, 39, 2,184,255, +155,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,254,152, 4,221, 5,184, 2, 38, 0, 56, 0, 0, 1, 7, + 2,103, 5, 47, 0, 0, 0, 19, 64, 11, 1, 27, 20, 39, 1, 0, 24, 30, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164, +254,152, 4, 8, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 2,103, 4,184, 0, 0, 0, 21,180, 1, 30, 23, 39, 1,184,255,254,180, + 27, 33, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 7,225, 2, 38, 0, 56, 0, 0, 1, 7, 2,102, + 5, 29, 1, 82, 0, 19, 64, 11, 1, 30, 5, 38, 1, 17, 45, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, + 4, 8, 6,143, 2, 38, 0, 88, 0, 0, 1, 7, 2,102, 4,166, 0, 0, 0, 19, 64, 11, 1, 33, 17, 38, 1, 14, 48, 27, 12, 25, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 6, 78, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0,118, 0,197, 1, 82, + 0, 21,180, 1, 49, 5, 38, 1,184,255,144,180, 37, 43, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, + 6, 33, 2, 38, 2, 98, 0, 0, 1, 6, 0,118, 96, 0, 0, 17,177, 1, 1,184,255,159,180, 40, 46, 12, 33, 37, 1, 43, 53, 0, + 53, 0,255,255, 0,184,255,236, 6, 78, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0, 67, 0, 61, 1, 82, 0, 21,180, 1, 37, 5, + 38, 1,184,255, 8,180, 43, 37, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, 6, 33, 2, 38, 2, 98, + 0, 0, 1, 6, 0, 67,163, 0, 0, 17,177, 1, 1,184,254,226,180, 46, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184, +255,236, 6, 78, 7,225, 2, 38, 2, 97, 0, 0, 1, 7, 2,102, 5, 29, 1, 82, 0, 17,177, 1, 1,184,255, 89,180, 58, 37, 24, + 8, 37, 1, 43, 53, 0, 53, 0,255,255, 0,164,255,236, 5,121, 6,143, 2, 38, 2, 98, 0, 0, 1, 7, 2,102, 4,166, 0, 0, + 0, 17,177, 1, 1,184,255, 86,180, 61, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184,255,236, 6, 78, 7, 53, 2, 38, + 2, 97, 0, 0, 1, 7, 1, 82, 0, 96, 1, 82, 0, 21,180, 1, 45, 5, 38, 1,184,255, 71,180, 46, 60, 24, 8, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, 5,227, 2, 38, 2, 98, 0, 0, 1, 6, 1, 82,243, 0, 0, 17,177, 1, 1,184, +255, 78,180, 49, 63, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184,254,152, 6, 78, 6, 20, 2, 38, 2, 97, 0, 0, 1, 7, + 2,103, 5, 47, 0, 0, 0, 21,180, 1, 40, 20, 39, 1,184,255, 72,180, 37, 43, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,164,254,152, 5,121, 4,242, 2, 38, 2, 98, 0, 0, 1, 7, 2,103, 4,184, 0, 0, 0, 21,180, 1, 43, 23, 39, 1,184,255, + 69,180, 40, 46, 12, 33, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,254,152, 4, 55, 5,182, 2, 38, 0, 60, 0, 0, 1, 7, + 2,103, 4,127, 0, 0, 0, 21,180, 1, 12, 20, 39, 1,184,255,255,180, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 10,254, 20, 3,223, 4, 74, 2, 38, 0, 92, 0, 0, 1, 7, 2,103, 5,139, 0, 0, 0, 17,177, 1, 1,184, 1, 50,180, 35, + 41, 0, 15, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,225, 2, 38, 0, 60, 0, 0, 1, 7, 2,102, 4,113, + 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 20, 30, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, + 6,143, 2, 38, 0, 92, 0, 0, 1, 7, 2,102, 4, 74, 0, 0, 0, 19, 64, 11, 1, 41, 17, 38, 1, 20, 56, 35, 0, 15, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 53, 2, 38, 0, 60, 0, 0, 1, 7, 1, 82,255,179, 1, 82, 0, 19, + 64, 11, 1, 17, 5, 38, 1, 1, 18, 32, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 5,227, 2, 38, + 0, 92, 0, 0, 1, 6, 1, 82,140, 0, 0, 19, 64, 11, 1, 43, 17, 38, 1, 1, 44, 58, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,113,254,188, 4,158, 6, 20, 2, 38, 0,211, 0, 0, 1, 7, 0, 66, 0,180, 0, 0, 0, 14,185, 0, 2,255,210,180, + 58, 57, 11, 35, 37, 1, 43, 53, 0, 2,251,219, 4,217,254,186, 6, 33, 0, 13, 0, 27, 0, 45, 64, 25, 20, 14, 14, 7, 64, 80, + 0, 1, 63, 0, 79, 0, 2, 0, 21, 7,146,128, 15, 15, 1, 95, 1, 2, 1, 0, 47, 93, 51, 26,237, 50, 1, 47, 93, 93, 26,205, + 57, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23, 5, 35, 46, 3, 39, 53, 51, 30, 3, 23,254,186,100, 35, 81, 77, 63, + 16,198, 16, 42, 47, 48, 21,254,150,100, 35, 82, 77, 63, 16,199, 16, 42, 47, 48, 21, 4,217, 28, 83, 88, 81, 27, 21, 35, 80, 81, + 76, 29, 27, 28, 83, 88, 81, 27, 21, 35, 80, 81, 76, 29, 0, 2,252,106, 4,217,255,190, 6,127, 0, 16, 0, 28, 0, 82, 64, 49, + 13, 12, 4, 16, 23, 1, 23, 64, 47, 28, 63, 28, 79, 28, 3, 28, 4, 4, 28, 47, 0, 95, 0,143, 0,159, 0, 4, 0,192, 8, 22, + 27, 27, 4,127, 12,143, 12, 2, 12,128, 0, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 93, 50, 57, 47,205, 1, 47, 26,204, + 93, 57, 57, 61, 47, 24, 47, 93, 26,205, 93, 17, 51, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, 54, 55, 51, 22, 22, + 23, 39, 62, 3, 55, 51, 21, 6, 6, 7, 35,254,217,100, 51,108, 52, 54,106, 51,101, 51,117, 48,192, 48,116, 51, 78, 20, 33, 29, + 29, 16,180, 45,106, 55,101, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59,194, 25, 45, 46, 52, 33, 21, 60,103, 43, + 0, 2,251,137, 4,217,254,221, 6,127, 0, 16, 0, 28, 0, 74, 64, 42, 4, 3, 12, 31, 22, 1, 22, 64, 28, 12, 12, 28, 47, 8, + 95, 8,143, 8,159, 8, 4, 8,192, 0, 22, 18, 18, 12,127, 3,143, 3, 2, 3,128, 16, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, + 26,205, 93, 50, 57, 47,205, 1, 47, 26,204, 93, 57, 57, 61, 47, 24, 47, 26,205, 93, 17, 51, 51, 49, 48, 1, 54, 54, 55, 51, 22, + 22, 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 55, 35, 38, 38, 39, 53, 51, 30, 3, 23,252,111, 51,116, 48,192, 48,116, 51,100, 51, +106, 54, 53,107, 51,100, 77,100, 56,106, 45,180, 16, 29, 30, 32, 20, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34, +195, 43,103, 60, 21, 33, 52, 46, 45, 25, 0, 2,252,106, 4,217,255,125, 6,248, 0, 16, 0, 40, 0, 94, 64, 56, 22, 25, 25, 32, + 6, 14, 72, 25, 28, 17,128, 47, 35, 63, 35, 79, 35, 3, 35, 4, 4, 35, 47, 0, 95, 0,143, 0,159, 0, 4, 0,192, 8, 22, 25, + 25, 31, 38, 24, 24, 4,127, 12,143, 12, 2, 12,128, 0, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 93, 50, 57, 47,204, 50, + 57, 17, 51, 1, 47, 26,204, 93, 57, 57, 61, 47, 24, 47, 93, 26,205, 50, 57, 43, 17, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, + 35, 53, 54, 54, 55, 51, 22, 22, 23, 19, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22, +254,217,100, 51,108, 52, 54,106, 51,101, 51,117, 48,192, 48,116, 51,164, 20, 34, 46, 25, 6, 86, 10, 55, 65, 57, 43, 22, 39, 11, + 11, 38, 31, 99,100, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59, 1,118, 29, 43, 30, 21, 6, 81,131, 9, 31, 37, + 37, 25, 3, 3, 82, 3, 3, 69, 0, 2,252,100, 4,217,254,233, 7, 16, 0, 16, 0, 44, 0, 97, 64, 59, 4, 3, 12, 12, 0, 40, + 40, 47, 8, 95, 8,143, 8,159, 8, 4, 8, 0,192, 26, 26, 0, 39, 22,142,207, 31,223, 31,239, 31, 3, 31, 64, 9, 13, 72, 31, + 31, 36,142, 25, 17, 17, 12,127, 3,143, 3, 2, 3,128, 16, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,205, 93, 50, 50, 47, 51, +225, 51, 47, 43, 93,225, 51, 1, 47, 51, 47, 26, 16,204, 93, 50, 47, 17, 57, 61, 47, 51, 51, 49, 48, 1, 54, 54, 55, 51, 22, 22, + 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, +252,111, 51,116, 48,192, 48,116, 51,100, 51,106, 54, 53,107, 51,100, 1,190, 36, 71, 69, 64, 28, 40, 42, 14, 93, 5, 29, 48, 65, + 42, 37, 74, 69, 62, 26, 40, 42, 14, 92, 5, 28, 48, 65, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34, 1, 90, 28, + 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 2,252,115, 4,217,254,205, 6,193, 0, 11, 0, 31, + 0, 50, 64, 25, 6,128, 11, 11, 31, 47, 12, 1, 12,192, 21, 20, 5, 11, 11, 31, 20,128, 26, 15, 17, 95, 17, 2, 17, 0, 47, 93, + 51, 26,205, 50, 50, 47,204, 1, 47, 51, 26,204, 93, 50, 57, 47, 26,205, 49, 48, 1, 62, 3, 55, 51, 21, 6, 6, 7, 35, 37, 14, + 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55,253, 94, 20, 32, 30, 29, 16,180, 45,106, 55,101, 1,111, 5, 43, 77,110, 70, +146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 5,248, 25, 44, 46, 53, 33, 21, 60,103, 44, 6, 60, 99, 69, 38,140,126, + 43, 50, 25, 7, 9, 27, 49, 40, 0, 2,252,115, 4,217,254,205, 6,193, 0, 11, 0, 31, 0, 56, 64, 30, 5,128, 11, 64, 19, 22, + 72, 11, 11, 31, 47, 12, 1, 12,192, 21, 20, 5, 0, 0, 31, 20,128, 26, 15, 17, 95, 17, 2, 17, 0, 47, 93, 51, 26,205, 50, 50, + 47,205, 1, 47, 51, 26,204, 93, 50, 57, 47, 43, 26,205, 49, 48, 1, 35, 38, 38, 39, 53, 51, 30, 3, 23, 23, 14, 3, 35, 34, 38, + 39, 51, 30, 3, 51, 50, 62, 2, 55,253,209,100, 56,106, 45,180, 16, 29, 30, 32, 20,252, 5, 43, 77,110, 70,146,145, 6,108, 4, + 27, 48, 68, 44, 36, 65, 51, 33, 5, 5,221, 44,103, 60, 21, 33, 53, 46, 44, 25, 21, 60, 99, 69, 38,140,126, 43, 50, 25, 7, 9, + 27, 49, 40, 0, 0, 2,252,115, 4,217,254,205, 7, 6, 0, 19, 0, 42, 0, 66, 64, 33, 25, 28, 28, 31, 20,128, 37, 37, 19, 47, + 0, 1, 0, 9, 8, 25, 28, 28, 34, 40,192, 27, 27, 19, 8,128, 14, 15, 5, 95, 5, 2, 5, 0, 47, 93, 51, 26,205, 50, 57, 47, + 26,204, 50, 57, 17, 51, 1, 47, 51,204, 93, 50, 57, 47, 26,204, 50, 57, 17, 51, 49, 48, 1, 14, 3, 35, 34, 38, 39, 51, 30, 3, + 51, 50, 62, 2, 55, 39, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, 53, 54, 51, 50, 22,254,205, 5, 43, 77, +110, 70,146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 43, 20, 34, 46, 25, 6, 86, 10, 56, 65, 57, 44, 21, 39, 11, 21, + 58,100, 99, 5,227, 60, 99, 69, 38,140,126, 43, 50, 25, 7, 9, 27, 49, 40,150, 29, 43, 31, 20, 6, 41, 90, 9, 32, 37, 37, 24, + 3, 3, 82, 6, 69, 0, 0, 2,252,100, 4,217,254,233, 7, 16, 0, 19, 0, 47, 0, 72, 64, 39, 28, 29, 29, 8, 42, 43, 43, 19, + 47, 0, 1, 0,192, 9, 8, 42, 25,207, 34,223, 34,239, 34, 3, 34, 39, 28, 20, 20, 19, 8,128, 14, 15, 5, 95, 5, 2, 5, 0, + 47, 93, 51, 26,205, 50, 50, 47, 51, 51,205, 93, 50, 50, 1, 47, 51, 26,204, 93, 50, 50, 47, 51, 17, 51, 47, 51, 49, 48, 1, 14, + 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, + 51, 14, 3,254,205, 5, 43, 77,110, 70,146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 47, 36, 71, 69, 64, 28, 40, 42, + 14, 93, 5, 29, 48, 65, 42, 37, 74, 69, 62, 26, 40, 42, 14, 92, 5, 28, 48, 65, 5,227, 60, 99, 69, 38,140,126, 43, 50, 25, 7, + 9, 27, 49, 40, 80, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 1, 0, 49,254, 66, 1,113, + 0, 0, 0, 20, 0, 24, 64, 9, 15,128, 0, 8, 8, 2, 18, 11, 2, 0, 47, 47, 51, 1, 47, 51, 47, 51, 26,204, 49, 48, 23, 52, + 39, 51, 30, 3, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54,219,139,129, 26, 57, 47, 30,101,100, 29, 64, 26, 14, 45, 25, + 34, 52,238,105,133, 19, 52, 64, 75, 42, 90,104, 8, 8,113, 4, 5, 43, 0, 1, 0, 16,254,109, 1,119, 0,166, 0, 17, 0, 18, +182, 9, 1, 16, 13, 6,250, 0, 0, 47, 63, 51, 1, 47, 51,196, 49, 48, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, + 53, 17, 1,119, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,166,254,217, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, + 60, 0, 0, 1, 0, 16,254,109, 1,119, 0,154, 0, 17, 0, 18,182, 9, 1, 16, 13, 6,250, 0, 0, 47, 63, 51, 1, 47, 51,196, + 49, 48, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 17, 1,119, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, + 50,154,254,229, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, 48, 0, 0, 0, 0, 0, 0, 27, 1, 74, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 0, 52, 0, 1, 0, 0, 0, 0, 0, 2, 0, 7, 0, 62, 0, 1, + 0, 0, 0, 0, 0, 3, 0, 21, 0, 69, 0, 1, 0, 0, 0, 0, 0, 4, 0, 10, 0, 52, 0, 1, 0, 0, 0, 0, 0, 5, 0, 12, + 0, 90, 0, 1, 0, 0, 0, 0, 0, 6, 0, 9, 0,102, 0, 1, 0, 0, 0, 0, 0, 7, 0, 78, 0,111, 0, 1, 0, 0, 0, 0, + 0, 8, 0, 20, 0,189, 0, 1, 0, 0, 0, 0, 0, 10, 0,103, 0,209, 0, 1, 0, 0, 0, 0, 0, 13, 0, 46, 1, 56, 0, 1, + 0, 0, 0, 0, 0, 14, 0, 42, 1,102, 0, 1, 0, 0, 0, 0, 0, 18, 0, 10, 0, 52, 0, 3, 0, 1, 4, 9, 0, 0, 0,104, + 1,144, 0, 3, 0, 1, 4, 9, 0, 1, 0, 20, 1,248, 0, 3, 0, 1, 4, 9, 0, 2, 0, 14, 2, 12, 0, 3, 0, 1, 4, 9, + 0, 3, 0, 42, 2, 26, 0, 3, 0, 1, 4, 9, 0, 4, 0, 20, 1,248, 0, 3, 0, 1, 4, 9, 0, 5, 0, 44, 2, 68, 0, 3, + 0, 1, 4, 9, 0, 6, 0, 18, 2,112, 0, 3, 0, 1, 4, 9, 0, 7, 0,156, 2,130, 0, 3, 0, 1, 4, 9, 0, 8, 0, 40, + 3, 30, 0, 3, 0, 1, 4, 9, 0, 10, 0,206, 3, 70, 0, 3, 0, 1, 4, 9, 0, 11, 0, 56, 4, 20, 0, 3, 0, 1, 4, 9, + 0, 12, 0, 92, 4, 76, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 4,168, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 5, 4, 68,105, +103,105,116,105,122,101,100, 32,100, 97,116, 97, 32, 99,111,112,121,114,105,103,104,116, 32,169, 32, 50, 48, 48, 55, 44, 32, 71, +111,111,103,108,101, 32, 67,111,114,112,111,114, 97,116,105,111,110, 46, 68,114,111,105,100, 32, 83, 97,110,115, 82,101,103,117, +108, 97,114, 65,115, 99,101,110,100,101,114, 32, 45, 32, 68,114,111,105,100, 32, 83, 97,110,115, 86,101,114,115,105,111,110, 32, + 49, 46, 48, 48, 68,114,111,105,100, 83, 97,110,115, 68,114,111,105,100, 32,105,115, 32, 97, 32,116,114, 97,100,101,109, 97,114, +107, 32,111,102, 32, 71,111,111,103,108,101, 32, 97,110,100, 32,109, 97,121, 32, 98,101, 32,114,101,103,105,115,116,101,114,101, +100, 32,105,110, 32, 99,101,114,116, 97,105,110, 32,106,117,114,105,115,100,105, 99,116,105,111,110,115, 46, 65,115, 99,101,110, +100,101,114, 32, 67,111,114,112,111,114, 97,116,105,111,110, 68,114,111,105,100, 32, 83, 97,110,115, 32,105,115, 32, 97, 32,104, +117,109, 97,110,105,115,116, 32,115, 97,110,115, 32,115,101,114,105,102, 32,116,121,112,101,102, 97, 99,101, 32,100,101,115,105, +103,110,101,100, 32,102,111,114, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101,115, 32, 97,110,100, 32,101,108,101, + 99,116,114,111,110,105, 99, 32, 99,111,109,109,117,110,105, 99, 97,116,105,111,110, 46, 76,105, 99,101,110,115,101,100, 32,117, +110,100,101,114, 32,116,104,101, 32, 65,112, 97, 99,104,101, 32, 76,105, 99,101,110,115,101, 44, 32, 86,101,114,115,105,111,110, + 32, 50, 46, 48,104,116,116,112, 58, 47, 47,119,119,119, 46, 97,112, 97, 99,104,101, 46,111,114,103, 47,108,105, 99,101,110,115, +101,115, 47, 76, 73, 67, 69, 78, 83, 69, 45, 50, 46, 48, 0, 68, 0,105, 0,103, 0,105, 0,116, 0,105, 0,122, 0,101, 0,100, + 0, 32, 0,100, 0, 97, 0,116, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, + 0,169, 0, 32, 0, 50, 0, 48, 0, 48, 0, 55, 0, 44, 0, 32, 0, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 67, + 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0, 68, 0,114, 0,111, 0,105, 0,100, + 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 82, 0,101, 0,103, 0,117, 0,108, 0, 97, 0,114, 0, 65, 0,115, 0, 99, 0,101, + 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 45, 0, 32, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, + 0,115, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 49, 0, 46, 0, 48, 0, 48, 0, 32, 0, 98, 0,117, + 0,105, 0,108, 0,100, 0, 32, 0, 49, 0, 49, 0, 50, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 83, 0, 97, 0,110, 0,115, + 0, 68, 0,114, 0,111, 0,105, 0,100, 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, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 97, + 0,110, 0,100, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,114, 0,101, 0,103, 0,105, 0,115, 0,116, + 0,101, 0,114, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 99, 0,101, 0,114, 0,116, 0, 97, 0,105, 0,110, 0, 32, + 0,106, 0,117, 0,114, 0,105, 0,115, 0,100, 0,105, 0, 99, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 46, 0, 65, 0,115, + 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, + 0,111, 0,110, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0,105, 0,115, 0, 32, + 0, 97, 0, 32, 0,104, 0,117, 0,109, 0, 97, 0,110, 0,105, 0,115, 0,116, 0, 32, 0,115, 0, 97, 0,110, 0,115, 0, 32, + 0,115, 0,101, 0,114, 0,105, 0,102, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0, 32, 0,100, + 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,100, 0, 32, 0,102, 0,111, 0,114, 0, 32, 0,117, 0,115, 0,101, 0,114, + 0, 32, 0,105, 0,110, 0,116, 0,101, 0,114, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, + 0,101, 0,108, 0,101, 0, 99, 0,116, 0,114, 0,111, 0,110, 0,105, 0, 99, 0, 32, 0, 99, 0,111, 0,109, 0,109, 0,117, + 0,110, 0,105, 0, 99, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, + 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, + 0, 46, 0, 99, 0,111, 0,109, 0, 47, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, + 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, 0, 99, 0,111, 0,109, + 0, 47, 0,116, 0,121, 0,112, 0,101, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,114, 0,115, 0, 46, 0,104, + 0,116, 0,109, 0,108, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 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, 65, 0,112, 0, 97, 0, 99, 0,104, 0,101, 0, 32, 0, 76, 0,105, 0, 99, + 0,101, 0,110, 0,115, 0,101, 0, 44, 0, 32, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50, 0, 46, + 0, 48, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,112, 0, 97, 0, 99, + 0,104, 0,101, 0, 46, 0,111, 0,114, 0,103, 0, 47, 0,108, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0,115, 0, 47, + 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, +255,102, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 1, 2, 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, 3, 0,138, 1, 4, 0,131, + 0,147, 0,242, 0,243, 0,141, 0,151, 0,136, 1, 5, 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, 6, + 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 0,253, 0,254, 1, 12, 1, 13, 1, 14, 1, 15, 0,255, 1, 0, 1, 16, 1, 17, 1, 18, + 1, 19, 1, 20, 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 0,248, 0,249, 1, 32, + 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, + 0,215, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, + 0,226, 0,227, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, + 1, 78, 0,176, 0,177, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 0,251, 0,252, 0,228, + 0,229, 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, 1,106, 1,107, 1,108, 1,109, 1,110, 0,187, 1,111, 1,112, 1,113, 1,114, 0,230, 0,231, 1,115, 0,166, + 1,116, 1,117, 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 0,216, 0,225, 1,124, 0,219, 0,220, 0,221, 0,224, 0,217, + 0,223, 1,125, 1,126, 1,127, 1,128, 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, 0,155, 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, 0,178, + 0,179, 2, 42, 2, 43, 0,182, 0,183, 0,196, 2, 44, 0,180, 0,181, 0,197, 0,130, 0,194, 0,135, 0,171, 0,198, 2, 45, + 2, 46, 0,190, 0,191, 2, 47, 0,188, 2, 48, 0,247, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 0,140, 0,159, 2, 55, + 2, 56, 2, 57, 2, 58, 2, 59, 0,152, 2, 60, 0,154, 0,153, 0,239, 0,165, 0,146, 0,156, 0,167, 0,143, 0,148, 0,149, + 0,185, 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, 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, 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, + 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, 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, 5, 46, +110,117,108,108, 7,117,110,105, 48, 48, 65, 68, 9,111,118,101,114,115, 99,111,114,101, 14,112,101,114,105,111,100, 99,101,110, +116,101,114,101,100, 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, 4, 67,100,111,116, 4, 99,100,111,116, 6, 68, 99, 97,114,111,110, 6,100, 99, 97, +114,111,110, 6, 68, 99,114,111, 97,116, 6,100, 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, 4, 71,100,111,116, + 4,103,100,111,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, 10, 73,100, +111,116, 97, 99, 99,101,110,116, 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, 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, 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, 6,109, 97, 99,114,111,110, 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, 7,117,110,105, 48, 51, 65, 57, 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, + 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, 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, 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, + 48, 49, 48, 57, 9, 97,102,105,105, 49, 48, 49, 49, 48, 9, 97,102,105,105, 49, 48, 49, 57, 51, 9, 97,102,105,105, 49, 48, 48, + 53, 48, 9, 97,102,105,105, 49, 48, 48, 57, 56, 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, 6, 89,103,114, + 97,118,101, 6,121,103,114, 97,118,101, 9, 97,102,105,105, 48, 48, 50, 48, 56, 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, 6,109,105,110,117,116,101, 6,115,101, 99,111,110,100, 9,101, +120, 99,108, 97,109,100, 98,108, 9,110,115,117,112,101,114,105,111,114, 9, 97,102,105,105, 48, 56, 57, 52, 49, 6,112,101,115, +101,116, 97, 4, 69,117,114,111, 9, 97,102,105,105, 54, 49, 50, 52, 56, 9, 97,102,105,105, 54, 49, 50, 56, 57, 9, 97,102,105, +105, 54, 49, 51, 53, 50, 9,101,115,116,105,109, 97,116,101,100, 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, + 5, 68,101,108,116, 97, 7,117,110,105, 70, 66, 48, 49, 7,117,110,105, 70, 66, 48, 50, 13, 99,121,114,105,108,108,105, 99, 98, +114,101,118,101, 8,100,111,116,108,101,115,115,106, 16, 99, 97,114,111,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 11, 99, +111,109,109, 97, 97, 99, 99,101,110,116, 17, 99,111,109,109, 97, 97, 99, 99,101,110,116,114,111,116, 97,116,101, 12,122,101,114, +111,115,117,112,101,114,105,111,114, 12,102,111,117,114,115,117,112,101,114,105,111,114, 12,102,105,118,101,115,117,112,101,114, +105,111,114, 11,115,105,120,115,117,112,101,114,105,111,114, 13,115,101,118,101,110,115,117,112,101,114,105,111,114, 13,101,105, +103,104,116,115,117,112,101,114,105,111,114, 12,110,105,110,101,115,117,112,101,114,105,111,114, 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, 7,117,110,105, 70, 69, 70, 70, + 7,117,110,105, 70, 70, 70, 67, 7,117,110,105, 70, 70, 70, 68, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 50, 66, 67, + 7,117,110,105, 48, 51, 68, 49, 7,117,110,105, 48, 51, 68, 50, 7,117,110,105, 48, 51, 68, 54, 7,117,110,105, 49, 69, 51, 69, + 7,117,110,105, 49, 69, 51, 70, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105, 49, 70, 52, 68, + 7,117,110,105, 48, 50, 70, 51, 9,100, 97,115,105, 97,111,120,105, 97, 7,117,110,105, 70, 66, 48, 51, 7,117,110,105, 70, 66, + 48, 52, 5, 79,104,111,114,110, 5,111,104,111,114,110, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 51, + 48, 48, 7,117,110,105, 48, 51, 48, 49, 7,117,110,105, 48, 51, 48, 51, 4,104,111,111,107, 8,100,111,116, 98,101,108,111,119, + 7,117,110,105, 48, 52, 48, 48, 7,117,110,105, 48, 52, 48, 68, 7,117,110,105, 48, 52, 53, 48, 7,117,110,105, 48, 52, 53, 68, + 7,117,110,105, 48, 52, 54, 48, 7,117,110,105, 48, 52, 54, 49, 7,117,110,105, 48, 52, 54, 50, 7,117,110,105, 48, 52, 54, 51, + 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, 7,117,110,105, 48, 52, 55, 50, 7,117,110,105, 48, 52, 55, 51, + 7,117,110,105, 48, 52, 55, 52, 7,117,110,105, 48, 52, 55, 53, 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, 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, @@ -5632,364 +4544,1405 @@ char datatoc_bfont_ttf[]= { 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, -}; + 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, 52, 70, 65, + 7,117,110,105, 48, 52, 70, 66, 7,117,110,105, 48, 52, 70, 67, 7,117,110,105, 48, 52, 70, 68, 7,117,110,105, 48, 52, 70, 69, + 7,117,110,105, 48, 52, 70, 70, 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, 49, 48, 7,117,110,105, 48, 53, 49, 49, 7,117,110,105, 48, 53, 49, 50, + 7,117,110,105, 48, 53, 49, 51, 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, 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, 50, 48, 65, 66, 7,117,110,105, 48, 51, 48, 70, 19, 99,105,114, 99,117,109,102, +108,101,120, 97, 99,117,116,101, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,103,114, 97,118,101, 99,111,109, 98, + 18, 99,105,114, 99,117,109,102,108,101,120,104,111,111,107, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,116,105, +108,100,101, 99,111,109, 98, 14, 98,114,101,118,101, 97, 99,117,116,101, 99,111,109, 98, 14, 98,114,101,118,101,103,114, 97,118, +101, 99,111,109, 98, 13, 98,114,101,118,101,104,111,111,107, 99,111,109, 98, 14, 98,114,101,118,101,116,105,108,100,101, 99,111, +109, 98, 16, 99,121,114,105,108,108,105, 99,104,111,111,107,108,101,102,116, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104, +111,111,107, 85, 67, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 76, 67, 0, 0, 0, 0, 2, 0, 5, 0, 2, +255,255, 0, 3, 0, 1, 0, 0, 0, 12, 0, 0, 0, 22, 0, 0, 0, 2, 0, 1, 0, 0, 3,129, 0, 1, 0, 4, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 30, 0, 44, 0, 1,108, 97,116,110, 0, 8, 0, 4, 0, 0, 0, 0,255,255, 0, 1, + 0, 0, 0, 1,107,101,114,110, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 2, 0, 8, 0, 1, 0, 8, 0, 1,165, 58, + 0, 4, 0, 0, 1,240, 3,234, 3,234, 7, 76, 7, 90, 8,212, 7, 90, 9, 50, 10,192, 11, 34, 12, 16, 13, 62, 14, 36, 15, 10, + 15,240, 17,126, 18,172, 19,130, 20,176, 20,222, 25, 96, 25,238, 29,144, 33, 54, 35,104, 39,130, 7, 76, 40,104, 40,104, 40,110, + 40,104, 40,128, 41, 26, 41, 48, 41, 54, 40,104, 40,104, 41, 72, 41, 86, 40,110, 41,212, 41,234, 41,234, 42, 0, 42,218, 42,240, + 7, 76, 43,186, 43,200, 43,214, 46, 36, 46, 36, 43,214, 48,102, 50,172, 11, 34, 52,254, 53,228, 52,254, 52,254, 14, 36, 14, 36, + 14, 36, 14, 36, 54,194, 55, 68, 55, 68, 55, 68, 55, 68, 55, 68, 17,126, 56,158, 56,158, 56,158, 56,158, 57,168, 40,104, 40,104, + 40,104, 40,104, 40,104, 40,104, 41, 72, 40,110, 62, 98, 62, 98, 62, 98, 62, 98, 62,108, 62,122, 62,122, 62,122, 62,122, 62,122, + 41, 72, 62,148, 62,148, 62,148, 62,148, 62,158, 64, 36, 9, 50, 40,104, 9, 50, 40,104, 64, 66, 40,104, 11, 34, 40,110, 40,110, + 40,110, 11, 34, 40,110, 65,212, 40,104, 40,104, 40,104, 66, 82, 40,104, 40,104, 14, 36, 66, 88, 14, 36, 15, 10, 41, 54, 15,240, + 15,240, 15,240, 65,212, 15,240, 15,240, 40,104, 40,104, 40,104, 17,126, 41, 72, 41, 72, 17,126, 41, 72, 41, 72, 40,110, 40,110, + 40,110, 67, 66, 40,110, 68, 76, 68, 76, 65,212, 25, 96, 25, 96, 25, 96, 25, 96, 29,144, 41,234, 35,104, 42,218, 72,194, 39,130, + 39,130, 77, 56, 80, 78, 9, 50, 40,104, 40,110, 81, 28, 81, 74, 81, 88, 81,134, 82, 24, 82, 38, 82,140, 83,202, 84, 40, 85,238, + 88,184, 88,218, 89,244, 90, 10, 90,180, 93,242, 94, 0, 95, 26, 95,244, 96,154,100, 64,100,246,101, 32,101,126,101,176,101,190, +102,112,106, 42,106, 48, 40,104,106, 74,106, 42,106,156,106,162,106,208,106,218,107, 8, 40,104,107,122,107,188,107,226,108, 24, +108, 54,108, 68,108, 90,108, 68,108,108,108,138,108,196,108,214, 41, 72,109, 44,109, 62, 41, 72, 41, 72,109,140,110,110,111,100, +114,182,115, 52,115, 74,115,180,116,146,117,100,118, 42,118,160,120, 86,121,244,124, 26,124,196,125, 74,127,136,128,146,129, 88, +129,242,131, 36,132,126,133,148,134,158,139,232,141,118,142, 32,142,218,143,156,144,150,145, 16,145,146,146, 32,146,150,146,252, +147,130,148, 20,148, 50,148,116,148,170,149, 44,149,162,150, 40,150,178,151, 0,151, 94,152, 32,152,178,153, 36,153,154,153,240, +154, 74, 40,110,154,176,155, 34,155,104, 40,110,155,170,155,184, 40,110, 40,110,156, 42,156, 52,156,186,157, 56,157, 62,157,176, +158, 38,148, 20, 29,144, 41,234, 29,144, 41,234, 29,144, 41,234, 35,104, 42,218,161,144,161,144,161,158,161,158, 9, 50, 9, 50, +164,172,164,238,148,116,131, 36,152, 32,145, 16,150, 40,133,148,151, 0,121,244,121,244,128,146,148,170,128,146,148,170,131, 36, +150, 40,132,126,131, 36,150, 40,139,232,152, 32,139,232,152, 32,152, 32,152, 32,131, 36,150, 40,131, 36,150, 40,131, 36,152, 32, +165, 48,142,218,153,154,145, 16,150, 40,132,126,150, 40,134,158,151, 94,118, 42,142,218,153,154,150, 40,142,218,153,154,128,146, +148,170,128,146,148,170,128,146,148,170,142,218,153,154,134,158,151, 94,118, 42,131, 36,150, 40,133,148,151, 0,134,158,151, 94, +134,158,152, 32,134,158,152, 32,142,218,153,154,142,218,153,154,142,218,153,154,118, 42,131, 36,131, 36,115, 74,128,146,148,170, +118, 42,142,218,153,154,142,218,153,154,142,218,153,154,115, 74,121,244,121,244,148,116,148,116,131, 36,150, 40,131, 36,150, 40, +128,146,148,170,131, 36,150, 40,131, 36,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,139,232,152, 32,139,232, +152, 32,139,232,152, 32,134,158,151, 94,134,158,151, 94,142,218,153,154,128,146,148,170,131, 36,150, 40,139,232,150, 40,142,218, +153,154,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,133,148,151, 0,142,218,153,154, 9, 50, 9, 50, 9, 50, + 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 40,104, 40,104, 40,104, 40,104, 40,104, 40,104, 40,104, + 40,104, 14, 36, 14, 36, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, + 41, 72,164,172,164,172,164,172,164,172,164,172, 25, 96, 25, 96,164,238,164,238,164,238,164,238,164,238, 35,104, 42,218, 35,104, + 42,218, 35,104, 42,218, 0,216, 0, 36,255,174, 0, 44, 0, 41, 0, 55, 0, 82, 0, 57, 0, 82, 0, 58, 0,102, 0, 59, 0, 41, + 0, 60, 0, 82, 0, 61, 0, 41, 0, 70,255,195, 0, 71,255,195, 0, 72,255,195, 0, 74,255,215, 0, 82,255,195, 0, 84,255,195, + 0, 87, 0, 41, 0, 89, 0, 41, 0, 90, 0, 20, 0, 92, 0, 41, 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, + 0,134,255,174, 0,135,255,174, 0,136,255, 92, 0,142, 0, 41, 0,143, 0, 41, 0,144, 0, 41, 0,145, 0, 41, 0,159, 0, 82, + 0,168,255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,180,255,195, 0,181,255,195, + 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,191, 0, 41, 0,193, 0, 41, 0,194,255,174, 0,196,255,174, + 0,198,255,174, 0,201,255,195, 0,203,255,195, 0,205,255,195, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, + 0,219,255,195, 0,221,255,195, 0,236, 0, 41, 0,240, 0, 41, 0,242, 0, 41, 1, 15,255,195, 1, 17,255,195, 1, 19,255,195, + 1, 21,255,195, 1, 36, 0, 82, 1, 38, 0, 82, 1, 54, 0,102, 1, 55, 0, 20, 1, 56, 0, 82, 1, 57, 0, 41, 1, 58, 0, 82, + 1, 59, 0, 41, 1, 61, 0, 41, 1, 63, 0, 41, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,113, 0, 82, 1,121,255,195, + 1,126,255,195, 1,128, 0, 41, 1,130,255,195, 1,138, 0, 41, 1,140,255,195, 1,142,255,195, 1,144,255,195, 1,145, 0, 41, + 1,147,255,195, 1,148, 0, 41, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,157, 0, 82, 1,164,255,154, 1,166, 0, 82, + 1,168, 0, 61, 1,170,255,174, 1,174,255,133, 1,176, 0, 61, 1,177, 0, 20, 1,181,255,133, 1,188, 0, 82, 1,189, 0, 61, + 1,191, 0, 41, 1,196, 0, 82, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,220, 0, 41, 1,221, 0, 41, 1,222,255,195, + 1,234,255,195, 1,237,255,195, 1,250, 0,102, 1,251, 0, 20, 1,252, 0,102, 1,253, 0, 20, 1,254, 0,102, 1,255, 0, 20, + 2, 0, 0, 82, 2, 1, 0, 41, 2, 40,255,174, 2, 88,255,174, 2, 96,255,195, 2,106,255,195, 2,109, 0, 41, 2,114,255,174, + 2,118, 0, 61, 2,127,255,195, 2,129, 0, 41, 2,131, 0, 41, 2,133,255,195, 2,135,255,195, 2,137,255,195, 2,139, 0, 41, + 2,141,255,195, 2,159, 0, 61, 2,169, 0, 82, 2,170, 0, 41, 2,178,255,195, 2,180,255,195, 2,181, 0, 82, 2,182, 0, 41, + 2,183, 0, 82, 2,184, 0, 41, 2,185, 0, 82, 2,186, 0, 41, 2,187, 0, 61, 2,189, 0, 82, 2,202, 0, 61, 2,206,255,133, + 2,217,255,174, 2,219,255,174, 2,221,255,174, 2,224,255,195, 2,229, 0, 61, 2,240,255,195, 2,242,255,195, 2,244,255,195, + 2,247, 0, 61, 2,248, 0, 41, 2,249, 0, 61, 2,250, 0, 41, 2,251, 0, 61, 2,252, 0, 41, 3, 5, 0, 61, 3, 7, 0, 61, + 3, 10,255,195, 3, 12,255,195, 3, 14, 0, 41, 3, 16, 0, 41, 3, 17,255,133, 3, 22,255,195, 3, 23, 0, 82, 3, 24, 0, 41, + 3, 26,255,195, 3, 27,255,133, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, + 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, 3, 51,255,174, 3, 54,255,195, 3, 56,255,195, + 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 69, 0, 41, 3, 71, 0, 41, + 3, 74,255,195, 3, 76,255,195, 3, 78,255,195, 3, 80,255,195, 3, 82,255,195, 3, 84,255,195, 3, 86,255,195, 3, 88,255,195, + 3, 90,255,195, 3, 92,255,195, 3, 94,255,195, 3, 96,255,195, 3,111, 0, 82, 3,112, 0, 41, 3,113, 0, 82, 3,114, 0, 41, + 3,115, 0, 82, 3,116, 0, 41, 0, 3, 0, 45, 0,123, 0,246, 0,123, 1,163, 0,123, 0, 94, 0, 38,255,195, 0, 42,255,195, + 0, 50,255,195, 0, 52,255,195, 0, 55,255,154, 0, 56,255,215, 0, 57,255,154, 0, 58,255,174, 0, 60,255,154, 0,137,255,195, + 0,148,255,195, 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,155,255,215, 0,156,255,215, + 0,157,255,215, 0,158,255,215, 0,159,255,154, 0,200,255,195, 0,206,255,195, 0,222,255,195, 0,224,255,195, 0,226,255,195, + 0,228,255,195, 1, 14,255,195, 1, 18,255,195, 1, 36,255,154, 1, 38,255,154, 1, 44,255,215, 1, 48,255,215, 1, 50,255,215, + 1, 52,255,215, 1, 54,255,174, 1, 56,255,154, 1, 58,255,154, 1,102,255,195, 1,109,255,195, 1,113,255,154, 1,184,255,195, + 1,187,255,195, 1,188,255,154, 1,250,255,174, 1,252,255,174, 1,254,255,174, 2, 0,255,154, 2, 95,255,195, 2, 97,255,215, + 2,108,255,195, 2,126,255,195, 2,132,255,195, 2,134,255,195, 2,136,255,195, 2,138,255,195, 2,140,255,195, 2,169,255,154, + 2,177,255,195, 2,179,255,195, 2,181,255,154, 2,183,255,154, 2,185,255,154, 2,189,255,154, 2,225,255,195, 2,227,255,195, + 2,239,255,195, 2,241,255,195, 2,243,255,195, 3, 21,255,195, 3, 23,255,154, 3, 25,255,195, 3, 73,255,195, 3, 75,255,195, + 3, 77,255,195, 3, 79,255,195, 3, 81,255,195, 3, 83,255,195, 3, 85,255,195, 3, 87,255,195, 3, 89,255,195, 3, 91,255,195, + 3, 93,255,195, 3, 95,255,195, 3, 97,255,215, 3, 99,255,215, 3,101,255,215, 3,103,255,215, 3,105,255,215, 3,107,255,215, + 3,109,255,215, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 23, 0, 55,255,154, 1,113,255,154, 1,114,255,195, 1,176, +255,215, 1,181,255,215, 1,188,255,154, 1,196,255,174, 2,118,255,215, 2,159,255,215, 2,169,255,154, 2,181,255,154, 2,183, +255,154, 2,185,255,154, 2,187,255,215, 2,189,255,154, 2,202,255,215, 2,206,255,215, 2,229,255,215, 3, 5,255,215, 3, 7, +255,215, 3, 17,255,215, 3, 23,255,154, 3, 27,255,215, 0, 99, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, + 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, + 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, + 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, + 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, + 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, + 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, + 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, + 2,138,255,236, 2,140,255,236, 2,169,255,133, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, + 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, + 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, + 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, + 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 24, 0, 44, +255,236, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, 1, 38,255,236, 1, 56, +255,236, 1, 58,255,236, 1,113,255,236, 1,188,255,236, 2, 0,255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185, +255,236, 2,189,255,236, 3, 23,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 59, + 0, 5, 0, 41, 0, 10, 0, 41, 0, 12, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 64, 0, 41, + 0, 96, 0, 41, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, + 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, + 1,102,255,215, 1,109,255,215, 1,184,255,215, 1,187,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, + 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, + 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, + 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, + 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0, 75, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55, +255,195, 0, 57,255,236, 0, 58,255,236, 0, 59,255,236, 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132, +255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,195, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145, +255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36, +255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67, +255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254, +255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185, +255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, +255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, +255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 57, 0, 5, 0, 61, + 0, 10, 0, 61, 0, 12, 0, 41, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,215, 0, 57, 0, 20, 0, 58, 0, 20, + 0, 60, 0, 20, 0, 64, 0, 41, 0, 96, 0, 41, 0,130,255,215, 0,131,255,215, 0,132,255,215, 0,133,255,215, 0,134,255,215, + 0,135,255,215, 0,136,255,195, 0,159, 0, 20, 0,194,255,215, 0,196,255,215, 0,198,255,215, 1, 54, 0, 20, 1, 56, 0, 20, + 1, 58, 0, 20, 1, 67,255,215, 1, 95,255,215, 1,105,255,215, 1,170,255,215, 1,250, 0, 20, 1,252, 0, 20, 1,254, 0, 20, + 2, 0, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 2, 40,255,215, 2, 88,255,215, 2,114,255,215, 2,217,255,215, 2,219,255,215, + 2,221,255,215, 3, 29,255,215, 3, 31,255,215, 3, 33,255,215, 3, 35,255,215, 3, 37,255,215, 3, 39,255,215, 3, 41,255,215, + 3, 43,255,215, 3, 45,255,215, 3, 47,255,215, 3, 49,255,215, 3, 51,255,215, 3,111, 0, 20, 3,113, 0, 20, 3,115, 0, 20, + 0, 57, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148, +255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222, +255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109, +255,236, 1,184,255,236, 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132, +255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227, +255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77, +255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93, +255,236, 3, 95,255,236, 0, 57, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, + 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, + 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, + 1,102,255,215, 1,109,255,215, 1,184,255,215, 1,187,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, + 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, + 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, + 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, + 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0, 99, 0, 5,255,154, 0, 10,255,154, 0, 38,255,236, 0, 42,255,236, 0, 50, +255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148, +255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157, +255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228, +255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50, +255,236, 1, 52,255,236, 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,184, +255,236, 1,187,255,236, 1,188,255,133, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0,255,154, 2, 7,255,154, 2, 11, +255,154, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138, +255,236, 2,140,255,236, 2,169,255,133, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, 2,189, +255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, 3, 25, +255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87, +255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103, +255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 75, 0, 15,255,195, + 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, + 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, + 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, + 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, + 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, 1,170,255,236, + 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, + 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, + 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, + 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, + 3,113,255,215, 3,115,255,215, 0, 53, 0, 15,255, 51, 0, 17,255, 51, 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60, +255,236, 0, 61,255,215, 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136, +255,113, 0,137,255,236, 0,159,255,236, 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56, +255,236, 1, 58,255,236, 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,170, +255,174, 1,187,255,236, 2, 0,255,236, 2, 40,255,174, 2, 88,255,174, 2,114,255,174, 2,217,255,174, 2,219,255,174, 2,221, +255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43, +255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 75, + 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, + 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, + 0,136,255,195, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, + 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, + 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, + 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, + 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, + 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, + 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, + 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 11, 0, 55,255,236, 1, 36,255,236, 1, 38,255,236, 1,113,255,236, 1,188, +255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,189,255,236, 3, 23,255,236, 1, 32, 0, 5, 0, 82, + 0, 10, 0, 82, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, + 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, + 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, + 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,130,255,133, 0,131,255,133, + 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, 0,149,255,195, + 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, 0,165,255,133, + 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, 0,173,255,133, + 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, 0,187,255,174, + 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, 0,196,255,133, + 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, 0,206,255,195, + 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, 0,224,255,195, + 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, 1, 17,255,133, + 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, 1, 32,255,236, + 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, 1, 64,255,195, + 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1,102,255,195, 1,105,255,133, 1,109,255,195, 1,113, 0, 20, + 1,121,255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,130,255,133, 1,132,255,174, 1,138,255,195, 1,140,255,133, + 1,142,255,133, 1,144,255,133, 1,145,255,195, 1,147,255,133, 1,148,255,195, 1,150,255,133, 1,153,255,133, 1,155,255,133, + 1,160,255,236, 1,170,255,133, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,202,255,133, 1,207,255,133, 1,216,255,133, + 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,234,255,133, 1,237,255,133, 1,238,255,133, 1,251,255,195, + 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 2,255,174, 2, 3,255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,133, + 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 2,106,255,133, 2,108,255,195, 2,109,255,195, 2,114,255,133, + 2,126,255,195, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135,255,133, + 2,136,255,195, 2,137,255,133, 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,169, 0, 20, 2,170,255,195, + 2,177,255,195, 2,178,255,133, 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184,255,195, + 2,185, 0, 20, 2,186,255,195, 2,189, 0, 20, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, + 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243,255,195, + 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 3, 10,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, + 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 29,255,133, 3, 30,255,133, + 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39,255,133, + 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47,255,133, + 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58,255,133, + 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75,255,195, + 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83,255,195, + 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91,255,195, + 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102,255,174, + 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 0, 35, 0, 15, +255,215, 0, 17,255,215, 0, 36,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135, +255,236, 0,136,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,170, +255,236, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 29,255,236, 3, 31, +255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47, +255,236, 3, 49,255,236, 3, 51,255,236, 0,232, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, + 0, 36,255,195, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, + 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81,255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, + 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131,255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, + 0,136,255,133, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, + 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168,255,195, 0,169,255,195, + 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181,255,195, 0,182,255,195, + 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190,255,215, 0,194,255,195, + 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,215, 0,201,255,195, 0,203,255,195, + 0,205,255,195, 0,206,255,215, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, + 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 6,255,215, 1, 8,255,215, 1, 10,255,215, 1, 14,255,215, + 1, 15,255,195, 1, 17,255,195, 1, 18,255,215, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29,255,215, 1, 31,255,215, + 1, 33,255,215, 1, 35,255,215, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1, 95,255,195, 1,102,255,215, 1,105,255,195, + 1,109,255,215, 1,121,255,195, 1,123,255,215, 1,126,255,195, 1,130,255,195, 1,132,255,215, 1,140,255,195, 1,142,255,195, + 1,144,255,195, 1,147,255,195, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,170,255,195, 1,184,255,215, 1,187,255,215, + 1,202,255,195, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,222,255,195, 1,234,255,195, 1,237,255,195, 1,238,255,215, + 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,195, 2, 88,255,195, 2, 89,255,195, 2, 95,255,215, 2, 96,255,195, 2,106,255,195, + 2,108,255,215, 2,114,255,195, 2,126,255,215, 2,127,255,195, 2,132,255,215, 2,133,255,195, 2,134,255,215, 2,135,255,195, + 2,136,255,215, 2,137,255,195, 2,138,255,215, 2,140,255,215, 2,141,255,195, 2,177,255,215, 2,178,255,195, 2,179,255,215, + 2,180,255,195, 2,217,255,195, 2,218,255,195, 2,219,255,195, 2,220,255,195, 2,221,255,195, 2,224,255,195, 2,225,255,215, + 2,227,255,215, 2,239,255,215, 2,240,255,195, 2,241,255,215, 2,242,255,195, 2,243,255,215, 2,244,255,195, 3, 10,255,195, + 3, 12,255,195, 3, 21,255,215, 3, 22,255,195, 3, 25,255,215, 3, 26,255,195, 3, 29,255,195, 3, 30,255,195, 3, 31,255,195, + 3, 33,255,195, 3, 34,255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, 3, 39,255,195, 3, 40,255,195, + 3, 41,255,195, 3, 42,255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, 3, 47,255,195, 3, 48,255,195, + 3, 49,255,195, 3, 50,255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, + 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,215, 3, 74,255,195, 3, 75,255,215, 3, 76,255,195, + 3, 77,255,215, 3, 78,255,195, 3, 79,255,215, 3, 80,255,195, 3, 81,255,215, 3, 82,255,195, 3, 83,255,215, 3, 84,255,195, + 3, 85,255,215, 3, 86,255,195, 3, 87,255,215, 3, 88,255,195, 3, 89,255,215, 3, 90,255,195, 3, 91,255,215, 3, 92,255,195, + 3, 93,255,215, 3, 94,255,195, 3, 95,255,215, 3, 96,255,195, 3, 98,255,215, 3,100,255,215, 3,102,255,215, 3,104,255,215, + 3,106,255,215, 3,108,255,215, 3,110,255,215, 0,233, 0, 5, 0,102, 0, 10, 0,102, 0, 15,255,174, 0, 17,255,174, 0, 36, +255,215, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 68,255,215, 0, 70,255,215, 0, 71,255,215, 0, 72, +255,215, 0, 74,255,236, 0, 80,255,236, 0, 81,255,236, 0, 82,255,215, 0, 83,255,236, 0, 84,255,215, 0, 85,255,236, 0, 86, +255,215, 0, 88,255,236, 0, 93,255,236, 0,130,255,215, 0,131,255,215, 0,132,255,215, 0,133,255,215, 0,134,255,215, 0,135, +255,215, 0,136,255,174, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154, +255,236, 0,162,255,215, 0,163,255,215, 0,164,255,215, 0,165,255,215, 0,166,255,215, 0,167,255,215, 0,168,255,215, 0,169, +255,215, 0,170,255,215, 0,171,255,215, 0,172,255,215, 0,173,255,215, 0,179,255,236, 0,180,255,215, 0,181,255,215, 0,182, +255,215, 0,183,255,215, 0,184,255,215, 0,186,255,215, 0,187,255,236, 0,188,255,236, 0,189,255,236, 0,190,255,236, 0,194, +255,215, 0,195,255,215, 0,196,255,215, 0,197,255,215, 0,198,255,215, 0,199,255,215, 0,200,255,236, 0,201,255,215, 0,203, +255,215, 0,205,255,215, 0,206,255,236, 0,207,255,215, 0,213,255,215, 0,215,255,215, 0,217,255,215, 0,219,255,215, 0,221, +255,215, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 6,255,236, 1, 8,255,236, 1, 10,255,236, 1, 14, +255,236, 1, 15,255,215, 1, 17,255,215, 1, 18,255,236, 1, 19,255,215, 1, 20,255,236, 1, 21,255,215, 1, 29,255,215, 1, 31, +255,215, 1, 33,255,215, 1, 35,255,215, 1, 64,255,236, 1, 67,255,215, 1, 68,255,215, 1, 74,255,215, 1, 95,255,215, 1,102, +255,236, 1,105,255,215, 1,109,255,236, 1,121,255,215, 1,123,255,236, 1,126,255,215, 1,130,255,215, 1,132,255,236, 1,140, +255,215, 1,142,255,215, 1,144,255,215, 1,147,255,215, 1,150,255,215, 1,153,255,215, 1,155,255,215, 1,170,255,215, 1,184, +255,236, 1,187,255,236, 1,202,255,215, 1,207,255,215, 1,216,255,215, 1,219,255,215, 1,222,255,215, 1,234,255,215, 1,237, +255,215, 1,238,255,215, 2, 7, 0,102, 2, 11, 0,102, 2, 40,255,215, 2, 88,255,215, 2, 89,255,215, 2, 95,255,236, 2, 96, +255,215, 2,106,255,215, 2,108,255,236, 2,114,255,215, 2,126,255,236, 2,127,255,215, 2,132,255,236, 2,133,255,215, 2,134, +255,236, 2,135,255,215, 2,136,255,236, 2,137,255,215, 2,138,255,236, 2,140,255,236, 2,141,255,215, 2,177,255,236, 2,178, +255,215, 2,179,255,236, 2,180,255,215, 2,217,255,215, 2,218,255,215, 2,219,255,215, 2,220,255,215, 2,221,255,215, 2,224, +255,215, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,240,255,215, 2,241,255,236, 2,242,255,215, 2,243,255,236, 2,244, +255,215, 3, 10,255,215, 3, 12,255,215, 3, 21,255,236, 3, 22,255,215, 3, 25,255,236, 3, 26,255,215, 3, 29,255,215, 3, 30, +255,215, 3, 31,255,215, 3, 33,255,215, 3, 34,255,215, 3, 35,255,215, 3, 36,255,215, 3, 37,255,215, 3, 38,255,215, 3, 39, +255,215, 3, 40,255,215, 3, 41,255,215, 3, 42,255,215, 3, 43,255,215, 3, 44,255,215, 3, 45,255,215, 3, 46,255,215, 3, 47, +255,215, 3, 48,255,215, 3, 49,255,215, 3, 50,255,215, 3, 51,255,215, 3, 52,255,215, 3, 54,255,215, 3, 56,255,215, 3, 58, +255,215, 3, 60,255,215, 3, 62,255,215, 3, 64,255,215, 3, 66,255,215, 3, 68,255,215, 3, 73,255,236, 3, 74,255,215, 3, 75, +255,236, 3, 76,255,215, 3, 77,255,236, 3, 78,255,215, 3, 79,255,236, 3, 80,255,215, 3, 81,255,236, 3, 82,255,215, 3, 83, +255,236, 3, 84,255,215, 3, 85,255,236, 3, 86,255,215, 3, 87,255,236, 3, 88,255,215, 3, 89,255,236, 3, 90,255,215, 3, 91, +255,236, 3, 92,255,215, 3, 93,255,236, 3, 94,255,215, 3, 95,255,236, 3, 96,255,215, 3, 98,255,236, 3,100,255,236, 3,102, +255,236, 3,104,255,236, 3,106,255,236, 3,108,255,236, 3,110,255,236, 0,140, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, + 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 70,255,236, 0, 71,255,236, 0, 72,255,236, 0, 82,255,236, 0, 84,255,236, + 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,168,255,236, + 0,169,255,236, 0,170,255,236, 0,171,255,236, 0,172,255,236, 0,173,255,236, 0,180,255,236, 0,181,255,236, 0,182,255,236, + 0,183,255,236, 0,184,255,236, 0,186,255,236, 0,200,255,215, 0,201,255,236, 0,203,255,236, 0,205,255,236, 0,206,255,215, + 0,207,255,236, 0,213,255,236, 0,215,255,236, 0,217,255,236, 0,219,255,236, 0,221,255,236, 0,222,255,215, 0,224,255,215, + 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 15,255,236, 1, 17,255,236, 1, 18,255,215, 1, 19,255,236, 1, 20,255,215, + 1, 21,255,236, 1,102,255,215, 1,109,255,215, 1,121,255,236, 1,126,255,236, 1,130,255,236, 1,140,255,236, 1,142,255,236, + 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,184,255,215, 1,187,255,215, 1,207,255,236, + 1,216,255,236, 1,219,255,236, 1,222,255,236, 1,234,255,236, 1,237,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, + 2, 96,255,236, 2,106,255,236, 2,108,255,215, 2,126,255,215, 2,127,255,236, 2,132,255,215, 2,133,255,236, 2,134,255,215, + 2,135,255,236, 2,136,255,215, 2,137,255,236, 2,138,255,215, 2,140,255,215, 2,141,255,236, 2,177,255,215, 2,178,255,236, + 2,179,255,215, 2,180,255,236, 2,224,255,236, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,236, 2,241,255,215, + 2,242,255,236, 2,243,255,215, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 21,255,215, 3, 22,255,236, 3, 25,255,215, + 3, 26,255,236, 3, 54,255,236, 3, 56,255,236, 3, 58,255,236, 3, 60,255,236, 3, 62,255,236, 3, 64,255,236, 3, 66,255,236, + 3, 68,255,236, 3, 73,255,215, 3, 74,255,236, 3, 75,255,215, 3, 76,255,236, 3, 77,255,215, 3, 78,255,236, 3, 79,255,215, + 3, 80,255,236, 3, 81,255,215, 3, 82,255,236, 3, 83,255,215, 3, 84,255,236, 3, 85,255,215, 3, 86,255,236, 3, 87,255,215, + 3, 88,255,236, 3, 89,255,215, 3, 90,255,236, 3, 91,255,215, 3, 92,255,236, 3, 93,255,215, 3, 94,255,236, 3, 95,255,215, + 3, 96,255,236, 1, 6, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38, +255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 54,255,236, 0, 68,255,154, 0, 70,255,154, 0, 71,255,154, 0, 72, +255,154, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83,255,195, 0, 84,255,154, 0, 85,255,195, 0, 86, +255,174, 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133, +255,154, 0,134,255,154, 0,135,255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151, +255,215, 0,152,255,215, 0,154,255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167, +255,154, 0,168,255,154, 0,169,255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180, +255,154, 0,181,255,154, 0,182,255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189, +255,195, 0,190,255,195, 0,191,255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198, +255,154, 0,199,255,154, 0,200,255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213, +255,154, 0,215,255,154, 0,217,255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228, +255,215, 1, 6,255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19, +255,154, 1, 20,255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34, +255,236, 1, 35,255,174, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68,255,154, 1, 74,255,174, 1, 95,255,154, 1,102, +255,215, 1,105,255,154, 1,109,255,215, 1,121,255,154, 1,123,255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132, +255,195, 1,138,255,236, 1,140,255,154, 1,142,255,154, 1,144,255,154, 1,147,255,154, 1,150,255,154, 1,153,255,154, 1,155, +255,154, 1,160,255,236, 1,170,255,154, 1,184,255,215, 1,187,255,215, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219, +255,154, 1,221,255,236, 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 2, 1,255,236, 2, 7, 0, 82, 2, 11, + 0, 82, 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109, +255,236, 2,114,255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134, +255,215, 2,135,255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,177, +255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,184,255,236, 2,186,255,236, 2,217,255,154, 2,218,255,154, 2,219, +255,154, 2,220,255,154, 2,221,255,154, 2,224,255,154, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241, +255,215, 2,242,255,154, 2,243,255,215, 2,244,255,154, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12, +255,154, 3, 14,255,236, 3, 16,255,236, 3, 21,255,215, 3, 22,255,154, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30, +255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39, +255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47, +255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58, +255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75, +255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83, +255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91, +255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102, +255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0, 57, + 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, + 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, + 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1,102,255,236, 1,109,255,236, + 1,184,255,236, 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, + 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, + 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, + 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, + 3, 95,255,236, 0, 1, 0, 10,255,215, 0, 4, 0, 5, 0, 61, 0, 10, 0, 61, 2, 7, 0, 61, 2, 11, 0, 61, 0, 38, 0, 5, + 0,102, 0, 10, 0,102, 0, 89, 0, 20, 0, 90, 0, 20, 0, 92, 0, 20, 0,191, 0, 20, 0,193, 0, 20, 1, 55, 0, 20, 1, 57, + 0, 20, 1,128, 0, 20, 1,138, 0, 20, 1,145, 0, 20, 1,148, 0, 20, 1,220, 0, 20, 1,221, 0, 20, 1,251, 0, 20, 1,253, + 0, 20, 1,255, 0, 20, 2, 1, 0, 20, 2, 7, 0,102, 2, 11, 0,102, 2,109, 0, 20, 2,129, 0, 20, 2,131, 0, 20, 2,139, + 0, 20, 2,170, 0, 20, 2,182, 0, 20, 2,184, 0, 20, 2,186, 0, 20, 2,248, 0, 20, 2,250, 0, 20, 2,252, 0, 20, 3, 14, + 0, 20, 3, 16, 0, 20, 3, 24, 0, 20, 3,112, 0, 20, 3,114, 0, 20, 3,116, 0, 20, 0, 5, 0, 5, 0, 41, 0, 10, 0, 41, + 0, 74, 0, 20, 2, 7, 0, 41, 2, 11, 0, 41, 0, 1, 0, 10,255,195, 0, 4, 0, 5, 0, 41, 0, 10, 0, 41, 2, 7, 0, 41, + 2, 11, 0, 41, 0, 3, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 0, 31, 0, 5, 0,102, 0, 10, 0,102, 0, 68,255,236, + 0, 74,255,236, 0,162,255,236, 0,163,255,236, 0,164,255,236, 0,165,255,236, 0,166,255,236, 0,167,255,236, 0,195,255,236, + 0,197,255,236, 0,199,255,236, 1, 68,255,236, 1,202,255,236, 2, 7, 0,102, 2, 11, 0,102, 2, 89,255,236, 2,218,255,236, + 2,220,255,236, 3, 30,255,236, 3, 34,255,236, 3, 36,255,236, 3, 38,255,236, 3, 40,255,236, 3, 42,255,236, 3, 44,255,236, + 3, 46,255,236, 3, 48,255,236, 3, 50,255,236, 3, 52,255,236, 0, 5, 0, 5, 0, 82, 0, 10, 0, 82, 0, 87, 0, 20, 2, 7, + 0, 82, 2, 11, 0, 82, 0, 5, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, 0, 54, 0, 5, + 0, 41, 0, 10, 0, 41, 0, 82,255,215, 0,168,255,215, 0,180,255,215, 0,181,255,215, 0,182,255,215, 0,183,255,215, 0,184, +255,215, 0,186,255,215, 1, 15,255,215, 1, 17,255,215, 1, 19,255,215, 1, 21,255,215, 1,140,255,215, 1,142,255,215, 1,144, +255,215, 1,147,255,215, 1,150,255,215, 1,153,255,215, 1,155,255,215, 1,216,255,215, 1,222,255,215, 2, 7, 0, 41, 2, 11, + 0, 41, 2, 96,255,215, 2,106,255,215, 2,127,255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178, +255,215, 2,180,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, 3, 12,255,215, 3, 22, +255,215, 3, 26,255,215, 3, 74,255,215, 3, 76,255,215, 3, 78,255,215, 3, 80,255,215, 3, 82,255,215, 3, 84,255,215, 3, 86, +255,215, 3, 88,255,215, 3, 90,255,215, 3, 92,255,215, 3, 94,255,215, 3, 96,255,215, 0, 5, 0, 5, 0, 61, 0, 10, 0, 61, + 0, 73, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0, 50, 0, 82,255,236, 0,168,255,236, 0,180,255,236, 0,181,255,236, 0,182, +255,236, 0,183,255,236, 0,184,255,236, 0,186,255,236, 1, 15,255,236, 1, 17,255,236, 1, 19,255,236, 1, 21,255,236, 1,140, +255,236, 1,142,255,236, 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,216,255,236, 1,222, +255,236, 2, 96,255,236, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178, +255,236, 2,180,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22, +255,236, 3, 26,255,236, 3, 74,255,236, 3, 76,255,236, 3, 78,255,236, 3, 80,255,236, 3, 82,255,236, 3, 84,255,236, 3, 86, +255,236, 3, 88,255,236, 3, 90,255,236, 3, 92,255,236, 3, 94,255,236, 3, 96,255,236, 0, 3, 1,113,255,215, 1,120,255,215, + 1,145, 0, 41, 0, 3, 1,113,255,154, 1,114,255,195, 1,120,255,195, 0,147, 0, 5,255,174, 0, 10,255,174, 0, 13,255,133, + 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,195, 0, 38,255,236, 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, + 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, 0, 59, 0, 73,255,236, 0, 87,255,236, + 0, 89,255,215, 0, 90,255,236, 0, 92,255,215, 0,130,255,215, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, + 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, + 0,191,255,215, 0,193,255,215, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, + 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, + 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,236, 1, 56,255,154, 1, 57,255,215, 1, 58,255,154, 1, 59, 0, 59, + 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,215, 1,138,255,215, 1,145,255,215, + 1,148,255,215, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,215, 1,221,255,215, 1,250,255,215, + 1,251,255,236, 1,252,255,215, 1,253,255,236, 1,254,255,215, 1,255,255,236, 2, 0,255,154, 2, 1,255,215, 2, 7,255,174, + 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,129,255,215, 2,131,255,215, + 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,215, 2,140,255,236, 2,169,255,133, 2,170,255,215, + 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,184,255,215, 2,185,255,133, 2,186,255,215, + 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,215, 2,250,255,215, + 2,252,255,215, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 73,255,236, + 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, + 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, + 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,215, 3,113,255,154, 3,114,255,215, 3,115,255,154, 3,116,255,215, + 0,144, 0, 5,255,174, 0, 10,255,174, 0, 13,255,133, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,195, 0, 38,255,236, 0, 42, +255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, + 0, 59, 0, 73,255,236, 0, 87,255,236, 0, 89,255,215, 0, 90,255,236, 0, 92,255,215, 0,137,255,236, 0,148,255,236, 0,149, +255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, +255,236, 0,159,255,154, 0,191,255,215, 0,193,255,215, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, +255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48, +255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,236, 1, 56,255,154, 1, 57,255,215, 1, 58,255,154, 1, 59, + 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,215, 1,138,255,215, 1,145, +255,215, 1,148,255,215, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,215, 1,221,255,215, 1,250, +255,215, 1,251,255,236, 1,252,255,215, 1,253,255,236, 1,254,255,215, 1,255,255,236, 2, 0,255,154, 2, 1,255,215, 2, 7, +255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,129,255,215, 2,131, +255,215, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,215, 2,140,255,236, 2,169,255,133, 2,170, +255,215, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,184,255,215, 2,185,255,133, 2,186, +255,215, 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,215, 2,250, +255,215, 2,252,255,215, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 73, +255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, +255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105, +255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,215, 3,113,255,154, 3,114,255,215, 3,115,255,154, 3,116, +255,215, 0,145, 0, 5,255,174, 0, 10,255,174, 0, 13,255,127, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,215, 0, 38,255,236, + 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, + 0, 60,255,154, 0, 61, 0, 59, 0, 87,255,229, 0, 89,255,213, 0, 90,255,229, 0, 92,255,219, 0,137,255,236, 0,148,255,236, + 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, + 0,158,255,236, 0,159,255,154, 0,191,255,219, 0,193,255,219, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, + 0,226,255,236, 0,228,255,236, 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, + 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,229, 1, 56,255,154, 1, 57,255,219, + 1, 58,255,154, 1, 59, 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,219, + 1,138,255,213, 1,145,255,213, 1,148,255,213, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,213, + 1,221,255,219, 1,250,255,215, 1,251,255,229, 1,252,255,215, 1,253,255,229, 1,254,255,215, 1,255,255,229, 2, 0,255,154, + 2, 1,255,219, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,219, 2,126,255,236, + 2,129,255,219, 2,131,255,219, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,219, 2,140,255,236, + 2,169,255,133, 2,170,255,213, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,213, 2,183,255,133, 2,184,255,219, + 2,185,255,133, 2,186,255,219, 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, + 2,248,255,219, 2,250,255,219, 2,252,255,219, 3, 14,255,219, 3, 16,255,219, 3, 21,255,236, 3, 23,255,133, 3, 24,255,213, + 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, + 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, + 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,219, 3,113,255,154, 3,114,255,219, + 3,115,255,154, 3,116,255,219, 0,148, 0, 5,255,102, 0, 10,255,102, 0, 13,255,127, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34, +255,215, 0, 38,255,236, 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57, +255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, 0, 59, 0, 87,255,229, 0, 89,255,213, 0, 90,255,229, 0, 92,255,219, 0,137, +255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156, +255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,191,255,219, 0,193,255,219, 0,200,255,236, 0,206,255,236, 0,222, +255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36, +255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,229, 1, 56, +255,154, 1, 57,255,219, 1, 58,255,154, 1, 59, 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113, +255,133, 1,128,255,219, 1,138,255,213, 1,145,255,213, 1,148,255,213, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188, +255,133, 1,220,255,213, 1,221,255,219, 1,250,255,215, 1,251,255,229, 1,252,255,215, 1,253,255,229, 1,254,255,215, 1,255, +255,229, 2, 0,255,154, 2, 1,255,219, 2, 6,255,102, 2, 7,255,174, 2, 10,255,102, 2, 11,255,174, 2, 32,255,154, 2, 95, +255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,219, 2,126,255,236, 2,129,255,219, 2,131,255,219, 2,132,255,236, 2,134, +255,236, 2,136,255,236, 2,138,255,236, 2,139,255,219, 2,140,255,236, 2,169,255,133, 2,170,255,213, 2,177,255,236, 2,179, +255,236, 2,181,255,133, 2,182,255,213, 2,183,255,133, 2,184,255,219, 2,185,255,133, 2,186,255,219, 2,189,255,133, 2,225, +255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,219, 2,250,255,219, 2,252,255,219, 3, 14, +255,219, 3, 16,255,219, 3, 21,255,236, 3, 23,255,133, 3, 24,255,213, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77, +255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93, +255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109, +255,236, 3,111,255,154, 3,112,255,219, 3,113,255,154, 3,114,255,219, 3,115,255,154, 3,116,255,219, 0, 57, 0, 5, 0, 41, + 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 50,255,236, 0, 52,255,236, 0,132,255,236, 0,137,255,236, 0,138,255,236, + 0,143,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, + 0,206,255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18,255,236, 1,102,255,236, 1,109,255,236, 1,163, 0, 61, 1,184,255,236, + 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, + 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, + 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, + 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, + 0, 55, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,139, +255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206, +255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18,255,236, 1,102,255,236, 1,109,255,236, 1,163, 0, 61, 1,184,255,236, 1,187, +255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136, +255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241, +255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, +255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 32, + 0, 36,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,194,255,236, + 0,196,255,236, 0,198,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,170,255,236, 2, 40,255,236, 2, 88,255,236, + 2,114,255,236, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, + 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, + 0, 86, 0, 12,255,215, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 45,255,246, 0, 54,255,236, 0, 55, +255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, 0, 61,255,236, 0, 64,255,215, 0, 96,255,215, 0,130, +255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,142,255,236, 0,143, +255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, 0,240, +255,236, 0,242,255,236, 0,246,255,246, 1, 28,255,236, 1, 32,255,236, 1, 34,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54, +255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105, +255,236, 1,113,255,195, 1,160,255,236, 1,163,255,246, 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254, +255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185, +255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, +255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, +255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 66, 0, 15,255,215, + 0, 17,255,215, 0, 36,255,236, 0, 48,255,236, 0, 61,255,236, 0, 68,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, + 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,162,255,236, 0,163,255,236, 0,164,255,236, 0,165,255,236, + 0,166,255,236, 0,167,255,236, 0,194,255,236, 0,195,255,236, 0,196,255,236, 0,197,255,236, 0,198,255,236, 0,199,255,236, + 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 68,255,236, 1, 95,255,236, 1,105,255,236, 1,170,255,236, + 1,202,255,236, 2, 40,255,236, 2, 88,255,236, 2, 89,255,236, 2,114,255,236, 2,217,255,236, 2,218,255,236, 2,219,255,236, + 2,220,255,236, 2,221,255,236, 3, 29,255,236, 3, 30,255,236, 3, 31,255,236, 3, 33,255,236, 3, 34,255,236, 3, 35,255,236, + 3, 36,255,236, 3, 37,255,236, 3, 38,255,236, 3, 39,255,236, 3, 40,255,236, 3, 41,255,236, 3, 42,255,236, 3, 43,255,236, + 3, 44,255,236, 3, 45,255,236, 3, 46,255,236, 3, 47,255,236, 3, 48,255,236, 3, 49,255,236, 3, 50,255,236, 3, 51,255,236, + 3, 52,255,236, 1, 46, 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, 0, 41, 0, 15,255,154, 0, 16, +255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45,255,190, 0, 48,255,195, 0, 50, +255,215, 0, 52,255,215, 0, 54,255,236, 0, 55, 0, 39, 0, 57, 0, 41, 0, 58, 0, 20, 0, 64, 0, 61, 0, 68,255,154, 0, 70, +255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83, +255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, 0, 88,255,195, 0, 89,255,215, 0, 90,255,236, 0, 91,255,215, 0, 92, +255,236, 0, 93,255,195, 0, 96, 0, 61, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133,255,154, 0,134,255,154, 0,135, +255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154, +255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167,255,154, 0,168,255,154, 0,169, +255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180,255,154, 0,181,255,154, 0,182, +255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189,255,195, 0,190,255,195, 0,191, +255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198,255,154, 0,199,255,154, 0,200, +255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213,255,154, 0,215,255,154, 0,217, +255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 0,246,255,190, 1, 6, +255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19,255,154, 1, 20, +255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34,255,236, 1, 35, +255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 54, 0, 20, 1, 55,255,236, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68, +255,154, 1, 74,255,174, 1, 95,255,154, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,113, 0, 39, 1,121,255,154, 1,123, +255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132,255,195, 1,138,255,215, 1,140,255,154, 1,142,255,154, 1,144, +255,154, 1,145,255,215, 1,147,255,154, 1,148,255,215, 1,150,255,154, 1,153,255,154, 1,155,255,154, 1,160,255,236, 1,163, +255,190, 1,170,255,154, 1,184,255,215, 1,187,255,215, 1,188, 0, 39, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219, +255,154, 1,220,255,215, 1,221,255,236, 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 1,250, 0, 20, 1,251, +255,236, 1,252, 0, 20, 1,253,255,236, 1,254, 0, 20, 1,255,255,236, 2, 1,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40, +255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109,255,236, 2,114, +255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134,255,215, 2,135, +255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,169, 0, 39, 2,170, +255,215, 2,177,255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,181, 0, 39, 2,182,255,215, 2,183, 0, 39, 2,184, +255,236, 2,185, 0, 39, 2,186,255,236, 2,189, 0, 39, 2,217,255,154, 2,218,255,154, 2,219,255,154, 2,220,255,154, 2,221, +255,154, 2,224,255,154, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241,255,215, 2,242,255,154, 2,243, +255,215, 2,244,255,154, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12,255,154, 3, 14,255,236, 3, 16, +255,236, 3, 21,255,215, 3, 22,255,154, 3, 23, 0, 39, 3, 24,255,215, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30, +255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39, +255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47, +255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58, +255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75, +255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83, +255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91, +255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102, +255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0, 2, + 0, 5,255,152, 0, 10,255,215, 0, 3, 0, 5,255,152, 0, 10,255,215, 2, 11,255,215, 0, 6, 0, 5,255,111, 0, 10,255,111, + 0, 73,255,219, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 0, 2, 0, 5,255,190, 0, 10,255,190, 0, 97, 0, 5, 0, 61, + 0, 10, 0, 61, 0, 15,255,190, 0, 17,255,190, 0, 34,255,180, 0, 70,255,246, 0, 71,255,246, 0, 72,255,246, 0, 73, 0, 20, + 0, 74,255,246, 0, 82,255,246, 0, 84,255,246, 0, 87, 0, 6, 0,168,255,246, 0,169,255,246, 0,170,255,246, 0,171,255,246, + 0,172,255,246, 0,173,255,246, 0,180,255,246, 0,181,255,246, 0,182,255,246, 0,183,255,246, 0,184,255,246, 0,186,255,246, + 0,201,255,246, 0,203,255,246, 0,205,255,246, 0,207,255,246, 0,213,255,246, 0,215,255,246, 0,217,255,246, 0,219,255,246, + 0,221,255,246, 1, 15,255,246, 1, 17,255,246, 1, 19,255,246, 1, 21,255,246, 1,121,255,246, 1,126,255,246, 1,130,255,246, + 1,140,255,246, 1,142,255,246, 1,144,255,246, 1,147,255,246, 1,150,255,246, 1,153,255,246, 1,155,255,246, 1,207,255,246, + 1,216,255,246, 1,219,255,246, 1,222,255,246, 1,234,255,246, 1,237,255,246, 2, 7, 0, 61, 2, 8,255,141, 2, 11, 0, 61, + 2, 12,255,141, 2, 16,255,129, 2, 21, 0, 12, 2, 96,255,246, 2,106,255,246, 2,127,255,246, 2,133,255,246, 2,135,255,246, + 2,137,255,246, 2,141,255,246, 2,178,255,246, 2,180,255,246, 2,224,255,246, 2,240,255,246, 2,242,255,246, 2,244,255,246, + 3, 10,255,246, 3, 12,255,246, 3, 22,255,246, 3, 26,255,246, 3, 54,255,246, 3, 56,255,246, 3, 58,255,246, 3, 60,255,246, + 3, 62,255,246, 3, 64,255,246, 3, 66,255,246, 3, 68,255,246, 3, 74,255,246, 3, 76,255,246, 3, 78,255,246, 3, 80,255,246, + 3, 82,255,246, 3, 84,255,246, 3, 86,255,246, 3, 88,255,246, 3, 90,255,246, 3, 92,255,246, 3, 94,255,246, 3, 96,255,246, + 0, 7, 0, 5, 0, 61, 0, 10, 0, 61, 0, 15,255,190, 0, 17,255,190, 0, 73, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0,100, + 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, 0, 45, 0,225, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, + 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, + 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, + 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, + 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, + 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,184,255,236, 1,187,255,236, 1,188,255,133, + 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, + 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,169,255,133, + 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,225,255,236, 2,227,255,236, + 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, + 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, + 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, + 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 31, 0, 5, 0,102, 0, 10, 0,102, 0, 12, 0,143, 0, 34, + 0,164, 0, 64, 0,164, 0, 69, 0, 82, 0, 75, 0, 82, 0, 76, 0, 61, 0, 77, 0, 61, 0, 78, 0, 82, 0, 79, 0, 82, 0, 96, + 0,184, 0,174, 0,246, 0,176, 0,205, 0,177, 0,205, 0,231, 0, 82, 0,233, 0,164, 0,235, 1, 10, 0,237, 0,205, 0,239, + 0,246, 0,241, 0, 41, 0,245, 0, 61, 0,247, 0,225, 0,249, 0, 82, 0,252, 0, 82, 0,254, 0, 82, 1, 0, 0, 82, 1, 2, + 0, 82, 1, 4, 0, 82, 2, 7, 0,143, 2, 11, 0,143, 0, 1, 0, 45, 0,102, 0, 58, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38, +255,236, 0, 42,255,236, 0, 45, 0, 82, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150, +255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, +255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109,255,236, 1,184,255,236, 1,187, +255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136, +255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241, +255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, +255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 66, + 0, 5, 0, 41, 0, 10, 0, 41, 0, 48, 0, 20, 0, 54,255,236, 0, 55,255,215, 0, 57,255,236, 0, 58,255,236, 0, 59,255,215, + 0, 60,255,215, 0, 89,255,236, 0, 92,255,236, 0,159,255,215, 0,191,255,236, 0,193,255,236, 1, 28,255,236, 1, 32,255,236, + 1, 34,255,236, 1, 35,255,236, 1, 36,255,215, 1, 38,255,215, 1, 54,255,236, 1, 56,255,215, 1, 57,255,236, 1, 58,255,215, + 1,113,255,215, 1,128,255,236, 1,138,255,236, 1,145,255,236, 1,148,255,236, 1,160,255,236, 1,188,255,215, 1,220,255,236, + 1,221,255,236, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 1,255,236, 2, 7, 0, 41, 2, 11, 0, 41, + 2,109,255,236, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,169,255,215, 2,170,255,236, 2,181,255,215, 2,182,255,236, + 2,183,255,215, 2,184,255,236, 2,185,255,215, 2,186,255,236, 2,189,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, + 3, 14,255,236, 3, 16,255,236, 3, 23,255,215, 3, 24,255,236, 3,111,255,215, 3,112,255,236, 3,113,255,215, 3,114,255,236, + 3,115,255,215, 3,116,255,236, 1, 29, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36, +255,133, 0, 38,255,195, 0, 42,255,195, 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70, +255,133, 0, 71,255,133, 0, 72,255,133, 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84, +255,133, 0, 85,255,174, 0, 86,255,133, 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93, +255,195, 0,130,255,133, 0,131,255,133, 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137, +255,195, 0,148,255,195, 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163, +255,133, 0,164,255,133, 0,165,255,133, 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171, +255,133, 0,172,255,133, 0,173,255,133, 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184, +255,133, 0,186,255,133, 0,187,255,174, 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194, +255,133, 0,195,255,133, 0,196,255,133, 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203, +255,133, 0,205,255,133, 0,206,255,195, 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221, +255,133, 0,222,255,195, 0,224,255,195, 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14, +255,195, 1, 15,255,133, 1, 17,255,133, 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29, +255,133, 1, 31,255,133, 1, 32,255,236, 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55, +255,195, 1, 57,255,195, 1, 64,255,195, 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1,102,255,195, 1,105, +255,133, 1,109,255,195, 1,113, 0, 20, 1,121,255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,130,255,133, 1,132, +255,174, 1,138,255,195, 1,140,255,133, 1,142,255,133, 1,144,255,133, 1,145,255,195, 1,147,255,133, 1,148,255,195, 1,150, +255,133, 1,153,255,133, 1,155,255,133, 1,160,255,236, 1,170,255,133, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,202, +255,133, 1,207,255,133, 1,216,255,133, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,234,255,133, 1,237, +255,133, 1,238,255,133, 1,251,255,195, 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40, +255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 2,106,255,133, 2,108,255,195, 2,109,255,195, 2,114, +255,133, 2,126,255,195, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135, +255,133, 2,136,255,195, 2,137,255,133, 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,169, 0, 20, 2,170, +255,195, 2,177,255,195, 2,178,255,133, 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184, +255,195, 2,185, 0, 20, 2,186,255,195, 2,189, 0, 20, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221, +255,133, 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243, +255,195, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 3, 10,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16, +255,195, 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 29,255,133, 3, 30, +255,133, 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39, +255,133, 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47, +255,133, 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58, +255,133, 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75, +255,195, 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83, +255,195, 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91, +255,195, 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102, +255,174, 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 1, 29, + 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, 0, 41, 0, 15,255,154, 0, 16,255, 92, 0, 17,255,154, + 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45,255,190, 0, 48,255,236, 0, 50,255,215, 0, 52,255,215, + 0, 54,255,236, 0, 55, 0, 39, 0, 64, 0, 61, 0, 68,255,154, 0, 70,255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, + 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83,255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, + 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0, 96, 0, 61, 0,130,255,154, 0,131,255,154, 0,132,255,154, + 0,133,255,154, 0,134,255,154, 0,135,255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, + 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, + 0,167,255,154, 0,168,255,154, 0,169,255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, + 0,180,255,154, 0,181,255,154, 0,182,255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, + 0,189,255,195, 0,190,255,195, 0,191,255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, + 0,198,255,154, 0,199,255,154, 0,200,255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, + 0,213,255,154, 0,215,255,154, 0,217,255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, + 0,228,255,215, 0,246,255,190, 1, 6,255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, + 1, 18,255,215, 1, 19,255,154, 1, 20,255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, + 1, 33,255,174, 1, 34,255,236, 1, 35,255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, + 1, 68,255,154, 1, 74,255,174, 1, 95,255,154, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,113, 0, 39, 1,121,255,154, + 1,123,255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132,255,195, 1,138,255,236, 1,140,255,154, 1,142,255,154, + 1,144,255,154, 1,147,255,154, 1,150,255,154, 1,153,255,154, 1,155,255,154, 1,160,255,236, 1,163,255,190, 1,170,255,154, + 1,184,255,215, 1,187,255,215, 1,188, 0, 39, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219,255,154, 1,221,255,236, + 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 2, 1,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 15,255,215, + 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109,255,236, + 2,114,255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134,255,215, + 2,135,255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,169, 0, 39, + 2,177,255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,181, 0, 39, 2,183, 0, 39, 2,184,255,236, 2,185, 0, 39, + 2,186,255,236, 2,189, 0, 39, 2,217,255,154, 2,218,255,154, 2,219,255,154, 2,220,255,154, 2,221,255,154, 2,224,255,154, + 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241,255,215, 2,242,255,154, 2,243,255,215, 2,244,255,154, + 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12,255,154, 3, 14,255,236, 3, 16,255,236, 3, 21,255,215, + 3, 22,255,154, 3, 23, 0, 39, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30,255,154, 3, 31,255,154, 3, 33,255,154, + 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39,255,154, 3, 40,255,154, 3, 41,255,154, + 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47,255,154, 3, 48,255,154, 3, 49,255,154, + 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58,255,154, 3, 60,255,154, 3, 62,255,154, + 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75,255,215, 3, 76,255,154, 3, 77,255,215, + 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83,255,215, 3, 84,255,154, 3, 85,255,215, + 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91,255,215, 3, 92,255,154, 3, 93,255,215, + 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102,255,195, 3,104,255,195, 3,106,255,195, + 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0,197, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16, +255,195, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 54,255,215, 0, 56,255,236, 0, 70,255,236, 0, 71, +255,236, 0, 72,255,236, 0, 82,255,236, 0, 84,255,236, 0, 89,255,215, 0, 90,255,215, 0, 92,255,215, 0,137,255,236, 0,148, +255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157, +255,236, 0,158,255,236, 0,168,255,236, 0,169,255,236, 0,170,255,236, 0,171,255,236, 0,172,255,236, 0,173,255,236, 0,180, +255,236, 0,181,255,236, 0,182,255,236, 0,183,255,236, 0,184,255,236, 0,186,255,236, 0,191,255,215, 0,193,255,215, 0,200, +255,236, 0,201,255,236, 0,203,255,236, 0,205,255,236, 0,206,255,236, 0,207,255,236, 0,213,255,236, 0,215,255,236, 0,217, +255,236, 0,219,255,236, 0,221,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 15, +255,236, 1, 17,255,236, 1, 18,255,236, 1, 19,255,236, 1, 20,255,215, 1, 21,255,236, 1, 28,255,215, 1, 32,255,215, 1, 34, +255,215, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 55,255,215, 1, 57,255,215, 1,102,255,236, 1,109, +255,236, 1,121,255,236, 1,126,255,236, 1,128,255,215, 1,130,255,236, 1,138,255,215, 1,140,255,236, 1,142,255,236, 1,144, +255,236, 1,145,255,215, 1,147,255,236, 1,148,255,215, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,160,255,215, 1,184, +255,236, 1,187,255,236, 1,207,255,236, 1,216,255,236, 1,219,255,236, 1,220,255,215, 1,221,255,215, 1,222,255,236, 1,234, +255,236, 1,237,255,236, 1,251,255,215, 1,253,255,215, 1,255,255,215, 2, 1,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95, +255,236, 2, 96,255,236, 2, 97,255,236, 2,106,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,127,255,236, 2,129, +255,215, 2,131,255,215, 2,132,255,236, 2,133,255,236, 2,134,255,236, 2,135,255,236, 2,136,255,236, 2,137,255,236, 2,138, +255,236, 2,139,255,215, 2,140,255,236, 2,141,255,236, 2,170,255,215, 2,177,255,236, 2,178,255,236, 2,179,255,236, 2,180, +255,236, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,224,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,240, +255,236, 2,241,255,236, 2,242,255,236, 2,243,255,236, 2,244,255,236, 2,248,255,215, 2,250,255,215, 2,252,255,215, 3, 10, +255,236, 3, 12,255,236, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 22,255,236, 3, 24,255,215, 3, 25,255,236, 3, 26, +255,236, 3, 54,255,236, 3, 56,255,236, 3, 58,255,236, 3, 60,255,236, 3, 62,255,236, 3, 64,255,236, 3, 66,255,236, 3, 68, +255,236, 3, 73,255,236, 3, 74,255,236, 3, 75,255,236, 3, 76,255,236, 3, 77,255,236, 3, 78,255,236, 3, 79,255,236, 3, 80, +255,236, 3, 81,255,236, 3, 82,255,236, 3, 83,255,236, 3, 84,255,236, 3, 85,255,236, 3, 86,255,236, 3, 87,255,236, 3, 88, +255,236, 3, 89,255,236, 3, 90,255,236, 3, 91,255,236, 3, 92,255,236, 3, 93,255,236, 3, 94,255,236, 3, 95,255,236, 3, 96, +255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,112, +255,215, 3,114,255,215, 3,116,255,215, 0, 51, 0, 82,255,236, 0,168,255,236, 0,180,255,236, 0,181,255,236, 0,182,255,236, + 0,183,255,236, 0,184,255,236, 0,186,255,236, 1, 15,255,236, 1, 17,255,236, 1, 19,255,236, 1, 21,255,236, 1,140,255,236, + 1,142,255,236, 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,216,255,236, 1,222,255,236, + 2, 11, 0, 20, 2, 96,255,236, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, + 2,178,255,236, 2,180,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, + 3, 22,255,236, 3, 26,255,236, 3, 74,255,236, 3, 76,255,236, 3, 78,255,236, 3, 80,255,236, 3, 82,255,236, 3, 84,255,236, + 3, 86,255,236, 3, 88,255,236, 3, 90,255,236, 3, 92,255,236, 3, 94,255,236, 3, 96,255,236, 0, 11, 1, 98, 0, 41, 1,102, +255,236, 1,105, 0, 41, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115,255,215, 1,117,255,215, 1,120,255,154, 1,136, + 0, 41, 1,145,255,195, 0, 3, 1,102,255,236, 1,109,255,236, 1,115,255,236, 0, 11, 1, 95,255,236, 1,100,255,236, 1,103, +255,236, 1,108,255,236, 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,119,255,236, 1,120,255,215, 1,136, +255,236, 0, 36, 0, 16,255,195, 0,109,255,195, 1, 95,255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,195, 1,115,255,215, + 1,118,255,215, 1,121,255,154, 1,122,255,154, 1,123,255,195, 1,125,255,195, 1,126,255,154, 1,129,255,174, 1,130,255,154, + 1,131,255,215, 1,132,255,195, 1,133,255,215, 1,134,255,195, 1,135,255,195, 1,137,255,195, 1,140,255,154, 1,142,255,154, + 1,143,255,154, 1,144,255,154, 1,146,255,195, 1,147,255,174, 1,148,255,215, 1,149,255,195, 1,150,255,174, 1,152,255,215, + 1,153,255,154, 1,154,255,195, 1,155,255,174, 2, 2,255,195, 2, 3,255,195, 0, 3, 1,113,255,195, 1,114,255,195, 1,120, +255,195, 0, 25, 1,121,255,215, 1,125,255,215, 1,126,255,215, 1,128,255,215, 1,129,255,215, 1,131,255,236, 1,133,255,215, + 1,134,255,215, 1,136, 0, 41, 1,138,255,215, 1,139,255,236, 1,140,255,215, 1,141,255,236, 1,143,255,236, 1,144,255,215, + 1,145,255,236, 1,146,255,215, 1,147,255,215, 1,148,255,236, 1,149,255,215, 1,150,255,236, 1,152,255,215, 1,153,255,215, + 1,154,255,215, 1,155,255,215, 0, 79, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52, +255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149, +255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, +255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14, +255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52, +255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115, +255,215, 1,117,255,195, 1,120,255,154, 1,145,255,195, 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7, +255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, +255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97, +255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113, +255,154, 3,115,255,154, 0, 23, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, + 1, 38,255,236, 1, 56,255,236, 1, 58,255,236, 1,103,255,236, 1,108,255,215, 1,112,255,236, 1,113,255,236, 1,114,255,236, + 1,116,255,236, 1,119,255,236, 1,120,255,236, 1,145,255,236, 1,148,255,236, 2, 0,255,236, 3,111,255,236, 3,113,255,236, + 3,115,255,236, 0,113, 0, 5,255,154, 0, 10,255,154, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 38,255,236, 0, 42, +255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,109, +255,154, 0,125,255,174, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154, +255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222, +255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38, +255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1, 95, +255,133, 1, 98,255,154, 1,102,255,236, 1,105,255,154, 1,109,255,236, 1,115,255,174, 1,118,255,215, 1,121,255,133, 1,122, +255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,129,255,154, 1,130,255,133, 1,132,255,195, 1,134,255,195, 1,135, +255,195, 1,137,255,195, 1,138,255,195, 1,140,255,133, 1,141,255,195, 1,142,255,154, 1,143,255,133, 1,144,255,133, 1,145, +255,195, 1,146,255,195, 1,147,255,133, 1,148,255,195, 1,149,255,195, 1,150,255,154, 1,151, 0, 41, 1,152,255,195, 1,153, +255,133, 1,154,255,195, 1,155,255,154, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0,255,154, 2, 2,255,154, 2, 3, +255,154, 2, 7,255,154, 2, 11,255,154, 2, 95,255,236, 2, 97,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79, +255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95, +255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111, +255,154, 3,113,255,154, 3,115,255,154, 0,178, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, + 0, 36,255,195, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, + 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81,255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, + 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131,255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, + 0,136,255,133, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, + 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168,255,195, 0,169,255,195, + 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181,255,195, 0,182,255,195, + 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190,255,215, 0,194,255,195, + 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,215, 0,201,255,195, 0,203,255,195, + 0,205,255,195, 0,206,255,215, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, + 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 6,255,215, 1, 8,255,215, 1, 10,255,215, 1, 14,255,215, + 1, 15,255,195, 1, 17,255,195, 1, 18,255,215, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29,255,215, 1, 31,255,215, + 1, 33,255,215, 1, 35,255,215, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1, 98, 0, 20, 1,102,255,215, 1,109,255,215, + 1,113,255,154, 1,114,255,195, 1,115,255,215, 1,117,255,215, 1,120,255,195, 1,121,255,195, 1,136, 0, 41, 1,141,255,215, + 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,195, 2, 88,255,195, 2, 89,255,195, 2, 95,255,215, 2, 96,255,195, 3, 29,255,195, + 3, 30,255,195, 3, 31,255,195, 3, 33,255,195, 3, 34,255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, + 3, 39,255,195, 3, 40,255,195, 3, 41,255,195, 3, 42,255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, + 3, 47,255,195, 3, 48,255,195, 3, 49,255,195, 3, 50,255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, + 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,215, 3, 74,255,195, + 3, 75,255,215, 3, 76,255,195, 3, 77,255,215, 3, 78,255,195, 3, 79,255,215, 3, 80,255,195, 3, 81,255,215, 3, 82,255,195, + 3, 83,255,215, 3, 84,255,195, 3, 85,255,215, 3, 86,255,195, 3, 87,255,215, 3, 88,255,195, 3, 89,255,215, 3, 90,255,195, + 3, 91,255,215, 3, 92,255,195, 3, 93,255,215, 3, 94,255,195, 3, 95,255,215, 3, 96,255,195, 3, 98,255,215, 3,100,255,215, + 3,102,255,215, 3,104,255,215, 3,106,255,215, 3,108,255,215, 3,110,255,215, 0, 8, 1,102,255,236, 1,109,255,236, 1,115, +255,236, 1,146,255,215, 1,149,255,215, 1,151, 0, 41, 1,152,255,215, 1,154,255,215, 0, 70, 0, 15,255,195, 0, 17,255,195, + 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, 0, 61,255,236, + 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,142,255,236, + 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, + 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, + 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1, 98,255,215, 1,103,255,236, 1,105,255,236, 1,108,255,236, + 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,120,255,215, 1,250,255,236, 1,252,255,236, 1,254,255,236, + 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, + 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, + 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 5, 1,102,255,236, 1,109,255,236, 1,115,255,236, 1,129, +255,236, 1,136, 0, 41, 0, 42, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, + 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, + 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, + 1,102,255,215, 1,109,255,215, 1,115,255,174, 1,145,255,215, 1,151, 0, 41, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, + 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, + 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,207, 0, 5,255,174, 0, 10,255,174, 0, 34, 0, 41, 0, 36, +255,195, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58, +255,215, 0, 60,255,154, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81, +255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131, +255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, 0,136,255,133, 0,137,255,236, 0,148,255,236, 0,149, +255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, +255,236, 0,159,255,154, 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168, +255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181, +255,195, 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190, +255,215, 0,194,255,195, 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,236, 0,201, +255,195, 0,203,255,195, 0,205,255,195, 0,206,255,236, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219, +255,195, 0,221,255,195, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 6,255,215, 1, 8,255,215, 1, 10, +255,215, 1, 14,255,236, 1, 15,255,195, 1, 17,255,195, 1, 18,255,236, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29, +255,215, 1, 31,255,215, 1, 33,255,215, 1, 35,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50, +255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1,102, +255,236, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115,255,215, 1,117,255,195, 1,120,255,154, 1,145,255,215, 1,250, +255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 40,255,195, 2, 88,255,195, 2, 89, +255,195, 2, 95,255,236, 2, 96,255,195, 2, 97,255,236, 3, 29,255,195, 3, 30,255,195, 3, 31,255,195, 3, 33,255,195, 3, 34, +255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, 3, 39,255,195, 3, 40,255,195, 3, 41,255,195, 3, 42, +255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, 3, 47,255,195, 3, 48,255,195, 3, 49,255,195, 3, 50, +255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64, +255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,236, 3, 74,255,195, 3, 75,255,236, 3, 76,255,195, 3, 77,255,236, 3, 78, +255,195, 3, 79,255,236, 3, 80,255,195, 3, 81,255,236, 3, 82,255,195, 3, 83,255,236, 3, 84,255,195, 3, 85,255,236, 3, 86, +255,195, 3, 87,255,236, 3, 88,255,195, 3, 89,255,236, 3, 90,255,195, 3, 91,255,236, 3, 92,255,195, 3, 93,255,236, 3, 94, +255,195, 3, 95,255,236, 3, 96,255,195, 3, 97,255,236, 3, 98,255,215, 3, 99,255,236, 3,100,255,215, 3,101,255,236, 3,102, +255,215, 3,103,255,236, 3,104,255,215, 3,105,255,236, 3,106,255,215, 3,107,255,236, 3,108,255,215, 3,109,255,236, 3,110, +255,215, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 3, 1,102,255,236, 1,109,255,236, 1,136, 0, 41, 0, 70, 0, 15, +255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60, +255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136, +255,215, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198, +255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58, +255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,103,255,236, 1,105,255,236, 1,108, +255,236, 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,119,255,236, 1,120,255,215, 1,250,255,236, 1,252, +255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35, +255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51, +255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 54, 0, 15,255, 51, 0, 17,255, 51, + 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60,255,236, 0, 61,255,215, 0,130,255,174, 0,131,255,174, 0,132,255,174, + 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255,113, 0,137,255,236, 0,159,255,236, 0,194,255,174, 0,196,255,174, + 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56,255,236, 1, 58,255,236, 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, + 1, 67,255,174, 1, 95,255,174, 1, 98,255,174, 1,100,255,236, 1,105,255,174, 1,116,255,236, 1,120,255,236, 1,129,255,215, + 1,136,255,215, 1,142,255,215, 2, 0,255,236, 2, 40,255,174, 2, 88,255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, + 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, + 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 41, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42, +255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152, +255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14, +255,215, 1, 18,255,215, 1, 20,255,215, 1,102,255,215, 1,109,255,215, 1,115,255,215, 1,136, 0, 41, 2, 7, 0, 41, 2, 11, + 0, 41, 2, 95,255,215, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85, +255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,233, 0, 5, 0, 82, 0, 10, 0, 82, + 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, 0, 50,255,195, + 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, 0, 74,255,154, + 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, 0, 88,255,174, + 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,109,255,154, 0,125,255,215, 0,130,255,133, + 0,131,255,133, 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, + 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, + 0,165,255,133, 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, + 0,173,255,133, 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, + 0,187,255,174, 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, + 0,196,255,133, 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, + 0,206,255,195, 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, + 0,224,255,195, 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, + 1, 17,255,133, 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, + 1, 32,255,236, 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, + 1, 64,255,195, 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1, 98,255,154, 1,102,255,195, 1,105,255,133, + 1,109,255,195, 1,113, 0, 20, 1,115,255,195, 1,118,255,195, 1,121,255,133, 1,122,255,133, 1,123,255,174, 1,125,255,174, + 1,126,255,133, 1,128,255,195, 1,129,255,174, 1,130,255,133, 1,132,255,174, 1,134,255,174, 1,135,255,174, 1,136, 0, 20, + 1,137,255,174, 1,138,255,195, 1,140,255,133, 1,142,255,133, 1,143,255,133, 1,144,255,133, 1,145,255,195, 1,146,255,174, + 1,147,255,133, 1,148,255,195, 1,149,255,174, 1,150,255,133, 1,151, 0, 61, 1,152,255,174, 1,153,255,133, 1,154,255,174, + 1,155,255,133, 1,251,255,195, 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 2,255,154, 2, 3,255,154, 2, 7, 0, 82, + 2, 11, 0, 82, 2, 40,255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 3, 29,255,133, 3, 30,255,133, + 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39,255,133, + 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47,255,133, + 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58,255,133, + 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75,255,195, + 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83,255,195, + 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91,255,195, + 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102,255,174, + 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 0, 45, 0, 15, +255,154, 0, 16,255,195, 0, 17,255,154, 0,109,255,195, 1, 95,255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,154, 1,109, +255,215, 1,115,255,195, 1,118,255,215, 1,121,255,154, 1,122,255,174, 1,123,255,195, 1,124,255,236, 1,125,255,215, 1,126, +255,154, 1,127,255,215, 1,129,255,154, 1,130,255,174, 1,131,255,215, 1,132,255,195, 1,133,255,215, 1,134,255,195, 1,135, +255,195, 1,136, 0, 20, 1,137,255,195, 1,139,255,236, 1,140,255,154, 1,142,255,154, 1,143,255,154, 1,144,255,154, 1,145, +255,236, 1,146,255,195, 1,147,255,154, 1,148,255,215, 1,149,255,195, 1,150,255,174, 1,151, 0, 41, 1,152,255,195, 1,153, +255,154, 1,154,255,195, 1,155,255,174, 2, 2,255,195, 2, 3,255,195, 0, 10, 1, 95,255,215, 1, 98,255,215, 1,103,255,236, + 1,105,255,215, 1,113,255,195, 1,114,255,195, 1,116,255,195, 1,119,255,215, 1,120,255,195, 1,136,255,215, 0, 23, 1,102, +255,215, 1,109,255,215, 1,115,255,195, 1,121,255,236, 1,124,255,236, 1,125,255,236, 1,126,255,236, 1,129,255,236, 1,133, +255,236, 1,134,255,236, 1,136, 0, 20, 1,140,255,236, 1,143,255,236, 1,144,255,236, 1,145,255,215, 1,146,255,215, 1,147, +255,236, 1,149,255,215, 1,150,255,236, 1,152,255,215, 1,153,255,236, 1,154,255,215, 1,155,255,236, 0, 12, 0, 15,255,174, + 0, 17,255,174, 1, 95,255,195, 1, 98,255,215, 1,105,255,195, 1,129,255,215, 1,142,255,215, 1,144,255,236, 1,147,255,236, + 1,150,255,236, 1,153,255,236, 1,155,255,236, 0, 3, 1,113,255,195, 1,114,255,215, 1,120,255,215, 0, 44, 0, 5, 0, 41, + 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, + 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, + 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109,255,236, 1,115,255,215, + 1,128,255,236, 1,129,255,236, 1,136, 0, 20, 1,145,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 3, 73,255,236, + 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, + 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0,238, 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, + 0, 41, 0, 15,255,154, 0, 16,255, 92, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45, +255,190, 0, 48,255,236, 0, 50,255,215, 0, 52,255,215, 0, 54,255,236, 0, 55, 0, 39, 0, 64, 0, 61, 0, 68,255,154, 0, 70, +255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83, +255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0, 96, + 0, 61, 0,109,255,195, 0,125,255,215, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133,255,154, 0,134,255,154, 0,135, +255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154, +255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167,255,154, 0,168,255,154, 0,169, +255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180,255,154, 0,181,255,154, 0,182, +255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189,255,195, 0,190,255,195, 0,191, +255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198,255,154, 0,199,255,154, 0,200, +255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213,255,154, 0,215,255,154, 0,217, +255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 0,246,255,190, 1, 6, +255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19,255,154, 1, 20, +255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34,255,236, 1, 35, +255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68,255,154, 1, 74,255,174, 1, 95, +255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,115,255,195, 1,118,255,215, 1,121,255,154, 1,122, +255,174, 1,123,255,195, 1,124,255,236, 1,125,255,195, 1,126,255,154, 1,127,255,215, 1,128,255,236, 1,129,255,154, 1,130, +255,154, 1,131,255,215, 1,132,255,195, 1,134,255,195, 1,135,255,195, 1,137,255,195, 1,138,255,236, 1,139,255,236, 1,140, +255,154, 1,141,255,215, 1,142,255,154, 1,143,255,154, 1,144,255,154, 1,145,255,215, 1,146,255,195, 1,147,255,154, 1,148, +255,215, 1,149,255,195, 1,150,255,154, 1,151, 0, 41, 1,152,255,195, 1,153,255,154, 1,154,255,195, 1,155,255,154, 2, 1, +255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 15,255,215, 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96, +255,154, 3, 29,255,154, 3, 30,255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37, +255,154, 3, 38,255,154, 3, 39,255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45, +255,154, 3, 46,255,154, 3, 47,255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54, +255,154, 3, 56,255,154, 3, 58,255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73, +255,215, 3, 74,255,154, 3, 75,255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81, +255,215, 3, 82,255,154, 3, 83,255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89, +255,215, 3, 90,255,154, 3, 91,255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98, +255,195, 3,100,255,195, 3,102,255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114, +255,236, 3,116,255,236, 0, 1, 1,136, 0, 41, 0, 6, 1,121,255,215, 1,126,255,236, 1,129,255,236, 1,140,255,236, 1,144, +255,236, 1,147,255,236, 0, 20, 1,121,255,236, 1,124,255,236, 1,125,255,236, 1,128,255,236, 1,129,255,236, 1,133,255,236, + 1,134,255,236, 1,136, 0, 41, 1,138,255,215, 1,140,255,236, 1,141,255,236, 1,143,255,236, 1,144,255,236, 1,145,255,215, + 1,146,255,236, 1,149,255,236, 1,151,255,236, 1,152,255,236, 1,153,255,236, 1,154,255,236, 0, 1, 1,148,255,236, 0, 11, + 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,129,255,236, 1,141, 0, 41, 1,142,255,236, 1,145, 0, 20, 1,148, 0, 20, + 1,150, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0, 2, 1,145,255,236, 1,148,255,215, 0, 11, 0, 5, 0, 61, 0, 10, 0, 61, + 1,121,255,215, 1,129,255,236, 1,140,255,215, 1,143,255,236, 1,144,255,215, 1,147,255,215, 1,153,255,215, 2, 7, 0, 61, + 2, 11, 0, 61, 0, 28, 1,121,255,174, 1,122,255,215, 1,125,255,215, 1,126,255,195, 1,128,255,215, 1,129,255,195, 1,130, +255,215, 1,131,255,215, 1,132,255,215, 1,133,255,215, 1,134,255,215, 1,135,255,236, 1,136, 0, 41, 1,138,255,215, 1,139, +255,215, 1,140,255,195, 1,141,255,195, 1,143,255,195, 1,144,255,195, 1,145,255,195, 1,146,255,195, 1,147,255,195, 1,149, +255,195, 1,150,255,195, 1,152,255,195, 1,153,255,195, 1,154,255,195, 1,155,255,195, 0, 16, 0, 5, 0, 82, 0, 10, 0, 82, + 1,121,255,215, 1,125,255,236, 1,126,255,236, 1,128,255,215, 1,133,255,215, 1,134,255,236, 1,136, 0, 41, 1,138,255,215, + 1,141,255,215, 1,145,255,215, 1,147,255,215, 1,151,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 0, 9, 0, 5, 0, 41, 0, 10, + 0, 41, 1,121,255,215, 1,126,255,215, 1,129,255,215, 1,130,255,236, 1,140,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 0, 13, + 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,125,255,236, 1,128,255,236, 1,133,255,215, 1,136, 0, 61, 1,138,255,215, + 1,141,255,215, 1,145,255,195, 1,148,255,215, 2, 7, 0, 61, 2, 11, 0, 61, 0, 7, 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, + 0, 20, 1,141, 0, 20, 1,142,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 0, 3, 0, 30, 0, 61, 1,126,255,236, 1,136, 0, 41, + 0, 5, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,145,255,236, 1,148,255,215, 0, 4, 1,126,255,236, 1,128, 0, 20, + 1,138, 0, 41, 1,145, 0, 20, 0, 7, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,128, 0, 20, 1,138, 0, 20, 1,141, + 0, 20, 1,145, 0, 41, 0, 14, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, 0,125, 0, 41, 1,128, 0, 20, 1,129,255,236, + 1,138, 0, 41, 1,140,255,215, 1,141, 0, 20, 1,143,255,215, 1,144,255,236, 1,145, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, + 0, 4, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,148,255,236, 0, 21, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, + 1,121,255,215, 1,122,255,215, 1,126,255,215, 1,128, 0, 20, 1,129,255,215, 1,130,255,215, 1,133,255,236, 1,140,255,215, + 1,143,255,215, 1,144,255,215, 1,146,255,236, 1,147,255,236, 1,148, 0, 41, 1,149,255,215, 1,150,255,215, 1,153,255,236, + 2, 7, 0, 82, 2, 11, 0, 82, 0, 4, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,128, 0, 20, 0, 19, 1,121,255,236, + 1,125,255,236, 1,126,255,215, 1,128,255,215, 1,129,255,236, 1,133,255,215, 1,136, 0, 41, 1,140,255,236, 1,141,255,215, + 1,143,255,236, 1,144,255,236, 1,145,255,215, 1,146,255,236, 1,148,255,236, 1,149,255,215, 1,152,255,236, 1,153,255,236, + 1,154,255,236, 1,155,255,236, 0, 56, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 45, 0, 61, 0, 50, +255,236, 0, 52,255,236, 0,132,255,236, 0,137,255,236, 0,138,255,236, 0,143,255,236, 0,148,255,236, 0,149,255,236, 0,150, +255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18, +255,236, 1,184,255,236, 1,187,255,236, 1,190,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126, +255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225, +255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75, +255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91, +255,236, 3, 93,255,236, 3, 95,255,236, 0, 61, 0, 5,255,195, 0, 10,255,195, 1,157,255,133, 1,166,255,133, 1,176,255,215, + 1,188,255,133, 1,189,255,215, 1,191,255,236, 1,193,255,195, 1,196,255,133, 1,220,255,195, 1,221,255,236, 1,223,255,236, + 1,225,255,195, 1,228,255,174, 2, 7,255,195, 2, 11,255,195, 2,109,255,236, 2,118,255,215, 2,124,255,195, 2,125,255,195, + 2,128,255,195, 2,129,255,236, 2,130,255,195, 2,131,255,236, 2,139,255,236, 2,159,255,215, 2,169,255,133, 2,170,255,195, + 2,181,255,133, 2,182,255,195, 2,183,255,133, 2,184,255,236, 2,185,255,133, 2,186,255,236, 2,187,255,215, 2,189,255,133, + 2,191,255,195, 2,192,255,195, 2,193,255,195, 2,194,255,195, 2,202,255,215, 2,212,255,195, 2,213,255,195, 2,229,255,215, + 2,247,255,215, 2,248,255,236, 2,249,255,215, 2,250,255,236, 2,251,255,215, 2,252,255,236, 2,253,255,195, 2,254,255,195, + 3, 5,255,215, 3, 7,255,215, 3, 13,255,195, 3, 14,255,236, 3, 15,255,195, 3, 16,255,236, 3, 23,255,133, 3, 24,255,195, + 0,212, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 55, +255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150, +255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159, +255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18, +255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54, +255,195, 1, 56,255,154, 1, 58,255,154, 1,159,255,236, 1,164,255,154, 1,170,255,133, 1,174,255,133, 1,181,255,133, 1,184, +255,215, 1,187,255,236, 1,190,255,195, 1,202,255,133, 1,203,255,215, 1,204,255,195, 1,205,255,195, 1,206,255, 92, 1,207, +255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, 1,215, +255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,223, +255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, 1,231, +255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, 1,242, +255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0, +255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 95,255,236, 2, 97,255,236, 2,106,255,133, 2,107,255,195, 2,108,255,215, 2,109, +255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,215, 2,133, +255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, 2,139,255,195, 2,140,255,215, 2,141, +255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, 2,170,255,195, 2,172,255,195, 2,174, +255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, 2,182,255,195, 2,184,255,195, 2,186, +255,195, 2,188,255,195, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,174, 2,198,255,113, 2,199,255,174, 2,203, +255,195, 2,206,255,133, 2,207,255, 92, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, 2,218, +255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,215, 2,227,255,215, 2,230,255,195, 2,236, +255,195, 2,238,255,195, 2,239,255,215, 2,240,255,133, 2,241,255,215, 2,242,255,133, 2,243,255,215, 2,244,255,133, 2,248, +255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255, 92, 3, 10, +255,133, 3, 11,255, 92, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, 3, 18,255, 92, 3, 20,255,195, 3, 21, +255,215, 3, 22,255,133, 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, 3, 28,255, 92, 3, 73,255,236, 3, 75, +255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91, +255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107, +255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 31, 0, 5, 0, 41, 0, 10, 0, 41, 1,159,255,215, + 1,184,255,236, 1,187,255,215, 1,190,255,236, 1,222,255,215, 1,225,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,108,255,236, + 2,125,255,215, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, + 2,179,255,236, 2,192,255,215, 2,194,255,215, 2,213,255,215, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, + 2,243,255,236, 2,254,255,215, 3, 21,255,236, 3, 25,255,236, 0, 5, 1,160,255,236, 1,220,255,215, 2,170,255,215, 2,182, +255,215, 3, 24,255,215, 0, 26, 1,159,255,236, 1,220,255,215, 1,221,255,236, 1,225,255,215, 1,228,255,236, 2,109,255,236, + 2,125,255,215, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, + 2,192,255,215, 2,194,255,215, 2,197,255,215, 2,199,255,215, 2,213,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, + 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0, 55, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42, +255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152, +255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14, +255,236, 1, 18,255,236, 1, 20,255,236, 1,159,255,236, 1,184,255,236, 1,187,255,236, 2, 11, 0, 41, 2, 95,255,236, 2,108, +255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179, +255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73, +255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, +255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 52, 0, 5,255,154, 0, 10,255,154, 1,166,255,133, 1,168,255,215, + 1,176,255,215, 1,181,255,236, 1,188,255,133, 1,189,255,236, 1,191,255,236, 1,193,255,174, 1,196,255,133, 1,220,255,215, + 1,225,255,215, 1,228,255,195, 2, 7,255,154, 2, 11,255,154, 2,118,255,215, 2,124,255,174, 2,125,255,215, 2,128,255,174, + 2,130,255,174, 2,159,255,215, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185,255,133, + 2,187,255,215, 2,189,255,133, 2,191,255,174, 2,192,255,215, 2,193,255,174, 2,194,255,215, 2,202,255,215, 2,206,255,236, + 2,212,255,174, 2,213,255,215, 2,229,255,215, 2,247,255,236, 2,249,255,236, 2,251,255,236, 2,253,255,174, 2,254,255,215, + 3, 5,255,215, 3, 7,255,215, 3, 13,255,174, 3, 15,255,174, 3, 17,255,236, 3, 23,255,133, 3, 24,255,215, 3, 27,255,236, + 0, 49, 0, 5,255,154, 0, 10,255,154, 1,157,255,133, 1,166,255,133, 1,168,255,215, 1,176,255,236, 1,188,255,133, 1,189, +255,215, 1,193,255,174, 1,196,255,133, 1,220,255,215, 1,223,255,236, 1,225,255,236, 1,228,255,215, 2, 7,255,154, 2, 11, +255,154, 2,118,255,236, 2,124,255,174, 2,125,255,236, 2,128,255,174, 2,130,255,174, 2,159,255,236, 2,169,255,133, 2,170, +255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185,255,133, 2,187,255,236, 2,189,255,133, 2,191,255,174, 2,192, +255,236, 2,193,255,174, 2,194,255,236, 2,202,255,236, 2,212,255,174, 2,213,255,236, 2,229,255,236, 2,247,255,215, 2,249, +255,215, 2,251,255,215, 2,253,255,174, 2,254,255,236, 3, 5,255,236, 3, 7,255,236, 3, 13,255,174, 3, 15,255,174, 3, 23, +255,133, 3, 24,255,215, 0, 29, 1,157,255,154, 1,166,255,154, 1,196,255,133, 1,220,255,215, 1,221,255,236, 1,225,255,215, + 1,228,255,195, 1,246,255,236, 2,109,255,236, 2,125,255,215, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,170,255,215, + 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,192,255,215, 2,194,255,215, 2,197,255,215, 2,199,255,215, 2,213,255,215, + 2,248,255,236, 2,250,255,236, 2,252,255,236, 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0,109, 0, 5, + 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149, +255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224, +255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, 1,159,255,215, 1,164, 0, 41, 1,181, + 0, 41, 1,184,255,215, 1,187,255,215, 1,190,255,174, 1,203,255,236, 1,206, 0, 20, 1,207,255,215, 1,216,255,215, 1,219, +255,215, 1,220,255,215, 1,221,255,215, 1,222,255,215, 1,225,255,195, 1,228,255,215, 1,234,255,215, 1,237,255,215, 2, 7, + 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,106,255,215, 2,108,255,215, 2,109,255,215, 2,125,255,195, 2,126,255,215, 2,127, +255,215, 2,129,255,215, 2,131,255,215, 2,132,255,215, 2,133,255,215, 2,134,255,215, 2,135,255,215, 2,136,255,215, 2,137, +255,215, 2,138,255,215, 2,139,255,215, 2,140,255,215, 2,141,255,215, 2,170,255,215, 2,177,255,215, 2,178,255,215, 2,179, +255,215, 2,180,255,215, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,192,255,195, 2,194,255,195, 2,206, 0, 41, 2,213, +255,195, 2,224,255,215, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,215, 2,241,255,215, 2,242,255,215, 2,243, +255,215, 2,244,255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,195, 3, 10,255,215, 3, 12,255,215, 3, 14, +255,215, 3, 16,255,215, 3, 17, 0, 41, 3, 21,255,215, 3, 22,255,215, 3, 24,255,215, 3, 25,255,215, 3, 26,255,215, 3, 27, + 0, 41, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87, +255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,103, 0, 5, 0, 82, 0, 10, 0, 82, 1,164,255,154, + 1,170,255,133, 1,174,255,113, 1,181,255,154, 1,187,255,215, 1,188, 0, 41, 1,190,255,215, 1,196, 0, 20, 1,201,255,236, + 1,202,255,174, 1,204,255,215, 1,205,255,215, 1,206,255, 92, 1,207,255,174, 1,209,255,215, 1,210,255,215, 1,211,255,215, + 1,212,255,215, 1,213,255, 92, 1,214,255,215, 1,215,255,215, 1,216,255,174, 1,217,255,215, 1,218,255,215, 1,219,255,174, + 1,222,255,174, 1,224,255,215, 1,225,255,215, 1,226,255,215, 1,227,255,215, 1,229,255,215, 1,230,255,215, 1,232,255,215, + 1,233,255,215, 1,234,255,215, 1,236,255,215, 1,237,255,174, 1,238,255,215, 1,240, 0, 82, 1,242,255,113, 1,243,255,215, + 1,245,255,215, 1,247,255,215, 1,249,255,215, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,174, 2,107,255,215, 2,114,255,133, + 2,125,255,215, 2,127,255,174, 2,133,255,174, 2,135,255,174, 2,137,255,174, 2,141,255,174, 2,150,255,215, 2,154,255,215, + 2,164,255,215, 2,166,255,215, 2,169, 0, 41, 2,172,255,215, 2,174,255,215, 2,176,255,215, 2,178,255,174, 2,180,255,174, + 2,181, 0, 41, 2,183, 0, 41, 2,185, 0, 41, 2,189, 0, 41, 2,192,255,215, 2,194,255,215, 2,196,255,215, 2,206,255,154, + 2,207,255, 92, 2,209,255,215, 2,211,255,215, 2,213,255,215, 2,215,255,215, 2,217,255,133, 2,218,255,174, 2,219,255,133, + 2,220,255,174, 2,221,255,133, 2,224,255,174, 2,236,255,215, 2,238,255,215, 2,240,255,174, 2,242,255,174, 2,244,255,174, + 2,254,255,215, 3, 0,255,215, 3, 10,255,174, 3, 12,255,174, 3, 17,255,154, 3, 18,255, 92, 3, 20,255,215, 3, 22,255,174, + 3, 23, 0, 41, 3, 26,255,174, 3, 27,255,154, 3, 28,255, 92, 0,137, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42, +255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137, +255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156, +255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, +255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48, +255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,157,255,154, 1,159,255,236, 1,164, + 0, 61, 1,166,255,133, 1,174, 0, 41, 1,181, 0, 41, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,190,255,215, 1,193, +255,174, 1,196,255,154, 1,213, 0, 41, 1,220,255,215, 1,225,255,195, 1,228,255,195, 1,231, 0, 41, 1,242, 0, 41, 1,250, +255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108, +255,236, 2,124,255,174, 2,125,255,195, 2,126,255,236, 2,128,255,174, 2,130,255,174, 2,132,255,236, 2,134,255,236, 2,136, +255,236, 2,138,255,236, 2,140,255,236, 2,169,255,133, 2,170,255,215, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182, +255,215, 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,191,255,174, 2,192,255,195, 2,193,255,174, 2,194,255,195, 2,197, +255,174, 2,198,255,195, 2,199,255,174, 2,206, 0, 41, 2,207, 0, 41, 2,212,255,174, 2,213,255,195, 2,225,255,236, 2,227, +255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,253,255,174, 2,254,255,195, 3, 13,255,174, 3, 15,255,174, 3, 17, + 0, 41, 3, 18, 0, 41, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 3, 73, +255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, +255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105, +255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 42, 1,157,255,215, 1,188,255,215, + 1,189,255,215, 1,191,255,236, 1,193,255,195, 1,196,255,215, 1,208,255,236, 1,220,255,215, 1,225,255,215, 1,228,255,215, + 2,124,255,195, 2,125,255,215, 2,128,255,195, 2,130,255,195, 2,160,255,236, 2,169,255,215, 2,170,255,215, 2,181,255,215, + 2,182,255,215, 2,183,255,215, 2,185,255,215, 2,188,255,236, 2,189,255,215, 2,191,255,195, 2,192,255,215, 2,193,255,195, + 2,194,255,215, 2,203,255,236, 2,212,255,195, 2,213,255,215, 2,230,255,236, 2,247,255,215, 2,249,255,215, 2,251,255,215, + 2,253,255,195, 2,254,255,215, 3, 6,255,236, 3, 8,255,236, 3, 13,255,195, 3, 15,255,195, 3, 23,255,215, 3, 24,255,215, + 0, 33, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, 1, 38,255,236, 1, 56, +255,236, 1, 58,255,236, 1,176,255,236, 1,188,255,236, 1,189,255,236, 1,191,255,236, 2, 0,255,236, 2,118,255,236, 2,159, +255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,187,255,236, 2,189,255,236, 2,202,255,236, 2,229, +255,236, 2,247,255,236, 2,249,255,236, 2,251,255,236, 3, 5,255,236, 3, 7,255,236, 3, 23,255,236, 3,111,255,236, 3,113, +255,236, 3,115,255,236, 0,143, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 1,159,255,236, 1,164,255,154, 1,170,255,133, + 1,174,255,133, 1,181,255,133, 1,184,255,215, 1,190,255,195, 1,202,255,133, 1,204,255,195, 1,205,255,195, 1,206,255, 92, + 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, + 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, + 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, + 1,231,255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, + 1,242,255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,133, + 2,107,255,195, 2,108,255,215, 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, + 2,131,255,195, 2,132,255,215, 2,133,255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, + 2,139,255,195, 2,140,255,215, 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, + 2,170,255,195, 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, + 2,182,255,195, 2,184,255,195, 2,186,255,195, 2,188,255,195, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,174, + 2,198,255,113, 2,199,255,174, 2,203,255,195, 2,206,255,133, 2,207,255, 92, 2,209,255,195, 2,211,255,195, 2,213,255,195, + 2,215,255,195, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,215, + 2,227,255,215, 2,230,255,195, 2,236,255,195, 2,238,255,195, 2,239,255,215, 2,240,255,133, 2,241,255,215, 2,242,255,133, + 2,243,255,215, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, + 3, 8,255,195, 3, 9,255, 92, 3, 10,255,133, 3, 11,255, 92, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, + 3, 18,255, 92, 3, 20,255,195, 3, 21,255,215, 3, 22,255,133, 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, + 3, 28,255, 92, 0, 66, 1,157,255,215, 1,163, 0,246, 1,164, 0, 41, 1,166,255,215, 1,170, 0, 20, 1,174, 0, 41, 1,181, + 0, 41, 1,184,255,236, 1,187,255,236, 1,188,255,215, 1,190,255,236, 1,193,255,215, 1,196,255,215, 1,206, 0, 41, 1,213, + 0, 41, 1,225,255,215, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,108,255,236, 2,114, 0, 20, 2,124,255,215, 2,125, +255,215, 2,126,255,236, 2,128,255,215, 2,130,255,215, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140, +255,236, 2,169,255,215, 2,177,255,236, 2,179,255,236, 2,181,255,215, 2,183,255,215, 2,185,255,215, 2,189,255,215, 2,191, +255,215, 2,192,255,215, 2,193,255,215, 2,194,255,215, 2,198,255,215, 2,206, 0, 41, 2,207, 0, 41, 2,212,255,215, 2,213, +255,215, 2,217, 0, 20, 2,219, 0, 20, 2,221, 0, 20, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243, +255,236, 2,253,255,215, 2,254,255,215, 3, 13,255,215, 3, 15,255,215, 3, 17, 0, 41, 3, 18, 0, 41, 3, 21,255,236, 3, 23, +255,215, 3, 25,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 0, 49, 0, 5, 0, 61, 0, 10, 0, 61, 0, 16,255,215, 1,159,255,215, + 1,164, 0, 41, 1,181, 0, 41, 1,184,255,215, 1,187,255,215, 1,190,255,195, 1,203,255,215, 1,213, 0, 41, 1,220,255,215, + 1,225,255,174, 1,242, 0, 41, 2, 7, 0, 61, 2, 11, 0, 61, 2,108,255,215, 2,125,255,174, 2,126,255,215, 2,132,255,215, + 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,170,255,215, 2,177,255,215, 2,179,255,215, 2,182,255,215, + 2,192,255,174, 2,194,255,174, 2,197,255,195, 2,198,255,154, 2,199,255,195, 2,206, 0, 41, 2,207, 0, 41, 2,213,255,174, + 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254,255,174, 3, 17, 0, 41, 3, 18, 0, 41, + 3, 21,255,215, 3, 24,255,215, 3, 25,255,215, 3, 27, 0, 41, 3, 28, 0, 41, 0, 38, 0, 5, 0, 41, 0, 10, 0, 41, 1,177, +255,236, 1,181,255,215, 1,188,255,215, 1,189,255,236, 1,190,255,236, 1,191,255,215, 1,193,255,236, 1,196,255,236, 1,199, +255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2,124,255,236, 2,128,255,236, 2,130,255,236, 2,161,255,236, 2,169,255,215, 2,181, +255,215, 2,183,255,215, 2,185,255,215, 2,189,255,215, 2,191,255,236, 2,193,255,236, 2,206,255,215, 2,212,255,236, 2,231, +255,236, 2,233,255,236, 2,245,255,236, 2,247,255,236, 2,249,255,236, 2,251,255,236, 2,253,255,236, 3, 13,255,236, 3, 15, +255,236, 3, 17,255,215, 3, 23,255,215, 3, 27,255,215, 0, 76, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,215, + 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, + 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, + 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, 1,159,255,215, 1,164, 0, 61, 1,181, 0, 41, 1,184,255,215, 1,187,255,215, + 1,190,255,174, 1,203,255,215, 1,213, 0, 41, 1,225,255,174, 1,228,255,215, 1,242, 0, 41, 2, 7, 0, 41, 2, 11, 0, 41, + 2, 95,255,215, 2,108,255,215, 2,125,255,174, 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, + 2,140,255,215, 2,177,255,215, 2,179,255,215, 2,192,255,174, 2,194,255,174, 2,206, 0, 41, 2,207, 0, 41, 2,213,255,174, + 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254,255,174, 3, 17, 0, 41, 3, 18, 0, 41, + 3, 21,255,215, 3, 25,255,215, 3, 27, 0, 41, 3, 28, 0, 41, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, + 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, + 0, 86, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59, +255,215, 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135, +255,236, 0,136,255,215, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196, +255,236, 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56, +255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1,157,255,215, 1,164,255,215, 1,166, +255,215, 1,170,255,236, 1,174,255,236, 1,176,255,215, 1,188,255,195, 1,191,255,236, 1,196,255,215, 1,250,255,236, 1,252, +255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,118,255,215, 2,159,255,215, 2,169, +255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,187,255,215, 2,189,255,195, 2,202,255,215, 2,217,255,236, 2,219, +255,236, 2,221,255,236, 2,229,255,215, 3, 5,255,215, 3, 7,255,215, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, +255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, +255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 69, 0, 5, 0, 61, + 0, 10, 0, 61, 0, 15,255, 51, 0, 17,255, 51, 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60,255,236, 0, 61,255,215, + 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255,113, 0,137,255,236, + 0,159,255,236, 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56,255,236, 1, 58,255,236, + 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, 1, 67,255,174, 1,164,255,174, 1,170,255,174, 1,174,255,154, 1,181,255,154, + 1,187,255,236, 1,206,255,154, 1,213,255,174, 1,242,255,174, 2, 0,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2, 40,255,174, + 2, 88,255,174, 2,114,255,174, 2,206,255,154, 2,207,255,174, 2,217,255,174, 2,219,255,174, 2,221,255,174, 3, 9,255,174, + 3, 11,255,174, 3, 17,255,154, 3, 18,255,174, 3, 27,255,154, 3, 28,255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, + 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, + 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 66, 0, 5, 0, 41, 0, 10, 0, 41, 0, 12, 0, 41, 0, 38, +255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 64, 0, 41, 0, 96, 0, 41, 0,137,255,215, 0,148,255,215, 0,149, +255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224, +255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1,159,255,215, 1,184,255,215, 1,187,255,215, 1,190, +255,195, 1,225,255,195, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, 2,125,255,195, 2,126,255,215, 2,132, +255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, 2,192,255,195, 2,194, +255,195, 2,198,255,174, 2,213,255,195, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254, +255,195, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83, +255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 1, 82, 0, 5, 0, 82, + 0, 10, 0, 82, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, + 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, + 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, + 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,130,255,133, 0,131,255,133, + 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, 0,149,255,195, + 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, 0,165,255,133, + 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, 0,173,255,133, + 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, 0,187,255,174, + 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, 0,196,255,133, + 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, 0,206,255,195, + 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, 0,224,255,195, + 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, 1, 17,255,133, + 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, 1, 32,255,236, + 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, 1, 64,255,195, + 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1,159,255,195, 1,160,255,236, 1,164,255,174, 1,170,255,133, 1,174,255,154, + 1,181,255,154, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,190,255,195, 1,196, 0, 20, 1,202,255,133, 1,204,255,195, + 1,205,255,195, 1,206,255,113, 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,212,255,195, 1,213,255,113, + 1,214,255,195, 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, + 1,222,255,133, 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,229,255,195, 1,230,255,195, + 1,232,255,195, 1,233,255,195, 1,234,255,133, 1,235, 0, 41, 1,236,255,195, 1,237,255,133, 1,238,255,133, 1,240, 0, 82, + 1,242,255,133, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,251,255,195, 1,253,255,195, 1,255,255,195, + 2, 1,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, + 2,106,255,133, 2,107,255,195, 2,108,255,195, 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,195, 2,127,255,133, + 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135,255,133, 2,136,255,195, 2,137,255,133, + 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, + 2,166,255,195, 2,169, 0, 20, 2,170,255,195, 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,195, 2,178,255,133, + 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184,255,195, 2,185, 0, 20, 2,186,255,195, + 2,188,255,195, 2,189, 0, 20, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,195, 2,198,255,133, 2,199,255,195, + 2,203,255,195, 2,206,255,154, 2,207,255,113, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, + 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,230,255,195, + 2,236,255,195, 2,238,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243,255,195, 2,244,255,133, + 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255,133, + 3, 10,255,133, 3, 11,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,154, 3, 18,255,113, 3, 20,255,195, + 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 27,255,154, 3, 28,255,113, + 3, 29,255,133, 3, 30,255,133, 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, + 3, 38,255,133, 3, 39,255,133, 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, + 3, 46,255,133, 3, 47,255,133, 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, + 3, 56,255,133, 3, 58,255,133, 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, + 3, 74,255,133, 3, 75,255,195, 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, + 3, 82,255,133, 3, 83,255,195, 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, + 3, 90,255,133, 3, 91,255,195, 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, + 3,100,255,174, 3,102,255,174, 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, + 3,116,255,195, 0, 99, 0, 5, 0, 61, 0, 10, 0, 61, 0, 16,255,215, 1,159,255,215, 1,164,255,174, 1,170,255,154, 1,174, +255,133, 1,181,255,154, 1,187,255,215, 1,190,255,236, 1,196, 0, 41, 1,202,255,174, 1,204,255,195, 1,205,255,195, 1,206, +255,113, 1,207,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255,113, 1,214,255,195, 1,215,255,195, 1,216, +255,154, 1,217,255,195, 1,218,255,195, 1,219,255,195, 1,222,255,174, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227, +255,195, 1,229,255,195, 1,230,255,195, 1,232,255,195, 1,233,255,195, 1,234,255,195, 1,236,255,195, 1,237,255,195, 1,238, +255,195, 1,240, 0, 61, 1,242,255,133, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 2, 7, 0, 61, 2, 11, + 0, 61, 2,106,255,154, 2,107,255,195, 2,114,255,154, 2,125,255,195, 2,127,255,154, 2,133,255,154, 2,135,255,154, 2,137, +255,154, 2,141,255,154, 2,150,255,195, 2,154,255,195, 2,164,255,195, 2,166,255,195, 2,172,255,195, 2,174,255,195, 2,176, +255,195, 2,178,255,154, 2,180,255,154, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,198,255,174, 2,206,255,154, 2,207, +255,113, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,154, 2,218,255,174, 2,219,255,154, 2,220, +255,174, 2,221,255,154, 2,224,255,154, 2,236,255,195, 2,238,255,195, 2,240,255,154, 2,242,255,154, 2,244,255,154, 2,254, +255,195, 3, 0,255,195, 3, 9,255,133, 3, 10,255,154, 3, 11,255,133, 3, 12,255,154, 3, 17,255,154, 3, 18,255,113, 3, 20, +255,195, 3, 22,255,154, 3, 26,255,154, 3, 27,255,154, 3, 28,255,113, 0, 42, 1,157,255,215, 1,164,255,215, 1,166,255,195, + 1,168,255,236, 1,170,255,215, 1,174,255,215, 1,176,255,195, 1,181,255,215, 1,188,255,195, 1,191,255,215, 1,196,255,195, + 1,199,255,215, 1,206,255,195, 1,213,255,195, 1,242,255,195, 2,114,255,215, 2,118,255,195, 2,159,255,195, 2,161,255,215, + 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,187,255,195, 2,189,255,195, 2,202,255,195, 2,206,255,215, + 2,207,255,195, 2,217,255,215, 2,219,255,215, 2,221,255,215, 2,229,255,195, 2,231,255,215, 2,233,255,215, 2,245,255,215, + 3, 5,255,195, 3, 7,255,195, 3, 17,255,215, 3, 18,255,195, 3, 23,255,195, 3, 27,255,215, 3, 28,255,195, 0, 46, 0, 5, + 0, 41, 0, 10, 0, 41, 1,159,255,215, 1,164, 0, 61, 1,174, 0, 41, 1,181, 0, 41, 1,184,255,236, 1,187,255,215, 1,190, +255,215, 1,193,255,236, 1,225,255,195, 2, 7, 0, 41, 2, 11, 0, 41, 2,108,255,236, 2,124,255,236, 2,125,255,195, 2,126, +255,236, 2,128,255,236, 2,130,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177, +255,236, 2,179,255,236, 2,191,255,236, 2,192,255,195, 2,193,255,236, 2,194,255,195, 2,206, 0, 41, 2,212,255,236, 2,213, +255,195, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,253,255,236, 2,254,255,195, 3, 13, +255,236, 3, 15,255,236, 3, 17, 0, 41, 3, 21,255,236, 3, 25,255,236, 3, 27, 0, 41, 0, 48, 1,163, 0,246, 1,164, 0, 41, + 1,170, 0, 20, 1,174, 0, 41, 1,181, 0, 41, 1,188,255,236, 1,190,255,236, 1,191, 0, 20, 1,193,255,236, 1,206, 0, 41, + 1,213, 0, 20, 1,225,255,215, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,114, 0, 20, 2,124,255,236, 2,125,255,215, + 2,128,255,236, 2,130,255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,189,255,236, 2,191,255,236, + 2,192,255,215, 2,193,255,236, 2,194,255,215, 2,197,255,215, 2,198,255,215, 2,199,255,215, 2,206, 0, 41, 2,207, 0, 20, + 2,212,255,236, 2,213,255,215, 2,217, 0, 20, 2,219, 0, 20, 2,221, 0, 20, 2,253,255,236, 2,254,255,215, 3, 13,255,236, + 3, 15,255,236, 3, 17, 0, 41, 3, 18, 0, 20, 3, 23,255,236, 3, 27, 0, 41, 3, 28, 0, 20, 0, 62, 1,157,255,236, 1,163, + 0,225, 1,164, 0, 61, 1,170, 0, 41, 1,174, 0, 41, 1,181, 0, 41, 1,188,255,236, 1,189, 0, 41, 1,190,255,236, 1,191, + 0, 20, 1,193,255,236, 1,196,255,236, 1,199, 0, 20, 1,206, 0, 61, 1,209, 0, 20, 1,213, 0, 41, 1,220,255,236, 1,225, +255,215, 1,228,255,236, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,114, 0, 41, 2,124,255,236, 2,125,255,215, 2,128, +255,236, 2,130,255,236, 2,161, 0, 20, 2,169,255,236, 2,170,255,236, 2,181,255,236, 2,182,255,236, 2,183,255,236, 2,185, +255,236, 2,189,255,236, 2,191,255,236, 2,192,255,215, 2,193,255,236, 2,194,255,215, 2,206, 0, 41, 2,207, 0, 41, 2,212, +255,236, 2,213,255,215, 2,217, 0, 41, 2,219, 0, 41, 2,221, 0, 41, 2,231, 0, 20, 2,233, 0, 20, 2,245, 0, 20, 2,247, + 0, 41, 2,249, 0, 41, 2,251, 0, 41, 2,253,255,236, 2,254,255,215, 3, 13,255,236, 3, 15,255,236, 3, 17, 0, 41, 3, 18, + 0, 41, 3, 23,255,236, 3, 24,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 0, 30, 0, 5,255,195, 0, 10,255,195, 1,157,255,133, + 1,166,255,113, 1,168,255,215, 1,188,255,133, 1,193,255,195, 1,196,255,133, 1,220,255,215, 1,228,255,215, 2, 7,255,195, + 2, 11,255,195, 2,124,255,195, 2,128,255,195, 2,130,255,195, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, + 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,191,255,195, 2,193,255,195, 2,212,255,195, 2,253,255,195, 3, 13,255,195, + 3, 15,255,195, 3, 23,255,133, 3, 24,255,215, 0, 32, 0, 5,255,154, 0, 10,255,154, 1,157,255,133, 1,166,255,133, 1,168, +255,215, 1,188,255,133, 1,193,255,195, 1,196,255,133, 1,220,255,215, 1,228,255,215, 2, 7,255,154, 2, 11,255,154, 2,124, +255,195, 2,128,255,195, 2,130,255,195, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185, +255,133, 2,189,255,133, 2,191,255,195, 2,193,255,195, 2,197,255,195, 2,199,255,195, 2,212,255,195, 2,253,255,195, 3, 13, +255,195, 3, 15,255,195, 3, 23,255,133, 3, 24,255,215, 0, 35, 1,157,255,215, 1,164,255,215, 1,166,255,215, 1,168,255,215, + 1,174,255,215, 1,176,255,195, 1,177,255,236, 1,181,255,195, 1,188,255,215, 1,189,255,236, 1,191,255,215, 1,213,255,215, + 1,242,255,215, 2,118,255,195, 2,159,255,195, 2,169,255,215, 2,181,255,215, 2,183,255,215, 2,185,255,215, 2,187,255,195, + 2,189,255,215, 2,202,255,195, 2,206,255,195, 2,207,255,215, 2,229,255,195, 2,247,255,236, 2,249,255,236, 2,251,255,236, + 3, 5,255,195, 3, 7,255,195, 3, 17,255,195, 3, 18,255,215, 3, 23,255,215, 3, 27,255,195, 3, 28,255,215, 0, 29, 1,157, +255,215, 1,164,255,215, 1,166,255,215, 1,168,255,236, 1,174,255,215, 1,176,255,215, 1,177,255,236, 1,181,255,215, 1,189, +255,236, 1,191,255,215, 1,206,255,215, 1,213,255,215, 1,242,255,215, 2,118,255,215, 2,159,255,215, 2,187,255,215, 2,202, +255,215, 2,206,255,215, 2,207,255,215, 2,229,255,215, 2,247,255,236, 2,249,255,236, 2,251,255,236, 3, 5,255,215, 3, 7, +255,215, 3, 17,255,215, 3, 18,255,215, 3, 27,255,215, 3, 28,255,215, 0, 25, 0, 10,255,215, 1,220,255,215, 1,221,255,236, + 1,225,255,236, 1,228,255,215, 1,246,255,215, 2,109,255,236, 2,125,255,236, 2,129,255,236, 2,131,255,236, 2,139,255,236, + 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,192,255,236, 2,194,255,236, 2,213,255,236, 2,248,255,236, + 2,250,255,236, 2,252,255,236, 2,254,255,236, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0, 33, 1,206,255,215, 1,208, +255,215, 1,220,255,215, 1,221,255,215, 1,223,255,215, 1,225,255,236, 1,228,255,215, 1,246,255,215, 2,109,255,215, 2,125, +255,236, 2,129,255,215, 2,131,255,215, 2,139,255,215, 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,184,255,215, 2,186, +255,215, 2,188,255,215, 2,192,255,236, 2,194,255,236, 2,203,255,215, 2,213,255,236, 2,230,255,215, 2,248,255,215, 2,250, +255,215, 2,252,255,215, 2,254,255,236, 3, 6,255,215, 3, 8,255,215, 3, 14,255,215, 3, 16,255,215, 3, 24,255,215, 0, 36, + 0, 5, 0, 61, 0, 10, 0, 61, 1,208,255,236, 1,220,255,215, 1,221,255,215, 1,223,255,215, 1,225,255,236, 1,228,255,215, + 1,246,255,215, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,215, 2,125,255,236, 2,129,255,215, 2,131,255,215, 2,139,255,215, + 2,160,255,236, 2,170,255,215, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,188,255,236, 2,192,255,236, 2,194,255,236, + 2,203,255,236, 2,213,255,236, 2,230,255,236, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,236, 3, 6,255,236, + 3, 8,255,236, 3, 14,255,215, 3, 16,255,215, 3, 24,255,215, 0, 7, 1,206,255,154, 1,213,255,154, 1,237,255,236, 1,242, +255,154, 2,207,255,154, 3, 18,255,154, 3, 28,255,154, 0, 16, 1,202, 0, 20, 1,206, 0, 41, 1,220,255,215, 1,225,255,215, + 1,228,255,195, 1,241, 0,123, 2,125,255,215, 2,170,255,215, 2,182,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, + 2,218, 0, 20, 2,220, 0, 20, 2,254,255,215, 3, 24,255,215, 0, 13, 0, 10,255,215, 1,208,255,215, 1,220,255,236, 1,223, +255,236, 2,160,255,215, 2,170,255,236, 2,182,255,236, 2,188,255,215, 2,203,255,215, 2,230,255,215, 3, 6,255,215, 3, 8, +255,215, 3, 24,255,236, 0, 32, 0, 5, 0, 41, 0, 10, 0, 41, 1,207,255,215, 1,216,255,215, 1,219,255,236, 1,222,255,215, + 1,225,255,215, 1,234,255,215, 1,237,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,125,255,215, 2,127,255,215, + 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,192,255,215, 2,194,255,215, + 2,213,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,254,255,215, 3, 10,255,215, 3, 12,255,215, + 3, 22,255,215, 3, 26,255,215, 0, 29, 0, 5, 0, 61, 0, 10, 0, 61, 1,209,255,236, 1,220,255,236, 1,221,255,236, 1,223, +255,236, 1,225,255,215, 1,246,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,236, 2,125,255,215, 2,129,255,236, 2,131, +255,236, 2,139,255,236, 2,170,255,236, 2,182,255,236, 2,184,255,236, 2,186,255,236, 2,192,255,215, 2,194,255,215, 2,213, +255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,236, 0, 33, + 0, 5, 0, 41, 0, 10, 0, 41, 1,203,255,215, 1,207,255,215, 1,216,255,215, 1,219,255,215, 1,222,255,215, 1,225,255,215, + 1,234,255,215, 1,237,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,125,255,215, 2,127,255,215, 2,133,255,215, + 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, + 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,254,255,215, 3, 10,255,215, 3, 12,255,215, 3, 22,255,215, + 3, 26,255,215, 0, 34, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,220, +255,215, 1,221,255,236, 1,223,255,215, 1,242,255,236, 1,246,255,236, 2,109,255,236, 2,129,255,236, 2,131,255,236, 2,139, +255,236, 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,188,255,215, 2,203,255,215, 2,207, +255,236, 2,230,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 6,255,215, 3, 8,255,215, 3, 14,255,236, 3, 16, +255,236, 3, 18,255,236, 3, 24,255,215, 3, 28,255,236, 0, 19, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,220,255,236, + 1,223,255,236, 1,228,255,236, 1,242,255,236, 2,160,255,215, 2,170,255,236, 2,182,255,236, 2,188,255,215, 2,203,255,215, + 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, 3, 24,255,236, 3, 28,255,236, 0, 23, 0, 5, + 0, 61, 0, 10, 0, 61, 1,207,255,236, 1,216,255,236, 1,237,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2,106,255,236, 2,127, +255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178,255,236, 2,180,255,236, 2,224,255,236, 2,240, +255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22,255,236, 3, 26,255,236, 0, 48, 0, 5, 0, 82, + 0, 10, 0, 82, 0, 73, 0, 20, 1,202,255,215, 1,206,255,154, 1,207,255,236, 1,213,255,195, 1,216,255,215, 1,219,255,215, + 1,221, 0, 20, 1,222,255,215, 1,237,255,215, 1,242,255,154, 1,246, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,215, + 2,109, 0, 20, 2,127,255,215, 2,129, 0, 20, 2,131, 0, 20, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,139, 0, 20, + 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,184, 0, 20, 2,186, 0, 20, 2,207,255,195, 2,218,255,215, 2,220,255,215, + 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,248, 0, 20, 2,250, 0, 20, 2,252, 0, 20, 3, 10,255,215, + 3, 12,255,215, 3, 14, 0, 20, 3, 16, 0, 20, 3, 18,255,195, 3, 22,255,215, 3, 26,255,215, 3, 28,255,195, 0, 36, 0, 5, + 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,202,255,236, 1,206,255,195, 1,213,255,195, 1,216,255,236, 1,220, 0, 20, 1,222, +255,236, 1,242,255,195, 2, 7, 0, 61, 2, 11, 0, 61, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137, +255,236, 2,141,255,236, 2,170, 0, 20, 2,178,255,236, 2,180,255,236, 2,182, 0, 20, 2,207,255,195, 2,218,255,236, 2,220, +255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 18,255,195, 3, 22, +255,236, 3, 24, 0, 20, 3, 26,255,236, 3, 28,255,195, 0, 28, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,208,255,215, + 1,209,255,236, 1,213,255,236, 1,220,255,215, 1,223,255,236, 1,225,255,236, 1,228,255,215, 1,242,255,215, 2,125,255,236, + 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,188,255,215, 2,192,255,236, 2,194,255,236, 2,203,255,215, 2,207,255,236, + 2,213,255,236, 2,230,255,215, 2,254,255,236, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, 3, 24,255,215, 3, 28,255,236, + 0, 29, 1,203,255,236, 1,207,255,236, 1,216,255,236, 1,219,255,236, 1,222,255,236, 1,225,255,236, 1,234,255,236, 1,237, +255,236, 2,106,255,236, 2,125,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178, +255,236, 2,180,255,236, 2,192,255,236, 2,194,255,236, 2,213,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244, +255,236, 2,254,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22,255,236, 3, 26,255,236, 0, 21, 1,206, 0, 41, 1,213, 0, 41, + 1,220,255,236, 1,225,255,236, 1,228,255,215, 1,231, 0, 41, 1,233, 0, 20, 1,241, 0,102, 1,242, 0, 41, 1,246, 0, 20, + 2,125,255,236, 2,170,255,236, 2,182,255,236, 2,192,255,236, 2,194,255,236, 2,207, 0, 41, 2,213,255,236, 2,254,255,236, + 3, 18, 0, 41, 3, 24,255,236, 3, 28, 0, 41, 0, 22, 1,206, 0, 61, 1,213, 0, 41, 1,220,255,236, 1,225,255,236, 1,228, +255,236, 1,231, 0, 20, 1,234,255,236, 1,237,255,236, 1,241, 0,102, 1,242, 0, 41, 1,246, 0, 20, 2,125,255,236, 2,170, +255,236, 2,182,255,236, 2,192,255,236, 2,194,255,236, 2,207, 0, 41, 2,213,255,236, 2,254,255,236, 3, 18, 0, 41, 3, 24, +255,236, 3, 28, 0, 41, 0, 25, 1,220,255,154, 1,221,255,215, 1,223,255,236, 1,225,255,215, 1,228,255,113, 1,246,255,195, + 2,109,255,215, 2,125,255,215, 2,129,255,215, 2,131,255,215, 2,139,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,215, + 2,186,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,215, + 3, 14,255,215, 3, 16,255,215, 3, 24,255,154, 0, 28, 0, 5, 0, 61, 0, 10, 0, 61, 1,220,255,154, 1,221,255,215, 1,223, +255,236, 1,225,255,215, 1,228,255,113, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,215, 2,125,255,215, 2,129,255,215, 2,131, +255,215, 2,139,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,215, 2,186,255,215, 2,192,255,215, 2,194,255,215, 2,213, +255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,215, 3, 14,255,215, 3, 16,255,215, 3, 24,255,154, 0, 17, + 1,206,255,215, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,223,255,236, 1,228,255,215, 1,242,255,236, 1,246,255,215, + 2,160,255,215, 2,188,255,215, 2,203,255,215, 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, + 3, 28,255,236, 0, 16, 1,206,255,215, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,223,255,236, 1,228,255,215, 1,246, +255,236, 2,160,255,215, 2,188,255,215, 2,203,255,215, 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18, +255,236, 3, 28,255,236, 0, 3, 0, 5,255,152, 0, 10,255,215, 1,223,255,236, 0, 28, 1,206,255,154, 1,207,255,215, 1,213, +255,154, 1,216,255,215, 1,219,255,236, 1,222,255,215, 1,234,255,215, 1,237,255,236, 1,242,255,154, 2,106,255,215, 2,127, +255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,207,255,154, 2,224, +255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, 3, 12,255,215, 3, 18,255,154, 3, 22,255,215, 3, 26, +255,215, 3, 28,255,154, 0, 2, 1,235, 0, 61, 1,244, 0, 61, 0, 33, 1,208,255,215, 1,220,255,154, 1,221,255,195, 1,222, +255,236, 1,223,255,236, 1,225,255,215, 1,228,255,154, 1,246,255,215, 2,109,255,195, 2,125,255,215, 2,129,255,195, 2,131, +255,195, 2,139,255,195, 2,160,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,195, 2,186,255,195, 2,188,255,215, 2,192, +255,215, 2,194,255,215, 2,203,255,215, 2,213,255,215, 2,230,255,215, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254, +255,215, 3, 6,255,215, 3, 8,255,215, 3, 14,255,195, 3, 16,255,195, 3, 24,255,154, 0, 31, 1,208,255,215, 1,220,255,154, + 1,221,255,195, 1,223,255,236, 1,225,255,215, 1,228,255,154, 2,109,255,195, 2,125,255,215, 2,129,255,195, 2,131,255,195, + 2,139,255,195, 2,160,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,195, 2,186,255,195, 2,188,255,215, 2,192,255,215, + 2,194,255,215, 2,203,255,215, 2,213,255,215, 2,230,255,215, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,215, + 3, 6,255,215, 3, 8,255,215, 3, 14,255,195, 3, 16,255,195, 3, 24,255,154, 0, 1, 1,246,255,215, 0, 28, 0, 5, 0, 41, + 0, 10, 0, 41, 1,203,255,236, 1,207,255,215, 1,216,255,215, 1,219,255,236, 1,222,255,215, 1,234,255,215, 1,237,255,215, + 1,246,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,127,255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, + 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, + 3, 12,255,215, 3, 22,255,215, 3, 26,255,215, 0, 29, 1,202,255,215, 1,213,255,195, 1,216,255,236, 1,220, 0, 20, 1,242, +255,215, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,170, 0, 20, 2,178, +255,236, 2,180,255,236, 2,182, 0, 20, 2,207,255,195, 2,218,255,215, 2,220,255,215, 2,224,255,236, 2,240,255,236, 2,242, +255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 18,255,195, 3, 22,255,236, 3, 24, 0, 20, 3, 26,255,236, 3, 28, +255,195, 0,218, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, + 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, + 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, + 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, + 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, + 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1,159,255,236, 1,164,255,154, 1,170,255,133, 1,174,255,133, 1,181,255,133, + 1,184,255,215, 1,187,255,236, 1,188,255,133, 1,190,255,195, 1,202,255,133, 1,204,255,195, 1,205,255,195, 1,206,255, 92, + 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, + 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, + 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, + 1,231,255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, + 1,242,255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,250,255,195, 1,252,255,195, 1,254,255,195, + 2, 0,255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 95,255,236, 2, 97,255,236, 2,106,255,133, 2,107,255,195, 2,108,255,215, + 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,215, + 2,133,255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, 2,139,255,195, 2,140,255,215, + 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, 2,169,255,133, 2,170,255,195, + 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, 2,181,255,133, + 2,182,255,195, 2,183,255,133, 2,184,255,195, 2,185,255,133, 2,186,255,195, 2,188,255,195, 2,189,255,133, 2,192,255,195, + 2,194,255,195, 2,196,255,195, 2,197,255,174, 2,198,255,113, 2,199,255,174, 2,203,255,195, 2,206,255,133, 2,207,255, 92, + 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, + 2,221,255,133, 2,224,255,133, 2,225,255,215, 2,227,255,215, 2,230,255,195, 2,236,255,195, 2,238,255,195, 2,239,255,215, + 2,240,255,133, 2,241,255,215, 2,242,255,133, 2,243,255,215, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, + 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255, 92, 3, 10,255,133, 3, 11,255, 92, 3, 12,255,133, + 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, 3, 18,255, 92, 3, 20,255,195, 3, 21,255,215, 3, 22,255,133, 3, 23,255,133, + 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, 3, 28,255, 92, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, + 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, + 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, + 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 3, 0, 55,255,154, 1,113,255,154, 1,114,255,195, 0,195, 0, 36,255,174, + 0, 44, 0, 41, 0, 55, 0, 82, 0, 57, 0, 82, 0, 58, 0,102, 0, 59, 0, 41, 0, 60, 0, 82, 0, 61, 0, 41, 0, 70,255,195, + 0, 71,255,195, 0, 72,255,195, 0, 74,255,215, 0, 82,255,195, 0, 84,255,195, 0, 87, 0, 41, 0, 89, 0, 41, 0, 90, 0, 20, + 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255, 92, 0,142, 0, 41, + 0,143, 0, 41, 0,144, 0, 41, 0,145, 0, 41, 0,159, 0, 82, 0,168,255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, + 0,172,255,195, 0,173,255,195, 0,180,255,195, 0,181,255,195, 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, + 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,201,255,195, 0,203,255,195, 0,205,255,195, 0,207,255,195, 0,213,255,195, + 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, 0,236, 0, 41, 0,240, 0, 41, 0,242, 0, 41, 1, 15,255,195, + 1, 17,255,195, 1, 19,255,195, 1, 21,255,195, 1, 36, 0, 82, 1, 38, 0, 82, 1, 54, 0,102, 1, 55, 0, 20, 1, 56, 0, 82, + 1, 58, 0, 82, 1, 59, 0, 41, 1, 61, 0, 41, 1, 63, 0, 41, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,113, 0, 82, + 1,121,255,195, 1,126,255,195, 1,130,255,195, 1,138, 0, 41, 1,140,255,195, 1,142,255,195, 1,144,255,195, 1,145, 0, 41, + 1,147,255,195, 1,148, 0, 41, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,157, 0, 82, 1,164,255,154, 1,166, 0, 82, + 1,168, 0, 61, 1,170,255,174, 1,174,255,133, 1,176, 0, 61, 1,177, 0, 20, 1,181,255,133, 1,188, 0, 82, 1,189, 0, 61, + 1,191, 0, 41, 1,196, 0, 82, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,220, 0, 41, 1,222,255,195, 1,234,255,195, + 1,237,255,195, 1,250, 0,102, 1,251, 0, 20, 1,252, 0,102, 1,253, 0, 20, 1,254, 0,102, 1,255, 0, 20, 2, 0, 0, 82, + 2, 40,255,174, 2, 88,255,174, 2, 96,255,195, 2,106,255,195, 2,114,255,174, 2,118, 0, 61, 2,127,255,195, 2,133,255,195, + 2,135,255,195, 2,137,255,195, 2,141,255,195, 2,159, 0, 61, 2,169, 0, 82, 2,170, 0, 41, 2,178,255,195, 2,180,255,195, + 2,181, 0, 82, 2,182, 0, 41, 2,183, 0, 82, 2,185, 0, 82, 2,187, 0, 61, 2,189, 0, 82, 2,202, 0, 61, 2,206,255,133, + 2,217,255,174, 2,219,255,174, 2,221,255,174, 2,224,255,195, 2,229, 0, 61, 2,240,255,195, 2,242,255,195, 2,244,255,195, + 2,247, 0, 61, 2,249, 0, 61, 2,251, 0, 61, 3, 5, 0, 61, 3, 7, 0, 61, 3, 10,255,195, 3, 12,255,195, 3, 17,255,133, + 3, 22,255,195, 3, 23, 0, 82, 3, 24, 0, 41, 3, 26,255,195, 3, 27,255,133, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, + 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, + 3, 51,255,174, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, + 3, 68,255,195, 3, 69, 0, 41, 3, 71, 0, 41, 3, 74,255,195, 3, 76,255,195, 3, 78,255,195, 3, 80,255,195, 3, 82,255,195, + 3, 84,255,195, 3, 86,255,195, 3, 88,255,195, 3, 90,255,195, 3, 92,255,195, 3, 94,255,195, 3, 96,255,195, 3,111, 0, 82, + 3,113, 0, 82, 3,115, 0, 82, 0, 16, 0, 69, 0, 61, 0, 73, 0,102, 0, 75, 0, 61, 0, 76, 0, 61, 0, 77, 0, 61, 0, 78, + 0, 61, 0, 79, 0, 61, 0, 87, 0,102, 0, 89, 0,102, 0, 90, 0,102, 0, 91, 0, 41, 0, 92, 0,102, 0, 93, 0, 41, 3,112, + 0,102, 3,114, 0,102, 3,116, 0,102, 0, 16, 0, 69, 0, 61, 0, 73, 0,102, 0, 75, 0, 61, 0, 76, 0, 61, 0, 77, 0, 61, + 0, 78, 0, 61, 0, 79, 0, 61, 0, 87, 0,102, 0, 89, 0,102, 0, 90, 0, 82, 0, 91, 0, 41, 0, 92, 0,102, 0, 93, 0, 20, + 3,112, 0,102, 3,114, 0,102, 3,116, 0,102, 0, 2, 3, 9,255,133, 3, 11,255,133, 0, 2, 0,150, 0, 5, 0, 5, 0, 0, + 0, 10, 0, 11, 0, 1, 0, 15, 0, 17, 0, 3, 0, 36, 0, 39, 0, 6, 0, 41, 0, 41, 0, 10, 0, 44, 0, 44, 0, 11, 0, 46, + 0, 47, 0, 12, 0, 50, 0, 53, 0, 14, 0, 55, 0, 62, 0, 18, 0, 68, 0, 70, 0, 26, 0, 72, 0, 75, 0, 29, 0, 78, 0, 78, + 0, 33, 0, 80, 0, 82, 0, 34, 0, 85, 0, 87, 0, 37, 0, 89, 0, 94, 0, 40, 0,109, 0,109, 0, 46, 0,125, 0,125, 0, 47, + 0,130, 0,135, 0, 48, 0,137, 0,146, 0, 54, 0,148, 0,152, 0, 64, 0,154, 0,159, 0, 69, 0,162, 0,173, 0, 75, 0,179, + 0,184, 0, 87, 0,186, 0,191, 0, 93, 0,193, 0,201, 0, 99, 0,203, 0,203, 0,108, 0,205, 0,207, 0,109, 0,209, 0,209, + 0,112, 0,213, 0,213, 0,113, 0,215, 0,215, 0,114, 0,217, 0,219, 0,115, 0,221, 0,221, 0,118, 0,236, 0,236, 0,119, + 0,240, 0,240, 0,120, 0,242, 0,242, 0,121, 0,248, 0,248, 0,122, 0,250, 0,251, 0,123, 0,253, 0,253, 0,125, 0,255, + 1, 1, 0,126, 1, 3, 1, 3, 0,129, 1, 6, 1, 6, 0,130, 1, 8, 1, 8, 0,131, 1, 10, 1, 10, 0,132, 1, 14, 1, 15, + 0,133, 1, 17, 1, 19, 0,135, 1, 21, 1, 21, 0,138, 1, 29, 1, 29, 0,139, 1, 31, 1, 31, 0,140, 1, 33, 1, 36, 0,141, + 1, 38, 1, 39, 0,145, 1, 44, 1, 44, 0,147, 1, 48, 1, 48, 0,148, 1, 50, 1, 50, 0,149, 1, 52, 1, 52, 0,150, 1, 54, + 1, 59, 0,151, 1, 61, 1, 61, 0,157, 1, 63, 1, 64, 0,158, 1, 67, 1, 68, 0,160, 1, 74, 1, 74, 0,162, 1, 86, 1, 86, + 0,163, 1, 90, 1, 98, 0,164, 1,100, 1,100, 0,173, 1,102, 1,105, 0,174, 1,108, 1,109, 0,178, 1,111, 1,124, 0,180, + 1,126, 1,132, 0,194, 1,134, 1,136, 0,201, 1,138, 1,142, 0,204, 1,144, 1,145, 0,209, 1,147, 1,151, 0,211, 1,153, + 1,153, 0,216, 1,155, 1,162, 0,217, 1,164, 1,168, 0,225, 1,170, 1,174, 0,230, 1,176, 1,177, 0,235, 1,180, 1,180, + 0,237, 1,184, 1,184, 0,238, 1,186, 1,192, 0,239, 1,195, 1,196, 0,246, 1,198, 1,200, 0,248, 1,202, 1,209, 0,251, + 1,212, 1,212, 1, 3, 1,216, 1,216, 1, 4, 1,218, 1,224, 1, 5, 1,227, 1,234, 1, 12, 1,236, 1,238, 1, 20, 1,240, + 1,240, 1, 23, 1,242, 1,246, 1, 24, 1,248, 2, 3, 1, 29, 2, 6, 2, 6, 1, 41, 2, 10, 2, 10, 1, 42, 2, 40, 2, 40, + 1, 43, 2, 88, 2, 88, 1, 44, 2, 96, 2, 96, 1, 45, 2, 98, 2, 98, 1, 46, 2,106, 2,106, 1, 47, 2,108, 2,114, 1, 48, + 2,116, 2,116, 1, 55, 2,118, 2,124, 1, 56, 2,126, 2,140, 1, 63, 2,149, 2,157, 1, 78, 2,159, 2,160, 1, 87, 2,162, + 2,175, 1, 89, 2,177, 2,192, 1,103, 2,195, 2,195, 1,119, 2,197, 2,197, 1,120, 2,199, 2,199, 1,121, 2,201, 2,204, + 1,122, 2,206, 2,207, 1,126, 2,210, 2,211, 1,128, 2,214, 2,217, 1,130, 2,219, 2,219, 1,134, 2,222, 2,222, 1,135, + 2,224, 2,233, 1,136, 2,239, 2,252, 1,146, 2,255, 3, 0, 1,160, 3, 3, 3, 8, 1,162, 3, 11, 3, 29, 1,168, 3, 31, + 3, 31, 1,187, 3, 33, 3, 33, 1,188, 3, 35, 3, 35, 1,189, 3, 37, 3, 37, 1,190, 3, 39, 3, 39, 1,191, 3, 41, 3, 41, + 1,192, 3, 43, 3, 43, 1,193, 3, 45, 3, 45, 1,194, 3, 47, 3, 47, 1,195, 3, 49, 3, 49, 1,196, 3, 51, 3, 51, 1,197, + 3, 54, 3, 54, 1,198, 3, 56, 3, 56, 1,199, 3, 58, 3, 58, 1,200, 3, 60, 3, 60, 1,201, 3, 62, 3, 62, 1,202, 3, 64, + 3, 64, 1,203, 3, 66, 3, 66, 1,204, 3, 68, 3, 69, 1,205, 3, 71, 3, 71, 1,207, 3, 73, 3, 86, 1,208, 3, 88, 3, 88, + 1,222, 3, 90, 3, 90, 1,223, 3, 92, 3, 92, 1,224, 3, 94, 3, 94, 1,225, 3, 96, 3, 97, 1,226, 3, 99, 3, 99, 1,228, + 3,102, 3,102, 1,229, 3,104, 3,104, 1,230, 3,106, 3,106, 1,231, 3,108, 3,108, 1,232, 3,110, 3,116, 1,233, 0, 0, + 0, 1, 0, 0, 0, 10, 0, 28, 0, 30, 0, 1,108, 97,116,110, 0, 8, 0, 4, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, + 0}; diff --git a/source/blender/editors/datafiles/bmonofont.ttf.c b/source/blender/editors/datafiles/bmonofont.ttf.c index 36f50403da2..26a45e76756 100644 --- a/source/blender/editors/datafiles/bmonofont.ttf.c +++ b/source/blender/editors/datafiles/bmonofont.ttf.c @@ -3,9047 +3,3524 @@ */ /* DataToC output of file */ -int datatoc_bmonofont_ttf_size= 309588; +int datatoc_bmonofont_ttf_size= 117072; 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, 1, 0, 0, 0, 14, 0,128, 0, 3, 0, 96, 79, 83, 47, 50, +160,203,149,192, 0, 0, 1,104, 0, 0, 0, 96, 99,109, 97,112,233,125, 86, 20, 0, 0, 8,208, 0, 0, 7, 54, 99,118,116, 32, + 68,157, 77,114, 0, 0, 25,144, 0, 0, 2, 16,102,112,103,109,115,211, 35,176, 0, 0, 16, 8, 0, 0, 7, 5,103, 97,115,112, + 0, 4, 0, 7, 0, 1,201, 68, 0, 0, 0, 12,103,108,121,102,251,142, 20,149, 0, 0, 34,168, 0, 1,130,142,104,101, 97,100, +234, 37, 61,215, 0, 0, 0,236, 0, 0, 0, 54,104,104,101, 97, 11, 91, 2,150, 0, 0, 1, 36, 0, 0, 0, 36,104,109,116,120, +248,204,244, 91, 0, 0, 1,200, 0, 0, 7, 6,108,111, 99, 97,245, 66,148,216, 0, 0, 27,160, 0, 0, 7, 6,109, 97,120,112, + 5,235, 2,119, 0, 0, 1, 72, 0, 0, 0, 32,110, 97,109,101,123,244,226, 39, 0, 1,165, 56, 0, 0, 6,204,112,111,115,116, +216, 80,169, 40, 0, 1,172, 4, 0, 0, 29, 63,112,114,101,112, 65,189,218,130, 0, 0, 23, 16, 0, 0, 2,126, 0, 1, 0, 0, + 0, 1, 0, 0,136, 63, 64,110, 95, 15, 60,245, 0, 11, 8, 0, 0, 0, 0, 0,193,199,233, 84, 0, 0, 0, 0,197, 83, 9, 61, +254,200,253,213, 5, 35, 8,115, 0, 0, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7,109,254, 29, 0, 0, 4,205, +254,200,255,170, 5, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 3,130, 0,144, + 0, 18, 0, 82, 0, 5, 0, 2, 0, 16, 0, 47, 0, 90, 0, 0, 1,228, 1, 99, 0, 3, 0, 1, 0, 3, 4,205, 1,144, 0, 5, + 0, 8, 5,154, 5, 51, 0, 0, 1, 30, 5,154, 5, 51, 0, 0, 3,208, 0,102, 1,242, 0, 0, 2, 11, 6, 9, 3, 8, 4, 2, + 2, 4,224, 0, 2,239, 64, 0, 32, 91, 0, 0, 0, 40, 0, 0, 0, 0, 49, 65, 83, 67, 0, 64, 0, 32,255,253, 6, 31,254, 20, + 0,132, 7,109, 1,227, 32, 0, 1,159, 0, 0, 0, 0, 4, 74, 5,182, 0, 0, 0, 32, 0, 0, 4,205, 0,193, 0, 0, 0, 0, + 0, 0, 1,231, 1, 29, 0, 45, 0,182, 0, 0, 0, 61, 1,240, 1, 39, 1, 41, 0,133, 0,152, 1,184, 1, 29, 1,207, 0,211, + 0,147, 0,225, 0,158, 0,131, 0, 61, 0,172, 0,154, 0,143, 0,156, 0,154, 1,231, 1,154, 0,152, 0,152, 0,152, 0,168, + 0, 31, 0, 33, 0,135, 0,129, 0,135, 0,217, 0,244, 0,117, 0,135, 0,225, 0,137, 0,211, 0,233, 0,113, 0,135, 0, 84, + 0,176, 0, 84, 0,186, 0,141, 0,102, 0,125, 0, 33, 0, 2, 0, 53, 0, 33, 0,102, 1,156, 0,211, 1, 33, 0,111,255,240, + 1,162, 0,135, 0,158, 0,172, 0,137, 0,133, 0,156, 0,102, 0,160, 0,197, 0,135, 0,215, 0,188, 0, 92, 0,160, 0,115, + 0,158, 0,137, 1, 8, 0,203, 0,139, 0,160, 0, 82,255,252, 0, 96, 0, 82, 0,182, 0,225, 2, 27, 0,227, 0,152, 0, 0, + 1,231, 0,172, 0,119, 0,174, 0, 78, 2, 27, 0,244, 1, 74, 0, 6, 1, 20, 0,197, 0,152, 1, 29, 0, 6,255,236, 1, 43, + 0,152, 1, 92, 1, 86, 1,162, 0,180, 0, 66, 1,231, 1,172, 1,111, 1, 25, 0,197, 0, 22, 0, 3, 0, 21, 0,168, 0, 33, + 0, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 0, 0,129, 0,217, 0,217, 0,217, 0,217, 0,225, 0,225, 0,225, 0,225, 0, 0, + 0,135, 0, 84, 0, 84, 0, 84, 0, 84, 0, 84, 0,190, 0, 80, 0,125, 0,125, 0,125, 0,125, 0, 33, 0,176, 0,164, 0,135, + 0,135, 0,135, 0,135, 0,135, 0,135, 0, 45, 0,172, 0,133, 0,133, 0,133, 0,133, 0,197, 0,197, 0,197, 0,197, 0,135, + 0,160, 0,115, 0,115, 0,115, 0,115, 0,115, 0,152, 0,115, 0,160, 0,160, 0,160, 0,160, 0, 82, 0,158, 0, 82, 0, 33, + 0,135, 0, 33, 0,135, 0, 33, 0,135, 0,129, 0,172, 0,129, 0,172, 0,129, 0,172, 0,129, 0,172, 0,135, 0, 79, 0, 0, + 0,137, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,117, 0,102, 0,117, 0,102, 0,117, + 0,102, 0,117, 0,102, 0,135, 0,160, 0, 0, 0, 4, 0,225, 0,197, 0,225, 0,197, 0,225, 0,197, 0,225, 0,197, 0,225, + 0,197, 0,156, 0,188, 0,137, 0,135, 0,211, 0,215, 0,215, 0,233, 0,188, 0,233, 0,188, 0,233, 0,188, 0,233, 0,188, + 0, 72, 0,188, 0,135, 0,160, 0,135, 0,160, 0,135, 0,160,255,240, 0,135, 0,160, 0, 84, 0,115, 0, 84, 0,115, 0, 84, + 0,115, 0, 20, 0, 57, 0,186, 1, 8, 0,186, 0,187, 0,186, 1, 8, 0,141, 0,203, 0,141, 0,203, 0,141, 0,203, 0,141, + 0,203, 0,102, 0,139, 0,102, 0,139, 0,102, 0,139, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, + 0,160, 0,125, 0,160, 0, 2,255,252, 0, 33, 0, 82, 0, 33, 0,102, 0,182, 0,102, 0,182, 0,102, 0,182, 1,100, 0,215, + 0, 33, 0,135, 0, 0, 0, 45, 0, 80, 0,115, 0,141, 0,203, 1, 27, 1, 27, 1, 70, 1, 57, 1,252, 1,131, 1,158, 0,254, + 0,246, 1,223, 1, 43, 0, 33, 1,231,255,142,255,101,255,163,255,124,255, 19,255,122, 0,241, 0, 33, 0,135, 0,246, 0, 68, + 0,217, 0,102, 0,135, 0, 84, 0,225, 0,211, 0, 33, 0,113, 0,135, 0,111, 0, 84, 0,135, 0,176, 0,131, 0,102, 0, 33, + 0, 27, 0, 53, 0, 57, 0, 74, 0,225, 0, 33, 0,121, 0,201, 0,160, 1,172, 0,160, 0,121, 0,158, 0, 82, 0,135, 0,201, + 0,162, 0,160, 0,147, 1,172, 0,215, 0, 61, 0,160, 0, 61, 0,172, 0,115, 0, 14, 0,158, 0,172, 0,129, 0,106, 0,160, + 0, 74, 0, 43, 0, 80, 0, 90, 1, 3, 0,160, 0,115, 0,160, 0, 90, 0,217, 0, 23, 0,246, 0,129, 0,141, 0,225, 0,225, + 0,137, 0, 0, 0, 66, 0, 23, 0,211, 0, 27, 0,135, 0, 33, 0,135, 0,135, 0,246, 0, 6, 0,217, 0, 0, 0,139, 0,137, + 0,137, 0,211, 0, 4, 0,113, 0,135, 0, 84, 0,135, 0,176, 0,129, 0,102, 0, 27, 0, 27, 0, 53, 0,135, 0,135, 0,121, + 0, 61, 0, 27, 0, 96, 0,176, 0, 68, 0, 98, 0, 57, 0,135, 0,143, 0,176, 1, 35, 0, 33, 0,133, 0, 0, 0,201, 0,160, + 0,160, 0,215, 0, 31, 0,115, 0,160, 0,115, 0,160, 0,158, 0,172, 0,121, 0, 82, 0, 74, 0, 96, 0,152, 0,152, 0,125, + 0,109, 0, 43, 0,113, 0,217, 0,184, 0,123, 0,115, 0,133, 0, 4, 1, 35, 0,172, 0,203, 0,197, 0,197, 0,135, 0, 0, + 0,106, 0, 4, 0,215, 0, 82, 0,160, 0,246, 1, 35, 0, 2,255,252, 0, 2,255,252, 0, 2,255,252, 0, 33, 0, 82, 0,184, +255,250,255,250,255,236, 1,190, 1,190, 1,201, 1,190, 0,233, 0,233, 0,244, 0,240, 0,229, 1,123, 0, 78, 0, 4, 1,240, + 1, 29, 1,145, 1,145, 0,255, 0,170, 1, 61, 0,129, 0,119, 0, 82, 0, 96, 0, 8, 0,227, 0, 25, 0, 0, 0, 74, 0, 82, + 0, 18, 0, 11, 0, 24, 0, 28, 0,121, 0, 74, 0,156, 0, 74, 0,152, 0, 23, 0, 70, 0,236, 0,152, 0,152, 0,152, 0,152, + 0,125, 0, 49, 0, 49, 0,231, 0,135, 1,238, 1,227, 1,227, 1, 57, 1, 37, 1, 80, 1, 57, 1,111, 1, 49, 1, 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, 55, 0, 4, 0,135, 1,190, + 0, 10, 0, 31, 0, 18, 0,113, 0, 92, 0, 33, 0,135,254,200, 1,131, 1, 45, 0, 66, 0, 66, 0, 84, 0,115, 0,125, 0,160, + 1,162, 1,162, 0,254, 1,172, 1,252, 0,217, 0,137, 0,133, 0,160, 0, 82,255,252, 0, 20, 0, 20, 0, 98, 0,160, 0, 0, + 0, 61, 0, 98, 0,123, 0, 0, 0, 10, 0, 92, 0,123, 0,117, 0,143, 0, 57, 0, 80, 0, 84, 0,115, 0, 63, 0, 82, 0, 63, + 0, 82, 0, 70, 0, 80, 0, 84, 0,115, 0, 82, 0, 88, 0, 82,255,252, 0,129, 0,172, 0, 94, 0,242, 0,242, 1,225, 1,225, + 0, 41, 0, 41, 0,137, 0,178, 0, 47, 0, 61, 0,176, 0,158, 0,147, 0,135, 0,160, 0,215, 0, 0, 0, 0, 0,139, 0,201, + 0,211, 0,215, 0,211, 0,215, 0, 59, 0, 59, 0, 23, 0, 43, 0,135, 0,160, 0,135, 0,160, 0,106, 0,127, 0, 84, 0,115, + 0,129, 0,172, 0,102, 0,121, 0, 33, 0, 82, 0, 33, 0, 82, 0, 53, 0, 96, 0, 23, 0, 20, 0,135, 0,152, 0,135, 0,152, + 0,135, 0,168,255,248,255,213,255,248,255,213, 0,225, 0, 0, 0, 0, 0,135, 0,215, 0, 4, 0, 31, 0,135, 0,160, 0,135, + 0,160, 0,135, 0,152, 0,113, 0,115, 0,225, 0, 33, 0,135, 0, 33, 0,135, 0, 0, 0, 45, 0,217, 0,133, 0, 84, 0,133, + 0, 84, 0,133, 0, 0, 0, 0, 0,139, 0,201, 0,158, 0,170, 0,137, 0,160, 0,137, 0,160, 0, 84, 0,115, 0, 84, 0,115, + 0, 84, 0,115, 0, 68, 0,184, 0, 27, 0, 82, 0, 27, 0, 82, 0, 27, 0, 82, 0,135, 0,152, 1, 43, 1, 35, 0, 96, 0,113, + 0,147, 0,135, 0, 53, 0, 96, 0, 53, 0, 96, 0,137, 0,137, 0, 49, 0, 49, 0, 35, 0, 43, 0, 39, 0, 80, 0, 0, 0, 0, + 0,121, 0,123, 0,117, 0,113, 0, 20, 0, 41, 0,166, 0,201, 0, 4, 0, 31, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, + 0, 33, 0, 85, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, + 0, 33, 0,135, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0, 89, 0, 76, 0,217, 0,133, 0,217, 0,133, + 0,217, 0,133, 0,225, 0,197, 0,225, 0,197, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 74, 0, 74, 0, 84, 0,115, + 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0,125, 0,160, + 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0, 33, 0, 82, 0, 33, 0, 82, + 0, 33, 0, 82, 0,137, 0,205, 0,188, 0,188, 0,221, 1, 35, 1, 57, 1, 57, 1, 57, 1, 35, 1,199, 1,178, 1,178, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 28, 0, 1, 0, 0, 0, 0, 5, 42, 0, 3, 0, 1, 0, 0, 0, 28, 0, 4, 5, 14, + 0, 0, 0,134, 0,128, 0, 6, 0, 6, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, 2,201, + 2,221, 2,243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4,134, 5, 19, 30, 1, + 30, 63, 30,133, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32,127, 32,164, + 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, 34, 26, 34, 30, 34, 43, + 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, 0,160, 1,146, 1,160, 1,175, 1,240, 1,250, + 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3,132, 3,140, 3,142, 3,163, 3,209, + 3,214, 4, 0, 4,136, 30, 0, 30, 62, 30,128, 30,160, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, + 32, 60, 32, 68, 32,127, 32,163, 32,167, 32,171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, + 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,100, 37,202,251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, + 0,178, 0, 97,255, 73,255, 49,255,150,254,133,254,132,254,118,255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207, +253,206,253,205,254,130,254,127, 0, 0, 0, 0,228, 88,228, 24,227,122, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234, +225,225,225,224,225,219,225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200, +224, 37,224, 34,224, 26,224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 98, 0, 0, 0, 0, 0, 0, 2,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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,230, 0, 0, + 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, 1,164, 1,165, 1,166, 1,167, 2,105, + 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, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, 1,244, 1,245, 2,107, + 1,246, 1,247, 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, 1,248, 1,249, 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, 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, 2, 0, 2, 1, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, + 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 0, 6, 2, 12, 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, 2, 13, 0,114, 0,100, 0,101, 0,105, 2, 15, + 0,120, 0,161, 0,112, 0,107, 2, 32, 0,118, 0,106, 2, 48, 0,136, 0,154, 2, 45, 0,115, 2, 49, 2, 50, 0,103, 0,119, + 2, 39, 2, 42, 2, 41, 1,141, 2, 46, 0,108, 0,124, 2, 33, 0,168, 0,186, 0,129, 0, 99, 0,110, 2, 44, 1, 66, 2, 47, + 2, 40, 0,109, 0,125, 2, 16, 0, 3, 0,130, 0,133, 0,151, 1, 20, 1, 21, 2, 2, 2, 3, 2, 10, 2, 11, 2, 6, 2, 7, + 0,185, 2, 51, 0,193, 1, 58, 2, 23, 0,102, 2, 20, 2, 21, 2, 52, 2, 53, 2, 14, 0,121, 2, 8, 2, 12, 2, 17, 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, + 1, 75, 1, 82, 0,113, 1, 78, 1, 79, 1, 80, 0,122, 1, 83, 1, 81, 1, 76, 0, 0, 0, 0, 64, 69, 89, 88, 85, 84, 83, 82, + 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 49, 48, 47, + 46, 45, 44, 40, 39, 38, 37, 36, 35, 34, 33, 31, 24, 20, 17, 16, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 44, + 69, 35, 70, 96, 32,176, 38, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97, 32,176, 38, 97,176, 4, 38, 35, 72, 72, 45, + 44, 69, 35, 70, 96,176, 32, 97, 32,176, 70, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97,176, 32, 96, 32,176, 38, 97, +176, 32, 97,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 64, 97, 32,176,102, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, + 70, 35, 97,176, 64, 96, 32,176, 38, 97,176, 64, 97,176, 4, 38, 35, 72, 72, 45, 44, 1, 16, 32, 60, 0, 60, 45, 44, 32, 69, 35, + 32,176,205, 68, 35, 32,184, 1, 90, 81, 88, 35, 32,176,141, 68, 35, 89, 32,176,237, 81, 88, 35, 32,176, 77, 68, 35, 89, 32,176, + 4, 38, 81, 88, 35, 32,176, 13, 68, 35, 89, 33, 33, 45, 44, 32, 32, 69, 24,104, 68, 32,176, 1, 96, 32, 69,176, 70,118,104,138, + 69, 96, 68, 45, 44, 1,177, 11, 10, 67, 35, 67,101, 10, 45, 44, 0,177, 10, 11, 67, 35, 67, 11, 45, 44, 0,176, 40, 35,112,177, + 1, 40, 62, 1,176, 40, 35,112,177, 2, 40, 69, 58,177, 2, 0, 8, 13, 45, 44, 32, 69,176, 3, 37, 69, 97,100,176, 80, 81, 88, + 69, 68, 27, 33, 33, 89, 45, 44, 73,176, 14, 35, 68, 45, 44, 32, 69,176, 0, 67, 96, 68, 45, 44, 1,176, 6, 67,176, 7, 67,101, + 10, 45, 44, 32,105,176, 64, 97,176, 0,139, 32,177, 44,192,138,140,184, 16, 0, 98, 96, 43, 12,100, 35,100, 97, 92, 88,176, 3, + 97, 89, 45, 44,138, 3, 69,138,138,135,176, 17, 43,176, 41, 35, 68,176, 41,122,228, 24, 45, 44, 69,101,176, 44, 35, 68, 69,176, + 43, 35, 68, 45, 44, 75, 82, 88, 69, 68, 27, 33, 33, 89, 45, 44, 75, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 1,176, 5, 37, 16, + 35, 32,138,245, 0,176, 1, 96, 35,237,236, 45, 44, 1,176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 97, 35,237,236, 45, 44, 1, +176, 6, 37, 16,245, 0,237,236, 45, 44, 70, 35, 70, 96,138,138, 70, 35, 32, 70,138, 96,138, 97,184,255,128, 98, 35, 32, 16, 35, +138,177, 12, 12,138,112, 69, 96, 32,176, 0, 80, 88,176, 1, 97,184,255,186,139, 27,176, 70,140, 89,176, 16, 96,104, 1, 58, 45, + 44, 32, 69,176, 3, 37, 70, 82, 75,176, 19, 81, 91, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, 33, 56, 27, + 33, 17, 89, 45, 44, 32, 69,176, 3, 37, 70, 80, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, 33, 56, 27, 33, + 17, 89, 45, 44, 0,176, 7, 67,176, 6, 67, 11, 45, 44, 33, 33, 12,100, 35,100,139,184, 64, 0, 98, 45, 44, 33,176,128, 81, 88, + 12,100, 35,100,139,184, 32, 0, 98, 27,178, 0, 64, 47, 43, 89,176, 2, 96, 45, 44, 33,176,192, 81, 88, 12,100, 35,100,139,184, + 21, 85, 98, 27,178, 0,128, 47, 43, 89,176, 2, 96, 45, 44, 12,100, 35,100,139,184, 64, 0, 98, 96, 35, 33, 45, 44, 75, 83, 88, +138,176, 4, 37, 73,100, 35, 69,105,176, 64,139, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68, 35, 16,176, 14,246, 27, 33, 35, +138, 18, 17, 32, 57, 47, 89, 45, 44, 75, 83, 88, 32,176, 3, 37, 73,100,105, 32,176, 5, 38,176, 6, 37, 73,100, 35, 97,176,128, + 98,176, 32, 97,106,176, 14, 35, 68,176, 4, 38, 16,176, 14,246,138, 16,176, 14, 35, 68,176, 14,246,176, 14, 35, 68,176, 14,237, + 27,138,176, 4, 38, 17, 18, 32, 57, 35, 32, 57, 47, 47, 89, 45, 44, 69, 35, 69, 96, 35, 69, 96, 35, 69, 96, 35,118,104, 24,176, +128, 98, 32, 45, 44,176, 72, 43, 45, 44, 32, 69,176, 0, 84, 88,176, 64, 68, 32, 69,176, 64, 97, 68, 27, 33, 33, 89, 45, 44, 69, +177, 48, 47, 69, 35, 69, 97, 96,176, 1, 96,105, 68, 45, 44, 75, 81, 88,176, 47, 35,112,176, 20, 35, 66, 27, 33, 33, 89, 45, 44, + 75, 81, 88, 32,176, 3, 37, 69,105, 83, 88, 68, 27, 33, 33, 89, 27, 33, 33, 89, 45, 44, 69,176, 20, 67,176, 0, 96, 99,176, 1, + 96,105, 68, 45, 44,176, 47, 69, 68, 45, 44, 69, 35, 32, 69,138, 96, 68, 45, 44, 69, 35, 69, 96, 68, 45, 44, 75, 35, 81, 88,185, + 0, 51,255,224,177, 52, 32, 27,179, 51, 0, 52, 0, 89, 68, 68, 45, 44,176, 22, 67, 88,176, 3, 38, 69,138, 88,100,102,176, 31, + 96, 27,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 89, 35, 88,101, 89,176, 41, 35, 68, 35, 16,176, 41,224, 27, + 33, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88, 75, 83, 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 27, 33, 33, 33, 33, 89, 45, + 44,176, 22, 67, 88,176, 4, 37, 69,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 35, 88, 27,101, 89,176, 41, 35, + 68,176, 5, 37,176, 8, 37, 8, 32, 88, 2, 27, 3, 89,176, 4, 37, 16,176, 5, 37, 32, 70,176, 4, 37, 35, 66, 60,176, 4, 37, +176, 7, 37, 8,176, 7, 37, 16,176, 6, 37, 32, 70,176, 4, 37,176, 1, 96, 35, 66, 60, 32, 88, 1, 27, 0, 89,176, 4, 37, 16, +176, 5, 37,176, 41,224,176, 41, 32, 69,101, 68,176, 7, 37, 16,176, 6, 37,176, 41,224,176, 5, 37,176, 8, 37, 8, 32, 88, 2, + 27, 3, 89,176, 5, 37,176, 3, 37, 67, 72,176, 4, 37,176, 7, 37, 8,176, 6, 37,176, 3, 37,176, 1, 96, 67, 72, 27, 33, 89, + 33, 33, 33, 33, 33, 33, 33, 45, 44, 2,176, 4, 37, 32, 32, 70,176, 4, 37, 35, 66,176, 5, 37, 8,176, 3, 37, 69, 72, 33, 33, + 33, 33, 45, 44, 2,176, 3, 37, 32,176, 4, 37, 8,176, 2, 37, 67, 72, 33, 33, 33, 45, 44, 69, 35, 32, 69, 24, 32,176, 0, 80, + 32, 88, 35,101, 35, 89, 35,104, 32,176, 64, 80, 88, 33,176, 64, 89, 35, 88,101, 89,138, 96, 68, 45, 44, 75, 83, 35, 75, 81, 90, + 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 84, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 83, 35, 75, 81, 90, + 88, 56, 27, 33, 33, 89, 45, 44,176, 0, 33, 75, 84, 88, 56, 27, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 70, 43, 27, 33, 33, + 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 71, 43, 27, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 72, 43, 27, 33, 33, 33, + 33, 89, 45, 44,176, 2, 67, 84, 88,176, 73, 43, 27, 33, 33, 33, 89, 45, 44, 32,138, 8, 35, 75, 83,138, 75, 81, 90, 88, 35, 56, + 27, 33, 33, 89, 45, 44, 0,176, 2, 37, 73,176, 0, 83, 88, 32,176, 64, 56, 17, 27, 33, 89, 45, 44, 1, 70, 35, 70, 96, 35, 70, + 97, 35, 32, 16, 32, 70,138, 97,184,255,128, 98,138,177, 64, 64,138,112, 69, 96,104, 58, 45, 44, 32,138, 35, 73,100,138, 35, 83, + 88, 60, 27, 33, 89, 45, 44, 75, 82, 88,125, 27,122, 89, 45, 44,176, 18, 0, 75, 1, 75, 84, 66, 45, 44,177, 2, 0, 66,177, 35, + 1,136, 81,177, 64, 1,136, 83, 90, 88,185, 16, 0, 0, 32,136, 84, 88,178, 2, 1, 2, 67, 96, 66, 89,177, 36, 1,136, 81, 88, +185, 32, 0, 0, 64,136, 84, 88,178, 2, 2, 2, 67, 96, 66,177, 36, 1,136, 84, 88,178, 2, 32, 2, 67, 96, 66, 0, 75, 1, 75, + 82, 88,178, 2, 8, 2, 67, 96, 66, 89, 27,185, 64, 0, 0,128,136, 84, 88,178, 2, 4, 2, 67, 96, 66, 89,185, 64, 0, 0,128, + 99,184, 1, 0,136, 84, 88,178, 2, 8, 2, 67, 96, 66, 89,185, 64, 0, 1, 0, 99,184, 2, 0,136, 84, 88,178, 2, 16, 2, 67, + 96, 66, 89,185, 64, 0, 2, 0, 99,184, 4, 0,136, 84, 88,178, 2, 64, 2, 67, 96, 66, 89, 89, 89, 89, 89, 45, 44, 69, 24,104, + 35, 75, 81, 88, 35, 32, 69, 32,100,176, 64, 80, 88,124, 89,104,138, 96, 89, 68, 45, 44,176, 0, 22,176, 2, 37,176, 2, 37, 1, +176, 1, 35, 62, 0,176, 2, 35, 62,177, 1, 2, 6, 12,176, 10, 35,101, 66,176, 11, 35, 66, 1,176, 1, 35, 63, 0,176, 2, 35, + 63,177, 1, 2, 6, 12,176, 6, 35,101, 66,176, 7, 35, 66,176, 1, 22, 1, 45, 44,122,138, 16, 69, 35,245, 24, 45, 0, 0, 0, + 64, 21,248, 3,255, 31,241,111, 26, 31, 47,239,111,239, 2,230,228, 51, 31,229,228, 25, 31,184, 1, 0, 64, 16, 51,255, 85,223, + 51,221, 85,222, 51, 3, 85,176,255,208,255, 2,184,255,192, 64,104,255, 9, 17, 70, 0,221, 32,221,112,221, 3,221, 1, 3, 85, +220, 3,255, 31,214,213, 51, 31,211,210, 25, 31,135,210, 1,254,194, 25, 31, 6,186, 22,186,230,186,246,186, 4, 15,178, 31,178, + 47,178, 3, 64,178, 15, 19, 70,167,177, 1,175, 83, 25, 31,174,173, 25, 31,172, 74, 25, 31,171,170, 25, 31,169, 3,255, 31,158, +157, 25, 31, 31,157, 1,112,156,128,156,144,156,208,156,224,156,240,156, 6, 15,153, 1,151,152, 1,184,255,248, 64, 56,152, 9, + 15, 70, 32,151,128,151,144,151,240,151, 4,169,150,185,150, 2, 56,150, 1,240,149, 1,191,149, 1, 32,149, 48,149, 64,149,128, +149,144,149,160,149, 6,148,146, 25, 31,147, 83, 25, 31, 15,146, 1,133, 71, 25, 31,197,189, 1, 7, 0, 1, 0,166, 1, 7, 0, +182, 1, 7,178, 2, 3,128,186, 1, 7, 0,144, 1, 7, 64,168, 2,118,117, 25, 31,116, 80, 25, 31,115, 80, 25, 31,111, 72, 25, + 31,110, 71, 25, 31, 26, 1, 24, 85, 25, 19,255, 31, 7, 4,255, 31, 6, 3,255, 31, 97, 96, 25, 31,101, 96, 1,100, 95, 1,255, +251, 1,239,251, 1,121,251, 1, 63,251, 79,251, 2, 24,250, 18, 24, 70, 79,250, 95,250,111,250, 3,212, 91,228, 91, 2, 91, 90, + 16, 31, 57, 90, 1, 6, 90, 1, 6, 19, 51, 18, 85, 5, 1, 3, 85, 4, 51, 3, 85, 15, 3,127, 3,239, 3, 3,224,253, 1,223, +253, 1, 81, 80, 25, 31, 15,252,191,252,207,252,223,252, 4, 3, 64,252, 12, 16, 70, 73, 70, 25, 31, 96, 72, 1, 59, 71, 1, 6, + 28, 27,255, 31, 22, 51, 21, 85, 17, 1, 15, 85, 16, 51, 15, 85, 2, 1, 0, 85, 1, 71, 0, 85,184, 1, 6, 64, 30, 27, 18, 31, +159, 15,223, 15, 2,207, 15,239, 15, 2,111, 0,127, 0,175, 0,239, 0, 4, 16, 0, 1,128, 22, 1, 5, 1,184, 1,144,177, 84, + 83, 43, 43, 75,184, 7,255, 82, 75,176, 9, 80, 91,176, 1,136,176, 37, 83,176, 1,136,176, 64, 81, 90,176, 6,136,176, 0, 85, + 90, 91, 88,177, 1, 1,142, 89,133,141,141, 0, 66, 29, 75,176, 50, 83, 88,176, 96, 29, 89, 75,176,100, 83, 88,176, 64, 29, 89, + 75,176,128, 83, 88,176, 16, 29,177, 22, 0, 66, 89,115,115,115,116, 43, 43, 43, 43, 43, 43, 43, 1, 95,115,115, 43, 43, 95,115, + 0, 43,115,115,115, 43, 43, 43, 1, 95,115,115, 43,115,115, 43,115,115,115,115, 0,115,115, 43, 43, 43, 43, 43, 1, 43, 43, 0, + 43, 43, 43,115, 95,115,115, 1, 43, 0,115, 43, 43, 1,115,115,115,115,115,115, 43,115,115, 0,115,115, 43, 43, 1, 43, 43, 0, + 43, 43, 1,115, 0, 43,115,115, 43, 1,115, 43, 0, 43, 43, 43,115, 43,115, 43, 43, 43, 43, 43,115, 1, 43, 0, 43, 24, 0, 0, + 6, 20, 0, 11, 0, 81, 5,182, 0, 23, 0,117, 5,182, 5,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, + 0, 20, 0,143, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0,254, 20,254, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 0, 0, 0, 0, 8, 0, 8,115, 0, 0, 0,178, 0,182, 0,188, 0,156, 0,213, 0, 0, 0, 0, 0, 0, 0,143, 0,131, + 0,151, 0,159, 0,125, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 0,197, 0,186, 0, 0, 0, 0, 0,164, + 0,159, 0,143, 0, 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, 0,185, + 0,138, 0, 0, 0, 0, 0,155, 0,166, 0,143, 0,119, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,105, 0,110, 0,144, 0,192, 1,137, 0,219, 0,172, 0, 0, 0, 0, 0, 0, 0,102, 0,111, 0,120, 0,150, + 0,192, 0,213, 1, 72, 0,205, 1, 21, 2,151, 0,254, 1, 47, 0,237, 1, 78, 0,121, 1, 22, 1, 76, 1,245, 2, 39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,226, 5,182, 0,150, 0,140, 0,229, 0,150, 0,137, 0,250, + 0, 0, 1, 24, 1, 12, 3, 29, 0,153, 2, 74, 0,120, 2,182, 0,141, 0,168, 0,140, 0, 0, 0, 0, 2,121, 0,217, 0,180, + 0, 0, 0, 0, 1, 90, 0,109, 0,127, 0,160, 0, 0, 0, 0, 0,109, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,140, 0,160, 0, 0, 0,130, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,182,252,234, 0, 17,255,235, + 0,150, 0, 0, 0, 0, 0, 0, 0,115, 0,101, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 1,170, 3, 84, 1,170, 2, 29, + 0,188, 0,182, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 5,182,254,188, 0,152, 0,172, 1, 57, 1,245, 1,131, 3, 29, +255,243, 0,131, 0,122, 0,134, 0, 0, 0, 0,254,111, 0,137, 0, 0, 0, 40, 0, 40, 0, 40, 0, 40, 0, 90, 0,135, 1, 28, + 1,193, 2,108, 3, 39, 3, 66, 3,111, 3,156, 3,210, 3,250, 4, 45, 4, 74, 4,105, 4,135, 4,205, 4,250, 5, 77, 5,178, + 6, 2, 6, 85, 6,179, 6,233, 7,103, 7,196, 7,245, 8, 52, 8,122, 8,174, 8,243, 9, 75, 9,234, 10, 97, 10,190, 10,255, + 11, 55, 11,111, 11,175, 11,252, 12, 51, 12,110, 12,156, 13, 28, 13, 66, 13,194, 14, 26, 14, 85, 14,147, 14,238, 15, 79, 15,156, + 15,204, 15,254, 16,101, 17, 71, 17,196, 18, 54, 18,111, 18,156, 18,186, 18,231, 19, 22, 19, 45, 19, 79, 19,164, 19,241, 20, 44, + 20,122, 20,201, 21, 17, 21,159, 21,221, 22, 25, 22, 93, 22,185, 22,231, 23, 77, 23,134, 23,192, 24, 16, 24, 95, 24,149, 24,226, + 25, 49, 25,104, 25,189, 26,130, 26,246, 27, 87, 27,145, 27,237, 28, 5, 28, 96, 28,149, 28,149, 28,191, 29, 15, 29, 98, 29,208, + 30, 87, 30,123, 31, 4, 31, 58, 31,194, 32, 22, 32, 94, 32,132, 32,140, 33, 41, 33, 62, 33,169, 33,221, 34, 40, 34,150, 34,184, + 34,250, 35, 61, 35, 95, 35,156, 35,196, 35,252, 36, 68, 36,115, 36,166, 36,211, 37, 51, 37, 75, 37, 98, 37,121, 37,145, 37,171, + 37,209, 38, 58, 38, 76, 38,100, 38,123, 38,146, 38,171, 38,195, 38,218, 38,241, 39, 10, 39, 90, 39,113, 39,137, 39,160, 39,184, + 39,207, 39,232, 40, 55, 40,165, 40,189, 40,212, 40,235, 41, 4, 41, 27, 41, 93, 41,211, 41,234, 42, 2, 42, 26, 42, 54, 42, 84, + 42,108, 42,237, 42,255, 43, 22, 43, 50, 43, 72, 43, 96, 43,119, 43,141, 43,164, 43,189, 44, 53, 44, 75, 44, 98, 44,120, 44,143, + 44,165, 44,190, 45, 9, 45,127, 45,150, 45,172, 45,194, 45,218, 45,240, 46, 65, 46, 89, 46,113, 46,135, 46,159, 46,181, 46,206, + 46,237, 47, 4, 47, 27, 47, 60, 47, 82, 47,105, 47,127, 47,150, 47,172, 47,196, 47,224, 47,232, 48, 78, 48,102, 48,124, 48,147, + 48,169, 48,192, 48,214, 48,234, 48,254, 49, 21, 49, 43, 49, 66, 49, 89, 49,116, 49,139, 49,162, 49,184, 49,206, 49,228, 49,251, + 50, 18, 50,100, 50,182, 50,205, 50,228, 50,251, 51, 18, 51, 41, 51, 63, 51, 82, 51,101, 51,124, 51,168, 51,230, 52, 75, 52, 98, + 52,121, 52,144, 52,167, 53, 4, 53, 28, 53, 51, 53, 74, 53, 97, 53,117, 53,139, 53,159, 53,183, 54, 18, 54,124, 54,147, 54,169, + 54,192, 54,215, 54,239, 55, 5, 55, 78, 55,168, 55,238, 56, 5, 56, 27, 56, 51, 56, 73, 56, 98, 56,122, 56,208, 57, 73, 57, 97, + 57,119, 57,142, 57,174, 57,198, 57,221, 57,244, 58, 10, 58, 33, 58, 55, 58, 74, 58, 95, 58,118, 58,140, 58,163, 58,185, 58,208, + 58,230, 59, 48, 59,147, 59,170, 59,192, 59,216, 59,238, 60, 6, 60, 28, 60, 53, 60, 78, 60,103, 60,127, 60,146, 60,171, 60,194, + 60,217, 60,240, 61, 6, 61, 31, 61, 54, 61, 76, 61, 99, 61,121, 61,144, 61,166, 61,215, 62, 47, 62,104, 62,156, 62,179, 62,201, + 62,224, 62,246, 63, 12, 63, 35, 63, 87, 63,139, 63,185, 63,248, 64, 46, 64,154, 64,208, 65, 9, 65, 73, 65,110, 65,193, 65,218, + 65,252, 66, 26, 66, 56, 66, 81, 66,104, 66,127, 66,150, 66,171, 66,179, 66,187, 66,232, 67,111, 67,119, 67,127, 67,135, 67,231, + 67,239, 67,247, 68,111, 68,119, 68,127, 68,190, 68,198, 68,235, 68,243, 69, 78, 69, 86, 69, 94, 69,241, 69,249, 70, 95, 70,201, + 70,226, 70,251, 71, 18, 71, 40, 71, 62, 71, 84, 71,109, 71,199, 72, 43, 72,129, 72,226, 73, 57, 73,176, 73,232, 74, 65, 74,108, + 74,116, 74,211, 75, 20, 75,107, 75,248, 76, 0, 76, 94, 76,167, 77, 4, 77, 71, 77,143, 77,200, 78, 42, 78,211, 79, 51, 79,187, + 79,211, 79,236, 80, 2, 80, 24, 80, 46, 80, 71, 80,175, 80,198, 81, 19, 81, 27, 81, 35, 81, 60, 81, 68, 81,188, 82, 8, 82, 93, + 82,116, 82,139, 82,196, 82,204, 83, 9, 83, 17, 83, 25, 83,128, 83,136, 84, 21, 84,116, 84,197, 84,221, 85, 55, 85,141, 85,149, + 85,157, 85,165, 85,173, 85,181, 85,189, 85,197, 86, 66, 86, 74, 86, 82, 86,135, 86,188, 87, 1, 87, 93, 87,159, 87,239, 88, 44, + 88,124, 88,232, 89, 71, 89, 79, 89,166, 90, 5, 90, 45, 90,139, 90,147, 91, 62, 91,153, 91,246, 92, 18, 92,113, 92,246, 93,128, + 93,184, 93,192, 93,231, 93,239, 93,247, 94, 40, 94, 48, 94,144, 94,152, 94,204, 95, 1, 95, 69, 95,152, 95,220, 96, 52, 96,115, + 96,209, 97, 51, 97,142, 97,166, 98, 10, 98, 32, 98,121, 98,129, 98,137, 98,162, 98,170, 99, 26, 99,112, 99,120, 99,142, 99,164, + 99,222,100, 16,100, 58,100, 82,100,105,100,128,100,150,100,175,100,200,100,224,100,247,101, 16,101, 38,101, 60,101,110,101,150, +101,197,101,249,102, 32,102, 99,102,176,102,253,103, 49,103,122,103,164,103,246,104,185,104,193,104,201,104,254,105, 38,105, 68, +105,100,105,162,105,242,106,103,106,221,107, 80,107,228,108, 79,109, 10,109,109,109,117,109,195,109,254,110, 53,110,110,110,167, +110,250,111,124,111,168,112, 1,112, 27,112, 72,112,178,112,232,113, 65,113,157,113,235,114, 55,114,118,114,212,115, 31,115, 78, +115,130,115,162,115,195,115,228,116, 22,116, 97,116,182,116,255,117, 45,117,161,117,239,117,239,117,239,117,239,117,239,117,239, +117,239,117,239,117,239,117,239,117,239,117,239,117,239,117,239,119, 67,119,192,119,210,119,218,120,119,120,241,121,122,121,145, +121,167,121,191,121,215,121,252,122, 83,122,157,123, 25,123,148,123,253,124, 89,124,173,125, 17,125, 25,125, 33,125, 41,125,108, +125,140,125,164,125,188,125,211,125,234,126,126,127, 2,127, 86,127,172,128, 27,128,136,129, 6,129,155,130, 81,130,235,131, 85, +131,208,132, 81,132,226,133,190,134,162,134,170,134,178,135, 13,135, 89,135,179,136, 18,136, 44,136, 69,136,233,137,144,138, 28, +138,155,139,132,140, 86,141, 26,141,219,142, 45,142,120,142,249,143, 41,143, 90,143,138,143,188,144,100,145, 13,145,135,146, 22, +146,104,146,192,147, 48,147,193,147,244,148, 38,148,125,148,213,149, 58,149,151,149,170,149,191,150, 25,150, 95,150,199,151, 43, +151,138,151,241,152, 63,152,138,152,206,153, 21,153, 85,153,140,153,229,154, 74,154,245,155,170,155,190,155,209,156, 13,156, 63, +156, 71,156,158,157, 36,157,148,158, 8,158,139,158,196,159, 0,159, 71,159,146,159,233,160, 70,160,125,160,192,161, 60,161,185, +162, 67,162,204,162,212,162,235,163, 1,163,104,163,199,164, 37,164,112,164,196,165, 21,165, 93,165,159,165,235,166, 60,166,220, +167,126,167,134,167,158,167,180,167,206,167,230,167,238,167,246,168, 14,168, 36,168,133,168,230,168,255,169, 23,169, 49,169, 74, +169,100,169,125,169,212,170, 46,170, 69,170, 91,170,116,170,140,170,165,170,190,170,198,170,206,170,231,171, 0,171, 26,171, 51, +171, 74,171, 96,171,122,171,146,171,171,171,195,171,220,171,244,172, 37,172, 81,172,106,172,130,172,212,173, 37,173, 62,173, 90, +173,212,174, 93,174,156,174,164,175, 9,175,127,175,246,176,105,176,213,177, 62,177,175,178, 18,178,100,178,186,179, 28,179,120, +179,193,180, 10,180,127,180,135,180,143,180,151,180,173,180,195,180,218,180,240,181, 9,181, 33,181, 59,181, 84,181,109,181,133, +181,158,181,182,181,215,181,247,182, 16,182, 40,182, 65,182, 89,182,114,182,138,182,164,182,188,182,223,182,255,183, 21,183, 43, +183, 66,183, 88,183,111,183,133,183,158,183,182,183,208,183,233,184, 2,184, 26,184, 52,184, 76,184,109,184,141,184,164,184,186, +184,208,184,231,184,254,185, 20,185, 43,185, 65,185, 90,185,114,185,140,185,165,185,190,185,214,185,239,186, 7,186, 43,186, 75, +186, 98,186,117,186,141,186,162,186,186,186,209,186,233,186,254,187, 21,187, 44,187, 66,187, 88,187,111,187,133,187,157,187,178, +187,202,187,224,187,248,188, 15,188, 38,188, 57,188, 80,188,103,188,125,188,147,188,170,188,192,188,215,188,237,189,126,189,195, +190, 21,190,103,190,216,191, 79,191,152,191,225,192, 77,192,190,192,241,193, 28,193, 71, 0, 0, 0, 2, 0,193, 0, 0, 4, 10, + 5,182, 0, 3, 0, 7, 0, 39, 64, 21, 5, 96, 2, 1, 2, 2, 9, 4, 0, 3,112, 3,128, 3, 3, 3, 4, 3, 7, 0, 3, 0, + 63, 50, 47, 51, 1, 47, 93, 51, 17, 51, 47, 93, 51, 49, 48, 19, 33, 17, 33, 55, 33, 17, 33,193, 3, 73,252,183,104, 2,121,253, +135, 5,182,250, 74,104, 4,230, 0, 2, 1,231,255,227, 2,229, 5,182, 0, 3, 0, 11, 0, 52, 64, 28, 1, 0, 3, 6,150, 2, + 10, 10, 12, 13, 47, 0, 1, 0, 0, 2, 21, 4, 1, 6, 4, 1, 4,155, 8,168, 2, 3, 0, 63, 63,225, 93, 93, 17, 57, 47, 93, + 17, 18, 1, 57, 47, 51,225, 50, 57, 57, 49, 48, 1, 35, 3, 51, 3, 50, 21, 20, 35, 34, 53, 52, 2,164,121, 51,223,113,127,127, +127, 1,158, 4, 24,251, 68,139,140,140,139, 0, 0, 2, 1, 29, 3,166, 3,176, 5,182, 0, 3, 0, 7, 0, 46, 64, 28, 4,207, + 7, 1,160, 7, 1, 79, 7, 1, 7, 0, 32, 3, 48, 3,144, 3,160, 3, 4, 3, 6, 1,158, 7, 0, 3, 0, 63, 50,237, 50, 1, + 47, 93,193, 47, 93, 93, 93,193, 49, 48, 1, 3, 35, 3, 33, 3, 35, 3, 2, 10, 41,155, 41, 2,147, 41,155, 41, 5,182,253,240, + 2, 16,253,240, 2, 16, 0, 2, 0, 45, 0, 0, 4,160, 5,182, 0, 27, 0, 31, 0,184, 64,115, 28, 8, 20, 9,171, 10, 18, 15, + 14, 11, 4, 10, 19,170, 20, 4, 1, 0, 25, 4, 24, 5,170, 6, 22, 30, 29, 7, 4, 6, 23,171, 24, 31, 21, 10, 20, 64, 2, 80, + 2, 2, 16, 10, 20, 6, 24, 2, 2, 24, 6, 20, 10, 16, 6,208, 26,240, 26, 2,127, 26,159, 26, 2, 26,224, 12,240, 12, 2, 12, + 8, 4, 12,174, 13, 28, 1, 13, 31, 0, 16,174, 17, 25, 21, 17, 63, 17, 79, 17,127, 17,143, 17,159, 17, 5, 63, 13, 79, 13, 2, + 13, 17, 13, 17, 5, 23, 19, 3, 10, 5, 18, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 93, 93, 17, 51, 51, 16,225, 50, 50, 17, 51, + 51, 16,225, 50, 50, 1, 47, 93, 47, 93, 93, 23, 57, 47, 47, 47, 47, 47, 47, 93, 17, 18, 57, 57, 16,225, 17, 23, 57, 16,225, 17, + 23, 57, 16,225, 17, 23, 57, 16,225, 17, 57, 57, 49, 48, 1, 3, 51, 21, 33, 3, 35, 19, 33, 3, 35, 19, 35, 53, 51, 19, 35, 53, + 33, 19, 51, 3, 33, 19, 51, 3, 51, 21, 1, 33, 19, 33, 3,168, 64,240,254,246, 82,148, 84,254,222, 82,144, 78,217,244, 65,233, + 1, 2, 82,147, 82, 1, 37, 84,144, 84,221,253, 20, 1, 35, 64,254,221, 3,125,254,184,137,254, 84, 1,172,254, 84, 1,172,137, + 1, 72,137, 1,176,254, 80, 1,176,254, 80,137,254,184, 1, 72, 0, 3, 0,182,255,137, 4, 20, 6, 18, 0, 28, 0, 34, 0, 39, + 0,205, 64,134, 19, 36, 1, 4, 36, 1, 19, 35, 1, 4, 35, 1, 19, 9, 1, 6, 9, 1, 3, 8, 19, 8, 2, 2, 3, 18, 3, 2, + 2, 2, 18, 2, 2, 4, 1, 20, 1, 2, 4, 0, 20, 0, 2, 36, 24, 18, 1,112, 29, 15, 8, 2, 2, 5, 72, 38, 88, 38,120, 38, + 3, 38,110, 20, 27, 64, 17, 20, 72, 64, 27, 80, 27, 2, 27, 41, 5, 5, 32,110, 0, 12,144, 12,160, 12,208, 12, 4, 12, 23, 30, +115, 15, 38, 35, 9, 24, 29, 32, 6, 3, 21, 18, 15, 95, 16,111, 16,127, 16, 3, 16, 16, 15, 15, 47, 15, 63, 15, 95, 15, 4, 15, + 36, 8,115, 3, 6, 3, 2, 2, 0, 3,184,255,192,179, 10, 14, 72, 3, 0, 47, 43, 51, 51, 47, 17, 51, 16,225, 50, 47, 93, 51, + 47, 93, 17, 51, 51, 18, 23, 57, 16,225, 50, 1, 47, 93,225, 51, 47, 16,222, 93, 43, 50,225, 93, 17, 57, 47, 51, 51, 51,225, 50, + 50, 50, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 37, 21, 35, 53, 34, 39, 53, 22, 51, 17, 38, 38, 53, 52, 54, 55, 53, + 51, 21, 22, 23, 7, 38, 39, 17, 22, 22, 21, 16, 1, 17, 6, 21, 20, 22, 23, 17, 54, 53, 52, 2,172,137,228,137,196,169,193,155, +184,164,137,187,149, 66,140,130,199,161,254, 15,172, 81,228,184,111,230,221, 70,172, 92, 1,178, 64,163,138,131,172, 20,180,176, + 9, 69,145, 62, 10,254, 90, 68,161,130,254,232, 2,176, 1,113, 29,145, 78, 86,250,254,139, 28,156,127, 0, 5, 0, 0,255,238, + 4,205, 5,199, 0, 11, 0, 19, 0, 23, 0, 35, 0, 43, 0,207,185, 0, 34,255,224,179, 9, 13, 72, 32,184,255,224, 64, 14, 9, + 13, 72, 28, 32, 9, 13, 72, 26, 32, 9, 13, 72, 10,184,255,224,179, 9, 13, 72, 8,184,255,224, 64, 33, 9, 13, 72, 4, 32, 9, + 13, 72, 2, 32, 9, 13, 72,103, 42,151, 42,167, 42, 3, 42,180, 27,181, 33, 21, 22, 23, 20, 0, 22, 1, 22,184,255,192, 64, 26, + 21, 24, 72, 15, 20, 1, 20, 64, 21, 24, 72, 22, 20, 22, 20, 3,104, 38,152, 38,168, 38, 3, 38,180, 33,184,255,192, 64, 46, 21, + 24, 72, 33, 45,104, 14,152, 14,168, 14, 3, 14,180, 9,181,103, 18,151, 18,167, 18, 3, 18,180, 3, 40,182, 30,183, 36,182, 24, + 25, 23, 6, 21, 24, 12,182, 0,183, 16,182, 6, 7, 0, 63,225,244,225, 63, 63, 63,225,244,225, 1, 47,225, 93,244,225, 93, 16, +212, 43,225, 93, 18, 57, 57, 47, 47, 43, 93, 43, 93, 17, 51, 17, 51, 16,244,225, 93, 49, 48, 43, 43, 43, 43, 43, 43, 43, 43, 1, + 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 1, 1, 35, 1, 19, 34, 38, 53, 52, 54, 51, 50, 22, + 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 1, 35,131,160,158,137,129,162,157,136,139,139,141, 3,137,253, 39,158, 2,217, 35, +130,161,158,137,129,162,157,136,139,139,141, 3, 16,189,160,164,182,186,160,162,187,119,230,225,225,230, 2, 47,250, 74, 5,182, +250, 56,189,159,164,182,186,160,161,187,118,230,225,225,230, 0, 0, 3, 0, 61,255,236, 4,203, 5,205, 0, 26, 0, 37, 0, 45, + 0,229, 64, 15, 17, 39, 38, 9, 4, 8, 19, 8, 27, 0, 1, 6, 4, 7, 36,184,255,240, 64, 48, 14, 17, 72, 64, 36, 1, 52, 36, + 1, 36, 71, 19, 30, 16, 14, 17, 72, 79, 30, 1, 59, 30, 1, 6, 30, 71, 25, 32, 19, 48, 19, 2,192, 25,208, 25, 2, 19, 25, 19, + 25, 14,121, 3, 1, 3, 71, 4,184,255,192, 64, 28, 9, 18, 72, 4, 4, 7, 7, 47, 41, 72, 14, 64, 10, 16, 72, 14, 70, 6, 1, + 70, 1, 86, 1, 2, 55, 1, 1, 27,184,255,248, 64, 55, 11, 14, 72, 27, 0, 1, 6, 4, 8, 33, 80, 22, 88, 9, 1, 88, 38, 1, + 56, 39, 88, 39, 2, 41, 39, 1, 40, 17, 1, 17, 39, 38, 9, 4, 8, 22, 15, 3, 31, 3, 79, 3,127, 3, 4, 3, 3, 22, 4, 44, + 81, 11, 22, 8, 21, 0, 63, 63,225, 63, 57, 47, 93, 17, 18, 23, 57, 93, 93, 93, 93, 93, 16,225, 17, 23, 57, 43, 93, 93, 93, 1, + 47, 43,225, 17, 51, 47, 51, 47, 43,225, 93, 18, 57, 57, 47, 47, 93, 93, 16,225, 95, 93, 93, 43, 16,225, 93, 93, 43, 17, 23, 57, + 51, 17, 18, 23, 57, 49, 48, 1, 1, 54, 55, 51, 6, 7, 19, 35, 39, 6, 35, 34, 38, 53, 52, 54, 55, 38, 53, 52, 54, 51, 50, 22, + 21, 20, 5, 54, 54, 53, 52, 38, 35, 34, 6, 21, 20, 1, 1, 6, 21, 20, 22, 51, 50, 2, 90, 1, 25, 71, 33,184, 53,125,234,217, +131,174,238,189,217,127,172,163,191,179,168,185,254,100,134, 99, 99, 81, 87, 99, 1,147,254,189,203,134, 93,160, 3, 8,254,164, +121,145,234,169,254,221,166,186,214,187,131,195,102,192,164,148,172,171,149,203, 65, 79,119, 74, 74, 92, 89, 81,118,253, 8, 1, +145,123,178,105,141, 0, 0, 1, 1,240, 3,166, 2,221, 5,182, 0, 3, 0, 24, 64, 13, 0,160, 3,224, 3,240, 3, 3, 3, 1, +158, 0, 3, 0, 63,237, 1, 47, 93,193, 49, 48, 1, 3, 35, 3, 2,221, 41,155, 41, 5,182,253,240, 2, 16, 0, 0, 1, 1, 39, +254,188, 3,164, 5,182, 0, 9, 0, 39, 64, 21, 6, 5, 5, 0, 1, 1, 11, 3,240, 31, 8,127, 8,143, 8, 3, 8, 6,249, 0, +248, 0, 63, 63, 1, 47, 93,225, 17, 51, 47, 51, 51, 17, 51, 49, 48, 1, 51, 0, 17, 16, 1, 35, 0, 17, 16, 2,227,193,254, 63, + 1,191,191,254, 68, 5,182,254,136,253,251,253,247,254,140, 1, 97, 2, 26, 2, 20, 0, 0, 1, 1, 41,254,188, 3,166, 5,182, + 0, 9, 0, 39, 64, 21, 3,240, 16, 8,112, 8,128, 8, 3, 8, 8, 11, 0, 1, 1, 6, 5, 6,248, 0,249, 0, 63, 63, 1, 47, + 51, 51, 17, 51, 17, 51, 47, 93,225, 49, 48, 1, 35, 0, 17, 16, 1, 51, 0, 17, 16, 1,233,190, 1,190,254, 64,192, 1,189,254, +188, 1,115, 2, 10, 2, 6, 1,119,254,151,253,234,253,228, 0, 0, 1, 0,133, 2,119, 4, 72, 6, 20, 0, 14, 0, 36, 64, 21, +244, 7, 1, 7, 5, 9, 7, 4, 10, 3, 11, 1, 13, 2, 12, 11, 8, 6, 6, 0, 0, 0, 63, 50, 47, 51, 23, 57, 1, 25, 47, 93, + 49, 48, 1, 3, 37, 23, 5, 19, 7, 3, 3, 39, 19, 37, 55, 5, 3, 2,203, 43, 1,141, 27,254,133,246,179,176,157,185,242,254, +137, 29, 1,135, 43, 6, 20,254,119,111,193, 28,254,186, 96, 1,102,254,154, 96, 1, 70, 28,193,111, 1,137, 0, 0, 1, 0,152, + 1, 6, 4, 51, 4,162, 0, 11, 0, 31, 64, 16, 9, 6,170, 0,192, 3,208, 3, 2, 3, 9, 0,173, 6, 3,179, 0, 63, 51,225, + 50, 1, 47, 93, 51,225, 50, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 2, 27,254,125, 1,131,149, 1,131,254,125, +149, 2,135,150, 1,133,254,123,150,254,127, 0, 0, 1, 1,184,254,223, 3, 18, 1, 6, 0, 6, 0, 63, 64, 25, 25, 6, 41, 6, +233, 6,249, 6, 4, 6,152, 1,153,112, 4,128, 4,208, 4,224, 4,240, 4, 5, 4,184,255,192, 64, 15, 9, 12, 72, 4, 4, 7, + 8, 3,158, 31, 6, 47, 6, 2, 6, 0, 47, 93,237, 17, 18, 1, 57, 47, 43, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, + 3, 2, 16, 57,137,152, 76, 35, 1, 6, 24,224,254,209, 1, 67,228, 0, 0, 1, 1, 29, 1,209, 3,176, 2,121, 0, 3, 0, 32, + 64, 18,128, 2,144, 2, 2, 2, 2, 5, 32, 0, 48, 0, 2, 0, 0,185, 1,189, 0, 63,225, 1, 47, 93, 17, 51, 47, 93, 49, 48, + 1, 53, 33, 21, 1, 29, 2,147, 1,209,168,168, 0, 1, 1,207,255,225, 2,254, 1, 45, 0, 7, 0, 29, 64, 15, 2,151, 48, 6, +176, 6, 2, 6, 6, 8, 9, 0,156, 4,168, 0, 63,237, 17, 18, 1, 57, 47, 93,237, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 2, +102,152,152,151, 1, 45,166,166,166,166, 0, 1, 0,211, 0, 0, 3,248, 5,182, 0, 3, 0, 28, 64, 12, 3, 0, 0, 5, 1, 2, + 2, 4, 3, 3, 1, 18, 0, 63, 63, 17, 1, 51, 47, 51, 17, 51, 47, 50, 49, 48, 1, 1, 35, 1, 3,248,253,141,178, 2,115, 5, +182,250, 74, 5,182, 0, 0, 2, 0,147,255,236, 4, 57, 5,205, 0, 9, 0, 21, 0, 54, 64, 18, 13,111,208, 8, 1, 8, 23, 19, +111, 0, 3, 16, 3, 32, 3, 3, 7, 3,184,255,192, 64, 12, 21, 24, 72, 3, 16,115, 5, 7, 10,115, 0, 25, 0, 63,225, 63,225, + 1, 47, 43, 94, 93,225, 16,222, 93,225, 49, 48, 5, 34, 2, 17, 16, 33, 50, 18, 17, 16, 37, 50, 18, 17, 16, 2, 35, 34, 2, 17, + 16, 18, 2,100,229,236, 1,209,232,237,254, 43,147,138,138,147,145,135,135, 20, 1,131, 1,110, 2,240,254,125,254,147,253, 15, +155, 1, 25, 1, 61, 1, 59, 1, 25,254,233,254,195,254,194,254,232, 0, 0, 1, 0,225, 0, 0, 2,246, 5,182, 0, 10, 0, 43, + 64, 22, 9, 1, 8, 8, 0,110, 0, 1, 16, 1, 2, 6, 1, 1, 12, 11, 4, 7, 9, 6, 0, 24, 0, 63, 63,205, 57, 17, 18, 1, + 57, 47, 94, 93,225, 51, 47, 17, 51, 49, 48, 33, 35, 17, 52, 55, 6, 7, 7, 39, 1, 51, 2,246,176, 8, 39, 82,147, 97, 1,127, +150, 3,145,122,239, 43, 70,121,123, 1, 43, 0, 0, 1, 0,158, 0, 0, 4, 45, 5,203, 0, 23, 0, 85, 64, 29,144, 23,160, 23, +176, 23, 3, 23, 23, 6,111,255, 17, 1, 17, 64, 15, 19, 72, 17, 25,213, 22,229, 22,245, 22, 3, 22,184,255,232, 64, 23, 9, 12, + 72, 22, 12, 0, 1,176, 1, 2, 1, 6, 1, 11, 9,115, 14, 7, 2, 22,116, 1, 24, 0, 63,225, 50, 63,225, 51, 18, 57, 1, 47, + 93, 50, 50, 43, 93, 16,222, 43, 93,225, 51, 47, 93, 49, 48, 33, 33, 53, 1, 54, 54, 53, 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, + 21, 20, 6, 7, 1, 21, 33, 4, 45,252,113, 1, 94,195,124,127,108,160,158,102,192,230,194,224,118,232,254,231, 2,176,156, 1, +125,213,209,126,113,131,137,119,172,212,179,119,250,250,254,213, 8, 0, 0, 1, 0,131,255,236, 4, 31, 5,203, 0, 34, 0, 95, + 64, 58, 11, 19, 27, 19, 2, 0, 16, 21,111, 32, 32, 3, 95, 16, 1, 16, 16, 8, 13,111,159, 3,175, 3, 2, 3, 36, 27,207, 8, +223, 8,239, 8, 3, 0, 8, 1, 8, 0, 16,115,104, 17, 1, 17, 17, 11, 26, 24,115, 29, 7, 11,115, 9, 6, 25, 0, 63, 51,225, + 63,225, 51, 18, 57, 47, 93,225, 57, 1, 47, 93, 93, 51, 16,222, 93,225, 17, 57, 47, 93, 17, 51, 47,225, 18, 57, 49, 48, 93, 1, + 21, 4, 17, 20, 4, 33, 34, 39, 53, 22, 51, 32, 17, 16, 33, 35, 53, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, 21, + 20, 6, 2,182, 1,105,254,236,254,251,242,145,184,199, 1, 98,254,131,133,133,160,176,136,114,178,166, 92,187,249,206,231,164, + 3, 2, 6, 47,254,211,203,233, 79,170, 96, 1, 33, 1, 2,151,152,125,102,119,121,125,150,198,165,138,186, 0, 0, 2, 0, 61, + 0, 0, 4,102, 5,190, 0, 10, 0, 18, 0, 86, 64, 24, 7, 16, 9, 15, 72, 11, 7, 3,110, 9, 0, 2, 64, 16, 19, 72, 0, 2, + 1, 2, 2, 19, 20, 18,184,255,240, 64, 24, 11, 15, 72, 18, 5, 64, 10, 16, 72, 5, 1, 4,116, 9, 6, 14, 7, 11, 11, 2, 7, + 6, 2, 24, 0, 63, 63, 18, 57, 47, 18, 57, 51, 51,225, 50, 1, 47, 43, 51, 43, 17, 18, 57, 47, 93, 43, 51, 51,225, 50, 50, 49, + 48, 43, 1, 35, 17, 35, 17, 33, 53, 1, 51, 17, 51, 33, 17, 52, 19, 35, 6, 7, 1, 4,102,213,176,253, 92, 2,152,188,213,254, +123, 13, 9, 36, 54,254,101, 1, 72,254,184, 1, 72,159, 3,215,252, 48, 1,100,176, 1, 0,102, 78,253,160, 0, 0, 1, 0,172, +255,236, 4, 31, 5,182, 0, 24, 0, 82, 64, 49, 13, 64, 11, 15, 72, 13, 13, 0, 5,111,159, 20,175, 20, 2, 20, 26, 14, 15, 15, + 11, 9, 10, 10, 0, 0,144, 0,160, 0,176, 0, 4, 0, 9, 7,115, 17, 17, 11, 3,115, 1, 23, 25, 14,116, 11, 6, 0, 63,225, + 63, 51,225, 17, 57, 47,225, 51, 1, 47, 93, 51, 47, 51, 51, 51, 17, 51, 16,222, 93,225, 18, 57, 47, 43, 49, 48, 55, 53, 22, 51, + 32, 17, 16, 33, 34, 7, 39, 19, 33, 21, 33, 3, 54, 51, 50, 4, 21, 20, 4, 35, 34,172,144,216, 1, 80,254,168, 89,142, 90, 55, + 2,178,253,236, 39,107,102,210, 1, 3,254,236,251,224, 59,172, 96, 1, 58, 1, 38, 26, 57, 2,176,166,254, 93, 20,229,199,234, +255, 0, 0, 2, 0,154,255,236, 4, 51, 5,203, 0, 21, 0, 33, 0, 79, 64, 22, 1, 64, 11, 15, 72, 1, 1, 18, 22,110,191, 12, + 1, 12, 35, 6, 28,111, 0, 18, 1, 18,184,255,192, 64, 22, 20, 24, 72, 18, 6, 25,117,127, 9, 1, 9, 9, 31, 3,115, 1, 20, + 7, 31,115, 15, 25, 0, 63,225, 63, 51,225, 18, 57, 47, 93,225, 50, 1, 47, 43, 93,225, 50, 16,222, 93,225, 18, 57, 47, 43, 49, + 48, 1, 21, 38, 35, 34, 2, 3, 51, 54, 51, 50, 22, 21, 20, 2, 35, 34, 0, 17, 16, 33, 50, 19, 52, 38, 35, 34, 6, 21, 20, 22, + 51, 50, 54, 3,197, 71, 95,224,225, 10, 12, 95,212,195,221,241,203,218,254,253, 2,127,104, 2,137,127,127,172,162,131,127,143, + 5,184,155, 24,254,230,254,206,170,238,206,228,254,249, 1, 81, 1, 52, 3, 90,252, 12,145,156,162,104,152,221,176, 0, 0, 1, + 0,143, 0, 0, 4, 59, 5,182, 0, 6, 0, 71, 64, 48,121, 6,137, 6, 2, 71, 6, 87, 6, 2, 7, 6, 23, 6, 39, 6, 3, 6, + 0, 0, 2, 8, 1, 24, 1, 40, 1, 3, 1, 5, 8, 0, 2,208, 2,224, 2,240, 2, 4, 2, 5, 2,116, 3, 6, 0, 24, 0, 63, + 63,225, 50, 1, 47, 93, 16,206, 50, 93, 17, 57, 47, 51, 93, 49, 48, 93, 93, 33, 1, 33, 53, 33, 21, 1, 1, 78, 2, 51,253, 14, + 3,172,253,213, 5, 16,166,145,250,219, 0, 3, 0,156,255,236, 4, 49, 5,205, 0, 19, 0, 30, 0, 41, 0,124, 64, 31, 10, 31, + 12, 38,110, 2, 20, 0, 2, 28,110, 12, 22,110, 18, 12, 18, 12, 18, 8,191, 2, 1, 2, 43, 33,110, 0, 8, 1, 8,184,255,192, +183, 20, 24, 72, 8,215, 20, 1, 20,184,255,240, 64, 34, 12, 15, 72, 7, 20, 23, 20, 2, 57, 31, 89, 31,105, 31,121, 31, 4, 42, + 31, 1, 31, 10, 0, 20, 4, 35, 25,115, 15, 7, 35,115, 5, 25, 0, 63,225, 63,225, 18, 23, 57, 93, 93, 93, 43, 93, 1, 47, 43, + 93,225, 16,206, 93, 17, 57, 57, 47, 47, 16,225, 16,225, 17, 57, 57, 16,225, 17, 57, 57, 49, 48, 1, 4, 21, 20, 6, 35, 34, 38, + 53, 16, 37, 38, 53, 52, 54, 51, 50, 22, 21, 20, 5, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 23, 6, 21, 20, 33, 50, 54, 53, 52, + 38, 39, 2,252, 1, 53,252,207,216,242, 1, 26,235,233,178,184,228,254,102,232,126,110,106,125, 99,108,254, 1, 20,136,149,126, +151, 3, 6,160,233,181,220,207,186, 1, 1,136,146,223,161,189,190,162,230, 55,103,175,101,106,106,101, 90,125,215,121,204,240, +131,117, 90,139, 74, 0, 0, 2, 0,154,255,236, 4, 51, 5,203, 0, 21, 0, 33, 0, 78,185, 0, 1,255,192, 64, 20, 11, 15, 72, + 1, 1, 12, 6, 28,111,191, 18, 1, 18, 35, 22,110, 0, 12, 1, 12,184,255,192, 64, 19, 20, 24, 72, 12, 6, 25,117, 9, 9, 15, + 3,117, 1, 20, 25, 31,115, 15, 7, 0, 63,225, 63, 51,225, 17, 57, 47,225, 50, 1, 47, 43, 93,225, 16,222, 93,225, 50, 18, 57, + 47, 43, 49, 48, 5, 53, 22, 51, 50, 18, 19, 35, 6, 35, 34, 38, 53, 52, 18, 51, 50, 0, 17, 16, 33, 34, 3, 20, 22, 51, 50, 54, + 53, 52, 38, 35, 34, 6, 1, 8, 67, 99,224,225, 10, 12, 96,212,194,221,241,203,220, 1, 1,253,129,105, 1,137,127,127,172,160, +133,128,142, 2,156, 25, 1, 26, 1, 50,170,236,208,228, 1, 8,254,170,254,209,252,166, 3,243,145,156,163,103,151,222,174, 0, + 0, 2, 1,231,255,227, 2,229, 4,102, 0, 7, 0, 15, 0, 45, 64, 27, 10, 2,150, 14, 48, 6, 96, 6,176, 6,224, 6,240, 6, + 5, 6, 6, 16, 17, 8,155, 12,168, 4,155, 0, 16, 0, 63,237, 63,237, 17, 18, 1, 57, 47, 93, 51,237, 50, 49, 48, 1, 50, 21, + 20, 35, 34, 53, 52, 19, 50, 21, 20, 35, 34, 53, 52, 2,102,127,127,127,127,127,127,127, 4,102,139,139,139,139,252,148,139,140, +140,139, 0, 2, 1,154,254,248, 2,236, 4,102, 0, 7, 0, 14, 0, 68, 64, 46, 25, 14, 41, 14,233, 14,249, 14, 4, 14,152, 12, +153, 9, 9, 2,150, 48, 6, 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 15, 16, 11,157, 31, 14, 47, 14, 63, 14, 3, 14, 4,155, + 0, 16, 0, 63,237, 47, 93,237, 17, 18, 1, 57, 47, 93,237, 50, 47,237,225, 93, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 19, 23, + 6, 3, 35, 54, 55, 2,109,127,127,127,215, 14, 51,125,137, 62, 38, 4,102,139,139,139,139,252,136, 23,197,254,230,255,247, 0, + 0, 1, 0,152, 0,221, 4, 51, 4,201, 0, 6, 0, 97, 64, 61,103, 6,119, 6,135, 6, 3,104, 4,120, 4,136, 4, 3,118, 5, +134, 5, 2, 5, 4, 1, 4, 0, 8, 1, 1, 7, 2, 1, 5, 5, 3, 6,224, 0, 1,223, 0, 1, 64, 0, 1, 63, 0, 1, 0, 0, + 1, 0, 0, 4, 32, 3,192, 3, 2, 15, 3, 1, 3, 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 50, 18, 57, 17, 51, 51, 17, + 1, 51, 47, 16,206, 50, 17, 18, 57, 93, 49, 48, 0, 93, 93, 37, 1, 53, 1, 21, 1, 1, 4, 51,252,101, 3,155,253, 53, 2,203, +221, 1,195,102, 1,195,160,254,170,254,170, 0, 0, 2, 0,152, 1,186, 4, 51, 3,233, 0, 3, 0, 7, 0, 64, 64, 39, 7, 2, + 9, 4, 0, 1, 1, 1, 1, 8, 5,173,112, 4, 1, 79, 4, 95, 4,111, 4, 3, 0, 4, 1, 4, 4, 0,173,143, 1, 1, 80, 1, + 1, 15, 1, 1, 1, 0, 47, 93, 93, 93,225, 51, 47, 93, 93, 93,225, 17, 1, 51, 47, 93, 51, 16,206, 50, 49, 48, 19, 53, 33, 21, + 1, 53, 33, 21,152, 3,155,252,101, 3,155, 3, 84,149,149,254,102,150,150, 0, 0, 1, 0,152, 0,221, 4, 51, 4,201, 0, 6, + 0, 95, 64, 60,104, 2,120, 2,136, 2, 3,103, 0,119, 0,135, 0, 3,121, 1,137, 1, 2, 1, 6, 4, 8, 2, 6, 6, 7, 5, + 4, 1, 1, 3, 0,224, 6, 1,223, 6, 1, 64, 6, 1, 63, 6, 1, 0, 6, 1, 6, 6, 2, 32, 3,192, 3, 2, 15, 3, 1, 3, + 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 51, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 16,206, 17, 57, 93, 49, 48, 0, 93, + 93, 19, 1, 1, 53, 1, 21, 1,152, 2,202,253, 54, 3,155,252,101, 1,125, 1, 86, 1, 86,160,254, 61,102,254, 61, 0, 0, 2, + 0,168,255,227, 4, 35, 5,203, 0, 25, 0, 33, 0, 74, 64, 42, 25, 0, 0, 28,150, 32, 32, 13, 7, 71, 18, 35, 32, 35, 1, 0, + 13, 1, 13, 7, 15, 47, 0, 1, 0, 0, 15, 21, 26, 1, 6, 26, 1, 26,155, 30,168, 12, 10, 81, 15, 4, 0, 63,225, 51, 63,225, + 93, 93, 17, 57, 47, 93, 18, 57, 1, 47, 93, 93, 16,222,225, 17, 57, 47,229, 51, 17, 51, 49, 48, 1, 53, 52, 54, 55, 54, 54, 53, + 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 6, 7, 6, 6, 21, 21, 7, 50, 21, 20, 35, 34, 53, 52, 1,209, 92,115,130, 83, +149,132,174,197, 65,209,217,214,251,107,143,118, 66, 72,127,127,127, 1,158, 37,120,150, 82, 97,116,100, 92,115, 90,153, 97,195, +164,133,166,108, 87,108, 90, 18,164,139,140,140,139, 0, 0, 2, 0, 31,255, 74, 4,174, 5,182, 0, 46, 0, 56, 0,143, 64, 90, + 22, 52, 1, 52,211, 6, 0, 47, 24, 56, 1, 56,211, 14, 11, 30, 14, 28, 6, 1,212, 14, 1, 96, 14, 1, 25, 14, 1, 4, 14, 1, + 6, 14, 6, 14, 36, 9, 19, 1, 19,210, 42, 58, 6, 25, 1, 25,210, 36, 17, 54,213, 3, 45, 3, 49,213, 9, 63, 3, 79, 3,143, + 3,207, 3,223, 3, 5, 48, 9, 64, 9,208, 9, 3, 3, 9, 3, 9, 28, 22,214, 39, 3, 28,214, 30, 33, 0, 47, 51,225, 63,225, + 18, 57, 57, 47, 47, 93, 93, 16,225, 17, 51, 16,225, 50, 1, 47,225, 93, 16,214,225, 93, 17, 57, 57, 47, 47, 93, 93, 93, 93, 93, + 17, 57, 51, 16,225, 93, 50, 57, 16,225, 93, 49, 48, 1, 35, 6, 35, 34, 38, 53, 52, 54, 51, 50, 23, 3, 6, 21, 21, 20, 51, 50, + 17, 16, 2, 35, 34, 2, 17, 16, 0, 51, 50, 55, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 0, 17, 20, 2, 35, 34, 3, 38, 35, 34, + 6, 21, 20, 51, 50, 19, 3, 31, 4, 74,156,120,140,194,158,137,119, 22, 2, 72,100,222,188,226,253, 1, 3,239,181,165,158,194, +254,214,254,177, 1, 78, 1, 32,248, 1, 41,128,114,128, 76, 54, 49, 89, 95,127,131, 14, 1,145,180,209,176,206,253, 47,254, 96, + 38, 31, 7,176, 1,127, 1, 22, 1, 60,254,128,254,177,254,200,254,171, 78,133, 82, 1,158, 1,114, 1,141, 1,207,254,120,254, +173,231,254,233, 2,182, 21,187,147,252, 1, 56, 0, 2, 0, 33, 0, 0, 4,172, 5,188, 0, 7, 0, 14, 0,168, 64, 10, 2, 14, + 3, 8, 1, 0,183, 6, 1, 6,184,255,248, 64, 98, 14, 17, 72, 71, 6, 1, 38, 6, 1, 23, 6, 1, 6, 6, 1, 6,184, 5, 1, + 5, 8, 14, 17, 72, 72, 5, 1, 41, 5, 1, 24, 5, 1, 9, 5, 1, 5, 11, 11, 4, 88, 0, 1, 72, 0, 1, 42, 0, 1, 9, 0, + 25, 0, 2, 0, 7, 7, 16, 87, 3, 1, 71, 3, 1, 37, 3, 1, 6, 3, 22, 3, 2, 3, 4, 2, 95, 11, 16, 17, 20, 72, 11, 16, + 11, 14, 72, 29, 11, 1, 11, 5, 14, 14, 5, 3, 4, 0, 18, 0, 63, 50, 63, 57, 47, 18, 57, 93, 43, 43,225, 1, 47, 51, 93, 93, + 93, 93, 17, 51, 47, 51, 93, 93, 93, 93, 18, 57, 61, 47, 51, 93, 93, 93, 93, 43, 93, 51, 93, 93, 93, 93, 43, 93, 18, 57, 57, 18, + 57, 57, 49, 48, 33, 3, 33, 3, 35, 1, 51, 1, 1, 3, 38, 39, 6, 7, 3, 3,236,144,254, 21,146,190, 1,227,195, 1,229,254, +123,133, 39, 23, 20, 26,144, 1,197,254, 59, 5,188,250, 68, 2,106, 1,168,124,102, 99, 84,254, 45, 0, 0, 3, 0,135, 0, 0, + 4,113, 5,182, 0, 14, 0, 23, 0, 30, 0, 82, 64, 50, 19, 91, 20, 7, 36, 7, 2, 7, 4, 4, 14, 28, 91, 10, 32, 15, 25, 90, + 0, 14, 1, 0, 14, 16, 14,240, 14, 3, 8, 14, 7, 24, 96,159, 15, 1,104, 15, 1, 15, 15, 0, 25, 96, 14, 18, 23, 96, 0, 3, + 0, 63,225, 63,225, 17, 57, 47, 93, 93,225, 57, 1, 47, 94, 93,113,225, 50, 16,222,225, 18, 57, 47, 57, 93,225, 49, 48, 19, 33, + 32, 22, 21, 20, 6, 7, 21, 4, 17, 20, 6, 35, 33, 19, 33, 50, 54, 53, 52, 38, 35, 33, 17, 17, 33, 32, 17, 52, 33,135, 1,184, + 1, 18,247,157,134, 1, 76,255,220,253,241,187, 1, 28,156,143,153,166,254,248, 1, 51, 1, 55,254,188, 5,182,175,195,128,170, + 18, 10, 54,254,224,198,226, 3, 74,110,127,120,104,253,151,253,240, 1, 18,254, 0, 1, 0,129,255,236, 4,156, 5,203, 0, 21, + 0, 49, 64, 28, 1, 64, 20, 24, 72, 1, 1, 6, 11, 23, 17, 91, 0, 6,240, 6, 2, 6, 12, 14, 95, 9, 4, 0, 20, 95, 3, 19, + 0, 63,225, 50, 63,225, 50, 1, 47, 93,225, 16,206, 17, 57, 47, 43, 49, 48, 37, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, + 38, 35, 34, 0, 17, 16, 18, 51, 50, 4,100,146,212,254,203,254,184, 1,102, 1, 54,220,163, 78,154,151,215,255, 0,240,231,130, +201,162, 59, 1,136, 1,105, 1, 90, 1,148, 86,156, 78,254,195,254,241,254,225,254,211, 0, 2, 0,135, 0, 0, 4,123, 5,182, + 0, 8, 0, 15, 0, 44, 64, 26, 13, 91, 5, 17, 10, 90, 0, 0, 1, 0, 0, 16, 0,240, 0, 3, 8, 0, 9, 96, 1, 3, 10, 96, + 0, 18, 0, 63,225, 63,225, 1, 47, 94, 93,113,225, 16,222,225, 49, 48, 51, 17, 33, 32, 0, 17, 16, 0, 33, 3, 17, 51, 32, 17, + 16, 33,135, 1, 86, 1, 61, 1, 97,254,146,254,167,114, 96, 2, 20,254, 19, 5,182,254,134,254,173,254,151,254,128, 5, 23,251, +137, 2, 67, 2, 52, 0, 0, 1, 0,217, 0, 0, 4, 35, 5,182, 0, 11, 0, 64, 64, 37, 8, 8, 1, 4, 0, 64, 18, 22, 72, 0, + 13, 6, 10, 90,240, 1, 1, 0, 1, 1, 1, 9, 95,104, 6, 1, 6, 6, 10, 5, 95, 2, 3, 10, 95, 1, 18, 0, 63,225, 63,225, + 18, 57, 47, 93,225, 1, 47, 93, 93,225, 50, 16,206, 43, 50, 17, 57, 47, 49, 48, 33, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, + 4, 35,252,182, 3, 74,253,112, 2,105,253,151, 2,144, 5,182,164,254, 60,162,253,248, 0, 1, 0,244, 0, 0, 4, 61, 5,182, + 0, 9, 0, 87, 64, 22, 8, 8, 1,223, 3, 1,192, 3, 1, 3, 11, 6, 0, 90, 0, 1, 64, 1, 80, 1, 3, 1,184,255,192, 64, + 32, 21, 24, 72, 1, 9, 95,104, 6, 1, 47, 6, 95, 6,239, 6,255, 6, 4, 6, 64, 16, 21, 72, 6, 6, 0, 5, 95, 2, 3, 0, + 18, 0, 63, 63,225, 18, 57, 47, 43, 93, 93,225, 1, 47, 43, 93,225, 50, 16,206, 93, 93, 17, 57, 47, 48, 49, 33, 35, 17, 33, 21, + 33, 17, 33, 21, 33, 1,174,186, 3, 73,253,113, 2,105,253,151, 5,182,164,253,252,164, 0, 1, 0,117,255,236, 4, 70, 5,203, + 0, 24, 0, 63, 64, 37, 0, 7, 22, 90, 12, 2, 26, 18, 91, 0, 7, 1, 7, 24, 95, 47, 0, 95, 0, 2, 0, 64, 16, 24, 72, 0, + 0, 20, 15, 95, 13, 10, 4, 20, 95, 4, 19, 0, 63,225, 63, 51,225, 18, 57, 47, 43, 93,225, 1, 47, 93,225, 16,222, 50,225, 18, + 57, 49, 48, 1, 33, 17, 6, 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, 38, 35, 34, 2, 17, 16, 33, 50, 55, 17, 35, 2,160, 1,166, +195,225,254,250,254,217, 1, 68, 1, 28,192,154, 72,146,134,192,214, 1,138, 97,105,237, 3, 4,253, 51, 75, 1,143, 1, 98, 1, + 95, 1,143, 86,162, 84,254,201,254,235,253,180, 29, 1,180, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 11, 0, 63, 64, 38, + 9, 1, 90, 0, 13, 8, 4, 90, 16, 5, 32, 5, 2, 32, 5, 48, 5, 2, 5, 3, 95,152, 8, 1, 15, 8, 47, 8, 2, 6, 8, 8, + 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 94, 93, 93,225, 1, 47, 93,113,225, 50, 16,222,225, 50, 49, 48, 33, 35, 17, + 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 70,187,253,183,187,187, 2, 73,187, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, + 0,225, 0, 0, 3,233, 5,182, 0, 11, 0, 67, 64, 40, 11, 8, 10, 90, 5, 2,208, 3, 1,162, 3, 1,147, 3, 1, 3,142, 3, + 1, 4, 99, 3, 1, 5, 16, 3, 80, 3, 2, 3, 9, 4, 97, 6, 3, 3, 10, 97, 0, 18, 0, 63,225, 50, 63,225, 50, 1, 47, 93, + 95, 93, 95, 93, 95, 93, 93, 93, 51, 51,225, 50, 50, 49, 48, 33, 33, 53, 37, 17, 37, 53, 33, 21, 5, 17, 5, 3,233,252,248, 1, + 39,254,217, 3, 8,254,218, 1, 38,123, 20, 4,152, 20,123,123, 20,251,104, 20, 0, 1, 0,137,255,236, 3,211, 5,182, 0, 13, + 0, 43,178, 6, 90, 9,184,255,192, 64, 20, 9, 12, 72, 9, 15, 0, 0,224, 0,240, 0, 3, 0, 3, 95, 1, 12, 19, 7, 3, 0, + 63, 63, 51,225, 1, 47, 93, 16,222, 43,225, 49, 48, 55, 53, 22, 51, 50, 54, 53, 17, 51, 17, 20, 4, 35, 34,137,162,147,161,186, +186,254,231,237,217, 39,166, 62,159,147, 3,245,252, 13,216,255, 0, 1, 0,211, 0, 0, 4,174, 5,182, 0, 12, 0,201,183, 38, + 12, 54, 12, 70, 12, 3, 12,184,255,240, 64,137, 16, 24, 72,248, 10, 1,217, 10,233, 10, 2,200, 10, 1,185, 10, 1,168, 10, 1, +137, 10, 1, 10, 8, 12, 16, 72,121, 9, 1, 88, 9, 1, 25, 9, 1, 10, 9, 1,136, 1, 1, 1, 8, 20, 24, 72, 1, 8, 12, 15, + 72,232, 2, 1, 2, 16, 11, 22, 72, 71, 2, 1, 2, 12, 0, 8, 4, 90, 0, 5, 96, 5,112, 5,128, 5, 4, 5, 11, 16, 11, 11, +208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0,166, 8,182, 8,198, 8, 3,119, 8,135, 8, 2, + 38, 8, 54, 8, 86, 8,102, 8, 4, 3, 2, 8, 12, 4, 5, 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 18, 23, 57, 93, 93, 93, + 1, 47, 56, 93, 93, 93, 51, 47, 56, 47, 93,225, 50, 17, 57, 57, 93, 49, 48, 0, 43, 93, 1, 43, 43, 93, 93, 93, 93, 93, 43, 93, + 93, 93, 93, 93, 93, 43, 93, 33, 35, 1, 7, 17, 35, 17, 51, 17, 55, 1, 51, 1, 4,174,211,254, 62,140,186,186,121, 1,197,209, +253,247, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253,131, 0, 1, 0,233, 0, 0, 4, 31, 5,182, 0, 5, 0, 46, 64, 31, + 5, 64, 18, 22, 72, 5, 7, 3, 90, 0, 0, 80, 0, 96, 0,112, 0,208, 0,224, 0,240, 0, 7, 0, 1, 3, 3, 95, 0, 18, 0, + 63,225, 63, 1, 47, 93,225, 16,206, 43, 49, 48, 51, 17, 51, 17, 33, 21,233,187, 2,123, 5,182,250,240,166, 0, 0, 1, 0,113, + 0, 0, 4, 92, 5,182, 0, 19, 0,182, 64, 12,247, 19, 1,182, 19, 1,151, 19,167, 19, 2, 19,184,255,240, 64, 37, 13, 17, 72, + 39, 19, 1, 6, 19, 22, 19, 2,233, 11,249, 11, 2, 11, 32, 13, 22, 72, 58, 11, 1, 9, 11, 25, 11, 41, 11, 3,230, 8,246, 8, + 2, 8,184,255,224, 64, 77, 13, 22, 72, 53, 8, 1, 6, 8, 22, 8, 38, 8, 3,248, 0, 1,185, 0, 1,152, 0,168, 0, 2, 0, + 16, 13, 17, 72, 40, 0, 1, 9, 0, 25, 0, 2, 17, 14,250,224, 13,240, 13, 2, 15, 13, 1, 13, 21, 2, 5,250, 0, 6, 16, 6, + 64, 6, 80, 6, 4, 6, 11, 1, 7, 3, 18, 2, 14, 89, 9, 1, 9, 6, 0, 18, 0, 63, 50, 50, 93, 50, 46, 51, 63, 51, 51, 1, + 47, 93,225, 50, 16,222, 93, 93,225, 50, 49, 48, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, + 33, 1, 35, 18, 21, 17, 35, 17, 51, 19, 51, 19, 51, 17, 35, 17, 52, 19, 35, 1, 2, 20,254,234, 8, 18,151,247,248, 6,250,252, +153, 14, 8,254,229, 5, 0,254,246,140,252,150, 5,182,251, 88, 4,168,250, 74, 3,119,102, 1, 33,251, 2, 0, 0, 1, 0,135, + 0, 0, 4, 68, 5,182, 0, 15, 0,115,185, 0, 9,255,240, 64, 78, 16, 24, 72, 69, 9, 85, 9,101, 9, 3, 52, 9, 1, 21, 9, + 37, 9, 2, 6, 9, 1, 1, 16, 16, 24, 72, 74, 1, 90, 1,106, 1, 3, 59, 1, 1, 26, 1, 42, 1, 2, 9, 1, 1, 1, 14,251, + 15, 17, 9, 6,251, 0, 7,224, 7,240, 7, 3, 7, 14, 73, 2, 89, 2, 2, 2, 8, 3, 70, 10, 86, 10, 2, 10, 7, 0, 18, 0, + 63, 50, 50, 93, 63, 51, 93, 51, 1, 47, 93,225, 50, 16,222,225, 50, 49, 48, 93, 93, 93, 93, 43, 93, 93, 93, 93, 43, 33, 35, 1, + 35, 18, 21, 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 4, 68,215,253,188, 8, 18,172,213, 2, 66, 6, 14,174, 4,186,254,235,140, +252,231, 5,182,251, 76, 1, 47,101, 3, 32, 0, 0, 2, 0, 84,255,236, 4,123, 5,205, 0, 9, 0, 19, 0, 36, 64, 20, 13, 91, + 7, 21, 18, 91, 31, 2, 47, 2, 2, 2, 16, 95, 4, 4, 10, 95, 0, 19, 0, 63,225, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, + 5, 32, 17, 16, 33, 32, 0, 17, 16, 0, 39, 50, 18, 17, 16, 2, 35, 32, 17, 16, 2,104,253,236, 2, 22, 1, 0, 1, 17,254,236, +255,173,161,163,169,254,175, 20, 2,243, 2,238,254,121,254,151,254,151,254,120,163, 1, 34, 1, 44, 1, 47, 1, 29,253,180,253, +178, 0, 0, 2, 0,176, 0, 0, 4, 70, 5,182, 0, 9, 0, 17, 0, 56, 64, 34, 14, 91,239, 6,255, 6, 2, 6, 19, 10, 1, 90, + 0, 2,144, 2,160, 2, 3, 2, 0, 96,159, 10, 1, 10, 10, 1, 17, 96, 3, 3, 1, 18, 0, 63, 63,225, 18, 57, 47, 93,225, 1, + 47, 93,225, 50, 16,222, 93,225, 49, 48, 1, 17, 35, 17, 33, 32, 17, 20, 4, 33, 39, 51, 50, 54, 53, 16, 33, 35, 1,106,186, 1, +148, 2, 2,254,235,254,248,191,170,198,171,254,174,201, 2, 57,253,199, 5,182,254, 84,219,246,158,144,153, 1, 23, 0, 0, 2, + 0, 84,254, 98, 4,123, 5,205, 0, 15, 0, 25, 0, 85,185, 0, 0,255,240, 64, 48, 13, 17, 72, 5, 0, 9, 19, 91, 14,108, 3, +124, 3,140, 3, 3, 3, 24, 11, 14, 72, 3, 2, 2, 14, 27, 24, 91, 31, 9, 47, 9, 2, 9, 22, 95, 11, 4, 16, 95, 7, 5, 7, + 3, 3, 0, 7, 19, 0, 63, 51, 51, 47, 17, 51, 16,225, 63,225, 1, 47, 93,225, 16,206, 50, 47, 51, 43, 93, 16,225, 18, 57, 57, + 49, 48, 43, 37, 22, 23, 7, 38, 39, 6, 35, 32, 17, 16, 33, 32, 0, 17, 16, 5, 50, 18, 17, 16, 2, 35, 32, 17, 16, 3, 94, 85, +194,121,236, 92, 36, 40,253,236, 2, 22, 1, 0, 1, 17,253,237,173,161,163,169,254,175, 39,180,131,142,171,229, 6, 2,243, 2, +238,254,121,254,151,253,242, 64, 1, 34, 1, 44, 1, 47, 1, 29,253,180,253,178, 0, 2, 0,186, 0, 0, 4,147, 5,182, 0, 11, + 0, 20, 0,115, 64, 75, 43, 14, 1, 26, 14, 1, 11, 8, 16, 24, 72, 41, 11, 1, 24, 11, 1, 10, 8, 18, 24, 72, 41, 10, 1, 8, + 10, 1, 10, 9, 16, 9, 9, 70, 8, 1, 11, 8, 1, 16, 91, 6, 64, 19, 22, 72, 6, 22, 12, 1, 90, 0, 2,128, 2,144, 2,160, + 2, 4, 2, 8, 3, 0, 96, 12, 12, 1, 20, 96, 3, 3, 10, 1, 18, 0, 63, 51, 63,225, 18, 57, 47,225, 17, 57, 1, 47, 93,225, + 50, 16,222, 43,225, 18, 57, 57, 93, 51, 47, 56, 51, 49, 48, 93, 93, 43, 93, 93, 43, 93, 93, 1, 17, 35, 17, 33, 32, 17, 16, 5, + 1, 35, 1, 39, 51, 50, 54, 53, 52, 38, 35, 35, 1,117,187, 1,101, 2, 8,254,223, 1,141,219,254,162,229,164,171,162,160,178, +159, 2, 92,253,164, 5,182,254, 97,254,225,105,253,113, 2, 92,158,132,144,141,124, 0, 0, 1, 0,141,255,236, 4, 63, 5,203, + 0, 31, 0, 56, 64, 31, 16, 16, 5, 90,176, 27,192, 27, 2, 27, 33, 21, 90, 11, 0, 0, 0, 11, 1, 11, 21, 5, 14, 3, 96, 30, + 19, 19, 95, 14, 4, 0, 63,225, 63,225, 18, 57, 57, 1, 47, 93, 51, 47, 16,225, 16,222, 93,225, 51, 47, 49, 48, 55, 53, 22, 51, + 32, 53, 52, 38, 39, 38, 38, 53, 52, 36, 51, 50, 23, 7, 38, 35, 32, 21, 20, 22, 23, 22, 22, 21, 20, 4, 35, 32,141,211,203, 1, + 94,141,215,208,181, 1, 1,224,229,187, 64,193,167,254,219,131,205,246,165,254,235,255,254,247, 49,178, 86,240,104,112, 77, 73, +203,162,174,197, 78,164, 78,209,102,124, 71, 88,187,147,192,219, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 7, 0, 60, 64, 36, + 6, 6, 0, 90, 3,208, 1, 1,162, 1, 1,147, 1, 1, 3,142, 1, 1, 4, 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 7, 3, 95, + 4, 3, 0, 18, 0, 63, 63,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,198,241,194, 47, 49, 48, 33, 35, 17, 33, 53, 33, + 21, 33, 2,195,187,254, 94, 3,254,254, 95, 5, 18,164,164, 0, 0, 1, 0,125,255,236, 4, 80, 5,184, 0, 14, 0, 39, 64, 22, + 13, 90,224, 1,240, 1, 2, 1, 16, 9, 90, 0, 6, 1, 6, 11, 95, 4, 19, 7, 0, 3, 0, 63, 50, 63,225, 1, 47, 93,225, 16, +222, 93,225, 49, 48, 1, 17, 16, 2, 35, 32, 17, 17, 51, 17, 16, 33, 32, 19, 17, 4, 80,252,244,254, 29,186, 1, 51, 1, 39, 5, + 5,184,252, 76,254,252,254,236, 2, 28, 3,174,252, 92,254,125, 1,133, 3,164, 0, 1, 0, 33, 0, 0, 4,172, 5,182, 0, 10, + 0,153, 64, 24,103, 5, 1,184, 3, 1, 3, 8, 13, 17, 72, 41, 3, 1, 24, 3, 1, 9, 3, 1,183, 2, 1, 2,184,255,248, 64, + 59, 13, 17, 72, 38, 2, 1, 23, 2, 1, 6, 2, 1,104, 0, 1,232, 3, 1, 3,231, 2, 1, 2, 8, 8, 4, 72, 0, 88, 0, 2, + 42, 0, 1, 9, 0, 25, 0, 2, 0, 1, 1, 12, 71, 5, 87, 5, 2, 37, 5, 1, 6, 5, 22, 5, 2, 5, 4, 8,184,255,240, 64, + 14, 11, 24, 72, 18, 8, 1, 8, 3, 1, 4, 3, 2, 3, 18, 0, 63, 51, 63, 51, 18, 57, 93, 43, 1, 47, 51, 93, 93, 93, 17, 51, + 47, 51, 93, 93, 93, 18, 57, 61, 47, 51, 93, 51, 93, 49, 48, 93, 93, 93, 93, 43, 93, 93, 93, 93, 43, 93, 93, 1, 51, 1, 35, 1, + 51, 1, 22, 23, 54, 55, 3,229,199,254, 23,187,254, 25,196, 1, 39, 41, 47, 31, 62, 5,182,250, 74, 5,182,252, 97,127,207,145, +195, 0, 0, 1, 0, 2, 0, 0, 4,203, 5,182, 0, 25, 1, 99, 64, 84, 41, 25, 57, 25, 2, 8, 25, 24, 25, 2, 39, 21, 1, 21, + 21, 1, 6, 21, 1, 7, 20, 23, 20, 39, 20, 3, 38, 16, 54, 16, 2, 41, 10, 57, 10, 2, 40, 6, 1, 25, 6, 1, 8, 6, 1, 38, + 2, 54, 2, 2, 7, 2, 23, 2, 2, 72, 17,104, 17,168, 17,184, 17, 4, 41, 17, 57, 17, 2, 17,231, 16,247, 16, 2,198, 16,214, + 16, 2,180, 16, 1, 16,184,255,240, 64, 33, 15, 19, 72, 84, 16, 1, 69, 16, 1, 16, 23,230, 1, 1,199, 1,215, 1, 2,165, 1, +181, 1, 2,150, 1, 1,119, 1,135, 1, 2, 1,184,255,240, 64,140, 9, 15, 72, 1,233, 0, 1,200, 0,216, 0, 2,170, 0,186, + 0, 2,153, 0, 1,120, 0,136, 0, 2, 0, 16, 9, 15, 72, 0, 13,232, 10,248, 10, 2,201, 10,217, 10, 2,187, 10, 1,136, 10, +168, 10, 2,105, 10,121, 10, 2, 91, 10, 1, 74, 10, 1, 10,103, 9,167, 9,183, 9, 3, 38, 9, 54, 9, 70, 9, 3, 9, 4, 36, + 23, 52, 23,148, 23,164, 23, 4, 4, 4, 20, 4,100, 4,196, 4,212, 4, 5, 23, 13, 4, 4, 13, 23, 3, 18, 40, 7, 1, 7, 16, + 8, 1, 8, 8, 27, 39, 19, 1, 19, 18, 4, 23, 75, 13, 91, 13, 2, 13, 23, 17, 0, 0, 7, 10, 17, 18, 18, 7, 3, 0, 63, 51, + 63, 51, 18, 57, 47, 18, 57, 57, 93, 17, 51, 1, 47, 51, 93, 17, 51, 47, 93, 51, 93, 18, 23, 57, 61, 47, 47, 47, 93, 93, 17, 51, + 93, 93, 51, 93, 93, 93, 93, 93, 93, 93, 17, 51, 43, 93, 93, 93, 93, 93, 51, 43, 93, 93, 93, 93, 93, 17, 51, 93, 93, 43, 93, 93, + 93, 51, 93, 93, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 51, 19, 22, 23, 54, 19, 19, 51, 3, 35, 3, 38, + 39, 6, 7, 3, 35, 3, 51, 19, 22, 18, 21, 54, 55, 2, 16,177,145, 61, 11, 2, 63, 70,170,187,190,168, 40, 26, 32, 33,156,190, +203,170, 88, 23, 34, 24, 46, 3,240,253,247,219, 88, 53, 2, 54, 2,151,250, 74, 2, 68,138,144,173,111,253,190, 5,182,253,105, +176,254,108, 39,151,161, 0, 1, 0, 53, 0, 0, 4,150, 5,182, 0, 11, 0,190, 64, 36, 8, 8, 9, 11, 11, 10, 0, 7, 0, 5, + 5, 4, 2, 2, 3, 1, 6, 1, 8, 8, 7, 5, 5, 6, 4, 9, 4, 11, 11, 0, 2, 2, 1, 3, 10, 7,184,255,248, 64, 23, 12, + 15, 72, 6, 7, 22, 7, 38, 7, 3, 9, 8, 12, 15, 72, 9, 9, 25, 9, 41, 9, 3, 3,184,255,248, 64, 60, 12, 15, 72, 6, 3, + 22, 3, 38, 3, 3, 1, 8, 12, 15, 72, 9, 1, 25, 1, 41, 1, 3, 11, 8, 2, 5, 4, 4, 9, 10, 1, 10,175, 0, 1, 0, 0, + 13, 7, 6, 3, 6, 4, 2, 5, 11, 8, 4, 7, 9, 10, 3, 6, 3, 1, 3, 4, 3, 0, 18, 0, 63, 23, 50, 63, 23, 51, 23, 57, + 1, 47, 51, 51, 47, 51, 17, 51, 47, 93, 50, 50, 47, 51, 17, 23, 57, 93, 43, 93, 43, 93, 43, 93, 43, 49, 48,135, 8,192, 8,192, + 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 33, 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4,150, +211,254,157,254,146,189, 1,197,254, 90,199, 1, 75, 1, 78,191,254, 90, 2,123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, + 0, 1, 0, 33, 0, 0, 4,170, 5,182, 0, 8, 0,181,185, 0, 8,255,248, 64, 36, 13, 16, 72, 38, 8, 54, 8, 2, 23, 8, 1, +104, 1,120, 1, 2, 90, 1, 1, 72, 1, 1, 41, 1, 57, 1, 2, 24, 1, 1, 39, 0,183, 0, 2, 0,184,255,248,179, 13, 17, 72, + 8,184,255,248, 64, 74, 20, 24, 72, 8,175, 7,255, 7, 2, 89, 7, 1, 7, 5, 1, 8, 20, 24, 72, 1,224, 2,240, 2, 2,123, + 2, 1, 80, 2, 1, 2, 2, 0, 4, 90,208, 5, 1,162, 5, 1,147, 5, 1, 3,142, 5, 1, 4, 99, 5, 1, 5, 16, 5, 80, 5, + 2, 5, 6, 6, 52, 0, 1, 0, 3, 3, 1, 4, 18, 7, 1, 3, 0, 63, 51, 63, 18, 57, 47, 51, 93, 51, 47, 1, 47, 93, 95, 93, + 95, 93, 95, 93, 93, 93,241, 57,194, 47, 93, 93, 93, 50, 43, 16,198, 93, 93, 50, 43, 49, 48, 0, 43, 93, 1, 93, 93, 93, 93, 93, + 93, 93, 43, 1, 1, 51, 1, 17, 35, 17, 1, 51, 2,100, 1,125,201,254, 25,187,254, 25,203, 2,211, 2,227,252,131,253,199, 2, + 47, 3,135, 0, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 9, 0, 68, 64, 40, 38, 8, 1, 7, 8, 23, 8, 2, 41, 3, 1, 8, + 3, 24, 3, 2, 3, 7, 7, 0, 0, 1, 0, 0, 11, 8, 2, 4, 4, 2, 7, 4, 95, 5, 3, 2, 8, 95, 1, 18, 0, 63,225, 50, + 63,225, 50, 1, 47, 51, 47, 17, 51, 17, 51, 47, 93, 51, 47, 51, 49, 48, 93, 93, 93, 93, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, + 4,100,252, 2, 3, 25,252,252, 3,213,252,231, 3, 45,145, 4,127,166,145,251,129, 0, 0, 1, 1,156,254,188, 3,172, 5,182, + 0, 7, 0, 51, 64, 32, 4, 0, 0, 1, 0, 0, 9, 6,241,127, 1,143, 1,191, 1,207, 1,223, 1, 5, 0, 1, 1, 1, 5,245, + 2,248, 6,245, 1,249, 0, 63,225, 63,225, 1, 47, 93, 93,225, 17, 51, 47, 93, 51, 49, 48, 1, 33, 17, 33, 21, 33, 17, 33, 3, +172,253,240, 2, 16,254,166, 1, 90,254,188, 6,250,149,250, 49, 0, 1, 0,211, 0, 0, 3,248, 5,182, 0, 3, 0, 28, 64, 12, + 2, 1, 1, 5, 0, 3, 3, 4, 2, 18, 0, 3, 0, 63, 63, 17, 1, 51, 47, 51, 17, 51, 47, 51, 49, 48, 1, 1, 35, 1, 1,133, + 2,115,178,253,141, 5,182,250, 74, 5,182, 0, 0, 1, 1, 33,254,188, 3, 49, 5,182, 0, 7, 0, 52,183, 1,241,112, 6,128, + 6, 2, 6,184,255,192, 64, 21, 20, 24, 72, 6, 6, 9, 3,224, 0,240, 0, 2, 0, 1,245, 6,249, 2,245, 5,248, 0, 63,225, + 63,225, 1, 47, 93, 51, 17, 51, 47, 43, 93,225, 49, 48, 5, 33, 17, 33, 53, 33, 17, 33, 1, 33, 1, 90,254,166, 2, 16,253,240, +174, 5,207,149,249, 6, 0, 1, 0,111, 2, 37, 4, 94, 5,193, 0, 6, 0, 51, 64, 25, 2, 1, 5, 32, 20, 24, 72, 5, 5, 0, + 4, 3, 8, 6, 0, 0, 7, 4, 0, 0, 5, 15, 1, 1, 1, 0, 47, 93, 51, 51, 47, 50, 17, 1, 51, 47, 50, 16,206, 50, 17, 57, + 61, 47, 43, 51, 51, 49, 48, 19, 1, 51, 1, 35, 1, 1,111, 1,168,102, 1,225,162,254,144,254,194, 2, 37, 3,156,252,100, 2, +223,253, 33, 0, 0, 1,255,240,254,188, 4,219,255, 72, 0, 3, 0, 18,182, 0, 0, 5, 1, 1,186, 2, 0, 47,225, 1, 47, 17, + 51, 47, 49, 48, 1, 33, 53, 33, 4,219,251, 21, 4,235,254,188,140, 0, 0, 1, 1,162, 4,217, 3, 43, 6, 33, 0, 7, 0, 31, + 64, 16, 5,135, 4,134, 1, 0, 0, 9, 5,146, 15, 1, 95, 1, 2, 1, 0, 47, 93,237, 17, 1, 51, 47, 51,253,225, 49, 48, 1, + 35, 38, 39, 53, 51, 22, 23, 3, 43,121,166,106,219, 86, 88, 4,217,142,165, 21,178,123, 0, 2, 0,135,255,236, 4, 2, 4, 94, + 0, 23, 0, 33, 0, 66, 64, 38, 11, 1, 33, 71,143, 23,159, 23, 2, 23, 35, 28, 72, 17, 0, 8, 16, 8, 2, 8, 8, 24, 82, 11, + 11, 30, 16, 14, 80, 19, 16, 1, 30, 78, 5, 22, 0, 21, 0, 63, 63,225, 50, 63,225, 51, 18, 57, 47,225, 1, 47, 94, 93, 51,225, + 16,222, 93,225, 50, 50, 49, 48, 33, 39, 35, 6, 6, 35, 34, 38, 53, 16, 37, 55, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 17, + 3, 7, 6, 6, 21, 20, 51, 50, 54, 53, 3,127, 37, 8, 77,162,128,163,185, 1,254,203,244,147,181, 63,196,187,227,203,180,162, +196,164,200,147,175,152, 97, 75,172,155, 1, 76, 16, 7, 69,236, 82,137, 96,174,192,253, 16, 2, 25, 7, 8,107,110,178,163,148, + 0, 2, 0,158,255,236, 4, 68, 6, 20, 0, 18, 0, 28, 0, 58, 64, 34, 24, 72,239, 14,255, 14, 2, 14, 30, 1, 8, 6, 19, 71, + 0, 3,176, 3, 2, 3, 1, 22, 80, 17, 22, 8, 26, 80, 11, 16, 4, 0, 3, 21, 0, 63, 63, 63,225, 50, 63,225, 50, 1, 47, 93, +225, 50, 50, 57, 16,222, 93,225, 49, 48, 37, 35, 7, 35, 17, 51, 17, 20, 7, 51, 54, 51, 50, 18, 17, 16, 2, 35, 34, 3, 20, 22, + 51, 32, 17, 16, 33, 34, 6, 1, 84, 12, 37,133,182, 8, 8,107,215,201,229,230,200,207,115,139,152, 1, 16,254,238,155,134,139, +139, 6, 20,254,136, 81,145,164,254,213,254,244,254,242,254,211, 2, 59,227,193, 1,166, 1,158,188, 0, 0, 1, 0,172,255,236, + 4, 37, 4, 94, 0, 19, 0, 43, 64, 23, 0, 0,143, 9, 1, 9, 21, 5, 72, 0, 15, 1, 15, 3, 81, 1, 18, 16, 9, 7, 81, 12, + 22, 0, 63,225, 51, 63, 51,225, 1, 47, 93,225, 16,206, 93, 50, 47, 49, 48, 1, 7, 38, 35, 32, 17, 16, 33, 50, 55, 21, 6, 35, + 32, 0, 17, 16, 0, 33, 50, 4, 37, 62,150,118,254,141, 1,105,157,164,134,195,254,255,254,228, 1, 34, 1, 7,178, 4, 35,158, + 57,254, 99,254,106, 62,160, 61, 1, 35, 1, 16, 1, 25, 1, 38, 0, 2, 0,137,255,236, 4, 47, 6, 20, 0, 18, 0, 29, 0, 58, + 64, 35, 20, 0, 14, 71,144, 17,160, 17, 2, 17, 31, 25, 72, 0, 6,224, 6,240, 6, 3, 6, 15, 0, 11, 23, 80, 9, 16, 1, 27, + 80, 3, 22, 18, 21, 0, 63, 63,225, 50, 63,225, 50, 63, 1, 47, 93,225, 16,222, 93,225, 50, 50, 49, 48, 37, 35, 6, 35, 34, 2, + 17, 16, 18, 51, 50, 23, 51, 38, 53, 17, 51, 17, 35, 3, 53, 52, 38, 35, 32, 17, 16, 33, 50, 54, 3,129, 8,113,209,201,229,230, +200,206,116, 12, 12,182,147, 35,139,152,254,240, 1, 18,152,133,147,167, 1, 43, 1, 12, 1, 14, 1, 45,160,129, 33, 1,180,249, +236, 1,250, 41,227,193,254, 90,254, 98,177, 0, 0, 2, 0,133,255,236, 4, 72, 4, 94, 0, 17, 0, 22, 0, 71, 64, 44, 19, 72, + 5, 15, 0, 31, 0, 2, 0, 24, 18, 1, 72, 0, 11, 16, 11, 2, 16, 11, 32, 11, 2, 11, 1, 80, 15, 18, 31, 18, 2, 7, 18, 18, + 3, 21, 80, 14, 16, 3, 81, 5, 8, 22, 0, 63, 51,225, 63,225, 18, 57, 47, 94, 93,225, 1, 47, 93,113,225, 50, 16,222,113, 50, +225, 49, 48, 1, 33, 18, 33, 50, 55, 21, 6, 35, 34, 0, 17, 16, 0, 51, 50, 18, 21, 37, 33, 16, 33, 32, 4, 72,252,250, 8, 1, + 80,195,175,166,198,245,254,218, 1, 15,227,212,253,252,254, 2, 61,254,240,254,237, 2, 2,254,137, 76,160, 75, 1, 43, 1, 6, + 1, 10, 1, 55,254,244,223, 35, 1, 49, 0, 1, 0,156, 0, 0, 4, 90, 6, 31, 0, 21, 0, 70, 64, 40, 0, 0, 13, 13, 23, 20, + 2, 71, 3, 7, 3,143, 5,239, 5, 2, 5, 5, 0, 3,176, 3,240, 3, 3, 3, 4, 1, 78, 7, 6, 20, 15, 16, 80, 14, 11, 1, + 2, 21, 0, 63, 63, 51,225, 63, 51, 51,225, 50, 1, 47, 93, 51, 47, 93, 17, 51, 16,225, 50, 17, 51, 47, 57, 47, 49, 48, 1, 33, + 17, 35, 17, 33, 53, 37, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 21, 33, 4, 20,254,123,182,254,195, 1, 61,180,209,129, +123, 41,104,103,123, 88, 1,133, 3,193,252, 63, 3,193,110, 33, 96,193,174, 35,143, 28,100,115,104, 0, 0, 3, 0,102,254, 20, + 4,102, 4, 94, 0, 36, 0, 44, 0, 54, 0,128, 64, 47, 52, 17, 17, 2, 36, 9, 28, 4, 31, 39, 70, 1, 95, 4,223, 4,239, 4, +255, 4, 4, 4, 56, 11, 26, 26, 31, 48, 63, 22, 79, 22, 95, 22, 3, 22, 22, 43, 70,128, 31,144, 31,160, 31, 3, 31,184,255,192, + 64, 29, 6, 9, 72, 31, 28, 4, 34, 37, 82, 7, 7, 46, 41, 79, 34, 24, 46, 81, 13, 13, 34, 16, 50, 78, 19, 27, 2, 0, 15, 0, + 63, 50, 63,225, 63, 57, 47,225, 50, 16,225, 17, 57, 47,225, 18, 57, 57, 1, 47, 43, 93,225, 51, 47, 93,193, 17, 51, 47,193, 16, +222, 93, 50,225, 18, 23, 57, 51, 47,193, 49, 48, 1, 21, 7, 22, 21, 20, 6, 35, 34, 39, 6, 21, 20, 51, 51, 50, 22, 21, 16, 33, + 34, 38, 53, 52, 55, 38, 53, 52, 55, 38, 38, 53, 52, 54, 51, 50, 23, 3, 50, 53, 52, 35, 34, 21, 20, 1, 35, 34, 21, 20, 33, 32, + 53, 52, 38, 4,102,196, 65,213,190, 55, 31,100,161,187,174,184,253,203,218,227,240, 96,133, 89,102,213,197, 86, 64,154,223,225, +225, 1, 69,188,230, 1, 15, 1,139,100, 4, 74,113, 27, 85,128,161,191, 6, 56, 77, 84,154,143,254,135,161,145,212, 58, 47,107, +112, 80, 37,171,101,182,197, 20,253,188,230,239,242,227,254, 12,198,174,223, 88, 61, 0, 0, 1, 0,160, 0, 0, 4, 45, 6, 20, + 0, 17, 0, 60, 64, 38, 36, 15, 52, 15, 2, 0, 71,176, 17,192, 17, 2, 17, 19, 10, 6, 71, 0, 7, 16, 7, 32, 7,208, 7, 4, + 7, 7, 4, 3, 80, 14, 16, 8, 0, 7, 0, 21, 0, 63, 50, 63, 63,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 49, 48, 93, + 33, 17, 16, 35, 32, 17, 17, 35, 17, 51, 17, 7, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,182, 8, 10,103,233, 1,133, 2, +195, 1, 4,254,114,253,199, 6, 20,254, 50,144,168,254,111,253, 51, 0, 0, 2, 0,197, 0, 0, 4, 51, 6, 14, 0, 8, 0, 18, + 0, 51, 64, 28, 14, 2, 13, 71, 7, 10, 17, 3, 86, 18, 1, 18, 18, 20, 19, 13, 18, 78, 16, 21, 9, 78, 11, 15, 5, 83, 0, 0, + 0, 63,237, 63,225, 63,225, 50, 17, 18, 1, 57, 47, 93, 23, 51,225, 50, 50, 49, 48, 1, 50, 21, 20, 6, 35, 34, 53, 52, 19, 37, + 53, 33, 17, 5, 21, 33, 53, 37, 2,121,106, 63, 43,107, 15,254,243, 1,195, 1, 96,252,146, 1, 88, 6, 14,114, 58, 57,115,114, +253,172, 21,123,252, 69, 20,123,123, 20, 0, 2, 0,135,254, 20, 3, 86, 6, 14, 0, 7, 0, 23, 0, 57, 64, 32, 16, 8, 6, 14, + 71, 2,144, 19,160, 19, 2, 19, 19, 25, 24, 0, 8, 1, 8, 11, 80, 9, 22, 27, 15, 78, 18, 15, 4, 83, 0, 0, 0, 63,229, 63, +225, 63, 51,225, 1, 47, 93, 17, 18, 57, 47, 93, 51,225, 50, 17, 57, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 1, 53, 22, 51, 50, + 54, 53, 17, 37, 53, 33, 17, 20, 6, 35, 34, 2,231,107,107,106,254, 10,134,155,117,131,254, 92, 2, 90,226,206,164, 6, 14,114, +115,115,114,248, 41,154, 39,114,101, 4, 57, 21,123,251, 65,180,195, 0, 0, 1, 0,215, 0, 0, 4,139, 6, 20, 0, 14, 0,118, + 64, 11, 25, 6, 41, 6, 57, 6, 3, 8, 6, 1, 4,184,255,224, 64, 62, 16, 20, 72, 70, 4, 86, 4, 2, 9, 2, 1, 9, 1, 1, + 27, 7, 43, 7, 59, 7, 3, 4, 7, 2, 3, 3, 6, 5, 32, 16, 19, 72, 0, 5, 96, 5, 2, 5, 5, 16, 12, 0, 9, 71, 0, 10, + 96, 10, 2, 10, 11, 0, 4, 7, 0, 7, 2, 10, 5, 21, 2, 15, 0, 63, 63, 51, 18, 57, 57, 17, 51, 63, 1, 47, 93,225, 50, 50, + 17, 51, 47, 93, 43, 51, 51, 47, 51, 57, 57, 49, 48, 0, 93, 1, 93, 93, 93, 43, 93, 93, 1, 55, 1, 51, 1, 1, 35, 1, 7, 17, + 35, 17, 51, 17, 3, 1,127,135, 1,139,222,254, 18, 2, 10,213,254, 86,129,180,180, 16, 2, 41,152, 1,137,254, 37,253,145, 1, +248, 82,254, 90, 6, 20,253, 54,254,223, 0, 1, 0,188, 0, 0, 4, 43, 6, 20, 0, 9, 0, 45, 64, 24, 5, 4, 71, 8, 1, 93, + 9, 1, 79, 9, 1, 9, 9, 11, 10, 9, 4, 78, 6, 21, 0, 78, 2, 0, 0, 63,225, 63,225, 50, 17, 18, 1, 57, 47, 93, 93, 51, + 51,225, 50, 49, 48, 1, 37, 53, 33, 17, 5, 21, 33, 53, 37, 2, 20,254,244, 1,195, 1, 96,252,145, 1, 88, 5,133, 21,122,250, +123, 20,123,123, 20, 0, 0, 1, 0, 92, 0, 0, 4,115, 4, 94, 0, 32, 0,107, 64, 69, 25,133, 8, 1,118, 8, 1,101, 8, 1, + 86, 8, 1, 55, 8, 71, 8, 2, 8, 71,139, 9, 1,122, 9, 1, 9, 9, 17, 0, 71,144, 32,160, 32,192, 32,208, 32, 4, 15, 32, + 1, 32, 34, 20, 16, 71, 64, 17, 80, 17, 2, 17, 26, 20, 17, 4, 12, 80, 28, 23, 16, 18, 15, 17, 9, 0, 21, 0, 63, 50, 50, 63, + 63, 51,225, 50, 18, 57, 57, 1, 47, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47, 93, 93,225, 93, 93, 93, 93, 93, 50, 49, 48, 33, + 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 16, 35, 34, 6, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 23, 51, 54, 51, 50, 22, 21, 17, + 3,209, 53, 62, 87, 79,161,125, 84, 72,162,127, 27, 10, 67,134,163, 50, 6, 76,143,128,116, 2,195,146,114,166,195,253,162, 2, +195, 1, 4,159,239,253,199, 4, 74,148,168,182,182,185,216,253, 51, 0, 0, 1, 0,160, 0, 0, 4, 45, 4, 94, 0, 16, 0, 54, + 64, 33, 0, 71,176, 16,192, 16, 2, 16, 18, 10, 6, 71, 0, 7, 16, 7, 32, 7,208, 7, 4, 7, 7, 11, 3, 80, 13, 16, 8, 15, + 7, 0, 21, 0, 63, 50, 63, 63,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 49, 48, 33, 17, 16, 35, 32, 17, 17, 35, 17, 51, + 23, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,147, 27, 10,103,233, 1,133, 2,195, 1, 4,254,114,253,199, 4, 74,148,168, +254,111,253, 51, 0, 2, 0,115,255,236, 4, 88, 4, 94, 0, 11, 0, 19, 0, 34, 64, 18, 14, 72, 9, 21, 18, 72, 0, 3, 1, 3, + 16, 80, 6, 16, 12, 80, 0, 22, 0, 63,225, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, 5, 34, 0, 17, 16, 0, 51, 50, 0, 17, + 16, 0, 39, 32, 17, 16, 33, 32, 17, 16, 2, 98,216,254,233, 1, 15,230,218, 1, 22,254,238,224, 1, 54,254,200,254,203, 20, 1, + 55, 1, 4, 1, 7, 1, 48,254,202,254,255,254,247,254,206,151, 1,164, 1,160,254, 96,254, 92, 0, 2, 0,158,254, 20, 4, 68, + 4, 94, 0, 18, 0, 29, 0, 62, 64, 38, 25, 72, 15, 14, 31, 14, 2, 14, 31, 20, 1, 4, 71, 0, 5, 16, 5, 32, 5,208, 5, 4, + 7, 5, 0, 23, 80, 17, 22, 8, 27, 80, 11, 16, 6, 15, 4, 27, 0, 63, 63, 63,225, 50, 63,225, 50, 1, 47, 94, 93,225, 50, 50, + 16,222,113,225, 49, 48, 37, 35, 22, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 18, 17, 16, 2, 35, 34, 3, 21, 20, 22, 51, 32, 17, + 16, 33, 34, 6, 1, 84, 12, 12,182,147, 27, 8,110,212,201,229,230,200,207,115,139,152, 1, 16,254,238,152,133,139,129, 33,254, + 43, 6, 54,148,168,254,213,254,244,254,242,254,211, 2,100, 41,227,193, 1,166, 1,158,176, 0, 0, 2, 0,137,254, 20, 4, 47, + 4, 94, 0, 18, 0, 29, 0, 60, 64, 37, 1, 8, 19, 3, 5, 71,144, 4,160, 4, 2, 4, 31, 25, 72, 0, 14,224, 14,240, 14, 3, + 14, 8, 27, 80, 11, 22, 4, 27, 1, 23, 80, 17, 16, 2, 15, 0, 63, 63,225, 50, 63, 63,225, 50, 1, 47, 93,225, 16,222, 93,225, + 23, 50, 49, 48, 1, 51, 55, 51, 17, 35, 17, 52, 55, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 19, 53, 52, 38, 35, 32, 17, 16, 33, + 50, 54, 3,121, 8, 27,147,182, 12, 12,113,209,201,229,230,200,207,115,139,152,254,240, 1, 18,152,133, 3,182,148,249,202, 1, +213, 41,129,167, 1, 43, 1, 12, 1, 14, 1, 45,253,156, 41,227,193,254, 90,254, 98,177, 0, 1, 1, 8, 0, 0, 4, 35, 4, 94, + 0, 16, 0, 49, 64, 27,144, 0, 1, 0, 0, 18, 11, 7, 71, 47, 8, 1, 0, 8, 1, 8, 11, 7, 3, 81, 1, 15, 16, 9, 15, 7, + 21, 0, 63, 63, 63, 51,225, 18, 57, 1, 47, 93, 93,225, 50, 17, 51, 47, 93, 49, 48, 1, 7, 38, 35, 34, 6, 21, 17, 35, 17, 51, + 23, 51, 54, 54, 51, 50, 4, 35, 49,123,101,163,177,182,148, 22, 8, 76,174,127,118, 4, 49,166, 45,185,175,253,176, 4, 74,201, +119,102, 0, 1, 0,203,255,236, 4, 2, 4, 94, 0, 31, 0, 60, 64, 34, 16, 16, 5, 70, 27, 33, 21, 70, 11, 0, 0, 0, 11, 80, + 11, 96, 11,240, 11, 4, 11, 21, 5, 14, 3, 80, 1, 30, 22, 19, 80, 17, 14, 16, 0, 63, 51,225, 63, 51,225, 18, 57, 57, 1, 47, + 93, 51, 47, 16,225, 16,222,225, 51, 47, 49, 48, 55, 53, 22, 51, 32, 53, 52, 38, 39, 38, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, + 34, 21, 20, 22, 23, 22, 22, 21, 20, 6, 35, 34,203,193,177, 1, 19, 98,177,233,121,223,197,198,171, 60,182,137,236,101,182,211, +139,234,214,248, 49,166, 86,162, 57, 84, 64, 87,145, 99,136,155, 74,149, 72,133, 61, 73, 65, 77,149,108,150,171, 0, 1, 0,139, +255,236, 4, 2, 5,111, 0, 19, 0, 89, 64, 55, 12, 16, 71, 5, 9, 5, 32, 7, 1, 7, 7, 47, 5, 63, 5,127, 5,143, 5,207, + 5,223, 5, 6, 0, 5, 1, 5, 5, 20, 21, 14, 14,127, 1,143, 1,175, 1, 3, 1, 21, 6, 15, 78, 11, 9, 8, 12, 15, 18, 80, + 0, 3, 22, 0, 63, 51,225, 63, 51, 51, 51,225, 50, 1, 16,206, 93, 50, 47, 17, 18, 57, 47, 93, 93, 51, 47, 93, 17, 51, 16,225, + 50, 49, 48, 37, 21, 6, 35, 32, 17, 17, 33, 53, 37, 19, 51, 17, 33, 21, 33, 17, 20, 51, 50, 3,252,130,122,254,150,254,245, 1, + 11, 77,105, 1,182,254, 74,192, 93,150,138, 32, 1, 88, 2,125, 94, 49, 1, 31,254,219,137,253,131,195, 0, 1, 0,160,255,236, + 4, 45, 4, 74, 0, 17, 0, 48, 64, 28, 1, 14, 71,144, 17,160, 17, 2, 17, 19, 9, 71, 0, 6,176, 6, 2, 6, 15, 7, 15, 1, + 11, 80, 4, 22, 0, 21, 0, 63, 63,225, 50, 63, 51, 1, 47, 93,225, 16,222, 93,225, 50, 49, 48, 33, 39, 35, 6, 35, 32, 17, 17, + 51, 17, 16, 51, 50, 54, 53, 17, 51, 17, 3,154, 27, 10,105,229,254,121,182,236,161,148,182,147,167, 1,145, 2,205,253, 61,254, +252,185,212, 2, 58,251,182, 0, 0, 1, 0, 82, 0, 0, 4,121, 4, 74, 0, 11, 0,115, 64, 56, 38, 11, 1, 41, 0, 1, 55, 11, +103, 11,231, 11,247, 11, 4, 6, 11, 22, 11, 2, 11, 56, 0,104, 0,232, 0,248, 0, 4, 9, 0, 25, 0, 2, 0, 5, 5, 1, 9, + 8, 9, 12, 72, 9, 16, 10, 32, 10, 48, 10, 3, 10, 10, 13, 2,184,255,248, 64, 21, 9, 12, 72, 2, 47, 1, 63, 1, 2, 1, 70, + 5, 86, 5, 2, 5, 9, 1, 15, 0, 21, 0, 63, 63, 51, 57, 93, 1, 47, 93, 51, 43, 17, 51, 47, 93, 51, 43, 18, 57, 61, 47, 51, + 93, 93, 51, 93, 93, 49, 48, 93, 93, 33, 1, 51, 19, 22, 23, 51, 54, 19, 19, 51, 1, 1,242,254, 96,188,240, 85, 15, 6, 7, 94, +239,189,254, 96, 4, 74,253,116,231, 94, 44, 1, 25, 2,140,251,182, 0, 0, 1,255,252, 0, 0, 4,209, 4, 74, 0, 25, 1, 43, +185, 0, 25,255,240,182, 20, 24, 72,167, 25, 1, 25,184,255,240, 64, 24, 13, 18, 72, 9, 22, 25, 22, 41, 22, 3, 41, 21, 1, 39, + 17, 87, 17, 2, 6, 17, 22, 17, 2, 16,184,255,240, 64, 66, 13, 24, 72, 39, 16, 55, 16, 2, 15, 16, 13, 24, 72, 40, 15, 56, 15, + 2, 40, 14, 88, 14, 2, 9, 14, 25, 14, 2, 40, 13, 1, 38, 10, 1, 6, 9, 22, 9, 38, 9, 3, 6, 16, 20, 24, 72,168, 6, 1, +121, 6,137, 6,153, 6, 3, 40, 6, 72, 6, 88, 6,104, 6, 4, 5,184,255,240, 64, 10, 20, 24, 72,167, 5, 1, 38, 5, 1, 5, +184,255,240, 64, 42, 13, 18, 72, 7, 5, 1, 0, 16, 20, 24, 72,168, 0, 1, 41, 0, 1, 0, 16, 13, 18, 72, 8, 0, 1, 6, 5, + 11, 16, 15, 2, 25, 0, 20,148, 11,164, 11,180, 11, 3, 11,184,255,224, 64, 48, 11, 14, 72,155, 20,171, 20,187, 20, 3, 20, 32, + 11, 14, 72, 11, 2, 20, 20, 2, 11, 3, 7, 23, 16, 24, 1, 24, 8, 7, 20, 11, 91, 2, 1, 84, 11, 1, 2, 11, 6, 23, 15, 7, + 15, 0, 6, 21, 0, 63, 51, 63, 51, 51, 18, 57, 57, 93, 93, 17, 51, 1, 47, 51, 47, 93, 51, 18, 23, 57, 61, 47, 47, 47, 43, 93, + 43, 93, 17, 51, 51, 17, 51, 51, 17, 51, 51, 49, 48, 93, 43, 93, 93, 43, 93, 43, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 93, 93, + 93, 43, 93, 43, 93, 93, 93, 93, 43, 93, 43, 33, 3, 3, 35, 3, 3, 35, 3, 51, 19, 22, 23, 51, 54, 55, 19, 51, 19, 22, 23, 51, + 54, 55, 19, 51, 3, 3, 45,131, 68, 6, 65,135,189,223,162, 98, 34, 23, 6, 31, 37,133,193,127, 43, 24, 6, 31, 29,102,158,225, + 2, 84, 1, 74,254,178,253,176, 4, 74,253,225,186,207,185,173, 2, 66,253,190,195,163,242,151, 2, 31,251,182, 0, 1, 0, 96, + 0, 0, 4,106, 4, 74, 0, 11, 0,169,183,196, 10,212, 10,228, 10, 3, 10,184,255,240, 64, 36, 11, 14, 72,203, 8,219, 8,235, + 8, 3, 8, 16, 11, 14, 72,203, 4,219, 4,235, 4, 3, 4, 16, 11, 14, 72,196, 2,212, 2,228, 2, 3, 6, 2,184,255,240, 64, + 20, 11, 14, 72, 73, 9, 1, 9, 16, 18, 23, 72, 10, 9, 26, 9, 2, 70, 3, 1, 3,184,255,240, 64, 45, 18, 23, 72, 5, 3, 21, + 3, 2, 4, 5, 5, 6, 3, 9, 0, 4, 11, 8, 0, 7, 16, 7, 2, 7, 7, 13, 2, 1, 10, 31, 11, 1, 11, 9, 6, 0, 3, 4, + 1, 11, 7, 21, 4, 1, 15, 0, 63, 51, 63, 51, 18, 23, 57, 1, 47, 93, 51, 51, 50, 17, 51, 47, 93, 51, 18, 23, 57, 51, 17, 51, + 49, 48, 0, 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 1, 1, 51, 1, 1, 51, 1, 1, 35, 1, 1, 35, 1, +254,254,119,207, 1, 34, 1, 35,207,254,117, 1,157,206,254,202,254,201,207, 2, 51, 2, 23,254,102, 1,154,253,233,253,205, 1, +180,254, 76, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 22, 0,113, 64, 30, 56, 8, 1, 9, 8, 25, 8, 41, 8, 3, 55, 1, + 1, 6, 1, 22, 1, 38, 1, 3, 22, 16, 9, 12, 72, 22, 4, 4, 8, 9,184,255,192, 64, 18, 9, 12, 72, 9, 9, 24, 15, 15, 1, + 31, 0, 47, 0, 63, 0, 3, 0, 4,184,255,240, 64, 20, 11, 14, 72, 4, 4, 20, 4, 2, 4, 0, 22, 22, 18, 80, 16, 13, 27, 8, + 0, 15, 0, 63, 50, 63, 51,225, 63, 18, 57, 93, 43, 1, 47, 93, 50, 50, 47, 17, 51, 47, 43, 51, 57, 61, 47, 51, 43, 49, 48, 93, + 93, 93, 93, 19, 51, 1, 22, 23, 51, 54, 55, 19, 51, 1, 6, 6, 35, 34, 39, 53, 22, 51, 50, 54, 55, 55, 82,188, 1, 6, 82, 7, + 6, 23, 67,239,189,254, 37, 67,178,157, 86, 82, 62, 74, 96,107, 42, 58, 4, 74,253,114,205, 85,112,180, 2,140,251, 39,174,175, + 17,145, 12, 82,100,150, 0, 1, 0,182, 0, 0, 4, 20, 4, 74, 0, 9, 0, 70, 64, 14, 3, 8, 9, 12, 72, 3, 7, 7,112, 0, + 1, 0, 11, 8,184,255,248, 64, 24, 9, 12, 72, 8, 2, 4, 4,127, 2, 1, 0, 2, 1, 2, 7, 4, 78, 5, 15, 2, 8, 78, 1, + 21, 0, 63,225, 50, 63,225, 50, 1, 47, 93, 93, 51, 47, 17, 51, 43, 16,206, 93, 50, 47, 51, 43, 49, 48, 33, 33, 53, 1, 33, 53, + 33, 21, 1, 33, 4, 20,252,162, 2,148,253,141, 3, 43,253,121, 2,153,125, 3, 68,137,146,252,209, 0, 0, 1, 0,225,254,188, + 3,233, 5,182, 0, 25, 0, 98, 64, 63, 20, 0,241, 12, 22, 9,112, 6,128, 6, 2, 6, 6, 9, 16, 95, 3, 1, 64, 3, 1, 3, + 27,224, 9,240, 9, 2, 31, 9, 1, 9, 22, 9,245,239, 10,255, 10, 2,217, 10, 1, 15, 10, 47, 10,175, 10,191, 10, 4, 10, 10, + 3, 16,245, 15,248, 3,245, 4,249, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 57, 1, 47, 93, 93, 16,206, 93, 93, 50, 17, + 57, 47, 93, 18, 57, 51,225, 50, 49, 48, 5, 20, 22, 23, 21, 36, 17, 17, 52, 33, 53, 32, 53, 17, 16, 37, 21, 6, 6, 21, 17, 20, + 7, 21, 22, 21, 2,233,112,144,254, 74,254,174, 1, 82, 1,182,144,112,233,233, 16, 81, 75, 2,150, 6, 1, 31, 1, 78,189,155, +189, 1, 77, 1, 31, 6,149, 2, 75, 81,254,180,207, 41, 12, 41,207, 0, 0, 1, 2, 27,254, 20, 2,176, 6, 20, 0, 3, 0, 21, + 64, 10, 2,170, 79, 3, 1, 3, 2, 27, 0, 0, 0, 63, 63, 1, 47, 93,225, 49, 48, 1, 51, 17, 35, 2, 27,149,149, 6, 20,248, + 0, 0, 0, 1, 0,227,254,188, 3,236, 5,182, 0, 25, 0, 96, 64, 62, 5, 25,241, 13, 3,127, 19,143, 19, 2, 19, 19, 9,239, + 15,255, 15, 2, 16, 15, 1, 15, 27, 21, 80, 9, 1, 79, 9, 1, 9, 3, 16,245,239, 15,255, 15, 2,217, 15, 1, 15, 15, 47, 15, +175, 15,191, 15, 4, 15, 15, 10, 22,245, 21,249, 9,245, 10,248, 0, 63,225, 63,225, 17, 57, 47, 93, 93, 93,225, 57, 1, 47, 93, + 93, 51, 16,206, 93, 93, 17, 57, 47, 93, 57, 51,225, 50, 49, 48, 1, 52, 55, 53, 38, 53, 17, 52, 38, 39, 53, 4, 17, 17, 20, 33, + 21, 32, 21, 17, 16, 5, 53, 54, 54, 53, 1,227,234,234,113,143, 1,183, 1, 82,254,174,254, 73,143,113, 1, 59,207, 41, 12, 41, +207, 1, 76, 81, 76, 1,149, 6,254,225,254,179,189,155,189,254,178,254,225, 6,150, 1, 76, 81, 0, 1, 0,152, 2, 74, 4, 51, + 3, 90, 0, 17, 0, 47, 64, 26, 9, 19, 0, 0, 1, 0, 0, 18, 16,173, 9, 3,178, 7,173, 0,223, 12, 1,112, 12, 1, 63, 12, + 1, 12, 0, 47, 93, 93, 93, 51,225,253, 50,225, 17, 1, 51, 47, 93, 16,206, 49, 48, 19, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, + 6, 35, 34, 39, 38, 35, 34,152, 99,148,100,148,130, 71,108,119, 99,149,100,147,131, 70,108, 2, 74,162,108, 63, 56,121,162,108, + 63, 56, 0, 2, 1,231,254,139, 2,229, 4, 94, 0, 7, 0, 11, 0, 37, 64, 17, 8, 9, 10, 6,150, 11, 2, 2, 12, 13, 8, 8, + 10, 0,155, 4, 16, 0, 63,237, 47, 57, 47, 17, 18, 1, 57, 47, 51,225, 50, 57, 57, 49, 48, 1, 34, 53, 52, 51, 50, 21, 20, 7, + 51, 19, 35, 2,102,127,127,127,188,121, 51,223, 3, 72,139,139,139,139,164,251,231, 0, 0, 1, 0,172,255,236, 4, 37, 5,203, + 0, 23, 0, 78, 64, 24, 0, 14, 70, 21, 32, 17, 48, 17, 2, 17, 17, 19, 2,143, 12, 1, 12, 25, 7, 72, 0, 19, 1, 19,184,255, +192, 64, 18, 21, 24, 72, 19, 5, 80, 0, 21, 21, 22, 7, 17, 9, 81, 14, 14, 15, 22, 0, 63, 51, 47,225, 51, 63, 51, 47, 51,225, + 1, 47, 43, 93,225, 16,206, 93, 50, 17, 57, 47, 93, 51,225, 50, 49, 48, 1, 22, 23, 7, 38, 35, 32, 17, 16, 33, 50, 55, 21, 6, + 7, 21, 35, 53, 36, 17, 16, 37, 53, 51, 2,231,162,156, 62,150,118,254,141, 1,105,153,168,122,177,137,254, 78, 1,178,137, 5, + 39, 3, 56,158, 57,254, 98,254,107, 61,159, 59, 3,200,206, 69, 1,232, 1,238, 74,172, 0, 1, 0,119, 0, 0, 4, 86, 5,201, + 0, 27, 0, 82, 64, 49, 6, 10,111, 22, 18, 8, 18, 8, 15, 0, 13, 29, 20, 0, 15, 1, 15, 9, 20,117, 6, 47, 21, 95, 21,127, + 21,143, 21,175, 21,191, 21,223, 21, 7, 21, 21, 12, 3,115, 1, 26, 7, 16, 12,116, 15, 24, 0, 63,225, 50, 63, 51,225, 18, 57, + 47, 93, 51,225, 50, 1, 47, 93, 51, 16,206, 50, 17, 57, 57, 47, 47, 51,225, 50, 49, 48, 1, 7, 38, 35, 34, 21, 17, 33, 21, 33, + 21, 20, 7, 33, 21, 33, 53, 54, 53, 53, 35, 53, 51, 17, 52, 54, 51, 50, 4, 39, 66,141,131,223, 1,121,254,135,140, 2,236,252, + 33,200,198,198,217,181,192, 5,121,144, 72,246,254,217,137,211,196, 78,166,154, 49,235,213,137, 1, 68,168,201, 0, 2, 0,174, + 1, 29, 4, 31, 4,139, 0, 27, 0, 39, 0, 94, 64, 10, 37,171, 0, 26,176, 26,224, 26, 3, 26,184,255,192, 64, 29, 11, 15, 72, + 26, 26, 31,171,192, 12, 1, 79, 12, 95, 12,111, 12, 3, 12, 41, 28,174, 0, 19,176, 19,224, 19, 3, 19,184,255,192, 64, 21, 11, + 15, 72, 19, 19, 34,174, 31, 5, 63, 5, 79, 5,111, 5,191, 5,239, 5, 6, 5, 0, 47, 93,225, 51, 47, 43, 93,225, 1, 16,222, + 93, 93,225, 51, 47, 43, 93,225, 49, 48, 1, 39, 55, 23, 54, 51, 50, 23, 55, 23, 7, 22, 21, 20, 7, 23, 7, 39, 6, 35, 34, 39, + 7, 39, 55, 38, 53, 52, 1, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 47,129, 98,127,101,114,114, 99,129, 99,129, 67, 67, +127, 97,129, 99,114,118, 97,127, 96,127, 65, 1,120,100,144,143,101, 99,140,141, 3,168,129, 98,129, 68, 68,129, 96,129,101,114, +120, 95,127, 96,127, 66, 68,127, 96,127, 95,118,114,254,158,140,100,101,143,142,102,100,140, 0, 0, 1, 0, 78, 0, 0, 4,125, + 5,182, 0, 22, 0,189,185, 0, 22,255,248, 64, 9, 10, 13, 72, 1, 8, 10, 13, 72, 0,184,255,232, 64, 60, 21, 24, 72,102, 0, +118, 0, 2, 18, 14, 18, 14, 12, 22,207, 21, 1,139, 21, 1,116, 21, 1, 21, 21, 12, 5, 9, 5, 9, 1, 2, 2,103, 0, 1, 0, + 7, 3, 11,110, 20, 16,192, 12,208, 12, 2,103, 12, 1, 16, 12, 1, 12, 12, 23, 24, 7, 15,184, 1, 7,180, 14, 10, 14, 6, 18, +184, 1, 7, 64, 29, 19, 3, 0, 19,159, 14, 1, 48, 14, 64, 14, 2, 15, 19, 31, 19,159, 19, 3, 14, 19, 14, 19, 1, 11, 18, 22, + 1, 6, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93, 93, 17, 51, 51, 16,225, 50, 17, 51, 16,225, 50, 17, 18, 1, 57, 47, 93, 93, + 93, 51, 51,225, 50, 50, 57, 93, 50, 47, 51, 57, 57, 47, 47, 17, 51, 47, 93, 93, 93, 51, 18, 57, 57, 47, 47, 49, 48, 0, 93, 43, + 1, 43, 43, 1, 1, 51, 1, 51, 21, 33, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 51, 1, 51, 2,100, 1, 90,191,254, +127,240,254,210, 1, 46,254,210,178,254,211, 1, 45,254,211,234,254,133,192, 2,211, 2,227,253, 0,137,158,137,254,250, 1, 6, +137,158,137, 3, 0, 0, 0, 2, 2, 27,254, 20, 2,176, 6, 20, 0, 3, 0, 7, 0, 33, 64, 16, 2, 6,170, 3, 79, 7, 1, 7, + 4, 3, 4, 3, 6, 27, 0, 0, 0, 63, 63, 57, 57, 47, 47, 1, 47, 93, 51,225, 50, 49, 48, 1, 51, 17, 35, 17, 51, 17, 35, 2, + 27,149,149,149,149, 6, 20,252,244,254, 25,252,243, 0, 0, 2, 0,244,255,246, 3,217, 6, 31, 0, 39, 0, 50, 0,125, 64, 43, + 8, 0, 1, 6, 20, 1, 9, 0, 1, 40, 20, 47, 22, 0, 45, 2, 72, 42, 1, 42, 73, 18, 18, 32, 70, 7, 22, 52, 71, 47, 1, 47, + 73, 38, 12, 70, 2, 2, 27, 0, 38, 1, 38,184,255,192, 64, 26, 12, 15, 72, 38, 38, 51, 20, 40, 0, 45, 12, 45, 40, 32, 4, 5, + 30, 78, 28, 25, 22, 10, 78, 8, 5, 1, 0, 63, 51,225, 63, 51,225, 17, 23, 57, 17, 51, 17, 51, 17, 1, 51, 47, 43, 93, 51, 51, + 47,225, 16,225, 93, 16,222, 50,225, 51, 47,225, 93, 17, 57, 57, 17, 18, 57, 57, 49, 48, 0, 93, 93, 1, 93, 1, 38, 53, 52, 54, + 51, 50, 23, 7, 38, 35, 34, 21, 20, 22, 23, 22, 22, 21, 20, 7, 22, 21, 20, 6, 35, 34, 39, 53, 22, 51, 50, 53, 52, 38, 39, 38, + 38, 53, 52, 1, 54, 53, 52, 38, 39, 6, 21, 20, 22, 23, 1,164,160,208,173,162,164, 56,156,120,201, 99,147,157,148,145,145,221, +197,204,119,171,152,240, 86,152,197,112, 1,197,114,147,133,133,113,151, 4, 43, 80,156,120,144, 72,139, 67,116, 54, 78, 61, 62, +155,113,182, 88, 80,145,138,161, 65,158, 82,141, 57, 80, 62, 84,150,104,179,254, 97, 76,109, 89,111, 48, 48,127, 73,107, 63, 0, + 0, 2, 1, 74, 5, 12, 3,129, 5,217, 0, 7, 0, 15, 0, 55, 64, 36, 2,133, 0, 6,112, 6,224, 6, 3, 6, 6, 14,133, 10, + 10, 17, 8, 0,147, 12, 79, 4,111, 4,127, 4,159, 4,175, 4,207, 4,223, 4, 7, 4, 0, 47, 93, 51,237, 50, 17, 1, 51, 47, +225, 51, 47, 93,225, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, 52, 1,170, 96, 96, 96, 1,215, 96, 96, + 96, 5,217,102,103,103,102,102,103,103,102, 0, 0, 3, 0, 6,255,236, 4,199, 5,203, 0, 11, 0, 23, 0, 44, 0,111, 64, 70, + 41,197, 35, 25, 31, 30, 47, 30, 63, 30, 3, 30, 25, 30, 25, 9, 15,195, 3, 46, 21,195, 9, 43,201, 27, 24, 27, 38,201, 33, 36, + 33,111, 27,127, 27,143, 27, 3, 13, 27, 29, 27, 2, 96, 33,112, 33,128, 33, 3, 2, 33, 18, 33, 2, 27, 33, 27, 33, 0, 12,200, + 6, 19, 18,200, 0, 4, 0, 63,225, 63,225, 17, 57, 57, 47, 47, 93, 93, 93, 93, 17, 51, 16,225, 17, 51, 16,225, 1, 47,225, 16, +214,225, 17, 57, 57, 47, 47, 93, 17, 51,225, 49, 48, 1, 32, 0, 17, 16, 0, 33, 32, 0, 17, 16, 0, 1, 50, 0, 17, 16, 0, 35, + 34, 0, 17, 16, 0, 1, 21, 6, 35, 34, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 16, 51, 50, 2,102, 1, 30, 1, 67, +254,188,254,227,254,226,254,190, 1, 65, 1, 31,240, 1, 4,254,252,240,240,254,253, 1, 3, 1,244,107,114,195,210,220,191,128, +126, 61,110, 83,121,130,251, 94, 5,203,254,104,254,168,254,167,254,106, 1,151, 1, 88, 1, 87, 1,153,250,141, 1, 85, 1, 46, + 1, 46, 1, 85,254,170,254,211,254,211,254,170, 1,109,131, 50,247,214,209,246, 62,127, 54,171,151,254,189, 0, 0, 2, 1, 20, + 3, 16, 3,141, 5,199, 0, 20, 0, 30, 0, 71, 64, 37, 30, 1, 9,224,192, 19, 1, 47, 19,127, 19, 2, 19, 19, 24,224, 15, 48, + 5,160, 5, 2, 5, 30,229, 9, 9, 26, 14, 12,228, 17,222, 1, 26,228, 3,184, 1, 0,177, 0,255, 0, 63, 63,225, 50, 63,225, + 51, 18, 57, 47,225, 1, 47, 93, 51,225, 51, 47, 93, 93,225, 50, 50, 49, 48, 1, 39, 6, 35, 34, 53, 52, 54, 55, 55, 53, 52, 35, + 34, 7, 39, 54, 51, 32, 21, 17, 3, 6, 6, 21, 20, 51, 50, 54, 53, 53, 3, 31, 33,104,164,222,170,191,125,152,112,133, 41,138, +156, 1, 35,247,114,120,104,105,125, 3, 29,118,131,205,116,103, 6, 5, 10,133, 51,110, 58,238,254, 68, 1, 63, 2, 52, 75, 90, +110, 91, 20, 0, 0, 2, 0,197, 0,115, 4, 6, 3,199, 0, 6, 0, 13, 0, 71, 64, 42, 10,235, 7,236, 11,143, 9, 1, 96, 9, + 1, 9, 15, 3,235, 0,236, 64, 4, 0, 2, 48, 2, 96, 2,160, 2, 4, 2, 12, 5,238, 8, 1,238, 32, 0, 6, 10, 3, 3,239, + 0, 25, 63, 23, 51, 26,237, 50,237, 50, 1, 24, 47, 93, 51, 26,253,225, 16,222, 93, 93, 50,253,225, 49, 48, 19, 1, 23, 3, 19, + 7, 1, 37, 1, 23, 3, 19, 7, 1,197, 1, 53,117,238,238,117,254,203, 1,151, 1, 53,117,237,237,117,254,203, 2, 41, 1,158, + 78,254,164,254,164, 78, 1,155, 27, 1,158, 78,254,164,254,164, 78, 1,155, 0, 0, 1, 0,152, 1, 6, 4, 51, 3, 29, 0, 5, + 0, 44,183, 3,170, 0, 7, 0, 5, 1, 5,184,255,192, 64, 13, 21, 24, 72, 5, 5, 6, 3,173, 0, 1, 1, 0,179, 0, 63, 50, + 47, 16,225, 17, 1, 51, 47, 43, 93, 16,222,225, 49, 48, 1, 17, 35, 17, 33, 53, 4, 51,149,252,250, 3, 29,253,233, 1,129,150, +255,255, 1, 29, 1,209, 3,176, 2,121, 2, 6, 0, 16, 0, 0, 0, 4, 0, 6,255,236, 4,199, 5,203, 0, 11, 0, 23, 0, 35, + 0, 43, 0,150, 64, 94, 24, 34, 36, 29,197, 30, 26, 25, 25, 39,197, 34, 27, 34, 96, 30, 1, 96, 34, 1, 27, 34, 1, 30, 34, 30, + 34, 9, 15,195, 3, 45, 21,195, 9, 26, 30, 21, 36, 1, 36,201, 28, 24, 28, 43,201, 31,240, 30, 1,111, 30,127, 30,143, 30, 3, + 13, 30, 29, 30, 2, 34, 28, 1, 96, 31,112, 31,128, 31, 3, 2, 31, 18, 31, 2, 30, 28, 31, 31, 28, 30, 3, 0, 12,200, 6, 19, + 18,200, 0, 4, 0, 63,225, 63,225, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 17, 51, 16,225, 93, 17, 51, 1, 47, +225, 16,214,225, 17, 57, 57, 47, 47, 93, 93, 93, 18, 57, 16,225, 51, 17, 51, 16,225, 50, 17, 57, 49, 48, 1, 32, 0, 17, 16, 0, + 33, 32, 0, 17, 16, 0, 1, 50, 0, 17, 16, 0, 35, 34, 0, 17, 16, 0, 1, 19, 35, 3, 35, 17, 35, 17, 51, 32, 17, 20, 37, 51, + 50, 53, 52, 38, 35, 35, 2,102, 1, 30, 1, 67,254,188,254,227,254,226,254,190, 1, 65, 1, 31,240, 1, 4,254,252,240,240,254, +253, 1, 3, 1,118,237,178,207, 94,158,234, 1, 69,254,111, 72,170, 84, 89, 69, 5,203,254,104,254,168,254,167,254,106, 1,151, + 1, 88, 1, 87, 1,153,250,141, 1, 85, 1, 46, 1, 46, 1, 85,254,170,254,211,254,211,254,170, 2, 80,254,117, 1, 96,254,160, + 3,125,254,247,163, 18,141, 74, 59, 0, 0, 1,255,236, 6, 20, 4,225, 6,160, 0, 3, 0, 15,181, 1, 0, 3,186, 0, 0, 0, + 63,225, 1, 47, 47, 49, 48, 1, 33, 53, 33, 4,225,251, 11, 4,245, 6, 20,140, 0, 2, 1, 43, 3, 86, 3,162, 5,203, 0, 11, + 0, 23, 0,137, 64, 26,169, 10,185, 10, 2, 10, 16, 9, 15, 72,169, 8,185, 8, 2, 8, 16, 9, 15, 72,166, 4,182, 4, 2, 4, +184,255,240, 64, 9, 9, 15, 72,166, 2,182, 2, 2, 2,184,255,240, 64, 33, 9, 15, 72, 15,171,159, 3,175, 3,255, 3, 3, 3, + 25, 21,171, 0, 9, 32, 9, 48, 9,144, 9,160, 9,176, 9,240, 9, 7, 9, 12,184, 1, 2, 64, 12, 0, 6, 16, 6, 32, 6,224, + 6,240, 6, 5, 6,184,255,192,180, 16, 21, 72, 6, 18,184, 1, 2,177, 0, 4, 0, 63,225,212, 43, 93,225, 1, 47, 93,225, 16, +222, 93,225, 49, 48, 43, 93, 43, 93, 43, 93, 43, 93, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 19, 50, 54, 53, 52, 38, 35, + 34, 6, 21, 20, 22, 2,102,129,187,186,130,131,184,185,130, 79,114,115, 78, 79,113,112, 5,203,187,129,129,184,185,128,129,187, +254, 6,112, 78, 81,114,115, 80, 78,112, 0, 2, 0,152, 0, 0, 4, 51, 4,162, 0, 11, 0, 15, 0, 41, 64, 22, 14, 9, 6,170, + 13, 0,192, 3,208, 3, 2, 3, 13,173, 12, 24, 9, 0,173, 6, 3,179, 0, 63, 51,225, 50, 63,225, 1, 47, 93, 51, 51,225, 50, + 50, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 1, 53, 33, 21, 2, 27,254,125, 1,131,149, 1,131,254,125,149,254, +125, 3,155, 2,135,150, 1,133,254,123,150,254,127,254,250,150,150, 0, 0, 1, 1, 92, 2,160, 3,111, 5,197, 0, 21, 0, 77, + 64, 51, 21, 21, 6,224, 15, 16, 31, 16, 79, 16, 95, 16,127, 16,143, 16,159, 16, 7, 16, 16, 20, 11, 11, 0, 1, 96, 1,112, 1, +128, 1, 4, 1, 6, 1, 10, 16, 17, 24, 72, 10, 8,228, 13,222, 2, 20,228, 1,221, 0, 63,225, 50, 63,225, 51, 43, 18, 57, 1, + 47, 93, 50, 47, 50, 50, 47, 93,225, 51, 47, 49, 48, 1, 33, 53, 55, 54, 54, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 6, + 7, 7, 33, 3,111,253,237,187,111, 61,111, 81, 83, 78,117,131,118,130, 70,129,135, 1,107, 2,160,102,199,118,101, 57,115, 76, + 86,103,120,104, 66,136,129,136, 0, 1, 1, 86, 2,143, 3, 78, 5,197, 0, 30, 0,132, 64, 79, 0, 16, 19,224, 23, 29, 1, 29, + 29, 2, 16, 16, 7, 12,224, 15, 2, 31, 2, 79, 2, 95, 2,127, 2,143, 2,159, 2, 7, 2, 2, 7, 24, 24, 0, 7, 96, 7,112, + 7, 3, 7, 0, 15,229,250, 16, 1,233, 16, 1,168, 16, 1,111, 16, 1, 11, 16, 27, 16, 2, 16, 16, 10, 23, 16, 17, 24, 72, 23, + 21,228, 26,222, 10,228, 8,184,255,240,181, 17, 24, 72, 8, 5,223, 0, 63, 51, 43,225, 63,225, 51, 43, 18, 57, 47, 93, 93, 93, + 93, 93,225, 57, 1, 47, 93, 51, 47, 17, 51, 47, 93,225, 18, 57, 47, 17, 51, 47, 93,225, 18, 57, 49, 48, 1, 22, 21, 20, 6, 35, + 34, 39, 53, 22, 51, 50, 53, 52, 35, 35, 53, 51, 50, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 2,158,176,149,140,131, 84, +110, 93,149,147, 72, 70,123, 97, 71, 90, 66,111,127,109,128, 4, 61, 39,147,116,128, 50,124, 65,137,125,104,127,111, 70, 86, 93, +109, 94,139, 0, 0, 1, 1,162, 4,217, 3, 43, 6, 33, 0, 7, 0, 31, 64, 16, 6, 7,134, 2,135, 3, 3, 9, 2,146, 15, 6, + 95, 6, 2, 6, 0, 47, 93,237, 17, 1, 51, 47,225,237, 50, 49, 48, 1, 54, 55, 51, 21, 6, 7, 35, 1,162, 94, 80,219,112,160, +121, 4,244,133,168, 21,173,134, 0, 1, 0,180,254, 20, 4, 25, 4, 74, 0, 21, 0, 61, 64, 16, 10, 5, 71,143, 8, 1, 8, 23, + 15, 0, 18, 71, 0, 19, 1, 19,184,255,192, 64, 16, 17, 20, 72, 19, 18, 27, 10, 2, 80, 13, 22, 9, 21, 20, 6, 15, 0, 63, 51, + 63, 63,225, 50, 63, 1, 47, 43, 93,225, 50, 50, 16,222, 93,225, 50, 49, 48, 1, 16, 51, 50, 54, 53, 17, 51, 17, 35, 39, 35, 6, + 35, 34, 39, 22, 21, 17, 35, 17, 51, 1,106,218,148,138,183,148, 27, 10, 96,199,139, 74, 6,182,182, 1,135,254,252,182,215, 2, + 58,251,182,147,167, 88,153, 87,254,192, 6, 54, 0, 1, 0, 66,254,252, 4, 55, 6, 20, 0, 14, 0, 77,183, 4,154, 96, 5,240, + 5, 2, 5,184,255,192, 64, 37, 18, 22, 72, 34, 5, 50, 5, 2, 4, 5, 20, 5, 2, 5, 5, 10, 1,154, 0, 16, 10, 64, 10, 15, + 72, 10, 10, 15, 8, 8, 0, 2, 81, 14, 0, 5, 0, 0, 47, 50, 63,225, 18, 57, 47, 17, 1, 51, 47, 43, 16,222,225, 17, 57, 47, + 93, 93, 43, 93,225, 49, 48, 1, 35, 17, 35, 17, 35, 17, 6, 35, 32, 17, 16, 54, 51, 33, 4, 55,121,206,121, 61, 85,254, 93,217, +233, 2, 51,254,252, 6,121,249,135, 3, 51, 18, 1,245, 1, 3,255, 0, 0, 1, 1,231, 2, 72, 2,229, 3, 94, 0, 7, 0, 34, + 64, 20, 2,150, 48, 6, 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 8, 9, 0,155, 4, 0, 47,237, 17, 18, 1, 57, 47, 93,237, + 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 2,102,127,127,127, 3, 94,139,139,139,139, 0, 0, 1, 1,172,254, 20, 3, 33, 0, 0, + 0, 15, 0, 67,185, 0, 13,255,176, 64, 33, 11, 19, 72, 7, 48, 9, 14, 72, 8, 7, 9, 10, 7, 10, 0, 5,132, 12, 95, 0, 1, + 0, 0, 12, 12, 17, 10, 7, 8, 3,141, 14, 8, 0, 47, 47,225, 17, 57, 57, 17, 1, 51, 47, 51, 47, 93, 16,225, 17, 57, 57, 17, + 51, 17, 51, 49, 48, 43, 43, 1, 53, 22, 51, 50, 53, 52, 39, 55, 51, 7, 22, 21, 20, 33, 34, 1,172, 33, 47,151,172, 91,120, 57, +160,254,221, 34,254, 29,108, 6, 92, 74, 39,176,115, 37,135,205, 0, 1, 1,111, 2,160, 2,209, 5,180, 0, 10, 0, 33, 64, 15, + 10, 10, 2,224, 0, 3, 3, 11, 12, 2,221, 6, 9, 0,220, 0, 63,205, 57, 63, 17, 18, 1, 57, 47, 51,225, 51, 47, 49, 48, 1, + 51, 17, 35, 17, 52, 55, 6, 7, 7, 39, 2, 74,135,146, 9, 41, 33, 70, 73, 5,180,252,236, 1,209, 69,131, 44, 21, 51, 88, 0, + 0, 2, 1, 25, 3, 16, 3,180, 5,199, 0, 11, 0, 19, 0, 48, 64, 27, 14,224,176, 9, 1,127, 9, 1, 9, 9, 18,224, 32, 3, + 48, 3,160, 3, 3, 3, 16,230, 6,222, 12,230, 0,184, 1, 0, 0, 63,225, 63,225, 1, 47, 93,225, 51, 47, 93, 93,225, 49, 48, + 1, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 2,100,144,187,180,155,145,187,184,150,181,181, +182, 3, 16,186,163,162,184,185,161,165,184,119,230,225,225,230, 0, 2, 0,197, 0,115, 4, 6, 3,199, 0, 6, 0, 13, 0, 71, + 64, 42, 2, 4,236, 3,235, 63, 6,143, 6,159, 6,175, 6, 4, 6, 15, 9, 11,236, 64, 10,235,159, 13, 1, 0, 13, 1, 13, 12, + 5,238, 8, 1,238, 32, 0, 6, 10, 3, 3,239, 0, 25, 63, 23, 51, 26,237, 50,237, 50, 1, 24, 47, 93, 93,225, 26,237, 50, 16, +222, 93,225,237, 50, 49, 48, 1, 1, 39, 19, 3, 55, 1, 5, 1, 39, 19, 3, 55, 1, 4, 6,254,203,117,238,238,117, 1, 53,254, +105,254,202,116,237,237,116, 1, 54, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98, 27,254,101, 78, 1, 92, 1, 92, 78,254, 98, +255,255, 0, 22, 0, 0, 4,184, 5,182, 2, 39, 0,123,254,167, 0, 0, 0, 38, 2, 23, 0, 0, 1, 7, 2, 60, 1, 57,253, 89, + 0, 60, 64, 39, 3, 2, 18, 24, 3, 2,240, 18, 1,224, 18, 1,128, 18, 1,127, 18, 1, 16, 18, 1, 18, 0,240, 0, 1,224, 0, + 1,176, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53,255,255, + 0, 3, 0, 0, 4,201, 5,182, 2, 39, 0,123,254,148, 0, 0, 0, 38, 2, 23,191, 0, 1, 7, 0,116, 1, 90,253, 97, 0, 68, + 64, 45, 2, 16, 24, 2,240, 16, 1,224, 16, 1,208, 16, 1,192, 16, 1, 16, 16, 1, 0, 16, 1, 16, 1,175, 13, 1,143, 13, 1, + 13, 0,240, 0, 1,224, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 53, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 93, + 53, 0, 63, 53,255,255, 0, 21, 0, 0, 4,205, 5,197, 2, 39, 0,117,254,191, 0, 0, 0, 38, 2, 23, 53, 0, 1, 7, 2, 60, + 1, 78,253, 89, 0, 56, 64, 36, 3, 2, 38, 24, 3, 2,240, 38, 1,224, 38, 1,128, 38, 1, 16, 38, 1, 38, 1,244, 33, 1,228, + 33, 1,212, 33, 1,196, 33, 1,176, 33, 1, 33, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53, 0, 2, + 0,168,254,119, 4, 31, 4, 94, 0, 7, 0, 33, 0, 91, 64, 55, 33, 8, 8, 6,150, 64, 2, 80, 2, 2, 2, 2, 15,159, 21, 1, + 21, 35, 32, 35, 1, 15, 71,159, 26, 1, 0, 26, 1, 26, 15, 23, 32, 8, 1, 8, 8, 0, 20, 18, 81, 48, 23, 1, 23, 26, 0, 1, + 9, 0, 1, 0,155, 4, 16, 0, 63,225, 93, 93, 47, 93,225, 51, 18, 57, 47, 93, 18, 57, 1, 47, 93, 93,225, 93, 16,206, 93, 17, + 57, 47, 93,229, 50, 17, 51, 49, 48, 1, 34, 53, 52, 51, 50, 21, 20, 7, 21, 20, 6, 7, 6, 6, 21, 20, 22, 51, 50, 55, 23, 6, + 35, 34, 38, 53, 52, 54, 55, 54, 54, 53, 53, 2,162,127,127,127, 39, 89,118,129, 84,149,132,181,189, 62,219,203,217,248,107,143, +119, 65, 3, 72,139,139,139,139,164, 37,119,149, 84, 97,116,101, 93,113, 90,144,106,195,163,134,166,108, 87,107, 90, 19,255,255, + 0, 33, 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 0, 67,255,179, 1, 82, 0, 21,180, 2, 15, 5, 38, 2,184,255, +179,180, 18, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, + 0,118, 0,102, 1, 82, 0, 19, 64, 11, 2, 21, 5, 38, 2,102, 15, 18, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, + 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 2, 15, 5, 38, 2, 0, 21, 15, + 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 53, 2, 38, 0, 36, 0, 0, 1, 7, 1, 82,255,255, + 1, 82, 0, 21,180, 2, 15, 5, 38, 2,184,255,254,180, 16, 25, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, + 4,172, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25,182, 3, 2, 19, 5, 38, 3, 2,184,255,255,180, + 21, 25, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 4, 2, 38, 0, 36, 0, 0, 1, 6, + 1, 80, 0,125, 0, 52, 64, 26, 3, 2,239, 26, 1,223, 26, 1, 80, 26, 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, + 3, 2,184,255,255,180, 18, 24, 4, 7, 37, 1, 43, 53, 53, 0, 17, 93, 93, 93, 93, 93, 93, 93, 53, 53, 0, 2, 0, 0, 0, 0, + 4,186, 5,182, 0, 15, 0, 19, 0,134, 64, 84, 6, 8, 11, 14, 72, 16, 3, 19, 4,201, 19,217, 19,233, 19, 3, 55, 19, 1, 19, + 6, 10, 14, 90, 1, 17, 1, 15, 1, 1, 79, 1, 95, 1,127, 1,143, 1,239, 1,255, 1, 6, 6, 1, 11, 11, 1, 6, 3, 5, 8, + 0, 21, 4, 5, 3, 95, 16, 13, 95, 10,159, 16,207, 16, 2,104, 10, 1, 16, 10, 16, 10, 14, 19, 9, 95, 6, 3, 14, 95, 4, 1, + 0, 47, 51,225, 63,225, 50, 18, 57, 57, 47, 47, 93, 93, 16,225, 16,225, 1, 47, 51, 16,206, 50, 17, 23, 57, 47, 47, 47, 93,113, + 17, 51, 16,225, 50, 17, 51, 93, 93, 17, 18, 57, 57, 43, 49, 48, 33, 33, 17, 33, 3, 35, 1, 33, 21, 33, 17, 33, 21, 33, 17, 33, + 1, 51, 17, 35, 4,186,253,115,254,223, 96,172, 1, 82, 3,104,254, 35, 1,182,254, 74, 1,221,252,119,252,106, 1,197,254, 59, + 5,182,164,254, 60,162,253,248, 1,198, 2,168,255,255, 0,129,254, 20, 4,156, 5,203, 2, 38, 0, 38, 0, 0, 1, 6, 0,122, + 80, 0, 0, 11,182, 1, 40, 22, 34, 6, 11, 37, 1, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, + 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,160,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 0,118, 0, 63, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, + 1, 39, 12, 15, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, + 1, 75, 0, 35, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 11, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, + 0, 0, 4, 35, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106, 0, 25, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 0, + 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, + 0, 67,255,148, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,150,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 0,118, 0,119, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1,120, + 12, 15, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 1, 75, + 0, 0, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 1, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, 0, 0, + 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 2, 18, 22, + 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 0, 0, 0, 4,123, 5,182, 0, 12, 0, 23, 0, 73, 64, 44, 16, 0, + 21, 91, 9, 25, 14, 18, 90, 4, 2, 0, 0,224, 0,240, 0, 3, 0, 17, 2, 95, 14,104, 3, 1, 47, 3,159, 3,207, 3, 3, 3, + 3, 18, 13, 96, 5, 3, 18, 96, 0, 18, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 51,225, 50, 1, 47, 93,198, 51,225, 50, 16,222, +225, 17, 57, 49, 48, 51, 17, 35, 53, 51, 17, 33, 32, 0, 17, 16, 0, 33, 3, 17, 33, 21, 33, 17, 51, 32, 17, 16, 33,135,135,135, + 1, 86, 1, 61, 1, 97,254,146,254,167,114, 1,124,254,132, 96, 2, 20,254, 19, 2,147,162, 2,129,254,134,254,173,254,151,254, +128, 5, 23,254, 30,162,254, 13, 2, 67, 2, 52,255,255, 0,135, 0, 0, 4, 68, 7, 53, 2, 38, 0, 49, 0, 0, 1, 7, 1, 82, + 0, 4, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 4, 17, 26, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, + 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0, 67,255,175, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,174,180, 23, 20, + 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0,118, 0, 90, + 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2, 89, 20, 23, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, + 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,255,180, 26, 20, 2, 7, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 53, 2, 38, 0, 50, 0, 0, 1, 7, 1, 82, 0, 8, 1, 82, + 0, 19, 64, 11, 2, 20, 5, 38, 2, 6, 21, 30, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 43, + 2, 38, 0, 50, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 3, 2, 24, 5, 38, 3, 2, 0, 26, 30, 2, 7, 37, 1, + 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,190, 1, 45, 4, 14, 4,123, 0, 11, 0, 92,185, 0, 6,255,240,179, 15, 22, 72, 6, +184,255,248, 64, 24, 10, 14, 72, 0, 16, 15, 22, 72, 0, 8, 10, 14, 72, 9, 16, 15, 22, 72, 9, 8, 10, 14, 72, 3,184,255,240, +179, 15, 22, 72, 3,184,255,248, 64, 20, 10, 14, 72,128, 3,192, 3,208, 3,240, 3, 4, 31, 3, 1, 3,223, 0, 1, 0, 0, 25, + 47, 93, 1, 47, 93, 93, 49, 48, 0, 43, 43, 43, 43, 1, 43, 43, 43, 43, 1, 1, 55, 1, 1, 23, 1, 1, 7, 1, 1, 39, 1,252, +254,194,105, 1, 61, 1, 66,104,254,191, 1, 63,102,254,190,254,195,102, 2,211, 1, 63,105,254,194, 1, 62,103,254,191,254,192, +102, 1, 61,254,197,103, 0, 3, 0, 80,255,180, 4,133, 5,252, 0, 18, 0, 25, 0, 33, 0, 96,185, 0, 19,255,224, 64, 56, 9, + 23, 72, 26, 32, 9, 23, 72, 26, 20, 27, 19, 4, 24, 32, 91, 12, 9, 0, 3, 4, 5, 11, 14, 35, 24, 91, 2, 31, 5, 47, 5, 2, + 5, 27, 19, 26, 20, 4, 22, 29, 95, 0, 3, 12, 9, 4, 7, 1, 17, 19, 22, 95, 10, 7, 4, 0, 63, 51,225, 63, 51, 18, 23, 57, +225, 17, 23, 57, 1, 47, 93, 51,225, 16,222, 50, 17, 23, 57,225, 17, 23, 57, 49, 48, 0, 43, 43, 37, 7, 39, 55, 38, 17, 16, 33, + 50, 23, 55, 23, 7, 22, 17, 16, 0, 35, 34, 3, 1, 38, 35, 32, 17, 20, 1, 1, 22, 51, 50, 18, 17, 52, 1, 53, 92,137,121,117, + 2, 22,186,124, 92,137,125,115,254,236,255,189,108, 2, 3, 80,136,254,175, 2,122,254, 0, 80,133,173,161, 74,150, 78,197,184, + 1, 96, 2,238,105,152, 78,201,188,254,180,254,151,254,120, 1,155, 3, 68, 94,253,180,212, 2, 28,252,192, 86, 1, 34, 1, 44, +209, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0, 67,255,187, 1, 82, 0, 21,180, 1, 15, 5, + 38, 1,184,255,187,180, 18, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, + 0, 0, 1, 7, 0,118, 0, 76, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 76, 15, 18, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, + 1, 0, 21, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7, 43, 2, 38, 0, 56, 0, 0, 1, 7, + 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 19, 5, 38, 2, 1, 1, 21, 25, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0,118, 0, 76, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, + 1, 77, 9, 12, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,176, 0, 0, 4, 70, 5,182, 0, 11, 0, 19, 0, 62, 64, 36, + 16, 91,239, 8,255, 8, 2, 8, 21, 12, 5, 1, 90, 0, 2,144, 2,160, 2, 3, 2, 12, 96, 0, 19, 96, 5, 0, 5, 0, 5, 1, + 3, 3, 1, 18, 0, 63, 63, 18, 57, 57, 47, 47, 16,225, 16,225, 1, 47, 93,225, 50, 50, 16,222, 93,225, 49, 48, 1, 17, 35, 17, + 51, 21, 51, 32, 17, 20, 4, 33, 39, 51, 50, 54, 53, 16, 33, 35, 1,106,186,186,218, 2, 2,254,235,254,248,191,170,198,171,254, +174,201, 1, 61,254,195, 5,182,252,254, 84,219,246,158,144,153, 1, 23, 0, 1, 0,164,255,236, 4,127, 6, 31, 0, 42, 0,114, + 64, 75, 16, 22, 1, 11, 70, 32, 15, 71, 27, 29, 0, 1, 15, 0, 1, 79, 32, 95, 32, 2, 29, 32, 1, 15, 32, 1, 15, 27, 31, 27, +191, 27,207, 27,223, 27, 5, 0, 32, 27, 27, 32, 0, 3, 21, 5, 71, 38, 44, 20, 71, 0, 21,160, 21,176, 21, 3, 21, 5, 32, 15, + 3, 24, 3, 80, 1, 41, 22, 17, 80, 24, 1, 21, 21, 0, 63, 63,225, 63, 51,225, 18, 23, 57, 1, 47, 93,225, 16,222,225, 18, 23, + 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 0, 93, 37, 53, 22, 51, 50, 53, 52, 38, 39, 38, 38, 53, 52, 55, + 54, 53, 52, 35, 34, 21, 17, 35, 17, 16, 33, 50, 22, 21, 20, 7, 6, 6, 21, 20, 22, 23, 22, 22, 21, 20, 6, 35, 34, 1,223,143, +134,213, 91, 98,123,100,129,129,227,242,182, 1,168,194,217,133, 84, 49, 58,122,144, 94,200,183,182, 49,166, 86,174, 81,102, 61, + 78,122, 87,117,106,106, 90,164,215,251, 78, 4,176, 1,111,159,148,132,117, 74, 62, 33, 39, 60, 81, 95,156, 98,162,171,255,255, + 0,135,255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0, 67,171, 0, 0, 21,180, 2, 34, 17, 38, 2,184,255,205,180, + 37, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0,118, + 84, 0, 0, 23, 64, 14, 2, 40, 17, 38, 2, 80, 34, 1,118, 34, 37, 8, 22, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,135, +255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 1, 75, 8, 0, 0, 23, 64, 14, 2, 34, 17, 38, 2, 96, 40, 1, 42, 40, + 34, 8, 22, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,227, 2, 38, 0, 68, 0, 0, 1, 6, 1, 82, + 10, 0, 0, 31, 64, 20, 2, 34, 17, 38, 2,128, 35, 1,112, 35, 1, 96, 35, 1, 43, 35, 44, 8, 22, 37, 1, 43, 93, 93, 93, 53, + 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,217, 2, 38, 0, 68, 0, 0, 1, 6, 0,106, 12, 0, 0, 35, 64, 22, 3, 2, + 38, 17, 38, 3, 2, 80, 40, 1, 64, 40, 1, 48, 40, 1, 45, 40, 44, 8, 22, 37, 1, 43, 93, 93, 93, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,135,255,236, 4, 2, 6,135, 2, 38, 0, 68, 0, 0, 1, 6, 1, 80,255, 0, 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, + 2, 32, 37, 43, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0, 45,255,236, 4,162, 4, 94, 0, 34, 0, 41, 0, 51, + 0,104, 64, 60, 27, 10, 35, 17, 71, 0, 16, 51,192, 51, 2, 51, 51, 32, 36, 70, 23, 16, 64, 10, 22, 72, 11, 16, 1, 16, 53, 45, + 71, 6,224, 32,240, 32, 2, 32, 42, 17, 80, 0, 35, 35, 8, 27, 20, 48, 80, 22, 25, 25, 29, 22, 39, 10, 3, 80, 12, 5, 8, 16, + 0, 63, 51, 51,225, 50, 50, 63, 51, 17, 51,225, 50, 50, 17, 57, 47, 51,225, 50, 1, 47, 93, 51,225, 16,222, 93, 43, 50,225, 17, + 57, 47, 93, 51,225, 50, 57, 57, 49, 48, 1, 53, 52, 35, 34, 7, 39, 54, 51, 50, 23, 54, 51, 50, 18, 21, 21, 33, 22, 22, 51, 50, + 55, 21, 6, 35, 34, 39, 6, 35, 34, 38, 53, 16, 37, 37, 33, 52, 38, 35, 34, 6, 3, 7, 6, 21, 20, 22, 51, 50, 54, 53, 2, 10, +139,107,104, 57,131,145,188, 58, 78,162,137,172,254, 16, 3,128,105,111,122,107,134,222, 94,105,196,115,141, 1, 72, 1, 65, 1, + 60, 81, 71, 68, 90,180, 88,217, 64, 55, 82,104, 2,150, 69,236, 82,137, 96,178,178,254,241,220,113,192,183, 76,162, 73,229,229, +173,154, 1, 76, 16, 7,141,164,156,254,238, 7, 17,208, 83, 95,165,146,255,255, 0,172,254, 20, 4, 37, 4, 94, 2, 38, 0, 70, + 0, 0, 1, 6, 0,122, 49, 0, 0, 11,182, 1, 47, 20, 32, 15, 0, 37, 1, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, + 2, 38, 0, 72, 0, 0, 1, 6, 0, 67,212, 0, 0, 21,180, 2, 23, 17, 38, 2,184,255,212,180, 26, 23, 11, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0,118, 82, 0, 0, 31, 64, 20, 2, 29, + 17, 38, 2,160, 23, 1, 16, 23, 1, 0, 23, 1, 82, 23, 26, 11, 0, 37, 1, 43, 93, 93, 93, 53, 0, 43, 53, 0,255,255, 0,133, +255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 1, 75, 16, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 16, 29, 23, 11, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106, 18, 0, 0, 23, + 64, 13, 3, 2, 27, 17, 38, 3, 2, 17, 29, 33, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,197, 0, 0, 4, 51, + 6, 33, 2, 38, 0,243, 0, 0, 1, 6, 0, 67,171, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,150,180, 13, 10, 7, 5, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 6, 33, 2, 38, 0,243, 0, 0, 1, 6, 0,118,113, 0, 0, 19, 64, 11, + 1, 16, 17, 38, 1, 91, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 6, 33, 2, 38, 0,243, + 0, 0, 1, 6, 1, 75, 0, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,235,180, 16, 10, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,197, 0, 0, 4, 51, 5,217, 2, 38, 0,243, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 14, 17, 38, 2, 1, +184,255,234,180, 16, 20, 7, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0,135,255,236, 4, 70, 6, 35, 0, 26, 0, 36, + 0,112,185, 0, 11,255,224, 64, 65, 15, 20, 72, 6, 32, 15, 19, 72, 1, 34, 72, 16, 14, 11, 3, 6, 8, 5, 13, 5, 13, 5, 13, + 22,239, 16,255, 16, 2, 16, 38, 29, 72, 0, 22,224, 22,240, 22, 3, 22, 0, 27, 80, 25, 14, 6, 11, 3, 48, 25, 1, 4, 25, 4, + 25, 9, 31, 80, 19, 22, 12, 12, 9, 1, 0, 63, 51, 47, 63,225, 18, 57, 57, 47, 47, 93, 23, 57, 16,225, 50, 1, 47, 93,225, 16, +206, 93, 17, 57, 57, 47, 47, 18, 23, 57, 16,225, 50, 49, 48, 43, 0, 43, 1, 55, 38, 39, 5, 39, 55, 38, 39, 55, 22, 23, 55, 23, + 7, 0, 17, 16, 0, 35, 34, 0, 53, 52, 18, 51, 50, 7, 32, 17, 16, 33, 50, 54, 53, 52, 38, 3,121, 8, 58,184,255, 0, 73,217, +104, 68, 69,143,103,227, 74,194, 1, 45,254,255,225,213,254,248,241,214,211,187,254,226, 1, 32,154,135,155, 3, 84, 4,226,165, +153,114,131, 71, 38,123, 70, 78,138,113,117,254,221,254, 45,254,235,254,196, 1, 11,230,234, 1, 4,148,254,160,254,172,199,196, +129,168,255,255, 0,160, 0, 0, 4, 45, 5,227, 2, 38, 0, 81, 0, 0, 1, 6, 1, 82, 6, 0, 0, 19, 64, 11, 1, 17, 17, 38, + 1, 5, 18, 27, 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, + 0, 67,216, 0, 0, 21,180, 2, 20, 17, 38, 2,184,255,217,180, 23, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115, +255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0,118, 80, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 81, 20, 23, 3, 9, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 75,251, 0, 0, 21, +180, 2, 20, 17, 38, 2,184,255,252,180, 26, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 5,227, + 2, 38, 0, 82, 0, 0, 1, 6, 1, 82, 0, 0, 0, 19, 64, 11, 2, 20, 17, 38, 2, 0, 21, 30, 3, 9, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 0, 82, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 24, 17, 38, + 3, 2,184,255,249,180, 26, 30, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0,152, 0,248, 4, 51, 4,172, 0, 7, + 0, 11, 0, 19, 0, 83, 64, 55, 64, 10, 1, 15, 10, 1, 10, 10, 14, 18, 6, 80, 9,240, 9, 2, 9, 9, 2,172, 31, 6, 95, 6, +159, 6, 3, 6, 12,175, 0, 16, 64, 16,112, 16,144, 16,160, 16,176, 16,240, 16, 7, 16, 16, 8, 4,175, 0, 8,173, 9,179, 0, + 63,225,220,225, 16,200, 47, 93,225, 1, 47, 93,225, 51, 47, 93, 17, 51, 50, 50, 47, 93, 93, 49, 48, 1, 50, 21, 20, 35, 34, 53, + 52, 1, 53, 33, 21, 5, 50, 21, 20, 35, 34, 53, 52, 2,100,115,115,114,254,166, 3,155,254, 49,115,115,114, 4,172,125,125,125, +125,253,219,150,150,149,125,125,125,125, 0, 3, 0,115,255,170, 4, 88, 4,156, 0, 19, 0, 27, 0, 35, 0,110,181, 21, 16, 9, + 21, 72, 29,184,255,240,179, 9, 21, 72, 20,184,255,240, 64, 54, 15, 20, 72, 28, 16, 15, 20, 72, 28, 21, 29, 20, 4, 26, 34, 72, + 13, 10, 0, 3, 4, 5, 12, 15, 37, 26, 72, 2, 0, 5, 1, 5, 29, 20, 28, 21, 4, 23, 31, 80, 10, 13, 3, 0, 4, 8, 1, 18, + 22, 23, 80, 11, 8, 16, 0, 63, 51,225, 63, 51, 18, 23, 57,225, 17, 23, 57, 1, 47, 93, 51,225, 16,222, 50, 17, 23, 57,225, 17, + 23, 57, 49, 48, 0, 43, 43, 1, 43, 43, 37, 7, 39, 55, 38, 17, 16, 0, 51, 50, 23, 55, 23, 7, 22, 17, 16, 0, 35, 34, 3, 1, + 38, 35, 34, 6, 21, 20, 1, 1, 22, 51, 50, 54, 53, 52, 1,121, 76,131, 84,139, 1, 10,235,128,108, 76,131, 84,137,254,243,233, +129,125, 1,150, 66, 90,161,142, 2, 57,254,107, 61, 93,161,142, 33,119, 84,131,158, 1, 8, 1, 10, 1, 45, 57,119, 84,131,156, +254,254,254,241,254,212, 1, 40, 2,144, 35,207,209,180, 1,190,253,115, 33,211,209,164,255,255, 0,160,255,236, 4, 45, 6, 33, + 2, 38, 0, 88, 0, 0, 1, 6, 0, 67,179, 0, 0, 21,180, 1, 18, 17, 38, 1,184,255,179,180, 21, 18, 6, 16, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0,118, 82, 0, 0, 19, 64, 11, 1, 24, + 17, 38, 1, 82, 18, 21, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, + 1, 6, 1, 75, 8, 0, 0, 19, 64, 11, 1, 18, 17, 38, 1, 8, 24, 18, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, +255,236, 4, 45, 5,217, 2, 38, 0, 88, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 2, 1, 22, 17, 38, 2, 1, 1, 24, 28, + 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 0,118, + 76, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 77, 23, 26, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,158,254, 20, 4, 68, + 6, 20, 0, 19, 0, 30, 0, 59, 64, 36, 26, 72,239, 5,255, 5, 2, 5, 32, 11, 17, 19, 21, 4, 14, 71, 0, 15,176, 15, 2, 15, + 16, 0, 14, 27, 10, 24, 80, 8, 22, 0, 28, 80, 2, 16, 0, 63,225, 50, 63,225, 50, 63, 63, 1, 47, 93,225, 23, 50, 16,222, 93, +225, 49, 48, 1, 54, 51, 50, 18, 17, 16, 2, 35, 34, 39, 35, 22, 21, 17, 35, 17, 51, 17, 7, 19, 21, 20, 22, 51, 32, 17, 16, 33, + 34, 6, 1, 84,110,212,201,229,230,200,207,115, 12, 12,182,182, 8, 8,139,152, 1, 16,254,238,152,133, 3,182,168,254,213,254, +244,254,242,254,211,159,129, 33,254, 43, 8, 0,254, 54,148,254,154, 41,227,193, 1,166, 1,158,176, 0,255,255, 0, 82,254, 20, + 4,121, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106, 8, 0, 0, 23, 64, 13, 2, 1, 27, 17, 38, 2, 1, 8, 29, 33, 0, 9, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 6,193, 2, 38, 0, 36, 0, 0, 1, 7, 1, 77, 0, 0, + 1, 82, 0, 21,180, 2, 17, 5, 38, 2,184,255,255,180, 15, 16, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, + 4, 2, 5,111, 2, 38, 0, 68, 0, 0, 1, 6, 1, 77,247, 0, 0, 19, 64, 11, 2, 36, 17, 38, 2, 24, 34, 35, 8, 22, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 64, 2, 38, 0, 36, 0, 0, 1, 7, 1, 78,255,253, 1, 82, 0, 21, +180, 2, 18, 5, 38, 2,184,255,253,180, 20, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,238, + 2, 38, 0, 68, 0, 0, 1, 6, 1, 78,245, 0, 0, 19, 64, 11, 2, 37, 17, 38, 2, 22, 39, 34, 8, 22, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0, 33,254, 57, 4,190, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 81, 1,143, 0, 0, 0, 24, 64, 16, 2, 32, + 23, 1, 16, 23, 1, 0, 23, 1, 0, 23, 23, 0, 0, 37, 1, 43, 93, 93, 93, 53,255,255, 0,135,254, 57, 4, 82, 4, 94, 2, 38, + 0, 68, 0, 0, 1, 7, 1, 81, 1, 35, 0, 0, 0, 36, 64, 25, 2,128, 42, 1,112, 42, 1, 96, 42, 1, 32, 42, 1, 16, 42, 1, + 0, 42, 1, 0, 42, 42, 0, 0, 37, 1, 43, 93, 93, 93, 93, 93, 93, 53,255,255, 0,129,255,236, 4,156, 7,115, 2, 38, 0, 38, + 0, 0, 1, 7, 0,118, 0,242, 1, 82, 0, 19, 64, 11, 1, 28, 5, 38, 1,202, 22, 25, 6, 11, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, 1, 7, 0,118, 0,160, 0, 0, 0, 19, 64, 11, 1, 26, 17, 38, + 1,158, 20, 23, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129,255,236, 4,156, 7,115, 2, 38, 0, 38, 0, 0, 1, 7, + 1, 75, 0,160, 1, 82, 0, 39, 64, 26, 1, 22, 5, 38, 1,208, 28, 1,176, 28, 1,128, 28, 1,112, 28, 1, 80, 28, 1,120, 28, + 22, 6, 11, 37, 1, 43, 93, 93, 93, 93, 93, 53, 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, + 1, 6, 1, 75, 84, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 82, 26, 20, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129, +255,236, 4,156, 7, 55, 2, 38, 0, 38, 0, 0, 1, 7, 1, 79, 0,164, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1,124, 28, 24, + 6, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 5,229, 2, 38, 0, 70, 0, 0, 1, 6, 1, 79, 84, 0, + 0, 19, 64, 11, 1, 24, 17, 38, 1, 82, 26, 22, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129,255,236, 4,156, 7,115, + 2, 38, 0, 38, 0, 0, 1, 7, 1, 76, 0,154, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1,114, 30, 22, 6, 11, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 76, 92, 0, 0, 19, 64, 11, 1, 24, + 17, 38, 1, 90, 28, 20, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135, 0, 0, 4,123, 7,115, 2, 38, 0, 39, 0, 0, + 1, 7, 1, 76,255,247, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,221,180, 24, 16, 0, 5, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 79,255,236, 5, 35, 6, 20, 0, 38, 0, 71,198, 0, 1, 7, 2, 56, 2, 68, 0, 0, 0, 30, 64, 11, 2, 2,127, 30, + 1,111, 30, 1, 79, 30, 1,184, 2,136,180, 30, 34, 6, 16, 37, 1, 43, 93, 93, 93, 53, 0, 53,255,255, 0, 0, 0, 0, 4,123, + 5,182, 2, 6, 0,146, 0, 0, 0, 2, 0,137,255,236, 4,203, 6, 20, 0, 26, 0, 37, 0, 89, 64, 55, 16, 6, 0, 12, 15, 18, + 4, 27, 71, 23, 21,144, 25,160, 25, 2, 25, 39, 33, 72, 0, 6,224, 6,240, 6, 3, 6, 24, 16, 79, 21, 17, 17, 19, 12, 31, 80, + 0, 9, 16, 9, 32, 9, 3, 9, 9, 19, 0, 35, 80, 3, 22, 26, 21, 0, 63, 63,225, 63, 57, 47, 93,225, 50, 18, 57, 47, 51,225, + 50, 1, 47, 93,225, 16,222, 93, 50, 50,225, 23, 50, 17, 57, 49, 48, 37, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 23, 51, 38, 53, + 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 3, 53, 52, 38, 35, 32, 17, 16, 33, 50, 54, 3,129, 8,113,209,201,229,230,200, +208,114, 12, 12,254,133, 1,123,182,156,156,147, 35,139,152,254,240, 1, 18,151,134,147,167, 1, 32, 1, 2, 1, 4, 1, 35,159, +126, 35,158,137,182,182,137,251, 43, 1,231, 39,216,184,254,110,254,119,166, 0,255,255, 0,217, 0, 0, 4, 35, 6,193, 2, 38, + 0, 40, 0, 0, 1, 7, 1, 77, 0, 10, 1, 82, 0, 21,180, 1, 14, 5, 38, 1,184,255,242,180, 12, 13, 1, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,111, 2, 38, 0, 72, 0, 0, 1, 6, 1, 77, 20, 0, 0, 19, 64, 11, 2, 25, + 17, 38, 2, 19, 23, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 64, 2, 38, 0, 40, 0, 0, + 1, 7, 1, 78, 0, 29, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 5, 17, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,133,255,236, 4, 72, 5,238, 2, 38, 0, 72, 0, 0, 1, 6, 1, 78, 16, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 15, 28, 23, + 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 26, 2, 38, 0, 40, 0, 0, 1, 7, 1, 79, 0, 35, + 1, 53, 0, 19, 64, 11, 1, 16, 5, 38, 1, 11, 18, 14, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, + 5,229, 2, 38, 0, 72, 0, 0, 1, 6, 1, 79, 23, 0, 0, 19, 64, 11, 2, 27, 17, 38, 2, 23, 29, 25, 11, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,217,254, 57, 4, 35, 5,182, 2, 38, 0, 40, 0, 0, 1, 7, 1, 81, 0,205, 0, 0, 0, 14,183, 1, + 1,181, 18, 12, 1, 0, 37, 1, 43, 53, 0, 53,255,255, 0,133,254, 88, 4, 72, 4, 94, 2, 38, 0, 72, 0, 0, 1, 7, 1, 81, + 0,227, 0, 31, 0, 14,183, 2, 2,227, 29, 23, 11, 0, 37, 1, 43, 53, 0, 53,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, + 0, 40, 0, 0, 1, 7, 1, 76, 0, 35, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 11, 20, 12, 1, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 1, 76, 25, 0, 0, 19, 64, 11, 2, 27, 17, 38, + 2, 25, 31, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7,115, 2, 38, 0, 42, 0, 0, 1, 7, + 1, 75, 0, 80, 1, 82, 0, 19, 64, 11, 1, 25, 5, 38, 1, 89, 31, 25, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, +254, 20, 4,102, 6, 33, 2, 38, 0, 74, 0, 0, 1, 6, 1, 75,247, 0, 0, 21,180, 3, 55, 17, 38, 3,184,255,248,180, 61, 55, + 22, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7, 64, 2, 38, 0, 42, 0, 0, 1, 7, 1, 78, 0, 98, + 1, 82, 0, 27, 64, 17, 1, 28, 5, 38, 1, 16, 30, 1, 0, 30, 1,106, 30, 25, 7, 1, 37, 1, 43, 93, 93, 53, 0, 43, 53, 0, +255,255, 0,102,254, 20, 4,102, 5,238, 2, 38, 0, 74, 0, 0, 1, 6, 1, 78,243, 0, 0, 21,180, 3, 58, 17, 38, 3,184,255, +243,180, 60, 55, 22, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7, 55, 2, 38, 0, 42, 0, 0, 1, 7, + 1, 79, 0,109, 1, 82, 0, 19, 64, 11, 1, 29, 5, 38, 1,118, 31, 27, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, +254, 20, 4,102, 5,229, 2, 38, 0, 74, 0, 0, 1, 6, 1, 79,255, 0, 0, 19, 64, 11, 3, 59, 17, 38, 3, 0, 61, 57, 22, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,254, 59, 4, 70, 5,203, 2, 38, 0, 42, 0, 0, 1, 6, 2, 57, 57, 0, 0, 19, + 64, 11, 1, 27, 20, 39, 1, 65, 25, 28, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102,254, 20, 4,102, 6, 33, 2, 38, + 0, 74, 0, 0, 1, 6, 2, 58, 45, 0, 0, 19, 64, 11, 3, 57, 17, 38, 3, 45, 58, 55, 22, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,135, 0, 0, 4, 70, 7,115, 2, 38, 0, 43, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, + 1, 0, 18, 12, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, 0, 0, 4, 45, 7,170, 2, 38, 0, 75, 0, 0, 1, 7, + 1, 75, 0, 14, 1,137, 0, 19, 64, 11, 1, 18, 2, 38, 1, 14, 24, 18, 7, 16, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0, 0, + 0, 0, 4,205, 5,182, 0, 19, 0, 23, 0, 88, 64, 48, 20, 4, 12, 90, 9, 7, 11, 25, 23, 3, 15, 90, 18, 0,224, 16,240, 16, + 2, 16, 14, 95, 23, 22, 10,104, 18, 1, 18, 96, 19, 7, 3, 19,104, 23, 1, 23, 19, 23, 19, 1, 16, 11, 18, 5, 1, 3, 0, 63, + 51, 63, 51, 18, 57, 57, 47, 47, 93, 17, 51, 51, 16,225, 93, 50, 50, 16,225, 1, 47, 93, 51, 51,225, 50, 50, 16,222, 50, 50,225, + 50, 50, 49, 48, 19, 53, 51, 21, 33, 53, 51, 21, 51, 21, 35, 17, 35, 17, 33, 17, 35, 17, 35, 53, 1, 53, 33, 21,135,187, 2, 73, +187,135,135,187,253,183,187,135, 3,139,253,183, 4,195,243,243,243,243,150,251,211, 2,170,253, 86, 4, 45,150,254,139,223,223, + 0, 1, 0, 4, 0, 0, 4, 45, 6, 20, 0, 27, 0, 82, 64, 49, 17, 8, 0, 71,144, 27,160, 27, 2, 27, 29, 15, 19, 20, 3, 7, + 71, 12, 10, 0, 8,176, 8, 2, 8, 18, 10, 79, 15, 11, 11, 13, 20, 3, 80, 0, 23, 16, 23, 32, 23, 3, 23, 23, 13, 0, 8, 0, + 21, 0, 63, 50, 63, 57, 47, 93,225, 50, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 51,225, 23, 50, 16,222, 93,225, 18, 57, 49, 48, + 33, 17, 16, 35, 34, 6, 21, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 54, 51, 50, 22, 21, 17, 3,119,236,162, +147,182,156,156,184, 1,162,254, 92, 10, 10,108,238,192,189, 2,154, 1, 4,187,211,253,240, 4,213,137,182,182,137,184,144,168, +191,210,253, 92,255,255, 0,225, 0, 0, 3,233, 7, 53, 2, 38, 0, 44, 0, 0, 1, 7, 1, 82, 0, 0, 1, 82, 0, 19, 64, 11, + 1, 12, 5, 38, 1, 0, 13, 22, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,227, 2, 38, 0,243, + 0, 0, 1, 6, 1, 82,253, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,231,180, 11, 20, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,225, 0, 0, 3,233, 6,193, 2, 38, 0, 44, 0, 0, 1, 7, 1, 77, 0, 2, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, + 1, 2, 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,111, 2, 38, 0,243, 0, 0, 1, 6, + 1, 77, 0, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,234,180, 10, 11, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, + 0, 0, 3,233, 7, 64, 2, 38, 0, 44, 0, 0, 1, 7, 1, 78, 0, 0, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 1, 17, 12, + 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,238, 2, 38, 0,243, 0, 0, 1, 6, 1, 78, 25, 0, + 0, 19, 64, 11, 1, 13, 17, 38, 1, 3, 15, 0, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225,254, 57, 3,233, 5,182, + 2, 38, 0, 44, 0, 0, 1, 6, 1, 81, 8, 0, 0, 14,183, 1, 1, 9, 18, 12, 1, 0, 37, 1, 43, 53, 0, 53,255,255, 0,197, +254, 57, 4, 51, 6, 14, 2, 38, 0, 76, 0, 0, 1, 6, 1, 81, 25, 0, 0, 14,183, 2, 2, 3, 25, 19, 16, 14, 37, 1, 43, 53, + 0, 53,255,255, 0,225, 0, 0, 3,233, 7, 55, 2, 38, 0, 44, 0, 0, 1, 7, 1, 79, 0, 0, 1, 82, 0, 19, 64, 11, 1, 16, + 5, 38, 1, 1, 18, 14, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,197, 0, 0, 4, 51, 4, 74, 0, 9, 0, 41, 64, 21, + 5, 4, 71, 8, 1, 86, 9, 1, 9, 9, 10, 11, 4, 9, 78, 7, 21, 0, 78, 2, 15, 0, 63,225, 63,225, 50, 17, 18, 1, 57, 47, + 93, 51, 51,225, 50, 49, 48, 1, 37, 53, 33, 17, 5, 21, 33, 53, 37, 2, 29,254,243, 1,195, 1, 96,252,146, 1, 88, 3,186, 21, +123,252, 69, 20,123,123, 20, 0, 0, 2, 0,156,255,236, 4, 35, 5,182, 0, 3, 0, 15, 0, 66, 64, 40, 2, 90, 1, 10, 90, 11, + 31, 4, 1,159, 11,175, 11, 2, 0, 1,224, 1,240, 1, 3, 1, 4, 11, 11, 4, 1, 3, 16, 17, 7, 96, 5, 14, 19, 10, 1, 3, + 0, 18, 0, 63, 63, 51, 63, 51,225, 17, 18, 1, 23, 57, 47, 47, 47, 93, 93, 93, 16,225, 16,225, 49, 48, 51, 17, 51, 17, 55, 53, + 22, 51, 50, 17, 17, 51, 17, 16, 33, 34,156,186,150, 93, 93,194,187,254,147,133, 5,182,250, 74, 23,163, 45, 1, 27, 4, 14,251, +254,254, 56, 0, 0, 4, 0,188,254, 20, 4, 14, 6, 14, 0, 8, 0, 17, 0, 21, 0, 36, 0, 88, 64, 50, 2, 20, 71, 21, 7, 21, + 16, 27, 71, 32, 11, 32, 0, 30, 1, 0, 22, 1, 0, 21, 1, 21, 22, 30, 32, 32, 30, 22, 21, 4, 37, 38, 25, 80, 23, 35, 27, 28, + 78, 18, 30, 15, 21, 21, 14, 5, 83, 9, 0, 0, 0, 63, 50,229, 50, 63, 63, 51,225, 63, 51,225, 17, 18, 1, 23, 57, 47, 47, 47, + 47, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 49, 48, 1, 50, 21, 20, 6, 35, 34, 53, 52, 33, 50, 21, 20, 6, 35, 34, + 53, 52, 1, 51, 17, 35, 1, 53, 22, 51, 50, 53, 17, 39, 53, 33, 17, 20, 6, 35, 34, 1, 39,106, 63, 43,107, 2,228,106, 63, 43, +107,253,150,182,182, 1, 43, 88,102,164,215, 1,141,170,151,123, 6, 14,114, 58, 57,115,114,114, 58, 57,115,114,254, 60,251,182, +254, 55,154, 39,215, 4, 57, 21,123,251, 65,182,193, 0,255,255, 0,137,255,236, 4,190, 7,115, 2, 38, 0, 45, 0, 0, 1, 7, + 1, 75, 1, 12, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 0, 20, 14, 7, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135, +254, 20, 3,198, 6, 33, 2, 38, 1, 75, 20, 0, 1, 6, 2, 55, 0, 0, 0, 21,180, 1, 25, 23, 39, 1,184,255,116,180, 16, 26, + 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,211,254, 59, 4,174, 5,182, 2, 38, 0, 46, 0, 0, 1, 6, 2, 57, 27, 0, + 0, 21,180, 1, 15, 20, 39, 1,184,255,193,180, 13, 16, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,215,254, 59, 4,139, + 6, 20, 2, 38, 0, 78, 0, 0, 1, 6, 2, 57, 2, 0, 0, 21,180, 1, 17, 23, 39, 1,184,255,183,180, 15, 18, 10, 5, 37, 1, + 43, 53, 0, 43, 53, 0, 0, 1, 0,215, 0, 0, 4,139, 4, 74, 0, 14, 0,119, 64, 11, 25, 6, 41, 6, 57, 6, 3, 8, 6, 1, + 4,184,255,224, 64, 62, 16, 20, 72, 70, 4, 86, 4, 2, 9, 2, 1, 9, 1, 1, 27, 7, 43, 7, 59, 7, 3, 7, 4, 5, 2, 3, + 3, 6, 5, 32, 16, 19, 72, 0, 5, 96, 5, 2, 5, 5, 16, 13, 0, 9, 70, 0, 10, 96, 10, 2, 10, 4, 7, 7, 0, 2, 10, 5, + 21, 11, 2, 15, 0, 63, 51, 63, 51, 18, 57, 57, 17, 51, 1, 47, 93,225, 50, 50, 17, 51, 47, 93, 43, 51, 51, 47, 51, 17, 57, 57, + 49, 48, 0, 93, 1, 93, 93, 93, 43, 93, 93, 1, 55, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 3, 1,127,137, 1,146,213, +254, 18, 2, 10,213,254, 86,129,180,180, 16, 1,252,166, 1,168,254, 2,253,180, 1,213, 82,254,125, 4, 74,254,221,254,213, 0, +255,255, 0,233, 0, 0, 4, 31, 7,115, 2, 38, 0, 47, 0, 0, 1, 7, 0,118,255,101, 1, 82, 0, 21,180, 1, 12, 5, 38, 1, +184,255, 72,180, 6, 9, 0, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,188, 0, 0, 4, 43, 7,172, 2, 38, 0, 79, 0, 0, + 1, 7, 0,118, 0, 78, 1,139, 0, 19, 64, 11, 1, 16, 2, 38, 1, 65, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,233,254, 59, 4, 31, 5,182, 2, 38, 0, 47, 0, 0, 1, 6, 2, 57, 8, 0, 0, 21,180, 1, 8, 20, 39, 1,184,255,234,180, + 6, 9, 0, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,188,254, 59, 4, 43, 6, 20, 2, 38, 0, 79, 0, 0, 1, 6, 2, 57, +234, 0, 0, 21,180, 1, 12, 23, 39, 1,184,255,221,180, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,233, 0, 0, + 4, 31, 5,183, 2, 38, 0, 47, 0, 0, 1, 7, 2, 56, 1, 0,255,163, 0, 14,183, 1, 1,226, 6, 10, 0, 4, 37, 1, 43, 53, + 0, 53,255,255, 0,188, 0, 0, 4, 82, 6, 20, 2, 38, 0, 79, 0, 0, 1, 7, 2, 56, 1,115, 0, 0, 0, 17,177, 1, 1,184, + 1,102,180, 10, 14, 7, 5, 37, 1, 43, 53, 0, 53, 0,255,255, 0,233, 0, 0, 4, 31, 5,182, 2, 38, 0, 47, 0, 0, 1, 7, + 1, 79, 0,242,253,148, 0, 14,183, 1, 1,212, 12, 8, 0, 4, 37, 1, 43, 53, 0, 53,255,255, 0,188, 0, 0, 4, 55, 6, 20, + 2, 38, 0, 79, 0, 0, 1, 7, 1, 79, 1,102,253, 56, 0, 21,180, 1, 1,127, 16, 1,184, 1, 89,180, 16, 12, 7, 5, 37, 1, + 43, 93, 53, 0, 53, 0, 0, 1, 0, 72, 0, 0, 4, 68, 5,182, 0, 13, 0,125, 64, 54, 10, 1, 2, 9, 2, 7, 4, 3, 8, 3, +121, 8,137, 8,153, 8, 3, 10, 8, 26, 8, 42, 8, 3,118, 2,134, 2,150, 2, 3, 5, 2, 21, 2, 37, 2, 3, 9, 9, 0, 13, + 15, 7, 11, 90, 0, 3, 4, 3, 0, 0, 1, 0,184,255,192, 64, 21, 12, 15, 72, 0, 1, 10, 4, 7, 4, 2, 8, 2, 8, 2, 0, + 5, 3, 11, 95, 0, 18, 0, 63,225, 63, 18, 57, 57, 47, 47, 18, 23, 57, 1, 47, 43, 93, 51, 51, 47, 16,225, 50, 16,206, 17, 57, + 47, 49, 48, 93, 93, 93, 93, 16,125,135, 4,196,196, 16,135,196,196, 33, 17, 7, 39, 55, 17, 51, 17, 37, 23, 5, 17, 33, 21, 1, + 14,125, 73,198,187, 1, 43, 78,254,135, 2,123, 1,236, 78,125,125, 3, 30,253, 88,189,125,238,254, 70,166, 0, 0, 1, 0,188, + 0, 0, 4, 43, 6, 20, 0, 17, 0,141, 64, 22,105, 11, 1,102, 3, 1, 11, 0, 1, 10, 1, 8, 3, 2, 9, 2, 10, 24, 13, 22, + 72, 2,184,255,232, 64, 60, 13, 22, 72, 13,111, 10,127, 10, 2, 10, 10, 8, 12, 71, 17, 3, 5, 16, 3, 17, 64, 2,208, 2,224, + 2, 3, 2, 2, 93, 17, 1, 79, 17, 1, 17, 17, 18, 19, 17, 12, 78, 14, 0, 11, 3, 8, 4, 1, 9, 1, 9, 1, 6, 14, 21, 4, + 78, 6, 0, 0, 63,225, 63, 18, 57, 57, 47, 47, 18, 23, 57, 16,225, 50, 17, 18, 1, 57, 47, 93, 93, 51, 47, 93, 17, 23, 51, 16, +225, 50, 50, 47, 93, 50, 49, 48, 0, 43, 43, 16,125,135,196,196, 16,135,196,196, 0, 93, 93, 1, 7, 39, 55, 17, 37, 53, 33, 17, + 55, 23, 7, 17, 5, 21, 33, 53, 37, 2, 20,141, 78,219,254,244, 1,195,164, 77,241, 1, 96,252,145, 1, 88, 2, 80, 92,121,143, + 2,137, 21,122,253, 95,108,121,159,253,200, 20,123,123, 20, 0,255,255, 0,135, 0, 0, 4, 68, 7,115, 2, 38, 0, 49, 0, 0, + 1, 7, 0,118, 0, 98, 1, 82, 0, 19, 64, 11, 1, 22, 5, 38, 1, 99, 16, 19, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,160, 0, 0, 4, 45, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 0,118,111, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1,111, 17, 20, + 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,254, 59, 4, 68, 5,182, 2, 38, 0, 49, 0, 0, 1, 6, 2, 57,206, 0, + 0, 21,180, 1, 18, 20, 39, 1,184,255,207,180, 16, 19, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254, 59, 4, 45, + 4, 94, 2, 38, 0, 81, 0, 0, 1, 6, 2, 57,228, 0, 0, 21,180, 1, 19, 23, 39, 1,184,255,228,180, 17, 20, 7, 15, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,135, 0, 0, 4, 68, 7,115, 2, 38, 0, 49, 0, 0, 1, 7, 1, 76,255,253, 1, 82, 0, 21, +180, 1, 20, 5, 38, 1,184,255,254,180, 24, 16, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, 0, 0, 4, 45, 6, 33, + 2, 38, 0, 81, 0, 0, 1, 6, 1, 76, 12, 0, 0, 19, 64, 11, 1, 21, 17, 38, 1, 12, 25, 17, 7, 15, 37, 1, 43, 53, 0, 43, + 53, 0, 0, 2,255,240, 0, 0, 4,106, 5,182, 0, 6, 0, 24, 0, 55, 64, 30, 7, 71, 24, 26, 17, 13, 71, 47, 14, 1, 14, 6, + 1,252, 3, 4, 17, 10, 80, 21, 16, 15, 15, 24, 14, 21, 3,253, 6, 0, 0, 63,237, 63, 51, 63, 63,225, 50, 1, 47, 51,237, 50, + 47, 93,225, 50, 16,222,225, 49, 48, 1, 23, 6, 3, 35, 54, 19, 1, 17, 16, 35, 32, 17, 17, 35, 17, 51, 23, 51, 54, 54, 51, 32, + 17, 17, 1, 27, 14, 50,126,137, 60, 40, 3, 96,219,254,227,182,148, 26, 10, 42,173,103, 1,110, 5,182, 22,197,254,230,242, 1, + 3,250, 74, 2,195, 1, 4,254,114,253,199, 4, 74,148, 78, 90,254,111,253, 51, 0, 1, 0,135,254,123, 4, 68, 5,182, 0, 24, + 0, 98,181, 24, 8, 14, 24, 72, 7,184,255,240, 64, 54, 16, 24, 72, 69, 7, 85, 7,101, 7, 3, 52, 7, 1, 21, 7, 37, 7, 2, + 6, 7, 1, 19, 19, 5, 24, 8, 12,251, 13, 26, 7, 1, 4,251, 0, 5,224, 5,240, 5, 3, 5, 22, 95, 20, 17, 12, 0, 6, 3, + 24, 8, 5, 18, 0, 63, 51, 51, 63, 51, 51, 47, 51,225, 1, 47, 93,225, 50, 50, 16,222,225, 50, 50, 17, 57, 47, 49, 48, 93, 93, + 93, 93, 43, 43, 1, 35, 18, 21, 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 17, 20, 6, 35, 34, 39, 53, 22, 51, 50, 53, 1, 41, 8, + 18,172,213, 2, 66, 10, 18,174,200,187, 94, 62, 77, 81,211, 4,186,254,235,140,252,231, 5,182,251,152, 1, 18,129, 2,213,250, + 94,198,211, 24,160, 20,225, 0, 0, 1, 0,160,254, 20, 4, 45, 4, 94, 0, 24, 0, 60, 64, 35, 14, 14, 1, 19, 71,144, 10,160, + 10, 2, 10, 26, 4, 0, 71, 0, 1,176, 1, 2, 1, 17, 80, 15, 12, 27, 4, 22, 80, 7, 16, 2, 15, 1, 21, 0, 63, 63, 63,225, + 50, 63, 51,225, 1, 47, 93,225, 50, 16,222, 93,225, 17, 57, 47, 49, 48, 33, 35, 17, 51, 23, 51, 54, 51, 32, 17, 17, 16, 33, 34, + 39, 53, 22, 51, 50, 53, 17, 16, 35, 32, 17, 1, 86,182,147, 27, 10,103,233, 1,133,254,221, 81, 52, 54, 61,127,238,254,205, 4, + 74,148,168,254,111,252,149,254,178, 25,148, 21,170, 3,109, 1, 4,254,114, 0,255,255, 0, 84,255,236, 4,123, 6,193, 2, 38, + 0, 50, 0, 0, 1, 7, 1, 77, 0, 4, 1, 82, 0, 19, 64, 11, 2, 22, 5, 38, 2, 2, 20, 21, 2, 7, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,115,255,236, 4, 88, 5,111, 2, 38, 0, 82, 0, 0, 1, 6, 1, 77, 0, 0, 0, 19, 64, 11, 2, 22, 17, 38, + 2, 0, 20, 21, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 64, 2, 38, 0, 50, 0, 0, 1, 7, + 1, 78,255,255, 1, 82, 0, 21,180, 2, 23, 5, 38, 2,184,255,254,180, 25, 20, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,115,255,236, 4, 88, 5,238, 2, 38, 0, 82, 0, 0, 1, 6, 1, 78, 0, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 0, 25, 20, + 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 83, 0, 80, + 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 78, 20, 31, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115, +255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 83, 82, 0, 0, 23, 64, 13, 3, 2, 26, 17, 38, 3, 2, 82, 20, 31, + 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 20,255,236, 4,203, 5,205, 0, 19, 0, 28, 0, 73, 64, 41, 14, 18, + 90, 16, 20, 1, 20, 16, 20, 16, 6, 12, 0, 30, 25, 90, 6, 17, 95,104, 14, 1, 14, 14, 19, 12, 95, 11, 3, 23, 95, 8, 4, 27, + 95, 4, 19, 19, 95, 0, 18, 0, 63,225, 63,225, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47,225, 16,206, 50, 17, 57, 57, 47, 47, + 93,225, 50, 49, 48, 33, 33, 7, 6, 35, 32, 17, 16, 33, 50, 23, 33, 21, 33, 17, 33, 21, 33, 17, 33, 37, 17, 38, 35, 32, 17, 16, + 33, 50, 4,203,253,194, 48, 51, 46,254, 24, 2, 0, 82, 72, 2, 29,254,114, 1,103,254,153, 1,142,253,192, 58, 73,254,201, 1, + 53, 70, 10, 10, 2,243, 2,238, 23,164,254, 60,162,253,248, 12, 4, 88, 33,253,180,253,178, 0, 0, 3, 0, 57,255,236, 4,150, + 4, 94, 0, 26, 0, 36, 0, 41, 0,108, 64, 41, 10, 0, 41, 17, 71, 16, 29, 64, 29, 80, 29,112, 29,128, 29,176, 29,192, 29,208, + 29, 8, 29, 29, 5, 37, 70, 22, 16, 64, 10, 22, 72, 11, 16, 1, 16, 43, 34, 71, 5,184,255,192, 64, 24, 18, 24, 72, 5, 17, 80, + 41, 41, 27, 39, 10, 31, 80, 12, 8, 16, 19, 0, 27, 80, 24, 21, 2, 22, 0, 63, 51, 51,225, 50, 50, 63, 51,225, 50, 50, 18, 57, + 47,225, 1, 47, 43,225, 16,222, 93, 43, 50,225, 17, 57, 47, 93,225, 50, 57, 57, 49, 48, 37, 6, 35, 34, 2, 17, 16, 18, 51, 50, + 23, 54, 51, 50, 18, 21, 21, 33, 18, 51, 50, 55, 21, 6, 35, 34, 38, 37, 50, 17, 16, 35, 34, 6, 21, 20, 22, 1, 16, 35, 34, 3, + 2,139, 88,178,146,182,176,154,171, 89, 84,158,131,154,254, 73, 3,186,108, 96, 94,123, 87,143,254,228,168,170, 90, 78, 79, 2, +179,123,125, 12,201,221, 1, 51, 1, 8, 1, 12, 1, 43,217,217,254,245,224,113,254,137, 76,162, 73,118, 33, 1,154, 1,170,206, +210,211,209, 2, 19, 1, 49,254,207, 0,255,255, 0,186, 0, 0, 4,147, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 0,118, 0, 29, + 1, 82, 0, 21,180, 2, 27, 5, 38, 2,184,255,221,180, 21, 24, 2, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 1, 8, 0, 0, + 4, 35, 6, 33, 2, 38, 0, 85, 0, 0, 1, 6, 0,118, 92, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 45, 17, 20, 8, 0, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,186,254, 59, 4,147, 5,182, 2, 38, 0, 53, 0, 0, 1, 6, 2, 57,253, 0, 0, 21,180, 2, + 23, 20, 39, 2,184,255,189,180, 21, 24, 2, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,187,254, 59, 4, 35, 4, 94, 2, 38, + 0, 85, 0, 0, 1, 7, 2, 57,254,216, 0, 0, 0, 38, 64, 17, 1, 19, 23, 39, 1, 95, 17, 1, 63, 17, 1, 31, 17, 1, 15, 17, + 1,184,254,169,180, 17, 20, 8, 0, 37, 1, 43, 93, 93, 93, 93, 53, 0, 43, 53,255,255, 0,186, 0, 0, 4,147, 7,115, 2, 38, + 0, 53, 0, 0, 1, 7, 1, 76,255,226, 1, 82, 0, 21,180, 2, 25, 5, 38, 2,184,255,162,180, 29, 21, 2, 9, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 1, 8, 0, 0, 4, 35, 6, 33, 2, 38, 0, 85, 0, 0, 1, 6, 1, 76, 12, 0, 0, 21,180, 1, 21, 17, + 38, 1,184,255,221,180, 25, 17, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, 2, 38, 0, 54, + 0, 0, 1, 7, 0,118, 0, 96, 1, 82, 0, 19, 64, 11, 1, 38, 5, 38, 1, 96, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,203,255,236, 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 0,118, 94, 0, 0, 19, 64, 11, 1, 38, 17, 38, 1, 94, + 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 1, 75, + 0, 20, 1, 82, 0, 19, 64, 11, 1, 32, 5, 38, 1, 20, 38, 32, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,203,255,236, + 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 75, 23, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1, 23, 38, 32, 0, 27, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0,141,254, 20, 4, 63, 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 0,122,234, 0, 0, 14,185, 0, + 1,255,235,180, 32, 44, 0, 27, 37, 1, 43, 53,255,255, 0,203,254, 20, 4, 2, 4, 94, 2, 38, 0, 86, 0, 0, 1, 6, 0,122, +247, 0, 0, 17,177, 1, 1,184,255,247,180, 32, 44, 0, 27, 37, 1, 43, 53, 0, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, + 2, 38, 0, 54, 0, 0, 1, 7, 1, 76, 0, 31, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 31, 40, 32, 0, 27, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,203,255,236, 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 76, 10, 0, 0, 19, 64, 11, 1, 36, + 17, 38, 1, 10, 40, 32, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102,254, 59, 4,100, 5,182, 2, 38, 0, 55, 0, 0, + 1, 6, 2, 57,222, 0, 0, 21,180, 1, 10, 20, 39, 1,184,255,223,180, 8, 11, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,139,254, 59, 4, 2, 5,111, 2, 38, 0, 87, 0, 0, 1, 6, 2, 57, 6, 0, 0, 19, 64, 11, 1, 22, 23, 39, 1, 37, 20, 23, + 7, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, 2, 38, 0, 55, 0, 0, 1, 7, 1, 76,255,255, + 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 0, 16, 8, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,139,255,236, 4, 16, + 6, 20, 2, 38, 0, 87, 0, 0, 1, 7, 2, 56, 1, 49, 0, 0, 0, 17,177, 1, 1,184, 1, 81,180, 20, 24, 7, 13, 37, 1, 43, + 53, 0, 53, 0, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 15, 0, 89, 64, 51, 9, 9, 11, 5, 5, 7, 11, 90, 12, 14, 14, 2, + 0,208, 12, 1,162, 12, 1,147, 12, 1, 3,142, 12, 1, 4, 99, 12, 1, 5, 16, 12, 80, 12, 2, 12, 10, 14, 96, 7, 15, 15, 3, + 11, 18, 6, 2, 95, 3, 3, 0, 63,225, 50, 63, 18, 57, 47, 51,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93, 51,196, 57, + 47, 16,241, 50,192, 47, 17, 57, 47, 49, 48, 1, 17, 33, 53, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 2, 8,254, 94, 3, +254,254, 95, 1, 38,254,218,187,254,215, 3, 51, 1,223,164,164,254, 33,149,253, 98, 2,158,149, 0, 1, 0,139,255,236, 4, 2, + 5,111, 0, 27, 0,112, 64, 67, 22, 18, 20, 16, 24, 71, 5, 7, 5, 32, 11, 1, 11, 11, 13, 9, 47, 5, 63, 5,127, 5,143, 5, +207, 5,223, 5, 6, 0, 5, 1, 5, 5, 28, 29, 18, 18,127, 1,143, 1,175, 1, 3, 1, 29, 6, 23, 78, 9, 20, 20, 26, 10, 19, + 78, 15, 13, 12, 16, 15, 26, 80, 0, 3, 22, 0, 63, 51,225, 63, 51, 51, 51,225, 50, 18, 57, 47, 51,225, 50, 1, 16,206, 93, 50, + 47, 17, 18, 57, 47, 93, 93, 51, 51, 51, 47, 93, 18, 57, 16,225, 50, 50, 17, 57, 49, 48, 37, 21, 6, 35, 32, 17, 53, 35, 53, 51, + 53, 33, 53, 37, 19, 51, 17, 33, 21, 33, 21, 33, 21, 33, 21, 20, 51, 50, 3,252,130,122,254,150,162,162,254,245, 1, 11, 77,105, + 1,182,254, 74, 1, 51,254,205,192, 93,150,138, 32, 1, 88,251,138,248, 94, 49, 1, 31,254,219,137,248,138,251,195, 0,255,255, + 0,125,255,236, 4, 80, 7, 53, 2, 38, 0, 56, 0, 0, 1, 7, 1, 82, 0, 6, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 5, + 16, 25, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,227, 2, 38, 0, 88, 0, 0, 1, 6, 1, 82, + 2, 0, 0, 19, 64, 11, 1, 18, 17, 38, 1, 1, 19, 28, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, + 6,193, 2, 38, 0, 56, 0, 0, 1, 7, 1, 77, 0, 0, 1, 82, 0, 21,180, 1, 17, 5, 38, 1,184,255,255,180, 15, 16, 6, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,111, 2, 38, 0, 88, 0, 0, 1, 6, 1, 77, 2, 0, 0, 19, + 64, 11, 1, 20, 17, 38, 1, 1, 18, 19, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7, 64, 2, 38, + 0, 56, 0, 0, 1, 7, 1, 78,255,255, 1, 82, 0, 21,180, 1, 18, 5, 38, 1,184,255,255,180, 20, 15, 6, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,238, 2, 38, 0, 88, 0, 0, 1, 6, 1, 78, 0, 0, 0, 19, 64, 11, 1, 21, + 17, 38, 1, 0, 23, 18, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,217, 2, 38, 0, 56, 0, 0, + 1, 7, 1, 80, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 15, 5, 38, 2, 1, 1, 18, 24, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0,160,255,236, 4, 45, 6,135, 2, 38, 0, 88, 0, 0, 1, 6, 1, 80,253, 0, 0, 25,182, 2, 1, 18, 17, 38, + 2, 1,184,255,252,180, 21, 27, 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, + 0, 56, 0, 0, 1, 7, 1, 83, 0, 76, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 75, 15, 26, 6, 0, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 1, 83, 80, 0, 0, 23, 64, 13, + 2, 1, 24, 17, 38, 2, 1, 79, 18, 29, 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,254, 57, 4, 80, 5,184, + 2, 38, 0, 56, 0, 0, 1, 6, 1, 81, 27, 0, 0, 14,183, 1, 1, 27, 21, 15, 6, 0, 37, 1, 43, 53, 0, 53,255,255, 0,160, +254, 57, 4,100, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 1, 81, 1, 53, 0, 0, 0, 23, 64, 14, 1, 1, 16, 26, 1, 0, 26, 1, + 0, 26, 26, 0, 0, 37, 1, 43, 93, 93, 53, 0, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, + 1, 75, 0, 2, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1, 2, 32, 26, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, + 0, 0, 4,209, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 1, 75,253, 0, 0, 21,180, 1, 26, 17, 38, 1,184,255,253,180, 32, 26, + 7, 24, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 1, 75,255,255, + 1, 82, 0, 19, 64, 11, 1, 9, 5, 38, 1, 0, 15, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, + 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 1, 75, 2, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 3, 29, 23, 0, 9, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, + 2, 1, 13, 5, 38, 2, 1, 2, 15, 19, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, + 2, 38, 0, 61, 0, 0, 1, 7, 0,118, 0, 57, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 58, 10, 13, 1, 0, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,182, 0, 0, 4, 20, 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 0,118, 78, 0, 0, 19, 64, 11, 1, 16, + 17, 38, 1, 79, 10, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7, 55, 2, 38, 0, 61, 0, 0, + 1, 7, 1, 79, 0, 16, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 17, 16, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,182, 0, 0, 4, 20, 5,229, 2, 38, 0, 93, 0, 0, 1, 6, 1, 79, 16, 0, 0, 19, 64, 11, 1, 14, 17, 38, 1, 17, 16, 12, + 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, 2, 38, 0, 61, 0, 0, 1, 7, 1, 76,255,255, + 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 0, 18, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,182, 0, 0, 4, 20, + 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 1, 76, 12, 0, 0, 19, 64, 11, 1, 14, 17, 38, 1, 13, 18, 10, 1, 0, 37, 1, 43, 53, + 0, 43, 53, 0, 0, 1, 1,100, 0, 0, 3,250, 6, 31, 0, 13, 0, 46, 64, 28, 7, 71, 79, 8, 95, 8,191, 8,239, 8,255, 8, + 5, 8, 8, 14, 32, 0, 1, 0, 15, 3, 80, 1, 12, 1, 7, 21, 0, 63, 63, 51,225, 1, 16,206, 93, 18, 57, 47, 93,225, 49, 48, + 1, 7, 38, 35, 34, 6, 21, 17, 35, 17, 52, 54, 51, 50, 3,250, 41,105,122,119, 92,183,180,209,125, 5,252,143, 28, 96,119,251, + 78, 4,176,190,177, 0, 0, 1, 0,215,254, 20, 3,246, 5,203, 0, 31, 0, 82, 64, 42, 22, 30, 22, 30, 33, 0, 14, 7, 14, 7, + 32, 29, 0,111, 13, 14, 14, 16, 31, 13, 1, 13, 13, 32, 33, 13, 0,117, 16, 29, 29, 9, 25,115, 23, 20, 7, 9,115, 7, 4, 27, + 0, 63, 51,225, 63, 51,225, 18, 57, 47, 51,225, 50, 17, 18, 1, 57, 47, 93, 51, 51, 47, 16,225, 50, 18, 57, 57, 47, 47, 17, 18, + 57, 57, 47, 47, 49, 48, 1, 17, 20, 6, 35, 34, 39, 53, 22, 51, 50, 54, 53, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, 7, 38, 35, + 34, 6, 21, 21, 51, 21, 2,156,153,179, 51, 70, 59, 56, 92, 63,194,194,153,179, 97,100, 47, 79, 65, 92, 63,245, 3, 68,252, 63, +190,177, 15,153, 18,102,113, 3,195, 75, 68,137,190,177, 37,141, 28,102,113,145,137, 0,255,255, 0, 33, 0, 0, 4,172, 8,115, + 2, 38, 0, 36, 0, 0, 0, 38, 1, 80, 2,125, 1, 7, 0,118, 0, 72, 2, 82, 0, 82, 64, 48, 4,176, 40, 1, 96, 40, 1, 80, + 40, 1, 64, 40, 1, 40, 68, 3, 2,239, 26, 1,223, 26, 1, 80, 26, 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, 4, + 30, 38, 41, 18, 24, 37, 3, 2,184,255,255,180, 18, 24, 4, 7, 37, 1, 43, 53, 53, 43, 53, 0, 17, 93, 93, 93, 93, 93, 93, 93, + 53, 53, 63, 93, 93, 93, 93, 53,255,255, 0,135,255,236, 4, 2, 8, 0, 2, 38, 0, 68, 0, 0, 0, 38, 1, 80, 0, 0, 1, 7, + 0,118, 0, 94, 1,223, 0, 72, 64, 49, 4,240, 64, 1,239, 64, 1,223, 64, 1,207, 64, 1, 96, 64, 1, 31, 64, 1, 64, 3, 2, +240, 34, 1,224, 34, 1,208, 34, 1, 34, 17, 38, 4, 30, 64, 60, 37, 43, 37, 3, 2, 33, 37, 43, 8, 22, 37, 1, 43, 53, 53, 43, + 53, 0, 43, 93, 93, 93, 53, 53, 17, 93, 93, 93, 93, 93, 93, 53,255,255, 0, 0, 0, 0, 4,186, 7,115, 2, 38, 0,136, 0, 0, + 1, 7, 0,118, 0,213, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2,222, 20, 23, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 45,255,236, 4,162, 6, 33, 2, 38, 0,168, 0, 0, 1, 6, 0,118,113, 0, 0, 19, 64, 11, 3, 58, 17, 38, 3,112, 52, 55, + 32, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 80,255,180, 4,133, 7,115, 2, 38, 0,154, 0, 0, 1, 7, 0,118, 0, 57, + 1, 82, 0, 19, 64, 11, 3, 40, 5, 38, 3, 53, 34, 37, 2, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,170, 4, 88, + 6, 33, 2, 38, 0,186, 0, 0, 1, 6, 0,118, 80, 0, 0, 19, 64, 11, 3, 42, 17, 38, 3, 81, 36, 39, 5, 15, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,141,254, 59, 4, 63, 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 2, 57, 0, 0, 0, 19, 64, 11, 1, 34, + 20, 39, 1, 0, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,203,254, 59, 4, 2, 4, 94, 2, 38, 0, 86, 0, 0, + 1, 6, 2, 57,228, 0, 0, 21,180, 1, 34, 23, 39, 1,184,255,228,180, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, + 1, 27, 4,217, 3,178, 6, 33, 0, 15, 0, 43, 64, 21, 12, 11, 3, 3, 5, 6,149, 1, 0, 0, 17, 3, 11,146, 6, 15, 0, 95, + 0, 2, 0, 0, 47, 93, 50,237, 57, 17, 1, 51, 47, 51,228, 50, 57, 25, 47, 51, 51, 49, 48, 1, 35, 38, 39, 6, 7, 35, 53, 54, + 55, 54, 55, 51, 22, 23, 23, 3,178,121, 85,126,133, 78,120, 25, 34,139, 37,193, 37,139, 59, 4,217, 56,130,136, 50, 27, 29, 38, +155, 79, 79,155, 67, 0, 0, 1, 1, 27, 4,217, 3,178, 6, 33, 0, 15, 0, 43, 64, 21, 5, 4, 12, 12, 10, 9,149, 14, 15, 15, + 17, 12, 14, 9,146, 15, 5, 95, 5, 2, 5, 0, 47, 93,228, 50, 57, 17, 1, 51, 47, 51,228, 50, 57, 25, 47, 51, 51, 49, 48, 1, + 6, 7, 6, 7, 35, 38, 39, 39, 53, 51, 22, 23, 54, 55, 51, 3,178, 25, 34,141, 35,193, 35,141, 59,120, 82,129,122, 89,121, 6, + 6, 29, 38,158, 76, 76,158, 67, 27, 54,133,128, 59, 0, 0, 1, 1, 70, 4,217, 3,133, 5,111, 0, 3, 0, 65, 64, 24, 31, 1, +223, 1,239, 1,255, 1, 4, 1, 1, 5,112, 0,128, 0,208, 0,224, 0,240, 0, 5, 0,184,255,192, 64, 17, 9, 12, 72, 0, 0, + 4, 1,143, 15, 2, 1, 2, 64, 12, 24, 72, 2, 0, 47, 43, 93,225, 17, 1, 51, 47, 43, 93, 17, 51, 47, 93, 49, 48, 1, 33, 21, + 33, 1, 70, 2, 63,253,193, 5,111,150, 0, 1, 1, 57, 4,217, 3,147, 5,238, 0, 11, 0, 76, 64, 18, 6,131, 0, 5, 16, 5, + 32, 5, 96, 5,112, 5,128, 5,160, 5, 7, 5,184,255,192, 64, 32, 21, 24, 72, 5, 5, 11,131, 31, 0,143, 0,175, 0,239, 0, +255, 0, 5, 0, 0, 13, 11, 5,148, 9,143, 15, 3, 95, 3, 2, 3, 0, 47, 93,225,237, 50, 17, 1, 51, 47, 93,225, 51, 47, 43, + 93,225, 49, 48, 1, 6, 6, 35, 32, 3, 51, 22, 22, 51, 50, 55, 3,147, 9,160,136,254,232, 17,109, 7, 79,104,181, 10, 5,238, +127,150, 1, 21, 76, 49,125, 0, 0, 1, 1,252, 5, 0, 2,209, 5,229, 0, 7, 0, 74, 64, 52,230, 6, 1, 6,133, 2,219, 2, + 1,201, 2, 1,173, 2, 1,137, 2, 1, 91, 2, 1, 66, 2, 1, 38, 2, 1, 27, 2, 1, 2, 9, 0,147, 79, 4,111, 4,127, 4, +159, 4,175, 4,207, 4,223, 4,239, 4, 8, 4, 0, 47, 93,237, 17, 1, 51, 93, 93, 93, 93, 93, 93, 93, 93, 16,225, 93, 49, 48, + 1, 50, 21, 20, 35, 34, 53, 52, 2,102,107,107,106, 5,229,114,115,115,114, 0, 0, 2, 1,131, 4,217, 3, 72, 6,135, 0, 11, + 0, 22, 0,141,181,164, 10,180, 10, 2, 10,184,255,224, 64, 9, 12, 15, 72,164, 8,180, 8, 2, 8,184,255,224, 64, 24, 12, 15, + 72,171, 4,187, 4, 2, 4, 32, 12, 15, 72,171, 2,187, 2, 2, 2, 32, 12, 15, 72, 15,184,255,240, 64, 42, 19, 24, 72, 15,131, + 0, 3, 16, 3, 32, 3, 3, 3, 20, 16, 19, 24, 72, 20,131, 9, 24, 12, 8, 21, 24, 72, 12,140, 15, 6, 31, 6, 47, 6,127, 6, +207, 6, 5, 6, 17,184,255,240, 64, 11, 21, 24, 72, 17,140, 15, 0, 95, 0, 2, 0, 0, 47, 93,225, 43,220, 93,225, 43, 1, 16, +222,225, 43,220, 93,225, 43, 49, 48, 43, 93, 43, 93, 43, 93, 43, 93, 1, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 3, 34, 6, + 21, 20, 51, 50, 54, 53, 52, 38, 2, 98,102,121,121,102,101,129,127,103, 49, 63,112, 50, 63, 63, 4,217,116, 99, 99,116,118, 95, + 98,119, 1, 72, 60, 53,113, 60, 53, 53, 60, 0, 0, 1, 1,158,254, 57, 3, 47, 0, 0, 0, 14, 0, 56, 64, 34, 45, 7, 61, 7, + 77, 7, 3, 5, 48, 11, 19, 72, 8, 9, 0, 11,132, 79, 6, 95, 6, 2, 6, 6, 0, 0, 16, 8, 13,142, 32, 3, 1, 3, 0, 47, + 93,225, 47, 17, 1, 51, 47, 51, 47, 93,225, 17, 57, 57, 49, 48, 43, 93, 1, 21, 6, 35, 34, 38, 53, 52, 55, 51, 6, 21, 20, 51, + 50, 3, 47, 73, 83,119,126,190,131,170,127, 66,254,193,113, 23,109, 94,144,108,125,113, 96, 0, 0, 1, 0,254, 4,217, 3,205, + 5,227, 0, 17, 0, 51, 64, 30, 0,130, 0, 1,144, 1,176, 1,192, 1, 4, 1, 1, 9,130, 10, 10, 19, 16,143, 9, 3,148, 7, +143, 0, 15, 12, 1, 12, 0, 47, 93, 51,225,253, 50,225, 17, 1, 51, 47,225, 51, 47, 93,225, 49, 48, 1, 35, 18, 51, 50, 23, 22, + 51, 50, 55, 51, 2, 35, 34, 39, 38, 35, 34, 1,102,104, 25,186, 58,103,102, 34, 80, 26,105, 27,184, 57,100,100, 40, 82, 4,217, + 1, 8, 56, 56,114,254,248, 57, 56, 0, 0, 2, 0,246, 4,217, 3,213, 6, 33, 0, 7, 0, 15, 0, 67, 64, 42, 14, 15,134, 11, + 6, 7,134, 2,135, 64, 3, 80, 3, 2, 3, 3, 10,135, 79, 11, 95, 11,111, 11,175, 11,223, 11, 5, 11, 11, 17, 10, 2,146, 14, + 15, 6, 95, 6, 2, 6, 0, 47, 93, 51,237, 50, 17, 1, 51, 47, 93,225, 51, 47, 93,225,237, 50, 16,237, 50, 49, 48, 19, 54, 55, + 51, 21, 6, 7, 35, 37, 54, 55, 51, 21, 6, 7, 35,246, 94, 80,198,112,160,100, 1,106, 87, 87,199,112,160,101, 4,244,133,168, + 21,173,134, 27,118,183, 21,173,134, 0, 0, 1, 1,223, 4,217, 2,236, 6, 33, 0, 9, 0, 32, 64, 16, 8, 9, 9, 3,133, 4, + 4, 11, 3,146, 15, 8, 95, 8, 2, 8, 0, 47, 93,237, 17, 1, 51, 47,225, 51, 47, 51, 49, 48, 1, 55, 54, 55, 51, 21, 20, 6, + 7, 35, 1,223, 30, 30, 10,199, 99, 61,109, 4,244,107,114, 80, 21, 16,208, 83, 0, 3, 1, 43, 5, 12, 3,160, 6,180, 0, 7, + 0, 16, 0, 24, 0, 87, 64, 57, 6, 7, 2,135, 3, 6, 7, 22, 7, 2, 7, 3, 7, 3, 19, 10,133, 0, 15, 16, 15, 32, 15,224, + 15,240, 15, 5, 15, 15, 23,133, 19, 2,146, 6, 6, 17, 8,147, 21, 79, 13,111, 13,127, 13,159, 13,175, 13,207, 13,223, 13, 7, + 13, 0, 47, 93, 51,237, 50, 57, 47,237, 1, 47,225, 51, 47, 93,225, 18, 57, 57, 47, 47, 93, 16,225, 17, 51, 49, 48, 1, 54, 55, + 51, 21, 6, 7, 35, 39, 50, 21, 20, 6, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, 52, 2, 20, 50, 41,206, 93,122, 82,137, 97, + 56, 41, 96, 2, 20, 97, 97, 96, 5,135,139,162, 20,164,143,108,102, 49, 54,103,102,102,103,103,102, 0,255,255, 0, 33, 0, 0, + 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 84,254, 69,255,151, 0, 24,182, 2, 18, 3, 2, 16, 15, 1,184,254, 68,180, + 15, 19, 4, 7, 37, 1, 43, 93, 53, 0, 63, 53, 0, 1, 1,231, 2, 72, 2,229, 3, 94, 0, 7, 0, 34, 64, 20, 2,150, 48, 6, + 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 8, 9, 0,155, 4, 0, 47,237, 17, 18, 1, 57, 47, 93,237, 49, 48, 1, 50, 21, 20, + 35, 34, 53, 52, 2,102,127,127,127, 3, 94,139,139,139,139, 0,255,255,255,142, 0, 0, 4, 35, 5,184, 2, 38, 0, 40, 0, 0, + 1, 7, 1, 84,253,175,255,151, 0, 33, 64, 13, 1, 15, 3, 1, 32, 12, 1, 16, 12, 1, 0, 12, 1,184,253,151,180, 12, 16, 1, + 0, 37, 1, 43, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,101, 0, 0, 4, 70, 5,184, 2, 38, 0, 43, 0, 0, 1, 7, 1, 84, +253,134,255,151, 0, 33, 64, 13, 1, 15, 3, 1, 32, 12, 1, 16, 12, 1, 0, 12, 1,184,253,133,180, 12, 16, 5, 0, 37, 1, 43, + 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,163, 0, 0, 3,233, 5,184, 2, 38, 0, 44, 0, 0, 1, 7, 1, 84,253,196,255,151, + 0, 24,182, 1, 15, 3, 1, 0, 12, 1,184,253,197,180, 12, 16, 1, 0, 37, 1, 43, 93, 53, 0, 63, 53,255,255,255,124,255,236, + 4,123, 5,205, 2, 38, 0, 50, 0, 0, 1, 7, 1, 84,253,157,255,151, 0, 20,179, 2, 23, 3, 2,184,253,155,180, 20, 24, 2, + 7, 37, 1, 43, 53, 0, 63, 53,255,255,255, 19, 0, 0, 4,170, 5,184, 2, 38, 0, 60, 0, 0, 1, 7, 1, 84,253, 52,255,151, + 0, 20,179, 1, 12, 3, 1,184,253, 52,180, 9, 13, 7, 2, 37, 1, 43, 53, 0, 63, 53,255,255,255,122, 0, 0, 4,135, 5,205, + 2, 38, 1,118, 0, 0, 1, 7, 1, 84,253,155,255,151, 0, 20,179, 1, 29, 3, 1,184,253,152,180, 26, 30, 2, 15, 37, 1, 43, + 53, 0, 63, 53,255,255, 0,241,255,236, 3,248, 6,180, 2, 38, 1,134, 0, 0, 1, 6, 1, 85,198, 0, 0, 18,178, 3, 2, 1, +184,255, 90,180, 27, 31, 10, 5, 37, 1, 43, 53, 53, 53,255,255, 0, 33, 0, 0, 4,172, 5,188, 2, 6, 0, 36, 0, 0,255,255, + 0,135, 0, 0, 4,113, 5,182, 2, 6, 0, 37, 0, 0, 0, 1, 0,246, 0, 0, 4, 47, 5,182, 0, 5, 0, 57, 64, 16, 0, 64, + 18, 22, 72, 0, 7, 3, 90, 80, 4, 1, 0, 4, 1, 4,184,255,192,179, 21, 24, 72, 4,184,255,192, 64, 10, 13, 16, 72, 4, 2, + 95, 5, 3, 3, 18, 0, 63, 63,225, 1, 47, 43, 43, 93,113,225, 16,206, 43, 49, 48, 1, 21, 33, 17, 35, 17, 4, 47,253,129,186, + 5,182,166,250,240, 5,182, 0, 0, 2, 0, 68, 0, 0, 4,135, 5,182, 0, 5, 0, 12, 0,213,185, 0, 9,255,240, 64, 27, 15, + 19, 72,184, 4, 1, 4, 8, 14, 17, 72, 72, 4, 1, 41, 4, 1, 24, 4, 1, 9, 4, 1,183, 5, 1, 5,184,255,248, 64, 32, 14, + 17, 72, 71, 5, 1, 38, 5, 1, 23, 5, 1, 6, 5, 1, 10, 16, 15, 19, 72,232, 4, 1,231, 5, 1, 5, 4, 6, 6, 1, 9,184, +255,240, 64, 84, 20, 24, 72, 87, 9, 1, 71, 9, 1, 37, 9, 1, 6, 9, 22, 9, 2, 9, 96, 2, 1, 2, 10, 16, 20, 24, 72, 88, + 10, 1, 72, 10, 1, 42, 10, 1, 9, 10, 25, 10, 2, 10,128, 1,160, 1,240, 1, 3, 47, 1, 79, 1,111, 1, 3, 1, 91, 6, 1, + 41, 6, 57, 6, 73, 6, 3, 6, 16, 17, 20, 72, 29, 6, 1, 6, 4, 3, 0, 3, 9, 95, 2, 18, 0, 63,225, 57, 57, 63, 51, 93, + 43, 93, 93, 1, 47, 93, 93, 51, 93, 93, 93, 93, 43, 47, 93, 51, 93, 93, 93, 93, 43, 18, 57, 61, 47, 51, 51, 93, 93, 49, 48, 43, + 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 43, 37, 21, 33, 53, 1, 51, 7, 6, 7, 3, 33, 3, 38, 4,135,251,189, 1,194, +187, 95, 51, 37,254, 2,174,252, 52,125,125,133, 5, 49,205,223,110,253, 10, 2,240,155,255,255, 0,217, 0, 0, 4, 35, 5,182, + 2, 6, 0, 40, 0, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, 0, 61, 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, + 2, 6, 0, 43, 0, 0, 0, 3, 0, 84,255,236, 4,123, 5,205, 0, 9, 0, 19, 0, 23, 0, 97, 64, 64,116, 21,132, 21, 2, 47, + 21, 63, 21, 2,123, 20,139, 20, 2, 32, 20, 48, 20, 2, 21, 20, 21, 20, 2, 88, 13, 1, 13, 91, 7, 25, 87, 18, 1, 18, 91, 31, + 2, 47, 2, 2, 2, 23, 96,159, 20,207, 20, 2,104, 20, 1, 20, 20, 10, 16, 95, 4, 4, 10, 95, 0, 19, 0, 63,225, 63,225, 18, + 57, 47, 93, 93,225, 1, 47, 93,225, 93, 16,222,225, 93, 18, 57, 57, 47, 47, 93, 93, 93, 93, 49, 48, 5, 32, 17, 16, 33, 32, 0, + 17, 16, 0, 39, 50, 18, 17, 16, 2, 35, 32, 17, 16, 19, 33, 21, 33, 2,104,253,236, 2, 22, 1, 0, 1, 17,254,236,255,173,161, +163,169,254,175,129, 1,155,254,101, 20, 2,243, 2,238,254,121,254,151,254,151,254,120,163, 1, 34, 1, 44, 1, 47, 1, 29,253, +180,253,178, 2,170,161,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0,255,255, 0,211, 0, 0, 4,174, 5,182, + 2, 6, 0, 46, 0, 0, 0, 1, 0, 33, 0, 0, 4,172, 5,182, 0, 10, 0,190,185, 0, 7,255,240, 64, 27, 15, 19, 72,184, 9, + 1, 9, 8, 14, 17, 72, 72, 9, 1, 41, 9, 1, 24, 9, 1, 9, 9, 1,183, 10, 1, 10,184,255,248, 64, 31, 14, 17, 72, 71, 10, + 1, 38, 10, 1, 23, 10, 1, 6, 10, 1, 2, 16, 15, 19, 72,232, 9, 1,231, 10, 1, 10, 9, 4, 4, 7,184,255,240, 64, 68, 20, + 24, 72, 87, 7, 1, 71, 7, 1, 37, 7, 1, 6, 7, 22, 7, 2, 7, 8, 1, 16, 20, 24, 72, 88, 1, 1, 72, 1, 1, 42, 1, 1, + 9, 1, 25, 1, 2, 1, 47, 0,127, 0,207, 0,239, 0, 4, 0, 4, 16, 17, 20, 72, 4, 16, 11, 14, 72, 29, 4, 1, 4, 9, 3, + 8, 0, 18, 0, 63, 50, 63, 51, 93, 43, 43, 1, 47, 93, 50, 93, 93, 93, 93, 43, 47, 51, 93, 93, 93, 93, 43, 57, 61, 47, 51, 51, + 93, 93, 49, 48, 43, 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 43, 33, 35, 1, 38, 39, 6, 7, 1, 35, 1, 51, 4,172,199, +254,220, 63, 30, 45, 43,254,217,196, 1,231,187, 3,154,199,141,200,134,252, 96, 5,182,255,255, 0,113, 0, 0, 4, 92, 5,182, + 2, 6, 0, 48, 0, 0,255,255, 0,135, 0, 0, 4, 68, 5,182, 2, 6, 0, 49, 0, 0, 0, 3, 0,111, 0, 0, 4, 92, 5,182, + 0, 3, 0, 7, 0, 11, 0, 71, 64, 41, 47, 5, 63, 5, 2, 32, 4, 48, 4, 2, 4, 5, 4, 5, 10, 1, 1, 9, 13, 0, 0, 1, + 0, 0, 10, 7, 95,104, 4, 1, 4, 4, 0, 11, 95, 10, 18, 3, 95, 0, 3, 0, 63,225, 63,225, 17, 57, 47, 93,225, 1, 47, 51, + 47,113, 16,206, 50, 47, 17, 57, 57, 47, 47, 93, 93, 49, 48, 19, 33, 21, 33, 19, 33, 21, 33, 1, 21, 33, 53,152, 3,155,252,101, + 81, 2,248,253, 8, 3,115,252, 19, 5,182,164,254, 60,162,253,248,164,164, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, + 0, 50, 0, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 7, 0, 37, 64, 21, 1, 90, 0, 9, 4, 90, 0, 5,224, 5,240, 5, + 3, 5, 3, 95, 6, 3, 5, 0, 18, 0, 63, 50, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 4, + 70,187,253,183,187, 3,191, 5, 18,250,238, 5,182, 0,255,255, 0,176, 0, 0, 4, 70, 5,182, 2, 6, 0, 51, 0, 0, 0, 1, + 0,131, 0, 0, 4, 72, 5,182, 0, 11, 0,128, 64, 87, 55, 9,215, 9,231, 9,247, 9, 4, 38, 9, 1, 7, 9, 23, 9, 2, 55, + 7,215, 7,231, 7,247, 7, 4, 38, 7, 1, 7, 7, 23, 7, 2, 56, 2,216, 2,232, 2,248, 2, 4, 25, 2, 41, 2, 2, 8, 2, + 1, 8, 2, 2, 0, 6,239, 10,255, 10, 2, 10, 13, 7, 3, 3, 9, 0, 0,240, 0, 2, 0, 3, 7, 95, 4, 8, 2, 2, 4, 3, + 1, 9, 95, 0, 18, 0, 63,225, 57, 63, 57, 61, 47, 51, 16,225, 57, 1, 24, 47, 93, 51, 51, 17, 51, 16,206, 93, 50, 17, 57, 47, + 51, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 51, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21,131, 1,158,254,110, 3,125,253, + 88, 1,133,254,103, 2,248,152, 2,102, 2, 37,147,164,253,238,253,164,164, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, + 0, 55, 0, 0,255,255, 0, 33, 0, 0, 4,170, 5,182, 2, 6, 0, 60, 0, 0, 0, 3, 0, 27,255,236, 4,180, 5,203, 0, 21, + 0, 30, 0, 39, 0,180, 64, 89, 6, 19, 22, 19, 38, 19, 3, 9, 15, 25, 15, 41, 15, 3, 9, 8, 25, 8, 41, 8, 3, 6, 4, 22, + 4, 38, 4, 3, 22, 2, 11, 90, 39, 21,169, 12, 1,154, 12, 1,139, 12, 1, 3,114, 12, 1, 5, 64, 12, 80, 12, 96, 12, 3, 52, + 12, 1, 6, 12, 12, 17, 26, 8, 12, 17, 72, 26, 90, 15, 6, 47, 6, 63, 6,111, 6,143, 6,191, 6,239, 6,255, 6, 8, 6, 41, + 35,184,255,248, 64, 36, 12, 17, 72, 35, 90, 17, 39, 22, 96, 13, 80, 10,224, 10,240, 10, 3, 10, 10, 11, 19, 30, 31, 96, 2, 96, + 21,112, 21,128, 21, 3, 21, 21, 0, 4, 0, 63, 50, 47, 93, 51,225, 50, 63, 51, 47, 93, 51,225, 50, 1, 47,225, 43, 16,222, 93, +225, 43, 18, 57, 47, 95, 93, 93, 95, 93, 95, 93, 93, 93, 51, 51,225, 50, 50, 49, 48, 0, 93, 93, 93, 93, 1, 51, 21, 51, 50, 18, + 21, 20, 2, 35, 35, 21, 35, 53, 35, 34, 2, 53, 52, 18, 51, 51, 19, 51, 50, 54, 53, 52, 38, 43, 3, 34, 6, 21, 20, 22, 51, 51, + 2, 20,166, 47,213,246,253,228, 25,166, 24,230,251,245,213, 47,166, 7,155,172,158,143, 33,166, 32,143,158,172,155, 6, 5,203, +180,254,203,236,236,254,195,225,225, 1, 62,235,235, 1, 54,252, 83,213,187,172,209,209,172,187,213, 0,255,255, 0, 53, 0, 0, + 4,150, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0, 57, 0, 0, 4,150, 5,182, 0, 27, 0,117, 64, 78, 21, 5, 90, 18,169, 6, + 1, 6, 22, 18, 73,139, 6, 1, 3,114, 6, 1, 5, 80, 6, 96, 6, 2, 52, 6, 68, 6, 2, 6, 6, 6, 11, 25, 90, 15, 0, 47, + 0, 63, 0,111, 0,143, 0, 5, 0, 29, 14, 90,144, 11,160, 11,192, 11,208, 11, 4, 11, 21,119, 18,135, 18, 2, 18, 96, 4, 7, + 7, 5, 26, 19, 12, 3, 5, 18, 0, 63, 63, 51, 51, 18, 57, 47, 51,225, 93, 50, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 95, + 93, 93, 95, 93, 95, 93, 43, 93, 51,225, 50, 49, 48, 1, 16, 6, 35, 35, 17, 35, 17, 35, 34, 38, 17, 17, 51, 17, 20, 22, 51, 51, + 17, 51, 17, 51, 50, 54, 53, 17, 51, 4,150,232,227, 17,166, 16,230,229,172,138,149, 16,166, 17,149,137,173, 3,215,254,225,250, +254, 66, 1,190,251, 1, 26, 1,227,254, 33,231,148, 3, 90,252,166,144,231, 1,227, 0, 0, 1, 0, 74, 0, 0, 4,135, 5,205, + 0, 25, 0,119,185, 0, 14,255,232, 64, 78, 10, 20, 72, 14,192, 18,208, 18, 2, 79, 18, 95, 18,127, 18,143, 18,191, 18, 5, 9, + 18, 25, 18, 2, 18, 4, 24, 10, 20, 72, 4, 64, 0, 80, 0, 2, 3, 0, 19, 0, 2, 0, 0, 6, 88, 20, 1, 20, 91, 15, 12, 27, + 87, 24, 1, 24, 91, 3, 31, 6, 47, 6, 2, 6, 22, 95, 9, 4, 0, 14, 18, 3, 3, 95, 17, 2, 18, 0, 63, 51,225, 23, 50, 63, +225, 1, 47, 93, 51,225, 93, 16,222, 50,225, 93, 18, 57, 47, 93, 93, 51, 43,198, 93, 93, 93, 50, 43, 49, 48, 37, 21, 33, 53, 33, + 38, 17, 16, 0, 51, 50, 0, 17, 16, 5, 33, 21, 33, 53, 36, 17, 16, 33, 32, 17, 16, 2, 29,254, 45, 1, 10,254, 1, 24,250,250, + 1, 25,255, 0, 1, 12,254, 43, 1, 4,254,176,254,177,147,147,164,235, 1,170, 1, 56, 1, 92,254,164,254,200,254, 83,232,164, +147,231, 1,187, 1,244,254, 12,254, 69,255,255, 0,225, 0, 0, 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, + 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 2, 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, + 0, 0, 4,170, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 13, 5, 38, 2, 1, 2, + 15, 19, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,121,255,236, 4,154, 6, 33, 2, 38, 1,126, 0, 0, 1, 6, + 1, 84, 16, 0, 0, 21,180, 2, 46, 17, 38, 2,184,255,236,180, 38, 42, 22, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,201, +255,236, 4, 8, 6, 33, 2, 38, 1,130, 0, 0, 1, 6, 1, 84, 96, 0, 0, 19, 64, 11, 1, 40, 17, 38, 1, 93, 32, 36, 14, 24, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254, 20, 4, 45, 6, 33, 2, 38, 1,132, 0, 0, 1, 6, 1, 84, 80, 0, 0, 19, + 64, 11, 1, 25, 17, 38, 1, 79, 17, 21, 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 1,172,255,236, 3,248, 6, 33, 2, 38, + 1,134, 0, 0, 1, 6, 1, 84,247, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 42, 12, 12, 11, 11, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,160,255,236, 4, 59, 6,180, 2, 38, 1,146, 0, 0, 1, 6, 1, 85,253, 0, 0, 25,181, 3, 2, 1, 3, 2, 1,184, +255,245,180, 33, 37, 0, 12, 37, 1, 43, 53, 53, 53, 0, 53, 53, 53, 0, 0, 2, 0,121,255,236, 4,154, 4, 94, 0, 26, 0, 37, + 0, 61, 64, 34, 16, 0, 28, 71, 11,127, 7,143, 7, 2, 7, 39, 33, 72, 0, 22, 1, 22, 16, 9, 35, 80, 11, 14, 14, 19, 22, 0, + 31, 80, 25, 16, 3, 15, 0, 63, 63,225, 50, 63, 51, 17, 51,225, 50, 50, 1, 47, 93,225, 16,220, 93, 50,225, 50, 50, 49, 48, 1, + 51, 54, 55, 51, 6, 17, 17, 20, 51, 50, 55, 21, 6, 35, 34, 39, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 19, 53, 52, 38, 35, 32, + 17, 16, 33, 50, 54, 3, 94, 12, 30, 38,143, 51, 84, 29, 31, 52, 63,159, 40, 12,108,205,195,223,230,206,210, 85,134,147,254,250, + 1, 8,148,127, 3,182,103, 45,166,254,239,254, 93,111, 10,133, 26,167,167, 1, 41, 1, 14, 1, 17, 1, 42,253,182, 15,227,193, +254, 90,254, 98,184, 0, 0, 2, 0,158,254, 20, 4, 80, 6, 31, 0, 19, 0, 38, 0, 81, 64, 46, 42, 31, 1, 0, 17, 15, 29, 1, + 29, 29, 9, 33, 72, 17, 17, 24, 71, 3, 40, 20, 9, 71, 0, 10,176, 10, 2, 10, 0, 28, 80, 29, 29, 6, 14, 9, 27, 22, 80, 20, + 6, 22, 36, 80, 14, 1, 0, 63,225, 63, 51,225, 63, 17, 18, 57, 47,225, 57, 1, 47, 93,225, 50, 16,222,225, 51, 47,225, 18, 57, + 47, 93, 18, 57, 49, 48, 93, 1, 21, 4, 17, 20, 6, 35, 34, 39, 17, 35, 17, 52, 54, 51, 50, 22, 21, 20, 6, 1, 22, 51, 32, 17, + 52, 38, 35, 35, 53, 51, 50, 54, 53, 52, 38, 35, 32, 17, 2,211, 1,125,245,216,186,117,182,238,208,198,236,161,253,231,135,154, + 1, 37,190,159, 94, 70,142,161,134,114,254,248, 3, 61, 6, 48,254,151,205,229, 63,253,233, 6, 52,226,245,210,183,136,182,253, +121, 80, 1, 43,146,165,152,150,126,118,132,254,182, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 15, 0,107, 64, 37, 2, 72, + 3, 5, 0, 3, 68, 10, 84, 10,116, 10,132, 10,180, 10, 5, 10, 10, 6, 14, 8, 9, 12, 72, 14, 16, 15, 32, 15, 48, 15, 3, 15, + 15, 17, 7,184,255,248, 64, 16, 9, 12, 72, 7, 47, 6, 63, 6, 2, 6, 6, 16, 14, 6, 15, 10,184,255,240, 64, 9, 9, 12, 72, + 10, 0, 5, 21, 2, 27, 0, 63, 63, 51, 51, 43, 63, 51, 17, 1, 51, 47, 93, 51, 43, 17, 51, 47, 93, 51, 43, 18, 57, 25, 47, 93, + 57, 51, 51, 16,225, 49, 48, 37, 2, 17, 35, 52, 19, 1, 51, 19, 22, 23, 51, 54, 55, 19, 51, 2,227,110,191,101,254, 55,192,242, + 71, 36, 6, 26, 72,229,189, 63,254,232,254,237,207, 1, 41, 4, 62,253,176,174,146,104,191, 2,105, 0, 0, 2, 0,135,255,236, + 4, 70, 6, 31, 0, 25, 0, 34, 0, 79, 64, 49, 43, 0, 1, 9, 0, 25, 0, 2, 13, 70, 0, 26, 2, 2, 24, 33, 72, 7,239, 18, +255, 18, 2, 18, 36, 28, 72, 0, 24,224, 24,240, 24, 3, 24, 16, 0, 26, 3, 5, 31, 80, 21, 22, 10, 80, 8, 5, 1, 0, 63, 51, +225, 63,225, 17, 23, 57, 1, 47, 93,225, 16,222, 93, 50,225, 17, 57, 47, 57, 57,225, 49, 48, 93, 93, 1, 38, 53, 52, 54, 51, 50, + 23, 7, 38, 35, 34, 6, 21, 20, 22, 23, 4, 17, 20, 0, 35, 34, 36, 53, 16, 37, 4, 17, 20, 22, 51, 32, 17, 52, 2, 45,254,182, +160,199,194, 73,169,159, 74, 86, 84,172, 1,105,254,253,225,213,254,250, 2, 37,254,156,152,130, 1, 39, 3,170,145,203,133,148, +109,145,106, 73, 64, 63,103,100,206,254,200,246,254,240,247,211, 1,116, 44,100,254,192,135,168, 1, 94,244, 0, 0, 1, 0,201, +255,236, 4, 8, 4, 94, 0, 31, 0, 81, 64, 47, 17, 19, 0, 0, 14, 24,127, 9,143, 9, 2, 9, 33, 29, 71, 19, 19, 4, 71, 0, + 14, 1, 14, 17, 2, 80,191, 31, 1,121, 31,137, 31, 2, 31, 31, 6, 27, 80, 25, 22, 16, 6, 80, 8, 11, 22, 0, 63, 51,225, 63, + 51,225, 18, 57, 47, 93, 93,225, 57, 1, 47, 93,225, 51, 47,225, 16,206, 93, 50, 17, 57, 47, 18, 57, 49, 48, 1, 21, 35, 32, 21, + 20, 33, 50, 55, 21, 6, 35, 34, 38, 53, 52, 55, 53, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 21, 20, 33, 3, 72,160,254,211, + 1, 27,196,170,134,243,211,239,237,202,224,189,216,167, 63,161,155,243, 1, 20, 2,135,153,185,180, 86,160, 75,168,151,193, 75, + 11, 66,183,135,156, 76,147, 72,154,166, 0, 1, 0,162,254,111, 4, 43, 6, 20, 0, 28, 0,137, 64, 87, 10, 20, 26, 20, 42, 20, + 3, 6, 9, 22, 9, 38, 9, 3, 11, 25, 27, 25, 43, 25, 3, 25, 2, 2, 16, 16, 9, 14, 72, 16, 70, 14,144, 11, 1, 11, 30, 28, + 5, 72, 0, 22,160, 22, 2, 22,153, 19, 1,123, 19,139, 19, 2,109, 19, 1, 73, 19, 1, 59, 19, 1, 45, 19, 1,121, 8,137, 8, + 2,107, 8, 1, 73, 8, 1, 59, 8, 1, 45, 8, 1, 19, 8, 0, 13,184, 1, 6,180, 2, 28, 80, 0, 0, 0, 63,225, 50, 63, 18, + 57, 57, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 51, 16,222, 93, 50,225, 43, 51, 47, 51, 93, 49, 48, 0, 93, + 93, 19, 33, 21, 0, 0, 17, 20, 22, 23, 22, 22, 21, 20, 7, 35, 54, 53, 52, 38, 39, 38, 38, 53, 16, 0, 37, 6, 35, 33,223, 3, + 70,254,116,254,197,166,229,171,151,121,170,121,103,194,229,209, 1, 66, 1,120,215,137,254,227, 6, 20,141,254,224,254,118,255, + 0,153,129, 39, 30,101,111,149,166,162, 98, 57, 65, 29, 35,223,201, 1, 1, 1,186,247, 12, 0, 0, 1, 0,160,254, 20, 4, 45, + 4, 94, 0, 16, 0, 49, 64, 29, 0, 71,144, 16,160, 16, 2, 16, 18, 11, 6, 71, 0, 7,176, 7, 2, 7, 11, 3, 80, 13, 16, 8, + 15, 7, 21, 0, 27, 0, 63, 63, 63, 63,225, 50, 1, 47, 93,225, 50, 16,222, 93,225, 49, 48, 1, 17, 16, 35, 32, 17, 17, 35, 17, + 51, 23, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,147, 27, 10,102,234, 1,133,254, 20, 4,175, 1, 4,254,114,253,199, 4, + 74,148,168,254,111,251, 71, 0, 0, 3, 0,147,255,236, 4, 57, 5,195, 0, 10, 0, 17, 0, 24, 0, 79, 64, 50, 12, 59, 18, 1, + 6, 40, 18, 1, 18, 72, 9, 26, 11, 39, 19, 55, 19, 2, 19, 71, 0, 3, 1, 3, 19, 79,202, 11,234, 11, 2,152, 11, 1, 47, 11, +255, 11, 2, 11, 11, 22, 15, 80, 6, 4, 22, 80, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 93, 50, + 16,222,225, 93, 95, 93, 50, 49, 48, 5, 34, 2, 17, 16, 18, 51, 50, 18, 17, 16, 1, 33, 2, 2, 35, 34, 6, 1, 33, 18, 18, 51, + 50, 18, 2,100,229,236,228,237,231,238,253, 19, 2, 51, 7,133,143,139,133, 2, 43,253,205, 6,132,142,142,135, 20, 1,127, 1, +110, 1,124, 1,110,254,131,254,147,253, 19, 3, 59, 1, 4, 1, 0,250,254,109,254,234,254,251, 1, 0, 0, 1, 1,172,255,236, + 3,248, 4, 74, 0, 11, 0, 38, 64, 20, 1, 71, 0, 10, 1, 10, 10, 12,111, 5, 1, 5, 13, 5, 3, 80, 8, 22, 0, 15, 0, 63, + 63,225, 51, 1, 16,206, 93, 18, 57, 47, 93,225, 49, 48, 1, 17, 20, 51, 50, 55, 21, 6, 35, 32, 17, 17, 2, 98,193,112,101, 93, +132,254,149, 4, 74,252,250,195, 21,138, 32, 1, 88, 3, 6, 0,255,255, 0,215, 0, 0, 4,139, 4, 74, 2, 6, 0,250, 0, 0, + 0, 1, 0, 61,255,236, 4,160, 6, 33, 0, 31, 0, 85, 64, 51, 13, 1, 27, 24, 14, 27, 14, 0, 18, 20, 18, 36, 18, 2, 6, 18, + 1, 18, 33, 31, 7, 0, 32, 13, 16, 72, 47, 0, 63, 0, 2, 0, 31, 21, 72, 27, 1, 27, 1, 13, 3, 10, 16, 80, 18, 21, 22, 5, + 80, 10, 1, 0, 63,225, 63, 51,225, 17, 23, 57, 93, 63, 1, 47, 93, 43, 51, 51, 17, 51, 93, 93, 17, 18, 57, 57, 17, 51, 17, 51, + 51, 49, 48, 51, 1, 39, 38, 38, 35, 34, 7, 53, 54, 51, 50, 22, 23, 1, 22, 51, 50, 55, 21, 6, 35, 34, 38, 39, 3, 38, 39, 35, + 6, 7, 1, 61, 1,248, 53, 34, 86, 73, 56, 48, 65, 62,142,142, 70, 1, 70, 37, 65, 29, 31, 50, 65, 82, 87, 28,135, 69, 25, 6, + 36, 83,254,244, 4, 59,160,104, 72, 12,145, 17,135,211,252, 41,111, 10,133, 26, 80, 87, 1,162,214,122,138,183,253,188, 0, 1, + 0,160,254, 20, 4, 45, 4, 74, 0, 21, 0, 58, 64, 35, 10, 5, 71,144, 8,160, 8, 2, 8, 23, 0, 18, 71, 0, 19,176, 19, 2, + 19, 18, 27, 0, 5, 10, 15, 4, 2, 80, 13, 22, 9, 21, 20, 6, 15, 0, 63, 51, 63, 63,225, 23, 50, 63, 1, 47, 93,225, 50, 16, +222, 93,225, 50, 49, 48, 1, 16, 51, 50, 54, 53, 17, 51, 17, 35, 39, 35, 6, 35, 34, 39, 22, 21, 17, 35, 17, 51, 1, 86,238,160, +147,182,147, 27, 10, 97,204,173, 75, 6,182,182, 1,135,254,252,186,211, 2, 58,251,182,147,167, 88,153, 87,254,192, 6, 54, 0, + 0, 1, 0, 61, 0, 0, 4, 74, 4, 74, 0, 13, 0,116, 64, 70, 13, 16, 10, 16, 72, 8, 13, 1, 53, 12, 69, 12, 85, 12, 3, 36, + 12, 1, 21, 12, 1, 25, 6, 41, 6, 57, 6, 3, 13,149, 12,165, 12, 2,134, 12, 1, 99, 12,115, 12, 2, 5, 12, 1, 12, 20, 4, + 68, 4,116, 4, 3, 4, 4, 0, 8, 71, 9, 15, 7, 1, 1, 1, 0, 64, 10, 16, 72, 0,184,255,240,182, 0, 4, 13, 21, 8, 0, + 15, 0, 63, 50, 63, 51, 1, 47, 56, 43, 50, 93, 16,222,225, 18, 57, 61, 47, 93, 51, 93, 93, 93, 93, 51, 49, 48, 93, 93, 93, 93, + 93, 43, 19, 51, 19, 18, 23, 51, 54, 18, 17, 51, 16, 2, 7, 35, 61,189,223,110, 11, 6,157,158,183,201,225,187, 4, 74,253,182, +254,223, 69,164, 1,154, 1,114,254,147,254, 22,243, 0, 0, 1, 0,172,254,111, 4, 43, 6, 20, 0, 44, 0,151, 64, 95, 41, 70, + 34, 26, 31, 0,159, 36, 1, 95, 28, 1,159, 0, 1, 28, 0, 36, 36, 0, 28, 3, 22, 17, 70,144, 12, 1, 12, 46, 5, 72, 0, 22, + 1, 22,123, 20, 1,109, 20, 1, 73, 20, 1, 59, 20, 1, 45, 20, 1, 8, 20, 24, 20, 2, 20, 8, 21, 24, 72,121, 9, 1,107, 9, + 1, 73, 9, 1, 59, 9, 1, 45, 9, 1, 20, 9, 14, 35, 26, 2, 79, 47, 44, 1, 44, 44, 14, 37, 34, 80, 35, 0, 14,184, 1, 6, + 0, 63, 63,225, 50, 18, 57, 47, 93,225, 57, 17, 18, 57, 57, 93, 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 16, +222, 93,225, 18, 23, 57, 47, 47, 47, 93, 93, 93, 18, 57, 57, 51,225, 49, 48, 1, 21, 35, 34, 6, 21, 20, 22, 22, 23, 22, 22, 21, + 20, 7, 35, 54, 53, 52, 38, 39, 36, 17, 52, 54, 55, 53, 38, 53, 52, 54, 55, 6, 35, 35, 53, 33, 21, 35, 34, 4, 21, 20, 22, 51, + 3,217,201,207,217, 76,139,179,162,151,121,170,121, 99,188,254, 74,151,132,215,150,185,176,104, 62, 2,252, 69,217,254,217,183, +196, 3,119,137,163,149, 91,105, 56, 32, 29,100,111,149,166,162,100, 53, 65, 29, 68, 1, 90,134,211, 42, 12, 59,220,114,150, 51, + 12,153,153,160,139,113,104, 0,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0, 14,255,236, 4,190, + 4, 74, 0, 20, 0,121, 64, 53, 75, 11, 91, 11,107, 11, 3, 58, 11, 1, 40, 11, 1, 11, 11, 1, 11, 8, 71, 9, 84, 15, 1, 69, + 15, 1, 54, 15, 1, 39, 15, 1, 4, 15, 20, 15, 2, 15, 0, 0, 5, 71, 17, 0, 9, 64, 9, 80, 9, 96, 9, 4, 17,184,255,192, + 64, 23, 18, 22, 72, 9, 17, 9, 17, 21, 22, 12, 16, 7, 10, 80, 13, 15, 9, 21, 19, 80, 0, 3, 22, 0, 63, 51,225, 63, 63,225, + 50, 50, 57, 17, 18, 1, 57, 57, 47, 47, 43, 93, 16,225, 51, 17, 51, 93, 93, 93, 93, 93, 16,225, 51, 93, 93, 93, 93, 49, 48, 37, + 21, 6, 35, 34, 17, 17, 33, 17, 35, 17, 35, 53, 55, 33, 21, 35, 17, 20, 51, 50, 4,160, 52, 85,226,254,109,182,222,138, 4, 38, +210, 90, 46,150,144, 26, 1, 6, 2,190,252, 80, 3,176, 74, 80,154,253, 78,125, 0, 2, 0,158,254, 20, 4, 59, 4, 94, 0, 16, + 0, 27, 0, 53, 64, 31, 22, 72, 12, 64, 21, 24, 72, 12, 29, 17, 1, 4, 71, 0, 5,176, 5, 2, 5, 17, 0, 19, 80, 15, 22, 25, + 80, 9, 16, 4, 27, 0, 63, 63,225, 63,225, 50, 50, 1, 47, 93,225, 50, 50, 16,222, 43,225, 49, 48, 37, 35, 22, 21, 17, 35, 17, + 16, 18, 51, 50, 18, 17, 16, 2, 35, 34, 39, 22, 51, 50, 54, 53, 52, 38, 35, 32, 17, 1, 84, 6, 6,182,253,218,206,248,247,215, +168,113,112,171,144,128,130,144,254,231, 70,174, 97,254,221, 4, 19, 1, 7, 1, 48,254,205,254,252,254,242,254,211,251,100,211, +209,209,207,254,116, 0, 0, 1, 0,172,254,111, 4, 41, 4, 94, 0, 23, 0,103, 64, 66, 12, 3, 70, 1,144, 22, 1, 22, 25, 17, + 72, 0, 8, 1, 8,153, 6, 1,123, 6,139, 6, 2,109, 6, 1, 73, 6, 1, 59, 6, 1, 44, 6, 1, 8, 6, 24, 6, 2,121, 20, +137, 20, 2,107, 20, 1, 73, 20, 1, 59, 20, 1, 44, 20, 1, 6, 20, 0, 15, 81, 13, 10, 16, 0,184, 1, 6, 0, 63, 63, 51,225, + 18, 57, 57, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 16,222, 93, 50,225, 51, 49, 48, 1, 35, 54, 53, 52, + 38, 39, 36, 17, 16, 33, 50, 23, 7, 38, 35, 32, 17, 20, 22, 23, 4, 21, 20, 3,172,166,121,132,163,254, 84, 2, 55,164,158, 62, +158,114,254,145,155,192, 1,102,254,111,163, 99, 60, 59, 28, 71, 1,181, 2, 90, 59,158, 57,254, 72,187,134, 35, 66,186,141, 0, + 0, 2, 0,129,255,236, 4,150, 4, 74, 0, 12, 0, 24, 0, 50, 64, 30, 2, 23, 72, 1,223, 4,239, 4,255, 4, 3, 4, 26, 17, + 72, 0, 10,240, 10, 2, 10, 2, 14, 80, 12, 15, 20, 80, 7, 22, 0, 63,225, 63,225, 50, 1, 47, 93,225, 16,222, 93, 50,225, 57, + 49, 48, 1, 21, 33, 22, 21, 20, 0, 35, 34, 2, 17, 16, 33, 23, 35, 34, 6, 21, 20, 22, 51, 50, 54, 53, 16, 4,150,254,245,178, +254,255,224,221,254, 2, 43, 59, 59,199,168,153,142,139,146, 4, 74,154,195,245,235,254,223, 1, 31, 1, 1, 2, 62,154,195,225, +185,208,191,174, 1, 13, 0, 1, 0,106,255,229, 4, 57, 4, 74, 0, 16, 0, 83, 64, 29, 10, 14, 26, 14, 2, 14, 3, 71,253, 12, + 1, 12, 64, 20, 23, 72, 61, 12, 1, 47, 12, 1, 0, 12, 1, 12, 12, 17, 1,184,255,232, 64, 20, 9, 18, 72, 1, 95, 7, 1, 7, + 18, 15, 2, 13, 80, 16, 15, 7, 5, 80, 10, 22, 0, 63,225, 51, 63,225, 50, 57, 1, 16,206, 93, 50, 43, 18, 57, 47, 93, 93, 93, + 43, 93,225, 51, 93, 49, 48, 1, 21, 33, 17, 20, 51, 50, 55, 21, 6, 35, 32, 17, 17, 33, 53, 55, 4, 57,254, 37,209,107, 84, 84, +136,254,150,254,194,134, 4, 74,154,253,162,215, 20,135, 35, 1, 88, 2,115, 74, 80, 0, 0, 1, 0,160,255,236, 4, 59, 4, 74, + 0, 17, 0, 51,179, 10, 70, 9, 9,184,255,208, 64, 23, 16, 24, 72, 9, 7, 71, 12, 19, 2, 71, 0, 17,176, 17, 2, 17, 4, 80, + 15, 22, 9, 0, 15, 0, 63, 50, 63,225, 1, 47, 93,225, 16,222,225, 51, 43, 16,229, 49, 48, 19, 51, 17, 16, 33, 50, 54, 53, 52, + 39, 51, 22, 21, 16, 2, 35, 32, 17,160,182, 1, 18,150,135, 63,182, 63,230,243,254, 62, 4, 74,253,178,254,133,232,247,237,253, +245,253,254,194,254,210, 2, 6, 0, 2, 0, 74,254, 20, 4,131, 4, 94, 0, 21, 0, 28, 0, 92, 64, 58, 22, 86, 21,102, 21, 2, + 71, 21, 1, 21, 73, 11, 6, 0, 0, 3, 24, 70, 15, 17, 1, 17, 30, 9, 73, 80, 3,144, 3,160, 3,192, 3,208, 3, 5, 47, 3, + 63, 3, 2, 3, 6, 26, 80, 14, 5, 5, 14, 16, 22, 11, 80, 20, 1, 22, 0, 27, 0, 63, 63, 51,225, 50, 63, 51, 47, 16,225, 57, + 1, 47, 93, 93,225, 16,222, 93,225, 17, 57, 47, 51, 51,225, 93, 93, 50, 49, 48, 1, 17, 36, 17, 16, 55, 23, 6, 6, 21, 16, 5, + 17, 16, 33, 50, 18, 21, 16, 2, 7, 17, 17, 36, 17, 16, 35, 34, 21, 2, 12,254, 62,207,120, 97, 68, 1, 32, 1, 25,164,186,250, +223, 1, 49,176,129,254, 20, 1,218, 25, 2, 28, 1, 58,245, 90,129,206,134,254,129, 33, 2, 94, 1,125,254,217,252,254,248,254, +201, 14,254, 38, 2,111, 29, 1,153, 1,142,228, 0, 1, 0, 43,254, 20, 4,141, 4, 78, 0, 30, 0,230, 64, 92, 3, 30, 4, 16, + 20, 15, 17, 2, 17, 0, 30, 4, 19, 20, 15, 18, 1, 18, 16, 19, 20, 15, 20, 3, 0, 30, 4, 30, 6, 30, 22, 30, 38, 30, 3, 73, + 20, 89, 20,201, 20, 3, 21, 17, 1, 6, 17, 38, 17,198, 17, 3, 9, 15, 25, 15, 41, 15, 3, 70, 4, 86, 4,198, 4, 3, 26, 1, + 1, 9, 1, 41, 1,201, 1, 3, 20, 30, 4, 15, 30, 15, 25, 9, 19, 16, 0, 3, 4, 18, 1, 2,184,255,192,181, 13, 16, 72, 2, + 2, 9,184,255,192, 64, 43, 9, 12, 72, 9, 9, 32, 17, 18, 18, 0, 25, 1, 25, 25, 31, 20, 15, 12, 22, 80, 30, 4, 9, 24, 27, + 15, 0, 19, 3, 16, 4, 1, 17, 18, 27, 9, 7, 80, 12, 27, 2, 1, 15, 0, 63, 51, 63,225, 51, 63, 51, 18, 23, 57, 63, 51, 18, + 57, 57,225, 17, 57, 57, 17, 1, 51, 47, 93, 51, 47, 51, 17, 51, 47, 43, 51, 47, 43, 51, 18, 23, 57, 17, 18, 57, 57, 17, 51, 17, + 51, 93, 93, 93, 93, 93, 93, 93, 93, 16,125,135,196,196, 16,135,196,196, 16,135, 8,196, 8,196, 16,135, 8,196, 8,196, 49, 48, + 1, 1, 51, 1, 19, 22, 22, 51, 50, 55, 21, 6, 35, 34, 38, 39, 3, 1, 35, 1, 3, 38, 35, 34, 7, 53, 54, 51, 50, 22, 23, 2, +125, 1, 55,178,254, 95,186, 46, 80, 64, 44, 36, 66, 52,102,135, 71,147,254,158,195, 1,219,180, 68, 84, 29, 34, 53, 76, 81,110, + 55, 1,250, 2, 80,252,248,254, 51,114, 89, 8,139, 19, 90,177, 1,121,253,124, 3, 62, 1,190,168, 10,143, 17,109,139, 0, 1, + 0, 80,254, 20, 4,131, 6, 18, 0, 22, 0,105, 64, 22, 1, 86, 11,102, 11, 2, 71, 11, 1, 11, 73, 21, 12, 12, 16, 3, 70, 8, + 6, 70, 5, 5,184,255,208, 64, 43, 16, 24, 72, 5, 15, 8, 1, 8, 24, 19, 70, 64, 16, 80, 16,144, 16,160, 16,192, 16,208, 16, + 6, 47, 16, 63, 16, 2, 16, 6, 17, 15, 1, 21, 80, 10, 13, 22, 11, 27, 0, 0, 0, 63, 63, 63, 51,225, 50, 63, 51, 1, 47, 93, + 93,225, 16,206, 93, 50, 43, 16,229, 16,225, 17, 57, 47, 51,225, 93, 93, 50, 49, 48, 1, 17, 36, 17, 52, 3, 51, 18, 21, 16, 5, + 17, 35, 17, 38, 2, 17, 17, 51, 17, 16, 5, 17, 2,170, 1, 45, 63,172, 63,254, 39,158,233,211,172, 1, 16, 6, 18,250,115, 28, + 1,152,250, 1, 23,254,236,247,253,201, 26,254, 38, 1,218, 8, 1, 14, 1, 39, 2, 31,253,239,254, 90, 16, 5,143, 0, 0, 1, + 0, 90,255,236, 4,117, 4, 74, 0, 31, 0,170, 64, 16, 86, 19,230, 19,246, 19, 3, 71, 19, 1, 54, 19, 1, 19, 18, 18,184,255, +240, 64, 99, 15, 18, 72, 87, 18, 1, 54, 18, 70, 18, 2, 18, 21, 25, 86, 11,102, 11, 2, 71, 11, 1, 11, 73, 8, 8, 30, 16, 73, + 15, 21, 63, 21, 2, 21, 33, 89, 0,233, 0,249, 0, 3, 72, 0, 1, 57, 0, 1, 0, 1, 1, 16, 15, 18, 72, 88, 1, 1, 57, 1, + 73, 1, 2, 1, 3, 73, 48, 30, 64, 30, 80, 30,144, 30,160, 30,192, 30,208, 30, 7, 47, 30, 1, 30, 9, 9, 0, 25, 14, 5, 80, + 23, 28, 22, 18, 0, 15, 0, 63, 50, 63, 51,225, 50, 50, 17, 57, 47, 1, 47, 93, 93,225, 51, 93, 93, 43, 17, 51, 93, 93, 93, 16, +222, 93,225, 17, 57, 47,225, 93, 93, 57, 17, 51, 93, 93, 43, 17, 51, 93, 93, 93, 49, 48, 19, 51, 2, 17, 16, 51, 50, 54, 53, 17, + 51, 17, 20, 22, 51, 50, 17, 16, 3, 51, 18, 17, 16, 33, 34, 39, 35, 6, 35, 32, 17, 16,195,165,104,139, 67, 75,157, 79, 63,139, +105,166,105,254,223,181, 50, 11, 50,181,254,223, 4, 74,254,250,254,208,254,111,142,126, 1, 50,254,206,130,138, 1,145, 1, 50, + 1, 4,254,254,254,204,253,216,178,178, 2, 40, 1, 46,255,255, 1, 3,255,236, 3,248, 5,217, 2, 38, 1,134, 0, 0, 1, 6, + 0,106,185, 0, 0, 23, 64, 13, 2, 1, 16, 17, 38, 2, 1, 23, 18, 22, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0,160,255,236, 4, 59, 5,217, 2, 38, 1,146, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 22, 17, 38, 2, 1,184,255, +248,180, 24, 28, 0, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, + 1, 6, 1, 84, 72, 0, 0, 19, 64, 11, 2, 28, 17, 38, 2, 72, 20, 24, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, +255,236, 4, 59, 6, 33, 2, 38, 1,146, 0, 0, 1, 6, 1, 84, 39, 0, 0, 19, 64, 11, 1, 26, 17, 38, 1, 31, 18, 22, 0, 12, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, 4,117, 6, 33, 2, 38, 1,150, 0, 0, 1, 6, 1, 84, 51, 0, 0, 19, + 64, 11, 1, 40, 17, 38, 1, 49, 32, 36, 30, 21, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 43, 2, 38, + 0, 40, 0, 0, 1, 7, 0,106, 0, 25, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 0, 18, 22, 1, 0, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0, 0, 1, 0, 23,255,236, 4,141, 5,182, 0, 27, 0,125,182, 18, 16, 16,128, 16, 2, 16,184,255,192, 64, + 73, 21, 24, 72, 16, 16, 10, 90, 11,255, 13, 1, 13, 13,224, 11,240, 11, 2, 70, 11, 86, 11, 2, 55, 11, 1, 47, 0, 63, 0, 2, + 11, 0, 1, 11, 0, 11, 0, 28, 5, 90, 23, 29, 9, 95, 64, 18,160, 18,176, 18,208, 18,224, 18,240, 18, 6, 18, 18, 14, 3, 95, + 1, 26, 19, 17, 12, 95, 14, 3, 11, 18, 0, 63, 63,225, 50, 63, 51,225, 17, 57, 47, 93,225, 1, 16,222,225, 18, 57, 57, 47, 47, + 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 47, 43, 93, 50, 49, 48, 37, 53, 22, 51, 50, 53, 53, 52, 35, 35, 17, 35, 17, 33, 53, + 33, 21, 33, 17, 33, 50, 22, 21, 21, 20, 6, 35, 34, 2,152, 68, 67,180,227,244,186,254,213, 3, 73,254,156, 1, 8,187,206,189, +171, 88, 4,160, 21,226,133,231,253, 35, 5, 18,164,164,254,111,193,178,137,196,213, 0,255,255, 0,246, 0, 0, 4, 47, 7,115, + 2, 38, 1, 97, 0, 0, 1, 7, 0,118, 0,109, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 58, 6, 9, 4, 0, 37, 1, 43, 53, + 0, 43, 53, 0, 0, 1, 0,129,255,236, 4,156, 5,203, 0, 23, 0, 68, 64, 39, 7, 64, 20, 24, 72, 7, 1, 7, 1, 13, 18, 25, + 0, 3, 91, 0, 13,240, 13, 2, 13, 3, 95,104, 0, 1, 0, 0, 5, 21, 95, 19, 16, 4, 5, 95, 7, 10, 19, 0, 63, 51,225, 63, + 51,225, 18, 57, 47, 93,225, 1, 47, 93,225, 50, 16,206, 17, 57, 57, 47, 47, 43, 49, 48, 1, 33, 21, 33, 18, 33, 50, 55, 21, 6, + 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, 38, 35, 34, 6, 1, 76, 2,117,253,133, 23, 1,192,130,197,146,212,254,203,254,184, 1, +102, 1, 54,220,163, 78,154,151,188,250, 3, 78,162,253,227, 58,162, 59, 1,136, 1,105, 1, 90, 1,148, 86,156, 78,249,255,255, + 0,141,255,236, 4, 63, 5,203, 2, 6, 0, 54, 0, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0,255,255, + 0,225, 0, 0, 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, + 1, 2, 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,137,255,236, 3,211, 5,182, 2, 6, 0, 45, 0, 0, + 0, 2, 0, 0,255,236, 4,184, 5,182, 0, 24, 0, 32, 0,132, 64, 88, 1, 8, 9, 14, 72, 1,120, 0, 1, 87, 0,103, 0, 2, + 0,250, 14, 12, 8, 20, 24, 72,153, 12,169, 12, 2,120, 12,136, 12, 2, 12, 16, 9, 15, 72, 12, 14, 16, 25, 90, 23, 96, 14,144, + 14,160, 14,224, 14,240, 14, 5, 71, 23, 1, 14, 23, 14, 23, 6, 28,251, 19, 34, 0, 6, 1, 6, 32, 95, 16, 16, 14, 25, 96, 23, + 18, 0, 95, 14, 3, 9, 97, 7, 4, 19, 0, 63, 51,225, 63,225, 63,225, 17, 57, 47,225, 1, 47, 93, 16,214,225, 17, 57, 57, 47, + 47, 93, 93, 16,225, 50, 17, 51, 43, 93, 93, 43, 16,225, 93, 93, 50, 43, 49, 48, 1, 3, 2, 6, 35, 34, 39, 53, 22, 51, 50, 54, + 54, 18, 55, 33, 17, 51, 32, 17, 20, 6, 35, 35, 17, 19, 51, 32, 17, 52, 38, 35, 35, 1,119, 20, 20,127,112, 56, 40, 32, 36, 35, + 53, 25, 41, 3, 1,242, 39, 1,190,228,216,207,166, 45, 1, 12,138,155, 20, 5, 18,253,220,253,195,197, 18,145, 14, 70,184, 3, + 97,214,253,152,254, 94,208,220, 5, 18,251,142, 1, 12,134,120, 0, 2, 0, 66, 0, 0, 4,176, 5,182, 0, 18, 0, 26, 0, 67, + 64, 37, 11, 19, 90, 8, 0, 0, 4, 22,251, 15, 28, 7, 3, 90, 4, 64, 10, 15, 72, 4, 26, 2, 95, 11,104, 7, 1, 7, 7, 9, + 5, 3, 19, 96, 3, 0, 18, 0, 63, 50,225, 63, 51, 57, 47, 93, 51,225, 50, 1, 47, 43,225, 50, 16,214,225, 17, 57, 47, 51,225, + 50, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 22, 21, 20, 6, 35, 39, 51, 32, 17, 52, 38, 35, 35, 2, 37, +254,194,165,165, 1, 62,166, 39,219,227,228,216, 41, 45, 1, 12,138,155, 20, 2,170,253, 86, 5,182,253,152, 2,104,253,152,215, +203,208,220,160, 1, 12,134,120, 0, 1, 0, 23, 0, 0, 4,141, 5,182, 0, 18, 0,105,181, 16, 17,128, 17, 2, 17,184,255,192, + 64, 59, 21, 24, 72, 17, 17, 0, 11, 90, 12,255, 14, 1, 14, 14,224, 12,240, 12, 2, 70, 12, 86, 12, 2, 55, 12, 1, 12, 12, 19, + 6, 90, 5, 20, 18, 13, 95, 15, 10, 95, 48, 0, 64, 0,160, 0,176, 0,208, 0, 5, 0, 0, 12, 15, 3, 6, 12, 18, 0, 63, 51, + 63, 18, 57, 47, 93,225, 16,225, 50, 1, 16,222,225, 18, 57, 47, 93, 93, 93, 51, 47, 93, 16,225, 50, 50, 47, 43, 93, 49, 48, 1, + 33, 50, 22, 21, 17, 35, 17, 52, 35, 35, 17, 35, 17, 33, 53, 33, 21, 33, 1,252, 1, 8,187,206,186,227,244,186,254,213, 3, 73, +254,156, 3,129,193,178,253,242, 1,246,231,253, 35, 5, 18,164,164, 0,255,255, 0,211, 0, 0, 4,174, 7,115, 2, 38, 1,180, + 0, 0, 1, 7, 0,118, 0,156, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, 1, 66, 11, 14, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 27,255,236, 4,176, 7,105, 2, 38, 1,189, 0, 0, 1, 7, 2, 54, 0, 6, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, + 1, 6, 29, 24, 14, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,135,254,127, 4, 70, 5,182, 0, 11, 0, 67, 64, 42, 2, 90, + 0, 3, 16, 3,144, 3,160, 3,192, 3,208, 3, 6, 3, 3, 5, 9, 90, 0, 13, 8, 90, 0, 5,224, 5,240, 5, 3, 5, 10, 6, + 3, 8, 95, 5, 3, 3, 1, 5, 0, 47, 51, 51, 47, 16,225, 63, 51, 1, 47, 93,225, 16,222,225, 17, 57, 47, 93,225, 49, 48, 33, + 33, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4, 70,254,118,176,254,123,187, 2, 73,187,254,127, 1,129, 5,182,250,240, 5, 16, +255,255, 0, 33, 0, 0, 4,172, 5,188, 2, 6, 0, 36, 0, 0, 0, 2, 0,135, 0, 0, 4,111, 5,182, 0, 11, 0, 19, 0, 51, + 64, 29, 15, 91, 3, 8, 21, 5, 12, 90, 0, 0,224, 0,240, 0, 3, 0, 19, 95, 5, 5, 12, 4, 95, 1, 3, 12, 96, 0, 18, 0, + 63,225, 63,225, 18, 57, 47,225, 1, 47, 93,225, 50, 16,222, 50,225, 49, 48, 51, 17, 33, 21, 33, 17, 33, 32, 17, 20, 4, 35, 37, + 33, 32, 17, 52, 38, 35, 35,135, 3,144,253, 43, 1, 16, 2, 29,254,249,251,254,213, 1, 26, 1, 82,171,198,251, 5,182,164,254, + 60,254, 94,208,220,160, 1, 12,133,121,255,255, 0,135, 0, 0, 4,113, 5,182, 2, 6, 0, 37, 0, 0,255,255, 0,246, 0, 0, + 4, 47, 5,182, 2, 6, 1, 97, 0, 0, 0, 2, 0, 6,254,127, 4,197, 5,182, 0, 13, 0, 19, 0,129, 64, 25, 9, 16, 18, 24, + 72, 11, 18, 1, 18, 32, 11, 24, 72, 11, 8, 1, 8, 32, 11, 24, 72, 25, 10, 1, 19,184,255,240, 64, 13, 9, 24, 72, 19, 91, 7, + 16, 90, 10, 20, 7, 1, 10,184,255,192, 64, 37, 10, 24, 72, 2, 10, 1, 7, 10, 7, 10, 5, 12, 1,251, 0, 0, 14, 90, 12, 21, + 4,251, 5, 16, 95, 10, 3, 19, 12, 6, 95, 3, 0, 5, 5, 3, 18, 0, 63, 51, 47, 51, 16,225, 50, 50, 63,225, 1, 47,225, 16, +220,225, 51, 47,225, 17, 18, 57, 57, 47, 47, 93, 43, 93, 16,225, 16,225, 43, 93, 49, 48, 43, 93, 43, 93, 43, 1, 35, 17, 33, 17, + 35, 17, 51, 54, 18, 19, 33, 17, 51, 33, 17, 35, 2, 2, 7, 4,197,177,252,162,176,113,129,174, 12, 2, 80,195,254,131,242, 17, +163,107,254,127, 1,129,254,127, 2, 39,236, 2,204, 1, 88,250,240, 4,106,254,246,253,107,203,255,255, 0,217, 0, 0, 4, 35, + 5,182, 2, 6, 0, 40, 0, 0, 0, 1, 0, 0, 0, 0, 4,205, 5,182, 0, 17, 0,203, 64, 76,103, 9,119, 9,135, 9, 3, 6, + 9, 22, 9, 54, 9, 70, 9, 86, 9, 5, 9, 5, 5, 70, 13, 86, 13,246, 13, 3, 55, 13, 1, 5, 13, 21, 13, 2, 13, 90,104, 0, +120, 0,136, 0, 3, 9, 0, 25, 0, 57, 0, 73, 0, 89, 0, 5, 0, 4, 4,103, 14, 1, 9, 14, 25, 14, 2, 14, 14, 17, 10,103, + 2, 1, 2, 1,184,255,240, 64, 9, 1, 1,103, 16,135, 16, 2, 16, 17,184,255,240, 64, 50, 17,104, 7,136, 7, 2, 7, 8, 16, + 8, 8,104, 11,136, 11, 2, 11, 16, 10, 64, 10, 80, 10,144, 10,160, 10,192, 10,208, 10, 7, 10, 16, 10, 12, 15, 6, 3, 15, 3, + 1, 17, 14, 10, 18, 7, 4, 1, 3, 0, 63, 51, 51, 63, 51, 51, 18, 57, 57, 17, 51, 17, 51, 1, 47, 56, 93, 51, 93, 51, 47, 56, + 51, 93, 47, 56, 51, 93, 51, 47, 56, 50, 93, 17, 18, 57, 47, 93, 93, 51, 17, 51, 93, 93,225, 93, 93, 93, 50, 17, 51, 93, 93, 49, + 48, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, 17, 1, 35, 1,117,254,151,178, 1, 93,155, 1, 86,178,254,156, + 1,115,185,254,162,155,254,155,182, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253, 14, 2,229,253, 27, 2,229,253, + 27, 0, 0, 1, 0,139,255,236, 4, 47, 5,203, 0, 35, 0, 81, 64, 46, 6, 0, 22, 0, 2, 0, 17, 22, 91, 33, 33, 4, 17, 17, + 9, 14, 91, 4, 37, 28, 0, 9, 1, 9, 0, 17, 96,104, 18, 1,159, 18, 1, 18, 18, 12, 27, 25, 96, 30, 4, 12, 96, 10, 7, 19, + 0, 63, 51,225, 63,225, 51, 18, 57, 47, 93, 93,225, 57, 1, 47, 93, 51, 16,222,225, 17, 57, 47, 17, 51, 47,225, 18, 57, 93, 49, + 48, 1, 21, 22, 22, 21, 20, 4, 33, 34, 39, 53, 22, 51, 32, 17, 16, 33, 35, 53, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 33, + 50, 22, 21, 20, 6, 2,190,178,191,254,228,254,251,242,145,184,199, 1, 99,254,118,190,176,180,201,140,118,186,168, 93,194, 1, + 5,209,235,179, 3, 2, 6, 23,182,143,203,233, 79,170, 96, 1, 27, 1, 8,151,148,125,103,122,121,125,150,198,165,137,186, 0, + 0, 1, 0,137, 0, 0, 4, 70, 5,182, 0, 16, 0, 98,185, 0, 15,255,240, 64, 64, 14, 24, 72, 53, 15, 69, 15, 2, 7, 16, 14, + 24, 72, 58, 7, 74, 7, 2, 13, 9, 7, 25, 7, 41, 7, 3, 7, 10,251,224, 9,240, 9, 2, 9,105, 18, 6, 15, 22, 15, 38, 15, + 3, 15, 5, 1,251, 0, 0,224, 0,240, 0, 3, 0, 16, 5, 9, 18, 13, 7, 0, 3, 0, 63, 50, 50, 63, 51, 51, 1, 47, 93,225, + 50, 50, 93, 16,254, 93,225, 50, 93, 50, 49, 48, 93, 43, 93, 43, 19, 51, 17, 20, 7, 7, 51, 1, 51, 17, 35, 17, 52, 19, 35, 1, + 35,137,174, 7, 7, 6, 2, 66,213,172, 18, 8,253,188,215, 5,182,252,224,142,112,150, 4,180,250, 74, 3, 25,140, 1, 21,251, + 70, 0,255,255, 0,137, 0, 0, 4, 70, 7,105, 2, 38, 1,178, 0, 0, 1, 7, 2, 54, 0, 0, 1, 82, 0, 21,180, 1, 19, 5, + 38, 1,184,255,255,180, 22, 17, 0, 8, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,211, 0, 0, 4,174, 5,182, 0, 10, 0,130, + 64, 96, 5, 7, 21, 7, 37, 7,213, 7,229, 7,245, 7, 6, 10, 2, 26, 2, 42, 2,218, 2,234, 2,250, 2, 6, 39, 10, 1, 10, + 7, 7, 3, 90, 0, 4, 96, 4,112, 4,128, 4, 4, 4, 41, 8,217, 8,233, 8,249, 8, 4, 8, 9, 16, 9, 9, 41, 1,217, 1, +233, 1,249, 1, 4, 1,208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0, 7, 2, 8, 5, 3, 4, + 0, 18, 0, 63, 50, 63, 51, 57, 57, 1, 47, 56, 93, 93, 93, 50, 93, 50, 47, 56, 51, 93, 47, 93,225, 50, 17, 51, 93, 49, 48, 0, + 93, 93, 33, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4,174,219,253,186,186,186, 2, 54,206,253,203, 2,229,253, 27, 5,182,253, + 60, 2,196,253, 66, 0, 0, 1, 0, 4,255,233, 4, 70, 5,182, 0, 15, 0,111, 64, 33, 13, 64, 20, 24, 72,173, 13, 1,124, 13, +140, 13,156, 13, 3, 90, 13,106, 13, 2, 45, 13, 61, 13, 77, 13, 3, 11, 13, 27, 13, 2, 5,184,255,240, 64, 16, 9, 24, 72, 4, + 24, 9, 24, 72, 3, 90, 0, 14, 16, 14, 2, 14,184,255,192, 64, 22, 13, 24, 72, 14, 14, 8, 1, 90, 0, 17, 8, 3, 95, 14, 3, + 11, 96, 9, 6, 19, 0, 18, 0, 63, 63, 51,225, 63,225, 1, 47, 16,222,225, 18, 57, 47, 43, 93,225, 49, 48, 43, 43, 93, 93, 93, + 93, 93, 43, 33, 35, 17, 33, 2, 2, 35, 34, 39, 53, 22, 51, 50, 18, 19, 33, 4, 70,187,254,215,117,177,175, 71, 66, 57, 56,102, +110,126, 2,127, 5, 18,252, 47,254,168, 25,150, 25, 1,105, 3,206, 0,255,255, 0,113, 0, 0, 4, 92, 5,182, 2, 6, 0, 48, + 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, 2, 6, 0, 43, 0, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, 0, 50, + 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, 2, 6, 1,110, 0, 0,255,255, 0,176, 0, 0, 4, 70, 5,182, 2, 6, 0, 51, + 0, 0,255,255, 0,129,255,236, 4,156, 5,203, 2, 6, 0, 38, 0, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, 0, 55, + 0, 0, 0, 1, 0, 27,255,236, 4,176, 5,182, 0, 23, 0,162, 64, 9, 8, 13, 24, 13, 2, 13, 1, 20, 20,184,255,224,179, 20, + 24, 72, 20,184,255,224, 64, 89, 15, 18, 72, 7, 20, 7, 20, 14,232, 23, 1, 73, 23, 89, 23, 2, 56, 23, 1, 41, 23, 1, 26, 23, + 1, 9, 23, 1, 23, 0, 0, 25,231, 15, 1, 70, 15, 86, 15, 2, 55, 15, 1, 38, 15, 1, 21, 15, 1, 6, 15, 1, 15, 31, 14, 79, + 14, 95, 14,111, 14, 4, 14, 14, 24,101, 20, 1, 54, 20,230, 20, 2, 37, 20, 1, 13, 1, 20, 3, 0, 10, 95, 8, 5, 19, 14, 0, + 3, 0, 63, 50, 63, 51,225, 17, 23, 57, 93, 93, 93, 17, 1, 51, 47, 93, 51, 93, 93, 93, 93, 93, 93, 17, 51, 47, 51, 93, 93, 93, + 93, 93, 93, 18, 57, 57, 61, 47, 24, 47, 43, 43, 17, 51, 51, 93, 49, 48, 1, 1, 14, 2, 35, 34, 39, 53, 22, 51, 50, 54, 55, 1, + 51, 1, 22, 23, 22, 23, 51, 55, 1, 4,176,254, 84, 76,120,178,126,104, 74, 85, 93,110,121, 54,253,238,204, 1,127, 12, 8, 8, + 9, 2, 39, 1, 56, 5,182,251,250,183,171, 98, 30,185, 45,103,122, 4, 63,252,215, 25, 22, 25, 20,109, 3, 24,255,255, 0, 27, +255,236, 4,180, 5,203, 2, 6, 1,115, 0, 0,255,255, 0, 53, 0, 0, 4,150, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0,135, +254,127, 4,186, 5,182, 0, 11, 0, 58, 64, 34, 3,251, 2, 2, 9, 90,127, 0,143, 0, 2, 0, 13, 8, 90, 0, 5,224, 5,240, + 5, 3, 5, 10, 6, 3, 0, 8, 95, 5, 3, 3, 5, 18, 0, 63, 51, 47, 16,225, 50, 63, 51, 1, 47, 93,225, 16,220, 93,225, 51, + 47,225, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4, 10,176,176,252,125,187, 2, 14,186,166,253,217, 1,129, 5, +182,250,240, 5, 16, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 16, 0, 47, 64, 26, 14, 1, 90, 0, 18, 9, 90, 0, 6,224, + 6,240, 6, 3, 6, 14, 12, 95, 4, 4, 1, 15, 7, 3, 1, 18, 0, 63, 63, 51, 18, 57, 47,225, 51, 1, 47, 93,225, 16,222,225, + 50, 49, 48, 33, 35, 17, 6, 35, 32, 17, 17, 51, 17, 20, 22, 51, 50, 55, 17, 51, 4, 70,187,227,166,254,133,187,103,110,153,219, +187, 2, 86, 90, 1,115, 2, 71,253,209,130,101, 80, 2,198, 0, 0, 1, 0,121, 0, 0, 4, 86, 5,182, 0, 11, 0, 92, 64, 64, +101, 8, 1, 86, 8, 1, 55, 8, 71, 8,247, 8, 3,123, 5,139, 5, 2, 8, 90, 5, 5, 1, 9, 90,192, 0,208, 0, 2, 15, 0, + 63, 0, 2, 0, 13, 4, 90, 0, 1, 16, 1, 48, 1, 64, 1, 80, 1,144, 1,160, 1, 7, 1, 10, 6, 2, 3, 8, 4, 95, 1, 18, + 0, 63,225, 50, 63, 51, 51, 1, 47, 93,225, 16,222, 93, 93,225, 17, 57, 47,225, 93, 93, 93, 93, 49, 48, 33, 33, 17, 51, 17, 51, + 17, 51, 17, 51, 17, 51, 4, 86,252, 35,166,245,166,246,166, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 1, 0, 61,254,127, + 4,205, 5,182, 0, 15, 0,127, 64, 89,101, 12, 1, 86, 12, 1, 55, 12, 71, 12,247, 12, 3,123, 9,139, 9, 2, 12, 90, 9, 9, + 5, 0, 3,251, 0, 2,144, 2,160, 2,176, 2,224, 2,240, 2, 6, 2, 2, 13, 90,191, 0,239, 0,255, 0, 3, 15, 0, 63, 0, +159, 0,175, 0, 4, 0, 17, 8, 90,144, 5,160, 5, 2, 47, 5,111, 5,127, 5, 3, 5, 14, 10, 6, 3, 12, 0, 8, 95, 5, 3, + 3, 5, 18, 0, 63, 51, 47, 16,225, 50, 50, 63, 51, 51, 1, 47, 93, 93,225, 16,221, 93, 93,225, 51, 47, 93,225, 17, 18, 57, 47, +225, 93, 93, 93, 93, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 4, 27,178,176,252, 32,166,246,166, +246,166,166,253,217, 1,129, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 2, 0, 27, 0, 0, 4,117, 5,182, 0, 12, 0, 20, + 0, 59, 64, 33, 5, 13, 90, 31, 0,143, 0,255, 0, 3, 0, 0, 2, 16, 91, 9, 22, 2, 2, 21, 20, 95, 5, 5, 13, 2, 95, 3, + 3, 13, 96, 0, 18, 0, 63,225, 63,225, 18, 57, 47,225, 17, 1, 51, 47, 16,222,225, 17, 57, 47, 93,225, 50, 49, 48, 33, 17, 33, + 53, 33, 17, 51, 32, 4, 21, 20, 4, 33, 39, 51, 32, 17, 52, 38, 35, 35, 1, 70,254,213, 1,229, 68, 1, 14, 1, 35,254,235,254, +254, 94, 98, 1, 82,171,197, 68, 5, 18,164,253,152,218,200,202,226,160, 1, 12,132,122, 0, 3, 0, 96, 0, 0, 4,109, 5,182, + 0, 9, 0, 17, 0, 21, 0, 83, 64, 53, 73, 13, 1, 13,251, 0, 6, 16, 6, 48, 6,112, 6,128, 6,240, 6, 6, 6, 6, 0, 18, +251, 15, 21, 63, 21, 2, 21, 23, 3, 10, 90, 32, 0, 48, 0, 2, 0, 0, 22, 17, 95, 3, 3, 19, 1, 3, 10, 96, 18, 0, 18, 0, + 63, 50,225, 63, 51, 57, 47,225, 17, 1, 51, 47, 93,225, 50, 16,222, 93,225, 17, 57, 47, 93,225, 93, 49, 48, 51, 17, 51, 17, 51, + 32, 17, 20, 4, 35, 39, 51, 32, 17, 52, 38, 35, 35, 1, 17, 51, 17, 96,166, 47, 2, 29,254,249,251, 74, 78, 1, 82,171,198, 47, + 2,193,166, 5,182,253,152,254, 94,208,220,160, 1, 12,133,121,253, 86, 5,182,250, 74, 0, 2, 0,176, 0, 0, 4, 70, 5,182, + 0, 9, 0, 17, 0, 60, 64, 16, 13, 91,239, 6,255, 6, 2, 6, 19, 3, 10, 90, 0, 0, 1, 0,184,255,192, 64, 16, 18, 22, 72, + 0, 0, 18, 17, 95, 3, 3, 1, 3, 10, 96, 0, 18, 0, 63,225, 63, 57, 47,225, 17, 1, 51, 47, 43, 93,225, 50, 16,222, 93,225, + 49, 48, 51, 17, 51, 17, 51, 32, 17, 20, 4, 35, 39, 51, 32, 17, 52, 38, 35, 35,176,186,191, 2, 29,254,249,251,218,201, 1, 82, +171,198,170, 5,182,253,152,254, 94,208,220,160, 1, 12,133,121, 0, 1, 0, 68,255,236, 4, 76, 5,203, 0, 23, 0, 74, 64, 43, +127, 17,143, 17, 2, 17, 17, 11, 19, 16, 91,255, 6, 1, 6, 25, 1, 31, 11, 47, 11, 2, 11, 11, 24, 17, 95,104, 18, 1, 18, 18, + 3, 14, 95, 12, 9, 19, 22, 95, 0, 3, 4, 0, 63, 51,225, 63, 51,225, 17, 57, 47, 93,225, 17, 1, 51, 47, 93, 51, 16,222, 93, +225, 50, 18, 57, 47, 93, 49, 48, 19, 39, 54, 51, 32, 0, 17, 16, 0, 33, 34, 39, 53, 22, 51, 32, 19, 33, 53, 33, 38, 38, 35, 34, +145, 77,161,222, 1, 48, 1, 89,254,170,254,196,212,146,197,131, 1,217, 16,253,139, 2,113, 19,237,190,152, 4,217,156, 86,254, +123,254,176,254,139,254,107, 59,162, 58, 2, 29,162,222,251, 0, 0, 2, 0, 98,255,236, 4,135, 5,205, 0, 18, 0, 30, 0,110, + 64, 43, 28,251, 7, 15, 0, 47, 0, 79, 0, 95, 0,127, 0,143, 0, 6, 0, 64, 21, 24, 72, 0, 0, 3, 22,251, 13, 64, 9, 14, + 72, 13, 32, 6, 55, 2, 1, 2, 90,102, 3, 1, 3,184,255,192, 64, 26, 11, 14, 72, 3, 3, 31, 1, 95,104, 6, 1, 6, 6, 10, + 19, 95, 16, 19, 25, 95, 10, 4, 4, 3, 2, 18, 0, 63, 63, 63,225, 63,225, 17, 57, 47, 93,225, 17, 1, 51, 47, 43, 93,225, 93, + 50, 16,222, 43,225, 18, 57, 47, 43, 93, 51,225, 49, 48, 1, 35, 17, 35, 17, 51, 17, 51, 18, 18, 51, 50, 18, 17, 16, 2, 35, 34, + 2, 5, 50, 54, 17, 16, 38, 35, 34, 6, 17, 16, 22, 1,147,139,166,166,144, 18,175,183,192,183,184,193,190,179, 1,113,106, 95, + 96,105,108, 94, 93, 2,170,253, 86, 5,182,253,152, 1, 93, 1, 34,254,159,254,113,254,115,254,156, 1, 59,152,233, 1,101, 1, +104,228,237,254,161,254,164,242, 0, 2, 0, 57, 0, 0, 4, 18, 5,182, 0, 11, 0, 19, 0,113, 64, 31, 11, 4, 27, 4, 2, 11, + 6, 27, 6, 2, 3, 16, 12, 17, 72, 3, 0, 5, 19, 10, 90,143, 9,159, 9,175, 9, 3, 9, 21, 1,184,255,240,180, 12, 17, 72, + 1, 2,184,255,240,183, 2, 2, 15, 91, 0, 5, 1, 5,184,255,192, 64, 19, 19, 22, 72, 5, 5, 20, 3, 0, 96, 18, 18, 1, 13, + 96, 7, 3, 10, 1, 18, 0, 63, 51, 63,225, 18, 57, 47,225, 50, 17, 1, 51, 47, 43, 93,225, 51, 47, 56, 51, 43, 16,222, 93,225, + 50, 17, 57, 57, 43, 49, 48, 93, 93, 1, 1, 35, 1, 36, 17, 16, 33, 33, 17, 35, 17, 17, 35, 32, 17, 20, 22, 51, 51, 2, 98,254, +178,219, 1,125,254,240, 1,248, 1,116,186,188,254,202,164,154,180, 2, 92,253,164, 2,143, 98, 1, 54, 1,143,250, 74, 2, 92, + 2,187,255, 0,137,148,255,255, 0,135,255,236, 4, 2, 4, 94, 2, 6, 0, 68, 0, 0, 0, 2, 0,143,255,236, 4, 59, 6, 35, + 0, 22, 0, 31, 0, 62, 64, 37, 27, 72, 1, 11, 64, 21, 24, 72, 11, 33, 5, 23, 72, 0, 17,208, 17,224, 17,240, 17, 4, 17, 23, + 5, 29, 80, 8, 8, 0, 25, 80, 14, 22, 1, 0, 1, 0, 63, 50, 63,225, 17, 57, 47,225, 50, 50, 1, 47, 93,225, 50, 16,222, 43, + 50,225, 49, 48, 1, 23, 4, 6, 6, 7, 51, 54, 51, 50, 18, 21, 16, 2, 35, 34, 2, 17, 52, 18, 62, 2, 1, 16, 33, 32, 17, 16, + 35, 34, 6, 4, 16, 33,254,115,205,127, 8, 12,116,220,186,213,250,221,219,250, 62,104,138,202,254,195, 1, 37, 1, 10,240, 95, +177, 6, 35,160, 67, 65,217,210,170,254,249,229,254,252,254,222, 1,104, 1, 63,212, 1, 32,176,106, 57,252,181,253,244, 1,119, + 1,108,127, 0, 0, 3, 0,176, 0, 0, 4, 84, 4, 74, 0, 12, 0, 20, 0, 28, 0, 91,181, 4, 4, 20, 4, 2, 10,184,255,208, + 64, 49, 9, 12, 72, 0, 14, 18, 70, 11, 11, 25, 70, 3, 30, 14, 22, 71, 0, 7,144, 7,160, 7,176, 7, 4, 7, 0, 21, 80,191, + 14, 1,137, 14, 1,120, 14, 1, 14, 14, 22, 13, 80, 8, 15, 22, 80, 7, 21, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 57, + 1, 47, 93,225, 50, 16,222,225, 51, 47,225, 18, 57, 49, 48, 43, 93, 1, 21, 4, 21, 20, 6, 35, 33, 17, 33, 32, 17, 20, 1, 17, + 33, 50, 54, 53, 52, 35, 1, 17, 33, 50, 53, 52, 38, 35, 3, 76, 1, 8,212,208,254, 0, 1,254, 1,131,253, 53, 1, 37,134,114, +217,254,188, 1, 62,254,130,128, 2, 70, 7, 35,223,149,168, 4, 74,254,235,197, 1, 64,254,215, 72, 84,141,254, 62,254,168,180, + 92, 72, 0, 1, 1, 35, 0, 0, 4, 14, 4, 74, 0, 5, 0, 46, 64, 28, 2, 71, 31, 3,111, 3,127, 3,143, 3, 4,127, 0,143, + 0, 2, 3, 0, 3, 0, 6, 7, 1, 80, 4, 15, 2, 21, 0, 63, 63,225, 17, 18, 1, 57, 57, 47, 47, 93, 93,225, 49, 48, 1, 33, + 17, 35, 17, 33, 4, 14,253,203,182, 2,235, 3,176,252, 80, 4, 74, 0, 0, 2, 0, 33,254,131, 4,104, 4, 74, 0, 12, 0, 17, + 0,116, 64, 9, 40, 8, 1, 9, 8, 25, 8, 2, 17,184,255,240,179, 15, 24, 72, 17,184,255,224, 64, 53, 11, 14, 72, 17, 7, 15, + 9, 80, 9,128, 9, 2, 18, 9, 1, 7, 9, 7, 9, 5, 11, 1, 70, 0, 0, 13, 71, 79, 11, 95, 11,111, 11, 3, 11, 19, 4, 71, + 5, 15, 78, 9, 15, 17, 11, 6, 80, 3, 1, 4, 4, 3, 21, 0, 63, 51, 47, 51, 16,225, 50, 50, 63,225, 1, 47,225, 16,220, 93, +225, 51, 47,225, 17, 18, 57, 57, 47, 47, 93, 93, 17, 51, 17, 51, 43, 43, 49, 48, 93, 93, 1, 35, 17, 33, 17, 35, 17, 51, 0, 19, + 33, 17, 51, 33, 17, 35, 2, 3, 4,104,176,253, 25,176, 86, 1, 6, 4, 2, 80,151,254,179,250, 36,198,254,131, 1,125,254,131, + 2, 23, 1,133, 2, 43,252, 80, 3, 36,254, 31,254,189,255,255, 0,133,255,236, 4, 72, 4, 94, 2, 6, 0, 72, 0, 0, 0, 1, + 0, 0, 0, 0, 4,205, 4, 74, 0, 17, 1, 8, 64,140,105, 15,121, 15,137, 15, 3, 75, 15, 91, 15, 2, 41, 15, 57, 15, 2, 26, + 15, 1, 9, 15, 1,102, 6,118, 6,134, 6, 3, 68, 6, 84, 6, 2, 38, 6, 54, 6, 2, 21, 6, 1, 6, 6, 1,166, 6, 1, 6, + 3,247, 10, 1, 86, 10,102, 10, 2, 23, 10, 55, 10, 71, 10, 3, 6, 10, 1, 10, 71,169, 15, 1, 15, 0, 24, 11, 1, 9, 11, 1, + 11, 11, 14, 7,104, 4,120, 4,136, 4, 3, 4, 16, 11, 14, 72, 4, 5, 16, 5, 5,136, 8, 1, 8, 16, 11, 16, 72, 8, 16, 7, + 64, 7, 80, 7,144, 7,160, 7,192, 7,208, 7, 7, 7, 16, 7, 7, 19,103, 17,119, 17,135, 17, 3, 17,184,255,240,180, 11, 14, + 72, 17, 16,184,255,240,181, 16, 16,135, 13, 1, 13,184,255,240,180, 11, 16, 72, 13, 14,184,255,240, 64, 18, 14, 14, 18, 9, 12, + 3, 0, 12, 0, 1, 14, 11, 7, 21, 16, 4, 1, 15, 0, 63, 51, 51, 63, 51, 51, 18, 57, 57, 17, 51, 17, 51, 17, 1, 51, 47, 56, + 51, 43, 93, 51, 47, 56, 51, 43, 93, 17, 51, 47, 56, 93, 51, 43, 93, 51, 47, 56, 51, 43, 93, 17, 18, 57, 47, 93, 93, 51, 51, 93, +225, 93, 93, 93, 93, 50, 50, 93, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, + 17, 1, 35, 1, 1, 51, 2, 23,159, 1, 94,185,254,145, 1,109,195,254,174,159,254,174,195, 1,111,254,143,184, 2, 53, 2, 21, +253,235, 2, 21,253,235,253,203, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21, 0, 1, 0,201,255,236, 4, 8, 4, 94, 0, 32, + 0, 87, 64, 51, 15, 13, 32, 32, 8, 3, 70, 13, 13, 28, 70, 18, 34, 8, 0, 23, 96, 23,112, 23,128, 23, 4, 23, 23, 33, 15, 31, + 80,191, 32, 1,137, 32, 1,120, 32, 1, 32, 32, 10, 26, 80, 24, 21, 22, 7, 5, 80, 10, 16, 0, 63,225, 51, 63, 51,225, 17, 57, + 47, 93, 93, 93,225, 57, 17, 1, 51, 47, 93, 51, 16,222,225, 51, 47,225, 17, 57, 47, 18, 57, 49, 48, 1, 50, 54, 53, 52, 35, 34, + 7, 39, 54, 51, 50, 22, 21, 20, 7, 21, 22, 21, 20, 6, 35, 34, 39, 53, 22, 51, 32, 53, 52, 33, 35, 53, 1,250,172,145,250,134, +175, 63,160,210,205,221,192,227,241,224,235,127,180,186, 1, 27,254,201,150, 2,135, 79, 87,154, 72,147, 76,149,140,186, 57, 11, + 65,207,151,172, 69,166, 86,180,185,153, 0, 1, 0,160, 0, 0, 4, 45, 4, 74, 0, 11, 0,132,185, 0, 9,255,240,179, 18, 24, + 72, 9,184,255,224, 64, 80, 11, 14, 72, 5, 9, 21, 9, 2, 3, 16, 18, 24, 72, 3, 32, 11, 14, 72, 10, 3, 26, 3, 2,139, 8, + 1,105, 8,121, 8, 2,132, 2, 1,102, 2,118, 2, 2, 8,136, 3, 1,105, 3, 1, 3, 6, 70,144, 5,160, 5, 2, 5, 13,135, + 9, 1,102, 9, 1, 9, 2, 0, 70, 0, 11,176, 11, 2, 11, 8, 3, 11, 15, 6, 2, 10, 21, 0, 63, 51, 51, 63, 51, 51, 1, 47, + 93,225, 50, 50, 93, 93, 16,222, 93,225, 50, 93, 93, 50, 49, 48, 0, 93, 93, 93, 93, 1, 93, 43, 43, 93, 43, 43, 1, 17, 7, 1, + 51, 17, 35, 17, 19, 1, 35, 17, 1, 76, 13, 2, 5,233,172, 10,253,254,233, 4, 74,253,100,252, 3,152,251,182, 2,135, 1, 15, +252,106, 4, 74,255,255, 0,160, 0, 0, 4, 45, 6, 23, 2, 38, 1,210, 0, 0, 1, 6, 2, 54, 37, 0, 0, 31, 64, 20, 1, 14, + 17, 38, 1,176, 17, 1,128, 17, 1,112, 17, 1, 36, 17, 12, 10, 4, 37, 1, 43, 93, 93, 93, 53, 0, 43, 53, 0, 0, 1, 0,215, + 0, 0, 4,150, 4, 74, 0, 10, 0,139, 64, 78, 88, 4, 1, 4, 16, 10, 13, 72,230, 2,246, 2, 2,212, 2, 1,150, 2,166, 2, +198, 2, 3,133, 2, 1,118, 2, 1,101, 2, 1, 70, 2, 86, 2, 2, 53, 2, 1, 22, 2, 38, 2, 2, 7, 2, 1, 88, 0, 1, 0, + 16, 10, 13, 72, 6, 10, 1, 9, 5, 1, 0, 1, 1, 4, 3, 12, 10, 2, 6, 71, 0, 7,240, 7, 2, 7,184,255,192, 64, 14, 15, + 20, 72, 7, 5, 10, 2, 3, 7, 3, 21, 8, 0, 15, 0, 63, 50, 63, 51, 23, 57, 1, 47, 43, 93,225, 50, 50, 16,206, 50, 50, 47, + 51, 49, 48, 0, 93, 93, 1, 43, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 43, 93, 1, 51, 1, 1, 35, 1, 17, 35, 17, 51, 17, + 3,145,222,253,241, 2, 54,232,253,221,180,180, 4, 74,253,241,253,197, 2, 45,253,211, 4, 74,253,235, 0, 1, 0, 31,255,242, + 4, 16, 4, 74, 0, 15, 0,206, 64, 11, 12, 32, 20, 24, 72,153, 12,169, 12, 2, 5,184,255,240, 64,111, 21, 24, 72,181, 5, 1, +166, 5, 1,149, 5, 1, 84, 5,100, 5, 2, 50, 5, 66, 5, 2, 4, 5, 20, 5, 36, 5, 3, 4, 32, 12, 24, 72, 9, 4, 25, 4, + 41, 4, 3, 4, 3,153, 3, 1,120, 3,136, 3, 2, 57, 3, 73, 3,105, 3, 3, 3,235, 13,251, 13, 2,202, 13,218, 13, 2,153, + 13,169, 13,185, 13, 3,138, 13, 1, 13, 32, 13, 16, 72, 25, 13, 41, 13, 57, 13, 3, 8, 13, 1, 13,192, 14,208, 14, 2,161, 14, + 1, 16, 14, 32, 14, 48, 14, 3, 14,184,255,192, 64, 25, 15, 18, 72, 14, 14, 8, 1, 71,143, 0, 1, 0, 17, 8, 3, 80, 14, 15, + 11, 79, 9, 6, 22, 0, 21, 0, 63, 63, 51,225, 63,225, 1, 47, 16,222, 93,225, 18, 57, 47, 43, 93, 93, 93, 51, 93, 93, 43, 93, + 93, 93, 93, 51, 93, 93, 93, 17, 51, 93, 43, 49, 48, 93, 93, 93, 93, 93, 93, 43, 93, 43, 33, 35, 17, 33, 2, 2, 35, 34, 39, 53, + 22, 51, 50, 18, 19, 33, 4, 16,182,254,172, 37,178,180, 62, 30, 21, 28,111,135, 36, 2,166, 3,176,254, 19,254, 47, 12,131, 6, + 1,219, 1,244, 0, 1, 0,115, 0, 0, 4, 90, 4, 74, 0, 24, 0,187, 64, 27, 24, 8, 72, 8, 2, 23, 7, 71, 7, 2,234, 8, +250, 8, 2, 8, 8, 17, 20, 72, 8,229, 7,245, 7, 2, 7,184,255,248, 64, 55, 17, 20, 72, 7, 18, 18, 13,218, 23,234, 23,250, + 23, 3, 23, 16, 17, 21, 72, 92, 23,108, 23,124, 23, 3, 58, 23, 74, 23, 2, 25, 23, 41, 23, 2, 23, 1, 73,176, 0, 1, 15, 0, + 1, 0, 26,213, 15,229, 15,245, 15, 3, 15,184,255,240, 64, 48, 17, 21, 72, 83, 15, 99, 15,115, 15, 3, 53, 15, 69, 15, 2, 22, + 15, 38, 15, 2, 15, 12, 73, 0, 13, 16, 13, 64, 13, 80, 13,112, 13,128, 13, 6, 13, 2, 11, 11, 23, 14, 15, 18, 8, 1, 13, 21, + 0, 63, 51, 51, 51, 63, 51, 51, 17, 51, 1, 47, 93,225, 50, 93, 93, 93, 43, 93, 16,222, 93, 93,225, 50, 93, 93, 93, 43, 93, 18, + 57, 61, 47, 51, 43, 93, 51, 43, 93, 49, 48, 93, 93, 33, 35, 17, 6, 7, 6, 7, 3, 35, 3, 38, 39, 17, 35, 17, 51, 19, 22, 23, + 54, 55, 54, 55, 19, 51, 4, 90,151, 8, 25, 22, 13,213,135,213, 8, 60,151,211,215, 25, 48, 5, 48, 10, 11,219,207, 3,129, 27, +100, 85, 38,253,121, 2,135, 25,225,252,127, 4, 74,253,112, 77,191, 13,178, 39, 34, 2,148, 0, 0, 1, 0,160, 0, 0, 4, 45, + 4, 74, 0, 11, 0, 63, 64, 38, 2, 6, 71,144, 5,160, 5, 2, 5, 13, 1, 9, 71, 0, 10,176, 10, 2, 10, 8, 80,191, 1, 1, +137, 1, 1,120, 1, 1, 1, 1, 10, 5, 21, 3, 0, 15, 0, 63, 50, 63, 51, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 50, 16,222, + 93,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1, 86, 2, 33,182,182,253,223,182, 4, 74,254, 57, 1,199, +251,182, 1,233,254, 23, 4, 74,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0,160, 0, 0, 4, 45, + 4, 74, 0, 7, 0, 41, 64, 24, 5, 71,144, 4,160, 4, 2, 4, 9, 0, 71, 0, 1,176, 1, 2, 1, 7, 80, 2, 15, 5, 0, 21, + 0, 63, 50, 63,225, 1, 47, 93,225, 16,222, 93,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 1, 86,182, 3,141,182,253,223, 4, + 74,251,182, 3,176, 0,255,255, 0,158,254, 20, 4, 68, 4, 94, 2, 6, 0, 83, 0, 0,255,255, 0,172,255,236, 4, 37, 4, 94, + 2, 6, 0, 70, 0, 0, 0, 1, 0,121, 0, 0, 4, 82, 4, 74, 0, 7, 0, 60, 64, 37,159, 0,175, 0, 2, 0, 0, 2, 71, 3, +224, 5, 1, 5, 5, 16, 3,144, 3,160, 3,192, 3,208, 3, 5, 3, 3, 8, 9, 1, 5, 80, 6, 15, 2, 21, 0, 63, 63,225, 50, + 17, 18, 1, 57, 47, 93, 51, 47, 93, 16,225, 50, 47, 93, 49, 48, 1, 33, 17, 35, 17, 33, 53, 33, 4, 82,254,111,183,254,111, 3, +217, 3,176,252, 80, 3,176,154,255,255, 0, 82,254, 20, 4,121, 4, 74, 2, 6, 0, 92, 0, 0, 0, 3, 0, 74,254, 20, 4,129, + 6, 20, 0, 13, 0, 18, 0, 23, 0, 93, 64, 59, 20, 0, 86, 5,102, 5, 2, 71, 5, 1, 5, 73, 14, 11, 6, 6, 9, 22, 73, 15, + 2, 1, 2, 25, 17, 73, 80, 9,144, 9,160, 9,192, 9,208, 9, 5, 47, 9, 63, 9, 2, 9, 12, 0, 19, 15, 80, 0, 11, 16, 20, + 14, 80, 4, 7, 22, 5, 27, 0, 63, 63, 51,225, 50, 63, 51,225, 50, 63, 1, 47, 93, 93,225, 16,222, 93,225, 17, 57, 47, 51, 51, +225, 93, 93, 50, 50, 49, 48, 1, 4, 17, 16, 5, 17, 35, 17, 36, 17, 16, 37, 17, 51, 3, 17, 4, 17, 16, 1, 17, 36, 17, 16, 2, +182, 1,203,254, 53,157,254, 49, 1,207,157,157,254,217, 1,196, 1, 35, 4, 90, 50,253,255,253,243, 42,254, 36, 1,220, 45, 2, + 10, 2, 10, 41, 1,186,250,115, 3, 60, 29,254,129,254,126, 3, 28,252,198, 33, 1,127, 1,121,255,255, 0, 96, 0, 0, 4,106, + 4, 74, 2, 6, 0, 91, 0, 0, 0, 1, 0,152,254,131, 4,156, 4, 74, 0, 11, 0, 56, 64, 32, 1, 71, 0, 0, 7, 71,111, 10, +127, 10,143, 10, 3, 10, 13, 6, 71, 0, 3, 1, 3, 8, 4, 15, 10, 6, 80, 3, 1, 1, 3, 21, 0, 63, 51, 47, 16,225, 50, 63, + 51, 1, 47, 93,225, 16,220, 93,225, 51, 47,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 51, 4,156,176,252,172,182, + 1,248,182,160,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 0, 1, 0,152, 0, 0, 4, 37, 4, 74, 0, 16, 0, 47, 64, 25, + 5, 9, 71,144, 8, 1, 8, 18, 1, 71, 0, 15, 1, 15, 10, 5, 3, 80, 12, 12, 8, 21, 6, 0, 15, 0, 63, 50, 63, 57, 47,225, + 50, 50, 1, 47, 93,225, 16,222, 93,225, 50, 49, 48, 1, 17, 20, 51, 50, 55, 17, 51, 17, 35, 17, 6, 35, 34, 38, 53, 17, 1, 78, +205,171,169,182,182,181,200,160,186, 4, 74,254,102,174,115, 1,213,251,182, 1,233,127,175,139, 1,166, 0, 1, 0,125, 0, 0, + 4, 82, 4, 74, 0, 11, 0, 90, 64, 63, 70, 0, 86, 0,102, 0, 3, 0, 73, 9, 9, 5, 55, 1,247, 1, 2, 1, 73,192, 4,208, + 4, 2, 15, 4, 63, 4, 2, 4, 13, 56, 8,248, 8, 2, 8, 73, 0, 5, 16, 5, 48, 5, 64, 5, 80, 5,144, 5,160, 5, 7, 5, + 0, 8, 80, 5, 21, 10, 6, 2, 15, 0, 63, 51, 51, 63,225, 50, 1, 47, 93,225, 93, 16,222, 93, 93,225, 93, 17, 57, 47,225, 93, + 49, 48, 37, 51, 17, 51, 17, 33, 17, 51, 17, 51, 17, 51, 2,184,248,162,252, 43,162,248,161,154, 3,176,251,182, 4, 74,252, 80, + 3,176, 0, 1, 0,109,254,131, 4,184, 4, 74, 0, 15, 0,109, 64, 73, 7, 73, 6, 6, 4, 70, 0, 86, 0,102, 0, 3, 0, 73, + 13, 13, 9, 55, 1,247, 1, 2, 1, 73,239, 4,255, 4, 2,192, 4, 1, 15, 4, 63, 4, 2, 4, 17, 56, 12,248, 12, 2, 12, 73, + 16, 9, 48, 9, 64, 9, 80, 9,144, 9,160, 9, 6, 9, 4, 0, 12, 80, 9, 7, 7, 9, 21, 14, 10, 2, 15, 0, 63, 51, 51, 63, + 51, 47, 16,225, 50, 50, 1, 47, 93,225, 93, 16,220, 93, 93, 93,225, 93, 17, 57, 47,225, 93, 17, 51, 47,225, 49, 48, 37, 51, 17, + 51, 17, 51, 17, 35, 17, 33, 17, 51, 17, 51, 17, 51, 2,168,248,162,118,161,252, 86,161,248,162,154, 3,176,252, 80,253,233, 1, +125, 4, 74,252, 80, 3,176, 0, 0, 2, 0, 43, 0, 0, 4,131, 4, 74, 0, 10, 0, 18, 0, 67, 64, 41, 0, 12, 71,176, 6,192, + 6,208, 6, 3, 6, 6, 8, 15, 73, 3, 20,207, 8,223, 8,239, 8, 3, 8, 11, 80,191, 0, 1, 0, 0, 12, 8, 80, 9, 15, 12, + 80, 6, 21, 0, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47, 93, 16,222,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 51, 32, 17, 16, + 33, 33, 17, 33, 53, 33, 17, 17, 51, 50, 53, 52, 38, 35, 2, 74,153, 1,160,254, 92,254,180,254,152, 2, 31,137,254,118,140, 2, +135,254,201,254,176, 3,176,154,253,164,254,168,172, 90, 82, 0, 0, 3, 0,113, 0, 0, 4, 90, 4, 74, 0, 8, 0, 16, 0, 20, + 0, 99, 64, 66, 73, 13, 89, 13,105, 13, 3, 13, 73, 96, 3,112, 3,128, 3, 3, 6, 3, 1, 3, 3, 6, 55, 18,247, 18, 2, 18, + 73, 56, 17, 1, 17, 22, 0, 56, 10,248, 10, 2, 10, 73, 55, 6, 1, 0, 6, 16, 6, 2, 6, 9, 80,191, 0, 1, 0, 0, 19, 7, + 15, 10, 80, 18, 6, 21, 0, 63, 51,225, 63, 51, 57, 47, 93,225, 1, 47, 93, 93,225, 93, 50, 16,222, 93,225, 93, 17, 57, 47, 93, + 93,225, 93, 49, 48, 1, 51, 32, 17, 16, 33, 33, 17, 51, 17, 17, 51, 50, 53, 52, 38, 35, 1, 35, 17, 51, 1, 18,134, 1,159,254, + 92,254,222,161,138,254,118,140, 2,194,162,162, 2,135,254,201,254,176, 4, 74,253,164,254,168,172, 90, 82,254, 18, 4, 74, 0, + 0, 2, 0,217, 0, 0, 4, 68, 4, 74, 0, 8, 0, 16, 0, 62, 64, 18, 13, 70,239, 3,255, 3, 2, 3, 18, 0, 10, 71, 0, 6, +240, 6, 2, 6,184,255,192, 64, 17, 15, 20, 72, 6, 9, 80,191, 0, 1, 0, 0, 7, 15, 10, 80, 6, 21, 0, 63,225, 63, 57, 47, + 93,225, 1, 47, 43, 93,225, 50, 16,222, 93,225, 49, 48, 1, 33, 32, 17, 16, 33, 33, 17, 51, 17, 17, 33, 50, 53, 52, 38, 35, 1, +143, 1, 21, 1,160,254, 92,254, 57,182, 1, 4,254,118,140, 2,135,254,201,254,176, 4, 74,253,164,254,168,172, 90, 82, 0, 1, + 0,184,255,236, 4, 37, 4, 94, 0, 22, 0,105,182, 54, 1, 1, 57, 12, 1, 20,184,255,224,179, 9, 12, 72, 16,184,255,224, 64, + 49, 9, 12, 72, 7, 7, 0, 8, 5, 72,144, 18, 1, 18, 24, 13, 0, 0,128, 0, 2, 0, 0, 23, 6, 81, 47, 7,191, 7, 2,137, + 7, 1,120, 7, 1, 7, 7, 15, 3, 81, 1, 21, 22, 12, 10, 81, 15, 16, 0, 63,225, 51, 63, 51,225, 17, 57, 47, 93, 93, 93,225, + 17, 1, 51, 47, 93, 51, 16,222, 93,225, 50, 18, 57, 47, 49, 48, 43, 43, 0, 93, 93, 55, 53, 22, 51, 32, 19, 33, 53, 33, 2, 33, + 34, 7, 39, 54, 51, 32, 0, 17, 16, 0, 33, 34,190,163,153, 1, 95, 17,253,230, 2, 24, 27,254,175,108,154, 62,153,179, 1, 11, + 1, 22,254,226,254,247,187, 41,160, 62, 1, 92,154, 1, 61, 57,158, 59,254,220,254,229,254,241,254,220, 0, 2, 0,123,255,236, + 4,141, 4, 94, 0, 15, 0, 27, 0,102, 64, 33, 25, 73, 0,127, 7,143, 7,207, 7,223, 7, 4, 7, 7, 3, 19, 73, 12, 64, 9, + 17, 72, 12, 29, 6, 56, 2,248, 2, 2, 2, 73, 3,184,255,192, 64, 30, 9, 17, 72, 3, 1, 80,191, 6, 1,137, 6, 1,120, 6, + 1, 6, 6, 9, 16, 80, 14, 22, 22, 80, 9, 16, 4, 15, 3, 21, 0, 63, 63, 63,225, 63,225, 17, 57, 47, 93, 93, 93,225, 1, 47, + 43,225, 93, 50, 16,222, 43,225, 18, 57, 47, 93, 51,225, 49, 48, 1, 35, 17, 35, 17, 51, 17, 51, 18, 33, 50, 18, 17, 16, 33, 32, + 37, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1,178,149,162,162,151, 35, 1, 76,171,191,254,144,254,177, 1, 83,103, 93, 92, +106,104, 93, 93, 1,233,254, 23, 4, 74,254, 57, 1,219,254,216,254,241,253,197,151,195,225,218,198,192,224,221,199, 0, 0, 2, + 0,115, 0, 0, 4, 10, 4, 74, 0, 12, 0, 19, 0,111, 64, 36, 2, 8, 15, 18, 72, 41, 2, 1, 24, 2, 1, 9, 2, 1, 2, 12, + 4, 13, 10, 71,127, 9,143, 9, 2, 9, 21, 87, 0,119, 0,135, 0, 3, 0, 1,184,255,240, 64, 32,175, 1, 1, 1, 1, 55, 17, + 1, 17, 71, 0, 4,144, 4,160, 4, 3, 4, 2, 7, 12, 80, 19, 19, 0, 15, 80, 7, 15, 10, 0, 21, 0, 63, 50, 63,225, 18, 57, + 47,225, 17, 57, 1, 47, 93,225, 93, 51, 47, 93, 56, 51, 93, 16,222, 93,225, 50, 17, 57, 57, 93, 93, 93, 43, 49, 48, 33, 35, 1, + 38, 53, 52, 54, 51, 33, 17, 35, 17, 33, 37, 17, 33, 34, 21, 20, 51, 1, 57,198, 1, 35,234,204,173, 1,229,182,254,227, 1, 29, +254,217,211,238, 1,205, 67,248,150,172,251,182, 1,176,154, 1,102,172,186, 0,255,255, 0,133,255,236, 4, 72, 5,217, 2, 38, + 0, 72, 0, 0, 1, 6, 0,106, 18, 0, 0, 23, 64, 13, 3, 2, 27, 17, 38, 3, 2, 17, 29, 33, 11, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0, 0, 1, 0, 4,254, 20, 4, 45, 6, 20, 0, 34, 0, 98, 64, 58, 22, 31, 13, 0, 0, 13, 5, 71,144, 31,160, 31, + 2, 31, 36, 20, 24, 25, 3, 12, 71, 17, 0, 13,176, 13, 2, 13, 3, 80, 33, 27, 25, 8, 80, 28, 23, 15, 79, 16, 20, 16, 0, 28, + 16, 28, 32, 28, 3, 28, 16, 28, 16, 13, 18, 0, 13, 21, 0, 63, 63, 18, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 16,225, 51, 63, +237, 1, 47, 93, 51,225, 23, 50, 16,222, 93,225, 17, 57, 47, 17, 18, 57, 49, 48, 1, 53, 22, 51, 50, 53, 17, 16, 35, 34, 6, 21, + 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 54, 51, 32, 17, 17, 16, 33, 34, 2,133, 54, 61,127,236,162,147,182, +156,156,182, 1,123,254,133, 8, 10,106,228, 1,135,254,221, 81,254, 45,148, 21,170, 3, 68, 1, 4,187,211,253,240, 4,213,137, +182,182,137,184,144,168,254,111,252,190,254,178,255,255, 1, 35, 0, 0, 4, 14, 6, 33, 2, 38, 1,205, 0, 0, 1, 6, 0,118, +104, 0, 0, 19, 64, 11, 1, 12, 17, 38, 1, 54, 6, 9, 3, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,172,255,236, 4, 37, + 4, 94, 0, 22, 0, 93, 64, 58, 54, 1, 1, 57, 12, 1, 11, 20, 27, 20, 2, 11, 16, 27, 16, 2, 7, 7, 18, 0,143, 13, 1, 13, + 24, 5, 8, 72, 0, 18, 1, 18, 8, 81, 47, 5,191, 5, 2,137, 5, 1,120, 5, 1, 5, 5, 10, 3, 81, 1, 21, 16, 10, 81, 12, + 15, 22, 0, 63, 51,225, 63, 51,225, 18, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 50, 16,206, 93, 50, 17, 57, 47, 49, 48, 93, 93, + 0, 93, 93, 1, 7, 38, 35, 32, 3, 33, 21, 33, 18, 33, 50, 55, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 4, 37, 62,150,112,254, +165, 30, 2, 25,253,229, 20, 1, 93,153,162,133,186,254,247,254,226, 1, 35, 1, 12,178, 4, 35,158, 57,254,195,154,254,164, 62, +160, 61, 1, 36, 1, 15, 1, 27, 1, 36,255,255, 0,203,255,236, 4, 2, 4, 94, 2, 6, 0, 86, 0, 0,255,255, 0,197, 0, 0, + 4, 51, 6, 14, 2, 6, 0, 76, 0, 0,255,255, 0,197, 0, 0, 4, 51, 5,217, 2, 38, 0,243, 0, 0, 1, 6, 0,106, 0, 0, + 0, 25,182, 2, 1, 14, 17, 38, 2, 1,184,255,234,180, 16, 20, 7, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135, +254, 20, 3, 86, 6, 14, 2, 6, 0, 77, 0, 0, 0, 2, 0, 0,255,242, 4,156, 4, 74, 0, 22, 0, 30, 0,121, 64, 78,216, 9, +232, 9,248, 9, 3, 9, 16, 17, 21, 72,122, 9, 1, 9, 16, 9, 14, 72, 9, 8, 8, 20, 24, 18, 24, 72, 20, 16, 9, 17, 72, 20, + 21, 0, 24, 71, 6, 96, 21, 1, 21, 6, 21, 6, 14, 27, 73,207, 3,223, 3, 2, 3, 32, 0, 14, 1, 14, 23, 80, 0, 0, 17, 8, + 80, 21, 15, 17, 79, 15, 12, 22, 24, 80, 6, 21, 0, 63,225, 63, 51,225, 63,225, 18, 57, 47,225, 1, 47, 93, 16,214, 93,225, 17, + 57, 57, 47, 47, 93, 16,225, 50, 17, 51, 43, 43, 51, 17, 51, 43, 49, 48, 93, 43, 93, 1, 51, 32, 17, 16, 33, 35, 17, 35, 2, 2, + 6, 35, 34, 39, 53, 22, 51, 50, 54, 18, 19, 33, 17, 17, 51, 50, 53, 52, 38, 35, 2,201, 51, 1,160,254, 92,209,186, 33, 52, 92, + 96, 62, 30, 22, 27, 41, 49, 45, 35, 1,238, 55,254,118,140, 2,135,254,201,254,176, 3,176,254, 38,254,135,107, 12,131, 6, 84, + 1,126, 1,253,253,164,254,168,172, 90, 82, 0, 0, 2, 0,106, 0, 0, 4,172, 4, 74, 0, 16, 0, 24, 0, 86, 64, 25, 5, 56, + 18,248, 18, 2, 18, 73, 2, 11, 11, 15, 21, 73, 8, 26, 1, 56, 14,248, 14, 2, 14, 73, 15,184,255,192, 64, 23, 10, 13, 72, 15, + 15, 21, 17, 13, 80, 5,191, 1, 1, 1, 1, 0, 18, 80, 11, 21, 3, 0, 15, 0, 63, 50, 63,225, 17, 57, 47, 93, 51,225, 50, 63, + 1, 47, 43,225, 93, 50, 16,214,225, 17, 57, 47, 51,225, 93, 50, 49, 48, 1, 17, 33, 17, 51, 17, 51, 32, 17, 16, 33, 35, 17, 33, + 17, 35, 17, 1, 17, 51, 50, 53, 52, 38, 35, 1, 12, 1, 43,162, 51, 1,160,254, 92,209,254,213,162, 2,111, 55,254,118,140, 4, + 74,254, 57, 1,199,254, 61,254,201,254,176, 1,233,254, 23, 4, 74,253,164,254,168,172, 90, 82,255,255, 0, 4, 0, 0, 4, 45, + 6, 20, 2, 6, 0,233, 0, 0,255,255, 0,215, 0, 0, 4,139, 6, 33, 2, 38, 0,250, 0, 0, 1, 6, 0,118, 90, 0, 0, 19, + 64, 11, 1, 21, 17, 38, 1, 15, 15, 18, 10, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 23, 2, 38, + 0, 92, 0, 0, 1, 6, 2, 54, 10, 0, 0, 19, 64, 11, 1, 25, 17, 38, 1, 10, 28, 23, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, + 0, 1, 0,160,254,131, 4, 45, 4, 74, 0, 11, 0, 68, 64, 43, 6, 71, 0, 7, 16, 7,176, 7,192, 7,208, 7, 5, 7, 7, 9, + 1, 71,144, 4,160, 4, 2, 4, 13, 0, 71, 0, 9,176, 9, 2, 9, 7, 7, 5, 0, 80, 9, 21, 10, 2, 15, 0, 63, 51, 63,225, + 51, 51, 47, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 93,225, 49, 48, 37, 33, 17, 51, 17, 33, 17, 35, 17, 33, 17, 51, 1, 86, + 2, 33,182,254,158,183,254,140,182,154, 3,176,251,182,254,131, 1,125, 4, 74, 0, 1, 0,246, 0, 0, 4, 35, 6,227, 0, 7, + 0, 62, 64, 15, 0,251, 3, 64, 18, 22, 72, 3, 9, 5, 90, 0, 6, 1, 6,184,255,192,179, 21, 24, 72, 6,184,255,192, 64, 13, + 13, 16, 72, 6, 4, 95, 7, 1, 1, 7, 3, 5, 18, 0, 63, 63, 51, 47, 16,225, 1, 47, 43, 43, 93,225, 16,222, 43,225, 49, 48, + 1, 17, 51, 17, 33, 17, 35, 17, 3,115,176,253,141,186, 5,182, 1, 45,254, 45,250,240, 5,182, 0, 1, 1, 35, 0, 0, 3,250, + 5,137, 0, 7, 0, 45, 64, 27, 5, 71,111, 0,127, 0,143, 0, 3, 0, 9, 2, 71,127, 3,143, 3, 2, 3, 6, 6, 1, 79, 4, + 15, 2, 21, 0, 63, 63,225, 51, 47, 1, 47, 93,225, 16,222, 93,225, 49, 48, 1, 33, 17, 35, 17, 33, 17, 51, 3,250,253,223,182, + 2, 33,182, 3,193,252, 63, 4, 74, 1, 63, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 0, 67, +255,175, 1, 82, 0, 21,180, 1, 26, 5, 38, 1,184,255,175,180, 29, 26, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, + 0, 0, 4,209, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0, 67,142, 0, 0, 21,180, 1, 26, 17, 38, 1,184,255,142,180, 29, 26, + 7, 24, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 0,118, 0, 82, + 1, 82, 0, 19, 64, 11, 1, 32, 5, 38, 1, 82, 26, 29, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, 0, 0, 4,209, + 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0,118,104, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1,104, 26, 29, 7, 24, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7, 43, 2, 38, 0, 58, 0, 0, 1, 7, 0,106, 0, 4, 1, 82, 0, 23, 64, 13, + 2, 1, 30, 5, 38, 2, 1, 3, 32, 36, 18, 8, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255,252, 0, 0, 4,209, 5,217, + 2, 38, 0, 90, 0, 0, 1, 6, 0,106,255, 0, 0, 25,182, 2, 1, 30, 17, 38, 2, 1,184,255,254,180, 32, 36, 7, 24, 37, 1, + 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0, 67,255,142, 1, 82, + 0, 21,180, 1, 9, 5, 38, 1,184,255,143,180, 12, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, + 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 0, 67,151, 0, 0, 21,180, 1, 23, 17, 38, 1,184,255,152,180, 26, 23, 0, 9, 37, 1, + 43, 53, 0, 43, 53, 0, 0, 1, 0,184, 1,209, 4, 20, 2,121, 0, 3, 0, 24, 64, 11, 2, 2, 5, 0, 0, 1, 0, 0,185, 1, +189, 0, 63,225, 1, 47, 93, 17, 51, 47, 49, 48, 19, 53, 33, 21,184, 3, 92, 1,209,168,168, 0, 0, 1,255,250, 1,209, 4,211, + 2,121, 0, 3, 0, 19,183, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 49, 48, 3, 53, 33, 21, 6, 4,217, + 1,209,168,168, 0, 1,255,250, 1,209, 4,211, 2,121, 0, 3, 0, 19,183, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, + 17, 51, 47, 49, 48, 3, 53, 33, 21, 6, 4,217, 1,209,168,168, 0, 2,255,236,254, 49, 4,225,255,211, 0, 3, 0, 7, 0, 60, + 64, 37, 4, 0, 9, 5, 1,247, 6, 1, 38, 6, 1, 23, 6, 1, 6,186, 32, 5,240, 5, 2, 5,248, 1, 1, 41, 1, 1, 24, 1, + 1, 1,186,239, 2, 1, 2, 0, 47, 93,225, 93, 93, 93, 47, 93,225, 93, 93, 93, 1, 47, 51, 16,196, 50, 49, 48, 5, 33, 53, 33, + 17, 33, 53, 33, 4,225,251, 11, 4,245,251, 11, 4,245,184,139,254, 94,139, 0, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, + 0, 42, 64, 26, 22, 6, 38, 6,230, 6,246, 6, 4, 6,152, 4,153,111, 1,191, 1, 2, 1, 1, 7, 8, 6,157, 3,169, 0, 63, +237, 17, 18, 1, 57, 47, 93,237,225, 93, 49, 48, 1, 39, 54, 19, 51, 6, 7, 1,205, 15, 54,123,157, 62, 38, 3,193, 22,206, 1, + 17,255,246, 0, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, 0, 56, 64, 40, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1, +153, 0, 4, 32, 4, 48, 4,112, 4,128, 4,144, 4,208, 4,224, 4,240, 4, 9, 4, 4, 7, 8, 3,157, 6,169, 0, 63,237, 17, + 18, 1, 57, 47, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, 2,254, 14, 55,121,158, 65, 36, 5,182, 22,213,254,246, 1, + 10,235, 0, 1, 1,201,254,248, 3, 2, 0,238, 0, 6, 0, 67, 64, 49, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1,153, 0, + 4, 32, 4, 48, 4,112, 4,128, 4,144, 4,208, 4,224, 4,240, 4, 9, 4, 4, 7, 8, 3,158,209, 6, 1, 31, 6, 47, 6, 63, + 6, 3, 6, 0, 47, 93, 93,237, 17, 18, 1, 57, 47, 93,253,225, 93, 49, 48, 37, 23, 6, 3, 35, 18, 55, 2,244, 14, 55,121,137, + 71, 29,238, 23,213,254,246, 1, 36,210, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, 0, 40, 64, 24, 22, 0, 38, 0,230, 0, +246, 0, 4, 0,152, 2,153,111, 5, 1, 5, 5, 7, 8, 3,157, 0,169, 0, 63,237, 17, 18, 1, 57, 47, 93,237,225, 93, 49, 48, + 1, 18, 23, 35, 2, 39, 55, 2,168, 40, 60,157,124, 53, 15, 5,182,254,253,242, 1, 18,205, 22, 0, 2, 0,233, 3,193, 3,225, + 5,182, 0, 6, 0, 13, 0, 74, 64, 50, 22, 6, 38, 6,230, 6,246, 6, 4, 6,152, 4,153, 47, 1,127, 1, 2, 1, 1, 22, 13, + 38, 13,230, 13,246, 13, 4, 13,152, 11,153, 0, 8,224, 8,240, 8, 3, 8, 8, 15, 14, 13, 6,157, 10, 3,169, 0, 63, 51,237, + 50, 17, 18, 1, 57, 47, 93,237,225, 93, 51, 47, 93,237,225, 93, 49, 48, 1, 39, 54, 19, 51, 6, 7, 33, 39, 54, 19, 51, 6, 7, + 2,162, 15, 54,123,157, 62, 38,253,123, 15, 54,123,157, 62, 38, 3,193, 22,206, 1, 17,255,246, 22,206, 1, 17,255,246, 0, 2, + 0,233, 3,193, 3,225, 5,182, 0, 6, 0, 13, 0, 92, 64, 65, 25, 13, 41, 13,233, 13,249, 13, 4, 13,152, 8,153, 47, 11,127, + 11, 2, 11, 11, 4, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1,153,224, 4,240, 4, 2,191, 4,207, 4, 2, 0, 4, 64, 4, + 80, 4,112, 4,128, 4, 5, 4, 4, 15, 14, 10, 3,157, 13, 6,169, 0, 63, 51,237, 50, 17, 18, 1, 57, 47, 93, 93, 93,253,225, + 93, 17, 51, 47, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, 33, 23, 6, 3, 35, 18, 55, 2, 41, 14, 55,121,158, 65, 36, + 2,133, 14, 55,121,158, 65, 36, 5,182, 22,213,254,246, 1, 10,235, 22,213,254,246, 1, 10,235, 0, 2, 0,244,254,248, 3,215, + 0,238, 0, 6, 0, 13, 0, 93, 64, 64, 25, 13, 41, 13, 2, 13,152, 8,153, 63, 11, 1, 11, 11, 4, 25, 6, 41, 6, 2, 6,152, + 1,153,224, 4,240, 4, 2,191, 4,207, 4, 2, 0, 4, 64, 4, 80, 4,112, 4,128, 4, 5, 4, 4, 15, 14, 10, 3,158, 13,208, + 6, 1, 31, 6, 47, 6, 63, 6, 3, 6, 0, 47, 93, 93, 51,237, 50, 17, 18, 1, 57, 47, 93, 93, 93,253,225, 93, 17, 51, 47, 93, +253,225, 93, 49, 48, 37, 23, 6, 3, 35, 18, 55, 33, 23, 6, 3, 35, 18, 55, 2, 31, 14, 55,121,137, 71, 29, 2,113, 14, 51,125, +137, 71, 29,238, 23,213,254,246, 1, 36,210, 23,197,254,230, 1, 36,210, 0, 1, 0,240, 0, 0, 3,221, 6, 20, 0, 11, 0, 47, + 64, 25, 9, 0, 2,190, 8, 5,159, 3,175, 3, 2, 3, 3, 12, 13, 0, 5,191, 11, 6,254, 8, 0, 2, 21, 0, 63, 63,246, 50, +225, 50, 17, 18, 1, 57, 47, 93, 51, 51,225, 50, 50, 49, 48, 1, 37, 19, 35, 19, 5, 53, 5, 3, 51, 3, 37, 3,221,254,180, 56, +217, 55,254,201, 1, 55, 55,217, 56, 1, 76, 3,221, 31,252, 4, 3,252, 31,180, 30, 1,161,254, 95, 30, 0, 1, 0,229, 0, 0, + 3,231, 6, 20, 0, 21, 0, 55, 64, 28, 19, 16, 2, 4,190, 15, 12, 7, 5, 5, 22, 23, 19, 12,191, 18, 13,194, 15, 0, 8, 1, +191, 7, 2,194, 4, 21, 0, 63,246, 50,225, 50, 63,246, 50,225, 50, 17, 18, 1, 57, 47, 51, 51, 51,225, 50, 50, 50, 49, 48, 1, + 37, 21, 37, 19, 35, 19, 5, 53, 5, 3, 19, 5, 53, 5, 3, 51, 3, 37, 21, 37, 19, 2,156, 1, 75,254,181, 55,217, 55,254,180, + 1, 76, 47, 47,254,180, 1, 76, 55,217, 55, 1, 75,254,181, 47, 1,240, 30,180, 31,254,135, 1,121, 31,180, 30, 1, 34, 1, 19, + 31,180, 30, 1,120,254,136, 30,180, 31,254,237, 0, 1, 1,123, 1,229, 3, 82, 3,242, 0, 9, 0, 42, 64, 28, 16, 8, 80, 8, + 96, 8,144, 8,160, 8,224, 8, 6, 8, 95, 2,111, 2,175, 2, 3, 64, 2, 1, 2, 11, 0, 5, 0, 47,205, 1, 16,222, 93, 93, +205, 93, 49, 48, 1, 50, 17, 20, 6, 35, 34, 38, 53, 16, 2,102,236,127,109,111,124, 3,242,254,250,128,135,134,129, 1, 6, 0, + 0, 3, 0, 78,255,227, 4,127, 0,250, 0, 7, 0, 15, 0, 23, 0, 95, 64, 61, 52, 18, 1, 37, 18, 1, 6, 18, 22, 18, 2, 18, +150, 22, 22, 14, 52, 2, 1, 37, 2, 1, 6, 2, 22, 2, 2, 2,150, 6, 6, 52, 10, 1, 37, 10, 1, 6, 10, 22, 10, 2, 10,150, +224, 14,240, 14, 2, 14, 14, 24, 25, 16, 0, 8,155, 20, 4, 12,168, 0, 63, 51, 51,225, 50, 50, 17, 18, 1, 57, 47, 93,225, 93, + 93, 93, 51, 47,225, 93, 93, 93, 17, 51, 47,225, 93, 93, 93, 49, 48, 55, 50, 21, 20, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, + 52, 33, 50, 21, 20, 35, 34, 53, 52,205,127,127,127, 2, 24,127,127,127, 2, 25,127,127,127,250,139,140,140,139,139,140,140,139, +139,140,140,139, 0, 7, 0, 4, 0, 0, 4,184, 5,201, 0, 9, 0, 21, 0, 25, 0, 35, 0, 47, 0, 57, 0, 69, 0,180, 64,118, + 67,180, 0, 51, 16, 51, 2, 51, 56, 45,180, 0, 29, 16, 29, 2, 29, 39,180, 25, 22,144, 34,160, 34, 2,111, 34,127, 34,143, 34, + 3,143, 22,159, 22,175, 22,207, 22, 4, 34, 22, 34, 22, 3, 61,180, 15, 56, 1, 56, 71, 23, 24, 24, 3, 13,180, 15, 8, 31, 8, + 2, 8, 19,180, 3, 58, 36,182, 26, 64, 42,182, 53, 31, 26, 22, 25, 24, 23,112, 25,128, 25,192, 25,224, 25,240, 25, 5,175, 23, +191, 23,239, 23,255, 23, 4, 25, 23, 25, 23, 5, 48, 26, 25, 10,182, 0, 16,182, 5, 7, 0, 63,225,212,225, 63, 51, 18, 57, 57, + 47, 47, 93, 93, 17, 51, 17, 51, 16,212, 50,225, 50, 16,225, 50, 1, 47,225,212, 93,225, 17, 51, 47, 51, 16,222, 93,225, 18, 57, + 57, 47, 47, 93, 93, 93, 17, 51,225,212, 93,225, 16,212, 93,225, 49, 48, 1, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, + 52, 38, 35, 34, 6, 21, 20, 22, 5, 1, 39, 1, 1, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, + 20, 22, 5, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 4,114,126,244,113,127,242, + 63, 42, 47, 58, 59, 47, 43, 2, 32,253, 70, 41, 2,186,254,244,114,125,243,113,127,242, 63, 42, 47, 58, 59, 47, 43, 2, 80,115, +125,244,112,127,241, 63, 41, 44, 60, 60, 47, 44, 3, 92,163,148, 1, 54,161,149,254,201,107,100,104,116, 85, 89,112,104,100,123, +254,225, 98, 1, 33,252, 80,163,148, 1, 54,161,149,254,201,106,101,104,116, 85, 89,112,104,101,106,163,148, 1, 54,162,148,254, +201,106,101,104,114, 87, 88,113,104,101,255,255, 1,240, 3,166, 2,221, 5,182, 2, 6, 0, 10, 0, 0,255,255, 1, 29, 3,166, + 3,176, 5,182, 2, 6, 0, 5, 0, 0, 0, 1, 1,145, 0,115, 3, 59, 3,199, 0, 6, 0, 63, 64, 38, 3,235, 0,236, 4,239, + 2,255, 2, 2,192, 2, 1,159, 2,175, 2, 2,112, 2, 1, 79, 2, 95, 2, 2, 2, 8, 64, 6, 5,238, 1,238, 32, 0, 3,239, + 0, 25, 63, 51, 26,237,237, 51, 1, 26, 24, 16,222, 93, 93, 93, 93, 93, 50,253,225, 49, 48, 1, 1, 23, 3, 19, 7, 1, 1,145, + 1, 54,116,237,237,116,254,202, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 0, 1, 1,145, 0,115, 3, 59, 3,199, 0, 6, + 0, 37, 64, 17, 2, 4,236, 3,235, 0, 8, 64, 6, 5,238, 1,238, 32, 0, 3,239, 0, 25, 63, 51, 26,237,237, 51, 1, 26, 24, + 16,222,225,237, 50, 49, 48, 1, 1, 39, 19, 3, 55, 1, 3, 59,254,203,117,238,238,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, + 92, 78,254, 98,255,255, 0,255,255,227, 3,204, 5,182, 2, 39, 0, 4, 0,231, 0, 0, 1, 7, 0, 4,255, 24, 0, 0, 0, 32, + 64, 21, 3, 2,208, 22, 1,192, 22, 1,176, 22, 1, 64, 22, 1, 48, 22, 1, 32, 22, 1, 22, 17, 93, 93, 93, 93, 93, 93, 53, 53, + 0, 1, 0,170, 0, 0, 4, 33, 5,182, 0, 3, 0, 32, 64, 15, 3, 0, 0, 5, 1, 0, 2, 1, 2, 2, 4, 3, 6, 1, 24, 0, + 63, 63, 17, 1, 51, 47, 93, 51, 17, 51, 47, 50, 49, 48, 1, 1, 35, 1, 4, 33,253, 39,158, 2,217, 5,182,250, 74, 5,182, 0, + 0, 1, 1, 61, 3, 29, 3,143, 5,199, 0, 18, 0, 60, 64, 40, 0,224, 47, 18, 63, 18, 2, 18, 18, 11, 7,224, 16, 8, 32, 8, + 48, 8,128, 8,144, 8,160, 8,224, 8,240, 8, 8, 8, 11, 3,230, 14,222, 9,220, 7, 0,255, 0, 63, 50, 63, 63,225, 50, 1, + 47, 93,225, 50, 51, 47, 93,225, 49, 48, 1, 17, 52, 35, 34, 6, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 22, 21, 17, 2,252,127, +100, 72,148,125, 17, 8, 68,139,110,127, 3, 29, 1,157,150,106,119,254,174, 2,153,104,121,130,120,254, 80, 0, 0, 1, 0,129, + 0, 0, 4, 33, 5,182, 0, 17, 0, 96, 64, 58, 2, 4, 16, 16, 5,159, 11,175, 11, 2, 11, 19, 14, 0, 4,110, 9, 7,128, 5, +240, 5, 2, 5, 9, 0,117, 3, 6, 3, 17,116, 14, 47, 14, 95, 14,239, 14,255, 14, 4, 14, 64, 16, 21, 72, 3, 14, 3, 14, 4, + 13,116, 10, 3, 4, 18, 0, 63, 63,225, 18, 57, 57, 47, 47, 43, 93, 16,225, 17, 51, 16,225, 50, 1, 47, 93,198, 51,225, 50, 50, + 16,206, 93, 17, 57, 47, 18, 57, 49, 48, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 1,227, 1, 37, +254,219,178,176,176, 2,240,253,194, 2, 23,253,233, 1,143,137,254,250, 1, 6,137, 4, 39,164,253,252,164, 0, 0, 1, 0,119, + 0, 0, 4, 86, 5,201, 0, 35, 0,133, 64, 81, 9, 6, 14,111, 30, 27, 23, 12, 7, 23, 7, 23, 7, 19, 0, 18, 37, 29, 24, 16, + 0, 19, 1, 19, 9, 28,117, 29, 6, 29, 10, 25,117, 24, 14, 24, 15, 29, 31, 29, 63, 29, 79, 29,127, 29,143, 29,175, 29,191, 29, +207, 29, 9,134, 24,150, 24, 2,119, 24, 1,111, 24, 1, 29, 24, 29, 24, 16, 3,115, 1, 34, 7, 20, 16,116, 19, 24, 0, 63,225, + 50, 63, 51,225, 18, 57, 57, 47, 47, 93, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 93, 51, 51, 51, 16,206, 50, + 17, 57, 57, 47, 47, 17, 51, 17, 51, 51,225, 50, 50, 49, 48, 1, 7, 38, 35, 34, 21, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 7, + 33, 21, 33, 53, 54, 53, 53, 35, 53, 51, 53, 35, 53, 51, 53, 52, 54, 51, 50, 4, 39, 66,141,131,223, 1,121,254,135, 1,121,254, +135,140, 2,236,252, 33,200,198,198,198,198,217,181,192, 5,121,144, 72,246,192,137,158,137, 19,196, 78,166,154, 49,235, 21,137, +158,137,221,168,201, 0, 0, 3, 0, 82,255,236, 4,166, 5,182, 0, 9, 0, 16, 0, 36, 0,122, 64, 75, 6, 90, 13, 26, 24, 22, +112, 33, 29, 33, 33, 64, 16, 19, 72, 32, 13, 48, 13, 2, 13, 33, 13, 33, 2, 31, 31, 17, 64, 9, 14, 72, 17, 38, 10, 1, 90, 31, + 2, 47, 2, 63, 2, 3, 2, 35,117, 17, 20, 25, 23, 32,117, 25, 26, 28, 3, 29, 29, 0,117, 15, 10, 31, 10, 2, 10, 10, 2, 16, + 96, 3, 6, 2, 24, 0, 63, 63,225, 18, 57, 47, 93,225, 51, 47, 23, 51,225, 50, 63, 51,225, 1, 47, 93,225, 50, 16,206, 43, 50, + 47, 17, 57, 57, 47, 47, 93, 43, 17, 51, 16,225, 50, 50, 16,225, 49, 48, 19, 17, 35, 17, 51, 32, 17, 20, 6, 35, 39, 51, 32, 17, + 16, 33, 35, 1, 21, 6, 35, 34, 17, 17, 35, 53, 55, 55, 51, 21, 51, 21, 35, 17, 20, 51, 50,240,158,205, 1,194,230,226, 41, 41, + 1, 36,254,244, 65, 3,182, 64,102,221,115,115, 65, 86,209,209,113, 62, 2, 57,253,199, 5,182,254, 84,221,244,146, 1, 53, 1, + 35,251,102,125, 32, 1, 26, 1,100, 70, 51,215,211,125,254,164,153, 0, 0, 1, 0, 96,255,236, 4,106, 5,203, 0, 39, 0,106, + 64, 20, 11, 2, 2, 7, 34, 17, 41, 27, 22, 22, 12, 0, 7, 90, 29, 25, 21, 24, 9, 23,184, 1, 7,180, 22, 12, 22, 3, 27,184, + 1, 7, 64, 29, 28, 0, 28, 15, 28, 31, 28, 47, 28, 95, 28,159, 28,223, 28, 6, 22, 28, 22, 28, 14, 37, 95, 32, 4, 14, 95, 19, + 19, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 51, 51, 51,225, 50, 50, 51, 47, + 51, 16,206, 50, 17, 57, 17, 51, 49, 48, 1, 33, 21, 33, 20, 7, 7, 21, 20, 23, 33, 21, 33, 18, 33, 50, 55, 21, 6, 35, 32, 3, + 35, 53, 51, 39, 55, 35, 53, 51, 18, 0, 51, 50, 23, 7, 38, 35, 34, 6, 1,186, 1,176,254, 66, 1, 1, 2, 1,129,254,145, 73, + 1, 40,136,132,122,160,254, 65, 94,164,148, 2, 2,148,160, 39, 1, 25,219,191,144, 79,122,120,136,194, 3,166,137, 15, 14, 25, + 62, 20, 22,137,254,153, 58,162, 59, 2, 10,137, 38,120,137, 1, 6, 1, 31, 92,146, 74,199, 0, 0, 4, 0, 8,255,248, 4,199, + 5,193, 0, 19, 0, 23, 0, 35, 0, 43, 0,164,185, 0, 34,255,224,179, 9, 13, 72, 32,184,255,224, 64, 30, 9, 13, 72, 28, 32, + 9, 13, 72, 26, 32, 9, 13, 72,102, 42,150, 42,166, 42, 3, 42,180, 27,181, 33, 21, 22, 23, 20, 22,184,255,192, 64, 69, 21, 24, + 72, 20, 64, 21, 24, 72, 22, 20, 22, 20, 15,105, 38,153, 38,169, 38, 3, 38,180, 33, 45, 0, 16, 9, 32, 9, 80, 9,144, 9,160, + 9, 5, 9,102, 5,150, 5,166, 5, 3, 5,180, 15, 40,182, 30,183, 36,182, 24, 25, 23, 6, 21, 24, 9, 7,182, 12,183, 3,182, + 1, 18, 7, 0, 63, 51,225,244,225, 51, 63, 63, 63,225,244,225, 1, 47,225, 93,196, 93, 50, 16,214,225, 93, 18, 57, 57, 47, 47, + 43, 43, 17, 51, 17, 51, 16,244,225, 93, 49, 48, 43, 43, 43, 43, 1, 7, 38, 35, 34, 21, 20, 51, 50, 55, 21, 6, 35, 34, 38, 53, + 52, 54, 51, 50, 5, 1, 35, 1, 19, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 2, 20, 32, 82, + 68,198,194,103, 73, 74,108,156,176,180,162, 99, 2, 81,253, 39,157, 2,217, 33,132,170,166,140,131,170,164,139,155,155,158, 5, +156,107, 33,234,229, 33,107, 37,175,163,171,176, 11,250, 74, 5,182,250, 66,185,157,161,181,187,155,158,184,108,234,231,231,234, + 0, 2, 0,227,255,236, 3,231, 5,203, 0, 25, 0, 33, 0,106, 64, 62, 26, 22,110, 6, 12, 6, 9, 9, 6, 28,112, 19, 0,112, + 1, 63, 6, 1, 0, 6, 1, 63, 19,159, 19,175, 19,191, 19, 4, 32, 1, 1, 6, 19, 1, 1, 19, 6, 3, 34, 35, 9, 7, 21,118, + 12, 10, 26, 26, 24, 30,118, 16, 6, 24,117, 3, 1, 1, 3, 25, 0, 63, 51, 47, 16,225, 63,225, 18, 57, 47, 51, 51,225, 50, 50, + 17, 18, 1, 23, 57, 47, 47, 47, 93, 93, 93, 93, 16,225, 16,225, 17, 51, 47, 17, 51, 16,225, 50, 49, 48, 1, 51, 2, 33, 34, 38, + 53, 53, 6, 7, 53, 54, 55, 17, 52, 54, 51, 50, 22, 21, 16, 5, 17, 20, 51, 50, 1, 54, 17, 52, 35, 34, 6, 21, 3,117,114, 18, +254,244,139,154, 86,107, 72,121,137,133,110,126,254,172,145,144,254,223,207,103, 53, 51, 1, 76,254,160,183,173,231, 31, 26,121, + 19, 40, 1,238,140,159,165,136,254,157,186,254,211,221, 2,139,121, 1, 29,188, 81,107, 0, 4, 0, 25, 0, 0, 4,184, 5,182, + 0, 15, 0, 26, 0, 38, 0, 42, 0,240, 64, 21, 20, 25, 36, 25, 2, 20, 23, 36, 23, 2, 27, 20, 43, 20, 2, 27, 18, 43, 18, 2, + 9,184,255,208, 64, 40, 18, 21, 72,116, 9,132, 9, 2, 86, 9,102, 9, 2, 55, 9, 71, 9, 2, 1, 48, 18, 21, 72,123, 1,139, + 1, 2, 89, 1,105, 1, 2, 56, 1, 72, 1, 2, 39, 36,184, 1, 3,179, 19, 11, 1, 14,184, 1, 3, 64, 24, 15,111, 19,159, 19, +175, 19,207, 19,223, 19, 5, 19, 15, 19, 15, 7, 42, 64, 21, 24, 72, 42, 30,184, 1, 3,180, 24, 44, 9, 3, 6,184, 1, 3, 64, + 49, 7, 27,182, 16, 33,182, 21, 15, 16, 31, 16, 2, 16, 21, 16, 21, 14, 75, 2, 91, 2, 2, 2, 64, 9, 12, 72, 2, 8, 3,133, + 40, 1, 86, 40,102, 40,118, 40, 3, 40, 97, 39, 68, 10, 84, 10, 2, 10,184,255,192,182, 9, 12, 72, 10, 1, 7, 18, 0, 63, 51, + 51, 43, 93, 51,224, 93, 93, 63, 51, 43, 93, 51, 57, 57, 47, 47, 93, 16,225, 16,225, 1, 47,225, 50, 50, 16,214,225,196, 43, 18, + 57, 57, 47, 47, 93, 16,225, 50, 50, 16,225,196, 49, 48, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 93, 33, 35, 1, 35, 22, 21, + 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 1, 34, 38, 53, 16, 51, 50, 22, 21, 20, 6, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, + 22, 3, 53, 33, 21, 2,137,174,254,187, 9, 19,135,176, 1, 67, 6, 14,133, 1, 49,114,135,253,114,136,132,120, 63, 48, 48, 63, + 64, 48, 48,147, 1,158, 4,145,253,164,253, 16, 5,182,251,117, 1, 47,100, 2,248,251, 92,187,162, 1, 90,183,163,168,181,121, +115,113,114,109,110,113,112,116,254,117,147,147, 0, 2, 0, 0, 2,229, 4,156, 5,182, 0, 7, 0, 25, 0,107, 64, 63, 24, 17, + 20,196, 19, 15, 9, 12,196, 13,191, 13, 1, 6, 13, 6, 13, 1, 31, 19, 1, 19, 27,182, 3,198, 3, 2,155, 3,171, 3, 2,122, + 3,138, 3, 2, 3, 0,196, 0, 1, 1, 1, 7, 3,200, 4, 16, 9, 24, 3, 4, 20, 13, 8, 1, 1, 17, 14, 4, 3, 0, 63, 51, + 51, 51, 47, 51, 51, 51, 18, 23, 57, 16,225, 50, 1, 47, 93,225, 51, 93, 93, 93, 16,206, 93, 17, 57, 57, 47, 47, 93, 16,225, 50, + 50, 16,225, 50, 50, 49, 48, 1, 35, 17, 35, 53, 33, 21, 35, 1, 3, 35, 23, 17, 35, 17, 51, 19, 19, 51, 17, 35, 17, 52, 55, 35, + 3, 1, 47,127,176, 1,225,178, 1,238,146, 12, 10,123,187,139,149,179,127, 10, 12,154, 2,229, 2,101,108,108,253,155, 2, 37, +180,254,143, 2,209,253,234, 2, 22,253, 47, 1, 86, 87,120,253,219, 0,255,255, 0, 74, 0, 0, 4,135, 5,205, 2, 6, 1,118, + 0, 0, 0, 2, 0, 82,255,221, 4,119, 4, 72, 0, 19, 0, 26, 0, 60, 64, 26, 20, 7, 0, 28, 26, 1, 31, 13, 47, 13, 63, 13, + 3, 13, 1,119, 26, 26, 4, 23,119, 16, 15, 4,119, 6,184,255,224,181, 9, 12, 72, 6, 10, 25, 0, 63, 51, 43,225, 63,225, 18, + 57, 47,225, 1, 47, 93, 51, 50, 16,206, 50, 50, 49, 48, 1, 33, 17, 22, 51, 50, 55, 23, 6, 6, 35, 34, 0, 53, 16, 0, 51, 50, + 0, 21, 39, 17, 38, 35, 34, 7, 17, 4,119,252,196,123,174,254,142, 71, 97,219,151,240,254,222, 1, 51,223,231, 1, 44,232,121, +180,171,124, 2, 18,254,156,123,234, 41,156,123, 1, 68,241, 1, 5, 1, 49,254,202,251, 81, 1, 21,119,117,254,233, 0,255,255, + 0, 18,255,246, 4,182, 5,182, 2, 39, 0,123,254,163, 0, 0, 0, 38, 2, 23,200, 0, 1, 7, 2, 64, 1, 86,253,103, 0, 84, + 64, 55, 4, 3, 2, 20, 24, 4, 3, 2,240, 20, 1,128, 20, 1, 16, 20, 1, 0, 20, 1, 20, 1,171, 13, 1,148, 13, 1,100, 13, + 1, 84, 13, 1, 68, 13, 1, 13, 0,240, 0, 1,224, 0, 1,176, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 93, 53, + 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, 53, 53,255,255, 0, 11,255,246, 4,202, 5,197, 2, 39, + 0,117,254,181, 0, 0, 0, 38, 2, 23,239, 0, 1, 7, 2, 64, 1,106,253,103, 0, 76, 64, 49, 4, 3, 2, 40, 24, 4, 3, 2, +240, 40, 1,176, 40, 1,128, 40, 1, 16, 40, 1, 0, 40, 1, 40, 1,244, 33, 1,212, 33, 1,196, 33, 1,180, 33, 1,148, 33, 1, + 33, 0,192, 0, 1,127, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, + 53, 53,255,255, 0, 24,255,246, 4,202, 5,182, 2, 39, 2, 61,254,200, 0, 0, 0, 38, 2, 23,239, 0, 1, 7, 2, 64, 1,106, +253,103, 0, 80, 64, 52, 4, 3, 2, 34, 24, 4, 3, 2,240, 34, 1,176, 34, 1,128, 34, 1, 16, 34, 1, 0, 34, 1, 34, 1,244, + 27, 1,212, 27, 1,196, 27, 1,180, 27, 1,148, 27, 1, 27, 0,224, 0, 1,208, 0, 1,192, 0, 1, 0, 17, 93, 93, 93, 53, 17, + 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, 53, 53,255,255, 0, 28,255,246, 4,202, 5,182, 2, 39, + 2, 63,254,173, 0, 0, 0, 38, 2, 23,175, 0, 1, 7, 2, 64, 1,106,253,103, 0, 80, 64, 52, 4, 3, 2, 16, 24, 4, 3, 2, +240, 16, 1,176, 16, 1,128, 16, 1, 16, 16, 1, 0, 16, 1, 16, 1,171, 9, 1,107, 9, 1, 91, 9, 1, 75, 9, 1, 52, 9, 1, + 36, 9, 1, 9, 0,192, 0, 1,127, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, + 53, 0, 63, 53, 53, 53, 0, 2, 0,121,255,236, 4, 82, 5,197, 0, 20, 0, 31, 0, 57, 64, 30, 6, 6, 16, 21, 1, 70, 11, 33, + 27, 72, 0, 16, 1, 16, 21, 0, 24, 78, 19, 19, 9, 29, 80, 14, 22, 6, 4, 80, 9, 4, 0, 63,225, 51, 63,225, 17, 57, 47,225, + 50, 50, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 49, 48, 1, 55, 54, 38, 35, 34, 7, 53, 54, 51, 32, 17, 16, 0, 33, 32, 17, + 52, 0, 51, 50, 19, 38, 38, 35, 34, 2, 21, 20, 51, 50, 18, 3,156, 2, 9,133,153,131,127,134,149, 1,176,254,175,254,226,254, +150, 1, 20,244,184, 66, 22,127, 76,160,197,187,138,219, 3, 94, 40,181,242, 84,174, 62,253,225,254,123,253,203, 1,139,249, 1, +130,254,182, 85,105,254,192,181,236, 1, 50, 0, 0, 2, 0, 74, 0, 0, 4,131, 5,182, 0, 5, 0, 12, 0,200,181, 12, 16, 15, + 19, 72, 11,184,255,240,182, 15, 19, 72,183, 2, 1, 2,184,255,248, 64, 68, 13, 17, 72, 38, 2, 1, 23, 2, 1, 6, 2, 1,184, + 1, 1, 1, 8, 13, 17, 72, 41, 1, 1, 24, 1, 1, 9, 1, 1,231, 2, 1, 2,232, 1, 1, 1, 8, 8, 0, 12, 16, 20, 24, 72, + 72, 12, 88, 12, 2, 42, 12, 1, 9, 12, 25, 12, 2, 12, 95, 3,111, 3, 2, 3, 3, 14, 11,184,255,240, 64, 54, 20, 24, 72, 71, + 11, 87, 11, 2, 37, 11, 1, 6, 11, 22, 11, 2, 11, 80, 0, 96, 0,224, 0,240, 0, 4, 0, 0, 3, 11, 95, 5, 18, 8, 16, 17, + 24, 72, 91, 8, 1, 41, 8, 57, 8, 73, 8, 3, 29, 8, 1, 8, 1, 3, 0, 63, 51, 93, 93, 93, 43, 63,225, 57, 57, 1, 47, 93, + 51, 93, 93, 93, 43, 17, 51, 47, 93, 51, 93, 93, 93, 43, 18, 57, 61, 47, 51, 93, 51, 93, 49, 48, 93, 93, 93, 43, 93, 93, 93, 93, + 43, 93, 43, 43, 55, 1, 51, 1, 21, 33, 1, 38, 39, 6, 7, 3, 33, 74, 1,190,187, 1,192,251,199, 2,119, 59, 34, 45, 43,250, + 2,166,113, 5, 69,250,185,111, 3,154,182,158,200,134,253, 4, 0, 1, 0,156,254, 20, 4, 88, 5,182, 0, 7, 0, 49, 64, 15, + 0, 90,224, 7,240, 7, 2, 7, 9, 3, 90, 0, 4, 1, 4,184,255,192, 64, 11, 20, 24, 72, 4, 2, 95, 5, 3, 4, 0, 27, 0, + 63, 50, 63,225, 1, 47, 43, 93,225, 16,222, 93,225, 49, 48, 1, 17, 33, 17, 35, 17, 33, 17, 3,158,253,184,186, 3,188,254, 20, + 6,252,249, 4, 7,162,248, 94, 0, 1, 0, 74,254, 20, 4,145, 5,182, 0, 11, 0,122, 64, 82, 55, 9,215, 9,231, 9,247, 9, + 4, 38, 9, 1, 7, 9, 23, 9, 2, 55, 7,215, 7,231, 7,247, 7, 4, 38, 7, 1, 7, 7, 23, 7, 2, 56, 2,216, 2,232, 2, +248, 2, 4, 25, 2, 41, 2, 2, 8, 2, 1, 8, 2, 2, 0, 6, 10, 13, 7, 3, 3, 9, 0, 64, 10, 13, 72, 0, 3, 7, 95, 4, + 8, 2, 2, 4, 3, 1, 9, 95, 0, 27, 0, 63,225, 57, 63, 57, 61, 47, 51, 16,225, 57, 1, 24, 47, 43, 51, 51, 17, 51, 16,206, + 50, 17, 57, 47, 51, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 19, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 74, 2, 71,253, +201, 3,246,253, 14, 2, 17,253,213, 3, 77,254, 20,115, 3,146, 3, 43,114,164,253, 9,252,157,164, 0, 0, 1, 0,152, 2,135, + 4, 51, 3, 29, 0, 3, 0, 26, 64, 12, 2, 5, 0, 1, 1, 1, 1, 4, 0,173, 1,179, 0, 63,225, 17, 1, 51, 47, 93, 16,206, + 49, 48, 19, 53, 33, 21,152, 3,155, 2,135,150,150, 0, 0, 1, 0, 23,255,242, 4,182, 6,160, 0, 8, 0, 46, 64, 21, 1, 0, + 6, 6, 7, 8, 8, 10, 5, 2, 2, 3, 3,174, 4, 4, 15, 7, 1, 7, 0, 0, 47, 47, 93, 57, 47,225, 1, 47, 50, 47, 51, 17, + 51, 47, 51, 57, 25, 47, 51, 51, 49, 48, 5, 35, 1, 35, 53, 33, 19, 1, 51, 2,100,133,254,236,180, 1, 40,230, 2, 0,145, 14, + 3, 10,143,253,105, 5,172, 0, 0, 3, 0, 70, 1,145, 4,133, 4, 14, 0, 19, 0, 29, 0, 39, 0, 95,185, 0, 16,255,224,179, + 9, 12, 72, 14,184,255,224, 64, 50, 9, 12, 72, 6, 32, 9, 12, 72, 4, 32, 9, 12, 72, 30, 10, 0, 20, 4, 5, 35,171, 15, 15, + 1, 15, 41, 25,171, 5, 38, 22,174, 10, 0, 2, 12, 8, 8, 32, 28,174, 18, 63, 2,143, 2,223, 2, 3, 2, 0, 47, 93, 51,225, + 50, 51, 47, 51, 18, 57, 57,225, 50, 1, 47,225, 16,222, 93,225, 17, 23, 57, 49, 48, 43, 43, 43, 43, 1, 6, 35, 34, 38, 53, 52, + 54, 51, 50, 23, 54, 51, 50, 22, 21, 20, 6, 35, 34, 3, 38, 35, 34, 6, 21, 20, 22, 51, 50, 55, 22, 51, 50, 54, 53, 52, 38, 35, + 34, 2, 98,118,154,119,149,149,119,166,108,116,165,118,146,151,113,171,181, 82,109, 65, 80, 80, 67,104,228, 86,107, 65, 80, 84, + 64,103, 2,109,213,174,141,134,181,219,213,172,143,131,185, 1, 66,184,107, 79, 81,101,178,185,109, 78, 79,103, 0, 1, 0,236, +254, 20, 3,225, 6, 20, 0, 20, 0, 41, 64, 21, 1, 6,170, 12, 16, 16, 1, 16, 16, 21, 22, 3,174, 1, 19, 0, 14,174, 12, 9, + 27, 0, 63, 51,225, 63, 51,225, 17, 18, 1, 57, 47, 93, 51,225, 50, 49, 48, 1, 21, 38, 35, 34, 21, 17, 20, 6, 35, 34, 39, 53, + 22, 51, 50, 53, 17, 16, 33, 50, 3,225, 56, 58,172,178,160, 78, 55, 60, 56,180, 1, 74, 88, 6, 2,147, 26,233,250,215,174,181, + 19,147, 24,233, 5, 39, 1, 98, 0, 2, 0,152, 1,123, 4, 51, 4, 37, 0, 17, 0, 35, 0, 72, 64, 41, 28, 9, 37, 18, 0, 0, + 1, 0, 0, 36, 34,173, 27, 21,178, 30, 16,173, 9, 3,178, 7,173, 0, 63, 12, 1, 12, 12, 25,173, 18,223, 30, 1, 80, 30,160, + 30, 2, 30, 0, 47, 93, 93, 51,225, 51, 47, 93, 51,225,253, 50,225, 16,253, 50,225, 17, 1, 51, 47, 93, 51, 16,206, 50, 49, 48, + 19, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, 6, 35, 34, 39, 38, 35, 34, 3, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, 6, 35, 34, + 39, 38, 35, 34,152, 98,149, 98,150,127, 74,109,118, 97,151,100,147,128, 73,112,115, 99,148,100,148,130, 71,108,119, 99,149,100, +147,131, 70,108, 3, 20,162,109, 64, 55,121,162,108, 63, 55,253,238,162,108, 63, 56,121,162,108, 63, 56, 0, 1, 0,152, 0,164, + 4, 51, 5, 4, 0, 19, 0,110, 64, 65, 7, 4, 3, 0, 4, 19, 8, 8, 10, 13, 14, 17, 4, 18, 9, 18, 19, 9, 19, 9, 19, 6, + 15, 11, 21, 2, 0, 6, 1, 6, 6, 20, 15, 2,173, 16,112, 1, 1, 79, 1, 95, 1,111, 1, 3, 0, 1, 1, 1, 1, 12, 5,173, + 11,143, 6, 1, 80, 6, 1, 15, 6, 1, 6, 0, 47, 93, 93, 93, 51,225, 50, 51, 47, 93, 93, 93, 51,225, 50, 17, 1, 51, 47, 93, + 51, 16,206, 50, 17, 57, 57, 47, 47, 17, 51, 17, 18, 23, 57, 51, 17, 18, 23, 57, 49, 48, 1, 35, 53, 33, 19, 33, 53, 33, 19, 23, + 7, 51, 21, 33, 3, 33, 21, 33, 3, 39, 1,143,247, 1, 61,121,254, 74, 1,251,134,137,105,250,254,193,123, 1,186,254, 0,129, +137, 1,186,150, 1, 4,149, 1, 27, 59,224,149,254,252,150,254,234, 57, 0, 2, 0,152, 0, 0, 4, 51, 4,201, 0, 6, 0, 10, + 0,101, 64, 63,103, 6,119, 6,135, 6, 3,104, 4,120, 4,136, 4, 3,118, 5,134, 5, 2, 5, 4, 1, 4, 9, 0, 12, 8, 1, + 1, 11, 2, 1, 5, 5, 3, 6,224, 0, 1,223, 0, 1, 64, 0, 1, 63, 0, 1, 0, 0, 1, 0, 0, 4, 32, 3,192, 3, 2, 15, + 3, 1, 3, 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 50, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 16,206, 50, 50, 17, 18, + 57, 93, 49, 48, 0, 93, 93, 37, 1, 53, 1, 21, 9, 2, 53, 33, 21, 4, 51,252,101, 3,155,253, 53, 2,203,252,101, 3,155,221, + 1,195,102, 1,195,160,254,170,254,170,254,131,150,150, 0, 2, 0,152, 0, 0, 4, 51, 4,201, 0, 6, 0, 10, 0, 99, 64, 62, +104, 2,120, 2,136, 2, 3,103, 0,119, 0,135, 0, 3,121, 1,137, 1, 2, 1, 6, 9, 4, 12, 8, 2, 6, 6, 11, 5, 4, 1, + 1, 3, 0,224, 6, 1,223, 6, 1, 64, 6, 1, 63, 6, 1, 0, 6, 1, 6, 6, 2, 32, 3,192, 3, 2, 15, 3, 1, 3, 0, 47, + 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 51, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 51, 16,206, 50, 17, 57, 93, 49, 48, 0, 93, + 93, 19, 1, 1, 53, 1, 21, 1, 21, 53, 33, 21,152, 2,202,253, 54, 3,155,252,101, 3,155, 1,125, 1, 86, 1, 86,160,254, 61, +102,254, 61,221,150,150, 0, 2, 0,125, 0, 0, 4, 80, 5,195, 0, 5, 0, 9, 0, 68, 64, 31, 2, 1, 9, 9, 5, 4, 7, 7, + 3, 6, 0, 11, 8, 0, 3, 1, 3, 3, 10, 0, 6, 6, 3, 8, 8, 1, 7, 4, 3, 9, 1, 0, 47, 51, 63, 51, 18, 57, 61, 47, + 51, 51, 17, 51, 17, 1, 51, 24, 47, 93, 51, 16,206, 50, 17, 57, 61, 47, 51, 51, 51, 47, 51, 51, 49, 48, 1, 1, 35, 1, 1, 51, + 9, 3, 4, 80,254, 59, 76,254, 62, 1,194, 76, 1, 13,254,206,254,207, 1, 49, 2,225,253, 31, 2,223, 2,228,253, 30, 2, 0, +254, 0,253,254, 0, 3, 0, 49, 0, 0, 4, 43, 6, 31, 0, 21, 0, 30, 0, 34, 0, 82, 64, 43, 29, 32, 71, 31, 13, 0, 0, 3, + 24, 31, 36, 20, 2, 71, 3, 7, 3, 5, 5, 3, 27, 83,175, 22, 1, 22, 22, 11, 4, 1, 79, 33, 7, 20, 15, 16, 80, 14, 11, 1, + 32, 2, 21, 0, 63, 51, 63, 51,225, 63, 51, 51,225, 50, 18, 57, 47, 93,237, 1, 47, 51, 47, 17, 51, 16,225, 50, 16,206, 50, 17, + 57, 47, 57, 16,225, 50, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 21, 51, 1, 50, + 21, 20, 6, 35, 34, 53, 52, 19, 35, 17, 51, 2,160,246,182,195,195,153,178, 97,100, 47, 79, 64, 92, 64,246, 1, 33,106, 63, 43, +107,197,183,183, 3,193,252, 63, 3,193, 75, 68, 96,190,177, 37,141, 28,101,114,104, 1,155,114, 58, 57,115,114,250, 27, 4, 74, + 0, 2, 0, 49, 0, 0, 4, 27, 6, 31, 0, 21, 0, 25, 0, 66, 64, 34, 13, 22, 0, 0, 3, 23, 71, 22, 27, 20, 2, 71, 3, 7, + 3, 5, 5, 3, 24, 0, 4, 1, 79, 7, 20, 15, 16, 80, 14, 11, 1, 23, 2, 21, 0, 63, 51, 63, 51,225, 63, 51,225, 50, 63, 1, + 47, 51, 47, 17, 51, 16,225, 50, 16,222,225, 18, 57, 47, 18, 57, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, + 7, 38, 35, 34, 6, 21, 21, 51, 1, 35, 17, 51, 2,160,246,182,195,195,153,178, 97,100, 47, 79, 64, 92, 64,246, 1,123,183,183, + 3,193,252, 63, 3,193, 75, 68, 96,190,177, 37,141, 28,101,114,104,251,182, 6, 20, 0, 0, 1, 0,231, 4,217, 3,229, 6, 23, + 0, 11, 0, 45, 64, 16, 6,136, 0, 5, 1, 5, 5, 11,136, 0, 0, 13, 5, 0,146, 9,184, 1, 1,181, 15, 2, 95, 2, 2, 2, + 0, 47, 93,225,228, 50, 17, 1, 51, 47,225, 51, 47, 93,225, 49, 48, 1, 2, 33, 34, 38, 39, 51, 22, 22, 51, 50, 55, 3,229, 20, +254,143,195,172, 10,170, 8, 84,119,194, 17, 6, 23,254,194,148,170,102, 85,187, 0, 1, 0,135,254, 20, 3, 86, 4, 74, 0, 15, + 0, 47, 64, 26, 8, 0, 6, 71,144, 11,160, 11, 2, 11, 11, 16, 17, 0, 0, 1, 0, 3, 80, 1, 14, 27, 7, 78, 10, 15, 0, 63, +225, 63, 51,225, 1, 47, 93, 17, 18, 57, 47, 93,225, 17, 57, 49, 48, 19, 53, 22, 51, 50, 54, 53, 17, 37, 53, 33, 17, 20, 6, 35, + 34,135,134,155,117,131,254, 92, 2, 90,226,206,164,254, 55,154, 39,114,101, 4, 57, 21,123,251, 65,180,195, 0, 0, 1, 1,238, + 4,205, 2,223, 6, 20, 0, 9, 0, 22, 64, 9, 9, 9, 4, 4, 11, 8,146, 3, 0, 0, 63,237, 17, 1, 51, 47, 51, 47, 49, 48, + 1, 55, 54, 55, 51, 21, 20, 6, 7, 35, 1,238, 26, 26, 9,180, 84, 61, 96, 4,231,107,116, 78, 20, 14,198, 95, 0, 1, 1,227, +254, 59, 2,233,255,131, 0, 8, 0, 27, 64, 13, 8, 8, 3, 3, 10, 7,146, 15, 2, 31, 2, 2, 2, 0, 47, 93,237, 17, 1, 51, + 47, 51, 47, 49, 48, 1, 54, 55, 51, 21, 20, 6, 7, 35, 1,227, 62, 22,178, 96, 67, 99,254, 86,140,161, 20, 22,204, 82, 0, 1, + 1,227, 4,217, 2,233, 6, 33, 0, 8, 0, 27, 64, 13, 3, 3, 8, 8, 10, 7,146, 15, 2, 95, 2, 2, 2, 0, 47, 93,237, 17, + 1, 51, 47, 51, 47, 49, 48, 1, 6, 7, 35, 53, 52, 54, 55, 51, 2,233, 63, 20,179, 91, 73, 98, 6, 6,153,148, 21, 17,201, 89, + 0, 2, 1, 57, 2, 57, 3,147, 5,199, 0, 9, 0, 17, 0, 34, 64, 18, 12,224, 48, 8, 1, 8, 8, 16,224, 3, 14,230, 5,222, + 10,230, 0,223, 0, 63,225, 63,225, 1, 47,225, 51, 47, 93,225, 49, 48, 1, 34, 38, 53, 16, 33, 50, 22, 21, 16, 37, 50, 17, 16, + 35, 34, 17, 16, 2,100,142,157, 1, 43,149,154,254,209,156,156,151, 2, 57,234,223, 1,197,236,217,254, 55,131, 1, 70, 1, 68, +254,188,254,186, 0, 2, 1, 37, 2,168, 3,127, 5,195, 0, 10, 0, 17, 0, 86, 64, 52, 17, 95, 6,207, 6, 2, 6, 6, 9,104, + 0,120, 0, 2, 0, 32, 11, 14, 72, 0, 2,224, 11, 7, 31, 3,143, 3, 2, 3, 3, 18, 19, 4, 1,228, 17, 6, 14, 7, 11, 9, + 27, 9, 2, 9, 9, 2, 7,222, 2,223, 0, 63, 63, 18, 57, 47, 93, 18, 57, 51, 51,225, 50, 17, 18, 1, 57, 47, 93, 51, 51,225, + 50, 43, 93, 50, 51, 47, 93, 51, 49, 48, 1, 35, 21, 35, 53, 33, 53, 1, 51, 17, 51, 35, 53, 52, 55, 6, 7, 7, 3,127, 84,143, +254,137, 1,121,141, 84,227, 6, 40, 40,156, 3, 86,174,174, 98, 2, 11,254, 4,176, 82, 90, 73, 58,217, 0, 1, 1, 80, 2,145, + 3, 68, 5,182, 0, 24, 0, 92, 64, 57, 14, 15, 15, 11, 12, 64, 16, 24, 72, 10, 12, 10, 12, 0, 5,224, 15, 20, 31, 20, 79, 20, + 95, 20,127, 20,143, 20,159, 20, 7, 20, 20,207, 0, 1,112, 0, 1, 0, 10, 9, 9, 7,229, 17, 17, 11, 3,228, 1, 23,223, 14, +228, 11,220, 0, 63,225, 63, 51,225, 17, 57, 47,225, 51, 18, 57, 1, 47, 93, 93, 51, 47, 93,225, 18, 57, 57, 47, 47, 43, 51, 51, + 17, 51, 49, 48, 1, 53, 22, 51, 50, 53, 52, 35, 34, 7, 39, 19, 33, 21, 33, 7, 54, 51, 50, 22, 21, 20, 6, 35, 34, 1, 80,102, +105,162,166, 52, 73, 62, 31, 1,141,254,224, 17, 35, 61,118,147,150,145,124, 2,193,129, 68,147,146, 17, 39, 1,125,110,193, 6, +130,109,127,142, 0, 2, 1, 57, 2, 57, 3,147, 5,213, 0, 16, 0, 27, 0, 56, 64, 30, 3, 22,224, 15, 1, 15, 17,224, 48, 9, + 1, 9, 9, 15, 3, 19,228, 0, 6, 1, 6, 6, 0, 25,230, 12,223, 1, 0,222, 0, 63, 50, 63,225, 17, 57, 47, 93,225, 50, 1, + 47, 51, 47, 93,225, 18, 57, 16,225, 50, 49, 48, 1, 23, 4, 7, 51, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 53, 16, 1, 52, 35, + 34, 6, 21, 20, 22, 51, 50, 54, 3, 29, 45,254,183, 52, 10, 61,140,112,131,165,134,135,168, 1,205,147, 74, 98, 93, 75, 68, 83, + 5,213,109,110,215, 92,153,128,133,168,187,157, 1,151,254, 60,172, 87, 64, 86,113, 92, 0, 1, 1,111, 2,160, 3,147, 5,182, + 0, 6, 0, 53, 64, 34, 6, 0, 0, 1, 15, 5, 79, 5,127, 5, 3, 5, 5, 0, 2, 80, 2, 96, 2,112, 2,176, 2,208, 2, 6, + 2, 5, 2,230, 3,220, 0,221, 0, 63, 63,225, 50, 1, 47, 93, 50, 47, 93, 51, 57, 47, 51, 49, 48, 1, 1, 33, 53, 33, 21, 1, + 1,195, 1, 53,254,119, 2, 36,254,203, 2,160, 2,157,121,100,253, 78, 0, 3, 1, 49, 2,143, 3, 96, 5,195, 0, 19, 0, 27, + 0, 36, 0,125, 64, 83, 10, 28, 12, 34,224, 2, 20, 0, 2, 26,224, 12, 22,224, 18, 12, 18, 12, 18, 8, 15, 2,127, 2,191, 2, + 3, 2, 2, 30,224, 31, 8,239, 8, 2, 8,105, 20, 1,184, 0,200, 0,216, 0, 3,105, 0, 1,184, 10,200, 10,216, 10, 3,105, + 10, 1,105, 28,185, 28,201, 28,217, 28, 4, 28, 10, 0, 20, 4, 5, 24,229, 15,222, 32,229, 5,223, 0, 63,225, 63,225, 18, 23, + 57, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 51, 47, 93, 18, 57, 57, 47, 47, 16,225, 16,225, 17, 57, 57, 16,225, 17, 57, 57, 49, + 48, 1, 22, 21, 20, 6, 35, 34, 38, 53, 52, 55, 38, 53, 52, 54, 51, 50, 22, 21, 20, 7, 54, 53, 52, 35, 34, 21, 20, 23, 6, 21, + 20, 51, 50, 53, 52, 39, 2,186,166,152,124,136,147,139,114,144,112,111,141,252,106,108,107, 92,118,131,135,135, 4, 66, 85,122, +103,125,118,104,130, 74, 79,114, 91,110,108, 93,116, 19, 49, 84, 96, 96, 81,161, 63, 90,117,117, 89, 58, 0, 2, 1, 57, 2, 57, + 3,147, 5,201, 0, 20, 0, 31, 0, 57, 64, 31, 5, 26,224, 1, 11, 48, 17, 1, 17, 17, 21,224, 11, 5, 23,228, 15, 8, 1, 8, + 8, 14, 3,228, 1, 19,223, 29,230, 14,222, 0, 63,225, 63, 51,225, 17, 57, 47, 93,225, 50, 1, 47,225, 51, 47, 93, 18, 57,225, + 50, 49, 48, 1, 53, 22, 51, 32, 19, 35, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 21, 16, 33, 34, 19, 20, 51, 50, 54, 53, 52, 38, + 35, 34, 6, 1,135, 39, 62, 1, 16, 14, 8, 71,126,122,138,160,131,142,169,254, 99, 62, 13,149, 73, 97, 89, 77, 68, 85, 2, 72, +125, 23, 1, 59, 98,149,126,133,170,205,186,253,247, 2, 99,164, 87, 56, 80,123, 94, 0, 0, 18, 0, 55,254,129, 4,150, 5,238, + 0, 19, 0, 37, 0, 57, 0, 69, 0, 75, 0, 81, 0, 87, 0, 93, 0, 97, 0,101, 0,105, 0,109, 0,113, 0,117, 0,121, 0,125, + 0,134, 0,143, 1, 6, 64, 46, 98,122,101,125,122,125, 76, 93, 63, 19, 19, 69, 9,135,127,127, 37,139,131,131, 24, 15, 33, 95, + 33,111, 33, 3, 33, 33, 37, 42, 55, 79, 9, 95, 9, 2, 16, 37, 32, 37, 96, 37, 3, 37,184,255,192, 64,100, 21, 24, 72, 64, 55, + 80, 55,224, 55, 3, 9, 37, 55, 55, 37, 9, 3, 70, 85, 85,118,114,110, 93, 70,107,103, 95, 76,116,104,112, 96,120,108,104, 96, +108,108, 96,104, 3, 76, 71, 41, 57, 57, 38, 27,126,126,135, 32, 15, 19, 72,135,135, 20,127,127, 96, 37, 1, 37, 37,143, 20, 20, + 14,240, 38, 1,111, 38, 1, 38, 38, 52, 45, 60,255, 4, 1, 4, 4, 66, 14, 45, 14, 45, 14, 88, 83, 88,122, 76, 83, 99, 71, 0, + 47, 51, 51, 47, 51, 51, 17, 18, 57, 57, 47, 47, 17, 51, 51, 47, 93, 51, 17, 51, 51, 47, 93, 93, 18, 57, 47, 51, 51, 47, 93, 51, + 17, 18, 57, 47, 43, 51, 18, 57, 17, 51, 17, 51, 17, 18, 23, 57, 47, 47, 47, 17, 51, 17, 51, 17, 51, 1, 47, 50, 50, 50, 50, 47, + 51, 51, 51, 51, 17, 18, 23, 57, 47, 47, 47, 93, 43, 93, 93, 17, 51, 17, 51, 47, 93, 51, 51, 17, 51, 17, 51, 17, 51, 17, 51, 51, + 47, 51, 17, 18, 57, 57, 17, 51, 17, 51, 49, 48, 0, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 21, 3, 51, 50, 22, + 21, 20, 6, 7, 21, 30, 3, 21, 20, 6, 35, 35, 23, 33, 21, 35, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 35, + 0, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 21, 37, 17, 33, 21, 35, 21, 3, 17, 51, 21, 51, 21, 1, 53, 33, 17, 35, 53, 3, 53, + 51, 53, 51, 17, 1, 35, 17, 51, 1, 53, 33, 21, 1, 35, 17, 51, 17, 35, 17, 51, 1, 35, 17, 51, 17, 35, 17, 51, 17, 35, 17, 51, + 1, 53, 33, 21, 3, 21, 51, 50, 54, 53, 52, 38, 35, 39, 51, 50, 54, 53, 52, 38, 35, 35, 2,160, 25, 52, 78, 54, 54, 79, 51, 25, + 25, 51, 79, 54, 54, 78, 52, 25,137,137, 88, 88, 37, 35, 18, 31, 23, 14, 87, 75,165,223, 1, 10, 72, 88, 69, 31, 43, 12, 12, 39, + 24, 29, 39, 94,254,108, 53, 56, 57, 51, 51, 57, 56, 53,254,213, 1, 47,192,111,111,192, 2, 0, 1, 48,109,195,195,109,252, 16, +111,111, 1, 57, 1, 15,253,184,111,111,111,111, 3,240,109,109,109,109,109,109,253, 73, 1, 15,117, 59, 38, 30, 30, 42, 55, 51, + 37, 29, 33, 37, 47, 4, 5, 88, 64, 35, 35, 64, 88, 54, 55, 89, 63, 35, 35, 63, 89, 55,254,224, 53, 66, 40, 54, 7, 4, 3, 14, + 25, 38, 28, 65, 72, 52, 77,242, 80, 76, 5, 3, 82, 2, 4, 29, 41,244, 3, 44, 83, 83, 74, 75, 83, 83, 75,131, 1, 48,111,193, +249,195, 1, 47,194,109, 6,254,111,254,208,193,249, 2,109,194,254,209, 3, 45, 1, 16, 2,193,111,111,250,168, 1, 14, 2, 2, + 1, 15,253,104, 1, 16,253,105, 1, 14, 2, 2, 1, 15,250, 59,109,109, 3,145,122, 34, 31, 25, 32, 80, 27, 25, 27, 24, 0, 3, + 0, 4,254,193, 4,203, 6, 20, 0, 3, 0, 41, 0, 57, 0, 78, 64, 38, 4, 41, 41, 42,113, 50, 1, 80, 50, 96, 50, 2, 50, 50, + 42, 23, 23,127, 42, 1, 42, 42, 2, 30, 15, 15, 2, 55, 45, 41, 41, 45, 45, 3, 27, 18, 18, 3, 0, 25, 47, 51, 24, 47, 51, 17, + 51, 47, 51, 47, 17, 51, 1, 25, 47, 51, 24, 47, 51, 17, 51, 47, 93, 51, 47, 17, 51, 47, 93, 93, 17, 51, 47, 51, 49, 48, 9, 3, + 5, 53, 52, 62, 2, 55, 62, 3, 53, 52, 38, 35, 34, 14, 2, 7, 23, 54, 54, 51, 50, 22, 21, 20, 14, 2, 7, 14, 3, 21, 21, 7, + 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 2,102, 2,101,253,155,253,158, 2,152, 7, 20, 35, 28, 35, 53, 35, 18,152, +135, 35, 72, 70, 65, 28, 66, 55,102, 45, 53, 50, 11, 24, 38, 28, 31, 43, 27, 13, 21, 65, 50, 21, 41, 32, 19, 19, 32, 41, 21, 50, + 65, 6, 20,252, 86,252, 87, 3,169,233, 43, 23, 34, 33, 34, 23, 33, 57, 62, 71, 46,124,136, 14, 25, 33, 18,160, 31, 41, 53, 42, + 26, 40, 36, 37, 24, 28, 51, 54, 59, 36, 55,246, 65, 58, 14, 30, 47, 32, 34, 47, 29, 13, 56, 0,255,255, 0,135,254, 20, 3,169, + 6, 33, 2, 38, 2, 55, 0, 0, 1, 6, 1, 76,247, 0, 0, 11,182, 1,111, 24, 16, 0, 10, 37, 1, 43, 53, 0,255,255, 1,190, + 3,193, 3, 12, 5,182, 2, 6, 2, 7, 0, 0, 0, 2, 0, 10,255,236, 4,178, 6, 43, 0, 12, 0, 79, 0, 93, 64, 55, 8, 70, + 67, 67, 26, 0, 59, 71, 77,144, 16,160, 16, 2, 16, 16, 81, 15, 81,175, 81, 2, 51, 70,144, 26, 1, 26, 62, 79, 79, 78, 0, 78, + 34, 78, 41, 0, 41, 16, 41, 2, 78, 41, 78, 41, 56, 5, 78, 72, 1, 56, 78, 21, 22, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 93, + 16,225, 17, 51, 16,225, 50, 1, 47, 93,225, 93, 17, 51, 47, 93, 51,225, 50, 17, 57, 47,225, 49, 48, 1, 46, 3, 35, 34, 6, 21, + 20, 30, 2, 5, 22, 22, 21, 20, 2, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, + 2, 21, 20, 14, 2, 21, 20, 30, 2, 51, 50, 18, 17, 52, 38, 39, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 21, 3,106, 13, + 57, 77, 91, 48, 76, 86, 46,106,171, 1, 60, 2, 2, 64,129,196,131,111,146, 86, 34, 10, 11, 10, 31, 31, 24, 54, 16, 37, 37,100, + 54, 50, 69, 44, 19, 10, 11, 10, 21, 48, 78, 58,164,164, 2, 2,174,242,150, 67, 39, 81,127, 89,104,161,117, 75, 18,143, 3,209, +108,170,116, 61, 88, 72, 56,105, 82, 51,138, 22, 58, 31,159,254,238,201,115, 55, 95,125, 69, 40, 93, 89, 75, 24, 45, 33, 15, 10, +127, 17, 26, 28, 50, 68, 40, 35, 86, 93, 97, 45, 42, 74, 54, 31, 1, 50, 1, 48, 23, 62, 20, 2, 75,120,154, 81, 67,112, 82, 46, + 84,156,223,139,137, 0, 0, 1, 0, 31, 0, 0, 4,184, 5,195, 0, 32, 0,141,185, 0, 32,255,248,179, 20, 24, 72, 32,184,255, +248, 64, 70, 13, 16, 72, 38, 32, 54, 32, 2, 23, 32, 1, 32,175, 31,255, 31, 2, 89, 31, 1, 31, 0, 84, 13, 1, 41, 13, 1, 13, + 27, 90,208, 30, 1,162, 30, 1,147, 30, 1, 3,142, 30, 1, 4, 99, 30, 1, 5, 16, 30, 80, 30, 2, 30, 17, 10, 10, 59, 27, 1, + 59, 30, 1, 39, 0,183, 0, 2, 0,184,255,248, 64, 12, 13, 17, 72, 0, 30, 27, 3, 29, 31, 3, 29, 18, 0, 63, 63, 18, 23, 57, + 43, 93, 93, 93, 51, 17, 51, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,225, 50, 93, 93, 57,205, 93, 93, 50, 93, 93, 43, 43, 49, + 48, 1, 62, 3, 55, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 6, 7, 14, 5, 7, 17, 35, 17, 1, 51, 2,100, 25, 75, 78, 73, + 24, 22, 46, 54, 64, 41, 34, 43, 17, 12, 33, 12, 28, 62, 35, 12, 47, 58, 66, 63, 56, 19,187,254, 25,202, 2,219, 75,168,160,137, + 44, 40, 61, 39, 20, 9, 8,145, 3, 5, 47, 60, 21, 83,110,129,136,134, 60,253,227, 2, 47, 3,135, 0, 0, 2, 0, 18,255,236, + 4,180, 4, 74, 0, 32, 0, 64, 0, 95, 64, 60, 30, 29, 86, 56,102, 56, 2, 71, 56, 1, 56, 73, 55, 55, 5, 33, 73, 16, 21, 32, + 21, 2, 21, 21, 66, 44, 73, 64, 5, 80, 5,144, 5,160, 5,192, 5,208, 5, 6, 47, 5, 1, 5, 55, 55, 49, 39, 16, 10, 80, 13, + 15, 60, 30, 49, 80, 26, 0, 22, 0, 63, 50,225, 50, 50, 63,225, 50, 50, 18, 57, 47, 1, 47, 93, 93,225, 17, 51, 47, 93,225, 17, + 57, 47,225, 93, 93, 57, 57, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 55, 35, 53, 55, 33, 21, 35, 30, 3, 21, 20, 14, 2, 35, 34, + 38, 39, 35, 6, 6, 1, 52, 46, 2, 39, 33, 14, 3, 21, 20, 30, 2, 51, 50, 62, 2, 53, 53, 51, 21, 20, 22, 51, 50, 62, 2, 1, +123, 79,110, 69, 31, 10, 22, 35, 25,164,134, 4, 28,155, 24, 35, 23, 10, 31, 69,110, 79, 94,111, 26, 11, 26,111, 1,246, 10, 23, + 35, 24,253,233, 25, 35, 22, 10, 16, 35, 52, 36, 36, 54, 35, 17,157, 79, 63, 36, 52, 35, 16, 20, 68,128,181,114, 67,116,110,114, + 66, 74, 80,154, 66,114,110,116, 67,114,181,128, 68, 87, 91, 91, 87, 1,235, 62,114,112,118, 67, 67,118,112,114, 62, 91,129, 82, + 38, 41, 72, 98, 57,203,203,130,138, 38, 82,129,255,255, 0,113, 0, 0, 4, 92, 7,117, 2, 38, 0, 48, 0, 0, 1, 7, 0,118, + 0,100, 1, 84, 0, 19, 64, 11, 1, 26, 5, 38, 1,100, 20, 23, 6, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 92, 0, 0, + 4,115, 6, 33, 2, 38, 0, 80, 0, 0, 1, 6, 0,118,127, 0, 0, 19, 64, 11, 1, 39, 17, 38, 1,126, 33, 36, 17, 31, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 33,253,213, 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 6, 2, 91, 2, 0, 0, 23, 64, 13, + 3, 2, 30, 20, 39, 3, 2, 1, 25, 15, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,253,213, 4, 2, 4, 94, + 2, 38, 0, 68, 0, 0, 1, 6, 2, 91,251, 0, 0, 23, 64, 13, 3, 2, 49, 23, 39, 3, 2, 28, 44, 34, 8, 22, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255,254,200,255,236, 5, 12, 5,205, 0, 39, 0, 50, 0,145, 0, 0, 1, 7, 2, 92,253,155, 0, 0, + 0, 45, 64, 21, 3, 2, 43, 3, 3, 2, 96, 51, 1, 80, 51, 1, 64, 51, 1, 32, 51, 1, 0, 51, 1,184,255, 24,180, 51, 51, 2, + 2, 37, 1, 43, 93, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53, 0, 0, 2, 1,131,253,213, 3, 72,255,131, 0, 19, 0, 31, 0, 77, + 64, 16, 20, 16, 19, 24, 72, 20,131, 15, 0, 31, 0, 47, 0, 3, 0, 26,184,255,240,182, 19, 24, 72, 26,131, 10, 29,184,255,248, + 64, 25, 21, 24, 72, 29,140, 0, 5, 16, 5, 32, 5,112, 5,192, 5, 5, 5, 23, 8, 21, 24, 72, 23,140, 15, 0, 47,225, 43,220, + 93,225, 43, 1, 47,225, 43,220, 93,225, 43, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, + 35, 34, 6, 21, 20, 22, 51, 50, 54, 3, 72, 35, 62, 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 36,117, 63, 50, 49, 63, + 57, 55, 50, 63,254,174, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 0, 2, + 1, 45, 4,104, 3,139, 5,199, 0, 17, 0, 31, 0, 48, 64, 26, 64, 0, 1, 0, 64, 12, 12, 18, 32, 9, 12, 72, 18,128, 24, 23, + 30, 23, 30, 79, 3, 95, 3, 2, 3, 15, 0, 47,204, 93, 57, 57, 47, 47, 1, 47, 26,205, 43, 50, 47, 26,205, 93, 49, 48, 1, 52, + 54, 55, 21, 6, 6, 21, 20, 30, 2, 21, 20, 6, 35, 34, 38, 5, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1, 45,120,122, 60, 57, 31, + 36, 31, 50, 46, 59, 68, 1, 53, 11, 25, 24, 22, 8,207, 18, 48, 56, 62, 31, 82, 4,231, 78,115, 31, 76, 22, 46, 24, 19, 18, 16, + 26, 28, 37, 39, 70, 37, 30, 75, 79, 81, 36, 20, 32, 77, 80, 81, 37, 0, 0, 2, 0, 66, 0, 0, 4, 41, 6, 31, 0, 39, 0, 52, + 0, 99, 64, 55, 22, 41, 28, 28, 39, 39, 2, 41, 6, 38, 3, 3, 6, 6, 10,223, 2, 1, 2, 2, 54, 40, 7, 7, 13, 0, 10, 16, + 10, 80, 10,160, 10,176, 10, 5, 10, 10, 7, 3, 82, 40, 13, 38, 15, 47, 32, 78, 19, 25, 1, 9, 5, 1, 21, 0, 63, 51, 51, 63, + 51,225, 50, 63, 51, 51,225, 50, 50, 1, 47, 93, 51, 51, 17, 51, 17, 51, 47, 93, 18, 57, 47, 51, 17, 51, 17, 51, 17, 51, 17, 51, + 17, 18, 57, 49, 48, 33, 35, 17, 35, 17, 35, 17, 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 22, + 23, 7, 38, 38, 35, 34, 14, 2, 21, 21, 33, 33, 51, 53, 52, 55, 38, 38, 35, 34, 14, 2, 21, 4, 41,164,203,163,205,164,100,100, + 40, 77,112, 72, 49, 87, 34, 38,102, 63, 52, 91, 37, 41, 29, 69, 37, 38, 55, 36, 17, 1,111,253, 33,205, 24, 20, 45, 23, 35, 53, + 35, 18, 3,203,252, 53, 3,203,252, 53, 3,203, 65, 62, 82,106,141, 84, 35, 22, 13, 29, 27, 23, 14,131, 11, 17, 22, 52, 87, 64, +104,102,115, 78, 6, 8, 22, 52, 87, 64, 0, 2, 0, 66, 0, 0, 4, 41, 6, 31, 0, 39, 0, 52, 0, 97, 64, 54, 44, 20, 41, 26, + 26, 29, 41, 4, 38, 1, 1, 4, 4, 8,223, 29, 1, 29, 29, 54, 40, 5, 5, 11, 0, 8, 16, 8, 80, 8,160, 8,176, 8, 5, 8, + 8, 5, 1, 82, 40, 11, 38, 15, 7, 3, 28, 21, 47, 32, 78, 17, 23, 1, 0, 63, 51,225, 50, 63, 51, 51, 63, 51, 51,225, 50, 50, + 1, 47, 93, 51, 51, 17, 51, 17, 51, 47, 93, 18, 57, 47, 51, 17, 51, 17, 51, 17, 51, 17, 18, 57, 57, 49, 48, 1, 35, 17, 35, 17, + 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 23, 51, 17, 35, 17, 38, 38, 35, 34, 14, 2, 21, 21, + 51, 33, 51, 53, 52, 55, 38, 38, 35, 34, 14, 2, 21, 3, 72,142,163,205,164,100,100, 40, 77,112, 72, 49, 87, 34, 38,102, 63, 48, + 46,131,164, 14, 29, 14, 38, 55, 36, 17,142,254, 2,205, 24, 20, 45, 23, 35, 53, 35, 18, 3,203,252, 53, 3,203,252, 53, 3,203, + 65, 62, 82,106,141, 84, 35, 22, 13, 29, 27, 11,249,236, 5,141, 3, 3, 22, 52, 87, 64,104,102,115, 78, 6, 8, 22, 52, 87, 64, + 0, 2, 0, 84,255,236, 4,246, 6, 20, 0, 32, 0, 52, 0, 51, 64, 28, 23, 91, 25, 43, 91, 30, 18, 0, 54, 33, 91, 31, 10, 47, + 10, 2, 10, 30, 48, 95, 23, 18, 15, 4, 38, 95, 5, 19, 0, 63,225, 63, 51,206,225, 50, 1, 47, 93,225, 16,222, 50, 50,225,214, +225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 62, 3, 55, 51, 23, 14, 3, 7, 22, 22, + 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 4,123, 64,132,200,135,142,201,129, 60, 60,129,203,142,124,187, + 66, 18, 23, 13, 6, 2,198, 15, 11, 33, 49, 68, 46, 42, 42,252,158, 36, 79,128, 92, 93,128, 78, 35, 35, 78,127, 92, 93,128, 80, + 36, 2,221,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107, 90, 86, 19, 52, 63, 73, 40, 22, 52, 99, 87, 74, 28, 91, +233,137,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, 0,115,255,236, 4,246, 4,242, 0, 32, 0, 43, + 0, 53, 64, 28, 18, 30, 30, 0, 23, 74, 25, 38, 72, 0, 45, 33, 72, 0, 10, 1, 10, 30, 41, 80, 23, 18, 15, 16, 36, 80, 5, 22, + 0, 63,225, 63, 51,198,225, 50, 1, 47, 93,225, 16,222,225,220,225, 17, 51, 17, 51, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, + 52, 62, 2, 51, 50, 22, 23, 62, 3, 53, 51, 23, 14, 3, 7, 22, 22, 5, 20, 22, 51, 32, 17, 52, 38, 35, 34, 6, 4, 88, 74,133, +184,111,103,180,134, 78, 73,132,185,111, 97,171, 66, 38, 43, 21, 5,198, 15, 15, 42, 57, 75, 49, 38, 42,252,215,157,154, 1, 54, +157,155,154,155, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 66, 65, 16, 56, 72, 87, 48, 23, 69,114, 91, 67, 21, 66, +165, 99,211,209, 1,164,210,206,206, 0, 0, 1, 0,125,255,236, 5, 23, 6, 20, 0, 38, 0, 54, 64, 30, 6, 91, 96, 8,112, 8, + 2, 8, 37, 90, 1, 14, 40, 27, 90, 0, 24, 1, 24, 13, 1, 1, 38, 6, 25, 3, 32, 95, 19, 19, 0, 63,225, 63,206, 51, 51, 47, + 51, 1, 47, 93,225, 16,222, 50,225,220, 93,225, 49, 48, 1, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 20, 14, 2, 35, 34, 46, 2, + 53, 17, 51, 17, 20, 30, 2, 51, 50, 62, 2, 53, 17, 3,182, 47, 55, 29, 9,198, 15, 15, 48, 82,121, 87, 45, 99,159,115,108,154, + 99, 46,186, 24, 54, 89, 65, 67, 86, 49, 19, 5,182,194, 8, 52, 77, 97, 54, 22, 69,127,105, 75, 17,253,102,114,183,129, 69, 65, +126,186,122, 3,215,252, 51, 87,130, 86, 43, 48, 90,129, 82, 3,202, 0, 0, 1, 0,160,255,236, 5, 23, 4,242, 0, 39, 0, 87, +183, 31, 74, 0, 33, 16, 33, 2, 33,184,255,192,179, 20, 23, 72, 33,184,255,192, 64, 35, 14, 17, 72, 33, 1, 0, 23, 71, 26, 38, + 41, 14, 71, 0, 13,176, 13, 2, 13, 38, 26, 26, 13, 31, 31, 24, 13, 15, 2, 18, 80, 7, 22, 0, 21, 0, 63, 63,225, 50, 63, 51, + 51, 47, 17, 51, 47, 51, 1, 47, 93,225, 16,222, 50,225, 50, 50,221, 43, 43, 93,225, 48, 49, 33, 39, 35, 14, 3, 35, 34, 46, 2, + 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 51, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 3, 18, 26, 8, 22, 60, 72, 80, 41, + 79,119, 79, 40,182, 84, 90, 66, 90, 56, 24,182, 52, 62, 32, 10,198, 15, 15, 50, 85,127, 92,147, 43, 63, 41, 20, 46, 98,152,105, + 2,205,253, 61,130,130, 52,101,148, 96, 2, 58,123, 6, 50, 78,101, 56, 23, 70,136,110, 72, 7,252,176,255,255, 1,162, 4,217, + 3, 43, 6, 33, 2, 6, 0, 67, 0, 0,255,255, 1,162, 4,217, 3, 43, 6, 33, 2, 6, 0,118, 0, 0,255,255, 0,254, 4,217, + 3,205, 5,227, 2, 6, 1, 82, 0, 0, 0, 1, 1,172, 4,184, 3, 33, 6,143, 0, 27, 0, 46, 64, 23, 7, 5, 8, 8, 21, 13, +132, 0, 0, 21, 5, 8, 8, 6, 18,141, 15, 25, 31, 25, 2, 25, 6, 0, 47,220, 93,225, 18, 57, 47, 51, 1, 47, 51, 47,225, 17, + 57, 47, 51, 51, 48, 49, 1, 20, 14, 2, 7, 7, 35, 39, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22, 3, 33, + 27, 45, 60, 34, 10,113, 14, 37, 59, 42, 23, 20, 36, 50, 29, 28, 52, 16, 16, 50, 41,133,133, 5,211, 39, 58, 41, 26, 8,111,176, + 6, 16, 24, 33, 24, 24, 32, 19, 7, 3, 3,108, 3, 5, 91, 0, 0, 1, 1,252,254,152, 2,209,255,125, 0, 13, 0, 15,181, 6, +135, 0, 11,145, 3, 0, 47,237, 1, 47,237, 48, 49, 5, 52, 54, 51, 50, 22, 21, 20, 14, 2, 35, 34, 38, 1,252, 61, 45, 44, 63, + 17, 29, 39, 22, 45, 61,246, 60, 55, 55, 60, 29, 43, 28, 14, 55,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, + 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,160,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,137, 0, 0, 4, 70, 7,115, 2, 38, 1,178, 0, 0, 1, 7, 0, 67,255,181, 1, 82, 0, 21,180, 1, 17, 5, 38, 1, +184,255,180,180, 20, 17, 0, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, + 1, 6, 0, 67,212, 0, 0, 21,180, 2, 23, 17, 38, 2,184,255,212,180, 26, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0,160, 0, 0, 4, 45, 6, 33, 2, 38, 1,210, 0, 0, 1, 6, 0, 67,179, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,179,180, + 15, 12, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0, 82,255,236, 4,123, 5,201, 0, 60, 0,117, 64, 31, 12, 15, 13,191, + 13, 2, 13, 64, 12, 17, 72, 13, 13, 19, 29, 0,251, 58, 58, 39, 7,251, 19, 62, 46, 0, 45,176, 45, 2, 45,184,255,192, 64, 34, + 12, 17, 72, 45, 45, 51,251, 47, 39, 1, 39, 59, 59, 56, 42, 12, 46, 46, 10, 48, 95, 16, 42, 4, 0, 58, 58, 29, 2, 56, 95, 24, + 34, 19, 0, 63, 51,225, 50, 50, 50, 17, 51, 63, 51,241, 50,194, 47, 50, 17, 18, 57, 47, 1, 47, 93,225, 50, 47, 43, 93, 51, 16, +222,225, 17, 57, 47,225, 57, 17, 51, 47, 43, 93, 51, 49, 48, 37, 22, 51, 50, 62, 2, 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, + 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, + 30, 2, 51, 50, 55, 17, 51, 2,188, 39, 56, 48, 67, 42, 19, 78, 66, 55, 41, 47, 34, 88, 48,146,147, 34, 78,128, 94, 33, 54, 46, + 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, 66, 77, 19, 43, 68, 48, 57, 37,170,186, 43, 89,164, +229,141, 1, 19, 1, 20, 29,152, 23, 18,254,153,254,154,192,254,219,198,101, 13, 24, 37, 24, 24, 37, 24, 13,101,198, 1, 37,192, + 1,102, 1,103, 18, 23,152, 29,254,236,254,237,141,229,164, 89, 43, 1,220, 0, 0, 1,255,252, 0, 0, 4,137, 4, 74, 0, 42, + 0,122, 64, 46, 7, 13, 1, 13, 38, 14, 33, 21,253, 34, 1,187, 34, 1, 34, 34, 27, 15, 73, 95, 14, 1, 14, 14, 1, 27, 73, 12, + 28, 1, 28, 44, 42, 6, 0, 0, 1,166, 0,182, 0, 2,148, 0, 1, 0,184,255,192, 64, 23, 11, 15, 72, 0, 0, 2, 73, 1, 38, + 13, 13, 0, 27, 14, 1, 15, 21, 34, 34, 7, 79, 0, 21, 0, 63,225, 51, 17, 51, 63, 51, 51, 18, 57, 17, 51, 1, 47,225, 51, 47, + 43, 93, 93,113, 51, 51, 16,222, 93,225, 17, 57, 47, 93,225, 17, 51, 47, 93, 93, 51, 51, 18, 57, 57, 93, 49, 48, 33, 1, 51, 19, + 22, 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 39, 6, 6, + 7, 3, 1, 27,254,225,160,163, 20, 34, 8, 4, 5, 15, 18, 20, 10, 86,109,150,137, 8, 22, 23, 22, 7, 6, 63, 79, 45, 16,153, + 26, 66,113, 88,163, 84, 7, 11, 3, 5, 16, 8,106, 4, 74,253, 92, 85,157, 51, 18, 56, 65, 67, 30, 1, 16, 1,205,253,176, 33, + 96,103, 96, 33,104,210,230, 1, 2,151,163,254,224,254,245,253,127, 1, 84, 26, 56, 20, 20, 62, 22,254,174, 0, 0, 2, 0, 20, + 0, 0, 4,117, 6, 20, 0, 22, 0, 33, 0, 65, 64, 33, 19, 0, 23, 90, 16, 12, 12, 14, 27, 91, 21, 6, 35, 14, 33, 95, 0, 22, + 14, 95, 15, 19, 15, 0, 15, 0, 15, 17, 0, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 17, 51, 16,225, 50, 16,225, 1, 47, + 16,222,204,225, 17, 57, 47, 51,225, 50, 50, 48, 49, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 17, 51, 17, 33, + 21, 33, 17, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1,250, 94,152,207,127, 55, 60,126,194,134,254,204,254,213, 1, 43,187, 1,137, +254,119,104,175,163, 46, 91,138, 93, 74, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164, 1, 16,254,240,164,252, 64,132,136, + 70, 97, 60, 27, 0, 2, 0, 20, 0, 0, 4, 88, 5, 39, 0, 20, 0, 33, 0, 67, 64, 34, 0, 0, 28, 19, 2, 22, 71, 16, 12, 12, + 14, 28, 70, 6, 35, 14, 1, 13, 80, 16, 21, 80, 2, 2, 19, 16, 17, 17, 16, 15, 22, 80, 12, 21, 0, 63,225, 63, 51, 47, 17, 51, + 57, 47,225, 16,225, 50, 1, 47, 16,222,225, 17, 57, 47, 51,225, 50, 50, 17, 57, 47, 48, 49, 1, 33, 17, 33, 50, 22, 21, 20, 14, + 2, 35, 33, 17, 35, 53, 51, 53, 51, 21, 33, 1, 17, 51, 50, 62, 2, 53, 52, 46, 2, 35, 2,227,254,213, 1, 0,212,204, 47,101, +159,113,254, 78,238,238,182, 1, 43,254,213,240, 55, 93, 68, 38, 33, 65, 96, 64, 3,176,254,215,156,155, 77,124, 88, 47, 3,176, +154,221,221,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 0, 1, 0, 98,255,236, 4,182, 5,203, 0, 45, 0, 86, 64, 48, + 5, 8, 34, 27, 64, 9, 12, 72, 15, 7, 1, 27, 7, 17, 17, 7, 27, 3, 30, 42, 47, 33, 29,251, 30, 8, 28, 95, 5, 33, 33, 13, + 43, 0, 95, 42, 39, 4, 31, 3, 30, 18, 16, 13, 95, 17, 22, 19, 0, 63, 51,225, 50, 63, 63, 63, 51,225, 50, 18, 57, 47, 51,225, + 50, 1, 47,225, 50, 16,206, 17, 23, 57, 47, 47, 47, 93, 43, 51,201, 50, 48, 49, 1, 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, + 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 39, 35, 17, 35, 17, 51, 17, 51, 62, 3, 51, 50, 22, 23, 7, 38, 38, 3,145, 68,114, 85, + 55, 9, 1,211,254, 41, 3, 45, 85,125, 82, 66,116, 57, 30, 59, 64, 73, 44,120,178,120, 62, 4,139,166,166,144, 11, 76,128,178, +112, 84,149, 60, 73, 45,106, 5, 39, 64,122,176,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,100,184, 1, 3,159,253, 86, + 5,182,253,152,143,235,167, 92, 44, 42,156, 32, 46, 0, 0, 1, 0,160,255,236, 4,123, 4, 94, 0, 45, 0, 85, 64, 47, 31, 34, + 73, 12, 15, 5, 31, 5, 2, 5, 33, 5, 33, 8, 43, 22, 47, 11, 7, 73, 0, 8, 1, 8, 23, 28, 81, 17, 34, 6, 80, 31, 11, 11, + 22, 17, 16, 9, 15, 8, 21, 42, 39, 81, 43, 0, 22, 0, 63, 50,225, 50, 63, 63, 63, 51, 57, 47, 51,237, 50, 16,225, 50, 1, 47, + 93,225, 50, 16,206, 50, 17, 57, 57, 47, 47, 93, 51,225, 50, 48, 49, 5, 34, 46, 2, 39, 35, 17, 35, 17, 51, 17, 51, 62, 3, 51, + 50, 30, 2, 23, 7, 46, 3, 35, 34, 6, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 6, 6, 3,127, 85,149,114, 70, 6,149,162, +162,151, 11, 75,114,147, 83, 34, 68, 64, 57, 21, 47, 21, 50, 52, 51, 23,123,129, 12, 1,162,254, 92, 4, 36, 64, 93, 61, 72,115, + 48, 47,110, 20, 58,123,193,135,254, 23, 4, 74,254, 57,128,181,114, 52, 9, 16, 22, 12,154, 10, 19, 15, 9,151,166,154, 92,132, + 84, 40, 37, 25,162, 29, 30, 0, 0, 2, 0, 0, 0, 0, 4,205, 5,182, 0, 11, 0, 20, 0,169, 64, 32, 16, 15, 14, 13, 8, 7, + 17, 7, 14, 15, 16, 3, 17, 7, 8, 7, 24, 7, 2, 7, 6, 7, 5, 1,199, 5,215, 5,231, 5, 3, 5,184,255,248, 64, 64, 10, + 16, 72, 5, 17, 18, 19, 20, 1, 2, 17, 2, 20, 19, 18, 3, 2, 8, 4, 1,200, 4,216, 4,232, 4, 3, 4, 8, 10, 16, 72, 4, + 17, 17, 21, 6, 10,251, 21, 11, 1, 11, 11, 3, 6, 2, 3, 9, 8, 1, 96, 13, 12, 12, 2, 17, 95, 4, 3, 11, 7, 2, 18, 0, + 63, 51, 51, 63,225, 18, 57, 47, 51,225, 50, 50, 1, 47, 51, 47, 18, 57, 47, 93,225, 17, 18, 57, 17, 51, 43, 93,113, 18, 0, 23, + 57, 16,125,135, 5,196,196,196,196, 17, 1, 51, 43, 93,113, 17, 51, 93, 17, 18, 0, 23, 57, 16,135, 5,196,196,196,196,196, 49, + 48, 1, 35, 3, 35, 1, 51, 1, 35, 3, 35, 17, 35, 3, 33, 39, 38, 38, 39, 6, 6, 7, 2, 16,112,238,178, 2, 8,187, 2, 10, +182,238,115,166, 55, 1, 29, 39, 37, 51, 19, 18, 60, 28, 2,170,253, 86, 5,182,250, 74, 2,170,253, 86, 3, 68,110,105,170, 75, + 75,183, 92, 0, 0, 2, 0, 61, 0, 0, 4,141, 4, 74, 0, 11, 0, 23, 0,210, 64,108, 18, 19, 20, 21, 22, 8, 9, 17, 21, 20, + 19, 18, 4, 17, 71, 9, 1, 9, 71, 10, 5, 73, 6,168, 11,184, 11, 2,138, 11,154, 11, 2, 11, 8, 12, 16, 72, 11, 23, 12, 13, + 14, 15, 17, 2, 17, 15, 14, 13, 12, 4, 2,198, 0, 1,179, 0, 1,165, 0, 1,134, 0,150, 0, 2,117, 0, 1, 70, 0, 86, 0, +102, 0, 3, 55, 0, 1, 0, 17, 17,134, 6,150, 6, 2, 21, 6, 37, 6, 2, 6, 6, 1, 10, 72, 2, 1, 2, 1, 4, 3, 8, 80, + 23, 22,184,255,192, 64, 20, 9, 12, 72, 22, 22, 1, 11, 16, 17, 82, 11, 15, 9, 21, 2, 21, 10, 6, 1, 21, 0, 63, 51, 51, 63, + 63, 63,241,196, 17, 18, 57, 47, 43, 51,225, 50, 50, 1, 47,193, 93, 47, 18, 57, 47, 93, 93, 57, 17, 51, 93, 93, 93, 93, 93, 93, + 93, 18, 0, 23, 57, 16,125,135, 5,196,196,196,196,196, 1, 51, 43, 93, 93, 16,225, 16,241, 93, 17, 0, 23, 57,135, 5,196,196, +196,196,196,196, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 1, 18, 46, 2, 39, 35, 14, 3, 7, 51, 2,217, 1,180,188, +184, 99,162,104,184,183, 1,181,225, 35, 35, 29, 8, 12, 8, 30, 34, 34, 13,252, 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, + 4, 74,254, 92, 90, 93, 86, 30, 29, 87, 93, 91, 34, 0, 0, 2, 0, 98, 0, 0, 4,252, 5,182, 0, 19, 0, 28, 1, 4, 64,138, +198, 13, 1,183, 13, 1,166, 13, 1,119, 13, 1, 13, 25,136, 21, 1, 89, 21,105, 21, 2, 24, 23, 22, 21, 16, 15, 25, 15, 22, 23, + 24, 3, 25, 15, 86, 20,102, 20,134, 20, 3, 26, 27, 28, 20, 1, 2, 25, 2, 28, 27, 26, 3, 2,216, 12, 1,201, 12, 1,120, 12, +168, 12,184, 12, 3, 12, 25, 25, 14, 3, 6, 18, 1, 18,251, 19, 1,204, 19, 1,181, 19, 1,166, 19, 1, 90, 19,106, 19,138, 19, + 3, 5, 19, 1, 19, 19, 7, 15, 0, 14, 1, 14, 23, 2, 1, 2, 50, 3, 1, 41, 3, 1, 24, 3, 1, 3, 3, 10, 6,251, 7, 17, + 16, 1, 96, 20, 21, 20, 80, 20, 1, 20,184,255,192, 64, 20, 9, 12, 72, 20, 4, 5, 96, 11, 10, 10, 2, 25, 12, 8, 3, 19, 15, + 7, 2, 18, 0, 63, 51, 51, 51, 63, 51,192, 18, 57, 47, 51,225, 50, 51, 43, 93, 17, 51, 16,237, 50, 50, 1, 47,225, 50, 50, 47, + 93, 93, 93,193, 93, 47, 93,193, 18, 57, 47, 93, 93, 93, 93, 93, 93,193, 93, 17, 18, 57, 17, 51, 93, 93, 93, 18, 0, 23, 57, 16, +125,135, 5,196,196,196,196,196, 1, 93, 17, 18, 0, 23, 57, 16,135, 5,196,196,196,196,196, 1, 93, 93, 17, 51, 93, 93, 93, 93, + 48, 49, 1, 35, 3, 35, 19, 33, 17, 35, 17, 51, 17, 33, 19, 51, 1, 35, 3, 35, 17, 35, 3, 51, 39, 38, 38, 39, 6, 6, 7, 2, +215, 47,168,168,176,255, 0,166,166, 1, 39,162,174, 1,125,168,172, 45,164, 8,182, 18, 22, 40, 12, 12, 38, 20, 2,170,253, 86, + 2,170,253, 86, 5,182,253,148, 2,108,250, 74, 2,170,253, 86, 3, 74, 84, 97,153, 75, 75,153, 91, 0, 0, 2, 0,123, 0, 0, + 5, 10, 4, 74, 0, 19, 0, 31, 0,200, 64,122, 17, 13, 73, 14,102, 5, 1, 84, 5, 1, 5, 73, 4, 6, 20, 6, 52, 6, 68, 6, + 4,244, 6, 1,203, 6, 1,188, 6, 1,165, 6, 1,106, 6, 1, 89, 6, 1, 69, 6, 1, 51, 6, 1, 27, 6, 1, 6, 6, 1, 0, + 14, 16, 14, 2, 14, 18, 11, 10, 19, 10, 19, 8, 24, 30, 9, 3, 25, 30, 2, 0,100, 30, 1, 30, 30, 2, 9,192, 10, 1, 15, 10, + 1, 0, 10, 1, 10, 2, 0, 1, 80, 1, 2, 1, 30, 4, 3, 8, 80, 24, 25, 24, 24, 11, 12, 80, 18, 17, 17, 1, 19, 15, 15, 9, + 2, 14, 10, 6, 1, 21, 0, 63, 51, 51, 51, 47, 47, 63, 51, 18, 57, 47, 51,225, 50, 51, 17, 51, 16,225, 50, 50, 47, 1, 47, 93, +193, 47, 93,113,113,193, 17, 57, 25, 47, 93, 51,135,192,192,135,192,192, 1, 51, 16,125,135,196,196, 1, 24, 47, 93, 18, 57, 47, + 93, 93, 93, 93, 93, 93, 93, 93, 93,113,225, 93, 93, 16,225, 50, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 19, 35, 17, + 35, 17, 51, 17, 33, 19, 22, 14, 2, 7, 51, 46, 3, 39, 35, 3,158, 1,108,168,155, 58,161, 58,158,165,163,245,162,162, 1, 39, +151, 92, 21, 26, 27, 12,183, 12, 28, 26, 21, 4, 2, 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 1,233,254, 23, 4, 74,254, + 57, 1,199,144, 86, 96, 94, 35, 35, 94, 96, 86, 25, 0, 0, 2, 0, 0, 0, 0, 4,205, 5,182, 0, 35, 0, 38, 0, 83, 64, 44, + 36, 11, 26,251, 6, 74, 27, 90, 27, 2, 22, 27, 1, 27, 27, 40, 0, 37, 10, 10, 18, 40, 38, 7, 7, 35, 39, 0, 25, 29, 97, 36, + 11, 6, 6, 0, 38, 95, 8, 3, 27, 18, 0, 18, 0, 63, 50, 50, 63,225, 18, 57, 47, 51, 51,225, 50, 1, 47, 17, 51, 51, 47, 51, + 17, 51, 51, 47, 51, 17, 18, 57, 47, 93, 93, 51,225, 50, 57, 48, 49, 49, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, + 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33,113, 21, 49, 76,114, 86,254,178, 3,213,254,178, 89,113, 74, + 47, 21,113,170,113, 18, 34, 49, 70, 54, 23,168, 22, 54, 70, 49, 34, 18,113, 1,192, 1, 37,253,181, 1,197, 85,136, 98, 58, 6, + 1,231,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, 72,254, 63, 3, 96, 1, +178, 0, 0, 2, 0, 10, 0, 0, 4,195, 4, 74, 0, 35, 0, 38, 0,117, 64, 68, 36,102, 11, 1, 11, 26, 73, 6,183, 27, 1,165, + 27, 1,148, 27, 1,139, 27, 1,122, 27, 1, 89, 27, 1, 75, 27, 1, 27, 27, 39, 17, 38, 0, 7, 1, 7, 7, 35, 39, 37, 15, 10, + 1, 10, 10, 17, 10, 7, 7, 8, 25, 28, 82, 36, 11, 6, 6, 0, 38, 80, 8, 15, 27, 18, 0, 21, 0, 63, 50, 50, 63,225, 18, 57, + 47, 51, 51,225, 50, 17, 51, 17, 51, 1, 47, 51, 47, 93, 51, 17, 51, 51, 47, 93, 51, 17, 18, 57, 47, 93, 93, 93, 93, 93, 93, 93, + 51,225, 50, 93, 57, 48, 49, 51, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, + 14, 2, 7, 3, 1, 19, 33, 10,119, 21, 42, 66,100, 80,254,215, 3,181,254,210, 80,100, 66, 44, 22,119,181,118, 20, 36, 47, 66, + 51, 4,164, 4, 51, 66, 48, 36, 20,119, 1,168,246,254, 25, 1, 84, 61,101, 77, 49, 9, 1,100,105,105,254,156, 8, 49, 76,102, + 62,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, 10, 17, 43, 72, 54,254,176, 2,131, 1, 45, 0, 0, 2, 0, 92, 0, 0, 4,233, + 5,182, 0, 40, 0, 43, 0,115, 64, 64, 41, 16, 31,251, 11, 5, 32, 1, 32, 32, 0, 23,251, 22, 42, 91, 15, 15, 0, 22, 1, 22, + 43, 90, 12, 12, 40,251, 4, 47, 0, 1, 0, 0, 6,251, 32, 7, 48, 7, 2, 7, 15, 12, 12, 13, 13, 8, 34, 30, 5, 96, 41, 10, + 10, 0, 43, 8, 3, 32, 23, 7, 0, 18, 0, 63, 50, 50, 50, 63,192, 18, 57, 47,196,237, 50, 50, 17, 51, 17, 51, 17, 51, 1, 47, + 93,225, 50, 47, 93, 51,225, 51, 47,225, 47, 93, 51, 47,225, 16,225, 17, 57, 47, 93, 51,225, 50, 57, 49, 48, 33, 19, 54, 54, 55, + 35, 17, 35, 17, 51, 17, 33, 3, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, + 19, 33, 1, 96, 56, 9, 19, 23,201,166,166, 1,127,246, 3, 58,254,254, 65, 83, 52, 29, 10, 55,170, 55, 9, 16, 28, 46, 38, 8, +164, 8, 39, 45, 28, 16, 9, 56, 1, 27,223,254, 66, 1,197, 81,108, 40,253, 86, 5,182,253,148, 1,225,139,139,254, 25, 6, 56, + 97,137, 87,254, 59, 1,193, 73, 95, 56, 23,253, 72, 2,184, 23, 56, 95, 73,254, 63, 3, 90, 1,184, 0, 0, 2, 0,123, 0, 0, + 5, 10, 4, 74, 0, 40, 0, 43, 0,149, 64, 91, 41, 16, 31, 73, 26, 11, 1, 9, 11, 1, 11, 5, 32, 1,245, 32, 1,196, 32, 1, +182, 32, 1,117, 32, 1,104, 32, 1, 6, 32, 1, 32, 32, 22, 0, 42, 72, 15, 15, 23, 73, 0, 22, 1, 22, 43, 72, 96, 12, 1, 12, + 12, 40, 73, 42, 4, 1, 4,175, 0, 1, 0, 0, 10, 6, 73, 0, 7, 16, 7, 2, 7, 30, 34, 34, 5, 80, 41, 10, 10, 0, 43, 13, + 8, 15, 32, 23, 7, 0, 21, 0, 63, 50, 50, 50, 63, 51,192, 18, 57, 47, 51,241,192, 47, 50, 1, 47, 93,225, 50, 50, 47, 93, 51, + 93,225, 51, 47, 93,225, 47, 93,225, 51, 47,225, 17, 18, 57, 47, 93, 93, 93, 93, 93, 93,113, 51, 93, 93,225, 50, 57, 49, 48, 33, + 19, 54, 54, 55, 35, 17, 35, 17, 51, 17, 33, 3, 53, 33, 21, 3, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, + 2, 7, 3, 1, 19, 33, 1,115, 73, 11, 26, 17,213,162,162, 1,129,230, 3, 11,238, 61, 78, 51, 32, 14, 73,164, 73, 12, 19, 28, + 41, 33, 9,161, 9, 33, 41, 27, 20, 12, 76, 1, 41,193,254,125, 1, 84, 50, 67, 32,254, 23, 4, 74,254, 57, 1, 94,105,105,254, +158, 8, 49, 77,103, 62,254,172, 1, 80, 53, 71, 44, 18,253,246, 2, 10, 18, 44, 71, 53,254,176, 2,131, 1, 45, 0, 1, 0,117, +254, 70, 4, 39, 6,213, 0,118, 0,131, 64, 68, 98, 71, 81, 81, 77, 89, 89,108, 57, 91,103,103, 44, 91,114, 18, 18,114,120, 78, + 0, 77, 1, 77, 77, 67, 68, 68, 34, 50, 50, 5, 90, 34, 90, 93, 64, 86, 86, 78,128, 67, 62, 97, 98,108, 50, 97, 51, 51, 81, 71, + 68, 98, 4, 39, 96, 0, 18, 15, 10, 95, 24, 19, 29, 29, 0, 19, 0, 63, 50, 47, 51, 51,225, 50, 50, 16,225, 63, 51, 51, 51, 57, + 47,225, 57, 16,225, 50, 26,204, 50, 47, 26,205, 50, 1, 47,225, 51, 47, 17, 51, 47, 51, 51, 47, 93, 51, 16,206, 50, 47, 16,225, + 51, 47,225, 50, 51, 47, 18, 57, 17, 51, 51, 48, 49, 5, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, + 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, + 34, 14, 2, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 30, 3, + 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 2, 29, 71, 91, 52, 20, 14, 36, 61, 47, 65, 97, 84, 81, 50, 86, 94, 25, 8, 32, + 53, 78, 53, 49, 71, 74, 92, 70,104,135, 80, 31, 49,102,157,107, 89,128, 81, 38, 56,104,144, 89,190,176, 92,142, 97, 50, 38, 68, + 95, 57, 55, 97, 86, 79, 38, 92, 59,167,102, 24, 55, 54, 50, 20,121, 51, 98, 54, 26, 58, 67, 75, 42, 31, 47, 14, 11, 33, 17, 22, + 49, 48, 46, 20, 83,125, 85, 43, 51, 91,125, 75, 88,137, 95, 49, 66,132,195, 20, 18, 32, 41, 24, 22, 36, 26, 14, 4, 4, 4, 24, + 15,182, 7, 18, 16, 12, 3, 3, 2, 41, 72, 96, 55, 60, 98, 70, 38, 38, 72,106, 67, 71,101, 63, 29,151, 39, 72,101, 61, 54, 83, + 58, 30, 18, 31, 45, 27,125, 48, 75, 17, 30, 66, 63, 57, 23, 27, 34, 97, 56, 36, 70, 56, 35, 9, 5,119, 5, 7, 23, 41, 56, 33, + 13, 63, 92,118, 69, 73,120, 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 0, 1, 0,143,254,115, 4, 8, 5, 82, 0,110, + 0,166, 64, 96, 20, 75, 70, 26,136, 96, 1,105, 96,121, 96, 2, 58, 96, 1, 41, 96, 1, 96,197, 10, 1,103, 10,119, 10, 2, 69, + 10, 85, 10, 2, 39, 10, 1, 10,106,106, 93, 86, 70, 15, 4, 4, 15, 15, 49, 49, 26,112, 64,103,102,102, 92, 93, 93, 65, 79, 79, + 36, 73, 65, 7, 82, 0, 0,103,128, 92, 89, 78, 96, 21, 79, 80, 80, 80,106, 93, 10, 96, 16, 70, 78, 31, 49, 46, 41, 80, 55, 50, + 60, 60, 31, 22, 0, 63, 51, 47, 51, 51,225, 50, 50, 16,225, 63, 51, 51, 51, 57, 47,225, 57, 16,225, 50, 26,205, 50, 47,225, 1, + 47,225, 51, 47, 17, 51, 47, 51, 51, 47, 51, 26, 16,206, 50, 47, 50, 47, 51, 47, 16,225, 18, 57, 17, 51, 93, 93, 93, 93, 51, 93, + 93, 93, 93, 16,225, 50, 48, 49, 1, 50, 22, 23, 21, 38, 38, 35, 34, 6, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, + 2, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, + 51, 50, 62, 2, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, + 23, 62, 3, 3,125, 22, 31, 17, 14, 22, 14, 46, 92, 42, 59, 98, 69, 38, 28, 50, 71, 43, 47, 83, 61, 36, 55,121,191,135, 74, 89, + 47, 15, 15, 37, 64, 48, 54,109,102, 90, 36, 72, 78, 14, 10, 36, 43, 46, 21, 34, 92,108,119, 60, 95,122, 69, 26, 35, 85,145,110, + 81,125, 85, 45,154,159,148,121, 59,111, 86, 53,129,121, 79,147, 83, 63, 62,118, 70, 21, 47, 48, 45, 20,121, 54,101, 56, 28, 61, + 71, 83, 5, 82, 4, 6,117, 3, 3, 75, 62, 12, 46, 68, 92, 59, 50, 78, 59, 41, 13, 11, 13, 43, 66, 92, 62, 67,117, 86, 49, 14, + 26, 38, 23, 22, 35, 24, 13, 3, 4, 3, 22, 19,151, 10, 15, 10, 6, 3, 3, 3, 43, 69, 87, 45, 51, 90, 67, 40, 19, 43, 69, 51, + 94, 91,153, 11, 35, 66, 54, 77, 77, 38, 34,147, 28, 34, 8, 28, 57, 56, 51, 21, 27, 35, 96, 56, 34, 70, 57, 36,255,255, 0, 57, + 0, 0, 4,150, 5,182, 2, 6, 1,117, 0, 0,255,255, 0, 80,254, 20, 4,131, 6, 18, 2, 6, 1,149, 0, 0, 0, 3, 0, 84, +255,236, 4,123, 5,205, 0, 19, 0, 30, 0, 41, 0, 43, 64, 22, 25, 37, 91, 0, 43, 36, 26, 91, 10, 26, 96, 36, 36, 20, 31, 95, + 15, 4, 20, 95, 5, 19, 0, 63,225, 63,225, 18, 57, 47,225, 1, 47,225, 50, 16,222,225, 50, 48, 49, 1, 20, 2, 6, 6, 35, 34, + 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 46, 3, 4,123, 64, +132,200,135,142,201,129, 60, 60,129,203,142,135,199,131, 64,253,237, 87,123, 79, 39, 4,253,103, 4, 40, 80,123, 88, 85,122, 81, + 42, 5, 2,153, 5, 42, 79,120, 2,221,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,253, 7, 71, +134,194,122,122,194,134, 71, 4,154, 67,128,184,117,117,184,128, 67, 0, 0, 3, 0,115,255,236, 4, 88, 4, 94, 0, 19, 0, 25, + 0, 30, 0, 43, 64, 22, 29, 22, 72, 0, 32, 28, 23, 72, 10, 23, 80, 28, 28, 20, 26, 80, 15, 16, 20, 80, 5, 22, 0, 63,225, 63, +225, 18, 57, 47,225, 1, 47,225, 50, 16,222,225, 50, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, + 32, 19, 33, 22, 22, 19, 32, 3, 33, 2, 4, 88, 74,133,184,111,103,180,134, 78, 73,132,185,111,103,181,134, 78,254, 14, 1, 26, + 26,253,151, 11,156,140,254,239, 32, 2,101, 35, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 75,145,211,253,212, 1, +100,179,177, 3, 68,254,186, 1, 70, 0, 0, 1, 0, 63, 0, 0, 5, 33, 5,195, 0, 28, 0, 79, 64, 47, 26, 26, 5, 25, 6, 55, + 6, 1, 38, 6, 1, 6, 24, 7, 56, 7, 2, 7, 13, 17, 13, 8, 0, 25, 48, 25, 80, 25, 96, 25, 4, 25, 9, 8, 26, 0, 97, 25, + 22, 4, 8, 3, 13, 7, 18, 6, 18, 0, 63, 63, 51, 63, 63, 51,225, 50, 1, 47, 51, 47, 93, 18, 57, 57, 17, 51, 93, 51, 93, 93, + 17, 18, 57, 50, 47, 48, 49, 1, 34, 14, 2, 7, 1, 35, 1, 51, 1, 22, 22, 23, 54, 54, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, + 38, 4,180, 35, 53, 42, 36, 18,254,215,209,254, 61,197, 1, 10, 26, 45, 17, 14, 42, 26,142, 32, 60, 76,103, 75, 35, 68, 26, 23, + 54, 5, 45, 37, 72,103, 66,251,233, 5,182,252,109, 93,185, 79, 78,188, 97, 2, 0,113,156, 98, 43, 13, 8,151, 9, 13, 0, 1, + 0, 82, 0, 0, 4,174, 4, 82, 0, 35, 0, 80, 64, 51, 33, 24, 34,102, 34,118, 34, 2, 23, 34, 55, 34, 71, 34, 87, 34, 4, 34, + 24, 35, 40, 35, 56, 35, 3, 35, 9, 16, 9, 0, 47, 24, 1, 24, 1, 64, 0, 80, 0, 2, 0, 34, 9, 35, 21, 28, 79, 21, 15, 0, + 15, 0, 63, 63,225, 63, 51, 51, 1, 47, 93, 51, 47, 93, 18, 57, 57, 17, 51, 93, 51, 93, 93, 17, 18, 57, 48, 49, 19, 51, 19, 30, + 5, 23, 51, 62, 3, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 1, 35, 82,188,224, 8, 21, 24, 24, 20, 16, + 3, 6, 7, 25, 30, 31, 12,102, 30, 53, 65, 83, 60, 26, 44, 14, 11, 32, 18, 26, 40, 32, 29, 15,254,246,231, 4, 74,253,162, 22, + 63, 70, 74, 67, 57, 18, 30, 93,103,101, 37, 1, 64, 93,117, 67, 24, 7, 3,135, 3, 5, 19, 40, 65, 46,252,225,255,255, 0, 63, + 0, 0, 5, 33, 7,115, 2, 38, 2,128, 0, 0, 1, 7, 3,118,255,224, 1, 82, 0, 25,182, 2, 1, 29, 5, 38, 2, 1,184,255, +109,180, 49, 29, 8, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82, 0, 0, 4,174, 6, 33, 2, 38, 2,129, 0, 0, + 1, 6, 3,118,212, 0, 0, 25,182, 2, 1, 36, 17, 38, 2, 1,184,255,145,180, 56, 36, 0, 24, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0, 0, 3, 0, 70,254, 20, 4,215, 5,205, 0, 19, 0, 39, 0, 72, 0,111, 64, 68,136, 72,152, 72, 2, 72, 16, 11, 16, 72, + 72, 47, 40, 55, 65, 65, 39, 41, 1, 6, 41, 1, 41,250, 6, 40, 1, 40, 40, 30,250, 15, 0, 1, 0, 0, 10, 40, 54, 1, 9, 54, + 1, 54,250,240, 55, 1, 55, 20,250, 10, 72, 47, 73, 68, 61, 28, 54, 40, 15, 35, 95, 15, 4, 25, 5, 19, 0, 63,193, 63,225, 63, + 51, 63,205, 17, 51, 51, 1, 47,225, 47, 93,225, 93, 93, 18, 57, 47, 93,225, 51, 47, 93,225, 93, 93, 51, 47, 17, 18, 57, 57, 43, + 93, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, + 52, 46, 2, 35, 34, 14, 2, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 3, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, + 55, 55, 2,106, 16, 56,109, 93, 93,109, 56, 16, 16, 57,109, 94, 93,108, 56, 15,254,121, 10, 26, 46, 35, 36, 46, 25, 10, 9, 26, + 45, 35, 36, 46, 27, 10, 1,176,156,100, 4, 9, 9, 8, 3, 4, 2, 5, 7, 7, 4,106,156,242, 15, 41, 62, 88, 62, 37, 48, 21, + 20, 47, 25, 49, 63, 19, 24, 2,221,182,254,231,191, 99, 98,192, 1, 26,183,177, 1, 23,193,101,101,193,254,232,178,137,219,153, + 81, 81,153,219,137,138,218,151, 81, 81,151,218,227,253,159, 23, 56, 61, 63, 30, 25, 62, 64, 60, 22, 2, 97,251, 14, 78,120, 83, + 43, 11, 6,145, 5, 7, 87, 99,136, 0, 0, 3, 0, 80,254, 20, 4,205, 4, 94, 0, 19, 0, 29, 0, 62, 0,151, 64,100, 88, 62, +104, 62, 2, 57, 62, 73, 62, 2, 40, 62, 1, 37, 62, 45, 21, 31, 1, 31, 73, 30, 0, 30, 1, 30, 0, 0, 54, 1, 54, 54,137, 25, + 1, 88, 25,104, 25,120, 25, 3, 25, 73, 89, 0, 1, 15, 0, 1, 0, 0, 10, 88, 44, 1, 73, 44, 1, 56, 44, 1, 25, 44, 1, 8, + 44, 1, 44, 73, 45,133, 20, 1,102, 20,118, 20, 2, 20, 73, 10, 37, 62, 30, 58, 80, 51, 27, 44, 30, 15, 28, 80, 15, 16, 23, 80, + 5, 22, 0, 63,225, 63,225, 63, 51, 63,225, 17, 57, 57, 1, 47,225, 93, 93, 47,225, 93, 93, 93, 93, 93, 18, 57, 47, 93, 93,225, + 93, 93, 51, 47, 93, 17, 51, 93, 16,225, 93, 18, 57, 57, 93, 93, 93, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, + 50, 30, 2, 5, 20, 22, 51, 50, 17, 52, 38, 35, 34, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 3, 14, 3, 35, 34, 38, 39, + 53, 22, 22, 51, 50, 54, 55, 55, 2,115, 38, 71,102, 64, 61,100, 72, 39, 40, 73,101, 60, 57,100, 73, 43,254,123, 59, 57,117, 60, + 57,116, 1,155,156,100, 4, 9, 9, 8, 3, 4, 2, 5, 6, 8, 4,106,156,242, 15, 41, 62, 88, 62, 37, 48, 22, 20, 48, 25, 49, + 63, 19, 24, 2, 39,168,221,130, 52, 52,130,221,168,168,219,129, 51, 51,129,219,168,211,209, 1,164,210,206,131,253,159, 23, 56, + 61, 63, 30, 25, 62, 64, 60, 22, 2, 97,251, 14, 78,120, 83, 43, 11, 6,145, 5, 7, 87, 99,136, 0, 2, 0, 84,255,139, 4,123, + 6, 41, 0, 31, 0, 63, 0, 94, 64, 53, 37, 11, 11, 59, 21, 43, 5, 5, 53, 27, 21, 27, 16, 48, 91, 0, 65, 32, 91, 31, 16, 47, + 16, 2, 16, 59, 79, 56, 95, 56, 2, 56, 56, 53, 95, 24, 21, 27, 3, 43, 64, 40, 80, 40, 2, 40, 40, 37, 95, 8, 5, 11, 18, 0, + 63, 51,205,225, 50, 47, 93, 50, 63, 51,205,225, 50, 47, 93, 50, 1, 47, 93,225, 16,222,225, 18, 57, 57, 17, 51, 51, 17, 51, 17, + 51, 51, 17, 51, 48, 49, 1, 20, 14, 2, 7, 6, 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, 30, 3, + 5, 20, 30, 2, 23, 54, 54, 51, 50, 22, 23, 62, 3, 53, 52, 46, 2, 39, 6, 6, 35, 34, 38, 39, 14, 3, 4,123, 48, 97,147, 99, + 14, 74, 54, 58, 71, 14,103,146, 94, 44, 44, 94,146,103, 14, 71, 58, 54, 74, 14, 99,147, 97, 48,252,158, 22, 47, 75, 54, 17, 67, + 51, 48, 69, 17, 55, 77, 48, 22, 22, 48, 77, 55, 16, 70, 48, 52, 68, 17, 53, 74, 47, 22, 2,221,146,247,190,126, 26, 62, 53, 53, + 62, 26,126,190,248,147,146,246,189,125, 25, 62, 49, 50, 59, 26,126,189,247,147,108,182,142,101, 28, 45, 37, 39, 45, 26,100,143, +184,110,110,183,143, 99, 26, 48, 40, 38, 46, 27,101,141,180, 0, 0, 2, 0,115,255,152, 4, 88, 4,174, 0, 33, 0, 54, 0, 88, + 64, 47, 36, 11, 11, 53, 21, 42, 5, 5, 47, 29, 21, 29, 16, 44, 72, 0, 56, 34, 72, 0, 16, 1, 16, 53, 95, 50, 1, 50, 50, 47, + 81, 24, 21, 29, 15, 80, 39, 1, 39, 39, 36, 42, 81, 11, 8, 5, 21, 0, 63,205, 51,225, 50, 50, 47, 93, 63, 51,205,225, 50, 47, + 93, 50, 1, 47, 93,225, 16,222,225, 18, 57, 57, 17, 51, 51, 17, 51, 17, 51, 51, 17, 51, 48, 49, 1, 20, 14, 2, 7, 6, 6, 35, + 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 30, 2, 23, 30, 3, 5, 16, 23, 54, 54, 51, 50, 22, 23, 54, 17, 52, 38, + 39, 6, 6, 35, 34, 38, 39, 6, 4, 88, 54, 98,139, 86, 9, 60, 54, 58, 59, 8, 81,136, 99, 56, 53, 97,138, 84, 10, 58, 57, 27, + 42, 30, 20, 4, 81,139,100, 57,252,215,191, 11, 56, 51, 48, 57, 12,195, 99, 96, 12, 57, 48, 51, 55, 12,191, 2, 39,117,188,141, + 92, 19, 54, 44, 44, 54, 20, 92,141,188,116,115,187,141, 91, 19, 54, 40, 9, 21, 36, 28, 19, 91,141,187,115,254,184, 71, 38, 29, + 31, 38, 71, 1, 74,165,197, 35, 42, 29, 31, 40, 71, 0, 0, 3, 0, 82,255,236, 4,123, 8, 61, 0, 21, 0, 39, 0,102, 0,180, + 64,107, 53, 15, 54, 63, 54, 79, 54, 95, 54,127, 54,143, 54, 6, 54, 54, 48,251, 60, 40, 70, 29, 22, 34, 25, 11, 12, 70, 34, 1, + 34, 12, 12, 34, 1, 3, 80, 60,104, 87, 0, 86, 48, 86, 64, 86, 80, 86,112, 86,128, 86, 6, 86, 86, 92,251, 80, 53, 87, 87, 51, + 89, 95, 83, 54, 86, 86, 83, 29, 37, 26, 26, 79, 25, 95, 25,111, 25, 3, 25, 83, 37, 37, 2, 7, 16, 16, 11, 0, 79, 2, 1, 2, + 2, 57, 83, 4,102,102, 43, 97, 95, 70, 65, 75, 19, 0, 63, 51, 51,225, 50, 50, 47, 63, 51, 51, 47, 93, 51, 51, 51, 47, 51, 17, + 51, 47, 16,198, 93, 50, 47, 18, 57, 17, 51, 17, 51, 16,225, 50, 50, 17, 51, 1, 47,225, 50, 47, 93, 51, 16,206, 17, 23, 57, 47, + 47, 47, 18, 57, 17, 51, 50, 16,221,205, 17, 51, 16,225, 50, 47, 93, 51, 49, 48, 1, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, + 53, 52, 54, 51, 50, 30, 2, 51, 7, 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 3, 22, 22, 51, 50, 62, 2, + 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, + 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, 30, 2, 51, 50, 62, 2, 55, 3,221, 14, 80,135,114, 94, 38, 43, 55,133,118,103, 54, +106,112,125, 74,232,119,122, 60, 56, 31, 36, 31, 50, 46, 59, 68,125, 36, 90, 51, 48, 67, 42, 19, 78, 66, 55, 41, 47, 34, 88, 48, +146,147, 34, 78,128, 94, 33, 54, 46, 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, 66, 77, 19, 43, + 68, 48, 27, 45, 41, 40, 21, 7,203,129, 36, 42, 36, 45, 53, 16, 35,107,101, 36, 42, 36,226, 77,115, 31, 76, 22, 45, 25, 19, 18, + 16, 26, 28, 37, 38, 70,249,232, 57, 66, 89,164,229,141, 1, 19, 1, 20, 29,152, 23, 18,254,153,254,154,192,254,219,198,101, 9, + 20, 33, 24, 24, 33, 20, 9,101,198, 1, 37,192, 1,102, 1,103, 18, 23,152, 29,254,236,254,237,141,229,164, 89, 17, 32, 46, 28, + 0, 3, 0, 88,255,236, 4,115, 7, 8, 0, 59, 0, 81, 0, 98, 0,156, 64, 41, 15, 47,191, 47,255, 47, 3, 47, 64, 11, 17, 72, + 47, 47, 41, 73, 33, 3, 11, 55,100, 70, 73, 88, 82, 93, 93, 85, 85, 61, 61, 72, 11, 0, 19,176, 19,240, 19, 3, 19,184,255,192, + 64, 45, 11, 17, 72, 19, 19, 25, 73, 11, 88, 96, 86, 85, 96, 96, 72, 67, 76, 60, 61, 61, 15, 72, 1, 72, 72, 85, 46, 44, 44, 20, + 22, 81, 50, 47, 19, 16, 16, 38, 33, 28, 81, 3, 0, 6, 22, 0, 63, 51, 51,225, 50, 50, 63, 51, 51, 51,225, 50, 50, 17, 51,206, + 50, 47, 93, 51, 47, 51,205, 50, 17, 51, 47, 16,205, 17, 57, 1, 47,225, 50, 47, 43, 93, 16,196, 50, 47, 50, 47, 51, 47,221,201, + 47, 51, 16,222, 17, 57, 57,225, 50, 47, 43, 93, 49, 48, 5, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, + 7, 38, 35, 34, 6, 21, 20, 22, 51, 50, 62, 2, 55, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 54, 51, 50, 30, 2, 21, + 20, 14, 2, 19, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 7, 20, 6, 7, 53, 54, 53, 52, 46, + 2, 53, 52, 54, 51, 50, 22, 3, 29, 62, 91, 32, 32, 88, 60, 76,127, 91, 50, 40, 76,109, 68, 46, 95, 35, 51, 49, 62, 73, 68,102, + 95, 26, 46, 40, 34, 15, 16, 35, 40, 47, 28, 94,101, 68, 74, 58, 50, 51, 35, 94, 45, 70,109, 75, 39, 51, 90,126,105, 8, 80,129, +110, 96, 46, 43, 55,134,118,104, 62,108,108,119, 74,232,120,121,116, 31, 36, 31, 50, 46, 59, 68, 20, 35, 32, 32, 35, 60,133,215, +155,157,219,137, 62, 20, 25,145, 30,201,212,211,195, 14, 24, 30, 16, 16, 30, 24, 14,195,211,212,201, 30,145, 25, 20, 62,137,219, +157,150,213,137, 63, 6,170,130, 36, 43, 36, 46, 52, 17, 23,108,113, 36, 42, 36,226, 77,115, 31, 76, 41, 51, 19, 18, 16, 26, 27, + 38, 38, 70, 0, 0, 2, 0, 82,255,236, 4,123, 7, 4, 0, 13, 0, 74, 0,173, 64,100, 27, 27, 14,251, 72, 0, 59, 32, 59, 2, + 59, 59, 5, 72, 1,197, 72,213, 72, 2, 6, 72,150, 72,166, 72, 3, 72, 72, 53, 21,251, 4, 2, 3, 5, 6, 6, 8, 7, 9, 10, + 10, 11, 11, 7, 3, 3, 12, 15, 1, 31, 1, 2, 1, 33, 76, 0, 12, 16, 12, 2, 12, 65,251, 53, 73, 73, 56, 70, 26, 60, 60, 24, + 62, 95, 56, 27, 59, 59, 56, 13, 5, 9, 7, 3, 11, 30, 56, 4, 14, 72, 72, 16, 70, 95, 43, 38, 48, 19, 0, 63, 51, 51,225, 50, + 50, 17, 51, 63, 51,222, 50, 50,221, 50,205, 17, 51, 17, 51, 16,225, 50, 50, 17, 51, 17, 18, 57, 47, 1, 47,225,196, 93, 16,222, +196, 93, 17, 23, 57, 17, 51, 17, 51, 17, 51, 51, 17, 51, 17, 51, 51,225, 17, 57, 47, 93, 93,113, 51, 47, 93, 16,225, 50, 47, 49, + 48, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 1, 22, 51, 50, 62, 2, 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, + 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, + 30, 2, 51, 50, 55, 17, 51, 3,221, 82, 35, 49,143, 49, 35, 49,144, 49, 35, 79, 1,204, 39, 56, 48, 67, 42, 19, 78, 66, 55, 41, + 47, 34, 88, 48,146,147, 34, 78,128, 94, 33, 54, 46, 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, + 66, 77, 19, 43, 68, 48, 57, 37,170, 7, 4, 27,172,103,103,103,103,172, 27,249,182, 43, 89,164,229,141, 1, 19, 1, 20, 29,152, + 23, 18,254,153,254,154,192,254,219,198,101, 13, 24, 37, 24, 24, 37, 24, 13,101,198, 1, 37,192, 1,102, 1,103, 18, 23,152, 29, +254,236,254,237,141,229,164, 89, 43, 1,220, 0, 0, 2,255,252, 0, 0, 4,137, 5,164, 0, 13, 0, 56, 0,204, 64, 25, 22, 47, + 1, 47, 35, 48, 29, 73, 6, 56, 22, 56, 2, 22, 56, 38, 56, 70, 56, 86, 56,214, 56, 5, 56,184,255,240, 64,102, 17, 20, 72, 56, + 20, 14, 8, 48, 1,152, 48,184, 48,216, 48,232, 48, 4, 25, 48, 41, 48, 73, 48, 89, 48,105, 48, 5, 27, 52, 48, 3, 41, 14, 15, + 40, 28, 56, 28, 2, 10, 28, 1, 28, 28, 15, 41, 73, 4, 2, 3, 5, 6, 6, 8, 7, 9, 10, 10, 11, 11, 7, 3, 3, 12, 15, 1, + 1, 1, 42, 58, 0, 12, 80, 12, 2, 12, 16, 73, 15, 35, 48, 21, 52, 27, 27, 15, 14, 13, 5, 9, 7, 3, 11, 41, 28, 15, 15, 20, + 14, 21, 0, 63, 51, 63, 51, 51,222, 50, 50,221, 50,205, 17, 18, 57, 17, 51, 63, 51, 1, 47,225,198, 93, 16,222,198, 93, 17, 23, + 57, 17, 51, 17, 51, 17, 51, 51, 17, 51, 17, 51, 51,237, 17, 57, 47, 93, 93, 18, 57, 18, 23, 57, 93, 93,113, 17, 51, 51, 43, 93, +113,225, 17, 51, 51, 93, 48, 49, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 19, 1, 51, 19, 22, 22, 23, 51, 62, 3, + 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 39, 6, 6, 7, 3, 3,207, 82, 35, + 49,143, 50, 34, 50,143, 49, 35, 80, 58,254,225,160,163, 20, 34, 8, 4, 5, 15, 18, 20, 10, 86,109,150,137, 8, 22, 23, 22, 7, + 6, 63, 79, 45, 16,153, 26, 66,113, 88,163, 84, 7, 11, 3, 5, 16, 8,106, 5,164, 27,172,103,103,103,103,172, 27,250, 92, 4, + 74,253, 92, 85,157, 51, 18, 56, 65, 67, 30, 1, 16, 1,205,253,176, 33, 96,103, 96, 33,104,210,230, 1, 2,151,163,254,224,254, +245,253,127, 1, 84, 26, 56, 20, 20, 62, 22,254,174, 0, 0, 1, 0,129,254, 20, 4,156, 5,203, 0, 35, 0, 52, 64, 27, 16, 90, + 17, 17, 24, 33, 32, 32, 37, 5, 91, 0, 24, 1, 24, 33, 0, 95, 32, 29, 4, 15, 10, 95, 19, 19, 16, 0, 47, 63,225, 50, 63, 51, +225, 50, 1, 47, 93,225, 17, 51, 47, 51, 18, 57, 47,225, 48, 49, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 35, 17, + 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 3, 29,107,174,123, 67, 59,118,176,118, 29, 45, 40, 37, 21, +187, 16,164,240,157, 76, 87,170,249,162,108,196, 79, 78, 63,148, 5, 39, 81,152,218,137,141,219,150, 78, 4, 9, 13, 9,253, 98, + 1,216,108,198, 1, 22,169,166, 1, 20,198,110, 44, 42,156, 32, 46, 0, 0, 1, 0,172,254, 20, 4, 37, 4, 94, 0, 31, 0, 53, + 64, 28, 29, 71, 30, 30, 5, 14, 13, 13, 33, 20, 72, 0, 5, 1, 5, 29, 27, 14, 17, 81, 13, 10, 16, 28, 25, 81, 0, 22, 0, 63, +225, 50, 63, 51,225, 50, 63, 1, 47, 93,225, 17, 51, 47, 51, 18, 57, 47,225, 48, 49, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, + 23, 7, 38, 38, 35, 34, 6, 21, 20, 30, 2, 51, 50, 54, 55, 17, 35, 17, 2,197,113,196,145, 83, 84,149,206,122, 90,172, 66, 62, + 58,131, 79,190,181, 49, 94,135, 87, 53, 85, 34,182, 20, 63,137,213,150,157,219,137, 62, 34, 25,158, 22, 35,204,209,105,154, 99, + 48, 19, 14,253,104, 1,216, 0, 0, 1, 0, 94,255,250, 4,111, 5, 10, 0, 19, 0,168, 64, 75, 6, 9, 10, 13, 4, 14, 5, 14, + 3, 0, 19, 16, 4, 4, 15, 15, 2, 63, 1, 79, 1, 95, 1,175, 1, 4, 1, 1, 18, 17, 21, 12, 48, 11, 64, 11, 80, 11,160, 11, + 4, 11, 11, 7, 4, 5, 5, 8, 7, 13, 16, 12, 17, 10, 19, 11, 18, 11, 12, 6, 3, 7, 2, 7, 9, 0, 1, 8, 8, 12, 64, 21, + 26, 72, 12,184,255,192, 64, 9, 12, 12, 15, 14, 17, 18, 18, 1, 2,184,255,192,182, 21, 26, 72, 2, 2, 5, 4, 0, 47, 51, 51, + 47, 43, 51, 51, 47, 51, 47, 51, 51, 47, 56, 43, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 17, 51, 17, 18, 57, 57, 17, 18, 57, 57, + 1, 47, 51, 51, 47, 51, 17, 51, 47, 93, 51, 16,206, 50, 50, 47, 93, 51, 50, 47, 18, 23, 57, 51, 17, 18, 23, 57, 48, 49, 1, 5, + 7, 37, 3, 39, 19, 37, 55, 5, 19, 37, 55, 5, 19, 23, 3, 5, 7, 37, 2, 66, 1, 28, 71,254,227,180,129,180,254,229, 70, 1, + 31,198,254,228, 71, 1, 29,182,127,182, 1, 31, 74,254,229, 1,176,166,123,164,254,199, 74, 1, 59,164,123,164, 1, 90,164,125, +164, 1, 57, 73,254,196,164,123,164, 0, 0, 1, 0,242, 4,143, 3,217, 5,184, 0, 21, 0, 23, 64, 9, 4, 10, 16, 0, 19, 15, +141, 4, 7, 0, 47,221,253,204, 1, 47, 51, 47, 51, 48, 49, 1, 20, 6, 35, 33, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, 33, 54, + 54, 51, 50, 22, 3,217, 43, 57,254, 63, 6, 44, 48, 56, 40, 9, 23, 38, 28, 1,192, 5, 46, 48, 56, 42, 5, 80, 57, 41, 44, 51, + 51, 56, 28, 37, 22, 9, 45, 49, 50, 0, 0, 1, 0,242, 4,229, 3,221, 5,217, 0, 21, 0, 31, 64, 14, 20, 10,132, 15, 8, 1, + 8, 21, 20, 20, 14, 5,128, 10, 0, 47, 26,204, 50, 51, 47, 51, 1, 47, 93,225, 47, 49, 48, 1, 50, 62, 2, 51, 50, 22, 21, 21, + 35, 53, 52, 38, 35, 34, 14, 2, 35, 35, 53, 1, 0, 78,133,119,112, 58,109,124,133, 58, 46, 42,101,121,145, 85, 16, 5,102, 36, + 43, 36,101,108, 35, 17, 52, 46, 36, 43, 36,129, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 35, 64, 18, 15, 64, 9, 12, + 72, 15, 11, 6, 0, 11, 3, 14,140, 15,127, 3, 1, 3, 0, 47, 93, 47,225, 18, 57, 1, 47,205,205,205, 43, 48, 49, 1, 52, 54, + 51, 50, 22, 21, 20, 14, 2, 21, 20, 22, 23, 21, 38, 38, 1,225, 68, 59, 47, 50, 31, 37, 31, 57, 60,122,120, 5,182, 57, 70, 38, + 38, 27, 26, 16, 18, 19, 25, 46, 21, 76, 31,115, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 38,178, 12, 7, 3,184,255, +192, 64, 14, 9, 12, 72, 3, 0, 7, 3,127, 15, 1, 15, 4,140, 3, 0, 47,225, 47, 93, 18, 57, 1, 47,205, 43,205,205, 48, 49, + 1, 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 2,211,120,122, 60, 57, 31, 36, 31, 50, 46, 59, 68, 5,182, + 77,115, 31, 76, 21, 46, 25, 19, 18, 16, 26, 27, 38, 38, 70, 0, 0, 8, 0, 41, 0, 47, 4,164, 4, 53, 0, 13, 0, 27, 0, 41, + 0, 55, 0, 69, 0, 83, 0, 99, 0,113, 0, 0, 1, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 19, 50, 22, 23, 35, 38, + 38, 35, 34, 6, 7, 35, 54, 54, 37, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, + 7, 35, 54, 54, 1, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, + 1, 50, 22, 23, 35, 46, 3, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 2, 96, 65, 66, + 6, 69, 5, 37, 26, 28, 32, 3, 72, 2, 67, 66, 65, 66, 6, 69, 5, 37, 26, 28, 32, 3, 72, 2, 67, 1,144, 62, 70, 3, 73, 4, + 33, 25, 28, 30, 3, 74, 3, 67,253,167, 65, 69, 6, 72, 5, 37, 26, 27, 31, 3, 70, 4, 62, 2,219, 62, 70, 3, 73, 4, 33, 25, + 28, 30, 3, 74, 3, 67,253,167, 65, 69, 6, 72, 5, 37, 26, 27, 31, 3, 70, 4, 62, 3, 72, 63, 71, 3, 74, 1, 12, 17, 22, 11, + 29, 28, 3, 73, 3, 65,252,212, 65, 69, 3, 73, 4, 35, 25, 26, 30, 3, 74, 3, 67, 4, 53, 77, 62, 32, 17, 15, 34, 63, 76,252, +131, 75, 62, 32, 17, 15, 34, 63, 74,162, 79, 62, 34, 17, 16, 35, 63, 78, 79, 62, 34, 17, 16, 35, 63, 78, 2, 57, 79, 62, 32, 17, + 15, 34, 63, 78, 79, 62, 32, 17, 15, 34, 63, 78,254,232, 78, 65, 17, 20, 11, 3, 16, 35, 66, 77, 78, 65, 34, 17, 16, 35, 66, 77, + 0, 8, 0, 41,255,231, 4,164, 4, 98, 0, 8, 0, 19, 0, 32, 0, 43, 0, 54, 0, 63, 0, 74, 0, 85, 0, 62, 64, 30, 43, 36, + 13, 0, 9, 4, 54, 26, 31, 74, 68, 53, 47, 19, 12, 26, 33, 20, 37, 85, 62, 7, 15, 79, 31, 79, 2, 79, 58, 4, 0, 47,198,196, + 93,214,198,198,212, 50,205, 50, 47,205,196,196,198,196, 1, 47,198,198,212, 50,205, 50, 47,205, 48, 49, 37, 6, 6, 7, 35, 54, + 54, 55, 51, 3, 54, 54, 55, 51, 14, 3, 7, 35, 1, 30, 3, 23, 21, 46, 3, 39, 53, 5, 38, 38, 39, 53, 30, 3, 23, 21, 1, 54, + 54, 55, 23, 14, 3, 7, 39, 1, 6, 6, 7, 39, 54, 54, 55, 23, 3, 38, 38, 39, 55, 30, 3, 23, 7, 1, 22, 22, 23, 7, 46, 3, + 39, 55, 2,184, 12, 45, 25, 79, 17, 23, 5,100,145, 11, 45, 23, 84, 7, 14, 13, 10, 3,100, 1,164, 22, 53, 57, 58, 27, 30, 64, + 62, 57, 23,253, 76, 46,117, 56, 26, 63, 65, 60, 21, 2, 19, 54,111, 44, 63, 21, 55, 56, 52, 18, 70,254,127, 47,113, 51, 64, 41, +109, 55, 72,119, 29, 53, 18, 61, 17, 37, 36, 32, 13, 71, 2, 80, 31, 50, 19, 59, 18, 38, 36, 33, 13, 74,195, 47,119, 54, 87,114, + 35, 2,180, 48,117, 54, 28, 63, 62, 58, 24,254,254, 6, 17, 21, 24, 12, 84, 7, 14, 14, 10, 2,100,145, 12, 45, 25, 82, 6, 13, + 13, 11, 2,103, 1,105, 31, 52, 17, 59, 14, 36, 38, 35, 14, 71,253,176, 24, 55, 19, 59, 25, 74, 39, 74, 1,221, 53,111, 45, 63, + 27, 58, 53, 47, 17, 72,254,129, 53,111, 47, 63, 27, 58, 54, 47, 18, 72, 0, 2, 0,137,254,127, 5, 8, 7,104, 0, 27, 0, 49, + 0, 92, 64, 50, 25, 26, 27, 27, 24, 23, 49,251, 28, 28, 39,251, 38, 38, 9, 21, 0,251, 23, 51, 64, 8, 12,251, 0, 9,224, 9, +240, 9, 3, 9, 49, 39,128, 44, 33, 21, 7, 11, 3, 19, 8, 18, 26, 26, 23, 95, 0, 18, 0, 63,225, 51, 47, 63, 51, 63, 51, 51, +222, 50, 26,204, 50, 1, 47, 93,225, 50, 26, 16,221,225, 50, 17, 57, 47,225, 51, 47,225, 16,205, 50, 16,205, 50, 49, 48, 33, 17, + 52, 54, 55, 54, 55, 35, 1, 35, 17, 51, 17, 20, 14, 2, 7, 6, 7, 51, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, + 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,154, 5, 4, 4, 5, 8,253,188,215,174, 1, 2, 2, 2, 4, 3, 6, 2, 66,213,194,143, +217,166, 97, 6, 48, 93,142,100,103,140, 87, 42, 5,170, 5, 27, 51, 75, 53, 44, 73, 54, 35, 5, 3, 25, 57,142, 65, 76, 77,251, + 70, 5,182,252,224, 26, 62, 67, 67, 32, 74, 76, 4,180,250,240,253,217, 1,129, 7,104, 77,119, 80, 41, 39, 79,119, 80, 57, 72, + 41, 16, 18, 44, 71, 53, 0, 2, 0,178,254,131, 4,193, 6, 23, 0, 15, 0, 37, 0,164,185, 0, 3,255,240,179, 18, 24, 72, 3, +184,255,224, 64, 96, 11, 14, 72, 37, 3, 53, 3, 2, 9, 16, 18, 24, 72, 9, 32, 11, 14, 72, 42, 9, 58, 9, 2,171, 2, 1,137, + 2,153, 2, 2,164, 8, 1,134, 8,150, 8, 2, 13, 14, 15, 15, 12, 11, 37, 70, 16, 16, 27, 70, 26, 26, 4, 9, 0, 70, 11, 39, + 64, 3, 6, 70, 0, 4, 16, 4, 32, 4,176, 4,192, 4,208, 4, 6, 7, 4, 37, 27,128, 32, 21, 9, 2, 6, 15, 8, 3, 21, 14, + 14, 11, 80, 0, 21, 0, 63,225, 51, 47, 63, 51, 63, 51, 51,222, 50, 26,204, 50, 1, 47, 94, 93,225, 50, 26, 16,220,225, 50, 17, + 57, 47,225, 51, 47,225, 16,205, 50, 16,205, 50, 49, 48, 0, 93, 93, 93, 93, 1, 93, 43, 43, 93, 43, 43, 33, 17, 19, 1, 35, 17, + 51, 17, 7, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3, 94, 10,254, 58,240, +172, 12, 1,201,239,183,123,183,123, 37, 6, 48, 93,142,100,103,140, 87, 42, 5,170, 5, 27, 51, 75, 53, 44, 73, 54, 35, 5, 2, +135, 1, 15,252,106, 4, 74,253,100,252, 3,152,252, 80,253,233, 1,125, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, 41, 16, + 19, 43, 72, 53, 0, 2, 0, 47, 0, 0, 4, 70, 5,182, 0, 22, 0, 33, 0, 65, 64, 33, 21, 21, 23, 27, 91, 6, 35, 19, 0, 23, + 90, 16, 14, 12, 33, 95, 0, 22, 14, 95, 15, 19, 15, 0, 15, 0, 15, 17, 3, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 17, + 51, 16,225, 50, 16,225, 1, 47,198, 51,225, 50, 50, 16,222,225, 17, 57, 47, 48, 49, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, + 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1,129,168,152,207,127, 55, 60,126,194,134,254, +131,152,152,186, 1, 78,254,178,178,175,163, 46, 91,139, 93,147, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164,178,178,164, +252, 64,132,136, 70, 97, 60, 27, 0, 2, 0, 61, 0, 0, 4, 68, 6, 20, 0, 20, 0, 33, 0, 73, 64, 39, 15, 2, 1, 2, 2, 14, + 28, 70, 8, 35, 4, 0, 22, 71, 18, 16, 14, 21, 80, 4, 3, 16, 79, 17, 0, 17, 47, 4, 1, 4, 17, 4, 17, 19, 0, 22, 80, 14, + 21, 0, 63,225, 63, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 16,225, 1, 47,198, 51,225, 50, 50, 16,222,225, 17, 57, 47, 93, 48, + 49, 1, 33, 21, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, 51, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, + 1,143, 1, 23,254,233, 1, 21,212,204, 47,101,159,113,254, 57,156,156,182, 1, 4, 56, 93, 67, 38, 33, 65, 96, 64, 5, 33,137, +253,239,156,155, 77,124, 88, 47, 4,152,137,243,251,218,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 2, 0,176, 0, 0, 4, 70, + 5,182, 0, 20, 0, 35, 0,108, 64, 59, 25, 8, 26, 7, 7, 28, 5, 27, 6, 6, 31, 91,239, 0,255, 0, 2, 0, 37, 27, 26, 26, + 21, 13, 90, 0, 14,144, 14,160, 14, 3, 14, 25, 8, 26, 7, 26, 28, 5, 6, 27, 27, 21, 6, 7, 7, 12, 96, 22, 21, 21, 13, 35, + 96, 15, 3, 13, 18, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 47, 51, 17, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 1, 47, 93,225, + 50, 50, 47, 51, 16,222, 93,225, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 48, 49, 1, 20, 14, 2, 7, 23, 7, 39, 6, 6, 35, 35, + 17, 35, 17, 33, 50, 30, 2, 1, 51, 50, 54, 55, 39, 55, 23, 54, 54, 53, 52, 38, 35, 35, 4, 70, 24, 51, 82, 58,104,106,125, 44, + 98, 57,191,186, 1,148,134,194,126, 60,253, 36,170, 32, 59, 26, 94,109,118, 60, 59,163,175,201, 4, 10, 61,115,102, 85, 32,147, + 78,176, 11, 10,253,199, 5,182, 57,109,160,254,103, 3, 5,135, 76,170, 34,121, 93,142,137, 0, 0, 2, 0,158,254, 20, 4, 68, + 4, 94, 0, 35, 0, 57, 0,120, 64, 67, 50, 33, 51, 32, 32, 53, 30, 52, 31, 31, 55, 72, 15, 27, 31, 27, 2, 27, 59, 52, 51, 51, + 42, 16, 15, 6, 12, 71, 0, 13, 16, 13, 32, 13,208, 13, 4, 7, 13, 36, 80, 16, 22, 16, 14, 15, 12, 27, 50, 33, 51, 32, 51, 53, + 30, 31, 52, 52, 47, 80, 0, 31, 32, 32, 5, 0, 22, 0, 63, 50, 50, 47, 51, 16,225, 50, 47, 18, 57, 57, 51, 17, 18, 57, 57, 63, + 63, 63, 51,225, 1, 47, 94, 93,225, 50, 50, 50, 50, 50, 47, 51, 16,222,113,225, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 48, 49, + 5, 34, 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 6, 7, 23, 7, 39, 6, 6, + 3, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 55, 39, 55, 23, 54, 53, 52, 38, 2,150, 61, 98, 79, 61, 23, 12, 3, 3, 2, 4, +182,147, 27, 8, 23, 60, 79, 99, 61, 97,158,113, 62, 95, 84,107,107,116, 32, 68, 68, 79,109, 67, 32, 2, 28, 68,111, 84, 18, 34, + 15,106,108,111, 92,132, 20, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 35, 61, 45, 27, 72,143,212,140,177,242, 69, +151, 78,166, 9, 11, 3,219, 46, 94,140, 95, 41,101,157,107, 55, 3, 5,152, 76,160,104,242,208,206, 0, 0, 1, 0,147, 0, 0, + 4,100, 5,182, 0, 13, 0, 49, 64, 24, 5, 5, 8, 0, 15, 3, 7, 90, 12, 10, 8, 6, 10, 95, 3, 11, 11, 7, 2, 95, 13, 3, + 7, 18, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 1, 47,198, 51,225, 50, 16,206, 17, 57, 47, 48, 49, 1, 21, 33, 17, 33, 21, 33, + 17, 35, 17, 35, 53, 51, 17, 4,100,253,129, 1, 80,254,176,186,152,152, 5,182,166,254, 21,162,253,125, 2,131,162, 2,145, 0, + 0, 1, 0,135, 0, 0, 4, 14, 4, 74, 0, 13, 0, 49, 64, 24, 11, 11, 0, 6, 15, 9, 13, 71, 4, 2, 0, 12, 2, 79, 9, 3, + 3, 0, 8, 80, 5, 15, 0, 21, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 1, 47,198, 51,225, 50, 16,206, 17, 57, 47, 48, 49, 33, + 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17, 1, 35,156,156, 2,235,253,203, 1, 23,254,233, 1,225,137, 1,224,154,254, +186,137,254, 31, 0, 1, 0,160,254, 0, 4,113, 5,182, 0, 38, 0, 56, 64, 29, 8, 8, 34, 91, 18, 40, 10, 4, 90, 28, 0, 5, + 1, 5, 29, 32, 95, 28, 23, 0, 13, 13, 5, 9, 95, 6, 3, 5, 18, 0, 63, 63,225, 18, 57, 47,193, 47, 51,225, 50, 1, 47, 93, +198,225, 50, 16,222,241,192, 47, 48, 49, 1, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, + 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 1,213, 37, 60, 26,186, 2,248,253,194, 29, 72, 45,153,240,165, 87, 82,146, +201,118, 49, 78, 68, 60, 32, 63,127, 72, 1,119, 67,123,174, 2,131, 5, 5,253,135, 5,182,166,254, 11, 5, 3, 92,171,242,151, +170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 0, 0, 1, 0,215,254, 10, 4, 88, 4, 74, 0, 41, 0, 53, + 64, 28, 27, 27, 16, 72, 37, 43, 29, 23, 70, 5, 0, 24, 1, 24, 19, 81, 32, 32, 24, 28, 80, 25, 15, 24, 21, 11, 81, 0, 0, 47, +225, 63, 63,225, 18, 57, 47,225, 1, 47, 93,198,225, 50, 16,214,241,192, 47, 48, 49, 1, 34, 46, 2, 39, 53, 30, 3, 51, 50, 62, + 2, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 2,127, 41, 65, 55, 49, 26, + 25, 48, 52, 61, 38, 70,110, 77, 40,181,198, 32, 83, 35,180, 2,168,254, 12, 34, 78, 42,125,208,148, 82, 76,129,172,254, 10, 7, + 15, 23, 15,161, 13, 22, 17, 9, 48, 99,153,105,211,203, 6, 6,254, 47, 4, 74,154,254,195, 5, 5, 62,138,219,157,151,214,135, + 63, 0, 0, 1, 0, 0,254,127, 4,205, 5,182, 0, 21, 0,114, 64, 64, 17, 14, 3,250, 11, 8, 16, 4, 1, 4, 4, 7, 21,251, + 20, 20, 15, 47, 16, 63, 16, 2, 16, 16, 1,171, 18, 1,105, 18, 1, 66, 18, 1, 11, 18, 1, 18, 23, 6, 22, 10, 9, 9, 7, 17, + 5, 2, 8, 8, 6, 15, 12, 10, 3, 21, 21, 4, 6, 18, 18, 95, 1, 18, 0, 63,225, 63, 51, 51, 47, 63, 51, 51, 18, 57, 17, 51, + 51, 51, 1, 47, 51, 47, 51, 17, 51, 16,205, 93, 93, 93, 93, 50, 50, 47, 93, 51, 50, 47,225, 17, 57, 47, 93, 51, 51,225, 50, 50, + 49, 48, 33, 35, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 4, 29, 49,254,182,156,254,176, +182, 1, 96,254,172,178, 1, 72,156, 1, 65,179,254,176, 1, 16,119,176, 2,229,253, 27, 2,229,253, 27, 2,242, 2,196,253, 60, + 2,196,253, 60, 2,196,253, 60,253,180,253,217, 0, 1, 0, 0,254,131, 4,184, 4, 74, 0, 21, 0, 98, 64, 53, 5, 22, 16, 13, + 2, 73, 10, 7, 3, 3, 8, 20, 73, 0, 27, 17, 1, 17, 15,144, 19,160, 19, 2,127, 19, 1, 16, 19, 1, 19, 9, 6, 8, 16, 13, + 7, 10, 10, 8, 19, 19, 22, 14, 11, 8, 15, 17, 80, 0, 0, 3, 6, 0, 47, 51, 51, 16,225, 63, 51, 51, 17, 51, 47, 18, 57, 17, + 51, 51, 51, 1, 47, 50, 50, 47, 93, 93, 93, 51,205, 93, 50,225, 17, 57, 47, 51, 51,225, 50, 50, 17, 51, 49, 48, 33, 1, 17, 35, + 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 19, 51, 17, 35, 17, 3,223,254,195,160,254,195,195, 1, 90,254,164,184, 1, + 74,160, 1, 74,184,254,166,250,116,161, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21,253,235, 2, 21,253,235, 2, 21,253,235, +254,101,253,233, 1,125,255,255, 0,139,254, 66, 4, 47, 5,203, 2, 38, 1,177, 0, 0, 1, 6, 3,127,247, 0, 0, 14,183, 1, + 1, 0, 50, 44, 9, 4, 37, 1, 43, 53, 0, 53,255,255, 0,201,254, 66, 4, 8, 4, 94, 2, 38, 1,209, 0, 0, 1, 6, 3,127, +245, 0, 0, 17,177, 1, 1,184,255,243,180, 47, 41, 8, 18, 37, 1, 43, 53, 0, 53, 0, 0, 1, 0,211,254,127, 4,186, 5,182, + 0, 14, 0,120, 64, 77,135, 14, 1,117, 14, 1, 54, 14, 86, 14, 2, 14, 11, 7, 90, 0, 8, 96, 8,112, 8,128, 8, 4, 8, 12, + 87, 13, 1, 64, 13, 1, 37, 13, 1, 7, 13, 1, 13, 13, 40, 5, 1, 5, 85, 0, 1, 54, 0, 1, 36, 0, 1, 5, 0, 1, 0, 3, +251,127, 2, 1, 2, 6, 14, 14, 7, 12, 10, 3, 5, 7, 3, 3, 0, 7, 18, 0, 63,196, 51, 47, 17, 51, 63, 51, 18, 57, 17, 51, + 1, 47, 93,225,205, 93, 93, 93, 93, 50, 93, 51, 47, 93, 93, 93, 93, 51, 47, 93,225, 50, 50, 93, 93, 93, 49, 48, 37, 51, 17, 35, + 17, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4, 43,143,176, 55,253,186,186,186, 2, 54,206,253,203,166,253,217, 1,129, 2,229, +253, 27, 5,182,253, 60, 2,196,253, 66, 0, 1, 0,215,254,131, 4,156, 4, 74, 0, 14, 0, 77, 64, 44, 7, 8, 8, 0, 10, 13, + 70,128, 12, 1, 12, 9, 6, 2, 71, 0, 3, 16, 3, 32, 3,128, 3,208, 3, 5, 7, 3, 1, 9, 9, 2, 7, 5, 15, 10, 80, 0, + 0, 2, 13, 13, 2, 21, 0, 63, 51, 47, 17, 51, 16,225, 63, 51, 18, 57, 17, 51, 1, 47, 94, 93,225, 50, 50, 47, 93,225,205, 50, + 50, 47, 51, 49, 48, 33, 1, 17, 35, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, 3,174,253,221,180,180, 2, 6,222,253,241, 1, +158,158,176, 2, 45,253,211, 4, 74,253,235, 2, 21,253,241,254, 95,253,233, 1,125, 0, 0, 1, 0,211, 0, 0, 4,174, 5,182, + 0, 18, 0,139,183, 11, 7, 90, 8, 18, 15, 2, 3,184, 1, 3, 64, 73, 12, 5, 38, 4, 1, 12, 4, 28, 4, 2, 4, 4, 0, 0, + 8, 96, 8,112, 8,128, 8, 4, 8, 16, 17, 17, 1,208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, + 0, 2, 18, 18, 5, 6, 17, 3, 15, 12, 16, 11, 16, 11, 6, 6, 9, 8, 4, 13, 4, 13, 9, 3, 8, 0, 18, 0, 63, 50, 63, 57, + 57, 47, 47, 17, 18, 57, 17, 51, 50, 17, 18, 57, 57, 63, 18, 57, 57, 17, 51, 1, 47, 56, 93, 93, 93, 51, 51, 47, 51, 47, 93, 18, + 57, 47, 93, 93, 51, 51,225, 50, 50, 50, 16,225, 50, 48, 49, 33, 35, 1, 21, 35, 17, 7, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, + 51, 1, 4,174,211,254,174,133,119,186,186,119,133, 1, 66,209,253,247, 1,244,205, 1,100, 98,253,215, 5,182,253, 6,164, 1, + 99,179, 1,166,253,101, 0, 1, 0,215, 0, 0, 4,150, 4, 74, 0, 18, 0,127, 64, 75, 13, 10, 17, 73, 7, 22, 18, 1, 12, 18, + 1, 18, 18, 3, 14, 11, 12, 12, 15,164, 14, 1,123, 14,139, 14,155, 14, 3, 0, 14, 96, 14, 2, 14, 16, 14, 6, 2, 71, 0, 3, + 96, 3, 2, 3, 10, 7, 11, 13, 11, 4, 16, 0, 15, 1, 13, 13, 8, 63, 18, 1, 48, 8, 1, 18, 8, 18, 8, 2, 4, 15, 15, 2, + 21, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93, 18, 57, 17, 51, 18, 57, 57, 17, 51, 17, 18, 57, 57, 1, 47, 93,225, 50, 47, 56, + 93, 93, 93, 51, 51, 47, 51, 17, 18, 57, 47, 93, 93, 51,225, 50, 50, 49, 48, 1, 39, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, 51, + 1, 1, 35, 1, 21, 35, 2, 16,133,180,180,133,125, 1, 4,222,253,241, 2, 54,232,254,223,125, 1,166,135,253,211, 4, 74,253, +235,137, 1, 56,185, 1, 13,253,241,253,197, 1, 39,205, 0, 1, 0, 59, 0, 0, 4,174, 5,182, 0, 20, 0,119, 64, 74, 14, 14, + 5, 0, 20, 2, 19, 16, 12, 4, 90, 9, 7, 0, 5, 96, 5,112, 5,128, 5, 4, 5, 72, 18, 88, 18, 2, 18, 19, 19, 1,208, 0, +240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0, 20, 16, 2, 3, 15, 7, 95, 12, 3,159, 8,175, 8, 2, + 8, 8, 18, 10, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 93, 57, 51,225, 50, 17, 51, 51, 51, 1, 47, 56, 93, 93, 93, 51, 51, + 47, 51, 93, 47, 93,198, 51,225, 50, 50, 17, 57, 57, 17, 18, 57, 47, 49, 48, 33, 35, 1, 7, 17, 35, 17, 35, 53, 51, 53, 51, 21, + 51, 21, 35, 17, 55, 1, 51, 1, 4,174,211,254, 62,140,186,152,152,186,213,213,121, 1,197,209,253,247, 2,186,114,253,184, 4, + 96,164,178,178,164,254,123,168, 2, 51,253,131, 0, 1, 0, 59, 0, 0, 4,139, 6, 20, 0, 22, 0,122, 64, 73,118, 14,150, 14, + 2,101, 14, 1, 86, 14, 1, 69, 14, 1, 14, 17, 6, 6, 13, 7, 3, 19, 71, 22, 1, 0, 20, 1, 20, 12, 13, 13, 16, 15, 32, 16, + 19, 72, 0, 15, 96, 15, 2, 15, 16, 15, 14, 17, 89, 17, 1, 17,118, 9, 1, 9, 18, 18, 12, 16, 19, 21, 6, 22, 79, 4, 1, 1, + 2, 12, 15, 2, 0, 0, 63, 63, 18, 57, 47, 51,237, 50, 63, 51, 18, 57, 17, 51, 93, 51, 93, 17, 51, 1, 47, 56, 93, 43, 51, 51, + 47, 51, 47, 93, 51,206,225, 50, 50, 17, 57, 47, 57, 57, 93, 93, 93, 93, 49, 48, 19, 51, 53, 51, 21, 33, 21, 33, 17, 3, 51, 55, + 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 35, 59,156,180, 1,123,254,133, 16, 4,135, 1,139,222,254, 18, 2, 10,213,254, 86,129, +180,156, 5, 94,182,182,137,254,117,254,223,152, 1,137,254, 37,253,145, 1,248, 82,254, 90, 4,213, 0, 0, 1, 0, 23, 0, 0, + 4,174, 5,182, 0, 14, 0, 95,181, 7, 14, 23, 14, 2, 14,184,255,248, 64, 46, 13, 18, 72, 14, 2, 13, 10, 4, 90, 5, 5, 0, + 7, 12, 13, 8, 13, 13, 1, 0, 16, 0, 14, 2,184, 2, 1,169, 2, 1, 88, 2, 1, 2, 10, 3, 3, 5, 12, 7, 95, 8, 3, 5, + 0, 18, 0, 63, 50, 63,225, 51, 18, 57, 17, 51, 51, 93, 93, 93, 17, 51, 1, 47, 56, 51, 51, 47, 56, 51, 47, 18, 57, 47,225, 50, + 17, 57, 57, 43,113, 48, 49, 33, 35, 1, 7, 17, 35, 17, 33, 53, 33, 17, 55, 1, 51, 1, 4,174,203,254,162,137,186,254,213, 1, +229,104, 1,117,195,254,100, 2,184,153,253,225, 5, 18,164,253, 8,170, 2, 78,253,135, 0, 1, 0, 43, 0, 0, 4,203, 4, 74, + 0, 12, 0, 92, 64, 54,167, 0, 1,150, 0, 1, 0, 1, 16, 1, 1, 40, 4, 56, 4, 2, 4, 14, 12, 11,103, 2, 1, 86, 2, 1, + 71, 2, 1, 2, 6, 71, 0, 7, 1, 7, 7, 3, 9, 3, 16, 3, 5, 2, 2, 7, 9, 80, 0, 10, 15, 7, 3, 21, 0, 63, 51, 63, + 51,225, 18, 57, 17, 51, 1, 47, 56, 47, 18, 57, 47, 93,225, 50, 93, 93, 93, 50, 50, 17, 51, 93, 51, 47, 56, 51, 93, 93, 48, 49, + 1, 51, 1, 1, 35, 1, 17, 35, 17, 33, 53, 33, 17, 3,223,197,254, 96, 1,199,207,254, 76,181,254,152, 2, 29, 4, 74,253,241, +253,197, 2, 45,253,211, 3,176,154,253,235, 0, 0, 1, 0,135,254,127, 4,186, 5,182, 0, 15, 0, 78, 64, 47, 12, 8, 90, 0, + 9, 1, 0, 9, 16, 9,240, 9, 3, 8, 9, 13, 5, 90,159, 0,175, 0, 2, 0, 4,251,127, 1,207, 1, 2, 1, 6, 95, 12, 12, + 8, 14, 10, 3, 5, 8, 3, 3, 0, 8, 18, 0, 63,192, 51, 47, 17, 51, 63, 51, 18, 57, 47,225, 1, 47, 93,225,221, 93,225, 50, + 47, 94, 93,113,225, 50, 48, 49, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 10,176,176,186,253,242,187, +187, 2, 14,186,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,160,254,131, 4,156, 4, 74, 0, 15, + 0, 85, 64, 53, 8, 0, 71, 11, 15, 70, 15, 12, 1,239, 12, 1,160, 12,192, 12, 2, 79, 12,111, 12, 2, 12, 7, 3, 71, 0, 4, + 16, 4, 32, 4,208, 4, 4, 7, 4, 1, 80, 7, 7, 9, 6, 15, 11, 80, 0, 0, 3, 14, 14, 3, 21, 0, 63, 51, 47, 17, 51, 16, +225, 63, 51, 57, 47,225, 1, 47, 94, 93,225, 50, 47, 93, 93, 93,113,225,221,225, 50, 48, 49, 33, 17, 33, 17, 35, 17, 51, 17, 33, + 17, 51, 17, 51, 17, 35, 17, 3, 70,254, 16,182,182, 1,240,182,160,176, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, + 1,125, 0, 1, 0,135, 0, 0, 4,182, 5,182, 0, 13, 0, 75, 64, 47, 9, 1, 90, 63, 0, 79, 0,191, 0, 3, 0, 64, 26, 29, + 72, 0,143, 11, 1, 11, 8, 4, 90, 0, 5, 1, 0, 5, 16, 5,240, 5, 3, 8, 5, 3, 95, 8, 8, 0, 13, 10, 6, 3, 5, 0, + 18, 0, 63, 50, 63, 51,192, 18, 57, 47,225, 1, 47, 94, 93,113,225, 50, 47, 93,220, 43, 93,225, 50, 49, 48, 33, 35, 17, 33, 17, + 35, 17, 51, 17, 33, 17, 33, 21, 33, 3,156,187,254, 97,187,187, 1,159, 1,213,254,230, 2,170,253, 86, 5,182,253,152, 2,104, +164, 0, 0, 1, 0,160, 0, 0, 4,182, 4, 74, 0, 13, 0, 59, 64, 34, 9, 1, 71, 0, 79, 11, 1, 11, 8, 4, 71, 0, 5, 16, + 5, 32, 5,208, 5, 4, 7, 5, 3, 80, 8, 8, 0, 13, 10, 6, 15, 5, 0, 21, 0, 63, 50, 63, 51,192, 18, 57, 47,225, 1, 47, + 94, 93,225, 50, 47, 93,220,225, 50, 48, 49, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 35, 3,199,183,254, 70,182,182, + 1,186, 1,166,239, 1,233,254, 23, 4, 74,254, 57, 1,199,154, 0, 1, 0,106,254, 0, 4,156, 5,182, 0, 36, 0, 68, 64, 38, + 16, 16, 0, 29,251, 30, 30, 34, 23,251, 8, 64, 9, 14, 72, 8, 38, 33,251, 48, 34, 1, 34, 26, 3, 3, 33, 32, 95, 35, 3, 30, + 33, 18, 20, 95, 13, 19, 0, 63,225, 63, 51, 63,225, 18, 57, 47,201, 1, 47, 93,225, 16,222, 43,225, 17, 57, 47,241, 50,192, 47, + 49, 48, 1, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 7, 17, 35, 17, + 33, 17, 35, 17, 33, 2,203, 18, 49, 25, 98,141, 91, 43, 51, 94,134, 84, 54, 85, 43, 38, 73, 47,115,100,103,112, 51, 27,166,254, +235,166, 2, 97, 3, 23, 5, 7, 92,171,242,151,170,248,162, 79, 19, 20,162, 16, 21,247,248,243,253, 12,253,137, 5, 18,250,238, + 5,182, 0, 1, 0,127,254, 10, 4,131, 4, 74, 0, 41, 0, 78, 64, 44, 29, 21, 73, 22, 3, 3, 96, 22, 1, 22, 22, 26, 12, 73, + 15, 37, 31, 37, 2, 37, 43, 25, 73, 0, 26, 1, 26, 17, 81, 32, 32, 26, 24, 80, 27, 15, 22, 26, 21, 4, 7, 81, 3, 0, 0, 47, + 50,225, 50, 63, 51, 63,225, 18, 57, 47,225, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 93, 51, 47, 16,225, 50, 49, 48, 1, 34, + 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 17, 35, 17, 33, 17, 35, 17, 33, 17, 54, 54, 51, 50, 30, 2, + 21, 20, 14, 2, 3, 57, 60, 92, 40, 42, 82, 56, 50, 70, 44, 20, 20, 47, 76, 57, 23, 45, 20,162,254,254,162, 2, 70, 21, 48, 23, + 78,131, 93, 52, 48, 87,121,254, 10, 22, 21,162, 22, 23, 47, 98,153,107,107,156,102, 49, 4, 6,254, 45, 3,176,252, 80, 4, 74, +254, 39, 6, 6, 57,133,221,165,155,215,133, 60, 0, 2, 0, 84,255,172, 4,162, 5,205, 0, 65, 0, 83, 0,107, 64, 61, 51, 18, + 5, 79, 79, 0, 76, 91, 16, 56, 32, 56, 2, 56, 56, 26, 35, 34, 34, 66, 91, 0, 0, 11, 11, 85, 43, 91, 31, 26, 47, 26, 2, 26, + 71, 96,112, 61,128, 61, 2, 61, 61, 38, 95, 31, 4, 79, 51, 48, 95, 21, 11, 8, 95, 12, 15, 18, 5, 21, 19, 0, 63, 51, 51,220, + 50,225, 50, 16,225, 50, 50, 63,241,202, 47, 93,225, 1, 47, 93,225, 17, 51, 47, 51, 47,225, 50, 47, 51, 17, 57, 47,113,225, 18, + 57, 17, 51, 51, 51, 49, 48, 1, 20, 14, 2, 7, 22, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 38, 39, 6, 6, 35, 34, 38, 38, 2, + 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, 46, 3, 53, 52, 62, 2, 51, 50, + 30, 2, 7, 52, 46, 2, 35, 34, 14, 2, 21, 20, 22, 23, 62, 3, 4,123, 31, 54, 71, 39, 23, 55, 35, 31, 59, 31, 29, 68, 32, 69, +131, 62, 41, 85, 59,126,196,134, 70, 69,134,196,127, 50, 93, 38, 56, 28, 61, 34, 81,124, 84, 42, 46, 88,126, 80, 20, 19, 16, 37, + 56, 38, 19, 41, 80,115, 74, 74,115, 80, 42,197, 11, 27, 44, 32, 32, 44, 26, 11, 56, 48, 30, 46, 31, 16, 2,190,106,184,151,115, + 37, 13, 10, 14, 11,170, 13, 12, 44, 52, 17, 15, 95,188, 1, 21,183,193, 1, 30,189, 94, 20, 15,154, 11, 14, 68,145,227,158,157, +221,139, 63, 3, 4, 54,117,132,149, 86,132,192,124, 60, 55,118,188,143, 86,132, 89, 45, 52, 96,136, 84,144,228, 79, 33,101,124, +139, 0, 0, 2, 0,115,255,197, 4,115, 4, 94, 0, 15, 0, 80, 0,137, 64, 57, 72, 52, 19, 5, 5, 67, 87, 0, 1, 0, 72, 32, + 57, 1, 89, 57, 1, 72, 57, 1, 57, 57, 27, 36, 35, 35, 8, 72, 67, 78, 78, 15, 67, 1, 67, 82, 44, 72, 0, 27, 16, 27, 2, 27, + 13, 78, 80, 62, 1,144, 62,160, 62,176, 62, 3, 62,184,255,192, 64, 23, 9, 12, 72, 62, 62, 49, 36, 39, 80, 35, 32, 16, 5, 49, + 80, 22, 72, 74, 80, 16, 19, 22, 22, 0, 63, 51,212,225, 50, 16,225, 50, 63, 51,225, 50, 18, 57, 47, 43, 93,113,225, 1, 47, 93, +225, 16,206, 93, 50, 47, 16,225, 50, 47, 51, 17, 57, 47, 93, 93,113,225, 93, 18, 57, 17, 51, 51, 51, 49, 48, 1, 20, 30, 2, 23, + 54, 54, 53, 52, 46, 2, 35, 34, 6, 1, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, + 14, 2, 21, 20, 30, 2, 51, 50, 50, 55, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 22, 51, 50, 54, 55, 21, 6, + 6, 2,172, 19, 33, 43, 24, 57, 66, 13, 29, 44, 31, 62, 63, 1, 82, 65,124, 57, 38, 83, 47,111,182,129, 71, 67,127,185,118, 57, + 79, 32, 45, 25, 56, 42, 81,117, 75, 36, 39, 77,115, 76, 10, 10, 9, 34, 52, 36, 19, 48, 84,114, 65, 65,110, 82, 46, 27, 48, 64, + 37, 39, 53, 26, 57, 28, 23, 63, 1,244, 52, 91, 77, 64, 26, 45,160,107, 51, 84, 58, 32,122,253,104, 30, 37, 14, 14, 76,145,209, +133,129,212,151, 83, 15, 11,146, 8, 13, 56,108,159,103, 97,152,105, 56, 2, 39, 80, 90,103, 61, 94,136, 89, 43, 39, 86,138, 99, + 70,119, 99, 79, 30, 19, 6, 8,147, 9, 7, 0,255,255, 0,129,254, 66, 4,156, 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 3,127, + 0,158, 0, 0, 0, 14,183, 1, 1,118, 36, 30, 6, 11, 37, 1, 43, 53, 0, 53,255,255, 0,172,254, 66, 4, 37, 4, 94, 2, 38, + 0, 70, 0, 0, 1, 6, 3,127, 55, 0, 0, 14,183, 1, 1, 53, 34, 28, 15, 0, 37, 1, 43, 53, 0, 53, 0, 1, 0,102,254,127, + 4,100, 5,182, 0, 11, 0, 74, 64, 44, 10,251, 11, 1, 6, 6, 8, 90, 3,208, 1, 1,162, 1, 1,147, 1, 1, 3,142, 1, 1, + 4, 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 7, 3, 95, 4, 3, 11, 11, 8, 95, 1, 18, 0, 63,225, 51, 47, 63,225, 50, 1, 47, + 93, 95, 93, 95, 93, 95, 93, 93, 93,198,241,194, 47, 16,222,225, 48, 49, 33, 35, 17, 33, 53, 33, 21, 33, 17, 51, 17, 35, 2,195, +187,254, 94, 3,254,254, 95,176,176, 5, 18,164,164,251,148,253,217, 0, 0, 1, 0,121,254,131, 4, 82, 4, 74, 0, 11, 0, 54, + 64, 32, 9, 71, 10, 0, 5, 5, 7, 71, 2, 16, 0, 80, 0,144, 0,160, 0,208, 0, 5, 0, 6, 2, 80, 3, 15, 10, 10, 7, 80, + 0, 21, 0, 63,225, 51, 47, 63,225, 50, 1, 47, 93,206,241,202, 47, 16,222,225, 49, 48, 33, 17, 33, 53, 33, 21, 33, 17, 51, 17, + 35, 17, 2, 10,254,111, 3,217,254,111,159,182, 3,176,154,154,252,234,253,233, 1,125,255,255, 0, 33, 0, 0, 4,170, 5,182, + 2, 6, 0, 60, 0, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 19, 0, 99, 64, 62, 55, 4, 71, 4, 2, 38, 4, 1, 4,141, + 3, 1, 3, 1, 72, 17, 1, 41, 17, 1, 17,207, 18, 1, 18, 18, 10, 0, 71,208, 1, 1,160, 1, 1,147, 1, 1, 3,123, 1, 1, + 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 19, 10, 2, 2, 1, 17, 3, 15, 1, 27, 0, 63, 63, 51, 18, 57, 17, 51, 51, 1, 47, 93, + 95, 93, 93, 95, 93, 93, 93,241, 57,202, 47, 93, 50, 93, 93, 16,206, 93, 50, 93, 93, 49, 48, 1, 35, 17, 1, 51, 19, 30, 3, 23, + 51, 62, 3, 55, 19, 51, 1, 2,193,183,254, 72,190,238, 12, 31, 28, 24, 5, 6, 6, 23, 29, 31, 12,239,189,254, 72,254, 20, 1, +236, 4, 74,253,145, 32, 90, 93, 86, 29, 29, 86, 93, 90, 32, 2,111,251,182, 0, 0, 1, 0, 33, 0, 0, 4,170, 5,182, 0, 16, + 0,202,185, 0, 16,255,248, 64, 36, 13, 16, 72, 38, 16, 54, 16, 2, 23, 16, 1,104, 1,120, 1, 2, 90, 1, 1, 72, 1, 1, 41, + 1, 57, 1, 2, 24, 1, 1, 39, 0,183, 0, 2, 0,184,255,248,179, 13, 17, 72, 16,184,255,248, 64, 84, 20, 24, 72, 16,175, 15, +255, 15, 2, 89, 15, 1, 15, 9, 1, 8, 20, 24, 72, 1,224, 2,240, 2, 2,123, 2, 1, 80, 2, 1, 2, 2, 8, 0, 9, 8, 6, + 6, 4, 8, 90, 13, 11,208, 9, 1,162, 9, 1,147, 9, 1, 3,142, 9, 1, 4, 99, 9, 1, 5, 16, 9, 80, 9, 2, 9, 3, 0, + 14, 14, 7, 11, 95, 4, 12, 12, 1, 8, 18, 15, 1, 3, 0, 63, 51, 63, 18, 57, 47, 51,225, 50, 51, 17, 51, 51, 1, 47, 93, 95, + 93, 95, 93, 95, 93, 93, 93,206, 51,241, 50,202, 47, 17, 18, 57, 16,200, 47, 93, 93, 93, 50, 43, 16,204, 93, 93, 50, 43, 48, 49, + 0, 43, 93, 1, 93, 93, 93, 93, 93, 93, 93, 43, 1, 1, 51, 1, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 1, 51, 2,100, 1, +125,201,254, 25, 1, 38,254,218,187,254,217, 1, 39,254, 25,203, 2,211, 2,227,252,131, 61,164,254,168, 1, 88,164, 51, 3,135, + 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 25, 0,136, 64, 11,135, 10,151, 10,167, 10, 3,118, 10, 1, 10,184,255,248, 64, 71, + 11, 15, 72, 10, 9, 4,168, 23, 1,121, 23, 1, 23, 8, 11, 15, 72, 23,207, 24, 1, 24, 24, 3, 16, 4, 25, 3, 1, 1, 3, 71, + 8, 6,208, 4, 1,162, 4, 1,147, 4, 1, 3,142, 4, 1, 4, 99, 4, 1, 5, 16, 4, 80, 4, 2, 4, 2, 6, 79, 25, 16, 7, + 7, 3, 23, 9, 15, 3, 27, 0, 63, 63, 51, 18, 57, 47, 51, 51,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,206, 51,241, +202, 47, 17, 51, 18, 57, 16,200, 47, 93, 50, 43, 93, 93, 16,204, 50, 43, 93, 93, 48, 49, 33, 21, 33, 17, 35, 17, 33, 53, 33, 1, + 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 3,203,254,246,183,254,246, 1, 10,254, 72,190,238, 12, 31, 28, 24, 5, 6, 6, + 23, 29, 31, 12,239,189,254, 72,137,254,157, 1, 99,137, 4, 74,253,145, 32, 90, 93, 86, 29, 29, 86, 93, 90, 32, 2,111,251,182, + 0, 1, 0, 53,254,127, 4,186, 5,182, 0, 15, 0,160, 64, 21, 71, 15, 87, 15,167, 15, 3, 15, 72, 9,104, 9,120, 9, 3, 9, + 6, 12, 12, 14, 11,184,255,248, 64, 14, 12, 15, 72, 6, 11, 22, 11, 38, 11, 3, 11, 10, 10, 7,184,255,248, 64, 64, 12, 15, 72, + 6, 7, 22, 7, 38, 7, 3, 7, 8, 13, 8, 12, 15, 72, 9, 13, 25, 13, 41, 13, 3, 13, 14, 14, 1, 5, 8, 12, 15, 72, 9, 5, + 25, 5, 41, 5, 3, 5, 0, 0, 4,251, 1, 15, 12, 6, 9, 9, 7, 13, 10, 3, 0, 95, 5, 5, 7, 3, 3, 7, 18, 0, 63, 51, + 47, 17, 51, 16,225, 63, 51, 18, 57, 17, 51, 51, 51, 1, 47,225, 51, 17, 51, 93, 43, 17, 51, 47, 51, 93, 43, 47, 51, 93, 43, 51, + 47, 51, 93, 43, 18, 57, 17, 51, 51, 93, 51, 93, 48, 49, 37, 51, 17, 35, 17, 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4, 51, +135,176, 71,254,157,254,146,189, 1,197,254, 90,199, 1, 75, 1, 78,191,254, 90,166,253,217, 1,129, 2,123,253,133, 2,252, 2, +186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 96,254,131, 4,156, 4, 74, 0, 15, 0,189,183,196, 14,212, 14,228, 14, 3, 14,184, +255,240, 64, 36, 11, 14, 72,203, 12,219, 12,235, 12, 3, 12, 16, 11, 14, 72,203, 4,219, 4,235, 4, 3, 4, 16, 11, 14, 72,196, + 2,212, 2,228, 2, 3, 6, 2,184,255,240, 64, 20, 11, 14, 72, 73, 13, 1, 13, 16, 18, 23, 72, 10, 13, 26, 13, 2, 70, 3, 1, + 3,184,255,240, 64, 51, 18, 23, 72, 5, 3, 21, 3, 2, 13, 6, 0, 3, 3, 5, 2, 1, 1, 14, 31, 15, 1, 15, 12, 7, 7, 8, + 4, 5, 5, 11, 70, 8, 7, 80, 12, 12, 14, 13, 6, 3, 0, 0, 1, 14, 10, 10, 14, 21, 4, 1, 15, 0, 63, 51, 63, 51, 47, 17, + 18, 57, 17, 51, 51, 51, 17, 51, 16,225, 1, 47,225, 51, 47, 51, 17, 51, 17, 51, 47, 93, 51, 51, 47, 51, 18, 57, 17, 51, 51, 51, + 48, 49, 0, 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 1, 1, 51, 1, 1, 51, 1, 1, 51, 17, 35, 17, 35, + 1, 1, 35, 1,254,254,119,207, 1, 34, 1, 35,207,254,117, 1, 45,162,176, 80,254,202,254,201,207, 2, 51, 2, 23,254,102, 1, +154,253,233,254,103,253,233, 1,125, 1,180,254, 76, 0, 0, 1, 0, 23,254,127, 4,186, 5,182, 0, 15, 0, 57, 64, 31, 0, 14, + 48, 14, 2, 14, 14, 15, 90, 11, 10, 1, 90, 4, 7,251, 6, 15, 10, 95, 2, 12, 3, 4, 0, 95, 9, 7, 7, 9, 18, 0, 63, 51, + 47, 16,225, 50, 63, 51,225, 50, 1, 47,225,221,225, 47,205,241,201, 47, 93, 48, 49, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33, 17, + 35, 53, 33, 21, 35, 1,188, 1,148,186,176,176,252,248,235, 2,145,236,166, 5, 16,250,240,253,217, 1,129, 5, 18,164,164, 0, + 0, 1, 0, 20,254,131, 4,156, 4, 74, 0, 15, 0, 63, 64, 36, 11, 71, 13, 2, 70,160, 15,176, 15, 2, 15, 64, 8, 1, 1, 8, + 1, 8, 8, 10, 71, 5, 3, 12, 4, 80, 6, 15, 14, 10, 80, 3, 1, 1, 3, 21, 0, 63, 51, 47, 16,225, 50, 63,225, 51, 1, 47, +206,241,202, 47, 93, 93, 47, 93,225,222,225, 48, 49, 1, 35, 17, 33, 17, 35, 53, 33, 21, 35, 17, 33, 17, 51, 17, 51, 4,156,176, +253, 6,222, 2,121,229, 1,158,182,160,254,131, 1,125, 3,176,154,154,252,234, 3,176,252, 80, 0, 1, 0,135,254,127, 4,186, + 5,182, 0, 25, 0, 61, 64, 34, 15, 90, 0, 12, 1, 12, 23, 5, 90, 0, 3,251,127, 2,207, 2, 2, 2, 23, 20, 95, 6, 9, 9, + 24, 13, 3, 0, 95, 5, 3, 3, 5, 18, 0, 63, 51, 47, 16,225, 63, 51, 57, 47, 51,225, 50, 1, 47, 93,225,221,225, 50, 47, 93, +225, 48, 49, 37, 51, 17, 35, 17, 35, 17, 6, 6, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 50, 54, 55, 17, 51, 4, 10,176,176, +186, 81,169, 84,187,192,187, 20, 50, 82, 61, 77,152, 84,186,166,253,217, 1,129, 2, 63, 29, 38,191,180, 2, 71,253,209, 57, 87, + 58, 29, 31, 28, 2,219, 0, 1, 0,152,254,131, 4,156, 4, 74, 0, 27, 0, 65, 64, 37, 20, 1, 71, 23, 27, 70,160, 24, 1, 47, + 24, 1, 24, 14, 71, 0, 11,192, 11, 2, 11, 20, 17, 80, 1, 6, 6, 0, 21, 12, 15, 26, 26, 23, 80, 0, 21, 0, 63,225, 51, 47, + 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93,225, 47, 93, 93,225,221,225, 50, 48, 49, 33, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, + 17, 20, 22, 51, 50, 54, 55, 17, 51, 17, 51, 17, 35, 17, 3, 70, 39, 78, 82, 90, 51, 82,129, 88, 47,182,105,100, 78,148, 73,182, +160,176, 1,207, 25, 37, 26, 13, 47, 84,115, 68, 1,166,254,102, 88, 86, 45, 43, 1,240,252, 80,253,233, 1,125, 0, 1, 0,135, + 0, 0, 4, 70, 5,182, 0, 29, 0, 81,177, 24, 6,184, 1, 3, 64, 38, 22, 7, 7, 12, 27, 1, 90, 0, 31, 15, 90, 0, 12, 16, + 12, 2, 12, 27, 24, 22, 22, 20, 95, 9, 8, 9, 7, 7, 5, 2, 9, 9, 1, 28, 13, 3, 1, 18, 0, 63, 63, 51, 18, 57, 47, 51, + 51, 51, 47, 17, 51, 16,237, 50, 47, 50, 50, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 51,225, 50, 49, 48, 33, 35, 17, 6, 6, + 7, 17, 35, 17, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 51, 17, 51, 17, 54, 54, 55, 17, 51, 4, 70,187, 65,109, 53,133, 33, +187,192,187, 20, 50, 82, 61, 12,133, 51,113, 63,187, 2, 86, 25, 36, 11,254,199, 1, 39,191,180, 2, 71,253,209, 57, 87, 58, 29, + 1, 88,254,180, 9, 36, 23, 2,198, 0, 0, 1, 0,152, 0, 0, 4, 37, 4, 74, 0, 28, 0, 95, 64, 55, 8, 19, 73, 6, 64, 20, + 80, 20,112, 20,128, 20, 4, 20, 20, 27, 10, 14, 71, 13, 30, 1, 71, 0, 27, 16, 27, 2, 27, 21, 22, 20, 20, 18, 15, 4, 80, 22, + 22, 14, 11, 28, 15, 14, 21, 10, 8, 5, 15, 6, 1, 6, 6, 5, 21, 0, 63, 51, 47, 93, 17, 51, 51, 63, 63, 51, 18, 57, 47,225, + 51, 51, 51, 47, 17, 51, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 93, 51,225, 50, 48, 49, 1, 17, 20, 22, 51, 51, 17, 51, 17, + 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 21, 35, 53, 35, 34, 46, 2, 53, 17, 1, 78,105,100, 6,125,104,105,182,182, 53,101, 55, +125, 47, 82,129, 88, 47, 4, 74,254,102, 88, 86, 1, 45,254,227, 29, 70, 1,213,251,182, 1,233, 37, 51, 16,254,231, 47, 84,115, + 68, 1,166, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 19, 0, 43, 64, 22, 10, 90, 9, 21, 2, 18, 90, 0, 19, 1, 19, 17, + 14, 95, 2, 5, 5, 19, 9, 18, 0, 3, 0, 63, 63, 51, 57, 47, 51,225, 50, 1, 47, 93,225, 50, 16,222,225, 48, 49, 19, 51, 17, + 54, 54, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 7, 17, 35,135,187,110,188, 95,183,196,187,100,117, 86,175,107,187, 5, +182,253,170, 45, 45,188,182,253,184, 2, 47,116,116, 40, 40,253, 57, 0, 0, 1, 0,168, 0, 0, 4, 53, 4, 74, 0, 23, 0, 59, + 64, 36, 0, 71,176, 23,192, 23, 2, 23, 25, 12, 8, 71, 0, 9, 16, 9, 32, 9,192, 9,208, 9, 5, 7, 9, 7, 4, 80, 12, 17, + 17, 10, 15, 9, 0, 21, 0, 63, 50, 63, 57, 47, 51,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 48, 49, 33, 17, 52, 38, 35, + 34, 6, 7, 17, 35, 17, 51, 17, 62, 3, 51, 50, 30, 2, 21, 17, 3,127,105,100, 90,166, 84,182,182, 44, 87, 92,101, 57, 82,129, + 88, 47, 1,154, 88, 86, 58, 57,254, 43, 4, 74,254, 22, 31, 47, 32, 17, 47, 83,115, 68,254, 90, 0, 2,255,248,255,236, 4,123, + 5,205, 0, 45, 0, 56, 0, 84, 64, 47, 52, 91, 5, 18, 18, 5, 58, 35,134, 38, 1,103, 38,119, 38, 2, 38,251, 31, 51, 7, 91, + 40, 31, 28, 1, 28, 34, 31, 28, 7, 96, 51, 34, 40, 40, 0, 17, 12, 95, 18, 23, 19, 46, 95, 0, 4, 0, 63,225, 63, 51,225, 50, + 17, 57, 47,204, 51,225, 50, 1, 47, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 48, 49, 1, 50, 22, 22, + 18, 21, 21, 33, 30, 3, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 51, 51, + 62, 3, 23, 34, 14, 2, 7, 33, 52, 46, 2, 2,221,125,160, 93, 36,253, 96, 5, 36, 75,120, 90, 47, 79, 71, 65, 33, 33, 65, 76, + 92, 60,126,179,118, 60, 8,144,143, 17, 11,156, 6, 14,102, 21, 11, 60,109,162,110, 64, 92, 62, 33, 5, 1,223, 16, 48, 87, 5, +205,101,189,254,241,170, 90,122,194,134, 71, 12, 20, 28, 16,170, 15, 26, 18, 10, 93,177,254,160, 3,114,122, 42, 66, 23, 15, 62, + 35, 97,154,244,171, 91,164, 65,126,185,120,117,184,128, 67, 0, 0, 2,255,213,255,236, 4, 88, 4, 94, 0, 44, 0, 53, 0, 94, + 64, 56, 49, 72, 30, 40, 40, 30, 55, 12,149, 15, 1,102, 15,118, 15,134, 15, 3, 15, 73, 8, 48, 31, 72, 19, 31, 5, 47, 5, 2, + 5, 11, 8, 64, 24, 27, 72, 8, 5, 31, 80, 48, 11, 18, 18, 34, 45, 80, 24, 16, 39, 34, 81, 40, 0, 22, 0, 63, 50,225, 50, 63, +225, 18, 57, 47,204, 51,225, 50, 1, 47, 43, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 48, 49, 5, 34, + 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, + 55, 21, 14, 3, 3, 34, 6, 7, 33, 52, 46, 2, 2,215,108,178,131, 75, 4,133,141, 17, 10,149, 6, 14, 48, 50, 27, 14, 75,117, +152, 90, 99,158,110, 59,253, 76, 5,152,152, 51, 87, 80, 77, 39, 40, 77, 81, 87, 96,115,132, 11, 1,235, 27, 56, 88, 20, 70,136, +199,129, 2,111,114, 39, 63, 21, 14, 58, 34, 47, 49,108,170,117, 61, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, + 8, 3,219,156,149, 68,113, 80, 44, 0, 0, 2,255,248,254,127, 4,123, 5,205, 0, 48, 0, 59, 0,103, 64, 57, 24,251, 25, 25, + 31, 55, 91, 5, 18, 18, 5, 61, 38,134, 41, 1,103, 41,119, 41, 2, 41,251, 34, 54, 7, 91, 44, 31, 31, 1, 31, 37, 34, 31, 7, + 96, 54, 37, 43, 43, 0, 17, 12, 95, 23, 26, 23, 24, 24, 18, 23, 19, 49, 95, 0, 4, 0, 63,225, 63, 51, 51, 47, 17, 51, 16,225, + 50, 17, 57, 47,204, 51,225, 50, 1, 47, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 18, 57, 47,225, 48, + 49, 1, 50, 22, 22, 18, 21, 21, 33, 30, 3, 51, 50, 62, 2, 55, 21, 14, 3, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, + 51, 6, 6, 21, 20, 51, 51, 62, 3, 23, 34, 14, 2, 7, 33, 52, 46, 2, 2,221,125,160, 93, 36,253, 96, 5, 36, 75,120, 90, 47, + 79, 71, 65, 33, 30, 59, 67, 78, 49,176, 90,130, 86, 46, 6,144,143, 17, 11,156, 6, 14,102, 21, 11, 60,109,162,110, 64, 92, 62, + 33, 5, 1,223, 16, 48, 87, 5,205,101,189,254,241,170, 90,122,194,134, 71, 12, 20, 28, 16,170, 14, 23, 18, 12, 2,254,147, 1, +125, 23,111,170,226,138, 3,114,122, 42, 66, 23, 15, 62, 35, 97,154,244,171, 91,164, 65,126,185,120,117,184,128, 67, 0, 0, 2, +255,213,254,131, 4, 88, 4, 94, 0, 45, 0, 54, 0,113, 64, 66, 20, 70, 21, 21, 27, 50, 72, 6, 16, 16, 6, 56, 34,149, 37, 1, +102, 37,118, 37,134, 37, 3, 37, 73, 30, 49, 7, 72, 41, 31, 27, 47, 27, 2, 27, 33, 30, 64, 24, 27, 72, 30, 27, 7, 80, 49, 33, + 40, 40, 0, 15, 10, 81, 19, 22, 19, 20, 20, 16, 19, 22, 46, 80, 0, 16, 0, 63,225, 63, 51, 51, 47, 17, 51, 16,225, 50, 17, 57, + 47,204, 51,225, 50, 1, 47, 43, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 18, 57, 47,225, 49, 48, 1, + 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 6, 6, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, + 21, 20, 22, 51, 51, 62, 3, 23, 34, 6, 7, 33, 52, 46, 2, 2,174, 99,158,110, 59,253, 76, 5,152,152, 51, 87, 80, 77, 39, 66, +133, 78,176, 84,136, 99, 57, 3,133,141, 17, 10,149, 6, 14, 48, 50, 27, 14, 75,117,152, 86,115,132, 11, 1,235, 27, 56, 88, 4, + 94, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 32, 34, 5,254,149, 1,117, 17, 84,132,178,111, 2,111,114, 39, 63, 21, 14, + 58, 34, 47, 49,108,170,117, 61,151,156,149, 68,113, 80, 44, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0, +255,255, 0, 0, 0, 0, 4,205, 7,105, 2, 38, 1,176, 0, 0, 1, 7, 2, 54, 0, 0, 1, 82, 0, 19, 64, 11, 1, 20, 5, 38, + 1, 0, 23, 18, 17, 10, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,205, 6, 23, 2, 38, 1,208, 0, 0, 1, 6, + 2, 54, 0, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 0, 23, 18, 16, 5, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,135,254, 0, + 4, 88, 5,182, 0, 37, 0, 88, 64, 49,134, 11, 1, 23, 11, 55, 11,103, 11, 3,119, 8, 1, 9, 10, 10, 33, 91, 17, 39, 11, 8, + 4, 90, 5, 27, 27, 0, 5, 1, 5, 8, 11, 97, 3, 0, 0, 4, 9, 6, 3, 28, 31, 95, 27, 22, 22, 4, 18, 0, 63, 51, 47, 51, +225, 50, 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 47, 16,225, 50, 50, 16,222,225, 51, 47, 51, 48, 49, 0, 93, 1, 93, 93, + 1, 34, 6, 7, 17, 35, 17, 51, 17, 1, 51, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, + 46, 2, 1,240, 57, 82, 35,187,187, 2, 53,207,253,209, 6,127,210,151, 83, 82,146,200,119, 49, 78, 68, 60, 31, 63,126, 73, 1, +118, 69,115,152, 2,125, 15, 14,253,160, 5,182,253, 60, 2,196,253, 88, 81,161,237,156,170,248,162, 79, 6, 12, 19, 12,162, 23, + 24, 1,239,129,186,119, 56, 0, 0, 1, 0,215,254, 10, 4, 88, 4, 74, 0, 34, 0, 85, 64, 48, 34, 16, 25, 33, 1, 33, 34, 34, + 20, 72, 5, 36, 32, 22, 0, 54, 0, 70, 0, 3, 0, 28, 70, 29, 13, 13, 0, 29, 1, 29, 32, 0, 78, 27, 25, 25, 29, 33, 30, 15, + 14, 17, 81, 13, 10, 10, 29, 21, 0, 63, 51, 47, 51,225, 50, 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 47, 16,225, 50, 93, + 50, 16,222,225, 51, 47, 51, 93, 56, 48, 49, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, + 35, 34, 7, 17, 35, 17, 51, 17, 1, 51, 2,106,100,180,135, 79, 74,129,176,102, 76,105, 47, 44,105, 66,149,157, 52, 97,137, 85, + 83, 75,180,180, 1,228,215, 2, 98, 2, 61,130,207,149,150,213,136, 64, 31, 29,161, 24, 37,195,210,106,152, 98, 46, 29,254, 76, + 4, 74,254, 6, 1,250, 0, 1, 0, 4,254,127, 4,203, 5,182, 0, 35, 0, 75, 64, 42, 12, 20, 7,250, 29, 20, 0, 34,144, 34, +160, 34, 3, 34, 34, 5, 20, 3, 91, 2, 1, 5, 90, 0, 4, 1, 7, 95, 34, 3, 21, 24, 97, 20, 17, 19, 3, 3, 0, 95, 5, 18, + 0, 63,225, 51, 47, 63, 51,225, 50, 63,225, 1, 47, 51,221,225, 16,221,225, 47, 18, 57, 47, 93, 18, 57,225, 17, 57, 48, 49, 37, + 51, 3, 35, 19, 35, 17, 35, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 4, 8, +195,144,217,166,186,236, 14, 32, 33, 34, 16, 20, 53, 79,110, 78, 35, 74, 28, 22, 59, 32, 48, 64, 42, 26, 10, 11, 33, 39, 43, 22, + 2, 65,166,253,217, 1,129, 5, 18,113,244,236,212, 81,103,162,111, 59, 14, 11,150, 10, 15, 63, 98,117, 54, 57,200, 1, 6, 1, + 58,170, 0, 1, 0, 31,254,131, 4,174, 4, 74, 0, 24, 0, 63, 64, 33, 9, 15, 7, 73, 20, 15, 23, 23, 5, 15, 3, 71, 2, 1, + 5, 71, 0, 4, 1, 7, 80, 23, 15, 18, 79, 12, 22, 3, 3, 0, 80, 5, 21, 0, 63,225, 51, 47, 63,225, 63,225, 1, 47, 51,221, +225, 16,221,225, 47, 18, 57, 47, 18, 57,225, 17, 57, 48, 49, 37, 51, 3, 35, 19, 35, 17, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, + 22, 51, 50, 54, 54, 18, 55, 33, 3,248,182,123,182,123,182,254,196, 20, 64, 95,130, 86, 28, 49, 15, 21, 28, 55, 89, 69, 51, 18, + 2,142,154,253,233, 1,125, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250, 0, 1, 0,135,254, 0, 4, 70, + 5,182, 0, 27, 0, 78, 64, 46, 20, 12, 90, 23, 29, 19, 15, 90, 16, 5, 5, 16, 16, 32, 16, 2, 32, 16, 48, 16, 2, 16, 14, 95, +152, 19, 1, 15, 19, 47, 19, 2, 6, 19, 19, 16, 21, 17, 3, 16, 18, 6, 9, 95, 5, 0, 0, 47, 50,225, 50, 63, 63, 51, 18, 57, + 47, 94, 93, 93,225, 1, 47, 93,113, 51, 47, 16,225, 50, 16,222,225, 50, 48, 49, 1, 34, 46, 2, 39, 53, 22, 22, 51, 50, 54, 53, + 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2, 88, 45, 71, 61, 54, 29, 56,110, 63,164,174,253,183,187,187, 2, 73, +187, 74,132,181,254, 0, 6, 12, 19, 12,162, 23, 24,240,247, 2, 31,253, 86, 5,182,253,152, 2,104,250,221,170,248,162, 79, 0, + 0, 1, 0,160,254, 10, 4, 45, 4, 74, 0, 27, 0, 72, 64, 42, 20, 12, 71,176, 23,192, 23, 2, 23, 29, 19, 15, 71, 16, 3, 3, + 0, 16, 16, 16, 32, 16,208, 16, 4, 7, 16, 14, 80, 19, 19, 16, 21, 17, 15, 16, 21, 4, 7, 81, 3, 0, 0, 47, 50,225, 50, 63, + 63, 51, 18, 57, 47,225, 1, 47, 94, 93, 51, 47, 16,225, 50, 16,222, 93,225, 50, 48, 49, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, + 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,145, 75,105, 47, 43,106, 66, 59, 91, 61, 31,253,223,182,182, + 2, 33,182, 63,111,151,254, 10, 31, 29,161, 24, 37, 45, 97,150,105, 1,178,254, 23, 4, 74,254, 57, 1,199,251,243,150,213,136, + 64, 0, 0, 1, 0,135,254,127, 4,203, 5,182, 0, 15, 0, 84, 64, 49, 12, 8, 90, 16, 9, 32, 9, 2, 32, 9, 48, 9, 2, 9, + 3, 91, 2, 1, 13, 5, 90, 0, 4, 1, 6, 95,152, 12, 1, 15, 12, 47, 12, 2, 6, 12, 12, 9, 14, 10, 3, 0, 5, 5, 9, 3, + 3, 9, 18, 0, 63, 51, 47, 17, 51, 16,205, 63, 51, 18, 57, 47, 94, 93, 93,225, 1, 47, 51,221,225, 50, 16,221,225, 47, 93,113, +225, 50, 48, 49, 37, 51, 3, 35, 19, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 8,195,144,217,166,186,253,244,187,187, 2, + 12,186,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,160,254,131, 4,174, 4, 74, 0, 15, 0, 73, + 64, 41, 14, 71, 13, 12, 8, 0, 71, 11, 15, 12, 7, 3, 71, 0, 4, 16, 4, 32, 4,208, 4, 4, 7, 4, 2, 80, 7, 7, 4, 9, + 5, 15, 11, 80, 0, 0, 4, 14, 14, 4, 21, 0, 63, 51, 47, 17, 51, 16,225, 63, 51, 18, 57, 47,225, 1, 47, 94, 93,225, 50, 47, + 51,221,225, 50, 16,221,237, 48, 49, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 3, 35, 19, 3, 66,254, 20,182,182, 1, +236,182,182,123,182,123, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, 1,125, 0, 1, 0,135,254,127, 4, 70, 5,182, + 0, 29, 0, 61, 64, 32, 28,251, 27, 27, 22, 0, 90, 25, 31, 12, 90, 0, 9, 1, 9, 1, 6, 95, 22, 17, 17, 10, 29, 95, 26, 27, + 27, 26, 18, 23, 10, 3, 0, 63, 51, 63, 51, 47, 16,225, 17, 57, 47, 51,225, 50, 1, 47, 93,225, 16,222,225, 50, 50, 47,225, 48, + 49, 37, 17, 14, 3, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 50, 62, 2, 55, 17, 51, 17, 35, 17, 35, 17, 3,139, 57,101, 94, + 92, 49,187,192,187, 20, 50, 82, 61, 45, 86, 89, 96, 56,187,187,176,166, 1,176, 22, 34, 22, 12,191,180, 2, 71,253,209, 57, 87, + 58, 29, 10, 20, 30, 20, 2,198,250, 74,254,127, 2, 39, 0, 1, 0,152,254,131, 4, 37, 4, 74, 0, 27, 0, 75, 64, 45, 25, 70, + 24, 24, 19, 27, 71,176, 22, 1, 22, 29, 13, 71, 0, 10, 16, 10, 32, 10,208, 10, 4, 7, 10, 5, 80, 15, 16, 31, 16, 2, 16, 16, + 11, 26, 80, 23, 24, 24, 23, 21, 20, 11, 15, 0, 63, 51, 63, 51, 47, 16,225, 17, 57, 47, 93,225, 1, 47, 94, 93,225, 16,222, 93, +225, 50, 50, 47,225, 48, 49, 1, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 54, 55, 17, 51, 17, 35, 17, 35, 17, 51, + 3,111, 44, 87, 92,101, 57, 82,129, 88, 47,182,105,100, 89,167, 84,182,166,176,160, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1, +166,254,102, 88, 86, 58, 57, 1,213,251,182,254,131, 2, 23, 0, 0, 1, 0,113,254,127, 4,203, 5,182, 0, 29, 0,219, 64, 60, + 27, 14, 1, 10, 14, 1,252, 14, 1,237, 14, 1,220, 14, 1,185, 14,201, 14, 2,138, 14,154, 14,170, 14, 3,108, 14,124, 14, 2, + 91, 14, 1, 58, 14, 74, 14, 2, 25, 14, 41, 14, 2, 3, 11, 19, 11, 2,241, 11, 1,226, 11, 1,212, 11, 1, 11,184,255,232, 64, + 88, 17, 21, 72, 99, 11,115, 11, 2, 84, 11, 1, 53, 11, 69, 11, 2, 22, 11, 38, 11, 2, 19,251, 18, 17, 29, 0, 12, 12, 8, 27, + 22, 10, 14, 1, 14, 21,250, 15, 16, 1,191, 16,207, 16,223, 16, 3, 16, 17, 5, 11, 1, 11, 7, 2, 8,250, 0, 9, 16, 9, 2, + 9, 16, 95, 21, 18, 28, 14, 2, 11, 3, 5, 12, 1, 3, 12, 13, 0, 1, 1, 0, 8, 19, 19, 8, 18, 0, 63, 51, 47, 17, 51, 95, + 93, 50, 95, 93, 63, 51, 51, 51, 63,225, 1, 47, 93,225, 50, 50, 50, 93, 47,221, 93,113,225, 50, 93, 50, 50, 17, 57, 17, 51, 51, + 16,221,237, 48, 49, 93, 93, 93, 93, 43, 93, 93, 93,113, 93, 93, 93, 93, 93, 93, 93, 93, 93,113,113, 33, 1, 35, 22, 23, 22, 22, + 21, 17, 35, 17, 51, 19, 51, 19, 51, 17, 51, 3, 35, 19, 35, 17, 52, 54, 55, 54, 55, 35, 1, 1,254,254,250, 8, 5, 4, 4, 5, +145,237,236, 6,239,242,154,185,176,166,108, 4, 3, 4, 3, 8,254,248, 5, 0, 74, 73, 63,139, 57,252,150, 5,182,251, 88, 4, +168,250,240,253,217, 1,129, 3,119, 52,134, 61, 71, 73,251, 2, 0, 1, 0,115,254,131, 4,174, 4, 74, 0, 36, 0,204, 64,140, +184, 36,200, 36,216, 36, 3,153, 36,169, 36, 2,138, 36, 1,105, 36, 1, 90, 36, 1, 72, 36, 1, 41, 36, 57, 36, 2, 26, 36, 1, + 9, 36, 1,213, 24, 1,198, 24, 1,165, 24,181, 24, 2,150, 24, 1, 85, 24,101, 24,133, 24, 3, 70, 24, 1, 55, 24, 1, 38, 24, + 1, 21, 24, 1, 6, 24, 1, 8, 15, 1, 8, 14, 1, 7, 13, 1, 7, 12, 1, 3, 14, 13, 30, 30, 6, 24, 21, 73, 4, 22, 20, 22, + 36, 22, 3, 22, 4, 3, 2, 36, 6, 73, 1, 5,123, 2,203, 2,219, 2,235, 2, 4, 2, 7, 36, 36, 20, 24, 15, 30, 14, 15, 14, + 1, 2, 14, 21, 4, 4, 21, 21, 1, 80, 6, 21, 0, 63,225, 63, 51, 47, 17, 51, 95, 93, 17, 51, 63, 51, 51, 17, 51, 1, 47, 93, + 51,221,225, 50, 16,221,205, 47, 93,225, 50, 17, 57, 17, 51, 51, 48, 49, 95, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 17, 51, 3, 35, 19, 35, 17, 14, 3, 7, 3, 35, 3, 46, 3, 39, 17, 35, 17, 51, 19, + 30, 3, 23, 62, 3, 55, 19, 4, 29,145,123,168,123,123, 4, 16, 17, 17, 5,199,131,196, 4, 16, 18, 18, 6,145,204,197, 10, 21, + 18, 15, 4, 5, 14, 17, 19, 10,203, 4, 74,252, 80,253,233, 1,125, 3,129, 21, 69, 74, 68, 18,253,121, 2,135, 14, 62, 73, 75, + 26,252,127, 4, 74,253,112, 34, 81, 75, 62, 16, 17, 61, 74, 78, 34, 2,148, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, + 0, 44, 0, 0,255,255, 0, 33, 0, 0, 4,172, 7,105, 2, 38, 0, 36, 0, 0, 1, 7, 2, 54,255,255, 1, 82, 0, 21,180, 2, + 17, 5, 38, 2,184,255,255,180, 20, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6, 23, 2, 38, + 0, 68, 0, 0, 1, 6, 2, 54, 4, 0, 0, 19, 64, 11, 2, 36, 17, 38, 2, 37, 39, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 33, 0, 0, 4,172, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25,182, 3, 2, 19, 5, 38, + 3, 2,184,255,255,180, 21, 25, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, 5,217, 2, 38, + 0, 68, 0, 0, 1, 6, 0,106, 12, 0, 0, 23, 64, 13, 3, 2, 38, 17, 38, 3, 2, 45, 40, 44, 8, 22, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,186, 5,182, 2, 6, 0,136, 0, 0,255,255, 0, 45,255,236, 4,162, 4, 94, 2, 6, + 0,168, 0, 0,255,255, 0,217, 0, 0, 4, 35, 7,105, 2, 38, 0, 40, 0, 0, 1, 7, 2, 54, 0, 23, 1, 82, 0, 21,180, 1, + 14, 5, 38, 1,184,255,255,180, 17, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 23, 2, 38, + 0, 72, 0, 0, 1, 6, 2, 54, 16, 0, 0, 19, 64, 11, 2, 25, 17, 38, 2, 15, 28, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0, + 0, 2, 0, 84,255,236, 4,123, 5,205, 0, 30, 0, 41, 0, 63, 64, 36, 36, 26, 91, 14, 43, 37, 91, 24, 32, 3, 48, 3, 2, 3, + 3, 31, 24, 47, 24, 2, 24, 37, 95, 25, 25, 9, 31, 95, 19, 19, 3, 0, 95, 4, 9, 4, 0, 63, 51,225, 50, 63,225, 17, 57, 47, +225, 1, 47, 93, 51, 47, 93, 16,225, 16,222,225, 50, 48, 49, 1, 34, 6, 7, 53, 62, 3, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, + 35, 34, 38, 38, 2, 53, 53, 33, 46, 3, 3, 50, 62, 2, 55, 33, 30, 3, 2, 35,111,179, 79, 38, 80, 93,111, 67,141,217,147, 75, + 73,141,208,135,137,192,122, 55, 3, 98, 6, 55,100,145, 48, 77,125, 90, 54, 6,253, 99, 2, 35, 75,119, 5, 41, 44, 32,170, 15, + 26, 19, 10,108,198,254,233,171,174,254,235,194,104,103,192, 1, 17,171, 82,122,193,134, 71,251,102, 65,126,185,120,117,184,127, + 68, 0, 0, 2, 0,133,255,236, 4, 72, 4, 94, 0, 30, 0, 39, 0, 73, 64, 43, 34, 17, 72, 15, 5, 1,255, 5, 1, 5, 41, 35, + 72, 15, 25, 25, 0, 15, 1, 0, 15, 16, 15,240, 15, 3, 8, 15, 35, 80, 16, 16, 0, 31, 80, 10, 22, 25, 20, 81, 26, 0, 16, 0, + 63, 50,225, 50, 63,225, 17, 57, 47,225, 1, 47, 94, 93,113, 51, 47, 16,225, 16,222, 93,113,225, 50, 49, 48, 1, 50, 30, 2, 21, + 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 38, 38, 35, 34, 14, 2, 7, 53, 62, 3, 19, 50, 54, 55, 33, 20, 30, 2, 2, 45,119,198, +143, 79, 72,131,184,111,108,173,120, 64, 3, 6, 5,171,168, 56, 97, 89, 84, 44, 43, 83, 87, 96,100,133,156, 12,253,195, 32, 66, +103, 4, 94, 74,142,210,135,136,214,148, 79, 71,129,181,110,113,193,181, 10, 19, 28, 18,159, 20, 28, 19, 9,252, 37,156,149, 68, +113, 80, 44, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, 2,225, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, + 3, 2, 46, 5, 38, 3, 2, 0, 48, 52, 24, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133,255,236, 4, 72, 5,217, + 2, 38, 2,226, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 3, 2, 44, 17, 38, 3, 2, 1, 46, 50, 15, 5, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,205, 7, 43, 2, 38, 1,176, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25, +182, 2, 1, 22, 5, 38, 2, 1,184,255,255,180, 24, 28, 17, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, + 4,205, 5,217, 2, 38, 1,208, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 22, 17, 38, 2, 1,184,255,255,180, 24, 28, + 16, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,139,255,236, 4, 47, 7, 43, 2, 38, 1,177, 0, 0, 1, 7, 0,106, +255,237, 1, 82, 0, 25,182, 2, 1, 40, 5, 38, 2, 1,184,255,246,180, 42, 46, 9, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,201,255,236, 4, 8, 5,217, 2, 38, 1,209, 0, 0, 1, 6, 0,106,253, 0, 0, 25,182, 2, 1, 37, 17, 38, 2, 1, +184,255,250,180, 39, 43, 8, 18, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,158,255,236, 4, 66, 5,182, 0, 32, 0, 75, + 64, 41, 87, 0, 1, 70, 0, 1, 28, 91, 32, 32, 5, 0, 91, 26, 26, 13, 22, 5, 34, 29, 29, 0, 13, 1, 13, 32, 29, 95, 30, 0, + 97, 26, 26, 30, 3, 14, 19, 96, 13, 10, 19, 0, 63, 51,225, 50, 63, 57, 47,225, 16,225, 50, 1, 47, 93, 51, 47, 16,222,193, 17, + 57, 47,225, 17, 51, 47,225, 48, 49, 93, 93, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, + 35, 53, 1, 33, 53, 33, 21, 2, 74,115,186,132, 71, 67,136,205,137,110,192, 85, 43, 96, 99, 99, 46,178,176,207,186,123, 1,166, +253,166, 3, 61, 3, 59, 4, 54,100,151,102, 96,160,116, 64, 34, 45,170, 23, 36, 24, 13,148,135,135,129,151, 1,209,166,145, 0, + 0, 1, 0,170,254, 20, 4, 59, 4, 74, 0, 36, 0, 70, 64, 38, 32, 74, 36, 36, 5, 0, 74, 0, 30, 1, 30, 30, 13, 24, 70, 5, + 38, 33, 0, 13, 1, 13, 31, 0, 78, 30, 30, 19, 33, 80, 34, 15, 14, 19, 80, 13, 10, 27, 0, 63, 51,225, 50, 63,225, 18, 57, 47, +225, 50, 1, 47, 93, 51, 16,222,225, 17, 57, 47, 93,225, 17, 51, 47,225, 48, 49, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 55, + 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 1, 33, 53, 33, 21, 2, 72,104,182,135, 78, 76,139,198,123,122,193, 62, 2, + 33, 84, 98,111, 59, 77,128, 92, 51, 59,108,151, 91,119, 1,182,253,150, 3, 61, 1,213, 7, 64,114,164,108,110,185,134, 75, 36, + 34,166, 16, 31, 24, 15, 48, 89,127, 78, 86,123, 80, 37,125, 1,237,154,133, 0,255,255, 0,137, 0, 0, 4, 70, 6,193, 2, 38, + 1,178, 0, 0, 1, 7, 1, 77, 0, 2, 1, 82, 0, 19, 64, 11, 1, 19, 5, 38, 1, 0, 17, 18, 0, 8, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,160, 0, 0, 4, 45, 5,111, 2, 38, 1,210, 0, 0, 1, 6, 1, 77, 2, 0, 0, 19, 64, 11, 1, 14, 17, 38, + 1, 1, 12, 13, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,137, 0, 0, 4, 70, 7, 43, 2, 38, 1,178, 0, 0, 1, 7, + 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 23, 27, 0, 8, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,160, 0, 0, 4, 45, 5,217, 2, 38, 1,210, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 2, 1, 16, 17, 38, 2, + 1, 1, 18, 22, 10, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, 0, 50, 0, 0, + 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 3, 2, 24, 5, 38, 3, 2, 0, 26, 30, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 0, 82, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 24, 17, 38, + 3, 2,184,255,249,180, 26, 30, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, + 2,126, 0, 0,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 2,127, 0, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, + 2,126, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 4, 3, 46, 5, 38, 4, 3, 0, 48, 52, 10, 0, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 2,127, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 4, + 3, 35, 17, 38, 4, 3,184,255,249,180, 37, 41, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 68,255,236, 4, 76, + 7, 43, 2, 38, 1,199, 0, 0, 1, 7, 0,106,255,136, 1, 82, 0, 25,182, 2, 1, 28, 5, 38, 2, 1,184,255,166,180, 30, 34, + 1, 6, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,184,255,236, 4, 37, 5,217, 2, 38, 1,231, 0, 0, 1, 6, 0,106, +208, 0, 0, 25,182, 2, 1, 27, 17, 38, 2, 1,184,255,199,180, 29, 33, 13, 18, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0, 27,255,236, 4,176, 6,193, 2, 38, 1,189, 0, 0, 1, 7, 1, 77, 0, 8, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1, 8, + 24, 25, 14, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,111, 2, 38, 0, 92, 0, 0, 1, 6, 1, 77, + 2, 0, 0, 19, 64, 11, 1, 25, 17, 38, 1, 2, 23, 24, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 27,255,236, 4,176, + 7, 43, 2, 38, 1,189, 0, 0, 1, 7, 0,106,255,255, 1, 82, 0, 25,182, 2, 1, 28, 5, 38, 2, 1,184,255,255,180, 30, 34, + 14, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106, + 8, 0, 0, 23, 64, 13, 2, 1, 27, 17, 38, 2, 1, 8, 29, 33, 0, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 27, +255,236, 4,176, 7,115, 2, 38, 1,189, 0, 0, 1, 7, 1, 83, 0, 82, 1, 82, 0, 23, 64, 13, 2, 1, 30, 5, 38, 2, 1, 82, + 24, 35, 14, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, + 1, 83, 94, 0, 0, 23, 64, 13, 2, 1, 29, 17, 38, 2, 1, 94, 23, 34, 0, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, + 0,135, 0, 0, 4, 70, 7, 43, 2, 38, 1,193, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, + 1, 1, 23, 27, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,152, 0, 0, 4, 37, 5,217, 2, 38, 1,225, 0, 0, + 1, 6, 0,106,251, 0, 0, 23, 64, 13, 2, 1, 21, 17, 38, 2, 1, 2, 23, 27, 15, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, + 0, 1, 1, 43,254,127, 4,100, 5,182, 0, 9, 0, 56, 64, 35, 0, 11, 5,251, 6, 6, 3, 90, 0, 8, 1, 0, 8, 32, 8, 48, + 8,144, 8,160, 8,240, 8, 6, 8, 2, 95, 9, 3, 5, 5, 3, 95, 8, 18, 0, 63,225, 51, 47, 63,225, 1, 47, 93,113,225, 50, + 47,225, 16,206, 49, 48, 1, 21, 33, 17, 51, 17, 35, 17, 35, 17, 4,100,253,129,177,177,186, 5,182,166,251,150,253,217, 1,129, + 5,182, 0, 1, 1, 35,254,131, 4, 14, 4, 74, 0, 9, 0, 46, 64, 26, 2, 11, 7, 70, 8, 8, 5, 71, 0, 0,144, 0,160, 0, + 3, 0, 4, 80, 1, 15, 7, 7, 5, 80, 0, 21, 0, 63,225, 51, 47, 63,225, 1, 47, 93,225, 50, 47,225, 16,206, 48, 49, 33, 17, + 33, 21, 33, 17, 51, 17, 35, 17, 1, 35, 2,235,253,203,160,176, 4, 74,154,252,234,253,233, 1,125, 0,255,255, 0, 96, 0, 0, + 4,109, 7, 43, 2, 38, 1,197, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 4, 3, 26, 5, 38, 4, 3, 1, 28, 32, + 0, 20, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113, 0, 0, 4, 90, 5,217, 2, 38, 1,229, 0, 0, 1, 6, 0,106, + 2, 0, 0, 23, 64, 13, 4, 3, 25, 17, 38, 4, 3, 2, 27, 31, 6, 17, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,147, +254,109, 4,100, 5,182, 0, 29, 0, 72, 64, 38, 15, 4, 1, 4, 4, 7, 0, 31, 16, 9,250, 23, 23, 2, 7, 90, 28, 26, 24, 19, + 6, 26, 95, 3, 27, 27, 7, 2, 95, 29, 3, 7, 95, 24, 18, 19, 96, 12, 0, 47,225, 63,225, 63,225, 18, 57, 47, 51,225, 50, 1, + 47, 47,206, 51,225, 50, 50, 47,225,206, 16,206, 17, 57, 47, 93, 48, 49, 1, 21, 33, 17, 33, 21, 33, 17, 51, 17, 20, 6, 35, 34, + 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 35, 17, 35, 53, 51, 17, 4,100,253,129, 1, 80,254,176,156,110,125, 39, 63, 21, 14, 58, + 34, 47, 49,186,152,152, 5,182,166,254, 21,162,254, 35,254,217,132,142, 17, 9,150, 7, 14, 49, 49,150, 2,131,162, 2,145, 0, + 0, 1, 0,135,254,109, 4, 14, 4, 74, 0, 29, 0, 72, 64, 37, 10, 10, 13, 6, 31, 25, 22, 15, 73, 29, 29, 9, 13, 71, 4, 2, + 0, 22, 25, 80, 21, 18, 12, 2, 79, 9, 3, 3, 13, 8, 80, 5, 15, 13, 81, 0, 21, 0, 63,225, 63,225, 18, 57, 47, 51,225, 50, + 47, 51,225, 50, 1, 47,206, 51,225, 50, 50, 47,225,206, 47, 16,206, 17, 57, 47, 48, 49, 33, 17, 35, 53, 51, 17, 33, 21, 33, 17, + 33, 21, 33, 17, 51, 17, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 1, 35,156,156, 2,235,253,203, 1, 23,254,233, +156,110,126, 38, 63, 22, 14, 59, 34, 46, 50, 1,225,137, 1,224,154,254,186,137,254,197,254,217,132,142, 17, 9,150, 7, 14, 49, + 49,150,255,255, 0, 53,254,109, 4,205, 5,182, 2, 38, 0, 59, 0, 0, 1, 7, 3,128, 1,180, 0, 0, 0, 23,182, 1, 1, 0, + 21,176, 21, 2,184, 1,180,180, 21, 12, 4, 0, 37, 1, 43, 93, 53, 0, 53, 0,255,255, 0, 96,254,109, 4,119, 4, 74, 2, 38, + 0, 91, 0, 0, 1, 7, 3,129, 1, 94, 0, 0, 0, 30,181, 1, 1, 80, 21, 1, 21,184,255,192,178, 9, 12, 54,184, 1, 94,180, + 21, 12, 11, 7, 37, 1, 43, 43, 93, 53, 0, 53, 0, 1, 0, 53, 0, 0, 4,150, 5,182, 0, 17, 0,164,185, 0, 11,255,248, 64, + 23, 12, 15, 72, 6, 11, 22, 11, 38, 11, 3, 13, 8, 12, 15, 72, 9, 13, 25, 13, 41, 13, 3, 4,184,255,248, 64, 32, 12, 15, 72, + 6, 4, 22, 4, 38, 4, 3, 2, 8, 12, 15, 72, 9, 2, 25, 2, 41, 2, 3, 15, 9, 6, 3, 0, 12, 12, 14, 11, 10,184,255,240, + 64, 10, 10, 10, 5, 7, 17, 7, 17, 1, 4, 5,184,255,240, 64, 25, 5, 13, 14, 16, 14, 14, 2, 1, 16, 1, 3, 0, 7, 95, 15, + 12, 8, 8, 1, 13, 10, 3, 5, 1, 18, 0, 63, 51, 63, 51, 18, 57, 47, 51, 51,225, 50, 50, 1, 47, 56, 51, 51, 47, 56, 51, 47, + 56, 51, 18, 57, 57, 47, 47, 17, 51, 47, 56, 51, 18, 57, 17, 51, 51, 51, 51, 51, 93, 43, 93, 43, 93, 43, 93, 43, 48, 49, 1, 1, + 35, 1, 1, 35, 1, 33, 53, 33, 1, 51, 1, 1, 51, 1, 33, 21, 2,250, 1,156,211,254,157,254,146,189, 1,154,254,223, 1, 21, +254,145,199, 1, 75, 1, 78,191,254,141, 1, 29, 2,180,253, 76, 2,123,253,133, 2,180,162, 2, 96,253,209, 2, 47,253,160,162, + 0, 1, 0, 96, 0, 0, 4,106, 4, 74, 0, 17, 0,194,183,196, 14,212, 14,228, 14, 3, 14,184,255,240, 64, 36, 11, 14, 72,203, + 12,219, 12,235, 12, 3, 12, 16, 11, 14, 72,203, 5,219, 5,235, 5, 3, 5, 16, 11, 14, 72,196, 3,212, 3,228, 3, 3, 6, 3, +184,255,240, 64, 20, 11, 14, 72, 73, 13, 1, 13, 16, 18, 23, 72, 10, 13, 26, 13, 2, 70, 4, 1, 4,184,255,240, 64, 55, 18, 23, + 72, 5, 4, 21, 4, 2, 17, 9, 17, 9, 15, 11, 16, 13, 10, 7, 1, 4, 4, 6, 3, 2, 2, 14, 31, 15, 1, 15, 5, 6, 6, 12, + 0, 11, 16, 11, 2, 11, 13, 10, 17, 79, 7, 4, 0, 0, 2, 15, 11, 21, 5, 2, 15, 0, 63, 51, 63, 51, 18, 57, 47, 51, 51,225, + 50, 50, 1, 47, 93, 51, 51, 47, 51, 47, 93, 51, 51, 47, 51, 18, 57, 17, 51, 51, 51, 51, 51, 17, 18, 57, 57, 47, 47, 48, 49, 0, + 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 19, 33, 1, 51, 1, 1, 51, 1, 33, 21, 33, 1, 35, 1, 1, 35, + 1, 33,166, 1, 41,254,166,207, 1, 34, 1, 35,207,254,164, 1, 45,254,207, 1,114,206,254,202,254,201,207, 1,115,254,211, 2, +123, 1,207,254,102, 1,154,254, 49,137,254, 14, 1,180,254, 76, 1,242, 0, 2, 0,137, 0, 0, 3,246, 5,182, 0, 14, 0, 25, + 0, 42, 64, 22, 6, 25, 90, 9, 27, 21, 91, 0, 0, 1, 0, 16, 95, 5, 5, 7, 24, 96, 10, 18, 7, 3, 0, 63, 63,225, 17, 57, + 47,225, 1, 47, 93,225, 16,222,225, 50, 48, 49, 19, 52, 62, 2, 51, 51, 17, 51, 17, 33, 34, 46, 2, 1, 35, 34, 14, 2, 21, 20, + 22, 51, 51,137, 55,127,207,152,149,187,254,149,133,194,126, 61, 2,178,129, 93,138, 91, 46,163,175,159, 1,172, 87,152,113, 66, + 2,104,250, 74, 61,112,158, 1, 95, 27, 60, 97, 70,136,132, 0,255,255, 0,137,255,236, 4, 47, 6, 20, 2, 6, 0, 71, 0, 0, + 0, 2, 0, 49,255,236, 4,131, 5,182, 0, 33, 0, 48, 0, 61, 64, 33, 9, 24,251, 21, 48, 48, 15, 32,251, 15, 1, 63, 1, 2, + 1, 50, 40, 90, 15, 35, 95, 33, 20, 20, 22, 3, 27, 9, 43, 96, 6, 12, 19, 0, 63, 51,225, 50, 50, 63, 57, 47, 51,225, 1, 47, +225, 16,222, 93,225, 17, 57, 47, 51,225, 57, 49, 48, 1, 17, 20, 14, 2, 35, 34, 38, 39, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, + 51, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 5, 35, 34, 14, 2, 21, 20, 22, 51, 50, 62, 2, 53, 4,131, 30, 67,109, 79, 92, +109, 34, 35,122, 97,165,167, 49,104,161,112, 82,174, 65, 68, 30, 44, 29, 14,254, 88, 80, 66, 94, 60, 28, 78, 94, 48, 60, 35, 13, + 3, 80,254, 24, 84,140,101, 55, 87, 87, 79, 93,209,215,103,163,114, 60, 2,104,251,178,114,103, 23, 51, 83, 60, 1,232,166, 30, + 67,107, 77,128,130, 35, 60, 79, 43, 0, 0, 2, 0, 49,255,236, 4,131, 6, 20, 0, 44, 0, 61, 0, 62, 64, 33, 14, 40, 70, 37, + 50, 50, 23, 3, 70, 15, 6, 1, 6, 63, 59, 70, 23, 31, 56, 80, 28, 16, 4, 4, 38, 0, 14, 0, 45, 80, 11, 20, 22, 0, 63, 51, +225, 50, 50, 63, 57, 47, 63,225, 50, 1, 47,225, 16,222, 93,225, 17, 57, 47, 51,225, 57, 48, 49, 37, 50, 54, 53, 17, 51, 17, 20, + 14, 2, 35, 34, 38, 39, 35, 14, 3, 35, 34, 2, 17, 52, 62, 2, 51, 50, 22, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 20, 30, 2, + 33, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 88, 66, 59,174, 34, 68,101, 67,110,129, 34, 4, 19, 43, 60, 83, + 59,154,141, 42, 77,107, 65, 82,104, 31, 8, 2, 2, 2, 2,174, 9, 26, 50,254, 85, 46, 63, 39, 19, 1, 17, 39, 64, 48, 83, 77, + 77,131,124,130, 1, 59,254,193,105,152, 98, 46, 99,103, 41, 74, 55, 32, 1, 30, 1, 25,141,214,144, 72, 74, 65, 34, 31, 26, 55, + 16, 1,159,251,146, 61,107, 78, 45, 46, 94,141, 94, 41,101,157,107, 55,217,205,209,205, 0, 1, 0, 35,255,236, 4, 84, 5,203, + 0, 57, 0, 80, 64, 42, 37,251, 0, 0, 31, 26,251, 11, 11, 18, 45,251, 15, 48, 1, 48, 59, 17, 18, 6, 6, 18, 31, 6, 97, 7, + 46, 46, 7, 7, 21, 42, 95, 53, 19, 18, 17, 17, 14, 96, 21, 4, 0, 63,225, 50, 17, 51, 63,225, 17, 57, 47, 51, 47, 16,225, 57, + 1, 47, 51, 47, 17, 51, 16,222, 93,225, 17, 57, 47,225, 51, 51, 47,225, 48, 49, 1, 52, 46, 2, 35, 35, 53, 51, 50, 54, 53, 52, + 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, + 14, 2, 35, 34, 46, 2, 1,254, 16, 42, 72, 56,156,156, 83, 91, 88, 86, 60, 94, 53, 82, 65,151,103, 81,121, 79, 39, 30, 56, 80, + 49, 57, 84, 56, 28, 14, 31, 47, 33, 66, 59,174, 40, 77,109, 69, 69,112, 79, 43, 1,135, 77,109, 70, 33,151,134,125,124,115, 33, + 41,117, 54, 57, 54, 97,133, 79, 73,116, 85, 58, 16, 6, 13, 51, 83,121, 84, 74,103, 65, 29,115,133, 1,201,254, 45,107,152, 97, + 45, 38, 94,159, 0, 1, 0, 43,255,236, 4, 94, 4, 92, 0, 57, 0, 71, 64, 37, 37, 26, 70, 31, 0, 11, 11, 18, 45, 70, 15, 48, + 1, 48, 59, 17, 18, 6, 6, 18, 31, 6, 80, 46, 7, 7, 21, 42, 81, 53, 22, 17, 14, 78, 18, 21, 16, 0, 63, 51,225, 50, 63,225, + 17, 57, 47,196,225, 57, 1, 47, 51, 47, 17, 51, 16,222, 93,225, 17, 57, 47, 51, 51,225, 50, 48, 49, 1, 46, 3, 35, 35, 53, 51, + 50, 54, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 23, 30, 3, 51, 50, 54, 53, 17, + 51, 17, 20, 14, 2, 35, 34, 46, 2, 2, 10, 3, 18, 41, 70, 56,139,139, 83, 91, 75, 87, 66,113, 63, 61, 65,156,101, 81,120, 79, + 39, 30, 56, 80, 49, 53, 81, 56, 31, 4, 3, 15, 29, 45, 33, 66, 59,174, 40, 76,110, 69, 69,107, 76, 43, 1, 27, 56, 80, 51, 24, +153, 86, 80, 82, 74, 36, 32,141, 36, 38, 42, 73,100, 57, 55, 86, 64, 43, 14, 4, 6, 30, 56, 85, 61, 54, 75, 47, 21,115,133, 1, + 53,254,193,107,152, 97, 45, 28, 69,117, 0, 1, 0, 39,254,127, 4,117, 5,203, 0, 49, 0, 80, 64, 43, 1, 90, 46, 46, 49, 39, + 15, 91, 34, 34, 49,251, 0, 47, 80, 47, 2, 47, 23, 24, 8, 8, 24, 24, 23, 23, 20, 96, 29, 39, 8, 97, 9, 9, 29, 4, 46, 95, + 1, 48, 48, 1, 18, 0, 63, 51, 47, 16,225, 63, 57, 47,225, 57, 16,225, 50, 17, 51, 1, 47, 51, 47, 17, 51, 47, 93,225, 50, 47, +225, 50, 17, 51, 47,225, 49, 48, 33, 35, 17, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, + 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 21, 51, 17, 35, 3,197,187, 56,103,149, 93,191,176, 92,142, 97, 50, 37, 68, + 95, 58,110,169, 75, 92, 38, 98,116,131, 72,109,166,112, 57, 51, 91,125, 75, 87,138, 94, 50,176,176, 1,160, 68, 99, 65, 32,151, + 39, 72,101, 61, 54, 83, 58, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 79, 73,120, 88, 57, 12, 6, 11, 57, 89,119, 72,250,253, +217, 0, 0, 1, 0, 80,254,131, 4, 92, 4, 94, 0, 47, 0, 78, 64, 41, 36, 14, 70, 31, 31, 0, 71, 43, 43, 47, 70, 44, 49, 22, + 23, 8, 8, 23, 23, 48, 22, 17, 80, 26, 36, 7, 80, 48, 8, 1, 8, 8, 23, 26, 16, 45, 45, 43, 80, 0, 21, 0, 63,225, 51, 47, + 63, 51, 57, 47, 93,225, 57, 16,225, 50, 17, 1, 51, 47, 51, 47, 17, 51, 16,222,225, 50, 47,225, 51, 47,225, 50, 48, 49, 33, 17, + 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 14, 2, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, + 3, 21, 21, 51, 17, 35, 17, 3, 6, 27, 62,102, 75,236,203, 62,100, 72, 39,140,131, 47, 82, 80, 80, 45, 63, 93,201,115, 99,160, +113, 61, 28, 51, 71, 43, 54, 84, 58, 31,160,176, 1, 43, 47, 73, 49, 26,153, 18, 39, 64, 45, 77, 77, 10, 18, 27, 17,147, 39, 37, + 36, 72,106, 70, 53, 81, 59, 41, 14, 11, 13, 44, 66, 91, 62,145,253,233, 1,125, 0, 1, 0, 0,255,236, 4,131, 5,182, 0, 48, + 0, 83, 64, 46, 22, 13, 27,250, 1, 29,251, 48, 6, 13, 0, 1, 16, 1, 2, 1, 48, 1, 48, 13, 35,251, 15, 38, 1, 38, 50, 13, + 32, 95, 43, 19, 36, 36, 17, 1, 95, 27, 3, 14, 14, 17, 96, 13, 11, 19, 0, 63, 51,225, 50, 47, 63,225, 18, 57, 47, 63,225, 1, + 47, 16,222, 93,225, 17, 57, 57, 47, 47, 93, 18, 57, 16,225, 16,237, 17, 57, 48, 49, 1, 35, 14, 3, 7, 14, 3, 35, 34, 39, 53, + 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2, + 45,164, 9, 20, 21, 19, 9, 10, 27, 48, 78, 62, 51, 39, 14, 26, 17, 25, 31, 21, 14, 6, 7, 19, 23, 26, 15, 1,231, 59, 66, 68, + 57,174, 42, 78,109, 68, 67,110, 80, 44, 5, 18,116,245,234,210, 81,103,161,110, 58, 22,154, 8, 9, 60, 93,113, 54, 59,196, 1, + 2, 1, 57,177,251,209,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 0, 1, 0, 0,255,236, 4,131, 4, 74, + 0, 41, 0, 73, 64, 40, 20, 73, 1, 22, 70, 41, 0, 1, 16, 1, 2, 1, 41, 1, 41, 11, 28, 70, 15, 31, 1, 31, 43, 11, 29, 29, + 15, 1, 80, 20, 15, 25, 12, 12, 15, 79, 36, 11, 8, 22, 0, 63, 51, 51,225, 50, 17, 51, 63,225, 18, 57, 47, 1, 47, 16,222, 93, +225, 17, 57, 57, 47, 47, 93, 16,225, 16,225, 49, 48, 1, 35, 6, 2, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 54, 18, 55, + 33, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2, 45,174, 10, 29, 38, 48, 58, 69, 41, 26, 49, 15, + 8, 17, 8, 37, 61, 48, 37, 13, 1,246, 55, 72, 65, 58,174, 36, 73,110, 74, 71,113, 79, 42, 3,176,186,254,226,213,145, 89, 39, + 6, 6,131, 3, 3,117,241, 1,111,250,253, 61,135,125,123,137, 1, 53,254,193,105,152, 98, 46, 37, 87,142,104, 0, 1, 0,121, +255,236, 4,131, 5,182, 0, 29, 0, 72, 64, 42, 27, 0,251, 19, 19, 23, 6,251, 56, 9, 1, 15, 9, 1, 9, 31, 26, 22,251, 71, + 23, 1, 0, 23, 16, 23, 2, 23, 21, 95, 7, 26, 26, 28, 24, 3, 23, 18, 3, 95, 14, 19, 0, 63,225, 63, 63, 51, 57, 47, 51,225, + 1, 47, 93, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47,225, 51, 48, 49, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, + 34, 46, 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 2,219, 62, 69, 69, 58,166, 37, 74,111, 75, 75,110, 72, 36,254,234,166, +166, 1, 22,166, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 1, 45,253, 86, 5,182,253,152, 2,104, + 0, 1, 0,123,255,236, 4,123, 4, 74, 0, 29, 0, 80, 64, 49, 5, 73, 2, 71, 24, 87, 24, 2, 24, 24, 28, 11, 73, 72, 14, 88, + 14,168, 14, 3, 15, 14, 1, 14, 31, 1, 27, 73, 0, 28, 16, 28, 2, 28, 28, 21, 26, 80, 12, 1, 1, 0, 8, 80, 19, 22, 3, 0, + 15, 0, 63, 50, 63,225, 17, 57, 47,196,225, 63, 1, 47, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47, 93, 51,225, 48, 49, 1, 17, + 33, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 17, 35, 17, 1, 29, 1, 34,162, 55, + 72, 63, 58,162, 35, 70,105, 71, 67,108, 76, 40,254,222,162, 4, 74,254, 57, 1,199,253, 61,131,129,130,130, 1, 53,254,193,105, +152, 98, 46, 37, 87,142,104,139,254, 23, 4, 74, 0, 1, 0,117,255,236, 4,111, 5,203, 0, 40, 0, 73, 64, 42, 40, 40, 12, 39, + 90, 2, 21, 20, 20, 2, 42, 29, 91, 0, 12, 1, 12, 21, 24, 95, 17, 40, 95, 47, 0, 95, 0, 2, 0, 64, 16, 24, 72, 0, 0, 20, + 17, 4, 34, 95, 7, 19, 0, 63,225, 63, 51, 57, 47, 43, 93,225, 16,225, 50, 1, 47, 93,225, 16,206, 50, 47, 51, 16,225, 17, 57, + 47, 48, 49, 1, 33, 21, 20, 14, 2, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, + 30, 2, 51, 50, 62, 2, 53, 33, 2,160, 1,207, 52,111,173,121,138,210,141, 72, 80,151,216,136,115,181, 75, 72, 58,153, 94, 86, +140,100, 55, 45, 89,132, 87, 82,109, 66, 27,254,234, 2,246,142,167,241,155, 73,105,195, 1, 23,174,172, 1, 22,195,105, 44, 42, +162, 34, 50, 81,152,218,137,132,217,154, 85, 55,111,170,115, 0, 0, 1, 0,113,255,236, 4, 92, 4, 94, 0, 40, 0, 65, 64, 35, + 40, 40, 12, 1, 21, 63, 20, 1, 20, 20, 39, 71, 1, 42, 29, 72, 0, 12, 1, 12, 21, 24, 78, 17, 40, 80, 0, 0, 20, 17, 16, 34, + 78, 7, 22, 0, 63,225, 63, 51, 57, 47,225, 16,225, 50, 1, 47, 93,225, 16,222,225, 51, 47, 93, 51, 17, 18, 57, 47, 48, 49, 1, + 33, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, + 53, 33, 2,123, 1,225, 50,113,179,129,135,200,132, 65, 71,140,208,138,111,172, 77, 61, 60,148, 91, 91,139, 92, 47, 37, 83,132, + 94, 81,110, 66, 28,254,215, 2, 74, 68,130,200,137, 71, 79,147,211,132,131,210,148, 80, 37, 39,145, 29, 45, 58,109,157, 98, 93, +155,112, 62, 45, 80,113, 67, 0, 0, 1, 0, 20,255,236, 4,131, 5,182, 0, 25, 0, 64, 64, 38, 6, 90, 15, 9, 1, 9, 27, 48, + 24, 1, 24, 24, 0, 90,159, 21, 1, 21, 48, 19,128, 19,144, 19, 3, 19, 25, 21, 95, 22, 7, 7, 22, 3, 3, 95, 14, 19, 0, 63, +225, 63, 57, 47, 16,225, 50, 1, 47, 93,206, 93,241,202, 47, 93, 16,222, 93,225, 48, 49, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, + 20, 14, 2, 35, 34, 46, 2, 53, 17, 33, 53, 33, 21, 33, 2,113, 82, 92, 92, 82,182, 50, 93,132, 81, 80,133, 95, 53,254, 94, 3, +254,254, 95, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 39, 93,154,115, 3,149,164,164, 0, 0, 1, 0, 41,255,236, + 4,111, 4, 74, 0, 27, 0, 60, 64, 35, 13, 71, 16, 29,143, 3,159, 3, 2, 3, 3, 5, 71, 31, 0, 1, 0, 0, 26, 16, 26, 2, + 26, 14, 14, 1, 10, 80, 21, 22, 4, 0, 80, 1, 15, 0, 63,225, 50, 63,225, 17, 57, 47, 1, 47, 93,206, 93,241,202, 47, 93, 16, +222,225, 48, 49, 19, 53, 33, 21, 33, 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 41, 3, 53, +254,193, 21, 49, 80, 59,105, 95,183, 47, 95,143, 96, 91,146,102, 55, 3,176,154,154,253,215, 65, 98, 65, 32,130,130, 1, 53,254, +193,105,152, 98, 46, 46, 98,150,105, 2, 53, 0, 0, 1, 0,166,255,236, 4, 68, 5,203, 0, 59, 0, 73, 64, 39, 28, 28, 49, 39, + 39, 11, 10, 61, 21, 90, 0, 0, 32, 91, 0, 49, 1, 49, 54, 29, 97,159, 26, 1, 26, 26, 5, 38, 35, 96, 39, 44, 19, 11, 16, 96, + 10, 5, 4, 0, 63, 51,225, 50, 63, 51,225, 50, 17, 57, 47, 93,225, 57, 1, 47, 93,225, 51, 47,225, 16,206, 50, 50, 47, 17, 57, + 47, 48, 49, 19, 52, 62, 2, 51, 50, 30, 2, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, 51, 21, 35, 34, 6, 21, 20, 22, + 51, 50, 54, 55, 21, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3,211, 60,115,169,109, 71,123,105, 90, 39, 93, 37, 77, + 83, 91, 52, 57, 95, 68, 38, 44, 87,131, 87,194,190,186,208,170,164,109,203, 84, 42, 88, 99,111, 64,128,195,131, 66, 50, 94,137, + 88, 75,120, 84, 45, 4, 96, 79,133, 97, 54, 24, 41, 54, 31,125, 27, 45, 31, 18, 30, 58, 83, 54, 61,101, 72, 39,151,133,135,137, +142, 49, 43,170, 19, 28, 19, 9, 60,111,156, 96, 72,123, 94, 61, 11, 6, 12, 57, 88,120,255,255, 0,201,255,236, 4, 8, 4, 94, + 2, 6, 1,130, 0, 0,255,255, 0, 4,255,233, 4, 70, 5,182, 2, 6, 1,181, 0, 0,255,255, 0, 31,255,242, 4, 16, 4, 74, + 2, 6, 1,213, 0, 0,255,255, 0, 33,254,152, 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, + 2, 18, 20, 39, 2, 0, 15, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,254,152, 4, 2, 4, 94, 2, 38, 0, 68, + 0, 0, 1, 6, 2,103,237, 0, 0, 19, 64, 11, 2, 37, 23, 39, 2, 15, 34, 40, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, + 0, 33, 0, 0, 4,172, 7,225, 2, 38, 0, 36, 0, 0, 1, 7, 2,102, 0, 33, 1, 82, 0, 19, 64, 11, 2, 21, 5, 38, 2, 33, + 36, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6,143, 2, 38, 0, 68, 0, 0, 1, 6, 2,102, + 25, 0, 0, 19, 64, 11, 2, 40, 17, 38, 2, 59, 55, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, + 7,209, 2, 38, 0, 36, 0, 0, 1, 7, 3,119, 0,121, 1, 82, 0, 23, 64, 13, 3, 2, 15, 5, 38, 3, 2,120, 23, 38, 4, 7, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4,141, 6,127, 2, 38, 0, 68, 0, 0, 1, 6, 3,119,125, 0, + 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, 2,158, 42, 57, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, + 4,172, 7,209, 2, 38, 0, 36, 0, 0, 1, 7, 3,120,255,148, 1, 82, 0, 25,182, 3, 2, 23, 5, 38, 3, 2,184,255,148,180, + 36, 22, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 85,255,236, 4, 2, 6,127, 2, 38, 0, 68, 0, 0, 1, 6, + 3,120,153, 0, 0, 25,182, 3, 2, 42, 17, 38, 3, 2,184,255,187,180, 55, 41, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0, 33, 0, 0, 4,172, 8, 74, 2, 38, 0, 36, 0, 0, 1, 7, 3,121, 0, 88, 1, 82, 0, 23, 64, 13, 3, 2, 15, 5, + 38, 3, 2, 88, 23, 32, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 76, 6,248, 2, 38, 0, 68, + 0, 0, 1, 6, 3,121, 92, 0, 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, 2,126, 42, 51, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,122, 0, 8, 1, 82, 0, 23, 64, 13, 3, 2, + 23, 5, 38, 3, 2, 7, 41, 55, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, 7, 16, 2, 38, + 0, 68, 0, 0, 1, 6, 3,122, 12, 0, 0, 23, 64, 13, 3, 2, 42, 17, 38, 3, 2, 45, 60, 74, 8, 22, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0, 33,254,152, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 0, 39, 1, 75, 0, 0, 1, 82, 1, 6, 2,103, + 0, 0, 0, 34, 64, 22, 3, 34, 20, 39, 2, 15, 5, 38, 3, 0, 31, 37, 4, 7, 37, 2, 0, 21, 15, 4, 7, 37, 1, 43, 53, 43, + 53, 0, 43, 53, 43, 53,255,255, 0,135,254,152, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 0, 38, 1, 75, 8, 0, 1, 6, 2,103, +237, 0, 0, 34, 64, 22, 3, 53, 23, 39, 2, 34, 17, 38, 3, 15, 50, 56, 8, 22, 37, 2, 42, 40, 34, 8, 22, 37, 1, 43, 53, 43, + 53, 0, 43, 53, 43, 53,255,255, 0, 33, 0, 0, 4,172, 8, 19, 2, 38, 0, 36, 0, 0, 1, 7, 3,123, 0, 0, 1, 82, 0, 23, + 64, 13, 3, 2, 32, 5, 38, 3, 2, 0, 35, 27, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, + 6,193, 2, 38, 0, 68, 0, 0, 1, 6, 3,123,255, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 32, 54, 46, 8, 22, 37, 1, + 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 19, 2, 38, 0, 36, 0, 0, 1, 7, 3,124, 0, 0, 1, 82, + 0, 23, 64, 13, 3, 2, 32, 5, 38, 3, 2, 0, 35, 27, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, + 4, 2, 6,193, 2, 38, 0, 68, 0, 0, 1, 6, 3,124,255, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 32, 54, 46, 8, 22, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 88, 2, 38, 0, 36, 0, 0, 1, 7, 3,125, 0, 0, + 1, 82, 0, 23, 64, 13, 3, 2, 20, 5, 38, 3, 2, 0, 23, 15, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135, +255,236, 4, 2, 7, 6, 2, 38, 0, 68, 0, 0, 1, 6, 3,125,255, 0, 0, 23, 64, 13, 3, 2, 39, 17, 38, 3, 2, 32, 42, 34, + 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,126, + 0, 0, 1, 82, 0, 25,182, 3, 2, 20, 5, 38, 3, 2,184,255,255,180, 44, 58, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,135,255,236, 4, 2, 7, 16, 2, 38, 0, 68, 0, 0, 1, 6, 3,126,255, 0, 0, 23, 64, 13, 3, 2, 39, 17, 38, 3, + 2, 32, 63, 77, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33,254,152, 4,172, 7, 64, 2, 38, 0, 36, 0, 0, + 0, 39, 1, 78,255,253, 1, 82, 1, 6, 2,103, 0, 0, 0, 37, 64, 16, 3, 30, 20, 39, 2, 18, 5, 38, 3, 0, 27, 33, 4, 7, + 37, 2,184,255,253,180, 20, 15, 4, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0,135,254,152, 4, 2, 5,238, + 2, 38, 0, 68, 0, 0, 0, 38, 1, 78,245, 0, 1, 6, 2,103,237, 0, 0, 34, 64, 22, 3, 49, 23, 39, 2, 37, 17, 38, 3, 15, + 46, 52, 8, 22, 37, 2, 22, 39, 34, 8, 22, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,217,254,152, 4, 35, 5,182, + 2, 38, 0, 40, 0, 0, 1, 6, 2,103, 23, 0, 0, 19, 64, 11, 1, 15, 20, 39, 1, 0, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,133,254,152, 4, 72, 4, 94, 2, 38, 0, 72, 0, 0, 1, 6, 2,103, 23, 0, 0, 19, 64, 11, 2, 26, 23, 39, + 2, 23, 23, 29, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,225, 2, 38, 0, 40, 0, 0, 1, 7, + 2,102, 0, 39, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 15, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133, +255,236, 4, 72, 6,143, 2, 38, 0, 72, 0, 0, 1, 6, 2,102, 57, 0, 0, 19, 64, 11, 2, 29, 17, 38, 2, 57, 44, 23, 11, 0, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 53, 2, 38, 0, 40, 0, 0, 1, 7, 1, 82, 0, 25, 1, 82, + 0, 19, 64, 11, 1, 12, 5, 38, 1, 0, 13, 22, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,227, + 2, 38, 0, 72, 0, 0, 1, 6, 1, 82, 33, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 32, 24, 33, 11, 0, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,217, 0, 0, 4,145, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,119, 0,129, 1, 82, 0, 23, 64, 13, 2, 1, + 12, 5, 38, 2, 1,105, 20, 35, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133,255,236, 4,133, 6,127, 2, 38, + 0, 72, 0, 0, 1, 6, 3,119,117, 0, 0, 23, 64, 13, 3, 2, 23, 17, 38, 3, 2,116, 31, 46, 11, 0, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0, 89, 0, 0, 4, 35, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,120,255,157, 1, 82, 0, 25,182, 2, + 1, 20, 5, 38, 2, 1,184,255,133,180, 33, 19, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 76,255,236, 4, 72, + 6,127, 2, 38, 0, 72, 0, 0, 1, 6, 3,120,144, 0, 0, 25,182, 3, 2, 31, 17, 38, 3, 2,184,255,144,180, 44, 30, 11, 0, + 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217, 0, 0, 4, 80, 8, 74, 2, 38, 0, 40, 0, 0, 1, 7, 3,121, 0, 96, + 1, 82, 0, 23, 64, 13, 2, 1, 12, 5, 38, 2, 1, 72, 20, 29, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133, +255,236, 4, 72, 6,248, 2, 38, 0, 72, 0, 0, 1, 6, 3,121, 84, 0, 0, 23, 64, 13, 3, 2, 23, 17, 38, 3, 2, 84, 31, 40, + 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217, 0, 0, 4, 35, 8, 98, 2, 38, 0, 40, 0, 0, 1, 7, 3,122, + 0, 16, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, 2, 1,184,255,248,180, 38, 52, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, +255,255, 0,133,255,236, 4, 72, 7, 16, 2, 38, 0, 72, 0, 0, 1, 6, 3,122, 4, 0, 0, 23, 64, 13, 3, 2, 31, 17, 38, 3, + 2, 3, 49, 63, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217,254,152, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, + 0, 39, 1, 75, 0, 35, 1, 82, 1, 6, 2,103, 23, 0, 0, 34, 64, 22, 2, 31, 20, 39, 1, 12, 5, 38, 2, 0, 28, 34, 1, 0, + 37, 1, 11, 18, 12, 1, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,133,254,152, 4, 72, 6, 33, 2, 38, 0, 72, + 0, 0, 0, 38, 1, 75, 16, 0, 1, 6, 2,103, 23, 0, 0, 34, 64, 22, 3, 42, 23, 39, 2, 23, 17, 38, 3, 23, 39, 45, 11, 0, + 37, 2, 16, 29, 23, 11, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,225, 0, 0, 3,233, 7,225, 2, 38, 0, 44, + 0, 0, 1, 7, 2,102, 0, 31, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 32, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0,197, 0, 0, 4, 51, 6,143, 2, 38, 0,243, 0, 0, 1, 6, 2,102, 47, 0, 0, 19, 64, 11, 1, 16, 17, 38, 1, 25, + 31, 10, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225,254,152, 3,233, 5,182, 2, 38, 0, 44, 0, 0, 1, 6, 2,103, + 0, 0, 0, 19, 64, 11, 1, 15, 20, 39, 1, 1, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197,254,152, 4, 51, + 6, 14, 2, 38, 0, 76, 0, 0, 1, 6, 2,103, 20, 0, 0, 21,180, 2, 22, 23, 39, 2,184,255,255,180, 19, 25, 16, 14, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 84,254,152, 4,123, 5,205, 2, 38, 0, 50, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, + 23, 20, 39, 2,184,255,255,180, 20, 26, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,254,152, 4, 88, 4, 94, 2, 38, + 0, 82, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 2, 23, 23, 39, 2, 1, 20, 26, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0, +255,255, 0, 84,255,236, 4,123, 7,225, 2, 38, 0, 50, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, + 2, 22, 41, 20, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6,143, 2, 38, 0, 82, 0, 0, 1, 6, + 2,102, 31, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 32, 41, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, + 4,131, 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,119, 0,115, 1, 82, 0, 23, 64, 13, 3, 2, 20, 5, 38, 3, 2,113, 28, 43, + 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4,131, 6,127, 2, 38, 0, 82, 0, 0, 1, 6, 3,119, +115, 0, 0, 23, 64, 13, 3, 2, 20, 17, 38, 3, 2,115, 28, 43, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 74, +255,236, 4,123, 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,120,255,142, 1, 82, 0, 25,182, 3, 2, 28, 5, 38, 3, 2,184,255, +141,180, 41, 27, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 74,255,236, 4, 88, 6,127, 2, 38, 0, 82, 0, 0, + 1, 6, 3,120,142, 0, 0, 25,182, 3, 2, 28, 17, 38, 3, 2,184,255,143,180, 41, 27, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, + 53, 0,255,255, 0, 84,255,236, 4,123, 8, 74, 2, 38, 0, 50, 0, 0, 1, 7, 3,121, 0, 82, 1, 82, 0, 23, 64, 13, 3, 2, + 20, 5, 38, 3, 2, 81, 28, 37, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 6,248, 2, 38, + 0, 82, 0, 0, 1, 6, 3,121, 82, 0, 0, 23, 64, 13, 3, 2, 20, 17, 38, 3, 2, 83, 28, 37, 3, 9, 37, 1, 43, 53, 53, 0, + 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 8, 98, 2, 38, 0, 50, 0, 0, 1, 7, 3,122, 0, 2, 1, 82, 0, 23, 64, 13, + 3, 2, 28, 5, 38, 3, 2, 0, 46, 60, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 7, 16, + 2, 38, 0, 82, 0, 0, 1, 6, 3,122, 2, 0, 0, 23, 64, 13, 3, 2, 28, 17, 38, 3, 2, 2, 46, 60, 3, 9, 37, 1, 43, 53, + 53, 0, 43, 53, 53, 0,255,255, 0, 84,254,152, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 0, 39, 1, 75, 0, 0, 1, 82, 1, 6, + 2,103, 0, 0, 0, 40, 64, 9, 3, 39, 20, 39, 2, 20, 5, 38, 3,184,255,255,181, 36, 42, 2, 7, 37, 2,184,255,255,180, 26, + 20, 2, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,115,254,152, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 0, 38, + 1, 75, 0, 0, 1, 6, 2,103, 0, 0, 0, 34, 64, 22, 3, 39, 23, 39, 2, 20, 17, 38, 3, 1, 36, 42, 3, 9, 37, 2, 1, 26, + 20, 3, 9, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 84,255,236, 4,246, 7,115, 2, 38, 2, 95, 0, 0, 1, 7, + 0,118, 0, 90, 1, 82, 0, 19, 64, 11, 2, 59, 5, 38, 2, 27, 53, 56, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115, +255,236, 4,246, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 14,183, 2, 2, 2, 44, 47, 10, 25, 37, 1, 43, 53, + 0, 53,255,255, 0, 84,255,236, 4,246, 7,115, 2, 38, 2, 95, 0, 0, 1, 7, 0, 67,255,175, 1, 82, 0, 21,180, 2, 53, 5, + 38, 2,184,255,113,180, 56, 53, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 6, 33, 2, 38, 2, 96, + 0, 0, 1, 6, 0, 67,216, 0, 0, 17,177, 2, 2,184,255,138,180, 47, 44, 10, 25, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 84, +255,236, 4,246, 7,225, 2, 38, 2, 95, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, 0, 21,180, 2, 60, 5, 38, 2,184,255,217,180, + 74, 53, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 6,143, 2, 38, 2, 96, 0, 0, 1, 6, 2,102, + 31, 0, 0, 21,180, 2, 51, 17, 38, 2,184,255,209,180, 65, 44, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, + 4,246, 7, 53, 2, 38, 2, 95, 0, 0, 1, 7, 1, 82, 0, 8, 1, 82, 0, 21,180, 2, 53, 5, 38, 2,184,255,201,180, 54, 63, + 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 5,227, 2, 38, 2, 96, 0, 0, 1, 6, 1, 82, 0, 0, + 0, 17,177, 2, 2,184,255,177,180, 45, 54, 10, 25, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 84,254,152, 4,246, 6, 20, 2, 38, + 2, 95, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, 56, 20, 39, 2,184,255,194,180, 53, 59, 10, 25, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,115,254,152, 4,246, 4,242, 2, 38, 2, 96, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, 47, 23, 39, 2, +184,255,178,180, 44, 50, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 4, 80, 5,184, 2, 38, 0, 56, 0, 0, + 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 1, 18, 20, 39, 1, 0, 15, 21, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, +254,152, 4, 45, 4, 74, 2, 38, 0, 88, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 1, 21, 23, 39, 1, 0, 18, 24, 6, 16, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,225, 2, 38, 0, 56, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, + 0, 19, 64, 11, 1, 21, 5, 38, 1, 23, 36, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6,143, + 2, 38, 0, 88, 0, 0, 1, 6, 2,102, 29, 0, 0, 19, 64, 11, 1, 24, 17, 38, 1, 29, 39, 18, 6, 16, 37, 1, 43, 53, 0, 43, + 53, 0,255,255, 0,125,255,236, 5, 23, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0,118,255,255, 1, 82, 0, 21,180, 1, 45, 5, + 38, 1,184,255,156,180, 39, 42, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6, 33, 2, 38, 2, 98, + 0, 0, 1, 6, 0,118,255, 0, 0, 17,177, 1, 1,184,255,138,180, 40, 43, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,125, +255,236, 5, 23, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0, 67,255,110, 1, 82, 0, 21,180, 1, 39, 5, 38, 1,184,255, 11,180, + 42, 39, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6, 33, 2, 38, 2, 98, 0, 0, 1, 7, 0, 67, +255,107, 0, 0, 0, 17,177, 1, 1,184,254,246,180, 43, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,125,255,236, 5, 23, + 7,225, 2, 38, 2, 97, 0, 0, 1, 7, 2,102,255,218, 1, 82, 0, 21,180, 1, 46, 5, 38, 1,184,255,119,180, 60, 39, 24, 8, + 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6,143, 2, 38, 2, 98, 0, 0, 1, 6, 2,102,226, 0, 0, 21, +180, 1, 46, 17, 38, 1,184,255,109,180, 61, 40, 12, 33, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5, 23, 7, 53, + 2, 38, 2, 97, 0, 0, 1, 7, 1, 82,255,198, 1, 82, 0, 19, 64, 11, 1, 39, 5, 38, 1, 36, 40, 49, 24, 14, 37, 1, 43, 53, + 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 5,227, 2, 38, 2, 98, 0, 0, 1, 6, 1, 82,206, 0, 0, 14,183, 1, 1, 33, + 41, 50, 12, 39, 37, 1, 43, 53, 0, 53,255,255, 0,125,254,152, 5, 23, 6, 20, 2, 38, 2, 97, 0, 0, 1, 6, 2,103,185, 0, + 0, 21,180, 1, 42, 20, 39, 1,184,255, 86,180, 39, 45, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254,152, 5, 23, + 4,242, 2, 38, 2, 98, 0, 0, 1, 6, 2,103,189, 0, 0, 21,180, 1, 43, 23, 39, 1,184,255, 72,180, 40, 46, 12, 33, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 33,254,152, 4,170, 5,182, 2, 38, 0, 60, 0, 0, 1, 6, 2,103,255, 0, 0, 19, 64, 11, + 1, 12, 20, 39, 1, 0, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 4, 74, 2, 38, 0, 92, + 0, 0, 1, 7, 2,103, 1, 47, 0, 0, 0, 17,177, 1, 1,184, 1, 48,180, 23, 29, 0, 9, 37, 1, 43, 53, 0, 53, 0,255,255, + 0, 33, 0, 0, 4,170, 7,225, 2, 38, 0, 60, 0, 0, 1, 7, 2,102, 0, 20, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 21, + 30, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 6,143, 2, 38, 0, 92, 0, 0, 1, 6, 2,102, + 20, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 21, 44, 23, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, + 7, 53, 2, 38, 0, 60, 0, 0, 1, 7, 1, 82, 0, 12, 1, 82, 0, 19, 64, 11, 1, 9, 5, 38, 1, 12, 10, 19, 7, 2, 37, 1, + 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,227, 2, 38, 0, 92, 0, 0, 1, 6, 1, 82, 12, 0, 0, 19, 64, 11, + 1, 23, 17, 38, 1, 12, 24, 33, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, 0, 3, 0,137,254,188, 4,203, 6, 20, 0, 3, 0, 43, + 0, 60, 0,118, 64, 71, 33, 33, 15, 50, 43, 35, 26, 4, 32, 71, 39, 41, 37, 3, 3,144, 41,160, 41, 2, 41, 62, 58, 72, 15, 2, + 2, 0, 15,224, 15,240, 15, 3, 15, 43, 21, 41, 32, 79, 38, 35, 35, 20, 36, 0, 25, 55, 80, 0, 20, 16, 20, 32, 20,176, 20,192, + 20, 5, 20, 15, 4, 44, 80, 10, 1, 78, 2, 10, 22, 0, 63,222,225, 16,225, 50, 63, 93,225, 50, 63, 18, 57, 47, 51,225, 50, 63, + 1, 47, 93, 51, 47, 16,225, 16,206, 93, 50, 47, 50, 16,205,225, 50, 50, 50, 50, 50, 17, 57, 47, 48, 49, 1, 33, 53, 33, 3, 35, + 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, + 35, 37, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 4, 47,252,152, 3,104,174, 8, 23, 61, 78, 98, 62, 97,158,113, + 62, 62,113,158, 97, 61, 98, 79, 61, 23, 12, 3, 3, 2, 4,254,133, 1,123,182,156,156,147,254,188, 79,109, 67, 32, 2, 28, 68, +111, 84,140,132,132,254,188,140, 1, 75, 34, 61, 46, 26, 70,138,204,134,135,206,139, 71, 25, 44, 58, 32, 33, 31, 26, 55, 16,158, +137,182,182,137,251, 43,131, 44, 89,133, 90, 39, 97,149,102, 52,206,196,198,195, 0, 2, 0,205, 4,217, 3,172, 6, 33, 0, 13, + 0, 27, 0, 48, 64, 24, 15,130, 14, 14, 20, 1,130, 0, 0, 8,133, 95, 6, 1, 6, 6, 22,133, 20, 21, 7,128, 15, 0, 0, 47, + 50, 26,205, 50, 1, 47,225, 51, 47, 93,225, 51, 47,225, 17, 51, 47,225, 48, 49, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23, 5, 35, + 46, 3, 39, 53, 51, 30, 3, 23, 3,172,100, 34, 82, 77, 64, 16,199, 16, 43, 46, 48, 21,254,150,101, 34, 82, 77, 63, 16,198, 16, + 43, 46, 48, 22, 4,217, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 27, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 0, 0, 2, + 0,188, 4,217, 4, 16, 6,127, 0, 16, 0, 28, 0, 68, 64, 35, 22,136, 23, 23, 27,130, 63, 28, 79, 28,111, 28, 3, 28, 28, 13, + 13, 12, 4, 4, 8, 1, 0, 0, 7, 8, 22,128, 27, 64, 4, 12,128, 7, 0, 0, 47, 50, 26,205, 50, 26,222, 26,205, 1, 47, 51, + 51, 47, 51, 18, 57, 17, 51, 51, 17, 51, 47, 93,225, 51, 47,225, 48, 49, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, 54, 55, 51, + 22, 22, 23, 39, 62, 3, 55, 51, 21, 6, 6, 7, 35, 3, 43,100, 51,108, 52, 54,106, 51,101, 51,116, 48,193, 48,116, 51, 78, 20, + 32, 30, 29, 16,180, 45,106, 55,101, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59,194, 26, 44, 46, 52, 33, 21, 60, +103, 43, 0, 2, 0,188, 4,217, 4, 16, 6,127, 0, 16, 0, 28, 0, 68, 64, 35, 23,136, 22, 64, 18,130, 48, 17, 64, 17, 96, 17, + 3, 17, 17, 3, 3, 4, 12, 12, 16, 9, 8, 8, 15, 16, 23,128, 18, 64, 12, 3,128, 9, 15, 0, 47, 51, 26,205, 50, 26,220, 26, +205, 1, 47, 51, 51, 47, 51, 18, 57, 17, 51, 51, 17, 51, 47, 93,225, 26,221,225, 48, 49, 1, 54, 54, 55, 51, 22, 22, 23, 21, 35, + 38, 38, 39, 6, 6, 7, 35, 55, 35, 38, 38, 39, 53, 51, 30, 3, 23, 1,162, 51,116, 48,192, 48,116, 51,100, 51,106, 54, 53,107, + 51,100, 78,101, 55,107, 45,181, 16, 29, 29, 33, 20, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34,195, 43,103, 60, + 21, 33, 52, 46, 44, 26, 0, 2, 0,221, 4,217, 3,240, 6,248, 0, 16, 0, 41, 0, 95, 64, 52, 23,130, 24, 24, 36, 28,130, 15, + 17, 31, 17, 2, 17, 17, 15, 36, 31, 36, 2, 36, 64, 12, 15, 72, 36, 36, 13, 13, 12, 4, 4, 8, 1, 0, 0, 7, 8, 22, 25, 25, + 24, 33,140, 39, 39, 24, 64, 4, 12,128, 1, 7, 0, 47, 51, 26,205, 50, 26,204, 50, 47,237, 18, 57, 47, 51, 1, 47, 51, 51, 47, + 51, 18, 57, 17, 51, 51, 17, 51, 47, 43, 93, 51, 47, 93,225, 17, 57, 47,225, 48, 49, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, + 54, 55, 51, 22, 22, 23, 19, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 51, 50, 22, 3, 76,101, + 51,107, 53, 54,105, 51,101, 51,116, 48,193, 48,116, 51,164, 20, 35, 45, 25, 6, 86, 11, 56, 65, 15, 27, 37, 21, 22, 39, 11, 21, + 59, 99,100, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59, 1,118, 29, 43, 30, 21, 6, 81,131, 9, 31, 37, 19, 24, + 14, 5, 3, 3, 82, 6, 69, 0, 0, 2, 1, 35, 4,217, 3,168, 7, 16, 0, 16, 0, 44, 0,102, 64, 36, 20, 26, 39,130, 40, 34, + 25, 40, 4, 3, 12, 12, 16, 9, 8, 8, 15, 40, 31, 40, 47, 40, 3, 40, 40, 25,130, 26, 15, 16, 16, 26, 39, 39, 31, 31,184, 1, + 1,179, 22, 25, 64, 36,184, 1, 1,183, 17, 17, 25, 12, 3,128, 9, 15, 0, 47, 51, 26,221, 50,198, 50, 47,225, 26, 16,218,225, + 47, 50, 47, 1, 47, 51, 47, 51, 16,237, 51, 47, 93, 51, 47, 51, 18, 57, 17, 51, 51, 17, 18, 57, 16,237, 17, 57, 49, 48, 1, 54, + 54, 55, 51, 22, 22, 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, + 54, 55, 51, 14, 3, 1, 45, 51,116, 48,193, 48,116, 51,101, 51,106, 54, 52,108, 51,100, 1,191, 36, 72, 69, 63, 29, 40, 42, 14, + 92, 5, 28, 48, 66, 41, 38, 74, 69, 62, 26, 40, 42, 14, 92, 4, 29, 48, 66, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, + 84, 34, 1, 90, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 2, 1, 57, 4,217, 3,147, 6,193, + 0, 11, 0, 31, 0, 45, 64, 22, 0, 11, 1, 11, 64, 7, 31,131, 12, 12, 21,131, 20, 5,128, 11, 11, 31, 20, 26,143, 17, 0, 47, +253,204, 50, 50, 47, 26,204, 1, 47,225, 51, 47,225,214, 26,205, 93, 48, 49, 1, 62, 3, 55, 51, 21, 6, 6, 7, 35, 37, 14, 3, + 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 2, 37, 20, 32, 30, 29, 16,180, 45,106, 56,100, 1,110, 4, 44, 76,110, 71,146, +144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, 5,248, 25, 44, 46, 53, 33, 21, 60,103, 44, 6, 60, 99, 69, 38,139,127, 43, + 49, 26, 7, 9, 27, 49, 40, 0, 0, 2, 1, 57, 4,217, 3,147, 6,193, 0, 11, 0, 31, 0, 47, 64, 23, 31,131, 12, 12, 20, 15, + 0, 1, 0, 64, 4, 21,131, 20, 5,128, 1, 1, 31, 20, 26,143, 17, 0, 47,253,204, 50, 50, 47, 26,205, 1, 47,225,214, 26,205, + 93, 17, 51, 47,225, 48, 49, 1, 35, 38, 38, 39, 53, 51, 30, 3, 23, 23, 14, 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, + 2,152,101, 56,106, 45,181, 16, 29, 29, 33, 20,251, 4, 44, 76,110, 71,146,144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, + 5,221, 44,103, 60, 21, 33, 53, 46, 44, 25, 21, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40, 0, 2, 1, 57, 4,217, + 3,147, 7, 6, 0, 19, 0, 43, 0, 86, 64, 48, 26, 26, 27, 27, 37, 37, 31, 20, 64, 9, 12, 72, 20, 20, 0, 9,131, 8, 19,131, + 31, 0, 1, 0, 25, 28, 28, 27, 34,140, 41,128,143, 27,159, 27,175, 27, 3, 27, 27, 14, 19, 8, 8, 14,143, 5, 0, 47,241,200, + 47, 50, 16,202, 47, 93, 26,220,225, 18, 57, 17, 51, 1, 47, 93,225, 47,225, 18, 57, 47, 43,193, 51, 47, 57, 47, 51, 47, 48, 49, + 1, 14, 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, + 53, 54, 54, 51, 50, 22, 3,147, 4, 44, 76,110, 71,146,144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, 43, 20, 35, 45, 25, + 6, 86, 11, 56, 65, 57, 43, 22, 39, 11, 11, 38, 31, 99,100, 5,227, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40,150, + 29, 43, 31, 20, 6, 41, 90, 9, 32, 37, 37, 24, 3, 3, 82, 3, 3, 69, 0, 2, 1, 35, 4,217, 3,168, 7, 16, 0, 19, 0, 47, + 0, 88, 64, 24, 25, 34, 20, 39, 34, 39, 43, 28,130, 29, 29, 9,131, 8, 42,130, 43, 43, 19,131, 0, 42, 42, 34,184, 1, 1,178, + 25, 29, 39,184, 1, 1, 64, 12, 64, 20, 20, 29, 8, 19, 19, 8,128, 14,143, 5, 0, 47,225, 26,205, 50, 47, 16,198, 50, 47, 26, +237, 16,220,237, 50, 47, 1, 47,225, 51, 47,225, 47,225, 51, 47,225, 18, 57, 57, 17, 51, 17, 51, 49, 48, 1, 14, 3, 35, 34, 38, + 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, 3, +139, 4, 44, 76,110, 71,146,145, 6,109, 4, 27, 48, 67, 44, 36, 65, 51, 34, 5, 47, 36, 72, 69, 63, 29, 40, 42, 14, 92, 5, 28, + 48, 66, 41, 38, 74, 69, 62, 26, 40, 42, 14, 92, 4, 29, 48, 66, 5,227, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40, + 80, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 1, 1,199,254, 66, 3, 6, 0, 0, 0, 20, + 0, 34, 64, 18, 3, 15, 2, 31, 2, 47, 2, 3, 2, 2, 14, 8,132, 0, 18,142, 11, 2, 0, 47, 47,225, 1, 47,237,204, 51, 47, + 93, 51, 48, 49, 5, 52, 39, 51, 30, 3, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 2,113,140,129, 26, 57, 47, 30,100, +101, 29, 63, 26, 14, 45, 25, 34, 52,238,106,132, 19, 52, 64, 75, 42, 90,104, 8, 8,113, 4, 5, 43, 0, 0, 1, 1,178,254,109, + 3, 25, 0,166, 0, 17, 0, 24, 64, 10, 9, 1, 73, 16, 10, 13, 80, 9, 6, 0, 0, 47, 47, 51,225, 50, 1, 47,225,204, 48, 49, + 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 17, 3, 25, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,166, +254,217, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, 60, 0, 0, 1, 1,178,254,109, 3, 25, 0,154, 0, 17, 0, 24, 64, 10, + 9, 1, 73, 16, 10, 13, 80, 9, 6, 0, 0, 47, 47, 51,237, 50, 1, 47,225,204, 48, 49, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, + 22, 51, 50, 54, 53, 17, 3, 25, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,154,254,229, 66,102, 70, 36, 17, 9,150, 7, + 14, 49, 49, 1, 48, 0, 0, 0, 0, 0, 0, 27, 1, 74, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 1, 0, 15, 0, 52, 0, 1, 0, 0, 0, 0, 0, 2, 0, 7, 0, 67, 0, 1, 0, 0, 0, 0, 0, 3, 0, 26, 0, 74, 0, 1, + 0, 0, 0, 0, 0, 4, 0, 15, 0, 52, 0, 1, 0, 0, 0, 0, 0, 5, 0, 12, 0,100, 0, 1, 0, 0, 0, 0, 0, 6, 0, 13, + 0,112, 0, 1, 0, 0, 0, 0, 0, 7, 0, 78, 0,125, 0, 1, 0, 0, 0, 0, 0, 8, 0, 20, 0,203, 0, 1, 0, 0, 0, 0, + 0, 10, 0,103, 0,223, 0, 1, 0, 0, 0, 0, 0, 13, 0, 46, 1, 70, 0, 1, 0, 0, 0, 0, 0, 14, 0, 42, 1,116, 0, 1, + 0, 0, 0, 0, 0, 18, 0, 15, 0, 52, 0, 3, 0, 1, 4, 9, 0, 0, 0,104, 1,158, 0, 3, 0, 1, 4, 9, 0, 1, 0, 30, + 2, 6, 0, 3, 0, 1, 4, 9, 0, 2, 0, 14, 2, 36, 0, 3, 0, 1, 4, 9, 0, 3, 0, 52, 2, 50, 0, 3, 0, 1, 4, 9, + 0, 4, 0, 30, 2, 6, 0, 3, 0, 1, 4, 9, 0, 5, 0, 44, 2,102, 0, 3, 0, 1, 4, 9, 0, 6, 0, 26, 2,146, 0, 3, + 0, 1, 4, 9, 0, 7, 0,156, 2,172, 0, 3, 0, 1, 4, 9, 0, 8, 0, 40, 3, 72, 0, 3, 0, 1, 4, 9, 0, 10, 0,206, + 3,112, 0, 3, 0, 1, 4, 9, 0, 11, 0, 56, 4, 62, 0, 3, 0, 1, 4, 9, 0, 12, 0, 92, 4,118, 0, 3, 0, 1, 4, 9, + 0, 13, 0, 92, 4,210, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 5, 46, 68,105,103,105,116,105,122,101,100, 32,100, 97,116, 97, + 32, 99,111,112,121,114,105,103,104,116, 32,169, 32, 50, 48, 48, 55, 44, 32, 71,111,111,103,108,101, 32, 67,111,114,112,111,114, + 97,116,105,111,110, 46, 68,114,111,105,100, 32, 83, 97,110,115, 32, 77,111,110,111, 82,101,103,117,108, 97,114, 65,115, 99,101, +110,100,101,114, 32, 45, 32, 68,114,111,105,100, 32, 83, 97,110,115, 32, 77,111,110,111, 86,101,114,115,105,111,110, 32, 49, 46, + 48, 48, 68,114,111,105,100, 83, 97,110,115, 77,111,110,111, 68,114,111,105,100, 32,105,115, 32, 97, 32,116,114, 97,100,101,109, + 97,114,107, 32,111,102, 32, 71,111,111,103,108,101, 32, 97,110,100, 32,109, 97,121, 32, 98,101, 32,114,101,103,105,115,116,101, +114,101,100, 32,105,110, 32, 99,101,114,116, 97,105,110, 32,106,117,114,105,115,100,105, 99,116,105,111,110,115, 46, 65,115, 99, +101,110,100,101,114, 32, 67,111,114,112,111,114, 97,116,105,111,110, 68,114,111,105,100, 32, 83, 97,110,115, 32,105,115, 32, 97, + 32,104,117,109, 97,110,105,115,116, 32,115, 97,110,115, 32,115,101,114,105,102, 32,116,121,112,101,102, 97, 99,101, 32,100,101, +115,105,103,110,101,100, 32,102,111,114, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101,115, 32, 97,110,100, 32,101, +108,101, 99,116,114,111,110,105, 99, 32, 99,111,109,109,117,110,105, 99, 97,116,105,111,110, 46, 76,105, 99,101,110,115,101,100, + 32,117,110,100,101,114, 32,116,104,101, 32, 65,112, 97, 99,104,101, 32, 76,105, 99,101,110,115,101, 44, 32, 86,101,114,115,105, +111,110, 32, 50, 46, 48,104,116,116,112, 58, 47, 47,119,119,119, 46, 97,112, 97, 99,104,101, 46,111,114,103, 47,108,105, 99,101, +110,115,101,115, 47, 76, 73, 67, 69, 78, 83, 69, 45, 50, 46, 48, 0, 68, 0,105, 0,103, 0,105, 0,116, 0,105, 0,122, 0,101, + 0,100, 0, 32, 0,100, 0, 97, 0,116, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, + 0, 32, 0,169, 0, 32, 0, 50, 0, 48, 0, 48, 0, 55, 0, 44, 0, 32, 0, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, + 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0, 68, 0,114, 0,111, 0,105, + 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77, 0,111, 0,110, 0,111, 0, 82, 0,101, 0,103, 0,117, 0,108, + 0, 97, 0,114, 0, 65, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 45, 0, 32, 0, 68, 0,114, 0,111, + 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77, 0,111, 0,110, 0,111, 0, 86, 0,101, 0,114, 0,115, + 0,105, 0,111, 0,110, 0, 32, 0, 49, 0, 46, 0, 48, 0, 48, 0, 32, 0, 98, 0,117, 0,105, 0,108, 0,100, 0, 32, 0, 49, + 0, 49, 0, 50, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 83, 0, 97, 0,110, 0,115, 0, 77, 0,111, 0,110, 0,111, 0, 68, + 0,114, 0,111, 0,105, 0,100, 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, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 97, 0,110, + 0,100, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,114, 0,101, 0,103, 0,105, 0,115, 0,116, 0,101, + 0,114, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 99, 0,101, 0,114, 0,116, 0, 97, 0,105, 0,110, 0, 32, 0,106, + 0,117, 0,114, 0,105, 0,115, 0,100, 0,105, 0, 99, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 46, 0, 65, 0,115, 0, 99, + 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, + 0,110, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0,105, 0,115, 0, 32, 0, 97, + 0, 32, 0,104, 0,117, 0,109, 0, 97, 0,110, 0,105, 0,115, 0,116, 0, 32, 0,115, 0, 97, 0,110, 0,115, 0, 32, 0,115, + 0,101, 0,114, 0,105, 0,102, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0, 32, 0,100, 0,101, + 0,115, 0,105, 0,103, 0,110, 0,101, 0,100, 0, 32, 0,102, 0,111, 0,114, 0, 32, 0,117, 0,115, 0,101, 0,114, 0, 32, + 0,105, 0,110, 0,116, 0,101, 0,114, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,101, + 0,108, 0,101, 0, 99, 0,116, 0,114, 0,111, 0,110, 0,105, 0, 99, 0, 32, 0, 99, 0,111, 0,109, 0,109, 0,117, 0,110, + 0,105, 0, 99, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, + 0,119, 0,119, 0, 46, 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, + 0, 99, 0,111, 0,109, 0, 47, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, + 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, 0, 99, 0,111, 0,109, 0, 47, + 0,116, 0,121, 0,112, 0,101, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,114, 0,115, 0, 46, 0,104, 0,116, + 0,109, 0,108, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 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, 65, 0,112, 0, 97, 0, 99, 0,104, 0,101, 0, 32, 0, 76, 0,105, 0, 99, 0,101, + 0,110, 0,115, 0,101, 0, 44, 0, 32, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50, 0, 46, 0, 48, + 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,112, 0, 97, 0, 99, 0,104, + 0,101, 0, 46, 0,111, 0,114, 0,103, 0, 47, 0,108, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0,115, 0, 47, 0, 76, + 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 2, 0, 0, 0, 0, 0, 0,255,102, 0,102, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 1, 2, 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, 3, 0,138, 1, 4, 0,131, 0,147, 0,242, + 0,243, 0,141, 0,151, 0,136, 1, 5, 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, 6, 1, 7, 1, 8, + 1, 9, 1, 10, 1, 11, 0,253, 0,254, 1, 12, 1, 13, 1, 14, 1, 15, 0,255, 1, 0, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, + 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 0,248, 0,249, 1, 32, 1, 33, 1, 34, + 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, 0,215, 1, 49, + 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, 0,226, 0,227, + 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 0,176, + 0,177, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 0,251, 0,252, 0,228, 0,229, 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, + 1,106, 1,107, 1,108, 1,109, 1,110, 0,187, 1,111, 1,112, 1,113, 1,114, 0,230, 0,231, 1,115, 0,166, 1,116, 1,117, + 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 0,216, 0,225, 1,124, 0,219, 0,220, 0,221, 0,224, 0,217, 0,223, 1,125, + 1,126, 1,127, 1,128, 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, 0,155, 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, 0,178, 0,179, 2, 42, + 2, 43, 0,182, 0,183, 0,196, 2, 44, 0,180, 0,181, 0,197, 0,130, 0,194, 0,135, 0,171, 0,198, 2, 45, 2, 46, 0,190, + 0,191, 2, 47, 0,188, 2, 48, 0,247, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 0,140, 0,159, 2, 55, 2, 56, 2, 57, + 2, 58, 2, 59, 0,152, 2, 60, 0,154, 0,153, 0,239, 0,165, 0,146, 0,156, 0,167, 0,143, 0,148, 0,149, 0,185, 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, 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, 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, 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, 5, 46,110,117,108,108, + 7,117,110,105, 48, 48, 65, 68, 9,111,118,101,114,115, 99,111,114,101, 14,112,101,114,105,111,100, 99,101,110,116,101,114,101, +100, 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, 4, 67,100,111,116, 4, 99,100,111,116, 6, 68, 99, 97,114,111,110, 6,100, 99, 97,114,111,110, 6, + 68, 99,114,111, 97,116, 6,100, 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, 4, 71,100,111,116, 4,103,100,111, +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, 10, 73,100,111,116, 97, 99, + 99,101,110,116, 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, 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, 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, 6,109, 97, 99,114,111,110, 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, @@ -9051,634 +3528,141 @@ char datatoc_bmonofont_ttf[]= { 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, +105,108,111,110, 3, 80,104,105, 3, 67,104,105, 3, 80,115,105, 7,117,110,105, 48, 51, 65, 57, 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, 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, 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, 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, + 9, 97,102,105,105, 49, 48, 49, 49, 48, 9, 97,102,105,105, 49, 48, 49, 57, 51, 9, 97,102,105,105, 49, 48, 48, 53, 48, 9, 97, +102,105,105, 49, 48, 48, 57, 56, 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, 6, 89,103,114, 97,118,101, 6, +121,103,114, 97,118,101, 9, 97,102,105,105, 48, 48, 50, 48, 56, 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, 6,109,105,110,117,116,101, 6,115,101, 99,111,110,100, 9,101,120, 99,108, 97, +109,100, 98,108, 9,110,115,117,112,101,114,105,111,114, 9, 97,102,105,105, 48, 56, 57, 52, 49, 6,112,101,115,101,116, 97, 4, + 69,117,114,111, 9, 97,102,105,105, 54, 49, 50, 52, 56, 9, 97,102,105,105, 54, 49, 50, 56, 57, 9, 97,102,105,105, 54, 49, 51, + 53, 50, 9,101,115,116,105,109, 97,116,101,100, 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, 5, 68,101,108, +116, 97, 7,117,110,105, 70, 66, 48, 49, 7,117,110,105, 70, 66, 48, 50, 13, 99,121,114,105,108,108,105, 99, 98,114,101,118,101, + 8,100,111,116,108,101,115,115,106, 16, 99, 97,114,111,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 11, 99,111,109,109, 97, + 97, 99, 99,101,110,116, 17, 99,111,109,109, 97, 97, 99, 99,101,110,116,114,111,116, 97,116,101, 12,122,101,114,111,115,117,112, +101,114,105,111,114, 12,102,111,117,114,115,117,112,101,114,105,111,114, 12,102,105,118,101,115,117,112,101,114,105,111,114, 11, +115,105,120,115,117,112,101,114,105,111,114, 13,115,101,118,101,110,115,117,112,101,114,105,111,114, 13,101,105,103,104,116,115, +117,112,101,114,105,111,114, 12,110,105,110,101,115,117,112,101,114,105,111,114, 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, 7,117,110,105, 70, 69, 70, 70, 7,117,110,105, + 70, 70, 70, 67, 7,117,110,105, 70, 70, 70, 68, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 50, 66, 67, 7,117,110,105, + 48, 51, 68, 49, 7,117,110,105, 48, 51, 68, 50, 7,117,110,105, 48, 51, 68, 54, 7,117,110,105, 49, 69, 51, 69, 7,117,110,105, + 49, 69, 51, 70, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105, 49, 70, 52, 68, 7,117,110,105, + 48, 50, 70, 51, 9,100, 97,115,105, 97,111,120,105, 97, 7,117,110,105, 70, 66, 48, 51, 7,117,110,105, 70, 66, 48, 52, 5, 79, +104,111,114,110, 5,111,104,111,114,110, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 51, 48, 48, 7,117, +110,105, 48, 51, 48, 49, 7,117,110,105, 48, 51, 48, 51, 4,104,111,111,107, 8,100,111,116, 98,101,108,111,119, 7,117,110,105, + 48, 52, 48, 48, 7,117,110,105, 48, 52, 48, 68, 7,117,110,105, 48, 52, 53, 48, 7,117,110,105, 48, 52, 53, 68, 7,117,110,105, + 48, 52, 54, 48, 7,117,110,105, 48, 52, 54, 49, 7,117,110,105, 48, 52, 54, 50, 7,117,110,105, 48, 52, 54, 51, 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, 7,117,110,105, 48, 52, 55, 50, 7,117,110,105, 48, 52, 55, 51, 7,117,110,105, + 48, 52, 55, 52, 7,117,110,105, 48, 52, 55, 53, 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, 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, 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, 52, 70, 65, 7,117,110,105, + 48, 52, 70, 66, 7,117,110,105, 48, 52, 70, 67, 7,117,110,105, 48, 52, 70, 68, 7,117,110,105, 48, 52, 70, 69, 7,117,110,105, + 48, 52, 70, 70, 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, 49, 48, 7,117,110,105, 48, 53, 49, 49, 7,117,110,105, 48, 53, 49, 50, 7,117,110,105, + 48, 53, 49, 51, 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, 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, 50, 48, 65, 66, 7,117,110,105, 48, 51, 48, 70, 19, 99,105,114, 99,117,109,102,108,101,120, 97, + 99,117,116,101, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,103,114, 97,118,101, 99,111,109, 98, 18, 99,105,114, + 99,117,109,102,108,101,120,104,111,111,107, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,116,105,108,100,101, 99, +111,109, 98, 14, 98,114,101,118,101, 97, 99,117,116,101, 99,111,109, 98, 14, 98,114,101,118,101,103,114, 97,118,101, 99,111,109, + 98, 13, 98,114,101,118,101,104,111,111,107, 99,111,109, 98, 14, 98,114,101,118,101,116,105,108,100,101, 99,111,109, 98, 16, 99, +121,114,105,108,108,105, 99,104,111,111,107,108,101,102,116, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 85, + 67, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 76, 67, 0, 0, 0, 0, 2, 0, 5, 0, 2,255,255, 0, 3, 0}; diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index 3ad353f21bf..352506fad9f 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -1,957 +1,7142 @@ /* DataToC output of file */ -int datatoc_startup_blend_size= 363524; +int datatoc_startup_blend_size= 531556; char datatoc_startup_blend[]= { 66, 76, 69, 78, - 68, 69, 82, 95, 86, 50, 53, 54, 82, 69, 78, 68, 0, 0, 0, 32,191,255,231,240, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0,250, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, - 0, 0, 1, 24,191,255,230,232, 0, 0, 0,196, 0, 0, 0, 1, 32, 32, 32, 54, 0, 6, 0, 0, 0,250, 0, 0, 0, 1, 1, 0, - 4,212, 43, 0, 2,152,190, 32, 0, 0, 16, 0, 0, 4, 32,128, 0, 0,140,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,168, 4,211,175,144, 0, 0, 1,103, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,211,176,208, 4,211,176,208, 4,211,176,208, 4,211,176,208, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60,106,112, 10, 60,106,112, - 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 4,218,173, 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, 4,209, 39,160, 4,209, 39,160, 4,209, 39,160, 4,209, 40, 96, 4,218,173, 32, - 4,209, 40, 96, 68, 65, 84, 65, 0, 0, 0,148, 4,211,176,208, 0, 0, 1,104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 4,209, 48, 16, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 43, 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, 1, 96, 7,128, 4,128, 0, 0, 0, 0, - 0, 1, 3,238, 0, 0, 0, 0, 0, 1, 0, 0, 4,209,122, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 4,217, 22, 16, 10, 60,118,160, 10, 60,118,160, 4,217,193,112, 4,217, 28,192, 4,217,192,128, 4,217,192,128, 10, 60, 48, 32, - 9,182,206, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 4,211,177,144, 0, 0, 0,190, 0, 0, 0, 1, - 4,211,245,240, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,211,176, 96, 4,211,182, 80, 4,211,182,144, - 4,211,189,144, 4,211,189,208, 4,211,241,144, 0, 0, 0, 0, 0, 0, 0, 0, 2,152,190, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,176, 96, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,178, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,178, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,211,178,144, 4,211,176, 96, 0, 0, 0, 0, 0, 0, 4, 97, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,178,144, 0, 0, 0,191, 0, 0, 0, 1, 4,211,178,208, 4,211,178, 80, - 0, 0, 0, 0, 7,118, 4, 97, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,178,208, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,179, 16, 4,211,178,144, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,179, 16, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,179, 80, 4,211,178,208, 0, 0, 0, 0, 0, 0, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,179, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,211,179,144, 4,211,179, 16, 0, 0, 0, 0, 7,118, 4, 70, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,179,144, 0, 0, 0,191, 0, 0, 0, 1, 4,211,179,208, 4,211,179, 80, - 0, 0, 0, 0, 6, 44, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,179,208, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,180, 16, 4,211,179,144, 0, 0, 0, 0, 6, 44, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,180, 16, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,180, 80, 4,211,179,208, 0, 0, 0, 0, 6, 44, 1,220, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,180, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,211,180,144, 4,211,180, 16, 0, 0, 0, 0, 7,118, 1,220, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,180,144, 0, 0, 0,191, 0, 0, 0, 1, 4,211,180,208, 4,211,180, 80, - 0, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,180,208, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,181, 16, 4,211,180,144, 0, 0, 0, 0, 6, 44, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,181, 16, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,181, 80, 4,211,180,208, 0, 0, 0, 0, 2,160, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,181, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,211,181,144, 4,211,181, 16, 0, 0, 0, 0, 2,160, 4, 70, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,181,144, 0, 0, 0,191, 0, 0, 0, 1, 4,211,181,208, 4,211,181, 80, - 0, 0, 0, 0, 0, 0, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,181,208, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,182, 16, 4,211,181,144, 0, 0, 0, 0, 2,160, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,182, 16, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,182, 80, 4,211,181,208, 0, 0, 0, 0, 6, 44, 3,100, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,182, 80, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,182, 16, 0, 0, 0, 0, 7,118, 3,100, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,182,144, 0, 0, 0,192, 0, 0, 0, 1, 4,211,182,208, 0, 0, 0, 0, - 4,211,178, 80, 4,211,178,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,182,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,183, 16, 4,211,182,144, 4,211,178, 80, 4,211,179, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,183, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,211,183, 80, 4,211,182,208, 4,211,178,144, 4,211,179, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,183, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,183,144, - 4,211,183, 16, 4,211,179, 16, 4,211,179, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,183,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,183,208, 4,211,183, 80, 4,211,176, 96, 4,211,179,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,183,208, 0, 0, 0,192, 0, 0, 0, 1, 4,211,184, 16, 4,211,183,144, 4,211,178,208, - 4,211,179,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,184, 16, 0, 0, 0,192, 0, 0, 0, 1, - 4,211,184, 80, 4,211,183,208, 4,211,179, 80, 4,211,179,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,211,184, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,184,144, 4,211,184, 16, 4,211,179,144, 4,211,180, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,184,144, 0, 0, 0,192, 0, 0, 0, 1, 4,211,184,208, 4,211,184, 80, - 4,211,178,208, 4,211,180, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,184,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,185, 16, 4,211,184,144, 4,211,180, 16, 4,211,180, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,185, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,211,185, 80, 4,211,184,208, 4,211,176, 96, 4,211,180,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,185, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,185,144, - 4,211,185, 16, 4,211,179,208, 4,211,180,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,185,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,185,208, 4,211,185, 80, 4,211,179,144, 4,211,180,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,185,208, 0, 0, 0,192, 0, 0, 0, 1, 4,211,186, 16, 4,211,185,144, 4,211,180,144, - 4,211,180,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,186, 16, 0, 0, 0,192, 0, 0, 0, 1, - 4,211,186, 80, 4,211,185,208, 4,211,180,144, 4,211,181, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,211,186, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,186,144, 4,211,186, 16, 4,211,180,208, 4,211,181, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,186,144, 0, 0, 0,192, 0, 0, 0, 1, 4,211,186,208, 4,211,186, 80, - 4,211,179, 16, 4,211,181, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,186,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,187, 16, 4,211,186,144, 4,211,179,208, 4,211,181, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,187, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,211,187, 80, 4,211,186,208, 4,211,181, 16, 4,211,181, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,187, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,187,144, - 4,211,187, 16, 4,211,180,144, 4,211,181,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,187,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,187,208, 4,211,187, 80, 4,211,181, 16, 4,211,181,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,187,208, 0, 0, 0,192, 0, 0, 0, 1, 4,211,188, 16, 4,211,187,144, 4,211,181,144, - 4,211,181,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,188, 16, 0, 0, 0,192, 0, 0, 0, 1, - 4,211,188, 80, 4,211,187,208, 4,211,180, 16, 4,211,182, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,211,188, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,188,144, 4,211,188, 16, 4,211,179,208, 4,211,182, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,188,144, 0, 0, 0,192, 0, 0, 0, 1, 4,211,188,208, 4,211,188, 80, - 4,211,179, 80, 4,211,182, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,188,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,189, 16, 4,211,188,144, 4,211,180, 80, 4,211,182, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,189, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,211,189, 80, 4,211,188,208, 4,211,182, 16, 4,211,182, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,189, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,211,189,144, - 4,211,189, 16, 4,211,179, 16, 4,211,181,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,189,144, - 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,189, 80, 4,211,181, 80, 4,211,181,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 4,211,189,208, 0, 0, 0,194, 0, 0, 0, 1, 4,211,192,160, 0, 0, 0, 0, 4,211,179, 16, - 4,211,178, 80, 4,211,178,144, 4,211,179, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 97, - 7, 7, 7,119, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 4,211,245,144, 4,211,245,144, 4,211,190, 96, - 4,211,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,190, 96, - 0, 0, 0,195, 0, 0, 0, 1, 4,211,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68,238,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 0, 0, 0, 0, 0, 25, - 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 4, 12, 0, 10, 7,119, 0, 26, 7,119, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,119, 0, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,211,191,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,190, 96, 0, 0, 0, 0, - 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, - 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 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, 97, 0, 0, 4, 97, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,192,160, 0, 0, 0,194, 0, 0, 0, 1, - 4,211,213,176, 4,211,189,208, 4,211,179,144, 4,211,180, 16, 4,211,180, 80, 4,211,178,208, 0, 0, 0, 0, 0, 0, 6, 45, - 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 1,219, 4, 4, 1, 74, 1,220, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,211,212,176, 4,211,212,176, 4,211,193, 48, 4,211,194, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 4,211,193, 48, 0, 0, 0,195, 0, 0, 0, 1, 4,211,194, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 67,160, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,248, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 30, 67,137,128, 0, 65,200, 0, 0, 67,137,128, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 74, 0, 31, 1, 74, 0, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 1,189, 0, 0, 1,219, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0, 31, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,194, 80, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,211,193, 48, 0, 0, 0, 0, 67,165, 0, 0,196, 86,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,156,128, 1, -195,222,128, 2, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 1,188, 0, 0, 0, 0, 0, 0, 1, 62, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 1,188, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 74, - 1,189, 1, 57, 1,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 0, 0, - 0, 0, 1,188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,211,195,112, 4,211,211, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 4,211,195,112, 0, 0, 0,193, 0, 0, 0, 1, 4,211,196,224, 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,255,220, - 1, 57, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,196,224, 0, 0, 0,193, 0, 0, 0, 1, - 4,211,198, 80, 4,211,195,112, 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, + 68, 69, 82, 45,118, 50, 53, 54, 82, 69, 78, 68, 32, 0, 0, 0, 0,230,191, 95,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, + 71, 76, 79, 66, 32, 1, 0, 0, 0,229,191, 95,255,127, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 52, 4, 0, 0, 0, +250, 0, 0, 0, 1, 0, 0, 1,200, 23,159, 23, 1, 0, 0, 0, 56,106,106, 3, 1, 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, 87, 77, 0, 0, 24, 1, 0, 0, +152,107,158, 23, 1, 0, 0, 0,115, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,108,158, 23, 1, 0, 0, 0, +248,108,158, 23, 1, 0, 0, 0,248,108,158, 23, 1, 0, 0, 0,248,108,158, 23, 1, 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, + 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,104,173,161, 19, 1, 0, 0, 0, +104,173,161, 19, 1, 0, 0, 0,104,173,161, 19, 1, 0, 0, 0, 8,253,149, 23, 1, 0, 0, 0, 8,253,149, 23, 1, 0, 0, 0, + 8,253,149, 23, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,248,108,158, 23, 1, 0, 0, 0,116, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,161, 19, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +200, 23,159, 23, 1, 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,156, 5, 88, 3, 0, 0, 0, 0, 1, 0,238, 3, + 0, 0, 0, 0, 1, 0, 0, 0, 24, 81,164, 19, 1, 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, 24,229,166, 19, 1, 0, 0, 0,152,177, 54, 23, 1, 0, 0, 0,152,177, 54, 23, 1, 0, 0, 0, + 24, 0,150, 23, 1, 0, 0, 0,120,254,149, 23, 1, 0, 0, 0, 72,255,149, 23, 1, 0, 0, 0, 72,255,149, 23, 1, 0, 0, 0, + 88, 4,150, 23, 1, 0, 0, 0, 8,119,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 78, 0, 0,216, 0, 0, 0, 24,110,158, 23, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,104,206,158, 23, 1, 0, 0, 0, + 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +136,202,169, 19, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0,216,116,158, 23, 1, 0, 0, 0, 24,129,158, 23, 1, 0, 0, 0, +136,129,158, 23, 1, 0, 0, 0,232,196,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,106,106, 3, 1, 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,202,169, 19, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 72,116,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 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,116,166, 19, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 56, 99,170, 19, 1, 0, 0, 0,136,202,169, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 56, 99,170, 19, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 56,111,158, 23, 1, 0, 0, 0, + 72,116,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 56,111,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, 56, 99,170, 19, 1, 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,152,111,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0, 56,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 88,112,158, 23, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, +248,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +184,112,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 6,220, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +216,113,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,220, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, +120,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 56,114,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 2,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 88,115,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, +248,114,158, 23, 1, 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, +184,115,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 2,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 6,100, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,100, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216,116,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,117,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72,116,166, 19, 1, 0, 0, 0, 56, 99,170, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 72,117,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,117,158, 23, 1, 0, 0, 0, +216,116,158, 23, 1, 0, 0, 0, 72,116,166, 19, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,184,117,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,118,158, 23, 1, 0, 0, 0, + 72,117,158, 23, 1, 0, 0, 0, 56, 99,170, 19, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 40,118,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,118,158, 23, 1, 0, 0, 0, +184,117,158, 23, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,152,118,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,119,158, 23, 1, 0, 0, 0, + 40,118,158, 23, 1, 0, 0, 0,136,202,169, 19, 1, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 8,119,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,119,158, 23, 1, 0, 0, 0, +152,118,158, 23, 1, 0, 0, 0, 56,111,158, 23, 1, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,119,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,119,158, 23, 1, 0, 0, 0, + 8,119,158, 23, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,232,119,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,120,158, 23, 1, 0, 0, 0, +120,119,158, 23, 1, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 88,120,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,120,158, 23, 1, 0, 0, 0, +232,119,158, 23, 1, 0, 0, 0, 56,111,158, 23, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,200,120,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,121,158, 23, 1, 0, 0, 0, + 88,120,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,121,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,121,158, 23, 1, 0, 0, 0, +200,120,158, 23, 1, 0, 0, 0,136,202,169, 19, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,168,121,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,122,158, 23, 1, 0, 0, 0, + 56,121,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 24,122,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,122,158, 23, 1, 0, 0, 0, +168,121,158, 23, 1, 0, 0, 0, 88,112,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,136,122,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,122,158, 23, 1, 0, 0, 0, + 24,122,158, 23, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,248,122,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,123,158, 23, 1, 0, 0, 0, +136,122,158, 23, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,104,123,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,123,158, 23, 1, 0, 0, 0, +248,122,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216,123,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,124,158, 23, 1, 0, 0, 0, +104,123,158, 23, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 72,124,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,124,158, 23, 1, 0, 0, 0, +216,123,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,184,124,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,125,158, 23, 1, 0, 0, 0, + 72,124,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 40,125,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,125,158, 23, 1, 0, 0, 0, +184,124,158, 23, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,152,125,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,126,158, 23, 1, 0, 0, 0, + 40,125,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 8,126,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,126,158, 23, 1, 0, 0, 0, +152,125,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,126,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,126,158, 23, 1, 0, 0, 0, + 8,126,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,232,126,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,127,158, 23, 1, 0, 0, 0, +120,126,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 88,127,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,127,158, 23, 1, 0, 0, 0, +232,126,158, 23, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,200,127,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,128,158, 23, 1, 0, 0, 0, + 88,127,158, 23, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,128,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,128,158, 23, 1, 0, 0, 0, +200,127,158, 23, 1, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,168,128,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,129,158, 23, 1, 0, 0, 0, + 56,128,158, 23, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 24,129,158, 23, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,128,158, 23, 1, 0, 0, 0,248,114,158, 23, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,136,129,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,133,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, 72,116,166, 19, 1, 0, 0, 0, 56, 99,170, 19, 1, 0, 0, 0, +248,111,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, + 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,205,158, 23, 1, 0, 0, 0, +232,205,158, 23, 1, 0, 0, 0,104,130,158, 23, 1, 0, 0, 0,216,131,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,130,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,131,158, 23, 1, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 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, +216,131,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,130,158, 23, 1, 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, 97, 4, 0, 0, 97, 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, + 72,133,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,200,157,158, 23, 1, 0, 0, 0,136,129,158, 23, 1, 0, 0, 0, + 88,112,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0, 56,111,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,219, 1, 0, 0, 4, 4, 74, 1,220, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,156,158, 23, 1, 0, 0, 0,136,156,158, 23, 1, 0, 0, 0, + 40,134,158, 23, 1, 0, 0, 0,152,135,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,134,158, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,152,135,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 0, 0, 0,248, 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, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 74, 1, 31, 0, 74, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,189, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 31, 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,135,158, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,134,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, + 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,156, 67, 2,128,222,195, 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, + 0, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, + 0, 0, 0, 0,188, 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, 74, 1,189, 1, 57, 1,189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,188, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,137,158, 23, 1, 0, 0, 0,232,154,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,137,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,168,138,158, 23, 1, 0, 0, 0, 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, 57, 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,168,138,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72,140,158, 23, 1, 0, 0, 0, + 8,137,158, 23, 1, 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, 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,135,255, 57, 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,255,135, 1, 57, 0, 61, 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, 68, 65, 84, 65, 88, 1, 0, 0, 72,140,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,232,141,158, 23, 1, 0, 0, 0,168,138,158, 23, 1, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,211,198, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,211,199,192, 4,211,196,224, 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, 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, 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, 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, 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,111,255, 57, 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,255,111, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,199,192, - 0, 0, 0,193, 0, 0, 0, 1, 4,211,201, 48, 4,211,198, 80, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 68, 65, 84, 65, 88, 1, 0, 0,232,141,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136,143,158, 23, 1, 0, 0, 0, + 72,140,158, 23, 1, 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,254,140, 1, 57, 0,203, - 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,140,254, 57, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,201, 48, 0, 0, 0,193, 0, 0, 0, 1, 4,211,202,160, - 4,211,199,192, 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, 68, 65, 84, 65, 88, 1, 0, 0,136,143,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 40,145,158, 23, 1, 0, 0, 0,232,141,158, 23, 1, 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, 0, 0, 0, 0, 0, 0,254, 58, 1, 57, 0, 58, 0, 20, 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, 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, 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, 0, 1, 64, 4,211,202,160, 0, 0, 0,193, 0, 0, 0, 1, 4,211,204, 16, 4,211,201, 48, 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, 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, - 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, 58,254, 57, 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, - 70,117,108,108, 32, 83, 97,109,112,108,101, 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,254, 34, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 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, + 68, 65, 84, 65, 88, 1, 0, 0, 40,145,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200,146,158, 23, 1, 0, 0, 0, +136,143,158, 23, 1, 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, 70,117,108,108, 32, 83, 97,109, +112,108,101, 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, 34,254, 57, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,204, 16, 0, 0, 0,193, - 0, 0, 0, 1, 4,211,205,128, 4,211,202,160, 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,253,164, 1, 57, 0,102, 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, 68, 65, 84, 65, 88, 1, 0, 0,200,146,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,104,148,158, 23, 1, 0, 0, 0, 40,145,158, 23, 1, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,205,128, 0, 0, 0,193, 0, 0, 0, 1, 4,211,206,240, 4,211,204, 16, - 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, 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, 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,164,253, 57, 1,102, 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, 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,253, 10, 1, 57, 0,130, 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, + 68, 65, 84, 65, 88, 1, 0, 0,104,148,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8,150,158, 23, 1, 0, 0, 0, +200,146,158, 23, 1, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,211,206,240, 0, 0, 0,193, 0, 0, 0, 1, 4,211,208, 96, 4,211,205,128, 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,252,242, - 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 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, 10,253, 57, 1,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,211,208, 96, 0, 0, 0,193, 0, 0, 0, 1, - 4,211,209,208, 4,211,206,240, 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, 68, 65, 84, 65, 88, 1, 0, 0, 8,150,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,168,151,158, 23, 1, 0, 0, 0,104,148,158, 23, 1, 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,252, 57, 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,168,151,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72,153,158, 23, 1, 0, 0, 0, + 8,150,158, 23, 1, 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,252, 57, 1, 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,252,218, 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 88, 1, 0, 0, 72,153,158, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,232,154,158, 23, 1, 0, 0, 0,168,151,158, 23, 1, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,211,209,208, 0, 0, 0,193, 0, 0, 0, 1, 4,211,211, 64, 4,211,208, 96, 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, 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, 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, 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, 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,194,252, 57, 1, 0, 0, 20, 0, 0, 0, 4, 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,252,194, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,211,211, 64, - 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,209,208, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 68, 65, 84, 65, 88, 1, 0, 0,232,154,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,153,158, 23, 1, 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,252,170, 1, 57, 0, 0, - 0, 0, 0, 0, 0, 4, 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,170,252, 57, 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,136,156,158, 23, 1, 0, 0, 0, +159, 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, 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, + 68, 65, 84, 65,160, 0, 0, 0,200,157,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,162,158, 23, 1, 0, 0, 0, + 72,133,158, 23, 1, 0, 0, 0,136,202,169, 19, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, + 88,112,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 0, 0, 0, 0,131, 0, 0, 0, + 15, 15, 44, 6,132, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,161,158, 23, 1, 0, 0, 0, +136,161,158, 23, 1, 0, 0, 0,168,158,158, 23, 1, 0, 0, 0, 24,160,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,158,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,160,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,160,137, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,197, 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, 43, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 6, 26, 0, 44, 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, 43, 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, 44, 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, + 24,160,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,158,158, 23, 1, 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, 43, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 43, 6, 0, 0, 18, 0, 0, 0,105, 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, 44, 6,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, 43, 6, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, +136,161,158, 23, 1, 0, 0, 0,170, 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, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,162,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +232,168,158, 23, 1, 0, 0, 0,200,157,158, 23, 1, 0, 0, 0, 24,113,158, 23, 1, 0, 0, 0, 24,116,158, 23, 1, 0, 0, 0, +120,116,158, 23, 1, 0, 0, 0,120,113,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, +221, 1, 0, 0, 99, 3, 0, 0, 3, 3, 74, 1,135, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,166,158, 23, 1, 0, 0, 0,104,166,158, 23, 1, 0, 0, 0,136,163,158, 23, 1, 0, 0, 0,248,164,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,163,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,164,158, 23, 1, 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,165, 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, 73, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, + 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 74, 1, + 26, 0, 74, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, + 74, 3, 0, 0, 99, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 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,248,164,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +136,163,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, + 0,128,173,195, 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0,108, 1, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 18, 0, 0, 0,108, 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, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 74, 1, +109, 1, 57, 1, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, +221, 1, 0, 0, 73, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,109, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,166,158, 23, 1, 0, 0, 0,163, 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,216,134,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216,134,166, 19, 1, 0, 0, 0, +217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,200,167,158, 23, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, +200,167,158, 23, 1, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, + 21, 0, 1, 0, 1, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,169, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,167, 71, 27, 1, 0, 0, 0, + 21, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,168,158, 23, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 56,182,158, 23, 1, 0, 0, 0,168,162,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, +248,114,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0, 56,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 2, 0, 0, 43, 6, 0, 0,133, 0, 0, 0, 69, 4, 0, 0, 1, 1,139, 3,193, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,180,158, 23, 1, 0, 0, 0,168,180,158, 23, 1, 0, 0, 0,200,169,158, 23, 1, 0, 0, 0, +136,175,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,169,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 56,171,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192, 98, 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,138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,139, 3, 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 2, 0, 0, 43, 6, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +139, 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, 56,171,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +168,172,158, 23, 1, 0, 0, 0,200,169,158, 23, 1, 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, +161, 2, 0, 0,161, 2, 0, 0,159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,167, 3, 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,168,172,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 24,174,158, 23, 1, 0, 0, 0, 56,171,158, 23, 1, 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, +161, 2, 0, 0, 43, 6, 0, 0,159, 0, 0, 0,159, 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, 24,174,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +136,175,158, 23, 1, 0, 0, 0,168,172,158, 23, 1, 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, + 43, 6, 0, 0, 43, 6, 0, 0,159, 0, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,175,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,174,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 2, 0, 0, 43, 6, 0, 0,159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +139, 3,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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,176,158, 23, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,248,176,158, 23, 1, 0, 0, 0,153, 0, 0, 0, 1, 0, 0, 0, +107, 82,144, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,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, + 89,180,236, 62,209,249,224,190, 48,180, 81,191,184,158, 81,191, 65,158,131, 63,142,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, + 38, 11,117,188,207,156,122, 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, +211, 48,186, 62, 11, 16, 79, 63,144,199, 64,188, 0, 0,135,180,163, 15,188,190,102, 75, 53, 62,223,125, 81, 63, 0, 0,104, 51, +207,107,117,194, 81,204,216, 65, 40,156, 5,194,136,247,159,192,121, 62,114, 66,214,253,213,193, 94,225, 3, 66,236, 7,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, + 89,180,236, 62,209,249,224,190, 48,180, 81,191,184,158, 81,191, 65,158,131, 63,142,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, + 38, 11,117,188,207,156,122, 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,181, 12, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,181, 12, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 99,181, 12, 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, + 14, 43, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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,128, 63, 30, 33, 12, 66, 85,152,137, 66, +116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0,168,180,158, 23, 1, 0, 0, 0,154, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 56,114,106, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,182,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +120,190,158, 23, 1, 0, 0, 0,232,168,158, 23, 1, 0, 0, 0,216,113,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0, +184,115,158, 23, 1, 0, 0, 0,152,114,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, +133, 0, 0, 0,139, 1, 0, 0, 2, 2,160, 2, 7, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216,188,158, 23, 1, 0, 0, 0,216,188,158, 23, 1, 0, 0, 0, 24,183,158, 23, 1, 0, 0, 0,104,187,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,183,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,184,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 40, 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,159, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, + 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 2, + 26, 0,160, 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,159, 2, 0, 0, +133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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,136,184,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,185,158, 23, 1, 0, 0, 0, + 24,183,158, 23, 1, 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, 91,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,236, 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,236, 0, 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, +237, 0,200, 0,219, 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, +159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,237, 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,248,185,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,187,158, 23, 1, 0, 0, 0, +136,184,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 2, 0, 0,159, 2, 0, 0, +159, 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,104,187,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,185,158, 23, 1, 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,236, 0, 0, 0, 18, 0, 0, 0,198, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 1, 0, 0, 18, 0, 0, 0,236, 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,199, 1, +237, 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,159, 2, 0, 0, +159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 1,237, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216,188,158, 23, 1, 0, 0, 0,158, 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, + 8,190,158, 23, 1, 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, 68, 65, 84, 65, 40, 0, 0, 0, 8,190,158, 23, 1, 0, 0, 0, 16, 1, 0, 0, 1, 0, 0, 0, + 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,190,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +232,196,158, 23, 1, 0, 0, 0, 56,182,158, 23, 1, 0, 0, 0, 88,115,158, 23, 1, 0, 0, 0,152,111,158, 23, 1, 0, 0, 0, +248,114,158, 23, 1, 0, 0, 0,184,115,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 2, 0, 0, +141, 1, 0, 0, 69, 4, 0, 0, 12, 12,160, 2,185, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,195,158, 23, 1, 0, 0, 0,168,195,158, 23, 1, 0, 0, 0, 88,191,158, 23, 1, 0, 0, 0, 56,194,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,191,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,192,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 40, 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,159, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, + 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 2, + 26, 0,160, 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,159, 2, 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,160, 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,192,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,194,158, 23, 1, 0, 0, 0, + 88,191,158, 23, 1, 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, 64, 35,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,199, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,158, 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, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0, +159, 2,200, 0,141, 2, 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, +167, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,159, 2, 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, 56,194,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,192,158, 23, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, + 0, 64, 35,196, 0, 0, 0, 0,199, 1, 0, 0,216, 1, 0, 0, 18, 0, 0, 0,158, 2, 0, 0, 0, 0, 0, 0,198, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 1, 0, 0, 18, 0, 0, 0,158, 2, 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,216, 1, +159, 2, 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,159, 2, 0, 0, +167, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 1,159, 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, 0, 1, 0, 0,168,195,158, 23, 1, 0, 0, 0, 17, 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, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +232,196,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,190,158, 23, 1, 0, 0, 0, + 24,116,158, 23, 1, 0, 0, 0,184,112,158, 23, 1, 0, 0, 0,248,111,158, 23, 1, 0, 0, 0,120,116,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 1, 1, 74, 1,225, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,204,158, 23, 1, 0, 0, 0, 88,204,158, 23, 1, 0, 0, 0, +200,197,158, 23, 1, 0, 0, 0, 56,199,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,158, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 56,199,158, 23, 1, 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, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0,101, 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, 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, 56,199,158, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,197,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,158, 23, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,168,200,158, 23, 1, 0, 0, 0, +153, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 66, 80, 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, 3,201,194, 63, 34, 49,132,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63,124, 38,130, 63, +180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 42,119, 58, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,204,230,156,191, +216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,128,206,159,187, 0, 0,168,180, 59,189,199,189,147,167,196, 61, +206,223,140, 62, 0, 0,248, 51,211,120, 21,194,145, 5, 2, 66, 10,136,213,193,193,214,159,192,219, 38, 19, 66,197,173,255,193, +158,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, 3,201,194, 63, 34, 49,132,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63,124, 38,130, 63, +180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 42,119, 58, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,204,230,156,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,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,202, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 88,204,158, 23, 1, 0, 0, 0, +154, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 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, 16, 0, 0, 0, 7, 0, 10, 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, 83, 78, 0, 0,216, 0, 0, 0,104,206,158, 23, 1, 0, 0, 0, +190, 0, 0, 0, 1, 0, 0, 0,200, 23,159, 23, 1, 0, 0, 0, 24,110,158, 23, 1, 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, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,207,158, 23, 1, 0, 0, 0,104,212,158, 23, 1, 0, 0, 0, +200,212,158, 23, 1, 0, 0, 0,248,221,158, 23, 1, 0, 0, 0,104,222,158, 23, 1, 0, 0, 0, 24, 18,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 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,207,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,232,207,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 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, +232,207,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72,208,158, 23, 1, 0, 0, 0,136,207,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,208,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,168,208,158, 23, 1, 0, 0, 0,232,207,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,208,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 8,209,158, 23, 1, 0, 0, 0, 72,208,158, 23, 1, 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, 8,209,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, +168,208,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +104,209,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, 8,209,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 40,210,158, 23, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,210,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +136,210,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,136,210,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0, + 40,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +232,210,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0,136,210,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,168,211,158, 23, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,211,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 8,212,158, 23, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,172, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 8,212,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,104,212,158, 23, 1, 0, 0, 0, +168,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +104,212,158, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,212,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,212,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 56,213,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,207,158, 23, 1, 0, 0, 0, + 72,208,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,213,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,168,213,158, 23, 1, 0, 0, 0,200,212,158, 23, 1, 0, 0, 0,232,207,158, 23, 1, 0, 0, 0, + 8,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,213,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 24,214,158, 23, 1, 0, 0, 0, 56,213,158, 23, 1, 0, 0, 0, 72,208,158, 23, 1, 0, 0, 0, +104,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,214,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,136,214,158, 23, 1, 0, 0, 0,168,213,158, 23, 1, 0, 0, 0, 8,209,158, 23, 1, 0, 0, 0, +104,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,214,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,248,214,158, 23, 1, 0, 0, 0, 24,214,158, 23, 1, 0, 0, 0,168,208,158, 23, 1, 0, 0, 0, + 40,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,214,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,104,215,158, 23, 1, 0, 0, 0,136,214,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, + 40,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,215,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,216,215,158, 23, 1, 0, 0, 0,248,214,158, 23, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, +136,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,215,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 72,216,158, 23, 1, 0, 0, 0,104,215,158, 23, 1, 0, 0, 0, 8,209,158, 23, 1, 0, 0, 0, +136,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,216,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,184,216,158, 23, 1, 0, 0, 0,216,215,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, +136,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,216,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 40,217,158, 23, 1, 0, 0, 0, 72,216,158, 23, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, + 40,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,217,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,152,217,158, 23, 1, 0, 0, 0,184,216,158, 23, 1, 0, 0, 0, 8,209,158, 23, 1, 0, 0, 0, +232,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,217,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 8,218,158, 23, 1, 0, 0, 0, 40,217,158, 23, 1, 0, 0, 0,136,210,158, 23, 1, 0, 0, 0, + 72,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,218,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,120,218,158, 23, 1, 0, 0, 0,152,217,158, 23, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0, + 72,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,218,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,232,218,158, 23, 1, 0, 0, 0, 8,218,158, 23, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0, +168,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,218,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 88,219,158, 23, 1, 0, 0, 0,120,218,158, 23, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0, +168,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,219,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,200,219,158, 23, 1, 0, 0, 0,232,218,158, 23, 1, 0, 0, 0,136,207,158, 23, 1, 0, 0, 0, + 8,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,219,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 56,220,158, 23, 1, 0, 0, 0, 88,219,158, 23, 1, 0, 0, 0, 8,212,158, 23, 1, 0, 0, 0, +104,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,220,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,168,220,158, 23, 1, 0, 0, 0,200,219,158, 23, 1, 0, 0, 0,168,208,158, 23, 1, 0, 0, 0, +104,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,220,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 24,221,158, 23, 1, 0, 0, 0, 56,220,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, +104,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,221,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,136,221,158, 23, 1, 0, 0, 0,168,220,158, 23, 1, 0, 0, 0,168,211,158, 23, 1, 0, 0, 0, + 8,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,221,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,248,221,158, 23, 1, 0, 0, 0, 24,221,158, 23, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0, +104,212,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,221,158, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,221,158, 23, 1, 0, 0, 0,136,207,158, 23, 1, 0, 0, 0, +232,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,222,158, 23, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 40,226,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,209,158, 23, 1, 0, 0, 0, +232,207,158, 23, 1, 0, 0, 0, 72,208,158, 23, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 23,159, 23, 1, 0, 0, 0, 72, 23,159, 23, 1, 0, 0, 0, 72,223,158, 23, 1, 0, 0, 0, +184,224,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,223,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +184,224,158, 23, 1, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +119, 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,224,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72,223,158, 23, 1, 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, 97, 4, 0, 0, 97, 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,226,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 8,231,158, 23, 1, 0, 0, 0,104,222,158, 23, 1, 0, 0, 0,104,212,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, + 40,210,158, 23, 1, 0, 0, 0,168,208,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, + 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 94, 1,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,229,158, 23, 1, 0, 0, 0,232,229,158, 23, 1, 0, 0, 0, 8,227,158, 23, 1, 0, 0, 0,120,228,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,227,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,228,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,110, 68, 0, 0, 0, 0, 0, 0,208, 65, 0,128,161, 67, 0, 64, 40, 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, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 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, 25, 6, 0, 0,118, 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,228,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,227,158, 23, 1, 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, 73, 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, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, + 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 74, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,216, 0, 0, 0,232,229,158, 23, 1, 0, 0, 0,170, 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, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,231,158, 23, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,136,255,158, 23, 1, 0, 0, 0, 40,226,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, +136,210,158, 23, 1, 0, 0, 0,104,209,158, 23, 1, 0, 0, 0, 40,210,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 6, 0, 0,118, 7, 0, 0,101, 0, 0, 0, 69, 4, 0, 0, 4, 4, 94, 1,225, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72,254,158, 23, 1, 0, 0, 0, 72,254,158, 23, 1, 0, 0, 0,232,231,158, 23, 1, 0, 0, 0, + 88,233,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,231,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 88,233,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,248, 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, 30, 0, 0, 0, + 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 94, 1, 31, 0, 94, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 6, 0, 0,118, 7, 0, 0, 39, 4, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 1, 31, 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, 88,233,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232,231,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 64,112,196, 0, 0, 0, 0, + 0, 0, 0, 0,255,127,166, 67,254,127,112,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,193, 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,193, 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,194, 3, 77, 1,194, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 6, 0, 0,118, 7, 0, 0,101, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 1,194, 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,200,234,158, 23, 1, 0, 0, 0, +168,252,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,234,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +104,236,158, 23, 1, 0, 0, 0, 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, +104,236,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8,238,158, 23, 1, 0, 0, 0,200,234,158, 23, 1, 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, 8,238,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +168,239,158, 23, 1, 0, 0, 0,104,236,158, 23, 1, 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, +168,239,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72,241,158, 23, 1, 0, 0, 0, 8,238,158, 23, 1, 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, 72,241,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +232,242,158, 23, 1, 0, 0, 0,168,239,158, 23, 1, 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, +232,242,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136,244,158, 23, 1, 0, 0, 0, 72,241,158, 23, 1, 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, 70,117,108,108, 32, 83, 97,109,112,108,101, 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, 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,136,244,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 40,246,158, 23, 1, 0, 0, 0,232,242,158, 23, 1, 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, 76, 1,102, 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, 68, 65, 84, 65, 88, 1, 0, 0, + 40,246,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200,247,158, 23, 1, 0, 0, 0,136,244,158, 23, 1, 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, 10,253, 76, 1,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,247,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +104,249,158, 23, 1, 0, 0, 0, 40,246,158, 23, 1, 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,252, 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, +104,249,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8,251,158, 23, 1, 0, 0, 0,200,247,158, 23, 1, 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,252, 76, 1, 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, 8,251,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +168,252,158, 23, 1, 0, 0, 0,104,249,158, 23, 1, 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,252, 76, 1, 0, 0, 20, 0, 0, 0, 4, 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, +168,252,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,251,158, 23, 1, 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,170,252, 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, 72,254,158, 23, 1, 0, 0, 0,159, 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, 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, 68, 65, 84, 65,160, 0, 0, 0, +136,255,158, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 12,159, 23, 1, 0, 0, 0, 8,231,158, 23, 1, 0, 0, 0, + 8,212,158, 23, 1, 0, 0, 0,168,211,158, 23, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0,104,212,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, 1, 1, 23, 3,172, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 11,159, 23, 1, 0, 0, 0, 72, 11,159, 23, 1, 0, 0, 0, +104, 0,159, 23, 1, 0, 0, 0, 40, 6,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,216, 1,159, 23, 1, 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,192, 69, 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, 22, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 23, 3, 26, 0, 23, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 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, 23, 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, 1,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 72, 3,159, 23, 1, 0, 0, 0,104, 0,159, 23, 1, 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, 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,146, 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, 72, 3,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,184, 4,159, 23, 1, 0, 0, 0,216, 1,159, 23, 1, 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, 1, 3, 0, 0, 23, 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,184, 4,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 40, 6,159, 23, 1, 0, 0, 0, 72, 3,159, 23, 1, 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, 23, 6, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0,171, 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, 40, 6,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 4,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 3,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7,159, 23, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,152, 7,159, 23, 1, 0, 0, 0, +153, 0, 0, 0, 1, 0, 0, 0, 36,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,171, 98, 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, 3, 6,158, 63, 92,224,143,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,132,167,141, 63, +180,164, 28, 63,149, 84, 28, 63, 0,127,159,188,126,242, 74, 64, 8,108,228,190, 50,247,227,190,221,212, 27,191, 39,197,170,191, +216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62, 12,250,206, 62, 0,247,196,187, 0, 0,150,180,203,132,183,189, 61,175,180, 61, +245,110,129, 62, 0, 0,120, 51,211,120, 21,194,144, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193, +157,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, 3, 6,158, 63, 92,224,143,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,132,167,141, 63, +180,164, 28, 63,149, 84, 28, 63, 0,127,159,188,126,242, 74, 64, 8,108,228,190, 50,247,227,190,221,212, 27,191, 39,197,170,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,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,162, 30,184, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 72, 11,159, 23, 1, 0, 0, 0, +154, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 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, 16, 0, 0, 0, 7, 0, 10, 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, 68, 65, 84, 65,160, 0, 0, 0,216, 12,159, 23, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 24, 18,159, 23, 1, 0, 0, 0,136,255,158, 23, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0, + 8,209,158, 23, 1, 0, 0, 0,136,210,158, 23, 1, 0, 0, 0, 72,211,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 6, 0, 0,173, 1, 0, 0, 69, 4, 0, 0, 16, 16, 24, 6,153, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 16,159, 23, 1, 0, 0, 0,152, 16,159, 23, 1, 0, 0, 0,184, 13,159, 23, 1, 0, 0, 0, + 40, 15,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 13,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 40, 15,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 41, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,195, 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, 6, 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, 4, 10, 0, 24, 6, 26, 0, 24, 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, 23, 6, 0, 0,173, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 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, 40, 15,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184, 13,159, 23, 1, 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,240,130,178,193, 24,148, 5, 68, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,126, 2, 0, 0, + 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,126, 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, 24, 6,127, 2, 7, 6,109, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 6, 0, 0,199, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6,127, 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,152, 16,159, 23, 1, 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, + 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, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,246, 98, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 18,159, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 12,159, 23, 1, 0, 0, 0, +136,207,158, 23, 1, 0, 0, 0,232,210,158, 23, 1, 0, 0, 0,168,211,158, 23, 1, 0, 0, 0, 8,212,158, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, 6, 6, 0, 3,172, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,218,105, 3, 1, 0, 0, 0, 56,218,105, 3, 1, 0, 0, 0, +248, 18,159, 23, 1, 0, 0, 0,216, 21,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,104, 20,159, 23, 1, 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, 64, 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,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 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,255, 2, 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, 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,104, 20,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,216, 21,159, 23, 1, 0, 0, 0,248, 18,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,171, 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,216, 21,159, 23, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 20,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,146,190, 0,128,164, 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, 3, 0, 0, + 0, 0, 0, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 56,218,105, 3, 1, 0, 0, 0, +164, 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,216, 0, 0, 0,200, 23,159, 23, 1, 0, 0, 0, +190, 0, 0, 0, 1, 0, 0, 0, 88,161, 70, 27, 1, 0, 0, 0,104,206,158, 23, 1, 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, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0, 72, 28,159, 23, 1, 0, 0, 0, +168, 28,159, 23, 1, 0, 0, 0,200, 34,159, 23, 1, 0, 0, 0, 56, 35,159, 23, 1, 0, 0, 0,136,122, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 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, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,105, 44, 44, 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, 32, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72, 25,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 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, 25,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,168, 25,159, 23, 1, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 25,159, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 8, 26,159, 23, 1, 0, 0, 0, 72, 25,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +156, 5, 88, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 26,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +104, 26,159, 23, 1, 0, 0, 0,168, 25,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 5, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200, 26,159, 23, 1, 0, 0, 0, + 8, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +200, 26,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,156, 5, 61, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,136, 27,159, 23, 1, 0, 0, 0,200, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +116, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 27,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +232, 27,159, 23, 1, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 4, 61, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,232, 27,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72, 28,159, 23, 1, 0, 0, 0, +136, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 72, 28,159, 23, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 27,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,116, 4,172, 1, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 28,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 24, 29,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 25,159, 23, 1, 0, 0, 0, +168, 25,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 29,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,136, 29,159, 23, 1, 0, 0, 0,168, 28,159, 23, 1, 0, 0, 0, 72, 25,159, 23, 1, 0, 0, 0, +104, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 29,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,248, 29,159, 23, 1, 0, 0, 0, 24, 29,159, 23, 1, 0, 0, 0,168, 25,159, 23, 1, 0, 0, 0, +200, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 29,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,104, 30,159, 23, 1, 0, 0, 0,136, 29,159, 23, 1, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, +200, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 30,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,216, 30,159, 23, 1, 0, 0, 0,248, 29,159, 23, 1, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0, + 40, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 30,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 72, 31,159, 23, 1, 0, 0, 0,104, 30,159, 23, 1, 0, 0, 0, 8, 26,159, 23, 1, 0, 0, 0, + 40, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 31,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,184, 31,159, 23, 1, 0, 0, 0,216, 30,159, 23, 1, 0, 0, 0,200, 26,159, 23, 1, 0, 0, 0, +136, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 31,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 40, 32,159, 23, 1, 0, 0, 0, 72, 31,159, 23, 1, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0, +232, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 32,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,152, 32,159, 23, 1, 0, 0, 0,184, 31,159, 23, 1, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, +232, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 32,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 8, 33,159, 23, 1, 0, 0, 0, 40, 32,159, 23, 1, 0, 0, 0,136, 27,159, 23, 1, 0, 0, 0, + 72, 28,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 33,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,120, 33,159, 23, 1, 0, 0, 0,152, 32,159, 23, 1, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0, + 72, 28,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 33,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,232, 33,159, 23, 1, 0, 0, 0, 8, 33,159, 23, 1, 0, 0, 0,232, 27,159, 23, 1, 0, 0, 0, + 72, 28,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 33,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 88, 34,159, 23, 1, 0, 0, 0,120, 33,159, 23, 1, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, +136, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 34,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,200, 34,159, 23, 1, 0, 0, 0,232, 33,159, 23, 1, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0, +136, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 34,159, 23, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 34,159, 23, 1, 0, 0, 0, 8, 26,159, 23, 1, 0, 0, 0, +200, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56, 35,159, 23, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,248, 38,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, + 72, 25,159, 23, 1, 0, 0, 0,168, 25,159, 23, 1, 0, 0, 0,200, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,156, 5, 0, 0, 62, 3, 0, 0, 88, 3, 0, 0, 7, 7,157, 5, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, + 88,216, 82, 2, 1, 0, 0, 0, 56,192,159, 23, 1, 0, 0, 0, 56,192,159, 23, 1, 0, 0, 0, 24, 36,159, 23, 1, 0, 0, 0, +136, 37,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 4,150, 23, 1, 0, 0, 0, +200, 5,150, 23, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 36,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +136, 37,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,150, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,160,179, 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,156, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,157, 5, 26, 0,157, 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,156, 5, 0, 0, 62, 3, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +157, 5, 26, 0, 2, 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, + 88,218, 82, 2, 1, 0, 0, 0, 40, 6, 55, 23, 1, 0, 0, 0, 40, 6, 55, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184, 6,150, 23, 1, 0, 0, 0, 40, 93,164, 19, 1, 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, 37,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 36,159, 23, 1, 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, 88, 3, 0, 0, 88, 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, 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, +104,217, 82, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 38,159, 23, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +200, 53, 70, 27, 1, 0, 0, 0, 56, 35,159, 23, 1, 0, 0, 0, 40, 27,159, 23, 1, 0, 0, 0,136, 27,159, 23, 1, 0, 0, 0, +200, 26,159, 23, 1, 0, 0, 0, 8, 26,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,156, 5, 0, 0, + 0, 0, 0, 0, 60, 3, 0, 0, 4, 4, 40, 1, 61, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8,212, 82, 2, 1, 0, 0, 0, +120, 94,157, 23, 1, 0, 0, 0,232, 63,157, 23, 1, 0, 0, 0,216, 39,159, 23, 1, 0, 0, 0, 72, 41,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 93,164, 19, 1, 0, 0, 0,248, 94,164, 19, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,216, 39,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 41,159, 23, 1, 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,148, 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, 39, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 40, 1, + 26, 0, 40, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,156, 5, 0, 0, + 35, 3, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 26, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,215, 82, 2, 1, 0, 0, 0, + 88,102, 55, 23, 1, 0, 0, 0, 88,102, 55, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120, 6,167, 19, 1, 0, 0, 0,232, 8,167, 19, 1, 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, 41,159, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216, 39,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, 0, 0, 77,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, + 0,192, 72,196, 0, 0, 0, 0, 43, 1, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 0, 0, 34, 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, 0, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 40, 1, + 35, 3, 40, 1, 35, 3, 0, 0, 88,142,157, 23, 1, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0,117, 4, 0, 0,156, 5, 0, 0, + 0, 0, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 35, 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, 24,213, 82, 2, 1, 0, 0, 0, + 56,211, 55, 23, 1, 0, 0, 0,232,244, 53, 23, 1, 0, 0, 0,184, 42,159, 23, 1, 0, 0, 0,104, 46, 70, 27, 1, 0, 0, 0, + 40, 10,167, 19, 1, 0, 0, 0,152, 12,167, 19, 1, 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, 42,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 44,159, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,214, 82, 2, 1, 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, 40, 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, 88, 44,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248, 45,159, 23, 1, 0, 0, 0,184, 42,159, 23, 1, 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,110,255, 40, 1, 86, 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,248, 45,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 47,159, 23, 1, 0, 0, 0, + 88, 44,159, 23, 1, 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, 43, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 47,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56, 49,159, 23, 1, 0, 0, 0,248, 45,159, 23, 1, 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, 57,254, 40, 1,203, 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, 56, 49,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 50,159, 23, 1, 0, 0, 0, +152, 47,159, 23, 1, 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, 43, 1, 58, 0, + 20, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 50,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120, 52,159, 23, 1, 0, 0, 0, 56, 49,159, 23, 1, 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,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, 34,254, 43, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 52,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 54,159, 23, 1, 0, 0, 0, +216, 50,159, 23, 1, 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, 43, 1,102, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 54,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184, 55,159, 23, 1, 0, 0, 0,120, 52,159, 23, 1, 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,135,253, 40, 1,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 55,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 57,159, 23, 1, 0, 0, 0, + 24, 54,159, 23, 1, 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,252, 43, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248, 58,159, 23, 1, 0, 0, 0,184, 55,159, 23, 1, 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,135,253, 48, 1, 0, 0, 0, 0, 0, 0, 4, 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, 58,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 60,159, 23, 1, 0, 0, 0, + 88, 57,159, 23, 1, 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,108,252, 40, 1, 3, 1, + 20, 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,152, 60,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56, 62,159, 23, 1, 0, 0, 0,248, 58,159, 23, 1, 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,170,252, 43, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 62,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 63,159, 23, 1, 0, 0, 0, +152, 60,159, 23, 1, 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, 66,255, 43, 1,154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 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, 63,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120, 65,159, 23, 1, 0, 0, 0, 56, 62,159, 23, 1, 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,102,254, 7, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 65,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 67,159, 23, 1, 0, 0, 0, +216, 63,159, 23, 1, 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, 42,253, 7, 1, 36, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 67,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184, 68,159, 23, 1, 0, 0, 0,120, 65,159, 23, 1, 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, 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, 18,253, 7, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 70,159, 23, 1, 0, 0, 0, + 24, 67,159, 23, 1, 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, 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, 87,254, 7, 1,186, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0, 88, 70,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248, 71,159, 23, 1, 0, 0, 0,184, 68,159, 23, 1, 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,109, 97,103,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,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, 73,109, 97,103,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, 64,253, 7, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 71,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 73,159, 23, 1, 0, 0, 0, + 88, 70,159, 23, 1, 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,109, 97,103,101, 95,115, 97,109,112,108,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,105,109, 97,103,101, 95,115, 97,109,112,108,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, 73,109, 97,103,101, 32, 83, 97, +109,112,108,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, 84,252, 7, 1,212, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 73,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56, 75,159, 23, 1, 0, 0, 0,248, 71,159, 23, 1, 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,109, 97,103,101, 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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,101, 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, 73,109, 97,103,101, 32, 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,251, 7, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 76,159, 23, 1, 0, 0, 0, +152, 73,159, 23, 1, 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, 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, 63,254, 7, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 76,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120, 78,159, 23, 1, 0, 0, 0, 56, 75,159, 23, 1, 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,108,111,117,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99,108,111,117,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, 67,108,111,117,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, 0, 0, 0, 0, 0, 0, 0, 0,161,253, 7, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 78,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 80,159, 23, 1, 0, 0, 0, +216, 76,159, 23, 1, 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,119,111,111,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,119,111,111,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, 87,111,111,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,139,253, 7, 1,180, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184, 81,159, 23, 1, 0, 0, 0,120, 78,159, 23, 1, 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,108,117,103,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,108,117,103,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, 80,108,117,103,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, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 7, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 81,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 83,159, 23, 1, 0, 0, 0, + 24, 80,159, 23, 1, 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,118,111,114,111,110,111,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,118,111,114,111,110,111,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, 86,111,114,111,110,111,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,253, 7, 1,196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248, 84,159, 23, 1, 0, 0, 0,184, 81,159, 23, 1, 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,111,105,110,116,100,101,110,115,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,111,105,110,116,100,101,110,115,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, 80,111,105,110,116, 32, 68,101,110,115,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,140,253, 7, 1,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 86,159, 23, 1, 0, 0, 0, + 88, 83,159, 23, 1, 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,111,105,110,116,100,101,110,115,105,116,121, 95,116,117,114, 98,117,108,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,112,111,105,110,116,100,101,110,115,105,116,121, 95,116,117,114, 98,117,108,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, 84,117,114, 98,117,108,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, 14,253, 7, 1,102, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 86,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56, 88,159, 23, 1, 0, 0, 0,248, 84,159, 23, 1, 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,117,115,103,114, 97,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109,117,115,103,114, 97,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, 77,117,115,103,114, 97,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,139,253, 7, 1,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 89,159, 23, 1, 0, 0, 0, +152, 86,159, 23, 1, 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,114, 98,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,109, 97,114, 98,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, 77, 97,114, 98,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, 0, 0, 0, 0, 0, 0, 0,136,253, 7, 1,183, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 89,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120, 91,159, 23, 1, 0, 0, 0, 56, 88,159, 23, 1, 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,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 91,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 93,159, 23, 1, 0, 0, 0, +216, 89,159, 23, 1, 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,100,105,115,116,111,114,116,101,100,110,111,105,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, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,100,105,115,116,111,114,116,101,100,110,111,105,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, 68,105,115,116,111,114,116,101, +100, 32, 78,111,105,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,211,253, 7, 1,108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 93,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184, 94,159, 23, 1, 0, 0, 0,120, 91,159, 23, 1, 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, 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, 2,254, 7, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 94,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 96,159, 23, 1, 0, 0, 0, + 24, 93,159, 23, 1, 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,115,116,117, 99, 99,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, 0, 84, 69, 88, 84, 85, 82, 69, 95, + 80, 84, 95,115,116,117, 99, 99,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, 0, 83,116,117, 99, 99,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,183,253, 7, 1,136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248, 97,159, 23, 1, 0, 0, 0,184, 94,159, 23, 1, 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,111,100,105,102,105,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, 68, 65, 84, 65, 95, 80, 84, 95,109,111,100,105,102,105,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, 77,111,100,105,102,105,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,243,254, 40, 1,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 68, 65, 84, 65, 88, 1, 0, 0,248, 97,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 99,159, 23, 1, 0, 0, 0, + 88, 96,159, 23, 1, 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, 40, 1, 36, 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,152, 99,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,101,159, 23, 1, 0, 0, 0,248, 97,159, 23, 1, 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,176,253, 40, 1, 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, 56,101,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,102,159, 23, 1, 0, 0, 0, +152, 99,159, 23, 1, 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, 78,255, 43, 1, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,102,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,104,159, 23, 1, 0, 0, 0, 56,101,159, 23, 1, 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,101,116,116,105,110,103,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, 68, 65, 84, 65, 95, 80, 84, 95,115,101,116,116,105,110,103,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,101,116,116,105,110,103,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, 18,255, 43, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,106,159, 23, 1, 0, 0, 0, +216,102,159, 23, 1, 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,230,254, 40, 1, 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, 24,106,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,107,159, 23, 1, 0, 0, 0,120,104,159, 23, 1, 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,130,254, 40, 1, 76, 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,184,107,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,109,159, 23, 1, 0, 0, 0, + 24,106,159, 23, 1, 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, 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, 37,254, 40, 1, 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, 88,109,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,110,159, 23, 1, 0, 0, 0,184,107,159, 23, 1, 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,200,253, 40, 1, 69, 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,248,110,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,112,159, 23, 1, 0, 0, 0, + 88,109,159, 23, 1, 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,116,101,120,116, 95,111, 98,106,101, 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, 79, 66, 74, 69, 67, 84, 95, 80, + 84, 95, 99,111,110,116,101,120,116, 95,111, 98,106,101, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 40, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,112,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,114,159, 23, 1, 0, 0, 0,248,110,159, 23, 1, 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,116,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,116,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,255, 40, 1,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,114,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,115,159, 23, 1, 0, 0, 0, +152,112,159, 23, 1, 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,100,101,108,116, 97, 95,116,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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,100,101,108,116, 97, 95,116,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,108,116, 97, 32, 84,114, + 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,255, 40, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,216,115,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,117,159, 23, 1, 0, 0, 0, 56,114,159, 23, 1, 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,116,114, 97,110,115,102,111,114,109, 95,108,111, 99,107, +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, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,108,111, 99,107, +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, 84,114, 97,110,115,102,111,114,109, 32, 76,111, 99,107,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,247,254, 40, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,117,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,119,159, 23, 1, 0, 0, 0, +216,115,159, 23, 1, 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,114,101,108, 97,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, 66, 74, 69, 67, 84, 95, 80, + 84, 95,114,101,108, 97,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, 82,101,108, 97,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,125,254, 40, 1, 98, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,119,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,120,159, 23, 1, 0, 0, 0,120,117,159, 23, 1, 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,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, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 65,254, 40, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 68, 65, 84, 65, 88, 1, 0, 0,184,120,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,122,159, 23, 1, 0, 0, 0, + 24,119,159, 23, 1, 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,100,105,115,112,108, 97,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, 79, 66, 74, 69, 67, 84, 95, 80, + 84, 95,100,105,115,112,108, 97,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, 68,105,115,112,108, 97,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,150,253, 40, 1,147, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,122,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,123,159, 23, 1, 0, 0, 0,184,120,159, 23, 1, 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,100,117,112,108,105, 99, 97,116,105,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, 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,100,117,112,108,105, 99, 97,116,105,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,117,112,108,105, 99, 97,116,105,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,253, 40, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 68, 65, 84, 65, 88, 1, 0, 0,248,123,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,125,159, 23, 1, 0, 0, 0, + 88,122,159, 23, 1, 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, 97,110,105,109, 97,116,105,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, 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, 97,110,105,109, 97,116,105,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,105,109, 97,116,105,111, +110, 32, 72, 97, 99,107,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, 66,253, 40, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,125,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,127,159, 23, 1, 0, 0, 0,248,123,159, 23, 1, 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,109,111,116,105,111,110, 95,112, 97,116,104,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, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95,109,111,116,105,111,110, 95,112, 97,116,104,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, 77,111,116,105,111,110, 32, 80, 97,116,104,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, 42,253, 40, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,127,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,128,159, 23, 1, 0, 0, 0, +152,125,159, 23, 1, 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,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, 79, 66, 74, 69, 67, 84, 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, 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, 18,253, 40, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,130,159, 23, 1, 0, 0, 0, 56,127,159, 23, 1, 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, 40, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,130,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,132,159, 23, 1, 0, 0, 0, +216,128,159, 23, 1, 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, 40, 1, 83, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,132,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,133,159, 23, 1, 0, 0, 0,120,130,159, 23, 1, 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, 40, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 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,133,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,135,159, 23, 1, 0, 0, 0, + 24,132,159, 23, 1, 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, 40, 1, 36, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,135,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,136,159, 23, 1, 0, 0, 0,184,133,159, 23, 1, 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, 40, 1, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,136,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,138,159, 23, 1, 0, 0, 0, + 88,135,159, 23, 1, 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, 3,254, 40, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,138,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,140,159, 23, 1, 0, 0, 0,248,136,159, 23, 1, 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, 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, 94,255, 43, 1,126, 0, 0, 0, 0, 0, 0, 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, 56,140,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,141,159, 23, 1, 0, 0, 0, +152,138,159, 23, 1, 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, 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,190,254, 43, 1,136, 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,216,141,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,143,159, 23, 1, 0, 0, 0, 56,140,159, 23, 1, 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, 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,239,254, 43, 1, 63, 0, 0, 0, 0, 0, 0, 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,120,143,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,145,159, 23, 1, 0, 0, 0, +216,141,159, 23, 1, 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, 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,132,254, 43, 1, 83, 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, 24,145,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,146,159, 23, 1, 0, 0, 0,120,143,159, 23, 1, 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, 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, 28,254, 43, 1, 80, 0, 0, 0, 0, 0, 0, 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,184,146,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,148,159, 23, 1, 0, 0, 0, + 24,145,159, 23, 1, 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, 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, 4,254, 43, 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, 88,148,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,149,159, 23, 1, 0, 0, 0,184,146,159, 23, 1, 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, 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,236,253, 43, 1, 0, 0, 20, 0, 0, 0, 4, 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,248,149,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,151,159, 23, 1, 0, 0, 0, + 88,148,159, 23, 1, 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, 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,212,253, 43, 1, 0, 0, + 20, 0, 0, 0, 4, 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,152,151,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,153,159, 23, 1, 0, 0, 0,248,149,159, 23, 1, 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, 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,188,253, 43, 1, 0, 0, 0, 0, 0, 0, 4, 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, 56,153,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,154,159, 23, 1, 0, 0, 0, +152,151,159, 23, 1, 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, 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,212,252, 43, 1,208, 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,216,154,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,156,159, 23, 1, 0, 0, 0, 56,153,159, 23, 1, 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, 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,188,252, 43, 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,120,156,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,158,159, 23, 1, 0, 0, 0, +216,154,159, 23, 1, 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, 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,164,252, 43, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,158,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,159,159, 23, 1, 0, 0, 0,120,156,159, 23, 1, 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, 99, 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, 68, 65, 84, 65, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95, 99, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,159,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,161,159, 23, 1, 0, 0, 0, + 24,158,159, 23, 1, 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, 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, 68, 65, 84, 65, 95, 80, 84, 95, + 99, 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, 76,101,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, 0, 0, 0,215,254, 40, 1,201, 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, 88,161,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,162,159, 23, 1, 0, 0, 0,184,159,159, 23, 1, 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, 97,109,101,114, 97, 95,100,105,115,112,108, 97,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, 68, 65, 84, 65, 95, 80, 84, 95, 99, 97,109,101,114, 97, 95,100,105,115,112,108, 97,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, 68,105,115,112,108, 97,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, 89,254, 40, 1,102, 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,248,162,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,164,159, 23, 1, 0, 0, 0, + 88,161,159, 23, 1, 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, 99, 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, 68, 65, 84, 65, 95, 80, 84, 95, + 99,117,115,116,111,109, 95,112,114,111,112,115, 95, 99, 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, 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, 65,254, 40, 1, 0, 0, + 0, 0, 0, 0, 4, 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,152,164,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,166,159, 23, 1, 0, 0, 0,248,162,159, 23, 1, 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,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, 77, 65, 84, 69, 82, 73, 65, 76, 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, 80,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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,253, 43, 1, 80, 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, 56,166,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,167,159, 23, 1, 0, 0, 0, +152,164,159, 23, 1, 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, 95,103, 97,109,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, 77, 65, 84, 69, 82, 73, 65, 76, + 95, 80, 84, 95,116,114, 97,110,115,112, 95,103, 97,109,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, 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, 60,252, 43, 1, 0, 0, + 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,167,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,169,159, 23, 1, 0, 0, 0, 56,166,159, 23, 1, 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, 40, 1, 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,120,169,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,171,159, 23, 1, 0, 0, 0, +216,167,159, 23, 1, 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, 43, 1,136, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,171,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,172,159, 23, 1, 0, 0, 0,120,169,159, 23, 1, 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, 43, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,172,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,174,159, 23, 1, 0, 0, 0, + 24,171,159, 23, 1, 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,140,253, 43, 1,177, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,174,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,175,159, 23, 1, 0, 0, 0,184,172,159, 23, 1, 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, 64,255, 40, 1, 36, 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,248,175,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,177,159, 23, 1, 0, 0, 0, + 88,174,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, + 95, 99,111,110,116,101,120,116, 95,119,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, 87, 79, 82, 76, 68, 95, 80, 84, + 95, 99,111,110,116,101,120,116, 95,119,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 40, 1, 36, 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, 68, 65, 84, 65, 88, 1, 0, 0,152,177,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 56,179,159, 23, 1, 0, 0, 0,248,175,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 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, 87, 79, 82, 76, 68, 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, 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, 43, 1,136, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,179,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216,180,159, 23, 1, 0, 0, 0, +152,177,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, + 95,119,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, 87, 79, 82, 76, 68, 95, 80, 84, + 95,119,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, 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,175,254, 43, 1, 81, 0, + 0, 0, 0, 0, 0, 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,216,180,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,120,182,159, 23, 1, 0, 0, 0, 56,179,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, 95, 97,109, 98,105,101,110,116, 95,111, 99, 99,108,117,115,105, +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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, 95, 97,109, 98,105,101,110,116, 95,111, 99, 99,108,117,115,105, +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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,109, 98,105,101,110,116, 32, 79, 99, 99,108,117,115,105,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,254, 43, 1, 36, 0, 20, 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,120,182,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,184,159, 23, 1, 0, 0, 0, +216,180,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, + 95,101,110,118,105,114,111,110,109,101,110,116, 95,108,105,103,104,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, 87, 79, 82, 76, 68, 95, 80, 84, + 95,101,110,118,105,114,111,110,109,101,110,116, 95,108,105,103,104,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, 69,110,118,105,114,111,110,109, +101,110,116, 32, 76,105,103,104,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, 55,254, 43, 1, 36, 0, + 20, 0, 0, 0, 0, 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, 24,184,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,184,185,159, 23, 1, 0, 0, 0,120,182,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, 95,105,110,100,105,114,101, 99,116, 95,108,105,103,104,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, 87, 79, 82, 76, 68, 95, 80, 84, 95,105,110,100,105,114,101, 99,116, 95,108,105,103,104,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, 73,110,100,105,114,101, 99,116, 32, 76,105,103,104,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,226,253, 43, 1, 61, 0, 20, 0, 0, 0, 0, 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,184,185,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88,187,159, 23, 1, 0, 0, 0, + 24,184,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, + 95,103, 97,116,104,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, 87, 79, 82, 76, 68, 95, 80, 84, + 95,103, 97,116,104,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, 71, 97,116,104,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, 75,253, 43, 1,127, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,187,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,248,188,159, 23, 1, 0, 0, 0,184,185,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, 95,109,105,115,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, 87, 79, 82, 76, 68, 95, 80, 84, 95,109,105,115,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, 77,105,115,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, 51,253, 43, 1, 0, 0, 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,248,188,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152,190,159, 23, 1, 0, 0, 0, + 88,187,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 95, 80, 84, + 95,115,116, 97,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, 87, 79, 82, 76, 68, 95, 80, 84, + 95,115,116, 97,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, 83,116, 97,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, 0, 27,253, 43, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 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,152,190,159, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,104, 57,157, 23, 1, 0, 0, 0,248,188,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 82, 76, 68, 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, 87, 79, 82, 76, 68, 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, 3,253, 43, 1, 0, 0, 0, 0, 0, 0, 4, 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,104, 57,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8, 59,157, 23, 1, 0, 0, 0, +152,190,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 71, 68, 95, 80, 84, 95,113, +117, 97,108,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, 67, 71, 68, 95, 80, 84, 95,113, +117, 97,108,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, 67, 71, 68, 0,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, 63,255, 43, 1,133, 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, 8, 59,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,168, 60,157, 23, 1, 0, 0, 0,104, 57,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 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, 67,121, 99,108,101,115, 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, 67,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, 0, 0,217,252, 43, 1,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 62,157, 23, 1, 0, 0, 0, + 8, 59,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 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, 0, 0, 67,121, 99,108,101,115, 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, 0, 0, 67,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, 0, 0, 9,255, 43, 1, 61, 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, 72, 62,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,152, 76,157, 23, 1, 0, 0, 0,168, 60,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, 84, 95,119,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, 67,121, 99,108,101,115, 95, 80, 84, 95,119,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, 83,117,114,102, 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, 0, 0, 0, 0, 88,255, 43, 1, 72, 0, 0, 0, 0, 0, 0, 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,152, 76,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56, 78,157, 23, 1, 0, 0, 0, + 72, 62,157, 23, 1, 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, 40, 1, 36, 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, 56, 78,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,216, 79,157, 23, 1, 0, 0, 0,152, 76,157, 23, 1, 0, 0, 0, 88,227, 24, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 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, 67,121, 99,108,101,115, 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, 83,117,114,102, 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, 0, 0, 0, 0,119,255, 40, 1,101, 0, 0, 0, 0, 0, 0, 0, 6, 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, 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,216, 79,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,120, 81,157, 23, 1, 0, 0, 0, + 56, 78,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, + 84, 95,115,117,114,102, 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, 67,121, 99,108,101,115, 95, 80, + 84, 95,115,117,114,102, 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, 83,117,114,102, 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, 0, 0, 0, 0,204,254, 43, 1,147, 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, 68, 65, 84, 65, 88, 1, 0, 0,120, 81,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 24, 83,157, 23, 1, 0, 0, 0,216, 79,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, 84, 95,110,111,114,109, 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, 67,121, 99,108,101,115, 95, 80, 84, 95,110,111,114,109, 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, 78,111,114,109, 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,180,254, 43, 1, 36, 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, 24, 83,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184, 84,157, 23, 1, 0, 0, 0, +120, 81,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, + 84, 95,118,111,108,117,109,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, 67,121, 99,108,101,115, 95, 80, + 84, 95,118,111,108,117,109,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, 86,111,108,117,109,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,144,254, 43, 1, 36, 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,184, 84,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 88, 86,157, 23, 1, 0, 0, 0, 24, 83,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, 84, 95,115,101,116,116,105,110,103,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, 67,121, 99,108,101,115, 95, 80, 84, 95,115,101,116,116,105,110,103,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,101,116,116,105,110,103,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, 96,254, 43, 1, 0, 0, 0, 0, 0, 0, 4, 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, 88, 86,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,248, 87,157, 23, 1, 0, 0, 0, +184, 84,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, + 84, 95,115,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, 67,121, 99,108,101,115, 95, 80, + 84, 95,115,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, 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, 0, 0, 0, 0, 0,120,254, 43, 1, 0, 0, + 0, 0, 0, 0, 4, 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, 87,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,152, 89,157, 23, 1, 0, 0, 0, 88, 86,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 82,101,110,100,101,114, 95, 80, 84, 95,105,110,116,101,103,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, 67,121, 99,108,101,115, 82,101,110,100,101,114, 95, 80, 84, 95,105,110,116,101,103,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, 73,110,116,101,103,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, 28,255, 40, 1, 58, 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,152, 89,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56, 91,157, 23, 1, 0, 0, 0, +248, 87,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 87,111, +114,108,100, 95, 80, 84, 95,115,117,114,102, 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, 67,121, 99,108,101,115, 87,111, +114,108,100, 95, 80, 84, 95,115,117,114,102, 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, 83,117,114,102, 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, 0, 0, 0, 0, 63,255, 40, 1, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 91,157, 23, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,216, 92,157, 23, 1, 0, 0, 0,152, 89,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 87,111,114,108,100, 95, 80, 84, 95,118,111,108,117,109,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, 67,121, 99,108,101,115, 87,111,114,108,100, 95, 80, 84, 95,118,111,108,117,109,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, 86,111,108,117,109,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, 3,255, 40, 1, 36, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 92,157, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8, 35, 70, 27, 1, 0, 0, 0, + 56, 91,157, 23, 1, 0, 0, 0, 56,239, 24, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 77, 97, +116,101,114,105, 97,108, 95, 80, 84, 95,115,117,114,102, 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, 67,121, 99,108,101,115, 77, 97, +116,101,114,105, 97,108, 95, 80, 84, 95,115,117,114,102, 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, 83,117,114,102, 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, 0, 0, 0, 0,204,254, 40, 1,147, 0, + 0, 0, 0, 0, 0, 0, 6, 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, 8, 35, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,168, 36, 70, 27, 1, 0, 0, 0,216, 92,157, 23, 1, 0, 0, 0,152,241, 24, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 77, 97,116,101,114,105, 97,108, 95, 80, 84, 95,118,111,108,117,109,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, 67,121, 99,108,101,115, 77, 97,116,101,114,105, 97,108, 95, 80, 84, 95,118,111,108,117,109,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, 86,111,108,117,109,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,144,254, 40, 1, 36, 0, 0, 0, 0, 0, 4, 0, 6, 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, 36, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 38, 70, 27, 1, 0, 0, 0, + 8, 35, 70, 27, 1, 0, 0, 0,248,243, 24, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 77, 97, +116,101,114,105, 97,108, 95, 80, 84, 95,100,105,115,112,108, 97, 99,101,109,101,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, 67,121, 99,108,101,115, 77, 97, +116,101,114,105, 97,108, 95, 80, 84, 95,100,105,115,112,108, 97, 99,101,109,101,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, 68,105,115,112,108, 97, 99,101, +109,101,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,254, 40, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 7, 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, 38, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,232, 39, 70, 27, 1, 0, 0, 0,168, 36, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 77, 97,116,101,114,105, 97,108, 95, 80, 84, 95,115,101,116,116,105,110, +103,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, 67,121, 99,108,101,115, 77, 97,116,101,114,105, 97,108, 95, 80, 84, 95,115,101,116,116,105,110, +103,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, 83,101,116,116,105,110,103,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, 96,254, 43, 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,232, 39, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136, 41, 70, 27, 1, 0, 0, 0, + 72, 38, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 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, 67,121, 99,108,101,115, 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,231,253, 40, 1, 58, 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,136, 41, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 40, 43, 70, 27, 1, 0, 0, 0,232, 39, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, 84, 95,109,101,115,104, 95,100,105,115,112,108, 97, 99,101,109, +101,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, 67,121, 99,108,101,115, 95, 80, 84, 95,109,101,115,104, 95,100,105,115,112,108, 97, 99,101,109, +101,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, 68,105,115,112,108, 97, 99,101,109,101,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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,255, 40, 1, 86, 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, 40, 43, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200, 44, 70, 27, 1, 0, 0, 0, +136, 41, 70, 27, 1, 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, 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,115,255, 40, 1,105, 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,200, 44, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,104, 46, 70, 27, 1, 0, 0, 0, 40, 43, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 95, 80, 84, 95, 99, 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, 67,121, 99,108,101,115, 95, 80, 84, 95, 99, 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, 67,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, 0, 0, 5,254, 40, 1, 36, 0, 0, 0, 0, 0, 0, 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,104, 46, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 44, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,121, 99,108,101,115, 76, 97, +109,112, 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, 67,121, 99,108,101,115, 76, 97, +109,112, 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, 83,117,114,102, 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, 0, 0, 0, 0,124,255, 40, 1, 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,248, 0, 0, 0,120, 94,157, 23, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0,232, 63,157, 23, 1, 0, 0, 0, 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, 5, 0, 5, 0, 5, 0, 0, 0, + 2, 0, 1, 0, 0, 0, 16, 0,184,146,157, 23, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 8, 48, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 49, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,209, 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,136, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,209, 68, 0, 0,200, 65, + 0, 0,209, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,137, 6, + 26, 0,137, 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,136, 6, 0, 0, +149, 3, 0, 0,174, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,137, 6, 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,120, 49, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 50, 70, 27, 1, 0, 0, 0, + 8, 48, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 67, 0, 64,101,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 67, + 0, 64,101,196, 0, 0, 0, 0,223, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0,148, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0,148, 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,240, 0, +149, 3,223, 0,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 0, 0, 0, + 0, 0, 0, 0,148, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0,149, 3, 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,232, 50, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 52, 70, 27, 1, 0, 0, 0, +120, 49, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32,179, 68, 0, 0, 0, 0, 0, 0,112, 66, 0, 0, 0, 0, 0, 32,179, 68, + 0, 0, 0, 0, 0, 0,112, 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,152, 5, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0,179, 68, 0, 0,108, 66, + 0, 0,179, 68, 0, 0,108, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,153, 5, + 60, 0,153, 5, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,136, 6, 0, 0, + 89, 3, 0, 0,148, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 5, 60, 0, 0, 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, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 88, 52, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 50, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,175, 68, 0, 0,137,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177, 68, + 0, 64, 86,196, 0, 0, 0, 0,136, 5, 0, 0,153, 5, 0, 0, 0, 0, 0, 0, 88, 3, 0, 0, 0, 0, 0, 0,135, 5, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,135, 5, 0, 0, 0, 0, 0, 0, 88, 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, 2, 0, 0, 2, 0, 3, 3, 2, 0, 0, 4, 6, 0,153, 5, + 89, 3,136, 5, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,136, 6, 0, 0, + 0, 0, 0, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 5, 89, 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,104, 0, 0, 0,232, 63,157, 23, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120, 94,157, 23, 1, 0, 0, 0, 8, 48, 70, 27, 1, 0, 0, 0, 88, 52, 70, 27, 1, 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, 5, 0,255,255,255,255, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,200, 53, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,122, 70, 27, 1, 0, 0, 0, +248, 38,159, 23, 1, 0, 0, 0,232, 24,159, 23, 1, 0, 0, 0,232, 27,159, 23, 1, 0, 0, 0, 72, 28,159, 23, 1, 0, 0, 0, + 40, 27,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, + 1, 1,116, 4,172, 1, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,232,173, 82, 2, 1, 0, 0, 0,136,104, 70, 27, 1, 0, 0, 0, + 56, 4,106, 3, 1, 0, 0, 0,168, 54, 70, 27, 1, 0, 0, 0,104, 99, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104, 13,167, 19, 1, 0, 0, 0,232, 15,167, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +168, 54, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 56, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,192,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,142, 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,115, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,116, 4, 26, 0,116, 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,115, 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,116, 4, 26, 0, 5, 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, 56,184, 82, 2, 1, 0, 0, 0,136, 67, 54, 23, 1, 0, 0, 0, +136, 67, 54, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 16,167, 19, 1, 0, 0, 0, + 24, 20,167, 19, 1, 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, 56, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 83, 70, 27, 1, 0, 0, 0,168, 54, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 67, 0,128, 18,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 18,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 73, 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, 73, 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, 0, 6, 0,160, 0, 74, 2,143, 0, 74, 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, 26, 0, 0, 0,171, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,146, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, +160, 0, 50, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,180, 82, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,136, 57, 70, 27, 1, 0, 0, 0,232, 81, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 57, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 59, 70, 27, 1, 0, 0, 0, 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, 42,254,143, 0,190, 1, 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, 59, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +200, 60, 70, 27, 1, 0, 0, 0,136, 57, 70, 27, 1, 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,211,254,143, 0, 21, 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, +200, 60, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 62, 70, 27, 1, 0, 0, 0, 40, 59, 70, 27, 1, 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, 88,252,143, 0,213, 1, 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,104, 62, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 8, 64, 70, 27, 1, 0, 0, 0,200, 60, 70, 27, 1, 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, 66,254,143, 0,121, 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, 64, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 65, 70, 27, 1, 0, 0, 0,104, 62, 70, 27, 1, 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,164,253,143, 0,231, 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,168, 65, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 72, 67, 70, 27, 1, 0, 0, 0, 8, 64, 70, 27, 1, 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, 96,253,143, 0,133, 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, 67, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 68, 70, 27, 1, 0, 0, 0,168, 65, 70, 27, 1, 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, 55,254,143, 0, 36, 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,232, 68, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +136, 70, 70, 27, 1, 0, 0, 0, 72, 67, 70, 27, 1, 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, 52,253,143, 0,225, 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, +136, 70, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 72, 70, 27, 1, 0, 0, 0,232, 68, 70, 27, 1, 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,145,253,143, 0,132, 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, 40, 72, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +200, 73, 70, 27, 1, 0, 0, 0,136, 70, 70, 27, 1, 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, 39,254,143, 0,124, 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, +200, 73, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 75, 70, 27, 1, 0, 0, 0, 40, 72, 70, 27, 1, 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,181,253,143, 0,190, 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, 75, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 8, 77, 70, 27, 1, 0, 0, 0,200, 73, 70, 27, 1, 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,112,114,111,106,101, 99,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, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,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, + 80,114,111,106,101, 99,116, 32, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,241,252,143, 0, 9, 1, 20, 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, 77, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 78, 70, 27, 1, 0, 0, 0,104, 75, 70, 27, 1, 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,197,253,143, 0,146, 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,168, 78, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 72, 80, 70, 27, 1, 0, 0, 0, 8, 77, 70, 27, 1, 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,105,109, 97,103,101,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, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,105,109, 97,103,101,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, 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,146,253,143, 0, 80, 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, + 72, 80, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 81, 70, 27, 1, 0, 0, 0,168, 78, 70, 27, 1, 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,224,252,143, 0, 8, 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,232, 81, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 80, 70, 27, 1, 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,124,252,143, 0, 76, 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, 40, 1, 0, 0, +136, 83, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 86, 70, 27, 1, 0, 0, 0, 24, 56, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 48,194, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67,161,165, 41,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 41, 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, 41, 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, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 42, 0,143, 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,115, 4, 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, 1, 0, 0, 0, 0, 0, + 0, 0,216, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,181, 82, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 84, 70, 27, 1, 0, 0, 0,248, 84, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 84, 70, 27, 1, 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, 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, 83,104, 97,100,101, 32, 83,109,111,111,116,104, 0,100,101, 0, +108,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,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,152, 86, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +104, 99, 70, 27, 1, 0, 0, 0,136, 83, 70, 27, 1, 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,128, 18,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 73, 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, 73, 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, 0, 6, 0,180, 0, 74, 2,163, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +115, 4, 0, 0,115, 4, 0, 0, 26, 0, 0, 0,171, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232,175, 82, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 88, 70, 27, 1, 0, 0, 0, +200, 97, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +168, 89, 70, 27, 1, 0, 0, 0, 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,111, 98,106,101, 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, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 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, + 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 89, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 91, 70, 27, 1, 0, 0, 0, 8, 88, 70, 27, 1, 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,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, 86, 73, 69, 87, 51, 68, 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, 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, 18,254,163, 0, 80, 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, 91, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +232, 92, 70, 27, 1, 0, 0, 0,168, 89, 70, 27, 1, 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,118,105,101,119, 51,100, 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, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 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, + 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,212,252,163, 0, 38, 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, +232, 92, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136, 94, 70, 27, 1, 0, 0, 0, 72, 91, 70, 27, 1, 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,118,105,101,119, 51,100, + 95,110, 97,109,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, + 95,110, 97,109,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, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,252,163, 0, 36, 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, 94, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 40, 96, 70, 27, 1, 0, 0, 0,232, 92, 70, 27, 1, 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,118,105,101,119, 51,100, 95,100,105,115,112,108, 97,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, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,100,105,115,112,108, 97,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, + 68,105,115,112,108, 97,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,128,252,163, 0, 0, 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, + 40, 96, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200, 97, 70, 27, 1, 0, 0, 0,136, 94, 70, 27, 1, 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, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,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, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,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,104,252,163, 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, 97, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 96, 70, 27, 1, 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,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,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,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,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, + 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,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, 80,252,163, 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, 40, 1, 0, 0, +104, 99, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 86, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 4,146, 1, 6, 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,248,174, 82, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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,112,157, 23, 1, 0, 0, 0, +184,111,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,100, 70, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, +216,100, 70, 27, 1, 0, 0, 0,153, 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,233,129, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,217,205, 76,190, 0, 0, 0,128, 13, 98,116, 63,237,235,196,189,210, 81,144, 62, 0, 0, 0, 0, +225,107,152, 62, 39,196,171, 62, 63,206,100,191, 0, 0, 0, 0,169, 77, 13,188,144,231,111, 63,161,160,178, 62, 0, 0, 0, 0, +237,143,212, 61,106,228,221,189,230, 24, 12,193, 0, 0,128, 63, 12, 98,116, 63,225,107,152, 62,160, 77, 13,188, 0, 0, 0, 0, +234,235,196,189, 39,196,171, 62,142,231,111, 63, 0, 0, 0, 0,210, 81,144, 62, 63,206,100,191,161,160,178, 62, 0, 0, 0, 0, +140,243, 22, 64,113, 65,250,192,161, 16, 74, 64, 0, 0,128, 63,159,165,133, 63,103,178,152,190, 76, 83,144,190,210, 81,144,190, +254,181,166, 62,224, 48,133, 63,150,208,100, 63, 63,206,100, 63,241,140, 26,188,215, 6, 58, 64,117,162,178,190,161,160,178,190, +107,125,232, 61, 68, 15,172,190, 30,231, 8, 65,230, 24, 12, 65,149,111, 95, 63, 96, 91,139, 62,184, 49, 1,188, 0, 0,112,179, +125,244,253,188,155,131,221, 61,124,177,154, 62, 0, 0,144,178,216,175, 60,193,106,104, 28, 66,255,147,124,193,130,255,159,192, + 55, 47, 56, 65,202,214, 24,194,142, 1,119, 65, 37, 1,160, 64,150, 80, 70, 63,240,133, 97,189,229,145,148,191, 0, 0, 0, 0, +229,114,195,190,216, 26,167, 63,247, 38,162,190, 0, 0, 0, 0, 97,123,140, 63,231, 98,252, 62, 92,136, 53, 63, 0, 0, 0, 0, + 75,181,253,191, 42,166,252, 62,162,100,253,192, 0, 0,128, 63, 36,232, 88, 63, 8,224, 46,190,106,147,148, 63,229,145,148, 63, +170,197,213,190,143,147,129, 64,161, 40,162, 62,247, 38,162, 62,242,166,153, 63,147,180,195, 63, 55,138, 53,191, 92,136, 53,191, + 38,191, 10,192,185,232,195, 63,205, 0,247, 64,162,100,253, 64,246,221,115, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,246,221,115, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,221,115, 63, 0, 0, 0, 0, +209, 16,232,191, 98,117,149,191,200,200, 95, 63, 0, 0,128, 63,116,239, 79, 63,107, 67, 16,191,164, 29,183,189,148, 67,248,189, +169, 37, 10, 65,222,255,177, 64, 0, 0, 0, 0, 0, 0, 0, 0,165, 61,210, 58, 16,228,153, 61,240,240,211, 61, 84,110, 20,190, + 0, 0,255,255, 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,116,239, 79, 63,107, 67, 16,191,164, 29,183,189,148, 67,248,189, + 1, 0, 0, 0, 0, 0,128, 63, 14, 80,109, 66, 1, 59, 14, 66,170,147,147, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, +136,104, 70, 27, 1, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0,216,111, 70, 27, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 0, 0, 8, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,205,204,204, 61, + 0, 64,156, 69, 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, + 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,106, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,107, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,160,179, 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,156, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,209, 68, 0, 0,200, 65, 0, 0,209, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,157, 5, 26, 0,157, 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,156, 5, 0, 0, 35, 3, 0, 0, 60, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 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, +136,107, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,108, 70, 27, 1, 0, 0, 0, 24,106, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,128, 67, 0, 0, 77,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 67, 0,192, 72,196, 0, 0, 0, 0, +223, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 34, 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, 0, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,240, 0, 35, 3,240, 0, 35, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 34, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 35, 3, 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, +248,108, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,110, 70, 27, 1, 0, 0, 0,136,107, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 32,179, 68, 0, 0, 0, 0, 0, 0,112, 66, 0, 0, 0, 0, 0,160,149, 68, 0, 0, 0, 0, 0, 0,112, 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,172, 4, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0,179, 68, 0, 0,108, 66, 0, 0,179, 68, 0, 0,108, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,173, 4, 60, 0,173, 4, 60, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,156, 5, 0, 0,231, 2, 0, 0, 34, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 4, 60, 0, 0, 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, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +104,110, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,108, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,173, 68, 0,128, 56,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,149, 68, 0, 64, 53,196, 0, 0, 0, 0, +156, 4, 0, 0,173, 4, 0, 0, 0, 0, 0, 0,229, 2, 0, 0, 0, 0, 0, 0,172, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,172, 4, 0, 0, 18, 0, 0, 0,230, 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, 8, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 4, 6, 0,173, 4,231, 2,173, 4,213, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,156, 5, 0, 0, 0, 0, 0, 0,230, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 4,231, 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,104, 0, 0, 0, +216,111, 70, 27, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,104,115, 70, 27, 1, 0, 0, 0,136,104, 70, 27, 1, 0, 0, 0, + 24,106, 70, 27, 1, 0, 0, 0,104,110, 70, 27, 1, 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,255,255,255,255, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +136,112, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,113, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,140, 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, 95, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,197, 68, 0, 0,200, 65, 0,224,197, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 4, 26, 0, 96, 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, 95, 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, 96, 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, +248,113, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,112, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,241, 67, 0, 0,172,195, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,137, 68, 0, 0, 14,196, 0, 0, 0, 0, + 79, 4, 0, 0, 96, 4, 0, 0, 18, 0, 0, 0, 73, 2, 0, 0, 0, 0, 0, 0, 78, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 78, 4, 0, 0, 18, 0, 0, 0, 73, 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, 0, 4, 6, 0, 96, 4, 74, 2, 79, 4, 56, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 4, 0, 0, 26, 0, 0, 0, 99, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 4, 74, 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, +104,115, 70, 27, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 56, 4,106, 3, 1, 0, 0, 0,216,111, 70, 27, 1, 0, 0, 0, +136,112, 70, 27, 1, 0, 0, 0,248,113, 70, 27, 1, 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,120,107,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 16, 0, 0, 0,120,107,166, 19, 1, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, +104, 0, 0, 0,104, 0, 0, 0, 56,252,105, 3, 1, 0, 0, 0, 68, 65, 84, 65,128, 6, 0, 0, 56,252,105, 3, 1, 0, 0, 0, +216, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, + 56,106,106, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, + 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 24,169, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,167, 71, 27, 1, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,116, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 56,118, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,140, 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, 95, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,197, 68, 0, 0,200, 65, 0,224,197, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 96, 4, 26, 0, 96, 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, 95, 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, + 96, 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, 56,118, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +168,119, 70, 27, 1, 0, 0, 0,200,116, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 99, 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, 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,168,119, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 24,121, 70, 27, 1, 0, 0, 0, 56,118, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 95, 4, 0, 0, 26, 0, 0, 0, 99, 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, 7, 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,121, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,119, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0, 24,191, 0, 0,204, 63, 0, 0, 37,191, 0,128,210, 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, 4, 0, 0, 0, 0, 0, 0, 74, 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, 95, 4, 0, 0, 26, 0, 0, 0, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 4, 74, 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, 40, 33, 0, 0, 56, 4,106, 3, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104,115, 70, 27, 1, 0, 0, 0,200,116, 70, 27, 1, 0, 0, 0, 24,121, 70, 27, 1, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0,216,164, 71, 27, 1, 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, 68, 65, 84, 65,160, 0, 0, 0,136,122, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200, 53, 70, 27, 1, 0, 0, 0,232, 27,159, 23, 1, 0, 0, 0,104, 26,159, 23, 1, 0, 0, 0, +136, 27,159, 23, 1, 0, 0, 0, 72, 28,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0, +173, 1, 0, 0, 60, 3, 0, 0, 16, 16,116, 4,144, 1, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,104,204, 82, 2, 1, 0, 0, 0, +248,130, 70, 27, 1, 0, 0, 0,248,159, 70, 27, 1, 0, 0, 0,104,123, 70, 27, 1, 0, 0, 0,136,129, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,113,157, 23, 1, 0, 0, 0,216,114,157, 23, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,104,123, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,124, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 56, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,142, 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,115, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,139, 68, 0, 0,200, 65, + 0,224,139, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,116, 4, + 26, 0,116, 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,115, 4, 0, 0, +173, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 4, 26, 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,104,206, 82, 2, 1, 0, 0, 0, +120,250, 54, 23, 1, 0, 0, 0,120,250, 54, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,115,157, 23, 1, 0, 0, 0, 56,118,157, 23, 1, 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,124, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,129, 70, 27, 1, 0, 0, 0, +104,123, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,155,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0,155,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 53, 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, 0, 6, 0,180, 0, + 54, 1,163, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0,115, 4, 0, 0, +199, 1, 0, 0, 60, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,208, 82, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,126, 70, 27, 1, 0, 0, 0,232,127, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,126, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,127, 70, 27, 1, 0, 0, 0, + 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, 79, 68, 69, 95, 80, 84, 95, +105,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 79, 68, 69, 95, 80, 84, 95, +105,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 99,116,105,118,101, 32, 78, +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, 0, 0, 0, 0, 0, 0,216,255,163, 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, 88, 1, 0, 0,232,127, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,126, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 79, 68, 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, 0, 78, 79, 68, 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, 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,112,255,163, 0, 80, 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, 40, 1, 0, 0,136,129, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216,124, 70, 27, 1, 0, 0, 0,170, 98,175, 67,159,179, 4, 68,193,152, 96, 67,180,182,176, 67, 63,121,159,195,167,253,145, 68, +140, 95, 66, 67, 89,110, 38, 68, 99, 4, 0, 0,116, 4, 0, 0, 18, 0, 0, 0,117, 1, 0, 0, 0, 0, 0, 0, 98, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 98, 4, 0, 0, 18, 0, 0, 0,117, 1, 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,116, 4, +118, 1, 99, 4,100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0, +199, 1, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 4,118, 1, 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,120,205, 82, 2, 1, 0, 0, 0, +200,229, 58, 2, 1, 0, 0, 0, 8,207, 55, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88,124,157, 23, 1, 0, 0, 0,136,123,157, 23, 1, 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,248,130, 70, 27, 1, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0, 56,138, 70, 27, 1, 0, 0, 0, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,201, 71, 27, 1, 0, 0, 0, 56,120,106, 3, 1, 0, 0, 0, 0, 0, 0, 0,127,242,166, 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,248,206, 69, 66, 77, 81,146, 67,136,206, 71, 27, 1, 0, 0, 0, +136,206, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,132, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,232,133, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,160,179, 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,156, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,209, 68, 0, 0,200, 65, 0, 0,209, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,157, 5, 26, 0,157, 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,156, 5, 0, 0, 35, 3, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 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,232,133, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 88,135, 70, 27, 1, 0, 0, 0,120,132, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 67, + 0,192, 72,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 67, 0,192, 72,196, 0, 0, 0, 0,223, 0, 0, 0,240, 0, 0, 0, + 0, 0, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 0, 0, + 0, 0, 0, 0, 34, 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,240, 0, 35, 3,223, 0, 35, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 35, 3, 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, 88,135, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200,136, 70, 27, 1, 0, 0, 0,232,133, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32,179, 68, + 0, 0, 0, 0, 0, 0,112, 66, 0, 0, 0, 0, 0,160,149, 68, 0, 0, 0, 0, 0, 0,112, 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,172, 4, 0, 0, + 0, 0, 0, 0, 59, 0, 0, 0, 0, 0,179, 68, 0, 0,108, 66, 0, 0,179, 68, 0, 0,108, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,173, 4, 60, 0,173, 4, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,156, 5, 0, 0,231, 2, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,173, 4, 60, 0, 0, 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, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,136, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,135, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 64,103, 68, + 0,128, 56,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,149, 68, 0, 64, 53,196, 0, 0, 0, 0,156, 4, 0, 0,173, 4, 0, 0, + 0, 0, 0, 0,229, 2, 0, 0, 0, 0, 0, 0,172, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,172, 4, 0, 0, + 18, 0, 0, 0,230, 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, + 8, 4, 0, 0, 2, 0, 3, 3, 4, 0, 0, 4, 6, 0,173, 4,231, 2,173, 4,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,156, 5, 0, 0, 0, 0, 0, 0,230, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,173, 4,231, 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,104, 0, 0, 0, 56,138, 70, 27, 1, 0, 0, 0, +162, 0, 0, 0, 1, 0, 0, 0,200,149, 70, 27, 1, 0, 0, 0,248,130, 70, 27, 1, 0, 0, 0,120,132, 70, 27, 1, 0, 0, 0, +200,136, 70, 27, 1, 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,255,255,255,255, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,138, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 88,140, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,109, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,140, 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, 95, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 4, 26, 0, 96, 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, 95, 4, 0, 0,237, 1, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 4, 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, 88,140, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200,141, 70, 27, 1, 0, 0, 0,232,138, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, + 0, 0,253,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,253,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0,249, 1, 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,249, 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, 0, 6, 0,160, 0,250, 1,143, 0,250, 1, 0, 0, 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, 2, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 54, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0,160, 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, 68, 65, 84, 65, 40, 1, 0, 0,200,141, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 56,143, 70, 27, 1, 0, 0, 0, 88,140, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 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, 95, 4, 0, 0, 7, 2, 0, 0, 7, 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, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,143, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,168,144, 70, 27, 1, 0, 0, 0,200,141, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, + 0, 0, 83,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 62,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 0, 0, 0, 0,189, 0, 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,189, 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, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,190, 0,163, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 95, 4, 0, 0, 95, 4, 0, 0, 7, 2, 0, 0, 60, 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,168,144, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,143, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 7, 2, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 4, 54, 1, 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, 24,146, 70, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 24,146, 70, 27, 1, 0, 0, 0, +153, 0, 0, 0, 1, 0, 0, 0,207, 1, 16, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 18, 2, 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,128, 0, 0, 0,128, + 72, 1, 77,190, 0, 0, 0,128, 3, 79, 54, 63,198, 79,165,190,235,149, 31, 63, 0, 0, 0, 0,132,184, 51, 63, 40,177,167, 62, + 49,226, 33,191, 0, 0, 0, 0, 0, 0,128,177,160, 81, 99, 63,161,121,235, 62, 0, 0, 0, 0,147,251, 41,191, 99,175,244,190, + 37,188, 67,193, 0, 0,128, 63, 2, 79, 54, 63,134,184, 51, 63, 0, 0,128,179, 0, 0, 0, 0,199, 79,165,190, 40,177,167, 62, +162, 81, 99, 63, 0, 0, 0, 0,237,149, 31, 63, 51,226, 33,191,166,121,235, 62, 0, 0, 0, 0,154, 58,254, 64,161,159,227,192, + 17,159,193, 64, 0, 0,128, 63,119, 27,205, 62,119,252, 39,191,181,231, 31,191,235,149, 31,191, 31, 50,202, 62,181,103, 42, 63, + 41, 53, 34, 63, 49,226, 33, 63,207, 1, 16,177, 35,255,230, 63, 80,242,235,190,161,121,235,190,108, 61,191,190,212,164,120,191, +113,236, 64, 65, 37,188, 67, 65, 97, 11,162, 63,102,190,159, 63, 0, 0,192, 53, 0, 0,136, 52,244,173, 34,190,162, 5, 37, 62, + 32,179,223, 62, 0, 0,144, 50,215,187, 30,194, 63, 31, 14, 66,182,200,241,193,237,214,159,192,217,142, 28, 66,141,224, 11,194, +185,150,238, 65,216, 40,160, 64,212, 74, 95, 63,252, 54,208,189,132, 54, 13,191, 0, 0, 0, 0, 29,113, 41, 60, 2,228,130, 63, +216, 63, 48,190, 0, 0, 0, 0, 40,145, 15, 63, 42,156, 14, 62,140,113, 92, 63, 0, 0, 0, 0, 21,151, 49,192, 36, 79, 33, 63, +253,128, 66,193, 0, 0,128, 63, 86, 55,251, 62,100,149, 83,190,228,126, 13, 63,132, 54, 13, 63,156,161,190, 59, 34, 2, 5, 64, + 44,154, 48, 62,216, 63, 48, 62, 85,133,161, 62,210,234,144, 62,135,226, 92,191,140,113, 92,191,123,204,199,191, 66,235,163, 63, +167,176, 63, 65,253,128, 66, 65,146, 59, 57, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 59, 57, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 59, 57, 64, 0, 0, 0, 0,209, 16,232,191, 98,117,149,191, + 65,119,130, 63, 0, 0,128, 63,101, 94, 74, 63,137, 44,246,190,238,224, 73,190,155,244,165,190,110, 81,166, 65,112,155, 74, 65, + 0, 0, 0, 0, 0, 0, 0, 0,100, 10, 80, 59, 66, 7, 11, 62, 65, 7,139,190, 0, 0, 0, 0,236,255,255,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 0, 0, 0,128, 63, +246, 99, 26, 66,239, 62,118, 66, 24,120,132, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0,200,149, 70, 27, 1, 0, 0, 0, +154, 0, 0, 0, 1, 0, 0, 0, 56, 38,106, 3, 1, 0, 0, 0, 56,138, 70, 27, 1, 0, 0, 0,232,138, 70, 27, 1, 0, 0, 0, +168,144, 70, 27, 1, 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, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 7, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 8, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,205,204,204, 61, 0, 64,156, 69, 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, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,151, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200,152, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 78, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,140, 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, 95, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,197, 68, 0, 0,200, 65, 0,224,197, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 4, 26, 0, 96, 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, 95, 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, 96, 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,152, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 56,154, 70, 27, 1, 0, 0, 0, 88,151, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 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, 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,154, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,168,155, 70, 27, 1, 0, 0, 0,200,152, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 95, 4, 0, 0, 26, 0, 0, 0, 60, 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, 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,168,155, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,154, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 24,191, 0, 0,204, 63, 0,192,136,191, 0, 96, 4, 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, 96, 4, 0, 0, + 0, 0, 0, 0, 35, 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, 95, 4, 0, 0, 26, 0, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 4, 35, 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, 56, 38,106, 3, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0,248,159, 70, 27, 1, 0, 0, 0,200,149, 70, 27, 1, 0, 0, 0, 88,151, 70, 27, 1, 0, 0, 0, +168,155, 70, 27, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,216,164, 71, 27, 1, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,157, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,136,158, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 48, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 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, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,197, 68, 0, 0,200, 65, 0,224,197, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 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, 47, 6, 0, 0, 93, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 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,158, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,157, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,241, 67, + 0,128, 90,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,195, 68, 0, 64,111,196, 0, 0, 0, 0, 31, 6, 0, 0, 48, 6, 0, 0, + 18, 0, 0, 0,206, 3, 0, 0, 0, 0, 0, 0, 30, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 30, 6, 0, 0, + 18, 0, 0, 0,206, 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, + 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 48, 6,207, 3, 31, 6,189, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0,119, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,207, 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, 24, 1, 0, 0,248,159, 70, 27, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 38,106, 3, 1, 0, 0, 0, 24,157, 70, 27, 1, 0, 0, 0, +136,158, 70, 27, 1, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 1, 0, 0, 0, + 83, 78, 0, 0,216, 0, 0, 0, 88,161, 70, 27, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 56,239, 70, 27, 1, 0, 0, 0, +200, 23,159, 23, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,162, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0,184,167, 70, 27, 1, 0, 0, 0,120,176, 70, 27, 1, 0, 0, 0, +232,176, 70, 27, 1, 0, 0, 0,120,232, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,106,106, 3, 1, 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,120,162, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,216,162, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 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,162, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 56,163, 70, 27, 1, 0, 0, 0,120,162, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 56,163, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,163, 70, 27, 1, 0, 0, 0, +216,162, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +152,163, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0, 56,163, 70, 27, 1, 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,248,163, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0,152,163, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +184,164, 70, 27, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0, + 88,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 24,165, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 56,166, 70, 27, 1, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,172, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, +216,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +152,166, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 5, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 1,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,184,167, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,168, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216,162, 70, 27, 1, 0, 0, 0, 56,163, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 40,168, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,168, 70, 27, 1, 0, 0, 0, +184,167, 70, 27, 1, 0, 0, 0,216,162, 70, 27, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,152,168, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,169, 70, 27, 1, 0, 0, 0, + 40,168, 70, 27, 1, 0, 0, 0, 56,163, 70, 27, 1, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 8,169, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,169, 70, 27, 1, 0, 0, 0, +152,168, 70, 27, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,169, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,169, 70, 27, 1, 0, 0, 0, + 8,169, 70, 27, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,232,169, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,170, 70, 27, 1, 0, 0, 0, +120,169, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 88,170, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,170, 70, 27, 1, 0, 0, 0, +232,169, 70, 27, 1, 0, 0, 0,152,163, 70, 27, 1, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,200,170, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,171, 70, 27, 1, 0, 0, 0, + 88,170, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,171, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,171, 70, 27, 1, 0, 0, 0, +200,170, 70, 27, 1, 0, 0, 0,120,162, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,168,171, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,172, 70, 27, 1, 0, 0, 0, + 56,171, 70, 27, 1, 0, 0, 0,120,162, 70, 27, 1, 0, 0, 0,120,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 24,172, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,172, 70, 27, 1, 0, 0, 0, +168,171, 70, 27, 1, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,136,172, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,172, 70, 27, 1, 0, 0, 0, + 24,172, 70, 27, 1, 0, 0, 0,152,163, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,248,172, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,173, 70, 27, 1, 0, 0, 0, +136,172, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,104,173, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,173, 70, 27, 1, 0, 0, 0, +248,172, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216,173, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,174, 70, 27, 1, 0, 0, 0, +104,173, 70, 27, 1, 0, 0, 0, 88,164, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 72,174, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,174, 70, 27, 1, 0, 0, 0, +216,173, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,184,174, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,175, 70, 27, 1, 0, 0, 0, + 72,174, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 40,175, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,175, 70, 27, 1, 0, 0, 0, +184,174, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,152,175, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,176, 70, 27, 1, 0, 0, 0, + 40,175, 70, 27, 1, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 8,176, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,176, 70, 27, 1, 0, 0, 0, +152,175, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,176, 70, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,176, 70, 27, 1, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,232,176, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,180, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,163, 70, 27, 1, 0, 0, 0,216,162, 70, 27, 1, 0, 0, 0, 56,163, 70, 27, 1, 0, 0, 0, + 88,164, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, + 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,238, 70, 27, 1, 0, 0, 0, +184,238, 70, 27, 1, 0, 0, 0,200,177, 70, 27, 1, 0, 0, 0, 56,179, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,177, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,179, 70, 27, 1, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 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, + 56,179, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,177, 70, 27, 1, 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, 97, 4, 0, 0, 97, 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, +168,180, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,205, 70, 27, 1, 0, 0, 0,232,176, 70, 27, 1, 0, 0, 0, +120,165, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0,152,163, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, 4, 4, 94, 1,172, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,203, 70, 27, 1, 0, 0, 0,232,203, 70, 27, 1, 0, 0, 0, +136,181, 70, 27, 1, 0, 0, 0,248,182, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,181, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,248,182, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,248, 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, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 94, 1, 31, 0, 94, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0,141, 1, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 31, 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,248,182, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,181, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, + 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,127,198,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, + 0, 0, 0, 0,140, 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,140, 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,141, 1, 77, 1,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,184, 70, 27, 1, 0, 0, 0, 72,202, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 8,186, 70, 27, 1, 0, 0, 0, 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, 8,186, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,187, 70, 27, 1, 0, 0, 0, +104,184, 70, 27, 1, 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,168,187, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 72,189, 70, 27, 1, 0, 0, 0, 8,186, 70, 27, 1, 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, 72,189, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,190, 70, 27, 1, 0, 0, 0, +168,187, 70, 27, 1, 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,232,190, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,136,192, 70, 27, 1, 0, 0, 0, 72,189, 70, 27, 1, 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,136,192, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,194, 70, 27, 1, 0, 0, 0, +232,190, 70, 27, 1, 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, 70,117,108,108, 32, 83, 97,109, +112,108,101, 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, 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, 40,194, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,200,195, 70, 27, 1, 0, 0, 0,136,192, 70, 27, 1, 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, 76, 1,102, 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, + 68, 65, 84, 65, 88, 1, 0, 0,200,195, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,197, 70, 27, 1, 0, 0, 0, + 40,194, 70, 27, 1, 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, 10,253, 76, 1,130, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,197, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 8,199, 70, 27, 1, 0, 0, 0,200,195, 70, 27, 1, 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,252, 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, 8,199, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,200, 70, 27, 1, 0, 0, 0, +104,197, 70, 27, 1, 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,252, 76, 1, 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,168,200, 70, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 72,202, 70, 27, 1, 0, 0, 0, 8,199, 70, 27, 1, 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,252, 76, 1, 0, 0, 20, 0, 0, 0, 4, 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, 72,202, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,200, 70, 27, 1, 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,170,252, 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,232,203, 70, 27, 1, 0, 0, 0, +159, 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, 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, + 68, 65, 84, 65,160, 0, 0, 0, 40,205, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,212, 70, 27, 1, 0, 0, 0, +168,180, 70, 27, 1, 0, 0, 0,120,162, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, 24,165, 70, 27, 1, 0, 0, 0, +120,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0,171, 1, 0, 0, + 17, 17, 24, 6,172, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,211, 70, 27, 1, 0, 0, 0, +248,211, 70, 27, 1, 0, 0, 0, 8,206, 70, 27, 1, 0, 0, 0,136,210, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,206, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,207, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,151, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 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, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 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, 23, 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, 24, 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, +120,207, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,210, 70, 27, 1, 0, 0, 0, 8,206, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,201,195, 0, 0, 0, 0, +203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,145, 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,145, 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,146, 1,203, 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,219, 0, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,146, 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,232,208, 70, 27, 1, 0, 0, 0,232,208, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,208, 70, 27, 1, 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, 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,136,210, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,207, 70, 27, 1, 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, 1, 0,224,194, 0, 0,176, 67, 43, 5, 0, 0, 60, 5, 0, 0, 18, 0, 0, 0,145, 1, 0, 0, + 0, 0, 0, 0, 42, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 42, 5, 0, 0, 18, 0, 0, 0,145, 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, 60, 5,146, 1, 43, 5,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 0, 0, 23, 6, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 5,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,248,211, 70, 27, 1, 0, 0, 0,172, 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,136,212, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 40,219, 70, 27, 1, 0, 0, 0, 40,205, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, + 88,164, 70, 27, 1, 0, 0, 0,216,165, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,118, 7, 0, 0, +173, 1, 0, 0, 69, 4, 0, 0, 9, 9, 62, 2,153, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72,216, 70, 27, 1, 0, 0, 0, 72,216, 70, 27, 1, 0, 0, 0,104,213, 70, 27, 1, 0, 0, 0,216,214, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,213, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,214, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,210, 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,128,181, 67, 0, 0,200, 65, + 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 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, 57, 5, 0, 0,118, 7, 0, 0, +173, 1, 0, 0,198, 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,216,214, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,213, 70, 27, 1, 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, 78,176, 16, 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,126, 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, +127, 2, 62, 2,127, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,118, 7, 0, 0, +199, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2,127, 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, 72,216, 70, 27, 1, 0, 0, 0,166, 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, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,219, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120,232, 70, 27, 1, 0, 0, 0,136,212, 70, 27, 1, 0, 0, 0, +248,166, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0,152,166, 70, 27, 1, 0, 0, 0, 56,166, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 1, 0, 0, 55, 5, 0, 0,173, 1, 0, 0, 69, 4, 0, 0, 1, 1,247, 3,153, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,230, 70, 27, 1, 0, 0, 0,232,230, 70, 27, 1, 0, 0, 0, + 8,220, 70, 27, 1, 0, 0, 0,200,225, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,220, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,120,221, 70, 27, 1, 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,192,125, 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, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,247, 3, 26, 0,247, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 1, 0, 0, 55, 5, 0, 0,173, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,247, 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,120,221, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,232,222, 70, 27, 1, 0, 0, 0, 8,220, 70, 27, 1, 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, 65, 1, 0, 0, 65, 1, 0, 0,199, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,127, 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,222, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 88,224, 70, 27, 1, 0, 0, 0,120,221, 70, 27, 1, 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, 65, 1, 0, 0, 55, 5, 0, 0,199, 1, 0, 0,199, 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, 88,224, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200,225, 70, 27, 1, 0, 0, 0,232,222, 70, 27, 1, 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,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,111, 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,111, 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,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0,199, 1, 0, 0, 69, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,225, 70, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,224, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 55, 5, 0, 0,199, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,247, 3,127, 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,227, 70, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 56,227, 70, 27, 1, 0, 0, 0, +153, 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, 41, 49,123, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,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, 41, 49,123, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,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, 51,115,130, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,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, 41, 49,123, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,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,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,240, 11, 81, 61, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0,232,230, 70, 27, 1, 0, 0, 0, +154, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 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, 16, 0, 0, 0, 7, 0, 10, 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, 68, 65, 84, 65,160, 0, 0, 0,120,232, 70, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,219, 70, 27, 1, 0, 0, 0,184,164, 70, 27, 1, 0, 0, 0, +248,163, 70, 27, 1, 0, 0, 0, 88,167, 70, 27, 1, 0, 0, 0,248,166, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 1, 0, 0,173, 1, 0, 0, 69, 4, 0, 0, 3, 3, 64, 1,153, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,236, 70, 27, 1, 0, 0, 0, 56,236, 70, 27, 1, 0, 0, 0, 88,233, 70, 27, 1, 0, 0, 0, +200,234, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,233, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +200,234, 70, 27, 1, 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,160, 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, 63, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 64, 1, 26, 0, 64, 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, 63, 1, 0, 0,173, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 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,200,234, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,233, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,151, 67, 0, 64, 27,196, 0, 0, 0, 0, 47, 1, 0, 0, 64, 1, 0, 0, 18, 0, 0, 0,126, 2, 0, 0, + 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 46, 1, 0, 0, 18, 0, 0, 0,126, 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, 0, 4, 6, 0, 64, 1,127, 2, 47, 1,109, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 1, 0, 0,199, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 1,127, 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, 56,236, 70, 27, 1, 0, 0, 0,163, 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,147,166, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,147,166, 19, 1, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,152,237, 70, 27, 1, 0, 0, 0, + 68, 65, 84, 65,224, 0, 0, 0,152,237, 70, 27, 1, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 56,106,106, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, + 56,106,106, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 24,169, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 8,167, 71, 27, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 83, 78, 0, 0,216, 0, 0, 0, + 56,239, 70, 27, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,152, 67, 71, 27, 1, 0, 0, 0, 88,161, 70, 27, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,240, 70, 27, 1, 0, 0, 0, +152,245, 70, 27, 1, 0, 0, 0,248,245, 70, 27, 1, 0, 0, 0,152,255, 70, 27, 1, 0, 0, 0, 8, 0, 71, 27, 1, 0, 0, 0, +120, 60, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 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, 88,240, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +184,240, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 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,240, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,241, 70, 27, 1, 0, 0, 0, + 88,240, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 24,241, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0,184,240, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0, 24,241, 70, 27, 1, 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,241, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 56,242, 70, 27, 1, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,242, 70, 27, 1, 0, 0, 0, +216,241, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +152,242, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 88,243, 70, 27, 1, 0, 0, 0,152,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,243, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +184,243, 70, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,184,243, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,244, 70, 27, 1, 0, 0, 0, + 88,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 24,244, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0,184,243, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,216,244, 70, 27, 1, 0, 0, 0, 24,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +244, 2,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,244, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 56,245, 70, 27, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 5, 44, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 56,245, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152,245, 70, 27, 1, 0, 0, 0, +216,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 44, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +152,245, 70, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,245, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,244, 2, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,245, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,104,246, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,240, 70, 27, 1, 0, 0, 0, + 24,241, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,246, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,216,246, 70, 27, 1, 0, 0, 0,248,245, 70, 27, 1, 0, 0, 0,184,240, 70, 27, 1, 0, 0, 0, +216,241, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,246, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 72,247, 70, 27, 1, 0, 0, 0,104,246, 70, 27, 1, 0, 0, 0, 24,241, 70, 27, 1, 0, 0, 0, + 56,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,247, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,184,247, 70, 27, 1, 0, 0, 0,216,246, 70, 27, 1, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0, + 56,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,247, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 40,248, 70, 27, 1, 0, 0, 0, 72,247, 70, 27, 1, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0, +152,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,248, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,152,248, 70, 27, 1, 0, 0, 0,184,247, 70, 27, 1, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0, +248,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,248, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 8,249, 70, 27, 1, 0, 0, 0, 40,248, 70, 27, 1, 0, 0, 0, 88,240, 70, 27, 1, 0, 0, 0, + 88,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,249, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,120,249, 70, 27, 1, 0, 0, 0,152,248, 70, 27, 1, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0, + 88,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,249, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,232,249, 70, 27, 1, 0, 0, 0, 8,249, 70, 27, 1, 0, 0, 0,152,242, 70, 27, 1, 0, 0, 0, +184,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,249, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 88,250, 70, 27, 1, 0, 0, 0,120,249, 70, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, +184,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,250, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,200,250, 70, 27, 1, 0, 0, 0,232,249, 70, 27, 1, 0, 0, 0, 88,240, 70, 27, 1, 0, 0, 0, + 24,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,250, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 56,251, 70, 27, 1, 0, 0, 0, 88,250, 70, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, + 24,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,251, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,168,251, 70, 27, 1, 0, 0, 0,200,250, 70, 27, 1, 0, 0, 0, 88,243, 70, 27, 1, 0, 0, 0, +120,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,251, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 24,252, 70, 27, 1, 0, 0, 0, 56,251, 70, 27, 1, 0, 0, 0,184,243, 70, 27, 1, 0, 0, 0, +120,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,252, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,136,252, 70, 27, 1, 0, 0, 0,168,251, 70, 27, 1, 0, 0, 0, 24,244, 70, 27, 1, 0, 0, 0, +120,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,252, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,248,252, 70, 27, 1, 0, 0, 0, 24,252, 70, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, +216,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,252, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,104,253, 70, 27, 1, 0, 0, 0,136,252, 70, 27, 1, 0, 0, 0,152,242, 70, 27, 1, 0, 0, 0, +216,244, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,253, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,216,253, 70, 27, 1, 0, 0, 0,248,252, 70, 27, 1, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0, + 56,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,253, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 72,254, 70, 27, 1, 0, 0, 0,104,253, 70, 27, 1, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0, + 56,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,254, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,184,254, 70, 27, 1, 0, 0, 0,216,253, 70, 27, 1, 0, 0, 0,216,244, 70, 27, 1, 0, 0, 0, + 56,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,254, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 40,255, 70, 27, 1, 0, 0, 0, 72,254, 70, 27, 1, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0, +152,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,255, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,152,255, 70, 27, 1, 0, 0, 0,184,254, 70, 27, 1, 0, 0, 0,152,242, 70, 27, 1, 0, 0, 0, +152,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,255, 70, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,255, 70, 27, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0, +152,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 0, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,200, 3, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0, +184,240, 70, 27, 1, 0, 0, 0, 24,241, 70, 27, 1, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 67, 71, 27, 1, 0, 0, 0, 24, 67, 71, 27, 1, 0, 0, 0,232, 0, 71, 27, 1, 0, 0, 0, + 88, 2, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 88, 2, 71, 27, 1, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +119, 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, 88, 2, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 0, 71, 27, 1, 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, 97, 4, 0, 0, 97, 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,200, 3, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 72, 28, 71, 27, 1, 0, 0, 0, 8, 0, 71, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0,216,244, 70, 27, 1, 0, 0, 0, + 56,245, 70, 27, 1, 0, 0, 0,120,241, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 5, 0, 0,118, 7, 0, 0, + 0, 0, 0, 0, 43, 3, 0, 0, 4, 4,142, 1, 44, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 27, 71, 27, 1, 0, 0, 0, 8, 27, 71, 27, 1, 0, 0, 0,168, 4, 71, 27, 1, 0, 0, 0, 24, 6, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 6, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, + 0, 0, 0, 0, 0, 0,248, 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, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,142, 1, + 31, 0,142, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 5, 0, 0,118, 7, 0, 0, + 13, 3, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 31, 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, 6, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 4, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67, +254, 63, 67,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0, 12, 3, 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, 12, 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,142, 1, + 13, 3,125, 1, 13, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 5, 0, 0,118, 7, 0, 0, + 0, 0, 0, 0, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 13, 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,136, 7, 71, 27, 1, 0, 0, 0,104, 25, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 9, 71, 27, 1, 0, 0, 0, + 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, 40, 9, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,200, 10, 71, 27, 1, 0, 0, 0,136, 7, 71, 27, 1, 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,200, 10, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 12, 71, 27, 1, 0, 0, 0, + 40, 9, 71, 27, 1, 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,104, 12, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 8, 14, 71, 27, 1, 0, 0, 0,200, 10, 71, 27, 1, 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, 8, 14, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 15, 71, 27, 1, 0, 0, 0, +104, 12, 71, 27, 1, 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,168, 15, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 72, 17, 71, 27, 1, 0, 0, 0, 8, 14, 71, 27, 1, 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, 70,117,108,108, 32, 83, 97,109,112,108,101, 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, 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, 72, 17, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 18, 71, 27, 1, 0, 0, 0, +168, 15, 71, 27, 1, 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,124, 1,102, 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, 68, 65, 84, 65, 88, 1, 0, 0,232, 18, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,136, 20, 71, 27, 1, 0, 0, 0, 72, 17, 71, 27, 1, 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, 10,253,124, 1,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 20, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 22, 71, 27, 1, 0, 0, 0, +232, 18, 71, 27, 1, 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,252,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, 40, 22, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,200, 23, 71, 27, 1, 0, 0, 0,136, 20, 71, 27, 1, 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,252,124, 1, 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,200, 23, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 25, 71, 27, 1, 0, 0, 0, + 40, 22, 71, 27, 1, 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,252,124, 1, 0, 0, + 20, 0, 0, 0, 4, 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,104, 25, 71, 27, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 23, 71, 27, 1, 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,170,252,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, 8, 27, 71, 27, 1, 0, 0, 0,159, 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, 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, 68, 65, 84, 65,160, 0, 0, 0, 72, 28, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 72, 34, 71, 27, 1, 0, 0, 0,200, 3, 71, 27, 1, 0, 0, 0, 24,244, 70, 27, 1, 0, 0, 0, +120,244, 70, 27, 1, 0, 0, 0,184,243, 70, 27, 1, 0, 0, 0,248,242, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +245, 2, 0, 0,231, 5, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 18, 18,243, 2,184, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120, 32, 71, 27, 1, 0, 0, 0,120, 32, 71, 27, 1, 0, 0, 0, 40, 29, 71, 27, 1, 0, 0, 0, +152, 30, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 29, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +152, 30, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 77, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192, 60, 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,242, 2, 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, 4, 10, 0,243, 2, 26, 0,243, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +245, 2, 0, 0,231, 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, +243, 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,152, 30, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 29, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 60, 68, 0, 0, 0, 0, 0, 0, 48, 65, + 0, 0, 0, 0, 0,128, 56, 68, 0, 0, 0, 0, 0, 0,207, 67,226, 2, 0, 0,243, 2, 0, 0, 0, 0, 0, 0,157, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225, 2, 0, 0, 0, 0, 0, 0,157, 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,243, 2,158, 1,226, 2,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +245, 2, 0, 0,231, 5, 0, 0, 26, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +243, 2,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 32, 71, 27, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 40, 97,166, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 40, 97,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,120, 32, 71, 27, 1, 0, 0, 0,175, 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, 8, 32, 71, 27, 1, 0, 0, 0, 8, 32, 71, 27, 1, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 34, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152, 47, 71, 27, + 1, 0, 0, 0, 72, 28, 71, 27, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0,152,245, 70, 27, 1, 0, 0, 0,152,242, 70, 27, + 1, 0, 0, 0,184,243, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,231, 5, 0, 0,185, 1, 0, 0, + 69, 4, 0, 0, 1, 1,243, 2,141, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 46, 71, 27, + 1, 0, 0, 0, 8, 46, 71, 27, 1, 0, 0, 0, 40, 35, 71, 27, 1, 0, 0, 0,232, 40, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 36, 71, 27, 1, 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,192, 60, 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,242, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,243, 2, 26, 0,243, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,231, 5, 0, 0,185, 1, 0, 0, +210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 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,152, 36, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8, 38, 71, 27, 1, 0, 0, 0, 40, 35, 71, 27, + 1, 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,245, 2, 0, 0,245, 2, 0, 0,211, 1, 0, 0, + 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,115, 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, 8, 38, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 39, 71, 27, 1, 0, 0, 0,152, 36, 71, 27, + 1, 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,245, 2, 0, 0,231, 5, 0, 0,211, 1, 0, 0, +211, 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,120, 39, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 40, 71, 27, 1, 0, 0, 0, 8, 38, 71, 27, + 1, 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,231, 5, 0, 0,231, 5, 0, 0,211, 1, 0, 0, + 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 40, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 39, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,231, 5, 0, 0,211, 1, 0, 0, + 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2,115, 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, 88, 42, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65, +104, 3, 0, 0, 88, 42, 71, 27, 1, 0, 0, 0,153, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,159,148,168, 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,180,157,229, 62,180,115, 7,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 12,148,130, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, 27,227,150, 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,116,234,191, 62,189,117, 85, 63,128, 32, 71,188, + 0, 64,130,182,126, 42,156,190, 75,140, 22, 62,123,250, 45, 63, 0, 0, 2, 54,215,104, 25,196,135,132,135, 67, 37, 9,167,195, +136,252, 71,194, 3, 54, 25, 68,160, 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,180,157,229, 62,180,115, 7,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 12,148,130, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, 27,227,150, 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, 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,143,185, 30, 59, 0, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 72, 1, 0, 0, 8, 46, 71, 27, 1, 0, 0, 0,154, 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, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 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, + 16, 0, 0, 0, 7, 0, 10, 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, 68, 65, 84, 65, +160, 0, 0, 0,152, 47, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,232, 53, 71, 27, 1, 0, 0, 0, 72, 34, 71, 27, + 1, 0, 0, 0, 88,240, 70, 27, 1, 0, 0, 0, 88,243, 70, 27, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0, 24,244, 70, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2, 0, 0, 0, 0, 0, 0,183, 1, 0, 0, 18, 18,244, 2, +184, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 52, 71, 27, 1, 0, 0, 0, 24, 52, 71, 27, + 1, 0, 0, 0,120, 48, 71, 27, 1, 0, 0, 0,232, 49, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 48, 71, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 49, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,232, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 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, +243, 2, 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, 4, 10, 0,244, 2, 26, 0,244, 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,243, 2, 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,244, 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,232, 49, 71, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 48, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0,192, 60, 68, 0, 0, 0, 0, 0, 0, 65, 67, 0, 0, 0, 0, 0,192, 56, 68, 0, 0, 0, 0, 0, 0,207, 67,227, 2, 0, 0, +244, 2, 0, 0, 0, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +226, 2, 0, 0, 0, 0, 0, 0,157, 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,244, 2,158, 1,227, 2,158, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2, 0, 0, 26, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244, 2,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 88, 51, 71, 27, + 1, 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, 1, 0, 0, 0, + 0, 0, 0, 0,200, 51, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,200, 51, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, 24, 52, 71, 27, 1, 0, 0, 0, +175, 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, 88, 51, 71, 27, 1, 0, 0, 0, + 88, 51, 71, 27, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 53, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,120, 60, 71, 27, 1, 0, 0, 0,152, 47, 71, 27, 1, 0, 0, 0,216,244, 70, 27, 1, 0, 0, 0, +152,242, 70, 27, 1, 0, 0, 0, 56,242, 70, 27, 1, 0, 0, 0, 56,245, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +233, 5, 0, 0,118, 7, 0, 0, 45, 3, 0, 0, 69, 4, 0, 0, 3, 3,142, 1, 25, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168, 57, 71, 27, 1, 0, 0, 0,168, 57, 71, 27, 1, 0, 0, 0,200, 54, 71, 27, 1, 0, 0, 0, + 56, 56, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 54, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 56, 56, 71, 27, 1, 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,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 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, +233, 5, 0, 0,118, 7, 0, 0, 45, 3, 0, 0, 70, 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, 56, 56, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200, 54, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,190, 67, 0, 0,109,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,254, 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,254, 0, 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, 0, 4, 6, 0,142, 1,255, 0,125, 1,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +233, 5, 0, 0,118, 7, 0, 0, 71, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 1,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, 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,168, 57, 71, 27, 1, 0, 0, 0,163, 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, 8, 59, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 8, 59, 71, 27, 1, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 88, 59, 71, 27, 1, 0, 0, 0, + 68, 65, 84, 65,224, 0, 0, 0, 88, 59, 71, 27, 1, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 56,106,106, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, + 56,106,106, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 24,169, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 8,167, 71, 27, 1, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 56,106,106, 3, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +120, 60, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 53, 71, 27, 1, 0, 0, 0, + 88,243, 70, 27, 1, 0, 0, 0,216,241, 70, 27, 1, 0, 0, 0,152,245, 70, 27, 1, 0, 0, 0,120,244, 70, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2, 0, 0,185, 1, 0, 0, 69, 4, 0, 0, 9, 9,244, 2,141, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 64, 71, 27, 1, 0, 0, 0, 56, 64, 71, 27, 1, 0, 0, 0, + 88, 61, 71, 27, 1, 0, 0, 0,200, 62, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 61, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,200, 62, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,210, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 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,243, 2, 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, 4, 10, 0,244, 2, 26, 0,244, 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,243, 2, 0, 0,185, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,244, 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, 62, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 61, 71, 27, 1, 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,120,125, 46, 67, 68, 65,214, 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,243, 2, 0, 0, + 0, 0, 0, 0,114, 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,244, 2,115, 2,244, 2,115, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2, 0, 0,211, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,244, 2,115, 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, 64, 71, 27, 1, 0, 0, 0, +166, 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, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 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,216, 0, 0, 0,152, 67, 71, 27, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, + 40,104, 71, 27, 1, 0, 0, 0, 56,239, 70, 27, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184, 68, 71, 27, 1, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0,184, 71, 71, 27, 1, 0, 0, 0, + 24, 76, 71, 27, 1, 0, 0, 0,136, 76, 71, 27, 1, 0, 0, 0, 24, 87, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 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, 68, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24, 69, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 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, 24, 69, 71, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,120, 69, 71, 27, 1, 0, 0, 0,184, 68, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 69, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +216, 69, 71, 27, 1, 0, 0, 0, 24, 69, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,216, 69, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 56, 70, 71, 27, 1, 0, 0, 0, +120, 69, 71, 27, 1, 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, + 56, 70, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0,216, 69, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0, 56, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 88, 71, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 70, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +184, 71, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40, 72, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 69, 71, 27, 1, 0, 0, 0,120, 69, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 40, 72, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152, 72, 71, 27, 1, 0, 0, 0,184, 71, 71, 27, 1, 0, 0, 0, + 24, 69, 71, 27, 1, 0, 0, 0, 56, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +152, 72, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8, 73, 71, 27, 1, 0, 0, 0, 40, 72, 71, 27, 1, 0, 0, 0, +120, 69, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 8, 73, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120, 73, 71, 27, 1, 0, 0, 0,152, 72, 71, 27, 1, 0, 0, 0, + 56, 70, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +120, 73, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232, 73, 71, 27, 1, 0, 0, 0, 8, 73, 71, 27, 1, 0, 0, 0, + 56, 70, 71, 27, 1, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +232, 73, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88, 74, 71, 27, 1, 0, 0, 0,120, 73, 71, 27, 1, 0, 0, 0, +184, 68, 71, 27, 1, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 88, 74, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200, 74, 71, 27, 1, 0, 0, 0,232, 73, 71, 27, 1, 0, 0, 0, +184, 68, 71, 27, 1, 0, 0, 0, 56, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +200, 74, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56, 75, 71, 27, 1, 0, 0, 0, 88, 74, 71, 27, 1, 0, 0, 0, +248, 70, 71, 27, 1, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 56, 75, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168, 75, 71, 27, 1, 0, 0, 0,200, 74, 71, 27, 1, 0, 0, 0, +152, 70, 71, 27, 1, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +168, 75, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24, 76, 71, 27, 1, 0, 0, 0, 56, 75, 71, 27, 1, 0, 0, 0, +216, 69, 71, 27, 1, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 24, 76, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 75, 71, 27, 1, 0, 0, 0, +216, 69, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +136, 76, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72, 80, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 70, 71, 27, 1, 0, 0, 0, 24, 69, 71, 27, 1, 0, 0, 0,120, 69, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,103, 71, 27, 1, 0, 0, 0,168,103, 71, 27, 1, 0, 0, 0, +104, 77, 71, 27, 1, 0, 0, 0,216, 78, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 77, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,216, 78, 71, 27, 1, 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,238, 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,118, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,119, 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,216, 78, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 77, 71, 27, 1, 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, 97, 4, 0, 0, 97, 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, 72, 80, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 24, 87, 71, 27, 1, 0, 0, 0,136, 76, 71, 27, 1, 0, 0, 0,184, 68, 71, 27, 1, 0, 0, 0, + 56, 70, 71, 27, 1, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0, 88, 71, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 69, 4, 0, 0, 6, 6,196, 3, 70, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 72,106, 3, 1, 0, 0, 0, 56, 72,106, 3, 1, 0, 0, 0, 40, 81, 71, 27, 1, 0, 0, 0, +168, 85, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 81, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +152, 82, 71, 27, 1, 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,113, 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,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 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,195, 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, +196, 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,152, 82, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +168, 85, 71, 27, 1, 0, 0, 0, 40, 81, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0, 96,133,196, 0, 0, 0, 0, + 0, 0, 0, 0,254,255, 74, 67,254,127,133,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 43, 4, 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, 43, 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, 3, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,220, 0, 44, 4,203, 0, 44, 4, 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, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 44, 4, 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, 8, 84, 71, 27, 1, 0, 0, 0, + 8, 84, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84, 71, 27, 1, 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, + 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,174,255,202, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 85, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 82, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,154,153, 41,191,205,204,212, 63,154,153,149,191,205,204, 10, 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,232, 2, 0, 0, 0, 0, 0, 0, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,195, 3, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, + 56, 72,106, 3, 1, 0, 0, 0,164, 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, + 24, 87, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 80, 71, 27, 1, 0, 0, 0, + 88, 71, 71, 27, 1, 0, 0, 0,248, 70, 71, 27, 1, 0, 0, 0,152, 70, 71, 27, 1, 0, 0, 0,216, 69, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 69, 4, 0, 0, 1, 1,178, 3, 70, 4, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,102, 71, 27, 1, 0, 0, 0, 24,102, 71, 27, 1, 0, 0, 0, +248, 87, 71, 27, 1, 0, 0, 0,248, 96, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,104, 89, 71, 27, 1, 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,128,108, 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,177, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,178, 3, 26, 0,178, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,118, 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,178, 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,104, 89, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,120, 92, 71, 27, 1, 0, 0, 0,248, 87, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, + 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,109,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0,179, 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,179, 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,180, 3,143, 0,180, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 0,180, 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, +216, 90, 71, 27, 1, 0, 0, 0,216, 90, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 90, 71, 27, 1, 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, 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, 42,254,143, 0,190, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 92, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 95, 71, 27, 1, 0, 0, 0, +104, 89, 71, 27, 1, 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,197, 3, 0, 0,100, 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,232, 93, 71, 27, 1, 0, 0, 0,232, 93, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 93, 71, 27, 1, 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, 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,136, 95, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,248, 96, 71, 27, 1, 0, 0, 0,120, 92, 71, 27, 1, 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,118, 7, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 69, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 95, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 98, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,104, 98, 71, 27, 1, 0, 0, 0, +153, 0, 0, 0, 1, 0, 0, 0,161, 58,190, 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,169,255, 27, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,254,123,173, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,150,126,161,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, 97, 66,141, 62,204, 23, 29, 63,192, 60, 18,188, 0, 0, 96,179,195, 15,188,190,130, 75, 53, 62, +216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 16,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,246, 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,169,255, 27, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,254,123,173, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,150,126,161,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, 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, 18,106,224, 58, 0, 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,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 24,102, 71, 27, 1, 0, 0, 0, +154, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 56,114,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 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, 16, 0, 0, 0, 7, 0, 10, 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, 83, 78, 0, 0,216, 0, 0, 0, 40,104, 71, 27, 1, 0, 0, 0, +190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 67, 71, 27, 1, 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, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,105, 71, 27, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0, +200,109, 71, 27, 1, 0, 0, 0, 56,117, 71, 27, 1, 0, 0, 0,168,117, 71, 27, 1, 0, 0, 0,248,143, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,106,106, 3, 1, 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,105, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,168,105, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 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, +168,105, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8,106, 71, 27, 1, 0, 0, 0, 72,105, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,106, 71, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,104,106, 71, 27, 1, 0, 0, 0,168,105, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,106, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, +200,106, 71, 27, 1, 0, 0, 0, 8,106, 71, 27, 1, 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,200,106, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0, +104,106, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 40,107, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +118, 7, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 72,108, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, +232,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 3, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +168,108, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 3, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,200,109, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,110, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,105, 71, 27, 1, 0, 0, 0, 8,106, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,110, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,110, 71, 27, 1, 0, 0, 0, +200,109, 71, 27, 1, 0, 0, 0,168,105, 71, 27, 1, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,168,110, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,111, 71, 27, 1, 0, 0, 0, + 56,110, 71, 27, 1, 0, 0, 0, 8,106, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 24,111, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,111, 71, 27, 1, 0, 0, 0, +168,110, 71, 27, 1, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,136,111, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,111, 71, 27, 1, 0, 0, 0, + 24,111, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,248,111, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,112, 71, 27, 1, 0, 0, 0, +136,111, 71, 27, 1, 0, 0, 0, 72,105, 71, 27, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,104,112, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,112, 71, 27, 1, 0, 0, 0, +248,111, 71, 27, 1, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216,112, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,113, 71, 27, 1, 0, 0, 0, +104,112, 71, 27, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 72,113, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,113, 71, 27, 1, 0, 0, 0, +216,112, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,184,113, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,114, 71, 27, 1, 0, 0, 0, + 72,113, 71, 27, 1, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 40,114, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,114, 71, 27, 1, 0, 0, 0, +184,113, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,152,114, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,115, 71, 27, 1, 0, 0, 0, + 40,114, 71, 27, 1, 0, 0, 0,104,106, 71, 27, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 8,115, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,115, 71, 27, 1, 0, 0, 0, +152,114, 71, 27, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,115, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,115, 71, 27, 1, 0, 0, 0, + 8,115, 71, 27, 1, 0, 0, 0, 72,105, 71, 27, 1, 0, 0, 0,104,106, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,232,115, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,116, 71, 27, 1, 0, 0, 0, +120,115, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 88,116, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,116, 71, 27, 1, 0, 0, 0, +232,115, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,200,116, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,117, 71, 27, 1, 0, 0, 0, + 88,116, 71, 27, 1, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 56,117, 71, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,116, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,168,117, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104,121, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,106, 71, 27, 1, 0, 0, 0,168,105, 71, 27, 1, 0, 0, 0, 8,106, 71, 27, 1, 0, 0, 0, + 40,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 97, 4, 0, 0, + 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,151, 71, 27, 1, 0, 0, 0, +200,151, 71, 27, 1, 0, 0, 0,136,118, 71, 27, 1, 0, 0, 0,248,119, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,118, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,119, 71, 27, 1, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 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, +248,119, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,118, 71, 27, 1, 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, 97, 4, 0, 0, 97, 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, +104,121, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,126, 71, 27, 1, 0, 0, 0,168,117, 71, 27, 1, 0, 0, 0, + 72,105, 71, 27, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0,104,109, 71, 27, 1, 0, 0, 0,104,106, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,119, 7,100, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,125, 71, 27, 1, 0, 0, 0, 40,125, 71, 27, 1, 0, 0, 0, + 72,122, 71, 27, 1, 0, 0, 0,184,123, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,122, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,184,123, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,137, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 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,118, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 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,119, 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,123, 71, 27, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,122, 71, 27, 1, 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,118, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, + 18, 0, 0, 0, 73, 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,119, 7, 74, 0, 0, 0, 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, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,125, 71, 27, 1, 0, 0, 0, +170, 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, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 72,126, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,135, 71, 27, 1, 0, 0, 0, +104,121, 71, 27, 1, 0, 0, 0,232,107, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, +104,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,101, 0, 0, 0, 15, 2, 0, 0, + 8, 8,119, 7,171, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,134, 71, 27, 1, 0, 0, 0, +136,134, 71, 27, 1, 0, 0, 0, 40,127, 71, 27, 1, 0, 0, 0, 24,133, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,127, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,128, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7, 26, 0,119, 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,118, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 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, +152,128, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,131, 71, 27, 1, 0, 0, 0, 40,127, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 67, 0,128,200,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,200,195, 0, 0, 0, 0, +203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,144, 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,144, 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,145, 1,203, 0,145, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 6, 0, 0,118, 7, 0, 0,127, 0, 0, 0, 15, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,145, 1, 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, 8,130, 71, 27, 1, 0, 0, 0, 8,130, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,130, 71, 27, 1, 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, 83, 69, 81, 85, 69, 78, 67, 69, 82, 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, 83, 69, 81, 85, 69, 78, 67, 69, 82, 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, 83, 99,101,110,101, 32, 80,114,101,118,105,101,119, 47, 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,171,255,203, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,131, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 24,133, 71, 27, 1, 0, 0, 0,152,128, 71, 27, 1, 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,154, 6, 0, 0, 15, 2, 0, 0, 15, 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, 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, 24,133, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,131, 71, 27, 1, 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,144, 1, 0, 0, + 18, 0, 0, 0,154, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,154, 6, 0, 0, 18, 0, 0, 0,144, 1, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 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,155, 6,145, 1, 0, 0, 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, 6, 0, 0,127, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +155, 6,145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,136,134, 71, 27, 1, 0, 0, 0,160, 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,184,135, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,248,143, 71, 27, 1, 0, 0, 0, 72,126, 71, 27, 1, 0, 0, 0,168,108, 71, 27, 1, 0, 0, 0, +200,106, 71, 27, 1, 0, 0, 0, 72,108, 71, 27, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 3, 0, 0, 17, 2, 0, 0, 69, 4, 0, 0, 2, 2, 76, 3, 53, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,142, 71, 27, 1, 0, 0, 0, 88,142, 71, 27, 1, 0, 0, 0,152,136, 71, 27, 1, 0, 0, 0, +232,140, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,136, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 8,138, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,100, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 83, 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, 75, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 76, 3, 26, 0, 76, 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, 75, 3, 0, 0, 17, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 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, 8,138, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +120,139, 71, 27, 1, 0, 0, 0,152,136, 71, 27, 1, 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, 64, 2,196, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 26, 2, 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, 26, 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, 10, 6, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0,217, 0, 27, 2,200, 0, 9, 2, 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, 43, 2, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +217, 0, 27, 2, 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,139, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +232,140, 71, 27, 1, 0, 0, 0, 8,138, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 0, 0, 75, 3, 0, 0, 43, 2, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,140, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,139, 71, 27, 1, 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, 26, 2, 0, 0, + 18, 0, 0, 0,114, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,114, 2, 0, 0, 18, 0, 0, 0, 26, 2, 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,115, 2, 27, 2, 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, 75, 3, 0, 0, 43, 2, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +115, 2, 27, 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,240, 0, 0, 0, 88,142, 71, 27, 1, 0, 0, 0,158, 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,136,143, 71, 27, 1, 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, 68, 65, 84, 65, 40, 0, 0, 0,136,143, 71, 27, 1, 0, 0, 0, + 16, 1, 0, 0, 1, 0, 0, 0, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,143, 71, 27, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,135, 71, 27, 1, 0, 0, 0, 8,109, 71, 27, 1, 0, 0, 0, + 72,108, 71, 27, 1, 0, 0, 0, 40,107, 71, 27, 1, 0, 0, 0,136,107, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 3, 0, 0,118, 7, 0, 0, 17, 2, 0, 0, 69, 4, 0, 0, 8, 8, 42, 4, 53, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152,150, 71, 27, 1, 0, 0, 0,152,150, 71, 27, 1, 0, 0, 0,216,144, 71, 27, 1, 0, 0, 0, + 40,149, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 72,146, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 64,133, 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, 41, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 64, 50, 68, 0, 0,200, 65, 0, 64, 50, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 42, 4, 26, 0, 42, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 3, 0, 0,118, 7, 0, 0, 17, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 4, 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, 72,146, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +184,147, 71, 27, 1, 0, 0, 0,216,144, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 7, 0, 0, 43, 2, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,147, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 40,149, 71, 27, 1, 0, 0, 0, 72,146, 71, 27, 1, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67, + 96,187,216,196, 96,187,216, 68,244, 43, 91,196,244, 43, 91, 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, 41, 4, 0, 0, 0, 0, 0, 0, 26, 2, 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, 42, 4, 27, 2, 42, 4, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 3, 0, 0,118, 7, 0, 0, 43, 2, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 4, 27, 2, 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, 40,149, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,147, 71, 27, 1, 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,128, 64, 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,152,150, 71, 27, 1, 0, 0, 0,160, 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, 16, 6, 0, 0, 56,106,106, 3, 1, 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, 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, + 1, 0, 0, 4, 0, 0, 0, 0, 72,152, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,114,106, 3, 1, 0, 0, 0, + 24,169, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,158, 71, 27, 1, 0, 0, 0, 40,160, 71, 27, 1, 0, 0, 0, + 72,159, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,124, 71,192,251,150,101,192, 41,217, 30, 64,209, 16,232,191, + 98,117,149,191,200,200, 95, 63,209, 16,232,191, 98,117,149,191,200,200, 95, 63,209, 16,232,191, 98,117,149,191,200,200, 95, 63, + 1, 0, 0, 0, 1, 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,152,160, 71, 27, 1, 0, 0, 0, 8, 72, 55, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 0,141, 0,128, 7, 56, 4, 8, 0, + 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 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, + 56,164, 71, 27, 1, 0, 0, 0, 56,164, 71, 27, 1, 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, 47, 98, 97, 99,107, 98,117,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 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,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, 67, 89, 67, 76, 69, 83, 0, 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, 0, 0, 0, 0, 0, 0, 0, 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,166, 19, 1, 0, 0, 0, 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, 75,163, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 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,128, 2,224, 1, 60, 0, + 32, 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,128, 7, 56, 4,205,204,204, 61, 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, 68, 65, 84, 65, 96, 0, 0, 0, + 72,152, 71, 27, 1, 0, 0, 0, 8, 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,232,152, 71, 27, 1, 0, 0, 0, 88,156, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,232,152, 71, 27, 1, 0, 0, 0, + 8, 0, 0, 0, 1, 0, 0, 0,120,154, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,110,101,116,119, +111,114,107, 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,136,153, 71, 27, 1, 0, 0, 0,136,153, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,136,153, 71, 27, 1, 0, 0, 0, 8, 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,115,101,114,118,101,114, 95, 97,100,100,114,101, +115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,154, 71, 27, 1, 0, 0, 0, + 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, 10, 0, 0, 0, + 68, 65, 84, 65, 12, 0, 0, 0, 40,154, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 91,100,101,102, 97,117,108,116, + 93, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120,154, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 24,155, 71, 27, + 1, 0, 0, 0,232,152, 71, 27, 1, 0, 0, 0, 6, 0, 0, 0,112,111,115,101, 95,116,101,109,112,108, 97,116,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, 68, 65, 84, 65, + 96, 0, 0, 0, 24,155, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 88,156, 71, 27, 1, 0, 0, 0,120,154, 71, 27, + 1, 0, 0, 0, 6, 0, 0, 0, 99,103,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,184,155, 71, 27, 1, 0, 0, 0,184,155, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,184,155, 71, 27, + 1, 0, 0, 0, 8, 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, +114,101,115,112,111,110,115,101, 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, 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, 68, 65, 84, 65, 96, 0, 0, 0, 88,156, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,155, 71, 27, 1, 0, 0, 0, 6, 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,248,156, 71, 27, 1, 0, 0, 0, 56,158, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,248,156, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0,152,157, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,109, 97,120, 95, 98,111,117,110, 99,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, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0,152,157, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 56,158, 71, 27, 1, 0, 0, 0,248,156, 71, 27, + 1, 0, 0, 0, 1, 0, 0, 0,110,111, 95, 99, 97,117,115,116,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, 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, 56,158, 71, 27, + 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,157, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, +109, 97,120, 95,112, 97,115,115,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,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,158, 71, 27, 1, 0, 0, 0,127, 0, 0, 0, + 1, 0, 0, 0, 72,159, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 85, 2,238, 0, 56,126,106, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,159, 71, 27, 1, 0, 0, 0,127, 0, 0, 0, + 1, 0, 0, 0,184,159, 71, 27, 1, 0, 0, 0,216,158, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, +157, 1,239, 0, 56,120,106, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,159, 71, 27, 1, 0, 0, 0,127, 0, 0, 0, + 1, 0, 0, 0, 40,160, 71, 27, 1, 0, 0, 0, 72,159, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 39, 2,201, 0, 56,132,106, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,160, 71, 27, 1, 0, 0, 0,127, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,159, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, +224, 46,118, 1, 56,114,106, 3, 1, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0,152,160, 71, 27, 1, 0, 0, 0,147, 0, 0, 0, + 1, 0, 0, 0,152,162, 71, 27, 1, 0, 0, 0, 24,163, 71, 27, 1, 0, 0, 0,152,163, 71, 27, 1, 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,184,167, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 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, 17, 0, 0, 0, 35, 0, 0, 0,204,197,121, 63, + 0, 0, 0, 63, 68, 65, 84, 65, 56, 0, 0, 0,152,162, 71, 27, 1, 0, 0, 0,146, 0, 0, 0, 1, 0, 0, 0, 40, 69, 72, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 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, 56, 0, 0, 0, 24,163, 71, 27, + 1, 0, 0, 0,146, 0, 0, 0, 1, 0, 0, 0, 40, 69, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255,128, + 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, 68, 65, 84, 65, 96, 0, 0, 0,152,163, 71, 27, 1, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0,152,136, 72, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,124, 7,231, 65,255, 74, 20, 65, 54, 86,123, 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, + 88, 0, 0, 0, 56,164, 71, 27, 1, 0, 0, 0,133, 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,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0,240, 1, 0, 0,216,164, 71, 27, 1, 0, 0, 0, 23, 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, 82,101,110,100,101,114, 32, 82,101,115,117,108,116, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,178,229, 76, 0, 0, 0, 4, 0, 4, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 67, 65, 0, 0,136, 0, 0, 0, 8,167, 71, 27, + 1, 0, 0, 0, 21, 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, 1, 0, 0, 0, 0, 0, 0, 0,216,167, 71, 27, 1, 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, 0, 0,224, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,216,167, 71, 27, + 1, 0, 0, 0, 8, 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,120,168, 71, 27, 1, 0, 0, 0,120,168, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120,168, 71, 27, 1, 0, 0, 0, 8, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 79, 0, 0,232, 1, 0, 0, 24,169, 71, 27, 1, 0, 0, 0,126, 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, 1, 0, 0, 0, 0, 0, 0, 0, 72,171, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 93,229, 62,115, 93,229, 62,115, 93,229, 62, +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, 1, 0, 0, 0, 0, 0,152,182, 71, 27, 1, 0, 0, 0,200,173, 71, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,171, 71, 27, 1, 0, 0, 0, 8, 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,232,171, 71, 27, + 1, 0, 0, 0,232,171, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 0, 0, 0,232,171, 71, 27, 1, 0, 0, 0, 8, 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, 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,136,172, 71, 27, 1, 0, 0, 0, 40,173, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,136,172, 71, 27, + 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 40,173, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, +115,117,110,115,107,121, 95,116,117,114, 98,105,100,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, 72,225, 10, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 40,173, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,172, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0,117,115,101, 95,115,117,110,115, +107,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,200,173, 71, 27, 1, 0, 0, 0, 54, 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, 78, 84, 83,104, + 97,100,101,114, 32, 78,111,100,101,116,114,101,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, 24,175, 71, 27, 1, 0, 0, 0,104,176, 71, 27, + 1, 0, 0, 0, 24,182, 71, 27, 1, 0, 0, 0, 24,182, 71, 27, 1, 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, 56,227, 55, 2, + 1, 0, 0, 0,152, 11, 56, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 24,175, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0,104,176, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 0, 17, 0, 1, 0,255, 15, 0, 0, 0, 0, + 0, 0, 0, 0,184,177, 71, 27, 1, 0, 0, 0,152,178, 71, 27, 1, 0, 0, 0,120,179, 71, 27, 1, 0, 0, 0,120,179, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,150, 67, 0, 0, 22, 67, + 0, 0, 40, 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, 8,241, 55, 2, + 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,104,176, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,175, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,111,114,108,100, 32, 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,125, 0, 65, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,180, 71, 27, 1, 0, 0, 0, 56,181, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0,150, 67, 0, 0,240, 66, + 0, 0, 40, 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,200,253, 55, 2, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,184,177, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,152,178, 71, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108,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, 66, 96,229, 62, 66, 96,229, 62, 66, 96,229, 62, + 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, 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, 68, 65, 84, 65,152, 0, 0, 0,152,178, 71, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,177, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,116,114,101,110,103,116,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,116, 73, 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, 68, 65, 84, 65,152, 0, 0, 0,120,179, 71, 27, 1, 0, 0, 0, 50, 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, 66, 97, 99,107,103,114,111,117,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 88,180, 71, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 56,181, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,117,114,102, 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,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 24,182, 71, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 56,181, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,180, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,111,108,117,109,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0, 24,182, 71, 27, + 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,175, 71, 27, + 1, 0, 0, 0,104,176, 71, 27, 1, 0, 0, 0,120,179, 71, 27, 1, 0, 0, 0, 88,180, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,182, 71, 27, 1, 0, 0, 0, 11, 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, 37, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 0, 0, 16, 5, 0, 0, 56,114,106, 3, 1, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0, 56,120,106, 3, + 1, 0, 0, 0, 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, 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, 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, 8,167, 71, 27, + 1, 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,153, 58,254, 64,161,159,227,192, 16,159,193, 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, 36,228,139, 63,161, 81, 99, 37,101, 59, 71, 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, 4, 79, 54, 63,133,184, 51, 63,161, 81, 99,165, 0, 0, 0, 0,198, 79,165,190, 40,177,167, 62, +161, 81, 99, 63, 0, 0, 0, 0,236,149, 31, 63, 50,226, 33,191,163,121,235, 62, 0, 0, 0, 0,153, 58,254, 64,161,159,227,192, + 16,159,193, 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, 0, 0, 0, 0, 2, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0,181, 0, 0, 0, 53, + 1, 0, 0,169, 0, 0,128, 63, 3, 79, 54, 63,198, 79,165,190,235,149, 31, 63, 0, 0, 0, 0,132,184, 51, 63, 40,177,167, 62, + 49,226, 33,191, 0, 0, 0, 0, 0, 0,128,177,160, 81, 99, 63,161,121,235, 62, 0, 0, 0, 0,147,251, 41,191, 99,175,244,190, + 37,188, 67,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, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 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, 1, 0, 2, 0, 1, 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, 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,183, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 68, 65, 84, 65,152, 0, 0, 0, 8,183, 71, 27, 1, 0, 0, 0,117, 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, + 16, 5, 0, 0, 56,120,106, 3, 1, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0, 56,126,106, 3, 1, 0, 0, 0, 56,114,106, 3, + 1, 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, 46, 48, 48, 49, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,244,166, 19, 1, 0, 0, 0, 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,232, 71, 27, 1, 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,104,185, 71, 27, + 1, 0, 0, 0,104,185, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,183, 71, 27, 1, 0, 0, 0, 56,184, 71, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,209, 16,232,191, 98,117,149,191,200,200, 95, 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, 95,194,178, 63, 95,194,178, 63, 96,194,178, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,115, 96,129, 63,250, 26,173, 62, 82,198,159, 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, + 87,212,213, 62, 55,241,159, 63, 8, 44,237,190, 0, 0, 0, 0, 65, 71, 20,191,254,125, 27, 63,124,224,142, 63, 0, 0, 0, 0, +242,159,153, 63,130, 21, 17,190, 87, 43, 51, 63, 0, 0, 0, 0,209, 16,232,191, 98,117,149,191,200,200, 95, 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,255,255,159,179,255,255,255, 50, 0, 0, 0, 0,255,255,191,178,254,255,127, 63,253,255,127, 50, 0, 0, 0, 0, +255,255,143, 37,254,255, 63,178, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 52,254,255,127,180, 0, 0, 64, 28, 0, 0,128, 63, + 80, 69, 91, 62, 43, 13,152,190,174,136, 29, 63, 0, 0, 0, 0, 28, 3, 36, 63,231,114,159, 62,155,198,148,189, 0, 0, 0, 0, + 0, 53,115,190, 54,131, 18, 63,123,186,183, 62, 0, 0, 0, 0,142, 5,172, 63, 35,210, 44,191,180,151, 55, 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, + 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 1, 0, 2, 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,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, 10,215, 35, 61, 0, 0,128, 63, +205,204,204, 62,205,204,204, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, + 1, 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,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,136,184, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72,201,166, 19, + 1, 0, 0, 0,168,237,166, 19, 1, 0, 0, 0, 25, 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, 68, 65, 84, 65, 8, 0, 0, 0,232,183, 71, 27, 1, 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, 56,184, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,152, 0, 0, 0,136,184, 71, 27, 1, 0, 0, 0,117, 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, 22, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,104,185, 71, 27, 1, 0, 0, 0, + 73, 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, 23, 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, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,244, 85, 3, 1, 0, 0, 0, 79, 66, 0, 0, 16, 5, 0, 0, 56,126,106, 3, 1, 0, 0, 0, +114, 0, 0, 0, 1, 0, 0, 0, 56,132,106, 3, 1, 0, 0, 0, 56,120,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 77,111,110,107,101,121, 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, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,209,166, 19, 1, 0, 0, 0, 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,240, 71, 27, 1, 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,184,186, 71, 27, 1, 0, 0, 0,184,186, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,186, 71, 27, 1, 0, 0, 0,104,186, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, +160, 28,114, 62,244, 49, 56, 62, 27,139, 34, 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,208,229,153, 63,208,229,153, 63,208,229,153, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203,198,106, 63, + 0, 0, 0,128, 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,208,229,153, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214, 45, 59, 63, 7, 87,116, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 87,116,191,214, 45, 59, 63, + 0, 0, 0, 0,160, 28,114, 62,244, 49, 56, 62, 27,139, 34, 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, 0, 0, 0, 0, 0, 0, 0,179, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0,128, 63,176,235, 84, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,169,123, 1, 63, 82, 6, 41,191, 0, 0, 0, 0, 0, 0, 0, 0, 83, 6, 41, 63,169,123, 1, 63, + 0, 0, 0, 0,155, 94, 73,190, 98,156, 2,191,236, 60, 79,190, 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, 0, 0, 4, + 1, 0, 2, 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,100, 0, 0, 0, + 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, 10,215, 35, 61, 0, 0,128, 63,205,204,204, 62,205,204,204, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 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,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,136,193,166, 19, 1, 0, 0, 0,184,215,166, 19, 1, 0, 0, 0, + 25, 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, 68, 65, 84, 65, 8, 0, 0, 0, + 24,186, 71, 27, 1, 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,186, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,184,186, 71, 27, + 1, 0, 0, 0, 73, 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, + 23, 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, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 62, 11, 3, 1, 0, 0, 0, 79, 66, 0, 0, 16, 5, 0, 0, 56,132,106, 3, + 1, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,126,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 80,108, 97,110,101, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,242,166, 19, 1, 0, 0, 0, 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,248, 71, 27, 1, 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,187, 71, 27, 1, 0, 0, 0,184,187, 71, 27, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,236, 14,234,190,237, 14,106, 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,139,136, 64, 0,139,136, 64, 0,139,136, 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,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,139,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,136, 64, 0, 0, 0, 0,236, 14,234,190,237, 14,106, 62, 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,170,251,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170,251,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +170,251,111, 62, 0, 0, 0, 0, 6,106,219, 61, 7,106, 91,189, 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, + 0, 0, 0, 4, 1, 0, 2, 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, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, 10,215, 35, 61, 0, 0,128, 63,205,204,204, 62,205,204,204, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 5, 0, 1, 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,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, 8,223,166, 19, 1, 0, 0, 0,248,152,166, 19, + 1, 0, 0, 0, 25, 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, 68, 65, 84, 65, + 8, 0, 0, 0,104,187, 71, 27, 1, 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,184,187, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, + 8,188, 71, 27, 1, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0,232,201, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,199, 1, 24, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0,104,191, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 63,197,250,231, 62, 26,107,229, 61, 0, 0,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, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,192, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,201, 71, 27, 1, 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, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 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, 96, 0, 0, 0,104,191, 71, 27, 1, 0, 0, 0, + 8, 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, 8,192, 71, 27, 1, 0, 0, 0, 8,192, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 8,192, 71, 27, 1, 0, 0, 0, 8, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0,168,192, 71, 27, 1, 0, 0, 0, 54, 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, 78, 84, 83,104, 97,100,101,114, + 32, 78,111,100,101,116,114,101,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,248,193, 71, 27, 1, 0, 0, 0, 72,195, 71, 27, 1, 0, 0, 0, +248,200, 71, 27, 1, 0, 0, 0,248,200, 71, 27, 1, 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, 56,227, 55, 2, 1, 0, 0, 0, +152, 11, 56, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0,248,193, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 72,195, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152,183, 1, 24, 1, 0, 0, 0, 68,105,102,102,117,115,101, 32, 66, 83, 68, 70, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0, 1, 0, 1, 0,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, +152,196, 71, 27, 1, 0, 0, 0,152,196, 71, 27, 1, 0, 0, 0,120,197, 71, 27, 1, 0, 0, 0,120,197, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,210,215, 68, 67,233,222,225, 67, 0, 0, 22, 67, 0, 0, 40, 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,210,215, 68, 67,233,107,173, 67, +233,222,190, 67,233,222,225, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,210,215, 78, 67,233,107,168, 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, 24,242, 55, 2, 1, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0, 72,195, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,193, 71, 27, 1, 0, 0, 0,184,250, 0, 24, 1, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 32, 79,117,116,112,117,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 81, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 88,198, 71, 27, 1, 0, 0, 0, 24,200, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,107,198, 67,233,222,225, 67, 0, 0,240, 66, 0, 0, 40, 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,233,107,198, 67,244, 53, 1, 68, +233, 94,183, 67,233,222,225, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,107,203, 67,232,107,253, 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,184,252, 55, 2, 1, 0, 0, 0, + 68, 65, 84, 65,152, 0, 0, 0,152,196, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,202, 1, 24, 1, 0, 0, 0, 67,111,108,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,205,204, 76, 63,128, 11,174, 62,147,183,249, 61, 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, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,210,215, 68, 67,233, 94,198, 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, 68, 65, 84, 65,152, 0, 0, 0,120,197, 71, 27, 1, 0, 0, 0, + 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 48, 1, 24, 1, 0, 0, 0, + 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,107,173, 67, +233, 94,208, 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, + 68, 65, 84, 65,152, 0, 0, 0, 88,198, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 56,199, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 71,207, 20, 1, 0, 0, 0, 83,117,114,102, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,107,198, 67,233,222,210, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,200, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 56,199, 71, 27, 1, 0, 0, 0, + 50, 1, 0, 0, 1, 0, 0, 0, 24,200, 71, 27, 1, 0, 0, 0, 88,198, 71, 27, 1, 0, 0, 0,216, 43, 1, 24, 1, 0, 0, 0, + 86,111,108,117,109,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,107,198, 67, +233,222,200, 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, + 68, 65, 84, 65,152, 0, 0, 0, 24,200, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,199, 71, 27, 1, 0, 0, 0,248,189, 1, 24, 1, 0, 0, 0, 68,105,115,112,108, 97, 99,101,109,101,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, 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, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,107,198, 67,233,222,190, 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, 68, 65, 84, 65, 56, 0, 0, 0,248,200, 71, 27, 1, 0, 0, 0, + 53, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,193, 71, 27, 1, 0, 0, 0, + 72,195, 71, 27, 1, 0, 0, 0,120,197, 71, 27, 1, 0, 0, 0, 88,198, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,120,201, 71, 27, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, + 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0,141, 0,141, 0, 56,138,106, 3, 1, 0, 0, 0, 56,156,106, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 0, 16, 0, 0, 56,138,106, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,144, 0, 0, + 56,156,106, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,216, 4,211,212,176, 0, 0, 0,159, 0, 0, 0, 1, 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, 2, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,213,176, - 0, 0, 0,194, 0, 0, 0, 1, 4,211,217,112, 4,211,192,160, 4,211,176, 96, 4,211,180,144, 4,211,180,208, 4,211,179,144, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 0, 0, 0, 0, 0, 0, 0,131, 15, 15, 6, 44, 0,132, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4,211,216,128, 4,211,216,128, 4,211,214, 64, 4,211,215, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,214, 64, 0, 0, 0,195, 0, 0, 0, 1, 4,211,215, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 68,137,160, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,197,128, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 43, 0, 0, 0, 0, 0, 0, 0, 25, 68,202,224, 0, 65,200, 0, 0, 68,202,224, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 6, 44, 0, 26, 6, 44, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 44, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,215, 96, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,214, 64,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, -192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 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, 43, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 43, 0, 0, 0, 18, 0, 0, 0,105, - 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, - 0, 4, 4, 0, 0, 8, 6, 44, 0,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, 6, 43, 0, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 44, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,188, 4,211,216,128, 0, 0, 0,170, 0, 0, 0, 1, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,217,112, 0, 0, 0,194, - 0, 0, 0, 1, 4,211,222,112, 4,211,213,176, 4,211,180, 16, 4,211,182, 16, 4,211,182, 80, 4,211,180, 80, 0, 0, 0, 0, - 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 1,221, 0, 0, 3, 99, 3, 3, 1, 74, 1,135, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,211,220, 64, 4,211,220, 64, 4,211,218, 0, 4,211,219, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,218, 0, 0, 0, 0,195, 0, 0, 0, 1, 4,211,219, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 25, 67, 66, 0, 0, 65,200, 0, 0, 67, 66, 0, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 74, 0, 26, 1, 74, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 3, 74, 0, 0, 3, 99, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,219, 32, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,211,218, 0, 0, 0, 0, 0, 67,131,128, 0,194,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,156,128, 0,195,173,128, 0, 0, 0, 0, 0, 0, 0, 1, 57, 0, 0, 1, 74, 0, 0, 0, 18, 0, 0, 1,108, 0, 0, 0, 0, - 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 56, 0, 0, 0, 18, 0, 0, 1,108, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, - 0, 6, 1, 74, 1,109, 1, 57, 1, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, - 0, 0, 1,221, 0, 0, 3, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 1,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,244, 4,211,220, 64, 0, 0, 0,163, 0, 0, 0, 1, 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, 4,211,221, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 12, 4,211,221, 96, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, - 4,211,221,160, 68, 65, 84, 65, 0, 0, 0,168, 4,211,221,160, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 1, - 2,152,190, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 21, 0, 1, - 0, 1, 0, 0, 2,152,190, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,120,240, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,202, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 4,213,128,192, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,214, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 4,213,127, 16, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,208, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,117,128, 0, 0, 0, 0, - 0, 1, 0, 1, 2,152,196, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,116,240, 0, 21, 0, 0, 0, 1, 0, 1, 2,152,190, 32, - 68, 65, 84, 65, 0, 0, 0, 96, 4,211,222,112, 0, 0, 0,194, 0, 0, 0, 1, 4,211,229,208, 4,211,217,112, 4,211,181, 16, - 4,211,181, 80, 4,211,179,208, 4,211,180,208, 0, 0, 0, 0, 0, 0, 2,161, 0, 0, 6, 43, 0, 0, 0,133, 0, 0, 4, 69, - 1, 1, 3,139, 3,193, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,211,228,160, 4,211,228,160, 4,211,223, 0, - 4,211,227,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,223, 0, - 0, 0, 0,195, 0, 0, 0, 1, 4,211,224, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68,117, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 98,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,138, 0, 0, 0, 0, 0, 0, 0, 25, - 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 4, 12, 0, 10, 3,139, 0, 26, 3,139, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,161, - 0, 0, 6, 43, 0, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 0, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,211,224, 32, 0, 0, 0,195, 0, 0, 0, 1, 4,211,225, 64, 4,211,223, 0, 0, 0, 0, 0, - 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, - 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 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, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,161, 0, 0, 2,161, 0, 0, 0,159, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,167, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,225, 64, 0, 0, 0,195, 0, 0, 0, 1, - 4,211,226, 96, 4,211,224, 32, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231, -194,206, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 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, 2,161, 0, 0, 6, 43, 0, 0, 0,159, - 0, 0, 0,159, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,211,226, 96, 0, 0, 0,195, 0, 0, 0, 1, 4,211,227,128, 4,211,225, 64, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, - 0, 0, 3,147, 0, 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, 3,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, - 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 3,148, 0,163, 3,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 43, 0, 0, 6, 43, 0, 0, 0,159, 0, 0, 4, 69, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,227,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,226, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,161, 0, 0, 6, 43, 0, 0, 0,159, 0, 0, 4, 69, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,139, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152, 86, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,152, 86, 32, 0, 0, 0,153, - 0, 0, 0, 1, 63,144, 82,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,140, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 76,215, 74, - 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, - 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, - 63,128, 0, 0, 62,236,180, 89,190,224,249,209,191, 81,180, 48,191, 81,158,184, 63,131,158, 65, 62, 88,225,142, 62,185, 63, 26, - 62,185, 44, 35,188,117, 11, 38, 63,122,156,207,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 62,186, 48,211, 63, 79, 16, 11,188, 64,199,144,180,135, 0, 0,190,188, 15,163, 62, 53, 75,102, 63, 81,125,223, - 51,104, 0, 0,194,117,107,207, 65,216,204, 81,194, 5,156, 40,192,159,247,136, 66,114, 62,121,193,213,253,214, 66, 3,225, 94, - 64,160, 7,236, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,236,180, 89,190,224,249,209,191, 81,180, 48,191, 81,158,184, 63,131,158, 65, 62, 88,225,142, 62,185, 63, 26, - 62,185, 44, 35,188,117, 11, 38, 63,122,156,207,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 64, 12,181, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 12,181, 99, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 12,181, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 0, 43, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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, 63,128, 0, 0, 66, 12, 33, 30, 66,137,152, 85, - 66,126, 27,116, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 0, 4,211,228,160, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 0, 7, 2,152,196, 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, 1, - 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 0, 0, 8, 8, 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 61,204,204,205, 67,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 4,211,229,208, 0, 0, 0,194, 0, 0, 0, 1, 4,211,236, 96, 4,211,222,112, 4,211,180,144, 4,211,181,144, - 4,211,181,208, 4,211,181, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,159, 0, 0, 0,133, 0, 0, 1,139, 2, 2, 2,160, - 1, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,211,234,224, 4,211,234,224, 4,211,230, 96, 4,211,233,192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,230, 96, 0, 0, 0,195, - 0, 0, 0, 1, 4,211,231,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,100,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68, 40, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,159, 0, 0, 0, 0, 0, 0, 0, 25, 68,103,192, 0, - 65,200, 0, 0, 68,103,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, - 0, 10, 2,160, 0, 26, 2,160, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,159, - 0, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,160, 0, 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, 68, 65, 84, 65, - 0, 0, 0,248, 4,211,231,128, 0, 0, 0,195, 0, 0, 0, 1, 4,211,232,160, 4,211,230, 96, 0, 0, 0, 0, 67, 72, 0, 0, -193,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,195, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, - 0, 0, 0, 18, 0, 0, 0,236, 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,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 6, 10, 0, 0, 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, 0,237, 0,200, 0,219, 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,159, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,217, 0,237, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,232,160, 0, 0, 0,195, 0, 0, 0, 1, 4,211,233,192, - 4,211,231,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,159, 0, 0, 2,159, 0, 0, 0,159, 0, 0, 1,139, - 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,233,192, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,232,160,193, 16, 0, 0, 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, - 0, 0, 0, 0, 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,236, - 0, 0, 0, 18, 0, 0, 1,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,198, 0, 0, 0, 18, 0, 0, 0,236, - 58,131, 18,111, 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 1,199, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, - 0, 0, 2,159, 0, 0, 0,159, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,199, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,208, 4,211,234,224, 0, 0, 0,158, 0, 0, 0, 1, 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, 4,211,235,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 4,211,235,224, 0, 0, 1, 16, 0, 0, 0, 1, 2,152,190, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,236, 96, 0, 0, 0,194, - 0, 0, 0, 1, 4,211,241,144, 4,211,229,208, 4,211,181,144, 4,211,179, 16, 4,211,181, 80, 4,211,181,208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,159, 0, 0, 1,141, 0, 0, 4, 69, 12, 12, 2,160, 2,185, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,211,240, 80, 4,211,240, 80, 4,211,236,240, 4,211,239, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,236,240, 0, 0, 0,195, 0, 0, 0, 1, 4,211,238, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68,106, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 40, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,159, 0, 0, 0, 0, 0, 0, 0, 25, 68,103,192, 0, 65,200, 0, 0, 68,103,192, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 2,160, 0, 26, 2,160, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,159, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,160, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,238, 16, 0, 0, 0,195, - 0, 0, 0, 1, 4,211,239, 48, 4,211,236,240, 0, 0, 0, 0, 67, 55, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 72, 0, 0,196, 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, 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, 2,158, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 4, 8, 0, 0, 0, 2, 3, 3, 0, 0, 4, 2, - 0, 6, 0,200, 2,159, 0,200, 2,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, - 0, 0, 1,167, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 2,159, 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, 68, 65, 84, 65, - 0, 0, 0,248, 4,211,239, 48, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,238, 16,193, 32, 0, 0, 68,104, 0, 0, -194, 0, 0, 0, 0, 0, 0, 0,193, 32, 0, 0, 68,104, 0, 0,196, 35, 64, 0, 0, 0, 0, 0, 0, 0, 1,199, 0, 0, 1,216, - 0, 0, 0, 18, 0, 0, 2,158, 0, 0, 0, 0, 0, 0, 1,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,198, - 0, 0, 0, 18, 0, 0, 2,158, 0, 0, 0, 0, 0, 0, 0, 0, 72,146,124, 0, 70, 28, 64, 0, 60, 35,215, 10, 66, 72, 0, 0, - 0, 74, 0, 0, 0, 0, 2, 0, 0, 0, 4, 2, 0, 4, 1,216, 2,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 2,159, 0, 0, 1,167, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1,216, 2,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 24, 4,211,240, 80, 0, 0, 1, 17, 0, 0, 0, 1, 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, 2,152,190, 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, 3, 2, 2, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,241,144, - 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,236, 96, 4,211,182, 16, 4,211,179,208, 4,211,179, 80, 4,211,182, 80, - 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 3,101, 0, 0, 4, 69, 1, 1, 1, 74, 0,225, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4,211,244, 96, 4,211,244, 96, 4,211,242, 32, 4,211,243, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,211,242, 32, 0, 0, 0,195, 0, 0, 0, 1, 4,211,243, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 64, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, 0, 0, 0, 23, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 24, 1, 74, - 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 0, 0, 7,118, 0, 0, 3,101, 0, 0, 3,101, - 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, 68, 65, 84, 65, 0, 0, 0,248, 4,211,243, 64, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,242, 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, 6, 45, - 0, 0, 7,118, 0, 0, 3,101, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0,225, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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,152, 90, 32, - 68, 65, 84, 65, 0, 0, 3, 68, 2,152, 90, 32, 0, 0, 0,153, 0, 0, 0, 1, 64, 13,255, 24, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 80, 66,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154, -191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, 0, 0, 0, 0, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, - 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, - 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, - 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, - 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, 63,128, 0, 0, 63,194,201, 3,191,132, 49, 34,191, 39,250,244, -191, 39,165, 8, 63,206,164,143, 63,130, 38,124, 63, 28,164,180, 63, 28, 84,149,188,196,153,179, 64, 58,119, 42,190,228,108, 8, -190,227,247, 50,191, 64, 21, 82,191,156,230,204, 65, 49, 49,216, 65, 52, 9,152, 62,158, 70,231, 62,167,234, 23,187,159,206,128, -180,168, 0, 0,189,199,189, 59, 61,196,167,147, 62,140,223,206, 51,248, 0, 0,194, 21,120,211, 66, 2, 5,145,193,213,136, 10, -192,159,214,193, 66, 19, 38,219,193,255,173,197, 65,210,101,158, 64,160, 40,173, 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, - 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, - 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, 63,194,201, 3,191,132, 49, 34,191, 39,250,244, -191, 39,165, 8, 63,206,164,143, 63,130, 38,124, 63, 28,164,180, 63, 28, 84,149,188,196,153,179, 64, 58,119, 42,190,228,108, 8, -190,227,247, 50,191, 64, 21, 82,191,156,230,204, 65, 49, 49,216, 65, 52, 9,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 22,241,190,246,162, 78,190, 90, 8, 44, -190,171, 35, 3, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 51, 4,202, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 7, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 0, - 4,211,244, 96, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,152,196, 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, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 0, 0, 8, - 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,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, 16, 0, 0, 0, 7, 0, 10, 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, 83, 78, 0, 0, 0,148, 4,211,245,240, 0, 0, 0,190, 0, 0, 0, 1, - 4,212, 43, 0, 4,211,177,144, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,211,246,176, 4,211,249,240, 4,211,250, 48, - 4,211,255,112, 4,211,255,176, 4,212, 38,176, 0, 0, 0, 0, 0, 0, 0, 0, 2,152,190, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,246,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,246,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,246,240, 0, 0, 0,191, 0, 0, 0, 1, 4,211,247, 48, 4,211,246,176, 0, 0, 0, 0, 0, 0, 4, 97, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,247, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,211,247,112, 4,211,246,240, - 0, 0, 0, 0, 7,118, 4, 97, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,247,112, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,247,176, 4,211,247, 48, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,247,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,247,240, 4,211,247,112, 0, 0, 0, 0, 0, 0, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,247,240, 0, 0, 0,191, 0, 0, 0, 1, 4,211,248, 48, 4,211,247,176, 0, 0, 0, 0, 7,118, 4, 70, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,248, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,211,248,112, 4,211,247,240, - 0, 0, 0, 0, 6, 24, 0,100, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,248,112, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,248,176, 4,211,248, 48, 0, 0, 0, 0, 7,118, 0,100, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,248,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,248,240, 4,211,248,112, 0, 0, 0, 0, 6, 24, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,248,240, 0, 0, 0,191, 0, 0, 0, 1, 4,211,249, 48, 4,211,248,176, 0, 0, 0, 0, 0, 0, 1,172, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,249, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,211,249,112, 4,211,248,240, - 0, 0, 0, 0, 6, 24, 1,172, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,249,112, 0, 0, 0,191, 0, 0, 0, 1, - 4,211,249,176, 4,211,249, 48, 0, 0, 0, 0, 3, 0, 1,172, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,211,249,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,211,249,240, 4,211,249,112, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,211,249,240, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,249,176, 0, 0, 0, 0, 6, 24, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,250, 48, 0, 0, 0,192, 0, 0, 0, 1, 4,211,250,112, 0, 0, 0, 0, - 4,211,246,240, 4,211,247, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,250,112, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,250,176, 4,211,250, 48, 4,211,246,240, 4,211,247,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,250,176, 0, 0, 0,192, 0, 0, 0, 1, 4,211,250,240, 4,211,250,112, 4,211,247, 48, 4,211,247,240, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,250,240, 0, 0, 0,192, 0, 0, 0, 1, 4,211,251, 48, - 4,211,250,176, 4,211,247,176, 4,211,247,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,251, 48, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,251,112, 4,211,250,240, 4,211,247,112, 4,211,248,112, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,251,112, 0, 0, 0,192, 0, 0, 0, 1, 4,211,251,176, 4,211,251, 48, 4,211,248, 48, - 4,211,248,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,251,176, 0, 0, 0,192, 0, 0, 0, 1, - 4,211,251,240, 4,211,251,112, 4,211,247,240, 4,211,248,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,211,251,240, 0, 0, 0,192, 0, 0, 0, 1, 4,211,252, 48, 4,211,251,176, 4,211,247,176, 4,211,248,176, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,252, 48, 0, 0, 0,192, 0, 0, 0, 1, 4,211,252,112, 4,211,251,240, - 4,211,248, 48, 4,211,248,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,252,112, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,252,176, 4,211,252, 48, 4,211,247,240, 4,211,248,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,252,176, 0, 0, 0,192, 0, 0, 0, 1, 4,211,252,240, 4,211,252,112, 4,211,247,176, 4,211,248,240, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,252,240, 0, 0, 0,192, 0, 0, 0, 1, 4,211,253, 48, - 4,211,252,176, 4,211,248,176, 4,211,249, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,253, 48, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,253,112, 4,211,252,240, 4,211,248,240, 4,211,249, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,253,112, 0, 0, 0,192, 0, 0, 0, 1, 4,211,253,176, 4,211,253, 48, 4,211,248,240, - 4,211,249,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,253,176, 0, 0, 0,192, 0, 0, 0, 1, - 4,211,253,240, 4,211,253,112, 4,211,249, 48, 4,211,249,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,211,253,240, 0, 0, 0,192, 0, 0, 0, 1, 4,211,254, 48, 4,211,253,176, 4,211,246,176, 4,211,249,176, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,254, 48, 0, 0, 0,192, 0, 0, 0, 1, 4,211,254,112, 4,211,253,240, - 4,211,249,176, 4,211,249,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,254,112, 0, 0, 0,192, - 0, 0, 0, 1, 4,211,254,176, 4,211,254, 48, 4,211,247,112, 4,211,249,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,211,254,176, 0, 0, 0,192, 0, 0, 0, 1, 4,211,254,240, 4,211,254,112, 4,211,248, 48, 4,211,249,240, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,254,240, 0, 0, 0,192, 0, 0, 0, 1, 4,211,255, 48, - 4,211,254,176, 4,211,249,112, 4,211,249,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,211,255, 48, - 0, 0, 0,192, 0, 0, 0, 1, 4,211,255,112, 4,211,254,240, 4,211,249, 48, 4,211,249,240, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,211,255,112, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 4,211,255, 48, 4,211,246,176, - 4,211,248,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,211,255,176, 0, 0, 0,194, 0, 0, 0, 1, - 4,212, 2,128, 0, 0, 0, 0, 4,211,247,176, 4,211,246,240, 4,211,247, 48, 4,211,247,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 97, 7, 7, 7,119, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 4,212, 42,160, 4,212, 42,160, 4,212, 0, 64, 4,212, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 4,212, 0, 64, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,238,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,119, 0, 26, 7,119, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7,119, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 1, 96, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212, 0, 64, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, - 0, 2, 7,112, 0, 1, 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, 97, - 0, 0, 4, 97, 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, 68, 65, 84, 65, 0, 0, 0, 96, - 4,212, 2,128, 0, 0, 0,194, 0, 0, 0, 1, 4,212, 6, 64, 4,211,255,176, 4,211,249,240, 4,211,248, 48, 4,211,248,112, - 4,211,247,112, 0, 0, 0, 0, 0, 0, 6, 25, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 0, 99, 15, 15, 1, 94, 0,100, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 5, 80, 4,212, 5, 80, 4,212, 3, 16, 4,212, 4, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 3, 16, 0, 0, 0,195, 0, 0, 0, 1, - 4,212, 4, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68,110,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 67,161,128, 0, 68, 40, 64, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 68,202,224, 0, 65,200, 0, 0, - 68,202,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 94, - 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 25, 0, 0, 7,118, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,212, 4, 48, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 3, 16,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0,193, 74, 51, 50, 67,131,209,154, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 18, - 0, 0, 0, 73, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, - 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 1, 94, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 25, 0, 0, 7,118, 0, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 94, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,188, 4,212, 5, 80, 0, 0, 0,170, 0, 0, 0, 1, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 4,212, 6, 64, - 0, 0, 0,194, 0, 0, 0, 1, 4,212, 27, 80, 4,212, 2,128, 4,211,248, 48, 4,211,248,176, 4,211,247,240, 4,211,248,112, - 0, 0, 0, 0, 0, 0, 6, 25, 0, 0, 7,118, 0, 0, 0,101, 0, 0, 4, 69, 4, 4, 1, 94, 3,225, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4,212, 26, 80, 4,212, 26, 80, 4,212, 6,208, 4,212, 7,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 6,208, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 7,240, - 0, 0, 0, 0, 0, 0, 0, 0, 67,160, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, 0, 0, 0, 0, - 65,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 30, 67,137,128, 0, 65,200, 0, 0, 67,137,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 94, 0, 31, 1, 94, - 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 25, 0, 0, 7,118, 0, 0, 4, 39, 0, 0, 4, 69, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 31, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 7,240, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 6,208, 0, 0, 0, 0, 67,174,128, 0,196,112, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,166,127,255,196,112,127,254, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 1, 94, 0, 0, 0, 0, 0, 0, 3,193, - 0, 0, 0, 0, 0, 0, 1, 82, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 76, 0, 0, 0, 0, 0, 0, 3,193, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 1, 94, 3,194, 1, 77, 3,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 25, - 0, 0, 7,118, 0, 0, 0,101, 0, 0, 4, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 3,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,212, 9, 16, 4,212, 24,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 9, 16, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 10,128, 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,255,220, 1, 76, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 10,128, - 0, 0, 0,193, 0, 0, 0, 1, 4,212, 11,240, 4,212, 9, 16, 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,255,135, 1, 76, 0, 61, - 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 11,240, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 13, 96, - 4,212, 10,128, 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,255,111, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212, 13, 96, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 14,208, 4,212, 11,240, 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,254,140, 1, 76, 0,203, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 14,208, 0, 0, 0,193, - 0, 0, 0, 1, 4,212, 16, 64, 4,212, 13, 96, 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,254, 58, 1, 76, 0, 58, 0, 20, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 16, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 17,176, 4,212, 14,208, - 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, 70,117,108,108, 32, 83, 97,109,112,108,101, 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,254, 34, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212, 17,176, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 19, 32, 4,212, 16, 64, 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,253,164, - 1, 76, 0,102, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 19, 32, 0, 0, 0,193, 0, 0, 0, 1, - 4,212, 20,144, 4,212, 17,176, 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,253, 10, 1, 76, 0,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 20,144, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 22, 0, 4,212, 19, 32, 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,252,242, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 22, 0, - 0, 0, 0,193, 0, 0, 0, 1, 4,212, 23,112, 4,212, 20,144, 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,252,218, 1, 76, 0, 0, - 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 23,112, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 24,224, - 4,212, 22, 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,252,194, 1, 76, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212, 24,224, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 23,112, 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,252,170, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,216, 4,212, 26, 80, 0, 0, 0,159, - 0, 0, 0, 1, 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, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 96, 4,212, 27, 80, 0, 0, 0,194, 0, 0, 0, 1, 4,212, 34,176, 4,212, 6, 64, 4,211,249,176, 4,211,249,112, - 4,211,249, 48, 4,211,249,240, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 6, 23, 0, 0, 0, 0, 0, 0, 1,171, 1, 1, 3, 23, - 1,172, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,212, 33,128, 4,212, 33,128, 4,212, 27,224, 4,212, 32, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 27,224, 0, 0, 0,195, - 0, 0, 0, 1, 4,212, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68, 69,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 22, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, - 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, - 0, 10, 3, 23, 0, 26, 3, 23, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 6, 23, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 0, 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, 68, 65, 84, 65, - 0, 0, 0,248, 4,212, 29, 0, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 30, 32, 4,212, 27,224, 0, 0, 0, 0, 67, 15, 0, 0, -196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, - 0, 0, 0, 18, 0, 0, 3, 43, 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, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 26, 0, 0, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1,146, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 30, 32, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 31, 64, - 4,212, 29, 0, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, - 0, 0, 0, 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, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 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, 3, 1, 0, 0, 6, 23, 0, 0, 0, 26, 0, 0, 0, 26, - 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 31, 64, - 0, 0, 0,195, 0, 0, 0, 1, 4,212, 32, 96, 4,212, 30, 32, 0, 0, 0, 0, 67, 35, 0, 0,196,108,192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 35, 0, 0,195,184, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 1,129, - 0, 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, 1,129, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 0, 0, 0, 6, 0,180, 1,130, 0,163, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, - 0, 0, 6, 23, 0, 0, 0, 26, 0, 0, 1,171, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,212, 32, 96, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 31, 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, 3, 1, 0, 0, 6, 23, 0, 0, 0, 26, 0, 0, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 1,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152, 94, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,152, 94, 32, 0, 0, 0,153, 0, 0, 0, 1, - 63,230,101, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 98,171,118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,191,128, 65,154,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 77, 1, 72, 0, 0, 0, 0, - 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, -188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, - 63, 47,149,223, 63, 58, 70, 55,188, 49, 56,192, 0, 0, 0, 0,190,162,126, 87, 62,159,251,228, 63,101, 53, 56, 0, 0, 0, 0, - 63, 39,165, 7,191, 28, 84,150, 62,227,247, 50, 0, 0, 0, 0, 64,239,101,110,192,208, 62,151, 64,170,255, 77, 63,128, 0, 0, - 63,158, 6, 3,191,143,224, 92,191, 39,250,244,191, 39,165, 8, 63,167,164,170, 63,141,167,132, 63, 28,164,180, 63, 28, 84,149, -188,159,127, 0, 64, 74,242,126,190,228,108, 8,190,227,247, 50,191, 27,212,221,191,170,197, 39, 65, 49, 49,216, 65, 52, 9,152, - 62,195, 25, 25, 62,206,250, 12,187,196,247, 0,180,150, 0, 0,189,183,132,203, 61,180,175, 61, 62,129,110,245, 51,120, 0, 0, -194, 21,120,211, 66, 2, 5,144,193,213,136, 9,192,159,214,193, 66, 19, 38,219,193,255,173,196, 65,210,101,157, 64,160, 40,173, - 63, 47,149,221,190,162,126, 85, 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0, -188, 49, 56,191, 63,101, 53, 54, 62,227,247, 50, 0, 0, 0, 0,190,173, 38, 90,190,192,221,254,193, 52, 9,152, 63,128, 0, 0, - 63,158, 6, 3,191,143,224, 92,191, 39,250,244,191, 39,165, 8, 63,167,164,170, 63,141,167,132, 63, 28,164,180, 63, 28, 84,149, -188,159,127, 0, 64, 74,242,126,190,228,108, 8,190,227,247, 50,191, 27,212,221,191,170,197, 39, 65, 49, 49,216, 65, 52, 9,152, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 22,241,190,246,162, 78,190, 90, 8, 44,190,171, 35, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, - 58,184, 30,162, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 0, 4,212, 33,128, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, - 2,152,196, 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, 1, 0, 0, 0, 1, - 0, 3, 0, 0, 0, 1, 0, 3, 0, 0, 8, 8, 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 61,204,204,205, - 67,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, 16, 0, 0, - 0, 7, 0, 10, 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, 68, 65, 84, 65, 0, 0, 0, 96, - 4,212, 34,176, 0, 0, 0,194, 0, 0, 0, 1, 4,212, 38,176, 4,212, 27, 80, 4,211,248,240, 4,211,247,176, 4,211,248,176, - 4,211,249, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, 0, 0, 1,173, 0, 0, 4, 69, 16, 16, 6, 24, 2,153, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,212, 37,128, 4,212, 37,128, 4,212, 35, 64, 4,212, 36, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 35, 64, 0, 0, 0,195, 0, 0, 0, 1, - 4,212, 36, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 41,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,195, 0, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 23, 0, 0, 0, 0, 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, - 68,189,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 6, 24, - 0, 26, 6, 24, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, 0, 0, 1,173, - 0, 0, 1,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 24, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,212, 36, 96, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 35, 64,193, 32, 0, 0, 68, 0, 0, 0,193, 32, 0, 0, - 68, 0, 0, 0,195,217,195,128, 68,108,225,192,193,178,130,240, 68, 5,148, 24, 0, 0, 6, 7, 0, 0, 6, 24, 0, 0, 0, 18, - 0, 0, 2,126, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 18, - 0, 0, 2,126, 63,128, 0, 0, 63,128, 0, 0, 70,250, 0, 0, 70,250, 0, 0, 61,184, 81,236, 64, 19,215, 10, 0, 10, 0, 0, - 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 6, 24, 2,127, 6, 7, 2,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 23, 0, 0, 1,199, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 24, 2,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, 68, 65, 84, 65, 0, 0, 0,252, 4,212, 37,128, 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, 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, 64, 19,215, 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, 2,152,190, 32, 0, 0, 0, 0, 0, 0, 0, 0, 63, 98,246,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,212, 38,176, - 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 34,176, 4,211,246,176, 4,211,248,240, 4,211,249,112, 4,211,249,176, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,255, 0, 0, 0, 0, 0, 0, 1,171, 6, 6, 3, 0, 1,172, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2,152, 98, 32, 2,152, 98, 32, 4,212, 39, 64, 4,212, 41,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 39, 64, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 40, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 64, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,255, 0, 0, 0, 0, 0, 0, 0, 25, 68, 63,192, 0, 65,200, 0, 0, 68, 63,192, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 3, 0, 0, 26, 3, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,255, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 40, 96, - 0, 0, 0,195, 0, 0, 0, 1, 4,212, 41,128, 4,212, 39, 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, 26, 0, 0, 1,171, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,212, 41,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 40, 96, 0, 0, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191,128, 0, 0, 64, 0, 0, 0,190,146, 0, 0, 63,164,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, 3, 0, 0, 0, 0, 0, 0, 0, 1,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,255, 0, 0, 0, 26, 0, 0, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 32,248, 2,152, 98, 32, 0, 0, 0,164, 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,100, 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, 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, 0, 0, 0, 0, - 0, 0, 0,100, 62,153,153,154, 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, @@ -1080,7 +7265,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, @@ -1210,2411 +7394,295 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, - 4,212, 43, 0, 0, 0, 0,190, 0, 0, 0, 1, 4,212,182,208, 4,211,245,240, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,212, 43,192, 4,212, 46,128, 4,212, 46,192, 4,212, 51, 0, 4,212, 51, 64, 4,212,143,112, 0, 0, 0, 0, 0, 0, 0, 0, - 2,152,190, 32, 0, 0, 0, 0, 0, 0, 0, 6, 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, 12, 0, 0, 0, 0, 0, 0, 0, 53,222, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 43,192, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 44, 0, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 44, 64, - 4,212, 43,192, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 44, 64, 0, 0, 0,191, - 0, 0, 0, 1, 4,212, 44,128, 4,212, 44, 0, 0, 0, 0, 0, 7,128, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212, 44,128, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 44,192, 4,212, 44, 64, 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 44,192, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 45, 0, 4,212, 44,128, 0, 0, 0, 0, - 0, 0, 4,101, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 45, 0, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 45, 64, - 4,212, 44,192, 0, 0, 0, 0, 7,128, 4,101, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 45, 64, 0, 0, 0,191, - 0, 0, 0, 1, 4,212, 45,128, 4,212, 45, 0, 0, 0, 0, 0, 6, 64, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212, 45,128, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 45,192, 4,212, 45, 64, 0, 0, 0, 0, 6, 64, 4,101, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 45,192, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 46, 0, 4,212, 45,128, 0, 0, 0, 0, - 6, 64, 3,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 46, 0, 0, 0, 0,191, 0, 0, 0, 1, 4,212, 46, 64, - 4,212, 45,192, 0, 0, 0, 0, 7,128, 3,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212, 46, 64, 0, 0, 0,191, - 0, 0, 0, 1, 4,212, 46,128, 4,212, 46, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212, 46,128, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 46, 64, 0, 0, 0, 0, 6, 64, 0,124, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 46,192, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 47, 0, 0, 0, 0, 0, 4,212, 44, 0, - 4,212, 44, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 47, 0, 0, 0, 0,192, 0, 0, 0, 1, - 4,212, 47, 64, 4,212, 46,192, 4,212, 44, 0, 4,212, 44,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212, 47, 64, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 47,128, 4,212, 47, 0, 4,212, 44, 64, 4,212, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 47,128, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 47,192, 4,212, 47, 64, - 4,212, 44,192, 4,212, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 47,192, 0, 0, 0,192, - 0, 0, 0, 1, 4,212, 48, 0, 4,212, 47,128, 4,212, 43,192, 4,212, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212, 48, 0, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 48, 64, 4,212, 47,192, 4,212, 44,128, 4,212, 45, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 48, 64, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 48,128, - 4,212, 48, 0, 4,212, 44,192, 4,212, 45,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 48,128, - 0, 0, 0,192, 0, 0, 0, 1, 4,212, 48,192, 4,212, 48, 64, 4,212, 45, 0, 4,212, 45,128, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 48,192, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 49, 0, 4,212, 48,128, 4,212, 45, 64, - 4,212, 45,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 49, 0, 0, 0, 0,192, 0, 0, 0, 1, - 4,212, 49, 64, 4,212, 48,192, 4,212, 45,128, 4,212, 45,192, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212, 49, 64, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 49,128, 4,212, 49, 0, 4,212, 45, 0, 4,212, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 49,128, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 49,192, 4,212, 49, 64, - 4,212, 44,128, 4,212, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 49,192, 0, 0, 0,192, - 0, 0, 0, 1, 4,212, 50, 0, 4,212, 49,128, 4,212, 45,192, 4,212, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212, 50, 0, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 50, 64, 4,212, 49,192, 4,212, 43,192, 4,212, 46, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 50, 64, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 50,128, - 4,212, 50, 0, 4,212, 44,192, 4,212, 46, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 50,128, - 0, 0, 0,192, 0, 0, 0, 1, 4,212, 50,192, 4,212, 50, 64, 4,212, 45,128, 4,212, 46,128, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 50,192, 0, 0, 0,192, 0, 0, 0, 1, 4,212, 51, 0, 4,212, 50,128, 4,212, 45, 64, - 4,212, 46,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212, 51, 0, 0, 0, 0,192, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212, 50,192, 4,212, 46, 64, 4,212, 46,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 4,212, 51, 64, 0, 0, 0,194, 0, 0, 0, 1, 4,212, 54, 16, 0, 0, 0, 0, 4,212, 44,192, 4,212, 44, 0, 4,212, 44, 64, - 4,212, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,102, 0, 0, 4,128, 7, 7, 7,129, 0, 27, 0, 1, - 0, 0, 0, 0, 0, 7, 0, 8, 2, 23,154,128, 4,212,182,112, 4,212,182,112, 4,212, 51,208, 4,212, 52,240, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 62,229,240, 9,182,150, 80, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 51,208, 0, 0, 0,195, 0, 0, 0, 1, - 4,212, 52,240, 0, 0, 0, 0, 0, 0, 0, 0, 68,159, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,240, 32, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, - 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,129, - 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,102, - 0, 0, 4,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 26, 0, 2, 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, 2, 23,155,208, 10, 62,245,176, 10, 62,245,176, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 62,133,240, 10, 62,165, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 4,212, 52,240, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 51,208, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,238, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, - 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 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, 4,128, 0, 0, 4,128, 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, - 2, 23,155, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,212, 54, 16, 0, 0, 0,194, 0, 0, 0, 1, 4,212,135,128, 4,212, 51, 64, - 4,212, 45, 64, 4,212, 45,192, 4,212, 46, 0, 4,212, 44,128, 0, 0, 0, 0, 0, 0, 6, 65, 0, 0, 7,128, 0, 0, 0, 0, - 0, 0, 3,159, 4, 4, 1, 64, 3,160, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 2, 23,151,128, 4,212,134,128, 4,212,134,128, - 4,212, 54,160, 4,212, 55,192, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21, 14,224, 10, 62,163, 32, 68, 65, 84, 65, 0, 0, 0,248, - 4,212, 54,160, 0, 0, 0,195, 0, 0, 0, 1, 4,212, 55,192, 0, 0, 0, 0, 0, 0, 0, 0, 67,160, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 67,160, 0, 0, 0, 0, 0, 0, 65,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 0, 0, 0, 0, - 0, 0, 0, 30, 67,137,128, 0, 65,200, 0, 0, 67,137,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 64, 0, 31, 1, 64, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 65, 0, 0, 7,128, 0, 0, 3,129, 0, 0, 3,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 64, 0, 31, 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, - 2, 23,153,240, 2, 20,235, 96, 2, 20,235, 96, 0, 0, 0, 0, 0, 0, 0, 0, 4,217, 22,128, 4,218,180,224, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212, 55,192, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212, 54,160, - 0, 0, 0, 0, 67,160, 0, 0,196, 96, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,151,128, 0,196, 96, 64, 0, 0, 0, 0, 0, - 0, 0, 1, 47, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 1, 46, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 64, 3,129, 1, 47, 3,129, 0, 0, - 10, 62,153, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 6, 65, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 3,129, 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, 2, 23,152, 64, 9,187,150, 16, 10, 60,131, 0, 4,212, 56,224, 4,212,133, 16, - 4,218,181,224, 4,218,184,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 56,224, 0, 0, 0,193, - 0, 0, 0, 1, 4,212, 58, 80, 0, 0, 0, 0, 2, 23,152,208, 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,255,220, 1, 47, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 58, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 59,192, 4,212, 56,224, - 9, 88,241,224, 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,255,135, 1, 47, 0, 61, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212, 59,192, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 61, 48, 4,212, 58, 80, 9, 88,243,144, 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,255,111, - 1, 47, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 61, 48, 0, 0, 0,193, 0, 0, 0, 1, - 4,212, 62,160, 4,212, 59,192, 9, 89, 1, 16, 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,254,140, 1, 47, 0,203, 0, 0, 0, 0, 0, 0, 0, 6, - 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 62,160, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 64, 16, 4,212, 61, 48, 9, 88,253,176, - 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,254, 58, 1, 47, 0, 58, 0, 20, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 64, 16, - 0, 0, 0,193, 0, 0, 0, 1, 4,212, 65,128, 4,212, 62,160, 9, 88,255, 96, 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,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,254, 34, 1, 47, 0, 0, - 0, 20, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 65,128, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 66,240, - 4,212, 64, 16, 9, 88,245, 64, 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,253,164, 1, 47, 0,102, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212, 66,240, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 68, 96, 4,212, 65,128, 9, 88,250, 80, 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,253, 10, 1, 47, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 68, 96, 0, 0, 0,193, - 0, 0, 0, 1, 4,212, 69,208, 4,212, 66,240, 9, 88,246,240, 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,252, 52, 1, 47, 0,190, 0, 0, 0, 0, - 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 69,208, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 71, 64, 4,212, 68, 96, - 9, 88,248,160, 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,252,218, 1, 47, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212, 71, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 72,176, 4,212, 69,208, 9, 89, 2, 48, 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,252,194, - 1, 47, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 72,176, 0, 0, 0,193, 0, 0, 0, 1, - 4,212, 74, 32, 4,212, 71, 64, 9, 89, 3,224, 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,252,170, 1, 47, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, - 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 74, 32, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 75,144, 4,212, 72,176, 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,255, 41, 1, 65, 0,179, 0, 0, 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, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 75,144, - 0, 0, 0,193, 0, 0, 0, 1, 4,212, 77, 0, 4,212, 74, 32, 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,254,102, 1, 65, 0,171, - 0, 0, 0, 0, 0, 4, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 77, 0, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 78,112, - 4,212, 75,144, 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,253,213, 1, 65, 1, 36, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 78,112, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 79,224, 4,212, 77, 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,103, 1, 65, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 79,224, 0, 0, 0,193, - 0, 0, 0, 1, 4,212, 81, 80, 4,212, 78,112, 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,254, 87, 1, 65, 0,186, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 81, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 82,192, 4,212, 79,224, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,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, 73,109, 97,103,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,254, 3, 1, 65, 0, 36, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212, 82,192, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 84, 48, 4,212, 81, 80, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, - 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,101, 95,115, 97,109,112,108,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, 84, 69, 88, 84, - 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,101, 95,115, 97,109,112,108,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, 73,109, 97,103, -101, 32, 83, 97,109,112,108,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,253, 23, - 1, 65, 0,212, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 84, 48, 0, 0, 0,193, 0, 0, 0, 1, - 4,212, 85,160, 4,212, 82,192, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,101, - 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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,109, 97,103,101, - 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, 73,109, 97,103,101, 32, 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,253,211, 1, 65, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 85,160, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 87, 16, 4,212, 84, 48, 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,254, 63, 1, 65, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 87, 16, - 0, 0, 0,193, 0, 0, 0, 1, 4,212, 88,128, 4,212, 85,160, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, - 80, 84, 95, 99,108,111,117,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, 84, 69, 88, 84, 85, 82, 69, 95, - 80, 84, 95, 99,108,111,117,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, 67,108,111,117,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, 0, 0, 0, 0, 0, 0, 0, 0,253,161, 1, 7, 0,158, - 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 88,128, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 89,240, - 4,212, 87, 16, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,119,111,111,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,119,111,111,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, 87,111,111,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,253,139, 1, 7, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212, 89,240, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 91, 96, 4,212, 88,128, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,108,117,103,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, - 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,108,117,103,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, - 80,108,117,103,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, 0, 0, 0, 0, 0, 0, - 0, 0,254, 27, 1, 7, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 91, 96, 0, 0, 0,193, - 0, 0, 0, 1, 4,212, 92,208, 4,212, 89,240, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,118, -111,114,111,110,111,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,118, -111,114,111,110,111,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, 86,111,114,111,110,111,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,123, 1, 7, 0,196, 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, 0, 0, 0, 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, 0, 1, 64, 4,212, 92,208, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 94, 64, 4,212, 91, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,111,105,110,116,100,101,110,115,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,111,105,110,116,100,101,110,115,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, 80,111,105,110,116, 32, 68,101,110,115,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,253,140, 1, 7, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 1, 64, - 4,212, 94, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 95,176, 4,212, 92,208, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, - 85, 82, 69, 95, 80, 84, 95,112,111,105,110,116,100,101,110,115,105,116,121, 95,116,117,114, 98,117,108,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, 84, 69, 88, 84, - 85, 82, 69, 95, 80, 84, 95,112,111,105,110,116,100,101,110,115,105,116,121, 95,116,117,114, 98,117,108,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, 84,117,114, 98, -117,108,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,253, 14, - 1, 7, 0,102, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212, 95,176, 0, 0, 0,193, 0, 0, 0, 1, - 4,212, 97, 32, 4,212, 94, 64, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109,117,115,103,114, - 97,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109,117,115,103,114, - 97,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, 77,117,115,103,114, 97,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,253,139, 1, 7, 0,180, 0, 0, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 97, 32, 0, 0, 0,193, 0, 0, 0, 1, 4,212, 98,144, 4,212, 95,176, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,114, 98,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,114, 98,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, 77, 97,114, 98,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, 0, - 0, 0, 0, 0, 0, 0,253,136, 1, 7, 0,183, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212, 98,144, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,100, 0, 4,212, 97, 32, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, - 80, 84, 95,109, 97,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,103,105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 27, 1, 7, 0, 36, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,100, 0, 0, 0, 0,193, 0, 0, 0, 1, 4,212,101,112, - 4,212, 98,144, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,100,105,115,116,111,114,116,101,100, -110,111,105,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, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,100,105,115,116,111,114,116,101,100, -110,111,105,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, 68,105,115,116,111,114,116,101,100, 32, 78,111,105,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,253,211, 1, 7, 0,108, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,101,112, 0, 0, 0,193, 0, 0, 0, 1, 4,212,102,224, 4,212,100, 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,254, 2, 1, 7, 0, 61, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,102,224, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,104, 80, 4,212,101,112, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,115, -116,117, 99, 99,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, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,115, -116,117, 99, 99,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, 0, 83,116,117, 99, 99,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,183, 1, 7, 0,136, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,104, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212,105,192, 4,212,102,224, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,111,100,105,102,105,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, 68, 65, 84, 65, 95, 80, 84, 95,109,111,100,105,102,105,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, 77,111,100,105,102,105,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,255,160, 0,209, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,105,192, 0, 0, 0,193, 0, 0, 0, 1, 4,212,107, 48, 4,212,104, 80, 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,255,184, - 0,209, 0, 36, 0, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,107, 48, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,108,160, 4,212,105,192, 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,255,160, 0,209, 0, 0, 0, 0, 0, 0, 0, 4, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,108,160, 0, 0, 0,193, 0, 0, 0, 1, 4,212,110, 16, 4,212,107, 48, 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,255, 78, 0,209, 0, 58, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,110, 16, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,111,128, 4,212,108,160, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, -115,101,116,116,105,110,103,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, 68, 65, 84, 65, 95, 80, 84, 95, -115,101,116,116,105,110,103,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,101,116,116,105,110,103,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,255, 18, 0,209, 0, 36, - 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,111,128, 0, 0, 0,193, 0, 0, 0, 1, 4,212,112,240, - 4,212,110, 16, 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,254,174, 0,209, 0, 76, 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, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,112,240, 0, 0, 0,193, 0, 0, 0, 1, 4,212,114, 96, 4,212,111,128, 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,254, 74, 0,209, 0, 76, 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, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,114, 96, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,115,208, 4,212,112,240, 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, 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,253,237, 0,209, 0, 69, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,115,208, 0, 0, 0,193, 0, 0, 0, 1, 4,212,117, 64, 4,212,114, 96, - 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,253,144, 0,209, 0, 69, 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, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,117, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212,118,176, 4,212,115,208, 9, 88,112, 16, 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,255, 94, - 1, 47, 0,126, 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, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,118,176, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,120, 32, 4,212,117, 64, 9, 88,113,192, 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,254,190, 1, 47, 0,136, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,120, 32, 0, 0, 0,193, 0, 0, 0, 1, 4,212,121,144, 4,212,118,176, 9, 88,117, 32, - 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,254,103, 1, 47, 0, 63, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,121,144, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,123, 0, 4,212,120, 32, 9, 88,118,208, 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,253,252, 1, 47, 0, 83, - 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,123, 0, 0, 0, 0,193, 0, 0, 0, 1, 4,212,124,112, - 4,212,121,144, 9, 88,120,128, 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,253,148, 1, 47, 0, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,124,112, 0, 0, 0,193, 0, 0, 0, 1, 4,212,125,224, 4,212,123, 0, 9, 88,122, 48, 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,253,124, 1, 47, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,125,224, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,127, 80, 4,212,124,112, 9, 88,123,224, 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,253,100, 1, 47, 0, 0, 0, 20, 0, 0, - 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,127, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212,128,192, 4,212,125,224, - 9, 88,125,144, 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,253, 76, 1, 47, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,128,192, 0, 0, 0,193, 0, 0, 0, 1, 4,212,130, 48, 4,212,127, 80, 9, 88,131, 48, 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,253, 52, - 1, 47, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,130, 48, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,131,160, 4,212,128,192, 9, 88,132,224, 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,252, 76, 1, 47, 0,208, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,131,160, 0, 0, 0,193, 0, 0, 0, 1, 4,212,133, 16, 4,212,130, 48, 9, 88,134,144, - 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,252, 52, 1, 47, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,133, 16, - 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,131,160, 9, 88,147,128, 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,252, 28, 1, 47, 0, 0, - 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,216, 4,212,134,128, 0, 0, 0,159, 0, 0, 0, 1, 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, 2, 0, 1, - 0, 0, 0, 0, 9,190,172, 32, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,135,128, - 0, 0, 0,194, 0, 0, 0, 1, 4,212,139, 64, 4,212, 54, 16, 4,212, 43,192, 4,212, 46, 64, 4,212, 46,128, 4,212, 45, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 63, 0, 0, 0, 0, 0, 0, 0,123, 15, 15, 6, 64, 0,124, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,122, 48, 4,212,138, 80, 4,212,138, 80, 4,212,136, 16, 4,212,137, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 9,182,166, 64, 9,182,163,176, 68, 65, 84, 65, 0, 0, 0,248, 4,212,136, 16, 0, 0, 0,195, 0, 0, 0, 1, 4,212,137, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,200, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 0, 0, 0, 0, 25, 68,202,224, 0, 65,200, 0, 0, 68,202,224, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 6, 64, 0, 26, 6, 64, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 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, 6, 64, 0, 26, 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, 2, 23,123,128, 9,187,123, 96, 9,187,123, 96, 0, 0, 0, 0, - 0, 0, 0, 0, 4,218,185,224, 4,218,190,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,137, 48, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,136, 16,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, -194,103,218, 88, 67,141,147, 40, 0, 0, 0, 0, 66, 72, 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, 63, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 63, 0, 0, 0, 18, 0, 0, 0, 97, - 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, - 0, 4, 4, 0, 0, 8, 6, 64, 0, 98, 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, 63, 0, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64, 0, 98, - 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, 2, 23,122,240, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,218,191,224, 2, 21, 2,112, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,188, 4,212,138, 80, 0, 0, 0,170, 0, 0, 0, 1, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,139, 64, 0, 0, 0,194, - 0, 0, 0, 1, 4,212,143,112, 4,212,135,128, 4,212, 45,192, 4,212, 45,128, 4,212, 45, 0, 4,212, 46, 0, 0, 0, 0, 0, - 0, 0, 6, 65, 0, 0, 7,128, 0, 0, 3,161, 0, 0, 4,100, 3, 3, 1, 64, 0,196, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, - 2, 23,120, 80, 4,212,142, 16, 4,212,142, 16, 4,212,139,208, 4,212,140,240, 0, 0, 0, 0, 0, 0, 0, 0, 10, 62,166,160, - 9,190,175,144, 68, 65, 84, 65, 0, 0, 0,248, 4,212,139,208, 0, 0, 0,195, 0, 0, 0, 1, 4,212,140,240, 0, 0, 0, 0, - 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,160, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 63, 0, 0, 0, 0, 0, 0, 0, 25, 67, 66, 0, 0, 65,200, 0, 0, 67, 66, 0, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 64, 0, 26, 1, 64, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 0, 0, 7,128, 0, 0, 4, 75, 0, 0, 4,100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 26, 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, 2, 23,121,160, 9,187,113,240, 9,187,113,240, 0, 0, 0, 0, 0, 0, 0, 0, - 4,217, 20,160, 2, 22,237, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,140,240, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,212,139,208, 0, 0, 0, 0, 67,131,128, 0,194,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,151,128, 0,195, 24, 0, 0, 0, 0, 0, 0, 0, 0, 1, 47, 0, 0, 1, 64, 0, 0, 0, 18, 0, 0, 0,169, 0, 0, 0, 0, - 0, 0, 1, 46, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 46, 0, 0, 0, 18, 0, 0, 0,169, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, - 0, 6, 1, 64, 0,170, 1, 47, 0,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 65, 0, 0, 7,128, - 0, 0, 3,161, 0, 0, 4, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0,170, 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, 2, 23,121, 16, 9,187,117,144, - 9,187,117,144, 0, 0, 0, 0, 0, 0, 0, 0, 4,217, 13, 64, 4,209,111,128, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,244, 4,212,142, 16, 0, 0, 0,163, 0, 0, 0, 1, 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, 9,188, 90,160, 9,188, 90,160, 4,212,143, 48, 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, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 4,212,143, 48, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 11, 42, 0, 0, 11, 42, - 2,116,176, 32, 68, 65, 84, 65, 0, 0,133,248, 2,116,176, 32, 0, 0, 0,216, 0, 0, 11, 42, 0, 0, 0, 0, 0, 2, 0, 1, - 2,152,190, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 21, 0, 1, - 0, 1, 0, 0, 2,152,190, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,120,240, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,202, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 4,213,128,192, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,214, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 4,213,127, 16, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,208, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,117,128, 0, 0, 0, 0, - 0, 1, 0, 1, 2,152,196, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,116,240, 0, 21, 0, 0, 0, 1, 0, 1, 2,152,190, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,152,190, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,152,190, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,152,190, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,152,190, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,152,190, 32, 0, 30,255,255, 0, 1, 0, 0, 2,152,254, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,153, 2, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 6, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 10, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,153, 14, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 18, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,153, 22, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 26, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 30, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,153, 34, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 38, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 42, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,153, 46, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 50, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,153, 54, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 58, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 62, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,153, 66, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 70, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 74, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,153, 78, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 82, 32, 0, 30,255,255, 0, 1, 0, 0, - 2,153, 86, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 90, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153, 94, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,153, 98, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153,102, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153,106, 32, - 0, 30,255,255, 0, 1, 0, 0, 2,153,110, 32, 0, 30,255,255, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 0, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 3, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 6, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 8, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 11, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 14, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 16, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 19, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 22, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 24, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 27, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 30, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 32, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 35, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 38, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 40, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 43, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 46, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 48, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 51, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 54, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 56, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 59, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,152,254, 32, - 0, 31, 0, 62, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 64, 0, 1, 0, 0, - 2,152,254, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 67, - 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,152,254, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,152,254, 32, - 0, 30,255,255, 0, 1, 0, 0, 4,213,116,240, 0, 30,255,255, 0, 1, 0, 0, 4,213,117,128, 0, 30,255,255, 0, 1, 0, 0, - 2,152,214, 32, 0, 30,255,255, 0, 1, 0, 0, 4,213,128,192, 0, 30,255,255, 0, 3, 0, 0, 2,152,196, 32, 0, 30,255,255, - 0, 1, 0, 0, 2,152,202, 32, 0, 30,255,255, 0, 1, 0, 0, 2,152,208, 32, 0, 30,255,255, 0, 1, 0, 0, 4,211,177,144, - 0, 30,255,255, 0, 1, 0, 0, 4,211,245,240, 0, 30,255,255, 0, 1, 0, 0, 4,212, 43, 0, 0, 30,255,255, 0, 1, 0, 0, - 4,212,182,208, 0, 30,255,255, 0, 1, 0, 0, 4,212,247,144, 0, 30,255,255, 0, 1, 0, 0, 4,213, 50,160, 0, 30,255,255, - 0, 1, 0, 0, 4,213, 74,240, 0, 30,255,255, 0, 1, 0, 0, 4,213,127, 16, 0, 30,255,255, 0, 1, 0, 0, 4,211,175,144, - 0, 30,255,255, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 2, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 2, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 2, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 6, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 6, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 6, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 10, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 10, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 10, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 14, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 14, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 14, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 18, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 18, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 18, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 22, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 22, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 22, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 26, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 26, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 26, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 30, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 30, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 30, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 34, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 34, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 34, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 38, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 38, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 38, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 42, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 42, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 42, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 46, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 46, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 46, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 50, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 50, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 50, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 54, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 54, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 54, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 58, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 58, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 58, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 62, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 62, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 62, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 66, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 66, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 66, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 70, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 70, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 70, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 74, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 74, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 74, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 78, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 78, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 78, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 82, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 82, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 82, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 86, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153, 86, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 86, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 90, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 90, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153, 90, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153, 94, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153, 94, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 94, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153, 98, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153, 98, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153, 98, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 1, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 3, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 6, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 9, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 11, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 14, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 17, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 19, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 22, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 25, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 27, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 30, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 33, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 35, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 38, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 41, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 43, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 46, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 49, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 51, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 54, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 57, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 59, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 62, - 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153,102, 32, - 0, 31, 0, 65, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 67, 0, 1, 0, 0, - 2,153,102, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153,102, 32, 0, 31, 0, 0, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 3, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 5, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 8, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 11, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 13, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 16, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 19, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 21, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 24, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 27, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 29, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 32, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 35, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 37, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 40, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 43, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 45, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 48, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 51, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 53, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 56, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 59, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 61, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 64, - 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153,106, 32, - 0, 31, 0, 67, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153,106, 32, 0, 31, 0, 69, 0, 1, 0, 0, - 2,153,106, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 2, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 5, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 7, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 10, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 13, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 15, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 18, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 21, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 23, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 26, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 29, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 31, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 34, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 37, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 39, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 42, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 45, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 47, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 50, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 53, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 55, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 58, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 61, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 63, 0, 1, 0, 0, - 2,153,110, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 66, - 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,153,110, 32, - 0, 31, 0, 69, 0, 1, 0, 0, 2,153,110, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,153,114, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,153,114, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,153,114, 32, 0, 31, 0, 0, 0, 1, 0, 0, 4,213,116,240, - 0, 31, 0, 1, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 2, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 3, 0, 1, 0, 0, - 4,213,116,240, 0, 31, 0, 4, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 5, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 6, - 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 7, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 8, 0, 1, 0, 0, 4,213,116,240, - 0, 31, 0, 9, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 10, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 11, 0, 1, 0, 0, - 4,213,116,240, 0, 31, 0, 12, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 13, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 14, - 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 15, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 16, 0, 1, 0, 0, 4,213,116,240, - 0, 31, 0, 17, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 18, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 19, 0, 1, 0, 0, - 4,213,116,240, 0, 31, 0, 20, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 21, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 22, - 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 23, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 24, 0, 1, 0, 0, 4,213,116,240, - 0, 31, 0, 25, 0, 1, 0, 0, 4,213,116,240, 0, 31, 0, 0, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 1, 0, 1, 0, 0, - 4,213,117,128, 0, 31, 0, 2, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 3, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 4, - 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 5, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 6, 0, 1, 0, 0, 4,213,117,128, - 0, 31, 0, 7, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 8, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 9, 0, 1, 0, 0, - 4,213,117,128, 0, 31, 0, 10, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 11, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 12, - 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 13, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 14, 0, 1, 0, 0, 4,213,117,128, - 0, 31, 0, 15, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 16, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 17, 0, 1, 0, 0, - 4,213,117,128, 0, 31, 0, 18, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 19, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 20, - 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 21, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 22, 0, 1, 0, 0, 4,213,117,128, - 0, 31, 0, 23, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 24, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 25, 0, 1, 0, 0, - 4,213,117,128, 0, 31, 0, 26, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 27, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 28, - 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 29, 0, 1, 0, 0, 4,213,117,128, 0, 31, 0, 30, 0, 1, 0, 0, 4,213,117,128, - 0, 31, 0, 0, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 2, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 5, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 8, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 10, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 13, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 16, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 18, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 21, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 24, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 26, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 29, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 32, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 34, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 37, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 40, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 42, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 45, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 48, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 50, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 53, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 56, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 58, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 61, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 64, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 66, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 69, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 72, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 74, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 77, - 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,152,214, 32, - 0, 31, 0, 80, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 82, 0, 1, 0, 0, - 2,152,214, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,152,214, 32, 0, 31, 0, 0, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 1, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 2, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 3, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 4, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 5, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 6, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 7, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 8, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 9, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 10, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 11, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 12, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 13, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 14, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 15, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 16, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 17, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 18, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 19, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 20, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 21, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 22, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 23, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 24, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 25, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 26, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 27, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 28, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 29, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 30, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 31, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 32, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 33, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 34, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 35, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 36, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 37, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 38, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 39, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 40, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 41, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 42, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 43, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 44, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 45, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 46, 0, 1, 0, 0, - 4,213,128,192, 0, 31, 0, 47, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 48, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 49, - 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 50, 0, 1, 0, 0, 4,213,128,192, 0, 31, 0, 51, 0, 1, 0, 0, 4,213,128,192, - 0, 31, 0, 0, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 2, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 5, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 8, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 10, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 13, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 16, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 18, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 21, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 24, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 26, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 29, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 32, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 34, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 37, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 40, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 42, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 45, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 48, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 50, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 53, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 56, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 58, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 61, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 64, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 66, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 69, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 72, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 74, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 77, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 80, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 82, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 85, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 88, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 90, 0, 1, 0, 0, - 2,152,196, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 93, - 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,152,196, 32, - 0, 31, 0, 96, 0, 1, 0, 0, 2,152,196, 32, 0, 31, 0, 0, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 1, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 3, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 4, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 6, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 7, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 8, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 9, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 11, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 12, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 14, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 15, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 16, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 17, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 19, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 20, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 22, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 23, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 24, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 25, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 27, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 28, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 30, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 31, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 32, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 33, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 35, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 36, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 38, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 39, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 40, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 41, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 43, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 44, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 46, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 47, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 48, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 49, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 51, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 52, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 54, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 55, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 56, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 57, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 59, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 60, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 62, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 63, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 64, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 65, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 67, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 68, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 70, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 71, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 72, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 73, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 75, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 76, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 78, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 79, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 80, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 81, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 83, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 84, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 86, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 87, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 88, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 89, 0, 1, 0, 0, - 2,152,202, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 91, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 92, - 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 94, 0, 1, 0, 0, 2,152,202, 32, - 0, 31, 0, 95, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 96, 0, 1, 0, 0, 2,152,202, 32, 0, 31, 0, 0, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 1, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 2, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 3, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 4, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 5, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 6, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 7, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 8, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 9, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 10, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 11, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 12, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 13, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 14, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 15, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 16, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 17, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 18, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 19, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 20, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 21, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 22, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 23, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 24, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 25, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 26, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 27, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 28, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 29, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 30, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 31, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 32, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 33, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 34, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 35, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 36, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 37, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 38, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 39, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 40, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 41, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 42, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 43, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 44, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 45, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 46, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 47, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 48, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 49, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 50, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 51, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 52, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 53, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 54, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 55, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 56, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 57, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 58, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 59, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 60, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 61, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 62, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 63, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 64, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 65, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 66, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 67, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 68, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 69, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 70, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 71, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 72, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 73, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 74, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 75, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 76, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 77, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 78, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 79, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 80, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 81, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 82, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 83, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 84, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 85, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 86, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 87, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 88, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 89, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 90, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 91, - 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 92, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 93, 0, 1, 0, 0, 2,152,208, 32, - 0, 31, 0, 94, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 95, 0, 1, 0, 0, 2,152,208, 32, 0, 31, 0, 96, 0, 1, 0, 0, - 2,152,208, 32, 0, 31, 0, 0, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 1, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 2, - 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 3, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 4, 0, 1, 0, 0, 4,211,177,144, - 0, 31, 0, 5, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 6, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 7, 0, 1, 0, 0, - 4,211,177,144, 0, 31, 0, 8, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 9, 0, 1, 0, 0, 4,211,177,144, 0, 31, 0, 0, - 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 1, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 2, 0, 1, 0, 0, 4,211,245,240, - 0, 31, 0, 3, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 4, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 5, 0, 1, 0, 0, - 4,211,245,240, 0, 31, 0, 6, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 7, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 8, - 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 9, 0, 1, 0, 0, 4,211,245,240, 0, 31, 0, 0, 0, 1, 0, 0, 4,212, 43, 0, - 0, 31, 0, 1, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 2, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 3, 0, 1, 0, 0, - 4,212, 43, 0, 0, 31, 0, 4, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 5, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 6, - 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 7, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 8, 0, 1, 0, 0, 4,212, 43, 0, - 0, 31, 0, 9, 0, 1, 0, 0, 4,212, 43, 0, 0, 31, 0, 0, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 1, 0, 1, 0, 0, - 4,212,182,208, 0, 31, 0, 2, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 3, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 4, - 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 5, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 6, 0, 1, 0, 0, 4,212,182,208, - 0, 31, 0, 7, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 8, 0, 1, 0, 0, 4,212,182,208, 0, 31, 0, 9, 0, 1, 0, 0, - 4,212,182,208, 0, 31, 0, 0, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 1, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 2, - 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 3, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 4, 0, 1, 0, 0, 4,212,247,144, - 0, 31, 0, 5, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 6, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 7, 0, 1, 0, 0, - 4,212,247,144, 0, 31, 0, 8, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 9, 0, 1, 0, 0, 4,212,247,144, 0, 31, 0, 0, - 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 1, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 2, 0, 1, 0, 0, 4,213, 50,160, - 0, 31, 0, 3, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 4, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 5, 0, 1, 0, 0, - 4,213, 50,160, 0, 31, 0, 6, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 7, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 8, - 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 9, 0, 1, 0, 0, 4,213, 50,160, 0, 31, 0, 0, 0, 1, 0, 0, 4,213, 74,240, - 0, 31, 0, 1, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 2, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 3, 0, 1, 0, 0, - 4,213, 74,240, 0, 31, 0, 4, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 5, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 6, - 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 7, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 8, 0, 1, 0, 0, 4,213, 74,240, - 0, 31, 0, 9, 0, 1, 0, 0, 4,213, 74,240, 0, 31, 0, 0, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 1, 0, 1, 0, 0, - 4,213,127, 16, 0, 31, 0, 2, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 3, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 4, - 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 5, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 6, 0, 1, 0, 0, 4,213,127, 16, - 0, 31, 0, 7, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 8, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 9, 0, 1, 0, 0, - 4,213,127, 16, 0, 31, 0, 10, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 11, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 12, - 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 13, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 14, 0, 1, 0, 0, 4,213,127, 16, - 0, 31, 0, 15, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 16, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 17, 0, 1, 0, 0, - 4,213,127, 16, 0, 31, 0, 18, 0, 1, 0, 0, 4,213,127, 16, 0, 31, 0, 0, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 1, - 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 2, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 3, 0, 1, 0, 0, 4,211,175,144, - 0, 31, 0, 4, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 5, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 6, 0, 1, 0, 0, - 4,211,175,144, 0, 31, 0, 7, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 8, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 9, - 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 10, 0, 1, 0, 0, 4,211,175,144, 0, 31, 0, 0, 0, 1, 0, 0, 4,213,120,240, - 0, 31, 0, 1, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 2, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 3, 0, 1, 0, 0, - 4,213,120,240, 0, 31, 0, 4, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 5, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 6, - 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 7, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 8, 0, 1, 0, 0, 4,213,120,240, - 0, 31, 0, 9, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 10, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 11, 0, 1, 0, 0, - 4,213,120,240, 0, 31, 0, 12, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 13, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 14, - 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 15, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 16, 0, 1, 0, 0, 4,213,120,240, - 0, 31, 0, 17, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 18, 0, 1, 0, 0, 4,213,120,240, 0, 31, 0, 19, 0, 1, 0, 0, - 4,213,120,240, 0, 31, 0, 20, 0, 1, 0, 0, 4,213,120,240, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,143,112, 0, 0, 0,194, - 0, 0, 0, 1, 0, 0, 0, 0, 4,212,139, 64, 4,212, 46, 64, 4,212, 44,192, 4,212, 45,128, 4,212, 46,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 63, 0, 0, 0,125, 0, 0, 4,100, 1, 1, 6, 64, 3,232, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, - 2, 23,124, 16, 4,212,181, 64, 4,212,181, 64, 4,212,144, 0, 4,212,180, 32, 0, 0, 0, 0, 0, 0, 0, 0, 4,218,169,144, - 10, 50,177, 16, 68, 65, 84, 65, 0, 0, 0,248, 4,212,144, 0, 0, 0, 0,195, 0, 0, 0, 1, 4,212,145, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 68,113, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,200, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 6, 64, 0, 26, 6, 64, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 63, 0, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64, 0, 26, 0, 9, 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, 2, 23,131,144, 10, 60,148, 64, 10, 60,148, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 20,239,176, 10, 49,184, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,145, 32, 0, 0, 0,195, - 0, 0, 0, 1, 4,212,166, 96, 4,212,144, 0, 0, 0, 0, 0, 67, 32, 0, 0,196, 61,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 15, 0, 0,196, 61,128, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 2,245, 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, 2,245, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 0,160, 2,246, 0,143, 2,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, - 0, 0, 1,111, 0, 0, 4,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 2,246, 0, 10, 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, 2, 23,129, 80, 9,187,125,240, - 9,187,125,240, 4,212,146, 64, 4,212,164,240, 9,190,178,144, 2, 21, 12,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,146, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212,147,176, 0, 0, 0, 0, 9, 90,207,176, 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,253,233, 0,143, 1,255, 0, 0, 0, 0, 0, 0, 0, 39, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,147,176, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,149, 32, 4,212,146, 64, 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,254,211, 0,143, 1, 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, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,149, 32, 0, 0, 0,193, 0, 0, 0, 1, 4,212,150,144, 4,212,147,176, - 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,252, 88, 0,143, 1,213, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,150,144, 0, 0, 0,193, 0, 0, 0, 1, 4,212,152, 0, 4,212,149, 32, 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,254, 66, - 0,143, 0,121, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,152, 0, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,153,112, 4,212,150,144, 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,253,164, 0,143, 0,231, 0, 0, 0, 0, 0, 4, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,153,112, 0, 0, 0,193, 0, 0, 0, 1, 4,212,154,224, 4,212,152, 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,253, 96, 0,143, 0,133, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,154,224, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,156, 80, 4,212,153,112, 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,254, 55, 0,143, 0, 36, - 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,156, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212,157,192, - 4,212,154,224, 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, 52, 0,143, 0,225, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,157,192, 0, 0, 0,193, 0, 0, 0, 1, 4,212,159, 48, 4,212,156, 80, 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,253,145, 0,143, 0,132, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,159, 48, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,160,160, 4,212,157,192, 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,254, 39, 0,143, 0,124, 0, 0, 0, 0, - 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,160,160, 0, 0, 0,193, 0, 0, 0, 1, 4,212,162, 16, 4,212,159, 48, - 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,253,181, 0,143, 0,190, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,162, 16, 0, 0, 0,193, 0, 0, 0, 1, 4,212,163,128, 4,212,160,160, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,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, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,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, 80,114,111,106, -101, 99,116, 32, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,241, - 0,143, 1, 9, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,163,128, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,164,240, 4,212,162, 16, 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,253,197, 0,143, 0,146, 0, 0, 0, 0, 0, 4, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,164,240, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,163,128, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,105,109, 97,103,101,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, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,105,109, 97,103,101,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, 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,253,146, 0,143, 0, 80, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,166, 96, - 0, 0, 0,195, 0, 0, 0, 1, 4,212,168,240, 4,212,145, 32, 0, 0, 0, 0, 67, 33, 0, 0,195, 90, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 16,102,227,195, 90, 30, 24, 0, 0, 0, 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, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 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,159, 0, 0, 0,151, 0, 0, 1,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, - 0, 11, 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, 2, 23,129,224, - 9,187,141, 0, 9,187,141, 0, 4,212,167,128, 4,212,167,128, 10, 48,164, 48, 10, 60, 56, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,167,128, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,130,112, - 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,111,114, 32,116,111, 32, 83,101,108,101, 99,116,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,255,216, 0,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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,168,240, - 0, 0, 0,195, 0, 0, 0, 1, 4,212,180, 32, 4,212,166, 96, 0, 0, 0, 0, 67, 52, 0, 0,196,158, 96, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 35, 0, 0,196,158, 96, 0,195,142,128, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 3,213, - 0, 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, 3,213, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 0,180, 3,214, 0,163, 3,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 63, - 0, 0, 6, 63, 0, 0, 0,151, 0, 0, 4,100, 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, 2, 23,125, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 4,212,170, 16, 4,212,178,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,170, 16, 0, 0, 0,193, 0, 0, 0, 1, 4,212,171,128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 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, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,254,122, 0,163, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 0, 1, 64, 4,212,171,128, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,172,240, 4,212,170, 16, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 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, 86, 73, 69, 87, 51, 68, 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, 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,254, 18, 0,163, 0, 80, - 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,172,240, 0, 0, 0,193, 0, 0, 0, 1, 4,212,174, 96, - 4,212,171,128, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 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, 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,252,212, 0,163, 1, 38, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,174, 96, 0, 0, 0,193, 0, 0, 0, 1, 4,212,175,208, 4,212,172,240, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,110, 97,109,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, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,110, 97,109,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, - 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152, 0,163, 0, 36, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,175,208, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,177, 64, 4,212,174, 96, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105, -101,119, 51,100, 95,100,105,115,112,108, 97,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105, -101,119, 51,100, 95,100,105,115,112,108, 97,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, 68,105,115,112,108, 97,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,251, 65, 0,163, 1, 63, 0, 0, 0, 0, - 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,177, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212,178,176, 4,212,175,208, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, -103,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, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, -103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,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,104, 0,163, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,178,176, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,177, 64, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,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,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,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, 84,114, 97,110, -115,102,111,114,109, 32, 79,114,105,101,110,116, 97,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,252, 80, - 0,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,180, 32, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212,168,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 63, 0, 0, 0,151, - 0, 0, 4,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,160, 3,206, 0, 12, 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, 2, 23,124,208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 93, 80, 4,218,178,144, 0, 0, 0, 0, 2,152,132, 32, 68, 65, 84, 65, 0, 0, 3, 68, - 2,152,132, 32, 0, 0, 0,153, 0, 0, 0, 1, 63,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,206,251, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 6,141,191,128, 0, 0,128, 0, 0, 0, -128, 0, 0, 0,190, 76,210, 10,128, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, - 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,209,239, 68, 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 52, - 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 95, 62, -192,173,120, 51, 64,213,208,115, 63,128, 0, 0, 62,229,157,178,191, 38, 78,123,191, 81,169,114,191, 81,158,184, 63,127, 90,117, - 62,160, 82,160, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, 63,185, 65,249,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, - 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 62,191,240,221, 63, 85,116, 84,188, 70,177, 32, 51,212, 0, 0,190,126,103,189, - 61,245, 64, 99, 63, 13,178,164, 50, 32, 0, 0,194,117,112,201, 65,216,208,182,194, 5,158,222,192,159,251,235, 66,114, 54,221, -193,213,247, 29, 66, 3,221, 58, 64,160, 4, 26, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, - 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,193,111,210, 33, 63,128, 0, 0, 62,229,157,178,191, 38, 78,123,191, 81,169,114,191, 81,158,184, 63,127, 90,117, - 62,160, 82,160, 62,185, 53,157, 62,185, 44, 35,188,109,180,145, 63,185, 65,249,190,228, 72,216,190,228, 61, 42, 0, 0, 0, 0, - 0, 0, 0, 0, 65,108,171, 31, 65,111,210, 33, 63,182,184,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,182,184,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,182,184,123, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,210, 33, - 65,111,210, 33, 0, 0, 0, 0, 0, 0, 0, 0, 58,166,112,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, - 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, 63,128, 0, 0, - 66, 12, 33, 32, 66,137,152, 85, 66,126, 27,113, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 0, 4,212,181, 64, 0, 0, 0,154, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,152,196, 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, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 0, 0, 24, 8, 0, 0, 0, 0, 66, 12, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 61,204,204,205, 68,122, 0, 0, 0, 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, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 4,212,182,208, 0, 0, 0,190, 0, 0, 0, 1, 4,212,247,144, 4,212, 43, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,212,183,144, 4,212,186,208, 4,212,187, 16, 4,212,192, 16, 4,212,192, 80, - 4,212,242, 48, 0, 0, 0, 0, 0, 0, 0, 0, 2,152,190, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,183,144, 0, 0, 0,191, 0, 0, 0, 1, - 4,212,183,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,183,208, - 0, 0, 0,191, 0, 0, 0, 1, 4,212,184, 16, 4,212,183,144, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,212,184, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,184, 80, 4,212,183,208, 0, 0, 0, 0, 7,128, 4,128, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,184, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,184,144, 4,212,184, 16, - 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,184,144, 0, 0, 0,191, 0, 0, 0, 1, - 4,212,184,208, 4,212,184, 80, 0, 0, 0, 0, 0, 0, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,184,208, - 0, 0, 0,191, 0, 0, 0, 1, 4,212,185, 16, 4,212,184,144, 0, 0, 0, 0, 7,128, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,212,185, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,185, 80, 4,212,184,208, 0, 0, 0, 0, 0, 0, 1,184, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,185, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,185,144, 4,212,185, 16, - 0, 0, 0, 0, 6, 32, 1,184, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,185,144, 0, 0, 0,191, 0, 0, 0, 1, - 4,212,185,208, 4,212,185, 80, 0, 0, 0, 0, 6, 32, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,185,208, - 0, 0, 0,191, 0, 0, 0, 1, 4,212,186, 16, 4,212,185,144, 0, 0, 0, 0, 7,128, 1,184, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,212,186, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,186, 80, 4,212,185,208, 0, 0, 0, 0, 5, 64, 1,184, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,186, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,186,144, 4,212,186, 16, - 0, 0, 0, 0, 5, 64, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,186,144, 0, 0, 0,191, 0, 0, 0, 1, - 4,212,186,208, 4,212,186, 80, 0, 0, 0, 0, 1, 68, 1,184, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,186,208, - 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,186,144, 0, 0, 0, 0, 1, 68, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212,187, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,187, 80, 0, 0, 0, 0, 4,212,183,208, 4,212,184, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,187, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,187,144, - 4,212,187, 16, 4,212,183,208, 4,212,184,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,187,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,212,187,208, 4,212,187, 80, 4,212,184, 16, 4,212,184,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212,187,208, 0, 0, 0,192, 0, 0, 0, 1, 4,212,188, 16, 4,212,187,144, 4,212,184,144, - 4,212,184,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,188, 16, 0, 0, 0,192, 0, 0, 0, 1, - 4,212,188, 80, 4,212,187,208, 4,212,184,144, 4,212,185, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212,188, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,188,144, 4,212,188, 16, 4,212,185, 16, 4,212,185, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,188,144, 0, 0, 0,192, 0, 0, 0, 1, 4,212,188,208, 4,212,188, 80, - 4,212,184, 80, 4,212,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,188,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,212,189, 16, 4,212,188,144, 4,212,185, 80, 4,212,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212,189, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,189, 80, 4,212,188,208, 4,212,183,144, 4,212,185, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,189, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,189,144, - 4,212,189, 16, 4,212,183,144, 4,212,185,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,189,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,212,189,208, 4,212,189, 80, 4,212,184,208, 4,212,185,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212,189,208, 0, 0, 0,192, 0, 0, 0, 1, 4,212,190, 16, 4,212,189,144, 4,212,184, 80, - 4,212,185,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,190, 16, 0, 0, 0,192, 0, 0, 0, 1, - 4,212,190, 80, 4,212,189,208, 4,212,185, 80, 4,212,185,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212,190, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,190,144, 4,212,190, 16, 4,212,186, 16, 4,212,186, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,190,144, 0, 0, 0,192, 0, 0, 0, 1, 4,212,190,208, 4,212,190, 80, - 4,212,184,208, 4,212,186, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,190,208, 0, 0, 0,192, - 0, 0, 0, 1, 4,212,191, 16, 4,212,190,144, 4,212,185,208, 4,212,186, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212,191, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,191, 80, 4,212,190,208, 4,212,185, 16, 4,212,186,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,191, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,191,144, - 4,212,191, 16, 4,212,186, 16, 4,212,186,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,191,144, - 0, 0, 0,192, 0, 0, 0, 1, 4,212,191,208, 4,212,191, 80, 4,212,184,144, 4,212,186,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212,191,208, 0, 0, 0,192, 0, 0, 0, 1, 4,212,192, 16, 4,212,191,144, 4,212,186, 80, - 4,212,186,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,192, 16, 0, 0, 0,192, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212,191,208, 4,212,186,144, 4,212,186,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 4,212,192, 80, 0, 0, 0,194, 0, 0, 0, 1, 4,212,195, 32, 0, 0, 0, 0, 4,212,184,144, 4,212,183,208, 4,212,184, 16, - 4,212,184,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,101, 0, 0, 4,128, 7, 7, 7,129, 0, 28, 0, 1, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 4,212,247, 48, 4,212,247, 48, 4,212,192,224, 4,212,194, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,192,224, 0, 0, 0,195, 0, 0, 0, 1, - 4,212,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,133,160, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,240, 32, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, - 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,129, - 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,101, - 0, 0, 4,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,212,194, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,192,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,238, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, - 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,127, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,129, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,195, 32, 0, 0, 0,194, 0, 0, 0, 1, 4,212,216, 48, 4,212,192, 80, - 4,212,185,144, 4,212,185, 80, 4,212,185,208, 4,212,184, 80, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,128, 0, 0, 0, 0, - 0, 0, 1,183, 4, 4, 1, 96, 1,184, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,212,215, 48, 4,212,215, 48, - 4,212,195,176, 4,212,196,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 4,212,195,176, 0, 0, 0,195, 0, 0, 0, 1, 4,212,196,208, 0, 0, 0, 0, 0, 0, 0, 0, 67,160, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 67,176, 0, 0, 0, 0, 0, 0, 65,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 95, 0, 0, 0, 0, - 0, 0, 0, 30, 67,137,128, 0, 65,200, 0, 0, 67,137,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 96, 0, 31, 1, 96, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 33, 0, 0, 7,128, 0, 0, 1,153, 0, 0, 1,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 96, 0, 31, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,196,208, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,195,176, - 0, 0, 0, 0, 67,175,128, 0,196, 86,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,167,127,255,195,204,127,255, 0, 0, 0, 0, - 0, 0, 1, 79, 0, 0, 1, 96, 0, 0, 0, 0, 0, 0, 1,152, 0, 0, 0, 0, 0, 0, 1, 78, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 1, 78, 0, 0, 0, 0, 0, 0, 1,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1, 96, 1,153, 1, 79, 1,153, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 1,152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 96, 1,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, 0, 0, 0, 0, 4,212,197,240, 4,212,213,192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,197,240, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,199, 96, 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,255,220, 1, 78, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,199, 96, 0, 0, 0,193, 0, 0, 0, 1, 4,212,200,208, 4,212,197,240, - 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,255,135, 1, 78, 0, 61, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,200,208, 0, 0, 0,193, 0, 0, 0, 1, 4,212,202, 64, 4,212,199, 96, 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,255,111, - 1, 78, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,202, 64, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,203,176, 4,212,200,208, 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,254,140, 1, 78, 0,203, 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,212,203,176, 0, 0, 0,193, 0, 0, 0, 1, 4,212,205, 32, 4,212,202, 64, 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,254, 58, 1, 78, 0, 58, 0, 20, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,205, 32, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,206,144, 4,212,203,176, 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,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,254, 34, 1, 78, 0, 0, - 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,206,144, 0, 0, 0,193, 0, 0, 0, 1, 4,212,208, 0, - 4,212,205, 32, 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,253,164, 1, 78, 0,102, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,208, 0, 0, 0, 0,193, 0, 0, 0, 1, 4,212,209,112, 4,212,206,144, 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,253, 10, 1, 78, 0,130, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,209,112, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,210,224, 4,212,208, 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,252,242, 1, 78, 0, 0, 0, 0, 0, 0, - 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,210,224, 0, 0, 0,193, 0, 0, 0, 1, 4,212,212, 80, 4,212,209,112, - 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,252,218, 1, 78, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,212, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,212,213,192, 4,212,210,224, 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,252,194, - 1, 78, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,213,192, 0, 0, 0,193, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212,212, 80, 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,252,170, 1, 78, 0, 0, 0, 0, 0, 0, 0, 4, 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, - 68, 65, 84, 65, 0, 0, 0,216, 4,212,215, 48, 0, 0, 0,159, 0, 0, 0, 1, 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, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,216, 48, 0, 0, 0,194, 0, 0, 0, 1, - 4,212,221,240, 4,212,195, 32, 4,212,183,144, 4,212,185, 16, 4,212,185, 80, 4,212,185,144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 1,183, 17, 17, 6, 32, 1,184, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,212,221,144, 4,212,221,144, 4,212,216,192, 4,212,220,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 4,212,216,192, 0, 0, 0,195, 0, 0, 0, 1, 4,212,217,224, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 74, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,196, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 31, 0, 0, 0, 0, 0, 0, 0, 25, 68, 63,192, 0, 65,200, 0, 0, 68, 63,192, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 6, 32, 0, 26, 6, 32, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 32, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,217,224, 0, 0, 0,195, 0, 0, 0, 1, - 4,212,220,112, 4,212,216,192, 0, 0, 0, 0, 67, 92, 0, 0,195,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 75, 0, 0, -195,207, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,157, 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, 1,157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, - 1,158, 0,203, 1,158, 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, 1,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1,158, 0, 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, - 4,212,219, 0, 4,212,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 4,212,219, 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, 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,255,196, - 0,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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,220,112, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,212,217,224, 0, 0, 0, 0, 68,160, 0, 0, 0, 0, 0, 0, 67,112, 0, 0,195, 31, 80, 0, 68,179,234, 0, -194,235,159,188, 67,178,231,239, 0, 0, 5, 51, 0, 0, 5, 68, 0, 0, 0, 18, 0, 0, 1,157, 0, 0, 0, 0, 0, 0, 5, 50, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 5, 50, 0, 0, 0, 18, 0, 0, 1,157, 63,128, 0, 0, 63,128, 0, 0, - 70,250, 0, 0, 70,250, 0, 0, 63, 0, 0, 0, 63,154,225, 72, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 5, 68, - 1,158, 5, 51, 1,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 6, 31, 0, 0, 0, 26, - 0, 0, 1,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 68, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 0, 52, - 4,212,221,144, 0, 0, 0,172, 0, 0, 0, 1, 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, 7,255, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 4,212,221,240, 0, 0, 0,194, 0, 0, 0, 1, 4,212,224,192, 4,212,216, 48, 4,212,186, 16, - 4,212,186, 80, 4,212,184,208, 4,212,185,208, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,128, 0, 0, 1,185, 0, 0, 4, 99, - 9, 9, 2, 64, 2,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,152,136, 32, 2,152,136, 32, 4,212,222,128, - 4,212,223,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,222,128, - 0, 0, 0,195, 0, 0, 0, 1, 4,212,223,160, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 16, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 0, 0, 0, 0, 25, - 67,181,128, 0, 65,200, 0, 0, 67,181,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 4, 12, 0, 10, 2, 64, 0, 26, 2, 64, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, - 0, 0, 7,128, 0, 0, 1,185, 0, 0, 1,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,212,223,160, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,222,128, 0, 0, 0, 0, - 67,181,128, 0, 0, 0, 0, 0, 67,218,128, 0, 0, 0, 0, 0, 68, 1,248,131, 0, 0, 0, 0, 68, 20, 63,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 0, 0, 0, 2,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 35,215, 10, - 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2, 64, 2,145, 2, 64, 2,145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 65, 0, 0, 7,128, 0, 0, 1,211, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 2,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, 68, 65, 84, 65, 0, 0, 2,136, 2,152,136, 32, 0, 0, 0,166, 0, 0, 0, 1, - 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, 12, 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, @@ -3632,712 +7700,96 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 96, 4,212,224,192, 0, 0, 0,194, 0, 0, 0, 1, 4,212,242, 48, - 4,212,221,240, 4,212,186,144, 4,212,186,208, 4,212,186, 80, 4,212,186, 16, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, - 0, 0, 1,185, 0, 0, 4, 99, 1, 1, 3,251, 2,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,212,241, 0, - 4,212,241, 0, 4,212,225, 80, 4,212,239,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 4,212,225, 80, 0, 0, 0,195, 0, 0, 0, 1, 4,212,226,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 98, 64, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,126,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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,250, - 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 3,251, 0, 26, 3,251, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,185, 0, 0, 1,210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3,251, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,226,112, 0, 0, 0,195, 0, 0, 0, 1, 4,212,227,144, - 4,212,225, 80, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, - 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, 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, 3, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, - 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 1, 69, 0, 0, 1,211, 0, 0, 4, 99, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,145, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,227,144, - 0, 0, 0,195, 0, 0, 0, 1, 4,212,228,176, 4,212,226,112, 0, 0, 0, 0, 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 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, 1, 69, - 0, 0, 5, 63, 0, 0, 1,211, 0, 0, 1,211, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,212,228,176, 0, 0, 0,195, 0, 0, 0, 1, 4,212,239,224, 4,212,227,144, 0, 0, 0, 0, - 67, 52, 0, 0,196,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,109, 0, 0,195,145,128, 0, 0, 0, 0,163, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 2,144, 0, 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, 2,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,180, 2,145, 0,163, 2,145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 63, 0, 0, 5, 63, 0, 0, 1,211, 0, 0, 4, 99, 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, 4,212,229,208, 4,212,238,112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,229,208, 0, 0, 0,193, 0, 0, 0, 1, - 4,212,231, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 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, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,122, 0,163, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 4,212,231, 64, 0, 0, 0,193, 0, 0, 0, 1, 4,212,232,176, 4,212,229,208, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 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, 86, 73, 69, 87, 51, 68, 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, 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,254, 18, 0,163, 0, 80, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,232,176, - 0, 0, 0,193, 0, 0, 0, 1, 4,212,234, 32, 4,212,231, 64, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,118,105,101,119, 51,100, 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, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,118,105,101,119, 51,100, 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, 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,252,212, 0,163, 1, 38, - 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,234, 32, 0, 0, 0,193, 0, 0, 0, 1, 4,212,235,144, - 4,212,232,176, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,110, 97,109, -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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,110, 97,109, -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, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152, 0,163, 0, 36, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,212,235,144, 0, 0, 0,193, 0, 0, 0, 1, 4,212,237, 0, 4,212,234, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,100,105,115,112,108, 97,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, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,118,105,101,119, 51,100, 95,100,105,115,112,108, 97,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, - 68,105,115,112,108, 97,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,252,128, 0,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,237, 0, 0, 0, 0,193, - 0, 0, 0, 1, 4,212,238,112, 4,212,235,144, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73, -109, 97,103,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,104, 0,163, 0, 0, 0, 20, 0, 0, - 0, 4, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,212,238,112, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,237, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,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,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,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, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,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,252, 80, 0,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,212,239,224, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,212,228,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,211, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3,251, 2,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, - 2,152,140, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,152,140, 32, 0, 0, 0,153, 0, 0, 0, 1, 61, 30, 35,190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,117, 69,219, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, -187, 3, 18,111,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,117, 69,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,207, 53,149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,133,153, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195,249,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 30, 35,190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,117, 69,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -187, 3, 18,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,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, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65,207, 53,149, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 57,221, 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, 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, 63, 55, 62, 92,190,224,186, 56,190,148,203,237, -190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 0, 4,212,241, 0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,152,196, 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, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, - 0, 0, 8, 8, 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 61,204,204,205, 68,122, 0, 0, 0, 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, 7, 0, 10, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,212,242, 48, 0, 0, 0,194, - 0, 0, 0, 1, 0, 0, 0, 0, 4,212,224,192, 4,212,185, 16, 4,212,184,144, 4,212,186,208, 4,212,186,144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,185, 0, 0, 4, 99, 3, 3, 1, 68, 2,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4,212,245, 0, 4,212,245, 0, 4,212,242,192, 4,212,243,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,212,242,192, 0, 0, 0,195, 0, 0, 0, 1, 4,212,243,224, 0, 0, 0, 0, - 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,162, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 0, 0, 0, 0, 0, 25, 67, 83, 0, 0, 65,200, 0, 0, 67, 83, 0, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1, 68, 0, 26, 1, 68, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, 0, 0, 1,185, 0, 0, 1,210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,212,243,224, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,212,242,192, 0, 0, 0, 0, 67,131,128, 0,194,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,153,128, 0,196, 31,192, 0, 0, 0, 0, 0, 0, 0, 1, 51, 0, 0, 1, 68, 0, 0, 0, 18, 0, 0, 2,144, 0, 0, 0, 0, - 0, 0, 1, 50, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 50, 0, 0, 0, 18, 0, 0, 2,144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, - 0, 6, 1, 68, 2,145, 1, 51, 2,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 67, - 0, 0, 1,211, 0, 0, 4, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 68, 2,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, 68, 65, 84, 65, - 0, 0, 0,244, 4,212,245, 0, 0, 0, 0,163, 0, 0, 0, 1, 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, 4,212,246, 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, 1, 0, 0, 68, 65, 84, 65, 0, 0, 0, 12, 4,212,246, 32, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, - 4,212,246, 96, 68, 65, 84, 65, 0, 0, 0,168, 4,212,246, 96, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 1, - 2,152,190, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 21, 0, 1, - 0, 1, 0, 0, 2,152,190, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,120,240, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,202, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 4,213,128,192, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,214, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 4,213,127, 16, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,208, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,117,128, 0, 0, 0, 0, - 0, 1, 0, 1, 2,152,196, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,116,240, 0, 21, 0, 0, 0, 1, 0, 1, 2,152,190, 32, - 0, 0, 83, 78, 0, 0, 0,148, 4,212,247,144, 0, 0, 0,190, 0, 0, 0, 1, 4,213, 50,160, 4,212,182,208, 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, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4,212,248, 80, 4,212,251,208, 4,212,252, 16, 4,218,196,240, 4,213, 1,208, 4,213, 47,112, - 0, 0, 0, 0, 0, 0, 0, 0, 2,152,190, 32, 0, 0, 0, 0, 0, 0, 0, 6, 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, 53,222, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,248, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,248,144, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,248,144, 0, 0, 0,191, - 0, 0, 0, 1, 4,212,248,208, 4,212,248, 80, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212,248,208, 0, 0, 0,191, 0, 0, 0, 1, 4,212,249, 16, 4,212,248,144, 0, 0, 0, 0, 7,128, 4,128, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212,249, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,249, 80, 4,212,248,208, 0, 0, 0, 0, - 7,128, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,249, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,249,144, - 4,212,249, 16, 0, 0, 0, 0, 0, 0, 4, 20, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,249,144, 0, 0, 0,191, - 0, 0, 0, 1, 4,212,249,208, 4,212,249, 80, 0, 0, 0, 0, 7,128, 4, 20, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212,249,208, 0, 0, 0,191, 0, 0, 0, 1, 4,212,250, 16, 4,212,249,144, 0, 0, 0, 0, 5,240, 4, 20, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212,250, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,250, 80, 4,212,249,208, 0, 0, 0, 0, - 5,240, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,250, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,250,144, - 4,212,250, 16, 0, 0, 0, 0, 0, 0, 1,144, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,250,144, 0, 0, 0,191, - 0, 0, 0, 1, 4,212,251, 16, 4,212,250, 80, 0, 0, 0, 0, 5,240, 1,144, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, - 4,212,251, 16, 0, 0, 0,191, 0, 0, 0, 1, 4,212,251, 80, 4,212,250,144, 0, 0, 0, 0, 2,248, 1,144, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 4,212,251, 80, 0, 0, 0,191, 0, 0, 0, 1, 4,212,251,144, 4,212,251, 16, 0, 0, 0, 0, - 5,240, 3, 68, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,251,144, 0, 0, 0,191, 0, 0, 0, 1, 4,212,251,208, - 4,212,251, 80, 0, 0, 0, 0, 7,128, 3, 68, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,212,251,208, 0, 0, 0,191, - 0, 0, 0, 1, 0, 0, 0, 0, 4,212,251,144, 0, 0, 0, 0, 2,248, 4, 20, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212,252, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,252, 80, 0, 0, 0, 0, 4,212,248,144, 4,212,248,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,252, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,252,144, 4,212,252, 16, - 4,212,248,144, 4,212,249, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,252,144, 0, 0, 0,192, - 0, 0, 0, 1, 4,212,252,208, 4,212,252, 80, 4,212,248,208, 4,212,249,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212,252,208, 0, 0, 0,192, 0, 0, 0, 1, 4,212,253, 16, 4,212,252,144, 4,212,249, 80, 4,212,249,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,253, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,253, 80, - 4,212,252,208, 4,212,249,144, 4,212,249,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,253, 80, - 0, 0, 0,192, 0, 0, 0, 1, 4,212,253,144, 4,212,253, 16, 4,212,249, 16, 4,212,250, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,212,253,144, 0, 0, 0,192, 0, 0, 0, 1, 4,212,253,208, 4,212,253, 80, 4,212,248, 80, - 4,212,250, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,253,208, 0, 0, 0,192, 0, 0, 0, 1, - 4,212,254, 16, 4,212,253,144, 4,212,249, 80, 4,212,250, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,212,254, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,212,254, 80, 4,212,253,208, 4,212,249,208, 4,212,250,144, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,254, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,255, 16, 4,212,254, 16, - 4,212,250, 16, 4,212,250,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,255, 16, 0, 0, 0,192, - 0, 0, 0, 1, 4,212,255, 80, 4,212,254, 80, 4,212,250, 80, 4,212,251, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,212,255, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,212,255,208, 4,212,255, 16, 4,212,250,144, 4,212,251, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,212,255,208, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 0, 16, - 4,212,255, 80, 4,212,250, 16, 4,212,251, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 0, 16, - 0, 0, 0,192, 0, 0, 0, 1, 4,213, 0, 80, 4,212,255,208, 4,212,249,208, 4,212,251, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 0, 80, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 0,144, 4,213, 0, 16, 4,212,249,144, - 4,212,251,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 0,144, 0, 0, 0,192, 0, 0, 0, 1, - 4,213, 0,208, 4,213, 0, 80, 4,212,249, 16, 4,212,251,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,213, 0,208, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 1, 16, 4,213, 0,144, 4,212,251, 80, 4,212,251,144, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 1, 16, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 1, 80, 4,213, 0,208, - 4,212,249, 80, 4,212,251,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 1, 80, 0, 0, 0,192, - 0, 0, 0, 1, 4,213, 1,144, 4,213, 1, 16, 4,212,249,208, 4,212,251,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,213, 1,144, 0, 0, 0,192, 0, 0, 0, 1, 10, 62,170,240, 4,213, 1, 80, 4,212,251, 16, 4,212,251,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 10, 62,170,240, 0, 0, 0,192, 0, 0, 0, 1, 4,218,196,240, - 4,213, 1,144, 4,212,250, 80, 4,212,250,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,218,196,240, - 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 10, 62,170,240, 4,212,248, 80, 4,212,250, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 1,208, 0, 0, 0,194, 0, 0, 0, 1, 4,213, 4,160, 0, 0, 0, 0, 4,212,249, 80, - 4,212,248,144, 4,212,248,208, 4,212,249,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4, 21, 0, 0, 4,128, - 7, 7, 7,129, 0,108, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 2, 23,154,128, 4,213, 50, 64, 4,213, 50, 64, 4,213, 2, 96, - 4,213, 3,128, 0, 0, 0, 0, 0, 0, 0, 0, 9,182,164, 16, 10, 50,217,240, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 2, 96, - 0, 0, 0,195, 0, 0, 0, 1, 4,213, 3,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,133,160, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68,240, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 25, - 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 4, 12, 0, 10, 7,129, 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,128, 0, 0, 4,103, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 26, - 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,155,208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 3,128, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 2, 96, 0, 0, 0, 0, - 68,240, 0, 0, 0, 0, 0, 0, 65, 48, 0, 0, 0, 0, 0, 0, 68,238, 0, 0, 0, 0, 0, 0, 66,164, 0, 0, 0, 0, 7,112, - 0, 0, 7,129, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 82, 7,112, 0, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4, 21, 0, 0, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 0, 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, 2, 23,155, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 4,160, 0, 0, 0,194, 0, 0, 0, 1, - 4,213, 30, 96, 4,213, 1,208, 4,212,250, 16, 4,212,251, 80, 4,212,251,144, 4,212,249, 16, 0, 0, 0, 0, 0, 0, 5,241, - 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3, 67, 4, 4, 1,144, 3, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,151,128, - 4,213, 24,176, 4,213, 24,176, 4,213, 5, 48, 4,213, 6, 80, 0, 0, 0, 0, 0, 0, 0, 0, 10, 50,219, 80, 10, 60, 71, 64, - 68, 65, 84, 65, 0, 0, 0,248, 4,213, 5, 48, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 6, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 67,160, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,200, 0, 0, 0, 0, 0, 0, 65,248, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1,143, 0, 0, 0, 0, 0, 0, 0, 30, 67,137,128, 0, 65,200, 0, 0, 67,137,128, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 1,144, 0, 31, 1,144, 0, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,128, 0, 0, 3, 37, 0, 0, 3, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1,144, 0, 31, 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, 2, 23,153,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 6, 80, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,213, 5, 48, 0, 0, 0, 0, 67,199,128, 0,196, 86,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,191,127,254, -196, 73, 63,254, 0, 0, 0, 0, 0, 0, 1,127, 0, 0, 1,144, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 0, 0, 0, 1,126, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,126, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 1,144, - 3, 37, 1,127, 3, 37, 0, 0, 10, 62,135, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,128, 0, 0, 0, 0, - 0, 0, 3, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,144, 3, 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, 2, 23,152, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 4,213, 7,112, 4,213, 23, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, - 4,213, 7,112, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 8,224, 0, 0, 0, 0, 2, 23,152,208, 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,255,220, - 1,126, 0, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 8,224, 0, 0, 0,193, 0, 0, 0, 1, - 4,213, 10, 80, 4,213, 7,112, 9, 88,241,224, 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,255,135, 1,126, 0, 61, 0, 0, 0, 0, 0, 0, 0, 6, - 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 10, 80, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 11,192, 4,213, 8,224, 9, 88,243,144, - 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,255,111, 1,126, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 11,192, - 0, 0, 0,193, 0, 0, 0, 1, 4,213, 13, 48, 4,213, 10, 80, 9, 89, 1, 16, 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,254,140, 1,126, 0,203, - 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 13, 48, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 14,160, - 4,213, 11,192, 9, 88,253,176, 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,254, 58, 1,126, 0, 58, 0, 20, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 4,213, 14,160, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 16, 16, 4,213, 13, 48, 9, 88,255, 96, 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,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,254, 34, 1,126, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 16, 16, 0, 0, 0,193, - 0, 0, 0, 1, 4,213, 17,128, 4,213, 14,160, 9, 88,245, 64, 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,253,164, 1,126, 0,102, 0, 0, 0, 0, - 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 17,128, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 18,240, 4,213, 16, 16, - 9, 88,250, 80, 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,253, 10, 1,126, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 4,213, 18,240, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 20, 96, 4,213, 17,128, 9, 88,246,240, 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,252,242, - 1,126, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 20, 96, 0, 0, 0,193, 0, 0, 0, 1, - 4,213, 21,208, 4,213, 18,240, 9, 88,248,160, 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,252,218, 1,126, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, - 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, - 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 21,208, 0, 0, 0,193, 0, 0, 0, 1, 4,213, 23, 64, 4,213, 20, 96, 9, 89, 2, 48, - 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,252,194, 1,126, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 23, 64, - 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 21,208, 9, 89, 3,224, 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,252,170, 1,126, 0, 0, - 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,216, 4,213, 24,176, 0, 0, 0,159, 0, 0, 0, 1, 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, 2, 0, 1, - 0, 0, 0, 0, 10, 62,134, 96, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 30, 96, - 0, 0, 0,194, 0, 0, 0, 1, 4,213, 37,192, 4,213, 4,160, 4,212,251, 16, 4,212,251,208, 4,212,249,208, 4,212,250,144, - 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,145, 0, 0, 4, 19, 1, 1, 2,247, 2,131, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,124, 16, 4,213, 36,144, 4,213, 36,144, 4,213, 30,240, 4,213, 35,112, 0, 0, 0, 0, 0, 0, 0, 0, - 4,217, 14, 64, 4,218,186,224, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 30,240, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 32, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 98, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 61,192, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,246, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 2,247, 0, 26, 2,247, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, 0, 0, 5,239, 0, 0, 1,145, 0, 0, 1,170, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 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, 2, 23,131,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 0, 0,248, 4,213, 32, 16, - 0, 0, 0,195, 0, 0, 0, 1, 4,213, 33, 48, 4,213, 30,240, 0, 0, 0, 0, 67, 15, 0, 0,196, 70, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 15, 0, 0,196, 70,127,255, 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 3, 43, - 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, 3, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 0, 0, 0, 6, 0,160, 3, 44, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,249, - 0, 0, 2,249, 0, 0, 1,171, 0, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,105, - 0, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,129, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,213, 33, 48, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 34, 80, 4,213, 32, 16, 0, 0, 0, 0, - 67, 16, 0, 0,194,206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,206, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, - 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 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, 2,249, 0, 0, 5,239, 0, 0, 1,171, 0, 0, 1,171, 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, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,129,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 34, 80, 0, 0, 0,195, 0, 0, 0, 1, - 4,213, 35,112, 4,213, 33, 48, 0, 0, 0, 0, 67, 35, 0, 0,196,142,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0, -196, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 2,121, 0, 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, 2,121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, - 2,122, 0,163, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 5,239, 0, 0, 1,171, - 0, 0, 4, 19, 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, 2, 23,125, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 0,248, - 4,213, 35,112, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 34, 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, 0, 0, 0, 0, 0, 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,249, 0, 0, 5,239, 0, 0, 1,171, 0, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2,247, 2,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, - 2, 23,124,208, 0, 0, 0, 0, 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,152,144, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,152,144, 32, 0, 0, 0,153, 0, 0, 0, 1, 63,140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,172, 56,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -191,128, 1, 80,191,128, 0, 0,128, 0, 0, 0,128, 0, 0, 0,188,163,215,226,128, 0, 0, 0, 62,209,239, 68,190,205,177, 51, - 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, - 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70, -188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, - 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, 63,128, 0, 0, 62,229,157,178,191, 10, 96,101, -191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,133,101,205, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, 63,154, 37, 28, -190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 62,191,236,217, 63, 85,117, 54, -188, 70,247, 0,182, 32,192, 0,190,152,221,112, 62, 19, 93,163, 63, 42, 77, 51, 54, 4, 32, 0,196, 25,104,215, 67,135,132,133, -195,167, 9, 37,194, 71,252,136, 68, 25, 54, 3,195,135, 87,158, 67,166,209,205, 66, 71,254,151, 62,209,239, 68,190,205,177, 51, - 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, - 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,229,157,178,191, 10, 96,101, -191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,133,101,205, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, 63,154, 37, 28, -190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 55, 62, 92,190,224,186, 56, -190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 59, 29,227,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 0, 4,213, 36,144, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,152,196, 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, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, - 0, 0, 8, 8, 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 67,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, 16, 0, 0, 0, 7, 0, 10, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 37,192, 0, 0, 0,194, - 0, 0, 0, 1, 4,213, 42,112, 4,213, 30, 96, 4,212,248, 80, 4,212,250, 80, 4,212,250,144, 4,212,250, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, 0, 0, 1,143, 18, 18, 5,240, 1,144, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 23,189, 16, 4,213, 40,224, 4,213, 40,224, 4,213, 38, 80, 4,213, 39,112, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 69,128, - 10, 62,142,208, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 38, 80, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 39,112, 0, 0, 0, 0, - 0, 0, 0, 0, 67,160,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,190, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,239, 0, 0, 0, 0, 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, 68,189,224, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 5,240, 0, 26, 5,240, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,240, 0, 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, 2, 23,190, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 39,112, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 38, 80, 0, 0, 0, 0, 68, 61,192, 0, 0, 0, 0, 0, 67, 79, 0, 0, 0, 0, 0, 0, - 68,187,224, 0, 0, 0, 0, 0, 67,187, 0, 0, 0, 0, 5,223, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,222, 0, 0, 0, 0, 0, 0, 1,117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, - 0, 10, 5,240, 1,118, 5,223, 1,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, - 0, 0, 0, 26, 0, 0, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,240, 1,118, 0, 0, 0, 0, - 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, 23,189,208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 28, 4,213, 40,144, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 4,209, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 4,209, 36, 64, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1,104, 4,213, 40,224, 0, 0, 0,175, 0, 0, 0, 1, 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, 9,188,198, 96, 9,188,196, 96, 4,213, 40,144, 4,213, 40,144, 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, 0, 0, 2, 42, 0, 0, 2, 42, - 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 42,112, 0, 0, 0,194, 0, 0, 0, 1, 4,213, 47,112, 4,213, 37,192, 4,212,251, 80, - 4,212,249,208, 4,212,249,144, 4,212,251,144, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,128, 0, 0, 3, 69, 0, 0, 4, 19, - 3, 3, 1,144, 0,207, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23,120, 80, 4,213, 45, 64, 4,213, 45, 64, 4,213, 43, 0, - 4,213, 44, 32, 0, 0, 0, 0, 0, 0, 0, 0, 10, 62,144,240, 4,217, 21,160, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 43, 0, - 0, 0, 0,195, 0, 0, 0, 1, 4,213, 44, 32, 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 67,200, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,143, 0, 0, 0, 0, 0, 0, 0, 25, - 67,149,128, 0, 65,200, 0, 0, 67,149,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 4, 12, 0, 10, 1,144, 0, 26, 1,144, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, - 0, 0, 7,128, 0, 0, 3, 69, 0, 0, 3, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,144, 0, 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, 2, 23,121,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, - 68, 65, 84, 65, 0, 0, 0,248, 4,213, 44, 32, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 43, 0, 0, 0, 0, 0, - 67,131,128, 0,194,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,191,128, 0,195, 35, 0, 0, 0, 0, 0, 0, 0, 0, 1,127, - 0, 0, 1,144, 0, 0, 0, 18, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 1,126, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 1,126, 0, 0, 0, 18, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, 0, 0, 4, 12, 0, 6, 1,144, 0,181, 1,127, 0,163, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,128, 0, 0, 3, 95, 0, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1,144, 0,181, 0, 0, 0, 0, 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, 23,121, 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, 68, 65, 84, 65, 0, 0, 0,244, 4,213, 45, 64, 0, 0, 0,163, 0, 0, 0, 1, - 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, 9,188,191,144, 9,188,191,144, 4,213, 46, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 12, 4,213, 46, 96, - 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 4,213, 46,160, 68, 65, 84, 65, 0, 0, 0,168, 4,213, 46,160, - 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 1, 2,152,190, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,152,190, 32, - 0, 20, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 0, 21, 0, 1, 0, 1, 0, 0, 2,152,190, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 4,213,120,240, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,202, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,128,192, 0, 0, 0, 0, - 0, 1, 0, 1, 2,152,214, 32, 0, 0, 0, 0, 0, 1, 0, 1, 4,213,127, 16, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,208, 32, - 0, 0, 0, 0, 0, 1, 0, 1, 4,213,117,128, 0, 0, 0, 0, 0, 1, 0, 1, 2,152,196, 32, 0, 0, 0, 0, 0, 1, 0, 1, - 4,213,116,240, 0, 21, 0, 0, 0, 1, 0, 1, 2,152,190, 32, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 47,112, 0, 0, 0,194, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 42,112, 4,212,250, 80, 4,212,249, 80, 4,212,251,208, 4,212,251, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,145, 0, 0, 4, 19, 9, 9, 2,248, 2,131, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 23,181, 48, 2,152,148, 32, 2,152,148, 32, 4,213, 48, 0, 4,213, 49, 32, 0, 0, 0, 0, 0, 0, 0, 0, 10, 60, 74, 16, - 10, 60, 74,208, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 48, 0, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 49, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 62, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,247, 0, 0, 0, 0, 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, 68,189,224, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 2,248, 0, 26, 2,248, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,145, 0, 0, 1,170, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,248, 0, 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, 2, 23,183, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 49, 32, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 48, 0, 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 68, 22,192, 0, 68, 23,150,248, - 68,100, 41, 8, 67, 49, 44,113, 67,212,233,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,247, 0, 0, 0, 0, 0, 0, 2,104, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 35,215, 10, 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, - 0, 10, 2,248, 2,105, 2,248, 2,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, - 0, 0, 1,171, 0, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,248, 2,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, 2, 23,181,240, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 2,136, 2,152,148, 32, 0, 0, 0,166, 0, 0, 0, 1, 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, 32, 0, 0, 0, 0, 0, 12, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 61,204,204,205, 0, 0, 1,231, 0, 0, 1,243, 0, 0, 1,122, 0, 0, 1,124, 0, 0, 1,231, 0, 0, 1,243, 0, 0, 0, 4, - 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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, 0,148, - 4,213, 50,160, 0, 0, 0,190, 0, 0, 0, 1, 4,213, 74,240, 4,212,247,144, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,213, 51, 96, 4,213, 53, 32, 4,213, 53, 96, 4,213, 55,224, 4,213, 56, 32, 4,213, 64, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 2,152,190, 32, 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, - 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 51, 96, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 51,160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 51,160, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 51,224, - 4,213, 51, 96, 0, 0, 0, 0, 0, 0, 4, 97, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 51,224, 0, 0, 0,191, - 0, 0, 0, 1, 4,213, 52, 32, 4,213, 51,160, 0, 0, 0, 0, 7,118, 4, 97, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 4,213, 52, 32, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 52, 96, 4,213, 51,224, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 52, 96, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 52,160, 4,213, 52, 32, 0, 0, 0, 0, - 0, 0, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 52,160, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 52,224, - 4,213, 52, 96, 0, 0, 0, 0, 7,118, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 52,224, 0, 0, 0,191, - 0, 0, 0, 1, 4,213, 53, 32, 4,213, 52,160, 0, 0, 0, 0, 3,196, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, - 4,213, 53, 32, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 52,224, 0, 0, 0, 0, 3,196, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 53, 96, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 53,160, 0, 0, 0, 0, 4,213, 51,160, - 4,213, 51,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 53,160, 0, 0, 0,192, 0, 0, 0, 1, - 4,213, 53,224, 4,213, 53, 96, 4,213, 51,160, 4,213, 52, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,213, 53,224, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 54, 32, 4,213, 53,160, 4,213, 51,224, 4,213, 52,160, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 54, 32, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 54, 96, 4,213, 53,224, - 4,213, 52, 96, 4,213, 52,160, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 54, 96, 0, 0, 0,192, - 0, 0, 0, 1, 4,213, 54,160, 4,213, 54, 32, 4,213, 52, 96, 4,213, 52,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,213, 54,160, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 54,224, 4,213, 54, 96, 4,213, 51, 96, 4,213, 53, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 54,224, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 55, 32, - 4,213, 54,160, 4,213, 51, 96, 4,213, 52, 96, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 55, 32, - 0, 0, 0,192, 0, 0, 0, 1, 4,213, 55, 96, 4,213, 54,224, 4,213, 52,224, 4,213, 53, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 55, 96, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 55,160, 4,213, 55, 32, 4,213, 52,160, - 4,213, 52,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 55,160, 0, 0, 0,192, 0, 0, 0, 1, - 4,213, 55,224, 4,213, 55, 96, 4,213, 52, 32, 4,213, 53, 32, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,213, 55,224, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 55,160, 4,213, 52, 32, 4,213, 52,160, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 56, 32, 0, 0, 0,194, 0, 0, 0, 1, 4,213, 58,240, 0, 0, 0, 0, - 4,213, 52, 96, 4,213, 51,160, 4,213, 51,224, 4,213, 52,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 4, 71, - 0, 0, 4, 97, 7, 7, 7,119, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 4,213, 74,144, 4,213, 74,144, - 4,213, 56,176, 4,213, 57,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 4,213, 56,176, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 57,208, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,238,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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,118, 0, 0, 0, 0, - 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,119, 0, 26, 7,119, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,119, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 57,208, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 56,176, - 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 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, 97, 0, 0, 4, 97, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 58,240, 0, 0, 0,194, - 0, 0, 0, 1, 4,213, 64, 80, 4,213, 56, 32, 4,213, 51, 96, 4,213, 52, 96, 4,213, 52,224, 4,213, 53, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0, 0, 0, 0, 4, 69, 6, 6, 3,196, 4, 70, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2,152,152, 32, 2,152,152, 32, 4,213, 59,128, 4,213, 63, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 59,128, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 60,160, 0, 0, 0, 0, - 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,113, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,195, 0, 0, 0, 0, 0, 0, 0, 25, 68, 41,192, 0, 65,200, 0, 0, 68, 41,192, 0, 65,200, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 3,196, 0, 26, 3,196, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,196, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 60,160, 0, 0, 0,195, - 0, 0, 0, 1, 4,213, 63, 48, 4,213, 59,128, 0, 0, 0, 0, 67, 91, 0, 0,196,133, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 74,255,254,196,133,127,254, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 4, 43, 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, 4, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, - 0, 6, 0,220, 4, 44, 0,203, 4, 44, 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, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 4, 44, 0, 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, 4,213, 61,192, 4,213, 61,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 64, 4,213, 61,192, 0, 0, 0,193, 0, 0, 0, 1, 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,255,174, 0,202, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 63, 48, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 60,160, 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191, 41,153,154, - 63,212,204,205,191,149,153,154, 64, 10,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,232, 0, 0, 0, 0, 0, 0, 4, 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,220, 0, 0, 3,195, - 0, 0, 0, 26, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,232, 4, 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, 68, 65, 84, 65, - 0, 0, 32,248, 2,152,152, 32, 0, 0, 0,164, 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,100, 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, - 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 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, @@ -4436,18 +7888,116 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 32, 3, 0, 0,232,201, 71, 27, 1, 0, 0, 0, + 35, 0, 0, 0, 1, 0, 0, 0,104,218, 71, 27, 1, 0, 0, 0, 8,188, 71, 27, 1, 0, 0, 0, 56,211, 55, 23, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 53, 3, 0, 0, 72,205, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 41,172, 62, +205,204, 76, 63,199,247, 57, 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, 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, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,206, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,217, 71, 27, 1, 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, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 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, 96, 0, 0, 0, 72,205, 71, 27, 1, 0, 0, 0, 8, 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, +232,205, 71, 27, 1, 0, 0, 0,232,205, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 96, 0, 0, 0,232,205, 71, 27, 1, 0, 0, 0, 8, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, +136,206, 71, 27, 1, 0, 0, 0, 54, 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, 78, 84, 83,104, 97,100,101,114, 32, 78,111,100,101,116,114,101, +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,216,207, 71, 27, 1, 0, 0, 0, 40,209, 71, 27, 1, 0, 0, 0,120,217, 71, 27, 1, 0, 0, 0, +120,217, 71, 27, 1, 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, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,227, 55, 2, 1, 0, 0, 0,152, 11, 56, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 0, 0, +216,207, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 40,209, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,109, 57, 2, 1, 0, 0, 0, 68,105,102,102,117,115,101, 32,119,105,116,104, 32, 67,111, 97,116,105,110,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 51, 0, 1, 0,255, 15, 0, 0, 0, 0, 0, 0, 0, 0,120,210, 71, 27, 1, 0, 0, 0, + 24,213, 71, 27, 1, 0, 0, 0,248,213, 71, 27, 1, 0, 0, 0,248,213, 71, 27, 1, 0, 0, 0,216, 0, 72, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,188,107, 70, 67, 19, 88,247, 67, 0, 0, 72, 67, 0, 0, 40, 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,188,107, 70, 67,222, 53,199, 67, 19, 88,182, 67, 19, 88,247, 67, + 0, 0, 0, 0, 0, 0, 52, 67, 0, 0, 0, 0, 0, 0, 0, 0,188,107, 80, 67,222, 53,194, 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, 56,227, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, + 40,209, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,207, 71, 27, 1, 0, 0, 0, +136, 74, 58, 2, 1, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 32, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 64, 0, 1, 0,254, 15, 0, 0, 0, 0, 0, 0, 1, 0,216,214, 71, 27, 1, 0, 0, 0, +152,216, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 74, 8, 68,211, 14,234, 67, 40, 9, 52, 67, 0, 0, 40, 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, 94, 74, 8, 68,168, 76, 53, 68,211,142,191, 67,211, 14,234, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,202, 10, 68,168,204, 50, 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,184,252, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, +120,210, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 88,211, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,149, 54, 23, 1, 0, 0, 0, 67,111,108,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, 89, 9, 71, 62, 70,124, 29, 63,178, 24,163, 61, 0, 0,128, 63, 0, 0, 0,207, 0, 0, 0, 79, + 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,188,107, 70, 67, 19,216,219, 67, 11, 0, 0, 0,232, 21, 72, 27, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 88,211, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, + 56,212, 71, 27, 1, 0, 0, 0,120,210, 71, 27, 1, 0, 0, 0, 56,222, 54, 23, 1, 0, 0, 0, 67,111, 97,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,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0,128, 63, 0, 0, 0,207, 0, 0, 0, 79, 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,188,107, 70, 67, 19,216,209, 67, 12, 0, 0, 0, +200, 22, 72, 27, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, + 56,212, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 24,213, 71, 27, 1, 0, 0, 0, 88,211, 71, 27, 1, 0, 0, 0, + 72,170, 54, 23, 1, 0, 0, 0, 82,111,117,103,104,110,101,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,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 0, 0, 0, 79, + 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,188,107, 70, 67, 19,216,199, 67, 13, 0, 0, 0,168, 23, 72, 27, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 24,213, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,212, 71, 27, 1, 0, 0, 0, 24,184, 54, 23, 1, 0, 0, 0, 66,108,101,110,100, 0,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, 52, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 0, 0, 0, 79, 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,188,107, 70, 67, 19,216,189, 67, 15, 0, 0, 0, +136, 24, 72, 27, 1, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, +248,213, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 7, 56, 23, 1, 0, 0, 0, 67,108,111,115,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,207, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,222, 53,199, 67, 19,216,229, 67, 16, 0, 0, 0,104, 25, 72, 27, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,216,214, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, +184,215, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,171, 54, 23, 1, 0, 0, 0, 83,117,114,102, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 74, 8, 68,211, 14,219, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,217, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, +184,215, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,152,216, 71, 27, 1, 0, 0, 0,216,214, 71, 27, 1, 0, 0, 0, +232,161, 53, 23, 1, 0, 0, 0, 86,111,108,117,109,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,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 74, 8, 68,211, 14,209, 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, 68, 65, 84, 65,152, 0, 0, 0,152,216, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,184,215, 71, 27, 1, 0, 0, 0,184,103, 57, 2, 1, 0, 0, 0, 68,105,115,112,108, 97, 99,101, +109,101,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, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 74, 8, 68,211, 14,199, 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, 68, 65, 84, 65, 56, 0, 0, 0, +120,217, 71, 27, 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216,207, 71, 27, 1, 0, 0, 0, 40,209, 71, 27, 1, 0, 0, 0,248,213, 71, 27, 1, 0, 0, 0,216,214, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,217, 71, 27, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0, 72, 4, 72, 4, 56, 46,107, 3, 1, 0, 0, 0, + 56, 64,107, 3, 1, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 56, 46,107, 3, 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, 0, 0, 0, 0, 0, 0, @@ -4467,7 +8017,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -4577,6 +8126,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 0, 0, 56, 64,107, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4596,756 +8146,57 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 63,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 64, 80, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, - 4,213, 58,240, 4,213, 53, 32, 4,213, 52,224, 4,213, 52,160, 4,213, 52, 32, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 7,118, - 0, 0, 0, 0, 0, 0, 4, 69, 1, 1, 3,178, 4, 70, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213, 73, 96, - 4,213, 73, 96, 4,213, 64,224, 4,213, 72, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 4,213, 64,224, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,108,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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,177, - 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 3,178, 0, 26, 3,178, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3,178, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 66, 0, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 68,144, - 4,213, 64,224, 0, 0, 0, 0, 67, 32, 0, 0,196,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 15, 0, 0,196,109, 0, 0, - 0, 0, 0, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 3,179, 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, 3,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,160, 3,180, 0,143, - 3,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 4,100, 0, 0, 0,146, 0, 0, 4, 69, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,180, 0, 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, 4,213, 67, 32, - 4,213, 67, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 67, 32, - 0, 0, 0,193, 0, 0, 0, 1, 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,254, 42, 0,143, 1,190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 4,213, 68,144, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 71, 32, - 4,213, 66, 0, 0, 0, 0, 0, 67, 33, 0, 0,194,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 16,102,231,194,242, 90, 91, - 0, 0, 0, 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, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 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, 3,197, 0, 0, 4,100, 0, 0, 0, 26, 0, 0, 0,145, - 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, 4,213, 69,176, - 4,213, 69,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 69,176, - 0, 0, 0,193, 0, 0, 0, 1, 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,255,216, 0,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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 71, 32, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 72, 64, - 4,213, 68,144, 0, 0, 0, 0, 67, 35, 0, 0,196,126,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,126,191,255, - 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 4, 12, 0, 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, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 4, 13, 0,163, - 3,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 7,118, 0, 0, 0, 26, 0, 0, 4, 69, - 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 72, 64, - 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 71, 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, 4,101, - 0, 0, 7,118, 0, 0, 0, 26, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 4, 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, 2,152,186, 32, - 68, 65, 84, 65, 0, 0, 3, 68, 2,152,186, 32, 0, 0, 0,153, 0, 0, 0, 1, 63,190, 58,161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28, -191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 76,215, 74, 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, - 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 95, 25, 0, 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,160, - 0, 0, 0, 0,190,205,177, 52, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, - 0, 0, 0, 0, 64, 54,173,188,191,161, 95,136, 63,198,231,147, 63,128, 0, 0, 63, 27,255,169,190,224,249,208,191, 81,180, 48, -191, 81,158,184, 63,173,123,254, 62, 88,225,140, 62,185, 63, 26, 62,185, 44, 35,188,161,126,150, 63,122,156,206,190,228, 84,138, -190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 64, 82, 98,100, 64, 95, 25, 0, 62,141, 66, 97, 63, 29, 23,204,188, 18, 60,192, -179, 96, 0, 0,190,188, 15,195, 62, 53, 75,130, 63, 81,125,216,179,192, 0, 0,193,100, 77,115, 64,201,173, 16,192,248,148,181, -192,159,247,203, 65, 87, 74,233,192,190, 46,246, 64,234,106, 88, 64,160, 8, 45, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, - 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 95, 25, 0, 63,128, 0, 0, 63, 27,255,169,190,224,249,208,191, 81,180, 48, -191, 81,158,184, 63,173,123,254, 62, 88,225,140, 62,185, 63, 26, 62,185, 44, 35,188,161,126,150, 63,122,156,206,190,228, 84,138, -190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 64, 82, 98,100, 64, 95, 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, 63, 55, 62, 92,190,224,186, 56,190,148,203,237, -190,234,236, 3, 64, 95, 25, 0, 64, 95, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,224,106, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 0, - 4,213, 73, 96, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, 2,152,196, 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, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 0, 0, 8, 8, - 0, 0, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,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, 16, 0, 0, 0, 7, 0, 10, 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, 83, 78, 0, 0, 0,148, 4,213, 74,240, 0, 0, 0,190, 0, 0, 0, 1, - 0, 0, 0, 0, 4,213, 50,160, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213, 75,176, 4,213, 78,112, 4,213, 78,176, - 4,213, 82,240, 4,213, 83, 48, 4,213,103,208, 0, 0, 0, 0, 0, 0, 0, 0, 2,152,190, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 75,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,213, 75,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 4,213, 75,240, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 76, 48, 4,213, 75,176, 0, 0, 0, 0, 0, 0, 4, 97, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 76, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 76,112, 4,213, 75,240, - 0, 0, 0, 0, 7,118, 4, 97, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 76,112, 0, 0, 0,191, 0, 0, 0, 1, - 4,213, 76,176, 4,213, 76, 48, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 76,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,213, 76,240, 4,213, 76,112, 0, 0, 0, 0, 0, 0, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,213, 76,240, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 77, 48, 4,213, 76,176, 0, 0, 0, 0, 7,118, 4, 70, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 77, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 77,112, 4,213, 76,240, - 0, 0, 0, 0, 7,118, 2, 16, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 77,112, 0, 0, 0,191, 0, 0, 0, 1, - 4,213, 77,176, 4,213, 77, 48, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 77,176, - 0, 0, 0,191, 0, 0, 0, 1, 4,213, 77,240, 4,213, 77,112, 0, 0, 0, 0, 3, 76, 4, 70, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 4,213, 77,240, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 78, 48, 4,213, 77,176, 0, 0, 0, 0, 0, 0, 2, 16, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 78, 48, 0, 0, 0,191, 0, 0, 0, 1, 4,213, 78,112, 4,213, 77,240, - 0, 0, 0, 0, 3, 76, 2, 16, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 4,213, 78,112, 0, 0, 0,191, 0, 0, 0, 1, - 0, 0, 0, 0, 4,213, 78, 48, 0, 0, 0, 0, 7,118, 0,100, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 78,176, - 0, 0, 0,192, 0, 0, 0, 1, 4,213, 78,240, 0, 0, 0, 0, 4,213, 75,240, 4,213, 76, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 78,240, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 79, 48, 4,213, 78,176, 4,213, 75,240, - 4,213, 76,176, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 79, 48, 0, 0, 0,192, 0, 0, 0, 1, - 4,213, 79,112, 4,213, 78,240, 4,213, 76, 48, 4,213, 76,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,213, 79,112, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 79,176, 4,213, 79, 48, 4,213, 76,176, 4,213, 76,240, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 79,176, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 79,240, 4,213, 79,112, - 4,213, 76,240, 4,213, 77, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 79,240, 0, 0, 0,192, - 0, 0, 0, 1, 4,213, 80, 48, 4,213, 79,176, 4,213, 75,176, 4,213, 77,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,213, 80, 48, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 80,112, 4,213, 79,240, 4,213, 76,176, 4,213, 77,176, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 80,112, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 80,176, - 4,213, 80, 48, 4,213, 77,112, 4,213, 77,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 80,176, - 0, 0, 0,192, 0, 0, 0, 1, 4,213, 80,240, 4,213, 80,112, 4,213, 77,240, 4,213, 78, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 80,240, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 81, 48, 4,213, 80,176, 4,213, 77,176, - 4,213, 78, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 81, 48, 0, 0, 0,192, 0, 0, 0, 1, - 4,213, 81,112, 4,213, 80,240, 4,213, 77, 48, 4,213, 78,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 4,213, 81,112, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 81,176, 4,213, 81, 48, 4,213, 76,112, 4,213, 78,112, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 81,176, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 81,240, 4,213, 81,112, - 4,213, 77,112, 4,213, 78,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 81,240, 0, 0, 0,192, - 0, 0, 0, 1, 4,213, 82, 48, 4,213, 81,176, 4,213, 75,176, 4,213, 76,112, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 4,213, 82, 48, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 82,112, 4,213, 81,240, 4,213, 76,240, 4,213, 77,176, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 82,112, 0, 0, 0,192, 0, 0, 0, 1, 4,213, 82,176, - 4,213, 82, 48, 4,213, 77, 48, 4,213, 78, 48, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 82,176, - 0, 0, 0,192, 0, 0, 0, 1, 4,213, 82,240, 4,213, 82,112, 4,213, 76,176, 4,213, 77,240, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 4,213, 82,240, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 82,176, 4,213, 77, 48, - 4,213, 77,240, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 83, 48, 0, 0, 0,194, 0, 0, 0, 1, - 4,213, 86, 0, 0, 0, 0, 0, 4,213, 76,176, 4,213, 75,240, 4,213, 76, 48, 4,213, 76,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 97, 7, 7, 7,119, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 4,213,109,224, 4,213,109,224, 4,213, 83,192, 4,213, 84,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 4,213, 83,192, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 84,224, 0, 0, 0, 0, 0, 0, 0, 0, - 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,238,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 0, 0, 0, 0, 0, 25, 68,237,128, 0, 65,200, 0, 0, 68,237,128, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,119, 0, 26, 7,119, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 4, 71, 0, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7,119, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 84,224, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 4,213, 83,192, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, - 0, 2, 7,112, 0, 1, 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, 97, - 0, 0, 4, 97, 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, 68, 65, 84, 65, 0, 0, 0, 96, - 4,213, 86, 0, 0, 0, 0,194, 0, 0, 0, 1, 4,213, 89,192, 4,213, 83, 48, 4,213, 75,176, 4,213, 77,112, 4,213, 78,112, - 4,213, 76,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, 0, 0, 0, 99, 15, 15, 7,119, 0,100, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213, 88,208, 4,213, 88,208, 4,213, 86,144, 4,213, 87,176, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 86,144, 0, 0, 0,195, 0, 0, 0, 1, - 4,213, 87,176, 0, 0, 0, 0, 0, 0, 0, 0, 68,137,160, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,238,224, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 0, 0, 0, 0, 0, 25, 68,202,224, 0, 65,200, 0, 0, - 68,202,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,119, - 0, 26, 7,119, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,119, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,213, 87,176, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 86,144,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0,192, 17,189,112, 67,125, 70,246, 0, 0, 0, 0, 66, 72, 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,118, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 0, 18, - 0, 0, 0, 73, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, - 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 7,119, 0, 74, 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,118, 0, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,119, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,188, 4,213, 88,208, 0, 0, 0,170, 0, 0, 0, 1, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 68, 65, 84, 65, 0, 0, 0, 96, 4,213, 89,192, - 0, 0, 0,194, 0, 0, 0, 1, 4,213, 97, 64, 4,213, 86, 0, 4,213, 77,112, 4,213, 77,240, 4,213, 77, 48, 4,213, 78,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 0,101, 0, 0, 2, 15, 8, 8, 7,119, 1,171, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4,213, 96, 64, 4,213, 96, 64, 4,213, 90, 80, 4,213, 95, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 90, 80, 0, 0, 0,195, 0, 0, 0, 1, 4,213, 91,112, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 28, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,238,224, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 0, 0, 0, 0, 0, 25, 68,191, 96, 0, 65,200, 0, 0, 68,191, 96, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 7,119, 0, 26, 7,119, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,118, 0, 0, 0,101, 0, 0, 0,126, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,119, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 91,112, - 0, 0, 0,195, 0, 0, 0, 1, 4,213, 94, 0, 4,213, 90, 80, 0, 0, 0, 0, 67, 92, 0, 0,195,200,128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 75, 0, 0,195,200,128, 0, 0, 0, 0, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 1,144, - 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, 1,144, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 0,220, 1,145, 0,203, 1,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,155, - 0, 0, 7,118, 0, 0, 0,127, 0, 0, 2, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 1,145, - 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, 4,213, 92,144, 4,213, 92,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 4,213, 92,144, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 69, 81, 85, 69, 78, 67, 69, 82, 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, 83, 69, 81, 85, 69, 78, 67, 69, 82, 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, 83, 99,101,110,101, 32, 80,114,101,118,105,101,119, 47, 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,255,171, 0,203, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 0, 0,248, 4,213, 94, 0, - 0, 0, 0,195, 0, 0, 0, 1, 4,213, 95, 32, 4,213, 91,112,196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0, -196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 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, 70, 59,128, 0, 70, 59,128, 0, 55, 39,197,172, 71,195, 80, 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, 6,154, 0, 0, 2, 15, 0, 0, 2, 15, 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, - 68, 65, 84, 65, 0, 0, 0,248, 4,213, 95, 32, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213, 94, 0, 0, 0, 0, 0, - 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1,144, 0, 0, 0, 18, 0, 0, 6,154, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, - 0, 0, 6,154, 0, 0, 0, 18, 0, 0, 1,144, 65, 32, 0, 0, 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, 60, 35,215, 10, - 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6,155, 1,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, 6,154, 0, 0, 0,127, 0, 0, 2, 15, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6,155, 1,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, 68, 65, 84, 65, 0, 0, 0,216, 4,213, 96, 64, 0, 0, 0,160, 0, 0, 0, 1, - 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, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 4,213, 97, 64, 0, 0, 0,194, 0, 0, 0, 1, 4,213,103,208, 4,213, 89,192, 4,213, 77,240, 4,213, 76,176, 4,213, 77,176, - 4,213, 78, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 0, 0, 2, 17, 0, 0, 4, 69, 2, 2, 3, 76, 2, 53, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,102, 80, 4,213,102, 80, 4,213, 97,208, 4,213,101, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 4,213, 97,208, 0, 0, 0,195, 0, 0, 0, 1, - 4,213, 98,240, 0, 0, 0, 0, 0, 0, 0, 0, 68,100,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 83, 0, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 0, 0, 0, 0, 0, 0, 0, 25, 68,103,192, 0, 65,200, 0, 0, - 68,103,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 3, 76, - 0, 26, 3, 76, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 75, 0, 0, 2, 17, - 0, 0, 2, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,213, 98,240, 0, 0, 0,195, 0, 0, 0, 1, 4,213,100, 16, 4,213, 97,208, 0, 0, 0, 0, 67, 72, 0, 0,193,112, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,196, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, - 0, 0, 2, 26, 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, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 10, 0, 0, - 0, 2, 3, 3, 0, 0, 4, 0, 0, 6, 0,217, 2, 27, 0,200, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 2, 43, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,217, 2, 27, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213,100, 16, 0, 0, 0,195, 0, 0, 0, 1, 4,213,101, 48, 4,213, 98,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 0, 0, 3, 75, 0, 0, 2, 43, 0, 0, 4, 69, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213,101, 48, 0, 0, 0,195, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213,100, 16,193, 16, 0, 0, 67,130, 0, 0,192,160, 0, 0, 64,160, 0, 0, 0, 0, 0, 0, - 67,122, 0, 0,193, 16, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 2, 26, 0, 0, 0, 18, - 0, 0, 2,114, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 2,114, 0, 0, 0, 18, 0, 0, 2, 26, 58,131, 18,111, - 58,131, 18,111, 72,146,124, 0, 71, 67, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, - 0, 0, 2,115, 2, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 3, 75, - 0, 0, 2, 43, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,115, 2, 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, 68, 65, 84, 65, - 0, 0, 0,208, 4,213,102, 80, 0, 0, 0,158, 0, 0, 0, 1, 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, 4,213,103, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 88, 4,213,103, 80, 0, 0, 1, 16, 0, 0, 0, 1, 2,152,190, 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, 68, 65, 84, 65, 0, 0, 0, 96, 4,213,103,208, 0, 0, 0,194, 0, 0, 0, 1, - 0, 0, 0, 0, 4,213, 97, 64, 4,213, 78, 48, 4,213, 77,176, 4,213, 76,240, 4,213, 77, 48, 0, 0, 0, 0, 0, 0, 3, 77, - 0, 0, 7,118, 0, 0, 2, 17, 0, 0, 4, 69, 8, 8, 4, 42, 2, 53, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,213,108,224, 4,213,108,224, 4,213,104, 96, 4,213,107,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 4,213,104, 96, 0, 0, 0,195, 0, 0, 0, 1, 4,213,105,128, 0, 0, 0, 0, 0, 0, 0, 0, - 67,248, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,133, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 41, 0, 0, 0, 0, 0, 0, 0, 25, 68, 50, 64, 0, 65,200, 0, 0, 68, 50, 64, 0, 65,200, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 4, 12, 0, 10, 4, 42, 0, 26, 4, 42, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 7,118, 0, 0, 2, 17, 0, 0, 2, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 42, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213,105,128, 0, 0, 0,195, 0, 0, 0, 1, - 4,213,106,160, 4,213,104, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,118, 0, 0, 7,118, 0, 0, 2, 43, - 0, 0, 4, 69, 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, 68, 65, 84, 65, 0, 0, 0,248, - 4,213,106,160, 0, 0, 0,195, 0, 0, 0, 1, 4,213,107,192, 4,213,105,128,195,240, 0, 0, 67,240, 0, 0,195,135, 0, 0, - 67,135, 0, 0,196,216,187, 96, 68,216,187, 96,196, 91, 43,244, 68, 91, 43,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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, 41, 0, 0, 0, 0, - 0, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 70, 59,128, 0, 70, 59,128, 0, 55, 39,197,172, 71,195, 80, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 4, 42, 2, 27, 4, 42, 2, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 77, 0, 0, 7,118, 0, 0, 2, 43, 0, 0, 4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 42, 2, 27, 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, 68, 65, 84, 65, 0, 0, 0,248, 4,213,107,192, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 4,213,106,160, - 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 67,122, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 1, 75, 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 18, 0, 0, 2,201, 0, 0, 0, 18, 0, 0, 1, 75, 65, 32, 0, 0, 64,128, 0, 0, 72,146,124, 0, 66, 0, 0, 0, - 60, 35,215, 10, 66,200, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2,202, 1, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0,216, 4,213,108,224, 0, 0, 0,160, - 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, - 0, 0, 5,128, 2,152,190, 32, 0, 0, 0,151, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, - 4,213,110, 64, 0, 0, 0, 0, 2,152,196, 32, 4,213,120,240, 0, 0, 0, 0, 4,213,112,128, 4,213,113, 32, 4,213,112,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, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,113,112, 2,208, 58, 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,172, 68, 63,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, 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, 1, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 1,224, 0, 60, - 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 7,128, 4, 56, 0, 8, 0, 8, 0, 0, 0, 24, 0, 17, - 0, 0, 0, 0, 0, 90, 0, 1, 0, 0, 0, 0, 0, 0, 0, 81, 0, 33, 0, 23, 0, 0, 0, 2, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,116, 80, 4,213,116, 80, - 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 1, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 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, - 47, 47, 98, 97, 99,107, 98,117,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 5, 31, 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, 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 63,128, 0, 0, 63,128, 0, 0, - 2,173, 0, 95, 63,217,153,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 63,128, 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, 0, 0,172, 68, 63,128, 0, 0, 67,171,166,102, 63,128, 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, 4,213,116,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,209, 15, 64, - 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, 65, 28,204,205, 0, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 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, 2,128, 1,224, 0, 60, - 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, - 7,128, 4, 56, 61,204,204,205, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 28,245,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 4,213,110, 64, 0, 0, 0, 8, - 0, 0, 0, 1, 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, 4,213,110,192, 4,213,112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 4,213,110,192, 0, 0, 0, 8, - 0, 0, 0, 1, 4,213,112, 0, 0, 0, 0, 0, 6, 0, 0, 0,110,101,116,119,111,114,107, 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, 4,213,111, 64, 4,213,111, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 4,213,111, 64, 0, 0, 0, 8, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,101,114,118,101,114, 95, 97,100,100,114,101,115,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,111,192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 68, 65, 84, 65, 0, 0, 0, 12, 4,213,111,192, 0, 0, 0, 0, - 0, 0, 0, 1, 91,100,101,102, 97,117,108,116, 93, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 4,213,112, 0, 0, 0, 0, 8, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213,110,192, 6, 0, 0, 0,112,111,115,101, 95,116,101,109,112,108, 97,116,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, 68, 65, 84, 65, 0, 0, 0, 28, 4,213,112,128, 0, 0, 0,127, - 0, 0, 0, 1, 4,213,112,208, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 2,208, 1,231, 2,152,202, 32, - 68, 65, 84, 65, 0, 0, 0, 28, 4,213,112,208, 0, 0, 0,127, 0, 0, 0, 1, 4,213,113, 32, 4,213,112,128, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, 4, 0, 3,162, 3, 41, 2,152,208, 32, 68, 65, 84, 65, 0, 0, 0, 28, 4,213,113, 32, 0, 0, 0,127, - 0, 0, 0, 1, 0, 0, 0, 0, 4,213,112,208, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 4, 0, 0,159, 2, 73, 2,152,196, 32, - 68, 65, 84, 65, 0, 0, 1,152, 4,213,113,112, 0, 0, 0,147, 0, 0, 0, 1, 4,213,115, 48, 4,213,115,128, 4,213,115,208, - 63,128, 0, 0, 0, 1, 0, 1, 63, 76,204,205, 66,180, 0, 0, 0, 9, 0, 1, 63,128, 0, 0, 58,131, 18,111, 61,204,204,205, - 0, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 2,153,106, 32, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 80, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5,255,255, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66,200, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0, 0, 0, 0, 0, 62,128, 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, 63,128, 0, 0, 60, 35,215, 10, 61,204,204,205, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, - 61,204,204,205, 61,204,204,205, 63,166,102,102, 63,192, 0, 0, 65,240, 0, 0, 63,122,225, 72, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 2, 67, 0, 3, 2, 0, 1, 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, 17, 0, 0, - 0, 0, 0, 35, 63,121,197,204, 63, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 36, 4,213,115, 48, 0, 0, 0,146, 0, 0, 0, 1, - 2,153, 30, 32, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 36, 4,213,115,128, 0, 0, 0,146, 0, 0, 0, 1, 2,153, 30, 32, 0, 0, 0, 0, -200,200,255,128, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 88, 4,213,115,208, 0, 0, 0,145, 0, 0, 0, 1, 2,153, 82, 32, 0, 0, 0, 0,255,100,100,128, 0, 0, 0, 1, - 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 65,231, 7,124, 65, 20, 74,255, 63,123, 86, 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, 68, 65, 84, 65, 0, 0, 0, 72, 4,213,116, 80, 0, 0, 0,133, 0, 0, 0, 1, 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, 15,255,255, 0, 0, 0, 0, 0, 0,127,255, 0, 0, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 67, 65, 0, 0, 0,104, 4,213,116,240, 0, 0, 0, 21, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 63, 0, 0, 0, 61,204,204,205, 66,200, 0, 0, - 66, 12, 0, 0, 64,234, 14,161, 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, 76, 65, 0, 0, 1,108, 4,213,117,128, 0, 0, 0, 33, 0, 0, 0, 1, 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, 1, 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, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 65,239,255,247, - 66,150, 0, 0, 62, 25,153,154, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 4,213,119, 32, 0, 2, 0, 0, 63,128, 26, 46, - 65,240, 4, 25, 66, 52, 0, 0, 63,128, 0, 0, 64, 64, 0, 0, 61, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 64, 0, 3, 0, 1, 0, 0, 0, 2, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 58,131, 18,111, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 4,213,120,160, - 68, 65, 84, 65, 0, 0, 1, 16, 4,213,119, 32, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 2, 0, 1, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191, 53, 4,243, 63, 53, 4,242,191, 53, 4,242, - 63, 53, 4,243, 4,213,120, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 4,213,120, 96, 0, 0, 1, 74, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 4,213,120,160, 0, 0, 0, 11, - 0, 0, 0, 1, 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, 87, 79, 0, 0, 1,112, 4,213,120,240, 0, 0, 0,126, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 80, 99,114, 61, 80, 99,114, - 61, 80, 99,114, 60, 36, 54,199, 60, 36, 54,199, 60, 36, 54,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 28,204,205, 0, 0, 0, 0, - 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 0, 0, 65,200, 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, 0, 65,112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 61, 76,204,205, 0, 0, 0, 5, 0, 0, 0, 0, - 59,163,215, 10, 0, 0, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,213,122,144, 68, 65, 84, 65, 0, 0, 0, 32, 4,213,122,144, 0, 0, 0, 11, 0, 0, 0, 1, 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, 79, 66, - 0, 0, 4, 28, 2,152,196, 32, 0, 0, 0,114, 0, 0, 0, 1, 2,152,202, 32, 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, 1, 4, 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, 4,213,116,240, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 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, 64,239,101,110,192,208, 62,150, 64,170,255, 78, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,141,254, 42, 60, 49, 57,192, 63, 80,159, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 47,149,222, 63, 58, 70, 53, -188, 49, 56,222, 0, 0, 0, 0,190,162,126, 86, 62,159,251,227, 63,101, 53, 55, 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,149, - 62,227,247, 51, 0, 0, 0, 0, 64,239,101,110,192,208, 62,150, 64,170,255, 78, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 1, 51,128, 0, 1, -179, 0, 0, 1, 0, 0, 0, 0, 51, 0, 0, 0, 63,128, 0, 0, 51,128, 0, 1, 0, 0, 0, 0,179, 0, 0, 2,167, 0, 0, 2, - 63,128, 0, 1, 0, 0, 0, 0, 53, 0, 0, 1, 41, 0, 0, 1,168,128, 0, 1, 63,128, 0, 0, 63, 47,149,221,190,162,126, 86, - 63, 39,165, 8, 0, 0, 0, 0, 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,192, 63,101, 53, 55, - 62,227,247, 52, 0, 0, 0, 0,190,173, 38, 90,190,192,222, 0,193, 52, 9,152, 63,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, 1, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 79, 66, 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,201,150,180, 56, 63,128, 0, 0, 63, 16,225,187, 63,128, 0, 0, 62,204,204,205, 63, 32, 54,237, - 0, 0, 0, 0, 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 63,128, 0, 0, - 63,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, - 4,213,122,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0,144, 4,213,122,224, 0, 0, 0,117, 0, 0, 0, 1, - 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,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, 61,204,204,205, 62, 76,204,205, - 60,163,215, 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, 2, 0, 0, 79, 66, 0, 0, 4, 28, 2,152,202, 32, 0, 0, 0,114, - 0, 0, 0, 1, 2,152,208, 32, 2,152,196, 32, 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, 1, 4, 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, 9,182,152, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,128,192, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 6, 0, 0, 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, 4,213,123,160, 4,213,123,208, 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, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,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, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, - 79, 66, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0,201,150,180, 56, - 63,128, 0, 0, 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 4,213,124, 0, 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, 9,182,150,192, 9,182,157,176, 0, 0, 0, 25, - 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, - 68, 65, 84, 65, 0, 0, 0, 4, 4,213,123,160, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, - 4,213,123,208, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 4,213,124, 0, 0, 0, 0,117, - 0, 0, 0, 1, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,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, 61,204,204,205, - 62, 76,204,205, 60,163,215, 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, 72, 0, 0, 79, 66, 0, 0, 4, 28, 2,152,208, 32, - 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0, 0, 2,152,202, 32, 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, 1, 4, 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, - 4,213,117,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 6, 0, 0, 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, 64,130,112,154, - 63,128,178,183, 64,188,236,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, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 38,123,229, 61, 98, 43, 87, - 63,238,229,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190,148,236, 54, 63,116,134, 25,189, 98, 13,236, 0, 0, 0, 0, -191, 69,102,221,190, 76,174, 57, 63, 26,194, 34, 0, 0, 0, 0, 63, 16,255, 37, 62, 95,161,241, 63, 75,111,164, 0, 0, 0, 0, - 64,130,112,154, 63,128,178,183, 64,188,236,112, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 50,128, 0, 1,179, 0, 0, 0, 0, 0, 0, 0, - 50,128, 0, 1, 63,128, 0, 1, 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 1, 52, 0, 0, 1, 39,128, 0, 1, 63,128, 0, 0,190,148,236, 54,191, 69,102,221, 63, 16,255, 38, 0, 0, 0, 0, - 63,116,134, 24,190, 76,174, 57, 62, 95,161,239, 0, 0, 0, 0,189, 98, 13,237, 63, 26,194, 35, 63, 75,111,166, 0, 0, 0, 0, - 63, 13, 19,209,190,102, 65,241,192,231, 10, 10, 63,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, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, - 0, 0, 0, 68, 79, 66, 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, -201,150,180, 56, 63,128, 0, 0, 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,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, 1, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 4,213,124,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, 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, 68, 65, 84, 65, 0, 0, 0,144, 4,213,124,192, 0, 0, 0,117, 0, 0, 0, 1, 0, 0,192, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,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, 61,204,204,205, 62, 76,204,205, 60,163,215, 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, 2, 0, 0, 77, 65, 0, 0, 2,160, 2,152,214, 32, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2,208, 66, 32, 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, 1, 0, 0, 0, 0, 3, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 76,204,205, 63, 76,204,205, - 63, 76,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63, 76,204,205, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 60, 35,215, 10, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 62, 76,204,205, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, 63,160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 2, 0, 2, 0, 50, 0, 6, 63,128, 0, 0, 63,128, 0, 0, 0, 18, 0, 18, 59,163,215, 10, - 59,163,215, 10, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 64, 0, 67, 3, 64, 0, 67, 0, 1, 0, 4, 0, 12, 0, 4, - 63, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,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, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,128, 0, 0, 63, 0, 0, 0, 61,204,204,205, 63, 0, 0, 0, 61,204,204,205, - 61,204,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 4,213,125,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, 4,213,126,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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 26,148,111, 63, 26,148,111, 63, 26,148,111, 61, 76,204,205, 61,204,204,205, 63,166,102,102, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 4,213,125,128, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,127, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 32, 4,213,126,192, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 1, 0, 52, 0, 52, 2,152,218, 32, 2,117, 64, 32, 68, 65, 84, 65, 0, 0, 16, 0, 2,152,218, 32, - 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, 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, 68, 65, 84, 65, 0, 0,144, 0, 2,117, 64, 32, 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, @@ -6427,19 +9278,100 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 32, 3, 0, 0, +104,218, 71, 27, 1, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,201, 71, 27, 1, 0, 0, 0, +152, 71,119, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 46, 48, 48, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200,221, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 63,103,102, 70, 63, 51, 51, 51, 63, 0, 0,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, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,223, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +216,231, 71, 27, 1, 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, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 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, 96, 0, 0, 0,200,221, 71, 27, 1, 0, 0, 0, + 8, 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,104,222, 71, 27, 1, 0, 0, 0,104,222, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,104,222, 71, 27, 1, 0, 0, 0, 8, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0, 8,223, 71, 27, 1, 0, 0, 0, 54, 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, 78, 84, 83,104, 97,100,101,114, + 32, 78,111,100,101,116,114,101,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, 88,224, 71, 27, 1, 0, 0, 0,168,225, 71, 27, 1, 0, 0, 0, + 88,231, 71, 27, 1, 0, 0, 0, 88,231, 71, 27, 1, 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, 56,227, 55, 2, 1, 0, 0, 0, +152, 11, 56, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 88,224, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0,168,225, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 26,119, 23, 1, 0, 0, 0, 68,105,102,102,117,115,101, 32, 66, 83, 68, 70, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0, 1, 0, 1, 0,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, +248,226, 71, 27, 1, 0, 0, 0,248,226, 71, 27, 1, 0, 0, 0,216,227, 71, 27, 1, 0, 0, 0,216,227, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 66, 23, 67,160,192,230, 67, 0, 0, 22, 67, 0, 0, 40, 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,248, 66, 23, 67,124,161,150, 67, +160,192,195, 67,160,192,230, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 66, 33, 67,124,161,145, 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, 24,242, 55, 2, 1, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0,168,225, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88,224, 71, 27, 1, 0, 0, 0,120,199,118, 23, 1, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 32, 79,117,116,112,117,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 80, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, +184,228, 71, 27, 1, 0, 0, 0,120,230, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,175, 67,160,192,230, 67, 0, 0,240, 66, 0, 0, 40, 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,124,161,175, 67,124,161,235, 67, +160, 64,188, 67,160,192,230, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,180, 67,124,161,230, 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,184,252, 55, 2, 1, 0, 0, 0, + 68, 65, 84, 65,152, 0, 0, 0,248,226, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,247,118, 23, 1, 0, 0, 0, 67,111,108,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,205,204, 76, 63,211, 63, 71, 63, 40, 46, 57, 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, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 66, 23, 67,160, 64,203, 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, 68, 65, 84, 65,152, 0, 0, 0,216,227, 71, 27, 1, 0, 0, 0, + 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,248,118, 23, 1, 0, 0, 0, + 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,150, 67, +160, 64,213, 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, + 68, 65, 84, 65,152, 0, 0, 0,184,228, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,152,229, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,200,118, 23, 1, 0, 0, 0, 83,117,114,102, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,175, 67,160,192,215, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,231, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,152,229, 71, 27, 1, 0, 0, 0, + 50, 1, 0, 0, 1, 0, 0, 0,120,230, 71, 27, 1, 0, 0, 0,184,228, 71, 27, 1, 0, 0, 0,248, 0,119, 23, 1, 0, 0, 0, + 86,111,108,117,109,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,175, 67, +160,192,205, 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, + 68, 65, 84, 65,152, 0, 0, 0,120,230, 71, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,229, 71, 27, 1, 0, 0, 0,152, 2,119, 23, 1, 0, 0, 0, 68,105,115,112,108, 97, 99,101,109,101,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, 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, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,161,175, 67,160,192,195, 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, 68, 65, 84, 65, 56, 0, 0, 0, 88,231, 71, 27, 1, 0, 0, 0, + 53, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,224, 71, 27, 1, 0, 0, 0, +168,225, 71, 27, 1, 0, 0, 0,216,227, 71, 27, 1, 0, 0, 0,184,228, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,216,231, 71, 27, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, + 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, 1, 0,218, 0,218, 0, 56,210,107, 3, 1, 0, 0, 0, 56,228,107, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 0, 16, 0, 0, 56,210,107, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6497,20 +9429,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 1, 48, 4,213,127, 16, 0, 0, 0, 31, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 64,160, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 0, 0, - 0, 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, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 60,204,204,205, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,213,128,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 32, 4,213,128,112, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 1, 0, 16, 0, 15, 2,152,236, 32, 2,117,224, 32, 68, 65, 84, 65, 0, 0, 16, 0, 2,152,236, 32, - 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, @@ -6581,6 +9499,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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,144, 0, 0, + 56,228,107, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6638,7 +9558,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,144, 0, 2,117,224, 32, 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, @@ -7733,11 +10652,33 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176, 1, 0, 0, 72,232, 71, 27, 1, 0, 0, 0, + 46, 0, 0, 0, 1, 0, 0, 0,216,240, 71, 27, 1, 0, 0, 0, 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, 46, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 4, 0, 0, 0, 0, 56,234, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,235, 71, 27, 1, 0, 0, 0, 56,206,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,118,108, 3, 1, 0, 0, 0, 56,158,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,235, 71, 27, 1, 0, 0, 0, 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,120,237, 71, 27, 1, 0, 0, 0, 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, 40,239, 71, 27, 1, 0, 0, 0, 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,251, 1, 0, 0,237, 3, 0, 0, +244, 1, 0, 0, 0, 0, 0, 0,255,255,255,255, 1, 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, 67, 0, 0, 0, 30, 0, 4, 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, 96, 0, 0, 0, + 56,234, 71, 27, 1, 0, 0, 0, 8, 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,216,234, 71, 27, 1, 0, 0, 0,216,234, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,216,234, 71, 27, 1, 0, 0, 0, + 8, 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, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,120,235, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +232,201, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,200,235, 71, 27, 1, 0, 0, 0, 93, 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, + 56,118,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7746,6 +10687,327 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,156, 39, 0, 0, 56,118,108, 3, 1, 0, 0, 0, 52, 0, 0, 0,251, 1, 0, 0, +213,154,157, 62,224, 12, 65, 62,255,191,216, 62, 84, 95, 36,189, 38, 53, 1, 0,135, 82,232,190,208,134,189, 61,190,218,157, 62, +140,168, 26,166,138, 25, 1, 0, 23,127,194, 62,104, 2,254, 61, 57,151,191, 62, 85, 69,237,212,151, 98, 1, 0,103, 34,251,190, +128,211,106, 60, 58,144,120, 62,157,173,206,193,172, 75, 1, 0,166, 95,225, 62,184,210,165, 61,181, 53,149, 62,114, 82, 22,207, +207, 84, 1, 0,128, 4, 3,191, 0,202, 31,189,105, 46, 23, 62,231,166,119,185,230, 58, 1, 0,237,231,138, 62, 0, 49, 95,187, +151, 47,159, 62, 64, 15,255,157,230, 80, 1, 0,171,109,174,190,144,239,164,189,243,183, 95, 62, 37,242, 84,154,129, 76, 1, 0, +201,205,128, 62,128, 13,107, 61,228, 24,200, 62,253, 7,113,175, 36, 99, 1, 0,205,135,184,190,128,189,161,188, 71,197,152, 62, + 82,239, 85,172,106, 95, 1, 0,110, 18,111, 62, 0,157, 29, 62,244, 54,220, 62,110, 11, 54,140, 85, 53, 1, 0, 83,204,193,190, +224, 67,157, 61, 86,227,172, 62, 2, 2, 6,139,233, 51, 1, 0, 55, 72, 36, 62, 32,198, 50, 62,135,140,219, 62, 22,176, 57,164, +170, 39, 1, 0, 59,144,161,190, 88,176,234, 61, 59,189,182, 62,178, 84,249,184,135, 64, 1, 0, 20, 85,232, 61, 8,217,201, 61, +197,212,195, 62, 15,191,106,194,128, 91, 1, 0,158,232,117,190,176, 41, 93, 61,167,124,168, 62,112, 48,180,208,160,108, 1, 0, + 92, 6,184, 61, 80,129, 65, 61,164, 15,154, 62, 92,183,132,177, 84, 70, 1, 0,186,129, 58,190,192, 97, 84, 60,234, 6,133, 62, +210, 65,248,194, 62, 91, 1, 0,128,121,139, 59,156,204, 79, 62, 98, 75,138, 62,108,141,124,253,253, 56, 1, 0,178,230, 6,190, +128, 63, 62, 62, 32,142,127, 62, 20, 90, 70, 23,230, 87, 1, 0,112,127, 60, 61, 40, 61, 98, 62,255,144,180, 62,157,153, 13, 2, +200, 76, 1, 0, 6,139, 75,190,136,165, 66, 62,165,162,161, 62,238, 71, 5, 24, 28,103, 1, 0,232,104, 1, 62,248,233,116, 62, + 12,160,211, 62,123,130,121,245,187, 22, 1, 0,199, 37,151,190, 76,129, 62, 62,197, 5,179, 62, 28,112,107, 19,159, 58, 1, 0, + 66,138, 21, 62, 16,133,162, 62,146, 83,207, 62,245,157,201, 81,253, 8, 1, 0, 55,239,168,190, 22,206,131, 62, 71,132,170, 62, + 71, 68,191,102, 28, 34, 1, 0, 28,251,178, 61, 38,204,182, 62,254,182,173, 62,240,176, 57, 72, 28, 70, 1, 0,217, 74,136,190, + 20,251,159, 62,223, 94,146, 62, 65, 35,161, 86, 96, 87, 1, 0, 88,117,102, 61,202,212,194, 62,171, 21,123, 62,104,169, 8, 81, + 37, 48, 1, 0,166,231, 92,190,174, 71,177, 62, 54, 4, 81, 62,122, 46,205, 97, 62, 68, 1, 0,183, 95,101, 62,184,140,238, 62, +219, 13,110, 62,121,249, 26,117, 65, 51, 1, 0,187,165,198,190, 52, 15,199, 62,115,102, 15, 62,185,218, 58,113,156, 46, 1, 0, + 12,179, 91, 62,236,111,217, 62, 31,171,168, 62, 83,245, 10,107, 92, 69, 1, 0, 15,124,203,190,106,242,177, 62, 4,175,114, 62, +188,219,208,103,127, 65, 1, 0,203,182, 90, 62,168,204,179, 62, 0, 86,203, 62,183,242,237,126,202, 9, 1, 0, 49,250,203,190, + 40, 79,140, 62,122, 2,156, 62,167,234,233,125,146, 8, 1, 0,208, 59,150, 62,106,168,169, 62, 33,135,204, 62,137, 79, 61, 97, +132, 24, 1, 0,131,177,239,190,104, 7,113, 62,224,161,145, 62,170,151, 16, 74,190,252, 1, 0,147, 40,181, 62,120,214,195, 62, +114,121,169, 62,253, 56,108, 83,149, 78, 1, 0,120, 60, 4,191,122,172,139, 62,125, 84, 76, 62, 40,160, 41, 64,128, 55, 1, 0, +181, 44,208, 62, 80, 25,212, 62,250, 97,113, 62,210, 66,196, 87,236, 64, 1, 0,246,157, 11,191, 96,171,150, 62,152, 73,188, 61, +251,153,124, 66,107, 39, 1, 0,209,240,252, 62,192, 98,128, 62, 72,148,133, 62,150, 98,157, 22,110, 78, 1, 0,138, 12, 24,191, + 16,185,232, 61,123,197,197, 61,118,136, 32,251,124, 45, 1, 0, 1,219,216, 62,104, 36,132, 62,113,209,177, 62, 27, 88,115, 23, +213, 89, 1, 0, 90, 61, 14,191, 80,234, 9, 62,242, 48, 76, 62,165,142, 16,254,103, 59, 1, 0,221,155,168, 62, 24,150,132, 62, +165,146,209, 62,122,118, 4, 18,246, 44, 1, 0,147, 43,249,190,128,221, 31, 62,118,120,146, 62,231,128, 18,243,222, 7, 1, 0, +255,233,170, 62, 52, 16,134, 62, 9, 5,217, 62,159,117, 34, 18, 25, 47, 1, 0,247,211,253,190, 80, 16, 33, 62,159,221,152, 62, + 11,129, 80,243, 40, 10, 1, 0, 28, 48,152, 62, 8,158,174, 62,131,100,211, 62,104, 77,132, 97,177, 29, 1, 0,187,179,244,190, + 72, 49,121, 62,240,113,151, 62, 16,152,169, 74, 76, 2, 1, 0, 40,200, 85, 62, 90, 82,188, 62,188,141,212, 62, 83,241,140,124, +154, 25, 1, 0,131,113,206,190,208,212,148, 62, 8, 58,165, 62,234,231, 92,123, 46, 24, 1, 0,170, 88, 10, 62,220, 30,167, 62, +134,153,216, 62,236,159,130, 79,206, 28, 1, 0,123,145,167,190,148, 72,137, 62,140,215,180, 62, 63, 61, 86, 99,145, 52, 1, 0, + 68,233,223, 61,240, 69,118, 62,123,244,220, 62,251,132,190,247, 90, 34, 1, 0,229,242,145,190,216, 95, 67, 62,147,116,190, 62, +222,105,150, 20,237, 68, 1, 0, 12,126, 26, 62,176, 11, 46, 62,128,252,229, 62,100,177, 66,172,122, 56, 1, 0,203,126,159,190, + 40,190,228, 61,111, 58,194, 62,166, 76,211,191,238, 79, 1, 0,225, 47, 94, 62, 20,173,130, 62, 57,212,232, 62, 70, 2,164, 20, + 76,126, 1, 0,155, 61,202,190, 28, 95, 54, 62,133,128,185, 62, 40,212,212, 14, 85,119, 1, 0,140,242,108, 62, 36,204, 18, 62, +118,194,231, 62, 0, 9,182,145, 83, 64, 1, 0, 71,220,194,190, 64,162,135, 61,239,110,184, 62,186,255,139,144,237, 62, 1, 0, +205, 66,160, 62,252, 9, 61, 62, 80,199,224, 62, 12, 93, 70,189, 51, 57, 1, 0, 11,161,236,190,112,254,177, 61,234,212,164, 62, +113,169,163,166, 18, 30, 1, 0,108, 29,190,189, 60,205,188, 62,236, 33,157, 62,225,237,208,125, 1, 15, 1, 0, 32,153,199,189, +194, 42,159, 62,143,142,197, 62, 25,235,177, 15, 76,125, 1, 0,128,182,185, 59,244, 29, 25,191,102, 81,236, 62, 60,235,105, 14, +121,125, 1, 0, 88, 47, 6,189,153,236,142,190,222, 78,230, 62,241,255,236,157, 60, 82, 1, 0,128, 84, 63,189,236, 93, 37,190, +165, 85,227, 62,236,232, 57,110,212, 60, 1, 0, 48,163,132, 60,252,135, 46,191,146, 97,236, 62, 83, 2,150,150,144, 72, 1, 0, + 60,143,143,189,224, 2,169, 62,160, 46, 65, 62,196,234,100,119,246, 40, 1, 0,164,162,163,189, 88, 17,240, 62,200, 13, 13, 62, +130,231,159, 92,224, 84, 1, 0, 80,145, 99, 61,250, 13, 28, 63, 44, 97, 96,191, 53, 1, 55, 94, 96,169, 1, 0,222,242, 4, 62, + 68, 30,142, 62, 28,172,139,191, 41, 16,174, 21,229,130, 1, 0,112,165, 45, 62, 28,114, 23,190, 14,210,127,191, 9, 24,102,200, + 64,143, 1, 0,150,157, 14, 62,232, 11,246,190, 42,102, 5,191, 24, 19,116,131,130,233, 1, 0,149,125, 40, 62,120,177, 45,190, +159, 49,137, 62, 2,115,163,224,153, 46, 1, 0,170,149, 65,190,144, 83, 91,190, 1,179, 91, 62,158,143,250,195, 64, 12, 1, 0, + 86,161,143, 62, 2,160,191,190, 7,164,166, 62,100,115,120, 45,160, 31, 1, 0,167,227,134,190, 60,186,226,190, 37, 37,121, 62, +250,128,235, 14, 3,251, 1, 0,230,158,172, 62, 81, 45, 24,191,236,121,188, 62, 42,117, 13, 31, 29, 41, 1, 0,175,182,140,190, + 15,236, 43,191, 79, 38,141, 62, 18,128, 41, 0, 24, 4, 1, 0,136, 76,191, 62, 57,145, 68,191,181,198,186, 62,125,119,128, 0, +224, 45, 1, 0, 21,246,135,190,160, 48, 89,191,161, 88,137, 62,243,131,207,225, 23, 9, 1, 0,197,239,176, 62,209, 28, 82,191, +185,194,184, 62,103, 88,241,175,116, 46, 1, 0,118, 4,103,190,147,138,100,191,206,150,140, 62, 27,180, 60,155,163, 21, 1, 0, +105,250, 90, 62,117,119, 90,191,110, 91,190, 62,192, 28, 16,139, 95, 43, 1, 0,128,163,202,189,255,142,100,191, 2, 43,166, 62, + 40,245, 18,134,100, 37, 1, 0,200,209, 98, 61,111, 55, 98,191,220,206,189, 62,237, 7, 26,137,184, 46, 1, 0,183,239,188, 62, + 12,117,219,189,192,162,135, 62, 29, 56,134,145, 18, 32, 1, 0,163,253,200,190,254, 3, 80,190,253,122, 25, 62,141,221, 28,134, +100, 18, 1, 0, 74,105, 7, 63, 0,208,114, 59, 20,173,144, 62,110, 80, 25,169,151, 48, 1, 0,238,150, 18,191, 4, 95, 10,190, +189,243,237, 61,133,188,117,150, 64, 26, 1, 0, 22, 63, 50, 63,180,111, 52, 62,138,168, 76, 62, 50,121,139,218, 13, 17, 1, 0, +174,202, 62,191,128,107,179,187, 48,108,146,188,247,147,167,189,110,238, 1, 0,246, 77, 45, 63,168, 52,227, 62,107, 58,149, 62, +162,100, 46, 71,124, 34, 1, 0,222,168, 81,191,128,172,130, 62,122, 41,134, 61,144,135, 81, 43, 24, 1, 1, 0,100,211, 9, 63, +152, 82,245, 62, 50, 1,149, 62,243, 48,188,116,243, 18, 1, 0,118,253, 50,191,232,118,165, 62,146, 50,213, 61,219,176,151,100, +154,255, 1, 0, 37, 51,168, 62,164,182, 16, 63,230, 59,153, 62,148, 61, 19,111,229, 15, 1, 0,228, 59, 7,191,240, 35,234, 62, + 10,244, 45, 62,111,167, 39, 92, 56,249, 1, 0, 5, 30, 34, 62,228, 68, 48, 63,165,201,150, 62,242, 12, 58,127, 74, 5, 1, 0, +119,108,204,190,112, 71, 30, 63,235, 85, 87, 62,156,211, 0,120,161,252, 1, 0, 64, 3,126, 60,244,187, 35, 63, 64, 9,153, 62, +224,166,203, 91,107,252, 1, 0, 89, 82,131,190,100,245, 26, 63,134, 0,132, 62, 65, 61,191,110, 33, 19, 1, 0, 40,149, 56,189, +236,176,220, 62,190, 36,160, 62, 80,145, 29, 64,137,251, 1, 0,170,141, 29,190,176,171,213, 62,227,186,151, 62, 46, 88, 45, 89, +146, 25, 1, 0,136,117, 63, 61,148, 32,193, 62, 88, 46,183, 62,236, 15, 57,252,242,126, 1, 0,170,148,116,190,210,178,174, 62, +121, 24,161, 62, 67,205,210,243,224,116, 1, 0,128,110,192, 60,188,168,141, 62, 88, 61,185, 62, 77,241,217,249,255,126, 1, 0, +242,194, 70,190,124, 60,127, 62,140,105,168, 62, 43,234,243,248,236,125, 1, 0, 20, 85,232, 61, 8,217,201, 61,197,212,195, 62, + 64,221, 5,245,178,122, 1, 0,158,232,117,190,176, 41, 93, 61,167,124,168, 62, 37,255, 75,249,209,127, 1, 0, 97, 32,141, 62, +240,142, 53, 61,251,234,195, 62,126, 24,200,234,211,123, 1, 0,203, 24,193,190, 16,109, 27,189,172,111,145, 62,121,202,242,224, + 10,112, 1, 0, 85,152,193, 62,176, 97,192, 61,200,120,186, 62,254, 39, 95,230,218,118, 1, 0,163, 18,245,190, 0, 29,102,188, +253,109,112, 62,164,190, 24,217,241,102, 1, 0,205,237,248, 62,128,111, 91, 62,199,183,175, 62,133, 39,123,253,183,121, 1, 0, + 14, 14, 26,191,248, 12,158, 61,186, 41, 55, 62,163,184,129,239,247,104, 1, 0, 75,250,250, 62,184, 89,159, 62, 32,159,168, 62, + 6, 29, 17,252,153,124, 1, 0, 78,254, 31,191,224,199, 46, 62,128,195, 36, 62,219,193,148,240,212,110, 1, 0, 91,226,228, 62, + 16, 5,193, 62,207, 23,167, 62,169, 14,136,238,242,125, 1, 0, 2,162, 25,191, 20,229,122, 62, 47, 57, 44, 62, 11,210,228,230, +202,116, 1, 0,225, 93,145, 62, 44,220,214, 62, 78, 23,175, 62, 47, 4, 43, 20, 83,126, 1, 0,243,152,237,190, 22,152,166, 62, +143,126,106, 62,126,210,232, 13,210,118, 1, 0,140,202,243, 61, 22, 75,221, 62,115,248,177, 62,186, 14, 80, 6,253,126, 1, 0, + 31,222,161,190, 26, 54,193, 62,239, 80,144, 62,232,203,229,253,229,116, 1, 0, 0,105, 88, 60, 85, 69, 44,191, 86,184,242, 62, + 51,242,118,219,227,121, 1, 0, 16,151,213, 61,120,192, 30,191,253,150,246, 62, 26, 1, 64,255,253,127, 1, 0, 56, 86,176,189, + 16,229, 36,191,189,221,231, 62,241,217, 80,250, 18,122, 1, 0, 28,162,255, 61, 13,110, 57,191, 2,119,245, 62, 73,251,125,234, + 22,126, 1, 0,116, 37,162,189,251, 2, 64,191,112,176,229, 62,235,228,172,231,181,122, 1, 0,196, 71,171, 61,163,238, 69,191, +228, 90,238, 62,185,238,237,220,224,121, 1, 0, 0, 36,206,188, 68,113, 73,191,242,240,229, 62, 16,245,185,221,213,122, 1, 0, +144,131,254, 60, 39,176, 73,191, 22, 69,231, 62, 46,240, 14,232,188,124, 1, 0, 16, 75, 32,189,116,143, 50,190,105, 39,207, 62, +149,232,145,107, 76, 65, 1, 0,152, 62, 47,189,234,215, 2,190,160,158,199, 62, 90,231,232, 86,173, 90, 1, 0, 56,163, 61, 61, +220,204,252,189,142, 9,207, 62, 48, 8,158, 64, 47,110, 1, 0,198,160, 5,190,122, 55, 21,190,138, 93,193, 62,178,200,157, 56, +152,100, 1, 0,232, 72,148, 61, 48, 97, 64,190, 79,229,217, 62,192, 82,164,232,207, 94, 1, 0, 78,172, 20,190, 44,118, 92,190, +130, 17,201, 62,131,157,204,209,111, 67, 1, 0,216,122, 56, 61,148,134,125,190, 86,118,216, 62,254, 51, 50,223, 67,112, 1, 0, +176, 33,214,189,129,106,136,190,178,228,204, 62, 49,183,119,207,105, 93, 1, 0, 47,187,156, 62, 0,155, 61,188, 92, 79,188, 62, + 34, 38, 92,211,188,113, 1, 0,125, 97,198,190, 64,185,202,189, 68,172,134, 62,119,198, 77,199, 72, 99, 1, 0,191, 45,253, 62, +144, 19,194, 61,127,180,174, 62,107, 51,227,227,202,113, 1, 0,210,114, 20,191, 96,119, 38,189,162, 61, 55, 62, 37,182, 25,212, +222, 94, 1, 0,226,129, 20, 63,144,139,110, 62,156,160,160, 62,192, 56, 18,238, 81,113, 1, 0,126, 69, 47,191, 24,163,150, 61, +185, 70,251, 61,224,174,177,220,125, 92, 1, 0,204, 17, 18, 63, 20,102,200, 62, 2, 25,173, 62,214, 44, 91, 5,196,119, 1, 0, + 24,172, 56,191,140, 15,106, 62, 59, 95, 18, 62, 96,178,237,245, 68,101, 1, 0, 66, 92, 2, 63, 76,105,219, 62,140,166,197, 62, +102, 23,232, 18,105,124, 1, 0,202, 2, 48,191,140, 47,142, 62,145, 51, 82, 62,148,193, 23, 8,114,111, 1, 0,155, 13,138, 62, + 76,159, 6, 63,168, 18,202, 62,181, 19,236, 18, 11,125, 1, 0,183,223,251,190,216, 25,220, 62,125, 45,143, 62,206,196,250, 8, + 32,113, 1, 0,215,100, 22, 62, 4, 78, 25, 63, 52,250,203, 62,113, 11,161, 48,216,117, 1, 0,135, 82,203,190,228,192, 7, 63, +192,232,161, 62, 86,199, 11, 40,142,107, 1, 0, 24,170, 82, 61, 76,135, 17, 63, 77, 72,205, 62,181,212,156, 35, 17,115, 1, 0, +103,180,154,190,196, 30, 6, 63, 47,240,177, 62,247,253,207, 40, 76,121, 1, 0,112,161,158,188,232, 64,201, 62, 78,244,208, 62, + 14,226,231, 13,170,123, 1, 0,218,221, 72,190, 92,216,189, 62, 51, 72,195, 62, 97,244, 54, 16,110,126, 1, 0,224, 0, 86, 61, +208, 68,145,189, 86, 68,236, 62, 2,246, 37,251,131,127, 1, 0,134, 80, 41,190,200,110,201,189,137,112,219, 62, 89,229, 12,249, +255,124, 1, 0,163, 69, 48, 62, 3,120,191,190,149,172,222, 62, 82, 55, 94, 38,219,108, 1, 0,150,186, 71,190,186, 41,215,190, + 59, 71,194, 62,213,163,199, 19,148, 86, 1, 0, 17,200,109, 62,162,224, 24,191,230, 32,234, 62, 73, 54, 63, 20, 33,114, 1, 0, + 90,217, 79,190, 32,235, 38,191, 99,121,200, 62,168,167, 69, 2,150, 92, 1, 0, 15,226,132, 62, 10, 86, 51,191,114,135,233, 62, +133, 55,178,252, 71,115, 1, 0,126,183, 79,190, 52, 65, 66,191,120,197,197, 62,228,171, 25,235, 48, 94, 1, 0, 14, 11,123, 62, +150, 37, 74,191,142,145,224, 62,162, 38, 28,197,223,106, 1, 0,110,188, 38,190,110, 79, 87,191,107, 4,193, 62,117,203,158,185, + 25, 93, 1, 0,182,199, 61, 62,152,154, 79,191,241,255,220, 62, 35, 17,231,175, 90, 98, 1, 0,124, 84,205,189,124,209, 88,191, +251,233,198, 62,250,230,151,170,252, 91, 1, 0, 72, 36, 47, 61, 33,111, 87,191,212,148,214, 62, 22,253,233,167,207, 92, 1, 0, + 16, 58,105,189,192,246, 8, 61,244,186,178, 62,158,234,106, 20,137,124, 1, 0, 20,220,157,189,100,178, 57, 62,112,207,183, 62, + 39,238, 46,246, 93,126, 1, 0, 18, 45, 65, 62, 36, 32,228, 62,233,185,175, 62, 18,253, 84, 8,176,127, 1, 0,119,219,195,190, +152, 68,191, 62,253,141,131, 62,142,219, 27, 4,161,122, 1, 0, 44,237,151, 61, 64, 93, 11, 62,154, 43,193, 62, 83,199, 70,247, +110,114, 1, 0, 94,123, 88,190,120, 3,205, 61,165, 21,171, 62, 74, 21, 25, 1, 53,126, 1, 0,248,119, 34, 61,208,147, 71, 62, + 5, 74,189, 62,162,217,110,246,188,121, 1, 0,210, 31, 68,190,136,189, 41, 62, 20,105,171, 62,109, 2,146,251,229,127, 1, 0, +112,230,221, 61, 69,145, 23,191,166,201,244, 62,138, 2,248, 13, 52,127, 1, 0, 36,225,195,189, 46, 38, 30,191, 21, 3,229, 62, + 67,213, 67, 8, 93,120, 1, 0, 0, 21, 80, 61, 51, 85,196,190,119, 9,231, 62, 94,252, 26, 21, 49,126, 1, 0,124,122,174,189, +193, 27,205,190, 14,133,220, 62,139,217,183, 16,238,120, 1, 0,160,223,140,188,122,184,200,190, 78,199,225, 62,215,234, 52, 18, +234,124, 1, 0, 32,180,215,188,132, 0,149,190,134,150,213, 62,239,242, 43,215,153,120, 1, 0,168, 48, 55, 61, 10,135,105,190, + 73, 32,233, 62,128, 74, 34,180, 62, 71, 1, 0,188,160,242,189,212,150,126,190,128,129,220, 62,190,184,195,161, 58, 49, 1, 0, +192, 24,148, 61, 0, 70, 57,190, 43, 47,239, 62, 29,112,205,249,113, 61, 1, 0,110,177, 34,190, 72, 28, 87,190, 35, 78,221, 62, +225,135,136,220, 93, 26, 1, 0,192, 89, 60, 61,224,205,212,189,152,179,223, 62,207, 65, 80,109, 28, 10, 1, 0, 50,224, 19,190, + 82,249, 2,190, 88,250,208, 62,161,165,161, 89,135,242, 1, 0,240, 63,130,188,144,171,214,189, 10, 99,218, 62, 3,203, 79,116, + 33,249, 1, 0,100,210,171,189,180, 56,232,189,225, 32,213, 62,208, 22,220,125,148, 4, 1, 0, 56,136, 76,189,250, 36, 47,190, + 33, 87,242, 62,125,233,222, 32,163,121, 1, 0, 32,170, 62,188,116,102,246,189, 39,128,234, 62,246,206,237, 86, 34, 80, 1, 0, +248,241,190,189, 26,187, 5,190,172, 48,228, 62,252, 0, 59, 93,177, 87, 1, 0,176,129,244, 60,180,204,249,189,220, 60,238, 62, + 7, 23,120, 80,214, 96, 1, 0,102,140, 8,190, 26,246, 17,190,252,157,225, 62, 0,187,223, 68,239, 82, 1, 0,192,209, 65, 61, +244,192, 55,190,201,114,251, 62,141, 37, 29, 0, 92,122, 1, 0, 74,130, 18,190, 86, 83, 80,190,115,185,236, 62,162,185,132,242, + 15,106, 1, 0,176,229,209, 60,252, 69, 83,190,176,181,240, 62,245, 17,139,203, 92,115, 1, 0,100, 11,226,189, 24,211,100,190, + 71, 49,230, 62,143,218,144,196,254,106, 1, 0,240,135, 31,189,200,223,126,190,126, 92,238, 62,176,244,127,205, 16,117, 1, 0, +199,163,101, 62,177, 3,140,190, 9,186,146, 62, 74,111,222, 57,119, 25, 1, 0,202,234,101,190, 80,249,168,190,104, 10, 96, 62, +142,131, 40, 28,220,245, 1, 0,252,123,232, 61,190, 28, 79,190, 14, 99,204, 62,195, 78,253, 27,238, 96, 1, 0, 14, 52, 48,190, + 76,248,115,190, 24, 77,182, 62, 32,148,120, 4,190, 68, 1, 0,126,124, 8, 62,111, 5,134,190, 52,173,210, 62,121, 63, 41, 42, +215,102, 1, 0,150,207, 55,190,134, 52,154,190,200,124,186, 62, 29,157,178, 21, 81, 78, 1, 0,108, 34, 75, 62,246,240, 98,190, + 49,126,140, 62,227,113,125, 52,164, 25, 1, 0,246,164, 86,190, 43,204,139,190, 29,226, 89, 62,104,130, 78, 22,121,245, 1, 0, +224, 72,243, 60,162, 52, 70,191, 17, 27,230, 62,162,231,134, 95,162, 81, 1, 0,228,248,142, 61,232, 37, 67,191,192,173,232, 62, +158,186,175, 76,106, 75, 1, 0, 32, 29, 65,188,223,199, 69,191, 92, 94,226, 62,172, 23,105, 88,121, 89, 1, 0, 72, 12,211, 61, + 5,155, 54,191, 35,185,242, 62,126,157,156, 11,229, 80, 1, 0, 56, 90,118,189,246,222, 59,191, 68, 26,230, 62,211, 64, 50, 32, +144,105, 1, 0, 96, 77,192, 61,136,172, 36,191,230,210,243, 62,235,232,137,191, 35,108, 1, 0,172,235,141,189,117,240, 41,191, + 29, 52,231, 62,143, 5, 37,195,119,112, 1, 0,128,135,213, 60, 63, 89, 50,191,166, 71,209, 62,173,249,154,181,245,103, 1, 0, +116,134,212, 61,205,125, 40,191,250,184,216, 62,187,189,128,168,213, 65, 1, 0,136,101,115,189,185,193, 45,191, 27, 26,204, 62, +108, 63,216,184,108, 85, 1, 0,152,208,230, 61, 50, 51, 55,191, 78,255,210, 62, 85,154, 96, 17,202, 75, 1, 0,152,209, 78,189, + 35,119, 60,191,134, 96,198, 62,214, 67,189, 38,100,101, 1, 0, 88,161,156, 61,109,123, 65,191,176, 74,207, 62,143,191,187, 69, +213, 85, 1, 0,192,178,167,187,100, 29, 68,191, 75,251,200, 62,193, 17, 23, 80, 64, 98, 1, 0, 96,245, 20, 61, 44,138, 68,191, + 0,184,204, 62, 77,231, 84, 82,214, 94, 1, 0, 88,103,142, 61,100, 11, 86, 62,194,183,201, 62, 2, 1,188, 9,159,127, 1, 0, +110, 43,107,190,136,110, 47, 62,145,148,178, 62,151,215,131, 4, 93,121, 1, 0,232,214,183, 61,152, 10, 31, 62, 24,247,203, 62, +119,233,192, 10,137,125, 1, 0,174, 77,114,190, 72,214,233, 61,113,185,178, 62,190,237, 74, 11, 46,126, 1, 0,154,255, 73, 62, + 20,181,208, 62, 70,170,186, 62,153,254, 38, 35, 17,123, 1, 0,175,104,198,190,228,248,170, 62, 32,113,141, 62,251,212,231, 29, +199,116, 1, 0,242,164, 16, 62,176,192,202, 62, 11,246,189, 62,168, 1,230, 25, 86,125, 1, 0,211, 97,171,190,190, 9,172, 62, +192, 38,153, 62,187,211, 28, 20,102,118, 1, 0, 11,134,139, 62, 88,164,200, 62,200,178,201, 62, 96, 2, 32, 7,198,127, 1, 0, + 67,122,236,190,236, 64,153, 62,253,231,144, 62,233,214,165, 1, 53,121, 1, 0, 97, 45,210, 62, 92,116,182, 62, 35, 13,180, 62, +217, 17,244, 26,216,123, 1, 0, 42,148, 17,191, 68,138,110, 62, 87,168, 80, 62,236,196, 66, 17, 58,112, 1, 0,154, 4,224, 62, + 72,100,155, 62, 23,211,182, 62,132, 3, 21, 13, 70,127, 1, 0, 92, 26, 21,191, 44, 38, 51, 62,219,228, 79, 62,143,212, 41, 7, + 47,120, 1, 0, 36, 86,225, 62,152, 73, 97, 62,159,210,185, 62,149, 18,201, 10, 45,126, 1, 0, 80,246, 16,191, 0,209,190, 61, + 53,254, 87, 62,125,199, 81, 1,214,114, 1, 0, 63, 89,181, 62, 72,125, 7, 62,212, 69,203, 62, 31, 16, 27, 17,209,125, 1, 0, +181,100,243,190,192,105,227, 60,106, 30,139, 62, 86,200, 15, 8,249,114, 1, 0,130, 20,136, 62,136,189,184, 61, 93,186,209, 62, +102, 7, 17,251,175,127, 1, 0,171, 36,198,190, 0,253, 1, 60, 13, 63,159, 62, 56,213,190,244, 27,120, 1, 0, 58,197, 1, 62, +176, 90,245, 61, 10,140,213, 62,165,238, 25,255,207,126, 1, 0,153, 10,137,190,160,142,143, 61, 34, 12,183, 62,104,235,177,254, + 82,126, 1, 0, 4, 74,142, 61, 64, 73,142, 62,114,108,196, 62,132, 10, 34, 8, 77,127, 1, 0, 18, 39,121,190, 88, 52,116, 62, + 6, 60,172, 62, 70,207,170, 0, 90,118, 1, 0,220,243,183, 61,204,221,178, 62,228,180,192, 62,184, 0,124, 10,144,127, 1, 0, + 35, 3,142,190, 26, 44,155, 62,139, 79,164, 62,177,215, 80, 5, 93,121, 1, 0,124,152,235, 61, 28,169,171, 62, 47, 17,185, 62, + 82, 51, 58,230, 99,114, 1, 0,147,253,149,190,108, 85,145, 62, 35,132,153, 62,126,181, 94,214, 97, 95, 1, 0,144, 50,177, 61, + 70,155,141, 62, 3, 24,187, 62, 20, 83,205,252, 81, 97, 1, 0,105,198,129,190,204, 85,111, 62, 32,205,160, 62,151,151, 44,229, +255, 68, 1, 0, 44,210, 17, 62,132, 63, 7, 62,172, 13,203, 62, 32, 31,125, 90, 0, 85, 1, 0, 35,241,142,190,176,173,161, 61, + 78,115,170, 62,132,180, 13, 77,230, 68, 1, 0, 2, 52,136, 62,208, 96,222, 61,164, 15,201, 62,123,250,243, 93,192, 86, 1, 0, + 31, 5,198,190,160,139,215, 60, 85,148,150, 62, 21,213, 60, 89, 26, 81, 1, 0, 27,220,174, 62,144,150, 17, 62,227, 34,194, 62, +246,220, 99, 82,120, 91, 1, 0,205,244,235,190,112, 36, 40, 61,240, 21,132, 62,214,241, 5, 85,159, 94, 1, 0,246, 75,211, 62, + 80,171,106, 62, 64, 24,179, 62, 51,201,188, 41,224,107, 1, 0, 96, 14, 10,191,232,158,223, 61,127,243, 82, 62, 55, 9,205, 49, +140,117, 1, 0,124,158,211, 62,176, 29,149, 62,220, 97,174, 62,106,193,145,251,143,111, 1, 0, 88, 96, 13,191, 56,158, 45, 62, + 64,108, 71, 62,142, 26,204, 6, 6,125, 1, 0, 36, 33,198, 62, 60,178,172, 62, 1, 49,172, 62, 53,223,211,189,137,104, 1, 0, + 60,173, 9,191, 64, 11, 98, 62,193, 89, 73, 62, 2, 16,250,195,232,111, 1, 0, 67, 40,138, 62,222, 41,195, 62,130, 95,191, 62, +165,234,227,169, 65, 92, 1, 0,119,225,230,190, 26,167,148, 62, 10,162,135, 62,213, 13, 82,174,145, 97, 1, 0,178,227, 26, 62, +148, 57,192, 62,183,197,188, 62,250, 23, 94,234,218,123, 1, 0,251, 56,173,190,244,161,160, 62, 71,233,150, 62, 10,203,172,224, + 59,112, 1, 0,210, 71, 77, 62,170,189,197, 62, 84,243,184, 62, 29,244, 20,210,225,118, 1, 0,147,196,196,190,110, 1,160, 62, + 45,186,139, 62,148,243, 3,210,204,118, 1, 0,156,240,215, 61,184,156, 43, 62,187,120,193, 62,134, 68,166, 60,126, 89, 1, 0, +218, 26,126,190, 64,245,251, 61,156, 32,166, 62,215,151,226, 38,104, 63, 1, 0,224, 47,192, 61,104,125, 91, 62, 33,223,188, 62, + 92, 88,185, 25,245, 88, 1, 0, 86, 14,124,190,152,156, 47, 62, 62,148,162, 62, 28,142, 60, 0,104, 58, 1, 0, 96,228,156, 60, + 4, 13,200, 62,174,173, 78, 62,195,180, 42,101,236,233, 1, 0, 22, 90, 47,190,212,195,187, 62, 2, 59, 49, 62,129, 51, 35,117, + 17,253, 1, 0, 96,141,153, 61,140,248, 19, 63, 89,231, 66, 62,210,204, 28, 43,229,146, 1, 0,191,175,135,190, 92, 0, 9, 63, +101, 81, 14, 62,163, 68, 54, 58,254,164, 1, 0, 64,136, 75, 62,120, 93, 28, 63, 78,148, 61, 62,237, 21, 48, 70, 61,151, 1, 0, +103,164,197,190, 94,127, 9, 63, 1, 68,198, 61, 37,249,143, 66,227,146, 1, 0,115,210,176, 62,116,162, 1, 63,213,190, 66, 62, +196, 32,188,114,176,209, 1, 0, 23,226,254,190, 56,220,204, 62, 16,171,128, 61, 78,211,248,104,252,197, 1, 0, 66,144, 8, 63, + 68,208,220, 62,174,205, 52, 62,103, 37,132,115,131,215, 1, 0,138, 83, 38,191, 56,119,144, 62, 64, 77, 12,187, 32,205,100,104, + 45,202, 1, 0, 98,231, 36, 63,148,108,204, 62, 91,225, 47, 62,180, 91,110, 81, 93,219, 1, 0, 86, 53, 62,191, 72,211,101, 62, +100,171, 26,189, 7,162, 7, 58, 81,191, 1, 0, 78, 91, 40, 63,116,225, 50, 62, 59,174, 4, 62, 27,125,116,229, 31, 5, 1, 0, +166, 79, 48,191,128,240,163, 59, 44, 29,151,189, 43,145,184,199,125,225, 1, 0,138, 70, 4, 63, 96,254,147, 60,146,151, 40, 62, +198, 84,109,161,214, 15, 1, 0,164,204, 7,191,124, 74,233,189,128, 36,212, 59,227,195, 42,143,245,249, 1, 0,250,136,191, 62, +144,124,152,189,129,235, 80, 62,163, 68,238,148,100, 14, 1, 0, 95,100,198,190,192,135, 46,190, 89, 66,182, 61, 71,214, 5,135, +185,253, 1, 0,252,234,137,189,224,210, 55, 63,110,252, 28,190,153,233, 99,114,225, 52, 1, 0,224, 52,171,188,168,199, 62, 63, + 33,137,247,190,218,242, 6,126,233,237, 1, 0,172,253, 45, 62, 80,191,183,190,110, 82, 83,191, 10, 24, 13,155, 20,181, 1, 0, +140,245,136, 61,166, 14,245,190,156,170, 49,189,253, 15, 2,129, 28, 0, 1, 0,108, 74,147, 61, 63, 94,100,191,202, 81,137, 62, +235, 21, 71,139, 69,208, 1, 0, 56,176,151, 61, 15,244, 65,191,177, 55, 17, 62, 5, 24,183,200, 23,143, 1, 0, 24, 64,105, 61, +138,126, 14,191,150, 17,179, 61, 35, 24, 83,198, 81,144, 1, 0,240,226, 97, 61,178, 70,249,190,212,128, 40, 61,198, 22,193,143, +222,198, 1, 0,136, 61, 68, 63,132,199, 79, 62,190, 8, 23,190,125,123,142,247,150, 32, 1, 0, 2, 62, 55,191, 0,196,131, 60, + 25, 39,190,190, 73,134,167,216,141,251, 1, 0,142,223, 71, 63,116,227,135, 62,246,193,124,190,230,125, 53, 10,172, 20, 1, 0, + 74, 23, 55,191, 32,109,157, 61,241, 16,242,190,254,130,151,234,199,238, 1, 0,222,167, 68, 63,176,118, 33, 62, 40,142, 22,191, +123, 95, 14,248, 33,171, 1, 0, 22, 3, 20,191, 64,179, 68,188, 92,157, 74,191, 63,194, 61,228, 98,147, 1, 0,144, 41, 5, 63, +220, 75,116, 62, 66, 77, 98,191,228, 72,162, 15,245,151, 1, 0,203,125,144,190,116,190, 12, 62,222,169,128,191, 1,215, 72, 1, +194,134, 1, 0,240,219, 47, 63, 0, 50, 88,189, 76, 32,222,189, 16, 97,100,181, 89, 37, 1, 0,176,102, 23,191,212, 7, 91,190, + 59,100,154,190,106,173,192,158, 54, 10, 1, 0, 30, 26, 27, 63, 92,163, 42,190, 69,253,162,190,203, 47,181,138,120, 18, 1, 0, +151,251,218,190,138, 3,152,190, 65,235,242,190,221,234, 5,130, 14, 8, 1, 0, 88,233, 44, 63,168, 98,192,189, 18, 28, 15,191, +168, 72, 56,172, 25,192, 1, 0, 63, 36,225,190,240, 28,112,190,196, 58, 58,191,173,227,125,159,216,176, 1, 0, 29,225,224, 62, +104,174,211,189, 38,153, 79,191, 65, 75, 41,206, 65,165, 1, 0,194, 14, 21,190,148, 79, 53,190,186, 53,102,191,215,224,192,192, + 46,149, 1, 0,191,155,106, 62,240,154,168,190, 63,159, 36, 62,136,126,193, 9, 94,239, 1, 0,190, 43, 55,190,156,238,194,190, +242, 9,203, 61, 94,141, 93,235,241,202, 1, 0,174,212, 85, 62, 21,102,209,190,128, 77, 12, 61, 56,106, 23,187, 67,237, 1, 0, +244,238,212,189, 41,149,229,190,144,215, 84,188,222,179, 27,164,184,209, 1, 0,182,149,159, 62,171,164, 35,191, 68,196, 76, 62, +177, 92, 81,253,198,167, 1, 0, 98, 23, 68,190,207,224, 51,191,125,225,253, 61,135,196, 36,234,203,144, 1, 0,182, 28,132, 62, +251,238,234,190, 6, 0, 47, 62, 4,111, 83,255, 77,192, 1, 0, 22,104, 53,190,251,129, 3,191,164, 97,215, 61,243,171,190,230, +214,162, 1, 0, 48,241,184, 62,193, 76, 79,191,163, 33,126, 62,157, 90, 61,193,241,190, 1, 0,166, 1, 87,190,140,186, 97,191, +205,201, 37, 62, 75,206,142,175,191,169, 1, 0,228,111, 65, 62, 58,199, 50,191, 64,237, 49, 62, 50, 39, 80,217,118,140, 1, 0, +144,235,100,189, 37,173, 58,191,185, 16, 12, 62,183, 6, 56,213,142,135, 1, 0, 20, 8, 33, 62,171,184, 2,191, 78, 79, 8, 62, +211, 64,135,212,143,154, 1, 0, 16, 35,119,189,237,189, 9,191,105, 79,205, 61, 15,236,216,201,194,141, 1, 0,178,150, 92, 62, + 14,147, 89,191, 49,167,135, 62,157, 35, 64,149, 5,195, 1, 0,176,182,143,189,248,201, 98,191,119, 34, 99, 62,173, 10, 28,146, + 65,191, 1, 0,242,213, 82, 62, 65,149,136,190, 26,206, 44, 62, 32,125,124,242, 80, 23, 1, 0,106, 23, 51,190,165, 39,161,190, +130,209,227, 61,179,136,174,211,102,242, 1, 0,214, 19, 65, 62, 22, 25, 92,190,156, 53, 70, 62,138,117, 50,250, 85, 50, 1, 0, + 98,236, 54,190, 64,190,133,190,231,106, 13, 62,253,133, 1,220, 38, 14, 1, 0, 8,127, 48, 62,100, 17, 40,190, 86,177, 88, 62, +148,105,124,202,179, 48, 1, 0, 78,148, 57,190,124,179, 85,190, 25, 1, 34, 62, 29,157,183,176,209, 17, 1, 0,215,176,125, 62, +186,108,203,190, 60, 10, 61,189,145, 84,117,163,209, 25, 1, 0,236,158,244,189,108, 30,227,190,132, 26,208,189,175,192,209,144, +123, 3, 1, 0, 2,250,193, 62, 26, 82,192,190, 41,253,213,190,132, 80,129,156, 58, 0, 1, 0,198, 59, 13,190, 7,171,225,190, + 39,244,253,190,144,205, 0,140,115,236, 1, 0,219, 19,228, 62,213,184,134,190,242, 21, 44,191, 32, 85,150,171, 43,211, 1, 0, + 98,150, 28,190,177, 85,173,190, 36, 57, 67,191,190,210, 39,155,121,191, 1, 0, 51,109,219, 62,168, 67, 39, 63,152,161, 43,191, + 37, 52,215, 99, 55,195, 1, 0, 49,109,184,190,160,208, 13, 63,116, 33, 74,191, 48,201, 92, 86, 15,179, 1, 0, 80, 24,193, 62, + 72,147, 63, 63,111,128,209,190,127, 40, 60,121, 71,249, 1, 0, 19,194,210,190, 68, 32, 38, 63, 20, 64, 7,191, 15,191,242,107, + 90,233, 1, 0,107,171,173, 62,194, 72, 56, 63,238,114, 9,190, 6, 38,211,108,160, 55, 1, 0,255, 46,230,190,188,213, 30, 63, + 48,185,129,190, 57,178, 58, 94, 34, 38, 1, 0,220, 48,177, 62,200,183,235, 62,159, 6,171, 61, 48, 30,188,117, 32, 40, 1, 0, + 11,160,233,190, 20,241,183, 62, 92, 90, 26,189,211,187, 86,105, 68, 25, 1, 0, 26,241, 25, 63,148, 43,192, 62,192,184, 94, 61, +224, 84,124, 93,242, 20, 1, 0, 64,214, 41,191, 36, 29, 93, 62,170,239, 11,190,171,148, 67, 69,235,247, 1, 0,232, 14, 6, 63, +166, 42,204, 62, 32,234, 69,188,162, 40,243,112,108, 44, 1, 0, 80,241, 19,191,126, 21,133, 62,234,190, 54,190, 16,178, 2, 98, +131, 26, 1, 0,212,181, 10, 63, 38,127, 22, 63,126, 69,121,190, 26, 66, 42,102,176, 39, 1, 0,172,197, 18,191,128, 8,229, 62, + 33,224,210,190,125,158,139, 81,249, 14, 1, 0,168, 9, 46, 63, 80,193,251, 62, 94,255, 16,190,183, 78, 44, 86,138, 52, 1, 0, + 16, 19, 53,191,106, 62,162, 62,177,197,179,190,245,146,130, 62, 46, 24, 1, 0,176,236, 53, 63,102, 5, 2, 63,153,216,183,190, +111,101, 12, 78,148, 1, 1, 0, 4, 48, 45,191,226,135,170, 62, 90,143, 17,191,186,142,252, 50, 38,225, 1, 0, 18, 17, 19, 63, +176,163, 24, 63,137,220,238,190, 72, 77,135,101,224,245, 1, 0,110,106, 10,191,144, 81,233, 62,244,140, 34,191,201,162, 10, 80, + 32,220, 1, 0, 56, 14, 30, 63,206,169, 0, 63,184, 45, 44,191,156, 85,152, 67, 9,189, 1, 0,127,218,254,190,208, 93,185, 62, +104, 76, 87,191,215,179, 52, 47,154,164, 1, 0,136,203, 64, 63,100, 32,209, 62, 76,166, 14,191,219,113, 88, 45, 22,219, 1, 0, + 50, 81, 34,191,244, 58,111, 62, 90, 73, 68,191, 92,150,174, 17,238,185, 1, 0, 16, 6, 38, 63,152,232, 51, 62, 20, 4, 63,191, +251, 90, 41,248, 80,166, 1, 0, 75, 7,218,190,224, 3, 37, 61,236,142,104,191,201,199,156,229, 21,144, 1, 0, 36,206, 13, 63, + 56,233,202,189, 62,124, 47,191,253, 88,167,189, 70,192, 1, 0, 41, 24,148,190,238, 69, 82,190,146, 22, 80,191, 71,208,108,172, +160,171, 1, 0,244,223, 68, 63,152,151,125, 62,125,204,198,190,230,101,116, 58,207, 50, 1, 0,138,174, 40,191,160,155,138, 61, + 36,157, 26,191,187,132, 19, 30,205, 16, 1, 0, 26, 59,205, 62, 68,247, 63,190,172,205,134,189,192, 78, 25,167,184, 47, 1, 0, + 39,216,156,190,186,157,141,190, 82,199, 48,190,209,190,245,148,250, 25, 1, 0,190,199,243, 62,138,253,128,190,137,142,189,190, + 50, 86,222,161,143, 9, 1, 0, 15, 47,139,190,160, 65,177,190,143,102,247,190, 74,196,122,143,134,243, 1, 0,118,246, 83, 63, +116,126,163, 62, 89,186,213,190,148,197,170, 99, 26, 55, 1, 0,102,237, 56,191,168,206,253, 61,156,207, 38,191,219, 13,198,108, + 5, 66, 1, 0, 26, 5, 66, 63,158, 49, 31,190,210,109,132,190,145,242, 30,188,173,107, 1, 0,206,165, 22,191,188,121,166,190, + 37,140,236,190,152,253,130,189, 87,109, 1, 0,139,252,129, 63, 96, 11,243,189, 85,110,207,190,103, 60, 60,173,181, 76, 1, 0, +196, 16, 75,191, 19,122,177,190,102,167, 45,191,224,197, 76,158,206, 58, 1, 0,213, 31,157, 63,128,230,251, 60, 97,193,247,190, + 78, 79, 18,214, 76, 91, 1, 0,167, 91,128,191, 46, 45,128,190, 16, 30, 82,191, 59,166,194,192,194, 65, 1, 0,191,211,161, 63, +254,157,138, 62,236,172, 1,191,113, 84,249, 45,125, 84, 1, 0,104, 82,139,191, 96, 55,211,188,216,165, 92,191, 31,142,250, 20, +136, 54, 1, 0, 99,170,146, 63,164,157,215, 62,126,154, 12,191,186, 26,140,120,181, 33, 1, 0, 79, 95,128,191, 4,236, 25, 62, + 40,176, 95,191, 53,192, 36,109, 8, 20, 1, 0,152,234,114, 63,250, 26,197, 62,127,161,244,190,171,236, 29,119,171, 42, 1, 0, +186, 40, 85,191, 24, 74, 36, 62,180, 51, 63,191,149,232,153,118, 13, 42, 1, 0,144,178,113, 63, 28, 93,170, 62,137, 30,230,190, + 40, 51,202, 15, 66,116, 1, 0,128,229, 82,191, 72, 31,225, 61,168,107, 55,191, 2,171,162,254,177, 95, 1, 0, 29,165,141, 63, +120,183,183, 62, 26,164, 4,191, 4, 21, 3, 11,199,125, 1, 0,152,229,117,191, 24, 79,201, 61, 24,146, 84,191, 76,197,247, 0, +188,113, 1, 0, 93, 79,152, 63, 40,204,113, 62,231,226,255,190, 21,221, 86, 5, 6,123, 1, 0,220,176,129,191,144, 33, 42,189, +152, 33, 85,191, 63,251, 36, 9,148,127, 1, 0, 47,150,148, 63, 64,101, 62, 61, 95,218,243,190, 31,229, 9, 52,207,113, 1, 0, + 60,117,114,191, 16,114, 96,190,248,110, 75,191, 39,235,204, 52,184,114, 1, 0, 54,242,127, 63,200, 66,126,189, 69, 59,202,190, +208, 40,167, 57,189,106, 1, 0, 98,156, 75,191,241,158,147,190, 66,135, 42,191, 50,173, 18, 42, 16, 88, 1, 0,114,235, 76, 63, +176,206,182,189, 80,114,137,190,235, 19, 5, 66,212,107, 1, 0, 80, 30, 36,191, 53,185,138,190, 89,237,248,190, 47,190, 55, 55, +225, 94, 1, 0,252, 99, 91, 63,104,100,145, 62, 55, 54,201,190,164, 39,237, 15,167,120, 1, 0,234,108, 63,191,224, 91,167, 61, + 4,168, 34,191, 91,180,101, 1, 61,103, 1, 0,220,124,100, 63,168, 81,107, 62, 53,180,226,190,108, 83, 44,206, 79, 83, 1, 0, +210,197, 64,191,224,150,183, 60,230,250, 48,191,168,166,102,184, 55, 57, 1, 0, 12,254, 90, 63,240,103, 87,189,153,220,171,190, + 77, 9,227,121,242, 37, 1, 0,140,106, 46,191, 70, 46,124,190, 44, 90, 17,191,199,206,130,114, 27, 29, 1, 0,179,148,129, 63, + 48,171, 16,189,165, 76,232,190,182,217,223,121,251, 7, 1, 0,118,224, 75,191,167,204,134,190,130, 22, 58,191,138, 3, 37,127, + 77, 14, 1, 0, 2,137,146, 63,224,210, 86, 61,192,242, 3,191, 88,151,253, 69,245,232, 1, 0,210, 29,108,191,194, 18, 85,190, +188,224, 83,191,147, 86, 23, 94,215, 5, 1, 0,157, 0,150, 63,128, 69, 70, 62,212, 48, 8,191, 96,130,235,231,141, 4, 1, 0, + 42, 18,122,191,132, 19,158,189,136, 70, 91,191,201,120,249, 6,197, 41, 1, 0,243,169,141, 63, 82,230,144, 62, 98,163, 12,191, +245,234, 70,168,203, 90, 1, 0, 98,229,110,191, 32, 63,212, 60, 22,132, 91,191, 92, 14,189,172, 37, 96, 1, 0, 6,170,119, 63, +212,201,134, 62,213,127,255,190,206, 67,151,191, 98, 87, 1, 0, 74,105, 80,191, 80,159, 30, 61,224,162, 68,191,119,183,231,173, + 48, 66, 1, 0,198, 68, 75, 63,144, 92, 92, 62,123,197,197,190,128, 83,128,246,138, 96, 1, 0,130,187, 44,191,224,118,246, 60, +136,173, 27,191,244,152,253,222, 93, 68, 1, 0, 70,131, 78, 63, 96,104,213, 61, 35, 64,217,190,118, 94, 6,201,156, 66, 1, 0, +198, 1, 38,191,116, 48,162,189, 62,228, 36,191,140,162, 87,177, 58, 38, 1, 0, 64,220, 62, 63, 64, 57,226, 60, 93,176,216,190, +142, 96,211, 27, 71, 79, 1, 0, 44,216, 18,191, 24,248, 13,190, 40, 90, 31,191,212,136,163, 0,178, 46, 1, 0, 56,246, 76, 63, + 0,171,226, 60,109,230,211,190,186, 54,106,107, 0, 43, 1, 0, 70,152, 32,191,112,244, 27,190, 28, 42, 33,191,199,166, 70, 89, + 66, 21, 1, 0,120,195, 83, 63,160,192,253,188,169, 21,205,190,237,101,211, 14,252, 75, 1, 0,214, 60, 36,191,200, 69, 93,190, +148, 85, 31,191,249,135,219,242,117, 42, 1, 0,162,128, 77, 63,128, 91,124,189, 45,220,204,190, 53, 55, 63, 91,197, 70, 1, 0, +146,146, 28,191, 88,159,117,190, 94, 30, 29,191, 46,162,119, 72, 66, 48, 1, 0,182, 91, 50, 63, 96,147,254,188,156,172,115,190, + 89,117,182,205, 29, 9, 1, 0,170,107, 17,191,114, 12, 67,190, 61,165,219,190,244,156,112,178,110,232, 1, 0,108,247, 52, 63, + 12, 46,134,189, 67,154,165,190,117, 78,234, 34,233, 94, 1, 0,174, 84, 11,191,180,143,100,190,250, 45, 3,191, 80,147, 84, 11, +165, 66, 1, 0,140, 38, 52, 63,128, 34, 87,188,241, 45,177,190,128,110, 31,255,150, 64, 1, 0,136, 37, 12,191,224,234, 46,190, +210,247, 8,191, 42,135,247,225,165, 29, 1, 0, 52,193, 66, 63, 32,123, 10, 62, 61,134,194,190,176,109, 29,221,250, 55, 1, 0, +134, 91, 32,191,208, 42, 34,189, 42,230, 22,191,172,146,131,193,229, 22, 1, 0, 14,211, 88, 63,240,145, 48, 62,217, 88,215,190, + 77, 84,221,207,107, 83, 1, 0,206, 16, 52,191,192, 28,188,188,244,158, 39,191,103,165,210,185, 0, 57, 1, 0,232, 14, 91, 63, +152, 86, 34, 62,249,252,238,190,107, 76, 69,223, 82, 97, 1, 0,250,212, 49,191,192,251, 22,189,250,112, 51,191,235,164, 41,202, + 6, 72, 1, 0, 74, 68, 79, 63,200,162,138,189, 85,159,225,190, 92, 64,206, 66, 48, 88, 1, 0,240,206, 26,191,220,217,123,190, +242,127, 39,191,147,154,233, 45, 38, 63, 1, 0,190, 68, 87, 63,224, 71, 20,189, 53, 82,225,190, 60, 24, 44, 68,149,105, 1, 0, +208, 54, 36,191,248, 96,100,190,130,250, 41,191, 83,186, 87, 56,101, 91, 1, 0,108,164, 80, 63,128, 35,128, 60, 13,142,231,190, +218, 33, 67, 69, 44,102, 1, 0, 82,101, 32,191,162, 6, 42,190,138,132, 43,191, 38,178, 47, 55, 76, 85, 1, 0,136, 93, 66, 63, + 64,106,183, 60,255,236,236,190, 49, 83,157, 54,125, 80, 1, 0, 40,210, 18,191, 70, 19, 21,190, 22,255, 41,191, 88,142,206, 29, +194, 50, 1, 0,142, 4, 82, 63,176,180,202, 61,197,124,237,190, 70, 62,175,224, 89,107, 1, 0,188,251, 37,191,184,102,176,189, + 32,137, 47,191,192,174,152,206,171, 85, 1, 0, 18,142,125, 63,152, 34,122, 62,206,192, 10,191,252, 47,104,236, 8,117, 1, 0, +202,123, 81,191,160,160,133, 60, 10,177, 80,191, 80,182, 18,221,167, 98, 1, 0, 86,118,144, 63,178,178,135, 62, 96,233, 21,191, +194,215, 94,193, 29,104, 1, 0, 42, 67,112,191,128,190,147, 59, 80,215,101,191, 42, 22, 59,201,138,113, 1, 0, 87,149,153, 63, +240,181, 59, 62, 18,126, 17,191,216,149,102,244,143, 70, 1, 0,126, 90,125,191,152,186,189,189,152, 39,102,191,139, 80,237, 11, +194, 98, 1, 0, 24,248,149, 63, 48,187, 48, 61, 0,133, 11,191,125,167,102, 61, 31, 69, 1, 0,106,177,111,191,136,220, 99,190, +212, 6, 93,191,234, 46,119, 78,148, 89, 1, 0,252,122,131, 63,160, 57, 42,189, 17,255,255,190,115,243,214,106, 92, 69, 1, 0, + 36,143, 75,191, 27,223,138,190, 98,118, 70,191,133,221, 19,104, 12, 66, 1, 0, 12,224, 92, 63, 48,157, 88,189,167,170,196,190, + 43,231,111,124,202, 16, 1, 0,140,136, 44,191,124,123,124,190, 50,193, 29,191,232,243, 10,126,183, 18, 1, 0, 76,163,104, 63, +248,255, 86, 62,179, 60,249,190, 38, 71,235,226, 88,102, 1, 0,176, 26, 64,191, 0,224, 95, 58,196,197, 60,191,114,167,202,206, + 57, 78, 1, 0, 8, 41, 94, 63,112,112, 71, 61,245, 34,233,190, 13, 4, 35, 22, 0,126, 1, 0,212,186, 46,191,110, 57, 22,190, +248,131, 48,191, 60,210,219, 15,122,118, 1, 0,168,243,105, 63,128,192, 68, 60, 45,243,229,190,133, 27,215, 37, 35,119, 1, 0, +198,211, 55,191, 96, 81, 70,190,198, 19, 50,191,179,186,163, 25,131,104, 1, 0,102,166,119, 63, 56,197,141, 61,161, 61,244,190, +126, 35,140, 19,105,121, 1, 0, 38,251, 69,191, 80,197, 25,190,248,109, 61,191, 25,183,226, 5, 10,105, 1, 0, 32, 78,109, 63, + 64,186,220, 61,231,112,243,190, 42, 21,232, 22, 35,124, 1, 0, 30,235, 62,191,116, 8,211,189,134,102, 58,191,192,194,132, 12, +176,111, 1, 0,240,247,120, 63,216, 28, 41, 62, 65,204,254,190,182, 18,118, 34,215,121, 1, 0, 34,160, 75,191,192, 54,108,189, +120,194, 67,191,226,194,103, 24,200,109, 1, 0,120,130,129, 63, 24,172, 2, 62,255, 34,252,190,107, 24, 86, 13,239,124, 1, 0, +110,251, 82,191, 24,138,212,189,246, 14, 69,191,213,193,108, 2,219,111, 1, 0,107,124,135, 63, 24,172, 28, 62,155,169,253,190, +232, 35, 12, 22,220,120, 1, 0, 92,102, 95,191, 96, 28,185,189,148,128, 73,191, 69,182, 58, 8, 77,104, 1, 0, 65, 44,132, 63, +124,194, 81, 62,174,242, 1,191, 83, 22,171, 59, 3,111, 1, 0,232,148, 91,191,160,207, 8,189,156, 10, 75,191,147,188, 91, 48, +116, 97, 1, 0, 78, 67,122, 63, 22, 70,168, 62,210,236, 30,191,174,211, 37, 50,230,146, 1, 0, 10,208, 77,191,136, 64,213, 61, +210,207, 99,191,148, 60, 93, 63,190,162, 1, 0,136, 50,151, 63,172,198,190, 62, 84, 78, 38,191,180, 45,113, 69,174,158, 1, 0, +214,164,126,191,208,118,201, 61, 62,113,122,191, 39,225,203, 59, 30,147, 1, 0, 40, 77,165, 63,176,182,119, 62, 26,148, 17,191, +211,122, 94, 18, 6,225, 1, 0, 70, 84,139,191,144,187,109,189, 82,154,109,191,226,146, 35,245,253,189, 1, 0, 99,132,162, 63, + 96, 5,172, 60,152, 81, 17,191,138, 96,140,192,231,200, 1, 0,157,237,129,191,229,173,136,190,124,169,105,191, 20,198, 20,173, +146,177, 1, 0, 0,230,132, 63,100,100, 1,190,210,161, 12,191,188, 18, 44,154,192,180, 1, 0,210, 61, 69,191,110,105,181,190, + 4,146, 82,191, 65, 29,128,155, 87,182, 1, 0,174,203, 76, 63,208,127, 42,190, 25,131,222,190,228, 11,168,138, 73,206, 1, 0, +198,213, 18,191, 37,226,173,190,252, 93, 36,191,237, 31, 47,141, 79,209, 1, 0,246, 28, 83, 63,240,109,141, 62,178,234, 11,191, +207,176, 48, 52, 13,170, 1, 0,218,217, 43,191, 16,151,179, 61,172,194, 69,191,160, 85,245, 72,242,194, 1, 0, 68, 65, 84, 65, +104, 1, 0, 0,120,237, 71, 27, 1, 0, 0, 0, 93, 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, 56,158,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7754,6 +11016,1999 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 56,158,108, 3, 1, 0, 0, 0, 49, 0, 0, 0,237, 3, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 35, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 47, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 45, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, + 4, 0, 0, 0, 42, 0, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 35, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 43, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, + 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, + 12, 0, 0, 0, 14, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 35, 0, 13, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 15, 0, 0, 0, 0, 0, 35, 0, + 7, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 14, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 35, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, + 22, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 35, 0, 22, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, 25, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 25, 0, 0, 0, 0, 0, 35, 0, + 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 26, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 35, 0, 29, 0, 0, 0, 27, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, + 33, 0, 0, 0, 31, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 27, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 35, 0, 34, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 34, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, + 35, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 25, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 36, 0, 0, 0, 0, 0, 35, 0, + 36, 0, 0, 0, 38, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 38, 0, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 39, 0, 0, 0, + 0, 0, 35, 0, 35, 0, 0, 0, 37, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 39, 0, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 40, 0, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 41, 0, 0, 0, 0, 0, 35, 0, + 31, 0, 0, 0, 41, 0, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 35, 0, 39, 0, 0, 0, 45, 0, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 43, 0, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, + 46, 0, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 47, 0, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 50, 0, 0, 0, 0, 0, 35, 0, + 48, 0, 0, 0, 50, 0, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 35, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0, 51, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, 50, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 53, 0, 0, 0, 0, 0, 35, 0, + 53, 0, 0, 0, 51, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 54, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 35, 0, 25, 0, 0, 0, 55, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0, 55, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0, 56, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 57, 0, 0, 0, 0, 0, 35, 0, + 55, 0, 0, 0, 57, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 58, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 35, 0, 13, 0, 0, 0, 59, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0, 59, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 63, 0, 0, 0, 0, 0, 35, 0, + 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 64, 0, 0, 0, + 0, 0, 35, 0, 1, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, + 48, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 35, 0, 60, 0, 0, 0, 62, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0, 63, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0, + 60, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, + 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 35, 0, 52, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0, + 60, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, +173, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0, 90, 0, 0, 0, + 0, 0, 35, 0,174, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, + 90, 0, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, + 86, 0, 0, 0, 88, 0, 0, 0, 0, 0, 35, 0,172, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,172, 0, 0, 0, + 0, 0, 35, 0, 87, 0, 0, 0, 89, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0,169, 0, 0, 0, +171, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 86, 0, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, + 85, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0, 87, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0,167, 0, 0, 0, + 0, 0, 35, 0,167, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, 84, 0, 0, 0, 0, 0, 35, 0,168, 0, 0, 0, +170, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 85, 0, 0, 0, 0, 0, 35, 0, + 80, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 35, 0,166, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, + 83, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 91, 0, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,145, 0, 0, 0, 0, 0, 35, 0, +145, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0,146, 0, 0, 0, + 0, 0, 35, 0, 79, 0, 0, 0, 92, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, +164, 0, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 93, 0, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0,147, 0, 0, 0, 0, 0, 35, 0, +145, 0, 0, 0,147, 0, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0,148, 0, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 94, 0, 0, 0, + 0, 0, 35, 0,146, 0, 0, 0,148, 0, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 95, 0, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, +149, 0, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,149, 0, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0,150, 0, 0, 0, 0, 0, 35, 0, + 94, 0, 0, 0, 96, 0, 0, 0, 0, 0, 35, 0,148, 0, 0, 0,150, 0, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 35, 0, 97, 0, 0, 0,151, 0, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,151, 0, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0, +152, 0, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, 98, 0, 0, 0, 0, 0, 35, 0,150, 0, 0, 0,152, 0, 0, 0, 0, 0, 35, 0, + 97, 0, 0, 0, 99, 0, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,153, 0, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,153, 0, 0, 0, + 0, 0, 35, 0,100, 0, 0, 0,154, 0, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,100, 0, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, +154, 0, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,101, 0, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,155, 0, 0, 0, 0, 0, 35, 0, +153, 0, 0, 0,155, 0, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,156, 0, 0, 0, 0, 0, 35, 0,100, 0, 0, 0,102, 0, 0, 0, + 0, 0, 35, 0,154, 0, 0, 0,156, 0, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,103, 0, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, +157, 0, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,157, 0, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,158, 0, 0, 0, 0, 0, 35, 0, +102, 0, 0, 0,104, 0, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,158, 0, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,105, 0, 0, 0, + 0, 0, 35, 0,105, 0, 0, 0,159, 0, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,159, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, +160, 0, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,106, 0, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,160, 0, 0, 0, 0, 0, 35, 0, +105, 0, 0, 0,107, 0, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,161, 0, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,161, 0, 0, 0, + 0, 0, 35, 0,108, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,108, 0, 0, 0, 0, 0, 35, 0,160, 0, 0, 0, +162, 0, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 66, 0, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 35, 0, + 67, 0, 0, 0,161, 0, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, 66, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,162, 0, 0, 0, + 0, 0, 35, 0,109, 0, 0, 0,127, 0, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,159, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, +161, 0, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,160, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,128, 0, 0, 0, 0, 0, 35, 0, +110, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,178, 0, 0, 0, + 0, 0, 35, 0,158, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, +155, 0, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,156, 0, 0, 0, 0, 0, 35, 0, +126, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,153, 0, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,125, 0, 0, 0, + 0, 0, 35, 0,124, 0, 0, 0,154, 0, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,126, 0, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, +151, 0, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,123, 0, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,152, 0, 0, 0, 0, 0, 35, 0, +122, 0, 0, 0,124, 0, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,149, 0, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,121, 0, 0, 0, + 0, 0, 35, 0,120, 0, 0, 0,150, 0, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,122, 0, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, +147, 0, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,119, 0, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,148, 0, 0, 0, 0, 0, 35, 0, +118, 0, 0, 0,120, 0, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,145, 0, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,117, 0, 0, 0, + 0, 0, 35, 0,116, 0, 0, 0,146, 0, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,118, 0, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, +163, 0, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,115, 0, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, +114, 0, 0, 0,116, 0, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,180, 0, 0, 0, + 0, 0, 35, 0,163, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0,114, 0, 0, 0, +181, 0, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 67, 0, 0, 0, 0, 0, 35, 0, +109, 0, 0, 0,111, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,112, 0, 0, 0, 0, 0, 35, 0,112, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 35, 0, 67, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, +182, 0, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0, +180, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,177, 0, 0, 0, 0, 0, 33, 0,181, 0, 0, 0,183, 0, 0, 0, + 0, 0, 35, 0,134, 0, 0, 0,136, 0, 0, 0, 0, 0, 35, 0,136, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, +173, 0, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,136, 0, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, +132, 0, 0, 0,134, 0, 0, 0, 0, 0, 35, 0,132, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0,133, 0, 0, 0,135, 0, 0, 0, + 0, 0, 35, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,132, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, +169, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,133, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, +165, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,184, 0, 0, 0, + 0, 0, 35, 0,185, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0,168, 0, 0, 0, +185, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, +143, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0,188, 0, 0, 0,189, 0, 0, 0, 0, 0, 33, 0,186, 0, 0, 0,188, 0, 0, 0, + 0, 0, 35, 0,143, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, +187, 0, 0, 0, 0, 0, 35, 0,187, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0,188, 0, 0, 0, 0, 0, 33, 0, + 68, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0,129, 0, 0, 0,130, 0, 0, 0, + 0, 0, 35, 0, 68, 0, 0, 0,129, 0, 0, 0, 0, 0, 33, 0,129, 0, 0, 0,131, 0, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, +192, 0, 0, 0, 0, 0, 35, 0,190, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, +141, 0, 0, 0,143, 0, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,193, 0, 0, 0, + 0, 0, 35, 0,142, 0, 0, 0,144, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, +194, 0, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,141, 0, 0, 0, 0, 0, 35, 0, +193, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,142, 0, 0, 0, + 0, 0, 35, 0,138, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, +139, 0, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, +138, 0, 0, 0,140, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,137, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,196, 0, 0, 0, + 0, 0, 35, 0,137, 0, 0, 0,138, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0, +190, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0, +190, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0,205, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,207, 0, 0, 0, + 0, 0, 35, 0,191, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0, +198, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0,196, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0, +198, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0,197, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0,199, 0, 0, 0,201, 0, 0, 0, + 0, 0, 35, 0,194, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0,200, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, +202, 0, 0, 0, 0, 0, 35, 0,201, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0, +202, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,205, 0, 0, 0, + 0, 0, 35, 0,204, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0, +204, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, +138, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,210, 0, 0, 0, + 0, 0, 35, 0,163, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0,164, 0, 0, 0, +211, 0, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0,210, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, +144, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,212, 0, 0, 0, + 0, 0, 35, 0,166, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0, +212, 0, 0, 0, 0, 0, 35, 0,209, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, +208, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0,210, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,215, 0, 0, 0, + 0, 0, 35, 0,209, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, +215, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,129, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0, +130, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,222, 0, 0, 0, + 0, 0, 35, 0,219, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0,132, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, +220, 0, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0, +134, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0,220, 0, 0, 0, + 0, 0, 35, 0,216, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0,136, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0, +218, 0, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, +216, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,230, 0, 0, 0, + 0, 0, 35, 0,219, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0,220, 0, 0, 0, +227, 0, 0, 0, 0, 0, 35, 0,227, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,221, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, +224, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,227, 0, 0, 0, + 0, 0, 35, 0, 71, 0, 0, 0,223, 0, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,223, 0, 0, 0, +225, 0, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, +225, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,233, 0, 0, 0, + 0, 0, 35, 0,182, 0, 0, 0,231, 0, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, +232, 0, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,253, 0, 0, 0,231, 0, 0, 0, 0, 0, 35, 0, +111, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0,254, 0, 0, 0,232, 0, 0, 0, + 0, 0, 35, 0,253, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,113, 0, 0, 0, 0, 0, 35, 0, +251, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0,252, 0, 0, 0,114, 0, 0, 0, 0, 0, 35, 0,252, 0, 0, 0,234, 0, 0, 0, + 0, 0, 35, 0,249, 0, 0, 0,115, 0, 0, 0, 0, 0, 35, 0,249, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, +116, 0, 0, 0, 0, 0, 35, 0,250, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,117, 0, 0, 0, 0, 0, 35, 0, +247, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0,248, 0, 0, 0,118, 0, 0, 0, 0, 0, 35, 0,248, 0, 0, 0,250, 0, 0, 0, + 0, 0, 35, 0,245, 0, 0, 0,119, 0, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, +120, 0, 0, 0, 0, 0, 35, 0,246, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0,243, 0, 0, 0,121, 0, 0, 0, 0, 0, 35, 0, +243, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0,122, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0,246, 0, 0, 0, + 0, 0, 35, 0,123, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0,243, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, +242, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0, +239, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,240, 0, 0, 0,242, 0, 0, 0, + 0, 0, 35, 0,178, 0, 0, 0,235, 0, 0, 0, 0, 0, 35, 0,235, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0,179, 0, 0, 0, +236, 0, 0, 0, 0, 0, 35, 0,236, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, +235, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,236, 0, 0, 0,238, 0, 0, 0, + 0, 0, 35, 0,255, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,255, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, + 0, 1, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 20, 1, 0, 0, + 0, 0, 35, 0, 19, 1, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,235, 0, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0, +236, 0, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, + 17, 1, 0, 0,239, 0, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, 22, 1, 0, 0, + 0, 0, 35, 0, 15, 1, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,241, 0, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, +242, 0, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0, +243, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, 16, 1, 0, 0, + 0, 0, 35, 0, 11, 1, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, + 12, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0, +247, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0,248, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 12, 1, 0, 0, + 0, 0, 35, 0, 7, 1, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, + 8, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0, +251, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0,252, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0, 8, 1, 0, 0, + 0, 0, 35, 0, 5, 1, 0, 0, 23, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,233, 0, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0, +234, 0, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0, + 1, 1, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 4, 1, 0, 0, + 0, 0, 35, 0, 25, 1, 0, 0,231, 0, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0, +232, 0, 0, 0, 0, 0, 35, 0, 4, 1, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0, + 24, 1, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 27, 1, 0, 0, + 0, 0, 35, 0, 72, 0, 0, 0, 66, 0, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, + 28, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0, +106, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 31, 1, 0, 0, + 0, 0, 35, 0, 29, 1, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0, + 32, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, 31, 1, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, +102, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 35, 1, 0, 0, + 0, 0, 35, 0, 33, 1, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0, + 36, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, + 98, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 39, 1, 0, 0, + 0, 0, 35, 0, 37, 1, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0, + 40, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, + 94, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 43, 1, 0, 0, + 0, 0, 35, 0, 41, 1, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0, + 44, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, + 71, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, 72, 1, 0, 0, + 0, 0, 35, 0, 51, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, + 51, 1, 0, 0, 0, 0, 35, 0, 79, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, + 50, 1, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, 50, 1, 0, 0, + 0, 0, 35, 0, 79, 1, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, + 84, 1, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, + 88, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, 83, 1, 0, 0, + 0, 0, 35, 0, 86, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0, + 84, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, + 85, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0, 75, 1, 0, 0, + 0, 0, 35, 0, 82, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, + 76, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, + 74, 1, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, 76, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 75, 1, 0, 0, + 0, 0, 35, 0, 69, 1, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, + 72, 1, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, + 85, 1, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0,214, 0, 0, 0, + 0, 0, 35, 0, 86, 1, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, +215, 0, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, + 87, 1, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 90, 1, 0, 0, + 0, 0, 35, 0, 88, 1, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, + 90, 1, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, + 47, 1, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0, 96, 1, 0, 0, + 0, 0, 35, 0, 76, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, + 95, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0, + 94, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0, 93, 1, 0, 0, + 0, 0, 35, 0, 48, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, + 94, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, + 48, 1, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 91, 1, 0, 0, + 0, 0, 35, 0, 86, 1, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0, + 61, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, + 40, 1, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 59, 1, 0, 0, + 0, 0, 35, 0, 59, 1, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0, + 68, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, + 99, 1, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0, 46, 1, 0, 0, + 0, 0, 35, 0,100, 1, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0, +100, 1, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, + 74, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 98, 1, 0, 0, + 0, 0, 35, 0, 59, 1, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0, + 98, 1, 0, 0, 0, 0, 35, 0, 37, 1, 0, 0,105, 1, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, + 35, 1, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,108, 1, 0, 0, + 0, 0, 35, 0,106, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0, +111, 1, 0, 0, 0, 0, 35, 0,107, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, +108, 1, 0, 0,110, 1, 0, 0, 0, 0, 35, 0,110, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,111, 1, 0, 0,113, 1, 0, 0, + 0, 0, 35, 0,113, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, +114, 1, 0, 0, 0, 0, 35, 0,110, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0, +113, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,115, 1, 0, 0,117, 1, 0, 0, + 0, 0, 35, 0,114, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,118, 1, 0, 0, +120, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, + 57, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,118, 1, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,122, 1, 0, 0, + 0, 0, 35, 0, 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, +121, 1, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, + 99, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,100, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,109, 1, 0, 0, + 0, 0, 35, 0,102, 1, 0, 0,110, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,103, 1, 0, 0, +107, 1, 0, 0, 0, 0, 35, 0,104, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, + 33, 1, 0, 0,103, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,103, 1, 0, 0, + 0, 0, 35, 0, 73, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, + 33, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, + 73, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 73, 0, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,105, 1, 0, 0, + 0, 0, 35, 0, 54, 1, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0, +111, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, + 55, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0,126, 1, 0, 0, + 0, 0, 35, 0, 56, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, +126, 1, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0,127, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, + 91, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0,128, 1, 0, 0, + 0, 0, 35, 0,128, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, +129, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, + 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0,127, 1, 0, 0, + 0, 0, 35, 0, 44, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, +127, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, + 57, 1, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0,121, 1, 0, 0,123, 1, 0, 0, + 0, 0, 35, 0, 66, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, +124, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, +123, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0,124, 1, 0, 0,130, 1, 0, 0, + 0, 0, 35, 0, 64, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, +124, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0, +145, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,158, 1, 0, 0, + 0, 0, 35, 0,132, 1, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0, +158, 1, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,147, 1, 0, 0, 0, 0, 35, 0, +141, 1, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0,144, 1, 0, 0, + 0, 0, 35, 0,142, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,139, 1, 0, 0, +149, 1, 0, 0, 0, 0, 35, 0,139, 1, 0, 0,141, 1, 0, 0, 0, 0, 35, 0,148, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0, +140, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,151, 1, 0, 0, + 0, 0, 35, 0,137, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,150, 1, 0, 0, +152, 1, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,152, 1, 0, 0, 0, 0, 35, 0, +151, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,137, 1, 0, 0, + 0, 0, 35, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0, +154, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,133, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, +133, 1, 0, 0,135, 1, 0, 0, 0, 0, 35, 0,154, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,136, 1, 0, 0, + 0, 0, 35, 0,134, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0, +163, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,164, 1, 0, 0, 0, 0, 35, 0, +154, 1, 0, 0,164, 1, 0, 0, 0, 0, 35, 0,156, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,151, 1, 0, 0,165, 1, 0, 0, + 0, 0, 35, 0,163, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,152, 1, 0, 0, +166, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0, +166, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,150, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,169, 1, 0, 0, + 0, 0, 35, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,148, 1, 0, 0, +170, 1, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,169, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0, +170, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,157, 1, 0, 0,159, 1, 0, 0, + 0, 0, 35, 0,159, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,160, 1, 0, 0, +172, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, + 61, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,186, 1, 0, 0, + 0, 0, 35, 0,186, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0, +187, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0,134, 1, 0, 0, 0, 0, 35, 0,156, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, + 55, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,173, 1, 0, 0, + 0, 0, 35, 0,157, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,131, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0, +174, 1, 0, 0, 0, 0, 35, 0,126, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,126, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, +161, 1, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,183, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,184, 1, 0, 0, + 0, 0, 35, 0,184, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0,181, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,187, 1, 0, 0, +189, 1, 0, 0, 0, 0, 35, 0,181, 1, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, +182, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,189, 1, 0, 0, + 0, 0, 35, 0,179, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,179, 1, 0, 0, 0, 0, 35, 0,178, 1, 0, 0, +190, 1, 0, 0, 0, 0, 35, 0,178, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,180, 1, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, +175, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,189, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,177, 1, 0, 0, + 0, 0, 35, 0,190, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0, +178, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0, +173, 1, 0, 0,193, 1, 0, 0, 0, 0, 33, 0,174, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,174, 1, 0, 0,194, 1, 0, 0, + 0, 0, 33, 0,176, 1, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,160, 1, 0, 0, +194, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0, +185, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,186, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,193, 1, 0, 0,195, 1, 0, 0, + 0, 0, 35, 0,195, 1, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0, +196, 1, 0, 0, 0, 0, 35, 0,160, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,196, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0, +175, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,206, 1, 0, 0, + 0, 0, 35, 0,196, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0, +205, 1, 0, 0, 0, 0, 35, 0,178, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,204, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, +179, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,201, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,180, 1, 0, 0,202, 1, 0, 0, + 0, 0, 35, 0,202, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,181, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,199, 1, 0, 0, +201, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, +183, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,184, 1, 0, 0,198, 1, 0, 0, + 0, 0, 35, 0,198, 1, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0, +217, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,198, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, +207, 1, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,171, 1, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,172, 1, 0, 0,208, 1, 0, 0, + 0, 0, 35, 0,208, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,169, 1, 0, 0, +209, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, +209, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,212, 1, 0, 0, + 0, 0, 35, 0,210, 1, 0, 0,212, 1, 0, 0, 0, 0, 35, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0, +213, 1, 0, 0, 0, 0, 35, 0,166, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, +213, 1, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,163, 1, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,216, 1, 0, 0, + 0, 0, 35, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,216, 1, 0, 0, +218, 1, 0, 0, 0, 0, 35, 0,199, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, +201, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,202, 1, 0, 0,222, 1, 0, 0, + 0, 0, 35, 0,222, 1, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,225, 1, 0, 0, +227, 1, 0, 0, 0, 0, 33, 0,221, 1, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, +222, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,226, 1, 0, 0,228, 1, 0, 0, 0, 0, 33, 0,225, 1, 0, 0,231, 1, 0, 0, + 0, 0, 35, 0,229, 1, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,226, 1, 0, 0, +232, 1, 0, 0, 0, 0, 35, 0,228, 1, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0, +231, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,229, 1, 0, 0,235, 1, 0, 0, + 0, 0, 35, 0,232, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,234, 1, 0, 0, +236, 1, 0, 0, 0, 0, 35, 0,219, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, +220, 1, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,208, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,227, 1, 0, 0, + 0, 0, 35, 0,196, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,205, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0, +222, 1, 0, 0, 0, 0, 35, 0,217, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,224, 1, 0, 0, 0, 0, 35, 0, +215, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,216, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,213, 1, 0, 0,231, 1, 0, 0, + 0, 0, 35, 0,214, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,211, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0, +234, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,210, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0, +133, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,245, 1, 0, 0, + 0, 0, 35, 0,134, 1, 0, 0,248, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,246, 1, 0, 0, +248, 1, 0, 0, 0, 0, 35, 0,243, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0, +138, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,244, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,241, 1, 0, 0,243, 1, 0, 0, + 0, 0, 35, 0,139, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0, +244, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,239, 1, 0, 0, 0, 0, 35, 0, +142, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,240, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,239, 1, 0, 0, + 0, 0, 35, 0,143, 1, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,238, 1, 0, 0, +240, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0, +132, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,238, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,245, 1, 0, 0, + 0, 0, 35, 0,247, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,238, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0, +250, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,240, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, + 57, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0,247, 1, 0, 0, + 0, 0, 35, 0, 66, 1, 0, 0,248, 1, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 40,239, 71, 27, 1, 0, 0, 0, + 93, 1, 0, 0, 5, 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, 56,206,108, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 39, 0, 0, 56,206,108, 3, 1, 0, 0, 0, + 48, 0, 0, 0,244, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, + 1, 0, 0, 0, 47, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 3, 44, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 0, 3, 5, 0, 0, 0, 3, 0, 0, 0, 45, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 8, 0, 0, 0, + 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 3, 7, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 10, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 9, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 3, 15, 0, 0, 0, + 13, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 3, 17, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, 20, 0, 0, 0, + 18, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 3, 19, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, + 12, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 3, 21, 0, 0, 0, 23, 0, 0, 0, 13, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 3, 22, 0, 0, 0, 24, 0, 0, 0, 26, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 3, 27, 0, 0, 0, + 25, 0, 0, 0, 23, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 3, 20, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 3, 29, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 32, 0, 0, 0, + 30, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 3, 31, 0, 0, 0, 33, 0, 0, 0, 27, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 3, + 24, 0, 0, 0, 34, 0, 0, 0, 32, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 3, 33, 0, 0, 0, 35, 0, 0, 0, 25, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0, 36, 0, 0, 0, 38, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 3, 39, 0, 0, 0, + 37, 0, 0, 0, 35, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0, 38, 0, 0, 0, 40, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 3, 41, 0, 0, 0, 39, 0, 0, 0, 33, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 3, 38, 0, 0, 0, 44, 0, 0, 0, + 42, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 3, 43, 0, 0, 0, 45, 0, 0, 0, 39, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 3, + 36, 0, 0, 0, 46, 0, 0, 0, 44, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 3, 45, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, + 39, 0, 0, 0, 0, 0, 0, 3, 46, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, + 37, 0, 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 3, 53, 0, 0, 0, 35, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0, 24, 0, 0, 0, + 54, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 3, 55, 0, 0, 0, 25, 0, 0, 0, 35, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 3, + 24, 0, 0, 0, 22, 0, 0, 0, 56, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 3, 22, 0, 0, 0, 12, 0, 0, 0, 58, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0, + 13, 0, 0, 0, 23, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0, 10, 0, 0, 0, 62, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 3, 63, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 3, 65, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 64, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0, + 65, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 62, 0, 0, 0, 64, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 61, 0, 0, 0, 65, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 58, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 63, 0, 0, 0, 59, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 60, 0, 0, 0, 56, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 54, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0, + 55, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 55, 0, 0, 0, 53, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 50, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 0, 0, 0, 51, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 60, 0, 0, 0, 48, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, 49, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 88, 0, 0, 0,173, 0, 0, 0,175, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0, +174, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0,171, 0, 0, 0,173, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 3,174, 0, 0, 0,172, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0,169, 0, 0, 0, +171, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 3,172, 0, 0, 0,170, 0, 0, 0, 85, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 3, + 82, 0, 0, 0,167, 0, 0, 0,169, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 3,170, 0, 0, 0,168, 0, 0, 0, 83, 0, 0, 0, + 85, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0,165, 0, 0, 0,167, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, +166, 0, 0, 0, 81, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, 91, 0, 0, 0,145, 0, 0, 0,163, 0, 0, 0, + 0, 0, 0, 3,146, 0, 0, 0, 92, 0, 0, 0, 79, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 3, 91, 0, 0, 0, 93, 0, 0, 0, +147, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0, 94, 0, 0, 0, 92, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 3, + 93, 0, 0, 0, 95, 0, 0, 0,149, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 3,150, 0, 0, 0, 96, 0, 0, 0, 94, 0, 0, 0, +148, 0, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, 97, 0, 0, 0,151, 0, 0, 0,149, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0, + 98, 0, 0, 0, 96, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, 99, 0, 0, 0,153, 0, 0, 0,151, 0, 0, 0, + 0, 0, 0, 3,154, 0, 0, 0,100, 0, 0, 0, 98, 0, 0, 0,152, 0, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0,101, 0, 0, 0, +155, 0, 0, 0,153, 0, 0, 0, 0, 0, 0, 3,156, 0, 0, 0,102, 0, 0, 0,100, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 3, +101, 0, 0, 0,103, 0, 0, 0,157, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0,104, 0, 0, 0,102, 0, 0, 0, +156, 0, 0, 0, 0, 0, 0, 3,103, 0, 0, 0,105, 0, 0, 0,159, 0, 0, 0,157, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0, +106, 0, 0, 0,104, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,107, 0, 0, 0,161, 0, 0, 0,159, 0, 0, 0, + 0, 0, 0, 3,162, 0, 0, 0,108, 0, 0, 0,106, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, 66, 0, 0, 0, + 67, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 3, 67, 0, 0, 0, 66, 0, 0, 0,108, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 3, +109, 0, 0, 0,127, 0, 0, 0,159, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0,128, 0, 0, 0,110, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0,178, 0, 0, 0,157, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0, +179, 0, 0, 0,128, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0,155, 0, 0, 0,157, 0, 0, 0,178, 0, 0, 0, + 0, 0, 0, 3,158, 0, 0, 0,156, 0, 0, 0,126, 0, 0, 0,179, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,153, 0, 0, 0, +155, 0, 0, 0,125, 0, 0, 0, 0, 0, 0, 3,156, 0, 0, 0,154, 0, 0, 0,124, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 3, +121, 0, 0, 0,151, 0, 0, 0,153, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0,152, 0, 0, 0,122, 0, 0, 0, +124, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0,149, 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0, +150, 0, 0, 0,120, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 3,117, 0, 0, 0,147, 0, 0, 0,149, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 3,150, 0, 0, 0,148, 0, 0, 0,118, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,145, 0, 0, 0, +147, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 3,148, 0, 0, 0,146, 0, 0, 0,116, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 3, +113, 0, 0, 0,163, 0, 0, 0,145, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 3,146, 0, 0, 0,164, 0, 0, 0,114, 0, 0, 0, +116, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,180, 0, 0, 0,176, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0, +181, 0, 0, 0,114, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,161, 0, 0, 0, 67, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 3, 67, 0, 0, 0,162, 0, 0, 0,110, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, 67, 0, 0, 0, +177, 0, 0, 0,182, 0, 0, 0, 0, 0, 0, 3,177, 0, 0, 0, 67, 0, 0, 0,112, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 3, +176, 0, 0, 0,180, 0, 0, 0,182, 0, 0, 0,177, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0,181, 0, 0, 0,176, 0, 0, 0, +177, 0, 0, 0, 0, 0, 0, 3,134, 0, 0, 0,136, 0, 0, 0,175, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0, +136, 0, 0, 0,135, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0,134, 0, 0, 0,173, 0, 0, 0,171, 0, 0, 0, + 0, 0, 0, 3,174, 0, 0, 0,135, 0, 0, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0,132, 0, 0, 0, +171, 0, 0, 0,169, 0, 0, 0, 0, 0, 0, 3,172, 0, 0, 0,133, 0, 0, 0,131, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 3, +165, 0, 0, 0,186, 0, 0, 0,184, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0,187, 0, 0, 0,166, 0, 0, 0, +168, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0,169, 0, 0, 0,167, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0, +170, 0, 0, 0,131, 0, 0, 0,185, 0, 0, 0, 0, 0, 0, 3,143, 0, 0, 0,189, 0, 0, 0,188, 0, 0, 0,186, 0, 0, 0, + 0, 0, 0, 3,188, 0, 0, 0,189, 0, 0, 0,144, 0, 0, 0,187, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0,186, 0, 0, 0, +188, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3,188, 0, 0, 0,187, 0, 0, 0,185, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3, +129, 0, 0, 0,130, 0, 0, 0,184, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0,131, 0, 0, 0,129, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0,192, 0, 0, 0,190, 0, 0, 0,143, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, +193, 0, 0, 0,142, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0,194, 0, 0, 0,192, 0, 0, 0,141, 0, 0, 0, + 0, 0, 0, 3,193, 0, 0, 0,195, 0, 0, 0,140, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0,196, 0, 0, 0, +194, 0, 0, 0,139, 0, 0, 0, 0, 0, 0, 3,195, 0, 0, 0,197, 0, 0, 0,138, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 3, +137, 0, 0, 0, 70, 0, 0, 0,196, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 0, 70, 0, 0, 0,137, 0, 0, 0, +138, 0, 0, 0, 0, 0, 0, 3,189, 0, 0, 0,143, 0, 0, 0,190, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0, +144, 0, 0, 0,189, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 3, 69, 0, 0, 0,190, 0, 0, 0,205, 0, 0, 0,207, 0, 0, 0, + 0, 0, 0, 3,206, 0, 0, 0,191, 0, 0, 0, 69, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 3, 70, 0, 0, 0,198, 0, 0, 0, +199, 0, 0, 0,196, 0, 0, 0, 0, 0, 0, 3,200, 0, 0, 0,198, 0, 0, 0, 70, 0, 0, 0,197, 0, 0, 0, 0, 0, 0, 3, +196, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0,200, 0, 0, 0,197, 0, 0, 0, +195, 0, 0, 0, 0, 0, 0, 3,194, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 3,204, 0, 0, 0, +202, 0, 0, 0,195, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0,203, 0, 0, 0,205, 0, 0, 0,190, 0, 0, 0, + 0, 0, 0, 3,206, 0, 0, 0,204, 0, 0, 0,193, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0,203, 0, 0, 0, +201, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0,204, 0, 0, 0,198, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 3, +198, 0, 0, 0,207, 0, 0, 0,205, 0, 0, 0,203, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0,207, 0, 0, 0,198, 0, 0, 0, +204, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0,139, 0, 0, 0,163, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 3,164, 0, 0, 0, +140, 0, 0, 0,138, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0,141, 0, 0, 0,210, 0, 0, 0,163, 0, 0, 0, + 0, 0, 0, 3,211, 0, 0, 0,142, 0, 0, 0,140, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0,143, 0, 0, 0, +212, 0, 0, 0,210, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0,144, 0, 0, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 3, +143, 0, 0, 0,186, 0, 0, 0,165, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 3,166, 0, 0, 0,187, 0, 0, 0,144, 0, 0, 0, +213, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0,208, 0, 0, 0,212, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0, +209, 0, 0, 0, 81, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,214, 0, 0, 0,210, 0, 0, 0,212, 0, 0, 0, + 0, 0, 0, 3,211, 0, 0, 0,215, 0, 0, 0,209, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0,163, 0, 0, 0, +210, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0,164, 0, 0, 0, 79, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 3, +130, 0, 0, 0,129, 0, 0, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 0, 3, 71, 0, 0, 0,129, 0, 0, 0,131, 0, 0, 0, +222, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0,130, 0, 0, 0,221, 0, 0, 0,219, 0, 0, 0, 0, 0, 0, 3,222, 0, 0, 0, +131, 0, 0, 0,133, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 3,134, 0, 0, 0,132, 0, 0, 0,219, 0, 0, 0,217, 0, 0, 0, + 0, 0, 0, 3,220, 0, 0, 0,133, 0, 0, 0,135, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 3,136, 0, 0, 0,134, 0, 0, 0, +217, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 3,218, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 3, +216, 0, 0, 0,217, 0, 0, 0,228, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0,218, 0, 0, 0,216, 0, 0, 0, +230, 0, 0, 0, 0, 0, 0, 3,217, 0, 0, 0,219, 0, 0, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0, +220, 0, 0, 0,218, 0, 0, 0,229, 0, 0, 0, 0, 0, 0, 3,219, 0, 0, 0,221, 0, 0, 0,224, 0, 0, 0,226, 0, 0, 0, + 0, 0, 0, 3,225, 0, 0, 0,222, 0, 0, 0,220, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 3,221, 0, 0, 0, 71, 0, 0, 0, +223, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0, 71, 0, 0, 0,222, 0, 0, 0,225, 0, 0, 0, 0, 0, 0, 3, +223, 0, 0, 0,230, 0, 0, 0,228, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0,230, 0, 0, 0,223, 0, 0, 0, +225, 0, 0, 0, 0, 0, 0, 3,224, 0, 0, 0,228, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0, +229, 0, 0, 0,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 0, 0,180, 0, 0, 0,233, 0, 0, 0,231, 0, 0, 0, + 0, 0, 0, 3,234, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0,182, 0, 0, 0, +231, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 3,232, 0, 0, 0,183, 0, 0, 0,112, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 3, +109, 0, 0, 0,111, 0, 0, 0,253, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 3,254, 0, 0, 0,112, 0, 0, 0,110, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 3,180, 0, 0, 0,113, 0, 0, 0,251, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 3,252, 0, 0, 0, +114, 0, 0, 0,181, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,115, 0, 0, 0,249, 0, 0, 0,251, 0, 0, 0, + 0, 0, 0, 3,250, 0, 0, 0,116, 0, 0, 0,114, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,117, 0, 0, 0, +247, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 3,248, 0, 0, 0,118, 0, 0, 0,116, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 3, +117, 0, 0, 0,119, 0, 0, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 3,246, 0, 0, 0,120, 0, 0, 0,118, 0, 0, 0, +248, 0, 0, 0, 0, 0, 0, 3,119, 0, 0, 0,121, 0, 0, 0,243, 0, 0, 0,245, 0, 0, 0, 0, 0, 0, 3,244, 0, 0, 0, +122, 0, 0, 0,120, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0,123, 0, 0, 0,241, 0, 0, 0,243, 0, 0, 0, + 0, 0, 0, 3,242, 0, 0, 0,124, 0, 0, 0,122, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,125, 0, 0, 0, +239, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 3,240, 0, 0, 0,126, 0, 0, 0,124, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 3, +125, 0, 0, 0,178, 0, 0, 0,235, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 3,236, 0, 0, 0,179, 0, 0, 0,126, 0, 0, 0, +240, 0, 0, 0, 0, 0, 0, 3,178, 0, 0, 0,127, 0, 0, 0,237, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 3,238, 0, 0, 0, +128, 0, 0, 0,179, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0,109, 0, 0, 0,255, 0, 0, 0,237, 0, 0, 0, + 0, 0, 0, 3, 0, 1, 0, 0,110, 0, 0, 0,128, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 3,237, 0, 0, 0,255, 0, 0, 0, + 1, 1, 0, 0, 19, 1, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0, 0, 1, 0, 0,238, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 3, +235, 0, 0, 0,237, 0, 0, 0, 19, 1, 0, 0, 21, 1, 0, 0, 0, 0, 0, 3, 20, 1, 0, 0,238, 0, 0, 0,236, 0, 0, 0, + 22, 1, 0, 0, 0, 0, 0, 3,239, 0, 0, 0,235, 0, 0, 0, 21, 1, 0, 0, 17, 1, 0, 0, 0, 0, 0, 3, 22, 1, 0, 0, +236, 0, 0, 0,240, 0, 0, 0, 18, 1, 0, 0, 0, 0, 0, 3,241, 0, 0, 0,239, 0, 0, 0, 17, 1, 0, 0, 15, 1, 0, 0, + 0, 0, 0, 3, 18, 1, 0, 0,240, 0, 0, 0,242, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0, 3,243, 0, 0, 0,241, 0, 0, 0, + 15, 1, 0, 0, 13, 1, 0, 0, 0, 0, 0, 3, 16, 1, 0, 0,242, 0, 0, 0,244, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 3, +245, 0, 0, 0,243, 0, 0, 0, 13, 1, 0, 0, 11, 1, 0, 0, 0, 0, 0, 3, 14, 1, 0, 0,244, 0, 0, 0,246, 0, 0, 0, + 12, 1, 0, 0, 0, 0, 0, 3,247, 0, 0, 0,245, 0, 0, 0, 11, 1, 0, 0, 9, 1, 0, 0, 0, 0, 0, 3, 12, 1, 0, 0, +246, 0, 0, 0,248, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 3,249, 0, 0, 0,247, 0, 0, 0, 9, 1, 0, 0, 7, 1, 0, 0, + 0, 0, 0, 3, 10, 1, 0, 0,248, 0, 0, 0,250, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 3,251, 0, 0, 0,249, 0, 0, 0, + 7, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 3, 8, 1, 0, 0,250, 0, 0, 0,252, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 3, +233, 0, 0, 0,251, 0, 0, 0, 5, 1, 0, 0, 23, 1, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0,252, 0, 0, 0,234, 0, 0, 0, + 24, 1, 0, 0, 0, 0, 0, 3,255, 0, 0, 0,253, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 3, 4, 1, 0, 0, +254, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 3,253, 0, 0, 0,231, 0, 0, 0, 25, 1, 0, 0, 3, 1, 0, 0, + 0, 0, 0, 3, 26, 1, 0, 0,232, 0, 0, 0,254, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 3,231, 0, 0, 0,233, 0, 0, 0, + 23, 1, 0, 0, 25, 1, 0, 0, 0, 0, 0, 3, 24, 1, 0, 0,234, 0, 0, 0,232, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 3, + 66, 0, 0, 0,107, 0, 0, 0, 27, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 3, 28, 1, 0, 0,108, 0, 0, 0, 66, 0, 0, 0, + 72, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0,105, 0, 0, 0, 29, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 3, 30, 1, 0, 0, +106, 0, 0, 0,108, 0, 0, 0, 28, 1, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,103, 0, 0, 0, 31, 1, 0, 0, 29, 1, 0, 0, + 0, 0, 0, 3, 32, 1, 0, 0,104, 0, 0, 0,106, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 3,103, 0, 0, 0,101, 0, 0, 0, + 33, 1, 0, 0, 31, 1, 0, 0, 0, 0, 0, 3, 34, 1, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 3, +101, 0, 0, 0, 99, 0, 0, 0, 35, 1, 0, 0, 33, 1, 0, 0, 0, 0, 0, 3, 36, 1, 0, 0,100, 0, 0, 0,102, 0, 0, 0, + 34, 1, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0, 97, 0, 0, 0, 37, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0, + 98, 0, 0, 0,100, 0, 0, 0, 36, 1, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, 95, 0, 0, 0, 39, 1, 0, 0, 37, 1, 0, 0, + 0, 0, 0, 3, 40, 1, 0, 0, 96, 0, 0, 0, 98, 0, 0, 0, 38, 1, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, 93, 0, 0, 0, + 41, 1, 0, 0, 39, 1, 0, 0, 0, 0, 0, 3, 42, 1, 0, 0, 94, 0, 0, 0, 96, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 3, + 93, 0, 0, 0, 91, 0, 0, 0, 43, 1, 0, 0, 41, 1, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0, 92, 0, 0, 0, 94, 0, 0, 0, + 42, 1, 0, 0, 0, 0, 0, 3, 51, 1, 0, 0, 52, 1, 0, 0, 71, 1, 0, 0, 81, 1, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, + 52, 1, 0, 0, 51, 1, 0, 0, 82, 1, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0, 51, 1, 0, 0, 81, 1, 0, 0, 79, 1, 0, 0, + 0, 0, 0, 3, 82, 1, 0, 0, 51, 1, 0, 0, 50, 1, 0, 0, 80, 1, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0, 50, 1, 0, 0, + 79, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 3, 80, 1, 0, 0, 50, 1, 0, 0, 49, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 3, + 88, 0, 0, 0, 90, 0, 0, 0, 49, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0, 90, 0, 0, 0, 89, 0, 0, 0, + 84, 1, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0, 88, 0, 0, 0, 83, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, + 89, 0, 0, 0, 87, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0, 86, 0, 0, 0, 77, 1, 0, 0, 73, 1, 0, 0, + 0, 0, 0, 3, 78, 1, 0, 0, 87, 0, 0, 0, 85, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0, 84, 0, 0, 0, + 73, 1, 0, 0, 75, 1, 0, 0, 0, 0, 0, 3, 74, 1, 0, 0, 85, 0, 0, 0, 83, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 3, + 73, 1, 0, 0, 79, 1, 0, 0, 81, 1, 0, 0, 75, 1, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, 80, 1, 0, 0, 74, 1, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 3, 73, 1, 0, 0, 77, 1, 0, 0, 83, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, + 78, 1, 0, 0, 74, 1, 0, 0, 80, 1, 0, 0, 0, 0, 0, 3, 69, 1, 0, 0, 75, 1, 0, 0, 81, 1, 0, 0, 71, 1, 0, 0, + 0, 0, 0, 3, 82, 1, 0, 0, 76, 1, 0, 0, 70, 1, 0, 0, 72, 1, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0, 82, 0, 0, 0, + 75, 1, 0, 0, 69, 1, 0, 0, 0, 0, 0, 3, 76, 1, 0, 0, 83, 0, 0, 0, 81, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 3, +208, 0, 0, 0, 85, 1, 0, 0, 87, 1, 0, 0,214, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, 86, 1, 0, 0,209, 0, 0, 0, +215, 0, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0, 69, 1, 0, 0, 85, 1, 0, 0,208, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0, + 70, 1, 0, 0, 81, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0,214, 0, 0, 0, 87, 1, 0, 0, 89, 1, 0, 0, + 0, 0, 0, 3, 88, 1, 0, 0,215, 0, 0, 0, 79, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, 89, 1, 0, 0, + 43, 1, 0, 0, 91, 0, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0, 90, 1, 0, 0, 79, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 3, + 76, 0, 0, 0, 67, 1, 0, 0, 95, 1, 0, 0, 47, 1, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, 68, 1, 0, 0, 76, 0, 0, 0, + 47, 1, 0, 0, 0, 0, 0, 3, 47, 1, 0, 0, 95, 1, 0, 0, 93, 1, 0, 0, 77, 0, 0, 0, 0, 0, 0, 3, 94, 1, 0, 0, + 96, 1, 0, 0, 47, 1, 0, 0, 77, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 0, 93, 1, 0, 0, 91, 1, 0, 0, 48, 1, 0, 0, + 0, 0, 0, 3, 92, 1, 0, 0, 94, 1, 0, 0, 77, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 3, 48, 1, 0, 0, 91, 1, 0, 0, + 71, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, 92, 1, 0, 0, 48, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 3, + 69, 1, 0, 0, 71, 1, 0, 0, 91, 1, 0, 0, 85, 1, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0, 72, 1, 0, 0, 70, 1, 0, 0, + 86, 1, 0, 0, 0, 0, 0, 3, 39, 1, 0, 0, 41, 1, 0, 0, 61, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 3, 62, 1, 0, 0, + 42, 1, 0, 0, 40, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 3, 75, 0, 0, 0, 59, 1, 0, 0, 67, 1, 0, 0, 76, 0, 0, 0, + 0, 0, 0, 3, 68, 1, 0, 0, 60, 1, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0,101, 1, 0, 0, + 99, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 3,100, 1, 0, 0,102, 1, 0, 0, 45, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 3, + 46, 1, 0, 0, 99, 1, 0, 0, 97, 1, 0, 0, 74, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0,100, 1, 0, 0, 46, 1, 0, 0, + 74, 0, 0, 0, 0, 0, 0, 3, 74, 0, 0, 0, 97, 1, 0, 0, 59, 1, 0, 0, 75, 0, 0, 0, 0, 0, 0, 3, 60, 1, 0, 0, + 98, 1, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 3, 35, 1, 0, 0, 37, 1, 0, 0,105, 1, 0, 0,107, 1, 0, 0, + 0, 0, 0, 3,106, 1, 0, 0, 38, 1, 0, 0, 36, 1, 0, 0,108, 1, 0, 0, 0, 0, 0, 3,107, 1, 0, 0,105, 1, 0, 0, +111, 1, 0, 0,109, 1, 0, 0, 0, 0, 0, 3,112, 1, 0, 0,106, 1, 0, 0,108, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 3, +109, 1, 0, 0,111, 1, 0, 0,113, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 3,114, 1, 0, 0,112, 1, 0, 0,110, 1, 0, 0, +116, 1, 0, 0, 0, 0, 0, 3,115, 1, 0, 0,113, 1, 0, 0,119, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 3,120, 1, 0, 0, +114, 1, 0, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,121, 1, 0, 0,117, 1, 0, 0,119, 1, 0, 0, + 0, 0, 0, 3,118, 1, 0, 0,122, 1, 0, 0, 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0, 97, 1, 0, 0, +117, 1, 0, 0,121, 1, 0, 0, 0, 0, 0, 3,118, 1, 0, 0, 98, 1, 0, 0, 60, 1, 0, 0,122, 1, 0, 0, 0, 0, 0, 3, + 97, 1, 0, 0, 99, 1, 0, 0,115, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 3,116, 1, 0, 0,100, 1, 0, 0, 98, 1, 0, 0, +118, 1, 0, 0, 0, 0, 0, 3, 99, 1, 0, 0,101, 1, 0, 0,109, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 3,110, 1, 0, 0, +102, 1, 0, 0,100, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 3,101, 1, 0, 0,103, 1, 0, 0,107, 1, 0, 0,109, 1, 0, 0, + 0, 0, 0, 3,108, 1, 0, 0,104, 1, 0, 0,102, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 3, 33, 1, 0, 0, 35, 1, 0, 0, +107, 1, 0, 0,103, 1, 0, 0, 0, 0, 0, 3,108, 1, 0, 0, 36, 1, 0, 0, 34, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 3, + 73, 0, 0, 0,103, 1, 0, 0,101, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 3,102, 1, 0, 0,104, 1, 0, 0, 73, 0, 0, 0, + 45, 1, 0, 0, 0, 0, 0, 3, 27, 1, 0, 0, 29, 1, 0, 0, 31, 1, 0, 0, 33, 1, 0, 0, 0, 0, 0, 3, 32, 1, 0, 0, + 30, 1, 0, 0, 28, 1, 0, 0, 34, 1, 0, 0, 0, 0, 0, 3, 27, 1, 0, 0, 33, 1, 0, 0,103, 1, 0, 0, 73, 0, 0, 0, + 0, 0, 0, 3,104, 1, 0, 0, 34, 1, 0, 0, 28, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 3, 72, 0, 0, 0, 27, 1, 0, 0, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 0, 0, 0, 28, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 37, 1, 0, 0, 39, 1, 0, 0, 53, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 3, 54, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0, +106, 1, 0, 0, 0, 0, 0, 3, 53, 1, 0, 0, 55, 1, 0, 0,111, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 3,112, 1, 0, 0, + 56, 1, 0, 0, 54, 1, 0, 0,106, 1, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,125, 1, 0, 0,113, 1, 0, 0,111, 1, 0, 0, + 0, 0, 0, 3,114, 1, 0, 0,126, 1, 0, 0, 56, 1, 0, 0,112, 1, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,119, 1, 0, 0, +113, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 3,114, 1, 0, 0,120, 1, 0, 0, 58, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 3, + 91, 1, 0, 0, 93, 1, 0, 0,129, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 3,130, 1, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0, +128, 1, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0,127, 1, 0, 0,129, 1, 0, 0, 63, 1, 0, 0, 0, 0, 0, 3,130, 1, 0, 0, +128, 1, 0, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 0, 3, 41, 1, 0, 0, 43, 1, 0, 0,127, 1, 0, 0, 61, 1, 0, 0, + 0, 0, 0, 3,128, 1, 0, 0, 44, 1, 0, 0, 42, 1, 0, 0, 62, 1, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0, 87, 1, 0, 0, + 85, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0, 88, 1, 0, 0, 44, 1, 0, 0,128, 1, 0, 0, 0, 0, 0, 3, + 85, 1, 0, 0, 91, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 1, 0, 0, 92, 1, 0, 0, 86, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0, 89, 1, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, + 90, 1, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0, 65, 1, 0, 0,123, 1, 0, 0,121, 1, 0, 0, + 0, 0, 0, 3,124, 1, 0, 0, 66, 1, 0, 0, 58, 1, 0, 0,122, 1, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0,121, 1, 0, 0, +123, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0,122, 1, 0, 0, 60, 1, 0, 0, 68, 1, 0, 0, 0, 0, 0, 3, + 63, 1, 0, 0,129, 1, 0, 0,123, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0,130, 1, 0, 0, 64, 1, 0, 0, + 66, 1, 0, 0, 0, 0, 0, 3, 93, 1, 0, 0, 95, 1, 0, 0,123, 1, 0, 0,129, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0, + 96, 1, 0, 0, 94, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 3, 67, 1, 0, 0,123, 1, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 96, 1, 0, 0,124, 1, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,131, 1, 0, 0, +157, 1, 0, 0,145, 1, 0, 0, 0, 0, 0, 3,158, 1, 0, 0,132, 1, 0, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 0, 3, +143, 1, 0, 0,145, 1, 0, 0,147, 1, 0, 0,141, 1, 0, 0, 0, 0, 0, 3,148, 1, 0, 0,146, 1, 0, 0,144, 1, 0, 0, +142, 1, 0, 0, 0, 0, 0, 3,141, 1, 0, 0,147, 1, 0, 0,149, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 3,150, 1, 0, 0, +148, 1, 0, 0,142, 1, 0, 0,140, 1, 0, 0, 0, 0, 0, 3,139, 1, 0, 0,149, 1, 0, 0,151, 1, 0, 0,137, 1, 0, 0, + 0, 0, 0, 3,152, 1, 0, 0,150, 1, 0, 0,140, 1, 0, 0,138, 1, 0, 0, 0, 0, 0, 3,137, 1, 0, 0,151, 1, 0, 0, +153, 1, 0, 0,135, 1, 0, 0, 0, 0, 0, 3,154, 1, 0, 0,152, 1, 0, 0,138, 1, 0, 0,136, 1, 0, 0, 0, 0, 0, 3, +135, 1, 0, 0,153, 1, 0, 0,155, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 3,156, 1, 0, 0,154, 1, 0, 0,136, 1, 0, 0, +134, 1, 0, 0, 0, 0, 0, 3,153, 1, 0, 0,163, 1, 0, 0,161, 1, 0, 0,155, 1, 0, 0, 0, 0, 0, 3,162, 1, 0, 0, +164, 1, 0, 0,154, 1, 0, 0,156, 1, 0, 0, 0, 0, 0, 3,151, 1, 0, 0,165, 1, 0, 0,163, 1, 0, 0,153, 1, 0, 0, + 0, 0, 0, 3,164, 1, 0, 0,166, 1, 0, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 3,149, 1, 0, 0,167, 1, 0, 0, +165, 1, 0, 0,151, 1, 0, 0, 0, 0, 0, 3,166, 1, 0, 0,168, 1, 0, 0,150, 1, 0, 0,152, 1, 0, 0, 0, 0, 0, 3, +147, 1, 0, 0,169, 1, 0, 0,167, 1, 0, 0,149, 1, 0, 0, 0, 0, 0, 3,168, 1, 0, 0,170, 1, 0, 0,148, 1, 0, 0, +150, 1, 0, 0, 0, 0, 0, 3,145, 1, 0, 0,171, 1, 0, 0,169, 1, 0, 0,147, 1, 0, 0, 0, 0, 0, 3,170, 1, 0, 0, +172, 1, 0, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 0, 3,145, 1, 0, 0,157, 1, 0, 0,159, 1, 0, 0,171, 1, 0, 0, + 0, 0, 0, 3,160, 1, 0, 0,158, 1, 0, 0,146, 1, 0, 0,172, 1, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0, 63, 1, 0, 0, +187, 1, 0, 0,185, 1, 0, 0, 0, 0, 0, 3,188, 1, 0, 0, 64, 1, 0, 0, 62, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 3, + 63, 1, 0, 0,133, 1, 0, 0,155, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 3,156, 1, 0, 0,134, 1, 0, 0, 64, 1, 0, 0, +188, 1, 0, 0, 0, 0, 0, 3, 53, 1, 0, 0, 61, 1, 0, 0,185, 1, 0, 0, 55, 1, 0, 0, 0, 0, 0, 3,186, 1, 0, 0, + 62, 1, 0, 0, 54, 1, 0, 0, 56, 1, 0, 0, 0, 0, 0, 3,125, 1, 0, 0,173, 1, 0, 0,157, 1, 0, 0,131, 1, 0, 0, + 0, 0, 0, 3,158, 1, 0, 0,174, 1, 0, 0,126, 1, 0, 0,132, 1, 0, 0, 0, 0, 0, 3,155, 1, 0, 0,161, 1, 0, 0, +183, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 3,184, 1, 0, 0,162, 1, 0, 0,156, 1, 0, 0,188, 1, 0, 0, 0, 0, 0, 3, +181, 1, 0, 0,189, 1, 0, 0,187, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 3,188, 1, 0, 0,190, 1, 0, 0,182, 1, 0, 0, +184, 1, 0, 0, 0, 0, 0, 3,177, 1, 0, 0,189, 1, 0, 0,181, 1, 0, 0,179, 1, 0, 0, 0, 0, 0, 3,182, 1, 0, 0, +190, 1, 0, 0,178, 1, 0, 0,180, 1, 0, 0, 0, 0, 0, 3,175, 1, 0, 0,191, 1, 0, 0,189, 1, 0, 0,177, 1, 0, 0, + 0, 0, 0, 3,190, 1, 0, 0,192, 1, 0, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 3,173, 1, 0, 0,191, 1, 0, 0, +175, 1, 0, 0,193, 1, 0, 0, 0, 0, 0, 3,176, 1, 0, 0,192, 1, 0, 0,174, 1, 0, 0,194, 1, 0, 0, 0, 0, 0, 3, +157, 1, 0, 0,173, 1, 0, 0,193, 1, 0, 0,159, 1, 0, 0, 0, 0, 0, 3,194, 1, 0, 0,174, 1, 0, 0,158, 1, 0, 0, +160, 1, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,191, 1, 0, 0,173, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 3,174, 1, 0, 0, +192, 1, 0, 0, 56, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,185, 1, 0, 0,189, 1, 0, 0,191, 1, 0, 0, + 0, 0, 0, 3,190, 1, 0, 0,186, 1, 0, 0, 56, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 3,185, 1, 0, 0,187, 1, 0, 0, +189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,190, 1, 0, 0,188, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, +159, 1, 0, 0,193, 1, 0, 0,195, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 3,196, 1, 0, 0,194, 1, 0, 0,160, 1, 0, 0, +220, 1, 0, 0, 0, 0, 0, 3,193, 1, 0, 0,175, 1, 0, 0,205, 1, 0, 0,195, 1, 0, 0, 0, 0, 0, 3,206, 1, 0, 0, +176, 1, 0, 0,194, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 3,175, 1, 0, 0,177, 1, 0, 0,203, 1, 0, 0,205, 1, 0, 0, + 0, 0, 0, 3,204, 1, 0, 0,178, 1, 0, 0,176, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 3,177, 1, 0, 0,179, 1, 0, 0, +201, 1, 0, 0,203, 1, 0, 0, 0, 0, 0, 3,202, 1, 0, 0,180, 1, 0, 0,178, 1, 0, 0,204, 1, 0, 0, 0, 0, 0, 3, +179, 1, 0, 0,181, 1, 0, 0,199, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 3,200, 1, 0, 0,182, 1, 0, 0,180, 1, 0, 0, +202, 1, 0, 0, 0, 0, 0, 3,181, 1, 0, 0,183, 1, 0, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 3,198, 1, 0, 0, +184, 1, 0, 0,182, 1, 0, 0,200, 1, 0, 0, 0, 0, 0, 3,183, 1, 0, 0,161, 1, 0, 0,217, 1, 0, 0,197, 1, 0, 0, + 0, 0, 0, 3,218, 1, 0, 0,162, 1, 0, 0,184, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 3,171, 1, 0, 0,159, 1, 0, 0, +219, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 3,220, 1, 0, 0,160, 1, 0, 0,172, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 3, +169, 1, 0, 0,171, 1, 0, 0,207, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 3,208, 1, 0, 0,172, 1, 0, 0,170, 1, 0, 0, +210, 1, 0, 0, 0, 0, 0, 3,167, 1, 0, 0,169, 1, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 3,210, 1, 0, 0, +170, 1, 0, 0,168, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,167, 1, 0, 0,211, 1, 0, 0,213, 1, 0, 0, + 0, 0, 0, 3,212, 1, 0, 0,168, 1, 0, 0,166, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 3,163, 1, 0, 0,165, 1, 0, 0, +213, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 3,214, 1, 0, 0,166, 1, 0, 0,164, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 3, +161, 1, 0, 0,163, 1, 0, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 3,216, 1, 0, 0,164, 1, 0, 0,162, 1, 0, 0, +218, 1, 0, 0, 0, 0, 0, 3,201, 1, 0, 0,199, 1, 0, 0,223, 1, 0, 0,221, 1, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, +200, 1, 0, 0,202, 1, 0, 0,222, 1, 0, 0, 0, 0, 0, 3,221, 1, 0, 0,223, 1, 0, 0,225, 1, 0, 0,227, 1, 0, 0, + 0, 0, 0, 3,226, 1, 0, 0,224, 1, 0, 0,222, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 3,227, 1, 0, 0,225, 1, 0, 0, +231, 1, 0, 0,229, 1, 0, 0, 0, 0, 0, 3,232, 1, 0, 0,226, 1, 0, 0,228, 1, 0, 0,230, 1, 0, 0, 0, 0, 0, 3, +229, 1, 0, 0,231, 1, 0, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 3,234, 1, 0, 0,232, 1, 0, 0,230, 1, 0, 0, +236, 1, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,219, 1, 0, 0,229, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 3,230, 1, 0, 0, +220, 1, 0, 0,208, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 3,195, 1, 0, 0,227, 1, 0, 0,229, 1, 0, 0,219, 1, 0, 0, + 0, 0, 0, 3,230, 1, 0, 0,228, 1, 0, 0,196, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 3,195, 1, 0, 0,205, 1, 0, 0, +221, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 3,222, 1, 0, 0,206, 1, 0, 0,196, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 3, +201, 1, 0, 0,221, 1, 0, 0,205, 1, 0, 0,203, 1, 0, 0, 0, 0, 0, 3,206, 1, 0, 0,222, 1, 0, 0,202, 1, 0, 0, +204, 1, 0, 0, 0, 0, 0, 3,197, 1, 0, 0,217, 1, 0, 0,223, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, +218, 1, 0, 0,198, 1, 0, 0,200, 1, 0, 0, 0, 0, 0, 3,215, 1, 0, 0,225, 1, 0, 0,223, 1, 0, 0,217, 1, 0, 0, + 0, 0, 0, 3,224, 1, 0, 0,226, 1, 0, 0,216, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,231, 1, 0, 0, +225, 1, 0, 0,215, 1, 0, 0, 0, 0, 0, 3,226, 1, 0, 0,232, 1, 0, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 3, +211, 1, 0, 0,233, 1, 0, 0,231, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 3,232, 1, 0, 0,234, 1, 0, 0,212, 1, 0, 0, +214, 1, 0, 0, 0, 0, 0, 3,209, 1, 0, 0,235, 1, 0, 0,233, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 3,234, 1, 0, 0, +236, 1, 0, 0,210, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,235, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,210, 1, 0, 0,236, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 1, 0, 0,133, 1, 0, 0, +247, 1, 0, 0,245, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0,134, 1, 0, 0,136, 1, 0, 0,246, 1, 0, 0, 0, 0, 0, 3, +137, 1, 0, 0,135, 1, 0, 0,245, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 3,246, 1, 0, 0,136, 1, 0, 0,138, 1, 0, 0, +244, 1, 0, 0, 0, 0, 0, 3,139, 1, 0, 0,137, 1, 0, 0,243, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 3,244, 1, 0, 0, +138, 1, 0, 0,140, 1, 0, 0,242, 1, 0, 0, 0, 0, 0, 3,141, 1, 0, 0,139, 1, 0, 0,241, 1, 0, 0,239, 1, 0, 0, + 0, 0, 0, 3,242, 1, 0, 0,140, 1, 0, 0,142, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,141, 1, 0, 0, +239, 1, 0, 0,237, 1, 0, 0, 0, 0, 0, 3,240, 1, 0, 0,142, 1, 0, 0,144, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 3, +131, 1, 0, 0,143, 1, 0, 0,237, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,238, 1, 0, 0,144, 1, 0, 0,132, 1, 0, 0, +250, 1, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,245, 1, 0, 0,247, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, +246, 1, 0, 0,238, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,239, 1, 0, 0,243, 1, 0, 0,245, 1, 0, 0, + 0, 0, 0, 3,244, 1, 0, 0,240, 1, 0, 0,238, 1, 0, 0,246, 1, 0, 0, 0, 0, 0, 3,239, 1, 0, 0,241, 1, 0, 0, +243, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,244, 1, 0, 0,242, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 57, 1, 0, 0,125, 1, 0, 0,131, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,132, 1, 0, 0,126, 1, 0, 0, 58, 1, 0, 0, +250, 1, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,249, 1, 0, 0,247, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, +250, 1, 0, 0, 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0, 65, 1, 0, 0,247, 1, 0, 0,133, 1, 0, 0, + 0, 0, 0, 3,248, 1, 0, 0, 66, 1, 0, 0, 64, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 3, 77, 69, 0, 0,176, 1, 0, 0, +216,240, 71, 27, 1, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0, 40,248, 71, 27, 1, 0, 0, 0, 72,232, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 77,111,110,107,101,121, 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,200,242, 71, 27, 1, 0, 0, 0, 56, 78,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56,246,108, 3, 1, 0, 0, 0, 56, 30,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,243, 71, 27, 1, 0, 0, 0, 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,200,244, 71, 27, 1, 0, 0, 0, 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,120,246, 71, 27, 1, 0, 0, 0, + 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, +251, 1, 0, 0,237, 3, 0, 0,244, 1, 0, 0, 0, 0, 0, 0,255,255,255,255, 1, 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, + 67, 0, 0, 0, 30, 0, 4, 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, 8, 0, 0, 0,200,242, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,188, 71, 27, 1, 0, 0, 0, + 68, 65, 84, 65,104, 1, 0, 0, 24,243, 71, 27, 1, 0, 0, 0, 93, 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, 56,246,108, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,156, 39, 0, 0, 56,246,108, 3, 1, 0, 0, 0, 52, 0, 0, 0,251, 1, 0, 0, 0, 0,224, 62, 0, 0, 40, 62, + 0, 0, 68, 63, 36, 93, 58,172, 64, 26, 1, 0, 0, 0,224,190, 0, 0, 40, 62, 0, 0, 68, 63,220,162, 58,172, 64, 26, 1, 0, + 0, 0, 0, 63, 0, 0,192, 61, 0, 0, 48, 63, 80, 77,177,190, 91, 78, 1, 0, 0, 0, 0,191, 0, 0,192, 61, 0, 0, 48, 63, +176,178,177,190, 91, 78, 1, 0, 0, 0, 12, 63, 0, 0, 96, 61, 0, 0, 20, 63,106, 87,237,185,228, 61, 1, 0, 0, 0, 12,191, + 0, 0, 96, 61, 0, 0, 20, 63,150,168,237,185,228, 61, 1, 0, 0, 0,180, 62, 0, 0,192,188, 0, 0, 30, 63,213, 14, 8,145, + 9, 62, 1, 0, 0, 0,180,190, 0, 0,192,188, 0, 0, 30, 63, 43,241, 8,145, 9, 62, 1, 0, 0, 0,180, 62, 0, 0, 0, 61, + 0, 0, 56, 63,146, 12,225,159,148, 83, 1, 0, 0, 0,180,190, 0, 0, 0, 61, 0, 0, 56, 63,110,243,225,159,148, 83, 1, 0, + 0, 0,180, 62, 0, 0, 8, 62, 0, 0, 72, 63,205, 4,122,132, 46, 33, 1, 0, 0, 0,180,190, 0, 0, 8, 62, 0, 0, 72, 63, + 51,251,122,132, 46, 33, 1, 0, 0, 0,140, 62, 0, 0, 40, 62, 0, 0, 76, 63, 30,172, 83,167,129, 38, 1, 0, 0, 0,140,190, + 0, 0, 40, 62, 0, 0, 76, 63,226, 83, 83,167,129, 38, 1, 0, 0, 0, 80, 62, 0, 0,192, 61, 0, 0, 62, 63, 58,198,248,186, +253, 90, 1, 0, 0, 0, 80,190, 0, 0,192, 61, 0, 0, 62, 63,198, 57,248,186,253, 90, 1, 0, 0, 0, 32, 62, 0, 0, 96, 61, + 0, 0, 38, 63,114,185,159,174, 37, 69, 1, 0, 0, 0, 32,190, 0, 0, 96, 61, 0, 0, 38, 63,142, 70,159,174, 37, 69, 1, 0, + 0, 0,160, 61, 0, 0,120, 62, 0, 0, 40, 63,182,151,132,255, 51, 74, 1, 0, 0, 0,160,189, 0, 0,120, 62, 0, 0, 40, 63, + 74,104,132,255, 51, 74, 1, 0, 0, 0, 16, 62, 0, 0,120, 62, 0, 0, 62, 63, 44,167,141,255, 38, 92, 1, 0, 0, 0, 16,190, + 0, 0,120, 62, 0, 0, 62, 63,212, 88,141,255, 38, 92, 1, 0, 0, 0,120, 62, 0, 0,120, 62, 0, 0, 76, 63,233,134, 91,254, +110, 41, 1, 0, 0, 0,120,190, 0, 0,120, 62, 0, 0, 76, 63, 23,121, 91,254,110, 41, 1, 0, 0, 0,140, 62, 0, 0,168, 62, + 0, 0, 76, 63, 63,171,127, 88,251, 36, 1, 0, 0, 0,140,190, 0, 0,168, 62, 0, 0, 76, 63,193, 84,127, 88,251, 36, 1, 0, + 0, 0, 80, 62, 0, 0,200, 62, 0, 0, 62, 63,191,197, 53, 67, 11, 92, 1, 0, 0, 0, 80,190, 0, 0,200, 62, 0, 0, 62, 63, + 65, 58, 53, 67, 11, 92, 1, 0, 0, 0, 32, 62, 0, 0,224, 62, 0, 0, 38, 63, 49,188, 51, 80, 41, 73, 1, 0, 0, 0, 32,190, + 0, 0,224, 62, 0, 0, 38, 63,207, 67, 51, 80, 41, 73, 1, 0, 0, 0,180, 62, 0, 0, 4, 63, 0, 0, 30, 63,171, 15, 44,107, + 51, 68, 1, 0, 0, 0,180,190, 0, 0, 4, 63, 0, 0, 30, 63, 85,240, 44,107, 51, 68, 1, 0, 0, 0,180, 62, 0, 0,232, 62, + 0, 0, 56, 63, 10, 13,188, 94, 19, 85, 1, 0, 0, 0,180,190, 0, 0,232, 62, 0, 0, 56, 63,246,242,188, 94, 19, 85, 1, 0, + 0, 0,180, 62, 0, 0,184, 62, 0, 0, 72, 63, 27, 4, 73,124, 81, 30, 1, 0, 0, 0,180,190, 0, 0,184, 62, 0, 0, 72, 63, +229,251, 73,124, 81, 30, 1, 0, 0, 0,224, 62, 0, 0,168, 62, 0, 0, 68, 63,179, 93,140, 83,243, 24, 1, 0, 0, 0,224,190, + 0, 0,168, 62, 0, 0, 68, 63, 77,162,140, 83,243, 24, 1, 0, 0, 0, 0, 63, 0, 0,200, 62, 0, 0, 48, 63,225, 77, 89, 63, +101, 79, 1, 0, 0, 0, 0,191, 0, 0,200, 62, 0, 0, 48, 63, 31,178, 89, 63,101, 79, 1, 0, 0, 0, 12, 63, 0, 0,224, 62, + 0, 0, 20, 63, 10, 86,225, 68, 20, 65, 1, 0, 0, 0, 12,191, 0, 0,224, 62, 0, 0, 20, 63,246,169,225, 68, 20, 65, 1, 0, + 0, 0, 32, 63, 0, 0,120, 62, 0, 0, 16, 63, 39,111,149,255,117, 63, 1, 0, 0, 0, 32,191, 0, 0,120, 62, 0, 0, 16, 63, +217,144,149,255,117, 63, 1, 0, 0, 0, 16, 63, 0, 0,120, 62, 0, 0, 44, 63,169,102,145,255,112, 76, 1, 0, 0, 0, 16,191, + 0, 0,120, 62, 0, 0, 44, 63, 87,153,145,255,112, 76, 1, 0, 0, 0,240, 62, 0, 0,120, 62, 0, 0, 66, 63, 36,125,151,254, +216, 26, 1, 0, 0, 0,240,190, 0, 0,120, 62, 0, 0, 66, 63,220,130,151,254,216, 26, 1, 0, 0, 0,244, 62, 0, 0,120, 62, + 0, 0, 70, 63,162,124,112,254, 23, 29, 1, 0, 0, 0,244,190, 0, 0,120, 62, 0, 0, 70, 63, 94,131,112,254, 23, 29, 1, 0, + 0, 0,228, 62, 0, 0,172, 62, 0, 0, 72, 63,105, 92, 46, 83,100, 30, 1, 0, 0, 0,228,190, 0, 0,172, 62, 0, 0, 72, 63, +151,163, 46, 83,100, 30, 1, 0, 0, 0,180, 62, 0, 0,192, 62, 0, 0, 78, 63,203, 4,126,119,158, 45, 1, 0, 0, 0,180,190, + 0, 0,192, 62, 0, 0, 78, 63, 53,251,126,119,158, 45, 1, 0, 0, 0,136, 62, 0, 0,172, 62, 0, 0, 82, 63,213,175,209, 82, +166, 55, 1, 0, 0, 0,136,190, 0, 0,172, 62, 0, 0, 82, 63, 43, 80,209, 82,166, 55, 1, 0, 0, 0,104, 62, 0, 0,120, 62, + 0, 0, 82, 63, 93,139,110,254,175, 52, 1, 0, 0, 0,104,190, 0, 0,120, 62, 0, 0, 82, 63,163,116,110,254,175, 52, 1, 0, + 0, 0,136, 62, 0, 0, 32, 62, 0, 0, 82, 63,226,176, 82,172,220, 55, 1, 0, 0, 0,136,190, 0, 0, 32, 62, 0, 0, 82, 63, + 30, 79, 82,172,220, 55, 1, 0, 0, 0,180, 62, 0, 0,120, 62, 0, 0, 84, 63,128, 23, 82,255,209,125, 1, 0, 0, 0,180,190, + 0, 0,120, 62, 0, 0, 84, 63,128,232, 82,255,209,125, 1, 0, 0, 0,180, 62, 0, 0,240, 61, 0, 0, 78, 63,186, 4, 80,136, + 27, 45, 1, 0, 0, 0,180,190, 0, 0,240, 61, 0, 0, 78, 63, 70,251, 80,136, 27, 45, 1, 0, 0, 0,228, 62, 0, 0, 32, 62, + 0, 0, 72, 63,134, 91,236,171,153, 30, 1, 0, 0, 0,228,190, 0, 0, 32, 62, 0, 0, 72, 63,122,164,236,171,153, 30, 1, 0, + 0, 0, 0, 0, 0, 0,220, 62, 0, 0, 62, 63, 0, 0,209,122, 10, 36, 1, 0, 0, 0, 0, 0, 0, 0,180, 62, 0, 0, 82, 63, + 0, 0,235,252,245,127, 1, 0, 0, 0, 0, 0, 0, 0, 46,191, 0, 0, 60, 63, 0, 0,159,251,235,127, 1, 0, 0, 0, 0, 0, + 0, 0,164,190, 0, 0, 72, 63, 0, 0, 65,146,221, 65, 1, 0, 0, 0, 0, 0, 0, 0, 64,190, 0, 0, 76, 63, 0, 0,125,100, + 70, 79, 1, 0, 0, 0, 0, 0, 0, 0, 70,191, 0, 0, 56, 63, 0, 0,104,140,246, 54, 1, 0, 0, 0, 0, 0, 0, 0,208, 62, + 0, 0, 26, 63, 0, 0,143,112,238, 60, 1, 0, 0, 0, 0, 0, 0, 0, 18, 63, 0, 0, 18, 63, 0, 0,104, 79, 98,100, 1, 0, + 0, 0, 0, 0, 0, 0,102, 63, 0, 0, 12,191, 0, 0,144,106, 25,185, 1, 0, 0, 0, 0, 0, 0, 0, 16, 63, 0, 0, 90,191, + 0, 0, 51, 40,124,134, 1, 0, 0, 0, 0, 0, 0, 0,144, 61, 0, 0, 84,191, 0, 0,140,217,235,133, 1, 0, 0, 0, 0, 0, + 0, 0,196,190, 0, 0,180,190, 0, 0,143,135,174,212, 1, 0, 0, 0, 80, 62, 0, 0, 64,190, 0, 0, 16, 63,224,115, 50,206, +203, 21, 1, 0, 0, 0, 80,190, 0, 0, 64,190, 0, 0, 16, 63, 32,140, 50,206,203, 21, 1, 0, 0, 0,160, 62, 0, 0,224,190, + 0, 0, 18, 63,136,123, 6, 28, 94, 18, 1, 0, 0, 0,160,190, 0, 0,224,190, 0, 0, 18, 63,120,132, 6, 28, 94, 18, 1, 0, + 0, 0,180, 62, 0, 0, 50,191, 0, 0, 18, 63,229,124, 36, 12, 56, 25, 1, 0, 0, 0,180,190, 0, 0, 50,191, 0, 0, 18, 63, + 27,131, 36, 12, 56, 25, 1, 0, 0, 0,188, 62, 0, 0,100,191, 0, 0, 8, 63, 26,124, 38,237, 2, 25, 1, 0, 0, 0,188,190, + 0, 0,100,191, 0, 0, 8, 63,230,131, 38,237, 2, 25, 1, 0, 0, 0,168, 62, 0, 0,114,191, 0, 0, 6, 63,185, 83, 15,161, +241, 18, 1, 0, 0, 0,168,190, 0, 0,114,191, 0, 0, 6, 63, 71,172, 15,161,241, 18, 1, 0, 0, 0, 56, 62, 0, 0,120,191, + 0, 0, 14, 63, 45, 20, 69,131,109, 20, 1, 0, 0, 0, 56,190, 0, 0,120,191, 0, 0, 14, 63,211,235, 69,131,109, 20, 1, 0, + 0, 0, 0, 0, 0, 0,124,191, 0, 0, 20, 63, 0, 0,219,130,219, 26, 1, 0, 0, 0,224, 62, 0, 0, 16,190, 0, 0, 8, 63, + 38, 46,194,136,209, 5, 1, 0, 0, 0,224,190, 0, 0, 16,190, 0, 0, 8, 63,218,209,194,136,209, 5, 1, 0, 0, 0, 34, 63, + 0, 0, 32,189, 0, 0, 10, 63, 96, 75,200,154, 89, 21, 1, 0, 0, 0, 34,191, 0, 0, 32,189, 0, 0, 10, 63,160,180,200,154, + 89, 21, 1, 0, 0, 0, 84, 63, 0, 0, 24, 62, 0, 0,228, 62,208,116,116,204, 17,247, 1, 0, 0, 0, 84,191, 0, 0, 24, 62, + 0, 0,228, 62, 48,139,116,204, 17,247, 1, 0, 0, 0, 92, 63, 0, 0,220, 62, 0, 0, 24, 63,167,112, 64, 54, 93, 27, 1, 0, + 0, 0, 92,191, 0, 0,220, 62, 0, 0, 24, 63, 89,143, 64, 54, 93, 27, 1, 0, 0, 0, 54, 63, 0, 0,248, 62, 0, 0, 32, 63, + 70, 65,159,106,113, 27, 1, 0, 0, 0, 54,191, 0, 0,248, 62, 0, 0, 32, 63,186,190,159,106,113, 27, 1, 0, 0, 0,252, 62, + 0, 0, 26, 63, 0, 0, 48, 63,131, 76, 82,100,139, 21, 1, 0, 0, 0,252,190, 0, 0, 26, 63, 0, 0, 48, 63,125,179, 82,100, +139, 21, 1, 0, 0, 0,164, 62, 0, 0, 66, 63, 0, 0, 60, 63, 56, 29,185,122,159, 21, 1, 0, 0, 0,164,190, 0, 0, 66, 63, + 0, 0, 60, 63,200,226,185,122,159, 21, 1, 0, 0, 0, 32, 62, 0, 0, 56, 63, 0, 0, 66, 63, 95,179,127, 99,180, 24, 1, 0, + 0, 0, 32,190, 0, 0, 56, 63, 0, 0, 66, 63,161, 76,127, 99,180, 24, 1, 0, 0, 0,128, 61, 0, 0,252, 62, 0, 0, 64, 63, +169,154,155, 74, 94, 23, 1, 0, 0, 0,128,189, 0, 0,252, 62, 0, 0, 64, 63, 87,101,155, 74, 94, 23, 1, 0, 0, 0, 40, 62, + 0, 0,212, 62, 0, 0, 70, 63,248, 33,229,229,156,120, 1, 0, 0, 0, 40,190, 0, 0,212, 62, 0, 0, 70, 63, 8,222,229,229, +156,120, 1, 0, 0, 0, 0, 62, 0, 0,156, 62, 0, 0, 68, 63,162, 3,150,230,100,125, 1, 0, 0, 0, 0,190, 0, 0,156, 62, + 0, 0, 68, 63, 94,252,150,230,100,125, 1, 0, 0, 0, 80, 62, 0, 0,192, 61, 0, 0, 62, 63,187,238,137,228,208,123, 1, 0, + 0, 0, 80,190, 0, 0,192, 61, 0, 0, 62, 63, 69, 17,137,228,208,123, 1, 0, 0, 0,192, 62, 0, 0,128, 60, 0, 0, 52, 63, +194, 39,112,212,152,113, 1, 0, 0, 0,192,190, 0, 0,128, 60, 0, 0, 52, 63, 62,216,112,212,152,113, 1, 0, 0, 0,252, 62, + 0, 0,128, 61, 0, 0, 44, 63,176, 53,101,207,137,105, 1, 0, 0, 0,252,190, 0, 0,128, 61, 0, 0, 44, 63, 80,202,101,207, +137,105, 1, 0, 0, 0, 32, 63, 0, 0, 64, 62, 0, 0, 38, 63,129, 56,167,229,200,111, 1, 0, 0, 0, 32,191, 0, 0, 64, 62, + 0, 0, 38, 63,127,199,167,229,200,111, 1, 0, 0, 0, 36, 63, 0, 0,152, 62, 0, 0, 38, 63,117, 46,213,228, 33,116, 1, 0, + 0, 0, 36,191, 0, 0,152, 62, 0, 0, 38, 63,139,209,213,228, 33,116, 1, 0, 0, 0, 26, 63, 0, 0,192, 62, 0, 0, 42, 63, +228, 30,190,216,216,117, 1, 0, 0, 0, 26,191, 0, 0,192, 62, 0, 0, 42, 63, 28,225,190,216,216,117, 1, 0, 0, 0,220, 62, + 0, 0,224, 62, 0, 0, 56, 63, 82, 25,170,254,117,125, 1, 0, 0, 0,220,190, 0, 0,224, 62, 0, 0, 56, 63,174,230,170,254, +117,125, 1, 0, 0, 0,128, 62, 0, 0,240, 62, 0, 0, 66, 63, 13, 34,233,239, 84,122, 1, 0, 0, 0,128,190, 0, 0,240, 62, + 0, 0, 66, 63,243,221,233,239, 84,122, 1, 0, 0, 0, 0, 0, 0, 0, 68,191, 0, 0, 60, 63, 0, 0,130,201,209,115, 1, 0, + 0, 0,224, 61, 0, 0, 56,191, 0, 0, 60, 63,244, 19, 41,234,135,124, 1, 0, 0, 0,224,189, 0, 0, 56,191, 0, 0, 60, 63, + 12,236, 41,234,135,124, 1, 0, 0, 0,240, 61, 0, 0, 86,191, 0, 0, 54, 63,102, 11,172,214,154,120, 1, 0, 0, 0,240,189, + 0, 0, 86,191, 0, 0, 54, 63,154,244,172,214,154,120, 1, 0, 0, 0,128, 61, 0, 0, 98,191, 0, 0, 50, 63,198,252, 75,203, +152,116, 1, 0, 0, 0,128,189, 0, 0, 98,191, 0, 0, 50, 63, 58, 3, 75,203,152,116, 1, 0, 0, 0, 0, 0, 0, 0,100,191, + 0, 0, 48, 63, 0, 0,154,213,196,120, 1, 0, 0, 0, 0, 0, 0, 0, 72,190, 0, 0, 64, 63, 0, 0, 46, 97, 76, 83, 1, 0, + 0, 0, 0, 0, 0, 0, 16,190, 0, 0, 62, 63, 0, 0,220, 72, 59,105, 1, 0, 0, 0,208, 61, 0, 0, 24,190, 0, 0, 62, 63, + 91, 32,137, 44,141,115, 1, 0, 0, 0,208,189, 0, 0, 24,190, 0, 0, 62, 63,165,223,137, 44,141,115, 1, 0, 0, 0, 0, 62, + 0, 0,104,190, 0, 0, 64, 63, 91, 92, 85,209, 85, 75, 1, 0, 0, 0, 0,190, 0, 0,104,190, 0, 0, 64, 63,165,163, 85,209, + 85, 75, 1, 0, 0, 0,176, 61, 0, 0,148,190, 0, 0, 62, 63,153, 63, 63,200, 17, 96, 1, 0, 0, 0,176,189, 0, 0,148,190, + 0, 0, 62, 63,103,192, 63,200, 17, 96, 1, 0, 0, 0,204, 62, 0, 0, 64,189, 0, 0, 44, 63,192, 48,193,189, 17, 98, 1, 0, + 0, 0,204,190, 0, 0, 64,189, 0, 0, 44, 63, 64,207,193,189, 17, 98, 1, 0, 0, 0, 30, 63, 0, 0, 96, 61, 0, 0, 32, 63, +214, 63,168,204, 87, 98, 1, 0, 0, 0, 30,191, 0, 0, 96, 61, 0, 0, 32, 63, 42,192,168,204, 87, 98, 1, 0, 0, 0, 58, 63, + 0, 0, 80, 62, 0, 0, 26, 63, 66, 70, 51,214,123, 98, 1, 0, 0, 0, 58,191, 0, 0, 80, 62, 0, 0, 26, 63,190,185, 51,214, +123, 98, 1, 0, 0, 0, 62, 63, 0, 0,192, 62, 0, 0, 40, 63,103, 62, 46,237, 39,110, 1, 0, 0, 0, 62,191, 0, 0,192, 62, + 0, 0, 40, 63,153,193, 46,237, 39,110, 1, 0, 0, 0, 48, 63, 0, 0,212, 62, 0, 0, 58, 63,188, 43,214,251, 56,120, 1, 0, + 0, 0, 48,191, 0, 0,212, 62, 0, 0, 58, 63, 68,212,214,251, 56,120, 1, 0, 0, 0,224, 62, 0, 0, 12, 63, 0, 0, 76, 63, + 53, 40, 29,252,116,121, 1, 0, 0, 0,224,190, 0, 0, 12, 63, 0, 0, 76, 63,203,215, 29,252,116,121, 1, 0, 0, 0,160, 62, + 0, 0, 36, 63, 0, 0, 86, 63,180, 34, 68, 27, 37,120, 1, 0, 0, 0,160,190, 0, 0, 36, 63, 0, 0, 86, 63, 76,221, 68, 27, + 37,120, 1, 0, 0, 0, 80, 62, 0, 0, 30, 63, 0, 0, 90, 63,250,234, 91, 20,154,124, 1, 0, 0, 0, 80,190, 0, 0, 30, 63, + 0, 0, 90, 63, 6, 21, 91, 20,154,124, 1, 0, 0, 0,208, 61, 0, 0,220, 62, 0, 0, 88, 63,170,246, 84,252,154,127, 1, 0, + 0, 0,208,189, 0, 0,220, 62, 0, 0, 88, 63, 86, 9, 84,252,154,127, 1, 0, 0, 0, 0, 62, 0, 0,208,189, 0, 0, 80, 63, +125, 8, 79,231, 77,125, 1, 0, 0, 0, 0,190, 0, 0,208,189, 0, 0, 80, 63,131,247, 79,231, 77,125, 1, 0, 0, 0, 88, 62, + 0, 0,228,190, 0, 0, 54, 63, 41, 75, 84, 14,155,102, 1, 0, 0, 0, 88,190, 0, 0,228,190, 0, 0, 54, 63,215,180, 84, 14, +155,102, 1, 0, 0, 0,128, 62, 0, 0, 52,191, 0, 0, 48, 63,174, 72,200,251, 69,105, 1, 0, 0, 0,128,190, 0, 0, 52,191, + 0, 0, 48, 63, 82,183,200,251, 69,105, 1, 0, 0, 0,136, 62, 0, 0, 82,191, 0, 0, 42, 63, 39, 71, 91,228,189,102, 1, 0, + 0, 0,136,190, 0, 0, 82,191, 0, 0, 42, 63,217,184, 91,228,189,102, 1, 0, 0, 0,112, 62, 0, 0,106,191, 0, 0, 34, 63, +118, 46,217,176, 53, 89, 1, 0, 0, 0,112,190, 0, 0,106,191, 0, 0, 34, 63,138,209,217,176, 53, 89, 1, 0, 0, 0, 40, 62, + 0, 0,110,191, 0, 0, 34, 63,124, 21,143,159, 92, 81, 1, 0, 0, 0, 40,190, 0, 0,110,191, 0, 0, 34, 63,132,234,143,159, + 92, 81, 1, 0, 0, 0, 0, 0, 0, 0,114,191, 0, 0, 36, 63, 0, 0,155,154, 28, 78, 1, 0, 0, 0, 0, 0, 0, 0, 64, 61, + 0, 0, 58, 63, 0, 0,185, 1,252,127, 1, 0, 0, 0, 0, 0, 0, 0, 88, 62, 0, 0, 68, 63, 0, 0,102,227,194,124, 1, 0, + 0, 0,168, 62, 0, 0,244, 62, 0, 0, 62, 63, 20, 17,134,243, 60,126, 1, 0, 0, 0,168,190, 0, 0,244, 62, 0, 0, 62, 63, +236,238,134,243, 60,126, 1, 0, 0, 0, 40, 62, 0, 0, 16, 62, 0, 0, 64, 63, 69,216, 70,234,183,119, 1, 0, 0, 0, 40,190, + 0, 0, 16, 62, 0, 0, 64, 63,187, 39, 70,234,183,119, 1, 0, 0, 0, 8, 62, 0, 0, 88, 62, 0, 0, 66, 63, 55,235,111,230, +174,123, 1, 0, 0, 0, 8,190, 0, 0, 88, 62, 0, 0, 66, 63,201, 20,111,230,174,123, 1, 0, 0, 0,240, 61, 0, 0, 48,191, + 0, 0, 60, 63, 18, 23,153,248,174,125, 1, 0, 0, 0,240,189, 0, 0, 48,191, 0, 0, 60, 63,238,232,153,248,174,125, 1, 0, + 0, 0,160, 61, 0, 0,228,190, 0, 0, 64, 63,190, 17, 95, 0,194,126, 1, 0, 0, 0,160,189, 0, 0,228,190, 0, 0, 64, 63, + 66,238, 95, 0,194,126, 1, 0, 0, 0, 0, 0, 0, 0,228,190, 0, 0, 64, 63, 0, 0,122,255,254,127, 1, 0, 0, 0, 0, 0, + 0, 0,168,190, 0, 0, 62, 63, 0, 0,111,197,207,113, 1, 0, 0, 0,192, 61, 0, 0,140,190, 0, 0, 72, 63, 71, 74,123,162, + 9, 46, 1, 0, 0, 0,192,189, 0, 0,140,190, 0, 0, 72, 63,185,181,123,162, 9, 46, 1, 0, 0, 0, 8, 62, 0, 0,104,190, + 0, 0, 76, 63, 88,118,191,228,110, 40, 1, 0, 0, 0, 8,190, 0, 0,104,190, 0, 0, 76, 63,168,137,191,228,110, 40, 1, 0, + 0, 0,224, 61, 0, 0, 8,190, 0, 0, 72, 63,150, 79, 31, 99,242, 14, 1, 0, 0, 0,224,189, 0, 0, 8,190, 0, 0, 72, 63, +106,176, 31, 99,242, 14, 1, 0, 0, 0, 32, 61, 0, 0, 0,190, 0, 0, 72, 63, 95,217,134,120, 24, 19, 1, 0, 0, 0, 32,189, + 0, 0, 0,190, 0, 0, 72, 63,161, 38,134,120, 24, 19, 1, 0, 0, 0, 0, 0, 0, 0, 80,190, 0, 0, 84, 63, 0, 0,137, 14, + 42,127, 1, 0, 0, 0, 64, 61, 0, 0, 24,190, 0, 0, 80, 63,130,230, 5, 77,255, 98, 1, 0, 0, 0, 64,189, 0, 0, 24,190, + 0, 0, 80, 63,126, 25, 5, 77,255, 98, 1, 0, 0, 0,192, 61, 0, 0, 32,190, 0, 0, 80, 63,229, 46,209, 60,101,102, 1, 0, + 0, 0,192,189, 0, 0, 32,190, 0, 0, 80, 63, 27,209,209, 60,101,102, 1, 0, 0, 0,224, 61, 0, 0,104,190, 0, 0, 84, 63, +254, 54, 84,232, 32,113, 1, 0, 0, 0,224,189, 0, 0,104,190, 0, 0, 84, 63, 2,201, 84,232, 32,113, 1, 0, 0, 0,160, 61, + 0, 0,128,190, 0, 0, 78, 63, 59, 28,209,183,219,101, 1, 0, 0, 0,160,189, 0, 0,128,190, 0, 0, 78, 63,197,227,209,183, +219,101, 1, 0, 0, 0, 0, 0, 0, 0,148,190, 0, 0, 78, 63, 0, 0, 89,188,167,108, 1, 0, 0, 0,132, 62, 0, 0,160,190, + 0, 0, 14, 63, 32,120,156, 41,218, 14, 1, 0, 0, 0,132,190, 0, 0,160,190, 0, 0, 14, 63,224,135,156, 41,218, 14, 1, 0, + 0, 0, 40, 62, 0, 0,120,190, 0, 0, 54, 63, 27, 95,200, 3,147, 85, 1, 0, 0, 0, 40,190, 0, 0,120,190, 0, 0, 54, 63, +229,160,200, 3,147, 85, 1, 0, 0, 0, 56, 62, 0, 0,160,190, 0, 0, 54, 63,188, 82, 59, 18,241, 95, 1, 0, 0, 0, 56,190, + 0, 0,160,190, 0, 0, 54, 63, 68,173, 59, 18,241, 95, 1, 0, 0, 0,112, 62, 0, 0,128,190, 0, 0, 14, 63, 9,122, 11, 36, +207, 13, 1, 0, 0, 0,112,190, 0, 0,128,190, 0, 0, 14, 63,247,133, 11, 36,207, 13, 1, 0, 0, 0, 0, 0, 0, 0, 96,191, + 0, 0, 48, 63, 0, 0,198, 82,160, 97, 1, 0, 0, 0, 64, 61, 0, 0, 94,191, 0, 0, 48, 63,149,208,194, 69, 69, 96, 1, 0, + 0, 0, 64,189, 0, 0, 94,191, 0, 0, 48, 63,107, 47,194, 69, 69, 96, 1, 0, 0, 0,192, 61, 0, 0, 82,191, 0, 0, 54, 63, +197,172,223, 7,235, 96, 1, 0, 0, 0,192,189, 0, 0, 82,191, 0, 0, 54, 63, 59, 83,223, 7,235, 96, 1, 0, 0, 0,192, 61, + 0, 0, 62,191, 0, 0, 58, 63,104,241, 70,177,219, 99, 1, 0, 0, 0,192,189, 0, 0, 62,191, 0, 0, 58, 63,152, 14, 70,177, +219, 99, 1, 0, 0, 0, 0, 0, 0, 0, 72,191, 0, 0, 40, 63, 0, 0,141,166,141, 91, 1, 0, 0, 0,192, 61, 0, 0, 64,191, + 0, 0, 42, 63,233,189,224,165, 99, 62, 1, 0, 0, 0,192,189, 0, 0, 64,191, 0, 0, 42, 63, 23, 66,224,165, 99, 62, 1, 0, + 0, 0,192, 61, 0, 0, 80,191, 0, 0, 36, 63,160,169,174, 14, 78, 93, 1, 0, 0, 0,192,189, 0, 0, 80,191, 0, 0, 36, 63, + 96, 86,174, 14, 78, 93, 1, 0, 0, 0, 64, 61, 0, 0, 90,191, 0, 0, 34, 63, 30,214,188, 60,151,104, 1, 0, 0, 0, 64,189, + 0, 0, 90,191, 0, 0, 34, 63,226, 41,188, 60,151,104, 1, 0, 0, 0, 0, 0, 0, 0, 92,191, 0, 0, 34, 63, 0, 0,177, 67, +161,108, 1, 0, 0, 0, 48, 62, 0, 0, 96, 62, 0, 0, 72, 63, 27, 21,134,244,184,125, 1, 0, 0, 0, 48,190, 0, 0, 96, 62, + 0, 0, 72, 63,229,234,134,244,184,125, 1, 0, 0, 0, 64, 62, 0, 0, 32, 62, 0, 0, 70, 63,210,253, 49,248,189,127, 1, 0, + 0, 0, 64,190, 0, 0, 32, 62, 0, 0, 70, 63, 46, 2, 49,248,189,127, 1, 0, 0, 0,172, 62, 0, 0,220, 62, 0, 0, 66, 63, + 53, 21,115, 14,101,125, 1, 0, 0, 0,172,190, 0, 0,220, 62, 0, 0, 66, 63,203,234,115, 14,101,125, 1, 0, 0, 0,140, 62, + 0, 0,216, 62, 0, 0, 70, 63,103, 23,178, 4,192,125, 1, 0, 0, 0,140,190, 0, 0,216, 62, 0, 0, 70, 63,153,232,178, 4, +192,125, 1, 0, 0, 0,216, 62, 0, 0,204, 62, 0, 0, 70, 63, 38, 22,205,241, 67,125, 1, 0, 0, 0,216,190, 0, 0,204, 62, + 0, 0, 70, 63,218,233,205,241, 67,125, 1, 0, 0, 0, 16, 63, 0, 0,180, 62, 0, 0, 50, 63, 51, 39, 96, 4,196,121, 1, 0, + 0, 0, 16,191, 0, 0,180, 62, 0, 0, 50, 63,205,216, 96, 4,196,121, 1, 0, 0, 0, 22, 63, 0, 0,148, 62, 0, 0, 48, 63, +238, 23,158,247,117,125, 1, 0, 0, 0, 22,191, 0, 0,148, 62, 0, 0, 48, 63, 18,232,158,247,117,125, 1, 0, 0, 0, 20, 63, + 0, 0, 72, 62, 0, 0, 46, 63, 69, 38, 13,244,142,121, 1, 0, 0, 0, 20,191, 0, 0, 72, 62, 0, 0, 46, 63,187,217, 13,244, +142,121, 1, 0, 0, 0,244, 62, 0, 0,208, 61, 0, 0, 56, 63,148, 36,144,250,137,122, 1, 0, 0, 0,244,190, 0, 0,208, 61, + 0, 0, 56, 63,108,219,144,250,137,122, 1, 0, 0, 0,192, 62, 0, 0,128, 61, 0, 0, 62, 63,146, 25,123,229,148,122, 1, 0, + 0, 0,192,190, 0, 0,128, 61, 0, 0, 62, 63,110,230,123,229,148,122, 1, 0, 0, 0,104, 62, 0, 0,224, 61, 0, 0, 72, 63, +166, 1, 8,236,106,126, 1, 0, 0, 0,104,190, 0, 0,224, 61, 0, 0, 72, 63, 90,254, 8,236,106,126, 1, 0, 0, 0, 56, 62, + 0, 0,152, 62, 0, 0, 72, 63, 48, 30, 16,242,153,123, 1, 0, 0, 0, 56,190, 0, 0,152, 62, 0, 0, 72, 63,208,225, 16,242, +153,123, 1, 0, 0, 0, 88, 62, 0, 0,192, 62, 0, 0, 72, 63,232, 20, 76,245,210,125, 1, 0, 0, 0, 88,190, 0, 0,192, 62, + 0, 0, 72, 63, 24,235, 76,245,210,125, 1, 0, 0, 0,112, 62, 0, 0,184, 62, 0, 0, 66, 63, 31, 64,221,206, 71, 99, 1, 0, + 0, 0,112,190, 0, 0,184, 62, 0, 0, 66, 63,225,191,221,206, 71, 99, 1, 0, 0, 0, 72, 62, 0, 0,152, 62, 0, 0, 66, 63, +138, 95,174,228,172, 80, 1, 0, 0, 0, 72,190, 0, 0,152, 62, 0, 0, 66, 63,118,160,174,228,172, 80, 1, 0, 0, 0,120, 62, + 0, 0, 0, 62, 0, 0, 66, 63, 84, 54,203, 71,250, 90, 1, 0, 0, 0,120,190, 0, 0, 0, 62, 0, 0, 66, 63,172,201,203, 71, +250, 90, 1, 0, 0, 0,192, 62, 0, 0,176, 61, 0, 0, 58, 63, 14, 19,134, 78, 67, 99, 1, 0, 0, 0,192,190, 0, 0,176, 61, + 0, 0, 58, 63,242,236,134, 78, 67, 99, 1, 0, 0, 0,236, 62, 0, 0,240, 61, 0, 0, 52, 63, 93,245, 83, 69, 17,107, 1, 0, + 0, 0,236,190, 0, 0,240, 61, 0, 0, 52, 63,163, 10, 83, 69, 17,107, 1, 0, 0, 0, 12, 63, 0, 0, 88, 62, 0, 0, 44, 63, + 97,223,176, 28,101,120, 1, 0, 0, 0, 12,191, 0, 0, 88, 62, 0, 0, 44, 63,159, 32,176, 28,101,120, 1, 0, 0, 0, 14, 63, + 0, 0,144, 62, 0, 0, 44, 63,148,210,138,239,134,118, 1, 0, 0, 0, 14,191, 0, 0,144, 62, 0, 0, 44, 63,108, 45,138,239, +134,118, 1, 0, 0, 0, 8, 63, 0, 0,172, 62, 0, 0, 46, 63, 33,231, 38,177,180, 97, 1, 0, 0, 0, 8,191, 0, 0,172, 62, + 0, 0, 46, 63,223, 24, 38,177,180, 97, 1, 0, 0, 0,212, 62, 0, 0,200, 62, 0, 0, 64, 63, 18,238,118,158,234, 80, 1, 0, + 0, 0,212,190, 0, 0,200, 62, 0, 0, 64, 63,238, 17,118,158,234, 80, 1, 0, 0, 0,144, 62, 0, 0,204, 62, 0, 0, 68, 63, + 52, 39, 21,212,166,113, 1, 0, 0, 0,144,190, 0, 0,204, 62, 0, 0, 68, 63,204,216, 21,212,166,113, 1, 0, 0, 0,172, 62, + 0, 0,208, 62, 0, 0, 64, 63, 69, 0,155,192, 49,111, 1, 0, 0, 0,172,190, 0, 0,208, 62, 0, 0, 64, 63,187,255,155,192, + 49,111, 1, 0, 0, 0, 80, 62, 0, 0, 48, 62, 0, 0, 64, 63,255, 87, 17, 38,203, 84, 1, 0, 0, 0, 80,190, 0, 0, 48, 62, + 0, 0, 64, 63, 1,168, 17, 38,203, 84, 1, 0, 0, 0, 72, 62, 0, 0,104, 62, 0, 0, 64, 63, 16,103,234, 1,224, 75, 1, 0, + 0, 0, 72,190, 0, 0,104, 62, 0, 0, 64, 63,240,152,234, 1,224, 75, 1, 0, 0, 0,224, 61, 0, 0,236, 62, 0, 0, 28, 63, +106,191, 91,110,188, 5, 1, 0, 0, 0,224,189, 0, 0,236, 62, 0, 0, 28, 63,150, 64, 91,110,188, 5, 1, 0, 0, 0, 72, 62, + 0, 0, 42, 63, 0, 0, 30, 63,242,194, 70, 65, 98,164, 1, 0, 0, 0, 72,190, 0, 0, 42, 63, 0, 0, 30, 63, 14, 61, 70, 65, + 98,164, 1, 0, 0, 0,172, 62, 0, 0, 48, 63, 0, 0, 24, 63,171, 14,231, 83,118,160, 1, 0, 0, 0,172,190, 0, 0, 48, 63, + 0, 0, 24, 63, 85,241,231, 83,118,160, 1, 0, 0, 0,248, 62, 0, 0, 14, 63, 0, 0, 14, 63,121, 39,247,116, 47,222, 1, 0, + 0, 0,248,190, 0, 0, 14, 63, 0, 0, 14, 63,135,216,247,116, 47,222, 1, 0, 0, 0, 46, 63, 0, 0,232, 62, 0, 0,252, 62, +252, 44, 81,116, 54,227, 1, 0, 0, 0, 46,191, 0, 0,232, 62, 0, 0,252, 62, 4,211, 81,116, 54,227, 1, 0, 0, 0, 76, 63, + 0, 0,208, 62, 0, 0,236, 62,158, 94,220, 76,251,216, 1, 0, 0, 0, 76,191, 0, 0,208, 62, 0, 0,236, 62, 98,161,220, 76, +251,216, 1, 0, 0, 0, 70, 63, 0, 0, 40, 62, 0, 0,192, 62, 59,120,187,216, 97,236, 1, 0, 0, 0, 70,191, 0, 0, 40, 62, + 0, 0,192, 62,197,135,187,216, 97,236, 1, 0, 0, 0, 26, 63, 0, 0, 0, 0, 0, 0,212, 62,213, 73, 49,152,144,243, 1, 0, + 0, 0, 26,191, 0, 0, 0, 0, 0, 0,212, 62, 43,182, 49,152,144,243, 1, 0, 0, 0,224, 62, 0, 0,192,189, 0, 0,240, 62, + 61, 56,195,141,255,242, 1, 0, 0, 0,224,190, 0, 0,192,189, 0, 0,240, 62,195,199,195,141,255,242, 1, 0, 0, 0, 0, 0, + 0, 0,102, 63, 0, 0,148, 62, 0, 0,207,105, 5, 72, 1, 0, 0, 0, 0, 0, 0, 0,124, 63, 0, 0,160,189, 0, 0,246,127, +248, 2, 1, 0, 0, 0, 0, 0, 0, 0, 72,190, 0, 0, 44,191, 0, 0,213,166, 46,164, 1, 0, 0, 0, 0, 0, 0, 0,236,190, + 0, 0, 64, 62, 0, 0,195,129,226,234, 1, 0, 0, 0, 0, 0, 0, 0,122,191, 0, 0,236, 62, 0, 0, 26,147,190,188, 1, 0, + 0, 0, 0, 0, 0, 0, 78,191, 0, 0,176, 62, 0, 0,226,217,208,133, 1, 0, 0, 0, 0, 0, 0, 0, 18,191, 0, 0,164, 62, + 0, 0, 83,215,164,134, 1, 0, 0, 0, 0, 0, 0, 0,248,190, 0, 0,144, 62, 0, 0,243,152, 22,180, 1, 0, 0, 0, 90, 63, + 0, 0,112, 62, 0, 0, 96, 61,243,124, 39,230, 19, 10, 1, 0, 0, 0, 90,191, 0, 0,112, 62, 0, 0, 96, 61, 13,131, 39,230, + 19, 10, 1, 0, 0, 0, 92, 63, 0, 0,164, 62, 0, 0, 64,189,220,127, 45,250,202, 0, 1, 0, 0, 0, 92,191, 0, 0,164, 62, + 0, 0, 64,189, 36,128, 45,250,202, 0, 1, 0, 0, 0, 70, 63, 0, 0,136, 62, 0, 0,224,190, 32, 80,174,252, 62,156, 1, 0, + 0, 0, 70,191, 0, 0,136, 62, 0, 0,224,190,224,175,174,252, 62,156, 1, 0, 0, 0,236, 62, 0, 0,224, 62, 0, 0, 52,191, + 9, 58, 51, 25,189,144, 1, 0, 0, 0,236,190, 0, 0,224, 62, 0, 0, 52,191,247,197, 51, 25,189,144, 1, 0, 0, 0, 60, 63, + 0, 0, 64,189, 0, 0,144, 61,139, 91, 11,167,108, 9, 1, 0, 0, 0, 60,191, 0, 0, 64,189, 0, 0,144, 61,117,164, 11,167, +108, 9, 1, 0, 0, 0, 24, 63, 0, 0, 0,190, 0, 0, 40,190, 32, 35, 32,133,239,248, 1, 0, 0, 0, 24,191, 0, 0, 0,190, + 0, 0, 40,190,224,220, 32,133,239,248, 1, 0, 0, 0, 36, 63, 0, 0, 0,188, 0, 0,220,190,117, 51, 16,177, 97,169, 1, 0, + 0, 0, 36,191, 0, 0, 0,188, 0, 0,220,190,139,204, 16,177, 97,169, 1, 0, 0, 0,172, 62, 0, 0, 96, 61, 0, 0, 42,191, + 58, 54,135,214,188,147, 1, 0, 0, 0,172,190, 0, 0, 96, 61, 0, 0, 42,191,198,201,135,214,188,147, 1, 0, 0, 0,112, 62, + 0, 0,180,190, 0, 0,208, 62,229,122,202,255, 60,220, 1, 0, 0, 0,112,190, 0, 0,180,190, 0, 0,208, 62, 27,133,202,255, + 60,220, 1, 0, 0, 0, 56, 62, 0, 0,212,190, 0, 0,132, 62,236, 92,238,180, 10,210, 1, 0, 0, 0, 56,190, 0, 0,212,190, + 0, 0,132, 62, 20,163,238,180, 10,210, 1, 0, 0, 0,148, 62, 0, 0, 54,191, 0, 0,196, 62,138, 77,170, 2, 52,154, 1, 0, + 0, 0,148,190, 0, 0, 54,191, 0, 0,196, 62,118,178,170, 2, 52,154, 1, 0, 0, 0,128, 62, 0, 0, 0,191, 0, 0,200, 62, +103, 99,206,254, 97,175, 1, 0, 0, 0,128,190, 0, 0, 0,191, 0, 0,200, 62,153,156,206,254, 97,175, 1, 0, 0, 0,168, 62, + 0, 0,106,191, 0, 0,204, 62,129, 71, 28,196, 90,168, 1, 0, 0, 0,168,190, 0, 0,106,191, 0, 0,204, 62,127,184, 28,196, + 90,168, 1, 0, 0, 0, 16, 62, 0, 0, 66,191, 0, 0,188, 62,141, 16, 26,233, 42,131, 1, 0, 0, 0, 16,190, 0, 0, 66,191, + 0, 0,188, 62,115,239, 26,233, 42,131, 1, 0, 0, 0, 0, 62, 0, 0, 10,191, 0, 0,184, 62, 50, 43,143,223,247,139, 1, 0, + 0, 0, 0,190, 0, 0, 10,191, 0, 0,184, 62,206,212,143,223,247,139, 1, 0, 0, 0, 40, 62, 0, 0,114,191, 0, 0,224, 62, +181, 12,181,157, 3,175, 1, 0, 0, 0, 40,190, 0, 0,114,191, 0, 0,224, 62, 75,243,181,157, 3,175, 1, 0, 0, 0, 96, 62, + 0, 0,144,190, 0, 0,220, 62,142,124,137,226, 5, 0, 1, 0, 0, 0, 96,190, 0, 0,144,190, 0, 0,220, 62,114,131,137,226, + 5, 0, 1, 0, 0, 0, 88, 62, 0, 0,104,190, 0, 0,240, 62, 18,122,107,230,193, 28, 1, 0, 0, 0, 88,190, 0, 0,104,190, + 0, 0,240, 62,238,133,107,230,193, 28, 1, 0, 0, 0, 80, 62, 0, 0, 48,190, 0, 0, 0, 63, 49,104, 11,185, 42, 22, 1, 0, + 0, 0, 80,190, 0, 0, 48,190, 0, 0, 0, 63,207,151, 11,185, 42, 22, 1, 0, 0, 0, 88, 62, 0, 0,200,190, 0, 0, 40, 62, + 91, 75,146,152,161,253, 1, 0, 0, 0, 88,190, 0, 0,200,190, 0, 0, 40, 62,165,180,146,152,161,253, 1, 0, 0, 0,152, 62, + 0, 0,160,190, 0, 0,136,190,187, 66, 88,150, 83,228, 1, 0, 0, 0,152,190, 0, 0,160,190, 0, 0,136,190, 69,189, 88,150, + 83,228, 1, 0, 0, 0,176, 62, 0, 0, 24,190, 0, 0, 10,191,113, 66, 21,172,210,185, 1, 0, 0, 0,176,190, 0, 0, 24,190, + 0, 0, 10,191,143,189, 21,172,210,185, 1, 0, 0, 0,232, 62, 0, 0, 94, 63, 0, 0,196,190,129, 54,206,102,175,202, 1, 0, + 0, 0,232,190, 0, 0, 94, 63, 0, 0,196,190,127,201,206,102,175,202, 1, 0, 0, 0,232, 62, 0, 0,110, 63, 0, 0,144,189, +186, 53, 22,116,118, 4, 1, 0, 0, 0,232,190, 0, 0,110, 63, 0, 0,144,189, 70,202, 22,116,118, 4, 1, 0, 0, 0,232, 62, + 0, 0, 90, 63, 0, 0,112, 62, 3, 59,236, 93,221, 63, 1, 0, 0, 0,232,190, 0, 0, 90, 63, 0, 0,112, 62,253,196,236, 93, +221, 63, 1, 0, 0, 0,236, 62, 0, 0, 6, 63, 0, 0,220, 62, 32, 50,252,105, 90, 51, 1, 0, 0, 0,236,190, 0, 0, 6, 63, + 0, 0,220, 62,224,205,252,105, 90, 51, 1, 0, 0, 0, 58, 63, 0, 0,208, 62, 0, 0,172, 62,242, 97,236, 79, 9, 20, 1, 0, + 0, 0, 58,191, 0, 0,208, 62, 0, 0,172, 62, 14,158,236, 79, 9, 20, 1, 0, 0, 0, 34, 63, 0, 0,232, 62, 0, 0,144, 62, +108, 60,141, 99, 28, 53, 1, 0, 0, 0, 34,191, 0, 0,232, 62, 0, 0,144, 62,148,195,141, 99, 28, 53, 1, 0, 0, 0, 36, 63, + 0, 0, 52, 63, 0, 0, 96, 61, 96, 83, 57, 87,177, 42, 1, 0, 0, 0, 36,191, 0, 0, 52, 63, 0, 0, 96, 61,160,172, 57, 87, +177, 42, 1, 0, 0, 0, 76, 63, 0, 0, 16, 63, 0, 0, 0, 62,174, 95, 44, 68,204, 50, 1, 0, 0, 0, 76,191, 0, 0, 16, 63, + 0, 0, 0, 62, 82,160, 44, 68,204, 50, 1, 0, 0, 0, 76, 63, 0, 0, 30, 63, 0, 0,240,189,105,109, 79, 66, 37,252, 1, 0, + 0, 0, 76,191, 0, 0, 30, 63, 0, 0,240,189,151,146, 79, 66, 37,252, 1, 0, 0, 0, 36, 63, 0, 0, 64, 63, 0, 0, 72,190, +226, 86,170, 93, 43,248, 1, 0, 0, 0, 36,191, 0, 0, 64, 63, 0, 0, 72,190, 30,169,170, 93, 43,248, 1, 0, 0, 0, 36, 63, + 0, 0, 46, 63, 0, 0,228,190,111, 82,219, 68,100,186, 1, 0, 0, 0, 36,191, 0, 0, 46, 63, 0, 0,228,190,145,173,219, 68, +100,186, 1, 0, 0, 0, 76, 63, 0, 0, 10, 63, 0, 0,184,190,218,111, 76, 39,195,207, 1, 0, 0, 0, 76,191, 0, 0, 10, 63, + 0, 0,184,190, 38,144, 76, 39,195,207, 1, 0, 0, 0, 30, 63, 0, 0,168, 62, 0, 0, 22,191, 2, 75, 5,254, 79,152, 1, 0, + 0, 0, 30,191, 0, 0,168, 62, 0, 0, 22,191,254,180, 5,254, 79,152, 1, 0, 0, 0,248, 62, 0, 0,192, 60, 0, 0, 12,191, +171, 69,136,192,101,169, 1, 0, 0, 0,248,190, 0, 0,192, 60, 0, 0, 12,191, 85,186,136,192,101,169, 1, 0, 0, 0, 82, 63, + 0, 0,168, 62, 0, 0, 80,190,190,114,245, 38, 55, 41, 1, 0, 0, 0, 82,191, 0, 0,168, 62, 0, 0, 80,190, 66,141,245, 38, + 55, 41, 1, 0, 0, 0,208, 62, 0, 0, 48,190, 0, 0, 24, 62, 89, 73, 32,153,123, 20, 1, 0, 0, 0,208,190, 0, 0, 48,190, + 0, 0, 24, 62,167,182, 32,153,123, 20, 1, 0, 0, 0,220, 62, 0, 0, 72,190, 0, 0, 88,190, 90, 74,132,153, 69,237, 1, 0, + 0, 0,220,190, 0, 0, 72,190, 0, 0, 88,190,166,181,132,153, 69,237, 1, 0, 0, 0,100, 63, 0, 0,208, 62, 0, 0,112,190, + 43,219,144, 94, 0, 78, 1, 0, 0, 0,100,191, 0, 0,208, 62, 0, 0,112,190,213, 36,144, 94, 0, 78, 1, 0, 0, 0, 70, 63, + 0, 0, 16,190, 0, 0, 0,190, 98,250, 11,173, 79, 97, 1, 0, 0, 0, 70,191, 0, 0, 16,190, 0, 0, 0,190,158, 5, 11,173, + 79, 97, 1, 0, 0, 0,133, 63, 0, 0,208,189, 0, 0,168,190,102, 60, 54,156,176, 52, 1, 0, 0, 0,133,191, 0, 0,208,189, + 0, 0,168,190,154,195, 54,156,176, 52, 1, 0, 0, 0,164, 63, 0, 0, 96, 61, 0, 0,220,190, 40, 86, 6,192,194, 69, 1, 0, + 0, 0,164,191, 0, 0, 96, 61, 0, 0,220,190,216,169, 6,192,194, 69, 1, 0, 0, 0,173, 63, 0, 0,164, 62, 0, 0,216,190, + 16,101,233, 22, 32, 75, 1, 0, 0, 0,173,191, 0, 0,164, 62, 0, 0,216,190,240,154,233, 22, 32, 75, 1, 0, 0, 0,158, 63, + 0, 0, 2, 63, 0, 0,216,190, 32, 46, 37,110, 20, 46, 1, 0, 0, 0,158,191, 0, 0, 2, 63, 0, 0,216,190,224,209, 37,110, + 20, 46, 1, 0, 0, 0,131, 63, 0, 0,244, 62, 0, 0,160,190, 21, 2,210,111, 62, 62, 1, 0, 0, 0,131,191, 0, 0,244, 62, + 0, 0,160,190,235,253,210,111, 62, 62, 1, 0, 0, 0,130, 63, 0, 0,212, 62, 0, 0,148,190, 97, 69, 95,247, 54,107, 1, 0, + 0, 0,130,191, 0, 0,212, 62, 0, 0,148,190,159,186, 95,247, 54,107, 1, 0, 0, 0,152, 63, 0, 0,224, 62, 0, 0,200,190, +159, 40, 26,244,203,120, 1, 0, 0, 0,152,191, 0, 0,224, 62, 0, 0,200,190, 97,215, 26,244,203,120, 1, 0, 0, 0,162, 63, + 0, 0,148, 62, 0, 0,208,190,162,240,132,244,140,126, 1, 0, 0, 0,162,191, 0, 0,148, 62, 0, 0,208,190, 94, 15,132,244, +140,126, 1, 0, 0, 0,155, 63, 0, 0,160, 61, 0, 0,208,190,238,252, 16, 35, 15,123, 1, 0, 0, 0,155,191, 0, 0,160, 61, + 0, 0,208,190, 18, 3, 16, 35, 15,123, 1, 0, 0, 0,132, 63, 0, 0, 32,189, 0, 0,156,190,255, 62, 10, 35,196,105, 1, 0, + 0, 0,132,191, 0, 0, 32,189, 0, 0,156,190, 1,193, 10, 35,196,105, 1, 0, 0, 0, 84, 63, 0, 0,144,189, 0, 0, 8,190, +176, 43, 36, 45,132,111, 1, 0, 0, 0, 84,191, 0, 0,144,189, 0, 0, 8,190, 80,212, 36, 45,132,111, 1, 0, 0, 0,108, 63, + 0, 0,184, 62, 0, 0, 96,190,191, 58,236,247,109,113, 1, 0, 0, 0,108,191, 0, 0,184, 62, 0, 0, 96,190, 65,197,236,247, +109,113, 1, 0, 0, 0,114, 63, 0, 0,156, 62, 0, 0,148,190, 9, 88, 45,185, 34, 60, 1, 0, 0, 0,114,191, 0, 0,156, 62, + 0, 0,148,190,247,167, 45,185, 34, 60, 1, 0, 0, 0, 98, 63, 0, 0,192,188, 0, 0, 88,190,210, 29,124,112, 75, 53, 1, 0, + 0, 0, 98,191, 0, 0,192,188, 0, 0, 88,190, 46,226,124,112, 75, 53, 1, 0, 0, 0,133, 63, 0, 0, 0, 0, 0, 0,188,190, +175,234, 24,122,245, 31, 1, 0, 0, 0,133,191, 0, 0, 0, 0, 0, 0,188,190, 81, 21, 24,122,245, 31, 1, 0, 0, 0,152, 63, + 0, 0,192, 61, 0, 0,228,190,141,158,211, 82, 28, 5, 1, 0, 0, 0,152,191, 0, 0,192, 61, 0, 0,228,190,115, 97,211, 82, + 28, 5, 1, 0, 0, 0,158, 63, 0, 0,128, 62, 0, 0,228,190,111,130, 12,244,188, 21, 1, 0, 0, 0,158,191, 0, 0,128, 62, + 0, 0,228,190,145,125, 12,244,188, 21, 1, 0, 0, 0,150, 63, 0, 0,184, 62, 0, 0,224,190,245,237, 22,157, 52, 79, 1, 0, + 0, 0,150,191, 0, 0,184, 62, 0, 0,224,190, 11, 18, 22,157, 52, 79, 1, 0, 0, 0,131, 63, 0, 0,176, 62, 0, 0,184,190, +132, 71,190,171,144, 64, 1, 0, 0, 0,131,191, 0, 0,176, 62, 0, 0,184,190,124,184,190,171,144, 64, 1, 0, 0, 0, 88, 63, + 0, 0,148, 62, 0, 0, 88,190, 16, 95,148,222,236, 78, 1, 0, 0, 0, 88,191, 0, 0,148, 62, 0, 0, 88,190,240,160,148,222, +236, 78, 1, 0, 0, 0, 86, 63, 0, 0, 48, 62, 0, 0,140,190,194, 95,198,181, 68, 41, 1, 0, 0, 0, 86,191, 0, 0, 48, 62, + 0, 0,140,190, 62,160,198,181, 68, 41, 1, 0, 0, 0, 66, 63, 0, 0,192, 61, 0, 0,140,190,238,109,193, 4, 98, 65, 1, 0, + 0, 0, 66,191, 0, 0,192, 61, 0, 0,140,190, 18,146,193, 4, 98, 65, 1, 0, 0, 0, 82, 63, 0, 0,176, 61, 0, 0,140,190, + 91, 73,245, 92,148, 48, 1, 0, 0, 0, 82,191, 0, 0,176, 61, 0, 0,140,190,165,182,245, 92,148, 48, 1, 0, 0, 0, 88, 63, + 0, 0,128, 60, 0, 0,140,190, 27,113, 2,248, 97, 59, 1, 0, 0, 0, 88,191, 0, 0,128, 60, 0, 0,140,190,229,142, 2,248, + 97, 59, 1, 0, 0, 0, 80, 63, 0, 0,128,188, 0, 0,140,190,241, 75,125, 72, 55, 73, 1, 0, 0, 0, 80,191, 0, 0,128,188, + 0, 0,140,190, 15,180,125, 72, 55, 73, 1, 0, 0, 0, 58, 63, 0, 0, 0, 0, 0, 0,144,189, 69,110,138,193, 22,238, 1, 0, + 0, 0, 58,191, 0, 0, 0, 0, 0, 0,144,189,187,145,138,193, 22,238, 1, 0, 0, 0, 56, 63, 0, 0,192,188, 0, 0, 48,190, + 93, 95,240, 10,170, 84, 1, 0, 0, 0, 56,191, 0, 0,192,188, 0, 0, 48,190,163,160,240, 10,170, 84, 1, 0, 0, 0, 56, 63, + 0, 0, 32, 61, 0, 0, 64,190,226,117,157,233,140, 44, 1, 0, 0, 0, 56,191, 0, 0, 32, 61, 0, 0, 64,190, 30,138,157,233, +140, 44, 1, 0, 0, 0, 76, 63, 0, 0, 80, 62, 0, 0, 88,190,156,111,186,201, 79, 31, 1, 0, 0, 0, 76,191, 0, 0, 80, 62, + 0, 0, 88,190,100,144,186,201, 79, 31, 1, 0, 0, 0,100, 63, 0, 0,120, 62, 0, 0,136,190, 32, 89,187,186, 87, 60, 1, 0, + 0, 0,100,191, 0, 0,120, 62, 0, 0,136,190,224,166,187,186, 87, 60, 1, 0, 0, 0,100, 63, 0, 0,112, 62, 0, 0,164,190, + 91, 85, 90,200,118, 77, 1, 0, 0, 0,100,191, 0, 0,112, 62, 0, 0,164,190,165,170, 90,200,118, 77, 1, 0, 0, 0, 80, 63, + 0, 0,128,188, 0, 0,164,190,123, 84,188, 44, 29, 85, 1, 0, 0, 0, 80,191, 0, 0,128,188, 0, 0,164,190,133,171,188, 44, + 29, 85, 1, 0, 0, 0, 90, 63, 0, 0,128, 60, 0, 0,164,190,219, 47, 50, 47,237,108, 1, 0, 0, 0, 90,191, 0, 0,128, 60, + 0, 0,164,190, 37,208, 50, 47,237,108, 1, 0, 0, 0, 84, 63, 0, 0,160, 61, 0, 0,164,190,236, 56,223, 47, 42,104, 1, 0, + 0, 0, 84,191, 0, 0,160, 61, 0, 0,164,190, 20,199,223, 47, 42,104, 1, 0, 0, 0, 68, 63, 0, 0,192, 61, 0, 0,164,190, + 79,100, 44, 32,179, 72, 1, 0, 0, 0, 68,191, 0, 0,192, 61, 0, 0,164,190,177,155, 44, 32,179, 72, 1, 0, 0, 0, 88, 63, + 0, 0, 48, 62, 0, 0,164,190, 35, 73,126,201,202, 89, 1, 0, 0, 0, 88,191, 0, 0, 48, 62, 0, 0,164,190,221,182,126,201, +202, 89, 1, 0, 0, 0,133, 63, 0, 0,168, 62, 0, 0,212,190, 1, 62,211,212, 80,103, 1, 0, 0, 0,133,191, 0, 0,168, 62, + 0, 0,212,190,255,193,211,212, 80,103, 1, 0, 0, 0,152, 63, 0, 0,176, 62, 0, 0,248,190, 51,224,110,181, 12, 99, 1, 0, + 0, 0,152,191, 0, 0,176, 62, 0, 0,248,190,205, 31,110,181, 12, 99, 1, 0, 0, 0,161, 63, 0, 0,120, 62, 0, 0,252,190, +220,160,139,243,182, 84, 1, 0, 0, 0,161,191, 0, 0,120, 62, 0, 0,252,190, 36, 95,139,243,182, 84, 1, 0, 0, 0,155, 63, + 0, 0,176, 61, 0, 0,248,190,253,186,174, 57, 16, 91, 1, 0, 0, 0,155,191, 0, 0,176, 61, 0, 0,248,190, 3, 69,174, 57, + 16, 91, 1, 0, 0, 0,134, 63, 0, 0, 0, 0, 0, 0,216,190, 44, 11,185, 94, 90, 85, 1, 0, 0, 0,134,191, 0, 0, 0, 0, + 0, 0,216,190,212,244,185, 94, 90, 85, 1, 0, 0, 0, 98, 63, 0, 0,128,188, 0, 0,136,190,131,249,213,121,178, 38, 1, 0, + 0, 0, 98,191, 0, 0,128,188, 0, 0,136,190,125, 6,213,121,178, 38, 1, 0, 0, 0,116, 63, 0, 0,148, 62, 0, 0,176,190, + 97, 81,161,203,196, 83, 1, 0, 0, 0,116,191, 0, 0,148, 62, 0, 0,176,190,159,174,161,203,196, 83, 1, 0, 0, 0,100, 63, + 0, 0,224, 61, 0, 0,168,190, 99, 25,168, 0,115,125, 1, 0, 0, 0,100,191, 0, 0,224, 61, 0, 0,168,190,157,230,168, 0, +115,125, 1, 0, 0, 0,112, 63, 0, 0,128, 61, 0, 0,172,190, 86, 49,224, 14, 41,117, 1, 0, 0, 0,112,191, 0, 0,128, 61, + 0, 0,172,190,170,206,224, 14, 41,117, 1, 0, 0, 0,128, 63, 0, 0, 0, 62, 0, 0,188,190, 60, 55,195,251, 98,115, 1, 0, + 0, 0,128,191, 0, 0, 0, 62, 0, 0,188,190,196,200,195,251, 98,115, 1, 0, 0, 0,118, 63, 0, 0, 48, 62, 0, 0,180,190, +255, 41, 6, 0,232,120, 1, 0, 0, 0,118,191, 0, 0, 48, 62, 0, 0,180,190, 1,214, 6, 0,232,120, 1, 0, 0, 0,130, 63, + 0, 0,112, 62, 0, 0,192,190,174, 40,253, 11,196,120, 1, 0, 0, 0,130,191, 0, 0,112, 62, 0, 0,192,190, 82,215,253, 11, +196,120, 1, 0, 0, 0,135, 63, 0, 0, 64, 62, 0, 0,196,190, 32, 44, 47,246,191,119, 1, 0, 0, 0,135,191, 0, 0, 64, 62, + 0, 0,196,190,224,211, 47,246,191,119, 1, 0, 0, 0,142, 63, 0, 0, 88, 62, 0, 0,200,190,222, 55, 67,254, 37,115, 1, 0, + 0, 0,142,191, 0, 0, 88, 62, 0, 0,200,190, 34,200, 67,254, 37,115, 1, 0, 0, 0,139, 63, 0, 0,140, 62, 0, 0,200,190, +188, 45, 37, 38, 75,113, 1, 0, 0, 0,139,191, 0, 0,140, 62, 0, 0,200,190, 68,210, 37, 38, 75,113, 1, 0, 0, 0,131, 63, + 0, 0,224, 62, 0, 0,248,190,139,202,127, 71, 71,164, 1, 0, 0, 0,131,191, 0, 0,224, 62, 0, 0,248,190,117, 53,127, 71, + 71,164, 1, 0, 0, 0,160, 63, 0, 0,240, 62, 0, 0, 12,191, 2, 39,153, 79,172,163, 1, 0, 0, 0,160,191, 0, 0,240, 62, + 0, 0, 12,191,254,216,153, 79,172,163, 1, 0, 0, 0,175, 63, 0, 0,152, 62, 0, 0, 0,191, 49,118,245, 10, 30,208, 1, 0, + 0, 0,175,191, 0, 0,152, 62, 0, 0, 0,191,207,137,245, 10, 30,208, 1, 0, 0, 0,168, 63, 0, 0, 96, 61, 0, 0, 8,191, +182, 78, 54,193,251,176, 1, 0, 0, 0,168,191, 0, 0, 96, 61, 0, 0, 8,191, 74,177, 54,193,251,176, 1, 0, 0, 0,133, 63, + 0, 0,176,189, 0, 0,252,190,165,250,140,166,156,164, 1, 0, 0, 0,133,191, 0, 0,176,189, 0, 0,252,190, 91, 5,140,166, +156,164, 1, 0, 0, 0, 74, 63, 0, 0, 0,190, 0, 0,168,190,203,245,207,147, 96,188, 1, 0, 0, 0, 74,191, 0, 0, 0,190, + 0, 0,168,190, 53, 10,207,147, 96,188, 1, 0, 0, 0, 92, 63, 0, 0,196, 62, 0, 0,196,190, 3,172, 39, 73,240,192, 1, 0, + 0, 0, 92,191, 0, 0,196, 62, 0, 0,196,190,253, 83, 39, 73,240,192, 1, 0, 68, 65, 84, 65,104, 1, 0, 0,200,244, 71, 27, + 1, 0, 0, 0, 93, 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, 56, 30,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 56, 30,109, 3, + 1, 0, 0, 0, 49, 0, 0, 0,237, 3, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 2, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 47, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0, 47, 0, 0, 0, 0, 0, 35, 0, + 3, 0, 0, 0, 45, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 35, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 43, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, + 8, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 35, 0, 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, + 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 35, 0, 8, 0, 0, 0, 14, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 15, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 15, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, + 6, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 35, 0, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, + 17, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 35, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 23, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 26, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 26, 0, 0, 0, 0, 0, 35, 0, + 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 25, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 35, 0, 26, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 29, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 32, 0, 0, 0, 0, 0, 35, 0, + 30, 0, 0, 0, 32, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 35, 0, 27, 0, 0, 0, 33, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 31, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 34, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0, + 25, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 36, 0, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 38, 0, 0, 0, + 0, 0, 35, 0, 32, 0, 0, 0, 38, 0, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 39, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, + 37, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 39, 0, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 40, 0, 0, 0, 0, 0, 35, 0, + 30, 0, 0, 0, 40, 0, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 41, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 35, 0, 38, 0, 0, 0, 44, 0, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 42, 0, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 43, 0, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 46, 0, 0, 0, 0, 0, 35, 0, + 37, 0, 0, 0, 47, 0, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 50, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 35, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 51, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0, + 49, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0, 51, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 52, 0, 0, 0, 0, 0, 35, 0, + 50, 0, 0, 0, 52, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 53, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 35, 0, 24, 0, 0, 0, 54, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0, 55, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 56, 0, 0, 0, 0, 0, 35, 0, + 54, 0, 0, 0, 56, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 57, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0, 57, 0, 0, 0, + 0, 0, 35, 0, 12, 0, 0, 0, 58, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0, 58, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, + 59, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0, 59, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 62, 0, 0, 0, 0, 0, 35, 0, + 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 63, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, + 49, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0, 60, 0, 0, 0, + 0, 0, 35, 0, 61, 0, 0, 0, 65, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0, 63, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, + 59, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 35, 0, 54, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0, + 60, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0, 60, 0, 0, 0, 0, 0, 35, 0, + 51, 0, 0, 0, 61, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0,173, 0, 0, 0,175, 0, 0, 0, + 0, 0, 35, 0, 90, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0, 90, 0, 0, 0, 0, 0, 35, 0,174, 0, 0, 0, +175, 0, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 90, 0, 0, 0, 0, 0, 35, 0, + 86, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 35, 0,172, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, + 89, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0, + 84, 0, 0, 0, 86, 0, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,170, 0, 0, 0, + 0, 0, 35, 0, 85, 0, 0, 0, 87, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0,167, 0, 0, 0, +169, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, 84, 0, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, + 83, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 85, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0,165, 0, 0, 0, + 0, 0, 35, 0,165, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, 82, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0, +168, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 83, 0, 0, 0, 0, 0, 35, 0, + 78, 0, 0, 0, 91, 0, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,145, 0, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,163, 0, 0, 0, + 0, 0, 35, 0, 78, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0,146, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0,146, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, + 91, 0, 0, 0, 93, 0, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0,147, 0, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,147, 0, 0, 0, + 0, 0, 35, 0, 94, 0, 0, 0,148, 0, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 94, 0, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, +148, 0, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 95, 0, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0,149, 0, 0, 0, 0, 0, 35, 0, +147, 0, 0, 0,149, 0, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0,150, 0, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 96, 0, 0, 0, + 0, 0, 35, 0,148, 0, 0, 0,150, 0, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 97, 0, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, +151, 0, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,151, 0, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,152, 0, 0, 0, 0, 0, 35, 0, + 96, 0, 0, 0, 98, 0, 0, 0, 0, 0, 35, 0,150, 0, 0, 0,152, 0, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 35, 0, 99, 0, 0, 0,153, 0, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,153, 0, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, +154, 0, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,100, 0, 0, 0, 0, 0, 35, 0,152, 0, 0, 0,154, 0, 0, 0, 0, 0, 35, 0, + 99, 0, 0, 0,101, 0, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,155, 0, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,155, 0, 0, 0, + 0, 0, 35, 0,102, 0, 0, 0,156, 0, 0, 0, 0, 0, 35, 0,100, 0, 0, 0,102, 0, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, +156, 0, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,103, 0, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,157, 0, 0, 0, 0, 0, 35, 0, +155, 0, 0, 0,157, 0, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,158, 0, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,104, 0, 0, 0, + 0, 0, 35, 0,156, 0, 0, 0,158, 0, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,105, 0, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, +159, 0, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,159, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,160, 0, 0, 0, 0, 0, 35, 0, +104, 0, 0, 0,106, 0, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,160, 0, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,107, 0, 0, 0, + 0, 0, 35, 0,107, 0, 0, 0,161, 0, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,161, 0, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, +162, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,108, 0, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, + 66, 0, 0, 0,107, 0, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, 67, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,161, 0, 0, 0, + 0, 0, 35, 0, 66, 0, 0, 0,108, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, +127, 0, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,159, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,161, 0, 0, 0, 0, 0, 35, 0, +128, 0, 0, 0,160, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,128, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,162, 0, 0, 0, + 0, 0, 35, 0,127, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0,158, 0, 0, 0, +179, 0, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,155, 0, 0, 0, 0, 0, 35, 0, +125, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,156, 0, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,179, 0, 0, 0, + 0, 0, 35, 0,123, 0, 0, 0,153, 0, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,125, 0, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, +154, 0, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,126, 0, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,151, 0, 0, 0, 0, 0, 35, 0, +121, 0, 0, 0,123, 0, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,152, 0, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,124, 0, 0, 0, + 0, 0, 35, 0,119, 0, 0, 0,149, 0, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,121, 0, 0, 0, 0, 0, 35, 0,120, 0, 0, 0, +150, 0, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,122, 0, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,147, 0, 0, 0, 0, 0, 35, 0, +117, 0, 0, 0,119, 0, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,148, 0, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,120, 0, 0, 0, + 0, 0, 35, 0,115, 0, 0, 0,145, 0, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,117, 0, 0, 0, 0, 0, 35, 0,116, 0, 0, 0, +146, 0, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,118, 0, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, +113, 0, 0, 0,115, 0, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,116, 0, 0, 0, + 0, 0, 35, 0,113, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, +176, 0, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0, +164, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,111, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,111, 0, 0, 0, + 0, 0, 35, 0,110, 0, 0, 0,112, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,112, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0, +177, 0, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, +112, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,182, 0, 0, 0, + 0, 0, 35, 0,176, 0, 0, 0,177, 0, 0, 0, 0, 0, 33, 0,181, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, +136, 0, 0, 0, 0, 0, 35, 0,136, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0,134, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, +135, 0, 0, 0,136, 0, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0,132, 0, 0, 0,134, 0, 0, 0, + 0, 0, 35, 0,132, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0,133, 0, 0, 0,135, 0, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, +172, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,132, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, +131, 0, 0, 0,133, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,186, 0, 0, 0, + 0, 0, 35, 0,184, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0,185, 0, 0, 0, +187, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, +130, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,189, 0, 0, 0, + 0, 0, 35, 0,188, 0, 0, 0,189, 0, 0, 0, 0, 0, 33, 0,186, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, +186, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0, +187, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0,188, 0, 0, 0, 0, 0, 33, 0, 68, 0, 0, 0,184, 0, 0, 0, + 0, 0, 35, 0, 68, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0,129, 0, 0, 0,130, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, +129, 0, 0, 0, 0, 0, 33, 0,129, 0, 0, 0,131, 0, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, +190, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,143, 0, 0, 0, + 0, 0, 35, 0,191, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, +144, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, +192, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,141, 0, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,195, 0, 0, 0, + 0, 0, 35, 0,140, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,142, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, +196, 0, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,139, 0, 0, 0, 0, 0, 35, 0, +195, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,140, 0, 0, 0, + 0, 0, 35, 0, 70, 0, 0, 0,137, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, +138, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, + 69, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0,190, 0, 0, 0,205, 0, 0, 0, + 0, 0, 35, 0,205, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0,191, 0, 0, 0, +206, 0, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, +198, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0,196, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,200, 0, 0, 0, + 0, 0, 35, 0,197, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0,199, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0,194, 0, 0, 0, +201, 0, 0, 0, 0, 0, 35, 0,200, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, +201, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0,202, 0, 0, 0,204, 0, 0, 0, + 0, 0, 35, 0,193, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, +206, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, +198, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,176, 0, 0, 0, + 0, 0, 35, 0,140, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, +210, 0, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0, +143, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0,210, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,213, 0, 0, 0, + 0, 0, 35, 0,211, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0,166, 0, 0, 0, +213, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, +209, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,214, 0, 0, 0, + 0, 0, 35, 0,210, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, +215, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0, + 71, 0, 0, 0,129, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,221, 0, 0, 0, + 0, 0, 35, 0,131, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, +221, 0, 0, 0, 0, 0, 35, 0,132, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0,133, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, +220, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0,134, 0, 0, 0,217, 0, 0, 0, + 0, 0, 35, 0,135, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0, +217, 0, 0, 0, 0, 0, 35, 0,136, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, +217, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,230, 0, 0, 0, + 0, 0, 35, 0,218, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, +226, 0, 0, 0, 0, 0, 35, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,227, 0, 0, 0, 0, 0, 35, 0, +227, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,221, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,226, 0, 0, 0, + 0, 0, 35, 0,222, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,227, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0, +223, 0, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0, +223, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,229, 0, 0, 0, + 0, 0, 35, 0,180, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0,182, 0, 0, 0, +231, 0, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, +232, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,253, 0, 0, 0, + 0, 0, 35, 0,112, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, +255, 0, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, +254, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0,233, 0, 0, 0,251, 0, 0, 0, + 0, 0, 35, 0,114, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0,234, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, +249, 0, 0, 0, 0, 0, 35, 0,249, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, +250, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,249, 0, 0, 0, + 0, 0, 35, 0,118, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0,248, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, +245, 0, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, +246, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,243, 0, 0, 0, 0, 0, 35, 0,243, 0, 0, 0,245, 0, 0, 0, + 0, 0, 35, 0,122, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0,244, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, +241, 0, 0, 0, 0, 0, 35, 0,241, 0, 0, 0,243, 0, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, +242, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,241, 0, 0, 0, + 0, 0, 35, 0,126, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,240, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0,178, 0, 0, 0, +235, 0, 0, 0, 0, 0, 35, 0,235, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, +236, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0,235, 0, 0, 0,237, 0, 0, 0, + 0, 0, 35, 0,128, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,236, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, +255, 0, 0, 0, 0, 0, 35, 0,238, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0,255, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0, + 1, 1, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0, 2, 1, 0, 0, + 0, 0, 35, 0,238, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0, + 21, 1, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, + 20, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0,239, 0, 0, 0, 17, 1, 0, 0, + 0, 0, 35, 0,240, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0, + 17, 1, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0,242, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, + 16, 1, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 13, 1, 0, 0, + 0, 0, 35, 0,244, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, + 13, 1, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, + 12, 1, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 9, 1, 0, 0, + 0, 0, 35, 0,248, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0, + 9, 1, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, + 8, 1, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0,251, 0, 0, 0, 5, 1, 0, 0, + 0, 0, 35, 0,252, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0, + 23, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, 23, 1, 0, 0, 0, 0, 35, 0,234, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, + 6, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0,253, 0, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0, 3, 1, 0, 0, + 0, 0, 35, 0,254, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0,231, 0, 0, 0, + 25, 1, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0,232, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, + 4, 1, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0, 26, 1, 0, 0, + 0, 0, 35, 0,107, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, + 72, 0, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, +105, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, 30, 1, 0, 0, + 0, 0, 35, 0, 28, 1, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0, + 31, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, +101, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, 31, 1, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0, 34, 1, 0, 0, + 0, 0, 35, 0, 32, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0, + 35, 1, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0, + 97, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0, 38, 1, 0, 0, + 0, 0, 35, 0, 36, 1, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0, 37, 1, 0, 0, + 39, 1, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, + 93, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 42, 1, 0, 0, + 0, 0, 35, 0, 40, 1, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0, + 43, 1, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0, + 51, 1, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 81, 1, 0, 0, + 0, 0, 35, 0, 51, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, + 82, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0, + 79, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, 80, 1, 0, 0, + 0, 0, 35, 0, 80, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0, 79, 1, 0, 0, + 83, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, + 80, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0, 83, 1, 0, 0, + 0, 0, 35, 0, 89, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0, + 77, 1, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0, + 73, 1, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0, 74, 1, 0, 0, + 0, 0, 35, 0, 74, 1, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, + 75, 1, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, + 73, 1, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0, 80, 1, 0, 0, + 0, 0, 35, 0, 76, 1, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, + 71, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0, + 80, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0,208, 0, 0, 0, 85, 1, 0, 0, + 0, 0, 35, 0, 85, 1, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0,214, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, + 88, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, + 69, 1, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 89, 1, 0, 0, + 0, 0, 35, 0, 78, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, + 90, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, + 76, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0, 95, 1, 0, 0, + 0, 0, 35, 0, 76, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, + 68, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, + 77, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 96, 1, 0, 0, + 0, 0, 35, 0, 77, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0, + 91, 1, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, + 48, 1, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0, 52, 1, 0, 0, + 0, 0, 35, 0, 72, 1, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, + 92, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0, + 39, 1, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0, 54, 1, 0, 0, + 0, 0, 35, 0, 54, 1, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, + 67, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, + 75, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0,101, 1, 0, 0, + 0, 0, 35, 0, 46, 1, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, +102, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, + 97, 1, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 46, 1, 0, 0, + 0, 0, 35, 0, 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, + 97, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, + 37, 1, 0, 0,105, 1, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0,107, 1, 0, 0, + 0, 0, 35, 0, 38, 1, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, +108, 1, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0, +107, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,108, 1, 0, 0,110, 1, 0, 0, + 0, 0, 35, 0,110, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,111, 1, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, +115, 1, 0, 0, 0, 0, 35, 0,109, 1, 0, 0,115, 1, 0, 0, 0, 0, 35, 0,112, 1, 0, 0,114, 1, 0, 0, 0, 0, 35, 0, +110, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0,119, 1, 0, 0, + 0, 0, 35, 0,117, 1, 0, 0,119, 1, 0, 0, 0, 0, 35, 0,115, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, +120, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,118, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, + 57, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,119, 1, 0, 0, + 0, 0, 35, 0,118, 1, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, +120, 1, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, + 98, 1, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0,115, 1, 0, 0, + 0, 0, 35, 0,100, 1, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, +110, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,103, 1, 0, 0, 0, 0, 35, 0,103, 1, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, +104, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0,103, 1, 0, 0, + 0, 0, 35, 0, 34, 1, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, + 45, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0, + 28, 1, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 28, 1, 0, 0, + 0, 0, 35, 0, 72, 0, 0, 0, 73, 0, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,105, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0, +106, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,111, 1, 0, 0, 0, 0, 35, 0, + 56, 1, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,125, 1, 0, 0, + 0, 0, 35, 0,113, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0, +126, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,125, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, + 93, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0,127, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0,127, 1, 0, 0, + 0, 0, 35, 0, 94, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, +130, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, + 61, 1, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0, 64, 1, 0, 0, + 0, 0, 35, 0, 64, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, +128, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, + 44, 1, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0,128, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0, 65, 1, 0, 0, + 0, 0, 35, 0, 65, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0,121, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0, +124, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, + 67, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,123, 1, 0, 0,129, 1, 0, 0, + 0, 0, 35, 0, 63, 1, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0,124, 1, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0, + 66, 1, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0,124, 1, 0, 0, 0, 0, 35, 0, +131, 1, 0, 0,143, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,157, 1, 0, 0, + 0, 0, 35, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,158, 1, 0, 0, 0, 0, 35, 0,132, 1, 0, 0, +144, 1, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, +145, 1, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,143, 1, 0, 0, + 0, 0, 35, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0, +148, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,139, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, +139, 1, 0, 0,141, 1, 0, 0, 0, 0, 35, 0,148, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,142, 1, 0, 0, + 0, 0, 35, 0,140, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0, +151, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,139, 1, 0, 0, 0, 0, 35, 0,150, 1, 0, 0,152, 1, 0, 0, 0, 0, 35, 0, +138, 1, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,152, 1, 0, 0, 0, 0, 35, 0,151, 1, 0, 0,153, 1, 0, 0, + 0, 0, 35, 0,135, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,137, 1, 0, 0, 0, 0, 35, 0,152, 1, 0, 0, +154, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, +153, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,133, 1, 0, 0,155, 1, 0, 0, 0, 0, 35, 0,133, 1, 0, 0,135, 1, 0, 0, + 0, 0, 35, 0,154, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0, +156, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, +155, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,164, 1, 0, 0, 0, 0, 35, 0,154, 1, 0, 0,164, 1, 0, 0, + 0, 0, 35, 0,156, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,151, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,163, 1, 0, 0, +165, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,152, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, +149, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,166, 1, 0, 0,168, 1, 0, 0, + 0, 0, 35, 0,150, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0, +169, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,148, 1, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, +145, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,169, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0,172, 1, 0, 0, + 0, 0, 35, 0,146, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,157, 1, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0, +171, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,160, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0, + 63, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,185, 1, 0, 0, + 0, 0, 35, 0, 64, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,186, 1, 0, 0, +188, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, + 64, 1, 0, 0,134, 1, 0, 0, 0, 0, 35, 0,156, 1, 0, 0,188, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,185, 1, 0, 0, + 0, 0, 35, 0, 56, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,157, 1, 0, 0, +173, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,131, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0, +126, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,126, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,183, 1, 0, 0, + 0, 0, 35, 0,183, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,162, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,184, 1, 0, 0, +188, 1, 0, 0, 0, 0, 35, 0,181, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,187, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0, +181, 1, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,190, 1, 0, 0, + 0, 0, 35, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0, +181, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,179, 1, 0, 0, 0, 0, 35, 0,178, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, +178, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,180, 1, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,191, 1, 0, 0, + 0, 0, 35, 0,189, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,190, 1, 0, 0, +192, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, +173, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,193, 1, 0, 0, + 0, 0, 33, 0,174, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,174, 1, 0, 0,194, 1, 0, 0, 0, 0, 33, 0,176, 1, 0, 0, +194, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,160, 1, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, + 55, 1, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,189, 1, 0, 0, + 0, 0, 35, 0,186, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,193, 1, 0, 0,195, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0, +219, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0, +160, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,196, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,175, 1, 0, 0,205, 1, 0, 0, + 0, 0, 35, 0,195, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,196, 1, 0, 0, +206, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0, +178, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,204, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,201, 1, 0, 0, + 0, 0, 35, 0,201, 1, 0, 0,203, 1, 0, 0, 0, 0, 35, 0,180, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,202, 1, 0, 0, +204, 1, 0, 0, 0, 0, 35, 0,181, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,199, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0, +182, 1, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,183, 1, 0, 0,197, 1, 0, 0, + 0, 0, 35, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,184, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,198, 1, 0, 0, +200, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0, +162, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,198, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,219, 1, 0, 0, + 0, 0, 35, 0,171, 1, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,172, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,208, 1, 0, 0, +220, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,169, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0, +170, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,211, 1, 0, 0, + 0, 0, 35, 0,167, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,168, 1, 0, 0,212, 1, 0, 0, 0, 0, 35, 0,210, 1, 0, 0, +212, 1, 0, 0, 0, 0, 35, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0, +166, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,213, 1, 0, 0,215, 1, 0, 0, + 0, 0, 35, 0,163, 1, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,214, 1, 0, 0, +216, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,216, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, +199, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,201, 1, 0, 0,221, 1, 0, 0, + 0, 0, 35, 0,200, 1, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,202, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,222, 1, 0, 0, +224, 1, 0, 0, 0, 0, 35, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,225, 1, 0, 0,227, 1, 0, 0, 0, 0, 33, 0, +221, 1, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,222, 1, 0, 0,228, 1, 0, 0, + 0, 0, 35, 0,226, 1, 0, 0,228, 1, 0, 0, 0, 0, 33, 0,225, 1, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,229, 1, 0, 0, +231, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,226, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0, +228, 1, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,231, 1, 0, 0,233, 1, 0, 0, + 0, 0, 35, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,229, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,232, 1, 0, 0, +234, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,234, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0, +219, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,220, 1, 0, 0,230, 1, 0, 0, + 0, 0, 35, 0,208, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,196, 1, 0, 0, +228, 1, 0, 0, 0, 0, 35, 0,205, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, +217, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,225, 1, 0, 0, + 0, 0, 35, 0,216, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,213, 1, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,214, 1, 0, 0, +232, 1, 0, 0, 0, 0, 35, 0,211, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, +209, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,210, 1, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,133, 1, 0, 0,247, 1, 0, 0, + 0, 0, 35, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0, +248, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,246, 1, 0, 0,248, 1, 0, 0, 0, 0, 35, 0, +243, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,244, 1, 0, 0, + 0, 0, 35, 0,244, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,139, 1, 0, 0, +241, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, +239, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0,240, 1, 0, 0, + 0, 0, 35, 0,240, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,143, 1, 0, 0, +237, 1, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,238, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0, +237, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,250, 1, 0, 0, + 0, 0, 35, 0,238, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,247, 1, 0, 0, +249, 1, 0, 0, 0, 0, 35, 0,238, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, +239, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,240, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0,249, 1, 0, 0, + 0, 0, 35, 0, 58, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0, +248, 1, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,120,246, 71, 27, 1, 0, 0, 0, 93, 1, 0, 0, 5, 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, + 56, 78,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 39, 0, 0, 56, 78,109, 3, 1, 0, 0, 0, 48, 0, 0, 0,244, 1, 0, 0, + 46, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 1, 0, 0, 0, 47, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 0, 3, 44, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0, + 3, 0, 0, 0, 45, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 3, 7, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 10, 0, 0, 0, + 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 9, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, + 10, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 3, 15, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 3, 17, 0, 0, 0, + 15, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, 20, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 3, 19, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0, 22, 0, 0, 0, + 20, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 3, 21, 0, 0, 0, 23, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, + 22, 0, 0, 0, 24, 0, 0, 0, 26, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 3, 27, 0, 0, 0, 25, 0, 0, 0, 23, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 3, 20, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 3, 29, 0, 0, 0, + 27, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 32, 0, 0, 0, 30, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 3, 31, 0, 0, 0, 33, 0, 0, 0, 27, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 3, 24, 0, 0, 0, 34, 0, 0, 0, + 32, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 3, 33, 0, 0, 0, 35, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 3, + 34, 0, 0, 0, 36, 0, 0, 0, 38, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 3, 39, 0, 0, 0, 37, 0, 0, 0, 35, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 3, 32, 0, 0, 0, 38, 0, 0, 0, 40, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 3, 41, 0, 0, 0, + 39, 0, 0, 0, 33, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 3, 38, 0, 0, 0, 44, 0, 0, 0, 42, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 3, 43, 0, 0, 0, 45, 0, 0, 0, 39, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 46, 0, 0, 0, + 44, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 3, 45, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 3, + 46, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, 37, 0, 0, 0, 47, 0, 0, 0, + 49, 0, 0, 0, 0, 0, 0, 3, 36, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 3, 53, 0, 0, 0, + 35, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 3, 34, 0, 0, 0, 24, 0, 0, 0, 54, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 3, 55, 0, 0, 0, 25, 0, 0, 0, 35, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 3, 24, 0, 0, 0, 22, 0, 0, 0, + 56, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 3, + 22, 0, 0, 0, 12, 0, 0, 0, 58, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0, 13, 0, 0, 0, 23, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 3, 12, 0, 0, 0, 10, 0, 0, 0, 62, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 3, 63, 0, 0, 0, + 11, 0, 0, 0, 13, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 3, 10, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 3, 65, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 46, 0, 0, 0, + 48, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 3, + 60, 0, 0, 0, 64, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 49, 0, 0, 0, 65, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 62, 0, 0, 0, 64, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 61, 0, 0, 0, + 65, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 63, 0, 0, 0, 59, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 56, 0, 0, 0, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 59, 0, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 60, 0, 0, 0, 54, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 0, 0, 0, 55, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 55, 0, 0, 0, + 53, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 50, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 53, 0, 0, 0, 51, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 60, 0, 0, 0, 48, 0, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, 0, 49, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 88, 0, 0, 0,173, 0, 0, 0,175, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0,174, 0, 0, 0, 89, 0, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 3, 86, 0, 0, 0,171, 0, 0, 0,173, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 3,174, 0, 0, 0, +172, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0,169, 0, 0, 0,171, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 3,172, 0, 0, 0,170, 0, 0, 0, 85, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0,167, 0, 0, 0, +169, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 3,170, 0, 0, 0,168, 0, 0, 0, 83, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 3, + 80, 0, 0, 0,165, 0, 0, 0,167, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0,166, 0, 0, 0, 81, 0, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, 91, 0, 0, 0,145, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 3,146, 0, 0, 0, + 92, 0, 0, 0, 79, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 3, 91, 0, 0, 0, 93, 0, 0, 0,147, 0, 0, 0,145, 0, 0, 0, + 0, 0, 0, 3,148, 0, 0, 0, 94, 0, 0, 0, 92, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 3, 93, 0, 0, 0, 95, 0, 0, 0, +149, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 3,150, 0, 0, 0, 96, 0, 0, 0, 94, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 3, + 95, 0, 0, 0, 97, 0, 0, 0,151, 0, 0, 0,149, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0, 98, 0, 0, 0, 96, 0, 0, 0, +150, 0, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, 99, 0, 0, 0,153, 0, 0, 0,151, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0, +100, 0, 0, 0, 98, 0, 0, 0,152, 0, 0, 0, 0, 0, 0, 3, 99, 0, 0, 0,101, 0, 0, 0,155, 0, 0, 0,153, 0, 0, 0, + 0, 0, 0, 3,156, 0, 0, 0,102, 0, 0, 0,100, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 3,101, 0, 0, 0,103, 0, 0, 0, +157, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0,104, 0, 0, 0,102, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 3, +103, 0, 0, 0,105, 0, 0, 0,159, 0, 0, 0,157, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0,106, 0, 0, 0,104, 0, 0, 0, +158, 0, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,107, 0, 0, 0,161, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 3,162, 0, 0, 0, +108, 0, 0, 0,106, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 3,107, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0,161, 0, 0, 0, + 0, 0, 0, 3, 67, 0, 0, 0, 66, 0, 0, 0,108, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,127, 0, 0, 0, +159, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 3,160, 0, 0, 0,128, 0, 0, 0,110, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 3, +127, 0, 0, 0,178, 0, 0, 0,157, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0,179, 0, 0, 0,128, 0, 0, 0, +160, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0,155, 0, 0, 0,157, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 3,158, 0, 0, 0, +156, 0, 0, 0,126, 0, 0, 0,179, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,153, 0, 0, 0,155, 0, 0, 0,125, 0, 0, 0, + 0, 0, 0, 3,156, 0, 0, 0,154, 0, 0, 0,124, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0,151, 0, 0, 0, +153, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 3,154, 0, 0, 0,152, 0, 0, 0,122, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 3, +119, 0, 0, 0,149, 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, 0, 0, 0, 3,152, 0, 0, 0,150, 0, 0, 0,120, 0, 0, 0, +122, 0, 0, 0, 0, 0, 0, 3,117, 0, 0, 0,147, 0, 0, 0,149, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 3,150, 0, 0, 0, +148, 0, 0, 0,118, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,145, 0, 0, 0,147, 0, 0, 0,117, 0, 0, 0, + 0, 0, 0, 3,148, 0, 0, 0,146, 0, 0, 0,116, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,163, 0, 0, 0, +145, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 3,146, 0, 0, 0,164, 0, 0, 0,114, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 3, +113, 0, 0, 0,180, 0, 0, 0,176, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0,181, 0, 0, 0,114, 0, 0, 0, +164, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,161, 0, 0, 0, 67, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 3, 67, 0, 0, 0, +162, 0, 0, 0,110, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0, 67, 0, 0, 0,177, 0, 0, 0,182, 0, 0, 0, + 0, 0, 0, 3,177, 0, 0, 0, 67, 0, 0, 0,112, 0, 0, 0,183, 0, 0, 0, 0, 0, 0, 3,176, 0, 0, 0,180, 0, 0, 0, +182, 0, 0, 0,177, 0, 0, 0, 0, 0, 0, 3,183, 0, 0, 0,181, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0, 0, 0, 0, 3, +134, 0, 0, 0,136, 0, 0, 0,175, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 3,175, 0, 0, 0,136, 0, 0, 0,135, 0, 0, 0, +174, 0, 0, 0, 0, 0, 0, 3,132, 0, 0, 0,134, 0, 0, 0,173, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 3,174, 0, 0, 0, +135, 0, 0, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0,132, 0, 0, 0,171, 0, 0, 0,169, 0, 0, 0, + 0, 0, 0, 3,172, 0, 0, 0,133, 0, 0, 0,131, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 3,165, 0, 0, 0,186, 0, 0, 0, +184, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0,187, 0, 0, 0,166, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 3, +130, 0, 0, 0,169, 0, 0, 0,167, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 3,168, 0, 0, 0,170, 0, 0, 0,131, 0, 0, 0, +185, 0, 0, 0, 0, 0, 0, 3,143, 0, 0, 0,189, 0, 0, 0,188, 0, 0, 0,186, 0, 0, 0, 0, 0, 0, 3,188, 0, 0, 0, +189, 0, 0, 0,144, 0, 0, 0,187, 0, 0, 0, 0, 0, 0, 3,184, 0, 0, 0,186, 0, 0, 0,188, 0, 0, 0, 68, 0, 0, 0, + 0, 0, 0, 3,188, 0, 0, 0,187, 0, 0, 0,185, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3,129, 0, 0, 0,130, 0, 0, 0, +184, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3,185, 0, 0, 0,131, 0, 0, 0,129, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 3, +141, 0, 0, 0,192, 0, 0, 0,190, 0, 0, 0,143, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0,193, 0, 0, 0,142, 0, 0, 0, +144, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0,194, 0, 0, 0,192, 0, 0, 0,141, 0, 0, 0, 0, 0, 0, 3,193, 0, 0, 0, +195, 0, 0, 0,140, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 3,138, 0, 0, 0,196, 0, 0, 0,194, 0, 0, 0,139, 0, 0, 0, + 0, 0, 0, 3,195, 0, 0, 0,197, 0, 0, 0,138, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 70, 0, 0, 0, +196, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 3,197, 0, 0, 0, 70, 0, 0, 0,137, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 3, +189, 0, 0, 0,143, 0, 0, 0,190, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 3,191, 0, 0, 0,144, 0, 0, 0,189, 0, 0, 0, + 69, 0, 0, 0, 0, 0, 0, 3, 69, 0, 0, 0,190, 0, 0, 0,205, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0, +191, 0, 0, 0, 69, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 3, 70, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,196, 0, 0, 0, + 0, 0, 0, 3,200, 0, 0, 0,198, 0, 0, 0, 70, 0, 0, 0,197, 0, 0, 0, 0, 0, 0, 3,196, 0, 0, 0,199, 0, 0, 0, +201, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 3,202, 0, 0, 0,200, 0, 0, 0,197, 0, 0, 0,195, 0, 0, 0, 0, 0, 0, 3, +194, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 3,204, 0, 0, 0,202, 0, 0, 0,195, 0, 0, 0, +193, 0, 0, 0, 0, 0, 0, 3,192, 0, 0, 0,203, 0, 0, 0,205, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0, +204, 0, 0, 0,193, 0, 0, 0,191, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0,203, 0, 0, 0,201, 0, 0, 0,199, 0, 0, 0, + 0, 0, 0, 3,202, 0, 0, 0,204, 0, 0, 0,198, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 3,198, 0, 0, 0,207, 0, 0, 0, +205, 0, 0, 0,203, 0, 0, 0, 0, 0, 0, 3,206, 0, 0, 0,207, 0, 0, 0,198, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 3, +138, 0, 0, 0,139, 0, 0, 0,163, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 3,164, 0, 0, 0,140, 0, 0, 0,138, 0, 0, 0, +176, 0, 0, 0, 0, 0, 0, 3,139, 0, 0, 0,141, 0, 0, 0,210, 0, 0, 0,163, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0, +142, 0, 0, 0,140, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 3,141, 0, 0, 0,143, 0, 0, 0,212, 0, 0, 0,210, 0, 0, 0, + 0, 0, 0, 3,213, 0, 0, 0,144, 0, 0, 0,142, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 3,143, 0, 0, 0,186, 0, 0, 0, +165, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 3,166, 0, 0, 0,187, 0, 0, 0,144, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 3, + 80, 0, 0, 0,208, 0, 0, 0,212, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 3,213, 0, 0, 0,209, 0, 0, 0, 81, 0, 0, 0, +166, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0,214, 0, 0, 0,210, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 3,211, 0, 0, 0, +215, 0, 0, 0,209, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0,163, 0, 0, 0,210, 0, 0, 0,214, 0, 0, 0, + 0, 0, 0, 3,211, 0, 0, 0,164, 0, 0, 0, 79, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 0,129, 0, 0, 0, + 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 0, 3, 71, 0, 0, 0,129, 0, 0, 0,131, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 3, +132, 0, 0, 0,130, 0, 0, 0,221, 0, 0, 0,219, 0, 0, 0, 0, 0, 0, 3,222, 0, 0, 0,131, 0, 0, 0,133, 0, 0, 0, +220, 0, 0, 0, 0, 0, 0, 3,134, 0, 0, 0,132, 0, 0, 0,219, 0, 0, 0,217, 0, 0, 0, 0, 0, 0, 3,220, 0, 0, 0, +133, 0, 0, 0,135, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 3,136, 0, 0, 0,134, 0, 0, 0,217, 0, 0, 0,216, 0, 0, 0, + 0, 0, 0, 3,218, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 3,216, 0, 0, 0,217, 0, 0, 0, +228, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0,218, 0, 0, 0,216, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 3, +217, 0, 0, 0,219, 0, 0, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0,220, 0, 0, 0,218, 0, 0, 0, +229, 0, 0, 0, 0, 0, 0, 3,219, 0, 0, 0,221, 0, 0, 0,224, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 3,225, 0, 0, 0, +222, 0, 0, 0,220, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 3,221, 0, 0, 0, 71, 0, 0, 0,223, 0, 0, 0,224, 0, 0, 0, + 0, 0, 0, 3,223, 0, 0, 0, 71, 0, 0, 0,222, 0, 0, 0,225, 0, 0, 0, 0, 0, 0, 3,223, 0, 0, 0,230, 0, 0, 0, +228, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 3,229, 0, 0, 0,230, 0, 0, 0,223, 0, 0, 0,225, 0, 0, 0, 0, 0, 0, 3, +224, 0, 0, 0,228, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,227, 0, 0, 0,229, 0, 0, 0,225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3,182, 0, 0, 0,180, 0, 0, 0,233, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, +181, 0, 0, 0,183, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 3,111, 0, 0, 0,182, 0, 0, 0,231, 0, 0, 0,253, 0, 0, 0, + 0, 0, 0, 3,232, 0, 0, 0,183, 0, 0, 0,112, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 3,109, 0, 0, 0,111, 0, 0, 0, +253, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 3,254, 0, 0, 0,112, 0, 0, 0,110, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, +180, 0, 0, 0,113, 0, 0, 0,251, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 3,252, 0, 0, 0,114, 0, 0, 0,181, 0, 0, 0, +234, 0, 0, 0, 0, 0, 0, 3,113, 0, 0, 0,115, 0, 0, 0,249, 0, 0, 0,251, 0, 0, 0, 0, 0, 0, 3,250, 0, 0, 0, +116, 0, 0, 0,114, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 3,115, 0, 0, 0,117, 0, 0, 0,247, 0, 0, 0,249, 0, 0, 0, + 0, 0, 0, 3,248, 0, 0, 0,118, 0, 0, 0,116, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 3,117, 0, 0, 0,119, 0, 0, 0, +245, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 3,246, 0, 0, 0,120, 0, 0, 0,118, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 3, +119, 0, 0, 0,121, 0, 0, 0,243, 0, 0, 0,245, 0, 0, 0, 0, 0, 0, 3,244, 0, 0, 0,122, 0, 0, 0,120, 0, 0, 0, +246, 0, 0, 0, 0, 0, 0, 3,121, 0, 0, 0,123, 0, 0, 0,241, 0, 0, 0,243, 0, 0, 0, 0, 0, 0, 3,242, 0, 0, 0, +124, 0, 0, 0,122, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 3,123, 0, 0, 0,125, 0, 0, 0,239, 0, 0, 0,241, 0, 0, 0, + 0, 0, 0, 3,240, 0, 0, 0,126, 0, 0, 0,124, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 3,125, 0, 0, 0,178, 0, 0, 0, +235, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 3,236, 0, 0, 0,179, 0, 0, 0,126, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 3, +178, 0, 0, 0,127, 0, 0, 0,237, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 3,238, 0, 0, 0,128, 0, 0, 0,179, 0, 0, 0, +236, 0, 0, 0, 0, 0, 0, 3,127, 0, 0, 0,109, 0, 0, 0,255, 0, 0, 0,237, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, +110, 0, 0, 0,128, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 3,237, 0, 0, 0,255, 0, 0, 0, 1, 1, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 3, 2, 1, 0, 0, 0, 1, 0, 0,238, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 3,235, 0, 0, 0,237, 0, 0, 0, + 19, 1, 0, 0, 21, 1, 0, 0, 0, 0, 0, 3, 20, 1, 0, 0,238, 0, 0, 0,236, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 3, +239, 0, 0, 0,235, 0, 0, 0, 21, 1, 0, 0, 17, 1, 0, 0, 0, 0, 0, 3, 22, 1, 0, 0,236, 0, 0, 0,240, 0, 0, 0, + 18, 1, 0, 0, 0, 0, 0, 3,241, 0, 0, 0,239, 0, 0, 0, 17, 1, 0, 0, 15, 1, 0, 0, 0, 0, 0, 3, 18, 1, 0, 0, +240, 0, 0, 0,242, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0, 3,243, 0, 0, 0,241, 0, 0, 0, 15, 1, 0, 0, 13, 1, 0, 0, + 0, 0, 0, 3, 16, 1, 0, 0,242, 0, 0, 0,244, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 3,245, 0, 0, 0,243, 0, 0, 0, + 13, 1, 0, 0, 11, 1, 0, 0, 0, 0, 0, 3, 14, 1, 0, 0,244, 0, 0, 0,246, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 3, +247, 0, 0, 0,245, 0, 0, 0, 11, 1, 0, 0, 9, 1, 0, 0, 0, 0, 0, 3, 12, 1, 0, 0,246, 0, 0, 0,248, 0, 0, 0, + 10, 1, 0, 0, 0, 0, 0, 3,249, 0, 0, 0,247, 0, 0, 0, 9, 1, 0, 0, 7, 1, 0, 0, 0, 0, 0, 3, 10, 1, 0, 0, +248, 0, 0, 0,250, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 3,251, 0, 0, 0,249, 0, 0, 0, 7, 1, 0, 0, 5, 1, 0, 0, + 0, 0, 0, 3, 8, 1, 0, 0,250, 0, 0, 0,252, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 3,233, 0, 0, 0,251, 0, 0, 0, + 5, 1, 0, 0, 23, 1, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0,252, 0, 0, 0,234, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 3, +255, 0, 0, 0,253, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 3, 4, 1, 0, 0,254, 0, 0, 0, 0, 1, 0, 0, + 2, 1, 0, 0, 0, 0, 0, 3,253, 0, 0, 0,231, 0, 0, 0, 25, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 3, 26, 1, 0, 0, +232, 0, 0, 0,254, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 3,231, 0, 0, 0,233, 0, 0, 0, 23, 1, 0, 0, 25, 1, 0, 0, + 0, 0, 0, 3, 24, 1, 0, 0,234, 0, 0, 0,232, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 3, 66, 0, 0, 0,107, 0, 0, 0, + 27, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 3, 28, 1, 0, 0,108, 0, 0, 0, 66, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 3, +107, 0, 0, 0,105, 0, 0, 0, 29, 1, 0, 0, 27, 1, 0, 0, 0, 0, 0, 3, 30, 1, 0, 0,106, 0, 0, 0,108, 0, 0, 0, + 28, 1, 0, 0, 0, 0, 0, 3,105, 0, 0, 0,103, 0, 0, 0, 31, 1, 0, 0, 29, 1, 0, 0, 0, 0, 0, 3, 32, 1, 0, 0, +104, 0, 0, 0,106, 0, 0, 0, 30, 1, 0, 0, 0, 0, 0, 3,103, 0, 0, 0,101, 0, 0, 0, 33, 1, 0, 0, 31, 1, 0, 0, + 0, 0, 0, 3, 34, 1, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 3,101, 0, 0, 0, 99, 0, 0, 0, + 35, 1, 0, 0, 33, 1, 0, 0, 0, 0, 0, 3, 36, 1, 0, 0,100, 0, 0, 0,102, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 3, + 99, 0, 0, 0, 97, 0, 0, 0, 37, 1, 0, 0, 35, 1, 0, 0, 0, 0, 0, 3, 38, 1, 0, 0, 98, 0, 0, 0,100, 0, 0, 0, + 36, 1, 0, 0, 0, 0, 0, 3, 97, 0, 0, 0, 95, 0, 0, 0, 39, 1, 0, 0, 37, 1, 0, 0, 0, 0, 0, 3, 40, 1, 0, 0, + 96, 0, 0, 0, 98, 0, 0, 0, 38, 1, 0, 0, 0, 0, 0, 3, 95, 0, 0, 0, 93, 0, 0, 0, 41, 1, 0, 0, 39, 1, 0, 0, + 0, 0, 0, 3, 42, 1, 0, 0, 94, 0, 0, 0, 96, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 3, 93, 0, 0, 0, 91, 0, 0, 0, + 43, 1, 0, 0, 41, 1, 0, 0, 0, 0, 0, 3, 44, 1, 0, 0, 92, 0, 0, 0, 94, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 3, + 51, 1, 0, 0, 52, 1, 0, 0, 71, 1, 0, 0, 81, 1, 0, 0, 0, 0, 0, 3, 72, 1, 0, 0, 52, 1, 0, 0, 51, 1, 0, 0, + 82, 1, 0, 0, 0, 0, 0, 3, 50, 1, 0, 0, 51, 1, 0, 0, 81, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, + 51, 1, 0, 0, 50, 1, 0, 0, 80, 1, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0, 50, 1, 0, 0, 79, 1, 0, 0, 83, 1, 0, 0, + 0, 0, 0, 3, 80, 1, 0, 0, 50, 1, 0, 0, 49, 1, 0, 0, 84, 1, 0, 0, 0, 0, 0, 3, 88, 0, 0, 0, 90, 0, 0, 0, + 49, 1, 0, 0, 83, 1, 0, 0, 0, 0, 0, 3, 49, 1, 0, 0, 90, 0, 0, 0, 89, 0, 0, 0, 84, 1, 0, 0, 0, 0, 0, 3, + 86, 0, 0, 0, 88, 0, 0, 0, 83, 1, 0, 0, 77, 1, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, 89, 0, 0, 0, 87, 0, 0, 0, + 78, 1, 0, 0, 0, 0, 0, 3, 84, 0, 0, 0, 86, 0, 0, 0, 77, 1, 0, 0, 73, 1, 0, 0, 0, 0, 0, 3, 78, 1, 0, 0, + 87, 0, 0, 0, 85, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 3, 82, 0, 0, 0, 84, 0, 0, 0, 73, 1, 0, 0, 75, 1, 0, 0, + 0, 0, 0, 3, 74, 1, 0, 0, 85, 0, 0, 0, 83, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 3, 73, 1, 0, 0, 79, 1, 0, 0, + 81, 1, 0, 0, 75, 1, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, 80, 1, 0, 0, 74, 1, 0, 0, 76, 1, 0, 0, 0, 0, 0, 3, + 73, 1, 0, 0, 77, 1, 0, 0, 83, 1, 0, 0, 79, 1, 0, 0, 0, 0, 0, 3, 84, 1, 0, 0, 78, 1, 0, 0, 74, 1, 0, 0, + 80, 1, 0, 0, 0, 0, 0, 3, 69, 1, 0, 0, 75, 1, 0, 0, 81, 1, 0, 0, 71, 1, 0, 0, 0, 0, 0, 3, 82, 1, 0, 0, + 76, 1, 0, 0, 70, 1, 0, 0, 72, 1, 0, 0, 0, 0, 0, 3, 80, 0, 0, 0, 82, 0, 0, 0, 75, 1, 0, 0, 69, 1, 0, 0, + 0, 0, 0, 3, 76, 1, 0, 0, 83, 0, 0, 0, 81, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 3,208, 0, 0, 0, 85, 1, 0, 0, + 87, 1, 0, 0,214, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, 86, 1, 0, 0,209, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 3, + 80, 0, 0, 0, 69, 1, 0, 0, 85, 1, 0, 0,208, 0, 0, 0, 0, 0, 0, 3, 86, 1, 0, 0, 70, 1, 0, 0, 81, 0, 0, 0, +209, 0, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0,214, 0, 0, 0, 87, 1, 0, 0, 89, 1, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, +215, 0, 0, 0, 79, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 3, 78, 0, 0, 0, 89, 1, 0, 0, 43, 1, 0, 0, 91, 0, 0, 0, + 0, 0, 0, 3, 44, 1, 0, 0, 90, 1, 0, 0, 79, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 3, 76, 0, 0, 0, 67, 1, 0, 0, + 95, 1, 0, 0, 47, 1, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, 68, 1, 0, 0, 76, 0, 0, 0, 47, 1, 0, 0, 0, 0, 0, 3, + 47, 1, 0, 0, 95, 1, 0, 0, 93, 1, 0, 0, 77, 0, 0, 0, 0, 0, 0, 3, 94, 1, 0, 0, 96, 1, 0, 0, 47, 1, 0, 0, + 77, 0, 0, 0, 0, 0, 0, 3, 77, 0, 0, 0, 93, 1, 0, 0, 91, 1, 0, 0, 48, 1, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0, + 94, 1, 0, 0, 77, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 3, 48, 1, 0, 0, 91, 1, 0, 0, 71, 1, 0, 0, 52, 1, 0, 0, + 0, 0, 0, 3, 72, 1, 0, 0, 92, 1, 0, 0, 48, 1, 0, 0, 52, 1, 0, 0, 0, 0, 0, 3, 69, 1, 0, 0, 71, 1, 0, 0, + 91, 1, 0, 0, 85, 1, 0, 0, 0, 0, 0, 3, 92, 1, 0, 0, 72, 1, 0, 0, 70, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 3, + 39, 1, 0, 0, 41, 1, 0, 0, 61, 1, 0, 0, 53, 1, 0, 0, 0, 0, 0, 3, 62, 1, 0, 0, 42, 1, 0, 0, 40, 1, 0, 0, + 54, 1, 0, 0, 0, 0, 0, 3, 75, 0, 0, 0, 59, 1, 0, 0, 67, 1, 0, 0, 76, 0, 0, 0, 0, 0, 0, 3, 68, 1, 0, 0, + 60, 1, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 3, 45, 1, 0, 0,101, 1, 0, 0, 99, 1, 0, 0, 46, 1, 0, 0, + 0, 0, 0, 3,100, 1, 0, 0,102, 1, 0, 0, 45, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 3, 46, 1, 0, 0, 99, 1, 0, 0, + 97, 1, 0, 0, 74, 0, 0, 0, 0, 0, 0, 3, 98, 1, 0, 0,100, 1, 0, 0, 46, 1, 0, 0, 74, 0, 0, 0, 0, 0, 0, 3, + 74, 0, 0, 0, 97, 1, 0, 0, 59, 1, 0, 0, 75, 0, 0, 0, 0, 0, 0, 3, 60, 1, 0, 0, 98, 1, 0, 0, 74, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 3, 35, 1, 0, 0, 37, 1, 0, 0,105, 1, 0, 0,107, 1, 0, 0, 0, 0, 0, 3,106, 1, 0, 0, + 38, 1, 0, 0, 36, 1, 0, 0,108, 1, 0, 0, 0, 0, 0, 3,107, 1, 0, 0,105, 1, 0, 0,111, 1, 0, 0,109, 1, 0, 0, + 0, 0, 0, 3,112, 1, 0, 0,106, 1, 0, 0,108, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 3,109, 1, 0, 0,111, 1, 0, 0, +113, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 3,114, 1, 0, 0,112, 1, 0, 0,110, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 3, +115, 1, 0, 0,113, 1, 0, 0,119, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 3,120, 1, 0, 0,114, 1, 0, 0,116, 1, 0, 0, +118, 1, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,121, 1, 0, 0,117, 1, 0, 0,119, 1, 0, 0, 0, 0, 0, 3,118, 1, 0, 0, +122, 1, 0, 0, 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0, 97, 1, 0, 0,117, 1, 0, 0,121, 1, 0, 0, + 0, 0, 0, 3,118, 1, 0, 0, 98, 1, 0, 0, 60, 1, 0, 0,122, 1, 0, 0, 0, 0, 0, 3, 97, 1, 0, 0, 99, 1, 0, 0, +115, 1, 0, 0,117, 1, 0, 0, 0, 0, 0, 3,116, 1, 0, 0,100, 1, 0, 0, 98, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 3, + 99, 1, 0, 0,101, 1, 0, 0,109, 1, 0, 0,115, 1, 0, 0, 0, 0, 0, 3,110, 1, 0, 0,102, 1, 0, 0,100, 1, 0, 0, +116, 1, 0, 0, 0, 0, 0, 3,101, 1, 0, 0,103, 1, 0, 0,107, 1, 0, 0,109, 1, 0, 0, 0, 0, 0, 3,108, 1, 0, 0, +104, 1, 0, 0,102, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 3, 33, 1, 0, 0, 35, 1, 0, 0,107, 1, 0, 0,103, 1, 0, 0, + 0, 0, 0, 3,108, 1, 0, 0, 36, 1, 0, 0, 34, 1, 0, 0,104, 1, 0, 0, 0, 0, 0, 3, 73, 0, 0, 0,103, 1, 0, 0, +101, 1, 0, 0, 45, 1, 0, 0, 0, 0, 0, 3,102, 1, 0, 0,104, 1, 0, 0, 73, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 3, + 27, 1, 0, 0, 29, 1, 0, 0, 31, 1, 0, 0, 33, 1, 0, 0, 0, 0, 0, 3, 32, 1, 0, 0, 30, 1, 0, 0, 28, 1, 0, 0, + 34, 1, 0, 0, 0, 0, 0, 3, 27, 1, 0, 0, 33, 1, 0, 0,103, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 3,104, 1, 0, 0, + 34, 1, 0, 0, 28, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 3, 72, 0, 0, 0, 27, 1, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 73, 0, 0, 0, 28, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 1, 0, 0, 39, 1, 0, 0, + 53, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 3, 54, 1, 0, 0, 40, 1, 0, 0, 38, 1, 0, 0,106, 1, 0, 0, 0, 0, 0, 3, + 53, 1, 0, 0, 55, 1, 0, 0,111, 1, 0, 0,105, 1, 0, 0, 0, 0, 0, 3,112, 1, 0, 0, 56, 1, 0, 0, 54, 1, 0, 0, +106, 1, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,125, 1, 0, 0,113, 1, 0, 0,111, 1, 0, 0, 0, 0, 0, 3,114, 1, 0, 0, +126, 1, 0, 0, 56, 1, 0, 0,112, 1, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,119, 1, 0, 0,113, 1, 0, 0,125, 1, 0, 0, + 0, 0, 0, 3,114, 1, 0, 0,120, 1, 0, 0, 58, 1, 0, 0,126, 1, 0, 0, 0, 0, 0, 3, 91, 1, 0, 0, 93, 1, 0, 0, +129, 1, 0, 0,127, 1, 0, 0, 0, 0, 0, 3,130, 1, 0, 0, 94, 1, 0, 0, 92, 1, 0, 0,128, 1, 0, 0, 0, 0, 0, 3, + 61, 1, 0, 0,127, 1, 0, 0,129, 1, 0, 0, 63, 1, 0, 0, 0, 0, 0, 3,130, 1, 0, 0,128, 1, 0, 0, 62, 1, 0, 0, + 64, 1, 0, 0, 0, 0, 0, 3, 41, 1, 0, 0, 43, 1, 0, 0,127, 1, 0, 0, 61, 1, 0, 0, 0, 0, 0, 3,128, 1, 0, 0, + 44, 1, 0, 0, 42, 1, 0, 0, 62, 1, 0, 0, 0, 0, 0, 3, 43, 1, 0, 0, 87, 1, 0, 0, 85, 1, 0, 0,127, 1, 0, 0, + 0, 0, 0, 3, 86, 1, 0, 0, 88, 1, 0, 0, 44, 1, 0, 0,128, 1, 0, 0, 0, 0, 0, 3, 85, 1, 0, 0, 91, 1, 0, 0, +127, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 1, 0, 0, 92, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 43, 1, 0, 0, 89, 1, 0, 0, 87, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 88, 1, 0, 0, 90, 1, 0, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0, 65, 1, 0, 0,123, 1, 0, 0,121, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0, + 66, 1, 0, 0, 58, 1, 0, 0,122, 1, 0, 0, 0, 0, 0, 3, 59, 1, 0, 0,121, 1, 0, 0,123, 1, 0, 0, 67, 1, 0, 0, + 0, 0, 0, 3,124, 1, 0, 0,122, 1, 0, 0, 60, 1, 0, 0, 68, 1, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0,129, 1, 0, 0, +123, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0,130, 1, 0, 0, 64, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 3, + 93, 1, 0, 0, 95, 1, 0, 0,123, 1, 0, 0,129, 1, 0, 0, 0, 0, 0, 3,124, 1, 0, 0, 96, 1, 0, 0, 94, 1, 0, 0, +130, 1, 0, 0, 0, 0, 0, 3, 67, 1, 0, 0,123, 1, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 1, 0, 0, +124, 1, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,131, 1, 0, 0,157, 1, 0, 0,145, 1, 0, 0, + 0, 0, 0, 3,158, 1, 0, 0,132, 1, 0, 0,144, 1, 0, 0,146, 1, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,145, 1, 0, 0, +147, 1, 0, 0,141, 1, 0, 0, 0, 0, 0, 3,148, 1, 0, 0,146, 1, 0, 0,144, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 3, +141, 1, 0, 0,147, 1, 0, 0,149, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 3,150, 1, 0, 0,148, 1, 0, 0,142, 1, 0, 0, +140, 1, 0, 0, 0, 0, 0, 3,139, 1, 0, 0,149, 1, 0, 0,151, 1, 0, 0,137, 1, 0, 0, 0, 0, 0, 3,152, 1, 0, 0, +150, 1, 0, 0,140, 1, 0, 0,138, 1, 0, 0, 0, 0, 0, 3,137, 1, 0, 0,151, 1, 0, 0,153, 1, 0, 0,135, 1, 0, 0, + 0, 0, 0, 3,154, 1, 0, 0,152, 1, 0, 0,138, 1, 0, 0,136, 1, 0, 0, 0, 0, 0, 3,135, 1, 0, 0,153, 1, 0, 0, +155, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 3,156, 1, 0, 0,154, 1, 0, 0,136, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 3, +153, 1, 0, 0,163, 1, 0, 0,161, 1, 0, 0,155, 1, 0, 0, 0, 0, 0, 3,162, 1, 0, 0,164, 1, 0, 0,154, 1, 0, 0, +156, 1, 0, 0, 0, 0, 0, 3,151, 1, 0, 0,165, 1, 0, 0,163, 1, 0, 0,153, 1, 0, 0, 0, 0, 0, 3,164, 1, 0, 0, +166, 1, 0, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 0, 3,149, 1, 0, 0,167, 1, 0, 0,165, 1, 0, 0,151, 1, 0, 0, + 0, 0, 0, 3,166, 1, 0, 0,168, 1, 0, 0,150, 1, 0, 0,152, 1, 0, 0, 0, 0, 0, 3,147, 1, 0, 0,169, 1, 0, 0, +167, 1, 0, 0,149, 1, 0, 0, 0, 0, 0, 3,168, 1, 0, 0,170, 1, 0, 0,148, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 3, +145, 1, 0, 0,171, 1, 0, 0,169, 1, 0, 0,147, 1, 0, 0, 0, 0, 0, 3,170, 1, 0, 0,172, 1, 0, 0,146, 1, 0, 0, +148, 1, 0, 0, 0, 0, 0, 3,145, 1, 0, 0,157, 1, 0, 0,159, 1, 0, 0,171, 1, 0, 0, 0, 0, 0, 3,160, 1, 0, 0, +158, 1, 0, 0,146, 1, 0, 0,172, 1, 0, 0, 0, 0, 0, 3, 61, 1, 0, 0, 63, 1, 0, 0,187, 1, 0, 0,185, 1, 0, 0, + 0, 0, 0, 3,188, 1, 0, 0, 64, 1, 0, 0, 62, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0,133, 1, 0, 0, +155, 1, 0, 0,187, 1, 0, 0, 0, 0, 0, 3,156, 1, 0, 0,134, 1, 0, 0, 64, 1, 0, 0,188, 1, 0, 0, 0, 0, 0, 3, + 53, 1, 0, 0, 61, 1, 0, 0,185, 1, 0, 0, 55, 1, 0, 0, 0, 0, 0, 3,186, 1, 0, 0, 62, 1, 0, 0, 54, 1, 0, 0, + 56, 1, 0, 0, 0, 0, 0, 3,125, 1, 0, 0,173, 1, 0, 0,157, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 3,158, 1, 0, 0, +174, 1, 0, 0,126, 1, 0, 0,132, 1, 0, 0, 0, 0, 0, 3,155, 1, 0, 0,161, 1, 0, 0,183, 1, 0, 0,187, 1, 0, 0, + 0, 0, 0, 3,184, 1, 0, 0,162, 1, 0, 0,156, 1, 0, 0,188, 1, 0, 0, 0, 0, 0, 3,181, 1, 0, 0,189, 1, 0, 0, +187, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 3,188, 1, 0, 0,190, 1, 0, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 0, 3, +177, 1, 0, 0,189, 1, 0, 0,181, 1, 0, 0,179, 1, 0, 0, 0, 0, 0, 3,182, 1, 0, 0,190, 1, 0, 0,178, 1, 0, 0, +180, 1, 0, 0, 0, 0, 0, 3,175, 1, 0, 0,191, 1, 0, 0,189, 1, 0, 0,177, 1, 0, 0, 0, 0, 0, 3,190, 1, 0, 0, +192, 1, 0, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 0, 3,173, 1, 0, 0,191, 1, 0, 0,175, 1, 0, 0,193, 1, 0, 0, + 0, 0, 0, 3,176, 1, 0, 0,192, 1, 0, 0,174, 1, 0, 0,194, 1, 0, 0, 0, 0, 0, 3,157, 1, 0, 0,173, 1, 0, 0, +193, 1, 0, 0,159, 1, 0, 0, 0, 0, 0, 3,194, 1, 0, 0,174, 1, 0, 0,158, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 3, + 55, 1, 0, 0,191, 1, 0, 0,173, 1, 0, 0,125, 1, 0, 0, 0, 0, 0, 3,174, 1, 0, 0,192, 1, 0, 0, 56, 1, 0, 0, +126, 1, 0, 0, 0, 0, 0, 3, 55, 1, 0, 0,185, 1, 0, 0,189, 1, 0, 0,191, 1, 0, 0, 0, 0, 0, 3,190, 1, 0, 0, +186, 1, 0, 0, 56, 1, 0, 0,192, 1, 0, 0, 0, 0, 0, 3,185, 1, 0, 0,187, 1, 0, 0,189, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,190, 1, 0, 0,188, 1, 0, 0,186, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,159, 1, 0, 0,193, 1, 0, 0, +195, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 3,196, 1, 0, 0,194, 1, 0, 0,160, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 3, +193, 1, 0, 0,175, 1, 0, 0,205, 1, 0, 0,195, 1, 0, 0, 0, 0, 0, 3,206, 1, 0, 0,176, 1, 0, 0,194, 1, 0, 0, +196, 1, 0, 0, 0, 0, 0, 3,175, 1, 0, 0,177, 1, 0, 0,203, 1, 0, 0,205, 1, 0, 0, 0, 0, 0, 3,204, 1, 0, 0, +178, 1, 0, 0,176, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 3,177, 1, 0, 0,179, 1, 0, 0,201, 1, 0, 0,203, 1, 0, 0, + 0, 0, 0, 3,202, 1, 0, 0,180, 1, 0, 0,178, 1, 0, 0,204, 1, 0, 0, 0, 0, 0, 3,179, 1, 0, 0,181, 1, 0, 0, +199, 1, 0, 0,201, 1, 0, 0, 0, 0, 0, 3,200, 1, 0, 0,182, 1, 0, 0,180, 1, 0, 0,202, 1, 0, 0, 0, 0, 0, 3, +181, 1, 0, 0,183, 1, 0, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 3,198, 1, 0, 0,184, 1, 0, 0,182, 1, 0, 0, +200, 1, 0, 0, 0, 0, 0, 3,183, 1, 0, 0,161, 1, 0, 0,217, 1, 0, 0,197, 1, 0, 0, 0, 0, 0, 3,218, 1, 0, 0, +162, 1, 0, 0,184, 1, 0, 0,198, 1, 0, 0, 0, 0, 0, 3,171, 1, 0, 0,159, 1, 0, 0,219, 1, 0, 0,207, 1, 0, 0, + 0, 0, 0, 3,220, 1, 0, 0,160, 1, 0, 0,172, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 3,169, 1, 0, 0,171, 1, 0, 0, +207, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 3,208, 1, 0, 0,172, 1, 0, 0,170, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 3, +167, 1, 0, 0,169, 1, 0, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 3,210, 1, 0, 0,170, 1, 0, 0,168, 1, 0, 0, +212, 1, 0, 0, 0, 0, 0, 3,165, 1, 0, 0,167, 1, 0, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 3,212, 1, 0, 0, +168, 1, 0, 0,166, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 3,163, 1, 0, 0,165, 1, 0, 0,213, 1, 0, 0,215, 1, 0, 0, + 0, 0, 0, 3,214, 1, 0, 0,166, 1, 0, 0,164, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 3,161, 1, 0, 0,163, 1, 0, 0, +215, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 3,216, 1, 0, 0,164, 1, 0, 0,162, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 3, +201, 1, 0, 0,199, 1, 0, 0,223, 1, 0, 0,221, 1, 0, 0, 0, 0, 0, 3,224, 1, 0, 0,200, 1, 0, 0,202, 1, 0, 0, +222, 1, 0, 0, 0, 0, 0, 3,221, 1, 0, 0,223, 1, 0, 0,225, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 3,226, 1, 0, 0, +224, 1, 0, 0,222, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 3,227, 1, 0, 0,225, 1, 0, 0,231, 1, 0, 0,229, 1, 0, 0, + 0, 0, 0, 3,232, 1, 0, 0,226, 1, 0, 0,228, 1, 0, 0,230, 1, 0, 0, 0, 0, 0, 3,229, 1, 0, 0,231, 1, 0, 0, +233, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 3,234, 1, 0, 0,232, 1, 0, 0,230, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 3, +207, 1, 0, 0,219, 1, 0, 0,229, 1, 0, 0,235, 1, 0, 0, 0, 0, 0, 3,230, 1, 0, 0,220, 1, 0, 0,208, 1, 0, 0, +236, 1, 0, 0, 0, 0, 0, 3,195, 1, 0, 0,227, 1, 0, 0,229, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 3,230, 1, 0, 0, +228, 1, 0, 0,196, 1, 0, 0,220, 1, 0, 0, 0, 0, 0, 3,195, 1, 0, 0,205, 1, 0, 0,221, 1, 0, 0,227, 1, 0, 0, + 0, 0, 0, 3,222, 1, 0, 0,206, 1, 0, 0,196, 1, 0, 0,228, 1, 0, 0, 0, 0, 0, 3,201, 1, 0, 0,221, 1, 0, 0, +205, 1, 0, 0,203, 1, 0, 0, 0, 0, 0, 3,206, 1, 0, 0,222, 1, 0, 0,202, 1, 0, 0,204, 1, 0, 0, 0, 0, 0, 3, +197, 1, 0, 0,217, 1, 0, 0,223, 1, 0, 0,199, 1, 0, 0, 0, 0, 0, 3,224, 1, 0, 0,218, 1, 0, 0,198, 1, 0, 0, +200, 1, 0, 0, 0, 0, 0, 3,215, 1, 0, 0,225, 1, 0, 0,223, 1, 0, 0,217, 1, 0, 0, 0, 0, 0, 3,224, 1, 0, 0, +226, 1, 0, 0,216, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 3,213, 1, 0, 0,231, 1, 0, 0,225, 1, 0, 0,215, 1, 0, 0, + 0, 0, 0, 3,226, 1, 0, 0,232, 1, 0, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 0, 3,211, 1, 0, 0,233, 1, 0, 0, +231, 1, 0, 0,213, 1, 0, 0, 0, 0, 0, 3,232, 1, 0, 0,234, 1, 0, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 0, 3, +209, 1, 0, 0,235, 1, 0, 0,233, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 3,234, 1, 0, 0,236, 1, 0, 0,210, 1, 0, 0, +212, 1, 0, 0, 0, 0, 0, 3,207, 1, 0, 0,235, 1, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,210, 1, 0, 0, +236, 1, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,135, 1, 0, 0,133, 1, 0, 0,247, 1, 0, 0,245, 1, 0, 0, + 0, 0, 0, 3,248, 1, 0, 0,134, 1, 0, 0,136, 1, 0, 0,246, 1, 0, 0, 0, 0, 0, 3,137, 1, 0, 0,135, 1, 0, 0, +245, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 3,246, 1, 0, 0,136, 1, 0, 0,138, 1, 0, 0,244, 1, 0, 0, 0, 0, 0, 3, +139, 1, 0, 0,137, 1, 0, 0,243, 1, 0, 0,241, 1, 0, 0, 0, 0, 0, 3,244, 1, 0, 0,138, 1, 0, 0,140, 1, 0, 0, +242, 1, 0, 0, 0, 0, 0, 3,141, 1, 0, 0,139, 1, 0, 0,241, 1, 0, 0,239, 1, 0, 0, 0, 0, 0, 3,242, 1, 0, 0, +140, 1, 0, 0,142, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 3,143, 1, 0, 0,141, 1, 0, 0,239, 1, 0, 0,237, 1, 0, 0, + 0, 0, 0, 3,240, 1, 0, 0,142, 1, 0, 0,144, 1, 0, 0,238, 1, 0, 0, 0, 0, 0, 3,131, 1, 0, 0,143, 1, 0, 0, +237, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,238, 1, 0, 0,144, 1, 0, 0,132, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 3, +237, 1, 0, 0,245, 1, 0, 0,247, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0,246, 1, 0, 0,238, 1, 0, 0, +250, 1, 0, 0, 0, 0, 0, 3,237, 1, 0, 0,239, 1, 0, 0,243, 1, 0, 0,245, 1, 0, 0, 0, 0, 0, 3,244, 1, 0, 0, +240, 1, 0, 0,238, 1, 0, 0,246, 1, 0, 0, 0, 0, 0, 3,239, 1, 0, 0,241, 1, 0, 0,243, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3,244, 1, 0, 0,242, 1, 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 57, 1, 0, 0,125, 1, 0, 0, +131, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 3,132, 1, 0, 0,126, 1, 0, 0, 58, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 3, + 57, 1, 0, 0,249, 1, 0, 0,247, 1, 0, 0, 65, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0,250, 1, 0, 0, 58, 1, 0, 0, + 66, 1, 0, 0, 0, 0, 0, 3, 63, 1, 0, 0, 65, 1, 0, 0,247, 1, 0, 0,133, 1, 0, 0, 0, 0, 0, 3,248, 1, 0, 0, + 66, 1, 0, 0, 64, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 3, 77, 69, 0, 0,176, 1, 0, 0, 40,248, 71, 27, 1, 0, 0, 0, + 46, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,240, 71, 27, 1, 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, 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, + 24,250, 71, 27, 1, 0, 0, 0,120, 0, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,252, 71, 27, 1, 0, 0, 0, 88,254, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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,250, 71, 27, 1, 0, 0, 0, 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,252, 71, 27, 1, 0, 0, 0, 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,200,254, 71, 27, 1, 0, 0, 0, 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, 4, 0, 0, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 1, 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, 67, 0, 0, 0, 30, 0, 4, 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, 8, 0, 0, 0, + 24,250, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,218, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, +104,250, 71, 27, 1, 0, 0, 0, 93, 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, 24,252, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, + 24,252, 71, 27, 1, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0, +255,127, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 1, 0, 1, 0,128,191,253,255,127,191, + 0, 0, 0, 0, 0, 0, 0, 0,255,127, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 1, 0, + 68, 65, 84, 65,104, 1, 0, 0,168,252, 71, 27, 1, 0, 0, 0, 93, 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, 88,254, 71, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,254, 71, 27, 1, 0, 0, 0, 49, 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, 3, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,200,254, 71, 27, 1, 0, 0, 0, 93, 1, 0, 0, 5, 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, +120, 0, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0,120, 0, 72, 27, 1, 0, 0, 0, 48, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 78, 84, 0, 0, 8, 1, 0, 0,216, 0, 72, 27, + 1, 0, 0, 0, 54, 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, 78, 84, 70,114,101,115,110,101,108, 66,108,101,110,100, 0, 67,111, 97,116,105, +110,103, 0, 0, 2, 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, 40, 2, 72, 27, 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0,232, 17, 72, 27, 1, 0, 0, 0,104, 21, 72, 27, + 1, 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, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,227, 55, 2, 1, 0, 0, 0,152, 11, 56, 2, 1, 0, 0, 0,232, 21, 72, 27, + 1, 0, 0, 0,136, 24, 72, 27, 1, 0, 0, 0,104, 25, 72, 27, 1, 0, 0, 0,104, 25, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 1, 0, 0, 40, 2, 72, 27, + 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0,120, 3, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,182, 7, 27, + 1, 0, 0, 0, 68,105,102,102,117,115,101, 32, 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 7, 72, 27, 1, 0, 0, 0,104, 7, 72, 27, + 1, 0, 0, 0, 72, 8, 72, 27, 1, 0, 0, 0, 72, 8, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,242,251,235,194, 32,247, 50,193, 0, 0, 22, 67, 0, 0, 40, 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,134,219,160, 66,195,109,102, 67, 90,192,206, 67, 90,192,241, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,219,180, 66,195,109, 92, 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, 24,242, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,120, 3, 72, 27, + 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0,200, 4, 72, 27, 1, 0, 0, 0, 40, 2, 72, 27, 1, 0, 0, 0,152,159, 7, 27, + 1, 0, 0, 0, 71,108,111,115,115,121, 32, 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 40, 9, 72, 27, 1, 0, 0, 0,232, 10, 72, 27, + 1, 0, 0, 0,200, 11, 72, 27, 1, 0, 0, 0,200, 11, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13,211,238,194, 48, 90,210,194, 0, 0, 22, 67, 0, 0, 40, 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,107, 4,158, 66, 54, 2,101, 67,135,193,139, 67,135,193,194, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107, 4,178, 66, 54, 2, 91, 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, 40,243, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,200, 4, 72, 27, + 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0,120, 3, 72, 27, 1, 0, 0, 0,200,212, 7, 27, + 1, 0, 0, 0, 70,114,101,115,110,101,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,127, 0, 17, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0,168, 12, 72, 27, 1, 0, 0, 0,168, 12, 72, 27, + 1, 0, 0, 0,136, 13, 72, 27, 1, 0, 0, 0,136, 13, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,186,176,239,194,252, 1,213, 66, 0, 0, 12, 67, 0, 0, 40, 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,190, 38,157, 66, 95,147, 90, 67, 73,204, 4, 68, 73, 76, 22, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 38,177, 66, 95,147, 80, 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,232,238, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 24, 6, 72, 27, + 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 4, 72, 27, 1, 0, 0, 0, 88,219, 7, 27, + 1, 0, 0, 0, 77,105,120, 32, 67,108,111,115,117,114,101, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0,104, 14, 72, 27, 1, 0, 0, 0, 40, 16, 72, 27, + 1, 0, 0, 0, 8, 17, 72, 27, 1, 0, 0, 0, 8, 17, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 21, 67,224, 63, 89, 65, 0, 0, 22, 67, 0, 0, 40, 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,223,181,173, 67,223,181,248, 67, 18, 34,199, 67, 18, 34,254, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,181,178, 67,223,181,243, 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,136,249, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,104, 7, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 2, 8, 27, + 1, 0, 0, 0, 67,111,108,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, 64,181,241, 62,205,204, 76, 63, 19, 31,179, 62, 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, 2, 0, 2, 0, 4, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +134,219,160, 66, 90, 64,214, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 19, 72, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 72, 8, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 77, 1, 27, 1, 0, 0, 0, 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 3, 0, 4, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,109,102, 67, 90, 64,224, 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, 68, 65, 84, 65,152, 0, 0, 0, 40, 9, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 8, 10, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,226, 7, 27, + 1, 0, 0, 0, 67,111,108,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,205,204, 76, 63,205,204, 76, 63,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, 2, 0, 2, 0, 4, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +107, 4,158, 66,135, 65,167, 67, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 19, 72, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 8, 10, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,232, 10, 72, 27, + 1, 0, 0, 0, 40, 9, 72, 27, 1, 0, 0, 0, 24,241, 7, 27, 1, 0, 0, 0, 82,111,117,103,104,110,101,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,205,204, 76, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,107, 4,158, 66,135, 65,157, 67, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 20, 72, 27, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,232, 10, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70,114,101,115,110,101,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,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 32, 11, 72, 27, 1, 0, 0, 0,255,255, 0, 0, +107, 4,158, 66,135, 65,147, 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, 68, 65, 84, 65,152, 0, 0, 0,200, 11, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,236, 7, 27, 1, 0, 0, 0, 66, 83, 68, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 3, 0, 4, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 54, 2,101, 67,135, 65,177, 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, 68, 65, 84, 65,152, 0, 0, 0,168, 12, 72, 27, + 1, 0, 0, 0, 50, 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, 70,114,101,115,110,101,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, 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, 4, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, +190, 38,157, 66, 73,140, 8, 68, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 20, 72, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,136, 13, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,218, 7, 27, 1, 0, 0, 0, 70, 97, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 4, 0, +255, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 95,147, 90, 67, 73,140, 13, 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, 68, 65, 84, 65,152, 0, 0, 0,104, 14, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 72, 15, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 12, 8, 27, + 1, 0, 0, 0, 70, 97, 99, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, +223,181,173, 67, 18,162,226, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 17, 72, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 72, 15, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 40, 16, 72, 27, + 1, 0, 0, 0,104, 14, 72, 27, 1, 0, 0, 0, 24, 13, 8, 27, 1, 0, 0, 0, 67,108,111,115,117,114,101, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,181,173, 67, 18,162,216, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 18, 72, 27, 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 40, 16, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 15, 72, 27, 1, 0, 0, 0,232, 13, 8, 27, + 1, 0, 0, 0, 67,108,111,115,117,114,101, 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,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +223,181,173, 67, 18,162,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 18, 72, 27, + 1, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 8, 17, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 14, 8, 27, 1, 0, 0, 0, 67,108,111,115,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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,223,181,248, 67, 18,162,236, 67, 1, 0, 0, 0, 0, 0, 0, 0, + 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, 0, 0, 0,232, 17, 72, 27, + 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,104, 18, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 4, 72, 27, + 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0,136, 13, 72, 27, 1, 0, 0, 0,104, 14, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,104, 18, 72, 27, 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,232, 18, 72, 27, + 1, 0, 0, 0,232, 17, 72, 27, 1, 0, 0, 0, 40, 2, 72, 27, 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0, 72, 8, 72, 27, + 1, 0, 0, 0, 72, 15, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,232, 18, 72, 27, + 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,104, 19, 72, 27, 1, 0, 0, 0,104, 18, 72, 27, 1, 0, 0, 0,120, 3, 72, 27, + 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0,200, 11, 72, 27, 1, 0, 0, 0, 40, 16, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,104, 19, 72, 27, 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,232, 19, 72, 27, + 1, 0, 0, 0,232, 18, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 2, 72, 27, 1, 0, 0, 0,232, 21, 72, 27, + 1, 0, 0, 0,104, 7, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,232, 19, 72, 27, + 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,104, 20, 72, 27, 1, 0, 0, 0,104, 19, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120, 3, 72, 27, 1, 0, 0, 0,200, 22, 72, 27, 1, 0, 0, 0, 40, 9, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,104, 20, 72, 27, 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,232, 20, 72, 27, + 1, 0, 0, 0,232, 19, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 72, 27, 1, 0, 0, 0,168, 23, 72, 27, + 1, 0, 0, 0, 8, 10, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,232, 20, 72, 27, + 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0,104, 21, 72, 27, 1, 0, 0, 0,104, 20, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 4, 72, 27, 1, 0, 0, 0,136, 24, 72, 27, 1, 0, 0, 0,168, 12, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,104, 21, 72, 27, 1, 0, 0, 0, 53, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 20, 72, 27, 1, 0, 0, 0, 24, 6, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 17, 72, 27, + 1, 0, 0, 0,104, 25, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,232, 21, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,200, 22, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67,111,108,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, 64,181,241, 62,205,204, 76, 63, 19, 31,179, 62, 0, 0,128, 63, 0, 0, 0,207, 0, 0, 0, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 4, 0,255, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 80,182,191, 0, 0,250, 67, 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, 68, 65, 84, 65,152, 0, 0, 0,200, 22, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,168, 23, 72, 27, + 1, 0, 0, 0,232, 21, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111, 97,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,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, + 0, 0,128, 63, 0, 0, 0,207, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 4, 0, +255, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 80,182,191, 0, 0,230, 67, 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, 68, 65, 84, 65,152, 0, 0, 0,168, 23, 72, 27, + 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0,136, 24, 72, 27, 1, 0, 0, 0,200, 22, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82,111,117,103,104,110,101,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,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 0, 0, 0, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,255, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, +128, 80,182,191, 0, 0,210, 67, 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, 68, 65, 84, 65,152, 0, 0, 0,136, 24, 72, 27, 1, 0, 0, 0, 50, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 23, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,108,101,110,100, 0,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, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,207, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, +255, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,128, 80,182,191, 0, 0,190, 67, 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, 68, 65, 84, 65,152, 0, 0, 0,104, 25, 72, 27, + 1, 0, 0, 0, 50, 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, 67,108,111,115,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,207, 0, 0, 0, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, +240, 90, 16, 68, 0, 0,215, 67, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 21, 72, 27, + 1, 0, 0, 0, 66, 82, 0, 0,248, 2, 0, 0, 72, 26, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,216, 32, 72, 27, + 1, 0, 0, 0, 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, 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, 63, 0, 0, 0, 0,232, 30, 72, 27, + 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, 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, @@ -7762,12 +13017,45 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,176, 26, 72, 27, + 1, 0, 0, 0, 24, 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, 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,232, 30, 72, 27, 1, 0, 0, 0, 88, 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, 32, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 32, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,216, 32, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 8, 38, 72, 27, + 1, 0, 0, 0, 72, 26, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 24, 36, 72, 27, + 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, 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, @@ -7776,12 +13064,45 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 64, 33, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 36, 72, 27, 1, 0, 0, 0, 88, 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,152, 37, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,152, 37, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 8, 38, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 56, 43, 72, 27, + 1, 0, 0, 0,216, 32, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 72, 41, 72, 27, + 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, 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, @@ -7790,121 +13111,140 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 1, 24, 4,213,128,192, 0, 0, 0, 46, 0, 0, 0, 1, 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, 1, 0, 0, 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,213,130, 0, 4,213,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 4,213,131,176, 4,213,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, 4,213,130, 48, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4,213,132,128, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,213,134,192, - 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 51,128, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 4, 63,128, 0, 4, - 63,128, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 4, 4,213,130, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,152,214, 32, - 68, 65, 84, 65, 0, 0, 1, 84, 4,213,130, 48, 0, 0, 1, 81, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 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, 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, 24, 1, 0, 0,112, 38, 72, 27, + 1, 0, 0, 0, 24, 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, 4,213,131,176, 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, 72, 41, 72, 27, 1, 0, 0, 0, 88, 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,200, 42, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,200, 42, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 56, 43, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,104, 48, 72, 27, + 1, 0, 0, 0, 8, 38, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,120, 46, 72, 27, + 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, 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, 68, 65, 84, 65, 0, 0, 0,160, 4,213,131,176, 0, 0, 0, 52, 0, 0, 0, 8, 63,128, 0, 0, - 63,127,255,255,191,128, 0, 0, 73,230, 73,230,182, 26, 1, 0, 63,128, 0, 0,191,128, 0, 0,191,128, 0, 0, 73,230,182, 26, -182, 26, 1, 0,191,128, 0, 1,191,127,255,253,191,128, 0, 0,182, 26,182, 26,182, 26, 1, 0,191,127,255,250, 63,128, 0, 3, -191,128, 0, 0,182, 26, 73,230,182, 26, 1, 0, 63,128, 0, 4, 63,127,255,247, 63,128, 0, 0, 73,230, 73,230, 73,230, 1, 0, - 63,127,255,245,191,128, 0, 5, 63,128, 0, 0, 73,230,182, 26, 73,230, 1, 0,191,128, 0, 3,191,127,255,250, 63,128, 0, 0, -182, 26,182, 26, 73,230, 1, 0,191,127,255,255, 63,128, 0, 0, 63,128, 0, 0,182, 26, 73,230, 73,230, 1, 0, 68, 65, 84, 65, - 0, 0, 1, 84, 4,213,132,128, 0, 0, 1, 81, 0, 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, 4,213,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,160, 43, 72, 27, + 1, 0, 0, 0, 24, 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, 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,120, 46, 72, 27, 1, 0, 0, 0, 88, 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,248, 47, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,144, 4,213,134, 0, 0, 0, 0, 49, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 35, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 35, - 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 5, - 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 35, 0, 0, 0, 6, - 0, 0, 0, 7, 0, 0, 0, 35, 68, 65, 84, 65, 0, 0, 1, 84, 4,213,134,192, 0, 0, 1, 81, 0, 0, 0, 5, 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, 4,213,136, 64, - 0, 0, 0, 6, 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, - 67,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, - 1, 75,138,139, 0, 0, 0, 6, 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, 67,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, 1, 75,138,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,248, 47, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,104, 48, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,152, 53, 72, 27, + 1, 0, 0, 0, 56, 43, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,168, 51, 72, 27, + 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, 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, 68, 65, 84, 65, 0, 0, 0,120, 4,213,136, 64, 0, 0, 0, 48, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 7, - 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, - 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 7, - 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 66, 82, - 0, 0, 2,204, 2,152,254, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 2, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,138, 32, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,208, 48, 72, 27, + 1, 0, 0, 0, 24, 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, 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,168, 51, 72, 27, 1, 0, 0, 0, 88, 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, 53, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,152,254,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 4,213,138, 32, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, - 61,194,189, 46, 4,213,139, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 53, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,152, 53, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,200, 58, 72, 27, + 1, 0, 0, 0,104, 48, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,216, 56, 72, 27, + 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, 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, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,139, 96, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 2, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 6, 32, - 2,152,254, 32, 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, 1, 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, - 0, 0, 0, 0, 4,213,139,192, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, @@ -7912,43 +13252,45 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, - 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 2,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, + 0, 0, 16, 0, 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, 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, 24, 1, 0, 0, 0, 54, 72, 27, + 1, 0, 0, 0, 24, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,139,192, 0, 0, 1, 76, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,141, 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, 56, 72, 27, 1, 0, 0, 0, 88, 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, 88, 58, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,141, 0, 0, 0, 1, 74, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 6, 32, - 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 10, 32, 2,153, 2, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,141, 96, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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,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, 88, 58, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,200, 58, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,248, 63, 72, 27, + 1, 0, 0, 0,152, 53, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 8, 62, 72, 27, + 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, 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, @@ -7956,259 +13298,234 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 6,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 4,213,141, 96, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,142,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, + 0, 0, 2, 0, 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, 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, 24, 1, 0, 0, 48, 59, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 8, 62, 72, 27, 1, 0, 0, 0, 88, 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,136, 63, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 4,213,142,160, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153, 10, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 14, 32, 2,153, 6, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,143, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,136, 63, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,248, 63, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 40, 69, 72, 27, + 1, 0, 0, 0,200, 58, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 56, 67, 72, 27, + 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, 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, 30, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 10,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,143, 0, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 4,213,144, 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, 12, 0, 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, 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, 24, 1, 0, 0, 96, 64, 72, 27, + 1, 0, 0, 0, 24, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,144, 64, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 14, 32, 0, 0, 1, 80, 0, 0, 0, 1, - 2,153, 18, 32, 2,153, 10, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,144,160, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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, 56, 67, 72, 27, 1, 0, 0, 0, 88, 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,184, 68, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,184, 68, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 40, 69, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 88, 74, 72, 27, + 1, 0, 0, 0,248, 63, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 63, 0, 0, 0, 0,104, 72, 72, 27, + 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, 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, 2, 0, 0, 0, 35, - 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, - 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 14,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,144,160, 0, 0, 1, 76, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,145,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,145,224, - 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, - 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,153, 18, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 22, 32, 2,153, 14, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,146, 64, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 30, 0, 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, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 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, 24, 1, 0, 0,144, 69, 72, 27, + 1, 0, 0, 0, 24, 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, 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,104, 72, 72, 27, 1, 0, 0, 0, 88, 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,232, 73, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,153, 18,108, 0, 0, 0, 24, 0, 0, 0, 1, 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,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, 73, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 88, 74, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,136, 79, 72, 27, + 1, 0, 0, 0, 40, 69, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,152, 77, 72, 27, + 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 4,213,146, 64, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, - 4,213,147,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,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, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 4,213,147,128, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 22, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 26, 32, 2,153, 18, 32, - 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, 1, 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, 0, 0, 0, 0, - 4,213,147,224, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,192, 74, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 77, 72, 27, 1, 0, 0, 0, 88, 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, 24, 79, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 6, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 22,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,147,224, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,190,175, 97,228, - 63,112,131, 50,191,127,243,218,188,157,183, 10, 4,213,149, 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,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, 24, 79, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,136, 79, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,184, 84, 72, 27, + 1, 0, 0, 0, 88, 74, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,200, 82, 72, 27, + 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, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,149, 32, 0, 0, 1, 74, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 61, 35,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 26, 32, 0, 0, 1, 80, - 0, 0, 0, 1, 2,153, 30, 32, 2,153, 22, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,149,128, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,240, 79, 72, 27, + 1, 0, 0, 0, 24, 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, 12, - 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 26,108, 0, 0, 0, 24, - 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,149,128, - 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,150,192, 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,200, 82, 72, 27, 1, 0, 0, 0, 88, 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, 72, 84, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 4,213,150,192, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, - 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,153, 30, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 34, 32, 2,153, 26, 32, 0, 13,160, 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, 3, 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, 0, 0, 0, 0, 4,213,151, 32, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,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,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, 72, 84, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,184, 84, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,232, 89, 72, 27, + 1, 0, 0, 0,136, 79, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,248, 87, 72, 27, + 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, 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, @@ -8216,259 +13533,234 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 8, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,153, 30,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 4,213,151, 32, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, -186,255, 97,114, 4,213,152, 96, 0, 0, 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, 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, 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, 24, 1, 0, 0, 32, 85, 72, 27, + 1, 0, 0, 0, 24, 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, 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,248, 87, 72, 27, 1, 0, 0, 0, 88, 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,120, 89, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,152, 96, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 34, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 38, 32, - 2,153, 30, 32, 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, 1, 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, - 0, 0, 0, 0, 4,213,152,192, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,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,120, 89, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,232, 89, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 24, 95, 72, 27, + 1, 0, 0, 0,184, 84, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 40, 93, 72, 27, + 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, 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, 2, 0, 0, 0, 35, 0, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 34,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,152,192, 0, 0, 1, 76, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 80, 90, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 40, 93, 72, 27, 1, 0, 0, 0, 88, 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, 94, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,154, 0, 0, 0, 1, 74, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 38, 32, - 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 42, 32, 2,153, 34, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,154, 96, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 94, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 24, 95, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 72,100, 72, 27, + 1, 0, 0, 0,232, 89, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 88, 98, 72, 27, + 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, 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, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 38,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 4,213,154, 96, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 4,213,155,160, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153, 42, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 46, 32, 2,153, 38, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,156, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 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, 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, 24, 1, 0, 0,128, 95, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 98, 72, 27, 1, 0, 0, 0, 88, 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,216, 99, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,216, 99, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 72,100, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,120,105, 72, 27, + 1, 0, 0, 0, 24, 95, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,136,103, 72, 27, + 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, 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, 2, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 42,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,156, 0, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 4,213,157, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,157, 64, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 46, 32, 0, 0, 1, 80, 0, 0, 0, 1, - 2,153, 50, 32, 2,153, 42, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,157,160, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 12, 0, 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, 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, 24, 1, 0, 0,176,100, 72, 27, + 1, 0, 0, 0, 24, 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, 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,136,103, 72, 27, 1, 0, 0, 0, 88, 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, 8,105, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 35, - 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, - 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 46,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,157,160, 0, 0, 1, 76, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,158,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 8,105, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,120,105, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,168,110, 72, 27, + 1, 0, 0, 0, 72,100, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,184,108, 72, 27, + 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, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,158,224, - 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, - 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,153, 50, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 54, 32, 2,153, 46, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,159, 64, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,224,105, 72, 27, + 1, 0, 0, 0, 24, 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, 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,184,108, 72, 27, 1, 0, 0, 0, 88, 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, 56,110, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,153, 50,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 4,213,159, 64, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, - 4,213,160,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 4,213,160,128, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 54, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 58, 32, 2,153, 50, 32, - 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, 1, 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, 0, 0, 0, 0, - 4,213,160,224, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,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, 56,110, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,168,110, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,216,115, 72, 27, + 1, 0, 0, 0,120,105, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,232,113, 72, 27, + 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, 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, @@ -8476,303 +13768,282 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 54,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,160,224, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,162, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 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, 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, 24, 1, 0, 0, 16,111, 72, 27, + 1, 0, 0, 0, 24, 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, 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,232,113, 72, 27, 1, 0, 0, 0, 88, 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,115, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,162, 32, 0, 0, 1, 74, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 58, 32, 0, 0, 1, 80, - 0, 0, 0, 1, 2,153, 62, 32, 2,153, 54, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,162,128, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,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,115, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,216,115, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 8,121, 72, 27, + 1, 0, 0, 0,168,110, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 24,119, 72, 27, + 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, 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, 12, - 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 58,108, 0, 0, 0, 24, - 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,162,128, - 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,163,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 64,116, 72, 27, + 1, 0, 0, 0, 24, 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, 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,119, 72, 27, 1, 0, 0, 0, 88, 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,152,120, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 4,213,163,192, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, - 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,153, 62, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 66, 32, 2,153, 58, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,164, 32, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,152,120, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 8,121, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 56,126, 72, 27, + 1, 0, 0, 0,216,115, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 72,124, 72, 27, + 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, 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, 12, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,153, 62,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 4,213,164, 32, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, - 61,194,189, 46, 4,213,165, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0,112,121, 72, 27, + 1, 0, 0, 0, 24, 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, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,165, 96, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 66, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 70, 32, - 2,153, 62, 32, 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, 1, 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, - 0, 0, 0, 0, 4,213,165,192, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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, 72,124, 72, 27, 1, 0, 0, 0, 88, 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,200,125, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,200,125, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 56,126, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,104,131, 72, 27, + 1, 0, 0, 0, 8,121, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 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, 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, 63, 0, 0, 0, 0,120,129, 72, 27, + 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, 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, 2, 0, 0, 0, 35, 0, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 66,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,165,192, 0, 0, 1, 76, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,167, 0, 0, 0, 1, 74, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 70, 32, - 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 74, 32, 2,153, 66, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,167, 96, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 2, 0, 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, 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, 24, 1, 0, 0,160,126, 72, 27, + 1, 0, 0, 0, 24, 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, 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,120,129, 72, 27, 1, 0, 0, 0, 88, 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,248,130, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,248,130, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,104,131, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,152,136, 72, 27, + 1, 0, 0, 0, 56,126, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,168,134, 72, 27, + 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, 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, 6, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, - 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 70,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 4,213,167, 96, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,168,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 4,213,168,160, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153, 74, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 78, 32, 2,153, 70, 32, 0, 1,174,232, - 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, 1, 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, 0, 0, 0, 0, 4,213,169, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 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, 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, 24, 1, 0, 0,208,131, 72, 27, + 1, 0, 0, 0, 24, 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, 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,168,134, 72, 27, 1, 0, 0, 0, 88, 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,136, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 1, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 74,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,169, 0, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 4,213,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,136, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,152,136, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,200,141, 72, 27, + 1, 0, 0, 0,104,131, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 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, 2, 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, 63, 0, 0, 0, 0,216,139, 72, 27, + 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, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,170, 64, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 78, 32, 0, 0, 1, 80, 0, 0, 0, 1, - 2,153, 82, 32, 2,153, 74, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,170,160, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 0,137, 72, 27, + 1, 0, 0, 0, 24, 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, 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,139, 72, 27, 1, 0, 0, 0, 88, 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, 88,141, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 35, - 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, - 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 78,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,170,160, 0, 0, 1, 76, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,171,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,171,224, - 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, - 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,153, 82, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 86, 32, 2,153, 78, 32, 0, 1,184,102, 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, 2, 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, 0, 0, 0, 0, 4,213,172, 64, 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,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, 88,141, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,200,141, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,248,146, 72, 27, + 1, 0, 0, 0,152,136, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 8,145, 72, 27, + 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, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8780,302 +14051,280 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 63, 78,119,160, - 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,153, 82,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 4,213,172, 64, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, - 4,213,173,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, 16, 0, 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, 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, 24, 1, 0, 0, 48,142, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 8,145, 72, 27, 1, 0, 0, 0, 88, 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,136,146, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 4,213,173,128, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 86, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 90, 32, 2,153, 82, 32, - 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, 1, 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, 0, 0, 0, 0, - 4,213,173,224, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,136,146, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,248,146, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 40,152, 72, 27, + 1, 0, 0, 0,200,141, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 56,150, 72, 27, + 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, 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, 16, 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 86,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,173,224, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,175, 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, 2, 0, 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, 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, 24, 1, 0, 0, 96,147, 72, 27, + 1, 0, 0, 0, 24, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,175, 32, 0, 0, 1, 74, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 90, 32, 0, 0, 1, 80, - 0, 0, 0, 1, 2,153, 94, 32, 2,153, 86, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,175,128, 0, 1, 0, 1, 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, 56,150, 72, 27, 1, 0, 0, 0, 88, 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,184,151, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,184,151, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 40,152, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 88,157, 72, 27, + 1, 0, 0, 0,248,146, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,104,155, 72, 27, + 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, 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, 2, - 0, 0, 0, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, - 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 90,108, 0, 0, 0, 24, - 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,175,128, - 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,176,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 4,213,176,192, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,153, 94, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153, 98, 32, 2,153, 90, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,177, 32, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,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, 2, 0, 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, 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, 24, 1, 0, 0,144,152, 72, 27, + 1, 0, 0, 0, 24, 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, 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,104,155, 72, 27, 1, 0, 0, 0, 88, 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,156, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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,156, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 88,157, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,136,162, 72, 27, + 1, 0, 0, 0, 40,152, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,152,160, 72, 27, + 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, 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, 2, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,153, 94,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 4,213,177, 32, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224, -186,255, 97,114, 4,213,178, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,178, 96, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 98, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153,102, 32, - 2,153, 94, 32, 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, 1, 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, - 0, 0, 0, 0, 4,213,178,192, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 16, 0, 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, 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, 24, 1, 0, 0,192,157, 72, 27, + 1, 0, 0, 0, 24, 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, 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,160, 72, 27, 1, 0, 0, 0, 88, 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, 24,162, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 98,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,178,192, 0, 0, 1, 76, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 24,162, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,136,162, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,184,167, 72, 27, + 1, 0, 0, 0, 88,157, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0,200,165, 72, 27, + 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, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,180, 0, 0, 0, 1, 74, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, - 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153,102, 32, - 0, 0, 1, 80, 0, 0, 0, 1, 2,153,106, 32, 2,153, 98, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,180, 96, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 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, 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, 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, 24, 1, 0, 0,240,162, 72, 27, + 1, 0, 0, 0, 24, 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, 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,200,165, 72, 27, 1, 0, 0, 0, 88, 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, 72,167, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153,102,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 4,213,180, 96, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 4,213,181,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 72,167, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,184,167, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0,232,172, 72, 27, + 1, 0, 0, 0,136,162, 72, 27, 1, 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, 2, 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, 63, 0, 0, 0, 0,248,170, 72, 27, + 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, 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, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 4,213,181,160, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153,106, 32, 0, 0, 1, 80, 0, 0, 0, 1, 2,153,110, 32, 2,153,102, 32, 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, 2, 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, 0, 0, 0, 0, 4,213,182, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 32,168, 72, 27, + 1, 0, 0, 0, 24, 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, 16, 0, 0, 0, 35, 8, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153,106,108, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 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,248,170, 72, 27, 1, 0, 0, 0, 88, 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,120,172, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,182, 0, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 4,213,183, 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,183, 64, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153,110, 32, 0, 0, 1, 80, 0, 0, 0, 1, - 2,153,114, 32, 2,153,106, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,183,160, 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,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,120,172, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0,232,172, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 24,178, 72, 27, + 1, 0, 0, 0,184,167, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 40,176, 72, 27, + 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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,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, @@ -9083,97 +14332,97 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 75, - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,153,110,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 4,213,183,160, 0, 0, 1, 76, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 4,213,184,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 24, 1, 0, 0, 80,173, 72, 27, + 1, 0, 0, 0, 24, 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, 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, 40,176, 72, 27, 1, 0, 0, 0, 88, 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,177, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 4,213,184,224, - 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, - 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,153,114, 32, 0, 0, 1, 80, 0, 0, 0, 1, 0, 0, 0, 0, 2,153,110, 32, 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, 1, 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, 0, 0, 0, 0, 4,213,185, 64, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 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,177, 72, 27, 1, 0, 0, 0, 86, 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,248, 2, 0, 0, 24,178, 72, 27, 1, 0, 0, 0, 92, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,172, 72, 27, 1, 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, 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, 63, 0, 0, 0, 0, 88,181, 72, 27, + 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, 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, 2, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, - 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, - 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 2,153,114,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 4,213,185, 64, 0, 0, 1, 76, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, - 4,213,186,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 4,213,186,128, 0, 0, 1, 74, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 83, 69, 82, 0, 0, 13, 72, 1, 86,143, 0, 0, 0, 0,189, 0, 0, 0, 1, 1, 17, 8, 33, 0, 0, 6, 63, - 0, 0, 0, 5, 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, 2, 0, 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, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 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, 24, 1, 0, 0,128,178, 72, 27, + 1, 0, 0, 0, 24, 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, 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,181, 72, 27, 1, 0, 0, 0, 88, 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,216,182, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,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,216,182, 72, 27, 1, 0, 0, 0, 86, 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, 13, 0, 0,160,123,120, 1, 1, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 33, 56, 17, 1, + 63, 2, 0, 0, 5, 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, 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, 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, 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, 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, @@ -9187,13 +14436,13 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, @@ -9207,2160 +14456,2163 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 0, 2, 1, 94, 0, 0, 0, 8, 0, 0, 0, 3, 0, 39, 52, 56, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 2, 0, 0,172, 68, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, - 0, 0, 0, 64, 0, 5, 0, 2, 2,153,132, 32, 2,153,132, 32, 4,218,198,160, 4,218,198,160, 4,218,203, 80, 4,218,203, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 4,213,136,224, 4,213,189,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, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, - 0, 0, 0, 1, 0, 0, 0, 0, 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0,191,100, 90, 30, 62,153,153,154, 63,102,102,102, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 62,254,250, 31, 63, 0, 0, 9, 63, 25,153,156, 0, 0, 0, 0, 62, 76,204,205, 62, 76,204,205, 62, 76,204,205, 63,128, 0, 0, - 63, 22,135, 44, 62,235,133, 32, 62,125,243,184, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 63, 76, 73,195, 63, 86,135, 42, - 63,128, 0, 0, 0, 0, 0, 0, 61,135, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 62, 93, 47, 16,190,200,180, 58, -190, 93, 47, 24, 0, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0, 0, 0,128, 0, 0, 0, 0, - 31,144, 0, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40, 52, 33, 9, + 0, 0, 0, 0, 6, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, + 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 56,132,109, 3, 1, 0, 0, 0, 56,132,109, 3, 1, 0, 0, 0, 40,125,157, 23, + 1, 0, 0, 0, 40,125,157, 23, 1, 0, 0, 0,136,126,157, 23, 1, 0, 0, 0,136,126,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 29, 72, 27, 1, 0, 0, 0,136, 29, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 1, 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, 0, 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,100, 0,100, 0, + 0, 0, 0, 0, 2, 0, 1, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 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, - 68, 65, 84, 65, 0, 0, 30, 80, 2,153,132, 32, 0, 0, 0,186, 0, 0, 0, 1, 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, 0, 1, 0, 15,255,241, 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, 0, 1, 0, 0, 0, 25, 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, 0, 1, 0, 15,255,241, 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, 0, 1, 0, 15,255,241, 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, 0, 1,255,236, 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, 0, 1,255,236, 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, 0, 1, 0, 15,255,241, 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, 0, 25,255,236, 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, 0, 25,255,236, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0, 38, 0, 0, 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, 0, 1, 0, 5,255,251, 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, 0, 5,255,251, 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, 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,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,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,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, 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, 2, 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, 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, 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, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 30, 0, 0, 56,132,109, 3, 1, 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, 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, 5, 0,251,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, 5, 0, 0, 0, 0, 0, 0,255, 71, 71, 71,255, 86,128,194,255, +255,255,255,255,230,230,230,255, 0, 0, 0,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 61, 61, 61,255, 61, 61, 61,255, +255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,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,161,161,161,255,153,153,153,255, + 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,251,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,251,255, 0, 0, 0, 0, 0, 0, 0,255, 71, 71, 71,255, 71, 71, 71,255, + 47, 47, 47,255,255,255,255,255,204,204,204,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 71, 71, 71,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, +255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 44, 44, 44,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, +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,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,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, + 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 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,255,255,255,128, 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,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, + 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,255,255,255,128, 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, 44, 44, 44,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,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,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, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,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,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, 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, -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,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, -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, 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,255,255,255,128, + 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, 44, 44, 44,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, +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,204, 0,153,255, 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, 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, - 3, 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,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, 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,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,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 44, 44, 44,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,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,204, 0,153,255, 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, +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,255,240,255, 64,255, 64,192, 48,255,240,144,160,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,255,255,255,128, 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, + 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,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,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,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,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,204, 0,153,255, 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, +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,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, 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,255,255,255,128, 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,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, + 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,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,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,204, 0,153,255, 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,255,240,255, 64,255, - 64,192, 48,255,240,144,160,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, + 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,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, 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,255,255,255,128, - 0, 0, 0,255,255,133, 0,255, 3, 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, + 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, 44, 44, 44,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, 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, +219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,204, 0,153,255, 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, +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,255,240,255, 64,255, 64,192, 48,255,240,144,160,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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, - 3, 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,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,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 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, 44, 44, 44,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,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,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, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, -126,126, 80,255,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, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,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, + 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,204, 0,153,255, + 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, +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,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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,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,132,132,132,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,195,195,195,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, + 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,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,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, 53, 53, 53,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,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,204, 0,153,255,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,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,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, 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, 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,255,255,255,128, - 0, 0, 0, 0, 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, -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, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255, +255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +195,195,195,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,204, 0,153,255, 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, 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,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, 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, 0, 0, 0, 0, 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,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,255,140, 25,255, 8, 48, 8,255, + 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, 44, 44, 44,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,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, + 75, 75, 75,255,204, 0,153,255, 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, +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,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, 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, 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,255,255,255,128, 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, + 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, 44, 44, 44,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,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,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,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,204, 0,153,255, 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, +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,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, 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,255,255,255,128, 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, 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,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, + 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,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,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, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,204, 0,153,255, 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,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,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, 3, 0, 4, 0,155,155,155,160,100,100,100,255,111,106,100,255,104,106,117,255,105,117,110,255, 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,255,255,255,128, - 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, + 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, 44, 44, 44,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, -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, +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,255,255,255, +219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,204, 0,153,255, 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, 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,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, 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, +155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,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,255,255,255,128, 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, 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, 44, 44, 44,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,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, + 75, 75, 75,255,204, 0,153,255, 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, +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,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, 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,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,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, + 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, 44, 44, 44,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,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,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,204, 0,153,255, 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 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,255,255,255,128, 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, 0, 0, 0, 9, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 72, 4,213,136,224, 0, 0, 0,187, 0, 0, 0, 1, 4,213,137, 80, 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, 0, 0, 0, 72, 4,213,137, 80, 0, 0, 0,187, 0, 0, 0, 1, 4,213,186,224, 4,213,136,224,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, +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,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, 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,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,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, + 64,192, 48,255,240,144,160,255, 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,255,255,255,128, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 72, 4,213,186,224, 0, 0, 0,187, 0, 0, 0, 1, 4,213,187, 80, 4,213,137, 80,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, 0, 0, 0, 72, - 4,213,187, 80, 0, 0, 0,187, 0, 0, 0, 1, 4,213,187,192, 4,213,186,224,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, 0, 0, 0, 72, 4,213,187,192, - 0, 0, 0,187, 0, 0, 0, 1, 4,213,188, 48, 4,213,187, 80,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, 0, 0, 0, 72, 4,213,188, 48, 0, 0, 0,187, - 0, 0, 0, 1, 4,213,188,160, 4,213,187,192,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, 0, 0, 0, 72, 4,213,188,160, 0, 0, 0,187, 0, 0, 0, 1, - 4,213,189, 16, 4,213,188, 48,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, 0, 0, 0, 72, 4,213,189, 16, 0, 0, 0,187, 0, 0, 0, 1, 4,213,189,128, - 4,213,188,160,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, 0, 0, 0, 72, 4,213,189,128, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 4,213,189, 16, -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, 78, 65, 49, 0, 0,229, 88, 3, 18, 32, 32, 0, 0, 0, 0, 0, 0, 0, 1, 83, 68, 78, 65, 78, 65, 77, 69, 0, 0, 12, 2, - 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,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, 51, 50, 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, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105, -100, 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, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, 52, 48, 93, 0,116,111,116, 0, -112, 97,100, 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,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114, -111,117,112, 91, 51, 50, 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, 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,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,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, 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, 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, 51, 50, 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,112, 97,100, 91, 55, 93, 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,110, 97,109,101, 91, 49, - 54, 48, 93, 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, 42, 99,111, 98, 97, 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, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0, - 99, 97, 99,104,101,100,102,114, 97,109,101, 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,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,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, 54, 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,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,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, 51, 50, 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,103, -112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, - 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,122, 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, 99,116,105,109,101, 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,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,109,101,115,104, 0,118,100, 97,116, 97, - 0,101,100, 97,116, 97, 0,102,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, 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,112,118, 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,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0, -105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, - 41, 40, 41, 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, 42,118,101,114,116, 95,109, 97,112, 0, 42, -101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,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,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,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, 51, 50, 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, 42,116,101,120,116,117,114,101, 0,115,116,114,101, -110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,112,112,105, -110,103, 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, 51, 50, 93, 0, -117,118,108, 97,121,101,114, 95,116,109,112, 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, - 51, 50, 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, 51, 50, 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, 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,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, 51, 50, 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,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, 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,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110, -100,116,121,112,101, 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,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, - 97,100, 49, 91, 51, 93, 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,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116, -102,108, 97,103, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, - 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,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, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0, -110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, - 91, 51, 93, 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, 99,111,109,112,114,101,115,115,105,111,110, 0,110, 97,109,101, 91, 54, 52, 93, 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, 50, 52, 48, 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, 51, 50, 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, 51, 50, 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, 51, 50, 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,112, 97,100, 52, 91, 52, 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,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 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,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, 83,117,114,102, 97, 99, -101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 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, 83,117,114,102, - 78,111,114,109, 97,108,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,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,112, 97,100, 91, 51, 93, 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,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, 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,119,105,110,112,111,115, 0,112,108, 97,110,101, -115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, - 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 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,114, -101,110,100,101,114,101,114, 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, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 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, - 49, 54, 48, 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,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,109, 97,116,109,111,100,101, 0,102, -114, 97,109,105,110,103, 0,114,116, 49, 0,114,116, 50, 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, 42, 99, 97,109,101,114, 97, 0, 42, 98,114,117,115,104, 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, -110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 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, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,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,112, 97,100, 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,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112, -111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105, -118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, - 95,116,121,112,101, 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, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 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,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, - 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95, -109,111,100, 97,108, 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,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,112, 97,100, 54, 0,112, 97,100, 53, 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, 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, -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,116,119,100,114, 97,119,102, -108, 97,103, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 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,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,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,112, 97,100,102, 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,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, 51, 50, 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,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,110,101, 97,114, 0, -102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105, -118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109, -111,100,101, 0,116,119,102,108, 97,103, 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,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 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,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, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, - 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 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,105,109,116,121,112,101,110,114, 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, 50, 53, 54, 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,114,101,100,114, 97,119,115, 0, 42,105,100, - 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 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,108,105,110,107,100,114, 97,103, 0,116,105,116,108,101, - 91, 50, 52, 93, 0,109,101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,115,101, -108,115,116, 97,116,101, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114, -111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114, -101,116,118, 97,108, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114,118, 95, -104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101, -118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114, -103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,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, 42, 97,114,101, 97, 0, 42,115, -111,117,110,100, 0,115,110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 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,112, 97,100, 91, 49, 93, - 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,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, 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,105, 99,111,110,102,105,108,101, 91, 56, 48, - 93, 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, 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, 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,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, -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, 98,112, 97,100, - 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,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,104,112, 97,100, 91, 55, 93, 0,112,114,101, -118,105,101,119, 95, 98, 97, 99,107, 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,115,110,100, 0,116, 97, 99,116, 0, -116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 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, 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, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, - 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108, -117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121, -116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97,103,101, - 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 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, 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,110,100,111,102, - 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 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,112, 97,100, 56, 0,118, -101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 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,112, 97,100, 49, - 48, 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, 97,117,116,104,111,114, 91, 56, 48, 93, 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, 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,102,105,108,101,110, 97, -109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 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, 49, 54, 48, 93, - 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, - 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, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, - 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 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, 50, 53, 54, 93, 0, 97, 99, -116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 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, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97, -108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110, -105, 0,114,111,116, 70,105,110, 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, 51, - 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 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, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, - 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 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, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112, -110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111, -115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114, -111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 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, 51, 50, 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,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,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 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,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, 51, 50, 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, 51, 50, 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, 42,115,117, 98,116, 97,114,103,101,116, 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,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, 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,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, 99,111,110,115,116,102,108, 97,103, 0,105, -107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110, -101, 0, 42, 99,104,105,108,100, 0,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, 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, 51, 50, 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, 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, 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, 51, 50, 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, 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,115, 99, 97,108,101, 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, 42,110,101,119, 95,115,111, - 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116, -114, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101, -120, 0, 42,103,114,111,117,112,115,111, 99,107, 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 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, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, - 50, 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, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99, -107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121, -112,101,115, 0,112, 97,100, 50, 91, 50, 93, 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, 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,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, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105, -111,110, 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, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108, -109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 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,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, 50, 52, 48, 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,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97, -100,105,117,115, 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,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,118,101,108, 91, 51, 93, 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,114,116, 91, 50, 93, 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, 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,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,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,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, 51, 50, 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, 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,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,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,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, 51, 50, 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,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,105,110,102,108,117,101,110, 99,101, 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,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,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, 0, 0, 84, 89, 80, 69, 0, 0, 1,202, 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,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,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, 86,111,120,101,108, 68, - 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117, -114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,108,117,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, 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, 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, 80, 97,114,116,105, 97,108, 86,105,115, -105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, - 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 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, 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,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, 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, 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, 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, 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, 84,114, 97,110,115, -102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 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, 66, 71,112,105, 99, 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, 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, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 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, 83,111,117,110,100, 0, - 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 0, 84, 76, 69, 78, 0, 1, 0, 1, 0, 2, 0, 2, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, 8, 0, 4, 0, 8, 0, 16, 0, 16, 0, 20, 0, 76, 0, 52, - 2, 40, 0, 0, 0, 32, 0,140, 4, 28, 0, 92, 0, 36, 0, 56, 0, 84, 0,112, 0,124, 0, 56, 0, 24, 0, 40, 0,120, 0, 12, - 0,104, 0, 36, 5,128, 1,156, 0, 0, 0, 0, 0, 0, 1, 16, 1, 48, 1, 84, 0, 24, 3, 8, 0,168, 0, 0, 0, 72, 1, 32, - 0,164, 0,132, 1,108, 1, 16, 0, 88, 2,160, 0, 76, 1, 60, 0, 0, 0,108, 0,104, 0,148, 0, 56, 0, 8, 0, 16, 0, 20, - 0, 0, 1, 92, 0, 0, 0, 0, 0, 0, 1, 24, 0, 20, 0, 44, 0, 60, 0, 20, 0, 12, 0, 12, 0, 4, 0, 8, 0, 8, 0, 0, - 0, 28, 0, 84, 0, 32, 0, 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 1, 0, 0, 32, 0, 12, 0, 16, 0, 64, 0, 24, 0, 12, - 0, 40, 0, 64, 0, 80, 0,100, 0,108, 0, 80, 0,108, 0,128, 0, 76, 0, 72, 0,120, 0, 72, 0, 84, 0,204, 0, 48, 0,168, - 0,160, 0,172, 0, 72, 0,104, 0,116, 0,196, 0,112, 0,224, 0, 64, 0, 92, 0, 0, 0,144, 0, 32, 1,244, 0,112, 0, 0, - 0, 88, 0, 0, 0, 0, 0, 76, 0, 8, 0, 8, 0,244, 0, 88, 1,148, 0, 84, 0,108, 0, 72, 0, 72, 1,176, 0,120, 0,116, - 0, 64, 0,128, 0, 92, 0, 12, 0,224, 0, 40, 0, 0, 0, 92, 0,156, 0, 72, 0, 48, 0, 20, 0,120, 0,144, 1, 88, 0,208, - 0,180, 0, 0, 0, 68, 0, 20, 0, 96, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1,112, 0, 28, 0,176, 0,144, 0, 64, 0, 60, - 0, 24, 0, 72, 3,232, 0, 56, 0, 20, 0, 16, 0,100, 0, 84, 0, 16, 2,204, 0, 36, 0, 16, 0,156, 0, 80, 0, 88, 0, 36, - 1,152, 0, 32, 0, 8, 0, 24, 2, 56, 0, 0, 0, 0, 0, 72, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 40, 0,140, - 0, 48, 0,208, 0, 88, 0,216, 0,216, 2, 96, 0, 60, 0, 0, 0,120, 0, 0, 0,244, 0, 12, 0, 12, 32,248, 16,112, 16, 24, - 0,192, 2,136, 2, 80, 0, 40, 0, 12, 0,188, 0,252, 0, 52, 2,140, 0, 28, 1,104, 0, 88, 0,188, 0, 96, 1, 92, 1, 16, - 0, 32, 0,224, 0, 32, 0, 32, 2,112, 1,120, 0, 16, 30, 80, 0, 72, 0, 56, 13, 72, 0,148, 0, 20, 0, 24, 1, 64, 0, 0, - 0, 0, 0, 0, 0,248, 0, 0, 1, 24, 0, 88, 0, 16, 0, 8, 0, 44, 0,252, 0,212, 1,168, 0,216, 0, 16, 0, 12, 0, 24, - 0, 52, 0, 16, 0, 20, 0, 16, 0, 24, 1, 56, 0, 0, 0, 56, 0, 52, 0, 48, 0, 8, 0, 44, 0, 72, 0,104, 0, 40, 0, 8, - 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 68, 0, 76, 0, 80, 0, 60, 0,128, 0, 76, 0, 60, 0, 12, 0, 92, 0, 32, 0, 68, - 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, 96, 0, 56, 0, 56, 0,108, 0,140, 0, 4, 0, 20, 0, 12, 0, 8, 0, 80, - 0, 24, 1, 16, 0,144, 0, 16, 1,192, 0, 4, 0, 40, 0,104, 1, 24, 0, 64, 0, 44, 0, 72, 0,116, 0, 60, 0,112, 0, 16, - 0, 52, 0, 44, 0, 44, 0, 44, 0, 8, 0, 36, 0, 68, 0, 64, 0, 44, 0, 44, 0, 20, 0, 52, 0, 96, 0, 12, 0,108, 0, 92, - 0, 52, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, 36, 0,124, 0, 32, 0, 12, 0,212, 0, 0, 0, 0, 0, 16, - 0, 40, 0, 28, 0, 12, 0, 12, 1, 16, 0, 44, 0, 24, 0, 8, 0, 64, 0, 32, 0, 24, 0, 8, 0, 24, 0, 32, 0, 8, 0, 96, - 0, 20, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0,240, 0, 24, 0, 56, 0, 52, 0, 20, 0, 16, 0, 64, 0, 28, 0, 20, 0,180, - 0, 60, 2, 48, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 20, 0, 24, 0,172, 0, 28, 0,168, 0,148, 0,152, 0, 0, - 0, 0, 0, 0, 0,104, 0, 0, 0, 96, 0, 0, 0, 88, 0, 20, 0, 24, 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0, 20, - 0, 48, 1,208, 1, 28, 0, 16, 0, 68, 1, 0, 0, 20, 0,160, 0, 88, 0, 96, 0,152, 0, 20, 0, 56, 0, 48, 0, 68, 0, 56, - 0, 92, 0, 64, 0, 56, 0, 96, 0, 0, 0, 0, 83, 84, 82, 67, 0, 0, 1,145, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, - 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, - 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, - 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, - 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, 0, 18, 0, 10, 0, 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, - 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, 0, 17, 0, 20, 0, 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, - 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, 0, 0, 0, 25, 0, 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, - 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, 0, 21, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, - 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, 0, 4, 0, 38, 0, 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, - 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, - 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, 0, 16, 0, 48, 0, 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, - 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 17, 0, 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, - 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 23, 0, 59, 0, 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, - 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, 0, 2, 0, 35, 0, 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, - 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, 0, 2, 0, 65, 0, 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, - 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, 0, 7, 0, 70, 0, 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, - 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, 0, 7, 0, 58, 0, 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, - 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, 0, 32, 0, 6, 0, 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, - 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, 0, 33, 0, 0, 0, 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, - 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, - 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, 0, 32, 0, 94, 0, 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, - 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, 9, 0,102, 0, 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, - 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 15, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,106, - 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, - 0, 28, 0, 77, 0, 24, 0,115, 0, 37, 0, 14, 0, 38, 0,116, 0, 4, 0,117, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, - 0, 0, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0, 35, 0, 2, 0,124, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0, 17, - 0, 4, 0, 67, 0, 39, 0, 32, 0, 19, 0, 29, 0, 0, 0, 32, 0, 12, 0,127, 0, 40, 0,128, 0, 41, 0,129, 0, 42, 0,130, - 0, 42, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 2, 0,123, 0, 2, 0, 17, 0, 2, 0,134, 0, 2, 0, 15, 0, 4, 0,135, - 0, 2, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, 0, 2, 0,140, 0, 2, 0,141, 0, 4, 0,142, 0, 4, 0,143, - 0, 35, 0,144, 0, 22, 0,145, 0, 7, 0,146, 0, 4, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, - 0, 7, 0,152, 0, 7, 0,153, 0, 43, 0, 65, 0, 2, 0,154, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 24, 0,158, - 0, 44, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,164, 0, 7, 0,165, 0, 7, 0,166, - 0, 7, 0,167, 0, 2, 0,168, 0, 2, 0,169, 0, 2, 0,170, 0, 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 0, 0,174, - 0, 0, 0,175, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0, 54, 0, 7, 0,181, - 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 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, 45, 0, 15, 0, 0, 0,218, 0, 9, 0,219, 0, 0, 0,220, - 0, 0, 0,221, 0, 4, 0,222, 0, 4, 0,223, 0, 9, 0,224, 0, 7, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 4, 0,228, - 0, 9, 0,229, 0, 9, 0,230, 0, 4, 0,231, 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, - 0, 7, 0,232, 0, 7, 0, 64, 0, 4, 0, 61, 0, 47, 0, 5, 0, 2, 0, 17, 0, 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,233, - 0, 46, 0,227, 0, 48, 0, 17, 0, 24, 0,158, 0, 39, 0,234, 0, 49, 0,235, 0, 7, 0,236, 0, 7, 0,237, 0, 2, 0, 15, - 0, 2, 0,238, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,239, 0, 4, 0,240, 0, 2, 0,241, 0, 2, 0,242, 0, 4, 0,123, - 0, 4, 0,135, 0, 2, 0,243, 0, 2, 0,244, 0, 50, 0, 22, 0, 2, 0, 17, 0, 2, 0,245, 0, 7, 0,246, 0, 7, 0,247, - 0, 2, 0,134, 0, 2, 0,248, 0, 4, 0,249, 0, 4, 0,250, 0, 24, 0,158, 0, 4, 0,251, 0, 2, 0,252, 0, 2, 0,253, - 0, 9, 0,254, 0, 7, 0,255, 0, 7, 1, 0, 0, 2, 1, 1, 0, 2, 1, 2, 0, 2, 1, 3, 0, 2, 1, 4, 0, 7, 1, 5, - 0, 7, 1, 6, 0, 47, 1, 7, 0, 51, 0, 13, 0, 4, 1, 8, 0, 4, 1, 9, 0, 2, 1, 10, 0, 2, 0, 17, 0, 2, 1, 11, - 0, 2, 1, 12, 0, 24, 0,158, 0, 7, 1, 13, 0, 4, 1, 14, 0, 0, 1, 15, 0, 7, 1, 16, 0, 4, 1, 17, 0, 4, 0,123, - 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 1, 18, 0, 7, 1, 19, 0, 7, 1, 20, 0, 7, 1, 21, 0, 7, 1, 22, - 0, 7, 1, 23, 0, 7, 1, 24, 0, 7, 1, 25, 0, 7, 1, 26, 0, 7, 0, 67, 0, 7, 1, 27, 0, 7, 1, 28, 0, 7, 1, 29, - 0, 7, 1, 30, 0, 7, 1, 31, 0, 7, 1, 32, 0, 7, 1, 33, 0, 7, 1, 34, 0, 7, 1, 35, 0, 7, 1, 36, 0, 7, 1, 37, - 0, 7, 1, 38, 0, 2, 1, 39, 0, 2, 1, 40, 0, 2, 1, 41, 0, 2, 1, 42, 0, 2, 1, 43, 0, 2, 1, 44, 0, 2, 1, 45, - 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,238, 0, 7, 1, 46, 0, 7, 1, 47, 0, 7, 1, 48, 0, 7, 1, 49, 0, 4, 1, 50, - 0, 4, 1, 51, 0, 2, 1, 52, 0, 2, 1, 53, 0, 2, 1, 11, 0, 2, 0,121, 0, 4, 0, 21, 0, 4, 0,118, 0, 4, 0,119, - 0, 4, 0,120, 0, 7, 1, 54, 0, 7, 1, 55, 0, 7, 0, 87, 0, 37, 1, 56, 0, 52, 1, 57, 0, 28, 0, 77, 0, 39, 0,234, - 0, 45, 1, 58, 0, 47, 1, 7, 0, 48, 1, 59, 0, 22, 0,145, 0, 50, 1, 60, 0, 51, 1, 61, 0, 0, 1, 62, 0, 0, 0,175, - 0, 53, 0, 8, 0, 7, 1, 63, 0, 7, 1, 64, 0, 7, 0,166, 0, 4, 0, 17, 0, 7, 1, 65, 0, 7, 1, 66, 0, 7, 1, 67, - 0, 24, 0, 42, 0, 54, 0, 72, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 1, 68, 0, 2, 0,169, - 0, 2, 1, 69, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 1, 70, 0, 7, 1, 71, 0, 7, 1, 72, - 0, 7, 1, 73, 0, 7, 1, 74, 0, 7, 1, 75, 0, 7, 1, 76, 0, 7, 1, 77, 0, 7, 1, 78, 0, 7, 1, 79, 0, 7, 1, 80, - 0, 55, 1, 81, 0, 2, 0,245, 0, 2, 0, 67, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 1, 82, 0, 7, 1, 83, 0, 7, 1, 84, - 0, 7, 1, 85, 0, 7, 1, 86, 0, 2, 1, 87, 0, 2, 1, 88, 0, 2, 1, 89, 0, 2, 1, 90, 0, 0, 1, 91, 0, 0, 1, 92, - 0, 2, 1, 93, 0, 2, 1, 94, 0, 2, 1, 95, 0, 2, 1, 96, 0, 2, 1, 97, 0, 7, 1, 98, 0, 7, 1, 99, 0, 7, 1,100, - 0, 7, 1,101, 0, 2, 1,102, 0, 2, 0, 87, 0, 2, 1,103, 0, 2, 1,104, 0, 2, 1,105, 0, 2, 1,106, 0, 7, 1,107, - 0, 7, 1,108, 0, 7, 1,109, 0, 7, 1,110, 0, 7, 1,111, 0, 7, 1,112, 0, 7, 1,113, 0, 7, 1,114, 0, 7, 1,115, - 0, 7, 1,116, 0, 7, 1,117, 0, 7, 1,118, 0, 2, 1,119, 0, 0, 1,120, 0, 28, 0, 77, 0, 43, 1,121, 0, 2, 1,122, - 0, 0, 1,123, 0, 22, 0,145, 0, 56, 0, 18, 0, 7, 1,124, 0, 7, 1,125, 0, 7, 1,126, 0, 7, 1,127, 0, 7, 1,128, - 0, 7, 1,129, 0, 7, 1,130, 0, 7, 1,131, 0, 7, 1,132, 0, 7, 1,133, 0, 2, 1,134, 0, 2, 1,135, 0, 2, 1,136, - 0, 2, 1,137, 0, 7, 1,138, 0, 7, 1,139, 0, 7, 1,140, 0, 7, 1,141, 0, 57, 0,125, 0, 19, 0, 29, 0, 31, 0, 72, - 0, 2, 1,142, 0, 2, 0, 17, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 1,143, 0, 7, 1,144, 0, 7, 1,145, - 0, 7, 1,146, 0, 7, 1,147, 0, 7, 1,148, 0, 7, 1,149, 0, 7, 1,150, 0, 7, 1,151, 0, 7, 1,152, 0, 7, 1,153, - 0, 7, 1,154, 0, 7, 1,155, 0, 7, 1,156, 0, 7, 1,157, 0, 7, 1,158, 0, 7, 1,159, 0, 7, 1,160, 0, 7, 1,161, - 0, 7, 1,162, 0, 56, 1,163, 0, 7, 1,164, 0, 7, 1,165, 0, 7, 1,166, 0, 7, 1,167, 0, 7, 1,168, 0, 7, 1,169, - 0, 7, 1,170, 0, 2, 1,171, 0, 2, 1,172, 0, 2, 1,173, 0, 0, 1,174, 0, 0, 1,175, 0, 7, 1,176, 0, 7, 1,177, - 0, 2, 1,178, 0, 2, 1,179, 0, 7, 1,180, 0, 7, 1,181, 0, 7, 1,182, 0, 7, 1,183, 0, 2, 1,184, 0, 2, 1,185, - 0, 4, 1, 68, 0, 4, 1,186, 0, 2, 1,187, 0, 2, 1,188, 0, 2, 1,189, 0, 2, 1,190, 0, 7, 1,191, 0, 7, 1,192, - 0, 7, 1,193, 0, 7, 1,194, 0, 7, 1,195, 0, 7, 1,196, 0, 7, 1,197, 0, 7, 1,198, 0, 7, 1,199, 0, 7, 1,200, - 0, 0, 1,201, 0, 7, 1,202, 0, 7, 1,203, 0, 7, 1,204, 0, 4, 1,205, 0, 0, 1,206, 0, 0, 1,103, 0, 0, 1,207, - 0, 0, 1, 62, 0, 2, 1,208, 0, 2, 1,209, 0, 2, 1,122, 0, 2, 1,210, 0, 2, 1,211, 0, 2, 1,212, 0, 7, 1,213, - 0, 7, 1,214, 0, 7, 1,215, 0, 7, 1,216, 0, 7, 1,217, 0, 2, 0,154, 0, 2, 0,155, 0, 47, 1,218, 0, 47, 1,219, - 0, 0, 1,220, 0, 0, 1,221, 0, 0, 1,222, 0, 0, 1,223, 0, 2, 1,224, 0, 2, 1,225, 0, 7, 1,226, 0, 7, 1,227, - 0, 43, 1,121, 0, 52, 1, 57, 0, 28, 0, 77, 0, 58, 1,228, 0, 22, 0,145, 0, 7, 1,229, 0, 7, 1,230, 0, 7, 1,231, - 0, 7, 1,232, 0, 7, 1,233, 0, 2, 1,234, 0, 2, 0, 67, 0, 7, 1,235, 0, 7, 1,236, 0, 7, 1,237, 0, 7, 1,238, - 0, 7, 1,239, 0, 7, 1,240, 0, 7, 1,241, 0, 7, 1,242, 0, 7, 1,243, 0, 2, 1,244, 0, 2, 1,245, 0, 4, 1,246, - 0, 2, 1,247, 0, 2, 0, 35, 0, 12, 1,248, 0, 59, 0, 4, 0, 19, 0, 29, 0, 0, 1,249, 0, 60, 0, 2, 0, 35, 0,144, - 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, 62, 1,250, 0, 4, 1,251, 0, 4, 1,252, 0, 4, 1,253, 0, 4, 1,254, - 0, 4, 1,255, 0, 4, 2, 0, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 2, 1, 0, 2, 2, 2, 0, 7, 0, 5, 0, 7, 0, 6, - 0, 7, 2, 3, 0, 7, 2, 4, 0, 7, 2, 5, 0, 7, 2, 6, 0, 7, 2, 7, 0, 7, 2, 8, 0, 7, 2, 9, 0, 7, 2, 10, - 0, 7, 0, 21, 0, 7, 2, 11, 0, 7, 2, 12, 0, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,250, 0, 12, 2, 13, - 0, 12, 2, 14, 0, 12, 2, 15, 0, 28, 0, 77, 0, 57, 2, 16, 0, 0, 0, 17, 0, 0, 2, 17, 0, 2, 2, 18, 0, 2, 0,168, - 0, 2, 0, 35, 0, 7, 1, 63, 0, 7, 0,166, 0, 7, 1, 64, 0, 7, 2, 19, 0, 7, 2, 20, 0, 7, 2, 21, 0, 61, 2, 22, - 0, 27, 0, 11, 0, 7, 2, 23, 0, 7, 2, 24, 0, 7, 2, 25, 0, 7, 0,247, 0, 2, 0, 52, 0, 0, 2, 26, 0, 0, 2, 27, - 0, 0, 2, 28, 0, 0, 2, 29, 0, 0, 2, 30, 0, 0, 2, 31, 0, 26, 0, 7, 0, 7, 2, 32, 0, 7, 2, 24, 0, 7, 2, 25, - 0, 2, 2, 28, 0, 2, 2, 31, 0, 7, 0,247, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, - 0, 2, 2, 33, 0, 2, 2, 31, 0, 2, 0, 17, 0, 2, 2, 34, 0, 2, 2, 35, 0, 2, 2, 36, 0, 2, 2, 37, 0, 2, 2, 38, - 0, 2, 2, 39, 0, 2, 2, 40, 0, 2, 2, 41, 0, 7, 2, 42, 0, 7, 2, 43, 0, 26, 0, 46, 0, 27, 0, 47, 0, 2, 2, 44, - 0, 2, 2, 45, 0, 4, 2, 46, 0, 65, 0, 5, 0, 2, 2, 47, 0, 2, 2, 33, 0, 0, 0, 17, 0, 0, 0, 35, 0, 2, 0, 67, - 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 2, 48, 0, 7, 2, 49, 0, 67, 0, 4, 0, 12, 2, 50, 0, 68, 2, 51, - 0, 4, 2, 52, 0, 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,250, 0, 12, 2, 53, 0, 12, 2, 14, - 0, 67, 2, 54, 0, 24, 2, 55, 0, 24, 2, 56, 0, 24, 2, 57, 0, 28, 0, 77, 0, 70, 2, 58, 0, 30, 2, 59, 0, 57, 2, 16, - 0, 12, 2, 60, 0, 7, 1, 63, 0, 7, 0,166, 0, 7, 1, 64, 0, 2, 0,168, 0, 2, 0, 87, 0, 2, 2, 61, 0, 2, 2, 62, - 0, 7, 2, 63, 0, 7, 2, 64, 0, 4, 2, 65, 0, 2, 0, 35, 0, 2, 2, 18, 0, 2, 0, 17, 0, 2, 2, 66, 0, 7, 2, 67, - 0, 7, 2, 68, 0, 7, 2, 69, 0, 2, 2, 36, 0, 2, 2, 37, 0, 2, 2, 70, 0, 2, 2, 71, 0, 4, 2, 72, 0, 9, 2, 73, - 0, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, 2, 2, 74, 0, 7, 2, 75, 0, 7, 2, 76, 0, 7, 2, 77, 0, 7, 2, 78, - 0, 7, 2, 79, 0, 7, 2, 80, 0, 7, 2, 81, 0, 7, 2, 82, 0, 7, 2, 83, 0, 7, 2, 84, 0, 0, 2, 85, 0, 71, 2, 86, - 0, 72, 2, 87, 0, 0, 2, 88, 0, 59, 2, 89, 0, 59, 2, 90, 0, 59, 2, 91, 0, 59, 2, 92, 0, 4, 2, 93, 0, 7, 2, 94, - 0, 4, 2, 95, 0, 4, 2, 96, 0, 66, 2, 97, 0, 4, 2, 98, 0, 4, 2, 99, 0, 65, 2,100, 0, 65, 2,101, 0, 73, 0, 39, - 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 1,250, 0, 28, 0, 77, 0, 30, 2, 59, 0, 57, 2, 16, 0, 74, 2,102, 0, 75, 2,103, - 0, 76, 2,104, 0, 77, 2,105, 0, 78, 2,106, 0, 79, 2,107, 0, 80, 2,108, 0, 81, 2,109, 0, 73, 2,110, 0, 82, 2,111, - 0, 83, 2,112, 0, 84, 2,113, 0, 84, 2,114, 0, 84, 2,115, 0, 4, 0, 51, 0, 4, 2,116, 0, 4, 2,117, 0, 4, 2,118, - 0, 4, 2,119, 0, 7, 1, 63, 0, 7, 0,166, 0, 7, 1, 64, 0, 2, 0,168, 0, 2, 2, 61, 0, 2, 2,120, 0, 2, 0, 17, - 0, 2, 2,121, 0, 2, 2,122, 0, 0, 2,123, 0, 0, 2,124, 0, 2, 2, 18, 0, 85, 2,125, 0, 86, 2,126, 0, 76, 0, 8, - 0, 9, 2,127, 0, 7, 2,128, 0, 4, 2,129, 0, 0, 0, 17, 0, 0, 2,130, 0, 2, 1, 68, 0, 2, 2,131, 0, 2, 2,132, - 0, 74, 0, 7, 0, 4, 2,133, 0, 4, 2,134, 0, 4, 2,135, 0, 4, 2,136, 0, 2, 2, 33, 0, 0, 2,137, 0, 0, 0, 17, - 0, 78, 0, 5, 0, 4, 2,133, 0, 4, 2,134, 0, 0, 2,138, 0, 0, 2,139, 0, 2, 0, 17, 0, 87, 0, 2, 0, 4, 2,140, - 0, 7, 2, 25, 0, 79, 0, 3, 0, 87, 2,141, 0, 4, 2,142, 0, 4, 0, 17, 0, 77, 0, 4, 0, 7, 2,143, 0, 2, 2,144, - 0, 0, 0, 17, 0, 0, 2,139, 0, 80, 0, 4, 0, 0, 0,232, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0, 88, 0, 6, - 0, 39, 2,127, 0, 0, 0, 17, 0, 0, 2,130, 0, 2, 1, 68, 0, 2, 2,131, 0, 2, 2,132, 0, 89, 0, 1, 0, 7, 2,145, - 0, 90, 0, 5, 0, 0, 0,232, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0, 4, 0, 35, 0, 81, 0, 1, 0, 7, 2,146, - 0, 82, 0, 2, 0, 4, 2,147, 0, 4, 0, 15, 0, 75, 0, 7, 0, 7, 2,128, 0, 39, 2,127, 0, 0, 0, 17, 0, 0, 2,130, - 0, 2, 1, 68, 0, 2, 2,131, 0, 2, 2,132, 0, 91, 0, 1, 0, 7, 2,148, 0, 92, 0, 1, 0, 4, 2,149, 0, 93, 0, 1, - 0, 0, 2,150, 0, 94, 0, 1, 0, 7, 2,128, 0, 95, 0, 3, 0, 4, 2,151, 0, 0, 0, 90, 0, 7, 2,152, 0, 96, 0, 4, - 0, 7, 0,232, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 97, 0, 1, 0, 96, 2,129, 0, 98, 0, 5, 0, 4, 2,153, - 0, 4, 2,154, 0, 0, 0, 17, 0, 0, 2, 33, 0, 0, 2,155, 0, 99, 0, 2, 0, 4, 2,156, 0, 4, 2,154, 0,100, 0, 10, - 0,100, 0, 0, 0,100, 0, 1, 0, 98, 2,157, 0, 97, 2,158, 0, 99, 2,159, 0, 4, 0, 51, 0, 4, 2,117, 0, 4, 2,116, - 0, 4, 0, 35, 0, 77, 2,160, 0, 85, 0, 14, 0, 12, 2,161, 0, 77, 2,160, 0, 0, 2,162, 0, 0, 2,163, 0, 0, 2,164, - 0, 0, 2,165, 0, 0, 2,166, 0, 0, 2,167, 0, 0, 2,168, 0, 0, 0, 17, 0, 84, 2,113, 0, 84, 2,115, 0, 2, 2,169, - 0, 0, 2,170, 0, 86, 0, 8, 0, 4, 2,171, 0, 4, 2,172, 0, 74, 2,173, 0, 78, 2,174, 0, 4, 2,117, 0, 4, 2,116, - 0, 4, 0, 51, 0, 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 1, 68, 0, 4, 2,175, - 0, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,116, 0, 0, 2,176, 0,102, 0, 7, 0,101, 2,177, 0, 2, 2,178, 0, 2, 2,161, - 0, 2, 2,179, 0, 2, 0, 88, 0, 9, 2,180, 0, 9, 2,181, 0,103, 0, 3, 0,101, 2,177, 0, 24, 0,158, 0, 0, 0, 18, - 0,104, 0, 5, 0,101, 2,177, 0, 24, 0,158, 0, 0, 0, 18, 0, 2, 2,182, 0, 0, 2,183, 0,105, 0, 5, 0,101, 2,177, - 0, 7, 0, 85, 0, 7, 2,184, 0, 4, 2,185, 0, 4, 2,186, 0,106, 0, 5, 0,101, 2,177, 0, 24, 2,187, 0, 0, 0, 69, - 0, 4, 1, 68, 0, 4, 0, 17, 0,107, 0, 13, 0,101, 2,177, 0, 24, 2,188, 0, 24, 2,189, 0, 24, 2,190, 0, 24, 2,191, - 0, 7, 2,192, 0, 7, 2,193, 0, 7, 2,184, 0, 7, 2,194, 0, 4, 2,195, 0, 4, 2,196, 0, 4, 0, 88, 0, 4, 2,197, - 0,108, 0, 5, 0,101, 2,177, 0, 2, 2,198, 0, 2, 0, 17, 0, 7, 2,199, 0, 24, 2,200, 0,109, 0, 3, 0,101, 2,177, - 0, 7, 2,201, 0, 4, 0, 88, 0,110, 0, 10, 0,101, 2,177, 0, 7, 2,202, 0, 4, 2,203, 0, 4, 0, 35, 0, 2, 0, 88, - 0, 2, 2,204, 0, 2, 2,205, 0, 2, 2,206, 0, 7, 2,207, 0, 0, 2,208, 0,111, 0, 3, 0,101, 2,177, 0, 7, 0, 35, - 0, 4, 0, 15, 0,112, 0, 6, 0,101, 2,177, 0,113, 2,209, 0,114, 2,210, 0,115, 2,211, 0, 7, 2,212, 0, 4, 0, 15, - 0,116, 0, 11, 0,101, 2,177, 0, 44, 2,213, 0, 7, 2,214, 0, 4, 2,215, 0, 0, 2,208, 0, 7, 2,216, 0, 4, 2,217, - 0, 24, 2,218, 0, 0, 2,219, 0, 4, 2,220, 0, 4, 0, 35, 0,117, 0, 12, 0,101, 2,177, 0, 24, 2,221, 0, 39, 2,222, - 0, 4, 0, 88, 0, 4, 2,223, 0, 7, 2,224, 0, 7, 2,225, 0, 7, 2,226, 0, 7, 2,227, 0, 0, 2,219, 0, 4, 2,220, - 0, 4, 0, 35, 0,118, 0, 3, 0,101, 2,177, 0, 7, 2,228, 0, 4, 2,229, 0,119, 0, 5, 0,101, 2,177, 0, 7, 2,230, - 0, 0, 2,208, 0, 2, 0, 17, 0, 2, 2,231, 0,120, 0, 8, 0,101, 2,177, 0, 24, 0,158, 0, 7, 2,230, 0, 7, 0,247, - 0, 7, 0,104, 0, 0, 2,208, 0, 2, 0, 17, 0, 2, 0, 15, 0,121, 0, 21, 0,101, 2,177, 0, 24, 2,232, 0, 0, 2,208, - 0, 44, 2,213, 0, 24, 2,218, 0, 2, 0, 17, 0, 2, 0, 35, 0, 7, 2,233, 0, 7, 2,234, 0, 7, 2,235, 0, 7, 2, 67, - 0, 7, 2,236, 0, 7, 2,237, 0, 7, 2,238, 0, 7, 2,239, 0, 4, 2,217, 0, 4, 2,220, 0, 0, 2,219, 0, 7, 2,240, - 0, 7, 2,241, 0, 7, 0, 87, 0,122, 0, 7, 0,101, 2,177, 0, 2, 2,242, 0, 2, 2,243, 0, 4, 0, 67, 0, 24, 0,158, - 0, 7, 2,244, 0, 0, 2,208, 0,123, 0, 10, 0,101, 2,177, 0, 24, 0,158, 0, 0, 2,245, 0, 7, 2,246, 0, 7, 2,247, - 0, 7, 2,239, 0, 4, 2,248, 0, 4, 2,249, 0, 7, 2,250, 0, 0, 0, 18, 0,124, 0, 1, 0,101, 2,177, 0,125, 0, 7, - 0,101, 2,177, 0, 38, 0,116, 0,126, 2,251, 0,127, 2,252, 0,128, 2,253, 0,129, 2,254, 0, 12, 2,255, 0,130, 0, 13, - 0,101, 2,177, 0, 77, 3, 0, 0, 77, 3, 1, 0, 77, 3, 2, 0, 77, 3, 3, 0, 77, 3, 4, 0, 77, 3, 5, 0, 74, 3, 6, - 0, 4, 3, 7, 0, 4, 3, 8, 0, 7, 3, 9, 0, 7, 3, 10, 0,131, 3, 11, 0,132, 0, 7, 0,101, 2,177, 0, 77, 3, 0, - 0, 77, 3, 12, 0,133, 3, 13, 0,134, 3, 11, 0, 4, 3, 14, 0, 4, 3, 7, 0,135, 0, 4, 0,101, 2,177, 0, 24, 0,158, - 0, 4, 3, 15, 0, 4, 0, 35, 0,136, 0, 2, 0, 4, 3, 16, 0, 7, 2, 25, 0,137, 0, 2, 0, 4, 0,119, 0, 4, 3, 17, - 0,138, 0, 24, 0,101, 2,177, 0, 24, 0,158, 0, 0, 2,208, 0, 2, 3, 18, 0, 2, 0, 17, 0, 2, 1, 68, 0, 2, 0, 35, - 0,136, 3, 19, 0, 4, 3, 20, 0, 7, 3, 21, 0, 4, 0, 51, 0, 4, 3, 22, 0,137, 3, 23, 0,136, 3, 24, 0, 4, 3, 25, - 0, 4, 3, 26, 0, 4, 3, 27, 0, 4, 3, 17, 0, 7, 3, 28, 0, 7, 3, 29, 0, 7, 3, 30, 0, 7, 3, 31, 0, 7, 3, 32, - 0, 9, 3, 33, 0,139, 0, 8, 0,101, 2,177, 0,140, 3, 34, 0,133, 3, 13, 0, 4, 3, 35, 0, 4, 3, 36, 0, 4, 3, 37, - 0, 2, 0, 17, 0, 2, 0, 54, 0,141, 0, 8, 0,101, 2,177, 0, 24, 0, 42, 0, 2, 0,251, 0, 2, 0, 17, 0, 2, 2,198, - 0, 2, 0, 54, 0, 7, 3, 38, 0, 7, 3, 39, 0,142, 0, 6, 0,101, 2,177, 0, 4, 3, 40, 0, 2, 0, 17, 0, 2, 3, 41, - 0, 7, 3, 42, 0, 0, 0,160, 0,143, 0, 8, 0,101, 2,177, 0, 0, 3, 43, 0, 0, 3, 44, 0, 0, 2,167, 0, 0, 3, 45, - 0, 0, 3, 46, 0, 0, 0, 88, 0, 0, 2,155, 0,144, 0, 3, 0,101, 2,177, 0,145, 3, 47, 0,129, 2,254, 0,146, 0, 10, - 0,101, 2,177, 0, 24, 3, 48, 0, 24, 3, 49, 0, 0, 3, 50, 0, 7, 3, 51, 0, 2, 3, 52, 0, 2, 3, 53, 0, 0, 3, 54, - 0, 0, 3, 55, 0, 0, 2,183, 0,147, 0, 9, 0,101, 2,177, 0, 24, 3, 56, 0, 0, 3, 50, 0, 7, 3, 57, 0, 7, 3, 58, - 0, 0, 1, 68, 0, 0, 2,198, 0, 0, 3, 59, 0, 0, 0, 35, 0,148, 0, 1, 0,101, 2,177, 0,149, 0, 11, 0,101, 2,177, - 0, 0, 2,208, 0, 7, 0,119, 0, 7, 3, 60, 0, 7, 3, 61, 0, 7, 3, 62, 0, 7, 3, 63, 0, 4, 0, 17, 0, 2, 3, 64, - 0, 2, 3, 65, 0, 4, 0, 35, 0,150, 0, 9, 0,101, 2,177, 0, 24, 3, 66, 0, 4, 3, 67, 0, 4, 3, 68, 0, 4, 3, 69, - 0, 7, 3, 70, 0, 7, 3, 71, 0, 2, 2,198, 0, 2, 0, 17, 0,151, 0, 3, 0,152, 3, 72, 0, 4, 2, 52, 0, 0, 0, 90, - 0,152, 0, 29, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 2, 34, 0, 2, 2, 35, 0, 2, 3, 73, 0, 2, 0, 17, 0, 2, 3, 74, - 0, 2, 3, 75, 0, 2, 3, 76, 0, 2, 0, 67, 0, 0, 3, 77, 0, 0, 3, 78, 0, 0, 3, 79, 0, 0, 1,225, 0, 4, 0, 35, - 0, 7, 3, 80, 0, 7, 3, 81, 0, 7, 3, 82, 0, 7, 3, 83, 0, 7, 3, 84, 0, 7, 3, 85, 0, 26, 3, 86, 0, 28, 0, 77, - 0, 30, 2, 59, 0, 79, 2,107, 0, 0, 0, 69, 0, 7, 3, 87, 0, 7, 3, 88, 0,151, 3, 89, 0,153, 0, 3, 0,153, 0, 0, - 0,153, 0, 1, 0, 0, 0, 18, 0, 62, 0, 3, 0, 7, 3, 90, 0, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,127, 0, 19, 0, 29, - 0, 31, 0, 72, 0,154, 3, 91, 0, 2, 0, 15, 0, 2, 3, 92, 0, 4, 3, 93, 0, 4, 3, 94, 0, 4, 3, 95, 0, 0, 3, 96, - 0, 24, 0, 36, 0, 24, 3, 97, 0, 24, 3, 98, 0, 24, 3, 99, 0, 24, 3,100, 0, 28, 0, 77, 0, 70, 2, 58, 0, 62, 1,250, - 0,155, 3,101, 0,155, 3,102, 0,156, 3,103, 0, 9, 0, 2, 0,157, 3,104, 0,158, 3,105, 0,159, 3,106, 0, 12, 3,107, - 0, 12, 3,108, 0, 12, 2, 14, 0, 12, 3,109, 0, 12, 3,110, 0, 4, 1, 68, 0, 4, 3,111, 0, 57, 2, 16, 0, 0, 3,112, - 0, 4, 2, 18, 0, 4, 3,113, 0, 7, 1, 63, 0, 7, 3,114, 0, 7, 3,115, 0, 7, 0,166, 0, 7, 3,116, 0, 7, 1, 64, - 0, 7, 3,117, 0, 7, 2, 4, 0, 7, 3,118, 0, 7, 3,119, 0, 7, 3,120, 0, 7, 3,121, 0, 7, 3,122, 0, 7, 3,123, - 0, 7, 2,246, 0, 7, 3,124, 0, 7, 0,236, 0, 7, 3,125, 0, 4, 3,126, 0, 2, 0, 17, 0, 2, 3,127, 0, 2, 3,128, - 0, 2, 3,129, 0, 2, 3,130, 0, 2, 3,131, 0, 2, 3,132, 0, 2, 3,133, 0, 2, 3,134, 0, 2, 3,135, 0, 2, 3,136, - 0, 2, 3,137, 0, 4, 3,138, 0, 4, 3,139, 0, 4, 3,140, 0, 4, 3,141, 0, 7, 3,142, 0, 7, 2, 94, 0, 7, 3,143, - 0, 7, 3,144, 0, 7, 3,145, 0, 7, 3,146, 0, 7, 3,147, 0, 7, 0,211, 0, 7, 3,148, 0, 7, 3,149, 0, 7, 3,150, - 0, 7, 3,151, 0, 2, 3,152, 0, 0, 3,153, 0, 0, 3,154, 0, 0, 3,155, 0, 0, 3,156, 0, 7, 3,157, 0, 7, 3,158, - 0, 12, 3,159, 0, 12, 3,160, 0, 12, 3,161, 0, 12, 3,162, 0, 7, 3,163, 0, 2, 2,147, 0, 2, 3,164, 0, 7, 2,129, - 0, 4, 3,165, 0, 4, 3,166, 0,160, 3,167, 0, 2, 3,168, 0, 2, 0,243, 0, 7, 3,169, 0, 12, 3,170, 0, 12, 3,171, - 0, 12, 3,172, 0, 12, 3,173, 0,161, 1, 60, 0,162, 3,174, 0, 58, 3,175, 0, 2, 3,176, 0, 2, 3,177, 0, 2, 2, 52, - 0, 2, 3,178, 0, 7, 2,120, 0, 2, 3,179, 0, 2, 3,180, 0,145, 3,181, 0,133, 3,182, 0,133, 3,183, 0, 4, 3,184, - 0, 4, 3,185, 0, 4, 3,186, 0, 4, 0, 67, 0, 12, 3,187, 0, 12, 3,188, 0, 12, 3,189, 0,163, 0, 14, 0,163, 0, 0, - 0,163, 0, 1, 0, 24, 0, 36, 0, 7, 2,246, 0, 7, 1, 65, 0, 7, 2,247, 0, 7, 2,239, 0, 0, 0, 18, 0, 4, 2,248, - 0, 4, 2,249, 0, 4, 3,190, 0, 2, 0, 15, 0, 2, 3,191, 0, 7, 2,250, 0,164, 0, 12, 0,164, 0, 0, 0,164, 0, 1, - 0, 24, 0, 42, 0, 4, 3,192, 0, 4, 2,147, 0, 4, 3,193, 0, 4, 0, 15, 0, 4, 3,194, 0, 7, 1, 65, 0, 7, 3,195, - 0, 7, 3,196, 0, 7, 2,145, 0,161, 0, 40, 0, 4, 0, 17, 0, 2, 3,197, 0, 2, 3,198, 0, 2, 2,239, 0, 2, 3,199, - 0, 2, 3,200, 0, 2, 3,201, 0, 2, 3,202, 0, 2, 3,203, 0, 7, 3,204, 0, 7, 3,205, 0, 7, 3,206, 0, 7, 3,207, - 0, 7, 3,208, 0, 7, 3,209, 0, 7, 3,210, 0, 7, 3,211, 0, 7, 3,212, 0, 7, 3,213, 0, 7, 3,214, 0, 7, 3,215, - 0, 7, 3,216, 0, 7, 3,217, 0, 7, 3,218, 0, 7, 3,219, 0, 7, 3,220, 0, 7, 3,221, 0, 7, 3,222, 0, 7, 3,223, - 0, 7, 3,224, 0, 7, 3,225, 0, 7, 3,226, 0, 7, 3,227, 0, 7, 3,228, 0, 7, 3,229, 0, 7, 3,230, 0, 44, 0,159, - 0,165, 3,231, 0, 7, 3,232, 0, 4, 2,186, 0,166, 0, 5, 0, 58, 1,228, 0, 7, 3,233, 0, 7, 3,234, 0, 2, 0, 17, - 0, 2, 3,235, 0,167, 0, 5, 0,167, 0, 0, 0,167, 0, 1, 0, 4, 0, 15, 0, 4, 3,236, 0, 9, 0, 2, 0,168, 0, 9, - 0,168, 0, 0, 0,168, 0, 1, 0, 4, 3,237, 0, 4, 3,238, 0, 4, 3,239, 0, 4, 0, 17, 0, 9, 3,240, 0, 9, 3,241, - 0, 12, 3,242, 0,129, 0, 21, 0,129, 0, 0, 0,129, 0, 1, 0, 4, 0, 17, 0, 4, 3,243, 0, 4, 3,244, 0, 4, 3,245, - 0, 4, 3,246, 0, 4, 3,247, 0, 4, 3,248, 0, 4, 3,238, 0, 4, 2,147, 0, 2, 3,249, 0, 2, 0, 54, 0, 0, 3,250, - 0, 0, 3,251, 0, 0, 3,252, 0, 0, 3,253, 0, 0, 3,254, 0, 12, 3,255, 0,169, 4, 0, 0, 9, 4, 1, 0,170, 0, 1, - 0, 7, 2, 32, 0,160, 0, 30, 0, 4, 0, 17, 0, 7, 4, 2, 0, 7, 4, 3, 0, 7, 4, 4, 0, 4, 4, 5, 0, 4, 4, 6, - 0, 4, 4, 7, 0, 4, 4, 8, 0, 7, 4, 9, 0, 7, 4, 10, 0, 7, 4, 11, 0, 7, 4, 12, 0, 7, 4, 13, 0, 7, 4, 14, - 0, 7, 4, 15, 0, 7, 4, 16, 0, 7, 4, 17, 0, 7, 4, 18, 0, 7, 4, 19, 0, 7, 4, 20, 0, 7, 4, 21, 0, 7, 4, 22, - 0, 7, 4, 23, 0, 7, 4, 24, 0, 7, 4, 25, 0, 7, 4, 26, 0, 4, 4, 27, 0, 4, 4, 28, 0, 7, 4, 29, 0, 7, 3,148, - 0,162, 0, 54, 0, 4, 3,238, 0, 4, 4, 30, 0,171, 4, 31, 0,172, 4, 32, 0, 0, 0, 35, 0, 0, 4, 33, 0, 2, 4, 34, - 0, 7, 4, 35, 0, 0, 4, 36, 0, 7, 4, 37, 0, 7, 4, 38, 0, 7, 4, 39, 0, 7, 4, 40, 0, 7, 4, 41, 0, 7, 4, 42, - 0, 7, 4, 43, 0, 7, 4, 44, 0, 7, 4, 45, 0, 2, 4, 46, 0, 0, 4, 47, 0, 2, 4, 48, 0, 7, 4, 49, 0, 7, 4, 50, - 0, 0, 4, 51, 0, 4, 0,120, 0, 4, 4, 52, 0, 4, 4, 53, 0, 2, 4, 54, 0, 2, 4, 55, 0,170, 4, 56, 0, 4, 4, 57, - 0, 4, 0, 79, 0, 7, 4, 58, 0, 7, 4, 59, 0, 7, 4, 60, 0, 7, 4, 61, 0, 2, 4, 62, 0, 2, 4, 63, 0, 2, 4, 64, - 0, 2, 4, 65, 0, 2, 4, 66, 0, 2, 4, 67, 0, 2, 4, 68, 0, 2, 4, 69, 0,173, 4, 70, 0, 7, 4, 71, 0, 7, 4, 72, - 0,129, 4, 73, 0, 12, 2,255, 0,166, 4, 74, 0, 7, 4, 75, 0, 7, 4, 76, 0, 7, 4, 77, 0, 0, 4, 78, 0,145, 0, 51, - 0,144, 4, 79, 0, 2, 0, 15, 0, 2, 4, 80, 0, 2, 4, 81, 0, 2, 4, 82, 0, 7, 4, 83, 0, 2, 4, 84, 0, 2, 4, 85, - 0, 7, 4, 86, 0, 2, 4, 87, 0, 2, 4, 88, 0, 7, 4, 89, 0, 7, 4, 90, 0, 7, 4, 91, 0, 7, 4, 92, 0, 7, 4, 93, - 0, 4, 4, 94, 0, 4, 4, 95, 0, 7, 4, 96, 0, 4, 4, 97, 0, 7, 4, 98, 0, 7, 4, 99, 0, 7, 4,100, 0, 73, 4,101, - 0, 73, 4,102, 0, 73, 4,103, 0, 0, 4,104, 0, 7, 4,105, 0, 7, 4,106, 0, 28, 0, 77, 0, 2, 4,107, 0, 0, 4,108, - 0, 0, 4,109, 0, 7, 4,110, 0, 4, 4,111, 0, 7, 4,112, 0, 7, 4,113, 0, 4, 4,114, 0, 4, 0, 17, 0, 7, 4,115, - 0, 7, 4,116, 0, 7, 4,117, 0, 77, 4,118, 0, 7, 4,119, 0, 7, 4,120, 0, 7, 4,121, 0, 7, 4,122, 0, 7, 4,123, - 0, 7, 4,124, 0, 7, 4,125, 0, 4, 4,126, 0,174, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,169, 0, 2, 1, 69, - 0, 2, 1,103, 0, 2, 4,127, 0, 7, 4,128, 0, 7, 4,129, 0, 7, 4,130, 0, 7, 4,131, 0, 7, 4,132, 0, 7, 4,133, - 0, 7, 1,149, 0, 7, 1,151, 0, 7, 1,150, 0, 7, 0, 67, 0, 4, 4,134, 0, 7, 4,135, 0, 7, 4,136, 0, 7, 4,137, - 0, 7, 4,138, 0, 7, 4,139, 0, 7, 4,140, 0, 7, 4,141, 0, 2, 4,142, 0, 2, 1, 68, 0, 2, 4,143, 0, 2, 4,144, - 0, 2, 4,145, 0, 2, 4,146, 0, 2, 4,147, 0, 2, 4,148, 0, 7, 4,149, 0, 7, 4,150, 0, 7, 4,151, 0, 7, 4,152, - 0, 7, 4,153, 0, 7, 4,154, 0, 7, 4,155, 0, 7, 4,156, 0, 7, 4,157, 0, 7, 4,158, 0, 7, 4,159, 0, 7, 4,160, - 0, 2, 4,161, 0, 2, 4,162, 0, 2, 4,163, 0, 2, 4,164, 0, 7, 4,165, 0, 7, 4,166, 0, 7, 4,167, 0, 7, 4,168, - 0, 2, 4,169, 0, 2, 4,170, 0, 2, 4,171, 0, 2, 4,172, 0, 7, 4,173, 0, 7, 4,174, 0, 7, 4,175, 0, 7, 4,176, - 0, 7, 4,177, 0, 7, 4,178, 0, 7, 4,179, 0, 2, 4,180, 0, 2, 4,181, 0, 2, 4,182, 0, 2, 4,183, 0, 2, 4,184, - 0, 2, 0, 17, 0, 7, 4,185, 0, 7, 4,186, 0, 28, 0, 77, 0, 43, 1,121, 0, 2, 1,122, 0, 2, 4,187, 0, 22, 0,145, - 0,175, 0, 8, 0,175, 0, 0, 0,175, 0, 1, 0, 4, 3,126, 0, 4, 4,188, 0, 4, 0, 17, 0, 2, 4,189, 0, 2, 4,190, - 0, 24, 0,158, 0,176, 0, 13, 0, 9, 4,191, 0, 9, 4,192, 0, 4, 4,193, 0, 4, 4,194, 0, 4, 4,195, 0, 4, 4,196, - 0, 4, 4,197, 0, 4, 4,198, 0, 4, 4,199, 0, 4, 4,200, 0, 4, 4,201, 0, 4, 0, 35, 0, 0, 4,202, 0,177, 0, 5, - 0, 9, 4,203, 0, 9, 4,204, 0, 4, 4,205, 0, 4, 0, 67, 0, 0, 4,206, 0,178, 0, 17, 0, 4, 4,207, 0, 4, 4,208, - 0, 4, 4,209, 0, 4, 4,210, 0, 4, 4,211, 0, 4, 4,212, 0, 4, 4,213, 0, 4, 4,214, 0, 4, 4,215, 0, 4, 4,216, - 0, 4, 4,217, 0, 4, 4,218, 0, 2, 4,219, 0, 2, 4,220, 0, 4, 4,221, 0, 4, 4,222, 0, 4, 0, 87, 0,179, 0, 15, - 0, 4, 0, 15, 0, 4, 4,209, 0, 4, 4,223, 0, 4, 4,224, 0, 4, 4,225, 0, 4, 4,226, 0, 7, 4,227, 0, 4, 4,228, - 0, 4, 0, 88, 0, 4, 4,229, 0, 4, 4,230, 0, 4, 4,231, 0, 4, 4,232, 0, 4, 4,233, 0, 18, 0, 28, 0,180, 0, 7, - 0, 4, 4,234, 0, 7, 4,235, 0, 7, 4,236, 0, 7, 4,237, 0, 4, 4,238, 0, 2, 0, 17, 0, 2, 0, 35, 0,181, 0, 11, - 0,181, 0, 0, 0,181, 0, 1, 0, 0, 0, 18, 0, 57, 4,239, 0, 58, 4,240, 0, 4, 3,126, 0, 4, 4,241, 0, 4, 4,242, - 0, 4, 0, 35, 0, 4, 4,243, 0, 4, 4,244, 0,182, 0,110, 0,176, 4,245, 0,177, 4,246, 0,178, 4,247, 0,179, 4,248, - 0, 4, 3, 14, 0, 4, 0,120, 0, 4, 4, 52, 0, 7, 4,249, 0, 4, 4,250, 0, 4, 4,251, 0, 4, 4,252, 0, 4, 4,253, - 0, 2, 0, 17, 0, 2, 4,254, 0, 7, 4,255, 0, 7, 5, 0, 0, 7, 5, 1, 0, 7, 5, 2, 0, 7, 5, 3, 0, 2, 5, 4, - 0, 2, 5, 5, 0, 2, 5, 6, 0, 2, 5, 7, 0, 2, 0,242, 0, 2, 5, 8, 0, 4, 5, 9, 0, 2, 5, 10, 0, 2, 5, 11, - 0, 2, 1, 90, 0, 2, 0,104, 0, 2, 5, 12, 0, 2, 5, 13, 0, 2, 5, 14, 0, 2, 5, 15, 0, 2, 5, 16, 0, 2, 5, 17, - 0, 2, 5, 18, 0, 2, 5, 19, 0, 2, 5, 20, 0, 2, 1, 91, 0, 2, 5, 21, 0, 2, 5, 22, 0, 2, 5, 23, 0, 2, 5, 24, - 0, 4, 5, 25, 0, 4, 1, 68, 0, 4, 5, 26, 0, 2, 5, 27, 0, 2, 5, 28, 0, 2, 5, 29, 0, 2, 5, 30, 0, 2, 5, 31, - 0, 2, 5, 32, 0, 2, 5, 33, 0, 2, 5, 34, 0, 16, 5, 35, 0, 16, 5, 36, 0, 15, 5, 37, 0, 12, 5, 38, 0, 2, 5, 39, - 0, 2, 5, 40, 0, 7, 5, 41, 0, 7, 5, 42, 0, 7, 5, 43, 0, 7, 5, 44, 0, 4, 5, 45, 0, 7, 5, 46, 0, 7, 5, 47, - 0, 7, 5, 48, 0, 7, 5, 49, 0, 2, 5, 50, 0, 2, 5, 51, 0, 2, 5, 52, 0, 2, 5, 53, 0, 2, 5, 54, 0, 2, 5, 55, - 0, 7, 5, 56, 0, 7, 5, 57, 0, 7, 5, 58, 0, 0, 5, 59, 0, 0, 5, 60, 0, 4, 5, 61, 0, 2, 5, 62, 0, 2, 1,225, - 0, 0, 5, 63, 0, 7, 5, 64, 0, 7, 5, 65, 0, 0, 5, 66, 0, 0, 5, 67, 0, 0, 5, 68, 0, 0, 5, 69, 0, 4, 5, 70, - 0, 2, 5, 71, 0, 2, 5, 72, 0, 7, 5, 73, 0, 7, 5, 74, 0, 2, 5, 75, 0, 2, 5, 76, 0, 7, 5, 77, 0, 2, 5, 78, - 0, 2, 5, 79, 0, 4, 5, 80, 0, 2, 5, 81, 0, 2, 5, 82, 0, 2, 5, 83, 0, 2, 5, 84, 0, 7, 5, 85, 0, 7, 0, 67, - 0, 34, 5, 86, 0, 0, 5, 87, 0,183, 0, 9, 0,183, 0, 0, 0,183, 0, 1, 0, 0, 0, 18, 0, 2, 5, 88, 0, 2, 5, 89, - 0, 2, 5, 90, 0, 2, 0, 87, 0, 7, 5, 91, 0, 7, 0, 67, 0,184, 0, 7, 0, 2, 2,203, 0, 2, 1, 68, 0, 2, 3, 71, - 0, 2, 5, 92, 0, 7, 5, 93, 0, 7, 0, 67, 0, 34, 5, 94, 0,185, 0, 5, 0, 7, 5, 95, 0, 0, 0, 15, 0, 0, 0, 87, - 0, 0, 0, 67, 0, 0, 1,225, 0,186, 0, 28, 0, 7, 4,140, 0, 7, 4,141, 0, 2, 1, 68, 0, 2, 0, 17, 0, 2, 5, 96, - 0, 2, 4,187, 0, 2, 4,143, 0, 2, 4,144, 0, 2, 4,145, 0, 2, 4,146, 0, 2, 4,147, 0, 2, 4,148, 0,185, 5, 97, - 0, 2, 5, 4, 0, 2, 5, 5, 0, 2, 5, 6, 0, 2, 5, 7, 0, 2, 0,242, 0, 2, 5, 8, 0, 2, 5, 98, 0, 2, 5, 99, - 0,184, 5,100, 0, 2, 5,101, 0, 2, 5, 10, 0, 2, 5, 13, 0, 2, 5, 14, 0, 7, 5,102, 0, 7, 0, 87, 0,187, 0, 6, - 0,187, 0, 0, 0,187, 0, 1, 0, 4, 3,237, 0, 0, 3,250, 0, 4, 0, 17, 0, 24, 5,103, 0,188, 0, 4, 0,189, 5,104, - 0, 9, 5,105, 0, 0, 5,106, 0, 4, 0, 88, 0,190, 0, 8, 0,188, 5,107, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 5,108, - 0, 2, 5,109, 0, 2, 5,110, 0, 4, 0, 87, 0, 9, 5,111, 0,191, 0, 6, 0, 2, 0,104, 0, 2, 3,243, 0, 2, 5,112, - 0, 2, 2,197, 0, 4, 0, 17, 0, 7, 2,214, 0,192, 0, 14, 0, 2, 0, 17, 0, 2, 5,113, 0, 2, 5,114, 0, 2, 5,115, - 0,191, 5,116, 0, 9, 5,111, 0, 7, 5,117, 0, 7, 0, 54, 0, 4, 5,118, 0, 4, 5,119, 0, 4, 5,120, 0, 4, 5,121, - 0, 38, 0,116, 0, 24, 0,158, 0,193, 0, 4, 0,193, 0, 0, 0,193, 0, 1, 0, 0, 5,122, 0, 7, 5,123, 0,194, 0, 14, - 0,188, 5,107, 0, 4, 0, 88, 0, 4, 5,124, 0, 7, 5,125, 0, 7, 5,126, 0, 7, 5,127, 0, 4, 5,128, 0, 4, 5,129, - 0, 7, 5,130, 0, 7, 5,131, 0, 4, 5,132, 0, 7, 5,133, 0, 7, 5,134, 0, 4, 0, 35, 0,195, 0, 7, 0,188, 5,107, - 0, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, 4, 5,135, 0, 79, 5,136, 0, 9, 5,111, 0,196, 0, 82, 0,195, 5,137, - 0,195, 5,138, 0,194, 3, 91, 0, 7, 5,139, 0, 2, 5,140, 0, 2, 5,141, 0, 7, 5,142, 0, 7, 5,143, 0, 2, 3,243, - 0, 2, 5,144, 0, 7, 5,145, 0, 7, 5,146, 0, 7, 5,147, 0, 2, 5,148, 0, 2, 5,118, 0, 2, 5,149, 0, 2, 5,150, - 0, 2, 5,151, 0, 2, 5,152, 0, 7, 5,153, 0, 7, 5,154, 0, 7, 5,155, 0, 2, 5,156, 0, 2, 5,157, 0, 2, 5,158, - 0, 2, 5,159, 0, 2, 5,160, 0, 2, 5,161, 0, 2, 5,162, 0, 2, 5,163, 0,190, 5,164, 0,192, 5,165, 0, 7, 5,166, - 0, 7, 5,167, 0, 7, 5,168, 0, 2, 5,169, 0, 2, 5,170, 0, 0, 5,171, 0, 0, 5,172, 0, 0, 5,173, 0, 0, 5,174, - 0, 0, 5,175, 0, 0, 5,176, 0, 2, 5,177, 0, 7, 5,178, 0, 7, 5,179, 0, 7, 5,180, 0, 7, 5,181, 0, 7, 5,182, - 0, 7, 5,183, 0, 7, 5,184, 0, 7, 5,185, 0, 7, 5,186, 0, 7, 5,187, 0, 2, 5,188, 0, 0, 5,189, 0, 0, 5,190, - 0, 0, 5,191, 0, 0, 5,192, 0, 24, 5,193, 0, 0, 5,194, 0, 0, 5,195, 0, 0, 5,196, 0, 0, 5,197, 0, 0, 5,198, - 0, 0, 5,199, 0, 0, 5,200, 0, 0, 5,201, 0, 0, 5,202, 0, 0, 5,203, 0, 2, 5,204, 0, 2, 5,205, 0, 2, 5,206, - 0, 2, 5,207, 0, 0, 5,208, 0, 0, 4,187, 0, 4, 5,209, 0, 2, 5,210, 0, 2, 0, 87, 0, 4, 5,211, 0, 7, 5,212, - 0, 7, 5,213, 0,197, 0, 8, 0, 4, 5,214, 0, 4, 5,215, 0, 4, 5,216, 0, 4, 5,217, 0, 4, 5,218, 0, 4, 5,219, - 0, 4, 0, 51, 0, 4, 2,117, 0,198, 0, 4, 0, 7, 5,220, 0, 0, 5,221, 0, 0, 5,222, 0, 2, 0, 17, 0,199, 0, 4, - 0, 7, 5,223, 0, 4, 0, 17, 0, 4, 5,224, 0, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 5,103, - 0,174, 5,225, 0, 38, 5,226, 0, 12, 5,227, 0,175, 5,228, 0, 24, 5,229, 0, 7, 5,230, 0, 7, 5,231, 0, 7, 5,232, - 0, 7, 5,233, 0, 4, 3,126, 0, 4, 5,234, 0, 4, 5,235, 0, 4, 5,236, 0, 4, 5,237, 0, 2, 0, 17, 0, 2, 1, 62, - 0, 52, 1, 57, 0,200, 5,238, 0,196, 5,239, 0,201, 5,240, 0,182, 0,176, 0,180, 5,241, 0, 12, 0, 98, 0, 12, 5,242, - 0, 9, 5,243, 0, 9, 5,244, 0, 9, 5,245, 0, 9, 5,246, 0,202, 5,247, 0, 2, 5,248, 0, 2, 5,249, 0, 2, 0,243, - 0, 2, 5,250, 0, 4, 5,251, 0, 4, 5,252, 0, 12, 5,253, 0,185, 5, 97, 0,186, 5,254, 0,198, 5,255, 0,157, 3,104, - 0,199, 6, 0, 0,203, 0, 11, 0,203, 0, 0, 0,203, 0, 1, 0, 39, 0,234, 0, 37, 1, 56, 0, 7, 2, 82, 0, 7, 2, 83, - 0, 7, 0,104, 0, 7, 6, 1, 0, 2, 6, 2, 0, 2, 0, 17, 0, 7, 0, 67, 0,204, 0, 37, 0, 7, 6, 3, 0, 7, 6, 4, - 0, 7, 6, 5, 0, 7, 6, 6, 0, 7, 6, 7, 0, 7, 6, 8, 0, 7, 6, 9, 0, 7, 6, 10, 0, 7, 6, 11, 0, 7, 1, 75, - 0, 7, 6, 12, 0, 7, 6, 13, 0, 7, 6, 14, 0, 7, 6, 15, 0, 7, 0,165, 0, 2, 6, 16, 0, 2, 6, 17, 0, 4, 0, 35, - 0, 2, 6, 18, 0, 2, 6, 19, 0, 2, 6, 20, 0, 2, 6, 2, 0, 7, 6, 21, 0, 7, 6, 22, 0, 62, 6, 23, 0,157, 3,104, - 0,204, 6, 24, 0,205, 6, 25, 0,206, 6, 26, 0,207, 6, 27, 0,208, 6, 28, 0, 7, 6, 29, 0, 2, 6, 30, 0, 2, 6, 31, - 0, 7, 6, 32, 0, 7, 6, 33, 0, 7, 6, 34, 0,209, 0, 55, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, - 0, 7, 6, 37, 0, 2, 6, 38, 0, 7, 6, 11, 0, 7, 1, 75, 0, 7, 0, 87, 0, 4, 6, 39, 0, 2, 6, 20, 0, 2, 6, 2, - 0, 24, 5,103, 0, 24, 6, 40, 0, 12, 6, 41, 0,203, 6, 42, 0,209, 6, 24, 0, 0, 6, 43, 0, 4, 3,126, 0, 4, 5,234, - 0, 2, 6, 44, 0, 2, 6, 45, 0, 2, 6, 46, 0, 2, 6, 47, 0, 2, 1,225, 0, 2, 0, 17, 0, 2, 2, 17, 0, 2, 6, 48, - 0, 7, 0,109, 0, 7, 6, 49, 0, 7, 6, 32, 0, 7, 6, 50, 0, 7, 6, 51, 0, 7, 0,165, 0, 7, 5,230, 0, 2, 6, 52, - 0, 2, 5, 30, 0, 2, 6, 53, 0, 2, 6, 54, 0, 2, 6, 55, 0, 2, 6, 56, 0, 2, 6, 57, 0, 2, 6, 58, 0, 2, 6, 59, - 0, 2, 6, 17, 0, 12, 6, 60, 0, 12, 6, 61, 0, 12, 6, 62, 0, 2, 6, 63, 0, 2, 2,130, 0, 2, 6, 64, 0, 0, 6, 65, - 0, 0, 6, 66, 0, 9, 6, 67, 0,157, 3,104, 0,211, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, 0, 15, 6, 68, 0, 15, 6, 69, - 0, 15, 6, 70, 0, 7, 6, 71, 0, 7, 6, 72, 0, 7, 6, 73, 0, 7, 6, 74, 0, 2, 6, 75, 0, 2, 6, 76, 0, 2, 6, 77, - 0, 2, 6, 78, 0, 2, 6, 79, 0, 2, 0, 17, 0, 2, 6, 80, 0, 2, 6, 81, 0, 2, 6, 82, 0, 2, 6, 83, 0, 2, 6, 84, - 0, 2, 6, 47, 0, 7, 6, 85, 0, 4, 6, 86, 0, 4, 6, 87, 0,210, 0, 6, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, - 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0,212, 0, 8, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, - 0, 7, 6, 37, 0, 2, 6, 38, 0, 0, 6, 88, 0, 0, 0,175, 0,213, 0, 14, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, - 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0,211, 6, 89, 0,214, 6, 90, 0, 12, 6, 91, 0, 2, 1, 68, 0, 2, 6, 92, - 0, 4, 0, 17, 0, 7, 6, 93, 0, 4, 6, 47, 0,215, 0, 21, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, - 0, 7, 6, 37, 0, 2, 6, 38, 0,205, 6, 25, 0,211, 6, 89, 0, 2, 6, 94, 0, 2, 6, 95, 0, 2, 6, 96, 0, 2, 6, 97, - 0, 2, 6, 80, 0, 2, 6, 98, 0, 2, 6, 99, 0, 0, 0, 17, 0, 0, 0, 35, 0, 9, 2, 58, 0, 4, 6,100, 0, 4, 6,101, - 0, 19, 6,102, 0,216, 0, 18, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, - 0,211, 6, 89, 0, 7, 2, 82, 0, 7, 2, 83, 0, 2, 6, 94, 0, 2, 6,103, 0, 2, 6,104, 0, 2, 6,105, 0, 4, 0, 17, - 0, 7, 6,106, 0, 4, 6, 2, 0, 4, 0, 35, 0,157, 3,104, 0,217, 0, 16, 0, 0, 6,107, 0, 0, 6,108, 0, 0, 6,109, - 0, 0, 6,110, 0, 0, 6,111, 0, 0, 6,112, 0, 4, 6,113, 0, 4, 6,114, 0, 4, 6,115, 0, 2, 0, 15, 0, 2, 0, 17, - 0, 2, 6,116, 0, 2, 6,117, 0, 2, 1,168, 0, 2, 6,118, 0, 0, 6,119, 0,218, 0, 16, 0,210, 0, 0, 0,210, 0, 1, - 0, 12, 6, 35, 0, 4, 6, 36, 0, 4, 6,120, 0,217, 6,121, 0,219, 6,122, 0, 12, 6,123, 0, 12, 6,124, 0,220, 6,125, - 0,208, 6,126, 0,221, 6,127, 0, 2, 6,128, 0, 2, 6,129, 0, 2, 6,130, 0, 2, 0, 67, 0,222, 0, 15, 0,210, 0, 0, - 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0,211, 6, 89, 0, 12, 6,131, 0,223, 6,132, - 0, 0, 6,133, 0,224, 6,134, 0, 2, 0, 17, 0, 2, 6,135, 0, 2, 6,136, 0, 2, 6,137, 0,225, 0, 25, 0,210, 0, 0, - 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 4, 0, 17, 0, 39, 2,222, 0, 37, 1, 56, 0, 55, 6,138, 0,226, 6,139, - 0,227, 6,140, 0,157, 3,104, 0, 7, 6,141, 0, 7, 2, 82, 0, 7, 2, 83, 0, 7, 6,106, 0, 7, 6,142, 0, 7, 6,143, - 0, 2, 6,144, 0, 2, 6,145, 0, 2, 6,146, 0, 2, 6,147, 0, 0, 6,148, 0, 0, 6,149, 0, 0, 6,150, 0, 0, 6, 47, - 0,228, 0, 11, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0, 2, 6, 92, - 0, 2, 0, 17, 0, 4, 0, 35, 0,214, 6, 90, 0,211, 6, 89, 0,229, 0, 31, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, - 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0, 34, 6,151, 0, 4, 6,152, 0, 4, 6,153, 0, 2, 0, 88, 0, 2, 6,154, - 0, 2, 6,155, 0, 0, 6,156, 0, 0, 6,157, 0, 4, 6,158, 0, 4, 6,159, 0, 4, 6,160, 0, 2, 6,161, 0, 2, 6,162, - 0, 2, 6,163, 0, 2, 6,164, 0, 7, 6,165, 0, 15, 6,166, 0, 15, 6,167, 0, 4, 6,168, 0, 4, 6,169, 0, 0, 6,170, - 0, 0, 6,171, 0, 2, 6,172, 0, 0, 2,183, 0, 9, 6,173, 0,230, 0, 10, 0, 19, 0, 29, 0, 9, 6,174, 0, 9, 6,175, - 0, 9, 6,176, 0, 9, 6,177, 0, 9, 6,178, 0, 4, 0, 88, 0, 4, 6,179, 0, 0, 6,180, 0, 0, 6,181, 0,231, 0, 10, - 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0,230, 6,182, 0, 2, 0, 88, 0, 2, 6,154, - 0, 4, 0, 87, 0, 9, 6,183, 0,232, 0, 3, 0,232, 0, 0, 0,232, 0, 1, 0, 7, 6,184, 0,233, 0, 11, 0,210, 0, 0, - 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0,211, 6, 89, 0, 12, 6,185, 0, 4, 6,186, 0, 4, 0, 35, - 0, 4, 0, 17, 0, 4, 6,187, 0,234, 0, 26, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, - 0, 2, 6, 38, 0,211, 6, 89, 0, 19, 6,188, 0, 19, 0, 78, 0, 2, 0, 17, 0, 2, 6,154, 0, 7, 6,189, 0, 9, 6,190, - 0, 7, 2, 82, 0, 7, 2, 83, 0, 7, 6,106, 0, 7, 6, 34, 0, 7, 6,191, 0, 7, 6,192, 0, 52, 1, 57, 0, 52, 6,193, - 0, 4, 6,194, 0, 2, 6,195, 0, 2, 0,243, 0, 12, 6,196, 0,157, 3,104, 0,235, 0, 10, 0,210, 0, 0, 0,210, 0, 1, - 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0, 2, 0, 17, 0, 2, 3,135, 0, 4, 0, 35, 0,157, 3,104, - 0,236, 0, 42, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0,211, 6, 89, - 0,219, 6,122, 0, 0, 6,197, 0, 0, 6,108, 0, 0, 6,109, 0, 2, 0, 15, 0, 2, 6,198, 0, 2, 0, 17, 0, 2, 6,116, - 0, 9, 6,190, 0, 4, 6,113, 0, 4, 6,199, 0, 4, 6,200, 0, 4, 6,201, 0, 15, 6,202, 0, 15, 6,203, 0, 7, 6,204, - 0, 7, 6,205, 0, 7, 6,206, 0, 7, 6,189, 0, 2, 6,207, 0, 2, 0,233, 0, 2, 1,168, 0, 2, 6,208, 0, 2, 0, 35, - 0, 2, 0, 87, 0, 2, 6,209, 0, 2, 6,210, 0, 9, 6,211, 0, 9, 6,212, 0, 9, 6,213, 0, 9, 6,214, 0, 9, 6,215, - 0, 2, 6,216, 0, 0, 6,217, 0, 49, 6,218, 0,237, 0, 7, 0,237, 0, 0, 0,237, 0, 1, 0, 4, 6,219, 0, 4, 0, 21, - 0, 0, 0, 81, 0, 4, 6,220, 0, 4, 0, 15, 0,238, 0, 14, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, - 0, 7, 6, 37, 0, 2, 6, 38, 0, 4, 6,155, 0, 4, 0, 35, 0, 12, 6,221, 0, 12, 6,222, 0, 0, 6,223, 0, 0, 6,224, - 0, 4, 6,225, 0, 4, 6,226, 0,239, 0, 6, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 4, 0, 35, - 0, 0, 6,227, 0,240, 0, 15, 0,210, 0, 0, 0,210, 0, 1, 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0,241, 6,228, - 0,211, 6, 89, 0,242, 6,229, 0, 2, 1, 68, 0, 2, 6,230, 0, 2, 2, 82, 0, 2, 2, 83, 0, 2, 0, 17, 0, 2, 6,146, - 0, 4, 0, 67, 0,243, 0, 7, 0,243, 0, 0, 0,243, 0, 1, 0, 0, 6,231, 0, 2, 6,232, 0, 2, 6,233, 0, 2, 6,234, - 0, 2, 0, 35, 0,244, 0, 12, 0, 2, 6,233, 0, 2, 6,235, 0, 2, 6,236, 0, 0, 2,183, 0, 2, 6,237, 0, 2, 6,238, - 0, 2, 6,239, 0, 2, 6,240, 0, 2, 6,241, 0, 2, 6, 80, 0, 7, 6,242, 0, 7, 6,243, 0,245, 0, 18, 0,245, 0, 0, - 0,245, 0, 1, 0, 0, 3,250, 0,244, 6,244, 0,244, 6,245, 0,244, 6,246, 0,244, 6,247, 0, 7, 6,248, 0, 2, 6,249, - 0, 2, 6,250, 0, 2, 6,251, 0, 2, 6,252, 0, 2, 6,253, 0, 2, 6,254, 0, 2, 6,255, 0, 2, 7, 0, 0, 2, 7, 1, - 0, 2, 7, 2, 0,246, 0, 10, 0, 0, 7, 3, 0, 0, 7, 4, 0, 0, 7, 5, 0, 0, 7, 6, 0, 0, 7, 7, 0, 0, 7, 8, - 0, 2, 7, 9, 0, 2, 7, 10, 0, 2, 7, 11, 0, 2, 7, 12, 0,247, 0, 8, 0, 0, 7, 13, 0, 0, 7, 14, 0, 0, 7, 15, - 0, 0, 7, 16, 0, 0, 7, 17, 0, 0, 7, 18, 0, 7, 6, 1, 0, 7, 0, 35, 0,248, 0, 18, 0,246, 7, 19, 0,246, 7, 20, - 0,246, 7, 21, 0,246, 7, 22, 0,246, 7, 23, 0,246, 7, 24, 0,246, 7, 25, 0,246, 7, 26, 0,246, 7, 27, 0,246, 7, 28, - 0,246, 7, 29, 0,246, 7, 30, 0,246, 7, 31, 0,246, 7, 32, 0,246, 7, 33, 0,246, 7, 34, 0,247, 7, 35, 0, 0, 7, 36, - 0,249, 0, 97, 0, 0, 7, 37, 0, 0, 7, 38, 0, 0, 7, 7, 0, 0, 7, 39, 0, 0, 7, 40, 0, 0, 7, 41, 0, 0, 7, 42, - 0, 0, 7, 43, 0, 0, 7, 44, 0, 0, 7, 45, 0, 0, 7, 46, 0, 0, 7, 47, 0, 0, 7, 48, 0, 0, 7, 49, 0, 0, 7, 50, - 0, 0, 7, 51, 0, 0, 7, 52, 0, 0, 7, 53, 0, 0, 7, 54, 0, 0, 7, 55, 0, 0, 7, 56, 0, 0, 7, 57, 0, 0, 7, 58, - 0, 0, 7, 59, 0, 0, 7, 60, 0, 0, 7, 61, 0, 0, 7, 62, 0, 0, 7, 63, 0, 0, 7, 64, 0, 0, 7, 65, 0, 0, 7, 66, - 0, 0, 7, 67, 0, 0, 7, 68, 0, 0, 7, 69, 0, 0, 7, 70, 0, 0, 7, 71, 0, 0, 7, 72, 0, 0, 7, 73, 0, 0, 7, 74, - 0, 0, 7, 75, 0, 0, 7, 76, 0, 0, 7, 77, 0, 0, 7, 78, 0, 0, 7, 79, 0, 0, 7, 80, 0, 0, 7, 81, 0, 0, 7, 82, - 0, 0, 7, 83, 0, 0, 7, 84, 0, 0, 7, 85, 0, 0, 7, 86, 0, 0, 7, 87, 0, 0, 7, 88, 0, 0, 7, 89, 0, 0, 7, 90, - 0, 0, 7, 91, 0, 0, 7, 92, 0, 0, 7, 93, 0, 0, 7, 94, 0, 0, 7, 95, 0, 0, 7, 96, 0, 0, 7, 97, 0, 0, 7, 98, - 0, 0, 7, 99, 0, 0, 7,100, 0, 0, 7,101, 0, 0, 7,102, 0, 0, 7,103, 0, 0, 7,104, 0, 0, 7,105, 0, 0, 7,106, - 0, 0, 7,107, 0, 0, 7,108, 0, 0, 7,109, 0, 0, 7,110, 0, 0, 7,111, 0, 0, 7,112, 0, 0, 7,113, 0, 0, 7,114, - 0, 0, 7,115, 0, 0, 7,116, 0, 0, 7,117, 0, 0, 7,118, 0, 0, 7,119, 0, 0, 7,120, 0, 0, 7,121, 0, 0, 7,122, - 0, 0, 7,123, 0, 0, 7,124, 0, 0, 7,125, 0, 0, 7,126, 0, 0, 7,127, 0, 0, 7,128, 0, 0, 7,129, 0, 0, 7,130, - 0, 0, 7,131, 0, 0, 7,132, 0,250, 0, 5, 0, 0, 7,133, 0, 0, 7, 61, 0, 0, 7, 63, 0, 2, 0, 17, 0, 2, 0, 35, - 0,251, 0, 25, 0,251, 0, 0, 0,251, 0, 1, 0, 0, 0, 18, 0,248, 7,134, 0,249, 7,135, 0,249, 7,136, 0,249, 7,137, - 0,249, 7,138, 0,249, 7,139, 0,249, 7,140, 0,249, 7,141, 0,249, 7,142, 0,249, 7,143, 0,249, 7,144, 0,249, 7,145, - 0,249, 7,146, 0,249, 7,147, 0,249, 7,148, 0,249, 7,149, 0,249, 7,150, 0,249, 7,151, 0,249, 7,152, 0,250, 7,153, - 0, 4, 7,154, 0, 4, 0, 35, 0,252, 0, 3, 0,252, 0, 0, 0,252, 0, 1, 0, 0, 7,155, 0,253, 0, 5, 0, 4, 0, 17, - 0, 4, 0, 35, 0, 7, 2,129, 0, 7, 7,156, 0, 7, 2, 32, 0,254, 0, 90, 0, 4, 0, 17, 0, 4, 7,157, 0, 4, 7,158, - 0, 0, 7,159, 0, 0, 7,160, 0, 0, 7,161, 0, 0, 7,162, 0, 0, 7,163, 0, 0, 7,164, 0, 0, 7,165, 0, 0, 7,166, - 0, 0, 7,167, 0, 0, 7,168, 0, 4, 7,169, 0, 2, 7,170, 0, 2, 7,171, 0, 2, 7,172, 0, 2, 7,173, 0, 4, 7,174, - 0, 4, 7,175, 0, 4, 7,176, 0, 4, 7,177, 0, 2, 7,178, 0, 2, 7,179, 0, 4, 7,180, 0, 4, 7,181, 0, 4, 7,182, - 0, 4, 7,183, 0, 4, 7,184, 0, 4, 6,221, 0, 4, 7,185, 0, 2, 7,186, 0, 2, 7,187, 0, 2, 7,188, 0, 2, 7,189, - 0, 12, 7,190, 0, 12, 7,191, 0, 12, 7,192, 0, 12, 7,193, 0, 12, 7,194, 0, 0, 7,195, 0, 2, 7,196, 0, 2, 7,197, - 0, 2, 7,198, 0, 2, 7,199, 0, 2, 7,200, 0, 2, 7,201, 0, 2, 7,202, 0, 2, 7,203, 0,253, 7,204, 0, 2, 7,205, - 0, 2, 7,206, 0, 2, 7,207, 0, 2, 7,208, 0, 2, 7,209, 0, 2, 7,210, 0, 2, 7,211, 0, 2, 7,212, 0, 4, 7,213, - 0, 4, 7,214, 0, 2, 7,215, 0, 2, 7,216, 0, 2, 7,217, 0, 2, 7,218, 0, 2, 7,219, 0, 2, 7,220, 0, 2, 7,221, - 0, 2, 7,222, 0, 2, 7,223, 0, 2, 7,224, 0, 2, 7,225, 0, 2, 7,226, 0, 2, 7,227, 0, 2, 7,228, 0, 2, 7,229, - 0, 2, 7,230, 0, 2, 7,231, 0, 2, 4,187, 0, 0, 7,232, 0, 0, 7,233, 0, 7, 7,234, 0, 2, 5,169, 0, 2, 5,170, - 0, 2, 7,235, 0, 2, 7,236, 0, 7, 7,237, 0, 47, 7,238, 0, 7, 7,239, 0, 4, 1,225, 0, 0, 7,240, 0,255, 0, 24, - 0, 19, 0, 29, 0, 12, 7,241, 0, 12, 7,242, 0, 12, 7,243, 0, 12, 6, 35, 0, 38, 0,116, 0, 38, 7,244, 0, 4, 7,245, - 0, 4, 0, 87, 0, 2, 7,246, 0, 2, 7,247, 0, 2, 7,248, 0, 2, 7,249, 0, 2, 7,250, 0, 2, 7,251, 0, 2, 7,252, - 0, 2, 7,253, 0, 2, 7,254, 0, 2, 7,255, 0, 2, 8, 0, 0, 2, 0, 35, 0,208, 8, 1, 0, 9, 8, 2, 0, 2, 8, 3, - 1, 0, 0, 5, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 8, 4, 0, 13, 8, 5, 0, 4, 0, 17, 1, 1, 0, 7, 1, 1, 0, 0, - 1, 1, 0, 1, 1, 0, 8, 6, 1, 0, 8, 7, 0, 2, 5, 36, 0, 2, 0, 17, 0, 4, 0, 35, 1, 2, 0, 25, 1, 2, 0, 0, - 1, 2, 0, 1, 1, 3, 8, 8, 1, 4, 6,127, 0, 0, 8, 9, 0, 0, 8, 10, 0, 0, 8, 11, 0, 2, 8, 12, 0, 2, 8, 13, - 0, 2, 8, 14, 0, 2, 8, 15, 0, 2, 8, 16, 0, 2, 0, 35, 0, 2, 0, 17, 0, 2, 8, 17, 0, 2, 8, 18, 0, 2, 8, 19, - 0, 4, 8, 20, 1, 2, 8, 21, 0, 9, 8, 22, 0, 4, 8, 23, 0, 4, 8, 24, 0, 4, 8, 25, 0, 4, 8, 26, 0, 0, 8, 27, - 0,241, 0, 22, 0,241, 0, 0, 0,241, 0, 1, 1, 0, 8, 6, 1, 0, 8, 7, 1, 0, 8, 28, 1, 0, 8, 29, 0,255, 8, 30, - 0, 15, 0, 49, 0, 0, 6, 36, 0, 0, 8, 31, 0, 2, 6, 81, 0, 2, 6, 82, 0, 2, 8, 32, 0, 2, 0, 35, 0, 2, 7,250, - 0, 2, 6,220, 0, 2, 0, 17, 1, 5, 8, 8, 0, 12, 8, 33, 0, 12, 6, 35, 0, 12, 8, 34, 0, 12, 8, 35, 1, 6, 0, 24, - 1, 6, 0, 0, 1, 6, 0, 1, 0,211, 6, 89, 0, 15, 8, 36, 0, 15, 8, 37, 0, 2, 6, 81, 0, 2, 6, 82, 0, 2, 8, 38, - 0, 2, 8, 39, 0, 2, 8, 40, 0, 2, 0, 17, 0, 7, 2, 78, 0, 2, 8, 14, 0, 2, 8, 15, 0, 2, 7,249, 0, 2, 8, 41, - 0, 2, 7,254, 0, 2, 4,187, 1, 7, 8, 8, 0, 12, 8, 42, 0, 12, 8, 43, 0, 12, 8, 34, 0, 0, 8, 44, 0, 9, 8, 45, - 1, 8, 0, 14, 0, 0, 8, 46, 0, 2, 8, 47, 0, 2, 8, 48, 0, 2, 8, 49, 0, 2, 8, 50, 0, 2, 5, 22, 0, 2, 5, 17, - 0,255, 8, 51, 0, 38, 8, 52, 0, 4, 8, 53, 0, 4, 8, 54, 0, 4, 8, 55, 0, 4, 0, 35, 0, 0, 8, 56, 1, 9, 0, 3, - 0, 0, 8, 57, 0, 4, 8, 58, 0, 4, 8, 59, 1, 10, 0, 4, 0, 4, 6,152, 0, 4, 8, 60, 0, 4, 6,158, 0, 4, 8, 61, - 1, 11, 0, 2, 0, 4, 8, 62, 0, 4, 8, 63, 1, 12, 0, 5, 0, 7, 8, 64, 0, 7, 8, 65, 0, 7, 8, 66, 0, 4, 0, 17, - 0, 4, 0, 35, 1, 13, 0, 6, 0, 0, 8, 67, 0, 0, 6,109, 0, 41, 0,129, 0, 2, 0,104, 0, 2, 5, 21, 0, 4, 0, 35, - 1, 14, 0, 14, 1, 14, 0, 0, 1, 14, 0, 1, 0, 4, 0, 54, 0, 4, 0, 21, 0, 4, 0, 26, 0, 4, 8, 68, 0, 4, 8, 69, - 0, 4, 8, 70, 1, 9, 8, 71, 0, 0, 8, 67, 1, 13, 3, 98, 1, 10, 8, 72, 1, 11, 8, 73, 1, 12, 8, 74, 1, 15, 0, 12, - 0, 0, 1,249, 0, 9, 0,219, 0, 0, 0,220, 0, 4, 0,223, 0, 4, 0,231, 0, 9, 0,224, 0, 7, 0,226, 0, 7, 0,227, - 0, 9, 8, 75, 0, 9, 8, 76, 0, 9, 0,228, 0, 9, 0,230, 1, 16, 0, 48, 1, 16, 0, 0, 1, 16, 0, 1, 0, 9, 8, 77, - 0, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, 4, 0, 21, 0, 4, 0, 85, 0, 4, 8, 78, 0, 4, 8, 79, - 0, 4, 8, 69, 0, 4, 8, 70, 0, 4, 8, 80, 0, 4, 0,242, 0, 4, 8, 81, 0, 4, 8, 82, 0, 7, 8, 83, 0, 7, 0, 35, - 0, 7, 8, 84, 0, 7, 8, 85, 0, 4, 0,120, 0, 4, 8, 86, 1, 14, 8, 87, 0, 28, 0, 77, 0, 38, 0,116, 0, 24, 8, 88, - 0, 41, 0,129, 0, 7, 8, 89, 0, 7, 8, 90, 1, 15, 1, 58, 1, 16, 8, 91, 1, 16, 8, 92, 1, 16, 8, 93, 0, 12, 8, 94, - 0,242, 6,229, 0, 9, 8, 95, 0, 7, 4, 4, 0, 7, 8, 96, 0, 7, 8, 97, 0, 4, 8, 98, 0, 4, 8, 99, 0, 7, 8,100, - 0, 9, 8,101, 0, 4, 8,102, 0, 4, 8,103, 0, 4, 8,104, 0, 7, 8,105, 1, 17, 0, 4, 1, 17, 0, 0, 1, 17, 0, 1, - 0, 12, 8,106, 1, 16, 8,107, 0,200, 0, 11, 0, 12, 8,108, 0, 12, 8, 94, 0, 12, 8,109, 1, 16, 8,110, 0, 0, 8,111, - 0, 0, 8,112, 0, 4, 8,113, 0, 4, 8,114, 0, 4, 8,115, 0, 4, 0, 35, 0, 16, 8,116, 1, 18, 0, 4, 0, 7, 8,117, - 0, 7, 3, 71, 0, 2, 8,118, 0, 2, 8,119, 1, 19, 0, 6, 0, 7, 8,120, 0, 7, 8,121, 0, 7, 8,122, 0, 7, 8,123, - 0, 4, 8,124, 0, 4, 8,125, 1, 20, 0, 13, 0, 7, 8,126, 0, 7, 8,127, 0, 7, 8,128, 0, 7, 8,129, 0, 7, 8,130, - 0, 7, 8,131, 0, 7, 8,132, 0, 7, 8,133, 0, 7, 8,134, 0, 7, 8,135, 0, 4, 2,228, 0, 4, 8,136, 0, 4, 8,137, - 1, 21, 0, 2, 0, 7, 5, 95, 0, 7, 0, 35, 1, 22, 0, 5, 0, 7, 8,138, 0, 7, 8,139, 0, 4, 0, 88, 0, 4, 2,184, - 0, 4, 8,140, 1, 23, 0, 6, 1, 23, 0, 0, 1, 23, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,141, 0, 2, 0, 54, - 1, 24, 0, 8, 1, 24, 0, 0, 1, 24, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,141, 0, 2, 0, 54, 0, 7, 0, 21, - 0, 7, 0,120, 1, 25, 0, 45, 1, 25, 0, 0, 1, 25, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,141, 0, 2, 0,238, - 0, 2, 4, 46, 0, 2, 8,142, 0, 7, 8,143, 0, 7, 0, 86, 0, 7, 2,241, 0, 4, 8,144, 0, 4, 0, 79, 0, 4, 2,186, - 0, 7, 8,145, 0, 7, 8,146, 0, 7, 8,147, 0, 7, 8,148, 0, 7, 8,149, 0, 7, 8,150, 0, 7, 2,238, 0, 7, 1, 55, - 0, 7, 8,151, 0, 7, 8,152, 0, 7, 0, 35, 0, 7, 8,153, 0, 7, 8,154, 0, 7, 8,155, 0, 2, 8,156, 0, 2, 8,157, - 0, 2, 8,158, 0, 2, 8,159, 0, 2, 8,160, 0, 2, 8,161, 0, 2, 8,162, 0, 2, 8,163, 0, 2, 2, 17, 0, 2, 8,164, - 0, 2, 2, 14, 0, 2, 8,165, 0, 0, 8,166, 0, 0, 8,167, 0, 7, 0,236, 1, 26, 8,168, 0, 58, 1,228, 1, 27, 0, 16, - 1, 27, 0, 0, 1, 27, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,141, 0, 2, 0,238, 0, 7, 2,233, 0, 7, 2,234, - 0, 7, 2,235, 0, 7, 2, 67, 0, 7, 2,236, 0, 7, 2,237, 0, 7, 8,169, 0, 7, 2,238, 0, 7, 2,240, 0, 7, 2,241, - 0,224, 0, 5, 0, 2, 0, 15, 0, 2, 8,170, 0, 2, 0, 17, 0, 2, 8,171, 0, 19, 6,188, 0,223, 0, 3, 0, 4, 0, 66, - 0, 4, 8,172, 0,224, 0, 2, 1, 28, 0, 7, 1, 28, 0, 0, 1, 28, 0, 1, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, - 0, 4, 0, 20, 0, 9, 8,173, 1, 29, 0, 5, 0, 0, 0, 18, 0, 7, 1, 75, 0, 7, 8,174, 0, 4, 8,175, 0, 4, 0, 35, - 1, 30, 0, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, 2, 0, 67, 1, 31, 0, 4, 0, 0, 0, 18, 0, 57, 8,176, - 0, 7, 1, 75, 0, 7, 0, 35, 1, 32, 0, 6, 0, 2, 8,177, 0, 2, 8,178, 0, 2, 0, 15, 0, 2, 8,179, 0, 0, 8,180, - 0, 0, 8,181, 1, 33, 0, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 8,182, 0, 0, 8,183, 1, 34, 0, 3, - 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 1, 35, 0, 4, 0, 2, 8,184, 0, 2, 8,185, 0, 2, 0, 17, 0, 2, 0, 35, - 1, 36, 0, 6, 0, 0, 0, 18, 0, 0, 8,186, 0, 2, 8,187, 0, 2, 2,238, 0, 2, 1, 68, 0, 2, 0, 67, 1, 37, 0, 5, - 0, 0, 0, 18, 0, 7, 3, 71, 0, 7, 4,137, 0, 2, 0, 17, 0, 2, 2,198, 1, 38, 0, 3, 0, 0, 0, 18, 0, 4, 2,186, - 0, 4, 8,184, 1, 39, 0, 7, 0, 0, 0, 18, 0, 7, 4,137, 0, 0, 8,188, 0, 0, 8,189, 0, 2, 1, 68, 0, 2, 0, 87, - 0, 4, 8,190, 1, 40, 0, 4, 0, 0, 8,191, 0, 0, 8,192, 0, 4, 0, 15, 0, 7, 2,202, 1, 41, 0, 3, 0, 24, 8,193, - 0, 0, 8,194, 0, 0, 8,195, 1, 42, 0, 18, 1, 42, 0, 0, 1, 42, 0, 1, 0, 2, 0, 15, 0, 2, 8,196, 0, 2, 0, 17, - 0, 2, 8,197, 0, 2, 8,198, 0, 2, 8,199, 0, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, 1, 43, 8,200, - 0, 24, 0, 42, 0, 2, 5,112, 0, 2, 8, 96, 0, 2, 8,201, 0, 2, 0, 35, 1, 44, 0, 11, 0, 0, 0, 18, 0, 0, 0, 15, - 0, 0, 8,202, 0, 2, 0, 17, 0, 2, 2,198, 0, 2, 8,203, 0, 4, 8,204, 0, 4, 8,205, 0, 4, 8,206, 0, 4, 8,207, - 0, 4, 8,208, 1, 45, 0, 1, 0, 0, 8,209, 1, 46, 0, 4, 0, 34, 6,151, 0, 0, 7,155, 0, 4, 1, 68, 0, 4, 0, 17, - 1, 43, 0, 18, 1, 43, 0, 0, 1, 43, 0, 1, 1, 43, 8,210, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8,211, 0, 2, 8,199, - 0, 2, 8,196, 0, 2, 8,212, 0, 2, 0, 67, 0, 2, 1,225, 0, 0, 0, 18, 0, 9, 0, 2, 1, 47, 8,200, 1, 42, 8,213, - 0, 2, 0, 13, 0, 2, 8,214, 0, 4, 8,215, 1, 48, 0, 3, 0, 4, 2,212, 0, 4, 0, 35, 0, 24, 0, 42, 1, 49, 0, 12, - 0,155, 8,216, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 8,143, 0, 7, 0, 86, 0, 0, 0, 18, 0, 0, 8,217, 0, 2, 8,218, - 0, 2, 8,219, 0, 2, 8,220, 0, 2, 8,221, 0, 7, 8,222, 1, 50, 0, 8, 0, 7, 8,223, 0, 7, 8,224, 0, 7, 8,225, - 0, 7, 8,226, 0, 7, 8,227, 0, 7, 8,228, 0, 7, 8,229, 0, 7, 8,230, 1, 51, 0, 13, 0, 2, 0, 17, 0, 2, 6,230, - 0, 4, 0, 87, 0, 4, 0, 67, 0, 2, 8,231, 0, 7, 4, 4, 0, 7, 8,232, 0,242, 6,229, 1, 50, 8,233, 0, 2, 0, 15, - 0, 2, 5, 30, 0, 2, 5,251, 0, 2, 8,234, 1, 52, 0, 11, 0, 4, 2,212, 0, 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, - 0, 73, 8,235, 0, 0, 0, 18, 0, 7, 8,236, 0, 7, 8,237, 0, 7, 3,143, 0, 2, 8,238, 0, 2, 8,239, 1, 53, 0, 5, - 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,116, 0, 24, 5,103, 1, 54, 0, 5, 0, 4, 0, 35, 0, 4, 0, 15, - 0, 0, 0, 18, 0, 0, 8,182, 0, 24, 0, 42, 1, 55, 0, 13, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 8,196, 0, 2, 3,144, - 0, 7, 8,240, 0, 7, 8,241, 0, 7, 4,187, 0, 7, 3,156, 0, 7, 3,114, 0, 7, 3,117, 0, 7, 8,242, 0, 7, 8,243, - 0, 24, 8,244, 1, 56, 0, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, 7, 8,143, 0, 7, 0, 86, 0, 0, 0, 18, 0, 0, 8,217, - 0, 2, 0, 87, 0, 2, 0, 67, 0, 2, 1,225, 0, 2, 5, 30, 1, 57, 0, 8, 0, 24, 0, 42, 0, 7, 2,235, 0, 7, 8,245, - 0, 7, 8,246, 0, 7, 0, 35, 0, 2, 0, 87, 0, 2, 2,198, 0, 7, 0, 67, 1, 58, 0, 12, 0, 2, 0, 15, 0, 2, 1, 68, - 0, 2, 0, 17, 0, 2, 2,238, 0, 2, 2,212, 0, 2, 8,247, 0, 4, 0, 35, 0, 7, 8,248, 0, 7, 8,249, 0, 7, 8,250, - 0, 7, 8,251, 0, 0, 8,252, 1, 59, 0, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 8,143, 0, 4, 0, 86, 0, 0, 0, 18, - 0, 2, 4,187, 0, 2, 0, 61, 0, 2, 8,253, 0, 2, 8,254, 1, 60, 0, 7, 0, 4, 2,186, 0, 4, 8,255, 0, 4, 9, 0, - 0, 4, 9, 1, 0, 7, 9, 2, 0, 7, 9, 3, 0, 0, 8,188, 1, 61, 0, 7, 0, 0, 9, 4, 0, 24, 9, 5, 0, 0, 8,194, - 0, 2, 9, 6, 0, 2, 0, 87, 0, 4, 0, 67, 0, 0, 8,195, 1, 62, 0, 6, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 8,143, - 0, 4, 0, 86, 0, 0, 9, 7, 0, 0, 9, 8, 1, 63, 0, 1, 0, 4, 0, 17, 1, 64, 0, 6, 0, 0, 0, 90, 0, 2, 0, 15, - 0, 2, 0, 17, 0, 4, 9, 9, 0, 7, 9, 10, 0, 34, 6,151, 1, 65, 0, 4, 0, 0, 2,155, 0, 2, 0, 17, 0, 4, 0, 15, - 0, 24, 0, 42, 1, 66, 0, 2, 0, 4, 0, 15, 0, 4, 6, 70, 1, 67, 0, 6, 0, 0, 8,191, 0, 0, 8,192, 0, 4, 0, 15, - 0, 7, 2, 25, 0, 24, 3, 48, 0, 24, 9, 11, 1, 47, 0, 10, 1, 47, 0, 0, 1, 47, 0, 1, 1, 47, 8,210, 0, 2, 0, 15, - 0, 2, 0, 17, 0, 2, 8,196, 0, 2, 9, 12, 0, 0, 0, 18, 0, 9, 0, 2, 0, 24, 0, 42, 0,242, 0, 16, 0, 19, 0, 29, - 0, 0, 0, 32, 0, 35, 0,144, 0, 9, 0,219, 0, 35, 9, 13, 0, 28, 0, 77, 0, 7, 4, 4, 0, 7, 9, 14, 0, 7, 8,232, - 0, 7, 8,223, 0, 7, 8,224, 0, 7, 9, 15, 0, 4, 0, 88, 0, 4, 0, 35, 0, 9, 9, 16, 0, 9, 9, 17, 1, 68, 0, 6, - 1, 68, 0, 0, 1, 68, 0, 1, 0, 24, 0, 42, 0, 9, 9, 18, 0, 2, 0,243, 0, 0, 2,183, 0, 58, 0, 4, 0, 19, 0, 29, - 0, 12, 9, 19, 0, 4, 0,125, 0, 7, 9, 20, 1, 69, 0, 28, 1, 69, 0, 0, 1, 69, 0, 1, 0, 18, 9, 21, 1, 69, 0, 36, - 0, 12, 9, 22, 0, 0, 0, 18, 0, 7, 9, 23, 0, 7, 9, 24, 0, 7, 9, 25, 0, 7, 9, 26, 0, 4, 0, 17, 0, 7, 9, 27, - 0, 7, 9, 28, 0, 7, 9, 29, 0, 7, 9, 30, 0, 7, 1, 75, 0, 7, 2, 25, 0, 7, 9, 31, 0, 7, 2,184, 0, 7, 9, 32, - 0, 7, 9, 33, 0, 7, 9, 34, 0, 7, 9, 35, 0, 7, 9, 36, 0, 7, 0,166, 0, 4, 0,125, 0, 2, 5,149, 0, 2, 7, 2, - 1, 70, 0, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 9, 37, 0, 12, 9, 38, 0, 12, 9, 39, 1, 69, 9, 40, 0, 9, 9, 41, - 0, 9, 9, 42, 0, 4, 0, 17, 0, 4, 6, 44, 0, 2, 2,242, 0, 2, 6,100, 0, 4, 9, 43, 0, 4, 0,125, 0, 4, 9, 44, - 0, 2, 9, 45, 0, 2, 9, 46, 0, 2, 9, 47, 0, 2, 9, 48, 0, 4, 9, 49, 0, 4, 9, 50, 0, 4, 9, 51, 0, 4, 9, 52, - 0, 4, 9, 53, 0, 4, 9, 54, 1, 71, 0, 2, 0, 7, 2,143, 0, 4, 0, 17, 0,159, 0, 5, 1, 71, 9, 55, 0, 4, 2,184, - 0, 4, 9, 56, 0, 4, 9, 57, 0, 4, 0, 17, 0,158, 0, 16, 0, 4, 9, 58, 0, 4, 9, 59, 0, 4, 9, 60, 0, 4, 9, 61, - 0, 2, 9, 62, 0, 2, 9, 63, 0, 2, 9, 64, 0, 2, 0,243, 0, 2, 9, 65, 0, 2, 9, 66, 0, 2, 9, 67, 0, 2, 9, 68, - 0, 4, 9, 69, 0, 4, 9, 70, 0, 4, 9, 71, 0, 4, 9, 72, 1, 72, 0, 41, 1, 72, 0, 0, 1, 72, 0, 1, 0, 18, 9, 21, - 0, 12, 3,170, 0, 0, 0, 18, 0, 2, 0, 17, 0, 2, 9, 73, 0, 2, 9, 74, 0, 2, 9, 75, 0, 2, 3,129, 0, 2, 9, 76, - 0, 4, 2, 65, 0, 4, 9, 51, 0, 4, 9, 52, 1, 69, 9, 77, 1, 72, 0, 36, 1, 72, 9, 78, 0, 12, 9, 79, 0,159, 3,106, - 0, 24, 9, 80, 1, 72, 9, 81, 0, 7, 1, 63, 0, 7, 0,166, 0, 7, 9, 82, 0, 7, 2, 4, 0, 7, 3,119, 0, 7, 3,121, - 0, 2, 3,152, 0, 2, 0, 35, 0, 7, 9, 83, 0, 7, 9, 84, 0, 7, 3,124, 0, 7, 9, 85, 0, 7, 9, 86, 0, 7, 9, 87, - 0, 7, 9, 88, 0, 7, 9, 89, 0, 7, 9, 90, 0, 7, 9, 91, 0, 7, 9, 92, 0, 7, 2, 58, 0,156, 0, 16, 0, 12, 9, 93, - 0, 68, 9, 94, 0, 2, 0, 17, 0, 2, 0, 35, 0, 4, 9, 95, 0, 4, 0, 87, 0, 7, 2, 94, 0, 7, 9, 96, 0, 7, 9, 97, - 0, 12, 9, 98, 0, 4, 9, 99, 0, 4, 9,100, 0, 9, 9,101, 0, 9, 9,102, 0,158, 3,105, 0, 0, 9,103, 1, 73, 0, 1, - 0, 4, 9,100, 1, 74, 0, 12, 0, 4, 9,100, 0, 7, 8,208, 0, 2, 9,104, 0, 2, 9,105, 0, 7, 9,106, 0, 7, 9,107, - 0, 2, 9,108, 0, 2, 0, 17, 0, 7, 9,109, 0, 7, 9,110, 0, 7, 9,111, 0, 7, 9,112, 1, 75, 0, 7, 1, 75, 0, 0, - 1, 75, 0, 1, 0, 12, 9,113, 0, 4, 0, 17, 0, 4, 9,114, 0, 0, 3,250, 0,250, 9,115, 0,155, 0, 7, 0, 19, 0, 29, - 0, 12, 9,116, 0, 12, 9, 93, 0, 12, 9,117, 0, 12, 0, 98, 0, 4, 0, 17, 0, 4, 9,118, 0,214, 0, 6, 0, 19, 9,119, - 0, 12, 9, 93, 0, 58, 9,120, 0, 0, 9,121, 0, 4, 9,122, 0, 4, 0, 17, 1, 76, 0, 13, 0,210, 0, 0, 0,210, 0, 1, - 0, 12, 6, 35, 0, 4, 6, 36, 0, 7, 6, 37, 0, 2, 6, 38, 0,211, 6, 89, 0,155, 3,101, 0,214, 9,123, 0, 0, 1, 68, - 0, 0, 6, 92, 0, 2, 0, 17, 0, 7, 9,124, 1, 77, 0, 8, 1, 77, 0, 0, 1, 77, 0, 1, 1, 75, 9,125, 0, 28, 0, 77, - 0, 12, 3,107, 0, 4, 0, 17, 0, 0, 0, 18, 0, 4, 7,247, 1, 78, 0, 5, 1, 78, 0, 0, 1, 78, 0, 1, 0, 28, 0, 77, - 0, 2, 0, 17, 0, 0, 9,126, 1, 79, 0, 14, 1, 79, 0, 0, 1, 79, 0, 1, 0, 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, - 0, 0, 9,127, 0, 0, 9,128, 0, 0, 9,126, 0, 7, 9,129, 0, 7, 9,130, 0, 4, 0, 35, 0, 28, 0, 77, 0, 7, 9,131, - 0, 7, 9,132, 1, 80, 0, 9, 1, 80, 0, 0, 1, 80, 0, 1, 0, 24, 9,133, 0, 0, 2,245, 0, 7, 9,134, 0, 2, 9,135, - 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 9,136, 1, 81, 0, 7, 0, 34, 6,151, 0, 18, 9, 21, 0, 4, 0, 17, 0, 4, 9,137, - 0, 12, 9,138, 0, 24, 9,133, 0, 0, 2,245, 1, 82, 0, 15, 0, 24, 9,133, 0, 2, 9,139, 0, 2, 0, 17, 0, 2, 9,140, - 0, 2, 9,141, 0, 0, 2,245, 0, 24, 9,142, 0, 0, 9,143, 0, 7, 9,144, 0, 7, 2, 25, 0, 7, 9,145, 0, 7, 9,146, - 0, 2, 0, 15, 0, 2, 1, 68, 0, 7, 1, 75, 1, 83, 0, 6, 0, 24, 9,133, 0, 7, 9, 55, 0, 2, 9,147, 0, 2, 9,148, - 0, 2, 0, 17, 0, 2, 9,149, 1, 84, 0, 6, 0, 24, 9,133, 0, 4, 9,150, 0, 4, 9,151, 0, 4, 0, 88, 0, 4, 0, 35, - 0, 0, 2,245, 1, 85, 0, 4, 0, 24, 9,133, 0, 4, 0, 17, 0, 4, 9,150, 0, 0, 2,245, 1, 86, 0, 4, 0, 24, 9,133, - 0, 4, 0, 17, 0, 4, 9,150, 0, 0, 2,245, 1, 87, 0, 4, 0, 24, 9,133, 0, 4, 0, 17, 0, 4, 9,150, 0, 0, 2,245, - 1, 88, 0, 2, 0, 4, 0, 17, 0, 7, 4, 4, 1, 89, 0, 2, 0, 24, 9,133, 0, 0, 2,245, 1, 90, 0, 10, 0, 24, 9,133, - 0, 4, 9,152, 0, 7, 0,119, 0, 4, 0, 17, 0, 2, 6,149, 0, 2, 9,153, 0, 2, 0, 87, 0, 2, 0, 67, 0, 7, 9,154, - 0, 0, 2,245, 1, 91, 0, 10, 0, 24, 9,133, 0, 2, 0, 15, 0, 2, 4, 54, 0, 4, 0, 85, 0, 4, 0, 86, 0, 7, 8,245, - 0, 7, 8,246, 0, 4, 0, 35, 0,155, 8,216, 0, 0, 2,245, 1, 92, 0, 4, 0, 24, 9,133, 0, 4, 3,130, 0, 4, 9,155, - 0, 0, 2,245, 1, 93, 0, 4, 0, 24, 9,133, 0, 4, 3,130, 0, 4, 0, 35, 0, 0, 2,245, 1, 94, 0, 6, 0, 24, 9,133, - 0, 7, 0,119, 0, 7, 3, 60, 0, 4, 9,156, 0, 2, 3,130, 0, 2, 3,131, 1, 95, 0, 6, 0, 24, 9,133, 0, 4, 9,157, - 0, 4, 9,158, 0, 7, 9,159, 0, 7, 9,160, 0, 0, 2,245, 1, 96, 0, 16, 0, 24, 9,133, 0, 24, 9, 78, 0, 4, 0, 15, - 0, 7, 9,161, 0, 7, 9,162, 0, 7, 9,163, 0, 7, 9,164, 0, 7, 9,165, 0, 7, 9,166, 0, 7, 9,167, 0, 7, 9,168, - 0, 7, 9,169, 0, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, 1, 97, 0, 3, 0, 24, 9,133, 0, 4, 0, 17, - 0, 4, 2, 17, 1, 98, 0, 5, 0, 24, 9,133, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 9,170, 0, 0, 2,245, 1, 99, 0, 10, - 0, 24, 9,133, 0, 0, 2,245, 0, 2, 9,171, 0, 2, 9,172, 0, 0, 9,173, 0, 0, 9,174, 0, 7, 9,175, 0, 7, 9,176, - 0, 7, 9,177, 0, 7, 9,178, 1,100, 0, 5, 0, 24, 9,133, 0, 0, 2,245, 0, 7, 2,192, 0, 2, 9,179, 0, 2, 0, 17, - 1,101, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 9,180, 0, 7, 9,181, 0, 2, 0, 17, - 0, 2, 2, 17, 1,102, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 9,180, 0, 7, 9,181, - 0, 2, 0, 17, 0, 2, 2, 17, 1,103, 0, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 9,180, - 0, 7, 9,181, 0, 2, 0, 17, 0, 2, 2, 17, 1,104, 0, 7, 0, 24, 9,133, 0, 0, 2,245, 0, 7, 1, 75, 0, 7, 1, 84, - 0, 2, 0, 17, 0, 2, 1, 68, 0, 4, 0, 35, 1,105, 0, 5, 0, 24, 3, 48, 0, 7, 1, 75, 0, 2, 3, 52, 0, 0, 3, 54, - 0, 0, 9,182, 1,106, 0, 10, 1,106, 0, 0, 1,106, 0, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 9,183, 0, 7, 1, 18, - 0, 7, 1, 19, 0, 2, 9,113, 0, 2, 9,184, 0, 24, 0, 42, 1,107, 0, 22, 1,107, 0, 0, 1,107, 0, 1, 0, 2, 0, 17, - 0, 2, 1, 68, 0, 2, 9,185, 0, 2, 9,186, 0, 28, 0, 77, 0,155, 8,216, 0, 24, 0,158, 0, 7, 0, 85, 0, 7, 0, 86, - 0, 7, 9,187, 0, 7, 9,188, 0, 7, 9,189, 0, 7, 9,190, 0, 7, 2,231, 0, 7, 9,191, 0, 7, 8,218, 0, 7, 9,192, - 0, 0, 9,193, 0, 0, 9,194, 0, 12, 3,110, 1,108, 0, 8, 0, 7, 2, 32, 0, 7, 8,245, 0, 7, 8,246, 0, 9, 0, 2, - 0, 2, 9,195, 0, 2, 9,196, 0, 2, 9,197, 0, 2, 9,198, 1,109, 0, 19, 1,109, 0, 0, 1,109, 0, 1, 1,109, 9,199, - 0, 0, 0, 18, 1,108, 9,200, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 9,201, 0, 2, 9,202, 1,108, 9,203, 0, 2, 9,204, - 0, 2, 0, 87, 0, 7, 9,205, 0, 7, 9,206, 0, 4, 9,207, 1,109, 9,208, 0, 4, 9,209, 0, 4, 0, 67, 1,110, 9,210, - 1,111, 0, 4, 0, 0, 9,211, 0, 2, 9,212, 0, 2, 9,213, 0, 4, 0, 35, 1,112, 0, 34, 1,112, 0, 0, 1,112, 0, 1, - 1,112, 9,214, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 8, 68, 0, 2, 8, 96, 0, 2, 9,215, 0, 2, 6,154, - 0, 2, 9,204, 0, 2, 8,170, 0, 12, 8,211, 0, 12, 9,216, 0, 19, 6,188, 0, 9, 9,217, 0, 7, 9,205, 0, 7, 9,206, - 0, 7, 2, 67, 0, 7, 9,218, 0, 0, 9,219, 0, 2, 9,220, 0, 2, 9,221, 0, 7, 9,222, 0, 7, 9,223, 0, 2, 9,224, - 0, 2, 9,225, 0, 9, 9,226, 0, 16, 9,227, 0, 16, 9,228, 0, 16, 9,229, 1,111, 0,145, 1,113, 9,230, 1,114, 9,231, - 1,110, 0, 8, 1,110, 0, 0, 1,110, 0, 1, 1,112, 9,232, 1,112, 9,233, 1,109, 9,234, 1,109, 9,235, 0, 4, 0, 17, - 0, 4, 0, 35, 0, 52, 0, 23, 0, 19, 0, 29, 0, 31, 0, 72, 0,157, 3,104, 0, 12, 9,236, 0, 12, 9,237, 1,108, 9,238, - 0, 12, 9,239, 0, 4, 0, 15, 0, 4, 9,240, 0, 4, 9,241, 0, 4, 9,242, 0, 4, 0, 17, 0, 4, 0, 35, 0, 12, 9,243, - 0, 12, 8,211, 0, 12, 9,216, 0, 4, 9,244, 0, 9, 9,245, 0, 9, 9,246, 0, 4, 9,247, 0, 9, 9,248, 0, 9, 9,249, - 0, 9, 9,250, 1,115, 0, 6, 0, 4, 0,118, 0, 4, 0,120, 0, 4, 8,170, 0, 0, 9,251, 0, 0, 9,252, 0, 2, 0, 35, - 1,116, 0, 16, 0, 2, 8, 14, 0, 2, 8, 15, 0, 2, 9,253, 0, 2, 9,254, 0, 2, 9,255, 0, 2, 0, 65, 0, 2, 6,189, - 0, 2, 10, 0, 0, 7, 2,230, 0, 7, 10, 1, 0, 7, 10, 2, 0, 2, 1, 90, 0, 0, 10, 3, 0, 0, 10, 4, 0, 4, 10, 5, - 0, 4, 10, 6, 1,117, 0, 9, 0, 7, 10, 7, 0, 7, 10, 8, 0, 7, 9, 15, 0, 7, 3, 71, 0, 7, 10, 9, 0, 7, 6,106, - 0, 2, 3, 69, 0, 0, 10, 10, 0, 0, 0, 35, 1,118, 0, 4, 0, 7, 10, 11, 0, 7, 10, 12, 0, 2, 3, 69, 0, 2, 0, 35, - 1,119, 0, 3, 0, 7, 10, 13, 0, 7, 8, 83, 0, 7, 0, 13, 1,120, 0, 7, 0, 0, 1,249, 0, 2, 5, 19, 0, 2, 5, 20, - 0, 2, 5, 21, 0, 2, 4,209, 0, 4, 0,120, 0, 4, 4, 52, 1,121, 0, 9, 0, 7, 10, 14, 0, 7, 10, 15, 0, 7, 10, 16, - 0, 7, 2, 78, 0, 7, 10, 17, 0, 7, 10, 18, 0, 7, 10, 19, 0, 2, 10, 20, 0, 2, 10, 21, 1,122, 0, 8, 0, 2, 10, 22, - 0, 2, 10, 23, 0, 2, 10, 24, 0, 2, 10, 25, 0, 7, 10, 26, 0, 7, 10, 27, 0, 7, 10, 28, 0, 7, 10, 29, 1,123, 0, 2, - 0, 7, 0, 5, 0, 7, 0, 6, 1,124, 0, 2, 0, 0, 0,160, 0, 0, 10, 30, 1,125, 0, 1, 0, 0, 0, 18, 1,126, 0, 10, - 0, 0, 10, 31, 0, 0, 10, 32, 0, 0, 6, 98, 0, 0, 10, 33, 0, 2, 9,253, 0, 2, 10, 34, 0, 7, 10, 35, 0, 7, 10, 36, - 0, 7, 10, 37, 0, 7, 9,191, 1,127, 0, 2, 0, 9, 10, 38, 0, 9, 10, 39, 1,128, 0, 11, 0, 0, 5, 21, 0, 0, 0, 15, - 0, 0, 3, 69, 0, 0, 3, 71, 0, 0, 10, 40, 0, 0, 0,104, 0, 0, 2,155, 0, 7, 10, 41, 0, 7, 10, 42, 0, 7, 10, 43, - 0, 7, 10, 44, 1,129, 0, 8, 0, 7, 8,177, 0, 7, 0,119, 0, 7, 10, 4, 0, 7, 2,148, 0, 7, 10, 45, 0, 7, 0,232, - 0, 7, 10, 46, 0, 4, 0, 15, 1,130, 0, 4, 0, 2, 10, 47, 0, 2, 10, 48, 0, 2, 10, 49, 0, 2, 0, 35, 1,131, 0, 8, - 0, 7, 10, 50, 0, 7, 2,192, 0, 7, 10, 51, 0, 7, 8, 64, 0, 7, 8, 65, 0, 7, 8, 66, 0, 7, 10, 52, 0, 7, 10, 53, - 1,132, 0, 6, 0, 2, 10, 54, 0, 2, 10, 55, 0, 7, 10, 56, 0, 7, 10, 57, 0, 7, 10, 58, 0, 7, 10, 59, 1,133, 0, 1, - 0, 0, 0, 18, 1,134, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, 0, 2, 10, 60, 1,135, 0, 10, 0, 2, 3,238, - 0, 2, 0, 17, 0, 7, 4,137, 0, 7, 10, 61, 0, 7, 10, 62, 0, 7, 10, 63, 0, 7, 10, 64, 1,134, 10, 65, 1,134, 10, 66, - 1,134, 10, 67, 0, 55, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 10, 68, 0, 4, 10, 69, 0, 16, 10, 70, 0, 16, 10, 71, - 1,135, 10, 72, 0, 7, 10, 73, 0, 7, 10, 74, 0, 7, 10, 75, 0, 7, 10, 76, 0,227, 0, 10, 0, 4, 9,113, 0, 4, 10, 77, - 0, 7, 10, 78, 0, 7, 10, 79, 0, 7, 10, 80, 0, 7, 10, 81, 0, 7, 0, 8, 0, 7, 0, 10, 0, 4, 1, 68, 0, 4, 2,235, - 0,226, 0, 18, 0, 4, 0,123, 0, 4, 10, 82, 0, 4, 10, 83, 0, 7, 10, 84, 0, 4, 10, 85, 0, 7, 10, 86, 0, 7, 10, 87, - 0, 4, 10, 88, 0, 7, 10, 89, 0, 4, 10, 90, 0, 7, 10, 91, 0,227, 10, 92, 0, 7, 10, 93, 0, 7, 10, 94, 0, 7, 10, 95, - 0, 7, 10, 96, 0, 4, 10, 97, 0, 4, 0, 35, 1,136, 0, 4, 0, 39, 2,222, 0, 7, 10, 98, 0, 7, 1,157, 0, 7, 0, 35, - 0,189, 0, 34, 0, 19, 0, 29, 1,136, 10, 99, 0, 55, 10, 65, 0, 43, 10,100, 0, 49, 10,101, 0, 22, 0,145, 0, 0, 10,102, - 0, 7, 10,103, 0, 2, 6, 1, 0, 2, 10,104, 0, 4, 0,104, 0, 4, 0, 17, 0, 7, 10,105, 0, 4, 2, 75, 0, 4, 10,106, - 0, 7, 10,107, 0, 7, 10,108, 0, 7, 10,109, 0, 7, 1,157, 0, 4, 10,110, 0, 7, 10,111, 0, 0, 10,112, 0, 0, 10,113, - 0, 0, 10,114, 0, 0, 10,115, 0, 7, 10,116, 0, 7, 10,117, 0, 7, 10,118, 0, 7, 2,235, 0, 7, 10,119, 0, 4, 10,120, - 0, 7, 10,121, 0, 7, 10,122, 0, 7, 10,123, 1,137, 0, 10, 0, 4, 0, 15, 0, 4, 0,119, 0, 4, 0, 17, 0, 4, 3,191, - 0, 4, 10,124, 0, 4, 10,125, 0, 4, 10,126, 0, 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 1,138, 0, 1, 0, 0, 8, 56, - 0, 84, 0, 7, 1,137, 10,127, 0, 4, 10,128, 0, 4, 10,129, 0, 4, 10,130, 0, 4, 0, 35, 0, 9, 10,131, 1,138, 10,132, - 1,139, 0, 5, 0, 7, 2,143, 0, 7, 2,212, 0, 7, 2, 25, 0, 2, 2,124, 0, 2, 0, 35, 1,140, 0, 5, 0, 7, 2,143, - 0, 7, 10,133, 0, 7, 10,134, 0, 7, 10,135, 0, 7, 2,212, 1,141, 0, 5, 0, 24, 10,136, 1,142, 0, 20, 0, 7, 5,223, - 0, 7, 10,137, 0, 7, 0, 54, 1,143, 0, 3, 0, 7, 10,138, 0, 4, 10,139, 0, 4, 10,140, 1,144, 0, 7, 0, 4, 10,141, - 0, 4, 10,142, 0, 4, 10,143, 0, 7, 10,144, 0, 7, 10,145, 0, 7, 10,146, 0, 7, 0, 54, 1,145, 0, 8, 1,145, 0, 0, - 1,145, 0, 1, 0, 24, 0, 42, 0, 4, 0,251, 0, 2, 0, 17, 0, 2, 1, 68, 0, 7, 2,212, 0, 7, 8,185, 1,146, 0, 6, - 1,146, 0, 0, 1,146, 0, 1, 0, 24, 0, 42, 0, 2, 2,197, 0, 2, 0, 17, 0, 2, 10,147, 1,147, 0, 17, 1,140, 3,185, - 1,140, 10,148, 1,139, 10,149, 1,140, 8,168, 1,141, 10,150, 0, 4, 0, 79, 0, 7, 2,212, 0, 7, 2,241, 0, 7, 10,151, - 0, 4, 10,141, 0, 4, 10,152, 0, 7, 10,145, 0, 7, 10,146, 0, 7, 0,104, 0, 4, 10,153, 0, 2, 0, 17, 0, 2, 10,154, - 1,148, 0, 15, 0, 7, 0,247, 0, 7, 10,155, 0, 7, 10,138, 0, 7, 10,156, 0, 7, 10,157, 0, 7, 10,158, 0, 7, 10,159, - 0, 7, 10,160, 0, 7, 10,161, 0, 7, 10,162, 0, 7, 10,163, 0, 7, 10,164, 0, 7, 10,165, 0, 4, 0, 17, 0, 4, 10,166, - 1,149, 0,121, 0, 19, 0, 29, 0, 31, 0, 72, 1,150, 10,167, 1,148, 10,168, 0,166, 4, 74, 0, 4, 0, 17, 0, 4, 0, 54, - 0, 2, 0, 15, 0, 2, 9,171, 0, 2, 10,169, 0, 2, 1,103, 0, 2, 10,170, 0, 2, 3,152, 0, 2, 10,171, 0, 2, 10,172, - 0, 2, 10,173, 0, 2, 10,174, 0, 2, 10,175, 0, 2, 10,176, 0, 2, 10,177, 0, 2, 10,178, 0, 2, 10,179, 0, 2, 5,120, - 0, 2, 10,180, 0, 2, 10,181, 0, 2, 10,182, 0, 2, 10,183, 0, 2, 10,184, 0, 2, 2, 14, 0, 2, 8,161, 0, 2, 8,136, - 0, 2, 10,185, 0, 2, 10,186, 0, 2, 3,201, 0, 2, 3,202, 0, 2, 10,187, 0, 2, 10,188, 0, 2, 10,189, 0, 2, 10,190, - 0, 7, 10,191, 0, 7, 10,192, 0, 7, 10,193, 0, 7, 10,194, 0, 2, 5, 70, 0, 2, 10,195, 0, 7, 10,196, 0, 7, 10,197, - 0, 7, 10,198, 0, 7, 8,143, 0, 7, 0, 86, 0, 7, 2,241, 0, 7, 8,149, 0, 7, 10,199, 0, 7, 10,200, 0, 7, 10,201, - 0, 7, 10,202, 0, 4, 8,144, 0, 4, 8,142, 0, 4, 10,203, 0, 4, 10,204, 0, 7, 8,145, 0, 7, 8,146, 0, 7, 8,147, - 0, 7, 10,205, 0, 7, 10,206, 0, 7, 10,207, 0, 7, 10,208, 0, 7, 10,209, 0, 7, 10,210, 0, 7, 10,211, 0, 7, 10,212, - 0, 7, 10,213, 0, 7, 3,143, 0, 7, 0,104, 0, 7, 10,214, 0, 7, 10,215, 0, 7, 10,216, 0, 7, 10,217, 0, 7, 0,205, - 0, 7, 10,218, 0, 4, 10,219, 0, 4, 10,220, 0, 7, 10,221, 0, 7, 10,222, 0, 7, 10,223, 0, 7, 10,224, 0, 7, 10,225, - 0, 7, 0,204, 0, 7, 10,226, 0, 7, 3,228, 0, 7, 3,226, 0, 7, 3,227, 0, 7, 10,227, 0, 7, 10,228, 0, 7, 10,229, - 0, 7, 10,230, 0, 7, 10,231, 0, 7, 10,232, 0, 7, 10,233, 0, 7, 10,234, 0, 7, 10,235, 0, 7, 10,236, 0, 7, 10,237, - 0, 7, 10,238, 0, 7, 10,239, 0, 7, 10,240, 0, 7, 10,241, 0, 7, 10,242, 0, 7, 10,243, 0, 7, 10,244, 0, 4, 10,245, - 0, 4, 10,246, 0, 43, 1,121, 0, 58, 3,175, 0, 12, 10,247, 0, 58, 10,248, 0, 24, 10,249, 0, 24, 10,250, 0, 28, 0, 77, - 0,161, 1, 60, 0,161, 10,251, 0,140, 0, 50, 0,140, 0, 0, 0,140, 0, 1, 1,149, 10,252, 1,147, 10,253, 1,144, 9, 78, - 0,169, 4, 0, 0, 9, 4, 1, 1,151, 10,254, 1,151, 10,255, 0, 12, 11, 0, 0, 12, 11, 1, 0,125, 11, 2, 0,133, 11, 3, - 0,133, 11, 4, 0, 24, 11, 5, 0, 24, 11, 6, 0, 24, 0, 36, 0, 12, 9,138, 0, 0, 0, 18, 0, 7, 0,236, 0, 7, 3, 14, - 0, 7, 11, 7, 0, 7, 11, 8, 0, 4, 2,186, 0, 4, 11, 9, 0, 4, 0, 17, 0, 4, 8,144, 0, 4, 11, 10, 0, 4, 11, 11, - 0, 4, 11, 12, 0, 4, 11, 13, 0, 2, 0,243, 0, 2, 11, 14, 0, 2, 11, 15, 0, 2, 11, 16, 0, 0, 11, 17, 0, 2, 11, 18, - 0, 2, 11, 19, 0, 2, 11, 20, 0, 9, 11, 21, 0,129, 4, 73, 0, 12, 2,255, 0, 12, 11, 22, 1,143, 11, 23, 0, 4, 11, 24, - 0, 4, 11, 25, 1,152, 11, 26, 0,131, 3, 11, 1,153, 11, 27, 0, 7, 11, 28, 0,127, 0, 37, 1,154, 9, 16, 0, 7, 4, 43, - 0, 7, 11, 29, 0, 7, 11, 30, 0, 7, 5,223, 0, 7, 3,153, 0, 7, 3,143, 0, 7, 11, 31, 0, 7, 2, 77, 0, 7, 11, 32, - 0, 7, 11, 33, 0, 7, 11, 34, 0, 7, 11, 35, 0, 7, 11, 36, 0, 7, 11, 37, 0, 7, 4, 44, 0, 7, 11, 38, 0, 7, 11, 39, - 0, 7, 11, 40, 0, 7, 4, 45, 0, 7, 4, 41, 0, 7, 4, 42, 0, 7, 11, 41, 0, 7, 11, 42, 0, 4, 11, 43, 0, 4, 0, 88, - 0, 4, 11, 44, 0, 4, 11, 45, 0, 2, 11, 46, 0, 2, 11, 47, 0, 2, 11, 48, 0, 2, 11, 49, 0, 2, 11, 50, 0, 2, 11, 51, - 0, 2, 11, 52, 0, 2, 4,187, 0,166, 4, 74, 0,128, 0, 9, 1,154, 11, 53, 0, 7, 11, 54, 0, 7, 11, 55, 0, 7, 1,229, - 0, 7, 11, 56, 0, 4, 0, 88, 0, 2, 11, 57, 0, 2, 11, 58, 0, 58, 1,228, 1,155, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, - 0, 7, 2, 3, 0, 7, 11, 59, 1,156, 0, 6, 1,156, 0, 0, 1,156, 0, 1, 1,155, 9, 55, 0, 4, 0,249, 0, 2, 11, 60, - 0, 2, 0, 17, 1,157, 0, 5, 1,157, 0, 0, 1,157, 0, 1, 0, 12, 11, 61, 0, 4, 11, 62, 0, 4, 0, 17, 1,158, 0, 9, - 1,158, 0, 0, 1,158, 0, 1, 0, 12, 0,118, 1,157, 11, 63, 0, 4, 0, 17, 0, 2, 11, 60, 0, 2, 11, 64, 0, 7, 0, 89, - 0, 0, 11, 65, 0,157, 0, 6, 0, 19, 0, 29, 0, 12, 5, 38, 0, 4, 0, 17, 0, 2, 11, 66, 0, 2, 11, 67, 0, 9, 11, 68, - 1,159, 0, 6, 0, 12, 11, 69, 0, 4, 11, 70, 0, 4, 11, 71, 0, 4, 0, 17, 0, 4, 0, 35, 0,208, 11, 72, 1,160, 0, 17, - 0, 19, 0, 29, 1,161, 11, 73, 1,161, 11, 74, 0, 12, 11, 75, 0, 4, 11, 76, 0, 2, 11, 77, 0, 2, 11, 78, 0, 12, 11, 79, - 0, 12, 11, 80, 1,159, 11, 81, 0, 12, 11, 82, 0, 12, 11, 83, 0, 12, 11, 84, 0, 12, 11, 85, 1,162, 11, 86, 0, 12, 11, 87, - 0,208, 11, 88, 1,161, 0, 32, 1,161, 0, 0, 1,161, 0, 1, 0, 9, 11, 89, 0, 4, 7,248, 0, 2, 11, 90, 0, 2, 0, 35, - 0,255, 11, 91, 0,255, 11, 92, 0, 0, 11, 93, 0, 2, 11, 94, 0, 2, 11, 95, 0, 2, 8, 14, 0, 2, 8, 15, 0, 2, 11, 96, - 0, 2, 11, 97, 0, 2, 3,191, 0, 2, 6,220, 0, 2, 11, 98, 0, 2, 11, 99, 0, 2, 11,100, 0, 2, 0, 67, 1,163, 11,101, - 1,164, 11,102, 1,165, 11,103, 0, 4, 11,104, 0, 4, 11,105, 0, 9, 11,106, 0, 12, 11, 80, 0, 12, 8, 34, 0, 12, 11,107, - 0, 12, 11,108, 0, 12, 11,109, 1,166, 0, 17, 1,166, 0, 0, 1,166, 0, 1, 0, 0, 11,110, 0, 18, 0, 28, 0, 2, 11,111, - 0, 2, 0, 15, 0, 2, 0, 13, 0, 2, 11,112, 0, 2, 11,113, 0, 2, 11,114, 0, 2, 11,115, 0, 2, 11,116, 0, 2, 0, 17, - 0, 2, 11,117, 0, 2, 0, 29, 0, 2, 0, 35, 1,167, 11,118, 1,168, 0, 10, 1,168, 0, 0, 1,168, 0, 1, 0, 12, 11,119, - 0, 0, 11,110, 0, 2, 11,120, 0, 2, 11,121, 0, 2, 0, 17, 0, 2, 11,122, 0, 4, 11,123, 0, 9, 11,124, 1,162, 0, 7, - 1,162, 0, 0, 1,162, 0, 1, 0, 0, 11,110, 0, 0, 11,125, 0, 12, 7,193, 0, 4, 11,126, 0, 4, 0, 17, 0,220, 0, 14, - 0,220, 0, 0, 0,220, 0, 1, 0, 0, 11,110, 0, 18, 0, 28, 1,169, 8, 8, 0, 9, 11,127, 0, 9, 11,128, 1,167, 11,118, - 1,159, 11,129, 0, 12, 11,130, 0,220, 11,131, 1, 4, 6,127, 0, 2, 0, 17, 0, 2, 4,187, 1,170, 0, 8, 1,170, 0, 0, - 1,170, 0, 1, 0, 9, 0, 2, 0, 9, 11,132, 0, 0, 3,250, 0, 2, 0, 15, 0, 2, 0, 17, 0, 7, 11,133, 1,171, 0, 5, - 0, 7, 11,134, 0, 4, 11,135, 0, 4, 11,136, 0, 4, 1, 68, 0, 4, 0, 17, 1,172, 0, 6, 0, 7, 11,137, 0, 7, 11,138, - 0, 7, 11,139, 0, 7, 11,140, 0, 4, 0, 15, 0, 4, 0, 17, 1,173, 0, 5, 0, 7, 8,245, 0, 7, 8,246, 0, 7, 2,212, - 0, 2, 2, 28, 0, 2, 2, 29, 1,174, 0, 5, 1,173, 0, 2, 0, 4, 0, 51, 0, 7, 11,141, 0, 7, 8,245, 0, 7, 8,246, - 1,175, 0, 4, 0, 2, 11,142, 0, 2, 11,143, 0, 2, 11,144, 0, 2, 11,145, 1,176, 0, 2, 0, 34, 6,182, 0, 18, 9, 21, - 1,177, 0, 3, 0, 16, 11,146, 0, 4, 0, 17, 0, 4, 0, 35, 1,178, 0, 6, 0, 7, 0,104, 0, 7, 2,214, 0, 7, 11,147, - 0, 7, 0, 35, 0, 2, 0,242, 0, 2, 11,148, 1,179, 0, 5, 0, 7, 11,149, 0, 7, 0,119, 0, 7, 9, 56, 0, 7, 9, 57, - 0, 4, 0, 17, 1,180, 0, 6, 0, 19, 6,188, 0, 0, 11,150, 0, 0, 11,151, 0, 2, 11,152, 0, 2, 0, 17, 0, 4, 11,153, - 1,181, 0, 7, 1,181, 0, 0, 1,181, 0, 1, 0, 0, 3,250, 1,180, 11,154, 0, 2, 11,155, 0, 2, 0, 15, 0, 7, 0, 58, - 1,182, 0, 7, 0, 12, 11,156, 0, 0, 11,157, 0, 9, 11,158, 0, 7, 0, 58, 0, 7, 11,133, 0, 4, 0, 15, 0, 4, 0, 17, - 1,183, 0, 3, 0, 7, 11,159, 0, 4, 0, 17, 0, 4, 0, 35, 1,184, 0, 15, 1,184, 0, 0, 1,184, 0, 1, 1, 75, 9,125, - 1,182, 0, 59, 0, 12, 3,110, 0, 27, 0, 47, 1,183, 11,160, 0, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 1, 11, - 0, 4, 11,161, 0, 0, 11,150, 0, 4, 11,162, 0, 7, 11,163, 1,185, 0, 2, 0, 0, 11,164, 0, 0, 11,165, 1,186, 0, 4, - 1,186, 0, 0, 1,186, 0, 1, 0,155, 3, 48, 0, 12, 11,166, 1,187, 0, 24, 1,187, 0, 0, 1,187, 0, 1, 0, 12, 11,167, - 0,155, 8,216, 1,186, 11,168, 0, 12, 11,169, 0, 12, 3,110, 0, 0, 3,250, 0, 7, 11,133, 0, 7, 11,170, 0, 7, 0, 85, - 0, 7, 0, 86, 0, 7, 9,187, 0, 7, 9,188, 0, 7, 2,231, 0, 7, 9,191, 0, 7, 8,218, 0, 7, 9,192, 0, 2, 11,171, - 0, 2, 11,172, 0, 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 1,188, 0, 6, 1,188, 0, 0, 1,188, 0, 1, - 0, 12, 11,167, 0, 4, 0, 17, 0, 4, 2,147, 0, 0, 3,250, 1,189, 0, 11, 1,189, 0, 0, 1,189, 0, 1, 0, 19, 6,188, - 0, 0, 11,173, 0, 4, 11,153, 0, 2, 11,174, 0, 2, 0, 35, 0, 0, 11,150, 0, 4, 11,161, 0, 2, 0, 17, 0, 2, 11,175, - 1,190, 0, 8, 1,190, 0, 0, 1,190, 0, 1, 0, 12, 11,176, 0, 0, 3,250, 0, 0, 11,177, 0, 2, 0, 17, 0, 2, 11,175, - 0, 4, 11,178, 1,191, 0, 5, 1,191, 0, 0, 1,191, 0, 1, 0, 0, 11,150, 0, 4, 11,161, 0, 7, 2,202, 0, 31, 0, 12, - 0,155, 3,101, 0,155, 11,179, 1,186, 11,168, 0, 12, 11,180, 1,187, 11,181, 0, 12, 11,182, 0, 12, 11,183, 0, 4, 0, 17, - 0, 4, 0,243, 0, 2, 11,184, 0, 2, 11,185, 0, 7, 11,186, 1,192, 0, 2, 0, 19, 0, 29, 0, 31, 0, 72, 1,193, 0, 5, - 1,193, 0, 0, 1,193, 0, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 1,194, 0, 6, 1,193, 11,187, 0, 24, 0, 42, - 0, 4, 11,188, 0, 7, 11,189, 0, 4, 11,190, 0, 4, 9,113, 1,195, 0, 3, 1,193, 11,187, 0, 4, 11,188, 0, 7, 11,191, - 1,196, 0, 8, 1,193, 11,187, 0, 24, 0, 42, 0, 7, 1, 63, 0, 7, 11,192, 0, 7, 3, 14, 0, 7, 9, 15, 0, 4, 11,188, - 0, 4, 11,193, 1,197, 0, 5, 1,193, 11,187, 0, 7, 11,194, 0, 7, 8, 96, 0, 7, 2,237, 0, 7, 0, 54, 1,198, 0, 3, - 1,193, 11,187, 0, 7, 9, 15, 0, 7, 11,195, 1,142, 0, 4, 0, 7, 11,196, 0, 7, 10,215, 0, 2, 11,197, 0, 2, 1, 68, - 1,199, 0, 14, 1,199, 0, 0, 1,199, 0, 1, 0, 12, 11,198, 0, 12, 11,199, 0, 12, 11,200, 0, 0, 0, 18, 0, 4, 0, 29, - 0, 4, 0, 17, 0, 4, 11,201, 0, 7, 11,202, 0, 4, 11,190, 0, 4, 9,113, 0, 7, 4, 4, 0, 7, 2,239, 1,150, 0, 23, - 0, 4, 11,188, 0, 4, 11,203, 0, 7, 11,204, 0, 7, 2,235, 0, 7, 11,205, 0, 7, 8,232, 0, 7, 11,196, 0, 7, 11,206, - 0, 7, 2,214, 0, 7, 10, 84, 0, 7, 4,137, 0, 7, 11,207, 0, 7, 11,208, 0, 7, 11,209, 0, 7, 11,210, 0, 7, 11,211, - 0, 7, 11,212, 0, 7, 11,213, 0, 7, 11,214, 0, 7, 11,215, 0, 7, 11,216, 0, 7, 11,217, 0, 12, 11,218, 0,113, 0, 40, - 0,112, 11,219, 1,200, 10,168, 0, 58, 11,220, 0, 58, 10,248, 0, 58, 11,221, 1,201, 11,222, 0, 40, 0,159, 0, 40, 11,223, - 0, 40, 11,224, 0, 7, 11,225, 0, 7, 11,226, 0, 7, 11,227, 0, 7, 11,228, 0, 7, 11,229, 0, 7, 7,247, 0, 7, 11,230, - 0, 7, 1,157, 0, 7, 11,231, 0, 4, 11,232, 0, 4, 11,233, 0, 4, 11,234, 0, 4, 0, 88, 0, 4, 0, 35, 0, 4, 11,235, - 0, 2, 11,236, 0, 2, 11,237, 0, 4, 11,238, 0, 7, 2,214, 0, 4, 11,239, 0, 7, 11,240, 0, 4, 11,241, 0, 4, 11,242, - 0, 4, 11,243, 0,129, 11,244, 0, 12, 11,245, 0,166, 4, 74, 0, 4, 11,246, 0, 7, 11,247, 0, 7, 11,248, 0, 4, 0, 67, - 0,114, 0, 12, 0,112, 11,219, 0,140, 3, 34, 0, 7, 1,124, 0, 7, 7,247, 0, 7, 11,249, 0, 7, 11,250, 0, 7, 11,251, - 0, 2, 11,252, 0, 2, 11,253, 0, 2, 11,254, 0, 2, 0, 15, 0, 4, 0, 88, 0,115, 0, 13, 0,112, 11,219, 0,131, 3, 11, - 0,133, 3, 13, 0, 7, 9, 55, 0, 7, 11,255, 0, 7, 12, 0, 0, 7, 1, 65, 0, 7, 12, 1, 0, 4, 9,147, 0, 4, 3, 7, - 0, 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; + 80, 0, 0, 0,136, 29, 72, 27, 1, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 78, 65, 49,108,231, 0, 0, 56,136,192, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, + 78, 65, 77, 69, 12, 12, 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,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, 51, 50, 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, 50, 52, 93, 0,117, +115, 0,105, 99,111,110, 95,105,100, 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, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50, + 52, 48, 93, 0,116,111,116, 0,112, 97,100, 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,112, 97,100, 50, 0, 42,119,101,105, +103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 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, 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,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,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, 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, 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, 51, 50, 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, +112, 97,100, 91, 55, 93, 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,110, 97,109,101, 91, 49, 54, 48, 93, 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, 42, 99,111, 98, 97, 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, 50, 52, 48, 93, 0, 42, +100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 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,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,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,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,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, 51, 50, 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,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, + 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111, +108, 50, 0,122, 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, 99,116,105,109,101, 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,101,102,102,101, 99,116, 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,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,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, 97, 99,116, 95,102, 97, 99,101, 0,101, +100,105,116,102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,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, 42,109,114, 0, 42,112, +118, 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,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, + 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 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, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95, +109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,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,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,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, 51, 50, 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, 42,116,101,120,116,117,114,101, 0,115,116,114,101,110,103,116,104, 0, +100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,112,112,105,110,103, 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, 51, 50, 93, 0,117,118,108, 97,121, +101,114, 95,116,109,112, 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, 51, 50, 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, 51, 50, 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, 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,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, 51, 50, 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,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,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, 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,105,112,111,119,105,110, 0,115, 99, 97, +102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 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,114,111,116,109,111,100,101, 0,100,116, 0, +100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 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,102, +108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,102,108, + 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 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,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, 99,117,114,105, +110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, + 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 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, 99,111,109,112,114,101,115,115,105,111, +110, 0,110, 97,109,101, 91, 54, 52, 93, 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, 50, 52, 48, 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, 51, 50, 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, 51, 50, 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, 51, 50, 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,112, 97,100, 52, 91, 52, 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,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 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,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, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117, +114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 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, 83,117,114,102, 78,111,114,109, 97,108,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,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,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, 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,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0, +113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 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,114,101,110,100,101,114,101,114, 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, 98, 97, 99,107, 98,117,102, 91, 49, + 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 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, 49, 54, 48, 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,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,109, 97,116,109,111,100,101, 0,112, 97,100, 91, 51, 93, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,114, +116, 50, 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, 42, 99, 97,109,101,114, 97, 0, 42, 98,114,117,115,104, 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,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, + 91, 51, 93, 91, 51, 93, 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, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,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,112, 97,100, 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,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, + 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116, +115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 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, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 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,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, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 99,117,115,116,111,109,100, 97, +116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 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,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,112, 97,100, 54, 0,112, 97, +100, 53, 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, 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,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,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, + 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,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,112, 97,100,102, 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,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, 51, 50, 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,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108, +105,110,101,115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108, +101, 99,116, 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97, +103, 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,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 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,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, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101, +102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 56, 48, 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,105,109,116,121,112,101,110,114, 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, 50, 53, 54, 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,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, + 99,117,114,102,111,110,116, 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,116,105,116, +108,101, 91, 50, 52, 93, 0,109,101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0, +115,101,108,115,116, 97,116,101, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, + 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, + 0,114,101,116,118, 97,108, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0,112,114,118, 95,119, 0,112,114, +118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, + 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, + 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,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, 42, 97,114,101, 97, 0, + 42,115,111,117,110,100, 0,115,110,100,110,114, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 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,112, 97,100, 91, + 49, 93, 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,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, 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,105, 99,111,110,102,105,108,101, 91, + 56, 48, 93, 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, 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, + 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,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,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, 98,112, + 97,100, 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,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,104,112, 97,100, 91, 55, 93, 0,112, +114,101,118,105,101,119, 95, 98, 97, 99,107, 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,115,110,100, 0,116, 97, 99, +116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 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, 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, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, + 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0, +112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0, +112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,105,109, 97, +103,101, 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 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, 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,110,100, +111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 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,112, 97,100, 56, + 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, + 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,112, 97, +100, 49, 48, 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, 97,117,116,104,111,114, 91, 56, 48, 93, 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, 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,102,105,108,101, +110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 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, 49, 54, + 48, 93, 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, 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, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, + 0,115, 99,101,110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 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, 50, 53, 54, 93, 0, + 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 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, 83, 99, 97,108,101,120, 70,105,110, 0, 83, + 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, + 73,110,105, 0,114,111,116, 70,105,110, 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, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 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, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108, +117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 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, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114, +111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0, +112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42, +102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 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, 51, 50, 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,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,112, 97,100, 51, 91, 50, 93, 0,112,105,116, 99,104, 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,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, 51, 50, 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, 51, 50, 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, 42,115,117, 98,116, 97,114,103,101,116, 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,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, 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,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, 99,111,110,115,116,102,108, 97,103, + 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98, +111,110,101, 0, 42, 99,104,105,108,100, 0,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, 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, 51, 50, 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, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,102,105,108,116,101, +114,102,108, 97,103, 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, 51, 50, 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, 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,115, 99, 97,108,101, 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, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0, +115,116, 97, 99,107, 95,116,121,112,101, 0, 42,115,116, 97, 99,107, 95,112,116,114, 0,115,116, 97, 99,107, 95,105,110,100,101, +120, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, + 0,116,111, 95,105,110,100,101,120, 0, 42,108,105,110,107, 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, 42,115,116,111,114, 97, +103,101, 0,109,105,110,105,119,105,100,116,104, 0,108, 97, 98,101,108, 91, 51, 50, 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, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107, +115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0,112, 97,100, 50, 91, 50, 93, 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, 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, +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, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 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, 42,100,105, 99,116, + 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101, +115,104,111,108,100, 0,102, 97,100,101, 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,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,112,114,111,103,114,101,115,115,105,111,110, 0,104, + 97,114,100, 0, 98, 97,115,105,115, 0,100,105,115,116, 97,110, 99,101, 95,109,101,116,114,105, 99, 0, 99,111,108,111,114,105, +110,103, 0,119, 97,118,101, 0,100,105,115,116,111,114,116,105,111,110, 95, 98, 97,115,105,115, 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, 50, 52, 48, 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,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 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,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,118,101,108, 91, 51, 93, 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,114,116, 91, 50, + 93, 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, 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,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,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,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, 51, 50, 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, 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,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,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,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, 51, 50, 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,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,105,110,102,108,117,101,110, 99,101, 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,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,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, 0, 84, 89, 80, 69,215, 1, 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, +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,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, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101, +101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86, +111,108,117,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, 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, 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, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102, +111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, + 67,111,108, 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, 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,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, 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, 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, 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, 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, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116, +105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 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, + 66, 71,112,105, 99, 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, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 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, 83,111,117,110,100, + 0, 83, 99,114, 65,114,101, 97, 0, 98, 83,111,117,110,100, 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, 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,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, 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, 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, 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, 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, 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, 83,107,121, 0, 78,111,100,101, 84,101,120, 73,109, 97,103,101, 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, 66,108,101,110,100, 0, 78,111,100,101, + 84,101,120, 67,108,111,117,100,115, 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, 77, 97,114, 98,108,101, 0, 78,111,100,101, 84,101,120, 77, 97, +103,105, 99, 0, 78,111,100,101, 84,101,120, 83,116,117, 99, 99,105, 0, 78,111,100,101, 84,101,120, 68,105,115,116,111,114,116, +101,100, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 87,111,111,100, 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, 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, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, + 16, 0, 4, 0, 8, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0, 16, 5,112, 0, 36, 0, 56, 0, +112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0, 16, 6,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, +112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 40, 1, 8, 1,136, 0,224, 1, 64, 1, 88, 0, 32, 3,104, 0, 88, 1, + 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0,176, 1, 20, 0, 48, 0, + 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, + 4, 0, 0, 1, 32, 0, 16, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 80, 0,104, 0,120, 0,128, 0, 96, 0,128, 0,160, 0, + 96, 0, 88, 0,136, 0, 88, 0,112, 0, 16, 1, 56, 0,192, 0,184, 0,232, 0, 88, 0,120, 0,136, 0,224, 0,136, 0,248, 0, + 80, 0,136, 0, 0, 0,152, 0, 40, 0, 16, 2,160, 0, 0, 0,120, 0, 0, 0, 0, 0, 96, 0, 8, 0, 8, 0, 48, 1,112, 0, + 16, 2,104, 0,128, 0, 88, 0, 96, 0,200, 1,144, 0,136, 0, 80, 0,144, 0,112, 0, 16, 0, 16, 1, 48, 0, 0, 0,144, 0, +184, 0,104, 0, 48, 0, 24, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0,232, 1, 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0, 0, 4, 64, 0, 24, 0, 16, 0,104, 0, 96, 0, + 24, 0,248, 2, 48, 0, 16, 0,168, 0, 88, 0, 96, 0, 56, 0,192, 1, 32, 0, 8, 0, 24, 0, 80, 2, 0, 0, 0, 0, 88, 0, +104, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 56, 0,144, 0, 64, 0,240, 0, 40, 0,248, 0,240, 0, 96, 2,104, 0, + 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,120, 2, 64, 0, 24, 0,216, 0, 56, 1, + 72, 0,200, 2, 40, 0,136, 1,104, 0,216, 0,160, 0,136, 1, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2,120, 1, 16, 0, + 88, 30, 80, 0, 56, 0,112, 13,216, 0, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 32, 1, 88, 0, 16, 0, + 8, 0, 44, 0, 0, 1,240, 0,200, 1, 32, 1, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, + 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0, +104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 32, 0, 72, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, + 56, 0, 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0, 40, 1,200, 0, 16, 0,248, 1, 4, 0, 40, 0, +120, 0, 0, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 48, 0, 8, 0, 40, 0, 72, 0, + 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 56, 0, 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0, +168, 0, 40, 0,152, 0, 56, 0, 16, 0, 8, 1, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 44, 0, 24, 0, + 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 96, 0, 20, 0, 16, 0, 4, 0, 4, 0, 8, 0, 16, 0, 8, 0, + 8, 0, 24, 0, 8, 0, 16, 0, 8, 0, 16, 0, 32, 0, 12, 0, 56, 0, 24, 0, 72, 0,240, 0, 24, 0, 56, 0, 56, 0, 20, 0, + 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0,192, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, + 40, 0, 24, 1,224, 0,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, 0, 0,104, 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,200, 0,104, 0,112, 0,168, 0, + 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 0, 0, 83, 84, 82, 67,157, 1, 0, 0, + 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, + 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, + 15, 0, 4, 0, 4, 0, 7, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 16, 0, 4, 0, 7, 0, 7, 0, 7, 0, 8, 0, + 7, 0, 9, 0, 7, 0, 10, 0, 17, 0, 4, 0, 9, 0, 11, 0, 12, 0, 12, 0, 4, 0, 13, 0, 4, 0, 14, 0, 18, 0, 10, 0, + 18, 0, 0, 0, 18, 0, 1, 0, 0, 0, 15, 0, 0, 0, 16, 0, 2, 0, 17, 0, 0, 0, 18, 0, 4, 0, 19, 0, 17, 0, 20, 0, + 4, 0, 21, 0, 4, 0, 22, 0, 19, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 19, 0, 23, 0, 20, 0, 24, 0, 0, 0, 25, 0, + 2, 0, 26, 0, 2, 0, 17, 0, 4, 0, 27, 0, 18, 0, 28, 0, 20, 0, 8, 0, 19, 0, 29, 0, 19, 0, 30, 0, 21, 0, 31, 0, + 0, 0, 32, 0, 0, 0, 33, 0, 4, 0, 34, 0, 4, 0, 35, 0, 20, 0, 36, 0, 22, 0, 5, 0, 4, 0, 37, 0, 4, 0, 38, 0, + 2, 0, 39, 0, 2, 0, 40, 0, 4, 0, 41, 0, 23, 0, 6, 0, 24, 0, 42, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 0, 0, 45, 0, 25, 0, 21, 0, 25, 0, 0, 0, 25, 0, 1, 0, 26, 0, 46, 0, 27, 0, 47, 0, 16, 0, 48, 0, + 16, 0, 49, 0, 2, 0, 43, 0, 2, 0, 44, 0, 2, 0, 50, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 17, 0, + 2, 0, 54, 0, 7, 0, 9, 0, 7, 0, 10, 0, 4, 0, 55, 0, 7, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 23, 0, 59, 0, + 28, 0, 7, 0, 19, 0, 29, 0, 12, 0, 60, 0, 16, 0, 61, 0, 2, 0, 43, 0, 2, 0, 62, 0, 2, 0, 63, 0, 2, 0, 35, 0, + 29, 0, 16, 0, 29, 0, 0, 0, 29, 0, 1, 0, 7, 0, 64, 0, 7, 0, 58, 0, 2, 0, 15, 0, 2, 0, 44, 0, 2, 0, 65, 0, + 2, 0, 17, 0, 4, 0, 66, 0, 4, 0, 67, 0, 9, 0, 2, 0, 7, 0, 68, 0, 0, 0, 18, 0, 0, 0, 69, 0, 7, 0, 70, 0, + 7, 0, 71, 0, 30, 0, 13, 0, 19, 0, 29, 0, 31, 0, 72, 0, 29, 0, 73, 0, 0, 0, 74, 0, 4, 0, 75, 0, 7, 0, 58, 0, + 12, 0, 76, 0, 28, 0, 77, 0, 19, 0, 78, 0, 2, 0, 15, 0, 2, 0, 79, 0, 2, 0, 80, 0, 2, 0, 17, 0, 32, 0, 6, 0, + 32, 0, 0, 0, 32, 0, 1, 0, 0, 0, 81, 0, 0, 0, 82, 0, 4, 0, 21, 0, 4, 0, 83, 0, 33, 0, 10, 0, 33, 0, 0, 0, + 33, 0, 1, 0, 4, 0, 84, 0, 4, 0, 85, 0, 4, 0, 86, 0, 4, 0, 87, 0, 4, 0, 12, 0, 4, 0, 88, 0, 0, 0, 89, 0, + 0, 0, 90, 0, 34, 0, 15, 0, 19, 0, 29, 0, 0, 0, 91, 0, 4, 0, 88, 0, 4, 0, 92, 0, 12, 0, 93, 0, 32, 0, 94, 0, + 32, 0, 95, 0, 4, 0, 96, 0, 4, 0, 97, 0, 12, 0, 98, 0, 0, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, 9, 0,102, 0, + 8, 0,103, 0, 35, 0, 3, 0, 4, 0,104, 0, 4, 0,105, 0, 9, 0, 2, 0, 36, 0, 15, 0, 19, 0, 29, 0, 31, 0, 72, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,106, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, + 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 28, 0, 77, 0, 24, 0,115, 0, 37, 0, 14, 0, 38, 0,116, 0, 4, 0,117, 0, + 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 0, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0, 35, 0, 2, 0,124, 0, + 2, 0,125, 0, 2, 0,126, 0, 2, 0, 17, 0, 4, 0, 67, 0, 39, 0, 32, 0, 19, 0, 29, 0, 0, 0, 32, 0, 12, 0,127, 0, + 40, 0,128, 0, 41, 0,129, 0, 42, 0,130, 0, 42, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 2, 0,123, 0, 2, 0, 17, 0, + 2, 0,134, 0, 2, 0, 15, 0, 4, 0,135, 0, 2, 0,136, 0, 2, 0,137, 0, 2, 0,138, 0, 2, 0,139, 0, 2, 0,140, 0, + 2, 0,141, 0, 4, 0,142, 0, 4, 0,143, 0, 35, 0,144, 0, 22, 0,145, 0, 7, 0,146, 0, 4, 0,147, 0, 2, 0,148, 0, + 2, 0,149, 0, 2, 0,150, 0, 2, 0,151, 0, 7, 0,152, 0, 7, 0,153, 0, 43, 0, 65, 0, 2, 0,154, 0, 2, 0,155, 0, + 2, 0,156, 0, 2, 0,157, 0, 24, 0,158, 0, 44, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, + 0, 0,164, 0, 7, 0,165, 0, 7, 0,166, 0, 7, 0,167, 0, 2, 0,168, 0, 2, 0,169, 0, 2, 0,170, 0, 2, 0,171, 0, + 2, 0,172, 0, 2, 0,173, 0, 0, 0,174, 0, 0, 0,175, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, + 7, 0,180, 0, 7, 0, 54, 0, 7, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, + 7, 0,187, 0, 7, 0,188, 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, 45, 0, 15, 0, + 0, 0,218, 0, 9, 0,219, 0, 0, 0,220, 0, 0, 0,221, 0, 4, 0,222, 0, 4, 0,223, 0, 9, 0,224, 0, 7, 0,225, 0, + 7, 0,226, 0, 7, 0,227, 0, 4, 0,228, 0, 9, 0,229, 0, 9, 0,230, 0, 4, 0,231, 0, 4, 0, 35, 0, 46, 0, 6, 0, + 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,232, 0, 7, 0, 64, 0, 4, 0, 61, 0, 47, 0, 5, 0, 2, 0, 17, 0, + 2, 0, 34, 0, 2, 0, 61, 0, 2, 0,233, 0, 46, 0,227, 0, 48, 0, 17, 0, 24, 0,158, 0, 39, 0,234, 0, 49, 0,235, 0, + 7, 0,236, 0, 7, 0,237, 0, 2, 0, 15, 0, 2, 0,238, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,239, 0, 4, 0,240, 0, + 2, 0,241, 0, 2, 0,242, 0, 4, 0,123, 0, 4, 0,135, 0, 2, 0,243, 0, 2, 0,244, 0, 50, 0, 22, 0, 2, 0, 17, 0, + 2, 0,245, 0, 7, 0,246, 0, 7, 0,247, 0, 2, 0,134, 0, 2, 0,248, 0, 4, 0,249, 0, 4, 0,250, 0, 24, 0,158, 0, + 4, 0,251, 0, 2, 0,252, 0, 2, 0,253, 0, 9, 0,254, 0, 7, 0,255, 0, 7, 0, 0, 1, 2, 0, 1, 1, 2, 0, 2, 1, + 2, 0, 3, 1, 2, 0, 4, 1, 7, 0, 5, 1, 7, 0, 6, 1, 47, 0, 7, 1, 51, 0, 13, 0, 4, 0, 8, 1, 4, 0, 9, 1, + 2, 0, 10, 1, 2, 0, 17, 0, 2, 0, 11, 1, 2, 0, 12, 1, 24, 0,158, 0, 7, 0, 13, 1, 4, 0, 14, 1, 0, 0, 15, 1, + 7, 0, 16, 1, 4, 0, 17, 1, 4, 0,123, 0, 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 0, 18, 1, 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, 67, 0, + 7, 0, 27, 1, 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, 2, 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, 17, 0, 2, 0, 15, 0, 2, 0,238, 0, 7, 0, 46, 1, 7, 0, 47, 1, + 7, 0, 48, 1, 7, 0, 49, 1, 4, 0, 50, 1, 4, 0, 51, 1, 2, 0, 52, 1, 2, 0, 53, 1, 2, 0, 11, 1, 2, 0,121, 0, + 4, 0, 21, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 7, 0, 54, 1, 7, 0, 55, 1, 7, 0, 87, 0, 37, 0, 56, 1, + 52, 0, 57, 1, 28, 0, 77, 0, 39, 0,234, 0, 45, 0, 58, 1, 47, 0, 7, 1, 48, 0, 59, 1, 22, 0,145, 0, 50, 0, 60, 1, + 51, 0, 61, 1, 0, 0, 62, 1, 0, 0,175, 0, 53, 0, 8, 0, 7, 0, 63, 1, 7, 0, 64, 1, 7, 0,166, 0, 4, 0, 17, 0, + 7, 0, 65, 1, 7, 0, 66, 1, 7, 0, 67, 1, 24, 0, 42, 0, 54, 0, 74, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 4, 0, 68, 1, 2, 0,169, 0, 2, 0, 69, 1, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, + 7, 0, 70, 1, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, + 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 55, 0, 81, 1, 2, 0,245, 0, 2, 0, 67, 0, 7, 0,107, 0, 7, 0,108, 0, + 7, 0, 82, 1, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 2, 0, 87, 1, 2, 0, 88, 1, 2, 0, 89, 1, + 2, 0, 90, 1, 0, 0, 91, 1, 0, 0, 92, 1, 2, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1, + 7, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 2, 0,102, 1, 2, 0, 87, 0, 2, 0,103, 1, 2, 0,104, 1, + 2, 0,105, 1, 2, 0,106, 1, 7, 0,107, 1, 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, + 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 2, 0,119, 1, 0, 0,120, 1, + 28, 0, 77, 0, 43, 0,121, 1, 2, 0,122, 1, 2, 0, 62, 1, 0, 0,123, 1, 22, 0,145, 0, 52, 0, 57, 1, 56, 0, 18, 0, + 7, 0,124, 1, 7, 0,125, 1, 7, 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, 2, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 2, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, + 7, 0,140, 1, 7, 0,141, 1, 57, 0,125, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,142, 1, 2, 0, 17, 0, 7, 0,176, 0, + 7, 0,177, 0, 7, 0,178, 0, 7, 0,143, 1, 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, 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, 56, 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, 2, 0,171, 1, 2, 0,172, 1, + 2, 0,173, 1, 0, 0,174, 1, 0, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 2, 0,178, 1, 2, 0,179, 1, 7, 0,180, 1, + 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 4, 0, 68, 1, 4, 0,186, 1, 2, 0,187, 1, + 2, 0,188, 1, 2, 0,189, 1, 2, 0,190, 1, 7, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, + 7, 0,196, 1, 7, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 0, 0,201, 1, 7, 0,202, 1, 7, 0,203, 1, + 7, 0,204, 1, 4, 0,205, 1, 0, 0,206, 1, 0, 0,103, 1, 0, 0,207, 1, 0, 0, 62, 1, 2, 0,208, 1, 2, 0,209, 1, + 2, 0,122, 1, 2, 0,210, 1, 2, 0,211, 1, 2, 0,212, 1, 7, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, + 7, 0,217, 1, 2, 0,154, 0, 2, 0,155, 0, 47, 0,218, 1, 47, 0,219, 1, 0, 0,220, 1, 0, 0,221, 1, 0, 0,222, 1, + 0, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, 43, 0,121, 1, 52, 0, 57, 1, 28, 0, 77, 0, + 58, 0,228, 1, 22, 0,145, 0, 7, 0,229, 1, 7, 0,230, 1, 7, 0,231, 1, 7, 0,232, 1, 7, 0,233, 1, 2, 0,234, 1, + 2, 0, 67, 0, 7, 0,235, 1, 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 7, 0,241, 1, + 7, 0,242, 1, 7, 0,243, 1, 2, 0,244, 1, 2, 0,245, 1, 4, 0,246, 1, 2, 0,247, 1, 2, 0, 35, 0, 12, 0,248, 1, + 59, 0, 4, 0, 19, 0, 29, 0, 0, 0,249, 1, 60, 0, 2, 0, 35, 0,144, 0, 61, 0, 26, 0, 61, 0, 0, 0, 61, 0, 1, 0, + 62, 0,250, 1, 4, 0,251, 1, 4, 0,252, 1, 4, 0,253, 1, 4, 0,254, 1, 4, 0,255, 1, 4, 0, 0, 2, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0, 1, 2, 2, 0, 2, 2, 7, 0, 5, 0, 7, 0, 6, 0, 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, 7, 0, 10, 2, 7, 0, 21, 0, 7, 0, 11, 2, 7, 0, 12, 2, + 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,250, 1, 12, 0, 13, 2, 12, 0, 14, 2, 12, 0, 15, 2, 28, 0, 77, 0, + 57, 0, 16, 2, 0, 0, 17, 0, 0, 0, 17, 2, 2, 0, 18, 2, 2, 0,168, 0, 2, 0, 35, 0, 7, 0, 63, 1, 7, 0,166, 0, + 7, 0, 64, 1, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 61, 0, 22, 2, 27, 0, 11, 0, 7, 0, 23, 2, 7, 0, 24, 2, + 7, 0, 25, 2, 7, 0,247, 0, 2, 0, 52, 0, 0, 0, 26, 2, 0, 0, 27, 2, 0, 0, 28, 2, 0, 0, 29, 2, 0, 0, 30, 2, + 0, 0, 31, 2, 26, 0, 7, 0, 7, 0, 32, 2, 7, 0, 24, 2, 7, 0, 25, 2, 2, 0, 28, 2, 2, 0, 31, 2, 7, 0,247, 0, + 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, 0, 2, 0, 33, 2, 2, 0, 31, 2, 2, 0, 17, 0, + 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 36, 2, 2, 0, 37, 2, 2, 0, 38, 2, 2, 0, 39, 2, 2, 0, 40, 2, 2, 0, 41, 2, + 7, 0, 42, 2, 7, 0, 43, 2, 26, 0, 46, 0, 27, 0, 47, 0, 2, 0, 44, 2, 2, 0, 45, 2, 4, 0, 46, 2, 65, 0, 5, 0, + 2, 0, 47, 2, 2, 0, 33, 2, 0, 0, 17, 0, 0, 0, 35, 0, 2, 0, 67, 0, 66, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, + 7, 0, 48, 2, 7, 0, 49, 2, 67, 0, 4, 0, 12, 0, 50, 2, 68, 0, 51, 2, 4, 0, 52, 2, 0, 0, 90, 0, 69, 0, 68, 0, + 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,250, 1, 12, 0, 53, 2, 12, 0, 14, 2, 67, 0, 54, 2, 24, 0, 55, 2, 24, 0, 56, 2, + 24, 0, 57, 2, 28, 0, 77, 0, 70, 0, 58, 2, 30, 0, 59, 2, 57, 0, 16, 2, 12, 0, 60, 2, 7, 0, 63, 1, 7, 0,166, 0, + 7, 0, 64, 1, 2, 0,168, 0, 2, 0, 87, 0, 2, 0, 61, 2, 2, 0, 62, 2, 7, 0, 63, 2, 7, 0, 64, 2, 4, 0, 65, 2, + 2, 0, 35, 0, 2, 0, 18, 2, 2, 0, 17, 0, 2, 0, 66, 2, 7, 0, 67, 2, 7, 0, 68, 2, 7, 0, 69, 2, 2, 0, 36, 2, + 2, 0, 37, 2, 2, 0, 70, 2, 2, 0, 71, 2, 4, 0, 72, 2, 9, 0, 73, 2, 2, 0, 21, 0, 2, 0, 93, 0, 2, 0, 64, 0, + 2, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, 7, 0, 77, 2, 7, 0, 78, 2, 7, 0, 79, 2, 7, 0, 80, 2, 7, 0, 81, 2, + 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 0, 0, 85, 2, 71, 0, 86, 2, 72, 0, 87, 2, 0, 0, 88, 2, 59, 0, 89, 2, + 59, 0, 90, 2, 59, 0, 91, 2, 59, 0, 92, 2, 4, 0, 93, 2, 7, 0, 94, 2, 4, 0, 95, 2, 4, 0, 96, 2, 66, 0, 97, 2, + 4, 0, 98, 2, 4, 0, 99, 2, 65, 0,100, 2, 65, 0,101, 2, 73, 0, 41, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,250, 1, + 12, 0,102, 2, 28, 0, 77, 0, 30, 0, 59, 2, 57, 0, 16, 2, 74, 0,103, 2, 75, 0,104, 2, 76, 0,105, 2, 77, 0,106, 2, + 78, 0,107, 2, 79, 0,108, 2, 80, 0,109, 2, 81, 0,110, 2, 73, 0,111, 2, 82, 0,112, 2, 83, 0,113, 2, 84, 0,114, 2, + 84, 0,115, 2, 84, 0,116, 2, 4, 0, 51, 0, 4, 0,117, 2, 4, 0,118, 2, 4, 0,119, 2, 4, 0,120, 2, 2, 0,168, 0, + 2, 0,121, 2, 7, 0, 63, 1, 7, 0,166, 0, 7, 0, 64, 1, 7, 0,122, 2, 4, 0, 61, 2, 2, 0,123, 2, 2, 0, 17, 0, + 2, 0,124, 2, 2, 0,125, 2, 2, 0, 18, 2, 2, 0,126, 2, 85, 0,127, 2, 86, 0,128, 2, 76, 0, 8, 0, 9, 0,129, 2, + 7, 0,130, 2, 4, 0,131, 2, 0, 0, 17, 0, 0, 0,132, 2, 2, 0, 68, 1, 2, 0,133, 2, 2, 0,134, 2, 74, 0, 7, 0, + 4, 0,135, 2, 4, 0,136, 2, 4, 0,137, 2, 4, 0,138, 2, 2, 0, 33, 2, 0, 0,139, 2, 0, 0, 17, 0, 78, 0, 5, 0, + 4, 0,135, 2, 4, 0,136, 2, 0, 0,140, 2, 0, 0,141, 2, 2, 0, 17, 0, 87, 0, 2, 0, 4, 0,142, 2, 7, 0, 25, 2, + 79, 0, 3, 0, 87, 0,143, 2, 4, 0,144, 2, 4, 0, 17, 0, 77, 0, 4, 0, 7, 0,145, 2, 2, 0,146, 2, 0, 0, 17, 0, + 0, 0,141, 2, 80, 0, 4, 0, 0, 0,232, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0, 88, 0, 6, 0, 39, 0,129, 2, + 0, 0, 17, 0, 0, 0,132, 2, 2, 0, 68, 1, 2, 0,133, 2, 2, 0,134, 2, 89, 0, 1, 0, 7, 0,147, 2, 90, 0, 5, 0, + 0, 0,232, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0, 4, 0, 35, 0, 81, 0, 1, 0, 7, 0,148, 2, 82, 0, 2, 0, + 4, 0,149, 2, 4, 0, 15, 0, 75, 0, 7, 0, 7, 0,130, 2, 39, 0,129, 2, 0, 0, 17, 0, 0, 0,132, 2, 2, 0, 68, 1, + 2, 0,133, 2, 2, 0,134, 2, 91, 0, 1, 0, 7, 0,150, 2, 92, 0, 1, 0, 4, 0,151, 2, 93, 0, 1, 0, 0, 0,152, 2, + 94, 0, 1, 0, 7, 0,130, 2, 95, 0, 3, 0, 4, 0,153, 2, 0, 0, 90, 0, 7, 0,154, 2, 96, 0, 4, 0, 7, 0,232, 0, + 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 97, 0, 1, 0, 96, 0,131, 2, 98, 0, 5, 0, 4, 0,155, 2, 4, 0,156, 2, + 0, 0, 17, 0, 0, 0, 33, 2, 0, 0,157, 2, 99, 0, 2, 0, 4, 0,158, 2, 4, 0,156, 2,100, 0, 10, 0,100, 0, 0, 0, +100, 0, 1, 0, 98, 0,159, 2, 97, 0,160, 2, 99, 0,161, 2, 4, 0, 51, 0, 4, 0,118, 2, 4, 0,117, 2, 4, 0, 35, 0, + 77, 0,162, 2, 85, 0, 14, 0, 12, 0,163, 2, 77, 0,162, 2, 0, 0,164, 2, 0, 0,165, 2, 0, 0,166, 2, 0, 0,167, 2, + 0, 0,168, 2, 0, 0,169, 2, 0, 0,170, 2, 0, 0, 17, 0, 84, 0,114, 2, 84, 0,116, 2, 2, 0,171, 2, 0, 0,172, 2, + 86, 0, 8, 0, 4, 0,173, 2, 4, 0,174, 2, 74, 0,175, 2, 78, 0,176, 2, 4, 0,118, 2, 4, 0,117, 2, 4, 0, 51, 0, + 4, 0, 35, 0,101, 0, 9, 0,101, 0, 0, 0,101, 0, 1, 0, 4, 0, 15, 0, 4, 0, 68, 1, 4, 0,177, 2, 4, 0, 35, 0, + 0, 0, 18, 0, 38, 0,116, 0, 0, 0,178, 2,102, 0, 7, 0,101, 0,179, 2, 2, 0,180, 2, 2, 0,163, 2, 2, 0,181, 2, + 2, 0, 88, 0, 9, 0,182, 2, 9, 0,183, 2,103, 0, 3, 0,101, 0,179, 2, 24, 0,158, 0, 0, 0, 18, 0,104, 0, 5, 0, +101, 0,179, 2, 24, 0,158, 0, 0, 0, 18, 0, 2, 0,184, 2, 0, 0,185, 2,105, 0, 5, 0,101, 0,179, 2, 7, 0, 85, 0, + 7, 0,186, 2, 4, 0,187, 2, 4, 0,188, 2,106, 0, 5, 0,101, 0,179, 2, 24, 0,189, 2, 0, 0, 69, 0, 4, 0, 68, 1, + 4, 0, 17, 0,107, 0, 13, 0,101, 0,179, 2, 24, 0,190, 2, 24, 0,191, 2, 24, 0,192, 2, 24, 0,193, 2, 7, 0,194, 2, + 7, 0,195, 2, 7, 0,186, 2, 7, 0,196, 2, 4, 0,197, 2, 4, 0,198, 2, 4, 0, 88, 0, 4, 0,199, 2,108, 0, 5, 0, +101, 0,179, 2, 2, 0,200, 2, 2, 0, 17, 0, 7, 0,201, 2, 24, 0,202, 2,109, 0, 3, 0,101, 0,179, 2, 7, 0,203, 2, + 4, 0, 88, 0,110, 0, 10, 0,101, 0,179, 2, 7, 0,204, 2, 4, 0,205, 2, 4, 0, 35, 0, 2, 0, 88, 0, 2, 0,206, 2, + 2, 0,207, 2, 2, 0,208, 2, 7, 0,209, 2, 0, 0,210, 2,111, 0, 3, 0,101, 0,179, 2, 7, 0, 35, 0, 4, 0, 15, 0, +112, 0, 6, 0,101, 0,179, 2,113, 0,211, 2,114, 0,212, 2,115, 0,213, 2, 7, 0,214, 2, 4, 0, 15, 0,116, 0, 11, 0, +101, 0,179, 2, 44, 0,215, 2, 7, 0,216, 2, 4, 0,217, 2, 0, 0,210, 2, 7, 0,218, 2, 4, 0,219, 2, 24, 0,220, 2, + 0, 0,221, 2, 4, 0,222, 2, 4, 0, 35, 0,117, 0, 12, 0,101, 0,179, 2, 24, 0,223, 2, 39, 0,224, 2, 4, 0, 88, 0, + 4, 0,225, 2, 7, 0,226, 2, 7, 0,227, 2, 7, 0,228, 2, 7, 0,229, 2, 0, 0,221, 2, 4, 0,222, 2, 4, 0, 35, 0, +118, 0, 3, 0,101, 0,179, 2, 7, 0,230, 2, 4, 0,231, 2,119, 0, 5, 0,101, 0,179, 2, 7, 0,232, 2, 0, 0,210, 2, + 2, 0, 17, 0, 2, 0,233, 2,120, 0, 8, 0,101, 0,179, 2, 24, 0,158, 0, 7, 0,232, 2, 7, 0,247, 0, 7, 0,104, 0, + 0, 0,210, 2, 2, 0, 17, 0, 2, 0, 15, 0,121, 0, 21, 0,101, 0,179, 2, 24, 0,234, 2, 0, 0,210, 2, 44, 0,215, 2, + 24, 0,220, 2, 2, 0, 17, 0, 2, 0, 35, 0, 7, 0,235, 2, 7, 0,236, 2, 7, 0,237, 2, 7, 0, 67, 2, 7, 0,238, 2, + 7, 0,239, 2, 7, 0,240, 2, 7, 0,241, 2, 4, 0,219, 2, 4, 0,222, 2, 0, 0,221, 2, 7, 0,242, 2, 7, 0,243, 2, + 7, 0, 87, 0,122, 0, 7, 0,101, 0,179, 2, 2, 0,244, 2, 2, 0,245, 2, 4, 0, 67, 0, 24, 0,158, 0, 7, 0,246, 2, + 0, 0,210, 2,123, 0, 10, 0,101, 0,179, 2, 24, 0,158, 0, 0, 0,247, 2, 7, 0,248, 2, 7, 0,249, 2, 7, 0,241, 2, + 4, 0,250, 2, 4, 0,251, 2, 7, 0,252, 2, 0, 0, 18, 0,124, 0, 1, 0,101, 0,179, 2,125, 0, 7, 0,101, 0,179, 2, + 38, 0,116, 0,126, 0,253, 2,127, 0,254, 2,128, 0,255, 2,129, 0, 0, 3, 12, 0, 1, 3,130, 0, 13, 0,101, 0,179, 2, + 77, 0, 2, 3, 77, 0, 3, 3, 77, 0, 4, 3, 77, 0, 5, 3, 77, 0, 6, 3, 77, 0, 7, 3, 74, 0, 8, 3, 4, 0, 9, 3, + 4, 0, 10, 3, 7, 0, 11, 3, 7, 0, 12, 3,131, 0, 13, 3,132, 0, 7, 0,101, 0,179, 2, 77, 0, 2, 3, 77, 0, 14, 3, +133, 0, 15, 3,134, 0, 13, 3, 4, 0, 16, 3, 4, 0, 9, 3,135, 0, 4, 0,101, 0,179, 2, 24, 0,158, 0, 4, 0, 17, 3, + 4, 0, 35, 0,136, 0, 2, 0, 4, 0, 18, 3, 7, 0, 25, 2,137, 0, 2, 0, 4, 0,119, 0, 4, 0, 19, 3,138, 0, 24, 0, +101, 0,179, 2, 24, 0,158, 0, 0, 0,210, 2, 2, 0, 20, 3, 2, 0, 17, 0, 2, 0, 68, 1, 2, 0, 35, 0,136, 0, 21, 3, + 4, 0, 22, 3, 7, 0, 23, 3, 4, 0, 51, 0, 4, 0, 24, 3,137, 0, 25, 3,136, 0, 26, 3, 4, 0, 27, 3, 4, 0, 28, 3, + 4, 0, 29, 3, 4, 0, 19, 3, 7, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3, 7, 0, 33, 3, 7, 0, 34, 3, 9, 0, 35, 3, +139, 0, 8, 0,101, 0,179, 2,140, 0, 36, 3,133, 0, 15, 3, 4, 0, 37, 3, 4, 0, 38, 3, 4, 0, 39, 3, 2, 0, 17, 0, + 2, 0, 54, 0,141, 0, 8, 0,101, 0,179, 2, 24, 0, 42, 0, 2, 0,251, 0, 2, 0, 17, 0, 2, 0,200, 2, 2, 0, 54, 0, + 7, 0, 40, 3, 7, 0, 41, 3,142, 0, 6, 0,101, 0,179, 2, 4, 0, 42, 3, 2, 0, 17, 0, 2, 0, 43, 3, 7, 0, 44, 3, + 0, 0,160, 0,143, 0, 8, 0,101, 0,179, 2, 0, 0, 45, 3, 0, 0, 46, 3, 0, 0,169, 2, 0, 0, 47, 3, 0, 0, 48, 3, + 0, 0, 88, 0, 0, 0,157, 2,144, 0, 3, 0,101, 0,179, 2,145, 0, 49, 3,129, 0, 0, 3,146, 0, 10, 0,101, 0,179, 2, + 24, 0, 50, 3, 24, 0, 51, 3, 0, 0, 52, 3, 7, 0, 53, 3, 2, 0, 54, 3, 2, 0, 55, 3, 0, 0, 56, 3, 0, 0, 57, 3, + 0, 0,185, 2,147, 0, 9, 0,101, 0,179, 2, 24, 0, 58, 3, 0, 0, 52, 3, 7, 0, 59, 3, 7, 0, 60, 3, 0, 0, 68, 1, + 0, 0,200, 2, 0, 0, 61, 3, 0, 0, 35, 0,148, 0, 1, 0,101, 0,179, 2,149, 0, 11, 0,101, 0,179, 2, 0, 0,210, 2, + 7, 0,119, 0, 7, 0, 62, 3, 7, 0, 63, 3, 7, 0, 64, 3, 7, 0, 65, 3, 4, 0, 17, 0, 2, 0, 66, 3, 2, 0, 67, 3, + 4, 0, 35, 0,150, 0, 9, 0,101, 0,179, 2, 24, 0, 68, 3, 4, 0, 69, 3, 4, 0, 70, 3, 4, 0, 71, 3, 7, 0, 72, 3, + 7, 0, 73, 3, 2, 0,200, 2, 2, 0, 17, 0,151, 0, 3, 0,152, 0, 74, 3, 4, 0, 52, 2, 0, 0, 90, 0,152, 0, 29, 0, + 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 75, 3, 2, 0, 17, 0, 2, 0, 76, 3, 2, 0, 77, 3, + 2, 0, 78, 3, 2, 0, 67, 0, 0, 0, 79, 3, 0, 0, 80, 3, 0, 0, 81, 3, 0, 0,225, 1, 4, 0, 35, 0, 7, 0, 82, 3, + 7, 0, 83, 3, 7, 0, 84, 3, 7, 0, 85, 3, 7, 0, 86, 3, 7, 0, 87, 3, 26, 0, 88, 3, 28, 0, 77, 0, 30, 0, 59, 2, + 79, 0,108, 2, 0, 0, 69, 0, 7, 0, 89, 3, 7, 0, 90, 3,151, 0, 91, 3,153, 0, 3, 0,153, 0, 0, 0,153, 0, 1, 0, + 0, 0, 18, 0, 62, 0, 3, 0, 7, 0, 92, 3, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,127, 0, 19, 0, 29, 0, 31, 0, 72, 0, +154, 0, 93, 3, 2, 0, 15, 0, 2, 0, 94, 3, 4, 0, 95, 3, 4, 0, 96, 3, 4, 0, 97, 3, 0, 0, 98, 3, 24, 0, 36, 0, + 24, 0, 99, 3, 24, 0,100, 3, 24, 0,101, 3, 24, 0,102, 3, 28, 0, 77, 0, 70, 0, 58, 2, 62, 0,250, 1,155, 0,103, 3, +155, 0,104, 3,156, 0,105, 3, 9, 0, 2, 0,157, 0,106, 3,158, 0,107, 3,159, 0,108, 3, 12, 0,109, 3, 12, 0,102, 2, + 12, 0, 14, 2, 12, 0,110, 3, 12, 0,111, 3, 4, 0, 68, 1, 4, 0,112, 3, 57, 0, 16, 2, 0, 0,113, 3, 4, 0, 18, 2, + 4, 0,114, 3, 7, 0, 63, 1, 7, 0,115, 3, 7, 0,116, 3, 7, 0,166, 0, 7, 0,117, 3, 7, 0, 64, 1, 7, 0,118, 3, + 7, 0, 4, 2, 7, 0,119, 3, 7, 0,120, 3, 7, 0,121, 3, 7, 0,122, 3, 7, 0,123, 3, 7, 0,124, 3, 7, 0,248, 2, + 7, 0,125, 3, 7, 0,236, 0, 7, 0,126, 3, 4, 0,127, 3, 2, 0, 17, 0, 2, 0,128, 3, 2, 0,129, 3, 2, 0,130, 3, + 2, 0,131, 3, 2, 0,132, 3, 2, 0,133, 3, 2, 0,134, 3, 2, 0,135, 3, 2, 0,136, 3, 2, 0,137, 3, 2, 0,138, 3, + 4, 0,139, 3, 4, 0,140, 3, 4, 0,141, 3, 4, 0,142, 3, 7, 0,143, 3, 7, 0, 94, 2, 7, 0,144, 3, 7, 0,145, 3, + 7, 0,146, 3, 7, 0,147, 3, 7, 0,148, 3, 7, 0,211, 0, 7, 0,149, 3, 7, 0,150, 3, 7, 0,151, 3, 7, 0,152, 3, + 2, 0,153, 3, 0, 0,154, 3, 0, 0,155, 3, 0, 0,156, 3, 0, 0,157, 3, 7, 0,158, 3, 7, 0,159, 3, 12, 0,160, 3, + 12, 0,161, 3, 12, 0,162, 3, 12, 0,163, 3, 7, 0,164, 3, 2, 0,149, 2, 2, 0,165, 3, 7, 0,131, 2, 4, 0,166, 3, + 4, 0,167, 3,160, 0,168, 3, 2, 0,169, 3, 2, 0,243, 0, 7, 0,170, 3, 12, 0,171, 3, 12, 0,172, 3, 12, 0,173, 3, + 12, 0,174, 3,161, 0, 60, 1,162, 0,175, 3, 58, 0,176, 3, 2, 0,177, 3, 2, 0,178, 3, 2, 0, 52, 2, 2, 0,179, 3, + 7, 0,123, 2, 2, 0,180, 3, 2, 0,181, 3,145, 0,182, 3,133, 0,183, 3,133, 0,184, 3, 4, 0,185, 3, 4, 0,186, 3, + 4, 0,187, 3, 4, 0, 67, 0, 12, 0,188, 3, 12, 0,189, 3, 12, 0,190, 3,163, 0, 14, 0,163, 0, 0, 0,163, 0, 1, 0, + 24, 0, 36, 0, 7, 0,248, 2, 7, 0, 65, 1, 7, 0,249, 2, 7, 0,241, 2, 0, 0, 18, 0, 4, 0,250, 2, 4, 0,251, 2, + 4, 0,191, 3, 2, 0, 15, 0, 2, 0,192, 3, 7, 0,252, 2,164, 0, 12, 0,164, 0, 0, 0,164, 0, 1, 0, 24, 0, 42, 0, + 4, 0,193, 3, 4, 0,149, 2, 4, 0,194, 3, 4, 0, 15, 0, 4, 0,195, 3, 7, 0, 65, 1, 7, 0,196, 3, 7, 0,197, 3, + 7, 0,147, 2,161, 0, 40, 0, 4, 0, 17, 0, 2, 0,198, 3, 2, 0,199, 3, 2, 0,241, 2, 2, 0,200, 3, 2, 0,201, 3, + 2, 0,202, 3, 2, 0,203, 3, 2, 0,204, 3, 7, 0,205, 3, 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, + 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, + 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, 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, 7, 0,230, 3, 7, 0,231, 3, 44, 0,159, 0,165, 0,232, 3, + 7, 0,233, 3, 4, 0,188, 2,166, 0, 5, 0, 58, 0,228, 1, 7, 0,234, 3, 7, 0,235, 3, 2, 0, 17, 0, 2, 0,236, 3, +167, 0, 5, 0,167, 0, 0, 0,167, 0, 1, 0, 4, 0, 15, 0, 4, 0,237, 3, 9, 0, 2, 0,168, 0, 9, 0,168, 0, 0, 0, +168, 0, 1, 0, 4, 0,238, 3, 4, 0,239, 3, 4, 0,240, 3, 4, 0, 17, 0, 9, 0,241, 3, 9, 0,242, 3, 12, 0,243, 3, +129, 0, 21, 0,129, 0, 0, 0,129, 0, 1, 0, 4, 0, 17, 0, 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 4, 0,247, 3, + 4, 0,248, 3, 4, 0,249, 3, 4, 0,239, 3, 4, 0,149, 2, 2, 0,250, 3, 2, 0, 54, 0, 0, 0,251, 3, 0, 0,252, 3, + 0, 0,253, 3, 0, 0,254, 3, 0, 0,255, 3, 12, 0, 0, 4,169, 0, 1, 4, 9, 0, 2, 4,170, 0, 1, 0, 7, 0, 32, 2, +160, 0, 30, 0, 4, 0, 17, 0, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 4, 0, 6, 4, 4, 0, 7, 4, 4, 0, 8, 4, + 4, 0, 9, 4, 7, 0, 10, 4, 7, 0, 11, 4, 7, 0, 12, 4, 7, 0, 13, 4, 7, 0, 14, 4, 7, 0, 15, 4, 7, 0, 16, 4, + 7, 0, 17, 4, 7, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, + 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 4, 0, 28, 4, 4, 0, 29, 4, 7, 0, 30, 4, 7, 0,149, 3,162, 0, 54, 0, + 4, 0,239, 3, 4, 0, 31, 4,171, 0, 32, 4,172, 0, 33, 4, 0, 0, 35, 0, 0, 0, 34, 4, 2, 0, 35, 4, 7, 0, 36, 4, + 0, 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, 2, 0, 47, 4, 0, 0, 48, 4, 2, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 0, 0, 52, 4, + 4, 0,120, 0, 4, 0, 53, 4, 4, 0, 54, 4, 2, 0, 55, 4, 2, 0, 56, 4,170, 0, 57, 4, 4, 0, 58, 4, 4, 0, 79, 0, + 7, 0, 59, 4, 7, 0, 60, 4, 7, 0, 61, 4, 7, 0, 62, 4, 2, 0, 63, 4, 2, 0, 64, 4, 2, 0, 65, 4, 2, 0, 66, 4, + 2, 0, 67, 4, 2, 0, 68, 4, 2, 0, 69, 4, 2, 0, 70, 4,173, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4,129, 0, 74, 4, + 12, 0, 1, 3,166, 0, 75, 4, 7, 0, 76, 4, 7, 0, 77, 4, 7, 0, 78, 4, 0, 0, 79, 4,145, 0, 51, 0,144, 0, 80, 4, + 2, 0, 15, 0, 2, 0, 81, 4, 2, 0, 82, 4, 2, 0, 83, 4, 7, 0, 84, 4, 2, 0, 85, 4, 2, 0, 86, 4, 7, 0, 87, 4, + 2, 0, 88, 4, 2, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 7, 0, 94, 4, 4, 0, 95, 4, + 4, 0, 96, 4, 7, 0, 97, 4, 4, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 73, 0,102, 4, 73, 0,103, 4, + 73, 0,104, 4, 0, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4, 28, 0, 77, 0, 2, 0,108, 4, 0, 0,109, 4, 0, 0,110, 4, + 7, 0,111, 4, 4, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 4, 0,115, 4, 4, 0, 17, 0, 7, 0,116, 4, 7, 0,117, 4, + 7, 0,118, 4, 77, 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, + 7, 0,126, 4, 4, 0,127, 4,174, 0, 78, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,169, 0, 2, 0, 69, 1, 2, 0,103, 1, + 2, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, 7, 0,149, 1, + 7, 0,151, 1, 7, 0,150, 1, 7, 0, 67, 0, 4, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, + 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 2, 0,143, 4, 2, 0, 68, 1, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, + 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 7, 0,152, 4, 7, 0,153, 4, 7, 0,154, 4, + 7, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 2, 0,162, 4, + 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4, 2, 0,170, 4, + 2, 0,171, 4, 2, 0,172, 4, 2, 0,173, 4, 7, 0,174, 4, 7, 0,175, 4, 7, 0,176, 4, 7, 0,177, 4, 7, 0,178, 4, + 7, 0,179, 4, 7, 0,180, 4, 2, 0,181, 4, 2, 0,182, 4, 2, 0,183, 4, 2, 0,184, 4, 2, 0,185, 4, 2, 0, 17, 0, + 7, 0,186, 4, 7, 0,187, 4, 28, 0, 77, 0, 43, 0,121, 1, 2, 0,122, 1, 2, 0, 62, 1, 2, 0,157, 2, 22, 0,145, 0, + 52, 0, 57, 1,175, 0, 8, 0,175, 0, 0, 0,175, 0, 1, 0, 4, 0,127, 3, 4, 0,188, 4, 4, 0, 17, 0, 2, 0,189, 4, + 2, 0,190, 4, 24, 0,158, 0,176, 0, 13, 0, 9, 0,191, 4, 9, 0,192, 4, 4, 0,193, 4, 4, 0,194, 4, 4, 0,195, 4, + 4, 0,196, 4, 4, 0,197, 4, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 4, 0,201, 4, 4, 0, 35, 0, 0, 0,202, 4, +177, 0, 5, 0, 9, 0,203, 4, 9, 0,204, 4, 4, 0,205, 4, 4, 0, 67, 0, 0, 0,206, 4,178, 0, 17, 0, 4, 0,207, 4, + 4, 0,208, 4, 4, 0,209, 4, 4, 0,210, 4, 4, 0,211, 4, 4, 0,212, 4, 4, 0,213, 4, 4, 0,214, 4, 4, 0,215, 4, + 4, 0,216, 4, 4, 0,217, 4, 4, 0,218, 4, 2, 0,219, 4, 2, 0,220, 4, 4, 0,221, 4, 4, 0,222, 4, 4, 0, 87, 0, +179, 0, 15, 0, 4, 0, 15, 0, 4, 0,209, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 7, 0,227, 4, + 4, 0,228, 4, 4, 0, 88, 0, 4, 0,229, 4, 4, 0,230, 4, 4, 0,231, 4, 4, 0,232, 4, 4, 0,233, 4, 18, 0, 28, 0, +180, 0, 7, 0, 4, 0,234, 4, 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4, 4, 0,238, 4, 2, 0, 17, 0, 2, 0, 35, 0, +181, 0, 11, 0,181, 0, 0, 0,181, 0, 1, 0, 0, 0, 18, 0, 57, 0,239, 4, 58, 0,240, 4, 4, 0,127, 3, 4, 0,241, 4, + 4, 0,242, 4, 4, 0, 35, 0, 4, 0,243, 4, 4, 0,244, 4,182, 0,110, 0,176, 0,245, 4,177, 0,246, 4,178, 0,247, 4, +179, 0,248, 4, 4, 0, 16, 3, 4, 0,120, 0, 4, 0, 53, 4, 7, 0,249, 4, 4, 0,250, 4, 4, 0,251, 4, 4, 0,252, 4, + 4, 0,253, 4, 2, 0, 17, 0, 2, 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,242, 0, 2, 0, 8, 5, 4, 0, 9, 5, 2, 0, 10, 5, + 2, 0, 11, 5, 2, 0, 90, 1, 2, 0,104, 0, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, + 2, 0, 17, 5, 2, 0, 18, 5, 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 91, 1, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, + 2, 0, 24, 5, 4, 0, 25, 5, 4, 0, 68, 1, 4, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 2, 0, 29, 5, 2, 0, 30, 5, + 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 16, 0, 35, 5, 16, 0, 36, 5, 15, 0, 37, 5, 12, 0, 38, 5, + 2, 0, 39, 5, 2, 0, 40, 5, 7, 0, 41, 5, 7, 0, 42, 5, 7, 0, 43, 5, 7, 0, 44, 5, 4, 0, 45, 5, 7, 0, 46, 5, + 7, 0, 47, 5, 7, 0, 48, 5, 7, 0, 49, 5, 2, 0, 50, 5, 2, 0, 51, 5, 2, 0, 52, 5, 2, 0, 53, 5, 2, 0, 54, 5, + 2, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 7, 0, 58, 5, 0, 0, 59, 5, 0, 0, 60, 5, 4, 0, 61, 5, 2, 0, 62, 5, + 2, 0,225, 1, 0, 0, 63, 5, 7, 0, 64, 5, 7, 0, 65, 5, 0, 0, 66, 5, 0, 0, 67, 5, 0, 0, 68, 5, 0, 0, 69, 5, + 4, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 7, 0, 73, 5, 7, 0, 74, 5, 2, 0, 75, 5, 2, 0, 76, 5, 7, 0, 77, 5, + 2, 0, 78, 5, 2, 0, 79, 5, 4, 0, 80, 5, 2, 0, 81, 5, 2, 0, 82, 5, 2, 0, 83, 5, 2, 0, 84, 5, 7, 0, 85, 5, + 7, 0, 67, 0, 34, 0, 86, 5, 0, 0, 87, 5,183, 0, 9, 0,183, 0, 0, 0,183, 0, 1, 0, 0, 0, 18, 0, 2, 0, 88, 5, + 2, 0, 89, 5, 2, 0, 90, 5, 2, 0, 87, 0, 7, 0, 91, 5, 7, 0, 67, 0,184, 0, 7, 0, 2, 0,205, 2, 2, 0, 68, 1, + 2, 0, 73, 3, 2, 0, 92, 5, 7, 0, 93, 5, 7, 0, 67, 0, 34, 0, 94, 5,185, 0, 5, 0, 7, 0, 95, 5, 0, 0, 15, 0, + 0, 0, 87, 0, 0, 0, 67, 0, 0, 0,225, 1,186, 0, 28, 0, 7, 0,141, 4, 7, 0,142, 4, 2, 0, 68, 1, 2, 0, 17, 0, + 2, 0, 96, 5, 2, 0, 97, 5, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4, +185, 0, 98, 5, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0,242, 0, 2, 0, 8, 5, 2, 0, 99, 5, + 2, 0,100, 5,184, 0,101, 5, 2, 0,102, 5, 2, 0, 10, 5, 2, 0, 13, 5, 2, 0, 14, 5, 7, 0,103, 5, 7, 0, 87, 0, +187, 0, 6, 0,187, 0, 0, 0,187, 0, 1, 0, 4, 0,238, 3, 0, 0,251, 3, 4, 0, 17, 0, 24, 0,104, 5,188, 0, 4, 0, +189, 0,105, 5, 9, 0,106, 5, 0, 0,107, 5, 4, 0, 88, 0,190, 0, 8, 0,188, 0,108, 5, 2, 0, 17, 0, 2, 0, 35, 0, + 2, 0,109, 5, 2, 0,110, 5, 2, 0,111, 5, 4, 0, 87, 0, 9, 0,112, 5,191, 0, 6, 0, 2, 0,104, 0, 2, 0,244, 3, + 2, 0,113, 5, 2, 0,199, 2, 4, 0, 17, 0, 7, 0,216, 2,192, 0, 14, 0, 2, 0, 17, 0, 2, 0,114, 5, 2, 0,115, 5, + 2, 0,116, 5,191, 0,117, 5, 9, 0,112, 5, 7, 0,118, 5, 7, 0, 54, 0, 4, 0,119, 5, 4, 0,120, 5, 4, 0,121, 5, + 4, 0,122, 5, 38, 0,116, 0, 24, 0,158, 0,193, 0, 4, 0,193, 0, 0, 0,193, 0, 1, 0, 0, 0,123, 5, 7, 0,124, 5, +194, 0, 14, 0,188, 0,108, 5, 4, 0, 88, 0, 4, 0,125, 5, 7, 0,126, 5, 7, 0,127, 5, 7, 0,128, 5, 4, 0,129, 5, + 4, 0,130, 5, 7, 0,131, 5, 7, 0,132, 5, 4, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 4, 0, 35, 0,195, 0, 7, 0, +188, 0,108, 5, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 34, 0, 4, 0,136, 5, 79, 0,137, 5, 9, 0,112, 5,196, 0, 82, 0, +195, 0,138, 5,195, 0,139, 5,194, 0, 93, 3, 7, 0,140, 5, 2, 0,141, 5, 2, 0,142, 5, 7, 0,143, 5, 7, 0,144, 5, + 2, 0,244, 3, 2, 0,145, 5, 7, 0,146, 5, 7, 0,147, 5, 7, 0,148, 5, 2, 0,149, 5, 2, 0,119, 5, 2, 0,150, 5, + 2, 0,151, 5, 2, 0,152, 5, 2, 0,153, 5, 7, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, 2, 0,157, 5, 2, 0,158, 5, + 2, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 2, 0,164, 5,190, 0,165, 5,192, 0,166, 5, + 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 2, 0,170, 5, 2, 0,171, 5, 0, 0,172, 5, 0, 0,173, 5, 0, 0,174, 5, + 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 2, 0,178, 5, 7, 0,179, 5, 7, 0,180, 5, 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, 2, 0,189, 5, 0, 0,190, 5, + 0, 0,191, 5, 0, 0,192, 5, 0, 0,193, 5, 24, 0,194, 5, 0, 0,195, 5, 0, 0,196, 5, 0, 0,197, 5, 0, 0,198, 5, + 0, 0,199, 5, 0, 0,200, 5, 0, 0,201, 5, 0, 0,202, 5, 0, 0,203, 5, 0, 0,204, 5, 2, 0,205, 5, 2, 0,206, 5, + 2, 0,207, 5, 2, 0,208, 5, 0, 0,209, 5, 0, 0, 97, 5, 4, 0,210, 5, 2, 0,211, 5, 2, 0, 87, 0, 4, 0,212, 5, + 7, 0,213, 5, 7, 0,214, 5,197, 0, 8, 0, 4, 0,215, 5, 4, 0,216, 5, 4, 0,217, 5, 4, 0,218, 5, 4, 0,219, 5, + 4, 0,220, 5, 4, 0, 51, 0, 4, 0,118, 2,198, 0, 4, 0, 7, 0,221, 5, 0, 0,222, 5, 0, 0,223, 5, 2, 0, 17, 0, +199, 0, 4, 0, 7, 0,224, 5, 4, 0, 17, 0, 4, 0,225, 5, 4, 0, 54, 0, 38, 0, 44, 0, 19, 0, 29, 0, 31, 0, 72, 0, + 24, 0,104, 5,174, 0,226, 5, 38, 0,227, 5, 12, 0,228, 5,175, 0,229, 5, 24, 0,230, 5, 7, 0,231, 5, 7, 0,232, 5, + 7, 0,233, 5, 7, 0,234, 5, 4, 0,127, 3, 4, 0,235, 5, 4, 0,236, 5, 4, 0,237, 5, 4, 0, 30, 5, 2, 0, 17, 0, + 2, 0, 62, 1, 52, 0, 57, 1,200, 0,238, 5,196, 0,239, 5,201, 0,240, 5,182, 0,176, 0,180, 0,241, 5, 12, 0, 98, 0, + 12, 0,242, 5, 9, 0,243, 5, 9, 0,244, 5, 9, 0,245, 5, 9, 0,246, 5,202, 0,247, 5, 2, 0,248, 5, 2, 0,249, 5, + 2, 0,243, 0, 2, 0,250, 5, 4, 0,251, 5, 4, 0,252, 5, 12, 0,253, 5,185, 0, 98, 5,186, 0,254, 5,198, 0,255, 5, +157, 0,106, 3,199, 0, 0, 6,203, 0, 11, 0,203, 0, 0, 0,203, 0, 1, 0, 39, 0,234, 0, 37, 0, 56, 1, 7, 0, 82, 2, + 7, 0, 83, 2, 7, 0,104, 0, 7, 0, 1, 6, 2, 0, 2, 6, 2, 0, 17, 0, 7, 0, 67, 0,204, 0, 38, 0, 7, 0, 3, 6, + 7, 0, 4, 6, 7, 0, 5, 6, 7, 0, 6, 6, 7, 0, 7, 6, 7, 0, 8, 6, 7, 0, 9, 6, 7, 0, 10, 6, 7, 0, 11, 6, + 7, 0, 75, 1, 7, 0, 12, 6, 7, 0, 13, 6, 7, 0, 14, 6, 7, 0, 15, 6, 7, 0,165, 0, 2, 0, 16, 6, 2, 0, 17, 6, + 4, 0, 35, 0, 2, 0, 18, 6, 2, 0, 19, 6, 2, 0, 20, 6, 2, 0, 2, 6, 7, 0, 21, 6, 7, 0, 22, 6, 62, 0, 23, 6, +157, 0,106, 3,204, 0, 24, 6,205, 0, 25, 6,206, 0, 26, 6,207, 0, 27, 6,208, 0, 28, 6,209, 0, 29, 6, 7, 0, 30, 6, + 2, 0, 31, 6, 2, 0, 32, 6, 7, 0, 33, 6, 7, 0, 34, 6, 7, 0, 35, 6,210, 0, 55, 0,211, 0, 0, 0,211, 0, 1, 0, + 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, 7, 0, 11, 6, 7, 0, 75, 1, 7, 0, 87, 0, 4, 0, 40, 6, + 2, 0, 20, 6, 2, 0, 2, 6, 24, 0,104, 5, 24, 0, 41, 6, 12, 0, 42, 6,203, 0, 43, 6,210, 0, 24, 6, 0, 0, 44, 6, + 4, 0,127, 3, 4, 0,235, 5, 2, 0, 45, 6, 2, 0, 46, 6, 2, 0, 47, 6, 2, 0, 48, 6, 2, 0,225, 1, 2, 0, 17, 0, + 2, 0, 17, 2, 2, 0, 49, 6, 7, 0,109, 0, 7, 0, 50, 6, 7, 0, 33, 6, 7, 0, 51, 6, 7, 0, 52, 6, 7, 0,165, 0, + 7, 0,231, 5, 2, 0, 53, 6, 2, 0, 30, 5, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 2, 0, 58, 6, + 2, 0, 59, 6, 2, 0, 60, 6, 2, 0, 17, 6, 12, 0, 61, 6, 12, 0, 62, 6, 12, 0, 63, 6, 2, 0, 64, 6, 2, 0,132, 2, + 2, 0, 65, 6, 0, 0, 66, 6, 0, 0, 67, 6, 9, 0, 68, 6,157, 0,106, 3,212, 0, 24, 0, 16, 0, 34, 0, 16, 0, 61, 0, + 15, 0, 69, 6, 15, 0, 70, 6, 15, 0, 71, 6, 7, 0, 72, 6, 7, 0, 73, 6, 7, 0, 74, 6, 7, 0, 75, 6, 2, 0, 76, 6, + 2, 0, 77, 6, 2, 0, 78, 6, 2, 0, 79, 6, 2, 0, 80, 6, 2, 0, 17, 0, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 83, 6, + 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 48, 6, 7, 0, 86, 6, 4, 0, 87, 6, 4, 0, 88, 6,211, 0, 6, 0,211, 0, 0, 0, +211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,213, 0, 8, 0,211, 0, 0, 0,211, 0, 1, 0, + 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, 0, 0, 89, 6, 0, 0,175, 0,214, 0, 14, 0,211, 0, 0, 0, +211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6,215, 0, 91, 6, 12, 0, 92, 6, + 2, 0, 68, 1, 2, 0, 93, 6, 4, 0, 17, 0, 7, 0, 94, 6, 4, 0, 48, 6,216, 0, 21, 0,211, 0, 0, 0,211, 0, 1, 0, + 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,205, 0, 25, 6,212, 0, 90, 6, 2, 0, 95, 6, 2, 0, 96, 6, + 2, 0, 97, 6, 2, 0, 98, 6, 2, 0, 81, 6, 2, 0, 99, 6, 2, 0,100, 6, 0, 0, 17, 0, 0, 0, 35, 0, 9, 0, 58, 2, + 4, 0,101, 6, 4, 0,102, 6, 19, 0,103, 6,217, 0, 18, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, + 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6, 7, 0, 82, 2, 7, 0, 83, 2, 2, 0, 95, 6, 2, 0,104, 6, 2, 0,105, 6, + 2, 0,106, 6, 4, 0, 17, 0, 7, 0,107, 6, 4, 0, 2, 6, 4, 0, 35, 0,157, 0,106, 3,218, 0, 16, 0, 0, 0,108, 6, + 0, 0,109, 6, 0, 0,110, 6, 0, 0,111, 6, 0, 0,112, 6, 0, 0,113, 6, 4, 0,114, 6, 4, 0,115, 6, 4, 0,116, 6, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,117, 6, 2, 0,118, 6, 2, 0,168, 1, 2, 0,119, 6, 0, 0,120, 6,219, 0, 16, 0, +211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 4, 0,121, 6,218, 0,122, 6,220, 0,123, 6, 12, 0,124, 6, + 12, 0,125, 6,221, 0,126, 6,209, 0,127, 6,222, 0,128, 6, 2, 0,129, 6, 2, 0,130, 6, 2, 0,131, 6, 2, 0, 67, 0, +223, 0, 15, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6, + 12, 0,132, 6,224, 0,133, 6, 0, 0,134, 6,225, 0,135, 6, 2, 0, 17, 0, 2, 0,136, 6, 2, 0,137, 6, 2, 0,138, 6, +226, 0, 25, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 4, 0, 17, 0, 39, 0,224, 2, 37, 0, 56, 1, + 55, 0,139, 6,227, 0,140, 6,228, 0,141, 6,157, 0,106, 3, 7, 0,142, 6, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0,107, 6, + 7, 0,143, 6, 7, 0,144, 6, 2, 0,145, 6, 2, 0,146, 6, 2, 0,147, 6, 2, 0,148, 6, 0, 0,149, 6, 0, 0,150, 6, + 0, 0,151, 6, 0, 0, 48, 6,229, 0, 11, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, + 2, 0, 39, 6, 2, 0, 93, 6, 2, 0, 17, 0, 4, 0, 35, 0,215, 0, 91, 6,212, 0, 90, 6,230, 0, 31, 0,211, 0, 0, 0, +211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, 34, 0,152, 6, 4, 0,153, 6, 4, 0,154, 6, + 2, 0, 88, 0, 2, 0,155, 6, 2, 0,156, 6, 0, 0,157, 6, 0, 0,158, 6, 4, 0,159, 6, 4, 0,160, 6, 4, 0,161, 6, + 2, 0,162, 6, 2, 0,163, 6, 2, 0,164, 6, 2, 0,165, 6, 7, 0,166, 6, 15, 0,167, 6, 15, 0,168, 6, 4, 0,169, 6, + 4, 0,170, 6, 0, 0,171, 6, 0, 0,172, 6, 2, 0,173, 6, 0, 0,185, 2, 9, 0,174, 6,231, 0, 10, 0, 19, 0, 29, 0, + 9, 0,175, 6, 9, 0,176, 6, 9, 0,177, 6, 9, 0,178, 6, 9, 0,179, 6, 4, 0, 88, 0, 4, 0,180, 6, 0, 0,181, 6, + 0, 0,182, 6,232, 0, 10, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6,231, 0,183, 6, + 2, 0, 88, 0, 2, 0,155, 6, 4, 0, 87, 0, 9, 0,184, 6,233, 0, 3, 0,233, 0, 0, 0,233, 0, 1, 0, 7, 0,185, 6, +234, 0, 11, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6,212, 0, 90, 6, 12, 0,186, 6, + 4, 0,187, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,188, 6,235, 0, 28, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, + 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6, 19, 0,189, 6, 19, 0, 78, 0, 2, 0, 17, 0, 2, 0,155, 6, + 7, 0,190, 6, 9, 0,191, 6, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0,107, 6, 7, 0, 35, 6, 7, 0,192, 6, 7, 0,193, 6, + 52, 0, 57, 1, 52, 0,194, 6, 4, 0,195, 6, 2, 0,196, 6, 2, 0,197, 6, 2, 0,243, 0, 2, 0, 97, 5, 12, 0,198, 6, +157, 0,106, 3,236, 0, 10, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, + 2, 0, 17, 0, 2, 0,136, 3, 4, 0, 35, 0,157, 0,106, 3,237, 0, 42, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, + 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6,220, 0,123, 6, 0, 0,199, 6, 0, 0,109, 6, 0, 0,110, 6, + 2, 0, 15, 0, 2, 0,200, 6, 2, 0, 17, 0, 2, 0,117, 6, 9, 0,191, 6, 4, 0,114, 6, 4, 0,201, 6, 4, 0,202, 6, + 4, 0,203, 6, 15, 0,204, 6, 15, 0,205, 6, 7, 0,206, 6, 7, 0,207, 6, 7, 0,208, 6, 7, 0,190, 6, 2, 0,209, 6, + 2, 0,233, 0, 2, 0,168, 1, 2, 0,210, 6, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,211, 6, 2, 0,212, 6, 9, 0,213, 6, + 9, 0,214, 6, 9, 0,215, 6, 9, 0,216, 6, 9, 0,217, 6, 2, 0,218, 6, 0, 0,219, 6, 49, 0,220, 6,238, 0, 7, 0, +238, 0, 0, 0,238, 0, 1, 0, 4, 0,221, 6, 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,222, 6, 4, 0, 15, 0,239, 0, 14, 0, +211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6, 4, 0,156, 6, 4, 0, 35, 0, + 12, 0,223, 6, 12, 0,224, 6, 0, 0,225, 6, 0, 0,226, 6, 4, 0,227, 6, 4, 0,228, 6,240, 0, 6, 0,211, 0, 0, 0, +211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 4, 0, 35, 0, 0, 0,229, 6,241, 0, 15, 0,211, 0, 0, 0,211, 0, 1, 0, + 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6,242, 0,230, 6,212, 0, 90, 6,243, 0,231, 6, 2, 0, 68, 1, 2, 0,232, 6, + 2, 0, 82, 2, 2, 0, 83, 2, 2, 0, 17, 0, 2, 0,147, 6, 4, 0, 67, 0,244, 0, 7, 0,244, 0, 0, 0,244, 0, 1, 0, + 0, 0,233, 6, 2, 0,234, 6, 2, 0,235, 6, 2, 0,236, 6, 2, 0, 35, 0,245, 0, 12, 0, 2, 0,235, 6, 2, 0,237, 6, + 2, 0,238, 6, 0, 0,185, 2, 2, 0,239, 6, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6, 2, 0,243, 6, 2, 0, 81, 6, + 7, 0,244, 6, 7, 0,245, 6,246, 0, 18, 0,246, 0, 0, 0,246, 0, 1, 0, 0, 0,251, 3,245, 0,246, 6,245, 0,247, 6, +245, 0,248, 6,245, 0,249, 6, 7, 0,250, 6, 2, 0,251, 6, 2, 0,252, 6, 2, 0,253, 6, 2, 0,254, 6, 2, 0,255, 6, + 2, 0, 0, 7, 2, 0, 1, 7, 2, 0, 2, 7, 2, 0, 3, 7, 2, 0, 4, 7,247, 0, 10, 0, 0, 0, 5, 7, 0, 0, 6, 7, + 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 2, 0, 11, 7, 2, 0, 12, 7, 2, 0, 13, 7, 2, 0, 14, 7, +248, 0, 8, 0, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 7, 0, 1, 6, + 7, 0, 35, 0,249, 0, 18, 0,247, 0, 21, 7,247, 0, 22, 7,247, 0, 23, 7,247, 0, 24, 7,247, 0, 25, 7,247, 0, 26, 7, +247, 0, 27, 7,247, 0, 28, 7,247, 0, 29, 7,247, 0, 30, 7,247, 0, 31, 7,247, 0, 32, 7,247, 0, 33, 7,247, 0, 34, 7, +247, 0, 35, 7,247, 0, 36, 7,248, 0, 37, 7, 0, 0, 38, 7,250, 0, 97, 0, 0, 0, 39, 7, 0, 0, 40, 7, 0, 0, 9, 7, + 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, + 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, + 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, + 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, + 0, 0, 73, 7, 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, + 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, + 0, 0, 89, 7, 0, 0, 90, 7, 0, 0, 91, 7, 0, 0, 92, 7, 0, 0, 93, 7, 0, 0, 94, 7, 0, 0, 95, 7, 0, 0, 96, 7, + 0, 0, 97, 7, 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 0, 0,104, 7, + 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, + 0, 0,113, 7, 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 0, 0,119, 7, 0, 0,120, 7, + 0, 0,121, 7, 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, 0, 0,125, 7, 0, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, + 0, 0,129, 7, 0, 0,130, 7, 0, 0,131, 7, 0, 0,132, 7, 0, 0,133, 7, 0, 0,134, 7,251, 0, 5, 0, 0, 0,135, 7, + 0, 0, 63, 7, 0, 0, 65, 7, 2, 0, 17, 0, 2, 0, 35, 0,252, 0, 25, 0,252, 0, 0, 0,252, 0, 1, 0, 0, 0, 18, 0, +249, 0,136, 7,250, 0,137, 7,250, 0,138, 7,250, 0,139, 7,250, 0,140, 7,250, 0,141, 7,250, 0,142, 7,250, 0,143, 7, +250, 0,144, 7,250, 0,145, 7,250, 0,146, 7,250, 0,147, 7,250, 0,148, 7,250, 0,149, 7,250, 0,150, 7,250, 0,151, 7, +250, 0,152, 7,250, 0,153, 7,250, 0,154, 7,251, 0,155, 7, 4, 0,156, 7, 4, 0, 35, 0,253, 0, 3, 0,253, 0, 0, 0, +253, 0, 1, 0, 0, 0,157, 7,254, 0, 5, 0, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,131, 2, 7, 0,158, 7, 7, 0, 32, 2, +255, 0, 90, 0, 4, 0, 17, 0, 4, 0,159, 7, 4, 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, 4, 0,171, 7, 2, 0,172, 7, + 2, 0,173, 7, 2, 0,174, 7, 2, 0,175, 7, 4, 0,176, 7, 4, 0,177, 7, 4, 0,178, 7, 4, 0,179, 7, 2, 0,180, 7, + 2, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, 4, 0,186, 7, 4, 0,223, 6, 4, 0,187, 7, + 2, 0,188, 7, 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, 12, 0,192, 7, 12, 0,193, 7, 12, 0,194, 7, 12, 0,195, 7, + 12, 0,196, 7, 0, 0,197, 7, 2, 0,198, 7, 2, 0,199, 7, 2, 0,200, 7, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, + 2, 0,204, 7, 2, 0,205, 7,254, 0,206, 7, 2, 0,207, 7, 2, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, + 2, 0,212, 7, 2, 0,213, 7, 2, 0,214, 7, 4, 0,215, 7, 4, 0,216, 7, 2, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, + 2, 0,220, 7, 2, 0,221, 7, 2, 0,222, 7, 2, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 2, 0,226, 7, 2, 0,227, 7, + 2, 0,228, 7, 2, 0,229, 7, 2, 0,230, 7, 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0, 97, 5, 0, 0,234, 7, + 0, 0,235, 7, 7, 0,236, 7, 2, 0,170, 5, 2, 0,171, 5, 2, 0,237, 7, 2, 0,238, 7, 7, 0,239, 7, 47, 0,240, 7, + 7, 0,241, 7, 4, 0,225, 1, 0, 0,242, 7, 0, 1, 24, 0, 19, 0, 29, 0, 12, 0,243, 7, 12, 0,244, 7, 12, 0,245, 7, + 12, 0, 36, 6, 38, 0,116, 0, 38, 0,246, 7, 4, 0,247, 7, 4, 0, 87, 0, 2, 0,248, 7, 2, 0,249, 7, 2, 0,250, 7, + 2, 0,251, 7, 2, 0,252, 7, 2, 0,253, 7, 2, 0,254, 7, 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 1, 8, 2, 0, 2, 8, + 2, 0, 35, 0,209, 0, 3, 8, 9, 0, 4, 8, 2, 0, 5, 8, 1, 1, 5, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 6, 8, + 13, 0, 7, 8, 4, 0, 17, 0, 2, 1, 7, 0, 2, 1, 0, 0, 2, 1, 1, 0, 1, 1, 8, 8, 1, 1, 9, 8, 2, 0, 36, 5, + 2, 0, 17, 0, 4, 0, 35, 0, 3, 1, 25, 0, 3, 1, 0, 0, 3, 1, 1, 0, 4, 1, 10, 8, 5, 1,128, 6, 0, 0, 11, 8, + 0, 0, 12, 8, 0, 0, 13, 8, 2, 0, 14, 8, 2, 0, 15, 8, 2, 0, 16, 8, 2, 0, 17, 8, 2, 0, 18, 8, 2, 0, 35, 0, + 2, 0, 17, 0, 2, 0, 19, 8, 2, 0, 20, 8, 2, 0, 21, 8, 4, 0, 22, 8, 3, 1, 23, 8, 9, 0, 24, 8, 4, 0, 25, 8, + 4, 0, 26, 8, 4, 0, 27, 8, 4, 0, 28, 8, 0, 0, 29, 8,242, 0, 22, 0,242, 0, 0, 0,242, 0, 1, 0, 1, 1, 8, 8, + 1, 1, 9, 8, 1, 1, 30, 8, 1, 1, 31, 8, 0, 1, 32, 8, 15, 0, 49, 0, 0, 0, 37, 6, 0, 0, 33, 8, 2, 0, 82, 6, + 2, 0, 83, 6, 2, 0, 34, 8, 2, 0, 35, 0, 2, 0,252, 7, 2, 0,222, 6, 2, 0, 17, 0, 6, 1, 10, 8, 12, 0, 35, 8, + 12, 0, 36, 6, 12, 0, 36, 8, 12, 0, 37, 8, 7, 1, 24, 0, 7, 1, 0, 0, 7, 1, 1, 0,212, 0, 90, 6, 15, 0, 38, 8, + 15, 0, 39, 8, 2, 0, 82, 6, 2, 0, 83, 6, 2, 0, 40, 8, 2, 0, 41, 8, 2, 0, 42, 8, 2, 0, 17, 0, 7, 0, 78, 2, + 2, 0, 16, 8, 2, 0, 17, 8, 2, 0,251, 7, 2, 0, 43, 8, 2, 0, 0, 8, 2, 0, 97, 5, 8, 1, 10, 8, 12, 0, 44, 8, + 12, 0, 45, 8, 12, 0, 36, 8, 0, 0, 46, 8, 9, 0, 47, 8, 9, 1, 14, 0, 0, 0, 48, 8, 2, 0, 49, 8, 2, 0, 50, 8, + 2, 0, 51, 8, 2, 0, 52, 8, 2, 0, 22, 5, 2, 0, 17, 5, 0, 1, 53, 8, 38, 0, 54, 8, 4, 0, 55, 8, 4, 0, 56, 8, + 4, 0, 57, 8, 4, 0, 35, 0, 0, 0, 58, 8, 10, 1, 3, 0, 0, 0, 59, 8, 4, 0, 60, 8, 4, 0, 61, 8, 11, 1, 4, 0, + 4, 0,153, 6, 4, 0, 62, 8, 4, 0,159, 6, 4, 0, 63, 8, 12, 1, 2, 0, 4, 0, 64, 8, 4, 0, 65, 8, 13, 1, 5, 0, + 7, 0, 66, 8, 7, 0, 67, 8, 7, 0, 68, 8, 4, 0, 17, 0, 4, 0, 35, 0, 14, 1, 6, 0, 0, 0, 69, 8, 0, 0,110, 6, + 41, 0,129, 0, 2, 0,104, 0, 2, 0, 21, 5, 4, 0, 35, 0, 15, 1, 14, 0, 15, 1, 0, 0, 15, 1, 1, 0, 4, 0, 54, 0, + 4, 0, 21, 0, 4, 0, 26, 0, 4, 0, 70, 8, 4, 0, 71, 8, 4, 0, 72, 8, 10, 1, 73, 8, 0, 0, 69, 8, 14, 1,100, 3, + 11, 1, 74, 8, 12, 1, 75, 8, 13, 1, 76, 8, 16, 1, 12, 0, 0, 0,249, 1, 9, 0,219, 0, 0, 0,220, 0, 4, 0,223, 0, + 4, 0,231, 0, 9, 0,224, 0, 7, 0,226, 0, 7, 0,227, 0, 9, 0, 77, 8, 9, 0, 78, 8, 9, 0,228, 0, 9, 0,230, 0, + 17, 1, 48, 0, 17, 1, 0, 0, 17, 1, 1, 0, 9, 0, 79, 8, 9, 0, 24, 0, 0, 0, 25, 0, 4, 0, 17, 0, 4, 0, 15, 0, + 4, 0, 21, 0, 4, 0, 85, 0, 4, 0, 80, 8, 4, 0, 81, 8, 4, 0, 71, 8, 4, 0, 72, 8, 4, 0, 82, 8, 4, 0,242, 0, + 4, 0, 83, 8, 4, 0, 84, 8, 7, 0, 85, 8, 7, 0, 35, 0, 7, 0, 86, 8, 7, 0, 87, 8, 4, 0,120, 0, 4, 0, 88, 8, + 15, 1, 89, 8, 28, 0, 77, 0, 38, 0,116, 0, 24, 0, 90, 8, 41, 0,129, 0, 7, 0, 91, 8, 7, 0, 92, 8, 16, 1, 58, 1, + 17, 1, 93, 8, 17, 1, 94, 8, 17, 1, 95, 8, 12, 0, 96, 8,243, 0,231, 6, 9, 0, 97, 8, 7, 0, 5, 4, 7, 0, 98, 8, + 7, 0, 99, 8, 4, 0,100, 8, 4, 0,101, 8, 7, 0,102, 8, 9, 0,103, 8, 4, 0,104, 8, 4, 0,105, 8, 4, 0,106, 8, + 7, 0,107, 8, 18, 1, 4, 0, 18, 1, 0, 0, 18, 1, 1, 0, 12, 0,108, 8, 17, 1,109, 8,200, 0, 11, 0, 12, 0,110, 8, + 12, 0, 96, 8, 12, 0,111, 8, 17, 1,112, 8, 0, 0,113, 8, 0, 0,114, 8, 4, 0,115, 8, 4, 0,116, 8, 4, 0,117, 8, + 4, 0, 35, 0, 16, 0,118, 8, 19, 1, 4, 0, 7, 0,119, 8, 7, 0, 73, 3, 2, 0,120, 8, 2, 0,121, 8, 20, 1, 6, 0, + 7, 0,122, 8, 7, 0,123, 8, 7, 0,124, 8, 7, 0,125, 8, 4, 0,126, 8, 4, 0,127, 8, 21, 1, 13, 0, 7, 0,128, 8, + 7, 0,129, 8, 7, 0,130, 8, 7, 0,131, 8, 7, 0,132, 8, 7, 0,133, 8, 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, + 7, 0,137, 8, 4, 0,230, 2, 4, 0,138, 8, 4, 0,139, 8, 22, 1, 2, 0, 7, 0, 95, 5, 7, 0, 35, 0, 23, 1, 5, 0, + 7, 0,140, 8, 7, 0,141, 8, 4, 0, 88, 0, 4, 0,186, 2, 4, 0,142, 8, 24, 1, 6, 0, 24, 1, 0, 0, 24, 1, 1, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,143, 8, 2, 0, 54, 0, 25, 1, 8, 0, 25, 1, 0, 0, 25, 1, 1, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 2, 0,143, 8, 2, 0, 54, 0, 7, 0, 21, 0, 7, 0,120, 0, 26, 1, 45, 0, 26, 1, 0, 0, 26, 1, 1, 0, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,143, 8, 2, 0,238, 0, 2, 0, 47, 4, 2, 0,144, 8, 7, 0,145, 8, 7, 0, 86, 0, + 7, 0,243, 2, 4, 0,146, 8, 4, 0, 79, 0, 4, 0,188, 2, 7, 0,147, 8, 7, 0,148, 8, 7, 0,149, 8, 7, 0,150, 8, + 7, 0,151, 8, 7, 0,152, 8, 7, 0,240, 2, 7, 0, 55, 1, 7, 0,153, 8, 7, 0,154, 8, 7, 0, 35, 0, 7, 0,155, 8, + 7, 0,156, 8, 7, 0,157, 8, 2, 0,158, 8, 2, 0,159, 8, 2, 0,160, 8, 2, 0,161, 8, 2, 0,162, 8, 2, 0,163, 8, + 2, 0,164, 8, 2, 0,165, 8, 2, 0, 17, 2, 2, 0,166, 8, 2, 0, 14, 2, 2, 0,167, 8, 0, 0,168, 8, 0, 0,169, 8, + 7, 0,236, 0, 27, 1,170, 8, 58, 0,228, 1, 28, 1, 16, 0, 28, 1, 0, 0, 28, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, + 2, 0,143, 8, 2, 0,238, 0, 7, 0,235, 2, 7, 0,236, 2, 7, 0,237, 2, 7, 0, 67, 2, 7, 0,238, 2, 7, 0,239, 2, + 7, 0,171, 8, 7, 0,240, 2, 7, 0,242, 2, 7, 0,243, 2,225, 0, 5, 0, 2, 0, 15, 0, 2, 0,172, 8, 2, 0, 17, 0, + 2, 0,173, 8, 19, 0,189, 6,224, 0, 3, 0, 4, 0, 66, 0, 4, 0,174, 8,225, 0, 2, 0, 29, 1, 7, 0, 29, 1, 0, 0, + 29, 1, 1, 0, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 20, 0, 9, 0,175, 8, 30, 1, 5, 0, 0, 0, 18, 0, + 7, 0, 75, 1, 7, 0,176, 8, 4, 0,177, 8, 4, 0, 35, 0, 31, 1, 4, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 87, 0, + 2, 0, 67, 0, 32, 1, 4, 0, 0, 0, 18, 0, 57, 0,178, 8, 7, 0, 75, 1, 7, 0, 35, 0, 33, 1, 6, 0, 2, 0,179, 8, + 2, 0,180, 8, 2, 0, 15, 0, 2, 0,181, 8, 0, 0,182, 8, 0, 0,183, 8, 34, 1, 5, 0, 4, 0, 15, 0, 4, 0, 35, 0, + 0, 0, 18, 0, 0, 0,184, 8, 0, 0,185, 8, 35, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 36, 1, 4, 0, + 2, 0,186, 8, 2, 0,187, 8, 2, 0, 17, 0, 2, 0, 35, 0, 37, 1, 6, 0, 0, 0, 18, 0, 0, 0,188, 8, 2, 0,189, 8, + 2, 0,240, 2, 2, 0, 68, 1, 2, 0, 67, 0, 38, 1, 5, 0, 0, 0, 18, 0, 7, 0, 73, 3, 7, 0,138, 4, 2, 0, 17, 0, + 2, 0,200, 2, 39, 1, 3, 0, 0, 0, 18, 0, 4, 0,188, 2, 4, 0,186, 8, 40, 1, 7, 0, 0, 0, 18, 0, 7, 0,138, 4, + 0, 0,190, 8, 0, 0,191, 8, 2, 0, 68, 1, 2, 0, 87, 0, 4, 0,192, 8, 41, 1, 4, 0, 0, 0,193, 8, 0, 0,194, 8, + 4, 0, 15, 0, 7, 0,204, 2, 42, 1, 3, 0, 24, 0,195, 8, 0, 0,196, 8, 0, 0,197, 8, 43, 1, 18, 0, 43, 1, 0, 0, + 43, 1, 1, 0, 2, 0, 15, 0, 2, 0,198, 8, 2, 0, 17, 0, 2, 0,199, 8, 2, 0,200, 8, 2, 0,201, 8, 2, 0, 87, 0, + 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, 0, 44, 1,202, 8, 24, 0, 42, 0, 2, 0,113, 5, 2, 0, 98, 8, 2, 0,203, 8, + 2, 0, 35, 0, 45, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0,204, 8, 2, 0, 17, 0, 2, 0,200, 2, 2, 0,205, 8, + 4, 0,206, 8, 4, 0,207, 8, 4, 0,208, 8, 4, 0,209, 8, 4, 0,210, 8, 46, 1, 1, 0, 0, 0,211, 8, 47, 1, 4, 0, + 34, 0,152, 6, 0, 0,157, 7, 4, 0, 68, 1, 4, 0, 17, 0, 44, 1, 18, 0, 44, 1, 0, 0, 44, 1, 1, 0, 44, 1,212, 8, + 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,213, 8, 2, 0,201, 8, 2, 0,198, 8, 2, 0,214, 8, 2, 0, 67, 0, 2, 0,225, 1, + 0, 0, 18, 0, 9, 0, 2, 0, 48, 1,202, 8, 43, 1,215, 8, 2, 0, 13, 0, 2, 0,216, 8, 4, 0,217, 8, 49, 1, 3, 0, + 4, 0,214, 2, 4, 0, 35, 0, 24, 0, 42, 0, 50, 1, 12, 0,155, 0,218, 8, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,145, 8, + 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,219, 8, 2, 0,220, 8, 2, 0,221, 8, 2, 0,222, 8, 2, 0,223, 8, 7, 0,224, 8, + 51, 1, 8, 0, 7, 0,225, 8, 7, 0,226, 8, 7, 0,227, 8, 7, 0,228, 8, 7, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8, + 7, 0,232, 8, 52, 1, 13, 0, 2, 0, 17, 0, 2, 0,232, 6, 4, 0, 87, 0, 4, 0, 67, 0, 2, 0,233, 8, 7, 0, 5, 4, + 7, 0,234, 8,243, 0,231, 6, 51, 1,235, 8, 2, 0, 15, 0, 2, 0, 30, 5, 2, 0,251, 5, 2, 0,236, 8, 53, 1, 11, 0, + 4, 0,214, 2, 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,237, 8, 0, 0, 18, 0, 7, 0,238, 8, 7, 0,239, 8, + 7, 0,144, 3, 2, 0,240, 8, 2, 0,241, 8, 54, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0, 4, 0, 35, 0, 38, 0,116, 0, + 24, 0,104, 5, 55, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,184, 8, 24, 0, 42, 0, 56, 1, 13, 0, + 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,198, 8, 2, 0,145, 3, 7, 0,242, 8, 7, 0,243, 8, 7, 0, 97, 5, 7, 0,157, 3, + 7, 0,115, 3, 7, 0,118, 3, 7, 0,244, 8, 7, 0,245, 8, 24, 0,246, 8, 57, 1, 10, 0, 2, 0, 17, 0, 2, 0, 15, 0, + 7, 0,145, 8, 7, 0, 86, 0, 0, 0, 18, 0, 0, 0,219, 8, 2, 0, 87, 0, 2, 0, 67, 0, 2, 0,225, 1, 2, 0, 30, 5, + 58, 1, 8, 0, 24, 0, 42, 0, 7, 0,237, 2, 7, 0,247, 8, 7, 0,248, 8, 7, 0, 35, 0, 2, 0, 87, 0, 2, 0,200, 2, + 7, 0, 67, 0, 59, 1, 12, 0, 2, 0, 15, 0, 2, 0, 68, 1, 2, 0, 17, 0, 2, 0,240, 2, 2, 0,214, 2, 2, 0,249, 8, + 4, 0, 35, 0, 7, 0,250, 8, 7, 0,251, 8, 7, 0,252, 8, 7, 0,253, 8, 0, 0,254, 8, 60, 1, 9, 0, 2, 0, 17, 0, + 2, 0, 15, 0, 4, 0,145, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0, 97, 5, 2, 0, 61, 0, 2, 0,255, 8, 2, 0, 0, 9, + 61, 1, 7, 0, 4, 0,188, 2, 4, 0, 1, 9, 4, 0, 2, 9, 4, 0, 3, 9, 7, 0, 4, 9, 7, 0, 5, 9, 0, 0,190, 8, + 62, 1, 7, 0, 0, 0, 6, 9, 24, 0, 7, 9, 0, 0,196, 8, 2, 0, 8, 9, 2, 0, 87, 0, 4, 0, 67, 0, 0, 0,197, 8, + 63, 1, 6, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,145, 8, 4, 0, 86, 0, 0, 0, 9, 9, 0, 0, 10, 9, 64, 1, 1, 0, + 4, 0, 17, 0, 65, 1, 6, 0, 0, 0, 90, 0, 2, 0, 15, 0, 2, 0, 17, 0, 4, 0, 11, 9, 7, 0, 12, 9, 34, 0,152, 6, + 66, 1, 4, 0, 0, 0,157, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 67, 1, 2, 0, 4, 0, 15, 0, 4, 0, 71, 6, + 68, 1, 6, 0, 0, 0,193, 8, 0, 0,194, 8, 4, 0, 15, 0, 7, 0, 25, 2, 24, 0, 50, 3, 24, 0, 13, 9, 48, 1, 10, 0, + 48, 1, 0, 0, 48, 1, 1, 0, 48, 1,212, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,198, 8, 2, 0, 14, 9, 0, 0, 18, 0, + 9, 0, 2, 0, 24, 0, 42, 0,243, 0, 16, 0, 19, 0, 29, 0, 0, 0, 32, 0, 35, 0,144, 0, 9, 0,219, 0, 35, 0, 15, 9, + 28, 0, 77, 0, 7, 0, 5, 4, 7, 0, 16, 9, 7, 0,234, 8, 7, 0,225, 8, 7, 0,226, 8, 7, 0, 17, 9, 4, 0, 88, 0, + 4, 0, 35, 0, 9, 0, 18, 9, 9, 0, 19, 9, 69, 1, 6, 0, 69, 1, 0, 0, 69, 1, 1, 0, 24, 0, 42, 0, 9, 0, 20, 9, + 2, 0,243, 0, 0, 0,185, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 21, 9, 4, 0,125, 0, 7, 0, 22, 9, 70, 1, 28, 0, + 70, 1, 0, 0, 70, 1, 1, 0, 18, 0, 23, 9, 70, 1, 36, 0, 12, 0, 24, 9, 0, 0, 18, 0, 7, 0, 25, 9, 7, 0, 26, 9, + 7, 0, 27, 9, 7, 0, 28, 9, 4, 0, 17, 0, 7, 0, 29, 9, 7, 0, 30, 9, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 75, 1, + 7, 0, 25, 2, 7, 0, 33, 9, 7, 0,186, 2, 7, 0, 34, 9, 7, 0, 35, 9, 7, 0, 36, 9, 7, 0, 37, 9, 7, 0, 38, 9, + 7, 0,166, 0, 4, 0,125, 0, 2, 0,150, 5, 2, 0, 4, 7, 71, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0, 12, 0, 39, 9, + 12, 0, 40, 9, 12, 0, 41, 9, 70, 1, 42, 9, 9, 0, 43, 9, 9, 0, 44, 9, 4, 0, 17, 0, 4, 0, 45, 6, 2, 0,244, 2, + 2, 0,101, 6, 4, 0, 45, 9, 4, 0,125, 0, 4, 0, 46, 9, 2, 0, 47, 9, 2, 0, 48, 9, 2, 0, 49, 9, 2, 0, 50, 9, + 4, 0, 51, 9, 4, 0, 52, 9, 4, 0, 53, 9, 4, 0, 54, 9, 4, 0, 55, 9, 4, 0, 56, 9, 72, 1, 2, 0, 7, 0,145, 2, + 4, 0, 17, 0,159, 0, 5, 0, 72, 1, 57, 9, 4, 0,186, 2, 4, 0, 58, 9, 4, 0, 59, 9, 4, 0, 17, 0,158, 0, 16, 0, + 4, 0, 60, 9, 4, 0, 61, 9, 4, 0, 62, 9, 4, 0, 63, 9, 2, 0, 64, 9, 2, 0, 65, 9, 2, 0, 66, 9, 2, 0,243, 0, + 2, 0, 67, 9, 2, 0, 68, 9, 2, 0, 69, 9, 2, 0, 70, 9, 4, 0, 71, 9, 4, 0, 72, 9, 4, 0, 73, 9, 4, 0, 74, 9, + 73, 1, 41, 0, 73, 1, 0, 0, 73, 1, 1, 0, 18, 0, 23, 9, 12, 0,171, 3, 0, 0, 18, 0, 2, 0, 17, 0, 2, 0, 75, 9, + 2, 0, 76, 9, 2, 0, 77, 9, 2, 0,130, 3, 2, 0, 78, 9, 4, 0, 65, 2, 4, 0, 53, 9, 4, 0, 54, 9, 70, 1, 79, 9, + 73, 1, 36, 0, 73, 1, 80, 9, 12, 0, 81, 9,159, 0,108, 3, 24, 0, 82, 9, 73, 1, 83, 9, 7, 0, 63, 1, 7, 0,166, 0, + 7, 0, 84, 9, 7, 0, 4, 2, 7, 0,120, 3, 7, 0,122, 3, 2, 0,153, 3, 2, 0, 35, 0, 7, 0, 85, 9, 7, 0, 86, 9, + 7, 0,125, 3, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0, 93, 9, + 7, 0, 94, 9, 7, 0, 58, 2,156, 0, 16, 0, 12, 0, 95, 9, 68, 0, 96, 9, 2, 0, 17, 0, 2, 0, 35, 0, 4, 0, 97, 9, + 4, 0, 87, 0, 7, 0, 94, 2, 7, 0, 98, 9, 7, 0, 99, 9, 12, 0,100, 9, 4, 0,101, 9, 4, 0,102, 9, 9, 0,103, 9, + 9, 0,104, 9,158, 0,107, 3, 0, 0,105, 9, 74, 1, 1, 0, 4, 0,102, 9, 75, 1, 12, 0, 4, 0,102, 9, 7, 0,210, 8, + 2, 0,106, 9, 2, 0,107, 9, 7, 0,108, 9, 7, 0,109, 9, 2, 0,110, 9, 2, 0, 17, 0, 7, 0,111, 9, 7, 0,112, 9, + 7, 0,113, 9, 7, 0,114, 9, 76, 1, 7, 0, 76, 1, 0, 0, 76, 1, 1, 0, 12, 0,115, 9, 4, 0, 17, 0, 4, 0,116, 9, + 0, 0,251, 3,251, 0,117, 9,155, 0, 7, 0, 19, 0, 29, 0, 12, 0,118, 9, 12, 0, 95, 9, 12, 0,119, 9, 12, 0, 98, 0, + 4, 0, 17, 0, 4, 0,120, 9,215, 0, 5, 0, 19, 0,121, 9, 12, 0, 95, 9, 58, 0,122, 9, 4, 0,123, 9, 4, 0, 17, 0, + 77, 1, 13, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 36, 6, 4, 0, 37, 6, 7, 0, 38, 6, 2, 0, 39, 6,212, 0, 90, 6, +155, 0,103, 3,215, 0,124, 9, 0, 0, 68, 1, 0, 0, 93, 6, 2, 0, 17, 0, 7, 0,125, 9, 78, 1, 8, 0, 78, 1, 0, 0, + 78, 1, 1, 0, 76, 1,126, 9, 28, 0, 77, 0, 12, 0,109, 3, 4, 0, 17, 0, 0, 0, 18, 0, 4, 0,249, 7, 79, 1, 5, 0, + 79, 1, 0, 0, 79, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,127, 9, 80, 1, 14, 0, 80, 1, 0, 0, 80, 1, 1, 0, + 9, 0, 2, 0, 2, 0, 15, 0, 2, 0, 17, 0, 0, 0,128, 9, 0, 0,129, 9, 0, 0,127, 9, 7, 0,130, 9, 7, 0,131, 9, + 4, 0, 35, 0, 28, 0, 77, 0, 7, 0,132, 9, 7, 0,133, 9, 81, 1, 9, 0, 81, 1, 0, 0, 81, 1, 1, 0, 24, 0,134, 9, + 0, 0,247, 2, 7, 0,135, 9, 2, 0,136, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,137, 9, 82, 1, 7, 0, 34, 0,152, 6, + 18, 0, 23, 9, 4, 0, 17, 0, 4, 0,138, 9, 12, 0,139, 9, 24, 0,134, 9, 0, 0,247, 2, 83, 1, 15, 0, 24, 0,134, 9, + 2, 0,140, 9, 2, 0, 17, 0, 2, 0,141, 9, 2, 0,142, 9, 0, 0,247, 2, 24, 0,143, 9, 0, 0,144, 9, 7, 0,145, 9, + 7, 0, 25, 2, 7, 0,146, 9, 7, 0,147, 9, 2, 0, 15, 0, 2, 0, 68, 1, 7, 0, 75, 1, 84, 1, 6, 0, 24, 0,134, 9, + 7, 0, 57, 9, 2, 0,148, 9, 2, 0,149, 9, 2, 0, 17, 0, 2, 0,150, 9, 85, 1, 6, 0, 24, 0,134, 9, 4, 0,151, 9, + 4, 0,152, 9, 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,247, 2, 86, 1, 4, 0, 24, 0,134, 9, 4, 0, 17, 0, 4, 0,151, 9, + 0, 0,247, 2, 87, 1, 4, 0, 24, 0,134, 9, 4, 0, 17, 0, 4, 0,151, 9, 0, 0,247, 2, 88, 1, 4, 0, 24, 0,134, 9, + 4, 0, 17, 0, 4, 0,151, 9, 0, 0,247, 2, 89, 1, 2, 0, 4, 0, 17, 0, 7, 0, 5, 4, 90, 1, 2, 0, 24, 0,134, 9, + 0, 0,247, 2, 91, 1, 10, 0, 24, 0,134, 9, 4, 0,153, 9, 7, 0,119, 0, 4, 0, 17, 0, 2, 0,150, 6, 2, 0,154, 9, + 2, 0, 87, 0, 2, 0, 67, 0, 7, 0,155, 9, 0, 0,247, 2, 92, 1, 10, 0, 24, 0,134, 9, 2, 0, 15, 0, 2, 0, 55, 4, + 4, 0, 85, 0, 4, 0, 86, 0, 7, 0,247, 8, 7, 0,248, 8, 4, 0, 35, 0,155, 0,218, 8, 0, 0,247, 2, 93, 1, 4, 0, + 24, 0,134, 9, 4, 0,131, 3, 4, 0,156, 9, 0, 0,247, 2, 94, 1, 4, 0, 24, 0,134, 9, 4, 0,131, 3, 4, 0, 35, 0, + 0, 0,247, 2, 95, 1, 6, 0, 24, 0,134, 9, 7, 0,119, 0, 7, 0, 62, 3, 4, 0,157, 9, 2, 0,131, 3, 2, 0,132, 3, + 96, 1, 6, 0, 24, 0,134, 9, 4, 0,158, 9, 4, 0,159, 9, 7, 0,160, 9, 7, 0,161, 9, 0, 0,247, 2, 97, 1, 16, 0, + 24, 0,134, 9, 24, 0, 80, 9, 4, 0, 15, 0, 7, 0,162, 9, 7, 0,163, 9, 7, 0,164, 9, 7, 0,165, 9, 7, 0,166, 9, + 7, 0,167, 9, 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, 0, + 98, 1, 3, 0, 24, 0,134, 9, 4, 0, 17, 0, 4, 0, 17, 2, 99, 1, 5, 0, 24, 0,134, 9, 4, 0, 17, 0, 4, 0, 35, 0, + 7, 0,171, 9, 0, 0,247, 2,100, 1, 10, 0, 24, 0,134, 9, 0, 0,247, 2, 2, 0,172, 9, 2, 0,173, 9, 0, 0,174, 9, + 0, 0,175, 9, 7, 0,176, 9, 7, 0,177, 9, 7, 0,178, 9, 7, 0,179, 9,101, 1, 5, 0, 24, 0,134, 9, 0, 0,247, 2, + 7, 0,194, 2, 2, 0,180, 9, 2, 0, 17, 0,102, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, + 7, 0,181, 9, 7, 0,182, 9, 2, 0, 17, 0, 2, 0, 17, 2,103, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, + 7, 0, 10, 0, 7, 0,181, 9, 7, 0,182, 9, 2, 0, 17, 0, 2, 0, 17, 2,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, + 7, 0, 9, 0, 7, 0, 10, 0, 7, 0,181, 9, 7, 0,182, 9, 2, 0, 17, 0, 2, 0, 17, 2,105, 1, 7, 0, 24, 0,134, 9, + 0, 0,247, 2, 7, 0, 75, 1, 7, 0, 84, 1, 2, 0, 17, 0, 2, 0, 68, 1, 4, 0, 35, 0,106, 1, 5, 0, 24, 0, 50, 3, + 7, 0, 75, 1, 2, 0, 54, 3, 0, 0, 56, 3, 0, 0,183, 9,107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 15, 0, + 2, 0, 17, 0, 0, 0,184, 9, 7, 0, 18, 1, 7, 0, 19, 1, 2, 0,115, 9, 2, 0,185, 9, 24, 0, 42, 0,108, 1, 22, 0, +108, 1, 0, 0,108, 1, 1, 0, 2, 0, 17, 0, 2, 0, 68, 1, 2, 0,186, 9, 2, 0,187, 9, 28, 0, 77, 0,155, 0,218, 8, + 24, 0,158, 0, 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,188, 9, 7, 0,189, 9, 7, 0,190, 9, 7, 0,191, 9, 7, 0,233, 2, + 7, 0,192, 9, 7, 0,220, 8, 7, 0,193, 9, 0, 0,194, 9, 0, 0,195, 9, 12, 0,111, 3,109, 1, 8, 0, 7, 0, 32, 2, + 7, 0,247, 8, 7, 0,248, 8, 9, 0, 2, 0, 2, 0,196, 9, 2, 0,197, 9, 2, 0,198, 9, 2, 0,199, 9,110, 1, 19, 0, +110, 1, 0, 0,110, 1, 1, 0,110, 1,200, 9, 0, 0, 18, 0,109, 1,201, 9, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,202, 9, + 2, 0,203, 9,109, 1,204, 9, 2, 0,205, 9, 2, 0, 87, 0, 7, 0,206, 9, 7, 0,207, 9, 4, 0,208, 9,110, 1,209, 9, + 4, 0,210, 9, 4, 0, 67, 0,111, 1,211, 9,112, 1, 4, 0, 0, 0,212, 9, 2, 0,213, 9, 2, 0,214, 9, 4, 0, 35, 0, +113, 1, 34, 0,113, 1, 0, 0,113, 1, 1, 0,113, 1,215, 9, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0, 70, 8, + 2, 0, 98, 8, 2, 0,216, 9, 2, 0,155, 6, 2, 0,205, 9, 2, 0,172, 8, 12, 0,213, 8, 12, 0,217, 9, 19, 0,189, 6, + 9, 0,218, 9, 7, 0,206, 9, 7, 0,207, 9, 7, 0, 67, 2, 7, 0,219, 9, 0, 0,220, 9, 2, 0,221, 9, 2, 0,222, 9, + 7, 0,223, 9, 7, 0,224, 9, 2, 0,225, 9, 2, 0,226, 9, 9, 0,227, 9, 16, 0,228, 9, 16, 0,229, 9, 16, 0,230, 9, +112, 1,145, 0,114, 1,231, 9,115, 1,232, 9,111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,113, 1,233, 9,113, 1,234, 9, +110, 1,235, 9,110, 1,236, 9, 4, 0, 17, 0, 4, 0, 35, 0, 52, 0, 23, 0, 19, 0, 29, 0, 31, 0, 72, 0,157, 0,106, 3, + 12, 0,237, 9, 12, 0,238, 9,109, 1,239, 9, 12, 0,240, 9, 4, 0, 15, 0, 4, 0,241, 9, 4, 0,242, 9, 4, 0,243, 9, + 4, 0, 17, 0, 4, 0, 35, 0, 12, 0,244, 9, 12, 0,213, 8, 12, 0,217, 9, 4, 0,245, 9, 9, 0,246, 9, 9, 0,247, 9, + 4, 0,248, 9, 9, 0,249, 9, 9, 0,250, 9, 9, 0,251, 9,116, 1, 6, 0, 4, 0,118, 0, 4, 0,120, 0, 4, 0,172, 8, + 0, 0,252, 9, 0, 0,253, 9, 2, 0, 35, 0,117, 1, 16, 0, 2, 0, 16, 8, 2, 0, 17, 8, 2, 0,254, 9, 2, 0,255, 9, + 2, 0, 0, 10, 2, 0, 65, 0, 2, 0,190, 6, 2, 0, 1, 10, 7, 0,232, 2, 7, 0, 2, 10, 7, 0, 3, 10, 2, 0, 90, 1, + 0, 0, 4, 10, 0, 0, 5, 10, 4, 0, 6, 10, 4, 0, 7, 10,118, 1, 9, 0, 7, 0, 8, 10, 7, 0, 9, 10, 7, 0, 17, 9, + 7, 0, 73, 3, 7, 0, 10, 10, 7, 0,107, 6, 2, 0, 71, 3, 0, 0, 11, 10, 0, 0, 35, 0,119, 1, 4, 0, 7, 0, 12, 10, + 7, 0, 13, 10, 2, 0, 71, 3, 2, 0, 35, 0,120, 1, 3, 0, 7, 0, 14, 10, 7, 0, 85, 8, 7, 0, 13, 0,121, 1, 7, 0, + 0, 0,249, 1, 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 21, 5, 2, 0,209, 4, 4, 0,120, 0, 4, 0, 53, 4,122, 1, 9, 0, + 7, 0, 15, 10, 7, 0, 16, 10, 7, 0, 17, 10, 7, 0, 78, 2, 7, 0, 18, 10, 7, 0, 19, 10, 7, 0, 20, 10, 2, 0, 21, 10, + 2, 0, 22, 10,123, 1, 8, 0, 2, 0, 23, 10, 2, 0, 24, 10, 2, 0, 25, 10, 2, 0, 26, 10, 7, 0, 27, 10, 7, 0, 28, 10, + 7, 0, 29, 10, 7, 0, 30, 10,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, 0, 0,160, 0, 0, 0, 31, 10, +126, 1, 1, 0, 0, 0, 18, 0,127, 1, 10, 0, 0, 0, 32, 10, 0, 0, 33, 10, 0, 0, 99, 6, 0, 0, 34, 10, 2, 0,254, 9, + 2, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0,192, 9,128, 1, 2, 0, 9, 0, 39, 10, 9, 0, 40, 10, +129, 1, 11, 0, 0, 0, 21, 5, 0, 0, 15, 0, 0, 0, 71, 3, 0, 0, 73, 3, 0, 0, 41, 10, 0, 0,104, 0, 0, 0,157, 2, + 7, 0, 42, 10, 7, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10,130, 1, 8, 0, 7, 0,179, 8, 7, 0,119, 0, 7, 0, 5, 10, + 7, 0,150, 2, 7, 0, 46, 10, 7, 0,232, 0, 7, 0, 47, 10, 4, 0, 15, 0,131, 1, 4, 0, 2, 0, 48, 10, 2, 0, 49, 10, + 2, 0, 50, 10, 2, 0, 35, 0,132, 1, 8, 0, 7, 0, 51, 10, 7, 0,194, 2, 7, 0, 52, 10, 7, 0, 66, 8, 7, 0, 67, 8, + 7, 0, 68, 8, 7, 0, 53, 10, 7, 0, 54, 10,133, 1, 6, 0, 2, 0, 55, 10, 2, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, + 7, 0, 59, 10, 7, 0, 60, 10,134, 1, 2, 0, 7, 0, 61, 10, 7, 0, 62, 10,135, 1, 1, 0, 4, 0, 35, 0,136, 1, 1, 0, + 4, 0, 35, 0,137, 1, 2, 0, 4, 0, 63, 10, 4, 0,200, 2,138, 1, 4, 0, 4, 0, 64, 10, 4, 0,242, 0, 4, 0, 65, 10, + 4, 0, 35, 0,139, 1, 2, 0, 4, 0, 66, 10, 4, 0, 67, 10,140, 1, 2, 0, 4, 0, 15, 0, 4, 0, 65, 10,141, 1, 6, 0, + 4, 0, 15, 0, 4, 0, 68, 10, 4, 0, 65, 10, 4, 0, 64, 10, 4, 0,242, 0, 4, 0, 35, 0,142, 1, 2, 0, 4, 0,242, 0, + 4, 0, 35, 0,143, 1, 4, 0, 4, 0, 15, 0, 4, 0, 65, 10, 4, 0, 64, 10, 4, 0, 35, 0,144, 1, 2, 0, 4, 0, 65, 10, + 4, 0, 69, 10,145, 1, 4, 0, 4, 0, 15, 0, 4, 0, 68, 10, 4, 0, 65, 10, 4, 0, 64, 10,146, 1, 1, 0, 0, 0, 18, 0, +147, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 70, 10,148, 1, 10, 0, 2, 0,239, 3, 2, 0, 17, 0, + 7, 0,138, 4, 7, 0, 71, 10, 7, 0, 72, 10, 7, 0, 73, 10, 7, 0, 74, 10,147, 1, 75, 10,147, 1, 76, 10,147, 1, 77, 10, + 55, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 0, 78, 10, 4, 0, 79, 10, 16, 0, 80, 10, 16, 0, 81, 10,148, 1, 82, 10, + 7, 0, 83, 10, 7, 0, 84, 10, 7, 0, 85, 10, 7, 0, 86, 10,228, 0, 10, 0, 4, 0,115, 9, 4, 0, 87, 10, 7, 0, 88, 10, + 7, 0, 89, 10, 7, 0, 90, 10, 7, 0, 91, 10, 7, 0, 8, 0, 7, 0, 10, 0, 4, 0, 68, 1, 4, 0,237, 2,227, 0, 18, 0, + 4, 0,123, 0, 4, 0, 92, 10, 4, 0, 93, 10, 7, 0, 94, 10, 4, 0, 95, 10, 7, 0, 96, 10, 7, 0, 97, 10, 4, 0, 98, 10, + 7, 0, 99, 10, 4, 0,100, 10, 7, 0,101, 10,228, 0,102, 10, 7, 0,103, 10, 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, + 4, 0,107, 10, 4, 0, 35, 0,149, 1, 4, 0, 39, 0,224, 2, 7, 0,108, 10, 7, 0,157, 1, 7, 0, 35, 0,189, 0, 34, 0, + 19, 0, 29, 0,149, 1,109, 10, 55, 0, 75, 10, 43, 0,110, 10, 49, 0,111, 10, 22, 0,145, 0, 0, 0,112, 10, 7, 0,113, 10, + 2, 0, 1, 6, 2, 0,114, 10, 4, 0,104, 0, 4, 0, 17, 0, 7, 0,115, 10, 4, 0, 75, 2, 4, 0,116, 10, 7, 0,117, 10, + 7, 0,118, 10, 7, 0,119, 10, 7, 0,157, 1, 4, 0,120, 10, 7, 0,121, 10, 0, 0,122, 10, 0, 0,123, 10, 0, 0,124, 10, + 0, 0,125, 10, 7, 0,126, 10, 7, 0,127, 10, 7, 0,128, 10, 7, 0,237, 2, 7, 0,129, 10, 4, 0,130, 10, 7, 0,131, 10, + 7, 0,132, 10, 7, 0,133, 10,150, 1, 10, 0, 4, 0, 15, 0, 4, 0,119, 0, 4, 0, 17, 0, 4, 0,192, 3, 4, 0,134, 10, + 4, 0,135, 10, 4, 0,136, 10, 0, 0, 90, 0, 0, 0, 18, 0, 9, 0, 2, 0,151, 1, 1, 0, 0, 0, 58, 8, 84, 0, 7, 0, +150, 1,137, 10, 4, 0,138, 10, 4, 0,139, 10, 4, 0,140, 10, 4, 0, 35, 0, 9, 0,141, 10,151, 1,142, 10,152, 1, 5, 0, + 7, 0,145, 2, 7, 0,214, 2, 7, 0, 25, 2, 2, 0,121, 2, 2, 0, 35, 0,153, 1, 5, 0, 7, 0,145, 2, 7, 0,143, 10, + 7, 0,144, 10, 7, 0,145, 10, 7, 0,214, 2,154, 1, 5, 0, 24, 0,146, 10,155, 1, 20, 0, 7, 0,224, 5, 7, 0,147, 10, + 7, 0, 54, 0,156, 1, 3, 0, 7, 0,148, 10, 4, 0,149, 10, 4, 0,150, 10,157, 1, 7, 0, 4, 0,151, 10, 4, 0,152, 10, + 4, 0,153, 10, 7, 0,154, 10, 7, 0,155, 10, 7, 0,156, 10, 7, 0, 54, 0,158, 1, 8, 0,158, 1, 0, 0,158, 1, 1, 0, + 24, 0, 42, 0, 4, 0,251, 0, 2, 0, 17, 0, 2, 0, 68, 1, 7, 0,214, 2, 7, 0,187, 8,159, 1, 6, 0,159, 1, 0, 0, +159, 1, 1, 0, 24, 0, 42, 0, 2, 0,199, 2, 2, 0, 17, 0, 2, 0,157, 10,160, 1, 17, 0,153, 1,186, 3,153, 1,158, 10, +152, 1,159, 10,153, 1,170, 8,154, 1,160, 10, 4, 0, 79, 0, 7, 0,214, 2, 7, 0,243, 2, 7, 0,161, 10, 4, 0,151, 10, + 4, 0,162, 10, 7, 0,155, 10, 7, 0,156, 10, 7, 0,104, 0, 4, 0,163, 10, 2, 0, 17, 0, 2, 0,164, 10,161, 1, 15, 0, + 7, 0,247, 0, 7, 0,165, 10, 7, 0,148, 10, 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10, 7, 0,169, 10, 7, 0,170, 10, + 7, 0,171, 10, 7, 0,172, 10, 7, 0,173, 10, 7, 0,174, 10, 7, 0,175, 10, 4, 0, 17, 0, 4, 0,176, 10,162, 1,121, 0, + 19, 0, 29, 0, 31, 0, 72, 0,163, 1,177, 10,161, 1,178, 10,166, 0, 75, 4, 4, 0, 17, 0, 4, 0, 54, 0, 2, 0, 15, 0, + 2, 0,172, 9, 2, 0,179, 10, 2, 0,103, 1, 2, 0,180, 10, 2, 0,153, 3, 2, 0,181, 10, 2, 0,182, 10, 2, 0,183, 10, + 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0,188, 10, 2, 0,189, 10, 2, 0,121, 5, 2, 0,190, 10, + 2, 0,191, 10, 2, 0,192, 10, 2, 0,193, 10, 2, 0,194, 10, 2, 0, 14, 2, 2, 0,163, 8, 2, 0,138, 8, 2, 0,195, 10, + 2, 0,196, 10, 2, 0,202, 3, 2, 0,203, 3, 2, 0,197, 10, 2, 0,198, 10, 2, 0,199, 10, 2, 0,200, 10, 7, 0,201, 10, + 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 2, 0, 70, 5, 2, 0,205, 10, 7, 0,206, 10, 7, 0,207, 10, 7, 0,208, 10, + 7, 0,145, 8, 7, 0, 86, 0, 7, 0,243, 2, 7, 0,151, 8, 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10, + 4, 0,146, 8, 4, 0,144, 8, 4, 0,213, 10, 4, 0,214, 10, 7, 0,147, 8, 7, 0,148, 8, 7, 0,149, 8, 7, 0,215, 10, + 7, 0,216, 10, 7, 0,217, 10, 7, 0,218, 10, 7, 0,219, 10, 7, 0,220, 10, 7, 0,221, 10, 7, 0,222, 10, 7, 0,223, 10, + 7, 0,144, 3, 7, 0,104, 0, 7, 0,224, 10, 7, 0,225, 10, 7, 0,226, 10, 7, 0,227, 10, 7, 0,205, 0, 7, 0,228, 10, + 4, 0,229, 10, 4, 0,230, 10, 7, 0,231, 10, 7, 0,232, 10, 7, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10, 7, 0,204, 0, + 7, 0,236, 10, 7, 0,229, 3, 7, 0,227, 3, 7, 0,228, 3, 7, 0,237, 10, 7, 0,238, 10, 7, 0,239, 10, 7, 0,240, 10, + 7, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, 7, 0,244, 10, 7, 0,245, 10, 7, 0,246, 10, 7, 0,247, 10, 7, 0,248, 10, + 7, 0,249, 10, 7, 0,250, 10, 7, 0,251, 10, 7, 0,252, 10, 7, 0,253, 10, 7, 0,254, 10, 4, 0,255, 10, 4, 0, 0, 11, + 43, 0,121, 1, 58, 0,176, 3, 12, 0, 1, 11, 58, 0, 2, 11, 24, 0, 3, 11, 24, 0, 4, 11, 28, 0, 77, 0,161, 0, 60, 1, +161, 0, 5, 11,140, 0, 50, 0,140, 0, 0, 0,140, 0, 1, 0,162, 1, 6, 11,160, 1, 7, 11,157, 1, 80, 9,169, 0, 1, 4, + 9, 0, 2, 4,164, 1, 8, 11,164, 1, 9, 11, 12, 0, 10, 11, 12, 0, 11, 11,125, 0, 12, 11,133, 0, 13, 11,133, 0, 14, 11, + 24, 0, 15, 11, 24, 0, 16, 11, 24, 0, 36, 0, 12, 0,139, 9, 0, 0, 18, 0, 7, 0,236, 0, 7, 0, 16, 3, 7, 0, 17, 11, + 7, 0, 18, 11, 4, 0,188, 2, 4, 0, 19, 11, 4, 0, 17, 0, 4, 0,146, 8, 4, 0, 20, 11, 4, 0, 21, 11, 4, 0, 22, 11, + 4, 0, 23, 11, 2, 0,243, 0, 2, 0, 24, 11, 2, 0, 25, 11, 2, 0, 26, 11, 0, 0, 27, 11, 2, 0, 28, 11, 2, 0, 29, 11, + 2, 0, 30, 11, 9, 0, 31, 11,129, 0, 74, 4, 12, 0, 1, 3, 12, 0, 32, 11,156, 1, 33, 11, 4, 0, 34, 11, 4, 0, 35, 11, +165, 1, 36, 11,131, 0, 13, 3,166, 1, 37, 11, 7, 0, 38, 11,127, 0, 37, 0,167, 1, 18, 9, 7, 0, 44, 4, 7, 0, 39, 11, + 7, 0, 40, 11, 7, 0,224, 5, 7, 0,154, 3, 7, 0,144, 3, 7, 0, 41, 11, 7, 0, 77, 2, 7, 0, 42, 11, 7, 0, 43, 11, + 7, 0, 44, 11, 7, 0, 45, 11, 7, 0, 46, 11, 7, 0, 47, 11, 7, 0, 45, 4, 7, 0, 48, 11, 7, 0, 49, 11, 7, 0, 50, 11, + 7, 0, 46, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 51, 11, 7, 0, 52, 11, 4, 0, 53, 11, 4, 0, 88, 0, 4, 0, 54, 11, + 4, 0, 55, 11, 2, 0, 56, 11, 2, 0, 57, 11, 2, 0, 58, 11, 2, 0, 59, 11, 2, 0, 60, 11, 2, 0, 61, 11, 2, 0, 62, 11, + 2, 0, 97, 5,166, 0, 75, 4,128, 0, 9, 0,167, 1, 63, 11, 7, 0, 64, 11, 7, 0, 65, 11, 7, 0,229, 1, 7, 0, 66, 11, + 4, 0, 88, 0, 2, 0, 67, 11, 2, 0, 68, 11, 58, 0,228, 1,168, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 3, 2, + 7, 0, 69, 11,169, 1, 6, 0,169, 1, 0, 0,169, 1, 1, 0,168, 1, 57, 9, 4, 0,249, 0, 2, 0, 70, 11, 2, 0, 17, 0, +170, 1, 5, 0,170, 1, 0, 0,170, 1, 1, 0, 12, 0, 71, 11, 4, 0, 72, 11, 4, 0, 17, 0,171, 1, 9, 0,171, 1, 0, 0, +171, 1, 1, 0, 12, 0,118, 0,170, 1, 73, 11, 4, 0, 17, 0, 2, 0, 70, 11, 2, 0, 74, 11, 7, 0, 89, 0, 0, 0, 75, 11, +157, 0, 6, 0, 19, 0, 29, 0, 12, 0, 38, 5, 4, 0, 17, 0, 2, 0, 76, 11, 2, 0, 77, 11, 9, 0, 78, 11,172, 1, 6, 0, + 12, 0, 79, 11, 4, 0, 80, 11, 4, 0, 81, 11, 4, 0, 17, 0, 4, 0, 35, 0,209, 0, 82, 11,173, 1, 17, 0, 19, 0, 29, 0, +174, 1, 83, 11,174, 1, 84, 11, 12, 0, 85, 11, 4, 0, 86, 11, 2, 0, 87, 11, 2, 0, 88, 11, 12, 0, 89, 11, 12, 0, 90, 11, +172, 1, 91, 11, 12, 0, 92, 11, 12, 0, 93, 11, 12, 0, 94, 11, 12, 0, 95, 11,175, 1, 96, 11, 12, 0, 97, 11,209, 0, 98, 11, +174, 1, 32, 0,174, 1, 0, 0,174, 1, 1, 0, 9, 0, 99, 11, 4, 0,250, 7, 2, 0,100, 11, 2, 0, 35, 0, 0, 1,101, 11, + 0, 1,102, 11, 0, 0,103, 11, 2, 0,104, 11, 2, 0,105, 11, 2, 0, 16, 8, 2, 0, 17, 8, 2, 0,106, 11, 2, 0,107, 11, + 2, 0,192, 3, 2, 0,222, 6, 2, 0,108, 11, 2, 0,109, 11, 2, 0,110, 11, 2, 0, 67, 0,176, 1,111, 11,177, 1,112, 11, +178, 1,113, 11, 4, 0,114, 11, 4, 0,115, 11, 9, 0,116, 11, 12, 0, 90, 11, 12, 0, 36, 8, 12, 0,117, 11, 12, 0,118, 11, + 12, 0,119, 11,179, 1, 17, 0,179, 1, 0, 0,179, 1, 1, 0, 0, 0,120, 11, 18, 0, 28, 0, 2, 0,121, 11, 2, 0, 15, 0, + 2, 0, 13, 0, 2, 0,122, 11, 2, 0,123, 11, 2, 0,124, 11, 2, 0,125, 11, 2, 0,126, 11, 2, 0, 17, 0, 2, 0,127, 11, + 2, 0, 29, 0, 2, 0, 35, 0,180, 1,128, 11,181, 1, 10, 0,181, 1, 0, 0,181, 1, 1, 0, 12, 0,129, 11, 0, 0,120, 11, + 2, 0,130, 11, 2, 0,131, 11, 2, 0, 17, 0, 2, 0,132, 11, 4, 0,133, 11, 9, 0,134, 11,175, 1, 7, 0,175, 1, 0, 0, +175, 1, 1, 0, 0, 0,120, 11, 0, 0,135, 11, 12, 0,195, 7, 4, 0,136, 11, 4, 0, 17, 0,221, 0, 14, 0,221, 0, 0, 0, +221, 0, 1, 0, 0, 0,120, 11, 18, 0, 28, 0,182, 1, 10, 8, 9, 0,137, 11, 9, 0,138, 11,180, 1,128, 11,172, 1,139, 11, + 12, 0,140, 11,221, 0,141, 11, 5, 1,128, 6, 2, 0, 17, 0, 2, 0, 97, 5,183, 1, 8, 0,183, 1, 0, 0,183, 1, 1, 0, + 9, 0, 2, 0, 9, 0,142, 11, 0, 0,251, 3, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,143, 11,184, 1, 5, 0, 7, 0,144, 11, + 4, 0,145, 11, 4, 0,146, 11, 4, 0, 68, 1, 4, 0, 17, 0,185, 1, 6, 0, 7, 0,147, 11, 7, 0,148, 11, 7, 0,149, 11, + 7, 0,150, 11, 4, 0, 15, 0, 4, 0, 17, 0,186, 1, 5, 0, 7, 0,247, 8, 7, 0,248, 8, 7, 0,214, 2, 2, 0, 28, 2, + 2, 0, 29, 2,187, 1, 5, 0,186, 1, 2, 0, 4, 0, 51, 0, 7, 0,151, 11, 7, 0,247, 8, 7, 0,248, 8,188, 1, 4, 0, + 2, 0,152, 11, 2, 0,153, 11, 2, 0,154, 11, 2, 0,155, 11,189, 1, 2, 0, 34, 0,183, 6, 18, 0, 23, 9,190, 1, 3, 0, + 16, 0,156, 11, 4, 0, 17, 0, 4, 0, 35, 0,191, 1, 6, 0, 7, 0,104, 0, 7, 0,216, 2, 7, 0,157, 11, 7, 0, 35, 0, + 2, 0,242, 0, 2, 0,158, 11,192, 1, 5, 0, 7, 0,159, 11, 7, 0,119, 0, 7, 0, 58, 9, 7, 0, 59, 9, 4, 0, 17, 0, +193, 1, 6, 0, 19, 0,189, 6, 0, 0,160, 11, 0, 0,161, 11, 2, 0,162, 11, 2, 0, 17, 0, 4, 0,163, 11,194, 1, 7, 0, +194, 1, 0, 0,194, 1, 1, 0, 0, 0,251, 3,193, 1,164, 11, 2, 0,165, 11, 2, 0, 15, 0, 7, 0, 58, 0,195, 1, 7, 0, + 12, 0,166, 11, 0, 0,167, 11, 9, 0,168, 11, 7, 0, 58, 0, 7, 0,143, 11, 4, 0, 15, 0, 4, 0, 17, 0,196, 1, 3, 0, + 7, 0,169, 11, 4, 0, 17, 0, 4, 0, 35, 0,197, 1, 15, 0,197, 1, 0, 0,197, 1, 1, 0, 76, 1,126, 9,195, 1, 59, 0, + 12, 0,111, 3, 27, 0, 47, 0,196, 1,170, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 11, 1, 4, 0,171, 11, + 0, 0,160, 11, 4, 0,172, 11, 7, 0,173, 11,198, 1, 2, 0, 0, 0,174, 11, 0, 0,175, 11,199, 1, 4, 0,199, 1, 0, 0, +199, 1, 1, 0,155, 0, 50, 3, 12, 0,176, 11,200, 1, 24, 0,200, 1, 0, 0,200, 1, 1, 0, 12, 0,177, 11,155, 0,218, 8, +199, 1,178, 11, 12, 0,179, 11, 12, 0,111, 3, 0, 0,251, 3, 7, 0,143, 11, 7, 0,180, 11, 7, 0, 85, 0, 7, 0, 86, 0, + 7, 0,188, 9, 7, 0,189, 9, 7, 0,233, 2, 7, 0,192, 9, 7, 0,220, 8, 7, 0,193, 9, 2, 0,181, 11, 2, 0,182, 11, + 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,201, 1, 6, 0,201, 1, 0, 0,201, 1, 1, 0, 12, 0,177, 11, + 4, 0, 17, 0, 4, 0,149, 2, 0, 0,251, 3,202, 1, 11, 0,202, 1, 0, 0,202, 1, 1, 0, 19, 0,189, 6, 0, 0,183, 11, + 4, 0,163, 11, 2, 0,184, 11, 2, 0, 35, 0, 0, 0,160, 11, 4, 0,171, 11, 2, 0, 17, 0, 2, 0,185, 11,203, 1, 8, 0, +203, 1, 0, 0,203, 1, 1, 0, 12, 0,186, 11, 0, 0,251, 3, 0, 0,187, 11, 2, 0, 17, 0, 2, 0,185, 11, 4, 0,188, 11, +204, 1, 5, 0,204, 1, 0, 0,204, 1, 1, 0, 0, 0,160, 11, 4, 0,171, 11, 7, 0,204, 2, 31, 0, 12, 0,155, 0,103, 3, +155, 0,189, 11,199, 1,178, 11, 12, 0,190, 11,200, 1,191, 11, 12, 0,192, 11, 12, 0,193, 11, 4, 0, 17, 0, 4, 0,243, 0, + 2, 0,194, 11, 2, 0,195, 11, 7, 0,196, 11,205, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,206, 1, 5, 0,206, 1, 0, 0, +206, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,207, 1, 6, 0,206, 1,197, 11, 24, 0, 42, 0, 4, 0,198, 11, + 7, 0,199, 11, 4, 0,200, 11, 4, 0,115, 9,208, 1, 3, 0,206, 1,197, 11, 4, 0,198, 11, 7, 0,201, 11,209, 1, 8, 0, +206, 1,197, 11, 24, 0, 42, 0, 7, 0, 63, 1, 7, 0,202, 11, 7, 0, 16, 3, 7, 0, 17, 9, 4, 0,198, 11, 4, 0,203, 11, +210, 1, 5, 0,206, 1,197, 11, 7, 0,204, 11, 7, 0, 98, 8, 7, 0,239, 2, 7, 0, 54, 0,211, 1, 3, 0,206, 1,197, 11, + 7, 0, 17, 9, 7, 0,205, 11,155, 1, 4, 0, 7, 0,206, 11, 7, 0,225, 10, 2, 0,207, 11, 2, 0, 68, 1,212, 1, 14, 0, +212, 1, 0, 0,212, 1, 1, 0, 12, 0,208, 11, 12, 0,209, 11, 12, 0,210, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0, + 4, 0,211, 11, 7, 0,212, 11, 4, 0,200, 11, 4, 0,115, 9, 7, 0, 5, 4, 7, 0,241, 2,163, 1, 23, 0, 4, 0,198, 11, + 4, 0,213, 11, 7, 0,214, 11, 7, 0,237, 2, 7, 0,215, 11, 7, 0,234, 8, 7, 0,206, 11, 7, 0,216, 11, 7, 0,216, 2, + 7, 0, 94, 10, 7, 0,138, 4, 7, 0,217, 11, 7, 0,218, 11, 7, 0,219, 11, 7, 0,220, 11, 7, 0,221, 11, 7, 0,222, 11, + 7, 0,223, 11, 7, 0,224, 11, 7, 0,225, 11, 7, 0,226, 11, 7, 0,227, 11, 12, 0,228, 11,113, 0, 40, 0,112, 0,229, 11, +213, 1,178, 10, 58, 0,230, 11, 58, 0, 2, 11, 58, 0,231, 11,214, 1,232, 11, 40, 0,159, 0, 40, 0,233, 11, 40, 0,234, 11, + 7, 0,235, 11, 7, 0,236, 11, 7, 0,237, 11, 7, 0,238, 11, 7, 0,239, 11, 7, 0,249, 7, 7, 0,240, 11, 7, 0,157, 1, + 7, 0,241, 11, 4, 0,242, 11, 4, 0,243, 11, 4, 0,244, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,245, 11, 2, 0,246, 11, + 2, 0,247, 11, 4, 0,248, 11, 7, 0,216, 2, 4, 0,249, 11, 7, 0,250, 11, 4, 0,251, 11, 4, 0,252, 11, 4, 0,253, 11, +129, 0,254, 11, 12, 0,255, 11,166, 0, 75, 4, 4, 0, 0, 12, 7, 0, 1, 12, 7, 0, 2, 12, 4, 0, 67, 0,114, 0, 12, 0, +112, 0,229, 11,140, 0, 36, 3, 7, 0,124, 1, 7, 0,249, 7, 7, 0, 3, 12, 7, 0, 4, 12, 7, 0, 5, 12, 2, 0, 6, 12, + 2, 0, 7, 12, 2, 0, 8, 12, 2, 0, 15, 0, 4, 0, 88, 0,115, 0, 13, 0,112, 0,229, 11,131, 0, 13, 3,133, 0, 15, 3, + 7, 0, 57, 9, 7, 0, 9, 12, 7, 0, 10, 12, 7, 0, 65, 1, 7, 0, 11, 12, 4, 0,148, 9, 4, 0, 9, 3, 2, 0, 15, 0, + 2, 0, 35, 0, 4, 0, 67, 0, 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/include/ED_node.h b/source/blender/editors/include/ED_node.h index 829ad3217a9..e2cfed1ecb2 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -33,12 +33,14 @@ #ifndef ED_NODE_H #define ED_NODE_H +struct ID; +struct Main; struct Material; struct Scene; struct Tex; struct bContext; struct bNode; -struct ID; +struct bNodeTree; /* drawnode.c */ void ED_init_node_butfuncs(void); @@ -48,11 +50,14 @@ 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); /* node_edit.c */ -void ED_node_shader_default(struct Material *ma); +void ED_node_shader_default(struct ID *id); void ED_node_composit_default(struct Scene *sce); void ED_node_texture_default(struct Tex *tex); -/* node ops.c */ +/* node_layout.c */ +void ED_node_tree_auto_layout(struct bNodeTree *ntree, struct bNode *root); + +/* node_ops.c */ void ED_operatormacros_node(void); #endif /* ED_NODE_H */ diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h index 651c298ad5e..623d5dff8a4 100644 --- a/source/blender/editors/include/ED_render.h +++ b/source/blender/editors/include/ED_render.h @@ -44,6 +44,8 @@ void ED_operatortypes_render(void); /* render_shading.c */ void ED_render_id_flush_update(struct Main *bmain, struct ID *id); +void ED_render_engine_changed(struct Main *bmain); +void ED_render_engine_update_tagged(struct Main *bmain); /* render_preview.c */ diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index e0f34410673..b8d92f44025 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -66,6 +66,9 @@ struct uiWidgetColors; struct Tex; struct MTex; struct ImBuf; +struct bNodeTree; +struct bNode; +struct bNodeSocket; typedef struct uiBut uiBut; typedef struct uiBlock uiBlock; @@ -156,6 +159,7 @@ typedef struct uiLayout uiLayout; #define UI_BUT_VEC_SIZE_LOCK (1<<30) /* used to flag if color hsv-circle should keep luminance */ #define UI_BUT_COLOR_CUBIC (1<<31) /* cubic saturation for the color wheel */ +#define UI_BUT_NODE_LINK (1<<31) /* node link drawing hint for pulldowns */ #define UI_PANEL_WIDTH 340 #define UI_COMPACT_PANEL_WIDTH 160 @@ -716,6 +720,8 @@ void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *te void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C); void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, int rows, int maxrows, int type); +void uiTemplateNodeLink(uiLayout *layout, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); /* items */ void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname); diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt index cf0c903e0a5..264909a325b 100644 --- a/source/blender/editors/interface/CMakeLists.txt +++ b/source/blender/editors/interface/CMakeLists.txt @@ -43,6 +43,7 @@ set(SRC interface_icons.c interface_layout.c interface_ops.c + interface_node.c interface_panel.c interface_regions.c interface_style.c diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index cf11effc57b..bab8557bc08 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -300,7 +300,7 @@ static void ui_apply_but_func(bContext *C, uiBut *but) after->func_arg3= but->func_arg3; after->funcN= but->funcN; - after->func_argN= but->func_argN; + after->func_argN= MEM_dupallocN(but->func_argN); after->rename_func= but->rename_func; after->rename_arg1= but->rename_arg1; @@ -404,6 +404,8 @@ static void ui_apply_but_funcs_after(bContext *C) after.func(C, after.func_arg1, after.func_arg2); if(after.funcN) after.funcN(C, after.func_argN, after.func_arg2); + if(after.func_argN) + MEM_freeN(after.func_argN); if(after.handle_func) after.handle_func(C, after.handle_func_arg, after.retval); @@ -5528,10 +5530,6 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men int closer; if(!menu->dotowards) return 0; - if((block->direction & UI_TOP) || (block->direction & UI_DOWN)) { - menu->dotowards= 0; - return menu->dotowards; - } /* verify that we are moving towards one of the edges of the * menu block, in other words, in the triangle formed by the diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 9507a1a07f4..1b7bf0fcb6d 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -946,6 +946,7 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al int w, h; icon = BKE_icon_get(icon_id); + alpha *= 0.75f; if (icon==NULL) { if (G.f & G_DEBUG) diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 6cca689d115..27c21f39527 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -80,6 +80,7 @@ typedef enum { UI_WTYPE_MENU_RADIO, UI_WTYPE_MENU_ICON_RADIO, UI_WTYPE_MENU_POINTER_LINK, + UI_WTYPE_MENU_NODE_LINK, UI_WTYPE_PULLDOWN, UI_WTYPE_MENU_ITEM, diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 7dc27805b40..41f7997491d 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -418,6 +418,9 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in but->type= NUMSLI; } } + else if(subtype == PROP_DIRECTION) { + uiDefButR(block, BUT_NORMAL, 0, name, x, y, 100, 100, ptr, RNA_property_identifier(prop), 0, 0, 0, -1, -1, NULL); + } else { if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand) uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, 0, 0, w, UI_UNIT_Y); @@ -533,9 +536,6 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *n /* BUTTONS_OT_file_browse calls uiFileBrowseContextProperty */ but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL); } - else if(subtype == PROP_DIRECTION) { - uiDefButR(block, BUT_NORMAL, 0, name, x, y, 100, 100, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL); - } else if(flag & UI_ITEM_R_EVENT) { uiDefButR(block, KEYEVT, 0, name, x, y, w, h, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL); } diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c new file mode 100644 index 00000000000..3d0603206ee --- /dev/null +++ b/source/blender/editors/interface/interface_node.c @@ -0,0 +1,567 @@ +/* + * $Id$ + * + * ***** 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): Blender Foundation 2009. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/interface/interface_node.c + * \ingroup edinterface + */ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_node_types.h" +#include "DNA_screen_types.h" + +#include "BLI_listbase.h" +#include "BLI_string.h" +#include "BLI_utildefines.h" + +#include "BKE_context.h" +#include "BKE_depsgraph.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_node.h" + +#include "RNA_access.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "UI_interface.h" +#include "interface_intern.h" + +/************************* Node Link Menu **************************/ + +#define UI_NODE_LINK_ADD 0 +#define UI_NODE_LINK_DISCONNECT -1 +#define UI_NODE_LINK_REMOVE -2 + +typedef struct NodeLinkArg { + ID *id; + bNodeTree *ntree; + bNode *node; + bNodeSocket *sock; + + bNodeTree *ngroup; + int type; + int output; +} NodeLinkArg; + +static void ui_node_tag_recursive(bNode *node) +{ + bNodeSocket *input; + + if(node->flag & NODE_TEST) + return; /* in case of cycles */ + + node->flag |= NODE_TEST; + + for(input=node->inputs.first; input; input=input->next) + if(input->link) + ui_node_tag_recursive(input->link->fromnode); +} + +static void ui_node_clear_recursive(bNode *node) +{ + bNodeSocket *input; + + if(!(node->flag & NODE_TEST)) + return; /* in case of cycles */ + + node->flag &= ~NODE_TEST; + + for(input=node->inputs.first; input; input=input->next) + if(input->link) + ui_node_clear_recursive(input->link->fromnode); +} + +static void ntree_notify(bContext *C, ID *id, bNodeTree *ntree) +{ + if(ntree->type==NTREE_SHADER) + WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, id); + else if(ntree->type==NTREE_COMPOSIT) + WM_event_add_notifier(C, NC_SCENE|ND_NODES, id); + else if(ntree->type==NTREE_TEXTURE) + WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, id); + + DAG_id_tag_update(id, 0); +} + +static void ui_node_remove_linked(bNodeTree *ntree, bNode *rem_node) +{ + bNode *node, *next; + bNodeSocket *sock; + + /* tag linked nodes to be removed */ + for(node=ntree->nodes.first; node; node=node->next) + node->flag &= ~NODE_TEST; + + ui_node_tag_recursive(rem_node); + + /* clear tags on nodes that are still used by other nodes */ + for(node=ntree->nodes.first; node; node=node->next) + if(!(node->flag & NODE_TEST)) + for(sock=node->inputs.first; sock; sock=sock->next) + if(sock->link && sock->link->fromnode != rem_node) + ui_node_clear_recursive(sock->link->fromnode); + + /* remove nodes */ + for(node=ntree->nodes.first; node; node=next) { + next = node->next; + + if(node->flag & NODE_TEST) { + if(node->id) + node->id->us--; + nodeFreeNode(ntree, node); + } + } + + //node_tree_verify_groups(ntree); +} + +static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) +{ + if(sock->link) { + bNode *node = sock->link->fromnode; + + if(node->type == NODE_GROUP) + BLI_strncpy(name, node->id->name+2, UI_MAX_NAME_STR); + else + BLI_strncpy(name, node->typeinfo->name, UI_MAX_NAME_STR); + + if(node->inputs.first == NULL && + node->outputs.first != node->outputs.last && + !(node->typeinfo->flag & NODE_OPTIONS)) + BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", name, sock->link->fromsock->name); + } + else if(sock->type == SOCK_CLOSURE) + BLI_strncpy(name, "None", UI_MAX_NAME_STR); + else + BLI_strncpy(name, "Default", UI_MAX_NAME_STR); +} + +static void ui_node_link(bContext *C, void *arg_p, void *event_p) +{ + NodeLinkArg *arg = (NodeLinkArg*)arg_p; + ID *id = arg->id; + bNode *node_to = arg->node; + bNodeSocket *sock_to = arg->sock; + bNodeTree *ntree = arg->ntree; + bNode *node_from; + bNodeSocket *sock_from; + int event = GET_INT_FROM_POINTER(event_p); + + if(event == UI_NODE_LINK_DISCONNECT) { + /* disconnect */ + if(sock_to->link) + nodeRemLink(ntree, sock_to->link); + } + else if(event == UI_NODE_LINK_REMOVE) { + /* remove */ + if(sock_to->link) + ui_node_remove_linked(ntree, sock_to->link->fromnode); + } + else { + bNode *node_prev = NULL; + + /* unlink existing node */ + if(sock_to->link) { + node_prev = sock_to->link->fromnode; + nodeRemLink(ntree, sock_to->link); + } + + /* find existing node that we can use */ + for(node_from=ntree->nodes.first; node_from; node_from=node_from->next) + if(node_from->type == arg->type) + break; + + if(node_from) + if(!(node_from->inputs.first == NULL && !(node_from->typeinfo->flag & NODE_OPTIONS))) + node_from = NULL; + + /* add new node */ + if(!node_from) { + if(arg->ngroup) + node_from = nodeAddNodeType(ntree, NODE_GROUP, arg->ngroup, NULL); + else + node_from = nodeAddNodeType(ntree, arg->type, NULL, NULL); + + node_from->locx = node_to->locx - (node_from->typeinfo->width + 50); + node_from->locy = node_to->locy; + + if(node_from->id) + id_us_plus(node_from->id); + } + + /* add link */ + sock_from = BLI_findlink(&node_from->outputs, arg->output); + nodeAddLink(ntree, node_from, sock_from, node_to, sock_to); + + /* copy input sockets from previous node */ + if(node_prev && node_from != node_prev) { + bNodeSocket *sock_prev, *sock_from; + + for(sock_prev=node_prev->inputs.first; sock_prev; sock_prev=sock_prev->next) { + for(sock_from=node_from->inputs.first; sock_from; sock_from=sock_from->next) { + if(strcmp(sock_prev->name, sock_from->name) == 0 && sock_prev->type == sock_from->type) { + bNodeLink *link = sock_prev->link; + + if(link) { + nodeAddLink(ntree, link->fromnode, link->fromsock, node_from, sock_from); + nodeRemLink(ntree, link); + } + + memcpy(sock_from->ns.vec, sock_prev->ns.vec, sizeof(sock_from->ns.vec)); + } + } + } + + /* remove node */ + ui_node_remove_linked(ntree, node_prev); + } + + NodeTagChanged(ntree, node_from); + } + + NodeTagChanged(ntree, node_to); + ntreeSolveOrder(ntree); + + ntree_notify(C, id, ntree); +} + +static int ui_compatible_sockets(int typeA, int typeB) +{ + if(typeA == SOCK_CLOSURE || typeB == SOCK_CLOSURE) + return (typeA == typeB); + + return (typeA == typeB); +} + +static bNodeSocketType *ui_node_input_socket_type(bNode *node, bNodeSocket *sock) +{ + if(node->type == NODE_GROUP) + return NULL; + + return &node->typeinfo->inputs[BLI_findindex(&node->inputs, sock)]; +} + +static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, const char *cname, int nclass) +{ + bNodeTree *ntree = arg->ntree; + bNodeSocket *sock = arg->sock; + uiLayout *column = NULL; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + bNodeType *ntype; + bNodeTree *ngroup; + NodeLinkArg *argN; + int first = 1; + + if(nclass == NODE_CLASS_GROUP) { + for(ngroup=bmain->nodetree.first; ngroup; ngroup=ngroup->id.next) { + bNodeSocket *gsock; + char name[UI_MAX_NAME_STR]; + int i, j, num = 0; + + if(ngroup->type != ntree->type) + continue; + + for(gsock=ngroup->inputs.first; gsock; gsock=gsock->next) + if(ui_compatible_sockets(gsock->type, sock->type)) + num++; + + for(i=0, j=0, gsock=ngroup->outputs.first; gsock; gsock=gsock->next, i++) { + if(!ui_compatible_sockets(gsock->type, sock->type)) + continue; + + if(first) { + column= uiLayoutColumn(layout, 0); + uiBlockSetCurLayout(block, column); + + uiItemL(column, cname, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + first = 0; + } + + if(num > 1) { + if(j == 0) { + uiItemL(column, ngroup->id.name+2, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", gsock->name); + j++; + } + else + BLI_strncpy(name, ngroup->id.name+2, UI_MAX_NAME_STR); + + but = uiDefBut(block, BUT, 0, ngroup->id.name+2, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input"); + + argN = MEM_dupallocN(arg); + argN->ngroup = ngroup; + argN->output = i; + uiButSetNFunc(but, ui_node_link, argN, NULL); + } + } + } + else { + for(ntype=ntree->alltypes.first; ntype; ntype=ntype->next) { + bNodeSocketType *stype; + char name[UI_MAX_NAME_STR]; + int i, j, num = 0; + + if(ntype->nclass != nclass) + continue; + + for(i=0, stype=ntype->outputs; stype && stype->type != -1; stype++, i++) + if(ui_compatible_sockets(stype->type, sock->type)) + num++; + + for(i=0, j=0, stype=ntype->outputs; stype && stype->type != -1; stype++, i++) { + if(!ui_compatible_sockets(stype->type, sock->type)) + continue; + + if(first) { + column= uiLayoutColumn(layout, 0); + uiBlockSetCurLayout(block, column); + + uiItemL(column, cname, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + first = 0; + } + + if(num > 1) { + if(j == 0) { + uiItemL(column, ntype->name, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", stype->name); + j++; + } + else + BLI_strncpy(name, ntype->name, UI_MAX_NAME_STR); + + but = uiDefBut(block, BUT, 0, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input"); + + argN = MEM_dupallocN(arg); + argN->type = ntype->type; + argN->output = i; + uiButSetNFunc(but, ui_node_link, argN, NULL); + } + } + } +} + +static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_p) +{ + Main *bmain= CTX_data_main(C); + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but = (uiBut*)but_p; + uiLayout *split, *column; + NodeLinkArg *arg = (NodeLinkArg*)but->func_argN; + bNodeSocket *sock = arg->sock; + + uiBlockSetCurLayout(block, layout); + split= uiLayoutSplit(layout, 0, 0); + + ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT); + ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT); + ui_node_menu_column(bmain, arg, split, "Closure", NODE_CLASS_CLOSURE); + ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE); + ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR); + ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR); + ui_node_menu_column(bmain, arg, split, "Convertor", NODE_CLASS_CONVERTOR); + + column= uiLayoutColumn(split, 0); + uiBlockSetCurLayout(block, column); + + if(sock->link) { + uiItemL(column, "Link", ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + but = uiDefBut(block, BUT, 0, "Remove", 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Remove nodes connected to the input"); + uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_REMOVE)); + + but = uiDefBut(block, BUT, 0, "Disconnect", 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Disconnect nodes connected to the input"); + uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_DISCONNECT)); + } + + ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP); +} + +void uiTemplateNodeLink(uiLayout *layout, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *sock) +{ + uiBlock *block = uiLayoutGetBlock(layout); + NodeLinkArg *arg; + uiBut *but; + bNodeSocketType *stype = ui_node_input_socket_type(node, sock); + + arg = MEM_callocN(sizeof(NodeLinkArg), "NodeLinkArg"); + arg->id = id; + arg->ntree = ntree; + arg->node = node; + arg->sock = sock; + arg->type = 0; + arg->output = 0; + + uiBlockSetCurLayout(block, layout); + + if(sock->link || sock->type == SOCK_CLOSURE || (stype && (stype->flag & SOCK_NO_VALUE))) { + char name[UI_MAX_NAME_STR]; + ui_node_sock_name(sock, name); + but= uiDefMenuBut(block, ui_template_node_link_menu, NULL, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + else + but= uiDefIconMenuBut(block, ui_template_node_link_menu, NULL, ICON_NONE, 0, 0, UI_UNIT_X, UI_UNIT_Y, ""); + + but->type= MENU; + but->flag |= UI_TEXT_LEFT|UI_BUT_NODE_LINK; + but->poin= (char*)but; + but->func_argN = arg; +} + +/************************* Node Tree Layout **************************/ + +static void ui_node_draw_input(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth) +{ + PointerRNA inputptr; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *bt; + uiLayout *split, *row, *col; + bNode *lnode; + bNodeSocket *linput; + char label[UI_MAX_NAME_STR]; + int indent = (depth > 1)? 2*(depth - 1): 0; + + /* to avoid eternal loops on cyclic dependencies */ + node->flag |= NODE_TEST; + lnode = (input->link)? input->link->fromnode: NULL; + + /* socket RNA pointer */ + RNA_pointer_create(&ntree->id, &RNA_NodeSocket, input, &inputptr); + + /* indented label */ + memset(label, ' ', indent); + label[indent] = '\0'; + BLI_snprintf(label, UI_MAX_NAME_STR, "%s%s:", label, input->name); + + /* split in label and value */ + split = uiLayoutSplit(layout, 0.35f, 0); + + row = uiLayoutRow(split, 1); + + if(depth > 0) { + uiBlockSetEmboss(block, UI_EMBOSSN); + + if(lnode && (lnode->inputs.first || (lnode->typeinfo->uifunc && lnode->type != NODE_GROUP))) { + int icon = (input->flag & SOCK_COLLAPSED)? ICON_DISCLOSURE_TRI_RIGHT: ICON_DISCLOSURE_TRI_DOWN; + uiItemR(row, &inputptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", icon); + } + else + uiItemL(row, "", ICON_BLANK1); + + bt = block->buttons.last; + bt->x2 = UI_UNIT_X/2; + + uiBlockSetEmboss(block, UI_EMBOSS); + } + + uiItemL(row, label, ICON_NONE); + + if(lnode) { + /* input linked to a node */ + uiTemplateNodeLink(split, id, ntree, node, input); + + if(!(input->flag & SOCK_COLLAPSED)) { + if(depth == 0) + uiItemS(layout); + + if(lnode->typeinfo->uifunc) { + if(lnode->type != NODE_GROUP) { + PointerRNA lnodeptr; + + split = uiLayoutSplit(layout, 0.35f, 0); + col = uiLayoutColumn(split, 0); + col = uiLayoutColumn(split, 0); + + RNA_pointer_create(&ntree->id, &RNA_Node, lnode, &lnodeptr); + lnode->typeinfo->uifunc(col, C, &lnodeptr); + } + } + + for(linput=lnode->inputs.first; linput; linput=linput->next) + ui_node_draw_input(layout, C, id, ntree, lnode, linput, depth+1); + } + } + else { + bNodeSocketType *stype = ui_node_input_socket_type(node, input); + + /* input not linked, show value */ + if(input->type != SOCK_CLOSURE && (!stype || !(stype->flag & SOCK_NO_VALUE))) { + if(input->type == SOCK_VECTOR) { + row = uiLayoutRow(split, 0); + col = uiLayoutColumn(row, 0); + + uiItemR(col, &inputptr, "default_value", 0, "", 0); + } + else { + row = uiLayoutRow(split, 1); + uiItemR(row, &inputptr, "default_value", 0, "", 0); + } + } + else + row = uiLayoutRow(split, 0); + + uiTemplateNodeLink(row, id, ntree, node, input); + } + + /* clear */ + node->flag &= ~NODE_TEST; +} + +void uiTemplateNodeView(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *input) +{ + bNode *tnode; + + /* clear for cycle check */ + for(tnode=ntree->nodes.first; tnode; tnode=tnode->next) + tnode->flag &= ~NODE_TEST; + + ui_node_draw_input(layout, C, id, ntree, node, input, 0); +} + diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 6677f2b1bae..1c7806a26a1 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -421,12 +421,12 @@ static void ui_draw_panel_dragwidget(rctf *rect) dy= 0.333f*(ymax-ymin); glEnable(GL_BLEND); - glColor4ub(255, 255, 255, 50); + glColor4ub(255, 255, 255, 20); fdrawline(xmin, ymax, xmax, ymin); fdrawline(xmin+dx, ymax, xmax, ymin+dy); fdrawline(xmin+2*dx, ymax, xmax, ymin+2*dy); - glColor4ub(0, 0, 0, 50); + glColor4ub(0, 0, 0, 20); fdrawline(xmin, ymax+1, xmax, ymin+1); fdrawline(xmin+dx, ymax+1, xmax, ymin+dy+1); fdrawline(xmin+2*dx, ymax+1, xmax, ymin+2*dy+1); @@ -493,24 +493,23 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) headrect.ymin= headrect.ymax; headrect.ymax= headrect.ymin + floor(PNL_HEADER/block->aspect + 0.001f); - if(!(panel->runtime_flag & PNL_FIRST)) { + { float minx= rect->xmin+5.0f/block->aspect; float maxx= rect->xmax-5.0f/block->aspect; float y= headrect.ymax; glEnable(GL_BLEND); - glColor4f(0.0f, 0.0f, 0.0f, 0.5f); - fdrawline(minx, y+1, maxx, y+1); - glColor4f(1.0f, 1.0f, 1.0f, 0.25f); - fdrawline(minx, y, maxx, y); + glColor4f(0.0f, 0.0f, 0.0f, 0.1f); + uiSetRoundBox(15); + uiDrawBox(GL_POLYGON, minx, headrect.ymin, maxx, y+1, 4); glDisable(GL_BLEND); } /* horizontal title */ if(!(panel->flag & PNL_CLOSEDX)) { ui_draw_aligned_panel_header(style, block, &headrect, 'h'); - - /* itemrect smaller */ + + /* itemrect smaller */ itemrect.xmax= headrect.xmax - 5.0f/block->aspect; itemrect.xmin= itemrect.xmax - (headrect.ymax-headrect.ymin); itemrect.ymin= headrect.ymin; @@ -535,7 +534,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) /* in some occasions, draw a border */ if(panel->flag & PNL_SELECT) { if(panel->control & UI_PNL_SOLID) uiSetRoundBox(15); - else uiSetRoundBox(3); + else uiSetRoundBox(0); UI_ThemeColorShade(TH_BACK, -120); uiRoundRect(0.5f + rect->xmin, 0.5f + rect->ymin, 0.5f + rect->xmax, 0.5f + headrect.ymax+1, 8); @@ -564,7 +563,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) itemrect.ymin= headrect.ymin; itemrect.ymax= headrect.ymax; - rectf_scale(&itemrect, 0.5f); + rectf_scale(&itemrect, 0.35f); if(panel->flag & PNL_CLOSEDY) ui_draw_tria_rect(&itemrect, 'h'); @@ -572,8 +571,6 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) ui_draw_tria_rect(&itemrect, 'h'); else ui_draw_tria_rect(&itemrect, 'v'); - - } /************************** panel alignment *************************/ diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 09e4b153d98..6c695429f57 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -196,7 +196,7 @@ static void widget_init(uiWidgetBase *wtb) wtb->inner= 1; wtb->outline= 1; - wtb->emboss= 1; + wtb->emboss= 0; wtb->shadedir= 1; } @@ -1142,6 +1142,13 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB widget_draw_icon(but, ICON_DOT, dualset?1.0f:0.25f, rect); } + else if(but->type==MENU && (but->flag & UI_BUT_NODE_LINK)) { + /* node link hacking */ + int tmp = rect->xmin; + rect->xmin = rect->xmax - (rect->ymax - rect->ymin) - 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 */ @@ -2489,6 +2496,34 @@ static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(stat widgetbase_draw(&wtb, wcol); } +static void widget_menunodebut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign) +{ + /* silly node link button hacks */ + uiWidgetBase wtb; + unsigned char tmp[4]; + unsigned char tmp2[4]; + + widget_init(&wtb); + + /* half rounded */ + round_box_edges(&wtb, roundboxalign, rect, 4.0f); + + memcpy(tmp, wcol->inner, sizeof(char)*4); + memcpy(tmp2, wcol->outline, sizeof(char)*4); + wcol->inner[0] += 15; + wcol->inner[1] += 15; + wcol->inner[2] += 15; + wcol->outline[0] += 15; + wcol->outline[1] += 15; + wcol->outline[2] += 15; + + /* decoration */ + widgetbase_draw(&wtb, wcol); + + memcpy(wcol->inner, tmp, sizeof(char)*4); + memcpy(wcol->outline, tmp2, sizeof(char)*4); +} + static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign)) { if(state & UI_ACTIVE) { @@ -2762,6 +2797,11 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type) wt.wcol_theme= &btheme->tui.wcol_menu; wt.draw= widget_menubut; break; + + case UI_WTYPE_MENU_NODE_LINK: + wt.wcol_theme= &btheme->tui.wcol_menu; + wt.draw= widget_menunodebut; + break; case UI_WTYPE_PULLDOWN: wt.wcol_theme= &btheme->tui.wcol_pulldown; @@ -2964,7 +3004,9 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct case MENU: case BLOCK: case ICONTEXTROW: - if(!but->str[0] && but->icon) + if(but->flag & UI_BUT_NODE_LINK) + wt= widget_type(UI_WTYPE_MENU_NODE_LINK); + else if(!but->str[0] && but->icon) wt= widget_type(UI_WTYPE_MENU_ICON_RADIO); else wt= widget_type(UI_WTYPE_MENU_RADIO); diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 32301dd6423..50f8d2d518f 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -277,9 +277,10 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) v2d->align= (V2D_ALIGN_NO_NEG_X|V2D_ALIGN_NO_POS_Y); v2d->keeptot= V2D_KEEPTOT_BOUNDS; - v2d->scroll |= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM); + /*v2d->scroll |= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM); v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; + v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE;*/ + v2d->scroll= 0; v2d->tot.xmin= 0.0f; v2d->tot.xmax= winx; @@ -289,7 +290,7 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) v2d->cur.xmin= 0.0f; /* bad workaround for keeping zoom level with scrollers */ - v2d->cur.xmax= (winx - V2D_SCROLL_WIDTH)*panelzoom; + v2d->cur.xmax= (winx/* - V2D_SCROLL_WIDTH*/)*panelzoom; v2d->cur.ymax= 0.0f; v2d->cur.ymin= (-winy)*panelzoom; diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index c425ef5a36a..4ec7696fcf5 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -85,6 +85,7 @@ #include "ED_curve.h" #include "ED_mball.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_object.h" #include "ED_render.h" #include "ED_screen.h" @@ -686,6 +687,7 @@ static const char *get_lamp_defname(int type) 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; @@ -696,9 +698,14 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer); - ((Lamp*)ob->data)->type= type; - rename_id((ID *)ob, get_lamp_defname(type)); - rename_id((ID *)ob->data, get_lamp_defname(type)); + la= (Lamp*)ob->data; + + la->type= type; + rename_id(&ob->id, get_lamp_defname(type)); + rename_id(&la->id, get_lamp_defname(type)); + + ED_node_shader_default(&la->id); + la->use_nodes= 1; return OPERATOR_FINISHED; } diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 905f88c5f90..4ab5d3c78fb 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -74,7 +74,9 @@ #include "BKE_main.h" #include "BKE_material.h" #include "BKE_node.h" +#include "BKE_object.h" #include "BKE_texture.h" +#include "BKE_world.h" #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" @@ -158,9 +160,11 @@ typedef struct ShaderPreview { ID *parent; MTex *slot; - /* node materials/texture need full copy during preview render, glsl uses it too */ + /* datablocks with nodes need full copy during preview render, glsl uses it too */ Material *matcopy; Tex *texcopy; + Lamp *lampcopy; + World *worldcopy; float col[4]; /* active object color */ @@ -394,7 +398,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre if(id_type==ID_MA) { Material *mat= NULL, *origmat= (Material *)id; - if(id) { + if(origmat) { /* work on a copy */ mat= localize_material(origmat); sp->matcopy= mat; @@ -524,7 +528,14 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre } } else if(id_type==ID_LA) { - Lamp *la= (Lamp *)id; + Lamp *la= NULL, *origla= (Lamp *)id; + + /* work on a copy */ + if(origla) { + la= localize_lamp(origla); + sp->lampcopy= la; + BLI_addtail(&pr_main->lamp, la); + } if(la && la->type==LA_SUN && (la->sun_effect_type & LA_SUN_EFFECT_SKY)) { sce->lay= 1<object->data= la; } } + + if(la && la->nodetree && sp->pr_method==PR_NODE_RENDER) { + /* two previews, they get copied by wmJob */ + ntreeInitPreview(origla->nodetree, sp->sizex, sp->sizey); + ntreeInitPreview(la->nodetree, sp->sizex, sp->sizey); + } } else if(id_type==ID_WO) { + World *wrld= NULL, *origwrld= (World *)id; + + if(origwrld) { + wrld= localize_world(origwrld); + sp->worldcopy= wrld; + BLI_addtail(&pr_main->world, wrld); + } + sce->lay= 1<world= (World *)id; + sce->world= wrld; + + if(wrld && wrld->nodetree && sp->pr_method==PR_NODE_RENDER) { + /* two previews, they get copied by wmJob */ + ntreeInitPreview(wrld->nodetree, sp->sizex, sp->sizey); + ntreeInitPreview(origwrld->nodetree, sp->sizex, sp->sizey); + } } return sce; @@ -997,6 +1028,18 @@ static void shader_preview_updatejob(void *spv) if(sp->texcopy && tex->nodetree && sp->texcopy->nodetree) ntreeLocalSync(sp->texcopy->nodetree, tex->nodetree); } + else if( GS(sp->id->name) == ID_WO) { + World *wrld= (World *)sp->id; + + if(sp->worldcopy && wrld->nodetree && sp->worldcopy->nodetree) + ntreeLocalSync(sp->worldcopy->nodetree, wrld->nodetree); + } + else if( GS(sp->id->name) == ID_LA) { + Lamp *la= (Lamp *)sp->id; + + if(sp->lampcopy && la->nodetree && sp->lampcopy->nodetree) + ntreeLocalSync(sp->lampcopy->nodetree, la->nodetree); + } } } } @@ -1157,6 +1200,38 @@ static void shader_preview_free(void *customdata) } MEM_freeN(sp->texcopy); } + if(sp->worldcopy) { + struct IDProperty *properties; + /* node previews */ + shader_preview_updatejob(sp); + + /* get rid of copied world */ + BLI_remlink(&pr_main->world, sp->worldcopy); + free_world(sp->worldcopy); + + properties= IDP_GetProperties((ID *)sp->worldcopy, FALSE); + if (properties) { + IDP_FreeProperty(properties); + MEM_freeN(properties); + } + MEM_freeN(sp->worldcopy); + } + if(sp->lampcopy) { + struct IDProperty *properties; + /* node previews */ + shader_preview_updatejob(sp); + + /* get rid of copied lamp */ + BLI_remlink(&pr_main->lamp, sp->lampcopy); + free_lamp(sp->lampcopy); + + properties= IDP_GetProperties((ID *)sp->lampcopy, FALSE); + if (properties) { + IDP_FreeProperty(properties); + MEM_freeN(properties); + } + MEM_freeN(sp->lampcopy); + } MEM_freeN(sp); } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 306e9f977de..07783ee6ed8 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -78,6 +78,7 @@ #include "ED_curve.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_render.h" #include "ED_screen.h" @@ -159,6 +160,7 @@ 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; BKE_icon_changed(BKE_icon_getid(&la->id)); @@ -167,6 +169,7 @@ static void texture_changed(Main *bmain, Tex *tex) /* 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; BKE_icon_changed(BKE_icon_getid(&wo->id)); @@ -232,10 +235,72 @@ static void scene_changed(Main *bmain, Scene *UNUSED(scene)) GPU_material_free(ma); } +#include "DNA_screen_types.h" +#include "DNA_view3d_types.h" + +#include "RE_pipeline.h" + +static void update_render_engines(Main *bmain, int tagged_only) +{ + Scene *scene = bmain->scene.first; + bScreen *sc; + ScrArea *sa; + ARegion *ar; + + for(sc=bmain->screen.first; sc; sc=sc->id.next) { + for(sa=sc->areabase.first; sa; sa=sa->next) { + if(sa->spacetype == SPACE_VIEW3D) { + for(ar=sa->regionbase.first; ar; ar=ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + RegionView3D *rv3d = ar->regiondata; + RenderEngine *engine = rv3d->render_engine; + + if(engine && (!tagged_only || engine->do_update)) { + engine->do_update = 0; + engine->type->update(engine, scene); + } + } + } + } + } + } +} + +void ED_render_engine_update_tagged(Main *bmain) +{ + update_render_engines(bmain, 1); +} + +void ED_render_engine_changed(Main *bmain) +{ + bScreen *sc; + ScrArea *sa; + ARegion *ar; + + for(sc=bmain->screen.first; sc; sc=sc->id.next) { + for(sa=sc->areabase.first; sa; sa=sa->next) { + if(sa->spacetype == SPACE_VIEW3D) { + for(ar=sa->regionbase.first; ar; ar=ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + RegionView3D *rv3d = ar->regiondata; + + if(rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine= NULL; + } + } + } + } + } + } +} + void ED_render_id_flush_update(Main *bmain, ID *id) { - if(!id) + if(!id) { + update_render_engines(bmain, 0); return; + } switch(GS(id->name)) { case ID_MA: @@ -542,10 +607,14 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op)) PropertyRNA *prop; /* add or copy material */ - if(ma) + if(ma) { ma= copy_material(ma); - else + } + else { ma= add_material("Material"); + ED_node_shader_default(&ma->id); + ma->use_nodes= 1; + } /* hook into UI */ uiIDContextProperty(C, &ptr, &prop); @@ -634,10 +703,14 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op)) PropertyRNA *prop; /* add or copy world */ - if(wo) + if(wo) { wo= copy_world(wo); - else + } + else { wo= add_world("World"); + ED_node_shader_default(&wo->id); + wo->use_nodes= 1; + } /* hook into UI */ uiIDContextProperty(C, &ptr, &prop); diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 1882d849116..9f5e55dea00 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -152,6 +152,7 @@ void ED_area_do_refresh(bContext *C, ScrArea *sa) /* only exported for WM */ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar) { +#if 0 AZone *az; for(az= sa->actionzones.first; az; az= az->next) { @@ -165,6 +166,7 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar) az->do_draw= 1; } } +#endif } static void area_draw_azone(short x1, short y1, short x2, short y2) @@ -231,6 +233,7 @@ static void region_draw_azone(AZone *az) /* only exported for WM */ void ED_area_overdraw(bContext *C) { +#if 0 wmWindow *win= CTX_wm_window(C); bScreen *screen= CTX_wm_screen(C); ScrArea *sa; @@ -256,7 +259,7 @@ void ED_area_overdraw(bContext *C) } } glDisable( GL_BLEND ); - +#endif } /* get scissor rect, checking overlapping regions */ @@ -334,6 +337,9 @@ void ED_region_do_draw(bContext *C, ARegion *ar) /* note; this sets state, so we can use wmOrtho and friends */ wmSubWindowScissorSet(win, ar->swinid, &ar->drawrct); + + ar->do_draw= 0; + memset(&ar->drawrct, 0, sizeof(ar->drawrct)); UI_SetTheme(sa?sa->spacetype:0, ar->type?ar->type->regionid:0); @@ -353,14 +359,11 @@ void ED_region_do_draw(bContext *C, ARegion *ar) uiFreeInactiveBlocks(C, &ar->uiblocks); - if(sa) - region_draw_emboss(ar, &winrct); + /*if(sa) + region_draw_emboss(ar, &winrct);*/ /* XXX test: add convention to end regions always in pixel space, for drawing of borders/gestures etc */ ED_region_pixelspace(ar); - - ar->do_draw= 0; - memset(&ar->drawrct, 0, sizeof(ar->drawrct)); } /* ********************************** @@ -1376,8 +1379,8 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * /* only allow scrolling in vertical direction */ v2d->keepofs |= V2D_LOCKOFS_X|V2D_KEEPOFS_Y; v2d->keepofs &= ~(V2D_LOCKOFS_Y|V2D_KEEPOFS_X); - v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; + //v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; + //v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; // don't jump back when panels close or hide if(!newcontext) @@ -1392,8 +1395,8 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_LOCKOFS_Y|V2D_KEEPOFS_X|V2D_KEEPOFS_Y); //v2d->keepofs |= V2D_LOCKOFS_Y|V2D_KEEPOFS_X; //v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_KEEPOFS_Y); - v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE; - v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_HIDE; + //v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE; + //v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_HIDE; // don't jump back when panels close or hide if(!newcontext) @@ -1414,9 +1417,9 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * UI_view2d_view_restore(C); /* scrollers */ - scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); - UI_view2d_scrollers_draw(C, v2d, scrollers); - UI_view2d_scrollers_free(scrollers); + //scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); + //UI_view2d_scrollers_draw(C, v2d, scrollers); + //UI_view2d_scrollers_free(scrollers); } void ED_region_panels_init(wmWindowManager *wm, ARegion *ar) @@ -1425,9 +1428,10 @@ void ED_region_panels_init(wmWindowManager *wm, ARegion *ar) // 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_RIGHT|V2D_SCROLL_BOTTOM); ar->v2d.scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - ar->v2d.scroll &= ~V2D_SCROLL_VERTICAL_HIDE; + ar->v2d.scroll &= ~V2D_SCROLL_VERTICAL_HIDE;*/ + ar->v2d.scroll= 0; ar->v2d.keepzoom |= V2D_KEEPZOOM; // correctly initialised User-Prefs? diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index dc588f08ff1..948bcd9a8a2 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -98,11 +98,13 @@ static void do_buttons_buttons(bContext *C, void *UNUSED(arg), int event) sbuts->mainbuser= sbuts->mainb; } +#define BUT_UNIT_X (UI_UNIT_X+2) + void buttons_header_buttons(const bContext *C, ARegion *ar) { SpaceButs *sbuts= CTX_wm_space_buts(C); uiBlock *block; - int xco, yco= 3; + int xco, yco= 2; buttons_context_compute(C, sbuts); @@ -118,32 +120,32 @@ void buttons_header_buttons(const bContext *C, ARegion *ar) // Default panels uiBlockBeginAlign(block); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_RENDER, 0, 0, "Render"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_RENDER, 0, 0, "Render"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE_DATA, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Object Constraints"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Object Constraints"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifiers"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifiers"); if(sbuts->pathflag & (1<dataicon, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, sbuts->dataicon, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_BONE_CONSTRAINT, 0, 0, "Bone Constraints"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT_BONE, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE_CONSTRAINT, 0, 0, "Bone Constraints"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture"); + uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles"); if(sbuts->pathflag & (1<mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics"); - xco+= BUTS_UI_UNIT; + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=BUT_UNIT_X, yco, BUT_UNIT_X, UI_UNIT_Y, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics"); + xco+= BUT_UNIT_X; uiBlockEndAlign(block); diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index d92488e47ef..925223b43ea 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -55,9 +55,6 @@ struct ID; #define BUTS_SENS_STATE 512 #define BUTS_ACT_STATE 1024 -#define BUTS_HEADERY (HEADERY*1.2) -#define BUTS_UI_UNIT (UI_UNIT_Y*1.2) - /* internal exports only */ /* buttons_header.c */ diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index a808e9885c4..16c4df59420 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -405,7 +405,7 @@ void ED_spacetype_buttons(void) /* regions: header */ art= MEM_callocN(sizeof(ARegionType), "spacetype buttons region"); art->regionid = RGN_TYPE_HEADER; - art->prefsizey= BUTS_HEADERY; + art->prefsizey= HEADERY; art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_HEADER; art->init= buttons_header_area_init; diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt index 8604ba3baed..0bcd86f53cf 100644 --- a/source/blender/editors/space_node/CMakeLists.txt +++ b/source/blender/editors/space_node/CMakeLists.txt @@ -42,6 +42,7 @@ set(SRC node_draw.c node_edit.c node_header.c + node_layout.c node_ops.c node_select.c node_state.c diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 7d92c308f17..68c893aafe9 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -335,7 +335,7 @@ static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), Poin { uiLayout *row; - uiItemL(layout, "Location:", ICON_NONE); + uiItemL(layout, "Translation:", ICON_NONE); row= uiLayoutRow(layout, 1); uiItemR(row, ptr, "location", 0, "", ICON_NONE); @@ -347,6 +347,7 @@ static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), Poin row= uiLayoutRow(layout, 1); uiItemR(row, ptr, "scale", 0, "", ICON_NONE); +#if 0 row= uiLayoutRow(layout, 1); uiItemR(row, ptr, "use_min", 0, "Min", ICON_NONE); uiItemR(row, ptr, "min", 0, "", ICON_NONE); @@ -354,7 +355,7 @@ static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), Poin row= uiLayoutRow(layout, 1); uiItemR(row, ptr, "use_max", 0, "Max", ICON_NONE); uiItemR(row, ptr, "max", 0, "", ICON_NONE); - +#endif } static void node_shader_buts_vect_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -381,6 +382,97 @@ static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA } } +/*static void node_layout_prop(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname) +{ + if(C && CTX_wm_space_node(C)) { + uiItemR(layout, ptr, propname, 0, NULL, ICON_NONE); + } + else { + uiLayout *split = uiLayoutSplit(layout, 0.35f, 0); + PropertyRNA *prop = RNA_struct_find_property(ptr, propname); + + uiItemL(uiLayoutColumn(split, 0), RNA_property_ui_name(prop), ICON_NONE); + uiItemR(uiLayoutColumn(split, 0), ptr, propname, 0, "", ICON_NONE); + } +}*/ + +static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA *ptr) +{ + //uiItemR(layout, ptr, "image", 0, "", ICON_NONE); + uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); +} + +static void node_shader_buts_tex_sky(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "sun_direction", 0, "", ICON_NONE); + uiItemR(layout, ptr, "turbidity", 0, NULL, ICON_NONE); +} + +static void node_shader_buts_tex_blend(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "progression", 0, "", ICON_NONE); + uiItemR(layout, ptr, "axis", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_clouds(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); +} + +static void node_shader_buts_tex_distnoise(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_distortion", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_magic(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); +} + +static void node_shader_buts_tex_marble(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "marble_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); + uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_musgrave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "musgrave_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_stucci(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "stucci_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_voronoi(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "distance_metric", 0, "", ICON_NONE); + uiItemR(layout, ptr, "coloring", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_wood(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); + uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "wood_type", 0, "", ICON_NONE); + uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_glossy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "distribution", 0, "", ICON_NONE); +} + static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *ptr) { Main *bmain= CTX_data_main(C); @@ -463,9 +555,49 @@ static void node_shader_set_butfunc(bNodeType *ntype) case SH_NODE_VECT_MATH: ntype->uifunc= node_shader_buts_vect_math; break; - case SH_NODE_GEOMETRY: + case SH_NODE_GEOM: ntype->uifunc= node_shader_buts_geometry; break; + case SH_NODE_TEX_SKY: + ntype->uifunc= node_shader_buts_tex_sky; + break; + case SH_NODE_TEX_IMAGE: + ntype->uifunc= node_shader_buts_tex_image; + break; + case SH_NODE_TEX_ENVIRONMENT: + ntype->uifunc= node_shader_buts_tex_image; + break; + case SH_NODE_TEX_BLEND: + ntype->uifunc= node_shader_buts_tex_blend; + break; + case SH_NODE_TEX_CLOUDS: + ntype->uifunc= node_shader_buts_tex_clouds; + break; + case SH_NODE_TEX_DISTNOISE: + ntype->uifunc= node_shader_buts_tex_distnoise; + break; + case SH_NODE_TEX_MAGIC: + ntype->uifunc= node_shader_buts_tex_magic; + break; + case SH_NODE_TEX_MARBLE: + ntype->uifunc= node_shader_buts_tex_marble; + break; + case SH_NODE_TEX_MUSGRAVE: + ntype->uifunc= node_shader_buts_tex_musgrave; + break; + case SH_NODE_TEX_STUCCI: + ntype->uifunc= node_shader_buts_tex_stucci; + break; + case SH_NODE_TEX_VORONOI: + ntype->uifunc= node_shader_buts_tex_voronoi; + break; + case SH_NODE_TEX_WOOD: + ntype->uifunc= node_shader_buts_tex_wood; + break; + case SH_NODE_BSDF_GLOSSY: + case SH_NODE_BSDF_GLASS: + ntype->uifunc= node_shader_buts_glossy; + break; case NODE_DYNAMIC: ntype->uifunc= node_shader_buts_dynamic; break; diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 0c9f12966ef..307c5e19384 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -38,11 +38,13 @@ #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" @@ -90,7 +92,13 @@ void ED_node_changed_update(ID *id, bNode *node) if(treetype==NTREE_SHADER) { DAG_id_tag_update(id, 0); - WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, id); + + if(GS(id->name) == ID_MA) + 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); + else if(GS(id->name) == ID_WO) + WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, id); } else if(treetype==NTREE_COMPOSIT) { NodeTagChanged(edittree, node); @@ -126,6 +134,8 @@ static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup) void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node) { Material *ma; + Lamp *la; + World *wrld; Tex *tex; Scene *sce; @@ -133,7 +143,15 @@ void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node) for(ma=bmain->mat.first; ma; ma=ma->id.next) if(ma->nodetree && ma->use_nodes && has_nodetree(ma->nodetree, ntree)) ED_node_changed_update(&ma->id, node); - + + for(la=bmain->lamp.first; la; la=la->id.next) + if(la->nodetree && has_nodetree(la->nodetree, ntree)) + ED_node_changed_update(&la->id, node); + + for(wrld=bmain->world.first; wrld; wrld=wrld->id.next) + if(wrld->nodetree && has_nodetree(wrld->nodetree, ntree)) + ED_node_changed_update(&wrld->id, node); + for(tex=bmain->tex.first; tex; tex=tex->id.next) if(tex->nodetree && tex->use_nodes && has_nodetree(tex->nodetree, ntree)) ED_node_changed_update(&tex->id, node); @@ -722,6 +740,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN int color_id= node_get_colorid(node); char showname[128]; /* 128 used below */ View2D *v2d = &ar->v2d; + int i; /* hurmf... another candidate for callback, have to see how this works first */ if(node->id && node->block && snode->treetype==NTREE_SHADER) @@ -849,12 +868,20 @@ 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(i= 0, sock= node->inputs.first; sock; sock= sock->next, i++) { if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { + bNodeSocketType *stype = (node->type == NODE_GROUP)? NULL: &node->typeinfo->inputs[i]; + socket_circle_draw(sock, NODE_SOCKSIZE); if(node->block && sock->link==NULL) { - node_draw_socket_button(ntree, sock, sock->name, node->block, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, node_sync_cb, snode, node); + if((stype && stype->flag & SOCK_NO_VALUE) || sock->type==SOCK_CLOSURE) { + uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f), + (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); + } + else { + node_draw_socket_button(ntree, sock, sock->name, node->block, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, node_sync_cb, snode, node); + } } else { uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f), diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 22bbd93de00..97a006ad1e3 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -40,10 +40,12 @@ #include "MEM_guardedalloc.h" -#include "DNA_object_types.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 "BLI_math.h" #include "BLI_blenlib.h" @@ -51,6 +53,7 @@ #include "BLI_utildefines.h" #include "BKE_context.h" +#include "BKE_depsgraph.h" #include "BKE_global.h" #include "BKE_image.h" #include "BKE_library.h" @@ -234,6 +237,11 @@ static bNode *editnode_get_active(bNodeTree *ntree) return nodeGetActive(ntree); } +void snode_dag_update(bContext *UNUSED(C), SpaceNode *snode) +{ + DAG_id_tag_update(snode->id, 0); +} + void snode_notify(bContext *C, SpaceNode *snode) { WM_event_add_notifier(C, NC_NODE|NA_EDITED, NULL); @@ -259,33 +267,49 @@ bNode *node_tree_get_editgroup(bNodeTree *nodetree) /* assumes nothing being done in ntree yet, sets the default in/out node */ /* called from shading buttons or header */ -void ED_node_shader_default(Material *ma) +void ED_node_shader_default(ID *id) { bNode *in, *out; bNodeSocket *fromsock, *tosock; + bNodeTree *ntree; + int output_type, closure_type; - /* but lets check it anyway */ - if(ma->nodetree) { - if (G.f & G_DEBUG) - printf("error in shader initialize\n"); - return; + ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE); + + switch(GS(id->name)) { + case ID_MA: + ((Material*)id)->nodetree = ntree; + output_type = SH_NODE_OUTPUT_MATERIAL; + closure_type = SH_NODE_BSDF_DIFFUSE; + break; + case ID_WO: + ((World*)id)->nodetree = ntree; + output_type = SH_NODE_OUTPUT_WORLD; + closure_type = SH_NODE_BACKGROUND; + break; + case ID_LA: + ((Lamp*)id)->nodetree = ntree; + output_type = SH_NODE_OUTPUT_LAMP; + closure_type = SH_NODE_EMISSION; + break; + default: + printf("ED_node_shader_default called on wrong ID type.\n"); + return; } - ma->nodetree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE); - - out= nodeAddNodeType(ma->nodetree, SH_NODE_OUTPUT, NULL, NULL); + out= nodeAddNodeType(ntree, output_type, NULL, NULL); out->locx= 300.0f; out->locy= 300.0f; - in= nodeAddNodeType(ma->nodetree, SH_NODE_MATERIAL, NULL, NULL); + in= nodeAddNodeType(ntree, closure_type, NULL, NULL); in->locx= 10.0f; in->locy= 300.0f; - nodeSetActive(ma->nodetree, in); + nodeSetActive(ntree, in); /* only a link from color to color */ fromsock= in->outputs.first; tosock= out->inputs.first; - nodeAddLink(ma->nodetree, in, fromsock, out, tosock); + nodeAddLink(ntree, in, fromsock, out, tosock); - ntreeSolveOrder(ma->nodetree); /* needed for pointers */ + ntreeSolveOrder(ntree); /* needed for pointers */ } /* assumes nothing being done in ntree yet, sets the default in/out node */ @@ -365,6 +389,14 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre *ntree= ((Material*)id)->nodetree; if(treetype) *treetype= NTREE_SHADER; } + else if(idtype == ID_LA) { + *ntree= ((Lamp*)id)->nodetree; + if(treetype) *treetype= NTREE_SHADER; + } + else if(idtype == ID_WO) { + *ntree= ((World*)id)->nodetree; + if(treetype) *treetype= NTREE_SHADER; + } else if(idtype == ID_SCE) { *ntree= ((Scene*)id)->nodetree; if(treetype) *treetype= NTREE_COMPOSIT; @@ -403,11 +435,25 @@ void snode_set_context(SpaceNode *snode, Scene *scene) if(snode->treetype==NTREE_SHADER) { /* need active object, or we allow pinning... */ - if(ob) { - Material *ma= give_current_material(ob, ob->actcol); - if(ma) { - snode->from= &ob->id; - snode->id= &ma->id; + if(snode->shaderfrom == SNODE_SHADER_OBJECT) { + if(ob) { + if(ob->type == OB_LAMP) { + snode->from= &ob->id; + snode->id= ob->data; + } + else { + Material *ma= give_current_material(ob, ob->actcol); + if(ma) { + snode->from= &ob->id; + snode->id= &ma->id; + } + } + } + } + else { /* SNODE_SHADER_WORLD */ + if(scene->world) { + snode->from= NULL; + snode->id= &scene->world->id; } } } @@ -483,7 +529,7 @@ void node_set_active(SpaceNode *snode, bNode *node) /* tree specific activate calls */ if(snode->treetype==NTREE_SHADER) { /* when we select a material, active texture is cleared, for buttons */ - if(node->id && GS(node->id->name)==ID_MA) + if(node->id && ELEM3(GS(node->id->name), ID_MA, ID_LA, ID_WO)) nodeClearActiveID(snode->edittree, ID_TE); if(node->type==SH_NODE_OUTPUT) { @@ -912,7 +958,8 @@ static int node_group_ungroup_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); + snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2014,6 +2061,7 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2169,6 +2217,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event) ntreeSolveOrder(snode->edittree); node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); BLI_remlink(&snode->linkdrag, nldrag); MEM_freeN(nldrag); @@ -2303,6 +2352,7 @@ static int node_make_link_exec(bContext *C, wmOperator *op) node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2377,6 +2427,7 @@ static int cut_links_exec(bContext *C, wmOperator *op) ntreeSolveOrder(snode->edittree); node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2436,6 +2487,8 @@ static int node_read_renderlayers_exec(bContext *C, wmOperator *UNUSED(op)) } snode_notify(C, snode); + snode_dag_update(C, snode); + return OPERATOR_FINISHED; } @@ -2464,6 +2517,7 @@ static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *UNUSED(op)) RE_MergeFullSample(re, bmain, curscene, snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); WM_cursor_wait(0); return OPERATOR_FINISHED; @@ -2572,6 +2626,7 @@ static int node_group_make_exec(bContext *C, wmOperator *op) } snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2758,6 +2813,7 @@ static int node_mute_exec(bContext *C, wmOperator *UNUSED(op)) } snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2799,6 +2855,7 @@ static int node_delete_exec(bContext *C, wmOperator *UNUSED(op)) node_tree_verify_groups(snode->nodetree); snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2900,6 +2957,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op) node->id = (ID *)ima; snode_notify(C, snode); + snode_dag_update(C, snode); return OPERATOR_FINISHED; } @@ -2938,3 +2996,35 @@ void NODE_OT_add_file(wmOperatorType *ot) RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Datablock name to assign."); } +/* ****************** Auto Layout Operator ******************* */ + +static int node_auto_layout_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceNode *snode= CTX_wm_space_node(C); + bNode *node; + + for(node=snode->edittree->nodes.first; node; node=node->next) + if(node->flag & SELECT) + ED_node_tree_auto_layout(snode->edittree, node); + + snode_notify(C, snode); + + return OPERATOR_FINISHED; +} + +void NODE_OT_auto_layout(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Auto Layout Nodes"; + ot->description= "Automatically layout nodes with the selected nodes as root"; + ot->idname= "NODE_OT_auto_layout"; + + /* callbacks */ + ot->exec= node_auto_layout_exec; + ot->poll= ED_operator_node_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + + diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index d7084d51180..7d630de5006 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -102,6 +102,7 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) } snode_notify(C, snode); + snode_dag_update(C, snode); } static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) @@ -182,11 +183,12 @@ static void node_menu_add(const bContext *C, Menu *menu) if(snode->treetype==NTREE_SHADER) { uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); + uiItemMenuF(layout, "Closure", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CLOSURE)); uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - uiItemMenuF(layout, "Dynamic", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); + uiItemMenuF(layout, "Texture", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); } else if(snode->treetype==NTREE_COMPOSIT) { uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index fc1b579d1e1..633489a31ca 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -95,6 +95,7 @@ void draw_nodespace_color_info(struct ARegion *ar, int color_manage, int channel /* 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 *next_node(bNodeTree *ntree); bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy); void snode_set_context(SpaceNode *snode, Scene *scene); @@ -144,6 +145,8 @@ void NODE_OT_backimage_sample(wmOperatorType *ot); void NODE_OT_add_file(struct wmOperatorType *ot); +void NODE_OT_auto_layout(struct wmOperatorType *ot); + extern const char *node_context_dir[]; // XXXXXX diff --git a/source/blender/editors/space_node/node_layout.c b/source/blender/editors/space_node/node_layout.c new file mode 100644 index 00000000000..56e4428881d --- /dev/null +++ b/source/blender/editors/space_node/node_layout.c @@ -0,0 +1,128 @@ +/* + * $Id$ + * + * ***** 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: none of this file. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_node/node_layout.c + * \ingroup spnode + */ + +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_utildefines.h" + +#include "DNA_node_types.h" + +#include "ED_node.h" + +/* Inspired by the algorithm for graphviz dot, as described in the paper: + "A Technique for Drawing Directed Graphs", 1993 + + We have it much easier though, as the graph is already acyclic, and we + are given a root node. */ + +typedef struct NodeAutoLayout { + int rank; + int visited; +} NodeAutoLayout; + +static void node_layout_assign_rank(NodeAutoLayout *layout, bNode *from, int rank) +{ + bNodeSocket *sock; + + for(sock=from->inputs.first; sock; sock=sock->next) { + if(sock->link) { + bNode *node = sock->link->fromnode; + + if(layout[node->nr].visited) + continue; + + layout[node->nr].rank= rank; + layout[node->nr].visited= 1; + + node_layout_assign_rank(layout, node, rank+1); + } + } +} + +void ED_node_tree_auto_layout(bNodeTree *ntree, bNode *root) +{ + NodeAutoLayout *layout; + bNode *node; + float locx, locy, hspacing= 50.0f, vspacing= 30.0f; + int a, rank, tot= 0, maxrank= 0; + + for(node=ntree->nodes.first; node; node=node->next) + node->nr= tot++; + + layout= MEM_callocN(sizeof(NodeAutoLayout)*tot, "NodeAutoLayout"); + + layout[root->nr].rank= 0; + layout[root->nr].visited= 1; + + node_layout_assign_rank(layout, root, layout[root->nr].rank+1); + + for(a=0; alocx; + locy= root->locy - (root->totr.ymax - root->totr.ymin)*0.5f; + + for(rank=1; rank<=maxrank; rank++) { + float maxwidth= 0.0f; + float totheight= 0.0f; + float y; + + locx -= hspacing; + + for(node=ntree->nodes.first; node; node=node->next) { + if(layout[node->nr].rank == rank) { + if(totheight > 0.0f) + totheight += vspacing; + totheight += (node->totr.ymax - node->totr.ymin); + } + } + + y = locy + totheight*0.5f; + + for(node=ntree->nodes.first; node; node=node->next) { + if(layout[node->nr].rank == rank) { + maxwidth = MAX2(maxwidth, node->width); + node->locx = locx - node->width; + node->locy = y; + + y -= (node->totr.ymax - node->totr.ymin); + y -= vspacing; + } + } + + locx -= maxwidth; + } + + MEM_freeN(layout); +} + diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 11e7949791d..79af9b273ff 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -95,6 +95,8 @@ void node_operatortypes(void) WM_operatortype_append(NODE_OT_backimage_sample); WM_operatortype_append(NODE_OT_add_file); + + WM_operatortype_append(NODE_OT_auto_layout); } void ED_operatormacros_node(void) @@ -183,6 +185,5 @@ 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); - transform_keymap_for_space(keyconf, keymap, SPACE_NODE); } diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 1c2f604a650..3147e5d7a38 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -34,10 +34,12 @@ #include #include +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" #include "DNA_node_types.h" #include "DNA_object_types.h" -#include "DNA_material_types.h" #include "DNA_scene_types.h" +#include "DNA_world_types.h" #include "MEM_guardedalloc.h" @@ -252,9 +254,21 @@ static void node_area_refresh(const struct bContext *C, struct ScrArea *sa) if(snode->nodetree) { if(snode->treetype==NTREE_SHADER) { - Material *ma= (Material *)snode->id; - if(ma->use_nodes) - ED_preview_shader_job(C, sa, snode->id, NULL, NULL, 100, 100, PR_NODE_RENDER); + if(GS(snode->id->name) == ID_MA) { + Material *ma= (Material *)snode->id; + if(ma->use_nodes) + ED_preview_shader_job(C, sa, snode->id, NULL, NULL, 100, 100, PR_NODE_RENDER); + } + else if(GS(snode->id->name) == ID_LA) { + Lamp *la= (Lamp *)snode->id; + if(la->use_nodes) + ED_preview_shader_job(C, sa, snode->id, NULL, NULL, 100, 100, PR_NODE_RENDER); + } + else if(GS(snode->id->name) == ID_WO) { + World *wo= (World *)snode->id; + if(wo->use_nodes) + ED_preview_shader_job(C, sa, snode->id, NULL, NULL, 100, 100, PR_NODE_RENDER); + } } else if(snode->treetype==NTREE_COMPOSIT) { Scene *scene= (Scene *)snode->id; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index ed9d6f77ffa..39265f4073e 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5765,7 +5765,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) } /* maximum drawtype */ - dt= MIN2(v3d->drawtype, ob->dt); + dt= v3d->drawtype; + if(dt==OB_RENDER) dt= OB_SOLID; + dt= MIN2(dt, ob->dt); if(v3d->zbuf==0 && dt>OB_WIRE) dt= OB_WIRE; dtx= 0; diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index a8cdc99645d..c96917333fd 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -58,6 +58,7 @@ #include "WM_api.h" #include "WM_types.h" +#include "RE_pipeline.h" #include "RNA_access.h" @@ -306,6 +307,9 @@ static SpaceLink *view3d_duplicate(SpaceLink *sl) v3do->lay= v3dn->localvd->lay; v3do->lay &= 0xFFFFFF; } + + if(v3dn->drawtype == OB_RENDER) + v3dn->drawtype = OB_SOLID; /* copy or clear inside new stuff */ @@ -507,6 +511,9 @@ static void view3d_main_area_free(ARegion *ar) if(rv3d->ri) { // XXX BIF_view3d_previewrender_free(rv3d); } + + if(rv3d->render_engine) + RE_engine_free(rv3d->render_engine); if(rv3d->depths) { if(rv3d->depths->depths) MEM_freeN(rv3d->depths->depths); @@ -531,6 +538,7 @@ static void *view3d_main_area_duplicate(void *poin) new->depths= NULL; new->ri= NULL; + new->render_engine= NULL; new->gpd= NULL; new->sms= NULL; new->smooth_timer= NULL; @@ -570,9 +578,16 @@ static void view3d_recalc_used_layers(ARegion *ar, wmNotifier *wmn, Scene *scene } } +static void view3d_main_area_render_update(RegionView3D *rv3d) +{ + if(rv3d->render_engine) + rv3d->render_engine->type->update(rv3d->render_engine, NULL); +} + static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) { bScreen *sc; + RegionView3D *rv3d= ar->regiondata; /* context changes */ switch(wmn->category) { @@ -598,6 +613,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_LAYER_CONTENT: view3d_recalc_used_layers(ar, wmn, wmn->reference); ED_region_tag_redraw(ar); + view3d_main_area_render_update(rv3d); break; case ND_FRAME: case ND_TRANSFORM: @@ -696,10 +712,9 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) break; case NC_SPACE: if(wmn->data == ND_SPACE_VIEW3D) { - if (wmn->subtype == NS_VIEW3D_GPU) { - RegionView3D *rv3d= ar->regiondata; + if (wmn->subtype == NS_VIEW3D_GPU) rv3d->rflag |= RV3D_GPULIGHT_UPDATE; - } + ED_region_tag_redraw(ar); } break; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 78538a6f16d..3e2328ed010 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2300,6 +2300,37 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar) BLF_draw_default(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1); } +static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) +{ + Scene *scene= CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); + RegionView3D *rv3d= CTX_wm_region_view3d(C); + RenderEngineType *type; + + if(!rv3d->render_engine) { + for(type=R_engines.first; type; type=type->next) + if(strcmp(type->idname, scene->r.engine) == 0) + break; + + if(!type || !type->draw) + return 0; + + rv3d->render_engine = RE_engine_create(type); + } + + view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL); + + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); + + ED_region_pixelspace(ar); + + type = rv3d->render_engine->type; + type->draw(rv3d->render_engine, scene); + + return 1; +} + /* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */ void view3d_main_area_draw(const bContext *C, ARegion *ar) { @@ -2312,6 +2343,10 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) unsigned int lay_used; const char *grid_unit= NULL; + /* possible use (external) render engine instead */ + if(v3d->drawtype == OB_RENDER && view3d_main_area_draw_engine(C, ar)); + else { + /* shadow buffers, before we setup matrices */ if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype)) gpu_update_lamps_shadows(scene, v3d); @@ -2488,6 +2523,8 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) } ED_region_pixelspace(ar); + + } // retopo_paint_view_update(v3d); // retopo_draw_paint_lines(); @@ -2536,3 +2573,4 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) v3d->flag |= V3D_INVALID_BACKBUF; } + diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 267283ee47a..2cec3cf7a97 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -224,6 +224,7 @@ typedef struct PreviewImage { #define LIB_PRE_EXISTING 2048 /* runtime */ #define LIB_ID_RECALC 4096 +#define LIB_ID_RECALC_DATA 8192 #ifdef __cplusplus } diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index 99ed2319415..9bfee52971c 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -42,7 +42,6 @@ struct ImBuf; struct RenderResult; struct GPUTexture; - /* ImageUser is in Texture, in Nodes, Background Image, Image Window, .... */ /* should be used in conjunction with an ID * to Image. */ typedef struct ImageUser { diff --git a/source/blender/makesdna/DNA_lamp_types.h b/source/blender/makesdna/DNA_lamp_types.h index 9377b5d8a09..67ca01628d8 100644 --- a/source/blender/makesdna/DNA_lamp_types.h +++ b/source/blender/makesdna/DNA_lamp_types.h @@ -39,10 +39,11 @@ #define MAX_MTEX 18 #endif -struct MTex; -struct CurveMapping; struct AnimData; +struct bNodeTree; +struct CurveMapping; struct Ipo; +struct MTex; typedef struct Lamp { ID id; @@ -100,11 +101,14 @@ typedef struct Lamp { struct Ipo *ipo; // XXX depreceated... old animation system struct MTex *mtex[18]; /* MAX_MTEX */ - short pr_texture; - char pad6[6]; + short pr_texture, use_nodes; + char pad6[4]; /* preview */ struct PreviewImage *preview; + + /* nodes */ + struct bNodeTree *nodetree; } Lamp; /* **************** LAMP ********************* */ diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 03387c3a63a..f3540e5fcc7 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -46,6 +46,7 @@ struct bNodeGroup; struct AnimData; struct bGPdata; struct uiBlock; +struct Image; #define NODE_MAXSTR 32 @@ -99,6 +100,7 @@ typedef struct bNodeSocket { #define SOCK_VALUE 0 #define SOCK_VECTOR 1 #define SOCK_RGBA 2 +#define SOCK_CLOSURE 3 /* sock->flag, first bit is select */ /* hidden is user defined, to hide unused */ @@ -107,6 +109,8 @@ typedef struct bNodeSocket { #define SOCK_IN_USE 4 /* unavailable is for dynamic sockets */ #define SOCK_UNAVAIL 8 + /* socket collapsed in UI */ +#define SOCK_COLLAPSED 16 /* sock->stack_type */ #define SOCK_STACK_LOCAL 1 /* part of the local tree stack */ @@ -345,18 +349,157 @@ typedef struct NodeColorspill { float uspillr, uspillg, uspillb; }NodeColorspill; +typedef struct NodeTexSky { + float sun_direction[3]; + float turbidity; +} NodeTexSky; + +typedef struct NodeTexImage { + int pad; +} NodeTexImage; + +typedef struct NodeTexEnvironment { + int pad; +} NodeTexEnvironment; + +typedef struct NodeTexBlend { + int progression; + int axis; +} NodeTexBlend; + +typedef struct NodeTexClouds { + int hard; + int depth; + int basis; + int pad; +} NodeTexClouds; + +typedef struct NodeTexVoronoi { + int distance_metric; + int coloring; +} NodeTexVoronoi; + +typedef struct NodeTexMusgrave { + int type; + int basis; +} NodeTexMusgrave; + +typedef struct NodeTexMarble { + int type; + int wave; + int basis; + int hard; + int depth; + int pad; +} NodeTexMarble; + +typedef struct NodeTexMagic { + int depth; + int pad; +} NodeTexMagic; + +typedef struct NodeTexStucci { + int type; + int basis; + int hard; + int pad; +} NodeTexStucci; + +typedef struct NodeTexDistortedNoise { + int basis; + int distortion_basis; +} NodeTexDistortedNoise; + +typedef struct NodeTexWood { + int type; + int wave; + int basis; + int hard; +} NodeTexWood; + /* TEX_output */ typedef struct TexNodeOutput { char name[32]; } TexNodeOutput; - /* comp channel matte */ #define CMP_NODE_CHANNEL_MATTE_CS_RGB 1 #define CMP_NODE_CHANNEL_MATTE_CS_HSV 2 #define CMP_NODE_CHANNEL_MATTE_CS_YUV 3 #define CMP_NODE_CHANNEL_MATTE_CS_YCC 4 +/* glossy distributions */ +#define SHD_GLOSSY_BECKMANN 0 +#define SHD_GLOSSY_SHARP 1 +#define SHD_GLOSSY_GGX 2 + +/* blend texture */ +#define SHD_BLEND_LINEAR 0 +#define SHD_BLEND_QUADRATIC 1 +#define SHD_BLEND_EASING 2 +#define SHD_BLEND_DIAGONAL 3 +#define SHD_BLEND_RADIAL 4 +#define SHD_BLEND_QUADRATIC_SPHERE 5 +#define SHD_BLEND_SPHERICAL 6 + +#define SHD_BLEND_HORIZONTAL 0 +#define SHD_BLEND_VERTICAL 1 + +/* noise basis for textures */ +#define SHD_NOISE_PERLIN 0 +#define SHD_NOISE_VORONOI_F1 1 +#define SHD_NOISE_VORONOI_F2 2 +#define SHD_NOISE_VORONOI_F3 3 +#define SHD_NOISE_VORONOI_F4 4 +#define SHD_NOISE_VORONOI_F2_F1 5 +#define SHD_NOISE_VORONOI_CRACKLE 6 +#define SHD_NOISE_CELL_NOISE 7 + +#define SHD_NOISE_SOFT 0 +#define SHD_NOISE_HARD 1 + +/* voronoi texture */ +#define SHD_VORONOI_DISTANCE_SQUARED 0 +#define SHD_VORONOI_ACTUAL_DISTANCE 1 +#define SHD_VORONOI_MANHATTAN 2 +#define SHD_VORONOI_CHEBYCHEV 3 +#define SHD_VORONOI_MINKOVSKY_H 4 +#define SHD_VORONOI_MINKOVSKY_4 5 +#define SHD_VORONOI_MINKOVSKY 6 + +#define SHD_VORONOI_INTENSITY 0 +#define SHD_VORONOI_POSITION 1 +#define SHD_VORONOI_POSITION_OUTLINE 2 +#define SHD_VORONOI_POSITION_OUTLINE_INTENSITY 3 + +/* musgrave texture */ +#define SHD_MUSGRAVE_MULTIFRACTAL 0 +#define SHD_MUSGRAVE_FBM 1 +#define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2 +#define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3 +#define SHD_MUSGRAVE_HETERO_TERRAIN 4 + +/* marble texture */ +#define SHD_MARBLE_SOFT 0 +#define SHD_MARBLE_SHARP 1 +#define SHD_MARBLE_SHARPER 2 + +#define SHD_WAVE_SINE 0 +#define SHD_WAVE_SAW 1 +#define SHD_WAVE_TRI 2 + +/* stucci texture */ +#define SHD_STUCCI_PLASTIC 0 +#define SHD_STUCCI_WALL_IN 1 +#define SHD_STUCCI_WALL_OUT 2 + +/* wood texture */ +#define SHD_WOOD_BANDS 0 +#define SHD_WOOD_RINGS 1 +#define SHD_WOOD_BAND_NOISE 2 +#define SHD_WOOD_RING_NOISE 3 + +/* blur node */ #define CMP_NODE_BLUR_ASPECT_NONE 0 #define CMP_NODE_BLUR_ASPECT_Y 1 #define CMP_NODE_BLUR_ASPECT_X 2 diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index c97a1d8fef5..7194905f9c3 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -378,6 +378,7 @@ extern Object workob; #define OB_SOLID 3 #define OB_SHADED 4 #define OB_TEXTURE 5 +#define OB_RENDER 6 /* dtx: flags, char! */ #define OB_AXIS 2 diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 7cb0c9456db..2c6cbb77bf5 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -402,7 +402,9 @@ typedef struct SpaceNode { struct bNodeTree *nodetree, *edittree; int treetype; /* treetype: as same nodetree->type */ short texfrom; /* texfrom object, world or brush */ + short shaderfrom; /* shader from object or world */ short recalc; /* currently on 0/1, for auto compo */ + short pad[3]; ListBase linkdrag; /* temporary data for modal linking operator */ struct bGPdata *gpd; /* grease-pencil data */ @@ -420,6 +422,10 @@ typedef struct SpaceNode { #define SNODE_TEX_WORLD 1 #define SNODE_TEX_BRUSH 2 +/* snode->shaderfrom */ +#define SNODE_SHADER_OBJECT 0 +#define SNODE_SHADER_WORLD 1 + typedef struct SpaceLogic { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index c9a440522d1..266121495ff 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -41,6 +41,7 @@ struct SpaceLink; struct Base; struct BoundBox; struct RenderInfo; +struct RenderEngine; struct bGPdata; struct SmoothViewStore; struct wmTimer; @@ -114,6 +115,7 @@ typedef struct RegionView3D { struct RegionView3D *localvd; /* allocated backup of its self while in localview */ struct RenderInfo *ri; + struct RenderEngine *render_engine; struct ViewDepths *depths; /* animated smooth view */ diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index 71d907f1c12..700f774c83a 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -36,6 +36,7 @@ #include "DNA_ID.h" struct AnimData; +struct bNodeTree; struct Ipo; struct MTex; @@ -122,11 +123,14 @@ typedef struct World { struct Ipo *ipo; // XXX depreceated... old animation system struct MTex *mtex[18]; /* MAX_MTEX */ - short pr_texture, pad[3]; + short pr_texture, use_nodes, pad[2]; /* previews */ struct PreviewImage *preview; + /* nodes */ + struct bNodeTree *nodetree; + } World; /* **************** WORLD ********************* */ diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 2816a8717c1..df777db211d 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -31,7 +31,6 @@ #include -#include "DNA_listBase.h" #include "RNA_types.h" #ifdef __cplusplus @@ -40,6 +39,7 @@ extern "C" { struct bContext; struct ID; +struct ListBase; struct Main; struct ReportList; struct Scene; @@ -47,531 +47,530 @@ struct Scene; /* Types */ extern BlenderRNA BLENDER_RNA; -extern StructRNA RNA_Action; -extern StructRNA RNA_ActionConstraint; -extern StructRNA RNA_ActionGroup; -extern StructRNA RNA_Actuator; -extern StructRNA RNA_ActuatorSensor; -extern StructRNA RNA_Addon; -extern StructRNA RNA_AlwaysSensor; -extern StructRNA RNA_AndController; -extern StructRNA RNA_AnimData; -extern StructRNA RNA_AnimViz; -extern StructRNA RNA_AnimVizMotionPaths; -extern StructRNA RNA_AnimVizOnionSkinning; -extern StructRNA RNA_AnyType; -extern StructRNA RNA_Area; -extern StructRNA RNA_AreaLamp; -extern StructRNA RNA_Armature; -extern StructRNA RNA_ArmatureModifier; -extern StructRNA RNA_ArmatureSensor; -extern StructRNA RNA_ArrayModifier; -extern StructRNA RNA_BackgroundImage; -extern StructRNA RNA_BevelModifier; -extern StructRNA RNA_BezierSplinePoint; -extern StructRNA RNA_BlendData; -extern StructRNA RNA_BlendTexture; -extern StructRNA RNA_BlenderRNA; -extern StructRNA RNA_BoidRule; -extern StructRNA RNA_BoidRuleAverageSpeed; -extern StructRNA RNA_BoidRuleAvoid; -extern StructRNA RNA_BoidRuleAvoidCollision; -extern StructRNA RNA_BoidRuleFight; -extern StructRNA RNA_BoidRuleFollowLeader; -extern StructRNA RNA_BoidRuleGoal; -extern StructRNA RNA_BoidSettings; -extern StructRNA RNA_BoidState; -extern StructRNA RNA_Bone; -extern StructRNA RNA_BoneGroup; -extern StructRNA RNA_BooleanModifier; -extern StructRNA RNA_BooleanProperty; -extern StructRNA RNA_Brush; -extern StructRNA RNA_BrushTextureSlot; -extern StructRNA RNA_BuildModifier; -extern StructRNA RNA_Camera; -extern StructRNA RNA_CastModifier; -extern StructRNA RNA_ChildOfConstraint; -extern StructRNA RNA_ChildParticle; -extern StructRNA RNA_ClampToConstraint; -extern StructRNA RNA_ClothCollisionSettings; -extern StructRNA RNA_ClothModifier; -extern StructRNA RNA_ClothSettings; -extern StructRNA RNA_CloudsTexture; -extern StructRNA RNA_CollectionProperty; -extern StructRNA RNA_CollisionModifier; -extern StructRNA RNA_CollisionSensor; -extern StructRNA RNA_CollisionSettings; -extern StructRNA RNA_ColorRamp; -extern StructRNA RNA_ColorRampElement; -extern StructRNA RNA_ColorSequence; -extern StructRNA RNA_CompositorNode; -extern StructRNA RNA_CompositorNodeAlphaOver; -extern StructRNA RNA_CompositorNodeBilateralblur; -extern StructRNA RNA_CompositorNodeBlur; -extern StructRNA RNA_CompositorNodeBrightContrast; -extern StructRNA RNA_CompositorNodeChannelMatte; -extern StructRNA RNA_CompositorNodeChromaMatte; -extern StructRNA RNA_CompositorNodeColorMatte; -extern StructRNA RNA_CompositorNodeColorSpill; -extern StructRNA RNA_CompositorNodeCombHSVA; -extern StructRNA RNA_CompositorNodeCombRGBA; -extern StructRNA RNA_CompositorNodeCombYCCA; -extern StructRNA RNA_CompositorNodeCombYUVA; -extern StructRNA RNA_CompositorNodeComposite; -extern StructRNA RNA_CompositorNodeCrop; -extern StructRNA RNA_CompositorNodeCurveRGB; -extern StructRNA RNA_CompositorNodeCurveVec; -extern StructRNA RNA_CompositorNodeDBlur; -extern StructRNA RNA_CompositorNodeDefocus; -extern StructRNA RNA_CompositorNodeDiffMatte; -extern StructRNA RNA_CompositorNodeDilateErode; -extern StructRNA RNA_CompositorNodeDisplace; -extern StructRNA RNA_CompositorNodeDistanceMatte; -extern StructRNA RNA_CompositorNodeFilter; -extern StructRNA RNA_CompositorNodeFlip; -extern StructRNA RNA_CompositorNodeGamma; -extern StructRNA RNA_CompositorNodeGlare; -extern StructRNA RNA_CompositorNodeHueSat; -extern StructRNA RNA_CompositorNodeIDMask; -extern StructRNA RNA_CompositorNodeImage; -extern StructRNA RNA_CompositorNodeInvert; -extern StructRNA RNA_CompositorNodeLensdist; -extern StructRNA RNA_CompositorNodeLevels; -extern StructRNA RNA_CompositorNodeLumaMatte; -extern StructRNA RNA_CompositorNodeMapUV; -extern StructRNA RNA_CompositorNodeMapValue; -extern StructRNA RNA_CompositorNodeMath; -extern StructRNA RNA_CompositorNodeMixRGB; -extern StructRNA RNA_CompositorNodeNormal; -extern StructRNA RNA_CompositorNodeNormalize; -extern StructRNA RNA_CompositorNodeOutputFile; -extern StructRNA RNA_CompositorNodePremulKey; -extern StructRNA RNA_CompositorNodeRGB; -extern StructRNA RNA_CompositorNodeRGBToBW; -extern StructRNA RNA_CompositorNodeRLayers; -extern StructRNA RNA_CompositorNodeRotate; -extern StructRNA RNA_CompositorNodeScale; -extern StructRNA RNA_CompositorNodeSepHSVA; -extern StructRNA RNA_CompositorNodeSepRGBA; -extern StructRNA RNA_CompositorNodeSepYCCA; -extern StructRNA RNA_CompositorNodeSepYUVA; -extern StructRNA RNA_CompositorNodeSetAlpha; -extern StructRNA RNA_CompositorNodeSplitViewer; -extern StructRNA RNA_CompositorNodeTexture; -extern StructRNA RNA_CompositorNodeTime; -extern StructRNA RNA_CompositorNodeTonemap; -extern StructRNA RNA_CompositorNodeTranslate; -extern StructRNA RNA_CompositorNodeTree; -extern StructRNA RNA_CompositorNodeValToRGB; -extern StructRNA RNA_CompositorNodeValue; -extern StructRNA RNA_CompositorNodeVecBlur; -extern StructRNA RNA_CompositorNodeViewer; -extern StructRNA RNA_CompositorNodeZcombine; -extern StructRNA RNA_ConsoleLine; -extern StructRNA RNA_Constraint; -extern StructRNA RNA_ConstraintTarget; -extern StructRNA RNA_Context; -extern StructRNA RNA_ControlFluidSettings; -extern StructRNA RNA_Controller; -extern StructRNA RNA_CopyLocationConstraint; -extern StructRNA RNA_CopyRotationConstraint; -extern StructRNA RNA_CopyScaleConstraint; -extern StructRNA RNA_CopyTransformsConstraint; -extern StructRNA RNA_Curve; -extern StructRNA RNA_CurveMap; -extern StructRNA RNA_CurveMapPoint; -extern StructRNA RNA_CurveMapping; -extern StructRNA RNA_CurveModifier; -extern StructRNA RNA_CurvePoint; -extern StructRNA RNA_DampedTrackConstraint; -extern StructRNA RNA_DecimateModifier; -extern StructRNA RNA_DelaySensor; -extern StructRNA RNA_DisplaceModifier; -extern StructRNA RNA_DistortedNoiseTexture; -extern StructRNA RNA_DomainFluidSettings; -extern StructRNA RNA_Driver; -extern StructRNA RNA_DriverTarget; -extern StructRNA RNA_DriverVariable; -extern StructRNA RNA_DupliObject; -extern StructRNA RNA_EdgeSplitModifier; -extern StructRNA RNA_EditBone; -extern StructRNA RNA_EffectSequence; -extern StructRNA RNA_EffectorWeights; -extern StructRNA RNA_EnumProperty; -extern StructRNA RNA_EnumPropertyItem; -extern StructRNA RNA_EnvironmentMap; -extern StructRNA RNA_EnvironmentMapTexture; -extern StructRNA RNA_Event; -extern StructRNA RNA_ExplodeModifier; -extern StructRNA RNA_ExpressionController; -extern StructRNA RNA_FCurve; -extern StructRNA RNA_FCurveSample; -extern StructRNA RNA_FModifier; -extern StructRNA RNA_FModifierCycles; -extern StructRNA RNA_FModifierEnvelope; -extern StructRNA RNA_FModifierEnvelopeControlPoint; -extern StructRNA RNA_FModifierFunctionGenerator; -extern StructRNA RNA_FModifierGenerator; -extern StructRNA RNA_FModifierLimits; -extern StructRNA RNA_FModifierNoise; -extern StructRNA RNA_FModifierPython; -extern StructRNA RNA_FModifierStepped; -extern StructRNA RNA_FieldSettings; -extern StructRNA RNA_FileSelectParams; -extern StructRNA RNA_FloatProperty; -extern StructRNA RNA_FloorConstraint; -extern StructRNA RNA_FluidFluidSettings; -extern StructRNA RNA_FluidSettings; -extern StructRNA RNA_FluidSimulationModifier; -extern StructRNA RNA_FollowPathConstraint; -extern StructRNA RNA_Function; -extern StructRNA RNA_GPencilFrame; -extern StructRNA RNA_GPencilLayer; -extern StructRNA RNA_GPencilStroke; -extern StructRNA RNA_GPencilStrokePoint; -extern StructRNA RNA_GameBooleanProperty; -extern StructRNA RNA_GameFloatProperty; -extern StructRNA RNA_GameIntProperty; -extern StructRNA RNA_GameObjectSettings; -extern StructRNA RNA_GameProperty; -extern StructRNA RNA_GameSoftBodySettings; -extern StructRNA RNA_GameStringProperty; -extern StructRNA RNA_GameTimerProperty; -extern StructRNA RNA_GlowSequence; -extern StructRNA RNA_GreasePencil; -extern StructRNA RNA_Group; -extern StructRNA RNA_Header; -extern StructRNA RNA_HemiLamp; -extern StructRNA RNA_Histogram; -extern StructRNA RNA_HookModifier; -extern StructRNA RNA_ID; -extern StructRNA RNA_IKParam; -extern StructRNA RNA_Image; -extern StructRNA RNA_ImagePaint; -extern StructRNA RNA_ImageSequence; -extern StructRNA RNA_ImageTexture; -extern StructRNA RNA_ImageUser; -extern StructRNA RNA_InflowFluidSettings; -extern StructRNA RNA_IntProperty; -extern StructRNA RNA_Itasc; -extern StructRNA RNA_JoystickSensor; -extern StructRNA RNA_Key; -extern StructRNA RNA_KeyConfig; -extern StructRNA RNA_KeyMap; -extern StructRNA RNA_KeyMapItem; -extern StructRNA RNA_KeyboardSensor; -extern StructRNA RNA_Keyframe; -extern StructRNA RNA_KeyingSet; -extern StructRNA RNA_KeyingSetInfo; -extern StructRNA RNA_KeyingSetPath; -extern StructRNA RNA_KinematicConstraint; -extern StructRNA RNA_Lamp; -extern StructRNA RNA_LampSkySettings; -extern StructRNA RNA_LampTextureSlot; -extern StructRNA RNA_Lattice; -extern StructRNA RNA_LatticeModifier; -extern StructRNA RNA_LatticePoint; -extern StructRNA RNA_Library; -extern StructRNA RNA_LimitDistanceConstraint; -extern StructRNA RNA_LimitLocationConstraint; -extern StructRNA RNA_LimitRotationConstraint; -extern StructRNA RNA_LimitScaleConstraint; -extern StructRNA RNA_LockedTrackConstraint; -extern StructRNA RNA_Macro; -extern StructRNA RNA_MagicTexture; -extern StructRNA RNA_MarbleTexture; -extern StructRNA RNA_MaskModifier; -extern StructRNA RNA_Material; -extern StructRNA RNA_MaterialHalo; -extern StructRNA RNA_MaterialPhysics; -extern StructRNA RNA_MaterialRaytraceMirror; -extern StructRNA RNA_MaterialRaytraceTransparency; -extern StructRNA RNA_MaterialSlot; -extern StructRNA RNA_MaterialStrand; -extern StructRNA RNA_MaterialSubsurfaceScattering; -extern StructRNA RNA_MaterialTextureSlot; -extern StructRNA RNA_MaterialVolume; -extern StructRNA RNA_Menu; -extern StructRNA RNA_Mesh; -extern StructRNA RNA_MeshColor; -extern StructRNA RNA_MeshColorLayer; -extern StructRNA RNA_MeshDeformModifier; -extern StructRNA RNA_MeshEdge; -extern StructRNA RNA_MeshFace; -extern StructRNA RNA_MeshFloatProperty; -extern StructRNA RNA_MeshFloatPropertyLayer; -extern StructRNA RNA_MeshIntProperty; -extern StructRNA RNA_MeshIntPropertyLayer; -extern StructRNA RNA_MeshSticky; -extern StructRNA RNA_MeshStringProperty; -extern StructRNA RNA_MeshStringPropertyLayer; -extern StructRNA RNA_MeshTextureFace; -extern StructRNA RNA_MeshTextureFaceLayer; -extern StructRNA RNA_MeshVertex; -extern StructRNA RNA_MessageSensor; -extern StructRNA RNA_MetaBall; -extern StructRNA RNA_MetaElement; -extern StructRNA RNA_MetaSequence; -extern StructRNA RNA_MirrorModifier; -extern StructRNA RNA_Modifier; -extern StructRNA RNA_MotionPath; -extern StructRNA RNA_MotionPathVert; -extern StructRNA RNA_MouseSensor; -extern StructRNA RNA_MovieSequence; -extern StructRNA RNA_MulticamSequence; -extern StructRNA RNA_MultiresModifier; -extern StructRNA RNA_MusgraveTexture; -extern StructRNA RNA_NandController; -extern StructRNA RNA_NearSensor; -extern StructRNA RNA_NlaStrip; -extern StructRNA RNA_NlaTrack; -extern StructRNA RNA_Node; -extern StructRNA RNA_NodeGroup; -extern StructRNA RNA_NodeLink; -extern StructRNA RNA_NodeSocket; -extern StructRNA RNA_NodeTree; -extern StructRNA RNA_NoiseTexture; -extern StructRNA RNA_NorController; -extern StructRNA RNA_Object; -extern StructRNA RNA_ObjectBase; -extern StructRNA RNA_ObstacleFluidSettings; -extern StructRNA RNA_Operator; -extern StructRNA RNA_OperatorFileListElement; -extern StructRNA RNA_OperatorMousePath; -extern StructRNA RNA_OperatorProperties; -extern StructRNA RNA_OperatorStrokeElement; -extern StructRNA RNA_OperatorTypeMacro; -extern StructRNA RNA_OrController; -extern StructRNA RNA_OutflowFluidSettings; -extern StructRNA RNA_PackedFile; -extern StructRNA RNA_Paint; -extern StructRNA RNA_Panel; -extern StructRNA RNA_Particle; -extern StructRNA RNA_ParticleBrush; -extern StructRNA RNA_ParticleDupliWeight; -extern StructRNA RNA_ParticleEdit; -extern StructRNA RNA_ParticleFluidSettings; -extern StructRNA RNA_ParticleHairKey; -extern StructRNA RNA_ParticleInstanceModifier; -extern StructRNA RNA_ParticleKey; -extern StructRNA RNA_ParticleSettings; -extern StructRNA RNA_ParticleSettingsTextureSlot; -extern StructRNA RNA_ParticleSystem; -extern StructRNA RNA_ParticleSystemModifier; -extern StructRNA RNA_ParticleTarget; -extern StructRNA RNA_PivotConstraint; -extern StructRNA RNA_PluginSequence; -extern StructRNA RNA_PluginTexture; -extern StructRNA RNA_PointCache; -extern StructRNA RNA_PointDensity; -extern StructRNA RNA_PointDensityTexture; -extern StructRNA RNA_PointLamp; -extern StructRNA RNA_PointerProperty; -extern StructRNA RNA_Pose; -extern StructRNA RNA_PoseBone; -extern StructRNA RNA_Property; -extern StructRNA RNA_PropertyGroup; -extern StructRNA RNA_PropertyGroupItem; -extern StructRNA RNA_PropertySensor; -extern StructRNA RNA_PythonConstraint; -extern StructRNA RNA_PythonController; -extern StructRNA RNA_RGBANodeSocket; -extern StructRNA RNA_RadarSensor; -extern StructRNA RNA_RandomSensor; -extern StructRNA RNA_RaySensor; -extern StructRNA RNA_Region; -extern StructRNA RNA_RenderEngine; -extern StructRNA RNA_RenderLayer; -extern StructRNA RNA_RenderPass; -extern StructRNA RNA_RenderResult; -extern StructRNA RNA_RenderSettings; -extern StructRNA RNA_RigidBodyJointConstraint; -extern StructRNA RNA_SPHFluidSettings; -extern StructRNA RNA_Scene; -extern StructRNA RNA_SceneGameData; -extern StructRNA RNA_SceneRenderLayer; -extern StructRNA RNA_SceneSequence; -extern StructRNA RNA_Scopes; -extern StructRNA RNA_Screen; -extern StructRNA RNA_ScrewModifier; -extern StructRNA RNA_Sculpt; -extern StructRNA RNA_Sensor; -extern StructRNA RNA_Sequence; -extern StructRNA RNA_SequenceColorBalance; -extern StructRNA RNA_SequenceCrop; -extern StructRNA RNA_SequenceEditor; -extern StructRNA RNA_SequenceElement; -extern StructRNA RNA_SequenceProxy; -extern StructRNA RNA_SequenceTransform; -extern StructRNA RNA_ShaderNode; -extern StructRNA RNA_ShaderNodeCameraData; -extern StructRNA RNA_ShaderNodeCombineRGB; -extern StructRNA RNA_ShaderNodeExtendedMaterial; -extern StructRNA RNA_ShaderNodeGeometry; -extern StructRNA RNA_ShaderNodeHueSaturation; -extern StructRNA RNA_ShaderNodeInvert; -extern StructRNA RNA_ShaderNodeMapping; -extern StructRNA RNA_ShaderNodeMaterial; -extern StructRNA RNA_ShaderNodeMath; -extern StructRNA RNA_ShaderNodeMixRGB; -extern StructRNA RNA_ShaderNodeNormal; -extern StructRNA RNA_ShaderNodeOutput; -extern StructRNA RNA_ShaderNodeRGB; -extern StructRNA RNA_ShaderNodeRGBCurve; -extern StructRNA RNA_ShaderNodeRGBToBW; -extern StructRNA RNA_ShaderNodeSeparateRGB; -extern StructRNA RNA_ShaderNodeSqueeze; -extern StructRNA RNA_ShaderNodeTexture; -extern StructRNA RNA_ShaderNodeTree; -extern StructRNA RNA_ShaderNodeValToRGB; -extern StructRNA RNA_ShaderNodeValue; -extern StructRNA RNA_ShaderNodeVectorCurve; -extern StructRNA RNA_ShaderNodeVectorMath; -extern StructRNA RNA_ShapeKey; -extern StructRNA RNA_ShapeKeyBezierPoint; -extern StructRNA RNA_ShapeKeyCurvePoint; -extern StructRNA RNA_ShapeKeyPoint; -extern StructRNA RNA_ShrinkwrapConstraint; -extern StructRNA RNA_ShrinkwrapModifier; -extern StructRNA RNA_SimpleDeformModifier; -extern StructRNA RNA_SmokeCollSettings; -extern StructRNA RNA_SmokeDomainSettings; -extern StructRNA RNA_SmokeFlowSettings; -extern StructRNA RNA_SmokeModifier; -extern StructRNA RNA_SmoothModifier; -extern StructRNA RNA_SoftBodyModifier; -extern StructRNA RNA_SoftBodySettings; -extern StructRNA RNA_SolidifyModifier; -extern StructRNA RNA_Sound; -extern StructRNA RNA_SoundSequence; -extern StructRNA RNA_Space; -extern StructRNA RNA_SpaceConsole; -extern StructRNA RNA_SpaceDopeSheetEditor; -extern StructRNA RNA_SpaceFileBrowser; -extern StructRNA RNA_SpaceGraphEditor; -extern StructRNA RNA_SpaceImageEditor; -extern StructRNA RNA_SpaceInfo; -extern StructRNA RNA_SpaceLogicEditor; -extern StructRNA RNA_SpaceNLA; -extern StructRNA RNA_SpaceNodeEditor; -extern StructRNA RNA_SpaceOutliner; -extern StructRNA RNA_SpaceProperties; -extern StructRNA RNA_SpaceSequenceEditor; -extern StructRNA RNA_SpaceTextEditor; -extern StructRNA RNA_SpaceTimeline; -extern StructRNA RNA_SpaceUVEditor; -extern StructRNA RNA_SpaceUserPreferences; -extern StructRNA RNA_SpaceView3D; -extern StructRNA RNA_SpeedControlSequence; -extern StructRNA RNA_Spline; -extern StructRNA RNA_SplineIKConstraint; -extern StructRNA RNA_SpotLamp; -extern StructRNA RNA_StretchToConstraint; -extern StructRNA RNA_StringProperty; -extern StructRNA RNA_Struct; -extern StructRNA RNA_StucciTexture; -extern StructRNA RNA_SubsurfModifier; -extern StructRNA RNA_SunLamp; -extern StructRNA RNA_SurfaceCurve; -extern StructRNA RNA_SurfaceModifier; -extern StructRNA RNA_TexMapping; -extern StructRNA RNA_Text; -extern StructRNA RNA_TextBox; -extern StructRNA RNA_TextCharacterFormat; -extern StructRNA RNA_TextCurve; -extern StructRNA RNA_TextLine; -extern StructRNA RNA_TextMarker; -extern StructRNA RNA_Texture; -extern StructRNA RNA_TextureNode; -extern StructRNA RNA_TextureNodeBricks; -extern StructRNA RNA_TextureNodeChecker; -extern StructRNA RNA_TextureNodeCompose; -extern StructRNA RNA_TextureNodeCoordinates; -extern StructRNA RNA_TextureNodeCurveRGB; -extern StructRNA RNA_TextureNodeCurveTime; -extern StructRNA RNA_TextureNodeDecompose; -extern StructRNA RNA_TextureNodeDistance; -extern StructRNA RNA_TextureNodeHueSaturation; -extern StructRNA RNA_TextureNodeImage; -extern StructRNA RNA_TextureNodeInvert; -extern StructRNA RNA_TextureNodeMath; -extern StructRNA RNA_TextureNodeMixRGB; -extern StructRNA RNA_TextureNodeOutput; -extern StructRNA RNA_TextureNodeRGBToBW; -extern StructRNA RNA_TextureNodeRotate; -extern StructRNA RNA_TextureNodeScale; -extern StructRNA RNA_TextureNodeTexture; -extern StructRNA RNA_TextureNodeTranslate; -extern StructRNA RNA_TextureNodeTree; -extern StructRNA RNA_TextureNodeValToNor; -extern StructRNA RNA_TextureNodeValToRGB; -extern StructRNA RNA_TextureNodeViewer; -extern StructRNA RNA_TextureSlot; -extern StructRNA RNA_Theme; -extern StructRNA RNA_ThemeAudioWindow; -extern StructRNA RNA_ThemeBoneColorSet; -extern StructRNA RNA_ThemeConsole; -extern StructRNA RNA_ThemeDopeSheet; -extern StructRNA RNA_ThemeFileBrowser; -extern StructRNA RNA_ThemeFontStyle; -extern StructRNA RNA_ThemeGraphEditor; -extern StructRNA RNA_ThemeImageEditor; -extern StructRNA RNA_ThemeInfo; -extern StructRNA RNA_ThemeLogicEditor; -extern StructRNA RNA_ThemeNLAEditor; -extern StructRNA RNA_ThemeNodeEditor; -extern StructRNA RNA_ThemeOutliner; -extern StructRNA RNA_ThemeProperties; -extern StructRNA RNA_ThemeSequenceEditor; -extern StructRNA RNA_ThemeStyle; -extern StructRNA RNA_ThemeTextEditor; -extern StructRNA RNA_ThemeTimeline; -extern StructRNA RNA_ThemeUserInterface; -extern StructRNA RNA_ThemeUserPreferences; -extern StructRNA RNA_ThemeView3D; -extern StructRNA RNA_ThemeWidgetColors; -extern StructRNA RNA_ThemeWidgetStateColors; -extern StructRNA RNA_TimelineMarker; -extern StructRNA RNA_Timer; -extern StructRNA RNA_ToolSettings; -extern StructRNA RNA_TouchSensor; -extern StructRNA RNA_TrackToConstraint; -extern StructRNA RNA_TransformConstraint; -extern StructRNA RNA_TransformSequence; -extern StructRNA RNA_UILayout; -extern StructRNA RNA_UIListItem; -extern StructRNA RNA_UVProjectModifier; -extern StructRNA RNA_UVProjector; -extern StructRNA RNA_UnitSettings; -extern StructRNA RNA_UnknownType; -extern StructRNA RNA_UserPreferences; -extern StructRNA RNA_UserPreferencesEdit; -extern StructRNA RNA_UserPreferencesFilePaths; -extern StructRNA RNA_UserPreferencesSystem; -extern StructRNA RNA_UserPreferencesView; -extern StructRNA RNA_UserSolidLight; -extern StructRNA RNA_ValueNodeSocket; -extern StructRNA RNA_VectorFont; -extern StructRNA RNA_VectorNodeSocket; -extern StructRNA RNA_VertexGroup; -extern StructRNA RNA_VertexGroupElement; -extern StructRNA RNA_VertexPaint; -extern StructRNA RNA_VoronoiTexture; -extern StructRNA RNA_VoxelData; -extern StructRNA RNA_VoxelDataTexture; -extern StructRNA RNA_WaveModifier; -extern StructRNA RNA_Window; -extern StructRNA RNA_WindowManager; -extern StructRNA RNA_WipeSequence; -extern StructRNA RNA_WoodTexture; -extern StructRNA RNA_World; -extern StructRNA RNA_WorldAmbientOcclusion; -extern StructRNA RNA_WorldMistSettings; -extern StructRNA RNA_WorldStarsSettings; -extern StructRNA RNA_WorldTextureSlot; -extern StructRNA RNA_XnorController; -extern StructRNA RNA_XorController; - +extern LIBEXPORT StructRNA RNA_Action; +extern LIBEXPORT StructRNA RNA_ActionConstraint; +extern LIBEXPORT StructRNA RNA_ActionGroup; +extern LIBEXPORT StructRNA RNA_Actuator; +extern LIBEXPORT StructRNA RNA_ActuatorSensor; +extern LIBEXPORT StructRNA RNA_Addon; +extern LIBEXPORT StructRNA RNA_AlwaysSensor; +extern LIBEXPORT StructRNA RNA_AndController; +extern LIBEXPORT StructRNA RNA_AnimData; +extern LIBEXPORT StructRNA RNA_AnimViz; +extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths; +extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning; +extern LIBEXPORT StructRNA RNA_AnyType; +extern LIBEXPORT StructRNA RNA_Area; +extern LIBEXPORT StructRNA RNA_AreaLamp; +extern LIBEXPORT StructRNA RNA_Armature; +extern LIBEXPORT StructRNA RNA_ArmatureModifier; +extern LIBEXPORT StructRNA RNA_ArmatureSensor; +extern LIBEXPORT StructRNA RNA_ArrayModifier; +extern LIBEXPORT StructRNA RNA_BackgroundImage; +extern LIBEXPORT StructRNA RNA_BevelModifier; +extern LIBEXPORT StructRNA RNA_BezierSplinePoint; +extern LIBEXPORT StructRNA RNA_BlendData; +extern LIBEXPORT StructRNA RNA_BlendTexture; +extern LIBEXPORT StructRNA RNA_BlenderRNA; +extern LIBEXPORT StructRNA RNA_BoidRule; +extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed; +extern LIBEXPORT StructRNA RNA_BoidRuleAvoid; +extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision; +extern LIBEXPORT StructRNA RNA_BoidRuleFight; +extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader; +extern LIBEXPORT StructRNA RNA_BoidRuleGoal; +extern LIBEXPORT StructRNA RNA_BoidSettings; +extern LIBEXPORT StructRNA RNA_BoidState; +extern LIBEXPORT StructRNA RNA_Bone; +extern LIBEXPORT StructRNA RNA_BoneGroup; +extern LIBEXPORT StructRNA RNA_BooleanModifier; +extern LIBEXPORT StructRNA RNA_BooleanProperty; +extern LIBEXPORT StructRNA RNA_Brush; +extern LIBEXPORT StructRNA RNA_BrushTextureSlot; +extern LIBEXPORT StructRNA RNA_BuildModifier; +extern LIBEXPORT StructRNA RNA_Camera; +extern LIBEXPORT StructRNA RNA_CastModifier; +extern LIBEXPORT StructRNA RNA_ChildOfConstraint; +extern LIBEXPORT StructRNA RNA_ChildParticle; +extern LIBEXPORT StructRNA RNA_ClampToConstraint; +extern LIBEXPORT StructRNA RNA_ClothCollisionSettings; +extern LIBEXPORT StructRNA RNA_ClothModifier; +extern LIBEXPORT StructRNA RNA_ClothSettings; +extern LIBEXPORT StructRNA RNA_CloudsTexture; +extern LIBEXPORT StructRNA RNA_CollectionProperty; +extern LIBEXPORT StructRNA RNA_CollisionModifier; +extern LIBEXPORT StructRNA RNA_CollisionSensor; +extern LIBEXPORT StructRNA RNA_CollisionSettings; +extern LIBEXPORT StructRNA RNA_ColorRamp; +extern LIBEXPORT StructRNA RNA_ColorRampElement; +extern LIBEXPORT StructRNA RNA_ColorSequence; +extern LIBEXPORT StructRNA RNA_CompositorNode; +extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver; +extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur; +extern LIBEXPORT StructRNA RNA_CompositorNodeBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast; +extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeComposite; +extern LIBEXPORT StructRNA RNA_CompositorNodeCrop; +extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec; +extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus; +extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode; +extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace; +extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeFilter; +extern LIBEXPORT StructRNA RNA_CompositorNodeFlip; +extern LIBEXPORT StructRNA RNA_CompositorNodeGamma; +extern LIBEXPORT StructRNA RNA_CompositorNodeGlare; +extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat; +extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask; +extern LIBEXPORT StructRNA RNA_CompositorNodeImage; +extern LIBEXPORT StructRNA RNA_CompositorNodeInvert; +extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist; +extern LIBEXPORT StructRNA RNA_CompositorNodeLevels; +extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV; +extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue; +extern LIBEXPORT StructRNA RNA_CompositorNodeMath; +extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeNormal; +extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize; +extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile; +extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey; +extern LIBEXPORT StructRNA RNA_CompositorNodeRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers; +extern LIBEXPORT StructRNA RNA_CompositorNodeRotate; +extern LIBEXPORT StructRNA RNA_CompositorNodeScale; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha; +extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer; +extern LIBEXPORT StructRNA RNA_CompositorNodeTexture; +extern LIBEXPORT StructRNA RNA_CompositorNodeTime; +extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap; +extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate; +extern LIBEXPORT StructRNA RNA_CompositorNodeTree; +extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeValue; +extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeViewer; +extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine; +extern LIBEXPORT StructRNA RNA_ConsoleLine; +extern LIBEXPORT StructRNA RNA_Constraint; +extern LIBEXPORT StructRNA RNA_ConstraintTarget; +extern LIBEXPORT StructRNA RNA_Context; +extern LIBEXPORT StructRNA RNA_ControlFluidSettings; +extern LIBEXPORT StructRNA RNA_Controller; +extern LIBEXPORT StructRNA RNA_CopyLocationConstraint; +extern LIBEXPORT StructRNA RNA_CopyRotationConstraint; +extern LIBEXPORT StructRNA RNA_CopyScaleConstraint; +extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint; +extern LIBEXPORT StructRNA RNA_Curve; +extern LIBEXPORT StructRNA RNA_CurveMap; +extern LIBEXPORT StructRNA RNA_CurveMapPoint; +extern LIBEXPORT StructRNA RNA_CurveMapping; +extern LIBEXPORT StructRNA RNA_CurveModifier; +extern LIBEXPORT StructRNA RNA_CurvePoint; +extern LIBEXPORT StructRNA RNA_DampedTrackConstraint; +extern LIBEXPORT StructRNA RNA_DecimateModifier; +extern LIBEXPORT StructRNA RNA_DelaySensor; +extern LIBEXPORT StructRNA RNA_DisplaceModifier; +extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture; +extern LIBEXPORT StructRNA RNA_DomainFluidSettings; +extern LIBEXPORT StructRNA RNA_Driver; +extern LIBEXPORT StructRNA RNA_DriverTarget; +extern LIBEXPORT StructRNA RNA_DriverVariable; +extern LIBEXPORT StructRNA RNA_DupliObject; +extern LIBEXPORT StructRNA RNA_EdgeSplitModifier; +extern LIBEXPORT StructRNA RNA_EditBone; +extern LIBEXPORT StructRNA RNA_EffectSequence; +extern LIBEXPORT StructRNA RNA_EffectorWeights; +extern LIBEXPORT StructRNA RNA_EnumProperty; +extern LIBEXPORT StructRNA RNA_EnumPropertyItem; +extern LIBEXPORT StructRNA RNA_EnvironmentMap; +extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture; +extern LIBEXPORT StructRNA RNA_Event; +extern LIBEXPORT StructRNA RNA_ExplodeModifier; +extern LIBEXPORT StructRNA RNA_ExpressionController; +extern LIBEXPORT StructRNA RNA_FCurve; +extern LIBEXPORT StructRNA RNA_FCurveSample; +extern LIBEXPORT StructRNA RNA_FModifier; +extern LIBEXPORT StructRNA RNA_FModifierCycles; +extern LIBEXPORT StructRNA RNA_FModifierEnvelope; +extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint; +extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator; +extern LIBEXPORT StructRNA RNA_FModifierGenerator; +extern LIBEXPORT StructRNA RNA_FModifierLimits; +extern LIBEXPORT StructRNA RNA_FModifierNoise; +extern LIBEXPORT StructRNA RNA_FModifierPython; +extern LIBEXPORT StructRNA RNA_FModifierStepped; +extern LIBEXPORT StructRNA RNA_FieldSettings; +extern LIBEXPORT StructRNA RNA_FileSelectParams; +extern LIBEXPORT StructRNA RNA_FloatProperty; +extern LIBEXPORT StructRNA RNA_FloorConstraint; +extern LIBEXPORT StructRNA RNA_FluidFluidSettings; +extern LIBEXPORT StructRNA RNA_FluidSettings; +extern LIBEXPORT StructRNA RNA_FluidSimulationModifier; +extern LIBEXPORT StructRNA RNA_FollowPathConstraint; +extern LIBEXPORT StructRNA RNA_Function; +extern LIBEXPORT StructRNA RNA_GPencilFrame; +extern LIBEXPORT StructRNA RNA_GPencilLayer; +extern LIBEXPORT StructRNA RNA_GPencilStroke; +extern LIBEXPORT StructRNA RNA_GPencilStrokePoint; +extern LIBEXPORT StructRNA RNA_GameBooleanProperty; +extern LIBEXPORT StructRNA RNA_GameFloatProperty; +extern LIBEXPORT StructRNA RNA_GameIntProperty; +extern LIBEXPORT StructRNA RNA_GameObjectSettings; +extern LIBEXPORT StructRNA RNA_GameProperty; +extern LIBEXPORT StructRNA RNA_GameSoftBodySettings; +extern LIBEXPORT StructRNA RNA_GameStringProperty; +extern LIBEXPORT StructRNA RNA_GameTimerProperty; +extern LIBEXPORT StructRNA RNA_GlowSequence; +extern LIBEXPORT StructRNA RNA_GreasePencil; +extern LIBEXPORT StructRNA RNA_Group; +extern LIBEXPORT StructRNA RNA_Header; +extern LIBEXPORT StructRNA RNA_HemiLamp; +extern LIBEXPORT StructRNA RNA_Histogram; +extern LIBEXPORT StructRNA RNA_HookModifier; +extern LIBEXPORT StructRNA RNA_ID; +extern LIBEXPORT StructRNA RNA_IKParam; +extern LIBEXPORT StructRNA RNA_Image; +extern LIBEXPORT StructRNA RNA_ImagePaint; +extern LIBEXPORT StructRNA RNA_ImageSequence; +extern LIBEXPORT StructRNA RNA_ImageTexture; +extern LIBEXPORT StructRNA RNA_ImageUser; +extern LIBEXPORT StructRNA RNA_InflowFluidSettings; +extern LIBEXPORT StructRNA RNA_IntProperty; +extern LIBEXPORT StructRNA RNA_Itasc; +extern LIBEXPORT StructRNA RNA_JoystickSensor; +extern LIBEXPORT StructRNA RNA_Key; +extern LIBEXPORT StructRNA RNA_KeyConfig; +extern LIBEXPORT StructRNA RNA_KeyMap; +extern LIBEXPORT StructRNA RNA_KeyMapItem; +extern LIBEXPORT StructRNA RNA_KeyboardSensor; +extern LIBEXPORT StructRNA RNA_Keyframe; +extern LIBEXPORT StructRNA RNA_KeyingSet; +extern LIBEXPORT StructRNA RNA_KeyingSetInfo; +extern LIBEXPORT StructRNA RNA_KeyingSetPath; +extern LIBEXPORT StructRNA RNA_KinematicConstraint; +extern LIBEXPORT StructRNA RNA_Lamp; +extern LIBEXPORT StructRNA RNA_LampSkySettings; +extern LIBEXPORT StructRNA RNA_LampTextureSlot; +extern LIBEXPORT StructRNA RNA_Lattice; +extern LIBEXPORT StructRNA RNA_LatticeModifier; +extern LIBEXPORT StructRNA RNA_LatticePoint; +extern LIBEXPORT StructRNA RNA_Library; +extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint; +extern LIBEXPORT StructRNA RNA_LimitLocationConstraint; +extern LIBEXPORT StructRNA RNA_LimitRotationConstraint; +extern LIBEXPORT StructRNA RNA_LimitScaleConstraint; +extern LIBEXPORT StructRNA RNA_LockedTrackConstraint; +extern LIBEXPORT StructRNA RNA_Macro; +extern LIBEXPORT StructRNA RNA_MagicTexture; +extern LIBEXPORT StructRNA RNA_MarbleTexture; +extern LIBEXPORT StructRNA RNA_MaskModifier; +extern LIBEXPORT StructRNA RNA_Material; +extern LIBEXPORT StructRNA RNA_MaterialHalo; +extern LIBEXPORT StructRNA RNA_MaterialPhysics; +extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror; +extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency; +extern LIBEXPORT StructRNA RNA_MaterialSlot; +extern LIBEXPORT StructRNA RNA_MaterialStrand; +extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering; +extern LIBEXPORT StructRNA RNA_MaterialTextureSlot; +extern LIBEXPORT StructRNA RNA_MaterialVolume; +extern LIBEXPORT StructRNA RNA_Menu; +extern LIBEXPORT StructRNA RNA_Mesh; +extern LIBEXPORT StructRNA RNA_MeshColor; +extern LIBEXPORT StructRNA RNA_MeshColorLayer; +extern LIBEXPORT StructRNA RNA_MeshDeformModifier; +extern LIBEXPORT StructRNA RNA_MeshEdge; +extern LIBEXPORT StructRNA RNA_MeshFace; +extern LIBEXPORT StructRNA RNA_MeshFloatProperty; +extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshIntProperty; +extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshSticky; +extern LIBEXPORT StructRNA RNA_MeshStringProperty; +extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshTextureFace; +extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer; +extern LIBEXPORT StructRNA RNA_MeshVertex; +extern LIBEXPORT StructRNA RNA_MessageSensor; +extern LIBEXPORT StructRNA RNA_MetaBall; +extern LIBEXPORT StructRNA RNA_MetaElement; +extern LIBEXPORT StructRNA RNA_MetaSequence; +extern LIBEXPORT StructRNA RNA_MirrorModifier; +extern LIBEXPORT StructRNA RNA_Modifier; +extern LIBEXPORT StructRNA RNA_MotionPath; +extern LIBEXPORT StructRNA RNA_MotionPathVert; +extern LIBEXPORT StructRNA RNA_MouseSensor; +extern LIBEXPORT StructRNA RNA_MovieSequence; +extern LIBEXPORT StructRNA RNA_MulticamSequence; +extern LIBEXPORT StructRNA RNA_MultiresModifier; +extern LIBEXPORT StructRNA RNA_MusgraveTexture; +extern LIBEXPORT StructRNA RNA_NandController; +extern LIBEXPORT StructRNA RNA_NearSensor; +extern LIBEXPORT StructRNA RNA_NlaStrip; +extern LIBEXPORT StructRNA RNA_NlaTrack; +extern LIBEXPORT StructRNA RNA_Node; +extern LIBEXPORT StructRNA RNA_NodeGroup; +extern LIBEXPORT StructRNA RNA_NodeLink; +extern LIBEXPORT StructRNA RNA_NodeSocket; +extern LIBEXPORT StructRNA RNA_NodeTree; +extern LIBEXPORT StructRNA RNA_NoiseTexture; +extern LIBEXPORT StructRNA RNA_NorController; +extern LIBEXPORT StructRNA RNA_Object; +extern LIBEXPORT StructRNA RNA_ObjectBase; +extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings; +extern LIBEXPORT StructRNA RNA_Operator; +extern LIBEXPORT StructRNA RNA_OperatorFileListElement; +extern LIBEXPORT StructRNA RNA_OperatorMousePath; +extern LIBEXPORT StructRNA RNA_OperatorProperties; +extern LIBEXPORT StructRNA RNA_OperatorStrokeElement; +extern LIBEXPORT StructRNA RNA_OperatorTypeMacro; +extern LIBEXPORT StructRNA RNA_OrController; +extern LIBEXPORT StructRNA RNA_OutflowFluidSettings; +extern LIBEXPORT StructRNA RNA_PackedFile; +extern LIBEXPORT StructRNA RNA_Paint; +extern LIBEXPORT StructRNA RNA_Panel; +extern LIBEXPORT StructRNA RNA_Particle; +extern LIBEXPORT StructRNA RNA_ParticleBrush; +extern LIBEXPORT StructRNA RNA_ParticleDupliWeight; +extern LIBEXPORT StructRNA RNA_ParticleEdit; +extern LIBEXPORT StructRNA RNA_ParticleFluidSettings; +extern LIBEXPORT StructRNA RNA_ParticleHairKey; +extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier; +extern LIBEXPORT StructRNA RNA_ParticleKey; +extern LIBEXPORT StructRNA RNA_ParticleSettings; +extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot; +extern LIBEXPORT StructRNA RNA_ParticleSystem; +extern LIBEXPORT StructRNA RNA_ParticleSystemModifier; +extern LIBEXPORT StructRNA RNA_ParticleTarget; +extern LIBEXPORT StructRNA RNA_PivotConstraint; +extern LIBEXPORT StructRNA RNA_PluginSequence; +extern LIBEXPORT StructRNA RNA_PluginTexture; +extern LIBEXPORT StructRNA RNA_PointCache; +extern LIBEXPORT StructRNA RNA_PointDensity; +extern LIBEXPORT StructRNA RNA_PointDensityTexture; +extern LIBEXPORT StructRNA RNA_PointLamp; +extern LIBEXPORT StructRNA RNA_PointerProperty; +extern LIBEXPORT StructRNA RNA_Pose; +extern LIBEXPORT StructRNA RNA_PoseBone; +extern LIBEXPORT StructRNA RNA_Property; +extern LIBEXPORT StructRNA RNA_PropertyGroup; +extern LIBEXPORT StructRNA RNA_PropertyGroupItem; +extern LIBEXPORT StructRNA RNA_PropertySensor; +extern LIBEXPORT StructRNA RNA_PythonConstraint; +extern LIBEXPORT StructRNA RNA_PythonController; +extern LIBEXPORT StructRNA RNA_RGBANodeSocket; +extern LIBEXPORT StructRNA RNA_RadarSensor; +extern LIBEXPORT StructRNA RNA_RandomSensor; +extern LIBEXPORT StructRNA RNA_RaySensor; +extern LIBEXPORT StructRNA RNA_Region; +extern LIBEXPORT StructRNA RNA_RenderEngine; +extern LIBEXPORT StructRNA RNA_RenderLayer; +extern LIBEXPORT StructRNA RNA_RenderPass; +extern LIBEXPORT StructRNA RNA_RenderResult; +extern LIBEXPORT StructRNA RNA_RenderSettings; +extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint; +extern LIBEXPORT StructRNA RNA_SPHFluidSettings; +extern LIBEXPORT StructRNA RNA_Scene; +extern LIBEXPORT StructRNA RNA_SceneGameData; +extern LIBEXPORT StructRNA RNA_SceneRenderLayer; +extern LIBEXPORT StructRNA RNA_SceneSequence; +extern LIBEXPORT StructRNA RNA_Scopes; +extern LIBEXPORT StructRNA RNA_Screen; +extern LIBEXPORT StructRNA RNA_ScrewModifier; +extern LIBEXPORT StructRNA RNA_Sculpt; +extern LIBEXPORT StructRNA RNA_Sensor; +extern LIBEXPORT StructRNA RNA_Sequence; +extern LIBEXPORT StructRNA RNA_SequenceColorBalance; +extern LIBEXPORT StructRNA RNA_SequenceCrop; +extern LIBEXPORT StructRNA RNA_SequenceEditor; +extern LIBEXPORT StructRNA RNA_SequenceElement; +extern LIBEXPORT StructRNA RNA_SequenceProxy; +extern LIBEXPORT StructRNA RNA_SequenceTransform; +extern LIBEXPORT StructRNA RNA_ShaderNode; +extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData; +extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial; +extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry; +extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation; +extern LIBEXPORT StructRNA RNA_ShaderNodeInvert; +extern LIBEXPORT StructRNA RNA_ShaderNodeMapping; +extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial; +extern LIBEXPORT StructRNA RNA_ShaderNodeMath; +extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeNormal; +extern LIBEXPORT StructRNA RNA_ShaderNodeOutput; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze; +extern LIBEXPORT StructRNA RNA_ShaderNodeTexture; +extern LIBEXPORT StructRNA RNA_ShaderNodeTree; +extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeValue; +extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve; +extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath; +extern LIBEXPORT StructRNA RNA_ShapeKey; +extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint; +extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint; +extern LIBEXPORT StructRNA RNA_ShapeKeyPoint; +extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint; +extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier; +extern LIBEXPORT StructRNA RNA_SimpleDeformModifier; +extern LIBEXPORT StructRNA RNA_SmokeCollSettings; +extern LIBEXPORT StructRNA RNA_SmokeDomainSettings; +extern LIBEXPORT StructRNA RNA_SmokeFlowSettings; +extern LIBEXPORT StructRNA RNA_SmokeModifier; +extern LIBEXPORT StructRNA RNA_SmoothModifier; +extern LIBEXPORT StructRNA RNA_SoftBodyModifier; +extern LIBEXPORT StructRNA RNA_SoftBodySettings; +extern LIBEXPORT StructRNA RNA_SolidifyModifier; +extern LIBEXPORT StructRNA RNA_Sound; +extern LIBEXPORT StructRNA RNA_SoundSequence; +extern LIBEXPORT StructRNA RNA_Space; +extern LIBEXPORT StructRNA RNA_SpaceConsole; +extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor; +extern LIBEXPORT StructRNA RNA_SpaceFileBrowser; +extern LIBEXPORT StructRNA RNA_SpaceGraphEditor; +extern LIBEXPORT StructRNA RNA_SpaceImageEditor; +extern LIBEXPORT StructRNA RNA_SpaceInfo; +extern LIBEXPORT StructRNA RNA_SpaceLogicEditor; +extern LIBEXPORT StructRNA RNA_SpaceNLA; +extern LIBEXPORT StructRNA RNA_SpaceNodeEditor; +extern LIBEXPORT StructRNA RNA_SpaceOutliner; +extern LIBEXPORT StructRNA RNA_SpaceProperties; +extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor; +extern LIBEXPORT StructRNA RNA_SpaceTextEditor; +extern LIBEXPORT StructRNA RNA_SpaceTimeline; +extern LIBEXPORT StructRNA RNA_SpaceUVEditor; +extern LIBEXPORT StructRNA RNA_SpaceUserPreferences; +extern LIBEXPORT StructRNA RNA_SpaceView3D; +extern LIBEXPORT StructRNA RNA_SpeedControlSequence; +extern LIBEXPORT StructRNA RNA_Spline; +extern LIBEXPORT StructRNA RNA_SplineIKConstraint; +extern LIBEXPORT StructRNA RNA_SpotLamp; +extern LIBEXPORT StructRNA RNA_StretchToConstraint; +extern LIBEXPORT StructRNA RNA_StringProperty; +extern LIBEXPORT StructRNA RNA_Struct; +extern LIBEXPORT StructRNA RNA_StucciTexture; +extern LIBEXPORT StructRNA RNA_SubsurfModifier; +extern LIBEXPORT StructRNA RNA_SunLamp; +extern LIBEXPORT StructRNA RNA_SurfaceCurve; +extern LIBEXPORT StructRNA RNA_SurfaceModifier; +extern LIBEXPORT StructRNA RNA_TexMapping; +extern LIBEXPORT StructRNA RNA_Text; +extern LIBEXPORT StructRNA RNA_TextBox; +extern LIBEXPORT StructRNA RNA_TextCharacterFormat; +extern LIBEXPORT StructRNA RNA_TextCurve; +extern LIBEXPORT StructRNA RNA_TextLine; +extern LIBEXPORT StructRNA RNA_TextMarker; +extern LIBEXPORT StructRNA RNA_Texture; +extern LIBEXPORT StructRNA RNA_TextureNode; +extern LIBEXPORT StructRNA RNA_TextureNodeBricks; +extern LIBEXPORT StructRNA RNA_TextureNodeChecker; +extern LIBEXPORT StructRNA RNA_TextureNodeCompose; +extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates; +extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime; +extern LIBEXPORT StructRNA RNA_TextureNodeDecompose; +extern LIBEXPORT StructRNA RNA_TextureNodeDistance; +extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation; +extern LIBEXPORT StructRNA RNA_TextureNodeImage; +extern LIBEXPORT StructRNA RNA_TextureNodeInvert; +extern LIBEXPORT StructRNA RNA_TextureNodeMath; +extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeOutput; +extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_TextureNodeRotate; +extern LIBEXPORT StructRNA RNA_TextureNodeScale; +extern LIBEXPORT StructRNA RNA_TextureNodeTexture; +extern LIBEXPORT StructRNA RNA_TextureNodeTranslate; +extern LIBEXPORT StructRNA RNA_TextureNodeTree; +extern LIBEXPORT StructRNA RNA_TextureNodeValToNor; +extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeViewer; +extern LIBEXPORT StructRNA RNA_TextureSlot; +extern LIBEXPORT StructRNA RNA_Theme; +extern LIBEXPORT StructRNA RNA_ThemeAudioWindow; +extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet; +extern LIBEXPORT StructRNA RNA_ThemeConsole; +extern LIBEXPORT StructRNA RNA_ThemeDopeSheet; +extern LIBEXPORT StructRNA RNA_ThemeFileBrowser; +extern LIBEXPORT StructRNA RNA_ThemeFontStyle; +extern LIBEXPORT StructRNA RNA_ThemeGraphEditor; +extern LIBEXPORT StructRNA RNA_ThemeImageEditor; +extern LIBEXPORT StructRNA RNA_ThemeInfo; +extern LIBEXPORT StructRNA RNA_ThemeLogicEditor; +extern LIBEXPORT StructRNA RNA_ThemeNLAEditor; +extern LIBEXPORT StructRNA RNA_ThemeNodeEditor; +extern LIBEXPORT StructRNA RNA_ThemeOutliner; +extern LIBEXPORT StructRNA RNA_ThemeProperties; +extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor; +extern LIBEXPORT StructRNA RNA_ThemeStyle; +extern LIBEXPORT StructRNA RNA_ThemeTextEditor; +extern LIBEXPORT StructRNA RNA_ThemeTimeline; +extern LIBEXPORT StructRNA RNA_ThemeUserInterface; +extern LIBEXPORT StructRNA RNA_ThemeUserPreferences; +extern LIBEXPORT StructRNA RNA_ThemeView3D; +extern LIBEXPORT StructRNA RNA_ThemeWidgetColors; +extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors; +extern LIBEXPORT StructRNA RNA_TimelineMarker; +extern LIBEXPORT StructRNA RNA_Timer; +extern LIBEXPORT StructRNA RNA_ToolSettings; +extern LIBEXPORT StructRNA RNA_TouchSensor; +extern LIBEXPORT StructRNA RNA_TrackToConstraint; +extern LIBEXPORT StructRNA RNA_TransformConstraint; +extern LIBEXPORT StructRNA RNA_TransformSequence; +extern LIBEXPORT StructRNA RNA_UILayout; +extern LIBEXPORT StructRNA RNA_UIListItem; +extern LIBEXPORT StructRNA RNA_UVProjectModifier; +extern LIBEXPORT StructRNA RNA_UVProjector; +extern LIBEXPORT StructRNA RNA_UnitSettings; +extern LIBEXPORT StructRNA RNA_UnknownType; +extern LIBEXPORT StructRNA RNA_UserPreferences; +extern LIBEXPORT StructRNA RNA_UserPreferencesEdit; +extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths; +extern LIBEXPORT StructRNA RNA_UserPreferencesSystem; +extern LIBEXPORT StructRNA RNA_UserPreferencesView; +extern LIBEXPORT StructRNA RNA_UserSolidLight; +extern LIBEXPORT StructRNA RNA_ValueNodeSocket; +extern LIBEXPORT StructRNA RNA_VectorFont; +extern LIBEXPORT StructRNA RNA_VectorNodeSocket; +extern LIBEXPORT StructRNA RNA_VertexGroup; +extern LIBEXPORT StructRNA RNA_VertexGroupElement; +extern LIBEXPORT StructRNA RNA_VertexPaint; +extern LIBEXPORT StructRNA RNA_VoronoiTexture; +extern LIBEXPORT StructRNA RNA_VoxelData; +extern LIBEXPORT StructRNA RNA_VoxelDataTexture; +extern LIBEXPORT StructRNA RNA_WaveModifier; +extern LIBEXPORT StructRNA RNA_Window; +extern LIBEXPORT StructRNA RNA_WindowManager; +extern LIBEXPORT StructRNA RNA_WipeSequence; +extern LIBEXPORT StructRNA RNA_WoodTexture; +extern LIBEXPORT StructRNA RNA_World; +extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion; +extern LIBEXPORT StructRNA RNA_WorldMistSettings; +extern LIBEXPORT StructRNA RNA_WorldStarsSettings; +extern LIBEXPORT StructRNA RNA_WorldTextureSlot; +extern LIBEXPORT StructRNA RNA_XnorController; +extern LIBEXPORT StructRNA RNA_XorController; /* Pointer * @@ -584,54 +583,55 @@ extern StructRNA RNA_XorController; * There is also a way to get a pointer with the information about all structs. */ -void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); -void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); -void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); +LIBEXPORT void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); +LIBEXPORT void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); +LIBEXPORT void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); -void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); -void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); +LIBEXPORT void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); +LIBEXPORT void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); -extern const PointerRNA PointerRNA_NULL; +extern LIBEXPORT const PointerRNA PointerRNA_NULL; /* Structs */ -const char *RNA_struct_identifier(StructRNA *type); -const char *RNA_struct_ui_name(StructRNA *type); -const char *RNA_struct_ui_description(StructRNA *type); -int RNA_struct_ui_icon(StructRNA *type); +LIBEXPORT const char *RNA_struct_identifier(StructRNA *type); +LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type); +LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type); +LIBEXPORT int RNA_struct_ui_icon(StructRNA *type); -PropertyRNA *RNA_struct_name_property(StructRNA *type); -PropertyRNA *RNA_struct_iterator_property(StructRNA *type); -StructRNA *RNA_struct_base(StructRNA *type); +LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type); +LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type); +LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type); -int RNA_struct_is_ID(StructRNA *type); -int RNA_struct_is_a(StructRNA *type, StructRNA *srna); +LIBEXPORT int RNA_struct_is_ID(StructRNA *type); +LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna); -StructRegisterFunc RNA_struct_register(StructRNA *type); -StructUnregisterFunc RNA_struct_unregister(StructRNA *type); +LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type); +LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type); +LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr); -void *RNA_struct_py_type_get(StructRNA *srna); -void RNA_struct_py_type_set(StructRNA *srna, void *py_type); +LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna); +LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type); -void *RNA_struct_blender_type_get(StructRNA *srna); -void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); +LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna); +LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); -struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); -int RNA_struct_idprops_check(StructRNA *srna); -int RNA_struct_idprops_register_check(StructRNA *type); +LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); +LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna); +LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type); -PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); -int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); +LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); +LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); /* lower level functions for access to type properties */ -const struct ListBase *RNA_struct_type_properties(StructRNA *srna); -PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); +LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna); +LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); -FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); -const struct ListBase *RNA_struct_type_functions(StructRNA *srna); +LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); +LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna); -char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); +LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Properties * @@ -640,139 +640,139 @@ char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Property Information */ -const char *RNA_property_identifier(PropertyRNA *prop); -const char *RNA_property_description(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_identifier(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_description(PropertyRNA *prop); -PropertyType RNA_property_type(PropertyRNA *prop); -PropertySubType RNA_property_subtype(PropertyRNA *prop); -PropertyUnit RNA_property_unit(PropertyRNA *prop); -int RNA_property_flag(PropertyRNA *prop); +LIBEXPORT PropertyType RNA_property_type(PropertyRNA *prop); +LIBEXPORT PropertySubType RNA_property_subtype(PropertyRNA *prop); +LIBEXPORT PropertyUnit RNA_property_unit(PropertyRNA *prop); +LIBEXPORT int RNA_property_flag(PropertyRNA *prop); -int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); -int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); -char RNA_property_array_item_char(PropertyRNA *prop, int index); -int RNA_property_array_item_index(PropertyRNA *prop, char name); +LIBEXPORT int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); +LIBEXPORT int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); +LIBEXPORT char RNA_property_array_item_char(PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_array_item_index(PropertyRNA *prop, char name); -int RNA_property_string_maxlength(PropertyRNA *prop); +LIBEXPORT int RNA_property_string_maxlength(PropertyRNA *prop); -const char *RNA_property_ui_name(PropertyRNA *prop); -const char *RNA_property_ui_description(PropertyRNA *prop); -int RNA_property_ui_icon(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_ui_name(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_ui_description(PropertyRNA *prop); +LIBEXPORT int RNA_property_ui_icon(PropertyRNA *prop); /* Dynamic Property Information */ -void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); -void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); +LIBEXPORT void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); +LIBEXPORT void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); -void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); -void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); +LIBEXPORT void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); +LIBEXPORT void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); -int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); -int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); +LIBEXPORT int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); +LIBEXPORT int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); -int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); -int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); -int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); -int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); +LIBEXPORT int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); +LIBEXPORT int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); +LIBEXPORT int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); +LIBEXPORT int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); -void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); -int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); -int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); -int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +LIBEXPORT void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); +LIBEXPORT int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); +LIBEXPORT int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +LIBEXPORT int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); +LIBEXPORT int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); +LIBEXPORT StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); -int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); -int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ -int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ +LIBEXPORT int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ +LIBEXPORT int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ -void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_update_check(struct PropertyRNA *prop); +LIBEXPORT void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_update_check(struct PropertyRNA *prop); /* Property Data */ -int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); -void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); -void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); -void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); -void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); -float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); -char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); -int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); -char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); - -int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); -int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); - -PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); -PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); - -void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); -void RNA_property_collection_next(CollectionPropertyIterator *iter); -void RNA_property_collection_end(CollectionPropertyIterator *iter); -int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); -int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); -int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); -int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +LIBEXPORT void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +LIBEXPORT int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +LIBEXPORT void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +LIBEXPORT int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); +LIBEXPORT void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +LIBEXPORT float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); +LIBEXPORT void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +LIBEXPORT float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +LIBEXPORT float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); +LIBEXPORT char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +LIBEXPORT void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); +LIBEXPORT int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); +LIBEXPORT char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +LIBEXPORT int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +LIBEXPORT PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); +LIBEXPORT void RNA_property_collection_next(CollectionPropertyIterator *iter); +LIBEXPORT void RNA_property_collection_end(CollectionPropertyIterator *iter); +LIBEXPORT int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); +LIBEXPORT int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); /* efficient functions to set properties for arrays */ -int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); -int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -int RNA_raw_type_sizeof(RawPropertyType type); +LIBEXPORT int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); +LIBEXPORT int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +LIBEXPORT int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +LIBEXPORT int RNA_raw_type_sizeof(RawPropertyType type); RawPropertyType RNA_property_raw_type(PropertyRNA *prop); /* to create ID property groups */ -void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); -int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); -void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); +LIBEXPORT void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); +LIBEXPORT void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); /* copy/reset */ -int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); -int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); /* Path * @@ -783,32 +783,18 @@ int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); * particular pointers, which is useful in a number of applications, like * UI code or Actions, though efficiency is a concern. */ -char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, +LIBEXPORT char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey); -char *RNA_path_back(const char *path); +LIBEXPORT char *RNA_path_back(const char *path); -int RNA_path_resolve(PointerRNA *ptr, const char *path, +LIBEXPORT int RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop); -int RNA_path_resolve_full(PointerRNA *ptr, const char *path, +LIBEXPORT int RNA_path_resolve_full(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *index); -char *RNA_path_from_ID_to_struct(PointerRNA *ptr); -char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); - -#if 0 -/* Dependency - * - * Experimental code that will generate callbacks for each dependency - * between ID types. This may end up being useful for UI - * and evaluation code that needs to know such dependencies for correct - * redraws and re-evaluations. */ - -typedef void (*PropDependencyCallback)(void *udata, PointerRNA *from, PointerRNA *to); -void RNA_test_dependencies_cb(void *udata, PointerRNA *from, PointerRNA *to); - -void RNA_generate_dependencies(PointerRNA *mainptr, void *udata, PropDependencyCallback cb); -#endif +LIBEXPORT char *RNA_path_from_ID_to_struct(PointerRNA *ptr); +LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); /* Quick name based property access * @@ -819,48 +805,48 @@ void RNA_generate_dependencies(PointerRNA *mainptr, void *udata, PropDependencyC * There is no support for pointers and collections here yet, these can be * added when ID properties support them. */ -int RNA_boolean_get(PointerRNA *ptr, const char *name); -void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); -void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); -void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); +LIBEXPORT int RNA_boolean_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); +LIBEXPORT void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); -int RNA_int_get(PointerRNA *ptr, const char *name); -void RNA_int_set(PointerRNA *ptr, const char *name, int value); -void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); -void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); +LIBEXPORT int RNA_int_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_int_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); +LIBEXPORT void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); -float RNA_float_get(PointerRNA *ptr, const char *name); -void RNA_float_set(PointerRNA *ptr, const char *name, float value); -void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); -void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); +LIBEXPORT float RNA_float_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_float_set(PointerRNA *ptr, const char *name, float value); +LIBEXPORT void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); +LIBEXPORT void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); -int RNA_enum_get(PointerRNA *ptr, const char *name); -void RNA_enum_set(PointerRNA *ptr, const char *name, int value); -void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); -int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); +LIBEXPORT int RNA_enum_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_enum_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); +LIBEXPORT int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); /* lower level functions that don't use a PointerRNA */ -int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); -int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); -int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); +LIBEXPORT int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); +LIBEXPORT int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); +LIBEXPORT int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); -void RNA_string_get(PointerRNA *ptr, const char *name, char *value); -char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); -int RNA_string_length(PointerRNA *ptr, const char *name); -void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); +LIBEXPORT void RNA_string_get(PointerRNA *ptr, const char *name, char *value); +LIBEXPORT char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); +LIBEXPORT int RNA_string_length(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); /** * Retrieve the named property from PointerRNA. */ -PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); +LIBEXPORT PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); /* Set the property name of PointerRNA ptr to ptr_value */ -void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); -void RNA_pointer_add(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); +LIBEXPORT void RNA_pointer_add(PointerRNA *ptr, const char *name); -void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); -int RNA_collection_length(PointerRNA *ptr, const char *name); -void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); -void RNA_collection_clear(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); +LIBEXPORT int RNA_collection_length(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); +LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); #define RNA_BEGIN(sptr, itemptr, propname) \ { \ @@ -896,65 +882,65 @@ void RNA_collection_clear(PointerRNA *ptr, const char *name); } /* check if the idproperty exists, for operators */ -int RNA_property_is_set(PointerRNA *ptr, const char *name); -int RNA_property_is_idprop(PropertyRNA *prop); +LIBEXPORT int RNA_property_is_set(PointerRNA *ptr, const char *name); +LIBEXPORT int RNA_property_is_idprop(PropertyRNA *prop); /* python compatible string representation of this property, (must be freed!) */ -char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -char *RNA_pointer_as_string(PointerRNA *ptr); +LIBEXPORT char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT char *RNA_pointer_as_string(PointerRNA *ptr); /* Function */ -const char *RNA_function_identifier(FunctionRNA *func); -const char *RNA_function_ui_description(FunctionRNA *func); -int RNA_function_flag(FunctionRNA *func); -int RNA_function_defined(FunctionRNA *func); +LIBEXPORT const char *RNA_function_identifier(FunctionRNA *func); +LIBEXPORT const char *RNA_function_ui_description(FunctionRNA *func); +LIBEXPORT int RNA_function_flag(FunctionRNA *func); +LIBEXPORT int RNA_function_defined(FunctionRNA *func); -PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); -PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); -const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); +LIBEXPORT PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); +LIBEXPORT PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); +LIBEXPORT const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); /* Utility */ -ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); -void RNA_parameter_list_free(ParameterList *parms); -int RNA_parameter_list_size(ParameterList *parms); -int RNA_parameter_list_arg_count(ParameterList *parms); -int RNA_parameter_list_ret_count(ParameterList *parms); - -void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); -void RNA_parameter_list_next(ParameterIterator *iter); -void RNA_parameter_list_end(ParameterIterator *iter); - -void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); -void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); -void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); -void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); -int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); -int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); -void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); -void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); - -int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); -int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); - -int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) +LIBEXPORT ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); +LIBEXPORT void RNA_parameter_list_free(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_size(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_arg_count(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_ret_count(ParameterList *parms); + +LIBEXPORT void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); +LIBEXPORT void RNA_parameter_list_next(ParameterIterator *iter); +LIBEXPORT void RNA_parameter_list_end(ParameterIterator *iter); + +LIBEXPORT void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); +LIBEXPORT void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); +LIBEXPORT void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); +LIBEXPORT void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); +LIBEXPORT int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); +LIBEXPORT int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); +LIBEXPORT void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); +LIBEXPORT void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); + +LIBEXPORT int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); +LIBEXPORT int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); + +LIBEXPORT int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) +LIBEXPORT int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); -int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); +LIBEXPORT int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); +LIBEXPORT int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); /* ID */ -short RNA_type_to_ID_code(StructRNA *type); -StructRNA *ID_code_to_RNA_type(short idcode); +LIBEXPORT short RNA_type_to_ID_code(StructRNA *type); +LIBEXPORT StructRNA *ID_code_to_RNA_type(short idcode); void RNA_warning(const char *format, ...) #ifdef __GNUC__ diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index f131f7c9ebe..f52a69182b5 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -60,7 +60,7 @@ void RNA_def_struct_flag(StructRNA *srna, int flag); void RNA_def_struct_clear_flag(StructRNA *srna, int flag); void RNA_def_struct_refine_func(StructRNA *srna, const char *refine); void RNA_def_struct_idprops_func(StructRNA *srna, const char *refine); -void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg); +void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance); void RNA_def_struct_path_func(StructRNA *srna, const char *path); void RNA_def_struct_identifier(StructRNA *srna, const char *identifier); void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description); diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 3a15146770f..63cc0bb737c 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,6 +36,12 @@ extern "C" { #endif +#ifdef _WIN32 +#define LIBEXPORT __declspec(dllexport) +#else +#define LIBEXPORT +#endif + struct ParameterList; struct FunctionRNA; struct PropertyRNA; @@ -332,6 +338,7 @@ typedef void (*StructFreeFunc)(void *data); typedef struct StructRNA *(*StructRegisterFunc)(struct bContext *C, struct ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free); typedef void (*StructUnregisterFunc)(const struct bContext *C, struct StructRNA *type); +typedef void **(*StructInstanceFunc)(PointerRNA *ptr); typedef struct StructRNA StructRNA; diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 9cafca3532f..473e57daf93 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -248,3 +248,4 @@ set(SRC ) blender_add_lib(bf_rna "${SRC}" "${INC}") + diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 97d0f535a5b..e056c545ead 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -193,7 +193,17 @@ static int replace_if_different(char *tmpfile, const char *dep_files[]) #undef REN_IF_DIFF } +/* Helper to solve keyword problems with C/C++ */ +static const char *rna_safe_id(const char *id) +{ + if(strcmp(id, "default") == 0) + return "default_value"; + else if(strcmp(id, "operator") == 0) + return "operator_value"; + + return id; +} /* Sorting */ @@ -501,12 +511,12 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -522,7 +532,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT PointerRNA %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -557,9 +567,9 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -569,7 +579,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr rna_print_data_get(f, dp); if(prop->flag & PROP_DYNAMIC) { - char *lenfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get_length"); + char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get_length"); fprintf(f, " int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n"); fprintf(f, " int len= %s(ptr, arraylen);\n\n", lenfunc); fprintf(f, " for(i=0; iidentifier, prop->identifier, "set"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set"); switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -705,7 +715,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, PointerRNA value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -742,9 +752,9 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -754,7 +764,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr rna_print_data_get(f, dp); if(prop->flag & PROP_DYNAMIC) { - char *lenfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "set_length"); + char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set_length"); fprintf(f, " int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n"); fprintf(f, " int len= %s(ptr, arraylen);\n\n", lenfunc); fprintf(f, " for(i=0; iidentifier, prop->identifier, "length"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "int %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -873,9 +883,9 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA } } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "length"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "int %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -908,9 +918,9 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * } } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "begin"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin"); - fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(!manualfunc) @@ -940,7 +950,7 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * fprintf(f, "\n rna_iterator_listbase_begin(iter, data->%s, NULL);\n", dp->dnaname); } - getfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + getfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); fprintf(f, "\n if(iter->valid)\n"); fprintf(f, " iter->ptr= %s(iter);\n", getfunc); @@ -970,9 +980,9 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property else return NULL; } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "lookup_int"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int"); - fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { @@ -984,7 +994,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property fprintf(f, " int found= 0;\n"); fprintf(f, " CollectionPropertyIterator iter;\n\n"); - fprintf(f, " %s_%s_begin(&iter, ptr);\n\n", srna->identifier, prop->identifier); + fprintf(f, " %s_%s_begin(&iter, ptr);\n\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " if(iter.valid){\n"); if(strcmp(nextfunc, "rna_iterator_array_next") == 0) { @@ -1022,9 +1032,9 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property fprintf(f, " }\n"); } - fprintf(f, " if(found) *r_ptr = %s_%s_get(&iter);\n", srna->identifier, prop->identifier); + fprintf(f, " if(found) *r_ptr = %s_%s_get(&iter);\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " }\n\n"); - fprintf(f, " %s_%s_end(&iter);\n\n", srna->identifier, prop->identifier); + fprintf(f, " %s_%s_end(&iter);\n\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " return found;\n"); @@ -1061,13 +1071,13 @@ static char *rna_def_property_next_func(FILE *f, StructRNA *srna, PropertyRNA *p if(!manualfunc) return NULL; - func= rna_alloc_function_name(srna->identifier, prop->identifier, "next"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next"); - fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); fprintf(f, " %s(iter);\n", manualfunc); - getfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + getfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); fprintf(f, "\n if(iter->valid)\n"); fprintf(f, " iter->ptr= %s(iter);\n", getfunc); @@ -1084,9 +1094,9 @@ static char *rna_def_property_end_func(FILE *f, StructRNA *srna, PropertyRNA *pr if(prop->flag & PROP_IDPROPERTY && manualfunc==NULL) return NULL; - func= rna_alloc_function_name(srna->identifier, prop->identifier, "end"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end"); - fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); if(manualfunc) fprintf(f, " %s(iter);\n", manualfunc); @@ -1272,29 +1282,37 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR if(prop->flag & (PROP_IDPROPERTY|PROP_BUILTIN)) return; - func= rna_alloc_function_name(srna->identifier, prop->identifier, ""); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), ""); switch(prop->type) { case PROP_BOOLEAN: case PROP_INT: { if(!prop->arraydimension) { - fprintf(f, "int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + } + else if(prop->arraydimension && prop->totarraylength) { + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[]);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[]);\n", func); } break; } case PROP_FLOAT: { if(!prop->arraydimension) { - fprintf(f, "float %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); + fprintf(f, "LIBEXPORT float %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, float value);\n", func); + } + else if(prop->arraydimension && prop->totarraylength) { + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[]);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[]);\n", func); } break; } @@ -1312,8 +1330,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "};\n\n"); } - fprintf(f, "int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); break; } @@ -1324,24 +1342,24 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "#define %s_%s_MAX %d\n\n", srna->identifier, prop->identifier, sprop->maxlength); } - fprintf(f, "void %sget(PointerRNA *ptr, char *value);\n", func); - fprintf(f, "int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, const char *value);\n", func); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, char *value);\n", func); + fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const char *value);\n", func); break; } case PROP_POINTER: { - fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func); + fprintf(f, "LIBEXPORT PointerRNA %sget(PointerRNA *ptr);\n", func); //fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func); break; } 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); - //fprintf(f, "int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); - //fprintf(f, "void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); + fprintf(f, "LIBEXPORT void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); + fprintf(f, "LIBEXPORT void %snext(CollectionPropertyIterator *iter);\n", func); + fprintf(f, "LIBEXPORT void %send(CollectionPropertyIterator *iter);\n", func); + //fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); + //fprintf(f, "LIBEXPORT void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); break; } } @@ -1368,23 +1386,23 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property switch(prop->type) { case PROP_BOOLEAN: { if(!prop->arraydimension) - fprintf(f, "\tbool %s(void);", prop->identifier); + fprintf(f, "\tinline bool %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) - fprintf(f, "\tint %s(void);", prop->identifier); + fprintf(f, "\tinline int %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) - fprintf(f, "\tfloat %s(void);", prop->identifier); + fprintf(f, "\tinline float %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { @@ -1392,38 +1410,38 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property int i; if(eprop->item) { - fprintf(f, "\tenum %s_enum {\n", prop->identifier); + fprintf(f, "\tenum %s_enum {\n", rna_safe_id(prop->identifier)); for(i=0; itotitem; i++) if(eprop->item[i].identifier[0]) - fprintf(f, "\t\t%s_%s = %d,\n", prop->identifier, eprop->item[i].identifier, eprop->item[i].value); + fprintf(f, "\t\t%s_%s = %d,\n", rna_safe_id(prop->identifier), eprop->item[i].identifier, eprop->item[i].value); fprintf(f, "\t};\n"); } - fprintf(f, "\t%s_enum %s(void);", prop->identifier, prop->identifier); + fprintf(f, "\tinline %s_enum %s(void);", rna_safe_id(prop->identifier), rna_safe_id(prop->identifier)); break; } case PROP_STRING: { - fprintf(f, "\tstd::string %s(void);", prop->identifier); + fprintf(f, "\tinline std::string %s(void);", rna_safe_id(prop->identifier)); break; } case PROP_POINTER: { PointerPropertyRNA *pprop= (PointerPropertyRNA*)dp->prop; if(pprop->type) - fprintf(f, "\t%s %s(void);", (char*)pprop->type, prop->identifier); + fprintf(f, "\tinline %s %s(void);", (char*)pprop->type, rna_safe_id(prop->identifier)); else - fprintf(f, "\t%s %s(void);", "UnknownType", prop->identifier); + fprintf(f, "\tinline %s %s(void);", "UnknownType", rna_safe_id(prop->identifier)); break; } case PROP_COLLECTION: { CollectionPropertyRNA *cprop= (CollectionPropertyRNA*)dp->prop; if(cprop->item_type) - fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", (char*)cprop->item_type, srna->identifier, prop->identifier); + fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", (char*)cprop->item_type, srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, prop->identifier); + fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, rna_safe_id(prop->identifier)); break; } } @@ -1443,41 +1461,41 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe switch(prop->type) { case PROP_BOOLEAN: { if(!prop->arraydimension) - fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) - fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) - fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { - fprintf(f, "\tENUM_PROPERTY(%s_enum, %s, %s)", prop->identifier, srna->identifier, prop->identifier); + fprintf(f, "\tENUM_PROPERTY(%s_enum, %s, %s)", rna_safe_id(prop->identifier), srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_STRING: { - fprintf(f, "\tSTRING_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tSTRING_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_POINTER: { PointerPropertyRNA *pprop= (PointerPropertyRNA*)dp->prop; if(pprop->type) - fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", (char*)pprop->type, srna->identifier, prop->identifier); + fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", (char*)pprop->type, srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, prop->identifier); + fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_COLLECTION: { @@ -1812,7 +1830,7 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f) StructRNA *srna; for(srna=brna->structs.first; srna; srna=srna->cont.next) - fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); fprintf(f, "\n"); } @@ -2286,7 +2304,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\n"); } - fprintf(f, "StructRNA RNA_%s = {\n", srna->identifier); + fprintf(f, "LIBEXPORT StructRNA RNA_%s = {\n", srna->identifier); if(srna->cont.next) fprintf(f, "\t{(ContainerRNA *)&RNA_%s, ", ((StructRNA*)srna->cont.next)->identifier); else fprintf(f, "\t{NULL, "); @@ -2337,6 +2355,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\t%s,\n", rna_function_string(srna->path)); fprintf(f, "\t%s,\n", rna_function_string(srna->reg)); fprintf(f, "\t%s,\n", rna_function_string(srna->unreg)); + fprintf(f, "\t%s,\n", rna_function_string(srna->instance)); fprintf(f, "\t%s,\n", rna_function_string(srna->idproperties)); if(srna->reg && !srna->refine) { @@ -2431,6 +2450,12 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); + fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); + fprintf(f, "#else\n"); + fprintf(f, "#define LIBEXPORT\n"); + fprintf(f, "#endif\n\n"); + fprintf(f, "#include \n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2507,6 +2532,12 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated function declarations for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); + fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); + fprintf(f, "#else\n"); + fprintf(f, "#define LIBEXPORT\n"); + fprintf(f, "#endif\n\n"); + fprintf(f, "#include \"RNA_types.h\"\n\n"); fprintf(f, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); @@ -2528,7 +2559,7 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/**************** %s ****************/\n\n", srna->name); while(srna) { - fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); srna= srna->base; } fprintf(f, "\n"); @@ -2546,40 +2577,40 @@ static const char *cpp_classes = "" "\n" "#include \n" "\n" -"namespace RNA {\n" +"namespace BL {\n" "\n" "#define BOOLEAN_PROPERTY(sname, identifier) \\\n" -" bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" +" inline bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" "\n" "#define BOOLEAN_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define INT_PROPERTY(sname, identifier) \\\n" -" int sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" +" inline int sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" "\n" "#define INT_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define FLOAT_PROPERTY(sname, identifier) \\\n" -" float sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" +" inline float sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" "\n" "#define FLOAT_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define ENUM_PROPERTY(type, sname, identifier) \\\n" -" sname::type sname::identifier(void) { return (type)sname##_##identifier##_get(&ptr); }\n" +" inline sname::type sname::identifier(void) { return (type)sname##_##identifier##_get(&ptr); }\n" "\n" "#define STRING_PROPERTY(sname, identifier) \\\n" -" std::string sname::identifier(void) { \\\n" +" inline std::string sname::identifier(void) { \\\n" " int len= sname##_##identifier##_length(&ptr); \\\n" " std::string str; str.resize(len); \\\n" " sname##_##identifier##_get(&ptr, &str[0]); return str; } \\\n" "\n" "#define POINTER_PROPERTY(type, sname, identifier) \\\n" -" type sname::identifier(void) { return type(sname##_##identifier##_get(&ptr)); }\n" +" inline type sname::identifier(void) { return type(sname##_##identifier##_get(&ptr)); }\n" "\n" "#define COLLECTION_PROPERTY(type, sname, identifier) \\\n" " typedef CollectionIterator& operator=(const CollectionIterator& copy)\n" -" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" "\n" " operator bool(void)\n" " { return iter.valid != 0; }\n" " const CollectionIterator& operator++() { Tnext(&iter); t = T(iter.ptr); return *this; }\n" +" const CollectionIterator& operator=(const CollectionIterator& copy)\n" +" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" +"\n" " T& operator*(void) { return t; }\n" " T* operator->(void) { return &t; }\n" " bool operator==(const CollectionIterator& other) { return iter.valid == other.iter.valid; }\n" @@ -2661,7 +2693,7 @@ static void rna_generate_header_cpp(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated classes for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); - + fprintf(f, "#include \"RNA_blender.h\"\n"); fprintf(f, "#include \"RNA_types.h\"\n"); diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index bde7c99c7df..fbf9ffa01d9 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -384,7 +384,7 @@ static void rna_def_ID_properties(BlenderRNA *brna) RNA_def_struct_sdna(srna, "IDPropertyGroup"); RNA_def_struct_ui_text(srna, "ID Property Group", "Group of ID properties"); RNA_def_struct_idprops_func(srna, "rna_PropertyGroup_idprops"); - RNA_def_struct_register_funcs(srna, "rna_PropertyGroup_register", "rna_PropertyGroup_unregister"); + RNA_def_struct_register_funcs(srna, "rna_PropertyGroup_register", "rna_PropertyGroup_unregister", NULL); RNA_def_struct_refine_func(srna, "rna_PropertyGroup_refine"); /* important so python types can have their name used in list views @@ -463,6 +463,16 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data, (initial state is undefined)"); + prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation."); + + prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation."); + prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index cd9b23da5d3..264396fd873 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -62,7 +62,7 @@ #include "rna_internal.h" -const PointerRNA PointerRNA_NULL= {{NULL}}; +LIBEXPORT const PointerRNA PointerRNA_NULL= {{NULL}}; /* Init/Exit */ @@ -663,6 +663,18 @@ StructUnregisterFunc RNA_struct_unregister(StructRNA *type) return NULL; } +void **RNA_struct_instance(PointerRNA *ptr) +{ + StructRNA *type= ptr->type; + + do { + if(type->instance) + return type->instance(ptr); + } while((type=type->base)); + + return NULL; +} + void *RNA_struct_py_type_get(StructRNA *srna) { return srna->py_type; @@ -1314,6 +1326,11 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR else prop->update(bmain, scene, ptr); } + else if(!(prop->flag & PROP_BUILTIN)) { + DAG_id_tag_update(ptr->id.data, OB_RECALC_ALL); + WM_main_add_notifier(NC_WINDOW, NULL); + } + if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index fb23e5ac63d..f53c61d36cc 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -509,7 +509,7 @@ static void rna_def_keyingset_info(BlenderRNA *brna) RNA_def_struct_sdna(srna, "KeyingSetInfo"); RNA_def_struct_ui_text(srna, "Keying Set Info", "Callback function defines for builtin Keying Sets"); RNA_def_struct_refine_func(srna, "rna_KeyingSetInfo_refine"); - RNA_def_struct_register_funcs(srna, "rna_KeyingSetInfo_register", "rna_KeyingSetInfo_unregister"); + RNA_def_struct_register_funcs(srna, "rna_KeyingSetInfo_register", "rna_KeyingSetInfo_unregister", NULL); /* Properties --------------------- */ diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 3afec03a13f..d66f0042d88 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -813,7 +813,7 @@ void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties) if(idproperties) srna->idproperties= (IDPropertiesFunc)idproperties; } -void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg) +void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance) { if(!DefRNA.preprocess) { fprintf(stderr, "RNA_def_struct_register_funcs: only during preprocessing.\n"); @@ -822,6 +822,7 @@ void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char if(reg) srna->reg= (StructRegisterFunc)reg; if(unreg) srna->unreg= (StructUnregisterFunc)unreg; + if(instance) srna->instance= (StructInstanceFunc)instance; } void RNA_def_struct_path_func(StructRNA *srna, const char *path) diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 1d060c8a362..568a09dd4bd 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -30,6 +30,12 @@ #ifndef RNA_INTERNAL_H #define RNA_INTERNAL_H +#ifdef _WIN32 +#define LIBEXPORT __declspec(dllexport) +#else +#define LIBEXPORT +#endif + #include "UI_resources.h" #include "rna_internal_types.h" @@ -298,8 +304,8 @@ extern CollectionPropertyRNA rna_PropertyGroupItem_idp_array; extern FloatPropertyRNA rna_PropertyGroupItem_double; extern FloatPropertyRNA rna_PropertyGroupItem_double_array; -extern StructRNA RNA_PropertyGroupItem; -extern StructRNA RNA_PropertyGroup; +extern LIBEXPORT StructRNA RNA_PropertyGroupItem; +extern LIBEXPORT StructRNA RNA_PropertyGroup; struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr); diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index eb1beb90567..a59db183453 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -330,6 +330,7 @@ struct StructRNA { /* function to register/unregister subclasses */ StructRegisterFunc reg; StructUnregisterFunc unreg; + StructInstanceFunc instance; /* callback to get id properties */ IDPropertiesFunc idproperties; diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index d1679a19d8c..cd6ff4dad16 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -48,6 +48,7 @@ #include "BKE_main.h" #include "BKE_texture.h" +#include "ED_node.h" #include "WM_api.h" #include "WM_types.h" @@ -147,6 +148,14 @@ static void rna_Lamp_spot_size_set(PointerRNA *ptr, float value) la->spotsize= RAD2DEGF(value); } +static void rna_Lamp_use_nodes_set(PointerRNA *ptr, int value) +{ + Lamp *la= (Lamp*)ptr->data; + + la->use_nodes= value; + if(la->use_nodes && la->nodetree==NULL) + ED_node_shader_default(&la->id); +} #else @@ -368,6 +377,17 @@ static void rna_def_lamp(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "mode", LA_NO_DIFF); RNA_def_property_ui_text(prop, "Diffuse", "Lamp does diffuse shading"); RNA_def_property_update(prop, 0, "rna_Lamp_update"); + + /* nodes */ + prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); + RNA_def_property_ui_text(prop, "Node Tree", "Node tree for node based lamps"); + + prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Lamp_use_nodes_set"); + RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the lamp"); + RNA_def_property_update(prop, 0, "rna_Lamp_update"); /* common */ rna_def_animdata_common(srna); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index f5cbc6b2e87..454c456e051 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -231,7 +231,7 @@ Mesh *rna_Main_meshes_new(Main *bmain, const char *name) id_us_min(&me->id); return me; } -void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) +LIBEXPORT void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) { if(ID_REAL_USERS(mesh) <= 0) free_libblock(&bmain->mesh, mesh); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 909c824074e..81afac6caec 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -269,7 +269,7 @@ static void rna_Material_use_nodes_set(PointerRNA *ptr, int value) ma->use_nodes= value; if(ma->use_nodes && ma->nodetree==NULL) - ED_node_shader_default(ma); + ED_node_shader_default(&ma->id); } static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *C, PointerRNA *ptr, int *free) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index b6d0f77c5a5..7c5c947c21d 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -99,6 +99,28 @@ EnumPropertyItem node_filter_items[] = { {6, "SHADOW", 0, "Shadow", ""}, {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", ""}, + {SHD_NOISE_VORONOI_F2, "VORONOI_F2", 0, "Voronoi F2", ""}, + {SHD_NOISE_VORONOI_F3, "VORONOI_F3", 0, "Voronoi F3", ""}, + {SHD_NOISE_VORONOI_F4, "VORONOI_F4", 0, "Voronoi F4", ""}, + {SHD_NOISE_VORONOI_F2_F1, "VORONOI_F2_F1", 0, "Voronoi F2-F1", ""}, + {SHD_NOISE_VORONOI_CRACKLE, "VORONOI_CRACKLE", 0, "Voronoi Crackle", ""}, + {SHD_NOISE_CELL_NOISE, "CELL_NOISE", 0, "Cell Noise", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_noise_type_items[] = { + {SHD_NOISE_SOFT, "SOFT", 0, "Soft", ""}, + {SHD_NOISE_HARD, "HARD", 0, "Hard", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_wave_items[] = { + {SHD_WAVE_SINE, "SINE", 0, "Sine", "Uses a sine wave to produce bands"}, + {SHD_WAVE_SAW, "SAW", 0, "Saw", "Uses a saw wave to produce bands"}, + {SHD_WAVE_TRI, "TRI", 0, "Tri", "Uses a triangle wave to produce bands"}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "BLI_linklist.h" @@ -142,8 +164,10 @@ static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) return &RNA_VectorNodeSocket; case SOCK_RGBA: return &RNA_RGBANodeSocket; + case SOCK_CLOSURE: + return &RNA_ClosureNodeSocket; default: - return &RNA_UnknownType; + return &RNA_NodeSocket; } } @@ -159,7 +183,7 @@ static StructRNA *rna_NodeTree_refine(struct PointerRNA *ptr) case NTREE_TEXTURE: return &RNA_TextureNodeTree; default: - return &RNA_UnknownType; + return &RNA_NodeTree; } } @@ -668,6 +692,12 @@ static EnumPropertyItem node_ycc_items[] = { { 2, "JFIF", 0, "Jpeg", ""}, {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem node_glossy_items[] = { +{SHD_GLOSSY_SHARP, "SHARP", 0, "Sharp", ""}, +{SHD_GLOSSY_BECKMANN, "BECKMANN", 0, "Beckmann", ""}, +{SHD_GLOSSY_GGX, "GGX", 0, "GGX", ""}, +{0, NULL, 0, NULL, NULL}}; + #define MaxNodes 1000 enum @@ -997,6 +1027,325 @@ static void def_sh_geometry(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_tex_sky(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexSky", "storage"); + + prop = RNA_def_property(srna, "sun_direction", PROP_FLOAT, PROP_DIRECTION); + RNA_def_property_ui_text(prop, "Sun Direction", "Direction from where the sun is shining"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + prop = RNA_def_property(srna, "turbidity", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Turbidity", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + +static void def_sh_tex_environment(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexEnvironment", "storage"); +} + +static void def_sh_tex_image(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); +} + +static void def_sh_tex_blend(StructRNA *srna) +{ + static EnumPropertyItem prop_blend_progression[] = { + {SHD_BLEND_LINEAR, "LINEAR", 0, "Linear", "Creates a linear progression"}, + {SHD_BLEND_QUADRATIC, "QUADRATIC", 0, "Quadratic", "Creates a quadratic progression"}, + {SHD_BLEND_EASING, "EASING", 0, "Easing", "Creates a progression easing from one step to the next"}, + {SHD_BLEND_DIAGONAL, "DIAGONAL", 0, "Diagonal", "Creates a diagonal progression"}, + {SHD_BLEND_SPHERICAL, "SPHERICAL", 0, "Spherical", "Creates a spherical progression"}, + {SHD_BLEND_QUADRATIC_SPHERE, "QUADRATIC_SPHERE", 0, "Quadratic sphere", "Creates a quadratic progression in the shape of a sphere"}, + {SHD_BLEND_RADIAL, "RADIAL", 0, "Radial", "Creates a radial progression"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem prop_axis_items[]= { + {SHD_BLEND_HORIZONTAL, "HORIZONTAL", 0, "Horizontal", "Flips the texture's X and Y axis"}, + {SHD_BLEND_VERTICAL, "VERTICAL", 0, "Vertical", "Flips the texture's X and Y axis"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); + + prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "progression"); + RNA_def_property_enum_items(prop, prop_blend_progression); + RNA_def_property_ui_text(prop, "Progression", "Sets the style of the color blending"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "axis"); + RNA_def_property_enum_items(prop, prop_axis_items); + RNA_def_property_ui_text(prop, "Axis", "Flips the texture's X and Y axis"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_clouds(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 30); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_distnoise(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_distortion", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "distortion_basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Distortion", "Sets the noise basis used for distortion"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_magic(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMagic", "storage"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_marble(StructRNA *srna) +{ + static EnumPropertyItem prop_marble_stype[] = { + {SHD_MARBLE_SOFT, "SOFT", 0, "Soft", "Uses soft marble"}, + {SHD_MARBLE_SHARP, "SHARP", 0, "Sharp", "Uses more clearly defined marble"}, + {SHD_MARBLE_SHARPER, "SHARPER", 0, "Sharper", "Uses very clearly defined marble"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); + + prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_marble_stype); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 30); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wave"); + RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_ui_text(prop, "Wave Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_musgrave(StructRNA *srna) +{ + static EnumPropertyItem prop_musgrave_type[] = { + {SHD_MUSGRAVE_MULTIFRACTAL, "MULTIFRACTAL", 0, "Multifractal", ""}, + {SHD_MUSGRAVE_RIDGED_MULTIFRACTAL, "RIDGED_MULTIFRACTAL", 0, "Ridged Multifractal", ""}, + {SHD_MUSGRAVE_HYBRID_MULTIFRACTAL, "HYBRID_MULTIFRACTAL", 0, "Hybrid Multifractal", ""}, + {SHD_MUSGRAVE_FBM, "FBM", 0, "fBM", ""}, + {SHD_MUSGRAVE_HETERO_TERRAIN, "HETERO_TERRAIN", 0, "Hetero Terrain", ""}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMusgrave", "storage"); + + prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_musgrave_type); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_stucci(StructRNA *srna) +{ + static EnumPropertyItem prop_stucci_stype[] = { + {SHD_STUCCI_PLASTIC, "PLASTIC", 0, "Plastic", "Uses standard stucci"}, + {SHD_STUCCI_WALL_IN, "WALL_IN", 0, "Wall in", "Creates Dimples"}, + {SHD_STUCCI_WALL_OUT, "WALL_OUT", 0, "Wall out", "Creates Ridges"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); + + prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_stucci_stype); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_voronoi(StructRNA *srna) +{ + static EnumPropertyItem prop_distance_metric_items[] = { + {SHD_VORONOI_ACTUAL_DISTANCE, "DISTANCE", 0, "Actual Distance", ""}, + {SHD_VORONOI_DISTANCE_SQUARED, "DISTANCE_SQUARED", 0, "Distance Squared", ""}, + {SHD_VORONOI_MANHATTAN, "MANHATTAN", 0, "Manhattan", ""}, + {SHD_VORONOI_CHEBYCHEV, "CHEBYCHEV", 0, "Chebychev", ""}, + {SHD_VORONOI_MINKOVSKY_H, "MINKOVSKY_HALF", 0, "Minkovsky 1/2", ""}, + {SHD_VORONOI_MINKOVSKY_4, "MINKOVSKY_FOUR", 0, "Minkovsky 4", ""}, + {SHD_VORONOI_MINKOVSKY, "MINKOVSKY", 0, "Minkovsky", ""}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_coloring_items[] = { + {SHD_VORONOI_INTENSITY, "INTENSITY", 0, "Intensity", "Only calculate intensity"}, + {SHD_VORONOI_POSITION, "POSITION", 0, "Position", "Color cells by position"}, + {SHD_VORONOI_POSITION_OUTLINE, "POSITION_OUTLINE", 0, "Position and Outline", "Use position plus an outline based on F2-F.1"}, + {SHD_VORONOI_POSITION_OUTLINE_INTENSITY, "POSITION_OUTLINE_INTENSITY", 0, "Position, Outline, and Intensity", "Multiply position and outline by intensity"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); + + prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); + RNA_def_property_enum_items(prop, prop_distance_metric_items); + RNA_def_property_ui_text(prop, "Distance Metric", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "coloring", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "coloring"); + RNA_def_property_enum_items(prop, prop_coloring_items); + RNA_def_property_ui_text(prop, "Coloring", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_wood(StructRNA *srna) +{ + static EnumPropertyItem prop_wood_type_items[] = { + {SHD_WOOD_BANDS, "BANDS", 0, "Bands", "Uses standard wood texture in bands"}, + {SHD_WOOD_RINGS, "RINGS", 0, "Rings", "Uses wood texture in rings"}, + {SHD_WOOD_BAND_NOISE, "BAND_NOISE", 0, "Band Noise", "Adds noise to standard wood"}, + {SHD_WOOD_RING_NOISE, "RING_NOISE", 0, "Ring Noise", "Adds noise to rings"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wood_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_wood_type_items); + RNA_def_property_ui_text(prop, "Wood Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wave"); + RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_ui_text(prop, "Wave Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_glossy(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "distribution", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "custom1"); + RNA_def_property_enum_items(prop, node_glossy_items); + RNA_def_property_ui_text(prop, "Distribution", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} /* -- Compositor Nodes ------------------------------------------------------ */ @@ -2536,6 +2885,16 @@ static void rna_def_node_socket(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_enum_items(prop, node_socket_type_items); RNA_def_property_ui_text(prop, "Type", "Node Socket type"); + + prop = RNA_def_property(srna, "group_socket", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "groupsock"); + RNA_def_property_struct_type(prop, "NodeSocket"); + 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, "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"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, NULL); } static void rna_def_node_socket_value(BlenderRNA *brna) @@ -2595,6 +2954,17 @@ static void rna_def_node_socket_rgba(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); } +static void rna_def_node_socket_closure(BlenderRNA *brna) +{ + StructRNA *srna; + + srna = RNA_def_struct(brna, "ClosureNodeSocket", "NodeSocket"); + RNA_def_struct_ui_text(srna, "Closure Node Socket", "Input or output socket of a node"); + RNA_def_struct_sdna(srna, "bNodeSocket"); + RNA_def_struct_ui_icon(srna, ICON_PLUG); + RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); +} + static void rna_def_node(BlenderRNA *brna) { StructRNA *srna; @@ -2824,6 +3194,7 @@ void RNA_def_nodetree(BlenderRNA *brna) rna_def_node_socket_value(brna); rna_def_node_socket_vector(brna); rna_def_node_socket_rgba(brna); + rna_def_node_socket_closure(brna); rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d48df85697a..1170df281f2 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -37,7 +37,7 @@ DefNode( ShaderNode, SH_NODE_VALTORGB, def_colorramp, "VALTO DefNode( ShaderNode, SH_NODE_RGBTOBW, 0, "RGBTOBW", RGBToBW, "RGB to BW", "" ) DefNode( ShaderNode, SH_NODE_TEXTURE, def_texture, "TEXTURE", Texture, "Texture", "" ) DefNode( ShaderNode, SH_NODE_NORMAL, 0, "NORMAL", Normal, "Normal", "" ) -DefNode( ShaderNode, SH_NODE_GEOMETRY, def_sh_geometry, "GEOMETRY", Geometry, "Geometry", "" ) +DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) DefNode( ShaderNode, SH_NODE_MAPPING, def_sh_mapping, "MAPPING", Mapping, "Mapping", "" ) DefNode( ShaderNode, SH_NODE_CURVE_VEC, def_vector_curve, "CURVE_VEC", VectorCurve, "Vector Curve", "" ) DefNode( ShaderNode, SH_NODE_CURVE_RGB, def_rgb_curve, "CURVE_RGB", RGBCurve, "RGB Curve", "" ) @@ -50,7 +50,40 @@ DefNode( ShaderNode, SH_NODE_INVERT, 0, "INVER DefNode( ShaderNode, SH_NODE_SEPRGB, 0, "SEPRGB", SeparateRGB, "Separate RGB", "" ) DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBRGB", CombineRGB, "Combine RGB", "" ) DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) - +DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) +DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) +DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) +DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_CLOSURE", AddClosure, "Add Closure", "" ) + +DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") +DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") +DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") +DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") +DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") +DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") + DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" ) DefNode( CompositorNode, CMP_NODE_VALUE, 0, "VALUE", Value, "Value", "" ) diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index d6af04f2475..e64e024c530 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -78,7 +78,7 @@ /* copied from Mesh_getFromObject and adapted to RNA interface */ /* settings: 0 - preview, 1 - render */ -static Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) +LIBEXPORT Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) { Mesh *tmpmesh; Curve *tmpcu = NULL; @@ -286,7 +286,7 @@ 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 */ -static void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) +LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) { if (!(ob->transflag & OB_DUPLI)) { BKE_report(reports, RPT_ERROR, "Object does not have duplis."); @@ -308,7 +308,7 @@ static void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene * /* ob->duplilist should now be freed with Object.free_duplilist */ } -static void rna_Object_free_duplilist(Object *ob) +LIBEXPORT void rna_Object_free_duplilist(Object *ob) { if (ob->duplilist) { free_object_duplilist(ob->duplilist); @@ -422,7 +422,7 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d) base->lay= base->object->lay= v3d->lay; } -int rna_Object_is_modified(Object *ob, Scene *scene, int settings) +LIBEXPORT int rna_Object_is_modified(Object *ob, Scene *scene, int settings) { return object_is_modified(scene, ob) & settings; } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 93754d324df..85e1ec159cd 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -51,10 +51,10 @@ /* RenderEngine */ static RenderEngineType internal_render_type = { - NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, {NULL, NULL, NULL, NULL}}; + NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, NULL, NULL, {NULL, NULL, NULL}}; #ifdef WITH_GAMEENGINE static RenderEngineType internal_game_type = { - NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, {NULL, NULL, NULL, NULL}}; + NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, NULL, NULL, {NULL, NULL, NULL}}; #endif ListBase R_engines = {NULL, NULL}; @@ -85,6 +85,16 @@ void RE_engines_exit(void) } } +LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +{ + engine->do_draw = 1; +} + +LIBEXPORT void engine_tag_update(RenderEngine *engine) +{ + engine->do_update = 1; +} + static void engine_render(RenderEngine *engine, struct Scene *scene) { PointerRNA ptr; @@ -101,6 +111,38 @@ static void engine_render(RenderEngine *engine, struct Scene *scene) RNA_parameter_list_free(&list); } +static void engine_draw(RenderEngine *engine, struct Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "draw"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); +} + +static void engine_update(RenderEngine *engine, struct Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "update"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); +} + static void rna_RenderEngine_unregister(const bContext *C, StructRNA *type) { RenderEngineType *et= RNA_struct_blender_type_get(type); @@ -118,7 +160,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RenderEngineType *et, dummyet = {NULL}; RenderEngine dummyengine= {NULL}; PointerRNA dummyptr; - int have_function[1]; + int have_function[3]; /* setup dummy engine & engine type to store static properties in */ dummyengine.type= &dummyet; @@ -153,12 +195,20 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RNA_struct_blender_type_set(et->ext.srna, et); et->render= (have_function[0])? engine_render: NULL; + et->draw= (have_function[1])? engine_draw: NULL; + et->update= (have_function[2])? engine_update: NULL; BLI_addtail(&R_engines, et); return et->ext.srna; } +static void **rna_RenderEngine_instance(PointerRNA *ptr) +{ + RenderEngine *engine = ptr->data; + return &engine->py_instance; +} + static StructRNA* rna_RenderEngine_refine(PointerRNA *ptr) { RenderEngine *engine= (RenderEngine*)ptr->data; @@ -193,7 +243,7 @@ static void rna_RenderLayer_rect_get(PointerRNA *ptr, float *values) memcpy(values, rl->rectf, sizeof(float)*rl->rectx*rl->recty*4); } -static void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) +LIBEXPORT void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) { RenderLayer *rl= (RenderLayer*)ptr->data; memcpy(rl->rectf, values, sizeof(float)*rl->rectx*rl->recty*4); @@ -215,7 +265,7 @@ static void rna_RenderPass_rect_get(PointerRNA *ptr, float *values) memcpy(values, rpass->rect, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); } -static void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) +LIBEXPORT void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) { RenderPass *rpass= (RenderPass*)ptr->data; memcpy(rpass->rect, values, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); @@ -233,7 +283,7 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_struct_sdna(srna, "RenderEngine"); RNA_def_struct_ui_text(srna, "Render Engine", "Render engine"); RNA_def_struct_refine_func(srna, "rna_RenderEngine_refine"); - RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister"); + RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister", "rna_RenderEngine_instance"); /* render */ func= RNA_def_function(srna, "render", NULL); @@ -241,6 +291,23 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_function_flag(func, FUNC_REGISTER); RNA_def_pointer(func, "scene", "Scene", "", ""); + /* draw */ + func= RNA_def_function(srna, "draw", NULL); + RNA_def_function_ui_description(func, "Draw progressive render into viewport."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "scene", "Scene", "", ""); + + func= RNA_def_function(srna, "update", NULL); + RNA_def_function_ui_description(func, "Notify data has changed for progressive viewport render."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "scene", "Scene", "", ""); + + /* tag for redraw */ + RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); + + /* tag for update */ + RNA_def_function(srna, "tag_update", "engine_tag_update"); + func= RNA_def_function(srna, "begin_result", "RE_engine_begin_result"); prop= RNA_def_int(func, "x", 0, 0, INT_MAX, "X", "", 0, INT_MAX); RNA_def_property_flag(prop, PROP_REQUIRED); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index acb0ffa3be2..294062c2ed3 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -54,6 +54,8 @@ #include #endif +#include "ED_render.h" + #include "WM_api.h" #include "WM_types.h" @@ -740,6 +742,11 @@ static int rna_RenderSettings_engine_get(PointerRNA *ptr) return 0; } +static void rna_RenderSettings_engine_update(Main *bmain, Scene *unused, PointerRNA *ptr) +{ + ED_render_engine_changed(bmain); +} + static void rna_Scene_glsl_update(Main *bmain, Scene *unused, PointerRNA *ptr) { Scene *scene= (Scene*)ptr->id.data; @@ -2927,7 +2934,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_ui_text(prop, "Engine", "Engine to use for rendering"); - RNA_def_property_update(prop, NC_WINDOW, NULL); + RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update"); prop= RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_multiple_engines_get", NULL); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 5e261fa2d18..9addb982645 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -48,6 +48,8 @@ #include "WM_api.h" #include "WM_types.h" +#include "RE_pipeline.h" + EnumPropertyItem space_type_items[] = { {SPACE_EMPTY, "EMPTY", 0, "Empty", ""}, {SPACE_VIEW3D, "VIEW_3D", 0, "3D View", ""}, @@ -103,6 +105,7 @@ EnumPropertyItem viewport_shade_items[] = { {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, + {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display progressive render preview"}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -319,6 +322,25 @@ static void rna_SpaceView3D_layer_update(Main *bmain, Scene *scene, PointerRNA * DAG_on_visible_update(bmain, FALSE); } +static void rna_SpaceView3D_viewport_shade_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + View3D *v3d= (View3D*)(ptr->data); + ScrArea *sa= rna_area_from_space(ptr); + + if(v3d->drawtype != OB_RENDER) { + ARegion *ar; + + for(ar=sa->regionbase.first; ar; ar=ar->next) { + RegionView3D *rv3d = ar->regiondata; + + if(rv3d && rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine= NULL; + } + } + } +} + static PointerRNA rna_SpaceView3D_region_3d_get(PointerRNA *ptr) { View3D *v3d= (View3D*)(ptr->data); @@ -1162,7 +1184,7 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "drawtype"); RNA_def_property_enum_items(prop, viewport_shade_items); RNA_def_property_ui_text(prop, "Viewport Shading", "Method to display/shade objects in the 3D View"); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update"); prop= RNA_def_property(srna, "local_view", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "localvd"); @@ -1417,6 +1439,17 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "dist"); RNA_def_property_ui_text(prop, "Distance", "Distance to the view location"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + + prop= RNA_def_property(srna, "view_camera_zoom", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "camzoom"); + RNA_def_property_ui_text(prop, "Camera Zoom", "Zoom factor in camera view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + + prop= RNA_def_property(srna, "view_camera_offset", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "camdx"); + RNA_def_property_array(prop, 2); + RNA_def_property_ui_text(prop, "Camera Offset", "View shift in camera view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); } static void rna_def_space_buttons(BlenderRNA *brna) @@ -2291,9 +2324,9 @@ static void rna_def_space_filebrowser(BlenderRNA *brna) RNA_def_property_pointer_sdna(prop, NULL, "params"); RNA_def_property_ui_text(prop, "Filebrowser Parameter", "Parameters and Settings for the Filebrowser"); - prop= RNA_def_property(srna, "operator", PROP_POINTER, PROP_NONE); + prop= RNA_def_property(srna, "active_operator", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "op"); - RNA_def_property_ui_text(prop, "Operator", ""); + RNA_def_property_ui_text(prop, "Active Operator", ""); } static void rna_def_space_info(BlenderRNA *brna) @@ -2353,7 +2386,7 @@ static void rna_def_space_node(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem tree_type_items[] = { - {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes"}, + {NTREE_SHADER, "SHADER", ICON_MATERIAL, "Shader", "Shader nodes"}, {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes"}, {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes"}, {0, NULL, 0, NULL, NULL}}; @@ -2364,6 +2397,11 @@ static void rna_def_space_node(BlenderRNA *brna) {SNODE_TEX_BRUSH, "BRUSH", ICON_BRUSH_DATA, "Brush", "Edit texture nodes from Brush"}, {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem shader_type_items[] = { + {SNODE_SHADER_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Edit shader nodes from Object"}, + {SNODE_SHADER_WORLD, "WORLD", ICON_WORLD_DATA, "World", "Edit shader nodes from World"}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem backdrop_channels_items[] = { {0, "COLOR", ICON_IMAGE_RGB, "Color", "Draw image with RGB colors"}, {SNODE_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, "Color and Alpha", "Draw image with RGB colors and alpha transparency"}, @@ -2386,6 +2424,12 @@ static void rna_def_space_node(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Texture Type", "Type of data to take texture from"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL); + prop= RNA_def_property(srna, "shader_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "shaderfrom"); + RNA_def_property_enum_items(prop, shader_type_items); + RNA_def_property_ui_text(prop, "Shader Type", "Type of data to take shader from"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL); + prop= RNA_def_property(srna, "id", PROP_POINTER, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "ID", "Datablock whose nodes are being edited"); diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index d48c1d35c13..d8ea8b3df48 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -617,7 +617,7 @@ static void rna_def_panel(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Panel", "Panel containing UI elements"); RNA_def_struct_sdna(srna, "Panel"); RNA_def_struct_refine_func(srna, "rna_Panel_refine"); - RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister", NULL); /* poll */ func= RNA_def_function(srna, "poll", NULL); @@ -694,7 +694,7 @@ static void rna_def_header(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Header", "Editor header containing UI elements."); RNA_def_struct_sdna(srna, "Header"); RNA_def_struct_refine_func(srna, "rna_Header_refine"); - RNA_def_struct_register_funcs(srna, "rna_Header_register", "rna_Header_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Header_register", "rna_Header_unregister", NULL); /* draw */ func= RNA_def_function(srna, "draw", NULL); @@ -736,7 +736,7 @@ static void rna_def_menu(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Menu", "Editor menu containing buttons"); RNA_def_struct_sdna(srna, "Menu"); RNA_def_struct_refine_func(srna, "rna_Menu_refine"); - RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister", NULL); /* poll */ func= RNA_def_function(srna, "poll", NULL); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 2ee19b07d86..8d6da415be4 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -418,6 +418,27 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "template_reports_banner", "uiTemplateReportsBanner"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "template_node_link", "uiTemplateNodeLink"); + parm= RNA_def_pointer(func, "id", "ID", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + + func= RNA_def_function(srna, "template_node_view", "uiTemplateNodeView"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + parm= RNA_def_pointer(func, "id", "ID", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "introspect", "uiLayoutIntrospect"); parm= RNA_def_string(func, "string", "", 1024*1024, "Descr", "DESCR"); RNA_def_function_return(func, parm); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 4c79c27e0de..346acc522a1 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -961,6 +961,11 @@ static StructRNA *rna_Operator_register(bContext *C, ReportList *reports, void * return dummyot.ext.srna; } +void **rna_Operator_instance(PointerRNA *ptr) +{ + wmOperator *op = ptr->data; + return &op->py_instance; +} static StructRNA *rna_MacroOperator_register(bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) { @@ -1161,7 +1166,7 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_struct_sdna(srna, "wmOperator"); RNA_def_struct_refine_func(srna, "rna_Operator_refine"); #ifdef WITH_PYTHON - RNA_def_struct_register_funcs(srna, "rna_Operator_register", "rna_Operator_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Operator_register", "rna_Operator_unregister", "rna_Operator_instance"); #endif prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); @@ -1230,7 +1235,7 @@ static void rna_def_macro_operator(BlenderRNA *brna) RNA_def_struct_sdna(srna, "wmOperator"); RNA_def_struct_refine_func(srna, "rna_MacroOperator_refine"); #ifdef WITH_PYTHON - RNA_def_struct_register_funcs(srna, "rna_MacroOperator_register", "rna_Operator_unregister"); + RNA_def_struct_register_funcs(srna, "rna_MacroOperator_register", "rna_Operator_unregister", "rna_Operator_instance"); #endif prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 7166d51da5a..eb9cb5c2270 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -48,6 +48,8 @@ #include "BKE_main.h" #include "BKE_texture.h" +#include "ED_node.h" + #include "WM_api.h" static PointerRNA rna_World_lighting_get(PointerRNA *ptr) @@ -121,6 +123,14 @@ static void rna_World_stars_update(Main *bmain, Scene *scene, PointerRNA *ptr) WM_main_add_notifier(NC_WORLD|ND_WORLD_STARS, wo); } +static void rna_World_use_nodes_set(PointerRNA *ptr, int value) +{ + World *wrld= (World*)ptr->data; + + wrld->use_nodes= value; + if(wrld->use_nodes && wrld->nodetree==NULL) + ED_node_shader_default(&wrld->id); +} #else @@ -566,6 +576,17 @@ void RNA_def_world(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, "rna_World_stars_get", NULL, NULL, NULL); RNA_def_property_ui_text(prop, "Stars", "World stars settings"); + /* nodes */ + prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); + RNA_def_property_ui_text(prop, "Node Tree", "Node tree for node based worlds"); + + prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); + RNA_def_property_boolean_funcs(prop, NULL, "rna_World_use_nodes_set"); + RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the world"); + RNA_def_property_update(prop, 0, "rna_World_update"); + rna_def_lighting(brna); rna_def_world_mist(brna); rna_def_world_stars(brna); diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index fc9958b08d0..e3e09f660aa 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -91,7 +91,7 @@ static int isDisabled(ModifierData *md, int useRenderParams) return get_render_subsurf_level(&md->scene->r, levels) == 0; } -static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), +static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData, int useRenderParams, int isFinalCalc) @@ -100,7 +100,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), DerivedMesh *result; result = subsurf_make_derived_from_derived(derivedData, smd, - useRenderParams, NULL, isFinalCalc, 0); + useRenderParams, NULL, isFinalCalc, 0, (ob->flag & OB_MODE_EDIT)); if(useRenderParams || !isFinalCalc) { DerivedMesh *cddm= CDDM_copy(result); @@ -111,7 +111,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), return result; } -static DerivedMesh *applyModifierEM(ModifierData *md, Object *UNUSED(ob), +static DerivedMesh *applyModifierEM(ModifierData *md, Object *ob, struct EditMesh *UNUSED(editData), DerivedMesh *derivedData) { @@ -119,7 +119,7 @@ static DerivedMesh *applyModifierEM(ModifierData *md, Object *UNUSED(ob), DerivedMesh *result; result = subsurf_make_derived_from_derived(derivedData, smd, 0, - NULL, 0, 1); + NULL, 0, 1, 1); return result; } diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index efd5523f5b2..b5a902f9f0d 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -113,6 +113,38 @@ set(SRC intern/SHD_nodes/SHD_valToRgb.c intern/SHD_nodes/SHD_value.c intern/SHD_nodes/SHD_vectMath.c + intern/SHD_nodes/SHD_attribute.c + intern/SHD_nodes/SHD_background.c + intern/SHD_nodes/SHD_bsdf_anisotropic.c + intern/SHD_nodes/SHD_bsdf_diffuse.c + intern/SHD_nodes/SHD_bsdf_glossy.c + intern/SHD_nodes/SHD_bsdf_glass.c + intern/SHD_nodes/SHD_bsdf_translucent.c + intern/SHD_nodes/SHD_bsdf_transparent.c + intern/SHD_nodes/SHD_bsdf_velvet.c + intern/SHD_nodes/SHD_emission.c + intern/SHD_nodes/SHD_fresnel.c + intern/SHD_nodes/SHD_geometry.c + intern/SHD_nodes/SHD_light_path.c + intern/SHD_nodes/SHD_mix_closure.c + intern/SHD_nodes/SHD_add_closure.c + intern/SHD_nodes/SHD_output_lamp.c + intern/SHD_nodes/SHD_output_material.c + intern/SHD_nodes/SHD_output_world.c + intern/SHD_nodes/SHD_tex_blend.c + intern/SHD_nodes/SHD_tex_clouds.c + intern/SHD_nodes/SHD_tex_coord.c + intern/SHD_nodes/SHD_tex_distnoise.c + intern/SHD_nodes/SHD_tex_image.c + intern/SHD_nodes/SHD_tex_environment.c + intern/SHD_nodes/SHD_tex_magic.c + intern/SHD_nodes/SHD_tex_marble.c + intern/SHD_nodes/SHD_tex_musgrave.c + intern/SHD_nodes/SHD_tex_noise.c + intern/SHD_nodes/SHD_tex_sky.c + intern/SHD_nodes/SHD_tex_stucci.c + intern/SHD_nodes/SHD_tex_voronoi.c + intern/SHD_nodes/SHD_tex_wood.c intern/SHD_util.c intern/TEX_nodes/TEX_at.c intern/TEX_nodes/TEX_bricks.c diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index 80e5eec6893..7e8ed741b02 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -43,30 +43,49 @@ /* the type definitions array */ /* ****************** types array for all shaders ****************** */ -void register_node_type_sh_output(ListBase *lb); -void register_node_type_sh_material(ListBase *lb); -void register_node_type_sh_camera(ListBase *lb); void register_node_type_sh_value(ListBase *lb); void register_node_type_sh_rgb(ListBase *lb); +void register_node_type_sh_math(ListBase *lb); +void register_node_type_sh_vect_math(ListBase *lb); void register_node_type_sh_mix_rgb(ListBase *lb); -void register_node_type_sh_valtorgb(ListBase *lb); void register_node_type_sh_rgbtobw(ListBase *lb); -void register_node_type_sh_texture(ListBase *lb); -void register_node_type_sh_normal(ListBase *lb); -void register_node_type_sh_geom(ListBase *lb); void register_node_type_sh_mapping(ListBase *lb); -void register_node_type_sh_curve_vec(ListBase *lb); -void register_node_type_sh_curve_rgb(ListBase *lb); -void register_node_type_sh_math(ListBase *lb); -void register_node_type_sh_vect_math(ListBase *lb); -void register_node_type_sh_squeeze(ListBase *lb); -void register_node_type_sh_dynamic(ListBase *lb); -void register_node_type_sh_material_ext(ListBase *lb); -void register_node_type_sh_invert(ListBase *lb); -void register_node_type_sh_seprgb(ListBase *lb); -void register_node_type_sh_combrgb(ListBase *lb); -void register_node_type_sh_hue_sat(ListBase *lb); -#endif +void register_node_type_sh_attribute(ListBase *lb); +void register_node_type_sh_geometry(ListBase *lb); +void register_node_type_sh_light_path(ListBase *lb); +void register_node_type_sh_fresnel(ListBase *lb); +void register_node_type_sh_tex_coord(ListBase *lb); +void register_node_type_sh_background(ListBase *lb); +void register_node_type_sh_bsdf_diffuse(ListBase *lb); +void register_node_type_sh_bsdf_glossy(ListBase *lb); +void register_node_type_sh_bsdf_glass(ListBase *lb); +void register_node_type_sh_bsdf_anisotropic(ListBase *lb); +void register_node_type_sh_bsdf_translucent(ListBase *lb); +void register_node_type_sh_bsdf_transparent(ListBase *lb); +void register_node_type_sh_bsdf_velvet(ListBase *lb); +void register_node_type_sh_emission(ListBase *lb); +void register_node_type_sh_mix_closure(ListBase *lb); +void register_node_type_sh_add_closure(ListBase *lb); + +void register_node_type_sh_output_lamp(ListBase *lb); +void register_node_type_sh_output_material(ListBase *lb); +void register_node_type_sh_output_world(ListBase *lb); + +void register_node_type_sh_tex_image(ListBase *lb); +void register_node_type_sh_tex_environment(ListBase *lb); +void register_node_type_sh_tex_sky(ListBase *lb); +void register_node_type_sh_tex_voronoi(ListBase *lb); +void register_node_type_sh_tex_blend(ListBase *lb); +void register_node_type_sh_tex_magic(ListBase *lb); +void register_node_type_sh_tex_marble(ListBase *lb); +void register_node_type_sh_tex_clouds(ListBase *lb); +void register_node_type_sh_tex_wood(ListBase *lb); +void register_node_type_sh_tex_musgrave(ListBase *lb); +void register_node_type_sh_tex_noise(ListBase *lb); +void register_node_type_sh_tex_stucci(ListBase *lb); +void register_node_type_sh_tex_distnoise(ListBase *lb); + +#endif diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c new file mode 100644 index 00000000000..87d8a155cbf --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c @@ -0,0 +1,64 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_add_closure_in[]= { + { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_add_closure_out[]= { + { SOCK_CLOSURE, 1, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_add_closure(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_add_closure(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ADD_CLOSURE, "Add Closure", NODE_CLASS_CLOSURE, 0, + sh_node_add_closure_in, sh_node_add_closure_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_add_closure); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c new file mode 100644 index 00000000000..99678e1acd8 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c @@ -0,0 +1,59 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_attribute_out[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_attribute(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_attribute(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0, + NULL, sh_node_attribute_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_attribute); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_background.c b/source/blender/nodes/intern/SHD_nodes/SHD_background.c new file mode 100644 index 00000000000..5156e8bde41 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_background.c @@ -0,0 +1,65 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_background_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Strength", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_background_out[]= { + { SOCK_CLOSURE, 1, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_background(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_background(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_CLOSURE, 0, + sh_node_background_in, sh_node_background_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_background); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c new file mode 100644 index 00000000000..207ca361ff7 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -0,0 +1,65 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_anisotropic_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Roughness U", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Roughness V", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_anisotropic_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_anisotropic(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_anisotropic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_anisotropic); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c new file mode 100644 index 00000000000..0d5aaf3a4dc --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_diffuse_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_diffuse_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_diffuse(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_diffuse(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_diffuse); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c new file mode 100644 index 00000000000..04a7e17078d --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -0,0 +1,83 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_glass_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_glass_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_glass(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +bNodeType sh_node_bsdf_glass= { + /* *next,*prev */ NULL, NULL, + /* type code */ SH_NODE_BSDF_GLASS, + /* name */ "Glass BSDF", + /* width+range */ 150, 60, 200, + /* class+opts */ NODE_CLASS_CLOSURE, 0, + /* input sock */ sh_node_bsdf_glass_in, + /* output sock */ sh_node_bsdf_glass_out, + /* storage */ "", + /* execfunc */ node_shader_exec_bsdf_glass, + /* butfunc */ NULL, + /* initfunc */ NULL, + /* freestoragefunc */ NULL, + /* copystoragefunc */ NULL, + /* id */ NULL, NULL, NULL, + /* gpufunc */ NULL + +}; +/* node type definition */ +void register_node_type_sh_bsdf_glass(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_glass); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c new file mode 100644 index 00000000000..b3a00b251df --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -0,0 +1,65 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_glossy_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_glossy_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_glossy(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_glossy(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_glossy); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c new file mode 100644 index 00000000000..a6c8dfcda7f --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_translucent_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_translucent_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_translucent(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_translucent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_translucent); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c new file mode 100644 index 00000000000..e496525e281 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_transparent_in[]= { + { SOCK_RGBA, 1, "Color", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_transparent_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_transparent(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_transparent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_transparent); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c new file mode 100644 index 00000000000..4ed78f4ad9f --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -0,0 +1,65 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_bsdf_velvet_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Sigma", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_bsdf_velvet_out[]= { + { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_velvet(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_bsdf_velvet(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_CLOSURE, 0, + sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_velvet); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c new file mode 100644 index 00000000000..81f6a08d7e5 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -0,0 +1,64 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_emission_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Strength", 100.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_emission_out[]= { + { SOCK_CLOSURE, 1, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_emission(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_emission(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_CLOSURE, 0, + sh_node_emission_in, sh_node_emission_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_emission); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c new file mode 100644 index 00000000000..3ac2b7f3557 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c @@ -0,0 +1,62 @@ +/** + * $Id: SHD_fresnel.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** Fresnel ******************** */ +static bNodeSocketType sh_node_fresnel_in[]= { + { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_fresnel_out[]= { + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_fresnel(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) +{ +} + +/* node type definition */ +void register_node_type_sh_fresnel(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_FRESNEL, "Fresnel", NODE_CLASS_INPUT, 0, + sh_node_fresnel_in, sh_node_fresnel_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_fresnel); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c index 379f54bec57..0c42995305c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c @@ -140,7 +140,7 @@ void register_node_type_sh_geom(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS, + node_type_base(&ntype, SH_NODE_GEOM, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS, NULL, sh_node_geom_out); node_type_size(&ntype, 120, 80, 160); node_type_init(&ntype, node_shader_init_geometry); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c new file mode 100644 index 00000000000..0f6226e9fff --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c @@ -0,0 +1,64 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_geometry_out[]= { + { SOCK_VECTOR, 1, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_geometry(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_geometry(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, 0, + NULL, sh_node_geometry_out); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_geometry); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c index 91fd995dbbe..5cfc1f59336 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c @@ -95,5 +95,3 @@ void register_node_type_sh_hue_sat(ListBase *lb) nodeRegisterType(lb, &ntype); } - - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c new file mode 100644 index 00000000000..b0e2f1430ac --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_light_path_out[]= { + { SOCK_VALUE, 1, "Is Camera Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_light_path(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_light_path(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_LIGHT_PATH, "Light Path", NODE_CLASS_INPUT, 0, + NULL, sh_node_light_path_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_light_path); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_math.c b/source/blender/nodes/intern/SHD_nodes/SHD_math.c index dd0a564dc4b..70e91fa9b8a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_math.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_math.c @@ -37,8 +37,8 @@ /* **************** SCALAR MATH ******************** */ static bNodeSocketType sh_node_math_in[]= { - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, - { SOCK_VALUE, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, + { SOCK_VALUE, 1, "Value1", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, + { SOCK_VALUE, 1, "Value2", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c new file mode 100644 index 00000000000..6aaa9271737 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c @@ -0,0 +1,65 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_mix_closure_in[]= { + { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_mix_closure_out[]= { + { SOCK_CLOSURE, 1, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_mix_closure(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_mix_closure(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MIX_CLOSURE, "Mix Closure", NODE_CLASS_CLOSURE, 0, + sh_node_mix_closure_in, sh_node_mix_closure_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_mix_closure); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c new file mode 100644 index 00000000000..71ed8d67a98 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c @@ -0,0 +1,58 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_output_lamp_in[]= { + { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_lamp(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_output_lamp(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_LAMP, "Lamp Output", NODE_CLASS_OUTPUT, 0, + sh_node_output_lamp_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_lamp); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c new file mode 100644 index 00000000000..98db624cda6 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c @@ -0,0 +1,60 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_output_material_in[]= { + { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_material(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_output_material(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT, 0, + sh_node_output_material_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_material); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c new file mode 100644 index 00000000000..20f7faeea7a --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c @@ -0,0 +1,59 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_output_world_in[]= { + { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_world(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_output_world(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT, 0, + sh_node_output_world_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_world); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c new file mode 100644 index 00000000000..fdb73f7f814 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -0,0 +1,72 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_blend_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_blend_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_blend(bNode *node) +{ + NodeTexBlend *tex = MEM_callocN(sizeof(NodeTexBlend), "NodeTexBlend"); + tex->progression = SHD_BLEND_LINEAR; + tex->axis = SHD_BLEND_HORIZONTAL; + + node->storage = tex; +} + +static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_blend(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_BLEND, "Blend Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_blend_in, sh_node_tex_blend_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_blend); + node_type_storage(&ntype, "NodeTexBlend", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_blend); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c new file mode 100644 index 00000000000..01b62e1e982 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c @@ -0,0 +1,75 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_clouds_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_clouds_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_clouds(bNode *node) +{ + NodeTexClouds *tex = MEM_callocN(sizeof(NodeTexClouds), "NodeTexClouds"); + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_clouds(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_CLOUDS, "Clouds Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_clouds_in, sh_node_tex_clouds_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_clouds); + node_type_storage(&ntype, "NodeTexClouds", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_clouds); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c new file mode 100644 index 00000000000..ffc2ad447a4 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_coord_out[]= { + { SOCK_VECTOR, 1, "Generated", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Object", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Camera", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Window", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Reflection", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_tex_coord(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_coord(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0, + NULL, sh_node_tex_coord_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_tex_coord); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c new file mode 100644 index 00000000000..323b0505eac --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c @@ -0,0 +1,74 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_distnoise_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Distortion", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_distnoise_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_distorted_noise(bNode *node) +{ + NodeTexDistortedNoise *tex = MEM_callocN(sizeof(NodeTexDistortedNoise), "NodeTexDistortedNoise"); + tex->basis = SHD_NOISE_PERLIN; + tex->distortion_basis = SHD_NOISE_PERLIN; + + node->storage = tex; +} + +static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_distnoise(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_DISTNOISE, "Distorted Noise Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_distnoise_in, sh_node_tex_distnoise_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_distorted_noise); + node_type_storage(&ntype, "NodeTexDistortedNoise", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_distnoise); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c new file mode 100644 index 00000000000..fbd9cf96108 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -0,0 +1,70 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_environment_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_environment_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_environment(bNode *node) +{ + NodeTexEnvironment *tex = MEM_callocN(sizeof(NodeTexEnvironment), "NodeTexEnvironment"); + + node->storage = tex; +} + +static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_environment(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_ENVIRONMENT, "Environment Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_environment_in, sh_node_tex_environment_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_environment); + node_type_storage(&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_environment); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c new file mode 100644 index 00000000000..9d40d3b145c --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -0,0 +1,70 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_image_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_image_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_image(bNode *node) +{ + NodeTexImage *tex = MEM_callocN(sizeof(NodeTexImage), "NodeTexImage"); + + node->storage = tex; +} + +static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_image(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_image_in, sh_node_tex_image_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_image); + node_type_storage(&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_image); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c new file mode 100644 index 00000000000..80ff32a3be3 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c @@ -0,0 +1,72 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_magic_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_magic_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_magic(bNode *node) +{ + NodeTexMagic *tex = MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic"); + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_magic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_magic_in, sh_node_tex_magic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_magic); + node_type_storage(&ntype, "NodeTexMagic", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_magic); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c new file mode 100644 index 00000000000..69908342aac --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c @@ -0,0 +1,77 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_marble_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_marble_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_marble(bNode *node) +{ + NodeTexMarble *tex = MEM_callocN(sizeof(NodeTexMarble), "NodeTexMarble"); + tex->type = SHD_MARBLE_SOFT; + tex->wave = SHD_WAVE_SINE; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_marble(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MARBLE, "Marble Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_marble_in, sh_node_tex_marble_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_marble); + node_type_storage(&ntype, "NodeTexMarble", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_marble); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c new file mode 100644 index 00000000000..2ade58571ce --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c @@ -0,0 +1,78 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_musgrave_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Dimension", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Lacunarity", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Octaves", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Gain", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_musgrave_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_musgrave(bNode *node) +{ + NodeTexMusgrave *tex = MEM_callocN(sizeof(NodeTexMusgrave), "NodeTexMusgrave"); + tex->type = SHD_MUSGRAVE_FBM; + tex->basis = SHD_NOISE_PERLIN; + + node->storage = tex; +} + +static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_musgrave(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MUSGRAVE, "Musgrave Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_musgrave_in, sh_node_tex_musgrave_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_musgrave); + node_type_storage(&ntype, "NodeTexMusgrave", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_musgrave); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c new file mode 100644 index 00000000000..9dd1c6ca2d7 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c @@ -0,0 +1,64 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_noise_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_noise_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_noise(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_NOISE, "Noise Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_noise_in, sh_node_tex_noise_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_tex_noise); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c new file mode 100644 index 00000000000..5deb180fd56 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c @@ -0,0 +1,74 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_sky_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_sky_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_sky(bNode *node) +{ + NodeTexSky *tex = MEM_callocN(sizeof(NodeTexSky), "NodeTexSky"); + tex->sun_direction[0] = 0.0f; + tex->sun_direction[1] = 0.0f; + tex->sun_direction[2] = 1.0f; + tex->turbidity = 2.2f; + + node->storage = tex; +} + +static void node_shader_exec_tex_sky(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_sky(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_SKY, "Sky Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_sky_in, sh_node_tex_sky_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_sky); + node_type_storage(&ntype, "NodeTexSky", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_sky); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c new file mode 100644 index 00000000000..eec76a1538f --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c @@ -0,0 +1,75 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_stucci_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Turbulence", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_stucci_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_stucci(bNode *node) +{ + NodeTexStucci *tex = MEM_callocN(sizeof(NodeTexStucci), "NodeTexStucci"); + tex->type = SHD_STUCCI_PLASTIC; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + + node->storage = tex; +} + +static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_stucci(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_STUCCI, "Stucci Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_stucci_in, sh_node_tex_stucci_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_stucci); + node_type_storage(&ntype, "NodeTexStucci", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_stucci); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c new file mode 100644 index 00000000000..2ea85beeb89 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c @@ -0,0 +1,79 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_voronoi_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Weight1", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_VALUE, 1, "Weight2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_VALUE, 1, "Weight3", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_VALUE, 1, "Weight4", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_VALUE, 1, "Exponent", 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_voronoi_out[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_voronoi(bNode *node) +{ + NodeTexVoronoi *tex = MEM_callocN(sizeof(NodeTexVoronoi), "NodeTexVoronoi"); + tex->distance_metric = SHD_VORONOI_ACTUAL_DISTANCE; + tex->coloring = SHD_VORONOI_INTENSITY; + + node->storage = tex; +} + +static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_voronoi(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_VORONOI, "Voronoi Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_voronoi_in, sh_node_tex_voronoi_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_voronoi); + node_type_storage(&ntype, "NodeTexVoronoi", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_voronoi); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c new file mode 100644 index 00000000000..ed7960fabb0 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c @@ -0,0 +1,76 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_tex_wood_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, + { SOCK_VALUE, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_VALUE, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_tex_wood_out[]= { + { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_wood(bNode *node) +{ + NodeTexWood *tex = MEM_callocN(sizeof(NodeTexWood), "NodeTexWood"); + tex->type = SHD_WOOD_BANDS; + tex->wave = SHD_WAVE_SINE; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + + node->storage = tex; +} + +static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_tex_wood(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_WOOD, "Wood Texture", NODE_CLASS_TEXTURE, 0, + sh_node_tex_wood_in, sh_node_tex_wood_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_wood); + node_type_storage(&ntype, "NodeTexWood", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_wood); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 19cd9df9403..e51b03191d8 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -5839,17 +5839,18 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param bpy_context_set(C, &gilstate); if (!is_static) { - /* exception, operators store their PyObjects for re-use */ + /* some datatypes (operator, render engine) can store PyObjects for re-use */ if(ptr->data) { - if(RNA_struct_is_a(ptr->type, &RNA_Operator)) { - wmOperator *op= ptr->data; - if(op->py_instance) { - py_class_instance= op->py_instance; + void **instance = RNA_struct_instance(ptr); + + if(instance) { + if(*instance) { + py_class_instance= *instance; Py_INCREF(py_class_instance); } else { /* store the instance here once its created */ - py_class_instance_store= &op->py_instance; + py_class_instance_store= instance; } } } diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index f00e54c1796..cc69760415b 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -115,8 +115,13 @@ set(SRC intern/raytrace/vbvh.h ) -if(WITH_IMAGE_OPENEXR) - add_definitions(-DWITH_OPENEXR) +IF(WITH_PYTHON) + ADD_DEFINITIONS(-DWITH_PYTHON) + LIST(APPEND INC ../python ${PYTHON_INC}) +endif() + +IF(WITH_IMAGE_OPENEXR) + ADD_DEFINITIONS(-DWITH_OPENEXR) endif() if(WITH_CODEC_QUICKTIME) diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index a402139b927..e175d81b806 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -14,6 +14,13 @@ cxxflags_raytrace = env['CXXFLAGS'] defs = [] defs_raytrace = [] +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['OURPLATFORM'] in ('win32-vc', 'win64-vc'): if env['WITH_BF_RAYOPTIMIZATION']: cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 4cc3207a05e..65b03e85ca0 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -281,6 +281,8 @@ typedef struct RenderEngineType { int flag; void (*render)(struct RenderEngine *engine, struct Scene *scene); + void (*draw)(struct RenderEngine *engine, struct Scene *scene); + void (*update)(struct RenderEngine *engine, struct Scene *scene); /* RNA integration */ ExtensionRNA ext; @@ -290,17 +292,23 @@ typedef struct RenderEngine { RenderEngineType *type; struct Render *re; ListBase fullresult; + void *py_instance; + int do_draw; + int do_update; } RenderEngine; +RenderEngine *RE_engine_create(RenderEngineType *type); +void RE_engine_free(RenderEngine *engine); + void RE_layer_load_from_file(RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y); void RE_result_load_from_file(RenderResult *result, struct ReportList *reports, const char *filename); -struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); -void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); -void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); +LIBEXPORT struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); +LIBEXPORT void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); +LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); -int RE_engine_test_break(RenderEngine *engine); -void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +LIBEXPORT int RE_engine_test_break(RenderEngine *engine); +LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); void RE_engines_init(void); void RE_engines_exit(void); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 3e5b0b5a37b..41434d7e56d 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -70,6 +70,10 @@ #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" +#ifdef WITH_PYTHON +#include "BPY_extern.h" +#endif + #include "intern/openexr/openexr_multi.h" #include "RE_pipeline.h" @@ -867,18 +871,39 @@ static void *ml_addlayer_cb(void *base, char *str) { RenderResult *rr= base; RenderLayer *rl; + + /* don't add if layer already exists */ + for(rl=rr->layers.first; rl; rl=rl->next) + if(strcmp(rl->name, str) == 0) + return rl; + /* add render layer */ rl= MEM_callocN(sizeof(RenderLayer), "new render layer"); BLI_addtail(&rr->layers, rl); BLI_strncpy(rl->name, str, EXR_LAY_MAXNAME); + rl->rectx = rr->rectx; + rl->recty = rr->recty; + 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 *base, void *lay, char *str, float *rect, int totchan, char *chan_id) { + RenderResult *rr= base; RenderLayer *rl= lay; - RenderPass *rpass= MEM_callocN(sizeof(RenderPass), "loaded pass"); + RenderPass *rpass; int a; + + /* don't add if pass already exists */ + for(rpass=rl->passes.first; rpass; rpass=rpass->next) { + if(strcmp(rpass->name, str) == 0) { + MEM_freeN(rect); + return; + } + } + + /* add render pass */ + rpass = MEM_callocN(sizeof(RenderPass), "loaded pass"); BLI_addtail(&rl->passes, rpass); rpass->channels= totchan; @@ -892,6 +917,8 @@ static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect, for(a=0; achan_id[a]= chan_id[a]; + rpass->rectx = rr->rectx; + rpass->recty = rr->recty; rpass->rect= rect; } @@ -899,24 +926,12 @@ static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect, RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty) { RenderResult *rr= MEM_callocN(sizeof(RenderResult), "loaded render result"); - RenderLayer *rl; - RenderPass *rpass; rr->rectx= rectx; rr->recty= recty; IMB_exr_multilayer_convert(exrhandle, rr, ml_addlayer_cb, ml_addpass_cb); - for(rl=rr->layers.first; rl; rl=rl->next) { - rl->rectx= rectx; - rl->recty= recty; - - for(rpass=rl->passes.first; rpass; rpass=rpass->next) { - rpass->rectx= rectx; - rpass->recty= recty; - } - } - return rr; } @@ -932,7 +947,7 @@ static void renderresult_add_names(RenderResult *rr) } /* called for reading temp files, and for external engines */ -static int read_render_result_from_file(const char *filename, RenderResult *rr) +static int read_render_result_from_file(const char *filename, RenderResult *rr, int external) { RenderLayer *rl; RenderPass *rpass; @@ -976,7 +991,7 @@ static int read_render_result_from_file(const char *filename, RenderResult *rr) IMB_exr_read_channels(exrhandle); renderresult_add_names(rr); } - + IMB_exr_close(exrhandle); return 1; @@ -995,7 +1010,7 @@ static void read_render_result(Render *re, int sample) render_unique_exr_name(re, str, sample); printf("read exr tmp file: %s\n", str); - if(!read_render_result_from_file(str, re->result)) + if(!read_render_result_from_file(str, re->result, 0)) printf("cannot read: %s\n", str); BLI_rw_mutex_unlock(&re->resultmutex); @@ -3210,6 +3225,27 @@ void RE_init_threadcount(Render *re) /************************** External Engines ***************************/ +RenderEngine *RE_engine_create(RenderEngineType *type) +{ + RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine"); + engine->type= type; + + return engine; +} + +void RE_engine_free(RenderEngine *engine) +{ +#ifdef WITH_PYTHON + if(engine->py_instance) { + /* do this first incase there are any __del__ functions or + * similar that use properties */ + BPY_DECREF(engine->py_instance); + } +#endif + + MEM_freeN(engine); +} + RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h) { Render *re= engine->re; @@ -3233,13 +3269,8 @@ RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, disprect.ymin= y; disprect.ymax= y+h; - if(0) { // XXX (re->r.scemode & R_FULL_SAMPLE)) { - result= new_full_sample_buffers(re, &engine->fullresult, &disprect, 0); - } - else { - result= new_render_result(re, &disprect, 0, RR_USEMEM); - BLI_addtail(&engine->fullresult, result); - } + result= new_render_result(re, &disprect, 0, RR_USEMEM); + BLI_addtail(&engine->fullresult, result); return result; } @@ -3262,14 +3293,7 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result) return; /* merge */ - if(re->result->exrhandle) { - RenderResult *rr, *rrpart; - - // XXX crashes, exr expects very particular part sizes - for(rr= re->result, rrpart= result; rr && rrpart; rr= rr->next, rrpart= rrpart->next) - save_render_result_tile(rr, rrpart); - } - else if(render_display_draw_enabled(re)) { + if(render_display_draw_enabled(re)) { /* on break, don't merge in result for preview renders, looks nicer */ if(re->test_break(re->tbh) && (re->r.scemode & R_PREVIEWBUTS)); else merge_render_result(re->result, result); @@ -3347,16 +3371,28 @@ 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(!read_render_result_from_file(filename, result)) { + /* optionally also add layers/passes that were in the file but not setup + for rendering, useful for external render engines or network render */ + void *exrhandle= IMB_exr_get_handle(); + int rectx, recty; + + if(IMB_exr_begin_read(exrhandle, filename, &rectx, &recty)) + IMB_exr_multilayer_convert(exrhandle, result, ml_addlayer_cb, ml_addpass_cb); + + IMB_exr_close(exrhandle); + +#if 0 + if(!read_render_result_from_file(filename, result, 1)) { BKE_reportf(reports, RPT_ERROR, "RE_result_rect_from_file: failed to load '%s'\n", filename); return; } +#endif } static int external_render_3d(Render *re, int do_all) { RenderEngineType *type= BLI_findstring(&R_engines, re->r.engine, offsetof(RenderEngineType, idname)); - RenderEngine engine; + RenderEngine *engine; if(!(type && type->render)) return 0; @@ -3370,11 +3406,7 @@ static int external_render_3d(Render *re, int do_all) BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); if(re->result==NULL || !(re->r.scemode & R_PREVIEWBUTS)) { RE_FreeRenderResult(re->result); - - if(0) // XXX re->r.scemode & R_FULL_SAMPLE) - re->result= new_full_sample_buffers_exr(re); - else - re->result= new_render_result(re, &re->disprect, 0, 0); // XXX re->r.scemode & (R_EXR_TILE_FILE|R_FULL_SAMPLE)); + re->result= new_render_result(re, &re->disprect, 0, 0); } BLI_rw_mutex_unlock(&re->resultmutex); @@ -3382,31 +3414,14 @@ static int external_render_3d(Render *re, int do_all) return 1; /* external */ - memset(&engine, 0, sizeof(engine)); - engine.type= type; - engine.re= re; - - type->render(&engine, re->scene); + engine = RE_engine_create(type); + engine->re= re; - free_render_result(&engine.fullresult, engine.fullresult.first); + type->render(engine, re->scene); - BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); - if(re->result->exrhandle) { - RenderResult *rr; + free_render_result(&engine->fullresult, engine->fullresult.first); - save_empty_result_tiles(re); - - for(rr= re->result; rr; rr= rr->next) { - IMB_exr_close(rr->exrhandle); - rr->exrhandle= NULL; - } - - free_render_result(&re->fullresult, re->result); - re->result= NULL; - - read_render_result(re, 0); - } - BLI_rw_mutex_unlock(&re->resultmutex); + RE_engine_free(engine); return 1; } diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index c94ad74be72..70faa1d1e3c 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -57,6 +57,8 @@ #include "GPU_draw.h" #include "GPU_extensions.h" +#include "RE_pipeline.h" + #include "WM_api.h" #include "WM_types.h" #include "wm.h" @@ -115,6 +117,19 @@ static int wm_area_test_invalid_backbuf(ScrArea *sa) return 1; } +static void wm_region_test_render_do_draw(ScrArea *sa, ARegion *ar) +{ + if(sa->spacetype == SPACE_VIEW3D) { + RegionView3D *rv3d = ar->regiondata; + RenderEngine *engine = (rv3d)? rv3d->render_engine: NULL; + + if(engine && engine->do_draw) { + ar->do_draw = 1; + engine->do_draw = 0; + } + } +} + /********************** draw all **************************/ /* - reference method, draw all each time */ @@ -207,7 +222,7 @@ static void wm_method_draw_overlap_all(bContext *C, wmWindow *win, int exchange) for(sa= screen->areabase.first; sa; sa= sa->next) for(ar= sa->regionbase.first; ar; ar= ar->next) if(ar->swinid && !wm_area_test_invalid_backbuf(sa)) - ED_region_tag_redraw(ar); + ED_region_tag_redraw(ar); /* flush overlapping regions */ if(screen->regionbase.first) { @@ -664,13 +679,28 @@ static int wm_draw_update_test_window(wmWindow *win) { ScrArea *sa; ARegion *ar; + int do_draw= 0; for(ar= win->screen->regionbase.first; ar; ar= ar->next) { if(ar->do_draw_overlay) { wm_tag_redraw_overlay(win, ar); ar->do_draw_overlay= 0; } + if(ar->swinid && ar->do_draw) + do_draw= 1; + } + + for(sa= win->screen->areabase.first; sa; sa= sa->next) { + for(ar=sa->regionbase.first; ar; ar= ar->next) { + wm_region_test_render_do_draw(sa, ar); + + if(ar->swinid && ar->do_draw) + do_draw = 1; + } } + + if(do_draw) + return 1; if(win->screen->do_refresh) return 1; @@ -683,15 +713,6 @@ static int wm_draw_update_test_window(wmWindow *win) if(win->screen->do_draw_drag) return 1; - for(ar= win->screen->regionbase.first; ar; ar= ar->next) - if(ar->swinid && ar->do_draw) - return 1; - - for(sa= win->screen->areabase.first; sa; sa= sa->next) - for(ar=sa->regionbase.first; ar; ar= ar->next) - if(ar->swinid && ar->do_draw) - return 1; - return 0; } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index feff0393b88..723df06a125 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -61,6 +61,7 @@ #include "ED_fileselect.h" #include "ED_info.h" +#include "ED_render.h" #include "ED_screen.h" #include "ED_view3d.h" #include "ED_util.h" @@ -309,6 +310,7 @@ void wm_event_do_notifiers(bContext *C) /* XXX make lock in future, or separated derivedmesh users in scene */ if(!G.rendering) { /* depsgraph & animation: update tagged datablocks */ + Main *bmain = CTX_data_main(C); /* copied to set's in scene_update_tagged_recursive() */ win->screen->scene->customdata_mask= win_combine_v3d_datamask; @@ -316,7 +318,9 @@ void wm_event_do_notifiers(bContext *C) /* XXX, hack so operators can enforce datamasks [#26482], gl render */ win->screen->scene->customdata_mask |= win->screen->scene->customdata_mask_modal; - scene_update_tagged(CTX_data_main(C), win->screen->scene); + scene_update_tagged(bmain, win->screen->scene); + + ED_render_engine_update_tagged(bmain); } } diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 87850528648..bb6eaf3a54d 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -226,6 +226,19 @@ else() set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}) endif() +# headers +install( + FILES + ${CMAKE_SOURCE_DIR}/source/blender/makesrna/RNA_access.h + ${CMAKE_SOURCE_DIR}/source/blender/makesrna/RNA_types.h + ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern/RNA_blender.h + ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern/RNA_blender_cpp.h + ${CMAKE_SOURCE_DIR}/intern/guardedalloc/MEM_sys_types.h + ${CMAKE_SOURCE_DIR}/intern/guardedalloc/MEM_guardedalloc.h + ${CMAKE_SOURCE_DIR}/source/blender/blenloader/BLO_sys_types.h + ${CMAKE_SOURCE_DIR}/source/blender/makesdna/DNA_listBase.h + DESTINATION ${INCLUDE_OUTPUT_PATH}) + # install target if(UNIX AND NOT APPLE) -- cgit v1.2.3 From 7b2a13aced1abc81e27b1dcdc19581b4de64d963 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 27 Apr 2011 16:56:06 +0000 Subject: Temporary build fix. --- source/blender/editors/interface/interface_node.c | 3 +++ source/blender/editors/interface/interface_templates.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 3d0603206ee..372874c9e6f 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -558,6 +558,9 @@ void uiTemplateNodeView(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, { bNode *tnode; + if(!ntree) + return; + /* clear for cycle check */ for(tnode=ntree->nodes.first; tnode; tnode=tnode->next) tnode->flag &= ~NODE_TEST; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 94f12911d33..e2664c39756 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2492,5 +2492,8 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C) uiBlockSetEmboss(block, UI_EMBOSS); uiDefBut(block, LABEL, 0, report->message, UI_UNIT_X+10, 0, UI_UNIT_X+width, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, ""); + + /* XXX linking hack */ + uiTemplateNodeView(NULL, NULL, NULL, NULL, NULL, NULL); } -- cgit v1.2.3 From 1484169c2f5b04eda9fa4a00fcdb84257718a6c1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 27 Apr 2011 17:23:37 +0000 Subject: Cycles: another build fix. --- intern/cycles/util/util_math.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 349496e4a70..26d6d429b7a 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -62,7 +62,7 @@ __device_inline float fminf(float a, float b) #endif -#ifndef __KERNEL_OPENCL__ +#ifndef __KERNEL_GPU__ __device_inline int max(int a, int b) { -- cgit v1.2.3 From 791f6c94fbb593291b4eca46779736062ffe3927 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 28 Apr 2011 11:45:06 +0000 Subject: Cycles: fix for vector math node by Lukas Toenne, thanks. --- intern/cycles/kernel/osl/nodes/node_vector_math.osl | 14 +++++++------- intern/cycles/render/nodes.cpp | 8 ++++---- source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/intern/cycles/kernel/osl/nodes/node_vector_math.osl b/intern/cycles/kernel/osl/nodes/node_vector_math.osl index c6231d4350d..302351372c2 100644 --- a/intern/cycles/kernel/osl/nodes/node_vector_math.osl +++ b/intern/cycles/kernel/osl/nodes/node_vector_math.osl @@ -22,31 +22,31 @@ shader node_vector_math( string type = "Add", vector Vector1 = vector(0.0, 0.0, 0.0), vector Vector2 = vector(0.0, 0.0, 0.0), - output float Fac = 0.0, + output float Value = 0.0, output vector Vector = vector(0.0, 0.0, 0.0)) { if(type == "Add") { Vector = Vector1 + Vector2; - Fac = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; + Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; } if(type == "Subtract") { Vector = Vector1 + Vector2; - Fac = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; + Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; } if(type == "Average") { - Fac = length(Vector1 + Vector2); + Value = length(Vector1 + Vector2); Vector = normalize(Vector1 + Vector2); } if(type == "Dot Product") { - Fac = dot(Vector1, Vector2); + Value = dot(Vector1, Vector2); } if(type == "Cross Product") { vector c = cross(Vector1, Vector2); - Fac = length(c); + Value = length(c); Vector = normalize(c); } if(type == "Normalize") { - Fac = length(Vector1); + Value = length(Vector1); Vector = normalize(Vector1); } } diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index d783c3699ea..42cadb8faa7 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1838,7 +1838,7 @@ VectorMathNode::VectorMathNode() add_input("Vector1", SHADER_SOCKET_VECTOR); add_input("Vector2", SHADER_SOCKET_VECTOR); - add_output("Fac", SHADER_SOCKET_FLOAT); + add_output("Value", SHADER_SOCKET_FLOAT); add_output("Vector", SHADER_SOCKET_VECTOR); } @@ -1862,16 +1862,16 @@ void VectorMathNode::compile(SVMCompiler& compiler) { ShaderInput *vector1_in = input("Vector1"); ShaderInput *vector2_in = input("Vector2"); - ShaderOutput *fac_out = output("Fac"); + ShaderOutput *value_out = output("Value"); ShaderOutput *vector_out = output("Vector"); compiler.stack_assign(vector1_in); compiler.stack_assign(vector2_in); - compiler.stack_assign(fac_out); + compiler.stack_assign(value_out); compiler.stack_assign(vector_out); compiler.add_node(NODE_VECTOR_MATH, type_enum[type], vector1_in->stack_offset, vector2_in->stack_offset); - compiler.add_node(NODE_VECTOR_MATH, fac_out->stack_offset, vector_out->stack_offset); + compiler.add_node(NODE_VECTOR_MATH, value_out->stack_offset, vector_out->stack_offset); } void VectorMathNode::compile(OSLCompiler& compiler) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c index 9979e488a71..a454e42336a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c @@ -38,8 +38,8 @@ /* **************** VECTOR MATH ******************** */ static bNodeSocketType sh_node_vect_math_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Vector1", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Vector2", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From d263fee9521c2a53f7b673c9a8c57c072bf072c1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 28 Apr 2011 11:53:29 +0000 Subject: Cycles: fix for incompatible boost filesystem version, provided by "ornitorrincos" on IRC. --- intern/cycles/util/util_path.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index 4cf6cea0f69..109b842068d 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -23,6 +23,8 @@ #include OIIO_NAMESPACE_USING +#define BOOST_FILESYSTEM_VERSION 2 + #include CCL_NAMESPACE_BEGIN -- cgit v1.2.3 From 774584d7e84843503a5ef4477748cecfdaedeb3d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 28 Apr 2011 13:47:27 +0000 Subject: Cycles: hook up the CMake build system. New build instructions for Ubuntu Linux in the wiki: http://wiki.blender.org/index.php/Dev:2.5/Source/Cycles --- CMakeLists.txt | 11 +++- intern/CMakeLists.txt | 1 + intern/cycles/CMakeLists.txt | 69 ++++++++++++-------- intern/cycles/app/CMakeLists.txt | 46 ++++++++------ intern/cycles/app/cycles_test.cpp | 2 +- intern/cycles/blender/CMakeLists.txt | 30 ++++----- intern/cycles/bvh/CMakeLists.txt | 2 +- intern/cycles/cmake/create_dmg.py | 14 ----- intern/cycles/cmake/external_libs.cmake | 90 ++++++++------------------- intern/cycles/cmake/platforms.cmake | 2 +- intern/cycles/device/CMakeLists.txt | 12 +++- intern/cycles/doc/CMakeLists.txt | 8 +-- intern/cycles/kernel/CMakeLists.txt | 22 ++++--- intern/cycles/kernel/kernel_types.h | 3 +- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 2 +- intern/cycles/render/CMakeLists.txt | 2 +- intern/cycles/subd/CMakeLists.txt | 2 +- intern/cycles/util/CMakeLists.txt | 7 ++- intern/cycles/util/util_transform.cpp | 10 +-- 19 files changed, 168 insertions(+), 167 deletions(-) delete mode 100755 intern/cycles/cmake/create_dmg.py diff --git a/CMakeLists.txt b/CMakeLists.txt index e24ce2990f4..8f4981d7e36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,6 +173,9 @@ endif() option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON) option(WITH_API_INSTALL "Copy API header files into the blender install folder" ON) +# Cycles +option(WITH_CYCLES "Enable Cycles Render Engine" ON) + # Debug option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF) mark_as_advanced(WITH_CXX_GUARDEDALLOC) @@ -1177,13 +1180,19 @@ add_subdirectory(extern) # Blender Application add_subdirectory(source/creator) - #----------------------------------------------------------------------------- # Blender Player if(WITH_PLAYER) add_subdirectory(source/blenderplayer) endif() +#----------------------------------------------------------------------------- +# Cycles + +if(WITH_CYCLES) + add_subdirectory(intern/cycles) +endif() + #----------------------------------------------------------------------------- # CPack for generating packages include(build_files/cmake/packaging.cmake) diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index 33bf9bb476c..f731b7be46c 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -52,3 +52,4 @@ endif() if(WITH_IK_ITASC) add_subdirectory(itasc) endif() + diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 406b4e6732b..164f1e95297 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -1,38 +1,57 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -PROJECT(cycles) SET(CYCLES_VERSION_MAJOR 0) SET(CYCLES_VERSION_MINOR 0) SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR}) # Options -OPTION(WITH_OSL "Build with Open Shading Language support" OFF) -OPTION(WITH_CUDA "Build with CUDA support" OFF) -OPTION(WITH_OPENCL "Build with OpenCL support (not working)" OFF) -OPTION(WITH_BLENDER "Build Blender Python extension" OFF) -OPTION(WITH_PARTIO "Build with Partio point cloud support (unfinished)" OFF) -OPTION(WITH_NETWORK "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_MULTI "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_DOCS "Build html documentation" OFF) +OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) +OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) +OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF) +OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) +OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) +OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_CYCLES_DOCS "Build html documentation" OFF) # Flags -SET(CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") -SET(CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") + +SET(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") +SET(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") # Paths -SET(OSL_PATH "" CACHE PATH "Path to OpenShadingLanguage installation") -SET(OIIO_PATH "" CACHE PATH "Path to OpenImageIO installation") -SET(BOOST_PATH "/usr" CACHE PATH "Path to Boost installation") -SET(CUDA_PATH "/usr/local/cuda" CACHE PATH "Path to CUDA installation") -SET(OPENCL_PATH "" CACHE PATH "Path to OpenCL installation") -SET(PYTHON_PATH "" CACHE PATH "Path to Python installation") -SET(BLENDER_PATH "" CACHE PATH "Path to Blender installation") -SET(PARTIO_PATH "" CACHE PATH "Path to Partio installation") -SET(GLEW_PATH "" CACHE PATH "Path to GLEW installation") -SET(GLUT_PATH "" CACHE PATH "Path to GLUT installation") -SET(INSTALL_PATH "${CMAKE_BINARY_DIR}/install" CACHE PATH "Path to install to") +SET(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation") +SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation") +SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation") +SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") +SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation") +SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") +SET(CYCLES_GLEW "" CACHE PATH "Path to GLUT installation") + +# Install, todo: deduplicate install path code + +if(MSVC_IDE) + set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}) +elseif(APPLE) + set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}) +else() + set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}) +endif() + +if(UNIX AND NOT APPLE) + if(WITH_INSTALL_PORTABLE) + set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) + else() + set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/share/blender/${BLENDER_VERSION}) + endif() +elseif(WIN32) + set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) +elseif(APPLE) + set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION}) +endif() + +SET(CYCLES_INSTALL_PATH "${TARGETDIR_VER}/scripts/addons") # External Libraries @@ -44,9 +63,9 @@ INCLUDE(cmake/platforms.cmake) # Subdirectories -IF(WITH_BLENDER) +IF(WITH_CYCLES_BLENDER) ADD_SUBDIRECTORY(blender) -ENDIF(WITH_BLENDER) +ENDIF(WITH_CYCLES_BLENDER) ADD_SUBDIRECTORY(app) ADD_SUBDIRECTORY(bvh) diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index b1f73ed74a3..d90ebf0a8b5 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -1,48 +1,54 @@ -INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../bvh ../util ../render ../subd) +INCLUDE_DIRECTORIES( + . + ../device + ../kernel + ../kernel/svm + ../bvh + ../util + ../render + ../subd) SET(LIBRARIES - device - kernel - render - bvh - subd - util + cycles_device + cycles_kernel + cycles_render + cycles_bvh + cycles_subd + cycles_util ${Boost_LIBRARIES} ${OPENGL_LIBRARIES} - ${GLEW_LIBRARIES} + ${GLEW_LIBRARY} ${OPENIMAGEIO_LIBRARY} ${GLUT_LIBRARIES}) -IF(WITH_OSL) - LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) -ENDIF(WITH_OSL) +IF(WITH_CYCLES_OSL) + LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) +ENDIF() -IF(WITH_PARTIO) +IF(WITH_CYCLES_PARTIO) LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) -ENDIF(WITH_PARTIO) +ENDIF() -IF(WITH_OPENCL) +IF(WITH_CYCLES_OPENCL) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -ENDIF(WITH_OPENCL) +ENDIF() ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) -INSTALL(TARGETS cycles_test DESTINATION ${INSTALL_PATH}/cycles) +INSTALL(TARGETS cycles_test DESTINATION ${CYCLES_INSTALL_PATH}/cycles) IF(UNIX AND NOT APPLE) SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) ENDIF() -IF(WITH_NETWORK) +IF(WITH_CYCLES_NETWORK) ADD_EXECUTABLE(cycles_server cycles_server.cpp) TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES}) - INSTALL(TARGETS cycles_server DESTINATION ${INSTALL_PATH}/cycles) + INSTALL(TARGETS cycles_server DESTINATION ${CYCLES_INSTALL_PATH}/cycles) IF(UNIX AND NOT APPLE) SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) ENDIF() ENDIF() -INSTALL(CODE "FILE(MAKE_DIRECTORY ${INSTALL_PATH}/cycles/cache)") - diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp index 96072ac3da6..2603458f088 100644 --- a/intern/cycles/app/cycles_test.cpp +++ b/intern/cycles/app/cycles_test.cpp @@ -185,7 +185,7 @@ static void options_parse(int argc, const char **argv) { options.width= 1024; options.height= 512; - options.filepath = path_get("../../../test/models/elephants.xml"); + options.filepath = ""; options.session = NULL; options.quiet = false; diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index a75f7295e31..93a043a54a2 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -32,12 +32,12 @@ INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_DIRS}) SET(LIBRARIES - render - bvh - device - kernel - util - subd + cycles_render + cycles_bvh + cycles_device + cycles_kernel + cycles_util + cycles_subd ${Boost_LIBRARIES} ${OPENGL_LIBRARIES} ${OPENIMAGEIO_LIBRARY} @@ -46,25 +46,25 @@ SET(LIBRARIES ${GLEW_LIBRARIES} ${BLENDER_LIBRARIES}) -IF(WITH_OSL) - LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) -ENDIF(WITH_OSL) +IF(WITH_CYCLES_OSL) + LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) +ENDIF() -IF(WITH_PARTIO) +IF(WITH_CYCLES_PARTIO) LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) -ENDIF(WITH_PARTIO) +ENDIF() -IF(WITH_OPENCL) +IF(WITH_CYCLES_OPENCL) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -ENDIF(WITH_OPENCL) +ENDIF() SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) -INSTALL(FILES ${addonfiles} DESTINATION ${INSTALL_PATH}/cycles) -INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${INSTALL_PATH}/cycles) +INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) +INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles) IF(UNIX AND NOT APPLE) SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt index c934cded6da..9ea3bc77461 100644 --- a/intern/cycles/bvh/CMakeLists.txt +++ b/intern/cycles/bvh/CMakeLists.txt @@ -14,5 +14,5 @@ SET(headers bvh_params.h bvh_sort.h) -ADD_LIBRARY(bvh ${sources} ${headers}) +ADD_LIBRARY(cycles_bvh ${sources} ${headers}) diff --git a/intern/cycles/cmake/create_dmg.py b/intern/cycles/cmake/create_dmg.py deleted file mode 100755 index bba7f8d3509..00000000000 --- a/intern/cycles/cmake/create_dmg.py +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/python - -import os -import string -import sys - -name = string.replace(sys.argv[1], ".zip", "") - -os.system("rm -f %s.dmg" % (name)) -os.system("mkdir -p /tmp/cycles_dmg") -os.system("rm /tmp/cycles_dmg/*") -os.system("cp %s.zip /tmp/cycles_dmg/" % (name)) -os.system("/usr/bin/hdiutil create -fs HFS+ -srcfolder /tmp/cycles_dmg -volname %s %s.dmg" % (name, name)) - diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 6f6f00ed6bc..da2331cfe9a 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,8 +1,8 @@ ########################################################################### # Boost setup -MESSAGE(STATUS "BOOST_PATH ${BOOST_PATH}") -SET(BOOST_ROOT ${BOOST_PATH}) +MESSAGE(STATUS "CYCLES_BOOST ${CYCLES_BOOST}") +SET(BOOST_ROOT ${CYCLES_BOOST}) SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" "1.43" "1.43.0" "1.42" "1.42.0" @@ -26,22 +26,22 @@ MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}") INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}") LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}") -IF(WITH_NETWORK) +IF(WITH_CYCLES_NETWORK) ADD_DEFINITIONS(-DWITH_NETWORK) ENDIF() -IF(WITH_MULTI) +IF(WITH_CYCLES_MULTI) ADD_DEFINITIONS(-DWITH_MULTI) ENDIF() ########################################################################### # OpenImageIO -MESSAGE(STATUS "OIIO_PATH = ${OIIO_PATH}") +MESSAGE(STATUS "CYCLES_OIIO = ${CYCLES_OIIO}") -FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${OIIO_PATH}/lib) -FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${OIIO_PATH}/include) -FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${OIIO_PATH}/bin) +FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib) +FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include) +FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin) IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) SET(OPENIMAGEIO_FOUND TRUE) @@ -54,50 +54,26 @@ ENDIF() ADD_DEFINITIONS(-DWITH_OIIO) INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) -########################################################################### -# OpenGL - -FIND_PACKAGE(OpenGL) -MESSAGE(STATUS "OPENGL_FOUND=${OPENGL_FOUND}") - -INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) - ########################################################################### # GLUT -SET(GLUT_ROOT_PATH ${GLUT_PATH}) +SET(GLUT_ROOT_PATH ${CYCLES_GLUT}) FIND_PACKAGE(GLUT) MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) -########################################################################### -# GLEW - -SET(GLEW_VERSION 1.5.1) -FIND_LIBRARY(GLEW_LIBRARIES NAMES GLEW PATHS ${GLEW_PATH}/lib) -FIND_PATH(GLEW_INCLUDES NAMES glew.h PATH_SUFFIXES GL PATHS ${GLEW_PATH}/include) - -IF(GLEW_INCLUDES AND GLEW_LIBRARIES) - MESSAGE(STATUS "GLEW includes = ${GLEW_INCLUDES}") - MESSAGE(STATUS "GLEW library = ${GLEW_LIBRARIES}") -ELSE() - MESSAGE(STATUS "GLEW not found") -ENDIF() - -INCLUDE_DIRECTORIES("${GLEW_INCLUDES}") - ########################################################################### # OpenShadingLanguage -IF(WITH_OSL) +IF(WITH_CYCLES_OSL) - MESSAGE(STATUS "OSL_PATH = ${OSL_PATH}") + MESSAGE(STATUS "CYCLES_OSL = ${CYCLES_OSL}") - FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${OSL_PATH}/lib) - FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${OSL_PATH}/include) - FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${OSL_PATH}/bin) + FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib) + FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${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) @@ -116,12 +92,12 @@ ENDIF() ########################################################################### # Partio -IF(WITH_PARTIO) +IF(WITH_CYCLES_PARTIO) - MESSAGE(STATUS "PARTIO_PATH = ${PARTIO_PATH}") + MESSAGE(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}") - FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${PARTIO_PATH}/lib) - FIND_PATH(PARTIO_INCLUDES Partio.h ${PARTIO_PATH}/include) + FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib) + FIND_PATH(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include) FIND_PACKAGE(ZLIB) @@ -139,36 +115,24 @@ IF(WITH_PARTIO) ENDIF() -########################################################################### -# Python - -IF(WITH_BLENDER) - - FIND_PATH(PYTHON_INCLUDE_DIRS Python.h PATHS ${PYTHON_PATH} ${PYTHON_PATH}/include ${PYTHON_PATH}/include/python3.1 ${PYTHON_PATH}/include/python3.2 NO_DEFAULT_PATH) - IF(WIN32) - FIND_LIBRARY(PYTHON_LIBRARIES NAMES python31 PATHS ${PYTHON_PATH}/lib) - ENDIF() - -ENDIF() - ########################################################################### # Blender -IF(WITH_BLENDER) - FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${BLENDER_PATH}/include) +IF(WITH_CYCLES_BLENDER) + FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include) IF(WIN32) - SET(BLENDER_LIBRARIES ${BLENDER_PATH}/bin/Release/blender.lib) + SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/Release/blender.lib) ENDIF() ENDIF() ########################################################################### # CUDA -IF(WITH_CUDA) +IF(WITH_CYCLES_CUDA) - FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CUDA_PATH}/lib ${CUDA_PATH}/lib/Win32 NO_DEFAULT_PATH) - FIND_PATH(CUDA_INCLUDES cuda.h ${CUDA_PATH}/include NO_DEFAULT_PATH) - FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CUDA_PATH}/bin NO_DEFAULT_PATH) + FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CYCLES_CUDA}/lib ${CYCLES_CUDA}/lib/Win32 NO_DEFAULT_PATH) + FIND_PATH(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH) + FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}") @@ -186,7 +150,7 @@ ENDIF() ########################################################################### # OpenCL -IF(WITH_OPENCL) +IF(WITH_CYCLES_OPENCL) IF(APPLE) SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers") @@ -199,7 +163,7 @@ IF(WITH_OPENCL) ENDIF() IF(UNIX AND NOT APPLE) - SET(OPENCL_INCLUDES ${OPENCL_PATH}) + SET(OPENCL_INCLUDES ${CYCLES_OPENCL}) SET(OPENCL_LIRBARIES "OpenCL") ENDIF() diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake index ebc4b01edbc..075b4761a85 100644 --- a/intern/cycles/cmake/platforms.cmake +++ b/intern/cycles/cmake/platforms.cmake @@ -1,7 +1,7 @@ # Platform specific build flags -SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") # -pedantic +SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") IF(APPLE) diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index ab72548fc4f..0885cd6fc20 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -1,5 +1,13 @@ -INCLUDE_DIRECTORIES(. ../kernel ../kernel/svm ../kernel/osl ../util ../render) +INCLUDE_DIRECTORIES( + . + ../kernel + ../kernel/svm + ../kernel/osl + ../util + ../render + ${OPENGL_INCLUDE_DIR} + ${GLEW_INCLUDE_DIR}) SET(sources device.cpp @@ -14,5 +22,5 @@ SET(headers device_intern.h device_network.h) -ADD_LIBRARY(device ${sources} ${headers}) +ADD_LIBRARY(cycles_device ${sources} ${headers}) diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt index 116ca5e5b9f..d6e487663c3 100644 --- a/intern/cycles/doc/CMakeLists.txt +++ b/intern/cycles/doc/CMakeLists.txt @@ -1,5 +1,5 @@ -INSTALL(DIRECTORY license DESTINATION ${INSTALL_PATH}/cycles) +INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".svn" EXCLUDE) SET(doc_sources index.html @@ -76,12 +76,12 @@ SET(doc_templates templates/nodes.html templates/reference.html) -IF(WITH_DOCS) +IF(WITH_CYCLES_DOCS) MACRO(install_doc_file source_file html_file) GET_FILENAME_COMPONENT(subdir ${source_file} PATH) INSTALL( FILES ${html_file} - DESTINATION ${INSTALL_PATH}/cycles/doc/${subdir}) + DESTINATION ${CYCLES_INSTALL_PATH}/cycles/doc/${subdir}) ENDMACRO() FOREACH(_file ${doc_sources}) @@ -100,6 +100,6 @@ IF(WITH_DOCS) install_doc_file(${_file} ${_file}) ENDFOREACH() - ADD_CUSTOM_TARGET(doc ALL DEPENDS ${html_files}) + ADD_CUSTOM_TARGET(cycles_doc ALL DEPENDS ${html_files}) ENDIF() diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 30b618eb1ad..6c247a9a645 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -71,34 +71,38 @@ SET(headers # CUDA module -IF(WITH_CUDA) +IF(WITH_CYCLES_CUDA) SET(cuda_sources kernel.cu ${headers}) SET(cuda_cubins) - FOREACH(arch ${CUDA_ARCH}) + FOREACH(arch ${CYCLES_CUDA_ARCH}) SET(cuda_cubin kernel_${arch}.cubin) ADD_CUSTOM_COMMAND( OUTPUT ${cuda_cubin} - COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= + COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= DEPENDS ${cuda_sources}) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${INSTALL_PATH}/cycles/lib) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) LIST(APPEND cuda_cubins ${cuda_cubin}) ENDFOREACH() - ADD_CUSTOM_TARGET(kernel_cuda ALL DEPENDS ${cuda_cubins}) -ENDIF(WITH_CUDA) + ADD_CUSTOM_TARGET(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins}) +ENDIF() # OSL module -IF(WITH_OSL) +IF(WITH_CYCLES_OSL) ADD_SUBDIRECTORY(osl) -ENDIF(WITH_OSL) +ENDIF() # CPU module INCLUDE_DIRECTORIES(. ../util osl svm) -ADD_LIBRARY(kernel ${sources} ${headers}) +ADD_LIBRARY(cycles_kernel ${sources} ${headers}) + +IF(WITH_CYCLES_CUDA) + add_dependencies(cycles_kernel cycles_kernel_cuda) +ENDIF() diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 8e378d2871b..bd337eb95e1 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -217,8 +217,7 @@ typedef struct ShaderData { /* primitive id if there is one, ~0 otherwise */ int prim; /* parametric coordinates - * - barycentric weights for triangles - * - latlong coordinates for background */ + * - barycentric weights for triangles */ float u, v; /* object id if there is one, ~0 otherwise */ int object; diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 435acc5f680..56e8ba0b5b6 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -65,5 +65,5 @@ ENDFOREACH() ADD_CUSTOM_TARGET(shader ALL DEPENDS ${oso_sources} ${osl_headers}) -INSTALL(FILES ${oso_sources} DESTINATION ${INSTALL_PATH}/cycles/shader) +INSTALL(FILES ${oso_sources} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/shader) diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt index f31e9bfbcb2..f2342c9032a 100644 --- a/intern/cycles/render/CMakeLists.txt +++ b/intern/cycles/render/CMakeLists.txt @@ -50,5 +50,5 @@ SET(headers SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -ADD_LIBRARY(render ${sources} ${headers}) +ADD_LIBRARY(cycles_render ${sources} ${headers}) diff --git a/intern/cycles/subd/CMakeLists.txt b/intern/cycles/subd/CMakeLists.txt index a14bf7896d8..5357df4fab7 100644 --- a/intern/cycles/subd/CMakeLists.txt +++ b/intern/cycles/subd/CMakeLists.txt @@ -22,5 +22,5 @@ SET(headers subd_stencil.h subd_vert.h) -ADD_LIBRARY(subd ${sources} ${headers}) +ADD_LIBRARY(cycles_subd ${sources} ${headers}) diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index 3fea6182a97..4137c73a39a 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -1,5 +1,8 @@ -INCLUDE_DIRECTORIES(.) +INCLUDE_DIRECTORIES( + . + ${GLEW_INCLUDE_PATH} + ${OPENGL_INCLUDE_DIR}) SET(sources util_cache.cpp @@ -43,5 +46,5 @@ SET(headers util_vector.h util_xml.h) -ADD_LIBRARY(util ${sources} ${headers}) +ADD_LIBRARY(cycles_util ${sources} ${headers}) diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp index 5c2f28af318..8c5eac2cbb9 100644 --- a/intern/cycles/util/util_transform.cpp +++ b/intern/cycles/util/util_transform.cpp @@ -129,13 +129,15 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) Transform transform_inverse(const Transform& tfm) { - Transform R = transform_identity(); - Transform M = tfm; + union { Transform T; float M[4][4]; } R, M; + + R.T = transform_identity(); + M.T = tfm; - if(!transform_matrix4_gj_inverse((float(*)[4])&R, (float(*)[4])&M)) + if(!transform_matrix4_gj_inverse(R.M, M.M)) return transform_identity(); - return R; + return R.T; } CCL_NAMESPACE_END -- cgit v1.2.3 From e5d7a38a257b543ff44e823c29a12198e3817427 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 1 May 2011 09:19:45 +0000 Subject: Cycles: fix build issue with Blender includes. --- intern/cycles/blender/CMakeLists.txt | 1 + intern/cycles/cmake/external_libs.cmake | 8 +++++++- intern/cycles/kernel/CMakeLists.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 93a043a54a2..096363e5d9f 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -61,6 +61,7 @@ ENDIF() SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) +ADD_DEPENDENCIES(cycles_blender bf_rna) TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index da2331cfe9a..e61aee1e582 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -119,7 +119,13 @@ ENDIF() # Blender IF(WITH_CYCLES_BLENDER) - FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include) + # FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include) + SET(BLENDER_INCLUDE_DIRS + ${CMAKE_SOURCE_DIR}/intern/guardedalloc + ${CMAKE_SOURCE_DIR}/source/blender/makesdna + ${CMAKE_SOURCE_DIR}/source/blender/makesrna + ${CMAKE_SOURCE_DIR}/source/blender/blenloader + ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern) IF(WIN32) SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/Release/blender.lib) ENDIF() diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 6c247a9a645..1f027b40108 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -103,6 +103,6 @@ INCLUDE_DIRECTORIES(. ../util osl svm) ADD_LIBRARY(cycles_kernel ${sources} ${headers}) IF(WITH_CYCLES_CUDA) - add_dependencies(cycles_kernel cycles_kernel_cuda) + ADD_DEPENDENCIES(cycles_kernel cycles_kernel_cuda) ENDIF() -- cgit v1.2.3 From 170f8c8c4109afb366bac0f385d9e2f59af6c8e2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 1 May 2011 10:00:21 +0000 Subject: Cycles: build without GLUT test app by default. --- intern/cycles/CMakeLists.txt | 1 + intern/cycles/app/CMakeLists.txt | 19 ++++++++++++------- intern/cycles/cmake/external_libs.cmake | 13 ++++++------- intern/cycles/util/CMakeLists.txt | 7 +++++-- intern/cycles/util/util_opengl.h | 2 -- intern/cycles/util/util_view.cpp | 6 ++++++ 6 files changed, 30 insertions(+), 18 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 164f1e95297..5877b26b7f5 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -13,6 +13,7 @@ OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" O OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_DOCS "Build html documentation" OFF) +OPTION(WITH_CYCLES_TEST "Build cycles test application" OFF) # Flags diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index d90ebf0a8b5..0934124ea25 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -19,8 +19,11 @@ SET(LIBRARIES ${Boost_LIBRARIES} ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} - ${OPENIMAGEIO_LIBRARY} - ${GLUT_LIBRARIES}) + ${OPENIMAGEIO_LIBRARY}) + +IF(WITH_CYCLES_TEST) + LIST(APPEND LIBRARIES ${GLUT_LIBRARIES}) +ENDIF() IF(WITH_CYCLES_OSL) LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) @@ -34,12 +37,14 @@ IF(WITH_CYCLES_OPENCL) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) ENDIF() -ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) -TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) -INSTALL(TARGETS cycles_test DESTINATION ${CYCLES_INSTALL_PATH}/cycles) +IF(WITH_CYCLES_TEST) + ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) + TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) + INSTALL(TARGETS cycles_test DESTINATION ${CYCLES_INSTALL_PATH}/cycles) -IF(UNIX AND NOT APPLE) - SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) + IF(UNIX AND NOT APPLE) + SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) + ENDIF() ENDIF() IF(WITH_CYCLES_NETWORK) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index e61aee1e582..5d1ed868574 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,7 +1,6 @@ ########################################################################### # Boost setup -MESSAGE(STATUS "CYCLES_BOOST ${CYCLES_BOOST}") SET(BOOST_ROOT ${CYCLES_BOOST}) SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" @@ -37,8 +36,6 @@ ENDIF() ########################################################################### # OpenImageIO -MESSAGE(STATUS "CYCLES_OIIO = ${CYCLES_OIIO}") - FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib) FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include) FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin) @@ -57,12 +54,14 @@ INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) ########################################################################### # GLUT -SET(GLUT_ROOT_PATH ${CYCLES_GLUT}) +IF(WITH_CYCLES_TEST) + SET(GLUT_ROOT_PATH ${CYCLES_GLUT}) -FIND_PACKAGE(GLUT) -MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") + FIND_PACKAGE(GLUT) + MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") -INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) +ENDIF() ########################################################################### # OpenShadingLanguage diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index 4137c73a39a..380383e3146 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -13,8 +13,11 @@ SET(sources util_string.cpp util_system.cpp util_time.cpp - util_transform.cpp - util_view.cpp) + util_transform.cpp) + +IF(WITH_CYCLES_TEST) + LIST(APPEND sources util_view.cpp) +ENDIF() SET(headers util_algorithm.h diff --git a/intern/cycles/util/util_opengl.h b/intern/cycles/util/util_opengl.h index 5396f6f17be..352aa7b1c19 100644 --- a/intern/cycles/util/util_opengl.h +++ b/intern/cycles/util/util_opengl.h @@ -23,12 +23,10 @@ * platform differences in one central place. */ #ifdef __APPLE__ -#include #include #include #else #include -#include #endif #endif /* __UTIL_OPENGL_H__ */ diff --git a/intern/cycles/util/util_view.cpp b/intern/cycles/util/util_view.cpp index 75f0b92e705..2c6251b02ee 100644 --- a/intern/cycles/util/util_view.cpp +++ b/intern/cycles/util/util_view.cpp @@ -20,6 +20,12 @@ #include #include +#ifdef __APPLE__ +#include +#else +#include +#endif + #include "util_opengl.h" #include "util_time.h" #include "util_view.h" -- cgit v1.2.3 From 2996f08f845c4b67b0231d5832668da5ddb2d227 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 3 May 2011 18:29:11 +0000 Subject: Cycles: first batch of windows build fixes, not quite there yet. --- intern/cycles/blender/CMakeLists.txt | 25 +++++++++++++++++++++++-- intern/cycles/blender/blender_camera.cpp | 2 +- intern/cycles/blender/blender_util.h | 4 ++-- intern/cycles/bvh/bvh.cpp | 2 +- intern/cycles/bvh/bvh.h | 2 +- intern/cycles/bvh/bvh_build.cpp | 4 ++-- intern/cycles/cmake/external_libs.cmake | 9 +++++---- intern/cycles/cmake/platforms.cmake | 2 +- intern/cycles/device/CMakeLists.txt | 2 +- intern/cycles/device/device_cuda.cpp | 23 +++++++++++++---------- intern/cycles/kernel/kernel_film.h | 6 +++--- intern/cycles/kernel/svm/svm_noise.h | 6 +++--- intern/cycles/kernel/svm/svm_texture.h | 4 ++-- intern/cycles/render/CMakeLists.txt | 10 +++++++++- intern/cycles/render/buffers.h | 2 +- intern/cycles/render/nodes.cpp | 4 ++-- intern/cycles/render/object.h | 2 +- intern/cycles/render/shader.h | 2 +- intern/cycles/render/svm.h | 2 +- intern/cycles/subd/subd_build.cpp | 18 +++++++++--------- intern/cycles/subd/subd_split.cpp | 4 ++-- intern/cycles/util/util_map.h | 2 +- intern/cycles/util/util_math.h | 3 ++- intern/cycles/util/util_set.h | 2 +- intern/cycles/util/util_types.h | 5 +++++ intern/guardedalloc/MEM_guardedalloc.h | 4 ++++ source/blender/makesrna/RNA_types.h | 6 ++++++ source/blender/makesrna/intern/makesrna.c | 12 +++++++++--- 28 files changed, 112 insertions(+), 57 deletions(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 096363e5d9f..56d08b61b65 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -29,7 +29,8 @@ INCLUDE_DIRECTORIES( ../util ../subd ${BLENDER_INCLUDE_DIRS} - ${PYTHON_INCLUDE_DIRS}) + ${PYTHON_INCLUDE_DIRS} + ${GLEW_INCLUDE_PATH}) SET(LIBRARIES cycles_render @@ -41,7 +42,6 @@ SET(LIBRARIES ${Boost_LIBRARIES} ${OPENGL_LIBRARIES} ${OPENIMAGEIO_LIBRARY} - ${PYTHON_LIBRARIES} ${GLUT_LIBRARIES} ${GLEW_LIBRARIES} ${BLENDER_LIBRARIES}) @@ -58,10 +58,21 @@ IF(WITH_CYCLES_OPENCL) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) ENDIF() +LINK_DIRECTORIES(${PYTHON_LIBPATH}) SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) ADD_DEPENDENCIES(cycles_blender bf_rna) + +IF(WIN32) + TARGET_LINK_LIBRARIES(cycles_blender ${PYTHON_LINKFLAGS}) + TARGET_LINK_LIBRARIES(cycles_blender debug ${PYTHON_LIBRARY}_d) + TARGET_LINK_LIBRARIES(cycles_blender optimized ${PYTHON_LIBRARY}) + + SET_TARGET_PROPERTIES(cycles_blender PROPERTIES PREFIX "lib") + SET_TARGET_PROPERTIES(cycles_blender PROPERTIES SUFFIX ".pyd") +ENDIF() + TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) @@ -71,3 +82,13 @@ IF(UNIX AND NOT APPLE) SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) ENDIF() +# Install DLL's + +IF(WIN32) + FILE(GLOB OIIO_DLLS "${CYCLES_OIIO}/bin/*.dll") + FILE(GLOB BOOST_DLLS "${CYCLES_BOOST}/lib/*.dll") + INSTALL(FILES ${OIIO_DLLS} ${BOOST_DLLS} + DESTINATION ${CYCLES_INSTALL_PATH}/cycles) +ENDIF() + + diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index cc4cfda8793..530193247ae 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -218,7 +218,7 @@ void BlenderSync::sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int blender_camera_from_object(&bcam, b_ob); /* magic zoom formula */ - bcam.zoom = b_rv3d.view_camera_zoom(); + bcam.zoom = (float)b_rv3d.view_camera_zoom(); bcam.zoom = (1.41421f + bcam.zoom/50.0f); bcam.zoom *= bcam.zoom; bcam.zoom = 2.0f/bcam.zoom; diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 9da1c1dfe05..715dc7e6fb0 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -77,7 +77,7 @@ static inline void object_free_duplilist(BL::Object self) static inline bool object_is_modified(BL::Object self, BL::Scene scene, bool preview) { - return rna_Object_is_modified(self.ptr.data, scene.ptr.data, (preview)? (1<<0): (1<<1)); + return rna_Object_is_modified(self.ptr.data, scene.ptr.data, (preview)? (1<<0): (1<<1))? true: false; } /* Utilities */ @@ -139,7 +139,7 @@ static inline uint get_layer(BL::Array array) static inline bool get_boolean(PointerRNA& ptr, const char *name) { - return RNA_boolean_get(&ptr, name); + return RNA_boolean_get(&ptr, name)? true: false; } static inline float get_float(PointerRNA& ptr, const char *name) diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index ab230794774..664bdd98b1f 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -467,7 +467,7 @@ void RegularBVH::refit_nodes() assert(!params.top_level); BoundBox bbox; - refit_node(0, pack.is_leaf[0], bbox); + refit_node(0, (pack.is_leaf[0])? true: false, bbox); } void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox) diff --git a/intern/cycles/bvh/bvh.h b/intern/cycles/bvh/bvh.h index acc25291da3..6b877594422 100644 --- a/intern/cycles/bvh/bvh.h +++ b/intern/cycles/bvh/bvh.h @@ -26,7 +26,7 @@ CCL_NAMESPACE_BEGIN class BVHNode; -class BVHStackEntry; +struct BVHStackEntry; class BVHParams; class BoundBox; class CacheData; diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index 6a9cc915f01..3e47cb75014 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -359,8 +359,8 @@ BVHBuild::SpatialSplit BVHBuild::find_spatial_split(const NodeSpec& spec, float const Reference& ref = references[refIdx]; float3 firstBinf = (ref.bounds.min - origin) * invBinSize; float3 lastBinf = (ref.bounds.max - origin) * invBinSize; - int3 firstBin = make_int3(firstBinf.x, firstBinf.y, firstBinf.z); - int3 lastBin = make_int3(lastBinf.x, lastBinf.y, lastBinf.z); + int3 firstBin = make_int3((int)firstBinf.x, (int)firstBinf.y, (int)firstBinf.z); + int3 lastBin = make_int3((int)lastBinf.x, (int)lastBinf.y, (int)lastBinf.z); firstBin = clamp(firstBin, 0, BVHParams::NUM_SPATIAL_BINS - 1); lastBin = clamp(lastBin, firstBin, BVHParams::NUM_SPATIAL_BINS - 1); diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 5d1ed868574..cfd997a6469 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -8,9 +8,6 @@ SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" "1.41" "1.41.0" "1.40" "1.40.0" "1.39" "1.39.0" "1.38" "1.38.0" "1.37" "1.37.0" "1.34.1" "1_34_1") -IF(LINKSTATIC) - SET(Boost_USE_STATIC_LIBS ON) -ENDIF() SET(Boost_USE_MULTITHREADED ON) @@ -25,6 +22,8 @@ MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}") INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}") LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}") +ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB) + IF(WITH_CYCLES_NETWORK) ADD_DEFINITIONS(-DWITH_NETWORK) ENDIF() @@ -126,8 +125,10 @@ IF(WITH_CYCLES_BLENDER) ${CMAKE_SOURCE_DIR}/source/blender/blenloader ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern) IF(WIN32) - SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/Release/blender.lib) + SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/blender.lib) ENDIF() + + ADD_DEFINITIONS(-DBLENDER_PLUGIN) ENDIF() ########################################################################### diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake index 075b4761a85..659fd5dcad3 100644 --- a/intern/cycles/cmake/platforms.cmake +++ b/intern/cycles/cmake/platforms.cmake @@ -11,7 +11,7 @@ IF(APPLE) ENDIF(APPLE) IF(WIN32) - SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") SET(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") SET(PYTHON_MODULE_FLAGS "-DLL") ENDIF(WIN32) diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index 0885cd6fc20..712351b9558 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -7,7 +7,7 @@ INCLUDE_DIRECTORIES( ../util ../render ${OPENGL_INCLUDE_DIR} - ${GLEW_INCLUDE_DIR}) + ${GLEW_INCLUDE_PATH}) SET(sources device.cpp diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 76692ba8657..0537e231f44 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -356,7 +356,8 @@ public: cuda_assert(cuParamSetv(cuPathTrace, offset, &d_rng_state, sizeof(d_rng_state))) offset += sizeof(d_rng_state); - offset = cuda_align_up(offset, __alignof(task.pass)); + int pass = task.pass; + offset = cuda_align_up(offset, __alignof(pass)); cuda_assert(cuParamSeti(cuPathTrace, offset, task.pass)) offset += sizeof(task.pass); @@ -413,7 +414,8 @@ public: cuda_assert(cuParamSetv(cuFilmConvert, offset, &d_buffer, sizeof(d_buffer))) offset += sizeof(d_buffer); - offset = cuda_align_up(offset, __alignof(task.pass)); + int pass = task.pass; + offset = cuda_align_up(offset, __alignof(pass)); cuda_assert(cuParamSeti(cuFilmConvert, offset, task.pass)) offset += sizeof(task.pass); @@ -475,7 +477,8 @@ public: cuda_assert(cuParamSetv(cuDisplace, offset, &d_offset, sizeof(d_offset))) offset += sizeof(d_offset); - offset = cuda_align_up(offset, __alignof(task.displace_x)); + int displace_x = task.displace_x; + offset = cuda_align_up(offset, __alignof(displace_x)); cuda_assert(cuParamSeti(cuDisplace, offset, task.displace_x)) offset += sizeof(task.displace_x); @@ -621,18 +624,18 @@ public: glColor3f(1.0f, 1.0f, 1.0f); glPushMatrix(); - glTranslatef(0, y, 0.0f); + glTranslatef(0.0f, (float)y, 0.0f); glBegin(GL_QUADS); - glTexCoord2f(0, 0); - glVertex2f(0, 0); + glTexCoord2f(0.0f, 0.0f); + glVertex2f(0.0f, 0.0f); glTexCoord2f((float)w/(float)width, 0); - glVertex2f(width, 0); + glVertex2f((float)width, 0.0f); glTexCoord2f((float)w/(float)width, (float)h/(float)height); - glVertex2f(width, height); - glTexCoord2f(0, (float)h/(float)height); - glVertex2f(0, height); + glVertex2f((float)width, (float)height); + glTexCoord2f(0.0f, (float)h/(float)height); + glVertex2f(0.0f, (float)height); glEnd(); diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/kernel_film.h index 04ea889f4c0..0bbd6c202a1 100644 --- a/intern/cycles/kernel/kernel_film.h +++ b/intern/cycles/kernel/kernel_film.h @@ -44,9 +44,9 @@ __device uchar4 film_float_to_byte(float4 color) uchar4 result; /* simple float to byte conversion */ - result.x = clamp(color.x*255.0f, 0.0f, 255.0f); - result.y = clamp(color.y*255.0f, 0.0f, 255.0f); - result.z = clamp(color.z*255.0f, 0.0f, 255.0f); + result.x = (uchar)clamp(color.x*255.0f, 0.0f, 255.0f); + result.y = (uchar)clamp(color.y*255.0f, 0.0f, 255.0f); + result.z = (uchar)clamp(color.z*255.0f, 0.0f, 255.0f); result.w = 255; return result; diff --git a/intern/cycles/kernel/svm/svm_noise.h b/intern/cycles/kernel/svm/svm_noise.h index 745744e142c..f41caa99772 100644 --- a/intern/cycles/kernel/svm/svm_noise.h +++ b/intern/cycles/kernel/svm/svm_noise.h @@ -143,9 +143,9 @@ __device float perlin_periodic(float x, float y, float z, float3 pperiod) int3 p; - p.x = fmaxf(quick_floor(pperiod.x), 1); - p.y = fmaxf(quick_floor(pperiod.y), 1); - p.z = fmaxf(quick_floor(pperiod.z), 1); + p.x = max(quick_floor(pperiod.x), 1); + p.y = max(quick_floor(pperiod.y), 1); + p.z = max(quick_floor(pperiod.z), 1); float u = fade(fx); float v = fade(fy); diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h index c5f71c0d5bd..c5ded6d975f 100644 --- a/intern/cycles/kernel/svm/svm_texture.h +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -64,12 +64,12 @@ __device void voronoi(float3 p, NodeDistanceMetric distance_metric, float e, flo for(xx = xi-1; xx <= xi+1; xx++) { for(yy = yi-1; yy <= yi+1; yy++) { for(zz = zi-1; zz <= zi+1; zz++) { - float3 ip = make_float3(xx, yy, zz); + float3 ip = make_float3((float)xx, (float)yy, (float)zz); float3 vp = cellnoise_color(ip); float3 pd = p - (vp + ip); float d = voronoi_distance(distance_metric, pd, e); - vp += make_float3(xx, yy, zz); + vp += make_float3((float)xx, (float)yy, (float)zz); if(d < da[0]) { da[3] = da[2]; diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt index f2342c9032a..9a0583c48aa 100644 --- a/intern/cycles/render/CMakeLists.txt +++ b/intern/cycles/render/CMakeLists.txt @@ -1,5 +1,13 @@ -INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../kernel/osl ../bvh ../util) +INCLUDE_DIRECTORIES( + . + ../device + ../kernel + ../kernel/svm + ../kernel/osl + ../bvh + ../util + ${GLEW_INCLUDE_PATH}) SET(sources attribute.cpp diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h index f31ddd1e9bd..1922f875d86 100644 --- a/intern/cycles/render/buffers.h +++ b/intern/cycles/render/buffers.h @@ -28,7 +28,7 @@ CCL_NAMESPACE_BEGIN class Device; -class float4; +struct float4; /* Render Buffers */ diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 42cadb8faa7..ea1b794b176 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -990,8 +990,8 @@ void BsdfNode::compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput * compiler.add_node(NODE_CLOSURE_BSDF, closure, - (param1)? __float_as_int(param1->value.x): 0.0f, - (param2)? __float_as_int(param2->value.x): 0.0f); + __float_as_int((param1)? param1->value.x: 0.0f), + __float_as_int((param2)? param2->value.x: 0.0f)); } void BsdfNode::compile(SVMCompiler& compiler) diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h index ff92b381063..7a12a06853b 100644 --- a/intern/cycles/render/object.h +++ b/intern/cycles/render/object.h @@ -31,7 +31,7 @@ class DeviceScene; class Mesh; class Progress; class Scene; -class Transform; +struct Transform; /* Object */ diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h index 0712100b3e7..cc8bc473a3f 100644 --- a/intern/cycles/render/shader.h +++ b/intern/cycles/render/shader.h @@ -35,7 +35,7 @@ class Mesh; class Progress; class Scene; class ShaderGraph; -class float3; +struct float3; /* Shader describing the appearance of a Mesh, Light or Background. * diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index 346d2a73801..f76649e4a6f 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -30,7 +30,7 @@ CCL_NAMESPACE_BEGIN class Device; class DeviceScene; class ImageManager; -class KernelSunSky; +struct KernelSunSky; class Scene; class ShaderGraph; class ShaderInput; diff --git a/intern/cycles/subd/subd_build.cpp b/intern/cycles/subd/subd_build.cpp index 4c2a6299014..640c30eba9d 100644 --- a/intern/cycles/subd/subd_build.cpp +++ b/intern/cycles/subd/subd_build.cpp @@ -228,7 +228,7 @@ void SubdAccBuilder::computeEdgeStencil(SubdFaceRing *ring, GregoryAccStencil *s computeBoundaryTangentStencils(ring, vert, r0, r1); int k = valence - 1; - float omega = M_PI / k; + float omega = M_PI_F / k; int eid1 = edge1Indices[primitiveOffset + v]; int eid2 = edge2Indices[primitiveOffset + v]; @@ -298,7 +298,7 @@ void SubdAccBuilder::computeEdgeStencil(SubdFaceRing *ring, GregoryAccStencil *s } } else { - float costerm = cosf(M_PI / valence); + float costerm = cosf(M_PI_F / valence); float sqrtterm = sqrtf(4.0f + costerm*costerm); /* float tangentScale = 1.0f; */ @@ -319,11 +319,11 @@ void SubdAccBuilder::computeEdgeStencil(SubdFaceRing *ring, GregoryAccStencil *s SubdEdge *edge = eit.current(); assert(vert->co == edge->from()->co); - float costerm1_a = cosf(M_PI * 2 * (j-i1) / valence); - float costerm1_b = cosf(M_PI * (2 * (j-i1)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ + float costerm1_a = cosf(M_PI_F * 2 * (j-i1) / valence); + float costerm1_b = cosf(M_PI_F * (2 * (j-i1)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ - float costerm2_a = cosf(M_PI * 2 * (j-i2) / valence); - float costerm2_b = cosf(M_PI * (2 * (j-i2)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ + float costerm2_a = cosf(M_PI_F * 2 * (j-i2) / valence); + float costerm2_b = cosf(M_PI_F * (2 * (j-i2)-1) / valence); /* -1 instead of +1 b/c of edge->next->to() */ stencil->get(eid1, edge->to()) += alpha * costerm1_a; @@ -413,10 +413,10 @@ void SubdAccBuilder::computeInteriorStencil(SubdFaceRing *ring, GregoryAccStenci } else { SubdVert *e0 = edge->from(); - float costerm0 = cosf(2.0f * M_PI / pseudoValence(e0)); + float costerm0 = cosf(2.0f * M_PI_F / pseudoValence(e0)); SubdVert *f0 = edge->to(); - float costerm1 = cosf(2.0f * M_PI / pseudoValence(f0)); + float costerm1 = cosf(2.0f * M_PI_F / pseudoValence(f0)); /* p0 +------+ q0 * | | @@ -566,7 +566,7 @@ void SubdAccBuilder::computeBoundaryTangentStencils(SubdFaceRing *ring, SubdVert int valence = vert->valence(); int k = valence - 1; - float omega = M_PI / k; + float omega = M_PI_F / k; float s = sinf(omega); float c = cosf(omega); diff --git a/intern/cycles/subd/subd_split.cpp b/intern/cycles/subd/subd_split.cpp index 712bd041e64..d61a42e4dcf 100644 --- a/intern/cycles/subd/subd_split.cpp +++ b/intern/cycles/subd/subd_split.cpp @@ -82,8 +82,8 @@ int DiagSplit::T(Patch *patch, float2 Pstart, float2 Pend) Plast = P; } - int tmin = ceil(Lsum/dicing_rate); - int tmax = ceil((test_steps-1)*Lmax/dicing_rate); // XXX paper says N instead of N-1, seems wrong? + int tmin = (int)ceil(Lsum/dicing_rate); + int tmax = (int)ceil((test_steps-1)*Lmax/dicing_rate); // XXX paper says N instead of N-1, seems wrong? if(tmax - tmin > split_threshold) return DSPLIT_NON_UNIFORM; diff --git a/intern/cycles/util/util_map.h b/intern/cycles/util/util_map.h index 884f45c3b27..f0abe70f785 100644 --- a/intern/cycles/util/util_map.h +++ b/intern/cycles/util/util_map.h @@ -20,7 +20,7 @@ #define __UTIL_MAP_H__ #include -#include +#include CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 26d6d429b7a..0ab06f94701 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -48,7 +48,8 @@ CCL_NAMESPACE_BEGIN #ifdef _WIN32 -#define copysignf _copysign +#define copysignf(x, y) ((float)_copysign(x, y)) +#define hypotf(x, y) _hypotf(x, y) __device_inline float fmaxf(float a, float b) { diff --git a/intern/cycles/util/util_set.h b/intern/cycles/util/util_set.h index ac310e93e80..8904063dd86 100644 --- a/intern/cycles/util/util_set.h +++ b/intern/cycles/util/util_set.h @@ -20,7 +20,7 @@ #define __UTIL_SET_H__ #include -#include +#include CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h index a0e352128d1..bc7ba056390 100644 --- a/intern/cycles/util/util_types.h +++ b/intern/cycles/util/util_types.h @@ -34,7 +34,12 @@ #define __local #define __shared #define __constant + +#ifdef __GNUC__ #define __device_inline static inline __attribute__((always_inline)) +#else +#define __device_inline static __forceinline +#endif #endif diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index 1bc7f7c59dd..a4beea6d8d5 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -63,7 +63,11 @@ #ifndef LIBEXPORT #ifdef _WIN32 +#ifdef BLENDER_PLUGIN +#define LIBEXPORT __declspec(dllimport) +#else #define LIBEXPORT __declspec(dllexport) +#endif #else #define LIBEXPORT #endif diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 63cc0bb737c..229d0fdb020 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,11 +36,17 @@ extern "C" { #endif +#ifndef LIBEXPORT #ifdef _WIN32 +#ifdef BLENDER_PLUGIN +#define LIBEXPORT __declspec(dllimport) +#else #define LIBEXPORT __declspec(dllexport) +#endif #else #define LIBEXPORT #endif +#endif struct ParameterList; struct FunctionRNA; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index e056c545ead..49f2969f72d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2450,11 +2450,17 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); + fprintf(f, "#ifndef LIBEXPORT\n"); fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#ifdef BLENDER_PLUGIN\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); + fprintf(f, "#else\n"); fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); + fprintf(f, "#endif\n"); fprintf(f, "#else\n"); fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n\n"); + fprintf(f, "#endif\n"); + fprintf(f, "#endif\n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2580,7 +2586,7 @@ static const char *cpp_classes = "" "namespace BL {\n" "\n" "#define BOOLEAN_PROPERTY(sname, identifier) \\\n" -" inline bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" +" inline bool sname::identifier(void) { return sname##_##identifier##_get(&ptr)? true: false; }\n" "\n" "#define BOOLEAN_ARRAY_PROPERTY(sname, size, identifier) \\\n" " inline Array sname::identifier(void) \\\n" @@ -2622,7 +2628,7 @@ static const char *cpp_classes = "" "public:\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); }\n" +" bool is_a(StructRNA *type) { return RNA_struct_is_a(ptr.type, type)? true: false; }\n" " operator void*() { return ptr.data; }\n" " operator bool() { return ptr.data != NULL; }\n" "\n" -- cgit v1.2.3 From 0651b9fde32a7349e782522cba431af9552c23e5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 May 2011 09:41:45 +0000 Subject: Cycles: fix scene not updating for animation render, patch by David Rodriguez Garcia. --- intern/cycles/blender/addon/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 0a2e5cee142..bb418340f55 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -48,6 +48,7 @@ class CyclesRender(bpy.types.RenderEngine): engine.free(self) def render(self, scene): + scene.frame_set(scene.frame_current) # should this be done already? engine.create(self, scene, True) engine.render(self, scene) -- cgit v1.2.3 From f56aa76752315a763924ade2406d1bcc436f27f1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 May 2011 09:58:02 +0000 Subject: Cycles: some more windows build fixes, based on patch by Francisco De La Cruz. --- intern/cycles/cmake/platforms.cmake | 2 +- intern/cycles/kernel/CMakeLists.txt | 8 +++++++- intern/cycles/util/util_math.h | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake index 659fd5dcad3..e4364d8fc5d 100644 --- a/intern/cycles/cmake/platforms.cmake +++ b/intern/cycles/cmake/platforms.cmake @@ -11,7 +11,7 @@ IF(APPLE) ENDIF(APPLE) IF(WIN32) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") SET(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") SET(PYTHON_MODULE_FLAGS "-DLL") ENDIF(WIN32) diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 1f027b40108..f1aa1db9e8c 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -71,6 +71,12 @@ SET(headers # CUDA module +IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + SET(CUDA_BITS 64) +ELSE() + SET(CUDA_BITS 32) +ENDIF() + IF(WITH_CYCLES_CUDA) SET(cuda_sources kernel.cu ${headers}) SET(cuda_cubins) @@ -80,7 +86,7 @@ IF(WITH_CYCLES_CUDA) ADD_CUSTOM_COMMAND( OUTPUT ${cuda_cubin} - COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= + COMMAND ${CUDA_NVCC} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC DEPENDS ${cuda_sources}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 0ab06f94701..3475e309af5 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -48,9 +48,13 @@ CCL_NAMESPACE_BEGIN #ifdef _WIN32 +#ifndef __KERNEL_GPU__ + #define copysignf(x, y) ((float)_copysign(x, y)) #define hypotf(x, y) _hypotf(x, y) +#endif + __device_inline float fmaxf(float a, float b) { return (a > b)? a: b; -- cgit v1.2.3 From cf00171da56ce1e8d6adde9e447c4dab52f47ea9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 May 2011 14:01:38 +0000 Subject: Cycles: fix for UV texture coordinates lookup with more than one mesh, bug in corner attribute storage. --- intern/cycles/kernel/kernel_triangle.h | 16 ++++++++-------- intern/cycles/render/mesh.cpp | 6 ++++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/intern/cycles/kernel/kernel_triangle.h b/intern/cycles/kernel/kernel_triangle.h index 64cbb2dcb61..ddf8b7b1caf 100644 --- a/intern/cycles/kernel/kernel_triangle.h +++ b/intern/cycles/kernel/kernel_triangle.h @@ -116,10 +116,10 @@ __device float triangle_attribute_float(KernelGlobals *kg, const ShaderData *sd, return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; } else if(elem == ATTR_ELEMENT_CORNER) { - int tri = offset + sd->prim; - float f0 = kernel_tex_fetch(__attributes_float, tri*3 + 0); - float f1 = kernel_tex_fetch(__attributes_float, tri*3 + 1); - float f2 = kernel_tex_fetch(__attributes_float, tri*3 + 2); + int tri = offset + sd->prim*3; + float f0 = kernel_tex_fetch(__attributes_float, tri + 0); + float f1 = kernel_tex_fetch(__attributes_float, tri + 1); + float f2 = kernel_tex_fetch(__attributes_float, tri + 2); #ifdef __RAY_DIFFERENTIALS__ if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; @@ -159,10 +159,10 @@ __device float3 triangle_attribute_float3(KernelGlobals *kg, const ShaderData *s return sd->u*f0 + sd->v*f1 + (1.0f - sd->u - sd->v)*f2; } else if(elem == ATTR_ELEMENT_CORNER) { - int tri = offset + sd->prim; - float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 0)); - float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 1)); - float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, tri*3 + 2)); + int tri = offset + sd->prim*3; + float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 0)); + float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 1)); + float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 2)); #ifdef __RAY_DIFFERENTIALS__ if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index eb9fefcc0ad..aae32851131 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -469,11 +469,13 @@ void MeshManager::device_update_attributes(Device *device, DeviceScene *dscene, } /* mesh vertex/triangle index is global, not per object, so we sneak - a correct for that in here */ + a correction for that in here */ if(req.element == ATTR_ELEMENT_VERTEX) req.offset -= mesh->vert_offset; - else + else if(mattr->element == Attribute::FACE) req.offset -= mesh->tri_offset; + else if(mattr->element == Attribute::CORNER) + req.offset -= 3*mesh->tri_offset; if(progress.get_cancel()) return; } -- cgit v1.2.3 From 6778ea39d5ea56a3973b96c3819b20ed96fb01a6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 May 2011 15:22:15 +0000 Subject: Cycles: rename UV geometry node output to Parametric to avoid confusion with uv texture coordinates. --- intern/cycles/kernel/osl/nodes/node_geometry.osl | 8 ++++---- intern/cycles/render/nodes.cpp | 4 ++-- source/blender/nodes/intern/SHD_nodes/SHD_geometry.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/intern/cycles/kernel/osl/nodes/node_geometry.osl b/intern/cycles/kernel/osl/nodes/node_geometry.osl index bf76e2e597a..9efc2a75c64 100644 --- a/intern/cycles/kernel/osl/nodes/node_geometry.osl +++ b/intern/cycles/kernel/osl/nodes/node_geometry.osl @@ -27,7 +27,7 @@ shader node_geometry( output normal Tangent = normal(0.0, 0.0, 0.0), output normal TrueNormal = normal(0.0, 0.0, 0.0), output vector Incoming = vector(0.0, 0.0, 0.0), - output point UV = point(0.0, 0.0, 0.0), + output point Parametric = point(0.0, 0.0, 0.0), output float Backfacing = 0.0) { Position = P; @@ -35,16 +35,16 @@ shader node_geometry( Tangent = normalize(dPdu); TrueNormal = Ng; Incoming = I; - UV = point(u, v, 0.0); + Parametric = point(u, v, 0.0); Backfacing = backfacing(); if(bump_offset == "dx") { Position += Dx(Position); - UV += Dx(UV); + Parametric += Dx(Parametric); } else if(bump_offset == "dy") { Position += Dy(Position); - UV += Dy(UV); + Parametric += Dy(Parametric); } } diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index ea1b794b176..d437d0dfcc1 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1251,7 +1251,7 @@ GeometryNode::GeometryNode() add_output("Tangent", SHADER_SOCKET_NORMAL); add_output("True Normal", SHADER_SOCKET_NORMAL); add_output("Incoming", SHADER_SOCKET_VECTOR); - add_output("UV", SHADER_SOCKET_POINT); + add_output("Parametric", SHADER_SOCKET_POINT); add_output("Backfacing", SHADER_SOCKET_FLOAT); } @@ -1295,7 +1295,7 @@ void GeometryNode::compile(SVMCompiler& compiler) compiler.add_node(geom_node, NODE_GEOM_I, out->stack_offset); } - out = output("UV"); + out = output("Parametric"); if(!out->links.empty()) { compiler.stack_assign(out); compiler.add_node(geom_node, NODE_GEOM_uv, out->stack_offset); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c index 0f6226e9fff..20fbb520ef8 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_geometry_out[]= { { SOCK_VECTOR, 1, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VECTOR, 1, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VECTOR, 1, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 1, "Parametric", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From 61fdadbb2e67fcd3dbae08a22c2c64983cca2f5d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 5 May 2011 09:43:45 +0000 Subject: Cycles refactoring: put external engine code into separate file. --- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/editors/render/render_shading.c | 2 +- source/blender/editors/space_view3d/space_view3d.c | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 1 + source/blender/makesrna/intern/rna_render.c | 1 + source/blender/makesrna/intern/rna_scene.c | 1 + source/blender/render/CMakeLists.txt | 2 + source/blender/render/SConscript | 2 +- source/blender/render/extern/include/RE_engine.h | 102 ++++++++++ source/blender/render/extern/include/RE_pipeline.h | 54 ------ .../blender/render/intern/include/renderpipeline.h | 8 + source/blender/render/intern/pipeline/engine.c | 205 +++++++++++++++++++++ source/blender/render/intern/source/pipeline.c | 158 +--------------- source/blender/windowmanager/intern/wm_draw.c | 2 +- source/blender/windowmanager/intern/wm_init_exit.c | 1 + source/creator/creator.c | 1 + 16 files changed, 333 insertions(+), 211 deletions(-) create mode 100644 source/blender/render/extern/include/RE_engine.h create mode 100644 source/blender/render/intern/pipeline/engine.c diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 82c847abebf..02c77a7e1a4 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -139,7 +139,7 @@ #include "BLO_undofile.h" #include "BLO_readblenfile.h" // streaming read pipe, for BLO_readblenfile BLO_readblenfilememory -#include "RE_pipeline.h" +#include "RE_engine.h" #include "readfile.h" diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 07783ee6ed8..c30d6f3186b 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -238,7 +238,7 @@ static void scene_changed(Main *bmain, Scene *UNUSED(scene)) #include "DNA_screen_types.h" #include "DNA_view3d_types.h" -#include "RE_pipeline.h" +#include "RE_engine.h" static void update_render_engines(Main *bmain, int tagged_only) { diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index c96917333fd..f85eb7d66a0 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -58,7 +58,7 @@ #include "WM_api.h" #include "WM_types.h" -#include "RE_pipeline.h" +#include "RE_engine.h" #include "RNA_access.h" diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 3e2328ed010..5eac095e6a7 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -63,6 +63,7 @@ #include "BKE_scene.h" #include "BKE_unit.h" +#include "RE_engine.h" #include "RE_pipeline.h" // make_stars #include "IMB_imbuf_types.h" diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 85e1ec159cd..842a5f49998 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -35,6 +35,7 @@ #include "rna_internal.h" +#include "RE_engine.h" #include "RE_pipeline.h" #include "BKE_utildefines.h" diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 294062c2ed3..327dd21b7c7 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -41,6 +41,7 @@ #include "DNA_userdef_types.h" /* Include for Bake Options */ +#include "RE_engine.h" #include "RE_pipeline.h" #ifdef WITH_QUICKTIME diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index cc69760415b..2ffe3b360e9 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -77,7 +77,9 @@ set(SRC intern/source/volumetric.c intern/source/voxeldata.c intern/source/zbuf.c + intern/pipeline/engine.c + extern/include/RE_engine.h extern/include/RE_pipeline.h extern/include/RE_render_ext.h extern/include/RE_shader_ext.h diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index e175d81b806..4eff9fe238d 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -1,7 +1,7 @@ #!/usr/bin/python Import ('env') -sources = env.Glob('intern/source/*.c') +sources = env.Glob('intern/source/*.c') + env.Glob('intern/pipeline/*.c') raysources = env.Glob('intern/raytrace/*.cpp') incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna' diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h new file mode 100644 index 00000000000..6793acb1482 --- /dev/null +++ b/source/blender/render/extern/include/RE_engine.h @@ -0,0 +1,102 @@ +/* + * $Id$ + * + * ***** 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 RE_engine.h + * \ingroup render + */ + +#ifndef RE_ENGINE_H +#define RE_ENGINE_H + +#include "DNA_listBase.h" +#include "DNA_vec_types.h" +#include "RNA_types.h" + +struct Render; +struct RenderEngine; +struct RenderEngineType; +struct RenderLayer; +struct RenderResult; +struct ReportList; +struct Scene; + +/* External Engine */ + +#define RE_INTERNAL 1 +#define RE_GAME 2 +#define RE_DO_PREVIEW 4 +#define RE_DO_ALL 8 + +extern ListBase R_engines; + +typedef struct RenderEngineType { + struct RenderEngineType *next, *prev; + + /* type info */ + char idname[64]; // best keep the same size as BKE_ST_MAXNAME + char name[64]; + int flag; + + void (*render)(struct RenderEngine *engine, struct Scene *scene); + void (*draw)(struct RenderEngine *engine, struct Scene *scene); + void (*update)(struct RenderEngine *engine, struct Scene *scene); + + /* RNA integration */ + ExtensionRNA ext; +} RenderEngineType; + +typedef struct RenderEngine { + RenderEngineType *type; + struct Render *re; + ListBase fullresult; + void *py_instance; + int do_draw; + int do_update; +} RenderEngine; + +RenderEngine *RE_engine_create(RenderEngineType *type); +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); + +LIBEXPORT struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); +LIBEXPORT void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); +LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); + +LIBEXPORT int RE_engine_test_break(RenderEngine *engine); +LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); + +int RE_engine_render(struct Render *re, int do_all); + +void RE_engines_init(void); +void RE_engines_exit(void); + +#endif /* RE_ENGINE_H */ + diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 65b03e85ca0..0e9fd6cc089 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -36,7 +36,6 @@ #include "DNA_listBase.h" #include "DNA_vec_types.h" -#include "RNA_types.h" struct bNodeTree; struct Image; @@ -44,11 +43,8 @@ struct Main; struct NodeBlurData; struct Object; struct RenderData; -struct RenderEngine; -struct RenderEngineType; struct RenderResult; struct ReportList; -struct ReportList; struct Scene; struct SceneRenderLayer; @@ -263,56 +259,6 @@ void RE_DataBase_GetView(struct Render *re, float mat[][4]); void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]); struct Scene *RE_GetScene(struct Render *re); -/* External Engine */ - -#define RE_INTERNAL 1 -#define RE_GAME 2 -#define RE_DO_PREVIEW 4 -#define RE_DO_ALL 8 - -extern ListBase R_engines; - -typedef struct RenderEngineType { - struct RenderEngineType *next, *prev; - - /* type info */ - char idname[64]; // best keep the same size as BKE_ST_MAXNAME - char name[64]; - int flag; - - void (*render)(struct RenderEngine *engine, struct Scene *scene); - void (*draw)(struct RenderEngine *engine, struct Scene *scene); - void (*update)(struct RenderEngine *engine, struct Scene *scene); - - /* RNA integration */ - ExtensionRNA ext; -} RenderEngineType; - -typedef struct RenderEngine { - RenderEngineType *type; - struct Render *re; - ListBase fullresult; - void *py_instance; - int do_draw; - int do_update; -} RenderEngine; - -RenderEngine *RE_engine_create(RenderEngineType *type); -void RE_engine_free(RenderEngine *engine); - -void RE_layer_load_from_file(RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y); -void RE_result_load_from_file(RenderResult *result, struct ReportList *reports, const char *filename); - -LIBEXPORT struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); -LIBEXPORT void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); -LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); - -LIBEXPORT int RE_engine_test_break(RenderEngine *engine); -LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); - -void RE_engines_init(void); -void RE_engines_exit(void); - int RE_is_rendering_allowed(struct Scene *scene, void *erh, void (*error)(void *handle, const char *str)); #endif /* RE_PIPELINE_H */ diff --git a/source/blender/render/intern/include/renderpipeline.h b/source/blender/render/intern/include/renderpipeline.h index 7e50af97216..46e5d0994e2 100644 --- a/source/blender/render/intern/include/renderpipeline.h +++ b/source/blender/render/intern/include/renderpipeline.h @@ -35,14 +35,22 @@ #ifndef PIPELINE_H #define PIPELINE_H +struct ListBase; struct Render; struct RenderResult; struct RenderLayer; +struct rcti; struct RenderLayer *render_get_active_layer(struct Render *re, struct RenderResult *rr); float panorama_pixel_rot(struct Render *re); #define PASS_VECTOR_MAX 10000.0f +#define RR_USEMEM 0 + +struct RenderResult *new_render_result(struct Render *re, struct rcti *partrct, int crop, int savebuffers); +void merge_render_result(struct RenderResult *rr, struct RenderResult *rrpart); +void free_render_result(struct ListBase *lb, struct RenderResult *rr); + #endif /* PIPELINE_H */ diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c new file mode 100644 index 00000000000..4035f5569ee --- /dev/null +++ b/source/blender/render/intern/pipeline/engine.c @@ -0,0 +1,205 @@ +/* + * $Id$ + * + * ***** 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/render/intern/pipeline/engine.c + * \ingroup render + */ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_listbase.h" +#include "BLI_utildefines.h" + +#include "BKE_report.h" + +#include "IMB_imbuf.h" +#include "IMB_imbuf_types.h" + +#include "intern/openexr/openexr_multi.h" + +#ifdef WITH_PYTHON +#include "BPY_extern.h" +#endif + +#include "RE_engine.h" +#include "RE_pipeline.h" + +#include "render_types.h" +#include "renderpipeline.h" + +/* Create, Free */ + +RenderEngine *RE_engine_create(RenderEngineType *type) +{ + RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine"); + engine->type= type; + + return engine; +} + +void RE_engine_free(RenderEngine *engine) +{ +#ifdef WITH_PYTHON + if(engine->py_instance) { + BPY_DECREF(engine->py_instance); + } +#endif + + MEM_freeN(engine); +} + +/* Render Results */ + +RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h) +{ + Render *re= engine->re; + RenderResult *result; + rcti disprect; + + /* ensure the coordinates are within the right limits */ + CLAMP(x, 0, re->result->rectx); + CLAMP(y, 0, re->result->recty); + CLAMP(w, 0, re->result->rectx); + CLAMP(h, 0, re->result->recty); + + if(x + w > re->result->rectx) + w= re->result->rectx - x; + if(y + h > re->result->recty) + h= re->result->recty - y; + + /* allocate a render result */ + disprect.xmin= x; + disprect.xmax= x+w; + disprect.ymin= y; + disprect.ymax= y+h; + + result= new_render_result(re, &disprect, 0, RR_USEMEM); + BLI_addtail(&engine->fullresult, result); + + return result; +} + +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 + re->display_draw(re->ddh, result, NULL); + } +} + +void RE_engine_end_result(RenderEngine *engine, RenderResult *result) +{ + Render *re= engine->re; + + 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))) + merge_render_result(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 */ + free_render_result(&engine->fullresult, result); +} + +/* Cancel */ + +int RE_engine_test_break(RenderEngine *engine) +{ + Render *re= engine->re; + + return re->test_break(re->tbh); +} + +/* Statistics */ + +void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info) +{ + Render *re= engine->re; + + re->i.statstr= stats; + re->i.infostr= info; + re->stats_draw(re->sdh, &re->i); + re->i.infostr= NULL; + re->i.statstr= NULL; +} + +/* Render */ + +int RE_engine_render(Render *re, int do_all) +{ + RenderEngineType *type= BLI_findstring(&R_engines, re->r.engine, offsetof(RenderEngineType, idname)); + RenderEngine *engine; + + /* verify if we can render */ + if(!(type && type->render)) + return 0; + if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_DO_PREVIEW)) + return 0; + if(do_all && !(type->flag & RE_DO_ALL)) + return 0; + if(!do_all && (type->flag & RE_DO_ALL)) + return 0; + + /* create render result */ + BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); + if(re->result==NULL || !(re->r.scemode & R_PREVIEWBUTS)) { + RE_FreeRenderResult(re->result); + re->result= new_render_result(re, &re->disprect, 0, 0); + } + BLI_rw_mutex_unlock(&re->resultmutex); + + if(re->result==NULL) + return 1; + + /* render */ + engine = RE_engine_create(type); + engine->re= re; + + type->render(engine, re->scene); + + free_render_result(&engine->fullresult, engine->fullresult.first); + + RE_engine_free(engine); + + return 1; +} + diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 41434d7e56d..005bf95b704 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -70,12 +70,9 @@ #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" -#ifdef WITH_PYTHON -#include "BPY_extern.h" -#endif - #include "intern/openexr/openexr_multi.h" +#include "RE_engine.h" #include "RE_pipeline.h" /* internal */ @@ -216,7 +213,7 @@ void RE_FreeRenderResult(RenderResult *res) } /* version that's compatible with fullsample buffers */ -static void free_render_result(ListBase *lb, RenderResult *rr) +void free_render_result(ListBase *lb, RenderResult *rr) { RenderResult *rrnext; @@ -539,12 +536,11 @@ RenderLayer *RE_GetRenderLayer(RenderResult *rr, const char *name) return NULL; } -#define RR_USEMEM 0 /* called by main render as well for parts */ /* 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 */ -static RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int savebuffers) +RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int savebuffers) { RenderResult *rr; RenderLayer *rl; @@ -721,7 +717,7 @@ static void do_merge_tile(RenderResult *rr, RenderResult *rrpart, float *target, /* used when rendering to a full buffer, or when reading the exr part-layer-pass file */ /* no test happens here if it fits... we also assume layers are in sync */ /* is used within threads */ -static void merge_render_result(RenderResult *rr, RenderResult *rrpart) +void merge_render_result(RenderResult *rr, RenderResult *rrpart) { RenderLayer *rl, *rlp; RenderPass *rpass, *rpassp; @@ -1799,12 +1795,10 @@ void RE_TileProcessor(Render *re) /* ************ This part uses API, for rendering Blender scenes ********** */ -static int external_render_3d(Render *re, int do_all); - static void do_render_3d(Render *re) { /* try external */ - if(external_render_3d(re, 0)) + if(RE_engine_render(re, 0)) return; /* internal */ @@ -2632,7 +2626,7 @@ static void do_render_all_options(Render *re) /* ensure no images are in memory from previous animated sequences */ BKE_image_all_free_anim_ibufs(re->r.cfra); - if(external_render_3d(re, 1)) { + if(RE_engine_render(re, 1)) { /* in this case external render overrides all */ } else if(seq_render_active(re)) { @@ -3223,110 +3217,6 @@ void RE_init_threadcount(Render *re) } } -/************************** External Engines ***************************/ - -RenderEngine *RE_engine_create(RenderEngineType *type) -{ - RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine"); - engine->type= type; - - return engine; -} - -void RE_engine_free(RenderEngine *engine) -{ -#ifdef WITH_PYTHON - if(engine->py_instance) { - /* do this first incase there are any __del__ functions or - * similar that use properties */ - BPY_DECREF(engine->py_instance); - } -#endif - - MEM_freeN(engine); -} - -RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h) -{ - Render *re= engine->re; - RenderResult *result; - rcti disprect; - - /* ensure the coordinates are within the right limits */ - CLAMP(x, 0, re->result->rectx); - CLAMP(y, 0, re->result->recty); - CLAMP(w, 0, re->result->rectx); - CLAMP(h, 0, re->result->recty); - - if(x + w > re->result->rectx) - w= re->result->rectx - x; - if(y + h > re->result->recty) - h= re->result->recty - y; - - /* allocate a render result */ - disprect.xmin= x; - disprect.xmax= x+w; - disprect.ymin= y; - disprect.ymax= y+h; - - result= new_render_result(re, &disprect, 0, RR_USEMEM); - BLI_addtail(&engine->fullresult, result); - - return result; -} - -void RE_engine_update_result(RenderEngine *engine, RenderResult *result) -{ - Render *re= engine->re; - - if(result && render_display_draw_enabled(re)) { - result->renlay= result->layers.first; // weak - re->display_draw(re->ddh, result, NULL); - } -} - -void RE_engine_end_result(RenderEngine *engine, RenderResult *result) -{ - Render *re= engine->re; - - if(!result) - return; - - /* merge */ - if(render_display_draw_enabled(re)) { - /* on break, don't merge in result for preview renders, looks nicer */ - if(re->test_break(re->tbh) && (re->r.scemode & R_PREVIEWBUTS)); - else merge_render_result(re->result, result); - } - - /* draw */ - if(!re->test_break(re->tbh) && render_display_draw_enabled(re)) { - result->renlay= result->layers.first; // weak - re->display_draw(re->ddh, result, NULL); - } - - /* free */ - free_render_result(&engine->fullresult, result); -} - -int RE_engine_test_break(RenderEngine *engine) -{ - Render *re= engine->re; - - return re->test_break(re->tbh); -} - -void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info) -{ - Render *re= engine->re; - - re->i.statstr= stats; - re->i.infostr= info; - re->stats_draw(re->sdh, &re->i); - re->i.infostr= NULL; - re->i.statstr= NULL; -} - /* loads in image into a result, size must match * x/y offsets are only used on a partial copy when dimensions dont match */ void RE_layer_load_from_file(RenderLayer *layer, ReportList *reports, const char *filename, int x, int y) @@ -3389,40 +3279,4 @@ void RE_result_load_from_file(RenderResult *result, ReportList *reports, const c #endif } -static int external_render_3d(Render *re, int do_all) -{ - RenderEngineType *type= BLI_findstring(&R_engines, re->r.engine, offsetof(RenderEngineType, idname)); - RenderEngine *engine; - - if(!(type && type->render)) - return 0; - if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_DO_PREVIEW)) - return 0; - if(do_all && !(type->flag & RE_DO_ALL)) - return 0; - if(!do_all && (type->flag & RE_DO_ALL)) - return 0; - - BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); - if(re->result==NULL || !(re->r.scemode & R_PREVIEWBUTS)) { - RE_FreeRenderResult(re->result); - re->result= new_render_result(re, &re->disprect, 0, 0); - } - BLI_rw_mutex_unlock(&re->resultmutex); - - if(re->result==NULL) - return 1; - - /* external */ - engine = RE_engine_create(type); - engine->re= re; - - type->render(engine, re->scene); - - free_render_result(&engine->fullresult, engine->fullresult.first); - - RE_engine_free(engine); - - return 1; -} diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 70faa1d1e3c..61b3dd1f63a 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -57,7 +57,7 @@ #include "GPU_draw.h" #include "GPU_extensions.h" -#include "RE_pipeline.h" +#include "RE_engine.h" #include "WM_api.h" #include "WM_types.h" diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 58485b1f544..8774f71cd4a 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -65,6 +65,7 @@ #include "BLI_blenlib.h" #include "BLI_winstuff.h" +#include "RE_engine.h" #include "RE_pipeline.h" /* RE_ free stuff */ #ifdef WITH_PYTHON diff --git a/source/creator/creator.c b/source/creator/creator.c index 758989b3eb0..154f04b4693 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -90,6 +90,7 @@ #include "BPY_extern.h" #endif +#include "RE_engine.h" #include "RE_pipeline.h" //XXX #include "playanim_ext.h" -- cgit v1.2.3 From c18c6056ffb733fe670860bb6e2809f79834b9a3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 5 May 2011 13:51:33 +0000 Subject: Cycles: two 32 bit fixes with help from IRC user Agiofws. --- intern/cycles/blender/blender_python.cpp | 42 ++++++++++++++++---------------- intern/cycles/util/util_system.cpp | 11 +++++++++ 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 7c5bdf0e519..2397e352114 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -41,34 +41,34 @@ static PyObject *init_func(PyObject *self, PyObject *args) static PyObject *create_func(PyObject *self, PyObject *args) { - Py_ssize_t pyengine, pydata, pyscene, pyregion, pyv3d, pyrv3d; + PyObject *pyengine, *pydata, *pyscene, *pyregion, *pyv3d, *pyrv3d; - if(!PyArg_ParseTuple(args, "nnnnnn", &pyengine, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d)) + if(!PyArg_ParseTuple(args, "OOOOOO", &pyengine, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d)) return NULL; /* RNA */ PointerRNA engineptr; - RNA_pointer_create(NULL, &RNA_RenderEngine, (void*)pyengine, &engineptr); + RNA_pointer_create(NULL, &RNA_RenderEngine, (void*)PyLong_AsVoidPtr(pyengine), &engineptr); BL::RenderEngine engine(engineptr); PointerRNA dataptr; - RNA_id_pointer_create((ID*)pydata, &dataptr); + RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pydata), &dataptr); BL::BlendData data(dataptr); PointerRNA sceneptr; - RNA_id_pointer_create((ID*)pyscene, &sceneptr); + RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyscene), &sceneptr); BL::Scene scene(sceneptr); PointerRNA regionptr; - RNA_id_pointer_create((ID*)pyregion, ®ionptr); + RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyregion), ®ionptr); BL::Region region(regionptr); PointerRNA v3dptr; - RNA_id_pointer_create((ID*)pyv3d, &v3dptr); + RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyv3d), &v3dptr); BL::SpaceView3D v3d(v3dptr); PointerRNA rv3dptr; - RNA_id_pointer_create((ID*)pyrv3d, &rv3dptr); + RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyrv3d), &rv3dptr); BL::RegionView3D rv3d(rv3dptr); /* create session */ @@ -91,12 +91,12 @@ static PyObject *create_func(PyObject *self, PyObject *args) static PyObject *free_func(PyObject *self, PyObject *args) { - Py_ssize_t pysession; + PyObject *pysession; - if(!PyArg_ParseTuple(args, "n", &pysession)) + if(!PyArg_ParseTuple(args, "O", &pysession)) return NULL; - delete (BlenderSession*)pysession; + delete (BlenderSession*)PyLong_AsVoidPtr(pysession); Py_INCREF(Py_None); return Py_None; @@ -104,14 +104,14 @@ static PyObject *free_func(PyObject *self, PyObject *args) static PyObject *render_func(PyObject *self, PyObject *args) { - Py_ssize_t pysession; + PyObject *pysession; - if(!PyArg_ParseTuple(args, "n", &pysession)) + if(!PyArg_ParseTuple(args, "O", &pysession)) return NULL; Py_BEGIN_ALLOW_THREADS - BlenderSession *session = (BlenderSession*)pysession; + BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); session->render(); Py_END_ALLOW_THREADS @@ -122,16 +122,16 @@ static PyObject *render_func(PyObject *self, PyObject *args) static PyObject *draw_func(PyObject *self, PyObject *args) { - Py_ssize_t pysession, pyv3d, pyrv3d; + PyObject *pysession, *pyv3d, *pyrv3d; - if(!PyArg_ParseTuple(args, "nnn", &pysession, &pyv3d, &pyrv3d)) + if(!PyArg_ParseTuple(args, "OOO", &pysession, &pyv3d, &pyrv3d)) return NULL; - BlenderSession *session = (BlenderSession*)pysession; + BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); bool draw_text = false; - if(pyrv3d) { + if(PyLong_AsVoidPtr(pyrv3d)) { /* 3d view drawing */ int viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); @@ -164,12 +164,12 @@ static PyObject *draw_func(PyObject *self, PyObject *args) static PyObject *sync_func(PyObject *self, PyObject *args) { - Py_ssize_t pysession; + PyObject *pysession; - if(!PyArg_ParseTuple(args, "n", &pysession)) + if(!PyArg_ParseTuple(args, "O", &pysession)) return NULL; - BlenderSession *session = (BlenderSession*)pysession; + BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); session->synchronize(); Py_INCREF(Py_None); diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp index fae575873e0..ac3089aa7ad 100644 --- a/intern/cycles/util/util_system.cpp +++ b/intern/cycles/util/util_system.cpp @@ -60,7 +60,18 @@ int system_cpu_thread_count() #ifndef _WIN32 static void __cpuid(int data[4], int selector) { +#ifdef __x86_64__ asm("cpuid" : "=a" (data[0]), "=b" (data[1]), "=c" (data[2]), "=d" (data[3]) : "a"(selector)); +#else +#ifdef __i386__ + asm("pushl %%ebx \n\t" + "cpuid \n\t" + "movl %%ebx, %1 \n\t" + "popl %%ebx \n\t" : "=a" (data[0]), "=r" (data[1]), "=c" (data[2]), "=d" (data[3]) : "a"(selector)); +#else + data[0] = data[1] = data[2] = data[3] = 0; +#endif +#endif } #endif -- cgit v1.2.3 From d5929b452e449daaa55b7bf305abcd37847c4fef Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 6 May 2011 09:19:29 +0000 Subject: Cycles: fix missing #include. --- source/blender/makesrna/intern/rna_space.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index c6d36d206be..1dcee4bf726 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -48,6 +48,7 @@ #include "WM_api.h" #include "WM_types.h" +#include "RE_engine.h" #include "RE_pipeline.h" EnumPropertyItem space_type_items[] = { -- cgit v1.2.3 From 31f44d8142d84ad65b02f1a35a297d1e5f909cc6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 9 May 2011 09:03:08 +0000 Subject: Cycles: fix color difference between render / 3d view with color management disabled. --- intern/cycles/blender/blender_session.cpp | 11 +++++++---- intern/cycles/util/util_color.h | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 8e8bba4e5b6..d79c671fd3b 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -130,14 +130,17 @@ void BlenderSession::write_render_result() vector buffer(width*height); float fac = 1.0f/255.0f; + bool color_management = b_scene.render().use_color_management(); /* normalize */ for(int i = width*height - 1; i >= 0; i--) { uchar4 f = rgba[i]; - float r = color_srgb_to_scene_linear(f.x*fac); - float g = color_srgb_to_scene_linear(f.y*fac); - float b = color_srgb_to_scene_linear(f.z*fac); - buffer[i] = make_float4(r, g, b, 1.0f); + float3 rgb = make_float3(f.x, f.y, f.z)*fac; + + if(color_management) + rgb = color_srgb_to_scene_linear(rgb); + + buffer[i] = make_float4(rgb.x, rgb.y, rgb.z, 1.0f); } struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, width, height); diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h index fbba0fade63..60b738bfc51 100644 --- a/intern/cycles/util/util_color.h +++ b/intern/cycles/util/util_color.h @@ -40,6 +40,22 @@ __device float color_scene_linear_to_srgb(float c) return 1.055f * pow(c, 1.0f/2.4f) - 0.055f; } +__device float3 color_srgb_to_scene_linear(float3 c) +{ + return make_float3( + color_srgb_to_scene_linear(c.x), + color_srgb_to_scene_linear(c.y), + color_srgb_to_scene_linear(c.z)); +} + +__device float3 color_scene_linear_to_srgb(float3 c) +{ + return make_float3( + color_scene_linear_to_srgb(c.x), + color_scene_linear_to_srgb(c.y), + color_scene_linear_to_srgb(c.z)); +} + CCL_NAMESPACE_END #endif /* __UTIL_COLOR_H__ */ -- cgit v1.2.3 From f0d91fec1b5de36180746c7fda86342bc4253fe7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 9 May 2011 10:40:53 +0000 Subject: Cycles: fix crash when drawing properties UI while editing node links. --- source/blender/editors/interface/interface_node.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 372874c9e6f..b99ff03fc99 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -74,7 +74,7 @@ static void ui_node_tag_recursive(bNode *node) { bNodeSocket *input; - if(node->flag & NODE_TEST) + if(!node || (node->flag & NODE_TEST)) return; /* in case of cycles */ node->flag |= NODE_TEST; @@ -88,7 +88,7 @@ static void ui_node_clear_recursive(bNode *node) { bNodeSocket *input; - if(!(node->flag & NODE_TEST)) + if(!node || !(node->flag & NODE_TEST)) return; /* in case of cycles */ node->flag &= ~NODE_TEST; @@ -115,6 +115,9 @@ static void ui_node_remove_linked(bNodeTree *ntree, bNode *rem_node) bNode *node, *next; bNodeSocket *sock; + if(!node) + return; + /* tag linked nodes to be removed */ for(node=ntree->nodes.first; node; node=node->next) node->flag &= ~NODE_TEST; @@ -144,7 +147,7 @@ static void ui_node_remove_linked(bNodeTree *ntree, bNode *rem_node) static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) { - if(sock->link) { + if(sock->link && sock->link->fromnode) { bNode *node = sock->link->fromnode; if(node->type == NODE_GROUP) @@ -229,7 +232,7 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) if(strcmp(sock_prev->name, sock_from->name) == 0 && sock_prev->type == sock_from->type) { bNodeLink *link = sock_prev->link; - if(link) { + if(link && link->fromnode) { nodeAddLink(ntree, link->fromnode, link->fromsock, node_from, sock_from); nodeRemLink(ntree, link); } -- cgit v1.2.3 From 442baef0559435d2f634fae1d11febef0e3e2389 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 9 May 2011 10:43:09 +0000 Subject: Cycles: different fix for animation render, in render API instead of python script. --- intern/cycles/blender/addon/__init__.py | 1 - source/blender/render/intern/pipeline/engine.c | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index bb418340f55..0a2e5cee142 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -48,7 +48,6 @@ class CyclesRender(bpy.types.RenderEngine): engine.free(self) def render(self, scene): - scene.frame_set(scene.frame_current) # should this be done already? engine.create(self, scene, True) engine.render(self, scene) diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index 4035f5569ee..de99b6e8e7e 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -41,6 +41,7 @@ #include "BLI_utildefines.h" #include "BKE_report.h" +#include "BKE_scene.h" #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" @@ -194,6 +195,9 @@ int RE_engine_render(Render *re, int do_all) engine = RE_engine_create(type); engine->re= re; + if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) + scene_update_for_newframe(re->main, re->scene, re->lay); + type->render(engine, re->scene); free_render_result(&engine->fullresult, engine->fullresult.first); -- cgit v1.2.3 From 42e2c47b3d744c5d53ccd315ffda3c26c7d60bff Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 9 May 2011 11:02:04 +0000 Subject: Cycles: fix node outputs not connect to more than one input. --- source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_attribute.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_background.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_emission.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_geometry.c | 14 +++++++------- source/blender/nodes/intern/SHD_nodes/SHD_light_path.c | 12 ++++++------ source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c | 4 ++-- source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c | 12 ++++++------ source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_environment.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c | 4 ++-- source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c | 4 ++-- source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c | 2 +- 28 files changed, 47 insertions(+), 47 deletions(-) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c index 87d8a155cbf..fbd4727d68b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_add_closure_in[]= { }; static bNodeSocketType sh_node_add_closure_out[]= { - { SOCK_CLOSURE, 1, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c index 99678e1acd8..ef9fb63e8bc 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c @@ -32,7 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_attribute_out[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_background.c b/source/blender/nodes/intern/SHD_nodes/SHD_background.c index 5156e8bde41..b15ba89ba17 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_background.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_background.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_background_in[]= { }; static bNodeSocketType sh_node_background_out[]= { - { SOCK_CLOSURE, 1, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c index 207ca361ff7..bb80993d8bc 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_anisotropic_in[]= { }; static bNodeSocketType sh_node_bsdf_anisotropic_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c index 0d5aaf3a4dc..1732d737be9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_diffuse_in[]= { }; static bNodeSocketType sh_node_bsdf_diffuse_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index 04a7e17078d..eab042ad9a6 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_glass_in[]= { }; static bNodeSocketType sh_node_bsdf_glass_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c index b3a00b251df..3a1ad4766de 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_glossy_in[]= { }; static bNodeSocketType sh_node_bsdf_glossy_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c index a6c8dfcda7f..3a09b0bf2cf 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_translucent_in[]= { }; static bNodeSocketType sh_node_bsdf_translucent_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c index e496525e281..8324e73fec7 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_transparent_in[]= { }; static bNodeSocketType sh_node_bsdf_transparent_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c index 4ed78f4ad9f..33878a65f53 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_velvet_in[]= { }; static bNodeSocketType sh_node_bsdf_velvet_out[]= { - { SOCK_CLOSURE, 1, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c index 81f6a08d7e5..9486388b679 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_emission_in[]= { }; static bNodeSocketType sh_node_emission_out[]= { - { SOCK_CLOSURE, 1, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c index 20fbb520ef8..15c304c7e47 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c @@ -32,13 +32,13 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_geometry_out[]= { - { SOCK_VECTOR, 1, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Parametric", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Parametric", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c index b0e2f1430ac..9405b7b591a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c @@ -32,12 +32,12 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_light_path_out[]= { - { SOCK_VALUE, 1, "Is Camera Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Camera Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c index 6aaa9271737..f126a55611c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_mix_closure_in[]= { }; static bNodeSocketType sh_node_mix_closure_out[]= { - { SOCK_CLOSURE, 1, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c index fdb73f7f814..bd656a7b015 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_tex_blend_in[]= { }; static bNodeSocketType sh_node_tex_blend_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c index 01b62e1e982..be2d03018fa 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c @@ -38,8 +38,8 @@ static bNodeSocketType sh_node_tex_clouds_in[]= { }; static bNodeSocketType sh_node_tex_clouds_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c index ffc2ad447a4..3ef69dd1bce 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c @@ -32,12 +32,12 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_tex_coord_out[]= { - { SOCK_VECTOR, 1, "Generated", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Object", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Camera", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Window", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VECTOR, 1, "Reflection", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Generated", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Object", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Camera", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Window", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Reflection", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c index 323b0505eac..415159074bb 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_tex_distnoise_in[]= { }; static bNodeSocketType sh_node_tex_distnoise_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index fbd9cf96108..d9050ae8c43 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_tex_environment_in[]= { }; static bNodeSocketType sh_node_tex_environment_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index 9d40d3b145c..69f93ab1903 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_tex_image_in[]= { }; static bNodeSocketType sh_node_tex_image_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c index 80ff32a3be3..5cd210a1804 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_tex_magic_in[]= { }; static bNodeSocketType sh_node_tex_magic_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c index 69908342aac..b42faee69a5 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_tex_marble_in[]= { }; static bNodeSocketType sh_node_tex_marble_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c index 2ade58571ce..e40e7488abe 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c @@ -43,7 +43,7 @@ static bNodeSocketType sh_node_tex_musgrave_in[]= { }; static bNodeSocketType sh_node_tex_musgrave_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c index 9dd1c6ca2d7..6349fa8e27a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c @@ -37,8 +37,8 @@ static bNodeSocketType sh_node_tex_noise_in[]= { }; static bNodeSocketType sh_node_tex_noise_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c index 5deb180fd56..5061e8c28b8 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_tex_sky_in[]= { }; static bNodeSocketType sh_node_tex_sky_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c index eec76a1538f..c403daaa2d9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_tex_stucci_in[]= { }; static bNodeSocketType sh_node_tex_stucci_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c index 2ea85beeb89..113ffed1870 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c @@ -43,8 +43,8 @@ static bNodeSocketType sh_node_tex_voronoi_in[]= { }; static bNodeSocketType sh_node_tex_voronoi_out[]= { - { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c index ed7960fabb0..430d1bacf8c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_tex_wood_in[]= { }; static bNodeSocketType sh_node_tex_wood_out[]= { - { SOCK_VALUE, 1, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From 88b25b871d965718e693a2766a19d75efa0f0dfc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 12 May 2011 11:34:16 +0000 Subject: Cycles: fix mapping node rotation not working correct for Y/Z axes, patch by Sanne. --- intern/cycles/util/util_transform.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h index 9cde410edc8..e2b022dc478 100644 --- a/intern/cycles/util/util_transform.h +++ b/intern/cycles/util/util_transform.h @@ -173,8 +173,8 @@ __device_inline Transform transform_euler(float3 euler) { return transform_rotate(euler.x, make_float3(1.0f, 0.0f, 0.0f)) * - transform_rotate(euler.y, make_float3(1.0f, 0.0f, 0.0f)) * - transform_rotate(euler.z, make_float3(1.0f, 0.0f, 0.0f)); + transform_rotate(euler.y, make_float3(0.0f, 1.0f, 0.0f)) * + transform_rotate(euler.z, make_float3(0.0f, 0.0f, 1.0f)); } __device_inline Transform transform_orthographic(float znear, float zfar) -- cgit v1.2.3 From 397f3893dd48d075c952425874a083a5aa85f701 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 11:10:30 +0000 Subject: Cycles: remove developer docs, all moved to wiki now. --- intern/cycles/doc/CMakeLists.txt | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt index d6e487663c3..96054f2bed5 100644 --- a/intern/cycles/doc/CMakeLists.txt +++ b/intern/cycles/doc/CMakeLists.txt @@ -4,28 +4,6 @@ INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".sv SET(doc_sources index.html - development/build.html - development/bvh.html - development/design.html - development/device_abstraction.html - development/displacement.html - development/feature_todo.html - development/known_issues.html - development/geometric_issues.html - development/ideas.html - development/index.html - development/kernel.html - development/license.html - development/node_guidelines.html - development/optimization.html - development/osl_gpu.html - development/papers.html - development/sobol.html - development/source.html - development/subdivision.html - development/threads.html - development/units_colors.html - reference/camera.html reference/curve.html reference/devices.html @@ -60,9 +38,6 @@ SET(doc_sources reference/shader/volume_textures.html) SET(doc_extra - development/images/rng_lcg_50_pass.png - development/images/rng_sobol_50_pass.png - development/threads.svg reference/camera_ortho.svg reference/camera_persp.svg reference/material/material.svg @@ -70,7 +45,6 @@ SET(doc_extra style/style.css) SET(doc_templates - templates/development.html templates/footer.html templates/header.html templates/nodes.html -- cgit v1.2.3 From f48fbd3f68ea7751583f258a6e8e1bf1fe945fc7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 12:10:03 +0000 Subject: Cycles: fix node link remove from menu not working. --- source/blender/editors/interface/interface_node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index b99ff03fc99..137320fea26 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -115,7 +115,7 @@ static void ui_node_remove_linked(bNodeTree *ntree, bNode *rem_node) bNode *node, *next; bNodeSocket *sock; - if(!node) + if(!rem_node) return; /* tag linked nodes to be removed */ -- cgit v1.2.3 From 216602fe4b90c635cd1993aa1c1a9d866b6ae2cd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 12:11:08 +0000 Subject: Cycles: fix BSDF closure inputs ignoring links. --- intern/cycles/kernel/svm/svm.h | 2 +- intern/cycles/kernel/svm/svm_closure.h | 9 ++++++--- intern/cycles/render/nodes.cpp | 9 ++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 5bd076c9cab..51445aece6c 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -167,7 +167,7 @@ __device void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, else return; } else if(node.x == NODE_CLOSURE_BSDF) - svm_node_closure_bsdf(sd, node.y, node.z, node.w, randb); + svm_node_closure_bsdf(sd, stack, node, randb); else if(node.x == NODE_CLOSURE_EMISSION) svm_node_closure_emission(sd); else if(node.x == NODE_CLOSURE_BACKGROUND) diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index fe9edc36e95..58a916029f4 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -20,10 +20,13 @@ CCL_NAMESPACE_BEGIN /* Closure Nodes */ -__device void svm_node_closure_bsdf(ShaderData *sd, uint type, int iparam1, int iparam2, float randb) +__device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, float randb) { - float param1 = __int_as_float(iparam1); - float param2 = __int_as_float(iparam2); + uint type, param1_offset, param2_offset; + decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, NULL); + + float param1 = (stack_valid(param1_offset))? stack_load_float(stack, param1_offset): __int_as_float(node.z); + float param2 = (stack_valid(param2_offset))? stack_load_float(stack, param2_offset): __int_as_float(node.w); switch(type) { case CLOSURE_BSDF_DIFFUSE_ID: diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index d437d0dfcc1..bcce6db6171 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -987,9 +987,16 @@ void BsdfNode::compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput * } else compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value); + + if(param1) + compiler.stack_assign(param1); + if(param2) + compiler.stack_assign(param2); compiler.add_node(NODE_CLOSURE_BSDF, - closure, + compiler.encode_uchar4(closure, + (param1)? param1->stack_offset: SVM_STACK_INVALID, + (param2)? param2->stack_offset: SVM_STACK_INVALID), __float_as_int((param1)? param1->value.x: 0.0f), __float_as_int((param2)? param2->value.x: 0.0f)); } -- cgit v1.2.3 From 50d1a5b1eb3735da999cd38474a7dc859a884383 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 14:29:07 +0000 Subject: Cycles: action zone drawing tweak. --- source/blender/editors/interface/interface_panel.c | 2 +- source/blender/editors/screen/area.c | 64 ++++------------------ 2 files changed, 11 insertions(+), 55 deletions(-) diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 1c7806a26a1..2e41559f9ac 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -509,7 +509,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) if(!(panel->flag & PNL_CLOSEDX)) { ui_draw_aligned_panel_header(style, block, &headrect, 'h'); - /* itemrect smaller */ + /* itemrect smaller */ itemrect.xmax= headrect.xmax - 5.0f/block->aspect; itemrect.xmin= itemrect.xmax - (headrect.ymax-headrect.ymin); itemrect.ymin= headrect.ymin; diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 9f5e55dea00..75dabd8aedb 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -69,39 +69,6 @@ /* general area and region code */ -static void region_draw_emboss(ARegion *ar, rcti *scirct) -{ - rcti rect; - - /* translate scissor rect to region space */ - rect.xmin= scirct->xmin - ar->winrct.xmin; - rect.ymin= scirct->ymin - ar->winrct.ymin; - rect.xmax= scirct->xmax - ar->winrct.xmin; - rect.ymax= scirct->ymax - ar->winrct.ymin; - - /* set transp line */ - glEnable( GL_BLEND ); - glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); - - /* right */ - glColor4ub(0,0,0, 50); - sdrawline(rect.xmax, rect.ymin, rect.xmax, rect.ymax); - - /* bottom */ - glColor4ub(0,0,0, 80); - sdrawline(rect.xmin, rect.ymin, rect.xmax, rect.ymin); - - /* top */ - glColor4ub(255,255,255, 60); - sdrawline(rect.xmin, rect.ymax, rect.xmax, rect.ymax); - - /* left */ - glColor4ub(255,255,255, 50); - sdrawline(rect.xmin, rect.ymin, rect.xmin, rect.ymax); - - glDisable( GL_BLEND ); -} - void ED_region_pixelspace(ARegion *ar) { int width= ar->winrct.xmax-ar->winrct.xmin+1; @@ -152,7 +119,6 @@ void ED_area_do_refresh(bContext *C, ScrArea *sa) /* only exported for WM */ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar) { -#if 0 AZone *az; for(az= sa->actionzones.first; az; az= az->next) { @@ -166,30 +132,21 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar) az->do_draw= 1; } } -#endif } static void area_draw_azone(short x1, short y1, short x2, short y2) { - int dx= floor(0.3f*(x2-x1)); - int dy= floor(0.3f*(y2-y1)); - - glColor4ub(255, 255, 255, 180); - fdrawline(x1, y2, x2, y1); - glColor4ub(255, 255, 255, 130); - fdrawline(x1, y2-dy, x2-dx, y1); - glColor4ub(255, 255, 255, 80); - fdrawline(x1, y2-2*dy, x2-2*dx, y1); - - glColor4ub(0, 0, 0, 210); - fdrawline(x1, y2+1, x2+1, y1); - glColor4ub(0, 0, 0, 180); - fdrawline(x1, y2-dy+1, x2-dx+1, y1); - glColor4ub(0, 0, 0, 150); - fdrawline(x1, y2-2*dy+1, x2-2*dx+1, y1); + int dx= floor(0.9f*(x2-x1)); + int dy= floor(0.9f*(y2-y1)); + + glColor4f(0.0f, 0.0f, 0.0f, 0.25f); + glBegin(GL_TRIANGLES); + glVertex2f(x1, y1); + glVertex2f(x1+dx, y1); + glVertex2f(x1, y1+dy); + glEnd(); } - static void region_draw_azone(AZone *az) { GLUquadricObj *qobj = NULL; @@ -233,7 +190,6 @@ static void region_draw_azone(AZone *az) /* only exported for WM */ void ED_area_overdraw(bContext *C) { -#if 0 wmWindow *win= CTX_wm_window(C); bScreen *screen= CTX_wm_screen(C); ScrArea *sa; @@ -259,7 +215,7 @@ void ED_area_overdraw(bContext *C) } } glDisable( GL_BLEND ); -#endif + } /* get scissor rect, checking overlapping regions */ -- cgit v1.2.3 From 922bb24865f451aabb1a3112ab8ffb592e3ff875 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 14:32:08 +0000 Subject: Cycles: color space control for image/environment texture nodes. Ideally would be automated but need to think about how to do this, not so simply in a node system. But guideline for now is, for color textures set to sRGB, for things like bump or roughness map, set to Linear. --- intern/cycles/blender/blender_shader.cpp | 6 ++-- .../kernel/osl/nodes/node_environment_texture.osl | 4 +++ .../cycles/kernel/osl/nodes/node_image_texture.osl | 4 +++ intern/cycles/kernel/svm/svm.h | 4 +-- intern/cycles/kernel/svm/svm_image.h | 26 +++++++++++++++--- intern/cycles/render/nodes.cpp | 32 ++++++++++++++++++++-- intern/cycles/render/nodes.h | 6 ++++ source/blender/editors/space_node/drawnode.c | 1 + source/blender/makesdna/DNA_node_types.h | 8 ++++-- source/blender/makesrna/intern/rna_nodetree.c | 22 ++++++++++++++- .../nodes/intern/SHD_nodes/SHD_tex_environment.c | 1 + .../blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 1 + 12 files changed, 102 insertions(+), 13 deletions(-) diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index c6dbfc630ab..c23f9a4cd95 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -282,15 +282,17 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * /* todo: handle generated/builtin images */ if(b_image) image->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); + image->color_space = ImageTextureNode::color_space_enum[(int)b_image_node.color_space()]; node = image; break; } case BL::ShaderNode::type_TEX_ENVIRONMENT: { - BL::ShaderNodeTexEnvironment b_environment_node(b_node); - BL::Image b_image(b_environment_node.image()); + BL::ShaderNodeTexEnvironment b_env_node(b_node); + BL::Image b_image(b_env_node.image()); EnvironmentTextureNode *env = new EnvironmentTextureNode(); if(b_image) env->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); + env->color_space = EnvironmentTextureNode::color_space_enum[(int)b_env_node.color_space()]; node = env; break; } diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl index 569b22d53ec..ee3fc44f0f8 100644 --- a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl @@ -21,8 +21,12 @@ shader node_environment_texture( vector Vector = P, string filename = "", + string color_space = "sRGB", output color Color = color(0.0, 0.0, 0.0)) { Color = (color)environment(filename, Vector); + + if(color_space == "sRGB") + Color = color_srgb_to_scene_linear(Color); } diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/osl/nodes/node_image_texture.osl index 0dbcc122deb..e1efb787655 100644 --- a/intern/cycles/kernel/osl/nodes/node_image_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_image_texture.osl @@ -21,8 +21,12 @@ shader node_image_texture( point Vector = P, string filename = "", + string color_space = "sRGB", output color Color = color(0.0, 0.0, 0.0)) { Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic"); + + if(color_space == "sRGB") + Color = color_srgb_to_scene_linear(Color); } diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 51445aece6c..68e54d9752e 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -190,9 +190,9 @@ __device void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, else if(node.x == NODE_TEX_NOISE_V) svm_node_tex_noise_v(sd, stack, node.y, node.z); else if(node.x == NODE_TEX_IMAGE) - svm_node_tex_image(kg, sd, stack, node.y, node.z, node.w); + svm_node_tex_image(kg, sd, stack, node); else if(node.x == NODE_TEX_ENVIRONMENT) - svm_node_tex_environment(kg, sd, stack, node.y, node.z, node.w); + svm_node_tex_environment(kg, sd, stack, node); else if(node.x == NODE_TEX_SKY) svm_node_tex_sky(kg, sd, stack, node.y, node.z); else if(node.x == NODE_TEX_BLEND) diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index c2020b1f69c..88f0b582442 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -140,22 +140,40 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) return r; } -__device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack, uint id, uint co_offset, uint out_offset) +__device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) { + uint id = node.y; + uint co_offset, out_offset, srgb; + + decode_node_uchar4(node.z, &co_offset, &out_offset, &srgb, NULL); + 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); + + if(srgb) + r = color_srgb_to_scene_linear(r); - stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); + stack_store_float3(stack, out_offset, r); } -__device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float *stack, uint id, uint co_offset, uint out_offset) +__device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) { + uint id = node.y; + uint co_offset, out_offset, srgb; + + decode_node_uchar4(node.z, &co_offset, &out_offset, &srgb, NULL); + float3 co = stack_load_float3(stack, co_offset); float u = (atan2f(co.y, co.x) + M_PI_F)/(2*M_PI_F); float v = atan2f(co.z, hypotf(co.x, co.y))/M_PI_F + 0.5f; float4 f = svm_image_texture(kg, id, u, v); + float3 r = make_float3(f.x, f.y, f.z); + + if(srgb) + r = color_srgb_to_scene_linear(r); - stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); + stack_store_float3(stack, out_offset, r); } CCL_NAMESPACE_END diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index bcce6db6171..0e14deac98f 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -27,12 +27,25 @@ CCL_NAMESPACE_BEGIN /* Image Texture */ +static ShaderEnum color_space_init() +{ + ShaderEnum enm; + + enm.insert("Linear", 0); + enm.insert("sRGB", 1); + + return enm; +} + +ShaderEnum ImageTextureNode::color_space_enum = color_space_init(); + ImageTextureNode::ImageTextureNode() : ShaderNode("image_texture") { image_manager = NULL; slot = -1; filename = ""; + color_space = ustring("sRGB"); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); add_output("Color", SHADER_SOCKET_COLOR); @@ -65,7 +78,12 @@ void ImageTextureNode::compile(SVMCompiler& compiler) if(slot != -1) { compiler.stack_assign(vector_in); - compiler.add_node(NODE_TEX_IMAGE, slot, vector_in->stack_offset, color_out->stack_offset); + compiler.add_node(NODE_TEX_IMAGE, + slot, + compiler.encode_uchar4( + vector_in->stack_offset, + color_out->stack_offset, + color_space_enum[color_space])); } else { /* image not found */ @@ -77,17 +95,21 @@ void ImageTextureNode::compile(SVMCompiler& compiler) void ImageTextureNode::compile(OSLCompiler& compiler) { compiler.parameter("filename", filename.c_str()); + compiler.parameter("color_space", color_space.c_str()); compiler.add(this, "node_image_texture"); } /* Environment Texture */ +ShaderEnum EnvironmentTextureNode::color_space_enum = color_space_init(); + EnvironmentTextureNode::EnvironmentTextureNode() : ShaderNode("environment_texture") { image_manager = NULL; slot = -1; filename = ""; + color_space = ustring("sRGB"); add_input("Vector", SHADER_SOCKET_VECTOR, ShaderInput::POSITION); add_output("Color", SHADER_SOCKET_COLOR); @@ -120,7 +142,12 @@ void EnvironmentTextureNode::compile(SVMCompiler& compiler) if(slot != -1) { compiler.stack_assign(vector_in); - compiler.add_node(NODE_TEX_ENVIRONMENT, slot, vector_in->stack_offset, color_out->stack_offset); + compiler.add_node(NODE_TEX_ENVIRONMENT, + slot, + compiler.encode_uchar4( + vector_in->stack_offset, + color_out->stack_offset, + color_space_enum[color_space])); } else { /* image not found */ @@ -132,6 +159,7 @@ void EnvironmentTextureNode::compile(SVMCompiler& compiler) void EnvironmentTextureNode::compile(OSLCompiler& compiler) { compiler.parameter("filename", filename.c_str()); + compiler.parameter("color_space", color_space.c_str()); compiler.add(this, "node_environment_texture"); } diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index f59a775b658..da3b743e79b 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -39,6 +39,9 @@ public: ImageManager *image_manager; int slot; string filename; + ustring color_space; + + static ShaderEnum color_space_enum; }; class EnvironmentTextureNode : public ShaderNode { @@ -50,6 +53,9 @@ public: ImageManager *image_manager; int slot; string filename; + ustring color_space; + + static ShaderEnum color_space_enum; }; class SkyTextureNode : public ShaderNode { diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index a98235722e5..11d822607d7 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -400,6 +400,7 @@ static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA { //uiItemR(layout, ptr, "image", 0, "", ICON_NONE); uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); + uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE); } static void node_shader_buts_tex_sky(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index f3540e5fcc7..896f809a97e 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -355,11 +355,11 @@ typedef struct NodeTexSky { } NodeTexSky; typedef struct NodeTexImage { - int pad; + int color_space; } NodeTexImage; typedef struct NodeTexEnvironment { - int pad; + int color_space; } NodeTexEnvironment; typedef struct NodeTexBlend { @@ -499,6 +499,10 @@ typedef struct TexNodeOutput { #define SHD_WOOD_BAND_NOISE 2 #define SHD_WOOD_RING_NOISE 3 +/* image/environment texture */ +#define SHD_COLORSPACE_LINEAR 0 +#define SHD_COLORSPACE_SRGB 1 + /* blur node */ #define CMP_NODE_BLUR_ASPECT_NONE 0 #define CMP_NODE_BLUR_ASPECT_Y 1 diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 8601a986c3f..63241c339f6 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1044,6 +1044,11 @@ static void def_sh_tex_sky(StructRNA *srna) static void def_sh_tex_environment(StructRNA *srna) { + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {0, NULL, 0, NULL, NULL}}; + PropertyRNA *prop; prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); @@ -1053,11 +1058,21 @@ static void def_sh_tex_environment(StructRNA *srna) RNA_def_property_ui_text(prop, "Image", ""); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - RNA_def_struct_sdna_from(srna, "NodeTexEnvironment", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_image(StructRNA *srna) { + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {0, NULL, 0, NULL, NULL}}; + PropertyRNA *prop; prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); @@ -1068,6 +1083,11 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_blend(StructRNA *srna) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index d9050ae8c43..c1b18e17d26 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -44,6 +44,7 @@ static bNodeSocketType sh_node_tex_environment_out[]= { static void node_shader_init_tex_environment(bNode *node) { NodeTexEnvironment *tex = MEM_callocN(sizeof(NodeTexEnvironment), "NodeTexEnvironment"); + tex->color_space = SHD_COLORSPACE_SRGB; node->storage = tex; } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index 69f93ab1903..c08ba2ca86d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -44,6 +44,7 @@ static bNodeSocketType sh_node_tex_image_out[]= { static void node_shader_init_tex_image(bNode *node) { NodeTexImage *tex = MEM_callocN(sizeof(NodeTexImage), "NodeTexImage"); + tex->color_space = SHD_COLORSPACE_SRGB; node->storage = tex; } -- cgit v1.2.3 From fd5937fd1f581d521846f2849f6b5b463d917cf6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 14 May 2011 09:42:02 +0000 Subject: Cycles: OSL build fixes, based on patch from erwin94. --- intern/cycles/kernel/osl/CMakeLists.txt | 2 +- intern/cycles/kernel/osl/nodes/node_color.h | 50 ++++++++++++++++++++++ .../kernel/osl/nodes/node_environment_texture.osl | 1 + .../cycles/kernel/osl/nodes/node_image_texture.osl | 1 + intern/cycles/kernel/osl/osl_shader.cpp | 2 +- 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 intern/cycles/kernel/osl/nodes/node_color.h diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt index 3ca3fa4cd6b..31a162bdd0e 100644 --- a/intern/cycles/kernel/osl/CMakeLists.txt +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -27,7 +27,7 @@ SET(headers SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -ADD_LIBRARY(kernel_osl ${sources} ${headers}) +ADD_LIBRARY(cycles_kernel_osl ${sources} ${headers}) ADD_SUBDIRECTORY(nodes) diff --git a/intern/cycles/kernel/osl/nodes/node_color.h b/intern/cycles/kernel/osl/nodes/node_color.h new file mode 100644 index 00000000000..b92973d1dfe --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_color.h @@ -0,0 +1,50 @@ +/* + * 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. + */ + +/* Color Management */ + +float color_srgb_to_scene_linear(float c) +{ + if(c < 0.04045) + return (c < 0.0)? 0.0: c * (1.0/12.92); + else + return pow((c + 0.055)*(1.0/1.055), 2.4); +} + +float color_scene_linear_to_srgb(float c) +{ + if(c < 0.0031308) + return (c < 0.0)? 0.0: c * 12.92; + else + return 1.055 * pow(c, 1.0/2.4) - 0.055; +} + +color color_srgb_to_scene_linear(color c) +{ + return color( + color_srgb_to_scene_linear(c[0]), + color_srgb_to_scene_linear(c[1]), + color_srgb_to_scene_linear(c[2])); +} + +color color_scene_linear_to_srgb(color c) +{ + return color( + color_scene_linear_to_srgb(c[0]), + color_scene_linear_to_srgb(c[1]), + color_scene_linear_to_srgb(c[2])); +} + diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl index ee3fc44f0f8..267db7bad2d 100644 --- a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl @@ -17,6 +17,7 @@ */ #include "stdosl.h" +#include "node_color.h" shader node_environment_texture( vector Vector = P, diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/osl/nodes/node_image_texture.osl index e1efb787655..85025db7c74 100644 --- a/intern/cycles/kernel/osl/nodes/node_image_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_image_texture.osl @@ -17,6 +17,7 @@ */ #include "stdosl.h" +#include "node_color.h" shader node_image_texture( point Vector = P, diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index f4ae0248bef..a86946a680e 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -31,7 +31,7 @@ CCL_NAMESPACE_BEGIN -tls_ptr(ThreadData, OSLGlobals::thread_data); +tls_ptr(OSLGlobals::ThreadData, OSLGlobals::thread_data); /* Threads */ -- cgit v1.2.3 From 233f27a7e17c71d89efbcdf49f744639b20fc613 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 14 May 2011 13:23:15 +0000 Subject: Cycles: fix chained mix/add closures nodes not working. --- intern/cycles/kernel/svm/svm_closure.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 58a916029f4..a7462e2c358 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -183,10 +183,10 @@ __device void svm_node_mix_closure(ShaderData *sd, float *stack, offset from the current node, so we jump */ if(*randb < weight) { *offset += node_jump; - *randb = (*randb - weight)/(1.0f - weight); + *randb = *randb/weight; } else - *randb = *randb/weight; + *randb = (*randb - weight)/(1.0f - weight); } __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, @@ -199,10 +199,10 @@ __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, of the two closures being added */ if(*randb < weight) { *offset += node_jump; - *randb = (*randb - weight)/(1.0f - weight); + *randb = *randb/weight; } else - *randb = *randb/weight; + *randb = (*randb - weight)/(1.0f - weight); *closure_weight *= 2.0f; } -- cgit v1.2.3 From 25b25059efd774cf119ac62dfdbd39a314f07b00 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 16 May 2011 08:08:37 +0000 Subject: Cycles: fix vector math subtract not working correct, patch by Sanne. --- intern/cycles/kernel/osl/nodes/node_vector_math.osl | 2 +- intern/cycles/kernel/svm/svm_math.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/kernel/osl/nodes/node_vector_math.osl b/intern/cycles/kernel/osl/nodes/node_vector_math.osl index 302351372c2..9e0f0b60522 100644 --- a/intern/cycles/kernel/osl/nodes/node_vector_math.osl +++ b/intern/cycles/kernel/osl/nodes/node_vector_math.osl @@ -30,7 +30,7 @@ shader node_vector_math( Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; } if(type == "Subtract") { - Vector = Vector1 + Vector2; + Vector = Vector1 - Vector2; Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; } if(type == "Average") { diff --git a/intern/cycles/kernel/svm/svm_math.h b/intern/cycles/kernel/svm/svm_math.h index 6650a10a4d9..401bd22b45a 100644 --- a/intern/cycles/kernel/svm/svm_math.h +++ b/intern/cycles/kernel/svm/svm_math.h @@ -121,7 +121,7 @@ __device void svm_vector_math(float *Fac, float3 *Vector, NodeVectorMath type, f *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; } else if(type == NODE_VECTOR_MATH_SUBTRACT) { - *Vector = Vector1 + Vector2; + *Vector = Vector1 - Vector2; *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; } else if(type == NODE_VECTOR_MATH_AVERAGE) { -- cgit v1.2.3 From 5f5e46911022be4e9a843fc259fdb24ccc303594 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 14:18:02 +0000 Subject: Cycles: panel header drawing tweak. --- source/blender/editors/interface/interface_panel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 2e41559f9ac..cd0d3c63dbd 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -494,13 +494,13 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) headrect.ymax= headrect.ymin + floor(PNL_HEADER/block->aspect + 0.001f); { - float minx= rect->xmin+5.0f/block->aspect; - float maxx= rect->xmax-5.0f/block->aspect; + float minx= rect->xmin/block->aspect; + float maxx= rect->xmax/block->aspect; float y= headrect.ymax; glEnable(GL_BLEND); glColor4f(0.0f, 0.0f, 0.0f, 0.1f); - uiSetRoundBox(15); + uiSetRoundBox(0); uiDrawBox(GL_POLYGON, minx, headrect.ymin, maxx, y+1, 4); glDisable(GL_BLEND); } -- cgit v1.2.3 From 8da594c8613ddcf4195c4429c81b48e24ae3dc94 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 14:26:45 +0000 Subject: Render API: first step in updating RenderEngine to work according to: http://wiki.blender.org/index.php/Dev:2.5/Source/Render/RenderEngineAPI --- intern/cycles/blender/addon/__init__.py | 29 +- intern/cycles/blender/addon/engine.py | 31 +- source/blender/blenkernel/BKE_depsgraph.h | 3 +- source/blender/blenkernel/BKE_scene.h | 2 + source/blender/blenkernel/intern/depsgraph.c | 29 +- source/blender/blenkernel/intern/scene.c | 9 +- source/blender/editors/include/ED_render.h | 2 +- source/blender/editors/render/CMakeLists.txt | 1 + source/blender/editors/render/render_shading.c | 239 +-------------- source/blender/editors/render/render_update.c | 339 +++++++++++++++++++++ source/blender/editors/space_view3d/space_view3d.c | 7 - source/blender/editors/space_view3d/view3d_draw.c | 5 +- source/blender/makesrna/intern/rna_render.c | 146 +++++---- source/blender/makesrna/intern/rna_scene_api.c | 1 + source/blender/render/CMakeLists.txt | 4 + source/blender/render/SConscript | 3 + source/blender/render/extern/include/RE_engine.h | 15 +- source/blender/render/intern/pipeline/engine.c | 55 +++- .../blender/windowmanager/intern/wm_event_system.c | 4 +- source/blenderplayer/bad_level_call_stubs/stubs.c | 2 + 20 files changed, 582 insertions(+), 344 deletions(-) create mode 100644 source/blender/editors/render/render_update.c diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 0a2e5cee142..e66d078f8c7 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -47,17 +47,30 @@ class CyclesRender(bpy.types.RenderEngine): def __del__(self): engine.free(self) - def render(self, scene): - engine.create(self, scene, True) - engine.render(self, scene) + # final render + def update(self, data, scene): + engine.create(self, data, scene) + engine.update(self, data, scene) - def draw(self, scene): + def render(self): + engine.render(self) + + # preview render + # def preview_update(self, context, id): + # pass + # + # def preview_render(self): + # pass + + # viewport render + def view_update(self, context): if not self.session: - engine.create(self, scene, False) - engine.draw(self, scene) + engine.create(self, context.blend_data, context.scene, + context.region, context.space_data, context.region_data) + engine.update(self, context.blend_data, context.scene) - def update(self, scene): - engine.update(self, scene) + def view_draw(self, context): + engine.draw(self, context.region, context.space_data, context.region_data) def register(): properties.register() diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index fb98068766f..a78107735eb 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -23,19 +23,17 @@ def init(): import os.path lib.init(os.path.dirname(__file__)) -def create(engine, scene, offline): +def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): from cycles import libcycles_blender as lib - data = bpy.data.as_pointer() - scene = scene.as_pointer() - if not offline and bpy.context.area.type == 'VIEW_3D': - region = bpy.context.region.as_pointer() - v3d = bpy.context.space_data.as_pointer() - rv3d = bpy.context.region_data.as_pointer() - else: - region = 0 - v3d = 0 - rv3d = 0 + data = data.as_pointer() + scene = scene.as_pointer() + if region: + region = region.as_pointer() + if v3d: + v3d = v3d.as_pointer() + if rv3d: + rv3d = rv3d.as_pointer() engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d) @@ -46,19 +44,18 @@ def free(engine): lib.free(engine.session) del engine.session -def render(engine, scene): +def render(engine): from cycles import libcycles_blender as lib lib.render(engine.session) -def update(engine, scene): +def update(engine, data, scene): from cycles import libcycles_blender as lib lib.sync(engine.session) -def draw(engine, scene): +def draw(engine, region, v3d, rv3d): from cycles import libcycles_blender as lib - v3d = bpy.context.space_data.as_pointer() - rv3d = bpy.context.region_data.as_pointer() - region = bpy.context.region + v3d = v3d.as_pointer() + rv3d = rv3d.as_pointer() # draw render image status, substatus = lib.draw(engine.session, v3d, rv3d) diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h index 9b2c1d117f5..37e547b6688 100644 --- a/source/blender/blenkernel/BKE_depsgraph.h +++ b/source/blender/blenkernel/BKE_depsgraph.h @@ -121,7 +121,8 @@ void DAG_ids_flush_update(struct Main *bmain, int time); void DAG_id_tag_update(struct ID *id, short flag); /* flush all tagged updates */ void DAG_ids_flush_tagged(struct Main *bmain); - /* clear ID recalc flags */ + /* check and clear ID recalc flags */ +void DAG_ids_check_recalc(struct Main *bmain); void DAG_ids_clear_recalc(struct Main *bmain); /* test if any of this id type is tagged for update */ int DAG_id_type_tagged(struct Main *bmain, short idtype); diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 943712167c6..9164085e7b7 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -90,6 +90,8 @@ int scene_check_setscene(struct Main *bmain, struct Scene *sce); float BKE_curframe(struct Scene *scene); void scene_update_tagged(struct Main *bmain, struct Scene *sce); +void scene_clear_tagged(struct Main *bmain, struct Scene *sce); + void scene_update_for_newframe(struct Main *bmain, struct Scene *sce, unsigned int lay); void scene_add_render_layer(struct Scene *sce); diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 72df926b9a7..845f1bc13e8 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2508,10 +2508,10 @@ void DAG_ids_flush_tagged(Main *bmain) DAG_scene_flush_update(bmain, sce, lay, 0); } -void DAG_ids_clear_recalc(Main *bmain) +void DAG_ids_check_recalc(Main *bmain) { ListBase *lbarray[MAX_LIBARRAY]; - int a, first_tag = 1; + int a; /* loop over all ID types */ a = set_listbasepointers(bmain, lbarray); @@ -2524,11 +2524,28 @@ void DAG_ids_clear_recalc(Main *bmain) looping over all ID's in case there are no tags */ if(id && bmain->id_tag_update[id->name[0]]) { /* do editors update */ - if(first_tag) { - dag_editors_update(bmain, NULL); - first_tag = 0; - } + dag_editors_update(bmain, NULL); + return; + } + } +} + + +void DAG_ids_clear_recalc(Main *bmain) +{ + ListBase *lbarray[MAX_LIBARRAY]; + int a; + /* loop over all ID types */ + a = set_listbasepointers(bmain, lbarray); + + while(a--) { + ListBase *lb = lbarray[a]; + ID *id = lb->first; + + /* we tag based on first ID type character to avoid + looping over all ID's in case there are no tags */ + if(id && bmain->id_tag_update[id->name[0]]) { for(; id; id=id->next) if(id->flag & (LIB_ID_RECALC|LIB_ID_RECALC_DATA)) id->flag &= ~(LIB_ID_RECALC|LIB_ID_RECALC_DATA); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index d4a1eb0330c..81cffe7a182 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -989,13 +989,18 @@ void scene_update_tagged(Main *bmain, Scene *scene) if (scene->physics_settings.quick_cache_step) BKE_ptcache_quick_cache_all(bmain, scene); - - DAG_ids_clear_recalc(bmain); + + DAG_ids_check_recalc(bmain); /* in the future this should handle updates for all datablocks, not only objects and scenes. - brecht */ } +void scene_clear_tagged(Main *bmain, Scene *scene) +{ + DAG_ids_clear_recalc(bmain); +} + /* applies changes right away, does all sets too */ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) { diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h index 623d5dff8a4..8c0fa3a89a3 100644 --- a/source/blender/editors/include/ED_render.h +++ b/source/blender/editors/include/ED_render.h @@ -45,7 +45,7 @@ void ED_operatortypes_render(void); void ED_render_id_flush_update(struct Main *bmain, struct ID *id); void ED_render_engine_changed(struct Main *bmain); -void ED_render_engine_update_tagged(struct Main *bmain); +void ED_render_engine_update_tagged(struct bContext *C, struct Main *bmain); /* render_preview.c */ diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt index 16cfca8dadb..af2dc5d64a2 100644 --- a/source/blender/editors/render/CMakeLists.txt +++ b/source/blender/editors/render/CMakeLists.txt @@ -41,6 +41,7 @@ set(SRC render_ops.c render_preview.c render_shading.c + render_update.c render_intern.h ) diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index bc84edb3c2e..178a15354fb 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -88,244 +88,6 @@ #include "render_intern.h" // own include -/***************************** Updates *********************************** - * ED_render_id_flush_update gets called from DAG_id_tag_update, to do * - * editor level updates when the ID changes. when these ID blocks are in * - * the dependency graph, we can get rid of the manual dependency checks */ - -static int mtex_use_tex(MTex **mtex, int tot, Tex *tex) -{ - int a; - - if(!mtex) - return 0; - - for(a=0; atex == tex) - return 1; - - return 0; -} - -static int nodes_use_tex(bNodeTree *ntree, Tex *tex) -{ - bNode *node; - - for(node=ntree->nodes.first; node; node= node->next) { - if(node->id) { - if(node->id == (ID*)tex) { - return 1; - } - else if(node->type==NODE_GROUP) { - if(nodes_use_tex((bNodeTree *)node->id, tex)) - return 1; - } - } - } - - return 0; -} - -static void material_changed(Main *UNUSED(bmain), Material *ma) -{ - /* icons */ - BKE_icon_changed(BKE_icon_getid(&ma->id)); - - /* glsl */ - if(ma->gpumaterial.first) - GPU_material_free(ma); -} - -static void texture_changed(Main *bmain, Tex *tex) -{ - Material *ma; - Lamp *la; - World *wo; - - /* icons */ - BKE_icon_changed(BKE_icon_getid(&tex->id)); - - /* 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; - - BKE_icon_changed(BKE_icon_getid(&ma->id)); - - if(ma->gpumaterial.first) - GPU_material_free(ma); - } - - /* 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; - - 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; - - BKE_icon_changed(BKE_icon_getid(&wo->id)); - } -} - -static void lamp_changed(Main *bmain, Lamp *la) -{ - Object *ob; - Material *ma; - - /* icons */ - BKE_icon_changed(BKE_icon_getid(&la->id)); - - /* glsl */ - for(ob=bmain->object.first; ob; ob=ob->id.next) - if(ob->data == la && ob->gpulamp.first) - GPU_lamp_free(ob); - - for(ma=bmain->mat.first; ma; ma=ma->id.next) - if(ma->gpumaterial.first) - GPU_material_free(ma); -} - -static void world_changed(Main *bmain, World *wo) -{ - Material *ma; - - /* icons */ - BKE_icon_changed(BKE_icon_getid(&wo->id)); - - /* glsl */ - for(ma=bmain->mat.first; ma; ma=ma->id.next) - if(ma->gpumaterial.first) - GPU_material_free(ma); -} - -static void image_changed(Main *bmain, Image *ima) -{ - Tex *tex; - - /* icons */ - BKE_icon_changed(BKE_icon_getid(&ima->id)); - - /* textures */ - for(tex=bmain->tex.first; tex; tex=tex->id.next) - if(tex->ima == ima) - texture_changed(bmain, tex); -} - -static void scene_changed(Main *bmain, Scene *UNUSED(scene)) -{ - Object *ob; - Material *ma; - - /* glsl */ - for(ob=bmain->object.first; ob; ob=ob->id.next) - if(ob->gpulamp.first) - GPU_lamp_free(ob); - - for(ma=bmain->mat.first; ma; ma=ma->id.next) - if(ma->gpumaterial.first) - GPU_material_free(ma); -} - -#include "DNA_screen_types.h" -#include "DNA_view3d_types.h" - -#include "RE_engine.h" - -static void update_render_engines(Main *bmain, int tagged_only) -{ - Scene *scene = bmain->scene.first; - bScreen *sc; - ScrArea *sa; - ARegion *ar; - - for(sc=bmain->screen.first; sc; sc=sc->id.next) { - for(sa=sc->areabase.first; sa; sa=sa->next) { - if(sa->spacetype == SPACE_VIEW3D) { - for(ar=sa->regionbase.first; ar; ar=ar->next) { - if(ar->regiontype == RGN_TYPE_WINDOW) { - RegionView3D *rv3d = ar->regiondata; - RenderEngine *engine = rv3d->render_engine; - - if(engine && (!tagged_only || engine->do_update)) { - engine->do_update = 0; - engine->type->update(engine, scene); - } - } - } - } - } - } -} - -void ED_render_engine_update_tagged(Main *bmain) -{ - update_render_engines(bmain, 1); -} - -void ED_render_engine_changed(Main *bmain) -{ - bScreen *sc; - ScrArea *sa; - ARegion *ar; - - for(sc=bmain->screen.first; sc; sc=sc->id.next) { - for(sa=sc->areabase.first; sa; sa=sa->next) { - if(sa->spacetype == SPACE_VIEW3D) { - for(ar=sa->regionbase.first; ar; ar=ar->next) { - if(ar->regiontype == RGN_TYPE_WINDOW) { - RegionView3D *rv3d = ar->regiondata; - - if(rv3d->render_engine) { - RE_engine_free(rv3d->render_engine); - rv3d->render_engine= NULL; - } - } - } - } - } - } -} - -void ED_render_id_flush_update(Main *bmain, ID *id) -{ - if(!id) { - update_render_engines(bmain, 0); - return; - } - - switch(GS(id->name)) { - case ID_MA: - material_changed(bmain, (Material*)id); - break; - case ID_TE: - texture_changed(bmain, (Tex*)id); - break; - case ID_WO: - world_changed(bmain, (World*)id); - break; - case ID_LA: - lamp_changed(bmain, (Lamp*)id); - break; - case ID_IM: - image_changed(bmain, (Image*)id); - break; - case ID_SCE: - scene_changed(bmain, (Scene*)id); - break; - default: - break; - } -} - /********************** material slot operators *********************/ static int material_slot_add_exec(bContext *C, wmOperator *UNUSED(op)) @@ -1332,3 +1094,4 @@ void TEXTURE_OT_slot_paste(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } + diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c new file mode 100644 index 00000000000..c795c35e9d4 --- /dev/null +++ b/source/blender/editors/render/render_update.c @@ -0,0 +1,339 @@ +/* + * $Id$ + * + * ***** 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. + * + * 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) 2009 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/render/render_update.c + * \ingroup edrend + */ + +#include +#include + +#include "MEM_guardedalloc.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_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_view3d_types.h" +#include "DNA_world_types.h" + +#include "BKE_context.h" +#include "BKE_depsgraph.h" +#include "BKE_icons.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_material.h" +#include "BKE_node.h" +#include "BKE_scene.h" +#include "BKE_texture.h" +#include "BKE_world.h" + +#include "GPU_material.h" + +#include "RE_engine.h" + +#include "ED_render.h" + +#include "render_intern.h" // own include + +/***************************** Render Engines ********************************/ + +void ED_render_engine_update_tagged(bContext *C, Main *bmain) +{ + /* viewport rendering update on data changes, happens after depsgraph + * updates if there was any change. context is set to the 3d view */ + bScreen *sc, *prev_sc= CTX_wm_screen(C); + ScrArea *sa, *prev_sa= CTX_wm_area(C); + ARegion *ar, *prev_ar= CTX_wm_region(C); + + for(sc=bmain->screen.first; sc; sc=sc->id.next) { + for(sa=sc->areabase.first; sa; sa=sa->next) { + if(sa->spacetype != SPACE_VIEW3D) + continue; + + for(ar=sa->regionbase.first; ar; ar=ar->next) { + RegionView3D *rv3d; + RenderEngine *engine; + + if(ar->regiontype != RGN_TYPE_WINDOW) + continue; + + rv3d= ar->regiondata; + engine= rv3d->render_engine; + + if(engine && engine->do_update) { + CTX_wm_screen_set(C, sc); + CTX_wm_area_set(C, sa); + CTX_wm_region_set(C, ar); + + engine->do_update= 0; + engine->type->view_update(engine, C); + } + } + } + } + + CTX_wm_screen_set(C, prev_sc); + CTX_wm_area_set(C, prev_sa); + CTX_wm_region_set(C, prev_ar); +} + +void ED_render_engine_changed(Main *bmain) +{ + /* on changing the render engine type, clear all running render engines */ + bScreen *sc; + ScrArea *sa; + ARegion *ar; + + for(sc=bmain->screen.first; sc; sc=sc->id.next) { + for(sa=sc->areabase.first; sa; sa=sa->next) { + if(sa->spacetype != SPACE_VIEW3D) + continue; + + for(ar=sa->regionbase.first; ar; ar=ar->next) { + RegionView3D *rv3d; + + if(ar->regiontype != RGN_TYPE_WINDOW) + continue; + + rv3d= ar->regiondata; + + if(rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine= NULL; + } + } + } + } +} + +void tag_render_engines(Main *bmain) +{ + /* tag running render engines for update later on */ + bScreen *sc; + ScrArea *sa; + ARegion *ar; + + for(sc=bmain->screen.first; sc; sc=sc->id.next) { + for(sa=sc->areabase.first; sa; sa=sa->next) { + if(sa->spacetype != SPACE_VIEW3D) + continue; + + for(ar=sa->regionbase.first; ar; ar=ar->next) { + RegionView3D *rv3d; + + if(ar->regiontype != RGN_TYPE_WINDOW) + continue; + + rv3d= ar->regiondata; + if(rv3d->render_engine) + rv3d->render_engine->do_update= 1; + } + } + } +} + +/***************************** Updates *********************************** + * ED_render_id_flush_update gets called from DAG_id_tag_update, to do * + * editor level updates when the ID changes. when these ID blocks are in * + * the dependency graph, we can get rid of the manual dependency checks */ + +static int mtex_use_tex(MTex **mtex, int tot, Tex *tex) +{ + int a; + + if(!mtex) + return 0; + + for(a=0; atex == tex) + return 1; + + return 0; +} + +static int nodes_use_tex(bNodeTree *ntree, Tex *tex) +{ + bNode *node; + + for(node=ntree->nodes.first; node; node= node->next) { + if(node->id) { + if(node->id == (ID*)tex) { + return 1; + } + else if(node->type==NODE_GROUP) { + if(nodes_use_tex((bNodeTree *)node->id, tex)) + return 1; + } + } + } + + return 0; +} + +static void material_changed(Main *UNUSED(bmain), Material *ma) +{ + /* icons */ + BKE_icon_changed(BKE_icon_getid(&ma->id)); + + /* glsl */ + if(ma->gpumaterial.first) + GPU_material_free(ma); +} + +static void texture_changed(Main *bmain, Tex *tex) +{ + Material *ma; + Lamp *la; + World *wo; + + /* icons */ + BKE_icon_changed(BKE_icon_getid(&tex->id)); + + /* 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; + + BKE_icon_changed(BKE_icon_getid(&ma->id)); + + if(ma->gpumaterial.first) + GPU_material_free(ma); + } + + /* 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; + + 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; + + BKE_icon_changed(BKE_icon_getid(&wo->id)); + } +} + +static void lamp_changed(Main *bmain, Lamp *la) +{ + Object *ob; + Material *ma; + + /* icons */ + BKE_icon_changed(BKE_icon_getid(&la->id)); + + /* glsl */ + for(ob=bmain->object.first; ob; ob=ob->id.next) + if(ob->data == la && ob->gpulamp.first) + GPU_lamp_free(ob); + + for(ma=bmain->mat.first; ma; ma=ma->id.next) + if(ma->gpumaterial.first) + GPU_material_free(ma); +} + +static void world_changed(Main *bmain, World *wo) +{ + Material *ma; + + /* icons */ + BKE_icon_changed(BKE_icon_getid(&wo->id)); + + /* glsl */ + for(ma=bmain->mat.first; ma; ma=ma->id.next) + if(ma->gpumaterial.first) + GPU_material_free(ma); +} + +static void image_changed(Main *bmain, Image *ima) +{ + Tex *tex; + + /* icons */ + BKE_icon_changed(BKE_icon_getid(&ima->id)); + + /* textures */ + for(tex=bmain->tex.first; tex; tex=tex->id.next) + if(tex->ima == ima) + texture_changed(bmain, tex); +} + +static void scene_changed(Main *bmain, Scene *UNUSED(scene)) +{ + Object *ob; + Material *ma; + + /* glsl */ + for(ob=bmain->object.first; ob; ob=ob->id.next) + if(ob->gpulamp.first) + GPU_lamp_free(ob); + + for(ma=bmain->mat.first; ma; ma=ma->id.next) + if(ma->gpumaterial.first) + GPU_material_free(ma); +} + +void ED_render_id_flush_update(Main *bmain, ID *id) +{ + if(!id) { + tag_render_engines(bmain); + return; + } + + switch(GS(id->name)) { + case ID_MA: + material_changed(bmain, (Material*)id); + break; + case ID_TE: + texture_changed(bmain, (Tex*)id); + break; + case ID_WO: + world_changed(bmain, (World*)id); + break; + case ID_LA: + lamp_changed(bmain, (Lamp*)id); + break; + case ID_IM: + image_changed(bmain, (Image*)id); + break; + case ID_SCE: + scene_changed(bmain, (Scene*)id); + break; + default: + break; + } +} + diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 4f8d69958e8..62f3d762e22 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -616,12 +616,6 @@ static void view3d_recalc_used_layers(ARegion *ar, wmNotifier *wmn, Scene *scene } } -static void view3d_main_area_render_update(RegionView3D *rv3d) -{ - if(rv3d->render_engine) - rv3d->render_engine->type->update(rv3d->render_engine, NULL); -} - static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) { bScreen *sc; @@ -651,7 +645,6 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_LAYER_CONTENT: view3d_recalc_used_layers(ar, wmn, wmn->reference); ED_region_tag_redraw(ar); - view3d_main_area_render_update(rv3d); break; case ND_FRAME: case ND_TRANSFORM: diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index c0352d30f47..02432eb2098 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2313,10 +2313,11 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) if(strcmp(type->idname, scene->r.engine) == 0) break; - if(!type || !type->draw) + if(!type || !type->view_draw) return 0; rv3d->render_engine = RE_engine_create(type); + type->view_update(rv3d->render_engine, C); } view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL); @@ -2327,7 +2328,7 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) ED_region_pixelspace(ar); type = rv3d->render_engine->type; - type->draw(rv3d->render_engine, scene); + type->view_draw(rv3d->render_engine, C); return 1; } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 842a5f49998..ed7e99b9cb5 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -49,102 +49,117 @@ #include "BKE_context.h" #include "BKE_report.h" -/* RenderEngine */ - -static RenderEngineType internal_render_type = { - NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, NULL, NULL, {NULL, NULL, NULL}}; -#ifdef WITH_GAMEENGINE -static RenderEngineType internal_game_type = { - NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, NULL, NULL, {NULL, NULL, NULL}}; -#endif - -ListBase R_engines = {NULL, NULL}; - -void RE_engines_init(void) +LIBEXPORT void engine_tag_redraw(RenderEngine *engine) { - BLI_addtail(&R_engines, &internal_render_type); -#ifdef WITH_GAMEENGINE - BLI_addtail(&R_engines, &internal_game_type); -#endif + engine->do_draw = 1; } -void RE_engines_exit(void) +LIBEXPORT void engine_tag_update(RenderEngine *engine) { - RenderEngineType *type, *next; + engine->do_update = 1; +} - for(type=R_engines.first; type; type=next) { - next= type->next; +/* RenderEngine Callbacks */ - BLI_remlink(&R_engines, type); +static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; - if(!(type->flag & RE_INTERNAL)) { - if(type->ext.free) - type->ext.free(type->ext.data); + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "update"); - MEM_freeN(type); - } - } + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "data", &bmain); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +static void engine_render(RenderEngine *engine) { - engine->do_draw = 1; + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "render"); + + RNA_parameter_list_create(&list, &ptr, func); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -LIBEXPORT void engine_tag_update(RenderEngine *engine) +static void engine_preview_update(RenderEngine *engine, const struct bContext *context, struct ID *id) { - engine->do_update = 1; + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "preview_update"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "context", &context); + RNA_parameter_set_lookup(&list, "id", &id); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -static void engine_render(RenderEngine *engine, struct Scene *scene) +static void engine_preview_render(RenderEngine *engine) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "render"); + func= RNA_struct_find_function(&ptr, "preview_render"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void engine_draw(RenderEngine *engine, struct Scene *scene) +static void engine_view_update(RenderEngine *engine, const struct bContext *context) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "draw"); + func= RNA_struct_find_function(&ptr, "view_update"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); + RNA_parameter_set_lookup(&list, "context", &context); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void engine_update(RenderEngine *engine, struct Scene *scene) +static void engine_view_draw(RenderEngine *engine, const struct bContext *context) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "update"); + func= RNA_struct_find_function(&ptr, "view_draw"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); + RNA_parameter_set_lookup(&list, "context", &context); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void rna_RenderEngine_unregister(const bContext *C, StructRNA *type) +/* RenderEngine registration */ + +static void rna_RenderEngine_unregister(const struct bContext *C, StructRNA *type) { RenderEngineType *et= RNA_struct_blender_type_get(type); @@ -161,7 +176,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RenderEngineType *et, dummyet = {NULL}; RenderEngine dummyengine= {NULL}; PointerRNA dummyptr; - int have_function[3]; + int have_function[6]; /* setup dummy engine & engine type to store static properties in */ dummyengine.type= &dummyet; @@ -186,7 +201,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo } /* create a new engine type */ - et= MEM_callocN(sizeof(RenderEngineType), "python buttons engine"); + et= MEM_callocN(sizeof(RenderEngineType), "python render engine"); memcpy(et, &dummyet, sizeof(dummyet)); et->ext.srna= RNA_def_struct(&BLENDER_RNA, et->idname, "RenderEngine"); @@ -195,9 +210,12 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo et->ext.free= free; RNA_struct_blender_type_set(et->ext.srna, et); - et->render= (have_function[0])? engine_render: NULL; - et->draw= (have_function[1])? engine_draw: NULL; - et->update= (have_function[2])? engine_update: NULL; + et->update= (have_function[0])? engine_update: NULL; + et->render= (have_function[1])? engine_render: NULL; + et->preview_update= (have_function[2])? engine_preview_update: NULL; + et->preview_render= (have_function[3])? engine_preview_render: NULL; + et->view_update= (have_function[4])? engine_view_update: NULL; + et->view_draw= (have_function[5])? engine_view_draw: NULL; BLI_addtail(&R_engines, et); @@ -286,22 +304,38 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_struct_refine_func(srna, "rna_RenderEngine_refine"); RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister", "rna_RenderEngine_instance"); - /* render */ - func= RNA_def_function(srna, "render", NULL); - RNA_def_function_ui_description(func, "Render scene into an image."); + /* final render callbacks */ + func= RNA_def_function(srna, "update", NULL); + RNA_def_function_ui_description(func, "Export scene data for render"); RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "data", "BlendData", "", ""); RNA_def_pointer(func, "scene", "Scene", "", ""); - /* draw */ - func= RNA_def_function(srna, "draw", NULL); - RNA_def_function_ui_description(func, "Draw progressive render into viewport."); + func= RNA_def_function(srna, "render", NULL); + RNA_def_function_ui_description(func, "Execute render"); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "scene", "Scene", "", ""); - func= RNA_def_function(srna, "update", NULL); - RNA_def_function_ui_description(func, "Notify data has changed for progressive viewport render."); + /* preview render callbacks */ + func= RNA_def_function(srna, "preview_update", NULL); + RNA_def_function_ui_description(func, "Export scene data for preview render of the given datablock"); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "scene", "Scene", "", ""); + RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_pointer(func, "id", "ID", "", ""); + + func= RNA_def_function(srna, "preview_render", NULL); + RNA_def_function_ui_description(func, "Execute preview render"); + RNA_def_function_flag(func, FUNC_REGISTER); + + /* viewport render callbacks */ + func= RNA_def_function(srna, "view_update", NULL); + RNA_def_function_ui_description(func, "Update on data changes for viewport render"); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); + + func= RNA_def_function(srna, "view_draw", NULL); + RNA_def_function_ui_description(func, "Draw viewport render"); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); /* tag for redraw */ RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index c2194636cd3..23d34074ff4 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -71,6 +71,7 @@ static void rna_Scene_frame_set(Scene *scene, int frame, float subframe) static void rna_Scene_update_tagged(Scene *scene) { scene_update_tagged(G.main, scene); + scene_clear_tagged(G.main, scene); } static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, char *name) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 2ffe3b360e9..f9b629791d7 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -131,6 +131,10 @@ if(WITH_CODEC_QUICKTIME) add_definitions(-DWITH_QUICKTIME) endif() +if(WITH_GAMEENGINE) + add_definitions(-DWITH_GAMEENGINE) +endif() + if(APPLE) if(CMAKE_OSX_ARCHITECTURES MATCHES "i386" OR CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfpmath=sse") diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index 4eff9fe238d..2bf5da19827 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -54,6 +54,9 @@ if env['WITH_BF_QUICKTIME']: if env['WITH_BF_OPENEXR']: defs.append('WITH_OPENEXR') +if env['WITH_BF_GAMEENGINE']: + defs.append('WITH_GAMEENGINE') + if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 6793acb1482..e6680386064 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -63,9 +63,14 @@ typedef struct RenderEngineType { char name[64]; int flag; - void (*render)(struct RenderEngine *engine, struct Scene *scene); - void (*draw)(struct RenderEngine *engine, struct Scene *scene); - void (*update)(struct RenderEngine *engine, struct Scene *scene); + void (*update)(struct RenderEngine *engine, struct Main *bmain, struct Scene *scene); + void (*render)(struct RenderEngine *engine); + + void (*preview_update)(struct RenderEngine *engine, const struct bContext *context, struct ID *id); + void (*preview_render)(struct RenderEngine *engine); + + void (*view_update)(struct RenderEngine *engine, const struct bContext *context); + void (*view_draw)(struct RenderEngine *engine, const struct bContext *context); /* RNA integration */ ExtensionRNA ext; @@ -73,9 +78,11 @@ typedef struct RenderEngineType { typedef struct RenderEngine { RenderEngineType *type; + void *py_instance; + struct Render *re; ListBase fullresult; - void *py_instance; + int do_draw; int do_update; } RenderEngine; diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index de99b6e8e7e..f6c9c326240 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -58,6 +58,52 @@ #include "render_types.h" #include "renderpipeline.h" +/* Render Engine Types */ + +static RenderEngineType internal_render_type = { + NULL, NULL, + "BLENDER_RENDER", "Blender Render", RE_INTERNAL, + NULL, NULL, NULL, NULL, NULL, NULL, + {NULL, NULL, NULL}}; + +#ifdef WITH_GAMEENGINE + +static RenderEngineType internal_game_type = { + NULL, NULL, + "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, + NULL, NULL, NULL, NULL, NULL, NULL, + {NULL, NULL, NULL}}; + +#endif + +ListBase R_engines = {NULL, NULL}; + +void RE_engines_init(void) +{ + BLI_addtail(&R_engines, &internal_render_type); +#ifdef WITH_GAMEENGINE + BLI_addtail(&R_engines, &internal_game_type); +#endif +} + +void RE_engines_exit(void) +{ + RenderEngineType *type, *next; + + for(type=R_engines.first; type; type=next) { + next= type->next; + + BLI_remlink(&R_engines, type); + + if(!(type->flag & RE_INTERNAL)) { + if(type->ext.free) + type->ext.free(type->ext.data); + + MEM_freeN(type); + } + } +} + /* Create, Free */ RenderEngine *RE_engine_create(RenderEngineType *type) @@ -198,7 +244,14 @@ int RE_engine_render(Render *re, int do_all) if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) scene_update_for_newframe(re->main, re->scene, re->lay); - type->render(engine, re->scene); + if(re->r.scemode & R_PREVIEWBUTS) { + //type->preview_update(engine, scene, id); + type->preview_render(engine); + } + else { + type->update(engine, re->main, re->scene); + type->render(engine); + } free_render_result(&engine->fullresult, engine->fullresult.first); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 723df06a125..3f9aa2bcc82 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -320,7 +320,9 @@ void wm_event_do_notifiers(bContext *C) scene_update_tagged(bmain, win->screen->scene); - ED_render_engine_update_tagged(bmain); + ED_render_engine_update_tagged(C, bmain); + + scene_clear_tagged(bmain, win->screen->scene); } } diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 2f5d6702e3e..901ec80a654 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -375,6 +375,8 @@ void RE_AcquireResultImage(struct Render *re, struct RenderResult *rr){} void RE_ReleaseResult(struct Render *re){} void RE_ReleaseResultImage(struct Render *re){} int RE_engine_test_break(struct RenderEngine *engine){return 0;} +void RE_engines_init() {} +void RE_engines_exit() {} /* python */ struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;} -- cgit v1.2.3 From 0a1223c87e2bc9557351630292bbae52ce38b4cf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 15:20:12 +0000 Subject: Render API: add self.report() function for RenderEngine, for reporting warnings and errors. --- source/blender/editors/render/render_internal.c | 12 +++++++++-- source/blender/editors/render/render_update.c | 2 ++ source/blender/makesrna/intern/rna_render.c | 7 ++++++ source/blender/render/extern/include/RE_engine.h | 1 + source/blender/render/extern/include/RE_pipeline.h | 5 ++++- .../blender/render/intern/include/render_types.h | 3 +++ source/blender/render/intern/pipeline/engine.c | 5 +++++ source/blender/render/intern/source/pipeline.c | 25 +++++++++++++--------- source/creator/creator.c | 8 +++++-- 9 files changed, 53 insertions(+), 15 deletions(-) diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index 7f90e298504..bde1591b359 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -446,11 +446,15 @@ static int screen_render_exec(bContext *C, wmOperator *op) since sequence rendering can call that recursively... (peter) */ seq_stripelem_cache_cleanup(); + RE_SetReports(re, op->reports); + if(is_animation) - RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports); + RE_BlenderAnim(re, mainp, scene, camera_override, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step); else RE_BlenderFrame(re, mainp, scene, NULL, camera_override, lay, scene->r.cfra, is_write_still); + RE_SetReports(re, NULL); + // no redraw needed, we leave state as we entered it ED_update_for_newframe(mainp, scene, CTX_wm_screen(C), 1); @@ -591,10 +595,14 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro rj->do_update= do_update; rj->progress= progress; + RE_SetReports(rj->re, rj->reports); + if(rj->anim) - RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports); + RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->camera_override, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step); else RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->srl, rj->camera_override, rj->lay, rj->scene->r.cfra, rj->write_still); + + RE_SetReports(rj->re, NULL); } static void render_endjob(void *rjv) diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index c795c35e9d4..6548bdb37a9 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -43,6 +43,8 @@ #include "DNA_view3d_types.h" #include "DNA_world_types.h" +#include "BLI_utildefines.h" + #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_icons.h" diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index ed7e99b9cb5..9c7076012ce 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -32,6 +32,7 @@ #include "DNA_scene_types.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" @@ -373,6 +374,12 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "info", "", 0, "Info", ""); RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "report", "RE_engine_report"); + prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + prop= RNA_def_string(func, "message", "", 0, "Report Message", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + /* registration */ RNA_define_verify_sdna(0); diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index e6680386064..82a421e8549 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -99,6 +99,7 @@ LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *r LIBEXPORT int RE_engine_test_break(RenderEngine *engine); LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg); int RE_engine_render(struct Render *re, int do_all); diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 08b083111d5..2e70d8110e2 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -214,7 +214,10 @@ void RE_TileProcessor(struct Render *re); /* only RE_NewRender() needed, main Blender render calls */ void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene, struct SceneRenderLayer *srl, struct Object *camera_override, unsigned int lay, int frame, const short write_still); -void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, struct ReportList *reports); +void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra); + +/* error reporting */ +void RE_SetReports(struct Render *re, struct ReportList *reports); /* main preview render call */ void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene); diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index cf16211b6d1..30b8930eb52 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -60,6 +60,7 @@ struct RenderBuckets; struct ObjectInstanceRen; struct RayObject; struct RayFace; +struct ReportList; struct Main; #define TABLEINITSIZE 1024 @@ -256,6 +257,8 @@ struct Render void *erh; RenderStats i; + + struct ReportList *reports; }; /* ------------------------------------------------------------------------- */ diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index f6c9c326240..91463ffb428 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -209,6 +209,11 @@ void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char re->i.statstr= NULL; } +void RE_engine_report(RenderEngine *engine, int type, const char *msg) +{ + BKE_report(engine->re->reports, type, msg); +} + /* Render */ int RE_engine_render(Render *re, int do_all) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index f73065f649b..ebc5794881f 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -128,7 +128,7 @@ Render R; /* ********* alloc and free ******** */ -static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override); +static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override); static volatile int g_break= 0; static int thread_break(void *UNUSED(arg)) @@ -2911,6 +2911,11 @@ static int render_initialize_from_main(Render *re, Main *bmain, Scene *scene, Sc return 1; } +void RE_SetReports(Render *re, ReportList *reports) +{ + re->reports= reports; +} + /* general Blender frame render call */ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *srl, Object *camera_override, unsigned int lay, int frame, const short write_still) { @@ -2933,7 +2938,7 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, FALSE); /* reports only used for Movie */ - do_write_image_or_movie(re, scene, NULL, NULL, name); + do_write_image_or_movie(re, scene, NULL, name); } } } @@ -2942,7 +2947,7 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr G.rendering= 0; } -static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports, const char *name_override) +static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, const char *name_override) { char name[FILE_MAX]; RenderResult rres; @@ -2960,7 +2965,7 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, R dofree = 1; } RE_ResultGet32(re, (unsigned int *)rres.rect32); - ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, reports); + ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, re->reports); if(dofree) { MEM_freeN(rres.rect32); } @@ -3033,7 +3038,7 @@ static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, R } /* saves images to disk */ -void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra, ReportList *reports) +void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_override, unsigned int lay, int sfra, int efra, int tfra) { bMovieHandle *mh= BKE_get_movie_handle(scene->r.imtype); int cfrao= scene->r.cfra; @@ -3046,21 +3051,21 @@ 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; - + if(BKE_imtype_is_movie(scene->r.imtype)) - if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, reports)) + if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports)) G.afbreek= 1; if (mh->get_next_frame) { while (!(G.afbreek == 1)) { - int nf = mh->get_next_frame(&re->r, reports); + 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; do_render_all_options(re); if(re->test_break(re->tbh) == 0) { - if(!do_write_image_or_movie(re, scene, mh, reports, NULL)) + if(!do_write_image_or_movie(re, scene, mh, NULL)) G.afbreek= 1; } } else { @@ -3115,7 +3120,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri if(re->test_break(re->tbh) == 0) { if(!G.afbreek) - if(!do_write_image_or_movie(re, scene, mh, reports, NULL)) + if(!do_write_image_or_movie(re, scene, mh, NULL)) G.afbreek= 1; } else diff --git a/source/creator/creator.c b/source/creator/creator.c index 18097f35257..1a486313c92 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -782,7 +782,9 @@ static int render_frame(int argc, const char **argv, void *data) frame = MIN2(MAXFRAME, MAX2(MINAFRAME, frame)); - RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, frame, frame, scene->r.frame_step, &reports); + RE_SetReports(re, &reports); + RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, frame, frame, scene->r.frame_step); + RE_SetReports(re, NULL); return 1; } else { printf("\nError: frame number must follow '-f / --render-frame'.\n"); @@ -803,7 +805,9 @@ static int render_animation(int UNUSED(argc), const char **UNUSED(argv), void *d Render *re= RE_NewRender(scene->id.name); ReportList reports; BKE_reports_init(&reports, RPT_PRINT); - RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, &reports); + RE_SetReports(re, &reports); + RE_BlenderAnim(re, bmain, scene, NULL, scene->lay, scene->r.sfra, scene->r.efra, scene->r.frame_step); + RE_SetReports(re, NULL); } else { printf("\nError: no blend loaded. cannot use '-a'.\n"); } -- cgit v1.2.3 From 0365e38c0620daec25865fa2b8f31a525690ddab Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 15:39:40 +0000 Subject: Render API: RenderEngine.update_progress function to set progress percentage. --- source/blender/makesrna/intern/rna_render.c | 4 ++++ source/blender/render/extern/include/RE_engine.h | 1 + source/blender/render/intern/pipeline/engine.c | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 9c7076012ce..9c41f458de8 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -374,6 +374,10 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "info", "", 0, "Info", ""); RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "update_progress", "RE_engine_update_progress"); + prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done.", 0.0f, 1.0f); + RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "report", "RE_engine_report"); prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", ""); RNA_def_property_flag(prop, PROP_REQUIRED); diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 82a421e8549..590752b5532 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -99,6 +99,7 @@ LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *r LIBEXPORT int RE_engine_test_break(RenderEngine *engine); LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +LIBEXPORT void RE_engine_update_progress(RenderEngine *engine, float progress); LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg); int RE_engine_render(struct Render *re, int do_all); diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index 91463ffb428..594a88e8e29 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -209,6 +209,14 @@ void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char re->i.statstr= NULL; } +void RE_engine_update_progress(RenderEngine *engine, float progress) +{ + Render *re= engine->re; + + CLAMP(progress, 0.0f, 1.0f); + re->progress(re->prh, progress); +} + void RE_engine_report(RenderEngine *engine, int type, const char *msg) { BKE_report(engine->re->reports, type, msg); -- cgit v1.2.3 From dd85722678c92adeea197431520cd6174e615d4f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 16:21:06 +0000 Subject: Render API: code cleanup. --- source/blender/editors/render/render_preview.c | 442 +--------------------- source/blender/editors/space_view3d/view3d_draw.c | 10 +- source/blender/render/extern/include/RE_engine.h | 4 + source/blender/render/intern/pipeline/engine.c | 15 +- 4 files changed, 22 insertions(+), 449 deletions(-) diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index c94ce46c40e..69b31b436fb 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -86,6 +86,7 @@ #include "PIL_time.h" +#include "RE_engine.h" #include "RE_pipeline.h" @@ -99,15 +100,6 @@ #include "render_intern.h" -#define PR_XMIN 10 -#define PR_YMIN 5 -#define PR_XMAX 200 -#define PR_YMAX 195 - -/* XXX */ -static int qtest(void) {return 0;} -/* XXX */ - ImBuf* get_brush_icon(Brush *brush) { static const int flags = IB_rect|IB_multilayer|IB_metadata; @@ -174,123 +166,6 @@ typedef struct ShaderPreview { } ShaderPreview; - - -/* unused now */ -void draw_tex_crop(Tex *tex) -{ - rcti rct; - int ret= 0; - - if(tex==NULL) return; - - if(tex->type==TEX_IMAGE) { - if(tex->cropxmin==0.0f) ret++; - if(tex->cropymin==0.0f) ret++; - if(tex->cropxmax==1.0f) ret++; - if(tex->cropymax==1.0f) ret++; - if(ret==4) return; - - rct.xmin= PR_XMIN+2+tex->cropxmin*(PR_XMAX-PR_XMIN-4); - rct.xmax= PR_XMIN+2+tex->cropxmax*(PR_XMAX-PR_XMIN-4); - rct.ymin= PR_YMIN+2+tex->cropymin*(PR_YMAX-PR_YMIN-4); - rct.ymax= PR_YMIN+2+tex->cropymax*(PR_YMAX-PR_YMIN-4); - - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - - glColor3ub(0, 0, 0); - glRecti(rct.xmin+1, rct.ymin-1, rct.xmax+1, rct.ymax-1); - - glColor3ub(255, 255, 255); - glRecti(rct.xmin, rct.ymin, rct.xmax, rct.ymax); - - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } - -} - -/* temporal abuse; if id_code is -1 it only does texture.... solve! */ -void BIF_preview_changed(short UNUSED(id_code)) -{ -#if 0 - ScrArea *sa; - - for(sa= G.curscreen->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_BUTS) { - SpaceButs *sbuts= sa->spacedata.first; - if(sbuts->mainb==CONTEXT_SHADING) { - int tab= sbuts->tab[CONTEXT_SHADING]; - if(tab==TAB_SHADING_MAT && (id_code==ID_MA || id_code==ID_TE)) { - if (sbuts->ri) sbuts->ri->curtile= 0; - addafterqueue(sa->win, RENDERPREVIEW, 1); - } - else if(tab==TAB_SHADING_TEX && (id_code==ID_TE || id_code==-1)) { - if (sbuts->ri) sbuts->ri->curtile= 0; - addafterqueue(sa->win, RENDERPREVIEW, 1); - } - else if(tab==TAB_SHADING_LAMP && (id_code==ID_LA || id_code==ID_TE)) { - if (sbuts->ri) sbuts->ri->curtile= 0; - addafterqueue(sa->win, RENDERPREVIEW, 1); - } - else if(tab==TAB_SHADING_WORLD && (id_code==ID_WO || id_code==ID_TE)) { - if (sbuts->ri) sbuts->ri->curtile= 0; - addafterqueue(sa->win, RENDERPREVIEW, 1); - } - } - else if (sbuts->ri) - sbuts->ri->curtile= 0; /* ensure changes always result in re-render when context is restored */ - } - else if(sa->spacetype==SPACE_NODE) { - SpaceNode *snode= sa->spacedata.first; - if(snode->treetype==NTREE_SHADER && (id_code==ID_MA || id_code==ID_TE)) { - snode_tag_dirty(snode); - } - } - else if(sa->spacetype==SPACE_VIEW3D) { - View3D *vd= sa->spacedata.first; - /* if is has a renderinfo, we consider that reason for signalling */ - if (vd->ri) { - vd->ri->curtile= 0; - addafterqueue(sa->win, RENDERPREVIEW, 1); - } - } - } - - if(ELEM4(id_code, ID_MA, ID_TE, ID_LA, ID_WO)) { - Object *ob; - Material *ma; - - if(id_code == ID_WO) { - for(ma=G.main->mat.first; ma; ma=ma->id.next) { - if(ma->gpumaterial.first) { - GPU_material_free(ma); - } - } - } - else if(id_code == ID_LA) { - for(ob=G.main->object.first; ob; ob=ob->id.next) { - if(ob->gpulamp.first) { - GPU_lamp_free(ob); - } - } - - for(ma=G.main->mat.first; ma; ma=ma->id.next) { - if(ma->gpumaterial.first) { - GPU_material_free(ma); - } - } - } else if(OBACT) { - Object *ob = OBACT; - - ma= give_current_material(ob, ob->actcol); - if(ma && ma->gpumaterial.first) { - GPU_material_free(ma); - } - } - } -#endif -} - /* *************************** Preview for buttons *********************** */ static Main *pr_main= NULL; @@ -667,321 +542,6 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r } } -/* ******************************** Icon Preview **************************** */ - -void ED_preview_icon_draw(const bContext *UNUSED(C), void *UNUSED(idp), void *UNUSED(arg1), void *UNUSED(arg2), rcti *UNUSED(rect)) -{ -} - -/* *************************** Preview for 3d window *********************** */ - -void view3d_previewrender_progress(RenderResult *rr, volatile rcti *renrect) -{ -// ScrArea *sa= NULL; // XXX -// View3D *v3d= NULL; // XXX - RenderLayer *rl; - int ofsx=0, ofsy=0; - - if(renrect) return; - - rl= rr->layers.first; - - /* this case is when we render envmaps... */ -// if(rr->rectx > v3d->ri->pr_rectx || rr->recty > v3d->ri->pr_recty) -// return; - -// ofsx= v3d->ri->disprect.xmin + rr->tilerect.xmin; -// ofsy= v3d->ri->disprect.ymin + rr->tilerect.ymin; - - glDrawBuffer(GL_FRONT); -// glaDefine2DArea(&sa->winrct); - glaDrawPixelsSafe_to32(ofsx, ofsy, rr->rectx, rr->recty, rr->rectx, rl->rectf, 0); - bglFlush(); - glDrawBuffer(GL_BACK); - -} - -void BIF_view3d_previewrender_signal(ScrArea *UNUSED(sa), short UNUSED(signal)) -{ -#if 0 - View3D *v3d= sa->spacedata.first; - - /* this can be called from other window... solve! */ - if(sa->spacetype!=SPACE_VIEW3D) - return; // XXX - - if(v3d && v3d->ri) { - RenderInfo *ri= v3d->ri; - ri->status &= ~signal; - ri->curtile= 0; - //printf("preview signal %d\n", signal); - if(ri->re && (signal & PR_DBASE)) - RE_Database_Free(ri->re); - -// addafterqueue(sa->win, RENDERPREVIEW, 1); - } -#endif -} - -void BIF_view3d_previewrender_free(View3D *UNUSED(v3d)) -{ -#if 0 - if(v3d->ri) { - RenderInfo *ri= v3d->ri; - if(ri->re) { -// printf("free render\n"); - RE_Database_Free(ri->re); - RE_FreeRender(ri->re); - ri->re= NULL; - } - if (v3d->ri->rect) MEM_freeN(v3d->ri->rect); - MEM_freeN(v3d->ri); - v3d->ri= NULL; - } -#endif -} - -/* returns 1 if OK, do not call while in panel space! */ -static int view3d_previewrender_get_rects(ScrArea *sa, rctf *viewplane, RenderInfo *ri, float *clipsta, float *clipend, int *ortho, float *pixsize) -{ - View3D *v3d= NULL; // XXX - RegionView3D *rv3d= NULL; // XXX - int rectx, recty; -// uiBlock *block; - -// block= uiFindOpenPanelBlockName(&sa->uiblocks, "Preview"); -// if(block==NULL) return 0; - - /* calculate preview rect size */ -// BLI_init_rctf(viewplane, 15.0f, (block->maxx - block->minx)-15.0f, 15.0f, (block->maxy - block->miny)-15.0f); -// uiPanelPush(block); -// ui_graphics_to_window_rct(sa->win, viewplane, &ri->disprect); -// uiPanelPop(block); - - /* correction for gla draw */ -// BLI_translate_rcti(&ri->disprect, -sa->winrct.xmin, -sa->winrct.ymin); - - *ortho= get_view3d_viewplane(v3d, rv3d, sa->winx, sa->winy, viewplane, clipsta, clipend, pixsize); - - rectx= ri->disprect.xmax - ri->disprect.xmin; - recty= ri->disprect.ymax - ri->disprect.ymin; - - if(rectx<4 || recty<4) return 0; - - if(ri->rect && (rectx!=ri->pr_rectx || recty!=ri->pr_recty)) { - MEM_freeN(ri->rect); - ri->rect= NULL; - ri->curtile= 0; - printf("changed size\n"); - } - ri->pr_rectx= rectx; - ri->pr_recty= recty; - - return 1; -} - -/* called before a panel gets moved/scaled, makes sure we can see through */ -void BIF_view3d_previewrender_clear(ScrArea *UNUSED(sa)) -{ -#if 0 - View3D *v3d= sa->spacedata.first; - - if(v3d->ri) { - RenderInfo *ri= v3d->ri; - ri->curtile= 0; - if(ri->rect) - MEM_freeN(ri->rect); - ri->rect= NULL; - } -#endif -} - -/* afterqueue call */ -void BIF_view3d_previewrender(Main *bmain, Scene *scene, ScrArea *sa) -{ - View3D *v3d= sa->spacedata.first; - RegionView3D *rv3d= NULL; // XXX - Render *re; - RenderInfo *ri=NULL; /* preview struct! */ - RenderStats *rstats; - RenderData rdata; - rctf viewplane; - float clipsta, clipend, pixsize; - int orth; - - /* first get the render info right */ -// if (!v3d->ri) { -// ri= v3d->ri= MEM_callocN(sizeof(RenderInfo), "butsrenderinfo"); -// ri->tottile= 10000; -// } -// ri= v3d->ri; - - if(0==view3d_previewrender_get_rects(sa, &viewplane, ri, &clipsta, &clipend, &orth, &pixsize)) - return; - - /* render is finished, so return */ - if(ri->tottile && ri->curtile>=ri->tottile) return; - - /* or return with a new event */ - if(qtest()) { -// addafterqueue(sa->win, RENDERPREVIEW, 1); - return; - } - //printf("Enter previewrender\n"); - /* ok, are we rendering all over? */ - if(ri->re==NULL) { - char name[32]; - - ri->status= 0; - - sprintf(name, "View3dPreview %p", (void *)sa); - re= ri->re= RE_NewRender(name); - //RE_display_draw_cb(re, view3d_previewrender_progress); - //RE_stats_draw_cb(re, view3d_previewrender_stats); - //RE_test_break_cb(re, qtest); - - /* no osa, blur, seq, layers, etc for preview render */ - rdata= scene->r; - rdata.mode &= ~(R_OSA|R_MBLUR); - rdata.scemode &= ~(R_DOSEQ|R_DOCOMP|R_FREE_IMAGE); - rdata.layers.first= rdata.layers.last= NULL; - rdata.renderer= R_INTERN; - - RE_InitState(re, NULL, &rdata, NULL, sa->winx, sa->winy, &ri->disprect); - - if(orth) - RE_SetOrtho(re, &viewplane, clipsta, clipend); - else - RE_SetWindow(re, &viewplane, clipsta, clipend); - RE_SetPixelSize(re, pixsize); - - /* until here are no escapes */ - ri->status |= PR_DISPRECT; - ri->curtile= 0; - //printf("new render\n"); - } - - re= ri->re; - - PIL_sleep_ms(100); /* wait 0.1 second if theres really no event... */ - if(qtest()==0) { - - /* check status */ - if((ri->status & PR_DISPRECT)==0) { - RE_SetDispRect(ri->re, &ri->disprect); - if(orth) - RE_SetOrtho(ri->re, &viewplane, clipsta, clipend); - else - RE_SetWindow(ri->re, &viewplane, clipsta, clipend); - RE_SetPixelSize(re, pixsize); - ri->status |= PR_DISPRECT; - ri->curtile= 0; - //printf("disprect update\n"); - } - if((ri->status & PR_DBASE)==0) { - unsigned int lay= scene->lay; - - RE_SetView(re, rv3d->viewmat); - - /* allow localview render for objects with lights in normal layers */ - if(v3d->lay & 0xFF000000) - lay |= v3d->lay; - else lay= v3d->lay; - - RE_Database_FromScene(re, bmain, scene, lay, 0); // 0= dont use camera view - - rstats= RE_GetStats(re); - if(rstats->convertdone) - ri->status |= PR_DBASE|PR_PROJECTED|PR_ROTATED; - ri->curtile= 0; - - /* database can have created render-resol data... */ - if(rstats->convertdone) - DAG_scene_flush_update(bmain, scene, scene->lay, 0); - - //printf("dbase update\n"); - } - if((ri->status & PR_PROJECTED)==0) { - if(ri->status & PR_DBASE) { - if(orth) - RE_SetOrtho(ri->re, &viewplane, clipsta, clipend); - else - RE_SetWindow(ri->re, &viewplane, clipsta, clipend); - RE_DataBase_ApplyWindow(re); - ri->status |= PR_PROJECTED; - } - ri->curtile= 0; - //printf("project update\n"); - } - - /* OK, can we enter render code? */ - if(ri->status==(PR_DISPRECT|PR_DBASE|PR_PROJECTED|PR_ROTATED)) { - //printf("curtile %d tottile %d\n", ri->curtile, ri->tottile); - RE_TileProcessor(ri->re); //, ri->curtile, 0); - - if(ri->rect==NULL) - ri->rect= MEM_mallocN(sizeof(int)*ri->pr_rectx*ri->pr_recty, "preview view3d rect"); - - RE_ResultGet32(ri->re, ri->rect); - } - - rstats= RE_GetStats(ri->re); -// if(rstats->totpart==rstats->partsdone && rstats->partsdone) -// addqueue(sa->win, REDRAW, 1); -// else -// addafterqueue(sa->win, RENDERPREVIEW, 1); - - ri->curtile= rstats->partsdone; - ri->tottile= rstats->totpart; - } - else { -// addafterqueue(sa->win, RENDERPREVIEW, 1); - } - - //printf("\n"); -} - -/* in panel space! */ -static void view3d_previewdraw_rect(ScrArea *UNUSED(sa), uiBlock *UNUSED(block), RenderInfo *ri) -{ -// rctf dispf; - - if(ri->rect==NULL) - return; - -// BLI_init_rctf(&dispf, 15.0f, (block->maxx - block->minx)-15.0f, 15.0f, (block->maxy - block->miny)-15.0f); -// ui_graphics_to_window_rct(sa->win, &dispf, &ri->disprect); - - /* correction for gla draw */ -// BLI_translate_rcti(&ri->disprect, -sa->winrct.xmin, -sa->winrct.ymin); - - /* when panel scale changed, free rect */ - if(ri->disprect.xmax-ri->disprect.xmin != ri->pr_rectx || - ri->disprect.ymax-ri->disprect.ymin != ri->pr_recty) { - MEM_freeN(ri->rect); - ri->rect= NULL; - } - else { -// glaDefine2DArea(&sa->winrct); - glaDrawPixelsSafe(ri->disprect.xmin, ri->disprect.ymin, ri->pr_rectx, ri->pr_recty, ri->pr_rectx, GL_RGBA, GL_UNSIGNED_BYTE, ri->rect); - } -} - -/* is panel callback, supposed to be called with correct panel offset matrix */ -void BIF_view3d_previewdraw(struct ScrArea *sa, struct uiBlock *block) -{ - RegionView3D *rv3d= NULL; - -// if (v3d->ri==NULL || v3d->ri->rect==NULL) -// addafterqueue(sa->win, RENDERPREVIEW, 1); -// else { - view3d_previewdraw_rect(sa, block, rv3d->ri); -// if(v3d->ri->curtile==0) -// addafterqueue(sa->win, RENDERPREVIEW, 1); -// } -} - - /* **************************** new shader preview system ****************** */ /* inside thread, called by renderer, sets job update value */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 02432eb2098..9a88b4b4493 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2309,14 +2309,12 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) RenderEngineType *type; if(!rv3d->render_engine) { - for(type=R_engines.first; type; type=type->next) - if(strcmp(type->idname, scene->r.engine) == 0) - break; + type= RE_engines_find(scene->r.engine); - if(!type || !type->view_draw) + if(!(type->view_update && type->view_draw)) return 0; - rv3d->render_engine = RE_engine_create(type); + rv3d->render_engine= RE_engine_create(type); type->view_update(rv3d->render_engine, C); } @@ -2327,7 +2325,7 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) ED_region_pixelspace(ar); - type = rv3d->render_engine->type; + type= rv3d->render_engine->type; type->view_draw(rv3d->render_engine, C); return 1; diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 590752b5532..2b0ee81fcde 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -104,8 +104,12 @@ LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg) int RE_engine_render(struct Render *re, int do_all); +/* Engine Types */ + void RE_engines_init(void); void RE_engines_exit(void); +RenderEngineType *RE_engines_find(const char *idname); + #endif /* RE_ENGINE_H */ diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index 594a88e8e29..68d3b2697c5 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -104,6 +104,17 @@ void RE_engines_exit(void) } } +RenderEngineType *RE_engines_find(const char *idname) +{ + RenderEngineType *type; + + type= BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname)); + if(!type) + type= &internal_render_type; + + return type; +} + /* Create, Free */ RenderEngine *RE_engine_create(RenderEngineType *type) @@ -226,11 +237,11 @@ void RE_engine_report(RenderEngine *engine, int type, const char *msg) int RE_engine_render(Render *re, int do_all) { - RenderEngineType *type= BLI_findstring(&R_engines, re->r.engine, offsetof(RenderEngineType, idname)); + RenderEngineType *type= RE_engines_find(re->r.engine); RenderEngine *engine; /* verify if we can render */ - if(!(type && type->render)) + if(!type->render) return 0; if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_DO_PREVIEW)) return 0; -- cgit v1.2.3 From a0ba4a771fd2ebcfcffafbad066b6d5faafb8667 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 18 May 2011 10:01:41 +0000 Subject: Render API: some code refactoring related to errors and render view. --- source/blender/editors/render/CMakeLists.txt | 1 + source/blender/editors/render/render_intern.h | 11 +- source/blender/editors/render/render_internal.c | 423 ++------------------- source/blender/editors/render/render_opengl.c | 2 +- source/blender/editors/render/render_view.c | 359 +++++++++++++++++ source/blender/render/extern/include/RE_pipeline.h | 3 +- .../blender/render/intern/include/render_types.h | 3 - source/blender/render/intern/source/pipeline.c | 33 +- 8 files changed, 421 insertions(+), 414 deletions(-) create mode 100644 source/blender/editors/render/render_view.c diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt index af2dc5d64a2..1dc5612f48b 100644 --- a/source/blender/editors/render/CMakeLists.txt +++ b/source/blender/editors/render/CMakeLists.txt @@ -42,6 +42,7 @@ set(SRC render_preview.c render_shading.c render_update.c + render_view.c render_intern.h ) diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h index e6d8c98d068..ab09acd67f4 100644 --- a/source/blender/editors/render/render_intern.h +++ b/source/blender/editors/render/render_intern.h @@ -65,13 +65,16 @@ void TEXTURE_OT_envmap_clear(struct wmOperatorType *ot); void TEXTURE_OT_envmap_clear_all(struct wmOperatorType *ot); /* render_internal.c */ -void RENDER_OT_view_show(struct wmOperatorType *ot); void RENDER_OT_render(struct wmOperatorType *ot); -void RENDER_OT_view_cancel(struct wmOperatorType *ot); -/*render_opengl.c uses these */ +/* render_opengl.c uses this */ void image_buffer_rect_update(struct Scene *scene, struct RenderResult *rr, struct ImBuf *ibuf, volatile struct rcti *renrect); -void screen_set_image_output(struct bContext *C, int mx, int my); + +/* render_view.c */ +void render_view_open(struct bContext *C, int mx, int my); + +void RENDER_OT_view_show(struct wmOperatorType *ot); +void RENDER_OT_view_cancel(struct wmOperatorType *ot); /* render_opengl.c */ void RENDER_OT_opengl(struct wmOperatorType *ot); diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index bde1591b359..69cb2311148 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -73,17 +73,14 @@ #include "render_intern.h" -static ScrArea *biggest_area(bContext *C); -static ScrArea *biggest_non_image_area(bContext *C); -static ScrArea *find_area_showing_r_result(bContext *C, wmWindow **win); -static ScrArea *find_area_image_empty(bContext *C); +/* Render Callbacks */ /* called inside thread! */ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volatile rcti *renrect) { float x1, y1, *rectf= NULL; int ymin, ymax, xmin, xmax; - int rymin, rxmin; + int rymin, rxmin, do_color_management; char *rectc; /* if renrect argument, we only refresh scanlines */ @@ -95,7 +92,8 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat /* xmin here is first subrect x coord, xmax defines subrect width */ xmin = renrect->xmin + rr->crop; xmax = renrect->xmax - xmin + rr->crop; - if (xmax<2) return; + if(xmax<2) + return; ymin= renrect->ymin + rr->crop; ymax= renrect->ymax - ymin + rr->crop; @@ -141,275 +139,56 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat rectf+= 4*(rr->rectx*ymin + xmin); rectc= (char *)(ibuf->rect + ibuf->x*rymin + rxmin); + + do_color_management = (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)); /* XXX make nice consistent functions for this */ - if (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)) { - for(y1= 0; y1dither / 255.0f; - - /* XXX temp. because crop offset */ - if( rectc >= (char *)(ibuf->rect)) { - for(x1= 0; x1dither / 255.0f; + + /* XXX temp. because crop offset */ + if(rectc >= (char *)(ibuf->rect)) { + for(x1= 0; x1rectx; - rectc += 4*ibuf->x; - } - } else { - for(y1= 0; y1dither / 255.0f; - - /* XXX temp. because crop offset */ - if( rectc >= (char *)(ibuf->rect)) { - for(x1= 0; x1rectx; - rectc += 4*ibuf->x; - } - } -} - -/* new window uses x,y to set position */ -void screen_set_image_output(bContext *C, int mx, int my) -{ - wmWindow *win= CTX_wm_window(C); - Scene *scene= CTX_data_scene(C); - ScrArea *sa= NULL; - SpaceImage *sima; - int area_was_image=0; - - if(scene->r.displaymode==R_OUTPUT_NONE) - return; - - if(scene->r.displaymode==R_OUTPUT_WINDOW) { - rcti rect; - int sizex, sizey; - - sizex= 10 + (scene->r.xsch*scene->r.size)/100; - sizey= 40 + (scene->r.ysch*scene->r.size)/100; - - /* arbitrary... miniature image window views don't make much sense */ - if(sizex < 320) sizex= 320; - if(sizey < 256) sizey= 256; - - /* XXX some magic to calculate postition */ - rect.xmin= mx + win->posx - sizex/2; - rect.ymin= my + win->posy - sizey/2; - rect.xmax= rect.xmin + sizex; - rect.ymax= rect.ymin + sizey; - /* changes context! */ - WM_window_open_temp(C, &rect, WM_WINDOW_RENDER); - - sa= CTX_wm_area(C); - } - else if(scene->r.displaymode==R_OUTPUT_SCREEN) { - if (CTX_wm_area(C) && CTX_wm_area(C)->spacetype == SPACE_IMAGE) - area_was_image = 1; - - /* this function returns with changed context */ - ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_IMAGE); - sa= CTX_wm_area(C); - } + /* dither */ + if(dither != 0.0f) { + const float d = (BLI_frand()-0.5f)*dither; - if(!sa) { - sa= find_area_showing_r_result(C, &win); - if(sa==NULL) - sa= find_area_image_empty(C); - - /* if area found in other window, we make that one show in front */ - if(win && win!=CTX_wm_window(C)) - wm_window_raise(win); - - if(sa==NULL) { - /* find largest open non-image area */ - sa= biggest_non_image_area(C); - if(sa) { - ED_area_newspace(C, sa, SPACE_IMAGE); - sima= sa->spacedata.first; - - /* makes ESC go back to prev space */ - sima->flag |= SI_PREVSPACE; - } - else { - /* use any area of decent size */ - sa= biggest_area(C); - if(sa->spacetype!=SPACE_IMAGE) { - // XXX newspace(sa, SPACE_IMAGE); - sima= sa->spacedata.first; - - /* makes ESC go back to prev space */ - sima->flag |= SI_PREVSPACE; + srgb[0] += d; + srgb[1] += d; + srgb[2] += d; } - } - } - } - sima= sa->spacedata.first; - - /* get the correct image, and scale it */ - sima->image= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); - - /* if we're rendering to full screen, set appropriate hints on image editor - * so it can restore properly on pressing esc */ - if(sa->full) { - sima->flag |= SI_FULLWINDOW; - - /* Tell the image editor to revert to previous space in space list on close - * _only_ if it wasn't already an image editor when the render was invoked */ - if (area_was_image == 0) - sima->flag |= SI_PREVSPACE; - else { - /* Leave it alone so the image editor will just go back from - * full screen to the original tiled setup */ - ; + /* write */ + rc[0]= FTOCHAR(srgb[0]); + rc[1]= FTOCHAR(srgb[1]); + rc[2]= FTOCHAR(srgb[2]); + rc[3]= FTOCHAR(rf[3]); + } } + rectf += 4*rr->rectx; + rectc += 4*ibuf->x; } - } - /* ****************************** render invoking ***************** */ /* set callbacks, exported to sequence render too. Only call in foreground (UI) renders. */ -/* returns biggest area that is not uv/image editor. Note that it uses buttons */ -/* window as the last possible alternative. */ -static ScrArea *biggest_non_image_area(bContext *C) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa, *big= NULL; - int size, maxsize= 0, bwmaxsize= 0; - short foundwin= 0; - - for(sa= sc->areabase.first; sa; sa= sa->next) { - if(sa->winx > 30 && sa->winy > 30) { - size= sa->winx*sa->winy; - if(sa->spacetype == SPACE_BUTS) { - if(foundwin == 0 && size > bwmaxsize) { - bwmaxsize= size; - big= sa; - } - } - else if(sa->spacetype != SPACE_IMAGE && size > maxsize) { - maxsize= size; - big= sa; - foundwin= 1; - } - } - } - - return big; -} - -static ScrArea *biggest_area(bContext *C) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa, *big= NULL; - int size, maxsize= 0; - - for(sa= sc->areabase.first; sa; sa= sa->next) { - size= sa->winx*sa->winy; - if(size > maxsize) { - maxsize= size; - big= sa; - } - } - return big; -} - - -static ScrArea *find_area_showing_r_result(bContext *C, wmWindow **win) -{ - wmWindowManager *wm= CTX_wm_manager(C); - ScrArea *sa = NULL; - SpaceImage *sima; - - /* find an imagewindow showing render result */ - for(*win=wm->windows.first; *win; *win= (*win)->next) { - for(sa= (*win)->screen->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_IMAGE) { - sima= sa->spacedata.first; - if(sima->image && sima->image->type==IMA_TYPE_R_RESULT) - break; - } - } - if(sa) - break; - } - - return sa; -} - -static ScrArea *find_area_image_empty(bContext *C) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa; - SpaceImage *sima; - - /* find an imagewindow showing render result */ - for(sa=sc->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_IMAGE) { - sima= sa->spacedata.first; - if(!sima->image) - break; - } - } - return sa; -} - -#if 0 // XXX not used -static ScrArea *find_empty_image_area(bContext *C) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa; - SpaceImage *sima; - - /* find an imagewindow showing render result */ - for(sa=sc->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_IMAGE) { - sima= sa->spacedata.first; - if(!sima->image) - break; - } - } - return sa; -} -#endif // XXX not used - -static void render_error_reports(void *reports, const char *str) -{ - BKE_report(reports, RPT_ERROR, str); -} - /* executes blocking render */ static int screen_render_exec(bContext *C, wmOperator *op) { @@ -428,13 +207,8 @@ static int screen_render_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - if(re==NULL) { - re= RE_NewRender(scene->id.name); - } - G.afbreek= 0; RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break); - RE_error_cb(re, op->reports, render_error_reports); ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); @@ -562,7 +336,7 @@ static void render_progress_update(void *rjv, float progress) { RenderJob *rj= rjv; - if (rj->progress) + if(rj->progress) *rj->progress = progress; } @@ -695,7 +469,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) if(WM_jobs_test(CTX_wm_manager(C), scene)) return OPERATOR_CANCELLED; - if(!RE_is_rendering_allowed(scene, camera_override, op->reports, render_error_reports)) { + if(!RE_is_rendering_allowed(scene, camera_override, op->reports)) { return OPERATOR_CANCELLED; } @@ -739,7 +513,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) // store spare /* ensure at least 1 area shows result */ - screen_set_image_output(C, event->x, event->y); + render_view_open(C, event->x, event->y); jobflag= WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS; @@ -803,8 +577,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) rj->re= re; G.afbreek= 0; - RE_error_cb(re, op->reports, render_error_reports); - WM_jobs_start(CTX_wm_manager(C), steve); WM_cursor_wait(0); @@ -821,7 +593,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_RUNNING_MODAL; } - /* contextual render, using current scene, view3d? */ void RENDER_OT_render(wmOperatorType *ot) { @@ -843,119 +614,3 @@ void RENDER_OT_render(wmOperatorType *ot) RNA_def_string(ot->srna, "scene", "", MAX_ID_NAME-2, "Scene", "Re-render single layer in this scene"); } -/* ****************************** opengl render *************************** */ - - -/* *********************** cancel render viewer *************** */ - -static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(op)) -{ - wmWindow *win= CTX_wm_window(C); - ScrArea *sa= CTX_wm_area(C); - SpaceImage *sima= sa->spacedata.first; - - /* test if we have a temp screen in front */ - if(CTX_wm_window(C)->screen->temp) { - wm_window_lower(CTX_wm_window(C)); - return OPERATOR_FINISHED; - } - /* determine if render already shows */ - else if(sima->flag & SI_PREVSPACE) { - sima->flag &= ~SI_PREVSPACE; - - if(sima->flag & SI_FULLWINDOW) { - sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C, sa); - } - else - ED_area_prevspace(C, sa); - - return OPERATOR_FINISHED; - } - else if(sima->flag & SI_FULLWINDOW) { - sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_toggle(C, win, sa); - return OPERATOR_FINISHED; - } - - return OPERATOR_PASS_THROUGH; -} - -void RENDER_OT_view_cancel(struct wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Cancel Render View"; - ot->description= "Cancel show render view"; - ot->idname= "RENDER_OT_view_cancel"; - - /* api callbacks */ - ot->exec= render_view_cancel_exec; - ot->poll= ED_operator_image_active; -} - -/* *********************** show render viewer *************** */ - -static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - wmWindow *wincur = CTX_wm_window(C); - - /* test if we have currently a temp screen active */ - if(wincur->screen->temp) { - wm_window_lower(wincur); - } - else { - wmWindow *win, *winshow; - ScrArea *sa= find_area_showing_r_result(C, &winshow); - - /* is there another window showing result? */ - for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) { - if(win->screen->temp || (win==winshow && winshow!=wincur)) { - wm_window_raise(win); - return OPERATOR_FINISHED; - } - } - - /* determine if render already shows */ - if(sa) { - /* but don't close it when rendering */ - if(!G.rendering) { - SpaceImage *sima= sa->spacedata.first; - - if(sima->flag & SI_PREVSPACE) { - sima->flag &= ~SI_PREVSPACE; - - if(sima->flag & SI_FULLWINDOW) { - sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C, sa); - } - else if(sima->next) { - /* workaround for case of double prevspace, render window - with a file browser on top of it (same as in ED_area_prevspace) */ - if(sima->next->spacetype == SPACE_FILE && sima->next->next) - ED_area_newspace(C, sa, sima->next->next->spacetype); - else - ED_area_newspace(C, sa, sima->next->spacetype); - ED_area_tag_redraw(sa); - } - } - } - } - else { - screen_set_image_output(C, event->x, event->y); - } - } - - return OPERATOR_FINISHED; -} - -void RENDER_OT_view_show(struct wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show/Hide Render View"; - ot->description= "Toggle show render view"; - ot->idname= "RENDER_OT_view_show"; - - /* api callbacks */ - ot->invoke= render_view_show_invoke; - ot->poll= ED_operator_screenactive; -} diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 626fbce1b2e..0a279e412f6 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -527,7 +527,7 @@ static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *eve } oglrender= op->customdata; - screen_set_image_output(C, event->x, event->y); + render_view_open(C, event->x, event->y); WM_event_add_modal_handler(C, op); oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); diff --git a/source/blender/editors/render/render_view.c b/source/blender/editors/render/render_view.c new file mode 100644 index 00000000000..64a4d47cddc --- /dev/null +++ b/source/blender/editors/render/render_view.c @@ -0,0 +1,359 @@ +/* + * $Id$ + * + * ***** 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. + * + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/render/render_view.c + * \ingroup edrend + */ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" + +#include "DNA_scene_types.h" + +#include "BKE_blender.h" +#include "BKE_context.h" +#include "BKE_image.h" +#include "BKE_global.h" +#include "BKE_main.h" +#include "BKE_node.h" +#include "BKE_report.h" +#include "BKE_screen.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "ED_screen.h" + +#include "wm_window.h" + +#include "render_intern.h" + +/*********************** utilities for finding areas *************************/ + +/* returns biggest area that is not uv/image editor. Note that it uses buttons */ +/* window as the last possible alternative. */ +static ScrArea *biggest_non_image_area(bContext *C) +{ + bScreen *sc= CTX_wm_screen(C); + ScrArea *sa, *big= NULL; + int size, maxsize= 0, bwmaxsize= 0; + short foundwin= 0; + + for(sa= sc->areabase.first; sa; sa= sa->next) { + if(sa->winx > 30 && sa->winy > 30) { + size= sa->winx*sa->winy; + if(sa->spacetype == SPACE_BUTS) { + if(foundwin == 0 && size > bwmaxsize) { + bwmaxsize= size; + big= sa; + } + } + else if(sa->spacetype != SPACE_IMAGE && size > maxsize) { + maxsize= size; + big= sa; + foundwin= 1; + } + } + } + + return big; +} + +static ScrArea *biggest_area(bContext *C) +{ + bScreen *sc= CTX_wm_screen(C); + ScrArea *sa, *big= NULL; + int size, maxsize= 0; + + for(sa= sc->areabase.first; sa; sa= sa->next) { + size= sa->winx*sa->winy; + if(size > maxsize) { + maxsize= size; + big= sa; + } + } + return big; +} + +static ScrArea *find_area_showing_r_result(bContext *C, wmWindow **win) +{ + wmWindowManager *wm= CTX_wm_manager(C); + ScrArea *sa = NULL; + SpaceImage *sima; + + /* find an imagewindow showing render result */ + for(*win=wm->windows.first; *win; *win= (*win)->next) { + for(sa= (*win)->screen->areabase.first; sa; sa= sa->next) { + if(sa->spacetype==SPACE_IMAGE) { + sima= sa->spacedata.first; + if(sima->image && sima->image->type==IMA_TYPE_R_RESULT) + break; + } + } + if(sa) + break; + } + + return sa; +} + +static ScrArea *find_area_image_empty(bContext *C) +{ + bScreen *sc= CTX_wm_screen(C); + ScrArea *sa; + SpaceImage *sima; + + /* find an imagewindow showing render result */ + for(sa=sc->areabase.first; sa; sa= sa->next) { + if(sa->spacetype==SPACE_IMAGE) { + sima= sa->spacedata.first; + if(!sima->image) + break; + } + } + + return sa; +} + +/********************** open image editor for render *************************/ + +/* new window uses x,y to set position */ +void render_view_open(bContext *C, int mx, int my) +{ + wmWindow *win= CTX_wm_window(C); + Scene *scene= CTX_data_scene(C); + ScrArea *sa= NULL; + SpaceImage *sima; + int area_was_image=0; + + if(scene->r.displaymode==R_OUTPUT_NONE) + return; + + if(scene->r.displaymode==R_OUTPUT_WINDOW) { + rcti rect; + int sizex, sizey; + + sizex= 10 + (scene->r.xsch*scene->r.size)/100; + sizey= 40 + (scene->r.ysch*scene->r.size)/100; + + /* arbitrary... miniature image window views don't make much sense */ + if(sizex < 320) sizex= 320; + if(sizey < 256) sizey= 256; + + /* XXX some magic to calculate postition */ + rect.xmin= mx + win->posx - sizex/2; + rect.ymin= my + win->posy - sizey/2; + rect.xmax= rect.xmin + sizex; + rect.ymax= rect.ymin + sizey; + + /* changes context! */ + WM_window_open_temp(C, &rect, WM_WINDOW_RENDER); + + sa= CTX_wm_area(C); + } + else if(scene->r.displaymode==R_OUTPUT_SCREEN) { + if (CTX_wm_area(C) && CTX_wm_area(C)->spacetype == SPACE_IMAGE) + area_was_image = 1; + + /* this function returns with changed context */ + ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_IMAGE); + sa= CTX_wm_area(C); + } + + if(!sa) { + sa= find_area_showing_r_result(C, &win); + if(sa==NULL) + sa= find_area_image_empty(C); + + /* if area found in other window, we make that one show in front */ + if(win && win!=CTX_wm_window(C)) + wm_window_raise(win); + + if(sa==NULL) { + /* find largest open non-image area */ + sa= biggest_non_image_area(C); + if(sa) { + ED_area_newspace(C, sa, SPACE_IMAGE); + sima= sa->spacedata.first; + + /* makes ESC go back to prev space */ + sima->flag |= SI_PREVSPACE; + } + else { + /* use any area of decent size */ + sa= biggest_area(C); + if(sa->spacetype!=SPACE_IMAGE) { + // XXX newspace(sa, SPACE_IMAGE); + sima= sa->spacedata.first; + + /* makes ESC go back to prev space */ + sima->flag |= SI_PREVSPACE; + } + } + } + } + sima= sa->spacedata.first; + + /* get the correct image, and scale it */ + sima->image= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); + + + /* if we're rendering to full screen, set appropriate hints on image editor + * so it can restore properly on pressing esc */ + if(sa->full) { + sima->flag |= SI_FULLWINDOW; + + /* Tell the image editor to revert to previous space in space list on close + * _only_ if it wasn't already an image editor when the render was invoked */ + if (area_was_image == 0) + sima->flag |= SI_PREVSPACE; + else { + /* Leave it alone so the image editor will just go back from + * full screen to the original tiled setup */ + ; + } + } +} + +/*************************** cancel render viewer **********************/ + +static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(op)) +{ + wmWindow *win= CTX_wm_window(C); + ScrArea *sa= CTX_wm_area(C); + SpaceImage *sima= sa->spacedata.first; + + /* test if we have a temp screen in front */ + if(CTX_wm_window(C)->screen->temp) { + wm_window_lower(CTX_wm_window(C)); + return OPERATOR_FINISHED; + } + /* determine if render already shows */ + else if(sima->flag & SI_PREVSPACE) { + sima->flag &= ~SI_PREVSPACE; + + if(sima->flag & SI_FULLWINDOW) { + sima->flag &= ~SI_FULLWINDOW; + ED_screen_full_prevspace(C, sa); + } + else + ED_area_prevspace(C, sa); + + return OPERATOR_FINISHED; + } + else if(sima->flag & SI_FULLWINDOW) { + sima->flag &= ~SI_FULLWINDOW; + ED_screen_full_toggle(C, win, sa); + return OPERATOR_FINISHED; + } + + return OPERATOR_PASS_THROUGH; +} + +void RENDER_OT_view_cancel(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Cancel Render View"; + ot->description= "Cancel show render view"; + ot->idname= "RENDER_OT_view_cancel"; + + /* api callbacks */ + ot->exec= render_view_cancel_exec; + ot->poll= ED_operator_image_active; +} + +/************************* show render viewer *****************/ + +static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event) +{ + wmWindow *wincur = CTX_wm_window(C); + + /* test if we have currently a temp screen active */ + if(wincur->screen->temp) { + wm_window_lower(wincur); + } + else { + wmWindow *win, *winshow; + ScrArea *sa= find_area_showing_r_result(C, &winshow); + + /* is there another window showing result? */ + for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) { + if(win->screen->temp || (win==winshow && winshow!=wincur)) { + wm_window_raise(win); + return OPERATOR_FINISHED; + } + } + + /* determine if render already shows */ + if(sa) { + /* but don't close it when rendering */ + if(!G.rendering) { + SpaceImage *sima= sa->spacedata.first; + + if(sima->flag & SI_PREVSPACE) { + sima->flag &= ~SI_PREVSPACE; + + if(sima->flag & SI_FULLWINDOW) { + sima->flag &= ~SI_FULLWINDOW; + ED_screen_full_prevspace(C, sa); + } + else if(sima->next) { + /* workaround for case of double prevspace, render window + with a file browser on top of it (same as in ED_area_prevspace) */ + if(sima->next->spacetype == SPACE_FILE && sima->next->next) + ED_area_newspace(C, sa, sima->next->next->spacetype); + else + ED_area_newspace(C, sa, sima->next->spacetype); + ED_area_tag_redraw(sa); + } + } + } + } + else { + render_view_open(C, event->x, event->y); + } + } + + return OPERATOR_FINISHED; +} + +void RENDER_OT_view_show(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show/Hide Render View"; + ot->description= "Toggle show render view"; + ot->idname= "RENDER_OT_view_show"; + + /* api callbacks */ + ot->invoke= render_view_show_invoke; + ot->poll= ED_operator_screenactive; +} + diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 2e70d8110e2..a1d4efbfe3c 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -241,7 +241,6 @@ void RE_stats_draw_cb (struct Render *re, void *handle, void (*f)(void *handle, void RE_progress_cb (struct Render *re, void *handle, void (*f)(void *handle, float)); void RE_draw_lock_cb (struct Render *re, void *handle, void (*f)(void *handle, int)); void RE_test_break_cb (struct Render *re, void *handle, int (*f)(void *handle)); -void RE_error_cb (struct Render *re, void *handle, void (*f)(void *handle, const char *str)); /* should move to kernel once... still unsure on how/where */ float RE_filter_value(int type, float x); @@ -263,7 +262,7 @@ void RE_DataBase_GetView(struct Render *re, float mat[][4]); void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]); struct Scene *RE_GetScene(struct Render *re); -int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, void *erh, void (*error)(void *handle, const char *str)); +int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports); #endif /* RE_PIPELINE_H */ diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 30b8930eb52..f48f8bab22e 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -253,9 +253,6 @@ struct Render int (*test_break)(void *handle); void *tbh; - void (*error)(void *handle, const char *str); - void *erh; - RenderStats i; struct ReportList *reports; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index ebc5794881f..347bfd60f1c 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -141,7 +141,6 @@ 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 void print_error(void *UNUSED(arg), const char *str) {printf("ERROR: %s\n", str);} static int default_break(void *UNUSED(arg)) {return G.afbreek == 1;} static void stats_background(void *UNUSED(arg), RenderStats *rs) @@ -1200,13 +1199,12 @@ void RE_InitRenderCB(Render *re) re->display_draw= result_rcti_nothing; re->progress= float_nothing; re->test_break= default_break; - re->error= print_error; if(G.background) re->stats_draw= stats_background; else re->stats_draw= stats_nothing; /* clear callback handles */ - re->dih= re->dch= re->ddh= re->sdh= re->prh= re->tbh= re->erh= NULL; + re->dih= re->dch= re->ddh= re->sdh= re->prh= re->tbh= NULL; } /* only call this while you know it will remove the link too */ @@ -1261,7 +1259,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer * if(re->rectx < 2 || re->recty < 2 || (BKE_imtype_is_movie(rd->imtype) && (re->rectx < 16 || re->recty < 16) )) { - re->error(re->erh, "Image too small"); + BKE_report(re->reports, RPT_ERROR, "Image too small"); re->ok= 0; return; } @@ -1427,11 +1425,6 @@ void RE_test_break_cb(Render *re, void *handle, int (*f)(void *handle)) re->test_break= f; re->tbh= handle; } -void RE_error_cb(Render *re, void *handle, void (*f)(void *handle, const char *str)) -{ - re->error= f; - re->erh= handle; -} /* ********* add object data (later) ******** */ @@ -2715,14 +2708,14 @@ static int check_valid_camera(Scene *scene, Object *camera_override) return 1; } -int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, void (*error)(void *handle, const char *str)) +int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *reports) { SceneRenderLayer *srl; if(scene->r.mode & R_BORDER) { if(scene->r.border.xmax <= scene->r.border.xmin || scene->r.border.ymax <= scene->r.border.ymin) { - error(erh, "No border area selected."); + BKE_report(reports, RPT_ERROR, "No border area selected."); return 0; } } @@ -2733,13 +2726,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo scene_unique_exr_name(scene, str, 0); if (BLI_is_writable(str)==0) { - error(erh, "Can not save render buffers, check the temp default path"); + BKE_report(reports, RPT_ERROR, "Can not save render buffers, check the temp default path"); return 0; } /* no fullsample and edge */ if((scene->r.scemode & R_FULL_SAMPLE) && (scene->r.mode & R_EDGE)) { - error(erh, "Full Sample doesn't support Edge Enhance"); + BKE_report(reports, RPT_ERROR, "Full Sample doesn't support Edge Enhance"); return 0; } @@ -2753,7 +2746,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo bNode *node; if(ntree==NULL) { - error(erh, "No Nodetree in Scene"); + BKE_report(reports, RPT_ERROR, "No Nodetree in Scene"); return 0; } @@ -2762,13 +2755,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo break; if(node==NULL) { - error(erh, "No Render Output Node in Scene"); + BKE_report(reports, RPT_ERROR, "No Render Output Node in Scene"); return 0; } if(scene->r.scemode & R_FULL_SAMPLE) { if(composite_needs_render(scene)==0) { - error(erh, "Full Sample AA not supported without 3d rendering"); + BKE_report(reports, RPT_ERROR, "Full Sample AA not supported without 3d rendering"); return 0; } } @@ -2777,7 +2770,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo /* check valid camera, without camera render is OK (compo, seq) */ if(!check_valid_camera(scene, camera_override)) { - error(erh, "No camera"); + BKE_report(reports, RPT_ERROR, "No camera"); return 0; } @@ -2787,7 +2780,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo /* forbidden combinations */ if(scene->r.mode & R_PANORAMA) { if(scene->r.mode & R_ORTHO) { - error(erh, "No Ortho render possible for Panorama"); + BKE_report(reports, RPT_ERROR, "No Ortho render possible for Panorama"); return 0; } } @@ -2803,13 +2796,13 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, void *erh, vo if(!(srl->layflag & SCE_LAY_DISABLE)) break; if(srl==NULL) { - error(erh, "All RenderLayers are disabled"); + BKE_report(reports, RPT_ERROR, "All RenderLayers are disabled"); return 0; } /* renderer */ if(!ELEM(scene->r.renderer, R_INTERN, R_YAFRAY)) { - error(erh, "Unknown render engine set"); + BKE_report(reports, RPT_ERROR, "Unknown render engine set"); return 0; } -- cgit v1.2.3 From a532b9fa3e192c583611d43e45abadb85b38881e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 18 May 2011 19:30:28 +0000 Subject: Cycles: 3d view tool properties entry in view menu. --- release/scripts/startup/bl_ui/space_view3d.py | 1 + source/blender/editors/space_view3d/space_view3d.c | 19 +++++++--- .../blender/editors/space_view3d/view3d_intern.h | 3 +- source/blender/editors/space_view3d/view3d_ops.c | 1 + .../blender/editors/space_view3d/view3d_toolbar.c | 42 ++++++++++++++++++++-- 5 files changed, 57 insertions(+), 9 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index e6ce1d4c179..2cba1ac1ece 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -279,6 +279,7 @@ class VIEW3D_MT_view(bpy.types.Menu): layout.operator("view3d.properties", icon='MENU_PANEL') layout.operator("view3d.toolshelf", icon='MENU_PANEL') + layout.operator("view3d.tool_properties", icon='MENU_PANEL') layout.separator() diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 62f3d762e22..02aed0e3a4a 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -95,7 +95,7 @@ ARegion *view3d_has_buttons_region(ScrArea *sa) return arnew; } -ARegion *view3d_has_tools_region(ScrArea *sa) +void view3d_has_tools_region(ScrArea *sa, ARegion **r_artool, ARegion **r_arprops) { ARegion *ar, *artool=NULL, *arprops=NULL, *arhead; @@ -107,7 +107,11 @@ ARegion *view3d_has_tools_region(ScrArea *sa) } /* tool region hide/unhide also hides props */ - if(arprops && artool) return artool; + if(arprops && artool) { + *r_artool= artool; + *r_arprops= arprops; + return; + } if(artool==NULL) { /* add subdiv level; after header */ @@ -116,7 +120,11 @@ ARegion *view3d_has_tools_region(ScrArea *sa) break; /* is error! */ - if(arhead==NULL) return NULL; + if(arhead==NULL) { + *r_artool= NULL; + *r_arprops= NULL; + return; + } artool= MEM_callocN(sizeof(ARegion), "tools for view3d"); @@ -134,8 +142,9 @@ ARegion *view3d_has_tools_region(ScrArea *sa) arprops->regiontype= RGN_TYPE_TOOL_PROPS; arprops->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; } - - return artool; + + *r_artool= artool; + *r_arprops= arprops; } /* ****************************************************** */ diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 717e46800b1..503d1ffd891 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -174,6 +174,7 @@ void view3d_buttons_register(struct ARegionType *art); /* view3d_toolbar.c */ void VIEW3D_OT_toolshelf(struct wmOperatorType *ot); +void VIEW3D_OT_tool_properties(struct wmOperatorType *ot); void view3d_toolshelf_register(struct ARegionType *art); void view3d_tool_props_register(struct ARegionType *art); @@ -189,7 +190,7 @@ void VIEW3D_OT_snap_cursor_to_active(struct wmOperatorType *ot); /* space_view3d.c */ ARegion *view3d_has_buttons_region(ScrArea *sa); -ARegion *view3d_has_tools_region(ScrArea *sa); +void view3d_has_tools_region(ScrArea *sa, ARegion **artool, ARegion **arprops); extern const char *view3d_context_dir[]; /* doc access */ diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 4942030c516..94f77b18667 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -94,6 +94,7 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_properties); WM_operatortype_append(VIEW3D_OT_toolshelf); + WM_operatortype_append(VIEW3D_OT_tool_properties); WM_operatortype_append(VIEW3D_OT_snap_selected_to_grid); WM_operatortype_append(VIEW3D_OT_snap_selected_to_cursor); diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index 7fad19f16a6..56bfb3c2273 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -257,10 +257,12 @@ void view3d_tool_props_register(ARegionType *art) static int view3d_toolshelf(bContext *C, wmOperator *UNUSED(op)) { ScrArea *sa= CTX_wm_area(C); - ARegion *ar= view3d_has_tools_region(sa); + ARegion *artool, *arprops; - if(ar) - ED_region_toggle_hidden(C, ar); + view3d_has_tools_region(sa, &artool, &arprops); + + if(artool) + ED_region_toggle_hidden(C, artool); return OPERATOR_FINISHED; } @@ -277,3 +279,37 @@ void VIEW3D_OT_toolshelf(wmOperatorType *ot) /* flags */ ot->flag= 0; } + +/* ********** operator to open/close toolshelf region */ + +static int view3d_tool_properties(bContext *C, wmOperator *UNUSED(op)) +{ + ScrArea *sa= CTX_wm_area(C); + ARegion *artool, *arprops; + + view3d_has_tools_region(sa, &artool, &arprops); + + if(artool && (artool->flag & RGN_FLAG_HIDDEN)) { + ED_region_toggle_hidden(C, artool); + + if(arprops && (arprops->flag & RGN_FLAG_HIDDEN)) + ED_region_toggle_hidden(C, arprops); + } + else if(arprops) + ED_region_toggle_hidden(C, arprops); + + return OPERATOR_FINISHED; +} + +void VIEW3D_OT_tool_properties(wmOperatorType *ot) +{ + ot->name= "Tool Properties"; + ot->description= "Toggles tool properties display"; + ot->idname= "VIEW3D_OT_tool_properties"; + + ot->exec= view3d_tool_properties; + ot->poll= ED_operator_view3d_active; + + /* flags */ + ot->flag= 0; +} -- cgit v1.2.3 From 74cccd1566e0e82a0f34d3ea1cab449cecfcbfd5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 18 May 2011 19:34:17 +0000 Subject: Cycles: get rid of (+) icon for region open, all regions already accesible through shortcut key or view menu. --- source/blender/editors/screen/area.c | 81 ++++-------------------------------- 1 file changed, 9 insertions(+), 72 deletions(-) diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 75dabd8aedb..b97911eb6b3 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -479,84 +479,21 @@ static void region_azone_edge(AZone *az, ARegion *ar) BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); } -static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar) -{ - AZone *azt; - int tot=0; - - /* count how many actionzones with along same edge are available. - This allows for adding more action zones in the future without - having to worry about correct offset */ - for(azt= sa->actionzones.first; azt; azt= azt->next) { - if(azt->edge == az->edge) tot++; - } - - switch(az->edge) { - case AE_TOP_TO_BOTTOMRIGHT: - az->x1= ar->winrct.xmax - tot*2*AZONEPAD_ICON; - az->y1= ar->winrct.ymax + AZONEPAD_ICON; - az->x2= ar->winrct.xmax - tot*AZONEPAD_ICON; - az->y2= ar->winrct.ymax + 2*AZONEPAD_ICON; - break; - case AE_BOTTOM_TO_TOPLEFT: - az->x1= ar->winrct.xmin + AZONEPAD_ICON; - az->y1= ar->winrct.ymin - 2*AZONEPAD_ICON; - az->x2= ar->winrct.xmin + 2*AZONEPAD_ICON; - az->y2= ar->winrct.ymin - AZONEPAD_ICON; - break; - case AE_LEFT_TO_TOPRIGHT: - az->x1= ar->winrct.xmin - 2*AZONEPAD_ICON; - az->y1= ar->winrct.ymax - tot*2*AZONEPAD_ICON; - az->x2= ar->winrct.xmin - AZONEPAD_ICON; - az->y2= ar->winrct.ymax - tot*AZONEPAD_ICON; - break; - case AE_RIGHT_TO_TOPLEFT: - az->x1= ar->winrct.xmax + AZONEPAD_ICON; - az->y1= ar->winrct.ymax - tot*2*AZONEPAD_ICON; - az->x2= ar->winrct.xmax + 2*AZONEPAD_ICON; - az->y2= ar->winrct.ymax - tot*AZONEPAD_ICON; - break; - } - - BLI_init_rcti(&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) { - if(az!=azt) { - if( ABS(az->x1-azt->x1) < 2 && ABS(az->y1-azt->y1) < 2) { - if(az->edge==AE_TOP_TO_BOTTOMRIGHT || az->edge==AE_BOTTOM_TO_TOPLEFT) { - az->x1+= AZONESPOT; - az->x2+= AZONESPOT; - } - else{ - az->y1-= AZONESPOT; - az->y2-= AZONESPOT; - } - BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); - } - } - } -} - static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge) { - AZone *az; - - az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone"); - BLI_addtail(&(sa->actionzones), az); - az->type= AZONE_REGION; - az->ar= ar; - az->edge= edge; - - if (ar->flag & RGN_FLAG_HIDDEN) { - region_azone_icon(sa, az, ar); - } else { + if(!(ar->flag & RGN_FLAG_HIDDEN)) { + AZone *az; + + az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone"); + BLI_addtail(&(sa->actionzones), az); + az->type= AZONE_REGION; + az->ar= ar; + az->edge= edge; + region_azone_edge(az, ar); } - } - /* *************************************************************** */ static void region_azone_add(ScrArea *sa, ARegion *ar, int alignment) -- cgit v1.2.3 From 63d4bafff57392ffd81d686a7ccdd4fbdf863c97 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 20 May 2011 12:26:01 +0000 Subject: Cycles: some steps to getting OpenCL backend to compile. --- intern/cycles/device/device_opencl.cpp | 54 ++++-- intern/cycles/kernel/CMakeLists.txt | 23 ++- intern/cycles/kernel/kernel.cl | 82 ++++------ intern/cycles/kernel/kernel_compat_cuda.h | 2 +- intern/cycles/kernel/kernel_compat_opencl.h | 15 +- intern/cycles/kernel/kernel_globals.h | 200 +++++------------------ intern/cycles/kernel/kernel_light.h | 4 +- intern/cycles/kernel/kernel_textures.h | 153 +++++++++++++++++ intern/cycles/kernel/kernel_triangle.h | 50 +++--- intern/cycles/kernel/kernel_types.h | 21 ++- intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h | 4 +- intern/cycles/kernel/svm/bsdf_diffuse.h | 8 +- intern/cycles/kernel/svm/bsdf_microfacet.h | 16 +- intern/cycles/kernel/svm/bsdf_ward.h | 4 +- intern/cycles/kernel/svm/bsdf_westin.h | 8 +- intern/cycles/kernel/svm/svm_blend.h | 2 +- intern/cycles/kernel/svm/svm_displace.h | 5 +- intern/cycles/kernel/svm/svm_distorted_noise.h | 5 +- intern/cycles/kernel/svm/svm_image.h | 18 +- intern/cycles/kernel/svm/svm_mix.h | 26 ++- intern/cycles/kernel/svm/svm_sky.h | 2 +- intern/cycles/kernel/svm/svm_texture.h | 2 +- intern/cycles/kernel/svm/svm_types.h | 80 ++++----- intern/cycles/util/util_color.h | 4 + intern/cycles/util/util_math.h | 6 +- 25 files changed, 448 insertions(+), 346 deletions(-) create mode 100644 intern/cycles/kernel/kernel_textures.h diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 6b564d10e78..ef416dfb8dc 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -55,6 +55,7 @@ public: cl_int ciErr; map*> const_mem_map; map mem_map; + device_ptr null_mem; const char *opencl_error_string(cl_int err) { @@ -125,10 +126,10 @@ public: ciErr = clGetPlatformIDs(1, &cpPlatform, NULL); opencl_assert(ciErr); - ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU, 1, &cdDevice, NULL); + ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_CPU, 1, &cdDevice, NULL); opencl_assert(ciErr); - cxGPUContext = clCreateContext(0, 1, &cdDevice, NULL /*clLogMessagesToStdoutAPPLE */, NULL, &ciErr); + cxGPUContext = clCreateContext(0, 1, &cdDevice, NULL, NULL, &ciErr); opencl_assert(ciErr); cqCommandQueue = clCreateCommandQueue(cxGPUContext, cdDevice, 0, &ciErr); @@ -137,10 +138,16 @@ public: /* compile kernel */ string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); size_t source_len = source.size(); - string build_options = "-I ../kernel -I ../util -Werror -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END="; //" + path_get("kernel") + " -Werror"; - //printf("path %s\n", path_get("kernel").c_str()); - //clUnloadCompiler(); + string build_options = ""; + + //string csource = "../blender/intern/cycles"; + //build_options += "-I " + csource + "/kernel -I " + csource + "/util"; + + build_options += " -I " + path_get("kernel"); /* todo: escape path */ + + build_options += " -Werror"; + build_options += " -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END="; cpProgram = clCreateProgramWithSource(cxGPUContext, 1, (const char **)&source, &source_len, &ciErr); @@ -170,10 +177,15 @@ public: opencl_assert(ciErr); ckFilmConvertKernel = clCreateKernel(cpProgram, "kernel_ocl_tonemap", &ciErr); opencl_assert(ciErr); + + null_mem = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); } ~OpenCLDevice() { + + clReleaseMemObject(CL_MEM_PTR(null_mem)); + map*>::iterator mt; for(mt = const_mem_map.begin(); mt != const_mem_map.end(); mt++) { mem_free(*(mt->second)); @@ -261,6 +273,7 @@ public: void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) { mem_alloc(mem, MEM_READ_ONLY); + mem_copy_to(mem); mem_map[name] = &mem; } @@ -295,6 +308,11 @@ public: ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_data), (void*)&d_data); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_buffer), (void*)&d_buffer); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_rng_state), (void*)&d_rng_state); + +#define KERNEL_TEX(type, ttype, name) \ + ciErr |= set_kernel_arg_mem(ckPathTraceKernel, &narg, #name); +#include "kernel_textures.h" + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_pass), (void*)&d_pass); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_x), (void*)&d_x); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_y), (void*)&d_y); @@ -314,10 +332,20 @@ public: cl_int set_kernel_arg_mem(cl_kernel kernel, int *narg, const char *name) { - device_memory *mem = mem_map[name]; - cl_mem ptr = CL_MEM_PTR(mem->device_pointer); - cl_int size = mem->data_width; - cl_int err = 0; + cl_mem ptr; + cl_int size, err = 0; + + if(mem_map.find(name) != mem_map.end()) { + device_memory *mem = mem_map[name]; + + ptr = CL_MEM_PTR(mem->device_pointer); + size = mem->data_width; + } + else { + /* work around NULL not working, even though the spec says otherwise */ + ptr = CL_MEM_PTR(null_mem); + size = 1; + } err |= clSetKernelArg(kernel, (*narg)++, sizeof(ptr), (void*)&ptr); opencl_assert(err); @@ -347,9 +375,11 @@ public: ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_data), (void*)&d_data); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_rgba), (void*)&d_rgba); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_buffer), (void*)&d_buffer); - ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_R"); - ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_G"); - ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, "__response_curve_B"); + +#define KERNEL_TEX(type, ttype, name) \ + ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, #name); +#include "kernel_textures.h" + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_pass), (void*)&d_pass); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_resolution), (void*)&d_resolution); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_x), (void*)&d_x); diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index f1aa1db9e8c..bc1f8bd40a5 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -25,8 +25,11 @@ SET(headers kernel_qbvh.h kernel_random.h kernel_shader.h + kernel_textures.h kernel_triangle.h - kernel_types.h + kernel_types.h) + +SET(svm_headers svm/bsdf.h svm/bsdf_ashikhmin_velvet.h svm/bsdf_diffuse.h @@ -78,7 +81,7 @@ ELSE() ENDIF() IF(WITH_CYCLES_CUDA) - SET(cuda_sources kernel.cu ${headers}) + SET(cuda_sources kernel.cu ${headers} ${svm_headers}) SET(cuda_cubins) FOREACH(arch ${CYCLES_CUDA_ARCH}) @@ -106,9 +109,23 @@ ENDIF() INCLUDE_DIRECTORIES(. ../util osl svm) -ADD_LIBRARY(cycles_kernel ${sources} ${headers}) +ADD_LIBRARY(cycles_kernel ${sources} ${headers} ${svm_headers}) IF(WITH_CYCLES_CUDA) ADD_DEPENDENCIES(cycles_kernel cycles_kernel_cuda) ENDIF() +# OPENCL kernel + +IF(WITH_CYCLES_OPENCL) + SET(util_headers + ../util/util_color.h + ../util/util_math.h + ../util/util_transform.h + ../util/util_types.h) + + INSTALL(FILES kernel.cl ${headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) + INSTALL(FILES ${svm_headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel/svm) + INSTALL(FILES ${util_headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) +ENDIF() + diff --git a/intern/cycles/kernel/kernel.cl b/intern/cycles/kernel/kernel.cl index a22db5fe040..e1a9b3a0696 100644 --- a/intern/cycles/kernel/kernel.cl +++ b/intern/cycles/kernel/kernel.cl @@ -23,71 +23,61 @@ #include "kernel_types.h" #include "kernel_globals.h" -typedef struct KernelGlobals { - __constant KernelData *data; - - __global float *__response_curve_R; - int __response_curve_R_width; - - __global float *__response_curve_G; - int __response_curve_G_width; - - __global float *__response_curve_B; - int __response_curve_B_width; -} KernelGlobals; - #include "kernel_film.h" -//#include "kernel_path.h" +#include "kernel_path.h" //#include "kernel_displace.h" -__kernel void kernel_ocl_path_trace(__constant KernelData *data, __global float4 *buffer, __global uint *rng_state, int pass, int sx, int sy, int sw, int sh) +__kernel void kernel_ocl_path_trace( + __constant KernelData *data, + __global float4 *buffer, + __global uint *rng_state, + +#define KERNEL_TEX(type, ttype, name) \ + __global type *name, \ + int name##_width, +#include "kernel_textures.h" + + int pass, + int sx, int sy, int sw, int sh) { KernelGlobals kglobals, *kg = &kglobals; + kg->data = data; - int x = get_global_id(0); - int y = get_global_id(1); +#define KERNEL_TEX(type, ttype, name) \ + kg->name = name; \ + kg->name##_width = name##_width; +#include "kernel_textures.h" + + int x = sx + get_global_id(0); + int y = sy + get_global_id(1); int w = kernel_data.cam.width; - if(x < sx + sw && y < sy + sh) { - if(pass == 0) { - buffer[x + w*y].x = 0.5f; - buffer[x + w*y].y = 0.5f; - buffer[x + w*y].z = 0.5f; - } - else { - buffer[x + w*y].x += 0.5f; - buffer[x + w*y].y += 0.5f; - buffer[x + w*y].z += 0.5f; - } - - //= make_float3(1.0f, 0.9f, 0.0f); - //kernel_path_trace(buffer, rng_state, pass, x, y); - } + if(x < sx + sw && y < sy + sh) + kernel_path_trace(kg, buffer, rng_state, pass, x, y); } __kernel void kernel_ocl_tonemap( __constant KernelData *data, __global uchar4 *rgba, __global float4 *buffer, - __global float *__response_curve_R, - int __response_curve_R_width, - __global float *__response_curve_G, - int __response_curve_G_width, - __global float *__response_curve_B, - int __response_curve_B_width, + +#define KERNEL_TEX(type, ttype, name) \ + __global type *name, \ + int name##_width, +#include "kernel_textures.h" + int pass, int resolution, int sx, int sy, int sw, int sh) { KernelGlobals kglobals, *kg = &kglobals; kg->data = data; - kg->__response_curve_R = __response_curve_R; - kg->__response_curve_R_width = __response_curve_R_width; - kg->__response_curve_G = __response_curve_G; - kg->__response_curve_G_width = __response_curve_G_width; - kg->__response_curve_B = __response_curve_B; - kg->__response_curve_B_width = __response_curve_B_width; + +#define KERNEL_TEX(type, ttype, name) \ + kg->name = name; \ + kg->name##_width = name##_width; +#include "kernel_textures.h" int x = sx + get_global_id(0); int y = sy + get_global_id(1); @@ -96,10 +86,10 @@ __kernel void kernel_ocl_tonemap( kernel_film_tonemap(kg, rgba, buffer, pass, resolution, x, y); } -__kernel void kernel_ocl_displace(__global uint4 *input, __global float3 *offset, int sx) +/*__kernel void kernel_ocl_displace(__global uint4 *input, __global float3 *offset, int sx) { int x = sx + get_global_id(0); kernel_displace(input, offset, x); -} +}*/ diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h index 99c1df1fb1a..b7b29d46323 100644 --- a/intern/cycles/kernel/kernel_compat_cuda.h +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -35,7 +35,7 @@ CCL_NAMESPACE_BEGIN #define __device_inline __device__ __inline__ #define __global #define __shared __shared__ -#define __constant __constant__ +#define __constant /* No assert supported for CUDA */ diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index 16ddca5305b..e6e54850605 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -29,6 +29,8 @@ CCL_NAMESPACE_BEGIN #define __device #define __device_inline +#define kernel_assert(cond) + __device float kernel_tex_interp_(__global float *data, int width, float x) { x = clamp(x, 0.0f, 1.0f)*width; @@ -40,9 +42,20 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) return (1.0f - t)*data[index] + t*data[nindex]; } +#define make_float3(x, y, z) ((float3)(x, y, z)) /* todo 1.1 */ + +#define __uint_as_float(x) as_float(x) +#define __float_as_uint(x) as_uint(x) +#define __int_as_float(x) as_float(x) +#define __float_as_int(x) as_int(x) + #define kernel_data (*kg->data) #define kernel_tex_interp(t, x) \ - kernel_tex_interp_(kg->t, kg->t##_width, x); + kernel_tex_interp_(kg->t, kg->t##_width, x) +#define kernel_tex_fetch(t, index) \ + kg->t[index] + +#define NULL 0 CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h index 4c4f35bb508..720a9f28fa1 100644 --- a/intern/cycles/kernel/kernel_globals.h +++ b/intern/cycles/kernel/kernel_globals.h @@ -18,190 +18,66 @@ /* Constant Globals */ -#ifdef __KERNEL_CPU__ - -#ifdef WITH_OSL -#include "osl_globals.h" -#endif - CCL_NAMESPACE_BEGIN /* On the CPU, we pass along the struct KernelGlobals to nearly everywhere in the kernel, to access constant data. These are all stored as "textures", but these are really just standard arrays. We can't use actually globals because multiple renders may be running inside the same process. */ -typedef struct KernelGlobals { -#else +#ifdef __KERNEL_CPU__ -/* On the GPU, constant memory textures must be globals, so we can't put them - into a struct. As a result we don't actually use this struct and use actual - globals and simply pass along a NULL pointer everywhere, which we hope gets - optimized out. */ -#ifdef __KERNEL_CUDA__ -typedef struct KernelGlobals {} KernelGlobals; +#ifdef WITH_OSL +//#include "osl_globals.h" #endif +typedef struct KernelGlobals { + +#define KERNEL_TEX(type, ttype, name) ttype name; +#define KERNEL_IMAGE_TEX(type, ttype, name) ttype name; +#include "kernel_textures.h" + + KernelData __data; + +#ifdef WITH_OSL + /* On the CPU, we also have the OSL globals here. Most data structures are shared + with SVM, the difference is in the shaders and object/mesh attributes. */ + //OSLGlobals osl; #endif -/* globals */ -__constant KernelData __data; - -#ifndef __KERNEL_OPENCL__ - -/* bvh */ -texture_float4 __bvh_nodes; -texture_float4 __tri_woop; -texture_uint __prim_index; -texture_uint __prim_object; -texture_uint __object_node; - -/* objects */ -texture_float4 __objects; - -/* triangles */ -texture_float4 __tri_normal; -texture_float4 __tri_vnormal; -texture_float4 __tri_vindex; -texture_float4 __tri_verts; - -/* attributes */ -texture_uint4 __attributes_map; -texture_float __attributes_float; -texture_float4 __attributes_float3; - -/* lights */ -texture_float4 __light_distribution; -texture_float4 __light_point; - -/* shaders */ -texture_uint4 __svm_nodes; - -/* camera/film */ -texture_float __filter_table; -texture_float __response_curve_R; -texture_float __response_curve_G; -texture_float __response_curve_B; - -/* sobol */ -texture_uint __sobol_directions; - -/* image */ -texture_image_uchar4 __tex_image_000; -texture_image_uchar4 __tex_image_001; -texture_image_uchar4 __tex_image_002; -texture_image_uchar4 __tex_image_003; -texture_image_uchar4 __tex_image_004; -texture_image_uchar4 __tex_image_005; -texture_image_uchar4 __tex_image_006; -texture_image_uchar4 __tex_image_007; -texture_image_uchar4 __tex_image_008; -texture_image_uchar4 __tex_image_009; -texture_image_uchar4 __tex_image_010; -texture_image_uchar4 __tex_image_011; -texture_image_uchar4 __tex_image_012; -texture_image_uchar4 __tex_image_013; -texture_image_uchar4 __tex_image_014; -texture_image_uchar4 __tex_image_015; -texture_image_uchar4 __tex_image_016; -texture_image_uchar4 __tex_image_017; -texture_image_uchar4 __tex_image_018; -texture_image_uchar4 __tex_image_019; -texture_image_uchar4 __tex_image_020; -texture_image_uchar4 __tex_image_021; -texture_image_uchar4 __tex_image_022; -texture_image_uchar4 __tex_image_023; -texture_image_uchar4 __tex_image_024; -texture_image_uchar4 __tex_image_025; -texture_image_uchar4 __tex_image_026; -texture_image_uchar4 __tex_image_027; -texture_image_uchar4 __tex_image_028; -texture_image_uchar4 __tex_image_029; -texture_image_uchar4 __tex_image_030; -texture_image_uchar4 __tex_image_031; -texture_image_uchar4 __tex_image_032; -texture_image_uchar4 __tex_image_033; -texture_image_uchar4 __tex_image_034; -texture_image_uchar4 __tex_image_035; -texture_image_uchar4 __tex_image_036; -texture_image_uchar4 __tex_image_037; -texture_image_uchar4 __tex_image_038; -texture_image_uchar4 __tex_image_039; -texture_image_uchar4 __tex_image_040; -texture_image_uchar4 __tex_image_041; -texture_image_uchar4 __tex_image_042; -texture_image_uchar4 __tex_image_043; -texture_image_uchar4 __tex_image_044; -texture_image_uchar4 __tex_image_045; -texture_image_uchar4 __tex_image_046; -texture_image_uchar4 __tex_image_047; -texture_image_uchar4 __tex_image_048; -texture_image_uchar4 __tex_image_049; -texture_image_uchar4 __tex_image_050; -texture_image_uchar4 __tex_image_051; -texture_image_uchar4 __tex_image_052; -texture_image_uchar4 __tex_image_053; -texture_image_uchar4 __tex_image_054; -texture_image_uchar4 __tex_image_055; -texture_image_uchar4 __tex_image_056; -texture_image_uchar4 __tex_image_057; -texture_image_uchar4 __tex_image_058; -texture_image_uchar4 __tex_image_059; -texture_image_uchar4 __tex_image_060; -texture_image_uchar4 __tex_image_061; -texture_image_uchar4 __tex_image_062; -texture_image_uchar4 __tex_image_063; -texture_image_uchar4 __tex_image_064; -texture_image_uchar4 __tex_image_065; -texture_image_uchar4 __tex_image_066; -texture_image_uchar4 __tex_image_067; -texture_image_uchar4 __tex_image_068; -texture_image_uchar4 __tex_image_069; -texture_image_uchar4 __tex_image_070; -texture_image_uchar4 __tex_image_071; -texture_image_uchar4 __tex_image_072; -texture_image_uchar4 __tex_image_073; -texture_image_uchar4 __tex_image_074; -texture_image_uchar4 __tex_image_075; -texture_image_uchar4 __tex_image_076; -texture_image_uchar4 __tex_image_077; -texture_image_uchar4 __tex_image_078; -texture_image_uchar4 __tex_image_079; -texture_image_uchar4 __tex_image_080; -texture_image_uchar4 __tex_image_081; -texture_image_uchar4 __tex_image_082; -texture_image_uchar4 __tex_image_083; -texture_image_uchar4 __tex_image_084; -texture_image_uchar4 __tex_image_085; -texture_image_uchar4 __tex_image_086; -texture_image_uchar4 __tex_image_087; -texture_image_uchar4 __tex_image_088; -texture_image_uchar4 __tex_image_089; -texture_image_uchar4 __tex_image_090; -texture_image_uchar4 __tex_image_091; -texture_image_uchar4 __tex_image_092; -texture_image_uchar4 __tex_image_093; -texture_image_uchar4 __tex_image_094; -texture_image_uchar4 __tex_image_095; -texture_image_uchar4 __tex_image_096; -texture_image_uchar4 __tex_image_097; -texture_image_uchar4 __tex_image_098; -texture_image_uchar4 __tex_image_099; +} KernelGLobals; #endif -#ifdef __KERNEL_CPU__ +/* For CUDA, constant memory textures must be globals, so we can't put them + into a struct. As a result we don't actually use this struct and use actual + globals and simply pass along a NULL pointer everywhere, which we hope gets + optimized out. */ -#ifdef WITH_OSL +#ifdef __KERNEL_CUDA__ -/* On the CPU, we also have the OSL globals here. Most data structures are shared - with SVM, the difference is in the shaders and object/mesh attributes. */ +__constant__ KernelData __data; +typedef struct KernelGlobals {} KernelGlobals; -OSLGlobals osl; +#define KERNEL_TEX(type, ttype, name) ttype name; +#define KERNEL_IMAGE_TEX(type, ttype, name) ttype name; +#include "kernel_textures.h" #endif +/* OpenCL */ + +#ifdef __KERNEL_OPENCL__ + +typedef struct KernelGlobals { + __constant KernelData *data; + +#define KERNEL_TEX(type, ttype, name) \ + __global type *name; \ + int name##_width; +#include "kernel_textures.h" } KernelGlobals; + #endif CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h index 537f7ea00f0..5164e5deea2 100644 --- a/intern/cycles/kernel/kernel_light.h +++ b/intern/cycles/kernel/kernel_light.h @@ -18,14 +18,14 @@ CCL_NAMESPACE_BEGIN -struct LightSample { +typedef struct LightSample { float3 P; float3 Ng; int object; int prim; int shader; float weight; -}; +} LightSample; /* Point Light */ diff --git a/intern/cycles/kernel/kernel_textures.h b/intern/cycles/kernel/kernel_textures.h new file mode 100644 index 00000000000..bd44ed7eee5 --- /dev/null +++ b/intern/cycles/kernel/kernel_textures.h @@ -0,0 +1,153 @@ + +#ifndef KERNEL_TEX +#define KERNEL_TEX(type, ttype, name) +#endif + +#ifndef KERNEL_IMAGE_TEX +#define KERNEL_IMAGE_TEX(type, ttype, name) +#endif + + +/* bvh */ +KERNEL_TEX(float4, texture_float4, __bvh_nodes) +KERNEL_TEX(float4, texture_float4, __tri_woop) +KERNEL_TEX(uint, texture_uint, __prim_index) +KERNEL_TEX(uint, texture_uint, __prim_object) +KERNEL_TEX(uint, texture_uint, __object_node) + +/* objects */ +KERNEL_TEX(float4, texture_float4, __objects) + +/* triangles */ +KERNEL_TEX(float4, texture_float4, __tri_normal) +KERNEL_TEX(float4, texture_float4, __tri_vnormal) +KERNEL_TEX(float4, texture_float4, __tri_vindex) +KERNEL_TEX(float4, texture_float4, __tri_verts) + +/* attributes */ +KERNEL_TEX(uint4, texture_uint4, __attributes_map) +KERNEL_TEX(float, texture_float, __attributes_float) +KERNEL_TEX(float4, texture_float4, __attributes_float3) + +/* lights */ +KERNEL_TEX(float4, texture_float4, __light_distribution) +KERNEL_TEX(float4, texture_float4, __light_point) + +/* shaders */ +KERNEL_TEX(uint4, texture_uint4, __svm_nodes) + +/* camera/film */ +KERNEL_TEX(float, texture_float, __filter_table) +KERNEL_TEX(float, texture_float, __response_curve_R) +KERNEL_TEX(float, texture_float, __response_curve_G) +KERNEL_TEX(float, texture_float, __response_curve_B) + +/* sobol */ +KERNEL_TEX(uint, texture_uint, __sobol_directions) + +/* 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) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_008) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_009) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_010) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_011) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_012) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_013) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_014) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_015) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_016) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_017) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_018) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_019) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_020) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_021) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_022) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_023) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_024) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_025) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_026) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_027) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_028) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_029) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_030) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_031) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_032) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_033) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_034) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_035) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_036) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_037) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_038) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_039) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_040) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_041) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_042) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_043) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_044) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_045) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_046) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_047) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_048) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_049) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_050) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_051) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_052) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_053) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_054) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_055) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_056) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_057) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_058) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_059) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_060) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_061) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_062) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_063) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_064) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_065) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_066) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_067) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_068) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_069) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_070) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_071) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_072) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_073) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_074) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_075) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_076) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_077) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_078) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_079) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_080) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_081) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_082) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_083) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_084) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_085) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_086) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_087) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_088) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_089) +KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_090) +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) +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) + +#undef KERNEL_TEX +#undef KERNEL_IMAGE_TEX + + diff --git a/intern/cycles/kernel/kernel_triangle.h b/intern/cycles/kernel/kernel_triangle.h index ddf8b7b1caf..7eaf54d14bf 100644 --- a/intern/cycles/kernel/kernel_triangle.h +++ b/intern/cycles/kernel/kernel_triangle.h @@ -22,11 +22,11 @@ CCL_NAMESPACE_BEGIN __device_inline float3 triangle_point_MT(KernelGlobals *kg, int tri_index, float u, float v) { /* load triangle vertices */ - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, tri_index)); - float3 v0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); - float3 v1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); - float3 v2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + float3 v0 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 v1 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 v2 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); /* compute point */ float t = 1.0f - u - v; @@ -50,11 +50,11 @@ __device_inline float3 triangle_normal_MT(KernelGlobals *kg, int tri_index, int { #if 0 /* load triangle vertices */ - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, tri_index)); - float3 v0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); - float3 v1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); - float3 v2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + float3 v0 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 v1 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 v2 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); /* compute normal */ return normalize(cross(v2 - v0, v1 - v0)); @@ -68,11 +68,11 @@ __device_inline float3 triangle_normal_MT(KernelGlobals *kg, int tri_index, int __device_inline float3 triangle_smooth_normal(KernelGlobals *kg, int tri_index, float u, float v) { /* load triangle vertices */ - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, tri_index)); - float3 n0 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.x))); - float3 n1 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.y))); - float3 n2 = as_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.z))); + float3 n0 = float4_to_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.x))); + float3 n1 = float4_to_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.y))); + float3 n2 = float4_to_float3(kernel_tex_fetch(__tri_vnormal, __float_as_int(tri_vindex.z))); return normalize((1.0f - u - v)*n2 + u*n0 + v*n1); } @@ -80,11 +80,11 @@ __device_inline float3 triangle_smooth_normal(KernelGlobals *kg, int tri_index, __device_inline void triangle_dPdudv(KernelGlobals *kg, float3 *dPdu, float3 *dPdv, int tri) { /* fetch triangle vertex coordinates */ - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, tri)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, tri)); - float3 p0 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); - float3 p1 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); - float3 p2 = as_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); + float3 p0 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + float3 p1 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + float3 p2 = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); /* compute derivatives of P w.r.t. uv */ *dPdu = (p0 - p2); @@ -102,7 +102,7 @@ __device float triangle_attribute_float(KernelGlobals *kg, const ShaderData *sd, return kernel_tex_fetch(__attributes_float, offset + sd->prim); } else if(elem == ATTR_ELEMENT_VERTEX) { - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); float f0 = kernel_tex_fetch(__attributes_float, offset + __float_as_int(tri_vindex.x)); float f1 = kernel_tex_fetch(__attributes_float, offset + __float_as_int(tri_vindex.y)); @@ -142,14 +142,14 @@ __device float3 triangle_attribute_float3(KernelGlobals *kg, const ShaderData *s if(dx) *dx = make_float3(0.0f, 0.0f, 0.0f); if(dy) *dy = make_float3(0.0f, 0.0f, 0.0f); - return as_float3(kernel_tex_fetch(__attributes_float3, offset + sd->prim)); + return float4_to_float3(kernel_tex_fetch(__attributes_float3, offset + sd->prim)); } else if(elem == ATTR_ELEMENT_VERTEX) { - float3 tri_vindex = as_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, sd->prim)); - float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.x))); - float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.y))); - float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.z))); + float3 f0 = float4_to_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.x))); + float3 f1 = float4_to_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.y))); + float3 f2 = float4_to_float3(kernel_tex_fetch(__attributes_float3, offset + __float_as_int(tri_vindex.z))); #ifdef __RAY_DIFFERENTIALS__ if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; @@ -160,9 +160,9 @@ __device float3 triangle_attribute_float3(KernelGlobals *kg, const ShaderData *s } else if(elem == ATTR_ELEMENT_CORNER) { int tri = offset + sd->prim*3; - float3 f0 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 0)); - float3 f1 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 1)); - float3 f2 = as_float3(kernel_tex_fetch(__attributes_float3, tri + 2)); + float3 f0 = float4_to_float3(kernel_tex_fetch(__attributes_float3, tri + 0)); + float3 f1 = float4_to_float3(kernel_tex_fetch(__attributes_float3, tri + 1)); + float3 f2 = float4_to_float3(kernel_tex_fetch(__attributes_float3, tri + 2)); #ifdef __RAY_DIFFERENTIALS__ if(dx) *dx = sd->du.dx*f0 + sd->dv.dx*f1 - (sd->du.dx + sd->dv.dx)*f2; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index bd337eb95e1..fbe827b1791 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -21,11 +21,7 @@ #include "kernel_math.h" -#ifndef __KERNEL_OPENCL__ - -#include "svm_types.h" - -#endif +#include "svm/svm_types.h" CCL_NAMESPACE_BEGIN @@ -239,9 +235,7 @@ typedef struct ShaderData { /* SVM closure data. we always sample a single closure, to get fixed * memory usage, svm_closure_data contains closure parameters. */ -#ifndef __KERNEL_OPENCL__ ClosureType svm_closure; -#endif float3 svm_closure_weight; float svm_closure_data[3]; /* CUDA gives compile error if out of bounds */ @@ -291,11 +285,15 @@ typedef struct KernelCamera { float shutterclose; /* differentials */ - float3 dx, dy; + float3 dx; + float pad1; + float3 dy; + float pad2; /* clipping */ float nearclip; float cliplength; + float pad3, pad4; /* more matrices */ Transform screentoworld; @@ -321,13 +319,14 @@ typedef struct KernelBackground { typedef struct KernelSunSky { /* sun direction in spherical and cartesian */ - float theta, phi; + float theta, phi, pad3, pad4; float3 dir; float pad; /* perez function parameters */ - float zenith_Y, zenith_x, zenith_y; + float zenith_Y, zenith_x, zenith_y, pad2; float perez_Y[5], perez_x[5], perez_y[5]; + float pad5; } KernelSunSky; typedef struct KernelIntegrator { @@ -348,7 +347,7 @@ typedef struct KernelIntegrator { float blur_caustics; /* padding */ - int pad; + int pad[2]; } KernelIntegrator; typedef struct KernelBVH { diff --git a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h index 40bae72a6c5..04e4ccb8313 100644 --- a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h +++ b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h @@ -139,8 +139,8 @@ __device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, float randu, flo // TODO: find a better approximation for the retroreflective bounce *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; - *domega_in_dx *= 125; - *domega_in_dy *= 125; + *domega_in_dx *= 125.0f; + *domega_in_dy *= 125.0f; #endif } else *pdf = 0.0f; diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h index c505de036aa..00493e72203 100644 --- a/intern/cycles/kernel/svm/bsdf_diffuse.h +++ b/intern/cycles/kernel/svm/bsdf_diffuse.h @@ -88,8 +88,8 @@ __device int bsdf_diffuse_sample(const ShaderData *sd, float randu, float randv, // TODO: find a better approximation for the diffuse bounce *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; - *domega_in_dx *= 125; - *domega_in_dy *= 125; + *domega_in_dx *= 125.0f; + *domega_in_dy *= 125.0f; #endif } else @@ -151,8 +151,8 @@ __device int bsdf_translucent_sample(const ShaderData *sd, float randu, float ra // TODO: find a better approximation for the diffuse bounce *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; - *domega_in_dx *= -125; - *domega_in_dy *= -125; + *domega_in_dx *= -125.0f; + *domega_in_dy *= -125.0f; #endif } else *pdf = 0; diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h index b6baa1e90d8..a948ba06871 100644 --- a/intern/cycles/kernel/svm/bsdf_microfacet.h +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -195,8 +195,8 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float // derivatives a bit bigger. In theory this varies with the // roughness but the exact relationship is complex and // requires more ops than are practical. - *domega_in_dx *= 10; - *domega_in_dy *= 10; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } @@ -246,8 +246,8 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float // derivatives a bit bigger. In theory this varies with the // roughness but the exact relationship is complex and // requires more ops than are practical. - *domega_in_dx *= 10; - *domega_in_dy *= 10; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } @@ -423,8 +423,8 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, // derivatives a bit bigger. In theory this varies with the // roughness but the exact relationship is complex and // requires more ops than are practical. - *domega_in_dx *= 10; - *domega_in_dy *= 10; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } @@ -478,8 +478,8 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, // derivatives a bit bigger. In theory this varies with the // roughness but the exact relationship is complex and // requires more ops than are practical. - *domega_in_dx *= 10; - *domega_in_dy *= 10; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index bf591acc9fa..9f857b32468 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -187,8 +187,8 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl // derivatives a bit bigger. In theory this varies with the // roughness but the exact relationship is complex and // requires more ops than are practical. - *domega_in_dx *= 10; - *domega_in_dy *= 10; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h index 7fe10f10dfc..6031012d0ca 100644 --- a/intern/cycles/kernel/svm/bsdf_westin.h +++ b/intern/cycles/kernel/svm/bsdf_westin.h @@ -122,8 +122,8 @@ __device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, f // 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; + *domega_in_dx *= 10.0f; + *domega_in_dy *= 10.0f; #endif } } @@ -198,8 +198,8 @@ __device int bsdf_westin_sheen_sample(const ShaderData *sd, float randu, float r // TODO: find a better approximation for the diffuse bounce *domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx; *domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy; - *domega_in_dx *= 125; - *domega_in_dy *= 125; + *domega_in_dx *= 125.0f; + *domega_in_dy *= 125.0f; #endif } else pdf = 0; diff --git a/intern/cycles/kernel/svm/svm_blend.h b/intern/cycles/kernel/svm/svm_blend.h index b1be7b7f6bc..97fa4aff9e7 100644 --- a/intern/cycles/kernel/svm/svm_blend.h +++ b/intern/cycles/kernel/svm/svm_blend.h @@ -41,7 +41,7 @@ __device float svm_blend(float3 p, NodeBlendType type, NodeBlendAxis axis) return r*r; } else if(type == NODE_BLEND_EASING) { - float r = min(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); + float r = fminf(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); float t = r*r; return (3.0f*t - 2.0f*t*r); diff --git a/intern/cycles/kernel/svm/svm_displace.h b/intern/cycles/kernel/svm/svm_displace.h index db8a8a13289..b1677f67eca 100644 --- a/intern/cycles/kernel/svm/svm_displace.h +++ b/intern/cycles/kernel/svm/svm_displace.h @@ -34,8 +34,9 @@ __device void svm_node_set_bump(ShaderData *sd, float *stack, uint c_offset, uin float3 surfgrad = (h_x - h_c)*Rx + (h_y - h_c)*Ry; surfgrad *= 0.1f; /* todo: remove this factor */ - - sd->N = normalize(fabsf(det)*sd->N - signf(det)*surfgrad); + + float absdet = fabsf(det); + sd->N = normalize(absdet*sd->N - signf(det)*surfgrad); #endif } diff --git a/intern/cycles/kernel/svm/svm_distorted_noise.h b/intern/cycles/kernel/svm/svm_distorted_noise.h index 469313e377d..7518a3a9d2d 100644 --- a/intern/cycles/kernel/svm/svm_distorted_noise.h +++ b/intern/cycles/kernel/svm/svm_distorted_noise.h @@ -23,12 +23,13 @@ CCL_NAMESPACE_BEGIN __device float svm_distorted_noise(float3 p, float size, NodeNoiseBasis basis, NodeNoiseBasis distortion_basis, float distortion) { float3 r; + float3 offset = make_float3(13.5f, 13.5f, 13.5f); p /= size; - r.x = noise_basis(p + make_float3(13.5f, 13.5f, 13.5f), basis) * distortion; + r.x = noise_basis(p + offset, basis) * distortion; r.y = noise_basis(p, basis) * distortion; - r.z = noise_basis(p - make_float3(13.5f, 13.5f, 13.5f), basis) * distortion; + r.z = noise_basis(p - offset, basis) * distortion; return noise_basis(p + r, distortion_basis); /* distorted-domain noise */ } diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 88f0b582442..586e35c6465 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -31,6 +31,9 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) also note that cuda has 128 textures limit, we use 100 now, since we still need some for other storage */ +#ifdef __KERNEL_OPENCL__ + r = make_float4(0.0f, 0.0f, 0.0f, 0.0f); /* todo */ +#else 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; @@ -136,6 +139,7 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) kernel_assert(0); return make_float4(0.0f, 0.0f, 0.0f, 0.0f); } +#endif return r; } @@ -151,8 +155,11 @@ __device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack float4 f = svm_image_texture(kg, id, co.x, co.y); float3 r = make_float3(f.x, f.y, f.z); - if(srgb) - r = color_srgb_to_scene_linear(r); + 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); + } stack_store_float3(stack, out_offset, r); } @@ -170,8 +177,11 @@ __device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float float4 f = svm_image_texture(kg, id, u, v); float3 r = make_float3(f.x, f.y, f.z); - if(srgb) - r = color_srgb_to_scene_linear(r); + 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); + } stack_store_float3(stack, out_offset, r); } diff --git a/intern/cycles/kernel/svm/svm_mix.h b/intern/cycles/kernel/svm/svm_mix.h index 5a8ca2f76dd..c9e6cdf43b9 100644 --- a/intern/cycles/kernel/svm/svm_mix.h +++ b/intern/cycles/kernel/svm/svm_mix.h @@ -41,7 +41,8 @@ __device float3 rgb_to_hsv(float3 rgb) h = 0.0f; } else { - c = (make_float3(cmax, cmax, cmax) - rgb)/cdelta; + float3 cmax3 = make_float3(cmax, cmax, cmax); + c = (cmax3 - rgb)/cdelta; if(rgb.x == cmax) h = c.z - c.y; else if(rgb.y == cmax) h = 2.0f + c.x - c.z; @@ -91,26 +92,33 @@ __device float3 hsv_to_rgb(float3 hsv) return rgb; } +__device float3 svm_lerp(const float3 a, const float3 b, float t) +{ + return (a * (1.0f - t) + b * t); +} + __device float3 svm_mix_blend(float t, float3 col1, float3 col2) { - return lerp(col1, col2, t); + return svm_lerp(col1, col2, t); } __device float3 svm_mix_add(float t, float3 col1, float3 col2) { - return lerp(col1, col1 + col2, t); + return svm_lerp(col1, col1 + col2, t); } __device float3 svm_mix_mul(float t, float3 col1, float3 col2) { - return lerp(col1, col1 * col2, t); + return svm_lerp(col1, col1 * col2, t); } __device float3 svm_mix_screen(float t, float3 col1, float3 col2) { float tm = 1.0f - t; + float3 one = make_float3(1.0f, 1.0f, 1.0f); + float3 tm3 = make_float3(tm, tm, tm); - return make_float3(1.0f, 1.0f, 1.0f) - (make_float3(tm, tm, tm) + t*(make_float3(1.0f, 1.0f, 1.0f) - col2))*(make_float3(1.0f, 1.0f, 1.0f) - col1); + return one - (tm3 + t*(one - col2))*(one - col1); } __device float3 svm_mix_overlay(float t, float3 col1, float3 col2) @@ -139,7 +147,7 @@ __device float3 svm_mix_overlay(float t, float3 col1, float3 col2) __device float3 svm_mix_sub(float t, float3 col1, float3 col2) { - return lerp(col1, col1 - col2, t); + return svm_lerp(col1, col1 - col2, t); } __device float3 svm_mix_div(float t, float3 col1, float3 col2) @@ -157,7 +165,7 @@ __device float3 svm_mix_div(float t, float3 col1, float3 col2) __device float3 svm_mix_diff(float t, float3 col1, float3 col2) { - return lerp(col1, fabs(col1 - col2), t); + return svm_lerp(col1, fabs(col1 - col2), t); } __device float3 svm_mix_dark(float t, float3 col1, float3 col2) @@ -255,7 +263,7 @@ __device float3 svm_mix_hue(float t, float3 col1, float3 col2) hsv.x = hsv2.x; float3 tmp = hsv_to_rgb(hsv); - outcol = lerp(outcol, tmp, t); + outcol = svm_lerp(outcol, tmp, t); } return outcol; @@ -302,7 +310,7 @@ __device float3 svm_mix_color(float t, float3 col1, float3 col2) hsv.y = hsv2.y; float3 tmp = hsv_to_rgb(hsv); - outcol = lerp(outcol, tmp, t); + outcol = svm_lerp(outcol, tmp, t); } return outcol; diff --git a/intern/cycles/kernel/svm/svm_sky.h b/intern/cycles/kernel/svm/svm_sky.h index dd02cb64cd7..eaba4d18365 100644 --- a/intern/cycles/kernel/svm/svm_sky.h +++ b/intern/cycles/kernel/svm/svm_sky.h @@ -49,7 +49,7 @@ __device float sky_angle_between(float thetav, float phiv, float theta, float ph return safe_acosf(cospsi); } -__device float sky_perez_function(float lam[5], float theta, float gamma) +__device float sky_perez_function(__constant float *lam, float theta, float gamma) { float ctheta = cosf(theta); float cgamma = cosf(gamma); diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h index c5ded6d975f..d4765cca384 100644 --- a/intern/cycles/kernel/svm/svm_texture.h +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -69,7 +69,7 @@ __device void voronoi(float3 p, NodeDistanceMetric distance_metric, float e, flo float3 pd = p - (vp + ip); float d = voronoi_distance(distance_metric, pd, e); - vp += make_float3((float)xx, (float)yy, (float)zz); + vp += ip; if(d < da[0]) { da[3] = da[2]; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index aa58aba79c9..769ccfc9bc0 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -35,7 +35,7 @@ CCL_NAMESPACE_BEGIN * happens i have no idea, but consecutive values are problematic, maybe it * generates an incorrect jump table. */ -enum NodeType { +typedef enum NodeType { NODE_END = 0, NODE_CLOSURE_BSDF = 100, NODE_CLOSURE_EMISSION = 200, @@ -82,23 +82,23 @@ enum NodeType { NODE_ATTR_BUMP_DX = 4400, NODE_ATTR_BUMP_DY = 4500, NODE_TEX_ENVIRONMENT = 4600 -}; +} NodeType; -enum NodeAttributeType { +typedef enum NodeAttributeType { NODE_ATTR_FLOAT = 0, NODE_ATTR_FLOAT3 -}; +} NodeAttributeType; -enum NodeGeometry { +typedef enum NodeGeometry { NODE_GEOM_P = 0, NODE_GEOM_N, NODE_GEOM_T, NODE_GEOM_I, NODE_GEOM_Ng, NODE_GEOM_uv -}; +} NodeGeometry; -enum NodeLightPath { +typedef enum NodeLightPath { NODE_LP_camera = 0, NODE_LP_shadow, NODE_LP_diffuse, @@ -106,16 +106,16 @@ enum NodeLightPath { NODE_LP_reflection, NODE_LP_transmission, NODE_LP_backfacing -}; +} NodeLightPath; -enum NodeTexCoord { +typedef enum NodeTexCoord { NODE_TEXCO_OBJECT, NODE_TEXCO_CAMERA, NODE_TEXCO_WINDOW, NODE_TEXCO_REFLECTION -}; +} NodeTexCoord; -enum NodeMix { +typedef enum NodeMix { NODE_MIX_BLEND = 0, NODE_MIX_ADD, NODE_MIX_MUL, @@ -134,9 +134,9 @@ enum NodeMix { NODE_MIX_COLOR, NODE_MIX_SOFT, NODE_MIX_LINEAR -}; +} NodeMix; -enum NodeMath { +typedef enum NodeMath { NODE_MATH_ADD, NODE_MATH_SUBTRACT, NODE_MATH_MULTIPLY, @@ -154,24 +154,24 @@ enum NodeMath { NODE_MATH_ROUND, NODE_MATH_LESS_THAN, NODE_MATH_GREATER_THAN -}; +} NodeMath; -enum NodeVectorMath { +typedef enum NodeVectorMath { NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_SUBTRACT, NODE_VECTOR_MATH_AVERAGE, NODE_VECTOR_MATH_DOT_PRODUCT, NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_NORMALIZE -}; +} NodeVectorMath; -enum NodeConvert { +typedef enum NodeConvert { NODE_CONVERT_FV, NODE_CONVERT_CF, NODE_CONVERT_VF -}; +} NodeConvert; -enum NodeDistanceMetric { +typedef enum NodeDistanceMetric { NODE_VORONOI_DISTANCE_SQUARED, NODE_VORONOI_ACTUAL_DISTANCE, NODE_VORONOI_MANHATTAN, @@ -179,9 +179,9 @@ enum NodeDistanceMetric { NODE_VORONOI_MINKOVSKY_H, NODE_VORONOI_MINKOVSKY_4, NODE_VORONOI_MINKOVSKY -}; +} NodeDistanceMetric; -enum NodeNoiseBasis { +typedef enum NodeNoiseBasis { NODE_NOISE_PERLIN, NODE_NOISE_VORONOI_F1, NODE_NOISE_VORONOI_F2, @@ -190,30 +190,30 @@ enum NodeNoiseBasis { NODE_NOISE_VORONOI_F2_F1, NODE_NOISE_VORONOI_CRACKLE, NODE_NOISE_CELL_NOISE -}; +} NodeNoiseBasis; -enum NodeWaveType { +typedef enum NodeWaveType { NODE_WAVE_SINE, NODE_WAVE_SAW, NODE_WAVE_TRI -}; +} NodeWaveType; -enum NodeMusgraveType { +typedef enum NodeMusgraveType { NODE_MUSGRAVE_MULTIFRACTAL, NODE_MUSGRAVE_FBM, NODE_MUSGRAVE_HYBRID_MULTIFRACTAL, NODE_MUSGRAVE_RIDGED_MULTIFRACTAL, NODE_MUSGRAVE_HETERO_TERRAIN -}; +} NodeMusgraveType; -enum NodeWoodType { +typedef enum NodeWoodType { NODE_WOOD_BANDS, NODE_WOOD_RINGS, NODE_WOOD_BAND_NOISE, NODE_WOOD_RING_NOISE -}; +} NodeWoodType; -enum NodeBlendType { +typedef enum NodeBlendType { NODE_BLEND_LINEAR, NODE_BLEND_QUADRATIC, NODE_BLEND_EASING, @@ -221,37 +221,37 @@ enum NodeBlendType { NODE_BLEND_RADIAL, NODE_BLEND_QUADRATIC_SPHERE, NODE_BLEND_SPHERICAL -}; +} NodeBlendType; -enum NodeBlendAxis { +typedef enum NodeBlendAxis { NODE_BLEND_HORIZONTAL, NODE_BLEND_VERTICAL -}; +} NodeBlendAxis; -enum NodeMarbleType { +typedef enum NodeMarbleType { NODE_MARBLE_SOFT, NODE_MARBLE_SHARP, NODE_MARBLE_SHARPER -}; +} NodeMarbleType; -enum NodeStucciType { +typedef enum NodeStucciType { NODE_STUCCI_PLASTIC, NODE_STUCCI_WALL_IN, NODE_STUCCI_WALL_OUT -}; +} NodeStucciType; -enum NodeVoronoiColoring { +typedef enum NodeVoronoiColoring { NODE_VORONOI_INTENSITY, NODE_VORONOI_POSITION, NODE_VORONOI_POSITION_OUTLINE, NODE_VORONOI_POSITION_OUTLINE_INTENSITY -}; +} NodeVoronoiColoring; -enum ShaderType { +typedef enum ShaderType { SHADER_TYPE_SURFACE, SHADER_TYPE_VOLUME, SHADER_TYPE_DISPLACEMENT -}; +} ShaderType; /* Closure */ diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h index 60b738bfc51..a11a5c7c2a7 100644 --- a/intern/cycles/util/util_color.h +++ b/intern/cycles/util/util_color.h @@ -40,6 +40,8 @@ __device float color_scene_linear_to_srgb(float c) return 1.055f * pow(c, 1.0f/2.4f) - 0.055f; } +#ifndef __KERNEL_OPENCL__ + __device float3 color_srgb_to_scene_linear(float3 c) { return make_float3( @@ -56,6 +58,8 @@ __device float3 color_scene_linear_to_srgb(float3 c) color_scene_linear_to_srgb(c.z)); } +#endif + CCL_NAMESPACE_END #endif /* __UTIL_COLOR_H__ */ diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 3475e309af5..e6dd00fd86b 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -506,13 +506,13 @@ __device_inline float3 fabs(float3 a) return make_float3(fabsf(a.x), fabsf(a.y), fabsf(a.z)); } -__device_inline float3 as_float3(const float4& a) +#endif + +__device_inline float3 float4_to_float3(const float4 a) { return make_float3(a.x, a.y, a.z); } -#endif - #ifndef __KERNEL_GPU__ __device_inline void print_float3(const char *label, const float3& a) -- cgit v1.2.3 From 4bb582effb23597ec819624c02f8ae516888a35e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 27 May 2011 09:38:49 +0000 Subject: Cycles: some mix node blend modes not working correct: subtract, screen, divide, difference, darken, lighten, overlay patch by Sanne, thanks! --- intern/cycles/kernel/svm/svm_types.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 769ccfc9bc0..5cbd05e4400 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -119,13 +119,13 @@ typedef enum NodeMix { NODE_MIX_BLEND = 0, NODE_MIX_ADD, NODE_MIX_MUL, - NODE_MIX_SCREEN, - NODE_MIX_OVERLAY, NODE_MIX_SUB, + NODE_MIX_SCREEN, NODE_MIX_DIV, NODE_MIX_DIFF, NODE_MIX_DARK, NODE_MIX_LIGHT, + NODE_MIX_OVERLAY, NODE_MIX_DODGE, NODE_MIX_BURN, NODE_MIX_HUE, -- cgit v1.2.3 From 7e4ba190cb976cd7a8278a2974bae328de6f2f17 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 27 May 2011 12:13:10 +0000 Subject: Cycles: fix GLEW library build issue. --- intern/cycles/app/CMakeLists.txt | 2 +- intern/cycles/blender/CMakeLists.txt | 2 +- intern/cycles/cmake/external_libs.cmake | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index 0934124ea25..c250662aecf 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -18,7 +18,7 @@ SET(LIBRARIES cycles_util ${Boost_LIBRARIES} ${OPENGL_LIBRARIES} - ${GLEW_LIBRARY} + ${CYCLES_GLEW_LIBRARY} ${OPENIMAGEIO_LIBRARY}) IF(WITH_CYCLES_TEST) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 56d08b61b65..784f78a54d4 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -43,7 +43,7 @@ SET(LIBRARIES ${OPENGL_LIBRARIES} ${OPENIMAGEIO_LIBRARY} ${GLUT_LIBRARIES} - ${GLEW_LIBRARIES} + ${CYCLES_GLEW_LIBRARY} ${BLENDER_LIBRARIES}) IF(WITH_CYCLES_OSL) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index cfd997a6469..fbda3ac2e34 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -62,6 +62,12 @@ IF(WITH_CYCLES_TEST) INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) ENDIF() +IF(WITH_BUILTIN_GLEW) + SET(CYCLES_GLEW_LIBRARY extern_glew) +ELSE() + SET(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY}) +ENDIF() + ########################################################################### # OpenShadingLanguage @@ -165,12 +171,12 @@ IF(WITH_CYCLES_OPENCL) IF(WIN32) SET(OPENCL_INCLUDES "") - SET(OPENCL_LIRBARIES "OpenCL") + SET(OPENCL_LIBRARIES "OpenCL") ENDIF() IF(UNIX AND NOT APPLE) SET(OPENCL_INCLUDES ${CYCLES_OPENCL}) - SET(OPENCL_LIRBARIES "OpenCL") + SET(OPENCL_LIBRARIES "OpenCL") ENDIF() ADD_DEFINITIONS(-DWITH_OPENCL) -- cgit v1.2.3 From 89983a2187863b9fbd72f5b1b45aadf2c930aba3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 09:47:19 +0000 Subject: Cycles: fix compile error for cycles_test. --- intern/cycles/util/util_view.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/intern/cycles/util/util_view.cpp b/intern/cycles/util/util_view.cpp index 2c6251b02ee..0b311b0331a 100644 --- a/intern/cycles/util/util_view.cpp +++ b/intern/cycles/util/util_view.cpp @@ -20,16 +20,16 @@ #include #include +#include "util_opengl.h" +#include "util_time.h" +#include "util_view.h" + #ifdef __APPLE__ #include #else #include #endif -#include "util_opengl.h" -#include "util_time.h" -#include "util_view.h" - CCL_NAMESPACE_BEGIN /* structs */ -- cgit v1.2.3 From d404c31e8d002a00229bdd91769ca30c6a0e3e4d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 10:41:01 +0000 Subject: Cycles: fix sync issue with group instances. --- intern/cycles/blender/blender_object.cpp | 10 +++++----- intern/cycles/blender/blender_sync.h | 4 ++-- intern/cycles/blender/blender_util.h | 9 ++++++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 51fd743956d..932cb2bad41 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -65,13 +65,13 @@ bool BlenderSync::object_is_light(BL::Object b_ob) /* Light */ -void BlenderSync::sync_light(BL::Object b_ob, Transform& tfm) +void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm) { /* test if we need to sync */ Light *light; + ObjectKey key(b_parent, b_index, b_ob); - /* todo: account for instancing */ - if(!light_map.sync(&light, b_ob)) + if(!light_map.sync(&light, b_ob, b_parent, key)) return; /* location */ @@ -98,7 +98,7 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, { /* light is handled separately */ if(object_is_light(b_ob)) { - sync_light(b_ob, tfm); + sync_light(b_parent, b_index, b_ob, tfm); return; } @@ -112,7 +112,7 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, bool object_updated = false; /* object sync */ - if(object_map.sync(&object, b_ob, key)) { + if(object_map.sync(&object, b_ob, b_parent, key)) { object->name = b_ob.name(); object->tfm = tfm; object->tag_update(scene); diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index f1fce37bfaf..732a1b30260 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -76,7 +76,7 @@ private: 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); - void sync_light(BL::Object b_ob, Transform& tfm); + void sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm); /* util */ void find_shader(BL::ID id, vector& used_shaders); @@ -91,7 +91,7 @@ private: id_map shader_map; id_map object_map; id_map mesh_map; - id_map light_map; + id_map light_map; void *world_map; bool world_recalc; diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 715dc7e6fb0..354a195758f 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -225,10 +225,10 @@ public: bool sync(T **r_data, BL::ID id) { - return sync(r_data, id, id.ptr.id.data); + return sync(r_data, id, id, id.ptr.id.data); } - bool sync(T **r_data, BL::ID id, const K& key) + bool sync(T **r_data, BL::ID id, BL::ID parent, const K& key) { T *data = find(key); bool recalc; @@ -240,8 +240,11 @@ public: b_map[key] = data; recalc = true; } - else + else { recalc = (b_recalc.find(id.ptr.data) != b_recalc.end()); + if(parent.ptr.data) + recalc = recalc || (b_recalc.find(parent.ptr.data) != b_recalc.end()); + } used(data); -- cgit v1.2.3 From 20746f6bb05dbcfbc3d425cbf3cd6bf163dbc76e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 10:57:43 +0000 Subject: Cycles: fix instanced mesh sync being a bit too slow. --- intern/cycles/blender/blender_mesh.cpp | 6 ++++++ intern/cycles/blender/blender_object.cpp | 2 ++ intern/cycles/blender/blender_sync.h | 1 + 3 files changed, 9 insertions(+) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index e18a67bed8f..36f87a6100a 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -252,6 +252,12 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) } } + /* ensure we only sync instanced meshes once */ + if(mesh_synced.find(mesh) != mesh_synced.end()) + return mesh; + + mesh_synced.insert(mesh); + /* create derived mesh */ BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview); /* todo: this will crash on non-mesh types! */ diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 932cb2bad41..241cbf07357 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -139,6 +139,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) light_map.pre_sync(); mesh_map.pre_sync(); object_map.pre_sync(); + mesh_synced.clear(); /* object loop */ BL::Scene::objects_iterator b_ob; @@ -177,6 +178,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) scene->mesh_manager->tag_update(scene); if(object_map.post_sync()) scene->object_manager->tag_update(scene); + mesh_synced.clear(); } CCL_NAMESPACE_END diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 732a1b30260..16ce1998a24 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -92,6 +92,7 @@ private: id_map object_map; id_map mesh_map; id_map light_map; + set mesh_synced; void *world_map; bool world_recalc; -- cgit v1.2.3 From e2f2626179b4d6f81c8738a0c3cc97779a4796e1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 11:12:42 +0000 Subject: Cycles: fix crash syncing curve/text object with no verts/faces. --- intern/cycles/blender/blender_mesh.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 36f87a6100a..c69e911723e 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -260,7 +260,6 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) /* create derived mesh */ BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview); - /* todo: this will crash on non-mesh types! */ PointerRNA cmesh = RNA_pointer_get(&b_ob_data.ptr, "cycles"); vector oldtriangle = mesh->triangles; @@ -269,13 +268,15 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) mesh->used_shaders = used_shaders; mesh->name = ustring(b_ob_data.name()); - if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision")) - create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders); - else - create_mesh(scene, mesh, b_mesh, used_shaders); + if(b_mesh) { + if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision")) + create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders); + else + create_mesh(scene, mesh, b_mesh, used_shaders); - /* free derived mesh */ - object_remove_mesh(b_data, b_mesh); + /* free derived mesh */ + object_remove_mesh(b_data, b_mesh); + } /* displacement method */ if(cmesh.data) { -- cgit v1.2.3 From eedcba7ed57e85b01b4aa5bc106502178835e6ae Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 11:28:04 +0000 Subject: Cycles: for material/world/lamps, if use_nodes is disabled, show some default shaders instead of black. --- intern/cycles/blender/blender_shader.cpp | 38 +++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index c23f9a4cd95..113cf2a91bc 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -535,15 +535,24 @@ void BlenderSync::sync_materials() if(shader_map.sync(&shader, *b_mat)) { ShaderGraph *graph = new ShaderGraph(); - /* create nodes */ - if(b_mat && b_mat->node_tree()) { - shader->name = b_mat->name(); + shader->name = b_mat->name(); + /* create nodes */ + if(b_mat->use_nodes() && b_mat->node_tree()) { PtrSockMap sock_to_node; BL::ShaderNodeTree b_ntree(b_mat->node_tree()); add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); } + else { + ShaderNode *closure, *out; + + closure = graph->add(new DiffuseBsdfNode()); + closure->input("Color")->value = get_float3(b_mat->diffuse_color()); + out = graph->output(); + + graph->connect(closure->output("BSDF"), out->input("Surface")); + } shader->set_graph(graph); shader->tag_update(scene); @@ -565,12 +574,21 @@ void BlenderSync::sync_world() ShaderGraph *graph = new ShaderGraph(); /* create nodes */ - if(b_world && b_world.node_tree()) { + if(b_world && b_world.use_nodes() && b_world.node_tree()) { PtrSockMap sock_to_node; BL::ShaderNodeTree b_ntree(b_world.node_tree()); add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); } + else if(b_world) { + ShaderNode *closure, *out; + + closure = graph->add(new BackgroundNode()); + closure->input("Color")->value = get_float3(b_world.horizon_color()); + out = graph->output(); + + graph->connect(closure->output("Background"), out->input("Surface")); + } shader->set_graph(graph); shader->tag_update(scene); @@ -600,7 +618,7 @@ void BlenderSync::sync_lamps() ShaderGraph *graph = new ShaderGraph(); /* create nodes */ - if(b_lamp && b_lamp->node_tree()) { + if(b_lamp->use_nodes() && b_lamp->node_tree()) { shader->name = b_lamp->name(); PtrSockMap sock_to_node; @@ -608,6 +626,16 @@ void BlenderSync::sync_lamps() add_nodes(b_data, graph, b_ntree, NULL, sock_to_node); } + else { + ShaderNode *closure, *out; + + closure = graph->add(new EmissionNode()); + closure->input("Color")->value = get_float3(b_lamp->color()); + closure->input("Strength")->value.x = b_lamp->energy()*10.0f; + out = graph->output(); + + graph->connect(closure->output("Emission"), out->input("Surface")); + } shader->set_graph(graph); shader->tag_update(scene); -- cgit v1.2.3 From 64c2d5e90e7ec80eb693c814787d8eee393c3bab Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 11:31:00 +0000 Subject: Cycles: more opencl fixes. --- intern/cycles/kernel/kernel_compat_opencl.h | 22 +++++++++++++++++++--- intern/cycles/render/attribute.cpp | 5 ++++- intern/cycles/render/shader.cpp | 1 + intern/cycles/util/util_math.h | 24 ++++++++++++------------ intern/cycles/util/util_transform.h | 8 ++++---- 5 files changed, 40 insertions(+), 20 deletions(-) diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index e6e54850605..c8be03d7dd0 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -22,10 +22,10 @@ #define __KERNEL_GPU__ #define __KERNEL_OPENCL__ -#include "util_types.h" - CCL_NAMESPACE_BEGIN +#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable + #define __device #define __device_inline @@ -42,12 +42,26 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) return (1.0f - t)*data[index] + t*data[nindex]; } -#define make_float3(x, y, z) ((float3)(x, y, z)) /* todo 1.1 */ +#define make_float2(x, y) ((float2)(x, y)) +#define make_float3(x, y, z) ((float3)(x, y, z, 0.0f)) +#define make_float4(x, y, z, w) ((float4)(x, y, z, w)) +#define make_int2(x, y) ((int2)(x, y)) +#define make_int3(x, y, z) ((int3)(x, y, z, 0)) +#define make_int4(x, y, z, w) ((int4)(x, y, z, w)) + +typedef float4 float3; +typedef int4 int3; #define __uint_as_float(x) as_float(x) #define __float_as_uint(x) as_uint(x) #define __int_as_float(x) as_float(x) #define __float_as_int(x) as_int(x) +#define sqrtf(x) sqrt(((float)x)) +#define cosf(x) cos(((float)x)) +#define sinf(x) sin(((float)x)) +#define powf(x, y) pow(((float)x), ((float)y)) +#define fabsf(x) fabs(((float)x)) +#define copysignf(x, y) copysign(((float)x), ((float)y)) #define kernel_data (*kg->data) #define kernel_tex_interp(t, x) \ @@ -57,6 +71,8 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) #define NULL 0 +#include "util_types.h" + CCL_NAMESPACE_END #endif /* __KERNEL_COMPAT_OPENCL_H__ */ diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp index 815478cb733..aa18ca7d7cb 100644 --- a/intern/cycles/render/attribute.cpp +++ b/intern/cycles/render/attribute.cpp @@ -46,7 +46,10 @@ void Attribute::reserve(int numverts, int numtris) size_t Attribute::data_sizeof() { - return type.size(); + if(type == TypeDesc::TypeFloat) + return sizeof(float); + else + return sizeof(float3); } size_t Attribute::element_size(int numverts, int numtris) diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index 9ea162d3ad0..548beaaecdd 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -45,6 +45,7 @@ Shader::Shader() has_displacement = false; need_update = true; + need_update_attributes = true; } Shader::~Shader() diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index e6dd00fd86b..1bb3f5b6097 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -345,56 +345,56 @@ __device_inline float average(const float3 a) __device_inline float3 operator-(const float3 a) { - float3 r = {-a.x, -a.y, -a.z}; + float3 r = make_float3(-a.x, -a.y, -a.z); return r; } __device_inline float3 operator*(const float3 a, const float3 b) { - float3 r = {a.x*b.x, a.y*b.y, a.z*b.z}; + float3 r = make_float3(a.x*b.x, a.y*b.y, a.z*b.z); return r; } __device_inline float3 operator*(const float3 a, float f) { - float3 r = {a.x*f, a.y*f, a.z*f}; + float3 r = make_float3(a.x*f, a.y*f, a.z*f); return r; } __device_inline float3 operator*(float f, const float3 a) { - float3 r = {a.x*f, a.y*f, a.z*f}; + float3 r = make_float3(a.x*f, a.y*f, a.z*f); return r; } __device_inline float3 operator/(float f, const float3 a) { - float3 r = {f/a.x, f/a.y, f/a.z}; + float3 r = make_float3(f/a.x, f/a.y, f/a.z); return r; } __device_inline float3 operator/(const float3 a, float f) { float invf = 1.0f/f; - float3 r = {a.x*invf, a.y*invf, a.z*invf}; + float3 r = make_float3(a.x*invf, a.y*invf, a.z*invf); return r; } __device_inline float3 operator/(const float3 a, const float3 b) { - float3 r = {a.x/b.x, a.y/b.y, a.z/b.z}; + float3 r = make_float3(a.x/b.x, a.y/b.y, a.z/b.z); return r; } __device_inline float3 operator+(const float3 a, const float3 b) { - float3 r = {a.x+b.x, a.y+b.y, a.z+b.z}; + float3 r = make_float3(a.x+b.x, a.y+b.y, a.z+b.z); return r; } __device_inline float3 operator-(const float3 a, const float3 b) { - float3 r = {a.x-b.x, a.y-b.y, a.z-b.z}; + float3 r = make_float3(a.x-b.x, a.y-b.y, a.z-b.z); return r; } @@ -446,7 +446,7 @@ __device_inline float dot(const float3 a, const float3 b) __device_inline float3 cross(const float3 a, const float3 b) { - float3 r = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x}; + float3 r = make_float3(a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x); return r; } @@ -486,13 +486,13 @@ __device_inline bool operator!=(const float3 a, const float3 b) __device_inline float3 min(float3 a, float3 b) { - float3 r = {min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)}; + float3 r = make_float3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)); return r; } __device_inline float3 max(float3 a, float3 b) { - float3 r = {max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)}; + float3 r = make_float3(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)); return r; } diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h index e2b022dc478..e904674a981 100644 --- a/intern/cycles/util/util_transform.h +++ b/intern/cycles/util/util_transform.h @@ -34,16 +34,16 @@ typedef struct Transform { __device_inline float3 transform(const Transform *t, const float3 a) { - float4 b = {a.x, a.y, a.z, 1.0f}; - float3 c = {dot(t->x, b), dot(t->y, b), dot(t->z, b)}; + float4 b = make_float4(a.x, a.y, a.z, 1.0f); + float3 c = make_float3(dot(t->x, b), dot(t->y, b), dot(t->z, b)); return c/dot(t->w, b); } __device_inline float3 transform_direction(const Transform *t, const float3 a) { - float4 b = {a.x, a.y, a.z, 0.0f}; - float3 c = {dot(t->x, b), dot(t->y, b), dot(t->z, b)}; + float4 b = make_float4(a.x, a.y, a.z, 0.0f); + float3 c = make_float3(dot(t->x, b), dot(t->y, b), dot(t->z, b)); return c; } -- cgit v1.2.3 From fc68daff582664bc1ccba57b9408973c5e8d83ec Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 16:19:02 +0000 Subject: Cycles: compile warning fixes. --- intern/cycles/blender/blender_python.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 2397e352114..00d16edbf74 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -210,7 +210,7 @@ static PyMethodDef methods[] = { {"sync", sync_func, METH_VARARGS, ""}, {"available_devices", available_devices_func, METH_NOARGS, ""}, {"with_osl", with_osl_func, METH_NOARGS, ""}, - {NULL, NULL}, + {NULL, NULL, 0, NULL}, }; static struct PyModuleDef module = { @@ -218,7 +218,8 @@ static struct PyModuleDef module = { "libcycles_blender", "Blender RNA to render exporter", -1, - methods + methods, + NULL, NULL, NULL, NULL }; CCL_NAMESPACE_END -- cgit v1.2.3 From 966e004bbea6304840cd73f262d91a5e65464e5f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 31 May 2011 16:21:30 +0000 Subject: Cycles: OSL build & image manager fixes. --- intern/cycles/CMakeLists.txt | 2 +- intern/cycles/kernel/kernel_compat_opencl.h | 26 +++++++++++++++++++ intern/cycles/kernel/kernel_globals.h | 14 ++++++---- intern/cycles/kernel/osl/osl_services.cpp | 1 + intern/cycles/render/image.cpp | 40 ++++++++++++++++++++++++----- intern/cycles/render/image.h | 5 +++- intern/cycles/render/nodes.cpp | 8 +++--- intern/cycles/render/osl.cpp | 6 ++--- intern/cycles/util/util_types.h | 8 ++++++ 9 files changed, 90 insertions(+), 20 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 5877b26b7f5..38be2f62ec4 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -28,7 +28,7 @@ SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation") SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation") SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") -SET(CYCLES_GLEW "" CACHE PATH "Path to GLUT installation") +SET(CYCLES_GLEW "" CACHE PATH "Path to GLEW installation") # Install, todo: deduplicate install path code diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index c8be03d7dd0..6ff9340e645 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -42,6 +42,25 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) return (1.0f - t)*data[index] + t*data[nindex]; } +#ifdef make_float2 +#undef make_float2 +#endif +#ifdef make_float3 +#undef make_float3 +#endif +#ifdef make_float4 +#undef make_float4 +#endif +#ifdef make_int2 +#undef make_int2 +#endif +#ifdef make_int3 +#undef make_int3 +#endif +#ifdef make_int4 +#undef make_int4 +#endif + #define make_float2(x, y) ((float2)(x, y)) #define make_float3(x, y, z) ((float3)(x, y, z, 0.0f)) #define make_float4(x, y, z, w) ((float4)(x, y, z, w)) @@ -49,6 +68,13 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) #define make_int3(x, y, z) ((int3)(x, y, z, 0)) #define make_int4(x, y, z, w) ((int4)(x, y, z, w)) +#ifdef float3 +#undef float3 +#endif +#ifdef int3 +#undef int3 +#endif + typedef float4 float3; typedef int4 int3; diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h index 720a9f28fa1..f37b27cc9f4 100644 --- a/intern/cycles/kernel/kernel_globals.h +++ b/intern/cycles/kernel/kernel_globals.h @@ -18,6 +18,14 @@ /* Constant Globals */ +#ifdef __KERNEL_CPU__ + +#ifdef WITH_OSL +#include "osl_globals.h" +#endif + +#endif + CCL_NAMESPACE_BEGIN /* On the CPU, we pass along the struct KernelGlobals to nearly everywhere in @@ -27,10 +35,6 @@ CCL_NAMESPACE_BEGIN #ifdef __KERNEL_CPU__ -#ifdef WITH_OSL -//#include "osl_globals.h" -#endif - typedef struct KernelGlobals { #define KERNEL_TEX(type, ttype, name) ttype name; @@ -42,7 +46,7 @@ typedef struct KernelGlobals { #ifdef WITH_OSL /* On the CPU, we also have the OSL globals here. Most data structures are shared with SVM, the difference is in the shaders and object/mesh attributes. */ - //OSLGlobals osl; + OSLGlobals osl; #endif } KernelGLobals; diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index ded3a68d667..1b52a3e489b 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -176,6 +176,7 @@ static bool get_mesh_attribute(KernelGlobals *kg, const ShaderData *sd, (derivatives)? &fval[1]: NULL, (derivatives)? &fval[2]: NULL); } 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); diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index 08127cf7409..5dc86837bcf 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -25,11 +25,16 @@ #include "util_path.h" #include "util_progress.h" +#ifdef WITH_OSL +#include +#endif + CCL_NAMESPACE_BEGIN ImageManager::ImageManager() { need_update = true; + osl_texture_system = NULL; } ImageManager::~ImageManager() @@ -39,6 +44,11 @@ ImageManager::~ImageManager() } } +void ImageManager::set_osl_texture_system(void *texture_system) +{ + osl_texture_system = texture_system; +} + int ImageManager::add_image(const string& filename) { Image *img; @@ -77,8 +87,17 @@ int ImageManager::add_image(const string& filename) return slot; } -void ImageManager::remove_image(int slot) +void ImageManager::remove_image(const string& filename) { + size_t slot; + + for(slot = 0; slot < images.size(); slot++) + if(images[slot] && images[slot]->filename == filename) + break; + + if(slot == images.size()) + return; + assert(images[slot]); /* decrement user count */ @@ -90,8 +109,6 @@ void ImageManager::remove_image(int slot) that use them, but we do not want to reload the image all the time. */ if(images[slot]->users == 0) need_update = true; - - /* todo: remove OSL image from cache */ } bool ImageManager::file_load_image(Image *img, device_vector& tex_img) @@ -156,10 +173,12 @@ bool ImageManager::file_load_image(Image *img, device_vector& tex_img) void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int slot) { + if(osl_texture_system) + return; + Image *img = images[slot]; device_vector& tex_img = dscene->tex_image[slot]; - img->need_load = false; if(tex_img.device_pointer) device->tex_free(tex_img); @@ -184,8 +203,16 @@ void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int sl void ImageManager::device_free_image(Device *device, DeviceScene *dscene, int slot) { if(images[slot]) { - device->tex_free(dscene->tex_image[slot]); - dscene->tex_image[slot].clear(); + if(osl_texture_system) { +#ifdef WITH_OSL + ustring filename(images[slot]->filename); + ((OSL::TextureSystem*)osl_texture_system)->invalidate(filename); +#endif + } + else { + device->tex_free(dscene->tex_image[slot]); + dscene->tex_image[slot].clear(); + } delete images[slot]; images[slot] = NULL; @@ -206,6 +233,7 @@ void ImageManager::device_update(Device *device, DeviceScene *dscene, Progress& string name = path_filename(images[slot]->filename); progress.set_status("Updating Images", "Loading " + name); device_load_image(device, dscene, slot); + images[slot]->need_load = false; } if(progress.get_cancel()) return; diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h index a0bf29088b7..0d49a1e6b67 100644 --- a/intern/cycles/render/image.h +++ b/intern/cycles/render/image.h @@ -38,11 +38,13 @@ public: ~ImageManager(); int add_image(const string& filename); - void remove_image(int slot); + void remove_image(const string& filename); void device_update(Device *device, DeviceScene *dscene, Progress& progress); void device_free(Device *device, DeviceScene *dscene); + void set_osl_texture_system(void *texture_system); + bool need_update; private: @@ -54,6 +56,7 @@ private: }; vector images; + void *osl_texture_system; bool file_load_image(Image *img, device_vector& tex_img); diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 0e14deac98f..546d74c5c22 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -53,8 +53,8 @@ ImageTextureNode::ImageTextureNode() ImageTextureNode::~ImageTextureNode() { - if(image_manager && slot != -1) - image_manager->remove_image(slot); + if(image_manager) + image_manager->remove_image(filename); } ShaderNode *ImageTextureNode::clone() const @@ -117,8 +117,8 @@ EnvironmentTextureNode::EnvironmentTextureNode() EnvironmentTextureNode::~EnvironmentTextureNode() { - if(image_manager && slot != -1) - image_manager->remove_image(slot); + if(image_manager) + image_manager->remove_image(filename); } ShaderNode *EnvironmentTextureNode::clone() const diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 068ae883930..446cf72f5d6 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -44,9 +44,6 @@ CCL_NAMESPACE_BEGIN OSLShaderManager::OSLShaderManager() { - /* todo: verify if we are leaking shaders - * todo: verify if we are leaking image cache memory */ - services = new OSLRenderServices(); /* if we let OSL create it, it leaks */ @@ -112,6 +109,9 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene foreach(Shader *shader, scene->shaders) shader->need_update = false; + + /* set texture system */ + scene->image_manager->set_osl_texture_system((void*)ts); } void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h index bc7ba056390..02ab59a261f 100644 --- a/intern/cycles/util/util_types.h +++ b/intern/cycles/util/util_types.h @@ -172,6 +172,10 @@ struct float2 { struct float3 { float x, y, z; +#ifdef WITH_OPENCL + float w; +#endif + float operator[](int i) const { return *(&x + i); } float& operator[](int i) { return *(&x + i); } }; @@ -253,7 +257,11 @@ __device float2 make_float2(float x, float y) __device float3 make_float3(float x, float y, float z) { +#ifdef WITH_OPENCL + float3 a = {x, y, z, 0.0f}; +#else float3 a = {x, y, z}; +#endif return a; } -- cgit v1.2.3 From a07d0a7fc28fcefe5829d2eb3dbc516553cae839 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 6 Jun 2011 20:07:08 +0000 Subject: Cycles: UI tweak some quick code to auto hide scrollbars. Not happy with this yet because it runs python draw functions twice when scrollers are showing. --- source/blender/editors/include/UI_interface.h | 1 + source/blender/editors/interface/interface_panel.c | 5 ++ source/blender/editors/interface/interface_style.c | 2 +- source/blender/editors/interface/view2d.c | 7 +- source/blender/editors/screen/area.c | 86 ++++++++++++++-------- 5 files changed, 64 insertions(+), 37 deletions(-) diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index fddb5b6d12e..89ecc28e425 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -583,6 +583,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname); void uiBeginPanels(const struct bContext *C, struct ARegion *ar); void uiEndPanels(const struct bContext *C, struct ARegion *ar); +void uiDrawPanels(const struct bContext *C, struct ARegion *ar); struct Panel *uiBeginPanel(struct ScrArea *sa, struct ARegion *ar, uiBlock *block, struct PanelType *pt, int *open); void uiEndPanel(uiBlock *block, int width, int height); diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index cd0d3c63dbd..741661b0e45 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -846,6 +846,11 @@ void uiEndPanels(const bContext *C, ARegion *ar) if(firstpa) firstpa->runtime_flag |= PNL_FIRST; +} + +void uiDrawPanels(const bContext *C, ARegion *ar) +{ + uiBlock *block; UI_ThemeClearColor(TH_BACK); diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index 2e4106b3c04..9bb4d90e1a2 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -122,7 +122,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name) style->buttonspacex= 8; style->buttonspacey= 2; style->panelspace= 8; - style->panelouter= 4; + style->panelouter= 3; return style; } diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 79e52fd9499..eb522a1d2b8 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -278,10 +278,9 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) v2d->align= (V2D_ALIGN_NO_NEG_X|V2D_ALIGN_NO_POS_Y); v2d->keeptot= V2D_KEEPTOT_BOUNDS; - /*v2d->scroll |= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM); + v2d->scroll |= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM); v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE;*/ - v2d->scroll= 0; + v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; v2d->tot.xmin= 0.0f; v2d->tot.xmax= winx; @@ -291,7 +290,7 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) v2d->cur.xmin= 0.0f; /* bad workaround for keeping zoom level with scrollers */ - v2d->cur.xmax= (winx/* - V2D_SCROLL_WIDTH*/)*panelzoom; + v2d->cur.xmax= (winx - V2D_SCROLL_WIDTH)*panelzoom; v2d->cur.ymax= 0.0f; v2d->cur.ymin= (-winy)*panelzoom; diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index faf747f2b91..aa6fc332dff 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1145,28 +1145,15 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco) /************************ standard UI regions ************************/ -void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *context, int contextnr) +static void region_panels_layout(const bContext *C, ARegion *ar, int vertical, const char *context, int w, int em, int *r_x, int *r_y) { ScrArea *sa= CTX_wm_area(C); - uiStyle *style= U.uistyles.first; - uiBlock *block; PanelType *pt; Panel *panel; - View2D *v2d= &ar->v2d; - View2DScrollers *scrollers; - int xco, yco, x, y, miny=0, w, em, header, triangle, open, newcontext= 0; - - if(contextnr >= 0) - newcontext= UI_view2d_tab_set(v2d, contextnr); - - if(vertical) { - w= v2d->cur.xmax - v2d->cur.xmin; - em= (ar->type->prefsizex)? 10: 20; - } - else { - w= UI_PANEL_WIDTH; - em= (ar->type->prefsizex)? 10: 20; - } + uiBlock *block; + uiStyle *style= U.uistyles.first; + int x, y, miny=0, xco, yco; + int open, header, triangle; x= 0; y= -style->panelouter; @@ -1174,9 +1161,6 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * /* create panels */ uiBeginPanels(C, ar); - /* set view2d view matrix for scrolling (without scrollers) */ - UI_view2d_view_ortho(v2d); - for(pt= ar->type->paneltypes.first; pt; pt= pt->next) { /* verify context */ if(context) @@ -1261,6 +1245,40 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * y= UI_PANEL_WIDTH; } + uiEndPanels(C, ar); + + *r_x = x; + *r_y = y; +} + +void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *context, int contextnr) +{ + View2D *v2d= &ar->v2d; + View2DScrollers *scrollers; + int x, y, w, em, newcontext= 0, need_scrollers; + + if(contextnr >= 0) + newcontext= UI_view2d_tab_set(v2d, contextnr); + + if(vertical) { + w= v2d->cur.xmax - v2d->cur.xmin; + em= (ar->type->prefsizex)? 10: 20; + } + else { + w= UI_PANEL_WIDTH; + em= (ar->type->prefsizex)? 10: 20; + } + + /* try to draw without scrollbars */ + UI_view2d_view_ortho(v2d); + + region_panels_layout(C, ar, vertical, context, ar->winx, em, &x, &y); + + /* if it doesn't fit, draw again in smaller space with scrollers */ + need_scrollers = (abs(y) > ar->winy); + if(need_scrollers) + region_panels_layout(C, ar, vertical, context, ar->winx-V2D_SCROLL_WIDTH, em, &x, &y); + /* clear */ UI_ThemeClearColor((ar->type->regionid == RGN_TYPE_PREVIEW)?TH_PREVIEW_BACK:TH_BACK); glClear(GL_COLOR_BUFFER_BIT); @@ -1270,8 +1288,9 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * /* only allow scrolling in vertical direction */ v2d->keepofs |= V2D_LOCKOFS_X|V2D_KEEPOFS_Y; v2d->keepofs &= ~(V2D_LOCKOFS_Y|V2D_KEEPOFS_X); - //v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - //v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; + v2d->scroll &= ~(V2D_SCROLL_HORIZONTAL_HIDE|V2D_SCROLL_VERTICAL_HIDE); + if(!need_scrollers) + v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; // don't jump back when panels close or hide if(!newcontext) @@ -1286,8 +1305,9 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_LOCKOFS_Y|V2D_KEEPOFS_X|V2D_KEEPOFS_Y); //v2d->keepofs |= V2D_LOCKOFS_Y|V2D_KEEPOFS_X; //v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_KEEPOFS_Y); - //v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE; - //v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_HIDE; + v2d->scroll &= ~(V2D_SCROLL_HORIZONTAL_HIDE|V2D_SCROLL_VERTICAL_HIDE); + if(!need_scrollers) + v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE; // don't jump back when panels close or hide if(!newcontext) @@ -1297,20 +1317,23 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char * // +V2D_SCROLL_HEIGHT is workaround to set the actual height UI_view2d_totRect_set(v2d, x+V2D_SCROLL_WIDTH, y+V2D_SCROLL_HEIGHT); + UI_view2d_totRect_set(v2d, x+V2D_SCROLL_WIDTH, y+V2D_SCROLL_HEIGHT); /* set the view */ UI_view2d_view_ortho(v2d); /* this does the actual drawing! */ - uiEndPanels(C, ar); + uiDrawPanels(C, ar); /* restore view matrix */ UI_view2d_view_restore(C); /* scrollers */ - //scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); - //UI_view2d_scrollers_draw(C, v2d, scrollers); - //UI_view2d_scrollers_free(scrollers); + if(need_scrollers) { + scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); + UI_view2d_scrollers_draw(C, v2d, scrollers); + UI_view2d_scrollers_free(scrollers); + } } void ED_region_panels_init(wmWindowManager *wm, ARegion *ar) @@ -1319,10 +1342,9 @@ void ED_region_panels_init(wmWindowManager *wm, ARegion *ar) // 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_RIGHT|V2D_SCROLL_BOTTOM); ar->v2d.scroll |= V2D_SCROLL_HORIZONTAL_HIDE; - ar->v2d.scroll &= ~V2D_SCROLL_VERTICAL_HIDE;*/ - ar->v2d.scroll= 0; + ar->v2d.scroll &= ~V2D_SCROLL_VERTICAL_HIDE; ar->v2d.keepzoom |= V2D_KEEPZOOM; // correctly initialised User-Prefs? -- cgit v1.2.3 From 77c2266d7b3e6cd00abb3a81ac4c4c939b68d7a7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 8 Jun 2011 23:36:06 +0000 Subject: Cycles: texture tab in properties editor now shows dropdown for selecting texture users in the context. It's only useful for modifiers and brushes at the moment, not for shading nodes as using texture datablocks there is not yet supported. --- intern/cycles/blender/addon/ui.py | 80 ++++- source/blender/blenkernel/BKE_modifier.h | 15 + source/blender/blenkernel/intern/modifier.c | 12 + source/blender/blenloader/intern/readfile.c | 1 + source/blender/editors/include/UI_interface.h | 1 + .../blender/editors/space_buttons/CMakeLists.txt | 1 + .../editors/space_buttons/buttons_context.c | 72 ++++- .../blender/editors/space_buttons/buttons_intern.h | 42 ++- .../editors/space_buttons/buttons_texture.c | 337 +++++++++++++++++++++ .../blender/editors/space_buttons/space_buttons.c | 6 + source/blender/makesdna/DNA_space_types.h | 3 + source/blender/makesrna/intern/rna_ui_api.c | 3 + source/blender/modifiers/intern/MOD_armature.c | 1 + source/blender/modifiers/intern/MOD_array.c | 1 + source/blender/modifiers/intern/MOD_bevel.c | 1 + source/blender/modifiers/intern/MOD_boolean.c | 1 + source/blender/modifiers/intern/MOD_build.c | 3 +- source/blender/modifiers/intern/MOD_cast.c | 1 + source/blender/modifiers/intern/MOD_cloth.c | 1 + source/blender/modifiers/intern/MOD_collision.c | 1 + source/blender/modifiers/intern/MOD_curve.c | 1 + source/blender/modifiers/intern/MOD_decimate.c | 1 + source/blender/modifiers/intern/MOD_displace.c | 7 + source/blender/modifiers/intern/MOD_edgesplit.c | 1 + source/blender/modifiers/intern/MOD_explode.c | 1 + source/blender/modifiers/intern/MOD_fluidsim.c | 1 + source/blender/modifiers/intern/MOD_hook.c | 1 + source/blender/modifiers/intern/MOD_lattice.c | 1 + source/blender/modifiers/intern/MOD_mask.c | 1 + source/blender/modifiers/intern/MOD_meshdeform.c | 1 + source/blender/modifiers/intern/MOD_mirror.c | 1 + source/blender/modifiers/intern/MOD_multires.c | 1 + source/blender/modifiers/intern/MOD_none.c | 1 + .../modifiers/intern/MOD_particleinstance.c | 1 + .../blender/modifiers/intern/MOD_particlesystem.c | 1 + source/blender/modifiers/intern/MOD_screw.c | 1 + source/blender/modifiers/intern/MOD_shapekey.c | 3 +- source/blender/modifiers/intern/MOD_shrinkwrap.c | 1 + source/blender/modifiers/intern/MOD_simpledeform.c | 1 + source/blender/modifiers/intern/MOD_smoke.c | 1 + source/blender/modifiers/intern/MOD_smooth.c | 1 + source/blender/modifiers/intern/MOD_softbody.c | 1 + source/blender/modifiers/intern/MOD_solidify.c | 3 +- source/blender/modifiers/intern/MOD_subsurf.c | 2 + source/blender/modifiers/intern/MOD_surface.c | 1 + source/blender/modifiers/intern/MOD_uvproject.c | 1 + source/blender/modifiers/intern/MOD_warp.c | 6 + source/blender/modifiers/intern/MOD_wave.c | 7 + source/blender/nodes/SHD_node.h | 1 + 49 files changed, 602 insertions(+), 32 deletions(-) create mode 100644 source/blender/editors/space_buttons/buttons_texture.c diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 2c4f24db2c5..89de799eb65 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -97,22 +97,22 @@ class CyclesRender_PT_debug(CyclesButtonsPanel, bpy.types.Panel): col.prop(cycles, "debug_text_timeout") class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Post Processing" - bl_options = {'DEFAULT_CLOSED'} + bl_label = "Post Processing" + bl_options = {'DEFAULT_CLOSED'} - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - rd = context.scene.render + rd = context.scene.render - split = layout.split() + split = layout.split() - col = split.column() - col.prop(rd, "use_compositing") - col.prop(rd, "use_sequencer") + col = split.column() + col.prop(rd, "use_compositing") + col.prop(rd, "use_sequencer") - col = split.column() - col.prop(rd, "dither_intensity", text="Dither", slider=True) + col = split.column() + col.prop(rd, "dither_intensity", text="Dither", slider=True) class Cycles_PT_camera(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Cycles" @@ -231,9 +231,9 @@ def panel_node_draw(layout, id, output_type, input_name): node = find_node(id, output_type) if not node: layout.label(text="No output node.") - - input = find_node_input(node, input_name) - layout.template_node_view(id, ntree, node, input); + else: + input = find_node_input(node, input_name) + layout.template_node_view(id, ntree, node, input); class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Surface" @@ -339,6 +339,41 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, bpy.types.Panel): row = layout.row() row.label(text="Light Group:") row.prop(mat, "light_group", text="") + +class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "" + bl_context = "texture" + bl_options = {'HIDE_HEADER'} + COMPAT_ENGINES = {'CYCLES'} + + def draw(self, context): + layout = self.layout + + tex = context.texture + space = context.space_data + pin_id = space.pin_id + use_pin_id = space.use_pin_id; + user = context.texture_user + + if not use_pin_id or not isinstance(pin_id, bpy.types.Texture): + pin_id = None + + if not pin_id: + layout.template_texture_user() + layout.separator() + + split = layout.split(percentage=0.65) + col = split.column() + + if pin_id: + col.template_ID(space, "pin_id") + elif user: + col.template_ID(user, "texture", new="texture.new") + + if tex: + split = layout.split(percentage=0.2) + split.label(text="Type:") + split.prop(tex, "type", text="") def draw_device(self, context): scene = context.scene @@ -372,7 +407,22 @@ def get_panels(): bpy.types.DATA_PT_custom_props_camera, bpy.types.DATA_PT_context_lamp, bpy.types.DATA_PT_custom_props_lamp, - bpy.types.TEXTURE_PT_context_texture] + bpy.types.TEXTURE_PT_clouds, + bpy.types.TEXTURE_PT_wood, + bpy.types.TEXTURE_PT_marble, + bpy.types.TEXTURE_PT_magic, + bpy.types.TEXTURE_PT_blend, + bpy.types.TEXTURE_PT_stucci, + bpy.types.TEXTURE_PT_image, + bpy.types.TEXTURE_PT_image_sampling, + bpy.types.TEXTURE_PT_image_mapping, + bpy.types.TEXTURE_PT_musgrave, + bpy.types.TEXTURE_PT_voronoi, + bpy.types.TEXTURE_PT_distortednoise, + bpy.types.TEXTURE_PT_voxeldata, + bpy.types.TEXTURE_PT_pointdensity, + bpy.types.TEXTURE_PT_pointdensity_turbulence, + bpy.types.TEXTURE_PT_custom_props] def register(): bpy.types.RENDER_PT_render.append(draw_device) diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index 648e67cad8a..28950e4b2eb 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -101,6 +101,7 @@ typedef enum { typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin); typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin); +typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname); typedef struct ModifierTypeInfo { /* The user visible name for this modifier */ @@ -284,6 +285,16 @@ typedef struct ModifierTypeInfo { */ void (*foreachIDLink)(struct ModifierData *md, struct Object *ob, IDWalkFunc walk, void *userData); + + /* Should call the given walk function for each texture that the + * modifier data stores. This is used for finding all textures in + * the context for the UI. + * + * This function is optional. If it is not present, it will be + * assumed the modifier has no textures. + */ + void (*foreachTexLink)(struct ModifierData *md, struct Object *ob, + TexWalkFunc walk, void *userData); } ModifierTypeInfo; ModifierTypeInfo *modifierType_getInfo (ModifierType type); @@ -315,6 +326,10 @@ void modifiers_foreachObjectLink(struct Object *ob, void modifiers_foreachIDLink(struct Object *ob, IDWalkFunc walk, void *userData); +void modifiers_foreachTexLink(struct Object *ob, + TexWalkFunc walk, + void *userData); + struct ModifierData *modifiers_findByType(struct Object *ob, ModifierType type); struct ModifierData *modifiers_findByName(struct Object *ob, const char *name); void modifiers_clearErrors(struct Object *ob); diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 51f1cd61e7c..fe26c0ccd2d 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -195,6 +195,18 @@ void modifiers_foreachIDLink(Object *ob, IDWalkFunc walk, void *userData) } } +void modifiers_foreachTexLink(Object *ob, TexWalkFunc walk, void *userData) +{ + ModifierData *md = ob->modifiers.first; + + for (; md; md=md->next) { + ModifierTypeInfo *mti = modifierType_getInfo(md->type); + + if(mti->foreachTexLink) + mti->foreachTexLink(md, ob, walk, userData); + } +} + void modifier_copyData(ModifierData *md, ModifierData *target) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0c859aa27aa..4c45b8b8e7a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5462,6 +5462,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc) else if(sl->spacetype==SPACE_BUTS) { SpaceButs *sbuts= (SpaceButs *)sl; sbuts->path= NULL; + sbuts->texuser= NULL; } else if(sl->spacetype==SPACE_CONSOLE) { SpaceConsole *sconsole= (SpaceConsole *)sl; diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 89ecc28e425..5bc3b588875 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -728,6 +728,7 @@ void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C); void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, int rows, int maxrows, int type); void uiTemplateNodeLink(uiLayout *layout, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateTextureUser(uiLayout *layout, struct bContext *C); /* items */ void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname); diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt index 0a4f251e46f..84ef75ffac8 100644 --- a/source/blender/editors/space_buttons/CMakeLists.txt +++ b/source/blender/editors/space_buttons/CMakeLists.txt @@ -38,6 +38,7 @@ set(SRC buttons_context.c buttons_header.c buttons_ops.c + buttons_texture.c space_buttons.c buttons_intern.h diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index f91e830d52e..85549caf7ad 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -55,7 +55,6 @@ #include "BKE_screen.h" #include "BKE_texture.h" - #include "RNA_access.h" #include "ED_armature.h" @@ -67,13 +66,6 @@ #include "buttons_intern.h" // own include -typedef struct ButsContextPath { - PointerRNA ptr[8]; - int len; - int flag; - int tex_ctx; -} ButsContextPath; - static int set_pointer_type(ButsContextPath *path, bContextDataResult *result, StructRNA *type) { PointerRNA *ptr; @@ -237,11 +229,13 @@ static int buttons_context_path_material(ButsContextPath *path) RNA_id_pointer_create(&ma->id, &path->ptr[path->len]); path->len++; +#if 0 ma= give_node_material(ma); if(ma) { RNA_id_pointer_create(&ma->id, &path->ptr[path->len]); path->len++; } +#endif return 1; } } @@ -370,8 +364,42 @@ static int buttons_context_path_brush(ButsContextPath *path) return 0; } -static int buttons_context_path_texture(ButsContextPath *path) +static int buttons_context_path_texture(ButsContextPath *path, ButsContextTexture *ct) { + PointerRNA *ptr= &path->ptr[path->len-1]; + ID *id; + + /* if we already have a (pinned) texture, we're done */ + if(RNA_struct_is_a(ptr->type, &RNA_Texture)) + return 1; + + if(!(ct && ct->user)) + return 0; + + id= ct->user->id; + + if(id) { + if(GS(id->name) == ID_BR) + buttons_context_path_brush(path); + else if(GS(id->name) == ID_MA) + buttons_context_path_material(path); + else if(GS(id->name) == ID_WO) + buttons_context_path_world(path); + else if(GS(id->name) == ID_LA) + buttons_context_path_data(path, OB_LAMP); + else if(GS(id->name) == ID_PA) + buttons_context_path_particle(path); + else if(GS(id->name) == ID_OB) + buttons_context_path_object(path); + } + + RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); + path->len++; + + return 1; + + +#if 0 Material *ma; Lamp *la; Brush *br; @@ -468,6 +496,7 @@ static int buttons_context_path_texture(ButsContextPath *path) return 1; } } +#endif /* no path to a texture possible */ return 0; @@ -527,7 +556,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma found= buttons_context_path_material(path); break; case BCONTEXT_TEXTURE: - found= buttons_context_path_texture(path); + found= buttons_context_path_texture(path, sbuts->texuser); break; case BCONTEXT_BONE: found= buttons_context_path_bone(path); @@ -577,6 +606,8 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) PointerRNA *ptr; int a, pflag= 0, flag= 0; + buttons_texture_context_compute(C, sbuts); + if(!sbuts->path) sbuts->path= MEM_callocN(sizeof(ButsContextPath), "ButsContextPath"); @@ -646,7 +677,8 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) const char *buttons_context_dir[] = { "world", "object", "mesh", "armature", "lattice", "curve", "meta_ball", "lamp", "camera", "material", "material_slot", - "texture", "texture_slot", "bone", "edit_bone", "pose_bone", "particle_system", "particle_system_editable", + "texture", "texture_slot", "texture_user", "bone", "edit_bone", + "pose_bone", "particle_system", "particle_system_editable", "cloth", "soft_body", "fluid", "smoke", "collision", "brush", NULL}; int buttons_context(const bContext *C, const char *member, bContextDataResult *result) @@ -703,7 +735,11 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } else if(CTX_data_equals(member, "texture")) { - set_pointer_type(path, result, &RNA_Texture); + ButsContextTexture *ct= sbuts->texuser; + + if(ct) + CTX_data_pointer_set(result, &ct->texture->id, &RNA_Texture, ct->texture); + return 1; } else if(CTX_data_equals(member, "material_slot")) { @@ -718,6 +754,17 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } + else if(CTX_data_equals(member, "texture_user")) { + ButsContextTexture *ct= sbuts->texuser; + + if(ct && ct->user) { + ButsTextureUser *user= ct->user; + CTX_data_pointer_set(result, user->ptr.id.data, user->ptr.type, user->ptr.data); + } + + return 1; + } +#if 0 else if(CTX_data_equals(member, "texture_node")) { PointerRNA *ptr; @@ -781,6 +828,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } +#endif else if(CTX_data_equals(member, "bone")) { set_pointer_type(path, result, &RNA_Bone); return 1; diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index 925223b43ea..eec292d0a65 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -33,14 +33,18 @@ #ifndef ED_BUTTONS_INTERN_H #define ED_BUTTONS_INTERN_H +#include "DNA_listBase.h" +#include "RNA_types.h" + struct ARegion; struct ARegionType; +struct ID; +struct SpaceButs; +struct Tex; struct bContext; struct bContextDataResult; -struct SpaceButs; struct uiLayout; struct wmOperatorType; -struct ID; /* buts->scaflag */ #define BUTS_SENS_SEL 1 @@ -55,6 +59,37 @@ struct ID; #define BUTS_SENS_STATE 512 #define BUTS_ACT_STATE 1024 +/* context data */ + +typedef struct ButsContextPath { + PointerRNA ptr[8]; + int len; + int flag; + int tex_ctx; +} ButsContextPath; + +typedef struct ButsTextureUser { + struct ButsTextureUser *next, *prev; + + struct ID *id; + PointerRNA ptr; + PropertyRNA *prop; + + const char *category; + int icon; + const char *name; + + int index; +} ButsTextureUser; + +typedef struct ButsContextTexture { + ListBase users; + + struct Tex *texture; + struct ButsTextureUser *user; + int index; +} ButsContextTexture; + /* internal exports only */ /* buttons_header.c */ @@ -69,6 +104,9 @@ struct ID *buttons_context_id_path(const struct bContext *C); extern const char *buttons_context_dir[]; /* doc access */ +/* buttons_texture.c */ +void buttons_texture_context_compute(const struct bContext *C, struct SpaceButs *sbuts); + /* buttons_ops.c */ void BUTTONS_OT_file_browse(struct wmOperatorType *ot); void BUTTONS_OT_toolbox(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c new file mode 100644 index 00000000000..010969b3b71 --- /dev/null +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -0,0 +1,337 @@ +/* + * $Id$ + * + * ***** 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) 2009 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_buttons/buttons_texture.c + * \ingroup spbuttons + */ + + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_listbase.h" +#include "BLI_string.h" +#include "BLI_utildefines.h" + +#include "DNA_brush_types.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_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_world_types.h" + +#include "BKE_context.h" +#include "BKE_material.h" +#include "BKE_modifier.h" +#include "BKE_node.h" +#include "BKE_paint.h" + +#include "RNA_access.h" + +#include "UI_interface.h" +#include "UI_resources.h" + +#include "../interface/interface_intern.h" + +#include "buttons_intern.h" // own include + +/************************* Texture User **************************/ + +static void buttons_texture_user_add(ListBase *users, ID *id, + PointerRNA ptr, PropertyRNA *prop, + const char *category, int icon, const char *name) +{ + ButsTextureUser *user = MEM_callocN(sizeof(ButsTextureUser), "ButsTextureUser"); + + user->id= id; + user->ptr = ptr; + user->prop = prop; + user->category = category; + user->icon = icon; + user->name = name; + user->index = BLI_countlist(users); + + BLI_addtail(users, user); +} + +static void buttons_texture_users_find_nodetree(ListBase *users, ID *id, + bNodeTree *ntree, const char *category) +{ + bNode *node; + + if(ntree) { + for(node=ntree->nodes.first; node; node=node->next) { + if(node->type == SH_NODE_TEXTURE) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_add(users, id, ptr, prop, category, ICON_NODE, node->name); + } + else if(node->type == NODE_GROUP && node->id) { + buttons_texture_users_find_nodetree(users, id, (bNodeTree*)node->id, category); + } + } + } +} + +static void buttons_texture_modifier_foreach(void *userData, Object *ob, ModifierData *md, const char *propname) +{ + PointerRNA ptr; + PropertyRNA *prop; + ListBase *users = userData; + + RNA_pointer_create(&ob->id, &RNA_Modifier, md, &ptr); + prop = RNA_struct_find_property(&ptr, propname); + + buttons_texture_user_add(users, &ob->id, ptr, prop, "Modifiers", ICON_MODIFIER, md->name); +} + +static void buttons_texture_users_from_context(ListBase *users, const bContext *C, SpaceButs *sbuts) +{ + Scene *scene= NULL; + Object *ob= NULL; + Material *ma= NULL; + Lamp *la= NULL; + World *wrld= NULL; + Brush *brush= NULL; + ID *pinid = sbuts->pinid; + + /* get data from context */ + if(pinid) { + if(GS(pinid->name) == ID_SCE) + scene= (Scene*)pinid; + else if(GS(pinid->name) == ID_OB) + ob= (Object*)pinid; + else if(GS(pinid->name) == ID_LA) + la= (Lamp*)pinid; + else if(GS(pinid->name) == ID_WO) + wrld= (World*)pinid; + else if(GS(pinid->name) == ID_MA) + ma= (Material*)pinid; + else if(GS(pinid->name) == ID_BR) + brush= (Brush*)pinid; + } + + if(!scene) + scene= CTX_data_scene(C); + + if(!(pinid || pinid == &scene->id)) { + ob= (scene->basact)? scene->basact->object: NULL; + wrld= scene->world; + brush= paint_brush(paint_get_active(scene)); + } + + if(ob && ob->type == OB_LAMP && !la) + la= ob->data; + if(ob && !ma) + ma= give_current_material(ob, ob->actcol); + + /* fill users */ + users->first = users->last = NULL; + + if(ma) + buttons_texture_users_find_nodetree(users, &ma->id, ma->nodetree, "Material"); + if(la) + buttons_texture_users_find_nodetree(users, &la->id, la->nodetree, "Lamp"); + if(wrld) + buttons_texture_users_find_nodetree(users, &wrld->id, wrld->nodetree, "World"); + + if(ob) { + ParticleSystem *psys; + MTex *mtex; + int a; + + /* modifiers */ + modifiers_foreachTexLink(ob, buttons_texture_modifier_foreach, users); + + /* particle systems */ + /* todo: these slots are not in the UI */ + for(psys=ob->particlesystem.first; psys; psys=psys->next) { + for(a=0; apart->mtex[a]; + + if(mtex) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&psys->part->id, &RNA_ParticleSettingsTextureSlot, mtex, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_add(users, &psys->part->id, ptr, prop, "Particles", ICON_PARTICLES, psys->name); + } + } + } + } + + /* brush */ + if(brush) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&brush->id, &RNA_BrushTextureSlot, &brush->mtex, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_add(users, &brush->id, ptr, prop, "Brush", ICON_BRUSH_DATA, brush->id.name+2); + } +} + +void buttons_texture_context_compute(const bContext *C, SpaceButs *sbuts) +{ + /* gatheravailable texture users in context. runs on every draw of + properties editor, before the buttons are created. */ + ButsContextTexture *ct= sbuts->texuser; + + if(!ct) { + ct= MEM_callocN(sizeof(ButsContextTexture), "ButsContextTexture"); + sbuts->texuser= ct; + } + else { + BLI_freelistN(&ct->users); + } + + buttons_texture_users_from_context(&ct->users, C, sbuts); + + /* set one user as active based on active index */ + if(ct->index >= BLI_countlist(&ct->users)) + ct->index= 0; + + ct->user = BLI_findlink(&ct->users, ct->index); + + if(ct->user) { + PointerRNA texptr; + Tex *tex; + + texptr = RNA_property_pointer_get(&ct->user->ptr, ct->user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + + ct->texture = tex; + } +} + +static void template_texture_select(bContext *C, void *user_p, void *UNUSED(arg)) +{ + /* callback when selecting a texture user in the menu */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user = (ButsTextureUser*)user_p; + PointerRNA texptr; + Tex *tex; + + if(!ct) + return; + + /* set user as active */ + texptr = RNA_property_pointer_get(&user->ptr, user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + + ct->texture = tex; + ct->user = user; + ct->index = user->index; +} + +static void template_texture_user_menu(bContext *C, uiLayout *layout, void *UNUSED(arg)) +{ + /* callback when opening texture user selection menu, to create buttons. */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + uiBlock *block = uiLayoutGetBlock(layout); + const char *last_category = NULL; + + for(user=ct->users.first; user; user=user->next) { + uiBut *but; + char name[UI_MAX_NAME_STR]; + + /* add label per category */ + if(!last_category || strcmp(last_category, user->category) != 0) { + uiItemL(layout, user->category, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + /* create button */ + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", user->name); + + but = uiDefIconTextBut(block, BUT, 0, user->icon, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiButSetNFunc(but, template_texture_select, MEM_dupallocN(user), NULL); + + last_category = user->category; + } +} + +void uiTemplateTextureUser(uiLayout *layout, bContext *C) +{ + /* texture user selection dropdown menu. the available users have been + gathered before drawing in ButsContextTexture, we merely need to + display the current item. */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + ButsTextureUser *user; + char name[UI_MAX_NAME_STR]; + + if(!ct) + return; + + /* get current user */ + user= ct->user; + + if(!user) { + uiItemL(layout, "No textures in context.", ICON_NONE); + return; + } + + /* create button */ + BLI_snprintf(name, UI_MAX_NAME_STR, "%s", user->name); + + if(user->icon) { + but= uiDefIconTextMenuBut(block, template_texture_user_menu, NULL, + user->icon, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + else { + but= uiDefMenuBut(block, template_texture_user_menu, NULL, + name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + + /* some cosmetic tweaks */ + but->type= MENU; + but->flag |= UI_TEXT_LEFT; + but->flag &= ~UI_ICON_SUBMENU; +} + diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 16c4df59420..a9ad789c9b2 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -106,6 +106,12 @@ static void buttons_free(SpaceLink *sl) if(sbuts->path) MEM_freeN(sbuts->path); + + if(sbuts->texuser) { + ButsContextTexture *ct= sbuts->texuser; + BLI_freelistN(&ct->users); + MEM_freeN(ct); + } } /* spacetype; init callback */ diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index debdf87f20f..375cd482867 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -64,6 +64,7 @@ struct bScreen; struct Scene; struct wmOperator; struct wmTimer; +struct Tex; /** * The base structure all the other spaces @@ -144,6 +145,8 @@ typedef struct SpaceButs { void *path; /* runtime */ int pathflag, dataicon; /* runtime */ ID *pinid; + + void *texuser; } SpaceButs; typedef struct SpaceSeq { diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 765cee9e6d1..4e36c509c3b 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -442,6 +442,9 @@ void RNA_api_ui_layout(StructRNA *srna) parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "template_texture_user", "uiTemplateTextureUser"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "introspect", "uiLayoutIntrospect"); parm= RNA_def_string(func, "string", "", 1024*1024, "Descr", "DESCR"); RNA_def_function_return(func, parm); diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c index a0ee047e319..0b46d950950 100644 --- a/source/blender/modifiers/intern/MOD_armature.c +++ b/source/blender/modifiers/intern/MOD_armature.c @@ -213,4 +213,5 @@ ModifierTypeInfo modifierType_Armature = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c index 90954fef1c7..c7fa75478f0 100644 --- a/source/blender/modifiers/intern/MOD_array.c +++ b/source/blender/modifiers/intern/MOD_array.c @@ -826,4 +826,5 @@ ModifierTypeInfo modifierType_Array = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c index 323ed71dd74..277f404f64d 100644 --- a/source/blender/modifiers/intern/MOD_bevel.c +++ b/source/blender/modifiers/intern/MOD_bevel.c @@ -150,4 +150,5 @@ ModifierTypeInfo modifierType_Bevel = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index 4b4d0124aae..761f8dd0add 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -197,4 +197,5 @@ ModifierTypeInfo modifierType_Boolean = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c index e293be5886d..1c56d81a798 100644 --- a/source/blender/modifiers/intern/MOD_build.c +++ b/source/blender/modifiers/intern/MOD_build.c @@ -299,5 +299,6 @@ ModifierTypeInfo modifierType_Build = { /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c index 5cb352ef482..d0b50eaa2e2 100644 --- a/source/blender/modifiers/intern/MOD_cast.c +++ b/source/blender/modifiers/intern/MOD_cast.c @@ -638,4 +638,5 @@ ModifierTypeInfo modifierType_Cast = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c index 30ddb3f7b9c..769b97c09c7 100644 --- a/source/blender/modifiers/intern/MOD_cloth.c +++ b/source/blender/modifiers/intern/MOD_cloth.c @@ -216,4 +216,5 @@ ModifierTypeInfo modifierType_Cloth = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c index 83ba8a12163..f4a9ea62ead 100644 --- a/source/blender/modifiers/intern/MOD_collision.c +++ b/source/blender/modifiers/intern/MOD_collision.c @@ -267,4 +267,5 @@ ModifierTypeInfo modifierType_Collision = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c index ecd10250c00..d928c239eac 100644 --- a/source/blender/modifiers/intern/MOD_curve.c +++ b/source/blender/modifiers/intern/MOD_curve.c @@ -162,4 +162,5 @@ ModifierTypeInfo modifierType_Curve = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c index ba9dbfc31ad..e3c39752bd1 100644 --- a/source/blender/modifiers/intern/MOD_decimate.c +++ b/source/blender/modifiers/intern/MOD_decimate.c @@ -218,4 +218,5 @@ ModifierTypeInfo modifierType_Decimate = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index 02845ecaab7..17f94996a1c 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -134,6 +134,12 @@ static void foreachIDLink(ModifierData *md, Object *ob, foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); } +static void foreachTexLink(ModifierData *md, Object *ob, + TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static int isDisabled(ModifierData *md, int UNUSED(useRenderParams)) { DisplaceModifierData *dmd = (DisplaceModifierData*) md; @@ -292,4 +298,5 @@ ModifierTypeInfo modifierType_Displace = { /* dependsOnNormals */ dependsOnNormals, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c index 8d0aea41b5c..db491742265 100644 --- a/source/blender/modifiers/intern/MOD_edgesplit.c +++ b/source/blender/modifiers/intern/MOD_edgesplit.c @@ -1311,4 +1311,5 @@ ModifierTypeInfo modifierType_EdgeSplit = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index f1bc0d33fd8..d8185345c03 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -1037,4 +1037,5 @@ ModifierTypeInfo modifierType_Explode = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_fluidsim.c b/source/blender/modifiers/intern/MOD_fluidsim.c index 354dc33ffe0..cce288b4ad5 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim.c +++ b/source/blender/modifiers/intern/MOD_fluidsim.c @@ -162,4 +162,5 @@ ModifierTypeInfo modifierType_Fluidsim = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c index 082c199b16f..f37ff68d4ba 100644 --- a/source/blender/modifiers/intern/MOD_hook.c +++ b/source/blender/modifiers/intern/MOD_hook.c @@ -303,4 +303,5 @@ ModifierTypeInfo modifierType_Hook = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c index 694f8fb3e52..31c17fb7376 100644 --- a/source/blender/modifiers/intern/MOD_lattice.c +++ b/source/blender/modifiers/intern/MOD_lattice.c @@ -156,4 +156,5 @@ ModifierTypeInfo modifierType_Lattice = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c index b36d6848533..a050892b87e 100644 --- a/source/blender/modifiers/intern/MOD_mask.c +++ b/source/blender/modifiers/intern/MOD_mask.c @@ -419,4 +419,5 @@ ModifierTypeInfo modifierType_Mask = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index ba73f3fa0d1..33a3502017b 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -464,4 +464,5 @@ ModifierTypeInfo modifierType_MeshDeform = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index b1c765e5c9b..7cde87b20d9 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -363,4 +363,5 @@ ModifierTypeInfo modifierType_Mirror = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c index 134574ae6c4..48b1112cad2 100644 --- a/source/blender/modifiers/intern/MOD_multires.c +++ b/source/blender/modifiers/intern/MOD_multires.c @@ -131,4 +131,5 @@ ModifierTypeInfo modifierType_Multires = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_none.c b/source/blender/modifiers/intern/MOD_none.c index 489733c8480..304ec39ef93 100644 --- a/source/blender/modifiers/intern/MOD_none.c +++ b/source/blender/modifiers/intern/MOD_none.c @@ -77,4 +77,5 @@ ModifierTypeInfo modifierType_None = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c index 46d53e0db15..b0b43e018f7 100644 --- a/source/blender/modifiers/intern/MOD_particleinstance.c +++ b/source/blender/modifiers/intern/MOD_particleinstance.c @@ -350,4 +350,5 @@ ModifierTypeInfo modifierType_ParticleInstance = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c index 533bfd203b5..5635ba33d80 100644 --- a/source/blender/modifiers/intern/MOD_particlesystem.c +++ b/source/blender/modifiers/intern/MOD_particlesystem.c @@ -242,4 +242,5 @@ ModifierTypeInfo modifierType_ParticleSystem = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index 17e350482f0..c5fdf465a0a 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -903,4 +903,5 @@ ModifierTypeInfo modifierType_Screw = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_shapekey.c b/source/blender/modifiers/intern/MOD_shapekey.c index 94d23de6573..6e55466c1e4 100644 --- a/source/blender/modifiers/intern/MOD_shapekey.c +++ b/source/blender/modifiers/intern/MOD_shapekey.c @@ -148,5 +148,6 @@ ModifierTypeInfo modifierType_ShapeKey = { /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index e1fc4bc969f..ba25df19b3e 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -186,4 +186,5 @@ ModifierTypeInfo modifierType_Shrinkwrap = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c index ea4771b679a..2f875386dc6 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.c +++ b/source/blender/modifiers/intern/MOD_simpledeform.c @@ -395,4 +395,5 @@ ModifierTypeInfo modifierType_SimpleDeform = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c index d8e94e92bfa..c0622f975df 100644 --- a/source/blender/modifiers/intern/MOD_smoke.c +++ b/source/blender/modifiers/intern/MOD_smoke.c @@ -184,4 +184,5 @@ ModifierTypeInfo modifierType_Smoke = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ NULL }; diff --git a/source/blender/modifiers/intern/MOD_smooth.c b/source/blender/modifiers/intern/MOD_smooth.c index 5f76fad14b1..300501c7459 100644 --- a/source/blender/modifiers/intern/MOD_smooth.c +++ b/source/blender/modifiers/intern/MOD_smooth.c @@ -273,4 +273,5 @@ ModifierTypeInfo modifierType_Smooth = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_softbody.c b/source/blender/modifiers/intern/MOD_softbody.c index 25996286735..c475328676b 100644 --- a/source/blender/modifiers/intern/MOD_softbody.c +++ b/source/blender/modifiers/intern/MOD_softbody.c @@ -87,4 +87,5 @@ ModifierTypeInfo modifierType_Softbody = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 1b7b724835c..2a194b2890a 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -689,5 +689,6 @@ ModifierTypeInfo modifierType_Solidify = { /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL + /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index e3e09f660aa..be6f976495b 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -152,4 +152,6 @@ ModifierTypeInfo modifierType_Subsurf = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; + diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c index 382358b179e..e30b7f2392d 100644 --- a/source/blender/modifiers/intern/MOD_surface.c +++ b/source/blender/modifiers/intern/MOD_surface.c @@ -192,4 +192,5 @@ ModifierTypeInfo modifierType_Surface = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, /* foreachIDLink */ NULL, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c index a5d2e0b38c7..8bde2fa35dc 100644 --- a/source/blender/modifiers/intern/MOD_uvproject.c +++ b/source/blender/modifiers/intern/MOD_uvproject.c @@ -432,4 +432,5 @@ ModifierTypeInfo modifierType_UVProject = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ NULL, }; diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c index b23ec642466..bdd7926904d 100644 --- a/source/blender/modifiers/intern/MOD_warp.c +++ b/source/blender/modifiers/intern/MOD_warp.c @@ -140,6 +140,11 @@ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *u walk(userData, ob, (ID **)&wmd->map_object); } +static void foreachTexLink(ModifierData *md, Object *ob, TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static void updateDepgraph(ModifierData *md, DagForest *forest, struct Scene *UNUSED(scene), Object *UNUSED(ob), DagNode *obNode) { @@ -362,4 +367,5 @@ ModifierTypeInfo modifierType_Warp = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c index 6dfe5314131..fe2eab2125d 100644 --- a/source/blender/modifiers/intern/MOD_wave.c +++ b/source/blender/modifiers/intern/MOD_wave.c @@ -126,6 +126,12 @@ static void foreachIDLink(ModifierData *md, Object *ob, foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); } +static void foreachTexLink(ModifierData *md, Object *ob, + TexWalkFunc walk, void *userData) +{ + walk(userData, ob, md, "texture"); +} + static void updateDepgraph(ModifierData *md, DagForest *forest, Scene *UNUSED(scene), Object *UNUSED(ob), @@ -470,4 +476,5 @@ ModifierTypeInfo modifierType_Wave = { /* dependsOnNormals */ NULL, /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ foreachIDLink, + /* foreachTexLink */ foreachTexLink, }; diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index 7e8ed741b02..0df709cf810 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -50,6 +50,7 @@ void register_node_type_sh_vect_math(ListBase *lb); void register_node_type_sh_mix_rgb(ListBase *lb); void register_node_type_sh_rgbtobw(ListBase *lb); void register_node_type_sh_mapping(ListBase *lb); +void register_node_type_sh_texture(ListBase *lb); void register_node_type_sh_attribute(ListBase *lb); void register_node_type_sh_geometry(ListBase *lb); -- cgit v1.2.3 From 03f9f1e4d7ba585c209349205fad26070ab6d305 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 8 Jun 2011 23:36:56 +0000 Subject: Cycles UI: bring default theme colors in line with startup.blend. --- .../blender/editors/interface/interface_widgets.c | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index fc8770ccc37..ab0cfe46419 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1210,7 +1210,7 @@ static struct uiWidgetStateColors wcol_state_colors= { static struct uiWidgetColors wcol_num= { {25, 25, 25, 255}, - {180, 180, 180, 255}, + {160, 160, 160, 255}, {153, 153, 153, 255}, {90, 90, 90, 255}, @@ -1218,12 +1218,12 @@ static struct uiWidgetColors wcol_num= { {255, 255, 255, 255}, 1, - -20, 0 + -5, 0 }; static struct uiWidgetColors wcol_numslider= { {25, 25, 25, 255}, - {180, 180, 180, 255}, + {160, 160, 160, 255}, {153, 153, 153, 255}, {128, 128, 128, 255}, @@ -1231,7 +1231,7 @@ static struct uiWidgetColors wcol_numslider= { {255, 255, 255, 255}, 1, - -20, 0 + -5, 0 }; static struct uiWidgetColors wcol_text= { @@ -1244,20 +1244,20 @@ static struct uiWidgetColors wcol_text= { {255, 255, 255, 255}, 1, - 0, 25 + 0, 5 }; static struct uiWidgetColors wcol_option= { {0, 0, 0, 255}, - {70, 70, 70, 255}, - {70, 70, 70, 255}, + {60, 60, 60, 255}, + {60, 60, 60, 255}, {255, 255, 255, 255}, {0, 0, 0, 255}, {255, 255, 255, 255}, 1, - 15, -15 + 5, -5 }; /* button that shows popup */ @@ -1265,13 +1265,13 @@ static struct uiWidgetColors wcol_menu= { {0, 0, 0, 255}, {70, 70, 70, 255}, {70, 70, 70, 255}, - {255, 255, 255, 255}, + {45, 45, 45, 255}, {255, 255, 255, 255}, {204, 204, 204, 255}, 1, - 15, -15 + 5, -5 }; /* button that starts pulldown */ @@ -1298,7 +1298,7 @@ static struct uiWidgetColors wcol_menu_item= { {255, 255, 255, 255}, {0, 0, 0, 255}, - 1, + 0, 38, 0 }; @@ -1323,11 +1323,11 @@ static struct uiWidgetColors wcol_radio= { {86, 128, 194, 255}, {255, 255, 255, 255}, - {255, 255, 255, 255}, + {230, 230, 230, 255}, {0, 0, 0, 255}, 1, - 15, -15 + 5, -5 }; static struct uiWidgetColors wcol_regular= { @@ -1353,7 +1353,7 @@ static struct uiWidgetColors wcol_tool= { {255, 255, 255, 255}, 1, - 15, -15 + 5, -5 }; static struct uiWidgetColors wcol_box= { -- cgit v1.2.3 From d06242ac71f104abcb3ec2f58216a0a920c0ffe9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 10 Jun 2011 12:45:11 +0000 Subject: Cycles: fix crash splitting/joining properties editor. --- source/blender/editors/space_buttons/space_buttons.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index a9ad789c9b2..09a2eac8dcb 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -135,6 +135,7 @@ static SpaceLink *buttons_duplicate(SpaceLink *sl) /* clear or remove stuff from old */ sbutsn->ri= NULL; sbutsn->path= NULL; + sbutsn->texuser= NULL; return (SpaceLink *)sbutsn; } -- cgit v1.2.3 From b0d0ade61d3f4e930c60fd9fc21dcba50ac058e9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 10 Jun 2011 13:22:55 +0000 Subject: Cycles: quick GLSL stubs for new material nodes, so they show something. BSDFs and procedural textures show mostly as diffuse and white, geometry and texture coordinates are incomplete. --- source/blender/blenkernel/intern/node.c | 2 + source/blender/gpu/intern/gpu_draw.c | 27 +- source/blender/gpu/intern/gpu_shader_material.glsl | 310 +++ .../blender/gpu/intern/gpu_shader_material.glsl.c | 2602 +++++++++++--------- .../nodes/intern/SHD_nodes/SHD_add_closure.c | 7 +- .../nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c | 7 +- .../nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c | 7 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 25 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glossy.c | 8 +- .../nodes/intern/SHD_nodes/SHD_bsdf_translucent.c | 7 +- .../nodes/intern/SHD_nodes/SHD_bsdf_transparent.c | 7 +- .../nodes/intern/SHD_nodes/SHD_bsdf_velvet.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_emission.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_fresnel.c | 8 +- .../blender/nodes/intern/SHD_nodes/SHD_geometry.c | 9 +- .../nodes/intern/SHD_nodes/SHD_light_path.c | 7 +- .../nodes/intern/SHD_nodes/SHD_mix_closure.c | 7 +- .../nodes/intern/SHD_nodes/SHD_output_material.c | 13 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 7 +- .../nodes/intern/SHD_nodes/SHD_tex_clouds.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_coord.c | 14 +- .../nodes/intern/SHD_nodes/SHD_tex_distnoise.c | 7 +- .../nodes/intern/SHD_nodes/SHD_tex_environment.c | 10 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 10 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_magic.c | 10 +- .../nodes/intern/SHD_nodes/SHD_tex_marble.c | 7 +- .../nodes/intern/SHD_nodes/SHD_tex_musgrave.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_noise.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_sky.c | 7 +- .../nodes/intern/SHD_nodes/SHD_tex_stucci.c | 7 +- .../nodes/intern/SHD_nodes/SHD_tex_voronoi.c | 7 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_wood.c | 7 +- 32 files changed, 1918 insertions(+), 1263 deletions(-) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index ee13d19e26e..d9c1bf058a5 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3114,6 +3114,8 @@ static void gpu_from_node_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack gs[i].type= GPU_VEC3; else if (sock->type == SOCK_RGBA) gs[i].type= GPU_VEC4; + else if (sock->type == SOCK_CLOSURE) + gs[i].type= GPU_VEC4; else gs[i].type= GPU_NONE; diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 7dfbc52819e..390b53bd750 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -1189,6 +1189,7 @@ void GPU_end_object_materials(void) int GPU_default_lights(void) { + float zero[3] = {0.0f, 0.0f, 0.0f}; int a, count = 0; /* initialize */ @@ -1214,27 +1215,25 @@ int GPU_default_lights(void) glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_FALSE); - glLightfv(GL_LIGHT0, GL_POSITION, U.light[0].vec); - glLightfv(GL_LIGHT0, GL_DIFFUSE, U.light[0].col); - glLightfv(GL_LIGHT0, GL_SPECULAR, U.light[0].spec); - - glLightfv(GL_LIGHT1, GL_POSITION, U.light[1].vec); - glLightfv(GL_LIGHT1, GL_DIFFUSE, U.light[1].col); - glLightfv(GL_LIGHT1, GL_SPECULAR, U.light[1].spec); - - glLightfv(GL_LIGHT2, GL_POSITION, U.light[2].vec); - glLightfv(GL_LIGHT2, GL_DIFFUSE, U.light[2].col); - glLightfv(GL_LIGHT2, GL_SPECULAR, U.light[2].spec); - for(a=0; a<8; a++) { if(a<3) { if(U.light[a].flag) { glEnable(GL_LIGHT0+a); + + glLightfv(GL_LIGHT0+a, GL_POSITION, U.light[a].vec); + glLightfv(GL_LIGHT0+a, GL_DIFFUSE, U.light[a].col); + glLightfv(GL_LIGHT0+a, GL_SPECULAR, U.light[a].spec); + count++; } - else + else { glDisable(GL_LIGHT0+a); - + + glLightfv(GL_LIGHT0+a, GL_POSITION, zero); + glLightfv(GL_LIGHT0+a, GL_DIFFUSE, zero); + glLightfv(GL_LIGHT0+a, GL_SPECULAR, zero); + } + // clear stuff from other opengl lamp usage glLightf(GL_LIGHT0+a, GL_SPOT_CUTOFF, 180.0); glLightf(GL_LIGHT0+a, GL_CONSTANT_ATTENUATION, 1.0); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index feb0a84fa87..0faf550e882 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -108,6 +108,7 @@ void linearrgb_to_srgb(vec4 col_from, out vec4 col_to) } #define M_PI 3.14159265358979323846 +#define M_1_PI 0.31830988618379069 /*********** SHADER NODES ***************/ @@ -1786,3 +1787,312 @@ void shade_alpha_obcolor(vec4 col, vec4 obcol, out vec4 outcol) outcol = vec4(col.rgb, col.a*obcol.a); } +/*********** NEW SHADER UTILITIES **************/ + +float fresnel_dielectric(vec3 Incoming, vec3 Normal, float eta) +{ + /* compute fresnel reflectance without explicitly computing + the refracted direction */ + float c = abs(dot(Incoming, Normal)); + float g = eta * eta - 1.0 + c * c; + float result; + + if(g > 0.0) { + g = sqrt(g); + float A =(g - c)/(g + c); + float B =(c *(g + c)- 1.0)/(c *(g - c)+ 1.0); + result = 0.5 * A * A *(1.0 + B * B); + } + else + result = 1.0; /* TIR (no refracted component) */ + + return result; +} + +float hypot(float x, float y) +{ + return sqrt(x*x + y*y); +} + +/*********** NEW SHADER NODES ***************/ + +#define NUM_LIGHTS 3 + +/* bsdfs */ + +void node_bsdf_diffuse(vec4 color, vec3 N, out vec4 result) +{ + result = vec4(0.0); + + for(int i = 0; i < NUM_LIGHTS; i++) { + vec3 L = gl_LightSource[i].position.xyz; + vec4 Ldiffuse = gl_LightSource[i].diffuse; + + float bsdf = abs(dot(N, L)) * M_1_PI; + result += Ldiffuse*color*bsdf; + } +} + +void node_bsdf_glossy(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +{ + result = vec4(0.0); + + for(int i = 0; i < NUM_LIGHTS; i++) { + vec3 H = gl_LightSource[i].halfVector.xyz; + vec4 Lspecular = gl_LightSource[i].specular; + + float bsdf = pow(abs(dot(N, H)), 1.0/roughness) * M_1_PI; + result += Lspecular*color*bsdf; + } +} + +void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 N, vec3 I, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_glass(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_translucent(vec4 color, vec3 N, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_transparent(vec4 color, out vec4 result) +{ + /* this isn't right */ + result.r = color.r; + result.g = color.g; + result.b = color.b; + result.a = 0.0; +} + +void node_bsdf_velvet(vec4 color, float sigma, float fresnel, vec3 N, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +/* emission */ + +void node_emission(vec4 color, float strength, vec3 N, out vec4 result) +{ + result = color*strength * M_1_PI; +} + +/* closures */ + +void node_mix_closure(float fac, vec4 closure1, vec4 closure2, out vec4 closure) +{ + closure = mix(closure1, closure2, fac); +} + +void node_add_closure(vec4 closure1, vec4 closure2, out vec4 closure) +{ + closure = closure1 + closure2; +} + +/* fresnel */ + +void node_fresnel(float f, vec3 N, vec3 I, out float result) +{ + f = max(1.0 - f, 0.00001); + result = fresnel_dielectric(I, N, 1.0/f); //backfacing()? f: 1.0/f); +} + +/* geometry */ + +void node_geometry(vec3 I, vec3 N, mat4 toworld, + out vec3 position, out vec3 normal, out vec3 tangent, + out vec3 true_normal, out vec3 incoming, out vec3 parametric, + out float backfacing) +{ + position = (toworld*vec4(I, 1.0)).xyz; + normal = N; + tangent = vec3(0.0); + true_normal = N; + incoming = I; + parametric = vec3(0.0); + backfacing = 0.0; +} + +void node_tex_coord(vec3 I, vec3 N, mat4 toworld, + vec3 attr_orco, vec3 attr_uv, + out vec3 generated, out vec3 uv, out vec3 object, + out vec3 camera, out vec3 window, out vec3 reflection) +{ + generated = attr_orco; + uv = attr_uv; + object = I; + camera = I; + window = gl_FragCoord.xyz; + reflection = reflect(N, I); + +} + +/* textures */ + +void node_tex_blend(vec3 co, out float fac) +{ + fac = 1.0; +} + +void node_tex_clouds(vec3 co, float size, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_distnoise(vec3 co, float size, float distortion, out float fac) +{ + fac = 1.0; +} + +void node_tex_environment(vec3 co, sampler2D ima, out vec4 color) +{ + float u = (atan(co.y, co.x) + M_PI)/(2.0*M_PI); + float v = atan(co.z, hypot(co.x, co.y))/M_PI + 0.5; + + color = texture2D(ima, vec2(u, v)); +} + +void node_tex_image(vec3 co, sampler2D ima, out vec4 color) +{ + color = texture2D(ima, co.xy); +} + +void node_tex_magic(vec3 p, float turbulence, float n, out vec4 color) +{ + float turb = turbulence/5.0; + + float x = sin((p.x + p.y + p.z)*5.0); + float y = cos((-p.x + p.y - p.z)*5.0); + float z = -cos((-p.x - p.y + p.z)*5.0); + + if(n > 0.0) { + x *= turb; + y *= turb; + z *= turb; + y = -cos(x-y+z); + y *= turb; + + if(n > 1.0) { + x= cos(x-y-z); + x *= turb; + + if(n > 2.0) { + z= sin(-x-y-z); + z *= turb; + + if(n > 3.0) { + x= -cos(-x+y-z); + x *= turb; + + if(n > 4.0) { + y= -sin(-x+y+z); + y *= turb; + + if(n > 5.0) { + y= -cos(-x+y+z); + y *= turb; + + if(n > 6.0) { + x= cos(x+y+z); + x *= turb; + + if(n > 7.0) { + z= sin(x+y-z); + z *= turb; + + if(n > 8.0) { + x= -cos(-x-y+z); + x *= turb; + + if(n > 9.0) { + y= -sin(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0) { + turb *= 2.0; + x /= turb; + y /= turb; + z /= turb; + } + + color = vec4(0.5 - x, 0.5 - y, 0.5 - z, 1.0); +} + +void node_tex_marble(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +void node_tex_musgrave(vec3 co, float size, float dimension, float lacunarity, float octaves, float offset, float gain, out float fac) +{ + fac = 1.0; +} + +void node_tex_noise(vec3 co, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_sky(vec3 co, out vec4 color) +{ + color = vec4(1.0); +} + +void node_tex_stucci(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +void node_tex_voronoi(vec3 co, float size, float weight1, float weight2, float weight3, float weight4, float exponent, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_wood(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +/* light path */ + +void node_light_path( + out float is_camera_ray, + out float is_shadow_ray, + out float is_diffuse_ray, + out float is_glossy_ray, + out float is_reflection_ray, + out float is_transmission_ray) +{ + is_camera_ray = 1.0; + is_shadow_ray = 0.0; + is_diffuse_ray = 0.0; + is_glossy_ray = 0.0; + is_reflection_ray = 0.0; + is_transmission_ray = 0.0; +} + +/* output */ + +void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result) +{ + result = surface * M_PI; +} + diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index b60f7f1555e..f87e346602b 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,1232 +1,1428 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 39207; +int datatoc_gpu_shader_material_glsl_size= 45475; 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, 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,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,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, + 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,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,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, - 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, + 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, 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, +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, 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, + 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,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, +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,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,100,105,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, 49, 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, 49, 68, 40, - 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, - 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, - 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, - 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, - 46, 48, 41, 42, 48, 46, 53, 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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, - 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111, -108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114, -101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99, -111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117, -114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 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, +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,100,105,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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, + 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, +118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117, +116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, + 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 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, + 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, +116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, + 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, + 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, + 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, + 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 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, 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, + 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,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, + 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,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, 49, 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, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, - 99, 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, + 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, 49, 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, 49, 68, 40, 99,111,108,111,114, +109, 97,112, 44, 32,102, 97, 99, 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,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, +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,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,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, - 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,109, 79, 98,106, - 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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,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,109, 86,105,101,119, + 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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, 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, + 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, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, + 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, 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,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, 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, + 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,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, 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, 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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 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, +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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112, +100,105,115,116, 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,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, 10, 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,125, 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, +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, 10, 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,125, 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, +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,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 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, 76, + 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, 52, 32, 76,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, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32, + 97, 98,115, 40,100,111,116, 40, 78, 44, 32, 76, 41, 41, 32, 42, 32, 77, 95, 49, 95, 80, 73, 59, 10, 9, 9,114,101,115,117,108, +116, 32, 43, 61, 32, 76,100,105,102,102,117,115,101, 42, 99,111,108,111,114, 42, 98,115,100,102, 59, 10, 9,125, 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,102,108,111, 97,116, 32,102,114,101,115,110,101,108, + 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,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 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, 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, 52, 32, 76,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, 59, 10, 10, 9, + 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,112,111,119, 40, 97, 98,115, 40,100,111,116, 40, 78, 44, 32, 72, 41, 41, + 44, 32, 49, 46, 48, 47,114,111,117,103,104,110,101,115,115, 41, 32, 42, 32, 77, 95, 49, 95, 80, 73, 59, 10, 9, 9,114,101,115, +117,108,116, 32, 43, 61, 32, 76,115,112,101, 99,117,108, 97,114, 42, 99,111,108,111,114, 42, 98,115,100,102, 59, 10, 9,125, 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, 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,102,114,101,115,110,101,108, 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, 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, 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,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 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, 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, 32, 42, 32, 77, 95, 49, 95, 80, 73, 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, 99,108,111,115,117,114,101, 40,102, +108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32,118,101, 99, 52, 32, 99,108, +111,115,117,114,101, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, 10,123, 10, 9, 99,108,111, +115,117,114,101, 32, 61, 32,109,105,120, 40, 99,108,111,115,117,114,101, 49, 44, 32, 99,108,111,115,117,114,101, 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, 99,108,111,115,117,114,101, 40,118,101, + 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 50, 44, 32,111,117,116, 32, +118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, 10,123, 10, 9, 99,108,111,115,117,114,101, 32, 61, 32, 99,108,111,115,117, +114,101, 49, 32, 43, 32, 99,108,111,115,117,114,101, 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,102, 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, 32, 61, 32,109, 97,120, 40, 49, 46, 48, 32, 45, 32,102, 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, + 49, 46, 48, 47,102, 41, 59, 32, 47, 47, 98, 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32,102, 58, 32, 49, 46, 48, 47,102, + 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,116,111,119,111,114,108, +100, 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, +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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,102,108, +111, 97,116, 32,102, 97, 99, 41, 10,123, 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,100,105,115,116,110,111,105,115,101, 40, +118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, + 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101,110, 99,101, 47, 53, 46, 48, + 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32,112, 46,121, 32, 43, 32,112, + 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, 40, 45,112, 46,120, 32, 43, + 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,122, 32, 61, 32, 45, 99,111, +115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 10, 9,105,102, 40, +110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 42, 61, 32,116, +117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, 99,111,115, 40,120, 45,121, + 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, 32, 62, 32, 49, 46, 48, 41, + 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, + 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9,122, 61, 32,115,105,110, 40, + 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9,105,102, 40, +110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 45,122, 41, 59, + 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 52, 46, + 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, + 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 53, 46, 48, 41, 32, +123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, + 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 54, 46, 48, 41, 32, +123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, + 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 55, 46, 48, 41, + 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9, + 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, + 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 45,121, 43,122, 41, + 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115, +105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, + 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, +125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9,125, 10, + 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, + 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, + 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, 10, 9, 99,111,108,111,114, + 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, 32, 48, 46, 53, 32, 45, 32, +122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,114, 98,108,101, + 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98, +117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, + 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, 40,118,101, 99, 51, 32, 99, +111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32, +102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, 44, 32,102,108,111, 97,116, + 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32,102,108,111, 97,116, 32,119, +101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105, +122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, +102, 97, 99, 41, 10,123, 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,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,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, 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, 32, 42, 32, 77, 95, 80, 73, 59, 10,125, 10, 10, 0}; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c index fbd4727d68b..2b715b9f267 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c @@ -46,6 +46,11 @@ static void node_shader_exec_add_closure(void *data, bNode *node, bNodeStack **i { } +static int node_shader_gpu_add_closure(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_add_closure", in, out); +} + /* node type definition */ void register_node_type_sh_add_closure(ListBase *lb) { @@ -57,7 +62,7 @@ void register_node_type_sh_add_closure(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_add_closure); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_add_closure); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c index bb80993d8bc..5a671c6a7d0 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -47,6 +47,11 @@ static void node_shader_exec_bsdf_anisotropic(void *data, bNode *node, bNodeStac { } +static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + /* node type definition */ void register_node_type_sh_bsdf_anisotropic(ListBase *lb) { @@ -58,7 +63,7 @@ void register_node_type_sh_bsdf_anisotropic(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_anisotropic); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_anisotropic); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c index 1732d737be9..ca37e8fe9a5 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -45,6 +45,11 @@ static void node_shader_exec_bsdf_diffuse(void *data, bNode *node, bNodeStack ** { } +static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_diffuse", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + /* node type definition */ void register_node_type_sh_bsdf_diffuse(ListBase *lb) { @@ -56,7 +61,7 @@ void register_node_type_sh_bsdf_diffuse(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_diffuse); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_diffuse); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index eab042ad9a6..c3773bf0e91 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -47,24 +47,11 @@ static void node_shader_exec_bsdf_glass(void *data, bNode *node, bNodeStack **in { } -bNodeType sh_node_bsdf_glass= { - /* *next,*prev */ NULL, NULL, - /* type code */ SH_NODE_BSDF_GLASS, - /* name */ "Glass BSDF", - /* width+range */ 150, 60, 200, - /* class+opts */ NODE_CLASS_CLOSURE, 0, - /* input sock */ sh_node_bsdf_glass_in, - /* output sock */ sh_node_bsdf_glass_out, - /* storage */ "", - /* execfunc */ node_shader_exec_bsdf_glass, - /* butfunc */ NULL, - /* initfunc */ NULL, - /* freestoragefunc */ NULL, - /* copystoragefunc */ NULL, - /* id */ NULL, NULL, NULL, - /* gpufunc */ NULL - -}; +static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_glass", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + /* node type definition */ void register_node_type_sh_bsdf_glass(ListBase *lb) { @@ -76,7 +63,7 @@ void register_node_type_sh_bsdf_glass(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_glass); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glass); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c index 3a1ad4766de..b3c5ab52c47 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -47,6 +47,12 @@ static void node_shader_exec_bsdf_glossy(void *data, bNode *node, bNodeStack **i { } +static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_bsdf_glossy", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + /* node type definition */ void register_node_type_sh_bsdf_glossy(ListBase *lb) { @@ -58,7 +64,7 @@ void register_node_type_sh_bsdf_glossy(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_glossy); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glossy); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c index 3a09b0bf2cf..79a20520dad 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -45,6 +45,11 @@ static void node_shader_exec_bsdf_translucent(void *data, bNode *node, bNodeStac { } +static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_translucent", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + /* node type definition */ void register_node_type_sh_bsdf_translucent(ListBase *lb) { @@ -56,7 +61,7 @@ void register_node_type_sh_bsdf_translucent(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_translucent); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_translucent); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c index 8324e73fec7..1f7609f9eca 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -45,6 +45,11 @@ static void node_shader_exec_bsdf_transparent(void *data, bNode *node, bNodeStac { } +static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_transparent", in, out); +} + /* node type definition */ void register_node_type_sh_bsdf_transparent(ListBase *lb) { @@ -56,7 +61,7 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_transparent); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_transparent); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c index 33878a65f53..62146357c5d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -47,6 +47,11 @@ static void node_shader_exec_bsdf_velvet(void *data, bNode *node, bNodeStack **i { } +static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_velvet", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + /* node type definition */ void register_node_type_sh_bsdf_velvet(ListBase *lb) { @@ -58,7 +63,7 @@ void register_node_type_sh_bsdf_velvet(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_bsdf_velvet); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_velvet); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c index 9486388b679..d02fd3c0de9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -46,6 +46,11 @@ static void node_shader_exec_emission(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_emission(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_emission", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + /* node type definition */ void register_node_type_sh_emission(ListBase *lb) { @@ -57,7 +62,7 @@ void register_node_type_sh_emission(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_emission); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_emission); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c index 3ac2b7f3557..96002331bf1 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c @@ -44,6 +44,12 @@ static void node_shader_exec_fresnel(void *UNUSED(data), bNode *node, bNodeStack { } +static int node_shader_gpu_fresnel(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + /* node type definition */ void register_node_type_sh_fresnel(ListBase *lb) { @@ -55,7 +61,7 @@ void register_node_type_sh_fresnel(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_fresnel); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_fresnel); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c index 15c304c7e47..62f0bfdb79b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c @@ -46,6 +46,13 @@ static void node_shader_exec_geometry(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_geometry", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX)); +} + /* node type definition */ void register_node_type_sh_geometry(ListBase *lb) { @@ -57,7 +64,7 @@ void register_node_type_sh_geometry(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_geometry); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_geometry); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c index 9405b7b591a..b7e268f8479 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c @@ -45,6 +45,11 @@ static void node_shader_exec_light_path(void *data, bNode *node, bNodeStack **in { } +static int node_shader_gpu_light_path(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_light_path", in, out); +} + /* node type definition */ void register_node_type_sh_light_path(ListBase *lb) { @@ -56,7 +61,7 @@ void register_node_type_sh_light_path(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_light_path); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_light_path); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c index f126a55611c..06bd1f39030 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c @@ -47,6 +47,11 @@ static void node_shader_exec_mix_closure(void *data, bNode *node, bNodeStack **i { } +static int node_shader_gpu_mix_closure(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_mix_closure", in, out); +} + /* node type definition */ void register_node_type_sh_mix_closure(ListBase *lb) { @@ -58,7 +63,7 @@ void register_node_type_sh_mix_closure(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_mix_closure); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_mix_closure); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c index 98db624cda6..7df0f5e3578 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c @@ -42,6 +42,17 @@ static void node_shader_exec_output_material(void *data, bNode *node, bNodeStack { } +static int node_shader_gpu_output_material(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *outlink; + + GPU_stack_link(mat, "node_output_material", in, out, &outlink); + GPU_material_output_link(mat, outlink); + + return 1; +} + + /* node type definition */ void register_node_type_sh_output_material(ListBase *lb) { @@ -53,7 +64,7 @@ void register_node_type_sh_output_material(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_output_material); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_output_material); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c index bd656a7b015..ddba878f0ae 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -54,6 +54,11 @@ static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_blend", in, out); +} + /* node type definition */ void register_node_type_sh_tex_blend(ListBase *lb) { @@ -65,7 +70,7 @@ void register_node_type_sh_tex_blend(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_blend); node_type_storage(&ntype, "NodeTexBlend", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_blend); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_blend); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c index be2d03018fa..e66e91b4284 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c @@ -57,6 +57,11 @@ static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in { } +static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_clouds", in, out); +} + /* node type definition */ void register_node_type_sh_tex_clouds(ListBase *lb) { @@ -68,7 +73,7 @@ void register_node_type_sh_tex_clouds(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_clouds); node_type_storage(&ntype, "NodeTexClouds", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_clouds); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_clouds); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c index 3ef69dd1bce..d94164f47ac 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c @@ -29,6 +29,8 @@ #include "../SHD_util.h" +#include "DNA_customdata_types.h" + /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_tex_coord_out[]= { @@ -45,6 +47,16 @@ static void node_shader_exec_tex_coord(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_coord(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); + GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ""); + + return GPU_stack_link(mat, "node_tex_coord", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX), orco, mtface); +} + /* node type definition */ void register_node_type_sh_tex_coord(ListBase *lb) { @@ -56,7 +68,7 @@ void register_node_type_sh_tex_coord(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_tex_coord); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_coord); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c index 415159074bb..f27cc00e46d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c @@ -56,6 +56,11 @@ static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack * { } +static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_distnoise", in, out); +} + /* node type definition */ void register_node_type_sh_tex_distnoise(ListBase *lb) { @@ -67,7 +72,7 @@ void register_node_type_sh_tex_distnoise(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_distorted_noise); node_type_storage(&ntype, "NodeTexDistortedNoise", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_distnoise); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_distnoise); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index c1b18e17d26..a9579569973 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -53,6 +53,14 @@ static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack { } +static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); +} + /* node type definition */ void register_node_type_sh_tex_environment(ListBase *lb) { @@ -64,7 +72,7 @@ void register_node_type_sh_tex_environment(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_environment); node_type_storage(&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_environment); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_environment); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index c08ba2ca86d..f469e8dd775 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -53,6 +53,14 @@ static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); +} + /* node type definition */ void register_node_type_sh_tex_image(ListBase *lb) { @@ -64,7 +72,7 @@ void register_node_type_sh_tex_image(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_image); node_type_storage(&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_image); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_image); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c index 5cd210a1804..736af733daa 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c @@ -54,6 +54,14 @@ static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + NodeTexMagic *tex = (NodeTexMagic*)node->storage; + float depth = tex->depth; + + return GPU_stack_link(mat, "node_tex_magic", in, out, GPU_uniform(&depth)); +} + /* node type definition */ void register_node_type_sh_tex_magic(ListBase *lb) { @@ -65,7 +73,7 @@ void register_node_type_sh_tex_magic(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_magic); node_type_storage(&ntype, "NodeTexMagic", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_magic); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_magic); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c index b42faee69a5..d4ae6eca015 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c @@ -59,6 +59,11 @@ static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in { } +static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_marble", in, out); +} + /* node type definition */ void register_node_type_sh_tex_marble(ListBase *lb) { @@ -70,7 +75,7 @@ void register_node_type_sh_tex_marble(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_marble); node_type_storage(&ntype, "NodeTexMarble", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_marble); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_marble); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c index e40e7488abe..1a4d8913bc5 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c @@ -60,6 +60,11 @@ static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack ** { } +static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_musgrave", in, out); +} + /* node type definition */ void register_node_type_sh_tex_musgrave(ListBase *lb) { @@ -71,7 +76,7 @@ void register_node_type_sh_tex_musgrave(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_musgrave); node_type_storage(&ntype, "NodeTexMusgrave", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_musgrave); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_musgrave); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c index 6349fa8e27a..ae91bb5624a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c @@ -46,6 +46,11 @@ static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_noise", in, out); +} + /* node type definition */ void register_node_type_sh_tex_noise(ListBase *lb) { @@ -57,7 +62,7 @@ void register_node_type_sh_tex_noise(ListBase *lb) node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_tex_noise); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_noise); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c index 5061e8c28b8..fa31ec9fead 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c @@ -56,6 +56,11 @@ static void node_shader_exec_tex_sky(void *data, bNode *node, bNodeStack **in, b { } +static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_sky", in, out); +} + /* node type definition */ void register_node_type_sh_tex_sky(ListBase *lb) { @@ -67,7 +72,7 @@ void register_node_type_sh_tex_sky(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_sky); node_type_storage(&ntype, "NodeTexSky", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_sky); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_sky); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c index c403daaa2d9..fc4dff91954 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c @@ -57,6 +57,11 @@ static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in { } +static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_stucci", in, out); +} + /* node type definition */ void register_node_type_sh_tex_stucci(ListBase *lb) { @@ -68,7 +73,7 @@ void register_node_type_sh_tex_stucci(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_stucci); node_type_storage(&ntype, "NodeTexStucci", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_stucci); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_stucci); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c index 113ffed1870..87711ab2885 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c @@ -61,6 +61,11 @@ static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **i { } +static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_voronoi", in, out); +} + /* node type definition */ void register_node_type_sh_tex_voronoi(ListBase *lb) { @@ -72,7 +77,7 @@ void register_node_type_sh_tex_voronoi(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_voronoi); node_type_storage(&ntype, "NodeTexVoronoi", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_voronoi); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_voronoi); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c index 430d1bacf8c..e9d46b96f62 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c @@ -58,6 +58,11 @@ static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, { } +static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_tex_wood", in, out); +} + /* node type definition */ void register_node_type_sh_tex_wood(ListBase *lb) { @@ -69,7 +74,7 @@ void register_node_type_sh_tex_wood(ListBase *lb) node_type_init(&ntype, node_shader_init_tex_wood); node_type_storage(&ntype, "NodeTexWood", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_wood); - node_type_gpu(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_wood); nodeRegisterType(lb, &ntype); }; -- cgit v1.2.3 From dbdc0300ccf1b8e57f308e687ad7f7018468a7df Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 10 Jun 2011 16:41:31 +0000 Subject: Cycles: GLSL error fix for image and environment nodes with no datablock assigned. --- source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c | 3 +++ source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index a9579569973..95b77499e3f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -58,6 +58,9 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod Image *ima= (Image*)node->id; ImageUser *iuser= NULL; + if(!ima) + return 0; + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index f469e8dd775..35f06bd385a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -58,6 +58,9 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack Image *ima= (Image*)node->id; ImageUser *iuser= NULL; + if(!ima) + return 0; + return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); } -- cgit v1.2.3 From 9097fdc2f4568f69d72f6bfa9ec32a737a89af3c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 10 Jun 2011 18:17:34 +0000 Subject: Cycles: button to switch to texture tab from e.g. modifiers and field, with the relevant texture selected, and some cosmetic tweaks to the menu. --- .../startup/bl_ui/properties_data_modifier.py | 2 +- .../startup/bl_ui/properties_physics_field.py | 5 +- source/blender/editors/include/UI_interface.h | 1 + .../editors/interface/interface_templates.c | 11 ++- .../editors/space_buttons/buttons_texture.c | 92 ++++++++++++++++++++-- 5 files changed, 98 insertions(+), 13 deletions(-) diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 75069993521..d3986bcd9c2 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -666,7 +666,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): split = layout.split() col = split.column() col.label(text="Texture:") - col.prop(md, "texture", text="") + col.template_ID(md, "texture", new="texture.new") col = split.column() col.label(text="Texture Coordinates:") diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py index 9f96f0a5b9f..bd374f0a6f8 100644 --- a/release/scripts/startup/bl_ui/properties_physics_field.py +++ b/release/scripts/startup/bl_ui/properties_physics_field.py @@ -61,6 +61,10 @@ class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel): split = layout.split(percentage=0.2) split.label(text="Shape:") split.prop(field, "shape", text="") + elif field.type == 'TEXTURE': + split = layout.split(percentage=0.2) + split.label(text="Texture:") + split.row().template_ID(field, "texture", new="texture.new") split = layout.split() @@ -103,7 +107,6 @@ class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel): elif field.type == 'TEXTURE': col = split.column() col.prop(field, "strength") - col.prop(field, "texture", text="") col.prop(field, "texture_mode", text="") col.prop(field, "texture_nabla") diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index e70d539ed48..ff1f475cde0 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -730,6 +730,7 @@ void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr void uiTemplateNodeLink(uiLayout *layout, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateTextureUser(uiLayout *layout, struct bContext *C); +void uiTemplateTextureShow(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop); /* items */ void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 4b2c851103d..9b6603b4fca 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -325,7 +325,7 @@ static const char *template_id_browse_tip(StructRNA *type) return "Browse ID data to be linked"; } -static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, const char *newop, const char *openop, const char *unlinkop) +static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, short idcode, int flag, const char *newop, const char *openop, const char *unlinkop) { uiBut *but; uiBlock *block; @@ -470,6 +470,9 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str if((idfrom && idfrom->lib) || !editable) uiButSetFlag(but, UI_BUT_DISABLED); } + + if(idcode == ID_TE) + uiTemplateTextureShow(layout, C, &template->ptr, template->prop); uiBlockEndAlign(block); } @@ -479,6 +482,7 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const TemplateID *template; PropertyRNA *prop; StructRNA *type; + short idcode; prop= RNA_struct_find_property(ptr, propname); @@ -499,14 +503,15 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const flag |= UI_ID_OPEN; type= RNA_property_pointer_type(ptr, prop); - template->idlb= which_libbase(CTX_data_main(C), RNA_type_to_ID_code(type)); + idcode= RNA_type_to_ID_code(type); + template->idlb= which_libbase(CTX_data_main(C), idcode); /* create UI elements for this template * - template_ID makes a copy of the template data and assigns it to the relevant buttons */ if(template->idlb) { uiLayoutRow(layout, 1); - template_ID(C, layout, template, type, flag, newop, openop, unlinkop); + template_ID(C, layout, template, type, idcode, flag, newop, openop, unlinkop); } MEM_freeN(template); diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c index 010969b3b71..162f4acb515 100644 --- a/source/blender/editors/space_buttons/buttons_texture.c +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -45,6 +45,7 @@ #include "DNA_material_types.h" #include "DNA_node_types.h" #include "DNA_object_types.h" +#include "DNA_object_force.h" #include "DNA_particle_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" @@ -56,12 +57,15 @@ #include "BKE_modifier.h" #include "BKE_node.h" #include "BKE_paint.h" +#include "BKE_particle.h" #include "RNA_access.h" #include "UI_interface.h" #include "UI_resources.h" +#include "ED_screen.h" + #include "../interface/interface_intern.h" #include "buttons_intern.h" // own include @@ -99,7 +103,8 @@ static void buttons_texture_users_find_nodetree(ListBase *users, ID *id, RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); prop = RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, id, ptr, prop, category, ICON_NODE, node->name); + buttons_texture_user_add(users, id, ptr, prop, + category, RNA_struct_ui_icon(ptr.type), node->name); } else if(node->type == NODE_GROUP && node->id) { buttons_texture_users_find_nodetree(users, id, (bNodeTree*)node->id, category); @@ -117,7 +122,8 @@ static void buttons_texture_modifier_foreach(void *userData, Object *ob, Modifie RNA_pointer_create(&ob->id, &RNA_Modifier, md, &ptr); prop = RNA_struct_find_property(&ptr, propname); - buttons_texture_user_add(users, &ob->id, ptr, prop, "Modifiers", ICON_MODIFIER, md->name); + buttons_texture_user_add(users, &ob->id, ptr, prop, + "Modifiers", RNA_struct_ui_icon(ptr.type), md->name); } static void buttons_texture_users_from_context(ListBase *users, const bContext *C, SpaceButs *sbuts) @@ -171,7 +177,7 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * buttons_texture_users_find_nodetree(users, &wrld->id, wrld->nodetree, "World"); if(ob) { - ParticleSystem *psys; + ParticleSystem *psys= psys_get_current(ob); MTex *mtex; int a; @@ -179,8 +185,8 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * modifiers_foreachTexLink(ob, buttons_texture_modifier_foreach, users); /* particle systems */ - /* todo: these slots are not in the UI */ - for(psys=ob->particlesystem.first; psys; psys=psys->next) { + if(psys) { + /* todo: these slots are not in the UI */ for(a=0; apart->mtex[a]; @@ -191,10 +197,23 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * RNA_pointer_create(&psys->part->id, &RNA_ParticleSettingsTextureSlot, mtex, &ptr); prop = RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, &psys->part->id, ptr, prop, "Particles", ICON_PARTICLES, psys->name); + buttons_texture_user_add(users, &psys->part->id, ptr, prop, + "Particles", RNA_struct_ui_icon(&RNA_ParticleSettings), psys->name); } } } + + /* field */ + if(ob->pd && ob->pd->forcefield == PFIELD_TEXTURE) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&ob->id, &RNA_FieldSettings, ob->pd, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_add(users, &ob->id, ptr, prop, + "Fields", ICON_FORCE_TEXTURE, "Texture Field"); + } } /* brush */ @@ -203,9 +222,10 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * PropertyRNA *prop; RNA_pointer_create(&brush->id, &RNA_BrushTextureSlot, &brush->mtex, &ptr); - prop = RNA_struct_find_property(&ptr, "texture"); + prop= RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, &brush->id, ptr, prop, "Brush", ICON_BRUSH_DATA, brush->id.name+2); + buttons_texture_user_add(users, &brush->id, ptr, prop, + "Brush", ICON_BRUSH_DATA, brush->id.name+2); } } @@ -335,3 +355,59 @@ void uiTemplateTextureUser(uiLayout *layout, bContext *C) but->flag &= ~UI_ICON_SUBMENU; } +/************************* Texture Show **************************/ + +static void template_texture_show(bContext *C, void *data_p, void *prop_p) +{ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + + if(!ct) + return; + + for(user=ct->users.first; user; user=user->next) + if(user->ptr.data == data_p && user->prop == prop_p) + break; + + if(user) { + /* select texture */ + template_texture_select(C, user, NULL); + + /* change context */ + sbuts->mainb= BCONTEXT_TEXTURE; + sbuts->mainbuser= sbuts->mainb; + sbuts->preview= 1; + + /* redraw editor */ + ED_area_tag_redraw(CTX_wm_area(C)); + } +} + +void uiTemplateTextureShow(uiLayout *layout, bContext *C, PointerRNA *ptr, PropertyRNA *prop) +{ + /* button to quickly show texture in texture tab */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + + /* only show button in other tabs in properties editor */ + if(!ct || sbuts->mainb == BCONTEXT_TEXTURE) + return; + + /* find corresponding texture user */ + for(user=ct->users.first; user; user=user->next) + if(user->ptr.data == ptr->data && user->prop == prop) + break; + + /* draw button */ + if(user) { + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + + but= uiDefIconBut(block, BUT, 0, ICON_BUTS, 0, 0, UI_UNIT_X, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Show texture in texture tab"); + uiButSetFunc(but, template_texture_show, user->ptr.data, user->prop); + } +} + -- cgit v1.2.3 From a5c6f3d53b8c25500395dd1ab1c556c4f502c214 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 14 Jun 2011 16:05:21 +0000 Subject: Cycles: more work on texturing UI, now texture nodes use same nodes as shading, only rough implementation for design proposal. --- intern/cycles/blender/addon/ui.py | 59 ++- .../scripts/startup/bl_ui/properties_texture.py | 2 +- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/node.c | 19 +- source/blender/editors/interface/interface_node.c | 12 +- source/blender/editors/render/render_shading.c | 8 +- source/blender/editors/space_node/node_draw.c | 2 + source/blender/editors/space_node/node_edit.c | 11 +- .../blender/makesrna/intern/rna_nodetree_types.h | 1 + source/blender/nodes/CMakeLists.txt | 1 + source/blender/nodes/SHD_node.h | 1 + .../nodes/intern/SHD_nodes/SHD_add_closure.c | 4 +- .../blender/nodes/intern/SHD_nodes/SHD_attribute.c | 2 +- .../nodes/intern/SHD_nodes/SHD_background.c | 2 +- .../nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glossy.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_translucent.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_transparent.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_velvet.c | 4 +- .../blender/nodes/intern/SHD_nodes/SHD_emission.c | 4 +- .../blender/nodes/intern/SHD_nodes/SHD_fresnel.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_geometry.c | 4 +- .../nodes/intern/SHD_nodes/SHD_light_path.c | 4 +- .../nodes/intern/SHD_nodes/SHD_mix_closure.c | 4 +- source/blender/nodes/intern/SHD_nodes/SHD_noise.h | 472 +++++++++++++++++++++ .../nodes/intern/SHD_nodes/SHD_output_lamp.c | 2 +- .../nodes/intern/SHD_nodes/SHD_output_material.c | 2 +- .../nodes/intern/SHD_nodes/SHD_output_texture.c | 72 ++++ .../nodes/intern/SHD_nodes/SHD_output_world.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 61 ++- .../nodes/intern/SHD_nodes/SHD_tex_clouds.c | 41 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_coord.c | 4 +- .../nodes/intern/SHD_nodes/SHD_tex_distnoise.c | 37 +- .../nodes/intern/SHD_nodes/SHD_tex_environment.c | 35 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 27 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_magic.c | 88 +++- .../nodes/intern/SHD_nodes/SHD_tex_marble.c | 44 +- .../nodes/intern/SHD_nodes/SHD_tex_musgrave.c | 208 ++++++++- .../blender/nodes/intern/SHD_nodes/SHD_tex_noise.c | 34 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_sky.c | 4 +- .../nodes/intern/SHD_nodes/SHD_tex_stucci.c | 41 +- .../nodes/intern/SHD_nodes/SHD_tex_voronoi.c | 83 +++- .../blender/nodes/intern/SHD_nodes/SHD_tex_wood.c | 47 +- source/blender/nodes/intern/SHD_util.c | 1 + source/blender/nodes/intern/SHD_util.h | 5 + source/blender/nodes/intern/TEX_util.c | 61 ++- .../blender/render/intern/source/render_texture.c | 4 +- 49 files changed, 1442 insertions(+), 104 deletions(-) create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_noise.h create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 89de799eb65..88a1a1a602e 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -369,11 +369,59 @@ class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): col.template_ID(space, "pin_id") elif user: col.template_ID(user, "texture", new="texture.new") - + if tex: - split = layout.split(percentage=0.2) - split.label(text="Type:") - split.prop(tex, "type", text="") + row = split.row() + row.prop(tex, "use_nodes", icon="NODETREE", text="") + row.label() + + if not tex.use_nodes: + split = layout.split(percentage=0.2) + split.label(text="Type:") + split.prop(tex, "type", text="") + +class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Nodes" + bl_context = "texture" + + @classmethod + def poll(cls, context): + tex = context.texture + return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + tex = context.texture + panel_node_draw(layout, tex, 'OUTPUT_TEXTURE', 'Color') + +class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Mapping" + bl_context = "texture" + + @classmethod + def poll(cls, context): + tex = context.texture + return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.label("Texture coordinate mapping goes here."); + layout.label("Translate, rotate, scale, projection, XYZ.") + +class CyclesTexture_PT_color(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Color" + bl_context = "texture" + + @classmethod + def poll(cls, context): + tex = context.texture + return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.label("Color modification options go here."); + layout.label("Ramp, brightness, contrast, saturation.") def draw_device(self, context): scene = context.scene @@ -421,8 +469,7 @@ def get_panels(): bpy.types.TEXTURE_PT_distortednoise, bpy.types.TEXTURE_PT_voxeldata, bpy.types.TEXTURE_PT_pointdensity, - bpy.types.TEXTURE_PT_pointdensity_turbulence, - bpy.types.TEXTURE_PT_custom_props] + bpy.types.TEXTURE_PT_pointdensity_turbulence] def register(): bpy.types.RENDER_PT_render.append(draw_device) diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index 01890bc3c99..375e5bbd787 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -393,7 +393,6 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): idblock = context_tex_datablock(context) tex = context.texture - slot = context.texture_slot split = layout.split() @@ -409,6 +408,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): #Only for Material based textures, not for Lamp/World... if isinstance(idblock, bpy.types.Material): + slot = context.texture_slot col.prop(tex, "use_normal_map") row = col.row() row.active = tex.use_normal_map diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index a2cfc037f44..bd88d1da9d7 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -308,6 +308,7 @@ struct ShadeResult; #define SH_NODE_TEX_COORD 155 #define SH_NODE_ADD_CLOSURE 156 #define SH_NODE_TEX_ENVIRONMENT 157 +#define SH_NODE_OUTPUT_TEXTURE 158 /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index d9c1bf058a5..0340da0f548 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3195,8 +3195,23 @@ void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) node_get_stack(node, stack, nsin, nsout, NULL); gpu_from_node_stack(&node->inputs, nsin, gpuin); gpu_from_node_stack(&node->outputs, nsout, gpuout); - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) + if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) { data_from_gpu_stack(&node->outputs, nsout, gpuout); + +#if 0 + if(node->flag & NODE_ACTIVE) { + bNodeSocket *sock; + int i; + + for(sock=node->outputs.first, i=0; sock; sock=sock->next, i++) { + if(nsout[i]->data) { + GPU_material_output_link(mat, nsout[i]->data); + break; + } + } + } +#endif + } } else if(node->type==NODE_GROUP && node->id) { node_get_stack(node, stack, nsin, nsout, NULL); @@ -3618,6 +3633,7 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_mix_rgb(ntypelist); register_node_type_sh_rgbtobw(ntypelist); register_node_type_sh_mapping(ntypelist); + //register_node_type_sh_texture(ntypelist); register_node_type_sh_attribute(ntypelist); register_node_type_sh_geometry(ntypelist); @@ -3638,6 +3654,7 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_output_lamp(ntypelist); register_node_type_sh_output_material(ntypelist); + register_node_type_sh_output_texture(ntypelist); register_node_type_sh_output_world(ntypelist); register_node_type_sh_tex_blend(ntypelist); diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 137320fea26..720cb92bce4 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -100,8 +100,16 @@ static void ui_node_clear_recursive(bNode *node) static void ntree_notify(bContext *C, ID *id, bNodeTree *ntree) { - if(ntree->type==NTREE_SHADER) - WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, id); + if(ntree->type==NTREE_SHADER) { + if(GS(id->name) == ID_MA) + WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, id); + else if(GS(id->name) == ID_LA) + WM_event_add_notifier(C, NC_LAMP|ND_NODES, id); + else if(GS(id->name) == ID_WO) + WM_event_add_notifier(C, NC_WORLD|ND_NODES, id); + else if(GS(id->name) == ID_TE) + WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, id); + } else if(ntree->type==NTREE_COMPOSIT) WM_event_add_notifier(C, NC_SCENE|ND_NODES, id); else if(ntree->type==NTREE_TEXTURE) diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 5463eefe866..265a84b093d 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -418,10 +418,14 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op)) PropertyRNA *prop; /* add or copy texture */ - if(tex) + if(tex) { tex= copy_texture(tex); - else + } + else { tex= add_texture("Texture"); + ED_node_shader_default(&tex->id); + tex->use_nodes= 1; + } /* hook into UI */ uiIDContextProperty(C, &ptr, &prop); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 307c5e19384..6d75adc50e5 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -99,6 +99,8 @@ void ED_node_changed_update(ID *id, bNode *node) 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); + else if(GS(id->name) == ID_TE) + WM_main_add_notifier(NC_TEXTURE|ND_NODES, id); } else if(treetype==NTREE_COMPOSIT) { NodeTagChanged(edittree, node); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index d7d6b6a6f6f..4d4af340e87 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -292,6 +292,11 @@ void ED_node_shader_default(ID *id) output_type = SH_NODE_OUTPUT_LAMP; closure_type = SH_NODE_EMISSION; break; + case ID_TE: + ((Tex*)id)->nodetree = ntree; + output_type = SH_NODE_OUTPUT_TEXTURE; + closure_type = SH_NODE_TEX_CLOUDS; + break; default: printf("ED_node_shader_default called on wrong ID type.\n"); return; @@ -353,6 +358,9 @@ void ED_node_composit_default(Scene *sce) /* called from shading buttons or header */ void ED_node_texture_default(Tex *tx) { + ED_node_shader_default(&tx->id); + +#if 0 bNode *in, *out; bNodeSocket *fromsock, *tosock; @@ -377,6 +385,7 @@ void ED_node_texture_default(Tex *tx) nodeAddLink(tx->nodetree, in, fromsock, out, tosock); ntreeSolveOrder(tx->nodetree); /* needed for pointers */ +#endif } /* id is supposed to contain a node tree */ @@ -403,7 +412,7 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre } else if(idtype == ID_TE) { *ntree= ((Tex*)id)->nodetree; - if(treetype) *treetype= NTREE_TEXTURE; + if(treetype) *treetype= (*ntree)? (*ntree)->type: NTREE_SHADER; } else { if(treetype) *treetype= 0; diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 1170df281f2..41f1bf2d383 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -52,6 +52,7 @@ DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBR DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index a6326a36b8e..266c5d07551 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -133,6 +133,7 @@ set(SRC intern/SHD_nodes/SHD_add_closure.c intern/SHD_nodes/SHD_output_lamp.c intern/SHD_nodes/SHD_output_material.c + intern/SHD_nodes/SHD_output_texture.c intern/SHD_nodes/SHD_output_world.c intern/SHD_nodes/SHD_tex_blend.c intern/SHD_nodes/SHD_tex_clouds.c diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index 0df709cf810..7bee0dfb0bb 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -72,6 +72,7 @@ void register_node_type_sh_add_closure(ListBase *lb); void register_node_type_sh_output_lamp(ListBase *lb); void register_node_type_sh_output_material(ListBase *lb); +void register_node_type_sh_output_texture(ListBase *lb); void register_node_type_sh_output_world(ListBase *lb); void register_node_type_sh_tex_image(ListBase *lb); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c index 2b715b9f267..8c4a7d83915 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c @@ -42,11 +42,11 @@ static bNodeSocketType sh_node_add_closure_out[]= { { -1, 0, "" } }; -static void node_shader_exec_add_closure(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_add_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_add_closure(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_add_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_add_closure", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c index ef9fb63e8bc..d6d975638ab 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_attribute.c @@ -36,7 +36,7 @@ static bNodeSocketType sh_node_attribute_out[]= { { -1, 0, "" } }; -static void node_shader_exec_attribute(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_attribute(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_background.c b/source/blender/nodes/intern/SHD_nodes/SHD_background.c index b15ba89ba17..195f804416f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_background.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_background.c @@ -42,7 +42,7 @@ static bNodeSocketType sh_node_background_out[]= { { -1, 0, "" } }; -static void node_shader_exec_background(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_background(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c index 5a671c6a7d0..508bf827440 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_bsdf_anisotropic_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_anisotropic(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_anisotropic(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c index ca37e8fe9a5..2525174606a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -41,11 +41,11 @@ static bNodeSocketType sh_node_bsdf_diffuse_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_diffuse(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_diffuse(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_diffuse", in, out, GPU_builtin(GPU_VIEW_NORMAL)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index c3773bf0e91..262bf3ff115 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_bsdf_glass_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_glass(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_glass(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_glass", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c index b3c5ab52c47..16dea77d492 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_bsdf_glossy_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_glossy(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_glossy(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { /* todo: is incoming vector normalized? */ return GPU_stack_link(mat, "node_bsdf_glossy", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c index 79a20520dad..ceec2891aaf 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -41,11 +41,11 @@ static bNodeSocketType sh_node_bsdf_translucent_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_translucent(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_translucent(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_translucent", in, out, GPU_builtin(GPU_VIEW_NORMAL)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c index 1f7609f9eca..4f4537b339d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -41,11 +41,11 @@ static bNodeSocketType sh_node_bsdf_transparent_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_transparent(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_transparent(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_transparent", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c index 62146357c5d..5b700eb1e4e 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_bsdf_velvet_out[]= { { -1, 0, "" } }; -static void node_shader_exec_bsdf_velvet(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_bsdf_velvet(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_bsdf_velvet", in, out, GPU_builtin(GPU_VIEW_NORMAL)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c index d02fd3c0de9..7a88db3380d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -42,11 +42,11 @@ static bNodeSocketType sh_node_emission_out[]= { { -1, 0, "" } }; -static void node_shader_exec_emission(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_emission(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_emission(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_emission(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_emission", in, out, GPU_builtin(GPU_VIEW_NORMAL)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c index 96002331bf1..824876065ef 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c @@ -44,7 +44,7 @@ static void node_shader_exec_fresnel(void *UNUSED(data), bNode *node, bNodeStack { } -static int node_shader_gpu_fresnel(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_fresnel(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { /* todo: is incoming vector normalized? */ return GPU_stack_link(mat, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c index 62f0bfdb79b..6acc799cec2 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_geometry.c @@ -42,11 +42,11 @@ static bNodeSocketType sh_node_geometry_out[]= { { -1, 0, "" } }; -static void node_shader_exec_geometry(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_geometry(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_geometry", in, out, GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c index b7e268f8479..3bf32f42370 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c @@ -41,11 +41,11 @@ static bNodeSocketType sh_node_light_path_out[]= { { -1, 0, "" } }; -static void node_shader_exec_light_path(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_light_path(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_light_path(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_light_path(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_light_path", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c index 06bd1f39030..55838365756 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_mix_closure_out[]= { { -1, 0, "" } }; -static void node_shader_exec_mix_closure(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_mix_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_mix_closure(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_mix_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_mix_closure", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_noise.h b/source/blender/nodes/intern/SHD_nodes/SHD_noise.h new file mode 100644 index 00000000000..21188ee8f91 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_noise.h @@ -0,0 +1,472 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef SHD_NOISE_H +#define SHD_NOISE_H + +MINLINE int quick_floor(float x) +{ + return (int)x - ((x < 0) ? 1 : 0); +} + +MINLINE float bits_to_01(unsigned int bits) +{ + return bits * (1.0f/(float)0xFFFFFFFF); +} + +MINLINE unsigned int hash(unsigned int kx, unsigned int ky, unsigned int kz) +{ + // define some handy macros +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) +#define final(a,b,c) \ +{ \ + c ^= b; c -= rot(b,14); \ + a ^= c; a -= rot(c,11); \ + b ^= a; b -= rot(a,25); \ + c ^= b; c -= rot(b,16); \ + a ^= c; a -= rot(c,4); \ + b ^= a; b -= rot(a,14); \ + c ^= b; c -= rot(b,24); \ +} + // now hash the data! + unsigned int a, b, c, len = 3; + a = b = c = 0xdeadbeef + (len << 2) + 13; + + c += kz; + b += ky; + a += kx; + final(a, b, c); + + return c; + // macros not needed anymore +#undef rot +#undef final +} + +MINLINE int imod(int a, int b) +{ + a %= b; + return a < 0 ? a + b : a; +} + +MINLINE unsigned int phash(int kx, int ky, int kz, int p[3]) +{ + return hash(imod(kx, p[0]), imod(ky, p[1]), imod(kz, p[2])); +} + +MINLINE float floorfrac(float x, int* i) +{ + *i = quick_floor(x); + return x - *i; +} + +MINLINE float fade(float t) +{ + return t * t * t * (t * (t * 6.0f - 15.0f) + 10.0f); +} + +MINLINE float nerp(float t, float a, float b) +{ + return (1.0f - t) * a + t * b; +} + +MINLINE 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; + return ((h&1) ? -u : u) + ((h&2) ? -v : v); +} + +MINLINE float scale3(float result) +{ + return 0.9820f * result; +} + +MINLINE float perlin(float x, float y, float z) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (hash (X , Y , Z ), fx , fy , fz ), + grad (hash (X+1, Y , Z ), fx-1.0f, fy , fz )), + nerp (u, grad (hash (X , Y+1, Z ), fx , fy-1.0f, fz ), + grad (hash (X+1, Y+1, Z ), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (hash (X , Y , Z+1), fx , fy , fz-1.0f ), + grad (hash (X+1, Y , Z+1), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (hash (X , Y+1, Z+1), fx , fy-1.0f, fz-1.0f ), + grad (hash (X+1, Y+1, Z+1), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +MINLINE float perlin_periodic(float x, float y, float z, float pperiod[3]) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + int p[3] = { + MAX2(quick_floor(pperiod[0]), 1), + MAX2(quick_floor(pperiod[1]), 1), + MAX2(quick_floor(pperiod[2]), 1)}; + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (phash (X , Y , Z , p), fx , fy , fz ), + grad (phash (X+1, Y , Z , p), fx-1.0f, fy , fz )), + nerp (u, grad (phash (X , Y+1, Z , p), fx , fy-1.0f, fz ), + grad (phash (X+1, Y+1, Z , p), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (phash (X , Y , Z+1, p), fx , fy , fz-1.0f ), + grad (phash (X+1, Y , Z+1, p), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (phash (X , Y+1, Z+1, p), fx , fy-1.0f, fz-1.0f ), + grad (phash (X+1, Y+1, Z+1, p), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +/* perlin noise in range 0..1 */ +MINLINE float noise(float p[3]) +{ + float r = perlin(p[0], p[1], p[2]); + return 0.5f*r + 0.5f; +} + +/* perlin noise in range -1..1 */ +MINLINE float snoise(float p[3]) +{ + return perlin(p[0], p[1], p[2]); +} + +/* cell noise */ +MINLINE float cellnoise(float p[3]) +{ + unsigned int ix = quick_floor(p[0]); + unsigned int iy = quick_floor(p[1]); + unsigned int iz = quick_floor(p[2]); + + return bits_to_01(hash(ix, iy, iz)); +} + +MINLINE void cellnoise_color(float rgb[3], float p[3]) +{ + float pg[3] = {p[1], p[0], p[2]}; + float pb[3] = {p[1], p[2], p[0]}; + + float r = cellnoise(p); + float g = cellnoise(pg); + float b = cellnoise(pb); + + rgb[0]= r; + rgb[1]= g; + rgb[2]= b; +} + +/* periodic perlin noise in range 0..1 */ +MINLINE float pnoise(float p[3], float pperiod[3]) +{ + float r = perlin_periodic(p[0], p[1], p[2], pperiod); + return 0.5f*r + 0.5f; +} + +/* periodic perlin noise in range -1..1 */ +MINLINE float psnoise(float p[3], float pperiod[3]) +{ + return perlin_periodic(p[0], p[1], p[2], pperiod); +} + +/* + * 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. + */ + +/* turbulence */ +MINLINE float turbulence(float p[3], int oct, int hard) +{ + float amp = 1.0f, fscale = 1.0f, sum = 0.0f; + int i; + + for(i=0; i<=oct; i++, amp *= 0.5f, fscale *= 2.0f) { + float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; + float t = noise(pscale); + if(hard) t = fabsf(2.0f*t - 1.0f); + sum += t * amp; + } + + sum *= ((float)(1< 1.0f)? 1.0f: t; +} + +MINLINE float voronoi_F1S(float p[3]) { return 2.0f*voronoi_F1(p) - 1.0f; } +MINLINE float voronoi_F2S(float p[3]) { return 2.0f*voronoi_F2(p) - 1.0f; } +MINLINE float voronoi_F3S(float p[3]) { return 2.0f*voronoi_F3(p) - 1.0f; } +MINLINE float voronoi_F4S(float p[3]) { return 2.0f*voronoi_F4(p) - 1.0f; } +MINLINE float voronoi_F1F2S(float p[3]) { return 2.0f*voronoi_F1F2(p) - 1.0f; } +MINLINE float voronoi_CrS(float p[3]) { return 2.0f*voronoi_Cr(p) - 1.0f; } + +/* Noise Bases */ + +MINLINE float noise_basis(float p[3], int basis) +{ + if(basis == SHD_NOISE_PERLIN) + return noise(p); + if(basis == SHD_NOISE_VORONOI_F1) + return voronoi_F1S(p); + if(basis == SHD_NOISE_VORONOI_F2) + return voronoi_F2S(p); + if(basis == SHD_NOISE_VORONOI_F3) + return voronoi_F3S(p); + if(basis == SHD_NOISE_VORONOI_F4) + return voronoi_F4S(p); + if(basis == SHD_NOISE_VORONOI_F2_F1) + return voronoi_F1F2S(p); + if(basis == SHD_NOISE_VORONOI_CRACKLE) + return voronoi_CrS(p); + if(basis == SHD_NOISE_CELL_NOISE) + return cellnoise(p); + + return 0.0f; +} + +/* Soft/Hard Noise */ + +MINLINE float noise_basis_hard(float p[3], int basis, int hard) +{ + float t = noise_basis(p, basis); + return (hard)? fabsf(2.0f*t - 1.0f): t; +} + +/* Waves */ + +MINLINE float noise_wave(int wave, float a) +{ + if(wave == SHD_WAVE_SINE) { + return 0.5f + 0.5f*sin(a); + } + else if(wave == SHD_WAVE_SAW) { + float b = 2*M_PI; + int n = (int)(a / b); + a -= n*b; + if(a < 0) a += b; + + return a / b; + } + else if(wave == SHD_WAVE_TRI) { + float b = 2*M_PI; + float rmax = 1.0f; + + return rmax - 2.0f*fabsf(floorf((a*(1.0f/b))+0.5f) - (a*(1.0f/b))); + } + + return 0.0f; +} + +/* Turbulence */ + +MINLINE float noise_turbulence(float p[3], int basis, int octaves, int hard) +{ + float fscale = 1.0f; + float amp = 1.0f; + float sum = 0.0f; + int i; + + for(i = 0; i <= octaves; i++) { + float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; + float t = noise_basis(pscale, basis); + + if(hard) + t = fabsf(2.0f*t - 1.0f); + + sum += t*amp; + amp *= 0.5f; + fscale *= 2.0f; + } + + sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + + return sum; +} + +#endif /* SHD_NOISE_H */ + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c index 71ed8d67a98..6665c727f48 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c @@ -36,7 +36,7 @@ static bNodeSocketType sh_node_output_lamp_in[]= { { -1, 0, "" } }; -static void node_shader_exec_output_lamp(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_output_lamp(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c index 7df0f5e3578..06ab6b67dac 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_output_material_in[]= { { -1, 0, "" } }; -static void node_shader_exec_output_material(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_output_material(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c new file mode 100644 index 00000000000..bd4da005a48 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c @@ -0,0 +1,72 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_output_texture_in[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + if(data && (node->flag & NODE_DO_OUTPUT)) { + ShaderCallData *scd= (ShaderCallData*)data; + TexResult *texres = scd->texres; + float col[4]; + + nodestack_get_vec(col, SOCK_RGBA, in[0]); + + texres->tr= col[0]; + texres->tg= col[1]; + texres->tb= col[2]; + texres->ta= 1.0f; + + texres->tin= rgb_to_grayscale(col); + } +} + +/* node type definition */ +void register_node_type_sh_output_texture(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_TEXTURE, "Texture Output", NODE_CLASS_OUTPUT, 0, + sh_node_output_texture_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_texture); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c index 20f7faeea7a..d140fb2408c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_output_world_in[]= { { -1, 0, "" } }; -static void node_shader_exec_output_world(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_output_world(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c index ddba878f0ae..87c08ddaf9c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -29,7 +29,51 @@ #include "../SHD_util.h" -/* **************** OUTPUT ******************** */ +static float blend(float p[3], int type, int axis) +{ + float x, y; + + if(axis == SHD_BLEND_VERTICAL) { + x= p[1]; + y= p[0]; + } + else { + x= p[0]; + y= p[1]; + } + + if(type == SHD_BLEND_LINEAR) { + return (1.0f + x)/2.0f; + } + else if(type == SHD_BLEND_QUADRATIC) { + float r = fmaxf((1.0f + x)/2.0f, 0.0f); + return r*r; + } + else if(type == SHD_BLEND_EASING) { + float r = fminf(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); + float t = r*r; + + return (3.0f*t - 2.0f*t*r); + } + else if(type == SHD_BLEND_DIAGONAL) { + return (2.0f + x + y)/4.0f; + } + else if(type == SHD_BLEND_RADIAL) { + return atan2(y, x)/(2.0f*(float)M_PI) + 0.5f; + } + else { + float r = fmaxf(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); + + if(type == SHD_BLEND_QUADRATIC_SPHERE) + return r*r; + else if(type == SHD_BLEND_SPHERICAL) + return r; + } + + return 0.0f; +} + +/* **************** BLEND ******************** */ static bNodeSocketType sh_node_tex_blend_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -50,11 +94,22 @@ static void node_shader_init_tex_blend(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexBlend *tex= (NodeTexBlend*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + out[0]->vec[0]= blend(vec, tex->progression, tex->axis); } -static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_blend", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c index e66e91b4284..f056a03c724 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c @@ -28,8 +28,30 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float clouds(int basis, int hard, int depth, float size, float vec[3], float color[3]) +{ + float p[3], pg[3], pb[3]; + + mul_v3_v3fl(p, vec, 1.0f/size); + + pg[0]= p[1]; + pg[1]= p[0]; + pg[2]= p[2]; + + pb[0]= p[1]; + pb[1]= p[2]; + pb[2]= p[0]; + + color[0]= noise_turbulence(p, basis, depth, hard); + color[1]= noise_turbulence(pg, basis, depth, hard); + color[2]= noise_turbulence(pb, basis, depth, hard); + + return color[0]; +} + +/* **************** CLOUDS ******************** */ static bNodeSocketType sh_node_tex_clouds_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -53,11 +75,24 @@ static void node_shader_init_tex_clouds(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexClouds *tex= (NodeTexClouds*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + + out[1]->vec[0]= clouds(tex->basis, tex->hard, tex->depth, size, vec, out[0]->vec); } -static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_clouds", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c index d94164f47ac..8b6bd8f03f1 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_coord.c @@ -43,11 +43,11 @@ static bNodeSocketType sh_node_tex_coord_out[]= { { -1, 0, "" } }; -static void node_shader_exec_tex_coord(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_coord(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_tex_coord(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_coord(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ""); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c index f27cc00e46d..d465499c942 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c @@ -28,6 +28,25 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" + +static float distorted_noise(float vec[3], float size, int basis, int distortion_basis, float distortion) +{ + float p[3], r[3], p_offset[3], p_noffset[3]; + float offset[3] = {13.5f, 13.5f, 13.5f}; + + mul_v3_v3fl(p, vec, 1.0f/size); + add_v3_v3v3(p_offset, p, offset); + sub_v3_v3v3(p_noffset, p, offset); + + r[0] = noise_basis(p_offset, basis) * distortion; + r[1] = noise_basis(p, basis) * distortion; + r[2] = noise_basis(p_noffset, basis) * distortion; + + add_v3_v3(p, r); + + return noise_basis(p, distortion_basis); /* distorted-domain noise */ +} /* **************** OUTPUT ******************** */ @@ -52,11 +71,25 @@ static void node_shader_init_tex_distorted_noise(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexDistortedNoise *tex= (NodeTexDistortedNoise*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, distortion; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&distortion, SOCK_VALUE, in[2]); + + out[0]->vec[0]= distorted_noise(vec, size, tex->basis, tex->distortion_basis, distortion); } -static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_distnoise", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index 95b77499e3f..2a8ccf51d66 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -49,8 +49,35 @@ static void node_shader_init_tex_environment(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + Image *ima= (Image*)node->id; + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexEnvironment *tex= (NodeTexEnvironment*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + if(ima) { + ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + + if(ibuf) { + float u= (atan2f(vec[1], vec[0]) + (float)M_PI)/(2*M_PI); + float v= atan2f(vec[2], hypotf(vec[0], vec[1]))/M_PI + 0.5f; + float rgb[3]; + + ibuf_sample(ibuf, u, v, 0.0f, 0.0f, rgb); + + if(tex->color_space == SHD_COLORSPACE_SRGB) + srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); + else + copy_v3_v3(out[0]->vec, rgb); + } + } } static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) @@ -58,10 +85,10 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod Image *ima= (Image*)node->id; ImageUser *iuser= NULL; - if(!ima) - return 0; + if(ima) + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); - return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); + return 0; } /* node type definition */ diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index 35f06bd385a..3d74054e5d3 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -49,8 +49,33 @@ static void node_shader_init_tex_image(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + Image *ima= (Image*)node->id; + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexImage *tex= (NodeTexImage*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + if(ima) { + ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + + if(ibuf) { + float rgb[3]; + + ibuf_sample(ibuf, vec[0], vec[1], 0.0f, 0.0f, rgb); + + if(tex->color_space == SHD_COLORSPACE_SRGB) + srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); + else + copy_v3_v3(out[0]->vec, rgb); + } + } } static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c index 736af733daa..691a73ef91d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c @@ -29,6 +29,79 @@ #include "../SHD_util.h" +static void magic(float rgb[3], float p[3], int n, float turbulence) +{ + float turb = turbulence/5.0f; + + float x = sinf((p[0] + p[1] + p[2])*5.0f); + float y = cosf((-p[0] + p[1] - p[2])*5.0f); + float z = -cosf((-p[0] - p[1] + p[2])*5.0f); + + if(n > 0) { + x *= turb; + y *= turb; + z *= turb; + y = -cosf(x-y+z); + y *= turb; + + if(n > 1) { + x= cosf(x-y-z); + x *= turb; + + if(n > 2) { + z= sinf(-x-y-z); + z *= turb; + + if(n > 3) { + x= -cosf(-x+y-z); + x *= turb; + + if(n > 4) { + y= -sinf(-x+y+z); + y *= turb; + + if(n > 5) { + y= -cosf(-x+y+z); + y *= turb; + + if(n > 6) { + x= cosf(x+y+z); + x *= turb; + + if(n > 7) { + z= sinf(x+y-z); + z *= turb; + + if(n > 8) { + x= -cosf(-x-y+z); + x *= turb; + + if(n > 9) { + y= -sinf(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0f) { + turb *= 2.0f; + x /= turb; + y /= turb; + z /= turb; + } + + rgb[0]= 0.5f - x; + rgb[1]= 0.5f - y; + rgb[2]= 0.5f - z; +} + /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_tex_magic_in[]= { @@ -50,8 +123,21 @@ static void node_shader_init_tex_magic(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMagic *tex= (NodeTexMagic*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&turbulence, SOCK_VALUE, in[1]); + + magic(out[0]->vec, vec, tex->depth, turbulence); } static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c index d4ae6eca015..79dbdaf85e6 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c @@ -28,8 +28,32 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float marble(float vec[3], float size, int type, int wave, int basis, int hard, float turb, int depth) +{ + float p[3]; + float x = vec[0]; + float y = vec[1]; + float z = vec[2]; + float n = 5.0f * (x + y + z); + float mi; + + mul_v3_v3fl(p, vec, 1.0f/size); + + mi = n + turb * noise_turbulence(p, basis, depth, hard); + + mi = noise_wave(wave, mi); + + if(type == SHD_MARBLE_SHARP) + mi = sqrt(mi); + else if(type == SHD_MARBLE_SHARPER) + mi = sqrt(sqrt(mi)); + + return mi; +} + +/* **************** MARBLE ******************** */ static bNodeSocketType sh_node_tex_marble_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -55,11 +79,25 @@ static void node_shader_init_tex_marble(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMarble *tex= (NodeTexMarble*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&turbulence, SOCK_VALUE, in[2]); + + out[0]->vec[0]= marble(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence, tex->depth); } -static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_marble", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c index 1a4d8913bc5..0400ac26c91 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c @@ -28,8 +28,192 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +/* Musgrave fBm + * + * H: fractal increment parameter + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * + * from "Texturing and Modelling: A procedural approach" + */ + +static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 0.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value += noise_basis(p, basis) * pwr; + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value += rmd * noise_basis(p, basis) * pwr; + + return value; +} + +/* Musgrave Multifractal + * + * H: highest fractal dimension + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + */ + +static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 1.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value *= (pwr * noise_basis(p, basis) + 1.0f); + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value *= (rmd * pwr * noise_basis(p, basis) + 1.0f); /* correct? */ + + return value; +} + +/* Musgrave Heterogeneous Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_hetero_terrain(float p[3], int basis, float H, float lacunarity, float octaves, float offset) +{ + float value, increment, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + /* first unscaled octave of function; later octaves are scaled */ + value = offset + noise_basis(p, basis); + mul_v3_fl(p, lacunarity); + + for(i = 1; i < (int)octaves; i++) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += increment; + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += rmd * increment; + } + + return value; +} + +/* Hybrid Additive/Multiplicative Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + result = noise_basis(p, basis) + offset; + weight = gain * result; + mul_v3_fl(p, lacunarity); + + for(i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { + if(weight > 1.0f) + weight = 1.0f; + + signal = (noise_basis(p, basis) + offset) * pwr; + pwr *= pwHL; + result += weight * signal; + weight *= gain * signal; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + result += rmd * ((noise_basis(p, basis) + offset) * pwr); + + return result; +} + +/* Ridged Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + result = signal; + weight = 1.0f; + + for(i = 1; i < (int)octaves; i++) { + mul_v3_fl(p, lacunarity); + weight = CLAMPIS(signal * gain, 0.0f, 1.0f); + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + signal *= weight; + result += signal * pwr; + pwr *= pwHL; + } + + return result; +} + +static float musgrave(int type, int basis, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float size, float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1.0f/size); + + if(type == SHD_MUSGRAVE_MULTIFRACTAL) + return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); + else if(type == SHD_MUSGRAVE_FBM) + return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, octaves); + else if(type == SHD_MUSGRAVE_HYBRID_MULTIFRACTAL) + return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == SHD_MUSGRAVE_RIDGED_MULTIFRACTAL) + return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == SHD_MUSGRAVE_HETERO_TERRAIN) + return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, octaves, offset); + + return 0.0f; +} + +/* **************** MUSGRAVE ******************** */ static bNodeSocketType sh_node_tex_musgrave_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -56,11 +240,29 @@ static void node_shader_init_tex_musgrave(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMusgrave *tex= (NodeTexMusgrave*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, dimension, lacunarity, octaves, offset, gain; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&dimension, SOCK_VALUE, in[2]); + nodestack_get_vec(&lacunarity, SOCK_VALUE, in[3]); + nodestack_get_vec(&octaves, SOCK_VALUE, in[4]); + nodestack_get_vec(&offset, SOCK_VALUE, in[5]); + nodestack_get_vec(&gain, SOCK_VALUE, in[6]); + + out[0]->vec[0]= musgrave(tex->type, tex->basis, dimension, lacunarity, octaves, offset, 1.0f, gain, size, vec); } -static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_musgrave", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c index ae91bb5624a..d77eb2993e2 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c @@ -28,8 +28,25 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float noise_texture_value(float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1e8f); + return cellnoise(p); +} + +static void noise_texture_color(float rgb[3], float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1e8f); + cellnoise_color(rgb, p); +} + +/* **************** NOISE ******************** */ static bNodeSocketType sh_node_tex_noise_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -42,11 +59,22 @@ static bNodeSocketType sh_node_tex_noise_out[]= { { -1, 0, "" } }; -static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + noise_texture_color(out[0]->vec, vec); + out[1]->vec[0]= noise_texture_value(vec); } -static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_noise", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c index fa31ec9fead..e8413debb0e 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c @@ -52,11 +52,11 @@ static void node_shader_init_tex_sky(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_sky(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_sky(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_sky", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c index fc4dff91954..2de01a8856f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c @@ -28,8 +28,29 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float stucci(int type, int basis, int hard, float turbulence, float size, float vec[3]) +{ + float p[3], b2, ofs, r; + + mul_v3_v3fl(p, vec, 1.0f/size); + b2 = noise_basis_hard(p, basis, hard); + ofs = turbulence/200.0f; + + if(type != SHD_STUCCI_PLASTIC) + ofs *= b2*b2; + + p[2] += ofs; + r = noise_basis_hard(p, basis, hard); + + if(type == SHD_STUCCI_WALL_OUT) + r = 1.0f - r; + + return MAX2(r, 0.0f); +} + +/* **************** STUCCI ******************** */ static bNodeSocketType sh_node_tex_stucci_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -53,11 +74,25 @@ static void node_shader_init_tex_stucci(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexStucci *tex= (NodeTexStucci*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&turbulence, SOCK_VALUE, in[2]); + + out[0]->vec[0]= stucci(tex->type, tex->basis, tex->hard, turbulence, size, vec); } -static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_stucci", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c index 87711ab2885..0bee1631e49 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c @@ -28,8 +28,66 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float voronoi_tex(int distance_metric, int coloring, + float weight1, float weight2, float weight3, float weight4, + float exponent, float intensity, float size, float vec[3], float color[3]) +{ + float aw1 = fabsf(weight1); + float aw2 = fabsf(weight2); + float aw3 = fabsf(weight3); + float aw4 = fabsf(weight4); + float sc = (aw1 + aw2 + aw3 + aw4); + float da[4]; + float pa[4][3]; + float fac; + float p[3]; + + if(sc != 0.0f) + sc = intensity/sc; + + /* compute distance and point coordinate of 4 nearest neighbours */ + mul_v3_v3fl(p, vec, 1.0f/size); + voronoi_generic(p, distance_metric, exponent, da, pa); + + /* Scalar output */ + fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + + /* colored output */ + if(coloring == SHD_VORONOI_INTENSITY) { + color[0]= color[1]= color[2]= fac; + } + else { + float rgb1[3], rgb2[3], rgb3[3], rgb4[3]; + + cellnoise_color(rgb1, pa[0]); + cellnoise_color(rgb2, pa[1]); + cellnoise_color(rgb3, pa[2]); + cellnoise_color(rgb4, pa[3]); + + mul_v3_v3fl(color, rgb1, aw1); + madd_v3_v3fl(color, rgb2, aw2); + madd_v3_v3fl(color, rgb3, aw3); + madd_v3_v3fl(color, rgb4, aw4); + + if(coloring != SHD_VORONOI_POSITION) { + float t1 = MIN2((da[1] - da[0])*10.0f, 1.0f); + + if(coloring == SHD_VORONOI_POSITION_OUTLINE_INTENSITY) + mul_v3_fl(color, t1*fac); + else if(coloring == SHD_VORONOI_POSITION_OUTLINE) + mul_v3_fl(color, t1*sc); + } + else { + mul_v3_fl(color, sc); + } + } + + return fac; +} + +/* **************** VORONOI ******************** */ static bNodeSocketType sh_node_tex_voronoi_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -57,11 +115,30 @@ static void node_shader_init_tex_voronoi(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexVoronoi *tex= (NodeTexVoronoi*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, w1, w2, w3, w4, exponent; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&w1, SOCK_VALUE, in[2]); + nodestack_get_vec(&w2, SOCK_VALUE, in[3]); + nodestack_get_vec(&w3, SOCK_VALUE, in[4]); + nodestack_get_vec(&w4, SOCK_VALUE, in[5]); + nodestack_get_vec(&exponent, SOCK_VALUE, in[6]); + + out[1]->vec[0]= voronoi_tex(tex->distance_metric, tex->coloring, w1, w2, w3, w4, + exponent, 1.0f, size, vec, out[0]->vec); } -static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_voronoi", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c index e9d46b96f62..54a47b7ffcd 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c @@ -28,8 +28,35 @@ */ #include "../SHD_util.h" +#include "SHD_noise.h" -/* **************** OUTPUT ******************** */ +static float wood(float p[3], float size, int type, int wave, int basis, unsigned int hard, float turb) +{ + float x = p[0]; + float y = p[1]; + float z = p[2]; + + if(type == SHD_WOOD_BANDS) { + return noise_wave(wave, (x + y + z)*10.0f); + } + else if(type == SHD_WOOD_RINGS) { + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f); + } + else if (type == SHD_WOOD_BAND_NOISE) { + float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; + float wi = turb*noise_basis_hard(psize, basis, hard); + return noise_wave(wave, (x + y + z)*10.0f + wi); + } + else if (type == SHD_WOOD_RING_NOISE) { + float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; + float wi = turb*noise_basis_hard(psize, basis, hard); + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f + wi); + } + + return 0.0f; +} + +/* **************** WOOD ******************** */ static bNodeSocketType sh_node_tex_wood_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, @@ -54,11 +81,25 @@ static void node_shader_init_tex_wood(bNode *node) node->storage = tex; } -static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexWood *tex= (NodeTexWood*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_VALUE, in[1]); + nodestack_get_vec(&turbulence, SOCK_VALUE, in[2]); + + out[0]->vec[0]= wood(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence); } -static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { return GPU_stack_link(mat, "node_tex_wood", in, out); } diff --git a/source/blender/nodes/intern/SHD_util.c b/source/blender/nodes/intern/SHD_util.c index cf7c64c9d5e..462a37809b0 100644 --- a/source/blender/nodes/intern/SHD_util.c +++ b/source/blender/nodes/intern/SHD_util.c @@ -85,6 +85,7 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) ShaderCallData scd; /* convert caller data to struct */ + memset(&scd, 0, sizeof(scd)); scd.shi= shi; scd.shr= shr; diff --git a/source/blender/nodes/intern/SHD_util.h b/source/blender/nodes/intern/SHD_util.h index e6b1377067d..bf6f2bd20eb 100644 --- a/source/blender/nodes/intern/SHD_util.h +++ b/source/blender/nodes/intern/SHD_util.h @@ -74,6 +74,7 @@ #include "IMB_imbuf.h" #include "RE_pipeline.h" +#include "RE_render_ext.h" #include "RE_shader_ext.h" #include "GPU_material.h" @@ -83,6 +84,10 @@ typedef struct ShaderCallData { ShadeInput *shi; /* from render pipe */ ShadeResult *shr; /* from render pipe */ + + TexResult *texres; + float *co; + float *dxt, *dyt; } ShaderCallData; /* output socket defines */ diff --git a/source/blender/nodes/intern/TEX_util.c b/source/blender/nodes/intern/TEX_util.c index b5e27ca2ccb..7cee7522de7 100644 --- a/source/blender/nodes/intern/TEX_util.c +++ b/source/blender/nodes/intern/TEX_util.c @@ -49,6 +49,7 @@ #include #include "TEX_util.h" +#include "SHD_util.h" #define PREV_RES 128 /* default preview resolution */ @@ -185,30 +186,44 @@ int ntreeTexExecTree( ShadeInput *shi, MTex *mtex ){ - TexCallData data; - float *nor= texres->nor; - int retval = TEX_INT; - - data.co = co; - data.dxt = dxt; - data.dyt = dyt; - data.osatex = osatex; - data.target = texres; - data.do_preview = preview; - data.thread = thread; - data.which_output = which_output; - data.cfra= cfra; - data.mtex= mtex; - data.shi= shi; - - ntreeExecTree(nodes, &data, thread); + if(nodes->type == NTREE_SHADER) { + ShaderCallData scd; + + memset(&scd, 0, sizeof(scd)); + scd.texres = texres; + scd.co = co; + scd.dxt = dxt; + scd.dyt = dyt; + + ntreeExecTree(nodes, &scd, thread); + return TEX_INT|TEX_RGB; + } + else { + TexCallData data; + float *nor= texres->nor; + int retval = TEX_INT; + + data.co = co; + data.dxt = dxt; + data.dyt = dyt; + data.osatex = osatex; + data.target = texres; + data.do_preview = preview; + data.thread = thread; + data.which_output = which_output; + data.cfra= cfra; + data.mtex= mtex; + data.shi= shi; + + ntreeExecTree(nodes, &data, thread); - if(texres->nor) retval |= TEX_NOR; - 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; + if(texres->nor) retval |= TEX_NOR; + 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; - return retval; + return retval; + } } diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 5f5dab94ba3..724d38b7d6e 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -1362,9 +1362,9 @@ int multitex_ext_safe(Tex *tex, float *texvec, TexResult *texres) { int use_nodes= tex->use_nodes, retval; - tex->use_nodes= 0; + // XXX tex->use_nodes= 0; retval= multitex_nodes(tex, texvec, NULL, NULL, 0, texres, 0, 0, NULL, NULL); - tex->use_nodes= use_nodes; + // XXX tex->use_nodes= use_nodes; return retval; } -- cgit v1.2.3 From c50ceae4e8f52210ea8f46b6d8cb4edbd6058da6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 16 Jun 2011 13:24:44 +0000 Subject: Cycles: fix for windows compile error. --- source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c index 87c08ddaf9c..e31b59b88f4 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -46,11 +46,11 @@ static float blend(float p[3], int type, int axis) return (1.0f + x)/2.0f; } else if(type == SHD_BLEND_QUADRATIC) { - float r = fmaxf((1.0f + x)/2.0f, 0.0f); + float r = MAX2((1.0f + x)/2.0f, 0.0f); return r*r; } else if(type == SHD_BLEND_EASING) { - float r = fminf(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); + float r = MIN2(MAX2((1.0f + x)/2.0f, 0.0f), 1.0f); float t = r*r; return (3.0f*t - 2.0f*t*r); @@ -62,7 +62,7 @@ static float blend(float p[3], int type, int axis) return atan2(y, x)/(2.0f*(float)M_PI) + 0.5f; } else { - float r = fmaxf(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); + float r = MAX2(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); if(type == SHD_BLEND_QUADRATIC_SPHERE) return r*r; -- cgit v1.2.3 From 7adc3b6029ab495696ab0763e438326343355438 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 17 Jun 2011 11:33:57 +0000 Subject: Cycles: compile error fix for ICC. --- intern/cycles/util/util_progress.h | 1 + 1 file changed, 1 insertion(+) diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h index 86ab34aa7f9..c9e0a6ab713 100644 --- a/intern/cycles/util/util_progress.h +++ b/intern/cycles/util/util_progress.h @@ -25,6 +25,7 @@ * update notifications from a job running in another thread. All methods * except for the constructor/destructor are thread safe. */ +#include "util_function.h" #include "util_string.h" #include "util_thread.h" -- cgit v1.2.3 From 9d90f09d7afd3b43e0fa4553f1b984f69368ca6c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 17 Jun 2011 13:01:29 +0000 Subject: Cycles: fix crash when adding textures in material nodes, WIP code here with new and old nodes mix was crashing. --- source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c | 3 +++ source/blender/nodes/intern/SHD_util.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c index bd4da005a48..e5f04ec934d 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_texture.c @@ -42,6 +42,9 @@ static void node_shader_exec_output_texture(void *data, bNode *node, bNodeStack ShaderCallData *scd= (ShaderCallData*)data; TexResult *texres = scd->texres; float col[4]; + + if(!texres) + return; nodestack_get_vec(col, SOCK_RGBA, in[0]); diff --git a/source/blender/nodes/intern/SHD_util.c b/source/blender/nodes/intern/SHD_util.c index 462a37809b0..31313950730 100644 --- a/source/blender/nodes/intern/SHD_util.c +++ b/source/blender/nodes/intern/SHD_util.c @@ -83,11 +83,13 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns) void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) { ShaderCallData scd; + float co[3] = {0.0f, 0.0f, 0.0f}; /* convert caller data to struct */ memset(&scd, 0, sizeof(scd)); scd.shi= shi; scd.shr= shr; + scd.co= co; /* each material node has own local shaderesult, with optional copying */ memset(shr, 0, sizeof(ShadeResult)); -- cgit v1.2.3 From 0a4a36271f13bbbc5c6db2060206731033b84bf0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 23 Jun 2011 10:33:15 +0000 Subject: Cycles: fix merge problem with startup.blend --- source/blender/editors/datafiles/startup.blend.c | 1280 ++-------------------- 1 file changed, 82 insertions(+), 1198 deletions(-) diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index dd3bad8593e..1e45bc1a925 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -190,9 +190,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57, 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, 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, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0,168,138,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72,140,158, 23, 1, 0, 0, 0, 8,137,158, 23, 1, 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, @@ -204,8 +202,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 57, 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,140,254, 57, 1,203, 0, 0, 0, 0, 0, - 0, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0, 72,140,158, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,232,141,158, 23, 1, 0, 0, 0,168,138,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -217,7 +213,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57, 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, 58,254, 57, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0,232,141,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136,143,158, 23, 1, 0, 0, 0, @@ -356,13 +351,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,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, 0, 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,103, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,104, 68, 2, 0, 0, 0, 0,104, 62, 68, 2, - 0, 0, 0, 0,168, 76,190, 2, 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, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 136,161,158, 23, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -387,7 +375,6 @@ char datatoc_startup_blend[]= { 74, 3, 0, 0, 99, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 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,218,253, 57, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 40, 1, 0, 0,248,164,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136,163,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156, 67, @@ -397,23 +384,14 @@ char datatoc_startup_blend[]= { 109, 1, 57, 1, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0, 221, 1, 0, 0, 73, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,109, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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,117, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,119, 1, 2, 0, 0, 0, 0,184,104, 68, 2, - 0, 0, 0, 0, 88, 83,190, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,104,166,158, 23, 1, 0, 0, 0,163, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 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,216,134,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -441,8 +419,6 @@ char datatoc_startup_blend[]= { 161, 2, 0, 0, 43, 6, 0, 0,133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 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, 16,253, 57, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 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, 68, 65, 84, 65, 40, 1, 0, 0, 56,171,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 168,172,158, 23, 1, 0, 0, 0,200,169,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, @@ -453,9 +429,6 @@ char datatoc_startup_blend[]= { 161, 2, 0, 0,161, 2, 0, 0,159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,167, 3, 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, 68, 65, 84, 65,248, 0, 0, 0,120,133, 29, 2, 0, 0, 0, 0,162, 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, 68, 65, 84, 65, 40, 1, 0, 0,168,172,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,174,158, 23, 1, 0, 0, 0, 56,171,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, @@ -476,29 +449,10 @@ char datatoc_startup_blend[]= { 43, 6, 0, 0, 43, 6, 0, 0,159, 0, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 72,128, 81, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,184,134, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,168,129, 29, 2, - 0, 0, 0, 0, 72,105, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0,232,107, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 6, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 15, 15, 52, 6, -124, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,136,138, 29, 2, 0, 0, 0, 0,136,138, 29, 2, - 0, 0, 0, 0,168,135, 29, 2, 0, 0, 0, 0, 24,137, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,222,176, 3, 0, 0, 0, 0, 72,166,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,135, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,137, 29, 2, 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,128,198, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,175,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,174,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,137, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,135, 29, 2, 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, 51, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 51, 6, 0, 0, 18, 0, 0, 0, 97, 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, 52, 6, 98, 0, 0, 0, 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, 6, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 6, 98, 0, 0, 0, 0, 0, 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,213, 2, 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, @@ -560,15 +514,6 @@ char datatoc_startup_blend[]= { 133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 68, 65, 84, 65, - 40, 1, 0, 0, 8,142, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,140, 29, 2, - 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,156, 67, 0,128,157,195, - 0, 0, 0, 0, 57, 1, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 18, 0, 0, 0, 76, 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, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 74, 1, 77, 1, 57, 1, - 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 6, 0, 0,126, 7, 0, 0,185, 1, 0, 0, - 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 77, 1, 0, 0, 0, 0, 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, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0,136,184,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,185,158, 23, 1, 0, 0, 0, 24,183,158, 23, 1, 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, @@ -584,32 +529,10 @@ char datatoc_startup_blend[]= { 136,184,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 69, 62, 3, - 0, 0, 0, 0,136, 69, 62, 3, 0, 0, 0, 0,216,144, 29, 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, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216,144, 29, 2, 0, 0, 0, 0,220, 0, 0, 0, - 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56,145, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 56,145, 29, 2, - 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,168,139, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0,248,110, 29, 2, - 0, 0, 0, 0, 88,108, 29, 2, 0, 0, 0, 0, 24,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,125, 0, 0, 0,233, 3, 0, 0, 1, 1,143, 3,109, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,215, 2, 2, - 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 56,158, 29, 2, 0, 0, 0, 0, 88,147, 29, 2, 0, 0, 0, 0, 24,153, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,120, 76, 3, 0, 0, 0, 0,104,176,176, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,147, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,148, 29, 2, - 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, 99, 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,142, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 99, 68, - 0, 0,200, 65, 0,128, 99, 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,143, 3, 26, 0,143, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 2, 0, 0, - 51, 6, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 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, 8,226, 2, 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,159, 2, 0, 0,159, 2, 0, 0, +159, 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,104,187,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -621,30 +544,12 @@ char datatoc_startup_blend[]= { 159, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 1,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,150, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168,151, 29, 2, - 0, 0, 0, 0,200,148, 29, 2, 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,165, 2, 0, 0, - 51, 6, 0, 0,151, 0, 0, 0,151, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,223, 2, 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, 68, 65, 84, 65,240, 0, 0, 0,216,188,158, 23, 1, 0, 0, 0,158, 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, 68, 65, 84, 65, 40, 1, 0, 0,168,151, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,153, 29, 2, - 0, 0, 0, 0, 56,150, 29, 2, 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, 51, 6, 0, 0, - 51, 6, 0, 0,151, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,153, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,151, 29, 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, 8,190,158, 23, 1, 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, @@ -689,35 +594,9 @@ char datatoc_startup_blend[]= { 68, 65, 84, 65, 0, 1, 0, 0,168,195,158, 23, 1, 0, 0, 0, 17, 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, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 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,184,159, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,104,146, 29, 2, 0, 0, 0, 0,168,109, 29, 2, 0, 0, 0, 0,104,111, 29, 2, - 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0,136,110, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,125, 0, 0, 0,107, 1, 0, 0, 2, 2,164, 2,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226, 2, 2, - 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,168,160, 29, 2, 0, 0, 0, 0,248,164, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,165,176, 3, 0, 0, 0, 0, 8,223, 78, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,160, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,162, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,119, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 41, 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,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, - 0, 0,200, 65, 0,192, 40, 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,164, 2, 26, 0,164, 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, -163, 2, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 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, 8,229, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,162, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,136,163, 29, 2, - 0, 0, 0, 0,168,160, 29, 2, 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, 67,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,212, 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,212, 0, 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,213, 0,200, 0,195, 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,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,213, 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,248,229, 2, 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, 56,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, @@ -740,18 +619,10 @@ char datatoc_startup_blend[]= { 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,197,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,164, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,163, 29, 2, 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,212, 0, 0, 0, 18, 0, 0, 0, -202, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,202, 1, 0, 0, 18, 0, 0, 0,212, 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,203, 1,213, 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, -163, 2, 0, 0,151, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 1,213, 0, - 0, 0, 0, 0, 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,228, 2, 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, 68, 65, 84, 65,240, 0, 0, 0,104,166, 29, 2, 0, 0, 0, 0,161, 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, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,158, 23, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,168,200,158, 23, 1, 0, 0, 0, @@ -771,37 +642,15 @@ char datatoc_startup_blend[]= { 180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 42,119, 58, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,204,230,156,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,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,202, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 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,168,167, 29, 2, 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, 68, 65, 84, 65,104, 0, 0, 0,168,167, 29, 2, 0, 0, 0, 0, 19, 1, 0, 0, - 1, 0, 0, 0,152,219, 31, 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, 0, 0, 0, 88,168, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, - 1, 0, 0, 0, 40,175, 29, 2, 0, 0, 0, 0,184,159, 29, 2, 0, 0, 0, 0,104,111, 29, 2, 0, 0, 0, 0, 8,107, 29, 2, - 0, 0, 0, 0,248,110, 29, 2, 0, 0, 0, 0,216,111, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 2, 0, 0,109, 1, 0, 0,233, 3, 0, 0, 12, 12,164, 2,125, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 22, 3, 2, - 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0,152,173, 29, 2, 0, 0, 0, 0, 72,169, 29, 2, 0, 0, 0, 0, 40,172, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 86, 78, 3, 0, 0, 0, 0, 24,153, 74, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,169, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,184,170, 29, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,124, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 41, 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,163, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 40, 68, - 0, 0,200, 65, 0,192, 40, 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,164, 2, 26, 0,164, 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, -163, 2, 0, 0,109, 1, 0, 0,134, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 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, 72, 24, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,184,170, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 40,172, 29, 2, - 0, 0, 0, 0, 72,169, 29, 2, 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, 64, 20,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, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 98, 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, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, - 6, 0,200, 0, 99, 2,200, 0, 81, 2, 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,135, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 99, 2, - 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, 56, 25, 3, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 88,204,158, 23, 1, 0, 0, 0, @@ -942,38 +791,13 @@ char datatoc_startup_blend[]= { 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,177, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176, 29, 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, 68, 65, 84, 65,216, 0, 0, 0,232,229,158, 23, 1, 0, 0, 0,170, 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, 53, 6, 0, 0,126, 7, 0, 0, 33, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,201, 0, 0, 0, 0, 0, 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,216, 2, 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,248,178, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,248,178, 29, 2, - 0, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 57,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 33,105, 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, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, -241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, -255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,194, 70,158, 62,240,233,167, 62, 32,206,159,187, 0, 0,168,180, 34,111,178,189, -170,173,175, 61,170,177,123, 62, 0, 0, 8, 51,211,120, 21,194,144, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66, -196,173,255,193,157,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, 48,201,194, 63, 0,250,147,191,244,250, 39,191, 8,165, 39,191,191,164,206, 63, -241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64, 8,108,228,190, 50,247,227,190,127, 21, 64,191, -255,162,175,191,216, 49, 49, 65,152, 9, 52, 65,126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126,137, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,137, 19, 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, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, - 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,231,158, 23, 1, 0, 0, 0, 194, 0, 0, 0, 1, 0, 0, 0,136,255,158, 23, 1, 0, 0, 0, 40,226,158, 23, 1, 0, 0, 0,200,209,158, 23, 1, 0, 0, 0, @@ -1011,11 +835,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, -100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,168,182, 29, 2, 0, 0, 0, 0,157, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 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, 68, 65, 84, 65, 88, 1, 0, 0, 104,236,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8,238,158, 23, 1, 0, 0, 0,200,234,158, 23, 1, 0, 0, 0, @@ -1028,15 +847,6 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, 40, 1, 0, 0,248,203, 29, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,202, 29, 2, 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, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 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, 68, 65, 84, 65, 88, 1, 0, 0, 8,238,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 168,239,158, 23, 1, 0, 0, 0,104,236,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1060,11 +870,6 @@ char datatoc_startup_blend[]= { 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, - 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,232, 2, 3, 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, 68, 65, 84, 65, 88, 1, 0, 0, 72,241,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 232,242,158, 23, 1, 0, 0, 0,168,239,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1088,15 +893,6 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, 88, 1, 0, 0, 8,205,182, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 84, 75, 3, - 0, 0, 0, 0, 88, 88, 75, 3, 0, 0, 0, 0,168, 53,190, 2, 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, 6, 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, 88, 1, 0, 0,136,244,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,246,158, 23, 1, 0, 0, 0,232,242,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1108,8 +904,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 76, 1,102, 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,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40,246,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200,247,158, 23, 1, 0, 0, 0,136,244,158, 23, 1, 0, 0, 0, @@ -3418,7 +3212,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,115, 4, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 4,146, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3482,8 +3275,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 0, 0, 0, 0, 0, 0, 0, 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 35, 3, 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,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 40, 1, 0, 0, 248,108, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,110, 70, 27, 1, 0, 0, 0,136,107, 70, 27, 1, 0, 0, 0, @@ -3535,8 +3326,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 7, 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,120,107,166, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3609,44 +3398,11 @@ char datatoc_startup_blend[]= { 168,119, 70, 27, 1, 0, 0, 0,200,116, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152,181, 78, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,228, 29, 2, - 0, 0, 0, 0, 88,210, 29, 2, 0, 0, 0, 0, 24,191, 29, 2, 0, 0, 0, 0,168,190, 29, 2, 0, 0, 0, 0, 56,190, 29, 2, - 0, 0, 0, 0,136,191, 29, 2, 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,168,215, 2, 2, 0, 0, 0, 0, 56,227, 29, 2, - 0, 0, 0, 0, 56,227, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, 0, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,137, 82, 3, 0, 0, 0, 0,152, 19,181, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 88,216, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,200,217, 29, 2, 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, 8,226, 2, 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, 68, 65, 84, 65, - 40, 1, 0, 0,200,217, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 56,219, 29, 2, 0, 0, 0, 0, 88,216, 29, 2, - 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 2, 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, 26, 0, 0, 0, 99, 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, 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, 68, 65, 84, 65, - 40, 1, 0, 0,168,220, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,222, 29, 2, 0, 0, 0, 0, 56,219, 29, 2, - 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0,168,119, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,121, 70, 27, 1, 0, 0, 0, 56,118, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3657,26 +3413,6 @@ char datatoc_startup_blend[]= { 95, 4, 0, 0, 95, 4, 0, 0, 26, 0, 0, 0, 99, 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, 7, 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,136,223, 29, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 3, 0, 0,136,223, 29, 2, 0, 0, 0, 0,156, 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, 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, 20, 0,255,255, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,121, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,119, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0,128, 67, @@ -3696,95 +3432,24 @@ char datatoc_startup_blend[]= { 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, 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, 68, 65, 84, 65, 56, 1, 0, 0, 56,227, 29, 2, - 0, 0, 0, 0,157, 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, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0,168,242, 31, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 3, 0, 8, 8, 0, 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,184,228, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,234, 29, 2, - 0, 0, 0, 0,104,215, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,152,187, 29, 2, 0, 0, 0, 0, 88,189, 29, 2, - 0, 0, 0, 0, 56,190, 29, 2, 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,184,247, 2, 2, 0, 0, 0, 0,136,232, 29, 2, - 0, 0, 0, 0,136,232, 29, 2, 0, 0, 0, 0,168,229, 29, 2, 0, 0, 0, 0, 24,231, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,128,181, 3, 0, 0, 0, 0, 40,155,179, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,229, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 24,231, 29, 2, 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,200,249, 2, 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, 68, 65, 84, 65, - 40, 1, 0, 0, 24,231, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,229, 29, 2, - 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,216,248, 2, 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, 68, 65, 84, 65, - 48, 1, 0, 0,136,232, 29, 2, 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, 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,152,219, 31, 2, - 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, 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, 68, 65, 84, 65,160, 0, 0, 0, 8,234, 29, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,228, 29, 2, 0, 0, 0, 0,216,185, 29, 2, 0, 0, 0, 0,200,189, 29, 2, 0, 0, 0, 0,168,190, 29, 2, - 0, 0, 0, 0, 24,191, 29, 2, 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,184,238, 2, 2, 0, 0, 0, 0, 72,239, 29, 2, - 0, 0, 0, 0, 72,239, 29, 2, 0, 0, 0, 0,248,234, 29, 2, 0, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,176,178, 3, 0, 0, 0, 0,216,134,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,248,234, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104,236, 29, 2, 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,200,246, 2, 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, 68, 65, 84, 65, - 40, 1, 0, 0,104,236, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,216,237, 29, 2, 0, 0, 0, 0,248,234, 29, 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,240, 2, 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, 68, 65, 84, 65, - 40, 1, 0, 0,216,237, 29, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,236, 29, 2, - 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,216,239, 2, 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, 68, 65, 84, 65, - 40, 33, 0, 0, 72,239, 29, 2, 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, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152,219, 31, 2, 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, @@ -3915,7 +3580,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -4182,18 +3846,12 @@ char datatoc_startup_blend[]= { 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,144, 70, 27, 1, 0, 0, 0, 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,143, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 41, 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, 8,126, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,152,108, 74, 3, 0, 0, 0, 0,168, 53,190, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 95, 4, 0, 0, 7, 2, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 4, 54, 1, 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, 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, 0, 0, 24,146, 70, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 24,146, 70, 27, 1, 0, 0, 0, 153, 0, 0, 0, 1, 0, 0, 0,207, 1, 16, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 18, 2, 64, @@ -4217,23 +3875,10 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, - 88, 1, 0, 0,184,157, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,162, 74, 3, 0, 0, 0, 0, 8,126, 74, 3, - 0, 0, 0, 0,152, 56,190, 2, 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, 41, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 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, 24,162, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,120, 25, 75, 3, 0, 0, 0, 0,184,157, 74, 3, 0, 0, 0, 0,200, 59,190, 2, 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, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,128, 63, 246, 99, 26, 66,239, 62,118, 66, 24,120,132, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0,200,149, 70, 27, 1, 0, 0, 0, @@ -4261,7 +3906,6 @@ char datatoc_startup_blend[]= { 195, 0, 0, 0, 1, 0, 0, 0, 56,154, 70, 27, 1, 0, 0, 0, 88,151, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4277,7 +3921,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 95, 4, 0, 0, 95, 4, 0, 0, 26, 0, 0, 0, 60, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,155, 70, 27, 1, 0, 0, 0, 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,154, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, @@ -4297,78 +3940,34 @@ char datatoc_startup_blend[]= { 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 41, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 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,216,101, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,155, 75, 3, 0, 0, 0, 0,184, 90, 75, 3, - 0, 0, 0, 0,200, 85,190, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 41, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 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,136, 50, 1, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216, 75, 3, 0, 0, 0, 0,184,155, 75, 3, - 0, 0, 0, 0, 56, 96,190, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 75, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0,136, 50, 1, 2, 0, 0, 0, 0,104, 99,190, 2, 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, 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,200,158, 61, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,146, 74, 3, 0, 0, 0, 0,216,216, 75, 3, - 0, 0, 0, 0,216,101,190, 2, 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, 3, 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, 72,146, 74, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184, 18, 89, 3, 0, 0, 0, 0,200,158, 61, 3, 0, 0, 0, 0, 72,108,190, 2, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, @@ -4727,7 +4326,6 @@ char datatoc_startup_blend[]= { 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, 4, 0, 0, 97, 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, 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, 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,180, 70, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,205, 70, 27, 1, 0, 0, 0,232,176, 70, 27, 1, 0, 0, 0, @@ -5078,35 +4676,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 45, 30, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,229, 30, 2, 0, 0, 0, 0,104, 40, 30, 2, 0, 0, 0, 0,232, 21, 30, 2, - 0, 0, 0, 0,120, 21, 30, 2, 0, 0, 0, 0,152, 20, 30, 2, 0, 0, 0, 0, 88, 22, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,233, 3, 0, 0, 3, 3, 58, 1,169, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 8, 0,168,209, 2, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 40, 49, 30, 2, 0, 0, 0, 0, 72, 46, 30, 2, - 0, 0, 0, 0,184, 47, 30, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 69, 68, 2, - 0, 0, 0, 0,232,252, 74, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 46, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,184, 47, 30, 2, 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,157, 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, 57, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,156, 67, 0, 0,200, 65, 0,128,156, 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, 58, 1, 26, 0, 58, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 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, 58, 1, 26, 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,184,211, 2, 2, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0,200,135,182, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,185,188, 3, 0, 0, 0, 0,120,118, 68, 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, 47, 30, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 46, 30, 2, 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,148, 67, 0, 0,250,194, 0, 0, 0, 0, 41, 1, 0, 0, 58, 1, 0, 0, 18, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 18, 0, 0, 0, -142, 0, 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, 58, 1,143, 0, 41, 1,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 6, 0, 0,126, 7, 0, 0, 65, 3, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 58, 1,143, 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,200,210, 2, 2, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0,248,131, 62, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,107, 68, 2, 0, 0, 0, 0, 24,109, 68, 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, 40, 49, 30, 2, 0, 0, 0, 0,166, 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, @@ -5154,8 +4723,6 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, 40, 1, 0, 0,136,236, 30, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,235, 30, 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,200,147,166, 19, 1, 0, 0, 0, @@ -5289,8 +4856,6 @@ char datatoc_startup_blend[]= { 31, 0,142, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 5, 0, 0,118, 7, 0, 0, 13, 3, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 31, 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, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24, 6, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5313,19 +4878,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 68, 65, 84, 65, 40, 1, 0, 0, 88, 10, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 8, 31, 2, 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, 24, 11, 89, 3, 0, 0, 0, 0, 1, 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,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 87, 89, 3, - 0, 0, 0, 0, 56, 8, 75, 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, 68, 65, 84, 65, 88, 1, 0, 0, 56, 87, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184,135, 68, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 9, 71, 27, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,200, 10, 71, 27, 1, 0, 0, 0,136, 7, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5337,16 +4889,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, - 88, 1, 0, 0,184,135, 68, 2, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 40,116,184, 3, 0, 0, 0, 0, 56, 87, 89, 3, - 0, 0, 0, 0,168, 53,190, 2, 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, 6, 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, 88, 1, 0, 0,200, 10, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 12, 71, 27, 1, 0, 0, 0, 40, 9, 71, 27, 1, 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, @@ -5369,8 +4912,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,140,254, 76, 1,203, 0, 0, 0, 0, 0, - 0, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0, 8, 14, 71, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 15, 71, 27, 1, 0, 0, 0, @@ -5406,7 +4947,6 @@ char datatoc_startup_blend[]= { 0, 0, 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,124, 1,102, 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, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 88, 1, 0, 0,232, 18, 71, 27, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,136, 20, 71, 27, 1, 0, 0, 0, 72, 17, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5453,7 +4993,6 @@ char datatoc_startup_blend[]= { 0, 0, 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,124, 1, 0, 0, 20, 0, 0, 0, 4, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 25, 71, 27, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 23, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5472,16 +5011,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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,248,174,178, 3, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 8, 13, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0,248, 7, 31, 2, - 0, 0, 0, 0,216,244, 30, 2, 0, 0, 0, 0,120,247, 30, 2, 0, 0, 0, 0,232,247, 30, 2, 0, 0, 0, 0, 88,248, 30, 2, - 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, 24, 51, 3, 2, 0, 0, 0, 0, 72, 18, 31, 2, 0, 0, 0, 0, 72, 18, 31, 2, - 0, 0, 0, 0,248, 13, 31, 2, 0, 0, 0, 0,216, 16, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 86, 68, 2, 0, 0, 0, 0,232,187,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 13, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,104, 15, 31, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -5500,7 +5029,6 @@ char datatoc_startup_blend[]= { 245, 2, 0, 0,231, 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, 243, 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, 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, 68, 65, 84, 65, 40, 1, 0, 0,152, 30, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 29, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 60, 68, 0, 0, 0, 0, 0, 0, 48, 65, @@ -5511,7 +5039,6 @@ char datatoc_startup_blend[]= { 245, 2, 0, 0,231, 5, 0, 0, 26, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 2,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 68, 65, 84, 65, 40, 0, 0, 0, 8, 32, 71, 27, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 40, 97,166, 19, 1, 0, 0, 0, @@ -5543,15 +5070,6 @@ char datatoc_startup_blend[]= { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,231, 5, 0, 0,185, 1, 0, 0, 210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 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, 68, 65, 84, 65, - 40, 1, 0, 0, 56, 21, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 19, 31, 2, - 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,104, 43, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,152, 36, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8, 38, 71, 27, 1, 0, 0, 0, 40, 35, 71, 27, @@ -5562,300 +5080,6 @@ char datatoc_startup_blend[]= { 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,245, 2, 0, 0,211, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,115, 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, - 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, 25, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 38, 31, 2, 0, 0, 0, 0,216, 18, 31, 2, 0, 0, 0, 0, 24,250, 30, 2, - 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0,168,249, 30, 2, 0, 0, 0, 0, 56,249, 30, 2, 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,168,215, 2, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, - 0, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 73, 1, 2, - 0, 0, 0, 0,120,141,119, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 26, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,248, 27, 31, 2, 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, 8,226, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0,248, 27, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,136, 26, 31, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200,222, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0,104, 29, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,248, 27, 31, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,223, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0,216, 30, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,104, 29, 31, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,217, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 72, 32, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 30, 31, 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, 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,200,216, 2, 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,184, 33, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,184, 33, 31, 2, 0, 0, 0, 0,156, 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,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, 20, 0,251,251, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 56, 1, 0, 0,104, 37, 31, 2, 0, 0, 0, 0,157, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 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,232, 38, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 25, 31, 2, 0, 0, 0, 0,120,247, 30, 2, - 0, 0, 0, 0,152,246, 30, 2, 0, 0, 0, 0,136,250, 30, 2, 0, 0, 0, 0, 24,250, 30, 2, 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,168,209, 2, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,216, 39, 31, 2, - 0, 0, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,162,166, 3, - 0, 0, 0, 0,248, 39, 76, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 39, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 41, 31, 2, 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,184,211, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 72, 41, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 39, 31, 2, 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,200,210, 2, 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, 68, 65, 84, 65, 24, 1, 0, 0,184, 42, 31, 2, 0, 0, 0, 0,166, 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,136,173,175, 3, 0, 0, 0, 0,136,173,175, 3, 0, 0, 0, 0, 24, 44, 31, 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, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0, 24, 44, 31, 2, 0, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120, 44, 31, 2, - 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,120, 44, 31, 2, 0, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,152,219, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 8,240, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,248, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,232, 78, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 6, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 24,172, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,255, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,136,235, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,242, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,184,234, 31, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,152,219, 31, 2, 0, 0, 0, 0, 83, 78, 0, 0, -216, 0, 0, 0, 56, 46, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,184,243, 30, 2, - 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47, 31, 2, - 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, 0, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, - 0, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, - 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,232,216,159, 0, 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, 88, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,200, 47, 31, 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,200, 47, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 56, 48, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 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, 56, 48, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, - 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,168, 48, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 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, 24, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 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,136, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 49, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 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,248, 49, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, - 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,104, 50, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 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,216, 50, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 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, 72, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184, 51, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 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,184, 51, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, - 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, 40, 52, 31, 2, - 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 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,152, 52, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 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, 8, 53, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 52, 31, 2, 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,120, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 53, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,120, 53, 31, 2, - 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,232, 53, 31, 2, - 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 54, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0, 88, 54, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,200, 54, 31, 2, - 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 55, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0, 56, 55, 31, 2, - 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,168, 55, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0, 24, 56, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248, 56, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,136, 56, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,248, 56, 31, 2, - 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216, 57, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,104, 57, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,216, 57, 31, 2, - 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184, 58, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0, 72, 58, 31, 2, - 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,184, 58, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152, 59, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0, 40, 59, 31, 2, - 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,152, 59, 31, 2, - 0, 0, 0, 0,168, 48, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0, 8, 60, 31, 2, - 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 60, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,120, 60, 31, 2, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,232, 60, 31, 2, - 0, 0, 0, 0,248, 49, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 61, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0, 88, 61, 31, 2, - 0, 0, 0, 0,184, 51, 31, 2, 0, 0, 0, 0, 8, 53, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,200, 61, 31, 2, - 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 62, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 62, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 66, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 49, 31, 2, 0, 0, 0, 0,200, 47, 31, 2, 0, 0, 0, 0, 56, 48, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, - 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,216, 3, 3, 2, 0, 0, 0, 0, 40,105, 31, 2, 0, 0, 0, 0, 40,105, 31, 2, - 0, 0, 0, 0, 8, 64, 31, 2, 0, 0, 0, 0,120, 65, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248, 20,181, 3, 0, 0, 0, 0,152,190,176, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 64, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,120, 65, 31, 2, 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,232, 5, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,120, 65, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 31, 2, 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,248, 4, 3, 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, 68, 65, 84, 65,160, 0, 0, 0,232, 66, 31, 2, - 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 71, 31, 2, 0, 0, 0, 0, 24, 63, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, - 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 0, 0, 0, 0,168, 48, 31, 2, 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,120,255, 2, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,184, 70, 31, 2, 0, 0, 0, 0,216, 67, 31, 2, - 0, 0, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,181, 3, - 0, 0, 0, 0,120, 55, 68, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 67, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 72, 69, 31, 2, 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,232, 2, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0, 72, 69, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 67, 31, 2, 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,232, 95,177, 3, 0, 0, 0, 0, 1, 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,152, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,113, 78, 3, - 0, 0, 0, 0, 56, 75, 62, 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, 68, 65, 84, 65, 88, 1, 0, 0,248,113, 78, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 1, 3, 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,220,255,124, 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, 40, 1, 0, 0, 8, 38, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120, 39, 71, 27, 1, 0, 0, 0,152, 36, 71, 27, @@ -5866,8 +5090,6 @@ char datatoc_startup_blend[]= { 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 2, 0, 0,231, 5, 0, 0,211, 1, 0, 0, 211, 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,135,255,124, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 6, 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, 68, 65, 84, 65, 40, 1, 0, 0,120, 39, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232, 40, 71, 27, 1, 0, 0, 0, 8, 38, 71, 27, @@ -5878,28 +5100,16 @@ char datatoc_startup_blend[]= { 104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 5, 0, 0,231, 5, 0, 0,211, 1, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 53,119, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,184, 24, 76, 3, 0, 0, 0, 0,152, 56,190, 2, 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, 0, 0, 0, 0, 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, 40, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 39, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 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,245, 2, 0, 0,231, 5, 0, 0,211, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 2,115, 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, 68, 65, 84, 65, - 88, 1, 0, 0,120,113,119, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,216,176, 3, 0, 0, 0, 0,168, 53,119, 3, - 0, 0, 0, 0,200, 59,190, 2, 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, 88, 42, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65, 104, 3, 0, 0, 88, 42, 71, 27, 1, 0, 0, 0,153, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5922,15 +5132,9 @@ char datatoc_startup_blend[]= { 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,143,185, 30, 59, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,216,216,176, 3, 0, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,104,179,187, 3, 0, 0, 0, 0,120,113,119, 3, 0, 0, 0, 0,136, 62,190, 2, 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, 6, 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, @@ -5985,11 +5189,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8,226, 2, 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,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6008,15 +5207,6 @@ char datatoc_startup_blend[]= { 233, 5, 0, 0,118, 7, 0, 0, 45, 3, 0, 0, 70, 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, 68, 65, 84, 65, 40, 1, 0, 0, 56, 77, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 78, 31, 2, 0, 0, 0, 0,200, 75, 31, 2, 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, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 56, 56, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 54, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, @@ -6032,30 +5222,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 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,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,200,216, 2, 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, 24, 80, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0, 24, 80, 31, 2, - 0, 0, 0, 0,156, 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, 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,255,255, - 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 71, 27, 1, 0, 0, 0, @@ -6103,44 +5270,7 @@ char datatoc_startup_blend[]= { 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8, 0, 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, 72, 85, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168, 91, 31, 2, 0, 0, 0, 0,248, 71, 31, 2, - 0, 0, 0, 0, 88, 47, 31, 2, 0, 0, 0, 0,216, 50, 31, 2, 0, 0, 0, 0, 72, 51, 31, 2, 0, 0, 0, 0,104, 50, 31, 2, - 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, 8, 55, 3, 2, 0, 0, 0, 0,216, 89, 31, 2, 0, 0, 0, 0,216, 89, 31, 2, - 0, 0, 0, 0, 56, 86, 31, 2, 0, 0, 0, 0,168, 87, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 30,178, 3, 0, 0, 0, 0,200, 57,178, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 86, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,168, 87, 31, 2, 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, 24, 57, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,168, 87, 31, 2, - 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 86, 31, 2, 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, 40, 56, 3, 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, 68, 65, 84, 65, 40, 0, 0, 0, 24, 89, 31, 2, - 0, 0, 0, 0,177, 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,136, 89, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136, 89, 31, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,216, 89, 31, 2, 0, 0, 0, 0, -178, 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,120,113,184, 3, 0, 0, 0, 0,168, 10, 89, 3, 0, 0, 0, 0, 24, 89, 31, 2, 0, 0, 0, 0, - 24, 89, 31, 2, 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, @@ -6148,34 +5278,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,168, 91, 31, 2, 0, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,104, 98, 31, 2, 0, 0, 0, 0, 72, 85, 31, 2, 0, 0, 0, 0, 40, 52, 31, 2, 0, 0, 0, 0, -248, 49, 31, 2, 0, 0, 0, 0,136, 49, 31, 2, 0, 0, 0, 0,152, 52, 31, 2, 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, -168,209, 2, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,152, 92, 31, 2, 0, 0, 0, 0, - 8, 94, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,184,176, 3, 0, 0, 0, 0, - 40, 86, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 92, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 8, 94, 31, 2, 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, -184,211, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 8, 94, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 92, 31, 2, 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, -200,210, 2, 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, 68, 65, 84, 65, 24, 1, 0, 0,120, 95, 31, 2, 0, 0, 0, 0,166, 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, 83, 78, 0, 0,216, 0, 0, 0,152, 67, 71, 27, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 40,104, 71, 27, 1, 0, 0, 0, 56,239, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6245,7 +5352,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 97, 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,104,220,182, 3, 0, 0, 0, 0,104,220,182, 3, 0, 0, 0, 0,216, 96, 31, 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, 68, 65, 84, 65,160, 0, 0, 0, 72, 80, 71, 27, 1, 0, 0, 0, 194, 0, 0, 0, 1, 0, 0, 0, 24, 87, 71, 27, 1, 0, 0, 0,136, 76, 71, 27, 1, 0, 0, 0,184, 68, 71, 27, 1, 0, 0, 0, @@ -6262,15 +5368,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0,195, 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, 196, 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, 68, 65, 84, 65, 40, 1, 0, 0,200,100, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 99, 31, 2, 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,104, 43, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,152, 82, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 168, 85, 71, 27, 1, 0, 0, 0, 40, 81, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0, 96,133,196, 0, 0, 0, 0, @@ -6315,128 +5412,18 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 0, 0, 0,184,105, 31, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, -136,171, 31, 2, 0, 0, 0, 0, 56, 46, 31, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, -184,114, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152,219, 31, 2, 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, -232,216,159, 0, 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,106, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,107, 31, 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, 72,107, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 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,184,107, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 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, 40,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, -184,107, 31, 2, 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, -152,108, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 40,108, 31, 2, 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, 8,109, 31, 2, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 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,120,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -232,109, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 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,232,109, 31, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120,109, 31, 2, 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, - 88,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -200,110, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, 88,110, 31, 2, 0, 0, 0, 0, - 72,107, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 56,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0,200,110, 31, 2, 0, 0, 0, 0, -184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -168,111, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, 56,111, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 24,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0,168,111, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -136,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, 24,112, 31, 2, 0, 0, 0, 0, -216,106, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -248,112, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0,136,112, 31, 2, 0, 0, 0, 0, -216,106, 31, 2, 0, 0, 0, 0,152,108, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -104,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0,248,112, 31, 2, 0, 0, 0, 0, -120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -216,113, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0,104,113, 31, 2, 0, 0, 0, 0, - 8,109, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 72,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,114, 31, 2, 0, 0, 0, 0,216,113, 31, 2, 0, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -184,114, 31, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,114, 31, 2, 0, 0, 0, 0, - 40,108, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 40,115, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0, 72,107, 31, 2, 0, 0, 0, 0,184,107, 31, 2, 0, 0, 0, 0, 8,109, 31, 2, 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,216, 3, 3, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0,248,170, 31, 2, 0, 0, 0, 0, - 24,116, 31, 2, 0, 0, 0, 0,136,117, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72,171,181, 3, 0, 0, 0, 0,200, 91, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,116, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,136,117, 31, 2, 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,232, 5, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0,136,117, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,116, 31, 2, 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, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 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, 68, 65, 84, 65,160, 0, 0, 0,248,118, 31, 2, 0, 0, 0, 0, -197, 0, 0, 0, 1, 0, 0, 0,168,157, 31, 2, 0, 0, 0, 0, 40,115, 31, 2, 0, 0, 0, 0,216,106, 31, 2, 0, 0, 0, 0, -152,108, 31, 2, 0, 0, 0, 0,120,109, 31, 2, 0, 0, 0, 0,232,109, 31, 2, 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, -184,238, 2, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0, 56,124, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 0, 0, 0, 0, -200,122, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 20,184, 3, 0, 0, 0, 0, - 24, 63,183, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,119, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, - 88,121, 31, 2, 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, -200,246, 2, 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, 68, 65, 84, 65, 40, 1, 0, 0, 88,121, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, -200,122, 31, 2, 0, 0, 0, 0,232,119, 31, 2, 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, -200,240, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 23, 79, 3, 0, 0, 0, 0, -120, 23, 79, 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, 68, 65, 84, 65, 88, 1, 0, 0,120, 23, 79, 3, 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, 24,243, 2, 2, 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, 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, -200,122, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,121, 31, 2, 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,216,239, 2, 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, 68, 65, 84, 65, 40, 33, 0, 0, - 56,124, 31, 2, 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, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,219, 31, 2, 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, @@ -6567,7 +5554,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -6758,23 +5744,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 3, 44, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0,120,161, 31, 2, 0, 0, 0, 0,152,158, 31, 2, 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,200,222, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 78, 68, 2, 0, 0, 0, 0, 40, 78, 68, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40, 78, 68, 2, 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, 88, 55,194, 2, 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,104, 98, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,104, 98, 71, 27, 1, 0, 0, 0, 153, 0, 0, 0, 1, 0, 0, 0,161, 58,190, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, @@ -6894,8 +5863,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 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,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, 68, 65, 84, 65, 40, 1, 0, 0, 248,119, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,118, 71, 27, 1, 0, 0, 0, @@ -6906,15 +5873,6 @@ char datatoc_startup_blend[]= { 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, 4, 0, 0, 97, 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, 68, 65, 84, 65, 40, 1, 0, 0,232,162, 31, 2, 0, 0, 0, 0, -198, 0, 0, 0, 1, 0, 0, 0, 88,164, 31, 2, 0, 0, 0, 0,120,161, 31, 2, 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, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184,217, 2, 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, 68, 65, 84, 65,160, 0, 0, 0, 104,121, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,126, 71, 27, 1, 0, 0, 0,168,117, 71, 27, 1, 0, 0, 0, @@ -6946,26 +5904,6 @@ char datatoc_startup_blend[]= { 170, 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,200,165, 31, 2, 0, 0, 0, 0, 68, 65, 84, 65, 96, 3, 0, 0,200,165, 31, 2, 0, 0, 0, 0, -156, 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,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,255,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7005,8 +5943,6 @@ char datatoc_startup_blend[]= { 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,171,255,203, 0, 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, 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, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,168,242, 31, 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, 68, 65, 84, 65, 40, 1, 0, 0,168,131, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, @@ -7018,14 +5954,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0,154, 6, 0, 0, 15, 2, 0, 0, 15, 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, 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, - 68, 65, 84, 65, 40, 1, 0, 0, 40,188, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184,186, 31, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 4, 3, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,133, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,131, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, @@ -7036,14 +5964,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0,154, 6, 0, 0,127, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 6,145, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,189, 31, 2, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,194, 31, 2, 0, 0, 0, 0, -200,185, 31, 2, 0, 0, 0, 0,168,172, 31, 2, 0, 0, 0, 0,184,175, 31, 2, 0, 0, 0, 0,120,177, 31, 2, 0, 0, 0, 0, -248,173, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, - 15, 15,127, 7, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,212, 2, 2, 0, 0, 0, 0,104,193, 31, 2, 0, 0, 0, 0, -104,193, 31, 2, 0, 0, 0, 0,136,190, 31, 2, 0, 0, 0, 0,248,191, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,243, 74, 3, 0, 0, 0, 0,120,145,182, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -136,190, 31, 2, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0,248,191, 31, 2, 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,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, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,136,134, 71, 27, 1, 0, 0, 0,160, 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, @@ -15502,9 +14422,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, @@ -15522,9 +14442,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, @@ -15548,21 +14468,15 @@ char datatoc_startup_blend[]= { 1, 0, 0, 0, 40,125,157, 23, 1, 0, 0, 0,136,126,157, 23, 1, 0, 0, 0,136,126,157, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 29, 72, 27, 1, 0, 0, 0,136, 29, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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, 0, 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,120, 7, 34, 2, - 0, 0, 0, 0,120, 7, 34, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8, 63, 19, 2, 0, 0, 0, 0, 8,185, 19, 2, - 0, 0, 0, 0, 8,185, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 91, 33, 2, - 0, 0, 0, 0,216, 41, 34, 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, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 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,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, + 0, 0, 0, 0, 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, 1, 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, 0, 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,100, 0,100, 0, + 0, 0, 0, 0, 2, 0, 1, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15572,10 +14486,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 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, @@ -15597,29 +14510,9 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, 88, 30, 0, 0,120, 7, 34, 2, - 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, 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,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 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, 0, + 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, 68, 65, 84, 65, 88, 30, 0, 0, 56,132,109, 3, 1, 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, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, @@ -15642,16 +14535,6 @@ char datatoc_startup_blend[]= { 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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,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,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, 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,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, @@ -15662,7 +14545,7 @@ char datatoc_startup_blend[]= { 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,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, 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, 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,255,255,255,128, 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, 44, 44, 44,255,255,255,255,255,114,114,114,255, @@ -15672,7 +14555,7 @@ char datatoc_startup_blend[]= { 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, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,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,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, 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,255,255,255,128, @@ -15696,14 +14579,14 @@ char datatoc_startup_blend[]= { 75, 75, 75,255,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, - 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,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,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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 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, 44, 44, 44,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,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,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,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,204, 0,153,255, 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, @@ -15711,19 +14594,19 @@ char datatoc_startup_blend[]= { 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, 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,255,255,255,128, 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,255,255,255,128, 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, 44, 44, 44,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,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, 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,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,204, 0,153,255, 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, + 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,255,240,255, 64,255, - 64,192, 48,255,240,144,160,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, + 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, 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,255,255,255,128, - 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 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,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, @@ -15741,9 +14624,9 @@ char datatoc_startup_blend[]= { 112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,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,204, 0,153,255, 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, + 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, + 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, @@ -15752,13 +14635,13 @@ char datatoc_startup_blend[]= { 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,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,204, 0,153,255, -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, + 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, + 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,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,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, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, @@ -15768,36 +14651,36 @@ char datatoc_startup_blend[]= { 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,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, 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, 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,255,255,255,128, - 0, 0, 0, 0, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255, 255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, -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, +255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255, +255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, +195,195,195,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 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, 0, 0, 0, 0, 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,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 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, 44, 44, 44,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,255,140, 25,255, 8, 48, 8,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,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 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, 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,255,255,255,128, 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, 44, 44, 44,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,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,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,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,204, 0,153,255, 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, @@ -15805,23 +14688,23 @@ char datatoc_startup_blend[]= { 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, 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,255,255,255,128, 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,255,255,255,128, 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, 44, 44, 44,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, + 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,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 3, 0, 4, 0,155,155,155,160,100,100,100,255,111,106,100,255,104,106,117,255,105,117,110,255, 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,255,255,255,128, - 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, + 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, 44, 44, 44,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, -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, +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,255,255,255, 219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,204, 0,153,255, 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,255,255,255,255, @@ -15829,7 +14712,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 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, 155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,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,255,255,255,128, 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, 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, 44, 44, 44,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,255,140, 25,255, 8, 48, 8,255, @@ -15849,8 +14732,8 @@ char datatoc_startup_blend[]= { 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, - 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 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,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, 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,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,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,255,255,255,255,255,114,114,114,255, @@ -17018,7 +15901,7 @@ char datatoc_startup_blend[]= { 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, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0, 16, 5,112, 0, 36, 0, 56, 0, -112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0,184, 5,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, +112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0, 16, 6,240, 1, 0, 0, 0, 0, 0, 0, 24, 1, 112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 40, 1, 8, 1,136, 0,224, 1, 64, 1, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0,176, 1, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, @@ -17732,3 +16615,4 @@ char datatoc_startup_blend[]= { 7, 0, 57, 9, 7, 0, 9, 12, 7, 0, 10, 12, 7, 0, 65, 1, 7, 0, 11, 12, 4, 0,148, 9, 4, 0, 9, 3, 2, 0, 15, 0, 2, 0, 35, 0, 4, 0, 67, 0, 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}; + -- cgit v1.2.3 From d28fc39ff50a7afbe5f456ed5558b5aea4797d15 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 24 Jun 2011 17:19:34 +0000 Subject: Cycles: attempt at fixing windows compile problem after merge. --- intern/cycles/blender/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 784f78a54d4..ef68431267c 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -66,8 +66,8 @@ ADD_DEPENDENCIES(cycles_blender bf_rna) IF(WIN32) TARGET_LINK_LIBRARIES(cycles_blender ${PYTHON_LINKFLAGS}) - TARGET_LINK_LIBRARIES(cycles_blender debug ${PYTHON_LIBRARY}_d) - TARGET_LINK_LIBRARIES(cycles_blender optimized ${PYTHON_LIBRARY}) + TARGET_LINK_LIBRARIES(cycles_blender debug ${PYTHON_LIBRARIES}_d) + TARGET_LINK_LIBRARIES(cycles_blender optimized ${PYTHON_LIBRARIES}) SET_TARGET_PROPERTIES(cycles_blender PROPERTIES PREFIX "lib") SET_TARGET_PROPERTIES(cycles_blender PROPERTIES SUFFIX ".pyd") -- cgit v1.2.3 From 1cf0af703d0a7c18e0d03e5fd4fb9f0a0597b629 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 27 Jun 2011 17:10:50 +0000 Subject: Cycles: working towards texture workflow design http://wiki.blender.org/index.php/Dev:2.5/Source/Render/TextureWorkflow * Added "active texture node" in shading node trees. * Texture draw mode draw active texture node now, and new Material draw mode shows GLSL material. * GLSL materials now match solid draw mode lighting better. * Texture properties can now texture nodes from material/world/lamp. --- intern/cycles/blender/addon/ui.py | 59 +- release/scripts/startup/bl_ui/space_view3d.py | 1 - source/blender/blenkernel/BKE_DerivedMesh.h | 12 +- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/BKE_scene.h | 2 + source/blender/blenkernel/intern/DerivedMesh.c | 138 + source/blender/blenkernel/intern/cdderivedmesh.c | 157 +- source/blender/blenkernel/intern/material.c | 4 + source/blender/blenkernel/intern/node.c | 73 +- source/blender/blenkernel/intern/scene.c | 8 +- source/blender/blenkernel/intern/subsurf_ccg.c | 150 ++ source/blender/blenloader/intern/readfile.c | 4 +- source/blender/editors/include/ED_node.h | 2 + source/blender/editors/include/UI_interface.h | 7 +- source/blender/editors/interface/interface_node.c | 99 +- .../editors/interface/interface_templates.c | 2 +- .../blender/editors/interface/interface_widgets.c | 4 + .../editors/space_buttons/buttons_context.c | 16 +- .../blender/editors/space_buttons/buttons_intern.h | 7 + .../editors/space_buttons/buttons_texture.c | 74 +- source/blender/editors/space_node/CMakeLists.txt | 1 + source/blender/editors/space_node/SConscript | 2 +- source/blender/editors/space_node/node_edit.c | 71 +- source/blender/editors/space_node/node_intern.h | 1 - source/blender/editors/space_node/node_select.c | 4 +- source/blender/editors/space_view3d/drawmesh.c | 378 ++- source/blender/editors/space_view3d/drawobject.c | 16 +- source/blender/editors/space_view3d/view3d_draw.c | 6 +- source/blender/gpu/GPU_extensions.h | 1 + source/blender/gpu/GPU_material.h | 3 +- source/blender/gpu/intern/gpu_draw.c | 19 +- source/blender/gpu/intern/gpu_material.c | 33 +- source/blender/gpu/intern/gpu_shader_material.glsl | 29 +- .../blender/gpu/intern/gpu_shader_material.glsl.c | 2807 ++++++++++---------- source/blender/makesdna/DNA_node_types.h | 3 +- source/blender/makesdna/DNA_object_types.h | 4 +- source/blender/makesdna/DNA_view3d_types.h | 2 +- source/blender/makesrna/intern/rna_nodetree.c | 5 + source/blender/makesrna/intern/rna_space.c | 10 +- source/blender/makesrna/intern/rna_ui_api.c | 4 - .../blender/nodes/intern/SHD_nodes/SHD_tex_blend.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_clouds.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_distnoise.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_environment.c | 12 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 10 +- .../blender/nodes/intern/SHD_nodes/SHD_tex_magic.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_marble.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_musgrave.c | 3 + .../blender/nodes/intern/SHD_nodes/SHD_tex_noise.c | 3 + .../blender/nodes/intern/SHD_nodes/SHD_tex_sky.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_stucci.c | 3 + .../nodes/intern/SHD_nodes/SHD_tex_voronoi.c | 3 + .../blender/nodes/intern/SHD_nodes/SHD_tex_wood.c | 3 + source/blender/nodes/intern/SHD_util.h | 1 + source/gameengine/Ketsji/BL_BlenderShader.cpp | 2 +- .../RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 2 +- 56 files changed, 2522 insertions(+), 1757 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 88a1a1a602e..4f171a78b99 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -233,7 +233,7 @@ def panel_node_draw(layout, id, output_type, input_name): layout.label(text="No output node.") else: input = find_node_input(node, input_name) - layout.template_node_view(id, ntree, node, input); + layout.template_node_view(ntree, node, input); class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Surface" @@ -354,31 +354,34 @@ class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): pin_id = space.pin_id use_pin_id = space.use_pin_id; user = context.texture_user + node = context.texture_node if not use_pin_id or not isinstance(pin_id, bpy.types.Texture): pin_id = None if not pin_id: layout.template_texture_user() - layout.separator() - split = layout.split(percentage=0.65) - col = split.column() + if user: + layout.separator() - if pin_id: - col.template_ID(space, "pin_id") - elif user: - col.template_ID(user, "texture", new="texture.new") - - if tex: - row = split.row() - row.prop(tex, "use_nodes", icon="NODETREE", text="") - row.label() + split = layout.split(percentage=0.65) + col = split.column() + + if pin_id: + col.template_ID(space, "pin_id") + elif user: + col.template_ID(user, "texture", new="texture.new") + + if tex: + row = split.row() + row.prop(tex, "use_nodes", icon="NODETREE", text="") + row.label() - if not tex.use_nodes: - split = layout.split(percentage=0.2) - split.label(text="Type:") - split.prop(tex, "type", text="") + if not tex.use_nodes: + split = layout.split(percentage=0.2) + split.label(text="Type:") + split.prop(tex, "type", text="") class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Nodes" @@ -395,6 +398,22 @@ class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): tex = context.texture panel_node_draw(layout, tex, 'OUTPUT_TEXTURE', 'Color') +class CyclesTexture_PT_node(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Node" + bl_context = "texture" + + @classmethod + def poll(cls, context): + node = context.texture_node + return node and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + node = context.texture_node + ntree = node.id_data + layout.template_node_view(ntree, node, None) + class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Mapping" bl_context = "texture" @@ -402,7 +421,8 @@ class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): @classmethod def poll(cls, context): tex = context.texture - return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + node = context.texture_node + return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -416,7 +436,8 @@ class CyclesTexture_PT_color(CyclesButtonsPanel, bpy.types.Panel): @classmethod def poll(cls, context): tex = context.texture - return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + node = context.texture_node + return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index b7c7e2a18b6..70635cb2444 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -2127,7 +2127,6 @@ class VIEW3D_PT_view3d_display(bpy.types.Panel): col = layout.column() col.label(text="Shading:") col.prop(gs, "material_mode", text="") - col.prop(view, "show_textured_solid") layout.separator() diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 55ade5fe5d9..45c4b949809 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -325,6 +325,14 @@ struct DerivedMesh { float t), void *userData); + /* Draw all faces with materials + * o setMaterial is called for every different material nr + * o setFace is called to verify if a face must be hidden + */ + void (*drawMappedFacesMat)(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData); + /* Release reference to the DerivedMesh. This function decides internally * if the DerivedMesh will be freed, or cached for later use. */ void (*release)(DerivedMesh *dm); @@ -526,7 +534,7 @@ void weight_to_rgb(float input, float *fr, float *fg, float *fb); typedef struct DMVertexAttribs { struct { struct MTFace *array; - int emOffset, glIndex; + int emOffset, glIndex, glTexco; } tface[MAX_MTFACE]; struct { @@ -541,7 +549,7 @@ typedef struct DMVertexAttribs { struct { float (*array)[3]; - int emOffset, glIndex; + int emOffset, glIndex, glTexco; } orco; int tottface, totmcol, tottang, totorco; diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index bd88d1da9d7..be9c359a13c 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -201,6 +201,7 @@ 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 nodeClearActiveID(struct bNodeTree *ntree, short idtype); +struct bNode *nodeGetActiveTexture(struct bNodeTree *ntree); void NodeTagChanged(struct bNodeTree *ntree, struct bNode *node); int NodeTagIDChanged(struct bNodeTree *ntree, struct ID *id); diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 9164085e7b7..8f85f14306f 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -102,6 +102,8 @@ int get_render_child_particle_number(struct RenderData *r, int num); int get_render_shadow_samples(struct RenderData *r, int samples); float get_render_aosss_error(struct RenderData *r, float error); +int scene_use_new_shading_system(struct Scene *scene); + #ifdef __cplusplus } #endif diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index d9c98bc0200..454aaeff7e0 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1050,6 +1050,7 @@ static void emDM_drawMappedFacesGLSL(DerivedMesh *dm, glEnd(); } } +#undef PASSATTRIB } static void emDM_drawFacesGLSL(DerivedMesh *dm, @@ -1058,6 +1059,140 @@ static void emDM_drawFacesGLSL(DerivedMesh *dm, dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } +static void emDM_drawMappedFacesMat(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData) +{ + EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm; + EditMesh *em= emdm->em; + float (*vertexCos)[3]= emdm->vertexCos; + float (*vertexNos)[3]= emdm->vertexNos; + EditVert *eve; + EditFace *efa; + DMVertexAttribs attribs= {{{0}}}; + GPUVertexAttribs gattribs; + int i, b, matnr, new_matnr; + + matnr = -1; + + /* always use smooth shading even for flat faces, else vertex colors wont interpolate */ + glShadeModel(GL_SMOOTH); + + for (i=0,eve=em->verts.first; eve; eve= eve->next) + eve->tmp.l = (intptr_t) i++; + +#define PASSATTRIB(efa, eve, vert) { \ + if(attribs.totorco) { \ + float *orco = attribs.orco.array[eve->tmp.l]; \ + if(attribs.orco.glTexco) \ + glTexCoord3fv(orco); \ + else \ + glVertexAttrib3fvARB(attribs.orco.glIndex, orco); \ + } \ + for(b = 0; b < attribs.tottface; b++) { \ + MTFace *_tf = (MTFace*)((char*)efa->data + attribs.tface[b].emOffset); \ + if(attribs.tface[b].glTexco) \ + glTexCoord2fv(_tf->uv[vert]); \ + else \ + glVertexAttrib2fvARB(attribs.tface[b].glIndex, _tf->uv[vert]); \ + } \ + for(b = 0; b < attribs.totmcol; b++) { \ + MCol *cp = (MCol*)((char*)efa->data + attribs.mcol[b].emOffset); \ + GLubyte col[4]; \ + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ + glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ + } \ + if(attribs.tottang) { \ + float *tang = attribs.tang.array[i*4 + vert]; \ + glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ + } \ +} + + for (i=0,efa= em->faces.first; efa; i++,efa= efa->next) { + int drawSmooth= (efa->flag & ME_SMOOTH); + + /* face hiding */ + if(setFace && !setFace(userData, i)) + continue; + + /* material */ + new_matnr = efa->mat_nr + 1; + if(new_matnr != matnr) { + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + } + + /* face */ + glBegin(efa->v4?GL_QUADS:GL_TRIANGLES); + if (!drawSmooth) { + if(vertexCos) glNormal3fv(emdm->faceNos[i]); + else glNormal3fv(efa->n); + + PASSATTRIB(efa, efa->v1, 0); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v1->tmp.l]); + else glVertex3fv(efa->v1->co); + + PASSATTRIB(efa, efa->v2, 1); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v2->tmp.l]); + else glVertex3fv(efa->v2->co); + + PASSATTRIB(efa, efa->v3, 2); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v3->tmp.l]); + else glVertex3fv(efa->v3->co); + + if(efa->v4) { + PASSATTRIB(efa, efa->v4, 3); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v4->tmp.l]); + else glVertex3fv(efa->v4->co); + } + } else { + PASSATTRIB(efa, efa->v1, 0); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v1->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v1->tmp.l]); + } + else { + glNormal3fv(efa->v1->no); + glVertex3fv(efa->v1->co); + } + + PASSATTRIB(efa, efa->v2, 1); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v2->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v2->tmp.l]); + } + else { + glNormal3fv(efa->v2->no); + glVertex3fv(efa->v2->co); + } + + PASSATTRIB(efa, efa->v3, 2); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v3->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v3->tmp.l]); + } + else { + glNormal3fv(efa->v3->no); + glVertex3fv(efa->v3->co); + } + + if(efa->v4) { + PASSATTRIB(efa, efa->v4, 3); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v4->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v4->tmp.l]); + } + else { + glNormal3fv(efa->v4->no); + glVertex3fv(efa->v4->co); + } + } + } + glEnd(); + } +#undef PASSATTRIB +} + static void emDM_getMinMax(DerivedMesh *dm, float min_r[3], float max_r[3]) { EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm; @@ -1364,6 +1499,7 @@ DerivedMesh *editmesh_get_derived(EditMesh *em, float (*vertexCos)[3]) emdm->dm.drawMappedFacesGLSL = emDM_drawMappedFacesGLSL; emdm->dm.drawFacesTex = emDM_drawFacesTex; emdm->dm.drawFacesGLSL = emDM_drawFacesGLSL; + emdm->dm.drawMappedFacesMat = emDM_drawMappedFacesMat; emdm->dm.drawUVEdges = emDM_drawUVEdges; emdm->dm.release = emDM_release; @@ -2765,6 +2901,7 @@ void DM_vertex_attributes_from_gpu(DerivedMesh *dm, GPUVertexAttribs *gattribs, attribs->tface[a].array = tfdata->layers[layer].data; attribs->tface[a].emOffset = tfdata->layers[layer].offset; attribs->tface[a].glIndex = gattribs->layer[b].glindex; + attribs->tface[a].glTexco = gattribs->layer[b].gltexco; } } else if(gattribs->layer[b].type == CD_MCOL) { @@ -2805,6 +2942,7 @@ void DM_vertex_attributes_from_gpu(DerivedMesh *dm, GPUVertexAttribs *gattribs, attribs->orco.array = vdata->layers[layer].data; attribs->orco.emOffset = vdata->layers[layer].offset; attribs->orco.glIndex = gattribs->layer[b].glindex; + attribs->orco.glTexco = gattribs->layer[b].gltexco; } } } diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 72ee9b55800..23e40e72356 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -990,6 +990,50 @@ static void cdDM_drawMappedFacesTex(DerivedMesh *dm, int (*setDrawOptions)(void cdDM_drawFacesTex_common(dm, NULL, setDrawOptions, userData); } +static void cddm_draw_attrib_vertex(DMVertexAttribs *attribs, MVert *mvert, int a, int index, int vert, int smoothnormal) +{ + int b; + + /* orco texture coordinates */ + if(attribs->totorco) { + if(attribs->orco.glTexco) + glTexCoord3fv(attribs->orco.array[index]); + else + glVertexAttrib3fvARB(attribs->orco.glIndex, attribs->orco.array[index]); + } + + /* uv texture coordinates */ + for(b = 0; b < attribs->tottface; b++) { + MTFace *tf = &attribs->tface[b].array[a]; + + if(attribs->tface[b].glTexco) + glTexCoord2fv(tf->uv[vert]); + else + glVertexAttrib2fvARB(attribs->tface[b].glIndex, tf->uv[vert]); + } + + /* vertex colors */ + for(b = 0; b < attribs->totmcol; b++) { + MCol *cp = &attribs->mcol[b].array[a*4 + vert]; + GLubyte col[4]; + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; + glVertexAttrib4ubvARB(attribs->mcol[b].glIndex, col); + } + + /* tangent for normal mapping */ + if(attribs->tottang) { + float *tang = attribs->tang.array[a*4 + vert]; + glVertexAttrib4fvARB(attribs->tang.glIndex, tang); + } + + /* vertex normal */ + if(smoothnormal) + glNormal3sv(mvert[index].no); + + /* vertex coordinate */ + glVertex3fv(mvert[index].co); +} + static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *attribs), int (*setDrawOptions)(void *userData, int index), void *userData) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -1080,37 +1124,14 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo } } -#define PASSVERT(index, vert) { \ - if(attribs.totorco) \ - glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]); \ - for(b = 0; b < attribs.tottface; b++) { \ - MTFace *tf = &attribs.tface[b].array[a]; \ - glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]); \ - } \ - for(b = 0; b < attribs.totmcol; b++) { \ - MCol *cp = &attribs.mcol[b].array[a*4 + vert]; \ - GLubyte col[4]; \ - col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ - glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ - } \ - if(attribs.tottang) { \ - float *tang = attribs.tang.array[a*4 + vert]; \ - glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ - } \ - if(smoothnormal) \ - glNormal3sv(mvert[index].no); \ - glVertex3fv(mvert[index].co); \ - } + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v1, 0, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v2, 1, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v3, 2, smoothnormal); - PASSVERT(mface->v1, 0); - PASSVERT(mface->v2, 1); - PASSVERT(mface->v3, 2); if(mface->v4) - PASSVERT(mface->v4, 3) + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v4, 3, smoothnormal); else - PASSVERT(mface->v3, 2) - -#undef PASSVERT + cddm_draw_attrib_vertex(&attribs, mvert, a, mface->v3, 2, smoothnormal); } glEnd(); } @@ -1352,6 +1373,85 @@ static void cdDM_drawFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *at dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } +static void cdDM_drawMappedFacesMat(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData) +{ + CDDerivedMesh *cddm = (CDDerivedMesh*) dm; + GPUVertexAttribs gattribs; + DMVertexAttribs attribs; + MVert *mvert = cddm->mvert; + MFace *mf = cddm->mface; + float (*nors)[3] = dm->getFaceDataArray(dm, CD_NORMAL); + int a, matnr, new_matnr; + int orig, *index = dm->getFaceDataArray(dm, CD_ORIGINDEX); + + cdDM_update_normals_from_pbvh(dm); + + matnr = -1; + + glShadeModel(GL_SMOOTH); + + memset(&attribs, 0, sizeof(attribs)); + + glBegin(GL_QUADS); + + for(a = 0; a < dm->numFaceData; a++, mf++) { + const int smoothnormal = (mf->flag & ME_SMOOTH); + + /* material */ + new_matnr = mf->mat_nr + 1; + + if(new_matnr != matnr) { + glEnd(); + + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + + glBegin(GL_QUADS); + } + + /* skipping faces */ + if(setFace) { + orig = (index)? index[a]: a; + + if(orig != ORIGINDEX_NONE && !setFace(userData, orig)) + continue; + } + + /* smooth normal */ + if(!smoothnormal) { + if(nors) { + glNormal3fv(nors[a]); + } + else { + /* TODO ideally a normal layer should always be available */ + float nor[3]; + + if(mf->v4) + normal_quad_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co, mvert[mf->v4].co); + else + normal_tri_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co); + + glNormal3fv(nor); + } + } + + /* vertices */ + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v1, 0, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v2, 1, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v3, 2, smoothnormal); + + if(mf->v4) + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v4, 3, smoothnormal); + else + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v3, 2, smoothnormal); + } + glEnd(); + + glShadeModel(GL_FLAT); +} + static void cdDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index), void *userData) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -1522,6 +1622,7 @@ static CDDerivedMesh *cdDM_create(const char *desc) dm->drawMappedFaces = cdDM_drawMappedFaces; dm->drawMappedFacesTex = cdDM_drawMappedFacesTex; dm->drawMappedFacesGLSL = cdDM_drawMappedFacesGLSL; + dm->drawMappedFacesMat = cdDM_drawMappedFacesMat; dm->foreachMappedVert = cdDM_foreachMappedVert; dm->foreachMappedEdge = cdDM_foreachMappedEdge; diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 334f018efc9..14c16bccd67 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -629,6 +629,10 @@ Material *give_node_material(Material *ma) return NULL; } +/*Image *give_mesh_face_image(Object *ob, int face) +{ +}*/ + /* GS reads the memory pointed at in a specific ordering. There are, * however two definitions for it. I have jotted them down here, both, * but I think the first one is actually used. The thing is that diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 7ad69b44267..34d9b8c20dc 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1828,11 +1828,15 @@ void nodeSetActive(bNodeTree *ntree, bNode *node) if(GS(node->id->name) == GS(tnode->id->name)) tnode->flag &= ~NODE_ACTIVE_ID; } + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) + tnode->flag &= ~NODE_ACTIVE_TEXTURE; } node->flag |= NODE_ACTIVE; if(node->id) node->flag |= NODE_ACTIVE_ID; + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) + node->flag |= NODE_ACTIVE_TEXTURE; } /* use flags are not persistant yet, groups might need different tagging, so we do it each time @@ -3179,14 +3183,64 @@ static void gpu_node_group_execute(bNodeStack *stack, GPUMaterial *mat, bNode *g } } -void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) +bNode *nodeGetActiveTexture(bNodeTree *ntree) { + /* this is the node we texture paint and draw in textured draw */ bNode *node; + + if(!ntree) + return NULL; + + /* check for group edit */ + for(node= ntree->nodes.first; node; node= node->next) + if(node->flag & NODE_GROUP_EDIT) + break; + + if(node) + ntree= (bNodeTree*)node->id; + + for(node= ntree->nodes.first; node; node= node->next) + if(node->flag & NODE_ACTIVE_TEXTURE) + return node; + + return NULL; +} + +static void ntreeGPUOutputLink(GPUMaterial *mat, bNode *node, bNodeStack *nsout[MAX_SOCKET]) +{ + bNodeSocket *sock; + int i; + + /* link the first socket output as the material output, for viewing + individual textures in texture draw mode */ + for(sock=node->outputs.first, i=0; sock; sock=sock->next, i++) { + if(nsout[i]->data) { + GPUNodeLink *result= nsout[i]->data; + + /* for closures, we can output the color directly, for others we + apply diffuse shading so we don't have flat colors */ + if(sock->type != SOCK_CLOSURE) + GPU_link(mat, "node_bsdf_diffuse", result, GPU_builtin(GPU_VIEW_NORMAL), &result); + + GPU_material_output_link(mat, result); + break; + } + } +} + +void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) +{ + bNode *node, *tex_node; bNodeStack *stack; bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1]; + if(GPU_material_drawtype(mat) == OB_TEXTURE) + tex_node= nodeGetActiveTexture(ntree); + else + tex_node= NULL; + if((ntree->init & NTREE_EXEC_INIT)==0) ntreeBeginExecTree(ntree); @@ -3197,22 +3251,13 @@ void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) node_get_stack(node, stack, nsin, nsout, NULL); gpu_from_node_stack(&node->inputs, nsin, gpuin); gpu_from_node_stack(&node->outputs, nsout, gpuout); + if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) { data_from_gpu_stack(&node->outputs, nsout, gpuout); -#if 0 - if(node->flag & NODE_ACTIVE) { - bNodeSocket *sock; - int i; - - for(sock=node->outputs.first, i=0; sock; sock=sock->next, i++) { - if(nsout[i]->data) { - GPU_material_output_link(mat, nsout[i]->data); - break; - } - } - } -#endif + /* for textured draw, output active node */ + if(node == tex_node) + ntreeGPUOutputLink(mat, node, nsout); } } else if(node->type==NODE_GROUP && node->id) { diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 122a06a8133..5c0692113ac 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -996,7 +996,7 @@ void scene_update_tagged(Main *bmain, Scene *scene) only objects and scenes. - brecht */ } -void scene_clear_tagged(Main *bmain, Scene *scene) +void scene_clear_tagged(Main *bmain, Scene *UNUSED(scene)) { DAG_ids_clear_recalc(bmain); } @@ -1107,3 +1107,9 @@ Base *_setlooper_base_step(Scene **sce_iter, Base *base) return NULL; } + +int scene_use_new_shading_system(Scene *scene) +{ + return (strcmp(scene->r.engine, "CYCLES") == 0); +} + diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index a66caf8879f..026b48f2b9b 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1523,6 +1523,155 @@ static void ccgDM_drawFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *a dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } + /* Only used by non-editmesh types */ +static void ccgDM_drawMappedFacesMat(DerivedMesh *dm, void (*setMaterial)(void *userData, int, void *attribs), int (*setFace)(void *userData, int index), void *userData) { + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; + CCGSubSurf *ss = ccgdm->ss; + CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); + GPUVertexAttribs gattribs; + DMVertexAttribs attribs= {{{NULL}}}; + int gridSize = ccgSubSurf_getGridSize(ss); + int gridFaces = gridSize - 1; + int edgeSize = ccgSubSurf_getEdgeSize(ss); + char *faceFlags = ccgdm->faceFlags; + int a, b, i, numVerts, matnr, new_matnr, totface; + + ccgdm_pbvh_update(ccgdm); + + matnr = -1; + +#define PASSATTRIB(dx, dy, vert) { \ + if(attribs.totorco) { \ + index = getFaceIndex(ss, f, S, x+dx, y+dy, edgeSize, gridSize); \ + if(attribs.orco.glTexco) \ + glTexCoord3fv(attribs.orco.array[index]); \ + else \ + glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]); \ + } \ + for(b = 0; b < attribs.tottface; b++) { \ + MTFace *tf = &attribs.tface[b].array[a]; \ + if(attribs.tface[b].glTexco) \ + glTexCoord2fv(tf->uv[vert]); \ + else \ + glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]); \ + } \ + for(b = 0; b < attribs.totmcol; b++) { \ + MCol *cp = &attribs.mcol[b].array[a*4 + vert]; \ + GLubyte col[4]; \ + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ + glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ + } \ + if(attribs.tottang) { \ + float *tang = attribs.tang.array[a*4 + vert]; \ + glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ + } \ +} + + totface = ccgSubSurf_getNumFaces(ss); + for(a = 0, i = 0; i < totface; i++) { + CCGFace *f = ccgdm->faceMap[i].face; + int S, x, y, drawSmooth; + int index = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); + int origIndex = ccgDM_getFaceMapIndex(ss, f); + + numVerts = ccgSubSurf_getFaceNumVerts(f); + + /* get flags */ + if(faceFlags) { + drawSmooth = (faceFlags[index*2] & ME_SMOOTH); + new_matnr= faceFlags[index*2 + 1] + 1; + } + else { + drawSmooth = 1; + new_matnr= 1; + } + + /* material */ + if(new_matnr != matnr) { + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + } + + /* face hiding */ + if((setFace && (origIndex != ORIGINDEX_NONE) && !setFace(userData, origIndex))) { + a += gridFaces*gridFaces*numVerts; + continue; + } + + /* draw face*/ + glShadeModel(drawSmooth? GL_SMOOTH: GL_FLAT); + for (S=0; Sno); + glVertex3fv(vda->co); + + PASSATTRIB(0, 1, 1); + glNormal3fv(vdb->no); + glVertex3fv(vdb->co); + + if(x != gridFaces-1) + a++; + } + + vda = &faceGridData[(y+0)*gridSize + x]; + vdb = &faceGridData[(y+1)*gridSize + x]; + + PASSATTRIB(0, 0, 3); + glNormal3fv(vda->no); + glVertex3fv(vda->co); + + PASSATTRIB(0, 1, 2); + glNormal3fv(vdb->no); + glVertex3fv(vdb->co); + + glEnd(); + + a++; + } + } else { + glBegin(GL_QUADS); + for (y=0; yss; @@ -2387,6 +2536,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, ccgdm->dm.drawMappedFaces = ccgDM_drawMappedFaces; ccgdm->dm.drawMappedFacesTex = ccgDM_drawMappedFacesTex; ccgdm->dm.drawMappedFacesGLSL = ccgDM_drawMappedFacesGLSL; + ccgdm->dm.drawMappedFacesMat = ccgDM_drawMappedFacesMat; ccgdm->dm.drawUVEdges = ccgDM_drawUVEdges; ccgdm->dm.drawMappedEdgesInterp = ccgDM_drawMappedEdgesInterp; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 355fd49efba..b6ef339e2c9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10594,7 +10594,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Object *ob=main->object.first; while (ob) { /* shaded mode disabled for now */ - if (ob->dt == OB_SHADED) ob->dt = OB_TEXTURE; + if (ob->dt == OB_MATERIAL) ob->dt = OB_TEXTURE; ob=ob->id.next; } } @@ -10609,7 +10609,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for(sl= sa->spacedata.first; sl; sl= sl->next) { if(sl->spacetype==SPACE_VIEW3D) { View3D *v3d = (View3D *)sl; - if (v3d->drawtype == OB_SHADED) v3d->drawtype = OB_SOLID; + if (v3d->drawtype == OB_MATERIAL) v3d->drawtype = OB_SOLID; } } } diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index e2cfed1ecb2..14dea53ea86 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -54,6 +54,8 @@ void ED_node_shader_default(struct ID *id); void ED_node_composit_default(struct Scene *sce); void ED_node_texture_default(struct Tex *tex); +void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node); + /* node_layout.c */ void ED_node_tree_auto_layout(struct bNodeTree *ntree, struct bNode *root); diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 1503f70deae..2cb0073f97b 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -160,7 +160,8 @@ typedef struct uiLayout uiLayout; #define UI_BUT_VEC_SIZE_LOCK (1<<30) /* used to flag if color hsv-circle should keep luminance */ #define UI_BUT_COLOR_CUBIC (1<<31) /* cubic saturation for the color wheel */ -#define UI_BUT_NODE_LINK (1<<31) /* node link drawing hint for pulldowns */ +#define UI_BUT_NODE_LINK (1<<30) /* node link drawing hint for pulldowns */ +#define UI_BUT_NODE_ACTIVE (1<<31) /* node link drawing hint for pulldowns */ #define UI_PANEL_WIDTH 340 #define UI_COMPACT_PANEL_WIDTH 160 @@ -729,8 +730,8 @@ void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *te void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C); void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, int rows, int maxrows, int type); -void uiTemplateNodeLink(uiLayout *layout, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); -void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct ID *id, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateNodeLink(uiLayout *layout, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateTextureUser(uiLayout *layout, struct bContext *C); void uiTemplateTextureShow(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop); diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 720cb92bce4..5a1b4c0a8b8 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -53,6 +53,8 @@ #include "UI_interface.h" #include "interface_intern.h" +#include "ED_node.h" + /************************* Node Link Menu **************************/ #define UI_NODE_LINK_ADD 0 @@ -60,7 +62,6 @@ #define UI_NODE_LINK_REMOVE -2 typedef struct NodeLinkArg { - ID *id; bNodeTree *ntree; bNode *node; bNodeSocket *sock; @@ -98,26 +99,6 @@ static void ui_node_clear_recursive(bNode *node) ui_node_clear_recursive(input->link->fromnode); } -static void ntree_notify(bContext *C, ID *id, bNodeTree *ntree) -{ - if(ntree->type==NTREE_SHADER) { - if(GS(id->name) == ID_MA) - WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, id); - else if(GS(id->name) == ID_LA) - WM_event_add_notifier(C, NC_LAMP|ND_NODES, id); - else if(GS(id->name) == ID_WO) - WM_event_add_notifier(C, NC_WORLD|ND_NODES, id); - else if(GS(id->name) == ID_TE) - WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, id); - } - else if(ntree->type==NTREE_COMPOSIT) - WM_event_add_notifier(C, NC_SCENE|ND_NODES, id); - else if(ntree->type==NTREE_TEXTURE) - WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, id); - - DAG_id_tag_update(id, 0); -} - static void ui_node_remove_linked(bNodeTree *ntree, bNode *rem_node) { bNode *node, *next; @@ -177,7 +158,6 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) static void ui_node_link(bContext *C, void *arg_p, void *event_p) { NodeLinkArg *arg = (NodeLinkArg*)arg_p; - ID *id = arg->id; bNode *node_to = arg->node; bNodeSocket *sock_to = arg->sock; bNodeTree *ntree = arg->ntree; @@ -213,8 +193,13 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) if(!(node_from->inputs.first == NULL && !(node_from->typeinfo->flag & NODE_OPTIONS))) node_from = NULL; - /* add new node */ - if(!node_from) { + if(node_prev && node_prev->type == arg->type && + (arg->type != NODE_GROUP || node_prev->id == &arg->ngroup->id)) { + /* keep the previous node if it's the same type */ + node_from = node_prev; + } + else if(!node_from) { + /* add new node */ if(arg->ngroup) node_from = nodeAddNodeType(ntree, NODE_GROUP, arg->ngroup, NULL); else @@ -227,6 +212,8 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) id_us_plus(node_from->id); } + nodeSetActive(ntree, node_from); + /* add link */ sock_from = BLI_findlink(&node_from->outputs, arg->output); nodeAddLink(ntree, node_from, sock_from, node_to, sock_to); @@ -260,7 +247,7 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) NodeTagChanged(ntree, node_to); ntreeSolveOrder(ntree); - ntree_notify(C, id, ntree); + ED_node_generic_update(CTX_data_main(C), ntree, node_to); } static int ui_compatible_sockets(int typeA, int typeB) @@ -435,7 +422,7 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_ ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP); } -void uiTemplateNodeLink(uiLayout *layout, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *sock) +void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSocket *sock) { uiBlock *block = uiLayoutGetBlock(layout); NodeLinkArg *arg; @@ -443,7 +430,6 @@ void uiTemplateNodeLink(uiLayout *layout, ID *id, bNodeTree *ntree, bNode *node, bNodeSocketType *stype = ui_node_input_socket_type(node, sock); arg = MEM_callocN(sizeof(NodeLinkArg), "NodeLinkArg"); - arg->id = id; arg->ntree = ntree; arg->node = node; arg->sock = sock; @@ -464,18 +450,46 @@ void uiTemplateNodeLink(uiLayout *layout, ID *id, bNodeTree *ntree, bNode *node, but->flag |= UI_TEXT_LEFT|UI_BUT_NODE_LINK; but->poin= (char*)but; but->func_argN = arg; + + if(sock->link && sock->link->fromnode) + if(sock->link->fromnode->flag & NODE_ACTIVE_TEXTURE) + but->flag |= UI_BUT_NODE_ACTIVE; } /************************* Node Tree Layout **************************/ -static void ui_node_draw_input(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth) +static void ui_node_draw_input(uiLayout *layout, bContext *C, + bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth); + +static void ui_node_draw_node(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, int depth) +{ + bNodeSocket *input; + uiLayout *col, *split; + PointerRNA nodeptr; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &nodeptr); + + if(node->typeinfo->uifunc) { + if(node->type != NODE_GROUP) { + split = uiLayoutSplit(layout, 0.35f, 0); + col = uiLayoutColumn(split, 0); + col = uiLayoutColumn(split, 0); + + node->typeinfo->uifunc(col, C, &nodeptr); + } + } + + for(input=node->inputs.first; input; input=input->next) + ui_node_draw_input(layout, C, ntree, node, input, depth+1); +} + +static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth) { PointerRNA inputptr; uiBlock *block = uiLayoutGetBlock(layout); uiBut *bt; uiLayout *split, *row, *col; bNode *lnode; - bNodeSocket *linput; char label[UI_MAX_NAME_STR]; int indent = (depth > 1)? 2*(depth - 1): 0; @@ -516,27 +530,13 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, ID *id, bNodeTree if(lnode) { /* input linked to a node */ - uiTemplateNodeLink(split, id, ntree, node, input); + uiTemplateNodeLink(split, ntree, node, input); if(!(input->flag & SOCK_COLLAPSED)) { if(depth == 0) uiItemS(layout); - if(lnode->typeinfo->uifunc) { - if(lnode->type != NODE_GROUP) { - PointerRNA lnodeptr; - - split = uiLayoutSplit(layout, 0.35f, 0); - col = uiLayoutColumn(split, 0); - col = uiLayoutColumn(split, 0); - - RNA_pointer_create(&ntree->id, &RNA_Node, lnode, &lnodeptr); - lnode->typeinfo->uifunc(col, C, &lnodeptr); - } - } - - for(linput=lnode->inputs.first; linput; linput=linput->next) - ui_node_draw_input(layout, C, id, ntree, lnode, linput, depth+1); + ui_node_draw_node(layout, C, ntree, lnode, depth); } } else { @@ -558,14 +558,14 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, ID *id, bNodeTree else row = uiLayoutRow(split, 0); - uiTemplateNodeLink(row, id, ntree, node, input); + uiTemplateNodeLink(row, ntree, node, input); } /* clear */ node->flag &= ~NODE_TEST; } -void uiTemplateNodeView(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, bNode *node, bNodeSocket *input) +void uiTemplateNodeView(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input) { bNode *tnode; @@ -576,6 +576,9 @@ void uiTemplateNodeView(uiLayout *layout, bContext *C, ID *id, bNodeTree *ntree, for(tnode=ntree->nodes.first; tnode; tnode=tnode->next) tnode->flag &= ~NODE_TEST; - ui_node_draw_input(layout, C, id, ntree, node, input, 0); + if(input) + ui_node_draw_input(layout, C, ntree, node, input, 0); + else + ui_node_draw_node(layout, C, ntree, node, 0); } diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 292177a1ef9..6e494515418 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2500,6 +2500,6 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C) uiDefBut(block, LABEL, 0, report->message, UI_UNIT_X+10, 0, UI_UNIT_X+width, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, ""); /* XXX linking hack */ - uiTemplateNodeView(NULL, NULL, NULL, NULL, NULL, NULL); + uiTemplateNodeView(NULL, NULL, NULL, NULL, NULL); } diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 4a97cfe074e..ea98cf3e194 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1511,6 +1511,10 @@ static void widget_state(uiWidgetType *wt, int state) char red[4]= {255, 0, 0}; widget_state_blend(wt->wcol.inner, red, 0.4f); } + if(state & UI_BUT_NODE_ACTIVE) { + char blue[4]= {86, 128, 194}; + widget_state_blend(wt->wcol.inner, blue, 0.3f); + } } /* sliders use special hack which sets 'item' as inner when drawing filling */ diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 85549caf7ad..02effd031a4 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -393,8 +393,10 @@ static int buttons_context_path_texture(ButsContextPath *path, ButsContextTextur buttons_context_path_object(path); } - RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); - path->len++; + if(ct->texture) { + RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); + path->len++; + } return 1; @@ -757,11 +759,19 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r else if(CTX_data_equals(member, "texture_user")) { ButsContextTexture *ct= sbuts->texuser; - if(ct && ct->user) { + if(ct && ct->user && ct->user->ptr.data) { ButsTextureUser *user= ct->user; CTX_data_pointer_set(result, user->ptr.id.data, user->ptr.type, user->ptr.data); } + return 1; + } + else if(CTX_data_equals(member, "texture_node")) { + ButsContextTexture *ct= sbuts->texuser; + + if(ct && ct->user && ct->user->node) + CTX_data_pointer_set(result, &ct->user->ntree->id, &RNA_Node, ct->user->node); + return 1; } #if 0 diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index e8fa100a0ca..22f070af1e9 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -43,6 +43,8 @@ struct SpaceButs; struct Tex; struct bContext; struct bContextDataResult; +struct bNode; +struct bNodeTree; struct uiLayout; struct wmOperatorType; @@ -72,9 +74,13 @@ typedef struct ButsTextureUser { struct ButsTextureUser *next, *prev; struct ID *id; + PointerRNA ptr; PropertyRNA *prop; + struct bNodeTree *ntree; + struct bNode *node; + const char *category; int icon; const char *name; @@ -86,6 +92,7 @@ typedef struct ButsContextTexture { ListBase users; struct Tex *texture; + struct ButsTextureUser *user; int index; } ButsContextTexture; diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c index 162f4acb515..dc013fc952b 100644 --- a/source/blender/editors/space_buttons/buttons_texture.c +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -64,6 +64,7 @@ #include "UI_interface.h" #include "UI_resources.h" +#include "ED_node.h" #include "ED_screen.h" #include "../interface/interface_intern.h" @@ -72,7 +73,7 @@ /************************* Texture User **************************/ -static void buttons_texture_user_add(ListBase *users, ID *id, +static void buttons_texture_user_property_add(ListBase *users, ID *id, PointerRNA ptr, PropertyRNA *prop, const char *category, int icon, const char *name) { @@ -89,6 +90,23 @@ static void buttons_texture_user_add(ListBase *users, ID *id, BLI_addtail(users, user); } +static void buttons_texture_user_node_add(ListBase *users, ID *id, + bNodeTree *ntree, bNode *node, + const char *category, int icon, const char *name) +{ + ButsTextureUser *user = MEM_callocN(sizeof(ButsTextureUser), "ButsTextureUser"); + + user->id= id; + user->ntree = ntree; + user->node = node; + user->category = category; + user->icon = icon; + user->name = name; + user->index = BLI_countlist(users); + + BLI_addtail(users, user); +} + static void buttons_texture_users_find_nodetree(ListBase *users, ID *id, bNodeTree *ntree, const char *category) { @@ -96,14 +114,14 @@ static void buttons_texture_users_find_nodetree(ListBase *users, ID *id, if(ntree) { for(node=ntree->nodes.first; node; node=node->next) { - if(node->type == SH_NODE_TEXTURE) { + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) { PointerRNA ptr; PropertyRNA *prop; RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); prop = RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, id, ptr, prop, + buttons_texture_user_node_add(users, id, ntree, node, category, RNA_struct_ui_icon(ptr.type), node->name); } else if(node->type == NODE_GROUP && node->id) { @@ -122,7 +140,7 @@ static void buttons_texture_modifier_foreach(void *userData, Object *ob, Modifie RNA_pointer_create(&ob->id, &RNA_Modifier, md, &ptr); prop = RNA_struct_find_property(&ptr, propname); - buttons_texture_user_add(users, &ob->id, ptr, prop, + buttons_texture_user_property_add(users, &ob->id, ptr, prop, "Modifiers", RNA_struct_ui_icon(ptr.type), md->name); } @@ -197,7 +215,7 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * RNA_pointer_create(&psys->part->id, &RNA_ParticleSettingsTextureSlot, mtex, &ptr); prop = RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, &psys->part->id, ptr, prop, + buttons_texture_user_property_add(users, &psys->part->id, ptr, prop, "Particles", RNA_struct_ui_icon(&RNA_ParticleSettings), psys->name); } } @@ -211,7 +229,7 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * RNA_pointer_create(&ob->id, &RNA_FieldSettings, ob->pd, &ptr); prop = RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, &ob->id, ptr, prop, + buttons_texture_user_property_add(users, &ob->id, ptr, prop, "Fields", ICON_FORCE_TEXTURE, "Texture Field"); } } @@ -224,7 +242,7 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * RNA_pointer_create(&brush->id, &RNA_BrushTextureSlot, &brush->mtex, &ptr); prop= RNA_struct_find_property(&ptr, "texture"); - buttons_texture_user_add(users, &brush->id, ptr, prop, + buttons_texture_user_property_add(users, &brush->id, ptr, prop, "Brush", ICON_BRUSH_DATA, brush->id.name+2); } } @@ -250,15 +268,34 @@ void buttons_texture_context_compute(const bContext *C, SpaceButs *sbuts) ct->index= 0; ct->user = BLI_findlink(&ct->users, ct->index); + ct->texture = NULL; if(ct->user) { - PointerRNA texptr; - Tex *tex; + if(ct->user->ptr.data) { + PointerRNA texptr; + Tex *tex; - texptr = RNA_property_pointer_get(&ct->user->ptr, ct->user->prop); - tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + /* get texture datablock pointer if it's a property */ + texptr = RNA_property_pointer_get(&ct->user->ptr, ct->user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; - ct->texture = tex; + ct->texture = tex; + } + else if(ct->user->node && !(ct->user->node->flag & NODE_ACTIVE_TEXTURE)) { + ButsTextureUser *user; + + /* detect change of active texture node in same node tree, in that + case we also automatically switch to the other node */ + for(user=ct->users.first; user; user=user->next) { + if(user->ntree == ct->user->ntree && user->node != ct->user->node) { + if(user->node->flag & NODE_ACTIVE_TEXTURE) { + ct->user = user; + ct->index = BLI_findindex(&ct->users, user); + break; + } + } + } + } } } @@ -275,10 +312,17 @@ static void template_texture_select(bContext *C, void *user_p, void *UNUSED(arg) return; /* set user as active */ - texptr = RNA_property_pointer_get(&user->ptr, user->prop); - tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + if(user->node) { + ED_node_set_active(CTX_data_main(C), user->ntree, user->node); + ct->texture = NULL; + } + else { + texptr = RNA_property_pointer_get(&user->ptr, user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + + ct->texture = tex; + } - ct->texture = tex; ct->user = user; ct->index = user->index; } diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt index 36667e0e00e..a3d662d53a6 100644 --- a/source/blender/editors/space_node/CMakeLists.txt +++ b/source/blender/editors/space_node/CMakeLists.txt @@ -26,6 +26,7 @@ set(INC ../../blenloader ../../blenlib ../../imbuf + ../../gpu ../../makesdna ../../makesrna ../../nodes diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript index 634d4b777d9..5a72858058c 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' +incs += ' ../../nodes ../../render/extern/include ../../blenloader ../../gpu' incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include' defs = [] cf = [] diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 3f52d7cd285..2d124b7bc23 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -87,6 +87,8 @@ #include "RNA_enum_types.h" +#include "GPU_material.h" + #include "node_intern.h" static EnumPropertyItem socket_in_out_items[] = { @@ -528,72 +530,99 @@ static void snode_tag_changed(SpaceNode *snode, bNode *node) NodeTagIDChanged(snode->nodetree, gnode->id); } -void node_set_active(SpaceNode *snode, bNode *node) +static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup) +{ + bNode *node; + + if(ntree == lookup) + return 1; + + for(node=ntree->nodes.first; node; node=node->next) + if(node->type == NODE_GROUP && node->id) + if(has_nodetree((bNodeTree*)node->id, lookup)) + return 1; + + return 0; +} + +void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) { - nodeSetActive(snode->edittree, node); + int was_active_texture = (node->flag & NODE_ACTIVE_TEXTURE); + + nodeSetActive(ntree, node); if(node->type!=NODE_GROUP) { int was_output= (node->flag & NODE_DO_OUTPUT); /* tree specific activate calls */ - if(snode->treetype==NTREE_SHADER) { + if(ntree->type==NTREE_SHADER) { /* when we select a material, active texture is cleared, for buttons */ if(node->id && ELEM3(GS(node->id->name), ID_MA, ID_LA, ID_WO)) - nodeClearActiveID(snode->edittree, ID_TE); + nodeClearActiveID(ntree, ID_TE); if(node->type==SH_NODE_OUTPUT) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( tnode->type==SH_NODE_OUTPUT) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; if(was_output==0) - ED_node_changed_update(snode->id, node); + ED_node_generic_update(bmain, ntree, node); + } + + /* if active texture changed, free glsl materials */ + if((node->flag & NODE_ACTIVE_TEXTURE) && !was_active_texture) { + Material *ma; + + for(ma=bmain->mat.first; ma; ma=ma->id.next) + if(ma->nodetree && ma->use_nodes && has_nodetree(ma->nodetree, ntree)) + GPU_material_free(ma); } WM_main_add_notifier(NC_MATERIAL|ND_NODES, node->id); } - else if(snode->treetype==NTREE_COMPOSIT) { - Scene *scene= (Scene*)snode->id; - + else if(ntree->type==NTREE_COMPOSIT) { /* make active viewer, currently only 1 supported... */ if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; - if(was_output==0) { - snode_tag_changed(snode, node); - - ED_node_changed_update(snode->id, node); - } + if(was_output==0) + ED_node_generic_update(bmain, ntree, node); /* addnode() doesnt link this yet... */ node->id= (ID *)BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); } else if(node->type==CMP_NODE_R_LAYERS) { - if(node->id==NULL || node->id==(ID *)scene) { - scene->r.actlay= node->custom1; + Scene *scene; + + for(scene=bmain->scene.first; scene; scene=scene->id.next) { + if(scene->nodetree && scene->use_nodes && has_nodetree(scene->nodetree, ntree)) { + if(node->id==NULL || node->id==(ID *)scene) { + scene->r.actlay= node->custom1; + } + } } } else if(node->type==CMP_NODE_COMPOSITE) { bNode *tnode; - for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next) + for(tnode= ntree->nodes.first; tnode; tnode= tnode->next) if( tnode->type==CMP_NODE_COMPOSITE) tnode->flag &= ~NODE_DO_OUTPUT; node->flag |= NODE_DO_OUTPUT; - ED_node_changed_update(snode->id, node); + ED_node_generic_update(bmain, ntree, node); } } - else if(snode->treetype==NTREE_TEXTURE) { + else if(ntree->type==NTREE_TEXTURE) { // XXX #if 0 if(node->id) @@ -2025,7 +2054,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float } node_tree_verify_groups(snode->nodetree); - node_set_active(snode, node); + ED_node_set_active(G.main, 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)) diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index 6e13271d7ce..756cb66fafd 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -100,7 +100,6 @@ bNode *next_node(bNodeTree *ntree); bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy); void snode_set_context(SpaceNode *snode, Scene *scene); void snode_make_group_editable(SpaceNode *snode, bNode *gnode); -void node_set_active(SpaceNode *snode, bNode *node); void node_deselectall(SpaceNode *snode); int node_select_same_type(SpaceNode *snode); int node_select_same_type_np(SpaceNode *snode, int dir); diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c index 1abcaccc939..857405aff4e 100644 --- a/source/blender/editors/space_node/node_select.c +++ b/source/blender/editors/space_node/node_select.c @@ -37,10 +37,12 @@ #include "DNA_scene_types.h" #include "BKE_context.h" +#include "BKE_global.h" #include "BLI_rect.h" #include "BLI_utildefines.h" +#include "ED_node.h" #include "ED_screen.h" #include "ED_types.h" @@ -92,7 +94,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2] else node->flag ^= SELECT; - node_set_active(snode, node); + ED_node_set_active(G.main, snode->edittree, node); } return node; diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index f070bae4e54..17db90a3b07 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -29,7 +29,6 @@ * \ingroup spview3d */ - #include #include @@ -42,6 +41,7 @@ #include "BLI_utildefines.h" #include "DNA_material_types.h" +#include "DNA_node_types.h" #include "DNA_meshdata_types.h" #include "DNA_property_types.h" #include "DNA_scene_types.h" @@ -53,9 +53,13 @@ #include "BKE_effect.h" #include "BKE_image.h" #include "BKE_material.h" +#include "BKE_node.h" #include "BKE_paint.h" #include "BKE_property.h" +#include "BKE_scene.h" +#include "IMB_imbuf.h" +#include "IMB_imbuf_types.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -70,24 +74,21 @@ #include "view3d_intern.h" // own include -/***/ +/**************************** Face Select Mode *******************************/ - /* Flags for marked edges */ +/* Flags for marked edges */ enum { eEdge_Visible = (1<<0), eEdge_Select = (1<<1), }; - /* Creates a hash of edges to flags indicating - * adjacent tface select/active/etc flags. - */ +/* Creates a hash of edges to flags indicating selected/visible */ static void get_marked_edge_info__orFlags(EdgeHash *eh, int v0, int v1, int flags) { int *flags_p; - if (!BLI_edgehash_haskey(eh, v0, v1)) { + if(!BLI_edgehash_haskey(eh, v0, v1)) BLI_edgehash_insert(eh, v0, v1, NULL); - } flags_p = (int*) BLI_edgehash_lookup_p(eh, v0, v1); *flags_p |= flags; @@ -96,26 +97,25 @@ static void get_marked_edge_info__orFlags(EdgeHash *eh, int v0, int v1, int flag static EdgeHash *get_tface_mesh_marked_edge_info(Mesh *me) { EdgeHash *eh = BLI_edgehash_new(); - int i; MFace *mf; + int i; - for (i=0; itotface; i++) { + for(i=0; itotface; i++) { mf = &me->mface[i]; - if (mf->v3) { - if (!(mf->flag&ME_HIDE)) { - unsigned int flags = eEdge_Visible; - if (mf->flag&ME_FACE_SEL) flags |= eEdge_Select; - - get_marked_edge_info__orFlags(eh, mf->v1, mf->v2, flags); - get_marked_edge_info__orFlags(eh, mf->v2, mf->v3, flags); - if (mf->v4) { - get_marked_edge_info__orFlags(eh, mf->v3, mf->v4, flags); - get_marked_edge_info__orFlags(eh, mf->v4, mf->v1, flags); - } else { - get_marked_edge_info__orFlags(eh, mf->v3, mf->v1, flags); - } + if(!(mf->flag & ME_HIDE)) { + unsigned int flags = eEdge_Visible; + if(mf->flag & ME_FACE_SEL) flags |= eEdge_Select; + + get_marked_edge_info__orFlags(eh, mf->v1, mf->v2, flags); + get_marked_edge_info__orFlags(eh, mf->v2, mf->v3, flags); + + if(mf->v4) { + get_marked_edge_info__orFlags(eh, mf->v3, mf->v4, flags); + get_marked_edge_info__orFlags(eh, mf->v4, mf->v1, flags); } + else + get_marked_edge_info__orFlags(eh, mf->v3, mf->v1, flags); } } @@ -123,45 +123,24 @@ static EdgeHash *get_tface_mesh_marked_edge_info(Mesh *me) } -static int draw_tfaces3D__setHiddenOpts(void *userData, int index) +static int draw_mesh_face_select__setHiddenOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; Mesh *me= data->me; MEdge *med = &me->medge[index]; uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - if((me->drawflag & ME_DRAWSEAMS) && (med->flag&ME_SEAM)) { - return 0; - } else if(me->drawflag & ME_DRAWEDGES){ - if (me->drawflag & ME_HIDDENEDGES) { - return 1; - } else { - return (flags & eEdge_Visible); - } - } else { - return (flags & eEdge_Select); - } -} - -static int draw_tfaces3D__setSeamOpts(void *userData, int index) -{ - struct { Mesh *me; EdgeHash *eh; } *data = userData; - Mesh *me= data->me; - MEdge *med = &data->me->medge[index]; - uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - - if (med->flag & ME_SEAM) { - if (me->drawflag & ME_HIDDENEDGES) { + if(me->drawflag & ME_DRAWEDGES){ + if(me->drawflag & ME_HIDDENEDGES) return 1; - } else { + else return (flags & eEdge_Visible); - } - } else { - return 0; } + else + return (flags & eEdge_Select); } -static int draw_tfaces3D__setSelectOpts(void *userData, int index) +static int draw_mesh_face_select__setSelectOpts(void *userData, int index) { struct { Mesh *me; EdgeHash *eh; } *data = userData; MEdge *med = &data->me->medge[index]; @@ -170,45 +149,19 @@ static int draw_tfaces3D__setSelectOpts(void *userData, int index) return flags & eEdge_Select; } -#if 0 -static int draw_tfaces3D__setActiveOpts(void *userData, int index) -{ - struct { Mesh *me; EdgeHash *eh; } *data = userData; - MEdge *med = &data->me->medge[index]; - uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - - if (flags & eEdge_Select) { - return 1; - } else { - return 0; - } -} - -static int draw_tfaces3D__drawFaceOpts(void *userData, int index) -{ - Mesh *me = (Mesh*)userData; - - MFace *mface = &me->mface[index]; - if (!(mface->flag&ME_HIDE) && (mface->flag&ME_FACE_SEL)) - return 2; /* Don't set color */ - else - return 0; -} -#endif - /* draws unselected */ -static int draw_tfaces3D__drawFaceOptsInv(void *userData, int index) +static int draw_mesh_face_select__drawFaceOptsInv(void *userData, int index) { Mesh *me = (Mesh*)userData; MFace *mface = &me->mface[index]; - if (!(mface->flag&ME_HIDE) && !(mface->flag&ME_FACE_SEL)) + if(!(mface->flag&ME_HIDE) && !(mface->flag&ME_FACE_SEL)) return 2; /* Don't set color */ else return 0; } -static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short draw_seams) +static void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm) { struct { Mesh *me; EdgeHash *eh; } data; @@ -222,30 +175,16 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d /* Draw (Hidden) Edges */ setlinestyle(1); UI_ThemeColor(TH_EDGE_FACESEL); - dm->drawMappedEdges(dm, draw_tfaces3D__setHiddenOpts, &data); + dm->drawMappedEdges(dm, draw_mesh_face_select__setHiddenOpts, &data); setlinestyle(0); - /* Draw Seams */ - if(draw_seams && me->drawflag & ME_DRAWSEAMS) { - UI_ThemeColor(TH_EDGE_SEAM); - glLineWidth(2); - dm->drawMappedEdges(dm, draw_tfaces3D__setSeamOpts, &data); - glLineWidth(1); - } - /* Draw Selected Faces */ if(me->drawflag & ME_DRAWFACES) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -#if 0 - UI_ThemeColor4(TH_FACE_SELECT); - - dm->drawMappedFacesTex(dm, draw_tfaces3D__drawFaceOpts, (void*)me); -#else /* dull unselected faces so as not to get in the way of seeing color */ glColor4ub(96, 96, 96, 64); - dm->drawMappedFacesTex(dm, draw_tfaces3D__drawFaceOptsInv, (void*)me); -#endif + dm->drawMappedFacesTex(dm, draw_mesh_face_select__drawFaceOptsInv, (void*)me); glDisable(GL_BLEND); } @@ -255,7 +194,7 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d /* Draw Stippled Outline for selected faces */ glColor3ub(255, 255, 255); setlinestyle(1); - dm->drawMappedEdges(dm, draw_tfaces3D__setSelectOpts, &data); + dm->drawMappedEdges(dm, draw_mesh_face_select__setSelectOpts, &data); setlinestyle(0); bglPolygonOffset(rv3d->dist, 0.0); // resets correctly now, even after calling accumulated offsets @@ -263,6 +202,8 @@ static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short d BLI_edgehash_free(data.eh, NULL); } +/***************************** Texture Drawing ******************************/ + static Material *give_current_material_or_def(Object *ob, int matnr) { extern Material defmaterial; // render module abuse... @@ -281,7 +222,7 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac static int c_litmatnr; static int c_badtex; - if (clearcache) { + if(clearcache) { c_textured= c_lit= c_doublesided= -1; c_texface= (MTFace*) -1; c_litob= (Object*) -1; @@ -289,7 +230,7 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac c_badtex= 0; } - if (texface) { + if(texface) { lit = lit && (lit==-1 || texface->mode&TF_LIGHT); textured = textured && (texface->mode&TF_TEX); doublesided = texface->mode&TF_TWOSIDE; @@ -297,15 +238,15 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac textured = 0; } - if (doublesided!=c_doublesided) { - if (doublesided) glDisable(GL_CULL_FACE); + if(doublesided!=c_doublesided) { + if(doublesided) glDisable(GL_CULL_FACE); else glEnable(GL_CULL_FACE); c_doublesided= doublesided; } - if (textured!=c_textured || texface!=c_texface) { - if (textured ) { + if(textured!=c_textured || texface!=c_texface) { + if(textured ) { c_badtex= !GPU_set_tpage(texface, !(litob->mode & OB_MODE_TEXTURE_PAINT)); } else { GPU_set_tpage(NULL, 0); @@ -315,9 +256,9 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac c_texface= texface; } - if (c_badtex) lit= 0; - if (lit!=c_lit || litob!=c_litob || litmatnr!=c_litmatnr) { - if (lit) { + if(c_badtex) lit= 0; + if(lit!=c_lit || litob!=c_litob || litmatnr!=c_litmatnr) { + if(lit) { Material *ma= give_current_material_or_def(litob, litmatnr+1); float spec[4]; @@ -411,16 +352,16 @@ static void draw_textured_end(void) static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr) { - if (tface && (tface->mode&TF_INVISIBLE)) return 0; + if(tface && (tface->mode&TF_INVISIBLE)) return 0; - if (tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { + if(tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { glColor3ub(0xFF, 0x00, 0xFF); return 2; /* Don't set color */ - } else if (tface && tface->mode&TF_OBCOL) { + } else if(tface && tface->mode&TF_OBCOL) { glColor3ubv(Gtexdraw.obcol); return 2; /* Don't set color */ - } else if (!mcol) { - if (tface) glColor3f(1.0, 1.0, 1.0); + } else if(!mcol) { + if(tface) glColor3f(1.0, 1.0, 1.0); else { Material *ma= give_current_material(Gtexdraw.ob, matnr+1); if(ma) { @@ -439,13 +380,13 @@ static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr) } static int draw_tface__set_draw(MTFace *tface, MCol *mcol, int matnr) { - if (tface && (tface->mode&TF_INVISIBLE)) return 0; + if(tface && (tface->mode&TF_INVISIBLE)) return 0; - if (tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { + if(tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { return 2; /* Don't set color */ - } else if (tface && tface->mode&TF_OBCOL) { + } else if(tface && tface->mode&TF_OBCOL) { return 2; /* Don't set color */ - } else if (!mcol) { + } else if(!mcol) { return 1; /* Don't set color */ } else { return 1; /* Set color from mcol */ @@ -463,7 +404,7 @@ static void add_tface_color_layer(DerivedMesh *dm) finalCol = MEM_mallocN(sizeof(MCol)*4*dm->getNumFaces(dm),"add_tface_color_layer"); for(i=0;igetNumFaces(dm);i++) { - if (tface && (tface->mode&TF_INVISIBLE)) { + if(tface && (tface->mode&TF_INVISIBLE)) { if( mcol ) memcpy(&finalCol[i*4],&mcol[i*4],sizeof(MCol)*4); else @@ -473,20 +414,20 @@ static void add_tface_color_layer(DerivedMesh *dm) finalCol[i*4+j].r = 255; } } - else if (tface && mface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, mface[i].mat_nr, TF_TWOSIDE)) { + else if(tface && mface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, mface[i].mat_nr, TF_TWOSIDE)) { for(j=0;j<4;j++) { finalCol[i*4+j].b = 255; finalCol[i*4+j].g = 0; finalCol[i*4+j].r = 255; } - } else if (tface && tface->mode&TF_OBCOL) { + } else if(tface && tface->mode&TF_OBCOL) { for(j=0;j<4;j++) { finalCol[i*4+j].r = FTOCHAR(Gtexdraw.obcol[0]); finalCol[i*4+j].g = FTOCHAR(Gtexdraw.obcol[1]); finalCol[i*4+j].b = FTOCHAR(Gtexdraw.obcol[2]); } - } else if (!mcol) { - if (tface) { + } else if(!mcol) { + if(tface) { for(j=0;j<4;j++) { finalCol[i*4+j].b = 255; finalCol[i*4+j].g = 255; @@ -532,7 +473,7 @@ static int draw_tface_mapped__set_draw(void *userData, int index) MFace *mface = &me->mface[index]; MCol *mcol = (me->mcol)? &me->mcol[index]: NULL; const int matnr = mface->mat_nr; - if (mface->flag & ME_HIDE) return 0; + if(mface->flag & ME_HIDE) return 0; return draw_tface__set_draw(tface, mcol, matnr); } @@ -544,7 +485,7 @@ static int draw_em_tf_mapped__set_draw(void *userData, int index) MCol *mcol; int matnr; - if (efa->h) + if(efa->h) return 0; tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -558,7 +499,7 @@ static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmoot { Mesh *me = (Mesh*)userData; - if ( (me->mface && me->mface[index].flag & ME_HIDE) || + if( (me->mface && me->mface[index].flag & ME_HIDE) || (me->mtface && (me->mtface[index].mode & TF_INVISIBLE)) ) { return 0; @@ -597,7 +538,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) int matnr= mf->mat_nr; int mf_smooth= mf->flag & ME_SMOOTH; - if (!(mf->flag&ME_HIDE) && !(mode&TF_INVISIBLE) && (mode&TF_BMFONT)) { + if(!(mf->flag&ME_HIDE) && !(mode&TF_INVISIBLE) && (mode&TF_BMFONT)) { float v1[3], v2[3], v3[3], v4[3]; char string[MAX_PROPSTRING]; int characters, i, glattrib= -1, badtex= 0; @@ -614,8 +555,8 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) } else { badtex = set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE); - if (badtex) { - if (mcol) mcol+=4; + if(badtex) { + if(mcol) mcol+=4; continue; } } @@ -623,7 +564,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) ddm->getVertCo(ddm, mf->v1, v1); ddm->getVertCo(ddm, mf->v2, v2); ddm->getVertCo(ddm, mf->v3, v3); - if (mf->v4) ddm->getVertCo(ddm, mf->v4, v4); + if(mf->v4) ddm->getVertCo(ddm, mf->v4, v4); // The BM_FONT handling is in the gpu module, shared with the // game engine, was duplicated previously @@ -634,7 +575,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) if(!BKE_image_get_ibuf(tface->tpage, NULL)) characters = 0; - if (!mf_smooth) { + if(!mf_smooth) { float nor[3]; normal_tri_v3( nor,v1, v2, v3); @@ -645,7 +586,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) GPU_render_text(tface, tface->mode, string, characters, (unsigned int*)mcol, v1, v2, v3, (mf->v4? v4: NULL), glattrib); } - if (mcol) { + if(mcol) { mcol+=4; } } @@ -653,7 +594,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) ddm->release(ddm); } -void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) +void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) { Mesh *me= ob->data; @@ -668,18 +609,21 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o if(ob->mode & OB_MODE_EDIT) { dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh); - } else if(faceselect) { + } + else if(faceselect) { if(ob->mode & OB_MODE_WEIGHT_PAINT) dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1, GPU_enable_material); else dm->drawMappedFacesTex(dm, me->mface ? draw_tface_mapped__set_draw : NULL, me); } else { - if( GPU_buffer_legacy(dm) ) + if(GPU_buffer_legacy(dm)) { dm->drawFacesTex(dm, draw_tface__set_draw_legacy); + } else { - if( !CustomData_has_layer(&dm->faceData,CD_TEXTURE_MCOL) ) + if(!CustomData_has_layer(&dm->faceData,CD_TEXTURE_MCOL)) add_tface_color_layer(dm); + dm->drawFacesTex(dm, draw_tface__set_draw); } } @@ -692,7 +636,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o /* draw edges and selected faces over textured mesh */ if(!(ob == scene->obedit) && faceselect) - draw_tfaces3D(rv3d, me, dm, ob->mode & OB_MODE_WEIGHT_PAINT); + draw_mesh_face_select(rv3d, me, dm); /* reset from negative scale correction */ glFrontFace(GL_CCW); @@ -701,3 +645,169 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } +/**************************** CYCLES **********************************/ + +typedef struct TexMatCallback { + Scene *scene; + Object *ob; + Mesh *me; + DerivedMesh *dm; +} TexMatCallback; + +static void tex_mat_set_material_cb(void *UNUSED(userData), int mat_nr, void *attribs) +{ + /* all we have to do here is simply enable the GLSL material, but note + that the GLSL code will give different result depending on the drawtype, + in texture draw mode it will output the active texture node, in material + draw mode it will show the full material. */ + GPU_enable_material(mat_nr, attribs); +} + +static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) +{ + /* texture draw mode without GLSL */ + TexMatCallback *data= (TexMatCallback*)userData; + GPUVertexAttribs *gattribs = attribs; + Material *ma= give_current_material_or_def(data->ob, mat_nr); + bNode *node= (ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + int texture_set= 0; + + memset(gattribs, 0, sizeof(*gattribs)); + + /* draw textured */ + if(node && (node->type == SH_NODE_TEX_IMAGE)) { + /* get openl texture */ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + int mipmap= 1; + int bindcode= (ima)? GPU_verify_image(ima, iuser, 0, 0, mipmap): 0; + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + + if(bindcode) { + /* disable existing material */ + GPU_disable_material(); + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero); + glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0); + + /* bind texture */ + glEnable(GL_COLOR_MATERIAL); + glEnable(GL_TEXTURE_2D); + + glBindTexture(GL_TEXTURE_2D, ima->bindcode); + glColor3f(1.0f, 1.0f, 1.0f); + + /* use active UV texture layer */ + gattribs->layer[0].type= CD_MTFACE; + gattribs->layer[0].name[0]= '\0'; + gattribs->layer[0].gltexco= 1; + gattribs->totlayer= 1; + + texture_set= 1; + } + } + + if(!texture_set) { + /* disable texture */ + glDisable(GL_TEXTURE_2D); + glDisable(GL_COLOR_MATERIAL); + + /* draw single color */ + GPU_enable_material(mat_nr, attribs); + } +} + +static int tex_mat_set_face_mesh_cb(void *userData, int index) +{ + /* faceselect mode face hiding */ + TexMatCallback *data= (TexMatCallback*)userData; + Mesh *me = (Mesh*)data->me; + MFace *mface = &me->mface[index]; + + return !(mface->flag & ME_HIDE); +} + +static int tex_mat_set_face_editmesh_cb(void *UNUSED(userData), int index) +{ + /* editmode face hiding */ + EditFace *efa= EM_get_face_for_index(index); + + return !(efa->h); +} + +void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) +{ + if(!scene_use_new_shading_system(scene)) { + draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, faceselect); + return; + } + + /* set opengl state for negative scale & color */ + if(ob->transflag & OB_NEG_SCALE) glFrontFace(GL_CW); + else glFrontFace(GL_CCW); + + glEnable(GL_LIGHTING); + + if(ob->mode & OB_MODE_WEIGHT_PAINT) { + /* weight paint mode exception */ + int useColors= 1; + + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, + ob->data, useColors, GPU_enable_material); + } + else { + Mesh *me= ob->data; + TexMatCallback data = {scene, ob, me, dm}; + int (*set_face_cb)(void*, int); + int glsl; + + /* face hiding callback depending on mode */ + if(ob == scene->obedit) + set_face_cb= tex_mat_set_face_editmesh_cb; + else if(faceselect) + set_face_cb= tex_mat_set_face_mesh_cb; + else + set_face_cb= NULL; + + /* test if we can use glsl */ + glsl= GPU_glsl_support(); + + if(v3d->drawtype == OB_TEXTURE) + glsl= (scene->gm.matmode == GAME_MAT_GLSL); + + GPU_begin_object_materials(v3d, rv3d, scene, ob, glsl, NULL); + + if(glsl) { + /* draw glsl */ + dm->drawMappedFacesMat(dm, + tex_mat_set_material_cb, + set_face_cb, &data); + } + else { + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + + /* draw textured */ + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero); + glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0); + + dm->drawMappedFacesMat(dm, + tex_mat_set_texture_cb, + set_face_cb, &data); + } + + GPU_end_object_materials(); + } + + /* reset opengl state */ + glDisable(GL_COLOR_MATERIAL); + glDisable(GL_TEXTURE_2D); + glDisable(GL_LIGHTING); + glBindTexture(GL_TEXTURE_2D, 0); + glFrontFace(GL_CCW); + + /* faceselect mode drawing over textured mesh */ + if(!(ob == scene->obedit) && faceselect) + draw_mesh_face_select(rv3d, ob->data, dm); +} + diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 1d70fb830b7..4c847ca62b3 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -73,6 +73,7 @@ #include "BKE_paint.h" #include "BKE_particle.h" #include "BKE_pointcache.h" +#include "BKE_scene.h" #include "BKE_unit.h" #include "smoke_API.h" @@ -104,8 +105,7 @@ /* this condition has been made more complex since editmode can draw textures */ #define CHECK_OB_DRAWTEXTURE(vd, dt) \ -((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \ - (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX)) + ((ELEM(vd->drawtype, OB_TEXTURE, OB_MATERIAL) && dt>OB_SOLID)) static void draw_bounding_volume(Scene *scene, Object *ob); @@ -129,9 +129,6 @@ static int check_ob_drawface_dot(Scene *sce, View3D *vd, char dt) if(dt==OB_TEXTURE && vd->drawtype==OB_TEXTURE) return 0; - if(vd->drawtype>=OB_SOLID && vd->flag2 & V3D_SOLID_TEX) - return 0; - return 1; } @@ -214,6 +211,8 @@ int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt) return 0; if(ob==OBACT && (ob && ob->mode & OB_MODE_WEIGHT_PAINT)) return 0; + if(scene_use_new_shading_system(scene)) + return 0; return (scene->gm.matmode == GAME_MAT_GLSL) && (dt > OB_SOLID); } @@ -2598,8 +2597,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D totface = dm->getNumFaces(dm); /* vertexpaint, faceselect wants this, but it doesnt work for shaded? */ - if(dt!=OB_SHADED) - glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); + glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); // Unwanted combination. if (is_paint_sel) draw_wire = 0; @@ -2716,7 +2714,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D dm->drawLooseEdges(dm); } } - else if(dt==OB_SHADED) { + else if(dt==OB_PAINT) { if(ob==OBACT) { if(ob && ob->mode & OB_MODE_WEIGHT_PAINT) { /* enforce default material settings */ @@ -5778,7 +5776,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) dt= OB_SOLID; } else { - dt= OB_SHADED; + dt= OB_PAINT; } glEnable(GL_DEPTH_TEST); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index b3848fac8e2..40bb4ca7969 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2045,7 +2045,6 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) v3d->drawtype = OB_SOLID; v3d->lay &= GPU_lamp_shadow_layer(shadow->lamp); - v3d->flag2 &= ~V3D_SOLID_TEX; v3d->flag2 |= V3D_RENDER_OVERRIDE; GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat); @@ -2075,10 +2074,11 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d) { CustomDataMask mask= 0; - if((v3d->drawtype == OB_TEXTURE) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { + + if(ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL)) { mask |= CD_MASK_MTFACE | CD_MASK_MCOL; - if(scene->gm.matmode == GAME_MAT_GLSL) + if(v3d->drawtype == OB_MATERIAL || scene->gm.matmode == GAME_MAT_GLSL) mask |= CD_MASK_ORCO; } diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h index 8bf923a5679..d0c7f9d494f 100644 --- a/source/blender/gpu/GPU_extensions.h +++ b/source/blender/gpu/GPU_extensions.h @@ -178,6 +178,7 @@ typedef struct GPUVertexAttribs { struct { int type; int glindex; + int gltexco; char name[32]; } layer[GPU_MAX_ATTRIB]; diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h index f563d8cbe92..eaee2813ac0 100644 --- a/source/blender/gpu/GPU_material.h +++ b/source/blender/gpu/GPU_material.h @@ -118,12 +118,13 @@ int GPU_link(GPUMaterial *mat, const char *name, ...); int GPU_stack_link(GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNodeStack *out, ...); void GPU_material_output_link(GPUMaterial *material, GPUNodeLink *link); +int GPU_material_drawtype(GPUMaterial *material); void GPU_material_enable_alpha(GPUMaterial *material); GPUBlendMode GPU_material_blend_mode(GPUMaterial *material, float obcol[4]); /* High level functions to create and use GPU materials */ -GPUMaterial *GPU_material_from_blender(struct Scene *scene, struct Material *ma); +GPUMaterial *GPU_material_from_blender(struct Scene *scene, struct Material *ma, int drawtype); void GPU_material_free(struct Material *ma); void GPU_materials_free(void); diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 98b8bed87a1..65d9b2077e0 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -935,6 +935,7 @@ static struct GPUMaterialState { Material *gboundmat; Object *gob; Scene *gscene; + int gdrawtype; int glay; float (*gviewmat)[4]; float (*gviewinv)[4]; @@ -1006,6 +1007,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GMS.gob = ob; GMS.gscene = scene; + GMS.gdrawtype = v3d->drawtype; GMS.totmat= ob->totcol+1; /* materials start from 1, default material is 0 */ GMS.glay= v3d->lay; GMS.gviewmat= rv3d->viewmat; @@ -1035,7 +1037,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O if(glsl) { GMS.gmatbuf[0]= &defmaterial; - GPU_material_from_blender(GMS.gscene, &defmaterial); + GPU_material_from_blender(GMS.gscene, &defmaterial, GMS.gdrawtype); } GMS.blendmode[0]= GPU_BLEND_SOLID; @@ -1049,7 +1051,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O if(ma==NULL) ma= &defmaterial; /* create glsl material if requested */ - gpumat = (glsl)? GPU_material_from_blender(GMS.gscene, ma): NULL; + gpumat = (glsl)? GPU_material_from_blender(GMS.gscene, ma, GMS.gdrawtype): NULL; if(gpumat) { /* do glsl only if creating it succeed, else fallback */ @@ -1119,7 +1121,7 @@ int GPU_enable_material(int nr, void *attribs) /* unbind glsl material */ if(GMS.gboundmat) { if(GMS.alphapass) glDepthMask(0); - GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat)); + GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat, GMS.gdrawtype)); GMS.gboundmat= NULL; } @@ -1134,7 +1136,7 @@ int GPU_enable_material(int nr, void *attribs) /* bind glsl material and get attributes */ Material *mat = GMS.gmatbuf[nr]; - gpumat = GPU_material_from_blender(GMS.gscene, mat); + gpumat = GPU_material_from_blender(GMS.gscene, mat, GMS.gdrawtype); GPU_material_vertex_attributes(gpumat, gattribs); GPU_material_bind(gpumat, GMS.gob->lay, GMS.glay, 1.0, !(GMS.gob->mode & OB_MODE_TEXTURE_PAINT)); GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, GMS.gviewmat, GMS.gviewinv, GMS.gob->col); @@ -1178,7 +1180,7 @@ void GPU_disable_material(void) if(GMS.gboundmat) { if(GMS.alphapass) glDepthMask(0); - GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat)); + GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat, GMS.gdrawtype)); GMS.gboundmat= NULL; } @@ -1212,7 +1214,7 @@ void GPU_end_object_materials(void) int GPU_default_lights(void) { - float zero[3] = {0.0f, 0.0f, 0.0f}; + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}, position[4]; int a, count = 0; /* initialize */ @@ -1242,8 +1244,11 @@ int GPU_default_lights(void) if(a<3) { if(U.light[a].flag) { glEnable(GL_LIGHT0+a); + + normalize_v3_v3(position, U.light[a].vec); + position[3]= 0.0f; - glLightfv(GL_LIGHT0+a, GL_POSITION, U.light[a].vec); + glLightfv(GL_LIGHT0+a, GL_POSITION, position); glLightfv(GL_LIGHT0+a, GL_DIFFUSE, U.light[a].col); glLightfv(GL_LIGHT0+a, GL_SPECULAR, U.light[a].spec); diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 3804aad6848..a6e8af51964 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -80,6 +80,7 @@ typedef enum DynMatProperty { struct GPUMaterial { Scene *scene; Material *ma; + int drawtype; /* for creating the material */ ListBase nodes; @@ -353,6 +354,11 @@ void GPU_material_output_link(GPUMaterial *material, GPUNodeLink *link) material->outlink= link; } +int GPU_material_drawtype(GPUMaterial *material) +{ + return material->drawtype; +} + void GPU_material_enable_alpha(GPUMaterial *material) { material->alpha= 1; @@ -1387,35 +1393,44 @@ static GPUNodeLink *GPU_blender_material(GPUMaterial *mat, Material *ma) return shr.combined; } -GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma) +GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma, int drawtype) { GPUMaterial *mat; GPUNodeLink *outlink; LinkData *link; - for(link=ma->gpumaterial.first; link; link=link->next) - if(((GPUMaterial*)link->data)->scene == scene) + /* find an existing glsl shader that is already compiled */ + for(link=ma->gpumaterial.first; link; link=link->next) { + mat= (GPUMaterial*)link->data; + if(mat->scene == scene && mat->drawtype == drawtype) return link->data; + } + + /* in texture draw mode, we need an active texture node */ + if(drawtype == OB_TEXTURE && (!ma->use_nodes || !nodeGetActiveTexture(ma->nodetree))) + return NULL; + /* allocate material */ mat = GPU_material_construct_begin(ma); mat->scene = scene; + mat->drawtype = drawtype; if(!(scene->gm.flag & GAME_GLSL_NO_NODES) && ma->nodetree && ma->use_nodes) { + /* create nodes */ ntreeGPUMaterialNodes(ma->nodetree, mat); } else { + /* create material */ outlink = GPU_blender_material(mat, ma); GPU_material_output_link(mat, outlink); } - /*if(!GPU_material_construct_end(mat)) { - GPU_material_free(mat); - mat= NULL; - return 0; - }*/ - GPU_material_construct_end(mat); + /* note that even if building the shader fails in some way, we still keep + it to avoid trying to compile again and again, and simple do not use + the actual shader on drawing */ + link = MEM_callocN(sizeof(LinkData), "GPUMaterialLink"); link->data = mat; BLI_addtail(&ma->gpumaterial, link); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 0faf550e882..74defdf7b76 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1822,28 +1822,35 @@ float hypot(float x, float y) void node_bsdf_diffuse(vec4 color, vec3 N, out vec4 result) { - result = vec4(0.0); + /* ambient light */ + vec3 L = vec3(0.2); + /* directional lights */ for(int i = 0; i < NUM_LIGHTS; i++) { - vec3 L = gl_LightSource[i].position.xyz; - vec4 Ldiffuse = gl_LightSource[i].diffuse; + vec3 light_position = gl_LightSource[i].position.xyz; + vec3 light_diffuse = gl_LightSource[i].diffuse.rgb; - float bsdf = abs(dot(N, L)) * M_1_PI; - result += Ldiffuse*color*bsdf; + float bsdf = max(dot(N, light_position), 0.0); + L += light_diffuse*bsdf; } + + result = vec4(L*color.rgb, 1.0); } void node_bsdf_glossy(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) { - result = vec4(0.0); + vec3 L = vec3(0.0); + /* directional lights */ for(int i = 0; i < NUM_LIGHTS; i++) { vec3 H = gl_LightSource[i].halfVector.xyz; - vec4 Lspecular = gl_LightSource[i].specular; + vec3 light_specular = gl_LightSource[i].specular.rgb; - float bsdf = pow(abs(dot(N, H)), 1.0/roughness) * M_1_PI; - result += Lspecular*color*bsdf; + float bsdf = pow(max(dot(N, H), 0.0), 1.0/roughness); + L += light_specular*bsdf; } + + result = vec4(L*color.rgb, 1.0); } void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 N, vec3 I, out vec4 result) @@ -1879,7 +1886,7 @@ void node_bsdf_velvet(vec4 color, float sigma, float fresnel, vec3 N, out vec4 r void node_emission(vec4 color, float strength, vec3 N, out vec4 result) { - result = color*strength * M_1_PI; + result = color*strength; } /* closures */ @@ -2093,6 +2100,6 @@ void node_light_path( void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result) { - result = surface * M_PI; + result = surface; } diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index f87e346602b..fb92b74f1fc 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,1428 +1,1433 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 45475; +int datatoc_gpu_shader_material_glsl_size= 45652; 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,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,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, + 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,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,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,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, +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, 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,100,105,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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, - 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114, -118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117, -116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, - 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 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, - 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, -116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, - 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, - 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, - 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, - 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 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, +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,100,105,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, + 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, + 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, + 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, + 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, + 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 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, 49, 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, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97, +112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116, +117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, + 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120, +116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101, +109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 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,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, + 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,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, +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,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, + 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,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, 49, 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, 49, 68, 40, 99,111,108,111,114, -109, 97,112, 44, 32,102, 97, 99, 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, + 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, 49, 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, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102, 97, 99, 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,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, +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,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, +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,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, +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,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,109, 86,105,101,119, - 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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, + 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,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101, +119, 73,110,118, 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, 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,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, 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, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111, 97,116, 32,100,105,115, + 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,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, 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,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112, -100,105,115,116, 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, + 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, 49, 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, 49, 68, 40, 99,117,114,118, +101,109, 97,112, 44, 32,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 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,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, 10, 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,125, 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, -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,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 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, 76, - 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, 52, 32, 76,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, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32, - 97, 98,115, 40,100,111,116, 40, 78, 44, 32, 76, 41, 41, 32, 42, 32, 77, 95, 49, 95, 80, 73, 59, 10, 9, 9,114,101,115,117,108, -116, 32, 43, 61, 32, 76,100,105,102,102,117,115,101, 42, 99,111,108,111,114, 42, 98,115,100,102, 59, 10, 9,125, 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,102,108,111, 97,116, 32,102,114,101,115,110,101,108, - 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,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 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, 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, 52, 32, 76,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, 59, 10, 10, 9, - 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,112,111,119, 40, 97, 98,115, 40,100,111,116, 40, 78, 44, 32, 72, 41, 41, - 44, 32, 49, 46, 48, 47,114,111,117,103,104,110,101,115,115, 41, 32, 42, 32, 77, 95, 49, 95, 80, 73, 59, 10, 9, 9,114,101,115, -117,108,116, 32, 43, 61, 32, 76,115,112,101, 99,117,108, 97,114, 42, 99,111,108,111,114, 42, 98,115,100,102, 59, 10, 9,125, 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, 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,102,114,101,115,110,101,108, 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, 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, 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,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 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, 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, 32, 42, 32, 77, 95, 49, 95, 80, 73, 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, 99,108,111,115,117,114,101, 40,102, -108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32,118,101, 99, 52, 32, 99,108, -111,115,117,114,101, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, 10,123, 10, 9, 99,108,111, -115,117,114,101, 32, 61, 32,109,105,120, 40, 99,108,111,115,117,114,101, 49, 44, 32, 99,108,111,115,117,114,101, 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, 99,108,111,115,117,114,101, 40,118,101, - 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 50, 44, 32,111,117,116, 32, -118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, 10,123, 10, 9, 99,108,111,115,117,114,101, 32, 61, 32, 99,108,111,115,117, -114,101, 49, 32, 43, 32, 99,108,111,115,117,114,101, 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,102, 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, 32, 61, 32,109, 97,120, 40, 49, 46, 48, 32, 45, 32,102, 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, - 49, 46, 48, 47,102, 41, 59, 32, 47, 47, 98, 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32,102, 58, 32, 49, 46, 48, 47,102, - 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,116,111,119,111,114,108, -100, 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, -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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,102,108, -111, 97,116, 32,102, 97, 99, 41, 10,123, 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, +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, 10, 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,125, 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,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,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 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, +118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 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, 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,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,102,108, +111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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,102,114,101,115,110,101,108, 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, 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, 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,102,108,111, 97, +116, 32,102,114,101,115,110,101,108, 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, + 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, 32, 42, 32, 77, 95, 49, 95, 80, 73, 59, 10, 9,114,101,115,117,108,116, 32, 42, 61, 32, 77, 95, 80, 73, 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, 99,108, +111,115,117,114,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32, +118,101, 99, 52, 32, 99,108,111,115,117,114,101, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, + 10,123, 10, 9, 99,108,111,115,117,114,101, 32, 61, 32,109,105,120, 40, 99,108,111,115,117,114,101, 49, 44, 32, 99,108,111,115, +117,114,101, 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, 99,108,111, +115,117,114,101, 40,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 49, 44, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, + 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,108,111,115,117,114,101, 41, 10,123, 10, 9, 99,108,111,115,117,114,101, 32, + 61, 32, 99,108,111,115,117,114,101, 49, 32, 43, 32, 99,108,111,115,117,114,101, 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,102, 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, 32, 61, 32,109, 97,120, 40, 49, 46, 48, 32, 45, 32,102, 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, 49, 46, 48, 47,102, 41, 59, 32, 47, 47, 98, 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32,102, + 58, 32, 49, 46, 48, 47,102, 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,100,105,115, +116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101, +110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32, +112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, + 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32, +122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, + 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, + 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, + 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, + 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, + 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, +122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, + 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45, +120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, + 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, + 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, + 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, + 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, + 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, + 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, +105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, + 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, + 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, + 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, + 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, + 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, + 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, + 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, + 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, + 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, + 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,100,105,115,116,110,111,105,115,101, 40, -118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, - 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101,110, 99,101, 47, 53, 46, 48, - 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32,112, 46,121, 32, 43, 32,112, - 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, 40, 45,112, 46,120, 32, 43, - 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,122, 32, 61, 32, 45, 99,111, -115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 10, 9,105,102, 40, -110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 42, 61, 32,116, -117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, 99,111,115, 40,120, 45,121, - 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, 32, 62, 32, 49, 46, 48, 41, - 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, - 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9,122, 61, 32,115,105,110, 40, - 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9,105,102, 40, -110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 45,122, 41, 59, - 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 52, 46, - 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, - 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 53, 46, 48, 41, 32, -123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, - 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 54, 46, 48, 41, 32, -123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, - 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 55, 46, 48, 41, - 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9, - 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, - 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 45,121, 43,122, 41, - 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115, -105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, - 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, -125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9,125, 10, - 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, - 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, - 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, 10, 9, 99,111,108,111,114, - 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, 32, 48, 46, 53, 32, 45, 32, -122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,114, 98,108,101, + 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,115,116,117, 99, 99,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98, 117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, - 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, 40,118,101, 99, 51, 32, 99, -111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, - 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32, -102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, 44, 32,102,108,111, 97,116, - 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32,102,108,111, 97,116, 32,119, -101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105, -122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, -102, 97, 99, 41, 10,123, 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,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,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, 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, 32, 42, 32, 77, 95, 80, 73, 59, 10,125, 10, 10, + 49, 46, 48, 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,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, + 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32, +102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, +108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, + 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/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 896f809a97e..90ba74aba93 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -171,7 +171,8 @@ typedef struct bNode { #define NODE_TEST 256 /* composite: don't do node but pass on buffer(s) */ #define NODE_MUTED 512 -#define NODE_CUSTOM_NAME 1024 /* deprecated! */ +#define NODE_CUSTOM_NAME 1024 /* deprecated! */ +#define NODE_ACTIVE_TEXTURE 2048 typedef struct bNodeLink { struct bNodeLink *next, *prev; diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 7af14786f2f..28609d0973b 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -374,10 +374,12 @@ typedef struct DupliObject { #define OB_BOUNDBOX 1 #define OB_WIRE 2 #define OB_SOLID 3 -#define OB_SHADED 4 +#define OB_MATERIAL 4 #define OB_TEXTURE 5 #define OB_RENDER 6 +#define OB_PAINT 100 /* temporary used in draw code */ + /* dtx: flags, char! */ #define OB_AXIS 2 #define OB_TEXSPACE 4 diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 11e14e6d3ed..fe2f0c634b5 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -243,7 +243,7 @@ typedef struct View3D { /* View3d->flag2 (short) */ #define V3D_RENDER_OVERRIDE 4 -#define V3D_SOLID_TEX 8 +#define V3D_SOLID_TEX 8 /* deprecated */ #define V3D_DISPGP 16 #define V3D_LOCK_CAMERA 32 diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 4cacf83808e..5270184dee0 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -3029,6 +3029,11 @@ static void rna_def_node(BlenderRNA *brna) 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"); + + prop = RNA_def_property(srna, "show_texture", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_ACTIVE_TEXTURE); + RNA_def_property_ui_text(prop, "Show Texture", "Draw node in viewport textured draw mode"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void rna_def_node_link(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index dde91bf5e04..0f64107e990 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -102,8 +102,9 @@ EnumPropertyItem viewport_shade_items[] = { {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, - {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, - {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display progressive render preview"}, + {OB_TEXTURE, "TEXTURE", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, + {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, + {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -1305,11 +1306,6 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Relationship Lines", "Show dashed lines indicating parent or constraint relationships"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "show_textured_solid", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SOLID_TEX); - RNA_def_property_ui_text(prop, "Textured Solid", "Display face-assigned textures in solid view"); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA); RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view"); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 4e36c509c3b..99f4cb429e9 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -422,8 +422,6 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_function_flag(func, FUNC_USE_CONTEXT); func= RNA_def_function(srna, "template_node_link", "uiTemplateNodeLink"); - parm= RNA_def_pointer(func, "id", "ID", "", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "node", "Node", "", ""); @@ -433,8 +431,6 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "template_node_view", "uiTemplateNodeView"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); - parm= RNA_def_pointer(func, "id", "ID", "", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "node", "Node", "", ""); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c index e31b59b88f4..5b22e0eeca6 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_blend.c @@ -111,6 +111,9 @@ static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_blend", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c index f056a03c724..55d8f6c1ca6 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_clouds.c @@ -94,6 +94,9 @@ static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_clouds", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c index d465499c942..7eaa05c3258 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_distnoise.c @@ -91,6 +91,9 @@ static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack * static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_distnoise", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index 2a8ccf51d66..bdcc9664a02 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -85,10 +85,16 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod Image *ima= (Image*)node->id; ImageUser *iuser= NULL; - if(ima) - return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_builtin(GPU_VIEW_POSITION); - return 0; + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); } /* node type definition */ diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index 3d74054e5d3..0a8fb0db109 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -83,8 +83,14 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack Image *ima= (Image*)node->id; ImageUser *iuser= NULL; - if(!ima) - return 0; + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_attribute(CD_MTFACE, ""); return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c index 691a73ef91d..7304ab0b703 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_magic.c @@ -145,6 +145,9 @@ static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack NodeTexMagic *tex = (NodeTexMagic*)node->storage; float depth = tex->depth; + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_magic", in, out, GPU_uniform(&depth)); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c index 79dbdaf85e6..421c9d92dc9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_marble.c @@ -99,6 +99,9 @@ static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_marble", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c index 0400ac26c91..8b04dc26754 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_musgrave.c @@ -264,6 +264,9 @@ static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack ** static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_musgrave", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c index d77eb2993e2..185cb02f4b0 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_noise.c @@ -76,6 +76,9 @@ static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_noise", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c index e8413debb0e..aeecf25a0e8 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_sky.c @@ -58,6 +58,9 @@ static void node_shader_exec_tex_sky(void *UNUSED(data), bNode *UNUSED(node), bN static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_sky", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c index 2de01a8856f..5267080b5be 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_stucci.c @@ -94,6 +94,9 @@ static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_stucci", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c index 0bee1631e49..98a8a4503f4 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_voronoi.c @@ -140,6 +140,9 @@ static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **i static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_voronoi", in, out); } diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c index 54a47b7ffcd..eddb2ee5042 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_wood.c @@ -101,6 +101,9 @@ static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + return GPU_stack_link(mat, "node_tex_wood", in, out); } diff --git a/source/blender/nodes/intern/SHD_util.h b/source/blender/nodes/intern/SHD_util.h index bf6f2bd20eb..961831af2fd 100644 --- a/source/blender/nodes/intern/SHD_util.h +++ b/source/blender/nodes/intern/SHD_util.h @@ -42,6 +42,7 @@ #include "MEM_guardedalloc.h" #include "DNA_color_types.h" +#include "DNA_customdata_types.h" #include "DNA_ID.h" #include "DNA_image_types.h" #include "DNA_material_types.h" diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index 91982a424c7..4823af874a8 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -40,7 +40,7 @@ BL_BlenderShader::~BL_BlenderShader() void BL_BlenderShader::ReloadMaterial() { - mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat) : NULL; + mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat, OB_RENDERED) : NULL; } void BL_BlenderShader::SetProg(bool enable, double time) diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index 23e0a50ed6f..f6f3d994b37 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -840,7 +840,7 @@ void RAS_OpenGLRasterizer::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi) Material* blmat = current_polymat->GetBlenderMaterial(); Scene* blscene = current_polymat->GetBlenderScene(); if (!wireframe && blscene && blmat) - GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat), ¤t_gpu_attribs); + GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat, OB_RENDERED), ¤t_gpu_attribs); else memset(¤t_gpu_attribs, 0, sizeof(current_gpu_attribs)); // DM draw can mess up blending mode, restore at the end -- cgit v1.2.3 From 919ea1c43cd7d13b52f5520654d18e791873c584 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 12:18:17 +0000 Subject: Cycles: uv editor and texture paint now also use active texture node. --- source/blender/editors/include/ED_uvedit.h | 6 +- source/blender/editors/mesh/mesh_data.c | 4 +- source/blender/editors/sculpt_paint/paint_image.c | 81 +++++++++++++---- source/blender/editors/space_image/space_image.c | 40 +++++--- source/blender/editors/space_view3d/drawmesh.c | 16 ++-- source/blender/editors/uvedit/uvedit_ops.c | 106 ++++++++++++++++------ source/blender/editors/uvedit/uvedit_unwrap_ops.c | 4 +- 7 files changed, 188 insertions(+), 69 deletions(-) diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index f6106e62533..023a0b19eaa 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -35,6 +35,7 @@ struct ARegionType; struct EditFace; struct Image; +struct ImageUser; struct MTFace; struct Object; struct Scene; @@ -45,9 +46,12 @@ struct wmKeyConfig; void ED_operatortypes_uvedit(void); void ED_keymap_uvedit(struct wmKeyConfig *keyconf); -void ED_uvedit_assign_image(struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); +void ED_uvedit_assign_image(struct Main *bmain, struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max); +int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser); +void ED_object_assign_active_image(struct Main *bmain, struct Object *ob, int mat_nr, struct Image *ima); + int ED_uvedit_test_silent(struct Object *obedit); int ED_uvedit_test(struct Object *obedit); diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index c4a302d4d18..baa997241e0 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -53,6 +53,7 @@ #include "BKE_displist.h" #include "BKE_image.h" #include "BKE_library.h" +#include "BKE_main.h" #include "BKE_material.h" #include "BKE_mesh.h" #include "BKE_report.h" @@ -336,6 +337,7 @@ void MESH_OT_uv_texture_add(wmOperatorType *ot) static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); View3D *v3d= CTX_wm_view3d(C); Base *base= ED_view3d_give_base_under_cursor(C, event->mval); @@ -380,7 +382,7 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event) if(me->edit_mesh==NULL) return OPERATOR_CANCELLED; - ED_uvedit_assign_image(scene, obedit, ima, NULL); + ED_uvedit_assign_image(bmain, scene, obedit, ima, NULL); if(exitmode) { load_editMesh(scene, obedit); diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index cae5c14aa97..7b951b780f0 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -77,6 +77,7 @@ #include "BKE_object.h" #include "BKE_paint.h" #include "BKE_report.h" +#include "BKE_scene.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -86,6 +87,7 @@ #include "ED_image.h" #include "ED_screen.h" #include "ED_sculpt.h" +#include "ED_uvedit.h" #include "ED_view3d.h" #include "WM_api.h" @@ -456,6 +458,40 @@ static void image_undo_free(ListBase *lb) MEM_freeN(tile->rect); } +/* get active image for face depending on old/new shading system */ + +static Image *imapaint_face_image(const ImagePaintState *s, int face_index) +{ + Image *ima; + + if(scene_use_new_shading_system(s->scene)) { + MFace *mf = s->me->mface+face_index; + ED_object_get_active_image(s->ob, mf->mat_nr, &ima, NULL); + } + else { + MTFace *tf = s->me->mtface+face_index; + ima = tf->tpage; + } + + return ima; +} + +static Image *project_paint_face_image(const ProjPaintState *ps, int face_index) +{ + Image *ima; + + if(scene_use_new_shading_system(ps->scene)) { + MFace *mf = ps->dm_mface+face_index; + ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL); + } + else { + MTFace *tf = ps->dm_mtface+face_index; + ima = tf->tpage; + } + + return ima; +} + /* fast projection bucket array lookup, use the safe version for bound checking */ static int project_bucket_offset(const ProjPaintState *ps, const float projCoSS[2]) { @@ -628,6 +664,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float int side; int face_index; MTFace *tf; + Image *ima; ImBuf *ibuf; int xi, yi; @@ -645,8 +682,9 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float else { /* QUAD */ interp_v2_v2v2v2(uv, tf->uv[0], tf->uv[2], tf->uv[3], w); } - - ibuf = tf->tpage->ibufs.first; /* we must have got the imbuf before getting here */ + + ima = project_paint_face_image(ps, face_index); + ibuf = ima->ibufs.first; /* we must have got the imbuf before getting here */ if (!ibuf) return 0; if (interp) { @@ -1011,6 +1049,9 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o /* Only need to check if 'i2_fidx' is valid because we know i1_fidx is the same vert on both faces */ if (i2_fidx != -1) { + Image *tpage = project_paint_face_image(ps, face_index); + Image *orig_tpage = project_paint_face_image(ps, orig_face); + /* This IS an adjacent face!, now lets check if the UVs are ok */ tf = ps->dm_mtface + face_index; @@ -1019,7 +1060,7 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o *orig_fidx = (i1_fidx < i2_fidx) ? i1_fidx : i2_fidx; /* first test if they have the same image */ - if ( (orig_tf->tpage == tf->tpage) && + if ( (orig_tpage == tpage) && cmp_uv(orig_tf->uv[orig_i1_fidx], tf->uv[i1_fidx]) && cmp_uv(orig_tf->uv[orig_i2_fidx], tf->uv[i2_fidx]) ) { @@ -1285,9 +1326,10 @@ static float project_paint_uvpixel_mask( if (ps->do_layer_stencil) { /* another UV layers image is masking this one's */ ImBuf *ibuf_other; + Image *other_tpage = project_paint_face_image(ps, face_index); const MTFace *tf_other = ps->dm_mtface_stencil + face_index; - if (tf_other->tpage && (ibuf_other = BKE_image_get_ibuf(tf_other->tpage, NULL))) { + if (other_tpage && (ibuf_other = BKE_image_get_ibuf(other_tpage, NULL))) { /* BKE_image_get_ibuf - TODO - this may be slow */ unsigned char rgba_ub[4]; float rgba_f[4]; @@ -1441,9 +1483,10 @@ static ProjPixel *project_paint_uvpixel_init( if (ps->tool==PAINT_TOOL_CLONE) { if (ps->dm_mtface_clone) { ImBuf *ibuf_other; + Image *other_tpage = project_paint_face_image(ps, face_index); const MTFace *tf_other = ps->dm_mtface_clone + face_index; - if (tf_other->tpage && (ibuf_other = BKE_image_get_ibuf(tf_other->tpage, NULL))) { + if (other_tpage && (ibuf_other = BKE_image_get_ibuf(other_tpage, NULL))) { /* BKE_image_get_ibuf - TODO - this may be slow */ if (ibuf->rect_float) { @@ -2649,9 +2692,7 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index LinkNode *node; int face_index, image_index=0; ImBuf *ibuf = NULL; - MTFace *tf; - - Image *tpage_last = NULL; + Image *tpage_last = NULL, *tpage; if (ps->image_tot==1) { @@ -2669,9 +2710,9 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index face_index = GET_INT_FROM_POINTER(node->link); /* Image context switching */ - tf = ps->dm_mtface+face_index; - if (tpage_last != tf->tpage) { - tpage_last = tf->tpage; + tpage = project_paint_face_image(ps, face_index); + if (tpage_last != tpage) { + tpage_last = tpage; image_index = -1; /* sanity check */ @@ -2841,7 +2882,7 @@ static void project_paint_begin(ProjPaintState *ps) LinkNode *node; ProjPaintImage *projIma; - Image *tpage_last = NULL; + Image *tpage_last = NULL, *tpage; /* Face vars */ MFace *mf; @@ -3174,7 +3215,9 @@ static void project_paint_begin(ProjPaintState *ps) } #endif - if (tf->tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK)==0 || mf->flag & ME_FACE_SEL)) { + tpage = project_paint_face_image(ps, face_index); + + if (tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK)==0 || mf->flag & ME_FACE_SEL)) { float *v1coSS, *v2coSS, *v3coSS, *v4coSS=NULL; @@ -3247,17 +3290,17 @@ static void project_paint_begin(ProjPaintState *ps) } } - if (tpage_last != tf->tpage) { + if (tpage_last != tpage) { - image_index = BLI_linklist_index(image_LinkList, tf->tpage); + image_index = BLI_linklist_index(image_LinkList, tpage); - if (image_index==-1 && BKE_image_get_ibuf(tf->tpage, NULL)) { /* MemArena dosnt have an append func */ - BLI_linklist_append(&image_LinkList, tf->tpage); + if (image_index==-1 && BKE_image_get_ibuf(tpage, NULL)) { /* MemArena dosnt have an append func */ + BLI_linklist_append(&image_LinkList, tpage); image_index = ps->image_tot; ps->image_tot++; } - tpage_last = tf->tpage; + tpage_last = tpage; } if (image_index != -1) { @@ -4444,7 +4487,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint ) { ImBuf *ibuf; - newimage = (s->me->mtface+newfaceindex)->tpage; + newimage = imapaint_face_image(s, newfaceindex); ibuf= BKE_image_get_ibuf(newimage, s->sima? &s->sima->iuser: NULL); if(ibuf && ibuf->rect) diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 2e9544f5d20..79a7afde665 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -49,7 +49,10 @@ #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 "IMB_imbuf_types.h" @@ -83,7 +86,7 @@ Image *ED_space_image(SpaceImage *sima) /* called to assign images to UV faces */ void ED_space_image_set(bContext *C, SpaceImage *sima, Scene *scene, Object *obedit, Image *ima) { - ED_uvedit_assign_image(scene, obedit, ima, sima->image); + ED_uvedit_assign_image(G.main, scene, obedit, ima, sima->image); /* change the space ima after because uvedit_face_visible uses the space ima * to check if the face is displayed in UV-localview */ @@ -570,6 +573,7 @@ static void image_dropboxes(void) static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) { + Scene *scene = CTX_data_scene(C); SpaceImage *sima= CTX_wm_space_image(C); Object *obedit= CTX_data_edit_object(C); Image *ima; @@ -584,19 +588,31 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) else if(obedit && obedit->type == OB_MESH) { Mesh *me= (Mesh*)obedit->data; EditMesh *em= BKE_mesh_get_editmesh(me); - MTFace *tf; - - if(em && EM_texFaceCheck(em)) { - sima->image= NULL; - - tf = EM_get_active_mtface(em, NULL, NULL, 1); /* partially selected face is ok */ + int sloppy= 1; /* partially selected face is ok */ + + if(scene_use_new_shading_system(scene)) { + /* new shading system, get image from material */ + EditFace *efa= EM_get_actFace(em, sloppy); + + if(efa) + ED_object_get_active_image(obedit, efa->mat_nr, &sima->image, NULL); + } + else { + /* old shading system, we set texface */ + MTFace *tf; - if(tf && (tf->mode & TF_TEX)) { - /* don't need to check for pin here, see above */ - sima->image= tf->tpage; + if(em && EM_texFaceCheck(em)) { + sima->image= NULL; + + tf = EM_get_active_mtface(em, NULL, NULL, sloppy); - if(sima->flag & SI_EDITTILE); - else sima->curtile= tf->tile; + if(tf && (tf->mode & TF_TEX)) { + /* don't need to check for pin here, see above */ + sima->image= tf->tpage; + + if(sima->flag & SI_EDITTILE); + else sima->curtile= tf->tile; + } } } diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 17db90a3b07..b308b9de83b 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -645,7 +645,7 @@ void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } -/**************************** CYCLES **********************************/ +/************************** NEW SHADING SYSTEM ********************************/ typedef struct TexMatCallback { Scene *scene; @@ -668,17 +668,13 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) /* texture draw mode without GLSL */ TexMatCallback *data= (TexMatCallback*)userData; GPUVertexAttribs *gattribs = attribs; - Material *ma= give_current_material_or_def(data->ob, mat_nr); - bNode *node= (ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + Image *ima; + ImageUser *iuser; int texture_set= 0; - memset(gattribs, 0, sizeof(*gattribs)); - - /* draw textured */ - if(node && (node->type == SH_NODE_TEX_IMAGE)) { + /* draw image texture if we find one */ + if(ED_object_get_active_image(data->ob, mat_nr, &ima, &iuser)) { /* get openl texture */ - Image *ima= (Image*)node->id; - ImageUser *iuser= NULL; int mipmap= 1; int bindcode= (ima)? GPU_verify_image(ima, iuser, 0, 0, mipmap): 0; float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; @@ -698,6 +694,8 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) glColor3f(1.0f, 1.0f, 1.0f); /* use active UV texture layer */ + memset(gattribs, 0, sizeof(*gattribs)); + gattribs->layer[0].type= CD_MTFACE; gattribs->layer[0].name[0]= '\0'; gattribs->layer[0].gltexco= 1; diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index c09f8cff02d..8458770acd0 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -39,7 +39,9 @@ #include "MEM_guardedalloc.h" #include "DNA_object_types.h" +#include "DNA_material_types.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" #include "DNA_scene_types.h" #include "BLI_math.h" @@ -52,11 +54,16 @@ #include "BKE_depsgraph.h" #include "BKE_image.h" #include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_material.h" #include "BKE_mesh.h" +#include "BKE_node.h" #include "BKE_report.h" +#include "BKE_scene.h" #include "ED_image.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_uvedit.h" #include "ED_object.h" #include "ED_screen.h" @@ -89,9 +96,44 @@ int ED_uvedit_test(Object *obedit) return ret; } +/**************************** object active image *****************************/ + +static int is_image_texture_node(bNode *node) +{ + return ELEM(node->type, SH_NODE_TEX_IMAGE, SH_NODE_TEX_ENVIRONMENT); +} + +int ED_object_get_active_image(Object *ob, int mat_nr, Image **ima, ImageUser **iuser) +{ + Material *ma= give_current_material(ob, mat_nr); + bNode *node= (ma && ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + + if(node && is_image_texture_node(node)) { + if(ima) *ima= (Image*)node->id; + if(iuser) *iuser= NULL; + return TRUE; + } + + if(ima) *ima= NULL; + if(iuser) *iuser= NULL; + + return FALSE; +} + +void ED_object_assign_active_image(Main *bmain, Object *ob, int mat_nr, Image *ima) +{ + Material *ma= give_current_material(ob, mat_nr); + bNode *node= (ma && ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + + if(node && is_image_texture_node(node)) { + node->id= &ima->id; + ED_node_generic_update(bmain, ma->nodetree, node); + } +} + /************************* assign image ************************/ -void ED_uvedit_assign_image(Scene *scene, Object *obedit, Image *ima, Image *previma) +void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *ima, Image *previma) { EditMesh *em; EditFace *efa; @@ -111,37 +153,49 @@ void ED_uvedit_assign_image(Scene *scene, Object *obedit, Image *ima, Image *pre BKE_mesh_end_editmesh(obedit->data, em); return; } - - /* ensure we have a uv layer */ - if(!CustomData_has_layer(&em->fdata, CD_MTFACE)) { - EM_add_data_layer(em, &em->fdata, CD_MTFACE, NULL); - update= 1; + + if(scene_use_new_shading_system(scene)) { + /* new shading system, assign image in material */ + int sloppy= 1; + EditFace *efa= EM_get_actFace(em, sloppy); + + if(efa) + ED_object_assign_active_image(bmain, obedit, efa->mat_nr, ima); } + else { + /* old shading system, assign image to selected faces */ + + /* ensure we have a uv layer */ + if(!CustomData_has_layer(&em->fdata, CD_MTFACE)) { + EM_add_data_layer(em, &em->fdata, CD_MTFACE, NULL); + update= 1; + } - /* now assign to all visible faces */ - for(efa= em->faces.first; efa; efa= efa->next) { - tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + /* now assign to all visible faces */ + for(efa= em->faces.first; efa; efa= efa->next) { + tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); - if(uvedit_face_visible(scene, previma, efa, tf)) { - if(ima) { - tf->tpage= ima; - tf->mode |= TF_TEX; - - if(ima->id.us==0) id_us_plus(&ima->id); - else id_lib_extern(&ima->id); - } - else { - tf->tpage= NULL; - tf->mode &= ~TF_TEX; - } + if(uvedit_face_visible(scene, previma, efa, tf)) { + if(ima) { + tf->tpage= ima; + tf->mode |= TF_TEX; + + if(ima->id.us==0) id_us_plus(&ima->id); + else id_lib_extern(&ima->id); + } + else { + tf->tpage= NULL; + tf->mode &= ~TF_TEX; + } - update = 1; + update = 1; + } } - } - /* and update depdency graph */ - if(update) - DAG_id_tag_update(obedit->data, 0); + /* and update depdency graph */ + if(update) + DAG_id_tag_update(obedit->data, 0); + } BKE_mesh_end_editmesh(obedit->data, em); } diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index ae6836446fa..e610a39d123 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -53,6 +53,7 @@ #include "BKE_customdata.h" #include "BKE_depsgraph.h" #include "BKE_image.h" +#include "BKE_main.h" #include "BKE_mesh.h" #include "PIL_time.h" @@ -75,6 +76,7 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) { + Main *bmain= CTX_data_main(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); EditFace *efa; MTFace *tf; @@ -120,7 +122,7 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) } if(ima) - ED_uvedit_assign_image(scene, obedit, ima, NULL); + ED_uvedit_assign_image(bmain, scene, obedit, ima, NULL); /* select new UV's */ for(efa=em->faces.first; efa; efa=efa->next) { -- cgit v1.2.3 From f79dcb2af7695f95eea3b96410f5232a919a923d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 12:21:58 +0000 Subject: Cycles: fix build with game engine enabled. --- source/blender/editors/include/ED_uvedit.h | 1 + source/blender/editors/space_view3d/drawmesh.c | 1 + source/gameengine/Ketsji/BL_BlenderShader.cpp | 3 ++- .../Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index 023a0b19eaa..d4b98cc3697 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -39,6 +39,7 @@ struct ImageUser; struct MTFace; struct Object; struct Scene; +struct SpaceImage; struct bContext; struct wmKeyConfig; diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index b308b9de83b..7fe6d24ceb8 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -71,6 +71,7 @@ #include "GPU_draw.h" #include "ED_mesh.h" +#include "ED_uvedit.h" #include "view3d_intern.h" // own include diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index 4823af874a8..83c4daf4b9b 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -4,6 +4,7 @@ #include "DNA_customdata_types.h" #include "DNA_material_types.h" +#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "BKE_global.h" @@ -40,7 +41,7 @@ BL_BlenderShader::~BL_BlenderShader() void BL_BlenderShader::ReloadMaterial() { - mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat, OB_RENDERED) : NULL; + mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat, OB_RENDER) : NULL; } void BL_BlenderShader::SetProg(bool enable, double time) diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index f6f3d994b37..ccff9559e32 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -51,6 +51,7 @@ #include "DNA_image_types.h" #include "DNA_meshdata_types.h" #include "DNA_material_types.h" +#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "BKE_DerivedMesh.h" @@ -840,7 +841,7 @@ void RAS_OpenGLRasterizer::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi) Material* blmat = current_polymat->GetBlenderMaterial(); Scene* blscene = current_polymat->GetBlenderScene(); if (!wireframe && blscene && blmat) - GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat, OB_RENDERED), ¤t_gpu_attribs); + GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat, OB_RENDER), ¤t_gpu_attribs); else memset(¤t_gpu_attribs, 0, sizeof(current_gpu_attribs)); // DM draw can mess up blending mode, restore at the end -- cgit v1.2.3 From 27a99869aa4220b6e8fd15defca3e14c9e96f1e4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 13:43:18 +0000 Subject: Cycles: fix alt+Z shortcut not working in 3d view. --- source/blender/makesrna/intern/rna_space.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 0f64107e990..7188a5a7c05 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -102,7 +102,7 @@ EnumPropertyItem viewport_shade_items[] = { {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, - {OB_TEXTURE, "TEXTURE", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, + {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From bdb92dab74eb46e3444949d79ab9ee8ecdc65b0f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 13:44:47 +0000 Subject: Cycles: for mac and unix, copy oiio/boost dynamic libraries into cycles lib directory to avoid library path issues. --- intern/cycles/blender/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index ef68431267c..9367bb6382f 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -78,11 +78,7 @@ TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles) -IF(UNIX AND NOT APPLE) - SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) -ENDIF() - -# Install DLL's +# Install Dynamic Libraries IF(WIN32) FILE(GLOB OIIO_DLLS "${CYCLES_OIIO}/bin/*.dll") @@ -91,4 +87,39 @@ IF(WIN32) DESTINATION ${CYCLES_INSTALL_PATH}/cycles) ENDIF() +IF(UNIX) + # copy libraries to cycles lib directory + SET(install_libs + ${OPENIMAGEIO_LIBRARY} + ${Boost_LIBRARIES} + ${OSL_LIBRARIES} + ${PARTIO_LIBRARIES}) + + INSTALL(FILES ${install_libs} + DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) + + IF(NOT APPLE) + # set path to look for dynamic libs + SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) + ELSE() + # modify our libs to looks for dynamic libs in cycles lib directory + SET(install_name_command "install_name_tool") + + FOREACH(lib ${install_libs}) + GET_FILENAME_COMPONENT(libname ${lib} NAME) + SET(install_name_command " ${install_name_command} -change ${lib} @loader_path/lib/${libname}") + SET(install_name_command " ${install_name_command} -change ${libname} @loader_path/lib/${libname}") + ENDFOREACH() + + INSTALL( + CODE + " + EXECUTE_PROCESS(COMMAND ${install_name_command} ${CYCLES_INSTALL_PATH}/cycles/libcycles_blender.so) + EXECUTE_PROCESS(COMMAND echo ${install_name_command} ${CYCLES_INSTALL_PATH}/cycles/libcycles_blender.so) + " + ) + ELSE() + ENDIF() +ENDIF() + -- cgit v1.2.3 From f351e3572d163f0ae01d90f72789c49d3352e28b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 14:25:52 +0000 Subject: Cycles: fix for dynamic library copying on linux. --- intern/cycles/blender/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 9367bb6382f..013c671468e 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -94,6 +94,9 @@ IF(UNIX) ${Boost_LIBRARIES} ${OSL_LIBRARIES} ${PARTIO_LIBRARIES}) + + LIST(REMOVE_ITEM install_libs optimized) + LIST(REMOVE_ITEM install_libs debug) INSTALL(FILES ${install_libs} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) @@ -115,7 +118,6 @@ IF(UNIX) CODE " EXECUTE_PROCESS(COMMAND ${install_name_command} ${CYCLES_INSTALL_PATH}/cycles/libcycles_blender.so) - EXECUTE_PROCESS(COMMAND echo ${install_name_command} ${CYCLES_INSTALL_PATH}/cycles/libcycles_blender.so) " ) ELSE() -- cgit v1.2.3 From 6b2e35c8b7474eeae92551060b05036658cc1837 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 14:37:08 +0000 Subject: Cycles: cmake tweak to make specifying OSL/OIIO path simpler. --- intern/cycles/cmake/external_libs.cmake | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index fbda3ac2e34..c3a9e00ca10 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -35,9 +35,9 @@ ENDIF() ########################################################################### # OpenImageIO -FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib) -FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include) -FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin) +FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib ${CYCLES_OIIO}/dist) +FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include ${CYCLES_OIIO}/dist) +FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin ${CYCLES_OIIO}/dist) IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) SET(OPENIMAGEIO_FOUND TRUE) @@ -75,9 +75,9 @@ IF(WITH_CYCLES_OSL) MESSAGE(STATUS "CYCLES_OSL = ${CYCLES_OSL}") - FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib) - FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${CYCLES_OSL}/include) - FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) + FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist) + FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${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) -- cgit v1.2.3 From 5e2c5eaa5d4d6b0e171d506c43a314bf9539400d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 15:09:09 +0000 Subject: Cycles: fix startup.blend not merge problem. --- source/blender/editors/datafiles/startup.blend.c | 1693 +--------------------- 1 file changed, 72 insertions(+), 1621 deletions(-) diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index 8881a05906b..1e45bc1a925 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -169,7 +169,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,189, 1, 0, 0,219, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1, 31, 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, 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, 68, 65, 84, 65, 40, 1, 0, 0,152,135,158, 23, 1, 0, 0, 0, 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,134,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, @@ -215,7 +214,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 57, 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,254, 34, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 88, 1, 0, 0,232,141,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,136,143,158, 23, 1, 0, 0, 0, 72,140,158, 23, 1, 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, @@ -227,12 +225,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 57, 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, 68, 65, 84, 65, 0, 0, 1, 64, 9,244,225, 80, 0, 0, 0,196, - 0, 0, 0, 1, 9,244,226,192, 9,244,223,224, 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, 68, 65, 84, 65, 88, 1, 0, 0,136,143,158, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0, 40,145,158, 23, 1, 0, 0, 0,232,141,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -244,7 +236,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57, 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, 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, 0, 0, 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,145,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,200,146,158, 23, 1, 0, 0, 0, @@ -257,15 +248,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 57, 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, 68, 65, 84, 65, 0, 0, 1, 64, - 9,244,228, 48, 0, 0, 0,196, 0, 0, 0, 1, 9,244,229,160, 9,244,226,192, 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,253,218, - 1, 57, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 88, 1, 0, 0,200,146,158, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,104,148,158, 23, 1, 0, 0, 0, 40,145,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -277,8 +259,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 57, 1,102, 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,253,194, 1, 57, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 88, 1, 0, 0,104,148,158, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 8,150,158, 23, 1, 0, 0, 0, @@ -474,14 +454,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 24,174,158, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 0,248, - 9,244,247,160, 0, 0, 0,198, 0, 0, 0, 1, 9,244,248,192, 9,244,246,128, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196, 96,128, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, - 0, 0, 3,147, 0, 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, 3,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 10, 0, 0, - 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 3,148, 0,163, 3,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 51, 0, 0, 6, 51, 0, 0, 0,151, 0, 0, 3,233, 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, 161, 2, 0, 0, 43, 6, 0, 0,159, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -509,26 +481,6 @@ char datatoc_startup_blend[]= { 14, 43, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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, 2,199,250, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,199,250, 32, 0, 0, 0,156, - 0, 0, 0, 1, 63,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,149,222,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,128, 13, 28,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 76,215, 74, - 0, 0, 0, 0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, - 0, 0, 0, 0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, - 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, - 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 62,191,240, 8, 63, 85,116,130,188, 70,191,112,180,224, 0, 0,190,175,172,179, 62, 41, 90,143, 63, 67,177,193, - 52, 8, 0, 0,194,117,107,207, 65,216,204, 80,194, 5,156, 41,192,159,247,136, 66,114, 62,121,193,213,253,213, 66, 3,225, 95, - 64,160, 7,236, 62,209,239, 68,190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, - 0, 0, 0, 0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, - 63,128, 0, 0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26, - 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,108,185, 9, - 65,111,211,214, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,106, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 3,139,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 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, @@ -561,12 +513,6 @@ char datatoc_startup_blend[]= { 26, 0,160, 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,159, 2, 0, 0, 133, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 68, 65, 84, 65, 0, 0, 0, 96, 9,244,251, 0, 0, 0, 0,197, 0, 0, 0, 1, - 9,245, 1,144, 9,244,243,176, 9,254, 80, 80, 9,251,242,176, 9,253,135, 0, 11, 21,219,240, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 0,125, 0, 0, 1,107, 2, 2, 2,164, 0,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9,245, 0, 16, 9,245, 0, 16, 9,244,251,144, 9,244,254,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,244,251,144, 0, 0, 0,198, 0, 0, 0, 1, 9,244,252,176, 0, 0, 0, 0, 0, 0, 0, 0, - 68,119, 64, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,158, 23, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,185,158, 23, 1, 0, 0, 0, @@ -602,30 +548,9 @@ char datatoc_startup_blend[]= { 68, 65, 84, 65,240, 0, 0, 0,216,188,158, 23, 1, 0, 0, 0,158, 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, 9,245, 1, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 9,245, 1, 16, - 0, 0, 1, 19, 0, 0, 0, 1, 2,154,244, 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, - 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 1,144, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 6,192, 9,244,251, 0, 9,251,242,176, - 9,253,198, 16, 11, 29,143, 96, 9,253,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,163, 0, 0, 1,109, 0, 0, 3,233, - 12, 12, 2,164, 2,125, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 5,128, 9,245, 5,128, 9,245, 2, 32, - 9,245, 4, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 2, 32, - 0, 0, 0,198, 0, 0, 0, 1, 9,245, 3, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68,124,192, 0, 0, 0, 0, 0, 65,208, 0, 0, - 0, 0, 0, 0, 68, 41, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,163, 0, 0, 0, 0, 0, 0, 0, 25, - 68, 40,192, 0, 65,200, 0, 0, 68, 40,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 0, 4, 0, 12, 0, 10, 2,164, 0, 26, 2,164, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2,163, 0, 0, 1,109, 0, 0, 1,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,164, 0, 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, - 68, 65, 84, 65, 0, 0, 0,248, 9,245, 3, 64, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 4, 96, 9,245, 2, 32, 0, 0, 0, 0, - 67, 55, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 72, 0, 0,196, 20, 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,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 2, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 4, 8, 0, 0, 0, 2, 3, 3, 0, 0, 4, 2, 0, 6, 0,200, 2, 99, 0,200, 2, 81, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 1,135, 0, 0, 3,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 2, 99, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,190,158, 23, 1, 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, 68, 65, 84, 65, 40, 0, 0, 0, 8,190,158, 23, 1, 0, 0, 0, 16, 1, 0, 0, 1, 0, 0, 0, @@ -665,18 +590,6 @@ char datatoc_startup_blend[]= { 167, 1, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 1,159, 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, 3, 2, 2, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 6,192, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 1,144, - 11, 21,225, 32, 12, 96, 12, 32, 9,249, 51, 0, 4,211,174, 48, 0, 0, 0, 0, 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, - 0, 0, 3,233, 1, 1, 1, 74, 0,201, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,245, 9,144, 9,245, 9,144, - 9,245, 7, 80, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 9,245, 7, 80, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 8,112, 0, 0, 0, 0, 0, 0, 0, 0, 68,102, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 67,165, 0, 0, 64, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 73, 0, 0, 0, 0, - 0, 0, 0, 23, 67,164,128, 0, 65,200, 0, 0, 67,164,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 74, 0, 24, 1, 74, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3, 33, 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, 68, 65, 84, 65, 0, 1, 0, 0,168,195,158, 23, 1, 0, 0, 0, 17, 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, @@ -684,8 +597,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 53, 0, 0, 7,126, 0, 0, 3, 33, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 74, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,106,106, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, @@ -713,60 +624,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,118, 7, 0, 0,101, 3, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 0, 0, 20, 9,245, 11,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 12, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12, 80, 9,245, 11,208, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 12,144, 9,245, 12, 16, - 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 12,208, 9,245, 12, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 12,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 16, 9,245, 12,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 13, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13, 80, 9,245, 12,208, 0, 0, 0, 0, 7,126, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 13,144, 9,245, 13, 16, - 0, 0, 0, 0, 6, 32, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 13,208, 9,245, 13, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 13,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 16, 9,245, 13,144, 0, 0, 0, 0, 6, 32, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 14, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 1,140, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,245, 14,144, 9,245, 14, 16, - 0, 0, 0, 0, 6, 32, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,144, 0, 0, 0,194, 0, 0, 0, 1, - 9,245, 14,208, 9,245, 14, 80, 0, 0, 0, 0, 3, 4, 1,140, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,245, 14,208, - 0, 0, 0,194, 0, 0, 0, 1, 9,245, 15, 16, 9,245, 14,144, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 9,245, 15, 16, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 14,208, 0, 0, 0, 0, 6, 32, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 15,144, 0, 0, 0, 0, - 9,245, 12, 16, 9,245, 12, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 15,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 15,208, 9,245, 15, 80, 9,245, 12, 16, 9,245, 12,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 15,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 16, 9,245, 15,144, 9,245, 12, 80, 9,245, 13, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16, 80, - 9,245, 15,208, 9,245, 12,208, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,144, 9,245, 16, 16, 9,245, 12,144, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 16,208, 9,245, 16, 80, 9,245, 13, 80, - 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 16,208, 0, 0, 0,195, 0, 0, 0, 1, - 9,245, 17, 16, 9,245, 16,144, 9,245, 13, 16, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,245, 17, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17, 80, 9,245, 16,208, 9,245, 12,208, 9,245, 13,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 17,144, 9,245, 17, 16, - 9,245, 13, 80, 9,245, 13,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 17,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 17,208, 9,245, 17, 80, 9,245, 13, 16, 9,245, 13,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 17,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 16, 9,245, 17,144, 9,245, 12,208, 9,245, 14, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18, 80, - 9,245, 17,208, 9,245, 13,208, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,144, 9,245, 18, 16, 9,245, 14, 16, 9,245, 14, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,144, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 18,208, 9,245, 18, 80, 9,245, 14, 16, - 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 18,208, 0, 0, 0,195, 0, 0, 0, 1, - 9,245, 19, 16, 9,245, 18,144, 9,245, 14, 80, 9,245, 14,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,245, 19, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19, 80, 9,245, 18,208, 9,245, 11,208, 9,245, 14,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 19,144, 9,245, 19, 16, - 9,245, 14,208, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 19,144, 0, 0, 0,195, - 0, 0, 0, 1, 9,245, 19,208, 9,245, 19, 80, 9,245, 12,144, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,245, 19,208, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 16, 9,245, 19,144, 9,245, 13, 80, 9,245, 15, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20, 80, - 9,245, 19,208, 9,245, 14,144, 9,245, 14,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20, 80, - 0, 0, 0,195, 0, 0, 0, 1, 9,245, 20,144, 9,245, 20, 16, 9,245, 14, 80, 9,245, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,245, 20,144, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 20, 80, 9,245, 11,208, - 9,245, 14, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,245, 20,208, 0, 0, 0,197, 0, 0, 0, 1, - 9,245, 23,160, 0, 0, 0, 0, 9,245, 12,208, 9,245, 12, 16, 9,245, 12, 80, 9,245, 13, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 9,245, 55,192, 9,245, 55,192, 9,245, 21, 96, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,248, 9,245, 21, 96, 0, 0, 0,198, 0, 0, 0, 1, 9,245, 22,128, 0, 0, 0, 0, 0, 0, 0, 0, - 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,158, 23, 1, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,168,200,158, 23, 1, 0, 0, 0, 153, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 66, 80, 64, @@ -789,29 +646,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0,202, 4, 51, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 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, 68, 65, 84, 65, 0, 0, 0, 96, - 9,245, 23,160, 0, 0, 0,197, 0, 0, 0, 1, 9,245, 27, 96, 9,245, 20,208, 9,245, 15, 16, 9,245, 13, 80, 9,245, 13,144, - 9,245, 12,144, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 1, 94, 0, 92, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 26,112, 9,245, 26,112, 9,245, 24, 48, 9,245, 25, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,245, 24, 48, 0, 0, 0,198, 0, 0, 0, 1, - 9,245, 25, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68,115,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,175, 0, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 25, 67,174,128, 0, 65,200, 0, 0, - 67,174,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 94, - 0, 26, 1, 94, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 94, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 9,245, 25, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 24, 48,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, - 66, 72, 0, 0,193, 74, 51, 50, 67,131,209,154, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 93, 0, 0, 0, 18, - 0, 0, 0, 65, 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, - 0, 0, 2, 0, 0, 4, 4, 0, 0, 8, 1, 94, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 33, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 94, 0, 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, 68, 65, 84, 65, 0, 0, 0,188, 9,245, 26,112, 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, 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, @@ -954,10 +790,7 @@ char datatoc_startup_blend[]= { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 6, 0, 0,118, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 9,245, 33, 16, 0, 0, 0,196, 0, 0, 0, 1, 9,245, 34,128, - 9,245, 31,160, 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, 68, 65, 84, 65,216, 0, 0, 0,232,229,158, 23, 1, 0, 0, 0,170, 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, @@ -1136,7 +969,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 68, 65, 84, 65,160, 0, 0, 0, @@ -1216,17 +1048,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0,162, 30,184, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 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, 68, 65, 84, 65, - 0, 0, 1, 64, 9,245, 46, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 9,245, 44,144, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16, 1, 76, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 0, 0, 0,216, 9,245, 47,112, 0, 0, 0,162, - 0, 0, 0, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 72, 11,159, 23, 1, 0, 0, 0, @@ -1301,15 +1127,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,171, 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, 63, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 0, 1, 0, 0, 63,128, 0, 0, 66, 65,133,190, 66, 90,212,100, 66,118,183, 31, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,240, 9,245, 54,160, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 7, - 2,212,100, 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, 1, 0, 0, 0, 1, - 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, 67,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, 16, 0, 10, 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, 68, 65, 84, 65, 40, 1, 0, 0,216, 21,159, 23, 1, 0, 0, 0, 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 20,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, @@ -1320,8 +1137,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,171, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 0, 0,252, 11, 29,189, 64, - 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, 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, 68, 65, 84, 65, 40, 33, 0, 0, 56,218,105, 3, 1, 0, 0, 0, 164, 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, @@ -1332,19 +1147,12 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 11, 29,164,240, 0, 0, 0,198, 0, 0, 0, 1, 11, 29,166, 16, 11, 29,190,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 11, 29,166, 16, 0, 0, 0,198, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 29,164,240, 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191,129, 0, 0, - 64, 0,128, 0,190,100, 0, 0, 63,156,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, 3, 4, 0, 0, 0, 0, 0, 0, 1,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, 3, 3, - 0, 0, 0, 26, 0, 0, 1,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1478,7 +1286,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -1737,96 +1544,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 43, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,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, 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, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 0,148, 11, 29,167, 48, 0, 0, 0,193, 0, 0, 0, 1, 9,253,180,224, - 9,245, 11, 16, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 29,191,144, 9,242, 80,144, 9,242, 80,208, 9,242, 85, 16, - 9,242, 85, 80, 10,122, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 54,192,152, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 29,191,144, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 78, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 78, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,144, 9,242, 78, 16, 0, 0, 0, 0, - 7,128, 4,128, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 78,208, - 9,242, 78, 80, 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 78,208, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 79, 16, 9,242, 78,144, 0, 0, 0, 0, 0, 0, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 79, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79, 80, 9,242, 78,208, 0, 0, 0, 0, 7,128, 4,100, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,144, 9,242, 79, 16, 0, 0, 0, 0, - 6, 72, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,144, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 79,208, - 9,242, 79, 80, 0, 0, 0, 0, 6, 72, 4,100, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 79,208, 0, 0, 0,194, - 0, 0, 0, 1, 9,242, 80, 16, 9,242, 79,144, 0, 0, 0, 0, 6, 72, 3,164, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 9,242, 80, 16, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80, 80, 9,242, 79,208, 0, 0, 0, 0, 7,128, 3,164, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80, 80, 0, 0, 0,194, 0, 0, 0, 1, 9,242, 80,144, 9,242, 80, 16, 0, 0, 0, 0, - 0, 0, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 9,242, 80,144, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, - 9,242, 80, 80, 0, 0, 0, 0, 6, 72, 0,132, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 80,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 81, 16, 0, 0, 0, 0, 9,242, 78, 16, 9,242, 78, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 81, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81, 80, 9,242, 80,208, 9,242, 78, 16, 9,242, 78,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,144, - 9,242, 81, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,144, - 0, 0, 0,195, 0, 0, 0, 1, 9,242, 81,208, 9,242, 81, 80, 9,242, 78,208, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 81,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82, 16, 9,242, 81,144, 9,242, 79, 80, - 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82, 16, 0, 0, 0,195, 0, 0, 0, 1, - 9,242, 82, 80, 9,242, 81,208, 9,242, 78,144, 9,242, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,242, 82, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,144, 9,242, 82, 16, 9,242, 78,208, 9,242, 79,144, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 82,208, 9,242, 82, 80, - 9,242, 79, 16, 9,242, 79,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 82,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 83, 16, 9,242, 82,144, 9,242, 79, 80, 9,242, 79,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 83, 16, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83, 80, 9,242, 82,208, 9,242, 79,144, 9,242, 79,208, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,144, - 9,242, 83, 16, 9,242, 79, 16, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,144, - 0, 0, 0,195, 0, 0, 0, 1, 9,242, 83,208, 9,242, 83, 80, 9,242, 78,144, 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 83,208, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84, 16, 9,242, 83,144, 9,242, 79,208, - 9,242, 80, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84, 16, 0, 0, 0,195, 0, 0, 0, 1, - 9,242, 84, 80, 9,242, 83,208, 9,242, 80, 80, 11, 29,191,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 9,242, 84, 80, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,144, 9,242, 84, 16, 9,242, 78,208, 9,242, 80, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,144, 0, 0, 0,195, 0, 0, 0, 1, 9,242, 84,208, 9,242, 84, 80, - 9,242, 79,144, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 9,242, 84,208, 0, 0, 0,195, - 0, 0, 0, 1, 9,242, 85, 16, 9,242, 84,144, 9,242, 79, 80, 9,242, 80,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 9,242, 85, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 84,208, 9,242, 80, 80, 9,242, 80,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 85, 80, 0, 0, 0,197, 0, 0, 0, 1, 9,242, 88, 32, - 0, 0, 0, 0, 9,242, 78,208, 9,242, 78, 16, 9,242, 78, 80, 9,242, 79, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, - 0, 0, 4,101, 0, 0, 4,128, 7, 7, 7,129, 0, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 2, 23,166,224, 10,122, 9,112, - 10,122, 9,112, 9,242, 85,224, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 47,224, 9,244, 48, 64, 68, 65, 84, 65, - 0, 0, 0,248, 9,242, 85,224, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,134,128, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,240, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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,128, - 0, 0, 0, 0, 0, 0, 0, 25, 68,240, 0, 0, 65,200, 0, 0, 68,240, 0, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,129, 0, 26, 7,129, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,101, 0, 0, 4,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,129, 0, 26, 0, 2, 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, 2, 23,168, 48, 11, 30, 71, 96, 11, 30, 71, 96, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 48,240, 9,244, 50, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 87, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, - 9,242, 85,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,237,255,255, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,128, 0, 0, 4,127, 0, 0, 4,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,129, 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, 2, 23,167,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 51, 0, 9,244, 51,224, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242, 88, 32, - 0, 0, 0,197, 0, 0, 0, 1, 9,242,106,192, 9,242, 85, 80, 9,242, 79, 80, 9,242, 79,208, 9,242, 80, 16, 9,242, 78,144, - 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,163, 4, 4, 1, 56, 3,164, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 8, 2, 23,163,224, 11, 29, 3,128, 11, 29, 3,128, 9,242, 88,176, 9,242, 89,208, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244, 94, 64, 9,244, 53, 16, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 88,176, 0, 0, 0,198, 0, 0, 0, 1, 9,242, 89,208, - 0, 0, 0, 0, 0, 0, 0, 0, 67,148, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,156, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55, 0, 0, 0, 0, 0, 0, 0, 25, 67,155,128, 0, 65,200, 0, 0, 67,155,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1, 56, 0, 26, 1, 56, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 73, 0, 0, 7,128, 0, 0, 3,138, 0, 0, 3,163, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 0, 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, 2, 23,166, 80, 11, 31,157,208, 11, 31,157,208, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 53,192, 9,244, 55, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 9,242, 89,208, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 9,242, 88,176, 0, 0, 0, 0, 67,156, 0, 0,196, 98,128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,147,128, 0,196, 98,128, 0, 0, 0, 0, 0, 0, 0, 1, 39, 0, 0, 1, 56, 0, 0, 0, 0, 0, 0, 3,137, - 0, 0, 0, 0, 0, 0, 1, 74, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 3,137, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, - 0, 18, 4, 0, 0, 6, 1, 56, 3,138, 1, 39, 3,138, 0, 0, 11, 29,248, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 6, 73, - 0, 0, 7,128, 0, 0, 0, 0, 0, 0, 3,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 56, 3,138, - 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, 2, 23,164,160, - 9,254, 77,160, 10,117,132,112, 9,242, 90,240, 11, 29, 2, 16, 9,244, 55,208, 9,244, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 90,240, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 92, 96, 0, 0, 0, 0, 2, 23,165, 48, - 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 47,159, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0, 56, 49,159, 23, 1, 0, 0, 0,248, 45,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1838,12 +1555,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,254, 40, 1,203, 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, 68, 65, 84, 65, 0, 0, 1, 64, 9,242, 92, 96, - 0, 0, 0,196, 0, 0, 0, 1, 9,242, 93,208, 9,242, 90,240, 9,152,130,240, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 49,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 50,159, 23, 1, 0, 0, 0, @@ -1856,8 +1567,6 @@ char datatoc_startup_blend[]= { 0, 0, 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, 43, 1, 58, 0, 20, 0, 0, 0, 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, 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, 0, 1, 64, 9,242, 93,208, 0, 0, 0,196, 0, 0, 0, 1, 9,242, 95, 64, - 9,242, 92, 96, 9,152,132,160, 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, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 50,159, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,120, 52,159, 23, 1, 0, 0, 0, 56, 49,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1946,7 +1655,6 @@ char datatoc_startup_blend[]= { 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,255, 43, 1,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1963,7 +1671,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,254, 7, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,120, 65,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 67,159, 23, 1, 0, 0, 0, 216, 63,159, 23, 1, 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, @@ -2056,30 +1763,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161,253, 7, 1,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 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, 9,254, 87, 0, 0, 0, 21,255, 0, 0, 0,160, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 9,242,106,192, - 0, 0, 0,197, 0, 0, 0, 1, 11, 29, 7,176, 9,242, 88, 32, 11, 29,191,144, 9,242, 80, 80, 9,242, 80,144, 9,242, 79, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0,131, 15, 15, 6, 72, 0,132, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 23,133,112, 11, 29, 6,192, 11, 29, 6,192, 11, 29, 4,128, 11, 29, 5,160, 0, 0, 0, 0, 0, 0, 0, 0, - 9,244,136,240, 9,244, 58, 80, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 4,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 29, 5,160, - 0, 0, 0, 0, 0, 0, 0, 0, 68,140, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,201, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 71, 0, 0, 0, 0, 0, 0, 0, 25, 68,200,224, 0, 65,200, 0, 0, 68,200,224, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 6, 72, 0, 26, 6, 72, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0, 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, 2, 23,134,192, 9,254, 82,208, 9,254, 82,208, 0, 0, 0, 0, - 0, 0, 0, 0, 9,244, 59, 0, 9,244, 60, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 29, 5,160, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 29, 4,128,192, 64, 0, 0, 67,126, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, -194,103,218, 88, 67,141,147, 40, 0, 0, 0, 0, 66, 72, 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, 71, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 6, 71, 0, 0, 0, 18, 0, 0, 0,105, - 63,128, 0, 0, 66, 72, 0, 0, 72,146,124, 0, 66, 72, 0, 0, 61,204,204,205, 65, 32, 0, 0, 0, 72, 0, 0, 0, 0, 2, 0, - 0, 4, 4, 0, 0, 8, 6, 72, 0,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, 6, 71, 0, 0, 0, 26, 0, 0, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 72, 0,106, - 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, 2, 23,134, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,244, 61, 16, 9,244, 62,208, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0,188, 11, 29, 6,192, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,120, 78,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 80,159, 23, 1, 0, 0, 0, 216, 76,159, 23, 1, 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, @@ -2114,7 +1797,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,253, 7, 1,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 83,159, 23, 1, 0, 0, 0, 193, 0, 0, 0, 1, 0, 0, 0,248, 84,159, 23, 1, 0, 0, 0,184, 81,159, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2126,7 +1808,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 1,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 86,159, 23, 1, 0, 0, 0, @@ -2197,7 +1878,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,254, 7, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,184, 94,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 96,159, 23, 1, 0, 0, 0, 24, 93,159, 23, 1, 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, @@ -2267,7 +1947,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,255, 43, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,120,104,159, 23, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24,106,159, 23, 1, 0, 0, 0, 216,102,159, 23, 1, 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, @@ -3369,17 +3048,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241,252,143, 0, 9, 1, 20, 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, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,154,208, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,162, 32, - 11, 27,152, 0, 11, 29,251,240, 11, 29,252, 48, 11, 29,251,176, 11, 29,251,112, 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, - 0, 0, 1,141, 0, 0, 3,233, 1, 1, 3,251, 2, 93, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,161, 0, - 11, 27,161, 0, 11, 27,155, 96, 11, 27,159,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,155, 96, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,156,128, 0, 0, 0, 0, 0, 0, 0, 0, 68,113, 64, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,126,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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,250, - 0, 0, 0, 0, 0, 0, 0, 25, 68,126,128, 0, 65,200, 0, 0, 68,126,128, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,251, 0, 26, 3,251, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 69, 0, 0, 5, 63, 0, 0, 1,141, 0, 0, 1,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3,251, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0, 8, 77, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 78, 70, 27, 1, 0, 0, 0,104, 75, 70, 27, 1, 0, 0, 0, @@ -3392,13 +3060,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197,253,143, 0,146, 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, - 68, 65, 84, 65, 0, 0, 0,248, 11, 27,158,192, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,159,224, 11, 27,157,160, 0, 0, 0, 0, - 67, 52, 0, 0,196,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,109, 0, 0,195,145,128, 0, 0, 0, 0,163, - 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 2,144, 0, 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, 2,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 64, 0, 0, 0, 1, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,180, 2,145, 0,163, 2,145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 63, 0, 0, 5, 63, 0, 0, 1,167, 0, 0, 3,233, 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, 68, 65, 84, 65, 88, 1, 0, 0,168, 78, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 72, 80, 70, 27, 1, 0, 0, 0, 8, 77, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3511,13 +3172,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,252,163, 0, 36, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,178,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,177, 80, - 0, 0, 0, 0, 68,239,192, 0, 0, 0, 0, 0, 66, 28, 0, 0, 0, 0, 0, 0, 68,237,192, 0, 0, 0, 0, 0, 66,134, 0, 0, - 0, 0, 7,110, 0, 0, 7,127, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 7,109, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,127, 0, 67, 7,110, 0, 67, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,169, 0, 0, 3,235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,136, 94, 70, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 96, 70, 27, 1, 0, 0, 0,232, 92, 70, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3589,12 +3243,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 64, 11, 27,188, 32, 0, 0, 0,196, 0, 0, 0, 1, - 11, 27,189,144, 11, 27,186,176, 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,116,239, 79, 63,107, 67, 16,191,164, 29,183,189,148, 67,248,189, 1, 0, 0, 0, 0, 0,128, 63, 14, 80,109, 66, 1, 59, 14, 66,170,147,147, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, @@ -3617,7 +3265,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 5, 0, 0, 35, 3, 0, 0, 60, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 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, 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, 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,107, 70, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,108, 70, 27, 1, 0, 0, 0, 24,106, 70, 27, 1, 0, 0, 0, @@ -3648,8 +3295,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0,156, 5, 0, 0, 0, 0, 0, 0,230, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 4,231, 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,253,242, 1,124, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,111, 70, 27, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,104,115, 70, 27, 1, 0, 0, 0,136,104, 70, 27, 1, 0, 0, 0, @@ -5540,28 +5185,7 @@ char datatoc_startup_blend[]= { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 51, 71, 27, 1, 0, 0, 0, 88, 51, 71, 27, 1, 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, 2,249, 0, 0, 5,239, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2,247, 2, 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, 2,196,226, 32, 68, 65, 84, 65, 0, 0, 3, 68, 2,196,226, 32, 0, 0, 0,156, 0, 0, 0, 1, 63,140, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,193,141, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191,128, 1, 80,191,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,163,215,225, 0, 0, 0, 0, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,209,239, 69, - 63,105,119, 70,188, 89, 84,176, 0, 0, 0, 0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166, 0, 0, 0, 0, 63, 81,158,185, -190,185, 44, 35, 62,228, 61, 43, 0, 0, 0, 0, 65, 68, 96,164,192,173,121,111, 64,213,209,248, 63,128, 0, 0, 62,229,157,178, -191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, - 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 62,191,236,217, - 63, 85,117, 54,188, 70,246,224,182, 32,160, 0,190,136, 5,252, 62, 3, 33, 43, 63, 23,135,235, 53, 96, 0, 0,196, 25,104,215, - 67,135,132,133,195,167, 9, 37,194, 71,252,136, 68, 25, 54, 3,195,135, 87,158, 67,166,209,205, 66, 71,254,151, 62,209,239, 68, -190,205,177, 51, 63, 81,158,184, 0, 0, 0, 0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35, 0, 0, 0, 0,188, 89, 84,162, - 63,101, 33,166, 62,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,111,211,214, 63,128, 0, 0, 62,229,157,178, -191, 27,132, 30,191, 81,160,222,191, 81,158,184, 63,127, 90,117, 62,149,235,166, 62,185, 46, 9, 62,185, 44, 35,188,109,180,145, - 63,173, 60,212,190,228, 63,129,190,228, 61, 42, 0, 0, 0, 0, 0, 0, 0, 0, 65,111,132, 96, 65,111,211,214, 64, 45, 86, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 45, 86, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 55, 62, 92, -190,224,186, 56,190,148,203,237,190,234,236, 3, 65,111,211,214, 65,111,211,214, 0, 0, 0, 0, 0, 0, 0, 0, 59, 29,227,107, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 1, 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, @@ -5598,32 +5222,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,207,240, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,212,160, 11, 27,200,160, - 11, 31,177, 96, 11, 27,169,192, 11, 27,170, 0, 11, 27,169,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, - 0, 0, 1,103, 18, 18, 5,240, 1,104, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,211, 16, 11, 27,211, 16, - 11, 27,208,128, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,208,128, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,209,160, 0, 0, 0, 0, 0, 0, 0, 0, 67,160,128, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,190, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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,239, 0, 0, 0, 0, - 0, 0, 0, 25, 68,189,224, 0, 65,200, 0, 0, 68,189,224, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 5,240, 0, 26, 5,240, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5,240, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,209,160, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,208,128, - 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 67, 51, 0, 0, 0, 0, 0, 0, 68,187,224, 0, 0, 0, 0, 0, 67,167, 0, 0, - 0, 0, 5,223, 0, 0, 5,240, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5,222, 0, 0, 0, 0, 0, 0, 1, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 2, 2, 0, 0, 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 5,240, 1, 78, 5,223, 1, 78, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,239, 0, 0, 0, 26, 0, 0, 1,103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,240, 1, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 28, 11, 27,210,192, 0, 0, 0,177, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 4, 9,203,102, 96, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1,104, - 11, 27,211, 16, 0, 0, 0,178, 0, 0, 0, 1, 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, 11, 27,210,192, 11, 27,210,192, 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, 8, 59, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5671,68 +5271,17 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 4, 8, 0, 0, 4, 8, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,212,160, - 0, 0, 0,197, 0, 0, 0, 1, 11, 27,217,160, 11, 27,207,240, 11, 27,170,128, 11, 27,169, 64, 11, 27,169, 0, 11, 27,170,192, - 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3,167, 3, 3, 1,142, 0,187, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,215,112, 11, 27,215,112, 11, 27,213, 48, 11, 27,214, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,213, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,214, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 67,244,128, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 67,199, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,141, 0, 0, 0, 0, 0, 0, 0, 25, 67,198,128, 0, 65,200, 0, 0, 67,198,128, 0, - 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 1,142, 0, 26, 1,142, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, 0, 0, 7,126, 0, 0, 2,237, 0, 0, 3, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,214, 80, - 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,213, 48, 0, 0, 0, 0, 67,141,128, 0,194,244, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,190,128, 0,195, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1,125, 0, 0, 1,142, 0, 0, 0, 18, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1,124, 0, 0, 0, 18, 0, 0, 0,160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 6, 18, 0, 0, 0, 2, 3, 3, - 0, 0, 4, 12, 0, 6, 1,142, 0,161, 1,125, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,241, - 0, 0, 7,126, 0, 0, 3, 7, 0, 0, 3,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,142, 0,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, - 68, 65, 84, 65, 0, 0, 0,244, 11, 27,215,112, 0, 0, 0,166, 0, 0, 0, 1, 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, 11, 27,216,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 12, 11, 27,216,144, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 14, - 0, 0, 0, 14, 11, 27,216,208, 68, 65, 84, 65, 0, 0, 0,168, 11, 27,216,208, 0, 0, 0,219, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 1, 2,154,244, 32, 0, 19, 0, 0, 0, 1, 0, 1, 2,154,244, 32, 0, 20, 0, 0, 0, 1, 0, 1, 2,154,244, 32, - 0, 21, 0, 1, 0, 1, 0, 0, 2,154,244, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 31,176, 0, 0, 0, 0, 0, 1, 0, 1, - 2,174, 10, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 39, 32, 0, 0, 0, 0, 0, 1, 0, 1, 2,187,108, 32, 0, 0, 0, 0, - 0, 1, 0, 1, 11, 28, 37,112, 0, 0, 0, 0, 0, 1, 0, 1, 2,206,150, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 28, 64, - 0, 0, 0, 0, 0, 1, 0, 1, 2,212,100, 32, 0, 0, 0, 0, 0, 1, 0, 1, 11, 28, 27,176, 0, 21, 0, 0, 0, 1, 0, 1, - 2,154,244, 32, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,217,160, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,212,160, - 11, 27,169,192, 11, 27,168,192, 11, 27,171, 0, 11, 27,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, - 0, 0, 3,167, 9, 9, 2,248, 2, 63, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,196,230, 32, 2,196,230, 32, - 11, 27,218, 48, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,218, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,219, 80, 0, 0, 0, 0, 0, 0, 0, 0, 67,230, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68, 62, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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,247, 0, 0, 0, 0, - 0, 0, 0, 25, 68, 61,192, 0, 65,200, 0, 0, 68, 61,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 2,248, 0, 26, 2,248, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,105, 0, 0, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2,248, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,219, 80, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,218, 48, - 0, 0, 0, 0, 68,189,224, 0, 0, 0, 0, 0, 68, 22,192, 0, 68, 23,150,248, 68,100, 41, 8, 67, 62,224, 46, 67,206, 15,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,247, 0, 0, 0, 0, 0, 0, 2, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 35,215, 10, 68,122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 10, 2,248, 2, 37, 2,248, 2, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,247, 0, 0, 1,131, 0, 0, 3,167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,248, 2, 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, 68, 65, 84, 65, 0, 0, 2,136, 2,196,230, 32, 0, 0, 0,169, - 0, 0, 0, 1, 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, 32, 0, 0, 0, 0, 0, 12, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 61,204,204,205, 0, 0, 1,231, 0, 0, 1,243, - 0, 0, 1,122, 0, 0, 1,124, 0, 0, 1,231, 0, 0, 1,243, 0, 0, 0, 4, 0, 0, 1,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 0, 0, 0,152, 67, 71, 27, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, @@ -5834,7 +5383,9 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 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,174,255,202, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5857,101 +5408,12 @@ char datatoc_startup_blend[]= { 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, 83, 78, 0, 0, 0,148, 11, 27,220,208, 0, 0, 0,193, 0, 0, 0, 1, - 11, 27,245, 16, 11, 27,167, 64, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,221,144, 11, 27,223, 80, 11, 27,223,144, - 11, 27,226, 16, 11, 27,226, 80, 11, 27,234,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,221,144, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,221,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,221,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 16, 11, 27,221,144, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222, 80, 11, 27,221,208, - 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222, 80, 0, 0, 0,194, 0, 0, 0, 1, - 11, 27,222,144, 11, 27,222, 16, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,222,144, - 0, 0, 0,194, 0, 0, 0, 1, 11, 27,222,208, 11, 27,222, 80, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, - 0, 0, 0, 20, 11, 27,222,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 16, 11, 27,222,144, 0, 0, 0, 0, 7,126, 3,234, - 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,223, 80, 11, 27,222,208, - 0, 0, 0, 0, 3,200, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,223, 80, 0, 0, 0,194, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,223, 16, 0, 0, 0, 0, 3,200, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,144, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,223,208, 0, 0, 0, 0, 11, 27,221,208, 11, 27,222, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,223,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224, 16, 11, 27,223,144, 11, 27,221,208, - 11, 27,222,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224, 16, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,224, 80, 11, 27,223,208, 11, 27,222, 16, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,224, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,144, 11, 27,224, 16, 11, 27,222,144, 11, 27,222,208, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,224,208, 11, 27,224, 80, - 11, 27,222,144, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,224,208, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,225, 16, 11, 27,224,144, 11, 27,221,144, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,225, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225, 80, 11, 27,224,208, 11, 27,221,144, 11, 27,222,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,144, - 11, 27,225, 16, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,144, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,225,208, 11, 27,225, 80, 11, 27,222,208, 11, 27,223, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,225,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,226, 16, 11, 27,225,144, 11, 27,222, 80, - 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,226, 16, 0, 0, 0,195, 0, 0, 0, 1, - 0, 0, 0, 0, 11, 27,225,208, 11, 27,222, 80, 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, - 11, 27,226, 80, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,229, 32, 0, 0, 0, 0, 11, 27,222,144, 11, 27,221,208, 11, 27,222, 16, - 11, 27,222,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 11, 27,244,176, 11, 27,244,176, 11, 27,226,224, 11, 27,228, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,226,224, 0, 0, 0,198, 0, 0, 0, 1, - 11, 27,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, - 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,126, 0, 0, 0, 0, 0, 0, 0, 25, 68,239,192, 0, 65,200, 0, 0, - 68,239,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 7,127, - 0, 26, 7,127, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,127, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,228, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,226,224, 0, 0, 0, 0, 69,109,240, 0,192,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69,109,255,255,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 7,129, 0, 0, 0, 18, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 7,111, 0, 0, 0, 18, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 2, 0, 0, - 0, 1, 3, 3, 0, 2, 4, 0, 0, 10, 7,129, 0, 2, 7,112, 0, 1, 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, 5, 0, 0, 4, 5, 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, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,229, 32, 0, 0, 0,197, 0, 0, 0, 1, 11, 27,234,128, 11, 27,226, 80, - 11, 27,221,144, 11, 27,222,144, 11, 27,223, 16, 11, 27,223, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, - 0, 0, 3,233, 6, 6, 3,200, 3,234, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,234,114, 32, 2,234,114, 32, - 11, 27,229,176, 11, 27,233, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, - 11, 27,229,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,230,208, 0, 0, 0, 0, 0, 0, 0, 0, 67,215, 0, 0, 0, 0, 0, 0, - 65,208, 0, 0, 0, 0, 0, 0, 68,114, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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,199, 0, 0, 0, 0, - 0, 0, 0, 25, 68,113,192, 0, 65,200, 0, 0, 68,113,192, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 3, 0, 4, 0, 12, 0, 10, 3,200, 0, 26, 3,200, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3,199, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3,200, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,230,208, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,233, 96, 11, 27,229,176, - 0, 0, 0, 0, 67, 91, 0, 0,196,115,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 74,255,254,196,115,255,254, 0, 0, 0, 0, - 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 3,207, 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, 3,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 64, 0, 0, 0, 3, 10, 0, 0, 0, 1, 0, 7, 0, 18, 4, 0, 0, 6, 0,220, 3,208, 0,203, 3,208, 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, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 3,208, 0, 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, 11, 27,231,240, 11, 27,231,240, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 64, 11, 27,231,240, 0, 0, 0,196, - 0, 0, 0, 1, 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,255,152, 0,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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,233, 96, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,230,208, - 0, 0, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 67,128, 0, 0,191, 43, 51, 51, 63,213,153,154,191,131, 51, 51, 64, 1,153,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,236, 0, 0, 0, 0, 0, 0, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3,199, 0, 0, 0, 26, 0, 0, 3,233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,236, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 32,248, 2,234,114, 32, 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, 6, 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, 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, 65,240, 0, 0, 0, 0, 0, 0, 62,153,153,154, - 0, 0, 0, 0, 0, 0, 0,100, 62,153,153,154, 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, @@ -6073,6 +5535,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -6080,7 +5547,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, @@ -6272,7 +5738,6 @@ char datatoc_startup_blend[]= { 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, 96, 71, 27, 1, 0, 0, 0, 195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 95, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,233, 0,143, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6302,22 +5767,10 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, - 0, 0, 0,248, 11, 27,241, 80, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,242,112, 11, 27,238,192, 0, 0, 0, 0, 67, 35, 0, 0, -196,126,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 35, 0, 0,196,126,191,255, 0, 0, 0, 0, 0, 0, 0,163, 0, 0, 0,180, - 0, 0, 0, 18, 0, 0, 4, 12, 0, 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, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 0, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 4, 13, 0,163, 3,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,242,112, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, - 11, 27,241, 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, 0, 0, 0, 0, 0, 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,105, 0, 0, 7,126, 0, 0, 0, 26, 0, 0, 3,233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 22, 3,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 24,102, 71, 27, 1, 0, 0, 0, @@ -6420,60 +5873,6 @@ char datatoc_startup_blend[]= { 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, 4, 0, 0, 97, 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, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 3, 8, 8, 0, 0, 66, 12, 0, 0, 63,128, 0, 0, 61,204,204,205, - 67,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, 16, - 0, 10, 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, 83, 78, 0, 0, 0,148, 11, 27,245, 16, 0, 0, 0,193, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,220,208, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27,245,208, 11, 27,248,144, - 11, 27,248,208, 11, 27,253, 16, 11, 27,253, 80, 11, 28, 16,128, 0, 0, 0, 0, 0, 0, 0, 0, 2,154,244, 32, 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, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,245,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246, 80, 11, 27,245,208, 0, 0, 0, 0, - 0, 0, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,246,144, - 11, 27,246, 16, 0, 0, 0, 0, 7,126, 4, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,246,144, 0, 0, 0,194, - 0, 0, 0, 1, 11, 27,246,208, 11, 27,246, 80, 0, 0, 0, 0, 7,126, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,246,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 16, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 3,234, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247, 80, 11, 27,246,208, 0, 0, 0, 0, - 7,126, 3,234, 0, 0, 0, 1, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,247,144, - 11, 27,247, 16, 0, 0, 0, 0, 7,126, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,247,144, 0, 0, 0,194, - 0, 0, 0, 1, 11, 27,247,208, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, - 11, 27,247,208, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 16, 11, 27,247,144, 0, 0, 0, 0, 3, 80, 3,234, 0, 0, 0, 1, - 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 16, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248, 80, 11, 27,247,208, 0, 0, 0, 0, - 0, 0, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248, 80, 0, 0, 0,194, 0, 0, 0, 1, 11, 27,248,144, - 11, 27,248, 16, 0, 0, 0, 0, 3, 80, 1,232, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 20, 11, 27,248,144, 0, 0, 0,194, - 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,248, 80, 0, 0, 0, 0, 7,126, 0, 92, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,248,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 16, 0, 0, 0, 0, 11, 27,246, 16, 11, 27,246, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249, 80, 11, 27,248,208, - 11, 27,246, 16, 11, 27,246,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249, 80, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,249,144, 11, 27,249, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,249,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,249,208, 11, 27,249, 80, 11, 27,246,208, 11, 27,247, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,249,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 16, - 11, 27,249,144, 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 16, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250, 80, 11, 27,249,208, 11, 27,245,208, 11, 27,247,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,250,144, 11, 27,250, 16, 11, 27,246,208, - 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,250,144, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,250,208, 11, 27,250, 80, 11, 27,247,144, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,250,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 16, 11, 27,250,144, 11, 27,248, 16, 11, 27,248, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 16, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251, 80, 11, 27,250,208, - 11, 27,247,208, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251, 80, 0, 0, 0,195, - 0, 0, 0, 1, 11, 27,251,144, 11, 27,251, 16, 11, 27,247, 80, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 24, 11, 27,251,144, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,251,208, 11, 27,251, 80, 11, 27,246,144, 11, 27,248,144, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,251,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 16, - 11, 27,251,144, 11, 27,247,144, 11, 27,248,144, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 16, - 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252, 80, 11, 27,251,208, 11, 27,245,208, 11, 27,246,144, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252, 80, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,252,144, 11, 27,252, 16, 11, 27,247, 16, - 11, 27,247,208, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,252,144, 0, 0, 0,195, 0, 0, 0, 1, - 11, 27,252,208, 11, 27,252, 80, 11, 27,247, 80, 11, 27,248, 80, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, - 11, 27,252,208, 0, 0, 0,195, 0, 0, 0, 1, 11, 27,253, 16, 11, 27,252,144, 11, 27,246,208, 11, 27,248, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 24, 11, 27,253, 16, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 11, 27,252,208, - 11, 27,247, 80, 11, 27,248, 16, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 96, 11, 27,253, 80, 0, 0, 0,197, - 0, 0, 0, 1, 11, 28, 0, 32, 0, 0, 0, 0, 11, 27,246,208, 11, 27,246, 16, 11, 27,246, 80, 11, 27,247, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,126, 0, 0, 3,235, 0, 0, 4, 5, 7, 7, 7,127, 0, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 11, 28, 22,144, 11, 28, 22,144, 11, 27,253,224, 11, 27,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 27,253,224, 0, 0, 0,198, 0, 0, 0, 1, 11, 27,255, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,148, 32, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 68,239,224, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 104,121, 71, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 72,126, 71, 27, 1, 0, 0, 0,168,117, 71, 27, 1, 0, 0, 0, @@ -6545,8 +5944,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,255,203, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,248, 11, 28, 6,176, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 7,208, 11, 28, 5,144, -196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 7, 0, 0,196,112, 0, 0, 68,112, 0, 0,196, 7, 0, 0, 68, 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, 68, 65, 84, 65, 40, 1, 0, 0,168,131, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,133, 71, 27, 1, 0, 0, 0,152,128, 71, 27, 1, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, @@ -6572,8 +5969,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 12,192, - 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 13,224, 11, 28, 11,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6608,24 +6003,7 @@ char datatoc_startup_blend[]= { 232,140, 71, 27, 1, 0, 0, 0, 8,138, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 16, 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, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 16, 0, 0, 0, 1, 19, - 0, 0, 0, 1, 2,154,244, 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, 68, 65, 84, 65, - 0, 0, 0, 96, 11, 28, 16,128, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 11, 28, 9,240, 11, 27,248, 80, 11, 27,247,208, - 11, 27,247, 16, 11, 27,247, 80, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, 0, 0, 1,233, 0, 0, 3,233, 8, 8, 4, 46, - 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 21,144, 11, 28, 21,144, 11, 28, 17, 16, 11, 28, 20,112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,248, 11, 28, 17, 16, 0, 0, 0,198, - 0, 0, 0, 1, 11, 28, 18, 48, 0, 0, 0, 0, 0, 0, 0, 0, 67,245, 0, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, - 68,133,192, 0, 0, 0, 0, 0, 65,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 45, 0, 0, 0, 0, 0, 0, 0, 25, 68,133,160, 0, - 65,200, 0, 0, 68,133,160, 0, 65,200, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 4, 0, 12, - 0, 10, 4, 46, 0, 26, 4, 46, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 81, 0, 0, 7,126, - 0, 0, 1,233, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 46, 0, 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, 68, 65, 84, 65, - 0, 0, 0,248, 11, 28, 18, 48, 0, 0, 0,198, 0, 0, 0, 1, 11, 28, 19, 80, 11, 28, 17, 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, 75, 3, 0, 0, 75, 3, 0, 0, 43, 2, 0, 0, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6640,15 +6018,11 @@ char datatoc_startup_blend[]= { 217, 0, 0, 0, 75, 3, 0, 0, 43, 2, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 2, 27, 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, 7,126, 0, 0, 7,126, 0, 0, 2, 3, 0, 0, 3,233, 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, 68, 65, 84, 65,240, 0, 0, 0, 88,142, 71, 27, 1, 0, 0, 0,158, 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, - 68, 65, 84, 65, 0, 0, 0,216, 11, 28, 21,144, 0, 0, 0,163, 0, 0, 0, 1, 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, @@ -6670,11 +6044,6 @@ char datatoc_startup_blend[]= { 77, 3, 0, 0,118, 7, 0, 0, 17, 2, 0, 0, 42, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 4, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0, 5, 40, 2,154,244, 32, 0, 0, 0,154, 0, 0, 0, 1, - 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, 1, 0, 0, 0, 0, 0, 0, 11, 28, 22,240, 0, 0, 0, 0, 2,212,100, 32, 11, 28, 31,176, - 0, 0, 0, 0, 11, 28, 23,112, 11, 28, 24, 16, 11, 28, 23,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, 68, 65, 84, 65, 40, 1, 0, 0, 72,146, 71, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 184,147, 71, 27, 1, 0, 0, 0,216,144, 71, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6710,44 +6079,8 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 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, - 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 63,128, 0, 0, 63,128, 0, 0, 2,173, 0, 95, 63,217,153,154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 63,128, 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, 0, 0,172, 68, - 63,128, 0, 0, 67,171,166,102, 63,128, 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, 11, 17, 98, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 31, 35,112, 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, - 65, 28,204,205, 0, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 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, 2,128, 1,224, 0, 60, 0, 32, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 1, 0,180, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 7,128, 4, 56, 61,204,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 28,245,195, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 76, 11, 28, 22,240, 0, 0, 0, 8, 0, 0, 0, 1, 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, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 23,112, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 23,192, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 2,212, 1,226, 2,174, 10, 32, 68, 65, 84, 65, 0, 0, 0, 28, - 11, 28, 23,192, 0, 0, 0,130, 0, 0, 0, 1, 11, 28, 24, 16, 11, 28, 23,112, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 4, 0, - 3,167, 3, 37, 2,206,150, 32, 68, 65, 84, 65, 0, 0, 0, 28, 11, 28, 24, 16, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, - 11, 28, 23,192, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 4, 0, 0,160, 2, 69, 2,212,100, 32, 68, 65, 84, 65, 0, 0, 1,152, - 11, 28, 24, 96, 0, 0, 0,150, 0, 0, 0, 1, 11, 28, 26, 32, 11, 28, 26,112, 11, 28, 26,192, 63,128, 0, 0, 0, 1, 0, 1, - 63, 76,204,205, 66,180, 0, 0, 0, 9, 0, 1, 63,128, 0, 0, 58,131, 18,111, 61,204,204,205, 0, 0, 0, 1, 0, 32, 0, 32, - 0, 32, 0, 1, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 2,212, 24, 32, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 80, 2, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 5, 0, 5,255,255, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66,200, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 72, 0, 0, 0, 0, 0, 0, - 62,128, 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, - 63,128, 0, 0, 60, 35,215, 10, 61,204,204,205, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 61,204,204,205, 61,204,204,205, - 63,166,102,102, 63,192, 0, 0, 65,240, 0, 0, 63,122,225, 72, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 2, 67, 0, 3, 2, 0, 1, 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, 17, 0, 0, 0, 0, 0, 35, 63,121,197,204, - 63, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 36, 11, 28, 26, 32, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0, -255,255,255,128, 0, 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 36, 11, 28, 26,112, 0, 0, 0,149, 0, 0, 0, 1, 2,199, 36, 32, 0, 0, 0, 0,200,200,255,128, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 88, 11, 28, 26,192, - 0, 0, 0,148, 0, 0, 0, 1, 2,209, 48, 32, 0, 0, 0, 0,255,100,100,128, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 1, 65,231, 7,124, 65, 20, 74,255, 63,123, 86, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16, 6, 0, 0, 56,106,106, 3, 1, 0, 0, 0, @@ -6779,42 +6112,12 @@ char datatoc_startup_blend[]= { 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, 11, 28, 33, 80, - 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 33, 80, 0, 0, 0, 11, 0, 0, 0, 1, 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, 79, 66, 0, 0, 4, 44, 2,212,100, 32, - 0, 0, 0,116, 0, 0, 0, 1, 2,174, 10, 32, 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, 1, 4, 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, 64,239,101,110, -192,208, 62,150, 64,170,255, 78, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,141,254, 42, 60, 49, 57,192, - 63, 80,159, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 47,149,222, 63, 58, 70, 53,188, 49, 56,222, 0, 0, 0, 0, -190,162,126, 86, 62,159,251,227, 63,101, 53, 55, 0, 0, 0, 0, 63, 39,165, 7,191, 28, 84,149, 62,227,247, 51, 0, 0, 0, 0, - 64,239,101,110,192,208, 62,150, 64,170,255, 78, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 1, 51,128, 0, 1,179, 0, 0, 1, 0, 0, 0, 0, - 51, 0, 0, 0, 63,128, 0, 0, 51,128, 0, 1, 0, 0, 0, 0,179, 0, 0, 2,167, 0, 0, 2, 63,128, 0, 1, 0, 0, 0, 0, - 53, 0, 0, 1, 41, 0, 0, 1,168,128, 0, 1, 63,128, 0, 0, 63, 47,149,221,190,162,126, 86, 63, 39,165, 8, 0, 0, 0, 0, - 63, 58, 70, 51, 62,159,251,225,191, 28, 84,149, 0, 0, 0, 0,188, 49, 56,192, 63,101, 53, 55, 62,227,247, 52, 0, 0, 0, 0, -190,173, 38, 90,190,192,222, 0,193, 52, 9,152, 63,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, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, - 0, 0, 0, 0, 79, 66, 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, -201,150,180, 56, 63,128, 0, 0, 63, 16,225,187, 63,128, 0, 0, 62,204,204,205, 63, 32, 54,237, 0, 0, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,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, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 11, 28, 33,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, 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, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 33,160, - 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,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, 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,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, @@ -6908,48 +6211,13 @@ char datatoc_startup_blend[]= { 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, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 68, 79, 66, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, - 0, 0, 0, 0,201,150,180, 56, 63,128, 0, 0, 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 11, 28, 34, 96, - 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, 10,124,118,224, - 10,120, 52, 80, 0, 0, 0, 25, 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, 68, 65, 84, 65, 0, 0, 0, 4, - 9,255, 60,240, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,121, 96, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0,144, 11, 28, 34, 96, 0, 0, 0,119, 0, 0, 0, 1, 0, 0,192, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,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, 61,204,204,205, 62, 76,204,205, 60,163,215, 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, 11, 28, 28, 64, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, - 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, 64,130,112,154, 63,128,178,183, 64,188,236,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, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 38,123,229, 61, 98, 43, 87, 63,238,229,229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,190,148,236, 54, 63,116,134, 25,189, 98, 13,236, 0, 0, 0, 0,191, 69,102,221,190, 76,174, 57, - 63, 26,194, 34, 0, 0, 0, 0, 63, 16,255, 37, 62, 95,161,241, 63, 75,111,164, 0, 0, 0, 0, 64,130,112,154, 63,128,178,183, - 64,188,236,112, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 50,128, 0, 1,179, 0, 0, 0, 0, 0, 0, 0, 50,128, 0, 1, 63,128, 0, 1, - 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 39, 0, 0, 1, 52, 0, 0, 1, - 39,128, 0, 1, 63,128, 0, 0,190,148,236, 54,191, 69,102,221, 63, 16,255, 38, 0, 0, 0, 0, 63,116,134, 24,190, 76,174, 57, - 62, 95,161,239, 0, 0, 0, 0,189, 98, 13,237, 63, 26,194, 35, 63, 75,111,166, 0, 0, 0, 0, 63, 13, 19,209,190,102, 65,241, -192,231, 10, 10, 63,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, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 79, 66, 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,201,150,180, 56, 63,128, 0, 0, - 60,208, 19,169, 63,128, 0, 0, 62,204,204,205, 62, 34,208,229, 0, 0, 0, 0, 61,117,194,143, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 5, 0, 1, 0, 0, 0, 63,128, 0, 0, 63,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, 1, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, @@ -6966,21 +6234,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120,168, 71, 27, 1, 0, 0, 0, 8, 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, 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, - 11, 28, 37, 32, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 26,148,111, 63, 26,148,111, 63, 26,148,111, 61, 76,204,205, 61,204,204,205, 63,166,102,102, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 35,224, 0, 0, 0, 24, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 37,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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 37, 32, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 52, 0, 52, 2,213, 70, 32, 9,237,224, 32, 68, 65, 84, 65, - 0, 0, 16, 0, 2,213, 70, 32, 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, 87, 79, 0, 0,232, 1, 0, 0, 24,169, 71, 27, 1, 0, 0, 0,126, 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, @@ -6994,14 +6247,8 @@ char datatoc_startup_blend[]= { 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, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,152,182, 71, 27, 1, 0, 0, 0,200,173, 71, 27, 1, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,171, 71, 27, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, @@ -7035,9 +6282,6 @@ char datatoc_startup_blend[]= { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,150, 67, 0, 0, 22, 67, 0, 0, 40, 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 8,241, 55, 2, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,104,176, 71, 27, 1, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, @@ -9859,19 +9103,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 48, 11, 28, 37,112, 0, 0, 0, 31, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 64,160, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 32, 0, 0, 0, 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, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 60,204,204,205, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 28, 38,208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 32, 11, 28, 38,208, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 32, - 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 1, 0, 16, 0, 15, 2,215,150, 32, 9,238,128, 32, 68, 65, 84, 65, - 0, 0, 16, 0, 2,215,150, 32, 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, @@ -9999,8 +9230,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,144, 0, 9,238,128, 32, 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, @@ -11235,19 +10464,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 24, 11, 28, 39, 32, 0, 0, 0, 46, 0, 0, 0, 1, 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, 1, 0, 0, 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,253,172, 32, - 11, 28, 46,112, 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 41,224, 11, 28, 44, 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, 11, 28, 40, 96, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 28, 42,176, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 28, 44,240, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 51,128, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 4, 63,128, 0, 4, 63,128, 0, 0, 0, 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, 68, 65, 84, 65, 0, 0, 0, 4, 9,253,172, 32, 0, 0, 0, 0, - 0, 0, 0, 1, 2,187,108, 32, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 40, 96, 0, 0, 1, 84, 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, 11, 28, 41,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11256,15 +10473,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,160, 11, 28, 41,224, 0, 0, 0, 52, - 0, 0, 0, 8, 63,128, 0, 0, 63,127,255,255,191,128, 0, 0, 73,230, 73,230,182, 26, 1, 0, 63,128, 0, 0,191,128, 0, 0, -191,128, 0, 0, 73,230,182, 26,182, 26, 1, 0,191,128, 0, 1,191,127,255,253,191,128, 0, 0,182, 26,182, 26,182, 26, 1, 0, -191,127,255,250, 63,128, 0, 3,191,128, 0, 0,182, 26, 73,230,182, 26, 1, 0, 63,128, 0, 4, 63,127,255,247, 63,128, 0, 0, - 73,230, 73,230, 73,230, 1, 0, 63,127,255,245,191,128, 0, 5, 63,128, 0, 0, 73,230,182, 26, 73,230, 1, 0,191,128, 0, 3, -191,127,255,250, 63,128, 0, 0,182, 26,182, 26, 73,230, 1, 0,191,127,255,255, 63,128, 0, 0, 63,128, 0, 0,182, 26, 73,230, - 73,230, 1, 0, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 42,176, 0, 0, 1, 84, 0, 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, 11, 28, 44, 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, 0, @@ -11273,39 +10482,10 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0,144, 11, 28, 44, 48, 0, 0, 0, 49, 0, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 2, - 0, 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 35, - 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 5, 0, 0, 0, 6, - 0, 0, 0, 35, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 35, 68, 65, 84, 65, 0, 0, 1, 84, 11, 28, 44,240, 0, 0, 1, 84, - 0, 0, 0, 5, 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, 11, 28, 46,112, 0, 0, 0, 6, 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, 67,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,241,113, 73, 96, 0, 0, 0, 6, 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, 67,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,241,113, 73, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 0,120, - 11, 28, 46,112, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, - 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, - 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, - 0, 0, 0, 2, 0, 0, 66, 82, 0, 0, 2,204, 2,216,154, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,216,158, 32, 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, 1, 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, 0, 0, 0, 0, - 11, 28, 48, 80, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, @@ -11313,42 +10493,12 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,154,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 48, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 49,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 49,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,216,158, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,195, 38, 32, 2,216,154, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 49,240, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, @@ -11356,23 +10506,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, - 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,216,158,108, 0, 0, 0, 24, - 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 49,240, - 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 51, 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, 0, @@ -11385,42 +10518,11 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,195, 38,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 51,144, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, - 61,194,189, 46, 11, 28, 52,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 52,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,195, 42, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 66, 32, - 2,195, 38, 32, 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, 1, 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, - 0, 0, 0, 0, 11, 28, 53, 48, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, @@ -13908,22 +13010,7 @@ char datatoc_startup_blend[]= { 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 54,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,153, 66, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,153, 70, 32, 2,195, 42, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 54,208, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13951,22 +13038,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 0, 48, 11, 28, 56, 16, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, - 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 82, 0, 0, 2,204, 2,153, 70, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,197,122, 32, 2,153, 66, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 56,112, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,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, @@ -13991,23 +13062,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 51, 51, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,153, 70,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 56,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54, -191,126,215, 14, 61,194,189, 46, 11, 28, 57,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, @@ -14041,13 +13096,13 @@ char datatoc_startup_blend[]= { 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, 72, 41, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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,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, @@ -14055,23 +13110,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 35, - 0, 4, 6, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, - 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,197,122,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 58, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,190,175, 97,228, 63,112,131, 50,191,127,243,218,188,157,183, 10, 11, 28, 59, 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, 12, 0, 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, @@ -14092,22 +13130,7 @@ char datatoc_startup_blend[]= { 54,189,194, 61, 14,215,126,191, 46,189,194, 61,200, 42, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 59, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 64, 0, 0, 61, 35,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,197,126, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 36, 32, 2,197,122, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 59,176, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -14167,36 +13190,16 @@ char datatoc_startup_blend[]= { 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,168, 51, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 59,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, - 11, 28, 60,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 60,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 36, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,199, 40, 32, 2,197,126, 32, - 0, 20, 1,160, 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, 3, 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, 0, 0, 0, 0, - 11, 28, 61, 80, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, @@ -14220,23 +13223,7 @@ char datatoc_startup_blend[]= { 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, 53, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 8, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199, 36,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 61, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, -186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 62,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -14258,21 +13245,7 @@ char datatoc_startup_blend[]= { 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 62,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,199, 40, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,211,232, 32, 2,199, 36, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 62,240, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, @@ -14300,13 +13273,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 64, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,211,232, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,211,236, 32, 2,199, 40, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 64,144, 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,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, @@ -14332,11 +13298,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,211,232,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 2, 0, 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, @@ -14358,21 +13319,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 65,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,211,236, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,196,250, 32, - 2,211,232, 32, 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, 1, 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, - 0, 0, 0, 0, 11, 28, 66, 48, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,128, 63, 0, 0,128, 63, @@ -14397,23 +13343,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,211,236,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 66, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 67,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, 12, 0, 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, @@ -14434,22 +13364,7 @@ char datatoc_startup_blend[]= { 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,184, 68, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 67,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,196,250, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,196,254, 32, 2,211,236, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 67,208, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -14474,22 +13389,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63, 64, 0, 0, - 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,196,250,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 67,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 69, 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, @@ -14534,23 +13433,7 @@ char datatoc_startup_blend[]= { 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, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,196,254,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 69,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 70,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -14589,13 +13472,13 @@ char datatoc_startup_blend[]= { 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,200, 82, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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,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, @@ -14603,23 +13486,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 35, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,158, 64,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 71, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 72, 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, 2, 0, 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, @@ -14640,22 +13506,7 @@ char datatoc_startup_blend[]= { 46, 95,255,186,224,255,127,191,114, 97,255,186, 72, 84, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 72, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, - 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,158, 68, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 10, 32, 2,158, 64, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 72,176, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -14715,36 +13566,16 @@ char datatoc_startup_blend[]= { 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, 40, 93, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 72,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, - 11, 28, 73,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 73,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 10, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,207, 14, 32, 2,158, 68, 32, - 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, 1, 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, 0, 0, 0, 0, - 11, 28, 74, 80, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, @@ -14768,23 +13599,7 @@ char datatoc_startup_blend[]= { 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, 94, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,207, 10,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 74, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,126,215, 14, - 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 75,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -14806,21 +13621,7 @@ char datatoc_startup_blend[]= { 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 75,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,207, 14, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,205,210, 32, 2,207, 10, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 75,240, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, @@ -14848,13 +13649,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 77, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, - 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,205,210, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,205,214, 32, 2,207, 14, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 77,144, 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,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, @@ -14880,11 +13674,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 62,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,205,210,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 12, 0, 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, @@ -14906,21 +13695,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 78,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,205,214, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 44, 32, - 2,205,210, 32,253, 21,192, 32, 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, 1, 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, - 0, 0, 0, 0, 11, 28, 79, 48, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,128, 63, 0, 0,128, 63, @@ -14945,23 +13719,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 1, 4, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,205,214,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 79, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 80,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, 12, 0, 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, @@ -14982,22 +13740,7 @@ char datatoc_startup_blend[]= { 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, 56,110, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 80,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,209, 44, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,209, 48, 32, 2,205,214, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 80,208, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15022,22 +13765,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62,199,174, 20, 62,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 44,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 80,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 82, 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, @@ -15082,23 +13809,7 @@ char datatoc_startup_blend[]= { 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, 2, 0, 0, 0, 35, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 63, 78,119,160, 63,128, 0, 0, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 62,199,174, 20, 63,128, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,209, 48,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 82,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 83,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15137,13 +13848,13 @@ char datatoc_startup_blend[]= { 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, 72,124, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 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,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, @@ -15151,23 +13862,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 35, - 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,199,162,108, 0, 0, 0, 24, 0, 0, 0, 1, - 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 84, 16, 0, 0, 1, 79, - 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0,191,126,215, 14, 61,194,189, 54,191,126,215, 14, 61,194,189, 46, 11, 28, 85, 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, 6, 0, 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, @@ -15188,22 +13882,7 @@ char datatoc_startup_blend[]= { 46, 95,255,186,224,255,127,191,114, 97,255,186,200,125, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 85, 80, - 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, - 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, - 2,199,166, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,174, 32, 2,199,162, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 85,176, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, @@ -15263,36 +13942,16 @@ char datatoc_startup_blend[]= { 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,168,134, 72, 27, 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, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 11, 28, 85,176, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, - 11, 28, 86,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 86,240, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,174, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,198,178, 32, 2,199,166, 32, - 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, 1, 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, 0, 0, 0, 0, - 11, 28, 87, 80, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, 0, 0, 0, 0, 0, 0, 0, @@ -15316,23 +13975,7 @@ char datatoc_startup_blend[]= { 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,136, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, - 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,198,174,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 87, 80, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224, -186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 88,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15354,21 +13997,7 @@ char datatoc_startup_blend[]= { 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, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 88,144, 0, 0, 1, 77, 0, 0, 0, 4, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,198,178, 32, 0, 0, 1, 83, - 0, 0, 0, 1, 2,212, 20, 32, 2,198,174, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 88,240, 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, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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, @@ -15396,13 +14025,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, - 11, 28, 90, 48, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, - 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, - 0, 0, 2,204, 2,212, 20, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,212, 24, 32, 2,198,178, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 90,144, 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,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, @@ -15428,11 +14050,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, - 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, - 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 0, 1, 16, 2,212, 20,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 16, 0, 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, @@ -15454,21 +14071,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 91,208, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 62,128, 0, 0, 63,107,133, 31, 0, 0, 0, 0, 63, 64, 0, 0, 61,163,215, 10, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,212, 24, 32, 0, 0, 1, 83, 0, 0, 0, 1, 2,215,240, 32, - 2,212, 20, 32, 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, 2, 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, - 0, 0, 0, 0, 11, 28, 92, 48, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,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,128, 63, 0, 0,128, 63, @@ -15493,23 +14095,7 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 8, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62,199,174, 20, - 62,199,174, 20, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,212, 24,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 92, 48, 0, 0, 1, 79, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, -191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 93,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, 2, 0, 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, @@ -15530,22 +14116,7 @@ char datatoc_startup_blend[]= { 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,184,151, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 93,112, 0, 0, 1, 77, - 0, 0, 0, 4, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, - 61,117,194,143, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 2,204, 2,215,240, 32, - 0, 0, 1, 83, 0, 0, 0, 1, 2,215,244, 32, 2,212, 24, 32, 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, 1, 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, 0, 0, 0, 0, 11, 28, 93,208, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15570,22 +14141,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, - 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 2,215,240,108, - 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, - 11, 28, 93,208, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, - 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46,191,127,255,224,186,255, 97,114, 11, 28, 95, 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, @@ -15630,32 +14185,11 @@ char datatoc_startup_blend[]= { 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, 2, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 75, 63,102,102,102, 61,204,204,205, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 62,204,204,205, 0, 0, 0, 0, - 0, 0, 0, 33, 62, 0, 0, 0, 62,128, 0, 0, 63,128, 0, 0, 62,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 0, 1, 16, 2,215,244,108, 0, 0, 0, 24, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 62, 76,204,205, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, - 63,128, 0, 0, 68, 65, 84, 65, 0, 0, 1, 16, 11, 28, 95,112, 0, 0, 1, 79, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, - 0, 0, 0, 0, 63,128, 0, 0, 0, 4, 0, 0, 67,128, 0, 0, 0, 0, 0, 0, 63,128, 0, 0,191,127,255,224,186,255, 95, 46, -191,127,255,224,186,255, 97,114, 11, 28, 96,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 0, 0, 48, 11, 28, 96,176, 0, 0, 1, 77, 0, 0, 0, 4, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 62,128, 0, 0, 63,112,163,215, 0, 0, 0, 0, 63, 64, 0, 0, 61,117,194,143, 0, 0, 0, 0, - 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82, 0, 0, 13,144, 1, 89, 96, 32, 0, 0, 0,192, 0, 0, 0, 1, - 1, 17, 8, 33, 0, 0, 6, 63, 0, 0, 0, 5, 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, 16, 0, 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, @@ -15676,12 +14210,8 @@ char datatoc_startup_blend[]= { 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, 24,162, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, @@ -15705,7 +14235,6 @@ char datatoc_startup_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, @@ -15844,14 +14373,6 @@ char datatoc_startup_blend[]= { 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, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, - 63, 76,204,205, 63, 76,204,205, 63, 76,204,205, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, -191,100, 90, 30, 62,153,153,154, 63,102,102,102, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 62,254,250, 31, 63, 0, 0, 9, - 63, 25,153,156, 0, 0, 0, 0, 62, 76,204,205, 62, 76,204,205, 62, 76,204,205, 63,128, 0, 0, 63, 22,135, 44, 62,235,133, 32, - 62,125,243,184, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 63, 76, 73,195, 63, 86,135, 42, 63,128, 0, 0, 0, 0, 0, 0, - 61,135, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 62, 93, 47, 16,190,200,180, 58,190, 93, 47, 24, 0, 0, 0, 0, - 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0, 0, 0,128, 0, 0, 0, 0, 31,144, 0, 15, 0, 6, 0, 25, - 0, 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -15877,77 +14398,9 @@ char datatoc_startup_blend[]= { 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,216,182, 72, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 2, 0, 0, - 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 63,128, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, - 63, 0, 0, 0, 63,128, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,128, 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, 68, 65, 84, 65, 0, 0, 30, 80, 2,234,148, 32, 0, 0, 0,189, - 0, 0, 0, 1, 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, 0, 1, 0, 15,255,241, 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, 0, 1, 0, 0, 0, 25, 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, 0, 1, 0, 15,255,241, 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, 0, 1, 0, 15,255,241, 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, 0, 1,255,236, 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, 0, 1,255,236, 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, 0, 1, 0, 15,255,241, 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, 0, 25,255,236, 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, 0, 25,255,236, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 1, 0, 38, 0, 0, 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, 0, 1, 0, 5,255,251, 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, 0, 5,255,251, 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, 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,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,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,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, 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,255,255,255,128, - 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, -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,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, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, @@ -16082,7 +14535,7 @@ char datatoc_startup_blend[]= { 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,250,250,255,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, 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, 44, 44, 44,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, @@ -16124,7 +14577,7 @@ char datatoc_startup_blend[]= { 112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,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,204, 0,153,255, 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, + 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,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, @@ -16136,9 +14589,9 @@ char datatoc_startup_blend[]= { 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,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,204, 0,153,255, 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, + 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,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, @@ -16162,7 +14615,7 @@ char datatoc_startup_blend[]= { 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 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, 3, 0, 3, 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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 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, @@ -16179,7 +14632,7 @@ char datatoc_startup_blend[]= { 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,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 44, 44, 44,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, +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,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,204, 0,153,255, 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, @@ -16216,7 +14669,7 @@ char datatoc_startup_blend[]= { 0, 0, 0,255, 44, 44, 44,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,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,255,255,255,219, 37, 18,255,255, 32, 32,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,204, 0,153,255, 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, @@ -16256,7 +14709,7 @@ char datatoc_startup_blend[]= { 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,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, - 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, 3, 0, 4, 0, 155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,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,255,255,255,128, 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, @@ -16303,8 +14756,6 @@ char datatoc_startup_blend[]= { 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, 68, 65, 84, 65, 0, 0, 0, 72, 11, 28, 47,128, 0, 0, 0,190, - 0, 0, 0, 1, 11, 28, 97, 16, 11, 28, 47, 16,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, 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, 29, 72, 27, 1, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- cgit v1.2.3 From ba3621566938ba71877128e0628d360565d12b15 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 15:23:30 +0000 Subject: Cycles: attempt to fix OIIO include path on windows. --- intern/cycles/cmake/external_libs.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index c3a9e00ca10..dda24961339 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -36,7 +36,7 @@ ENDIF() # OpenImageIO FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib ${CYCLES_OIIO}/dist) -FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include ${CYCLES_OIIO}/dist) +FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h PATHS ${CYCLES_OIIO}/include ${CYCLES_OIIO}/dist) FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin ${CYCLES_OIIO}/dist) IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) @@ -76,7 +76,7 @@ IF(WITH_CYCLES_OSL) 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 ${CYCLES_OSL}/include ${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) -- cgit v1.2.3 From b57c87856d6d27f9829d47f0895ab4f86b1c865f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 29 Jun 2011 19:18:08 +0000 Subject: Cycles: cmake changes to make win32 use lib/windows for boost and openimageio. --- intern/cycles/cmake/external_libs.cmake | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index dda24961339..754ea825b31 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,3 +1,18 @@ +########################################################################### +# Windows lib directory libraries + +IF(WIN32) + if(CMAKE_CL_64) + set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64) + else() + set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows) + endif() + + SET(CYCLES_OIIO ${LIBDIR}/openimageio) + SET(CYCLES_BOOST ${LIBDIR}/boost) + SET(Boost_USE_STATIC_LIBS ON) +ENDIF() + ########################################################################### # Boost setup @@ -11,7 +26,7 @@ SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" SET(Boost_USE_MULTITHREADED ON) -FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system serialization thread) +FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) MESSAGE(STATUS "Boost found ${Boost_FOUND}") MESSAGE(STATUS "Boost version ${Boost_VERSION}") -- cgit v1.2.3 From 4ff22bd097e979e07622793d1f44d7419fb73efd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 30 Jun 2011 14:47:57 +0000 Subject: Cycles: OS X build system changes to use lib/ openimageio and boost. --- intern/cycles/CMakeLists.txt | 7 ++++-- intern/cycles/blender/CMakeLists.txt | 26 +++------------------ intern/cycles/cmake/external_libs.cmake | 40 +++++++++++++++++++++++++++------ 3 files changed, 41 insertions(+), 32 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 38be2f62ec4..8f8b431ada5 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -22,9 +22,12 @@ SET(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") # Paths +IF(UNIX AND NOT APPLE) + SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation") + SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation") +ENDIF() + SET(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation") -SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation") -SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation") SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation") SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 013c671468e..50cd8502720 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -87,7 +87,7 @@ IF(WIN32) DESTINATION ${CYCLES_INSTALL_PATH}/cycles) ENDIF() -IF(UNIX) +IF(UNIX AND NOT APPLE) # copy libraries to cycles lib directory SET(install_libs ${OPENIMAGEIO_LIBRARY} @@ -101,27 +101,7 @@ IF(UNIX) INSTALL(FILES ${install_libs} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) - IF(NOT APPLE) - # set path to look for dynamic libs - SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) - ELSE() - # modify our libs to looks for dynamic libs in cycles lib directory - SET(install_name_command "install_name_tool") - - FOREACH(lib ${install_libs}) - GET_FILENAME_COMPONENT(libname ${lib} NAME) - SET(install_name_command " ${install_name_command} -change ${lib} @loader_path/lib/${libname}") - SET(install_name_command " ${install_name_command} -change ${libname} @loader_path/lib/${libname}") - ENDFOREACH() - - INSTALL( - CODE - " - EXECUTE_PROCESS(COMMAND ${install_name_command} ${CYCLES_INSTALL_PATH}/cycles/libcycles_blender.so) - " - ) - ELSE() - ENDIF() + # set path to look for dynamic libs + SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) ENDIF() - diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 754ea825b31..6da71c8235f 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,16 +1,23 @@ ########################################################################### -# Windows lib directory libraries +# Windows and Darwin lib directory libraries IF(WIN32) - if(CMAKE_CL_64) - set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64) - else() - set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows) - endif() + IF(CMAKE_CL_64) + SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64) + ELSE() + SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows) + ENDIF() +ENDIF() +IF(APPLE) + SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin-9.x.universal) + SET(OIIO_STATIC ON) +ENDIF() + +IF(LIBDIR) SET(CYCLES_OIIO ${LIBDIR}/openimageio) SET(CYCLES_BOOST ${LIBDIR}/boost) - SET(Boost_USE_STATIC_LIBS ON) + SET(Boost_USE_STATIC_LIBS ON) ENDIF() ########################################################################### @@ -65,6 +72,25 @@ ENDIF() ADD_DEFINITIONS(-DWITH_OIIO) INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) +IF(OIIO_STATIC) + ADD_DEFINITIONS(-DOIIO_STATIC_BUILD) + + SET(OPENIMAGEIO_LIBRARY + ${OPENIMAGEIO_LIBRARY} + ${PNG_LIBRARIES} + ${JPEG_LIBRARIES} + ${TIFF_LIBRARY} + ${OPENEXR_LIBRARIES} + ${ZLIB_LIBRARIES}) + + LINK_DIRECTORIES( + ${JPEG_LIBPATH} + ${PNG_LIBPATH} + ${TIFF_LIBPATH} + ${OPENEXR_LIBPATH} + ${ZLIB_LIBPATH}) +ENDIF() + ########################################################################### # GLUT -- cgit v1.2.3 From d2c5549f8e17cf5a2e5939ef6728d9391fca576c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 1 Jul 2011 14:57:48 +0000 Subject: Cycles: fix crash with image texture nodes (on windows). --- intern/cycles/blender/CMakeLists.txt | 10 ++++++---- source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c | 2 +- source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 50cd8502720..8d7f2b1504b 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -66,8 +66,11 @@ ADD_DEPENDENCIES(cycles_blender bf_rna) IF(WIN32) TARGET_LINK_LIBRARIES(cycles_blender ${PYTHON_LINKFLAGS}) - TARGET_LINK_LIBRARIES(cycles_blender debug ${PYTHON_LIBRARIES}_d) - TARGET_LINK_LIBRARIES(cycles_blender optimized ${PYTHON_LIBRARIES}) + + FILE_LIST_SUFFIX(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d") + TARGET_LINK_LIBRARIES_DEBUG(cycles_blender "${PYTHON_LIBRARIES_DEBUG}") + TARGET_LINK_LIBRARIES_OPTIMIZED(cycles_blender "${PYTHON_LIBRARIES}") + UNSET(PYTHON_LIBRARIES_DEBUG) SET_TARGET_PROPERTIES(cycles_blender PROPERTIES PREFIX "lib") SET_TARGET_PROPERTIES(cycles_blender PROPERTIES SUFFIX ".pyd") @@ -82,8 +85,7 @@ INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles IF(WIN32) FILE(GLOB OIIO_DLLS "${CYCLES_OIIO}/bin/*.dll") - FILE(GLOB BOOST_DLLS "${CYCLES_BOOST}/lib/*.dll") - INSTALL(FILES ${OIIO_DLLS} ${BOOST_DLLS} + INSTALL(FILES ${OIIO_DLLS} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) ENDIF() diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c index bdcc9664a02..d295a899e51 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_environment.c @@ -68,7 +68,7 @@ static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack if(ibuf) { float u= (atan2f(vec[1], vec[0]) + (float)M_PI)/(2*M_PI); float v= atan2f(vec[2], hypotf(vec[0], vec[1]))/M_PI + 0.5f; - float rgb[3]; + float rgb[4]; ibuf_sample(ibuf, u, v, 0.0f, 0.0f, rgb); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c index 0a8fb0db109..702d2b91e99 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_tex_image.c @@ -66,7 +66,7 @@ static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); if(ibuf) { - float rgb[3]; + float rgb[4]; ibuf_sample(ibuf, vec[0], vec[1], 0.0f, 0.0f, rgb); -- cgit v1.2.3 From fe668b14380637216aa2c36e7ea708997f1e9e73 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 11:03:28 +0000 Subject: Cycles: fix blenderplayer build. --- source/blenderplayer/bad_level_call_stubs/stubs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 5629f0d9668..81270785650 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -43,6 +43,7 @@ struct ARegionType; struct Base; struct Brush; struct bNodeTree; +struct bNodeSocket; struct CSG_FaceIteratorDescriptor; struct CSG_VertexIteratorDescriptor; struct ColorBand; @@ -195,6 +196,7 @@ struct ImBuf *ED_space_image_buffer(struct SpaceImage *sima){return (struct ImBu void ED_screen_set_scene(struct bContext *C, struct Scene *scene){} void ED_area_tag_redraw_regiontype(struct ScrArea *sa, int regiontype){} +void ED_render_engine_changed(struct Main *bmain) {} struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob){return (struct PTCacheEdit *) NULL;} void PE_current_changed(struct Scene *scene, struct Object *ob){} @@ -362,6 +364,10 @@ void uiTemplateHistogram(struct uiLayout *layout, struct PointerRNA *ptr, char * 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 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) {} +void uiTemplateTextureShow(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop) {} /* rna render */ struct RenderResult *RE_engine_begin_result(struct RenderEngine *engine, int x, int y, int w, int h){return (struct RenderResult *) NULL;} @@ -369,6 +375,7 @@ struct RenderResult *RE_AcquireResultRead(struct Render *re){return (struct Rend struct RenderResult *RE_AcquireResultWrite(struct Render *re){return (struct RenderResult *) NULL;} struct RenderStats *RE_GetStats(struct Render *re){return (struct RenderStats *) NULL;} void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *result){} +void RE_engine_update_progress(struct RenderEngine *engine, float progress) {} void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result){} void RE_engine_update_stats(struct RenderEngine *engine, char *stats, char *info){} void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, char *filename){} @@ -380,6 +387,8 @@ int RE_engine_test_break(struct RenderEngine *engine){return 0;} void RE_engines_init() {} void RE_engines_exit() {} void RE_engine_report(struct RenderEngine *engine, int type, const char *msg) {} +ListBase R_engines = {NULL, NULL}; +void RE_engine_free(struct RenderEngine *engine); /* python */ struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;} -- cgit v1.2.3 From 87c141dabed12be9cde0a6a515217638eedfd454 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 8 Jul 2011 11:19:11 +0000 Subject: Cycles: another blenderplayer build fix. --- source/blenderplayer/bad_level_call_stubs/stubs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 81270785650..1ef9e7a54e9 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -388,7 +388,7 @@ void RE_engines_init() {} void RE_engines_exit() {} void RE_engine_report(struct RenderEngine *engine, int type, const char *msg) {} ListBase R_engines = {NULL, NULL}; -void RE_engine_free(struct RenderEngine *engine); +void RE_engine_free(struct RenderEngine *engine) {} /* python */ struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;} -- cgit v1.2.3 From 8318acd1299a44e0b8fd80522993e5367ef2cf07 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 7 Aug 2011 12:01:24 +0000 Subject: Cycles: remove docs from svn, moved to wiki. --- intern/cycles/CMakeLists.txt | 1 - intern/cycles/doc/CMakeLists.txt | 76 ---------------------------------------- 2 files changed, 77 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 8f8b431ada5..413952e8791 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -12,7 +12,6 @@ OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_CYCLES_DOCS "Build html documentation" OFF) OPTION(WITH_CYCLES_TEST "Build cycles test application" OFF) # Flags diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt index 96054f2bed5..584bcc8079c 100644 --- a/intern/cycles/doc/CMakeLists.txt +++ b/intern/cycles/doc/CMakeLists.txt @@ -1,79 +1,3 @@ INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".svn" EXCLUDE) -SET(doc_sources - index.html - - reference/camera.html - reference/curve.html - reference/devices.html - reference/film.html - reference/index.html - reference/integrator.html - reference/interactive.html - reference/lamp.html - reference/mesh.html - reference/motion_blur.html - reference/particle.html - reference/subdivision.html - reference/world.html - - reference/material/displacement.html - reference/material/index.html - reference/material/surface.html - reference/material/volume.html - - reference/shader/background.html - reference/shader/bsdf.html - reference/shader/color_operations.html - reference/shader/custom.html - reference/shader/emission.html - reference/shader/image_textures.html - reference/shader/index.html - reference/shader/input.html - reference/shader/output.html - reference/shader/procedural_textures.html - reference/shader/vector_operations.html - reference/shader/volume.html - reference/shader/volume_textures.html) - -SET(doc_extra - reference/camera_ortho.svg - reference/camera_persp.svg - reference/material/material.svg - reference/shader/bsdf.svg - style/style.css) - -SET(doc_templates - templates/footer.html - templates/header.html - templates/nodes.html - templates/reference.html) - -IF(WITH_CYCLES_DOCS) - MACRO(install_doc_file source_file html_file) - GET_FILENAME_COMPONENT(subdir ${source_file} PATH) - INSTALL( - FILES ${html_file} - DESTINATION ${CYCLES_INSTALL_PATH}/cycles/doc/${subdir}) - ENDMACRO() - - FOREACH(_file ${doc_sources}) - SET(source_file ${_file}) - SET(html_file ${CMAKE_CURRENT_BINARY_DIR}/${_file}) - ADD_CUSTOM_COMMAND( - OUTPUT ${html_file} - COMMAND python generate.py ${source_file} ${html_file} ${CYCLES_VERSION} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${source_file} ${doc_templates} generate.py) - LIST(APPEND html_files ${html_file}) - install_doc_file(${source_file} ${html_file}) - ENDFOREACH() - - FOREACH(_file ${doc_extra}) - install_doc_file(${_file} ${_file}) - ENDFOREACH() - - ADD_CUSTOM_TARGET(cycles_doc ALL DEPENDS ${html_files}) -ENDIF() - -- cgit v1.2.3 From 0f096883f9efdefca528105eef3fefff24666e36 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 8 Aug 2011 13:46:28 +0000 Subject: Cycles: fix missing update when clearing object transforms. --- source/blender/editors/object/object_transform.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index f7c6ff99bde..78f3537bea9 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -246,7 +246,7 @@ static int object_clear_transform_generic_exec(bContext *C, wmOperator *op, } /* tag for updates */ - ob->recalc |= OB_RECALC_OB; + DAG_id_tag_update(&ob->id, OB_RECALC_OB); } } CTX_DATA_END; @@ -341,7 +341,8 @@ static int object_origin_clear_exec(bContext *C, wmOperator *UNUSED(op)) negate_v3_v3(v3, v1); mul_m3_v3(mat, v3); } - ob->recalc |= OB_RECALC_OB; + + DAG_id_tag_update(&ob->id, OB_RECALC_OB); } CTX_DATA_END; @@ -871,7 +872,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) (ob->dup_group==ob_other->dup_group && (ob->transflag|ob_other->transflag) & OB_DUPLIGROUP) ) ) { ob_other->flag |= OB_DONE; - ob_other->recalc= OB_RECALC_OB|OB_RECALC_DATA; + DAG_id_tag_update(&ob_other->id, OB_RECALC_OB|OB_RECALC_DATA); copy_v3_v3(centn, cent); mul_mat3_m4_v3(ob_other->obmat, centn); /* ommit translation part */ @@ -890,11 +891,9 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - for (tob= bmain->object.first; tob; tob= tob->id.next) { - if(tob->data && (((ID *)tob->data)->flag & LIB_DOIT)) { - tob->recalc= OB_RECALC_OB|OB_RECALC_DATA; - } - } + for (tob= bmain->object.first; tob; tob= tob->id.next) + if(tob->data && (((ID *)tob->data)->flag & LIB_DOIT)) + DAG_id_tag_update(&tob->id, OB_RECALC_OB|OB_RECALC_DATA); if (tot_change) { DAG_ids_flush_update(bmain, 0); -- cgit v1.2.3 From 40886b6965062f84a7b3d8b73b79027e2a4e3caf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 8 Aug 2011 14:08:58 +0000 Subject: Cycles: fix missing texture space panels. --- intern/cycles/blender/addon/ui.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 4f171a78b99..b4aeaa8e7ab 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -465,16 +465,19 @@ def get_panels(): bpy.types.RENDER_PT_stamp, bpy.types.WORLD_PT_context_world, bpy.types.DATA_PT_context_mesh, + bpy.types.DATA_PT_context_camera, + bpy.types.DATA_PT_context_lamp, + bpy.types.DATA_PT_texture_space, + bpy.types.DATA_PT_curve_texture_space, + bpy.types.DATA_PT_mball_texture_space, bpy.types.DATA_PT_vertex_groups, bpy.types.DATA_PT_shape_keys, bpy.types.DATA_PT_uv_texture, bpy.types.DATA_PT_vertex_colors, - bpy.types.DATA_PT_custom_props_mesh, - bpy.types.DATA_PT_context_camera, bpy.types.DATA_PT_camera, bpy.types.DATA_PT_camera_display, + bpy.types.DATA_PT_custom_props_mesh, bpy.types.DATA_PT_custom_props_camera, - bpy.types.DATA_PT_context_lamp, bpy.types.DATA_PT_custom_props_lamp, bpy.types.TEXTURE_PT_clouds, bpy.types.TEXTURE_PT_wood, -- cgit v1.2.3 From abc601d10ee51aa8de83004094e2e6c73e96e2eb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 9 Aug 2011 18:53:54 +0000 Subject: Cycles: opencl 1.1 compatibility tweaks. --- intern/cycles/kernel/kernel_compat_opencl.h | 43 ++++++++++++++++------------- intern/cycles/kernel/kernel_path.h | 2 +- intern/cycles/kernel/kernel_types.h | 10 ++++++- intern/cycles/kernel/svm/svm_light_path.h | 2 +- intern/cycles/util/util_math.h | 4 +++ intern/cycles/util/util_types.h | 4 +++ 6 files changed, 43 insertions(+), 22 deletions(-) diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index 6ff9340e645..0127093d8ce 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -24,13 +24,14 @@ CCL_NAMESPACE_BEGIN -#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable - +/* in opencl all functions are device functions, so leave this empty */ #define __device #define __device_inline +/* no assert in opencl */ #define kernel_assert(cond) +/* manual implementation of interpolated 1D lookup */ __device float kernel_tex_interp_(__global float *data, int width, float x) { x = clamp(x, 0.0f, 1.0f)*width; @@ -42,6 +43,7 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) return (1.0f - t)*data[index] + t*data[nindex]; } +/* make_type definitions with opencl style element initializers */ #ifdef make_float2 #undef make_float2 #endif @@ -62,22 +64,13 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) #endif #define make_float2(x, y) ((float2)(x, y)) -#define make_float3(x, y, z) ((float3)(x, y, z, 0.0f)) +#define make_float3(x, y, z) ((float3)(x, y, z)) #define make_float4(x, y, z, w) ((float4)(x, y, z, w)) #define make_int2(x, y) ((int2)(x, y)) -#define make_int3(x, y, z) ((int3)(x, y, z, 0)) +#define make_int3(x, y, z) ((int3)(x, y, z)) #define make_int4(x, y, z, w) ((int4)(x, y, z, w)) -#ifdef float3 -#undef float3 -#endif -#ifdef int3 -#undef int3 -#endif - -typedef float4 float3; -typedef int4 int3; - +/* math functions */ #define __uint_as_float(x) as_float(x) #define __float_as_uint(x) as_uint(x) #define __int_as_float(x) as_float(x) @@ -88,13 +81,25 @@ typedef int4 int3; #define powf(x, y) pow(((float)x), ((float)y)) #define fabsf(x) fabs(((float)x)) #define copysignf(x, y) copysign(((float)x), ((float)y)) - +#define cosf(x) cos(((float)x)) +#define asinf(x) asin(((float)x)) +#define acosf(x) acos(((float)x)) +#define atanf(x) atan(((float)x)) +#define tanf(x) tan(((float)x)) +#define logf(x) log(((float)x)) +#define floorf(x) floor(((float)x)) +#define expf(x) exp(((float)x)) +#define hypotf(x, y) hypot(((float)x), ((float)y)) +#define atan2f(x, y) atan2(((float)x), ((float)y)) +#define fmaxf(x, y) fmax(((float)x), ((float)y)) +#define fminf(x, y) fmin(((float)x), ((float)y)) + +/* data lookup defines */ #define kernel_data (*kg->data) -#define kernel_tex_interp(t, x) \ - kernel_tex_interp_(kg->t, kg->t##_width, x) -#define kernel_tex_fetch(t, index) \ - kg->t[index] +#define kernel_tex_interp(t, x) kernel_tex_interp_(kg->t, kg->t##_width, x) +#define kernel_tex_fetch(t, index) kg->t[index] +/* define NULL */ #define NULL 0 #include "util_types.h" diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 15c7e67f101..47aeea4f5c5 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -129,7 +129,7 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray L += throughput*shader_eval_background(kg, &sd, path_flag); shader_release(kg, &sd); #else - L += throughputmake_float3(0.8f, 0.8f, 0.8f); + L += make_float3(0.8f, 0.8f, 0.8f); #endif break; } diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index fbe827b1791..992a4d95b54 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -27,6 +27,7 @@ CCL_NAMESPACE_BEGIN #define OBJECT_SIZE 16 +#define __SOBOL__ #define __INSTANCING__ #define __DPDU__ #define __UV__ @@ -34,8 +35,9 @@ CCL_NAMESPACE_BEGIN #define __EMISSION__ #define __CAUSTICS_TRICKS__ #define __SVM__ -#define __SOBOL__ +#ifndef __KERNEL_OPENCL__ #define __TEXTURES__ +#endif #define __RAY_DIFFERENTIALS__ #define __CAMERA_CLIPPING__ #define __INTERSECTION_REFINE__ @@ -286,9 +288,13 @@ typedef struct KernelCamera { /* differentials */ float3 dx; +#ifndef WITH_OPENCL float pad1; +#endif float3 dy; +#ifndef WITH_OPENCL float pad2; +#endif /* clipping */ float nearclip; @@ -321,7 +327,9 @@ typedef struct KernelSunSky { /* sun direction in spherical and cartesian */ float theta, phi, pad3, pad4; float3 dir; +#ifndef WITH_OPENCL float pad; +#endif /* perez function parameters */ float zenith_Y, zenith_x, zenith_y, pad2; diff --git a/intern/cycles/kernel/svm/svm_light_path.h b/intern/cycles/kernel/svm/svm_light_path.h index a4a461f9590..d6413d1569e 100644 --- a/intern/cycles/kernel/svm/svm_light_path.h +++ b/intern/cycles/kernel/svm/svm_light_path.h @@ -34,7 +34,7 @@ __device void svm_node_light_path(ShaderData *sd, float *stack, uint type, uint case NODE_LP_backfacing: info = (sd->flag & SD_BACKFACING)? 1.0f: 0.0f; break; } - stack_store_float(stack, out_offset, info? 1.0f: 0.0f); + stack_store_float(stack, out_offset, info); } CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 1bb3f5b6097..c435a9e17b8 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -38,12 +38,16 @@ CCL_NAMESPACE_BEGIN +#ifndef __KERNEL_OPENCL__ + #define M_PI_F ((float)3.14159265358979323846264338327950288) #define M_PI_2_F ((float)1.57079632679489661923132169163975144) #define M_PI_4_F ((float)0.785398163397448309615660845819875721) #define M_1_PI_F ((float)0.318309886183790671537767526745028724) #define M_2_PI_F ((float)0.636619772367581343075535053490057448) +#endif + /* Scalar */ #ifdef _WIN32 diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h index 02ab59a261f..12ae60f1143 100644 --- a/intern/cycles/util/util_types.h +++ b/intern/cycles/util/util_types.h @@ -70,9 +70,13 @@ CCL_NAMESPACE_BEGIN /* Shorter Unsigned Names */ +#ifndef __KERNEL_OPENCL__ + typedef unsigned char uchar; typedef unsigned int uint; +#endif + #ifndef __KERNEL_GPU__ /* Fixed Bits Types */ -- cgit v1.2.3 From b98ccf699878d70b7cbfdd7863440c34326a5569 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 10 Aug 2011 14:26:51 +0000 Subject: Cycles: amd opencl compatibility fixes. --- intern/cycles/kernel/kernel.cl | 1 - intern/cycles/kernel/kernel_shader.h | 4 ++++ intern/cycles/kernel/svm/bsdf_ward.h | 4 +--- intern/cycles/kernel/svm/svm_math.h | 11 ++++++++--- intern/cycles/kernel/svm/svm_texture.h | 6 +++--- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/intern/cycles/kernel/kernel.cl b/intern/cycles/kernel/kernel.cl index e1a9b3a0696..007a5f6de6a 100644 --- a/intern/cycles/kernel/kernel.cl +++ b/intern/cycles/kernel/kernel.cl @@ -51,7 +51,6 @@ __kernel void kernel_ocl_path_trace( int x = sx + get_global_id(0); int y = sy + get_global_id(1); - int w = kernel_data.cam.width; if(x < sx + sw && y < sy + sh) kernel_path_trace(kg, buffer, rng_state, pass, x, y); diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index f1abbda7ae5..c4fc65596b2 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -140,14 +140,18 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd, #endif /* detect instancing, for non-instanced the object index is -object-1 */ +#ifdef __INSTANCING__ bool instanced = false; if(sd->prim != ~0) { if(sd->object >= 0) instanced = true; else +#endif sd->object = -sd->object-1; +#ifdef __INSTANCING__ } +#endif /* smooth normal */ if(sd->shader < 0) { diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index 9f857b32468..c54418afa77 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -166,9 +166,7 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl h = h.x * X + h.y * Y + h.z * m_N; // generate the final sample float oh = dot(h, sd->I); - omega_in->x = 2 * oh * h.x - sd->I.x; - omega_in->y = 2 * oh * h.y - sd->I.y; - omega_in->z = 2 * oh * h.z - sd->I.z; + *omega_in = 2.0f * oh * h - sd->I; if(dot(sd->Ng, *omega_in) > 0) { float cosNI = dot(m_N, *omega_in); if(cosNI > 0) { diff --git a/intern/cycles/kernel/svm/svm_math.h b/intern/cycles/kernel/svm/svm_math.h index 401bd22b45a..bc2f774097e 100644 --- a/intern/cycles/kernel/svm/svm_math.h +++ b/intern/cycles/kernel/svm/svm_math.h @@ -21,7 +21,7 @@ CCL_NAMESPACE_BEGIN __device float safe_asinf(float a) { if(a <= -1.0f) - return -M_PI_2; + return -M_PI_2_F; else if(a >= 1.0f) return M_PI_2_F; @@ -114,15 +114,20 @@ __device float svm_math(NodeMath type, float Fac1, float Fac2) return Fac; } +__device float average_fac(float3 v) +{ + return (fabsf(v.x) + fabsf(v.y) + fabsf(v.z))/3.0f; +} + __device void svm_vector_math(float *Fac, float3 *Vector, NodeVectorMath type, float3 Vector1, float3 Vector2) { if(type == NODE_VECTOR_MATH_ADD) { *Vector = Vector1 + Vector2; - *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; + *Fac = average_fac(*Vector); } else if(type == NODE_VECTOR_MATH_SUBTRACT) { *Vector = Vector1 - Vector2; - *Fac = (fabsf(Vector->x) + fabsf(Vector->y) + fabsf(Vector->z))/3.0f; + *Fac = average_fac(*Vector); } else if(type == NODE_VECTOR_MATH_AVERAGE) { *Fac = len(Vector1 + Vector2); diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h index d4765cca384..0bf0cf8c2cd 100644 --- a/intern/cycles/kernel/svm/svm_texture.h +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -194,15 +194,15 @@ __device float noise_wave(NodeWaveType wave, float a) return 0.5f + 0.5f*sin(a); } else if(wave == NODE_WAVE_SAW) { - float b = 2*M_PI; + float b = 2.0f*M_PI_F; int n = (int)(a / b); a -= n*b; - if(a < 0) a += b; + if(a < 0.0f) a += b; return a / b; } else if(wave == NODE_WAVE_TRI) { - float b = 2*M_PI; + float b = 2.0f*M_PI_F; float rmax = 1.0f; return rmax - 2.0f*fabsf(floorf((a*(1.0f/b))+0.5f) - (a*(1.0f/b))); -- cgit v1.2.3 From 18d709022e3ad2208382157a566095c406504d24 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 10 Aug 2011 19:45:08 +0000 Subject: Cycles: clang build fixes. --- intern/cycles/bvh/bvh.h | 1 + intern/cycles/bvh/bvh_node.h | 1 + intern/cycles/device/device_multi.cpp | 2 +- intern/cycles/subd/subd_patch.h | 1 + intern/cycles/util/util_vector.h | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/intern/cycles/bvh/bvh.h b/intern/cycles/bvh/bvh.h index 6b877594422..79e46d6a13c 100644 --- a/intern/cycles/bvh/bvh.h +++ b/intern/cycles/bvh/bvh.h @@ -83,6 +83,7 @@ public: vector objects; static BVH *create(const BVHParams& params, const vector& objects); + virtual ~BVH() {} void build(Progress& progress); void refit(Progress& progress); diff --git a/intern/cycles/bvh/bvh_node.h b/intern/cycles/bvh/bvh_node.h index d83c006b93d..f8f0ffecd95 100644 --- a/intern/cycles/bvh/bvh_node.h +++ b/intern/cycles/bvh/bvh_node.h @@ -42,6 +42,7 @@ public: { } + virtual ~BVHNode() {} virtual bool is_leaf() const = 0; virtual int num_children() const = 0; virtual BVHNode *get_child(int i) const = 0; diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp index 26c9717233a..e48df93737d 100644 --- a/intern/cycles/device/device_multi.cpp +++ b/intern/cycles/device/device_multi.cpp @@ -244,7 +244,7 @@ public: mem.device_pointer = tmp; } - void draw_pixels(device_memory& rgba, int x, int y, int w, int h, int width, int height) + void draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height) { device_ptr tmp = rgba.device_pointer; int i = 0, sub_h = h/devices.size(); diff --git a/intern/cycles/subd/subd_patch.h b/intern/cycles/subd/subd_patch.h index 8d4b8a1c911..ac2317f4359 100644 --- a/intern/cycles/subd/subd_patch.h +++ b/intern/cycles/subd/subd_patch.h @@ -30,6 +30,7 @@ class Mesh; class Patch { public: + virtual ~Patch() {} virtual void eval(float3 *P, float3 *dPdu, float3 *dPdv, float u, float v) = 0; virtual bool is_triangle() = 0; virtual BoundBox bound() = 0; diff --git a/intern/cycles/util/util_vector.h b/intern/cycles/util/util_vector.h index fb872936e3f..931ad272612 100644 --- a/intern/cycles/util/util_vector.h +++ b/intern/cycles/util/util_vector.h @@ -21,6 +21,7 @@ /* Vector */ +#include #include CCL_NAMESPACE_BEGIN -- cgit v1.2.3 From 6686f189480c4de3e91f49a76811bf006ed9f9b2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 11 Aug 2011 12:36:08 +0000 Subject: Cycles: more opencl tweaks, status is: * kernel has shading nodes / textures disabled, amd/nvidia opencl compilers choke on these, need to figure out how to avoid this * works in cycles_test, not available as option in blender yet * kernel compiles and runs with opencl 1.1 from intel/amd/nvidia --- intern/cycles/app/cycles_test.cpp | 2 +- intern/cycles/device/device_opencl.cpp | 45 ++++++++++++++++------------- intern/cycles/kernel/CMakeLists.txt | 18 ++++++++---- intern/cycles/kernel/kernel_compat_opencl.h | 7 +++-- intern/cycles/kernel/kernel_types.h | 2 +- 5 files changed, 44 insertions(+), 30 deletions(-) diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp index 2603458f088..698974b6277 100644 --- a/intern/cycles/app/cycles_test.cpp +++ b/intern/cycles/app/cycles_test.cpp @@ -284,7 +284,7 @@ using namespace ccl; int main(int argc, const char **argv) { - path_init(); + path_init("../blender/intern/cycles"); options_parse(argc, argv); diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index ef416dfb8dc..34c92986f46 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -45,7 +45,7 @@ CCL_NAMESPACE_BEGIN class OpenCLDevice : public Device { public: - cl_context cxGPUContext; + cl_context cxContext; cl_command_queue cqCommandQueue; cl_platform_id cpPlatform; cl_device_id cdDevice; @@ -121,18 +121,27 @@ public: OpenCLDevice(bool background_) { background = background_; + vector platform_ids; + cl_uint num_platforms; /* setup device */ - ciErr = clGetPlatformIDs(1, &cpPlatform, NULL); + ciErr = clGetPlatformIDs(0, NULL, &num_platforms); opencl_assert(ciErr); + assert(num_platforms != 0); - ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_CPU, 1, &cdDevice, NULL); + platform_ids.resize(num_platforms); + ciErr = clGetPlatformIDs(num_platforms, &platform_ids[0], NULL); opencl_assert(ciErr); - cxGPUContext = clCreateContext(0, 1, &cdDevice, NULL, NULL, &ciErr); + cpPlatform = platform_ids[0]; /* todo: pick specified platform && device */ + + ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_ALL, 1, &cdDevice, NULL); + opencl_assert(ciErr); + + cxContext = clCreateContext(0, 1, &cdDevice, NULL, NULL, &ciErr); opencl_assert(ciErr); - cqCommandQueue = clCreateCommandQueue(cxGPUContext, cdDevice, 0, &ciErr); + cqCommandQueue = clCreateCommandQueue(cxContext, cdDevice, 0, &ciErr); opencl_assert(ciErr); /* compile kernel */ @@ -141,15 +150,11 @@ public: string build_options = ""; - //string csource = "../blender/intern/cycles"; - //build_options += "-I " + csource + "/kernel -I " + csource + "/util"; - - build_options += " -I " + path_get("kernel"); /* todo: escape path */ - - build_options += " -Werror"; - build_options += " -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END="; + string csource = "../blender/intern/cycles"; + build_options += "-I " + path_get("kernel") + " -I " + path_get("util"); /* todo: escape path */ + build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; - cpProgram = clCreateProgramWithSource(cxGPUContext, 1, (const char **)&source, &source_len, &ciErr); + cpProgram = clCreateProgramWithSource(cxContext, 1, (const char **)&source, &source_len, &ciErr); opencl_assert(ciErr); @@ -178,7 +183,7 @@ public: ckFilmConvertKernel = clCreateKernel(cpProgram, "kernel_ocl_tonemap", &ciErr); opencl_assert(ciErr); - null_mem = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); + null_mem = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); } ~OpenCLDevice() @@ -196,7 +201,7 @@ public: clReleaseKernel(ckFilmConvertKernel); clReleaseProgram(cpProgram); clReleaseCommandQueue(cqCommandQueue); - clReleaseContext(cxGPUContext); + clReleaseContext(cxContext); } string description() @@ -213,11 +218,11 @@ public: size_t size = mem.memory_size(); if(type == MEM_READ_ONLY) - mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY, size, NULL, &ciErr); + mem.device_pointer = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, size, NULL, &ciErr); else if(type == MEM_WRITE_ONLY) - mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_WRITE_ONLY, size, NULL, &ciErr); + mem.device_pointer = (device_ptr)clCreateBuffer(cxContext, CL_MEM_WRITE_ONLY, size, NULL, &ciErr); else - mem.device_pointer = (device_ptr)clCreateBuffer(cxGPUContext, CL_MEM_READ_WRITE, size, NULL, &ciErr); + mem.device_pointer = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_WRITE, size, NULL, &ciErr); opencl_assert(ciErr); } @@ -321,7 +326,7 @@ public: opencl_assert(ciErr); - size_t local_size[2] = {1, 1}; + size_t local_size[2] = {8, 8}; size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; /* run kernel */ @@ -389,7 +394,7 @@ public: opencl_assert(ciErr); - size_t local_size[2] = {1, 1}; + size_t local_size[2] = {8, 8}; size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; /* run kernel */ diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index bc1f8bd40a5..b6d758369cc 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -72,6 +72,12 @@ SET(svm_headers svm/volume.h ) +SET(util_headers + ../util/util_color.h + ../util/util_math.h + ../util/util_transform.h + ../util/util_types.h) + # CUDA module IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") @@ -118,11 +124,13 @@ ENDIF() # OPENCL kernel IF(WITH_CYCLES_OPENCL) - SET(util_headers - ../util/util_color.h - ../util/util_math.h - ../util/util_transform.h - ../util/util_types.h) + #SET(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) + #ADD_CUSTOM_COMMAND( + # OUTPUT ${kernel_preprocessed} + # COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${kernel_preprocessed} + # DEPENDS ${kernel_sources} ${util_headers}) + #ADD_CUSTOM_TARGET(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) + #INSTALL(FILES ${kernel_preprocessed} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) INSTALL(FILES kernel.cl ${headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) INSTALL(FILES ${svm_headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel/svm) diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index 0127093d8ce..3d493c61fe4 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -22,7 +22,10 @@ #define __KERNEL_GPU__ #define __KERNEL_OPENCL__ -CCL_NAMESPACE_BEGIN +/* no namespaces in opencl */ +#define CCL_NAMESPACE_BEGIN +#define CCL_NAMESPACE_END +#define WITH_OPENCL /* in opencl all functions are device functions, so leave this empty */ #define __device @@ -104,7 +107,5 @@ __device float kernel_tex_interp_(__global float *data, int width, float x) #include "util_types.h" -CCL_NAMESPACE_END - #endif /* __KERNEL_COMPAT_OPENCL_H__ */ diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 992a4d95b54..c0cb3fc8a09 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -34,8 +34,8 @@ CCL_NAMESPACE_BEGIN #define __BACKGROUND__ #define __EMISSION__ #define __CAUSTICS_TRICKS__ -#define __SVM__ #ifndef __KERNEL_OPENCL__ +#define __SVM__ #define __TEXTURES__ #endif #define __RAY_DIFFERENTIALS__ -- cgit v1.2.3 From b4343da77fb32c370e087ed71dd14d73178e0dba Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 11 Aug 2011 16:48:13 +0000 Subject: Cycles: fix missing update when removing or hiding objects. --- intern/cycles/blender/blender_sync.cpp | 4 ++++ source/blender/blenkernel/BKE_depsgraph.h | 1 + source/blender/blenkernel/intern/depsgraph.c | 7 ++++++- source/blender/editors/object/object_add.c | 1 + source/blender/editors/object/object_edit.c | 2 ++ source/blender/makesrna/intern/rna_main_api.c | 8 ++++++++ 6 files changed, 22 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 1bf85f13fca..1897ff13a64 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -60,6 +60,9 @@ BlenderSync::~BlenderSync() bool BlenderSync::sync_recalc() { + /* sync recalc flags from blender to cycles. actual update is done separate, + so we can do it later on if doing it immediate is not suitable */ + BL::BlendData::materials_iterator b_mat; for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); ++b_mat) @@ -104,6 +107,7 @@ bool BlenderSync::sync_recalc() object_map.has_recalc() || light_map.has_recalc() || mesh_map.has_recalc() || + BlendDataObjects_recalc_get(&b_data.ptr) || world_recalc; return recalc; diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h index f3a9e874152..9cbbcd8104a 100644 --- a/source/blender/blenkernel/BKE_depsgraph.h +++ b/source/blender/blenkernel/BKE_depsgraph.h @@ -126,6 +126,7 @@ void DAG_ids_flush_tagged(struct Main *bmain); void DAG_ids_check_recalc(struct Main *bmain); void DAG_ids_clear_recalc(struct Main *bmain); /* test if any of this id type is tagged for update */ +void DAG_id_type_tag(struct Main *bmain, short idtype); int DAG_id_type_tagged(struct Main *bmain, short idtype); /* (re)-create dependency graph for armature pose */ diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 096307f1df9..13a84e0452f 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2366,7 +2366,7 @@ void DAG_on_visible_update(Main *bmain, const short do_time) } /* hack to get objects updating on layer changes */ - bmain->id_tag_update['O'] = 1; + DAG_id_type_tag(bmain, ID_OB); } static void dag_id_flush_update__isDependentTexture(void *userData, Object *UNUSED(ob), ID **idpoin) @@ -2614,6 +2614,11 @@ void DAG_id_tag_update(ID *id, short flag) } } +void DAG_id_type_tag(struct Main *bmain, short idtype) +{ + bmain->id_tag_update[((char*)&idtype)[0]] = 1; +} + int DAG_id_type_tagged(Main *bmain, short idtype) { return bmain->id_tag_update[((char*)&idtype)[0]]; diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 5f398361734..fdb1b9dc549 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -803,6 +803,7 @@ void OBJECT_OT_group_instance_add(wmOperatorType *ot) /* 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); free_libblock_us(&bmain->object, base->object); if(scene->basact==base) scene->basact= NULL; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index c8d38218533..142c849eb7b 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -147,6 +147,7 @@ static int object_hide_view_clear_exec(bContext *C, wmOperator *UNUSED(op)) } } if (changed) { + DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); } @@ -199,6 +200,7 @@ static int object_hide_view_set_exec(bContext *C, wmOperator *op) CTX_DATA_END; if (changed) { + DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index d9bb1619ca5..7d6e1dd0567 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -63,6 +63,7 @@ #include "BKE_particle.h" #include "BKE_font.h" #include "BKE_node.h" +#include "BKE_depsgraph.h" #include "DNA_armature_types.h" #include "DNA_camera_types.h" @@ -508,6 +509,8 @@ void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, 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); } +static int rna_Main_objects_recalc_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } + #else void RNA_api_main(StructRNA *srna) @@ -590,6 +593,7 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataObjects"); srna= RNA_def_struct(brna, "BlendDataObjects", NULL); @@ -617,6 +621,10 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_objects_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_objects_recalc_get", NULL); } void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) -- cgit v1.2.3 From 84d917dc6c9e9ff33d3490142e1e542331827b1a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:29:21 +0000 Subject: Cycles: clean up some unnecessary changes compared to trunk. --- intern/CMakeLists.txt | 1 - source/blender/blenkernel/intern/material.c | 4 -- source/blender/blenkernel/intern/object.c | 2 +- source/blender/blenkernel/intern/world.c | 2 +- source/blender/editors/include/ED_uvedit.h | 1 + source/blender/editors/screen/screen_edit.c | 4 +- source/blender/editors/space_node/node_ops.c | 1 + source/blender/editors/space_view3d/drawmesh.c | 66 +++++++++++----------- source/blender/editors/space_view3d/space_view3d.c | 6 +- source/blender/makesrna/intern/rna_access.c | 5 -- source/blender/modifiers/intern/MOD_subsurf.c | 2 +- .../blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c | 2 + source/blender/render/CMakeLists.txt | 10 ++-- source/creator/CMakeLists.txt | 1 + 14 files changed, 51 insertions(+), 56 deletions(-) diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index de2c0ab9459..fe30d6cfa0c 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -58,4 +58,3 @@ endif() if(WITH_IK_ITASC) add_subdirectory(itasc) endif() - diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 1d6de41f9e8..9c455e84109 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -653,10 +653,6 @@ Material *give_node_material(Material *ma) return NULL; } -/*Image *give_mesh_face_image(Object *ob, int face) -{ -}*/ - /* GS reads the memory pointed at in a specific ordering. There are, * however two definitions for it. I have jotted them down here, both, * but I think the first one is actually used. The thing is that diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index cdee63172e5..eb6dcf8b462 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -860,7 +860,7 @@ Lamp *copy_lamp(Lamp *la) for(a=0; amtex[a]) { - lan->mtex[a]= MEM_mallocN(sizeof(MTex), "copy_lamp"); + lan->mtex[a]= MEM_mallocN(sizeof(MTex), "copylamptex"); memcpy(lan->mtex[a], la->mtex[a], sizeof(MTex)); id_us_plus((ID *)lan->mtex[a]->tex); } diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 32b4a84c237..7e2ed426e0a 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -137,7 +137,7 @@ World *copy_world(World *wrld) if(wrld->preview) wrldn->preview = BKE_previewimg_copy(wrld->preview); - + return wrldn; } diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index d4b98cc3697..1f77dba1b03 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -35,6 +35,7 @@ struct ARegionType; struct EditFace; struct Image; +struct Main; struct ImageUser; struct MTFace; struct Object; diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 59a8a21ca4d..80a65d3224e 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -671,9 +671,9 @@ static void screen_test_scale(bScreen *sc, int winsizex, int winsizey) /* test for collapsed areas. This could happen in some blender version... */ /* ton: removed option now, it needs Context... */ - /* make each window at least HEADERY high */ + /* make each window at least ED_area_headersize() high */ for(sa= sc->areabase.first; sa; sa= sa->next) { - int headery= HEADERY+1; + int headery= ED_area_headersize()+1; if(sa->v1->vec.y+headery > sa->v2->vec.y) { /* lower edge */ diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index c0702a6ba71..6a49fc2898b 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -195,5 +195,6 @@ 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); + transform_keymap_for_space(keyconf, keymap, SPACE_NODE); } diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 7fe6d24ceb8..f520ecfe277 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -131,7 +131,7 @@ static int draw_mesh_face_select__setHiddenOpts(void *userData, int index) MEdge *med = &me->medge[index]; uintptr_t flags = (intptr_t) BLI_edgehash_lookup(data->eh, med->v1, med->v2); - if(me->drawflag & ME_DRAWEDGES){ + if(me->drawflag & ME_DRAWEDGES) { if(me->drawflag & ME_HIDDENEDGES) return 1; else @@ -223,7 +223,7 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac static int c_litmatnr; static int c_badtex; - if(clearcache) { + if (clearcache) { c_textured= c_lit= c_doublesided= -1; c_texface= (MTFace*) -1; c_litob= (Object*) -1; @@ -231,7 +231,7 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac c_badtex= 0; } - if(texface) { + if (texface) { lit = lit && (lit==-1 || texface->mode&TF_LIGHT); textured = textured && (texface->mode&TF_TEX); doublesided = texface->mode&TF_TWOSIDE; @@ -239,15 +239,15 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac textured = 0; } - if(doublesided!=c_doublesided) { - if(doublesided) glDisable(GL_CULL_FACE); + if (doublesided!=c_doublesided) { + if (doublesided) glDisable(GL_CULL_FACE); else glEnable(GL_CULL_FACE); c_doublesided= doublesided; } - if(textured!=c_textured || texface!=c_texface) { - if(textured ) { + if (textured!=c_textured || texface!=c_texface) { + if (textured ) { c_badtex= !GPU_set_tpage(texface, !(litob->mode & OB_MODE_TEXTURE_PAINT)); } else { GPU_set_tpage(NULL, 0); @@ -257,9 +257,9 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac c_texface= texface; } - if(c_badtex) lit= 0; - if(lit!=c_lit || litob!=c_litob || litmatnr!=c_litmatnr) { - if(lit) { + if (c_badtex) lit= 0; + if (lit!=c_lit || litob!=c_litob || litmatnr!=c_litmatnr) { + if (lit) { Material *ma= give_current_material_or_def(litob, litmatnr+1); float spec[4]; @@ -353,16 +353,16 @@ static void draw_textured_end(void) static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr) { - if(tface && (tface->mode&TF_INVISIBLE)) return 0; + if (tface && (tface->mode&TF_INVISIBLE)) return 0; - if(tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { + if (tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { glColor3ub(0xFF, 0x00, 0xFF); return 2; /* Don't set color */ - } else if(tface && tface->mode&TF_OBCOL) { + } else if (tface && tface->mode&TF_OBCOL) { glColor3ubv(Gtexdraw.obcol); return 2; /* Don't set color */ - } else if(!mcol) { - if(tface) glColor3f(1.0, 1.0, 1.0); + } else if (!mcol) { + if (tface) glColor3f(1.0, 1.0, 1.0); else { Material *ma= give_current_material(Gtexdraw.ob, matnr+1); if(ma) { @@ -381,13 +381,13 @@ static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr) } static int draw_tface__set_draw(MTFace *tface, MCol *mcol, int matnr) { - if(tface && (tface->mode&TF_INVISIBLE)) return 0; + if (tface && (tface->mode&TF_INVISIBLE)) return 0; - if(tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { + if (tface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE)) { return 2; /* Don't set color */ - } else if(tface && tface->mode&TF_OBCOL) { + } else if (tface && tface->mode&TF_OBCOL) { return 2; /* Don't set color */ - } else if(!mcol) { + } else if (!mcol) { return 1; /* Don't set color */ } else { return 1; /* Set color from mcol */ @@ -405,7 +405,7 @@ static void add_tface_color_layer(DerivedMesh *dm) finalCol = MEM_mallocN(sizeof(MCol)*4*dm->getNumFaces(dm),"add_tface_color_layer"); for(i=0;igetNumFaces(dm);i++) { - if(tface && (tface->mode&TF_INVISIBLE)) { + if (tface && (tface->mode&TF_INVISIBLE)) { if( mcol ) memcpy(&finalCol[i*4],&mcol[i*4],sizeof(MCol)*4); else @@ -415,20 +415,20 @@ static void add_tface_color_layer(DerivedMesh *dm) finalCol[i*4+j].r = 255; } } - else if(tface && mface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, mface[i].mat_nr, TF_TWOSIDE)) { + else if (tface && mface && set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, mface[i].mat_nr, TF_TWOSIDE)) { for(j=0;j<4;j++) { finalCol[i*4+j].b = 255; finalCol[i*4+j].g = 0; finalCol[i*4+j].r = 255; } - } else if(tface && tface->mode&TF_OBCOL) { + } else if (tface && tface->mode&TF_OBCOL) { for(j=0;j<4;j++) { finalCol[i*4+j].r = FTOCHAR(Gtexdraw.obcol[0]); finalCol[i*4+j].g = FTOCHAR(Gtexdraw.obcol[1]); finalCol[i*4+j].b = FTOCHAR(Gtexdraw.obcol[2]); } - } else if(!mcol) { - if(tface) { + } else if (!mcol) { + if (tface) { for(j=0;j<4;j++) { finalCol[i*4+j].b = 255; finalCol[i*4+j].g = 255; @@ -474,7 +474,7 @@ static int draw_tface_mapped__set_draw(void *userData, int index) MFace *mface = &me->mface[index]; MCol *mcol = (me->mcol)? &me->mcol[index]: NULL; const int matnr = mface->mat_nr; - if(mface->flag & ME_HIDE) return 0; + if (mface->flag & ME_HIDE) return 0; return draw_tface__set_draw(tface, mcol, matnr); } @@ -486,7 +486,7 @@ static int draw_em_tf_mapped__set_draw(void *userData, int index) MCol *mcol; int matnr; - if(efa->h) + if (efa->h) return 0; tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -500,7 +500,7 @@ static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmoot { Mesh *me = (Mesh*)userData; - if( (me->mface && me->mface[index].flag & ME_HIDE) || + if ( (me->mface && me->mface[index].flag & ME_HIDE) || (me->mtface && (me->mtface[index].mode & TF_INVISIBLE)) ) { return 0; @@ -539,7 +539,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) int matnr= mf->mat_nr; int mf_smooth= mf->flag & ME_SMOOTH; - if(!(mf->flag&ME_HIDE) && !(mode&TF_INVISIBLE) && (mode&TF_BMFONT)) { + if (!(mf->flag&ME_HIDE) && !(mode&TF_INVISIBLE) && (mode&TF_BMFONT)) { float v1[3], v2[3], v3[3], v4[3]; char string[MAX_PROPSTRING]; int characters, i, glattrib= -1, badtex= 0; @@ -556,8 +556,8 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) } else { badtex = set_draw_settings_cached(0, Gtexdraw.istex, tface, Gtexdraw.islit, Gtexdraw.ob, matnr, TF_TWOSIDE); - if(badtex) { - if(mcol) mcol+=4; + if (badtex) { + if (mcol) mcol+=4; continue; } } @@ -565,7 +565,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) ddm->getVertCo(ddm, mf->v1, v1); ddm->getVertCo(ddm, mf->v2, v2); ddm->getVertCo(ddm, mf->v3, v3); - if(mf->v4) ddm->getVertCo(ddm, mf->v4, v4); + if (mf->v4) ddm->getVertCo(ddm, mf->v4, v4); // The BM_FONT handling is in the gpu module, shared with the // game engine, was duplicated previously @@ -576,7 +576,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) if(!BKE_image_get_ibuf(tface->tpage, NULL)) characters = 0; - if(!mf_smooth) { + if (!mf_smooth) { float nor[3]; normal_tri_v3( nor,v1, v2, v3); @@ -587,7 +587,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) GPU_render_text(tface, tface->mode, string, characters, (unsigned int*)mcol, v1, v2, v3, (mf->v4? v4: NULL), glattrib); } - if(mcol) { + if (mcol) { mcol+=4; } } diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index e427cf36627..56025b40648 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -630,7 +630,6 @@ static void view3d_recalc_used_layers(ARegion *ar, wmNotifier *wmn, Scene *scene static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) { bScreen *sc; - RegionView3D *rv3d= ar->regiondata; /* context changes */ switch(wmn->category) { @@ -754,9 +753,10 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) break; case NC_SPACE: if(wmn->data == ND_SPACE_VIEW3D) { - if (wmn->subtype == NS_VIEW3D_GPU) + if (wmn->subtype == NS_VIEW3D_GPU) { + RegionView3D *rv3d= ar->regiondata; rv3d->rflag |= RV3D_GPULIGHT_UPDATE; - + } ED_region_tag_redraw(ar); } break; diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e91b9d892a5..4e4bb46669b 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1361,11 +1361,6 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR else prop->update(bmain, scene, ptr); } - else if(!(prop->flag & PROP_BUILTIN)) { - DAG_id_tag_update(ptr->id.data, OB_RECALC_ALL); - WM_main_add_notifier(NC_WINDOW, NULL); - } - if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index be6f976495b..6c825b213b8 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -111,7 +111,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, return result; } -static DerivedMesh *applyModifierEM(ModifierData *md, Object *ob, +static DerivedMesh *applyModifierEM(ModifierData *md, Object *UNUSED(ob), struct EditMesh *UNUSED(editData), DerivedMesh *derivedData) { diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c index 5cfc1f59336..91fd995dbbe 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c @@ -95,3 +95,5 @@ void register_node_type_sh_hue_sat(ListBase *lb) nodeRegisterType(lb, &ntype); } + + diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index fab042d8e9e..418c1b68d28 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -118,13 +118,13 @@ set(SRC intern/raytrace/vbvh.h ) -IF(WITH_PYTHON) - ADD_DEFINITIONS(-DWITH_PYTHON) - LIST(APPEND INC ../python ${PYTHON_INC}) +if(WITH_PYTHON) + add_definitions(-DWITH_PYTHON) + list(APPEND INC ../python ${PYTHON_INC}) endif() -IF(WITH_IMAGE_OPENEXR) - ADD_DEFINITIONS(-DWITH_OPENEXR) +if(WITH_IMAGE_OPENEXR) + add_definitions(-DWITH_OPENEXR) endif() if(WITH_MOD_SMOKE) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 2bb710b9ad8..43fec85b5bf 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -231,6 +231,7 @@ else() set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}) endif() + # ----------------------------------------------------------------------------- # Install Targets -- cgit v1.2.3 From 962377f26e51d148d343a91d46bcca4112aff6ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 13 Aug 2011 08:25:54 +0000 Subject: very minor issues with cmake files corrected. --- source/blender/nodes/CMakeLists.txt | 1 + source/blender/render/CMakeLists.txt | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 680fc13682b..96c59992b25 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -182,6 +182,7 @@ set(SRC intern/SHD_util.h intern/TEX_util.h intern/node_util.h + intern/SHD_nodes/SHD_noise.h ) if(WITH_PYTHON) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 418c1b68d28..f866e83c68e 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -120,7 +120,13 @@ set(SRC if(WITH_PYTHON) add_definitions(-DWITH_PYTHON) - list(APPEND INC ../python ${PYTHON_INC}) + list(APPEND INC + ../python + ) + + list(APPEND INC_SYS + ${PYTHON_INCLUDE_DIRS} + ) endif() if(WITH_IMAGE_OPENEXR) -- cgit v1.2.3 From 18387f3e3fc4e3fbb9f2cd27d49d12e56975e87c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Aug 2011 19:30:24 +0000 Subject: Cycles: fix small memory leak in image loading. --- intern/cycles/render/image.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index 5dc86837bcf..de3ab8edf48 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -135,6 +135,7 @@ bool ImageManager::file_load_image(Image *img, device_vector& tex_img) int components = spec.nchannels; if(!(components == 1 || components == 3 || components == 4)) { + in->close(); delete in; return false; } @@ -150,6 +151,7 @@ bool ImageManager::file_load_image(Image *img, device_vector& tex_img) AutoStride); in->close(); + delete in; if(components == 3) { for(int i = width*height-1; i >= 0; i--) { -- cgit v1.2.3 From 360fcd73fe2868ba32c65697e21ed1bbab8b649a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Aug 2011 16:15:34 +0000 Subject: Cycles: * add some (disabled) test code for using OpenImageIO in imbuf * link cycles, openimageio and boost into blender instead of a shared library * some cmakefile changes to simplify the code and follow conventions better * this may solve running cycles problems on windows XP, or give a different and hopefully more useful error message --- CMakeLists.txt | 103 ++++++++++- build_files/cmake/macros.cmake | 47 +++++ intern/cycles/CMakeLists.txt | 135 +++++++------- intern/cycles/app/CMakeLists.txt | 76 ++++---- intern/cycles/blender/CMakeLists.txt | 87 ++------- intern/cycles/blender/addon/engine.py | 16 +- intern/cycles/blender/blender_python.cpp | 4 +- intern/cycles/bvh/CMakeLists.txt | 8 +- intern/cycles/cmake/external_libs.cmake | 254 ++++++++------------------ intern/cycles/cmake/platforms.cmake | 27 --- intern/cycles/device/CMakeLists.txt | 8 +- intern/cycles/doc/CMakeLists.txt | 2 +- intern/cycles/doc/license/CMakeLists.txt | 13 ++ intern/cycles/kernel/CMakeLists.txt | 77 ++++---- intern/cycles/kernel/osl/CMakeLists.txt | 12 +- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 24 +-- intern/cycles/render/CMakeLists.txt | 10 +- intern/cycles/subd/CMakeLists.txt | 8 +- intern/cycles/util/CMakeLists.txt | 14 +- source/blender/editors/screen/area.c | 3 + source/blender/imbuf/CMakeLists.txt | 8 + source/blender/imbuf/IMB_imbuf_types.h | 12 -- source/blender/imbuf/intern/IMB_filetype.h | 18 ++ source/blender/imbuf/intern/filetype.c | 36 ++-- source/blender/imbuf/intern/openimageio.cpp | 237 ++++++++++++++++++++++++ source/blender/imbuf/intern/readimage.c | 37 +++- source/blender/imbuf/intern/util.c | 6 +- source/blender/imbuf/intern/writeimage.c | 2 +- source/blender/python/intern/CMakeLists.txt | 4 + source/blender/python/intern/bpy_interface.c | 5 + source/creator/CMakeLists.txt | 31 ++++ 31 files changed, 814 insertions(+), 510 deletions(-) delete mode 100644 intern/cycles/cmake/platforms.cmake create mode 100644 intern/cycles/doc/license/CMakeLists.txt create mode 100644 source/blender/imbuf/intern/openimageio.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b36b3b9fd7..bbd9598780d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,6 +190,14 @@ option(WITH_API_INSTALL "Copy API header files into the blender install fold # Cycles option(WITH_CYCLES "Enable Cycles Render Engine" ON) +OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) +OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) +OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF) +OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) +OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) +OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) +OPTION(WITH_CYCLES_TEST "Build cycles test application" 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) @@ -263,6 +271,16 @@ endif() TEST_SSE_SUPPORT() +# XXX hack +if(WITH_CYCLES) + set(WITH_OPENIMAGEIO ON) + set(WITH_BOOST ON) +endif() + +if(WITH_OPENIMAGEIO) + set(WITH_BOOST ON) +endif() + #----------------------------------------------------------------------------- # Initialize un-cached vars, avoid unused warning @@ -471,6 +489,44 @@ if(UNIX AND NOT APPLE) endif() endif() + if(WITH_BOOST) + if(CYCLES_BOOST) + set(BOOST ${CYCLES_BOOST} CACHE PATH "Boost Directory") + unset(CYCLES_BOOST CACHE) + else() + set(BOOST "/usr" CACHE PATH "Boost Directory") + endif() + + #set(Boost_ADDITIONAL_VERSIONS "1.46" "1.45" "1.44" + # "1.43" "1.43.0" "1.42" "1.42.0" + # "1.41" "1.41.0" "1.40" "1.40.0" + # "1.39" "1.39.0" "1.38" "1.38.0" + # "1.37" "1.37.0" "1.34.1" "1_34_1") + + set(BOOST_ROOT ${BOOST}) + set(Boost_USE_MULTITHREADED ON) + find_package(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) + + set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) + set(BOOST_LIBRARIES ${Boost_LIBRARIES}) + set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS}) + set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") + endif() + + if(WITH_OPENIMAGEIO) + if(CYCLES_OIIO) + set(OPENIMAGEIO ${CYCLES_OIIO} CACHE PATH "OpenImageIO Directory") + unset(CYCLES_OIIO CACHE) + else() + set(OPENIMAGEIO "/usr" CACHE PATH "OpenImageIO Directory") + endif() + + set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) + set(OPENIMAGEIO_LIBRARY OpenImageIO) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + set(OPENIMAGEIO_DEFINITIONS) + endif() + # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++") @@ -759,6 +815,24 @@ elseif(WIN32) set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") endif() + if(WITH_BOOST) + set(BOOST ${LIBDIR}/boost) + set(BOOST_INCLUDE_DIR ${BOOST}/include) + set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib") + set(BOOST_LIBRARIES libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} + libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX}) + set(BOOST_LIBPATH ${BOOST}/lib) + set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") + endif() + + if(WITH_OPENIMAGEIO) + set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) + set(OPENIMAGEIO_LIBRARY OpenImageIO) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + set(OPENIMAGEIO_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 @@ -1064,6 +1138,22 @@ elseif(APPLE) # linker needs "-weak_framework 3DconnexionClient" endif() + 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) + set(BOOST_LIBPATH ${BOOST}/lib) + set(BOOST_DEFINITIONS) + endif() + + if(WITH_OPENIMAGEIO) + set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) + set(OPENIMAGEIO_LIBRARY OpenImageIO ${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() + set(EXETYPE MACOSX_BUNDLE) set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g") @@ -1304,6 +1394,12 @@ add_subdirectory(source) add_subdirectory(intern) add_subdirectory(extern) +#----------------------------------------------------------------------------- +# Cycles + +if(WITH_CYCLES) + add_subdirectory(intern/cycles) +endif() #----------------------------------------------------------------------------- # Blender Application @@ -1317,13 +1413,6 @@ if(WITH_PLAYER) add_subdirectory(source/blenderplayer) endif() -#----------------------------------------------------------------------------- -# Cycles - -if(WITH_CYCLES) - add_subdirectory(intern/cycles) -endif() - #----------------------------------------------------------------------------- # CPack for generating packages include(build_files/cmake/packaging.cmake) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index ed200abd419..b991edcd5d4 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -164,6 +164,12 @@ macro(SETUP_LIBDIRS) if(WITH_IMAGE_TIFF) link_directories(${TIFF_LIBPATH}) endif() + if(WITH_BOOST) + link_directories(${BOOST_LIBPATH}) + endif() + if(WITH_OPENIMAGEIO) + link_directories(${OPENIMAGEIO_LIBPATH}) + endif() if(WITH_IMAGE_OPENJPEG AND UNIX AND NOT APPLE) link_directories(${OPENJPEG_LIBPATH}) endif() @@ -270,6 +276,12 @@ macro(setup_liblinks if(WITH_IMAGE_TIFF) target_link_libraries(${target} ${TIFF_LIBRARY}) endif() + if(WITH_BOOST) + target_link_libraries(${target} ${BOOST_LIBRARIES}) + endif() + if(WITH_OPENIMAGEIO) + target_link_libraries(${target} ${OPENIMAGEIO_LIBRARY}) + endif() if(WITH_IMAGE_OPENEXR) if(WIN32 AND NOT UNIX) file_list_suffix(OPENEXR_LIBRARIES_DEBUG "${OPENEXR_LIBRARIES}" "_d") @@ -569,3 +581,38 @@ macro(blender_project_hack_post) endif() endmacro() + +# pair of macros to allow libraries to be specify files to install, but to +# only install them at the end so the directories don't get cleared with +# the files in them. used by cycles to install addon. +macro(delayed_install + base + files + destination) + + foreach(f ${files}) + set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f}) + set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination}) + endforeach() +endmacro() + +# note this is a function instead of a macro so that ${BUILD_TYPE} in targetdir +# does not get expanded in calling but is preserved +function(delayed_do_install + targetdir) + + get_property(files GLOBAL PROPERTY DELAYED_INSTALL_FILES) + get_property(destinations GLOBAL PROPERTY DELAYED_INSTALL_DESTINATIONS) + + if(files) + list(LENGTH files n) + math(EXPR n "${n}-1") + + foreach(i RANGE ${n}) + list(GET files ${i} f) + list(GET destinations ${i} d) + install(FILES ${f} DESTINATION ${targetdir}/${d}) + endforeach() + endif() +endfunction() + diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 413952e8791..77ae0486d16 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -1,81 +1,80 @@ -SET(CYCLES_VERSION_MAJOR 0) -SET(CYCLES_VERSION_MINOR 0) -SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR}) - -# Options - -OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) -OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) -OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF) -OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) -OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) -OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_CYCLES_TEST "Build cycles test application" OFF) - -# Flags - -SET(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") -SET(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - -# Paths - -IF(UNIX AND NOT APPLE) - SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation") - SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation") -ENDIF() - -SET(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation") -SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") -SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation") -SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") -SET(CYCLES_GLEW "" CACHE PATH "Path to GLEW installation") - -# Install, todo: deduplicate install path code - -if(MSVC_IDE) - set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}) -elseif(APPLE) - set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE}) -else() - set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}) -endif() +set(CYCLES_INSTALL_PATH "scripts/addons/cycles") + +# External Libraries + +include(cmake/external_libs.cmake) + +# Build Flags + +set(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") +set(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") + +if(APPLE) + set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") +endif(APPLE) + +if(WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") + set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") +endif(WIN32) if(UNIX AND NOT APPLE) - if(WITH_INSTALL_PORTABLE) - set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) - else() - set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/share/blender/${BLENDER_VERSION}) - endif() -elseif(WIN32) - set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) -elseif(APPLE) - set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION}) + set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") +endif(UNIX AND NOT APPLE) + +# Definitions and Includes + +add_definitions(${BOOST_DEFINITIONS} ${OPENIMAGEIO_DEFINITIONS}) + +add_definitions(-DCCL_NAMESPACE_BEGIN=namespace\ ccl\ {) +add_definitions(-DCCL_NAMESPACE_END=}) + +if(WITH_CYCLES_NETWORK) + add_definitions(-DWITH_NETWORK) endif() -SET(CYCLES_INSTALL_PATH "${TARGETDIR_VER}/scripts/addons") +if(WITH_CYCLES_MULTI) + add_definitions(-DWITH_MULTI) +endif() -# External Libraries +if(WITH_CYCLES_CUDA) + add_definitions(-DWITH_CUDA) +endif() -INCLUDE(cmake/external_libs.cmake) +if(WITH_CYCLES_OSL) + add_definitions(-DWITH_OSL) +endif() + +if(WITH_CYCLES_PARTIO) + add_definitions(-DWITH_PARTIO) +endif() -# Platforms +if(WITH_CYCLES_OPENCL) + add_definitions(-DWITH_OPENCL) + include_directories(${OPENCL_INCLUDE_DIR}) + +endif() -INCLUDE(cmake/platforms.cmake) +include_directories( + ${BOOST_INCLUDE_DIR} + ${OPENIMAGEIO_INCLUDE_DIR} + ${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO) # Subdirectories -IF(WITH_CYCLES_BLENDER) - ADD_SUBDIRECTORY(blender) -ENDIF(WITH_CYCLES_BLENDER) - -ADD_SUBDIRECTORY(app) -ADD_SUBDIRECTORY(bvh) -ADD_SUBDIRECTORY(device) -ADD_SUBDIRECTORY(doc) -ADD_SUBDIRECTORY(kernel) -ADD_SUBDIRECTORY(render) -ADD_SUBDIRECTORY(subd) -ADD_SUBDIRECTORY(util) +if(WITH_CYCLES_BLENDER) + add_subdirectory(blender) +endif(WITH_CYCLES_BLENDER) + +add_subdirectory(app) +add_subdirectory(bvh) +add_subdirectory(device) +add_subdirectory(doc) +add_subdirectory(kernel) +add_subdirectory(render) +add_subdirectory(subd) +add_subdirectory(util) diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index c250662aecf..1d74c32ca28 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -1,5 +1,5 @@ -INCLUDE_DIRECTORIES( +include_directories( . ../device ../kernel @@ -9,51 +9,51 @@ INCLUDE_DIRECTORIES( ../render ../subd) -SET(LIBRARIES +set(LIBRARIES cycles_device cycles_kernel cycles_render cycles_bvh cycles_subd cycles_util - ${Boost_LIBRARIES} + ${BOOST_LIBRARIES} ${OPENGL_LIBRARIES} ${CYCLES_GLEW_LIBRARY} ${OPENIMAGEIO_LIBRARY}) -IF(WITH_CYCLES_TEST) - LIST(APPEND LIBRARIES ${GLUT_LIBRARIES}) -ENDIF() - -IF(WITH_CYCLES_OSL) - LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) -ENDIF() - -IF(WITH_CYCLES_PARTIO) - LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) -ENDIF() - -IF(WITH_CYCLES_OPENCL) - LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -ENDIF() - -IF(WITH_CYCLES_TEST) - ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) - TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) - INSTALL(TARGETS cycles_test DESTINATION ${CYCLES_INSTALL_PATH}/cycles) - - IF(UNIX AND NOT APPLE) - SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) - ENDIF() -ENDIF() - -IF(WITH_CYCLES_NETWORK) - ADD_EXECUTABLE(cycles_server cycles_server.cpp) - TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES}) - INSTALL(TARGETS cycles_server DESTINATION ${CYCLES_INSTALL_PATH}/cycles) - - IF(UNIX AND NOT APPLE) - SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) - ENDIF() -ENDIF() +link_directories(${OPENIMAGEIO_LIBPATH} ${BOOST_LIBPATH}) + +if(WITH_CYCLES_TEST) + list(APPEND LIBRARIES ${GLUT_LIBRARIES}) +endif() + +if(WITH_CYCLES_OSL) + list(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) +endif() + +if(WITH_CYCLES_PARTIO) + list(APPEND LIBRARIES ${PARTIO_LIBRARIES}) +endif() + +if(WITH_CYCLES_OPENCL) + list(APPEND LIBRARIES ${OPENCL_LIBRARIES}) +endif() + +if(WITH_CYCLES_TEST) + add_executable(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) + target_link_libraries(cycles_test ${LIBRARIES}) + + if(UNIX AND NOT APPLE) + set_target_properties(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) + endif() +endif() + +if(WITH_CYCLES_NETWORK) + add_executable(cycles_server cycles_server.cpp) + target_link_libraries(cycles_server ${LIBRARIES}) + + if(UNIX AND NOT APPLE) + set_target_properties(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) + endif() +endif() diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 8d7f2b1504b..324d35d5360 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -1,19 +1,18 @@ -SET(sources +set(sources blender_camera.cpp blender_mesh.cpp blender_object.cpp blender_python.cpp blender_session.cpp blender_shader.cpp - blender_sync.cpp) + blender_sync.cpp -SET(headers blender_sync.h blender_session.h blender_util.h) -SET(addonfiles +set(addonfiles addon/__init__.py addon/engine.py addon/enums.py @@ -21,7 +20,7 @@ SET(addonfiles addon/ui.py addon/xml.py) -INCLUDE_DIRECTORIES( +include_directories( ../render ../device ../kernel @@ -32,78 +31,30 @@ INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_DIRS} ${GLEW_INCLUDE_PATH}) -SET(LIBRARIES +set(LIBRARIES cycles_render cycles_bvh cycles_device cycles_kernel cycles_util - cycles_subd - ${Boost_LIBRARIES} - ${OPENGL_LIBRARIES} - ${OPENIMAGEIO_LIBRARY} - ${GLUT_LIBRARIES} - ${CYCLES_GLEW_LIBRARY} - ${BLENDER_LIBRARIES}) + cycles_subd) -IF(WITH_CYCLES_OSL) - LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) -ENDIF() +if(WITH_CYCLES_OSL) + list(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) +endif() -IF(WITH_CYCLES_PARTIO) - LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) -ENDIF() +if(WITH_CYCLES_PARTIO) + list(APPEND LIBRARIES ${PARTIO_LIBRARIES}) +endif() -IF(WITH_CYCLES_OPENCL) - LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -ENDIF() +if(WITH_CYCLES_OPENCL) + list(APPEND LIBRARIES ${OPENCL_LIBRARIES}) +endif() -LINK_DIRECTORIES(${PYTHON_LIBPATH}) -SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) +blender_add_lib(bf_intern_cycles "${sources}" "" "") -ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) -ADD_DEPENDENCIES(cycles_blender bf_rna) +add_dependencies(bf_intern_cycles bf_rna) +target_link_libraries(bf_intern_cycles ${LIBRARIES}) -IF(WIN32) - TARGET_LINK_LIBRARIES(cycles_blender ${PYTHON_LINKFLAGS}) - - FILE_LIST_SUFFIX(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d") - TARGET_LINK_LIBRARIES_DEBUG(cycles_blender "${PYTHON_LIBRARIES_DEBUG}") - TARGET_LINK_LIBRARIES_OPTIMIZED(cycles_blender "${PYTHON_LIBRARIES}") - UNSET(PYTHON_LIBRARIES_DEBUG) - - SET_TARGET_PROPERTIES(cycles_blender PROPERTIES PREFIX "lib") - SET_TARGET_PROPERTIES(cycles_blender PROPERTIES SUFFIX ".pyd") -ENDIF() - -TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) - -INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles) -INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles) - -# Install Dynamic Libraries - -IF(WIN32) - FILE(GLOB OIIO_DLLS "${CYCLES_OIIO}/bin/*.dll") - INSTALL(FILES ${OIIO_DLLS} - DESTINATION ${CYCLES_INSTALL_PATH}/cycles) -ENDIF() - -IF(UNIX AND NOT APPLE) - # copy libraries to cycles lib directory - SET(install_libs - ${OPENIMAGEIO_LIBRARY} - ${Boost_LIBRARIES} - ${OSL_LIBRARIES} - ${PARTIO_LIBRARIES}) - - LIST(REMOVE_ITEM install_libs optimized) - LIST(REMOVE_ITEM install_libs debug) - - INSTALL(FILES ${install_libs} - DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) - - # set path to look for dynamic libs - SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) -ENDIF() +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${addonfiles}" ${CYCLES_INSTALL_PATH}) diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index a78107735eb..6879efcb24e 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -19,12 +19,12 @@ import bpy def init(): - from cycles import libcycles_blender as lib + import libcycles_blender as lib import os.path lib.init(os.path.dirname(__file__)) def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): - from cycles import libcycles_blender as lib + import libcycles_blender as lib data = data.as_pointer() scene = scene.as_pointer() @@ -40,20 +40,20 @@ def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): def free(engine): if "session" in dir(engine): if engine.session: - from cycles import libcycles_blender as lib + import libcycles_blender as lib lib.free(engine.session) del engine.session def render(engine): - from cycles import libcycles_blender as lib + import libcycles_blender as lib lib.render(engine.session) def update(engine, data, scene): - from cycles import libcycles_blender as lib + import libcycles_blender as lib lib.sync(engine.session) def draw(engine, region, v3d, rv3d): - from cycles import libcycles_blender as lib + import libcycles_blender as lib v3d = v3d.as_pointer() rv3d = rv3d.as_pointer() @@ -95,10 +95,10 @@ def draw(engine, region, v3d, rv3d): blf.draw(fontid, substatus) def available_devices(): - from cycles import libcycles_blender as lib + import libcycles_blender as lib return lib.available_devices() def with_osl(): - from cycles import libcycles_blender as lib + import libcycles_blender as lib return lib.with_osl() diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 00d16edbf74..1e72e5f15f1 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -224,7 +224,9 @@ static struct PyModuleDef module = { CCL_NAMESPACE_END -PyMODINIT_FUNC PyInit_libcycles_blender() +extern "C" PyObject *CYCLES_initPython(); + +PyObject *CYCLES_initPython() { return PyModule_Create(&ccl::module); } diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt index 9ea3bc77461..b35c20b7a38 100644 --- a/intern/cycles/bvh/CMakeLists.txt +++ b/intern/cycles/bvh/CMakeLists.txt @@ -1,18 +1,18 @@ -INCLUDE_DIRECTORIES(. ../kernel ../kernel/svm ../render ../util ../device) +include_directories(. ../kernel ../kernel/svm ../render ../util ../device) -SET(sources +set(sources bvh.cpp bvh_build.cpp bvh_node.cpp bvh_sort.cpp) -SET(headers +set(headers bvh.h bvh_build.h bvh_node.h bvh_params.h bvh_sort.h) -ADD_LIBRARY(cycles_bvh ${sources} ${headers}) +add_library(cycles_bvh ${sources} ${headers}) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 6da71c8235f..01f3cc1af0d 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,227 +1,133 @@ -########################################################################### -# Windows and Darwin lib directory libraries - -IF(WIN32) - IF(CMAKE_CL_64) - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64) - ELSE() - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows) - ENDIF() -ENDIF() - -IF(APPLE) - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin-9.x.universal) - SET(OIIO_STATIC ON) -ENDIF() - -IF(LIBDIR) - SET(CYCLES_OIIO ${LIBDIR}/openimageio) - SET(CYCLES_BOOST ${LIBDIR}/boost) - SET(Boost_USE_STATIC_LIBS ON) -ENDIF() - -########################################################################### -# Boost setup - -SET(BOOST_ROOT ${CYCLES_BOOST}) - -SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" - "1.43" "1.43.0" "1.42" "1.42.0" - "1.41" "1.41.0" "1.40" "1.40.0" - "1.39" "1.39.0" "1.38" "1.38.0" - "1.37" "1.37.0" "1.34.1" "1_34_1") - -SET(Boost_USE_MULTITHREADED ON) - -FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) - -MESSAGE(STATUS "Boost found ${Boost_FOUND}") -MESSAGE(STATUS "Boost version ${Boost_VERSION}") -MESSAGE(STATUS "Boost include dirs ${Boost_INCLUDE_DIRS}") -MESSAGE(STATUS "Boost library dirs ${Boost_LIBRARY_DIRS}") -MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}") - -INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}") -LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}") - -ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB) - -IF(WITH_CYCLES_NETWORK) - ADD_DEFINITIONS(-DWITH_NETWORK) -ENDIF() - -IF(WITH_CYCLES_MULTI) - ADD_DEFINITIONS(-DWITH_MULTI) -ENDIF() - -########################################################################### -# OpenImageIO - -FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib ${CYCLES_OIIO}/dist) -FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h PATHS ${CYCLES_OIIO}/include ${CYCLES_OIIO}/dist) -FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin ${CYCLES_OIIO}/dist) - -IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) - SET(OPENIMAGEIO_FOUND TRUE) - MESSAGE(STATUS "OpenImageIO includes = ${OPENIMAGEIO_INCLUDES}") - MESSAGE(STATUS "OpenImageIO library = ${OPENIMAGEIO_LIBRARY}") -ELSE() - MESSAGE(STATUS "OpenImageIO not found") -ENDIF() - -ADD_DEFINITIONS(-DWITH_OIIO) -INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) - -IF(OIIO_STATIC) - ADD_DEFINITIONS(-DOIIO_STATIC_BUILD) - - SET(OPENIMAGEIO_LIBRARY - ${OPENIMAGEIO_LIBRARY} - ${PNG_LIBRARIES} - ${JPEG_LIBRARIES} - ${TIFF_LIBRARY} - ${OPENEXR_LIBRARIES} - ${ZLIB_LIBRARIES}) - - LINK_DIRECTORIES( - ${JPEG_LIBPATH} - ${PNG_LIBPATH} - ${TIFF_LIBPATH} - ${OPENEXR_LIBPATH} - ${ZLIB_LIBPATH}) -ENDIF() ########################################################################### # GLUT -IF(WITH_CYCLES_TEST) - SET(GLUT_ROOT_PATH ${CYCLES_GLUT}) +if(WITH_CYCLES_TEST) + set(GLUT_ROOT_PATH ${CYCLES_GLUT}) - FIND_PACKAGE(GLUT) - MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") + find_package(GLUT) + message(STATUS "GLUT_FOUND=${GLUT_FOUND}") - INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) -ENDIF() + include_directories(${GLUT_INCLUDE_DIR}) +endif() -IF(WITH_BUILTIN_GLEW) - SET(CYCLES_GLEW_LIBRARY extern_glew) -ELSE() - SET(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY}) -ENDIF() +if(WITH_BUILTIN_GLEW) + set(CYCLES_GLEW_LIBRARY extern_glew) +else() + set(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY}) +endif() ########################################################################### # OpenShadingLanguage -IF(WITH_CYCLES_OSL) +if(WITH_CYCLES_OSL) + + set(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation") - MESSAGE(STATUS "CYCLES_OSL = ${CYCLES_OSL}") + 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) + 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() + 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() - ADD_DEFINITIONS(-DWITH_OSL) - INCLUDE_DIRECTORIES(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec) + include_directories(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec) -ENDIF() +endif() ########################################################################### # Partio -IF(WITH_CYCLES_PARTIO) +if(WITH_CYCLES_PARTIO) - MESSAGE(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}") + set(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") - FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib) - FIND_PATH(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include) + message(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}") - FIND_PACKAGE(ZLIB) + find_library(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib) + find_path(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include) - IF(PARTIO_INCLUDES AND PARTIO_LIBRARIES AND ZLIB_LIBRARIES) - LIST(APPEND PARTIO_LIBRARIES ${ZLIB_LIBRARIES}) - SET(PARTIO_FOUND TRUE) - MESSAGE(STATUS "PARTIO includes = ${PARTIO_INCLUDES}") - MESSAGE(STATUS "PARTIO library = ${PARTIO_LIBRARIES}") - ELSE() - MESSAGE(STATUS "PARTIO not found") - ENDIF() + find_package(ZLIB) - ADD_DEFINITIONS(-DWITH_PARTIO) - INCLUDE_DIRECTORIES(${PARTIO_INCLUDES}) + if(PARTIO_INCLUDES AND PARTIO_LIBRARIES AND ZLIB_LIBRARIES) + list(APPEND PARTIO_LIBRARIES ${ZLIB_LIBRARIES}) + set(PARTIO_FOUND TRUE) + message(STATUS "PARTIO includes = ${PARTIO_INCLUDES}") + message(STATUS "PARTIO library = ${PARTIO_LIBRARIES}") + else() + message(STATUS "PARTIO not found") + endif() -ENDIF() + include_directories(${PARTIO_INCLUDES}) + +endif() ########################################################################### # Blender -IF(WITH_CYCLES_BLENDER) - # FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include) - SET(BLENDER_INCLUDE_DIRS +if(WITH_CYCLES_BLENDER) + + set(BLENDER_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/intern/guardedalloc ${CMAKE_SOURCE_DIR}/source/blender/makesdna ${CMAKE_SOURCE_DIR}/source/blender/makesrna ${CMAKE_SOURCE_DIR}/source/blender/blenloader ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern) - IF(WIN32) - SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/blender.lib) - ENDIF() ADD_DEFINITIONS(-DBLENDER_PLUGIN) -ENDIF() +endif() ########################################################################### # CUDA -IF(WITH_CYCLES_CUDA) +if(WITH_CYCLES_CUDA) + + set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") + set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CYCLES_CUDA}/lib ${CYCLES_CUDA}/lib/Win32 NO_DEFAULT_PATH) - FIND_PATH(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH) - FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) + find_library(CUDA_LIBRARIES NAMES cuda PATHS ${CYCLES_CUDA}/lib ${CYCLES_CUDA}/lib/Win32 NO_DEFAULT_PATH) + find_path(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH) + find_program(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) - IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) - MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}") - MESSAGE(STATUS "CUDA library = ${CUDA_LIBRARIES}") - MESSAGE(STATUS "CUDA nvcc = ${CUDA_NVCC}") - ELSE() - MESSAGE(STATUS "CUDA not found") - ENDIF() + if(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) + message(STATUS "CUDA includes = ${CUDA_INCLUDES}") + message(STATUS "CUDA library = ${CUDA_LIBRARIES}") + message(STATUS "CUDA nvcc = ${CUDA_NVCC}") + else() + message(STATUS "CUDA not found") + endif() - ADD_DEFINITIONS(-DWITH_CUDA) - INCLUDE_DIRECTORIES(${CUDA_INCLUDES}) + include_directories(${CUDA_INCLUDES}) -ENDIF() +endif() ########################################################################### # OpenCL -IF(WITH_CYCLES_OPENCL) - - IF(APPLE) - SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers") - SET(OPENCL_LIBRARIES "-framework OpenCL") - ENDIF() - - IF(WIN32) - SET(OPENCL_INCLUDES "") - SET(OPENCL_LIBRARIES "OpenCL") - ENDIF() +if(WITH_CYCLES_OPENCL) - IF(UNIX AND NOT APPLE) - SET(OPENCL_INCLUDES ${CYCLES_OPENCL}) - SET(OPENCL_LIBRARIES "OpenCL") - ENDIF() + if(APPLE) + set(OPENCL_INCLUDE_DIR "/System/Library/Frameworks/OpenCL.framework/Headers") + set(OPENCL_LIBRARIES "-framework OpenCL") + endif() - ADD_DEFINITIONS(-DWITH_OPENCL) - INCLUDE_DIRECTORIES(${OPENCL_INCLUDES}) + if(WIN32) + set(OPENCL_INCLUDE_DIR "") + set(OPENCL_LIBRARIES "OpenCL") + endif() -ENDIF() + if(UNIX AND NOT APPLE) + set(OPENCL_INCLUDE_DIR ${CYCLES_OPENCL}) + set(OPENCL_LIBRARIES "OpenCL") + endif() +endif() diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake deleted file mode 100644 index e4364d8fc5d..00000000000 --- a/intern/cycles/cmake/platforms.cmake +++ /dev/null @@ -1,27 +0,0 @@ - -# Platform specific build flags - -SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") -SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") - -IF(APPLE) - SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") - SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") - SET(PYTHON_MODULE_FLAGS "-undefined dynamic_lookup") -ENDIF(APPLE) - -IF(WIN32) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") - SET(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") - SET(PYTHON_MODULE_FLAGS "-DLL") -ENDIF(WIN32) - -IF(UNIX AND NOT APPLE) - SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") - SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") - SET(PYTHON_MODULE_FLAGS "-fPIC") -ENDIF(UNIX AND NOT APPLE) - -ADD_DEFINITIONS(-DCCL_NAMESPACE_BEGIN=namespace\ ccl\ {) -ADD_DEFINITIONS(-DCCL_NAMESPACE_END=}) - diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index 712351b9558..55941438720 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -1,5 +1,5 @@ -INCLUDE_DIRECTORIES( +include_directories( . ../kernel ../kernel/svm @@ -9,7 +9,7 @@ INCLUDE_DIRECTORIES( ${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_PATH}) -SET(sources +set(sources device.cpp device_cpu.cpp device_cuda.cpp @@ -17,10 +17,10 @@ SET(sources device_network.cpp device_opencl.cpp) -SET(headers +set(headers device.h device_intern.h device_network.h) -ADD_LIBRARY(cycles_device ${sources} ${headers}) +add_library(cycles_device ${sources} ${headers}) diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt index 584bcc8079c..4ae0d12a060 100644 --- a/intern/cycles/doc/CMakeLists.txt +++ b/intern/cycles/doc/CMakeLists.txt @@ -1,3 +1,3 @@ -INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".svn" EXCLUDE) +add_subdirectory(license) diff --git a/intern/cycles/doc/license/CMakeLists.txt b/intern/cycles/doc/license/CMakeLists.txt new file mode 100644 index 00000000000..14049d4a88a --- /dev/null +++ b/intern/cycles/doc/license/CMakeLists.txt @@ -0,0 +1,13 @@ + +set(licenses + Apache_2.0.txt + Blender.txt + GPL.txt + ILM.txt + NVidia.txt + OSL.txt + Sobol.txt + readme.txt) + +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${licenses}" ${CYCLES_INSTALL_PATH}/license) + diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index b6d758369cc..7c77bf7ff82 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -1,10 +1,10 @@ -SET(sources +set(sources kernel.cpp kernel.cl kernel.cu) -SET(headers +set(headers kernel.h kernel_bvh.h kernel_camera.h @@ -29,7 +29,7 @@ SET(headers kernel_triangle.h kernel_types.h) -SET(svm_headers +set(svm_headers svm/bsdf.h svm/bsdf_ashikhmin_velvet.h svm/bsdf_diffuse.h @@ -72,7 +72,7 @@ SET(svm_headers svm/volume.h ) -SET(util_headers +set(util_headers ../util/util_color.h ../util/util_math.h ../util/util_transform.h @@ -80,60 +80,61 @@ SET(util_headers # CUDA module -IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - SET(CUDA_BITS 64) -ELSE() - SET(CUDA_BITS 32) -ENDIF() +if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + set(CUDA_BITS 64) +else() + set(CUDA_BITS 32) +endif() -IF(WITH_CYCLES_CUDA) - SET(cuda_sources kernel.cu ${headers} ${svm_headers}) - SET(cuda_cubins) +if(WITH_CYCLES_CUDA) + set(cuda_sources kernel.cu ${headers} ${svm_headers}) + set(cuda_cubins) - FOREACH(arch ${CYCLES_CUDA_ARCH}) - SET(cuda_cubin kernel_${arch}.cubin) + foreach(arch ${CYCLES_CUDA_ARCH}) + set(cuda_cubin kernel_${arch}.cubin) - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${cuda_cubin} COMMAND ${CUDA_NVCC} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC DEPENDS ${cuda_sources}) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib) - LIST(APPEND cuda_cubins ${cuda_cubin}) - ENDFOREACH() + delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib) + list(APPEND cuda_cubins ${cuda_cubin}) + endforeach() - ADD_CUSTOM_TARGET(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins}) -ENDIF() + add_custom_target(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins}) +endif() # OSL module -IF(WITH_CYCLES_OSL) - ADD_SUBDIRECTORY(osl) -ENDIF() +if(WITH_CYCLES_OSL) + add_subdirectory(osl) +endif() # CPU module -INCLUDE_DIRECTORIES(. ../util osl svm) +include_directories(. ../util osl svm) -ADD_LIBRARY(cycles_kernel ${sources} ${headers} ${svm_headers}) +add_library(cycles_kernel ${sources} ${headers} ${svm_headers}) -IF(WITH_CYCLES_CUDA) - ADD_DEPENDENCIES(cycles_kernel cycles_kernel_cuda) -ENDIF() +if(WITH_CYCLES_CUDA) + add_dependencies(cycles_kernel cycles_kernel_cuda) +endif() # OPENCL kernel -IF(WITH_CYCLES_OPENCL) - #SET(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) - #ADD_CUSTOM_COMMAND( +if(WITH_CYCLES_OPENCL) + #set(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) + #add_custom_command( # OUTPUT ${kernel_preprocessed} # COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${kernel_preprocessed} # DEPENDS ${kernel_sources} ${util_headers}) - #ADD_CUSTOM_TARGET(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) - #INSTALL(FILES ${kernel_preprocessed} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) - - INSTALL(FILES kernel.cl ${headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) - INSTALL(FILES ${svm_headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel/svm) - INSTALL(FILES ${util_headers} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/kernel) -ENDIF() + #add_custom_target(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) + #delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${kernel_preprocessed}" ${CYCLES_INSTALL_PATH}/kernel) + + delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cl" ${CYCLES_INSTALL_PATH}/kernel) + delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${headers}" ${CYCLES_INSTALL_PATH}/kernel) + delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${svm_headers}" ${CYCLES_INSTALL_PATH}/kernel/svm) + delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${util_headers}" ${CYCLES_INSTALL_PATH}/kernel) +endif() diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt index 31a162bdd0e..4a3a6f6798a 100644 --- a/intern/cycles/kernel/osl/CMakeLists.txt +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -1,7 +1,7 @@ -INCLUDE_DIRECTORIES(. ../ ../svm ../../render ../../util ../../device) +include_directories(. ../ ../svm ../../render ../../util ../../device) -SET(sources +set(sources background.cpp bsdf_ashikhmin_velvet.cpp bsdf_diffuse.cpp @@ -19,15 +19,15 @@ SET(sources osl_shader.cpp vol_subsurface.cpp) -SET(headers +set(headers osl_closures.h osl_globals.h osl_services.h osl_shader.h) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -ADD_LIBRARY(cycles_kernel_osl ${sources} ${headers}) +add_library(cycles_kernel_osl ${sources} ${headers}) -ADD_SUBDIRECTORY(nodes) +add_subdirectory(nodes) diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 56e8ba0b5b6..365cc42ad6b 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -1,7 +1,7 @@ # OSL node shaders -SET(osl_sources +set(osl_sources node_add_closure.osl node_attribute.osl node_background.osl @@ -46,24 +46,24 @@ SET(osl_sources node_ward_bsdf.osl node_wood_texture.osl) -SET(osl_headers +set(osl_headers node_texture.h stdosl.h) -SET(oso_sources) +set(oso_sources) -FOREACH(_file ${osl_sources}) - SET(osl_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) - STRING(REPLACE ".osl" ".oso" oso_file ${osl_file}) - STRING(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} oso_file ${oso_file}) - ADD_CUSTOM_COMMAND( +foreach(_file ${osl_sources}) + set(osl_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) + string(REPLACE ".osl" ".oso" oso_file ${osl_file}) + string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} oso_file ${oso_file}) + add_custom_command( OUTPUT ${oso_file} COMMAND ${OSL_COMPILER} -O2 ${osl_file} DEPENDS ${osl_file} ${osl_headers}) - LIST(APPEND oso_sources ${oso_file}) -ENDFOREACH() + list(APPEND oso_sources ${oso_file}) +endforeach() -ADD_CUSTOM_TARGET(shader ALL DEPENDS ${oso_sources} ${osl_headers}) +add_custom_target(shader ALL DEPENDS ${oso_sources} ${osl_headers}) -INSTALL(FILES ${oso_sources} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/shader) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${oso_sources}" ${CYCLES_INSTALL_PATH}/shader) diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt index 9a0583c48aa..c3d5ae1ea05 100644 --- a/intern/cycles/render/CMakeLists.txt +++ b/intern/cycles/render/CMakeLists.txt @@ -1,5 +1,5 @@ -INCLUDE_DIRECTORIES( +include_directories( . ../device ../kernel @@ -9,7 +9,7 @@ INCLUDE_DIRECTORIES( ../util ${GLEW_INCLUDE_PATH}) -SET(sources +set(sources attribute.cpp background.cpp buffers.cpp @@ -33,7 +33,7 @@ SET(sources svm.cpp tile.cpp) -SET(headers +set(headers attribute.h background.h buffers.h @@ -56,7 +56,7 @@ SET(headers svm.h tile.h) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -ADD_LIBRARY(cycles_render ${sources} ${headers}) +add_library(cycles_render ${sources} ${headers}) diff --git a/intern/cycles/subd/CMakeLists.txt b/intern/cycles/subd/CMakeLists.txt index 5357df4fab7..79ed73134f2 100644 --- a/intern/cycles/subd/CMakeLists.txt +++ b/intern/cycles/subd/CMakeLists.txt @@ -1,7 +1,7 @@ -INCLUDE_DIRECTORIES(. ../util ../kernel ../kernel/svm ../render) +include_directories(. ../util ../kernel ../kernel/svm ../render) -SET(sources +set(sources subd_build.cpp subd_dice.cpp subd_mesh.cpp @@ -10,7 +10,7 @@ SET(sources subd_split.cpp subd_stencil.cpp) -SET(headers +set(headers subd_build.h subd_dice.h subd_edge.h @@ -22,5 +22,5 @@ SET(headers subd_stencil.h subd_vert.h) -ADD_LIBRARY(cycles_subd ${sources} ${headers}) +add_library(cycles_subd ${sources} ${headers}) diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index 380383e3146..4db90adc9e6 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -1,10 +1,10 @@ -INCLUDE_DIRECTORIES( +include_directories( . ${GLEW_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR}) -SET(sources +set(sources util_cache.cpp util_cuda.cpp util_dynlib.cpp @@ -15,11 +15,11 @@ SET(sources util_time.cpp util_transform.cpp) -IF(WITH_CYCLES_TEST) - LIST(APPEND sources util_view.cpp) -ENDIF() +if(WITH_CYCLES_TEST) + list(APPEND sources util_view.cpp) +endif() -SET(headers +set(headers util_algorithm.h util_args.h util_boundbox.h @@ -49,5 +49,5 @@ SET(headers util_vector.h util_xml.h) -ADD_LIBRARY(cycles_util ${sources} ${headers}) +add_library(cycles_util ${sources} ${headers}) diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 1bbf6e3b0dc..577fdce0ff3 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -275,6 +275,7 @@ void ED_area_overdraw(bContext *C) if(az->type==AZONE_AREA) { area_draw_azone(az->x1, az->y1, az->x2, az->y2); } else if(az->type==AZONE_REGION) { + if(0) { if(az->ar) { /* only display tab or icons when the region is hidden */ @@ -288,6 +289,8 @@ void ED_area_overdraw(bContext *C) region_draw_azone_icon(az); } } + + } } az->do_draw= 0; diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt index 18b5eff5c73..de9fb323451 100644 --- a/source/blender/imbuf/CMakeLists.txt +++ b/source/blender/imbuf/CMakeLists.txt @@ -61,6 +61,7 @@ set(SRC intern/md5.c intern/metadata.c intern/module.c + intern/openimageio.cpp intern/png.c intern/radiance_hdr.c intern/readimage.c @@ -165,4 +166,11 @@ if(WITH_IMAGE_HDR) add_definitions(-DWITH_HDR) endif() +if(WITH_OPENIMAGEIO) + list(APPEND INC_SYS + ${OPENIMAGEIO_INCLUDES} + ) + # disabled for now add_definitions(-DWITH_OPENIMAGEIO ${OPENIMAGEIO_DEFINITIONS}) +endif() + blender_add_lib(bf_imbuf "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h index f5e2bf71468..c4872f370e5 100644 --- a/source/blender/imbuf/IMB_imbuf_types.h +++ b/source/blender/imbuf/IMB_imbuf_types.h @@ -169,39 +169,27 @@ typedef struct ImBuf { #define JPG (1 << 27) #define BMP (1 << 26) -#ifdef WITH_QUICKTIME #define QUICKTIME (1 << 25) -#endif -#ifdef WITH_HDR #define RADHDR (1 << 24) -#endif -#ifdef WITH_TIFF #define TIF (1 << 23) #define TIF_16BIT (1 << 8 ) -#endif #define OPENEXR (1 << 22) #define OPENEXR_HALF (1 << 8 ) #define OPENEXR_COMPRESS (7) -#ifdef WITH_CINEON #define CINEON (1 << 21) #define DPX (1 << 20) -#endif -#ifdef WITH_DDS #define DDS (1 << 19) -#endif -#ifdef WITH_OPENJPEG #define JP2 (1 << 18) #define JP2_12BIT (1 << 17) #define JP2_16BIT (1 << 16) #define JP2_YCC (1 << 15) #define JP2_CINE (1 << 14) #define JP2_CINE_48FPS (1 << 13) -#endif #define RAWTGA (TGA | 1) diff --git a/source/blender/imbuf/intern/IMB_filetype.h b/source/blender/imbuf/intern/IMB_filetype.h index cf0d0990d33..3a7725ae706 100644 --- a/source/blender/imbuf/intern/IMB_filetype.h +++ b/source/blender/imbuf/intern/IMB_filetype.h @@ -46,6 +46,9 @@ typedef struct ImFileType { 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 (*is_a_filepath)(const char *filepath); + struct ImBuf *(*load_filepath)(const char *filepath, int flags); + int flag; int filetype; } ImFileType; @@ -121,5 +124,20 @@ void imb_loadtiletiff(struct ImBuf *ibuf, unsigned char *mem, size_t size, int imb_savetiff(struct ImBuf *ibuf, const char *name, int flags); void *libtiff_findsymbol(char *name); +/* openimageio */ +#ifdef __cplusplus +extern "C" { +#endif + +int imb_is_a_openimageio(unsigned char *buf); +int imb_is_a_filepath_openimageio(const char *filepath); +int imb_ftype_openimageio(struct ImFileType *type, struct ImBuf *ibuf); +struct ImBuf *imb_load_openimageio(const char *filepath, int flags); +int imb_save_openimageio(struct ImBuf *ibuf, const char *filepath, int flags); + +#ifdef __cplusplus +} +#endif + #endif /* IMB_FILETYPE_H */ diff --git a/source/blender/imbuf/intern/filetype.c b/source/blender/imbuf/intern/filetype.c index c5121189952..47be6f609c8 100644 --- a/source/blender/imbuf/intern/filetype.c +++ b/source/blender/imbuf/intern/filetype.c @@ -51,9 +51,6 @@ static int imb_ftype_default(ImFileType *type, ImBuf *ibuf) { return (ibuf->ftyp 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; return (ibuf->ftype == IMAGIC); } -#ifdef WITH_QUICKTIME -static int imb_ftype_quicktime(ImFileType *type, ImBuf *ibuf) { return 0; } // XXX -#endif #ifdef WITH_QUICKTIME void quicktime_init(void); @@ -61,36 +58,39 @@ 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}, +#ifdef WITH_OPENIMAGEIO + {NULL, NULL, imb_is_a_openimageio, imb_ftype_openimageio, NULL, imb_save_openimageio, NULL, imb_is_a_filepath_openimageio, imb_load_openimageio, 0, 0}, +#endif + {NULL, NULL, imb_is_a_jpeg, imb_ftype_default, imb_load_jpeg, imb_savejpeg, NULL, NULL, NULL, 0, JPG}, + {NULL, NULL, imb_is_a_png, imb_ftype_default, imb_loadpng, imb_savepng, NULL, NULL, NULL, 0, PNG}, + {NULL, NULL, imb_is_a_bmp, imb_ftype_default, imb_bmp_decode, imb_savebmp, NULL, NULL, NULL, 0, BMP}, + {NULL, NULL, imb_is_a_targa, imb_ftype_default, imb_loadtarga, imb_savetarga, NULL, NULL, NULL, 0, TGA}, + {NULL, NULL, imb_is_a_iris, imb_ftype_iris, imb_loadiris, imb_saveiris, NULL, NULL, NULL, 0, IMAGIC}, #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, NULL, NULL, IM_FTYPE_FLOAT, DPX}, + {NULL, NULL, imb_is_cineon, imb_ftype_default, imb_loadcineon, imb_savecineon, NULL, NULL, NULL, IM_FTYPE_FLOAT, CINEON}, #endif #ifdef WITH_TIFF - {imb_inittiff, NULL, imb_is_a_tiff, imb_ftype_default, imb_loadtiff, imb_savetiff, imb_loadtiletiff, 0, TIF}, + {imb_inittiff, NULL, imb_is_a_tiff, imb_ftype_default, imb_loadtiff, imb_savetiff, imb_loadtiletiff, NULL, NULL, 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}, + {NULL, NULL, imb_is_a_cocoa, imb_ftype_cocoa, imb_imb_cocoaLoadImage, imb_savecocoa, NULL, NULL, NULL, 0, TIF}, #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, NULL, NULL, IM_FTYPE_FLOAT, RADHDR}, #endif #ifdef WITH_OPENEXR - {NULL, NULL, imb_is_a_openexr, imb_ftype_default, imb_load_openexr, imb_save_openexr, NULL, IM_FTYPE_FLOAT, OPENEXR}, + {NULL, NULL, imb_is_a_openexr, imb_ftype_default, imb_load_openexr, imb_save_openexr, NULL, NULL, NULL, IM_FTYPE_FLOAT, OPENEXR}, #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, NULL, NULL, IM_FTYPE_FLOAT, JP2}, #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, NULL, NULL, 0, DDS}, #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, NULL, imb_quicktime_decode, NULL, NULL, NULL, 0, QUICKTIME}, #endif - {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0}}; + {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0}}; void imb_filetypes_init(void) { diff --git a/source/blender/imbuf/intern/openimageio.cpp b/source/blender/imbuf/intern/openimageio.cpp new file mode 100644 index 00000000000..2e5dd5b6613 --- /dev/null +++ b/source/blender/imbuf/intern/openimageio.cpp @@ -0,0 +1,237 @@ +/* + * + * ***** 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 ***** + * $Id: png.c 36777 2011-05-19 11:54:03Z blendix $ + */ + +/** \file blender/imbuf/intern/png.c + * \ingroup imbuf + */ + +#ifdef WITH_OPENIMAGEIO + +#include "MEM_sys_types.h" + +#include "imbuf.h" + +extern "C" { + +#include "IMB_imbuf_types.h" +#include "IMB_imbuf.h" + +#include "IMB_allocimbuf.h" +#include "IMB_metadata.h" +#include "IMB_filetype.h" + +} + +#include + +OIIO_NAMESPACE_USING + +int imb_is_a_openimageio(unsigned char *buf) +{ + return 0; +} + +int imb_is_a_filepath_openimageio(const char *filepath) +{ + ImageInput *in = ImageInput::create(filepath); + ImageSpec spec; + int recognized = in->open(filepath, spec); + in->close(); + + return recognized; +} + +template static void pack_pixels(T *pixels, int width, int height, int components, T alpha) +{ + if(components == 3) { + for(int i = width*height-1; i >= 0; i--) { + pixels[i*4+3] = alpha; + pixels[i*4+2] = pixels[i*3+2]; + pixels[i*4+1] = pixels[i*3+1]; + pixels[i*4+0] = pixels[i*3+0]; + } + } + else if(components == 1) { + for(int i = width*height-1; i >= 0; i--) { + pixels[i*4+3] = alpha; + pixels[i*4+2] = pixels[i]; + pixels[i*4+1] = pixels[i]; + pixels[i*4+0] = pixels[i]; + } + } +} + +int imb_ftype_openimageio(ImFileType *type, ImBuf *ibuf) +{ + return ibuf->ftype & (PNG|TGA|JPG|BMP|RADHDR|TIF|OPENEXR|CINEON|DPX|DDS|JP2); +} + +static int format_name_to_ftype(const char *format_name) +{ + if(strcmp(format_name, "png") == 0) + return PNG; + else if(strcmp(format_name, "targa") == 0) + return TGA; /* RAWTGA */ + else if(strcmp(format_name, "jpeg") == 0) + return JPG; + else if(strcmp(format_name, "bmp") == 0) + return BMP; + else if(strcmp(format_name, "hdr") == 0) + return RADHDR; + else if(strcmp(format_name, "tiff") == 0) + return TIF; /* TIF_16BIT */ + else if(strcmp(format_name, "openexr") == 0) + return OPENEXR; /* OPENEXR_HALF, OPENEXR_COMPRESS */ + else if(strcmp(format_name, "cineon") == 0) + return CINEON; + else if(strcmp(format_name, "dpx") == 0) + return DPX; + else if(strcmp(format_name, "dds") == 0) + return DDS; + else if(strcmp(format_name, "jpeg2000") == 0) + return JP2; /* JP2_12BIT, JP2_16BIT, JP2_YCC , JP2_CINE , JP2_CINE_48FPS */ + + /* not handled: "field3d", "fits", "ico", "iff", "pnm", "ptex", "sgi", "zfile" */ + + return 0; +} + +ImBuf *imb_load_openimageio(const char *filepath, int flags) +{ + ImageInput *in = ImageInput::create(filepath); + ImageSpec spec; + bool success; + + if(!in->open(filepath, spec)) { + delete in; + return NULL; + } + + /* we only handle certain number of components */ + int width = spec.width; + int height = spec.height; + int components = spec.nchannels; + + if(!(components == 1 || components == 3 || components == 4)) { + delete in; + return NULL; + } + + ImBuf *ibuf = IMB_allocImBuf(width, height, 32, 0); + ibuf->ftype = format_name_to_ftype(in->format_name()); + + /* TODO: handle oiio:ColorSpace, oiio:Gamma, metadata, multilayer, size_t_safe */ + + /* read RGBA pixels */ + if(spec.format == TypeDesc::UINT8 || spec.format == TypeDesc::INT8) { + //if(in->get_string_attribute("oiio:ColorSpace") == "sRGB") + ibuf->profile = IB_PROFILE_SRGB; + + imb_addrectImBuf(ibuf); + + uint8_t *pixels = (uint8_t*)ibuf->rect; + int scanlinesize = width*components; + + success = in->read_image(TypeDesc::UINT8, + pixels + (height-1)*scanlinesize, + AutoStride, + -scanlinesize*sizeof(uint8_t), + AutoStride); + + pack_pixels(pixels, width, height, components, 255); + } + else { + ibuf->profile = IB_PROFILE_LINEAR_RGB; /* XXX assumption */ + + imb_addrectfloatImBuf(ibuf); + + float *pixels = ibuf->rect_float; + int scanlinesize = width*components; + + success = in->read_image(TypeDesc::FLOAT, + pixels + (height-1)*scanlinesize, + AutoStride, + -scanlinesize*sizeof(float), + AutoStride); + + pack_pixels(pixels, width, height, components, 1.0f); + } + + if(!success) + fprintf(stderr, "OpenImageIO: error loading image: %s\n", in->geterror().c_str()); + + in->close(); + delete in; + + return ibuf; +} + +int imb_save_openimageio(struct ImBuf *ibuf, const char *filepath, int flags) +{ + ImageOutput *out = ImageOutput::create(filepath); + + if(ibuf->rect_float) { + /* XXX profile */ + + /* save as float image XXX works? */ + ImageSpec spec(ibuf->x, ibuf->y, 4, TypeDesc::FLOAT); + int scanlinesize = ibuf->x*4; + + out->open(filepath, spec); + + /* conversion for different top/bottom convention */ + out->write_image(TypeDesc::FLOAT, + ibuf->rect_float + (ibuf->y-1)*scanlinesize, + AutoStride, + -scanlinesize*sizeof(float), + AutoStride); + } + else { + /* save as 8bit image */ + ImageSpec spec(ibuf->x, ibuf->y, 4, TypeDesc::UINT8); + int scanlinesize = ibuf->x*4; + + out->open(filepath, spec); + + /* conversion for different top/bottom convention */ + out->write_image(TypeDesc::UINT8, + (uint8_t*)ibuf->rect + (ibuf->y-1)*scanlinesize, + AutoStride, + -scanlinesize*sizeof(uint8_t), + AutoStride); + } + + out->close(); + delete out; + + return 1; +} + +#endif /* WITH_OPENIMAGEIO */ + diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c index 849b3ff0ce2..dac7e91fec6 100644 --- a/source/blender/imbuf/intern/readimage.c +++ b/source/blender/imbuf/intern/readimage.c @@ -51,6 +51,28 @@ #include "IMB_imbuf.h" #include "IMB_filetype.h" +static ImBuf *imb_ibImageFromFile(const char *filepath, int flags) +{ + ImBuf *ibuf; + ImFileType *type; + + for(type=IMB_FILE_TYPES; type->is_a; type++) { + if(type->load_filepath) { + ibuf= type->load_filepath(filepath, flags); + if(ibuf) { + if(flags & IB_premul) { + IMB_premultiply_alpha(ibuf); + ibuf->flags |= IB_premul; + } + + return ibuf; + } + } + } + + return NULL; +} + ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags) { ImBuf *ibuf; @@ -127,10 +149,15 @@ ImBuf *IMB_loadiffname(const char *name, int flags) imb_cache_filename(filename, name, flags); - file = open(filename, O_BINARY|O_RDONLY); - if(file < 0) return NULL; + ibuf= imb_ibImageFromFile(name, flags); + + if(!ibuf) { + file = open(filename, O_BINARY|O_RDONLY); + if(file < 0) return NULL; - ibuf= IMB_loadifffile(file, flags); + ibuf= IMB_loadifffile(file, flags); + close(file); + } if(ibuf) { BLI_strncpy(ibuf->name, name, sizeof(ibuf->name)); @@ -140,8 +167,6 @@ ImBuf *IMB_loadiffname(const char *name, int flags) if(flags & IB_fields) IMB_de_interlace(ibuf); } - close(file); - return ibuf; } @@ -184,7 +209,7 @@ static void imb_loadtilefile(ImBuf *ibuf, int file, int tx, int ty, unsigned int } for(type=IMB_FILE_TYPES; type->is_a; type++) - if(type->load_tile && type->ftype(type, ibuf)) + if(type->load_tile && type->ftype && type->ftype(type, ibuf)) type->load_tile(ibuf, mem, size, tx, ty, rect); if(munmap(mem, size)) diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index 6db8dcc06cf..f548d8eda92 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -155,6 +155,10 @@ static int IMB_ispic_name(const char *name) int fp, buf[10]; if(UTIL_DEBUG) printf("IMB_ispic_name: loading %s\n", name); + + /*for(type=IMB_FILE_TYPES; type->is_a; type++) + if(type->is_a_filepath && type->is_a_filepath(name)) + return type->filetype;*/ if(stat(name,&st) == -1) return FALSE; @@ -176,7 +180,7 @@ static int IMB_ispic_name(const char *name) return JPG; for(type=IMB_FILE_TYPES; type->is_a; type++) - if(type->is_a((uchar*)buf)) + if(type->is_a && type->is_a((uchar*)buf)) return type->filetype; return FALSE; diff --git a/source/blender/imbuf/intern/writeimage.c b/source/blender/imbuf/intern/writeimage.c index cd660e11f26..96e6df6d758 100644 --- a/source/blender/imbuf/intern/writeimage.c +++ b/source/blender/imbuf/intern/writeimage.c @@ -50,7 +50,7 @@ short IMB_saveiff(struct ImBuf *ibuf, const char *name, int flags) ibuf->flags = flags; for(type=IMB_FILE_TYPES; type->is_a; type++) { - if(type->save && type->ftype(type, ibuf)) { + if(type->save && type->ftype && type->ftype(type, ibuf)) { if(!(type->flag & IM_FTYPE_FLOAT)) { if(ibuf->rect==NULL && ibuf->rect_float) IMB_rect_from_float(ibuf); diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 93a4b3ec269..3d509fa2827 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -91,4 +91,8 @@ if(WITH_AUDASPACE) add_definitions(-DWITH_AUDASPACE) endif() +if(WITH_CYCLES) + add_definitions(-DWITH_CYCLES) +endif() + blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 8bd6e6c611c..ea76c4bb377 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -172,6 +172,8 @@ void BPY_context_set(bContext *C) /* defined in AUD_C-API.cpp */ extern PyObject *AUD_initPython(void); +/* defined in cycles/blender */ +extern PyObject *CYCLES_initPython(void); static struct _inittab bpy_internal_modules[]= { {(char *)"noise", BPyInit_noise}, @@ -181,6 +183,9 @@ static struct _inittab bpy_internal_modules[]= { {(char *)"blf", BPyInit_blf}, #ifdef WITH_AUDASPACE {(char *)"aud", AUD_initPython}, +#endif +#ifdef WITH_CYCLES + {(char *)"libcycles_blender", CYCLES_initPython}, #endif {NULL, NULL} }; diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 43fec85b5bf..850be368d4a 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -407,6 +407,22 @@ if(UNIX AND NOT APPLE) # install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')") endif() endif() + + # XXX this is non standard + if(WITH_OPENIMAGEIO) + set(oiio_install_libs + ${OPENIMAGEIO_LIBPATH}/lib${OPENIMAGEIO_LIBRARY}.so + ${BOOST_LIBRARIES}) + + list(REMOVE_ITEM oiio_install_libs optimized) + list(REMOVE_ITEM oiio_install_libs debug) + + install( + FILES ${oiio_install_libs} + DESTINATION ${TARGETDIR} + ) + endif() + elseif(WIN32) set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) @@ -594,6 +610,14 @@ elseif(WIN32) ) endif() + if(WITH_OPENIMAGEIO) + install( + FILES + ${LIBDIR}/openimageio/bin/OpenImageIO.dll + DESTINATION ${TARGETDIR} + ) + endif() + elseif(APPLE) set(SOURCEDIR ${CMAKE_SOURCE_DIR}/source/darwin/blender.app) set(SOURCEINFO ${SOURCEDIR}/Contents/Info.plist) @@ -704,6 +728,9 @@ elseif(APPLE) endif() endif() +# install more files XXX pass target dir +delayed_do_install(${TARGETDIR_VER}) + unset(BLENDER_TEXT_FILES) @@ -847,6 +874,10 @@ endif() list(APPEND BLENDER_SORTED_LIBS bf_quicktime) endif() + if(WITH_CYCLES) + list(APPEND BLENDER_SORTED_LIBS bf_intern_cycles) + endif() + foreach(SORTLIB ${BLENDER_SORTED_LIBS}) set(REMLIB ${SORTLIB}) foreach(SEARCHLIB ${BLENDER_LINK_LIBS}) -- cgit v1.2.3 From c7fce6be2ea6dcc1ecdf52a8f5d1608d45117e8f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Aug 2011 18:59:45 +0000 Subject: Cycles: svn merge -r39132:39457 https://svn.blender.org/svnroot/bf-blender/trunk/blender --- CMakeLists.txt | 4 + GNUmakefile | 81 +- SConstruct | 19 +- build_files/buildbot/master.cfg | 2 +- build_files/buildbot/slave_compile.py | 2 +- build_files/buildbot/slave_pack.py | 2 +- build_files/cmake/config/blender_headless.cmake | 24 + build_files/cmake/config/blender_lite.cmake | 43 + build_files/cmake/config/bpy_module.cmake | 34 + build_files/cmake/macros.cmake | 7 + build_files/scons/config/darwin-config.py | 67 +- build_files/scons/tools/btools.py | 4 +- doc/doxygen/Doxyfile | 2 +- doc/python_api/rst/bge.logic.rst | 6 + intern/ghost/CMakeLists.txt | 20 +- intern/ghost/intern/GHOST_NDOFManager.cpp | 20 +- intern/ghost/intern/GHOST_NDOFManagerCocoa.h | 7 +- intern/ghost/intern/GHOST_NDOFManagerCocoa.mm | 32 +- intern/ghost/intern/GHOST_NDOFManagerX11.cpp | 25 +- intern/ghost/intern/GHOST_NDOFManagerX11.h | 7 +- intern/ghost/intern/GHOST_SystemCocoa.mm | 9 +- intern/ghost/intern/GHOST_SystemPathsX11.cpp | 19 +- intern/ghost/intern/GHOST_SystemSDL.cpp | 25 +- intern/ghost/intern/GHOST_SystemX11.cpp | 20 +- intern/ghost/intern/GHOST_WindowWin32.cpp | 5 +- intern/guardedalloc/MEM_guardedalloc.h | 14 +- release/datafiles/splash.png | Bin 201866 -> 204738 bytes release/scripts/modules/bpy/__init__.py | 14 +- release/scripts/modules/bpy_extras/io_utils.py | 12 +- release/scripts/modules/bpy_extras/mesh_utils.py | 4 +- release/scripts/modules/bpyml.py | 2 +- release/scripts/modules/bpyml_ui.py | 6 +- release/scripts/modules/rna_info.py | 8 +- .../scripts/startup/bl_operators/add_mesh_torus.py | 3 +- .../scripts/startup/bl_operators/animsys_update.py | 3 +- release/scripts/startup/bl_operators/image.py | 19 +- release/scripts/startup/bl_operators/mesh.py | 5 +- release/scripts/startup/bl_operators/nla.py | 3 +- release/scripts/startup/bl_operators/object.py | 19 +- .../scripts/startup/bl_operators/object_align.py | 3 +- .../startup/bl_operators/object_quick_effects.py | 9 +- .../bl_operators/object_randomize_transform.py | 3 +- release/scripts/startup/bl_operators/presets.py | 23 +- .../bl_operators/screen_play_rendered_anim.py | 3 +- release/scripts/startup/bl_operators/sequencer.py | 7 +- .../startup/bl_operators/uvcalc_follow_active.py | 3 +- .../startup/bl_operators/uvcalc_lightmap.py | 69 +- .../startup/bl_operators/uvcalc_smart_project.py | 52 +- .../startup/bl_operators/vertexpaint_dirt.py | 3 +- release/scripts/startup/bl_operators/wm.py | 69 +- .../startup/bl_ui/properties_data_armature.py | 21 +- .../scripts/startup/bl_ui/properties_data_bone.py | 17 +- .../startup/bl_ui/properties_data_camera.py | 9 +- .../scripts/startup/bl_ui/properties_data_curve.py | 23 +- .../scripts/startup/bl_ui/properties_data_empty.py | 3 +- .../scripts/startup/bl_ui/properties_data_lamp.py | 23 +- .../startup/bl_ui/properties_data_lattice.py | 7 +- .../scripts/startup/bl_ui/properties_data_mesh.py | 25 +- .../startup/bl_ui/properties_data_metaball.py | 11 +- .../startup/bl_ui/properties_data_modifier.py | 5 +- release/scripts/startup/bl_ui/properties_game.py | 27 +- .../scripts/startup/bl_ui/properties_material.py | 53 +- release/scripts/startup/bl_ui/properties_object.py | 25 +- .../startup/bl_ui/properties_object_constraint.py | 5 +- .../scripts/startup/bl_ui/properties_particle.py | 35 +- .../startup/bl_ui/properties_physics_cloth.py | 15 +- .../startup/bl_ui/properties_physics_common.py | 3 +- .../startup/bl_ui/properties_physics_field.py | 5 +- .../startup/bl_ui/properties_physics_fluid.py | 9 +- .../startup/bl_ui/properties_physics_smoke.py | 11 +- .../startup/bl_ui/properties_physics_softbody.py | 15 +- release/scripts/startup/bl_ui/properties_render.py | 37 +- release/scripts/startup/bl_ui/properties_scene.py | 17 +- .../scripts/startup/bl_ui/properties_texture.py | 51 +- release/scripts/startup/bl_ui/properties_world.py | 21 +- release/scripts/startup/bl_ui/space_console.py | 28 +- release/scripts/startup/bl_ui/space_dopesheet.py | 44 +- release/scripts/startup/bl_ui/space_filebrowser.py | 3 +- release/scripts/startup/bl_ui/space_graph.py | 34 +- release/scripts/startup/bl_ui/space_image.py | 116 +- release/scripts/startup/bl_ui/space_info.py | 41 +- release/scripts/startup/bl_ui/space_logic.py | 21 +- release/scripts/startup/bl_ui/space_nla.py | 34 +- release/scripts/startup/bl_ui/space_node.py | 35 +- release/scripts/startup/bl_ui/space_outliner.py | 38 +- release/scripts/startup/bl_ui/space_sequencer.py | 73 +- release/scripts/startup/bl_ui/space_text.py | 31 +- release/scripts/startup/bl_ui/space_time.py | 20 +- release/scripts/startup/bl_ui/space_userpref.py | 59 +- .../scripts/startup/bl_ui/space_userpref_keymap.py | 45 +- release/scripts/startup/bl_ui/space_view3d.py | 181 +- .../scripts/startup/bl_ui/space_view3d_toolbar.py | 55 +- release/scripts/templates/operator_modal.py | 4 +- release/scripts/templates/operator_modal_draw.py | 2 +- release/scripts/templates/operator_modal_timer.py | 2 +- release/scripts/templates/operator_modal_view3d.py | 2 +- release/text/readme.html | 12 +- source/blender/blenkernel/BKE_blender.h | 8 +- source/blender/blenkernel/intern/depsgraph.c | 7 +- source/blender/blenkernel/intern/displist.c | 5 + source/blender/blenkernel/intern/fcurve.c | 2 +- source/blender/blenkernel/intern/nla.c | 2 +- source/blender/blenkernel/intern/node.c | 4 +- source/blender/blenkernel/intern/particle.c | 1 + source/blender/blenkernel/intern/sequencer.c | 1 + source/blender/blenkernel/intern/texture.c | 32 +- source/blender/blenkernel/intern/unit.c | 2 +- source/blender/blenkernel/intern/writeffmpeg.c | 7 +- source/blender/blenlib/BLI_ghash.h | 141 +- source/blender/blenlib/BLI_utildefines.h | 6 + source/blender/blenlib/intern/BLI_ghash.c | 92 +- source/blender/editors/armature/poseSlide.c | 2 +- source/blender/editors/datafiles/splash.png.c | 12713 ++++++++++--------- source/blender/editors/gpencil/gpencil_paint.c | 16 +- source/blender/editors/include/ED_object.h | 2 +- .../blender/editors/interface/interface_intern.h | 5 +- .../blender/editors/interface/interface_layout.c | 104 +- .../blender/editors/interface/interface_regions.c | 6 +- .../editors/interface/interface_templates.c | 51 +- source/blender/editors/interface/interface_utils.c | 2 +- source/blender/editors/interface/resources.c | 2 +- source/blender/editors/mesh/editmesh.c | 5 +- source/blender/editors/mesh/editmesh_mods.c | 2 +- source/blender/editors/mesh/editmesh_tools.c | 2 +- source/blender/editors/object/object_add.c | 2 +- source/blender/editors/object/object_edit.c | 12 +- source/blender/editors/object/object_relations.c | 14 + source/blender/editors/render/render_update.c | 13 + source/blender/editors/space_console/console_ops.c | 7 +- source/blender/editors/space_file/file_ops.c | 9 +- source/blender/editors/space_file/filelist.c | 22 - source/blender/editors/space_nla/nla_edit.c | 2 +- source/blender/editors/space_node/node_edit.c | 15 +- source/blender/editors/space_node/node_header.c | 4 +- source/blender/editors/space_node/node_intern.h | 3 +- source/blender/editors/space_node/node_select.c | 8 +- .../blender/editors/space_outliner/CMakeLists.txt | 6 +- source/blender/editors/space_outliner/outliner.c | 5792 --------- .../blender/editors/space_outliner/outliner_draw.c | 1671 +++ .../blender/editors/space_outliner/outliner_edit.c | 1398 ++ .../editors/space_outliner/outliner_intern.h | 86 +- .../blender/editors/space_outliner/outliner_ops.c | 7 + .../editors/space_outliner/outliner_select.c | 867 ++ .../editors/space_outliner/outliner_tools.c | 1217 ++ .../blender/editors/space_outliner/outliner_tree.c | 1585 +++ .../editors/space_outliner/space_outliner.c | 7 + .../editors/space_sequencer/sequencer_add.c | 20 +- .../editors/space_sequencer/sequencer_draw.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 507 +- .../editors/space_sequencer/sequencer_intern.h | 7 + .../editors/space_sequencer/sequencer_ops.c | 9 + .../editors/space_sequencer/sequencer_select.c | 2 +- source/blender/editors/space_text/text_python.c | 5 +- source/blender/editors/space_view3d/drawobject.c | 4 +- .../blender/editors/space_view3d/view3d_toolbar.c | 11 +- source/blender/editors/transform/CMakeLists.txt | 1 - source/blender/editors/transform/transform.c | 5 - source/blender/editors/transform/transform.h | 26 - .../blender/editors/transform/transform_generics.c | 1 - .../editors/transform/transform_ndofinput.c | 162 - source/blender/editors/transform/transform_ops.c | 7 +- source/blender/imbuf/intern/anim_movie.c | 2 +- source/blender/imbuf/intern/filter.c | 12 +- source/blender/makesdna/DNA_modifier_types.h | 4 +- source/blender/makesrna/RNA_access.h | 1483 +-- source/blender/makesrna/RNA_types.h | 14 +- source/blender/makesrna/intern/makesrna.c | 104 +- source/blender/makesrna/intern/rna_access.c | 36 +- source/blender/makesrna/intern/rna_constraint.c | 2 +- source/blender/makesrna/intern/rna_curve.c | 2 +- source/blender/makesrna/intern/rna_internal.h | 10 +- source/blender/makesrna/intern/rna_main_api.c | 2 +- source/blender/makesrna/intern/rna_modifier.c | 7 + source/blender/makesrna/intern/rna_object.c | 9 +- source/blender/makesrna/intern/rna_object_api.c | 8 +- source/blender/makesrna/intern/rna_render.c | 8 +- source/blender/makesrna/intern/rna_userdef.c | 2 +- source/blender/makesrna/intern/rna_wm.c | 1 + source/blender/modifiers/intern/MOD_solidify.c | 26 +- source/blender/python/intern/bpy_operator.c | 14 +- source/blender/python/intern/bpy_rna.c | 10 +- source/blender/python/intern/bpy_rna_anim.c | 2 +- source/blender/python/intern/bpy_rna_array.c | 9 +- source/blender/python/mathutils/mathutils_Vector.c | 117 +- source/blender/render/extern/include/RE_engine.h | 16 +- source/blender/render/intern/source/rayshade.c | 2 +- source/blender/windowmanager/CMakeLists.txt | 1 + source/blender/windowmanager/WM_api.h | 4 +- source/blender/windowmanager/WM_types.h | 12 +- source/blender/windowmanager/intern/wm.c | 54 +- .../blender/windowmanager/intern/wm_event_system.c | 33 +- source/blender/windowmanager/intern/wm_files.c | 3 +- source/blender/windowmanager/intern/wm_init_exit.c | 3 +- source/blender/windowmanager/intern/wm_keymap.c | 6 +- source/blender/windowmanager/intern/wm_operators.c | 72 +- source/blender/windowmanager/intern/wm_subwindow.c | 3 +- source/blenderplayer/bad_level_call_stubs/stubs.c | 2 +- source/gameengine/Ketsji/KX_Light.cpp | 4 + source/tests/CMakeLists.txt | 14 +- source/tests/bl_run_operators.py | 2 +- 200 files changed, 16211 insertions(+), 14837 deletions(-) create mode 100644 build_files/cmake/config/blender_headless.cmake create mode 100644 build_files/cmake/config/blender_lite.cmake create mode 100644 build_files/cmake/config/bpy_module.cmake delete mode 100644 source/blender/editors/space_outliner/outliner.c create mode 100644 source/blender/editors/space_outliner/outliner_draw.c create mode 100644 source/blender/editors/space_outliner/outliner_edit.c create mode 100644 source/blender/editors/space_outliner/outliner_select.c create mode 100644 source/blender/editors/space_outliner/outliner_tools.c create mode 100644 source/blender/editors/space_outliner/outliner_tree.c delete mode 100644 source/blender/editors/transform/transform_ndofinput.c diff --git a/CMakeLists.txt b/CMakeLists.txt index bbd9598780d..3cc935939f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1089,6 +1089,10 @@ elseif(APPLE) if(NOT 3D_CONNEXION_CLIENT_LIBRARY) set(WITH_INPUT_NDOF OFF) endif() + + if(WITH_INPUT_NDOF) + set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -weak_framework 3DconnexionClient") + endif() endif() else() diff --git a/GNUmakefile b/GNUmakefile index b6741d7e5f0..8446541cfae 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -35,17 +35,33 @@ OS_NCASE:=$(shell uname -s | tr '[A-Z]' '[a-z]') # Source and Build DIR's BLENDER_DIR:=$(shell pwd -P) BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE) +BUILD_TYPE:=Release +BUILD_CMAKE_ARGS:="" +# ----------------------------------------------------------------------------- +# additional targets for the build configuration + # support 'make debug' ifneq "$(findstring debug, $(MAKECMDGOALS))" "" BUILD_DIR:=$(BUILD_DIR)_debug BUILD_TYPE:=Debug -else - BUILD_TYPE:=Release +endif +ifneq "$(findstring lite, $(MAKECMDGOALS))" "" + BUILD_DIR:=$(BUILD_DIR)_lite + BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake +endif +ifneq "$(findstring headless, $(MAKECMDGOALS))" "" + BUILD_DIR:=$(BUILD_DIR)_bpy + BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake +endif +ifneq "$(findstring bpy, $(MAKECMDGOALS))" "" + BUILD_DIR:=$(BUILD_DIR)_bpy + BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake endif +# ----------------------------------------------------------------------------- # Get the number of cores for threaded build NPROCS:=1 ifeq ($(OS), Linux) @@ -61,14 +77,14 @@ ifeq ($(OS), NetBSD) NPROCS:=$(shell sysctl -a | grep "hw.ncpu " | cut -d" " -f3 ) endif - +# ----------------------------------------------------------------------------- # Build Blender all: @echo @echo Configuring Blender ... if test ! -f $(BUILD_DIR)/CMakeCache.txt ; then \ - cmake -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE) ; \ + cmake $(BUILD_CMAKE_ARGS) -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE); \ fi @echo @@ -80,9 +96,40 @@ all: @echo debug: all - # pass - -# package types +lite: all +headless: all +bpy: all + +# ----------------------------------------------------------------------------- +# Helo for build targets +help: + @echo "" + @echo "Convenience targets provided for building blender, (multiple at once can be used)" + @echo " * debug - build a debug binary" + @echo " * lite - disable non essential features for a smaller binary and faster build" + @echo " * headless - build without an interface (renderfarm or server automation)" + @echo " * bpy - build as a python module which can be loaded from python directly" + @echo "" + @echo "Project Files for IDE's" + @echo " * project_qtcreator - QtCreator Project Files" + @echo " * project_netbeans - NetBeans Project Files" + @echo " * project_eclipse - Eclipse CDT4 Project Files" + @echo "" + @echo "Package Targets" + @echo " * package_debian - build a debian package" + @echo " * package_pacman - build an arch linux pacmanpackage" + @echo " * package_archive - build an archive package" + @echo "" + @echo "Testing Targets (not assosiated with building blender)" + @echo " * test - run ctest, currently tests import/export, operator execution and that python modules load" + @echo " * test_cmake - runs our own cmake file checker which detects errors in the cmake file list definitions" + @echo " * test_pep8 - checks all python script are pep8 which are tagged to use the stricter formatting" + @echo " * test_deprecated - checks for deprecation tags in our code which may need to be removed" + @echo "" + +# ----------------------------------------------------------------------------- +# Packages +# package_debian: cd build_files/package_spec ; DEB_BUILD_OPTIONS="parallel=$(NPROCS)" sh ./build_debian.sh @@ -93,7 +140,10 @@ package_archive: make -C $(BUILD_DIR) -s package_archive @echo archive in "$(BUILD_DIR)/release" -# forward build targets + +# ----------------------------------------------------------------------------- +# Tests +# test: cd $(BUILD_DIR) ; ctest . --output-on-failure @@ -111,6 +161,21 @@ test_cmake: test_deprecated: python3 source/tests/check_deprecated.py + +# ----------------------------------------------------------------------------- +# Project Files +# + +project_qtcreator: + python3 build_files/cmake/cmake_qtcreator_project.py $(BUILD_DIR) + +project_netbeans: + python3 build_files/cmake/cmake_netbeans_project.py $(BUILD_DIR) + +project_eclipse: + cmake -G"Eclipse CDT4 - Unix Makefiles" -H$(BLENDER_DIR) -B$(BUILD_DIR) + + clean: $(MAKE) -C $(BUILD_DIR) clean diff --git a/SConstruct b/SConstruct index 4f920190276..81c12c7c318 100644 --- a/SConstruct +++ b/SConstruct @@ -253,14 +253,23 @@ if 'blenderlite' in B.targets: if k not in B.arguments: env[k] = v -# detect presence of 3D_CONNEXION_CLIENT_LIBRARY for OSX +# Extended OSX_SDK and 3D_CONNEXION_CLIENT_LIBRARY detection for OSX if env['OURPLATFORM']=='darwin': - envi = Environment() - conf = Configure(envi) - if not conf.CheckCHeader('ConnexionClientAPI.h'): # CheckCXXHeader if it is c++ ! + print B.bc.OKGREEN + "Detected Xcode version: -- " + B.bc.ENDC + env['XCODE_CUR_VER'][:9] + " --" + 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" + else: + print B.bc.OKGREEN + "Found recommended sdk :" + B.bc.ENDC + " using MacOSX10.5.sdk" + + # for now, Mac builders must download and install the driver framework from 3Dconnexion + # necessary header file lives here when installed: + # /Library/Frameworks/3DconnexionClient.framework/Versions/Current/Headers/ConnexionClientAPI.h + if env['WITH_BF_3DMOUSE'] == 1 and not os.path.exists('/Library/Frameworks/3DconnexionClient.framework'): print "3D_CONNEXION_CLIENT_LIBRARY not found, disabling WITH_BF_3DMOUSE" # avoid build errors ! env['WITH_BF_3DMOUSE'] = 0 - envi = conf.Finish() + else: + env.Append(LINKFLAGS=['-weak_framework','3DconnexionClient']) if env['WITH_BF_OPENMP'] == 1: diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index 1e70ec5e13e..5aa5a43abf7 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -116,7 +116,7 @@ add_builder(c, 'linux_x86_64_scons', '', generic_builder) add_builder(c, 'salad_linux_x86_64_scons', '', generic_builder, 'soc-2011-salad') add_builder(c, 'win32_scons', 'windows', generic_builder) add_builder(c, 'salad_win32_scons', 'windows', generic_builder, 'soc-2011-salad') -add_builder(c, 'win64_scons', 'windows', generic_builder) +add_builder(c, 'win64_scons', 'win64', generic_builder) #add_builder(c, 'freebsd_i386_cmake', '', generic_builder) #add_builder(c, 'freebsd_x86_64_cmake', '', generic_builder) diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py index 9dd39ccd308..b83a65f2466 100644 --- a/build_files/buildbot/slave_compile.py +++ b/build_files/buildbot/slave_compile.py @@ -134,7 +134,7 @@ else: scons_options.append('BF_FFMPEG_LIB=' + (' '.join(ffmpeg_lib))) scons_options.append('BF_FFMPEG_DLL=' + (' '.join(ffmpeg_dll))) - scons_options.append('BF_BITNESS='+bitness) + scons_options.append('BF_BITNESS=' + bitness) retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options) sys.exit(retcode) diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/slave_pack.py index e779b10bd2a..5fdeb4a8ad5 100644 --- a/build_files/buildbot/slave_pack.py +++ b/build_files/buildbot/slave_pack.py @@ -98,7 +98,7 @@ if builder.find('scons') != -1: scons_options.append('BF_FFMPEG_LIB=' + (' '.join(ffmpeg_lib))) scons_options.append('BF_FFMPEG_DLL=' + (' '.join(ffmpeg_dll))) - scons_options.append('BF_BITNESS='+bitness) + scons_options.append('BF_BITNESS=' + bitness) retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options) sys.exit(retcode) diff --git a/build_files/cmake/config/blender_headless.cmake b/build_files/cmake/config/blender_headless.cmake new file mode 100644 index 00000000000..bd69eed30dd --- /dev/null +++ b/build_files/cmake/config/blender_headless.cmake @@ -0,0 +1,24 @@ +# headless configuration, useful in for servers or renderfarms +# builds without a windowing system (X11/Windows/Cocoa). +# +# Example usage: +# cmake -C../blender/build_files/cmake/config/blender_headless.cmake ../blender +# + +set(WITH_HEADLESS ON CACHE FORCE BOOL) +set(WITH_GAMEENGINE OFF CACHE FORCE BOOL) + +# disable audio, its possible some devs may want this but for now disable +# so the python module doesnt hold the audio device and loads quickly. +set(WITH_AUDASPACE OFF CACHE FORCE BOOL) +set(WITH_SAMPLERATE OFF CACHE FORCE BOOL) +set(WITH_FFTW3 OFF CACHE FORCE BOOL) +set(WITH_JACK OFF CACHE FORCE BOOL) +set(WITH_SDL OFF CACHE FORCE BOOL) +set(WITH_OPENAL OFF CACHE FORCE BOOL) +set(WITH_CODEC_FFMPEG OFF CACHE FORCE BOOL) +set(WITH_CODEC_SNDFILE OFF CACHE FORCE BOOL) + +# other features which are not especially useful as a python module +set(WITH_X11_XINPUT OFF CACHE FORCE BOOL) +set(WITH_INPUT_NDOF OFF CACHE FORCE BOOL) diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake new file mode 100644 index 00000000000..d2b791baede --- /dev/null +++ b/build_files/cmake/config/blender_lite.cmake @@ -0,0 +1,43 @@ +# turn everything OFF CACHE FORCE BOOL) except for python which defaults to ON +# and is needed for the UI +# +# Example usage: +# cmake -C../blender/build_files/cmake/config/blender_lite.cmake ../blender +# + +set(WITH_INSTALL_PORTABLE ON CACHE FORCE BOOL) + +set(WITH_BUILDINFO OFF CACHE FORCE BOOL) +set(WITH_BUILTIN_GLEW OFF CACHE FORCE BOOL) +set(WITH_BULLET OFF CACHE FORCE BOOL) +set(WITH_CODEC_FFMPEG OFF CACHE FORCE BOOL) +set(WITH_CODEC_SNDFILE OFF CACHE FORCE BOOL) +set(WITH_FFTW3 OFF CACHE FORCE BOOL) +set(WITH_GAMEENGINE 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) +set(WITH_IMAGE_FRAMESERVER OFF CACHE FORCE BOOL) +set(WITH_IMAGE_HDR OFF CACHE FORCE BOOL) +set(WITH_IMAGE_OPENEXR OFF CACHE FORCE BOOL) +set(WITH_IMAGE_OPENJPEG OFF CACHE FORCE BOOL) +set(WITH_IMAGE_REDCODE OFF CACHE FORCE BOOL) +set(WITH_IMAGE_TIFF OFF CACHE FORCE BOOL) +set(WITH_INPUT_NDOF OFF CACHE FORCE BOOL) +set(WITH_INTERNATIONAL OFF CACHE FORCE BOOL) +set(WITH_JACK OFF CACHE FORCE BOOL) +set(WITH_LZMA OFF CACHE FORCE BOOL) +set(WITH_LZO OFF CACHE FORCE BOOL) +set(WITH_MOD_BOOLEAN OFF CACHE FORCE BOOL) +set(WITH_MOD_DECIMATE OFF CACHE FORCE BOOL) +set(WITH_MOD_FLUID OFF CACHE FORCE BOOL) +set(WITH_MOD_SMOKE 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_OPENMP OFF CACHE FORCE BOOL) +set(WITH_PYTHON_INSTALL OFF CACHE FORCE BOOL) +set(WITH_RAYOPTIMIZATION OFF CACHE FORCE BOOL) +set(WITH_SAMPLERATE OFF CACHE FORCE BOOL) +set(WITH_SDL OFF CACHE FORCE BOOL) +set(WITH_X11_XINPUT OFF CACHE FORCE BOOL) diff --git a/build_files/cmake/config/bpy_module.cmake b/build_files/cmake/config/bpy_module.cmake new file mode 100644 index 00000000000..5392705f0dc --- /dev/null +++ b/build_files/cmake/config/bpy_module.cmake @@ -0,0 +1,34 @@ +# defaults for building blender as a python module 'bpy' +# +# Example usage: +# cmake -C../blender/build_files/cmake/config/bpy_module.cmake ../blender +# + +set(WITH_PYTHON_MODULE ON CACHE FORCE BOOL) + +# install into the systems python dir +set(WITH_INSTALL_PORTABLE OFF CACHE FORCE BOOL) + +# no point int copying python into python +set(WITH_PYTHON_INSTALL OFF CACHE FORCE BOOL) + +# dont build the game engine +set(WITH_GAMEENGINE OFF CACHE FORCE BOOL) + +# disable audio, its possible some devs may want this but for now disable +# so the python module doesnt hold the audio device and loads quickly. +set(WITH_AUDASPACE OFF CACHE FORCE BOOL) +set(WITH_SAMPLERATE OFF CACHE FORCE BOOL) +set(WITH_FFTW3 OFF CACHE FORCE BOOL) +set(WITH_JACK OFF CACHE FORCE BOOL) +set(WITH_SDL OFF CACHE FORCE BOOL) +set(WITH_OPENAL OFF CACHE FORCE BOOL) +set(WITH_CODEC_FFMPEG OFF CACHE FORCE BOOL) +set(WITH_CODEC_SNDFILE OFF CACHE FORCE BOOL) + +# other features which are not especially useful as a python module +set(WITH_X11_XINPUT OFF CACHE FORCE BOOL) +set(WITH_INPUT_NDOF OFF CACHE FORCE BOOL) +set(WITH_OPENCOLLADA OFF CACHE FORCE BOOL) +set(WITH_INTERNATIONAL OFF CACHE FORCE BOOL) +set(WITH_BULLET OFF CACHE FORCE BOOL) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index b991edcd5d4..ffc920da473 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -62,6 +62,10 @@ macro(blender_include_dirs foreach(_INC ${ARGV}) get_filename_component(_ABS_INC ${_INC} ABSOLUTE) list(APPEND _ALL_INCS ${_ABS_INC}) + # for checking for invalid includes, disable for regular use + ##if(NOT EXISTS "${_ABS_INC}/") + ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/") + ##endif() endforeach() include_directories(${_ALL_INCS}) unset(_INC) @@ -75,6 +79,9 @@ macro(blender_include_dirs_sys foreach(_INC ${ARGV}) get_filename_component(_ABS_INC ${_INC} ABSOLUTE) list(APPEND _ALL_INCS ${_ABS_INC}) + ##if(NOT EXISTS "${_ABS_INC}/") + ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/") + ##endif() endforeach() include_directories(SYSTEM ${_ALL_INCS}) unset(_INC) diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index 97e8e90e574..ec6a3b082b8 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -21,17 +21,23 @@ cmd = 'uname -p' MAC_PROC=commands.getoutput(cmd) cmd = 'uname -r' cmd_res=commands.getoutput(cmd) -MAC_CUR_VER='10.5' # by default (test below fails on my 10.5 PowerPC) -if cmd_res[:2]=='7': + +if cmd_res[:1]=='7': MAC_CUR_VER='10.3' -elif cmd_res[:2]=='8': +elif cmd_res[:1]=='8': MAC_CUR_VER='10.4' -elif cmd_res[:2]=='9': +elif cmd_res[:1]=='9': MAC_CUR_VER='10.5' elif cmd_res[:2]=='10': MAC_CUR_VER='10.6' elif cmd_res[:2]=='11': MAC_CUR_VER='10.7' +cmd = 'xcodebuild -version' +cmd_xcode=commands.getoutput(cmd) +XCODE_CUR_VER=cmd_xcode +cmd = 'xcodebuild -showsdks' +cmd_sdk=commands.getoutput(cmd) +MACOSX_SDK_CHECK=cmd_sdk if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'ppc64': USE_QTKIT=True # Carbon quicktime is not available for 64bit @@ -60,21 +66,23 @@ elif MACOSX_ARCHITECTURE == 'i386' and MAC_CUR_VER == '10.4': LCGDIR = '#../lib/darwin-8.x.i386' CC = 'gcc-4.0' CXX = 'g++-4.0' -elif MAC_CUR_VER >= '10.6': - # OSX 10.6 and 10.7 developer tools do not come with sdk < 10.6 anymore ! - MAC_MIN_VERS = '10.6' - MACOSX_DEPLOYMENT_TARGET = '10.6' - MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk' - LCGDIR = '#../lib/darwin-9.x.universal' - CC = 'llvm-gcc-4.2' - CXX = 'llvm-g++-4.2' else : - MAC_MIN_VERS = '10.5' - MACOSX_DEPLOYMENT_TARGET = '10.5' - MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk' - LCGDIR = '#../lib/darwin-9.x.universal' - CC = 'gcc-4.2' - CXX = 'g++-4.2' + if 'Mac OS X 10.5' in MACOSX_SDK_CHECK: + # OSX 10.5/6 with Xcode 3.x + MAC_MIN_VERS = '10.5' + MACOSX_DEPLOYMENT_TARGET = '10.5' + MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk' + LCGDIR = '#../lib/darwin-9.x.universal' + CC = 'gcc-4.2' + CXX = 'g++-4.2' + else: + # OSX 10.6/7 with Xcode 4.x + MAC_MIN_VERS = '10.6' + MACOSX_DEPLOYMENT_TARGET = '10.6' + MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk' + LCGDIR = '#../lib/darwin-9.x.universal' + CC = 'gcc-4.2' + CXX = 'g++-4.2' LIBDIR = '${LCGDIR}' @@ -199,8 +207,8 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include' BF_GETTEXT_LIB = 'intl' BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib' -WITH_BF_GAMEENGINE=True -WITH_BF_PLAYER = False +WITH_BF_GAMEENGINE = True +WITH_BF_PLAYER = True WITH_BF_BULLET = True BF_BULLET = '#extern/bullet2/src' @@ -251,7 +259,7 @@ BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries' BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL'] #OpenCollada flags -WITH_BF_COLLADA = False +WITH_BF_COLLADA = True BF_COLLADA = '#source/blender/collada' BF_COLLADA_INC = '${BF_COLLADA}' BF_COLLADA_LIB = 'bf_collada' @@ -276,8 +284,8 @@ if MACOSX_ARCHITECTURE == 'i386': elif MACOSX_ARCHITECTURE == 'x86_64': BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-msse2'] -# SpaceNavigator and related 3D mice -WITH_BF_3DMOUSE = False +# SpaceNavigator and related 3D mice, driver must be 3DxWare 10 Beta 4 (Mac OS X) or later ! +WITH_BF_3DMOUSE = True ############################################################################# ################### various compile settings and flags ################## @@ -296,31 +304,28 @@ CPPFLAGS = []+ARCH_FLAGS CCFLAGS = ['-pipe','-funsigned-char']+ARCH_FLAGS CXXFLAGS = ['-pipe','-funsigned-char']+ARCH_FLAGS -if WITH_GHOST_COCOA==True: +if WITH_GHOST_COCOA: PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Cocoa','-framework','Carbon','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']+ARCH_FLAGS else: PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Carbon','-framework','AGL','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']+ARCH_FLAGS -if WITH_BF_QUICKTIME == True: - if USE_QTKIT == True: +if WITH_BF_QUICKTIME: + if USE_QTKIT: PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QTKit'] else: PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QuickTime'] -if WITH_BF_3DMOUSE: - PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS + ['-weak_framework','3DconnexionClient'] - #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 LLIBS = ['stdc++', 'SystemStubs'] -# some flags shuffling for different Os versions +# some flags shuffling for different OS versions if MAC_MIN_VERS == '10.3': CFLAGS = ['-fuse-cxa-atexit']+CFLAGS CXXFLAGS = ['-fuse-cxa-atexit']+CXXFLAGS PLATFORM_LINKFLAGS = ['-fuse-cxa-atexit']+PLATFORM_LINKFLAGS LLIBS.append('crt3.o') -if USE_SDK==True: +if USE_SDK: SDK_FLAGS=['-isysroot', MACOSX_SDK,'-mmacosx-version-min='+MAC_MIN_VERS,'-arch',MACOSX_ARCHITECTURE] PLATFORM_LINKFLAGS = ['-mmacosx-version-min='+MAC_MIN_VERS,'-Wl','-isysroot',MACOSX_SDK,'-arch',MACOSX_ARCHITECTURE]+PLATFORM_LINKFLAGS CCFLAGS=SDK_FLAGS+CCFLAGS diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index 9b911b9d6f0..25e0582c536 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -149,7 +149,7 @@ def validate_arguments(args, bc): 'BF_PROFILE_CFLAGS', 'BF_PROFILE_CCFLAGS', 'BF_PROFILE_CXXFLAGS', 'BF_PROFILE_LINKFLAGS', 'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS', 'C_WARN', 'CC_WARN', 'CXX_WARN', - 'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE', + 'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE', 'MACOSX_SDK_CHECK', 'XCODE_CUR_VER', ] @@ -462,6 +462,8 @@ def read_opts(env, cfg, args): ('LLIBS', 'Platform libs', []), ('PLATFORM_LINKFLAGS', 'Platform linkflags', []), ('MACOSX_ARCHITECTURE', 'python_arch.zip select', ''), + ('MACOSX_SDK_CHECK', 'detect available OSX sdk`s', ''), + ('XCODE_CUR_VER', 'detect XCode version', ''), (BoolVariable('BF_PROFILE', 'Add profiling information if true', False)), ('BF_PROFILE_CFLAGS', 'C only profiling flags', []), diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile index 79b3f1a4160..b4d3b14b9dd 100644 --- a/doc/doxygen/Doxyfile +++ b/doc/doxygen/Doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = Blender # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = "V2.58" +PROJECT_NUMBER = "V2.59" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst index 128f87f76bd..798491b4710 100644 --- a/doc/python_api/rst/bge.logic.rst +++ b/doc/python_api/rst/bge.logic.rst @@ -217,6 +217,12 @@ General functions Loads a scene into the game engine. + .. note:: + + This function is not effective immediately, the scene is queued + and added on the next logic cycle where it will be available + from `getSceneList` + :arg name: The name of the scene :type name: string :arg overlay: Overlay or underlay (optional) diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt index d7658c50a36..bdda0f3382e 100644 --- a/intern/ghost/CMakeLists.txt +++ b/intern/ghost/CMakeLists.txt @@ -149,6 +149,10 @@ if(WITH_HEADLESS OR WITH_GHOST_SDL) intern/GHOST_SystemPathsX11.cpp intern/GHOST_SystemPathsX11.h ) + + if(NOT WITH_INSTALL_PORTABLE) + add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}") + endif() elseif(WIN32) list(APPEND SRC @@ -204,10 +208,6 @@ elseif(APPLE) elseif(UNIX) - if(WITH_X11_XINPUT) - add_definitions(-DWITH_X11_XINPUT) - endif() - list(APPEND INC_SYS ${X11_X11_INCLUDE_PATH} ) @@ -224,10 +224,6 @@ elseif(UNIX) intern/GHOST_WindowX11.h ) - if(NOT WITH_INSTALL_PORTABLE) - add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}") - endif() - if(X11_XF86keysym_INCLUDE_PATH) add_definitions(-DWITH_XF86KEYSYM) list(APPEND INC_SYS @@ -243,6 +239,14 @@ elseif(UNIX) ) endif() + if(NOT WITH_INSTALL_PORTABLE) + add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}") + endif() + + if(WITH_X11_XINPUT) + add_definitions(-DWITH_X11_XINPUT) + endif() + elseif(WIN32) if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 855e27b9964..a24ccc3ff6c 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -375,7 +375,7 @@ void GHOST_NDOFManager::setDeadZone(float dz) static bool atHomePosition(GHOST_TEventNDOFMotionData* ndof) { -#define HOME(foo) (ndof->foo == 0) +#define HOME(foo) (ndof->foo == 0.f) return HOME(tx) && HOME(ty) && HOME(tz) && HOME(rx) && HOME(ry) && HOME(rz); #undef HOME } @@ -386,9 +386,9 @@ static bool nearHomePosition(GHOST_TEventNDOFMotionData* ndof, float threshold) return atHomePosition(ndof); } else { -#define HOME1(foo) (fabsf(ndof->foo) < threshold) - return HOME1(tx) && HOME1(ty) && HOME1(tz) && HOME1(rx) && HOME1(ry) && HOME1(rz); -#undef HOME1 +#define HOME(foo) (fabsf(ndof->foo) < threshold) + return HOME(tx) && HOME(ty) && HOME(tz) && HOME(rx) && HOME(ry) && HOME(rz); +#undef HOME } } @@ -423,17 +423,17 @@ bool GHOST_NDOFManager::sendMotionEvent() data->dt = 0.001f * (m_motionTime - m_prevMotionTime); // in seconds - bool handMotion = !nearHomePosition(data, m_deadZone); + bool weHaveMotion = !nearHomePosition(data, m_deadZone); // determine what kind of motion event to send (Starting, InProgress, Finishing) // and where that leaves this NDOF manager (NotStarted, InProgress, Finished) switch (m_motionState) { case GHOST_kNotStarted: case GHOST_kFinished: - if (handMotion) { + if (weHaveMotion) { data->progress = GHOST_kStarting; m_motionState = GHOST_kInProgress; - // prev motion time will be ancient, so just make up something reasonable + // prev motion time will be ancient, so just make up a reasonable time delta data->dt = 0.0125f; } else { @@ -443,9 +443,9 @@ bool GHOST_NDOFManager::sendMotionEvent() } break; case GHOST_kInProgress: - if (handMotion) { + if (weHaveMotion) { data->progress = GHOST_kInProgress; - // keep InProgress state + // remain 'InProgress' } else { data->progress = GHOST_kFinishing; @@ -453,7 +453,7 @@ bool GHOST_NDOFManager::sendMotionEvent() } break; default: - break; + ; // will always be one of the above } #ifdef DEBUG_NDOF_MOTION diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h index 27397b711b7..e9897f30104 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h +++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h @@ -22,10 +22,12 @@ * * ***** END GPL LICENSE BLOCK ***** */ - + #ifndef _GHOST_NDOFMANAGERCOCOA_H_ #define _GHOST_NDOFMANAGERCOCOA_H_ +#ifdef WITH_INPUT_NDOF + #include "GHOST_NDOFManager.h" // Event capture is handled within the NDOF manager on Macintosh, @@ -47,4 +49,5 @@ private: }; -#endif +#endif // WITH_INPUT_NDOF +#endif // #include guard diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm index 53a991a7396..409ed953134 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm +++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm @@ -22,7 +22,9 @@ * * ***** END GPL LICENSE BLOCK ***** */ - + +#ifdef WITH_INPUT_NDOF + #include "GHOST_NDOFManagerCocoa.h" #include "GHOST_SystemCocoa.h" @@ -157,16 +159,22 @@ GHOST_NDOFManagerCocoa::GHOST_NDOFManagerCocoa(GHOST_System& sys) GHOST_NDOFManagerCocoa::~GHOST_NDOFManagerCocoa() { - UnregisterConnexionClient(m_clientID); - CleanupConnexionHandlers(); - ghost_system = NULL; - ndof_manager = NULL; + if (available()) + { + UnregisterConnexionClient(m_clientID); + CleanupConnexionHandlers(); + ghost_system = NULL; + ndof_manager = NULL; + } } - -bool GHOST_NDOFManagerCocoa::available() -{ - // extern OSErr InstallConnexionHandlers() __attribute__((weak_import)); - // ^^ not needed since the entire framework is weak-linked - return InstallConnexionHandlers != NULL; - // this means that the driver is installed and dynamically linked to blender +extern "C" { + bool GHOST_NDOFManagerCocoa::available() + { + extern OSErr InstallConnexionHandlers() __attribute__((weak_import)); + // Make the linker happy for the framework check (see link below for more info) + // http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html + return InstallConnexionHandlers != NULL; + // this means that the driver is installed and dynamically linked to blender + } } +#endif // WITH_INPUT_NDOF diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp index 099fa15d179..4dd53319039 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp +++ b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp @@ -22,7 +22,9 @@ * * ***** END GPL LICENSE BLOCK ***** */ - + +#ifdef WITH_INPUT_NDOF + #include "GHOST_NDOFManagerX11.h" #include "GHOST_SystemX11.h" #include @@ -34,14 +36,14 @@ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys) GHOST_NDOFManager(sys), m_available(false) { - setDeadZone(0.1f); // how to calibrate on Linux? throw away slight motion! + setDeadZone(0.1f); /* how to calibrate on Linux? throw away slight motion! */ if (spnav_open() != -1) { - // determine exactly which device (if any) is plugged in + /* determine exactly which device (if any) is plugged in */ #define MAX_LINE_LENGTH 100 - // look for USB devices with Logitech's vendor ID + /* look for USB devices with Logitech's vendor ID */ FILE* command_output = popen("lsusb -d 046d:","r"); if (command_output) { char line[MAX_LINE_LENGTH] = {0}; @@ -50,15 +52,15 @@ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys) if (sscanf(line, "Bus %*d Device %*d: ID %hx:%hx", &vendor_id, &product_id) == 2) if (setDevice(vendor_id, product_id)) { m_available = true; - break; // stop looking once the first 3D mouse is found + break; /* stop looking once the first 3D mouse is found */ } } pclose(command_output); } } else { - printf("ndof: spacenavd not found\n"); - // This isn't a hard error, just means the user doesn't have a 3D mouse. + puts("ndof: spacenavd not found"); + /* This isn't a hard error, just means the user doesn't have a 3D mouse. */ } } @@ -73,11 +75,6 @@ bool GHOST_NDOFManagerX11::available() return m_available; } -//bool GHOST_NDOFManagerX11::identifyDevice() -//{ -// -//} - bool GHOST_NDOFManagerX11::processEvents() { GHOST_TUns64 now = m_system.getMilliSeconds(); @@ -88,7 +85,7 @@ bool GHOST_NDOFManagerX11::processEvents() switch (e.type) { case SPNAV_EVENT_MOTION: { - // convert to blender view coords + /* convert to blender view coords */ short t[3] = {e.motion.x, e.motion.y, -e.motion.z}; short r[3] = {-e.motion.rx, -e.motion.ry, e.motion.rz}; @@ -104,3 +101,5 @@ bool GHOST_NDOFManagerX11::processEvents() } return anyProcessed; } + +#endif /* WITH_INPUT_NDOF */ diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.h b/intern/ghost/intern/GHOST_NDOFManagerX11.h index 82bd256c707..0a549753756 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerX11.h +++ b/intern/ghost/intern/GHOST_NDOFManagerX11.h @@ -26,6 +26,8 @@ #ifndef _GHOST_NDOFMANAGERX11_H_ #define _GHOST_NDOFMANAGERX11_H_ +#ifdef WITH_INPUT_NDOF + #include "GHOST_NDOFManager.h" /* Event capture is handled within the NDOF manager on Linux, @@ -40,10 +42,9 @@ public: bool processEvents(); private: - // bool identifyDevice(); - bool m_available; }; -#endif +#endif /* WITH_INPUT_NDOF */ +#endif /* #include guard */ diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index 17f0f2d6ecd..303c2b24497 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -21,8 +21,8 @@ * * The Original Code is: all of this file. * - * Contributor(s): Maarten Gribnau 05/2001 - * Damien Plisson 09/2009 + * Contributors: Maarten Gribnau 05/2001 + * Damien Plisson 09/2009 * * ***** END GPL LICENSE BLOCK ***** */ @@ -43,16 +43,17 @@ #include "GHOST_EventButton.h" #include "GHOST_EventCursor.h" #include "GHOST_EventWheel.h" -#include "GHOST_EventNDOF.h" #include "GHOST_EventTrackpad.h" #include "GHOST_EventDragnDrop.h" #include "GHOST_EventString.h" - #include "GHOST_TimerManager.h" #include "GHOST_TimerTask.h" #include "GHOST_WindowManager.h" #include "GHOST_WindowCocoa.h" +#ifdef WITH_INPUT_NDOF #include "GHOST_NDOFManagerCocoa.h" +#endif + #include "AssertMacros.h" #pragma mark KeyMap, mouse converters diff --git a/intern/ghost/intern/GHOST_SystemPathsX11.cpp b/intern/ghost/intern/GHOST_SystemPathsX11.cpp index dd8935732c5..135f5c42dc5 100644 --- a/intern/ghost/intern/GHOST_SystemPathsX11.cpp +++ b/intern/ghost/intern/GHOST_SystemPathsX11.cpp @@ -43,7 +43,11 @@ #include // for fprintf only #include // for exit -using namespace std; +#ifdef PREFIX +static const char *static_path= PREFIX "/share" ; +#else +static const char *static_path= NULL; +#endif GHOST_SystemPathsX11::GHOST_SystemPathsX11() { @@ -56,21 +60,12 @@ GHOST_SystemPathsX11::~GHOST_SystemPathsX11() const GHOST_TUns8* GHOST_SystemPathsX11::getSystemDir() const { /* no prefix assumes a portable build which only uses bundled scripts */ -#ifdef PREFIX - return (GHOST_TUns8*) PREFIX "/share"; -#else - return NULL; -#endif + return (const GHOST_TUns8 *)static_path; } const GHOST_TUns8* GHOST_SystemPathsX11::getUserDir() const { - const char* env = getenv("HOME"); - if(env) { - return (GHOST_TUns8*) env; - } else { - return NULL; - } + return (const GHOST_TUns8 *)getenv("HOME"); } const GHOST_TUns8* GHOST_SystemPathsX11::getBinaryDir() const diff --git a/intern/ghost/intern/GHOST_SystemSDL.cpp b/intern/ghost/intern/GHOST_SystemSDL.cpp index 69a9f936cf6..f2cc45731fa 100644 --- a/intern/ghost/intern/GHOST_SystemSDL.cpp +++ b/intern/ghost/intern/GHOST_SystemSDL.cpp @@ -146,7 +146,7 @@ convertSDLKey(SDL_Scancode key) if ((key >= SDL_SCANCODE_A) && (key <= SDL_SCANCODE_Z)) { type= GHOST_TKey( key - SDL_SCANCODE_A + int(GHOST_kKeyA)); } else if ((key >= SDL_SCANCODE_1) && (key <= SDL_SCANCODE_0)) { - type= GHOST_TKey(key - SDL_SCANCODE_1 + int(GHOST_kKey0)); + type= (key == SDL_SCANCODE_0) ? GHOST_kKey0 : GHOST_TKey(key - SDL_SCANCODE_1 + int(GHOST_kKey1)); } else if ((key >= SDL_SCANCODE_F1) && (key <= SDL_SCANCODE_F12)) { type= GHOST_TKey(key - SDL_SCANCODE_F1 + int(GHOST_kKeyF1)); } else if ((key >= SDL_SCANCODE_F13) && (key <= SDL_SCANCODE_F24)) { @@ -167,6 +167,8 @@ convertSDLKey(SDL_Scancode key) GXMAP(type,SDL_SCANCODE_APOSTROPHE, GHOST_kKeyQuote); GXMAP(type,SDL_SCANCODE_GRAVE, GHOST_kKeyAccentGrave); GXMAP(type,SDL_SCANCODE_MINUS, GHOST_kKeyMinus); + GXMAP(type,SDL_SCANCODE_EQUALS, GHOST_kKeyEqual); + GXMAP(type,SDL_SCANCODE_SLASH, GHOST_kKeySlash); GXMAP(type,SDL_SCANCODE_BACKSLASH, GHOST_kKeyBackslash); GXMAP(type,SDL_SCANCODE_KP_EQUALS, GHOST_kKeyEqual); @@ -198,6 +200,7 @@ convertSDLKey(SDL_Scancode key) GXMAP(type,SDL_SCANCODE_CAPSLOCK, GHOST_kKeyCapsLock); GXMAP(type,SDL_SCANCODE_SCROLLLOCK, GHOST_kKeyScrollLock); GXMAP(type,SDL_SCANCODE_NUMLOCKCLEAR, GHOST_kKeyNumLock); + GXMAP(type,SDL_SCANCODE_PRINTSCREEN, GHOST_kKeyPrintScreen); /* keypad events */ @@ -382,8 +385,26 @@ GHOST_SystemSDL::processEvent(SDL_Event *sdl_event) GHOST_TKey gkey= convertSDLKey(sdl_sub_evt.keysym.scancode); /* note, the sdl_sub_evt.keysym.sym is truncated, for unicode support ghost has to be modified */ + /* printf("%d\n", sym); */ if(sym > 127) { - sym= 0; + switch(sym) { + case SDLK_KP_DIVIDE: sym= '/'; break; + case SDLK_KP_MULTIPLY: sym= '*'; break; + case SDLK_KP_MINUS: sym= '-'; break; + case SDLK_KP_PLUS: sym= '+'; break; + case SDLK_KP_1: sym= '1'; break; + case SDLK_KP_2: sym= '2'; break; + case SDLK_KP_3: sym= '3'; break; + case SDLK_KP_4: sym= '4'; break; + case SDLK_KP_5: sym= '5'; break; + case SDLK_KP_6: sym= '6'; break; + case SDLK_KP_7: sym= '7'; break; + case SDLK_KP_8: sym= '8'; break; + case SDLK_KP_9: sym= '9'; break; + case SDLK_KP_0: sym= '0'; break; + case SDLK_KP_PERIOD: sym= '.'; break; + default: sym= 0; break; + } } else { if(sdl_sub_evt.keysym.mod & (KMOD_LSHIFT|KMOD_RSHIFT)) { diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 105f71b514f..d5100e589f2 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -42,8 +42,10 @@ #include "GHOST_EventKey.h" #include "GHOST_EventButton.h" #include "GHOST_EventWheel.h" -#include "GHOST_NDOFManagerX11.h" #include "GHOST_DisplayManagerX11.h" +#ifdef WITH_INPUT_NDOF +#include "GHOST_NDOFManagerX11.h" +#endif #include "GHOST_Debug.h" @@ -815,22 +817,6 @@ GHOST_SystemX11::processEvent(XEvent *xe) } } -#if 0 // obsolete SpaceNav code - - void * -GHOST_SystemX11:: -prepareNdofInfo(volatile GHOST_TEventNDOFData *currentNdofValues) -{ - const vector& v(m_windowManager->getWindows()); - if (v.size() > 0) - sNdofInfo.window = static_cast(v[0])->getXWindow(); - sNdofInfo.display = m_display; - sNdofInfo.currValues = currentNdofValues; - return (void*)&sNdofInfo; -} - -#endif - GHOST_TSuccess GHOST_SystemX11:: getModifierKeys( diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 1ba51376ff9..0c8c0adf041 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -612,7 +612,6 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state) wp.showCmd = SW_SHOWMINIMIZED; break; case GHOST_kWindowStateMaximized: - ShowWindow(m_hWnd, SW_HIDE); wp.showCmd = SW_SHOWMAXIMIZED; SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW); break; @@ -629,12 +628,12 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state) break; case GHOST_kWindowStateNormal: default: - ShowWindow(m_hWnd, SW_HIDE); wp.showCmd = SW_SHOWNORMAL; SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW); break; } - return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure; + SetWindowPos(m_hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); /*Clears window cache for SetWindowLongPtr */ + return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure; } diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index a4beea6d8d5..f96a49b9f4a 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -61,18 +61,6 @@ #ifndef MEM_MALLOCN_H #define MEM_MALLOCN_H -#ifndef LIBEXPORT -#ifdef _WIN32 -#ifdef BLENDER_PLUGIN -#define LIBEXPORT __declspec(dllimport) -#else -#define LIBEXPORT __declspec(dllexport) -#endif -#else -#define LIBEXPORT -#endif -#endif - #include /* needed for FILE* */ #include "MEM_sys_types.h" /* needed for uintptr_t */ @@ -107,7 +95,7 @@ extern "C" { /** * Duplicates a block of memory, and returns a pointer to the * newly allocated block. */ - LIBEXPORT void *MEM_dupallocN(void *vmemh) WARN_UNUSED; + void *MEM_dupallocN(void *vmemh) WARN_UNUSED; /** * Reallocates a block of memory, and returns pointer to the newly diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png index d6ccdb5b733..79339095b07 100644 Binary files a/release/datafiles/splash.png and b/release/datafiles/splash.png differ diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py index a43b42e49a1..5c371fd750a 100644 --- a/release/scripts/modules/bpy/__init__.py +++ b/release/scripts/modules/bpy/__init__.py @@ -44,14 +44,18 @@ from . import utils, path, ops ops = ops.ops_fake_module -def _main(): - import sys as _sys +def main(): + import sys # Possibly temp. addons path from os.path import join, dirname, normpath - _sys.path.append(normpath(join(dirname(__file__), + sys.path.append(normpath(join(dirname(__file__), "..", "..", "addons", "modules"))) + # fake module to allow: + # from bpy.types import Panel + sys.modules["bpy.types"] = types + # if "-d" in sys.argv: # Enable this to measure startup speed if 0: import cProfile @@ -65,6 +69,6 @@ def _main(): utils.load_scripts() -_main() +main() -del _main +del main diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py index 45664384efa..6271c1f77b5 100644 --- a/release/scripts/modules/bpy_extras/io_utils.py +++ b/release/scripts/modules/bpy_extras/io_utils.py @@ -379,7 +379,7 @@ def path_reference(filepath, is_relative = filepath.startswith("//") filepath_abs = os.path.normpath(bpy.path.abspath(filepath, base_src)) - if mode in ('ABSOLUTE', 'RELATIVE', 'STRIP'): + if mode in {'ABSOLUTE', 'RELATIVE', 'STRIP'}: pass elif mode == 'MATCH': mode = 'RELATIVE' if is_relative else 'ABSOLUTE' @@ -439,7 +439,7 @@ def path_reference_copy(copy_set, report=print): shutil.copy(file_src, file_dst) -def unique_name(key, name, name_dict, name_max=-1, clean_func=None): +def unique_name(key, name, name_dict, name_max=-1, clean_func=None, sep="."): """ Helper function for storing unique names which may have special characters stripped and restricted to a maximum length. @@ -456,6 +456,9 @@ def unique_name(key, name, name_dict, name_max=-1, clean_func=None): :type name_dict: dict :arg clean_func: Function to call on *name* before creating a unique value. :type clean_func: function + :arg sep: Separator to use when between the name and a number when a + duplicate name is found. + :type sep: string """ name_new = name_dict.get(key) if name_new is None: @@ -466,14 +469,15 @@ def unique_name(key, name, name_dict, name_max=-1, clean_func=None): if name_max == -1: while name_new in name_dict_values: - name_new = "%s.%03d" % (name_new_orig, count) + name_new = "%s%s%03d" % (name_new_orig, sep, count) count += 1 else: name_new = name_new[:name_max] while name_new in name_dict_values: count_str = "%03d" % count - name_new = "%.*s.%s" % (name_max - (len(count_str) + 1), + name_new = "%.*s%s%s" % (name_max - (len(count_str) + 1), name_new_orig, + sep, count_str, ) count += 1 diff --git a/release/scripts/modules/bpy_extras/mesh_utils.py b/release/scripts/modules/bpy_extras/mesh_utils.py index f9400674138..c965169ff04 100644 --- a/release/scripts/modules/bpy_extras/mesh_utils.py +++ b/release/scripts/modules/bpy_extras/mesh_utils.py @@ -294,7 +294,7 @@ def ngon_tesselate(from_data, indices, fix_loops=True): ''' Normal single concave loop filling ''' - if type(from_data) in (tuple, list): + if type(from_data) in {tuple, list}: verts = [Vector(from_data[i]) for ii, i in enumerate(indices)] else: verts = [from_data.vertices[i].co for ii, i in enumerate(indices)] @@ -312,7 +312,7 @@ def ngon_tesselate(from_data, indices, fix_loops=True): used twice. This is used by lightwave LWO files a lot ''' - if type(from_data) in (tuple, list): + if type(from_data) in {tuple, list}: verts = [vert_treplet(Vector(from_data[i]), ii) for ii, i in enumerate(indices)] else: diff --git a/release/scripts/modules/bpyml.py b/release/scripts/modules/bpyml.py index fdf5172a0b3..42d2bf94fba 100644 --- a/release/scripts/modules/bpyml.py +++ b/release/scripts/modules/bpyml.py @@ -120,7 +120,7 @@ def fromxml(data): py_item = (xml_node.tagName, _fromxml_kwargs(xml_node), []) #_fromxml_iter(py_item, xml_node.childNodes) for xml_node_child in xml_node.childNodes: - if xml_node_child.nodeType not in (xml_node_child.TEXT_NODE, xml_node_child.COMMENT_NODE): + if xml_node_child.nodeType not in {xml_node_child.TEXT_NODE, xml_node_child.COMMENT_NODE}: py_item[CHILDREN].append(_fromxml(xml_node_child)) return py_item diff --git a/release/scripts/modules/bpyml_ui.py b/release/scripts/modules/bpyml_ui.py index 5df04b8bf34..f4b6de23dbb 100644 --- a/release/scripts/modules/bpyml_ui.py +++ b/release/scripts/modules/bpyml_ui.py @@ -40,13 +40,13 @@ def _parse_rna(prop, value): elif prop.type == 'INT': value = int(value) elif prop.type == 'BOOLEAN': - if value in (True, False): + if value in {True, False}: pass else: - if value not in ("True", "False"): + if value not in {"True", "False"}: raise Exception("invalid bool value: %s" % value) value = bool(value == "True") - elif prop.type in ('STRING', 'ENUM'): + elif prop.type in {'STRING', 'ENUM'}: pass elif prop.type == 'POINTER': value = eval("_bpy." + value) diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py index 93a344f4b09..943f86adecb 100644 --- a/release/scripts/modules/rna_info.py +++ b/release/scripts/modules/rna_info.py @@ -148,7 +148,7 @@ class InfoStructRNA: import types functions = [] for identifier, attr in self._get_py_visible_attrs(): - if type(attr) in (types.FunctionType, types.MethodType): + if type(attr) in {types.FunctionType, types.MethodType}: functions.append((identifier, attr)) return functions @@ -156,7 +156,7 @@ class InfoStructRNA: import types functions = [] for identifier, attr in self._get_py_visible_attrs(): - if type(attr) in (types.BuiltinMethodType, types.BuiltinFunctionType): + if type(attr) in {types.BuiltinMethodType, types.BuiltinFunctionType}: functions.append((identifier, attr)) return functions @@ -260,7 +260,7 @@ class InfoPropertyRNA: if self.array_length: type_str += " array of %d items" % (self.array_length) - if self.type in ("float", "int"): + if self.type in {"float", "int"}: type_str += " in [%s, %s]" % (range_str(self.min), range_str(self.max)) elif self.type == "enum": if self.is_enum_flag: @@ -595,7 +595,7 @@ def BuildRNAInfo(): for prop in rna_info.properties: # ERROR CHECK default = prop.default - if type(default) in (float, int): + if type(default) in {float, int}: if default < prop.min or default > prop.max: print("\t %s.%s, %s not in [%s - %s]" % (rna_info.identifier, prop.identifier, default, prop.min, prop.max)) diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py index 27a6d21d519..1c4518c4feb 100644 --- a/release/scripts/startup/bl_operators/add_mesh_torus.py +++ b/release/scripts/startup/bl_operators/add_mesh_torus.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Operator import mathutils @@ -81,7 +82,7 @@ from bpy.props import (FloatProperty, ) -class AddTorus(bpy.types.Operator): +class AddTorus(Operator): '''Add a torus mesh''' bl_idname = "mesh.primitive_torus_add" bl_label = "Add Torus" diff --git a/release/scripts/startup/bl_operators/animsys_update.py b/release/scripts/startup/bl_operators/animsys_update.py index 63d438a5066..3710c57ac16 100644 --- a/release/scripts/startup/bl_operators/animsys_update.py +++ b/release/scripts/startup/bl_operators/animsys_update.py @@ -686,9 +686,10 @@ data_path_update = [ import bpy +from bpy.types import Operator -class UpdateAnimData(bpy.types.Operator): +class UpdateAnimData(Operator): """Update data paths from 2.56 and previous versions, modifying data paths of drivers and fcurves""" bl_idname = "anim.update_data_paths" bl_label = "Update Animation Data" diff --git a/release/scripts/startup/bl_operators/image.py b/release/scripts/startup/bl_operators/image.py index 23bafe2eaae..9226cbed51b 100644 --- a/release/scripts/startup/bl_operators/image.py +++ b/release/scripts/startup/bl_operators/image.py @@ -19,10 +19,11 @@ # import bpy +from bpy.types import Operator from bpy.props import StringProperty -class EditExternally(bpy.types.Operator): +class EditExternally(Operator): '''Edit image in an external application''' bl_idname = "image.external_edit" bl_label = "Image Edit Externally" @@ -61,13 +62,19 @@ class EditExternally(bpy.types.Operator): def execute(self, context): import os import subprocess - filepath = os.path.normpath(bpy.path.abspath(self.filepath)) + + filepath = self.filepath + + if not filepath: + self.report({'ERROR'}, "Image path not set") + return {'CANCELLED'} + + filepath = os.path.normpath(bpy.path.abspath(filepath)) if not os.path.exists(filepath): self.report({'ERROR'}, "Image path %r not found, image may be packed or " "unsaved." % filepath) - return {'CANCELLED'} cmd = self._editor_guess(context) + [filepath] @@ -100,7 +107,7 @@ class EditExternally(bpy.types.Operator): return {'FINISHED'} -class SaveDirty(bpy.types.Operator): +class SaveDirty(Operator): """Save all modified textures""" bl_idname = "image.save_dirty" bl_label = "Save Dirty" @@ -123,7 +130,7 @@ class SaveDirty(bpy.types.Operator): return {'FINISHED'} -class ProjectEdit(bpy.types.Operator): +class ProjectEdit(Operator): """Edit a snapshot of the viewport in an external image editor""" bl_idname = "image.project_edit" bl_label = "Project Edit" @@ -190,7 +197,7 @@ class ProjectEdit(bpy.types.Operator): return {'FINISHED'} -class ProjectApply(bpy.types.Operator): +class ProjectApply(Operator): """Project edited image back onto the object""" bl_idname = "image.project_apply" bl_label = "Project Apply" diff --git a/release/scripts/startup/bl_operators/mesh.py b/release/scripts/startup/bl_operators/mesh.py index 344b238709f..4114381f3dc 100644 --- a/release/scripts/startup/bl_operators/mesh.py +++ b/release/scripts/startup/bl_operators/mesh.py @@ -19,11 +19,12 @@ # import bpy +from bpy.types import Operator from bpy.props import EnumProperty -class MeshSelectInteriorFaces(bpy.types.Operator): +class MeshSelectInteriorFaces(Operator): '''Select faces where all edges have more then 2 face users.''' bl_idname = "mesh.faces_select_interior" @@ -67,7 +68,7 @@ class MeshSelectInteriorFaces(bpy.types.Operator): return {'FINISHED'} -class MeshMirrorUV(bpy.types.Operator): +class MeshMirrorUV(Operator): '''Copy mirror UV coordinates on the X axis based on a mirrored mesh''' bl_idname = "mesh.faces_mirror_uv" bl_label = "Copy Mirrored UV coords" diff --git a/release/scripts/startup/bl_operators/nla.py b/release/scripts/startup/bl_operators/nla.py index 469e9015e62..44ed846e530 100644 --- a/release/scripts/startup/bl_operators/nla.py +++ b/release/scripts/startup/bl_operators/nla.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Operator def pose_frame_info(obj): @@ -191,7 +192,7 @@ def bake(frame_start, from bpy.props import IntProperty, BoolProperty, EnumProperty -class BakeAction(bpy.types.Operator): +class BakeAction(Operator): '''Bake animation to an Action''' bl_idname = "nla.bake" bl_label = "Bake Action" diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py index 627a1530fe1..79f57990f37 100644 --- a/release/scripts/startup/bl_operators/object.py +++ b/release/scripts/startup/bl_operators/object.py @@ -19,10 +19,11 @@ # import bpy +from bpy.types import Operator from bpy.props import StringProperty, BoolProperty, EnumProperty, IntProperty -class SelectPattern(bpy.types.Operator): +class SelectPattern(Operator): '''Select object matching a naming pattern''' bl_idname = "object.select_pattern" bl_label = "Select Pattern" @@ -99,7 +100,7 @@ class SelectPattern(bpy.types.Operator): row.prop(self, "extend") -class SelectCamera(bpy.types.Operator): +class SelectCamera(Operator): '''Select object matching a naming pattern''' bl_idname = "object.select_camera" bl_label = "Select Camera" @@ -120,7 +121,7 @@ class SelectCamera(bpy.types.Operator): return {'FINISHED'} -class SelectHierarchy(bpy.types.Operator): +class SelectHierarchy(Operator): '''Select object relative to the active objects position''' \ '''in the hierarchy''' bl_idname = "object.select_hierarchy" @@ -187,7 +188,7 @@ class SelectHierarchy(bpy.types.Operator): return {'CANCELLED'} -class SubdivisionSet(bpy.types.Operator): +class SubdivisionSet(Operator): '''Sets a Subdivision Surface Level (1-5)''' bl_idname = "object.subdivision_set" @@ -263,7 +264,7 @@ class SubdivisionSet(bpy.types.Operator): return {'FINISHED'} -class ShapeTransfer(bpy.types.Operator): +class ShapeTransfer(Operator): '''Copy another selected objects active shape to this one by ''' \ '''applying the relative offsets''' @@ -507,7 +508,7 @@ class ShapeTransfer(bpy.types.Operator): return self._main(ob_act, objects, self.mode, self.use_clamp) -class JoinUVs(bpy.types.Operator): +class JoinUVs(Operator): '''Copy UV Layout to objects with matching geometry''' bl_idname = "object.join_uvs" bl_label = "Join as UVs" @@ -575,7 +576,7 @@ class JoinUVs(bpy.types.Operator): return {'FINISHED'} -class MakeDupliFace(bpy.types.Operator): +class MakeDupliFace(Operator): '''Make linked objects into dupli-faces''' bl_idname = "object.make_dupli_face" bl_label = "Make Dupli-Face" @@ -649,7 +650,7 @@ class MakeDupliFace(bpy.types.Operator): return {'FINISHED'} -class IsolateTypeRender(bpy.types.Operator): +class IsolateTypeRender(Operator): '''Hide unselected render objects of same type as active ''' \ '''by setting the hide render flag''' bl_idname = "object.isolate_type_render" @@ -670,7 +671,7 @@ class IsolateTypeRender(bpy.types.Operator): return {'FINISHED'} -class ClearAllRestrictRender(bpy.types.Operator): +class ClearAllRestrictRender(Operator): '''Reveal all render objects by setting the hide render flag''' bl_idname = "object.hide_render_clear_all" bl_label = "Clear All Restrict Render" diff --git a/release/scripts/startup/bl_operators/object_align.py b/release/scripts/startup/bl_operators/object_align.py index 7fd769c40c9..d4a3d826f2f 100644 --- a/release/scripts/startup/bl_operators/object_align.py +++ b/release/scripts/startup/bl_operators/object_align.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Operator from mathutils import Vector @@ -339,7 +340,7 @@ def align_objects(align_x, from bpy.props import EnumProperty, BoolProperty -class AlignObjects(bpy.types.Operator): +class AlignObjects(Operator): '''Align Objects''' bl_idname = "object.align" bl_label = "Align Objects" diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py index ef10bfd737d..cd206da3a8e 100644 --- a/release/scripts/startup/bl_operators/object_quick_effects.py +++ b/release/scripts/startup/bl_operators/object_quick_effects.py @@ -20,6 +20,7 @@ from mathutils import Vector import bpy +from bpy.types import Operator from bpy.props import (BoolProperty, EnumProperty, IntProperty, @@ -45,7 +46,7 @@ def object_ensure_material(obj, mat_name): return mat -class QuickFur(bpy.types.Operator): +class QuickFur(Operator): bl_idname = "object.quick_fur" bl_label = "Quick Fur" bl_options = {'REGISTER', 'UNDO'} @@ -104,7 +105,7 @@ class QuickFur(bpy.types.Operator): return {'FINISHED'} -class QuickExplode(bpy.types.Operator): +class QuickExplode(Operator): bl_idname = "object.quick_explode" bl_label = "Quick Explode" bl_options = {'REGISTER', 'UNDO'} @@ -265,7 +266,7 @@ def obj_bb_minmax(obj, min_co, max_co): max_co[2] = max(bb_vec[2], max_co[2]) -class QuickSmoke(bpy.types.Operator): +class QuickSmoke(Operator): bl_idname = "object.quick_smoke" bl_label = "Quick Smoke" bl_options = {'REGISTER', 'UNDO'} @@ -383,7 +384,7 @@ class QuickSmoke(bpy.types.Operator): return {'FINISHED'} -class QuickFluid(bpy.types.Operator): +class QuickFluid(Operator): bl_idname = "object.quick_fluid" bl_label = "Quick Fluid" bl_options = {'REGISTER', 'UNDO'} diff --git a/release/scripts/startup/bl_operators/object_randomize_transform.py b/release/scripts/startup/bl_operators/object_randomize_transform.py index b94c4f06cd3..f65e3d27d83 100644 --- a/release/scripts/startup/bl_operators/object_randomize_transform.py +++ b/release/scripts/startup/bl_operators/object_randomize_transform.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Operator def randomize_selected(seed, delta, loc, rot, scale, scale_even): @@ -87,7 +88,7 @@ def randomize_selected(seed, delta, loc, rot, scale, scale_even): from bpy.props import IntProperty, BoolProperty, FloatVectorProperty -class RandomizeLocRotSize(bpy.types.Operator): +class RandomizeLocRotSize(Operator): '''Randomize objects loc/rot/scale''' bl_idname = "object.randomize_transform" bl_label = "Randomize Transform" diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py index fbcc327c3bd..2fd0c4a9e12 100644 --- a/release/scripts/startup/bl_operators/presets.py +++ b/release/scripts/startup/bl_operators/presets.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Menu, Operator class AddPresetBase(): @@ -140,7 +141,7 @@ class AddPresetBase(): return self.execute(context) -class ExecutePreset(bpy.types.Operator): +class ExecutePreset(Operator): ''' Executes a preset ''' bl_idname = "script.execute_preset" bl_label = "Execute a Python Preset" @@ -168,7 +169,7 @@ class ExecutePreset(bpy.types.Operator): return {'FINISHED'} -class AddPresetRender(AddPresetBase, bpy.types.Operator): +class AddPresetRender(AddPresetBase, Operator): '''Add a Render Preset''' bl_idname = "render.preset_add" bl_label = "Add Render Preset" @@ -194,7 +195,7 @@ class AddPresetRender(AddPresetBase, bpy.types.Operator): preset_subdir = "render" -class AddPresetSSS(AddPresetBase, bpy.types.Operator): +class AddPresetSSS(AddPresetBase, Operator): '''Add a Subsurface Scattering Preset''' bl_idname = "material.sss_preset_add" bl_label = "Add SSS Preset" @@ -222,7 +223,7 @@ class AddPresetSSS(AddPresetBase, bpy.types.Operator): preset_subdir = "sss" -class AddPresetCloth(AddPresetBase, bpy.types.Operator): +class AddPresetCloth(AddPresetBase, Operator): '''Add a Cloth Preset''' bl_idname = "cloth.preset_add" bl_label = "Add Cloth Preset" @@ -244,7 +245,7 @@ class AddPresetCloth(AddPresetBase, bpy.types.Operator): preset_subdir = "cloth" -class AddPresetSunSky(AddPresetBase, bpy.types.Operator): +class AddPresetSunSky(AddPresetBase, Operator): '''Add a Sky & Atmosphere Preset''' bl_idname = "lamp.sunsky_preset_add" bl_label = "Add Sunsky Preset" @@ -273,7 +274,7 @@ class AddPresetSunSky(AddPresetBase, bpy.types.Operator): preset_subdir = "sunsky" -class AddPresetInteraction(AddPresetBase, bpy.types.Operator): +class AddPresetInteraction(AddPresetBase, Operator): '''Add an Application Interaction Preset''' bl_idname = "wm.interaction_preset_add" bl_label = "Add Interaction Preset" @@ -299,7 +300,7 @@ class AddPresetInteraction(AddPresetBase, bpy.types.Operator): preset_subdir = "interaction" -class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator): +class AddPresetKeyconfig(AddPresetBase, Operator): '''Add a Keyconfig Preset''' bl_idname = "wm.keyconfig_preset_add" bl_label = "Add Keyconfig Preset" @@ -322,7 +323,7 @@ class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator): keyconfigs.remove(keyconfigs.active) -class AddPresetOperator(AddPresetBase, bpy.types.Operator): +class AddPresetOperator(AddPresetBase, Operator): '''Add an Application Interaction Preset''' bl_idname = "wm.operator_preset_add" bl_label = "Operator Preset" @@ -345,7 +346,7 @@ class AddPresetOperator(AddPresetBase, bpy.types.Operator): @property def preset_values(self): - properties_blacklist = bpy.types.Operator.bl_rna.properties.keys() + properties_blacklist = Operator.bl_rna.properties.keys() prefix, suffix = self.operator.split("_OT_", 1) op = getattr(getattr(bpy.ops, prefix.lower()), suffix) @@ -367,12 +368,12 @@ class AddPresetOperator(AddPresetBase, bpy.types.Operator): return os.path.join("operator", "%s.%s" % (prefix.lower(), suffix)) -class WM_MT_operator_presets(bpy.types.Menu): +class WM_MT_operator_presets(Menu): bl_label = "Operator Presets" def draw(self, context): self.operator = context.space_data.operator.bl_idname - bpy.types.Menu.draw_preset(self, context) + Menu.draw_preset(self, context) @property def preset_subdir(self): 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 a38d817d738..c2a09d6a4ae 100644 --- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py +++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py @@ -21,6 +21,7 @@ # Originally written by Matt Ebb import bpy +from bpy.types import Operator import os @@ -64,7 +65,7 @@ def guess_player_path(preset): return player_path -class PlayRenderedAnim(bpy.types.Operator): +class PlayRenderedAnim(Operator): '''Plays back rendered frames/movies using an external player.''' bl_idname = "render.play_rendered_anim" bl_label = "Play Rendered Animation" diff --git a/release/scripts/startup/bl_operators/sequencer.py b/release/scripts/startup/bl_operators/sequencer.py index 16b72406c49..d2f85c8d7c7 100644 --- a/release/scripts/startup/bl_operators/sequencer.py +++ b/release/scripts/startup/bl_operators/sequencer.py @@ -19,11 +19,12 @@ # import bpy +from bpy.types import Operator from bpy.props import IntProperty -class SequencerCrossfadeSounds(bpy.types.Operator): +class SequencerCrossfadeSounds(Operator): '''Do crossfading volume animation of two selected sound strips.''' bl_idname = "sequencer.crossfade_sounds" @@ -74,7 +75,7 @@ class SequencerCrossfadeSounds(bpy.types.Operator): return {'CANCELLED'} -class SequencerCutMulticam(bpy.types.Operator): +class SequencerCutMulticam(Operator): '''Cut multicam strip and select camera.''' bl_idname = "sequencer.cut_multicam" @@ -112,7 +113,7 @@ class SequencerCutMulticam(bpy.types.Operator): return {'FINISHED'} -class SequencerDeinterlaceSelectedMovies(bpy.types.Operator): +class SequencerDeinterlaceSelectedMovies(Operator): '''Deinterlace all selected movie sources.''' bl_idname = "sequencer.deinterlace_selected_movies" diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py index 43ca9af59ba..6c258d094e8 100644 --- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py +++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py @@ -22,6 +22,7 @@ # http://mediawiki.blender.org/index.php/Scripts/Manual/UV_Calculate/Follow_active_quads import bpy +from bpy.types import Operator def extend(obj, operator, EXTEND_MODE): @@ -226,7 +227,7 @@ def main(context, operator): extend(obj, operator, operator.properties.mode) -class FollowActiveQuads(bpy.types.Operator): +class FollowActiveQuads(Operator): '''Follow UVs from active quads along continuous face loops''' bl_idname = "uv.follow_active_quads" bl_label = "Follow Active Quads" diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py index 9ae0cd0ddf9..6b1c6e1be98 100644 --- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py +++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py @@ -19,11 +19,20 @@ # import bpy +from bpy.types import Operator import mathutils class prettyface(object): - __slots__ = "uv", "width", "height", "children", "xoff", "yoff", "has_parent", "rot" + __slots__ = ("uv", + "width", + "height", + "children", + "xoff", + "yoff", + "has_parent", + "rot", + ) def __init__(self, data): self.has_parent = False @@ -263,10 +272,9 @@ def lightmap_uvpack(meshes, del trylens def trilensdiff(t1, t2): - return\ - abs(t1[1][t1[2][0]] - t2[1][t2[2][0]]) + \ - abs(t1[1][t1[2][1]] - t2[1][t2[2][1]]) + \ - abs(t1[1][t1[2][2]] - t2[1][t2[2][2]]) + return (abs(t1[1][t1[2][0]] - t2[1][t2[2][0]]) + + abs(t1[1][t1[2][1]] - t2[1][t2[2][1]]) + + abs(t1[1][t1[2][2]] - t2[1][t2[2][2]])) while tri_lengths: tri1 = tri_lengths.pop() @@ -520,7 +528,7 @@ def unwrap(operator, context, **kwargs): if obj and obj.type == 'MESH': meshes = [obj.data] else: - meshes = {me.name: me for obj in context.selected_objects if obj.type == 'MESH' for me in (obj.data,) if not me.library if len(me.faces)}.values() + meshes = list({me for obj in context.selected_objects if obj.type == 'MESH' for me in (obj.data,) if me.faces and me.library is None}) if not meshes: operator.report({'ERROR'}, "No mesh object.") @@ -536,29 +544,58 @@ def unwrap(operator, context, **kwargs): from bpy.props import BoolProperty, FloatProperty, IntProperty -class LightMapPack(bpy.types.Operator): +class LightMapPack(Operator): '''Follow UVs from active quads along continuous face loops''' bl_idname = "uv.lightmap_pack" bl_label = "Lightmap Pack" bl_options = {'REGISTER', 'UNDO'} PREF_CONTEXT = bpy.props.EnumProperty( + name="Selection", + description="", items=(("SEL_FACES", "Selected Faces", "Space all UVs evently"), ("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") ), - name="Selection", - description="") + ) # Image & UVs... - PREF_PACK_IN_ONE = BoolProperty(name="Share Tex Space", default=True, description="Objects Share texture space, map all objects into 1 uvmap") - PREF_NEW_UVLAYER = BoolProperty(name="New UV Layer", default=False, description="Create a new UV layer for every mesh packed") - PREF_APPLY_IMAGE = BoolProperty(name="New Image", default=False, description="Assign new images for every mesh (only one if shared tex space enabled)") - PREF_IMG_PX_SIZE = IntProperty(name="Image Size", min=64, max=5000, default=512, description="Width and Height for the new image") - + PREF_PACK_IN_ONE = BoolProperty( + name="Share Tex Space", + description=("Objects Share texture space, map all objects " + "into 1 uvmap"), + default=True, + ) + PREF_NEW_UVLAYER = BoolProperty( + name="New UV Layer", + description="Create a new UV layer for every mesh packed", + default=False, + ) + PREF_APPLY_IMAGE = BoolProperty( + name="New Image", + description=("Assign new images for every mesh (only one if " + "shared tex space enabled)"), + default=False, + ) + PREF_IMG_PX_SIZE = IntProperty( + name="Image Size", + description="Width and Height for the new image", + min=64, max=5000, + default=512, + ) # UV Packing... - PREF_BOX_DIV = IntProperty(name="Pack Quality", min=1, max=48, default=12, description="Pre Packing before the complex boxpack") - PREF_MARGIN_DIV = FloatProperty(name="Margin", min=0.001, max=1.0, default=0.1, description="Size of the margin as a division of the UV") + PREF_BOX_DIV = IntProperty( + name="Pack Quality", + description="Pre Packing before the complex boxpack", + min=1, max=48, + default=12, + ) + PREF_MARGIN_DIV = FloatProperty( + name="Margin", + description="Size of the margin as a division of the UV", + min=0.001, max=1.0, + default=0.1, + ) def execute(self, context): kwargs = self.as_keywords() diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py index 851f33bde11..8afd6c104e0 100644 --- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py +++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py @@ -20,6 +20,7 @@ from mathutils import Matrix, Vector, geometry import bpy +from bpy.types import Operator DEG_TO_RAD = 0.017453292519943295 # pi/180.0 SMALL_NUM = 0.000000001 @@ -812,39 +813,26 @@ def main(context, global RotMatStepRotation main_consts() - # TODO, all selected meshes - ''' - # objects = context.selected_editable_objects - objects = [] - - # we can will tag them later. - obList = [ob for ob in objects if ob.type == 'MESH'] - - # Face select object may not be selected. - ob = context.active_object - - if ob and (not ob.select) and ob.type == 'MESH': - # Add to the list - obList =[ob] - del objects - ''' + # Create the variables. + USER_PROJECTION_LIMIT = projection_limit + USER_ONLY_SELECTED_FACES = True + USER_SHARE_SPACE = 1 # Only for hole filling. + USER_STRETCH_ASPECT = 1 # Only for hole filling. + USER_ISLAND_MARGIN = island_margin # Only for hole filling. + USER_FILL_HOLES = 0 + USER_FILL_HOLES_QUALITY = 50 # Only for hole filling. + USER_VIEW_INIT = 0 # Only for hole filling. - # quick workaround - obList = [ob for ob in [context.active_object] if ob and ob.type == 'MESH'] + is_editmode = (context.active_object.mode == 'EDIT') + if is_editmode: + obList = [ob for ob in [context.active_object] if ob and ob.type == 'MESH'] + else: + obList = [ob for ob in context.selected_editable_objects if ob and ob.type == 'MESH'] + USER_ONLY_SELECTED_FACES = False if not obList: raise('error, no selected mesh objects') - # Create the variables. - USER_PROJECTION_LIMIT = projection_limit - USER_ONLY_SELECTED_FACES = (1) - USER_SHARE_SPACE = (1) # Only for hole filling. - USER_STRETCH_ASPECT = (1) # Only for hole filling. - USER_ISLAND_MARGIN = island_margin # Only for hole filling. - USER_FILL_HOLES = (0) - USER_FILL_HOLES_QUALITY = (50) # Only for hole filling. - USER_VIEW_INIT = (0) # Only for hole filling. - # Reuse variable if len(obList) == 1: ob = "Unwrap %i Selected Mesh" @@ -905,8 +893,8 @@ def main(context, if USER_ONLY_SELECTED_FACES: meshFaces = [thickface(f, uv_layer[i], me_verts) for i, f in enumerate(me.faces) if f.select] - #else: - # meshFaces = map(thickface, me.faces) + else: + meshFaces = [thickface(f, uv_layer[i], me_verts) for i, f in enumerate(me.faces)] if not meshFaces: continue @@ -921,7 +909,7 @@ def main(context, # meshFaces = [] # meshFaces.sort( lambda a, b: cmp(b.area , a.area) ) # Biggest first. - meshFaces.sort( key = lambda a: -a.area ) + meshFaces.sort(key=lambda a: -a.area) # remove all zero area faces while meshFaces and meshFaces[-1].area <= SMALL_NUM: @@ -1116,7 +1104,7 @@ def main(context, from bpy.props import FloatProperty -class SmartProject(bpy.types.Operator): +class SmartProject(Operator): '''This script projection unwraps the selected faces of a mesh. it operates on all selected mesh objects, and can be used unwrap selected faces, or all faces.''' bl_idname = "uv.smart_project" bl_label = "Smart UV Project" diff --git a/release/scripts/startup/bl_operators/vertexpaint_dirt.py b/release/scripts/startup/bl_operators/vertexpaint_dirt.py index 672db71e361..facde82f812 100644 --- a/release/scripts/startup/bl_operators/vertexpaint_dirt.py +++ b/release/scripts/startup/bl_operators/vertexpaint_dirt.py @@ -142,10 +142,11 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, import bpy +from bpy.types import Operator from bpy.props import FloatProperty, IntProperty, BoolProperty -class VertexPaintDirt(bpy.types.Operator): +class VertexPaintDirt(Operator): bl_idname = "paint.vertex_color_dirt" bl_label = "Dirty Vertex Colors" bl_options = {'REGISTER', 'UNDO'} diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index af33e45668c..fe75c54e60e 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -19,13 +19,14 @@ # import bpy +from bpy.types import Menu, Operator from bpy.props import StringProperty, BoolProperty, IntProperty, \ FloatProperty, EnumProperty from rna_prop_ui import rna_idprop_ui_prop_get, rna_idprop_ui_prop_clear -class MESH_OT_delete_edgeloop(bpy.types.Operator): +class MESH_OT_delete_edgeloop(Operator): '''Delete an edge loop by merging the faces on each side to a single face loop''' bl_idname = "mesh.delete_edgeloop" bl_label = "Delete Edge Loop" @@ -76,7 +77,7 @@ def execute_context_assign(self, context): return {'FINISHED'} -class BRUSH_OT_active_index_set(bpy.types.Operator): +class BRUSH_OT_active_index_set(Operator): '''Set active sculpt/paint brush from it's number''' bl_idname = "brush.active_index_set" bl_label = "Set Brush Number" @@ -104,7 +105,7 @@ class BRUSH_OT_active_index_set(bpy.types.Operator): return {'CANCELLED'} -class WM_OT_context_set_boolean(bpy.types.Operator): +class WM_OT_context_set_boolean(Operator): '''Set a context value.''' bl_idname = "wm.context_set_boolean" bl_label = "Context Set Boolean" @@ -117,7 +118,7 @@ class WM_OT_context_set_boolean(bpy.types.Operator): execute = execute_context_assign -class WM_OT_context_set_int(bpy.types.Operator): # same as enum +class WM_OT_context_set_int(Operator): # same as enum '''Set a context value.''' bl_idname = "wm.context_set_int" bl_label = "Context Set" @@ -130,7 +131,7 @@ class WM_OT_context_set_int(bpy.types.Operator): # same as enum execute = execute_context_assign -class WM_OT_context_scale_int(bpy.types.Operator): +class WM_OT_context_scale_int(Operator): '''Scale an int context value.''' bl_idname = "wm.context_scale_int" bl_label = "Context Set" @@ -166,7 +167,7 @@ class WM_OT_context_scale_int(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_set_float(bpy.types.Operator): # same as enum +class WM_OT_context_set_float(Operator): # same as enum '''Set a context value.''' bl_idname = "wm.context_set_float" bl_label = "Context Set Float" @@ -180,7 +181,7 @@ class WM_OT_context_set_float(bpy.types.Operator): # same as enum execute = execute_context_assign -class WM_OT_context_set_string(bpy.types.Operator): # same as enum +class WM_OT_context_set_string(Operator): # same as enum '''Set a context value.''' bl_idname = "wm.context_set_string" bl_label = "Context Set String" @@ -193,7 +194,7 @@ class WM_OT_context_set_string(bpy.types.Operator): # same as enum execute = execute_context_assign -class WM_OT_context_set_enum(bpy.types.Operator): +class WM_OT_context_set_enum(Operator): '''Set a context value.''' bl_idname = "wm.context_set_enum" bl_label = "Context Set Enum" @@ -207,7 +208,7 @@ class WM_OT_context_set_enum(bpy.types.Operator): execute = execute_context_assign -class WM_OT_context_set_value(bpy.types.Operator): +class WM_OT_context_set_value(Operator): '''Set a context value.''' bl_idname = "wm.context_set_value" bl_label = "Context Set Value" @@ -225,7 +226,7 @@ class WM_OT_context_set_value(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_toggle(bpy.types.Operator): +class WM_OT_context_toggle(Operator): '''Toggle a context value.''' bl_idname = "wm.context_toggle" bl_label = "Context Toggle" @@ -244,7 +245,7 @@ class WM_OT_context_toggle(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_toggle_enum(bpy.types.Operator): +class WM_OT_context_toggle_enum(Operator): '''Toggle a context value.''' bl_idname = "wm.context_toggle_enum" bl_label = "Context Toggle Values" @@ -270,7 +271,7 @@ class WM_OT_context_toggle_enum(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_cycle_int(bpy.types.Operator): +class WM_OT_context_cycle_int(Operator): '''Set a context value. Useful for cycling active material, ''' '''vertex keys, groups' etc.''' bl_idname = "wm.context_cycle_int" @@ -305,7 +306,7 @@ class WM_OT_context_cycle_int(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_cycle_enum(bpy.types.Operator): +class WM_OT_context_cycle_enum(Operator): '''Toggle a context value.''' bl_idname = "wm.context_cycle_enum" bl_label = "Context Enum Cycle" @@ -357,7 +358,7 @@ class WM_OT_context_cycle_enum(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_cycle_array(bpy.types.Operator): +class WM_OT_context_cycle_array(Operator): '''Set a context array value. Useful for cycling the active mesh edit mode.''' bl_idname = "wm.context_cycle_array" @@ -385,7 +386,7 @@ class WM_OT_context_cycle_array(bpy.types.Operator): return {'FINISHED'} -class WM_MT_context_menu_enum(bpy.types.Menu): +class WM_MT_context_menu_enum(Menu): bl_label = "" data_path = "" # BAD DESIGN, set from operator below. @@ -405,7 +406,7 @@ class WM_MT_context_menu_enum(bpy.types.Menu): prop.value = identifier -class WM_OT_context_menu_enum(bpy.types.Operator): +class WM_OT_context_menu_enum(Operator): bl_idname = "wm.context_menu_enum" bl_label = "Context Enum Menu" bl_options = {'UNDO', 'INTERNAL'} @@ -418,7 +419,7 @@ class WM_OT_context_menu_enum(bpy.types.Operator): return {'PASS_THROUGH'} -class WM_OT_context_set_id(bpy.types.Operator): +class WM_OT_context_set_id(Operator): '''Toggle a context value.''' bl_idname = "wm.context_set_id" bl_label = "Set Library ID" @@ -466,7 +467,7 @@ data_path_item = StringProperty( description="The data path from each iterable to the value (int or float)") -class WM_OT_context_collection_boolean_set(bpy.types.Operator): +class WM_OT_context_collection_boolean_set(Operator): '''Set boolean values for a collection of items''' bl_idname = "wm.context_collection_boolean_set" bl_label = "Context Collection Boolean Set" @@ -520,7 +521,7 @@ class WM_OT_context_collection_boolean_set(bpy.types.Operator): return {'FINISHED'} -class WM_OT_context_modal_mouse(bpy.types.Operator): +class WM_OT_context_modal_mouse(Operator): '''Adjust arbitrary values with mouse input''' bl_idname = "wm.context_modal_mouse" bl_label = "Context Modal Mouse" @@ -586,7 +587,7 @@ class WM_OT_context_modal_mouse(bpy.types.Operator): self._values_clear() return {'FINISHED'} - elif event_type in ('RIGHTMOUSE', 'ESC'): + elif event_type in {'RIGHTMOUSE', 'ESC'}: self._values_restore() return {'FINISHED'} @@ -607,7 +608,7 @@ class WM_OT_context_modal_mouse(bpy.types.Operator): return {'RUNNING_MODAL'} -class WM_OT_url_open(bpy.types.Operator): +class WM_OT_url_open(Operator): "Open a website in the Webbrowser" bl_idname = "wm.url_open" bl_label = "" @@ -621,7 +622,7 @@ class WM_OT_url_open(bpy.types.Operator): return {'FINISHED'} -class WM_OT_path_open(bpy.types.Operator): +class WM_OT_path_open(Operator): "Open a path in a file browser" bl_idname = "wm.path_open" bl_label = "" @@ -654,7 +655,7 @@ class WM_OT_path_open(bpy.types.Operator): return {'FINISHED'} -class WM_OT_doc_view(bpy.types.Operator): +class WM_OT_doc_view(Operator): '''Load online reference docs''' bl_idname = "wm.doc_view" bl_label = "View Documentation" @@ -708,7 +709,7 @@ class WM_OT_doc_view(bpy.types.Operator): return {'FINISHED'} -class WM_OT_doc_edit(bpy.types.Operator): +class WM_OT_doc_edit(Operator): '''Load online reference docs''' bl_idname = "wm.doc_edit" bl_label = "Edit Documentation" @@ -792,7 +793,7 @@ rna_min = FloatProperty(name="Min", default=0.0, precision=3) rna_max = FloatProperty(name="Max", default=1.0, precision=3) -class WM_OT_properties_edit(bpy.types.Operator): +class WM_OT_properties_edit(Operator): '''Internal use (edit a property data_path)''' bl_idname = "wm.properties_edit" bl_label = "Edit Property" @@ -839,7 +840,7 @@ class WM_OT_properties_edit(bpy.types.Operator): prop_ui = rna_idprop_ui_prop_get(item, prop) - if prop_type in (float, int): + if prop_type in {float, int}: prop_ui['soft_min'] = prop_ui['min'] = prop_type(self.min) prop_ui['soft_max'] = prop_ui['max'] = prop_type(self.max) @@ -876,7 +877,7 @@ class WM_OT_properties_edit(bpy.types.Operator): return wm.invoke_props_dialog(self) -class WM_OT_properties_add(bpy.types.Operator): +class WM_OT_properties_add(Operator): '''Internal use (edit a property data_path)''' bl_idname = "wm.properties_add" bl_label = "Add Property" @@ -902,7 +903,7 @@ class WM_OT_properties_add(bpy.types.Operator): return {'FINISHED'} -class WM_OT_properties_context_change(bpy.types.Operator): +class WM_OT_properties_context_change(Operator): "Change the context tab in a Properties Window" bl_idname = "wm.properties_context_change" bl_label = "" @@ -914,7 +915,7 @@ class WM_OT_properties_context_change(bpy.types.Operator): return {'FINISHED'} -class WM_OT_properties_remove(bpy.types.Operator): +class WM_OT_properties_remove(Operator): '''Internal use (edit a property data_path)''' bl_idname = "wm.properties_remove" bl_label = "Remove Property" @@ -928,7 +929,7 @@ class WM_OT_properties_remove(bpy.types.Operator): return {'FINISHED'} -class WM_OT_keyconfig_activate(bpy.types.Operator): +class WM_OT_keyconfig_activate(Operator): bl_idname = "wm.keyconfig_activate" bl_label = "Activate Keyconfig" @@ -939,7 +940,7 @@ class WM_OT_keyconfig_activate(bpy.types.Operator): return {'FINISHED'} -class WM_OT_appconfig_default(bpy.types.Operator): +class WM_OT_appconfig_default(Operator): bl_idname = "wm.appconfig_default" bl_label = "Default Application Configuration" @@ -956,7 +957,7 @@ class WM_OT_appconfig_default(bpy.types.Operator): return {'FINISHED'} -class WM_OT_appconfig_activate(bpy.types.Operator): +class WM_OT_appconfig_activate(Operator): bl_idname = "wm.appconfig_activate" bl_label = "Activate Application Configuration" @@ -974,7 +975,7 @@ class WM_OT_appconfig_activate(bpy.types.Operator): return {'FINISHED'} -class WM_OT_sysinfo(bpy.types.Operator): +class WM_OT_sysinfo(Operator): '''Generate System Info''' bl_idname = "wm.sysinfo" bl_label = "System Info" @@ -985,7 +986,7 @@ class WM_OT_sysinfo(bpy.types.Operator): return {'FINISHED'} -class WM_OT_copy_prev_settings(bpy.types.Operator): +class WM_OT_copy_prev_settings(Operator): '''Copy settings from previous version''' bl_idname = "wm.copy_prev_settings" bl_label = "Copy Previous Settings" diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py index f2a3bac2373..94c40d11141 100644 --- a/release/scripts/startup/bl_ui/properties_data_armature.py +++ b/release/scripts/startup/bl_ui/properties_data_armature.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -31,7 +32,7 @@ class ArmatureButtonsPanel(): return context.armature -class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_context_arm(ArmatureButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -48,7 +49,7 @@ class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel): layout.template_ID(space, "pin_id") -class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_skeleton(ArmatureButtonsPanel, Panel): bl_label = "Skeleton" def draw(self, context): @@ -71,7 +72,7 @@ class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel): flow.prop(arm, "use_deform_preserve_volume", text="Quaternion") -class DATA_PT_display(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_display(ArmatureButtonsPanel, Panel): bl_label = "Display" def draw(self, context): @@ -96,7 +97,7 @@ class DATA_PT_display(ArmatureButtonsPanel, bpy.types.Panel): col.prop(arm, "use_deform_delay", text="Delay Refresh") -class DATA_PT_bone_groups(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel): bl_label = "Bone Groups" @classmethod @@ -147,7 +148,7 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, bpy.types.Panel): sub.operator("pose.group_deselect", text="Deselect") -class DATA_PT_pose_library(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_pose_library(ArmatureButtonsPanel, Panel): bl_label = "Pose Library" bl_options = {'DEFAULT_CLOSED'} @@ -186,7 +187,7 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, bpy.types.Panel): # TODO: this panel will soon be depreceated too -class DATA_PT_ghost(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_ghost(ArmatureButtonsPanel, Panel): bl_label = "Ghost" def draw(self, context): @@ -213,7 +214,7 @@ class DATA_PT_ghost(ArmatureButtonsPanel, bpy.types.Panel): col.prop(arm, "show_only_ghost_selected", text="Selected Only") -class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, bpy.types.Panel): +class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel): bl_label = "iTaSC parameters" bl_options = {'DEFAULT_CLOSED'} @@ -266,7 +267,7 @@ from bl_ui.properties_animviz import ( ) -class DATA_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel): +class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel): #bl_label = "Bones Motion Paths" bl_context = "data" @@ -289,7 +290,7 @@ class DATA_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel): split.operator("pose.paths_clear", text="Clear Paths") -class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , bpy.types.Panel): # inherit from panel when ready +class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready #bl_label = "Bones Onion Skinning" bl_context = "data" @@ -303,7 +304,7 @@ class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , bpy.types.Panel): # in self.draw_settings(context, ob.pose.animation_visualisation, bones=True) -class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Armature diff --git a/release/scripts/startup/bl_ui/properties_data_bone.py b/release/scripts/startup/bl_ui/properties_data_bone.py index 9fc055e9343..b3eaf88d5bf 100644 --- a/release/scripts/startup/bl_ui/properties_data_bone.py +++ b/release/scripts/startup/bl_ui/properties_data_bone.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -32,7 +33,7 @@ class BoneButtonsPanel(): return (context.bone or context.edit_bone) -class BONE_PT_context_bone(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_context_bone(BoneButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -48,7 +49,7 @@ class BONE_PT_context_bone(BoneButtonsPanel, bpy.types.Panel): row.prop(bone, "name", text="") -class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_transform(BoneButtonsPanel, Panel): bl_label = "Transform" @classmethod @@ -102,7 +103,7 @@ class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel): sub.prop(bone, "lock") -class BONE_PT_transform_locks(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_transform_locks(BoneButtonsPanel, Panel): bl_label = "Transform Locks" bl_options = {'DEFAULT_CLOSED'} @@ -135,7 +136,7 @@ class BONE_PT_transform_locks(BoneButtonsPanel, bpy.types.Panel): row.column().prop(pchan, "lock_scale") -class BONE_PT_relations(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_relations(BoneButtonsPanel, Panel): bl_label = "Relations" def draw(self, context): @@ -180,7 +181,7 @@ class BONE_PT_relations(BoneButtonsPanel, bpy.types.Panel): sub.prop(bone, "use_local_location", text="Local Location") -class BONE_PT_display(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_display(BoneButtonsPanel, Panel): bl_label = "Display" @classmethod @@ -217,7 +218,7 @@ class BONE_PT_display(BoneButtonsPanel, bpy.types.Panel): col.prop_search(pchan, "custom_shape_transform", ob.pose, "bones", text="At") -class BONE_PT_inverse_kinematics(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel): bl_label = "Inverse Kinematics" bl_options = {'DEFAULT_CLOSED'} @@ -308,7 +309,7 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, bpy.types.Panel): #row.prop(pchan, "ik_linear_weight", text="Weight", slider=True) -class BONE_PT_deform(BoneButtonsPanel, bpy.types.Panel): +class BONE_PT_deform(BoneButtonsPanel, Panel): bl_label = "Deform" bl_options = {'DEFAULT_CLOSED'} @@ -357,7 +358,7 @@ class BONE_PT_deform(BoneButtonsPanel, bpy.types.Panel): col.prop(bone, "use_cyclic_offset") -class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, bpy.types.Panel): +class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _property_type = bpy.types.Bone, bpy.types.EditBone, bpy.types.PoseBone diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py index 80cd5227fca..f484d7b59e1 100644 --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -32,7 +33,7 @@ class CameraButtonsPanel(): return context.camera and (engine in cls.COMPAT_ENGINES) -class DATA_PT_context_camera(CameraButtonsPanel, bpy.types.Panel): +class DATA_PT_context_camera(CameraButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -53,7 +54,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, bpy.types.Panel): split.separator() -class DATA_PT_camera(CameraButtonsPanel, bpy.types.Panel): +class DATA_PT_camera(CameraButtonsPanel, Panel): bl_label = "Lens" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -111,7 +112,7 @@ class DATA_PT_camera(CameraButtonsPanel, bpy.types.Panel): col.prop(cam, "dof_distance", text="Distance") -class DATA_PT_camera_display(CameraButtonsPanel, bpy.types.Panel): +class DATA_PT_camera_display(CameraButtonsPanel, Panel): bl_label = "Display" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -138,7 +139,7 @@ class DATA_PT_camera_display(CameraButtonsPanel, bpy.types.Panel): sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True) -class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Camera diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py index 3c88127c724..6448b9a5229 100644 --- a/release/scripts/startup/bl_ui/properties_data_curve.py +++ b/release/scripts/startup/bl_ui/properties_data_curve.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -48,7 +49,7 @@ class CurveButtonsPanelActive(CurveButtonsPanel): return (curve and type(curve) is not bpy.types.TextCurve and curve.splines.active) -class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_context_curve(CurveButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -65,7 +66,7 @@ class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel): layout.template_ID(space, "pin_id") # XXX: broken -class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_shape_curve(CurveButtonsPanel, Panel): bl_label = "Shape" def draw(self, context): @@ -108,13 +109,13 @@ class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel): if (is_curve or is_text): col.label(text="Fill:") sub = col.column() - sub.active = (curve.bevel_object is None) + sub.active = (curve.dimensions == '2D' or (curve.bevel_object is None and curve.dimensions == '3D')) sub.prop(curve, "use_fill_front") sub.prop(curve, "use_fill_back") col.prop(curve, "use_fill_deform", text="Fill Deformed") -class DATA_PT_curve_texture_space(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_curve_texture_space(CurveButtonsPanel, Panel): bl_label = "Texture Space" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -133,7 +134,7 @@ class DATA_PT_curve_texture_space(CurveButtonsPanel, bpy.types.Panel): row.column().prop(curve, "texspace_size", text="Size") -class DATA_PT_geometry_curve(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_geometry_curve(CurveButtonsPanel, Panel): bl_label = "Geometry" @classmethod @@ -166,7 +167,7 @@ class DATA_PT_geometry_curve(CurveButtonsPanel, bpy.types.Panel): col.prop(curve, "bevel_object", text="") -class DATA_PT_pathanim(CurveButtonsPanelCurve, bpy.types.Panel): +class DATA_PT_pathanim(CurveButtonsPanelCurve, Panel): bl_label = "Path Animation" def draw_header(self, context): @@ -197,7 +198,7 @@ class DATA_PT_pathanim(CurveButtonsPanelCurve, bpy.types.Panel): col.prop(curve, "use_time_offset", text="Offset Children") -class DATA_PT_active_spline(CurveButtonsPanelActive, bpy.types.Panel): +class DATA_PT_active_spline(CurveButtonsPanelActive, Panel): bl_label = "Active Spline" def draw(self, context): @@ -268,7 +269,7 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, bpy.types.Panel): layout.prop(act_spline, "use_smooth") -class DATA_PT_font(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_font(CurveButtonsPanel, Panel): bl_label = "Font" @classmethod @@ -332,7 +333,7 @@ class DATA_PT_font(CurveButtonsPanel, bpy.types.Panel): row.prop(char, "use_small_caps") -class DATA_PT_paragraph(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_paragraph(CurveButtonsPanel, Panel): bl_label = "Paragraph" @classmethod @@ -361,7 +362,7 @@ class DATA_PT_paragraph(CurveButtonsPanel, bpy.types.Panel): col.prop(text, "offset_y", text="Y") -class DATA_PT_textboxes(CurveButtonsPanel, bpy.types.Panel): +class DATA_PT_text_boxes(CurveButtonsPanel, Panel): bl_label = "Text Boxes" @classmethod @@ -401,7 +402,7 @@ class DATA_PT_textboxes(CurveButtonsPanel, bpy.types.Panel): row.operator("font.textbox_remove", text='', icon='X', emboss=False).index = i -class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Curve diff --git a/release/scripts/startup/bl_ui/properties_data_empty.py b/release/scripts/startup/bl_ui/properties_data_empty.py index 42b0af7eaf5..c781873e16c 100644 --- a/release/scripts/startup/bl_ui/properties_data_empty.py +++ b/release/scripts/startup/bl_ui/properties_data_empty.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel class DataButtonsPanel(): @@ -30,7 +31,7 @@ class DataButtonsPanel(): return (context.object and context.object.type == 'EMPTY') -class DATA_PT_empty(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_empty(DataButtonsPanel, Panel): bl_label = "Empty" def draw(self, context): diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py index 36010c8b511..4ff180f74fb 100644 --- a/release/scripts/startup/bl_ui/properties_data_lamp.py +++ b/release/scripts/startup/bl_ui/properties_data_lamp.py @@ -18,15 +18,16 @@ # import bpy +from bpy.types import Menu, Panel from rna_prop_ui import PropertyPanel -class LAMP_MT_sunsky_presets(bpy.types.Menu): +class LAMP_MT_sunsky_presets(Menu): bl_label = "Sun & Sky Presets" preset_subdir = "sunsky" preset_operator = "script.execute_preset" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset class DataButtonsPanel(): @@ -40,7 +41,7 @@ class DataButtonsPanel(): return context.lamp and (engine in cls.COMPAT_ENGINES) -class DATA_PT_context_lamp(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_context_lamp(DataButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -65,7 +66,7 @@ class DATA_PT_context_lamp(DataButtonsPanel, bpy.types.Panel): split.label(text=str(texture_count), icon='TEXTURE') -class DATA_PT_preview(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_preview(DataButtonsPanel, Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -73,7 +74,7 @@ class DATA_PT_preview(DataButtonsPanel, bpy.types.Panel): self.layout.template_preview(context.lamp) -class DATA_PT_lamp(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_lamp(DataButtonsPanel, Panel): bl_label = "Lamp" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -115,7 +116,7 @@ class DATA_PT_lamp(DataButtonsPanel, bpy.types.Panel): col.prop(lamp, "use_diffuse") -class DATA_PT_sunsky(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_sunsky(DataButtonsPanel, Panel): bl_label = "Sky & Atmosphere" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -187,7 +188,7 @@ class DATA_PT_sunsky(DataButtonsPanel, bpy.types.Panel): sub.prop(lamp, "atmosphere_extinction", slider=True, text="Extinction") -class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_shadow(DataButtonsPanel, Panel): bl_label = "Shadow" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -302,7 +303,7 @@ class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel): sub.prop(lamp, "shadow_buffer_clip_end", text=" Clip End") -class DATA_PT_area(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_area(DataButtonsPanel, Panel): bl_label = "Area Shape" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -328,7 +329,7 @@ class DATA_PT_area(DataButtonsPanel, bpy.types.Panel): sub.prop(lamp, "size_y", text="Size Y") -class DATA_PT_spot(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_spot(DataButtonsPanel, Panel): bl_label = "Spot Shape" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -362,7 +363,7 @@ class DATA_PT_spot(DataButtonsPanel, bpy.types.Panel): sub.prop(lamp, "halo_step", text="Step") -class DATA_PT_falloff_curve(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_falloff_curve(DataButtonsPanel, Panel): bl_label = "Falloff Curve" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -380,7 +381,7 @@ class DATA_PT_falloff_curve(DataButtonsPanel, bpy.types.Panel): self.layout.template_curve_mapping(lamp, "falloff_curve") -class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Lamp diff --git a/release/scripts/startup/bl_ui/properties_data_lattice.py b/release/scripts/startup/bl_ui/properties_data_lattice.py index cd719b6fe84..14d6ea66894 100644 --- a/release/scripts/startup/bl_ui/properties_data_lattice.py +++ b/release/scripts/startup/bl_ui/properties_data_lattice.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -31,7 +32,7 @@ class DataButtonsPanel(): return context.lattice -class DATA_PT_context_lattice(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_context_lattice(DataButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -51,7 +52,7 @@ class DATA_PT_context_lattice(DataButtonsPanel, bpy.types.Panel): split.separator() -class DATA_PT_lattice(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_lattice(DataButtonsPanel, Panel): bl_label = "Lattice" def draw(self, context): @@ -76,7 +77,7 @@ class DATA_PT_lattice(DataButtonsPanel, bpy.types.Panel): row.prop_search(lat, "vertex_group", context.object, "vertex_groups", text="") -class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Lattice diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py index 618a88f0879..896b76c59f6 100644 --- a/release/scripts/startup/bl_ui/properties_data_mesh.py +++ b/release/scripts/startup/bl_ui/properties_data_mesh.py @@ -18,10 +18,11 @@ # import bpy +from bpy.types import Menu, Panel from rna_prop_ui import PropertyPanel -class MESH_MT_vertex_group_specials(bpy.types.Menu): +class MESH_MT_vertex_group_specials(Menu): bl_label = "Vertex Group Specials" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -36,7 +37,7 @@ class MESH_MT_vertex_group_specials(bpy.types.Menu): layout.operator("object.vertex_group_remove", icon='X', text="Delete All").all = True -class MESH_MT_shape_key_specials(bpy.types.Menu): +class MESH_MT_shape_key_specials(Menu): bl_label = "Shape Key Specials" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -61,7 +62,7 @@ class MeshButtonsPanel(): return context.mesh and (engine in cls.COMPAT_ENGINES) -class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_context_mesh(MeshButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -72,14 +73,14 @@ class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel): ob = context.object mesh = context.mesh space = context.space_data - + layout.prop(context.scene.tool_settings, "mesh_select_mode", index=0, text="Vertex") if ob: layout.template_ID(ob, "data") elif mesh: layout.template_ID(space, "pin_id") -class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_normals(MeshButtonsPanel, Panel): bl_label = "Normals" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -99,7 +100,7 @@ class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel): split.prop(mesh, "show_double_sided") -class DATA_PT_texture_space(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_texture_space(MeshButtonsPanel, Panel): bl_label = "Texture Space" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -119,7 +120,7 @@ class DATA_PT_texture_space(MeshButtonsPanel, bpy.types.Panel): row.column().prop(mesh, "texspace_size", text="Size") -class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_vertex_groups(MeshButtonsPanel, Panel): bl_label = "Vertex Groups" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -168,7 +169,7 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel): layout.prop(context.tool_settings, "vertex_group_weight", text="Weight") -class DATA_PT_shape_keys(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_shape_keys(MeshButtonsPanel, Panel): bl_label = "Shape Keys" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -261,7 +262,7 @@ class DATA_PT_shape_keys(MeshButtonsPanel, bpy.types.Panel): row.prop(key, "slurph") -class DATA_PT_uv_texture(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_uv_texture(MeshButtonsPanel, Panel): bl_label = "UV Texture" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -284,7 +285,7 @@ class DATA_PT_uv_texture(MeshButtonsPanel, bpy.types.Panel): layout.prop(lay, "name") -class DATA_PT_texface(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_texface(MeshButtonsPanel, Panel): bl_label = "Texture Face" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -331,7 +332,7 @@ class DATA_PT_texface(MeshButtonsPanel, bpy.types.Panel): col.label(text="No UV Texture") -class DATA_PT_vertex_colors(MeshButtonsPanel, bpy.types.Panel): +class DATA_PT_vertex_colors(MeshButtonsPanel, Panel): bl_label = "Vertex Colors" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -354,7 +355,7 @@ class DATA_PT_vertex_colors(MeshButtonsPanel, bpy.types.Panel): layout.prop(lay, "name") -class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.Mesh diff --git a/release/scripts/startup/bl_ui/properties_data_metaball.py b/release/scripts/startup/bl_ui/properties_data_metaball.py index 6dda99bc37f..cd894e60dbb 100644 --- a/release/scripts/startup/bl_ui/properties_data_metaball.py +++ b/release/scripts/startup/bl_ui/properties_data_metaball.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -31,7 +32,7 @@ class DataButtonsPanel(): return context.meta_ball -class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_context_metaball(DataButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -48,7 +49,7 @@ class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel): layout.template_ID(space, "pin_id") -class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_metaball(DataButtonsPanel, Panel): bl_label = "Metaball" def draw(self, context): @@ -72,7 +73,7 @@ class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel): layout.prop(mball, "update_method", expand=True) -class DATA_PT_mball_texture_space(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_mball_texture_space(DataButtonsPanel, Panel): bl_label = "Texture Space" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -89,7 +90,7 @@ class DATA_PT_mball_texture_space(DataButtonsPanel, bpy.types.Panel): row.column().prop(mball, "texspace_size", text="Size") -class DATA_PT_metaball_element(DataButtonsPanel, bpy.types.Panel): +class DATA_PT_metaball_element(DataButtonsPanel, Panel): bl_label = "Active Element" @classmethod @@ -129,7 +130,7 @@ class DATA_PT_metaball_element(DataButtonsPanel, bpy.types.Panel): col.prop(metaelem, "size_y", text="Y") -class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, bpy.types.Panel): +class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object.data" _property_type = bpy.types.MetaBall diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index a02e6bd6469..65827775ad1 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel class ModifierButtonsPanel(): @@ -26,7 +27,7 @@ class ModifierButtonsPanel(): bl_context = "modifier" -class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): +class DATA_PT_modifiers(ModifierButtonsPanel, Panel): bl_label = "Modifiers" def draw(self, context): @@ -576,13 +577,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): sub = col.column() sub.active = bool(md.vertex_group) sub.prop(md, "invert_vertex_group", text="Invert") + sub.prop(md, "thickness_vertex_group", text="Factor") col.prop(md, "use_even_offset") col.prop(md, "use_quality_normals") col.prop(md, "use_rim") sub = col.column() - sub.label() row = sub.split(align=True, percentage=0.4) row.prop(md, "material_offset", text="") row = row.row() diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py index 0c07451b3b2..f8be32e6c07 100644 --- a/release/scripts/startup/bl_ui/properties_game.py +++ b/release/scripts/startup/bl_ui/properties_game.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel class PhysicsButtonsPanel(): @@ -26,7 +27,7 @@ class PhysicsButtonsPanel(): bl_context = "physics" -class PHYSICS_PT_game_physics(PhysicsButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel): bl_label = "Physics" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -167,7 +168,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, bpy.types.Panel): layout.prop(ob, "hide_render", text="Invisible") -class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel): bl_label = "Collision Bounds" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -206,7 +207,7 @@ class RenderButtonsPanel(): return (rd.engine in cls.COMPAT_ENGINES) -class RENDER_PT_game(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game(RenderButtonsPanel, Panel): bl_label = "Game" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -218,7 +219,7 @@ class RENDER_PT_game(RenderButtonsPanel, bpy.types.Panel): row.label() -class RENDER_PT_game_player(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_player(RenderButtonsPanel, Panel): bl_label = "Standalone Player" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -251,7 +252,7 @@ class RENDER_PT_game_player(RenderButtonsPanel, bpy.types.Panel): col.prop(gs, "frame_color", text="") -class RENDER_PT_game_stereo(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_stereo(RenderButtonsPanel, Panel): bl_label = "Stereo" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -305,7 +306,7 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, bpy.types.Panel): layout.prop(gs, "dome_text") -class RENDER_PT_game_shading(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_shading(RenderButtonsPanel, Panel): bl_label = "Shading" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -331,7 +332,7 @@ class RENDER_PT_game_shading(RenderButtonsPanel, bpy.types.Panel): col.prop(gs, "use_glsl_extra_textures", text="Extra Textures") -class RENDER_PT_game_performance(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_performance(RenderButtonsPanel, Panel): bl_label = "Performance" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -344,7 +345,7 @@ class RENDER_PT_game_performance(RenderButtonsPanel, bpy.types.Panel): row.prop(gs, "use_display_lists") -class RENDER_PT_game_display(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_display(RenderButtonsPanel, Panel): bl_label = "Display" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -360,7 +361,7 @@ class RENDER_PT_game_display(RenderButtonsPanel, bpy.types.Panel): flow.prop(gs, "show_mouse", text="Mouse Cursor") -class RENDER_PT_game_sound(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_game_sound(RenderButtonsPanel, Panel): bl_label = "Sound" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -381,7 +382,7 @@ class WorldButtonsPanel(): bl_context = "world" -class WORLD_PT_game_context_world(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_game_context_world(WorldButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_GAME'} @@ -405,7 +406,7 @@ class WORLD_PT_game_context_world(WorldButtonsPanel, bpy.types.Panel): split.template_ID(space, "pin_id") -class WORLD_PT_game_world(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_game_world(WorldButtonsPanel, Panel): bl_label = "World" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -424,7 +425,7 @@ class WORLD_PT_game_world(WorldButtonsPanel, bpy.types.Panel): row.column().prop(world, "ambient_color") -class WORLD_PT_game_mist(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_game_mist(WorldButtonsPanel, Panel): bl_label = "Mist" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -450,7 +451,7 @@ class WORLD_PT_game_mist(WorldButtonsPanel, bpy.types.Panel): row.prop(world.mist_settings, "depth") -class WORLD_PT_game_physics(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_game_physics(WorldButtonsPanel, Panel): bl_label = "Physics" COMPAT_ENGINES = {'BLENDER_GAME'} diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index 296c05d78f5..13ce92f084c 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Menu, Panel from rna_prop_ui import PropertyPanel @@ -50,14 +51,14 @@ def simple_material(mat): return False -class MATERIAL_MT_sss_presets(bpy.types.Menu): +class MATERIAL_MT_sss_presets(Menu): bl_label = "SSS Presets" preset_subdir = "sss" preset_operator = "script.execute_preset" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset -class MATERIAL_MT_specials(bpy.types.Menu): +class MATERIAL_MT_specials(Menu): bl_label = "Material Specials" def draw(self, context): @@ -79,7 +80,7 @@ class MaterialButtonsPanel(): return context.material and (context.scene.render.engine in cls.COMPAT_ENGINES) -class MATERIAL_PT_context_material(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -144,7 +145,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, bpy.types.Panel): row.label(text="No material node selected") -class MATERIAL_PT_preview(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_preview(MaterialButtonsPanel, Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -152,7 +153,7 @@ class MATERIAL_PT_preview(MaterialButtonsPanel, bpy.types.Panel): self.layout.template_preview(context.material) -class MATERIAL_PT_pipeline(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_pipeline(MaterialButtonsPanel, Panel): bl_label = "Render Pipeline Options" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -203,7 +204,7 @@ class MATERIAL_PT_pipeline(MaterialButtonsPanel, bpy.types.Panel): col.prop(mat, "pass_index") -class MATERIAL_PT_diffuse(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_diffuse(MaterialButtonsPanel, Panel): bl_label = "Diffuse" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -260,7 +261,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel, bpy.types.Panel): col.prop(mat, "diffuse_ramp_factor", text="Factor") -class MATERIAL_PT_specular(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_specular(MaterialButtonsPanel, Panel): bl_label = "Specular" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -313,7 +314,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel, bpy.types.Panel): layout.prop(mat, "specular_ramp_factor", text="Factor") -class MATERIAL_PT_shading(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_shading(MaterialButtonsPanel, Panel): bl_label = "Shading" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -347,7 +348,7 @@ class MATERIAL_PT_shading(MaterialButtonsPanel, bpy.types.Panel): sub.prop(mat, "use_cubic") -class MATERIAL_PT_transp(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_transp(MaterialButtonsPanel, Panel): bl_label = "Transparency" # bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -413,7 +414,7 @@ class MATERIAL_PT_transp(MaterialButtonsPanel, bpy.types.Panel): sub.prop(rayt, "gloss_samples", text="Samples") -class MATERIAL_PT_mirror(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_mirror(MaterialButtonsPanel, Panel): bl_label = "Mirror" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -471,7 +472,7 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel, bpy.types.Panel): sub.prop(raym, "gloss_anisotropic", text="Anisotropic") -class MATERIAL_PT_sss(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_sss(MaterialButtonsPanel, Panel): bl_label = "Subsurface Scattering" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -523,7 +524,7 @@ class MATERIAL_PT_sss(MaterialButtonsPanel, bpy.types.Panel): col.prop(sss, "error_threshold", text="Error") -class MATERIAL_PT_halo(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_halo(MaterialButtonsPanel, Panel): bl_label = "Halo" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -576,7 +577,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel, bpy.types.Panel): number_but(col, "use_star", "star_tip_count", "Star tips", "") -class MATERIAL_PT_flare(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_flare(MaterialButtonsPanel, Panel): bl_label = "Flare" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -611,7 +612,7 @@ class MATERIAL_PT_flare(MaterialButtonsPanel, bpy.types.Panel): col.prop(halo, "flare_subflare_size", text="Subsize") -class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_physics(MaterialButtonsPanel, Panel): bl_label = "Physics" COMPAT_ENGINES = {'BLENDER_GAME'} @@ -641,7 +642,7 @@ class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel): row.prop(phys, "use_fh_normal") -class MATERIAL_PT_strand(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_strand(MaterialButtonsPanel, Panel): bl_label = "Strand" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -688,7 +689,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, bpy.types.Panel): sub.prop(tan, "blend_distance", text="Distance") -class MATERIAL_PT_options(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_options(MaterialButtonsPanel, Panel): bl_label = "Options" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -737,7 +738,7 @@ class MATERIAL_PT_options(MaterialButtonsPanel, bpy.types.Panel): col.prop(mat, "pass_index") -class MATERIAL_PT_shadow(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_shadow(MaterialButtonsPanel, Panel): bl_label = "Shadow" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -781,7 +782,7 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel, bpy.types.Panel): col.prop(mat, "use_cast_approximate") -class MATERIAL_PT_transp_game(MaterialButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_transp_game(MaterialButtonsPanel, Panel): bl_label = "Transparency" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_GAME'} @@ -824,7 +825,7 @@ class VolumeButtonsPanel(): return mat and (mat.type == 'VOLUME') and (engine in cls.COMPAT_ENGINES) -class MATERIAL_PT_volume_density(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_density(VolumeButtonsPanel, Panel): bl_label = "Density" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -838,7 +839,7 @@ class MATERIAL_PT_volume_density(VolumeButtonsPanel, bpy.types.Panel): row.prop(vol, "density_scale") -class MATERIAL_PT_volume_shading(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_shading(VolumeButtonsPanel, Panel): bl_label = "Shading" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -863,7 +864,7 @@ class MATERIAL_PT_volume_shading(VolumeButtonsPanel, bpy.types.Panel): sub.prop(vol, "reflection_color", text="") -class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, Panel): bl_label = "Lighting" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -898,7 +899,7 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, bpy.types.Panel): sub.prop(vol, "ms_intensity") -class MATERIAL_PT_volume_transp(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_transp(VolumeButtonsPanel, Panel): bl_label = "Transparency" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -916,7 +917,7 @@ class MATERIAL_PT_volume_transp(VolumeButtonsPanel, bpy.types.Panel): layout.prop(mat, "transparency_method", expand=True) -class MATERIAL_PT_volume_integration(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_integration(VolumeButtonsPanel, Panel): bl_label = "Integration" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -938,7 +939,7 @@ class MATERIAL_PT_volume_integration(VolumeButtonsPanel, bpy.types.Panel): col.prop(vol, "depth_threshold") -class MATERIAL_PT_volume_options(VolumeButtonsPanel, bpy.types.Panel): +class MATERIAL_PT_volume_options(VolumeButtonsPanel, Panel): bl_label = "Options" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} bl_options = {'DEFAULT_CLOSED'} @@ -970,7 +971,7 @@ class MATERIAL_PT_volume_options(VolumeButtonsPanel, bpy.types.Panel): row.prop(mat, "use_light_group_exclusive", text="Exclusive") -class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, bpy.types.Panel): +class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "material" _property_type = bpy.types.Material diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py index cdbcf2cf533..0779debb102 100644 --- a/release/scripts/startup/bl_ui/properties_object.py +++ b/release/scripts/startup/bl_ui/properties_object.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -27,7 +28,7 @@ class ObjectButtonsPanel(): bl_context = "object" -class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_context_object(ObjectButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -42,7 +43,7 @@ class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel): row.template_ID(context.scene.objects, "active") -class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_transform(ObjectButtonsPanel, Panel): bl_label = "Transform" def draw(self, context): @@ -68,7 +69,7 @@ class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel): layout.prop(ob, "rotation_mode") -class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_delta_transform(ObjectButtonsPanel, Panel): bl_label = "Delta Transform" bl_options = {'DEFAULT_CLOSED'} @@ -94,7 +95,7 @@ class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel): row.column().prop(ob, "delta_scale") -class OBJECT_PT_transform_locks(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_transform_locks(ObjectButtonsPanel, Panel): bl_label = "Transform Locks" bl_options = {'DEFAULT_CLOSED'} @@ -120,7 +121,7 @@ class OBJECT_PT_transform_locks(ObjectButtonsPanel, bpy.types.Panel): row.column().prop(ob, "lock_scale", text="Scale") -class OBJECT_PT_relations(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_relations(ObjectButtonsPanel, Panel): bl_label = "Relations" def draw(self, context): @@ -147,7 +148,7 @@ class OBJECT_PT_relations(ObjectButtonsPanel, bpy.types.Panel): sub.active = (parent is not None) -class OBJECT_PT_groups(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_groups(ObjectButtonsPanel, Panel): bl_label = "Groups" def draw(self, context): @@ -186,7 +187,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel, bpy.types.Panel): index += 1 -class OBJECT_PT_display(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_display(ObjectButtonsPanel, Panel): bl_label = "Display" def draw(self, context): @@ -220,7 +221,7 @@ class OBJECT_PT_display(ObjectButtonsPanel, bpy.types.Panel): col.prop(ob, "show_transparent", text="Transparency") -class OBJECT_PT_duplication(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_duplication(ObjectButtonsPanel, Panel): bl_label = "Duplication" def draw(self, context): @@ -258,7 +259,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, bpy.types.Panel): # XXX: the following options are all quite buggy, ancient hacks that should be dropped -class OBJECT_PT_animation(ObjectButtonsPanel, bpy.types.Panel): +class OBJECT_PT_animation(ObjectButtonsPanel, Panel): bl_label = "Animation Hacks" bl_options = {'DEFAULT_CLOSED'} @@ -293,7 +294,7 @@ from bl_ui.properties_animviz import ( ) -class OBJECT_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel): +class OBJECT_PT_motion_paths(MotionPathButtonsPanel, Panel): #bl_label = "Object Motion Paths" bl_context = "object" @@ -315,7 +316,7 @@ class OBJECT_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel): row.operator("object.paths_clear", text="Clear Paths") -class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel): # , bpy.types.Panel): # inherit from panel when ready +class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready #bl_label = "Object Onion Skinning" bl_context = "object" @@ -329,7 +330,7 @@ class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel): # , bpy.types.Panel): # self.draw_settings(context, ob.animation_visualisation) -class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, bpy.types.Panel): +class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "object" _property_type = bpy.types.Object diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py index 5f79dd3127a..867abe4dd5d 100644 --- a/release/scripts/startup/bl_ui/properties_object_constraint.py +++ b/release/scripts/startup/bl_ui/properties_object_constraint.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel class ConstraintButtonsPanel(): @@ -755,7 +756,7 @@ class ConstraintButtonsPanel(): layout.label("Blender 2.5 has no py-constraints") -class OBJECT_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel): +class OBJECT_PT_constraints(ConstraintButtonsPanel, Panel): bl_label = "Object Constraints" bl_context = "constraint" @@ -779,7 +780,7 @@ class OBJECT_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel): self.draw_constraint(context, con) -class BONE_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel): +class BONE_PT_constraints(ConstraintButtonsPanel, Panel): bl_label = "Bone Constraints" bl_context = "bone_constraint" diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index f23d05f4d17..6187d95d932 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel from bl_ui.properties_physics_common import ( @@ -72,7 +73,7 @@ class ParticleButtonsPanel(): return particle_panel_poll(cls, context) -class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} @@ -175,7 +176,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel): split.prop(psys, "reactor_target_particle_system", text="Particle System") -class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_emission(ParticleButtonsPanel, Panel): bl_label = "Emission" @classmethod @@ -243,7 +244,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel): row.prop(part, "grid_random", text="Random", slider=True) -class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel): bl_label = "Hair dynamics" bl_options = {'DEFAULT_CLOSED'} @@ -298,7 +299,7 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel): col.prop(cloth, "quality", text="Steps", slider=True) -class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_cache(ParticleButtonsPanel, Panel): bl_label = "Cache" bl_options = {'DEFAULT_CLOSED'} @@ -323,7 +324,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel): point_cache_ui(self, context, psys.point_cache, True, 'HAIR' if (psys.settings.type == 'HAIR') else 'PSYS') -class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel): bl_label = "Velocity" @classmethod @@ -372,7 +373,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel): # sub.prop(part, "reaction_shape", slider=True) -class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel): bl_label = "Rotation" @classmethod @@ -420,7 +421,7 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel): col.prop(part, "angular_velocity_factor", text="") -class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_physics(ParticleButtonsPanel, Panel): bl_label = "Physics" @classmethod @@ -455,7 +456,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel): col.prop(part, "mass") col.prop(part, "use_multiply_size_mass", text="Multiply mass with size") - if part.physics_type in ('NEWTON', 'FLUID'): + if part.physics_type in {'NEWTON', 'FLUID'}: split = layout.split() col = split.column() @@ -634,7 +635,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel): sub.prop(key, "system", text="System") -class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel): bl_label = "Boid Brain" @classmethod @@ -734,7 +735,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel): row.prop(rule, "flee_distance") -class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_render(ParticleButtonsPanel, Panel): bl_label = "Render" @classmethod @@ -912,13 +913,13 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel): col = row.column() col.label(text="") - if part.render_type in ('OBJECT', 'GROUP') and not part.use_advanced_hair: + if part.render_type in {'OBJECT', 'GROUP'} and not part.use_advanced_hair: row = layout.row(align=True) row.prop(part, "particle_size") row.prop(part, "size_random", slider=True) -class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_draw(ParticleButtonsPanel, Panel): bl_label = "Display" bl_options = {'DEFAULT_CLOSED'} @@ -979,7 +980,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel): col.prop(part, "draw_step") -class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_children(ParticleButtonsPanel, Panel): bl_label = "Children" bl_options = {'DEFAULT_CLOSED'} @@ -1078,7 +1079,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel): sub.prop(part, "kink_shape", slider=True) -class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_field_weights(ParticleButtonsPanel, Panel): bl_label = "Field Weights" bl_options = {'DEFAULT_CLOSED'} @@ -1098,7 +1099,7 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel): row.prop(part, "effect_hair", slider=True) -class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel): bl_label = "Force Field Settings" bl_options = {'DEFAULT_CLOSED'} @@ -1131,7 +1132,7 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel): basic_force_field_falloff_ui(self, context, part.force_field_2) -class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel): +class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel): bl_label = "Vertexgroups" bl_options = {'DEFAULT_CLOSED'} @@ -1201,7 +1202,7 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel): # row.prop(psys, "invert_vertex_group_field", text="") -class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, bpy.types.Panel): +class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, Panel): _context_path = "particle_system.settings" _property_type = bpy.types.ParticleSettings diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py index bce6ab993a7..d5427d8bae8 100644 --- a/release/scripts/startup/bl_ui/properties_physics_cloth.py +++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Menu, Panel from bl_ui.properties_physics_common import ( @@ -30,14 +31,14 @@ def cloth_panel_enabled(md): return md.point_cache.is_baked is False -class CLOTH_MT_presets(bpy.types.Menu): +class CLOTH_MT_presets(Menu): ''' Creates the menu items by scanning scripts/templates ''' bl_label = "Cloth Presets" preset_subdir = "cloth" preset_operator = "script.execute_preset" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset class PhysicButtonsPanel(): @@ -52,7 +53,7 @@ class PhysicButtonsPanel(): return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.cloth) -class PHYSICS_PT_cloth(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel): bl_label = "Cloth" def draw(self, context): @@ -117,7 +118,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, bpy.types.Panel): col.prop_search(cloth, "rest_shape_key", key, "key_blocks", text="") -class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, Panel): bl_label = "Cloth Cache" bl_options = {'DEFAULT_CLOSED'} @@ -130,7 +131,7 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, bpy.types.Panel): point_cache_ui(self, context, md.point_cache, cloth_panel_enabled(md), 'CLOTH') -class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, Panel): bl_label = "Cloth Collision" bl_options = {'DEFAULT_CLOSED'} @@ -171,7 +172,7 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, bpy.types.Panel): layout.prop(cloth, "group") -class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel): bl_label = "Cloth Stiffness Scaling" bl_options = {'DEFAULT_CLOSED'} @@ -207,7 +208,7 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, bpy.types.Panel): col.prop(cloth, "bending_stiffness_max", text="Max") -class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, Panel): bl_label = "Cloth Field Weights" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py index f7cf8da1840..204e25d9f01 100644 --- a/release/scripts/startup/bl_ui/properties_physics_common.py +++ b/release/scripts/startup/bl_ui/properties_physics_common.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Panel class PhysicButtonsPanel(): @@ -44,7 +45,7 @@ def physics_add(self, layout, md, name, type, typeicon, toggles): sub.operator("object.modifier_add", text=name, icon=typeicon).type = type -class PHYSICS_PT_add(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_add(PhysicButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py index bd374f0a6f8..aa0ff4c6c66 100644 --- a/release/scripts/startup/bl_ui/properties_physics_field.py +++ b/release/scripts/startup/bl_ui/properties_physics_field.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from bl_ui.properties_physics_common import ( @@ -37,7 +38,7 @@ class PhysicButtonsPanel(): return (context.object) and (not rd.use_game_engine) -class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_field(PhysicButtonsPanel, Panel): bl_label = "Force Fields" @classmethod @@ -167,7 +168,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel): sub.prop(field, "radial_max", text="Distance") -class PHYSICS_PT_collision(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_collision(PhysicButtonsPanel, Panel): bl_label = "Collision" #bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py index c7e3a9e7220..46893af3582 100644 --- a/release/scripts/startup/bl_ui/properties_physics_fluid.py +++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel class PhysicButtonsPanel(): @@ -32,7 +33,7 @@ class PhysicButtonsPanel(): return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.fluid) -class PHYSICS_PT_fluid(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel): bl_label = "Fluid" def draw(self, context): @@ -186,7 +187,7 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, bpy.types.Panel): sub.prop(fluid, "velocity_radius", text="Radius") -class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel): bl_label = "Domain World" bl_options = {'DEFAULT_CLOSED'} @@ -236,7 +237,7 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, bpy.types.Panel): col.prop(fluid, "compressibility", slider=True) -class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, Panel): bl_label = "Domain Boundary" bl_options = {'DEFAULT_CLOSED'} @@ -265,7 +266,7 @@ class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, bpy.types.Panel): col.prop(fluid, "surface_subdivisions", text="Subdivisions") -class PHYSICS_PT_domain_particles(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_domain_particles(PhysicButtonsPanel, Panel): bl_label = "Domain Particles" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py index 61d8d2e3825..771a778380d 100644 --- a/release/scripts/startup/bl_ui/properties_physics_smoke.py +++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from bl_ui.properties_physics_common import ( @@ -38,7 +39,7 @@ class PhysicButtonsPanel(): return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.smoke) -class PHYSICS_PT_smoke(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel): bl_label = "Smoke" def draw(self, context): @@ -103,7 +104,7 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, bpy.types.Panel): sub.prop(flow, "temperature") -class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, Panel): bl_label = "Smoke Groups" bl_options = {'DEFAULT_CLOSED'} @@ -131,7 +132,7 @@ class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, bpy.types.Panel): col.prop(group, "collision_group", text="") -class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, Panel): bl_label = "Smoke High Resolution" bl_options = {'DEFAULT_CLOSED'} @@ -168,7 +169,7 @@ class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, bpy.types.Panel): layout.prop(md, "show_high_resolution") -class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, Panel): bl_label = "Smoke Cache" bl_options = {'DEFAULT_CLOSED'} @@ -189,7 +190,7 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, bpy.types.Panel): point_cache_ui(self, context, cache, (cache.is_baked is False), 'SMOKE') -class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel, Panel): bl_label = "Smoke Field Weights" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/properties_physics_softbody.py b/release/scripts/startup/bl_ui/properties_physics_softbody.py index 61115a0590e..0b55ccf9516 100644 --- a/release/scripts/startup/bl_ui/properties_physics_softbody.py +++ b/release/scripts/startup/bl_ui/properties_physics_softbody.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from bl_ui.properties_physics_common import ( @@ -44,7 +45,7 @@ class PhysicButtonsPanel(): return (ob and (ob.type == 'MESH' or ob.type == 'LATTICE'or ob.type == 'CURVE')) and (not rd.use_game_engine) and (context.soft_body) -class PHYSICS_PT_softbody(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel): bl_label = "Soft Body" def draw(self, context): @@ -71,7 +72,7 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel, bpy.types.Panel): col.prop(softbody, "speed") -class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel): bl_label = "Soft Body Cache" bl_options = {'DEFAULT_CLOSED'} @@ -84,7 +85,7 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, bpy.types.Panel): point_cache_ui(self, context, md.point_cache, softbody_panel_enabled(md), 'SOFTBODY') -class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel): bl_label = "Soft Body Goal" bl_options = {'DEFAULT_CLOSED'} @@ -127,7 +128,7 @@ class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, bpy.types.Panel): layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text="Vertex Group") -class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel): bl_label = "Soft Body Edges" bl_options = {'DEFAULT_CLOSED'} @@ -180,7 +181,7 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, bpy.types.Panel): col.prop(softbody, "use_face_collision", text="Face") -class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel): bl_label = "Soft Body Self Collision" bl_options = {'DEFAULT_CLOSED'} @@ -212,7 +213,7 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, bpy.types.Panel): col.prop(softbody, "ball_damp", text="Dampening") -class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel): bl_label = "Soft Body Solver" bl_options = {'DEFAULT_CLOSED'} @@ -248,7 +249,7 @@ class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, bpy.types.Panel): layout.prop(softbody, "use_estimate_matrix") -class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, bpy.types.Panel): +class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel): bl_label = "Soft Body Field Weights" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 6d36db29a6c..fb14372ebea 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -18,27 +18,28 @@ # import bpy +from bpy.types import Menu, Panel -class RENDER_MT_presets(bpy.types.Menu): +class RENDER_MT_presets(Menu): bl_label = "Render Presets" preset_subdir = "render" preset_operator = "script.execute_preset" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset -class RENDER_MT_ffmpeg_presets(bpy.types.Menu): +class RENDER_MT_ffmpeg_presets(Menu): bl_label = "FFMPEG Presets" preset_subdir = "ffmpeg" preset_operator = "script.python_file_run" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset -class RENDER_MT_framerate_presets(bpy.types.Menu): +class RENDER_MT_framerate_presets(Menu): bl_label = "Frame Rate Presets" preset_subdir = "framerate" preset_operator = "script.execute_preset" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset class RenderButtonsPanel(): @@ -53,7 +54,7 @@ class RenderButtonsPanel(): return (context.scene and rd.use_game_engine is False) and (rd.engine in cls.COMPAT_ENGINES) -class RENDER_PT_render(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_render(RenderButtonsPanel, Panel): bl_label = "Render" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -69,7 +70,7 @@ class RENDER_PT_render(RenderButtonsPanel, bpy.types.Panel): layout.prop(rd, "display_mode", text="Display") -class RENDER_PT_layers(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_layers(RenderButtonsPanel, Panel): bl_label = "Layers" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -173,7 +174,7 @@ class RENDER_PT_layers(RenderButtonsPanel, bpy.types.Panel): row.prop(rl, "exclude_refraction", text="") -class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_dimensions(RenderButtonsPanel, Panel): bl_label = "Dimensions" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -240,7 +241,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel): subrow.prop(rd, "frame_map_new", text="New") -class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_antialiasing(RenderButtonsPanel, Panel): bl_label = "Anti-Aliasing" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -268,7 +269,7 @@ class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel): col.prop(rd, "filter_size", text="Size") -class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_motion_blur(RenderButtonsPanel, Panel): bl_label = "Sampled Motion Blur" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -294,7 +295,7 @@ class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel): row.prop(rd, "motion_blur_shutter") -class RENDER_PT_shading(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_shading(RenderButtonsPanel, Panel): bl_label = "Shading" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -318,7 +319,7 @@ class RENDER_PT_shading(RenderButtonsPanel, bpy.types.Panel): col.prop(rd, "alpha_mode", text="Alpha") -class RENDER_PT_performance(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_performance(RenderButtonsPanel, Panel): bl_label = "Performance" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -361,7 +362,7 @@ class RENDER_PT_performance(RenderButtonsPanel, bpy.types.Panel): sub.prop(rd, "use_local_coords", text="Local Coordinates") -class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_post_processing(RenderButtonsPanel, Panel): bl_label = "Post Processing" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -398,7 +399,7 @@ class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel): sub.prop(rd, "edge_color", text="") -class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_stamp(RenderButtonsPanel, Panel): bl_label = "Stamp" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -443,7 +444,7 @@ class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel): sub.prop(rd, "stamp_note_text", text="") -class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_output(RenderButtonsPanel, Panel): bl_label = "Output" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -543,7 +544,7 @@ class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel): col.prop(rd, "quicktime_audio_resampling_hq") -class RENDER_PT_encoding(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_encoding(RenderButtonsPanel, Panel): bl_label = "Encoding" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -600,7 +601,7 @@ class RENDER_PT_encoding(RenderButtonsPanel, bpy.types.Panel): split.prop(rd, "ffmpeg_audio_volume", slider=True) -class RENDER_PT_bake(RenderButtonsPanel, bpy.types.Panel): +class RENDER_PT_bake(RenderButtonsPanel, Panel): bl_label = "Bake" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 7725f661693..6e96e1228e7 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Operator, Panel from rna_prop_ui import PropertyPanel @@ -31,7 +32,7 @@ class SceneButtonsPanel(): return context.scene -class SCENE_PT_scene(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_scene(SceneButtonsPanel, Panel): bl_label = "Scene" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -43,7 +44,7 @@ class SCENE_PT_scene(SceneButtonsPanel, bpy.types.Panel): layout.prop(scene, "background_set", text="Background") -class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_unit(SceneButtonsPanel, Panel): bl_label = "Units" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -61,7 +62,7 @@ class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel): row.prop(unit, "use_separate") -class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_keying_sets(SceneButtonsPanel, Panel): bl_label = "Keying Sets" def draw(self, context): @@ -94,7 +95,7 @@ class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel): col.prop(ks, "bl_options") -class SCENE_PT_keying_set_paths(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_keying_set_paths(SceneButtonsPanel, Panel): bl_label = "Active Keying Set" @classmethod @@ -144,7 +145,7 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel, bpy.types.Panel): col.prop(ksp, "bl_options") -class SCENE_PT_physics(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_physics(SceneButtonsPanel, Panel): bl_label = "Gravity" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -161,7 +162,7 @@ class SCENE_PT_physics(SceneButtonsPanel, bpy.types.Panel): layout.prop(scene, "gravity", text="") -class SCENE_PT_simplify(SceneButtonsPanel, bpy.types.Panel): +class SCENE_PT_simplify(SceneButtonsPanel, Panel): bl_label = "Simplify" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -190,7 +191,7 @@ class SCENE_PT_simplify(SceneButtonsPanel, bpy.types.Panel): col.prop(rd, "simplify_ao_sss", text="AO and SSS") -class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, bpy.types.Panel): +class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "scene" _property_type = bpy.types.Scene @@ -198,7 +199,7 @@ class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, bpy.types.Panel): # XXX, move operator to op/ dir -class ANIM_OT_keying_set_export(bpy.types.Operator): +class ANIM_OT_keying_set_export(Operator): "Export Keying Set to a python script." bl_idname = "anim.keying_set_export" bl_label = "Export Keying Set..." diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index e216f019297..fe741b78daa 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -18,10 +18,11 @@ # import bpy +from bpy.types import Menu, Panel from rna_prop_ui import PropertyPanel -class TEXTURE_MT_specials(bpy.types.Menu): +class TEXTURE_MT_specials(Menu): bl_label = "Texture Specials" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -32,7 +33,7 @@ class TEXTURE_MT_specials(bpy.types.Menu): layout.operator("texture.slot_paste", icon='PASTEDOWN') -class TEXTURE_MT_envmap_specials(bpy.types.Menu): +class TEXTURE_MT_envmap_specials(Menu): bl_label = "Environment Map Specials" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -80,7 +81,7 @@ class TextureButtonsPanel(): return tex and (tex.type != 'NONE' or tex.use_nodes) and (context.scene.render.engine in cls.COMPAT_ENGINES) -class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -150,7 +151,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): split.prop(tex, "type", text="") -class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_preview(TextureButtonsPanel, Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -167,7 +168,7 @@ class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel): layout.template_preview(tex, slot=slot) -class TEXTURE_PT_colors(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_colors(TextureButtonsPanel, Panel): bl_label = "Colors" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -223,7 +224,7 @@ class TextureTypePanel(TextureButtonsPanel): return tex and ((tex.type == cls.tex_type and not tex.use_nodes) and (engine in cls.COMPAT_ENGINES)) -class TEXTURE_PT_clouds(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_clouds(TextureTypePanel, Panel): bl_label = "Clouds" tex_type = 'CLOUDS' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -247,7 +248,7 @@ class TEXTURE_PT_clouds(TextureTypePanel, bpy.types.Panel): split.prop(tex, "nabla", text="Nabla") -class TEXTURE_PT_wood(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_wood(TextureTypePanel, Panel): bl_label = "Wood" tex_type = 'WOOD' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -276,7 +277,7 @@ class TEXTURE_PT_wood(TextureTypePanel, bpy.types.Panel): split.prop(tex, "nabla") -class TEXTURE_PT_marble(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_marble(TextureTypePanel, Panel): bl_label = "Marble" tex_type = 'MARBLE' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -303,7 +304,7 @@ class TEXTURE_PT_marble(TextureTypePanel, bpy.types.Panel): col.prop(tex, "nabla") -class TEXTURE_PT_magic(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_magic(TextureTypePanel, Panel): bl_label = "Magic" tex_type = 'MAGIC' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -318,7 +319,7 @@ class TEXTURE_PT_magic(TextureTypePanel, bpy.types.Panel): row.prop(tex, "turbulence") -class TEXTURE_PT_blend(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_blend(TextureTypePanel, Panel): bl_label = "Blend" tex_type = 'BLEND' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -336,7 +337,7 @@ class TEXTURE_PT_blend(TextureTypePanel, bpy.types.Panel): sub.prop(tex, "use_flip_axis", expand=True) -class TEXTURE_PT_stucci(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_stucci(TextureTypePanel, Panel): bl_label = "Stucci" tex_type = 'STUCCI' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -356,7 +357,7 @@ class TEXTURE_PT_stucci(TextureTypePanel, bpy.types.Panel): row.prop(tex, "turbulence") -class TEXTURE_PT_image(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_image(TextureTypePanel, Panel): bl_label = "Image" tex_type = 'IMAGE' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -382,7 +383,7 @@ def texture_filter_common(tex, layout): layout.prop(tex, "use_filter_size_min") -class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_image_sampling(TextureTypePanel, Panel): bl_label = "Image Sampling" bl_options = {'DEFAULT_CLOSED'} tex_type = 'IMAGE' @@ -424,7 +425,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): texture_filter_common(tex, col) -class TEXTURE_PT_image_mapping(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_image_mapping(TextureTypePanel, Panel): bl_label = "Image Mapping" bl_options = {'DEFAULT_CLOSED'} tex_type = 'IMAGE' @@ -480,7 +481,7 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, bpy.types.Panel): col.prop(tex, "crop_max_y", text="Y") -class TEXTURE_PT_envmap(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_envmap(TextureTypePanel, Panel): bl_label = "Environment Map" tex_type = 'ENVIRONMENT_MAP' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -518,7 +519,7 @@ class TEXTURE_PT_envmap(TextureTypePanel, bpy.types.Panel): col.prop(env, "clip_end", text="End") -class TEXTURE_PT_envmap_sampling(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_envmap_sampling(TextureTypePanel, Panel): bl_label = "Environment Map Sampling" bl_options = {'DEFAULT_CLOSED'} tex_type = 'ENVIRONMENT_MAP' @@ -532,7 +533,7 @@ class TEXTURE_PT_envmap_sampling(TextureTypePanel, bpy.types.Panel): texture_filter_common(tex, layout) -class TEXTURE_PT_musgrave(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_musgrave(TextureTypePanel, Panel): bl_label = "Musgrave" tex_type = 'MUSGRAVE' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -569,7 +570,7 @@ class TEXTURE_PT_musgrave(TextureTypePanel, bpy.types.Panel): row.prop(tex, "nabla") -class TEXTURE_PT_voronoi(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_voronoi(TextureTypePanel, Panel): bl_label = "Voronoi" tex_type = 'VORONOI' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -605,7 +606,7 @@ class TEXTURE_PT_voronoi(TextureTypePanel, bpy.types.Panel): row.prop(tex, "nabla") -class TEXTURE_PT_distortednoise(TextureTypePanel, bpy.types.Panel): +class TEXTURE_PT_distortednoise(TextureTypePanel, Panel): bl_label = "Distorted Noise" tex_type = 'DISTORTED_NOISE' COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -627,7 +628,7 @@ class TEXTURE_PT_distortednoise(TextureTypePanel, bpy.types.Panel): split.prop(tex, "nabla") -class TEXTURE_PT_voxeldata(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_voxeldata(TextureButtonsPanel, Panel): bl_label = "Voxel Data" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -667,7 +668,7 @@ class TEXTURE_PT_voxeldata(TextureButtonsPanel, bpy.types.Panel): layout.prop(vd, "intensity") -class TEXTURE_PT_pointdensity(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel): bl_label = "Point Density" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -733,7 +734,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, bpy.types.Panel): col.template_curve_mapping(pd, "falloff_curve", brush=False) -class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, bpy.types.Panel): +class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, Panel): bl_label = "Turbulence" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -770,7 +771,7 @@ class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, bpy.types.Panel): col.prop(pd, "turbulence_strength") -class TEXTURE_PT_mapping(TextureSlotPanel, bpy.types.Panel): +class TEXTURE_PT_mapping(TextureSlotPanel, Panel): bl_label = "Mapping" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -858,7 +859,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel, bpy.types.Panel): row.column().prop(tex, "scale") -class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): +class TEXTURE_PT_influence(TextureSlotPanel, Panel): bl_label = "Influence" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -1034,7 +1035,7 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): sub.prop(tex, "bump_objectspace", text="Space") -class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, bpy.types.Panel): +class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "texture" _property_type = bpy.types.Texture diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py index c577af01374..71ee03296a0 100644 --- a/release/scripts/startup/bl_ui/properties_world.py +++ b/release/scripts/startup/bl_ui/properties_world.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -32,7 +33,7 @@ class WorldButtonsPanel(): return (context.world and context.scene.render.engine in cls.COMPAT_ENGINES) -class WORLD_PT_context_world(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_context_world(WorldButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -61,7 +62,7 @@ class WORLD_PT_context_world(WorldButtonsPanel, bpy.types.Panel): split.label(text=str(texture_count), icon='TEXTURE') -class WORLD_PT_preview(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_preview(WorldButtonsPanel, Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -74,7 +75,7 @@ class WORLD_PT_preview(WorldButtonsPanel, bpy.types.Panel): self.layout.template_preview(context.world) -class WORLD_PT_world(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_world(WorldButtonsPanel, Panel): bl_label = "World" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -99,7 +100,7 @@ class WORLD_PT_world(WorldButtonsPanel, bpy.types.Panel): row.prop(world, "color_range") -class WORLD_PT_ambient_occlusion(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_ambient_occlusion(WorldButtonsPanel, Panel): bl_label = "Ambient Occlusion" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -118,7 +119,7 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel, bpy.types.Panel): split.prop(light, "ao_blend_type", text="") -class WORLD_PT_environment_lighting(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_environment_lighting(WorldButtonsPanel, Panel): bl_label = "Environment Lighting" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -137,7 +138,7 @@ class WORLD_PT_environment_lighting(WorldButtonsPanel, bpy.types.Panel): split.prop(light, "environment_color", text="") -class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_indirect_lighting(WorldButtonsPanel, Panel): bl_label = "Indirect Lighting" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -159,7 +160,7 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel): layout.label(text="Only works with Approximate gather method") -class WORLD_PT_gather(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_gather(WorldButtonsPanel, Panel): bl_label = "Gather" COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -207,7 +208,7 @@ class WORLD_PT_gather(WorldButtonsPanel, bpy.types.Panel): col.prop(light, "correction") -class WORLD_PT_mist(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_mist(WorldButtonsPanel, Panel): bl_label = "Mist" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -236,7 +237,7 @@ class WORLD_PT_mist(WorldButtonsPanel, bpy.types.Panel): layout.prop(world.mist_settings, "falloff") -class WORLD_PT_stars(WorldButtonsPanel, bpy.types.Panel): +class WORLD_PT_stars(WorldButtonsPanel, Panel): bl_label = "Stars" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} @@ -263,7 +264,7 @@ class WORLD_PT_stars(WorldButtonsPanel, bpy.types.Panel): col.prop(world.star_settings, "average_separation", text="Separation") -class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, bpy.types.Panel): +class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} _context_path = "world" _property_type = bpy.types.World diff --git a/release/scripts/startup/bl_ui/space_console.py b/release/scripts/startup/bl_ui/space_console.py index da6c102100b..d457a66def8 100644 --- a/release/scripts/startup/bl_ui/space_console.py +++ b/release/scripts/startup/bl_ui/space_console.py @@ -18,32 +18,30 @@ # import bpy +from bpy.types import Header, Menu, Operator from bpy.props import StringProperty -class CONSOLE_HT_header(bpy.types.Header): +class CONSOLE_HT_header(Header): bl_space_type = 'CONSOLE' def draw(self, context): - layout = self.layout + layout = self.layout.row(align=True) - row = layout.row(align=True) - row.template_header() + layout.template_header() if context.area.show_menus: - sub = row.row(align=True) - sub.menu("CONSOLE_MT_console") + layout.menu("CONSOLE_MT_console") - row = layout.row(align=True) - row.operator("console.autocomplete", text="Autocomplete") + layout.operator("console.autocomplete", text="Autocomplete") -class CONSOLE_MT_console(bpy.types.Menu): +class CONSOLE_MT_console(Menu): bl_label = "Console" def draw(self, context): layout = self.layout - layout.column() + layout.operator("console.clear") layout.operator("console.copy") layout.operator("console.paste") @@ -55,7 +53,7 @@ class CONSOLE_MT_console(bpy.types.Menu): layout.operator("screen.screen_full_area") -class CONSOLE_MT_language(bpy.types.Menu): +class CONSOLE_MT_language(Menu): bl_label = "Languages..." def draw(self, context): @@ -82,7 +80,7 @@ def add_scrollback(text, text_type): type=text_type) -class ConsoleExec(bpy.types.Operator): +class ConsoleExec(Operator): '''Execute the current console line as a python expression''' bl_idname = "console.execute" bl_label = "Console Execute" @@ -100,7 +98,7 @@ class ConsoleExec(bpy.types.Operator): return {'FINISHED'} -class ConsoleAutocomplete(bpy.types.Operator): +class ConsoleAutocomplete(Operator): '''Evaluate the namespace up until the cursor and give a list of options or complete the name if there is only one''' bl_idname = "console.autocomplete" bl_label = "Console Autocomplete" @@ -117,7 +115,7 @@ class ConsoleAutocomplete(bpy.types.Operator): return {'FINISHED'} -class ConsoleBanner(bpy.types.Operator): +class ConsoleBanner(Operator): '''Print a message whem the terminal initializes''' bl_idname = "console.banner" bl_label = "Console Banner" @@ -139,7 +137,7 @@ class ConsoleBanner(bpy.types.Operator): return {'FINISHED'} -class ConsoleLanguage(bpy.types.Operator): +class ConsoleLanguage(Operator): '''Set the current language for this console''' bl_idname = "console.language" bl_label = "Console Language" diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py index 930a2029d32..dfbd7b3ae14 100644 --- a/release/scripts/startup/bl_ui/space_dopesheet.py +++ b/release/scripts/startup/bl_ui/space_dopesheet.py @@ -19,6 +19,7 @@ # import bpy +from bpy.types import Header, Menu ####################################### @@ -84,7 +85,7 @@ def dopesheet_filter(layout, context, genericFiltersOnly=False): ####################################### # DopeSheet Editor - General/Standard UI -class DOPESHEET_HT_header(bpy.types.Header): +class DOPESHEET_HT_header(Header): bl_space_type = 'DOPESHEET_EDITOR' def draw(self, context): @@ -96,21 +97,19 @@ class DOPESHEET_HT_header(bpy.types.Header): row.template_header() if context.area.show_menus: - sub = row.row(align=True) - - sub.menu("DOPESHEET_MT_view") - sub.menu("DOPESHEET_MT_select") - sub.menu("DOPESHEET_MT_marker") + row.menu("DOPESHEET_MT_view") + row.menu("DOPESHEET_MT_select") + row.menu("DOPESHEET_MT_marker") if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action != None): - sub.menu("DOPESHEET_MT_channel") + row.menu("DOPESHEET_MT_channel") elif st.mode == 'GPENCIL': - sub.menu("DOPESHEET_MT_gpencil_channel") + row.menu("DOPESHEET_MT_gpencil_channel") if st.mode != 'GPENCIL': - sub.menu("DOPESHEET_MT_key") + row.menu("DOPESHEET_MT_key") else: - sub.menu("DOPESHEET_MT_gpencil_frame") + row.menu("DOPESHEET_MT_gpencil_frame") layout.prop(st, "mode", text="") layout.prop(st.dopesheet, "show_summary", text="Summary") @@ -134,7 +133,7 @@ class DOPESHEET_HT_header(bpy.types.Header): row.operator("action.paste", text="", icon='PASTEDOWN') -class DOPESHEET_MT_view(bpy.types.Menu): +class DOPESHEET_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -142,8 +141,6 @@ class DOPESHEET_MT_view(bpy.types.Menu): st = context.space_data - layout.column() - layout.prop(st, "use_realtime_update") layout.prop(st, "show_frame_indicator") layout.prop(st, "show_sliders") @@ -170,13 +167,12 @@ class DOPESHEET_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class DOPESHEET_MT_select(bpy.types.Menu): +class DOPESHEET_MT_select(Menu): bl_label = "Select" def draw(self, context): layout = self.layout - layout.column() # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None layout.operator("action.select_all_toggle") layout.operator("action.select_all_toggle", text="Invert Selection").invert = True @@ -206,7 +202,7 @@ class DOPESHEET_MT_select(bpy.types.Menu): layout.operator("action.select_linked") -class DOPESHEET_MT_marker(bpy.types.Menu): +class DOPESHEET_MT_marker(Menu): bl_label = "Marker" def draw(self, context): @@ -216,7 +212,6 @@ class DOPESHEET_MT_marker(bpy.types.Menu): #layout.operator_context = 'EXEC_REGION_WIN' - layout.column() layout.operator("marker.add", "Add Marker") layout.operator("marker.duplicate", text="Duplicate Marker") layout.operator("marker.delete", text="Delete Marker") @@ -237,7 +232,7 @@ class DOPESHEET_MT_marker(bpy.types.Menu): ####################################### # Keyframe Editing -class DOPESHEET_MT_channel(bpy.types.Menu): +class DOPESHEET_MT_channel(Menu): bl_label = "Channel" def draw(self, context): @@ -245,7 +240,6 @@ class DOPESHEET_MT_channel(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_CHANNELS' - layout.column() layout.operator("anim.channels_delete") layout.separator() @@ -268,13 +262,12 @@ class DOPESHEET_MT_channel(bpy.types.Menu): layout.operator("anim.channels_fcurves_enable") -class DOPESHEET_MT_key(bpy.types.Menu): +class DOPESHEET_MT_key(Menu): bl_label = "Key" def draw(self, context): layout = self.layout - layout.column() layout.menu("DOPESHEET_MT_key_transform", text="Transform") layout.operator_menu_enum("action.snap", "type", text="Snap") @@ -301,13 +294,12 @@ class DOPESHEET_MT_key(bpy.types.Menu): layout.operator("action.paste") -class DOPESHEET_MT_key_transform(bpy.types.Menu): +class DOPESHEET_MT_key_transform(Menu): bl_label = "Transform" def draw(self, context): layout = self.layout - layout.column() layout.operator("transform.transform", text="Grab/Move").mode = 'TIME_TRANSLATE' layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND' layout.operator("transform.transform", text="Slide").mode = 'TIME_SLIDE' @@ -317,7 +309,7 @@ class DOPESHEET_MT_key_transform(bpy.types.Menu): ####################################### # Grease Pencil Editing -class DOPESHEET_MT_gpencil_channel(bpy.types.Menu): +class DOPESHEET_MT_gpencil_channel(Menu): bl_label = "Channel" def draw(self, context): @@ -325,7 +317,6 @@ class DOPESHEET_MT_gpencil_channel(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_CHANNELS' - layout.column() layout.operator("anim.channels_delete") layout.separator() @@ -345,13 +336,12 @@ class DOPESHEET_MT_gpencil_channel(bpy.types.Menu): #layout.operator_menu_enum("anim.channels_move", "direction", text="Move...") -class DOPESHEET_MT_gpencil_frame(bpy.types.Menu): +class DOPESHEET_MT_gpencil_frame(Menu): bl_label = "Frame" def draw(self, context): layout = self.layout - layout.column() layout.menu("DOPESHEET_MT_key_transform", text="Transform") #layout.operator_menu_enum("action.snap", "type", text="Snap") diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py index 73fe1a97252..cf0d10c5844 100644 --- a/release/scripts/startup/bl_ui/space_filebrowser.py +++ b/release/scripts/startup/bl_ui/space_filebrowser.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header -class FILEBROWSER_HT_header(bpy.types.Header): +class FILEBROWSER_HT_header(Header): bl_space_type = 'FILE_BROWSER' def draw(self, context): diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py index bfc1a0e3a23..c379ea95ea2 100644 --- a/release/scripts/startup/bl_ui/space_graph.py +++ b/release/scripts/startup/bl_ui/space_graph.py @@ -19,9 +19,10 @@ # import bpy +from bpy.types import Header, Menu -class GRAPH_HT_header(bpy.types.Header): +class GRAPH_HT_header(Header): bl_space_type = 'GRAPH_EDITOR' def draw(self, context): @@ -35,13 +36,11 @@ class GRAPH_HT_header(bpy.types.Header): row.template_header() if context.area.show_menus: - sub = row.row(align=True) - - sub.menu("GRAPH_MT_view") - sub.menu("GRAPH_MT_select") - sub.menu("GRAPH_MT_marker") - sub.menu("GRAPH_MT_channel") - sub.menu("GRAPH_MT_key") + row.menu("GRAPH_MT_view") + row.menu("GRAPH_MT_select") + row.menu("GRAPH_MT_marker") + row.menu("GRAPH_MT_channel") + row.menu("GRAPH_MT_key") layout.prop(st, "mode", text="") @@ -61,7 +60,7 @@ class GRAPH_HT_header(bpy.types.Header): row.operator("graph.ghost_curves_create", text="", icon='GHOST_ENABLED') -class GRAPH_MT_view(bpy.types.Menu): +class GRAPH_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -69,8 +68,6 @@ class GRAPH_MT_view(bpy.types.Menu): st = context.space_data - layout.column() - layout.operator("graph.properties", icon='MENU_PANEL') layout.separator() @@ -107,13 +104,12 @@ class GRAPH_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class GRAPH_MT_select(bpy.types.Menu): +class GRAPH_MT_select(Menu): bl_label = "Select" def draw(self, context): layout = self.layout - layout.column() # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None layout.operator("graph.select_all_toggle") layout.operator("graph.select_all_toggle", text="Invert Selection").invert = True @@ -142,7 +138,7 @@ class GRAPH_MT_select(bpy.types.Menu): layout.operator("graph.select_linked") -class GRAPH_MT_marker(bpy.types.Menu): +class GRAPH_MT_marker(Menu): bl_label = "Marker" def draw(self, context): @@ -150,7 +146,6 @@ class GRAPH_MT_marker(bpy.types.Menu): #layout.operator_context = 'EXEC_REGION_WIN' - layout.column() layout.operator("marker.add", "Add Marker") layout.operator("marker.duplicate", text="Duplicate Marker") layout.operator("marker.delete", text="Delete Marker") @@ -163,7 +158,7 @@ class GRAPH_MT_marker(bpy.types.Menu): # TODO: pose markers for action edit mode only? -class GRAPH_MT_channel(bpy.types.Menu): +class GRAPH_MT_channel(Menu): bl_label = "Channel" def draw(self, context): @@ -171,7 +166,6 @@ class GRAPH_MT_channel(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_CHANNELS' - layout.column() layout.operator("anim.channels_delete") layout.separator() @@ -195,13 +189,12 @@ class GRAPH_MT_channel(bpy.types.Menu): layout.operator("anim.channels_fcurves_enable") -class GRAPH_MT_key(bpy.types.Menu): +class GRAPH_MT_key(Menu): bl_label = "Key" def draw(self, context): layout = self.layout - layout.column() layout.menu("GRAPH_MT_key_transform", text="Transform") layout.operator_menu_enum("graph.snap", "type", text="Snap") @@ -234,13 +227,12 @@ class GRAPH_MT_key(bpy.types.Menu): layout.operator("graph.euler_filter", text="Discontinuity (Euler) Filter") -class GRAPH_MT_key_transform(bpy.types.Menu): +class GRAPH_MT_key_transform(Menu): bl_label = "Transform" def draw(self, context): layout = self.layout - layout.column() layout.operator("transform.translate", text="Grab/Move") layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND' layout.operator("transform.rotate", text="Rotate") diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index fa5579ea2e0..5d72482ce9c 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Header, Menu, Panel class BrushButtonsPanel(): @@ -31,7 +32,7 @@ class BrushButtonsPanel(): return sima.show_paint and toolsettings.brush -class IMAGE_MT_view(bpy.types.Menu): +class IMAGE_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -79,7 +80,7 @@ class IMAGE_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class IMAGE_MT_select(bpy.types.Menu): +class IMAGE_MT_select(Menu): bl_label = "Select" def draw(self, context): @@ -100,7 +101,7 @@ class IMAGE_MT_select(bpy.types.Menu): layout.operator("uv.select_linked") -class IMAGE_MT_image(bpy.types.Menu): +class IMAGE_MT_image(Menu): bl_label = "Image" def draw(self, context): @@ -151,7 +152,7 @@ class IMAGE_MT_image(bpy.types.Menu): layout.prop(sima, "use_image_paint") -class IMAGE_MT_image_invert(bpy.types.Menu): +class IMAGE_MT_image_invert(Menu): bl_label = "Invert" def draw(self, context): @@ -177,7 +178,7 @@ class IMAGE_MT_image_invert(bpy.types.Menu): op.invert_a = True -class IMAGE_MT_uvs_showhide(bpy.types.Menu): +class IMAGE_MT_uvs_showhide(Menu): bl_label = "Show/Hide Faces" def draw(self, context): @@ -188,7 +189,7 @@ class IMAGE_MT_uvs_showhide(bpy.types.Menu): layout.operator("uv.hide", text="Hide Unselected").unselected = True -class IMAGE_MT_uvs_transform(bpy.types.Menu): +class IMAGE_MT_uvs_transform(Menu): bl_label = "Transform" def draw(self, context): @@ -203,7 +204,7 @@ class IMAGE_MT_uvs_transform(bpy.types.Menu): layout.operator("transform.shear") -class IMAGE_MT_uvs_snap(bpy.types.Menu): +class IMAGE_MT_uvs_snap(Menu): bl_label = "Snap" def draw(self, context): @@ -220,7 +221,7 @@ class IMAGE_MT_uvs_snap(bpy.types.Menu): layout.operator("uv.snap_cursor", text="Cursor to Selected").target = 'SELECTED' -class IMAGE_MT_uvs_mirror(bpy.types.Menu): +class IMAGE_MT_uvs_mirror(Menu): bl_label = "Mirror" def draw(self, context): @@ -231,7 +232,7 @@ class IMAGE_MT_uvs_mirror(bpy.types.Menu): layout.operator("transform.mirror", text="Y Axis").constraint_axis[1] = True -class IMAGE_MT_uvs_weldalign(bpy.types.Menu): +class IMAGE_MT_uvs_weldalign(Menu): bl_label = "Weld/Align" def draw(self, context): @@ -241,7 +242,7 @@ class IMAGE_MT_uvs_weldalign(bpy.types.Menu): layout.operator_enum("uv.align", "axis") # W, 2/3/4 -class IMAGE_MT_uvs(bpy.types.Menu): +class IMAGE_MT_uvs(Menu): bl_label = "UVs" def draw(self, context): @@ -286,7 +287,7 @@ class IMAGE_MT_uvs(bpy.types.Menu): layout.menu("IMAGE_MT_uvs_showhide") -class IMAGE_MT_uvs_select_mode(bpy.types.Menu): +class IMAGE_MT_uvs_select_mode(Menu): bl_label = "UV Select Mode" def draw(self, context): @@ -328,7 +329,7 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu): prop.data_path = "tool_settings.uv_select_mode" -class IMAGE_HT_header(bpy.types.Header): +class IMAGE_HT_header(Header): bl_space_type = 'IMAGE_EDITOR' def draw(self, context): @@ -412,7 +413,7 @@ class IMAGE_HT_header(bpy.types.Header): layout.prop(sima, "use_realtime_update", text="", icon_only=True, icon='LOCKED') -class IMAGE_PT_image_properties(bpy.types.Panel): +class IMAGE_PT_image_properties(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'UI' bl_label = "Image" @@ -431,7 +432,7 @@ class IMAGE_PT_image_properties(bpy.types.Panel): layout.template_image(sima, "image", iuser) -class IMAGE_PT_game_properties(bpy.types.Panel): +class IMAGE_PT_game_properties(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'UI' bl_label = "Game Properties" @@ -451,15 +452,13 @@ class IMAGE_PT_game_properties(bpy.types.Panel): split = layout.split() col = split.column() - + + col.prop(ima, "use_animation") sub = col.column(align=True) - sub.prop(ima, "use_animation") - - subsub = sub.column() - subsub.active = ima.use_animation - subsub.prop(ima, "frame_start", text="Start") - subsub.prop(ima, "frame_end", text="End") - subsub.prop(ima, "fps", text="Speed") + sub.active = ima.use_animation + sub.prop(ima, "frame_start", text="Start") + sub.prop(ima, "frame_end", text="End") + sub.prop(ima, "fps", text="Speed") col.prop(ima, "use_tiles") sub = col.column(align=True) @@ -475,7 +474,7 @@ class IMAGE_PT_game_properties(bpy.types.Panel): col.prop(ima, "mapping", expand=True) -class IMAGE_PT_view_histogram(bpy.types.Panel): +class IMAGE_PT_view_histogram(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'PREVIEW' bl_label = "Histogram" @@ -494,7 +493,7 @@ class IMAGE_PT_view_histogram(bpy.types.Panel): layout.prop(sima.scopes.histogram, "mode", icon_only=True) -class IMAGE_PT_view_waveform(bpy.types.Panel): +class IMAGE_PT_view_waveform(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'PREVIEW' bl_label = "Waveform" @@ -508,13 +507,14 @@ class IMAGE_PT_view_waveform(bpy.types.Panel): layout = self.layout sima = context.space_data + layout.template_waveform(sima, "scopes") - sub = layout.row().split(percentage=0.75) - sub.prop(sima.scopes, "waveform_alpha") - sub.prop(sima.scopes, "waveform_mode", text="", icon_only=True) + row = layout.split(percentage=0.75) + row.prop(sima.scopes, "waveform_alpha") + row.prop(sima.scopes, "waveform_mode", text="", icon_only=True) -class IMAGE_PT_view_vectorscope(bpy.types.Panel): +class IMAGE_PT_view_vectorscope(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'PREVIEW' bl_label = "Vectorscope" @@ -532,7 +532,7 @@ class IMAGE_PT_view_vectorscope(bpy.types.Panel): layout.prop(sima.scopes, "vectorscope_alpha") -class IMAGE_PT_sample_line(bpy.types.Panel): +class IMAGE_PT_sample_line(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'PREVIEW' bl_label = "Sample Line" @@ -544,13 +544,15 @@ class IMAGE_PT_sample_line(bpy.types.Panel): def draw(self, context): layout = self.layout - layout.operator("image.sample_line") + sima = context.space_data + + layout.operator("image.sample_line") layout.template_histogram(sima, "sample_histogram") layout.prop(sima.sample_histogram, "mode") -class IMAGE_PT_scope_sample(bpy.types.Panel): +class IMAGE_PT_scope_sample(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'PREVIEW' bl_label = "Scope Samples" @@ -562,16 +564,17 @@ class IMAGE_PT_scope_sample(bpy.types.Panel): def draw(self, context): layout = self.layout + sima = context.space_data - split = layout.split() - row = split.row() + + row = layout.row() row.prop(sima.scopes, "use_full_resolution") - row = split.row() - row.active = not sima.scopes.use_full_resolution - row.prop(sima.scopes, "accuracy") + sub = row.row() + sub.active = not sima.scopes.use_full_resolution + sub.prop(sima.scopes, "accuracy") -class IMAGE_PT_view_properties(bpy.types.Panel): +class IMAGE_PT_view_properties(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'UI' bl_label = "Display" @@ -608,16 +611,16 @@ class IMAGE_PT_view_properties(bpy.types.Panel): if show_uvedit: col = layout.column() - col.label("Cursor Location") - row = col.row() - row.prop(uvedit, "cursor_location", text="") - - col = layout.column() + col.label("Cursor Location:") + col.row().prop(uvedit, "cursor_location", text="") + + col.separator() + col.label(text="UVs:") - row = col.row() - row.prop(uvedit, "edge_draw_type", expand=True) + col.row().prop(uvedit, "edge_draw_type", expand=True) split = layout.split() + col = split.column() col.prop(uvedit, "show_faces") col.prop(uvedit, "show_smooth_edges", text="Smooth") @@ -630,7 +633,7 @@ class IMAGE_PT_view_properties(bpy.types.Panel): sub.row().prop(uvedit, "draw_stretch_type", expand=True) -class IMAGE_PT_paint(bpy.types.Panel): +class IMAGE_PT_paint(Panel): bl_space_type = 'IMAGE_EDITOR' bl_region_type = 'UI' bl_label = "Paint" @@ -646,9 +649,8 @@ class IMAGE_PT_paint(bpy.types.Panel): toolsettings = context.tool_settings.image_paint brush = toolsettings.brush - col = layout.split().column() - row = col.row() - col.template_ID_preview(toolsettings, "brush", new="brush.add", rows=3, cols=8) + col = layout.column() + col.template_ID_preview(toolsettings, "brush", new="brush.add", rows=2, cols=6) if brush: col = layout.column() @@ -675,7 +677,7 @@ class IMAGE_PT_paint(bpy.types.Panel): col.prop(brush, "clone_alpha", text="Alpha") -class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel): +class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, Panel): bl_label = "Texture" bl_options = {'DEFAULT_CLOSED'} @@ -690,7 +692,7 @@ class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel): col.prop(brush, "use_fixed_texture") -class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel): +class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, Panel): bl_label = "Tool" bl_options = {'DEFAULT_CLOSED'} @@ -699,9 +701,7 @@ class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel): settings = context.tool_settings.image_paint brush = settings.brush - col = layout.column(align=True) - - col.prop(brush, "image_tool", expand=False, text="") + layout.prop(brush, "image_tool", text="") row = layout.row(align=True) row.prop(brush, "use_paint_sculpt", text="", icon='SCULPTMODE_HLT') @@ -710,7 +710,7 @@ class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel): row.prop(brush, "use_paint_image", text="", icon='TPAINT_HLT') -class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel): +class IMAGE_PT_paint_stroke(BrushButtonsPanel, Panel): bl_label = "Paint Stroke" bl_options = {'DEFAULT_CLOSED'} @@ -721,9 +721,9 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel): brush = toolsettings.brush layout.prop(brush, "use_airbrush") - col = layout.column() - col.active = brush.use_airbrush - col.prop(brush, "rate", slider=True) + row = layout.row() + row.active = brush.use_airbrush + row.prop(brush, "rate", slider=True) layout.prop(brush, "use_space") row = layout.row(align=True) @@ -734,7 +734,7 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel): layout.prop(brush, "use_wrap") -class IMAGE_PT_paint_curve(BrushButtonsPanel, bpy.types.Panel): +class IMAGE_PT_paint_curve(BrushButtonsPanel, Panel): bl_label = "Paint Curve" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py index f66cee7f431..38c1e24f27e 100644 --- a/release/scripts/startup/bl_ui/space_info.py +++ b/release/scripts/startup/bl_ui/space_info.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu, Operator -class INFO_HT_header(bpy.types.Header): +class INFO_HT_header(Header): bl_space_type = 'INFO' def draw(self, context): @@ -86,19 +87,19 @@ class INFO_HT_header(bpy.types.Header): """ -class INFO_MT_report(bpy.types.Menu): +class INFO_MT_report(Menu): bl_label = "Report" def draw(self, context): layout = self.layout - layout.column() + layout.operator("console.select_all_toggle") layout.operator("console.select_border") layout.operator("console.report_delete") layout.operator("console.report_copy") -class INFO_MT_file(bpy.types.Menu): +class INFO_MT_file(Menu): bl_label = "File" def draw(self, context): @@ -152,7 +153,7 @@ class INFO_MT_file(bpy.types.Menu): layout.operator("wm.quit_blender", text="Quit", icon='QUIT') -class INFO_MT_file_import(bpy.types.Menu): +class INFO_MT_file_import(Menu): bl_idname = "INFO_MT_file_import" bl_label = "Import" @@ -161,7 +162,7 @@ class INFO_MT_file_import(bpy.types.Menu): self.layout.operator("wm.collada_import", text="COLLADA (.dae)") -class INFO_MT_file_export(bpy.types.Menu): +class INFO_MT_file_export(Menu): bl_idname = "INFO_MT_file_export" bl_label = "Export" @@ -170,7 +171,7 @@ class INFO_MT_file_export(bpy.types.Menu): self.layout.operator("wm.collada_export", text="COLLADA (.dae)") -class INFO_MT_file_external_data(bpy.types.Menu): +class INFO_MT_file_external_data(Menu): bl_label = "External Data" def draw(self, context): @@ -187,12 +188,13 @@ class INFO_MT_file_external_data(bpy.types.Menu): layout.operator("file.find_missing_files") -class INFO_MT_mesh_add(bpy.types.Menu): +class INFO_MT_mesh_add(Menu): bl_idname = "INFO_MT_mesh_add" bl_label = "Mesh" def draw(self, context): layout = self.layout + layout.operator_context = 'INVOKE_REGION_WIN' layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE', text="Plane") layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE', text="Cube") @@ -207,12 +209,13 @@ class INFO_MT_mesh_add(bpy.types.Menu): layout.operator("mesh.primitive_torus_add", text="Torus", icon='MESH_TORUS') -class INFO_MT_curve_add(bpy.types.Menu): +class INFO_MT_curve_add(Menu): bl_idname = "INFO_MT_curve_add" bl_label = "Curve" def draw(self, context): layout = self.layout + layout.operator_context = 'INVOKE_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") @@ -221,7 +224,7 @@ class INFO_MT_curve_add(bpy.types.Menu): layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path") -class INFO_MT_edit_curve_add(bpy.types.Menu): +class INFO_MT_edit_curve_add(Menu): bl_idname = "INFO_MT_edit_curve_add" bl_label = "Add" @@ -237,12 +240,13 @@ class INFO_MT_edit_curve_add(bpy.types.Menu): INFO_MT_curve_add.draw(self, context) -class INFO_MT_surface_add(bpy.types.Menu): +class INFO_MT_surface_add(Menu): bl_idname = "INFO_MT_surface_add" bl_label = "Surface" def draw(self, context): layout = self.layout + layout.operator_context = 'INVOKE_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") @@ -252,17 +256,18 @@ class INFO_MT_surface_add(bpy.types.Menu): layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text="NURBS Torus") -class INFO_MT_armature_add(bpy.types.Menu): +class INFO_MT_armature_add(Menu): bl_idname = "INFO_MT_armature_add" bl_label = "Armature" def draw(self, context): layout = self.layout + layout.operator_context = 'INVOKE_REGION_WIN' layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA') -class INFO_MT_add(bpy.types.Menu): +class INFO_MT_add(Menu): bl_label = "Add" def draw(self, context): @@ -302,7 +307,7 @@ class INFO_MT_add(bpy.types.Menu): layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_EMPTY') -class INFO_MT_game(bpy.types.Menu): +class INFO_MT_game(Menu): bl_label = "Game" def draw(self, context): @@ -323,7 +328,7 @@ class INFO_MT_game(bpy.types.Menu): layout.prop(gs, "use_auto_start") -class INFO_MT_render(bpy.types.Menu): +class INFO_MT_render(Menu): bl_label = "Render" def draw(self, context): @@ -343,7 +348,7 @@ class INFO_MT_render(bpy.types.Menu): layout.operator("render.play_rendered_anim") -class INFO_MT_help(bpy.types.Menu): +class INFO_MT_help(Menu): bl_label = "Help" def draw(self, context): @@ -352,7 +357,7 @@ class INFO_MT_help(bpy.types.Menu): layout = self.layout layout.operator("wm.url_open", text="Manual", icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual' - layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-258/' + layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-259/' layout.separator() @@ -379,7 +384,7 @@ class INFO_MT_help(bpy.types.Menu): # Help operators -class HELP_OT_operator_cheat_sheet(bpy.types.Operator): +class HELP_OT_operator_cheat_sheet(Operator): bl_idname = "help.operator_cheat_sheet" bl_label = "Operator Cheat Sheet" diff --git a/release/scripts/startup/bl_ui/space_logic.py b/release/scripts/startup/bl_ui/space_logic.py index 7f7aba71a46..869a91124d3 100644 --- a/release/scripts/startup/bl_ui/space_logic.py +++ b/release/scripts/startup/bl_ui/space_logic.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu, Panel -class LOGIC_PT_properties(bpy.types.Panel): +class LOGIC_PT_properties(Panel): bl_space_type = 'LOGIC_EDITOR' bl_region_type = 'UI' bl_label = "Properties" @@ -49,7 +50,7 @@ class LOGIC_PT_properties(bpy.types.Panel): row.operator("object.game_property_remove", text="", icon='X', emboss=False).index = i -class LOGIC_MT_logicbricks_add(bpy.types.Menu): +class LOGIC_MT_logicbricks_add(Menu): bl_label = "Add" def draw(self, context): @@ -60,30 +61,24 @@ class LOGIC_MT_logicbricks_add(bpy.types.Menu): layout.operator_menu_enum("logic.actuator_add", "type", text="Actuator") -class LOGIC_HT_header(bpy.types.Header): +class LOGIC_HT_header(Header): bl_space_type = 'LOGIC_EDITOR' def draw(self, context): - layout = self.layout + layout = self.layout.row(align=True) - row = layout.row(align=True) - row.template_header() + layout.template_header() if context.area.show_menus: - sub = row.row(align=True) - sub.menu("LOGIC_MT_view") - #sub.menu("LOGIC_MT_select") - #sub.menu("LOGIC_MT_add") + layout.menu("LOGIC_MT_view") -class LOGIC_MT_view(bpy.types.Menu): +class LOGIC_MT_view(Menu): bl_label = "View" def draw(self, context): layout = self.layout - layout.column() - layout.operator("logic.properties", icon='MENU_PANEL') if __name__ == "__main__": # only for live edit. diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py index 717adb3baa8..c69af2c9a60 100644 --- a/release/scripts/startup/bl_ui/space_nla.py +++ b/release/scripts/startup/bl_ui/space_nla.py @@ -19,9 +19,10 @@ # import bpy +from bpy.types import Header, Menu -class NLA_HT_header(bpy.types.Header): +class NLA_HT_header(Header): bl_space_type = 'NLA_EDITOR' def draw(self, context): @@ -35,20 +36,18 @@ class NLA_HT_header(bpy.types.Header): row.template_header() if context.area.show_menus: - sub = row.row(align=True) - - sub.menu("NLA_MT_view") - sub.menu("NLA_MT_select") - sub.menu("NLA_MT_marker") - sub.menu("NLA_MT_edit") - sub.menu("NLA_MT_add") + row.menu("NLA_MT_view") + row.menu("NLA_MT_select") + row.menu("NLA_MT_marker") + row.menu("NLA_MT_edit") + row.menu("NLA_MT_add") dopesheet_filter(layout, context) layout.prop(st, "auto_snap", text="") -class NLA_MT_view(bpy.types.Menu): +class NLA_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -56,8 +55,6 @@ class NLA_MT_view(bpy.types.Menu): st = context.space_data - layout.column() - layout.operator("nla.properties", icon='MENU_PANEL') layout.separator() @@ -78,13 +75,12 @@ class NLA_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class NLA_MT_select(bpy.types.Menu): +class NLA_MT_select(Menu): bl_label = "Select" def draw(self, context): layout = self.layout - layout.column() # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None layout.operator("nla.select_all_toggle") layout.operator("nla.select_all_toggle", text="Invert Selection").invert = True @@ -98,7 +94,7 @@ class NLA_MT_select(bpy.types.Menu): layout.operator("nla.select_leftright", text="After Current Frame").mode = 'RIGHT' -class NLA_MT_marker(bpy.types.Menu): +class NLA_MT_marker(Menu): bl_label = "Marker" def draw(self, context): @@ -106,7 +102,6 @@ class NLA_MT_marker(bpy.types.Menu): #layout.operator_context = 'EXEC_REGION_WIN' - layout.column() layout.operator("marker.add", "Add Marker") layout.operator("marker.duplicate", text="Duplicate Marker") layout.operator("marker.delete", text="Delete Marker") @@ -117,7 +112,7 @@ class NLA_MT_marker(bpy.types.Menu): layout.operator("marker.move", text="Grab/Move Marker") -class NLA_MT_edit(bpy.types.Menu): +class NLA_MT_edit(Menu): bl_label = "Edit" def draw(self, context): @@ -125,7 +120,6 @@ class NLA_MT_edit(bpy.types.Menu): scene = context.scene - layout.column() layout.menu("NLA_MT_edit_transform", text="Transform") layout.operator_menu_enum("nla.snap", "type", text="Snap") @@ -160,13 +154,12 @@ class NLA_MT_edit(bpy.types.Menu): layout.operator("nla.tweakmode_enter", text="Start Tweaking Strip Actions") -class NLA_MT_add(bpy.types.Menu): +class NLA_MT_add(Menu): bl_label = "Add" def draw(self, context): layout = self.layout - layout.column() layout.operator("nla.actionclip_add") layout.operator("nla.transition_add") @@ -179,13 +172,12 @@ class NLA_MT_add(bpy.types.Menu): layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True -class NLA_MT_edit_transform(bpy.types.Menu): +class NLA_MT_edit_transform(Menu): bl_label = "Transform" def draw(self, context): layout = self.layout - layout.column() layout.operator("transform.translate", text="Grab/Move") layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND' layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE' diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index abeee984fac..96744cf1969 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -18,28 +18,29 @@ # import bpy +from bpy.types import Header, Menu, Panel -class NODE_HT_header(bpy.types.Header): +class NODE_HT_header(Header): bl_space_type = 'NODE_EDITOR' def draw(self, context): layout = self.layout snode = context.space_data + snode_id = snode.id + id_from = snode.id_from row = layout.row(align=True) row.template_header() if context.area.show_menus: - sub = row.row(align=True) - sub.menu("NODE_MT_view") - sub.menu("NODE_MT_select") - sub.menu("NODE_MT_add") - sub.menu("NODE_MT_node") + row.menu("NODE_MT_view") + row.menu("NODE_MT_select") + row.menu("NODE_MT_add") + row.menu("NODE_MT_node") - row = layout.row() - row.prop(snode, "tree_type", text="", expand=True) + layout.prop(snode, "tree_type", text="", expand=True) if snode.tree_type == 'SHADER': row.prop(snode, "shader_type", text="", expand=True) @@ -53,10 +54,8 @@ class NODE_HT_header(bpy.types.Header): layout.prop(snode_id, "use_nodes") elif snode.tree_type == 'TEXTURE': - row.prop(snode, "texture_type", text="", expand=True) + layout.prop(snode, "texture_type", text="", expand=True) - snode_id = snode.id - id_from = snode.id_from if id_from: if snode.texture_type == 'BRUSH': layout.template_ID(id_from, "texture", new="texture.new") @@ -66,10 +65,8 @@ class NODE_HT_header(bpy.types.Header): layout.prop(snode_id, "use_nodes") elif snode.tree_type == 'COMPOSITING': - scene = snode.id - - layout.prop(scene, "use_nodes") - layout.prop(scene.render, "use_free_unused_nodes", text="Free Unused") + layout.prop(snode_id, "use_nodes") + layout.prop(snode_id.render, "use_free_unused_nodes", text="Free Unused") layout.prop(snode, "show_backdrop") if snode.show_backdrop: row = layout.row(align=True) @@ -81,7 +78,7 @@ class NODE_HT_header(bpy.types.Header): layout.template_running_jobs() -class NODE_MT_view(bpy.types.Menu): +class NODE_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -110,7 +107,7 @@ class NODE_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class NODE_MT_select(bpy.types.Menu): +class NODE_MT_select(Menu): bl_label = "Select" def draw(self, context): @@ -127,7 +124,7 @@ class NODE_MT_select(bpy.types.Menu): layout.operator("node.select_same_type_prev") -class NODE_MT_node(bpy.types.Menu): +class NODE_MT_node(Menu): bl_label = "Node" def draw(self, context): @@ -168,7 +165,7 @@ class NODE_MT_node(bpy.types.Menu): # Node Backdrop options -class NODE_PT_properties(bpy.types.Panel): +class NODE_PT_properties(Panel): bl_space_type = 'NODE_EDITOR' bl_region_type = 'UI' bl_label = "Backdrop" diff --git a/release/scripts/startup/bl_ui/space_outliner.py b/release/scripts/startup/bl_ui/space_outliner.py index 1f196cbd191..b1e6eaf3245 100644 --- a/release/scripts/startup/bl_ui/space_outliner.py +++ b/release/scripts/startup/bl_ui/space_outliner.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu -class OUTLINER_HT_header(bpy.types.Header): +class OUTLINER_HT_header(Header): bl_space_type = 'OUTLINER' def draw(self, context): @@ -63,7 +64,7 @@ class OUTLINER_HT_header(bpy.types.Header): row.label(text="No Keying Set active") -class OUTLINER_MT_view(bpy.types.Menu): +class OUTLINER_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -71,14 +72,13 @@ class OUTLINER_MT_view(bpy.types.Menu): space = context.space_data - col = layout.column() if space.display_mode not in {'DATABLOCKS', 'USER_PREFERENCES', 'KEYMAPS'}: - col.prop(space, "show_restrict_columns") - col.separator() - col.operator("outliner.show_active") + layout.prop(space, "show_restrict_columns") + layout.separator() + layout.operator("outliner.show_active") - col.operator("outliner.show_one_level") - col.operator("outliner.show_hierarchy") + layout.operator("outliner.show_one_level") + layout.operator("outliner.show_hierarchy") layout.separator() @@ -86,7 +86,7 @@ class OUTLINER_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class OUTLINER_MT_search(bpy.types.Menu): +class OUTLINER_MT_search(Menu): bl_label = "Search" def draw(self, context): @@ -94,27 +94,23 @@ class OUTLINER_MT_search(bpy.types.Menu): space = context.space_data - col = layout.column() + layout.prop(space, "use_filter_case_sensitive") + layout.prop(space, "use_filter_complete") - col.prop(space, "use_filter_case_sensitive") - col.prop(space, "use_filter_complete") - -class OUTLINER_MT_edit_datablocks(bpy.types.Menu): +class OUTLINER_MT_edit_datablocks(Menu): bl_label = "Edit" def draw(self, context): layout = self.layout - col = layout.column() - - col.operator("outliner.keyingset_add_selected") - col.operator("outliner.keyingset_remove_selected") + layout.operator("outliner.keyingset_add_selected") + layout.operator("outliner.keyingset_remove_selected") - col.separator() + layout.separator() - col.operator("outliner.drivers_add_selected") - col.operator("outliner.drivers_delete_selected") + layout.operator("outliner.drivers_add_selected") + layout.operator("outliner.drivers_delete_selected") if __name__ == "__main__": # only for live edit. bpy.utils.register_module(__name__) diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index c477a2ff62b..84cc365425e 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Header, Menu, Panel def act_strip(context): @@ -27,7 +28,7 @@ def act_strip(context): return None -class SEQUENCER_HT_header(bpy.types.Header): +class SEQUENCER_HT_header(Header): bl_space_type = 'SEQUENCE_EDITOR' def draw(self, context): @@ -39,14 +40,13 @@ class SEQUENCER_HT_header(bpy.types.Header): row.template_header() if context.area.show_menus: - sub = row.row(align=True) - sub.menu("SEQUENCER_MT_view") + row.menu("SEQUENCER_MT_view") if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}: - sub.menu("SEQUENCER_MT_select") - sub.menu("SEQUENCER_MT_marker") - sub.menu("SEQUENCER_MT_add") - sub.menu("SEQUENCER_MT_strip") + row.menu("SEQUENCER_MT_select") + row.menu("SEQUENCER_MT_marker") + row.menu("SEQUENCER_MT_add") + row.menu("SEQUENCER_MT_strip") layout.prop(st, "view_type", expand=True, text="") @@ -76,7 +76,7 @@ class SEQUENCER_HT_header(bpy.types.Header): row.prop(ed, "overlay_lock", text="", icon='LOCKED') -class SEQUENCER_MT_view_toggle(bpy.types.Menu): +class SEQUENCER_MT_view_toggle(Menu): bl_label = "View Type" def draw(self, context): @@ -87,7 +87,7 @@ class SEQUENCER_MT_view_toggle(bpy.types.Menu): layout.operator("sequencer.view_toggle").type = 'SEQUENCER_PREVIEW' -class SEQUENCER_MT_view(bpy.types.Menu): +class SEQUENCER_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -95,8 +95,6 @@ class SEQUENCER_MT_view(bpy.types.Menu): st = context.space_data - layout.column() - layout.operator("sequencer.properties", icon='MENU_PANEL') layout.separator() @@ -129,13 +127,12 @@ class SEQUENCER_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class SEQUENCER_MT_select(bpy.types.Menu): +class SEQUENCER_MT_select(Menu): bl_label = "Select" def draw(self, context): layout = self.layout - layout.column() layout.operator("sequencer.select_active_side", text="Strips to the Left").side = 'LEFT' layout.operator("sequencer.select_active_side", text="Strips to the Right").side = 'RIGHT' layout.separator() @@ -148,7 +145,7 @@ class SEQUENCER_MT_select(bpy.types.Menu): layout.operator("sequencer.select_inverse") -class SEQUENCER_MT_marker(bpy.types.Menu): +class SEQUENCER_MT_marker(Menu): bl_label = "Marker" def draw(self, context): @@ -156,7 +153,6 @@ class SEQUENCER_MT_marker(bpy.types.Menu): #layout.operator_context = 'EXEC_REGION_WIN' - layout.column() layout.operator("marker.add", "Add Marker") layout.operator("marker.duplicate", text="Duplicate Marker") layout.operator("marker.delete", text="Delete Marker") @@ -169,14 +165,26 @@ class SEQUENCER_MT_marker(bpy.types.Menu): #layout.operator("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS) -class SEQUENCER_MT_add(bpy.types.Menu): +class SEQUENCER_MT_change(Menu): + bl_label = "Change" + + def draw(self, context): + layout = self.layout + + layout.operator_context = 'INVOKE_REGION_WIN' + + layout.operator_menu_enum("sequencer.change_effect_input", "swap") + layout.operator_menu_enum("sequencer.change_effect_type", "type") + layout.operator("sequencer.change_path", text="Path/Files") + + +class SEQUENCER_MT_add(Menu): bl_label = "Add" def draw(self, context): layout = self.layout layout.operator_context = 'INVOKE_REGION_WIN' - layout.column() if len(bpy.data.scenes) > 10: layout.operator_context = 'INVOKE_DEFAULT' layout.operator("sequencer.scene_strip_add", text="Scene...") @@ -190,14 +198,13 @@ class SEQUENCER_MT_add(bpy.types.Menu): layout.menu("SEQUENCER_MT_add_effect") -class SEQUENCER_MT_add_effect(bpy.types.Menu): +class SEQUENCER_MT_add_effect(Menu): bl_label = "Effect Strip..." def draw(self, context): layout = self.layout layout.operator_context = 'INVOKE_REGION_WIN' - layout.column() layout.operator("sequencer.effect_strip_add", text="Add").type = 'ADD' layout.operator("sequencer.effect_strip_add", text="Subtract").type = 'SUBTRACT' layout.operator("sequencer.effect_strip_add", text="Alpha Over").type = 'ALPHA_OVER' @@ -216,7 +223,7 @@ class SEQUENCER_MT_add_effect(bpy.types.Menu): layout.operator("sequencer.effect_strip_add", text="Adjustment Layer").type = 'ADJUSTMENT' -class SEQUENCER_MT_strip(bpy.types.Menu): +class SEQUENCER_MT_strip(Menu): bl_label = "Strip" def draw(self, context): @@ -224,7 +231,6 @@ class SEQUENCER_MT_strip(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_WIN' - layout.column() layout.operator("transform.transform", text="Grab/Move").mode = 'TRANSLATION' layout.operator("transform.transform", text="Grab/Extend from frame").mode = 'TIME_EXTEND' # uiItemO(layout, NULL, 0, "sequencer.strip_snap"); // TODO - add this operator @@ -233,6 +239,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu): layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD' layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT' layout.operator("sequencer.images_separate") + layout.operator("sequencer.offset_clear") layout.operator("sequencer.deinterlace_selected_movies") layout.separator() @@ -292,6 +299,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu): layout.separator() layout.operator("sequencer.swap_data") + layout.menu("SEQUENCER_MT_change") class SequencerButtonsPanel(): @@ -320,7 +328,7 @@ class SequencerButtonsPanel_Output(): return cls.has_preview(context) -class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel): bl_label = "Edit Strip" def draw(self, context): @@ -374,9 +382,11 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel): if elem and elem.orig_width > 0 and elem.orig_height > 0: col.label(text="Orig Dim: %dx%d" % (elem.orig_width, elem.orig_height)) + else: + col.label(text="Orig Dim: None") -class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel): bl_label = "Effect Strip" @classmethod @@ -514,7 +524,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip, "rotation_start", text="Rotation") -class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_input(SequencerButtonsPanel, Panel): bl_label = "Strip Input" @classmethod @@ -558,6 +568,9 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel): col = split.column() col.prop(elem, "filename", text="") # strip.elements[0] could be a fallback + # also accessible from the menu + layout.operator("sequencer.change_path") + elif seq_type == 'MOVIE': split = layout.split(percentage=0.2) col = split.column() @@ -595,7 +608,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip, "frame_offset_end", text="End") -class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel): bl_label = "Sound" @classmethod @@ -636,7 +649,7 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip, "animation_offset_end", text="End") -class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel): bl_label = "Scene" @classmethod @@ -670,7 +683,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel): layout.label(text="Original frame range: %d-%d (%d)" % (sta, end, end - sta + 1)) -class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel): bl_label = "Filter" @classmethod @@ -732,7 +745,7 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip.color_balance, "invert_gain", text="Inverse") -class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel): +class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel): bl_label = "Proxy" @classmethod @@ -766,7 +779,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel): flow.prop(strip.proxy, "filepath") -class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel): +class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel): bl_label = "Scene Preview/Render" bl_space_type = 'SEQUENCE_EDITOR' bl_region_type = 'UI' @@ -791,7 +804,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel): ''' -class SEQUENCER_PT_view(SequencerButtonsPanel_Output, bpy.types.Panel): +class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel): bl_label = "View Settings" def draw(self, context): diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py index b787fc5cf75..300211a26bf 100644 --- a/release/scripts/startup/bl_ui/space_text.py +++ b/release/scripts/startup/bl_ui/space_text.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu, Panel -class TEXT_HT_header(bpy.types.Header): +class TEXT_HT_header(Header): bl_space_type = 'TEXT_EDITOR' def draw(self, context): @@ -74,7 +75,7 @@ class TEXT_HT_header(bpy.types.Header): else "Text: Internal") -class TEXT_PT_properties(bpy.types.Panel): +class TEXT_PT_properties(Panel): bl_space_type = 'TEXT_EDITOR' bl_region_type = 'UI' bl_label = "Properties" @@ -105,7 +106,7 @@ class TEXT_PT_properties(bpy.types.Panel): col.prop(st, "margin_column") -class TEXT_PT_find(bpy.types.Panel): +class TEXT_PT_find(Panel): bl_space_type = 'TEXT_EDITOR' bl_region_type = 'UI' bl_label = "Find" @@ -139,7 +140,7 @@ class TEXT_PT_find(bpy.types.Panel): row.prop(st, "use_find_all", text="All") -class TEXT_MT_view(bpy.types.Menu): +class TEXT_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -162,7 +163,7 @@ class TEXT_MT_view(bpy.types.Menu): ).type = 'FILE_BOTTOM' -class TEXT_MT_text(bpy.types.Menu): +class TEXT_MT_text(Menu): bl_label = "Text" def draw(self, context): @@ -171,7 +172,6 @@ class TEXT_MT_text(bpy.types.Menu): st = context.space_data text = st.text - layout.column() layout.operator("text.new") layout.operator("text.open") @@ -188,13 +188,8 @@ class TEXT_MT_text(bpy.types.Menu): layout.column() layout.operator("text.run_script") - #ifdef WITH_PYTHON - # XXX if(BPY_is_pyconstraint(text)) - # XXX uiMenuItemO(head, 0, "text.refresh_pyconstraints"); - #endif - -class TEXT_MT_templates(bpy.types.Menu): +class TEXT_MT_templates(Menu): bl_label = "Templates" def draw(self, context): @@ -204,7 +199,7 @@ class TEXT_MT_templates(bpy.types.Menu): ) -class TEXT_MT_edit_select(bpy.types.Menu): +class TEXT_MT_edit_select(Menu): bl_label = "Select" def draw(self, context): @@ -214,7 +209,7 @@ class TEXT_MT_edit_select(bpy.types.Menu): layout.operator("text.select_line") -class TEXT_MT_edit_markers(bpy.types.Menu): +class TEXT_MT_edit_markers(Menu): bl_label = "Markers" def draw(self, context): @@ -225,7 +220,7 @@ class TEXT_MT_edit_markers(bpy.types.Menu): layout.operator("text.previous_marker") -class TEXT_MT_format(bpy.types.Menu): +class TEXT_MT_format(Menu): bl_label = "Format" def draw(self, context): @@ -244,7 +239,7 @@ class TEXT_MT_format(bpy.types.Menu): layout.operator_menu_enum("text.convert_whitespace", "type") -class TEXT_MT_edit_to3d(bpy.types.Menu): +class TEXT_MT_edit_to3d(Menu): bl_label = "Text To 3D Object" def draw(self, context): @@ -258,7 +253,7 @@ class TEXT_MT_edit_to3d(bpy.types.Menu): ).split_lines = True -class TEXT_MT_edit(bpy.types.Menu): +class TEXT_MT_edit(Menu): bl_label = "Edit" @classmethod @@ -292,7 +287,7 @@ class TEXT_MT_edit(bpy.types.Menu): layout.menu("TEXT_MT_edit_to3d") -class TEXT_MT_toolbox(bpy.types.Menu): +class TEXT_MT_toolbox(Menu): bl_label = "" def draw(self, context): diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py index 7e62465d1ee..db009fe43c2 100644 --- a/release/scripts/startup/bl_ui/space_time.py +++ b/release/scripts/startup/bl_ui/space_time.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu -class TIME_HT_header(bpy.types.Header): +class TIME_HT_header(Header): bl_space_type = 'TIMELINE' def draw(self, context): @@ -34,10 +35,9 @@ class TIME_HT_header(bpy.types.Header): row.template_header() if context.area.show_menus: - sub = row.row(align=True) - sub.menu("TIME_MT_view") - sub.menu("TIME_MT_frame") - sub.menu("TIME_MT_playback") + row.menu("TIME_MT_view") + row.menu("TIME_MT_frame") + row.menu("TIME_MT_playback") layout.prop(scene, "use_preview_range", text="", toggle=True) @@ -91,7 +91,7 @@ class TIME_HT_header(bpy.types.Header): row.operator("anim.keyframe_delete", text="", icon='KEY_DEHLT') -class TIME_MT_view(bpy.types.Menu): +class TIME_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -116,7 +116,7 @@ class TIME_MT_view(bpy.types.Menu): layout.operator("marker.camera_bind") -class TIME_MT_cache(bpy.types.Menu): +class TIME_MT_cache(Menu): bl_label = "Cache" def draw(self, context): @@ -136,7 +136,7 @@ class TIME_MT_cache(bpy.types.Menu): col.prop(st, "cache_smoke") -class TIME_MT_frame(bpy.types.Menu): +class TIME_MT_frame(Menu): bl_label = "Frame" def draw(self, context): @@ -162,7 +162,7 @@ class TIME_MT_frame(bpy.types.Menu): sub.menu("TIME_MT_autokey") -class TIME_MT_playback(bpy.types.Menu): +class TIME_MT_playback(Menu): bl_label = "Playback" def draw(self, context): @@ -187,7 +187,7 @@ class TIME_MT_playback(bpy.types.Menu): layout.prop(scene, "use_audio_scrub") -class TIME_MT_autokey(bpy.types.Menu): +class TIME_MT_autokey(Menu): bl_label = "Auto-Keyframing Mode" def draw(self, context): diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index e6fd8dcb949..148338368fe 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Header, Menu, Operator, Panel import os import addon_utils @@ -75,7 +76,7 @@ def opengl_lamp_buttons(column, lamp): col.prop(lamp, "direction", text="") -class USERPREF_HT_header(bpy.types.Header): +class USERPREF_HT_header(Header): bl_space_type = 'USER_PREFERENCES' def draw(self, context): @@ -99,7 +100,7 @@ class USERPREF_HT_header(bpy.types.Header): layout.operator("ui.reset_default_theme") -class USERPREF_PT_tabs(bpy.types.Panel): +class USERPREF_PT_tabs(Panel): bl_label = "" bl_space_type = 'USER_PREFERENCES' bl_region_type = 'WINDOW' @@ -113,14 +114,14 @@ class USERPREF_PT_tabs(bpy.types.Panel): layout.prop(userpref, "active_section", expand=True) -class USERPREF_MT_interaction_presets(bpy.types.Menu): +class USERPREF_MT_interaction_presets(Menu): bl_label = "Presets" preset_subdir = "interaction" preset_operator = "script.execute_preset" - draw = bpy.types.Menu.draw_preset + draw = Menu.draw_preset -class USERPREF_MT_appconfigs(bpy.types.Menu): +class USERPREF_MT_appconfigs(Menu): bl_label = "AppPresets" preset_subdir = "keyconfig" preset_operator = "wm.appconfig_activate" @@ -129,10 +130,10 @@ class USERPREF_MT_appconfigs(bpy.types.Menu): self.layout.operator("wm.appconfig_default", text="Blender (default)") # now draw the presets - bpy.types.Menu.draw_preset(self, context) + Menu.draw_preset(self, context) -class USERPREF_MT_splash(bpy.types.Menu): +class USERPREF_MT_splash(Menu): bl_label = "Splash" def draw(self, context): @@ -149,7 +150,7 @@ class USERPREF_MT_splash(bpy.types.Menu): row.menu("USERPREF_MT_appconfigs", text="Preset") -class USERPREF_PT_interface(bpy.types.Panel): +class USERPREF_PT_interface(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "Interface" bl_region_type = 'WINDOW' @@ -246,7 +247,7 @@ class USERPREF_PT_interface(bpy.types.Panel): col.prop(view, "show_splash") -class USERPREF_PT_edit(bpy.types.Panel): +class USERPREF_PT_edit(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "Edit" bl_region_type = 'WINDOW' @@ -359,7 +360,7 @@ class USERPREF_PT_edit(bpy.types.Panel): col.prop(edit, "use_duplicate_particle", text="Particle") -class USERPREF_PT_system(bpy.types.Panel): +class USERPREF_PT_system(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "System" bl_region_type = 'WINDOW' @@ -496,7 +497,7 @@ class USERPREF_PT_system(bpy.types.Panel): sub.template_color_ramp(system, "weight_color_range", expand=True) -class USERPREF_PT_theme(bpy.types.Panel): +class USERPREF_PT_theme(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "Themes" bl_region_type = 'WINDOW' @@ -679,7 +680,7 @@ class USERPREF_PT_theme(bpy.types.Panel): self._theme_generic(split, getattr(theme, theme.theme_area.lower())) -class USERPREF_PT_file(bpy.types.Panel): +class USERPREF_PT_file(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "Files" bl_region_type = 'WINDOW' @@ -755,7 +756,7 @@ class USERPREF_PT_file(bpy.types.Panel): from bl_ui.space_userpref_keymap import InputKeyMapPanel -class USERPREF_MT_ndof_settings(bpy.types.Menu): +class USERPREF_MT_ndof_settings(Menu): # accessed from the window keybindings in C (only) bl_label = "3D Mouse Settings" @@ -780,7 +781,7 @@ class USERPREF_MT_ndof_settings(bpy.types.Menu): layout.prop(input_prefs, "ndof_lock_horizon", icon='NDOF_DOM') -class USERPREF_PT_input(bpy.types.Panel, InputKeyMapPanel): +class USERPREF_PT_input(Panel, InputKeyMapPanel): bl_space_type = 'USER_PREFERENCES' bl_label = "Input" @@ -870,7 +871,7 @@ class USERPREF_PT_input(bpy.types.Panel, InputKeyMapPanel): #print("runtime", time.time() - start) -class USERPREF_MT_addons_dev_guides(bpy.types.Menu): +class USERPREF_MT_addons_dev_guides(Menu): bl_label = "Development Guides" # menu to open webpages with addons development guides @@ -881,7 +882,7 @@ class USERPREF_MT_addons_dev_guides(bpy.types.Menu): layout.operator('wm.url_open', text='How to share your addon', icon='URL').url = 'http://wiki.blender.org/index.php/Dev:Py/Sharing' -class USERPREF_PT_addons(bpy.types.Panel): +class USERPREF_PT_addons(Panel): bl_space_type = 'USER_PREFERENCES' bl_label = "Addons" bl_region_type = 'WINDOW' @@ -1071,28 +1072,36 @@ class USERPREF_PT_addons(bpy.types.Panel): row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="", emboss=False).module = module_name -class WM_OT_addon_enable(bpy.types.Operator): +class WM_OT_addon_enable(Operator): "Enable an addon" bl_idname = "wm.addon_enable" bl_label = "Enable Add-On" - module = StringProperty(name="Module", description="Module name of the addon to enable") + module = StringProperty( + name="Module", + description="Module name of the addon to enable", + ) def execute(self, context): mod = addon_utils.enable(self.module) if mod: - # check if add-on is written for current blender version, or raise a warning info = addon_utils.module_bl_info(mod) - if info.get("blender", (0, 0, 0)) > bpy.app.version: - self.report("WARNING','This script was written for a newer version of Blender and might not function (correctly).\nThe script is enabled though.") + info_ver = info.get("blender", (0, 0, 0)) + + if info_ver > bpy.app.version: + self.report({'WARNING'}, ("This script was written Blender " + "version %d.%d.%d and might not " + "function (correctly).\n" + "The script is enabled though.") % + info_ver) return {'FINISHED'} else: return {'CANCELLED'} -class WM_OT_addon_disable(bpy.types.Operator): +class WM_OT_addon_disable(Operator): "Disable an addon" bl_idname = "wm.addon_disable" bl_label = "Disable Add-On" @@ -1104,7 +1113,7 @@ class WM_OT_addon_disable(bpy.types.Operator): return {'FINISHED'} -class WM_OT_addon_install(bpy.types.Operator): +class WM_OT_addon_install(Operator): "Install an addon" bl_idname = "wm.addon_install" bl_label = "Install Add-On..." @@ -1250,7 +1259,7 @@ class WM_OT_addon_install(bpy.types.Operator): return {'RUNNING_MODAL'} -class WM_OT_addon_remove(bpy.types.Operator): +class WM_OT_addon_remove(Operator): "Disable an addon" bl_idname = "wm.addon_remove" bl_label = "Remove Add-On" @@ -1298,7 +1307,7 @@ class WM_OT_addon_remove(bpy.types.Operator): return wm.invoke_props_dialog(self, width=600) -class WM_OT_addon_expand(bpy.types.Operator): +class WM_OT_addon_expand(Operator): "Display more information on this add-on" bl_idname = "wm.addon_expand" bl_label = "" diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py index 5658cc96281..6a81ff5830e 100644 --- a/release/scripts/startup/bl_ui/space_userpref_keymap.py +++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Menu, Operator, OperatorProperties import os @@ -124,7 +125,7 @@ def _merge_keymaps(kc1, kc2): return merged_keymaps -class USERPREF_MT_keyconfigs(bpy.types.Menu): +class USERPREF_MT_keyconfigs(Menu): bl_label = "KeyPresets" preset_subdir = "keyconfig" preset_operator = "wm.keyconfig_activate" @@ -135,7 +136,7 @@ class USERPREF_MT_keyconfigs(bpy.types.Menu): props.value = "context.window_manager.keyconfigs.default" # now draw the presets - bpy.types.Menu.draw_preset(self, context) + Menu.draw_preset(self, context) class InputKeyMapPanel: @@ -232,7 +233,7 @@ class InputKeyMapPanel: flow = box.column_flow(columns=2) for pname, value in properties.bl_rna.properties.items(): if pname != "rna_type" and not properties.is_property_hidden(pname): - if isinstance(value, bpy.types.OperatorProperties): + if isinstance(value, OperatorProperties): InputKeyMapPanel.draw_kmi_properties(box, value, title=pname) else: flow.prop(properties, pname) @@ -410,7 +411,7 @@ def export_properties(prefix, properties, lines=None): for pname in properties.bl_rna.properties.keys(): if pname != "rna_type" and not properties.is_property_hidden(pname): value = getattr(properties, pname) - if isinstance(value, bpy.types.OperatorProperties): + if isinstance(value, OperatorProperties): export_properties(prefix + "." + pname, value, lines) elif properties.is_property_set(pname): value = _string_value(value) @@ -419,7 +420,7 @@ def export_properties(prefix, properties, lines=None): return lines -class WM_OT_keyconfig_test(bpy.types.Operator): +class WM_OT_keyconfig_test(Operator): "Test keyconfig for conflicts" bl_idname = "wm.keyconfig_test" bl_label = "Test Key Configuration for Conflicts" @@ -527,7 +528,7 @@ def _string_value(value): return result -class WM_OT_keyconfig_import(bpy.types.Operator): +class WM_OT_keyconfig_import(Operator): "Import key configuration from a python script" bl_idname = "wm.keyconfig_import" bl_label = "Import Key Configuration..." @@ -542,22 +543,24 @@ class WM_OT_keyconfig_import(bpy.types.Operator): def execute(self, context): from os.path import basename import shutil - if not self.filepath: - raise Exception("Filepath not set") - f = open(self.filepath, "r") - if not f: - raise Exception("Could not open file") + if not self.filepath: + self.report({'ERROR'}, "Filepath not set") + return {'CANCELLED'} config_name = basename(self.filepath) path = bpy.utils.user_resource('SCRIPTS', os.path.join("presets", "keyconfig"), create=True) path = os.path.join(path, config_name) - if self.keep_original: - shutil.copy(self.filepath, path) - else: - shutil.move(self.filepath, path) + try: + if self.keep_original: + shutil.copy(self.filepath, path) + else: + shutil.move(self.filepath, path) + except Exception as e: + self.report({'ERROR'}, "Installing keymap failed: %s" % e) + return {'CANCELLED'} # sneaky way to check we're actually running the code. bpy.utils.keyconfig_set(path) @@ -572,7 +575,7 @@ class WM_OT_keyconfig_import(bpy.types.Operator): # This operator is also used by interaction presets saving - AddPresetBase -class WM_OT_keyconfig_export(bpy.types.Operator): +class WM_OT_keyconfig_export(Operator): "Export key configuration to a python script" bl_idname = "wm.keyconfig_export" bl_label = "Export Key Configuration..." @@ -665,7 +668,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator): return {'RUNNING_MODAL'} -class WM_OT_keymap_restore(bpy.types.Operator): +class WM_OT_keymap_restore(Operator): "Restore key map(s)" bl_idname = "wm.keymap_restore" bl_label = "Restore Key Map(s)" @@ -685,7 +688,7 @@ class WM_OT_keymap_restore(bpy.types.Operator): return {'FINISHED'} -class WM_OT_keyitem_restore(bpy.types.Operator): +class WM_OT_keyitem_restore(Operator): "Restore key map item" bl_idname = "wm.keyitem_restore" bl_label = "Restore Key Map Item" @@ -707,7 +710,7 @@ class WM_OT_keyitem_restore(bpy.types.Operator): return {'FINISHED'} -class WM_OT_keyitem_add(bpy.types.Operator): +class WM_OT_keyitem_add(Operator): "Add key map item" bl_idname = "wm.keyitem_add" bl_label = "Add Key Map Item" @@ -729,7 +732,7 @@ class WM_OT_keyitem_add(bpy.types.Operator): return {'FINISHED'} -class WM_OT_keyitem_remove(bpy.types.Operator): +class WM_OT_keyitem_remove(Operator): "Remove key map item" bl_idname = "wm.keyitem_remove" bl_label = "Remove Key Map Item" @@ -747,7 +750,7 @@ class WM_OT_keyitem_remove(bpy.types.Operator): return {'FINISHED'} -class WM_OT_keyconfig_remove(bpy.types.Operator): +class WM_OT_keyconfig_remove(Operator): "Remove key config" bl_idname = "wm.keyconfig_remove" bl_label = "Remove Key Config" diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 17b631ae50c..3a28cd30947 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -18,9 +18,10 @@ # import bpy +from bpy.types import Header, Menu, Operator, Panel -class VIEW3D_HT_header(bpy.types.Header): +class VIEW3D_HT_header(Header): bl_space_type = 'VIEW_3D' def draw(self, context): @@ -128,7 +129,7 @@ class ShowHideMenu(): layout.operator("%s.hide" % self._operator_name, text="Hide Unselected").unselected = True -class VIEW3D_MT_transform(bpy.types.Menu): +class VIEW3D_MT_transform(Menu): bl_label = "Transform" # TODO: get rid of the custom text strings? @@ -180,7 +181,7 @@ class VIEW3D_MT_transform(bpy.types.Menu): layout.operator("object.align") -class VIEW3D_MT_mirror(bpy.types.Menu): +class VIEW3D_MT_mirror(Menu): bl_label = "Mirror" def draw(self, context): @@ -218,7 +219,7 @@ class VIEW3D_MT_mirror(bpy.types.Menu): layout.operator("object.vertex_group_mirror") -class VIEW3D_MT_snap(bpy.types.Menu): +class VIEW3D_MT_snap(Menu): bl_label = "Snap" def draw(self, context): @@ -235,7 +236,7 @@ class VIEW3D_MT_snap(bpy.types.Menu): layout.operator("view3d.snap_cursor_to_active", text="Cursor to Active") -class VIEW3D_MT_uv_map(bpy.types.Menu): +class VIEW3D_MT_uv_map(Menu): bl_label = "UV Mapping" def draw(self, context): @@ -268,7 +269,7 @@ class VIEW3D_MT_uv_map(bpy.types.Menu): # ********** View menus ********** -class VIEW3D_MT_view(bpy.types.Menu): +class VIEW3D_MT_view(Menu): bl_label = "View" def draw(self, context): @@ -327,7 +328,7 @@ class VIEW3D_MT_view(bpy.types.Menu): layout.operator("screen.screen_full_area") -class VIEW3D_MT_view_navigation(bpy.types.Menu): +class VIEW3D_MT_view_navigation(Menu): bl_label = "Navigation" def draw(self, context): @@ -350,7 +351,7 @@ class VIEW3D_MT_view_navigation(bpy.types.Menu): layout.operator("view3d.fly") -class VIEW3D_MT_view_align(bpy.types.Menu): +class VIEW3D_MT_view_align(Menu): bl_label = "Align View" def draw(self, context): @@ -366,7 +367,7 @@ class VIEW3D_MT_view_align(bpy.types.Menu): layout.operator("view3d.view_center_cursor") -class VIEW3D_MT_view_align_selected(bpy.types.Menu): +class VIEW3D_MT_view_align_selected(Menu): bl_label = "Align View to Selected" def draw(self, context): @@ -392,7 +393,7 @@ class VIEW3D_MT_view_align_selected(bpy.types.Menu): props.type = 'LEFT' -class VIEW3D_MT_view_cameras(bpy.types.Menu): +class VIEW3D_MT_view_cameras(Menu): bl_label = "Cameras" def draw(self, context): @@ -404,7 +405,7 @@ class VIEW3D_MT_view_cameras(bpy.types.Menu): # ********** Select menus, suffix from context.mode ********** -class VIEW3D_MT_select_object(bpy.types.Menu): +class VIEW3D_MT_select_object(Menu): bl_label = "Select" def draw(self, context): @@ -430,7 +431,7 @@ class VIEW3D_MT_select_object(bpy.types.Menu): layout.operator("object.select_pattern", text="Select Pattern...") -class VIEW3D_MT_select_pose(bpy.types.Menu): +class VIEW3D_MT_select_pose(Menu): bl_label = "Select" def draw(self, context): @@ -467,7 +468,7 @@ class VIEW3D_MT_select_pose(bpy.types.Menu): layout.operator("object.select_pattern", text="Select Pattern...") -class VIEW3D_MT_select_particle(bpy.types.Menu): +class VIEW3D_MT_select_particle(Menu): bl_label = "Select" def draw(self, context): @@ -492,7 +493,7 @@ class VIEW3D_MT_select_particle(bpy.types.Menu): layout.operator("particle.select_tips", text="Tips") -class VIEW3D_MT_select_edit_mesh(bpy.types.Menu): +class VIEW3D_MT_select_edit_mesh(Menu): bl_label = "Select" def draw(self, context): @@ -544,7 +545,7 @@ class VIEW3D_MT_select_edit_mesh(bpy.types.Menu): layout.operator("mesh.region_to_loop") -class VIEW3D_MT_select_edit_curve(bpy.types.Menu): +class VIEW3D_MT_select_edit_curve(Menu): bl_label = "Select" def draw(self, context): @@ -573,7 +574,7 @@ class VIEW3D_MT_select_edit_curve(bpy.types.Menu): layout.operator("curve.select_less") -class VIEW3D_MT_select_edit_surface(bpy.types.Menu): +class VIEW3D_MT_select_edit_surface(Menu): bl_label = "Select" def draw(self, context): @@ -599,7 +600,7 @@ class VIEW3D_MT_select_edit_surface(bpy.types.Menu): layout.operator("curve.select_less") -class VIEW3D_MT_select_edit_metaball(bpy.types.Menu): +class VIEW3D_MT_select_edit_metaball(Menu): bl_label = "Select" def draw(self, context): @@ -617,7 +618,7 @@ class VIEW3D_MT_select_edit_metaball(bpy.types.Menu): layout.operator("mball.select_random_metaelems") -class VIEW3D_MT_select_edit_lattice(bpy.types.Menu): +class VIEW3D_MT_select_edit_lattice(Menu): bl_label = "Select" def draw(self, context): @@ -630,7 +631,7 @@ class VIEW3D_MT_select_edit_lattice(bpy.types.Menu): layout.operator("lattice.select_all", text="Select/Deselect All") -class VIEW3D_MT_select_edit_armature(bpy.types.Menu): +class VIEW3D_MT_select_edit_armature(Menu): bl_label = "Select" def draw(self, context): @@ -661,7 +662,7 @@ class VIEW3D_MT_select_edit_armature(bpy.types.Menu): layout.operator("object.select_pattern", text="Select Pattern...") -class VIEW3D_MT_select_face(bpy.types.Menu): # XXX no matching enum +class VIEW3D_MT_select_face(Menu): # XXX no matching enum bl_label = "Select" def draw(self, context): @@ -674,7 +675,7 @@ class VIEW3D_MT_select_face(bpy.types.Menu): # XXX no matching enum # ********** Object menu ********** -class VIEW3D_MT_object(bpy.types.Menu): +class VIEW3D_MT_object(Menu): bl_context = "objectmode" bl_label = "Object" @@ -732,7 +733,7 @@ class VIEW3D_MT_object(bpy.types.Menu): layout.operator_menu_enum("object.convert", "target") -class VIEW3D_MT_object_animation(bpy.types.Menu): +class VIEW3D_MT_object_animation(Menu): bl_label = "Animation" def draw(self, context): @@ -743,7 +744,7 @@ class VIEW3D_MT_object_animation(bpy.types.Menu): layout.operator("anim.keying_set_active_set", text="Change Keying Set...") -class VIEW3D_MT_object_clear(bpy.types.Menu): +class VIEW3D_MT_object_clear(Menu): bl_label = "Clear" def draw(self, context): @@ -755,7 +756,7 @@ class VIEW3D_MT_object_clear(bpy.types.Menu): layout.operator("object.origin_clear", text="Origin") -class VIEW3D_MT_object_specials(bpy.types.Menu): +class VIEW3D_MT_object_specials(Menu): bl_label = "Specials" @classmethod @@ -850,7 +851,7 @@ class VIEW3D_MT_object_specials(bpy.types.Menu): props = layout.operator("object.hide_render_clear_all") -class VIEW3D_MT_object_apply(bpy.types.Menu): +class VIEW3D_MT_object_apply(Menu): bl_label = "Apply" def draw(self, context): @@ -869,7 +870,7 @@ class VIEW3D_MT_object_apply(bpy.types.Menu): layout.operator("object.duplicates_make_real") -class VIEW3D_MT_object_parent(bpy.types.Menu): +class VIEW3D_MT_object_parent(Menu): bl_label = "Parent" def draw(self, context): @@ -879,7 +880,7 @@ class VIEW3D_MT_object_parent(bpy.types.Menu): layout.operator("object.parent_clear", text="Clear") -class VIEW3D_MT_object_track(bpy.types.Menu): +class VIEW3D_MT_object_track(Menu): bl_label = "Track" def draw(self, context): @@ -889,7 +890,7 @@ class VIEW3D_MT_object_track(bpy.types.Menu): layout.operator("object.track_clear", text="Clear") -class VIEW3D_MT_object_group(bpy.types.Menu): +class VIEW3D_MT_object_group(Menu): bl_label = "Group" def draw(self, context): @@ -904,7 +905,7 @@ class VIEW3D_MT_object_group(bpy.types.Menu): layout.operator("group.objects_remove_active") -class VIEW3D_MT_object_constraints(bpy.types.Menu): +class VIEW3D_MT_object_constraints(Menu): bl_label = "Constraints" def draw(self, context): @@ -915,7 +916,7 @@ class VIEW3D_MT_object_constraints(bpy.types.Menu): layout.operator("object.constraints_clear") -class VIEW3D_MT_object_showhide(bpy.types.Menu): +class VIEW3D_MT_object_showhide(Menu): bl_label = "Show/Hide" def draw(self, context): @@ -926,7 +927,7 @@ class VIEW3D_MT_object_showhide(bpy.types.Menu): layout.operator("object.hide_view_set", text="Hide Unselected").unselected = True -class VIEW3D_MT_make_single_user(bpy.types.Menu): +class VIEW3D_MT_make_single_user(Menu): bl_label = "Make Single User" def draw(self, context): @@ -948,7 +949,7 @@ class VIEW3D_MT_make_single_user(bpy.types.Menu): props.animation = True -class VIEW3D_MT_make_links(bpy.types.Menu): +class VIEW3D_MT_make_links(Menu): bl_label = "Make Links" def draw(self, context): @@ -965,7 +966,7 @@ class VIEW3D_MT_make_links(bpy.types.Menu): layout.operator_enum("object.make_links_data", "type") # inline -class VIEW3D_MT_object_game(bpy.types.Menu): +class VIEW3D_MT_object_game(Menu): bl_label = "Game" def draw(self, context): @@ -987,7 +988,7 @@ class VIEW3D_MT_object_game(bpy.types.Menu): # ********** Vertex paint menu ********** -class VIEW3D_MT_paint_vertex(bpy.types.Menu): +class VIEW3D_MT_paint_vertex(Menu): bl_label = "Paint" def draw(self, context): @@ -1002,7 +1003,7 @@ class VIEW3D_MT_paint_vertex(bpy.types.Menu): layout.operator("paint.vertex_color_dirt") -class VIEW3D_MT_hook(bpy.types.Menu): +class VIEW3D_MT_hook(Menu): bl_label = "Hooks" def draw(self, context): @@ -1021,7 +1022,7 @@ class VIEW3D_MT_hook(bpy.types.Menu): layout.operator_menu_enum("object.hook_recenter", "modifier") -class VIEW3D_MT_vertex_group(bpy.types.Menu): +class VIEW3D_MT_vertex_group(Menu): bl_label = "Vertex Groups" def draw(self, context): @@ -1046,7 +1047,7 @@ class VIEW3D_MT_vertex_group(bpy.types.Menu): # ********** Weight paint menu ********** -class VIEW3D_MT_paint_weight(bpy.types.Menu): +class VIEW3D_MT_paint_weight(Menu): bl_label = "Weights" def draw(self, context): @@ -1076,7 +1077,7 @@ class VIEW3D_MT_paint_weight(bpy.types.Menu): # ********** Sculpt menu ********** -class VIEW3D_MT_sculpt(bpy.types.Menu): +class VIEW3D_MT_sculpt(Menu): bl_label = "Sculpt" def draw(self, context): @@ -1126,7 +1127,7 @@ class VIEW3D_MT_sculpt(bpy.types.Menu): # ********** Particle menu ********** -class VIEW3D_MT_particle(bpy.types.Menu): +class VIEW3D_MT_particle(Menu): bl_label = "Particle" def draw(self, context): @@ -1158,7 +1159,7 @@ class VIEW3D_MT_particle(bpy.types.Menu): layout.menu("VIEW3D_MT_particle_showhide") -class VIEW3D_MT_particle_specials(bpy.types.Menu): +class VIEW3D_MT_particle_specials(Menu): bl_label = "Specials" def draw(self, context): @@ -1176,13 +1177,13 @@ class VIEW3D_MT_particle_specials(bpy.types.Menu): layout.operator("particle.remove_doubles") -class VIEW3D_MT_particle_showhide(ShowHideMenu, bpy.types.Menu): +class VIEW3D_MT_particle_showhide(ShowHideMenu, Menu): _operator_name = "particle" # ********** Pose Menu ********** -class VIEW3D_MT_pose(bpy.types.Menu): +class VIEW3D_MT_pose(Menu): bl_label = "Pose" def draw(self, context): @@ -1251,7 +1252,7 @@ class VIEW3D_MT_pose(bpy.types.Menu): layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings") -class VIEW3D_MT_pose_transform(bpy.types.Menu): +class VIEW3D_MT_pose_transform(Menu): bl_label = "Clear Transform" def draw(self, context): @@ -1266,7 +1267,7 @@ class VIEW3D_MT_pose_transform(bpy.types.Menu): layout.label(text="Origin") -class VIEW3D_MT_pose_slide(bpy.types.Menu): +class VIEW3D_MT_pose_slide(Menu): bl_label = "In-Betweens" def draw(self, context): @@ -1277,7 +1278,7 @@ class VIEW3D_MT_pose_slide(bpy.types.Menu): layout.operator("pose.breakdown") -class VIEW3D_MT_pose_propagate(bpy.types.Menu): +class VIEW3D_MT_pose_propagate(Menu): bl_label = "Propagate" def draw(self, context): @@ -1295,7 +1296,7 @@ class VIEW3D_MT_pose_propagate(bpy.types.Menu): layout.operator("pose.propagate", text="On Selected Markers").mode = 'SELECTED_MARKERS' -class VIEW3D_MT_pose_library(bpy.types.Menu): +class VIEW3D_MT_pose_library(Menu): bl_label = "Pose Library" def draw(self, context): @@ -1310,7 +1311,7 @@ class VIEW3D_MT_pose_library(bpy.types.Menu): layout.operator("poselib.pose_remove", text="Remove Pose...") -class VIEW3D_MT_pose_motion(bpy.types.Menu): +class VIEW3D_MT_pose_motion(Menu): bl_label = "Motion Paths" def draw(self, context): @@ -1320,7 +1321,7 @@ class VIEW3D_MT_pose_motion(bpy.types.Menu): layout.operator("pose.paths_clear", text="Clear") -class VIEW3D_MT_pose_group(bpy.types.Menu): +class VIEW3D_MT_pose_group(Menu): bl_label = "Bone Groups" def draw(self, context): @@ -1334,7 +1335,7 @@ class VIEW3D_MT_pose_group(bpy.types.Menu): layout.operator("pose.group_unassign") -class VIEW3D_MT_pose_ik(bpy.types.Menu): +class VIEW3D_MT_pose_ik(Menu): bl_label = "Inverse Kinematics" def draw(self, context): @@ -1344,7 +1345,7 @@ class VIEW3D_MT_pose_ik(bpy.types.Menu): layout.operator("pose.ik_clear") -class VIEW3D_MT_pose_constraints(bpy.types.Menu): +class VIEW3D_MT_pose_constraints(Menu): bl_label = "Constraints" def draw(self, context): @@ -1355,11 +1356,11 @@ class VIEW3D_MT_pose_constraints(bpy.types.Menu): layout.operator("pose.constraints_clear") -class VIEW3D_MT_pose_showhide(ShowHideMenu, bpy.types.Menu): +class VIEW3D_MT_pose_showhide(ShowHideMenu, Menu): _operator_name = "pose" -class VIEW3D_MT_pose_apply(bpy.types.Menu): +class VIEW3D_MT_pose_apply(Menu): bl_label = "Apply" def draw(self, context): @@ -1398,24 +1399,24 @@ class BoneOptions: props.type = self.type -class VIEW3D_MT_bone_options_toggle(bpy.types.Menu, BoneOptions): +class VIEW3D_MT_bone_options_toggle(Menu, BoneOptions): bl_label = "Toggle Bone Options" type = 'TOGGLE' -class VIEW3D_MT_bone_options_enable(bpy.types.Menu, BoneOptions): +class VIEW3D_MT_bone_options_enable(Menu, BoneOptions): bl_label = "Enable Bone Options" type = 'ENABLE' -class VIEW3D_MT_bone_options_disable(bpy.types.Menu, BoneOptions): +class VIEW3D_MT_bone_options_disable(Menu, BoneOptions): bl_label = "Disable Bone Options" type = 'DISABLE' # ********** Edit Menus, suffix from ob.type ********** -class VIEW3D_MT_edit_mesh(bpy.types.Menu): +class VIEW3D_MT_edit_mesh(Menu): bl_label = "Mesh" def draw(self, context): @@ -1462,7 +1463,7 @@ class VIEW3D_MT_edit_mesh(bpy.types.Menu): layout.menu("VIEW3D_MT_edit_mesh_showhide") -class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_specials(Menu): bl_label = "Specials" def draw(self, context): @@ -1487,7 +1488,7 @@ class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu): layout.operator("mesh.select_vertex_path") -class VIEW3D_MT_edit_mesh_select_mode(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_select_mode(Menu): bl_label = "Mesh Select Mode" def draw(self, context): @@ -1508,7 +1509,7 @@ class VIEW3D_MT_edit_mesh_select_mode(bpy.types.Menu): prop.data_path = "tool_settings.mesh_select_mode" -class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_extrude(Menu): bl_label = "Extrude" _extrude_funcs = { \ @@ -1542,7 +1543,7 @@ class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu): self._extrude_funcs[menu_id](layout) -class VIEW3D_OT_edit_mesh_extrude_individual_move(bpy.types.Operator): +class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator): "Extrude individual elements and move" bl_label = "Extrude Individual and Move" bl_idname = "view3d.edit_mesh_extrude_individual_move" @@ -1571,7 +1572,7 @@ class VIEW3D_OT_edit_mesh_extrude_individual_move(bpy.types.Operator): return self.execute(context) -class VIEW3D_OT_edit_mesh_extrude_move(bpy.types.Operator): +class VIEW3D_OT_edit_mesh_extrude_move(Operator): "Extrude and move along normals" bl_label = "Extrude and Move on Normals" bl_idname = "view3d.edit_mesh_extrude_move_normal" @@ -1597,7 +1598,7 @@ class VIEW3D_OT_edit_mesh_extrude_move(bpy.types.Operator): return self.execute(context) -class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_vertices(Menu): bl_label = "Vertices" def draw(self, context): @@ -1629,7 +1630,7 @@ class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu): layout.menu("VIEW3D_MT_hook") -class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_edges(Menu): bl_label = "Edges" def draw(self, context): @@ -1669,7 +1670,7 @@ class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu): layout.operator("mesh.region_to_loop") -class VIEW3D_MT_edit_mesh_faces(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_faces(Menu): bl_label = "Faces" bl_idname = "VIEW3D_MT_edit_mesh_faces" @@ -1717,7 +1718,7 @@ class VIEW3D_MT_edit_mesh_faces(bpy.types.Menu): layout.operator_menu_enum("mesh.colors_mirror", "axis") -class VIEW3D_MT_edit_mesh_normals(bpy.types.Menu): +class VIEW3D_MT_edit_mesh_normals(Menu): bl_label = "Normals" def draw(self, context): @@ -1731,7 +1732,7 @@ class VIEW3D_MT_edit_mesh_normals(bpy.types.Menu): layout.operator("mesh.flip_normals") -class VIEW3D_MT_edit_mesh_showhide(ShowHideMenu, bpy.types.Menu): +class VIEW3D_MT_edit_mesh_showhide(ShowHideMenu, Menu): _operator_name = "mesh" # Edit Curve @@ -1771,13 +1772,13 @@ def draw_curve(self, context): layout.menu("VIEW3D_MT_edit_curve_showhide") -class VIEW3D_MT_edit_curve(bpy.types.Menu): +class VIEW3D_MT_edit_curve(Menu): bl_label = "Curve" draw = draw_curve -class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu): +class VIEW3D_MT_edit_curve_ctrlpoints(Menu): bl_label = "Control Points" def draw(self, context): @@ -1799,7 +1800,7 @@ class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu): layout.menu("VIEW3D_MT_hook") -class VIEW3D_MT_edit_curve_segments(bpy.types.Menu): +class VIEW3D_MT_edit_curve_segments(Menu): bl_label = "Segments" def draw(self, context): @@ -1809,7 +1810,7 @@ class VIEW3D_MT_edit_curve_segments(bpy.types.Menu): layout.operator("curve.switch_direction") -class VIEW3D_MT_edit_curve_specials(bpy.types.Menu): +class VIEW3D_MT_edit_curve_specials(Menu): bl_label = "Specials" def draw(self, context): @@ -1823,17 +1824,17 @@ class VIEW3D_MT_edit_curve_specials(bpy.types.Menu): layout.operator("curve.smooth_radius") -class VIEW3D_MT_edit_curve_showhide(ShowHideMenu, bpy.types.Menu): +class VIEW3D_MT_edit_curve_showhide(ShowHideMenu, Menu): _operator_name = "curve" -class VIEW3D_MT_edit_surface(bpy.types.Menu): +class VIEW3D_MT_edit_surface(Menu): bl_label = "Surface" draw = draw_curve -class VIEW3D_MT_edit_font(bpy.types.Menu): +class VIEW3D_MT_edit_font(Menu): bl_label = "Text" def draw(self, context): @@ -1853,7 +1854,7 @@ class VIEW3D_MT_edit_font(bpy.types.Menu): layout.operator("font.style_toggle", text="Toggle Small Caps").style = 'SMALL_CAPS' -class VIEW3D_MT_edit_text_chars(bpy.types.Menu): +class VIEW3D_MT_edit_text_chars(Menu): bl_label = "Special Characters" def draw(self, context): @@ -1887,7 +1888,7 @@ class VIEW3D_MT_edit_text_chars(bpy.types.Menu): layout.operator("font.text_insert", text="Spanish Exclamation Mark|Alt !").text = b'\xC2\xA1'.decode() -class VIEW3D_MT_edit_meta(bpy.types.Menu): +class VIEW3D_MT_edit_meta(Menu): bl_label = "Metaball" def draw(self, context): @@ -1920,7 +1921,7 @@ class VIEW3D_MT_edit_meta(bpy.types.Menu): layout.menu("VIEW3D_MT_edit_meta_showhide") -class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu): +class VIEW3D_MT_edit_meta_showhide(Menu): bl_label = "Show/Hide" def draw(self, context): @@ -1931,7 +1932,7 @@ class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu): layout.operator("mball.hide_metaelems", text="Hide Unselected").unselected = True -class VIEW3D_MT_edit_lattice(bpy.types.Menu): +class VIEW3D_MT_edit_lattice(Menu): bl_label = "Lattice" def draw(self, context): @@ -1953,7 +1954,7 @@ class VIEW3D_MT_edit_lattice(bpy.types.Menu): layout.prop_menu_enum(settings, "proportional_edit_falloff") -class VIEW3D_MT_edit_armature(bpy.types.Menu): +class VIEW3D_MT_edit_armature(Menu): bl_label = "Armature" def draw(self, context): @@ -2008,7 +2009,7 @@ class VIEW3D_MT_edit_armature(bpy.types.Menu): layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings") -class VIEW3D_MT_armature_specials(bpy.types.Menu): +class VIEW3D_MT_armature_specials(Menu): bl_label = "Specials" def draw(self, context): @@ -2028,7 +2029,7 @@ class VIEW3D_MT_armature_specials(bpy.types.Menu): layout.operator("armature.flip_names", text="Flip Names") -class VIEW3D_MT_edit_armature_parent(bpy.types.Menu): +class VIEW3D_MT_edit_armature_parent(Menu): bl_label = "Parent" def draw(self, context): @@ -2038,7 +2039,7 @@ class VIEW3D_MT_edit_armature_parent(bpy.types.Menu): layout.operator("armature.parent_clear", text="Clear") -class VIEW3D_MT_edit_armature_roll(bpy.types.Menu): +class VIEW3D_MT_edit_armature_roll(Menu): bl_label = "Bone Roll" def draw(self, context): @@ -2053,7 +2054,7 @@ class VIEW3D_MT_edit_armature_roll(bpy.types.Menu): # ********** Panel ********** -class VIEW3D_PT_view3d_properties(bpy.types.Panel): +class VIEW3D_PT_view3d_properties(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "View" @@ -2094,7 +2095,7 @@ class VIEW3D_PT_view3d_properties(bpy.types.Panel): layout.column().prop(view, "cursor_location") -class VIEW3D_PT_view3d_name(bpy.types.Panel): +class VIEW3D_PT_view3d_name(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Item" @@ -2119,7 +2120,7 @@ class VIEW3D_PT_view3d_name(bpy.types.Panel): row.prop(bone, "name", text="") -class VIEW3D_PT_view3d_display(bpy.types.Panel): +class VIEW3D_PT_view3d_display(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Display" @@ -2190,7 +2191,7 @@ class VIEW3D_PT_view3d_display(bpy.types.Panel): row.prop(region, "use_box_clip") -class VIEW3D_PT_view3d_meshdisplay(bpy.types.Panel): +class VIEW3D_PT_view3d_meshdisplay(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Mesh Display" @@ -2227,7 +2228,7 @@ class VIEW3D_PT_view3d_meshdisplay(bpy.types.Panel): col.prop(mesh, "show_extra_face_area") -class VIEW3D_PT_view3d_curvedisplay(bpy.types.Panel): +class VIEW3D_PT_view3d_curvedisplay(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Curve Display" @@ -2249,7 +2250,7 @@ class VIEW3D_PT_view3d_curvedisplay(bpy.types.Panel): col.prop(context.scene.tool_settings, "normal_size", text="Normal Size") -class VIEW3D_PT_background_image(bpy.types.Panel): +class VIEW3D_PT_background_image(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Background Images" @@ -2302,7 +2303,7 @@ class VIEW3D_PT_background_image(bpy.types.Panel): row.prop(bg, "offset_y", text="Y") -class VIEW3D_PT_transform_orientations(bpy.types.Panel): +class VIEW3D_PT_transform_orientations(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Transform Orientations" @@ -2330,7 +2331,7 @@ class VIEW3D_PT_transform_orientations(bpy.types.Panel): col.operator("transform.delete_orientation", text="Delete") -class VIEW3D_PT_etch_a_ton(bpy.types.Panel): +class VIEW3D_PT_etch_a_ton(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Skeleton Sketching" @@ -2375,7 +2376,7 @@ class VIEW3D_PT_etch_a_ton(bpy.types.Panel): col.operator("sketch.convert", text="Convert") -class VIEW3D_PT_context_properties(bpy.types.Panel): +class VIEW3D_PT_context_properties(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Properties" diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index 85dd6f7da5e..864d59f0cdb 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -18,6 +18,7 @@ # import bpy +from bpy.types import Menu, Panel class View3DPanel(): @@ -61,7 +62,7 @@ def draw_gpencil_tools(context, layout): # ********** default tools for objectmode **************** -class VIEW3D_PT_tools_objectmode(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_objectmode(View3DPanel, Panel): bl_context = "objectmode" bl_label = "Object Tools" @@ -106,7 +107,7 @@ class VIEW3D_PT_tools_objectmode(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_mesh **************** -class VIEW3D_PT_tools_meshedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_meshedit(View3DPanel, Panel): bl_context = "mesh_edit" bl_label = "Mesh Tools" @@ -165,7 +166,7 @@ class VIEW3D_PT_tools_meshedit(View3DPanel, bpy.types.Panel): draw_gpencil_tools(context, layout) -class VIEW3D_PT_tools_meshedit_options(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_meshedit_options(View3DPanel, Panel): bl_context = "mesh_edit" bl_label = "Mesh Options" @@ -191,7 +192,7 @@ class VIEW3D_PT_tools_meshedit_options(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_curve **************** -class VIEW3D_PT_tools_curveedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_curveedit(View3DPanel, Panel): bl_context = "curve_edit" bl_label = "Curve Tools" @@ -237,7 +238,7 @@ class VIEW3D_PT_tools_curveedit(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_surface **************** -class VIEW3D_PT_tools_surfaceedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_surfaceedit(View3DPanel, Panel): bl_context = "surface_edit" bl_label = "Surface Tools" @@ -269,7 +270,7 @@ class VIEW3D_PT_tools_surfaceedit(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_text **************** -class VIEW3D_PT_tools_textedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_textedit(View3DPanel, Panel): bl_context = "text_edit" bl_label = "Text Tools" @@ -299,7 +300,7 @@ class VIEW3D_PT_tools_textedit(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_armature **************** -class VIEW3D_PT_tools_armatureedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_armatureedit(View3DPanel, Panel): bl_context = "armature_edit" bl_label = "Armature Tools" @@ -328,7 +329,7 @@ class VIEW3D_PT_tools_armatureedit(View3DPanel, bpy.types.Panel): draw_gpencil_tools(context, layout) -class VIEW3D_PT_tools_armatureedit_options(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_armatureedit_options(View3DPanel, Panel): bl_context = "armature_edit" bl_label = "Armature Options" @@ -340,7 +341,7 @@ class VIEW3D_PT_tools_armatureedit_options(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_mball **************** -class VIEW3D_PT_tools_mballedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_mballedit(View3DPanel, Panel): bl_context = "mball_edit" bl_label = "Meta Tools" @@ -360,7 +361,7 @@ class VIEW3D_PT_tools_mballedit(View3DPanel, bpy.types.Panel): # ********** default tools for editmode_lattice **************** -class VIEW3D_PT_tools_latticeedit(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_latticeedit(View3DPanel, Panel): bl_context = "lattice_edit" bl_label = "Lattice Tools" @@ -384,7 +385,7 @@ class VIEW3D_PT_tools_latticeedit(View3DPanel, bpy.types.Panel): # ********** default tools for posemode **************** -class VIEW3D_PT_tools_posemode(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_posemode(View3DPanel, Panel): bl_context = "posemode" bl_label = "Pose Tools" @@ -425,7 +426,7 @@ class VIEW3D_PT_tools_posemode(View3DPanel, bpy.types.Panel): draw_gpencil_tools(context, layout) -class VIEW3D_PT_tools_posemode_options(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_posemode_options(View3DPanel, Panel): bl_context = "posemode" bl_label = "Pose Options" @@ -459,7 +460,7 @@ class PaintPanel(): return None -class VIEW3D_PT_tools_brush(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush(PaintPanel, Panel): bl_label = "Brush" @classmethod @@ -677,7 +678,7 @@ class VIEW3D_PT_tools_brush(PaintPanel, bpy.types.Panel): #row.prop(brush, "use_pressure_jitter", toggle=True, text="") -class VIEW3D_PT_tools_brush_texture(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush_texture(PaintPanel, Panel): bl_label = "Texture" bl_options = {'DEFAULT_CLOSED'} @@ -775,7 +776,7 @@ class VIEW3D_PT_tools_brush_texture(PaintPanel, bpy.types.Panel): col.active = tex_slot.map_mode in {'FIXED', 'TILED'} and brush.use_texture_overlay -class VIEW3D_PT_tools_brush_tool(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush_tool(PaintPanel, Panel): bl_label = "Tool" bl_options = {'DEFAULT_CLOSED'} @@ -809,7 +810,7 @@ class VIEW3D_PT_tools_brush_tool(PaintPanel, bpy.types.Panel): row.prop(brush, "use_paint_image", text="", icon='TPAINT_HLT') -class VIEW3D_PT_tools_brush_stroke(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush_stroke(PaintPanel, Panel): bl_label = "Stroke" bl_options = {'DEFAULT_CLOSED'} @@ -907,7 +908,7 @@ class VIEW3D_PT_tools_brush_stroke(PaintPanel, bpy.types.Panel): # row.prop(brush, "use_pressure_spacing", toggle=True, text="") -class VIEW3D_PT_tools_brush_curve(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush_curve(PaintPanel, Panel): bl_label = "Curve" bl_options = {'DEFAULT_CLOSED'} @@ -934,7 +935,7 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel, bpy.types.Panel): row.operator("brush.curve_preset", icon="NOCURVE", text="").shape = 'MAX' -class VIEW3D_PT_sculpt_options(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_sculpt_options(PaintPanel, Panel): bl_label = "Options" bl_options = {'DEFAULT_CLOSED'} @@ -964,7 +965,7 @@ class VIEW3D_PT_sculpt_options(PaintPanel, bpy.types.Panel): layout.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Strength") -class VIEW3D_PT_sculpt_symmetry(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_sculpt_symmetry(PaintPanel, Panel): bl_label = "Symmetry" bl_options = {'DEFAULT_CLOSED'} @@ -992,7 +993,7 @@ class VIEW3D_PT_sculpt_symmetry(PaintPanel, bpy.types.Panel): layout.prop(sculpt, "use_symmetry_feather", text="Feather") -class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel): +class VIEW3D_PT_tools_brush_appearance(PaintPanel, Panel): bl_label = "Appearance" bl_options = {'DEFAULT_CLOSED'} @@ -1038,7 +1039,7 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel): # ********** default tools for weightpaint **************** -class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_weightpaint(View3DPanel, Panel): bl_context = "weightpaint" bl_label = "Weight Tools" @@ -1056,7 +1057,7 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel): col.operator("object.vertex_group_levels", text="Levels") -class VIEW3D_PT_tools_weightpaint_options(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_weightpaint_options(View3DPanel, Panel): bl_context = "weightpaint" bl_label = "Options" @@ -1093,7 +1094,7 @@ class VIEW3D_PT_tools_weightpaint_options(View3DPanel, bpy.types.Panel): # ********** default tools for vertexpaint **************** -class VIEW3D_PT_tools_vertexpaint(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_vertexpaint(View3DPanel, Panel): bl_context = "vertexpaint" bl_label = "Options" @@ -1122,7 +1123,7 @@ class VIEW3D_PT_tools_vertexpaint(View3DPanel, bpy.types.Panel): # ********** default tools for texturepaint **************** -class VIEW3D_PT_tools_projectpaint(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel): bl_context = "imagepaint" bl_label = "Project Paint" @@ -1214,7 +1215,7 @@ class VIEW3D_PT_imagepaint_options(PaintPanel): col.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Strength") -class VIEW3D_MT_tools_projectpaint_clone(bpy.types.Menu): +class VIEW3D_MT_tools_projectpaint_clone(Menu): bl_label = "Clone Layer" def draw(self, context): @@ -1225,7 +1226,7 @@ class VIEW3D_MT_tools_projectpaint_clone(bpy.types.Menu): prop.value = i -class VIEW3D_MT_tools_projectpaint_stencil(bpy.types.Menu): +class VIEW3D_MT_tools_projectpaint_stencil(Menu): bl_label = "Mask Layer" def draw(self, context): @@ -1236,7 +1237,7 @@ class VIEW3D_MT_tools_projectpaint_stencil(bpy.types.Menu): prop.value = i -class VIEW3D_PT_tools_particlemode(View3DPanel, bpy.types.Panel): +class VIEW3D_PT_tools_particlemode(View3DPanel, Panel): '''default tools for particle mode''' bl_context = "particlemode" bl_label = "Options" diff --git a/release/scripts/templates/operator_modal.py b/release/scripts/templates/operator_modal.py index 78dbd4c6b43..a428b097f82 100644 --- a/release/scripts/templates/operator_modal.py +++ b/release/scripts/templates/operator_modal.py @@ -18,7 +18,7 @@ class ModalOperator(bpy.types.Operator): elif event.type == 'LEFTMOUSE': return {'FINISHED'} - elif event.type in ('RIGHTMOUSE', 'ESC'): + elif event.type in {'RIGHTMOUSE', 'ESC'}: context.object.location.x = self.first_value return {'CANCELLED'} @@ -47,4 +47,4 @@ if __name__ == "__main__": register() # test call - bpy.ops.object.modal_operator() + bpy.ops.object.modal_operator('INVOKE_DEFAULT') diff --git a/release/scripts/templates/operator_modal_draw.py b/release/scripts/templates/operator_modal_draw.py index e7a1f6e4ffe..b3d525a59bf 100644 --- a/release/scripts/templates/operator_modal_draw.py +++ b/release/scripts/templates/operator_modal_draw.py @@ -45,7 +45,7 @@ class ModalDrawOperator(bpy.types.Operator): context.region.callback_remove(self._handle) return {'FINISHED'} - elif event.type in ('RIGHTMOUSE', 'ESC'): + elif event.type in {'RIGHTMOUSE', 'ESC'}: context.region.callback_remove(self._handle) return {'CANCELLED'} diff --git a/release/scripts/templates/operator_modal_timer.py b/release/scripts/templates/operator_modal_timer.py index d2267191cf5..ec47390da81 100644 --- a/release/scripts/templates/operator_modal_timer.py +++ b/release/scripts/templates/operator_modal_timer.py @@ -10,7 +10,7 @@ class ModalTimerOperator(bpy.types.Operator): def modal(self, context, event): if event.type == 'ESC': - return self.cancel() + return self.cancel(context) if event.type == 'TIMER': # change theme color, silly! diff --git a/release/scripts/templates/operator_modal_view3d.py b/release/scripts/templates/operator_modal_view3d.py index c494f121017..925449835ca 100644 --- a/release/scripts/templates/operator_modal_view3d.py +++ b/release/scripts/templates/operator_modal_view3d.py @@ -29,7 +29,7 @@ class ViewOperator(bpy.types.Operator): context.area.header_text_set() return {'FINISHED'} - elif event.type in ('RIGHTMOUSE', 'ESC'): + elif event.type in {'RIGHTMOUSE', 'ESC'}: rv3d.view_location = self._initial_location context.area.header_text_set() return {'CANCELLED'} diff --git a/release/text/readme.html b/release/text/readme.html index 2b5a4071a7f..95094b9c0cb 100644 --- a/release/text/readme.html +++ b/release/text/readme.html @@ -12,22 +12,22 @@ -

Blender 2.58

+

Blender 2.59


About

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, Solaris and FreeBSD and has a large world-wide community.

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.

For more information, visit blender.org.


-

2.58

-

The Blender Foundation and online developer community is proud to present Blender 2.58. This release is the second official stable release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. More information about this release.

+

2.59

+

The Blender Foundation and online developer community is proud to present Blender 2.59. This release is the third official stable release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. More information about this release.

What to Expect:

• Big improvements - This is our most exciting version to date, already a significant improvement in many ways over 2.49

• Missing/Incomplete Features - Although most of it is there, not all functionality from pre-2.5 versions has been restored yet. Some functionality may be re-implemented a different way.

• Changes - If you're used to the old Blenders, Blender 2.5 may seem quite different at first, but it won't be long before it grows on you even more than before.


Bugs

-

Although Blender 2.58 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 2.58. 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.

+

Although Blender 2.59 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 2.59. 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.


Package Contents

The downloaded Blender package includes:

@@ -51,11 +51,11 @@

Links

Users:

General information www.blender.org
- Full release log www.blender.org/development/release-logs/blender-258/
+ Full release log www.blender.org/development/release-logs/blender-259/
Tutorials www.blender.org/education-help/
Manual wiki.blender.org/index.php/Doc:Manual
User Forum www.blenderartists.org
- IRC #blender on irc.freenode.net
+ IRC #blenderchat on irc.freenode.net

Developers:

Development www.blender.org/development/
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 18f6ad21333..162b0de1d5a 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,17 +43,17 @@ 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 258 -#define BLENDER_SUBVERSION 1 +#define BLENDER_VERSION 259 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #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 +#define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE beta +#define BLENDER_VERSION_CYCLE alpha struct ListBase; struct MemFile; diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 13a84e0452f..97abc740c43 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -301,6 +301,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { ChannelDriver *driver= fcu->driver; DriverVar *dvar; + int isdata_fcu = isdata || (fcu->rna_path && strstr(fcu->rna_path, "modifiers[")); /* loop over variables to get the target relationships */ for (dvar= driver->variables.first; dvar; dvar= dvar->next) { @@ -320,14 +321,14 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node ( ((dtar->rna_path) && strstr(dtar->rna_path, "pose.bones[")) || ((dtar->flag & DTAR_FLAG_STRUCT_REF) && (dtar->pchan_name[0])) )) { - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); } /* check if ob data */ else if (dtar->rna_path && strstr(dtar->rna_path, "data.")) - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); /* normal */ else - dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); + dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); } } } diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 8f57490d057..c2ed6468643 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -1369,6 +1369,11 @@ void makeDispListCurveTypes(Scene *scene, Object *ob, int forOrco) Curve *cu= ob->data; ListBase *dispbase; + /* The same check for duplis as in do_makeDispListCurveTypes. + Happens when curve used for constraint/bevel was converted to mesh. + check there is still needed for render displist and orco displists. */ + if(!ELEM3(ob->type, OB_SURF, OB_CURVE, OB_FONT)) return; + freedisplist(&(ob->disp)); dispbase= &(ob->disp); freedisplist(dispbase); diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index d6a9d950015..13e13fbc3ff 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1002,7 +1002,7 @@ static float dtar_get_prop_val (ChannelDriver *driver, DriverTarget *dtar) /* get property to read from, and get value as appropriate */ if (RNA_path_resolve_full(&id_ptr, dtar->rna_path, &ptr, &prop, &index)) { - if(RNA_property_array_check(&ptr, prop)) { + if(RNA_property_array_check(prop)) { /* array */ if (index < RNA_property_array_length(&ptr, prop)) { switch (RNA_property_type(prop)) { diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index c02b5dda9ce..bd238e72d0c 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1582,7 +1582,7 @@ void BKE_nla_tweakmode_exit (AnimData *adt) /* Baking Tools ------------------------------------------- */ -static void BKE_nla_bake (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag)) +static void UNUSED_FUNCTION(BKE_nla_bake) (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag)) { /* verify that data is valid diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index f6b40527637..927d406eb61 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3399,7 +3399,7 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node) int driven, len=1, index; prop = (PropertyRNA *)link; - if (RNA_property_array_check(&ptr, prop)) + if (RNA_property_array_check(prop)) len = RNA_property_array_length(&ptr, prop); for (index=0; indeximat); transpose_m3(nmat); mul_m3_v3(nmat, nor); + normalize_v3(nor); /* make sure that we get a proper side vector */ if(fabs(dot_v3v3(nor,vec))>0.999999) { diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index d6a152a5280..3aebbea789f 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -699,6 +699,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) seq->len = 0; } seq->strip->len = seq->len; + break; case SEQ_SOUND: #ifdef WITH_AUDASPACE if(!seq->sound) diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 036ba34d0c8..493baebd197 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -1005,7 +1005,7 @@ void autotexname(Tex *tex) Tex *give_current_object_texture(Object *ob) { - Material *ma; + Material *ma, *node_ma; Tex *tex= NULL; if(ob==NULL) return NULL; @@ -1015,6 +1015,10 @@ Tex *give_current_object_texture(Object *ob) tex= give_current_lamp_texture(ob->data); } else { ma= give_current_material(ob, ob->actcol); + + if((node_ma=give_node_material(ma))) + ma= node_ma; + tex= give_current_material_texture(ma); } @@ -1080,17 +1084,6 @@ Tex *give_current_material_texture(Material *ma) tex= (Tex *)node->id; ma= NULL; } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) { - ma= (Material*)node->id; - if(ma) { - mtex= ma->mtex[(int)(ma->texact)]; - if(mtex) tex= mtex->tex; - } - } - } - return tex; } if(ma) { @@ -1165,11 +1158,6 @@ void set_current_material_texture(Material *ma, Tex *newtex) id_us_plus(&newtex->id); ma= NULL; } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) - ma= (Material*)node->id; - } } if(ma) { int act= (int)ma->texact; @@ -1198,16 +1186,8 @@ int has_current_material_texture(Material *ma) if(ma && ma->use_nodes && ma->nodetree) { node= nodeGetActiveID(ma->nodetree, ID_TE); - if(node) { + if(node) return 1; - } - else { - node= nodeGetActiveID(ma->nodetree, ID_MA); - if(node) - ma= (Material*)node->id; - else - ma= NULL; - } } return (ma != NULL); diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c index b89e576a562..a9792bc44fa 100644 --- a/source/blender/blenkernel/intern/unit.c +++ b/source/blender/blenkernel/intern/unit.c @@ -136,7 +136,7 @@ static struct bUnitDef buImperialLenDef[] = { {"yard", "yards", "yd", NULL, "Yards", UN_SC_YD, 0.0, B_UNIT_DEF_NONE}, {"foot", "feet", "'", "ft", "Feet", UN_SC_FT, 0.0, B_UNIT_DEF_NONE}, /* base unit */ {"inch", "inches", "\"", "in", "Inches", UN_SC_IN, 0.0, B_UNIT_DEF_NONE}, - {"thou", "thous", "mil", NULL, "Thous", UN_SC_MIL, 0.0, B_UNIT_DEF_NONE}, + {"thou", "thou", "thou", "mil", "Thou", UN_SC_MIL, 0.0, B_UNIT_DEF_NONE}, /* plural for thou has no 's' */ {NULL, NULL, NULL, NULL, NULL, 0.0, 0.0} }; static struct bUnitCollection buImperialLenCollecton = {buImperialLenDef, 4, 0, sizeof(buImperialLenDef)/sizeof(bUnitDef)}; diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 4db53999f10..fe7a7a18177 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -658,10 +658,12 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report switch(ffmpeg_type) { case FFMPEG_AVI: case FFMPEG_MOV: - case FFMPEG_OGG: case FFMPEG_MKV: fmt->video_codec = ffmpeg_codec; break; + case FFMPEG_OGG: + fmt->video_codec = CODEC_ID_THEORA; + break; case FFMPEG_DV: fmt->video_codec = CODEC_ID_DVVIDEO; break; @@ -1310,6 +1312,9 @@ void ffmpeg_verify_image_type(RenderData *rd) /* Don't set preset, disturbs render resolution. * ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD); */ } + if(rd->ffcodecdata.type == FFMPEG_OGG) { + rd->ffcodecdata.type = FFMPEG_MPEG2; + } audio= 1; } diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h index dcc71fa1258..e4afc6ad79b 100644 --- a/source/blender/blenlib/BLI_ghash.h +++ b/source/blender/blenlib/BLI_ghash.h @@ -53,14 +53,14 @@ typedef void (*GHashValFreeFP) (void *val); typedef struct Entry { struct Entry *next; - + void *key, *val; } Entry; typedef struct GHash { GHashHashFP hashfp; GHashCmpFP cmpfp; - + Entry **buckets; struct BLI_mempool *entrypool; int nbuckets, nentries, cursize; @@ -72,15 +72,15 @@ typedef struct GHashIterator { struct Entry *curEntry; } GHashIterator; -GHash* BLI_ghash_new (GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info); -void BLI_ghash_free (GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); - -//BM_INLINE void BLI_ghash_insert (GHash *gh, void *key, void *val); -//BM_INLINE int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); -//BM_INLINE void* BLI_ghash_lookup (GHash *gh, void *key); -//BM_INLINE int BLI_ghash_haskey (GHash *gh, void *key); +/* *** */ -int BLI_ghash_size (GHash *gh); +GHash* BLI_ghash_new (GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info); +void BLI_ghash_free (GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); +void BLI_ghash_insert(GHash *gh, void *key, void *val); +void * BLI_ghash_lookup(GHash *gh, const void *key); +int BLI_ghash_remove(GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp); +int BLI_ghash_haskey(GHash *gh, void *key); +int BLI_ghash_size (GHash *gh); /* *** */ @@ -149,127 +149,10 @@ unsigned int BLI_ghashutil_strhash (const void *key); int BLI_ghashutil_strcmp (const void *a, const void *b); unsigned int BLI_ghashutil_inthash (const void *ptr); -int BLI_ghashutil_intcmp(const void *a, const void *b); - -/*begin of macro-inlined functions*/ -extern unsigned int hashsizes[]; - -#if 0 -#define BLI_ghash_insert(gh, _k, _v){\ - unsigned int _hash= (gh)->hashfp(_k)%gh->nbuckets;\ - Entry *_e= BLI_mempool_alloc((gh)->entrypool);\ - _e->key= _k;\ - _e->val= _v;\ - _e->next= (gh)->buckets[_hash];\ - (gh)->buckets[_hash]= _e;\ - if (++(gh)->nentries>(gh)->nbuckets*3) {\ - Entry *_e, **_old= (gh)->buckets;\ - int _i, _nold= (gh)->nbuckets;\ - (gh)->nbuckets= hashsizes[++(gh)->cursize];\ - (gh)->buckets= malloc((gh)->nbuckets*sizeof(*(gh)->buckets));\ - memset((gh)->buckets, 0, (gh)->nbuckets*sizeof(*(gh)->buckets));\ - for (_i=0; _i<_nold; _i++) {\ - for (_e= _old[_i]; _e;) {\ - Entry *_n= _e->next;\ - _hash= (gh)->hashfp(_e->key)%(gh)->nbuckets;\ - _e->next= (gh)->buckets[_hash];\ - (gh)->buckets[_hash]= _e;\ - _e= _n;\ - }\ - }\ - free(_old); } } -#endif - -/*---------inlined functions---------*/ -BM_INLINE void BLI_ghash_insert(GHash *gh, void *key, void *val) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool); - - e->key= key; - e->val= val; - e->next= gh->buckets[hash]; - gh->buckets[hash]= e; - - if (++gh->nentries>(float)gh->nbuckets/2) { - Entry **old= gh->buckets; - int i, nold= gh->nbuckets; - - gh->nbuckets= hashsizes[++gh->cursize]; - gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets"); - memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets)); - - for (i=0; inext; - - hash= gh->hashfp(e->key)%gh->nbuckets; - e->next= gh->buckets[hash]; - gh->buckets[hash]= e; - - e= n; - } - } - - MEM_freeN(old); - } -} - -BM_INLINE void* BLI_ghash_lookup(GHash *gh, const void *key) -{ - if(gh) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - - for (e= gh->buckets[hash]; e; e= e->next) - if (gh->cmpfp(key, e->key)==0) - return e->val; - } - return NULL; -} - -BM_INLINE int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) -{ - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - Entry *p = NULL; - - for (e= gh->buckets[hash]; e; e= e->next) { - if (gh->cmpfp(key, e->key)==0) { - Entry *n= e->next; - - if (keyfreefp) keyfreefp(e->key); - if (valfreefp) valfreefp(e->val); - BLI_mempool_free(gh->entrypool, e); - - - e= n; - if (p) - p->next = n; - else - gh->buckets[hash] = n; - - --gh->nentries; - return 1; - } - p = e; - } - - return 0; -} - -BM_INLINE int BLI_ghash_haskey(GHash *gh, void *key) { - unsigned int hash= gh->hashfp(key)%gh->nbuckets; - Entry *e; - - for (e= gh->buckets[hash]; e; e= e->next) - if (gh->cmpfp(key, e->key)==0) - return 1; - - return 0; -} +int BLI_ghashutil_intcmp (const void *a, const void *b); #ifdef __cplusplus } #endif -#endif +#endif /* BLI_GHASH_H */ diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h index 9af55601ff7..28ebb254f2a 100644 --- a/source/blender/blenlib/BLI_utildefines.h +++ b/source/blender/blenlib/BLI_utildefines.h @@ -183,6 +183,12 @@ # define UNUSED(x) UNUSED_ ## x #endif +#ifdef __GNUC__ +# define UNUSED_FUNCTION(x) __attribute__((__unused__)) UNUSED_ ## x +#else +# define UNUSED_FUNCTION(x) UNUSED_ ## x +#endif + #ifdef __GNUC__ # define WARN_UNUSED __attribute__((warn_unused_result)) #else diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c index ff08ef4dba9..bfee350037a 100644 --- a/source/blender/blenlib/intern/BLI_ghash.c +++ b/source/blender/blenlib/intern/BLI_ghash.c @@ -49,8 +49,6 @@ unsigned int hashsizes[]= { /***/ -/***/ - GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) { GHash *gh= MEM_mallocN(sizeof(*gh), info); gh->hashfp= hashfp; @@ -67,14 +65,96 @@ GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) { return gh; } -#ifdef BLI_ghash_insert -#undef BLI_ghash_insert -#endif - int BLI_ghash_size(GHash *gh) { return gh->nentries; } +void BLI_ghash_insert(GHash *gh, void *key, void *val) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool); + + e->key= key; + e->val= val; + e->next= gh->buckets[hash]; + gh->buckets[hash]= e; + + if (++gh->nentries>(float)gh->nbuckets/2) { + Entry **old= gh->buckets; + int i, nold= gh->nbuckets; + + gh->nbuckets= hashsizes[++gh->cursize]; + gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets"); + memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets)); + + for (i=0; inext; + + hash= gh->hashfp(e->key)%gh->nbuckets; + e->next= gh->buckets[hash]; + gh->buckets[hash]= e; + + e= n; + } + } + + MEM_freeN(old); + } +} + +void *BLI_ghash_lookup(GHash *gh, const void *key) { + if(gh) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + + for (e= gh->buckets[hash]; e; e= e->next) + if (gh->cmpfp(key, e->key)==0) + return e->val; + } + return NULL; +} + +int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) +{ + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + Entry *p = NULL; + + for (e= gh->buckets[hash]; e; e= e->next) { + if (gh->cmpfp(key, e->key)==0) { + Entry *n= e->next; + + if (keyfreefp) keyfreefp(e->key); + if (valfreefp) valfreefp(e->val); + BLI_mempool_free(gh->entrypool, e); + + /* correct but 'e' isnt used before return */ + /* e= n; */ /*UNUSED*/ + if (p) + p->next = n; + else + gh->buckets[hash] = n; + + --gh->nentries; + return 1; + } + p = e; + } + + return 0; +} + +int BLI_ghash_haskey(GHash *gh, void *key) { + unsigned int hash= gh->hashfp(key)%gh->nbuckets; + Entry *e; + + for (e= gh->buckets[hash]; e; e= e->next) + if (gh->cmpfp(key, e->key)==0) + return 1; + + return 0; +} + void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) { int i; diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c index 3d6888d87dc..69b7fff3607 100644 --- a/source/blender/editors/armature/poseSlide.c +++ b/source/blender/editors/armature/poseSlide.c @@ -1000,7 +1000,7 @@ static short pose_propagate_get_refVal (Object *ob, FCurve *fcu, float *value) /* resolve the property... */ if (RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop)) { - if (RNA_property_array_check(&ptr, prop)) { + if (RNA_property_array_check(prop)) { /* array */ if (fcu->array_index < RNA_property_array_length(&ptr, prop)) { found= TRUE; diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index aa358275335..a3343496be7 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,6314 +1,6405 @@ /* DataToC output of file */ -int datatoc_splash_png_size= 201866; +int datatoc_splash_png_size= 204738; 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, 2, 0, 0, 0,135, 56, 89, 17, 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, 0, 0, 0, 0, 0, -249, 67,187,127, 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,219, 6, 21, 16, 50, 48,139, 37,211,236, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,105,148, 93,215,117, 30,184,135, -115,135, 55,215,171, 1, 19, 1, 2, 40, 78, 18, 73,137,166, 65, 41, 22,101,205,160, 90, 67,162, 88,138, 1,183,149,216, 89,113, - 98, 32,238,100,181,148,172,101, 3, 29,219,105,199, 75,178, 72,175,229, 33,113,187, 19,194, 67, 71,109, 39,110, 17,146, 45,219, -138,221, 22,161,182, 45,107,176, 45, 66,150,100, 81,226, 0, 20, 49,213,128, 26,222,171, 55,223,225,156,189,251,199,121, 85,134, - 1, 18, 4, 41,208, 36,237,251,253, 32, 11, 85,119, 56,247,220,123,191,253,157,111,239,123, 14, 64,129, 2, 5, 10, 20, 40, 80, -160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, - 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40,240,210, 7,191, 64,199,125,239,119,236,254,207,255,226,222, 67,111,191, 45,119, -242,151,103,219, 69, 71, 23, 40, 80,160,192,223, 6,126,127,203,171,182,253,222,191,249,142,221,152,237,154,170,191,239,190, 59, -111,217, 86,253,244, 95, 92,200,172, 20,221, 93,160, 64,129, 2,127, 99,160, 23,226,160, 21,200, 96,241,204,104,241,252,240,212, - 55,135, 79, 60,249,254, 55,220,250,181, 95, 56,112,235, 13,141,162,187, 11, 20, 40, 80,224,229,173,223,159, 92, 25, 37, 0,239, -188,163,169, 86, 93,175,107,123,189,153,109, 91,255,213,119,221,253,232,185,181,111,158, 95, 47, 58,189, 64,129, 2, 5, 94,174, -252, 14, 0,159,155,235,255,249,252,232,192,183, 79,197,108,242,209,200,173,183, 32, 42,127,239, 59,239,158, 40,243, 31,253,229, -130, 19, 45,186,190, 64,129, 2, 5, 94, 80,224, 11,122,244,155,102,162,223,251, 23,183,221, 90, 11,134,195, 28,152,105,199,158, -120,215,174,175,158, 94,250,174, 15,253,254,153,139,189, 23,247,202,247,237,219,215,108, 54, 1, 96,110,110,110,110,110,238,101, -113,183, 94,142,109, 46, 80,160,192,223, 78,126, 7,128, 74, 72,191,254,125,123,223, 51,219, 72, 70, 14, 64,112,235,206,210,141, -123, 51,149,191,255,147,159,122,248,203, 23,158,247, 97,103,103,103,103,103,103,175,178, 65,187,221, 62,121,242,228, 85, 54,120, -248,225,135,247,239,223, 15, 0, 71,143, 30,125,224,129, 7, 94, 22,119,235,165,217,230,125,251,246,237,223,191,191,217,108,238, -219,183,207,255,230,228,201,147,115,115,115,199,143, 31,111,183,159,115,233,212,165,199,185, 58,158,245, 22, 23, 40,240,119, 28, -230, 57,239,192, 24, 25,186, 50, 74,168,255, 63,254, 85,196, 64, 68, 68, 0,192, 15,254,238, 82,116, 48,126,251,174,122,150, 43, -180,215,146,114, 53,152,218,250,233, 15,189,247,223,255,250,159,126,228, 99,143, 88,247,124,188,154, 3, 7, 14,220,127,255,253, -207,186,217,241,227,199, 79,156, 56,113,236,216,177,226, 78,191, 16,180,126,224,192,129, 3, 7, 14, 92, 25,104,125, 16,122,240, -193, 7,143, 29, 59,118,244,232,209,231,196,242,251,246,237,123,248,225,135,175,101,203, 19, 39, 78,220,119,223,125,197,141, 40, - 80,224, 58,240, 59, 33, 30,122,221,182, 31,125,235,141,211,213, 80,144, 0, 17,136,128, 8, 16,209,240,230,207, 64,132,204,227, -159,145,128,200, 41,166, 2, 54, 12,104, 99, 47,235,114, 25,225, 79,126,255,235,223,118,247,174, 3, 31,254,253,149,245,209, 11, -116,121, 7, 54,112,240,224,193,231,161, 37, 11, 92, 5,143, 60,242,200,179,110,115,232,208,161,253,251,247, 31, 60,120,176, 16, -218, 5, 10,188,164,249,253, 3,111,218,241,179,239,185, 57, 27,138, 10, 50, 33, 0,129, 34, 40, 2, 16, 10,130, 2, 40, 0, 33, - 8,128, 40, 48, 32, 34, 16,128, 2, 35, 6,140,170, 94,226,251, 45, 85, 16,211, 97,246,166, 59,118, 61,246, 75,223,119,223,191, -251,173, 47, 63,185,242,188,175,225,196,137, 19, 87,254,210, 75,200,205,159, 31,126,248,225,251,238,187,175,160,248, 23, 2, 39, - 79,158, 60,126,252,248,201,147, 39,253,141,104, 54,155,251,247,239,247,204, 14, 0,179,179,179, 15, 61,244,208, 61,247,220,243, - 60, 58,255,216,177, 99, 87, 73, 51, 20,119,179, 64,129,235,195,239,132,240, 67,175,219,166,131, 60, 79, 82, 16, 65,244, 70, 12, - 2, 2, 32, 0,226,216,164, 97,162,169, 45, 64, 8, 34, 72, 0, 66, 0, 2, 8,224,153,158, 4, 68,129, 8, 28, 0, 3, 32,100, -105,222,140,162,147,191,240,143,127,232, 23, 63,243,224,167,190, 62,142, 1,207, 17,207, 52, 72,247, 30,142,119, 15,246,237,219, -119,232,208,161,151,139,207,254,114,193,177, 99,199,142, 29, 59,118,153, 54,111,183,219,199,143, 31, 63,126,252,248,131, 15, 62, -120,232,208, 33, 79,241,207,175,243,189,189, 86,244,115,129, 2,207, 15,215,250,125,147, 40,252,204,103,231,145,210, 74,232, 42, - 37, 40,199, 90,142,181, 28,203,248,135, 72, 98,202,192,229, 24,149, 1, 17, 68, 64,228, 18,178,206, 64, 18,144, 17,104, 2,144, -130, 36,160, 25,136,128,168,170,228, 78,108,234,254,243, 7,222,254,208,143,191,187, 28, 5,215,241,218,142, 31, 63,126,169,102, - 63,112,224, 64,113,191,175, 35,238,187,239,190,195,135, 15, 95,197,120, 57,124,248,240,166,250, 62,114,228, 72,209, 99, 5, 10, -188,116,253,153, 7, 63,191,244,153,199,219, 55,207, 68, 8, 40, 27,220,237, 11,217, 83, 43,175,187,169,113,228, 29,183,149,131, -146,136, 0, 51, 32,128,136,102,125,100,164, 93,119,209,204,205, 88,223,134,113, 29,108, 42,131, 21,237, 45,202,202, 19, 96, 71, -128, 37, 5,231, 20,164,159,125,247, 27, 94,177,119, 71,227, 77, 31,124,104,144,228,215,235,242,124, 21,135, 87,145,215, 88,149, -113, 25, 46, 43, 11,121, 30,158,192,102,169,207,181, 23, 53, 62,143, 93,174, 99,155, 55,207,126,245,125,175, 69, 89, 31, 59,118, -204,167,193,125,147, 10, 23,190, 64,129,151, 40,191, 3,192,169,213,244,212,106,122,229,239, 95,189,171,254, 79, 94, 55, 91,229, -200,138, 2, 33, 36,137,166, 3,112, 3,190,245, 13,230,158,247,243,222,239,184,114,200,160,173, 51,246,244,103,220,217,207, 35, -135,160,170, 8,217, 48,219,119,211,246,223,251,169,247,237,255,145,227,249,245,155,172,230,249,213,137, 55,155,205, 67,135, 14, - 29, 56,112,224,178,168, 48, 55, 55,231, 77,137, 43,137,239,254,251,239,247, 27, 31, 63,126,252,216,177, 99,254, 8,135, 14, 29, -186,180,188,100,110,110,238,129, 7, 30,184, 74, 61,207,161, 67,135,142, 28, 57,114,217, 46,207,116,198,111,177,205, 87, 54,248, -200,145, 35,135, 14, 29,242, 37,246,112, 61, 10, 84, 46, 37,244,205,195, 22, 40, 80,224,101,131,195,111,222,169,191,248,118,251, -115,111, 31,254,236,219, 7, 15,188,169,255, 31, 94,211,255,241, 87,247,255,195,171,242, 47,253,119,125, 54,216,115,127,158,124, -226, 80,242,201,195,201, 39,255,117,250, 59,255,107,250,219, 31,208, 63, 60,242,161,127,118,239,179,158,244,200,145, 35,155, 7, -185,250,150,247,223,127,191,223,172,213,106, 93,250,251,135, 31,126,216,255,254, 74,235, 96,255,254,253,173, 86,235, 42,205, 62, -125,250,244,149,163,129, 75, 15,184,111,223,190, 71, 30,121,228,153,118,127,240,193, 7,159,150,157, 31,122,232,161,103,218,229, -145, 71, 30,105, 54,155,215,183,205,151, 53,248,202,221,175,177, 78,241, 42,216,191,127,255,230,209, 46,205,120, 95,223, 93, 10, - 20, 40,112, 29,244,251,101, 40,135,252, 11,223,115,235, 15,188,246,134,116, 36,206,229,144,142,192,230,128,138, 1, 68,239,253, - 8,223,249,110,191, 89,119,148,254,193, 87,206,252,193, 87,207,180,250,163,128,241,149, 59, 38,223,115,207,205,223,126,211,118, - 0,224, 93,175,193,176,150,127,238,103, 32, 52, 0, 10,132,182,159,254,232,251,239,253,175,159,254,198,169,249,235, 48, 83, 77, -179,217,220,180,221,175, 49, 83,119,224,192,129,135, 30,122,232, 82, 5,122,226,196, 9,175,124, 55,165,241,236,236,172, 47,200, -121, 90,195,193, 51,181,215,224,190,176, 4, 54,170,197, 55, 69,186, 23,242,151,197,161, 75, 51, 4,155, 59,250,147,238,219,183, -239,210, 86, 93,223, 54,251,200,225,245,245,230, 71, 67, 87,255,124,236,218,249,253,105,181,252,223,164, 63, 86,160, 64,129,231, -140, 91,182,148,158,252,241,191,167, 63,251,214,225,253,111, 25,124,248,222,193, 79,236, 27,252,196,190,193, 79,222, 51,248,247, -175,204, 62,243, 51,155, 18,236,139, 79, 44,124,231,255,254,177, 29,255,234,151,103,255,237, 71,111,251,145, 95,123,229, 15,255, -218,109,255,230, 87,239,248,192,177,163,191,246,153, 65,146,141, 85,252, 99,159, 78,126,227,123,211, 79,125, 48,253,212, 7,210, - 79,125, 80, 63,253,195,255,227,195,239,251,214,245,251,101,138,248, 50, 49,248,180, 90,120,118,118,118, 83,198,158, 62,125,250, - 74,253,120,169, 76,190,172, 0,124,243,128, 30, 15, 61,244,208,101,142,196,236,236,236,166,168,111,181, 90,151,254,245,208,161, - 67,151, 74,245,203,184,245, 74,109,126, 93,218,124, 89,131, 79,159, 62,125, 89, 10,250, 91,119, 84, 78,159, 62,253,180,125,117, -141,250,253,202, 33,197,233,211,167, 55,107,162, 10, 20, 40,240,130,232,247,119,220,222,252,228, 63,187,221,136, 25,166, 57,184, - 12,156, 5, 66, 64, 0,117, 56,189,203,188,246,251,253,102, 79, 46,181,191,255, 23,255, 96,121,100,203,149, 82,206, 28, 4, 28, - 50,178,134,232,236, 39,254,236, 20, 19,125,232,253,111, 6, 0,190,249, 45,238,241,255, 23, 92, 31, 76, 9, 16,108,150,239,191, -251,198,237, 83,149,197,181,193,181, 52,230,105,107, 51,246,239,223,127, 41,211, 29, 62,124,248, 90,244,251,131, 15, 62,184, 41, - 99,159,182,100,219, 91,210, 94,237,250,154,203,167, 53,211, 79,156, 56,113,240,224,193,203,126, 57, 55, 55,119,244,232, 81,111, -122,248, 34,241,227,199,143, 95,118, 9,115,115,115, 87,214,233,251,147, 62, 19, 69, 94,151, 54,207,205,205, 93,185,239,183, 40, -150, 47, 77, 36, 60,191, 79,136,175, 12, 48,179,179,179, 71,142, 28, 57,114,228,200,203,104, 86,137, 2, 5, 94, 54,252, 30, 48, -126,232,221,187,127,228,205, 55,164, 9,164,152,131,228,128, 10, 1, 1, 0, 32,104,158,153, 91,223,136,213,105,191,241,209,255, -246,249, 39, 47,116,160, 81,237,244, 45,160, 99,132, 50,227,116,197, 52, 75,166,209,168,126,242,207,159,124,243, 29,187,247,223, -181, 23,216,240,236, 27,237, 87, 62,138, 51,123, 64, 69, 16,195, 82,248, 15,239,189,233,191,252,238,215,174,165, 73, 87,159,168, -224,216,177, 99,215, 88, 70,237,231, 81, 25,183,252,153,191,170, 63,121,242,228,177, 99,199, 60, 35,239,223,191,255,105,153,235, -240,225,195, 79,187,239,137, 19, 39, 78,158, 60,185,105,152,108,186, 43,155, 63, 63,240,192, 3, 79,123, 94,127, 82, 95, 8,244, - 66,180,249,153,206,251,188,177,111,223,190,205,251,226,207,254, 92,143,224, 39,177,217,116,117, 54,103,185,217,188,233,179,179, -179,207,212,207, 5, 10, 20,128,231,186,190,199,206,137,240,243,255,250,142, 31,121,253,246,225,208, 57,112, 32, 57, 16, 0, 35, - 50,162, 65,100, 66,131,180,227, 78,191,241, 83, 23,215,127,255, 43,231,160, 92, 2, 63, 93, 1,179, 3,234,165,238,169,149,225, -220,242, 48, 87, 20,230,207,252,229, 89,191, 49, 78,223,172,163, 46,128, 5, 4, 64, 5, 43,175,189,109,219,117,185, 66,111, 64, - 95,139,213,176, 73,148,237,118,251,234,124,180, 25, 45,158,182,166,222, 19,211, 85,104,235,178,211, 93, 58,206,184,202,121, 55, -197,254,117,111,179, 47,176,185,142, 79,149,247,250, 55, 27,246,156, 88,184,221,110, 31, 61,122,244,166,155,110,186,231,158,123, - 14, 30, 60,248,192, 6, 14, 30, 60, 56, 57, 57,121,105, 12,243,197, 66,197, 59, 92,160,192,117,208,239,175,159,173,125,230,159, -223, 22, 8, 15, 51, 1, 86, 80, 65, 5, 20, 84, 70, 32, 4, 68, 0, 69, 19, 82,243, 70,191,253,153,149,238,104,152, 67, 61,242, - 95,184,250, 25,200,128, 8, 84,215,251,121,158,217,157, 13,211,219, 40,117,199,218, 86, 0,134,116,136,165,154,130,130,181,119, -205, 78, 19,161, 92,195, 76,241, 71,143, 30,125, 90,138,217,191,127,255,236,236,108,179,217,244,169,203,103,157,159, 96,147, 43, -159, 53, 19,120,233,104,224,202,178,238,171,143, 21,174,164,254, 77,241,126,245, 29,175, 62, 13,195,183,210,230,235, 91,150,238, -211, 30,155, 1,245,232,209,163,207,233,248, 39, 79,158,188,202,246, 15, 60,240,192,137, 19, 39, 54,173,170,251,239,191,255,105, -195, 94,129, 2, 5,174,149,223,153,240,223,190,113,235, 79,191,125,103,150, 65, 18, 8, 18,168, 83,204, 37, 12,169,109, 93, 5, - 8, 12,251,149, 66, 16, 0,212,250,189,182, 52,202, 28, 6, 78, 0, 20, 65, 21, 20, 0, 20, 20, 64, 17,152, 6,195,252,108,146, - 68,119,109, 52, 64, 29,104, 14, 54, 1,170,163,138,138,236,104,198, 1, 83, 42,238, 89,155,119, 21, 31,214,123,181,222,119,126, -248,225,135,239,185,231,158,171, 91, 10, 87,202,207,107,161,179, 43, 21,232,115,186, 7,215,206,209,155,222,206,245,109,243,117, -228,119, 95,138,179,217,170,195,135, 15, 95,247,201, 59, 79,158, 60,121,244,232, 81,111,254,204,206,206, 30, 56,112,160,160,248, - 2, 5,158, 39,191, 55, 74,252,241,127, 50,187,127,119,125,148, 9, 68, 6, 9, 52, 23,147, 75, 88,226, 31,252,228,153,217,169, -232,232, 27,182, 39, 10,232, 37,124,158,203,234, 41,218,245, 26, 0,120,229, 13, 83,127,239,150, 45, 95,248,230, 10, 24, 3,138, - 64, 10, 10,224,191, 91, 18, 4,196,164, 53,184,101,219,152,104,180,187, 0,105, 87,211,137,141,233,199, 20, 20,240, 91,158,157, -222, 83,191,231,130,171,164, 67, 47, 99,189,103,157, 92,254, 5,194,179, 6,134, 43, 55,120,209,219,124, 21,114, 63,122,244,232, - 11, 52, 51,243,230,103,177,112,157,234, 56, 11, 20,248,187,200,239,119,237, 40,255,238,247,221,180,171, 18, 14, 5,177,204, 0, -160,153,196,162, 73, 8,239,249,232, 19,127,240,205,206,135,222,121, 3,122, 34,102, 4, 4, 48,164, 23,191, 14, 99, 39, 6,127, -236,189,247,188,235, 27,159,130, 36,135, 40, 4, 69, 0, 0, 1, 16, 0, 21,232, 15,239,190,253,134,239,123,211, 29,126, 99, 89, -254,166,106,142, 46, 3, 16, 80, 37,212,197,214, 32,187, 30, 95,177, 62,240,192, 3,155, 92,112,224,192,129,107, 97,156,231, 52, - 43,192, 75,164, 34,251,165,208,230, 75,201,253,216,177, 99, 47, 92,125,139, 47,210,247,231,218,191,127,127, 81, 72, 83,160,192, -115,227,119, 4,248,129,215, 78,253,210,123,246, 88, 11, 67, 67, 24,145,138,234,200, 85, 12, 62, 62,200,255,193,175, 60,241,228, -114, 2, 0,167, 86, 83, 64,213,177,126, 7,136,203,238,204,231, 76,251, 12, 54,247, 0,192, 59,239,222,115,236,135,222,242,193, - 95,249,147,225,122, 10,113, 4, 76,160, 10, 89, 14,195,209,183,191, 98,235,199,127,248,221,149, 56, 0, 0,200, 71,238, 27,159, -192, 48, 2,116,160,162,226,128,232, 47,158, 90,145,235,180, 76,235,137, 19, 39,188, 7,114,141,223, 67,190,160,220,244, 2,225, - 69,111,243,131, 15, 62,120, 41,185,191,208,149, 45,197,135, 78, 5, 10, 60, 43,158,177,126,230,208,235,102,126,249,187,246, 36, - 22,242,178,193, 18,171, 0, 12, 93, 37,230,223, 60,213,121,237,207, 63,234,201, 29, 0, 30, 93, 30, 1, 33,248, 53,152,152,192, - 24,176,253,252,115, 63,183,121,156, 31,124,219, 29, 95,252,200,119,127,240,239,191,106,239,100, 20,107, 94, 37,119,239, 45,211, -255,199,255,242,214,207,126,248,192,222,173, 13,191,141,253,210, 47,235,250, 25, 8, 34, 69, 4, 80,176, 14, 8, 79, 62,185,252, - 55,220, 23, 87, 86,182,188,212,206,123,229, 6, 47, 86,155,175, 36,247,205,218,205,191, 1,114, 47, 80,160,192,243,215,239,229, -144,126,234, 45,219,179, 68,160, 26, 96,136,154, 41, 39, 54,170,240, 79,127,118,233,199,254,199,249,252,146, 21,245, 30, 93, 28, -157,239,100,219,170,161, 83, 29,207, 5, 95, 42,203,185,207,218,207,255,188,121,253, 7,253, 54,175,222, 61,253,115, 63,240,198, -143,124,159, 93,106, 13,194,192,236,152,172, 92,122, 46,247,141,223,182, 95,251, 53,136,203, 0,128,196,234, 4,157,228, 73,250, -169, 63, 61,115,189, 46,242, 26, 45,218, 75,135,252,205,102,243,111, 76, 33,206,205,205,249,243, 94,125,134,203,167,253,235,139, -213,230, 23,157,220,175, 61, 41, 93,160, 64,161,223,255, 26,166, 43,166, 25,177, 21, 80,167, 58,116, 97,230, 48,194,131,191,113, -234,200,239,156,203,255,250,114,169,195, 76,126,225, 79,151, 3, 3,154, 56, 0, 69, 2,100,194,114,205,125,237,255,206, 79,252, -152, 14, 87, 55,183,140, 3,179,103,107,227,175,145,123, 62,114,127,246,127,218, 63,249, 48, 70, 33, 50, 35, 2, 4, 17,228, 54, - 32,248,189, 71,206,156, 91,238, 95, 47,114,223,228,247,171,115,193,165, 21,132, 87,126, 73,244,194, 97,243,188,254,163,214,107, - 23,239, 47, 98,155, 95, 92,114,191,244, 74,159,223,252,160, 5, 10,252,221,229,247,165, 94,126, 38,177,229, 50,151,115, 87,102, -232,145,188,241,191, 60,118,252,100,235,105, 55,254,229, 47,174,116,114,103,114, 7,185,128, 95,147,143, 17, 42, 53, 57,253,251, -217, 39,190,223, 61,250, 9,237,206, 95,182,139, 14, 86,228,244,137,236,183,126,192,254,197, 47, 65, 28, 3, 27, 64, 5, 68,164, - 0,147, 28, 88,255,183,255,250,165,235,114,121,190, 22,123,243,159, 87, 47,164, 59,126,252,248,165,235, 81, 60,191,249,226,159, - 7,142, 31, 63,190,169,187,159,105, 29, 12, 63,121,239, 75,167,205, 87,146,187, 47, 91,124, 78,113,247,200, 6, 54, 67,215,181, -124,134,230, 63,104,240, 63,251,181,162,138,215,184, 64,129,231,192,239,153,213, 55, 63,248,196,127,124,100,229,227,115,221, 35, - 39,230,111,251,200, 95,254,217, 83,207,168,166,219, 67,251,131, 31, 63, 27, 68,172,125,171,185, 0, 32, 32, 2, 34,148,235, 96, - 59,249,231,126, 42,251,196,251,179,223, 57,108, 63,247,211,246, 79,255,147,253,194,207,100,191,247,129,236,227,223,155,159, 56, -170,253, 51, 80,105, 0, 17,248, 58, 72, 33, 77, 49,136,233, 35, 15,253,197, 55,207,127,171,147, 71,250, 53,225, 30,121,228,145, - 77,202,123,214, 47, 60,225,146,121, 5,124,169,223, 85,212,244, 38, 61,125,235,247,160,221,110,111,166, 70,247,239,223,127,229, -236,193,151,206,239,248, 18,105,243,149,228,254, 92,151,183,157,157,157,189,127, 3,155,247,200,127,166,112,149,175, 82,253, 6, -155, 93,113,221,167, 85, 40, 80,224,111, 19,158,177,126,230, 92, 43,253,224,111,158,189,198,163,124,252,203,107, 63,191,183,250, -193, 55,108, 27,117, 51,172,135, 16, 17, 16, 2, 40, 4, 1, 6, 1,168,232,218, 87,237,242, 73, 0, 5, 0, 36, 3, 38,132, 74, -245, 18, 61, 15,144, 57,149, 82, 28,133,127,248,181, 11, 63,241,223,191,242,156,174,225, 26, 87,109, 61,124,248,240,179,114,193, -137, 19, 39, 14, 31, 62,236, 25,214,211,229,137, 19, 39,252,164, 49,151,186, 61,251,247,239,247,148,244,156, 20,235, 85,112,236, -216,177,205,137,124,253,202,212,155,235,154,250,181,170,155,205,230,220,220, 92,187,221,190, 82,161,191, 40,109,246,173,186,244, - 55, 87,153,190,120,115,168,113, 45,197,169,126, 98,184,185,185,185, 19, 39, 78, 92, 54,255,204,165,115, 44,251,160, 82, 84, 70, - 22, 40,240,124,248,253,185, 49, 44,192,143,124,242,220,150,122,240,254,187,166,146, 78, 6,181, 0, 99, 30, 87,196, 3, 0, 18, -132, 49, 62,211,158,162,144, 58,233,102,165,237, 91, 79,158, 89,121,223, 79,253, 81,118,253, 22,111,218, 36,130,171,175, 20,122, - 25,213, 2,192,253,247,223,239, 69,226,101,243, 80,190, 64,104,183,219, 7, 15, 30,124,248,225,135,125,170,192,107,219, 43, 55, -120,166,153,212, 94,148, 54, 95, 38,171,159,117,155,231,180, 82,182, 31,126, 93,253, 54, 93,175,224, 90,160,192,223, 45,127,230, -121, 32,119,250, 79, 63,122,250,167,255,104, 49, 14, 41,232,230,210,201, 33, 17,176, 0, 10, 8,120, 57, 0, 17, 16, 28, 64, 38, -218,181,216, 78, 75,205,137,223,252,218,202, 91,126,244,211,235,131,236,122, 53,233,196,137, 19,199,142, 29, 59,120,240,224, 61, -247,220,243,156,170, 44,142, 29, 59,118,207, 61,247, 92,125, 73,188,227,199,143, 95,223,143,239,253, 12,189,207, 52,219,240,179, - 94,194,139,210,230,235, 14,111,226, 95,253, 74,253,178,233,215, 50, 26, 43, 80,224,239, 56,240,186, 31,241,173,183, 53,126,245, -253,123,119, 55, 35,155,170, 53, 8, 49,163, 33,240,115,144,109,248, 41,224, 64,173, 64,226, 56,151, 32,192,174,131,127,249, 91, -243, 31,251,252,188,168,190,212, 58,104,211,214,216,100,225,118,187,253,156,164,232,115,133,247, 82, 54,167,116,247, 54,197, 75, -188,205, 47, 80,207,251,233,225, 46,101,255, 98, 9,167, 2, 5, 94, 76,126, 7,128,122,204,223,243,154,169,127,247,214, 29,123, - 38, 66, 80, 84, 85, 65,148,141, 83,145, 2,169, 34, 2, 32,172,140,220,207,127,118,233, 87,191,184,178,212,201,138,155, 81,160, - 64,129, 2, 47,117,126,247,136, 2,186,117, 75,252,221,223, 54,249,250,217,218,246,106, 48, 17, 81,200,152, 59,232,228,238,226, -192,126,229,252,224, 55,190,188,246,232,194,168,159,186,226, 54, 20, 40, 80,160,192,203,137,223, 47,133, 97, 52,132, 76, 32, 10, -214,233,101, 31, 73, 21, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, - 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 10, 20, 40, 80,160, 64, -129, 2, 5, 10, 20, 40, 80,160, 64,129, 2, 5, 94,210,192, 95,251, 79, 63,139,136, 10, 10, 0,196, 12, 0, 42, 14,156, 34, 17, - 18, 40, 16, 51, 33,249, 73,125,129,144, 56, 96, 85, 69, 96, 4, 61, 51,247,196,142,221,183,133, 70,156, 40, 17, 2,224,120,186, - 3, 68, 36, 12, 16, 68, 65, 65, 1, 8, 9,213,137, 10, 16, 19, 33, 18, 83, 16,176,168,130,128, 56, 0, 68, 17, 5, 64, 80,161, -144, 9, 8, 17, 1,128, 8, 0, 64, 65, 85,149, 0,137,200, 47,229, 65,196,164, 0,140,170,126,238, 50, 4,192, 63,254,227, 63, - 68,228, 59,110,191,157,131, 32,207,242,213,165,149, 71, 30,253,250, 91,247,223,247,138,217,157,189,110,207,230, 73, 20,242,176, -211, 10,234,211,146,182, 79,125,227,113, 83, 42,205, 76, 54, 75,149, 74, 20,213, 76, 16, 0,177,225, 0, 16, 17, 65, 69, 20, 80, -213, 17, 32, 16, 17, 50, 17,249,150,136,106,200, 70, 17, 1, 9,145, 16,192, 57,135, 8,132,172,170,128, 10,138, 64, 8,170,227, - 93,209,128,138,170, 32, 32, 16, 1,168, 10,154,128, 1, 65, 69,129, 16, 1,197, 58,100, 32,242,157, 47,227,213,175, 20, 1,148, -153, 0, 64, 68, 1, 65, 68, 12, 27, 17,241, 55, 67, 68, 16, 20, 56, 64, 0, 16, 17, 16,102, 3,128, 72,136,196,190, 91, 69,133, -201,119, 38,178, 9,178,100,216, 91, 62,195, 1, 2, 32, 34, 35, 2, 41, 8, 0,179, 65, 4, 68, 84,113, 20, 84,103,118,223,201, -153, 77, 71,157,184, 84, 62,127,254,169,143,254,198,111,221,126,211, 45,255,232, 61,111,183, 20, 0,200,185, 39, 30,255,210, 87, -190, 30, 69, 49, 51,155,176, 92,153,217,158,165, 25, 56,235, 40, 88, 56,253,167,147,245,106,127, 48, 58,249,245,111,158, 91, 90, - 94, 94,105,125,231,189,111,189,113,215,246, 44, 3,201, 71,128, 65,181,222,116,105, 47, 27, 14, 70,253,118, 62,232, 13,250, 93, - 50, 1, 33,213,227,176, 62, 57, 83,106,110,205,179, 97,169, 62,185,117,231,238,184, 62,211,235,246,178,164,189,248,248, 35,147, - 55,220, 82,111,110,201,211, 81,142, 1, 42,113, 96,108, 50, 4, 2,198, 64,156,123,234,236, 19, 54,205,235, 19,205, 60,233,238, -188,249,149,103, 31,253,115,142,167, 9,176,212,104,100,163, 78, 92,155, 82, 7,105,178, 94,170, 76,219, 60, 27, 13, 86, 84, 41, -207,242, 56, 10, 43,213,134, 42, 36,233,168,191,190, 58,189,101,199,212,150, 27, 91,139, 79,214,167,182,128, 41,247, 59,237, 97, -119, 49, 8,171, 38,174, 72,214,103,138, 52, 44, 25,162,128,176, 92,171,138, 98, 80, 42,167,105,154,245,123,105,127,173, 62,181, - 83,144,122,107, 23, 37, 89,189,241,206,123,151,151,230,215,151, 23,226,250, 36, 37,235,253,238,122, 20,150,219, 43,103, 51, 8, - 92,150,199, 1, 89,103, 47,182,214, 74, 97, 92, 42, 87, 75,113, 84, 42, 87, 37, 29,118,251,157,229,213,229, 90,125,154, 77, 88, -171, 55, 75, 81, 9, 8, 91,171, 23, 70,195, 81,169, 82, 37, 10,211, 81,223, 58,155,166,105,173, 20,246, 7, 73,154,167,132, 80, -137,203,173, 78,123,190,213,189,101,231, 13,185,211, 48, 14, 80,236,160,183, 94,105,108,137,163,184, 18, 5, 97, 64,231, 46,156, -153,158,217,179,103,239,206,187,239,186,145, 56, 84,231,128, 0, 65, 85, 68,129, 17, 25, 85,129, 72, 84, 81, 1, 8, 21, 16, 0, -196, 9,160,127,213, 16, 20, 84,133,152, 68,198,239, 34, 48,177, 56,107,237,210,202, 74,183, 55,152,221,189,171, 86,141, 71,105, -134,200, 34, 0,168,254,229, 21, 43, 0, 66,102, 99,133, 9, 79, 49, 8,168, 42,128, 42,142, 0, 20,157, 8,182, 59,163, 97,202, -149,198, 68,100,176,219, 94, 95, 90, 90, 88, 88, 90, 88,106,181, 91,157,206,210,234, 90,175, 63,108, 54,106,111,187,119,223, 91, - 95,115, 39, 3, 38, 22, 98, 34,206,243,245,229,149,211,243, 11, 75,235,189, 97,150, 85,226,232,214, 87,220,186,180,116, 49, 8, - 77,125, 98,226,179,127,246,149,225,250,122, 16,176,128,160,106, 41, 42, 49, 83, 64,236,223, 14, 98, 66,164,241,178, 64,136,153, -205, 73, 33, 10, 66,244,196,194,100,136, 50, 85, 98, 69, 7,169,181,224, 68, 17, 17,193,138,250, 21,138,156,170, 1, 0, 32, 1, - 5, 39,192, 8,170, 0, 72,136, 78,197, 40, 90,223,153, 42,130,224, 15, 11, 10,162,162,138,136,170, 10,170,160, 42,160,106, 85, -213,119,183, 40, 17,170,170, 83,145, 60, 87, 28,243, 36, 17, 89, 85, 84, 84,155,131,225,128, 13, 33,137,191, 87, 10,162, 0, 0, -170,234, 84, 13, 32, 16, 32, 5,170,150,144, 80, 53,181,150,223,247,206,251, 0, 0,136,136, 8,128, 84,101,124, 39,252,196,237, -128, 72,196,200, 68, 68,136,136, 36,162,136, 4, 32, 65, 20,187, 44, 31,229,174, 18,135,136, 8,160, 72,228,159, 8, 66, 4,103, -253,109,222,156,241, 23, 61,243,248, 69, 86, 9,124,204, 80, 5, 80,117,170,132, 12,160, 0,168, 34,200,138,254, 81, 0, 20, 21, - 2, 64, 0, 1, 85, 81, 64, 36,100, 98, 32, 30, 31, 93, 65, 84,149,144,171,149,232,137, 39, 79, 69, 81, 28, 71,113,169, 92, 99, - 86,205,221, 99, 79,204,221, 52,123, 83, 41, 10,179, 44, 87,117,198, 4,189,246,218,214,157,123,187,157,214, 43, 95,253,218,116, -212,182, 86,226,184,132, 48,110, 63, 19,161,162,162, 2, 34, 1, 9, 40, 51, 35,145,168, 16,177,170, 0,168,147, 28, 0, 16, 61, -227, 3,109,206,105,239,251, 12, 55, 46,118,131, 88,193, 7, 13, 66, 85, 5, 68, 31, 47, 1, 17,145, 64, 55, 58,200, 47,133, 66, -128, 68, 32,160,128,160, 74,100, 68, 28,136, 2,145, 63,220,198, 74, 85,168, 10, 2, 72, 68,104,124, 44, 65, 68, 26,119, 25, 34, -168,128, 2, 33,108, 68, 68,255,156, 64, 50, 26,217,108,157,145, 13,177, 95, 97, 11, 8, 8, 9,137, 1, 84, 85, 65,121,122,247, -157, 81, 24, 38,221,245, 40, 10,207,156, 57,245,235, 31,251,237, 93, 91,183,191,247, 31,190, 27,152, 84,164,181,188,252,231,143, - 60, 66, 28, 16,170,137,171,113,117,194,162, 81,155, 16, 7,253, 94,203, 37,173, 90,173,210,234,116,206,206, 47,173,247, 6, 86, -244,238, 87,221, 19,154,192, 57,196,160,100,216,128,138, 36,253,124,212,149,100, 96,243, 52,205, 70,164, 84,138,194,184, 84,226, - 40,140,202, 77, 19, 87,131,184,188,101,251, 30, 1,114,249, 8,197,153,210, 68,154, 75,169, 54, 81,153,152,177,121, 38, 2,214, - 14, 93, 58,234,247,122, 28,132,163,193, 96,148,164, 54,235,149,171,141, 81,123, 65, 52, 76, 83,225, 48, 76,211,174,179,185, 29, -117,131,168,130, 38, 72,134,189,106,185, 62,234,175, 85, 39,111, 8,131,168,209,168,247,147, 97, 58,236,130,104,169, 20,113, 80, - 17,117,149,106,189,213, 90,234,182,214, 56,136, 20,205,168,187,170,192, 2,129, 77,147,184, 62,157, 14, 90,206, 57,201, 19, 73, - 7, 65, 92,149, 60, 5,103,173,205, 41, 44, 5, 97, 20,150, 75, 0,184,182, 54, 63, 49,181, 51, 46, 87,134,189,181, 82,101,130, -216,164,131,158, 2,169, 16, 51,165, 89,110, 76, 16,132, 37, 1,100, 14, 74,149,186, 81, 71, 28,168,138, 49, 81, 80,106, 32,134, - 6,181,223,111, 35,234,176,191,110,130,160, 55, 24, 84,170, 13,155,166,195, 97, 15,213, 41,106,218,107,213,170, 85,231, 92, 57, -142, 50, 7, 97, 16,154,192,156,185,120,177, 81, 46,151,194,176, 63, 24,176, 9, 41, 8,243, 44, 47,151, 74,185,179,204,145,178, -185,184,220, 22,167,211,205, 32, 42,197,226, 28, 0,224,198, 19, 53,214, 25,254,209, 85, 20, 0, 5, 69, 66,245,143, 19, 17,160, -248, 7,218,115, 99, 16, 24,201,178,133,149,181,165,149,149,114,165,182,103,215,142, 48, 52,137,181,168,136,104,112, 44, 19, 16, - 0,148,188,222, 67,242,175, 4, 33,232,248, 13, 65, 85, 54,104,157,116,250, 89,187,151,115,216,152,156,108,228, 73,178,180, 56, -127,230,236,217,243, 11,243,243, 43,203, 11,171,171, 23, 22,151,197,201,235,191,253, 85,239,127,231,155, 94,115,199, 77,121,238, - 64, 48, 86, 29,173,183,230,230,206, 62,121, 97,241, 66,187,147,165,233, 77,123,118,236,220,179,253,212,249,165,246,218,170,137, -227, 47,127,237, 27,118, 56,156,168,149, 9,137, 80, 17, 41, 10,130,128, 13, 51,177, 33, 38, 50, 72, 10,162, 10, 68, 8, 8,108, -152,144,152,199,175,108, 16, 4,128, 10,170,206, 58, 81,101, 64, 68,100, 36, 11,234,223,108, 43, 46,100, 6, 5, 64, 34, 34, 32, - 96, 68, 5, 4, 66, 66, 84, 65,167,162,158, 8,136, 16, 81, 0, 16, 20, 17,212, 33, 49, 58,209,192,235, 60, 31, 44, 1,157,138, -136,128,122,137, 12, 10,170,136, 42, 96,216, 43, 72, 97, 50, 72, 8, 28, 48, 97,192, 6,137, 8, 16,145,156,232, 38,185,123, 70, - 17, 4, 20, 5, 0, 70,200, 69,197, 57,126,223,187,254, 39,212,113,200, 5, 80, 68, 64,175, 64, 17,152,145,136,144,144,153, 24, -128,189,192, 84,117, 42,128,164,162,113, 20,174,175,175, 55,106, 53,245,234, 85, 21, 68, 0,199,203,240,161,103,116, 4, 68,127, - 91,217,207,102, 70, 64,204, 4,136,160,160,128,170,128, 62,100,160,162, 1, 66, 98, 34, 5, 29,255,217,247, 15, 2, 35,161,215, -209,232,167, 23, 70, 85,113,155, 15,140, 72,173,222, 28, 14,215,207,158,159,159,153,158, 12,194, 40, 12,227,128,105,121,117,105, -165,221,190,101,118,150, 77,152,102,137, 97, 21,235,150, 47,206,183,214, 86,227, 82,165, 86,175,181,150,150,194, 40, 10,163, 24, - 20,208,160,205,114, 32, 70, 68, 80, 96, 66, 36, 82, 21, 81, 69, 0,242,193, 14, 17, 0, 85,213, 57, 71, 72,134,140,234, 95, 91, -193,196,175, 92,130,138, 0, 56, 30,189,160,128,167, 99, 54, 60,238, 17, 66, 0, 98, 3,226, 16, 4, 1, 16,198,225,205,223, 5, -242,157, 35, 78,156, 83, 66,102, 6,244,239, 36,136,117,234, 28,248, 67, 40,128,128, 63,170,170,250, 72, 2,170,136, 24, 4,129, -138, 40, 0, 17, 34,168,130, 34, 81, 50,236, 99, 62, 98,230,113,115,137, 16, 9,136,252, 46,106,221,150,155,239,174, 77,111, 77, -187,157,184, 84,106, 47, 47,252,234,127,251,127,166, 39,183,124,255, 63,254,158,168, 90,177,105,154,141,250, 95,251,234, 87,251, - 35, 65, 73,140,137,195,198, 54,113, 78,236,208, 4, 33, 71,141,108,212, 69, 55, 48, 97,184,178,210, 89,110,181, 58,189, 1, 51, -237,221,121, 3, 33,170, 83,151,245, 13, 89,100,182,195,110, 54,234, 57,235, 68, 1,208, 88,200, 9,164, 82,169, 84, 38,102, 40, -142, 37, 79,103,118,236,169,212, 39, 70,163, 65,150, 12,109,110, 43,149, 74,158,229, 46,205,179, 65, 91,213,165,105, 58, 28, 12, -109,150,138,112,181,214, 92, 95, 95, 25,101,121, 41, 10, 89, 53,174,214, 21,201, 58,167,249, 96,106,235,174,184,212, 40,215,182, - 84, 27,117,176,214, 2, 77, 52,106,224,146,110,167, 29,134, 37,151,117,178, 36,113,162,245,230, 13,154,117,234,141,153,250,228, -214,114,101,178,215,237,244, 58,173, 82,181,234,210, 30,135, 37,230, 48, 46,149, 64, 44,184,212, 10,113, 16, 77,109,221,102,109, -194, 38, 6,213,220,102,121, 50,140,203,141,124,212,203,179,145,130, 10, 26,114, 25,169,205, 83, 91,111, 78,170,115,134, 96,216, -239, 68,113,196,128, 10,129, 2,132, 6,195, 48,136,162, 50, 32,244, 59,171, 89, 50, 98,142,242,108,148,140,146, 36, 79, 66, 38, - 80, 65, 19,137,203, 42,213,102,183,211, 14,131,208,230,163,208, 68,195,225, 42, 19, 87,234, 91,157, 56, 0,104, 78,204, 12, 58, -171,195, 36,153,158,168, 59,224,167,150,230, 43, 97, 80,138, 75, 66,134,208,168,230, 44,163,114, 84,142, 75, 85,112,110,152,246, -215, 91,221,126, 47,159,222, 58, 83, 45, 71,206,137, 87,216,160,168, 99,110, 34, 0,135,196,176,241,246,146, 87, 88,170,170,138, - 4, 32, 66,204,113, 20,175,119,218,143,157,122,178, 92,174,222,120,195,182,122,173,230,156, 19, 81, 38,220,144, 32, 94, 23,145, - 31,176,250, 87,193,203, 23, 79, 29, 8,192,170,204,212, 29,142,150, 91, 35, 52,213,102,115, 75, 28, 6,107,203, 75,231,206, 62, -117,238,194,133,249,149,165,133,149,181,243, 23,151, 47,182,218,187,183,111,255,193, 3,239,124,243,190, 87,150, 74,129,115, 88, -162,208,246,251,231,207,158, 63,125,126,241,252,234,234,210,122,103,215, 84,179,210,168,174,180,187,103,231, 23, 83, 7, 23,230, - 23, 58,173,142, 1,136,195,208, 4, 33, 32,196, 65, 96, 56,100, 38, 66, 12, 67, 19, 48, 41,128, 19, 21, 81, 66, 54, 68,162,202, - 64,228, 25, 80, 20,145, 25, 48,119, 78, 65, 81, 1, 9, 68, 84, 65, 17,209,137, 42, 40, 35, 6, 76,138, 72,136, 28, 50, 18,140, - 5, 58,128, 1,204,124,199,142,165, 60, 24, 67,168, 32, 72,128,104, 16, 77,200,170,200, 32, 2,154,139, 3, 81, 1,112, 42, 34, -206, 83,171, 31,241, 19, 49, 17, 25, 98, 50, 20,112, 96, 69,141, 97, 67,100,152, 13,179, 42, 16, 42, 18,139, 8,129, 0, 49, 18, - 18,146, 10,228,206, 50,141, 3,182,170, 24, 54,204,204,239,123,199,219, 97, 60, 18,131,177,226, 6, 37, 19, 4,198,248,136,198, -134,193, 9,120, 37, 10, 4, 4,226,172,181, 14, 85,136,185,223,235,155,184,204, 8, 0,130,224,159, 27, 68,246,244, 1,140, 36, -170, 0,200,228,131,186, 23,178,140, 4, 27, 93,131, 72, 34, 0, 42, 74, 62, 96, 17, 16, 26, 68,149,141, 1,161, 23, 15, 0,180, - 33, 7, 20, 17,101, 99,180,227, 7, 1, 68,192,200, 91,183,109,123,242,137,199,243,204,150, 75,113, 92, 46, 9, 96,100,130, 71, - 31,123, 98,203,246,173, 19,213,146,181,226,108, 90, 42,149, 69,225,214, 59,247, 45,159, 63, 85,159,190, 65, 37, 3, 64, 14, 2, - 31,184,136,141,120, 59, 9, 17, 80, 65,188, 26,182, 72, 6, 25,199, 44,140, 74, 68, 76, 44, 27, 61,182,209,111,227, 39,218,143, -154,254,234, 15, 0, 72,196, 76,168, 64,204,108, 80,196,249,105,241,253,184, 4,199, 99, 69,221, 60,154,202,120, 81, 89,102, 67, -190,211, 12, 35, 0, 56,177,214,137,115, 27,177, 6,137,201, 71, 56,220,240,143,144,136, 0,114,103,137,152, 3,163, 10,158,208, -137, 77,210,235,160,228,136, 6,213, 1, 18,140, 3,230,248,133,172,205,236,153,190, 97,214,165, 35, 86, 73,250,173,143,254, 95, -191,210, 25, 6,141, 90,101,239,238, 27, 3, 68,100, 60,117,250,236,252,194, 60,177, 33,142,130,202,132, 41, 85, 76, 84, 42,215, - 38,156,160,230,233,104,208, 10, 88, 16, 97,109,173,213,234,244, 46,174,181,234,181,230,237,183,239, 19,117, 78, 53, 42,149, 53, - 25,216,100,228,172,213, 52,205,179, 20, 0, 6,163, 62,169, 76,214,155, 81, 41, 14,227, 42, 25, 14, 74,181,169,237,187,243,100, -221, 41, 6, 97, 20, 70, 85,116,169, 40,167,121, 46, 46, 43,149,106,113,173, 97,147,172,183,190,140, 0,234,178,213,165,179, 38, - 44, 87,234,211, 78, 68, 57,204,211,132, 77, 24,215,167,243, 65, 59,205,210, 81, 58, 92, 57,243,141,245,181,243,113, 84,179, 18, -228, 14, 1,145,195, 88, 53, 74, 6, 23,227,114,173, 54, 57,213,235,180,173,115,181,137,105,219, 91,238,244, 90, 86,141,164,131, -204,230,165, 90, 51, 25,116,203,113,212,152,220, 34,206,230,142,103,182,110,109,135,221,156,195, 0, 0, 32, 0, 73, 68, 65, 84, - 76, 52,146, 68,114,155, 57,155,102,105,194, 65, 69, 80, 7,221, 69,226,216, 57, 27, 85, 38,243,100,148, 14,215, 43,181,201, 60, -207, 59,171, 23,114,135, 96, 71, 1, 75,107,109, 9,213,142,146,129,136, 84,106,205,100,208, 3,149, 70,163,153, 99, 48, 28,116, - 13,155, 52, 29,245,250, 45, 22,113,105,127,199,182, 93,136,148,228,163, 60,207, 51,155, 84,171,205,193,104,128, 92, 98, 14, 76, - 16, 34, 82,146,101,129,230,235,157,149, 52,179, 97,104, 34, 70,235,116,173,215,223,218,108, 24,102, 0,137,226, 74,110,109,154, - 14,146,204, 13, 71,125, 43, 46,205,157,117, 48, 24,216,230,100, 57, 14, 3,231, 28,130,215, 25, 8, 2, 72,128,202, 48,142,248, -168,254,213, 27, 51, 52, 42, 40, 41,128,218, 51,103, 46,156,191,184,242,138, 91,111,218, 50, 53,229, 60,245,143,227,129, 31, 2, -226, 37,250,157, 0,189,139, 73, 0,160,214,191,170, 64,164, 78,117,173, 51,234, 12, 97,106,122, 71,173, 90, 73,211,222,133,243, -103,231,230, 78,157, 89, 88, 88,105,183, 47, 44, 46,207,175,172,146,194,254,239,216,247,207,191,235,109,219,166,235,163,204, 6, - 28, 5, 78,151, 23,206, 61,113,234,236,133,139, 43, 43,189,126,104,176, 92,105,128,100,213,137,122,185, 57,245,232,163, 79, 12, - 59,221,106, 96,162, 32, 48, 76,204,108,115, 9, 2,102,102, 68, 98,102, 34,227, 45, 40,113, 42,224,226,208, 56, 21, 43, 98,152, - 17,192, 57, 29,123, 54, 0, 86,196,233,248,229,205,157, 24, 68, 67,228, 64, 12,177, 97, 34,196, 52,119,158,169, 68,196, 58, 33, - 68, 4,117,170, 78, 53, 52,108, 69, 64, 33, 12,195, 49,161, 50, 25, 0, 81,151, 89, 69, 68, 66,112, 0, 78, 21, 68,157,130,147, - 92,192, 33,176, 85, 33, 0,246,236, 8, 24, 48, 5, 97, 96,136, 1,212, 95,144,215,216, 12,168, 48,214,142, 62,112, 50, 27,111, - 18, 8, 64, 96,140,122,233, 41, 26,135,134,131,192, 9,240,123,223,113,223,216, 92, 22, 65,130,141,155,164,134, 25,112, 44, 94, - 9,128,252,240, 74, 21, 8, 65,145, 9,189,178, 71, 80,107, 53,142, 3, 80,245,227, 33, 64,224,192,120, 5,138,222, 46, 71,218, - 20,244,222,121,242, 79, 18, 40, 48, 50,160, 23,181, 72,136,228,159, 54,111, 22,168,122, 67,130,152, 65,197,135,181, 13, 79, 70, -253, 14,222,230, 70, 5, 64,116,206,197,229,122,189, 94,254,198, 55,191, 81, 10,130,114,165, 86,169, 85,153,120,212,239, 45,174, -180,111,153,221,131, 72, 54,203,131, 48,136,194,112,216,105, 47, 46,204, 39,163, 81,158, 39, 8, 96, 8,152, 13,155,144, 77, 64, -128, 68,232, 31,111,221,112,150, 0,209,199, 48,167, 22,145, 84, 81, 68, 54, 28,152,191,162,112,220, 92,236, 27, 55,199,165,127, -165,169, 9, 73, 65, 92, 46,168,136,164, 10, 34, 86,253,181,251,211,121, 59, 30, 54,188, 79,239,174, 40, 32, 19, 3, 8, 56, 21, - 1,113, 34, 54, 23,113,196,134,216,248,213,176,136, 88, 21, 20,156,151,235,158,184,253,176,102,220, 70, 1, 21,151, 12,123, 6, -199,207, 49, 18, 27, 10, 17,141, 42,168,216,184, 62,179,253, 21,119,129, 2,137, 14,150,231, 63,246,177,227,167, 23,123,181, 74, -240,198,183,190,109,235,238,189,221, 78,239,236,169,199,158, 58,115,142, 20, 24,208,148,106, 65, 24, 7, 81, 37, 46,199, 42,249, -176,125,209,196,213, 78,235, 66,185, 18,165,163,100,105,101,109, 97,117,173,211,237,238,216,190,103,251,182,157,233,160, 31,134, -229, 16,193, 89,135,234,210, 65, 43, 75,211,209,176,215, 77,134, 12, 84, 45,149,227, 74,149, 76,152, 91, 75,200,113,185, 86,169, -213,243,204,137,179, 42,214,138,154, 32, 30,246,186,136, 80,105,212, 7, 73, 26,129, 29,117, 86,170,245, 45,128, 98, 51,187,184, -116, 33,233,174,148,171,117, 0, 81, 69, 33,204,135,189,168, 58,193, 65, 28, 6,209,176,215,141,234, 83,229,198,142,116,216,234, -183, 46, 84,106,147,229, 40,242,189,137,170,245,230,118,231, 50, 52,113,169,210,212,100, 61,201,109, 46,106, 45, 12,134,157, 45, -219,111,118,105,191,187,190,108, 93,206,224, 64,105,148,102, 81,104,106,245, 90,150,231,221,245,238,250,197,179,206, 41, 71, 97, - 88,170, 5, 38, 18, 65, 64,206,135, 93, 50, 6, 36, 67,132,184, 54,137, 20,172,175,183,152,184, 20,135,195, 52, 31,244, 59, 78, -185, 90,107,168,104,167,223, 67,100, 54, 36, 54, 3, 98,102, 42,197,241, 96,208,171, 53,102,144,204,182,173,219, 20, 33, 79,179, -204,201,112, 56, 66,144, 70,189, 97, 76, 56, 74, 6, 32, 46, 8,130,254,112, 96, 76, 96,202,141, 82,185, 26,134, 49,161, 76, 78, - 52, 3,198, 51, 75, 75,219, 38,167, 26,149,154,147, 60,179,208,172, 79,148,194,184,189,222,177,249, 8, 68, 85,165,215,237,166, - 9, 77,111,105, 6,129, 81,245, 47, 28,123,181,228,173, 61,245,146, 30, 1,145, 84, 69, 69, 67,195, 8,186,214, 90, 95, 88, 92, -142, 74,165,219,110,190, 41,142,163, 36, 77,199, 82,125, 60,220,100, 29, 15, 92,121, 28, 22, 54,172, 73,239, 37, 2, 41, 19,170, -213,222, 48, 91,235,102, 24, 84,167,183,108, 53, 42, 75,243,103,159,124,226,241,185,179,103,207, 95, 92,153,191,184,124,225,226, -106,111, 56,250,182, 59,110,249,167,255,224, 45,111,125,205,237,136,144, 91,140, 49,200, 58,235,231,159, 58,123,234,220,252, 66, -187, 51,204,242,157, 91, 38,103,103,247, 92, 28, 12,203, 1,141, 20, 31,127,236,113,116,110,178, 86, 54,204, 94,246, 24,166, 48, - 32,102, 70,111, 60, 51,251, 87,204,191, 28,132, 36,130, 68, 68, 8, 4,128,136,134, 9, 16,157, 83, 1, 53,204, 68, 64, 48, 30, - 80, 59,167,214,251,242, 4,162,154,229, 22, 17, 66, 99,156,138,127, 87,189,233,234, 37,178,248, 33, 56, 98,238,156, 33, 34, 38, -231,156, 3, 5,192,192, 24, 39, 98,197,121, 18,244, 1,144,201,243, 40, 8,248,180, 29, 1,104,192, 28, 4, 6, 20, 55, 50,149, - 28, 4, 20, 50, 17,170, 19, 0, 16, 5,197, 77,165,143,232, 0, 8,125, 56, 5,167,160,162,129, 33, 85, 33, 5, 36,230,127,244, -174,119,168,247,103,136,200, 4,155, 41,149,141,241, 62,123, 99,192,223, 46, 5,240,222,207, 6,173, 49, 7,220,239,173, 87,170, - 13, 80,245,140, 14, 10, 99,226,247,214, 47,249, 61, 85,252,144,109, 60,244, 3, 21,128,177, 5, 70,136, 4, 42,136, 27, 25, 24, - 68,244, 97, 47, 87,111, 85,123,189, 12, 62, 59,233,221, 28, 81, 64,244,118,183,110, 12, 3,157,181,147,147,211,237,214,234,242, -234, 90,173, 82, 46, 87,170,204, 20, 24,243,216,227,143, 85, 27,147, 55,238,216,154, 57, 7, 2, 81, 92,177, 89, 62,179,107, 54, -224, 44,119,102,106,122, 50,207,109, 16,132,132, 62, 70, 10,241,216,178, 66, 4, 34, 70,246,193, 10, 64,201, 41, 24, 68, 25,143, -120,132, 48, 32, 98, 80,241,254,137,239, 52,192,205,120,201, 62,206,249,102,142,169,159,128,188, 85,165, 58,142, 89, 10,200,132, - 0,226, 28,168, 2, 1,121,107,104,156, 45, 69, 0, 32, 38,102, 68, 0, 17,113,226,136, 24, 84,153, 13, 25,218, 48, 6,145,144, -125,148,245,105, 15, 68, 32, 68,239,243, 33, 34, 18,247,219,171,225,198,168,140, 40, 64, 38, 4,117,154,113, 84,219,118,203,171, -131, 48,178,105,230,214,150, 63,241,241,143,159, 94,234,139,164,111,126,227, 27, 95,255,166, 55,148,235,213,198,244,214,139, 75, -173,115,231,207, 90,129,106,115,154,163, 82, 84,169, 85,170,117, 4,155,142, 44,133,161,181,210,107,159,175,196,241,112,152, 44, -174,172, 46,174,182, 70,163,116,215,142, 27, 38,235, 21, 70, 52,140,234,114,176, 35,181, 46, 29, 14, 20,100,100,109, 16,196, 17, -101,108, 98, 54, 97, 20,132,104, 2, 11,184,235,230, 59, 65,243,206,234, 98, 80,174, 26,194,225,160, 99, 5,109, 54, 90, 91,248, -134, 40, 75,150,166,195, 97,111,125,129, 76, 56, 88,111,165,121, 54, 74,134, 72,152, 13,215,171, 91,118,187, 44, 69, 17, 99, 2, -210, 44,239, 47,133, 81,153, 3,195,204, 0, 24, 87,234, 89,210, 35, 50,189,238, 50, 82, 4, 8,121,210, 17, 53, 4, 82, 41,149, -243,108,148, 12,211, 44,207, 93, 62, 10,163,210,196,196,180, 9,226,209,168,175, 88, 14,194,106, 50,236,165,217, 40,138, 99,230, -192,144,102,253,245, 81,103, 69, 57,230, 48,172, 53,102, 80,173,203, 50, 69,142, 74,213,128,169, 90,155,112,214,149, 43,205,133, -167,254, 98,148, 90,235,136, 56, 8, 48, 15,163,138,136, 41,197,209, 68,173, 82, 41,151,147, 65,183, 62, 49, 57, 92, 95, 67, 98, - 39,106,179, 52,183,153, 9,202,229, 82, 57,177,121, 72, 48, 53, 61,221,106,173, 24,142, 65, 93,146,165, 54,203, 84,115, 68, 10, -194, 88, 92, 30, 6, 65,150,165,113, 24, 6,198, 48,106, 24,132, 83,141,250,182,169,201,213,110,114,126,249,226,100,204, 32,106, - 85,135,131, 30,100,189,173, 83,211,232,243,120, 28,177, 9, 49,136,114, 87,174, 86, 98, 99,198,111,178,110, 26, 40,227,247,147, -198, 73, 40,226, 40, 14, 7,253,193,169,185,115, 74,188,107,215,141,147,205, 9, 17,235,114, 7,160, 27,254,224,216,132,245, 98, - 98,156,101, 28,219,194,226, 77, 25,131, 38, 8, 76,146,229, 23,219,195, 84,131,122,115,178, 26,151, 6,157,181,167,158, 58,245, -196,169,185,133,165,139,139,173,181,133,229,181,139,107,237,102,163,254, 63,191,243,245,239,121,203,190, 70,181,146, 58, 12, 32, -160,204, 46,205, 95, 56,117,230,236,185,229,181,214,160, 95,171, 84, 69, 92,185, 86, 90,233,245,207, 47,172,174, 44,175,182, 86, -214, 2,128, 74, 28, 25, 34, 64, 96, 98,226,141, 60, 31, 18, 19,179, 23,107,234,243, 3, 62,235,228, 95,152,141,215, 6, 1, 0, -172,170, 55,153,144, 8,144, 17, 8, 64,145, 24, 81,153,144,137, 5, 4, 20,162, 40, 0,192, 92, 28, 51, 33,146,119,108, 4,192, -187,231,138,184,145, 35,220, 40, 6,217,176, 41,116, 60,224,166,141, 88,224,101,234, 56,123,103,144,198,255, 37,242, 14, 7,143, -115,116,158, 31, 52,117,146,139, 50,161, 32, 26, 66,227,229, 49, 34, 0,133, 99,234, 0, 98, 10, 9,137,216,137, 6, 65,200,196, -162,150,223,251,142,183,143,125, 50, 4,220, 48,206, 65,198,170,148, 55, 92,229,177, 57,226, 51,162,155,166, 4, 42, 34, 15, 7, - 61, 54,113,104, 0, 1, 68, 20, 69,124,171, 5, 4, 54, 92, 94,208, 49, 83,163, 2, 33, 91,117,228, 19,249,164,170, 2, 4, 98, -197, 87,134, 16, 17,141,203, 80, 16, 60,243,171,194,152, 98, 69,193,249,203, 86, 4, 2, 26, 27,220,227,102,131, 19, 33,196,137, -137,198, 19,167, 79,161, 72,169, 82, 46,151,171, 76,152, 13, 71, 95,125,236,177, 87,222,118,107, 28, 71,105, 50, 10,194, 32, 10, - 3,103,211,106,163, 1,214,166,201,160,223, 27,148, 75, 21,175, 54,140, 49,162, 0,170, 76,140, 72,161, 9, 68,156, 56,241, 73, - 41, 20, 21, 34, 0,144,113, 66, 66, 1,193,223, 16,177, 66, 76,190,215, 21,198,105, 21, 34,162,192,120,175,105, 51,245,170, 0, -136,204, 76, 50, 30,201, 16,128,138,138,175,101,241,105, 47,241, 67, 92, 39, 62,241,139, 8,227, 82, 33, 34, 95,238, 98,130,192, -191, 98,226,159, 34, 34,255,110,138,147,205, 78,247,133, 73, 68,172, 0, 78, 32, 31,245,194,136, 1,124,130, 6,144,200,103,211, -182,222,116,119,185, 57, 9, 78,121,208, 61,241,251,191,249,165,111,158, 31,141,122,187,183,207,188,251, 29,239, 82, 21,113,182, -189,178,182,190,222,109,181, 90,253, 4, 71,195, 94,169, 82,155,152,154, 98,195,171,243,231,195, 74, 13,208,228,217, 48, 29,172, -150,163,184,221,107, 47,175,182,151,219,107,105, 46,175,188,245,206,201,122, 29,216, 16,128, 56,103,140,201,134, 61, 39,214, 58, - 59, 24,142,226, 32, 36, 67,128, 32, 78,234, 19,147,200, 84,159,218,182,231,182,187, 71,217, 72,213,152, 40, 90,159, 63,213,239, -172,148,203, 19, 6, 50, 75,241,212,204,158,193,250,121,144, 60,119,138, 20, 50,201, 83, 79, 61, 90, 46, 55, 57,136, 59,107,139, -245,122, 3,145,109,154, 40,134, 89,158,244, 86,207, 83,121, 26,212,181, 46,206,169,106, 24,149,227,250, 84,185, 82,203, 83,171, -224, 68,209, 57, 33,198, 52, 25,170, 27,218,204, 82, 80,234,117, 91,204,198, 89, 48, 65, 60,236, 46, 83, 80,206, 70,189,238,250, - 50, 32,131, 9,202,229,114, 58,236,215, 38,166,152,163, 81,210, 47,215,183,132, 97, 57, 10, 40, 27,118, 22,231,159,234,247, 59, -131,126,127,189,211,238, 15,186,173,245,214, 90,123,117,109,117,117,117,125,173,223,107,239,217,123, 83,167,219, 94,239,180, 29, - 25,118,233,206, 93, 55,132, 38, 72,178, 52, 10, 34, 5,169,213,103,234,181,106,183, 61,223,104,238,184,253,214, 91,115,197, 86, -167, 19,134,229,192, 48,146,233,172,175,245,187,107,166,220, 8, 56, 32,208,220, 89, 85,137,152, 12, 7,131,126,143, 66, 3,128, - 73,150,161,205,183, 76, 78,139,234, 68,173,218,234, 14, 46,172,172, 6,154, 76,212, 27, 1,135,163,209, 48,142, 99, 67, 88,174, -212,146,209, 16, 9, 37, 79,147,100,100,169, 50, 81, 11, 66, 67, 99, 5,129,227, 97,191, 31,119,170, 2, 6,204, 68, 43,203, 11, -115,103, 23,118,239,218,185,109,219, 12, 33,230,121,166,168,227,119,115,108, 70, 42,160, 79,164,162, 42,160, 23, 12, 62,121,230, -147,109, 4,136,176,188,218, 89,237,228,229,218,228, 68,125, 66,108,186,178,120,225,201,211,115,167,206,156, 91, 88, 89,185,184, -214, 90, 92, 94, 27, 37,217,189,223,126,199,191,252,158,119,220,186,119,123,150, 41, 83, 92,162, 96,125,249,226,169, 83,167,207, -158, 95, 90,234,116, 6, 73, 26, 71,225,174, 29, 51, 22, 41, 85, 60,245,212, 57,155,164, 33, 97, 41, 52,177, 9,140, 33,255,170, -177, 33, 34,244,165, 7, 94,149,203,248,165,241, 47, 29, 25, 4,241, 41, 99, 21, 99,140,170, 58,245,217, 44, 36, 34,235,116, 60, - 8,119, 34, 78, 75, 33,123, 27,202,140,223, 92, 35, 78, 0, 32, 10, 67, 4, 82, 85, 98, 6, 29,235, 95,148,241,171,109,136, 16, - 73, 85,125, 73,132,117,170,162,232, 85, 34,128,241,246,213,216,216,240,132,143,155, 25,111, 20, 12,140,241,233, 73,102, 12, 3, -178, 0, 78,148, 17,152, 88, 1,152,137, 17, 51, 25,215,196, 24,194, 92, 84, 0,141, 79, 16, 3, 34, 97, 41,142, 17,129, 24, 1, -217, 40,168, 90, 65, 70,100,159, 35, 5,175,139, 65, 21, 5,212, 39,161, 85, 84, 20,152,156,117,160, 10,134,137,216, 87, 58, 25, - 67,149, 74,185,213,238,236,216, 58, 1,226, 72, 17, 13,171,168, 83, 65,102,242,162, 21,137,152,196, 87, 23, 2,138, 82, 96,200, -115, 50, 1,138,168, 56, 81, 7,160, 0, 10,194, 10,228,189, 17, 31, 3, 29,160, 2, 56, 7,136,226,252,120, 5,212, 87,149,120, -123,126, 99,104,137,128, 42,185,205, 39,167,102,110,222,125,227, 19,167,206,148, 75,149,114,181, 82,170,148,119,239,218,181,176, -188,252,135, 95,248,226,187,246,191,137, 48, 76,147, 52,142,204,160,215,229,104,155,106, 54,191,212,218,115,227,206, 81,191,109, -194, 40,144, 88, 5, 56, 96, 36, 70, 36, 14, 2,155, 39,128,100,140,209, 13,179, 8, 73, 85, 24, 64, 0,192, 1, 24, 0, 4,114, - 86, 16,209, 90,139,160,136,198, 71, 47, 64, 16,177,224, 54, 66,248, 88,233,176,170, 3,117,146, 43, 50, 1,128,162,218,220, 49, -161, 50, 18,144,138, 32, 19,121, 89,197,168,170, 2,162,130,204,134,124,218, 85, 33, 12, 98, 0,116,206, 34,192,120,144,135, 64, -108, 84,156, 47,114, 21,245,202,138,140, 33,167,121,104,226, 36, 77,136,116,156, 47,242,226, 69, 85, 68,166,246,190,170, 54,179, -197, 37, 35, 6,250,147, 79,127,242, 51, 95,252, 26,154, 74, 37,192,119,191,237,109, 28, 16, 0,164,131, 65,123,113,105,121,117, -213, 58,105, 78,212, 3, 99,250,195, 76,151,151,227, 40, 10,194,208,165, 67, 21,151, 36, 35, 67,104, 85,134,195, 52, 77, 50,151, - 75, 64, 92,173,213,115, 52, 97, 64, 46,233,170,205,114, 17, 16,117, 89,218,233,172,229, 22, 13, 97,150, 43, 19,213, 27,229, 82, - 24,244,115,152,222,177, 55,203, 70,171, 75, 75,185,181, 21, 1, 46,213, 3, 80,102,189,112,230,137,176,188,181,179,122, 65, 52, - 80, 37, 16, 84,107,101,212,179, 78,195, 40, 38,130, 61,179,175, 76,134, 29, 53, 53,177, 57, 42,144, 9,202,205, 61,131,238, 26, -136,204,220,112,123,150, 14,196,229, 4,194, 81, 20, 85,202,104, 56, 79,179,176, 84, 14,163,210,112,216, 83, 83, 53,145,233,183, -151, 4,177, 55, 26,245,123,109, 92, 15,109,238,166, 38, 93,171,189,212, 25, 12,169,221,142,162,120,117,101, 41,119, 58,119,254, - 76, 24, 86,172,205,134,201,233, 44, 29, 5, 65, 96, 51, 43,146,198, 97,200, 36,104,130,233, 45,183,246, 86, 23,195,218, 84,185, -190,173, 74,162,136,203,107,173,133,165,101, 80,176,110, 56,236,181,206,174,174,130, 64, 16,151,179,108, 85,108, 70,176,140, 76, - 40,216, 91,190, 56,191,188,216,235,247, 20, 49, 73,211, 71, 31,255,203,137,137, 9,103, 53,168, 52, 7,131, 65, 38,169, 2, 88, -235,130, 32,156,156,106, 90,151, 3,104,128, 68, 76,150,141, 97, 28, 14,219,130,193,104, 56,184,107,239,141, 23,218,221,133,149, -139,184,178, 72,166,220,172, 87, 76, 96,122,105,146,103, 3, 38, 96,151,151,226, 70,158,167,195, 65,114,118, 65,103,119,196,165, - 82,121, 60, 50, 29,103,112,144,216,136,184,181,213,214,218, 90,171, 86,107,220,253,234, 59,136, 48,205,173,231,160,113,225, 7, - 5,170, 14,145, 4,156, 47,207,213, 13, 91, 81, 21,144, 20, 84,189, 27,217, 31,166,107,157, 52,140,107,211,219, 26,140,174,211, - 90, 58,191,112,225,220,133,133,229,181, 86,171,219, 93,110,119, 6,195,100,231,214,233,247,237,191,247,238,219,103,115,177,195, -158,148,130, 56,237,245,158, 90,152, 63,179,112,113,173, 59,112,226,166,167, 26, 55,223,188,247,244,217, 69, 96, 46, 85,226,211, -103,230,201, 74,189, 20,129, 8, 18, 41,162, 83,165,241, 40,130,137,192, 0, 16,162,211,113, 70,148,137,157, 8, 33,168, 74,174, -132,160,140,232,124, 25, 40,184,136,140, 29,151,178, 64,192,228,172, 16,162, 34, 24, 3, 35,107,197, 10, 51, 91, 39,234,237, 29, - 38, 43, 98,173,245,217, 50, 85, 37, 99,172,179,222,107, 6, 85,102, 82, 69,102, 20,241,166,133, 26,166,220,186, 60,115,202,192, -100,236,184,220, 5,153,145, 17, 28,128, 56, 69, 37, 81,107, 76, 8, 52,166, 50, 38, 64,194,212, 42,168, 16,129,183, 13, 12,162, - 83,205, 84, 2,230,205, 50, 14, 67,132,128, 42,154,137, 26, 34, 2, 80,113,140, 68,134, 93,154, 27, 80, 80, 18, 4, 22,103,125, - 38,194, 41,160,103, 88, 68,167,130,130,196,140, 76,190, 12,214, 23,184,122,141,141, 68, 34, 80,171, 77, 92, 92, 62,157,231,181, -144, 80,212,169,207, 28, 26, 38,149,113, 9, 18, 2,146, 33,103, 61,209, 9,100,224,216, 32, 43,146, 56, 21,231, 64,209,123, 8, -138, 10, 34,162,190,114,156,198,174, 3,130,170,146,250, 33, 4,137,115, 62,230,249, 66,130,113,194, 90, 69, 21, 56, 96, 64, 99, -157,222,249,234,187,207, 95,152, 95, 88, 89,154,218,178,101,122,102,102,106,203,204,205,187,119, 63,246,212,153,179,231,110,221, -185,101,107,127,212, 67,212,122,109, 98,208,105, 35, 81,181, 90,217,186,107,247, 83, 95,127, 36,207,147,220,166,213, 90, 96,130, -128,137, 1,213, 89, 11,104, 16, 65,197,137, 8, 33,138, 2, 43, 35,130,241,163, 51, 34,240, 67, 50, 28,103,160, 9,141, 31, 39, - 58, 95, 45,235, 61, 19,239, 75, 33,170,170,130, 69, 16, 64,163,164,126,112,162,226,179, 29, 64,232, 75, 89,216,103, 61,152, 65, -156,243, 9,115, 28,199, 74, 69,255, 9,130,136,130, 18,147, 79, 18,248,196, 4, 0,176, 65,151,171, 83,161,113, 32, 1,171, 57, - 3, 33,163,117, 74, 27,114, 65, 21,145,212,229,131,233,217,123,106, 51, 59, 92,158,178, 49,127,246, 7,191,253,187,127,242,117, - 19, 79, 72,214,125,239,187,222,177,109,231,174, 52,207, 2,209,214,202,202,252,217, 83, 43,171, 45,224, 82,109,106, 6,178,129, -129, 32, 29, 37,221,245,174,184, 60, 46,213,154,211, 77,237,182, 74,113,100,109, 38,206,101, 54, 77, 93, 94, 42, 85,235,229, 10, - 75, 82,170,110,145,128, 51,238,117, 58, 29, 10,227,220,229, 10,204, 1, 13,147,196,170,196,198, 89,173, 15, 70, 3,199,229, 82, -109, 34,203,134,224, 18, 84, 84,117,206, 57, 19,212,231, 47,156,201,168, 49, 53,177, 5, 70,171,106, 2, 43, 32,106, 21,113,126, -121,129, 77,108,109,154,231, 41, 84,234,195, 84, 34, 22,151,103,131,225,186,100,105,192,108, 69, 68,212,103,115,122,157, 86,226, -242,198,196,204,104, 48,232,118, 86, 21, 89, 1,196, 90, 1, 80,133,100,212, 37, 48,213,198,132,203,179, 94,175, 23,133,129,137, - 42, 75, 11,103,178,209,122,115,219, 45,229,200,220,176,125,103, 54,234,153,184,220, 27, 38,245,106, 61, 10,203,189,206, 90, 92, -170,142,186,139,149,153,189,165,128, 85, 52, 52,148,231,125, 50,113, 9,183,212,154, 91,201,132, 65, 16, 24, 54,233, 96,117,219, -204,119,116, 86, 22, 6,131,182, 76, 54,195, 82,221, 74, 14, 46, 79,135, 61, 32, 50, 65,144,167, 46, 87, 23, 33,143,178,180, 82, -174, 37,233, 96,219,150, 27, 90,181, 70,150,165, 26,106, 24, 69, 1,241, 32, 97, 67,148,185, 94,187,219, 73, 50,231,242,132,162, -184,187,218, 66, 65,231, 50, 50,193,133, 85, 37,164, 44, 79,213, 89, 19,198,140,124,186, 53,216, 53,201, 2, 21,177,105, 92, 42, - 37,253,110, 35,174,138, 75, 71,157,213,230,142,221,195, 81,175,213, 94, 67,217,246,138,155, 74,140,234,198,190, 49, 50,113,127, -208,153, 59,191, 88, 46,197, 55,207,238, 49, 97,148,187,204,229,138, 14,253,248,123,236,212,131,140,125, 6,241, 58, 75,198, 57, - 54,167,222, 67, 36, 34,107,243,139,173, 65, 38,220,152,218, 22, 71, 81,210, 95, 95, 92, 94,124,234,204,217,179, 11,139,237, 94, -175,213,233,118,122,189, 82, 92,126,231, 27, 94,251,206, 55,237,171,150,195, 81,226, 2, 53,145, 38,171,243,231,207,157, 91, 92, - 90,239, 14, 70,137, 32,108,105, 84,102, 95,121,235,133,197,229,199,207, 94, 40, 7,184,182,222,139,201, 84, 75, 33, 42,134, 65, -224,198,222, 0, 16,142, 5, 59, 40, 56,149,141,178, 58, 5, 6, 95,255, 38, 10,226, 36, 12,200, 41,138,117, 34, 68,164, 72,156, -139,168, 42, 51,123,211,213, 48, 17,177,117,121,234,124,165, 10,102,214, 5, 76, 1,147, 83, 80, 85, 38, 22,117, 42,192, 72, 10, - 10, 32,226, 52, 52,236, 68,112,108, 61,131,127,246,136,208, 1,128, 8, 51, 25, 0, 98, 84, 1, 2, 96, 36, 32, 20,159,158,246, - 66,158,129, 48, 96, 4, 69,100, 66, 1, 85, 37,113, 62, 31, 71,138,224, 69,165, 56, 65,194, 72, 89,124,157,147, 2, 51, 90, 39, - 2, 42, 0,145, 65, 5, 18, 21, 98, 54, 68,128,148,169,122, 39, 7, 80, 65,156, 2,169, 19, 1, 4, 52,140, 66,214, 90, 66,212, -208,215, 74, 17, 19,138, 8,140, 77, 9, 95,252,135,170,121, 16,150, 38, 43,165,245,110,111, 75,179,225,131,156, 34,130,128, 16, -160,108,184, 21, 46, 87, 81, 68, 84, 64, 81, 85,181, 10, 64,164, 99,205,192, 8, 2,170,138,130, 52,254,244, 64, 1, 4,137, 65, - 81,172, 35, 38,246,151, 74,164, 54, 21, 37, 7,186, 81,227,130,160,110,236,114, 32, 19,170,179,121,169, 90,187,235,219,238,250, -227, 63,249,194,242,210, 98,181, 86, 15,162,248,134,237, 59, 86, 90,107, 95,254,234,215,182,239,127, 75, 28,151,179,124, 24,215, -106,177,228, 23, 47, 14, 67, 99,150, 22, 22, 43, 19, 19,235,173,118, 24,123, 19,204,224,216,222, 64,207,192,170, 42,121, 38,200, -204, 70,196, 17, 49, 81,232, 63, 43,218,240,179, 16, 0, 12, 27,111, 21,233,216, 95,115,234, 11,131, 2,190, 36,105,140, 8,140, - 8, 34,234,247, 38,102, 36,244, 55, 15, 68,199,229,236,168, 32, 32,190,150,212,215,216,128,142, 75,109, 68,113, 92,180, 48,182, - 63, 85, 85, 69,137,213,151, 69, 48, 7,164, 98,157, 35, 38, 14, 24,133, 16, 89, 37, 71, 96, 36, 22,201,136, 66, 21, 23,213,118, -212,182,236, 68, 4,230,224,212,151,190,240, 59,159,250,255,106,181,173,157,214,185,183,190,238,222, 91,111,125, 69,150,165, 28, - 5,157,149,133,238,106,123,121,117,197, 90,104, 76,149,226,184,100, 9,195,176,108,162,164, 1,178,222,110,159, 63, 63,119,113, - 37,170, 82,178,109,186, 62, 72,135, 73,154, 39,105,110, 51, 91,159, 40,199, 1, 4,165,173,170,132,146, 35, 50,228,105,150,118, - 45, 4,169,115,226, 50, 75, 84,173,148,137, 57,181,118,152,185,153,157, 59, 42,149,242, 96,208, 67, 66, 21,181,121, 42, 38,130, - 60, 3,200,107,245,109,105,154, 14,214, 22,201,148,157, 64,192,156, 13,215, 19, 9, 87, 90, 75,235,221,238, 40,203, 51,155,169, -205, 40, 44, 27, 19,174,183, 22,163,184,142, 6,140,137,145, 41, 57,115,222, 4, 17,163, 68,198,116,187, 29,181, 26,134, 81,185, - 82,115,226,162,106, 9,200, 25, 14, 20,110,112,214,109,223,182,221,102,195, 76, 48, 27,246, 65, 29,153, 64,192, 86,170,211,131, -238,106, 92,138,182,110,217,181,182,114,126,170,222, 84, 67,206, 13,107, 19, 19, 1, 2, 75, 53,144, 60, 25, 14,162,114,205, 84, -170, 49,213, 37,235, 7, 51,187, 7,253, 85,102,142,202,187, 64, 29,112, 41,203,134, 81,173,225, 72, 13, 7, 73,175,213,168, 79, -165,214,154, 32,170, 54,102,192, 37, 75,231, 30,157,154,222,147, 59, 11,163, 65, 20,149,203, 1,198,129,169,150, 75,221,254, 80, - 65, 93,218,199,184, 81,203,157, 77,250, 65,174,219,118,108, 71, 19,217, 44, 85,113, 64, 84, 41,213,109,158, 17, 3,128,201,211, -190,179, 57, 6,165,222, 96, 80, 14,227, 85,130,149, 94,210,152,112,208, 31, 0, 64,158,230, 61, 24, 13,147,164,222,152,110,175, -181,106,147,145,203, 7,167,207,205, 15,134,201,171,110,105,198,149, 10, 10,137,216,179,243, 23,218,189,225,238, 27,119, 77, 55, - 39,178, 44,115, 89,134,136,138,168, 62, 25,132,254,193,219,168,114,240, 41,214,113,246, 94, 64, 21, 81,128, 80,156,180,186,195, -206,208,197,229,137,153, 90,197,142, 70, 75,231,206,205, 47,204,159,159,191,184,212,106,181,187,221, 86,175,151,165,246,206,155, -103,223,251,142,239,188,249,198,109,163,204,166, 73, 94, 22, 28,244, 86,207,159, 95, 56,187,176,214, 29,140,172,186,173, 83,141, -198,150,173, 23,206,158,251,236, 23, 78,150,131, 32,207,178, 52,135,233,114, 89, 84, 16, 9, 9,212,123,153, 34, 56,118, 55,208, -169, 58,231,216,144,115, 18, 18,163, 33,171,194, 42,128, 24, 18,229, 0,110, 92,157, 1,129, 33,231, 68,172, 53,134,189, 74, 52, - 72,128,224, 92,158,185,156, 96, 35, 87,139, 24,109,102,138,201,128, 42,128, 18,250, 79, 48,189, 55, 5,113, 76, 10, 34,153, 50, -128, 34,230, 78,152, 8, 72,179, 60, 67, 50,198,127, 59,164,222,178, 85, 1, 82,151, 19, 27, 5, 13,144, 19,231,194,200,168, 83, -245,197, 60,136, 2, 40,226, 24,124,217,166, 26, 36, 50,152, 89,117, 78,195,144, 69,209, 58,103,173, 35, 0, 38, 18,135, 0, 24, - 24,114, 78,243,220, 5, 1, 48,155,192,248, 50, 80,112, 98,141,138, 67, 36, 81, 71,134, 68, 4,145, 16, 72,172, 48,131, 49, 36, - 42, 2, 32,160,164,226, 54,138, 66,112,252, 25,212, 56,155,154,229, 73,109,114,106,101,101,109, 28,207,189,208,222,240,154, 17, - 81, 9,212,249, 76,186,108,116, 21,170, 47,209, 3,207, 77,130, 48,246, 42,128, 54, 62,246, 25, 39, 97,217,187,211,214, 9,179, - 81,151, 19,178, 83, 63,142,193, 49,217, 33,248, 17,205, 56, 5, 12,154, 12, 71,123,102,111, 57,125,250,244,133,197,165, 70,163, -185,101,199,142,234, 68,109,239,141,187,190,252,245,199,159, 58,191,244,138, 91,246,228,121,146,140,134,113,185,182, 99, 87, 20, - 24, 57,245,248,233, 93,123,247,152, 32, 41, 85,234, 68, 1,128, 32, 69,224,220,248, 35, 47, 68, 38, 35,148, 89,107,137, 25, 20, - 69, 69, 92,230, 83, 57,170,162,190, 40, 17,141,194, 56,167, 36,170, 68,232,172,168, 2, 35,128, 19, 96, 2, 85,223,131, 72,236, -172, 85, 81, 52, 6, 8, 21, 68,133,137, 89, 20, 20,128, 9, 85, 85, 4, 8,193, 16,142,211, 84, 32,224,227, 8,121,151, 19, 67, - 34,231, 3,207,255, 79,213,155,253, 74,214,165,103, 94,239,176,214,218, 83,236,136, 56,113,134,204, 60,249,205, 67,125,245, 85, -149,171,108,183,171, 61,202,237,169,236,114,149,237,178,171, 12,182,154, 73,160,166,251,134,255, 4, 80,171,155, 65, 72, 8, 9, -209,146,133, 68, 35,220, 72, 92,210, 32,104, 48, 32, 89,242, 88,245, 77, 57,103,158, 49, 78,204,177,199,181,222,151,139,181, 35, - 11, 50,165, 84, 94,100, 70,158, 19,185, 99, 13,207,251, 60,191, 7,148,137, 21, 85, 69,137,152, 73,189, 6, 47,113,233, 7, 20, - 84, 85,239,125,232, 58,107, 48,222,231, 84,213, 36,217,233,187, 95, 37, 4, 74,204,139, 79,255,230,159,253, 55,127,162,110,180, -188,123,241,213,143,222,255,185,159,255,217, 46,120, 96,244, 93,104,218,254,102,177,171,193, 38, 9,151,179,135, 64,224,210, 98, -183, 94, 24,195,100, 56, 79,243, 15,190,244,177,181,233,242,213, 95, 3,105,219,132,237,182,170,186, 62,248,112,118,118,127, 58, - 59,111,154,125, 0,169,235,202, 11,144,113,237,186,107,219, 29, 25,139,100,186,206,247, 94, 70, 46,181, 0,187,166,121,119,114, - 4,168,155,249, 85,223,122, 87, 76,172,115,208, 87,189, 49, 73, 90, 74,168,193,140,178,241,189,213,221,173, 73,210, 34, 47,119, - 55, 23,139,229,221,174,237,117, 95,251,118,211, 7, 63, 61,126,216,245,126, 52,153, 30, 1, 88, 3, 89, 62, 65,114,128,222,158, -165,121,146,167,105,102,152, 84,186,229,106,147, 39, 6, 80,136,178,209,228,220, 88, 84,223, 72,144,106, 95,161,111,179,188,196, -182, 41,102, 39, 8,208,213,123,147, 30, 17, 33,205,206,170,218,135,230, 57,187, 4,129,250,174, 77,138, 50,207,143,154,102, 75, - 46, 51, 46, 81, 47, 73, 90,132,182, 49,142, 66,223, 58,151,245,198, 73,232, 52,116,171,187,235, 98,122,146, 22, 71,190,107, 12, - 83, 93,175,211,209, 24, 73,178,209, 36, 47,198, 62, 8,132,108,118,254,177, 53,148, 1,251,242,120,185,184, 42,138,113, 39,125, - 49, 30,239,154, 94,136,243,108,212, 84, 43,144, 22, 56, 17,224, 81, 98,171,190, 13,125,207,214, 54, 77, 5, 96, 64,252,126,183, -152, 28,157,250,224, 67, 8,142,123,223,238,217,218,137,213,206,211, 23, 47, 94,125,244,240, 62, 42, 74, 16, 84,153,142, 71,105, - 49, 42, 39, 51,101,102, 55, 6,128,203,249, 46,207,138,119, 30,146,248,230,114,190, 24,149,147,175,125,249, 13, 67,212,212, 13, -128,196,241,215, 96,116, 68, 5,140,118,222,131, 27, 66, 5, 84, 80, 15,167, 25, 16, 36,106,218,126,185,235,132,178,211,211, 41, -128,236,215,183, 23, 47, 47,158,189,120,113,113, 59, 95,172,215,183,203,245,102, 87,189,255,198,249,183,255,222, 55,127,234,227, -119, 44,187,253,182,117, 72, 88,181, 47,175,174, 94, 93,221,222, 44,183,117,215,191,243,214,131,147,251, 39, 79,158,190, 68,210, -227,123, 39,207,254,246,209, 46,108,167,206,154,193,225, 67,162,241,164, 27, 53,211,232,234,132, 32,130,128,214,112, 28, 4,196, -207,138, 1,138,150,142,160, 26,143, 80, 68,136,214,136, 23,195, 24,212,196, 89, 89, 28, 10,247, 65, 25,137, 1,172,165,198, 7, - 11,106,136,131, 6, 80, 12, 74,128,195, 13, 56, 26,251, 68,212, 32,244,209, 75, 42,154, 25, 91,249,158, 20, 28,155, 56, 85, 82, - 50,136,104,163,193,148,200,135, 48, 88, 10,137,226,118, 34, 42, 28, 71,109,136,206, 26, 81,144, 0,200,234,144,227,103,158,152, - 64,201, 7, 69, 0,107, 89, 68, 69, 4,227,228, 79, 69, 80,153,136,129, 36, 32,168, 26,199, 10, 72,160, 34, 24, 68,218,174,117, -136,252,251,191,245,173, 97,220, 6,168,162, 72,175, 61, 27,136, 8, 76, 3, 57,128,227, 59,166,175,135,126, 8, 58,172,215,204, -128,236,154,253,154, 92,150, 36, 12,196,241, 37, 98, 70, 32,122, 57, 68, 5, 84, 3,196,212, 67,156, 66,176, 68,186,128, 34,129, - 34, 34, 25, 98, 99, 16,135,191, 70, 67,186,211, 67, 52,150, 96,180,114,197,131,132,210,143, 29,245, 49, 43,134,132,164, 97,200, -143, 74, 16, 4, 62,154,142,127,248,233, 39, 68, 48, 30,141,147, 52,203,146,108,191, 93,126,246,248,233,199, 31,127,148, 37,182, -174,107, 66, 80,239,159, 63,125,218,116, 97,113,123,169, 64,121, 90,152, 52,161, 97,240,136, 32, 74,209,199, 2,138,136,108, 76, -100, 57,224,193, 26,140, 0, 8, 6, 34,126, 0,130, 72, 0,160, 56,250,136,130, 13, 27, 27,141, 4, 68, 76,108,162,163, 37, 72, -128,104, 93, 31, 50, 92,131,135, 61,142, 92, 6,187,165,101,130,215,184,135,104, 0,245, 56,196, 78,134,205, 16, 16, 85,149, 7, -159,232, 48,174, 8,162, 28,125, 59,131,171, 85, 1,145,172,173,246,107, 75,136,132,140, 24,188,156,189,251, 19,105, 81,114,238, - 86, 47,159,253,103,255,225,127,212,248,164,217,109, 30,220, 59,254,227, 63,254, 55,157,195,222, 7, 98,187,190,189,221,238,171, -171,235,155,166,247,227,201,145,177,174, 93,223, 74,223, 5,213, 52,207,122, 31,218,221, 38,203, 83,223,110,250,250, 46,205,210, -229,114,253,242,250,122,185, 93,239,247,245,116,148, 55, 77, 91,215, 45,170,162,239, 12, 66, 85,109,171,118, 95,183,149,146,171, -118,123,237,155,162, 40, 70,197, 24, 92,126,122,255,173,119, 62,248, 56,136,174, 23, 55, 38, 25,245, 77,131, 32,171,155,167, 2, -100, 56,247,221, 62,207, 50,241,109,211, 6, 54,110,179,184,122,249,252,211, 94,112, 50, 59, 43, 82,158, 76,142,206, 78,207,207, -238,189,153,229,101, 98,168,200,115,107,243,196,210,241,100, 58, 59, 58, 97,195,134, 57, 75,115, 38, 5, 5, 52, 73, 90, 28, 21, -163,177,229,132,136, 67,183,214,160, 93,187, 67,192,166,173,119,251,182,109, 27,235,220,110,241,188,105,118,163,233, 73,223,110, - 85,130, 37, 90, 46,174,187,118,239,210,162,241, 61,179,171,183,139, 98,116,156,164,101,215, 86,171,155,207, 93, 90,102,121,222, -238, 22,251,205,210, 38, 69,239, 59, 91, 76, 8,185,173, 87,190,175, 37,244,162,228,146,196,166, 37, 32,238, 23,215,192,201,120, -114, 66,100,155,106,125,118,254, 78, 91,175,125,187, 33,162,182,105,125, 8,156, 29,133,190, 78,211, 4,137,179, 98, 90,239,215, - 65, 84,196,231,121,177, 93,223,181, 29, 0, 83, 85, 87,139,229, 93, 80,204, 51,151, 37,174,235, 91,107, 18, 96, 72, 93, 74, 54, -201,211,204,184, 36, 39,220,182,225,106,185, 58, 41, 83, 32, 83,213, 85,219,181,204, 46,201,198, 46, 73,179, 52,223,239,119,251, -237,186,174,214, 47, 47, 46, 81,251,143, 62,124,127, 58, 30,139,130,136, 68,119,111, 20, 15,134, 88,182,198,103,137,200, 25,141, -122,251, 0, 21, 65, 85,181,132,190, 15, 55,155,106,223, 80, 54, 62, 46,139, 81,232,171,235,139, 23,143, 31, 63,254,225, 23,143, -159, 94, 94,221, 44,150, 23,183, 43, 66,252,222,175,255,194,191,245,189, 95,127,251,205, 51,239, 9,123,178, 33,108, 22,183,143, - 31, 61,123,118,113,119,117,183,244,193,255,157,159,254,170, 41,211,207,158,188,184,185, 93,172,119,213,103,143,158,165,168,211, - 44,183, 4, 97,136,104, 3, 68,119, 39,161,115, 22, 0, 33,102,172,226, 16, 14,193, 48,201,193, 21,148, 16, 67,212,226, 85,226, -194, 22, 36,136,130, 49, 20,130, 26, 66, 66, 66,132, 32,234, 37,240, 65,232,140, 30, 17, 66,236, 85, 12, 57,195,212, 41,164,142, -145,204,193, 16,135,200,208,118,194, 68,214,196, 40,169, 18, 34,177, 5, 84, 64,116, 76,113,177, 69, 21, 98,210,129,109, 64,113, - 24, 29, 21, 33, 98, 2, 0,102,102, 84, 32, 66, 38,199, 4,204, 17, 82,130,241,232,168, 64, 8, 76, 16, 84,131,168, 2, 48, 98, - 84,102, 40,154,115,112,216,179, 16,145, 77,100,143, 80,221, 7, 8,125,145, 39,252, 7,223,254, 13, 61,184,119, 32,190, 63, 81, - 33,145,225,128, 44, 65,137,249,240, 82, 8,113,113, 81, 80, 13, 0, 0, 2, 2, 2,170,224,101,189,171, 71,101, 1, 26, 87,174, -168, 91, 8, 18,137,246, 64, 20, 55,177,248,178, 3,133, 33, 42,243, 68, 81,134,102,107, 6, 97, 66,226,219,165,160, 10, 1,128, - 7,235, 33, 8,224,107, 67, 97,156, 88,170, 32, 17,113,188, 24, 69,145, 90, 68, 85, 33,248,208, 79, 38,211,122,183,190,184,188, -201,210,236,248,228,216, 57, 75,170,183,183, 55,155,170,249,240,189,119,189, 15, 93, 87,165, 89, 49,158, 30,127,249, 43, 95,109, -251,246,195, 47,127,109,183,153, 27, 78,226,117,239, 96, 56, 12, 68, 28, 69, 12,137,175,141,135,159, 49, 30, 2,114,112,197, 12, - 70,196, 67,134, 0,152, 8, 48, 62, 88, 68,196,100, 24, 1, 37, 40, 17, 25, 34, 5, 85, 15,198,152, 56,241, 4, 68, 20,137,238, -182,190, 29,161, 0, 0, 32, 0, 73, 68, 65, 84,210,184, 43,134,136,154,137,142,174,225, 55, 48,108, 11,162,196,104, 0,227,163, -131, 68, 76, 8, 64, 94, 36, 98, 9,226, 89, 67, 68, 0,133,200, 16,185,122, 55, 79,153, 0, 21,130, 47,207,222, 62,122,235,125, - 16,237,170,221,127,245, 79,254,233,213,170, 75, 51,155, 37,246,223,249,247,254,225,241,236,168,218,239,200,119,187,229, 98, 87, -215, 47, 94,188,218,108,150, 73, 49,153,156,156,249,190,101,231,128, 93, 8,146, 48, 43, 48, 24, 50,201,168,222,220,181,213, 93, - 98,146,229,102,253,234,250,102,189,217, 6,193,223,248,213,223,235,219,118, 49,191,186,186,122,186,175,118,183,183,175,124, 16, -199,198,247, 34,202,125,187,207,210,180, 44, 10,195,228,202,163, 55,223,253,210,244,236, 65, 83,239,250,182,118,233, 40, 27,143, - 17,144, 92,105, 93,230,251, 30, 84,250,174,221,205, 95,112,146, 45, 87,243,128,238,250,246,210,165,227,212,130, 74,200,243,137, - 49,166,111,183, 94, 2,187,172,223, 92,229, 89,234, 18,227,146,188,235,118,109,189, 27, 77, 79, 65,186,229,226, 82,218,122, 58, - 59, 7,109, 49, 52, 77,179,113,105, 81,237, 54,189, 8,114, 90,213, 53,160, 33,194, 32, 82,237, 86,161,111,102,247,223, 47, 70, -211,253,110,213,215,173,115,217,236,244,205,147,179,243, 94,250,224, 1,217,161, 77,172,181,210, 44, 85,125, 54,154, 37,197, 81, - 91,237,140, 27,155, 52, 77,242,145,203, 70,214,230,117,187, 35,147,155, 36,103, 67, 46, 29, 85,235,185, 37, 76,210, 44, 59, 58, - 31,141,143,251,118,139,108,136,141,223,207,145,204,232,248,156, 93,201,214,248,110, 75, 73, 62, 61,122,144, 36,142,141, 73,178, -204, 37,169, 73,138, 36, 47,154,102,183, 93, 47, 44, 81,154,101,132, 66, 54, 57,157, 30,237,234,250,238,246,154,141,173,234,170, -107,235,206,123, 38,211,183,219,213,122,233, 69, 63,120,227,222,182,237,151,155, 13,133,198, 37,229, 40, 27,185,180, 92,239,107, - 34,241,245, 22, 3, 84,237,254,114,126, 53, 57,122, 99, 84,158, 78, 39,169, 97, 82, 17,124,125, 46, 64, 2, 80,160,168, 18,131, - 4, 69, 38, 9, 18,215, 82,149,128, 0, 0,194,140,219,166,191,217,244, 1,220,209,244,152, 49,236, 86,243,103,207, 31,127,242, -249,163, 31,126,254,248,226,250,230,118,185,220, 87,205,199, 31,188,253,143,254,248, 59,191,252,115,223,240, 34,190,131, 4,201, -239, 54, 47,159, 63,253,228,139,231,215,203,205,106,183,127,120, 58, 61,185,119,246,249,203, 23,159,124,250,248,141,251,103,159, - 62,126,213, 85,213, 89,153, 23,169, 83,208, 32, 26, 68, 85, 5,163,237,131, 32, 6,119,172, 97,112,164, 33, 14,117,129,136,122, - 47, 42, 18,207,209, 65,197, 43,112,244, 46, 0,244,126,208,117, 5, 1, 68,153, 49,250, 62, 16, 49, 49, 6, 9,131, 42, 15,139, - 48, 8, 2, 19, 89,195, 30, 48,179, 22, 5,188,134,120, 8, 19, 0, 5,112,214, 32, 66, 8, 66,128, 48, 28,133, 21, 8, 0, 48, - 72, 24,178, 94,138,204, 28, 79, 89, 17, 84, 67,108,144, 8, 85, 84,145, 9,117, 96,216,160, 42, 9,136,202, 96,196, 16, 37, 4, - 77,172, 17, 80, 17,140,192, 32, 2, 13,170, 28,121, 35, 0, 4,100, 12,139,130,136, 26,195,168, 74,134, 59,213,166,105, 82,103, -153,137,191,255,157,223,164,193, 3, 27,255, 43,113, 56, 82, 14,110, 62, 53,150,162,219, 58, 26,209,117, 72,240, 12, 22, 60,208, -120,188, 14,198,218,219,249,109, 94,148,206,177,198, 23, 84,193,131,129,230,199,145, 7,130,225,172, 13,128, 24,167, 13, 8, 68, -108, 57, 90,252, 76,132,176,196,113, 13,197,220,231,193,131, 79, 28, 65,104,195,227, 6, 26,185, 5,164,140,160,196,150,145, 67, - 52,226, 40,196, 51,242,249,189,251,207,158, 63,109,219,182,200,179,241,120,102,140,181,172,127,253,195, 79, 79,206, 78,238,157, - 28,119,189, 39, 32, 8,253,118,183, 33, 8,183,151,175, 86,203, 85,154,100,196,198, 88, 23, 79, 3,175,173,193,130, 2, 66,113, -226, 11, 32,136,134, 40,186,144, 56, 98, 12,134,141,148, 7,136, 2,188,118, 35, 29, 28,184, 18,130, 30,192, 2,226,163,134,136, -135,189,250,199,139,120,124,239, 48,230, 9, 68, 95,179,110,226, 9, 29, 21, 52, 62, 23,128,192,164, 50,120,187,162,186,207,131, -243, 17,135,108, 25, 2, 51,147,117, 65,197,239,214,206, 26, 13,158,147,226,244,163,159,100,102,145,246, 79,255,228, 79,126,244, -249,243,196, 25, 75,240,123,223,253,238,151,190,244,222,118,117,135,100,219,186,106, 3, 94,221,204, 23,203, 85, 47, 48, 57,154, -161, 73,250,182,202, 38, 39,125,211, 36, 9, 33,185,116, 84, 52,187,109,183, 91,246,161, 69, 95,177,179, 55,139,213,197,245,237, -114,179, 45,199,227,159,253,198,207, 1, 64, 78,112, 60,202, 13,202,114,219,174,246,213,118,191,107,218, 94,180,103,194, 34, 47, - 38,229,212,230,229,244,228,236,225, 59, 31, 5,213,186,218,239,151,175, 4, 8,149,148, 64,130,239,219,150,216,182,213, 70,196, -231,229,177, 74,111,109, 10, 34,183, 55,151,121,158,213,155, 59,103,147,114, 60,201,199,167,117,179, 67,118,121, 81,250, 32,214, -165,163, 98,214,117,149,177, 57, 24,183,189,254, 36, 27, 29,179, 49,134, 19,147,100,108, 24, 52, 32,217,188, 60, 82, 96, 64,118, -206, 25,118, 73,154,163,116,105, 49, 33, 99,219,174,149,126,135,208, 50,115,146,151, 77, 93,245,221,158,216, 58,227,210, 52,147, -208, 97,240,162,128,224,243,242,184, 24, 77,156,113,189,111,108, 58, 98, 55, 66,245, 74,228,235, 93,223,109,242,242,132, 20,122, -241,134, 25,173, 51,198,238,182, 43,182,142,140, 97, 99, 99,186,210, 24,199,217, 68, 85, 33, 52,117,189,201, 70, 39,163,209,152, - 13, 89,151, 4,223,245,189, 10, 0,160,233,155, 42,244, 45,113, 66,198,132,208, 55,117,195,132, 41, 67,211, 54,147,241, 52,201, -179,201,248,168, 24, 77, 20,176,109, 27,239, 67, 89,142,203, 34, 67,208,220,152, 77, 47,109,144,113,158, 1, 99, 85,173,242, 44, - 29, 21,121,211,237,151,187,181, 97,120,112,255,173,179,147,147,106,187, 94, 44,119,229, 40,201, 83,171,138, 42, 66, 48, 92,209, -135, 73,219, 0,152, 82, 38, 36, 80, 20,136,200,150,222,251,249,166,219,214, 56, 25,207,202, 34,107,170,213,197,243,103,159,126, -241,197, 39, 95, 60,125,252,226,226,213,205,124,179,175,207,207, 78,191,247,107,191,248, 71,223,253,123,199,179,241,110,215, 27, - 49, 86,252,245,171, 23, 95, 60,121,252,236,114,190,221, 55,247,206, 78,198,179,169, 97,117,229, 72, 20, 94, 93,222,173, 23,171, -113, 98,167,101,106,145, 68, 85, 20, 66, 76,209,255,255,115,127,113, 2, 23,231,169,140,112,192,155, 69,176, 10, 4,141,209, 36, - 36, 32, 25, 78,147, 24,189,136, 3,171, 64, 69, 69, 13,198, 56,186, 26, 68,136,142, 65, 80, 69,160, 40,204, 14,218,189, 40, 0, -227,193,251, 73,200,136,170,106,136, 37,202, 53, 3,175,140,130,132, 32, 18, 1, 39,160,135,241, 24, 0, 30, 66,142,175,131, 53, -206,146, 2, 17, 64, 12,161, 19, 2, 35, 25,102, 66, 18, 47, 49,168, 31, 68, 52, 40,198,239, 14, 81, 7, 7, 53, 5, 80,199,230, - 64,157,194,214,183,187,106, 11,234,157,117,251,170,119, 4,121,150, 2, 16,255,193,183,191,133,128, 32,175, 23,225,248,134, 28, -244, 25, 27, 67, 68,131,183,250,240,103,226,152, 69, 20, 15, 75, 60, 34,147, 37,241,141, 15,121,158, 31,210,249, 26,205,253,209, -208,205, 68,134, 34, 25, 17,226,238, 19, 95, 41,134,155,226,228, 48, 90,194,225, 0,210,138, 99,113, 24,214,188, 65,111,127,109, - 24, 29, 88, 25, 24, 81, 92, 49,195, 48,172,161, 17,209, 3, 10,105, 86,140,203,209,211,103,207,153,185, 44,203,108, 52, 10, 93, -232,251,238,217,197,213, 87,190,252, 1, 2,181, 77,197,132,109,211,148,211,217,252,246,250,205,247,190, 74,208,249,222,179, 51, -113,202, 26,255,209, 32, 66, 58,124, 85, 10,192,104, 40, 14, 22,226, 20, 34,154, 96, 20,137,137,162, 85, 95, 33, 14, 21,136,137, -140, 9,189, 87, 64, 98,139,168, 34,253, 0,212, 68,208, 32, 68, 6, 35, 82,143,136,137,226,162,124,152,208,202, 1, 25, 54,248, -236,163,111, 21, 16, 72, 68, 34,129,136, 40, 18, 14, 16,128,137,192, 48,200,240, 22, 34,162, 49, 6, 17, 25,185,105, 26,232,247, - 8, 2,156,223,251,248,103,146, 36, 1,134,127,241, 39,255,237,255,243,127,253, 37,160, 26,196,239,254,238,239,127,253,103,126, -170,243, 33,180,173, 2,118,166, 32,103, 30,127,254,105, 35,198,229,163, 52, 43,200,164,140,218, 53, 85, 62,158, 16,160,203,242, -221,106,153,100, 37,166, 73,187,124, 73,136,226,195,139,171,155,235,249,124,187,223,190,255,206,151, 63,120,231, 75,221,126,169, -205, 70,212,247,109,171,234, 45,163,134, 80,181,181, 97,195,200,153, 99,227,242,201,233, 27,179,211,183,239,189,249, 86,219,214, -187,253,222,216,210,185,164,171,215,100,178,174,173,251, 94,234,253,109,223,183,157,247, 73,146, 74,223,230,121,190, 92,221,117, - 34,227,241, 44,203,138,114, 60,214,208,231,229,209,110,179, 40,203, 19, 98,139,136, 10,237,102,187, 12,192,142, 2, 38, 83, 82, -200,203, 99,237,122,180, 22, 65,251,102,143, 12,105, 49,147,222, 19,120, 36, 98,230,182,221,131,244,251,245,157,181,217,126,121, - 1,192,105, 62,203,199,227,166,217, 27, 87,244,138,189,247,132,241, 14,174,198,166,117,215,248,110,107,216, 41,168, 75,138,196, -242,250,238,185,117, 5, 51,245,253,174,111,186,180, 24,141,167,103,204,184,185,123,101, 76, 10,218, 26, 67,136,144,184, 12,145, -130,111, 69,149,217, 26, 75, 26,194,110,241, 60, 75, 70,197,120,150,101, 83,147,142, 66,215,181,251,185,168,189,187,248,209,228, -248,173,122,123, 19,131,135,210, 86,206,114,219,238, 67,232,179,172,172,186, 32, 2,137, 69, 38, 98, 54,137, 97,245,189, 72, 79, -168,198, 24, 36,174,118, 27, 31, 72,197, 79,138,114,177,217, 85,125,119, 54, 61, 74,139,210, 80, 39, 18,182,141, 47, 71,179,113, -145, 10, 36, 1, 85,250, 74,208,237,250, 60, 75, 37,205, 48,242, 81,226,113, 74, 67,148, 21, 40,114,105, 14, 92, 41, 21,213,249, -182,190,221,116, 46, 25,151,227, 50,116,245,245,197,139,199,143,158,124,246,248,201,167, 79,158,190,186,157, 95,223, 45,147, 36, -253,189, 95,249,217, 63,250,206, 47,127,249,131,183, 3,128,118,152, 42,237,239,110,159, 60,122,252,248,229,213,197,221,218,251, -254,239,254,244,215,147,163,209,143, 30, 63, 73, 45, 93,174, 55, 79,159,190,204, 13,165,150, 51,103, 53, 0, 49, 4,145, 32,209, - 51, 29, 93,208, 50,160, 90,108,212, 3, 34,247,102, 56, 74, 17,146, 33,138,160, 52, 38,142,176, 64, 96,136,218,240,144, 39, 50, -228, 67, 32,226, 65,156, 9, 0, 40,150, 56,232,160,144, 14, 4, 42,102, 38,244, 58,172,231,132, 36,160,175, 19,234,168, 58, 88, - 51, 15, 25, 49,141,169, 46,132, 32, 64, 17, 53, 16,165, 87,133,131,122, 67,135, 83, 32,121, 81, 4, 32, 5,136, 91, 11, 35, 51, - 43, 64, 47,194, 68, 74, 36,226, 69, 21, 1,141, 97, 47, 42, 0,134,144,153,124, 0,131,104,216, 40,170,146, 1,208, 32,186,218, -239,171,170,114,198,214, 94, 0,100,154, 23,200, 54,168,231, 31,252,206,119, 15, 78,202,248, 83, 65, 35, 98, 43, 26, 66, 44,136, -210, 16, 53,178,120,176,112,128, 68,115,203,192,251,164, 0,136,100, 19,190,157,207,103,179, 99, 38, 84,145, 24,137,141,163,246, -136,110,128, 65,136,143, 17,241, 3,150, 40,206,110, 68,145, 8, 16, 53,196, 69, 76, 98,250,102, 8,215, 15, 70, 73, 6, 21, 84, -133, 40, 97,199, 61, 15, 9, 9,136, 56, 2,213, 16,144, 15,129, 13, 36, 20,239,167,211,201,124,126,189, 90,109, 18,151, 76,143, -142, 29, 19, 72,255,228,217,211,172, 40,223, 58,191,215,180,173, 34, 56,166,187,249,197,213,197,229,104, 84,186,196, 86,251,189, -115, 9, 17,147,177, 33, 4, 68, 34,130,200, 81, 34,138, 90, 25,129, 12,236,203,104,101,137,215, 87, 36, 67,196,145,191, 51, 60, - 3,162, 16, 20, 13, 33,160,104, 79, 20,103, 32,131,254,101,173,141,102,128,232, 55,141,204, 3, 56, 32, 68, 99,154, 44,166,121, -227,115, 19,159,187,110,191, 92, 47,110, 34, 16, 15, 0,120, 8, 72, 33, 24, 82, 81,239, 37,158,238,153, 34, 21, 68,144,184,107, - 27, 13,173,113,233,233,251, 63, 81, 76, 38, 64,244, 47,255,135,127,254,191,252,203,127, 69, 76, 10,221,111,255,246,239,254,210, -183,126, 45,180,141,175,107, 52,166,222, 85,197,241,241,103,159, 60,218,119, 98,179, 12,186,189, 77, 70, 54, 45,162, 11,117, 92, - 78,186,182,219,109,230, 68,214,247,221,118, 91,181,219, 87,214, 38, 77,239, 95, 92, 93, 94,223,173,171,166,254,230, 79,255,226, -249,241,113,189, 93, 62,124,112,186, 95,173,246,251,253,110,191,238,154,174,239,187, 8, 38, 78, 24,242, 98, 60,154,220, 59,190, -255,230,201,131, 55,210, 34, 91, 92,189,234,234,141,248, 94,124, 67, 54,221,205,159,145, 43,144,220,120, 58, 29,143, 38, 93,215, - 49,104, 93, 45,154,166, 93, 46, 87, 89, 94, 74, 8,155,213, 69,146,142, 58,133,237,190,113,217,116, 84,100,193,119,196,166, 28, - 31,133, 0, 65, 67,232, 27, 32,155,142, 38,228, 43,128,192,198,121,239, 67,223, 10, 0,153,188,110,246,192, 68, 40,136,214, 37, - 37, 17, 37,249,136,172,117, 46, 1,232, 93,146,102,121,193, 38,173,215, 87, 26,124, 50,154,248,221, 2,141,101,240,187,197, 75, - 55,154, 58, 91,116,237,190, 24, 31, 39, 89,225,125,107, 92,162, 32,245,102, 97,216, 58,155,113,146, 75, 8, 22,177,174,118, 77, -181,156,158,188,195, 72,249,228, 56,116,141, 34, 22,121,177, 91, 93,138,242,126, 53,223,111,230,247,222,250, 74,231,219,197,205, -197,252,197, 95,228,227,211, 16,250,190,222,165,197, 88,209,222, 92,127,114,114,255, 67, 68,234,251,122, 52, 62,107,218,189,244, -125,154, 79, 73, 68, 67, 39, 26,156,203,178,172,140, 10, 95,221,119,219,170,202, 18, 7, 10, 46, 41, 70,197,184,110,170, 52, 45, -124,232, 30,156, 28,239, 91,185, 92,220,158,159, 76,170, 30, 92,126,154,165,206, 38, 25, 91, 62, 59,190,223,117,226,123, 13,190, -201, 39, 71,187,154, 74,199,169,141,247, 74, 19,153,131, 0, 98,144, 84,226, 32, 74, 25,177,106,187,139,219,170,237,205,209,236, - 56, 53,124,119,243,242,201,163,207,159,189,184,248,236,233,179, 39, 23,151, 55,155,205,174,106,191,254,225,187,255,193,223,255, -157,111,254,228,135, 10,228,189, 22, 38,211,186,122,241,236,241,231, 79,158,191,156, 47,230,203,205,135,111,158,177,113, 47,239, -110, 47,111,110,137,146, 31,126,250,197,126, 83, 21, 76,121,154,193, 64,116,210, 32, 34,162,193, 43,209,224, 3, 70, 34,235, 44, - 34,106,136,108, 69, 80,164,160,154,185,132,128, 68,189,138, 98, 60,161,171,180, 18,226, 41,151, 6, 9, 85,136,168, 11, 2, 8, -164,168, 8,170,106, 12,145, 65,223,171, 18, 48, 34, 19, 42,104,194, 36,136, 10,104, 8, 45,178, 0, 70,238,107, 98,141, 4,101, -166, 3,181, 81, 13, 50, 96,164,249,129,168, 32,128, 37,246,170, 6,217, 89, 51,200,179, 76,206,217,200,207,138, 94,113,162,152, -121, 66, 5,177,204,170, 16, 68, 84, 53,179, 6, 17,124,219,123, 65,203, 72, 68, 94, 52, 97, 78, 12, 5, 69, 85, 49, 20,229,254, - 96, 92, 70,113, 14, 2,202,100, 0,217,171, 4,145,105, 81, 32, 83,145,184, 46, 40,127,255,219,223, 2, 16,197, 8,122,199,193, -251, 4,136,136,162,138,209,195, 30,191,142,152,114, 18, 21, 8,135, 64, 64, 92,117, 89, 73, 21,149, 66,255,127,255,217,191,210, -236,244,236,120,172,226, 97, 24, 49, 2, 29, 96,185,170,162, 63,102, 10, 40,234, 0,208, 28, 36,102, 34,140,145,212,193,127,165, -196,230, 0,207, 26,134,190, 58,140,128, 33, 78,161,163, 63, 48, 30,134,145,145,137,145,136,140, 33,100, 34, 70,212, 56,236, 46, -139,209,231,143, 30, 25,166, 81,158,143,198, 19,239,189,248,240,215, 63,250,236,157,119,222, 30,229, 89,211,212,214, 36, 26,232, -225,187, 95, 10,237, 54, 27, 31,213,251, 45,147, 77,146, 20, 32, 96,252, 95, 83, 69, 36,100, 30,238, 13,164, 26,167, 14, 56, 92, -185, 8,144,140, 17,245, 32, 26, 83, 2, 49,195,230, 67,143, 76, 8, 52,208,208, 8,136, 40, 70,222, 0, 73,195,240,216, 12,186, - 83, 60,129, 48, 73, 84, 54, 95,199,219,134,116, 49, 33, 99,232,186,235,139,199,119,151,207,218,174, 73,178,210,217, 12, 48, 50, -146,101,200,210, 14, 55, 82,142,251, 1, 16, 51,219,182,218,106,183,155,220,123,111,122,255, 33, 90,254,171, 63,251, 63,254,244, -159,255,143,104,156, 37,252,123,191,250,155,191,252,203,191,208, 54,117, 64, 98,195,190,247,110, 50, 93,220, 92, 61,254,226,133, -162,128,120,165,148, 93,102,108, 26,124,157,184, 84, 7,127,177,201,138,241,171,151,207,155,221, 58, 49,181, 33,179,219, 87,183, -183,243,155,213, 74, 21,126,233,103,126,201, 50,174, 22,183,161,175,111,110, 94,117,222,175,119,123, 37, 82,164, 36,113, 36,162, - 40, 73,154,159,158,206, 78,239,157,151,147, 89,189,185,186,187,124,145,143,143, 9, 67, 80,107,140,237,218,106,191,153, 27, 66, -106,238,234,170, 1,223,178,181,162,184,222,238,150,171,121, 60,130, 77, 78, 31, 88, 87, 36,217, 20,218,221,116, 54, 75,210,124, -179,184, 14,210,231,134,234,122, 11,118, 52,202,199,137, 81, 4,232,218, 22,109, 90, 56,204,202, 51,235,210, 36, 31,129, 6,231, - 82,210,160, 18,218,237,210, 55,171,190,217, 33, 59, 31,124,240, 93,232,154,128,148,230,165, 74,168, 58, 15, 72,210,247, 93, 87, -247,117,165,100, 67, 0,223, 54,125,183,113, 46, 1,116,222, 55,125, 83,155, 36, 73,178, 82, 68,124,191, 71, 99,188,239, 21,201, -119, 77,146, 20,219,187,151,174,152,244,205,190,237,122,178,169,130,238,215,243,188, 60, 38,195,162,234,242,178,175, 22, 93,189, - 77, 82,215,117,158, 81, 76, 94,246, 94, 3, 64,240,237,116,246,214,104, 52, 37,130,208,251,182,217, 49,161,181,121,150, 37, 0, - 97,223,182,214, 88,231,210,206,247,134,140, 87, 76,216,100,105, 54, 29,141,108, 94,250,182,182, 6, 68,217, 75, 96, 4, 6, 45, -114,215, 4,189, 92, 46,207,202,163,114, 92, 38, 89,233,251,106, 52,154, 57, 11,155,245, 60,205,179,125,221, 22,121,129,200,158, -166,134,170,204, 97, 16,193, 3,150, 52, 68, 19, 1,131, 87,189, 93,215,139,141,207,138,241,120, 60,234,234,253,229,171,103,159, -126,246,232,243, 23, 47, 31, 61,127,241,242,102,190,222, 85, 39,211,241,247,127,227, 23,255,254,239,253, 74, 57, 46,171,218, 39, -156, 38,192,235,219,171, 39,143,158, 60,121,113,189,216,237,142,198, 99, 98,154, 29, 79,196,114,211,135, 39, 79, 94,236, 55,155, -105,158,167,214,198,188, 61, 13, 55,216,136,191, 2,195,209,197,141,132,131, 64, 97,136,141,179,209, 79,193, 68,140,209, 92, 16, -124,136,248,191, 56, 83, 29, 92,240,136,236,172, 33, 38, 9,162, 10,214, 80,180,158, 51, 15,248, 17, 31, 20, 16,157,177,209, 57, -111,141,233,130,196, 79, 83,132,138, 48,161,179, 86, 68,130, 68, 52,202, 32,211,139, 66,136, 71,119,198,131,209, 77, 5,213, 34, - 89,230, 16,137, 13, 76,168, 49,191,138,162,160,170, 38, 34,127, 99, 15, 3, 89, 47, 18,211,191, 8, 24,194,128,119, 75,172, 1, - 34,141, 58, 15, 82,208, 65, 93, 17, 0, 64, 81, 69, 67,204,236, 16,213, 26, 99, 8,216, 90,239,253,200,185, 60, 31, 33,114, 36, -203,155, 56,212, 37,141,220,200, 1, 84, 31,227, 67,195,247, 54,224, 98, 52,138,188, 62,202,113,170, 72,106, 34,233, 24,226,174, - 68,174, 28,143,202,201,213,237,252,227,247,206, 4,137, 15, 76, 11,208, 88, 91, 65, 10,160, 65,129,244,128,211,101,160,104,190, -212,129, 69,192,128, 33, 82, 16,144,137, 14,238,157,168,212, 83,196,225, 34,235, 16,231, 5,136,170, 25, 32,106, 0,208,225, 12, - 28,157,152, 72,175,209,243,225,222,253, 7, 31,190,255,246, 15, 63,121, 52, 41,167,121, 49,154,157,156,213, 77,117,117,125,243, - 63,255,239,255,231,191,246, 59,223, 73, 18,223,117, 85, 81,102, 8,254,250,250, 98,223,246, 18, 90, 21, 77, 51, 71,100,144,152, -112,184,157, 14,216, 47,142, 79, 12,197,171, 76,148,236,148, 34, 9,152,128, 32,174,206,145,212, 73,132, 26, 58,101, 23,155, 58, -212, 43,218,104,245,241,104, 1, 35, 23,116,128,110,147,138,168, 0,169, 12,114, 84,212,134, 20,227, 96,121,176, 10,177,177,214, -246,189,160, 66,208, 16, 72, 73,163,230,245,227, 20,246, 96, 90,250,177,142,133,190,173, 70,147,123,179, 55,222, 65,199, 55,207, -159,253,119,127,242,223,247, 74, 70,228,239,124,243,231,126,253,183,127,115,254,226, 89, 23,120,118, 58, 21,223, 52,117,227,146, -236,233, 23, 79, 39,167,247,183,171, 57, 72,112,197,200,144,138, 8, 41,249,174,113,197, 72,118, 59, 99,211,229,252,122,187, 94, - 59,234,236,200,137, 98,213,182,157,104, 8, 82, 20,249,228,232, 72, 67,127,124,116,180, 89,205, 83,155, 8, 42,208, 90, 67,112, -206,160, 74, 64,180, 54, 77, 92, 58,158,156,144,115,206,186,205,162,222, 55,251, 41,179,154,146, 52, 52, 85,157,143, 79, 77,154, - 73,211, 85,141, 40,245, 76,210,236,215, 72,188,218,172,124, 8, 46,201, 20,109,211,244,161, 89,142,143,239,113,234,178, 98, 44, - 34,217,228, 44,207, 70, 93,189,238,218,182, 40, 78,179, 44, 89, 45,175,210, 36,243, 34, 8,102,181,190, 73,133, 52,120, 31,188, -117,133,104,221, 54, 59, 85, 32,209,170,174, 93,146, 65,144,205,102,165,193, 55,251, 59,182,187, 34, 73,198, 39,247, 76,211,106, -128,106,115,105,109, 78,105, 46,156,143, 70,211,186,218,104,232, 65,125,179,191,147,222, 54,219,165,205, 70,163,163, 7,125, 8, -193,107,183, 89,150, 39,231, 77, 93,139,111,202,241,232,244,225,251,202,134,196, 88,114,203,171, 23,137,203,146,209, 88,250, 6, -216,200,238,198,141,239, 87,117, 55, 61, 62, 13, 94,136,231,171,197,117, 46, 38, 47,198,193,183,187,221, 93,215,213,170,161,111, - 43,151,150,251,106,215,122,233, 85,141, 23, 81, 56, 62, 61,175,118,235,106,183,180,118,180,235,118,149,135,220,154,119,222,124, - 75,250,166,107, 60,178, 17, 48, 29,180,121, 94, 0,232,221,122,137,160,231,211,241,178,110, 95,222,220, 36, 73, 98, 10,217, 85, -123, 64, 99,221, 73, 50,154,230,249,168,170,119,155,249, 21,104, 47,221,186,222,151,239,156,167,133, 13,225, 80,235, 97, 25,251, - 32,235, 77,183,237,193,114, 50,153, 58,223,181,215, 47, 47, 47,174,175, 94,190,188,124,113,115, 59, 95, 46, 23,155, 93,150, 38, -191,245,139, 63,253,171, 63,251,141,243,251,199,117,235,195,190,181, 26,154,106, 63,159,223, 92, 93,221,188,186, 91, 90, 50, 95, -251,202,251, 29,234,229,223, 46, 2,210,124,189,189,185,188,201,216,230,137, 99,134,224, 21,144,130, 4, 65, 81, 1, 68, 96,141, - 46,205,184, 20,146,170, 38,198, 70, 90,183, 32, 68,220, 44, 1,134, 88, 38, 36,146, 24,246, 18,207,162,242,122,109, 2,208,166, -239, 13, 98,226,172, 15,161, 11,194,135,161, 21, 33,106,100, 50,136, 34,136, 35, 20,133,206,247,113,190, 39,170, 28, 5,107, 36, -141,211, 83, 36, 64, 69, 5, 70, 10, 64,132,161, 11, 62,214, 44, 68,209,128, 15, 78,136,232,189, 51, 54,138, 69, 66, 49, 53,138, - 42,130,138,226,200,122, 9,162,234,125,207, 76, 68,232,189,136,138, 65,131,136,204, 38,104, 24,172, 36,170,136,200,132, 1, 81, -130,178, 33, 81,102, 68, 54,108, 1, 90, 97, 47,129,217,132,182, 78,217, 76,138, 18,153, 37,120,107, 45, 33,240,247,191,251, 91, -131,154, 17, 51,235, 18, 6,175,228,208,231, 34,120, 40, 2,136,114,132,143,139, 44, 2,227, 16,112,136, 64, 33, 36,100,195,167, -247,239, 25,128,201,184,144,161,213, 36,146,203, 56,250,229, 35, 41, 1, 25, 21, 4,163,251,221, 34, 2,144, 33, 85, 60, 88,116, - 6, 78,116,172, 89,137,225, 34,138,147, 17, 38,129,248,117, 33, 33, 26, 54,200, 72, 10, 4,236, 81,136,141, 4,137, 0, 60, 0, - 69,144,129,200, 6, 16, 20, 78,143, 79,159, 63,127, 94, 55,109, 89,142,202,114,138, 12, 69, 86, 60,126,252, 36, 31, 77,206,239, -157, 53,109, 77, 76,205,110,107,146, 49, 72,223, 52,126, 58,157, 74,156,224, 12,149, 0,116,200,168, 42, 42, 18,160, 68,145, 10, - 25, 1, 21, 85,197,171, 14, 94,125, 0,245, 26,152, 45, 0, 4, 17, 16, 97,182, 3,238, 94,163,181,113, 72,246, 30, 64, 62,136, -140,234, 3,196,218,168,120, 37, 49, 17, 22,198, 3, 15, 20, 94, 79, 88,201, 36,121,154, 23,249,228, 40, 73, 11, 67,134,144,128, -135, 63, 18,135,222, 81,226,131, 24,159, 34, 70, 80,180,249, 27, 95,249, 6,167,110,125,125,243,159,255,199,255,164,106, 58,208, -240, 51, 63,243,179,191,253,189,239,112,194,127,249,231,127,205, 8, 42, 80, 85,245,248,193,249,211,199, 47,175, 95,190,236,125, -231,187, 54, 47,198,190,217, 18,198,216, 29,231,121, 89,239, 55,245,110, 71,160,155,213,178, 13,154, 80,155, 39,182, 15, 97,181, -217, 92,205, 23,243,229,234,205,135,239,125,253,203, 95,111,214,215,168,126,191,219,168,234,122,183,111, 59,239,189, 15, 33, 48, - 35,176, 45,139,241,249,249, 91,247,223,254,242,232,248, 1,168,191,189,186, 72,198,247,207, 30,220,223,173,110,196,135,208,183, -214,229,126,183,168,170,245,102,181, 4, 52,245,126,157,231,197,246,238,213, 98, 87,229,229,145,113, 73,146,230,125,219,172,119, -187,204,194,217,249,219,147,217,217,126,183, 87,233,214,183,143, 69,177,170,235,196,154,205,252,169, 45, 78,138,204,174, 86,235, - 36, 45,218,222, 35, 38,125,215, 33, 37,170,161, 15,100,140, 77,179,178,175,119, 93,192,198,119, 93,219,139,132, 32,146,142,102, -199, 39,179,113, 57, 78,179,241,110,125, 55,191,189,146,174,203,199, 83, 8,129,136, 81,122,147,228, 34,193, 89,155, 21,211,237, -234,102, 52, 59, 31,207, 30, 24,131, 77, 85,177, 49,121, 57,189,121,250, 87,192, 6,209, 34,244, 36, 66, 72, 70,165,218,204,173, - 75,251,174,174, 54,119,109,211,244,189,104,104, 79, 30,188,159,101,174, 90,223,181,117,221, 41,220,123,243,227, 44, 27,133,174, -218,174,175,210,242,212,166, 19,239, 59, 4, 76,210, 76,165, 37,206,202, 81, 14,161, 69,202, 84, 61, 39, 73,175,100, 92, 70,214, -149,229, 52,203, 11, 50,102,122,116,220, 9, 26,118,170,200, 18, 72,247,171,218,223,159,157,105,223, 4,192,241,104, 12, 46,107, -130, 76,202,177,168,238,118,187,190, 15,109,181,237,155, 53,153,180,169, 86, 46,155,238,247, 59,178,147,170, 9, 89, 74,153,139, -234, 39, 84,157,191, 94,246,157,216,188,204, 25,176,222, 46, 46, 46, 94, 62,121,250,236,211,167,207,190,120,121,113, 53,159,111, -155,230,189,183, 30,254,131, 63,252,173, 95,255,197,159,116,121,210,236, 3,121,193,174,189,126,117,241,228,209,147, 23,151, 87, -251,170,157, 78, 38, 18,250, 90,101,185,173, 46,175,239, 46, 47,174,239,110,151, 35,107,178,196, 1,170, 35, 3,128, 65,186,182, -247,157,247, 68,232,189,198, 40,126,172, 55, 34,130,212, 24, 65, 12,160,108,152,201, 16,168,168,244,193, 91,230,200,233,237, 66, - 0,136,250, 45,128,106, 98,109,156, 71, 89, 34, 64,236,189, 40,104,132,145, 5, 4, 17, 97, 30,178, 61, 68, 24, 4,122, 0, 34, - 52, 76, 18,167,138,200,142, 7, 82, 83, 56, 84,167, 89, 99, 37,118,170,161, 18, 0, 50, 6, 9,175,161, 92,131, 40, 77,104,152, - 65,193, 16, 9,196, 67,218,112,161, 48,196,145, 30,232, 69, 16,129, 99,176, 21, 80, 69, 18, 99,148, 48,168, 2,130, 33,235, 85, - 45,179,179, 44,136, 2,200, 32,214,166,113,196,103,200, 48,129,143, 35, 73,230,170,105,219,174, 61, 42,114,101, 86, 80,199,228, - 44,123, 81,254,254,111,127, 59, 26, 42, 35, 69, 13,134, 81,197,225,104, 25,211, 11, 7,158,144,234,144,221,130,104,192, 36, 68, -166, 1, 85,104, 56, 4,201,179,164,222,173, 93,146, 25, 4, 17,101, 75, 24,129, 41,113, 46,200,195, 58,132,122, 64, 69, 7, 85, -137, 66, 86,156,123, 3, 1,137, 10,179, 25, 40, 69,240, 99, 86,129, 14,225, 49, 38,100,107, 19, 98, 86, 0, 98, 14,128,134,120, -136,243, 12, 6,204,184, 95, 97, 52,178, 74, 0,231,220, 40, 49, 79, 30, 63,205,139,209,104, 50, 78,109,166,193, 51,225, 39,143, - 30,125,252,209,135, 73,146,180, 77,107, 44,229, 69, 57, 26,141,178,108,100, 77, 88, 45,215,121, 94, 48, 69, 70, 58,189, 70,236, - 17,155, 88,228,132, 20,101,171, 16,111,141, 68, 36, 32, 17, 61, 54,164,250,136, 12, 91, 34, 20, 13,241, 34, 40,209,244, 73, 7, -243,124, 76,169, 1, 74,232,112, 80,241, 6,158, 76, 36,126,138, 10, 33, 29,232,240,164,160,198, 18,155, 36, 77, 71,137, 43,140, - 75,226,192,129,104, 40,216, 27,250,114,226, 30, 25,219, 0,216,160, 82,121,116,146, 29, 77, 86, 87,151,255,229, 63,254,199,139, - 77,205,132, 31,127,244,229,239,252,254,247, 38, 39,211,213,124,253,252,209,227, 0, 84,173,215,247,206,239,215, 77,243,151,127, -254, 23,100,243,182, 94,100, 73,110,172,101,155, 1,179,182, 59, 9, 93, 47,158, 65,124,144,245,174,109,234, 21,104, 72,172,103, -132,182,111,231,203,229,205,252,110,185,221,125,240,238,151,222, 58, 61, 70,109, 22,119,119, 93,215, 46,231, 87, 85, 8, 93,219, - 56,199,198, 88, 47,154, 37,217,209,236,232,193,195,183, 93, 94, 76,102,179, 32, 18,124, 16,223,216,164, 32,223, 41,154,190,219, -183,187,141,248, 70,125,239, 70,179,196, 37,196,169, 33,252,252,179,191,242, 68,108,172, 4, 47,226,173, 77,146,108,212, 52,181, -203, 70,218, 53,251,186,210, 32,192,169,250,218, 36,197,108,118,223,119,157,179,198,154, 60, 40,156,156,157, 51,244,222,119, 8, -224,187,221,102,241,146, 77,154,103, 89,150, 56,223,121,227,146,190,173, 92,146, 42,226,201,233,217, 7, 31,126, 52, 46, 71,249, -244,100,179,184,186,190,124, 21, 0, 27,145,190,173,165, 93,230,227, 25, 27,135, 42,198,229, 73,154, 0, 25, 38, 50, 54, 11,125, -213,236, 22, 89,113, 28,143, 66,108,221,104,124,236,146,196, 34, 11,152,164, 40, 1,113,183,154,119,125,191, 91, 93, 38,229, 25, -219,180,107, 42,182,121,146, 22,251,213,109, 16,117,233, 56,205,198, 68, 74,198, 26,227, 36,244,140,180, 93,206,147,209,113, 86, - 78,189,111,217,166, 76,230,225,249,155,101, 57,170,246,213,226,234,179,233,236, 60,201,138,182,222,140,138,220, 37,233, 40, 75, - 54,155,133, 2, 38, 89,193,140, 77, 91,117,253,206,184,233,108,124,100, 25,208,141,202, 81,153,184, 20,181, 91, 44,238,246,251, -245,241,209,113, 31,124,188,155,111,118, 27,199, 38,120, 63, 61, 57,203,138, 9,106,104,122,223,132,188,200,153, 89,110, 55,221, -106, 7, 46, 47,210,212,116,251,253,237,213,171,103,207,159,127,242,197,147,207,158,190,184,184,185, 93,108, 54,211,178,252,227, -239,252,202,191,253,251,191,113,255,193,113, 93,117,216,163, 19,221, 45,239, 30, 63,126,250,252,213,213,237,106, 85, 20,133, 77, -108,126, 52, 34,203,215,203,253,221,213, 13,250,144,177,157,228,169, 49,198, 25, 27,141, 45,157,239, 4, 52,154,146,163,215,197, - 26,131,132,108,209,112,252, 97, 5,133,145, 57, 78, 53, 17, 0,209, 28,166, 86,177,235, 45,136,248, 16, 66,240, 40, 16, 9,220, -150, 73, 15,142,189,131,160, 10, 1, 0, 8, 2, 0, 27,195,135, 79,143, 99, 82,196, 0, 10, 72,142, 98,126, 40, 30,218, 80, 84, -153,169,151,161, 66, 35,222,234,163, 80, 59,100,151, 14,232, 62, 66,178,204, 4,241,165,162,241,134, 8, 73, 69, 35,206,157, 0, - 21,200, 32, 49,178,168, 68,210, 9, 17, 9, 14,229, 18,113, 65,142,238,254,200, 20, 96, 38, 98,246,222, 27, 98, 54, 44, 32,145, -219,111,200,116,160,155,253,190, 76, 56, 73, 19, 64, 52, 76,104,216, 7, 81, 5,254,254,183,127,235,117, 34,126,176,163,196, 91, - 1,145,170,128,128, 6, 69, 30,134, 29,145,252, 30,141, 46,177,158, 53,174,120, 16,121,245,160,136, 28,186,126, 91,135,163, 73, - 17, 66, 79,138,160,200, 76, 56, 36,178,116, 64,169, 35,168, 6, 84, 66, 1, 16,100, 38,213,240,218,124, 4,120,168, 55,229,248, - 79,200, 97, 64, 2, 20,109,137,196,100, 9, 41, 46,165,252,227,222, 34,136,115,200,232,248,161,193,142,142,160,210,251, 94,138, - 73, 49,191,187,219,110,119,163, 81, 57,157, 30, 35, 35, 51, 45,239,238, 22,155,237,199, 31,188,215, 52, 53, 0,116,109,157, 20, -163,245,252,226,201,179,231,211,233,140,135,238, 85,138, 41,143,195, 14,199, 26,185,193,200, 34,158,200, 28, 4,145, 1,130, 29, -111,145, 81,152, 31,198, 83, 26,119,133,161,183, 43, 14, 34,162, 5, 22, 16,196, 15,213,169, 3,194, 41, 38, 33,116,144,190, 98, -171,162, 2,104,196, 26, 0,144, 49,131,122,197, 24,235, 3, 41,150,193,224, 48,209,125,205,210,143,215, 30, 81, 45,103,199,125, -211,253,215,255,201, 63,125,118,113,235, 24,207, 31,190,249, 7,127,248,135, 71,199, 99, 64, 92,205, 87,151,207, 31,177, 77,201, - 96,213,202,231,127,243,195,166,237,166,167,247, 25,196, 36,163, 32,194,132, 32, 1, 66,171,170,228, 70,204, 82,237, 54,219,125, - 99,216,248,102,155,152,222, 32,117, 93,119,183, 88,191,186,157, 55, 93,247,181, 47,253,196,123,239,190,235,235,221,102,187,107, -235,125,211,135, 16,231, 93,132,193, 7,103, 76,146,101, 71,163, 50, 41,202,242,222, 91,249,104, 82,239, 43,155,231,236,251,174, -239,150,203, 27, 34, 35,221,158,147,146, 76,154, 36, 89,104,219,182,109,214,119,207,154,170,106,149, 4,156, 33,234,186,198,165, -105,219,236, 51,203,197,248,204, 22,227, 16,130,209,208, 86,107, 38,108, 61, 42, 39,121, 81,100,229, 12, 84, 54,155, 59,151,228, -108,120,113,253,210,186,196, 38,133, 82,234,209,245,237, 94, 65,141, 49,198, 37, 93,179,245,190, 1,147, 49,193, 59,111,189,107, -157,187,189,124,186, 91,205,235,166,111, 60, 20, 69,142,210, 7,209,188, 56,202,210,194, 88, 86,114,161,111,216,112,154,142,156, -115, 10, 94,124, 64,144,208, 55,108, 18, 54,148,184, 36,177, 73,189, 91, 73,240,125,187,109,118,187,190,109,141, 75, 93, 82,102, -163,227,174,218,140,199,229,126, 53,207, 70, 35,148,110,183,219,121, 47,170, 98,144,231,183, 79,147, 36,203,242,212, 58,103,141, - 77,179,212, 87,107,228, 76,197, 59, 75,251,213, 45, 67,107,210,108,179,186, 35,151,179, 49,251,245, 34,248, 54,205,203,113,145, - 55,109,179,107,186,217,201,121,181,219, 92, 45,174,171, 94, 68,249,104, 50, 99,242,235,237,142,220,136, 56,166,231,237,241,236, -120, 83,135,122,191,122,247,252, 60,132,190,235, 90,162,100,121,251, 34, 73,243,190,171,119,235, 69,215, 52, 77,179,107, 60,122, -117,109,239,133,139, 44, 75, 65,186,229,221,237,179,103,207, 30, 61,123,254,197,243,151,207, 47,175,175,239, 22,125,144,159,255, -198, 87,255,193,191,254, 91,223,248,248,189,182, 15,125,227, 83,206,124,211, 92,190,120,246,217,227,103, 23,183, 75,235,204,135, - 31,189, 55, 57,157, 46, 86,235,201,209,244,118,190,184,184,184,182, 1,139, 52, 97, 67,198,112, 98, 13, 51, 91,230, 78,131,247, - 66,131,191,145,152,140, 25, 58,127,200, 90,195,108, 0,145, 45,199,124, 97,144, 16, 67, 42,170,218,121,111, 14, 69, 55, 74,216, -247, 93, 83, 55,251,182,233, 66, 71, 4,137,115, 81, 43,143,152,222, 24,200, 71, 68,107, 25,200,112,244,106, 3, 34,177, 2,244, - 65, 35,183, 60,210, 24,131,168, 97, 50,200, 67,143, 52,128, 33, 36,192, 88,210,201, 24,185, 35,135,122, 77, 66,195, 38,250,185, -141, 53, 62, 28,170,223, 48,234, 60, 96,136,141, 53, 33, 40, 2, 24,138,227, 80, 31, 67, 99, 52, 24,119, 8, 0, 58,239, 73, 53, - 53, 46, 4, 25,202, 3,105,208, 84, 44,179, 33,238, 85, 64,133,137, 69, 85, 0,182, 85,141, 26, 38,197, 72, 21, 19,142,142, 73, -181,108,124, 8,252,131,239,126, 43,122,183,135,238,150,131,211,218, 24, 22,149,225,155,146,136,147, 63,180,179, 12, 61, 75,135, -209,203,193,140, 14, 72,138,152, 89,186,185, 91,158,204,166, 62,200,208,239, 7,136, 32, 72, 24, 29,131, 3,185, 22,226, 25, 21, -227,138,136,230, 32, 91, 17, 69,206, 17, 17, 50,154, 72,148, 1, 64, 34, 19, 13,164,104,220,129,146,133,170, 66,114,232, 21, 84, - 5, 12, 52,164, 63, 99, 38,106, 24,219,170, 2, 72, 48,104,210,196, 60,123,254,210, 50,149,227,163,178,156, 72, 16, 70,249,155, - 79, 62, 61, 57, 59, 59, 57, 62,174,170,173, 97, 16, 65,151, 48,162,123,255, 75, 95,154,223, 92,186, 36,141,227,202, 56, 18, 21, - 13, 16,123, 38,117, 48,105, 41,136, 14,244, 75,128,173,200,172, 0, 0, 32, 0, 73, 68, 65, 84, 28,180,120,213, 31,251, 63, 15, -173,220, 49,116, 74,177,178, 41, 58, 78, 69, 67, 8,131,123,125,152, 40, 28,176,171,104, 34,225, 32, 26,153,244, 48,133, 29, 30, - 81, 17, 5,101,231,226, 77, 10,145, 68, 34, 33, 42,130,153, 41, 86,197,198,123, 34, 0,177, 53,204,201, 63,251, 47,254,211, 47, -158,223,178,225,163,233,248, 7, 63,248,163, 7,111,157,247,222, 27,107,231,183,171,221,122,149, 56, 91,181,221,252,234, 69,215, -214,105, 94, 48,106,187, 91,128,136,201, 74,245, 29, 0,168,201, 93, 49, 2,245, 64,110, 53,191, 83, 36,107, 83,227,146, 4,118, -132,184,222,237,239, 86,203,139,249, 29, 34,253,194, 55,127,241,104,124,116,125,125,161, 72,190, 23,233,251,166,217,231,105,218, -116, 61, 16,147,250,114, 52, 62,187,247, 48, 25,207,238,191,251, 21,237,154,245,106,233,164,218,111, 46,174,158,127, 54, 62,125, - 47,205, 71,204,216,108,215,213,118,213,119,117,219,110,250, 62, 40,154,186,217,111,154, 58, 77,178, 36,203,178,242,248,120, 58, -157,157, 62, 4, 50, 0,208,110,239,170,205,171,187,139, 79,146,209,125,155, 78,250,174,102, 99, 18,195,187,249, 19,193,132, 56, -169,182,215,104, 12,152,172,111, 26, 85, 96,195,170, 18, 66,111,152, 88,133,161, 69,164, 52,177,173, 15, 93, 31,202, 34, 77, 50, -103, 92,209,212,219,174,107,239, 22,183,130,156,165, 9,155,164,200, 51,237,219,253,234, 34,203,203,174,222,112, 58, 41,203, 73, -232,251,245,234, 42, 47,207, 76, 50, 10,226, 13, 51, 41,116,205,182,107, 43,182,169, 2,180,245, 14, 17, 64,188, 49,174,107, 86, - 77,181, 1,105, 67,219,181,125,125,250,224,109, 8,161,110,234,229,106,238,146, 52, 27, 29, 37,105,102,136, 22, 87,143, 76, 82, - 16,231, 93,187,223,109, 87, 66,220, 53, 77,223,182,251,245, 37, 39,101,154,228,235,249,133, 41, 38, 68,108,172,203,138,113, 57, - 62,242, 93, 85,111, 55,249,248,164,170, 54,251,186, 59, 63,123,243,100, 58, 5,213, 52, 73,218,182,230,180, 72,242,146, 17, 2, - 72,215,123, 32, 59,202,147,197,106, 85,117, 13, 3, 32,187,166,173,109, 90,178,205, 52,248,192, 41,184,124, 84,148,179,217, 40, - 79,161, 24, 77,157,227,174,222,191,124,241,228,241,147,167,143,158,189,122,121,117,115, 49,191, 93,110, 54, 15,239,159,252,251, - 63,248,206,239,255,230,207, 37,137,171,107, 97, 37, 35,184,189,189,121,242,248,209,203,235,219, 77,221, 24, 99,222,124,120,111, - 94, 87,183,119,171,231, 23,183, 87, 23, 87, 55,151,139, 89,150,185,204, 38,214, 18,177, 37,102, 99, 25, 57, 22,245, 24,203, 10, - 64, 64,214, 26,142,166,106,107,172, 49,209, 69, 97,201, 24,182, 42, 24,164,139, 11, 86, 68,220, 34, 19,138, 42,145, 33, 14, 18, - 54,213,110,223, 52,193,139, 53,198, 90,107,136,153, 24, 16, 37, 18, 37,153,163, 47, 17,117,208, 48, 25, 14,233, 65, 0, 59,172, -116,168, 49, 79, 52, 0,147, 95,247, 43, 11, 41,134,161,106, 13, 25, 0, 12,129, 87, 98, 52, 28,215,104,140, 96,253,240,154,236, - 13,128,136,150,216, 48,245, 65, 0,148,129, 16,177,247,109, 80, 53,196,230, 96,175,140,133, 30,135, 92,100,220, 18, 6,110,139, - 10, 26, 66, 71, 40, 72,130, 17, 98, 76,162, 96, 13,175,170, 26,164, 31,231,133, 51, 28,151, 65,107,204, 64,227, 87,229, 31,252, -246,183, 15,116,245, 67,117,211,240,155,215,142, 73, 24, 92,236,116, 96,193, 15, 5, 18,131, 51, 59,118, 86, 0,113,180,191, 24, -182,205,102, 45,156,100,169,197,160, 68, 16, 59, 30, 99, 4, 55,182,199, 17,113,108,126,100,203,100, 45,242,192,153,100,138,161, -252, 67,248,159, 6,147,105,140,201,197,100, 66,252, 98, 98,116, 22, 49, 50,106, 14,205,238, 58,244, 3,195, 1, 76,125,152, 27, - 0, 16, 40, 66, 57, 30,173,238,230,235,109, 53,153, 76,202,201,212, 89,179, 93,174,214,155,237,243,203,139,175,125,244, 37, 17, -239,187, 94,213, 95, 94, 94,119, 77,103,156, 13,193, 75,232,147, 36, 27, 90, 74,134,121,165, 87, 81, 98,139,108, 84, 67,144, 30, -233,192, 13,136,206,246, 67,163,112,196,130, 97, 24,222,187,129,155, 29, 55,234, 56,251, 25,246,212,168,199, 69,139,123,236,118, - 10,177,207, 50, 34,201, 14,118,213, 3,236,126,160, 96, 28,154,203, 7, 7,155, 70,217, 62,186,143, 6, 50,245,176,209,241,255, -244,167,255,226, 47,254,230,211, 60, 75, 70,121,250,123,223,251,254,151,191,254,149, 16,250, 40,121, 61,255,226,145, 71,147, 21, - 37,113,194, 4,168, 52,158,206,216,164, 65,144,217,160,130, 49,182,105,234, 44, 79,153,141,239,234,186,147,106,187,102, 8, 93, -219,168,180, 41,119, 42,176,217, 87,215,243,197,124,181,202,210,244,167,191,242,149,245,106,225, 12,139,248,182,218,214, 85,133, -168, 77,215, 52,109, 75,160, 69,150, 61,120,240,230,248,236,188, 60,126,120,116,122,114,119,249,172,222, 87,109, 91,247,193,142, -166,167, 16,218, 34, 47,250,170,218,110, 86,193,119,213,250,154, 76, 30,175,151,139,213,220, 36, 57,187,164,217, 45,197,119,211, -227, 7,206,154,237,242,234,246,250, 81,215,134,201,244, 76, 20,243,209,108,187,120,185,190,123, 10,210,207, 30,188,239,219, 93, -223,247,228,178, 44,205, 70,163, 73, 93,109,217,164,125, 87,133,122,211,119,123,151,140,130,239, 93, 98,146, 60,183,198, 26, 54, -203,237,174,107, 43, 6,156, 78, 38,162, 90, 76,206,178, 98,162, 96, 22,203, 69, 81, 76,210, 44,203, 29, 21,105,225,202, 83, 5, - 8,193,231, 69,169,253,174,247, 62, 77,143, 52, 52,168, 33,205, 38,136, 18,124, 71, 54, 83, 9,193,183,218,119,100, 12,145,173, - 54,243,208, 53,160,216,117, 93, 94, 28, 73,240, 26, 68,186,110, 49,191, 44,202, 99, 8,181, 49,137, 97,187,223,204,141, 77,146, -114, 86,215,117,239,251,248,137,171,150, 23, 46,201,247,213, 38, 14,103,146,116,172, 38, 95, 47,110, 56,155,156,158,222, 59,187, -119, 30, 39, 79,128,176,218,172, 36,212,231,231,239,118, 77,181, 90, 92, 90,155,142,203,233,120,114, 44,190, 71,164,178,156, 90, - 16, 36, 14,161, 67,228,196, 80,213,246, 77, 91, 23,153, 45,138,114, 52,153, 9, 96,181, 93,148,227,241,108, 54, 62, 61, 26, 29, -207, 38,227,114, 34,190,189,189,122,245,248,241,147, 71,207, 94,188,184,184,121,113,125,125,125,183,200,146,228,219,191,244,205, -127,247, 7,223,122,255,189,243,125,221,169,231,132, 76,187,219, 94,189,120,241,232,201,243,203,187,149,115,238,104, 92,164,227, -209,182,218,255,232,179, 39, 4,186, 89,238, 50, 50,179,233,208,186,227,140, 49,108, 80, 20, 85,137,227,135, 26, 99,163,189,179, -198, 48, 91,107,201,242,161,197,117,104,199,208, 32,160,202, 3,193, 54,146,151,134,106,104,139,216,251,176,111,234,222,247, 65, - 68, 68, 0, 49, 75,210,212, 58,137,235,196, 1, 41, 18,139,165,227, 13,250,245,199, 21,145,216,196, 75,182,202,176,121,136, 57, -184,253, 37, 70, 75,135, 89, 32,171, 70, 81, 97, 64, 60, 50,147, 42, 88, 34,141, 13, 60, 42, 49,193,207, 10, 38, 58,217, 0, 37, - 82, 73, 20,129, 72,188, 71, 34, 27,115, 4, 67,205, 6, 32, 34,115, 76, 90, 33, 1, 24, 99,226,209,119, 56,250, 33,118,170, 7, - 22, 56, 70, 84,194,190,247,117,219, 28,101, 89,154,166,189, 8, 1, 34,129,128,168,130, 97, 19,124,224, 63,248,205,111,197,253, -235,144, 41,138,167,243, 1, 67,127,112,207, 64, 80, 96,203, 24, 65,155,168,116,200,143,198, 62,189, 40, 8,240, 64, 61, 49, 24, -186,213,174,155, 29,149,240, 58, 55, 69,209,120, 66, 0, 74,236, 64,148, 13,177,179, 56,108,145,136, 81,129, 66, 6, 82, 67,116, -104,241, 59,116, 30, 69, 12,127,172, 59, 57, 52,155,162, 53, 3,235,150,245, 80,212, 23,147,165,120,168,143,137, 19,227, 31, 55, -128, 16,242,236,168,124,252,252, 69,150,102, 73,146,168, 74,219,212, 77,219,189,188,184, 60, 61,155,221, 59, 57,174,155,206, 37, -201,244,248,254, 7, 31,190,255,234,197,147,227,211,123, 77,181,117, 46, 67, 54, 68,230, 48,144,143,237,101, 49,162, 27, 34,236, - 69, 68, 94, 95,241, 84, 4, 99,148, 73,135,224,242,161,211, 3, 99,175, 85, 12, 68, 31, 54, 76,198,131, 32, 7,138, 16,157, 76, -175,203,175,225,144,231,138, 79,221,240,131, 14,189,139, 67, 67,109, 84, 6,163,155, 50,234, 69, 58,244,185, 35, 25, 94, 47, 23, -255,235,255,246,103,136, 48,202,242,239,254,238,247,127,226,167,190,222,213,123, 52,198, 26,222,172,182,151, 87,243,190,169,216, -101,160,253,118,117,135, 54, 1, 96, 21,104,234,125, 8,222, 24, 98,194,118,191,207,202,163,182, 90,175,111, 95,125,241,217, 39, - 9, 73,226,146,182, 19,166, 58, 33, 17,212,249,106,121,121, 51,223,236,171,147,217,189,175,125,244, 53, 8,157,120,223,182,253, -174,218, 55,109, 77,210,239,154, 46, 73,146,224,187, 50,203, 78,207, 30,186,172, 72,178,220, 89,187,217,172,211, 81,201, 46,155, -157,157, 23,229, 17,219,164,169,119,190,239, 58,223, 55,251, 61,177, 5, 99,198,105,186,188,125,177,238,188,179, 9,146,113,217, - 52, 31,141, 38,227,178,239, 58, 32, 86, 76,173,177,211,241, 56, 41, 79,119,251,165, 77,199,156, 78,243,114, 98, 73,128,211,174, -221,128,138, 15,221,104, 52, 43, 71,101,215, 53,157,111,109, 82, 26,151,236,182,139, 60,225,209,248,132,236, 40,207, 74, 9,173, -244,161,105, 67,211,213,227, 44,237,170,185,136,220, 61,255,235,241,209, 73, 81, 76,172, 54, 71, 71,179,241,228,212,101, 89,187, -223,136,120,155, 78,250,122,221, 87, 27, 65, 51, 26, 79,219,122,223,181,123,151,228,161,107,128, 12,137, 6, 13,105, 50,234,124, - 31,246, 27, 66,211, 7,223, 54,123, 64,206,242,209,110,117,131,218, 36,217, 8,137,178,172,236,154,221,197,179,191,157, 29,159, -111,183, 87, 68, 54,113, 41, 19,134,190, 75,210,113, 93, 45,167,167, 15,206,223,254,240,228,228, 94, 16,221,237,235,190,239,119, -119,151,187,205,213,241,131, 15,218,106,219,118,117,158,230,117,117,247,226,213,243, 36, 27,167,121, 89,150, 51,155,142,235,253, -122,114,116, 18, 66, 15, 32,198,218,162, 28,135,190,111,170,109,189,189, 61, 61,187, 79,196,198,101, 1,244,236,248,212,186,116, -177,221, 48, 72,154,102,193, 75, 49, 41,239,157,205, 30,156,157,157,156,221, 99,134,197, 98,254,252,217,147,199,207,158, 62,189, -184,120,126,121,253,226,242,122,179,111,126,242, 43,239,253,195, 63,252,246, 47,253,204,199, 72,216,212,193,105,162,190,189,126, -249,226,249,211,103, 23,183,115, 65,252,198, 79,126,213,141,179,166,105,166,167,211,231, 87,183,203,187,149, 19, 28,101, 46,113, - 6, 17, 19,231,172, 49,206, 37,160, 42, 8,214,184,248, 28, 91, 99,162, 12, 97,136, 13,153, 88, 65, 7, 3, 10,230,245,241, 18, -172, 49,131, 96, 0, 16, 84, 29, 27, 2, 6,144,160, 33,136, 4,241,109,223,121,239,227, 85, 54,117, 46,113,238,240,233,163,193, -138,128, 56,244,218, 19, 14,253,124,128,128, 1, 4,144, 88, 84,105,104,187, 70, 80, 96,231, 52, 12,173,161,160,224, 53, 16, 50, -128,144,146, 18,198,211, 23, 32, 26, 70, 64, 22, 13,209,172, 25, 99, 74, 17,171,238, 67, 32, 0, 98,150, 32, 65,188, 7, 73,173, - 99, 4, 17, 80, 85,203,212,123, 79,196,206,186, 78, 85, 1,140, 51,145,225,104,163, 63, 18,177,245, 30, 16, 82,195, 67,118, 22, -212, 88,238, 4,150,219,237, 36, 51, 89, 54, 82,149,196,217, 8, 32, 83, 36, 13,130, 34,125,240,252,135,191,251,237,248,190, 73, - 68,222, 68,219, 59,113,236, 94, 29,176, 38,100, 81, 53, 40, 24,131,136, 2, 10,104,162,232, 28,226,155, 56,212,232,198,115, 53, -130,181,102, 62,191,153, 28, 29,131, 6, 81, 56, 52,196, 68, 11,164,193,104,110, 65, 64, 67,226,195,255,199, 75, 18, 91, 49,232, -128,121, 65, 84,137,199,216,195, 47,209, 46, 21, 45, 74,160, 18, 6, 68,134,247, 49, 25, 12, 7, 62,101,188,135, 28, 80, 49,113, - 23, 16, 16, 0,145, 81, 57,237,219,237,245,205, 93,146, 56, 85, 77,179,180,111,170,187,249,250,242,246,238,167,190,246, 85, 32, -232,218,150, 49, 60,255,226,147,203,235,219,122,183,217,108,119, 69,158,255,184, 60,133, 92, 44,126, 29, 26,248,208, 2,138, 72, -136,186,147,198,150,238,193,213, 24,221, 61,170,234,163,206, 18,131,176, 67,233,214, 1,230, 14, 12, 3,170, 95,227,225, 29,241, -128,148, 4, 80, 54, 60, 64, 49, 7, 88,177,192,224, 11, 26, 12, 53, 26,194,192, 28,230,215,205,170,138,248,186,205,137,216,240, -237,213,237,223,252,237,143,136,248, 87,126,237, 91,127,247,231,191,217,247, 13, 18,154, 36, 17,145, 39,159, 63,218, 46,111, 5, - 96,179,184,105,235,166,239, 90, 81, 34,196, 52,115,203,171, 47, 76, 82, 78,142,143,234,170, 85,105,187,253,220,229,147,166, 15, - 10,249,236,228,158, 7, 22, 47,133,217, 17, 97,215,201,221, 98,253,242,102, 94,183,205,195, 7,111,190,117,239,172,235, 58,100, - 27,124, 95,237,183,109, 83, 19, 64,143,132,170,229,168, 44,203,201,244,244, 28,109,225,194, 58, 29,159,109, 87, 55,167,247, 30, -134,206,223, 62,251,171,151, 95,252,249,189,251,111, 52,213,174, 44,103,218,215,161,235, 20,160,239,218,197,221,213,203,139,231, - 94,237,131,123, 15, 70, 69,202,218,228,229,172,173, 42,129,158,217, 54,213, 38, 31,157,236, 86,215, 77,223,113, 50,217,220, 60, -117, 89, 62, 57,126, 3, 84,140, 43, 64,177,109, 43,147,230, 68,230,254,253,115,214,253,100,246, 16,161,239,118,119,163, 98, 60, -155, 78,181,223,153, 36,239,234,141,111,171,229,102, 21,218, 93,221,245,179,163,179,227,179,119,146, 36,105,235,157,177,110, 60, - 26, 49,145,146, 77,211, 12, 0, 60,154,106,241,220,165,153, 49, 41,105,151,141, 79,247,139,151,168,106,146, 12, 85, 66,232, 21, -116,113,249,169, 15,208, 84, 75, 13,253,118,117,195,164,214,168,117,133,138,110, 55,243,163,233,244,141, 55, 63, 32, 20,103,205, -102,179, 16,118,132,218,181,155,122,187, 20, 98,239,187, 80,111,202,147,115, 0,173,119, 43,146, 78,208, 46,239, 46,119,171,235, -213,234,110,114,250, 70,223,110,130,130,181,185, 49, 69,219,238, 63,127,244, 23,219,170,125,239,173,183, 31,188,241,209,100,118, - 38,161,239, 85, 19,151, 2, 26,237,219, 44,205,215,183, 47, 39,227,113,121,124,111,183, 89,216,108,116,122,114, 58,155,157, 24, -245, 0, 48,153,204, 78,143, 38,138,188,173, 26, 7,253,217,195,123,111,191,249,230,195,135,111,102, 69,178,223, 44,175, 46, 95, - 61,126,244,248,233,171, 87, 47, 46,111, 94, 94,223, 92,223, 45, 38,163,209, 63,250,227,111,253, 27,191,243,171,229, 56,173, 91, -207,144,164,236,182,203,187,167, 95, 60,122,241,242,114,185,171, 69,225,171, 95,251,224,229,124,254, 87, 63,252,188,105,154, 79, - 30, 61,219,221,174,143,203,130,153,172, 97, 34, 74,216, 58,231, 6,179, 47, 17, 33,117,190, 87, 84,195, 73, 16, 65, 34,107, 88, - 99,245, 28, 33, 32, 3,200,161, 18, 71, 45,177,130,118,189,143, 90, 8, 17, 90,107, 53,168,130,116,226, 9,145,145,154,206, 99, - 36,164, 17,102,214, 26,155, 96,180,178, 16,115,140,215, 28,212, 21, 26, 18,148,132, 12,160, 40, 67,185,160, 6, 0, 81, 37,160, -196,216,168,142, 10, 40, 33,116, 33,136, 4, 71, 36,224, 9, 45, 18, 58, 98,195,236, 44,130, 66, 8, 18,107,146,189, 6, 6, 74, -152, 84, 99,219, 21, 56, 54, 68, 20, 65,243,134,153,145, 68,196, 11, 88, 67,196, 70, 84,152, 25,141, 9, 33, 48, 98, 98, 18,249, -127,153,122,179,103,203,142,236, 62,111, 13,153,185,167, 51,221,177, 6, 20, 80, 0, 26, 13,160, 7,116,183, 40, 54, 37, 14, 10, -201, 18, 29,164, 56,216, 17,166,104, 59,252,234,255,208,225,240,155, 34,252,100,217, 50,229,166,200, 22,155, 24, 10, 53,221,186, -243, 61,243, 30, 51,115, 45, 63,228, 62,213,122, 7,112, 7,220,147, 59,247, 90,191,223,247, 73, 76,168, 26, 29,187,164,106,152, - 83, 41,247, 64, 14, 68, 17,216,116,157, 37,200,179,140, 12,147, 65,241,170, 32, 12,160,162,117,219,108,247,219, 77,189,231,127, -247, 23,127,146,252,168,135,209, 59,192, 24, 55, 5, 68, 18, 64,147, 16, 56,156,202, 99, 74,192,200, 25, 2,141, 92,203,228, 90, - 5,148,244, 48, 74, 86, 82,231,250,122, 11, 38,207, 51, 55,174, 8, 5, 0,129, 71,156,142, 32, 34, 72, 42,108, 9, 64, 42, 25, -167,253,199,251,170,234,136, 0, 58, 16, 27, 70, 66,228,248,134, 53, 22,167, 34,170, 2,241,193,221,174,227, 18, 24, 21,198,218, - 50,235, 56,190, 80, 68,212, 8, 74,168,128,199,179,233,215,223,124, 29,130,100,206, 16,114, 94, 21, 97,240, 47, 95,191, 93,204, - 22,159, 60,127, 90,215, 53, 25,227,108,241,241,103, 95,236, 55,155, 79, 63,251,210,247, 59, 69,103, 51, 99, 48, 83, 0, 69, 25, - 21, 39, 48, 74,175, 8, 14,214, 85, 5, 80,136, 49, 34, 1, 27, 11,170, 81, 69,199, 27,252,104, 23, 79, 75,215,177,152,155,214, -172,152,160, 78,227,221, 28, 68,254, 43, 87,227, 97,179,125, 88,150, 38,194,103,138, 27,169,104,148, 40, 49,166,226,243,136, 28, - 74,255,145, 68, 17, 86,181,198,190,125,251,250,155,111, 95,253,193,239,255,139,127,245,111,254, 77, 84, 65, 99,216, 57, 67,124, -253,246,178,222,183,138,174,107,234,147,197,162,243, 49,175,230,132,232, 44,117,125, 31,169,156, 45, 78,124,187,247, 81,200, 85, -128, 90, 78, 38,131,151,186,222, 90,107, 64, 66, 89,229, 20, 55, 10, 80,119,237,122,187,191,184,185, 29, 6,255,249,167,159, 63, -127,254, 67, 91, 78,194,224, 55,235,187,213,106,237, 24,250,126,104,135,222,104,152, 77,138,147,211, 71, 92,205,170,227,167,103, -207, 62, 86,206,182,155,141,181, 60,244,245,195,237,109,164,220, 49,182,109, 80,245,155,187, 11, 5,112,214,181,219,135,227,211, -199,189, 72,136, 48,248,206, 48, 31,159, 63,183,206,246,187, 59,223, 53,189, 80,221,180, 0,144, 21, 83, 32,163,125, 93, 44,206, - 44,219,161, 94,245,237, 46, 43,202,233,108,230,242, 89,223,183,253,208,179,106, 8,126,122,244,216,119,117, 84, 42,170,133, 97, -210,216,102,249,196,247,251,205,234, 1,108, 33,161,141,209,159,159,157,151,153,217,174,110, 92, 94,246, 98,183,155,165,111,119, -200, 6, 66,223,236, 86, 68,198,229, 19,178, 5,147,176, 45,218,253, 78,165, 39,240,214,150, 93,179, 55,196,132,152,151,115, 16, - 13, 94,117,216, 77, 23,231,156, 21, 49,224,110,191, 11,190,151,232,141, 49,195,208, 0,242,208, 53,109,235, 11, 75, 69, 53,207, -178, 25,185,178,170,166,211,217,236,163,207,126, 84, 77,102,155,219,183, 93,239,183,155,123,203,220,135, 48,120,232,251,206,154, -220,229,211,217,241,179,161,221,223, 94,127,183,235,250,179,211,231,103, 71,167, 38, 63,218,181,221,102,181,172,119, 43,178,133, -115,153,205,178, 42,175, 86,219, 37,114,126,118,250,132,136,130, 42,155, 92,163,223,173, 87,235,213,125,223,249, 8, 88,230,110, - 90,230,199,199,103, 79, 63,120,242,232,209, 7,243,249,194,119,205,221,205,213,139, 87,223,191,124,245,246,237,213,237,235,235, -219,183,151, 87,253,224,159, 61,126,242,199,191,252,197, 31,254,242,231, 94,124, 8,228,208, 73, 59, 92,189,125,251,205,183,223, - 61,172,182,221,224, 63,125,254, 88,156,121,121,113,121,117,117,155,229,238,230,234, 62, 83, 56,153, 20,150,153,152,173, 97, 75, - 6,153,137,108,250, 96, 39,190, 13, 19, 19,179,106, 52,132,200, 12,154,210,144,134, 64, 37,213,212, 85, 12, 49, 32,121, 80, 66, - 50,204,227, 4, 87, 85, 37, 42, 68, 64,204,173, 81, 64, 1,165, 17, 11,128,185,201,157,179,214, 26,235, 44, 34,229,228, 84,132, - 14,194, 35, 58,228, 50, 12,145, 70, 21, 81, 68, 37, 36, 1, 32, 66, 75,156, 78,163,144,116, 69,160, 0, 96,144,152, 12, 18,138, - 82, 26, 49, 41, 34, 51,119,189,104, 66,149, 13,130,160,233,243,153, 52,211,227, 53, 53,173,204, 64,211,180, 39,205, 68,172, 49, -233, 13,132,145,162, 66,136, 65, 14,212,202, 52,231, 53,144, 30, 57, 41, 46, 1,137, 70,158,200, 35, 64,184,169,251,190,239,231, - 85, 97,152, 17, 73,125, 96,147,188,161,184,218,239, 55,251,205,122,183,111,187,134,255,135, 63,251,147, 67, 34, 18, 1, 71, 48, - 91, 66,190, 24, 74,123,206,180,166, 78, 45, 87, 68,148,244, 32, 56,164,134,104,228, 66,224, 88,209,213,177, 81, 6,251,122,168, - 38,249,248, 67, 18, 34,144, 25, 1,149, 4,227,253,245, 32,113, 4, 24,175,196,160,168, 17, 33, 77,227, 70, 52,114, 58,167, 84, -133,152,101,252,245,164, 84,119, 2,190,167, 45,132, 42,200,193,130,141, 35, 58,158, 16, 0,216, 56, 56,184,160,210,228,198,230, - 25,144,124,255,234, 77,150,101, 69, 89, 90,147,101,214,108,182,155,191,255,230,219,175,190,248,225,164,116,237, 16,172,225, 52, -237,123,120,184,123, 88,173,102,211,105,230, 10,197,212,161, 72,125, 8,129,131, 94, 35,173, 55,211,130, 27, 17,137, 12,105, 50, -252,193,225,189,227,253,100,133, 0, 1, 12,130, 38,242,196,168, 69, 75,153,200, 49,131, 68, 4,170,200,137,237,132,128, 48, 34, -146,198,249, 89,210, 2,142,163, 68, 69,192,209,214, 50, 38, 4,128, 8,146, 24, 88, 1, 80,152,248,197,247,175,143, 23,143,255, -244,207,255,148, 45, 3, 17, 51, 35, 83,223,118, 87,239, 46, 23,199, 39,119,183,247,125,187,250,193,231, 63,174,219,160,128,195, -208,171,234,208,181, 22, 21,213, 15,221, 16, 66,239,187,214,218, 60, 10,109, 55, 75, 29,246, 89, 49,171,102,139, 34,135,216,174, -217,152,221,126,183,220,108,174,238,151,170,250,139,159,254,211,199,103, 79, 7,223,214,187,205,102,121, 39, 34, 26,251,186,235, -141,181,179,201,164,112,110,186, 56,143,100, 22,231,207,142,142,142,124,223, 65, 12, 93,179,223, 45, 47,118,203,155,143,127,252, -207, 23,199,167,171,187,119, 26,134,253,234,166,143,210,246,253,102,125,179,223,111, 87,155, 77, 81, 86, 97,104, 2, 58,235,178, -197,116, 22,251,102,241,232,147, 44,203, 49,246,211,163,147, 16, 36,170, 84,197, 12, 1, 44,103,217,100,182,123,184,152,206,143, -129, 12,129,196, 40, 67,187,129, 56, 68, 25,124,215, 45,183,235,161,169, 21,197, 16,102, 89, 25, 1, 50,151, 5,112,109,219,238, -214, 55,121, 86,181,190, 47,157, 45, 38, 71,119,247, 15,117,211, 40,186,188, 58, 46,203,201,236,248,188,154,158, 9,168,247, 61, - 19,205,102,199, 97,216,185,172,232,219,218, 7, 49,108, 11, 87,245,125,167, 18,235,229, 69, 91,239,145,217,185,140,216,118,245, -206,251, 96, 13,117,221,214,152,140, 80, 44,179, 72,172,251,190,221,109, 84, 37,207,171, 68, 61, 59, 62,121, 82,175,111,145,200, -102,230, 97,185,105,218,126,126,242,172,109, 59, 78,122, 0,180, 26, 98, 91,175,186,250,110,187, 93,101, 89,254,225,135, 63,154, - 85, 89,140,254,225,246,117,211,108,157, 53, 89, 94,197,126, 31,194,112,124,114,158,151, 69,215, 13,147,217, 98, 8, 97,185,126, -120,184,125, 91,148,165,203, 51, 47, 60,132,216, 7,145, 56, 24, 67,121,145, 63,253,232,217,249,227, 39,168,113,249,112,245,250, -237,235,151, 47,223,188,185,190,121,123,125,243,250,242,234,110,249,112,122,116,242,187, 63,253,234,139,207,190,140, 17,203,172, - 60, 61,153, 59, 50,119, 23, 23, 47,191,123,241,246,221,181, 34,127,254,213, 15,215,117, 61, 95, 76, 77,158,221,220, 47, 87,203, - 13,251,120, 84,102,165,203,210,238, 46,203,220, 1, 50,136, 68,192,168, 81, 4,223,135, 33, 18, 92, 22, 49,130, 18, 96, 84, 61, -128,124,213,164,138,203,184,167, 2,140, 96,172, 51,198, 28,154,149,169,235, 65,201,192, 71,233,211, 71, 88,228, 5, 91,118,214, -102,153,115,200,201, 91,103,136,152, 44,170, 26, 75,150, 9, 0,153,204,123, 47,133,104, 28, 13,219,204, 56, 90,244,200,164,172, -164, 2,130,228,198, 33,113,194,183, 35, 49,211,104, 15, 70, 5,229,132,116, 5, 50, 22, 70,236, 45, 90, 54,140,232,131, 39, 0, - 99, 44, 38,236,235,120,147, 29,233, 52,134, 13, 16,137, 72,221,117, 93,187,207,156, 99,230,204, 90, 0,140, 81, 12, 39,234, 34, -190, 87, 83, 37, 48, 78, 27,124,221,118,103,243, 50, 47,138,180,137, 77,150,187, 40,178,239,250,205,190,222,215,251, 56, 12, 65, - 35,255,187, 63,255,211,241,218, 56,166, 9,255,171,246,227, 72, 20,131,247, 40,104, 69, 96, 72,225, 63,144, 16, 14, 25,110, 76, -160, 8, 56,172, 12, 85,208, 24, 83,215,245,100, 90,141, 10,240,196, 45, 75, 14, 57, 66, 64, 58, 12,150,113,188,203,167, 57, 22, - 49,162, 27,127,126, 6, 68, 78,194,115, 28, 99, 56,233, 64, 23, 98, 66,228, 20, 65,132, 20, 95, 81, 85, 76,111, 67,105, 76, 13, -136, 33, 6,161,180,154,228,241, 75,160, 10,136, 34,193,249,241,249,219,139,183,171,237,126, 81,149,200,100, 93,150, 59,247,230, -205,197,221,122,253,187, 63,249,188,109,107, 69, 26,252,176, 56, 57,186,189,190,121,254,131, 47, 99,223, 8, 17, 36,100, 68,194, - 92, 38, 43, 0,142,253,223, 4, 84, 96, 99, 83,117,130, 76,242, 64, 81, 28,151, 30,169, 3, 6, 73,141, 64, 7, 90,100, 74,181, -211,104,161, 73,220,152,241, 57,154,222, 65, 40, 13, 30,199, 16,234,184,203, 24,171,124, 35,131, 51, 33,135, 70,112, 77,218, 81, - 31,182,222, 8, 4, 68,166,222,117,191,243,123,191, 55, 89, 76,131, 15,204, 35, 28,170,217,181, 89, 81,174,238,239,111,111,239, -209,111,206,206, 31, 63, 60, 44,251,253,154, 9,201,228,182,156,247,205,150,108, 53,180,141, 43, 23, 38, 43,135,253,109,223,134, -188,156,160,223, 71,229,163,163, 83, 24,214, 32, 67, 20,169,235,250,254, 97,115,179,220,186,194,253,225, 31,252,183, 89,238,118, -203,155,174,105,251,208,151, 25, 55, 77, 61,248, 88,101,206,102, 89,225,220,226,217,231, 89, 81,157,127,240,241,205,155,191,191, -124,245, 93, 49, 63,190,191,126,125,242,209,143,207,159,252, 32, 52,155,245,195,178,105,246, 57,161,168, 70, 69,107, 76, 49, 61, - 82, 68, 36, 27, 3,228,213, 60,207,167,190,217,108, 86,183, 15, 87, 47,242,106, 26, 68,251,174,111,246,251,190,219, 78,170,249, -180,154,222, 93,252, 23, 0,217,238, 86,157,200,209,100, 54, 59,125,186,188,187, 88,223, 95, 14, 96,145, 96,115,127,189,107,187, - 97,240, 81,168,235,118, 40,218,181,195,106,187,235,186,246,225,246,229,116, 50, 3,155, 1,178, 70, 49, 54, 91,175,111, 55,235, -251,232, 91,131, 66,232,155,245, 77, 86, 30,229,153,105,235,173,205,171,140,194,180, 42,171,197,153, 10,100,174, 42, 38,243, 40, -178,186,255,222, 15,131,115, 19, 69, 36,104,153,108, 89, 76, 9,218,135,235,215, 67, 80, 84,241,205, 54,115,166,243,177,221,175, -212, 22,245,182,137,177,101,227,234,205, 77, 62, 89, 52,237, 54,170,134, 24,251,193,159, 61,250,168,217,173,139,201,209,253,245, -139,213,102,229,178,242,233,135,159,116,251,245,253,253,187,205,230, 22,221,241,147, 39, 31,230,229,148, 68,135,126, 91, 55,219, - 8,236,125, 91,229,213,252,209,179, 73, 53, 87,239,207,158,126, 24,129,138,172,152,205, 23,125, 0, 97,103, 93, 37,160,150,134, -188, 60,106,187,122,182, 56, 58, 57, 63,126,246,236,163,199, 31,126, 92, 77,202,122,179,126,119,241,253,247,175,222,188,185,190, -121,115,121,249,230,242,250,230,238, 33, 70,253,201,151,191,248, 23,191,247, 47, 28, 75,110,244,151, 95,125,254,195,231,143,219, -245,246,213,119, 47, 94,127,255,250,122,185,153,205,170,127,242,207,127,246,245,155,139,111,191,125,117,118, 60,249,213,111, 94, -172,110,151,199,101, 81,230, 89, 10,163, 59,147,201, 33,174,203,204,108,141, 15, 67,140, 99, 80, 46,117,188, 1, 65, 5, 36, 66, -154,144, 91,226, 24, 34, 1, 58,107, 67,140,138, 96,137,162,168, 50,218,204,129,136,128,250, 24,172, 49, 10,154,186, 69,227, 46, -139,216, 75, 44,217, 36, 82, 84,102, 50, 85, 53,136, 25,155,241,109,254,240,154,155, 4,152,152, 8,143,160, 33, 2, 18,100,196, - 10,202, 72,170,234,172, 9,193, 7, 81, 4,204,152,153,115, 81, 32, 67,233, 80, 78, 3,109, 83, 24, 0, 12, 49, 50,106, 82, 82, - 3, 74, 58,109, 19, 62, 61, 72,204,172,179, 89, 6,136, 42,145,153,135, 40,168, 33,165, 76,210,117,207, 56,142, 81,125,240, 17, - 33, 55, 92,230,153,143, 35, 99, 39,168, 58,102, 99, 40, 42, 26, 70, 85, 32, 85, 5, 92, 53,221,204,217,201,180, 12, 49,186,204, -132, 56,178, 15, 85,213, 71,108,246, 91, 31, 98,148, 8, 72,252, 87,127,254,167, 7, 68, 60,143,244,153,145, 14, 60, 6, 33, 49, -165,191,117,204,164, 96,194,249, 80,218, 48,143, 39, 84, 34, 38,164, 71,115, 34,144,145,225,126,223,230,147, 10, 15, 39,141, 25, -195,149, 64,108,136, 9,148, 49, 9,189,198,103, 58, 32, 25, 68, 98, 96,132,120,120,202, 29, 68, 80, 32,122,232,112, 18, 51,162, - 69,144, 52,196, 7, 80,128, 0, 35,246,126, 84,161, 35, 25, 72,140,211, 49,156, 41,160, 49,221,241, 1,149,152, 92,158,205, 38, -249,111,190,249, 94,149,170,162, 96, 99,138,162, 84,141,223,190,120,125,122,118,252,244,252,184,233,189, 97,242,195,176, 94,222, -159, 62,122,210, 15,251,182,238,202,178, 34, 54,170, 17,198,237,121,210,193, 88, 78,194,166,131,210,230,112,177, 38, 29,211,158, -116,128, 65,194, 40,242,195,131,107, 27,136, 8, 71, 76, 95,178,187, 38,151, 12,198,180, 75,103, 51, 18, 51,222,255, 43, 18,149, - 82,229, 10, 17, 64,131, 31, 66,223,131, 10, 25, 51, 90, 68,198,117,117,250,147, 39,145, 48,155, 29, 29,157, 28, 69,145,195,151, -100, 31,212,119, 67,223,245,109, 59,108,183,235,201,236,100,113,250,248, 97,249, 0, 50,100,249, 28,137,134,253, 10,136, 53,122, - 59,153, 91,151, 73,191,182, 89,161, 18, 92, 89,109,182,251,114, 50, 49,121,134,195, 61, 34, 72,148, 93,221,220, 60,172,238, 54, -235,170,112, 95,125,252,201,126,223,248, 24,246,219,165,116,173,250,118,185,221, 89,107,202, 44,155, 20,213,252,248,177, 43,203, -217,226,241,252,120,190,186,191,158, 28,127, 80,228,217,246,225,134,144,135,122,181,190,254, 46,198,193, 50,237, 86, 55, 18,227, -230,225,214, 58,151, 25,123,127,127,179,223,239, 98,191,173, 38, 39, 97, 24,188,175,149,221,244,232,131,174,151,253,102,211,119, -117,189, 91, 91,227, 34, 64,219,172, 78,206,158, 14, 2,235,221,254,252,236,195,190,107, 86,203,235,229,195,109, 47,248,228,252, -113,145, 79,235,118, 87, 84, 39,170,169, 88,238,163,170, 32,169,104, 93,111, 38,213,121,179,122,141,106,216, 24, 17,105,247, 91, -166,124,126,242,216,216, 10, 81,179,172, 98, 87,214,155,229,166,174,187,253,125, 89, 20, 69, 94,216,188, 2, 50,251,205,114,232, -118, 97,104,171,201,145,239, 58, 87,204, 8,177, 40,178, 97,123, 71, 38,219,238,119,147,233,162,109, 26,182,134,137,156, 43,134, -208, 51,185, 65,176, 94,221, 12,190, 63,121,244,145, 12,237,110,191,114, 89,193,202,189, 31, 92, 54, 53, 89,185, 90, 61, 72,104, -167,211, 69, 94,206, 78,206, 63,144,161,182, 89,217,183,203,109,189, 63, 61,255,228,236,236,233,126,191,181, 54, 43,171,106,104, -183,138, 86, 8,202, 98,102,179,114, 49,155,123, 95, 43, 21, 67,183,235,219,166,154,206, 65, 6, 17,241,125,235,235, 7,180,147, -106,122, 52, 57, 57, 45,139,252,228,100,250,225, 71, 31, 45,206,206, 32,134,219,171,139,239, 95,124,247,234,245,187,139,187,251, - 87, 23,151, 23,215, 55, 77, 55,156,159, 61,254,215,127,244,199,159,127,244, 60, 2, 60, 61,157,253,254, 87,159,157,205,171,183, -175, 95,125,253,155,255,114,125,125,223,133,240,201,103, 31,238,218,250, 63,255,227,247,125,221, 54,237,240,230,205, 37,133,112, - 50, 41, 28, 17,168, 88, 68,203, 14,205,225, 69,214, 82,138,160,140,204, 40, 70,133,180,183,132, 40,170, 10,198, 88, 0, 13, 49, - 13, 53, 81, 17,188,143,204,134, 9, 85,200, 48, 51, 64, 12, 33,142, 46,108,151,182,116, 74,144, 66, 30, 62, 68, 69,200,152,189, -168, 49, 92,216, 76, 53, 58, 54,200,172,196, 65, 4, 37, 57,130, 88, 1,162, 68,107,205,104,186, 84,201,140,179,198,248, 16, 17, -208, 16, 42, 81,136, 33, 72, 66, 54,242,216,225, 33, 36, 70,102,210,195,150,111,220, 19, 24,134,145,236,146, 98,142,105, 15, 7, - 2, 80,102,185,205, 93, 94, 84,128, 22, 16, 36, 70, 6,100, 99,199,135, 27,179,177, 38,105, 35,152,168,112,206,101,101, 72, 78, - 78, 54, 42,154, 91, 55,120,159,124,223, 18, 53,133,248,214, 93,144,232, 23, 85,158,248, 57,162,239,191, 25, 96,131, 81,177, 31, -122, 4,224,148,156,255,235,191,252,183, 48, 66,192, 18,138, 65, 15, 71,234,120,118,170,106,140, 81, 52,140,249, 34, 64,136, 99, - 70, 5, 14,233, 78, 60,248,130, 82, 47, 33,169,162,131, 31,216,100,206,216,180,234,102,164,131,176, 15, 65, 21, 36,226, 24, 97, - 76,255,166, 2, 33,168, 36, 64, 29, 28,190,246, 8,149, 4, 56,132,229,211, 64, 71, 65,131,168, 0,202, 1,153,158,126,171,114, -120, 41, 72,131,154,136, 2,233,112, 71, 72, 53, 49, 64,102, 85,145,224, 79,142, 78,114,166,111, 94,189,158,148,165,203, 50, 99, - 76,158,231,251,221,238,242,250,238,171, 31,253,144, 20,163,234,208, 15,179,227,243,182,217,159,156,158, 53,187,157,201,114, 38, -107, 83,183,246, 16, 20,125, 79, 25, 75, 98,190,164,141, 79,223, 4,211,248, 72, 76, 40,249,145,134,193, 60,190, 11, 37,134,251, -200,204,193,145, 91,150,126,139,214,164, 27,191,190,103,248,188, 55, 57,209, 97, 72, 3, 16,250, 62,246,173,134,160,209, 35, 25, - 54, 38,133,159, 96,188,227,143, 15,148,162, 58,178, 69,201,198,176,225,100,140,173,183, 77, 12,131,181, 38,203,236,229,235,239, -103,179,249,226,244,108,185,220, 16,103,170, 34,190, 33, 54,160,193,119,141,155,156,128, 12,125,239, 53, 34, 50,213,219, 61,162, - 56,134,161,109,202, 66,178,188,100,196,205,102,243,230,242,122,187,171,159, 60,254,240,231, 95,253,158, 40, 72, 28,186, 97,224, - 24,119,155,101,219, 5, 16,157, 85, 89,158, 87,166,152, 77,230,199,199, 79,158, 79,166,199,235,213, 3, 57,135,104,194, 16, 46, -223,126,123,114,122, 82, 76,142,234,237,122,119,119, 25,135,166, 42,103,117,219,116,125,215,238,238, 55,251,125, 86,206,250,118, - 11, 26,178,162, 90, 28,159, 75,236,235,122,231,187,218,135,110,126,116,154, 87,199, 97,232, 0,141, 69, 1,140, 26,112, 58,153, -150, 69,222, 12,190,217,109,192,100,236,166,177,190, 93,156, 60, 65, 91, 52,251,181, 69,201,108, 54,116, 77,215, 53, 16, 35,146, - 9,125,167, 42,157, 15, 89, 54, 1,245, 72, 56,153, 31, 3, 6, 84, 30,154,181,130, 26, 54,108,172,250,193, 71,248,228,211, 47, - 17,176,235, 58, 68,246, 93,227, 92,214,245,173,115, 25, 33,251, 24,172,201, 13, 82,232,183,213,244, 52, 43, 38, 15,203,107,231, -242,217,226,108,187,186,217,172,215,196,204,198,169,120, 33,203,100, 38,139, 99, 12,221,118,191,158, 78,143,137,140,205, 75,203, -108,160,167,172,106,246, 91, 37, 12, 62,174, 55,247, 97,104, 95,190,252,135,135,219,139,199, 79, 62,250,252,203,223, 25,250,166, -235,187,106, 50,233,247,235,162,156,180,205,154,171, 5, 71, 79,164, 69, 81, 20, 60, 24,138,197,226,241,126,179,100,195, 39,103, - 79, 84,251, 32, 28, 99,104,234, 77, 94,150,147,197,113,206,254,236,209,201,249,227, 15,141,165,229,213,187,183,175,191,255,238, -197,183,175, 47,175,222,222, 92,191,186,188,186,186,187, 43,179,252,151, 95,253,211, 95,252,228, 39,243,217,145,133,250,159,124, -241,244,203,143,206,187,186,249,246,235,175,191,125,241, 34, 42,126,242,197, 15,214, 77, 93, 84,101, 57,157, 92,221, 60, 60,220, -222,231,140,199, 85,153, 49, 29, 90,143, 68, 72,100,216, 36,186, 10,130, 4, 1,196,164, 10,138,160, 73,228, 60, 58,162,210, 77, - 77,100, 4,188,140, 66,202,247,231,195,216,239, 9,170, 2,106,198, 15,214,120,158,190, 23,235, 16, 17, 33, 43, 98,198,233, 4, - 23,102, 70,226,168,128,168,140,144,156, 27, 99,141, 39, 25, 38, 84,152, 77, 18, 95, 70,137,105,208,170,105,247, 58,222,149,212, -144, 49,196, 52,150,196, 33,140,142, 76, 74, 53,207,132, 27, 73,233, 13,102, 78, 37, 85, 17,136,170,150, 8,152,156, 43, 50,103, -201,152, 97,240,233,106, 28, 37,240,225,205, 28, 1,173,115,198, 24, 66, 18, 68,203, 12,196,168,104,153,104,132, 24, 35, 18,129, - 40, 32, 50, 99,237, 67,221,119,199,101,110, 76,218,100,164, 94, 46, 41, 0, 27, 84, 33, 67,168, 64, 33,120,199,108,152,249,175, -254,226, 79,199, 80,185,142,237, 71,122,143,183, 5, 56,232,132,198,124, 17, 41,176, 65,100, 30,140,205,130,156, 0, 0, 32, 0, - 73, 68, 65, 84,169, 91,122,200,202,143,128, 8, 2, 68, 54,227, 52, 95, 69,122, 31,167, 69, 38, 99,153,115, 44,201,210,129,212, -131,230,125, 1, 85, 19, 32, 14, 36, 97,126, 14, 97,168,145,233,169,233,107,165,104, 57,168,130,160,136, 79,192,156, 20, 38, 7, - 9,240,219,160,108, 50, 46, 50,140,169,126, 69, 76,240,160, 3,181, 18, 0, 81, 67, 8, 39,103,243,251,251,135,229,166,153, 79, -166,108,172,181,156,187,236,155, 23,175, 0,233, 71, 63,124,222,116,157,181,110, 58,155, 94, 93,188, 2,180,170, 61,129, 49,185, - 69,193, 0,202, 68, 34, 2, 64,196, 12,140, 32,169,113,108, 0, 85, 98, 24,105,198, 35, 26,159, 71,149,251,161,125, 52,150, 7, -198,191,108, 26,191,201,180,109, 56,120, 10, 14, 30, 1, 60, 44, 20,128,153, 15,170, 62, 52, 8, 49,138,138,104,240, 49, 6, 98, -195, 89,110,141,211,180,124, 57, 64,233,137, 16, 20,109, 86,186,204, 0, 8,168, 18,225,126,189, 75,127,227,229,164,106,235,250, -230,118,125,114,254,216, 49,222,190,123,197, 54,247,125, 27, 99, 4,204,141, 97, 53,133, 97,146,110,131,156, 1,128, 53,212, 52, -245,217,227,103, 81,201, 55, 43,199, 1, 1,135,182,189,186,127,184,190,189,223,181,245,143, 63,251,242,209,249,163,221,110,139, -174,240,125, 19,187,102,187,221,228,121,110, 29,206,139,130, 92, 57,127,250,217,217,135, 31,151, 85,209,245,245,126,179,137, 10, -177,223, 7, 69, 85,115,114,124,214,109,238,114,151,147, 14,165,203,135, 97,120, 88,221, 21,174,128,232,149,179,114,178,152, 45, - 30, 25, 91, 0, 42, 35, 34, 80, 16,218,110,239, 93, 81, 89,223, 32, 64, 49, 61, 65,130, 42,207,200, 77,216,229,161,190,119,229, - 68, 20, 30,238,223,176,155,176, 49,251,253,110,177, 56,137,210, 27,147, 5,145,174,175,125,240,174,152,135, 40,195, 16, 66,232, -156, 5,118,153,113, 69, 86, 77, 12,130, 53, 78, 40, 35, 67,108,216, 16, 26, 82,102, 14,126,200,138,178, 44, 74, 0,174,155,186, -219, 47,183,155,155,197,124,214,111,215,213,228,168,217, 45,157,171, 50,107, 1, 99,223,213, 2,209,217,172,107,118, 89,230, 10, -147, 33,241,124,126, 26, 37, 56, 54,193,119,179,217,162, 44, 43, 25,134,174,111,144,204,110,117, 99, 45, 17,179,201,139,251,235, - 55,139,179,143, 89,181,110, 6, 8, 91,138,253,197,245, 53,101,139,143,158,126, 32, 67,187,218,110,119,219,141,198, 33, 4,143, - 26, 39,211,227,160, 24, 1, 89,177,152, 28,125,252,201,199,177,175,129,109, 57, 59,217,173,239,212,247,100, 41, 47,231,168,222, -123, 63,157, 45,206,159,156,159,206,167,103,143,158,148,121,213,213,155,203, 55, 47,190,123,241,221,155,119,151,111,111,110, 94, - 95, 94, 93,222,223,119,189,255,249,151, 63,253,229, 79,126,150,229,101,108, 30,126,250,217,179, 95,254,248, 83,163,253,219,151, -223,125,253,205,247, 87, 55,247, 31, 62,127,246,147,223,253,217,139,183, 23,215,151,215,211,105,245, 31,127,245,155,102,179, 59, - 46,139,210, 90, 38, 29, 57,169,136, 6, 17, 13, 27, 54, 72,140,132, 17,128,211,145,198,137, 43,160, 18, 53,170, 26,102, 32, 4, -162, 81, 39, 65,168, 18,129,192,160, 21,209, 68,149, 73,246, 84, 80,176,134, 17, 48,168,138,136,177, 70,223, 39, 45,144,162, 10, - 17, 51, 27, 4,240, 65, 85,128,205,216, 28,100, 67,168,208,197, 48,132, 65, 20, 45, 51, 17,143, 84, 21, 74, 38, 5, 80,145,195, -141, 50, 93,108, 15,218, 59, 50,128,104, 12, 48,179,143, 34,170,198, 82,140, 0, 49, 29,184,163,142,129, 82, 74, 26, 81, 36,166, -227, 17, 5, 18,141,128,137,125, 8, 26, 2,162, 14,209,163, 34, 1, 43,130,177, 12,135,161,115, 8,130,136,206,152,168, 82,228, - 14,121,236,222, 31, 60, 70,202,204,134,168,238,195,195,174, 57,171,178,162, 40,198, 25, 63, 40,146,121, 79, 94,147,212, 54, 7, -116,198,176, 53,134,152,255,250,207,254, 36, 61,210,244, 0, 40, 72,124, 72, 28,233,236, 7, 60, 61, 34,191, 63,118,145, 85, 83, -142,227, 80,231, 25,151, 18, 9,146, 54, 62,148, 25,241,246,126,125,114, 52, 19, 72, 54,139,113,199,105,172, 19,141, 49,142,125, - 37, 77,176,178, 3,122, 31,198,159, 42,189,139, 64, 66,152, 43, 42,162, 16, 51, 2,106, 20, 4,149,148,180, 73,136,124,137, 32, -138,152,156,223,227,212, 25, 81, 65, 98,194,166, 19,190, 95, 32,143, 79,163,180, 84, 33,165,163,233,228, 63,255,227,119, 34,178, -152, 77,153, 77, 85, 85, 26,252,175,126,243,205, 15, 63,254, 96, 94,149,189,168,111,219,160,212,238,214,189,215,233,116, 74,200, -198,101,132,140,227,136,102,132, 22,179,181,108,140, 74, 84,145,177,255, 6, 35,121, 46,253, 13, 18, 39,221,205,120,120, 39, 1, - 99, 26,118,165, 63, 48, 21, 32, 34,228, 68,167,123,255, 10,115,104, 6, 51,143, 69, 2, 26, 7, 97,233, 17, 34,132,108, 44, 91, -135, 9,211,129,172,168,170,137, 33,193,100,140,196,232, 92, 78,177, 71,182, 72,236,123,175, 10, 9,182,227,202,106,245,112,119, -119,187,122,244,228,204, 50, 46,239,239, 77, 86, 25,227, 68, 48,134, 14, 84, 99,148,188,156,228,213,113,219,236,136,193,251, 33, -203, 43,137,186, 93,221,249,161,165,216, 70,223,175, 54,187,183, 87, 87,239,110, 30,186,161,255,252,139,159,158,158, 60,106,219, -182,222,220, 74,223,119,205, 30, 33, 32,219,194, 48,219,202,204,142,159,127,254,101, 81,205,124,219, 12, 93, 31, 5, 12,162,134, -182,107,187,249,116,210,239,111,247,235,229,195,242, 62, 12,173,136,236,154, 38, 51,152, 91,123,245,112, 31,145, 13,232,208,181, -237,254,206,184, 28,217,236,118,187, 24,250,114,241,168,200,203,174,217,102,185,107,155, 54, 4,111,140,105,219, 58,134, 97,113, -246,108,232,219, 48,116,153,171,200, 86, 16, 59, 54, 5, 89, 99, 9,187,253,138,109,110, 76, 62,180,219,208,109,217, 80, 89,205, -115, 99,206,207,158,196,160, 64, 48,159,205,217,228, 67,183, 85,241, 10,104,141, 35,182,251,205,141,113,229,252,236, 67,107,237, -126,117, 95,215,117,179,186,100,228,199, 79, 63,210,208, 39, 90, 0,146,233,125, 55,244, 13,178, 85, 85, 9, 3,155, 92,193,244, -131,239,187, 46,170,180,109,227,251, 14, 0,189,247, 54,207,103,211,163,229,242,214,216, 44,138, 26,162,217,217, 7, 8, 74,156, -117,237, 94, 12, 33,114,179,223,182,245,189,216,242,201,179, 47,116,127,157, 85,243, 94,248,234,221,139,160, 70, 37, 26, 12,147, -163,199, 81, 67,179, 93, 50,229, 26,186,118,183,100,107,140,181, 38, 63,126,184,122,187,222,172, 29,163, 45, 22,251,237,198,183, -235,211,211,163, 39, 31, 60, 62, 59, 59,153,206,231, 49,248,229,221,197,235,239,191,253,205, 55, 47, 94, 95,221,188,189,186,190, -184,186,121, 88,175,143,166,199,191,255,139,223,249,131,127,246, 47,231, 71,231, 39,211,242, 15,126,241,195, 79,159, 63,189,121, -247,246,191,252,253,111,222, 92,220, 24,151, 45,142, 23,219,102,255,235,111, 95,132,190,127,119,125,127,117,113,147, 35,206, 75, -151,204,215,105, 37,133, 9,160,193,108,141, 33, 34, 69, 80, 21,131,135, 63,103, 78,200,188,131,204,136, 15,155, 41, 66,209, 49, -162, 65,132,162, 98, 13, 39, 38,159, 87, 1,145, 44,203,198, 20, 10,147, 49,108,144,130, 70, 68, 98,235, 64,213, 25, 78, 87,114, - 34, 50,140,136,152, 20,107, 9, 36, 34,170, 26, 65, 8, 28,219, 4,246,114,140,170, 32, 34,170,146, 54,130,138,191,181, 15,165, - 60,136, 2, 2, 74,102,140,168,198,152, 68, 86, 16, 69,140, 97, 54, 9, 39, 5, 99,254,132, 65,229,192,184,196,196, 32, 36, 0, - 8, 26, 83,176, 48,132, 16, 37, 90,102, 34, 74,224, 66, 4, 48,236,128, 14, 0,250, 36,221,182, 28,163,104, 12,104, 76,210, 95, - 35,162, 99, 71, 8,187,118,120,216,213,167,147,108, 49,153, 4,197, 16,252,248,104,132,241, 88, 30,115,212, 10, 4,192,100,202, -188, 96, 50,233, 25,152,104,238, 99,240, 46,141,218, 15, 30, 60, 76,131, 19, 34, 4, 34,149, 36, 11, 26, 3, 55,108, 80, 66, 74, -120,164,158, 17,230,152, 16,143,138,192, 54, 51, 32,105, 65, 33, 42,112, 8,122, 67,240, 62, 73,207,211, 46, 52,129, 6,112, 44, -252,104,144, 48,134,216,129,147, 23, 73, 14,224, 69,149,152, 64,196,128, 72, 18, 84, 68, 81,210,232,159, 70, 55, 87, 74,183, 38, -178, 40, 65,210,217,137,188,159,112,164, 93,238,168,200, 38, 66,164,179,199,143,127,254,163, 79,254,211,223,127,183,152, 84,167, -143,206,163,234,243, 15, 63,186,186,189,255,223,254,253,255,245,191,254,213,159, 81,244,192,230,147,207,126,180,223, 92,122, 79, -153,163, 97,232,141,205,152,232,189, 17,117, 12, 1,197, 32,122,208,124,131, 0,140,250,174, 20, 90, 71,228, 3,230,147, 84, 66, -194,206,128,200,184,139,161, 67, 92,104,156,215, 36, 65,251,200,197, 31,223, 99, 12,114,178,245, 29,244, 99,170,168, 24, 51, 91, - 64,130,200, 51, 19, 25,133,120, 0,201,167, 82, 85, 84, 69,227,242,244, 46, 17, 36,118,109,207, 4,168,194,198,198,193, 7, 47, - 24, 7,151,101, 46, 47, 92,158,139,130, 53,232,141, 1, 45,178,162,232,214, 75,128,208,172,151,209,215,110,114,164,128,121, 89, -190,250,250,111,103,139, 39,219,118, 37, 28,163,226,174,174,239, 87,219,102,232, 20, 96,102, 20,128,188,239,131,104, 12, 26,186, - 38, 70,177, 86, 17, 89,200,124,248,241,167,179,197,105,211,250,213,187,127, 4, 59,141,209, 71,129, 56,116,251, 93,237, 50,123, -119,115,223,214, 75, 11,116, 52, 43, 1, 34,104,118,115,183, 69, 37,239,133,180,111,129,103,243, 9,241, 84, 67,183, 31,122, 87, - 30,147, 6, 63,172,187,129, 63,248,228,167,243, 42,219,213,221,190,107,187,166, 6, 68,231, 92,229, 92,232, 80, 84,123,239, 93, -225,216, 98, 93,223, 91, 58,203, 51,183,215, 91, 18,175, 42,121,181,232,155,189,115, 69,110, 76,235,227,106,243,208,246,193, 50, - 69,223, 15,126,232,155,109, 8,195,244,248,105, 94, 84, 97, 24,178,124,166, 49,114,108,189, 2,160,160,168,115,213,116, 50, 93, - 44,206,111,175, 46,242,233,153,111,235,162,154,132, 62,250, 24,187,182,182,206,213,187,123, 54,153,130,134,190,107,135,166, 92, -156, 26, 19,125,143,189, 31,202,114,222, 55,187,203,253, 62,159, 76, 75,231,238,239,239,170,106,230,200, 70, 98, 54,230,232,209, -243, 16,245,229,197,119,193,199, 15,158,126, 58,173,114,203, 84, 45,206,141,157, 10,244,121, 49, 99, 91, 41, 12,182,152, 70, 0, - 67, 46,198,104, 8, 56, 47,125,191, 79, 55,159,235,203,151, 49, 6, 87, 76, 57,183, 76,236,202,108, 49, 63, 89, 44, 38,211,217, - 84, 4,118,155,245,245,219,151,223,190,248,246,221,213,205,229,221,221,221,242, 97,181,221, 89,182,191,255, 59,191,255,211, 47, -127, 62,248,190,105, 54, 95, 60, 93, 60, 61,121, 50,248,230, 31,126,245,171,215,175,223, 70,196,103, 63,248,240,254, 97,133,185, -121,242,232,252,213,223,252,250,106,179,157,217,172,154, 26,163, 35,169,157, 80,251,144,168,176,224,140, 65, 50, 81, 67,210, 79, -130,170,143,162, 72, 76,202,196, 49, 2, 17, 43,104,140,162, 2, 76, 38,125, 74,137, 40,170,128, 38, 50,187, 1,210, 24,162, 15, -193,176, 1, 50,221, 48, 88, 99,152, 76,114,225,197,228, 48, 82, 68,145,204,177,247, 10, 42,214, 25, 85,209, 8,200,148, 27, 4, -165,160, 81, 65,211,231, 35,135, 12,144, 80,132, 0,162, 74, 58,204,144, 40,136,210, 33,135,173, 72,162, 18, 21, 24,213, 24, 2, -114, 62, 65,105, 65, 18, 14,209, 57, 78,222, 57, 80, 48, 72, 74,128,162, 49,106,202,227, 39,250,187,181, 20,135, 24, 35, 90,103, - 53,106,219, 15,134,146,105, 89, 1,209, 56,198, 17, 25, 21, 41,209, 95, 9,211, 21, 48, 70, 73,198, 25, 82, 72, 10, 64, 34, 20, - 17,239,195,126,232,115, 75,179, 34,247, 2,162,146,101,142, 13, 15, 9,105, 9,160,239,121,244, 18, 77,122,209, 79, 27,221,191, -254,183,255, 22, 70,144,239, 72,254, 74,239, 42, 4,105,162, 64,163, 5,232,160, 64, 65, 98, 96, 64,136,137, 91,175, 7,233,118, -162,236,195,251, 4, 14, 40,147, 81,223, 54,145,143,170, 66, 20, 12,189, 87,159,143,247,103,192, 36,168, 82, 34, 98,155,134, 53, -239,215,168,114,128,100,165,127,108,212, 37,225, 1,193, 9, 32, 8, 17, 4,226,248, 86, 1,163,209, 85, 64, 0, 65, 35, 32, 18, - 42,165,121, 79, 10,134, 38, 71,176,198,241, 17, 69,132, 4,162,250,228,244,244,205,155, 55,171, 93,125,114,114,194, 68, 81,244, -120, 49,251,246,219,239, 93,150,253,224,217,121,106, 12, 22,213,244,245,247,191,185, 95,174,171,106, 66,204,198, 26, 50, 22,245, -160,242, 2, 21, 77, 25,199,148,236,228,145,132, 57,190,142, 16, 2, 16, 50,160,164, 96,254, 56, 84, 18, 57, 68,188, 14,255,143, -198, 39, 96,122,133, 18,162,100,246, 30,177, 67, 18, 71,193, 35, 30,188,183, 42, 17, 20,137,152, 51, 67,236, 84,131,170, 16,165, - 2, 29, 17, 16, 16,106,192, 98, 50, 97,151, 49, 82, 8,106, 8,251,190,115,153, 35, 54,153,163,229,195,170,238,195,217,241, 25, -163,191,187, 91,123, 47,161,223, 71, 31, 20,130, 53,206,100, 57, 34,249, 40, 68,232,123,111,157,241,253, 32,194,204,102,168,151, -185, 1, 85,184, 95, 47, 47,174,110,234,174, 47, 93,254,203,159,253,226,126,187,241,253, 64, 68,210,237, 99,191,247,162,147,204, - 69,165,199, 31,125,252,193,231, 95, 69,209,216, 55, 69, 53,151,232,219,253,182,204, 74,244, 77,240, 97,191,126,216,110, 87,147, - 34,159, 58, 83,247,109,215, 14,235,186, 93,239,119, 65,194,174,109, 38, 85,229,178,172,111,247,243,227, 39, 49, 74,219, 54,140, -154,226,163,207,158, 60,211, 97, 83,150, 71, 16,187, 24,194,110,191,149,208,151,147,227,190,223,152, 98,106,108,150, 87,211,161, -221,103,249,220,100, 51, 38,106,238,223,102,211, 57, 25, 71,214, 74,240,200, 25,160,194,176,204,242,162,238, 2,145, 35, 66,100, -102, 66, 85, 36,227,156,113,190,223, 24,107, 69, 52,244,245,233,241,233,116, 50,147, 97, 48,150, 93,158,177, 49, 55,111,191, 25, -134,182,235,218,193, 15,109,189,202, 11,151,229,133,181, 22, 1, 16,172, 42,250,190,115, 89,225,125,147, 27,103, 93,161,234,243, - 98,218, 13,181, 2, 75,236, 69, 2, 8,122,239,217, 98, 91,215, 2,220,110, 46,239, 87, 15,239, 46, 95,158,158, 60,121,254,209, - 15,202,233,169,239,106, 36,147,151,149, 82,182,190,125,201, 8,179,147,167, 67,187,170,166, 83, 13,190, 93,221,230,229, 76, 68, - 33, 6,206,220,100, 50,157, 31,159,173,214,173, 42, 28,159,156,103, 89,177,152, 87,167, 39,213,108, 62,173,166,211,110, 24, 86, -119, 87, 47,191,251,205,175,127,253,235,239, 47, 47, 47,111,111, 47,174,175,183,245,254,211,231,159,253,247,127,242,151,159,124, -248,169, 31,186,227,138,127,239,139, 15, 22, 37, 93,190,125,243,221,215,223,189,189,190, 61,127,114,250,233,151,159, 44,235,253, -122,185, 41, 74,247, 31,254,230,239,135,125,125, 94, 77,203, 60, 79,106, 64,227, 18,145, 9,149,209,178,117,134,141, 49,173,239, - 15, 59, 60, 5,196, 16,211, 50, 27,147,201,250,240,218,138,137,208, 21,162,152, 36, 48,196, 4, 43, 81,213, 24,130, 34,162, 99, - 22,213, 40, 33, 81,216,211, 0, 54,104, 58,112,152, 8,148, 49,248,177,173,157, 94,225, 9,136, 13,137,128, 15, 33,196,192,137, -213,113,120, 75, 0,144,180,220,146,148, 7, 60,132,208,144, 80,144, 82, 50,129, 16,153,145,157, 53, 72,132, 24,162, 70,149,164, - 22, 73, 41, 6,195,148,240, 33,137,142,251,126,143,120,200,179, 41, 51, 91,195, 33, 6, 85,180,214, 36,195,225,168,230, 99, 82, -129, 16, 35,155, 20,185, 65, 51,142, 49,210, 96,136, 9,148,201, 70, 85, 67,148,182,193,203,182,139,189, 63,155,148, 2, 86, 33, - 18,113, 58, 18, 13,145,136,166,129, 1, 35,105,146, 65, 19, 50, 27,195,198,107, 52,154,214, 33,163, 91, 68,248,183,134, 33,100, -128,209, 32, 13, 32, 18, 15,218,232,228, 9, 98, 72,220,171, 49,227, 50,178, 30, 85, 35, 37,223,180,168, 2,158, 30,205, 94,220, -236,240,124,174, 49,142, 10,246, 3, 69, 82, 71,213,201, 88,203,140,222,115,122, 83, 24, 23, 32,244,222, 93,164,135,147, 93,100, - 68, 1,129, 14, 4,170, 64, 2,145,233,144,227,161, 20, 94,209,148,136, 84, 28,161, 5,100, 57,189,118,232,152, 13,226,131, 53, - 67, 1, 9, 84, 76,102,255,232,159,253,252,255,248, 63,255,223,119,151,151, 63,248,244, 99, 80, 87,228,103, 63,254,252,211,255, -240,159,254,243,143, 62,123, 86,100,102,215,108, 77,150,157, 61,122, 4,144, 47, 22,147,213,114,195,236, 44,233,104,153, 79,246, -117, 60, 28,207,248,219,217,153, 15,129,217, 28,236,144, 49, 17, 31, 84,129, 17,226,200, 83, 56, 60,177, 0, 18, 83,126,252,157, -140,112,130,164, 45, 76,205, 92,129,247,188, 8, 29,173,179, 56, 66, 45, 0,148, 36, 14,170, 64,204, 35,186,255,224,131, 76, 26, -112, 0,137, 33,250,174, 35, 66,114,153,177,108,243, 76, 85,155,221, 6,165,243, 58,204,170,133,134,174,223,173,179,201, 49,160, - 49, 16,251,110,227,138,169, 10, 16,104, 64,140, 40,209, 55, 93,167,121, 89, 40,178, 97, 32,199, 49,202,224,227,224,189,134,240, -244,147,207, 49,159,247,219,203,233,116,209,109,238, 66, 95, 71, 4,198, 56, 4,153,157,126,112,246,236,147,174,217, 18, 87, 26, -187,245,253,205, 16,134, 24,194,126,123,247,112,115, 81, 84,167,113,168,213, 55, 3, 14,131,232,122,189, 33, 50,203,237, 14, 24, -251,125, 93,239,182,134,205,220,229, 81, 36, 6,239,138, 73,169, 88,111, 87, 82, 20,229,244,232,104,177,104,107,192,188,148,122, -217,180, 77,140,234, 12,134,216,247, 67, 40,226,206, 32, 69,208,204,101,210,109, 61,185,216, 14, 68,198,215, 91, 71, 70,144, 67, -191, 87, 42,242,172, 44,167,147,253,110,141, 49, 8,196, 40,193, 88,174,102, 19, 21,180, 54,151,232,157, 45, 39,121,222,113,182, -139,241,254,225,190,200, 55, 77,211, 84,147,217,208,118,141, 42, 81, 86, 77,103,113,183,243,190, 39, 37, 17,106,247,219,180, 22, - 26,186,118,232, 7,231,178,190,173,153,173, 53,166,233,154, 24,176,116,184,233,219,162, 90,128, 39, 25,122, 59, 61,153,103,185, - 53,102,121,119, 57,132,110, 24, 90, 59, 61,125,156,229,179,220,173,239, 46,170, 35,216,109,239,171,217, 41, 15,144,217,118,113, -242,200, 58, 27,200,204, 22,143,250,118,155,103,133,177,206, 26, 82, 31,119,235,119,229,100, 78, 54,103, 99, 44,199,117,221, 62, - 49,225,228,248,168,154,149,101, 81, 68, 9,203,187,219,205,253,237,155,215,223,191,188,120,247,238,246,246,226,250,102, 87,215, -139,217,226, 15,127,247,143,254,201,207,127,135, 98,219,215,235,175, 62,125,244,244,180,218,173, 55, 95,127,251,221,237,253,106, -190,152,156,156,157,244, 49,254,237,175,191,206,173,123,245,246,234,226,205,117,153,217,233,209, 49,234, 8,115, 53,142,210,199, - 46, 32,103, 99,217, 26,124, 8,214,176, 68, 13, 26, 25, 57,213,240,144, 24, 84, 65,116, 8, 65,130, 26,147, 92,170,130, 68,150, - 77,170,253,228,153,233,135, 16, 35,160,162, 37, 4,196, 33, 70, 4,101, 99, 52,136,162, 48,154,116,174,165, 74,121,240,209, 90, -195, 25, 74, 28,213, 15, 6, 72, 65,130,136, 70, 33, 34,209,113,180, 78,204, 16, 5, 8,162,160,140,222, 15,140, 41, 19, 50, 14, -138, 1, 68,152, 9, 1,125, 76, 67, 4,245, 18, 19, 46,139,129,211, 60, 56,109,139, 1, 48,170, 32, 37, 15, 19, 6, 21, 28,171, -149,160,160,101,150, 9,104,244,193, 57,151,216,130,160, 74,204, 72, 42, 1, 84,212,176, 37,195, 32,193, 50,167, 15,171, 33, 4, - 67,226,189, 97, 6, 96,107, 88, 6,141, 81,216,224,190,237,135,182, 61,158,149,232, 28, 8, 36, 79, 8, 3, 42, 81,148,212, 70, -210,224, 21, 29, 89,230, 36,125, 72, 55, 68, 82,224,255,241, 47,255, 28,198,246, 15,209, 72,114, 72,135,225,248,118,112,184, 95, -114,154,213, 28,230,216,240, 94,179,148, 46,245, 35, 98, 75, 14,216, 96, 0, 0, 45,178,252,237,197,197,124,113,108, 71,119, 35, -140, 98,189, 68,187, 25,239,250,138, 68,108, 80,198, 23,134,180, 34, 68, 72,251,130,195, 47, 46, 61, 54, 71, 33,121,242, 28, 43, - 40,210, 97,210, 50, 46,145, 83, 39,120,124, 63, 24, 23,140,240, 62,248,163,128, 60,146, 20, 32,205,254, 80, 1, 98,152,206,102, -187,237,246,226,234,174,176,217,236,120, 62,244, 67,158,101,203,229,102,179,111,127,254,197,243,174,247, 18,195,221,205,125, 63, - 12,243,227,147,253,102,229, 76,230,178, 12,229,208, 56, 26,179,139,233, 27, 76, 96, 5, 0, 68, 54,227,251,208,216,196, 2, 69, - 66,145, 56,254,232,108, 21, 5, 98, 68, 38, 0, 26,141,224, 99, 6,149, 15,165, 93,132, 67, 45, 56,101,204,210, 43,146,140,104, -186,164,136, 81,149,244,227,152,113,194,150, 2, 52,156, 50, 88, 69, 81,205,144,176,109, 7, 4, 84,241, 69,206, 10,132,192,113, -104,110,175,239, 59, 15,179,105,229, 50,115,121,249, 16,252,128, 10,214,229,169, 76,128, 49,248,174,141, 68,126,191,201,138,194, -247, 33, 70, 65,191, 5, 38, 19,183, 73, 26,247,230,250,246,118,185,236,188,255,225,199, 63, 48,161,117,197, 52, 52,123,223,212, -237,230,174,245,126, 86, 76,148,233,195, 31,126,117,116,254,164,221,109,156,115,211,147, 15,218,166,235,183,203,122,125,101,109, - 97,140,205, 51, 75,204, 57,103, 93, 83,199, 40,189,232,126,187, 14, 8,165,205, 55,187,141,117, 89,149, 59,103,204,209, 98, 33, -170,205,126,215,117, 53,187,114,113,124,222,214, 59,136,189,203,202,205,190,185,189,121, 27, 49,223,239,215,211,249,137, 14,141, - 97, 39, 50, 0, 66,136,218,251, 16,154,135,227,179, 15,252, 48,212,155,155,124,114, 76, 68,174,156,151,147, 89,150, 57, 6,109, -247, 75, 31,116,240,123, 66, 86,136, 32, 93,140, 42,126,200,178,124,232,107, 54,121, 20,159, 57, 6,141,253,224,219,118, 48,164, - 49,120,227, 50,118, 5,136,206,103, 11, 16, 25,134,182, 40,167,189, 31, 92, 86,177,117, 49,232,234,225, 74,128, 77, 58,128,217, -130,192, 48,244,192, 72, 4,126,232,145,108, 68, 41,242, 28, 20,230,211,227,135,229,187,235,213,114,191,219,158,159, 63, 59, 57, - 58, 33,114,229,226,220, 90, 87, 78,143, 1, 89, 21, 66, 24,182,235, 27,147, 79,201,228,205,126,103, 25,243,124, 14,138,157,239, - 21,140, 53, 1,144, 57,203, 39,213,220, 21,185,244,155,103,207, 30, 61,122,244,104,113,188, 96, 99,187,118,255,112,253,238,205, -203, 23, 95,127,251,205,139,139,183,151,119,119, 23,183, 55,117,221, 60,123,242,193,159,253,235, 63,126,246,193, 15,183,171,219, -179,137,251,242,249,105,105,244,205,171,151,255,240, 15, 95, 7,137,121,145, 7, 17, 83,229,222, 15,223,125,255,182,221,181, 19, - 99,143, 38,149, 25, 95, 82, 37,141, 83, 84, 49,202, 40,181,176,198, 72, 82,175,165,216, 71, 34, 34, 26,131,138, 68,104, 82, 14, -122, 60,107,240, 32, 60, 98,132,145,237, 46, 81,130,138,170,102,142,129, 72, 36, 42,162,177,196,201, 71,151,252,113, 34,134,153, - 57, 53,158,128, 13,161, 1,245,202, 68,134,199,117,215,193, 21,145, 14,113,176,204,169, 17, 58, 4, 25, 41, 44,100, 0, 1,153, -249, 16, 40, 78,183, 68, 99, 9, 20, 99,148,116,169,125,223, 47, 97,194,168,224, 12, 89,231, 44,178,138, 40,104,110,242,132, 42, - 87, 21,139,148, 14, 54,195,134, 0, 6, 31, 8, 34,115, 90,154, 41, 34,165, 72,184,247, 66, 76, 76, 22, 9, 13, 2,145, 17, 85, - 38, 50,214,166, 11, 29,145,161,228, 3, 81, 1, 68, 99,168,247,113,189,223,207,138,188,204,179,116,202,216,145,150, 67,160, 74, - 68, 34,170, 0,134,137,153, 12, 51, 18,138,130, 15,145, 64,211,224, 46,249,197,137, 71, 34,138,144,234,225,196, 79,194,114, 80, - 64,213,247,235,208,247, 97,111, 76,250, 91, 34,162,164,170, 5, 2, 6, 84, 57,136,161, 33, 0, 31, 79,243,135,237,238,233,241, - 76, 36, 61, 53, 15,133,132, 52,120, 79,187, 79, 73, 88, 48,147, 86,185, 4, 36, 33, 40,104,210,154,166,245, 35, 17, 18, 74, 2, -175,140, 96, 25,213, 67,202, 38, 69, 19,211,166, 29, 15,227,123, 81, 33, 1, 73, 55,221,116,157, 39,192,241,176, 37, 4, 74,195, - 18, 85, 38, 85,252,157,159,126,249,221,219,235,235,187,187,106, 50, 45,171, 50,138,255,224,233,163,191,251,205,119, 95,125,249, -241,249,201,162,238,194,143,126,246,187, 18,154,237,174, 57,127,250,120,189,218,184,224,152, 24,209, 40, 0, 59,171,209,171, 74, - 12, 66, 72,232,140, 98, 36, 66, 85,209,212, 85, 96, 74, 15, 42, 9, 33,253, 94,147, 24,132,144,213,164, 55,216, 20,110, 61,108, - 17, 84, 16, 57, 1, 66,117, 92,152, 34, 18,146, 49, 26, 98,140,131,113, 46, 97,232, 53, 36, 98,157,112,234,138,164,121, 86, 20, - 53, 12, 0,209, 7,155, 51, 18,182, 93, 15, 10, 93, 83, 91,146, 96, 45,145, 74,240, 38, 43,216, 24,132, 8, 81,216, 88,155,229, -138, 71, 72,168,210,183,251,218,106, 12, 54, 23,229,216,181,192, 70,163,247, 30,173,225,108,250, 40,160,217,175, 95, 89,235,186, -190,105,154,150, 16, 13, 91, 34,107,166,143,172,205,219,193, 83, 24, 6, 31, 93, 86,177, 45,167, 71,243,249,233, 73, 93,111,189, -224,244,228, 81,232,118,190, 93, 85,199,103, 93,179,111,235,218, 57,179,219,174,135,190, 71,241, 64, 90,239,219,213,234,206,139, -150,197,116,181, 89, 55, 67,180, 20,247, 97,112, 54,107,183,155, 72,182, 29,250,188,156, 13,195, 16,154, 77,244,158,220,196,149, -139,219,235, 43, 99, 43,132,161,116,150,137, 64,216, 15, 77, 84,200,184, 10,245, 67,181, 56,245, 68,235,235,111,178,242,180,156, -159,179,177, 24, 3, 16, 33, 90,109,247,198, 96,181,120,204, 77,141, 4, 67,219, 24, 91, 33,120, 37,107, 12,239,150,151,197,244, - 88, 67, 19,177,220,174,111,227,224,201,230, 72, 56,116,129,136,173, 41,253,176,235,155,189,198, 61,178,149, 32, 49, 14,251,237, - 93,107,171,204, 56,237,215, 89, 62, 55,140,126,232, 32,202,224, 99, 28,106, 96,107,139,249,224, 7, 2,200, 51,215,180, 97, 49, - 59,219,238, 30,190,125,243,155,166, 94,255,240,195, 47, 5,141,203,136,136,251,254, 30, 86,146,231, 19,233,119,214,132,193,235, -126,243, 48, 61,127,158,229,147,118,191, 70,197, 0,188, 95,223,100, 46,115,197,116, 49, 59, 10, 67, 71,166,244, 33, 88,226,217, -164,154,125,250,233,164,170,178, 44,239,218,166,174,119,155,251,155,111,190,251,250,197,235,139,205,126,191,218,108, 55,155, 13, - 91,243, 63,255,119,255,203, 23, 95,252,164,174,235,216,110,126,254,233,209,147,211,249,237,213,205,203, 87, 47,183,155,221,179, -143, 62,172,206,166,255,223,223,254,227,179, 71,199,157, 14,191,250,135,239,102,228,206,171,210,199,168,136,108,156,196,161,105, -251, 62, 52,185,181, 69,150,231,121, 22, 99, 80, 5, 31, 67,140, 98, 83,237, 61, 13, 16,172, 9, 94,200,176, 65,235,131, 71, 5, -203, 28, 48, 38,173, 3, 1, 41, 64,225, 44,170,168,136,199, 36, 2,228,193,135,145,170,164, 98,192,120, 1, 4,148, 24,172,179, -133,115, 94, 49, 9,155,148, 48, 70,193,136,206, 25, 81, 53,160, 33,137,136, 1, 13,211,144,182,112,138, 62, 13, 69, 69,217, 80, -242,119,166, 68, 37,160, 26, 99, 67, 12, 17,129, 64, 83,132, 7, 8,208, 25,136, 10, 34, 41, 15,168, 24, 81,217,177, 97,107, 37, -134, 94,133, 9, 24, 77,140, 67, 4,116,105, 9, 11,138,136,142, 40, 34,134,168,133,203, 0, 16, 33, 42,129, 4,176, 76, 94,162, - 2, 86, 69,209, 6, 1,137,214,218,160,136,160, 6, 13,128,104,140, 41,175, 14, 18, 33,105,224, 84, 17, 68, 98,188, 94,110, 10, -198,163, 73,217, 69,113,136,145,176,139,222, 32, 27, 70, 0, 26, 68,144, 17, 99, 4, 38, 80, 13, 33, 2,128, 65,238,209, 19, 40, - 1,241,255,244,151,127, 1, 8,140,128,230,183, 17,125, 28, 35, 26,233, 65,136,227, 61, 55,161, 5, 36,140, 36,152,195, 26, 22, - 71,132,103,194, 36,143,113,245, 52, 71, 8,128, 83, 19,239,183,237, 98, 62, 17, 25,239,246,233, 68, 38, 32,125, 95,184, 79, 35, -133, 68,200, 26,139, 84, 4,128, 26, 3,154,131, 24,100,108,185,141, 5, 78, 64, 74, 13,177,177, 16,251,219,164,230, 40, 34, 77, -122,215,177,120,139, 4, 74, 32,137,131,147, 30,103,227,216, 28,145, 1, 40, 70,157, 76,114, 6,255,143, 47, 47,115,103,102, 71, -115, 98,202,141, 27,250,254, 55, 47, 47,126,254,229, 39, 65, 98,223,247,183, 87, 23,203,229, 50,200, 48,244, 67,238,242, 4,205, - 52,198,106,148, 68,101, 24, 31,129,162,105, 89, 35, 49, 34, 36,249,150, 66,122, 77, 27,215,195,172,154,222, 71, 18, 69, 72, 37, - 10, 26, 67,104,210, 28, 38, 77,114,144, 65,163,140, 58, 66,194, 84,171, 83, 20, 64, 2, 77,141, 92, 0, 76,116,103, 68,250,109, -238,120,108, 35, 43, 0, 66, 86,206, 13, 99,219,180, 89,158,245,117,107, 51,139, 54, 67, 4, 21,181,214, 61,220,222,183,245,230, -248,241,179,217,124,122,241,234,123,224, 76,162,236,151,247, 46,171,140,203, 35, 88,100, 43,161,103,195,125, 63, 40,160,205, 28, -160, 27, 86,239,218,122, 89,230,249,114,179,189,184,185,109,187,222, 11,252,226,167,255,204,162,248,118, 75,177,237,219,253,166, -237,166,211, 41,101,238,217,243, 47, 92, 81,121, 49, 89, 81,146,134,187,139,151,104,109,189,188,204,108, 85, 86,149,250,222,135, -136, 34,221,246,190,233,122, 65, 18,223,163, 49, 79, 79,159,108,235,205, 32, 65, 99,200, 51, 87, 85,147, 40,113, 24, 90,227,114, -137, 66,168, 2,216,117,155,211,179,199,190,111, 86,235,109, 93,239, 67,243,144,229, 37, 32,119,109, 45,136,117,219, 53,237,158, - 8, 28, 27,114, 57, 82, 33,200, 33,198, 97,232, 93, 53, 37, 54,245,110, 37,202,206,112, 8, 61, 72,168,155, 70,136, 65,209,162, -175, 38, 39,206,102,108,115, 36, 38, 67,136,216,118,221,118,183,149, 48,236,214,247, 0,120,180, 56,206,156,169,155,214,230,229, -126,191,239,187,225,104, 49, 45,242, 2,208,129,239, 76, 54, 9,253,110,114,116,228,152, 98,240, 89, 86, 13, 62,206,166,179,147, -163,121, 81, 76, 53,134,172,156, 16, 72,235,251,182,239,110,151,183,147,242,168, 98,146, 24, 0,105, 54, 61, 98,150,182,235,216, - 22,229,252, 12,181,179, 46,207,202,197,126,189, 42,170,105,244,221,208, 55, 89,158, 7, 17, 81,244,221,190, 40,114,212, 33,250, - 22,144,143,142, 22,143, 31, 31, 85, 85, 54,153, 76, 84,180,222,109,238,111,223,190,121,245,242, 87,127,247,119,223,188,186,184, -185,127,184,123, 88, 6,209, 31,125,241,227,255,230, 15,255,248,195,167,207,111,223,254,230,209,220,252,248,147,163,130,240,235, -175,191,249,254,197, 43, 54, 12, 76,154,217,111, 95, 93,236, 54,187,235,171,155,239, 95, 94, 30,103,238,164, 42,153,153, 13,151, -142, 51,107, 66, 4, 31, 35, 34,176,161,204,216,180,169, 28,111,170,138,214,146, 87, 85, 80, 98, 78, 98,179, 4,154, 77,168,193, -160,146, 86,121, 2, 96,136, 13,161, 68,241, 33, 36,125,141,177,172,162,137, 42, 59,214, 17, 15,221, 72, 69, 16,213,182,239,153, -137, 24, 67, 20,195,204,128,206, 26, 70, 35,163,205,103,204,135, 32,160, 53,236, 12, 43,170, 38, 1,247,232,131, 38, 64, 48,105, -190,195,156, 2,239, 57, 83,170, 74, 38,146,176,136, 16,170,113, 38,125,243, 76,236,216, 18, 37,186, 31, 57,166, 40,154, 10,235, -134, 80, 16, 64,128,137,172,229, 46, 8,129, 26,102, 77,132, 94,107, 81, 5, 1,251,100, 88,101,163, 10,134,208,218, 44,136, 26, - 34, 34, 43, 26,145,146, 65, 57,213,143, 16, 16, 12,162, 2,129,234,253,182, 1, 13,103, 39,115, 47, 96, 8,129, 25, 85,153,216, - 18,132,177,217, 3,170, 34, 49, 16, 83, 8,202, 76, 0, 24, 68, 98, 28, 12, 82,239, 7, 51,238, 69, 85, 53,200,225,136, 2,132, -209, 73,136, 35,103,102,100,236, 42, 68, 96, 30, 19, 55,144, 30,118, 73,151,138,201, 16, 61,238, 8,146,108, 21, 64, 99,200,171, - 41, 63,220,140, 35,244, 17, 84, 25,117,140,141,208,248,229,198, 41,198, 97, 57, 43, 74, 76, 18, 21, 76, 98,117,166,227, 78, 80, - 89, 17,188,136, 1, 16,140,170, 35,138, 39,117, 91,137, 8, 68,210, 77,253,125,252, 71, 9,223,123,212, 71, 73,169,140,163, 27, - 5, 21,145,168,158, 21, 17,160,239,241,231, 63,253,201,197,229,253,213,205,221,108, 54, 63, 62, 57,214, 28, 62,126,246,236, 63, -254,237,223,253,205,223,125,251,135,255,244,199, 15,251,246,228,236,217,211,140,190,251,230,155, 47,127,242,179,118,191, 19, 0, - 86, 9, 33,188, 87,187,167,196, 21, 27,163,160, 26, 21, 21, 84, 6, 69, 65, 97, 64, 64,178, 32,202,214,136, 38, 8,193,216,184, - 2, 65, 98, 77,140,124,100, 74,111,127,160,128, 17,211, 91, 41, 32,168, 72,196,177, 1,160, 2,138, 17,217,162,161,196,104,163, -145,238, 44,132,246,191,202, 4,163,248,104,115,215,247,189,117,150, 48, 22, 85,161,164,160, 1,201,162, 73,175, 5, 32, 2,245, -190,142, 39, 71,214, 21, 81,160,110,246, 38, 43, 93, 89, 49,218,102,187,236,234, 70, 36, 90, 84,116,121, 57,169, 24, 1,140,221, - 14,181,181,198, 71,241,222,119,221,224,125, 40,114, 87,152, 16,169,204,114, 30, 54,187,221,110, 55,201,243,220,186,197,241,169, -113, 69,179,219, 70,228,249,252,169,177,153,162, 33,100,107, 93,179,221, 22,229,164,239,187, 60,115,203,237, 18,216,101, 0,125, -221, 2, 59,146,184,218, 62,236,246, 27,195,121,140, 50,153,206, 50,166,182, 27, 24, 89,253, 0,156, 5, 68,195,118,126,244,148, -145,167,147,108,181,222,220,223,109, 23,179,217,116,118,220, 52,123, 69,202,172,107,234, 38,203,139, 50,207, 69,164,223,175, 57, -159, 64, 24,156, 37,180,115, 8, 67,240, 29, 16,135,190,217,118,189,201,103,108, 50,227, 38, 12,146, 57,106,155, 48, 12, 53,171, -230,213,145,250,154,162, 4,148,170,152,102, 68,125,183,153,157,127,104, 12, 3, 65,215,110,183,245,182,240,118, 82, 86,131,247, - 26, 98, 27,106,231,170,174, 94, 13,245,242,201,249,243,188, 42,218,253,174,105,106, 76,122, 10,208,135,235,139,233,201,121, 81, - 20,198,184,251,135,183,251,182,159,149,243, 39,167,143, 21, 12,229, 85,145,209, 48,248, 16,189, 35, 10,193,163, 15,251,237, 61, - 97, 4, 16,227,154,220,209,233,241,209,190,174,219,190, 27,134,218,123,207,174,130, 96,144, 50, 54, 89, 94,232,233,201,209,217, -227, 71, 69,145,199, 16,134,174,217,172, 30,174, 46,223,188,185,120,251,234,205,229,205,253,114,185, 89, 13, 62, 62, 59, 63,255, -139,191,248,235, 79,191,248,234,238,221,149,214, 87, 63,255,252,105,149,187,155,215,111, 94,190,122,195,140,130,128,142,171,197, -228,250,250,225,237,235,139,210,216,220,152, 79, 78, 79,152, 9, 84, 19,155, 54, 70,236,195, 96, 8, 38,121, 22, 66,242, 22,144, -162, 48, 18, 42, 26, 2, 33, 80, 66,142,202, 70, 1, 48, 68, 85, 9, 9, 54,146, 34,207,134, 16, 0, 13, 81,142, 16, 69,135, 32, -201,146, 74, 76,138,136,204, 40,209,135, 94, 21, 44, 83, 16, 80, 80,107,141, 70, 29, 0,147, 72, 58, 77, 68,211,255, 5, 80, 12, - 49,210, 97,127,170, 99, 72, 7,216, 80,136, 49, 68, 53, 64,128, 18, 37, 29,152,227,205, 83, 83,153, 18, 52,105, 25,132,149, 34, - 34,146,239,189, 73,224,176, 4, 62, 36,195, 72,233,196, 79,195, 99, 75, 24, 68, 36, 70, 52,204,100,188,198,140,172,113, 24, 98, - 8, 65,210,240, 24, 15, 55,214, 16,162, 15,209, 25,227, 40, 7, 20, 5,116,100,131,134, 32,225,208,177, 18,228,145,208,144, 92, - 74,140,200,134, 98, 16,208, 88,119,253, 48, 12, 39,211,202,144, 65,144, 20,112, 84,228, 16, 37,149,245, 49,197,117,130, 8,160, - 68,207,100, 19,187, 94, 84, 17,104,240, 94, 98, 48,135,173,109,226,120,141, 91,102,129, 8,148, 68, 19, 64, 72, 17, 99, 74,219, - 0, 26, 28, 87,123, 66, 56,134,251, 19,239, 13,120,148, 20, 33, 40, 19, 70, 25,199, 96,189,102, 25, 67, 8, 49,173,105, 17,137, -129,148, 0, 34,140,143,132,180,247,246, 17, 17,137,237,200,144,140, 66,140, 26, 89, 37,241, 23, 89, 85, 34, 8, 40, 48,167,226, -146,142, 4, 24, 64, 48, 4, 49, 61, 85, 18,122,102,172,236, 30,150, 61, 0,162,104, 84,149, 68,210,115, 58,121, 71, 4,144, 52, -138,142,245, 89, 17,133, 63,250,189,159,253,239,255,254,255,217,110,183,206,185,217, 98, 14,160, 95,126,246,233,255,253,171,191, -255,233,231,207,115,231,186,174,157, 46, 30, 45,102,147,183, 47,191, 21,208,179,199,207, 80,149,153, 1, 73, 1, 73,146,204, 26, - 53,134, 52, 67,151, 24,131,239,149,192, 24, 99,200,164,134,147, 28,250,200, 35, 97,152,136,141, 17,141, 41,129,139, 64,169,185, -167, 32,227,152,246,158, 56,101, 0, 0, 32, 0, 73, 68, 65, 84, 82, 99, 34, 55,164, 97,153,200,168,115, 4,212,212,106, 35, 36, -137, 50, 14,157, 36,138, 82,194, 17,165,226,117,236,134,193, 71, 87, 22, 81,196,228, 14, 52, 50,129,146,129,232,137, 17,173, 67, -155,203,208,176, 70,114,101,179,188, 39,213,106,122, 98,139,162,221,111, 80,192, 15,189, 43, 42,196,200,126, 27, 7,228, 98, 94, - 20, 19, 85, 40,139, 34, 4, 29,124,136, 33,246,195,112, 50,153, 73,140, 96, 93, 28, 86,171,229, 3, 49,101, 89, 94,148,213,209, -217,211,200, 44,128, 46,159,102,121, 17, 99,232,218,118,186,152, 19,101,132,117,219,108,234,253,186,172,166,121, 94,108,219,102, -223,180,247,155,245,233,209,233,182,222, 11,113,158, 79, 5,145, 82,141, 0,193,185,156, 12,109, 55, 43, 91, 40, 6,140,108, 50, -166, 97,127,127,191, 3,195,110, 54,153,134, 32,171,205, 6,148,189,247, 6,109,140,126, 62,127,180,200,176, 7,183,220, 46,157, - 98, 97, 29,144,179,182,240,237,182,109,154,201,226,188, 23,169,219,173,201, 52,168, 49,134,138,162, 98,136,197,100, 46,209,239, -238,222,186,172, 84,224,182,222,238,154,102,177, 56,203,140,221,214,251,249,236,172,238,189, 72,204,108, 54,159, 44,154,102,211, - 55,117, 53, 59,241, 26,218,253,234,244,113, 85, 76,230,155,135,123, 64, 10,245,186,237, 60, 16,183,205,222,119,117,113,244,184, - 31, 38,147,106, 49,196,246,155,183, 47,103,213,252,217,249,211, 24,154, 16,194,110,191, 98,151, 23,217,177,203,105, 8,131,143, -234,251,125, 86, 46,178, 44, 71, 38,137,195,116,113,110,179,105,189,185,181,121, 53,153,206,195, 48,100, 25, 13, 67,237, 37, 20, - 69,241,232,108,118,124, 52,159,206,167, 64,220,119,237,126,187, 92,222, 93,189,126,253,246,197,155, 55,151, 55,247,203,205,118, -187,219,156, 31,159,252,171,127,249,231, 63,248,232,249,201,227,103,251,187,119,231,110,119,246,232,180,221,237,190,254,245,175, -239, 31,238,159,126,248,212,205,167,239,254,238, 31, 62,121,242,201,247, 87,215,111,222, 93, 76, 93, 54,201,172, 77, 29, 28, 4, -135,152, 90, 64,138,152, 25, 6, 16, 1,114,228, 4,128, 65,153,221,248,210,153,198,198,168,206,226, 16, 19, 76, 17,172,203,250, - 16, 85,148, 56, 37, 41,161, 96,142, 18, 3, 32, 16,102,206, 48,179,166,207,132, 37,138,232,209, 19, 24,102,236,188, 7,145, 44, -119, 49,168, 40,152, 49,215, 4, 22, 8, 13, 70, 21, 63, 68, 34,214, 0,214, 82,210,236, 9, 66,110,185,243, 33, 68, 9, 65,216, - 16,104,106,246,163, 40, 48,211,225,202, 39,169, 35, 19, 84, 36, 38,111, 20,170, 42, 89, 2, 25,239,135,150, 24,144, 65, 3,165, - 85,153, 70, 47,234,197, 51,176, 51,206,199, 64, 70,138,204, 74,148,255,159,169, 55,251,182, 36,185,238,243,246, 20,145,195, 25, -239, 80, 83, 87, 87,119, 3,141,129, 0, 65, 2, 20, 8, 83,166, 37,216,178, 23, 41,137, 11,146, 37,175,101,210,255,166,159,237, - 7,123, 45,201,131, 44, 89, 52, 41, 52,128,238,174,121,186,243,116,166,204,140,216,123,251, 33,242, 92,168,159,250,161,186,250, -214,189,167, 34, 35,247,254,253,190,111,155, 84, 8, 0, 57,136, 67, 49,141, 48,238,186,132, 8,109, 93, 3,178,217,192,161,222, -237,122,117,117,117, 34, 82, 87,116, 12, 18, 2,225,144,243,200,204,114, 3, 64, 77,136, 0, 73,245,110,189, 57,156,214,109,211, -154,155, 25, 84,140, 9,129,136, 43, 34, 66,202, 56,152, 17,186, 34, 1,164,210,157,228,145, 13, 14,158,178, 49, 0,179,240,223, -252,234,175,198,129, 8,143,107,211,241, 73, 75,163, 49,200,125, 60,114, 11,145,103,180, 5, 18,179,208, 61,108,253, 30, 71, 62, -210,201,247, 36, 1,114, 32,228,220,239,178,243,180,141,227, 35,214, 12,108, 20,138,112, 1,136, 21,220,132,121, 9, 92,150,237, - 72, 1,199,140,117,158,130, 84,135,113,238, 81,134, 66,165,184, 75,145, 71, 23, 82,217,114,142,249, 28,250,207,168,186,101, 58, - 95,152,208, 5,102, 9,165,117, 1, 99, 60,221,137, 11, 51, 46, 79,166,237,176,219,190, 57,189, 92,206,231,128, 72,204, 85,172, -206, 46, 46, 62,158, 95,252,226,143,127,184, 90,175,213, 97,182, 88,188,127,255,254,248,209, 99, 75, 29,145,148, 70, 7,151,146, - 42,140,238, 36,164, 17, 43,234, 14, 34, 49,132,186,244,197,212,178,231,242, 25, 0, 55,167, 49, 19, 54,214,198, 10,118, 3,161, - 92, 71,246,195,174,253,254, 29, 16, 93, 29, 10, 89, 66,184,208,239,203, 93,102,127, 19, 25,247, 65,191, 55, 95,113, 4,174,164, -170, 64,147,123,230, 16,170,182,149,170, 18, 41, 94, 89,185, 60,187,216,108,118,243,233,116,121,116,248,254,229,243, 33, 39, 53, - 13, 49, 14,125,191,185, 59, 87,160,217,124,201,130,117, 59, 67,174,187, 33, 79,167, 51, 71,188,120,247,213,108, 54, 77,170,167, -231, 87,151, 55,183,119,155,237,179,207,190,251,249,167,159, 89,127,115,123,254,113,115,119,215,212,205,100,186,156,204,166,245, -226, 16,168,178,212,207,142,143, 23, 7,199, 39,175,254,147,170,115, 8,222,109,136, 25,212,119,187,109, 96,233,119,171,245,122, -179, 27, 6, 55,223, 13, 93, 64, 55,181,171,155, 27, 9, 60,109, 91,180,228, 96, 33, 84, 89, 45, 86, 49, 10,239,186,158, 56,162, - 14,132,222,204,143,186,221,182,105,103,110,176, 77,253,110,216, 12,131,110,118,155, 16, 99,148,186,157, 55,211,122,114,119,119, -233, 24, 4, 53,109,111, 72, 98,168, 22,245,236, 40,109, 46, 57, 84, 20,154, 80, 79,132, 48,128,198,192, 41, 41,164,126,232,214, -102, 54,108,111,171,201, 28, 45,135, 80, 7,180,212,175, 23,135,143, 55,235,171,219,213,170,169, 99, 21,154, 88,213,121, 88,171, - 34, 72,181,221,220,205,167,139,249,108,158,205, 9, 97,219,173, 47, 46,207,150,139, 69,191,221,220,109,214,211, 58, 6,196,117, -215, 95,222, 93,175, 86,219,227,249,131, 42,212,169, 91,109,182,107,146,166,169, 26, 20,238,119,119,221, 96, 10, 60, 91, 28, 11, -218,108,249,137,144, 32,232,225,227,239,172, 87,183, 78, 56,153, 47,235,102,137, 62, 4, 17, 85,152, 46, 14, 63,249,244,179,207, -158, 30, 46, 14,151,147,201, 68,213,215,119, 87, 39,239,223,188,120,254,205,215,223,188,248,245, 55,207, 95,191, 63, 57,187,190, -169,132,254,244,167,255,197, 95,252, 55,255,236,232,232, 9,195, 46,216,230, 81, 59,204, 2,124,248,240,238,235,175,126,115,187, -221, 77,103,237,244,241,195, 95,127,243,245,213,229,205,233,217,229,235,231,175,143,154,233,188,110, 0, 70,181, 24, 19,233, 24, -200, 45, 57, 66,199,189, 96,161,220, 55, 1,255, 51, 68, 42, 1, 19,101,115,176,113,165,180, 75, 3, 24,112,224,210,104,171, 98, - 84,203,230, 48, 12, 22,132,192, 33, 91, 22, 18, 14, 81,136,212,177, 56,233,152, 73, 72,130,144,102, 35,194, 42, 22, 27, 90,209, - 76, 19, 24,172,182,219,117,183, 37,192, 58, 8,133,144,213, 4,145, 9,147,186,155, 67, 9,166,151, 59,103,225, 30, 50, 8, 48, - 0, 80, 25,181, 20, 19,211,232, 95, 26,217, 88,228,165,232, 4, 33,212,204,191,151,195, 17,130,130,169, 42,238,155, 42, 65, 56, -136,100, 53, 7,171, 99, 85,110,116, 6, 94, 51, 3,162,129, 71, 17, 4,234,134, 1,193, 0, 89, 53, 21,108, 73, 33,253, 18,115, - 20, 6,243, 98,236, 19, 98, 31,183,156,224,238, 68,124,185,222, 16,224,193,180, 45,211,241, 40,161, 31, 83, 67,152, 1, 0, 76, -176,204, 29,188,232,182,145,196, 85, 67, 8, 0, 60, 12, 3, 2,198, 42,154,155,248,232,138, 40,240, 45, 47,157,221, 61,108,230, -247, 16, 19, 36,128, 61,173,189,176, 86, 52,219,232, 99,245,177,123, 95, 38, 37,134,206,229,129, 81, 66,164,224,109, 91,157,175, - 55, 15, 14, 38, 41,217,253, 96,191,160,133,205, 70,238,188, 59, 32,147,227,126,122, 54,158,217, 58, 66,126, 97,255,236,113,180, - 50,199, 40, 30, 59, 24, 53, 44, 35, 96,126,228, 3,143, 63,150, 2,166,247,194, 35,114, 47,197, 33, 7, 3, 31, 11, 69,247,196, -203, 50,233, 35,196,156,253,199, 63,252,242,249,251,211,219,213,182,174,171,170,153, 49,241, 31,126,255,251,255,251,255,245,239, -254,191,223, 61,255,241,151,159,159,223,172,172,169, 68,120,185, 56,184,248,248,206, 20,103,179, 25,144,186,211,184,137, 38,217, -135, 24,157, 41,112, 19, 9,196,193,138,176,143, 93,220, 77,213,105,172, 98, 23, 28, 68,217, 69,237, 31,109, 56, 62,159, 44, 41, - 5,161,146, 42, 3, 80,205,196,204, 69,110,149, 13,139,171,140,137, 88,184,244,192,198,206,175,239,115,242,180,217,238, 66,152, - 81, 85,158,209, 94,152, 90,229, 27,169,253, 0, 65,153,137,133, 37, 84, 16,100,200, 67, 82, 16, 14,121,216,165,148, 17, 24, 53, - 1,213,228, 20,171,104,177,137,237,128,204,110,138,158, 8,201,205,182,219, 93, 54, 75,150, 31, 63,122, 22,231, 71,183, 55,119, -105, 72, 77,211,206,102,139,208,212, 40,181,153,186, 15,154,134,182,110, 85,123,105, 14, 14,230, 77, 26,214, 90, 77,170,202,250, -110, 55,159, 31,229,180, 73,221, 78, 98,172,156, 53, 15,235,110,152,207, 15,214,187,205,186,219, 85, 85,173, 33, 41, 10, 82,232, - 82,231,170,194,178,222,220, 41, 73, 3,154, 85, 15, 15, 63,191,221,108, 78,223,254,166, 57,122,102,128,144,186, 97,183,142,213, - 4,124, 75, 88,167,148, 54,183,107,159,203,241,209,163, 52,232,106,125, 99,200, 48,244,217, 51,121,149,157,250,213, 93,108, 38, -105,183, 21, 81, 97, 4,135,118,178, 72,187,235,128, 13,113,232,183,171,110,187,219,220, 94,212,205,204, 83, 46,166, 5,150,122, - 49,173,218,186,185,188,120,221, 78,102,187, 93,159,129,176,223, 52,109,251,224,201,231,183, 23, 31,222,188,254,102, 50, 91, 86, -237, 66, 98,221, 39,171,171,186, 74,249,118,179, 62,187,185,236,213,103,117,252,236,233, 15,136,252,230,250, 52,103,109,154,153, - 90,130, 80,123,159, 1,120, 50,153, 14, 67,246,161,191,189,124, 31,155,165,230, 29,197,185, 13,217,242, 16,235, 90, 72,134,110, -213,109, 86, 93,191, 93, 28, 28, 62,253,100, 57,159,205,154, 73,131, 64,219,205,221,221,205,197,201,219,119,111, 62,190,123,247, -241,244,227,249,197,197,245, 53,113,245,163,239,253,193,159,253,236,103, 15, 30, 60,189, 62,191, 8,222, 63,126, 52,123,120, 32, - 87, 23,215,191,253,221,203, 12,217, 9, 23,143, 14, 9,236,219,175,191,185, 58,187,241,148,221,224, 59, 15, 31,142, 62, 96, 24, -145,211, 64,128,134, 99,172,217,138,194, 20,145, 64,136, 75, 36, 60,151, 52,161,237, 71,148,123,151, 90,206,134, 68,194,236,142, -168,218,176,140,206, 2, 71, 7,111,107,206,224,224, 24, 36, 32,137,230,148, 93, 71,170, 30, 16,137,168, 90,234,119, 82, 62,239, - 9,132, 73, 17, 24,113, 63,106,119, 4, 74, 89, 59,210, 54, 90, 32,114,132,172,138, 0, 81,120,112, 77,144,203,139, 57, 11, 1, -144, 67, 78, 57, 51,161,193,184,128, 45, 2,191, 98, 88,139,101,139, 0, 12, 96,204,193, 93, 75, 67, 49,114, 80,205,102,192, 36, - 28, 88, 71,243,101, 57, 45,129, 69, 70, 11,102, 12,110, 26,145, 7, 75,194,145,176, 36,226,178, 48, 13,154, 81, 51, 49,187, 89, -118, 71,196, 40, 72,196,201,180, 12,100, 92,157,200,179, 27, 2, 9, 57,146, 92,172,182,150,134, 71,203, 69,168, 42, 3, 80, 85, -117,141, 76,132,232, 72,141, 56, 18,247, 67, 38, 4,195, 2, 72, 33, 36, 66, 15,238,100,104, 85, 21, 75, 56,197,204,249,111,254, -229,175,202,145, 72, 4,196, 82,206, 6, 47, 20,247, 49,102, 13,196,100,170,128, 68, 36,227,184,219,199, 93,231,168, 49, 4, 18, -188,143,232,143,206,219,123,250, 22,120, 58,191, 90, 29, 31, 30,169,235,222,148, 10,191, 15, 45,142, 17, 23, 96,137, 14, 6, 90, -234, 72, 35,116,197,192, 16,125,236,244,236, 3,142,229,155,133, 68, 72,100,247, 94,233,194,164, 87,219,223,128,125, 12,207,143, -187,207, 18, 29,116,220, 59,237,198,219,245, 8, 98,118, 42,177, 80,135,166,109,151, 77,252, 15,191,121,254,224,112, 73, 72, 77, -221, 8, 99,234,119,255,225,171,175,255,228,199,223, 71,198, 33, 13,211,249, 81, 26,250,102, 62,221,172, 86,117, 51,221,151, 99, -121, 28, 6,185,122, 86,150,200, 34,133, 43,112,143,241, 41,107, 11, 46,187,158,242, 3,115,199,146, 21, 35,192,145,166, 32, 99, -116,125, 28,210,149,184, 62,238, 73,203,229, 55, 67,191,183,188,143,250,129,130, 96,187,191, 91, 1, 32,229,108,147,201,188,140, -124,194,164, 17, 9,253,110, 71,160, 96,196, 65, 68,232,250,106, 53,100, 93, 30, 44,234,166,126,253,252, 37, 19, 85, 85,157,211, - 96,142, 96, 20,218,152,186,109,100,137, 12, 85, 59,179, 52,116,171,221,208,119,253,234, 99, 51,155,245,195,240,250,253,135,187, -213,102, 55,116, 63,255,217,159,195,176,189,185,185, 68,237, 39,147,118,114,240,168,239,239, 98,213, 80, 8, 64, 17, 67, 56, 58, -122, 0,174,219,205, 58,109,111,250, 93,162, 16, 44,229,235,139,247,253,230,238,227,233,187,186,158,170,105, 63,116, 18,107, 7, -175, 99,188, 88,173,222,158,157, 47, 38,117, 78,189, 25, 48, 7,116, 13,194, 49,134, 65,181,170,235,109,183,173, 98,123,187,235, - 20, 8, 25,115, 82,215, 97,117,123, 17,155,165, 8, 27, 9, 18,147,227,221,205,199, 71, 15, 30,118, 57, 29, 31, 62,186,184,189, -114,146, 52,172, 17, 61,165,236,136, 0, 70,158,165,154,196,170,114, 53,116,205,218,131,105, 51, 93, 36,237, 8,185,170, 27, 77, - 25,193,251,221,230,240,248, 49, 33,198, 80, 87, 33,204,231,179, 94, 65, 40,132, 88, 55,211, 69, 74,187, 93,183, 43, 91,238, 88, - 53,177,106,204,204,134,221,144,128, 24,111, 86, 55, 87,119,119,139,197,241,180,158,128,123,238, 87,234, 86, 46, 89,117,211,176, - 68,205,137, 99,203, 85,117,120,248,160,219,237,110,110, 46, 72, 90, 53,115, 80, 14, 85, 26,118,195,208, 31, 28, 29,167,164,221, -230,118,249,224,241,179, 47, 62,255,236,217, 39,243,249, 60,212,213,208,245, 55,151, 31, 63,190,127,243,242,197,183,191,253,246, -197,215,175,222,188, 61, 57, 61,191,190,121,120,120,252, 47,255,242, 87,191,248,233,159, 16,113,238,134,167, 11,248,195,239,125, - 18, 5, 94,125,243,226,213,139,151,203,227,229,163,239,124,242,246,228,108, 57,159,172,135,252,237,171, 55,190,237, 31,207,231, -179, 73,205, 34, 44, 1,193, 43, 17, 22,206,121,244, 98,194,158,136, 93, 86,159,163,211,174,140, 53,199, 12, 53,152, 3,122,105, -116, 22,167,217, 72, 29, 8, 65,162,112, 86,232,178,153, 67,228, 34,184,164,146, 86,100,226, 50,100, 29, 52,131, 67, 45, 21, 50, -155, 42,184, 2,160,142, 23, 31, 35, 34, 7,112,117, 71, 55,119,205, 30, 66,168,130, 76,155,154,104,252, 58,239,225, 49, 50,166, -205, 93,132, 0, 80, 85,211, 48,216, 62,184, 77,132,132,100,134,194, 28,153, 74,103,101,140, 83,178,187, 25, 34,163,123, 54,237, -115, 18,100, 68, 52, 4, 98,170,235,154, 29, 13,198, 3,213, 29,133, 89, 8,165, 92, 37, 75, 15, 8,201,193, 2,139,169,237, 82, -111,170, 99, 87,223,203,178, 18,232,222,177, 13,196,136, 34,210,169,154, 41, 35, 34,241,221,174,191,219,174,143, 23,211,217,100, -106, 5, 71,187,167,113,193,200,153,129,193,172, 36,108,178,163, 32, 8, 21,166,229, 88, 96, 42, 79, 89, 68, 54, 55,254, 31,255, -229, 63,191,231, 17, 66,241,202,194,126, 58,179,215,209,142,141, 27, 24,115,123,197,204,231,200, 5,156, 70,247,247,241,177, 81, - 38,229,148, 97, 64, 53, 7,183, 16,226,110,183,173, 39, 83, 28,175,203,116,255,129,216, 11,154,198,113, 49, 17, 9,153,223, 11, -163,225,222, 32, 61, 62, 16,120,143, 90, 39, 36, 28,143,122, 46,216,155,194,156, 27,225,184,123, 41, 55,142, 29,166, 49,148,227, - 48,254,230,227,162,114,196,206,141,184,201,242, 53,169,250,209,225, 65,191,186,126,119,190,154,183, 85,168, 43,137,113, 62,157, -188,120,249,246,110,187,249,163, 31,124,150, 18, 30, 28, 30,189,127,243,226,193,163, 79,183,155, 43, 66, 97, 9, 35,196, 14,220, - 85,145,132,100, 4, 64, 34,114,249, 26, 0, 93,115, 98,100,187, 47,172,142,149,168,223, 35,126,246,174, 38,255,125,209, 23, 75, -153,120,164,238,141, 79,145,146,240, 44,183,146,178,185, 46, 55,172,251, 54, 90, 81,176, 43, 84,237,178,153, 84,229, 9,141, 44, -214,239,220,156, 89,220,149, 66, 32,131,139,139,171,205,106,211, 52,117, 21,227,217,217,101, 12,130, 40, 14,100,253,142,130, 32, - 82,136, 77, 61,153,169,131, 13, 89,251, 53,133,122,117,247,222,134,117, 83, 53,171,219,245,235,247, 31,110, 86, 43,169,234,127, -240, 71,127,186,185, 62, 1,205, 77,221,196,170,166,170, 37,208,122,126, 40,161, 33,162,249,116, 42, 18,146,194,118,117,109,195, -174,212,147, 77, 77, 83,223,119, 59, 55, 63,156,181, 68,124,118,126, 78,204,217, 52,138,188, 60, 57,121,254,241, 28, 65,231,245, -148,145,154,201,100,216,174,235,186, 18,150, 33,105, 78, 9, 1,170,170,218,165, 92,140,149,110,131, 3,197,102, 14,218,163,166, -236, 62,244, 27, 39, 18, 97,236,111,165, 89, 84,161, 90,173,110,141,130,132,102,215, 15,105,232,147, 38,211, 14,210, 48, 59,120, -232,195, 70, 98,219, 30, 60,132,220, 19, 75,218,173,186,221,198, 0,212,225,234,242,189, 16, 12,221,174,239,119,147,105,107,154, - 52,237,118,155,187, 88, 77, 54,187, 77,211,180,135,203,227,126,200, 49, 54, 13,167,110,187,155, 31, 62,220,236,118,232, 6,110, -119,219,213,237,221, 57, 81,108,171,118, 82, 5, 34, 32,142,132, 14,200,179,197, 17, 32,174,239, 46,171,186, 85,131,216, 78, 60, -111, 53,167,201,116,174,125,127,248,228, 51,169,107,161,128, 68, 67,191,110,170,202,156,243,176,251,228,179,103,159, 60,126, 48, -155,183, 85,172,114, 78,183, 87,231, 39,239, 94,189,125,243,234,219,231, 47,127,243,252,197,203,247, 31, 46,174,174,171,170,249, -135, 63,251,197, 95,252,147, 95,205, 38,147,174,219, 46,167,179, 31, 62,157, 62, 56,154,156,189,123,247,205,111,126,123,122,122, -250,240,201, 3, 90, 78,190,254,250,197,171,119,103,235,237,246,155,175, 95, 45, 57, 62, 60,152,197, 24,162,196,194,141,169, 66, - 76, 57, 37,205, 12,140, 60,246, 35, 93,221, 71, 12,212,248,126, 61,206,102, 13,172, 20, 57,193, 1, 64, 93, 17, 25,152,204,161, -144, 23, 93, 33, 25,152, 89, 21,169,156,131, 57,149,138, 59,231,236,136, 46,194,102, 88, 79, 38, 34,108,230, 89, 19, 49,115, 16, -115,205, 89, 5,145,137,173,220,112,165,220, 27, 77, 68, 68, 56, 4, 73,102,166,185, 60, 36, 76,205,202, 22, 0,188,116,145,212, -220, 17, 68,196,212, 82, 74, 69,222,141,200, 64, 20,131, 4, 33,115, 52,223,103, 63,220,134,161, 44,125,124,211,237,182,219, 45, -131, 11, 19, 48,215, 76, 68,104, 14,106, 88, 30, 90,229, 47, 48,179, 0,248,144, 19, 34, 75, 16,130,130,149, 39, 24,115,110,110, -128, 66, 24, 57,150,254,148, 1, 49, 18,141,221, 20, 49, 53, 71, 23, 34, 33, 41,164,179,171,245,234,176, 14,135, 7,203,172, 86, - 20, 64, 35, 56,160,144,208, 75,252,159,152,136,178,121, 32, 68,132, 52, 62, 86, 65, 68,204,188, 31, 50,120,138, 28,135,156,248, -175,127,245, 87, 37, 39, 15,123,239,236,120,232,220, 11, 41,168, 92, 21,217, 11,210,182,244, 51,199, 55, 48, 51, 32, 2, 96,230, - 98,156,160, 50,115, 40,187, 20, 4, 51, 71, 68,161,176,217,110, 20,112, 82, 85,251, 20,211, 94, 90, 94, 34,131, 28, 96,159,171, -188, 95,112,239,139, 10,229,201, 50,142,211,247,190, 17, 36,166,241, 21, 10,203,129,111, 99,240,166,184,250,138, 89,209, 1, 8, -164, 52,161,220,220,242,104, 41,221,155, 8, 9,144, 71, 29, 70, 25,152, 48, 49,130, 39, 68,124,250,228,193,239,158, 63,151,170, - 9,196,177,109, 69, 66, 0,251,219,223,124,251,253, 47, 62,157,182,205,197,229, 69,213, 78,206,222,191,206,202,147,182, 97, 10, -247,168, 49, 4, 36,150,113, 28, 63, 26, 38,199, 94,215,254,241, 54,198, 25,209, 74,180,115, 60,217,203, 99,207, 76,247, 82,243, - 17,145,140,123, 67, 86,225,173,150,220, 99, 81, 71,142, 92,161, 2,243, 17, 70,166,189, 2, 4,220,209, 64,171,122, 6,165, 3, -194,162, 93, 66, 38, 22, 25, 97, 53,177, 2,135,171,243,243,219,235,219,118, 58,153, 76,166, 87,103,151,206, 68,204,170,105,216, -174,171, 16, 21,105, 58, 95,134,216,110,111, 46,185,142, 8, 20,155,249,229,155,175,218,182, 22,162,179,203,171,247,103,167,183, -171,245,116,118,240,189, 47,126,208,111, 87,117, 12,117, 8, 10,192,213,108,126,252,164,158, 31, 17, 49,152,215,147, 73, 61,153, -109,215,151,105,123, 87, 62,172,238, 14,154,250,126,171, 67,207, 33, 94, 93,126, 20, 66,142, 21, 34,130,234,205,106,245,155,215, -111,175,118,187,100, 94, 19, 50, 59, 1,182, 77, 27, 98, 0,240,193,212,145, 88, 74,114, 46, 50,128,101,155, 46, 14, 31, 28, 29, - 31, 28, 28,221,221, 93, 44, 38, 51, 33,138,177, 33,130,229,124, 41,177,218,117,221,135, 15,175, 86,215, 39,230,146, 82, 46,237, - 24,150,170,174,170,197,242,120, 80,173,170,138, 67, 3, 8,211,233,162,239,214,221,144,155,182, 13,213,172, 95,221,132, 80, 77, -167,203,118,210, 58,133, 52, 12,204,236,136, 46, 85, 55,116, 76,178,221,172, 39, 77,197, 85,197, 64,117, 21, 63,188,127,254,248, -209,179,108,112,123,119,113,117,119,147, 21,150,211,217, 98,126, 88,183,179,161,219, 90, 78, 82,213,230,212,182,109,100,122,251, -230,107, 12, 77, 12,181, 84, 13,161, 6,198, 97,183, 69,230,245,234,162,235,179,230, 62, 86,147, 97,232, 99,172, 16,252,224,209, -131,103,159,125,122,116,124, 24, 98,176,156,239,110,174, 78,223,191,126,255,230,245,243,215,175,191,121,249,242,229,187,247,111, - 78, 78,192,237, 31,254,226, 31,253,213, 95,254,235, 79, 30, 63,203, 78, 85,208, 79,151,252,233,113,220,172,174,126,251,247,191, -249,240,238, 3, 8,183,199, 7, 55, 55,183,191,254,237, 11, 22,190,188,188,141, 41, 29,181,237, 98, 82, 35, 11,130,179,112, 85, - 87,228, 48,168,186,131, 8, 7, 33, 40, 31, 85, 46,214, 57, 42, 27,166,113,215, 3,152,243,120,174, 19, 98,206,138, 52,222,199, - 83,206,149,176, 48,169,121,246,204,136, 76,148,205,212,157, 1,133,169, 79, 6,238, 34,165, 75, 47,109, 59, 41,252,188,114,122, -121, 89,200,237,103,227, 68,232,227,176,150, 20, 12,192,163,112, 54, 23,100, 0,136, 33,218, 61,224,171,100, 19,192, 16, 8, 0, -133,198, 40,118, 86, 64,100, 17, 97,230,200,196, 28, 0,201, 74,142, 19,165,192,112,128, 48, 48, 57,192,166,239,182, 93,151,116, - 80,213, 16, 66, 93,213,230,168, 8,129,136, 3, 23,208, 20, 33, 16, 81, 26, 6,119,148, 32, 64, 68,142, 34, 33,229, 92,238,207, -230,134,224, 69,174, 22, 3, 35, 10, 73, 96, 70, 46, 48, 3, 3, 53, 37, 26,169,130,194,104, 0,103, 55,183,145, 96,210, 78,193, -129,137, 2,139, 19, 49,161, 48, 15,106, 89,115, 96, 20,142,197,117,138, 69,130,231,206,128, 8,144,220, 83, 30,250,156, 8,221, - 28,220, 53,105,230,191,249, 87,191,162, 50,204, 26,157,121,190,175,166, 2, 48,151,141, 51, 98, 1, 3,112,217, 1, 20,211,105, - 65,163,112,161,157, 48,162, 59,151,171, 61,221, 27,174, 75,210, 18,137,208, 83,119,181,238,142, 22, 83, 27, 39,232, 14,230,200, -196, 44,200, 12,232,180,255,255,142,226, 58,218,179,112, 9,205,246,146,163,194,194, 33, 6, 66, 27,239,236,232, 58, 0, 18,161, -184,233, 94,165, 84,110,196, 94, 70, 52, 82, 64,190,238,229, 96, 47, 98, 87,162,241,112,164,125,154,144,101, 52, 92,147,176,101, - 99,137,211, 70,158,191,254,216,212,117, 83, 55, 28,226,164,174,111,175,111,191,122,254,234,151,127,246, 99, 51,121,242,233,119, -187,237,205,241,227,167, 58,108,205, 13, 24, 17,156,165, 38,145,251, 63, 58, 34,186,170,221,227, 4,202,202,185,184, 80,136,156, - 24,247, 23,120, 26,137,237, 72, 33,236, 93, 89, 99, 22, 22, 70,162,205,216,101, 45, 57, 1, 64, 96,145, 82,109,130,209,215, 72, - 37,168, 58, 82,111, 0, 0, 40,112, 32, 98, 87,115,211, 17,234,108, 6,128, 18, 35,228, 62,196,234,250,234,246,246,250,182,137, -248,224,233,179,243,147,143,195,110, 11, 76,253,110, 35,129, 65,106, 68, 36, 75,253,208, 27, 56,185, 75,219,230,126,115,250,241, -155,195,249,220, 29,222,158,157,157, 94, 92,238,118,187,131,227,199, 63,248,206,247, 97,232, 8,147, 57, 77,150,199, 49, 74,179, - 56, 64, 3, 32,170,154,217,193,131,135,221,102,123,125,113,190, 91, 93,214,211, 35, 51, 37,194,245,245,135,213,221, 77,172,218, -163,227,121, 83, 77,135,212,119,125, 47, 18,250,148,111, 55,219, 23,151, 87, 77,140,235,174, 91,247,195,195,249,124, 54,109,231, -179,233,122,189, 97, 97, 50, 99,196,200, 97,218, 76,102,237,100,215,109,182,235,179,227,135, 79, 34, 35, 64, 2, 8,192,225,250, -242, 68, 1, 84,109, 57,155, 76,102,203,205,106,213,101, 99,176,186,153, 32, 16,152, 18, 11,104,119,112,116,204,168,169,207,196, -177,106,234,180, 93,153, 25, 18, 87,205,124,189,221,138,219,208,173,167,179,165,235,208,119,219,166,158, 24, 0,133, 38, 15,131, -171, 34, 98,140, 85,113,160,107, 78,139,249,236,209,227, 39, 93,242,205,110,123,122,249,209,220, 31, 30, 62,248,236,217,119,235, - 24, 83,191, 33, 22, 98,174,234, 86,200,242,176,155,207, 15,205,211,213,233,199,233,242, 1, 11, 9,203,100, 50, 81,240,122,182, - 68, 14,169,223, 52,211, 67,145,216, 13, 3, 90, 94, 44,167, 95,124,249,195, 39, 79, 63,105, 39, 45, 16,174,175,111,206, 79,222, -190,127,243,234,213,155, 55,223,190,121,245,226,245,155,247,167,167, 87, 55,119,159,127,250,249, 95,252,242,159,253,201,207,255, -220, 52, 93,126,248,246,233, 81,251,189, 71,211,138,236,253,235,215,175,190,121, 30, 39,205, 39,223,253,228,221,249,229, 98, 49, -173, 23,211,183,239, 79, 96,179, 91,214, 97,218, 54,117,140, 18,197,193,170, 88,199,192, 41,185,170,145,140,216,118,131, 34,255, - 36, 65, 38, 44,145,118, 36, 42,119,122, 50, 28, 63,168,128,144, 7, 3, 66, 22, 86,115, 70,170,107,113,245,148, 18, 34, 6, 97, - 0, 27,204,136,152, 1, 72, 72,213,202, 75,108, 74,153, 2,183,117,139, 76,204, 92,133, 90,205,134,161, 7, 48, 66, 82,211, 18, -193,184, 71,216, 6,230,192,130,196, 41,171, 35, 70, 33, 38, 26,114,169, 19, 58, 32, 48,146, 58, 26, 16, 19, 11,145,238,187,129, - 33, 68, 22,138,228, 34, 1, 88, 0, 81,152, 17,209, 0,179,246, 0,206, 68, 8,100,197, 97,175,182,235,187,108,218,132,170,138, -181, 19, 17, 83,164,178,210,132,210, 19,117,247,193,156, 1, 88, 68,193,155, 42, 58,128, 90, 46, 50,234, 98, 84,102, 32, 53, 71, - 43,148, 3,231,146,209,116, 55, 4, 38,102,194,170,138,229,111,187,170,157,221,172, 64,243,225,114, 25, 42,145, 32, 37,235, 29, -152, 17, 73,221, 17, 85,136, 41,132, 49,134, 87, 8,132, 56,162,150,179,186,217,136,184, 76, 57, 89, 82, 4,207,170,252,215,255, -226,175,240,126,147, 58,254,168,246,179, 10, 47, 66, 40, 35, 68,183, 34, 28,221,223, 66,177,140,154,138,224,169, 96, 23,198, 41, -119,121, 27, 64, 42,207,121, 64,112, 55,171, 99,184,188, 91, 31, 30, 44,193,108,132, 30,151,121,178, 4, 0,195,189,203,124,124, - 73, 26,175,245,123,248,121,129,247, 96, 49,132, 56, 49,141,192, 96,146, 98, 80, 50, 55, 0,115,244,145,248,179,231, 35,224,200, - 87,128,255,252,120,101, 34,102,218,203, 67, 70,217,202,152, 31,247,123, 40, 36, 32,226, 98, 49,127,251,246,221,102,151,234,166, -153,205, 22, 36, 60,109,171,111, 95,190,221,116,221, 31,124,249,244,234,118,117,248,224,225,203,223,253,221,237,237, 93, 12, 33, - 86, 77, 85, 85, 99, 99, 96, 28,109,241,254,203, 24,185,239,123,220,111, 9,174,250,189,129,182, 76, 97,246, 24, 6, 7, 40,143, - 52, 40, 67,202,189, 55,145, 0,156,144,178,233,248,164,114,119,213,113,196, 4, 5, 71, 44, 80, 54,199,128,136,228,142,205,108, -129, 4, 28, 24,172,180, 81,106, 98,166, 40,224,102,106, 84,197,179,247,167, 55, 23,167,143, 63,255,242,240,104,241,246,197, 55, -102,142, 24,136, 2, 50,166,237,157,176,116,125,202,238,147,233,212,128, 67, 85,107, 63,156,159,126,253,224,224,168, 79,195,155, -147, 15, 23,151,183,219,190,251,206,103,223,123,116,120, 4,158, 98, 61, 5,183,170,105,219,233,220, 12, 8,105,189,186,155,212, - 49,198,184,190, 91, 27, 65, 85,207,171,186,234,215,183, 64, 2,110,171,187,107,215,158, 45,137,136,230, 30, 12, 84,251, 58,214, -231, 55,183, 31,111,110, 99, 8, 67, 26, 86,187,206, 28, 22, 77, 67,232,204,236,106,102,185, 64, 89, 99,172,146, 14, 72, 50,157, - 46, 93, 7,115,234,115,182, 97, 75, 14,219,108, 57,231,110,123, 55,157, 29,116,219,187,203,147,215,199,143, 62, 25, 20,118,219, -205,144,135,221,234, 22, 67,157,182,215,211, 73, 43, 18,171,102,154,134,222,115,202, 57, 97, 8,145,171,224, 3,144,232,230,182, -235,215, 77,156, 24, 64, 21, 42,205, 3,120,202,105, 48,184, 71,168,142,233,216,190,235,143,143,142, 85,211,201,233,199,179,203, -243, 39, 15, 63,249,242,241, 35, 83, 36,130,197,242,176,236, 75,178, 38,137,177,235,187, 40,113,117,117,162,142, 28,171,186, 93, - 28, 45,143,154,201,140, 37, 84,245,132, 8,135,221,102, 58, 63,220,237,182, 49,192, 39, 79,159, 62,253,226,243,167,159,127,177, - 88, 46,136,176,239,118, 55,103,167, 31, 63,190,124,245,234,197,139, 55,111,158,191,125,251,238,227,201,233,229,101,211, 46,126, -254,199, 63,255,229, 47,255,194,186,205,118,115, 61,107,195,247,159, 46, 63, 57,170,110, 47,206, 95, 60,255,230,221,219,247,135, -143, 30,200,172,122,241,246,228,250,250,166, 75,233,255,253,143, 95,181,128,199,139,121,185, 56,147,176,136, 4, 9,238,150, 28, -152, 40,198, 88,208, 32,128,140, 68, 18, 2, 99,240,241, 98, 49,210,172,156, 72, 93,105, 60, 8,208,212, 75, 25,221,178, 85,194, - 33, 80,202,170,230, 69,135,170, 6,227,210,110, 63, 61,117, 0,205,153,144,129, 32,105, 70,192,226, 80, 27, 73,217,238,130,148, - 53, 83,201, 12, 2, 32, 64,118,207,170,129,217,202, 59, 43, 67, 8,146,239,239, 79, 8, 68, 20,152,145,136,139,183, 20, 81, 77, -109, 20, 42, 1, 19,212, 85, 85,104,145, 33, 10,222,147,174,144, 0, 48,136,236, 99,131,132, 68,234,168,154, 43, 98, 38,169, 98, - 85, 87, 53, 34, 38, 29,157, 10,149,136,150,219,228,190, 12, 90, 7, 41, 1,237, 50,240, 41, 55,223,177,186,104,102, 37, 75, 1, - 44, 68,169,196,138, 0,138,254, 21,247,133,210,219, 46,245,155,221,241,114, 30, 37, 34,115,217,101, 10, 23,170, 64, 65,251,114, - 54, 37,116, 33, 6,135,178,113, 69,148,108, 57,171,129, 41,130, 7,102, 7,247,236,217, 70,244,174, 20,172,126,153,101, 56,148, - 50, 17, 22,138, 11, 32,154,106, 73,168,143, 50,220,226, 38, 33,134,130, 24,199, 82,252, 45,214,108, 48, 4,244,209,190,173,217, - 36,148,107, 39, 56,184, 48, 5,240, 97,200, 65,112,108,245,208,152,122,220,251,181,131, 83, 46, 49, 72, 98, 34,100,240, 12,128, - 72,209, 45,151, 29, 62,252, 30, 74,227,128, 72,158,198,111,175,129,129,209,216, 85,200,128,251,248,225,200,231, 2,118, 4, 34, - 87, 32, 30,171,183, 72,227,230,220, 29, 56,160,235,200,242, 45,128,175,125,250, 7,255,228, 39, 63,248, 95,255,205,223,206,166, -147,217,124, 81, 85,213,131, 7,143,126,242,131,239,254,251,255,248,187,239,125,254,201, 98, 62,149,120,180, 60, 56,110,166, 7, - 96,125,183, 93,199, 16,144, 1, 89, 10, 31,127,100, 31,239,255, 65, 32, 71, 67,211,114,252,155, 27, 1, 56,146,103,245,189, 41, - 11, 65,129,198,225,220,248, 14, 68,163, 53,214,209, 16, 11, 78,136, 16,201, 77,157,120,124, 38,151, 14, 24, 21,111,148,140,111, - 87, 68,238,136, 28, 16,140, 81, 48,208,158,182, 3,160, 35, 28,199, 1,250,126,144,170, 70,203,150,147, 84,211,108,131, 75, 64, - 55,161,137,199,206, 0, 84,135,102, 50, 75, 67,230,186,133,156,239,110,207, 8,200,193,134,174,239,118,131,186, 1,203,241,193, -131, 24, 34,104,101,121, 72, 57, 69, 96,215, 60,236, 86,210,204,183,219, 93,253,217, 60,155,165,220,161, 3,115,180,220, 73,172, -183,235, 85,183,221, 78, 39,243,213,237, 37, 66,149, 82, 87,133, 26,155, 44, 60,185,219,110, 46,214,171, 24, 99,215,237,234, 88, - 85, 49,158,175,183,191,121,255,225, 39,242,217, 52,106, 51,169, 25,133,136,173,108, 59, 28,145, 41, 84, 19,239, 87, 9, 58, 71, - 89,111,187,192,146,179,166,126,215,111,174,211,110,215,167,158, 98,187,187, 62, 23,169,234,217,252,118,117, 59,244, 55,146,166, -152,181,219,109,155,201, 18,192, 2,161,185,138,196,233,100,142,238,105,219, 53,117,211,175,184,170,231, 28,216,147,154,169, 83, - 76, 93, 63, 12,155,102,113,228,160, 68, 21, 48,231, 60,244,119, 87, 18,226,219,147,183, 8, 72, 34,143, 14,142,107,241,215, 47, -127, 23, 15, 62,205,187,174,173, 99,223,247, 57,231,205,237,105,221,206,186,205,102,246,228,139,156, 82, 2,158, 47, 30,144,224, -102,183,157, 49,162,199,174,187, 11,213,108, 58,155,109,118,187,249,114,241,228,147, 39,135,199,143,155,105, 91,213, 85,206,233, -238,242,242,246,234,236,227,199, 15, 31,206, 78,223,159,156,158, 95, 93, 95, 92, 93, 7,145,159,254,232, 31,252,225, 15,255,240, -248,193,163, 97,232,171, 42,252,228, 59, 15,231,147,184,219,172,126,247,235,111,207, 79,207,143,143, 15,226,114,126,114,117,117, -246,187, 27,142,116,113,118,181,186,188,125, 60,153,182, 85, 44, 54,212, 32, 17,129, 96, 20,228, 65, 0, 42,121,152, 97, 72,132, - 16,152,178,187,185, 17,114,182, 68,232,112,207,219,118,173, 88,134,172,163,141,205,140,160,160,100,196, 0,250, 93, 14,145, 69, - 0, 28, 82,214,209,226,137,134,232, 76,148,212, 8,177,137, 1,152,187, 93, 26, 63,255,134,125,215, 73, 16, 50, 48,243, 97, 72, - 4, 0, 76, 14,150,179,138,112,195, 49, 83,206,232, 8, 32,196, 14,168,238,224, 94,104,169,165, 53, 57,152, 11,177, 16, 13,160, - 57, 89, 16,102, 34, 7, 8, 76, 37,252,147,213,154,186,174,154, 70,179,101, 48, 80,141, 78, 61, 0, 58, 16,129,129, 27, 1, 58, - 78,234, 32,132, 41,107, 29, 67, 12,161, 12,165,195,168,200,246, 62, 37, 34, 2,183,146, 73, 65,199,156,141, 3,147,131, 25, 18, -129,250,152,136, 83,119, 17, 26, 15, 75, 70, 43, 3, 9, 5, 4, 53,231,128,104,106, 34, 97, 51,164,245,106,125,180,156, 55, 77, - 3,192,138, 70, 96, 40, 84,232, 47, 99, 83, 19,176, 14, 17, 16, 85,205, 65, 27,174, 18,104,202,169,140,199,220, 93, 53,185,187, -154, 3, 58, 19, 6,129, 65,139,235,138, 70,115, 19,162,152, 91,137, 96, 59,104, 33, 68,152,161,151, 19,115,159,113, 47,135, 35, - 90, 49, 37, 57, 2, 1,255,254, 57,171,106, 5,126,175,230, 2,160, 37,211, 45, 82, 7,223,245, 93,144,118,212,162,250,239, 57, -136, 48,218, 48,200,192,205,148,137, 75,253,117,204,252, 23, 11, 17, 8,130,238, 69,166, 37, 23,227,132,232, 90, 86, 41,224,186, - 15,114, 34, 48,129,105,233, 50, 16, 21,177, 8,128, 7,100, 97,203, 90,176,100,238, 10,194,160, 5, 79,227, 54, 66,119, 96, 12, -174,104, 78,217, 31, 63,124,242,229,103,167,175,223,157, 78,231,203,199, 79, 62, 9, 77,252,244,233, 39,215, 55,119,255,230,255, -254,251,127,253, 79,255,209,201,235,231,103, 39, 31,230,203,254,217,151, 95,158,188,125, 61, 12,179,170,145,194,243, 28,195, 67, - 8,238, 58,230,247,115, 66, 66, 96,178, 62,151, 1,184,153,187,237,223, 43, 75,186, 31,145, 73,124,223,244, 27, 17, 57, 12,224, - 96,106,136, 78, 92, 84,175,163,111, 27,220, 29, 84, 36,142, 73,248,130,154, 4, 29,223, 97,176,144,158,193,164,252, 29, 96, 24, -193,153,232, 41,133,233,212,250,164, 41,143, 16,110,145,156, 6,205,157,107,118, 51,138,220, 13,125,182,220,180, 11, 70,204, 57, -233,221,201,224,113,183, 89,205,154,214,145, 55, 67, 63,148,196,130,250,131,137,208, 40,116,113,138,109, 51, 95, 18, 83, 69,144, -186,221,195,163,229,242,112,121,113,122,182,186,185,154,204,231,185,219,176, 52,204,113,210, 78,230,179,233,199, 87, 95, 1,241, -228,240,225,110,117,177,238,110, 69,164,101,188,217,172,110,182, 91, 38,154, 78,166,151, 55,215, 77, 93,153,250,215,239, 62, 48, -243,207,190,243,172, 69, 97, 52, 53,159, 52, 77,221, 84,144,116,151, 50, 0, 12,102,145,132, 98, 12, 18,178,165, 88, 69,178, 76, -177, 30, 82,183,222,238,152,105,219,117,135, 7, 19, 14,146,163, 66,208,139,128, 0, 0, 32, 0, 73, 68, 65, 84, 92,245,185, 78, - 59, 52, 5,131,221,234,186,158,204,251,212, 3,113, 45,188,189, 61, 3,105, 61, 27,162,186,233,124,118,148,114, 55,244,155,172, - 30, 99, 59,157,207,132,142,145,195,144,134,172, 3,246,202,129, 87,185, 91,223,222, 60,125,242,236,225,193,193,186, 31,220, 13, -176,218, 14,137, 85,251,148,114,218,101,243, 71, 79, 62,245,212,113,172,234,102, 89,199,138, 14, 31,244,219, 91,215, 33,155, 24, -122,186,190,146, 80,117,171,179,201,193, 19,239, 55,159,124,247, 7,207,190,252, 97,213, 84, 49, 86,154,211,234,246,250,230,242, -236,226,252,228,253,135, 15,111,222,125, 60,191,185,190,190,185,219,244,221,231, 79, 63,255,241, 23, 95,124,247,187, 63, 86,221, -154,237, 30, 45,103,159, 29, 31, 50,218,221,237,213, 55, 95,253,166,157, 77,143,158, 62,250,240,238,221,193,147,199,121, 5, 87, -215,215,179,170,122, 52,109,166, 77,163, 6,206, 12,128,149,136, 48,247,169, 31, 15,119,230,100, 57, 15,185,112,238,136, 56, 67, -105,206, 91,246, 44,128,238,158,203, 43, 30,146,170,171,167,242,198,108,217,132, 9,204,221,113, 80, 19,182,182,109, 82, 78, 62, - 46, 97,109,252, 43,136, 8, 64, 93,223, 75, 96,119, 87, 64,200, 57,196,178, 85,130, 97,216, 33,196,174,219,130,131,170,194, 24, -224, 35, 54,144,192, 10,158, 93, 17,209,221,132, 37,155,103,115, 70,171, 99, 76,163, 21,154,220, 60, 34,103, 75, 69, 53, 76, 97, - 44,147, 74,140,253,144,192,148,153,171, 42,150, 70,120, 61,109, 25,100,215,237,134,161, 83,179,200, 1,203,229, 8, 77,205,213, -189,169,171, 9,177,187, 5, 10, 10, 70,224,204,188, 27, 58, 33, 10, 72,125,210, 42,112, 54,119,247,209,165,138,100,228, 90, 98, -245, 76, 57,187, 42, 8,221, 95, 77, 81, 29, 3, 67,100, 73,140, 0,174, 57,169, 58, 51,239, 44, 95,173,110,231,109, 61,155, 47, - 52,247,128, 74,136,238,164,201, 42,102, 4, 80,128,128,132, 76,106,106,150, 9,137, 36,118, 57,185, 25, 33, 76, 42,222,118, 62, -120, 2, 70,102, 73, 58,140, 67, 21, 48, 85,227,191,249,171,127, 10,132, 88, 46,131, 14, 37,202, 2, 4,123, 52,185,187, 57,149, -152, 34,151,179,143,137,246, 95,114, 81, 45, 49,114, 1,203,140,171,130,145,182, 76, 4, 86, 82,234,232,196, 12,121, 88,247, 54, -107, 27,216,155,186, 73,246, 64,131,177,192,227, 69,144, 13, 99,141,184,128,182,246, 90, 21, 51, 44,221, 4,252, 61,101,126, 4, - 14,140,138,110, 40,239,239,132, 88, 94, 68,202,108,100,252,101,101,138, 65,227,107, 6, 16, 56, 20, 34,205, 61,109, 14, 17, 65, -132,238, 79,121,119, 52,240,167, 15,151,223,190,122,147,210, 48,157,206, 38,147, 69, 51,105,217,244,197,155,247,243, 89,123,124, -184,252,228, 59, 63,172, 2, 13,131,137, 64, 30,114,140,209, 53,151, 37,193,248,240,227,145,159, 51,102,120, 96,255, 36,115,221, -175,153,201, 85, 71,114, 77, 16, 55, 71, 36, 14, 97,220,133, 48, 33, 50, 20, 40, 13,141,192, 5, 4, 64,164, 82,121,229,241, 22, -127,207,141,252,125,170, 65, 51,214, 85, 4,150,210, 8,227, 58,122,182,130,191, 65, 0, 10,162,154,175, 46,111,187, 33, 79, 39, -211,131, 71, 71,239, 94,191, 35,105, 76, 21, 65, 81,234,213,245, 41,113,104,218,182,219,221, 73,140,110,166, 78,155,187,211, 73, - 35,194,116,126,121,125,122,113,121,189,190,107, 38,179,127,252, 95,254,147,213,234, 70,152,221,210,226,248, 33, 14, 29,114, 19, - 39,179,201,124, 81,214,179,183,151,103, 0, 52, 93, 30, 64,218,173,238,238,186,110,235,121, 7,110,196, 33,245, 93,197,232, 57, -197, 24,251,126,183,217,236,158,127, 56,253,230,253, 73, 54,173, 66, 21,165,206, 90, 4,132,252,225,234, 10, 28,166,109,235,234, -211, 73,219,165,132, 37, 69,132,156,211,182,110,230,234,158,114, 74,221,106,189,237,189, 84,254, 98,181,217,174,204, 93, 77,147, - 51, 35,130,246,185, 91,109, 7,173,219, 89,191,187,227,170,101,242, 40, 81,251, 13,114, 85,181, 97, 24,122, 55, 4, 75,132,184, -219,221,177,136,187,182,237, 98,125,115, 90,215,211,105, 59, 97, 68, 17, 4, 55, 85,184,184, 58, 89,173,239,212,168,110,231, 13, -179, 73,180,212, 55,205, 68,152,155,197, 3, 29, 54,150, 19, 73,152,206,150,110,249,238,246,250,193,163,167,199, 15,159, 76,102, - 83,194, 0,150,186,212, 81,168, 43,225,205,221,117, 53, 91, 54,179,229,226,224,224, 15,254,228, 23,159,126,239,251,237,108, 74, -196,219,205,221,229,213,201,201,219, 55,175, 94,189,124,249,230,245,243,183, 31,222,159,157,223,173,215,243,233,226,151,191,248, -243,191,252,239,254,251,118,118, 52, 88,255,232,225,195,207,143,234,103,199,237,230,238,250,237,203, 23,223,124,253,237,147,207, - 62,141,203,217,191,251,219,191,127,240,224,248,242,230,246, 55,191,254,246, 97,219, 28,207, 39,128, 92, 0,233, 85,164,166,170, - 9, 41,171, 39,245,146, 64, 40,141,121,205, 9,108,140, 23, 19, 1, 3,101,205,229,205, 61,153, 17,161, 48, 35,160,170, 5, 97, - 34, 30,205,206,140,165,159,195,204, 49,114,206,154,109,196,148, 11,163, 90,185,145, 1, 5,140, 65, 76, 97,124,153, 46,200, 71, - 26, 89, 52,238,168, 57,131, 89, 54, 13,136,204,236, 0, 81,162,237, 9, 35,184, 7, 88,149, 5, 85,225,240,148,200,130,136,140, - 51, 37, 0,117,199, 66, 64, 33, 22, 33, 53,199,189,140, 65,205, 99, 8,109, 59,169,155,118,159, 83, 48,116, 48,183, 40, 34,145, -213,204, 84, 99, 8, 72,100, 62, 10,252, 16, 33,169,166,108,130,132,196, 57,123, 93, 9,145,152,121,206,206,130, 76,161, 44,117, -131, 80,206, 90, 12, 36, 65, 8,144,205,140, 8, 73, 40, 74, 68, 4,102, 22,137, 52,190, 97, 27, 0,174,187, 4, 41, 47,231,179, -200, 20,235, 10,129,213, 85,208, 89,216, 44, 51,146, 16,141,204, 64, 68, 33,206,238, 57,165,148,115,133,132, 20,179,102, 24, 89, -177,168,106, 66,232, 6, 89,179, 48,187,155, 96, 97,204, 91, 17, 28, 26, 24, 1, 0, 49, 27, 26,186,187, 58, 17,154, 58,162,129, -149,187,182,123,118, 39,196,194, 9, 0,116, 7, 45,110,111, 55, 87, 47,143, 10,194,226, 59, 29, 25,186, 57,217,108, 62,127,255, -234,132, 30, 44,161,228,105,145,144,196,192, 93,129, 4,203, 44, 26,198,217,213, 56, 92, 1, 47,176, 45,190,215, 24,141,139,203, -113,119,234,196,226,234, 8,110,234, 44,156,135, 60, 50,184, 28, 12,139,113,213, 0, 16, 5,193,246,222, 65, 32,115, 43, 41,121, -188, 71,240,222, 27, 51, 20, 74,112,168,228,154, 84,181,138,213,159,254,236,123,255,219,255,249,235,249,116,214, 76, 91,161,112, -252,232,241,179, 39,151,255,199,191,255, 79,223,253,252,211,205,213,201,251, 15,239, 9,163, 68,110,219, 73, 93,215, 18, 35,161, -170, 1,163,192,168,139, 42,182,151, 66,169,115, 34,214,212, 3, 17, 20, 66,129,106,249,246,162,144,233,232,176, 85,205, 56, 86, -125,141,164,180, 75, 96,156,130,129,187,105,201,115, 1,154, 59,149,242,153,155, 35,149,183, 31, 41,105,168, 24, 3,114, 64, 38, - 10,194, 68,150,114,209,160,163,187,199, 74,147,186, 67,238,182, 67,191, 75,121, 32, 3, 2,236,250, 77,136,147,148,125,123,115, - 86,183,139,102,118, 52,116, 27, 68,214,190,231,106,106,253, 46,167, 97,114, 48,203, 41,119,253, 48,100, 27,186,244,228,241, 3, -138,109,104,102,152,186, 56, 59,172,218,101,191,237,168,170,208,108,216,108,218,217,209,250,238, 90, 83,215, 46, 22, 66,212, 35, - 94, 95,157, 46, 14, 30,109,239,174,167,243, 67, 17, 57, 56, 92,244,119, 55, 44, 65,181, 7,105,179,247, 23,171,213,217,205, 77, -219, 86,102, 62,109,218,202,227,174, 31,102, 77,219, 84,213,139,211,139, 42, 86, 63,250,236, 9, 51,207,234,233,114, 57,235,186, -225,230,230,188, 75,105, 24,122, 34, 70,174, 82,159,114, 26, 80, 98,206,195,108,190,128, 28, 52, 89, 74,125,234,214,119, 68, 71, -139,121,172, 39,104, 87,102,105,182, 56,170,163,120,182, 97,232,118,119, 23, 92, 15,136, 11, 38, 26,186, 27, 66,195,208,206,166, - 75,116, 50,244, 73, 83,221,198, 42, 15,119,170, 65, 53,139,230,110,183,187, 94,111,152,165, 14, 50,155, 63,184, 91, 93,223,110, - 86,134, 64,154,114, 26,220,109,182,120,152,211,110,121,248,232,246,246,114,189,186,238,251, 65,194,180, 27,244,228,171,255,103, - 50, 61, 88, 30, 62, 48,183,182,106,154,118,126,115,119, 61, 63, 56,254,209, 31,253,164,157, 31, 30, 30, 31, 87,149,228,156,251, -190, 91, 93, 95, 95,156,189,123,251,238,205,201,217,249,201,217,213,217,213,229,245,221,106,218, 76,126,246, 7,127,252, 71, 63, -254,163,186,153,190,124,249,119,237,244,232, 7, 79, 31, 60,125, 52, 77,221,221, 55, 95,255,250,228,253,201,209,147,199,192,124, -122,113,249,226,221,135, 60,164,175,190,250, 70,204,159, 46,103,117, 8,201, 64,152, 17,169, 10, 76, 84,240, 44, 22, 98,108,155, - 58, 13,189,170,130, 89,233,203, 88, 89,126, 66, 25, 5,148,172,130, 23,149, 0, 33,245, 41, 69, 14,200, 52,104, 14, 36, 34,140, -238,230,206,140, 76, 56, 36, 75, 29, 56, 19, 0,162, 25, 16, 21,145,230,190,236, 8,125,202,132, 24, 98, 25, 49,187, 48, 7, 9, -217,178,153,170,230,162,182, 22,100,226, 17, 90,158,221,145, 75,227, 27,205,202,219,171, 17,137,136,244,125, 18, 66, 36, 84,211, -172,101, 82,237, 5,249, 72, 35, 37, 11, 84, 29,185, 8,244,220, 92,131, 8, 33,246, 93, 55,164, 76, 72,217,243,208,247,224, 78, -232,131,102,200, 8, 8, 18, 99,105, 96,133, 24, 80, 61,129,230,148,128, 32,148,190, 9,141,105,115,119, 43,211,126, 7, 83, 27, - 0, 28, 28,147,105,249, 69,131,165, 98,237, 99, 17,112,103, 14,132, 96,206,224, 70,104, 64,228,110,140,124,215, 15,219,245,230, -209,225,124,210, 54,170, 86,254, 68,117,136, 57,103,116, 39, 14,238,174,166, 76, 65, 4, 93, 45,229,156,179, 18,123,100,114, 33, - 43, 7, 5, 22, 25,108, 16,114, 51, 45,236, 52, 34,128, 1,132, 17,180,204,100,144, 0, 24,198,212,184,141, 64,117,195,123,163, -249, 72, 13,216, 15, 50, 92,141, 36,128, 25, 75, 89, 82,131, 59, 48,161,187,141,123, 78,252,189, 24, 29, 92, 73,234, 38, 98,206, -142,224,229, 5,192,212, 10, 0,216, 11, 91,216,141,202,137,168, 99,135,130,192,243, 8, 43,222,235,213,105, 31,153,119,115, 47, -105, 66, 36, 36,169, 10,172,107, 0, 35, 3,115, 0,166,178,142, 69, 83, 79,128,110,121, 76, 3, 16,168, 59,237, 17,105,165, 64, - 33,132, 99, 96,126, 4,234, 0,122, 80, 55, 6, 28, 82,254,252,201,167,143,143,222,191,120,243,110,121,116,112,112,248,100,113, -120,244,253, 31,124,239,236,226,234,127,254, 95,254,237,191,250,111,127,254,233,103,223,173,106,185,190, 89, 63,125,246,236,250, -244,148,152,156, 8, 24,116, 84, 5,224,158, 51,195, 68, 98,101,151, 43, 1, 28,135,180, 99, 64,160, 64,129, 77, 13,205,145,193, - 82,146, 80,141, 0, 36, 68, 66, 44,100,158,251,244,234,125,231,110,116,137, 35,104,202, 40, 76, 36,251, 98, 7, 33,147, 13, 25, - 34, 99, 96,100,209,190,119,166,125,243, 2,185,146,180,235, 1,145, 67,133, 68,136, 81, 68,192,149, 72, 16,197, 53,107,182, 12, -113, 50,171,119,119,167,195, 96,177,169,192,128,153, 55,171, 43, 25,159,156,150,210,224, 4, 89,117,214,212,253,118, 35, 28,116, - 24,170,229, 19,119, 55, 52,221, 93, 3,122,159,105,105, 25,184,230, 56,113,211,221,230,206,186,141,232,182,173,167, 94, 9,153, - 26, 36,208,184, 53,239,251,126,219,247,174,118,183,190,185, 94,109,213,245,110,179, 11, 18, 66,144, 71,143, 30,217,135,147,171, -171,179,131,217, 28,145,254,238,213,171, 24,165,105, 38, 19, 35,242,165,132, 48, 40, 84,245,146, 64,123, 85, 1, 75,128,109, 51, - 49,247,108,182,233,118,100, 90,213, 45,185, 33, 2,161,119,253,110,209, 54,211,195,199,125,175,253,250,210,114, 94,206, 38, 67, - 31,182,134,112,123, 38,213,212,188, 35,169, 45,173,174,111, 94,198,246,160,169, 39,205,100, 78,228,211,201,228,230,230,170, 31, -250, 16,229,122,221,221,173, 55, 77,213, 78,154,137,166, 45,154, 91, 78,234, 74, 48,165,170,118, 87,142,209, 44,167,100,253,118, -117,125,246,254,240,248,243,229,193,113, 73, 23,214,237,228,102,181,238,178, 79,231,243,221,135,231,186,187,251,201,159,253,215, -207,190,255,227, 80, 73, 16, 1,135, 52,244,235,213,205,245,233,135,183,111, 94,189,253,240,241,227,217,249,217,229,213,213,106, -213,117,253,247,190,248,226,127,248, 23,255,211,197,199,183,125,191,147,118,249,228,193,147, 31,125,126, 52,109,240,226,252,205, -155,111, 95, 78,151, 11,105,155,179,203,179, 39, 95, 60,186,222,236, 78, 79, 47, 23,117, 56,168, 98, 29, 43, 66, 40,165,193,192, - 92, 69,201,102,217,157, 8,235,186, 42,167, 79, 95, 66,236,197,178, 73, 88,110, 18,230,198, 20,220,115,185,220,171,154, 16, 15, -154, 43, 9,201,114,133, 21, 98, 64,180,126, 72,217,124, 86, 87,253,208, 51, 99, 36,114,115, 83, 99, 71, 22,234,146, 2,227,164, -170, 77,181,207, 9, 16,145, 69,246,195,130, 58,136, 35, 15,253, 64, 76,234, 46, 76,238,230,232,117, 19, 7,117,112, 11,132, 74, - 24, 72,178, 90,118, 64,242, 72, 85,136, 65,115, 6,112,114, 20,146, 62,167,148,141, 9, 8, 37, 91, 34,112, 9, 81, 53, 17,178, - 48,198, 80, 37, 85,115, 16, 34,145,232,142, 93,223, 71,213, 16,121,219, 23, 98, 78, 86,183, 97, 72,194,194, 33,224,136, 66, 1, - 66, 32,211,205, 48, 8, 49, 35, 59, 24, 18, 50,177,101, 15,145, 25,209,144,220,220, 5,192, 72,199,188,181, 23,172, 14,131,199, - 32,136,129,220,202,236, 55, 18, 15,230,110, 9,203, 23, 73, 18, 67,236,212,110, 47,175,159, 28,206,167,147, 5,170,151, 52,167, -186,147,107,140,156,179, 41,128,153, 87,194, 56,194,241,157, 80,155, 90,118,253, 48,244, 67,219, 86, 65, 88, 51, 1, 6,243,174, - 12,217, 42,145,242, 72,203,217, 1,153,255,250, 95,252, 85,129, 18,220,199, 34,247,175,251,232, 54,140, 42, 59,192, 61,146,191, - 92,189,209,221,153,208,204, 28, 92,152,169,244, 63, 97,236,153,238,201, 94, 99, 43,108,188, 38, 51,166,221, 26,171, 54,148, 71, -122,233,113, 21, 40, 17,148,197, 67, 1, 80,142, 24, 73, 3, 5, 64,115,231, 81, 65,228,224, 99,181,149, 92,221, 21,192, 16,101, - 28,224, 23,110, 3,142,104, 93,223,227,140, 75,108, 28, 76, 29,204, 61,153,230,130,209,216,255,102, 99, 96, 6,121,156,154,141, -227, 31, 2, 70, 46,133, 37, 0, 32,161,199,199,179, 95,255,238,133, 57, 28, 30, 29,198, 80,185, 89, 19,229,239,126,243, 77, 59, -109, 14,151,211,217,241,147,155,211,247,103, 39, 31,251,110,215, 78,102,197, 39,201,132, 44,161,244,185, 75,172,197, 52,131, 91, -193,253,154,149,144,108,145, 52,101, 55, 71,102, 4,160, 66,133,116, 7, 30,191,207,197,102,139, 72,110,174, 41, 49, 33,241, 56, - 76, 47,175, 32,154, 51,184,150, 47,189,164, 32,202,103,180,110, 23,177,106, 76,149, 24,137, 3,197, 96, 89,209,204,189, 4, 73, -145, 88, 94,252,230,171,190,239,151,243,201,242,201,227,183, 47,158, 35,197,156, 54, 93, 63, 8,123,211,206,182,155, 77, 59, 93, - 16, 49, 5,209,156,114,206, 54, 92,205,167,179,237,110,119,117,115,115,122,113,121,187,217,254,193,151, 63,126,244,232, 19,212, -206,242, 0, 28,134,126, 93, 71,105,219, 86, 51, 85,243,227,136,233,252,195, 55, 92, 77,153,201,140, 82,191,233,251,237,100,126, - 96, 57, 77, 23, 75,118,212,221,238,228,252,125, 86,100, 8,169, 31,222,157,159,191,185,184,238,135,220,165, 62,144,148, 0, 66, -136,114,187,222,172, 54,235, 7, 71,135,219, 93,255,238,226,108,209, 78,134,180, 5, 0, 22, 73, 41,213, 33, 58,184,154,238,182, -119, 85, 61,233,119,235,174, 91, 35, 32, 75,165,218, 5,137, 93,218, 73,136,221,238, 78, 88,218,118,114,113,246,209,193,170,122, -210, 15,121, 24,118,109,211,184, 99, 54,182,220, 25, 88,219, 46,152,164,235, 86, 77, 53, 65, 16, 3, 35, 4, 71, 28,134, 33,231, -225,244,246,214,129, 31, 31, 62, 56, 88, 30, 1,178, 27,152,166,131,197, 82,234,246, 96,126, 80, 5,217,179,178,243,102,183,173, -218,217,164,138,147,195,135,105, 72,253,234, 60,198,106,182, 56,158,206, 14,115,191,233,251,190, 31,250,159,254, 87,191,252,242, -143,127, 94, 87, 33, 4, 65,132,205,102,115,115,121,246,246,197,215, 95,127,253,187,231,175,223,188,254,240,241,205,201,249,205, -106, 85,199,240,203,159,255,249, 47,126,242, 39,159, 60,123,134, 49,180, 77,251,229,147,233,247, 63,153,107,218,189,125,249,234, -221,203, 55,143,191,251, 25,180,245,111,127,251,245,211, 79,159,188,120,119,250,235,191,253,221,163,182, 94, 78,218, 42, 10,148, - 28, 50, 81, 45, 17, 9,134,114,191, 35,169,171,202,193, 85,147,154, 10, 11,148, 98, 28, 22,181, 36, 10, 83, 32, 41,241,143, 18, - 61,224,200,150, 13, 8, 16, 41, 16, 59,104,182,188,235,123, 4, 12, 76,217,148,144,186,172,110, 90, 96, 89,106, 54,152, 71,230, -192,216,167,156,114, 46,114,248, 40,228,136,102,214,198,160,102, 73,115,121,103, 29, 69,213,128, 85, 12, 93,159,205,146,170, 22, -239, 6, 0, 57,154, 16, 71, 97, 98, 26,114,206, 41,155,123, 19,162,186,186, 91,129, 22,128,155, 0, 5,150,236,230, 0, 33,176, - 58,170, 59, 33, 86, 66,196,156, 82, 50,183, 32,146, 52,119,125, 34,129,156,117,215,117,170,218, 54,117,206,217, 53, 49, 18, 33, - 69, 33, 53,239,213,152, 8, 16,202,216,185,220,210,132, 89,136,179, 89, 25,149, 18, 22, 95, 6, 18, 17, 17,103, 83, 55,207, 14, - 81, 36,198,160,110, 0, 42, 28,144, 73,152, 13, 72,205,170, 82, 72, 33, 62,185,185, 99,203,203,217, 12,204, 32, 8,122,209,207, - 17, 9,151,222, 30,185, 9, 35,161,184,155,130, 7, 70,145,106, 59, 12, 58,244,145, 37,151,215,122, 98,183,220,167, 4,132, 21, - 83,118, 2,176,146,222, 51, 4,254,235, 95,253,243, 2, 12,178,189,105,110,223, 23, 29,231,218, 60, 74, 55, 70, 36, 1,236, 59, - 14,247,160,177,177,177, 92,238, 39,232, 68, 92,216,149, 99,184,124,212, 60, 1, 2,122, 26,182,131, 78,154,186,168, 23, 1, 20, - 73, 70, 37,147,141, 77, 56,119, 48,176, 82,199, 42, 35, 10, 26, 73, 6,123,176,145,187,105, 26, 47,180, 35, 78,158,240,254, 37, - 99,223, 12, 66, 4, 34,161,189, 90, 22, 74, 2, 21,201, 65, 75,232,138,198, 0,252,184,122,184,207, 69,238,255,251,242, 36, 43, - 47, 20, 54,155,205,216,243,183,175, 62, 28, 44, 23, 7, 7, 7, 33, 4, 83,157,212,241, 63,254,167,175,191,243,236,193,124,182, -168, 39,211,155,171,219, 47,190,243,221,237,221, 13, 49, 9,145, 57,236,227, 46,163, 67,170,188,148,236,105, 16, 12,142,158, 77, -193,133,100, 52,194,178, 0, 24,236,135,141, 62,110,111,138, 95, 16, 0,139,113, 23,239,159,153,238,174, 57,237, 86,151, 57, 15, - 44, 21, 7, 25, 25, 79, 76, 14, 20,234, 22, 1, 89,194,168, 98, 5, 7,207, 20,196,251,158,136, 37,132,161,239,222,191,249, 96, - 92, 29, 28, 29, 29, 60, 60,252,248,230,125,223,247, 20, 91,192,200,168,183,103,111,128,235, 24, 69,164,114, 34, 4,200,125,175, -253, 77,136,213,102,187,253,112,118,254,241,252,114, 72,249, 79,255,244, 31, 47, 39,113, 72, 67,153,197, 85, 85, 92, 28, 60,224, -230, 96,117,115,190, 60,126, 84,181,245,249,233, 9, 34,166,237, 93, 74,125, 30,186,201,236,209,176, 93, 15,253,206, 53, 15,221, -250,226,228,165, 26, 70, 9,221,110, 85,183,245,203,119, 31,159,159,158,246,185,215,148,135,156,133, 57,165,161, 79,125, 19,235, -110,232, 17,160,169, 99, 82,187,184, 93, 45,167,203,229, 98,190, 91, 93,214,205,100, 72,249,238,238, 44, 48, 3,137,129,212,117, -221,111, 55, 18,171,166,158,152, 27, 19,109, 54,235,108, 46,177, 65,183,171,219,219, 12, 30,171, 26,192, 93,251, 32, 21,154,174, -239,110,154,118,174,195, 22, 60,115,168,116,216,180,211, 67,137,147, 97,216,170, 38, 0, 24, 82, 94,109,119,131,218,162, 93,212, - 34,117,211,244,187,213,250,238,170,105, 91,145,112,176, 92,244,221,110,215,245,179,233, 36, 15,195,144,146,170, 13, 41, 87,245, - 20, 72,204,114,223,247, 40,245,108, 50, 3,160,213,110,163,230, 77,172,126,240,211, 63,250,226,251, 63, 18, 22, 32,239,119,187, -221,122,115,254,241,253,183, 95,127,245,252,197,139, 87,239, 63,188,254,120,250,225,236, 28,221,127,240,236,211,127,252,243, 63, -251,252,201, 83,103,140, 85,117, 56,159,124,241,112,218,242,112,241,241,227,187, 87, 47,135,148,214,219, 93,103,250,242,219, 23, -183,119,235,215,175, 62,110, 46,111, 30, 78,154,182,169, 80, 8,172, 80, 4, 9, 9, 12, 44,171, 35, 82, 21, 42, 10, 98,154, 83, - 74, 35, 34,144,152, 89,136, 66,249,192, 23,175,145,129,187, 89,209, 28,149, 17,171, 48,152, 90, 45, 92,138,148,110,229, 87,162, -186, 49, 33,145, 48, 2,128,152,233,160,234, 0,194,224,133,223, 91,206,128,209,165,201, 81, 66, 29, 36,101, 5, 55, 52,100,102, - 3, 18, 98,199, 18,197,182, 33, 15,227,145, 10,168,102,102, 57,134, 80,254, 78,149,134,160, 48, 27,162,165,236, 96,229,212, 40, - 30, 4, 97, 50,244,113, 43,133, 52,118,220,203,225, 86, 44, 58, 68,132, 66,136,149, 4, 5,200,230,140,192, 8, 41,167,156, 19, - 0, 85, 65,152, 73, 1,209, 65, 8, 28, 89,136, 74,103, 86, 88, 16,128,137,108,140,218,219, 40, 90, 64,148, 80,194,254,131, 38, - 45,255,211, 66,199, 18, 98, 36, 49, 47,191, 18, 10,137,158, 16,131,200, 77,151,118,219,213,225,124, 30, 75, 55,106,156, 64, 35, - 34,106, 6, 98,144,192,200,236,230, 10,134, 72,194, 84,184,235,232, 94,198,107, 64, 20, 3,151,165,183, 16,133, 32, 10, 8,102, - 4,174, 89,213, 45,231, 44, 40, 1, 93, 11,189,196,247,164,147,251,209,138, 23,102, 26,209, 72,176, 28,235,152,182,143,105, 23, -242, 56,248,126,156,130, 37,238,200,228, 14,251, 32,149,237, 71, 30, 80, 55,205,197,249, 10, 15,102,100, 96, 94,232,230, 25, 28, - 44, 57,162, 33,147,141,231,214, 8,138, 3, 40, 82,139,113, 66,131,192, 37, 3,238, 18,213,148,241, 30, 92,199,128,186, 39,147, -177,147,238, 49,153, 86, 18,174,102,128,196, 44,204,136, 89,139,191,207,113,172,146, 22,143,248,253,100,198,144,144,152,205,188, -100, 43, 17, 16, 49, 12, 74, 63,250,209,247,190,121,249,225,221,187,119,135, 71, 15, 38,147,249,226,248, 72, 85,207, 46,175,255, -237,191,255,245,163,199, 79, 82, 63,236, 54,183, 92,215, 10,105,232,119,128, 88, 2,181,166, 5,118, 77,229, 13,198, 13, 76, 93, - 34,151,146, 19, 48,146,123, 78, 61,138, 16,130,165, 68, 60,254,145,202,232, 9, 17,193,117,127, 65,128,145,125,140,232,166, 36, -140, 44,110, 70, 34,224,108,123, 1,226,184, 49,134,226, 83,119,102,215, 33,113,211,186, 38, 44, 22,202,170, 2,137, 14,150,214, -119,182,187, 5,136,174, 10,166,204,194,161,252,124,135, 52,164,164,216,134,170,219,110,154, 89, 32, 7, 53,239,119,183,101,177, - 53,228,126,219,117, 67,202, 85, 8, 7,109,216, 93,190, 85,108,195,100,174,121, 23,227, 2,144, 79, 63,188,237,119,125,218,222, - 52,213,242,203, 63,248,233,199, 55, 47, 79,222,254,174,158, 30,144, 84,136,149,129, 1,122,183,186,232,182, 29,202, 84,208,130, -224,132,105,187, 94,125,184,190,209,236, 66, 65, 68,251, 60,220,174, 86,179,201,164,170, 99, 91,197,249,100,114,183, 94,179, 80, - 96,233,250,225,239, 95,191,172, 3, 30, 78,219,100,151, 18,154,166, 57,170, 68,239,174,175,166, 7,143,234,192,237,100, 34,161, -233, 82,159,250,181, 89,116, 77,187,190, 23,137, 21, 35, 80, 64,199,126,187,201, 0,149,240,174,219, 49, 97,159, 85,250, 93, 12, -177,223,173,153, 47,164,154, 66, 74,193,185,169, 39,169, 95,175, 54,155,235,235,147,200,205,225,100,145, 92,145, 67, 78, 67,172, -230,253,144,186,110, 59,157, 31, 95,223,221, 14,221,122,179, 89, 5, 38, 68,182,156,169,110, 17,112,183,189, 90, 44, 31, 13,253, -182,110,106, 52,179, 97,123,244,228,179, 93,191,107, 22,139,103,159, 61,123,240,244,177, 83,216,238,182, 58,116,155,187,245,229, -213,199, 15,239,222,191,251,240,225,205,201,233,217,197,205,106,187,249,242,217,231, 63,253,242,139,131,249,193,106,155,110,119, -221,227,163,195, 71,173, 29,206,233,246,230,226,253,219, 55,237,180, 26,192, 6,205,203,135,139,183,167, 23,175,223,124,168,131, - 28,183,173, 72, 9,124, 3, 0,178, 16, 7, 41, 9,105,102,140, 21,141,158,226,100, 14, 40,194,170, 94, 42,220, 33,132,172,150, - 29,177,180,120,204,120,116, 55,131,151,127, 71, 7,128, 24, 56,155, 21,123,176,144,171,249,254,147, 12, 96, 70, 68,217,114,202, -169,239,135,194,160,138,194,196,130,132,213,216,200,103, 97, 30,242,224,138,134, 78,192, 70,142,110,177, 10, 68, 2,217,138,107, - 45, 4, 49,179,253,122,140, 74,219,209, 0, 0,177,140, 82,211, 48,144,155,132,176,237,123,243, 92, 94,100,147,154,163, 16, 19, - 33, 37,119, 70,172, 57,168,171, 22,180, 11, 11, 3, 23,233,178,128,168,155, 32, 83, 69,105,112,207,230,144,171, 88, 73, 33,245, - 19, 69,226, 4,102,102, 21,143,125,159,192,236,238,166, 90, 34,122,196, 66,224, 54,118,104,152,152, 82,202, 80, 84, 36,224,136, - 24, 88, 40,134, 62,101,207, 10, 4,106, 42, 82,230, 60,128,228,219,148,239,238,110,230, 77,221, 54, 77,249, 73,185,131,255,255, - 84,189,215,151,101,201,117,167,183, 93,196, 57,231,186,244, 89,174, 13,218,192, 53, 0,130, 67,209,138,196, 12, 37, 74, 90,212, -112,104,158,134,212,155,254, 73, 45,189,105, 73,163, 53, 67,105,196,161, 8, 52, 97, 26,109,202, 87,102, 86,250,235,142,137,216, -123,235, 33,206, 45, 80,111, 0, 26,171, 58, 51, 43,239, 57, 17,123,255,126,223,135, 94,134, 16, 34,236,101,181,166, 89, 85, 99, - 21, 76, 65,179,150,191, 17, 69, 8,194,149,112,175, 94, 22, 36, 66,136, 8,217,156, 1, 18, 80,159,147,166,161,169,107, 85,227, -127,255, 87,255,227, 8, 98,124,103, 64, 26,143,240, 59, 54, 11,254, 38, 27, 78, 72, 68,193, 11,166,166, 20, 10,162, 32,145,219, -200,146,100, 34,192,119,143,153,113, 35, 58,178, 67,129,136,237,230,230,126,127,190, 55,238, 10,137,139,173,123,228, 16, 4,122, - 39,118, 29,255,205,238,132,100,160, 59,103, 83,193, 64,234,168, 41,228,176,171, 35,141,180,176,209,216, 7,136, 72,130, 4, 68, -130, 92, 46, 35,133, 86, 81,184,138,160,128,140, 52, 22,109, 75, 55,130,129, 10,147,236, 29,125,172, 72,164, 16, 81,144,217,221, -170,192,179, 58,254,236, 87,223, 44, 22,243,189,253,163,130,196, 58,216,159,255,211,231,191,116,247,143,222,127,239,228,209,131, -203,203,183,179,217,188,223,182,177,174,217,199,133, 5,115, 24, 51,151, 14,196,140, 92,252, 34,239,118,186,227, 70,193, 77,193, -205, 85,181,239, 28,180, 60,230,125,132,184,209, 40,131,100, 26, 99, 14, 88,102, 48,198,194, 34, 81, 36, 74,172,138,212,189, 76, -186,204,168,158,206,137,176,188, 25, 98,221, 88, 74, 40,236, 14,200, 1,180,183, 65,157,194,249,155, 55, 57,219,193,233,131,163, -211,195,179,231,175, 33,196,118,189,204,219,155, 46,217,252,240, 33,186, 74,168,203, 97, 72, 29,187,205, 77, 16,101,225,219,155, -229,249,229,237,221,102, 83,215,147,255,238,207,254, 26,136,185,154, 16,241,252,232,116,113,240,240,237,217,139,229,249,215,251, -167,143,231,123,251, 8,116,255,246,217,118,211,237, 29, 62,244, 60,104,214,249,252, 40,229, 62,183,155,183,231,175,238,239,175, -182,219,251,201,108,159, 0,108,216, 92,221,222,252,236,233, 43, 71,209,156, 8,129, 16,171, 32,109,206,168,120,189, 90,214, 85, -188, 95,111,134,156,131,240,188,153,116, 89, 47,175,111, 79,247, 22,179,201, 36,229, 60,169, 39,195,176,110,234,137, 35,247,253, - 96,154,203, 26,142, 44,153, 42, 83,189,191, 88, 16,146,147,228,212,151, 58,116,144,170,164,193,170, 42,106,182,217,116, 58,108, -239,102,123,199,170,154, 21,145, 72,132, 83,191, 94,109,215,142, 20, 83, 90, 28, 62,210,156, 40, 84, 33, 68, 4,200, 57, 15, 67, - 27,235, 41,168,130,231,216, 44,204, 76,115, 18,198, 72, 58,169,154,166,170,182,247, 23,166,221,102,121, 43,213,164,239,214,235, -187,179,197, 98, 95,154,248,254,199, 31, 77,103,179, 48,153,130,234,242,246,234,254,246,230,245,139,111,190,126,246,244,229,217, -235, 87,231,151, 23, 55,119, 93,215,254,248, 59,223,251,201,143,127,119, 90, 87,219,237, 82,170,248,241,123, 71,159,125,231,253, -200,126,246,250,229,213,229,249,225,163,211,181,229,103, 79, 95,206,166,147,167, 47,207,222,188, 56, 63,110,154,195,102, 30,133, -128,198, 81,167, 16, 69,150,194, 58, 68, 0, 3,151, 50,199,128, 34,118,116, 98, 9, 33,136, 8, 16,211, 40, 85, 3,181, 84,142, - 71,230,230, 56, 94,208, 1,144, 2,170, 21,128, 24,160, 89,233, 8,142,151, 98, 70,115, 23, 66, 69, 65,112,181,180,220,180,253, -208,149, 95,248,166, 42, 15, 77,158, 53, 53,160,108,251,174,124,250,199,130, 44,141,149,198,114,122, 29, 93,110,224,234, 16, 36, -148,153, 0, 49,243, 72, 14,192, 29,150,170,216,235,148, 16,179,101, 64,102, 68,225,242, 44,114, 53,152, 84,177, 10, 33,171, 26, - 64,148,192,200, 40,129,131, 8,115, 73,183,112,145, 25,143,228,153,210,185,161,192, 36, 33, 34, 11, 0,140,159, 38,119, 66,246, -145,219, 2,133, 79,238, 14,230,102, 89,137, 9,145, 56,200,144,210,200,188, 65, 68, 32, 17, 6, 26, 79,159,187, 73, 7,186,121, - 96,146, 32,125,182,235,213, 42,160,157, 30, 28, 73, 12, 37,177,142, 72, 54,198, 14,137, 74,211, 5,129, 2, 49,138,170,149,210, -168,186,103,117, 68,172, 88,114,105,232, 3,104, 78,234,128, 0, 33, 4,117, 72,169,213,172, 49,132, 40,146, 77,165,144, 35,188, - 40, 81,105,204, 6,154,217, 8, 13, 54,220,145, 97,202,211,200,220, 7, 40,131,110, 34, 34, 4, 3,196,162,120,197, 17, 12, 89, - 6, 19, 37, 52, 9,142,232,136,196,140, 57, 15,140, 68,168,217, 81,132, 44,239,106,170,132, 84, 66,221,185,232, 62,160,152, 90, - 13,160,248, 0,132,196,124, 76,206,184, 39, 87, 47, 67,157,157,159,111, 55,212, 41, 47, 5, 65, 82, 0, 43, 44, 72, 80,176, 98, - 28, 0,244, 18, 0, 66, 0, 10, 12, 12,144,189, 36, 81, 68,138, 38, 79,203,204,222, 77,203, 44,173,252,235,145,184,164,119,147, -193, 71,159,188,255,193,211,151,207, 94, 60, 59, 57, 57, 61, 56,121,188,183,127,224,150, 62,120,252,240,127,253,223,255,254, 7, -223,255,222,201,233,254,235,103,207,194, 71,159,180, 93, 55, 95, 64,118, 37, 4, 2,115,237, 1,101, 92, 92,141,203, 27, 40, 21, - 39, 40,233,119,205, 72,100, 89, 1,193,114,118, 53, 3,119, 3, 14,145, 36, 32,178, 91, 46, 87, 59, 31,209,171,239, 2,172, 8, -224, 34, 66, 20,202,231,174, 0, 54,205, 11, 69, 58, 8,187,102,231, 72,150,147,230, 36,177, 86,119, 6, 7, 96,174, 88,189,143, -245, 44, 91,139,232, 34, 49, 78,103, 55,175,222, 16, 59, 73,104,151,183,243,189, 35,105,166,106,217,242, 48, 12,125,234,213,117, -136,181,152,218,182,107,219,161,235,186,238,228,248, 68,132, 52,231,146,190,154,204, 22,183,183,151,125,215,214,251, 15, 31,188, -255, 73, 12,184, 93,221,172, 90, 67, 14,195,176, 77, 41,247,237,218,161, 95, 93,191,110,102, 7,205,226,232,232,228,189,156,186, -246,254, 38, 19,105,183,121,246,230,108,185,221,198, 32,204,148, 20, 67,140,132,152,214,235,229,144,212,237,250, 46, 11, 19, 33, -181, 93, 95,133, 88, 5,190,184,189,249,135,175,191,254,201,236, 95, 77,234,104,154,219,182,111, 26,234,135, 13, 58, 74,172,212, -208,135, 62,214,139,245,237,219,189,163,163,105,228,155,126,227,161,233,123,103,142, 96,195,208,183, 36, 2, 2,140,184,183,152, -119,237, 6,144,133, 25,160, 2, 34,215,116,125,183,108, 66, 51,107,166,179,197,209,166,170,153,209, 45,128, 15,166,104, 68, 41, -119,161,154, 4,137,221,208,130,153,118, 43,166, 48,157,238,117,237, 18,133,177, 84,237,129,179, 51,199, 73,234, 90, 4,142,243, -227,106, 62,121,112,242, 96, 50,155,187,230,246,254,166, 93,111, 94,189,126,126,115,119,119,117,125,123,189, 92, 93, 94,223,174, - 54,155,110,232,191,255,193,251,127,240,217,103,155,245,181,204,142, 62,252,214,183, 63,120,114,184, 63,175,110,175, 46,174,206, - 47, 58, 77, 55, 55,203,231,151, 55, 81,232,250,126,121,246,230,178, 66,120, 56,157, 78, 38, 21, 9,155, 90, 0, 84, 53,102, 2, -240, 12, 10, 64,204,145,216,146,105,118, 47,128, 57, 67,140, 49, 16,146,249,200, 42, 41, 65, 94, 83,125,215,187, 6, 36, 38, 0, - 5, 0,138,129,186,161,117, 0,176, 28,165,178,242,153,195,226,254,180,130, 4, 30, 0,132,204,213,186,109, 63,228,108, 57, 33, - 82,227,209, 50, 76, 39,140, 36,217, 12, 0, 39, 85, 61, 88, 6,119,137, 66,128,134,216, 15, 57, 8,131, 3,137,184,186,162, 6, - 32,113,103,137,102, 89,193, 8, 17, 89,212,213,221, 69, 36,103,181,241, 74, 14,228,168, 38, 64, 84,177, 24,130,102, 3,183, 40, -164,154, 85, 51, 17,135, 66, 51, 20, 42,104,240,228,142, 88,132, 84, 86,140,224,229, 40, 64,204,165,152,154,178,199,200,230,224, -134, 85,164,172,217, 1,208,156,145, 11, 35,217, 44, 27,184, 16, 2, 71,119, 3,244, 97, 72, 37, 15, 97, 68, 37, 38,231,134,192, -104,102, 8, 72, 65,176, 16,145,203, 77, 60,235,114,181,246, 60, 28,236, 47,140, 16,204,144,201,178,185, 15, 18, 3, 98,116,205, -221,208, 49,115, 64,206, 58,246, 4, 16,209, 44, 3,208,164, 14,230, 88, 94,108, 65,100,200,102, 64,194,228,136,106,158,251, 14, - 11,162, 31, 57,144, 32, 41,255,237, 95,255,229,168,205, 40,203, 77, 87,252, 13,200,203, 71,156, 97,193,200,140,227,130,145, 44, - 38, 66, 84,198,234, 80, 22,239, 94, 66, 72,196, 5, 85, 52,226, 14,169, 68, 99,202,176, 29,101,189, 90, 41,201,162,174,199, 83, -187,249, 88,195, 65, 42,184,204,194,109, 40, 44,183,119, 14,115, 34, 65,112,179,140,224, 84,142,222,196, 8,246, 14, 20,143, 99, -197, 11, 24,145, 73, 80,200, 71, 55, 97,185,115, 32, 34,186,230, 2,231, 39,100, 48,243,221,184,125,199,211, 44, 46, 13, 96, 34, - 96,218,129, 4, 12, 49,224, 14,244, 79,196,199,123,139,207,127,249,213,100, 50,221,223,219, 55,181,245,118, 89, 5,121,254,252, -213,118,219,126,240,228,209,131, 7,239, 93, 95,158, 45, 14, 14,115,202, 28, 2, 19,169,230,172,153, 57, 72, 96,179, 2, 65, 26, -139,187,204, 2,200, 96, 14, 68,160,217,205, 76,251,178, 87, 32,166,157, 73,149,223,169, 19, 0,138,237, 10,128, 72,132,199, 37, - 56, 18, 33, 23, 19, 86, 97,106, 34,130,103,197,216, 52,211,137,131, 3,185, 52,181,165,150,235,202, 29,202,124,115,220,164, 56, -222,222,172,179, 99,195,126,252,224,244,249,151, 95,231,140, 28, 4, 93, 66,136, 65,196, 65, 17, 8, 67, 52,128,225,238,141, 14, -247,211,166, 73,217,223, 94, 94,159, 95, 93, 95,221, 92,255,193,239,253,233,199, 31,124,124,127,115,150,141, 79, 30,127,216,183, -219,183,231,111, 4, 82, 93,215, 39,143,222,191,191,185,186,191,189,201, 78,218,109,167,135,167,194, 18,171,169, 33,108,215,247, -158, 83,169,158,213,117,115,119,127,103,166,243,233,222, 63,126,243,236,237,253, 61,186,153,121, 70, 67,128,148,108,211,110, 10, - 21,206, 29,204,189,138, 33,155,170, 25,128,207,154,201,186, 79,131,230, 39, 71, 39, 81,236,228,224,176,237, 90, 85,213,220,229, -108,154,218, 62, 39, 79,121,189,186,173,170, 89,197,216,245,109, 55, 12, 70,209,135,142,131, 76, 39, 51, 32, 88,212, 53,135,176, - 90,223,131, 67,144, 56,164,222, 85,239,215,183, 93,238, 15, 38,147,189,189,195,242, 73, 8, 18, 28, 28, 72,214,171,251,106, 50, - 5, 75,154,250,186,153,110,182, 43, 3, 14,174, 8, 57, 84, 77, 64,148, 16, 99, 83, 51,210,122,179, 76,234, 15, 78, 31,169,106, - 93, 55,135,199,135, 31,127,255,179,163,211,199,211,189,133,229,225,234,237,249,219,139,179,103, 47,158, 63,125,241,242,217,155, -179,151,231, 23,231,215, 55,171,182,203,105,248,236,211, 79,254,245,239,253,235,233,116,222, 76,154, 15, 31, 31,125,255,211,247, - 16,242,139,175,190,188,189,186,186,190,191,159,158, 28, 17,230,179,139,203,171,171, 27,237,134,147,102, 50,173, 42,145,130, 89, -183,146,142,149, 16,220, 45,187, 17, 50, 35, 32,129,154,155, 3, 26, 48, 18, 7,137, 65,144,104,100,100,168, 1, 86,139,141,129, - 0, 0, 32, 0, 73, 68, 65, 84,130,102, 43, 63, 85, 87, 31,143,169,227,120, 26,213,180, 27, 6, 5,175, 37, 32, 98,214,156, 71, -128,107,185,146, 82,249,133,170, 99, 52, 53, 32, 31, 52, 13,154,163,132,170, 10,117,172, 38,117,237, 4, 64, 28, 40,102,183,140, - 14,232, 33, 8, 33,179, 68, 83, 39, 22, 66, 32, 39,135, 34,105, 98, 97, 33,225, 2, 50,171,132, 99,224,148, 85,147,149,222,103, -105,214,151, 47, 64,193, 3, 75, 93,213, 90, 42, 38, 12,133, 62,130, 5, 53, 72,100,142,117, 21,203,183, 15, 0,140, 24,130,148, - 67,150,186, 23, 77,102,137,249, 23,201, 39,135, 0,142,234,198,194,133,123, 85,202, 49, 6,227, 80,186, 28,195,145, 71,205,131, -153, 34,129, 68, 65,146, 64,104,170, 36, 92, 54,137, 72,104, 69,208,198, 50, 42,166,221,251,172, 55,203,245,193,108, 82,135, 9, - 51, 57,163,102, 39, 68,137, 21, 0,164, 46,149,162, 25,146,104,233,237, 7,113, 3,117, 21, 9, 84, 76,182,142, 33, 50, 66, 24, - 33,187, 68,238, 10,132,238, 20, 2,165,148, 5, 33,134,104, 14,201,141,255,167,191,249,203, 82,187,161, 82,161, 45,163,115, 55, - 48, 32, 10,165, 41, 90,198, 44, 5,150,160, 58, 98, 91, 0,188, 76,155, 16,138, 48,218, 70, 7,105,105,155,218, 72,161,132,209, -198, 81,210,136, 76,104, 87,183,235,211,147,147,194,224, 38, 2,116, 64, 97,166, 66, 46,251, 23, 3, 34, 64, 0,167,119,246,110, - 70, 4,125,215,123, 42, 80,223, 17,152, 75,236,230,160, 80,216,198, 68,164,154, 76,211,216,218, 66, 20,198,194, 86, 52, 0,116, - 35, 65, 36,216,153, 89, 70, 80,194, 56, 47, 49, 64, 66, 22,242,146, 54, 26,153, 55, 69,162, 66,102,190,127, 56,243, 33,189, 58, -127, 59,169,235, 16,107, 85,101,146, 38,208,255,251,171, 95,255,238, 15,191,255,222, 39,159,228,180,101,137, 87,111,207,231,211, - 89,187,188, 45,149, 49,102,114,135,178, 47,114, 51,176, 50,196, 50,183,177,245,228, 14,166,185, 16,140,115,210, 80, 85, 59, 87, - 54,239,232,207,229,255,166,196, 28, 88,180, 8,249, 70, 99,206,248, 93,143,164, 26, 0, 7, 15,205,172,142,226, 6, 82, 85, 96, -234,206,163,188,187,164,238,119,192,157,179, 23,111,186,118,179,191, 63, 63,122,116,250,242,233,203,238,254, 13,112,133, 4, 20, - 26,142,141,169,113,168, 72,104,216, 44, 1,117, 72,155, 73, 61,233,250,246,252,234,230,250,246,254,230,246,250,191,249,211,191, - 8, 54,228,172,205,116, 18,154,250,246,234,173,160, 15, 67, 63, 63, 56, 61,121,242,173,151,223,124,241,250,233,151,110,196,161, - 2, 77,195,230, 46,107,191,189,123,187, 56,122,172,219,229,122,121, 59,217, 59, 98,200, 57,219,225,209,233,237,242,230, 63,252, -244,243,118,232,199,220,106,105, 84, 70,169, 99,213,245,131,169, 57, 66, 29, 99, 55,244, 8, 88,135,202,213,137,169, 9,241,226, -246,110, 82,135, 71,251,251,136,218,109, 54,183,203,123, 96, 1,203,154, 53,212,245,222,116,166, 28,250,190,173, 98,112,228,108, - 94, 9, 91,234,205,180,226,200,238,205,164, 9,145,235, 48, 35, 48, 9,161, 79,195,221,122,233,200, 39,251,167,164,202, 18, 36, -212, 89,125, 24,218,205,250,114,232,250,102,190, 87,197,144,183,247,200, 1, 92, 83, 74,211,233, 52, 52,117, 93, 79,133,165,237, - 55, 34, 34, 92, 5, 22, 66, 48,144,110,187,110,154,230,232,244,248,131, 79,191,189,216, 91,196,186,218,172, 86,175,159,125,243, -236,197,139,215, 23, 23,175,206,206,222,188,189, 60,191,186,218,182,253,193,124,254,227, 79, 63,253,254,123, 79,126,240,233,119, - 7,205,145,253, 71, 63,250,206,241,126,115,117,254,242,205,243,231,113, 62,169, 79,143,159, 63,125,113,116,184,247,236,252,252, -245,171,139,125,146,189, 73, 45, 92, 70,186,160,142, 33, 22,154, 58,189,147, 43,141,193,129,221,196,148,152, 72, 4, 11,166,131, - 9, 12, 8, 73, 53,149, 87, 62,193,120, 20, 34, 38,179, 81,167, 60,104, 54,205, 66, 28, 37, 32,104,241, 52,215,129,213,156,136, - 10, 21, 88,152,193,161,207,217, 77, 5,133, 88, 8, 48,136,236, 77,167,117, 83, 35, 18, 2, 23, 28,121,209,125, 76,170, 74, 21, -115, 46,167, 58,100, 24,235, 47, 92,248,142, 65,178,153, 32,146, 16, 19,162,131, 89,130, 29,174,150, 9,137,216,220,221,140, 40, -148,216, 95,185,241, 75, 96,112,114, 7, 33, 98,102, 32,138,165,211,102,227,104,133, 17, 29, 10,218, 23,118,243, 0, 39, 34, 4, - 74,160,194, 44, 44,229,127,103,102, 68, 23, 17, 24,187, 54, 62,226,176, 16,152, 24,144,203, 4,149,152,153,196,199, 33, 15, 56, - 64,168, 98,153,120,144,160,148,182, 36, 82,209,109, 19,120,114,127,117,121, 51,139,116,188,127,224,194,110,134,136, 49,114,140, - 85,223, 15,174, 86,236, 87,238,238,121, 64, 17, 34, 42, 24,125,166, 17, 6,142,224, 66,108, 88, 90, 92, 32, 66, 57, 27, 33, 5, - 18,164, 50, 37, 19, 18, 2,132,192,108,102,242,206,145,100,136,224, 86,182,172,227, 42, 23, 12,208,137, 75,131,171, 0, 29, 93, - 2, 58,228,145,176,172, 9, 1,136, 25, 10, 75,169, 28,230,205,128,118,114,214, 29, 76,168,252,124,221,108, 54,155,194,245,178, - 27, 58,118, 37,178, 49, 97, 20, 16, 21, 28,209, 70, 17,108,233,124, 42, 32,169,103, 64,102, 0, 55, 68, 39,112, 29,149,212,174, - 99,239,137, 81,205,118,137,124, 99, 4,181,130,193, 33, 64,116, 5,231,241,241,233, 96, 14, 84,166, 28, 8,200,176, 43,235, 22, -217,110, 57,161, 51, 2,160,230, 81,120, 4,232,136, 10, 36, 56,234,169,176,107,211,247,191,253,225,215, 47,207, 95,190,122,249, -237,201,124, 62, 91,160,227,199, 31,125,252,244,229,235,255,243,239,255,225,244,193,195,201,108,255,235, 47,126,249,224,225,123, - 93,187,201,105, 80,160,138,104, 32,140, 36, 37,111,137, 68, 57,103, 82, 55, 71, 65, 41,163, 41, 32,112,203, 57, 39,116, 4,205, -169, 39,137,149,185, 51, 58,184, 97, 16,215,194,199, 23,112,207,166, 35,108, 64, 11,156, 33, 16,243, 14,121, 63,254, 58, 86,177, - 33, 22,140,194, 34,169,237,136,201,138, 92,197,203,219,133, 88, 8, 18, 58,168,185,203,100,110, 41,213, 85,213, 78, 14, 65, 38, -105,123,131,161, 54,197,126,121,198, 85, 67,213,158, 8,211,116,186,185, 87, 85,107,219,126,211,117, 67, 26, 66, 12,211, 40,171, -213, 70,152,166,211, 73,187,221, 14,171, 43,106,102,177,170,247,142, 78, 87,183, 87,195,102, 21,154, 57, 11,111,238,206, 86, 58, -196,208,204,246,142,193,141,208,103,135, 39,213,108,127,189,110, 45,111, 48,136,153, 62,123,249, 66,129,102,205,244,226,234,109, - 93,215,133, 82, 8,230, 65,100, 49,155,174,214, 27, 68,236,135,148,213,220,180,169,227,164,153,108,186, 77, 53, 13,123,211,217, -255,245,243, 95,109,187,238,163,195,121, 37,161,132, 43,234, 42,152,170, 33, 13,253,186,174,234,204,210, 42,228,172,154, 6,144, - 88,215,245,208,110,144,156,221,186,174,229,206,129, 36,185,166, 54,145,165,105, 12,117,211, 16,100, 64, 31, 82,175, 57,101,195, - 80, 79, 28, 98,202,221, 60,196,245,245, 69,108, 38,147,122,202, 28, 99,149,200, 7,203,230,161,114,181,170,154,149, 19,202,122, -125, 55, 12,219,106,114, 88, 53,123,167,239, 61,122,248,228,201,116,182,232, 55,203,243,215,207,206, 94,189, 62,187,120,123,113, -123,119,115,119,119,121,191,218,180,237, 65,221,124,231,147, 15, 63,124,252,164,169, 99,223,175, 57,196, 79,222,127,248,248,116, -127,232,150,175, 46,206,215,155, 85,159,252,242,242,170,190,185,190,188,186, 94,109, 54,235,251,245,227,249, 60, 20, 53, 18, 56, - 58, 82, 73, 52,162,140,199, 18, 80, 36, 36, 16, 53,117,179,210, 44, 66,216,181, 49,202,227, 14, 72, 34,244,125, 42,241, 18, 48, -119, 46, 43, 55, 6,240, 16,130, 35,108,219,142,129, 40, 4,203,218,167, 65,136,137,164, 10, 96,238, 18,130,187, 51, 50,153,153, - 57, 17,162, 82, 8, 4,128,145,163, 72, 36, 84, 38,180,241,108,103,105,232, 67, 44,158, 84,206, 25, 8,169,138,204,130,230,104, -230, 12, 0,110, 28,163,103, 69,178, 24, 72,192,145,176, 31,178,106, 18,146,119, 22, 33, 70,200, 14, 34, 1,208, 60,155, 21, 27, - 27,141,231,189,209,135, 60,254, 80,208, 0,204,129, 16,152, 72,213, 92,112, 7, 5, 3, 87,183, 29,124, 28, 5, 39, 40, 41,171, -186, 10,202,136,188, 53,200, 57,155,141, 93,246,146,216,241,172, 10, 30, 2, 59, 4, 40,221, 47, 68, 68, 86, 53,100,162, 82,237, - 47, 58, 16, 7, 66, 50, 1,114, 47,169,108, 36,190,187,223,214,228,199,251, 7, 78,168, 41, 23,236, 46, 34, 12,125, 63, 82, 74, - 0,134,148,235, 40, 70,177, 60, 63, 67, 36, 51,176,156, 1,140, 16,144, 88,221, 32,121,168, 36,101,203,217,132,209,140,212, 51, - 19,163, 84,134,217,157,221, 53,229,164,166,226,230,200,229,175, 0, 0,204,138,104,142,104,167,197, 24, 21, 76,184, 19,192,113, - 32, 79, 5,249, 40,101, 71, 90,152,239,133, 66, 94,108,161, 59, 52,226,206, 39, 90,182, 19, 86, 64, 99, 49,144,182,109, 95, 71, - 86,195,192,239,152,137,187, 3,185,187,187, 18,160, 26,136,144, 1, 10, 10,128, 22, 36,188,102, 39,114,244,114, 61, 49,119,128, - 92,166, 48, 86, 16, 60,229, 95, 15, 64, 44,193, 77,157,157,202,202,156,128,128, 25,203,109,130,119, 60,130, 82,203, 6, 87, 3, - 66,216, 25,167, 10,210, 43,131, 9,160, 3,227, 59, 31,172,153,154,197,102,254,253,111,127,240, 79, 63,127,126,176,255,230,193, -163, 15, 88,170,253,195,147, 31,125,239,123,255,219,223,255, 63,255,213,143,191,254,228,187,223,117,240,131,163,147,203,203, 23, -200, 81, 66, 68,142, 72,226,106, 32,240, 46,116, 84,118, 96,238, 78,204,230,142,217, 10, 54, 71,123, 5, 55, 75, 3,132, 26,137, - 93, 13, 36,184,250,191,184,213,112,185, 52,218, 59,218, 37,226,152,110,130, 18,115, 98, 66,145, 16, 20, 48,198,144,218,222, 13, -176,137,144,179, 35,128,161,155,162, 80,185,215, 72,156, 48, 13,221,242,206,225, 81, 86, 5, 14,192,128,213,132, 1,134,190,175, -247, 78,153, 99,187,221,138, 80,187,220,178, 59,130,175,182,109,151,134, 62,231,217,116,159, 53,229,188, 57,126,239,211,237,182, -239,218, 84, 77,246,185, 94, 68,134,163, 7,143,214,247,247,106,218,174,174, 39,211, 3,205,253,222,131,247,105,176,148, 7, 87, -247,193,218,110,123,176,191,104,215,171,170,217, 75,195,230,230,230,234,233,249,219,166,110, 14,103,179,245,118, 85,133, 42,105, - 42, 94, 89,115,143, 33,212,161,218,244,219,166,169,221, 53,185,223, 45,215,245, 73,112,164,235,229,234,112, 62,157,212,213,151, -175,206,186,182,251,240, 96,111,177, 55, 13,132, 39,139,253, 77,223,175,218,237,182,221, 74, 77, 49,198,126, 0, 17,202, 2, 8, -144,114, 15, 76,224, 57,229, 33,152, 99,140,203,212, 11,242,233,124,193,204, 67, 50, 96, 34, 51,181,212,200, 92,135,101, 93,205, -204,187,249,100,214, 49, 84, 85,157,234,169,170,222,223, 93, 30,157,190, 31, 67, 29,121,114,117,121,150,219,190, 34,168,166,139, -166,138,174, 67,136,117, 96, 58,122,242,112,186, 63, 63,121,240,164,174,234,245,205,229,171,215,207,158, 61,127,121,118,121,125, -123,191,186, 95,111,174,239,239, 45,231,143, 78,246,126,239,123, 63, 48,226,161,223,112,213,124,242,201,119,190,253,233, 7, 65, -240,234,229,179,139,179,203,193, 18, 52, 53, 82,122,245,236,185, 43,106,202, 77,109,139,195, 69, 25,137, 16, 65, 54, 98, 30,225, -236,234,170,134, 33,144, 57,128,122,225,254,101,208,146, 64,246,114,195, 35,226, 64,166,208, 89, 6,203,129, 37, 33,228,156, 66, -140, 10, 6, 64,181, 4,116, 75,110, 41,229, 32,194,194,105,232, 1, 53, 48, 23,201, 6, 35, 25,122,118,175,153,213, 61, 89,145, - 78, 80, 29, 74,137, 26,171, 42,106,214,164, 94,170,120, 96,104, 0,192,128,140,234,198,142, 8,196,194,224, 48, 12, 41,136,236, -158, 27,140,238,192, 36,129,201,205, 85,135,148, 11,222,124,112,171,163,168, 66,210,162,214, 3, 33, 30,178,103,135, 81, 59,228, -227,127, 34, 17, 46, 31,100, 83,181, 2, 58, 70, 68,214,172, 68,187,211,156,131, 3,134, 74,202, 5,130,136,137,204, 13,200,204, - 29,212,149, 70, 74,250,152,104, 1, 64, 46,211,255, 12, 0,206, 2, 77, 93,245,106,166, 25,156,204, 50, 87, 12, 25, 77, 45,198, - 74,213, 4,208,128, 28, 52,185,149,166, 15, 11, 33,210,122,219, 14,185, 61,217,223, 51, 7,204,218, 76, 38,125,206,160,166,189, - 1, 32, 6,198, 76,217, 83,168, 88,213, 76, 29,133,192, 69,179, 33, 32, 69,241,236, 92,158,131,238, 28,176, 27, 20,208,234, 74, -250, 1, 34,187,121, 51,164, 62, 4,239, 21, 1, 70, 61,105, 81,193,225, 40, 76, 68, 46,127, 27,101, 71,237, 69,223,236,230, 8, - 68, 76, 12,174,110, 6,164,197,144,142,166, 32, 82,228, 77,254, 27,159,198, 59, 10,217,111,196,208, 80, 80,127, 96, 78, 76, 68, -216,212,149,153, 11, 49, 22,213,159,146, 23,128, 39, 48,162, 35, 56,162,115, 89, 41,188,187, 79, 20, 90,129,107,129,206, 19, 9, -120, 46,143,227, 17, 8,108,138,200, 8,163,145, 21,203,177,151, 16,172,172,139, 29,161,100,244, 11,203, 12, 71, 42,227, 40,144, - 53, 47,138, 83,247,130, 49, 40,192,221, 48,102,103, 11, 74,167,100,106, 12, 28,179,234, 39, 31,125,240,213,243,179,139,243,243, -189,131,227, 73, 51, 93,183,219,135, 15, 30, 62, 62, 61,252, 95,254,143,255,244, 63,159, 28, 54,147,197,155, 23,207, 31,127,240, -248,234,205,107,102, 17, 33, 55, 51, 80,203,169, 24, 73, 88,196, 0, 65,117,188,152,186, 35,139, 64,157,144, 24, 45,119, 93,209, - 52,137, 48,114,220, 73,195,116,164, 34, 23,166,252,232, 62, 25,193,206, 56, 50,131, 20,128, 11, 14,193, 77,153, 37,247,189, 15, - 29, 86,209, 53,193,160,192,108,253, 22, 37,146, 8, 0,184,102,242,140, 4, 97, 50,147,201, 76, 98, 20, 81, 3, 16,105,210,246, - 30, 24,195,244,160,219,172,128,188,109,187,126,115, 27, 98, 5,140,171,237,198,134,164, 41,205, 23,199,117, 61,225, 89,213, 13, -105,221, 39, 75, 93, 53,221,203,214, 79,247,142, 99, 8,106, 58,217, 59,124, 88,205,114, 82,174, 14,114,223,131, 41,152, 57,113, - 66, 55,199,251,251,187,147,211, 7,203,219,219,205,242,246,238,250,106,147,242,219,235,243,166,122, 60,105, 38, 67, 74, 65, 68, -205, 1, 28, 13,204,117, 58,157, 40, 89,223,103, 85, 96,196,236,126,123,191,137, 18, 3,162, 3,238, 77,231,142,240,242,230, 90, -136,226,164,222, 91,204,212,146,165, 36, 66, 33, 78,182,109, 91,155,166,182, 91,183,247,179,189, 83, 55,243, 80, 87, 8,109,223, - 17,210, 54,117,158, 83,110,183, 15, 14, 14, 55,155,123, 51,152,204, 15, 2, 7,100,153,198, 25, 34,187, 97,183, 90,198,201,124, -190, 56,246, 13,119,171,101,140,149, 35,247,166,235,237,221,222,252, 96,181,186,203, 89,171,122, 26, 5,187,190,243,212,181,155, -155,189,195,147, 71, 31,127, 58,153, 79,246,247,143, 35,194,205,197,171,103,207,159,191,120,245,250,213,219,183,183,247,203,219, -229,170, 29,210,188,150,223,255,193,143,143, 23,115, 99, 9,213,164, 2,255,157,207, 62,249,232,227,199,171,235,219, 23,175,158, - 65, 32, 58,156,222,126,243,234,120, 86,221,111,187,155,171,213,241,180, 57,158, 77, 2, 81, 45, 98, 96, 93,118,100, 12, 60, 66, -141, 0, 81,161,216,174, 75,185,194, 10,105, 73, 28, 74,222, 3,137,136, 4, 17,204,212,129, 24,144, 66, 72, 41,169, 26, 49,103, -205, 33,132,170, 18, 52, 77,110, 8, 24, 43, 41,212, 0, 4,100,150, 52,100,183, 44, 18,156,209, 82,170, 42, 65, 96, 27,134, 66, -163,170,132,218,172,129, 8, 9,135,148, 53,103,148, 82,197, 35,119,143,145,220,105, 72,137, 35, 5, 10,160,158,221,208,113,132, - 59, 10,169,142, 20,115, 68, 24,122,205, 41,177, 20, 61, 27, 50, 50, 69, 73,125, 50,115, 97, 20,230,148,181,207, 3, 49, 86,129, -209,160,207,138, 8, 21, 81, 54,199,209, 26,104,102,206, 4,204,156,212, 8, 29,120,100, 1, 23,112, 13, 19, 13,230,129, 3,128, -165,161,175, 39,181, 57,112,208,146,138,134,113, 42, 93,240, 90, 46,129,221,201,114,166,128, 18, 42, 53,216,118, 67,153,198,184, -230, 16,196,140,132, 12, 24, 16,172,140,162, 84, 53,165,140,239,198, 58,228, 76,190,110,251, 58, 72, 85, 69, 71, 38,162, 97, 24, - 8,201, 0, 49, 2,170,105,118, 2, 19,145, 33,165, 18,145,100,226,100, 10,110, 33, 70, 80, 76,150,145,168, 72,104, 53, 91, 19, - 17,101,178,109,251,200,146, 53, 39, 29, 28, 49, 37, 5, 55, 32, 32,163,170, 38,221,244,252,183,127,243, 23,136, 94, 34,231,163, -181,179,224,250,119,109,161, 2, 46, 64, 7,100,148,130,200, 4, 43,206,168,146,100,218, 89, 64, 97,236,158,142,208, 94,192,127, -129,120, 41, 27, 90, 40,113, 65,130,109, 55, 76,167,147,146,213, 7, 47,203,107, 42,153,152, 2,207, 42, 73, 33,102,193, 82,157, - 47,143,177,242,180,221, 93, 49, 9,101, 44, 92,185, 58, 24,143,108,173, 50,174, 22, 0,231,241,116, 91,250,159,176, 27, 56,161, -131, 16,218,152, 47, 26,177,198,180, 75, 43,226,200,177,183,194,246, 26, 49, 1, 14, 8, 62,120,185,240,185, 75,168, 38, 21,125, -241,205,203,138,121, 54, 95, 8, 11, 16, 76,131,252,236,139, 47, 31,156, 30,255,241, 31,255,201, 55,191,254,220, 73,134,161, 11, -165,244,140, 72, 44,136, 78, 28, 36,196, 50, 94, 14,194,136, 50, 38,151,208, 1,164,100, 67, 37, 70,169, 42,150,138, 99, 45, 81, - 70,106,194,206,190,234, 56,150,120,223,185, 38,199,151, 16,122,137, 84,130, 57,133,106,118,112, 12,224, 88, 0,205, 54,250,182, - 65,196, 52,203,100, 66,132, 96, 54,180,237,197,203,179,118,187, 57, 56,125,180,127, 56, 63,123,113, 54,116, 27,196,104, 58, 12, -237, 38, 84,117, 78, 67,191,185,219, 44, 87,174,234,233, 46, 84, 21, 17,190, 62,123,115,189,218,220,222,221,126,252,225, 39,223, -249,248, 83, 71,186,189,189, 71, 79, 58,172, 60,171,154,205,231,243, 88, 87,171,155,243,155,179,111,230,243,253, 42,152, 97,204, -125, 23, 24,182,203,155,102,118,184,190,191,137,161,210,172,169,111,207,206, 95,111,251,237,203,243,243,151, 55,247, 65,228,250, -238,118, 59, 12,219,109, 59,169, 38,165,146, 32, 32,229,196, 80,133, 0, 0,253,208, 23,197,109,223,247,106, 26, 99,197,132,219, -190,223,155, 78,131,212, 23,119,183, 19,161,121, 85, 53,177, 74, 67,151, 12, 17,161, 27,210,102,187, 33,176,166,170, 99, 12,132, - 54,105,166,197, 6,147, 0, 1,112,194, 52,141, 49,153,129,219, 98,255, 84, 24, 7, 29,136, 48, 6,206, 67, 74, 41,183,237, 38, -132, 73, 93, 85, 44, 53, 73,236,186,117,201,207, 78,154,217,124, 18, 87,155,109,172,103, 64, 50,164,109, 63, 36, 34, 90,236, 31, - 28, 63,121,252,240,225,163,217,100,106, 58, 92,189,125,243,213,211,103, 95, 62,125,246,226,236,252,252,242,230,122,117,143, 14, - 63,252,214,135,127,240,233, 39,123,139,253,205,118, 21,132,190,251,237,111,253,209, 31,253,238,222, 94,115,117,246,230,155,175, -191, 0, 9, 91,180,175,190,126,186, 93,183,183,247,203, 87,223,188, 60,156, 78, 15,167,211, 42, 10, 0,149,155,188,136,148,222, - 80,233,156,184, 2, 49,169,169,187,150,176, 29, 51,141,170, 81, 44, 24,118, 34, 41, 55, 84, 18, 17,119, 27,178,149, 5, 25, 17, -138, 68, 2, 24, 6, 29, 17, 43,204,133, 73, 48,202,209, 10, 10,195,177,100, 27,132,216, 84,135, 33, 19, 99,249, 67,221, 65,136, - 75,131,143, 9, 57, 72, 29,164,244, 31,203,116,222,202,209, 36,169,149, 76, 98, 1,237, 49, 17,162,154,151,248, 32, 18, 20,138, - 12, 49, 51,113,100,108, 38,196, 12,110, 6,110,197, 47,148,114, 86,117,145, 17,163,224,136, 34,130,196,227,133,188, 64,234,125, -100,172, 91,249,230, 72,202,216, 23,118,157,111, 34,140, 65,220,192, 13,152,197,204, 11,122,182,184, 46,204, 33,231,236,217,198, -254, 60, 35, 3,141, 30,134, 29,140,135,139,110, 72,184,244,219,205, 60,231, 84,118,168, 35, 92,171,188,119,221, 0,144,200,174, -239,219,156,250,199, 71,199, 18,171, 50,222,160, 18,157, 96, 44, 52, 97, 36, 2,194,156, 51, 17, 74, 96, 4,204,170,196, 68, 44, - 59,139, 27, 2, 98,202, 58,174,226,128,204,149, 0, 82, 78,230, 10,238, 69, 61,173,166,104, 30, 16,213,161, 75,189, 20, 46, 57, -148,124,236, 59,241, 16, 24, 2,141,204, 1,216, 1,249, 93,221, 17,202, 36,216,208, 11,134,146,120, 23, 63, 87, 32,222,205,102, -156,118,235, 85, 3, 45,175, 0, 40,151,109,182, 16, 48,111, 50,161, 91,113,184, 18, 34,216,136,138,223,233,141,202,142,220,221, - 60,165,145, 58,134, 82,158, 97, 5, 44,236,224,128, 54, 46, 13,112,252, 2,193, 13,140, 92,208, 45,227,206, 72, 58,230, 80,136, -212, 20, 28,220,148,133,124,124,165,149,128, 13, 58, 58,168, 2, 49,144,153, 35, 59, 32, 35,170,145,176,131, 33,102,247,113, 69, -235,232,136,226, 0,223,250,240,189,215,175, 46,159,189,126,189,119,116,122,124,112, 60,228,116,120,116,242,209,227,199,127,255, -159,255,233,147,247,159,204, 14, 78,187,245,122,211,182, 77,108,204,198,223, 99, 36, 25,221,229,229, 70, 88,238,143, 76,105,200, - 60,198,151,194, 24, 30, 34,118, 36, 22, 6, 51, 51, 37,100, 22,210,108, 37,226,227, 8, 76,130, 12,174, 62, 42,253,136, 2, 22, -220, 27, 1, 3,145,132, 42,166,190, 7, 55,116, 2,114, 20, 97,150,212,117, 82, 53,136,168,109, 79,130, 6, 56, 12,131, 90,206, -121, 0,112, 10, 50, 12,109, 85,113,234,219,122,182, 31,235,250,238,230,162,221,172,211,160, 16,132, 9, 37,136,153,247,125,118, - 51,115, 60,168,130, 8, 95,221,109, 73,162, 19,181,155,139, 24,115, 53, 91,196,170, 78, 93,207, 28,166,123, 7,174,221,197,211, -159,206, 30,126, 70,177,202, 67, 27,226,116,232,183, 33,134,170, 10, 60, 9, 8,118,116,242,208,146,254,211,175,190, 94,183,173, -106,142, 85,125,125,127,217,246, 29, 35, 45,246,102,160,108,168,163,155,209,113,214, 76, 82,233, 8,102,171,170,208, 15,185,237, -251,131,249,236,106,185, 92,109,214, 85,172, 76,253,243,215,111,212,108,218, 52, 68,146,186,252,224,248,192, 29,134,102, 50,227, -188,152,206,215,109, 50, 75,132,118,151, 7,205, 57,109, 54, 33, 68,101,234, 52, 75, 53, 5,224, 62,117,145,188,150, 70, 45,109, - 87,173, 84,205,116,126, 80, 87, 13,199,208,247,171,118,187,241, 48,161, 80,187, 57,176, 19,134,183, 23,103, 32,181,196,202, 28, -215,203,117, 29,235,199,239, 63, 62, 57, 57,217, 63, 60, 66,130,229,205,117,219,109,159,189,120,243,197,179,103, 87, 55,183,151, -119,119,247,171,245,195,195,131,127,253,163, 31, 46, 38, 21, 98,216,182,221,147, 39,143,254,240, 15,255, 96,182, 55,187, 57,123, -253,246,197, 43,170,164, 53,171,192,191,254,229, 87,183,171, 13,171, 47, 98,245,222,209, 17, 34, 25,162, 21, 91, 3,148,150, 56, - 56, 18,144, 23, 87,133, 19, 22,127, 61, 18, 33,163, 20, 57, 76, 49,113,176,101, 51, 36, 42,151,114, 70,212,148,152,131,144,185, - 27,139, 20, 18, 84, 57,200, 19, 82,206,137,208, 74, 63,221,205, 84,141, 4, 20, 52,132,128, 14,157,246,132,224, 74, 49,144,187, - 39, 29,132,136,145,204,119, 68, 39, 2, 17, 6, 36, 6, 36,194,156, 70,213,154, 32,230,114,229, 54, 99,137,229,168, 84,172, 32, - 37,196, 65, 14,217,115,145,183, 89, 9,116, 40,136,160, 57, 48, 9,244,222,165,196, 33, 84,130,185, 48,164,152,193,156,208, 17, - 9, 28,187,161, 39,148, 16,131, 59,100,176,194, 44, 1,112, 5, 45,167, 79, 69,140, 81, 0,217,114,202,217, 16,133, 3,152, 57, -149, 7, 17, 96,168,234,161,239,221, 44,103, 85, 65,231,152,250, 97,218,230,166, 26,241,173,101, 58, 33, 18,134, 60, 8,113,172, -106, 53, 53,119, 36, 10, 33, 20, 82, 74,113,110,131, 38,224,236,224,236,184,105,245,118,181,124,255,112,143,130, 12, 73, 53,229, - 80, 69, 14, 1,204,221, 13,171,106, 72,189, 14,137,133, 57, 4,200,166,217, 68, 48,114,116,194,220,182, 18, 5,153,115, 2, 51, -101,230,148,180,138, 76, 84,126,224, 86,248, 96,142,230, 68, 6, 10, 0,217, 92,125,168, 36, 84, 18,248,111,255,234,223, 22,188, - 4,130,145,196, 18,105,247,223, 96, 99,220, 45,151,102,177, 67,129,179, 48,150,226, 37, 33,243,152,163, 25, 5, 67,133,162,190, -227, 12,239,216,140, 59,146,243,248,230,244, 24,248,254,110, 57,159,205,137,208,137,220,157, 75,244,222,169, 48,136,177,212,247, -203, 11, 1,125,135,141, 20,119, 27,209,232,163,119,148,113,244,131,148,222, 6,150,238,217, 46, 86, 50,106,194,139, 43, 29,208, -203,124, 9, 11, 58,125,196,178,235,142,130, 9, 64, 99, 90,157,145,129,128,169,152,177,199,253, 9,128,161, 19,145, 20,202, 57, -146, 27,242,147,135,135, 95,125,253, 18, 29,231, 7,251, 37,149, 22, 9,126,249,213,211,195,197,252,247,255,248, 79, 89,252,201, -183, 62, 6, 75, 67,159, 37,196,113, 13,129, 94, 74, 6,166, 94,202,124, 86,128, 97,101, 54, 88, 38, 93,128,194, 34,177, 54, 45, - 27, 32, 41, 60,168,178, 62,197,194,147, 46,135,148, 49,236,244,206,233, 42, 68,232,142,194,113,236,223,231, 68,147,154, 56, 32, -139,182, 27, 4, 96, 97, 27, 6,138, 21, 32,181,171,246,226,237,205,208, 15,135, 71, 7,199, 15, 14, 95, 61, 59,115, 16, 64, 4, -142, 66,182,221,220, 1, 5, 27,202,245,183, 21,204,205,100,218,181,237,243,215, 23,155,174, 95,109,214,191,255,227,223,137,177, -238, 84,171,186,217,110,182,142, 74, 50,109, 22, 7, 15, 30,191,135, 0,200, 28, 66,163, 82, 85,211,125,145, 10, 88, 8, 40, 86, - 49, 15,195,116, 58, 31,134,141, 43,133, 56,177,220,159,189,126,246,205,213,165, 57,108,219,109, 63, 12, 65,120,221,118, 67,202, -154,117, 82, 53, 76,187,139, 10, 0, 19,215, 85,181,221,118, 41,167,194, 74, 83,205, 65, 24, 0, 55, 67,234,115, 58,156,207,213, -248,110,189,221,111,164, 31,146, 33, 12, 67,222,110,151, 7,243,153,231,182,213, 84,197,166,215,244,118,121, 43,192, 7,211, 57, - 7, 1,162,170,170, 73,234,162,192,117, 2,194, 88,178,166,243,197, 1,152,170, 42, 17,230,148, 2, 85,235,118, 11,224,192,113, - 58,169,137,176, 31,134,118,181, 58, 56,122,220,181,119, 65,234,201,116,250,254,183,222,127,242,228,201,241,131, 39,200,184, 94, -223,191,189, 56,127,254,252,245, 23,207,158,189,188,184,184,190,187, 27,134,244,195, 15,159,252,249,239,253, 94,141,116,183,186, -147, 88,127,255,179,239,252,228,223,252, 4, 65,159,127,241,243,182,235, 14, 63,122,239,171, 95,127,121,116,122,216,131,254,242, -139,167, 13,242,233,222, 94, 16,174, 98, 33,111,163, 3,198,200, 68,193,193,134,156,133, 68,132,163, 84,230,214,165,158, 74, 60, -128,202, 30, 30, 75,112, 86, 42,210,221, 66,140, 9, 5,195,224, 57,198,138, 0,128, 40,196, 88,254, 81,182, 44, 36, 0,160,102, -204, 92, 14,188, 99,163, 5, 16,208,103,117,227, 0,170, 25,221, 4, 2, 51,155,155,102, 37, 4, 34,204, 96,104,238, 4,117,224, -193,193, 29,155,170,118,192,156,179,155,197,170, 22,192,193,178,234,144,213, 3, 11,128,169,187, 8,163, 35, 35, 40, 64, 49, 79, - 16, 11, 83, 49, 2,138, 26, 40, 50,123, 80,132,161,119,115,107,154, 72,200,155,148,104, 7, 1,136, 65, 12,209, 13,250,156,144, -160, 14, 21,160,113,144, 29, 66,203,119,174,185,210,123, 97, 9, 65,115, 46,113,240, 40,236, 4, 68,200,140,229,248,203,228,224, -216, 37,133,189,189,227, 15, 63,118,162,233,209,254,182,239, 60, 13,149,132,242,136,231, 42,152,102,102,138,177,241, 34,133, 5, - 10,129,205,157,133, 98,168,145,137,136, 68, 2,185, 27, 88,202,249,102,189,158,197,176,183, 88, 40,129, 48, 85, 85, 99, 96,238, - 26, 67,148, 24,135, 52,184,186, 4, 97, 9,102, 90, 80, 5, 33,196,108,234, 73, 41,112, 54,232,219,174,174, 36,214,181,185, 49, - 99,224, 80,172, 80,224, 86, 70, 82, 37, 89,164, 6,105,232, 34, 83, 12, 81, 36, 12, 89,249,239,254,230,223,149,155,203,168,152, - 48, 55, 47, 46, 36, 42, 48,229,241,244, 75,165, 4, 84, 18, 47, 69, 41, 50,190, 0,138,102,200, 84,113, 7,186,255,205,240, 32, -251, 8, 57, 68,128,209, 38,141,194,114,115,119, 23,235, 70,202,216,164,136,149,199,151, 45, 20,120,157,255,102,182,236,102,134, - 40, 5,248,136,192,224, 90, 52, 78,224, 86,172,176, 99,207,110,215,204, 31,149, 91, 35,210,101, 71,151, 87, 45,119, 81, 87, 21, -166, 29, 14,186,132, 94,199,187, 23,224, 78, 38, 69, 64,130, 96, 14, 6,158,179, 23,196, 40, 16,113,112, 52,128, 92, 42, 12, 33, - 78,132,245,215,223,188,152,207,102,211,217, 66, 85, 69, 36,117,253, 23,223, 60,253,206, 71,143,154,217,222,211, 47,254,249,213, -235,179,217,164, 97, 33, 34,118, 85,150,186, 84, 67, 72, 4,119,248,156,113, 40, 8, 94,138,178, 68,236, 8,110,137,136,199,236, -100,217,250, 35,192, 24,231, 31,191, 57, 83,123,167, 83, 4, 0, 0, 67, 98, 68,169, 38,211,122, 58, 51, 55, 10, 97, 44, 34, 32, -131, 25,215,117,217, 68,129, 59, 50,101,213,155,183,183,128,188,152, 53,251,135,123, 95,127,254,179,156, 83, 30,218,178, 92,108, -183,219,118,179, 74,195,192,210, 68, 78,149,216,100, 50, 91,175, 86,231, 23,111,239,214,155,190,239, 62,251,214, 39,235, 28,154, -233,193,116,214,104,234,209,114, 61,153, 30, 61,122, 63, 72, 76, 67, 87, 46,145, 55,103,111,246, 15, 79,134,187, 55, 85, 93,117, -171,107, 98, 86,245,170,153,185,235,221,197, 11,115,208,212,255,226,203, 95,127,125,113,217, 84, 53,184, 95,223, 47,137, 1,129, - 82,202, 41,107,100,170, 98,133,227, 26,197, 1,161,212, 77,187,161,119, 3, 38,202,170,219,174,175, 66, 96,166,229,106,125,114, -112, 52,155, 86, 73,253,205,213,125, 19, 4,137,186, 52, 12, 89,217,237,126,185,204, 40,119,109,219,246,105, 94, 77,132, 5, 17, - 24,189,138,145,128, 85, 19, 19,228, 62,183,219, 21,179, 68, 65, 70,234,251,126,181, 93, 71,230,126,187, 76,106,219,110, 45,113, - 98, 72,129,104,187,190, 95,223, 95, 87,147, 61,142, 97,187, 93, 70, 9,199,167,199,239,127,248,240,209,163,247, 66, 93,117,219, -213,253,253,213,171,231,175,159,191,126,243,229,203,215,207,222,156,173, 54,237,209,108,246,147,223,250,193,191,250,244,187,219, -161,223,164,116,184,191,255,147, 63,249,253,143, 63,253,240,250,226,205,179, 95,253, 42,206,103,241, 96,246,171,159,255,242,238, -126,121,125,183,252,197,207,190,124,114,120,112,180, 55, 33, 42,149,204,157,224, 30,177,232,109,136,136,153,132, 66,193,252,154, -231,114,220,226, 29,228, 5, 9, 11,253, 36,231,172, 59, 84,118,193,248, 49,145,170,230,156,153, 48,231, 60,168, 85,204,204,108, -106, 99, 6,112,247,108,124,247, 73, 14, 33,164, 60, 56, 88,202,137, 72, 0, 32,171, 5, 41, 59, 87,178,172,194, 12, 68,197, 48, - 19, 89, 2, 99,182,162, 55, 34, 44,122,107, 51,115,235,186, 54, 48, 3,148,103, 42, 0,144,250, 56, 76, 41, 42, 77, 38, 52,181, -130, 39, 35, 70, 32,108,219,108,169,112, 99,112,200,102,238, 2,196,196, 10, 24,136, 71,214, 58, 88, 25, 40,101, 27,112, 76,206, -193,152,108, 30,143, 79, 20, 99, 44,172,180,130,180,101, 36, 3, 39, 66, 97,212,108,106,227,136,118,221,246,188,183, 56,253,240, -195,215,175,207,126,241,249, 47,117,232, 6,135,161,109, 39, 76, 37, 33, 3, 6,196,140, 72, 67, 26,136,184,142, 21, 10,231,148, - 74,241,189,132, 80, 89, 68, 85, 83, 30, 8,168, 27,172,107,219,147,189, 61,138, 1, 29,153, 48,229, 30,220,202, 3, 54, 21,174, - 53, 97, 78, 9,192,153, 69, 66, 64,112,115, 3,116, 18, 54, 51, 52, 11,149, 56, 16, 2, 72, 12,106,224,166,170, 94,222,145, 8, - 32, 18, 3, 65, 55, 40,130, 51, 19, 11,153, 58,130,105,118,254,219,191,250,139,114,235, 39, 34, 40,110, 39, 44,250,164,241, 27, -222, 9,162, 10, 72,160,244,160, 0, 28,184, 44,251,192, 10,218,144,136,220, 0,242,120,133, 25,161,137,163,103,124,204, 74,150, -147, 38, 11,231,190, 85,140, 77, 32, 96, 66, 26, 17, 6, 99,223,169,156, 84,137, 0, 73,136,118,211, 69,212, 2,189,113, 99, 70, -112,163, 93,135,179,240,139,127,211,159, 45, 30, 13, 23,220,181,148, 70,142, 36, 90,121,203,149,166,214, 72, 10,222,169,172,199, - 79,196, 88,133, 2,164,209,137, 87,102,124,192,132, 72, 94,244,214, 60,210, 48, 16,193,204,247,231,147,179,243,183,203,213,102, -177,191,215, 76,102, 6,214, 84,225,151, 95,127,211,109,183,191,253,219,191,181, 89,221, 29, 28, 61, 58, 57, 61,190,191,190,110, -166,115, 68, 50, 51, 34,161, 81, 15, 89,122,218, 12,163, 40,158,222,121,177, 97,100,254,184,103, 29,241, 14, 0,174, 90,190,141, - 29, 63,109, 12,137,151, 2, 55,114,160,114, 23,113,111,230,123,210, 52,174,234, 90,198,127,228,110,204, 2, 14,150,148, 8,213, -140, 0,134,110,184, 95,174,171,201,100, 50,173,143,222,123,120,241,242,213,182, 85,228,144, 54,215,201,121,115,249,114,200,192, - 97,226,158,154,104,211,105, 83,207,246,110, 46,175,222, 92,190, 93,110, 58,176,252,225,123,159,196, 88, 31,157, 60,212,148,182, -247, 23, 44, 18,235,186,105,154,155,139, 87, 57,219,226,240,232,246,229, 47,110,175, 47,165,158, 69,242,197,193,131,118,115,159, -213,235,201,140,114,187,217,172,235,217, 65,168,234, 77,187,250,249,151,191,126,121,121, 53,153, 76, 98, 85,119,221,118,211,118, -204,148, 82,114,176,110,200, 44, 88, 87, 77,153,166, 33,161,186,243, 56,136, 76,229,173,172, 94,134,242,142, 64,109,223,214, 49, - 62, 60, 62,185, 90,222,247,195, 80, 7,100, 32,116,157,206,230, 30,235,117, 55,228,182,159, 68, 86,237,212, 97,179,109, 1, 16, - 29,134, 60, 48, 7, 51, 95, 45, 47,103,243,253, 89,211,112, 96, 52,239,115,150, 88,245,125,127,115,115,141,104, 36,141, 84,149, -112, 68,235, 84,109,182,127, 84, 85, 53, 73,156,207, 22,143,223,123,252,224,225,241,124,190, 24,210,176,186,191,123,115,246,230, -217,179,151, 95,191,124,241,213,139,151,175,222, 94,244,195,240,221, 7,199,127,248,217, 15, 30, 30,157,172,214,183,125,238,255, -228,143,254,240,119,126,239,183,173,239,159,125,241,139,126,232,223, 92, 94,118,195,246,243,207,127,169,174,151,175,222, 6,243, -227,189, 89,211,196,210,207,200,238,129,199,250, 76, 89, 67,141, 45,118,226,146, 81, 99,161,162, 51, 67, 26, 9,168,238,227,156, - 56,171, 21,155, 88, 54, 67, 0, 70, 76,217, 68, 8, 1,133,169, 79, 57,229, 36,194, 99, 52, 15,137, 9,133,201,220, 9,108,188, - 89, 50,185, 90, 63,100, 65, 43,169,110, 71, 80,240, 74,216, 71,140,107, 25,242, 19, 17, 79,235,134,168,100, 21,160,220, 77, 75, - 90,180,124,196, 66, 8, 69, 93, 29, 99, 32, 14,128,165, 40, 68, 14, 72,142,129, 17,198,171, 54,150,165,145, 59,164,108, 34,236, -160,105,116,191,130, 0, 50, 11, 2,150,180,123,249, 34, 89,100,220,157,130,149,250,163,170,250,144,251, 33,187,153, 89,102, 47, - 39, 81,218,177, 16, 32, 48,227, 46, 45,170,102, 44,140,174,125,202,105, 50,121,244,254,251, 63,253,233,207,255,241,167,159,111, -218,237,237,122,141,142,219,161, 61,153, 76, 41,136,132,192,210, 32, 26, 22,141, 38,128,153, 26,128,169, 18, 51,193,184,137,244, - 17, 65,195, 14,112,185, 92, 78, 34, 77,103,179, 18, 25, 47,179, 70,115,207, 89,153, 41,112, 96,102, 43,207,207, 49, 42, 81, 78, -183, 96,166,132, 32, 49,142, 51,132,194, 60, 40,210,214,242,100, 34, 34,192, 32, 92,164,165, 44, 72, 28,213, 64, 45,187, 25, 34, -171, 41,255,251,191,254,183, 35,131, 19, 1, 92,203, 73,121,231,158, 53, 24, 97,133, 64, 59, 93, 86, 41,185, 50,142, 43, 73, 4, - 26, 3,167, 59,242,139,163,185, 25,145, 3,252,102,156, 15,217, 74,204, 31, 8,136,208,115,191,237,243,108, 49,113,117, 32, 67, -167,221, 49,116,172, 30, 16,130, 32,171,155,131,141, 1, 24, 36, 66,231,209, 27, 98,165,149,244, 14, 30, 89,106, 84,227, 94,165, -252, 87, 30,215, 61,229,246,224, 72,110, 99, 84,114, 7, 87,240,119,192, 25, 66, 32,122,215,168, 69,183, 49,145, 96,232, 69, 37, -136, 8,133, 19, 91, 82, 70, 37,203,233, 14, 34,113, 58,169,126,249,229,243,166,106, 22,139, 57, 35,106, 78, 85,160,255,251,167, -255,252,157, 15,158, 12, 67,191,186,191,155,237,237,245,221, 22,176,200, 61,136, 88, 28,129,144, 29,128,136, 17, 75,124,200,223, - 37,147, 67, 8,190,251,109,165, 81,217,190,219,107,104, 42, 91, 96, 98, 26,239,220,184, 83,211,240, 88,103,115,208, 73,179,143, - 8, 33, 10, 32, 2,104,145,113,199,197, 47, 76, 0, 0, 32, 0, 73, 68, 65, 84,195,248, 66, 40,160, 78, 34,166,110,219,157,191, -122,189,190, 95,205,102,179,227,211,163,103, 95, 61,237,146, 78,234,122,179,188,202,198, 64,229,202, 41, 81,112, 90,195,222,209, -233,100,186,215,110,150,111,206,207,151,171, 21, 75,252,173, 31,255,164,170,136, 73, 55,219, 13, 87,147, 88, 77,167,251, 39,251, -135, 15,150,119,183, 55,183,215,148,182,179,131, 19,237, 59, 53,219, 59, 60,105, 55,203,205,166, 77,125, 91,133,234,249, 23,255, -153,171,249, 98,113,220,109,238,239, 87,203,175,207,223,100,131,182,221,204, 39,115,100,124,123,117,221,118,189, 35, 16,146, 1, - 12,195, 16, 67,140, 18, 75,134, 23, 25,205,188,142, 49, 74,220,246,189,219, 88,196, 31, 82,142, 44, 76,156, 52,149,157,206,221, -182,237,134, 97,209, 76,246,246,231,153, 48,245, 3,154, 7,118,142, 77,219, 13,128, 24, 34,103,215, 62,229,108,144, 85, 75,110, -162,106, 26, 4, 77,253,160, 57, 3,147,165, 52,168,239,237,159, 90,110,251,118, 53, 91, 28, 48, 34, 19, 79,166,243,161,223,110, - 55,203,147,147,147,135,143,143, 22, 7, 7, 36, 52,116,253,106,181, 60,187, 56,123,245,250,213,211, 87,103, 79, 95,189,121,123, -115, 51,171, 39,127,252,217, 15,190,245,232, 9,177,220, 93,159,125,255, 7,159,253,215,127,252,147,211, 7, 7,103, 95,127,211, -110,239, 19,249,245,205,237,254,201,225,170,237,159,125,243, 2,187,116,180, 55,221,155,213, 33,160,144,164,108, 36, 20, 72,138, -212,162,216,208, 10, 94, 27,129,193, 93,221,153,216,204,204, 29,193, 8,139, 11,201, 3,133, 33,231,119,147, 83, 51, 35, 36, 34, -206, 57,215,117, 40,115,155, 97, 80, 70, 12,145, 45,229,162,244, 9,204, 62,218, 24, 80, 77,199, 90,148, 91,145, 27,147, 8,131, - 24, 96, 12, 66, 88, 74, 36,132, 36,136,164,230,204,197,116,138,217,181, 92,248,153, 48, 23,233, 23,151,135, 17,187,155,112, 25, - 50, 11, 19, 0,161, 57, 48, 35, 11, 23,252,139,169, 2, 16, 49,169,101,115, 51,164, 32,140,128,142, 76,129, 3, 34, 2, 7, 22, - 20, 6,166, 33, 27,168,198, 58, 20,149, 31, 16,151,192, 68,249,250, 33, 27, 54,149,236,239, 81,172, 86, 41,117,195, 32,133,167, -130, 5,125, 67, 14,224,166,169,172,223, 0,208,173,235,251,165,218,209,227,199,103,111, 46,190,126,254,188,109,183,136, 56,159, - 78,159, 60,120,176, 89,175, 30, 76, 26, 9, 53,135, 24,234,198, 77,205,141,193,179,101, 64,175, 66, 3, 80,208, 91,192,132,229, - 83, 35,196,128,112,115,187,178,212, 29,238,239,129,200,238,172, 6, 14,142,132,194, 50, 10,190, 67, 69,140,132, 98,106, 65, 56, -134,224,238,170, 90,226,207,150, 45,134, 64,196,234,198, 8, 33,134,241,178,174, 30,138,239, 19,220,220,152, 80, 88, 10, 79,145, -169,220,227,176, 79, 3,255,221,223,252, 37,140,205, 93, 26,145, 38, 59, 17,202, 8, 34, 52,103, 14,227, 81, 24,119, 17, 61,220, -157,140,145, 70,155, 94, 57,180, 23,150,123,161, 32, 2,185, 41, 16, 65,185,106, 1, 18,151,165,144, 85, 85,120,251,246,246,225, -195, 7,102, 61,161, 56,184,155, 34,122,129, 19, 20, 70,174,249,136,198,216,189,210, 71, 47,221,142,216,131, 72, 50,126,197,165, - 39,108, 90,152, 57, 6,133,251,232, 64, 96, 6, 89,177,200,174, 93,109, 20, 66, 1,140,175,167,157, 68,157,208,144, 5,118, 47, -138, 17, 86, 7, 56,154,196,203,189,115,188, 47, 8,241, 8,241, 45, 89,170,253, 69,115,119,123,123,117,187,156,205,231,147,201, -196, 0, 68,112,189, 92,159, 95, 94,255,183,127,246,223, 47, 22,245,249,217,249,124,239, 96,187, 90, 86, 85, 61,170, 85, 88,118, -120, 63, 65,230,130, 22, 0,211,221, 76,109, 55, 90, 42,129, 35, 47,223,206,187, 6, 22,151,125, 54,208, 8, 21, 37, 34, 98, 46, -119,175,210, 47,159,236, 29,196, 88, 59,112,121, 67, 0,179,229, 97,204, 18,140, 71, 24, 68,164,213,221,242,252,205, 25, 56,238, -237, 79, 15,142, 31,188,252,250,153,171, 74, 12, 73,217,109,200, 41, 33, 73, 53,157,138,200, 98,198,251, 71, 15,145, 56,245,253, -203,151,175,174,238,238,231,243,253,239,126,244,109, 32, 72, 67,110, 22,135,100,158,134,237,226,224,144, 72, 54,235,229,230,246, -250,230,250,162,158,204,174, 94,127,209,109, 87, 67,183, 78,155,101,156,236,121,185, 75, 54,115,244,108,214,181,119,111,127,241, -213, 87,255,241,167,159,207,167, 83, 98, 90,109, 86,125, 26,110,238,151, 5,233, 92,130, 66, 69,103, 60,169,235,192,226, 35,216, -159, 28,188,156,165,218,126,200,234, 72, 92,196, 41, 85,172, 20,124,219,181,136,120,176, 88, 76,154,201, 98,222,172,187, 36, 6, -185,221, 58, 34, 32,101,205,106, 46, 34, 85,172, 42, 17, 68,234,251,158,133,205,116,218, 52,125,187,149,170,169, 10,154,124, 72, - 64, 20, 24, 35,113,219,183,205,100, 42, 68, 34,149,153, 3, 41, 32, 60,254,240,131,247,223,123, 50, 91,204,193,181,111,187,213, -242,254,242,242,237,171,243,203, 47, 95,188,122,126,126,190,221,110,191,251,222,251,127,246,187,127, 24,172,223,118,221,180,230, - 63,252,147, 63,250,225,143,127,123,232, 54,111,190,249,245,228, 96,177, 66,248,197,175,190, 0,160,231,175,206,222, 60,125,125, -188,152,236, 47,102, 84, 76,200, 14,170, 26, 67, 96,228,178,101, 41,251,134, 24,100,132, 61, 33,148,252,137,153, 49, 11,142, 53, - 69, 39, 96, 66,206,154,136,208, 70,105, 54,140,212, 95, 9, 85, 37,217,220, 82, 6,196,186,138,102,110,250, 78,134, 67,142, 92, - 8,220,194, 40, 34, 41, 37, 36,182, 2, 88,103, 86, 85,119, 15, 68,166,166,154, 10,251,186,196, 99, 98, 93, 87, 18, 1,193, 65, -131, 68,115, 69, 34, 53, 8, 34, 33, 72, 20, 33,100,115, 8,204,229, 33, 80, 38, 11,136, 68,238,196,130,200, 64,152,179,149, 64, -114,161,165,238,208,169, 36, 18,202,169, 62, 27,136, 68, 98, 48,115, 75, 78, 34,196,156,205,136, 88, 36,128, 89,249,128, 32, 82, - 78, 42, 7,179,230,193,195,151, 23,151,157,170,212,245, 42,229,205,144,153,176, 22, 14,204, 6,102, 6,230,185,180,190, 37,178, - 14,105,173,105,241,240,244,118,217,254,227, 79,127,182, 92,111, 75,152, 45,198, 96, 14,236,237,147,131, 35, 96, 38, 68, 22,202, - 57,107,206,150,141,152, 0, 11, 21,197,133, 24, 68, 10,112,133, 28, 84,109,185,222,220,222,223,159,238,207,170,166, 81, 53,220, -217, 49, 2, 5, 70, 84, 7, 66, 39,150, 66, 81, 44, 70, 13,162, 48,228, 84, 76, 44,229,239,184,174,130,170, 17,130, 16, 19,203, -120,209, 66, 38, 2, 3, 74, 67, 22, 44, 1,254,210, 82,245, 16,248, 29, 56, 32,165,196,127,251,215,255,142,198, 7,115,113,217, -141, 18,163, 50,193, 86,203, 84,110, 33,227,131,145, 60, 59,162,150, 50, 49, 73,145,107,192,187,208, 98, 73, 53,150, 33,199, 72, - 91, 30,179,150, 35,231,177,200, 54, 2,243,197,229,245,225,201,177,148,223, 92,244,157, 57,116, 28,195,149,120,209, 59,113, 42, - 34,113,241, 8,150,211, 72, 54, 42, 43,249,113,164,225,102,201, 13,118, 35,176,221,168,103,167, 28,249, 23,226, 18, 32, 2,121, - 23,156, 28,169, 46, 72,129, 0, 25, 32,188,163,199,143,177,202, 29, 91, 14, 1, 13,138,173,155,161,160,233,137,202, 23, 73, 28, - 31, 62, 60,121,254,252, 53, 16, 77,166,179,102, 50, 25,134, 20,132,190,252,250,217,233,225,126, 30,250,171,235,183,119,119,183, - 68, 30,171,186, 60,224,202,142, 98,231, 27, 68, 64,176, 33,149, 83,120,169, 44,143,160, 55,215, 66,254, 43, 99, 36, 87, 43,186, - 75, 26, 65,209,255,191,183,222,120,255, 33, 66, 8,243,227,135,229,231, 55, 94, 67, 10,148,172,236, 78,204, 41,198,180,221, 74, - 29,215,171,237,229,249,165, 14,219,197,254,193,209,233,131,151, 79, 95,164,172,105, 72,125,219,173,111,222, 0, 79,117,243,182, -154, 29,245,235,187,246,254,245,222, 98, 65, 0, 47, 94, 60,255,217,175,191,216,172,183, 31,125,252,221, 15,222,255,176,219, 46, - 93, 83,179, 56, 78,195, 22, 89, 42,219,174,111,222,128, 52,104, 90, 87,245,245,229,197,124,255, 84,152, 86,247, 43, 71,105,215, -171,102,182, 87, 9,197,201, 52,167, 14,101,210,117,195, 47,190,250,213,197,106,243,244,197,203,189,197,220, 29,210,144,238, 86, -235,145,183,231,227,164, 42,187,166,148, 38,245, 52,136,248,110, 83,239, 0,129,163, 35,180,125,251,174, 66, 55,228, 97, 82,213, - 72,152,205,126,248,233, 71, 76,248,249, 87,207,183, 93, 55,175, 66,172,107, 51, 3,146,178,191, 6, 5, 98,110, 87,119,186, 43, -226,215, 49, 70,166,182,221,198,216, 8, 67,144,186, 14,146, 77, 65,147,123,118,207,194,129, 89, 36, 72, 96,108,166,211,111,125, -250,201,163, 71, 79, 66,140, 67, 26,218,174,189,191,187,251,242,217,179, 95, 61,253,230,155,151,175,223, 92,188, 93,212,211, 63, -248,236, 71,191,243,157, 79, 38,179,197,171,103, 95,124,250,201,183,254,135, 63,255,243,253,253,253,231,191,252,231,118,187, 92, -117,237, 23, 95,126,245,242,155,103,147, 73,243,236,215, 79,107,131,147,253,121, 93, 87,174, 70,132, 89,157,152,133, 67,136, 12, -192,229,227, 23,162, 8, 48,129,140,177,246, 50,145,196,146,192, 51, 0,160, 34,102, 24, 13, 56, 0,136,234,202, 28, 25, 17,137, -170, 88, 1,143, 79,124, 22,137, 49,142,127,172, 48, 88, 9,171, 80, 96, 78,158,139,193, 46,165,172,166,165,166,158,135,212,247, - 67, 37, 2, 8, 99,149,164, 48, 55,152,128,104, 58,105, 88,202, 53, 31, 10,184,196,198, 79, 44, 87, 49, 6,150,108,134,204,187, -157, 0,102,117, 34, 38, 38,112, 36, 17, 22, 81, 3, 22, 14,204,229, 83, 38,194, 8, 2, 88,144,225, 84,246,135, 76,196, 66,230, -154,213, 9,203,189,151,144,208,204, 75, 40, 82,221, 0,129, 3,187,186,154,206,159, 60,185,223,180, 95,127,249, 84,115, 98,150, -219,251,165, 17, 34,139, 19, 72, 9,203,144,148, 19, 15,160,229,148,135,156,113, 58, 27, 12,159, 63,127,121,187, 90,169,101, 48, -127,242,240,228,241,163,199,151,215,111, 63, 60,220,219,159,237, 67, 73, 97, 26,228, 97,240,157,156, 90, 40, 20, 73, 81,105,147, - 49,242, 48,162,228,253,250,110,133,174,139,253, 57, 51,131,123,178, 92, 30,196,163, 68,176,212, 17,188, 76, 30, 32,196,160,217, -218,190, 19,198, 24,162, 2, 86,204, 14,144, 76,105,100,107,210,238,105,198,224,218, 15, 10,150,130,112,118,207,217,145,128,145, -204, 60, 59,148, 62, 48, 34,230,172,252,119,127,253, 23,239, 48,181,229, 83,130,229, 39,189,227, 90,189, 83,102,240, 78, 83, 14, - 4, 99,148, 22, 1,139, 72,174, 80,120,202, 16,185, 44,115,124,151,185, 46, 83,136,241,143, 7, 68, 48,117,102, 89,223,223,106, -152, 44, 38,149,155, 35,128,144, 56,148, 28,149,191, 75,221,140, 70,234, 82, 62,246,119, 39,239,119,231,145,200, 99,100,189, 76, -240,129,138,241, 17, 11,212,134,184, 68,125, 74, 27, 23,129, 9,153, 73,118,128,117,112,119, 55,203,133,129, 74,229,116, 11,101, -158,232,239,156, 37,190,243,126, 56,130, 1,238,214, 5,227, 35,150, 16,220, 76,155,166, 18,242, 23, 47, 94, 47,246,246, 98, 85, - 85, 85,221,118,237,102,189,185,190,190,250,193,119, 63,253,228, 59,223,185, 58,123,241,254, 7, 31, 93, 93,188,142,161, 25, 61, - 57, 37,199, 35, 76, 64,174, 14, 52,182,195, 70, 6, 82,201,134, 90, 1,246,152,143,212, 72, 51, 24,249, 27, 5, 68, 51,178, 85, -119, 28, 30, 68,100, 38, 51, 88, 28, 28,149, 1, 44,184, 1,209,216, 35, 6,114, 3, 20,113,207,224, 32, 44,119, 87,119,119, 55, -119, 89,243,193,225,241,193,201,226,236,213, 89,215, 14,155,229,101,151, 90,164, 41, 87, 65, 98,147,123,219,172, 46,254,195,127, -250,143,255,240, 95,254,233,243,159,255,244,191,252,236,243,203,187,251,164,233, 71,223,251,221,131,163,135, 92, 53, 20, 23,195, -230, 54,181,247,113, 54,223, 59,121,184, 89,173, 40, 86,221,102,189,188,127,219, 76, 23,195,230,126,187,188, 93, 28, 62, 90,222, -189, 69,150,186,158,222, 95,190,238,218,141,166, 97,177,127,188,222,220,253,243, 55, 79, 89,228,236,250,250,110,185,100,166, 24, - 4,157,134,212,219, 8,141, 40,215, 24,202, 57,101,213,166,174,130,132,221, 55, 12,230,214,132,255,143,169, 55,251,177, 45,185, -206,252,214, 16, 17,123,159, 49,231,155,119,190, 85,117,107, 96,145, 44,138, 67, 73,108,146, 18, 7, 73,109, 11, 26, 72,169,219, -109, 73,221,104,184,209, 15,134, 97,192,126,243,191,100,216, 64,195,176, 13,195, 48,108, 9, 80,183,221,118,183, 68, 81,226, 88, -243,157,115, 30, 78,230, 25,247,222, 17,107, 45, 63, 68,156, 44,189, 93,178, 88,200,203,147,251,196, 94,177,190,239,251,125, 94, - 64,155,174,203,231,156,168, 38,179,135,251,123,119,183,183,167,203,213,217,197,117,191, 55,154,204,175, 85, 99,191,234,101,230, -129, 74,146,148,174,174, 47,178,236,148,136, 45,165,126,175,234, 87, 53, 0,132,224,205, 52, 38,109,154,102, 54,159, 48,234,173, -205,173,221,221,189,157,173, 61,118,161,141, 93,168,195,237,251, 15, 31, 60,126,253,246,157,187,200, 20,155,213,116,122,245,242, -224,229, 47, 63,252,244,233,171, 87,167,231,215,211,233,244,209,254,173,255,228,219,223,189,127,123,135,125,208,216,126,231,251, -223,125,255, 55,190, 57,187, 56,189, 60, 59, 58,191, 56, 89,116,177, 30, 15,125, 8, 47, 62,125,222,206, 86, 91,227,225,112, 80, - 97, 89,252,113, 50,115,236, 56,167, 65, 0, 50,205, 42,132, 42,243, 86,147, 9, 17, 99,142,171,130,186,181,171,192,196, 20, 36, -137, 57,199,153,194, 4,102,142,124,206, 62, 49,123, 85,209, 36,196,236, 8, 85, 85, 68, 85,129,185, 88,205,204, 20,137,193,160, - 14,190,237,162, 33,120, 42,242, 90, 76, 41,169,152, 89,238, 84,206, 28,115,114, 92, 87,158,208,213,222,173,145,168,104,144,227, -232,232,216, 1,160,115,164,146, 61,151,132,128,236,179, 11, 30,156,203,239, 6,246,161, 38,231, 16,160,170, 2, 50,171,105, 76, -234, 28,154,129,137, 9, 24, 57,151, 68,136,153, 61,145,101,209, 8, 67, 85, 1,114, 65, 56, 1,128,168,100,109,137,139, 63,159, - 20, 23,210,180,200,207,159,189,154, 76,231,147,171,235,243,203,137,130,142, 7,195,235,197,124,213, 70,116, 28, 8, 29,168,247, - 62,207,175,177,233, 58,230, 48,222,252,249, 7,159, 30,158,158,128,161,169, 18,113,221,235, 93,205, 22, 53,200, 59,247,239,147, -115, 0,172, 42, 93,138,148,133, 17, 53,239,188,161,137,149, 74, 44, 51,200,104,107,239,221,124, 21,231,243,249,173,237,141,170, -174,146, 90,236,186,224, 42, 34, 66,162, 12,129,202,198,246,162,246, 1, 74, 18, 3,169,234, 32, 6,170,209, 57,159,151, 20, 25, -197,115,131,141,101,164,164, 81, 69,156, 99,118,216,117,130,102,204, 84,101,124, 2, 0,170, 33,145, 42,152,196, 40,137,255,244, - 71,127, 88, 42,233,138,160,154,199,237,140,113,207, 14, 60,203,139,247, 53,234,203, 40,135,126,138,173, 97, 61,185,175,231,204, -188,174,206,219, 98,202, 18,120, 9, 60,173,211,173,165, 14, 80, 23,173,108,109, 12, 37, 38, 43, 43,110, 83, 48,212,210, 21, 72, -228,214,205,128,134,120, 51,178,150,217, 58,123, 94, 11, 26, 31,114,247, 8,150,165, 5, 17, 21, 95,189, 3,200, 77,193,133,131, -137,159,155, 39, 1, 13, 21, 81,212,242,130, 4, 50,244, 6,215, 65,214,245,250, 41,123, 54,160,168, 72,153, 91, 99, 55,152,245, -140,118, 22,181,221,237,205,167,207, 94, 69,177,254,112, 84, 87,125,231,168,109,154,159,126,248,105,205,221,254,254,206, 98, 54, -255,248,195, 95,157, 31,191, 10,140,190,238,177,243,236, 3,177, 67,200, 45, 34,172,146, 84, 4,137, 75,240, 67,109,109, 57, 45, -237, 58, 57, 65,199,107, 33,152,156, 47,191, 44, 94, 39, 6,212, 56, 56, 19,243,245,168,191,177,153,177,154, 26, 99,201, 70,100, -174, 89,222, 43,117, 29, 34,115,229,231,215,179,179,195,195,148,236,238,163,135,163,205,209,171,167,175,186,110,217,174,218,212, -169,167, 4, 0, 0, 1,152,122,220, 45,151,179,207, 94, 30,126,248,236,229,249,228, 26,193, 0,221, 55,190,242, 53,239, 43,212, - 68, 68,177,185, 6,145,219, 15,223,214,152,212, 85, 34,214, 76, 39,189,193,184, 10,117,179, 90,176, 27,174,218,149, 25,110,108, -236,116, 77,211,182,203,225,104,179,238,111,118,205,236,147, 79, 62,252,229,179,231,249,249,152, 92, 93,119, 49,153,218,206,198, - 24,145,150,171, 6,214,215,152,252, 91, 78, 41,169,105,175,174, 3, 59, 85,181,242,234,197, 94,221,219,232, 15,135,189,161,129, -142,251,245,107,251,123, 41,197,103, 71, 39,128,174,235,154,141,209,104,119,107,235,236,106, 42,169,171,124,157,105,209,170,138, -190,114,206,123,199, 8,224,188,223, 26,141,103,243,105,138,157,239, 15,219,216, 69, 81,116,158, 9, 71,181, 75, 93, 28,141,199, -203,118,117,189,152,111,237,237, 60,122,243,173,251,175,189,190,177,189,139,200,211,235,203,195,195,195,207,158, 63,251,232,211, -231, 7,103,167,231,151, 83,231,232,155,191,246,213,175,127,225,109, 54,152,207,231,247,238,237,127,227, 27, 95,221, 24,143,142, -159,127,150, 40,117, 8,191,248,228,179,189,205,141,195,243,139, 79,126,249,241,198,160,191, 53,234, 83,161,129,228,203, 98, 6, -157,251, 12,228,102,202,197,108,200,142,204,178, 26, 68,134,150,123,125, 45,231,119,214,119,238,164,234,152, 45,143,216,217,211, -134, 64,128,206,187, 36, 41,207, 68,140,148, 84, 76, 85, 83, 44,223, 40, 67, 41,166, 44, 66, 68, 5,160,220, 58,131, 25,231, 74, -222, 5,206,200, 11,202,205,116,196,142,136,201, 57, 70, 36,209,168,128,149,119, 42,121, 61,146,145, 37,204,132, 49,199,115, 28, - 1, 0, 51, 3,100,249,151,137,152, 43, 95,238,174,148, 61,135, 22, 37, 86,235, 43,133,138, 58, 31,216,145,103,102,239, 16, 73, -147,196,100, 89,196,205, 59, 37, 98, 86, 80, 19,201, 58,115,169, 53, 67, 50, 85, 83,153, 38, 89,118, 58,157,207,155, 85,211,165, - 14, 81, 99, 23,163, 72, 74,201,133,208,136, 38,226,202,129, 3, 67,132,174,137,139,148,252,198,232, 98,114,125,116,122,214,117, -157, 35, 66,132,183,222,120,216, 38,157, 93, 95,125,229,209,221, 97,221, 47, 36,154,210, 83,103,142,125,130,114,196, 85,161,103, - 0, 42,146, 36, 2,152, 39, 15,166,199, 23,147,205,158, 31,142,134,170,128,104,142,125, 89, 24, 48, 6,226, 76,205,117, 76,128, -220,165,148, 99, 77,204,222, 0,152, 28, 33,139,196, 44,149,147,154,102, 39, 18,145,129,117,169,147,100, 68,168,102, 10,200, 8, - 68,152,161, 5, 42,134,136,150, 50, 90, 1, 29,115,140,202,127,246,163, 63, 44, 13,117, 6,136,180, 70, 13,220,212,244, 25, 34, -115,185, 94, 97,129,245,174,119, 41, 89, 40,200,128,150,242,156,173, 37, 12, 85, 64, 46,173,132, 57, 59,191,238, 87, 53, 34, 48, - 68,239,252,233,233,209,206,173, 59,146,186,204, 3, 64,200,190, 32,204,203,250, 60,122,150,176,149,149, 12, 85,126, 67, 20,163, - 75,166,246,174,215,180,140, 4,142,110,140,246, 88,108,129,134,146,241,110,192,197, 74, 77,159,215,196, 26,163, 65, 38, 80, 32, - 50, 64, 42, 48, 28, 67, 36,203,183, 24, 64, 34,244,148, 77,186,229,103,223,124,167,104,253, 90, 37, 71,126, 52,170, 62,121,246, -114,208,239, 87,117,221,239,247,235, 58, 44,166,211, 15,159,159,190,125,123,188,119,247,222,203,167, 79,190,241,205,127,244,226, -179,143,123,253,126,127,180,157,219,169,204,178,233, 84,178, 11,146,202,235, 15, 11,180, 30,203,175,120, 45, 55,184,178,139, 89, -123,224,136,125,233,154, 93,247, 30, 32, 81,232,143,171, 94,207,180,224, 76,193, 0,156, 67,100,141,137, 72,129, 28, 57,159, 59, -160,175, 46,167,103, 39,167, 10,112,239,222,237,126, 21, 62,253,240,227, 4, 56,191, 60, 97,239,129, 61, 98,109,237, 60, 38, 29, -247,181, 23,120,115, 52,232,247,122, 73, 82, 23,211,112, 56,252,250, 23,191, 38,113, 21,170,254, 96, 99,163,237,162,247,117,175, -223,107,187,180,156, 28,167,118, 89, 15,119,134, 27, 91,166,182, 90,204,134,227,205,170, 55, 34,166,174, 89,228, 12,180,196,184, -177,185,141, 93,252,241, 47,127,230,234,129,129,121,162, 69,179, 66, 38,199,212,180,109, 94,171,173, 37, 38, 92,191,188,177,137, - 73, 84, 6, 85,133,192,154, 61,147,101,182,192,189,173,173,175,190,253,218,157,157, 29, 3,119,126,189,152, 45,150,200,214, 52, -157,247,110,119,103, 43,248,234,233,241,177,103,232,215,189,202,249, 36,186, 22,184, 32,182,173,170, 5,143,222,133,170,215, 7, -213, 94, 85, 17, 82,155, 98, 21,124,191,223, 31, 12,198, 4,208, 27,110, 62,120,231,157, 55,191,244,222,254,189,215, 67, 21,154, -249,245,193,171,103,207, 62,123,250,228,229,171,151, 71, 39, 7,103,103,231, 87,215, 95,121,252,250,251,239,190,123,255,238,107, - 81,210,214,206,206, 55,191,245,235,175, 61,186,127, 61, 57,107,154,217, 39,159,124,244,226,244,116, 62,157, 93, 78,174,143, 94, - 29, 45, 39,179,157,209,112, 88,215, 55,222, 93, 34, 10,222, 37, 77,156,193,179,200, 88, 54, 84,107,110,117,233,207,225,181, 50, -134,204,222, 51,235,122, 39, 73,228, 20,208,179, 47,137, 15, 36, 68, 82,149, 54,118,193,249,108,146, 17,137, 18, 59, 38, 16,133, -224, 3, 50, 90, 30, 95, 40,103,103, 92,105, 66,101, 2, 68,102,242, 76, 92,204, 8,204, 46,228, 94,132,138, 93, 76,194,232,128, -144,115, 43,142,170,130, 49, 51, 98,110,197, 96, 36,172,214,158, 22, 38,151,127, 83,196,236, 28, 35, 81,169,137,203,143,122, 82, - 67, 32, 32,145,132, 0, 57,205, 0,104, 92,210,161,104, 42,128,192,193,103, 19,142, 9,146, 39, 48,131,148,208,231,141,129,187, -209,226, 8, 41,153, 1, 98,135, 41,132,122,190,108, 22,171, 85, 82, 80,181,220,188,218,175,195,100,186, 0,128, 6, 81,201,192, -120,217, 9,142, 71,211,101,243,243, 15, 62,158, 47, 22, 25,173,222,239,213,222,135,243,201,213,151,239,223,221,223,220,138,170, -160, 72, 76, 42,160,166, 61, 23,216,249, 76,177,245,206, 35,115, 62, 91, 67, 85, 49, 51,170, 77,102,203,118, 53,223,218,222,240, -189, 26,217, 35,113,215,117,206, 17,135, 0, 70,106,106, 42,142,208, 8,219,166,243,140,136, 44, 26, 93, 30,251, 50, 33, 17, 13, -153, 68,196,214,125,212,162,154, 67,203,204, 78,147, 16, 97, 8,228, 66, 21, 69, 40, 59,199, 25, 21,208, 36,121,231,204, 12,243, - 46,238,207,255,228, 71, 96,160, 32,165,200, 54, 79,182, 72, 0,192,174,108,191,168,240, 24, 0,128,202,122,187,228,101, 11,228, - 29,203, 42, 60, 71,128,141,224,230,159,222, 48, 13, 21,145,137, 75,119,135, 25,212, 85,117,126,114,234,251, 27,126, 29,145, 42, -131, 26, 25,185, 27,141, 49, 71,103,179,129, 68, 11, 3, 6, 74,176,215, 44, 99, 35, 53, 7, 74, 11,238, 38,163, 91,202, 95,201, - 76, 1,137, 17, 5,184,172,186,217, 21,202, 78, 94,200, 19,123, 32,134, 66,154, 51,204,171,223,108,154, 41, 34,167, 34,152, 65, - 78,237, 2, 49, 27,144, 34, 16, 16,231, 16, 22, 33, 0, 27,232,246,206,206,242,250,250,226,122, 62, 30, 13,201,133, 58,244, 24, -245,195,207, 62, 67,115, 3, 94,190,124,241,106,255,193, 27,154, 58,141, 82, 15,135,196,206,135, 42,171,200, 25,129, 74,204, 89, - 53, 45,141,103, 25,250,147, 93,237,133,136,161,107, 36,112,185,224,100,241,245,134,172,192,236,204,180, 63,218,169,122,125,160, - 92, 69, 70,150, 18,128,165,166,201,175, 8, 83,115,217,184,214,181,147,201,252,228,213, 11,235,150,175,191,243, 14,123,247,252, -201,139,235,211, 3,209,174,238,111,197,100,177,155, 85, 85,237, 29,250, 16, 25,157,119, 46,166,238,252,106, 10,128,183,239,220, -121,247,241,187, 10,145,156, 71,224,118, 62, 55,196,224, 56, 25, 46,103, 87, 93, 27, 1,124,187,188, 88, 45,103,139,217,213, 96, -180, 41,113,185,154, 28, 57, 4, 96, 95, 85,149, 11, 30, 36, 61,249,236,131, 31,127,244,113,236,186,121,211,204,166, 83, 1, 11, -176,126, 6,208,242,155, 45,198, 8,107,135, 93, 78, 47,116,109,151,204,250,253, 62,234, 90,212, 55,243,204,119,246,198,151,211, -249,197,245,162,170,170,173,205,209,254,214, 78,219,118,215,179,105, 47,212,103,147, 11, 48,245, 92,157, 92, 93,143, 67, 80,144, -202,123, 2, 76,210,121,230,182, 93, 25, 81,191,234, 85,193, 87, 85,127,181,184,114,190,118,228,137, 45, 37,107,147,116, 41,237, - 61,120,244,230, 87,190,126,251,225, 27,195,141, 45,105,227,114,118,249,228,201,147, 23,175, 14, 15, 78, 79,159, 31, 28, 30,157, - 93,116, 93,247,107,143,223,122,124,255,158, 26, 59,166,119,223,120,248,245,175,191, 71,218, 93, 28, 61,127,249,244,137, 16, 8, -232,214,230,240, 39, 63,254,153,182,114,107, 52,220, 24, 13, 60,121,200,161,142,210,245, 75, 73,173,114, 21, 33,106,238,226,201, -206, 63,242, 57, 41,152,123,148, 68,133,153, 21, 17, 84,193, 52,105,110,246,241,106,150, 84,234, 16,136, 25,193,114,102, 71, 84, - 77,181, 87,247, 8,172,137, 89, 51, 67, 34, 74, 38,136,236, 61, 3, 96, 29, 42, 17, 81, 85,199,156, 97, 91,236, 24, 50, 38, 9, -161, 72,150,128,204,148, 52,121,199,142, 93, 20,245,142,242, 77, 57,127, 71, 99, 18, 52,242,129,131, 39, 1, 76,146, 16, 13,201, - 1,176,169, 8, 42,152, 18,187, 42,120, 66, 80,133,220,149, 9,142,186, 54, 17,147,115, 78, 36,130,129,247,174, 77,137,137,122, -117,149, 13, 67, 34,146,109,136,136, 6, 70,206,121, 35, 51, 66, 38,151, 13, 43, 76,228,216,137,170, 98,206,189, 2, 35, 16, 96, - 39,118,113,117,237, 60,189,126,239,254,178, 89,165,152, 16, 76,212,174,174,175,199,131,254,112, 56,156, 45, 27, 64, 55,139, 66, - 33,184,224,143,143, 79, 46,174,167, 34,137, 8,251,117,245,248,181, 71,199,151, 87,247, 55,134,111,221,221, 71,176,192, 30,157, - 67, 38,118,232,157, 19, 64, 83,173,122,181,227,144, 36,105, 74,228, 28, 5,103,162, 68,144,196,206, 46,175,110,109, 15, 55, 54, -119, 93,168,136,188, 74,116,228,216, 57, 51, 75, 49,153,168, 35,108, 58,149, 24,123,117, 45, 6,160, 90, 85, 61, 85,200,192,112, - 3, 35, 36, 53, 69, 85,207,220, 73, 76, 49, 49,179,247,190,105, 27, 53, 53,212, 42,184, 78,208,146,196,148,242, 36,152, 45,128, -236, 57,195,229,234, 16, 90, 21,254,179, 63,254, 67, 64, 40,115, 47,131, 74,177, 9,146, 17, 18,169,100,170,250, 26,201, 5, 86, -138,188,254,193, 94, 62, 31,165, 89,137,132,181,150, 9, 37,118,104, 72, 25, 32,130, 8, 32, 57, 64, 65,104,160,206, 7,137, 93, - 84, 28, 13,107, 64,159,255,165,220,134, 90, 56,186,133,115,150,117, 95, 51, 53,162,245,202, 4,177, 44,202,243,215, 3, 72, 52, -229,211, 63,159,205, 8,154, 55,249,159,163,211,197, 64,129,214,247,144,124, 74, 26, 57, 36, 95, 40,146,197,169,175,121, 85,165, - 57,172, 91,218,150,180,252,191,101,202, 23, 20,206,197, 38,235,183, 24,229, 69,166,218,120,212,127,121,120,236,125, 85, 85,189, - 42, 4, 23, 66, 77,250,211,143,158,108,247,253,151,190,250,222,225,171,163, 71,111,191,115,118,124, 52,222,216,113,190, 42,246, - 76, 43,142, 87, 0, 2,226,178, 13, 67, 64,226, 27, 76,155,153,170, 8,136, 42, 96,161,142,220, 4, 17,242,146,162, 92,147,192, - 68,135, 59,183,217,179,118,109,142,229, 81,229, 76, 44,187,116,164,139,161, 87,105,236, 76,162, 37,189,184,156, 45, 22, 77, 24, -108, 62,122,252,168,109, 86, 31,252,253,143,167,167,175,122, 27,183, 37,117,132, 22,234, 13, 12, 53,168, 90, 55,117,206, 37, 73, - 23,147,233,197,228,122,177, 92,125,233, 11, 95,249,194,151,223, 71,100, 49, 52,176,184,154,223,122,240,104,255,193,155,231, 7, - 79,102, 23, 47,124,168, 92,175, 47,221, 74,218,153, 52,215, 73, 36, 54, 77,175,215,159,205,174, 57,244, 24, 89, 99,179,152, 77, -254,238,131,159,190,154, 76,135,253,126,215,117,203,182,109,219, 40,160,102, 38, 73, 37,105,126, 30, 21, 44,137,220,136, 64,121, -156,104, 99,231,144,122,189,218, 76,107,239,111,109,143,198,131,193,241,233,229,217,228,170,137, 93,215,117,154,196, 57, 26,246, -122,139,166,105, 98,155,162, 36, 85,239,160, 75,118,181,152, 87,132, 62, 84,140,138,232,242, 84, 91,247, 6,102,170, 73,230,243, - 75, 48,246,222, 87, 33,204, 23, 75, 51,219,191,125,231,189,111,188,255,248,139,191, 54,218,216, 68,194,217,229,233,217,225,171, - 39,207,158,188, 56, 56,120,254,234,240,197,193,201,233,100,178, 51, 30,127,227,205, 55, 95,187,119,111, 54,155,222,187,115,251, -215,191,241,222,131,251,119,206, 79, 14,154,213, 28, 7,189,143,159, 62,175,157, 63,155, 78, 62,251,224,233,102,175,190,179,189, -105,104,249, 41,228,226, 68, 35, 98, 6, 4,239, 88,138,146,136,162,178,174,199, 89, 55,187, 16,218,231,104,223,162, 70, 17, 48, - 19, 38, 17,199,158,185,236, 42,136, 93, 76,217,150, 13,165,246,192,128,215,193, 37,102,118,236, 51,186, 60, 4, 23, 83, 2, 49, -118,107,237, 14,114, 83,118, 46,187, 84, 88,247,120, 56,196,224, 93, 38, 63, 6,239, 12,129, 28,177, 39,176,245,201,193,148,146, -170,145, 15, 85,224,192,236, 68, 68, 82, 71, 76,140,204, 46, 16,162,228, 75, 61, 2, 17, 37, 85, 85,101, 66, 68,144, 36,153,254, -139, 4,204, 14,145,147,198, 20, 37,223, 4, 68, 21, 12, 44, 26, 82,142, 62, 98, 38,164,243, 58, 33,152, 93,193,180,254, 90, 19, -185, 64,200,200,192,216,116, 93, 8,161,107, 83,240,174,233, 98,142, 8, 24, 88,219,182,117, 85, 13,135,131,179,139,203, 65,191, -126,117,114,246,226,240,168,156, 98,132, 91, 91, 27,200, 46, 46, 23, 95,125,120,183,215,235, 25,144, 88,102,205, 35,128, 3,208, -224, 42, 0, 16, 81, 85, 1,196,170,242,165,240, 19, 80, 13, 46,166, 83,135,186,187,187,171, 68, 6,230, 66,197, 33, 0, 65,238, -120, 34,114,162,169,235, 58,102,240,206,229,149, 50, 82,182,132,150,190,114, 19, 41, 59,122,114,130,192, 72, 92, 2, 48,226,200, -229,190,204, 92,183,204, 68,196, 46,171,181,165, 33, 46,103,184,136,137, 72, 69,156, 81, 6, 99,230,238,173,188,221, 32, 80,203, - 48,252, 50,200,230,187, 34,193, 77, 95,105, 25,117,129, 32,195, 52,179,133,116,109,227,206,144,159,245, 61, 32, 39,217, 44, 71, -168,114,161, 5, 51,155,217,198,120,120, 50,153, 33,142, 51,139,147,145,204, 4, 29, 65,150, 3, 51,248,203,138, 22,105, 37,220, -129,235, 6,162,252, 56, 2,161, 19,205,232,211,146,245, 65, 2,180,181,238, 4, 69,190,128,204,230,202,243,176,100,131, 60, 50, -179,164,132, 38,235, 96,238, 58,133,101,152, 35,162,134,134, 6,140,206, 32,183,218,100,217, 62, 39, 49,114,196,200,149, 14, 66, - 64, 49, 27,111,110, 62,186,183,127,120,114, 49, 24, 14,189,115,131,193,232,141,199,111, 29,156,156,253,221, 39,135, 15, 30,221, - 57,124,249,100,213,174, 16, 45,198,198, 73,133,236, 16,179,197,202, 64, 20, 28,131,105, 70, 45,151,129, 29,233, 31, 72, 2, 98, - 6,204,222,192, 84, 5,145,214,136,102, 40,216, 31, 81,231, 56, 10, 34,128,116,157, 1,147, 99, 48,213, 85, 99,230,184, 14, 42, -145,131,215,156,153, 66,118,189, 26,236,136,152,177, 91, 16,210, 98,114, 53, 61,122, 49,186,251, 24, 24,217, 56, 54, 43,147,171, -173,251,111,205, 47, 94,144, 26, 32, 55,171, 70, 68, 76,177,139,205, 59,111,189,139,224, 22, 87, 19,244, 20, 23, 83, 53, 9,152, -150,147,147,233,233,115,195, 42,166, 84, 3,104, 90, 93, 93, 28,246, 7, 27, 33, 84,189,254,230,201,179, 95, 12, 55,246, 70,155, -123,179,243, 87, 72,210, 25,158,206, 86,207, 95, 30,248,135,247, 87,171,101, 18,201,215,210,124,150,172,145,212, 56,118,189, 85, -215, 45,155,166,164,162,181,116,190,156, 76, 46,204,244,139,143, 31, 17,200,209,197,213,116, 25,209, 36,248, 42, 89, 90,181,171, -166,109,150,205, 98,216, 27,222,221,187,117,116,126,153, 52,174, 86,171, 20,171,187,251,123,109,108,143,102,139,205,141,113, 23, -213, 48,133, 48,242, 85, 13,154,144, 67, 4,168,122,155,205,106, 49, 95,173,146, 65,175,223,127,237,141,183,222,250,210, 23, 71, -219,219, 85, 93,167,102,113,117,117,121,121,118,118,118, 57,121,241,234,224,224,236,252,228,226, 10, 76,222,189,255,224,173,123, - 15, 36,117,108,242,131,223,250,214,195, 55, 94,139,203,217,197,201,243, 15,127,245, 33,143, 70, 85, 21, 22,203,197, 47,126,126, -170,177,219, 25, 15,250,245, 0, 16,217,149,234, 32,133, 0, 0,142, 17,152, 98, 18, 3,200, 1,212,148,149,152, 98,205, 54, 34, -114,142, 37, 9, 88,134, 97,229, 86,103, 68, 70, 77, 42, 6,204, 46,105,100, 98, 48, 52,208,212,166,188,216,149, 36, 4,185,132, - 11,213, 12,208,188,243,106,224,152, 50, 78, 82,196, 0,137,125,190,251,103,176, 23,198, 46, 1,162,168,121, 70, 17, 3, 54, 95, -170,239,204,123,135,153, 52,204, 25, 84,198,236,208,136,216, 44,198,232,125, 8,117, 37,162, 73, 51, 6, 7, 29,251,242,158, 54, - 35,176,220, 74, 6, 6, 64,230, 12, 98, 30,106,136, 75, 91,131, 42, 66,118,223, 3,146,115, 62,115,187,141,137, 9,173, 43,130, -170, 97,217,220, 50, 25, 42, 18, 48, 34, 1,118,154, 37,226,114,217, 35, 87, 89,188, 53, 24, 17,242,213,244, 26, 1,246,247,182, - 87,177, 75, 41,129,105,211,196,182,237,136, 56,171, 2,139,229,106,181,106, 1, 44, 56, 78,104,143,238,220,173, 6,253,143, 63, -254,244,219,111,190, 54, 26,141,162, 49, 59, 0,233, 20,146,168, 5, 87, 27, 4, 5, 19, 81,246, 76, 68,102, 16,147,229,150,104, - 83, 49, 37,233,186,173,209,176,204,150,204,132,138, 68, 92,215,150, 36,182, 77, 76, 45, 3, 24,174, 17,229, 8,170,146,245,218, -220,127, 10, 6,228,125,183, 90, 49, 3,147, 15,228,146,197, 14, 0, 12,170,224, 82,210,130, 56, 70, 11, 33, 36, 81, 4,171,124, -136,109, 68,208,188,244, 82, 49,239,193, 33, 17,123,254,179, 31,253, 17,174,239,253, 89, 7,229,245,159, 36, 11,137,246, 57,153, -232,166,196, 47,239,206,214,177,126, 88,247,129,174, 21, 90, 43,204,195,236,135, 33,102, 66,179,108,236, 45,224, 73, 51, 85, 14, -124, 53,185, 30,141,134,156, 93,182, 25, 18, 95, 60,131,121,239,128,165, 58, 96, 61,201,100, 47,124,190, 53,100, 73, 10,144,114, -207, 97,105,175, 6,202,137, 80, 88, 67,139,242, 8,204,232,179, 93, 60,159,250, 89,184,227, 18, 94,203,181,117,153, 64,147, 1, -188,186, 86, 97,105,221, 52,136, 88,214,141,185, 51, 47,255,124, 42,127, 88,239,114,204, 96, 52,168,159,191,120,165, 70,195,209, -136,209, 85,161, 2,144,103,175, 78,182, 42,247,181,247,191,222, 44,151,239,124,249,107,121,219,228, 10,127,137, 85, 20,188,195, -242,238, 85, 83, 41, 43,254,155, 79, 23,214, 54, 32, 40, 19, 90,142,170,174, 97,157,108, 57,207, 76,152, 84,199,219,251,228, 28, - 17,107,106,193, 72, 21,128,208, 87,158,156,183, 24, 77,204, 5,111, 41, 97,229, 46, 78, 46,175, 38, 23, 0,114,239,193,195,179, -231,159,156,156,157,187,225,134,181,141,117,201,168,234,143, 70,182, 60,107, 22, 87, 33,176,169, 46,151,171,179,203,203,147,171, -137,153,125,239,123,191,191,156,207,187,213, 89, 24,236, 1, 86, 91,251,247,247,238,220,157, 78,206, 63,250,201, 95,110,223,127, -123,235,214,163,174, 91, 57,215, 71,163,225,230,118,175,238,169,152,196,102, 48,218,188, 60,125, 90, 85,195,203,147,231,179,229, -114,176,177, 3, 68,159, 60,123,218,175, 7, 77,215,181,146,184,200,115,132,255, 0, 33, 84, 5, 47,162, 41, 38, 66, 2, 2, 83, -136, 42,227,186,247,181,183, 30, 45,151,205,193,249, 52, 38,225,155, 98,118, 64, 5, 19,176, 36,105,217,180, 73,100, 60, 28, 44, -155,166,141,157, 99,106,186,118,119, 99,227,114,182, 76, 41,237,110,110, 24, 64,191, 10, 76, 84,213,181,180,171, 80,245, 76, 90, - 67, 68,246,161,238,255,250,183,190,245,218, 59, 95, 24,141, 54,152, 93,183, 90, 29, 29, 30, 76,206,206, 95, 29,157,124,252,228, -233,179,227,227,139,201,164,118,244,149,219,187,119,119,119, 0, 97, 99,107,248,253,239,126,123,111,127,111,114,252,234,224,249, -211,165,234,249,244,106,107,115,243,167, 63,254,249,106,209,236, 14,123,227,222, 0,114,234,192, 50,199, 57, 75,100,234,157, 55, -192, 36,169, 10,181, 67,143,136,201, 4,115,199,178, 99, 0, 11,158, 85,243, 76,134,236, 3,227,250, 43,167,229,102, 67,136, 10, -249, 16, 68, 48,107,150,109,168,188,222, 36,179, 77, 29,114, 22, 51, 29, 81, 62,197,152,193,178, 9, 26, 9, 12, 68, 77, 82, 36, -210,174,233, 98,140,162,198, 55,122, 47, 80, 93, 87,109,148,224, 24, 50,177, 5, 81,132,206,123, 0, 0, 32, 0, 73, 68, 65, 84, - 89, 36, 47,237,153,216,221, 20, 79, 34,145, 1, 72,206,221, 19,122,199,107, 11, 47, 25, 18,136,114,112,192, 57, 33,143, 96,104, -162, 8,148, 63, 4, 4, 98,159,155, 66, 44,137, 58,231,138, 4, 5,192,128,158, 89, 1,201,113,102,183, 50, 51, 82, 89,231, 50, -231,238, 76,208,148,152,184,147,104,136, 46, 31, 19,204,129,160, 38,215,247, 78, 64, 79,175,166,219,155, 27,247,111,221,190,158, -205,213,196,212,218, 46,166,148,222,123,231,157,208,239, 29, 28, 30,167,204, 47, 81, 24,244,235,179,201,244,205,205,225, 27,247, -111,147,171, 12,133,152, 68, 84, 13, 42, 87,231,143, 52, 71,141, 56,120, 80, 52, 77,204, 62, 95,163,153,248,114, 54, 35,208,241, -104,131,170, 80,140, 64, 49, 58, 79, 38,218,197,174,107, 59,239, 93,211,118,106,169, 10, 46,199, 24, 85,210, 77,229, 6,123,111, - 96,146, 18,152, 57, 23,192, 49,168,169,169, 3, 0,162,166, 77,160,185,248, 1, 0,192,121, 44, 27, 99,211, 46,117,154, 79, 85, -179,186,118, 0,108, 40,162,202,127,254,199,127,160,240,249,190,165,220,249, 57, 51, 22,214,241, 85,179,172, 7,174, 95, 2,152, -223, 3,185,211, 99,125,137, 44,151,165,162,244,229,127,148,173,226,136,133,170,140,159,187,206,205,192,177, 91,204,231, 85,175, -239,185, 88,172, 16, 13, 52,111,246,114,105,158, 17,223, 24, 94, 74, 17, 32,226, 77, 51, 93, 70,226,100,188,251, 58,218,207,235, -188,233,250, 16,167,130,197,192, 27,133,216,138, 23, 94,172, 96, 85, 33,223,118,214, 50, 2, 23,199, 56, 56, 0,151,205,254,132, - 30,201,209,205, 70, 36,203,155, 57,151,148, 11,165, 16, 16, 48, 73, 28,109,222,246,245,248,131, 95,253,116,115,115,183,174, 66, -148,212,175,235,139,203,203,227,203,249, 55,127,227, 27,253,241,214,100,114,213, 46,151, 33, 84,206,249,242,145, 56, 42,204, 79, -205, 45,175, 14, 49,135,241,180,108,214, 51, 86, 19, 1,209,200,249,130, 91,115,174,128,131,214,111, 63, 83, 1,170, 70, 91, 91, -218,182,232, 56,159, 4,106,144, 73, 71,210,180,165, 59, 29,141, 66,109,109,119,240,244,233,124,222,244,250,189, 59, 91,131,131, -167, 79,206,167,139,204,209, 19,242,113, 53,185,117,255,241,236,250,210,108, 53,236,247,218,182,107,150,171,227,243,201,197,100, -210,171,195,155,247, 31,163,175,145, 56,137,178,227,205,141,225,120,123,235,244,248,132,123,163,237,157,123,205,234,106,181,152, -163,164,222,230,174,103,127,121,242, 34,174,230,211,217,180,109, 87, 0,140,152, 66, 53, 60,159,156,133,241,246,195,123,247, 47, - 47, 46, 63,126,246,164,242,222, 33, 50,145,128,229,165,110, 25, 81, 12, 84, 44, 56, 82,145, 70, 4, 0,234,224,239,223,218,121, -116,123,255,131,151, 7,159,188, 58,236,215,189, 42, 4,195, 28, 53,179, 27, 23,110,126,217, 70,233,186,182,243,204,171,174, 83, -180, 85,211,173, 86,203, 65,191,183,138,210, 52,205, 32,240,104, 48, 96,196, 16, 92,191,215,119,236, 98, 39,189, 65,253,224,254, -131,127,244,155,223,191,253,224, 97, 93,215,136,176,152, 93, 93,158,157, 30, 28, 31, 62,121,241,242,163,231,207, 95,157,158,199, -174,187, 61, 28,188,182, 53, 98,135,219, 91, 91,223,252,141,111,252,230,119,190, 67,100,151, 39,135,234,232,232,226, 92, 37,246, -122,189,167,207,158, 99,219, 61,216,219,206,198,176, 44,121, 22,252, 23,187, 42,244,188, 15,249,187,234,124, 64, 0, 5, 77, 18, - 1,128,128, 96,173,226,171,154,130,101,127,177,230, 66, 78, 34, 53, 17, 75,149,243,162,106,152,235,241,172, 75,106, 4, 85, 8, -102,249, 65,202,144, 55,202, 59, 22, 38, 66,178,252,252,198, 4,104,196, 62,111, 71, 8, 76, 85,187,197,178,137, 34,222, 59,230, -108, 70,177,236,152, 19, 53, 79,148, 85, 47, 19,209,164,196,121, 19,205, 64,168, 38,128,134,142,242, 46, 37,251,184,156,203,128, -132,156,124, 4, 34,204, 4,221,124,145,206, 61,186,136,232,153,162,154,119,236, 40,168,106,236, 50,180, 43, 0,162,105,121,117, - 1, 32, 58, 42,126, 13, 4,199,156, 93, 24,148, 53, 54, 2,231,179,120,139,235, 46,161,252, 21,206, 57, 45,116, 76,149, 11,163, -224,170,224,231,171, 38,106, 34,128,126,213, 91,181, 93, 8,110, 52, 28,189,241,248,209,238,173, 91, 32, 73, 13, 98,215,189,249, -218,195,227,139,235, 13,167,191,254,214, 99, 10, 61, 68, 74, 93, 4, 0, 31,152,128, 65,213, 12,136,152,157, 51, 68, 19,205,221, -155,121,177,236,217,181, 81,174, 38,215,187,155, 27,190,223,255, 60, 21,132, 16, 99,148, 78,178, 25, 64, 82, 98,151, 43, 6,139, - 22,201,204,153,114,136,196, 0, 20,187,142, 9,153,153,153, 52, 74,222,201, 73,134,223,230,106, 11,196, 98,160,146,252, 14, 7, -134,114,187, 65, 2,239, 60, 2,138, 41, 3, 68, 49, 87,130,146, 37,166,143,160,166, 0, 12,153, 65,145,111, 83, 10, 72,101,196, - 95,239, 64,193,200, 4,254,193, 18, 30, 0, 13, 5,115, 83,199, 77,205, 7,162,161, 67,144,172,117, 90, 81,192, 51, 38,201, 68, - 5,188,227,249,162,169, 93,223,146,130, 83, 52,128,164, 96, 0, 46,107,152,168, 55, 6,110, 2, 68,191, 46,227,206, 58,110, 2, - 91, 51, 80, 11, 99, 62, 15,238, 89,157, 84, 4, 82, 81,205,117,126, 6,196,133, 93,134, 55, 64,156, 53,196,191,224,149, 29,129, -228,179, 59,228, 75, 16,146,154,121, 66,188, 41,250, 40,174, 33, 3, 68,116,134,134,166,136,140,108, 38,169,235, 92, 53, 24,108, -222,126,255,254, 59,207,158,126,250,226,229,179,119,222,121,199,208, 66,221,123,251,141, 71,127,249,239,255,195,223,253,244,163, - 31,252,227,239,189,122,250, 23,183, 31, 62, 6, 77,109,183,236,245, 71, 10,198, 72,104, 42, 34,235,212, 1, 32,170, 33,152,154, -105,102,159, 74,206,155,169, 42,138,250, 16,138,125,126,253,247, 95,179,173, 41,248, 96,201,200,123, 0, 67, 70,235,196, 57,151, - 61,148,138,232, 42, 15, 8,150,242,208,199, 73, 49, 54,203,197,242, 44, 54,247, 19, 7, 32,239,136, 17, 24, 36,109,239,222, 21, - 85,114, 3,182, 5, 32,155,170,128, 78,231, 11, 81,189,179,115,119, 99,188, 53, 91, 92,139, 73,175, 55,168, 6,189,237,253, 59, -104,230,124, 24,111,223, 53,228, 80, 13, 17, 3, 72,215, 45,231,203,213, 84, 76, 12,171,205, 91,247,156,171,219,217,249,106, 57, -237,141,239,172,212,227,114,182, 92,204,239,223,189,253,252,213,203,195,139,139,173,241,120, 88, 85,216, 38,201,156, 82, 34, 21, - 51, 80, 38, 66,197,186, 10,169,105,239,223,218,221,218, 24,159, 92, 92,254,248,163, 79, 12,128,152, 46,167, 87,204,155, 85,168, -140, 45, 37, 51,176, 92, 70,155, 82,202, 93, 45,209, 18, 2,246,235,170, 21,241,140, 33,132,166,109, 30,220,190,243,234,244, 84, - 52,121,118,183,118,182,151,139,101,175,223, 55,149,189, 91, 59,239,189,255,205,123, 15, 95,175, 7, 61, 51,136,237,234,106,114, -121,125,117,241,252,197,193, 71, 79,159, 31, 95, 78,166,243, 89,223,225, 87, 30,220, 11, 68,203, 46,190,247,165, 47,126,251, 55, -191,211, 31, 14, 47, 78, 94, 94,156,157, 54,236,207, 79,143,175, 39, 87,243,101,179,156,205,119,250,189,189,205,205, 12,116, 35, - 51, 50, 48, 3, 38, 32,231,178,119,183, 75,202,235,185, 8,203,194,179, 24,182, 50,253,149,204,152, 80, 17,187, 38, 18,145,115, -206, 0, 50, 57, 0,201, 37,145,192,100, 6, 73, 68, 65,131,227, 60,203,231,163,217,146,174,115, 75, 12,140,142, 72,172,148,178, -250,192,196, 36,201,136, 17, 29, 37,233,242, 96,232,125,240,193, 33, 18,173,235,141,215,248, 40,200,186, 72,222,105,112, 33,116, - 16, 20,218,224,218,217, 12, 64,168,206, 7, 96, 36,181,104,154,215, 41, 42,186,166, 90,149, 53,102,197, 28,213, 20,160,246, 46, -138,136,118,128, 22,106, 7,138, 41, 37, 46,215,116, 64, 34, 16,141,173,248,224, 29,130, 8,100,203, 10,153,199, 76, 23, 65,202, -241,248,146,118,230,236,158, 52,114,214,243,204, 14, 82,212,164,214,135,234,158,115, 85,224, 23,103,151,227, 81,191,174, 7, 77, -108,119, 55, 55,238,220,190,235,156,251,244,227, 79,106,239, 94,127,120,111,212,175,187,164,221,114,246,222, 23,223, 8,189,126, - 66, 86, 21, 23,124,182,140,136,116,236, 93, 46,223,179, 66, 89, 54, 85,203, 86, 81, 21, 72, 34, 87,215, 83,239,160,234,215,101, -147, 68,136, 0,171,182, 69, 16, 71, 92,122,203,205,145,165, 46,111, 32,215,133, 76,184, 94,248,138, 36,102, 2, 36, 69,180, 84, - 44,112,200, 14, 0, 48, 69,206, 80, 19,200, 41, 51, 5,242, 8, 70,204, 77, 76,166,137,128, 8, 32,197, 84, 10,155,137, 1, 34, -255,233,143,126, 15, 20, 53, 87, 31,225, 90,182,187,241,128,131,130,102,215,140,102, 96,241,122, 23, 65,166,166,104,165,138,163, -132,102, 11, 26,184, 60, 20,121,179, 97,101,157, 3,184,102, 47, 32,168, 25, 35,129,153,164,110,214,116,219,195,129, 34,100, 74, - 39,130, 21, 21,116, 77,218,202,115,153,138, 33, 26,173, 27,166,178, 19,188, 8,148, 76,104, 25,226,142, 80, 66, 82,153, 94,157, -191, 53, 69, 36, 69,176,194,222,231, 98, 18, 42, 24, 59, 45,175,172, 2, 48,206,151,190, 50,249, 91,246, 78, 2, 80, 89,121,230, -235, 76,126,230,145,114,154,143, 9, 37,181, 92,111,236, 61,120,211,249, 10, 13,238,236,223,253,217,223,255,141,175,234, 81,191, -175,192, 85, 85,117,203,197, 71, 79, 95,126,225,241,235,231,103, 71,174,234,213,189,170,157,175,216,251, 44,250,131,152,169,101, - 72,228,141,229, 40,251,235,173,120, 37, 17, 84, 9, 29, 51,101,101, 41,235,186,153, 16,130,136,200, 4, 98, 68,174, 55, 28,151, -158, 15, 69, 75,137,168,112,182, 65,209, 85, 65,163, 2,152,198, 40, 93,119,248,226,229,197,241,179, 10,245,141,119,191,124,126, -181,154,175,146,165, 86,208, 13, 55,183, 6,155,219,147,147, 3,105,102,117,109,190,242,179,233,244,242,226,234,197,225,225,245, -116,242, 59,191,253,195,123,143,222,186,186, 60,100, 21, 52, 25,239,221,185,117,231,206,245,197,217,229,249,113,206, 63,155,193, -226,250,148,129, 86,177,139,106, 33, 12, 24, 52,181,141,175,122,243,197,213,173,253, 7,171,197,100,145,244,213,241,209,197,197, - 5,169,221,190,181,255,242,213,193,108,181, 68,196,162, 56, 33, 3,192,160,223,223,223,222,189,189,123,103,123,115,235,222,222, -254,155,247,111,205,218,246, 87, 79,159, 79,151, 43,206, 56, 83,196,100,210,181,113, 80,213, 12,200, 76,162, 89,158,135,130, 26, - 33, 96, 8,204, 8, 96,109,151, 6,189,122,127,123,247,106, 62,143, 41, 14,250,189, 89, 19,137,169, 95,247, 7,117,237,188,123, -243,237, 47,124,231,119,127,111,255,254,163, 80, 85,102,208,182,139,139,179,179,147,163,163,143, 62,123,250,139, 79, 63, 59,188, -184, 92, 53,139,253, 97,255, 11,251,183,201,204,147,253,254,239,253,238,183,190,251,253,249,244,242,229, 39, 31, 8,225,213,108, -118,113,126,118,120,112,220, 53,237, 70,229,247, 54, 55,123,253,192,142,196,114, 79, 16, 39, 21,239, 28, 51, 87,189,218, 84,141, -172,242,204,134,185, 65, 35,123,116,147, 8,179, 99,228,104, 49,231,206,197, 64, 85,153,200, 57, 78,162, 25,118,167,150, 55, 56, - 40,170, 98,185, 84, 47, 24, 1, 1,128, 90, 8, 1,212,186,216,121,231,138,167,146, 73,237,230, 69, 3,102, 70,236, 66,240,102, -166,162,142, 89,213, 68,165,246, 1,144, 28,241, 77,222, 28, 12,156,163, 28, 94, 34,114,206, 59,116,236, 28,151,168,170, 35,211, -148,186,200,128,196, 46, 11,253,249,219,106, 37,141,143,150, 84, 36,101, 11,140,153,101,163,181,152,185,224,188,207, 90,130, 6, -207,107,194, 45, 33, 97,210,242, 27, 52,131, 76, 76,203, 24,250,156,255,178, 44,101, 2,100, 8,176, 38, 41, 75,121, 3, 99,244, -236,216,115, 29,252,112,128,149, 19, 3, 0,204,107, 16,172,136,118, 55,250,211, 85,247,252,240,104,123, 99,227,141,215, 31,237, -221,189,189, 92, 46,159, 62,125, 62,185,154, 14, 7,253, 47,125,233,139,231,151, 23,253,186, 26,142, 55,217, 52, 16,113,168, 68, -149,188, 51, 1,231,189, 39, 76,166, 6, 80, 85, 85,166, 94,102,129, 76, 85, 65,117,217,164,249,124,186,183,185,225,235, 58,111, - 41, 36, 99,191,184,116,143,132, 80,153,154, 20,253,147,208, 32, 73,182,129,186, 60,134,122, 2,224, 92,186,157,231,104,134,130, -106, 81,203, 7,102,249,143,130, 72,206,135,252, 81,139, 8, 19, 6,114, 64, 28,147, 16, 90, 86, 55,137, 76, 12,249, 95,252,147, - 31,221, 48,186,114,108, 30,204,242, 17, 88,224,234,229,100, 46,139,153,245, 6, 39, 51,187,176,152, 17,139,240,153, 45,225,185, -119, 15, 16,208, 74,223,213,141,143,114,205, 17, 91, 63,109,196,120, 61,155,239,237,237, 88, 20,200,145, 75,164, 18,208,192, 82, -149,151,127, 48,229,166,214,178,251, 70,181,124,115, 5, 67, 68, 45,205,126,184, 94,196,148, 69, 13,150,134,244,178,195,200, 95, -164,146,191, 42,122,112,217, 5,216, 77,165,120,118,180, 56, 68,203,193,238,124,217, 55, 48, 98,198,108, 97, 44, 27, 80, 82, 75, -217,217, 32,210, 57, 55,220,125,248, 54, 35,105,106, 65,213, 48,253,245,191,255,127,212,116,184,177,225, 92, 80,176,126,229,159, - 61,125, 78, 68,239,191,255,181, 20,187,222, 96,180, 90, 78, 1, 92,240, 30, 76,129, 29,160, 49,115,214,174,215,229,176,229, 99, -203,151, 20,118, 1,153, 51,159,207,214,159, 99,158,247, 12, 12,129,204,160, 55,222,235,109,140, 76, 5,209,105,219,144,119,232, - 40, 83,130, 75, 88,192,140,208, 82, 23,197,240,201, 71,159, 76,206, 94,109,109,223,122,253, 75, 95,121,241,242,224,228,248, 8, -201,213,129,187,249, 5,170,196,110,201,222,215, 53,152, 89,187, 88, 30,157,159,191, 60, 57,107, 99,247, 91, 95,255, 13,244, 21, - 80, 29, 6, 91, 85,191, 87,245,250,227,205,205,233,213, 36,198,214, 98,219, 92,157,248,254,118, 85,241,106, 58,211,148,130,247, -109,187, 20,177,254,160, 47,178, 26,141,247,147,201,103,159,254,234,114,177,250,234,151,191,222, 31, 12, 8,181,223,171,151, 93, -115,122,113, 97,136,129,243, 70, 88,115,113,193,108,181, 92, 46, 23,155,227, 90,165,253,232,249,193,229,108,158, 36, 3,101,233, -230,138, 40, 34, 41,197, 80,213,185, 95,190,104, 63,249, 86,171,226, 61, 43,114,112, 60, 30, 15,251,117,189, 49, 28,137,196,235, -233,188,223,171, 31,222,190,125,116,121,217,182,205,189,253, 91,223,249,222,119,191,250,205,223,234,143,199,192, 36, 93, 92, 92, - 95, 92,156, 30, 31, 28, 29,253,234,227, 79, 62,124,242,252,236,106,106,113,245,214,222,222, 27,123,183,146,200, 23,190,240,230, - 15,255,228,159,238,222,218, 57,124,246, 25,247,170,147,201,164,105, 87,189,141,209, 71,159, 61,117,141,222,218, 24, 85,149, 87, - 64, 4, 18, 67,199,172,102, 68,202,142,217,185,124,212, 2, 99,134,136,230,130,209,236,212, 2, 32,239,216, 74,160,130, 24, 81, - 77, 37, 37, 68, 82,179,182, 75, 55,115,189, 11, 14, 12, 36,138, 22,151, 0,170,165,252, 7, 51, 72, 41,154, 41, 59, 78,144,193, -147,152, 73, 71,217, 66,135,144, 31, 34,146, 46,102,183,177,130, 85, 85,189, 46,201, 10,236, 41, 15,194, 76,132,185, 64, 14,144, -156,175,170,128,136,196, 76, 88,252, 28, 0,156,213, 53,188,113, 4,168,154, 40,231,176,120,161,200, 2,123, 15,107, 39,111, 18, -113,149, 99, 36,208, 12,151, 2,199, 62,139,132,107,232, 2, 81, 70,238, 0,102, 30,132,137, 38, 85,186,169,111, 91,167,251,243, - 89, 73, 84, 98,152, 24,152,129,144,192,123,116, 30, 29, 53,204,154, 12,165, 83,116,222, 28,178,227, 10,177, 66,155,182, 29,162, -171, 43,239,157,235, 98, 92, 46, 27,231,120,103,111,107, 58, 91, 93,158,159,221,187,125,123,149,116,209, 53,163, 16, 92, 38,197, - 18,186,172,130,136, 57,207,140, 20, 69, 66, 8,154, 23,168, 10, 20,156,154, 93, 94, 94,247, 2,245,135, 67,100,151, 79,137,146, -250, 7,117, 76, 6,164, 73, 96,237, 58, 37,200,115, 41, 1, 90,148,164,106,206,177, 33,153,228,141,157,178, 15,185,186,199, 12, - 12,244,134,189,149,119, 40,204, 4,134, 73, 69, 77, 42, 31,114,175, 96, 30,219, 13, 32, 37, 97, 71,193,251, 46,138, 43,162, 79, -198, 32, 40, 32,170, 1,129, 74,126,241,139, 38, 64, 52, 19, 38,159, 67,244,249,204,213,108,156, 2, 44,165, 85, 57,182, 90,154, -158,208, 0, 52, 1,115,238,154, 65, 51, 43,117, 26, 5,217,152, 97, 55, 2,128,190,234,147,158, 45, 35, 5,135, 38, 37,163, 87, -102, 88, 69,163, 66,231, 45, 37,171,150,145,121,104,217, 72,161, 37, 13,149,225,106, 57, 44,244,249,221, 14,129, 24, 98,202, 33, -175, 2, 28, 37,128,148, 52,207,238,185, 35,204, 4,136, 28,129,101, 57,193, 76, 12, 0,185, 3, 3, 99, 71,166,107,112, 61, 65, - 41,241,138, 8,140,249,218, 12,140, 76,160,209, 87,227,237,187,111, 16, 65, 59,159, 57,246,203,118,254, 63,254,247,255,195,183, -126,251, 15, 63,250,229,223, 28,159, 28, 62,188,247,186,103, 30,110,108,189,245,214,227,127,251,215,127,251,205,247,127,109,114, -113,118,122,114,210, 52,203,221, 77, 8,193, 87, 85,207, 36,145, 15,152,109, 64,170, 55, 96, 28,145, 44,183, 18, 2,178,243,102, - 70, 76,196,168, 98,150,148, 42,135,136, 38, 9,179,133, 70,193,213, 85, 94, 85,170, 68,170,188,175,130, 36, 49, 81, 3, 50,139, -146,148, 60,202,170, 67,213,110,185, 92, 94, 29, 18, 18,135, 10,136,201,132, 92, 61,218,232, 49, 50,244,234,216,172, 92, 53,114, -212,144, 11,210,197,216,165,233, 98,217,180,237,176, 63, 28,247, 7, 64,182,115,107,239,250,244,116,122,113,112,247,193,107,177, -105, 1, 25,212, 37, 97, 85,110,151,179,171,147, 39,231,167,135,183,110,191,214, 45, 47,134, 27,251,206,135,213,252, 98, 53,187, -212,129,138,129,186, 65,183,188,250,201,207,255, 54, 4,119,112,112,184, 92,206,123, 92,189,245,240,209, 98,177,200,101,144,128, - 32, 42, 6,112,127,111,183,223,247,151,147,249,241,229, 68, 36,245,171,106, 80,133,139,233,180,211, 82,199,152,159,220,121,215, -202,213,100,119,123, 19, 17, 53,139,226,201, 12,161,174, 7,142,176, 75,169, 87, 85, 49, 37,231, 61,160, 13,251,195,126,221, 63, -191,190,138,233,120,123, 99,235,119,190,251,157, 31,254,254, 31,246,134, 67, 81, 1,208,213,244,122,122,117, 62,185,184,122,121, -112,240,233,179,103, 7,167,231, 87,211,249,237, 81,255,254,214, 46,139,214,189,250,143,126,244, 7,111,188,249,230,229,241,225, -139, 87, 7,110,107,227,232,228,232,240,240,104,181,138,139,217, 98, 84,247,182,247,198,204,148, 84, 52,165, 80, 85, 73, 58, 43, -231,100, 6,170,172, 3,122, 8, 41,137, 18,105, 82,116,152, 33, 76,154, 47, 31, 0,136, 20, 37,113,169, 52,241,201, 18,130,229, - 6,100, 85, 12,193, 73,210,152,132, 88, 61, 57, 84,136,102,142, 29, 25,164,168, 49, 69,246, 44,162, 46,167, 33,203, 85, 29,137, -157,153,130, 26, 7,111, 81,164,139, 84, 48,115,232,200,153, 73,191,223,235,186, 78, 76, 8, 60,168, 49,161,152, 24,144, 67,207, -206,161, 65,210,228,156, 71, 70, 84, 51,129, 36, 74,222,192,128,137, 85, 81, 44, 91,182, 45, 91, 78, 85, 18, 18, 59,207,146, 80, -215,252, 44, 32,242, 76, 32,160,166, 34,210,171,107,201, 14,123, 3, 34,210,117,172, 50,247,197, 58, 31, 76, 33,197, 14, 0, 50, -114,129,152,129, 12,196, 24, 44,198, 84,240,184, 25, 92,152, 49,226,142,209,186, 64,209, 59,232,162, 52, 77, 52,243, 0,129,200, - 48, 25, 33, 38, 67,100,255,218,107,143, 38,147,233,249,229, 21,145, 27,142,122,111,189,249,134, 72, 34,199, 63,249,201,207,150, -171, 85, 29,194,178,237,234, 80, 53,241,242,245,157,237,126,168, 82, 50, 37,201,102, 21,149, 14,209, 85,222,199, 24,115,190,132, - 3, 74,146,182, 73,166,105, 60,218, 6,192,148, 26, 34,118,174, 82, 5, 34, 37,116, 41,117,206,177, 82,134,185, 27, 57, 70, 81, -199,104,106,121,132, 71, 87,224, 94,121,131,103, 70, 41, 38,135, 64,204, 32,178, 74, 17, 68,123, 85, 63,111,134, 29, 81, 82, 81, -211,186, 10,146,160,137,157,169,120,231, 16, 33,154, 18, 66, 29,156, 0,116, 81, 84,147,195,155,105, 49,247,106,100,211,119, 54, -156,103, 99, 36, 0, 81,126, 3, 75, 54,164,128, 89,169,146,128, 12,155, 65, 48, 33, 38,149, 28, 57, 53, 84, 99, 15,153,167,187, -238,218,131,178,204, 95,183, 89, 32,187, 60,252, 14,106,119,122, 53,127,109,175, 78,154, 76, 81, 83, 71,174,206, 26, 59, 25, 16, - 26, 96, 6, 54, 2,230,179,111,141, 30, 54,211,114, 69, 64, 99,204,216, 72, 66,206, 14, 91, 3, 53, 49, 64, 69,164,226, 27, 42, -228,132, 82, 32, 96,172,104, 8,196,229, 70,137,165, 95,132, 0, 1, 36, 33, 25,104,126, 15,100, 14, 67,105, 74, 42,252,100, 53, - 3,197, 92,112,233,135,155,183,223, 32,164,184,156,131,129, 72,250, 95,254,167,255,249, 75, 95,251,205,111,255,167,191,187,152, -158,125,252,225,207,199,131,173,205,237,109, 31,252,195,135, 15, 62,123,246,226,127,255,191,254,239, 63,254,131,223, 62, 58,124, -177,104,250,183,239,221, 61, 63, 63, 53, 52, 71,156,137, 19,107,255,169,113,240, 41, 9,128,229, 88, 4, 34,169, 8, 59,199,236, - 0, 12,201,188,167,194,248,225, 96,160, 6, 74,236, 66, 8,228,189,153,211,182, 69,246,177,109, 16, 29, 18,128, 36,141, 29, 57, - 75, 81, 76, 20, 68,150,167,199,169,107,155,118, 73,161,135, 76, 70, 21, 0,196, 78, 18, 64,111, 56,108,103, 83,212,206,247, 34, - 65, 47,106, 90,181,205,245,124, 17, 83,220,191,117,123, 25, 19,205,231,179,233,108,113,121,184,185,255, 58,251,222,201,241,209, -233,233, 17,167,213,114, 58,217,186,253,184,153,207,183,239,188,189,177,251,168,139,173,165, 97,108,174, 16,250,237,226,170,234, -141,201,249,197,108,122, 57,159, 29,157,158, 84,190, 82,137,163,209,198, 98,181,218,217, 30,134, 58, 60, 95, 45,147, 73, 82, 85, -209,141,209,240,222,222,222,178,107, 63,124,126,232, 0, 8, 77, 16,187,212,121,230,241,112, 56,153,206,242,149, 43, 63, 95, 8, -184,138,237,116, 62,223, 30,143,172, 45,170,180,129, 73,138,139,174, 13,193, 15,251,155, 87,211,121,211, 52, 75,102, 1,168, 42, -119,103,119,119,111,111,231,191,251,111,254,219,119,223,253,210,233,100, 18,219, 85, 74,113, 62,185,188,154,156, 93, 93, 93, 63, -121,241,226,227,231, 47,207, 46,174, 84,226,227,221,141,135, 59,219,201,224,225,131,187,191,255,195, 31,122, 71, 79,126,245,211, - 38,197,179,139,179,233,179,167, 81,116,190,106,108,214, 60,218,221,206,166,149, 36,102, 8,222,135,148,132,145,213,140,217, 49, -113, 82, 81,128,202,251, 85,215, 48,112,118, 19, 43, 9,129, 47,161,105, 83, 64, 8, 62, 52,171,150, 24, 21, 57, 73,155,119,146, -132, 4,144,178,111, 98,213,116,206,177,247,142, 1,197, 84,192,152, 80, 37, 9, 0, 33, 85,149, 23,177,218,185,108,126, 43,212, -116, 36, 85,113, 33, 88,138, 42,209,202,127, 99,236, 8,173, 88,144, 99,234,156,119,165,233, 23, 73,147, 1, 97, 8,193, 59,238, -146,186, 92,150,160, 10,134,228, 72,146,178, 35, 80, 96,246, 98,130, 88, 44, 2,228,243,166, 94, 28,115,206,166, 18, 49,130,137, - 42,121, 66, 64, 17, 53, 80,231,208,161,139, 93, 66,196, 4,234,202, 62,129, 68, 75,169, 5, 38,212, 46,229, 27, 52, 50,229, 6, -100, 64, 32,114,169,107,147, 73,134, 52,176,247,197,251,231,156, 74, 2, 75,192,232, 67,165,113, 41, 17,155,200,189, 94, 8,190, -110,218, 68, 72, 34,178, 84, 9,183,246, 23, 71,167, 79, 95, 29,136,200,201,217,121,175,170,222,251,226, 23,134,155,227,167,159, - 61, 91,204, 23,201,244,233,203,163,126,191,218,123,109,251,244, 98, 18,245,242,222,214,214, 70,237, 29,113,211,117,193, 59, 71, - 85, 39,218,172, 26, 98, 46,175, 61, 49, 77,178, 92, 45,234,202,187,186, 86, 77, 72, 30,129,146, 36,199, 94, 84,146,180,236,156, - 65, 41,164, 3, 64,206, 99, 57, 64,178,232,216,105,174, 3, 71, 0,209,224,170,100,162, 41, 17,160, 33,161, 42,152, 57, 37,116, -156, 36,101, 68,101,215, 53, 36,234,152, 82,236, 16, 40, 56,175,192,170, 6,146,152, 28,104, 82, 64, 73,209, 33,154,170,203,114, -142,153,228,159,173,182,166, 44, 20,249,145,214,149, 46,101, 35,175, 80, 62,112, 0, 53, 40,247, 52,195,108,176, 45, 74,167, 21, - 95,100,201,193, 18,165,181, 57,102,109,219,194,117,103,148,234,246,206,238, 39, 47, 14,117,255,109,131, 14, 9,141,216,202,168, - 93,188,178,144, 41, 8,154,255, 93, 93, 47,170, 63, 79, 58,149,158,115, 43, 55,136,172, 44,107, 17, 39, 11,238, 88,138, 38, 2, - 37,222,151,143,135,108,176, 65,180, 92,197,183,182,118,194, 58,150, 10,107, 36, 66,126,150, 81, 13,145, 13, 20,114, 16, 66, 13, -125, 53,222,189, 71,177,105,151,173,137, 86,131,141,191,252, 63,254,215,189,253,123,223,253,193,183,210,197,217,251,191,254,237, -103, 79, 62, 57, 63, 59, 25, 12,122,193,247,234,190,188,247,238, 59,255,238, 63,252,245, 55,190,246,149,199,111,190,243,225, 47, -127,118,120,248, 28, 68,125, 21, 48, 12,146, 68, 2,133,146,108,178,216,197,188,150, 50,203, 4, 52,135,148, 93,112,100,166,142, -110,100, 57, 48,135, 40, 12,160, 92, 85,206, 59,137,157, 22,215,148,100, 74,120,198,138, 17, 15,173, 93,105,155,208,179,166,164, - 6,198, 1,184, 71,161, 39, 73,144, 16, 45,197,136,131, 81,189,184, 60, 73,171, 69,127,188,133,148, 12, 48,117,113,177,106,154, - 54,154,217,195,187, 15,183,111, 61, 60, 63, 63,233, 22, 87, 91,251, 15,170,186,106,150,203,197,116, 1,203,217,244,250,120,116, -235,141,110,213, 88, 90,213,117,117,126,122,192,213,192,135,186,107,168,105, 91, 36,116,161,234,247,251,199,167, 71, 81,245,241, -107,143,145,236,229,203, 87, 42,178, 61,222, 90, 54,139,174,107, 66, 85,205,175,174,198,195,254,131,237, 77,101, 58,189,184,188, - 88,204, 29, 56,231,168, 19, 69,100,207, 8, 8,158, 97, 99,208,187, 94, 44,213,214,144,103, 3, 36,152, 46, 22,128, 48,170,250, -217,207,100, 10, 28, 56,120,223,118,105, 50,189, 10,190, 74, 98,139,182, 37,128,157,173,205,127,246,163, 31,125,255,123, 63,216, -222,221,155, 47, 86,150, 98,187,152, 95, 79, 46, 38,147,139,211,179,179, 39, 47, 94, 62,125,117, 52,157, 47, 6,193, 61,216,189, -213,167, 56, 30, 13,190,247, 59,191,243,240,225,131,229,114,222, 54,221,193,233, 9, 59, 26,236,108, 30,158, 79, 46,142,206,118, - 55, 55,246,239,237,139,152, 90,142, 31,194, 13,225, 54, 3,193,179, 77, 46, 83, 92, 10,195, 22,128, 40,219,190,185,140, 62,106, - 46,176,154,182,177, 67, 7,132, 24, 37, 17,162, 15, 46,198,232,136,131,239,181,169,139, 34, 33, 91,105,205, 4, 12, 12,130,247, - 49,198,130,255, 50, 19, 69, 48,136,146,214,248,170,210,196,228,152, 32,165, 82,152,144,157,111,197,230, 6, 42, 34,152,152, 92, - 6,117,136, 25, 0,177, 39,135, 0, 4,146,249,163, 14, 77, 37,169, 17, 2, 36, 95,102, 66,204,142,142,252,157,163,117,151, 52, -249, 92,184,157,143,108,179,114,207,117,168, 73,192, 52,248, 74, 64,116, 93,129,237,184,216,139,205,140,153,137, 81,146,230, 81, - 14,205,229, 90, 80, 66, 4, 7,150, 52,197, 8, 32,158, 89, 76,193,204,196, 50,123, 54,198,232, 16,156, 35,199,144, 36,138,176, -168,177,115, 49, 17,162, 16,162,153, 46,187,206,111,110,137,243,139,233, 76, 85,163, 74, 59, 91, 50,211,213,116,250,225, 39,159, - 57,231,216,249,118,185, 48,132,249, 98,245,233,147,231,195, 94,223,143,194,243,243,243,253,241,120,191,223,243,181, 71,128,164, -134,107, 21, 1,212,128,144, 1,163,225,170, 89,237,110,142, 17,149,156, 83, 17, 5, 33,100, 81,129,114, 78, 24,153,228,197,122, -222, 74,229, 70,188, 16,156,198,148, 9, 91,249,168, 81, 19, 34, 2,231, 77,180, 19,241, 68, 62,120, 4, 18, 75,165,252,195,180, -246, 33, 65,178,210, 90, 65, 6, 16, 37, 58,224,117, 53, 42,196,212,145, 90, 50,139,109,231, 32,111, 79, 0, 32,195,173,242,250, -165, 24,192,243, 65,206, 8,150,169,211,156,249,184, 98,235, 68,106,238,228, 54, 80, 4,250, 60,113,153,203,230,208, 48,207,149, - 88,214,223,248,121, 35,133,166,178,168, 87, 13,131, 81,144,231, 49,162,247, 65, 98,100,230,108,182, 89,159,222,154, 51,114, 55, -164,119, 90,215,209,101,118, 11,103,172,174, 17,162,154,161,169, 41, 73,238, 19, 55, 21,203, 45, 45,165,126,210, 12,201, 50,254, - 32, 99,118, 0,200,145,129, 17,128,150,247, 85,161,174,175,107, 87, 11,111,216, 0,243,164, 0, 4, 68,190,164,106, 57, 12,199, -251,218, 53,203,197,220, 15,199,163,209,230,191,251,171,191,188,184,156,254,147,255,252, 15,218,174, 73, 77,220,216,217,249,193, -239,253,254,255,246,111,254,205,230,246,245,214,150,235,247, 6,119,239,221,125,237,222,157,191,248,171,191,122,227,241,127,177, -179,187,119,244,226,197,157, 7,247,167,215, 87,117, 61, 80, 85, 3,112,206,229, 16, 47,172, 59,230, 51,158, 41,151,100,153, 26, -176,230, 88, 72, 33, 56, 32,162, 50, 0, 8,168, 67,100,132, 36, 9,185, 50, 19, 75,121, 41,134,154, 26, 14, 61, 0,177,152,144, -193, 98, 34,102, 64,139,205,170, 10,190,223,171, 13,161,109, 22,236,168,215,239,199,216,116, 49, 58, 95,161,115,249,235,159, 98, -154, 47, 87,162, 9, 8,135,195,209,124, 62, 79,177,233,245,123,104,104,106,221,114, 46,105,213,219,216, 80,109,110,221,189,127, -121,116,188, 92,206, 42,231,130,235,117,205,140,137,171,193, 86,211, 44,118,246, 31,199, 24,153,194,209,229,213,197,100, 18,188, -155,205,103,215,211,235, 46, 73, 29,194,106,181, 88, 54,171,219, 59,187,111,220,185,181,106, 87,103,147,235,235,197, 34, 37, 35, -180,136, 38, 89,169,161,242, 92,169, 98, 21,220, 14,141,207,103, 51,209, 92,194, 11, 38, 8, 96,215,179,185,137, 13,122,125, 5, - 37,196,174,139,109,106, 7,189, 30, 34, 3,194,173,221,189,147,179,211,247,223,123,239, 95,255,171,127,253,250,155,111,130,217, -116, 54,107,154,213,245,249,201,249,197,217,244,106,242,226,240,213,199, 79, 94, 94, 92,207,230,203,213,237, 81,127,183,231,201, -210,111,253,230,119,191,250,205,223, 72,109,119,240,236,227,176,181,241,234,197,171,131,163, 99, 95,251,203,143,102,155, 85,239, -173,251,247,152, 89, 21, 68, 53,195,249,147, 40,103,252, 28,179, 99,140, 73, 1, 64,146,249,158, 79, 49,197, 36,158, 60, 33, 68, -137, 72,140,197, 64, 12, 64,216, 69, 49,211,138,157,130,117, 34,158, 56,130,137, 2, 19, 39, 83,235, 58, 1,237,133, 10, 84, 20, -243,105, 72,146, 84, 44,230, 47,128, 26, 4, 87, 42,203,186,152, 15, 92, 16,211,202,121, 32,180,220,111, 74,100, 6, 4,108,168, -196, 36, 49, 33, 3, 50, 57,240,206,177, 2, 38, 3,231,200, 85, 30, 20, 84, 13, 80, 77, 5, 57,215, 49,172, 17, 82, 4,166, 74, -182,214,165,160,180,167,154, 1,147, 7, 48, 0,201,237, 12, 41, 38, 23, 24, 12, 77,172,109,163, 35, 34,246,109, 23, 25,201, 7, -175, 32,146, 52, 64, 70,230,130,115,206, 68, 76, 0, 20,140,243,183, 15,114,231,160,154, 90, 42,189, 29,153,185, 68,200, 38,201, - 52, 37, 35, 2,172,189, 87, 77, 14, 99,229,114,127,189,151, 86, 75,213, 25, 34, 17,182,203,101, 12, 97,123,247,214,207,126,246, -139,151,135,135, 49, 37, 21, 65, 4,102,254,232,201,179,233,108,246,246,107, 15,171,224,192,250,157,180, 49, 73,219,182,170, 18, -106,159,146, 76,154,166,141,237,189,212, 15, 85, 48,246,128, 14, 8, 68, 5,193, 24,156,169, 94, 76,174,107,166, 94,175, 39, 98, -206, 33, 58,151,186,148, 39, 69, 98, 84, 37,102,140,106,185,209, 84, 84, 36,198, 16, 2, 51, 24, 58, 5, 69, 2,109,219, 8, 70, - 0,222,187, 76, 70, 69, 48, 66, 20, 19, 75,138,204, 38,108, 32, 4,192, 68,132,172,166,185,130, 77, 68, 1, 21,149, 12, 65, 85, - 29, 25, 48, 27, 96,219, 44,243,161,199,127,250, 39, 63,164,210, 97, 93,204, 78, 57, 48,157,221, 54,249,151,154,243, 11, 57,180, - 74, 72, 80,198, 98, 88,247, 73, 81,254,147,228,237, 48,220, 84,106,175, 43, 85, 97,125,192,150, 66, 84, 40, 29, 89, 8,204,232, -171,126,106, 22,147,166,219, 28,244,242,123, 5,168,116,159,174,169,145,101,183, 15, 5,181,179,254,161,107,209, 22,203,146, 95, - 76, 19, 2,231,102, 16,188,177,196,151,189, 83,185,103, 80, 38,209, 16,172,157,245,144,163,195, 0,104,106,170, 37,164,188,198, - 18,195, 77,106, 22,202,118, 92,242,164,164,200, 27,183, 30,121, 77,171,217, 53,249,170, 55,222,253,201,255,251,127,254,127,127, -251,203, 63,255,151,255,106,188,179, 25,187,148, 99,166,251,143, 31,159, 61,123, 62,185,186,232,247, 7,189,170,167,104,131, 94, -245,183, 63,249,197,206,198,104, 56,168, 94, 29, 28,236,221,187,191,152, 78,217, 57,239, 3, 59,159, 49,127,228,124,126,163, 18, -175,139,210,161, 20,129,100, 3, 46,220, 20, 40, 18,103, 66, 14, 2,114,168,123, 91,187,214, 70,118, 46,251,152,192,121, 48, 65, -118, 96, 96, 77, 75, 76,169,107, 32,138,235,213, 23,231, 23,207, 63,251,164, 63, 28, 63,120,227,189,173, 17,191,120,246,172, 83, -114,140,237,170, 35, 95, 3,122, 38,117,218, 58,246,211,217,245,179,131,195,139,203, 43, 81,248,238,183,190, 95,123,143,132, 41, -105,215,197, 59,247,223,188, 60,126, 10, 85,125,242,233,207,118,239,188,102,139,163,147,163,151,224, 42, 80, 81, 75,131,205,253, -166, 89, 17,121,102,215, 53,243,213,244,188,137,241,248,242, 98,185, 90, 94, 76,206,174,174,175, 13,144, 17, 23,171, 37,162,219, - 28,140,238,239,110,158, 76,174, 62,120,250, 98,217,118,193, 85,227,225, 40,132,138, 8, 85, 12, 10,150, 35, 99, 47, 80, 13,123, -253,126,143,221,172, 89,150,141,253, 58, 90,209,106, 36, 68,231,188,169,130,105, 8, 97, 80,247,154, 20, 3, 57,145,248, 47,126, -244,195,255,250,191,252,175,118,239,221, 1,128,166,109,103, 87,215,179,139,179,179,243,227,131,131,131,143,158, 61,253,224,147, -103,151,243,165,117,221,163, 33,239,143,199,227,205,241, 63,255,103,255,244,203,223,248,250,241,243,207,140,186,167, 79, 95,254, -205,127,252,137,105, 90,182, 93,119,189,218, 29,141,182,199, 67, 98, 84,179,140,177, 69, 4, 53,169,216, 27, 64,237,157,168,117, - 73, 17,136,179,105, 93, 37,143,109, 73,147, 38,115, 57,203, 77, 64,132, 14, 72,146, 34, 50, 33,181,154, 16,160,242, 14,153, 60, - 58, 51, 97,230, 20, 35, 19, 57,162, 54, 70, 65, 97,100, 34,146,164,209, 20, 1, 99, 74,222,185, 64, 20, 85,193,160,252,101,136, - 42,239,188,247,146, 84, 5,144, 64, 82,110,228, 32,212, 12, 81,209,236, 82, 70, 2, 98, 6, 34,239,188,243,204,196,177, 19, 42, -109,204,202,159,127,188, 64,200,236, 8, 16, 25,185,208, 78,144, 76,164,116,153,113,105,236,203,171,234, 20,163, 39, 6, 68, 83, -141, 41,121,231,139,139,142,137,153,204, 18, 24, 50,162, 34, 56,239,192, 76, 98, 4, 66,199,108,152,255,158,142, 28, 49,179, 98, -126,121, 3, 0, 56,226,204,163, 66, 77, 64, 36, 41, 33, 17, 57,236, 82, 71,132,206, 99,221,247,206,145, 34,169, 16,115, 64,118, -160, 22,219,102, 42, 54,190,251,112, 54,155,191,122,246, 98,190, 88,154, 8, 34,238,239,237,142,135,163,243,211,179,199,219, 27, -177, 93,184, 80, 63,184,127,187, 93,197, 36, 34,102, 41,165,249,124, 57, 26,244,183,183,183,142, 47, 39, 11,145, 10,201,179,137, -161,169, 32, 24,168,154,232,178,137,179,249,116,107, 60, 10, 33,212,189, 30, 50,117,177, 69, 67, 67, 65,228,124, 6,170, 10,136, - 73, 23, 59,137,181,115, 64,212,197, 46, 38,113, 4,222, 85, 49,137,170, 5,207,156, 91,225, 0,200, 49, 32, 39,233, 24, 9,217, -139, 38, 66, 12,228, 82, 18, 53, 13, 62, 83, 55, 65, 74,230, 3,145, 80,162, 48, 81, 39, 98,217,139, 99, 70,200, 49, 41,255,243, - 63,249, 35, 6, 34, 96, 68, 99,162,155,162,189,140,172,203, 8, 2,184, 97,138, 1, 98,190,114, 26,222,164,159,214,227,110,158, -254, 13, 11, 21, 11, 50,115, 55,165,117,231,224,154,136,152,235, 8,214, 69, 26,132,168, 85, 8,103,103,151,155,227,177, 22, 45, -209, 16,145,179,155,135,110, 58,208,243,170,198,110,216,144,249, 2, 65, 89, 17,208, 53,142, 6,141, 74, 60,137,224,134, 76,133, - 64,144,177,120, 25, 73, 10,217, 6,105, 6, 38,249, 34, 64,165, 46, 1, 48,255, 15,145, 28, 97, 64,116, 68,133,117, 69,235, 66, -141, 28,162, 31,142,247, 29,232,252,226,216, 87,131,193,198,246,243,207, 62,250,139,127,251, 31,255,179, 63,255,151,119,239,239, -205, 98, 88,172, 0, 0, 32, 0, 73, 68, 65, 84, 47,230, 11, 68,116,193,115, 8,136,180,123,239,193, 7, 63,253,251, 94, 47,120, - 31,170,208,243,190,154, 78, 39, 31,124,246,244,215,190,244,238,253, 7, 15, 22,179,105,221,235,173,102,243,170,170,205, 4,200, - 57,174, 10, 79,223, 82,174, 33, 52,203, 25, 96, 46,182,184,117, 25,113,185,126,163, 67,100,181,212, 31,111,135,170, 87,118,106, - 76, 42,136,150, 10,241,205,121,149, 36, 93,219, 77, 39, 92,247, 8,233,252,240,240,240,232,229,230,237,135,123,183,118, 7, 27, -163,103,207, 94,173,150, 75, 75,105, 57,187,178,212, 50,249, 16,168,242,166,170,231, 23, 23,175,142, 78, 38,179,153,115,252,250, -237, 59,210, 44,218,102, 41, 18,119,246,110,135, 42,204, 23, 43,135, 54,222,217,111,163,168, 68, 35,214,118,217, 31,110,134,254, -168,157, 95,184,224,130, 15,210, 78, 23,243,107, 32,247,234,228,248,197,233,241,189,253, 59, 49, 37,252,255,169,122,179, 95,207, -178,235,190,111, 77,123,159,243, 27,238, 88, 99,207,221,236, 73,164, 72, 74,156, 36,146,226, 40,106, 36, 69, 81,164,133,200, 38, - 69, 89,177,173, 40, 72,140, 12, 22,242, 18, 36,128, 31,243, 15,228, 37, 47, 9, 2, 35,128, 96,196,116,100, 11,176,104, 72,130, -172, 64,150,100,155, 18, 7,145,236,169,170,250,214,173,186,117,231,225, 55,157,179,247, 94,107,229, 97,159, 95,181,242,208,232, -135,174,170,174,170,251,187,231,236,189,214,247,251,249, 0,143, 71, 13, 56,148,220,237,110,110, 4,225,215,246,238,159, 94,206, - 54, 70,147,174,239,163, 52, 34,204,204,141, 52,227, 81, 59,157, 76,198,237,120, 58, 30, 3, 98, 74,217,204, 74, 78, 44, 64,196, - 41,149,255, 95, 17,195, 33,229,220, 84,130, 21, 96,133,164, 92,204,230,239,126,249,165,127,252,247,127,243, 11, 95,252,146,140, -167,174,186, 90, 46,206, 79,142,142, 31,238, 61, 60,120,112,240,232,224,141,123,111,191,181,247,176,235,243, 98, 49,127, 98, 36, -207,220,190,249,147, 31,251,248, 23,127,249, 11,227,201,232,228,248,225,157, 59,111,244,185, 80, 32, 96, 60,222, 63, 26, 17,223, -220,221,158,140, 90, 4,119, 32, 29,148, 44, 64, 66, 8, 82, 69, 60,125, 42, 82,117, 63, 8, 6,104,232, 21, 87, 57,140,254,134, -173, 87,253,104, 97, 42, 86,155,164,110,186, 78, 57,122, 12,226,230,165,104, 54,103,150,170, 2,110,131, 48,114,229, 7,120, 21, - 3, 3, 54, 77,163, 69,135,254,202, 99,119,177,176,102,117,175,231,130,225,177, 42, 33, 34, 34, 48,168, 22, 48,171,225, 97,102, - 65, 36,105, 4, 17, 89, 2,173,239,224,248, 88,164, 12,107,126,149,112,197, 82, 58, 32, 19,186, 85,221,241,112,254, 42, 53,167, - 11,100,106, 44, 28, 99,163,102, 41,103, 38, 22,145, 74,243, 27, 34, 48,110,176,222,184, 14,171, 87, 0, 14,209, 7, 4, 12, 35, - 50, 5,102, 34, 85,211,148,134,166, 19, 81,177, 12,224, 76,236, 80, 17,151, 68,132,102, 0, 70, 44, 82, 77,112,195, 2,187,102, -139,205,201, 52,169,198,235, 79, 36, 45,255,254,207,254,242,236,226,162, 62,224, 70,109,123,109,123,123, 62,159,189,231,230,206, -171, 79,221,158,182,237,124, 49, 59,159, 47, 1,105,123,115,179, 79,217,172,184,251,162,235,175,174,102,219, 27, 83, 9,225, 42, - 39,206,214, 54,244,216,117,137,196,103, 87,151,145,112,107,103, 27, 99, 44,197, 76, 11,147, 32,227, 64,122, 33, 66, 66, 85,175, -110,206, 97,107,232, 64, 72,177,137,106,158, 74,207, 67, 75, 0,234,181, 76, 72,220,220, 77, 9,217,220,221, 52, 72, 0,162, 98, - 90,185,158, 53,222, 10, 6, 84, 57, 23,238,110, 32, 66, 85,100, 10,195, 78, 17, 9, 49,231, 36, 67, 78, 30, 29,153,193, 42,106, -172,106, 66,209,134,175,159,213, 77,123,125,208,195,112,182,246,129,213,230,235,217,188, 15, 3, 24,243,250, 40,174,118, 2,164, - 58,106,124, 39, 0,227, 44,193, 74, 81,115, 80, 67,128,146,250,208, 52, 12,185, 20,175, 44, 22, 31,104,148, 0, 72,192, 84, 65, -151,235,201,248, 26, 3, 90,231, 61, 53,232, 60,212,184,134,177,188,175, 27,182,245, 20, 95, 7,239,180,190,240, 13, 47, 6,119, - 43,149,200,235,158,213,164, 86, 6,201,135, 0, 88,189, 46,212,209, 24, 65,197, 92,160, 0,152, 91,113,167,209,100,139,205, 86, -231, 51, 77,101,250,212,238,219,111,124,255, 95,253,254, 31,124,238,167,127,238,153,167,174,207, 47,206,157,163, 27, 74,219,186, -154,165,124,253,137, 91,207,191,244,202,163,253,187,109,211, 86, 56,246,187,223,253,234, 31,255,233,191,255,225, 91,119, 62,246, -145, 15,222,125,227,135, 28, 37,247,169,109,218,102,186, 37,238,230, 5,134,251, 18,107,202,142, 72, 40,110,197,144,201,171,194, -144,220,134, 78,150,123,189, 82, 84,246, 95, 52, 51,102,242,146,205, 24,209, 93, 21, 20, 93,168, 20,115, 0,203,125,152,108,131, -132,146,186,110, 49,219,185,245,220,104,114, 77, 75,118, 20,203, 89, 23,103,189, 5, 8,109, 16, 22,194, 16,140,136,186,213,106, -181, 90,229,146,213,124, 50,106,167,227,201,120,251,250,226,236, 97,206,105, 60,153, 94,158, 60,236,150,243,102,247,214, 98,118, - 24,227,102,215, 41, 97,140,163,105,211,198,229, 98, 49, 26, 79,143,246, 95,227,184,105,230, 39, 7,247, 54,118,111, 95, 45,150, - 87, 23,151,151, 87,151,211,209,196, 76, 17,253,198,134,176,141, 15, 79,207,132, 67, 46,118, 49,159,223,222,221,109, 66, 72,150, -117,149, 28, 64, 43,249,121,173,254,237,251, 52, 20, 18, 0, 75,182,150,163,183,126,181, 90,112, 93, 5,173,211,145,179,213,106, -107, 83,162,200,213, 98, 65,147,209,127,245,245, 95,255,210, 47,126,254,230,237, 39, 65,184,228,126, 49,155, 29,236,221, 57,120, -248,240,244,242,252,209,233,233,209,209,233,217,229,172,235,186, 92,244,222,254,193, 7, 63,245,209, 95,251,234,215, 54,183, 55, - 46,143, 15,112, 28, 15, 78, 30, 29, 28,159,110,117,249,209,201, 89, 89,118,215,183, 54, 70, 33, 84,241, 69, 37,212, 19,177, 91, - 70,224,218, 50,175, 59,163, 48, 64,179,171, 32,200,235, 73, 22,107,199,199, 21, 17, 8, 67,241,108,238,232, 16, 68,212, 10, 2, -155, 58, 50,176, 48, 58,228,172, 69, 75, 51, 10,214, 91, 49, 3, 98, 34, 82,128,100, 26,232,113, 53,207, 9, 61,229, 84, 11,227, -238,238, 8, 66, 66, 12,230,181,111,239,194,164,102, 76, 12,232,174,170, 86,132,184,250,179,193,234,123, 9, 88, 56,198,152,251, - 92, 45,119,196,132,230,170,142,132,181,139,224,213,235,188,254,158,170, 22, 53,192, 10, 6,198,154, 95, 20, 98, 43,198, 49,178, -144,169,247, 57, 17, 64, 8,204, 72, 54, 80, 2,217,235,239,155,200,193, 57, 68,183,108, 14,174, 42, 33,212, 56,204, 0,254, 54, - 40, 41, 91,213,235,212,233, 36, 99, 46,134,136, 34, 81,179, 18, 98, 77, 14,214, 56, 95,140,193, 17,204, 33,231,202, 45, 64, 4, - 3,119,114,239, 83,214,201,180,235,251,189,189,183, 23,203,101, 37,238, 78,154,230,125,239,121,207,183,190,247,253,103,166,252, -236, 19,183, 28,121,131,195,139, 28, 30, 28, 29, 95,186, 74,144, 40, 2, 30, 83,201,110,154, 82,153,205,151, 44,125, 19,227, 57, - 98,187,234, 67,136, 33,142, 0,113,177,234,180,207, 55,111,239, 18,135,250,148,174, 71, 79, 38, 10, 44,166,102, 86,123,139, 0, - 68,224,142, 84, 25, 60,188,234,123, 93, 46, 41,196,128,100, 94,135, 97, 22,145, 20,170, 77,139,214,154,101, 30,128, 97, 3, 39, - 22, 74, 46, 18,197,181, 84,146,137,187, 19, 56, 19,230, 58, 64,119, 39, 68, 85,245, 98,192, 96,174,252,213, 47,255,242, 32,242, - 92, 87,129,134,150, 81,253,209,180, 86,122, 12, 13,248, 53,255, 7, 0, 8,137, 42, 31,134, 9,201, 6,147,198,186,183,191, 6, -101, 84, 92,212, 48, 37,169,184, 12, 53,211, 58, 94, 7,170,217, 38,128,146, 58, 67,153,140, 6,107, 73,101,243, 12, 72,151, 33, - 75,255,120,234,179, 6,231,226, 59, 36,246,199,167,238,122,156,175, 16,204,250,113,169,131, 30,170, 0,189,202,134, 52,127,135, -113,178,254,165, 7,233, 88,117, 57, 97, 28, 4,129, 48,148,102, 1,129, 80, 16,205, 20,166, 27, 55, 24, 40,245, 43, 68, 30,111, - 95,187, 60, 63,249,103,191,251,141,159,248,216, 39, 63,244, 19, 63, 89,208,205,137, 36, 80, 16, 68,164, 70,170,219,122,107,123, -247,123,127,253,173, 70, 68, 98,195, 44, 77, 24,161,235,183,190,243, 55, 47, 63,247,244, 51, 47,190,116,126,118,250,234,143,254, -216,229,249, 9,197,136, 21, 12, 28, 27, 83,173, 23, 29,175, 87, 12, 17,215, 60, 72, 73,253, 29,219, 8, 12, 99,172, 0,128,161, -153, 52,227, 22,153,205,192,213,136, 5,212,172,100,168,141, 67, 71,237, 59,108, 26,239, 22,230, 14,163, 29,195,176,152, 93,222, -126,250,153,241, 56,220,121,243,110,202,154,138,177,132,102,178,129, 96,163,198, 0, 32,245,253,241,241,241,195,147,147,249,188, -187,182,181,253,204,205,155,227,182,237, 23, 87, 40,194,100, 94,250, 2,152, 87, 23, 44, 35,102, 58,121,120,247,246,115,175,140, - 39, 91,147,233, 54, 34, 93, 94,157, 8,142,227,120,210,140,118,118,111, 60,131, 49,236, 29, 29,134, 24,172, 88, 82,189,185,189, -177,184,186,124,251,240,248, 98,213,165,156, 75,201,211,209,228,240,244,100,217,247,163,209,200,244, 49,218, 31,235, 5,189,118, -171,115, 46, 67,209, 98,232, 92,123,211, 4, 84,232, 74,166,199, 54, 71, 34,112,116,211, 85,223,125,236,253,239,251, 31,255,219, -127,252,243, 63,255,139,163,141,205,130,182,154, 47,102,231, 71,123,119, 94,191,115,231,206,131,195, 71,119,246,238,239, 31, 28, - 93,204,102,169,148,251, 15, 15,217,225,127,250,173,175,255,231,191,254,181,210, 47,115, 90,190,241,250,107,111,190,241,214,201, -233,249,124,177,186, 60,189,156,176, 92,223,220,104,130,212,130, 89,109,182,153, 1, 2, 4, 18, 36,124,220, 55,102,228,172,190, -214,207,160,130, 34, 16,177, 56, 12, 90, 95, 43,197,135, 0, 24, 3, 14, 50,221, 97,148, 72, 84,121,169,160, 30, 99,112, 32, 29, -146,109, 94,141,154, 33, 72, 53, 25, 33,129,173,105,163,132, 84,143, 61, 49, 48, 85,152,181,163, 13, 91, 92, 24,224, 7,165, 16, - 9, 49,162,224, 99,143, 37, 97, 61,249,130,106,133, 83, 57,135, 88, 89,102,245,142,136,196, 52, 64, 65,180,178, 6, 96,221,172, -103, 98, 83, 87, 45,109, 8,200, 4, 72,109, 59,114,117, 55, 75, 37,183,109, 91,211,114, 89, 51,178, 4,150, 58,175,117, 85, 67, - 12, 44,170, 69,205,153,128, 88,144, 4,153, 56,202,160,127, 94,247, 18,131, 80,101,115, 87,254,196, 32,152, 68,174,231, 61, 7, - 36,146, 32,193,215,104, 20, 22,113,135, 46,171,171, 19,113, 94,117, 11, 76,211, 91,207,189,254,218,157,187,247,246,114,201,128, - 64, 72,227,201,228,240,236,124,108,171, 15,189,252,162,180, 99,174,127,113,204, 27,177, 97,164,179,213,106, 52, 26, 95,219,222, - 90,172, 58,213, 34,194,171,156,186, 85,218,217,156,160, 68, 72,186,187,179, 89,204, 1,125,149, 74, 32,223,190,118,173,126, 53, -107,182, 67,130, 32, 81, 81,203,185,135,161, 3, 92, 25, 6, 40, 66, 78,172, 93, 7,174,132, 94, 31,146, 73, 53,178, 0,135,100, - 89, 0,161, 2,150,171,110, 69,173, 88,169, 84,126, 98,118,119,225, 10, 54,112,172, 27, 11,115,119,232,115, 65, 0, 18, 68,164, -156, 50, 11,163,160,155,119,171,196, 95,253,202, 47, 33, 16, 62,214,150, 14,159, 50, 24,198,187,184,182,246,213,235, 72, 45, 25, - 80, 61, 54,250,208,181, 92, 87, 93, 97,157, 94, 30,118,153,176,198,152,250, 80,232,175,105, 21,120, 28,107, 91,139, 89,153, 80, - 68,174,150,253,246,100,188,206,177,172,191, 81,135,152,200, 99, 3, 83,125,250, 15,163, 42, 7, 95, 19, 66,135,148,207, 80,248, - 4, 95, 19, 5,106, 54,127,160,128,213, 23, 24, 13,107, 84, 90, 59, 99,235, 11,133, 43,215, 9,152, 5,227,154,170, 94, 79,141, -132, 72,128,138, 72, 77,179,217,112,236,230,179, 82, 74, 59,158,164,126,249,255,252,222,191,126,247,143,126,240, 83,159,250,169, -226, 70, 18,173,100, 22,137,177, 1,114,116, 50, 51,205,186,177,115,109, 53,155,221,187,119,103, 60,106, 70,147, 41, 19, 78,219, -184,183,255,112,182, 88,125,248,195, 31,154, 93,156,157, 93,156,175,150, 51, 65,146, 16, 88, 26,176, 74, 61, 32,215, 82, 52,161, - 87, 93,189, 59, 2, 75, 24, 30,238,235,202,216,250,143,137,227,237,157, 16,163,229,226,169,175, 19,124, 64,228,208,212,191,106, - 96,212,148,220,212,145, 39,215,175,165, 98, 15,246,246, 23, 93,255,228,211, 79,141,167,237,254,189,189,213,114, 46,177,105, 68, -132, 72, 70, 45, 67,114,203,169,239,247,246, 31,158, 92, 92,206,151,221,173,157,173, 23,158,124,242,242,226, 76,198, 27, 55,159, -122,151,132,105,234,242,120,115,231,209,222,107, 72, 4, 86,220,140,161, 28,239,191,198, 44,139,171, 83, 4,230, 16,151,171, 21, -120, 22, 9, 7,143, 30,254,224,238,155,165, 20, 4, 13, 80,250,148,226,104,251, 98,190,188,127,240, 48,245, 73,130,148,146, 82, - 46,171,174,103, 97, 33, 30,148, 47,131,181,203,137,107, 62, 4,194, 90,168, 91,207,234,102, 94,137,181, 69,181,126,209, 25, 81, - 85,183, 54, 54,127,235,239,253,103,255,243,239,252,147,119,253,200,123, 81,130, 89, 89, 94, 93,157, 60,218,191,251,214,235,175, -189,245,230,254,193,225,157, 7, 7, 71,167,231,102,142,200,155,211,205,207,124,248, 3,191,243, 15,190,246,145, 15,127,224,244, -228,224,193,222,189,195,227,163, 56, 29, 49,241,157,215,223,222,110,155, 39,119,119, 55,198, 35, 66,174,221,162,162,102,197,144, -134, 34,210,227, 79,117,213,200, 20, 53,124,140,187, 28,216, 25, 96, 94, 28,192, 75,241,162, 54,124,251,184,185,149,172, 8, 80, -215,199, 67,191, 20, 77,205,218, 81,163, 10,128, 16, 2, 13,191,130, 57, 11,187, 13,159,109, 53,231,138,185, 70,116,116,102, 68, -166,146,213,220,107, 89,191,254,176, 24,197,205,189,216,122,141, 4,228,228,106, 72, 36, 81,234,208,211,208, 16, 73, 98, 36, 71, - 45,250,248,236, 84,231,229,176, 46,108, 51,139,185,173, 7,166, 53, 78,140, 77,219, 20, 53, 98,174, 92, 63, 55,119,130, 38,180, -166,131,150, 7,106, 50,193,193,235,157,134,165,109, 26, 53,171,158,102, 22, 1,170,106, 42,172, 66,205, 97,172, 1, 96,174,106, -234,104, 65,196,205,112, 64, 51,129, 91, 65,198, 16,132, 68, 28,173, 6,189, 99, 96, 65,236, 75,113, 43,224,228,142, 90, 52,121, -226, 27, 79,158,159,207,246,246,246, 86,203,101,165,196, 63,255,204,147, 27, 27, 91,151,103,199, 63,245,242, 11,211,205, 45, 14, -177,150, 30, 57,132, 81,219,140, 66, 12,102,171,126,217,153,183, 77, 59, 26, 79, 22,139,149,106, 61,233,226,241,249, 69, 35,176, - 61,110, 36,136,179, 92, 94,206, 54, 55,198, 18, 35, 20, 67,162, 16,155,166,109, 81, 66,125, 10,161, 1, 2, 26, 58, 86,175,156, -176,170,163, 91,125,220,155,131,169,214,244, 68, 5,196, 10,135, 84, 50, 85,189, 44,113,189, 42, 17,179,149,130,213,101,205, 53, -165, 90, 31, 89,200, 64,106, 90,187, 14, 34, 84,241,241,196,100,128,150,173,126,255, 8, 62, 70, 36,226,160,133,115,180, 53,148, -119,200, 64, 85,212, 21,241, 90,178,240, 56,220, 50, 60, 97,235,188, 75, 0,173,244,206,193,104,168,153,193,223, 66,156, 59, 16, - 16,227,128,109, 31,182,172,232,104, 4,104,234,200,220,247,157, 34, 1,168, 91, 53,144,185,187, 85, 72,239, 0,151,135, 1, 11, - 92,205, 30,104,238,110, 3, 29,119, 29, 99,127, 44, 6, 25,134,254,248, 14, 59,198, 31, 31,245,215,128,204,225,210, 83,215, 8, -132, 14,164,142,100,238,172,180,206, 27, 13,252, 30,116, 53,156, 76,174,177,150,249,217,177, 34,143,167,155,162,171,255,251, 95, -254,139,205,157,103, 63,241,241, 15, 25, 11,228,190, 44,230,212, 78, 89,154,202,170, 55, 83, 77, 6, 72,121, 57,127,255,143,125, -232,173, 31,252,205, 98, 57,107,154,182, 29,111,180,155, 91,239,127,239,123,190,243,189,239,190,241,250, 27,239,250,145,247,252, -197,159,252,209,139,175,188,251,226,244,176,235, 3,135, 72, 52,169,209, 33, 32, 18,137,136, 84, 67,238,232,224,165, 32,177,150, - 12, 81, 88,194, 99, 47, 57, 2, 74,140, 86,119,203, 33, 32, 1, 40, 89,238, 60, 0, 9,155,106, 73,102,170,200, 50,190,190, 35, -147, 54,221, 63, 76,125, 65, 83,235, 23,200,215, 44,245, 78, 77, 32,147, 32,161,153, 94, 93, 29,181, 91,193, 12, 82, 74, 93,206, -102,166, 94,158,126,226, 73,230, 24,219,166, 29, 77, 66,104, 0,209,209, 78, 31,188,182,185,117, 19,226,244,234,226,112, 50,106, - 75, 49,119, 89,245, 93, 28,109,104,233, 79,246,222, 28,221,124, 22, 11,228,146,175,186,126, 99, 50,106,144,150,253,226,232,172, - 75, 57,191,248,236,238,243, 79, 63,125,121,117,121,103,127,127,149,243,246,116,115,115, 50, 45,170, 53,237, 81, 87, 12,230, 54, -112, 14,141,221, 13, 12,140,214,103,137, 53, 63,147, 16,182,101,178, 96, 89,229,164,165, 0,208,103, 63,246, 19,191,253,245,175, -127,240,131, 31, 65, 9,203,212,151, 46, 93,158, 29, 61,216,187,123,231,238,221, 7,199,199, 7,199, 39, 23, 87,243,148, 82, 42, -170,186,250,145,231,158,253,233,159,252,240, 39, 63,250,161,110, 62,123,248,112,111,101,229,181,253,253,221,205,233,236,242,252, -248,237,195,167,110,236, 78,218,198,220,192, 0,153, 7, 35, 11, 14,201, 23, 90, 31,128,234,216, 23, 0,114, 54, 3, 21, 98, 36, - 54,247,154, 56, 84, 85, 87,205,154,187,190,147, 16, 4,153,153,193, 16,136, 66, 16,115,115,115, 66, 44,166,136, 20, 67, 83,114, - 41,197,137,145,131,228,156,235,156,180,226,198, 66, 45,175,154,173,219,206,192,224,107, 86,158,185,154, 3, 82, 32,115, 21,137, - 68,172,170,128, 64,129,144,168, 58,108,128,128,155, 48, 96, 59, 24,153,217,235, 59, 82,139, 57, 18,145,155, 59,168,132, 0,102, -102, 3,168,207, 29,173,162,216,221,161, 86, 66, 8,177,128,155,135, 16,192, 93,221, 28, 48,198,160,238,165,104,125,249,161, 3, - 26, 20,215, 97, 29, 34,108, 6,165,228,122,144, 34, 51, 47, 86,125,126,224,195,131,165, 90,103,145,169, 54, 3,204,114,201, 42, - 36,101, 16, 60,212, 11, 60, 19,137,153,170,106, 12,132, 28,138,218,154, 74,199,106, 30,152, 86,221, 10,119,110, 34,143,126,240, -253,191, 58, 62, 57, 3, 84,102,154, 78, 39,161,137,103, 23,151, 63,241,226,243,219,215,174, 23, 71, 84,139,177, 81,118, 45,125, -178,130, 66, 79,222,184, 54,105,227,193,229,153, 55, 45,182,227,146,138,154, 78, 71,205, 43,175,190,252,253, 31,188,126,125,186, - 65,196,224,124,117,185,100,128,102, 52,114,117,103, 20,145,216, 54, 44, 65,221, 66,108,220,113, 57,191, 42,171, 21, 19, 18, 83, - 81,173, 10,110, 95,195, 96, 25,221,133,170,246,150, 3,149,140,110, 26, 66,228,122,151,130, 66, 65, 92, 13, 28, 80, 4,220,145, - 9,128,153, 84,179, 57, 86, 18,135,187, 59, 11,187, 91,238, 13,184, 26,191, 17,193,155, 40,142,132,185, 72,229,237,255, 45,207, -167, 85,234,244, 0,227, 27,234,191,104,245,177,190,206,198,215,201,204,227, 12, 31, 85,170, 58,160, 16,224,176,114,169,167,120, - 48, 85, 34, 2, 38, 7,112, 37,112,165,186, 42,170, 18,141,138,166, 67,136, 65, 2,148,229,114, 53,109,216,215,209,220, 1,235, - 72,130,128,192, 6, 74,102, 90, 61,140,195, 75,162,128,105, 25, 14, 27, 53,148, 54, 12, 33,125, 96,220,212, 9, 34, 83,157, 59, - 13,181, 91,170,236,174, 53, 22,109, 80,247,209,154,100,128, 80, 91,172,195, 59,108,232,146, 54,113,131, 85, 75,214,229,242,106, -186,125,115, 58,150,111,252,139,127,121,213,243, 87,126,246,179, 24, 56,119, 29, 5, 78, 93,215, 54, 6,104, 3, 27, 36,247, 86, -136, 2, 47, 46, 23,132,242,234,203,175,124,247,245,239, 52, 77,219,142, 38, 65,154,103,159,123,246,225,195,131,255,248,173,191, -186,182,187,225, 8,142, 20,219, 81, 55, 95, 76,198, 91,104,102,132, 76,193,209, 6,210,252,112, 10,136,166, 5, 76, 73, 2, 56, -186, 42, 18, 33,203,223,106, 39,187,101,163, 24,202,106,137,178, 86, 62, 6,174,185,104,100,105, 54, 38,161,141, 80,108,118,113, -110,104,197, 74,159,115, 96,170,165, 58,142,155, 64,174,101,181,188, 58,198,173, 91,134,158,179,246,169, 79, 69,221, 96,103, 60, - 97,193, 8,160, 90, 70,211,105, 8, 97, 49, 59,115,222,104, 55, 54,132,169,191,162,166,221,228, 24, 71, 27, 29, 35,148,180,236, - 23,139, 66,180, 53,217,188,186, 56,207,169, 39,239, 91, 76,251,199,151,177,105, 75, 49, 64,126,227,222,157,107,215,182,111,221, -186,177,247,224,193,124, 62,239, 82,154,182, 77, 16,169,196,149,154,175, 37,115,100,246, 90, 34,174, 83,104, 70,115, 0,179, 1, - 43, 97,102,136,196,184, 57, 26,245, 37,111,111,111,252,215, 95,251,141, 47,125,225,243,237,214,246, 42,103,235,186,126,181, 56, - 63, 62,216,123,251,238,157,189,135,123, 7, 7, 39,151, 23,245, 15, 4,230, 59,211,201,251, 95,124,246,107, 95,254,210,198,180, -189, 56, 63,125,253, 7,223,167,209,116,222, 47, 90,145,183,126,120,119, 20,227,179,215,119, 36,200,192,123, 33, 28, 8,183, 6, -204,140,110, 21, 56,103,232, 78, 40,136, 14,144,146, 18, 58,209,160,166, 51,213, 92,114, 5, 19,116,125, 90,165, 46,245,201,205, -146, 65,211,182,109, 24, 1, 40,162, 8,178,155,117, 90,154,216, 8,139,213,137, 12, 1,128,231,146, 75, 46,196, 2,224, 65, 16, -136,188,254,231,122,238,179, 97, 69, 85, 80,173, 74,242, 98, 61, 12,214,161, 7,173,147,246,106,197, 29,156, 43,226,128,165, 86, - 7, 88,168, 86, 90, 0,161, 20,117,243,208,114,213,125,148,129,201, 12, 0,200, 40,106,134, 3, 50,209,115,206, 18,132, 88, 16, - 32,196, 80, 65, 3,197, 84,136,153,165,170,125, 40,240,122,106,204,204,140,158, 57, 70, 4, 79,125, 34,102, 7,100, 22, 22, 46, - 10,128, 90,157, 16,182,190,139, 19, 98,173,132, 1, 20, 85, 69, 18,116, 42,110, 80,177,136, 49,212,239,243,162, 5,200,219,201, -200,114,201, 37, 49, 72,165,223, 32, 0, 35, 25, 88,118, 26, 53,227,171,139, 83, 36, 52, 87, 66, 26,143,218,247,190,242,242, 27, -247,238, 63,209,198, 39,110, 92,115, 17, 2,174, 29,162,218,132, 15,177,117,114, 43,190,181,179, 35, 28,206, 46, 47, 46, 82,122, -225,185,167,154,166, 77,169,191,255,240,112, 20,228,250,246, 38, 16,171,123,183, 92,238,236, 76,131,196,106,141, 6,247,146,146, -230, 82,227,236,220,182,204,132,109,212, 92,114, 86, 52, 53, 34, 2, 71, 22, 85, 35, 66, 3,118, 47, 66,148,139,101,243, 24, 69, - 45,104, 89, 57, 50, 49,184,163,103, 37, 30, 70,221, 69,139, 21,173, 97, 45,150,208,149, 2, 96,132,140,204,170,133, 0, 72,208, - 10, 40, 0, 49, 48,144,155,131,171, 8,136, 59,161, 2, 49, 33,113, 13,255, 57, 26, 13, 40,130,225, 25,237,234,143, 81,193,117, - 28, 99, 86, 97, 38,245, 31, 0,160,186,153,169, 8, 26, 92,247,135,234,110,215,209,234,161,160, 18,199,220, 84,144,212, 7,151, -164, 87,102,173,209,116, 50,154, 45, 87,155,227, 45, 85,179, 10,217,169,112,211,186,156,177,186,155, 1, 7,119, 43, 85,252,184, - 22, 40,213,209,167, 33,210,154, 68, 63,252, 91,213, 24,217,107, 73, 99,205, 45, 25,126,159,143, 35, 12, 85, 73,101, 62,212,119, - 7, 78,142, 15, 51, 74,174, 68,189,192,106,125, 74,221,106, 37,113, 60, 25,143,255,240,155,191,191,119,124,245,107, 95,252, 37, - 48, 77,243, 21, 8, 33,141, 43,231,171, 70,210,173, 87, 55,114, 77, 38, 77,201,189,165,171, 23, 95,124,229,181,183, 94, 95, 44, - 22,227,209,188, 29, 77, 67,104, 94,122,241,249,191,254,246,183,247,247,246, 62,252,209,207,222,187,251,218,205,219, 79, 28,237, -239,229,210, 17, 5,150, 88,107, 5,128, 58,100, 96,136,204,242,122, 19,129,192, 3, 79,217, 75, 6, 64,146, 0,170, 53, 16,236, -230, 90,172, 70,143,165,105,220, 13, 74, 1,179,176,185,209, 76,198,110, 94,186, 62,151,186,100,206, 23,167,103,169,175,211,110, - 18, 9, 18, 67,238,251,148, 11, 33,131,231,249,114,145,250, 84, 74, 14, 65, 38,227, 81,202,165,148,254,230,245,167,219,201,100, -121,121, 28,227,104, 50, 41, 77,172, 9, 64,118,192,249,217, 33, 69, 42, 89,103,151, 39,170, 62,221,184,121,121,188,215,229,252, -230,221,215,190,115,231,110, 46,152, 77,111,223,124,130, 89,206,175,174,174,174, 86,243,213, 66,152,183, 54,166, 41, 23, 34,208, -162, 86,245, 13, 18,107,159,179,184, 7, 51, 5, 21, 67, 71, 44,158, 45, 33,215,199,212,128,201,171,226, 58, 71,244, 95,249,220, -103,126,253, 87,127,237,213,151,127,164, 39, 47,238,125,183, 92, 94,156, 31, 30,236,191,117,247,238,219, 15, 15, 14, 78,207,102, -243,133,154,239,108,110, 45, 87,203, 27,155,155,191,250,243,159,249,192,123,222,125, 53,187,184,119,119,239,244,226, 10,218,136, -164,111,190,126,103,179,105,111,239,110,141,154, 88,177, 89,104,128,132,224,238,197,220,181,105,218, 92, 10, 19,187, 89,214, 82, - 93,195, 61, 25, 40, 80, 32, 51,171, 99, 76, 51, 16, 33,118, 66,242,148,148,168, 9, 82,140,108,185,236,199,109, 67,128, 69, 75, -140, 17, 1, 74, 81, 7, 13, 28,132, 67, 85, 46, 68, 10,238, 85,185,142, 18, 4,215,236,123,215,181,163, 30,208,204,106,244, 69, - 75, 38, 0,103, 10, 78,142, 48, 16,154,152, 48, 16, 20,231,234, 6,169,119,106,170, 3,210, 10,220, 24,246, 59, 89, 85,152, 1, -129,132,173,216,144,199, 29,146, 98,162, 94, 74,201,245, 36, 84, 91, 69, 77, 20, 67, 34, 38, 33, 84,179, 90,144, 10,196,245, 85, -235,136, 34,140,142, 6,250,184,122,198, 60, 42, 57,195, 16,110, 39, 34, 2,119,213,194,200, 5,106,116,194, 25, 49, 48,170, 87, -168, 25,230,148,221, 92,152, 76,209,209,136, 25, 12, 2, 49, 11,171,170,154, 13, 93, 63, 45,232, 32, 32,117,100,207, 8,195,240, -203,204, 68,250,212,191,253,246,253,179,243, 43, 66,220,218,216,140, 44,123, 7, 71,161,244,175,188,235,105, 71, 6,132, 24, 56, -247,150,114,102, 17, 36, 86,119, 48, 37, 36,142, 56,217,218, 22,230,166, 91, 30,157,156, 30,155, 19,248, 72,232,165,167,159,148, -166, 69,162,217,178, 39,178,182,109,153,217,138,186,170,162, 89, 6,119, 19, 38, 15,161, 17,105,218,201,226,234,162, 20, 69,116, -172,213, 4, 39, 43,134,132, 14,206,129, 3, 54, 93,215, 5, 97,137, 65,221, 64,141, 36,186, 25, 88, 1, 96, 98, 6,128, 82,195, -142, 32,224, 0,102,110,102,102, 1,121,176, 82,184, 9,177,154, 42, 32,178, 49,114,229, 61,168, 89, 27,101,101, 36,143,135,212, -181, 0,186,238,232, 15,238, 14,175,180,102, 38,175,158, 13, 36,175, 32, 98,172, 76, 33,171,108, 57,183, 92, 91, 72,235,222,235, -218,236,204, 72, 86, 43, 81, 53,240, 49,100, 10,234, 64,200, 20,136, 28, 1,212, 29, 77, 55, 38,211,139,195,115,189,190, 93, 47, -142,132,224, 90,136,155,245,148,220,135,130,175, 19, 24, 88, 93,185, 61, 14,168,243,250, 68, 94, 57,233,132,174,117,228,226,238, - 14,130,166, 3,224,125,160, 35,172,239,212,239, 44, 16,170, 2, 13, 13,108,192,117,213,189, 21, 48, 50,142,188, 75, 5,186, 92, -178,170,239,236,236,252,224,251,223,250,206,107,251,191,250,229,191,179,115,227,102,239, 22,132, 43,147,178,153,110, 9,163, 21, -173, 70, 25,226,224,170,168, 6, 78, 33,182,237,116,227, 39, 62,246,169,127,251, 7,223,152,140,167, 77, 51, 65,166, 91,183,159, -218,221,219,255,235,239,254,240,249,119,189,212, 45,103,247,223, 90,228, 82, 70,211,109,115, 35,181,122, 0,172,223,205, 36,164, - 90,189, 53,196,200,213,210, 98, 80, 96,141, 18,116, 10,196,162, 41, 33, 59, 6, 9,227,209,128,163, 69, 79,243,165,150, 66, 18, -218,233, 8,152,202, 34,153,186,170,166,110,133, 28,195,168, 45,221,146, 7,103, 8, 9,203, 74,123,213, 66,131,221,102,153,178, -246,185,180,136,172, 37,155,229,174,219,189,121,171,109, 71,139, 11,159,157, 63, 42, 38,171,217,101, 8,194, 84, 98,228, 44, 44, -196, 77,187,145, 82, 86, 45,103, 71,251,103,203,217,198,198,246,101, 15,219,187,183,231,243,249, 38,211,219, 15,238,103,179,105, - 51,122,230,246,237,139,197,188,194, 6, 83,201, 0,174, 90,183,106,145, 70, 52, 80,234, 80,235, 37,145, 8,234,100,184,168,153, - 2,178, 5,166, 32,193, 12, 76,211,211, 79, 61,249,235, 95,254,242,103, 62,253,105,105, 70, 9, 49,231, 62, 45, 23, 87,103,167, -175,191,245,198,219,247,247,247, 15, 31,157,207,230, 41,229, 85,215,109, 76,198,109,224,207,252,248, 79,254,220,167, 63, 38,140, - 23,243, 51, 31, 53,119, 14,143,199, 49,204, 22,139,123,119,247,119,154,209,141,157,141,122,253,119,116, 66,145,224, 94, 60,187, - 34,144, 41,230,162, 72, 4,228, 94, 12,136,128,217,220, 24,217,200,213, 44, 6,113,244, 90, 66, 2, 38, 47, 86,178, 1,120, 96, -182,208,244,220,197, 54,132,166, 97,146, 16, 34, 33, 22,247,241,184, 45,165,184,131,170, 18,184, 1,192,144,185,196,162, 22,185, -114, 4,177,118, 59, 29,188,198, 0, 0,200,221,192, 75, 93, 73, 50,210, 48,117,103,242,186,124, 52, 4,174,200,108, 18, 33, 83, - 3,100, 38, 89, 55, 7,135, 51, 12, 17, 12, 47, 74,162,122, 76, 91, 39,161,201,220,106,235, 69, 85,235, 5, 49,171, 3,152, 4, - 0, 85, 53,118,132, 32, 13, 98,118, 83,112,167,200,245,202, 93, 25, 81,128, 40, 33,184,230, 82, 50, 90,101,152,155, 19,128, 43, - 6,114,131, 90,126,212,162,210,196, 74, 91,146, 24, 75,214,110,153, 99, 32, 5, 55,171, 68, 20,148, 16,171, 15,175, 91,245, 33, - 10, 33,106, 81, 98, 67, 51, 36,130, 50, 12,103,171, 29,165,206, 34,114,215,117,243,197,116,178,241,210,139,163,135,251, 15,111, -223,184,118,181, 92, 92,158, 28,127,242,149, 23, 38, 27,211, 2,228,224,185, 79,238,208,180, 49, 23,173,154, 31,226,152, 75,238, - 83, 38,102, 25,181,215, 71,241,198,238,110, 46, 70, 0, 34,204, 49, 82,136, 57,229,229,124,177,179,181, 57,106, 70,197, 29,209, - 41, 70,183, 2,168, 68, 18,218, 81,108, 71,238,174,150, 42,174, 29,134,173,197, 48,119,168, 15, 44, 51, 3,200,213,142,146, 82, - 30, 2, 33,106,136,160, 78, 60,140,218,173,166,135, 74, 42, 80, 25,223,149, 42,106,230, 54,164, 74, 8, 17,178, 49, 97, 46,238, -217, 80,234, 18,168, 82,105, 77,192,135,142, 47, 12,156,220, 1, 75, 0, 96,213,191,142, 44,107, 98,251, 80,193,122,140, 8,131, -170,144,115, 28, 94, 9, 60,168,222,235,243,178,146, 29,157,192,179, 14,210,181,117,248,163,226, 23,144, 6,204,154, 32,130, 35, -183, 65,115, 63, 91,234, 70,227,107,188, 12, 13,152, 92,112,119, 67,174,143,107,131, 42, 21, 25, 80, 25, 21, 31,236, 68,232,117, - 74,234,149, 84, 49,208,174,169,142, 91,180,122, 98,214,211,163,129,128,135, 6,198, 64,190, 70, 27, 97,101,103, 98, 0, 55,167, - 2,142,168, 33,173,150, 28,152,136,115,191,216,218,222, 57, 59,124,251,223,254,201,159,127,230, 19,159,218,222,154,172,250, 62, -142, 39,200,193, 53,187, 16,212,149, 9, 58,106,189,114, 20, 71, 40, 93,146,192, 68, 32, 49, 60,122,116,255,141,187,251, 59, 59, -187, 49, 54,219, 91,215, 41,210, 11,239,122,225, 47,254,226, 47,127,248, 55,223,255,240, 71, 63,250,214, 27, 63,184,118,227,137, -110,185, 80, 45, 28,162,153, 3,162,153, 17,128, 91,109,150, 65, 29, 63,154,170,217, 0, 87, 48, 0, 64,148, 40, 68,128,227,145, -165,158,170,162, 70, 33,110,142,242,170, 7, 18, 9,194,236,253,229,220, 1,173, 36, 38,214,188,210, 82,186,110,145,251,194, 76, -237,120,178, 90,174,192, 59, 51, 57,123,180,103,150,133,185,244,101,177,234,178,230,101,223,191,240,244, 83, 49,240,108,118, 49, -221,190, 62,158,108,204, 79,246,207, 78, 46, 78, 30,237,143,183,111,140, 39,187,196,220,140, 54, 47, 79, 14,206, 47,142,110,220, -122, 78, 74, 6,157,117,243, 69, 15,240,244,205,231, 83,191,184,154,207, 67, 43,185, 36,132, 80,138,198, 16, 12,252,116,118,150, - 82,213, 8, 96, 81, 35, 38, 20, 4,243, 26,197,245,199, 7,133, 58,216, 54, 38,180,200,132,129,135,110, 62,194,178,239,167,227, -209, 47,124,242, 83,191,249,181,175,238,222,124,202, 8,220,105,181,184,184, 58, 59,121,112,127,239,173,189,123, 15, 15,143, 79, - 47,175,150,171,110,213,175,174,102,171,171,217,229,179,239,126,245,191,248,242, 47,189,252,202,139, 71,143, 30, 28, 29, 28,148, - 24, 94,123,243,205,205,233,248,219,127,243,198, 36,198,119, 93,219, 9,177,173,255,119, 66, 46,128,236, 14, 70, 6,202, 24,212, -148,132,204,138, 96,240,226,245, 80, 95, 5,246,202, 76,129, 34,214,132, 50, 32, 98, 32, 44, 14,170, 70,136, 10,104,166,168, 58, -105,154, 62,219, 56,140, 66, 19,205,205,179, 54, 81,106, 81, 5, 73,164,254,116, 24, 8,169,224, 36, 60, 40,235,170,118,192,220, - 29,161, 17, 46,234,174,185,250, 55,106,168,140,144,235, 15, 86,176,192,129, 0, 85, 21,137, 28, 61, 52,193,212, 88, 4, 76, 7, -243,193, 26, 11,197, 36, 92,255,134, 43,222, 0,176,142,160,212, 0, 77, 69,164,128,186,185,187, 34, 72, 41, 38, 96, 90, 74,223, -107, 8, 77,108,154, 24, 91, 51, 47,150, 9, 24,137, 77,171,101, 19, 12, 32, 50, 27,225,106, 53,199,250,132,113,213, 82,180, 88, -208, 34,177,209, 82,136,184, 20, 99, 36, 17, 94, 47,242,168, 66,105, 66,164,146, 11, 11,215, 68, 10, 2,150,212,171, 3, 33, 52, -161, 5,207,234, 74, 36,165,104,234,150,174,185,109, 70,128, 92,237,206, 44, 68, 8, 90,108,204,120, 49, 63, 47, 57,111,109,110, -149,155,215, 15,207, 46,230,179,171,143, 60,125,235,218,245,107,189,186,251, 96,238, 54,208,172,136, 68, 12,160, 86, 42,116,138, -152,221, 92,154, 16, 80,122,205, 65,144,135,192, 14, 90,238,115, 65, 66,107, 70,163,164,165, 34,241, 77, 11,184,199,208, 54,211, - 45, 67, 48, 85,203, 37,119,189,230, 28, 69,250,146,200, 29, 84, 49, 8, 50,187,154,185, 50,139, 57,184, 21, 0, 84, 53,130,117, -145,146, 17,204, 85, 75, 1, 23, 98, 94, 63,106,193,141,152,205,204, 74, 17, 17, 32, 50, 51, 45, 30, 3,135, 16,178,154,121, 34, -174,127,249,117,146, 81,247,171, 36, 0, 54, 48, 94,124,189, 17, 53, 87,116, 25,160,148,108,110, 72, 80, 11,244, 76, 88, 79,240, -195,124, 99,192, 20, 59,212, 83,239,176, 66,120, 28, 60,116,168,243,211,122,172, 6,115,130,250,108,214, 97,118, 92,167, 32,224, - 96,166,176,179, 57, 58,191,188,216,186,189, 85,116, 29,107, 89, 39,140, 96, 32, 78, 84, 67, 47,194, 26, 89, 89, 27,167,195,160, - 25,225,177, 70,160, 94, 54,222, 81, 84, 87,116,101,125,235,173,163, 97, 67,198,125,200, 83, 27, 0,131, 9, 84, 69, 12, 26, 50, - 51, 76,210,197, 37, 0, 32, 54, 73,211,120, 52, 57, 61,220,255,198, 55,191,249,190,247,127,228, 61,239,121,207,226,242,180,217, -190, 25,154,198,205, 92, 26, 52,101,110, 1, 81,213,172, 47, 68, 68,160,181, 31,200,194, 64,188,154,157,252,238,239,254,243,103, -158,124,151,230,254,236,226,108, 50,221,108, 66,123,237,198,141, 23,158,127,238,175,191,251,218,143,188,239,125, 55,111, 63,249, -246,189, 59,194, 50,153,110, 17,179,132,134,234,145,132, 35, 2, 33, 9,128,154,171,103,116,112, 80, 67, 66,172, 52, 18,128,166, - 29,213,125, 75,201,198,160,128, 4,104,121,149,172,152,230, 28,218,209,106,181,204,171, 20, 71, 17, 89, 16, 57,173,114, 46,190, - 90,174,136,177,153,140, 0, 60, 52, 13,184, 90,209,131,131,187,183,111,237,154, 89,214,210,247,189, 25,104,209,141,209,248,226, -242,188,235, 86, 79, 62,251, 74, 90,205,246,238,188, 49,155,151, 16,167, 86,188,150,193, 74,234, 32,196,182,221, 52, 45,103,167, -247, 79, 79, 31,149, 82,118,175, 61, 59, 26, 79,206,174, 78,219, 81, 60, 58, 62,153,205,230,203,110,233, 5, 10,104, 16,190,156, - 45,143, 79, 79,215,117,227,250,249, 1, 53,136, 1, 8, 80,135,237,200,240,181,145, 74,140,243, 58, 82, 3, 45,202,204,207, 61, -247,212,111,254,234,223,249,228,167, 62, 53,222,220, 77, 57, 89, 94,205, 78, 79, 15, 15,238,239,221,191,191,247,224,240,224,236, -236,114, 54, 75, 93,127,185, 92, 30, 62, 58,126,226,250,206, 63,250,242, 23,127,229, 23, 63,215, 16,252,240,175,254,242,178, 91, -197,173,173,126,181, 58, 61, 60, 23,245, 27,155,147,157,141, 49,137,172,235, 15, 72,132, 97, 24,163, 27, 19,153, 91, 20, 86, 55, - 83, 50,171,165, 16, 48, 55,102,170,178, 48, 2, 52,179,202, 10,210, 4,171,164, 64, 22, 66, 16,102,239, 58,175,160,177, 16,166, -173, 24, 66, 45, 22, 13, 40, 14,128, 38,180,106,252,146,225,176, 0, 0, 32, 0, 73, 68, 65, 84,158, 53, 51, 9,145, 56, 2, 40, - 72,144,156,251, 24, 98, 81, 69, 2,211,122,223, 38, 77,181,248, 74, 14, 4, 80, 87, 47, 52,200, 75,153, 2, 35, 49,129, 67, 77, - 39, 48, 73,197,168,187, 43, 50,231,108,178, 62,172,175,217,219,104,102,170,165, 54, 68,212, 1,220,152,196,177,168, 41,168,179, -176,170,151,100, 76, 80, 84,179,153, 91,113, 8,238, 94, 82,114, 0, 97, 1, 32, 97, 54, 83, 51, 39,177,200,146, 82,114,117, 38, - 82, 45,102, 3, 21,213,221, 84,213,146,139, 69, 25,161,163, 0,184, 48, 21, 4,205, 10,110, 20,184, 30, 47, 73,170, 39,212, 9, -161,100, 5, 52, 97,113,128,226, 61, 33, 85,203, 4,147,146,251, 42,173,144,164,105, 66, 19,131,106, 49, 85, 3, 8, 68,220, 8, - 26,197, 9, 30,158, 29,165,229,234,154,208, 7, 95,126,254,198,181,157, 12, 8, 14, 66,132, 0,185, 62,225,188, 30, 58,107, 98, - 30,188,202, 59, 92,221,160, 55, 69, 30,124,114, 69,157,220, 37,134,197,213,101, 19, 37,196, 86, 93,173, 30, 34,165,234,249, 68, - 75,114,162,220,117,253,106, 5,238, 6,198,136,129, 24,152, 28,138, 3,184,102, 36, 65,231, 10,193,198,202,120, 32, 31,100,156, - 76,238, 78,132,170, 24,132, 9,184,228, 92,165,160, 64,108,234,132, 24,154, 72, 76, 41, 43, 2, 4, 6, 0,212, 10,120,224,160, - 57,195, 80, 76,243, 46,169,101, 21,213, 36, 84, 87,221,160, 3, 36, 1, 28,235,123,184,254,177,203, 48,235,112, 39,226, 26, 76, - 30,228, 97,110,235, 96,228, 80, 76,114, 53,148,193,116, 55,148,146,234,113, 6,214,104, 96,171,117, 93,128, 74, 45,199,181, 75, - 3,192,212,118,182,119, 78,239, 61, 40, 55,166, 96, 14,196,143, 57,128, 96,117,204, 95, 5,215,235,192, 78,133, 92, 86, 93, 23, - 26, 60,238,216,214,219,134,173, 11,120, 84, 61, 43,213,208,138, 96, 21,163,129, 88,179,104,100, 69, 11, 99,160,250,138,144,136, -168,230, 25, 76, 17, 55,250, 69, 82,135,166,105,204, 60, 54,237,114,126,246,141,111,254,225,243, 79,191,244,209, 15,252,104,223, -247, 78, 33,142, 90,115,181,126, 37,147,109, 36,206, 89,145,168,116, 61,198, 8,168,158, 82, 78,169,221,218,206,125,183,125,243, -230,239,253,179,111,172,122,253,205,127,248, 15, 15, 30,188,249, 23,127,246,167, 27, 27, 27, 79,220,126,122,132,147,167,158,126, -250,252,242,226,175,255,211,183, 62,253,185,159,121,244, 96,111,178,177, 67, 68,125,183, 68, 36, 39,100, 36, 34, 20, 10,106,182, -166, 92, 22, 4, 2,169, 30, 53, 4, 55, 51,224,216, 34,139, 43, 16,162,107, 1, 66,119,243,236,142,104, 10,221, 98, 89, 82,223, - 76, 71, 66,156,115, 49,230, 46,173,144, 12,164,169,137,216,209,100, 67, 51,244,185, 47,253,226,244,232,225, 51, 79,220, 80,211, -197, 98, 57, 95, 46, 87, 57, 35,248,141,221,157,130, 49,182,178,123,243, 73,105,162, 67,136,145,101,218,230, 84,192,203,229,249, -213,120,178,201,165,191,188, 58, 62,159,157,108, 77,119,111,221,126, 87, 94, 45, 38,155,187,139,213,236,193,225,193,178, 91, 25, -192,230,198, 70, 53,220, 35,194,168,105,158,185,221,252,199,254, 59,167,231, 87, 34,188, 70, 4, 1,186,241, 90, 24, 96, 14, 12, - 94, 91, 68,117,176,199, 8, 24,100,185, 88,108, 79, 55,190,242,249,159,251,249,207,124,246,217, 23, 95,146,102,146, 53, 47,103, -231,103,199, 7,247,223,222,187,255,240,209,195,227,227,147,203,203,217,124,126,113, 57, 63, 59, 61,235,115,254,248,123, 95,253, -173, 95,251,149,151, 94,122,161,239,150, 39,179,203,189,171, 75, 75,221,237,221,205, 59,247,238,111,181,205, 4,145,167, 99, 98, - 25,180, 59, 72,130,104,234,131,102,167,138,161,173, 26, 10,208, 84,139, 21, 24, 42,150,213, 62, 10,197,114,160, 80,175,141,150, -221, 12, 66, 32,119, 70, 32, 3,227,138,231,173, 7,115, 0, 68, 18, 97, 2, 84,240,202,125, 50,119, 3,168,151, 54,215,130, 34, - 18, 2, 16,180,113, 82,180, 84, 51, 25, 35,170,209,208,160,182,193, 91, 54, 44,227,104,120, 23, 18,146, 27, 20, 51, 97, 10, 44, -245, 40, 77, 6, 34,141, 90,178, 82, 80,170,144, 6, 25,209,145,106, 12, 13, 1,137, 4,220,213, 21,141, 0, 64, 53,215,118,168, - 3, 3,225,120, 60,234,187, 85,234, 87,102, 30, 69, 48, 68, 48, 44, 37, 83, 64, 67,100,103, 34, 42,166,128, 86, 5, 79,125,159, -188,100,168,220, 75, 67,131,194, 72, 53, 5, 80,204, 25,205, 76, 83,223, 55,227,104,165,122,186, 60, 4,201, 89,135, 76,155,147, - 48,187, 23,213, 97, 46, 28,164,117,215, 84, 10,242, 58, 4, 1,128, 72, 97, 52, 6, 14, 77,219, 72, 8, 86, 20, 1, 73, 24,204, -235, 16,121, 50,218, 28,163,110,143, 11,154, 87,113,130, 26, 34, 20,230, 96, 96, 96, 70, 80,163,138,238, 57, 57, 50, 18, 49, 49, - 48,154,170, 33,171,101, 70, 6,228, 65,131, 71,200,129,251, 84,250,229,106,247,137, 27,192,102,201,173,228, 56, 26, 1, 99,206, -170,203, 21,199,236,230, 69,213,107,158,167, 88, 54, 88,219,176,234, 37,129, 29,177,218,138, 16,209,234, 87,113,120, 86,129, 59, -160, 35,115, 36, 42, 37,151,222, 58, 66, 66,175,113, 88,171, 15,203, 84, 74,196,166,105,154,190,207, 37, 39, 9,204,128,196, 97, -161, 74,140, 96,158,138,129,167,173,233,164,184, 72, 28, 95,203,185, 51, 45,197,138, 0, 56, 24, 18,219,192,211, 88,215,135,200, -234,126,214, 77, 7,207,115, 93,177, 86, 43,163, 15, 68, 97, 68, 66,169,111,130,193,133,138,160, 80,121, 4, 68, 21,100,134,131, - 94, 3, 89,234,149, 65,135,131,190, 1,128, 75, 19,219,136,203,101,158,182, 1,220, 1, 10, 32, 13,209,176, 26,214,161,199, 47, - 15,115, 68, 7, 5,171,149, 55, 34,192,186,200, 53,115,171, 63,143, 4, 65,181,164, 65, 9,100,128, 10, 6, 38,117, 16, 64, 85, - 56,238,238,184,254, 18, 24,120,239,128,110, 74, 97,203,150, 93, 94,204,154,141,169,196,145,151,100,253,252, 27,255,230,155, 55, -174, 61,241,185,207,124, 26, 16, 74,223,181, 27,155, 36,193, 1,156,196,212,172,155,243,104, 3, 12,220,156,106, 39,133,164,153, -142, 81,173,109,199,243,163, 7,255,250,247,191,249,115, 63,247,165, 39, 95,121, 17, 17,130,252,135,203,179,179,157,173,221,166, -153,236,236, 92,127,226,214,147,119,238,221,127,229,254, 61, 53,155, 93, 93,222,124,242,233,229,225,129, 48,135,102, 84, 19,175, -230,201, 17,221, 12, 17,205,180,162,254,134, 41, 87,157, 70, 17,154,154,155, 97, 32, 80,183,172,142, 72,181, 1, 1, 86,114,230, -216,162,185, 49, 2, 97,183, 92,246, 41,231,212, 7, 66,226, 16,218,134, 9, 83,191,100,145,211,195, 71, 87,203, 5, 71,118,183, - 62,245, 57,231,101,215,141, 2,111,143,154, 16,195,104,251,122,136, 45,179,180,211,173,229,201,241,168,221,237,211,101, 78, 75, - 2,184, 56,127,244, 96,255,174, 1,189,250,226,171,139,217, 5,115, 92,234,197,229,197,209,229, 98,126,116,117,121,117, 53, 27, -143,166,227, 24,164,105, 22,179,171,113,211, 44,251,148,250,238,230,245,221,203,217,252,111, 3,154,161, 30, 87,124, 88,148,215, - 24,100,237, 72, 48, 67, 54, 3, 43,239,125,233,197,255,242, 55,190,254,254, 31,251,128,180, 99, 35, 92, 92,157, 95,156, 30, 62, -124,176,127,244,232,224,238,131, 71,199,231,103,103,179,217,114,209, 29, 30,159,156, 92, 92,142, 99,248,239,191,250,229,191,251, -149, 47, 45,231, 23,119, 94,255, 33, 52,163,183, 31,238,175,102,151, 15, 30, 28,189,246,198,131, 27,211,201,181,141,105,211,214, -121, 11,129, 17, 81, 64, 50, 45, 85, 82, 71,200, 12, 96, 89,135,242,189, 4, 2, 48, 54, 41,238,197, 92,234, 67,208,140,128,177, -230, 38,209,139, 25, 19, 58, 99, 94,229,182,137, 21, 23, 40, 18,114,202,213,217,214, 4, 86, 39, 7, 68, 9,128,174,217,144,177, -194,133,113,176,209, 3, 7, 33, 34,213, 66, 68, 49, 72,202, 57,247, 67, 74, 10, 0,156,157, 64,176, 94,154,125,136, 30, 0,186, -106, 38,142, 68, 20, 56, 2,177,106, 38, 55, 32, 44,165, 39, 34, 98, 97,116, 25,176,142,193, 92, 21, 44,132,152, 83, 15,238, 64, -200, 30, 12,204,221, 41, 48, 34,105, 41,129, 89, 66,200,165, 16,113,136, 35, 7,179, 82,152, 9, 3,215, 33,175,212,163,132,149, - 16, 34, 18,151, 92,250, 62, 33, 16,178, 84, 91,102, 51, 10,232,113,213,119, 53,146,207, 90, 5, 62,128, 64,166,201,129,221, 13, -193,115,234,213,140,137,130,200, 48, 46,118, 16, 17, 17, 46, 57, 23, 77, 48, 72, 1, 43,210,222, 17,204, 0,154,166,149,192,228, -168, 73, 89, 4,192, 82, 94,185, 89,108,226,186,165, 73,227,113,235, 70,185,203, 14,206, 77,112,117,115, 99,102, 67,212,236, 37, - 23,171, 97, 87,207,228,129, 56,168,154, 23, 99, 34, 39, 6, 71, 80,165, 32,161,137, 41,165,190,207,151,179,101, 8, 40, 44, 86, - 76,152, 80, 70,197, 12,212,189,226,203,187,206, 28,115, 73,204,193, 75, 33, 38,172,234, 30, 98, 5, 80, 51, 68,104, 99,232,172, - 84, 69,109,237,173,145,144,166,140,204,245,102,165,131,194, 10, 35, 5,114, 79,166, 66, 28,162,228, 94, 11,104, 20,142, 49,164, - 84,152, 8,130, 56, 64,118, 37,208, 73,211,116, 61,231,180, 16, 52,146,102,217,155, 22,147,231, 95,124,113,213, 23, 45,101, 62, -187, 88, 46,103,218,175, 28, 75, 77,164, 0, 14,152, 69, 98,210,172, 53,164,239,174,117, 32, 52, 24,180,129,235, 50, 28,234,166, -181, 78,139,214,100,210,154,229, 55,132,186, 6,241,117,115,202, 43, 50,110,120,113, 25,214,203, 36,146,230,178, 53, 25,207,150, -221,246,102,155,212, 5,240, 29,204,247, 59,248,200,193,244,242, 88,250, 87,147, 52,107,132,116, 70, 39, 17, 80, 51,211,130,224, -174, 96, 76, 60, 52,131,148, 81,134,247,137,177, 62,246, 89, 15, 24, 32, 0, 52, 34,113,152,120,151, 87,203, 5, 7, 33, 14, 69, - 51,106,255, 7,127,252, 71, 18, 70,159,252,200, 7,139, 22,112, 36,142,205,100,170,197,136, 89, 29, 65,147, 47, 23, 32,173,165, -142,194, 8, 25,192, 12, 65, 17,212,220,199, 27,163,255,243,127,251, 63, 36,110,127,254, 23,126,102,254,232,209,120, 99,227,163, -159,249,236,191,251,195,127, 51, 95,204,154,241,120, 50,153,220,188,113,253,252,252,244,245,215, 95,251,201,143,253,212,241,233, -225,114, 49,107, 39,163,156, 87,136, 64, 34,110, 86,128, 68,216,113,253,184,171,232, 19, 68,174,244, 55,225, 32,177,228, 21, 34, - 51, 7, 69, 71, 0,116, 67,211,220,247,121,181,228,102, 20,219, 64, 96,234,234,102,134, 36,161, 49, 71,244, 34, 34, 24,184,148, - 12,224,171,211, 71,119, 95,255,214,213,106, 69,196,238,184, 92,172, 22,243, 69,234,250,157,201, 6,161,164,238,234,250,228,121, - 67, 58, 57,216,239,187, 69, 78,253,229,201,241,120, 50,238,187,171,249,229,241,170,215,219, 79, 60, 55, 34,186, 60, 61,238, 87, -151, 32,141, 57, 77, 39,211,243,171,217,124,177,100, 9,155,155, 91,253,106,126,122,124, 88,138, 7, 9, 76,120,112,114, 49, 91, - 46, 0,220, 75,241,181,246,220,220, 16, 98, 85, 83,212, 47, 43, 51, 86, 67, 99,113,187,177,187,243, 11,159,248,196,151,190,248, - 75,183,158,122,166,152,169,149,203, 71,135,103,167,135, 15, 30, 60,120,116,116,114,255,209,225,225,217,105,151,210,229,108,113, -112,112, 92, 74,249,236,135,222,247,143,190,252,133, 15,127,232,199, 30, 30, 62,220,187,243, 54,143, 71,221,233,241,253,183,239, - 7,230,136,116,125,103, 60,157, 76,107,236, 10, 3, 4, 17, 0, 50,215,146,157,185, 34, 34, 0,208,181, 40, 17,136, 80,234, 11, - 58, 8,198,130,133,208, 76, 43,117, 20, 17, 25, 9,138,107, 73, 26,155,216,196,198, 74, 54,199, 56,138,245, 59,161,137,148,178, -213, 55, 0,177,160, 48, 42, 16,139,230,172, 73,171,163, 25,208, 41, 10, 34,122,113, 34, 0,181,164,153, 49, 8,122, 81, 37, 68, - 9, 92, 39,230, 53, 92, 0, 72,214,103,115, 99, 25, 82, 3, 37, 43, 75,168,234, 66, 67, 7, 55, 14,195,169, 28, 76, 1, 88, 68, - 0, 93,181, 0,120,177,158, 88, 16,216,177, 98, 60,234,164,200, 16, 32,112,163, 86,192,189,105, 71, 57,103,207,217, 21, 88, 68, - 66,112, 51, 15,200, 92,185,193,131,217, 39, 21, 99,193,156,122,213, 34, 65,152, 8,144, 93, 43,219, 50,162,170,170,162,123,148, - 80,140, 21, 10, 66, 30,162,173,185, 32, 90,229,255,173, 85,112,100,168,160, 80,201,107,213, 63, 87,147, 35, 68,192, 66,224,104, -235,212, 93, 8, 77, 81, 5, 39, 3, 71,174, 71,132,194, 68, 20,215, 53,248, 32,232,144, 74,134, 82, 98,100, 67, 40, 57, 3, 48, - 56, 58,128, 38,128, 58, 87, 82, 83, 80, 68,113,128,156,147,136,112, 27,114,210, 58, 50,138,177,181, 84, 22,125,110,154,160,200, - 57,149,205,233, 24, 9,155,216,154,121, 78,197, 84,205,141, 43,170, 55,151,161, 78,236, 70, 18, 85, 11,104, 17,150, 82,114,173, -203,171,217,106,181, 34, 10, 86,117, 21,132,134,144,251,108,224, 1, 17, 29,180, 43, 6, 86, 37,167,154,147, 2, 10, 18, 32, 20, - 85,142, 28, 81, 82,209,249,124,222,180, 17, 89,172, 55, 43, 9,212, 73, 8,205, 2, 58, 52, 13,184,153,153, 16,178,144, 72, 19, -183,218,198,212, 38,147,166,239,182,186, 85, 74, 57,165,110, 89,114, 41,165,115, 75,174,133,220, 5,135,244, 60, 24, 32,131, 15, -151, 86, 3, 83, 24,240, 50,107,104,146, 33,184,129, 8, 18,185,155, 43, 12,253,183,245,116,129, 24,157, 6, 52, 76, 24, 18,175, - 12,204, 53, 15, 55,217,218, 56,217, 63, 1,218, 37, 45,128, 53, 77, 64, 96,117,148, 67,239, 68,115, 6,208, 8, 18, 13,115, 36, -112,215,172, 78, 96, 62,204,246,177,130,108, 4, 8, 12,148,129,173, 90, 84,215, 75, 2,245,170,137,164,161, 23,177,102,163, 9, -166, 82, 74, 14,161,149, 54, 0, 24,171,254,201,159,253,191,103, 75,248,229,159,249,220,168, 13,165,239,226,168,149,166,181,156, - 33,140, 16,204,186, 57, 52, 35,106,218,210,173, 76, 83, 19, 71,174, 78, 65,160,184,166,210,110,110,220,127,243,205, 63,254,163, - 63,253,234, 87,255,193,116, 68, 71, 39,179, 91,207, 63,245,190,167, 63,241,253,239,126,251,222,222,157,205,205, 45, 30, 79,119, -110,220,120, 98, 54,123,112,240,232,248,232,145,153, 94,156,156, 96,224,205,233,118, 69,228,168, 22,145,168,238,188,198, 96,186, - 27,186, 58, 80,113, 32, 66, 9,141, 99,109,110,114, 41, 25, 7,181, 57,150,164,150, 51,139, 72,224, 10,111,214,174, 51,181, 40, -178,185, 49, 61, 98, 2, 83, 4,240,156, 33,167,213,197,193,221, 55,223, 92, 44,231,197,107,156, 86,207, 46,206, 86, 41,247, 69, - 55, 2,247,221,108,177, 90, 60, 19,199,105, 57,219,127,243, 7, 38, 60,154,236,164,229,236,244,120,111,181,154, 79, 38,187, 79, -237,108, 16,203,233,241,253, 85,159, 56,180,139,171,147,233,116, 71, 0, 95,187,243, 58,145,108,111,108,174,186,197,197,229, 69, -219,140,219,157,241,229,249,185,131, 33,162,170,165,164, 64,142, 64,149,147,103,110,132, 85,173,172,170, 30, 2, 11,242,162,239, - 38,109,251,211,159,248,216, 23,126,246,103, 95,122,233, 85,105,219, 85,223, 45,175, 46,175, 46,206,142, 31, 29,220, 63,184,127, -111,255,232,248,236,116,217,247,139,229,234,225,241,233,225,225,201,143,191,244,236,111,255,218, 87, 62,254,161, 31, 5,243,195, -211,163, 71,151, 23, 15,207, 78, 95,216,125,225,193,189,115, 74,182,189, 53,106, 55,166,102,224, 64, 66,161, 42,140, 77,161, 62, -236,214,208,105,175,216, 0,145,250,104, 80, 38,246,186, 41, 2,240,226,196, 80,180, 16, 7,114,211, 92,140, 49, 80, 0,115, 67, -165, 90,169, 8,129, 8, 74, 86,115, 19, 17, 71,130,202,119,118, 68,169, 91,115,224, 38,120,113,226, 90,191, 24,108, 58,245, 84, -195, 64,117,238,175,165, 62,239, 24,137,132,177,232,112,164,193, 72, 88,181, 79,110,142, 40, 65, 72,106,186,188, 86, 32,171, 95, -222,200,201, 65,240, 49,147, 3,201,173, 84,186, 33,186, 89, 65,225,198, 64,235, 64,213,204,213, 50,146,184,165,220, 47,144,163, - 48, 43, 58, 5,172, 79,121, 48,116, 52, 70, 52,115,102, 38,172,164, 78, 67, 2,100, 54, 53, 12,145, 16,185,137,214,169,171, 86, -229,183,136,152, 85,217,147, 50, 5, 3,119,176, 24, 91, 45, 90,212,200,128, 67, 64,102, 53,181,172,132,140, 78,246,216, 52,164, -133,100,184,185, 32,177,153, 86,237,144,106,113,171,189, 94, 71, 71,179, 60, 80,164,181,150, 90, 48,167,140,134, 44, 68,109, 40, - 89, 93,149, 41,152, 91, 46, 69, 92, 6,106, 19,185,214,240, 66, 5,221, 19,185,131,169, 35, 65,219, 54, 41,245, 57,247, 34, 18, -131, 32, 81,191, 88,129,229,241,120,203,220, 82,223,129,163,169,215, 52,166,155,193, 58,164, 7, 68,142,164,170,107, 97,144,215, - 83,185,170,213, 39, 76, 93,136, 59, 64, 49,133, 42, 13, 71,169,153,171,122,231, 70, 68, 55,112, 99,243, 2,129,132,144,153,181, -184,154,213,113, 21, 56, 90,214, 16, 24, 60, 40,148,162,202, 66, 28, 24,157,180,148,234, 10, 83,115, 57, 58, 60,104, 66,100, 17, -145,208,142,198,163,241,168, 56,104,151, 82, 46, 41,245,170, 86, 82, 90,204, 47, 87,105, 5,152, 26, 33, 17,170,132,198,234,122, - 5,199, 90, 89,242,202,130,175,171, 23,118,172,251,226, 33, 71, 91,199, 57, 25, 24,134,190,182, 15,235, 12,167,225,197, 11,107, - 66,111, 12, 49,146,207,150,182,209, 82,221,178, 14, 45,164,119,192,195, 72, 14,250, 24, 31, 86,237,209,170,136,168, 96, 4, 52, -128,244, 28, 28,120,173,247,171, 76, 62, 99, 12, 64, 8, 86,188,168, 86,188,180,240, 16, 15, 37, 4, 87, 45, 13,245,139,162,160, -128,210,180, 44, 65, 74,247,231,255,225,207, 95,191,119,248,149, 47,124,126, 99,212, 40,176, 52,129,152, 72, 2,181,141,149, 82, - 82, 41,125, 47,106,208,180,106, 30,198, 91,200,161,238, 71,156, 5, 24, 68,211,239,255,171,223,123,249,213, 31,255,236,103, 63, -121,126,126,186,117,227, 26, 69, 1,132,159,254,252,151,255,175,255,253,127, 61, 57, 61,122,170, 25,141, 70,147, 27, 55,111, 92, - 94, 93,124,231,123,223,255,196, 39, 63,113,237,214,237,131,189,189,209,116,178, 92,204, 16,128,164,218,176,196,121, 80,109,153, -131,107, 97,146, 32,172, 96, 65, 34, 99,189, 78, 58, 16,121,201,174,166,165,168, 58, 97,160, 17, 51, 5, 96,204, 93, 15, 88, 59, - 83, 24, 3,107, 94,181,163, 73, 46,170, 10, 97, 52,221,191,191, 63,191, 56,198,208,228,172,174,144, 82,186,154,207, 85,213, 92, -183, 39, 45, 96,104,198, 59,196,113,185,152,115,179,113,113,252,118,145,229,229,249,201, 52,198,182, 29,141,198,211,227,163,251, - 55,110, 60, 61,157,108, 35, 44,155, 81, 83,186,132,166, 7, 7,123,251, 39,103,198,184, 13,147,212,247, 0, 18,132, 71,145,206, - 65, 83, 42, 91,155, 91,227,241,136,153, 79,207, 47,144,168,235,140, 8, 9, 89, 68,250,146,119,183,182,136,248,248,252,188,128, -189,251, 93,207,255,221, 47,125,241, 67, 31,252, 40, 55, 49,171,117, 87, 23,171,217,213,201,241,225,193,225,209,253, 71, 15,247, -246, 15, 46,151, 43, 45,229,228,226,226,222,254,195,174,235,127,227,103, 63,253, 59,191,253,117,102,126,112,239,173,249, 42,173, -162,180,232,199,143, 78, 78,142,207,130,195,141,233,198,120,220, 56, 0, 51, 17, 11, 49, 19,147,170, 57,174, 63,217,117,112,135, -200,196,117,171, 91, 95,255,131,235,124, 13, 45, 52, 32,112, 18,226, 98,134,140, 50,160,184,156, 25,129,152, 12,137,196,173,104, - 41, 33,182, 40,168,197, 8, 48, 8, 27,152,102,151, 6,205,152,145,156,234,228, 19, 37, 68, 64, 43,217, 2,147,185, 25,162, 16, - 50, 80, 68, 94,235,197, 40,149,204, 36, 14, 38, 34,185,174,218,209, 42,218, 17,144,214,201,245, 90, 63, 52,211, 66, 28, 76,173, -106,226, 17,171,142, 57,152,123,133,216,120, 8, 86,138,107,225,128, 94,220,192, 88,164,238,222, 58,119, 65, 33, 64, 64,113,235, -209,133,132,212,106, 49,149,107,239,208, 93,115, 41,230,200, 44, 14,238,168, 33, 52, 18,131,155,229,156,170, 97, 13,145, 28,140, -136,234, 82,215,212, 20,149, 0,138, 58,244,169, 38, 52, 80, 6, 7,180,153,214,219,131,170, 10, 17, 18,153,186,176, 96, 12,154, -178,154, 7, 54, 65, 82, 80, 55, 47,166,163,166, 45, 37,151, 98,109,228,162,230, 14,129,197,201, 52,151,213,170, 52, 77,144, 24, -115,206,154,147, 27, 32,146, 14,201,120,170,233, 15, 4,176, 65, 53, 66, 4, 88, 12,114, 82,192, 18, 2,187,147,106,182,226,230, -217, 1, 5, 65,213,151,139,229,214,198, 8,156, 52, 23, 36, 22, 38, 19, 72, 93, 66, 53, 96, 34, 14, 77, 12, 57, 23, 55, 21,116, -163, 10,135, 34, 85,243, 2, 44, 40,210,168, 23, 28,170,150, 53, 5, 11,128, 76, 12,106,106, 37,115, 16,181,108,138, 81, 0,132, -201, 76,176, 97, 2, 7,236, 86,125, 19, 67,237,189, 86, 64, 60, 18,170, 13,229, 36,150,144,115, 17, 17,225, 8,192,158, 83, 96, - 92, 37,146, 31,126,239,219, 49,198, 32,113, 50,158,182,227, 73,144,216,140,219,102, 60,106,163, 52,141,152,121,214, 50,154, 78, - 76, 75,223,117,243,217, 85,151, 87, 96,137, 4, 91,102, 0, 96,170,110,143, 1,244,226, 4, 40,176,214,157,214, 8, 98,125,126, - 35, 51,174,229, 54,107, 47, 45,130, 1,176,215,234,218, 99,128, 7,110, 78, 71, 39,231,231,155, 79, 93,131, 26,240,178, 65, 52, - 82,233,100, 0, 84,205,218,149, 83,225, 86,119,168,108,182, 78, 5, 1, 1,216,227,175,223, 99,124,241,192,115,247,170, 61, 32, -100,162, 65, 12,246, 78, 81,181,235, 51, 33, 59,104,104, 34,199, 16, 17,191,243,237,255,244,237,215,247,126,230,147,159,186,113, -227,218,106,213,177, 56, 57,177, 8, 9, 91, 41,174,238,134,210,180,220,140, 45, 37, 25,141, 66,140,174, 9,152,173, 95,166, 46, -109,238,108,188,249,189,239,126,251, 59, 63,252,239,254,155,127, 82,250, 5, 82, 24,109,142, 52, 21,239,250, 27,183,175,253,248, -135, 63,250,214,223,124,123,119,247,198,198,214,214,230,238,181,103,159, 46,135,143, 30, 28,236,221,123,249,189, 31, 32,134,187, -111,188,118,235,214, 45, 99, 23,144,129,200, 89,239,173,128, 90,138, 51, 86, 86, 26,168,135, 27, 83,131, 12, 94, 0, 25, 29,204, -177,164,100,200,192, 2,218,147,145, 68, 82, 83,237,123, 15,145,208,144, 27,105, 98,211, 52,163,102,210, 45, 19,197,112,126,124, - 48, 63, 63,221,104,219,211,211, 19,243, 18, 37,244,121,149,250, 84, 76, 65,125,123, 99,147,133,174,223,124,166,109,199,103,103, - 71,253,234, 98,190,156, 95,204,142, 95,121,233, 61,253,236,196,165,237, 86, 11, 82, 59,122,120,127,251,218, 45, 75,125,167, 61, - 88, 41,165, 28,157, 30,175, 82, 10,161, 57, 62, 57,157, 76, 39,227, 81, 59, 95, 45,247, 31, 30, 86,148, 91,183, 88, 92, 45,231, - 27,163, 81,234, 83, 42,165,132,128,160,132, 34, 8,207, 60,241,228,255,242, 79,255, 41, 34,253,187, 63,253, 19, 70,250,248,199, - 63,122,253,250,173,174,104,202,185, 95,206, 47, 46,206, 78,143,143, 14,142, 79,247,246, 31, 60, 60, 62, 94,172,186, 92,202,193, -163,227,135, 71, 71, 47, 60,121,227,127,248,234,175,254,252,103, 63,126,114,126,254,240,254,126,188,177,125,244,232,173,211,139, -171,201,100,154, 83,126,122,103,139,155, 80,233, 71, 36, 50, 60,116,144, 76,235,167,210,105,248,224,162,122, 33,148,172,213,148, - 86, 73, 91, 53, 66, 60, 84, 68, 36, 68,179,162,174, 37, 37, 10, 4,206,245, 8,171,238,208, 37,105, 71,196,156,115,207,204,237, -164, 85, 29, 38, 12, 65,130,106, 6, 64, 98, 72,201,130, 72,205, 41,115,144,122, 6,172,111, 29, 67, 70, 0, 65, 42,166,129, 5, -193,144, 72, 88,138, 41,112,112,115,100, 78,185, 84, 50, 30, 7, 25, 64,174, 0,129,217,145, 24, 73,213, 76, 21,137,221,172,138, -156, 53, 39,226, 32, 44,224, 84, 67,182, 8,232, 69,209, 9, 5, 29,144, 98,136,129, 61,151,148,179,187, 71,105,220, 61,151, 84, -212,154, 24,145,196,181,212, 17, 13, 0,177, 72, 46,201,212, 34,133,210, 84, 5,180, 35, 18, 5, 46,106,194, 92, 23, 41,255, 31, - 83,111,246,107, 89,118,223,247,253,166,181,246, 62,231,220,169,110, 77, 61,177,155,221,236,230,212, 77,113,104, 42,164, 38, 90, -180, 68, 74,138,230,200,178, 76,203, 3, 20, 36,182,131, 0,142,147,135,188,229,111, 9,144,135, 0, 14,144,135, 24,182, 3, 36, -134, 96, 41, 78,160, 64, 18, 41, 90,108,146,221,236,238,170,174,233,222,170, 59,223,123,134,189,215,250, 13,121, 88,251,182,242, -218,168, 70,221,170, 58,103,239,181,126,191,239,247,243, 1,110,144,203,230,138, 1, 85,133, 86,163,157, 2,215,200, 44, 77,168, - 93,116,100,144,220,117,102, 6,136,169, 25, 58, 17,219, 42,200,171, 18,147, 8,154,218, 52,133, 15,147,128, 82, 6, 34,234,115, - 54, 51, 34,110, 57, 18, 47,213,131,102, 93, 10, 34,211, 10,224,110,200, 73,220, 13, 98, 90, 63, 68,152, 8, 1, 66,232,100,123, -176, 86, 89, 64, 0, 98,117, 4,116, 32,102,134, 36, 19,243,121, 83,212, 67, 83,218,110,148, 56,181,106,206, 16,144, 36, 59, 70, -131, 0,184, 41,130, 7,130,186,183, 40,136, 90,101,100, 78,220, 34, 39, 76,220,166,209,230,138,128, 68,217,180, 52,202, 16, 96, - 14, 85,128, 72, 93, 50,167,208, 34,146, 34, 92,155,201, 64,114,120, 32, 57, 48, 1,132,186, 67, 0, 18,115, 22, 87,173, 86, 37, - 9,139, 68,160,186, 77,230,172, 0,249,227, 63,253,211,220,165,121,215,239,110,109,205,231,139,221,157,157,197,124,103,177,181, -181,187,183,151,250,174,235,251,148,186,220, 9, 68,154,207,231,187,123,123,170,182,217,172,202,184,185, 60, 63,119, 12, 65, 20, -114,225,137, 85,131, 8,200, 48, 73,236, 38, 98,134,181,192, 74,211,241, 97,180, 96,179, 95,199, 43, 39,194, 87,155,185, 32,130, -131,239,236,110, 31,221,123, 88,117, 95,174,213,221,173,165, 52, 61,160,145,221, 26, 68,144, 32, 16, 16,205,157,193,193, 1,101, -130, 40, 0, 52, 96,219, 4, 33,160, 22, 52,105,187, 96, 64, 68,129,246,241,155,124, 38,209, 36, 18,129,136,172, 17,115,238,178, - 71, 44,250,244,225,143,126,240,167,223,255,201, 47,126,227, 27,175,127,230,245,245,249, 41, 0, 2,231,112,167,180,232, 22,219, - 58, 86, 71, 87, 51, 76, 57,144,176,239, 72, 4,220, 16, 9,193,235,102,195,196, 57,117,255,246,143,255,228,173,183,190,242,250, -235,175,156, 28,157,236,188,112,215,172,145, 6, 56, 60,190,240,213,159,190,255,222, 15, 47,206, 79, 23,243,157,249,108,113,235, -185,231,182,118,247, 46,207, 15,206,142, 15,111,221,121,161,140,101,255,185, 23,158, 61,122,216,229, 57, 18,133, 25, 32,153, 22, - 69,100,186,134,104,182,111,117,202, 96, 14, 72,225, 30, 30,230,134, 41,147, 25,160, 3, 6, 49, 89, 45,238, 1,194, 72, 9, 37, -185, 57,215, 53,212, 97, 0,183,178, 44,195,248,189,255,231,143,143, 79, 14,111,239,236,212,112,115,168, 90, 54,155, 58,150,113, -185, 30,114,226, 78,242,106,179,254,196,238,237,203,203,163,251, 31,124,127,177,189,245,133,175,252,194,211, 39,143, 60,120,172, - 64, 56, 82,240,108,247,246,233,241,195,213,234,108,185, 60, 15,128, 50,172, 16,224,224,244, 36,229,156, 68,170,151,229,114,181, - 92,175,139, 87,173,182,189,232, 54, 1, 87,171, 43,139,168,102,179,174, 87, 95,247, 41,153, 51, 39, 6,226, 87, 94,124,254,181, -215, 94, 83, 74,191,247,220, 11, 16,174, 16,165,142, 90,199,113,181, 60, 59, 62,126,116,240,248,193,227, 71, 31, 61, 62,184, 92, -173,135, 50,158,158, 95, 62,122,122,220, 17,254,179,223,254,213,127,240, 59,191,182,191,179,120,122,126,118,178,186, 58, 60, 63, -255,196,173, 29,158,207, 55, 79,142,120,208,151,111,237, 49, 83, 56, 32, 79,208,217,196, 73,221,139, 25, 95,131,241,218, 6,169, - 69,109,189, 24,113,184,180,213,253,148,160,136,198, 31, 69, 12, 8, 98, 9, 7, 68,176, 50,157,230, 26, 38,189,169,227, 20, 92, - 36, 17,139,153,181, 10, 7, 6,170,105,195,168, 66,192, 44,243,212,150, 72, 20,246, 49,129, 15,194, 33, 80, 9, 9, 69,208, 52, -194, 9,201,213,135, 24, 51,165, 64,172, 97, 80,161, 49,178,167,188,183, 7, 80, 80, 96,173,230, 94, 83, 74,132, 52,161,193, 1, -217,193,205, 37,117,209,142,232,225,200, 28, 1, 85, 71,225, 52,209, 61,152, 89, 68,171, 66, 4,183, 13,167, 27, 34,166,148,219, -190,138, 16, 26,101,132,152, 60,160,106, 5, 15, 68,114, 68,230, 52, 89,152, 34,180, 26, 33, 57, 26, 11, 91,107,182, 52,154, 43, - 68,120,157,112, 82, 0, 0,193,146, 56, 9, 19,171,170,155, 39, 78,208,228,210,140,110,225,209,210, 55, 19,208,150,168, 29, 91, -167, 15, 57, 94, 79, 38,219,179, 65,195,152, 25, 0, 85, 43, 65, 8, 35, 18,123, 27, 60, 54, 18, 46, 88, 29,170,244, 25,128, 35, -130, 33, 12, 92,125, 2, 43,182,161, 47, 39,110, 89, 76,143,136, 0,134, 96, 33, 32,177,240,246, 67, 95, 93, 45,133, 33,245,194, - 34,166,129,129, 94, 3,165,249, 95,155, 61, 46, 16,136, 25,209, 1,194,204,130,136, 72, 50, 66,104, 53,145, 22,133, 3,135,118, - 74, 99, 8, 55, 31,153,165,169,172, 32, 90,148, 9,221,130,192,155,143,187,185,151, 27,173,195, 61, 4,145,157, 7, 51,140,198, - 59,112, 68,162,156,146, 66,120,152, 26,147,247, 93, 30,134, 49,204,153, 80,190,241,181,183, 15,158, 62,123,124,112,248,240,234, -106, 40, 37,194,183, 23, 91, 59, 91, 91,251, 55,246,119,118,182,183,183, 23,187,219,251,243,237,157,196,221,108, 49, 19, 17, 38, -217,222,218,229,221,253,155, 55,159, 87,171,155,245, 48, 12,235,112, 55, 27,173,110, 34,106, 22,206, 57,220,131, 88,108, 2,233, - 77, 63, 71, 59,134,160,249,100,226,152,248,235, 24, 17, 50,225,120,193, 44,114,146,197,188, 59, 95,110,110,109,119, 45, 42,211, -152,170,222, 34, 93,161, 19,174, 2, 0,194, 0,161,253,175, 40,132, 24,230, 6, 36, 13, 82, 54, 29, 17,136,166,142,171, 87,159, -136,193,136,212,204, 29,136,215, 28,133,198,155,103,162,178, 25,231,139, 57, 3, 60,249,240,189,127,253,239,255,195, 23,223,250, -242,155,111,188, 54, 14, 35,112, 6,173,156, 50,231, 25,162,131,187,106,177,198,233, 40,163,100, 67,112,100,118,171,121, 54,179, - 97, 8,194,157,189,189, 31,127,239, 47,223,123,255,209,127,255,223,252,238,197,233,113, 90,100, 97,118, 51, 64, 64, 22, 85,191, -177,183,247,234, 27,159,125,116,239, 39, 55,246,110,108,237,190, 34,204,171,229,197, 48,214, 39, 79, 30,237,111,223, 8,139, 82, -108,107,247,198, 48, 14, 61,205,166,198,237,100,248,248, 88, 91,229,193, 34,253, 44, 26,150, 69,192,134,145,136,221,172,253,249, - 41,119,220,229,178, 41,110,181,245,137, 67, 29,220,211,124,143,242,130, 37, 13,101, 20,162,207,126,225,205,245,213,217,241,249, -217,249,122, 68, 4,173,181,150,162,238, 85,117,167,203, 44,189,137,188,255,254, 15, 86,155, 53, 11,219,184,153,205,183,250,249, -206,197,197,249, 98,239,206,197,217,193,124,103,215, 93,239,220,121,249,226,236,116,123,107,103,121,117,190, 53,223, 94,174,175, -158, 93, 45,133,133, 17, 41,245,165,140, 59,123,187, 96,245,234,106,244,136,205,102, 77,132,243, 52,171,181, 50,182,203, 40, 49, -161,123,168, 90,223,117, 15, 63,250,112,239,185,151, 56, 37, 83,211, 97, 53,174, 87, 87,103,167,199,199,199, 15, 30, 62,124,239, -163,251, 71,199,231,155, 90, 86,171,213, 71, 7,135,231,231, 87,223,248,242,155,255,245,119,126,247, 75,159,251,244,179,227,167, -239,125,248,116,137,120,121,126,118,114,118,126,244, 23, 23, 87, 71,231,183,247,182,230,243, 57, 64, 32,178,136,144,144, 89, 8, -231, 70,160, 16, 33,119, 79,204,102,142, 2,104,100, 94,195,175,129,163,238,200, 60, 5,242, 90, 75,226,154, 90,205,130, 0, 92, -171,181, 70, 49, 32, 82, 22,112,212, 98, 8,145, 58, 2, 0, 83,205, 57,213, 90, 27,247,209,204,155, 97,192, 32,138,198, 52,107, -107, 55,220,198, 83,181,246, 48, 65, 34,113,173, 17, 17, 34,161,134,130, 9,154,164, 59,232,186, 23,208,178,145,224,222,222, 10, -230,110,102, 57,165,118,105,189,158,120,212, 0,228,196,225, 22, 24, 17, 46,204, 22,142, 36, 68, 30,136,166,165,203,125, 0, 14, -195, 64, 4, 93,215, 67, 64,173, 37,144, 72,200,205,163,181,226,117, 20, 22, 70,241,176, 90, 74, 98, 65, 22,191,118,204, 16,160, -185,171, 25, 34,160, 80,173,154,115, 70, 9,100,210,162,110, 74,200, 0,102,109,169,214, 94, 9,136,110, 97, 86, 91,241,202, 3, - 32,220,220, 91,104,169, 21,214,219,219,179, 77,204, 90,116,131, 82,246, 98,225,154, 19,155,135,155, 19, 51, 35, 27,184,155,183, -208, 85,139, 68, 91, 53, 17,140, 32, 15, 39,100,103,104, 14, 5, 73,169,140, 5,145,160, 65,180, 2,129,176,235, 58, 53,213,170, - 1, 24,104, 4, 20, 14, 97,209,132, 24, 64,176, 92,143,227, 48, 60,119,123,191,253, 35, 34, 9,154, 75, 38, 8, 68,230,128, 32, - 11,243,218, 42,176,147,110, 8, 67,195, 19, 10, 2, 19,215,214,155,111,114,105, 45,181, 29,103,113, 26,211, 7, 49, 17,182,196, -145,179, 96,173,209,152,145,140,172,174,211,214, 23, 16,131,138,141, 12, 0,196, 30,198,142,210,177, 70,123,109,182,137, 55, 89, - 85, 12, 37,102,168, 32,159,250,228,107,175,191,246,170, 59,184,235,249,201,201,195,167, 79,159, 62, 59, 58, 60, 61,125,114,120, - 16,128,179, 89,191,179,181,115,251,230,205,155,251,251, 55,118,183,187,110,214,247,243, 60, 91,116,253, 98, 54, 95,244,125,151, -115,183, 29,139, 90,107, 25,107, 45,117,216,172,199, 97,117,177, 92, 51, 70,223,185, 16, 16, 7, 34,135,217,180,180,106,201,198, -235, 23,111,131, 88,127,220,166, 67, 64, 2, 7,164, 27, 59,187, 7,103,151,183,182,238, 76, 15,247,233, 97,110, 72,220, 10, 77, - 31,123,138,193, 3,184, 97, 53,166,230, 18,134, 55, 93, 77,227,227, 35, 53, 58, 54,121, 24,182,226, 56, 33, 32, 24, 52,163,192, - 20,247, 81, 0,138, 32, 2,183, 1,189,223, 44, 47, 63,120,112,255,197, 23, 63,241,245,183,191, 52, 84,107,252, 27,234,250,234, -216,177, 72,202,170, 22,181,130,123,212, 66,136,161, 69,182,246, 8, 28,153, 77,199, 50,174,186,249,108,184,186,248, 31,255,229, -255,250,181,175,190,253,220,115,183, 86, 21,246,238,220,209, 82,154,211, 5, 8, 33, 40, 40,127,250,205, 47,126,248,222, 59,155, -113, 68,132, 15,222,251,209,159,255,249,159,125,238,115,111, 94,158, 94,222,217,191,253,242,235,175,255,228,135,239,188,240,242, -171,227,229, 89,238,187, 86, 82,192,107, 5, 78,219, 51,187, 27, 73, 74,204,238,225, 90,128,176,108,198,220,231, 90, 85,152, 48, - 76,114,111, 69, 91, 58, 35,188,134, 75,115, 53, 72, 2, 17,166,212,153, 7, 32,220,185,245,252,171, 47,125, 98,184,121,227,163, -255,248, 67,136, 40, 99, 57,191, 56, 91,173,134, 97, 24, 95,190,181,143, 48, 44, 55, 60, 95,236,222,153,221,126,237,115, 63,181, - 94, 45,215,171,165, 72, 42, 87,199, 35, 0, 5, 18,145,214,225,233,211,135, 1,120,121,118, 52,155,111, 11,225,241,229, 37, 80, -234,115,214, 90,189,214,113, 24, 74, 25,102, 89,152, 98, 51, 12,101, 24, 61, 2,197,144,168,134, 7,184, 71,168,250, 98,158,255, -224, 63,253,246, 47,253,252,127, 50,142,155,171,243,227,156, 23,230, 49, 46, 47, 46, 46,206, 30,220,255,240,199, 31,222,127,122, -124,116,118,121, 53, 12,227,229,114,117,239,225,193,238,188,255, 31,254,139, 63,252,253, 95,255, 22, 99,252,232,135,239,228,221, -157,243,205,234,236,244, 98,179, 25,234,106,179,221,245, 55, 95,184,131, 68,104,237, 9, 12,205,139,134, 52,149,239,153, 80,161, - 97,202, 32,194, 19, 74,227, 16, 4, 2, 72, 96,147,127,186,123, 32, 17, 16,139,155, 19,132,134, 19, 2, 26, 96, 96,151,164,213, -154,104,194,120, 80,238,179, 71,148,106, 57,101, 36,175, 85, 53, 66,152, 28,192,195,147,100, 10, 12,110,136, 61,143, 8,100,116, - 11, 4,111,167,228,246, 6,183, 80, 22, 46,155,226, 49, 18,161, 32,183,248, 5,241,244, 97, 71, 64, 34,244, 0,183, 0,108, 69, - 89,144, 36, 13, 62,211,190, 92, 17,192,194,224,224,225, 49,201,206, 80,221, 39, 53, 12, 34, 6,164,156,195,194,180,144, 16, 33, -170,150,169, 46,200, 72, 72,196,228,228,196,220, 10,178,181, 86, 68, 17,142,143, 59,130,215, 74, 5, 0, 64, 55, 99,230,176,224, - 22,151, 0, 52,117, 12, 32,150,240,112, 11,164,212,242,120,216,122, 3, 83,216,218,107, 0, 79,188,231,105, 30,141, 33, 30, 74, -237,204, 30,224, 14, 44, 2, 96, 90, 75, 83, 71,140,163,166,204, 73,216, 2,204, 44, 8,115,154, 97,128, 90, 49,115, 66,194, 28, - 17,110,213,145,201, 27,183, 22, 57,204,212,131,169,193,103, 3, 60, 82,151,155,171, 36, 34,104,241,204,182,221, 0, 0, 32, 0, - 73, 68, 65, 84, 50,202, 74, 0, 6, 53, 87, 39,180,142,230,122, 51,246,130,146,164,140, 85, 36, 1,121,146,172,166,222,184, 49, -196, 68,232, 70,101, 28, 89, 4,145,219, 76, 79,152, 48, 0,208,167,248, 3,128, 59,154, 41,114,107, 48,112,184, 1, 97, 18, 81, - 13, 36,144, 44,181,148, 90, 42, 2, 16, 11, 0,154, 43, 76, 91,229, 8,119, 12, 3, 10, 78,169,170, 11, 34, 50,213,162,237, 95, -146,129, 29,161, 12, 42, 12, 17,228, 90, 74, 45,178,218,172, 33,188,185,235,182,119,246,126,234,230, 62,253,212, 23,163,234,217, -217,233,211,211,211,199,135,135, 79, 14, 15,239, 63,184, 79,156,111,236,237,221,222,223,219,223,219,219,221,221, 89, 44,182,182, - 22,219,253,108,187, 95, 44,250,190,207,125,223,229,156, 89,230,243,153,199,141, 90,107, 29,198,106,101, 24,149, 3, 50,103, 7, -191, 90, 93,172, 86,103,183,110,110, 45,114, 2, 39,119,143, 9, 67,214,232,208, 0,225,237,236, 82,107,204,102, 51, 59, 60, 42, - 22, 66,134, 32, 83, 76, 61, 38,127, 35, 4,120,212,169,199,132,129,147,174, 30, 24,169,145,239,169,149,189,175,219, 85,237, 95, - 18, 38, 0, 65,160, 67, 27, 11, 54, 88,205,148,173, 12, 0,242,196,226, 29, 94,158, 60, 59, 89,157,127,237, 27, 63,127,121,124, -190, 90,173,250,173,109, 27,174, 80,122, 40,235,192, 12,179,222,172, 2,184,121, 73,121,134, 44, 40, 57,172,230,174,115, 47, 4, - 62,174, 75,191,216, 22,240,127,243,111,254,213,106, 83,127,253,151,126, 97, 53,140,219,119,158,107,177, 82, 1, 12, 96,176, 64, - 68, 29,134,231, 94,122,249,147,159,250,236,225,163,251,125,206,167, 39, 71,175,190,246,250, 11, 47,188,248,253,239,126, 23, 2, - 95,255,244,107,183,246,111, 61,254,232,253,221,189,155,195,114, 53,219,222,134,107,174,231,100,129, 96, 10,183,220,207,145,194, - 55, 3, 48,219,104,121,214,139, 80, 25, 43, 1,200,108,166, 99, 9, 0, 2, 48,102,208, 26,227, 50, 80, 48,247,110,224, 58, 98, - 90, 16, 98,189,186, 40,235, 43, 52, 93, 23,221,212,130,128, 87,155,205,217,197,229,114,189,254,196,173,173,189, 25, 31, 45, 55, - 47, 60,255,234,222,206,222,209,211, 7,227,234,234,226,248,201,106,244,126,107,111,121,113, 36,253,182, 90,192,169,162,235,234, -242,196, 41,111,198,138,172, 8,113,190, 41,243,126,190, 25, 87, 73,186,182, 46, 41,101,116,243,198,111,185,113, 99,239,252,242, - 50,179, 64, 66,211, 2, 41, 47,175, 46, 95,253,196,243,255,252,143,254,209,215,190,246,181, 82,198,213,114, 57,172,151,195,106, -163, 58,158,159,157,188,255,193,253,247,238,221, 59, 62, 61, 27,138,110, 54,155,103,199,103,151,203,171,191,253,149, 47,252,139, -255,252, 15, 95,125,249,133,163,195, 67, 89,116, 31, 28, 60,125,107,127,175,223,217, 58,254,224, 1,215,122,107,123,209,212, 53, - 0,172, 48,148,177, 70, 56, 51, 7, 36,145, 68, 64, 14, 17,141, 78,218, 54, 94,129, 86,219, 22,167,169,201, 24, 17,192,241,122, -181,195, 85,107, 76,189, 15,180, 8,110,162, 68, 70,210, 9, 32, 64,128, 66,220,102, 45,185,133, 28,213, 88,146, 32, 71,184, 8, - 19,144,123, 88,120, 67,156,183, 20,159,169,122, 68, 0, 36,225,118,215,100, 98, 10,115, 85,225, 22,107, 15, 11, 71, 34, 78,226, - 30,200, 83, 58,182, 61, 18, 27, 86,144,166,181, 39,180, 90,109,251, 54, 17, 50, 0,154, 42, 8,119,185,175,117, 8,136,102,193, - 70,194, 68,201,205, 90,126, 25, 25,132, 69, 75, 37,118,206,217,195, 39, 22, 43, 0, 51,139,176,121,140,181, 50,145,187, 18,147, - 90, 48, 33, 34, 52, 68, 76,132, 33,114,171,156, 71, 56,181, 26, 57, 54,207, 66,152, 59, 18, 74,202, 77, 87,216,208,179, 44,210, -218,172, 77,120, 20, 0, 64, 70,200, 83, 67, 31,140,144, 66, 13, 9, 2, 27, 60,189, 76,238, 53, 68, 64, 16, 33,102,174, 85, 3, -144,152,186,220, 69,120, 41, 21, 66, 33, 16,168,173, 25, 0,192, 32, 60,145, 20,213, 64,119,109,127,210,169, 28,139,220,142,207, - 94,171, 33, 50,146, 55, 34,200,212,165, 20,214,162, 44,162,170,195,102,216,153,117,222,238,207,141,254,125,173,163, 64,132,148, - 68,171,185,153, 52,248, 59, 70, 51,116,154,153,185, 77,135, 50, 38, 43, 26, 4,194,164, 13,232,105,149, 17, 17, 88,189,245, 34, - 98,162,237, 2,185,155,155, 18,101, 68,134, 48,132,168, 85,153,200, 60, 56, 0, 57,132,177, 97, 87, 26,236, 63,144,180, 26, 81, - 36, 97,117, 51,213,148, 36, 89, 11,171, 2, 6,132, 69,128,147, 85, 67,221, 32,242, 98,123,231,141,253,189,183,222,124, 75, 16, -206,175, 46,238,127,240,193, 59,247,238,221,123,248,224,199,239,127,152,178,108, 47,182,110,221,216,219,219,221,219,223,219, 91, - 44, 22, 59,187,123,243,249, 34,247,115,150,148,243,108,190,216,162,157,157, 6,134,209,234,204,108, 14,227,176,119,244,172, 59, - 95, 46,215, 52,166,140, 61,113,110, 34, 87, 8,100, 66,240,150, 64,167,134, 4,148,188,183,179,181, 30,203,222, 34,181, 71, 54, - 34,181,137,121,248,245,147, 61, 0, 88,176,145, 44,209,137,200, 52, 38,136, 24, 65, 99,239, 33,183,174, 76,155, 18, 5, 0,145, - 91, 75, 72, 48, 95, 19,222, 9, 49, 16,173,129, 14,160,212,205,179,203,243, 87, 63,251, 26, 83,108,223,222,218, 44, 99,181,220, -204,102, 11, 18, 65, 76, 20,144,183,119,221, 85, 40,113,154, 5, 9,184,135, 43,138,232,184, 34,196, 97,216, 80,238, 82,146,195, -251,239,255,249, 95,189,255,135,191,255,123, 73, 88,187,158,187,174, 53,159,213, 29, 96,104, 50,132, 70, 87,250,242, 79,255,252, -255,252,131,239, 59,124,184,152,205, 36,119,247,239,189,127,181,186,250,241,251, 87,175,125,234,213,215,222,124,171,190, 99,194, -178,186,186, 76,243,121,106,189,187,192,112,100, 22,112,143,136,212,205, 81, 18,118,238, 99, 69, 34,166, 40, 99, 97, 65,192,208, -128, 8, 64,150,192, 64,107,230, 68,129,136,136, 66,210,215,113, 73,146,162,223,215,113, 24,175, 78, 49,236,108,189,118, 11,143, - 56, 59, 59,119,179, 27, 91,189,107,253,127,127,252,224,230,206,246,247,222,253, 32,103,153,117,249,253,143, 14,175,134,243,187, -119, 95, 38, 76,243,188, 72, 44, 8,176, 41,117,119,177,131,116, 98,102,139,237,155,106,163, 41, 93,172,135,138,148,146,128,133, -106,233,103,179,186,172,151,203, 37, 0,119, 73,246,119,118,181,120, 68,237,115, 62, 60, 58,234,186,254,183,126,249,231,254,232, - 59,127,255,149,215,222,216, 12,197,124, 29, 4,195,122, 88,175, 86,231,151,103, 31,220,255,232,222,253, 71,151,235, 85, 25,245, -248,226,236,236,244,252,246,141,253,127,254,157,223,253,157,223,248,213,205,102,253,215,127,245,221,221, 87, 94, 56,121,252,232, -240,228,100,118,255,193,187,239,188,255,226,205,221,173,221, 45, 55,107, 46, 60, 34, 24, 6, 93,111, 54,128, 48,235,250,156, 8, - 81, 80, 40, 98,154,194, 38,193,234,138,212, 26,111,112,109, 31,117,107,192,151,107, 89, 82,120, 16, 49,139,104,169, 16, 54, 26, -176,200, 44, 39, 3, 43, 69, 73, 48, 0,204,157, 68, 72,216, 84, 93, 3, 39, 61,186,229,190,183,170, 45,254,208,224, 33, 72, 40, - 76,238, 14,146,217,194,194,105, 50,190,131,183,133, 47,147,106,101,226,246, 8, 69,154,202, 38, 31,179,191,219,248, 8,152, 24, -201, 49, 8, 39, 94,147, 89,109,154, 73,119, 13, 13,100,132,208, 82,134, 86,250,103, 34, 4,110,169,237,191,185, 14,186,215, 90, -136,145, 19,155, 90, 4, 52, 57, 52, 49,185,251,176, 41, 44, 41,137,120, 4, 3,163,112, 47,160, 90, 39, 21, 90, 4, 17, 88,173, -125,206, 85,107, 75,240, 34, 37,104, 69, 19,226, 0,224,102,113, 14, 84,215,198, 37, 38,136, 10,128,156, 90,153,133, 24,181, 90, - 43,153,146, 16, 19, 91, 13, 35,107,121, 49, 55, 37,102, 66,210,170,146,152, 57,212,124,220, 12, 73, 36, 18, 3,248,176,222, 64, -227,163, 7, 49, 77, 90,206, 8,146, 28, 30, 80,213, 68,196,194, 68,184, 93,130,167, 67,143,169, 85,101, 17,145,220,116, 19, 17, - 32, 44, 85,171,154, 99, 4, 17, 3,194,106, 61,100,225,189,253,189,166, 44,132,152, 10, 55,140,172,104, 17, 81, 74, 37,162, 60, -235, 74,209,128, 72,196, 1,160,166,100, 33, 89,134, 90, 5, 49,108, 2,252,154, 58,128,103, 17, 55,115, 87, 2,106, 23,148, 0, - 5,228,118,188,104,151, 69, 0,114, 85, 55, 35,196, 44, 98,225, 57, 33, 73, 87,107, 69, 55,238,103,161,218, 86, 70,156,176, 95, -204, 54,101,116, 45,140, 72,125,102, 78, 56, 20,153,134,207, 77,164, 29,147, 26,140,154,135,195,108,117,121,238, 68, 89,228,173, - 47,124,241,203,111,127,101,181, 92, 30, 28, 30, 62, 60, 60, 58, 60, 60, 56,120,246,244,254,163, 71, 0,188,187,181,189,191,191, -123,247,230,222,214,206,238,206,214, 78,215,207,231, 59, 59,219,243,109,201, 57,229, 60,155,205, 49, 9, 33,206,102, 93,151,187, - 97, 24, 46, 47, 46,134,178,190, 24,171,219, 72,110, 34,209, 51, 37, 1, 73,146,120,234,145,162,199,238,206,206,209,197,250,230, -206,204,220,176,125,108, 91,179,116,242,138,180,145,186, 57, 76,182, 23,188,118,180, 54,247, 0,182,185, 26,112,184, 33, 18,160, - 18,101, 0, 2, 97,208,128, 54, 55,107,159,109,181,233,178, 11, 16,225,121,158, 94,125,227,213, 46,241,184, 41,148,120,177,213, - 93,148,203,177, 32,149,113,247,198,110,120, 3, 84,160,150,209,170, 82,219,254,154, 5, 49, 98,251, 90, 66, 55,235,125,117,245, -151,223,253,222,167, 63,253,249,183, 62,243,201,139,243,203, 59, 47,188,236, 86,218,211, 2,136,133, 59,183, 64, 68, 33,172,181, -236,222,218,255,202,215,126,246, 79,254,221,255,190,181, 88,228,156,250,126,254,226, 11, 47, 60,125,250,236,254, 7, 31,204,102, -139,155,119, 95,248,241,247,255,226,185,187, 47,143,235, 43, 33,226, 44, 13,111,108,181, 54,235,227,100,122, 84,215,170,121, 62, - 99,166, 90,215,161,225,140, 48, 86, 98, 4,114,171, 26,213,180, 42,231,140,109,195, 28, 53,165, 29, 78,253,120,254, 76, 55, 27, - 34,114,247,195,211, 51,243,152,119,233,242,234,162,140,195,211,211,139,139,229,234,108, 57, 84, 15, 64, 94, 46, 47,199,113,204, -249,131, 62,119,221, 7,143, 5, 2, 48, 4,202,214,246,222,238,214,222,140,160, 79, 98, 97, 12, 39, 93, 39, 15,151,171, 71,207, - 78,247,111,221, 14,117, 6,154, 44,230,200,225,136, 8,203,245,230,206,205,189,157,237,217,217,121, 57, 57, 63,187,123,235,230, -111,127,251, 91,191,247,155,191, 57,223,217, 91, 13,155,208, 90,198, 90, 54,195,197,213,213,225,225,147,251,143, 14, 14,143, 79, -150,155,245,114,189,121,244,248,233,114,189,252,214,215,191,250, 79,254,224,119,222,120,253,211, 79, 30,126,180, 28, 47,159,156, - 28, 63,187,186, 24, 71, 37,247,227,123, 15, 95,123,110,191,235,187,112, 96, 78, 65,145, 36, 87,171,110,134, 64,136, 18, 64, 72, - 41, 0,107, 41,237,219,154,128, 75,177,182,196, 67,196,106,198,136,128,232, 62, 65,247, 2,177,152, 39, 64, 74,108, 26, 94, 11, - 11,187, 17, 35, 8,163,154, 33, 97,238, 82, 76,149,121,105,218,131, 8, 32,166,208, 42, 50, 11, 36,173, 10,238,128,236, 97, 77, - 11,134,209, 50,231,192, 14,197, 93, 36, 5, 24, 18, 69, 91, 80,121, 4, 4, 17, 86,171, 89, 50,226,199,122,163, 96, 36, 15,107, - 73, 52, 18, 1, 36, 66,200, 68, 49,153,206,130, 37, 69,184,107,109,174,204,128,104, 49, 33, 68, 76,194, 16,164,166, 97, 78,109, - 80,133,100,234,136,200,137,220,204,140,194,189,105,155,136,200,204,144,128, 83, 2,143, 0,247,176,156,102, 13,148,220,120, 31, -161,214,254,226, 28,172, 81, 39,195,220,209,136,164, 81, 41, 1,160,203, 57, 92, 77, 43, 0,112,227,106, 4,168,161,176, 4,161, - 59, 32, 57, 70,251,217, 0, 8,219, 16, 99,226, 25,168, 82, 91, 48,154, 65,162,156, 19, 49,169, 42, 34, 72, 74,128, 16, 85, 53, -130,137, 63,214,117, 70, 0,132, 83,151,201,195, 45,188, 22, 64, 48, 0, 17, 65,156,222,172, 16,232, 86, 16, 33, 9, 3, 35,128, -154,129,228,228,181,182,222, 90,179, 84, 71,168, 41, 12,235,205,206,206, 28,136,155,246,190,129,101,205,161,186, 97, 43,102,122, - 4, 56, 1, 9,139,187,186, 59, 18,117, 93,246,170, 85, 45,170, 66, 22,143, 64, 22, 36,119,119, 78,226,106,215, 22, 38,182, 82, - 72, 18, 64,154,196,209, 0, 72,216,198,170,109,154, 10,230,230, 83,255,174,150,129,137, 81, 18, 52,129,181,131,100, 6,193,106, - 74,216,186,244,198,141,232,145, 89, 32, 90,191,184, 97, 35, 39,149, 93, 0, 16, 55, 38, 41, 50,160,123, 12,155,245, 56, 34, 51, -191,244,194,139, 47,191,252,178,149, 58,214,122,185,188,122,252,228,240,222,131,199, 31,222,255,240,157,247,116,103,107,251,206, -237,155,183,247,110,108,109,111,221,216,219,221,221,221,159, 47,182, 23, 91,187,243,237,173,190,235,171,142, 14,150,102,249,134, -220, 80,157,107, 51, 23,140,101, 28,135, 85,173,161,234,235, 26,166,130,206, 76,139,153,206,146, 92, 93, 94,192, 75, 55,187,196, -222, 90,179,166,128,224,244,255,115,103, 67,203, 89, 57, 4, 5, 70,251, 72, 53, 97,103, 88, 0,122,152,145, 72, 75,212, 0, 50, -184,181, 69,111,139,243, 52,116, 42, 10,121,131,191, 19, 6, 64,206, 25, 49,180, 86,108,188, 10,211,221, 27, 59,231,103,231,203, -139,186,127,247, 57, 34, 78, 76,225, 96,166, 77, 65, 99,170,102, 99,238, 59, 70, 30,215,155, 60,159, 11,243,241,225,193,159,191, -243,254, 63,250,131,191,123,124,248,228,246,167,222,252,216, 87,235,227,128,130, 22, 53,204, 56, 11, 10,133,177,187,126,241,171, - 95,255,193,119,255,114,117,117,177,179,179,187,189,179,219,160,158,143,158, 60,189,115,243,254,141, 23, 63,201, 36,253,246,118, - 45,235,205,122,185,197, 55, 90,125,105,106, 2, 3,165,173,173,112,133, 90,242, 44,179,112, 45,163,135, 77,145, 85, 66, 36,114, - 51,175,213,106,109,178,152,230,220,212,170, 72,168,171, 11,168,107, 2,179,205,250,236, 98,121,190,222,188,180, 63,103,240,139, -171,101, 41,117, 40,234,238,235,205,122, 44,155,253,157,253,190,239,198, 90,170, 57,150,178, 30, 70, 11, 55, 83, 70,196,179, 21, -211,179, 81, 71,114,220,217,158,119,210,213,186, 73,156, 66,100,189, 90,237,236,237,113,224,184, 30, 55,101,221,229, 57,241,170, -140,163,131,175, 86,155,139,245, 82,178,124,243,203, 95,255,245, 95,253,246,167, 94,253, 84, 32,173,214,203,178, 89,175,150,203, -243,211,147,229,106,245,224,201,163, 15, 31, 60,185,184,186, 28, 85, 79,207,206, 31, 60, 57,248,220,203, 47,255,195,223,249,199, - 63,255,245,159, 6,175,167, 87,167, 31, 61,123,184,152,245,119, 95,121,233,199, 63,120,119, 60, 95,110,207,186,221, 69,215, 82, - 98, 41,229, 73, 64, 44,109,188, 77,205,232, 38,146,212,172,225, 94, 5, 81,205, 21,221,193, 1,200, 44, 48, 65,151, 72,181, 77, - 97,128, 36,143, 99, 33,114, 97,108, 53, 91, 33,242,128, 8,231, 46,145, 69, 45,222,205, 16, 35,128, 5, 29,136, 34,220, 34, 64, -114,106,246,177,212,119,166, 58,225,199,144,152, 24, 3, 61,204,219, 99, 17,128,136,172, 5, 35, 29, 16,209,109, 66, 86, 33,120, - 85, 35, 71, 17,153,212,193, 24,102, 14,132,238,134,136, 30, 17,224,140,210,192, 80,118,189,143,108,199,160, 54,196, 3, 68, 7, -100, 22, 64, 96, 78, 17,230,230, 30, 22, 1, 36,140, 17,136, 17, 4,196, 28, 22,174,214,224, 78,204,137,137, 17, 67,205, 89, 24, - 1, 61,188, 53,182,144,219,253, 47, 8, 17, 5,205, 60,245, 73,213, 16,177,239,250, 82,149,164,253,166,212,166, 31,196,130,142, - 90, 10,113, 16, 49, 64, 48,114, 49, 3, 0, 73,140, 66, 0,200,102, 22,232, 22,204,212,242, 69,209,214, 27,173, 69, 15,228, 17, - 44,220,254,230,171, 57,121,211,218,229,112,141,136, 36, 18,234,225,222, 72,136, 44, 66,136, 22, 14, 22,225,218, 36,165, 45,150, - 29, 17, 76, 4,130, 90, 21,192,152,164,173,208,107,177, 89,159,152,195,106,109,213,178, 78,196,205,212,205, 35,170, 6, 49,205, -231, 91,129,228, 90, 3, 81,136, 85, 77,213,136,200, 32, 56,204, 29, 4, 25,168,177,145, 49, 33, 50, 75, 85,115, 15,130,144, 46, - 71, 4,185,223,253,212, 11, 44,242,240,135,239, 34,112,238, 58,173, 58,234, 72,225,148, 90,118, 66,152,167, 32,141,183,215, 72, -147,208,133, 99, 98, 17,114,211, 8,109, 92, 68, 11, 71, 69,102, 82,139, 58, 22,172,200,125, 70, 72, 24, 5, 52,144, 73, 82, 39, -162, 2, 24, 0,196,137,221,212,194, 1, 26, 77,173, 13, 58, 40, 38,216, 98, 4, 33, 96, 20,173, 4, 8,166,132,152,152,111,238, -221,184,181,191,255,246,151,127,202, 34, 78, 14, 15,254,226,175,127,244,193,131, 71,239,254,228, 39,187,219,187,119,239,220,190, -125,243,230,173,253,253,155,251,183,182,182,182,155,116,116,179, 90,113,151,152, 18, 19,139,116,121, 54,227,109, 42,195,198, 27, - 10, 24, 92,213,203,184, 41,165,174, 52,134, 0,173,254,215,239, 61,125,233,185, 61,230,152,117, 73,136, 82, 78,213, 44,212,112, -194,151, 5,160,180, 91,103, 76,246, 85, 0,128,152,100,193, 48,177,114,218,246,164,148,134, 90, 68, 73,237,118,118,109,118, 37, - 98,135, 41, 47,143,109,141,127,253, 6,112, 8, 15,192,253,219,123,103,112, 57, 44, 87, 55,238, 62, 79, 93,167,181,216,122, 21, - 1,198, 2,225, 41,247, 2, 94, 86, 35, 64,128, 43,172, 87,255,199,127,248,179, 55, 94,251,244,110, 39,105,107, 39,207,231, 54, -142, 32, 30, 1,216, 24,123,213,165,203,212,117, 94,171,107, 9,151,188,216,250,185,111,254,242,191,253,223,254,101, 68, 44,102, - 51,130, 4, 30,199,199,103,207,142,207,186,174,191,115,231,238,102,121,190,127,247,197,243,103, 79,106, 29, 83,154, 11,161, 7, - 33, 88, 4,116, 41,187, 69,235, 5,149,205,224, 30, 1,132,196,174,163,164, 4, 16,182, 41,170,149,187,121, 68,227, 55,145, 87, - 29,139, 42, 0,155,233,234,170, 92,157, 46,175,174,142, 47, 47,239,238,228,203,205,112,112, 49, 46,178, 97,132,154, 69,200,214, -108,203, 93, 75,217,172,198, 13, 98,131,154, 49,162, 33,128,180, 96, 9,162,170, 9, 97,215, 45, 82,234, 0,184, 4,123, 4, 3, - 28, 28, 31,207, 22,243,234,113,113,177, 52,119, 89,208,238,214,214,145,214,176, 56,190,188,204, 2,255,229,223,251,206, 79,191, -253,211,105, 62, 27,198,106, 58,142,195,112,121,126,126,177,188,124,118,116,244,209,227,199,143, 15,159,142, 69, 55,227,240,228, -240,217,249,229,229,175,125,253,237,255,246,191,250, 39,139,197,236,248,209, 3,185,177,251,222, 79,126,116,254,244,216,144, 30, -221,127,188, 55,239,110,238, 47,192, 9,130, 57,152, 56, 85,179,148,216, 53,170,142, 0, 48,155,247,195,166, 8,167,174, 79,227, -168,140, 2,204, 69, 45, 34, 28, 12,129,137, 33, 12,192,124,163, 38,137, 19,209, 88,172,216, 64, 76,137,147,155, 87,173, 41,139, -185, 49,145, 16,153, 6, 32,228, 76, 86,148, 37, 97, 43,103,134, 91, 53,164,112,165, 6, 38, 27,139, 50,177,224,199,210, 75, 10, -159,218,249, 85, 61, 53,159, 42,130, 16,170,151,143,101,146,197,172, 99, 70, 48,206,220,112, 20,141, 61,197, 8, 78, 1, 6,238, - 70, 36, 30,212,102,192,230,129,196, 44,201,106,153,200, 99,209, 20,217, 72,211,225,130, 81, 48,106,212,170, 57,119, 36, 92, 75, -117,117,206,210, 4, 74,142, 68, 64, 0, 42,196, 22, 54,106, 21, 78, 57,101, 11,131,118,117, 8, 8, 64,213,202,228, 0,168,224, - 8,200, 34,106,174,170, 76, 12,204,185, 75,170, 10,140,140, 12,224,161,230, 17, 30,209,207,186, 82,107,132,181,242,203,117,180, - 55,216, 80,193,155,218, 2, 34,204,195,195, 24, 73, 48,134,106,194,212,245, 93, 84, 5, 64, 48,168,161, 0,192,220, 0,159, 56, -169,158, 60,180,170, 2, 8,177, 67, 16, 51, 18, 34,178, 87,115, 31, 1, 0,157, 89,196,205, 82,226, 82,109,226, 4, 64, 8, 73, -245, 54,167,165,156,121, 24, 43,181, 59, 60, 1, 64,168,121,123, 46, 64,232, 82,199, 44,132,194, 76, 20,220,149, 82, 55,227,144, - 82,146,196, 13,126, 40,189, 80,117, 11,143,106, 57,119,125,238,116,172,131, 22, 38,206, 89, 34,124,189, 30,137, 41, 16, 30,127, -120,191, 23,161,148,193,221, 33,136, 69,196,220, 3,129,131,130,165,249, 91, 2,194,152,196, 28,204,106, 74, 12,152,195, 21,193, -221, 13,153,194,216, 74, 77,137, 83,206, 36, 51,201,166,227, 8, 68, 86,181, 73,138, 56,103, 13,199, 90,221, 84,166,171, 74,139, -163, 52,101, 7, 6, 77,171, 18, 14,155, 52,122, 13, 77, 76, 56, 5,162,130, 28,173,249,226,193,139, 51,209,243,159,120,229,239, -127,254,243,155,171,213,193,193,225, 15,222,251,201,227, 39,135, 63,250,241,113, 55,155,221,190,181,127,235,198, 94,159,123, 17, - 6, 15,206,156, 57,167,156, 89, 40,167,190,239,186, 82, 6,102,201,179,190,203,189,164,110,214,237,152, 27, 6,167,174, 95, 36, -254,254, 59, 63,122,254,149,207, 93,156, 31,217,133, 74,194, 25,215, 89, 71,204,145, 48, 56, 17, 19, 35, 11,178,128,107, 27, 74, - 67, 56,254,141,147,121,170,191, 94, 11,229,155,153, 47, 32, 28, 12,131, 63, 94, 80,125, 44, 99,253, 88,219,212,224,150,141,125, -140, 8, 70,152,246,110,237,172, 46,175,250,113,191, 7, 53,117,236,102, 62, 86, 2,200,139, 45, 64, 40,171,149,169,230, 69, 15, -227,248,195, 15, 63,248,241, 71, 79,255,187,127,250, 71, 96,155,173,219,207, 1, 0,205, 22,161,170,227, 70,114,135,129,146,152, - 51,135, 86,175, 5,212, 33,131,151,241,179, 95,252,210, 79,126,252,131,251,239,191,187,183,187,183,115,163,159,197,226,230,173, -155, 63,250,240,209,243,207,221,186,251,210, 43, 63,121,247, 7, 22, 88,199, 77, 23, 36, 93,103,193, 77,208,202,185,199,196, 81, - 43,245,185, 86,211, 90, 19, 55,147, 67,112, 74,200,232, 6,152, 58, 2, 4,175, 36, 25,194,189,140,212, 39, 36, 28,151, 39,164, - 21,213,204,244,100,181, 58,175,155, 71, 39,203,117, 81, 2, 90,143,165, 29,211,170,171,134,118, 73, 54,227,102, 24,107,223,145, - 16, 71, 3,248, 55, 94, 76, 52, 37,189, 33, 73,128, 95, 46, 47,158,191,251,252,214,238,236,234,236, 18, 2,186, 46, 31, 62,125, -186,187,189,131,204, 89, 4, 0, 5, 35,137, 96,192, 87,223,252,220,239,255,246,111,126,250,211,159,221, 84,173, 69,135,245,229, -106,181,188,184,184,188,184,188,120,250,236,248,222,227,135, 71,167,103,165,214,179,243,203,131,163,227,151,239,220,250, 23,223, -249, 59,191,250,183,127,225,106,121,249,244,209,209,209,201,209,201, 7, 63, 57, 61, 57, 73, 57,157, 61, 61,251,228,237, 61, 78, - 2,208,160,193,164, 17, 96,202,196, 67,169, 18, 0, 44, 76, 36,192,214, 49, 33, 16,230,110,214,226, 28,181, 17,193,218,103,132, -130,140,176,186,139, 16, 35, 13,165,122, 88, 34, 1,162,106, 21, 9,165, 19, 51,203, 57,187,195,104,158, 83,134,104, 49, 92, 2, - 32, 68,114,112,195, 9, 54,233, 17,204, 20,128, 41,101, 68, 80,171, 44, 66,128,230,138,212,214,134, 72, 20,141, 92, 99,127, 19, - 18,107,107, 94, 0,119, 72,148,187,220,254, 3, 70, 0,147,155, 25,128, 0, 19, 33, 80,134,128, 68,162, 81, 16,185, 37,193,234, - 56,182, 23, 68, 76,104, 39, 4,112,102,102, 18, 96,172, 99, 37, 4, 97,246,176, 80, 64, 18, 20, 53, 83,240, 32, 97, 97, 70,162, - 48,240,112, 68, 74, 66,136,164,174,205,233, 12, 0,106,218, 46,132,225, 78, 44, 45,243,230, 54, 5, 46, 25, 73, 93,175, 19, 58, - 68,192, 36,162,234,222,132, 21,102, 56,121, 91,249,122,140,132, 0, 96, 97, 13, 14,234,224,129, 1, 26,125,238, 12,221,212,115, - 6, 8,172, 85,115, 74,165, 20, 85, 37,102, 17, 17, 34, 64,172,230,140, 1,196,109,219, 44, 14, 0,209, 94, 27,181, 84, 4,243, -176,246,107, 39, 12, 58, 73,173, 26,230,212, 40, 88,129,155,162, 2,152,103, 89,205,193,157, 24,193,129, 32, 2,168,170, 49,145, - 79,216, 1,216, 44, 55, 55,118, 23,204,172,234,102, 42, 36,193,141,108, 10,204, 40,194,141,230,201,211,211,194,181,186,154,138, - 16, 39, 52,117,119, 72, 45, 48, 30,193,129, 85,141, 19,154, 6,104, 32, 43,210,199,231,105,176, 97,240, 48, 96,102, 18,117, 35, -164,217,124, 94, 84, 33,148, 16, 16, 73,186,121,181,130,228,169,239, 70, 51, 93,111, 94,253,210, 27,251,207,223,253,238,255,249, - 39,104,158, 82,146,121, 86, 3,211, 74, 22,156,137,145,197,205,154, 34,163,197,173,166,181,245, 4, 48,177,214,161,104, 99, 65, - 64, 68, 20, 36,112, 85, 50,196, 32, 2, 35, 36, 70, 52,192,113, 24,199, 77, 33,194,231,158,127,241,165, 79,188, 88,198,114,114, -122,246,228,233,211,131,195,227, 15,239,223, 91, 94,173, 3,209,212,187, 62,101,233,182, 23,179,217,172,159,117,185,207,157,122, -205,185,155,117, 93,223,245, 41,231,197, 98,171,235,103, 41,165, 78,251,217,238,238,130,134,177,172,238, 62,119,171,150,106, 14, -238, 49, 88,213,162,168, 22,232, 68,214,201,152,197, 18, 55,236,160,119, 89, 8,208,153, 1, 40, 76,161, 21, 51,176,237, 92, 38, - 67,247, 20,218,105,101, 22, 71,196, 6,135,167,201, 57,213, 76,197,209,118, 85, 19, 92,222,221, 24,169,159,243,229,197,129,205, -110,246, 89,154, 13, 12,137, 16, 65,199, 82,135, 65, 50,187,169,149,242,239,255,236, 47,127,235, 91,191,216, 17,224,214, 45,206, -226,225, 28, 97, 22,156,178, 71, 32, 17,162, 51, 83,217, 12, 0,212,204, 39,110, 6,179,217, 55,190,249, 43, 7,143, 31,157,157, -156,230,174,239,230,243,253, 91,183,206, 79, 47,222,187,247,168,159,239, 60,247,194,107,227,250, 18,115,223, 37,169,195,166,159, -111,181,197, 95,238,103, 4,224,141,139, 82, 53,207,250,178, 92,153,123,202, 61, 37, 2,199,240,226,174,141, 35, 1, 86, 0,133, -187,158,136,234,234, 98,214,239,102, 44,207, 30,189,255, 31,255,234, 47, 78,158, 29,212,193,138,122, 22, 54,243, 82,170,105,117, -247,205,102, 19,225,170,176, 90,109,152, 37,161, 8,178,130, 93, 51,223, 8, 16, 24,201, 92,203, 88, 35,135, 87,187,188, 90,222, -220,221,229, 46,103,150,243,213, 57,114, 90,173,214, 59, 91, 11, 34, 4,132,243,139,139, 79,220,189,253,171,191,248,139, 63,247, - 51, 63,179,216,219, 91, 13,213,117, 28, 87,171,211,211,243,147,211,163,163,163,163, 71,135, 79, 15,158, 29, 45,203,102,121,181, - 57,124,118, 60, 79,244,143,127,227, 91,191,253,173,111, 62,119,247,206,106,220, 60, 62,124,188, 90,173,118,110,239,159,141,171, -139,139,203,253,173,173,231,111,237,153, 55,224, 31,179,164,218,194, 15, 76,132,204, 64, 44, 20, 4,110,128, 14, 73, 4, 9,153, -209,180, 9,104,168, 61,203, 8, 41,154,166,163,217,219, 61, 70,173, 0,144, 56,199, 52,183, 67, 83,167, 36, 76,185,157,236, 82, -146, 70,142, 35,230,182,229, 84, 53, 22,102,108,230, 58,108, 19,237,118,132, 6,130, 76,217,220, 45, 76,136, 13,128,147, 68, 56, - 5, 34,195, 68, 41, 17, 66,164, 90,148, 17,176,237, 75,173, 81,158, 16, 61,220,131,124,194, 44,169, 25, 3, 52,137,143,161, 17, - 9, 37, 10,245,136, 72,179,236, 30,109,211,192, 16, 0, 65,169, 39,183,106, 21, 42, 0,227,244, 46,158, 2,141, 14, 24, 66, 12, - 12, 48,181,187,201, 16,174,191, 21,220, 82, 12,204, 84,171,182, 71,124,219,115,181, 71,252,116, 36, 34, 36, 76,230, 90, 93, 17, -152, 5, 29,137, 17,181, 22,119,134,107,211,189, 55, 43, 20, 77,197,174,230, 75, 79, 36,214, 96,133, 62,153, 70,130,162,122,243, -170, 71,132, 55, 56,173,181,249,123,226,150, 43, 47,238,204,200, 44,225, 26, 30, 72,228, 30,204, 65,204,230,129,225, 34,132, 72, - 32, 93,216, 4, 67,199,160, 8, 35,188, 14, 81, 67, 16, 96, 43,231,171,218, 4,190, 13,115, 12, 11, 68,247,182,150, 99, 70, 0, - 58,187,220, 36,162,174,235,181,106,132, 39,102,107, 2,222, 52,213, 43,193, 45, 48, 35, 55,234, 57,185, 59, 51, 19,246,238, 21, - 12, 24, 9,201,205,129, 24,219, 93, 6, 17,189, 6, 17, 71,139,224,178, 56,152,150, 98,126,157,141, 5, 12,128, 78, 56, 64,204, -125, 98, 73,133, 99,132,129, 17,146, 19,142,170, 30,150, 83,122,246,225,253,147, 71, 7,204,137, 48,132,217,204,175,129,140, 81, -138, 85,171,210,106,205, 96,147, 37, 21,131, 3,204,189, 73,174, 48,194, 90, 83, 20,185,201,117, 35, 12,208,104,226, 97, 92,179, - 80, 16, 3, 40,181,183,229,122, 40,232, 6,164,219,187,219,111,238,111,127,254, 51,111, 12,155,245,147,195,103,239,221,187,255, -224,225,225, 48,212,141,175, 62,252,232, 98, 61,214, 89,215,245,179,217, 98,150,183,183,118,102, 93,154,167,196, 73,102, 57,179, -200,172,203,125,215,109,237,236, 16,203,131,119,255, 58, 94,126, 49, 73,215,205,103,125,206, 44, 11,230,228, 78, 85,199, 90,134, -106,174, 21,116,212, 50,174,136,160, 23, 22,162,190,163,204,152, 36,229, 89,110, 86, 39,243,104,167,120,192, 73,224,228,102,225, - 64,130, 72, 50, 65,239,133,145, 57, 84,167, 5, 45, 18,181,249, 76, 64, 0, 26, 4, 49, 39,176,229,234, 36, 98,191,159,205, 16, -212,172,184,226,230,236, 24,137,136, 18,154,191,247,193, 7, 55,111,221,253,220,171, 47, 14, 14, 55,118,118,128,201,203,104,170, -224,150,182,182,235,122,128, 0, 72,172,197, 0,197,235,200, 93, 10, 85,202, 89,199,113,190,187,255, 51,223,248,246,255,245,239, -254,245,238,122, 57,159,207,103,179,249,157, 59,183, 14,158, 28, 92, 92, 94,221,217,190,177,253,226, 75,239,191,243,215, 71, 79, - 55,251, 55,246,187,217, 28,145,180, 90,238,103,237, 66, 85,215, 99, 16, 67,128, 90,149,214, 19,170, 21,101, 22, 86,180, 42, 17, - 7,102, 4,197, 40, 72, 93, 0, 2,240,162,199,135,247,238, 95, 46, 55,159,124,229,141,123,239,126,240,222,211,243,170,214,119, -226,230,227,160, 0, 10,129,163, 21,115,219, 84,115,143,174, 99, 34,116,240, 54,144,253,216,110,232,104,238, 86, 74, 73,153, 34, -193,106,179,218,219,217,186,177,179,253,209,227,199,165,150, 27,219,249,114,189, 82,173, 93, 78, 26,240,183,190,250,149, 95,255, -149, 95,185,251,226,203,152,186, 81,171,151,241,242,226,228,217,211,195,139,243,139,123, 15, 31, 63, 60, 60,184, 92,175,199,205, -120,124,113,126,122,118,246, 51,111,126,230,159,254,189,191,243,250,235,159,124,250,248,241,179,243,227,167,199, 71, 79, 15,159, - 84,139, 15, 31, 63, 30,206, 47, 94,220,219, 19,193,106, 77,248,206, 0, 68,204,110,181,170, 39,136, 32,112,140,106, 53,129, 68, -132, 54,112,138, 75,245,170,225,137,184,250,164,225,109,219,251, 8, 48,247, 54,232, 22, 70,117, 84,183, 44,211, 5,128,169, 57, -150,188,201,225, 3,192, 28, 16,155,100,110,202,103, 77, 12, 3,139, 32, 38, 33, 55, 3, 8, 73,115,196,104,143, 72, 4,170,102, -109,215, 76, 68, 78, 17,134,102,202, 60, 53, 21, 25, 9, 66,193,129,137,107,107,101, 67,106,228, 27,245, 32,188, 14, 77,185, 59, - 64,187,219, 3, 66,115,206, 51,160,153,133,134, 36, 49, 15,102, 10,247,208, 82,219,232,156,201,195,195, 20, 49, 1, 98, 68, 37, -226,148,146,106,128,187,187, 19,146,187,182,200, 60,132, 53, 37,125, 68, 12,155,145,136,152,209, 17,213,131,176,229,183,128,112, -162,152,149, 82,163,245,210,133, 60, 90, 35,131,186,249,124,216, 12,224, 70, 41,133,163,187,195,228, 93,165,192,105,117,105,208, - 42,160, 22,166, 36, 82,170, 9, 11,145,149, 98, 45,224, 4, 68,165, 20,170, 53,119, 51, 51, 43,181, 50, 33, 96,104, 13, 78,216, - 18, 1, 34, 9,204, 93,139,214, 98, 0, 34, 12,225,192,142,206,204, 98, 94, 85, 75,151,122,132,164,132,101,181, 38, 7,234, 51, - 24, 88, 53,184,174, 9,198,181, 56, 98,146,133, 97, 3,253, 7, 37, 89,111, 54,115,145,246, 65, 87, 32,119,240,240,148,147,131, -123,141,128,202,146,137,160, 86, 15, 83,226,132,129, 97, 17,160,156,196,171,171,150,148, 83,206, 84,213,109,116, 64,151,148, 32, - 72, 18, 15, 67,105,153, 34, 51, 15, 3, 17,142,166, 42,236,147,105,140,234, 18, 35,176,180,224,110,235,233,168,106, 78, 2,196, - 18,225,142, 26,161,171, 85,167, 58,159,207,198, 90,212, 13,192, 17,217, 61, 26,124, 8, 34,164,189, 1, 39,215, 40,178,123,193, - 86,160,107,166,211, 9, 86,196,205,116, 2,222,198, 53, 96, 30, 19,103,191,185, 82,153, 3, 12,145, 29,140, 9,131, 32, 28,195, - 77, 29, 2, 48,119,253, 27,111,124,234,173,207,125, 54,220, 3, 57, 76,135, 58, 46, 47,175,142,143,143,190,247,195,247, 78,175, -150, 23, 39, 71, 79,170, 5, 98, 22,206, 41,111,117,253,108,158,179,164, 62,119, 66, 56,142,155,163,147,227,121,223,205,250,249, -246,246,214, 98, 62,159, 47,102,210,207,102,253, 98,222,207, 89,208,157,220,221,108,199,221,135, 97,181, 44,195,229,102, 84,117, -198, 16,194,157,237,217,172, 75,179,140,132, 70,200,222, 18,148,238, 83,234,217, 20, 1,130, 82, 32,176, 65, 52, 35,253,132, 44, -110, 41, 57, 71,247, 0, 22, 9, 67, 68,230, 14, 99,189, 60,170,101, 49,223,218,235,250,206, 76, 65,136,220, 49, 32,172,188,123, -239,241,219, 95,120,243,114,185,185,243,202, 93,226, 20,227,136,220,185, 22, 78,104,195, 8, 30,196,136, 68,225,238,101,131,146, - 17, 9, 4, 56,165,178, 94, 91,209,207,127,233,203,239,191,251,206,213,197,233,214,246,216,205,230,139,237, 45, 73,114,112,248, -108,190,152,229,249,203,187, 55,247, 22,139,237,237,221,221,243,147,227,189,253, 91, 64,212,205,183,136,185,140, 67, 25,171,100, -168,234,169,155, 33,167,105,156,105,106, 70, 34,105, 42, 10,184, 55,145, 91,148,186, 89,158,253,248,135,127,101, 21,119, 16, 25, -203,170,216, 70, 21, 32,220,161,186, 5, 86, 51, 47,174,153,114,241,113, 84,117, 12,166, 41,157,221,216, 62, 68,204,141,182, 31, - 24, 17,163,105, 42,214,247,157, 99,156,158,159,119, 41, 45,151,203,220,117, 0,112, 99,103, 71,181,222,220,223,255,173, 95,254, -230,207,253,220, 47,240,108,238, 0, 97,186, 57, 63, 59, 57, 61,122,250,228,201,211,227,147,135, 7, 7, 7,199, 39, 67, 45, 23, - 23,151,231,231,231, 59,139,197, 63,251,221,223,248,253,223,252,118, 32, 28, 30, 60, 57, 56, 61, 26, 30,172, 14,143, 78,210, 44, - 63,248,240,225,237,237,173,231,246,246,192,221,108,250, 54, 34, 16, 35, 19,165, 46, 49, 98,193,169,160,131, 0, 82, 91,253,199, -117, 44, 35, 56,244,253, 44,115,170,230,204, 18,211,194, 61, 40,144, 17, 71, 83,102, 38,160, 0, 76, 66,194,108, 26,216, 86, 67, - 13,161,139,220, 24, 16,173, 62,223,110, 0,146,164,117,112,154, 20, 87,178, 32,224, 88,106, 27, 37,184,106, 32,182,200,180, 70, - 13, 15, 72,132, 68,225,225,225, 16,134,132,192,152, 92, 12, 12, 99,106,194, 4, 64, 22,102,148, 82, 11,114,195,156, 1,130,121, - 40, 33, 7, 53,250, 6, 6,122,155,195,153,182, 80, 21,166, 44, 14,144,132,221,181, 29,140, 91,162,188,233, 67, 72, 90, 39,222, - 26,245, 37, 0, 73, 2, 49,225, 88,218,253,195, 60, 8, 0, 89, 88,146,169,181, 82, 28, 65,195,247, 33, 51,133, 53,247, 20, 96, -128, 7,148, 65, 69, 24,144, 17,130,136, 75, 25, 0,128, 40,141, 99, 1, 7, 32, 49,117, 66, 64, 32,202,130, 13,115, 73,140, 12, -161,225, 16, 2, 76,194, 14,174,102, 89,208, 35,188, 56, 2, 36,145,170,166,101,204, 57, 35,164,198, 16,224,166,232,113, 64, 66, -119, 13, 39, 73,201, 76,213,140, 34,152,137, 48,170, 27, 19, 51, 9, 18,152, 25, 6, 18,177,185,107, 85,194,232,186,206, 74, 13, -179, 6, 49, 33,132,182,137,109,150, 56, 15, 96, 12, 32, 8, 70, 14, 68,228,203,229,154,195,183,119, 23,215, 77,120, 16,102,180, -134,197, 53, 66, 68, 76,102,166,106, 72,148, 82, 86,179, 90, 53,119,137,185,115, 83, 34,234,251, 92,171,154, 83, 0,230, 46, 69, -132,171,135,107, 13, 77, 89,180,170,106, 77,157,184,116,227,102,157,147, 80, 78,110,193,196,104, 17, 68,156, 68,171,130,143,129, - 40,148, 33,193, 20,192,207,157, 14,163,160, 2, 50, 4, 14,227, 38, 39, 49,160, 82,107, 67,236,182,119,219, 84,234,111, 76,178, - 8,244, 80, 36,142,104, 81,241,143, 81,162,237, 78, 51,205,178,221,162, 21,219, 62, 38,179, 83,187,255, 56, 6, 6,181, 41, 7, -196,199, 35,240,118, 29, 44, 99, 25,198,145,129, 26, 79, 66,132,110,220,216,221,223,223,121,235,243,159, 65,176, 50,148,171, 97, -125,120,120,242,236,244,226,252,226,242,240,232,228,248,244, 92,181, 6,130,112,218,157,247,171,177,228,148, 37,165,124, 44,125, -150,148,187, 89,151,186,148,103, 93, 63,219, 90,204,230,219,253,172,203, 93,223,119,139,174,223,245,216, 13, 51, 85, 53, 11,143, - 40,238,151, 23, 25,107,255,230, 0, 0, 32, 0, 73, 68, 65, 84,235,112,152,207,122, 17, 12, 43,137,128, 25, 82,226, 94, 88,184, - 25,198, 61,130, 28,167, 22,212,181, 70, 22,154, 6,204,189, 48,160,218,132, 7, 0,198, 52,163,113,189, 33,148,212,221,112,213, -148, 82, 0,131,218,189,143,238, 45,230,253,173,189,197,246,173, 59,105, 62, 7, 17,164,100,165, 82, 74,144,210,184, 90,167,220, - 97, 74,156,164, 14, 35,114, 70, 98,136, 32,194,178, 25,188, 70,203, 77,127,237,231,255,214,191,250, 95,254,167,229,229,130, 18, -111,237,236,221,189,243,220,193,179,131, 23, 63,241,252,234,244,164,172,203,122,189,186,121,247, 5, 61, 57, 25, 55,107, 11, 42, - 67, 89,159,157,215,106, 34,220,184,193, 4, 16, 90, 36, 37,141,208,205,134, 82, 15, 94,194, 13,133, 49,205,114,215, 93,158, 28, - 63,185,255,254,179,167,143, 23,243,125,177,234,101, 73,220, 35,120, 81, 15, 12,136,112,179,240, 64,104, 14, 69,116,135, 22, 28, -238,114, 98,100, 96, 50,171,146,154, 65, 11,168,197,177, 1, 8,112, 24, 71,102, 22,128,171,186,188, 66,156,205,230, 0,241,236, -236,236,115,159,122,237,237, 47,124,245,151,190,241, 11,159,124,237,117,163,100, 54,134,198,197,217,179,131,199, 15, 31, 61, 58, - 56, 56, 58,122,122,124,114,122,121,185, 92,175,199, 81,109, 44,223,254,218,219,223,249,173, 95,121,241,249,187,195, 88, 87,117, -248,224,131,247,247,238,222,174,225,167,239,157, 47,150,242,202,205,125,105,232, 11,194, 86,192, 17, 74, 13, 60,224, 26, 10, 78, - 36, 64,228, 96, 24, 24,220, 18,216, 82,134,181, 22, 3, 68,143, 48, 8, 17, 70, 4, 15, 16,100, 70,182, 90,129,154,103,206,221, - 61,101, 97, 68, 53, 39, 33, 12,244,107,254, 9, 51, 58,128, 32,153,155, 27, 50,147, 19,170, 71,206,185, 33, 98,137,185,105, 13, -114,146,201, 72, 5,209, 52,210,214, 72,176,109, 72, 82,221, 39, 85,142,184,153, 86, 99, 97,112, 36,226,214,137, 71, 32,140, 48, -240,233, 75,216, 16, 49, 64,197,134, 32, 98,100, 87,179, 80, 73, 66, 76,165, 42, 5, 83, 66,132, 4,224,109,230, 12, 96, 8,196, - 76,238,142,209, 54,120,237,156,142,204, 18,209, 98, 21, 20, 17,166,138,137,200,128, 16,145,153,137,204,162, 12, 35, 49, 79, 46, -157, 22,222,185,110, 94,129, 59, 16, 14,181,164,212,181,153, 27, 33, 90,173, 67, 93,155, 42, 33, 72,158, 17, 51, 37,193, 70, 0, - 48, 11, 50,175, 13, 84,147, 34, 44,156, 60,188, 75, 98, 6, 97, 78, 72, 22,211,228,146,178,160,123, 41,198,137,115, 98, 0,244, -170, 8, 78,204,208,134, 57, 56, 89,223, 48,192, 26,141,139,217,145,106, 45,204,156, 57, 33,161,153,114, 16,139, 0,128, 14, 21, - 40, 48,156, 89,212,204, 28,220,140,153,132, 57,166, 5, 0, 2,146,144, 24,155,155,182,106, 59, 16, 68,120, 41, 99, 47,210,117, - 61, 64,152, 7, 58, 88, 11,110, 16, 10,139,187,181, 31, 0,129, 48,160, 1, 22, 82, 74, 17, 24,224,196,130, 68,117,179,113, 83, - 78, 89,114, 66,226,113, 24,204,172,205, 0,173, 40, 97,112,226,118,214,236,114,215,208, 81,215,198, 62, 2,198,112, 39, 2, 15, -209, 90,131, 11, 79,241, 43,116, 15, 97, 54,173,136,129,170,156, 68,181,213,196, 82,139, 78, 85,173, 29, 65, 97, 17,130,214, 22, -139,169,218,241,177, 30,152, 40,188,101,196,195,213,154, 86,187,221,194, 38,156,192, 4, 13, 8, 98,104,191,112, 98, 53, 18, 48, - 50, 4,123, 40, 2,187, 7,128, 35, 49, 3, 64, 40, 32, 66,123,128,128,121,216, 48, 20, 66, 19,162, 89,158,189,241,234, 43,159, -249,116, 91,236, 66, 25,235,249,249,229,197,102, 56, 60,124,246,224,241,225,227,167, 71,167,151,151,106,216, 47,250,237,126,107, -123, 62,159,207,114,159, 59,102,234,152,152,168, 95,244,125,223,117,121,182,189,216,158,109,109,207,231, 91,125,223,247,179,185, - 16,115, 18,139, 40,163,166, 46, 53,102,225,122, 53,152,149,171,227,115, 45,101, 62, 75, 59,139,188,191,183,221, 37, 16, 70,141, - 9,125,128, 72, 16,166, 78, 28, 17,132, 16, 35, 42, 32, 39,104, 58, 70, 70,236, 97,121,117, 76,132, 93,151,114,191, 85,174,206, - 93,228,207,190,247,238, 55,127,246,103,182,111,220,204, 59,123, 33, 25,128,192,194,202,166,223,222, 25, 55, 3, 69,147,220,170, - 22,119,175, 24,228, 85, 49,139, 90,104, 81, 18, 36,194,178, 90,191,240,234,167,190,240,246,207,254,224, 47,254,239,249,246, 86, - 63,203,251,183,111, 62, 59,125,118,255,222,163, 47,191,181,181,152,111,237,222,188,245,244,224,209,214,238,246,242,236,100,231, -206, 75, 59, 55,111,214,161, 48, 1, 37,177,162, 0, 10,200,224,170,197, 28,136, 68,194, 43, 54,208,156,136, 16,124,244,238, 59, -199,135,135,175,125,234, 21, 27,223, 56,125,252,120, 24,150, 17,136,117,125,181,190, 42,102,215, 61,130, 9, 22,225,230, 99, 25, -138, 86, 51,219,154,207, 61, 28, 16,178, 99,107,140, 35, 11, 16, 16,178,215, 86, 24, 68,119, 28,107,205,243, 89,146,100,102, 24, - 80,212,190,240,153, 55,254,225,127,246, 59,111,126,254,243,221, 98, 39,136,107, 29,202,106,117,118,116,120,255,193,131,135, 7, - 79, 30, 29, 62,187, 88,174, 86,195,176, 90, 46, 33,240,237,207,124,250,215,126,246, 75,111,190,249,198,250,106,121,116,114,178, - 1,248,240,189,247, 46, 78, 47,142, 87,171,147, 39, 79,159,219,223,235,152, 93,109, 26,255,122, 0, 50,139, 96, 80, 68, 20,173, - 8,211,135, 19, 3,204,156, 25, 93, 1, 16,205,180,207,125,207,169,132, 11, 50, 49,183, 19, 75, 47, 93,209,106,181, 0, 17, 19, -186,169, 19,145,135, 85,167, 68, 41,139,153, 55, 17,176,135, 17, 73, 0, 36, 73,110, 86,218, 7,153, 48,209,245, 97,188,121, 7, - 33, 2,167,232,222, 20, 24, 7,132,112, 36,208, 58,108,134, 53, 32, 39, 73,125,215,183,205,143,153, 49,161, 3, 20, 45, 13,249, -141, 68, 24,206, 68,197, 10,179, 16, 32,162, 48,179,106,117, 12,225,222,221, 61, 52,218,232,223,221, 16,174,141,135, 17, 97, 22, - 78, 72, 24, 40,210, 77, 88,120, 0, 11,119, 45,192,200,148, 60, 90, 73, 10, 32,162,150, 66,140,204,226,110,204,200, 13,172, 8, -160, 94,219,142,248,250,141,213,106, 84, 65,128,238,109, 0,129, 34, 76,224, 36, 18, 13, 53,156,187,132,208,204,124, 94,134,174, -155, 55,140,160,176, 20, 51,215,104,114,146, 54,249, 71,114, 68, 28,203,200,212,161, 48,168,165,196, 8, 8, 44,101,179,105,164, - 7,143, 64, 11,119, 5,224,214,164,101, 36,157, 90, 2,109,156,239, 22,152, 88, 0,145, 8, 82,223,115, 99, 58, 22, 3, 38, 7, -135, 90, 1, 98, 54,159,215, 98, 21,198, 90, 70, 32,102, 65,102,177,234,109,129, 57, 73,158, 49, 28, 44, 44, 16,154, 19, 20,192, - 99, 61,234,122,179,190,181,187, 75,132, 30, 33, 34,166, 30, 97,225, 33,196,197,172,154,181,183, 91,120, 56, 26,139, 16,203,132, - 52,116, 7, 2, 83,165,196,146,179,169,130,105, 4,166,255,143,170, 55,255,181, 44,187,238,251,214,180,247, 57,119,120, 99, 77, - 93,213, 3, 41, 81,205,110,146,205,169, 57,180,154,106,142,110,139,164, 24,138,162, 69, 89,142,100, 39,113,130, 68, 63, 40,113, -126,136, 99, 56,131,127,200, 96,196,128,129, 0,137,101,196, 64,128, 32,137, 17, 40, 30,228,196,146,160, 72,150,100, 18,154, 76, - 89, 18, 69, 50,221,108,246, 80, 93,115,215,171,122, 85,111,126,247,222,179,247, 94,107,229,135,117, 94,219,249, 3,216,120,172, -123,239, 57,123,175,245,253,126, 62,194,166, 90, 90, 21, 32, 32, 8, 96,142, 48, 35, 33, 16,120, 81,100,130,200,158,162, 67,188, -199, 87, 6, 6,113, 5,215,112,144, 19, 64, 60,150, 60,105,107,128, 6,225,195, 66,196,120, 20,163, 39, 34, 51, 0, 48, 9,147, - 55,180,184,118,225,191,226,169, 5, 15, 14, 12,254,127, 6, 37, 15,115,208,217,219,124,236,149, 2,134,249,136, 1,162,241,131, -225, 1,137,179, 63, 33, 1, 26, 56,146,147,163,185, 2, 8,128, 3, 1, 33, 25, 0,155, 59,184,214,230, 96,170,234, 17,113,218, -216,218,184,244,200,197,247,188,243,209, 82,219,213,155,119,207,111,175,239, 29,157, 92,191,126,251,218,221,221,197, 98,121,253, -214,253,162,154, 88,166,253,164,159,116, 91,107,107,147,190, 35,132,212, 73, 79,185,235,186,181,249,188,159, 77,166,147,217,124, -190,158, 39,179,174,159, 32, 1,186,117,179,217,124,115,189, 13,101, 62,155, 13,165, 28, 29, 31,237,236, 45,239,236, 28,228,204, -147, 73,119,110,107, 99, 54,235,251,190, 19, 38,173, 48,118,161,221, 49, 22, 78,166,136, 0,144,209, 61, 9,205, 55,242,242,100, -191,235,174,180, 97, 69, 76,223,250,246,119, 46,109,109, 94,185,116, 94,102,107, 36,226,117, 5,210,183, 82,211,108,189, 86,211, -170,156,132, 69, 76,155,131, 33,101, 45,141,177, 1, 37, 91, 54,102, 38, 73, 72,238,230,110,237, 3, 31,123,254,213,151,190,125, -124,112,192, 34,169,235, 47, 63,114,229,149,239,189,114,249,210,249, 71, 46, 93, 56,220,123,184,191,187,243,240, 1,111,109,172, - 49,118, 96, 70, 96,121,214, 53, 29, 69,149, 64,236, 14, 90, 10,166, 14,221,180, 22,230,212, 79,167,135,251,123,111,126,255,165, -245,245,205,143,188,240, 35, 66,244,230,119,191,107,117,104,234, 93,194,197,241,233,235,119,239,171, 54, 51,180, 81,164,110,102, -190, 26,202,106, 85,106, 83,119, 95,174,150,165, 12,224, 16,177, 16, 10,193, 11, 35, 1, 10,162, 32, 16,132, 75,202, 76, 93, 50, -129,195,164,151,175,190,240,103,126,226, 75, 63,118,238,226, 21, 96, 2,135, 97,181, 60, 57,220,187,115,251,198,205,155,183,111, -222,189,119,127,119,239,164,172, 22,167,203,217,100, 58,221,220,254,204, 7,158,254,228,199,159,153,230,124,255,206,109,158, 77, -111,188,126,253,218, 91,119,183,182,230,187, 15,247, 54, 82,126,116,251, 28,162,183,102, 77, 1,200, 73, 17,153, 3, 51,224,228, -166,134, 70,213, 53, 51,194, 88,224, 96,112,112,215, 56,130, 50, 18,100,153,130, 83, 52, 65,221, 25, 65,173, 33, 66,234,178,187, - 87, 53,225,204, 8,213,155, 16, 1, 82,107,134, 68, 68, 20, 47, 18, 32, 4,128,161,212,216, 70,154, 89,150,164,230, 68, 28, 33, -196,240, 81, 26,152,106, 5, 7, 2, 28,161, 88, 0,109, 53,236,237,239, 29, 30, 29,112,146,205,249,166,155, 75, 74,238,200,204, - 81, 49, 9,112, 63,140,232, 93, 90, 13,203,145,133,194, 9, 76,155, 85, 36, 38, 22,213,192,103, 9, 50,153, 26, 17,158,105, 26, - 33, 64, 84,102, 74,132,113, 33, 7,112,140,105, 48, 56,146, 72, 22,109,154, 82, 98, 34, 53, 53, 87,116,118, 3, 11,126, 16, 66, -124,236,142,144, 57,153,123,109,202,177, 31, 52, 83,176, 78,146, 54, 37, 4, 68, 49, 11,213,137,251, 24,144,119,107, 26, 42,183, -148, 72, 68,128,130,201,131,230,202, 73, 24,140,145,171,170, 42, 48,177,122, 3, 71,194,108, 86,145,144,152,221,176, 14,133, 1, -251,174, 3,162,214,170,171, 34, 51,163,212,166,224,141, 57,185, 67,206, 25,208,203,170, 33, 69, 78, 9,205, 12, 16,115,151,193, -160,150, 98,110,209, 34,142, 89, 58, 98, 10,165,198, 89,118,159,227, 90, 15,166,196, 34,136,198, 60, 70, 7, 35,242,139,160,106, -230,206,137,155,214,140,216,245,189, 3,130,147,170,154, 42, 0, 40,128,131, 17, 65,135,169,212,230,222,194,147,110,106,140, 28, - 19,149,214,138, 72, 74, 41,171,186,106,213,166, 0,110,205, 67, 86,193, 72,230, 78,214,186,190, 3, 76,102, 86,107, 99, 9,130, -177,131, 57, 36,108,101,160,209,103, 74, 73, 80, 1, 93, 91, 22, 9, 46, 38,168, 50,138, 90,137, 39,116, 91, 46,101,210,135, 7, -201, 20,136, 0,192,153,153, 83, 22, 34,242,160, 29,163, 35, 51,170,198,198,213, 35, 69,237,128,168, 64, 50, 22,227,206,200, 96, - 48, 30,230,199,123,227,216,199, 27, 69, 77,241, 21, 36, 11, 22,218,232,228, 8,225, 0, 2,208,216, 42, 32, 12, 98,234, 56,236, - 30,255,231, 32, 60,110,234,205,252,244,116, 1, 20,232,127,153,206,230,231,206,111,191,251, 93,239,100,112, 55, 59, 56, 58, 60, - 58, 89,220,187,247,112,103,239,224,214,237,123,111,222,190, 89,171,185,225,108,222,111,172,205,215, 38,147,245,181, 89,223, 77, -250, 36, 34,210,245, 93, 63,233,167,179,233,180, 95,155,172,173,117,169,115, 67, 73,210,175,245,243,217,180, 22, 29, 86,171,213, -106,177, 88,158,222,184,125,191,212,150,132,214,215,103,211, 73,222, 88,155,110,206,103, 41, 11,130,213,230,102,102,230, 64,198, -136,134, 32,156,104, 29,142,142, 31,144,118, 94, 15,110,223,123,248,165,207,127, 33, 77, 59, 36, 68, 98, 36, 86,179,148, 19, 90, - 27,142, 23,148, 24,220,218,234, 20,243,148,130, 23, 39, 6, 78,173,168,153, 75, 2, 4, 67, 36,100,172,165,204,187,244,220, 11, -159,251,253,175,255,250,108,125,141, 37,159, 59,127,241,209,199, 79, 94,122,229,141,173,205,121, 34,124,230,195,207,189,117,235, -218,124,115, 3,115, 79,148,112,194,206,226,195,106,100,102,129, 89, 27,212, 93, 28,181,150,190,235,140,233,245, 87, 94, 62,218, -219,127,231,147,239,121,228,137, 71,221,218,226,225, 94, 18, 89,173, 86, 34, 80,181,253,157, 95,252,165,251,199, 5, 24, 24,209, -212, 44,236,192,128,165,148,128,219, 33, 97, 83,115, 71,139,111, 80,236, 19, 7, 11, 67,227,116, 50, 69, 8, 34, 7, 10,225,106, - 88, 54,211,231,223,255,204,159,251,210, 23, 62,252,236, 71,165,159,173, 86, 75, 47,165, 12,139,253, 7,247,110,223,185,113,253, -246,221,183,238, 61,120,112,112,176, 26,202,173,157,123,173,212, 47,191,240,195,159,255,196, 71, 30,187,114,190,154,183,201,228, -245,151, 95,185,252,196, 99,179, 11, 27,245,214,237,195,221,195,139,235,243, 89,238, 74,107, 49, 17, 74,137, 2, 22,237, 16,182, -123,119, 51, 12,244, 16,158, 25,101, 8,131, 10, 22, 0, 81, 66, 34,134, 36,100, 65,170,162, 32,164, 55,119,103,230, 56,152,114, -148, 47,145, 50, 71, 55, 44,222, 16,104, 6,103,222,106, 55,211, 40, 41, 81, 98, 34, 42,181,129, 3,139,140,218, 68,192,128, 4, -128, 99,107, 5, 36,157,253, 88,188, 53,109,173,170,106, 51, 45,221,144,211, 36,119,152,114, 23, 55, 89, 36, 64, 34, 53, 71, 4, - 34,104,106,204,201, 77,193,173, 89, 37,116,226,140,136,161,229,100, 17,143,205,109,151, 64,221,205,115,151,205,204,220,137, 37, - 26,144,102, 22, 56,171,118,134, 71,117, 87, 80, 22, 22,119,211, 22,169,161,200, 70,251, 40,111, 8,150, 60, 24,130, 0, 26, 34, -178, 48, 33, 40, 24, 9, 38, 75,181, 42,143, 16, 63,103, 10,175,111,212, 10, 13,194,139,102,102, 78, 41,139,131,131, 91,107, 45, -229,140,132, 34,226,106,173,169,176,152,183,166, 70,148,204,154, 65,115,243, 72,101, 0, 96,158,116,209,237, 10, 63, 42, 34,134, - 67,131,152,227,126, 70, 72,181,148,136, 0, 57,248, 80,171, 16, 83,234, 29,188, 14, 21,162,247, 14,216,170,177, 0,230, 4, 77, -233,172,211, 18,182, 6,109, 26,215, 35, 96, 6,128, 80,119, 4, 6, 44,242,223,102, 45, 9, 17,145,154,150,229,114, 58,235, 89, -216,205, 67,102, 2, 64,102,158, 8, 99,202,135, 0, 41,177, 54, 52,109, 68, 76, 73,136,176,172, 6,247,248, 52,205,107, 9,240, -178,170, 15,181, 50, 0,247,217, 28, 93,149,153,209, 59,109, 0,164,238, 38,140,241, 64,100, 2, 39,215, 58, 52,181, 68,202,210, - 25,170,170,215, 82, 90, 27, 8,129,132,137, 83,120, 12,137,169, 54, 32,114, 76, 98, 77, 41, 17, 34,145, 68, 7,148,132, 19,172, - 6, 1,183, 49,180,228,132, 49, 71,165,248,152, 71,131, 42, 96,192,213,129,128, 69, 80,163, 26, 23,141, 58, 2, 3,103, 24,169, -151,204, 60,190, 4,198,166,112, 32,218,163,135, 19,208, 71, 87, 83, 30, 55,214, 35, 63, 3,204,162,198, 6, 35,191,205, 70, 85, - 19, 56, 75, 8,233,124, 62,225, 59,247, 15,223,245,248,185, 85, 89,130, 49, 48,228,190,123,100,182,126,249,145,199, 19, 27, 82, - 50, 45,187, 15, 31,222,124,235,254,205, 59,119,223,184,113,247,198,254,254, 98, 40, 93,206,235,243,217,246,250,198,108,210, 79, -102,211,105,151,251,148,167,147, 73,223,247,156,178, 48,179,164,174,235,165,207, 89,186,205,173,237,173,237,109, 53,179,214, 86, -101, 53, 44,151, 15,247,135,221,189, 5,217,253, 60, 73, 91, 27,179,141,121, 63,153,246, 73, 72, 18, 7, 30,193,195,216,144,109, -117,116,240,245,223,254,103, 63,240,228,135,250,217,156, 38, 76,169, 71,132,214,162,115, 66,203,163, 19, 96, 6, 20, 74,226,173, - 17,130,214,130,238, 40,201,204,135,163, 83, 74,220,229, 9,130, 91,173,209,221,104,194, 63,244,222,103,190,251,167,127,120,114, -116, 36,210,167,190,123,199, 19,239,120,233,240,232,206,221, 7,143, 92, 60, 95,155, 78, 55,214, 94,250,147,111,127,225,167,159, -235, 38,221,176, 60,181,161, 98, 96, 78, 28,117,168, 14,204,140,128,214,207,215,134,197,241,247,254,229,183, 46, 62,242,216, 15, - 60,251,108,158,207,189, 14,203,147, 99,109,214,154,102,134,181,249,250,175,252,139,127,249,242,141, 59, 79, 60,122, 89, 91, 3, - 0,181, 8, 70, 26, 48, 13,173, 2, 1, 58,145,141,233,236, 17,160, 31,253,183, 56, 39, 32,168,105,202, 68,131, 35, 81, 45,117, - 50,153,254, 59, 95,251,234, 79,126,249,203,179,205,115,138,120,186, 60,174,167, 39,171,213,234,225,253,157,171, 55,110,236,236, - 61,188,243,214,206,201,106,208,170,222,252,177,173,237,159,122,241,147,159,253,212,115,171,197,201,193,254,225,236,202,229,235, - 55,175, 31,157,156, 76,143, 14, 95,126,233,181, 9,248,185,205,181,102, 94, 77,205,128, 24, 66, 81,231,128,103,186,220,198,146, - 1,200, 13, 83,162,177,222, 22,235, 20, 36, 68, 87, 12, 38, 52,154,123, 51,199,128, 82, 56,153,171, 3, 72, 98, 51, 96, 70,247, -132,160, 1,135, 97, 4,143,116,202,232,228,117, 68,212, 90, 57, 37, 32, 70,138,125,103,114, 80, 73, 9, 41,214,240, 99,169,154, - 4,181,170, 27,164,156,206, 26, 73, 88,213,152,243,108,186, 86, 84, 9,160,235,166,253,164, 75,194,181, 54, 38, 4, 4, 27, 61, -192,228,136,110,192,212, 1,249,217,108,215,132, 59,117, 55, 87,162,248,255,174, 72, 12,232,222, 60,136, 43,109, 85, 93, 66, 64, - 78,237,108,176,222, 52,196, 68, 8,132, 96, 40,125, 87,106, 97, 66, 48,114,180,224, 48, 39, 17,208,166,102,168, 74, 73, 96, 68, - 52,128,121,192,238, 25,208, 5,160,105, 64,146,209,212, 9,129, 25, 91, 36,135,145, 1, 34, 2,223,226, 23, 79, 28, 21, 76, 69, -196, 52,153,184,155,185,106, 81,114, 68,161,229,106,133,128, 34,108,160, 72,152,132, 1,104, 88, 45,152, 57,247,189, 54, 39, 39, -109,197, 77, 71,183, 50, 17,162,171, 91,159,250,170,165,148, 34, 57,141,239, 17,181,148,123,116, 55,173, 35, 6, 89,155, 1,144, - 99, 74,210,180, 98, 11,192, 74, 33, 78, 76,217,124, 64, 71, 39,231, 68,140,210,180,180, 86,193,137,153,132,196, 92,107, 45,137, -163, 31,131, 72,128,218,178, 12,155,155,235,134, 74, 32,238,160, 77, 17,144, 16, 76, 21,144,165, 35, 4, 82,115,111, 5,187,100, - 13,134, 85, 99, 42,204, 44, 34, 26,210,190,166,196,236, 85,173, 85,102, 36, 98, 52,239, 36,169,228, 86, 86,197, 42,131, 51,118, -136,228,234, 44, 40, 93,183, 42, 67, 27, 6, 83, 39, 70, 3,196,214, 16,201,220,203,176, 88,158,158,128,123,238,187,126, 50, 99, - 17,119, 2,132,148,196,180, 81, 44, 74, 1, 8,153,153,221, 91,109, 37,122, 75, 18,113,215,120, 88, 7, 11,142, 24,157, 8, 27, -156,165,134, 16,220,115,162,110, 58, 61, 61, 62, 30,213,214,228, 4,136,128, 76,232,128, 4, 20,135,165,209,160,231, 99, 60, 37, -242, 98, 54,154,204,221,205, 9,206, 22,179, 14, 24, 49,106,198,127,109,158, 63, 2,199,162,158,230,142,110, 70, 8,155, 91,179, -221,235, 59, 85, 55,227,246,106,224,110, 28,109,221,214, 16,176, 34,224,133, 11,231, 31,191,114,233, 83,207,125,144,136, 15,246, -247,175,222,216,185,181,115,255,214,221,157,131,163,163,123,187, 59, 32,105, 58,157,110,205, 55,182,214,214,182,182, 54,250,201, - 36, 51, 45, 23, 75,107, 85,178,116,125,215,119,211,233,116,214,245, 83, 78,156,115,154,244, 19, 66, 17,161,170, 54, 44, 23,251, - 71,195,131,131, 67,240,189,233,164,223,218,152,245,157,244, 93,234,251, 9, 19,229,137, 16,251,185,199,158, 56,127,241,146,100, -161,156, 57,119,109,185,212,102,148,104,185, 90, 58, 11,153,106, 83,150, 44, 41,155,186, 53, 39, 84, 2,209,161, 17,115, 55,153, -131, 89, 43,195,120,136, 19, 6,135,212,201,135, 63,254,252,111,252,211,127, 50,157,205, 69, 68, 68, 30,123,236,202,245,155,183, - 47,157,219, 60,217,125, 43,109,108,108, 94,122, 7,164,201,106, 88,182, 97, 9,200, 86, 6,140,189, 89, 4,135, 17, 8,224,214, -235,175, 30, 28, 60,248,193,167,158,218,218,190, 80, 85, 17, 90,169,173,156, 46, 93,161,149,161,149,225,143,190,127,247,229, 27, -111, 85,109, 26,247, 82,112, 83, 7,104,194,180, 28, 90,173,138, 12, 35,241, 97,180, 69,140,176,114,240, 51,150,133, 25, 10,161, - 99, 83, 16,241,231, 63,252,193,127,239,103,254,205, 31,126,238,249, 69,177, 6, 90, 22, 39,101,113,124,184,191,127,227,230,141, -155,119,238, 60,216, 63,120,112,176,127,116,116,122,120,124,122,229,194,249,143,124,224,125, 95,252,145,143, 93,188,112,254,254, -238,189,226,237,254,254,254,193,173, 91,230,118,116,114,186,251,205,239,172,175, 77,214,103, 83,240, 72, 99, 97,202,236,110,136, -146, 56,133, 19, 46,114,134, 77,125,116,189,128, 35, 98, 45,205,208, 0, 52,113,199, 66,224,130, 8, 54,198,120,199,237,130,161, - 7,113, 62, 60, 68, 4,232,166,156,196, 32,236,146,156, 18,155,131, 16,132,241,199,205, 41,231,127,229,249, 34, 6, 48, 66, 6, - 36, 51, 5,116, 53, 27, 83, 47,230,132,100, 50,186,137, 0,212,192, 17,129,133,166,147,105,160, 50, 88, 18,145, 52,141,169,246, - 8, 3, 38,234, 28, 60, 16, 2,148, 81,171,145, 48,152, 58,177,122, 13,163, 42, 18, 86,213,152, 25, 18, 32,101, 70,247,216, 51, -115,188,246, 70,139,165, 3,130,224,232, 63, 96, 34, 39,175,173, 34,160,153,113,156,230,163,214,175,205,205,152, 81,129, 16, 41, -244, 56,102,122,102,179,119, 85,109,174, 0,136,200, 66, 9,208,173,182,130,158, 68,192, 76,132,195,244,132, 0, 1,253, 54,135, - 86, 12, 25,213, 20,136,180, 42,128,147,176,187,235, 80, 25, 17, 44, 38,233,200, 12, 67, 93, 17, 8,177, 36, 97, 53,179, 82, 29, - 60, 64,239,168,200, 34,197,170, 8,245,221, 68,181,161, 97,234,186, 56,153,146, 36,103,141,135, 76,211,202, 46,177,144,100, 71, - 36, 72, 28,167, 74, 5,100,146,108,170, 8,149,128, 60,147,171,106,209, 56,110, 50, 82,136,144,170, 85, 66,202,153, 32,232, 5, - 72,136,176, 88,156,204,122, 94,155,225,233,210,154,133, 81,138, 16,216,188,169, 91, 78,236, 81, 33,102,204,211,110,117,122,210, -212, 37,101,194,228,126,198,126,211, 6, 72, 10, 72, 4,146,164,169,106, 45, 40,153, 58, 92, 21,117,163, 36, 41,130, 95,110, 38, -157,132,220, 10, 29, 82,223,107,105,102, 13, 17,147, 36, 53, 91, 44, 78, 79, 79,143, 48,212, 33,204,181, 22, 67, 35, 52, 18, 97, -201, 8,140,104, 35,198,192, 21,128,154,186,171, 33, 39, 66,149,145,199,131, 4, 6, 68,236, 64,174, 10,122, 70,246, 4, 32,119, - 16,234, 38,211,217,218,108,185, 56, 1,139,214,231,120,157, 3, 0,115,156, 76,251, 97,185, 10, 31,222,153, 24, 47,102,246,113, -101, 54, 24, 51, 1,163,173, 35,104, 44,128, 9, 92, 71, 86,198,248,114,128,241,209, 63,142,236, 45,234, 16,169,159,111, 77,243, -253,189,211,203, 23,230,165,104,208,150,163,137,132, 36,129, 0, 93, 13,195, 48, 0,130, 35, 17,167,238,253,239,125,250,131,239, -127,175,185,105,171, 71, 39,139,195,147,211,123,119,119,111,236,220,187,255,224,222, 75,175,191,118,124,114,178,182,177,177,181, -182,190,181, 54,235,187,110, 34,137, 19, 11, 83, 18,158,118, 29,167,110,210, 79,242,116, 50,153,204,186,233,108,109,125,190,185, -185,133, 76,230, 84,219,176, 92,174, 78,150, 85,219,130,232, 48, 9,118, 89, 54, 55,214, 62,242,161,247,156, 44, 38,146,166,221, - 36, 55,179, 90,171,132, 67, 61,117,218,138,187,179,144,123,171, 13, 71,134,172, 72, 89,174, 90,211,220,119,148, 72,135, 37,134, -235,119,236,255,145,214,250,212,211,207,252,241,239,125,227,250,141, 27, 79, 63,245, 30,230,110, 99, 99,107,247,254,189,171,111, - 94,223,219,219,127,249,234,181,233,252,252,198,229,119,191,235,201, 31,172,165, 94, 56,183, 49,212,226,214,180,106,151,179,164, -124,243,205,239,223,191,119,255,210,229, 43,207, 60,251, 28, 17,181,214, 82,159,235,114,185, 90,172, 0, 9, 81, 91, 93,221,122, -112,248,205,215,222, 64,130,205,110, 46,204,203,214, 98,223, 18,239,152,197, 80, 34, 26, 17, 79, 13, 51, 80,119, 85,165,209, 49, - 18,134, 44, 32, 22,107,122, 90,135,119, 60,114,241, 47,126,237,167,126,236,243, 95,152,174,175, 45,154,169,105, 25, 78, 78, 15, -246,110,223,186,126,237,230,157,157,221,221,135, 7,135,167,203,101,109,109,247,224,248,221,151, 47,253,236, 87,190,240,190,167, -127, 8,193, 23,104,247, 15,247,115,162,249,249,205, 55,111,221, 57, 61, 60, 93,155,229,243,143,156, 3, 6,107,163,215,136, 48, - 33, 96,236,232,154,106,228,152, 28, 40,212,121,116,198,148,245,136,159, 58, 54, 67,179, 6,212,197,227, 23, 28, 29, 61,186, 44, - 57,115,216, 67, 1,199,113, 3,128, 81,162,184,159,119, 19, 50, 7, 68, 74, 76,200, 90, 87,104,234,200, 68, 16, 40, 65, 84, 51, -198,145,209, 4,103, 64,175,178, 90,229,156, 21, 32,179, 40, 24, 33, 19,131,169, 1, 2, 81, 76,120, 29, 56, 77, 83, 98, 97, 83, -139,127,180, 51,163, 48, 34,119, 72, 44,194,140,162,174,102, 78, 66, 64,232, 21, 17,209,106, 65,192,232,181,114, 16,201, 1,153, -121, 40,133,131,188, 37, 12,224, 77, 91,202,177, 72,139, 70, 36, 0, 17, 11,130, 81,179,134, 72,156,168, 22, 5, 30,237,196,218, - 26,159,161,208, 88, 36,244,131,163, 86, 97, 20, 39, 5, 96, 62, 62,101, 2, 48, 36,228, 46, 51,104, 48, 44, 75,169,110, 74, 34, -110,202, 34,238,192,128, 78, 65, 8,193, 82, 10,115, 96,188, 44,160,222,142, 8,236, 72,172,218,172, 25,167, 28, 66,241,166,138, -102, 40,224,134,173, 57, 19, 26, 3, 49,101, 76,110,214,106, 97, 22,236, 71,200,226,200, 29, 81,211,152,188,145, 68, 93, 17,153, -200, 16,153,212,148,136,172, 89, 51,117, 51, 48,131,204,200,130,110, 13, 20, 16,128,188, 35, 6,199,218,204,205,195,104, 25, 16, - 91,102,116,160,214,154, 53,159,172,245,173,177,123, 13,114,148,171, 58, 0,139, 16,197,120,149, 49,161,150,106,214, 36,103, 54, - 80, 53, 63,219,205,226,184, 6, 13,235,179,145,116,153, 8, 92, 90,243, 90, 91, 39,236,193, 77, 99,116,112, 73, 25, 8, 3,254, -195, 57,187,181,234,192, 68, 40, 98,160, 69,109, 40,203, 82, 74, 98,234, 58,145,156, 23,203, 33,105,157,206,230, 41, 37, 0,170, -222,220,160,105, 75,196, 46,238,102,140,132, 44, 97,165, 22, 68, 1, 82, 71,244, 24, 46, 71,138, 43, 9, 33,154, 86,228, 4,140, - 8,184, 88,148, 97,177, 7, 30,171, 84, 5,181,240,226,170, 3, 19,174,134,234, 58,102,191, 40, 82,107,163,125, 53,234,193, 52, -142,235,201,193, 29,205,220,160,129, 69,161, 23, 0,132,185, 53,115, 15, 40, 82,188, 17, 66, 75,229, 8,108,106, 85,253,194,133, -139,215,239, 62,192,243, 27, 4, 58,194,186, 29,152, 71,204, 5,134,188,119, 76,172,187,169, 46, 87, 3,132, 22, 23, 96, 54,159, -205,215,230,143, 95,126,228, 57,249, 0, 0, 29,236,237, 95,189,181,243,224,225,238,119,190,119,245, 79,111,221, 44,165,178,240, -246,198,230,214,218,124,218, 79,215,167, 57, 73, 98,166,148,100, 58,153,244,253,100,109, 99,109,109,190,206, 93, 55,159,173,167, -212,245,155,219,156,216,155,173, 86,131,106, 89,213,246,242,171, 55,239,237,220,234, 39,243,227, 97,241,216, 59,223,113,110,125, -163,159,174,201,180,211, 85,117,111,117,112, 64,178,218,188, 14, 60,153, 17, 50,161,182,218,106,107,125,159, 64,213,155, 2, 80, -216,107, 80, 4, 1, 93,141,146, 32,167, 47,253,244,191,245, 11,255,221,127,125,111, 99,231,145, 43,143,106,171,231,207, 95,250, -214,159,252,201, 75,111, 92,253,192,251,159,249,185,255,248, 63,185,112,249,202,239,255,243,223,253,129,119,189, 11,193, 2, 58, - 56,155,111,221,191,250,242,157,187,119, 78,134,250,161,231, 63, 51,159,166, 86,205,234, 42,247, 25,137,202,114,112, 85,153, 76, - 97,113,122,120,120,240,141,151, 94, 62, 90,149, 73,215,169,107,107, 45,238, 85, 90,171,170,166, 68,171, 97,137, 20, 40, 84, 55, -213,224, 2, 78, 82,118, 38, 45,213,220,208, 17, 8, 74, 27, 78, 22,237,171, 47,126,238,175,252, 7, 63,119,225,242,163,142, 84, -170,170,182,197,233,254,253,219,183, 95,187,250,250,206,253, 7, 15, 15,142,246,142,142,150,139,229,222,193,201, 99, 23,207,253, -165,207,127,250,199, 62,247,105, 68,223,127,176,211,111,159,123,235,230,237, 55,174, 94,155,206,103, 59, 59,187,182, 42,235,179, -126,109,218,185,186, 91,188,200, 89, 36,129,162,186,183, 22, 56,147,176,115,140,241, 85, 28, 7, 49, 35,202,159, 25,205, 49, 33, - 49,163, 42,184,215,156,187,166,214,134, 65,152, 35,159,138,170,204, 12,230,234,144,187, 68,228,165,150,174, 75, 76,194,136,181, - 52, 64, 87,111, 58,152, 48,169,121,202, 25,204,134,170,194,112,118,142,182,196,156,114, 82,179, 97, 49, 16,115, 68, 1,155, 91, -240, 99,181, 86, 31,139, 22,134, 0,146, 18,104, 19, 22, 0, 0, 50,116,103,230,162, 3,199,190,146,196, 16,137, 18,160,187, 26, - 18, 18, 50, 57, 22,112,116, 39,230, 90, 86, 41,247,241, 98,117, 6, 68,170,173,138,196,157,197,209, 28, 29, 82,226, 81,113, 31, -234,231,174,115, 48,173, 5,137, 25,129,132,155, 90, 74, 28,100, 74, 68, 7,240, 26, 33,200,152,187,135,210, 90, 88, 56,181, 86, -188, 2, 36, 32,100, 38,116,115,112,103, 78, 22,156, 94, 68, 51, 55, 53, 22, 1, 98, 74, 2,138, 72, 56, 22, 1, 1, 91,211, 46, -165,230,102,174,196,236,166, 90,149, 4,136,201,213, 77, 27, 50, 3, 50,186, 2,139, 53, 99, 66, 55, 53,117, 74,146, 18,155,123, - 78, 73, 91, 99,161, 86, 29,221,193, 9, 28,180,173, 56,245,110,170,171, 37, 10,251,184,126,137,153, 27,155,154, 26, 96,116, 47, - 99,118, 26, 57,109, 38, 64,114, 87, 0, 39, 36,224, 88, 19, 32, 17,147, 66,133,198, 64, 34,194, 66, 60,162,215,218,233,178,168, -185,203,124, 40,238, 32, 85,141, 28, 19,179,145,180, 97, 32, 38,146,100,181, 13,117, 72,146,136,201,195, 65, 1,166,173, 57,144, -129, 50, 37, 18, 30, 86, 3, 35,246, 93,178,248,231,118, 32,198,196,164, 0,166, 99,147, 78,139, 57, 52,182, 72,126, 65,171, 74, - 96,147, 46, 87,179, 90, 86,246,118, 69, 30, 97, 24,134, 44, 66,203, 1,117,112, 22, 85,245, 86,193,128, 73, 80,220, 11, 84,109, - 80,129,187, 30, 28,117, 85, 41,172,118,191,249,139,255,171, 35,170,106,102,118,115, 39, 39, 71, 71, 64, 16, 34,118,104,128, 24, - 66, 91, 15, 64,157,123,124,150,164, 70,153, 90, 5,146, 24, 90, 33,132,148,114, 76,215,140,190,108, 98, 4,247,192,208,131,133, -107,194, 29,209,212,152, 24,172,153,219,217,151, 35, 16,123, 62, 26, 10,198,136, 78,180, 11, 65, 82,186,241,230,205,203,143, 94, -202, 57,169, 57,162,132, 22, 18, 65, 21,128,125,164,211, 1, 80, 48,210, 16,137, 48,161,152,171,199, 43, 23, 98,178,136,152, 19, -231,220,117,169, 35,161,186, 90, 92,191,121,247,234,157,183,190,243,242,107, 55,118,238,149,161,138,228,105,238,230,243,217, 36, -119,211,105, 38,196, 73,215,173, 79,167,147, 73, 55,153,205, 38,179,181,249,108,109, 58, 91,239,215,215, 36, 37,109,102,205,172, - 44,142,142, 15, 79, 22,167,181,180,220,205,114,223, 9,138, 48,206,231, 27,231,206, 95,220,220,156,243,100,221,173,229, 44,152, -178, 59,154,105,107,134, 4, 9, 49,158, 44,196,130,204,174, 10,232, 78, 89, 24, 0, 73,151,203,254,226,185,223,254,199,255,232, -219,127,242,205,167,158,124,170,159, 76, 63,241, 99, 95,157,110,204, 22,135,139,189, 7,251, 77,235, 31,252,243,223,126,226,137, -199, 63,250,225,247, 45,150, 38, 93, 71,166,191,251,245, 95,255,198,215,127,235, 43, 63,249, 51, 31,251,228,103,107, 25,180, 22, - 64,146,156, 80,171,154,105, 49,201,108,165,157,236, 92,255,235,127,227,191,248,250,119, 95, 91,159,247,171, 85,185,176,189, 61, - 95, 95,107,181, 58,192,233,201,105, 25,134,156,242,155,119,110, 85,211,241, 74, 6,160,166,147,156,215,231,211, 81,111,120,118, -244,157,246,179,191,244,181,175,124,245,199,191,234,146,145, 64,213,150,203,197,225,222,238,141,171,175,191,121,253,198,221,189, -253,227,147,195,131,163,197,241,241,241,201,201,242,241, 11,231,127,254,167,127,226,233,103,158,122,240,224,126, 63,159, 93,191, -118,237,230,181,155,156,165,169, 29,220,223,223, 92,155,117, 57,169, 41, 34,100, 74,205,106,184,208,152, 50, 33, 17, 66, 51, 85, - 48, 4,113,104, 24, 75,124,164, 62,231,210, 42, 40,168, 67,206,201, 92, 1, 33, 97, 42,173, 56, 2, 35, 97,132,237, 28,136,168, -153,117,185, 35,166, 40, 44, 73,102, 20,114, 3,166, 60,142,160,162,204,161,102,106,221, 36,183,218, 28, 12,153, 92, 99, 9, 9, - 0,214,212, 18, 39, 34,140,158,140, 48,169,105, 45, 45,165,132,128, 44,212,212, 36, 10,177,222,152,115,220, 90, 57,119,110,134, -236, 54,168, 67,132, 59, 33,102, 50, 36, 60, 18,143,220, 89,216, 92,181, 90,144,100,204,180,149,128,185, 75, 84,140, 0, 92,205, -152,200,221,136, 81,213,187, 46,155,121,211, 26, 0, 22, 87,151,204, 86,199, 61,153,186, 11,179,153,137,100, 67, 43,171, 33, 98, - 45, 34,130, 76,160,142, 72,214, 10,178, 8,161,157,153,118,106, 81, 97,228, 8,137,107, 35, 0, 3,226, 36, 86, 20,120,172, 53, -138,144, 3,122, 53,236, 16,116,124, 78,128,162,129,169, 90,213, 38,241,147, 52,148,212,153,183,248, 7,180, 86,136, 82, 68, 30, -213, 52,231,220,106,139,217,138, 1, 36, 73,109, 40,193,181, 66, 78,241, 49,213, 86,115, 18, 97, 81, 83,213, 22, 57, 14,100, 82, - 53, 68,116, 51, 71,167, 32,156, 19, 35,176,121,209,214,132, 5, 83,182,166,110, 70,204, 66,169, 89,117,111, 48,178,197,209,221, - 76,109,212,113,184, 73, 74, 93,146,102,229,193,238, 81, 78,105,190, 62, 51, 53, 87,211,214, 80,178, 1, 32,112, 4,147, 84,213, - 21, 56, 37,247, 22,139, 68,173, 42,194,165,148, 96, 53, 51,147, 33,130, 97,196, 76,136, 16,153, 25, 83,105, 37,246, 67, 41, 39, -109, 86, 90,109, 85,153, 17, 25,153, 5, 1, 68,146, 1,212,161,104, 85, 39, 99,115,103, 57, 61, 62, 57, 56,220,213,106,228,202, -146,114,151, 56,117, 93,215,207,230, 51,160,212, 90,107,173,153,214,176,212,129, 53, 78, 9, 40,161,213,227,211, 83, 9,162,101, - 98,113, 4, 96,136,156, 0, 66,112, 87,206,166,232,128, 99, 67,214, 61, 86, 85,128,238,220,242,108,195, 79, 86,136, 98,104,241, - 56, 31, 47,189,222, 0, 4, 8,204,192, 85, 67, 68, 22,183,182,248, 56, 28,140, 16,205,234,219, 34, 81, 24, 3,244, 4,110,206, - 0, 78, 35, 33, 44,226,164, 14, 77,219,214,230,252,240,116,121, 33, 39,112, 5, 68, 69, 96, 15,222,182, 65, 88, 59, 28,145,129, -129,131,157,160,222,176,161,140,243, 36, 36, 24, 95, 29,181, 89,105,203, 19, 28, 64, 85, 36, 63,241,206, 31,120,242,201,167,254, -204, 11, 47, 44,151, 39,187, 15, 30,220,218,185,127,237,246,206,193,193,225,238,238,222, 91,247, 7, 0,156, 78,251,249,116,182, - 49,155,174,207,103, 93,218,237,167,253,164,155, 76, 38,211,201,124,190,182,177, 53,153,206,211,108,118,121,253, 28,103,138, 48, -130,170,214,218,134,178, 58, 62, 60,122,120,184,159,136, 82,238,103,107,179,237,243, 23,250,217,250,250,214, 22,115,102, 49, 34, -106, 67, 73,185, 39, 17, 52, 67, 22, 48, 51, 67,233, 19,130,107, 41,216,117,122,186,124,238, 83,159,125,229,165,151,174, 95,123, -243, 51, 95,252, 10, 49,237,223,123,240,173,111,126,235,209,199, 30, 61, 93, 13,247,118,238,105, 93,125,236,249,231,147, 14, 90, -234, 31,254,193,215,255,240, 15,255,197, 39, 63,251,197, 15, 61,251,177,197,209, 33, 16, 70,116, 15, 84, 77,213, 29, 73,196, 12, -185,156,252,223,255,215, 63,248,227, 55,110,204, 38,147,253,195,147,147,211,147, 39,174, 92,209, 86,205, 29,204, 91,107,128,206, -153, 89,164,174,148, 9,213,177,169,102,225,217,100, 50,212,154,122,139,241,191, 0, 0, 32, 0, 73, 68, 65, 84, 83,239,174,165, -212, 62,167, 23, 62,250,236,207,126,237,167, 62,240,161,103, 7,117,115, 31, 86,203,131,135,187, 15,238,223,185,115,231,206,141, -219,119,119,118,119,143, 78, 22,123,199, 7,123, 15,143, 47,110,172,125,237, 43, 95,252,209, 79, 62, 55,153, 79, 87,106, 39,195, -242,224,232,144,147,116,235,179,183,174,223,157,247,249,202,133, 13,150,168,105, 48, 1, 54, 48, 74, 29,104,224,193, 71,103, 21, -144,147, 7,221, 19,153, 9,153, 16,176,214, 10, 8,196,161, 53, 5, 70, 1,211, 10,141, 3, 38, 14,224, 14,147,148, 28, 80,205, -123,201,136, 8,142, 93,159, 91,107,106, 78,234, 68,161,232, 4, 68,114,213,234,134,230,200, 88,107, 67, 64, 55, 48,247,240, 64, -185,107,104,139,221, 13,124,124, 22,150,166,222,140,153,144, 66,130,234, 8, 10, 40,170, 42,210, 57, 56, 10, 49, 8,184, 7, 7, - 76, 35, 96,204,227,148, 50,100, 64, 0, 46, 40, 10,170,205, 17,145,162,137,175, 78, 44, 41,199,240,210, 70,167, 93,120,137,220, -193,192,208,145,176,214,130, 0,174, 6, 72,204, 68,146,212, 26, 50,185, 67, 12, 43, 34,174,101,214, 76, 35,242,200, 20, 56,162, -218, 40, 74,190, 36, 97, 98, 50,136,133, 0,231,142, 1,220, 85, 41,101, 12,151,133,153,213, 6,132,241,182, 32,137,176, 22, 96, - 66, 43, 54,154, 60, 34, 75,202, 4, 97,109,115, 71,116,238,216,180,142,139, 27,115, 34,118,247,160, 50, 0,146,154, 98,228,249, - 72, 0, 76, 91,117,215,113,101, 13, 0,236, 8, 36, 30,224,176, 2, 4, 68,201,221,192, 60,224, 97,170,230, 22,116,172,145,172, - 3,129,158, 39, 22, 98, 71, 4, 17,116, 2,104,234,133, 16, 29, 82,107, 85,173, 16, 1, 5, 12, 85, 13,201,153,199, 37,170,106, - 33, 29,214,182,102, 4,160, 35,202,132, 1, 33, 81, 38,164,170,101,252,212,100,236,241, 68, 73,141,216, 75,109,173, 20,201, 93, -160,104, 69,216,208,173, 69,160, 21, 24,201,208, 68, 24,212,171,155,170, 82,232, 41, 18, 18,160,187, 11,146,129,215,214, 70,216, - 25,114,171,166,238,160, 53,231,180,182,182, 57, 12, 75,109, 67,162,113,101,201,132,197, 12,181, 32,160,176, 24,146, 89, 3,183, - 88, 42, 16,141,221, 85, 65, 70,108, 22, 3,243,209, 76, 10, 13,244,108,171, 22, 86, 97, 26, 11,157, 68, 28, 50, 63,179,234,142, -203,227, 83, 68,110,222, 24, 16,200,131, 75,224, 4,132,226,224, 96,228,214,136,200,180, 97,236, 77,105, 12,235, 98,244,173,131, - 80,133, 48,210,175,144,220, 1, 41,131,215,179,225,126,244, 15,130,255,226,221,116,118,176,187, 15, 91,219, 68, 8,152,196,213, -225, 12,255,129,233, 44,208,102, 48, 82,159,244,140,221, 64,113, 77,139,215,210,153, 81,203, 1,128, 68,204,218,201,233,242, 20, - 86,196,104, 38, 23,206, 93,186,124,233,137,231,158, 69,132,225,244,116,117,120,124,178,179,187,247,242, 43,175,124,239,234,173, -171, 55,110, 0,203,133,115,155,143,158,191, 52,155,118,243,126, 34,249,158,112,238, 3,149,214, 79,214, 55,183, 38,179,141, 60, -233,147,116,146, 83,234, 36,119,201,212,221,188,169, 45, 78,151, 39,199,215,154, 42, 17, 11,243,185,139, 23, 47, 92,188,188,126, -110,179,239, 58, 16,104,139,193, 1,234, 80, 60, 36,246,165, 98,206, 36,162,110, 93,234, 62,253,226,231,167, 91,219, 23, 46, 63, -114,188,127,112,227,218,213,255,231,215,127,121,123,125,253,116,181,120,235,173,183,160, 13,159,248,212,103,182,103,253, 31,252, -238,239,189,227, 7,223,245, 31,254,149,255,172,155, 77, 26,146, 14, 39, 44, 9, 39, 93,215, 73, 43,197,128, 16,204,134,147,181, -245,173, 95,251,213,223,248,123,255,240,159, 54,231, 46,165,213,170, 72,151,193,124,181, 42,169, 75, 85,171,106, 99, 64, 70,122, -199,229,203,175,188,121,141, 0, 28, 44, 11,111,172, 77,205,218,149,243, 23,111,220,186,181,181,189,245,254, 39,159,250,241, 63, -251,153,103,159,253,232,198,246,249,211,229,178,169,158,158,156, 60,184,119,103,111,247,254,237,187,247,110,220,185,181,127,112, -124,188, 92,221,122,235,238,131,135,123,127,241,139, 47,254,133,159,248,242,230,230,218,209,225, 94,230,245,195,197,225, 27, 87, -223,156, 77, 38,119,238,237, 14,135, 39,231,214,231,157, 8,114,118,119, 98, 98, 65, 87, 7,115, 38, 4,150, 86, 74,100,106,137, -192, 26, 10,241, 96,141,129, 34,234,225,238, 72, 28,224,163, 40, 2, 53,109,128,156, 9, 85,181,180,138,196,147, 46, 7, 32, 32, - 84, 68,136, 40,157, 52,211,230, 70, 14,230, 77, 9, 18, 39,117, 48, 71,118,144, 16, 62, 32,161, 91,173, 3,177, 16, 51, 2,186, - 89,151, 83,171, 88,181,141,152, 25, 36,179,168,141, 40, 16, 15,181,246,210,145, 36,139, 9,162,161, 27,142,110, 85, 30,105,230, - 74,128, 18, 66,154, 56,243,184,129,163,121,150, 28, 56, 93, 70,100,196,218,204,201, 89, 82, 60, 79,155, 22, 83,175,171,146,166, -125, 0, 59,205,148, 19, 3,140,214, 58,107,149,115,206, 93,174,181,130,105,100,189,135,213,138, 89, 8, 64,221, 9, 0, 17, 73, -216, 76,205, 3, 88,233,238,161,230, 0,102,106, 85, 35,199,207,156,145,208,208,208,145,186,190,149, 26, 91,229, 32,218, 56,128, -153,194,219,245,245,216,174, 26, 32, 19,178,181,210, 2,157, 6, 68, 72,212,165, 60,156,174,154, 55, 8, 47,145, 96,173,134, 26, - 60, 63, 7,183, 62,167,218, 84, 56, 57, 90,213, 33,246, 14,105, 50, 37,240, 50, 20, 24, 7,176,128, 34,214,106, 60,245,180, 86, - 18, 38,193,214, 20,153, 18,147,162, 32, 48,160,141,232,140,179,185,176,154, 74, 55, 65, 34,107,197, 20,192,226,212,103, 41, 51, - 52, 0,176,170,154,133,153,129,144, 99,202,207,146,247, 15, 86,230, 46,140,156, 97, 48,215,218,186,190,119,133,230,170,214,136, -208,145,209, 81,181, 16, 64,238,115, 43,173,148,194,130, 72,232,200,129,149, 87, 83,108,196,146, 40,187,185,129,129,153,165,156, -213,131,165,140,225, 17, 7, 8, 40,144, 34, 83,169, 21,207,230, 32, 73,242, 74, 85, 75, 33,135,196,201,184,204,102,179,196,188, - 26, 18,185, 49, 11, 39, 81, 85,172, 13, 69,130,122, 31, 17,222,218, 74, 40,121,153,141,144,145, 18,254,214, 63,250,223, 81, 3, - 37,143,142, 72, 97,233, 36, 32, 16, 68, 84,173,196,130,196, 62,194,152, 76,213, 1,128,199,118,250,216,117,197,177,240,228,110, - 30,199, 40, 7,116, 71,183,134,163, 50,209,112,212, 33, 34, 88,177,177, 86, 30, 75,218, 51,167, 40,134,183, 80, 66,140, 0, 17, - 4, 8,138, 25, 56,162,129,195,157,187,187,143, 95,185,140,228, 72, 35,182, 31,198, 83,191, 3, 56, 50,187, 2,131, 7, 7, 33, -226, 94, 28,190,196,208, 13,135, 77,155,198, 20, 4, 17,131,185, 71,238,201, 57, 78,123,132,104,224, 50, 66, 78, 65,132,226, 70, -127,227,250,237,215,174,223,122,253,234,213,215,110,236,172,134,210,117,253,198,218,250,230,124, 50,157, 79,103,169, 67,132,220, -165,217,108,125,115,243,220,124, 99, 61,119, 29, 26, 32, 72,158,244,192,136, 33,218, 32, 81,109,106,208,180,173, 78,142,202, 48, - 8,229,205,139,231,182, 46, 93,186,116,241, 98,234, 58, 45, 53, 77, 38,222, 84, 85,223, 22, 66,155, 99,191,190,166,165,252,242, - 63,248, 63,167,235,219,151, 46, 93,248,111,255,230,127,243, 96,239, 97,173, 69,107,121,238, 67,207,188,227,209,119, 60,253,228, -147,239,251,224,199, 55,183, 55, 92,146,183,149,244, 19, 91, 13, 36, 93, 63,159,212, 58,232, 80,129, 56,165, 68, 90,255,248,119, -191,241,215,255,214,223,218,217, 63, 74,204, 71, 39, 71,203, 85, 57,183,185,121, 97,107,163,168,166,156,202,106,213,180, 17,139, -160,212, 90,110,188,181,147, 50, 45,150,101, 99,109,106,102, 63,255,239,255,220, 95,253, 79,255,203,255,233, 23,126,225,246,245, -239,127,233,197, 79, 95,184,116,217, 37, 32,124,245,112,111,239,240,240,225,209,225,209, 27,215,222,188,113,251,222,201,106,113, -178, 88, 93,187,125,103,150,250,191,246,151,255,252,103, 62,241,252,225,241, 97, 3, 95,213,114,237,213, 87,239,237,237,247,125, -191,251,214,206, 52,229,249,218,148,137, 8, 57,165,148, 88, 64,216, 93,107, 53,109,205,220, 0,136, 4,201,177, 13, 13,133,221, - 77, 18,187,122,164, 9,205, 28, 49, 34, 35,132,100, 90, 21,153,209, 44,119, 73,213, 90, 85,102, 96, 22, 98, 65, 36, 73,125,179, - 6, 54,158, 39, 28, 16, 5,234,170,177, 48, 51, 69, 82, 62, 5,108, 46, 78, 0, 6,200, 4,224, 72, 96,106, 6,200, 8,165, 21, - 10,218, 96,180,100, 71,220,134,155, 1, 48,103,166,166,205,220, 25, 36,229,206, 32,138,154, 73, 0, 86,101, 32,162,156, 39, 10, -141, 16,204,193,170, 49,147, 33,196, 57,212, 44, 74,211,232,224,230, 42,148, 56,145, 27, 48, 51,168, 22,109,163,212, 9,128,156, - 33, 33, 51,214,170, 76,140,230,128,209,139,134,166, 53,165,142, 56, 46, 57, 70,200, 66, 92,181,164,148, 84, 13, 97, 28,122,187, -197,129, 14,212, 42,115, 30,203, 64,200,136, 14,174, 36,217, 17, 25, 89,181, 34, 81,213,198, 64,196,236, 26,210,133, 56, 50, 33, -145,152, 85,119,167,196,164,212, 90, 5, 48,109, 78, 76,136, 40,146, 1,176,105, 49, 68, 10,142,184, 26,198,250, 97,116, 41,123, -109, 6, 4,125,215, 33, 51,152,155,150, 88, 43, 70,126,159, 49,155,215,106, 85,136, 3, 20, 21, 19, 39, 18,102,150,161, 12, 96, - 72, 76,136, 4,110,102,166,224,224,144,187,132,196,146,179,154, 81, 56, 78,227, 73, 16,128,179, 48,172, 3,149, 58,140,148, 45, - 0,199, 81,148,201,140,203,197,240,224,193,131, 43,151,182,103,235,179,166,238,148, 90,195, 54, 12, 77,149, 40, 26, 81,132,228, -173, 24, 49, 16,208,170, 12,113, 16, 80,211, 82,180,147,132,194,109, 85, 57, 49, 16, 73, 74,230, 22, 93, 13, 12,155, 28, 82, 45, -131,153,137, 72, 98, 49,194, 86,139,154,215,170, 1,110, 19, 18, 98, 82,117,176, 2,156, 90, 43, 76, 76,136, 0,212,172, 90,169, -218,154,121, 35, 76,224,158,102, 19, 68, 9, 46,152, 19, 15,171,149,151,210,101,246, 36,194,201, 12,142,142,143, 5,226,210,139, -238, 62,246, 32, 72, 40,104, 51, 14, 72,156, 67, 92, 26, 45, 56, 64,231, 24,158,140, 73,209, 8,207,135,227, 20,198, 12,175,171, -159, 81, 92, 98,220,130, 72, 96, 28, 75, 8, 31, 95,174, 52, 86, 63,224,236,151,130,255,154,150,247,140, 91,230,103, 76,122, 8, - 22, 41,225,172, 79,123, 39,203, 75,155,107,234, 68,140,102, 21,130,142, 29,215, 13,139,253, 84,132,123, 70, 72, 69,224,115,240, -172,124, 11, 35, 53, 14,192,195,166, 23,147,121, 25,239,119,174,227, 92,151,221,213,155,123,107,182, 92, 41, 34,156,191,116,241, -241,119, 60,254,133,207,125,250,116, 88,220,187,123,239,234,181, 91, 55,222,186,127,239,222,189,187,247,238,153, 67,215, 79, 55, -231,179,205,173,197,225,241,193,185,147,205,148, 38,136,140, 72, 57,167,110, 50,235, 39,211,148, 59,201, 89,152,145,121, 50,233, - 39,147,206, 1,218, 80, 86,171,229,245,239,125,239,205,239,189,220,165,126,227,252,185,141,237,237, 78,120,190,182, 62,217, 88, - 67,119,107, 14,224,175,253,191, 47,253,218, 47,255,147, 95,254,181, 95,249, 11,127,254,103,103,125,102, 65,119, 72,146,250,156, - 24,253,254,253,187,239,126,250,153,199, 30,127,108,255,224,225, 72,141, 82,227,110, 2,224,101,185, 52, 85,100, 33,145,148,228, -205,215, 94,249, 59,127,255,239, 31, 45,135, 89,151, 22,203,213,114, 53,116,185,203,185,171,181, 57,122, 83, 87,181,120,116,161, -224,241,201, 98,213,170, 2,159,219,220,120,228,194, 57, 97,126,228,210,133,110,123,246, 31,253,181,191,250, 43,255,219,255,178, -182,190,161, 78,229,224,240,224, 96,239,193,222,195,131,195,195,163,197,201,181, 27,119,238,237,239,181,170, 59,187, 15,143,142, - 15,191,252,194, 39,254,221,159,252,242,250,250,116,247,225,253,188, 54,191,246,242, 75,107,219,155, 23,223,249,248,155,119,238, - 30,237,238, 95,218,222,144, 94,220,162, 10,203,136,136, 66, 6,232,192, 22, 40,110,197, 68,216,212,205, 28, 37,152, 30, 52,246, -175,193, 28,199,149,125, 92,203,173, 58, 68, 75,159, 88,155, 3,250,116,218,199,210, 39,172,108,234, 45,101,118,247, 50, 52,140, -163,119,179,156, 5, 9,195, 59, 71,132,106,200,228, 76, 76, 76,224,168,214,162,162, 41,210, 51, 98, 45,171, 94,164,152, 67, 76, - 23, 61,146, 18,136, 72,146,208,155, 85,173, 8,200,146, 98,221,202, 68, 0, 1,186,178,148,251,248, 37,162, 97,244, 67, 40,129, -169, 18, 37, 53, 51, 51, 80,144, 94,226,105,149,164, 35, 64, 83, 67,162,214,154,170,137,176, 7,103,214, 77, 58, 50,115,109, 22, -220, 0, 36, 34, 2, 7, 55,107, 57,231, 51, 26, 16, 18, 49,130, 27, 40, 33,181,214,224,172,175,128, 8,192, 36,145, 86,198, 56, -183, 49,113,236,207,200,157,130,149,214,188, 49,139, 1,164, 80,184, 0, 32,135,234, 18,152,132, 24,181, 22,143, 31,111, 51, 27, - 75,235, 68,108, 72,152, 82, 87, 91, 9,224, 54, 19,187,153,199, 1,255,109,193,125,160,208, 18, 49,227,104,223,140,249,155,141, - 42, 54,201,161,100,242, 4, 20, 55, 6, 34, 66, 65, 65, 86,183, 86, 75, 76,219,209, 99, 83,129, 72,152, 69, 90,109,170, 74,128, -173, 41,186,183, 90, 85, 27,117,226, 26, 99, 94,119, 36, 85, 19,242, 46,245,170,205, 65,221,156,144,141,213,155,213, 65, 79,150, - 53, 75,146,212,155, 34, 16,187,130,171, 34,209, 36,137,154, 87, 53,134, 38, 44, 68,160,106,205, 90, 98, 30,170,170, 25,177,228, -204,181, 26, 65, 3, 33,117, 19, 96, 53,139, 52,151,187, 91, 45,200,137,132,130,238, 25,208, 8,112,137,225, 3, 19,130, 27, 35, - 59,154, 59, 50, 99, 3, 38,240, 46,247,173, 53, 0, 26,139,120, 29, 34,145, 14,232,136,210,119,128,196,132, 70,104, 13, 93,107, - 74,130, 76, 90,155, 15,197,217, 88, 36, 5,130,135,136,226,141, 58,206, 97,194,255,130, 4,166,129,164, 80, 3, 24,225,233, 49, - 93, 33,143, 85, 43,208,104, 45,141, 53,202,219, 61, 56, 64,115,115,112,142, 15,193, 60, 94, 0,177,186,137,174, 99, 72,209,213, -235,219, 61, 41,124,219, 75, 69,177, 7,141,247,205, 8, 42, 3, 2,100,154,207,231,119, 31,158, 92,220,218,208, 90, 73,198, 63, -199,209, 9,221,205, 1, 10, 1, 3,158,233,156, 70,240,231, 56,150,123, 59,129, 57, 70,191,208, 1, 89, 77, 3,135,141, 68,238, - 22, 29,244, 51, 3, 20,158, 93, 29, 16, 1,106, 25, 74, 51,192, 37,170,157, 59,119,225,145, 43,143,125,174,239,202,176, 60, 61, - 89,188,241,250, 27,111,222,185,247,198,155,215,175, 94,219,239,186,254,253, 79,231,205,237,201,209,193,126, 81,155, 72,234,102, -199,194,204,148,178, 72,215, 79,152,243,100,210,167,110, 42, 29,231, 44, 93, 39,179,201, 84,209,172,217,201,201,209,225,222,195, - 58, 44,221,177,235,251,233,124,109,251,220,165,217,108,242,218, 75,223,113,228, 23, 95,252,209,247,190,247,153,215, 95,253,254, -201, 98,245, 35, 31,250,224,131,135,247,111,221,191,247,218,141, 91, 63,250,252, 39, 94,254,206, 31,125,240,233, 31,218,122,228, - 49, 19, 70, 78,192,224, 90,221, 73,235,138, 40,113,198, 46,165,211,211,147,255,241,239,253,221, 27,111,221, 21,162,218, 60,247, - 19, 60, 62, 78, 57,137,160,162,215, 82,169,217,216,196, 3,108,170, 9,248, 61,239,124,226,226,214,230,250,250, 26, 16,150,213, - 10, 12,202,241,162, 52, 61,172,181, 93,191,122,241,252,197, 7,247,119, 30, 60,124,120,119,111,255,238,253,135,187, 7,135, 67, -109,139,197,170,149,242,228,163,151,126,230, 39,254,242,179,239,123,207,238,189,157,219,183, 30,174, 63,246,232,245,155,215,110, -237,220, 91, 27, 86,175,127,239,181,173,233,108,227,194, 6,145,100, 72, 21, 65,152, 57, 37, 4,112, 16,119, 37, 36,102,170,138, - 8,174,224,102, 77, 56,155, 55, 38,142, 37, 60, 50, 50, 73, 80, 28,123,145, 56, 75,164, 46, 17, 99,107,174, 45, 96, 15, 98,238, -146,115,120,236,204, 20, 9,107,105,204,148, 19,107, 43,205, 92,128,152, 72,221,204, 32,117,130,103,180,114, 55, 3, 26,205,157, - 66,132,152, 76, 27,142,188, 16, 68, 55, 34, 34, 34, 1, 84,142,122, 43, 17,130, 10,140,167, 19, 38, 34,114, 64, 38,142, 41, 1, - 49, 19,176,155, 26, 52,226, 12,140, 86, 11, 34,114,226, 82, 42, 40, 72, 39,230,170,181, 32,114,128, 7, 36,103, 48, 0, 0,117, - 23, 30,153,125, 72, 72, 32,173, 54, 64,140,189, 8,191,109, 27,117, 96, 78,110, 54, 50, 67, 16,163,106, 27,129,180,241, 16,213, - 20,136,136, 9,137, 77, 13,140,192, 13,192,145, 29, 99,126,196, 36,196,181, 44,199,157, 23,202, 8,140, 68,134,179,177,170,187, -186,183, 58, 40, 19, 35,177, 89,137,210, 53,170,155,121, 74,172, 6, 67, 89, 17, 51,185, 1, 35,186, 6,156, 42,254, 3,194, 88, - 20, 50, 11, 0,154,214,102, 65, 56, 32, 66,114, 4,100, 71, 38,107,110,213,144, 72, 56,215,225, 20,226, 21, 70,193,131,138, 83, -188, 3,185, 27, 34, 26, 1, 75,151,192,177, 12, 43, 17,110,238,225, 96, 28, 86,131,107, 67, 66,111,109,124,225,177,152,154, 91, -197, 52, 69, 97, 66,215, 85,165, 88,107,135,113, 17,125, 88,173,214, 38, 61,112, 82,195,214, 76, 85, 83,202, 68,104,102, 96,218, - 39,169,138, 10, 4,222,136,176, 26,186, 26,161,115,159,181, 85, 48, 99, 17, 36, 0,192, 24,130, 49, 32, 82,114, 85,111, 13, 56, -210, 60,142, 64,194,236,214, 98, 47, 11, 68,232,134,128,106, 13,200, 4, 18,133, 61,180, 66,112,161, 17, 49,246, 28,174, 81,163, - 21,228, 36,137,220,206,158,219,241,208, 66,138,105,134, 70,254,197, 93, 68, 0, 7, 25,171, 69,163,150, 41,200,145,163, 35, 42, - 82, 98, 8, 60,202, 60, 1,221,226,102, 38, 86,219, 40, 58,138,212, 83, 92, 30, 99,139, 13, 64,196, 58, 62,211,149, 70, 58, 54, -142,185,218,168,135,185,219, 72,230, 20,243, 10, 56, 78, 89, 96, 20, 37, 70,252,214,222,174, 5,198,159,232,230,253,116,218,238, -222, 63, 89, 14,179, 94,220, 13, 34,179,115,246, 30, 64,148,241,171,233,196,142, 16,234,153, 72, 42, 32,142, 23,195,120, 85, 32, -193,152,130, 38,160,248, 47, 84,164, 4, 1, 24,194, 0, 39, 16,140,151, 8, 15,168,207,217, 35, 0,154,153, 46,151, 67, 41,128, -222, 77,250,103, 63,254,209,231,152,172,233,238,253,123, 47,125,255,141,189,131,213,206,157,157, 63,125,229,123,203, 82, 38, 93, -119,126,107,123, 99,125,125, 99,125,115, 62,237, 19,103,206,196, 44, 73, 40,231, 46,231,174,239,167,169,159,244,253, 84, 82,154, -116, 61,174, 37, 71, 91,158, 46, 87,203,227,221,187,183,110,190,249,170,186, 79,187,201, 39, 62,254,195, 31,250,145, 79, 28,236, -239,253,238,215,127,243,167, 62,255,217,225,244,120,177, 56, 80,131,195,163,197, 75,175,191,254,161,103,158,249,214,119,190,253, -226, 99,239,244,178,114, 4,104, 8, 77, 49, 37, 51, 96,132, 76, 12,173,254, 15,127,251,111,254,206, 31,253,233,198,218, 70, 35, -211, 86,115,215,109,111,108,181,218, 8,200, 84,193,161,105,139,177, 44, 1,182, 90, 63,252,222,167,250,190, 83, 53, 51,155, 77, -103, 31,123,254,249,207,124,230,179, 77,109, 50,157,130,211, 43,175,190, 6, 79,182, 27,183,111, 95,187,181,115,231,193,131,213, - 48, 20,243,182, 24, 38, 57,255,248,103, 95,248,202, 23, 62,173,170,119,239,220, 74,235,235,215,191,255,242,195,239,125,127, 99, - 99,122,120,120,124,176,179,119,121, 99,115, 50,205,194,162,205, 21,130, 28, 50,126, 1,205,212,192, 28, 76, 56, 81,130, 85,171, -238,142,156, 16, 49,167, 14, 33, 58,132,241, 56, 69, 74, 57,139,171, 25,186, 75, 78, 35,146,158, 32,247,221,104, 24,163, 68,200, -241, 5,213, 82, 78,151, 67,206,194, 35,154, 70, 82,192,143,220, 83, 74, 62, 42,188,226,235,193,103,103, 43, 72,146,136,197, 74, - 68,205, 8, 37,155,233, 72,123,113,116, 4, 38, 2,228,177,177, 77, 33, 81, 26,241,134,169, 79,181, 52, 0, 15, 69,158,105, 35, -102, 2, 80, 43,194, 25, 88,172,213,161, 86, 2, 28,159,252,224,136,236,232,216,140, 18,213,178, 66,226,156, 82,220,141,221, 44, -158,251,241, 61,119,119, 55,100,145,104, 3, 17, 16, 75, 48, 97, 4,193,213, 12, 34,216, 35,210,180, 98,152,233, 41,150,194,224, -110,228, 20, 41,173,152,210,140,226, 87, 96, 80,111, 90,137, 50,184,134,129, 62,236, 36, 65, 7,118, 51, 66, 84,115,145, 17,194, -133,128, 68, 29, 34,168, 58, 75, 66,211,214, 20, 0,162, 95, 0,163,201,131,153, 32, 80,248, 6, 96,136,221, 36,153,186,171,130, - 27, 3, 26,161,187, 27, 24, 2, 83,226,128, 18, 59,162,105,149,212,163,164,148,194,158, 75, 96, 45,126,199, 36, 34,147,201,112, -114, 72, 44,128,160,173, 34, 80,234, 18, 18,101,183,178, 90,106, 27,136,197, 69, 76, 21, 49, 17,153,153, 86,213,142,147, 18,154, - 57,212,202, 34,158,114,171,133,200, 72,164, 1,158,158, 12, 76, 48,153,117,165, 53, 64,100,164,212,101, 83, 31, 81,107,224,222, - 84,107, 35,169,204, 29, 34,116,137,107,169,230,208,106, 37,128, 81,237, 11,160, 69,153, 9, 0, 76, 13,160,178, 8,117, 83,211, -218,154,163, 41,165,222, 90,117, 48,171,134, 4, 73,146,161,184, 14,102,114,198,103,140, 60, 36, 26,186, 48, 18,231,214, 66,179, -213,136, 48,117, 29, 1,105,112, 72,226,123,135,224,148,180,148,152, 67,165, 44,110,222, 90,105,165,184,187,140, 97,198, 49,142, -248,175,218, 73,129,138,119,120,155, 83,112, 54,163, 7,208,218, 16,129, 41,153, 85,243, 58, 22,220, 34,170, 96,128, 0,110,141, - 32, 74,171, 24, 61, 67, 3, 37, 20, 4,114,215, 8,179,140,201,106, 56,203,157,141,117,168,241, 1,122,134, 47, 59, 59,128, 0, -132,180,151, 0,207,109,174, 63, 60, 56, 90,127,244, 66,169,198, 36,128, 42, 68,218, 52,226, 51,145,135, 69,112, 36, 68, 54,107, -209,207, 54,116,114,114,194,241,234, 48,162, 17, 4,128,200,220, 9, 35,102, 27, 16,232,120,228,171,187,142,140,228,241,236, 31, -255, 38, 20,241,128,120, 93,185,171,170, 46, 22,139, 88,225,174,111,109,253,200, 15, 63,251, 91,223,248,227,223,251,163,111,189, -118,227,230,167,158,123,126,123,107,253,254,238,222,235, 87,223, 60, 58, 57,238,251,188,177,190,121,254,252,185, 11, 91,219,211, -105, 63,157,206, 24,129, 25, 9, 40,229,110, 54,157, 38,233,186,233, 44,165, 46,229,220, 79,182,231,235,235, 90, 74, 25,202,201, -233,241, 80,135, 86,245,245,111,127,235, 93,143, 93, 42,101,200,235,155,107,243,181,217,164, 59, 58, 89,188,114,237,198,149,139, -151, 76,245,232,224,112, 99,115, 99,121,184, 39,147, 57, 79,167,186, 28,242,100,138,222, 82, 74,127,247,191,255,219,255,248,215, -127,147, 57, 61,220,223, 27, 90, 69,132,182, 82, 97,110,173,196, 20, 34,170,192,113, 57, 51,183,196, 60,233,242,233, 98,129, 72, - 79,189,235, 7,127,248, 35, 31,221, 62,183,209,245, 51, 18,249,157,127,246, 27,111,188,246,202,213,107,111, 14,195,112,253,238, - 91, 15, 15, 78,139,181,229,170,144,234, 11, 31,124,207,159,251,210,231,207,111,111, 62,184,127,127,178,185,189,191, 58, 93, 60, -188,255,206,119,255,192,206, 31,125,231,251,223,125,109,123, 99,109,243,220,102,238,114,164, 44, 42,214,113, 81,147,200,154, 69, -199, 26,212, 73, 88,171, 41,120,230,228, 96, 34,226, 26,114, 92,200, 97, 66, 7,204, 57, 1,178,187,147, 41, 50, 35,146, 89, 35, -238, 56,200,130,238,204,145,192,179,156,186,161, 22,100,154, 79, 59,179,120, 36, 9,178,171,170, 57, 8,163,131, 51,137,189, 13, -209,139,128, 61, 64,238,123, 83, 4,109, 30,140, 64,119, 98, 38, 32, 0, 30,133,238,161, 37,116, 35, 97, 7, 32,162, 40,136, 34, - 65,128, 33,213, 92,152,192, 65, 56, 53, 80, 34, 86, 45,110,209,218, 35, 68,200,146, 3, 56, 5, 30,127, 10, 2,120,234,165, 21, -165,208, 73,171,143, 50, 2, 64, 48,123, 27, 44, 67, 8, 14,134, 30,146, 63,118, 3, 51,141,241,135,129,159,145,100, 80,181,153, -130,116, 56,158,240,131, 75,235,216,154, 33,115, 52, 91, 17,188, 25, 1,145, 89,163, 51,253,171, 42,196,110,211,154, 5, 1,198, - 65, 9,216, 84, 57,146,215,142,200,140,146, 64, 27, 33, 37,162,166,213,194, 75, 5, 96, 77,213,148,137,133,146, 6, 6,153,101, - 44, 17, 57, 88,173, 65,169, 66,201, 96,142,110,220,101,107, 10,224, 90, 27, 9,121,115, 4, 71,150,216,177,155,153,170,145, 90, -164,143, 42, 53, 34, 6,215, 60,157,107,173,174,141,137,157, 40,165, 84, 22, 75, 71,101,230, 48,235,157,229, 44, 44, 88, 20,140, -160,110, 99, 86,149,178, 5, 80,137, 25, 60, 91, 45,204,172,181,102, 97, 7,226,177,125,137, 94, 13,163, 66,135,224,109, 60,251, -198, 56, 0,137,173,233, 56,244, 33,140, 0,110,107, 21, 73,146, 72,109,213, 90,147, 62,129, 59,139,184, 91,171,154, 66, 45, 87, -203,216,245,100,112,211,102,205, 96, 28,214,199,215, 47, 32, 2,156,152, 99,101, 24,145, 93, 51, 34,102, 18,107, 96,228,241, 91, - 65, 96, 7,109,102,208,138,197, 44,197, 89,209,136, 29, 60, 1, 33, 34,242,191,253,181,159, 12,202, 3,112, 60,116,199,146, 66, - 60,112,221,194,199, 21,138, 38, 0, 87, 10, 90, 19,130,155,186,213,113, 55,233,103, 22,148,113,186, 98, 99,155, 96, 28,144,194, -216, 31,119, 3, 60, 83, 3, 4,154, 17, 99,154,159,130,124,233,160, 65,173, 4, 66,114, 15,108, 11,140, 41,158,200,194,251,124, - 62,219,221,125,176,182, 54,163,120,153, 32, 56,208, 56, 96, 57,219,242,198,145, 16,157, 16, 1,213,198,162, 35, 33,134,112, 19, -199, 85, 65, 24,122,199, 63, 35,238, 10, 20,175, 42,139, 42, 4, 24,160, 5,146,231,237, 59, 8,156,129, 19, 60, 36, 49,132, 62, -242, 23,180,153, 3, 18, 19,148, 87,223,120,227, 51, 47,252,232,127,254, 55,254,171, 23, 62,249,185, 63,251,226,143,126,225,203, - 95,254,212, 71, 63,241,200,246,214,106,177,188,117,251,238,203,175,190,122,245,250,245, 59, 59,247, 79, 78, 22,195, 80, 12,125, - 24,134,227,211,211,227,227,163,227,227,189,163,163,253,211,163,189,211,197,137,213, 1,220, 89, 48, 75,126,223,199,159,187,119, -251,214,111,255,234, 47,205,166,179,115,151, 46,182,213,106,103,119,247,244,116,209,106, 61, 93, 13,139, 97,121, 97,123,163,148, -242,222,119,191,211, 83,143,146,235,233, 41, 96, 75,179,201,172,159,252,234, 47,253,195,255,249, 23,255,143,190,235,114,234, 87, -101, 89,181,182, 86, 75, 45, 67, 41,196, 24, 54,203,197,106,209,106,115, 83, 97, 34,226,156,152,192, 54, 54,230, 47,126,234,133, -143,124,240, 3,243,245,245,214,170,145,124,243,247,127,175, 44,235,239,125,243, 27,183,238,188,117,188, 92,238, 29, 31, 13,181, - 45, 78, 86, 87,182, 55,126,254,103,190,242,111,124,241, 69, 93,157, 62,184,123,239,202,211, 79,237,157, 30,190,244,167,223,157, - 76, 38,191,243, 7,127,114,124,111,239,252,230,124,146, 66, 53,133, 89,114, 48,172, 19,243, 25,132, 20,171, 58,161,199, 32,158, -153,137, 8,193, 83, 74, 76, 76, 36, 99, 43,221, 29,156, 82, 78, 49,206,205, 93,242,209,134,225,153,196, 65, 91,177, 46,167,216, -159, 3, 33, 18,215, 86,137, 8, 25,181,153, 48,139,196,176,193, 51, 11, 50,185, 65,102,113,143,239,102, 20,203, 13,153, 88, 68, -139, 34,141,171,203,176,253,197,208, 63, 10,218, 24, 95, 83,138,167, 58,138,164,216,178, 1, 70,205,149,180, 68, 61, 53, 0, 30, -227,212,146, 3, 32, 99,234,238,146, 50, 34,169,106,146, 28,233,158,148,187, 56,244,113,150, 17, 74, 12,222,245,189,182,166,214, -130, 99,192, 34, 66,168,205, 20, 65, 88, 40,177,171, 35, 64, 55,157,184,121,188, 3,152, 8, 29,204,205,221, 83, 18,119,143,227, -164,187,143,186, 55, 14,221, 21, 68,103,133,162,145,136, 56,254, 34, 88,252,140, 15,197, 20,169, 83,178, 86,199,126,187, 53, 2, -140,236, 16,184,230,174,115,247,213,106,129, 8,146,187, 56, 57,185,134,109, 3,213, 44,162, 71,196,136,194,232, 97,171, 7, 36, - 20, 73,173, 52, 14,254,101,107,227, 8,118,108,244, 90,252, 81,163,118, 2, 17, 1,180,213,113,171, 64, 68, 28,232, 39, 10, 66, -125,202, 2,238,218, 70,110,149,170, 82,252, 44,129,154, 41, 49, 50, 73, 60,114, 66,112,239,102,110, 17,218, 33,215, 70, 12, 68, - 84,106, 57, 61, 62, 93,155, 79, 82,223,161,191, 77,160, 68, 36, 50, 13,138, 35,217,255,199,212,155, 61, 89,150, 93,231,125,107, -218,231,156,123,111,206, 53,245, 80, 61,119,163,187,209, 3,128, 6,209,104, 16, 36, 8, 82, 32,130,146, 41, 75, 14,218, 82, 40, -252, 96, 61,248,143,112, 56,194,255,134,159, 28,122,176, 21,114,132, 77,209,164, 77,147, 65,145, 4,105,138, 34, 1, 18,108, 0, - 13,160,231,161,170,107,204,204,202,225,102,230,189,247,156,189,247, 90,203, 15,235,220,130,186, 30, 43, 58, 43,171,242,158,125, -214,254,214,247,253,190,224,178, 37,102, 78, 53, 23, 51, 67,162, 36,172, 21,106,205,196,152, 36,245,171, 30,220, 89, 24, 9, 93, -161,148,162,165, 50, 17,113,114,112,171, 97, 47, 68,140, 43,193,154,204, 70,140,204, 73,221, 97,237,245, 76, 44,134, 8,160,109, - 59,225, 36, 86, 45, 32,116, 36,225, 48, 3, 4, 55, 51, 64, 71,119,162, 68, 0,234,134,104, 72, 99, 45,162, 16, 85, 51,252,222, -255,249,111, 1, 49,152,253, 1,162, 9, 14,117, 44, 64,109,156,162,105,173,225, 88,180,216,196, 74,218,193,198, 8, 3, 32, 49, - 89, 29,139,225, 71,160, 12, 50, 34, 1,152,122, 37,143, 94, 4, 48, 55, 26,141,145, 35, 99,220, 29,144, 18,184,131,107, 56,103, - 12,198,181, 21, 34,135,117,114, 13, 81, 64,119,107, 82,115,247,246,173,141,237,203, 91, 27,201, 20,194, 78, 59,158,255, 33,180, - 3,152, 41, 35,226,248,185, 13,225,137,227, 61,195,200,145,126, 69,230,177,138, 21,105,141,204, 10,132,224, 56,159, 43, 16,199, - 31, 29, 3, 60,254, 98, 59,235, 22,188, 52, 32,105, 16, 43, 99,128, 93,199,118,175,205,217,204,251,197,141,251,244,194, 43,175, -212,220,183, 91,155,186, 26, 56,165,217,238, 46, 52, 9,150,171, 91,183, 62,255,240,253,247, 62,248,232,163, 79, 62,253,240,246, -237,219,224,222, 54,205,165,157,221,189, 75, 59,179,217,180,109, 82,219,180,137, 8,208,146, 52,210, 52,147,182, 61,191, 56,191, -241,201,103,167,171,213,107,207, 63, 55,228,161,154,175,150,171,119, 63,249,228,222,193,241,209,124, 14,136,223,124,227,181,182, -105,191,241,214,183, 94,124,238,249, 73, 71, 27,123,215,218,173,237,201,100,243,253, 31,253,224,127,248,159,254,199,219,135, 71, - 40, 50, 63, 61,203,185, 18, 33, 49,108,207, 54,174,238,238, 73,195,203,126,149,139,158,206,207,230, 23,231,134,222,164, 22, 29, -159,120,236,234,175,189,241,149,111,190,249,181,237,189, 75,192, 92,242,234,236,232, 32,211,198, 66,235,151,223,248,230,127,252, -139, 63,255, 95,255,221,191, 65,116,230,212, 16,125,251,107, 95,250,231,223,253,213,141,173,233,221,155,183, 73,232,116,190, 88, -106,249,249,207,223,155, 77,167,159,221,184,181, 51,155,238,206, 54,153, 49,165,134,145,187,110,210,164,142, 19,150, 82, 28,188, -154, 51,162,170, 73,147, 8,160,105, 36,168, 7,102,206,137, 8, 24, 17, 70, 14,164, 1, 18, 16, 81, 45,202, 66, 34,226, 96,110, -104,106, 44, 88,114, 14,111, 28,137,160,163,129, 51,177, 19, 32, 48,163,143,174, 47,140,254, 32, 18,110, 29, 52, 60, 35, 90, 20, - 8,220, 20, 20, 88, 88, 71, 22,180, 19, 53, 99,126, 58,145, 27,160,171, 90, 69, 96, 68, 86,173,238, 74,110, 16,118, 78,150,241, - 17, 32, 54, 45,190,102,159, 68,221, 89,240,226,221, 67,174,244,245,199, 44, 60, 17, 8, 30,228, 22, 64, 20,183,234,224,137,147, - 89,209,234,156,216,215,151,137,174,155,212, 82,188, 86, 12,162,128, 21,183, 74,148,136, 89,132,107,169,205,214, 54,186, 14,103, - 23,193,228, 41,101, 96, 17, 87,143,129,154,133,109,253,249, 37, 4, 34, 30,134, 65, 56, 1, 83,160, 40,205,130, 47, 24,101, 63, -236,235,108, 48, 17, 97,144,126, 17, 84,139,155, 18, 11, 16,228, 97,144,212,144,133,126, 43,128, 12,164, 94,235, 8,159, 51,119, -192, 96,240, 86,211,182,155,184,186,150,138, 76,230,170, 90,132,133,136,163,140,162,148,236,166, 72, 9, 64, 49, 37, 52,167,166, - 1,175,174,166,170,241,228,197, 90, 46, 28, 44,194, 82, 93, 53, 40,205, 97,188, 49,139, 26, 96, 51,183,216,214, 34,197,199, 37, - 10, 99,181,228, 32, 10,152,187,170, 49, 50, 49,105,169, 36, 76,192,195,176, 52,245,139,229,194,221,174, 94,218,171, 78, 65, 76, - 33, 70,140,251, 25, 9, 18,235,176,138,210,225,178, 42,146,152,132,221,131,137,225, 14,100, 53,107,173, 0,198,146,192, 71,114, -117,238, 7,100,148,196,238,241,186, 18,243,242, 80,230, 96, 68, 68, 12, 69, 43,162, 89,238,230,166,238, 22, 6, 1,110, 90, 98, - 25,155,223,173,130, 26, 49,170,153, 8,197, 5,119,220,118,198,220,236, 70,148,156,192, 84,213,140, 25,173,232,106,185, 18, 64, -240,232, 4, 64, 26,231,228,117, 1,147, 59, 34,136, 91, 5, 86,115, 32,160,166,237, 74, 94,169, 22, 66,102, 18,243, 10, 16, 37, -234,102, 10, 4, 49, 58,192,154, 61,109,163, 99, 50, 46, 59,230,107,124,196,248,172,122,192,155, 28, 16, 52, 80,199,235,234, 26, - 28,235,162, 2,220, 49,222, 13,192, 61, 26, 6,108,119,123,231,248,226,226,210,206,149, 65, 53,228,150,113, 98,139,107, 60, 96, -224,237,226,107,174,153,177, 20, 78, 27,163,145,104,191,134,101, 5,119,202,192, 28,200,137, 19, 0, 24, 0,163,243,195,247,184, -195,104, 46,122,200,234, 1, 15,178,166,105, 70,198,117,189, 13,128, 27,154, 93, 44, 87, 58, 12,127,240,135,127,252,223, 63,246, -228,222,181, 61, 48, 42,106,216,201,249,233,169, 86, 21,198,199,159,120,242,137,231,191,240,143, 16,250,163,131,147,243,197,221, -123,183,110,220,188,253,217, 71,239,223,189,115,251,167, 63,127,183, 47, 58,219,152,238,110,110,237,237,108,238,110,237,182,140, -203,213,162,148,114,249,210,229,179,219,183,127,242,222, 7,207, 60,254,152, 17,167,166,217,219,222,154,159, 93,172,134,238,108, -177,250,248,198,237, 55, 95,127,233,207,254,226, 79,135,161,183, 58, 72,106, 39, 27,155, 27, 93,243,123,191,255,187,251,167,103, -147,201,180,154, 49,209,227,215,174,236,108,109, 94,218,217,217,154,117,128, 80,171, 86,173,102,182,234,247, 46,150,171,139,101, -127,177,236,175, 63,114,245, 55,127,245, 87,190,244,234,203,237,100, 54,172,150,249, 98,245,224,193,225,253,251,247, 30,123,230, -165,183,190,254,173,247,223,253,249,211, 79, 61,245,242, 75,175,254,228,221,159,255,218,151,190,252,221,183, 94,125,233, 11,207, -156,156,236,159, 28,174, 38, 91,155, 63,123,247,253,199,175, 63,118,122,112,126,235,246,225,181,221,205,199,119,247,218,134, 29, - 16, 81, 8,153,133, 13,220, 80, 5,132,147,160, 91, 29, 42, 48, 10,176,171, 73,219, 0, 34, 33,171,153,169, 17,184, 75, 48,204, - 24,192, 57,174,205, 12,200, 2,174, 0,100,238,200,200, 68, 40, 44,241,241,138,110, 53,112, 38, 66, 70,244,224,227, 57, 58,186, -106, 85,109, 82, 2, 68,181, 1,145,137, 4,221,152, 73, 53, 3, 16,114,160,131, 29,132,131, 29, 31,152, 92, 55, 69, 64,173, 38, - 77, 19, 89, 39, 97,174, 22,126, 43, 90, 55,140,115,192,243, 71,230, 33, 58,128, 51,177,105,193, 17,193,228, 90, 11, 34,115, 35, -102, 6,110, 44,141,187, 18, 11, 11, 23,205, 14, 21, 28,164,105, 3,104,204, 45, 6, 2,132, 0, 89, 34, 79,148,144, 37,182,138, - 72, 84,149,153,197, 93, 75, 85, 4,239, 79,142, 48, 46,153,132, 64,158, 82, 3, 0,158, 32, 86,196, 62, 14, 76,152, 82,210, 82, -106,173, 73,196, 1, 92, 43, 34, 19,187, 23,139,112,144, 3,148, 60,116,147,137,186,187,123,209,146,226,122, 75, 17, 29, 97,112, - 87,133,182,233, 76, 77,213,136, 83,188,165,116, 40, 36,140,163,241, 20, 3, 34, 29,134, 63, 55, 80,171, 36, 20,171, 2,228,134, -136, 28, 64,173,198,218, 54,110, 12, 14,196,142, 14,102,181,152,213,117, 28, 29,152, 57, 54,203, 4,164,238,213,106,173,133,136, - 92, 29, 34,193,134,228, 53,115, 34,100, 2, 68,175,185,150,156, 36,141, 7,101,172, 3,181,154, 25, 32,172,111,134,142,140,238, - 94, 44, 35, 51,184, 14,185,110,206,218, 96,187, 3,161,170,150,193, 83, 51, 58,154, 64, 1, 89, 24, 92, 75,149, 36, 8,144, 75, -145, 17, 22,133,170, 53,210, 21, 0, 68, 68,238, 24,141, 95,156, 72,213,180, 26, 11, 2,160,179, 65, 37,112,179,234,220, 16,178, -120, 85, 18,202, 67, 17,118, 70, 82, 71, 55, 80,173, 49, 55,128,187, 89, 89,167, 70, 41, 16,208,142,152,139, 65, 92,244,251,123, - 0, 0, 32, 0, 73, 68, 65, 84, 85, 16,144,212,154, 41,130, 3,178,170,142, 53,216, 44, 14,170,181,198, 41, 43,163, 80, 49, 54, -122, 96,208, 51, 16,137,193,117,116,143, 64, 44, 98, 20, 32,175, 6, 3,224,224,106,140,110, 6, 66,148,167, 94,122,246,232,254, -254,197,201, 41,196, 90, 6,217,189,128,213,248, 93, 0, 55,119, 33,212, 81, 94, 71, 8, 87,127,116, 66, 5,191,192, 28, 24, 71, -121,124, 92,118,233,200,234, 27, 15,254, 17,140,103,174,237,164,237,143,231,232,177, 45, 3,246, 16,243, 71, 33, 31,220, 57,234, -113, 41, 44,237,182,214,144,192, 29, 25,208, 70,192,177,197,197, 5,209, 84, 61,172, 67,230, 70, 76,100, 0, 64, 15, 21,195,181, -130, 19,103,189,141,104,181, 53,157,202,171, 59, 35,241,184, 64,246, 16,160,220,223,123,255,221, 15, 62,248,248,141,141, 87, 64, - 85,152,128,192, 74,129,106,142,188, 58, 59, 39,233,221,212,129,246,118,118,247,118,247, 94,127,245, 43,192,191, 93,170, 61,184, -127,255,206,135, 63,251,135,119,222,249,233,187, 31,124,252,233,141,201,228,206, 80,244,210,238,229,221,205,141,249,114,104,219, -110,255,232,206,116,214,238,109,108, 59,209,222,246,206,131,227,211,161,148,101, 94,221, 59, 56, 58, 57, 91, 92,218,217, 94,172, - 22, 47,126,225,229,227,163, 7,139,243,147,211,253,229,179,207, 62, 55,157,110,150, 92,150,253,106,119,123,231,185,103,158,220, -156,117, 94,243,233,217,249,173, 59,119,247,143, 78,246, 54,102,109, 55, 81,211,147,243,243,154,203,203, 47, 60,247,242, 23, 94, -218,187,186, 71, 32,231,167, 39,243,249,209,225,225,131,131,163,227,251,199,135,127,244,215,223,255,151, 67,189,122,237,250,209, -209,193,191,252,111,254,219,139,255,229,127,254,205, 55, 95,252,194, 11, 79,222,186,249,233,229,107, 87,101, 99,243, 79,254,195, -247,106,191, 80,240,183,127,242,222,222,214,198,172,155, 16, 0, 97, 34, 6, 96, 34, 1,150,134, 56, 26, 54, 80,107,149, 70, 90, - 67, 35,144,196, 41, 49, 16, 49, 38,247,202,204, 30, 81,205, 0,224,226,250, 66,235,166, 3,160,152, 35,152, 43, 11, 58,128, 43, -146, 25,139,152, 42, 33, 57, 33, 17,137,136,153,229, 82,201, 92,132, 75, 45,132, 40,156,108,252, 0, 56,161, 59, 84, 66, 10,103, - 5, 26, 35, 65,214,154, 72,128, 88,205,153, 48,181,169, 86,139, 38, 16, 23, 6, 68, 32, 79,148,220,130,132,238,174,154,218, 6, - 17,115, 45, 68, 6, 64,194, 2,204, 96, 26, 48, 39,225,196, 34,160,213,213, 48, 49, 35, 3, 49,228,146,218, 86, 77, 67,110, 41, - 81,204, 4,201, 37,248,169, 42,210,150, 97, 8,247, 61, 32,113,219,160,249,120,251, 0,142, 41, 39, 97,114, 51,171,138,204, 14, - 68,173,160, 65, 56,193,199, 34,107, 48,112,151,166,209, 82, 25, 81,154,206,181, 6,214,145, 16,221, 12, 71,132, 50,154,186,176, - 16,249, 80, 7,116,145,148,170, 90,112,229, 18, 39, 45,153,155, 54,170,249, 34, 13, 32,228, 80, 3,233, 21,223,175,187, 43,183, -201, 21,107,237, 83,219, 70,164, 68,154, 73,156,224,241,164,155, 59, 19, 99, 98, 0,179, 92,194,202, 15, 0,169,109,205,212, 29, - 74,173,106, 5,137,192,141,153, 85, 13, 32, 14, 40, 77,169, 1,130, 90, 98, 17, 33, 73,216,180, 26,154,235, 90,116,137,100,111, - 84,241, 50, 11,242, 80, 74,180, 5, 55, 77,155,115, 30,245,166,234, 36, 76, 78,106, 5, 3, 26, 42,220, 52,221,241,209, 73, 25, -122,217,232,214, 86, 35, 8, 51,103, 41,165,109,219, 64,218, 49, 49,184, 73,211,230,156,173, 90,155, 18, 32, 91, 20,234, 26, 0, - 99,234, 58,173,197,170, 73, 74, 76, 28, 41, 48,138,192,141,123, 53,147,113, 76, 5,138,227, 94,195, 87,128, 77,211,128,187,153, - 17, 1, 10, 43,132, 15, 42, 94, 21,129,221, 53, 34,230,182,201, 67, 14,219, 24, 51, 69,106, 86, 49, 58,204,200, 1, 24,209,136, -205, 28,129,148, 72,208, 7,173,252,175,255,197,239, 0,211,152, 22,197, 40,239,137,252,207, 72, 20, 48,112, 2,139,104, 49, 32, - 32,104,244,123, 69,163, 49,162, 1,225,116,107, 99,117,113, 81,134, 12,235, 54, 15, 0, 36, 74, 30, 39, 30, 18, 32, 71,149, 19, -141,253, 79,164,102,142, 30,209,159, 32, 34,132, 49,115,116,203,140, 49,211,135, 70,118, 71, 4, 70,138, 49, 90, 26, 94,204,207, -157,100,218,166, 88,164, 32, 71,205, 8, 34,193,120, 73, 12, 23,206,120, 48,115,136, 94,184, 6,144, 69,253, 50,132,137,127,116, -144, 5,136,201, 70,171,205,250, 18,243,139,133, 47, 2,128,193,184, 24,142,215,144, 1, 17,137, 32, 33,150,248,184, 3, 34,138, -180,101,181,252,189, 63,250,179,141,217,244,139, 47,190,156,102, 27,205,108,106,165,172,161, 56, 44,109, 75, 76, 62, 82,250, 44, -231,222, 74, 6,103, 93,173, 58,150,167, 95,122,245,173,239,124,231,159,126,247,183,158,188,122,233,133,167,159,190, 24,234,205, - 91,159,223,188,123,239,228,244,120, 85,202,208, 15,253,170,223,158, 78,221, 29, 72, 0,109,185, 88,170,249,114, 40,243,179,249, -107, 47,190,112,116,124,242,196,245, 39, 38,211,174,233,218, 82, 43,131, 62,245,196,227, 47,190,244,236, 87, 95,127,253,165,231, -158,106, 18, 31, 29, 29, 30, 62, 56, 62, 61, 59, 35,192, 47, 62,247,220, 83,215,175,129,219,124, 62,103,162,175,126,229,181,151, -158,123,113,115,119,135,128,143,246,239,220,189,115,235,214,157,123,183,246,247,239,236,239,127,242,249,221, 91,247,247,191,254, -213, 55, 31,125,252,241,239,125,239, 79,158,186,254,244,116,186, 49,191,255,241, 35,123, 27,171,161,220,188,125,247,251,255,240, -246,139, 79, 61,250,119,111,191,123,247,238,254,181,141,217,230,172, 19,100, 2, 70, 22,230,196, 66,179,110,218,182,173, 69,176, - 12,169,147,177, 45,152,137,153, 8,204,153, 24, 99,225,204,236, 16,185,209,148,162,132, 19,130,136, 36,230,227, 47, 33, 41,197, -220, 93,136,128,208, 17,144, 88, 1,136,198,107,187,131,119, 41,185,234,144, 7, 51, 72,146, 20, 52,165, 54, 4,127,117, 75,210, -134, 14,209, 36, 42,181,230, 90, 36,138,120,172,144, 8, 16,148, 90,226, 94, 63,106,211,110, 68,108,181,144, 52,137, 17, 0, 57, - 73,184, 38, 9, 49, 49,115, 26,255, 92,112, 48,171, 44,140,200,102,165,228,210,180, 83, 2,172,246,240,204, 53, 38, 97, 2, 53, -195,145,154,142, 14, 94,189,180, 77, 87,107, 86, 48,102, 1,196, 16,184,221,109,212,166,205, 1, 42, 50,147, 48, 49, 25,232,200, -104, 10, 65,149,200, 32, 56, 53,228,224, 6,128,106,156,146,176,184, 42, 16, 49,146,175, 87, 94,163, 64,132, 35,226,219,204, 24, -121, 4,175, 3,112, 18, 68,180, 81,119, 4, 55,101, 78, 68, 80,171,154,107,132,245,144, 27, 51, 11,153,165,150,130, 8, 41, 53, - 41,117,146, 18,177,172, 22, 23, 97,202, 48,173,210,180, 81,218,227,102,174,217,199, 2,136, 58,210, 52, 71,155,156, 69, 86, 9, -129, 0,101,141, 26, 4,198,228,136,170,217,209,171, 86, 26,229,221, 17, 68, 59,154,250,133,221, 0,193, 83,147,130,101,130,225, - 7, 49, 47,121, 32, 33,102,114,119, 73, 9,145,107, 41, 57, 23,119,107,186, 14,144,181,234,233,217,121, 39, 52,153,205, 0, 80, -154,198,212, 21,128, 16, 83, 74,102,166,213,208,163, 62,139, 99, 67,205,140, 85, 85,107,173,181,198,242, 88,146,184, 1, 2,113, - 98, 32, 28,135,205,248,201,169,154, 85, 22,138,221, 28, 18, 19,178,170, 66,236, 62,152, 3,223, 54,174, 15, 1,153, 41, 53,201, - 77, 9, 49, 10,168, 83, 34, 96, 41,125,209, 90, 25, 9,137,204,107,232,207,225, 37,115, 55,102,174,213,115,206,104,198, 18,199, - 23,149, 82,248,191,251, 23,191, 3,224, 28,105,145, 96,177, 1, 19,137,123,229,135,101, 77,177,175,199, 24, 10,204,215, 35,188, -187,134, 65,241,244,240, 65,201, 89, 34, 76, 28,213, 31, 78,227, 83, 17, 53,101,128,142,196,204,227,138,213,171,240, 90,133,143, -190, 65,138,159,127, 88,105,198, 31,224,216,143, 8, 54,250, 20, 31,222,183, 1, 4,225,108,209, 95,217,221,169,106,163,253, 43, - 8,108, 48,166, 83, 31,190, 26,214,225,218,113,147, 7, 4, 20, 29, 81,163,129,107,196,136, 83,112, 8,145,214,255,215, 72, 61, -255,207, 92,240,107, 95, 79,148, 50,192,136, 99, 30,205,185, 4,235,181,130,139, 72, 93,156,255,193,159,252,229,253,253,131,215, - 95,251,202, 19, 79, 61,237, 96, 22,128,198,112,164,153,186, 86,115, 3, 45, 72, 13, 11, 73,219,105, 84,163,205,102,139, 97,249, -217,207,127,254,217,167, 31,191,240,234, 27,175,126,237,173, 95,255,173,223,254,175,126,243,187,223,254,245,111, 63,251,200, 85, -103, 17,150,123, 7,247,139,215,205,217, 12,137,102,221,100, 53, 12,125, 95, 86,195,112, 60, 63,107, 89, 54,166,221,103, 55, 63, -237, 23,103,195,197,217,238,238,246,245, 39,174,111,110,110, 47, 23,139,155, 55,111,124,248,241, 71,247,247,247,135, 85,143,136, - 77, 74,179,233,228,246,225,254,223,189,243,238,135,159,221,188,186,119,233,245, 87,190,248,196,245,235, 41,137,214,122,239,246, -173, 27,183,110,222,188,117,247,206,225,131,123, 15, 14, 62,187,187, 63,191, 88,129,251,175,188,245,214,213,107, 79,124,255, 63, -253, 85,206,171, 87,191,242,198,189,195,147,147,253,123,105,107,230,102,247,238, 31,124,250,241,231,179,212, 92,221,222,110, 83, - 23,194, 2, 9,165, 70,218,182,221,232,102, 1,144,106,154,212, 38,137,102, 48, 98, 36,226,182,109, 25,133,133,185,145,168,149, - 8,248, 84,172,187,181, 42, 51, 55,209, 53,170, 21, 9,132,133,137, 12, 92, 18,197, 14,159,144,152, 4, 69, 90, 22, 38,138,162, - 75, 68,172,165, 6, 42, 81, 82, 66,162,166, 73,128, 81, 65,229, 76,132,232, 36,204, 72,170,138,177, 41, 5, 39, 20,150, 20,184, -193,200, 72,120,141, 1,130,146, 52,102, 70, 12,113,193, 67,230,184, 85,172,171, 10, 16,204,136, 4,192,137, 88,132,133, 57, 70, -230,201,100,106, 90,221, 97, 93,230, 14, 44, 4,128,185,150, 70,154,177,244, 44,168,208,128, 57,231,240, 92,147, 8,145,132, 43, - 49,214,161, 16, 31, 51, 7, 55, 51, 85, 55, 67, 98,112, 67, 87,100, 66, 22, 87,139,180,163, 19,130, 3, 49, 17,179,175, 39,167, - 68, 88,171,141,237,114, 50, 62, 21,196, 50,150,237, 18, 18,203,168,113, 17,141,117,215,200, 68,228,170, 68,205,136,254, 39, 16, -110,214,174,188,134, 37, 89,205, 16,166,238,166,113, 5,179, 98,102,110,150, 38, 77,252, 40,153,217,193, 89, 82,108,176, 97,109, -122,102,110, 12, 44, 42,125,106,169,200, 8,107,239, 54,104,101,102, 2, 66,162,106,149,137, 72, 18, 35, 73, 18,119, 71, 71,226, -168, 80,164,120, 32, 71, 88, 97,148,196, 1,160,224,168,241, 18, 17,179,176,152, 71,174, 62,220, 56,218, 78, 59, 34, 86, 53,215, - 90,134,220, 15,195,108, 54,225,148,220,141, 4,133,132, 89, 68,162,147,207, 89,136,132, 49, 0, 67, 0, 66, 92,205,173, 42,160, - 71,212,107, 4, 50, 3,144,112,148, 20, 33, 11,160,137,196, 59, 50, 20, 93,148,166,197,241,123,240,181, 93,195, 61, 42,109, 17, -128,176,105,146, 57,130,187,230, 16,171, 67,190,114,119,116,211, 36, 76, 76,170,102,181, 68, 69,109, 8,132, 44, 98,230,165,148, - 54,113,211, 74,108, 61, 29, 44, 9, 13,165, 8, 6,163, 25,108,124,169, 99, 12,235,128,196,160, 6, 8, 76, 2,192, 14, 15, 39, -111, 26,173,132,235,109, 99, 68, 4, 99,201, 73, 68,232,236,160,134, 99,137,135,233, 56, 60, 3,120,164,176,105, 77,181,199, 0, - 90,140,139,166, 88, 20,248,248, 66, 65,128,245, 86,127,124,103,196, 15,222, 60, 10,116,102, 27,155,251,135,183,251,154,133, 81, - 3,252,141,163, 84,191,198, 12,208,232,118, 7,196, 16, 15,215,189, 34, 96,190,166, 91,142,160, 40,136,124,214,232, 60, 26, 43, -104,215, 71, 60,172,109,249,136,107,105,117,157,132, 25, 75, 78,124,188,167,140,105,103,100, 26,242, 10, 17, 87, 67,255,127,252, -238,255,254,226,211, 79,209,214, 54, 0,212, 33, 55,179, 41,152,186,186,107,193,166, 3, 43, 78, 13, 24,214,190,119,173,221,246, -222,205, 79,222,255,252,195, 15,190,240,218, 87,158,126,241, 69,116, 60, 61, 62,182, 62, 83, 35, 59,179,173, 55,127,249, 55,126, -229, 55,126, 19, 17,255,175,127,247,191,253,219,223,255,253,173,141,173,157,205, 45, 98,222,219,218,186,183,127,240,200,165,157, - 55,191,243,173, 23,158,121,122,210,180,205,116,186,123,105,215,115,222, 63, 60,120,247,230,173,227,227, 7,234, 54,235,166, 59, - 59,219,128, 50, 44,207,151,125,127,112, 60,191,123,127,191,106,221,217,218,126,233,153,167, 95,126,225,197,203, 87, 47,245,125, -127,126,124,124,120,116,124,251,238,221,123,199, 71,243,139,213,209,233,233,217, 98, 85,213,182,187, 4,147,102,123,107,107,239, -242,229,183,190,250,181, 31,255,252, 71, 87, 62,127,228,249,151,223,184,243,249,199, 31,126,120,227,213,151,159,157,144,236,237, -236,204, 38,157,130,245,171, 85, 41, 58,237, 90,146,132,192,196,108,170,146, 18, 68, 87,167, 97,173, 53, 9,143,155,109,194, 64, -134,153,234, 72,175, 83, 23, 9,254, 4, 54,147,198,170,169, 26,194,216, 86,170, 69,137, 81,132,115,174,130,192,204,213, 10, 66, - 66,117,133,113, 71,110, 6,106,230,128,210,112,205, 40,140, 64,148, 36, 85, 85, 0,173, 96,140, 66, 72, 85, 11,115,211,182,147, - 82, 11,141, 97, 33,119, 71,179,232,175, 71,245, 98, 0,157,180, 86,205,216, 56,181,163,251,203, 11,179,152,213,232,138, 67, 67, -145,164,170,241,123,196,104, 85, 75, 45, 76, 34, 44,165, 84, 36,228,160,116, 9,187,123, 24, 31,133,197,204, 29,161,105, 83,213, - 98,102,132,136,196, 14,222, 54, 83, 5,245,106,225,144,171,170,137,153, 89,204,117, 93, 58, 8, 76, 80, 53, 74,143,185,214, 98, - 1,116, 84, 71, 22, 0, 35,145,144, 7, 80,216,181,186,131,134, 58, 73, 2, 60,162, 63,136,193, 67,183,197,136,156, 84, 22, 50, -163,192, 8, 6, 70,152,137,169,237,134,146, 17,136, 57, 17, 51, 32,155, 85, 66, 48,181,120,138,161,196, 10, 84, 13,204,171, 17, - 59, 37, 65, 96,228,240,150, 97,173, 89,109, 0,160,104, 67,197,113, 8, 53,116, 52,116,115,151, 70,220,204,214, 81,116,105,187, -104, 45,119,215,200,129,131,198, 83, 27, 78,188,216, 6, 39, 71, 55,205, 68, 72,192, 81,224,178,222,196,114,117,117, 0,173,181, -105, 4, 17,133, 69,173, 56, 96,211, 38, 34,210,170,174,202,194, 78,120,126,186, 74,132,179,217,180,239, 11,153,233, 80,129, 93, -205, 71,249,138,198, 47, 28, 49,125, 0, 46,185, 7, 87,162,113,126,134,112, 19, 6,222, 38, 10,179,194,192,231, 88,173, 34, 96, - 74, 77, 84,227,104,173, 34, 34,210, 84,172,161,143, 59, 82,180,117,135,244, 87, 77, 1,157, 24, 17, 36,212, 39,213, 74,148, 72, - 8, 70,235, 45, 69,105, 98, 72, 10, 34,160,230, 53, 23, 66, 76,146,140, 73,163, 48, 18,209, 69, 74, 41,170, 22,229, 24, 1,134, - 76,235,253,166,153, 23,178, 17,219, 11, 8, 96,133, 25,145,192,107,104, 30,177,213, 15, 82,123,144, 57, 35, 96,229,228,190,246, - 56, 58, 2, 34, 51, 26,185, 87,136,162, 26, 48,114, 5, 39, 13,108,204, 47,118,167, 30,228,130,241,237, 30,112,190, 17, 98, 9, - 99,187,196,104, 57,247,200,227,164,212, 52,173,156,158,247,151,183,167, 2, 99, 27,153,227,218,239,131, 0, 96, 40,145,190,131, -240,138,174, 51,169, 15,145, 8, 16,107, 85,164, 4, 96,241, 19, 2, 8,204,102, 3, 17,106, 29,101,122, 30, 59,139,226,151,195, -104,160,140,175,129,191, 40,175,124,152,140,202,195,162,207,101,103, 99,235,251,111,255,253,123,159,124,244,229,183,190, 89, 42, - 53,210,160, 87, 7, 3, 78,216,180,132, 6,188, 1,230,117,117, 65,210,154,241,219,127,245,103,117, 24,190,246,205, 95, 17, 73, -101,121, 65,169, 67, 53, 36,196, 90,250,229,162,217,220, 41,231,231,142,242,155,255,228,191,252,147,255,248,215,247,246, 15, 4, -169,107,186,231, 94,120,238,219,223,254,149,107,143, 60, 74, 8,121, 24,212,252,236,248,248,231, 63,253,241,225,254, 97,173,182, -183,189,117,105,119,103, 99, 99,179,152,158,156,158,156, 47, 78,115,191,186,127,116,188,127,124,122,101,119,251,217, 71, 30,191, -121,112,255,177, 71,175, 60,242,200,229,163,147,147,253, 59,119, 78,151,139,207,110,223,187,127,120,152,107, 57,154, 47,122, 85, - 66,220,217,152,136,240, 70, 55,121,252,250, 83,117,181,186, 40,250,246, 79,127, 74, 77,123,253,209,195,103,158,126,225, 15,254, -246,255,251,222,247,127,148,152,209,109, 99,218, 93,217,217,218,106, 91,132,170, 73,118,184,217,156, 78,185,109, 4, 73, 68,184, -149,146, 43, 34,153, 89,173, 53,110, 63,193,185,141,135, 83,205, 69, 82,120,183,137,201,181,142,159, 31,128,212, 80,233,189, 90, - 13,196, 41,160,165,134, 45, 91,223,231,168, 91,226, 16,102,208, 9,172, 47,165,225, 20,142,238,212,140, 98,111,173, 35,230,133, - 57, 5, 14,101,194,162,224, 21,148,132,208, 88,189, 70,147, 92, 34, 46, 57, 27, 0, 75,195,113, 50, 10, 43, 80, 39,104, 70,134, -149, 41,153, 23, 38, 49, 53,103,168,150,107, 44,105, 29,137,164, 12,153, 25,153, 83, 76, 0, 44,109, 41, 61, 16,136,176, 35, 10, -167,162, 67, 0,187,172, 26, 39,214, 90, 17, 80, 72,220,172,145, 6, 16, 86,195, 50, 81,130,128,224, 56, 17,170,106, 45,181, 0, -142, 0,250,170,165,102,107,187, 41,144,106,209,212, 54, 96, 0,234, 96,174,164, 12, 72,137,205, 42, 98,138,200,126, 44,129, 97, -244, 60, 56, 17, 22,211,177,155,211,220, 67,107, 2, 43,171, 33,132, 32,115,147,212, 2,146,106,169,165,162, 41, 50, 17,115, 55, -219,204,253,146,169, 85, 83,135,202,132,230,238, 9,192,200,172, 48,146,113, 48,138,141,132, 72, 82, 89,245, 0, 54,246, 72, 69, -114, 7, 89,132,242,144, 29, 92,213,164, 33, 6, 6, 83, 13,142, 46, 32, 33,230,220,143,167, 30,162, 36,177,234, 8,128, 99,250, -193, 57, 53,106, 21,192,220,106,100,233,205, 76,173, 74,106, 29,176,150,149,128, 51,146,130, 55, 77, 34, 4, 51,173,106, 77,106, - 88,176, 20, 11, 93,187, 2,152,218, 80, 74, 45,101, 99,214,154, 65,211,165, 50, 12, 57,175,144, 18, 39, 17, 33, 38, 30,138,145, - 16, 53,108, 10, 94, 43, 0, 66, 29,101, 20,205, 67, 74, 41,218, 80, 29, 42, 19, 7,235, 66,171, 34, 25,161, 32, 73, 4,223,250, - 85, 38, 66,100, 39, 0,115, 71, 97, 83, 5,168,132,194,141,128,197,248,111, 81, 33,195,210,228,190,215, 90,153,176,145, 68,212, -104,169,200, 24, 31,110, 48, 21, 38,117,119,245,229, 34,167,196, 28,101,232,165, 38, 35, 2, 52,192,162, 86, 75, 77,232, 73,146, -180,205, 76,107,209,162,160, 0,232,230, 69,181, 0,130,161, 71,210,223,213,144,216, 29, 92, 67,162, 9,127, 97,180,106, 27, 0, - 27, 56,184, 11, 35, 84, 11,223, 77,200, 44, 10, 42, 81,105, 98, 17,195,117, 7, 69, 55, 7, 35, 88,163, 16, 70,131, 74,176,175, - 33, 98,213,244,208, 98,233, 1, 70, 24,131,173,104,225, 34, 10,189,196,247,182, 55,206,151,231,182,211,185,133,219,199, 9, 5, -240, 23,150, 27, 87, 95, 59,103,128,208, 13,100,220,210, 91,133,177,100,210,136, 25, 80, 71,211,141, 43, 97,227,107,169,101, 77, - 56,160,241, 74,176,126,111,174,191, 97, 0, 89,127,107,241,174, 26,213, 38, 71, 18,173,168, 17,210, 51,253,163, 63,254,195, 47, -190,250, 58, 8,115, 74,142, 9,149,205, 12,189, 20,179,201,116,230,224, 66,219, 55, 62,122,111,255,254,189,235,207,191,240,196, - 83, 79,215,162,165, 95,185,129, 14, 25, 72, 40, 81,189,152,179, 32, 49,152, 82,233, 87,219, 59,151,126,231,159,254, 23,255,233, -239,127,248,230, 87,223,184,254,216,227,109,215,230,161,191, 56,155,207,207,230,251,119,247,143, 79,142, 8,113, 50,153, 92,127, -244, 49, 64, 27,114,206,197,110,124,126, 59,123,153, 54,147,249,252,226,228,124,126,122,122,118,105,107, 99, 99,210,126,124,251, -198,201,249,197,207,223,253,120,181,234,239,222,219, 31,114,190,125,120,120,112,124,154,115,237,179, 86,179,170,229,202,238,222, -238,172,123,229,197, 23, 95,121,225,249,159,188,253,125,106,102, 55,111,124,112,105,107,122,120,247,243,249,252,228,189, 15,222, -223,127,240,128, 29, 86, 67, 65,180, 69,174,183,142,206, 86,195, 80,114, 5,128, 54, 53, 41, 81, 43, 50,105, 91, 68,106, 19,109, -109,205,118,167,155,179, 73, 59,105,187,166,147,205,182,107, 82,211,181,210, 54,141, 8,139, 8, 57, 0,162,164, 89, 4,163,135, -146,133,152, 69, 76, 77, 26,106, 82, 91,135,106,102,170,149,141,137,169, 75,173,169, 18, 2,160, 27,120, 85, 11, 16,149, 51, 8, - 18, 33, 41, 56,141, 67,125, 33, 70, 6,209, 40, 58, 0, 85, 15, 34, 54, 33, 71, 10, 28,165,101, 85,173,230, 24,220,149, 32,243, - 73, 18, 22, 5,115, 71,119,101, 30, 45,131,238,192,169, 29,103, 5, 51,143,166, 62,115, 17, 98, 73,181,148, 53,203, 80, 83,211, - 50,113,213,194,130, 53, 15,210, 74,173,138, 65,136, 9,241,144, 9, 33, 26,227,208,204, 26, 78,238, 24,193, 22, 7,168, 53,243, -232, 88, 70, 52, 71,166, 20,211,171, 87,113, 6, 97,213, 12,174,224, 64, 34, 36,108,213,106, 9, 28, 13, 80,113, 7, 35, 73,234, -142, 86, 0,153, 72,192,189,145,209,255,102, 90,165,107, 77, 43, 0,178,164, 24,130, 9, 73, 75, 94,183,194,146, 51, 18,145,230, -218,251,185,170, 18, 37, 78, 9,133, 76,139, 52, 93, 85, 19, 80,173,108, 86, 37, 52, 88,136,147,174,144,144, 27,104,201,129, 90, - 0, 64, 7, 27, 86, 53, 30, 50, 18,212, 98, 72,142,136, 66, 9,192,204, 93,205, 24, 17, 16,152,211,184,154,116, 37, 98, 87, 19, - 22, 7, 41,185,231, 17,233, 28, 40,158, 74, 76, 76, 77,205, 3, 34, 54, 50, 81,203,177,215, 41,125,102,102, 7,107,186, 9,142, -107,210, 56, 40,136,193,156, 64,213, 17,112, 58,155,177, 72, 46, 37,151,234,234,142, 67, 2,103, 17, 16,105,153,209,173,214,177, - 85, 6, 28,168, 33, 51, 23, 7,132,198,180,162, 1, 73, 67,216, 1, 90, 52,127,177, 16, 2, 25, 56, 81, 2, 80, 51, 77,141,132, -158,150,173,146, 27, 99,147, 36,185,179,154, 98, 44, 37, 29,204, 99,147, 64, 53,103, 34,108,155, 38, 18, 12, 6, 70, 66,148, 4, - 12, 29,171,116,162, 69,189, 42, 50, 8,138,187,155, 43, 50,183, 56, 54,183,212, 92, 0, 52, 58,138, 77, 85,158,127,233,139, 49, -128,214, 90,115, 63,148, 92,106, 41,170,165,148, 92,251, 85,169,131, 87, 51, 0, 43,213, 64,209, 13,121,196, 82,155, 27, 97,194, -113,150,135, 90, 43,140,146,134,173, 93,227, 15,115,168,241, 87, 15,101,196,127, 65,240, 12, 49,159,201,109,148,155,198, 98,176, -181,168, 2,107, 18, 24, 34, 35, 4,218, 24,209, 13,192, 85,117, 58,157, 29,205, 23, 90,214,134,122, 28,215, 79, 65, 58,136,216, - 42, 33,129, 58, 80, 88,100,195, 92, 83,215,139,211, 49,180, 69,107,193, 63,136,106,176, 86,104,104, 4, 20,143, 71, 58, 50, 6, - 16, 58, 62, 31, 64, 15,143,246,177,136,112,252, 62,205, 67, 69, 13,119,125, 59,105,126,252,179,159,124,244,254,135, 47,190,246, -138,170,134,198,136, 68,166, 5,212,164,225,249,233,201, 79,254,230,111, 55,246,118,191,244,141, 95, 78,238,171,179,211,104, 72, -112, 85,119, 69,200,165,100, 17,105, 54,102,104,104,208,148,213,241,173,179,249, 19, 79, 61,253, 95, 95,191,174, 53, 95, 92, 28, -223,189,117,118,231,222,189,179,243, 83,102,222,217,220,122,226,250,163,181,148,210,231,213, 48,148, 82,220,225,236,236,220,172, -108,110,110, 30, 60, 56, 57,189, 56, 3,180,199,175, 93,117, 45,203,229,176, 88, 13,181,232,207, 62,249,236,211,187,247,192,245, -228,108,185, 26,250,234, 6,136, 67, 46, 69,117,119,115,250,252, 19,143,254,250, 91,223, 48,215, 63,252,139,191,184,115,255, 96, -107,218,117, 93,218,156, 77,143, 78, 47,206,238, 30, 77,218,201,238,246,206,238,214, 38,137,144, 27, 34, 95, 12,139,154,181, 77, -120,239,224,193,253,163,163,249,225,121, 45,198,204,204,152,171, 51,115,236, 81,188, 22, 18,153,117,147,157,205,141,182, 21,116, -108,147, 8, 11, 19,150,154,103, 93,218,152, 78,183, 55, 54, 68,210,172,107,187,166,153,164,102, 99, 99, 42, 73,186,212, 36,102, - 0,157,205,218, 36, 9,220, 9,176, 84, 37, 34, 5,155,177, 88,227, 53, 2, 65, 66, 90,149,147,196, 11, 33,168, 2, 85, 51,136, -112, 43,230, 30,233, 18,116,140, 18, 6, 83,215, 26,133, 54,192,136, 85, 29, 67,114, 36,140, 53,146,185, 17, 71,135, 42,131, 83, - 84,210,128,121,146, 86,107,213, 92, 35, 10,231,110,181, 14, 0, 20,254, 28, 73,162,213,134, 50, 8,203,136,210, 5,110, 90,169, -121,136,207,161,130, 53,212, 72, 74, 37, 15, 62, 82,180, 13, 64,145, 24, 29,212, 44, 49,219, 24, 32,119, 36,134, 17,231,181,214, - 34,221, 8,152,154,228,163,157, 6,184, 73, 16, 88, 47, 0,108, 88, 48, 57,130, 85,167,212,152, 6, 48,155, 76, 21, 12,144,145, - 83,170,181, 82,164,100, 34,135,133, 80, 45, 71,215,105,192,206,195,153, 67, 8,110,150,186, 41, 2,154, 22, 8, 72, 21,113,215, -205, 74, 94,152,214,168, 45,140, 76,144,155, 70, 39,137, 99,212,199,178, 59,152, 42, 10,135,247, 27,192,139, 2,163, 17, 38, 78, -141,105, 5,144,128, 77,114, 98,175,106, 86,163,157,139, 92, 66,251, 86, 85, 36,105, 83, 91,204, 92,115, 69, 68, 64,110,164,230, - 2,164, 35,194,193,170, 72, 51, 86, 86,116,100,230, 4, 0,106, 49, 74,131,141, 11, 19, 74, 92, 11, 46,135, 60,153,118,196, 98, -165,138, 72, 55,221,208, 90,180, 22, 34,138,178,173,209,191, 29, 71, 10,160,131, 49, 75,106,154, 90, 84, 61,139,180, 99,120,134, - 92, 13, 8,128, 36,153, 41,154,163, 33,196, 20, 12, 72,196,238,166,213,226, 92,114, 55,230,102,180,145,140,150,190,128,192,155, -123, 37, 4, 64,113, 48,208,104,126, 15, 58,122,136,251,168, 86, 36,177, 9, 91, 13,111,186,167,196,136, 46, 13,175,114, 65,128, -166,229, 92, 0,212,184,109, 72,146,148,190, 71,196, 48, 73,182,147, 73, 59,153,136, 8,186, 19, 55,234,213, 76,221, 76,115, 46, -165,104, 85,211, 90, 74, 63,244,189,230, 82, 85,193,172,106, 14,111,127,104,169,130, 52, 22, 56, 49, 97, 20, 41,185,174,151,147, - 99,248, 8, 8,176,174,167,222,120,105, 5, 78,224, 97, 95,107,124,144,199,227, 30, 44,124,174, 15,209,146,136, 8,100, 96, 41, - 53, 66, 56, 20,237,228,161,213,249, 63,171,133, 93, 83, 35, 1, 97,148,197,226,205, 97,190, 62,203, 97,205, 31, 91,131,142,185, - 13,214,252,152,243, 34, 10, 35,255, 24,173, 10,176, 2, 18,162, 3, 18, 38,198, 17,134,231,161,239, 7, 9,219,208, 1, 35,169, - 28, 11, 51,236,151, 23, 63,248,187,191,125,237, 43, 95,174, 96, 81, 95,141,224,169,109,155,201,244,198,123,239,220,185,183,255, -204, 43,175, 62,249,228,147,203,243, 51, 19,241, 90,195, 52, 93,115,145, 36, 0,134,102,204,105,113,252, 96,217, 15, 23,231, 23, -203,229, 69,173,195,176, 92,172, 46, 46,142, 78, 79, 30, 28, 28, 56,241,164,229, 39, 30,121, 12, 25,207,207, 47,110,124,246,249, - 80, 74,155,186, 73,219, 21, 47,171,161,175,185, 18,226,157,187,251,139, 97,213,164, 6,193, 46,150,139,156,243, 80,235,197,197, - 2, 9, 29,253,238,225,225,249,114, 5,170,210,180,136, 56,228,204,196,207, 62,118,237,219,191,244, 75,175,188,250,210, 79,223, -123,247, 47,190,255,195, 73,211, 60,249,216,181, 85,191, 90, 12,185,150,178, 24, 74,147,146,179,173,114,110,134,161, 3,106,155, - 36, 41, 61,190,189,253, 91,223,254,181,203,215,246, 78,230,243,227,227,147, 59,119,110,223,184,125,251,147, 79,111,222,222,223, - 63, 60, 57, 46,181, 32, 51, 17, 80,147,200, 33,215,210, 15,153, 9, 75,181,243,101, 31, 90,225,233,252,236, 98,121, 65,196,166, - 33,125,114, 4, 56, 5,145,164,233,186, 38,178,152, 91, 27,147,173,110, 54,219,156,109,180,237,183,222,120,237,240,228,116, 53, - 12, 91,211,105, 74,178, 57,105, 38,237,164,235, 82,155, 38,169, 17, 55,155, 78, 59, 84, 67, 4, 16, 70,100,105,147,153, 34,177, -154, 25,152,232, 88,122, 97,166,220, 72, 89, 21,115, 37, 6,240,128,162,147, 72,170, 70,224, 33,248,166,152,185, 41,184, 29, 14, - 35,178,152,215,225, 14, 32, 98,176,226, 76, 8, 72,209,155,220, 74, 11,104,106, 26,254, 50,205, 25, 29, 36,226,175, 41,129,213, - 90,162, 69, 36, 62,125,238, 30, 84,175, 96, 6,176,219,202, 45,198, 90, 95,251,236, 24, 76,181, 22, 98,193, 36,196,108, 81, 50, - 36, 12,234,128,100, 99,114, 10,129,162,167,201, 3,230, 26, 91, 59,100, 66, 38,247,234, 52,186,106,192, 45,165,182,170, 89, 45, -140, 98,236,235, 66,168, 74,146,192, 76,189, 48, 8, 19,154, 42, 33,214,192, 1,161,153, 85, 55, 48, 53,105, 88,107, 24, 5, 28, -169, 25, 99,234, 68, 96,110, 90,221,141, 72, 70,150, 36, 56, 56, 8, 51, 97, 32, 13,138,199,254, 24,169,154,215, 92, 17, 32,234, - 73, 35, 1, 91, 75, 25, 87,166,142, 70, 88,203,192,194, 66, 92,139,154, 58,142,250, 59, 68, 39, 53, 50,150, 33,147, 8, 73,242, - 90,215, 16,115,116, 87,100, 65,115, 39,247, 98, 86, 10,106,157,237,204,136,208,133,165,105, 4, 1,188,211, 82,113,108,161, 35, - 18, 2, 7,171, 21, 41, 90,168, 84,139, 58, 16,197,250, 20,220, 61,254, 53, 36,165,132,145,234, 36, 50,116,102, 96,230,192,166, - 68,201,248,195, 96,188,155, 81,114,141,109, 31, 32, 2,168, 43,250,152,119,171,181, 56, 20, 73, 18,160,133,152,122,205,193, 74, - 54, 55,102, 18,105, 74,205,106,228,101,144,148, 88,194,254,103,179, 46,229,234,165, 90,178,209, 48, 72,140, 98,174, 96, 0, 70, - 22,160, 32,183,154, 87,163,165, 36,162,161,238,224,214,116, 13, 1, 34, 75,212, 27, 50, 97, 28,253,165,170,213,226, 14,166,181, -207,189,230,161,230, 65,107,181, 90,220,172,154, 58,160,154,153, 42,129, 59, 26,154, 99,133, 49,164,236,192, 97, 52, 35, 10, 36, - 12, 90, 88, 38, 97,108,225, 70, 3, 70,176, 64,163, 25,140,180,248, 0, 1,163,153,111,204, 38,171,213,176,185,179, 89,204,226, - 37, 77, 35,170, 56, 16, 13,177,109, 29, 35,240,227,218,150,113,172,238,140, 86, 88,116, 64,142, 94, 41, 8, 94, 52, 19, 1,142, -246,208,181,220, 14, 64,163,159, 34,202,124,195,203,131,232, 14,107,224, 38,172,113,199, 0,232,203, 97,136,156,177, 0, 22,245, - 31,188,253,131,127,117,250,175,186,157, 77, 7, 35,110, 26,225,195,187,159,127,246,233, 71,147,141,205, 47,127,237,173,174,235, - 22,167, 39, 86,171, 13, 3, 0, 1,168, 3, 74,211, 89, 93, 20,133,249,217,124, 56,188, 55,172,250, 82,134,213, 98,113,118, 62, -191, 56, 61,157,207, 79,139,218,164,107,175, 92,190,140, 4,170,245,116, 62,159,159, 95, 32, 35,177, 96, 41,139,213,226,162, 95, -170,217,172, 73, 2, 56, 95, 46, 87,253,144,146,212, 50, 20,171,203,126,232, 75, 95, 7,173,166,125,214, 50,148, 86,100,144,116, - 81,181, 12,131,185, 38, 78,111,190,254,242, 63,250,198, 55,180,234,191,255,127,255,248,246,189,131,221,173, 13, 55, 59, 61,157, - 23, 13,131, 44, 18, 39, 10, 63,138, 21, 53, 85,203, 6,178,181,181,241,204, 19, 79, 60,251,202,203,195,106,117,117,178,121,229, -234,181, 47,126,241, 85,116, 88,173,250,197,114,113,116,112,112,227,246,173, 27,183,239,220,190,119,247,222,225,131,227,227,227, -197,106,121,120, 90,212,183,103,147, 86, 53,154, 33,237,234,222,222,238,214,118, 13,158,150,163,187,199, 3, 96,227,143, 3,181, -150,172,182,127,122,113,223,206, 1, 96, 40,195,123, 55,110, 62,249,232,181, 62,235,193,241, 17, 1, 21, 45, 79, 60,122,141,185, -121,252,209, 43,119,246, 15, 54,187, 9, 9,147,249,149, 75,123,187,155,155,171, 60,212, 90,246, 54, 55,173,234,149,189,157, 39, -159,121,250,238,189, 59,109,162, 68,169,235, 26, 95,228,174,105, 22,171, 94,132,164, 21, 55,151, 10,106, 14,204,140,206,220,196, -124,106,224, 34, 98,213,170, 22,146,212,181,157, 22,205,117, 72,146,226,129,228, 54, 60,214,182,174,196, 86,171,198,200, 0,110, - 90,152, 5,220,212, 61, 17,155,170,131, 16, 33,141,142, 3,141, 6, 98, 85,117,196,148, 82,201,217, 12,152,192,221,117, 24, 72, -146,164,228,128, 30,244, 62,137,233,216,153, 57, 80,195, 99, 80,145, 24,220,198,162,231,104,221, 28, 7, 82,160, 64,145,128, 3, - 10,131,122,196,109,137,107,201, 99,114, 11, 9,205,220,149,144, 29,220,180, 4, 98, 13,193,181,102, 4,182, 90,193, 85,173,178, -115,209,194,136,204,108,165,186, 25, 16, 42, 0,212, 66, 97, 75, 26, 71,166,136,161,208, 67,130, 43,115,227,154,145, 4,221,106, - 29, 88, 24, 3, 36,101, 22, 36, 18, 85,103, 38, 11,114,253,218, 52, 61,244, 67, 59,105,155,166, 45,181, 90, 29, 48, 76,248, 20, - 92, 9, 52,176,126, 88, 74, 98, 78, 9, 0,192,108,236,248, 54,141, 71, 83,107,198,232, 83, 74,124,124,118,214, 8, 3, 74,248, -205,227,125,207, 44, 96,182,206,145, 49, 16,187, 43,155, 59,130,105,245,209,240, 18, 48, 34, 55, 51,135, 32,214,248,136, 41,209, - 66,196,204, 73,107, 46, 85, 17,129, 80,204,148, 0,140,208, 29,129,200,212,106, 45,140, 41,145,152,214,154, 51,162,248, 26,132, -192, 34, 97, 86,196, 64,246, 2,153,106,213,129,152,192,149, 82, 42,185,119, 0, 17, 80,104,204,173, 12,125, 74, 18, 81, 43, 33, -160,182, 27, 44,175,134,218,138,145,131,132,192, 23,193,128,177,240, 59,150,157,232,230, 26,246, 18,119, 67, 27,170,141,101,181, - 52,182, 16, 90,224, 43,145,136, 88, 18, 54,221,198, 38, 5, 69,127,189,193,116, 55,118,175,102,181,214, 50, 12,185,228, 50,172, -180, 86,211,193,114, 45, 57,107,201, 10, 54,198,180, 1,192,156,156, 35, 21, 54, 38, 82, 21,199,177,127,125, 80,131,187,199,226, -215,124, 50,153, 28, 28,157,227,165, 45,171, 46, 65, 11, 28,181,115, 27, 15, 98, 68, 24,233,170, 33,237,216,232,197, 9,194,153, -173,149, 34, 20,240, 2, 80, 1, 24,220, 29, 12, 92,109,204,127, 68,138, 35, 60, 53,145,169,227, 17,182,233, 81, 49,192, 35,152, - 15,195, 70, 3,140, 82,150,197, 29, 86,171, 30, 85,133,233,163, 79, 63,253,228,147,143, 95,255,250, 55,200, 21, 9,223,255,233, -143, 15, 30, 60,248,202,155,111, 78,164, 1,180,254,124,142,141,128,154,235, 8, 58, 94, 44, 22, 67,238, 47,206, 78,135,146,107, -206,181,174,206,206,207,206,142,143, 79, 78,230,253,144,119,182, 54, 54, 54, 55, 16, 89, 77, 79,207,206,136,168,239,135,163,249, - 92,107, 37,132,170,134, 14,155, 27,179, 54,165,101,223,247, 67, 31, 35,149,153, 45, 86,139,146,107,174, 86, 53,247,185,150,161, - 42,128, 59,110, 76,166, 0, 70,140,102,245,108,217,239,110, 78,255,217,111,124,251,235, 95,254,210, 95,254,224,239,126,240,211, -119, 39, 73,182,167,141,106, 77,156,218,214,173, 55, 38, 94,213, 60, 63, 61,109, 83, 55,157, 77,166, 77,199,200,228,240,143,127, -245,155,175,188,246,218,135,239,191,255,231,127,250,231,223,250,198,215,185,105,157,218,176, 33,119, 93,211,108,109,237, 94,123, -244,133,215,190,164, 57,151,161, 88,233, 79, 78,142,246, 31, 28,125,114,243,198,167, 55,111,206,231,103,135, 39,199,165,106, 86, - 95, 13, 43,150, 70,213,194,182, 10, 0, 9,132, 29, 29,161, 2,160, 90, 67,105,146,204, 9, 29,148,144,114,209,171,151,246,174, -238,237,221, 62,124,112,105,103,235,124,209,159,247,203,243,139,197, 75,207, 62,178,127,114,250,224,248, 84,246,232,108,185,154, - 76, 59, 96,190,119,116,122,112,124,178,179, 53,219,111,231,199, 23,231, 47, 61,251,156,109,236,189,253,225,231,215,175, 93,185, - 88, 92, 44,251,188, 49,233,174, 92,185,122,251,238,157, 47,189,242,250, 79,127,248,246,119,191,243,143,101, 58,123,251,135,127, -251,232,149,171,139,197,249,233,233,241,230,198,108,182, 49,219,221,221, 61,190,125,111,210,166,134,155, 33, 95, 8, 49,129,182, -157, 44,115,105,186, 54, 53, 45, 58,154,105,215, 54,196,141,150,129,128,141,130, 75, 88,221,136,133,132, 91, 32, 46, 90, 9,219, -152, 13, 16, 1, 18,168, 35,170, 23, 29,218, 36,102,238, 86, 5, 81, 36,133,155,218, 16,192,212,140, 73, 18, 24,132,237, 7,209, - 72,196,171, 33,130,213, 10, 52,138,215,113,109, 37, 34,228, 78,203,224,106,241,104, 89,213,160,112,122, 85, 5,236,186,182,214, - 90,243, 64,192,163,149, 69,141,136, 84,107, 25, 6, 22, 9, 41, 57, 50,165, 90,134,181,113, 46,110, 9,134,132,165, 86, 66, 71, - 73,150,123, 11, 51, 62, 2, 32,153,214, 90,140,153, 82,219,105,173,170,133, 37,133,175, 84,107, 54,112,180,140, 44,210,164, 40, - 57,138,193, 43,166,254,224, 72,233,156,219, 26, 0, 0, 32, 0, 73, 68, 65, 84,133,233,152,152, 53,103, 32, 22, 17, 80, 11,215, -149, 34,169, 41, 33, 9,139,145,187, 86, 68, 76,169,197,113, 26,180,113,235, 7, 72, 17, 60, 52, 35,247,106, 74, 12,125,159,117, - 40,219,151, 55, 37, 73, 28,205, 64, 80,173, 2, 56, 38,178, 18,184,220, 42, 72,134, 28,187,220,162,133, 89, 26, 78,202,100,181, - 34, 11,161, 89, 53, 22, 10, 68, 0,115,131, 86,221, 1, 93,163, 58,216, 0, 9,141,153,204,153,161,230,108, 8, 22,145,218,120, - 81, 40, 56,113,170,185, 2, 21, 73, 45, 50,107, 41, 94, 12, 19,163, 48, 40, 14,195,146, 17, 36, 62, 9,192,195,144,187,148,152, - 83,113, 64, 44, 8,216, 54,109, 45, 57,181, 32, 44,125, 45,224, 74,140,109,203,236, 96,232,226,213, 65,226,216,212, 16,166,208, - 53,142,170, 48,144, 68, 49,182,141, 53, 29, 10,228,166, 10,117,237,128,113, 65,116,240, 98, 0, 64,181,198,225, 88, 66,238, 70, - 7,175,196, 72, 36,194, 34,211, 13,218,164, 20,133, 35, 20,149, 42,100, 86, 85,173,214, 33,247,117, 24, 74, 30,180,150, 90,122, -143,134,222, 18,192, 97, 13, 42,119, 20, 60,185, 58,198,112, 33,208,166,164, 94,212,108, 76,178,142, 70,228,112, 51,249,136, 18, - 24, 13,240, 52,118, 8, 96,152, 38,215,172,165,209, 15, 90, 28, 8,185,129,135,238, 71,100, 32, 71, 32,183, 53, 61,222, 0,216, - 31,238, 87,221, 28,201, 0,162,154, 61, 2,183,113, 71, 32, 97,186, 24, 6, 7, 44,166,137, 1, 28, 79,231,167,111,191,243,206, -215,190,245,107,251, 55, 63,122,239,103, 63,121,244,133,151,126,237,107,223, 40,139,179,160, 83,133, 15,167, 2, 13,253,217,176, - 90,158,206,231,125,127,166,181,230,210,247, 23,203,131,195,195,179,211, 19, 53, 19,226,217,180,219,221,222, 58, 95, 44,206, 46, - 46,134,156, 81,104,185,232, 1,177,148, 92,138, 10, 97, 85,101, 39, 39,152,159,159,153, 66, 95,135,212,200,106, 81,138, 14,136, -144,171,230, 82,251,126,229,238,132,220, 53,201,209, 64, 73,205, 23, 57,151, 82, 55,167,211,173,217,198,191,254,157,223, 22,145, -127,243,187,191,183,127,116,114,101,123,163,235, 58, 48,175, 0,125, 89,185, 66, 35, 92,171,158, 45, 87,125, 85,135, 85, 62, 43, - 85,203,206,214,214,211,207, 61,251,230, 91,223,152, 47, 46, 14, 31, 28,252,251,255,240,167,119, 63,255,232, 87,191,254, 38,138, - 76,102, 51,105, 38,210, 52,148, 90, 8, 12, 54, 49, 78, 0,133,119,155,102,107,119,247, 11,207, 63, 83,243,176,184, 88, 60, 56, - 58,186, 88,245, 7, 15,142, 62,187,125,251,104,126,122, 58, 95,158,157,157,247,154,221, 76, 1,138, 3,133, 24, 70, 96,104,163, - 71,203,161,168,182,109,218,221,218,120,231,163, 79, 78,206,231,215,175, 94,158,116,205,197, 82, 16,113,209,175, 46, 79, 55,210, - 53,155,159,175, 38, 73, 38, 41, 61, 56, 58, 25,106, 73, 68,179,182,237,186,118, 27,116, 54,153,246,203,197,222,230,198,238,206, -238,189,251, 7,243,179,211,188,177, 49,153,164, 95,122,227,141,157,237,157,179,229,208,204, 54, 72,228,124,185,252,202, 19,207, -124,246,249,173, 71, 54,175,252,232,157, 31, 62,255,220,243,203, 7,139,110,114,249,246,252,248,246,254,205,169,208,116, 50, 77, -132,119, 15,238,223,188,115,239,171,175,189,122,126,190,186,125,231, 86,206, 37,161, 23,173, 93,203,151,247,246, 74, 41,146,248, -137, 71, 30,235,251,126, 54,237,134,161, 76,154, 52,155,204,134,146,187, 36,192, 16, 81, 47,225, 8,204,114,211, 36,112, 3, 39, - 17, 17, 18, 73,104,209, 55,210, 38, 70, 79,146,204,171,153, 59, 37, 66, 5, 39, 7, 51, 36,110, 91,118, 51, 36, 80, 67,102, 78, -140, 62,154,193, 36, 37,117,117,115,226,240,173, 25,119,169, 33, 41,195, 10,137,154,212,198,131,230, 86,153,217,170,130, 89, 44, -188,221, 50, 74,243,208, 7, 1, 35, 84,145, 68,200,234,160,117, 64, 68,112,170,154,213,141,129,147,164,161,244,160, 78, 4,105, -210,128,106,173, 5, 64, 1,193, 44,131,114, 56,193, 67,135,119, 85, 0,112, 83, 64, 12,248, 68, 48, 69,220,157, 24, 64, 45,108, -207, 20, 12,100,166,156,115,211,180,210,180,154,135, 38, 37,119,182,170,142, 64, 36,128,145,119, 52, 7, 67, 48, 7, 25,137, 17, -174,137, 88, 17, 28, 7, 68, 5,240, 82,234,116,163,107,155, 4,232,169,105,114, 45, 86, 43, 34,170, 58,147,112, 44, 60, 66,197, -133,192,120, 1,147, 56,162,186,161,186, 52,173, 87,231,132,133,212,189,132,234,140,166, 65, 64, 7, 51, 74,226, 72,110,198, 76, -106,174, 86,132,160,105, 91, 0,176, 97, 53, 44,151,156, 82,106, 90,228, 52,228, 21,145, 19, 75, 81, 69, 45,194, 2,146,114,173, - 80,178,176, 76,103, 83,173,170, 86, 71, 95,164, 76, 12,160,239, 87, 73, 18, 98, 42,121,193, 84, 83,219, 58, 72, 41, 78,212,149, - 90,130,100,192, 68, 66, 36,200, 15,149,104, 7, 20, 48,245,135,206,145,135,181,123,107,178,155,155,129,198,114, 39, 78, 65, 6, - 87, 64, 6, 96, 7, 5, 29,157,145,224,230, 78,227,230,209, 52,122,146, 12,160,232,216, 66, 6, 24,245,128,107,166, 41, 96,215, -117, 56,153, 18,163, 5,178,193,157, 88,162,160,178,106,177, 92, 29,205, 21,204,180,150,236, 86, 75,201, 94, 85, 8, 55,218,249, -241,121,217,219,238,106,169,228, 21,104, 52, 81,141, 32, 95,164, 72, 28, 88, 40, 52, 68, 96,250,208,235,136, 40, 49, 27, 4,177, -198,227,242, 56, 90,240, 1, 45, 10,159,214,252,122,242, 81,246, 9, 54, 1, 18, 0,143,221,130,161,195, 57, 2, 18, 40, 16,194, -209,233, 28,136,162, 16,109, 40,213,193,255,225,199, 63,252,251,191,250, 51,173,250,210,215,126,249,234,163,143,246,231,103, 44, -130,166,117,232,235, 48, 28, 31, 31,156,205,207, 75,205, 94, 75, 95,250,211,163,163,253,253,251,167,243, 51, 50, 69,132, 89, 55, -157, 78, 59,119, 80,176,229, 98,177, 92,173, 28,124,181, 26,250, 82,170,106,132, 58,152, 40,145, 52,137, 27, 73,185,234,233,249, - 42,151, 90,107,248,103, 74,159, 7, 65, 86,179,170,138,128,128,164,235,218, 29, 71, 0,194, 54,165, 36, 2, 0,139,101,249,155, - 31,189,115,235,206, 61,105,248,169, 71,174, 58, 88, 46, 85,107,117,128,134, 19, 11,157, 94, 44, 78, 47,206,231,231, 23, 96, 70, - 52,233,218, 68,140,231,231, 23,203,126,117,124,114,231,120,255,248,163, 27,159,170,219,247,126,240, 67,215,161,107,218,182,155, -110, 78,186,217,230,230,108,182,217,116,109,211, 77,164,153, 36, 34, 71,168, 69, 83, 18, 74, 73,102,219,151,247,174, 94,185,254, -108,208,123, 23,139,211,211,227, 7,103,243,249,249,114,113,124,122,126, 50, 63,189,187,127,176,127,120,112, 50, 63,159,159, 47, - 86,195, 16,102, 6, 34, 20, 66, 5,216,217,154,245,125,255,242,147, 79,252,228,147,194,196,231, 23,203, 73,215, 2,194, 59, 31, -124,212,117,237, 99,215, 46,221, 63, 62,126,225,250, 35,243,179, 51, 34,158, 78,187, 71,118, 47,165,212, 32,210,225,131,249,108, -186,127,229,145,171,169, 73, 31,125,250,105,159,135, 87, 95,124,201,192,102,147,233, 59,239,188,179,234, 87, 87, 47, 93,249,155, -191,254, 75, 98,254,226, 23,190,120,112,248,224,193,225,237,239,126,231,159,252,232,167,255,112,229,210,229,131,195,125, 16,154, -159,156,234,226,124,235,209,171, 64,124,240,224,240,244,252,236,210,246,246,209,241,131,195,163,211, 7,231,231,102,250,224,248, -184, 31,250,229,170,223,221,222,204,213,186,196, 79, 61,118,124, 60, 63, 39,180,161,212,105,219, 46,250,229,233,217, 34,137,172, -134, 92, 75, 77, 77,218,154,108, 72, 43, 58,244, 33,199,115, 20, 68,129, 73,168,233, 8,200,220, 16,110,109,206,158,189,118,245, -213,231,158,220,218,220, 89,174,150,253,144,103,211, 9, 49, 19, 19,152,165,182, 51,240,166,105,165, 17, 87, 71, 70,105, 91,243, - 18, 45,128,113, 21,230,148,180,170,185,166,110, 50, 10, 20,166,110,192, 41,130, 78, 70,208,154,107, 60, 6, 90,138, 36,126, 24, -207,113, 0,114,183, 90,130,152,170, 54,250,226,184,157,120,201, 37,103, 2, 6,114, 2, 46,185, 18,134,126,144, 70,137, 72,107, -208,204,214, 6,186,245,226,205, 33, 12, 75, 99,159, 56,146,149, 28,185,197, 40,218, 69,196, 90,115,128,119,208,176, 97, 86, 83, - 51, 85,197,166,235,162, 64, 17, 64,199, 0, 58, 10,140,252, 9, 20,150, 50, 12,106,185,107, 18, 81,215,231,162,117,216,218,222, - 72,221,164,148,218,151, 30,145,221,113,196, 31, 86,149,166, 35,193,218,231,234, 61, 73,135,140,128,104,177, 50,101, 64, 76, 33, -212,104, 52,114,137,128, 27, 40,170, 6, 97,155,137, 90,119, 99, 2, 3, 82, 53,112, 79,169, 33,130, 90,116,252,139,128,187,123, -233, 51, 9, 53,205,196, 74,113,247,134,152, 82, 91, 75, 41,117, 96, 32, 73, 98,192,170, 22,251,156, 72,194, 34, 20, 68, 22, 97, -119, 71, 52,105, 90, 85,131, 92,145,157,133,107,173, 86, 20, 29, 19, 19, 33, 22, 53, 65,166,208,155, 28, 0,172, 64,100,223,194, -230, 24, 51,240, 72, 88, 4,119,133, 95,132,145,194,102, 98, 16, 39, 56,140, 22,195,241,181, 64, 12, 81,186, 24,160,188,192, 25, -152,173, 49,193, 26, 77, 14,107,244,163, 35, 83,173, 53,102, 14, 0, 50, 83, 48, 55,202,128,136,152,132,176, 50,184,147,116,226, -128, 72,179,177,140,201,141,185,109, 38,147,159,126,112,235,213,175,126,109,113,177, 48,112,203,189, 85, 85,203,154,135,210,247, -181,100, 0, 19, 50, 64, 51, 48, 25, 17, 9, 50,178,229,162,214, 32,232, 73, 97,109, 5,113,138, 98,170,245, 43, 15,126,241, 95, -252, 59,216,200,133,125,184, 50, 30, 29,247, 35,121,214,141,192, 79, 78,206,120,180,218, 35, 56, 60,255,212, 19,167, 15,238, 93, - 44,250, 95,254,245,239,128, 64, 93,245,228,214, 95,156, 31,239,223, 93, 44, 22,181,150, 0,233,205,231,199,251,119,239,223,190, -119,167,150,178,187, 57,187,180,189,113,126,177, 2,176,243,161, 63, 93, 92,212,172,171, 92,136,189,148,186, 28,134,139,190,103, -119, 97,158,181,237,246,198, 38,130, 45,242, 80,139,173,114, 1,192, 82,173,148, 50,228,108,102, 68, 44, 68,236,148,189, 14,165, -196, 85, 76,152, 8,193, 98,195,109, 30, 65, 26, 36,102,174,119,238,239, 95,222,221,102,225, 92,242, 48,244, 41,181, 10, 62,107, - 59,102, 62,156,159,206, 23, 11,114, 80,167,101, 30,178, 90, 63, 12,211,233, 36,165,230,232,108,254,246, 15,126,112,255, 96,255, -243,123,247,107,213,227,249,217,143, 63,252,120,115, 58,107,154,102,218, 72, 74, 77,155,154,174,105, 82,215,206,186,105, 59,233, -132,165, 77, 77,215,181,123,151,174, 76,183,119,152,144, 37,169,153,161, 78,118,118,155,205,221, 43,154,173,170,230, 98,150,135, -220,231,161,228, 90, 47,206,206, 30, 28, 61,120,255,131, 15, 63,188,241,217,253,227,147,249,233,217,157,163,211,221,205,238,210, -108,242,209,237,219,194,252,224,120,206, 66,132,124, 50,191,112,119, 54, 59,155, 47, 30,187,124, 25, 0, 87, 67,157, 77,105,185, -202,183,203,193,164,149,203,123, 87, 88,154,157,141,237, 27, 55,110,189,247,209,135, 72,244,230,235, 95,122,230,233, 39,127,246, -254,251,183,238,220, 33, 76,143, 62,114,117,107,107,123,218,117, 15,142,239, 63,114,237,218, 71,159,125,122,253,177,235,255,207, - 31,253,223,199, 71,199,111,255,248,199, 79, 94,127,236,230,231,183, 62,188,241,233,230,172,187,187,191, 63,100, 61,124,112,240, -204,147, 79, 31,159,156,214, 82, 14,143,142, 0,173,147,110,181, 88, 25,104, 67, 84,114,206,185,212,204, 31,124,250,153,153, 78, -186,201,252,226,172, 20,173,102,203,190,111,165,233,186,110,107, 58, 45,181, 63,187, 56,134,149,212,146,133,165, 58, 8, 64,106, -210, 48, 12, 85,161,152,149, 60,184, 99,174,165,109,154, 31,116,205,183,238, 61,247,221, 47,127,105,190, 92,204, 54, 54,171,121, -223, 47,206, 22, 11, 98,153,180,141,154,129,195,108,182,177,204,195,180,155,110,108, 76,151,171,213,162,239, 83, 74,109, 74, 53, -247,221,198,166, 48,159,207,143,118,246, 46, 15,181,182, 93,103,225, 15,145, 68,204, 73,152, 68,192,144, 4,145, 69, 80, 37, 53, - 0,206,206,132, 92, 74, 0, 59, 71,147, 18, 90, 5, 34,168, 0, 85,221, 1, 85,145,216,204, 44,176, 53,113,140, 36,118, 83, 48, -111,155,198, 0, 70,218,224, 72, 95, 96, 7, 2,140,122, 16,113, 48, 83, 29,245,237, 72,188, 85,101,137, 54,136, 20, 15,150,214, - 66,204,170, 70, 28, 9,217, 58,184, 11, 65,173,182, 46,229, 49,116, 16, 22,112,200,185, 34, 51, 83, 91,212, 5,188,212,218, 54, - 50,157,181, 81,141, 52, 26,170, 17, 0,176,149,100, 6,154, 51, 16,161, 16, 25,130, 87, 8,202,115, 84,129,153, 99, 82,143,118, - 44, 83, 38,113,163,172, 43, 92,211, 19,209, 65,181, 39, 17, 36, 70, 52, 64,115, 64,213,161, 86, 4, 64,105,146, 15,102,101,160, -196,200,168,102, 88,122,230,166,170,170,233,176, 28, 82,211, 72,106,188,230,154,141, 18, 72,211,169,107,201,185,230, 2,104, 66, -226,174,196, 52,198,175,156,204, 93, 29,200,209,139, 1, 82,234, 90, 53,143,157, 40, 50,202, 72, 63,136,130,150,136,178,121,112, - 41,200,205,224, 33,249,125,148, 71, 0,188, 6, 80, 96,173,148,217,216,176, 61, 46, 92,141, 56,208,125, 20,229, 50, 30, 12,224, -209,231,187,206,114, 59,186,186,167,117, 64,200,204,181,184, 81,192,139,163, 96,211, 52,194,202,189, 33,168,134,234,163, 36, 2, -186,134, 62, 58,152,214,233,230, 86, 62, 63, 92,156, 47, 82,195,230, 64,105, 19,132,113,108,216, 65,116,179,234, 53,247,181,244, -166, 89,139,106, 94, 2, 40,160,133, 99, 38, 72,162, 99,154,202,196,113,205, 42, 91, 55,241,132, 85,211,205,199, 18,171,168,131, - 51,115, 30, 91, 94, 99,250, 32, 32, 95,251,249, 9,113,208,138, 4, 85,157,219,230,169,203,151,207, 22,171, 79,238,220,126,231, -231,239,125,243, 55,190,187, 58, 62, 92,244,195,241,209,225, 48, 44,137, 5,220,206, 78,143,207,206, 78, 15,238,223, 63, 58,126, -144,136,175,238,237,116, 77,179, 28,134,251, 15, 14,207, 46,250,221,141,233,241,217,185, 35,182,152, 42, 20,234,177,175, 67,191, - 90, 78, 36,237,110,110,110,206,102,203,213,242,100,121, 94,171, 37, 22,215,186, 40,185,214,156, 75, 53,211,209, 99,140,100, 54, -148, 90,150,181, 38,145, 41, 19, 18,230, 92, 99, 29,109, 10,110, 54,105,154,148, 68, 16,183,102, 19,117, 85,179,154,181, 22,109, - 38,173,229,255,159,169, 55,137,213,237,202,242,188, 86,179,247, 62,231,124,221,237, 94, 99,251,249,217, 14,135, 35, 28,153, 17, -145, 81,217, 85,166,146, 84,137, 74,101, 22,133, 10, 21,205, 0, 81, 2,169, 70, 48, 5,166, 8, 49, 65, 2, 49, 99,134, 24, 33, - 33, 49,161,144,144, 16, 32, 64, 84, 86, 67,210,100, 86,146, 77,100, 56,108,135,237,112,243,186,251,222,237,191,238,156,179,247, - 94,107, 49, 88,231,123,193,200,122,178,116,223,125, 95,179,207, 94,107,253,215,239, 87,199, 49,155,194,205,118, 83, 74,110, 56, - 10,113, 74, 33, 75, 32, 83, 81,205,185,152,216,151,207, 94,252,233,143,127,186,222,111,247,125,189, 91,175,175,111,239,170, 72, - 19, 67,151,154,182, 75, 77,140, 41,134,196, 28, 98,219,117, 49, 16,119,169,157,207,219, 16,194,114, 62, 91, 45,143,186,182,107, -218,182,155,205,219,166,233,230,203,110,121,138, 12,200, 20,219, 96, 21, 83, 55, 43,227, 40, 82, 79,142,143,223,127,255,253,223, -254,173,223,178, 90,214,155,205,245,213,245,207,159,124,243,228,233,211,199,111, 60,248,159,255,233,255,217,153,174,183,251, 33, - 23, 68, 33, 14, 15, 78,142, 98, 72,132,118,188,152,221,237,134,152,210,213,205,221,124,214, 65,156, 29, 47,143,238, 54, 27, 12, -248,226,213,139,219, 77, 47,106, 15,142, 86,179,166,249,103, 63,254,139,113, 20, 17,184, 27,238, 30,234,217,106,222,189,251,222, -123,119,155,219,255,252,191,252, 47,126,248,253,239, 55, 33, 92,188, 58,255,224,157,119,126,254,244,201,243, 23,207,206,175, 47, -126,231, 71, 63,170, 21,126,252,217,199,215,119,235,191,254,203, 63, 56,154,119, 31,125,254,105,184,134,126,236, 31,221,191,255, -249,211,167, 71,171,197,237,102, 35,160, 49,240,110, 40, 38,163, 65,147,115, 30,171,250,224,169,230, 42,165, 12, 38, 90, 11,129, -152,106, 96,231, 12, 43, 25, 50,152, 77, 40,116,191, 30, 42, 51,155, 42, 35, 52,129,106,213,255,253,199,159, 44,186,217,119,223, - 56,189,188,236, 79,207,206, 56,196,161,148, 20, 56,196,174,101,188,189,219, 84,213,196,172,185,191,120,185,173,102, 72, 20, 48, -100, 25, 54,155, 53, 3,167,121,115,254,228,155, 89, 88,152,230,220,231,126, 63, 84,173, 20,163,230, 12, 28,251, 97,115,114,124, -116,183,222,206,151, 75,142, 17,192,218,166, 75,109,203,129,137,145,145,129, 57,132, 24,155, 16, 67,170, 57, 55, 33, 26,162, 26, - 85, 67, 66,170,248,154, 56, 66,126,209, 97, 68, 1,209,138, 10, 32,128, 60,249,123,194,148, 97, 59,100, 64, 85, 20, 32,168,228, - 24,210, 56,102, 83, 77, 93,227,132,119,142,193,106, 17, 51, 66, 0,228,212,132, 90, 51,130, 72,169,177,153,153, 8,135, 32, 34, - 6, 22, 8, 67,224, 81,114,192,160,102,100, 8,192, 76, 98, 0,185, 31,218, 38, 33, 69, 19,101,102,226, 48,214, 26, 16, 13,169, - 31,122, 63,168,136, 2,199,168, 42,110,228,133, 64, 80, 17,136, 76, 65,134, 66, 41, 17, 49, 77, 84, 89,233, 66, 91,106, 22,173, -136,172, 96, 33, 68,138, 92,107, 69,226,192,109,201,131,137,196,212, 1, 99, 41, 35, 33,197,121,151,115,149, 90, 66, 72,238,222, - 66, 4, 85, 9, 72, 12, 72, 49, 41, 70,169,123, 53, 45, 37,123, 96,187,141,177, 26, 90, 45,161, 11,164, 92,173,122,175,140,152, - 13, 48,247, 67, 72,129, 24, 69, 36,143,133, 65, 67,106, 17, 17,159,252,248,255, 5, 4,145,250,186, 51,193, 68,135,114,105, 58, -220, 14,250,107,157, 78,124, 32,183,151, 78, 83, 70, 15,190, 56,134,200,124,143, 60,170, 85, 83, 1, 37, 96,240, 61, 88, 52,183, - 53,121, 19, 28,172, 42, 76,118, 41,111,197, 79,201, 71, 64, 6, 21, 81,245, 25,233, 20, 84, 57,120,157, 94,107,157,124, 40,175, -166,109, 59,251,252,175,254,132,151,111,126,251,253,199,227,232,175,133,212,195, 67,139, 67, 64,199, 87,193,148, 69, 38, 68, 83, - 44, 50,106, 30,165, 22,224,170, 69,213, 4, 68, 65, 20, 65, 84,139,167,101,124,102,207, 78, 42,163, 95,128,201, 28,160,129, 4, - 68,140, 64, 83,230,147, 96,186, 10, 24,190,121,127,241, 31,252, 71,255,201, 79,190,122,217, 68,238, 66,184,219,110,247, 99,253, -246,123,143,127,253,215,126,243, 15,126,255,111,237, 54,107, 1, 83, 41,181,212,245,221,205,197,249,139,237,110, 19, 57,182, 93, -219, 52,169, 14,227,245,221,221,237,221,109, 41,133,153, 25,177,148, 98,228, 52, 77, 54,211, 42, 26, 67,104,153, 85,235, 62, 75, -174, 69,253, 97,168, 90,138, 84,168,121,204, 70, 16, 57, 25, 88, 25,114, 46,185,138, 0, 66,147, 26, 70, 44, 85,135, 60,228,146, -193, 1,116,196,109,140,196,164,162, 37,215,106, 5,145,205,172, 84, 65,196,227,197, 98,204,181, 72, 81,173,183,155, 29, 24,196, - 16, 16,112, 20, 49,128,154,139,212,178,203,162,160, 49, 48, 81, 88,118, 13, 35,115, 12,127,254,233, 23, 57,231, 16, 2, 51, 69, -166,192, 28, 67,104, 99,228,192, 77,138, 93, 74, 77,138,109,147,150,243,249,106,177,236,218,182,109, 66, 19,155,166,109, 23,179, -249,124,214,181, 93,219,181, 93,215,118, 49,165,216,166, 24,154,152, 82,140,201, 1,207, 8, 16,154, 8,138,227,216,223,222, 94, -223, 94,221,190,188,184,126,117,249,106, 24,199,235,155,155,187,221, 78,213, 74, 45,166,154,154,244,205,243,231,111,222,127,240, -198,189,123, 23, 87, 23,159,124,249,245,201,114,241,240,193,105, 21,168,185, 12, 57,207,230, 29, 35,173,102,139,147,227,227,179, -227,251, 77, 75, 47,175,174,246,251, 76, 33,129,230, 55, 30,156,109,119,251,156, 71, 64, 40,185, 34,218,106,121, 36,165,252,236, -235,175,218,216,116, 77,162, 64,171,217,226,207, 62,253,120,214,180, 93,215,253,240, 91, 31,124,252,205, 23,215, 55,155, 89,155, -154, 16,174,119, 91, 16,101,162,175, 94, 93,140,253, 24, 2,229,177,182, 93,215,165, 84,165, 26, 24,136, 14,165,246,227,208,151, - 28,137, 25,105,181,104, 61,239, 45,217,209,193, 65,204,136, 40,134,184,222,238, 60,149,159,107, 81,179, 49,151, 54, 53, 77,228, -126, 28, 1,232,239,252,230, 47,253,242, 91,111, 45, 87, 43,102, 54, 67, 1, 40, 99, 95, 75, 37,142,199, 71,171, 89,151,158, 62, -125,202,129,153,194,217,201, 89, 54,139, 4,165, 20, 53, 48,173, 93,211,138,228,188,223, 80,106, 41, 52,104, 56, 84,201, 99,143, -156,152, 12,181,238,118,187,249,124, 65, 33, 13,251,189, 17, 72,150,166,237,230,179,118,179,185,149, 90,123,129,213,233,189,231, -183,119,183,119,107, 69,236, 82, 92, 46, 22,179, 38,174,102,243,166,137,179, 89, 23, 2,181, 33,117, 93, 19, 2,199,148, 8,205, - 77,108,230,234, 31,243, 32,135, 51, 38, 85, 69,165, 22, 51,166,200, 42,197, 42, 16,153,160, 49, 50, 18, 58,140,222, 23,160, 56, -184, 78,137, 13,216,100,156, 6,158,196,106, 6,170,128,228,141,154, 3, 78,138, 21, 12, 65, 3, 65,191,219, 14,187,205,242,236, - 40, 53,115, 17,112,251,183, 20, 41,121, 28,246, 59, 41, 85, 69,154,121, 27,155, 46,198, 6,137,129,144,136,201, 80,252, 71,171, - 79,119,201,247,146,252, 74,106,254, 80,210,106,147,157,136, 39,239,149,169,168, 56,144,199,239,173,196,129,128,138, 84, 3,101, -194,170,211,104,211,111,146, 42, 74, 76, 28, 26, 3,169,185, 74,169, 8, 66, 77, 66,160, 50,142, 4,232,152,101, 20,128,128,222, -149, 21, 5, 19, 33, 52,115,251, 10, 34, 17, 87, 85, 52,219, 15, 99,208,131, 28,195, 39,163,191, 96,246, 78,115,108,243,113,176, - 29,142, 55, 63,114,221, 46, 53, 69, 78, 29,218, 65, 7, 34,182,170,104, 65, 3,112, 44,132, 33, 3, 41,138,137, 32,161, 67, 34, - 14, 60, 70, 71, 95,146,170, 97, 32, 56,108, 28, 81, 96,203,170,224, 30, 40,223,112,160, 3,189,102, 82,251, 25,248, 31,173,148, -250,230,219,143, 63,251,250, 21,242,119, 56, 57,206,127, 32, 71,154, 1,168, 8,170,202,212, 54,249,197,158, 5, 32, 32, 99,138, - 45, 33, 90,131, 72,104, 42,166,106,200, 96,162,166,150,179,169, 8,152,149, 98, 86, 76,213,204, 87, 54,136,192, 48, 6, 2, 66, - 8, 96, 50,217,130,204,220, 22, 66, 1, 2,179, 1,118,129, 83,155, 62,124,239,189,119,223,255,206,183,223,255,224,141,135,111, - 64,140,187,221,174, 31,247,187,245,250,233,147,111, 54,235,205,106,181, 72,109,243,248,241,187,170,186, 93,111,246,251,189,148, - 98,181,174,230,139, 38, 53, 67, 30,134,126,159, 71, 11, 33, 48,198, 20,194,110,232, 5,173,140, 99, 37,170, 90, 74,149, 42, 54, -150,106, 53, 35, 97,224, 24,137, 40,181, 69,106,173, 85, 68, 0,172,109, 18, 81, 80,179, 60,230, 94,242,190, 31,204, 52, 53,169, -109,186, 38,177,169,229, 82,251,126,168,162, 82, 85,173, 26, 72,228, 16, 67,108, 83, 24,107,222, 13,253, 56, 86, 99,104,218,132, -222,186, 18,101, 2, 81,139, 49,140,185, 32,129,228,122,187,222,230, 42, 72,148, 98, 20,145,177, 84,223, 27,172, 85, 75, 49, 83, - 51, 4, 2, 8, 68,129, 83,155, 98,219,117,179, 54, 33, 95, 51,199, 54,134,174,235,230,109, 51,239,102,243,174, 59, 57, 62, 62, - 90, 45,230,221,172,105, 99,203, 77,240,174, 63, 18, 69,127, 78,164,182,137, 67,206,159,124,254,245,215,207,158, 93,222,220,214, - 42,236, 30,138,192, 4,184,152,205,209, 64, 73,180,226, 88,243,241,106, 53,107,186, 92, 43,135,248,238,155,111,133,128,175, 46, -111, 31,156,158, 40,115,106,187, 6,163, 49,189,251,248,157, 49,231, 79,190,250,188, 31,247,227, 56, 70,142,111,220,127,104, 0, - 31,253,236,103, 41,132,123, 71,167, 79,206,159, 63,126,243, 65, 10,205, 71,159,126,122,113,125,133, 0,111, 62,188,255,234,252, -186, 77,241,203,252,204,170,188,253,248,254,126,200,127,242,209, 79,246, 99,255,232,254,131, 77,191,251,252,201,179,237,208,119, - 77,179,217,238,114,173,145, 35, 97, 56, 57,106, 17, 64,181, 42, 40, 26,184, 61, 92, 77, 77, 28,171, 4,234,149,182, 90, 6,104, -204,196,173,161,177, 81,176, 34,165,141, 13, 18, 84, 15, 11, 59, 70, 19, 99, 8,220,151,250, 63,253,179,143,238,126,105,252,181, -247,223,153,207,230, 41, 70,145, 34,128,219,113,232,154, 80, 75, 30,160, 80,108,114, 30, 54,235,203,245,221,205,155,143, 30,115, -196,171,205,122,177, 60,238,135,190, 10,236,182,155,121,151,108,200, 99,217, 45,143, 78,216,228,100,185,184,188,219, 96,138, 98, -204,237, 34,231,129,114,142, 33,164,110,209,221,159,109,119,187,175, 46,174,190,120,254,234,242,110,253,252,226,242,102,215,223, -245,123, 41,210,166,134, 35, 51, 81, 21,105, 99,138,145,103, 77, 34,226,163,249,188, 73, 33, 48,166,148,218, 20, 78,102,179,179, -227,213,106,181, 92, 46, 22,139, 54,158,204,187,217,124, 49,155,181, 1,184,105, 19, 98, 36, 66, 41, 90, 44,148, 82, 20, 16,234, - 72, 12,101,204,136, 53, 52, 77,136,141, 74, 85, 85, 4, 52, 20, 34,194,152,170,129,212, 74,137, 3, 51,197, 56,142, 61,136, 80, - 19,208,184, 90,117, 43, 44,135, 88,115,222,245,101,214,166,200,141,129,113, 12,154, 51, 65, 35,104,165, 20,157,240, 53, 48,246, - 61, 42, 32,114,211, 53,140, 36,234, 93, 39, 4, 3,230,201, 70, 61,241,221,192,151,249, 73, 0,107, 53,230,137, 87,107, 90, 85, -225,144,154, 86, 48, 67, 85,142, 36, 86,197,140, 67, 80,161, 82,138,137, 97,164, 24,131,128,106,150,201,242, 40,197, 76,152, 24, -152, 85, 4,213, 98, 98,226, 54,231, 98, 42, 72, 76,137,205,208,180, 26, 96,140, 33,171, 25,104,205,153, 17,140,131,168,250,104, - 29, 16, 2,120, 2,242,112,196,155,153,137, 18, 7,183, 96, 31,130,142,168,170,147, 64, 0,100,146, 99, 76,181,137,159,252,116, - 32,114,129, 33,160, 58,116,114,218, 15, 18,143,170, 76,253,238,195,230, 18, 33, 72, 53, 3, 51,228, 16,212, 65, 69, 96, 96, 34, - 21,128, 8, 21, 60, 77,165,102,116, 80, 6,250,171,239, 71,177, 35,107,106,201,237,242, 12,202, 87,251, 92, 23,179, 69, 25, 71, - 69,114, 34, 12,210, 1, 54,140,206, 80, 3, 20, 68, 86, 83,115,159,159,138,168, 26, 48,129,188,158, 52, 24, 18, 82, 72, 24, 18, - 33,152,121, 17, 70,170,181, 12, 25,160,168,212, 50,142, 62,111, 64, 21, 0, 13, 10,102, 10,254,106,134, 0,166,255,248,143,254, -184, 91,156,254, 27,255,250, 63,255,157,239,124,120,122,124, 90, 12,114, 25,111, 54, 55,121,183,187,120,254, 98, 55,110,135,253, - 56, 91, 46,127,229,215,126, 35,160,221,222, 92,230,113, 24,246,251,125,191, 15, 20, 16,113, 62,159, 25,209,213,229, 43, 85,104, -154, 56,111,155, 62,231,245,102,191, 86, 33, 68,102, 14, 77,218,247,253, 80,107,169, 42,181,168, 89,215, 52,128,144,139,130, 34, -162,137, 72,201,153, 35,167, 24,171,202,174,223,239,246, 61, 16,118, 49,158,157,156,196, 24, 84,117,204,121,187, 27,164,138,152, - 14,227, 40, 34, 69, 44, 6, 94,116, 77,211, 68, 64,220, 13,227,190,239, 85, 45,196,192, 76,125, 63, 86, 17, 17, 5,173, 2,168, - 98, 69,100, 55,236,171,210,190, 31,115,173, 64,136,106,195,144, 1,161,139,209,239, 56,200, 76,140,193,195,213,196, 41, 52, 28, -144,136, 21, 64,204,100,180,205,254,118, 24,118, 78, 43,232, 82,106,218,118,222,181,109, 74,203,197,188,107,219,163,197, 98,181, -156,117,169,155,205, 83,219,116, 90, 36, 16, 60,127,117,241,151,159,126,126,179,222,132, 64,132, 28,136, 66, 19, 81, 49, 48,251, -114, 80,136, 49, 48,153,218, 88,242, 56,244,215,140,179,210, 18,226,163, 7, 15,139,106, 76, 93,151,162,245, 61,168, 14,162, 17, -195,118,183,123,246,242, 98, 44,195,172,235,218,208,206,186,118,209, 53, 93,219, 17,232,213,205,205, 21, 92,205,187,217,139,139, - 43, 34,186,190,187,157, 55,237,195,123,103,127,249,217,103,185,212, 95,249,224,219, 33,132, 71, 39,103,219, 50,124,115,254,188, -239,135, 89,215,221,174,239, 62,251,250,233,118,232, 17,200, 4,231,221,226,216, 65,106,132, 34,146,139,248,103,146, 13,128, 25, - 0, 65,166,201,149,195, 77, 85,197, 14,206, 73,111, 6,138,105, 27, 40, 80,136, 49,168, 26,171, 9,104, 8, 78,102,155,188,170, - 98,246, 79,126,250, 51, 41,195,175,127,240,173,213,234,120,232,119, 93, 59,159,119,203,192,225,201,211,103,169, 13,167,171,179, -118,209, 52,105, 86, 74,169, 98,219, 60,156, 28,175,252,119,217,239,247, 20,210, 88, 49,198,208,239,135, 86,165,137,225,197,229, -171, 97, 44,177,105, 9,185,101,124,248,198,187,130,225,110,232, 63,123,121,253,241,159,125,242,245,179,167,219,221,102, 63,140, -158,218,218,230,140,104,196, 20, 34,197, 20, 73, 77, 69,212,164, 31,107,206, 69, 13,246, 57, 35, 98,191,223, 21,147,126, 95, 69, - 11, 83, 56,154,207, 56, 76,152,219,147,163,238,222,106, 89, 10,222, 91,118,203,197,252,193,217,241,195,179,211,123,171,249,195, -211,147,197,114,149,154, 36, 34,109,147, 40, 54, 98,128, 8,217,216, 60,114, 3, 70,200, 82, 20, 1,186, 89,151,199,106,102,192, - 16, 66,128, 72, 53, 23, 54,224, 64, 68,193, 16,173,106, 41, 37, 15,121, 62, 91,148,106,145,162,170, 43,162, 42, 17,206,186,110, - 0,147, 90,192, 64,212, 40, 50, 7, 52,211,172, 85,171,112, 76,132,196, 33, 72,205,181, 20, 10,193,183, 95, 8,163,234,168,136, - 76, 33, 4,241,203,164,100, 87,247,161,169,146, 33, 81,162, 8,181,142,109, 66, 64, 26, 11,214, 42,181, 8, 49, 27,154, 33,228, -156,209, 32,117,141, 84, 41,121, 52,209,118, 49,203,163,136,214, 24, 35,167, 84,197, 47, 79, 77,173,217,233,101, 76, 68,161, 21, -201, 98,226,224,213, 72, 60, 61,244, 17,137,153,153, 9, 33,184,166,195,113,254, 62, 50,128,195, 10,168,167, 2, 17, 92, 44,106, - 64,134,128, 24,216, 23,181, 15,196, 92, 4, 49,227, 41, 15,238,132, 70, 67, 0, 53,213, 10,134,138,138,232, 62, 29,114,132,133, - 31,183, 86, 20,105,218,214, 5, 68,100,223, 24,155, 16,196, 94, 92,197,224, 4, 81, 71, 2, 76,165, 66,205,197,144, 25,105, 2, - 35,128, 10,226,106,181,232,183,155,229,124,102, 86,164,136,119,197,171, 78, 64, 31, 79, 33,162, 1,160,104, 57, 52,205, 61, 65, - 67, 54,173,197, 78, 43, 10, 0,106,104, 89, 21, 92,143,168,238,163, 65,226,134,136,230,136, 56, 91, 50, 6,210,170, 37,143,142, -185, 81,201, 76,102, 90, 47,206, 95,125,245,228,252,225,163,247,255,237,127,231,183,149,160, 14,229,118,179,190,189,122,117,113, -254,108,179,190,235,135,108, 64,143, 30,189,253,246,219,199, 77,211, 93, 95, 95,212,146,219,182, 1,177,174,155, 49,147,154, 13, -187,126, 40,165,105,154, 7,247, 31,222,220,222,108,182,219,253,110, 44, 34, 77,227, 90, 3,237,135,190,106, 29,179,128, 65,138, -145, 65, 13,209,140,170,149,170,181,142,238, 72,179,144,194, 56,150,205,110,159,115, 21,213,229,108,118,180, 56,138,145,138,214, -190, 31,183,251,126, 24, 71, 66, 45, 21, 20,212, 53,208, 93,136, 77,219,166, 16, 74,213,126,216, 23,169, 78, 11,237,135,236, 43, -204, 34,213,135, 49, 85,172, 40,168, 34,242,172,101,106,211,204, 91,172,232, 11,108, 0,140,145,192, 16,137,137, 76, 13,232, 80, - 25,186,163, 67,132, 0, 74, 85, 64, 77,129,123,195,245,126,215,140,195,142,131,145, 5,164,197,108,121,239,244,200, 99,145, 77, -228,174,235,102, 41,205,102,221, 98,182, 80,145,167,175, 46, 74,205,169, 73, 82,242, 62, 15,140,100,189, 79,194, 17,153, 16,128, - 57, 57, 2,187,212, 98,166, 82,139,112,232,102, 75, 14,129, 12,112,142,166,186,156, 7, 32,172, 34, 4,120,117,123,219,143,125, -155,210,209, 98,181,237,247, 87,235,219,219,245,250,225,201, 81, 81,120,121,125,221,165, 48,235,186,187,205,221,110,191,191, 94, -239,154, 16,179,214, 89, 59,187,119, 28,175, 55,235,237, 56, 50,192,151, 47, 94,236,250, 65,196,206, 47,175,119, 99, 38,228,163, -249,252,193,217, 49,152,150, 90,251, 62, 3, 76,187,230,190,172,101, 4, 2,168,158, 55, 35, 48,122,109,246, 37,133,106, 6,100, - 80, 1, 81,205, 55,242, 65,141, 14, 42,131,130,166, 85,213, 55,255,196, 99,201, 6, 1,139,232, 31,126,244,115,197,240, 55,126, - 48,187,127,118,118,121,115,119,181, 94,191,255,232,109, 76, 77, 95,237,122,125, 43, 82,219,166,171,165, 15,180, 60, 90, 30, 23, -209,243,235,107, 82, 67,205,185, 82,155,186, 87, 87, 55, 15, 79, 79, 3,112,192,116,118,114, 86, 4,198, 97,255,217, 55, 95, 95, - 14,218,127,250,252,217,213,229,102,191, 30,134, 60,140, 57,165,152,152,152,208, 24, 39,121, 27, 34,128,214, 42, 76,117,234,204, - 26,153, 89, 85, 97,196, 90,106,100, 66, 36, 84, 9, 12,134,156, 2, 51, 1,147, 1,144,136,108, 54,253, 56,214,139,155, 93,209, -162, 6, 99,206, 12,198, 28,212,180, 9,225,108,185,122,252,240,244,193,233,201,106,222,206,231,179,183,206,142, 79,143,142, 79, -142, 87,145, 29, 90,167,179,229, 10,128,202, 48, 4, 50, 34, 52,177,196,161,212, 18, 57, 96, 8, 38, 46,207, 66, 49, 88,223,238, -153,177,105,102,238, 89, 68, 0, 15,122,115,140, 96,134,156,192,140,209, 18, 49, 80, 64, 12, 20, 40, 80, 99, 9,164,102, 81, 65, -135, 28, 68, 48, 19, 4, 82, 55, 2, 81, 52, 83,177,233,100, 1, 68,100, 86,169,165,140,136, 20, 98,148,146,213,147,166, 8,132, - 98, 6, 68,156,102, 73,213, 36,143,224, 54, 15, 36, 17, 49,213, 16,162,176, 12,195,216,134, 6, 83,147,165,212, 92, 38,175, 30, - 6, 70, 82, 43,129, 26, 5, 48,169, 76,228,127, 5, 2,231,146,217, 76, 81,220,228, 71, 70, 64, 28, 38,238,181,186, 26,233,181, - 38, 85,108,114,136, 35, 34, 49,138,122, 52,134, 94,211, 1, 94, 51,207,188, 51, 6,158, 46, 58, 48, 99, 28,179,138,254,141, 71, - 4, 53,104,154, 38, 52, 97,127,187,157,198,172,140, 6,122,200,160, 24, 34, 17,144, 65,245, 22, 92, 49, 37,100, 34, 84, 69,241, - 65,235, 20,216,121, 93, 98,120,184,207,204, 76,114, 57, 58, 58, 94,223, 92,158, 28, 45,107,206, 98,202, 46,111, 69, 68, 83, 60, - 44,149,226, 36, 95,192, 3,167,221, 0,209,127,229,233,128, 87,143,128,138,151, 54, 19, 88, 24, 12,196,166, 56,191, 85, 32, 16, -173,160, 8, 8,129, 1,136, 67,104,204, 22,151,175,206, 63,249,232,227,152,102,239,126,231, 87,218, 24, 47, 46, 94,148, 82, 46, -206,159,191,122,249,188,223,245, 72,225,173,183,223,253,224,222, 61,149, 2, 86,145,105,223,175,119,155,117,149,250,234,242, 85, -191, 31, 24, 48,166,112,114,118,186, 60, 89,149,203,203,139,139,139,126,200, 57, 15, 33,198,148, 2,138, 86,173,253, 40, 99,206, - 98,230, 44,134, 89,147,156,143, 80, 69, 75,201,181,230, 90, 51, 2, 41,192,126,200, 85,197, 4,218,212, 28,175,102, 77, 96, 49, -221, 13,155,113, 83,242, 88,199, 82, 74, 45,204, 33,134, 48,150,222,192, 0, 83,215,117,206,157, 42, 82, 76,140,155,152,112, 70, -104,132,176,219, 13, 96,176,181,253,186,212, 34, 82,157, 45,129,236, 42, 43, 67,243, 44, 44, 59,185,223,133, 11, 30,175,147,154, -205,212, 42, 19,250,198, 28,152,127,198,148,145, 49,160,170,198, 16, 23,243,238,118,179, 17, 0, 2, 5,195, 44,178,235,247, 39, -101,214, 54,237, 56,150,161, 14,227,144, 47,197,196, 4,192, 82,140, 6, 22, 67, 84, 48,239,191, 22,176, 8, 68, 76, 42,162,181, -130, 97,201, 91,175, 43, 85, 21, 9,168,232,200,149,134,253,232,215, 76,160, 24,130, 33, 68, 12, 77,140, 68, 72,204,111, 52, 15, - 13,196, 41,196, 93,104, 1,244,203,231,207, 75,173, 99,201,121,236,115,201, 99,169,155, 33, 63, 60, 57, 93, 45,102,231,215, 23, -199,139,163,148,226,147,243,203,237,176,219,238,134, 64, 68, 72,217,138, 55,233, 12, 97,172,217, 12,115,169,165, 10,162, 2,210, -235, 74, 82,201,211,199, 64, 0,162,158,230,125,189,188,225, 82, 31, 99, 38,247,186, 43, 40, 35, 24,130, 50, 18,133,156, 7,169, -197,124, 40, 69, 6,132, 38, 96, 12, 96, 70, 6, 49,134,255,235,211, 47,111, 54,235,127,237,119,126,123,214, 52,251,166,219,238, -119,203,174,235,139,169,148,221,238, 70, 49,214, 82,204,140, 98, 88,223, 93, 15, 67, 47, 34,109, 12,243, 89,119,180, 88,222, 59, - 89,237,134,124,181,219,127,250,245,167, 95,159,191,120,121,187,239,115, 30,139, 84, 19, 38, 92,204,103, 4, 60,107, 19, 25,136, -169,137, 78, 10, 11, 53, 69, 52, 53,246, 97,156, 47,143,219, 68, 15,156, 0,220,170, 22,244,150, 0, 0, 32, 0, 73, 68, 65, 84, -104,134, 88, 85,165, 90,145, 10, 2, 98,101, 32,138, 16, 8, 33,139, 0,193,176,173, 8, 18, 1,136, 48,166,104, 64,106, 82,178, -222,150, 97, 55,142, 79,175,111, 14,200, 29,139,196, 72, 56,159,205,151,109,211, 54,241,116, 49,187,119,118,122,182,156, 31, 47, - 22,199,171,197,209, 98,182,152,207,222, 56, 59,109,231, 29, 1, 6, 4,140,193,185,134,125,206, 90,243,217,217, 49, 82,200, 37, -179, 9, 5,156, 86,141,106,225, 24,151,171, 48, 14,161, 12, 99, 21,137,238,147,180,232, 78,104, 68, 34, 16, 53,247,131,177,170, -163,149,221,144, 77,234, 90,113, 68,162, 32,181,212,154, 67, 68, 7,232, 35, 18,197, 38, 16,214, 58,150,226, 75, 50, 8, 0, 82, -170,107,227,192,208, 84,129, 12,204,128,217,106, 97, 12, 49, 0, 18,169, 9, 1, 26,147,169,168,136, 79,169, 1,185, 74, 5, 19, -160, 0,198, 6, 86,198,130, 44, 33, 68, 1,208,126,175,181,112,228,169,186, 5, 85, 67,114, 61, 29, 77, 81,152,131, 30, 69,241, -181, 78,122, 82,231, 49,145,122, 65,233,116, 35, 87,251, 57,251,104, 90,213,153,174,224,132, 32,134,132,120,112,126,148,113, 44, -227, 8, 96, 80,205,124,137,106,250, 12,211,148, 44,157,104,118, 82,171,146,239, 37,185,148,152,204,137,163,224, 20, 89, 95, 3, - 86,197, 9, 55,138,166,146,230,139,171,155,103, 82,134, 92,202, 4,137,124, 29,173,157, 6, 4,234, 26, 97, 38, 4,155,136,100, -126,196,155,218, 68,113, 35,115,189,217, 47,214,230,192,125,223, 64, 46, 11,192,105,209,219, 87, 38,114,149, 50,148,126,188,253, -236,147,159, 14,195,240,238,183,190,179,156,207,175,175, 94,124,115,115,121,125,117,181,223,238,114,174,247, 30, 62,252,238,247, -126, 16, 83, 35, 37,223, 94,191,122,245,242, 85, 41,117, 55, 14,155,221, 78,139, 52, 77,138, 33,164, 20, 83,211,132,200, 47,207, -207,215,235, 53, 0,198, 16, 23,243,102,143,176, 27,246,227, 48, 22, 17,239,247, 17, 97, 36, 14, 28,156, 97, 93,160,140,217, 65, - 50, 90, 69, 74, 45, 34, 86, 1,186, 16, 87, 93,203, 76,129,121,187,223,109,182,217, 12, 66,136,181,202,182,239,157,195,188,235, -247,110, 38,105,155,102, 22, 19,209, 4,189, 83, 21, 19,147, 90,119,227,222,115,179,155,221,126,172, 32, 90,247, 67, 53, 82, 54, - 50, 0,197,226, 49, 90,246,131,123,210, 54,170, 34,130, 24,240, 68,110, 32, 81,241,167,178,203, 11, 13, 8, 76, 77,249,117, 10, - 15, 21, 45,164, 24,198, 82, 1, 98, 32, 68, 0,145, 90, 74, 77,169, 34, 26, 42,186,133,109, 28,234,245,230,238,209,253,147,239, - 62,126,115,189, 27,231,179,213,237,246,246,234,246, 14, 24, 71, 49, 70, 0,196, 38, 38,100,242,111,129, 42, 1, 22,154,238,149, -117, 43,142, 24,131, 73,109, 22,136, 41, 36, 14, 76, 28, 67, 10,145,188,158,157,181, 73, 83, 10,129,143,142, 79, 68,106,174, 53, -231,113, 24,199, 82, 43, 82, 8, 8, 95, 62, 59,191,222,172, 95, 93,222,169, 42,113,152,117,109,192,144,152, 51,100, 52, 55, 78, - 0,161,144, 37, 10, 68,149, 24,107, 5,159,239,131,190, 14,126, 77, 22,176, 73,201, 62, 29,238,238, 93, 82,241,156,177, 34,152, - 41, 16, 8, 64,173, 70, 64,232,203, 53, 54,129,237,212,204,196, 38,163,197, 4,214, 69, 6,248,233,147, 87,252, 39,127,246, 91, -223,121,119,222,206, 2,242, 80, 75, 30,135, 89, 55,159, 47, 79,119,195,158, 57, 94,173,183, 5,104,213,182,219,102,119,118,239, - 29, 12,233,118,179,249,163,143, 63,253,242,252,242,197,213,205,213,102,189,222,237,252,175,155,167, 24, 83,138, 64, 41, 68, 80, - 51,156,102,161, 7, 42,147,203,233,166,175,154,255,199,243,120,132,128,132, 38,147, 73, 14,167, 64, 51, 16,146,248,193,133, 20, - 0, 64,173, 98, 45,185,104, 5,166, 48,228, 28,189,199, 81, 68,188, 48, 80, 69, 83, 64, 14, 14,135, 64, 42,126,220,170,230,156, -215,160,151,235,205, 55, 47, 94,206,158,189, 26, 74,185, 92,223,161,200,188,233,150,243,110, 53,235, 22,139,217,114, 54,123,112, -180,124,120,122,116,118,188,122,243,222,201,106,185, 76,132,243, 38, 49, 83,199, 93,149, 12,132,234,171,142, 30,190,119,115, 72, - 16,198,192, 41,185,110,211,166, 64, 33, 33, 77, 6, 54, 53,156, 8, 29, 19, 13, 17, 1, 25,129, 8, 21,145, 25,188,159, 12,160, - 74, 33,128,145,105, 29, 74, 97, 2,164, 88, 84, 77,196,164,114, 12,129,217, 12,213,109, 30,106, 8, 26, 67,210, 24,196, 84,165, -128, 42, 48, 7,130,108, 19,103,212,227, 45, 90, 43, 0,144,243, 17, 12,131,115,135, 76,193, 60,140, 10,160, 90, 10, 18, 8,161, -134,137,129, 55, 61,119,205,219,218,211,138, 19, 26, 34,123,139, 2, 93,129,230, 11, 74,132,211,197,195, 76,127, 17, 20, 63, 20, -144,134,128, 76,175,117,126, 14,155, 48, 3,157,246,130,156,169,134,108, 83,199,199, 75, 84,157, 26,250, 6, 22, 2, 79,104, 1, - 48, 6, 18, 1, 67, 3,154,182,136, 13, 77, 69,205,128, 34, 97, 32, 19, 1, 4, 6,252,248,163,143,122, 9,191,250,131, 15,215, -155,157,155, 34, 16,217,192, 76, 42, 2, 2,138,151, 36,234,202, 78,244, 44,102, 69, 37, 15, 62,250,129,132,122, 48, 18,178, 47, - 18, 79, 82, 43, 39, 12,195, 4, 71,211,221, 38, 87,145,188, 31,158, 63,253,230,217,243,167, 15, 31, 60,124,240,232,237,245,245, -203, 47,127,118,113,125,117,173,104,139,197,252,209, 59,223, 58,187,247, 48,165,180,190,189,122,249,244,201,110,191,221,108,247, - 23, 87, 55,185,228, 90,165,155,181,173,119,244,136, 16, 96, 55, 12,249,110, 8,196,243,249, 66,164,170,202,205,221,118,179,219, - 35,122,239, 12, 9,137, 67,195,140, 62,219,204, 57, 15,101, 48,131, 90, 74, 41,101,204, 85,204, 66,224,196, 24, 66, 48, 67, 81, - 25,203,168,166,251,177,144, 71,142, 76,198, 90, 76,193, 80,199,162,136, 12, 8, 77, 72,145,120, 63,142,178, 23,100, 84,213, 90, -197,212, 74,173,187,190, 18, 83,151,218, 77,159,199, 82,220,210, 11, 2,130,138, 7,143,138,223, 61, 21, 20, 1,176,170, 25, 41, - 26,249,119, 28,136, 14, 66,117, 64, 35, 3, 51, 49,243,112, 18,142,165,150, 90, 42,134,212,198, 24, 66, 3,179,253,184, 38, 44, - 12, 17, 9, 69,180,104, 45, 69, 92,175, 92, 75, 53, 48, 14, 52,107,218, 7,199,199,187, 33, 95,111,118, 33,118, 39,171,147,183, -222,124, 20, 66,216,239,134,167,231, 95,207,218,249,144,199,245,110,211,132, 56,129,249, 28, 37,228, 66, 13,112,176, 10, 42,130, -168, 88, 17,130,218, 35, 56,101,156,153,152, 2, 5,110, 67, 19,153,253,244, 15, 76, 13,209,114,121, 10, 75, 0,134,183,223,120, -115, 24,198, 7, 15, 30,142, 99,217,236,119,227, 56,140,227, 88, 85, 12,160, 88,173,181,130, 89,173, 85,212, 11,246, 73,245, 32, -106, 2,198, 52,237,115, 59, 25,210,212,136,176,138,231,205, 14,110, 3,159,255,136,248, 94, 30,129, 1, 24, 3,154,136,212, 2, -104,132,216, 4,222, 7,178, 90, 96, 34, 19,250, 13, 11,171,170, 31, 17,204, 28, 99,252,248,217,121,174,229,111,253,181, 31, 22, -145,245,110,211,166,214, 52, 31, 47, 22, 93, 10,253, 48, 70,228,156,235, 75,158,255,249,243,155,243, 31,127,113,126,117,185,217, -141,213,252,173, 23,149, 26,152, 24, 88, 93, 65,105,230, 89, 53, 17,229, 80,192, 32, 87, 97,162, 10,224, 68,201,250,154, 30, 66, - 72, 0, 33,134, 82, 10, 24,130,218, 1,244,135, 10, 96,165,154, 86,240,214,147, 2,187, 82,208,227,228,128, 85,133,201, 84,161, -138, 11, 61, 44,139, 16,162,130, 89, 5, 37, 20, 21, 3, 16, 52,241, 5, 61, 70, 83,149, 82,208,148, 16,152, 49, 20,154,135, 4, -209, 0, 97,168,117,123,115, 93, 47,174, 94,187,171, 8, 48, 16,221, 63, 89, 17,211,201,124,118,122,180, 60, 91,204,142,142,143, - 30,221, 59,125,243,236,120,121,180, 88, 45, 86,243, 14, 99, 8,216,116, 50,155,249,141,170, 10,248,250, 8, 99,144,168, 86,213, -204,141, 44, 72,156, 0, 76,164, 34, 29,206, 59, 85,166, 8, 6, 22,146,212,130,140,128, 36,106, 10, 3, 35,135, 38,162, 66,173, - 2,170, 41,178,197, 56,228,140, 38,236, 70, 23,243,125,160, 88, 68,152, 29, 40, 25,212,143, 58,196,136, 36, 77, 35,101,212, 82, -152, 57,164, 36,230,251,252,132,211,238, 10,131, 1, 51,107, 46,222,101, 33, 53, 38, 50,197, 96, 96, 40,134,126, 22, 19,146,136, - 63,152, 21, 25,205,152, 13, 12, 14, 36, 69, 31, 5, 31, 96,144, 58,245,217, 15,184,223, 67, 86, 94,213, 64,144, 8, 29, 55,111, -254,224, 81, 64, 37, 63,255,213,128,212,121,234,254, 83,112,194, 15,161,169,130, 33, 5,191, 31, 79,255,155,252,202,103,122, 64, -210,160, 34, 2, 88,215,196,253,126,215,117,243, 16,200, 84,134,237,250,127,251,195,127,242,163, 95,250,246,180, 81,237,198,166, - 73,135, 41,160, 70, 97, 2, 9,121, 89, 73,166, 8, 12, 19, 71,195, 84,170, 83,128, 1,200,192, 64,166,252, 59, 34, 18,161, 17, -104,150, 93,159,199, 97,204, 99, 38, 10, 55,183,175,158,124,245, 85,205,195,106,177,220,220, 94,127,253,197, 23, 55,219,219, 89, - 59,187,119,118,111,177,152,137, 98, 32, 94,223,188,186,185,186,190,184,190,188,185,219,238,199, 65, 68, 18,115, 10, 60,159,117, -204, 88,198,108,208,152,122,152, 23, 25,217, 84,183,219,254,160, 35,136, 71,139,249, 48, 14, 99, 46, 76,196, 20,153,160,150, 50, -214, 90,164,170,129, 26,228,113, 44,181,136, 72,147,146,145,239,153,217,110, 24,134, 97, 68, 98, 98,146, 42,197,106,195,201, 64, -115, 81, 53, 11,145,170, 98, 76, 92, 75, 54,131,221,208,111, 7,155, 86,149,145,246,251,126, 63,148, 92,165, 40, 18,105,224,184, - 31,199, 42, 2,166, 85,108,114, 93,130, 7,213, 8, 0,164, 24,178,161,122,186,217, 37,247,102,100,193, 51, 88,138,135,159,140, -190, 51,206,190,237,226,168, 69, 68, 64, 29,242, 16, 57,117, 41,201,124,182,222,237, 0, 36, 33, 3, 64, 63,142, 8,180,104, 91, -241,244,172, 41,128,198,192, 47, 46,175, 63,120,252,230,119, 31,191,121,219,151,111, 61,126, 12,132,203, 89,151, 5,111, 54,155, - 71,247, 78, 63,127,242, 13, 66, 56, 61, 58,189, 89,223,237,250, 97, 49,107,134,154, 1,145, 17, 99,140, 8,174, 43, 37,239,141, - 28,214,169,124,155,198,178, 20, 27,109,143,123, 79,192, 50,113, 10,145,153, 99,216, 51, 83,160,200,137, 3,211,106,177,162, 21, -189,129,247, 16, 88, 84, 75,205,162, 58,142,227,102,187, 45, 67,185,237,183,231, 47, 95,249,208,195,247, 60, 68,100,130,158, 34, - 32, 98,209,105, 39, 92,193,180,122, 28, 9,145,144, 12,216,215, 85, 17, 16,125, 39,127,106,245,152, 2, 56,174, 88,213, 11, 38, - 67, 62,240,183,157,172,162,244,255, 83,192, 19, 2, 6,250,236,252,114,252,147, 63,255,253, 95,249,165,183,238,159,130,192,171, -205,245,197,205,237,249,122,251,213,203, 87, 69,232,118,191,239,115,201, 37,251,166,249,178,153,165, 24, 24, 33,103, 85, 0,243, - 29,124, 68,166,102,218,209, 3, 5,110,204,132,136,167,166, 3, 64, 38, 82, 21, 54, 80, 83,168,128,137,216, 47,112, 19,226,207, -215,216, 93, 91, 12, 14,244, 16, 80, 49, 35, 0, 49, 51,172, 85, 66, 17,241, 4,182, 1,154,137, 10, 0,105, 53, 69, 83, 70, 30, -167, 39, 11, 38,112, 21,140,185,165, 34, 66, 64, 67, 17, 20,213, 41, 80, 80, 75,169, 5, 9, 3, 19,138,129, 0, 19, 70, 6, 21, - 70, 66, 3, 45,162,219,126, 24,115,125,121,117, 91,164,238,115,110, 67, 88,204,230, 93,234, 24,117,214,198,163,197,236,222,209, -209,227, 55,238,157, 30,173,190,243,248,209,131, 71,111,213,177,134,182,227, 96, 76,134,196,140,172, 68,160,122,128,153, 35,135, -224, 27, 82,136,196, 33,152,161, 22,225, 38,197,212, 14,227,222,170, 34, 35, 35, 19, 6,201,130, 12, 72, 64,136,165,138,106,230, -233,161, 99, 49,112,169,140,117, 20,171, 4, 72, 24, 69, 65, 64,240,176, 82,175,102,181, 10,115,192, 48,205,112, 3,153,255, 38, -147, 34,219,212, 12,198, 97, 48, 80, 36, 36, 74, 50, 22, 51,157,216,102, 41, 68,117,108,174, 42, 78, 83,121,244, 1,166, 29,144, - 94, 96, 54,149,101, 30, 81,199,137,113, 10,204, 33,198,169,135,126,248,204, 57,231, 8,253, 92, 62, 4, 27, 65, 77,173,162,103, - 43,189, 28,128, 67,237,112, 16,209, 34,177,211,241, 15,170, 12,157, 40, 35,254,179,166,131, 8,136,136, 3,254, 31,255,232,127, -253, 7,255,227, 63,164,216,164, 38,157, 28, 31,175, 88, 16,219, 24, 83, 81, 45,185, 56,159, 18, 76, 8,193, 81, 97,160,134,128, - 42,117,194,227, 33,169,186,254,113,226,176,138,249,121,143, 90, 11, 34,113, 76,206,115, 26,199,186,223,247,227,126, 44,181, 74, - 25,251,126,251,242,249,147, 79,191,248,249,131,179,251,128,118,121,117,211, 38,142,177,121,120,118,186,104, 23, 22, 35, 26, 45, -150,179,126,191,125,242,228,249,211, 23,231,165, 84, 4,104,154, 38,133,224, 53, 81,205, 82,217,220, 37,109,104, 34,121, 55,142, -238, 53, 79, 41,181,177,203, 99,238,247,187, 77,191, 39,230,166, 73, 34,138,104,185,228,109, 63,228, 82, 60,166,201, 33,112, 8, - 41, 70, 67, 41, 85,107, 17, 19, 5,196, 90,197, 24, 85,101,216,143,132,148, 82, 18, 17, 67, 85, 85,173, 54,100,185,221,110,230, -237, 44,165,192,158,201, 67,205, 37,239,246,121,189, 29,198, 90, 29,254, 30,208,181, 12,154,221,239,131,147, 62,195,247, 13,139, -105,240,192,135,161, 42,208,235,239, 51, 26, 26,162, 55,190, 29,244,140,206,154, 83, 68, 12, 7, 13, 0, 29, 54, 45,188,177,144, - 75, 1,196,101,215, 17,242,110,191, 29,165, 6,160, 90, 4,147,229,154, 83, 19,177, 90, 21,245, 36,234, 80,228,231, 79, 95,156, - 30, 45,255,213,127,233,239,214,177,254,241, 95,254,197,217,209,114, 55, 14,167,199,171,227,227,227,250,229,215,199,179, 21, 34, -174,119,251,239,127,240,189,199, 15, 31,156, 30, 45,215,251,253,159,254,213, 79,246,227, 78, 69, 68, 37, 48, 85, 17,166, 72,165, - 32, 34, 5, 33, 3, 12,140,196,222, 54, 49, 68, 53, 45,162,163,100, 2, 2, 68, 66, 76, 20,128, 49,112,100, 34, 36,238, 82,106, - 98,226, 16, 3,117,204,164,243,197,189,147,123, 49,144, 33,230, 92,174,174,175, 46,110,174,155, 20, 8, 97, 44,165,168,152, 23, -216,106,132, 88, 85,137, 48, 48, 87, 44, 8,192, 4, 34,126, 11,115, 20, 48, 16, 0,241,161, 39,111,128, 76, 28, 8,171,131, 66, - 32, 48, 87, 21, 21, 67,159, 50, 33, 25,184, 31, 97, 82,197, 35, 96,176,160, 0, 95,156, 95, 17,252,244,131,183,238,127,254,226, -234,197,122,125,187,217, 87,129, 20,120,222, 80,140,141, 59, 44, 49,160,169, 41, 26,169,103, 46,167,212,243,129,134, 58,149,183, - 0, 8, 90,212,144, 9,226,164, 89,166,160, 42,168,197, 12,128,140,170, 33, 84,176, 96,213, 87, 79,212, 0, 80,139, 74, 34,244, -193, 34,121,131,222, 43, 2,240,130, 89, 20,148, 0,201,231, 56, 62,208,211,137, 99, 12,254, 88,159,228,157, 6,102,204, 76, 82, - 29,224, 94,173, 86, 53, 2,100,128, 97, 24,157, 83, 41,234,144,209, 82, 85, 0, 16,148, 16, 60,219,173,168, 98,218,136, 26, 49, -144, 80, 66,103,102,170, 89, 29,213,246,235,225,229,205,221, 79,190,252,166, 9,105, 24,243,127,248,247,255,133, 95,251,157, 31, -221,222,109, 75,209, 50,150, 49,143,232, 61,182,195,135,188,153,205, 99, 51,179, 42, 76,202,156,212, 76, 74,230,192, 6, 25, 12, -138,148, 16,131,144, 18, 64, 21, 53,172,212, 54, 40,181, 84,149, 98, 33, 48, 7,158,234, 0, 10,166,142, 86,111, 69, 51,146,119, - 16,176,141, 51, 1, 45,146,107, 29, 3,199, 24,147, 65,213, 42, 85, 32, 53,141, 42,154,136,103,223,253,194, 77,129, 16,217,140, -144, 76,171,114,215,120,136, 54, 16,134, 34, 3, 81,152,122,213,236, 4, 94, 7,225, 78,254, 61, 56,200,142, 15, 14,105, 31, 59, -123,222,157,224, 53,113,221, 38,143,210,129,248,168, 48, 5, 40,125,111, 85, 39, 45,134,175,227,185,228,101,242,126, 28,160,141, -168,134, 1,188,197,133, 19, 80,223,237,127,226,239, 19, 78, 19,134, 39, 95,124,250,223,252,119,255,195,203,157,158, 46,106,190, -189, 59,127,113, 94,213,126,251,215,126,253, 31,255,225, 31,190,241,248,189,119,223,125,171,150, 50,141,179, 14,146,245,137,227, - 75,236,191,254,107, 96,217,107,248, 0, 79,219, 22, 2, 20, 84,160, 31,181,228,220,239,198,113,232,107, 25, 17,116,236,119, 47, - 47, 94,125,252,201,199,219,125,158,207,103,151,183, 55,100,120,188,154, 47,230,139,118, 62,107,218,212,197, 48, 86,123,117,121, -241,252,167,231,235,245, 54,231, 28, 82,211,166,196, 68, 49,177, 40, 4, 98, 3, 81,177, 24, 89,198,220,247,195, 68,108, 98,236, - 82, 7, 8, 67, 25,174,111,111,199,113, 68,228,174,105,192,108, 55,246,251,190,119, 38,143,136, 49, 97,138, 13,115,100, 70, 0, - 27,242, 40,213,218,216,142, 50,172,183,219, 10, 74, 16,192, 80, 84,221,150,161,112,104, 22, 82,192,132, 9,108,185,176, 54,198, -162,101,172,197,128, 25,240,118, 51,108,251, 49,151,202, 19, 77,194, 12, 44,155, 5, 64,158,112,160,238, 46, 87,247,110,177,239, -171,137, 18,163,169,235,139, 12,192, 64, 20,144, 39, 49,139, 29, 2,170,160,135, 10,143,144, 21,225, 32,210, 68, 5, 35, 52, 96, -132, 90,242, 94,164,107, 82, 10,171,109,223,151, 82,134,113, 92, 52,211,250,120, 64,170,128,165, 22, 64, 20,213,171,117,255,224, -222, 89, 25,182,159, 63,121, 9, 24, 62,120,255,219, 79,207, 95,198,148,182,235,245,188,235,152,224,226,230,230, 91,111,189,245, - 43, 31,126,235,231,207, 94, 60,126,244,240,114,189,126,247,237, 71, 47, 94,190, 66,176,243,171, 11, 10, 60,140,153,188, 87, 34, - 74,132,134, 24, 34, 7,160,144, 2, 96, 32, 48, 38,118,186,180, 6,243,225, 66,150, 34, 21,136,138,155, 6,118, 59, 12,156, 56, -114, 36, 10, 41, 70, 98,134,144, 9, 21,113,214,181,111, 60,124,120,239,228, 76,172,168,193,174,239,135,126, 95, 75, 25,203,184, -239,199, 82,107, 24,177,152,223,202, 15,223, 28, 38,158, 32,214,200, 60,161, 51,166,164,177, 63, 32, 85,152, 2, 17,171,100, 0, - 99,114,229, 24,160, 65, 64, 84, 51, 69, 50,167,234, 57, 22, 30, 13,209,218, 72, 63,127,117,251,217,249,229,118, 44,140,216, 53, -177,137,254,117,101,191,127,218,164, 86,152, 24, 36, 72, 78, 37, 65,125, 45,173,113,178,176,139,107,204,124, 21,190,170,132, 24, - 84, 39, 38,171,248,147,200,195,121, 6,136, 36, 34, 41,113, 29, 43, 48, 51, 18, 0,166, 64, 67,241, 69, 70, 35, 66, 81, 16,177, -170, 83, 46,131, 24, 69, 64,192,212,109,217,224, 56, 0,212, 9,248, 14,136,152, 85, 3, 64,203,140,211,210,185,169,184, 26, 20, -128,120, 63,150, 41,185, 98,134,211,243,233,176, 22,233, 2, 20, 64, 81, 80, 21, 15, 95,123,159,197,135, 7,185,102, 85, 83, 21, - 52,232, 98,156,117, 77, 74, 60,239, 58, 20, 11, 68,221,162,129, 85, 82, 85,145, 98,170,165,148, 90, 93, 3,179, 23,201, 28, 26, - 17,180,113, 67, 28, 24, 88,242, 32,170,168, 18, 82,139, 6,160, 98, 86,153, 25, 12, 24,188,167,129, 20,131,199,200,252, 81, 94, - 85, 3, 98, 12, 49,107, 38,136, 0,232, 47, 81, 5, 81, 21, 4, 11,222,193, 69,168, 50, 41,221,171, 20,166, 38, 48,138, 59,196, -196,164, 86, 4, 35, 52,226, 0, 0,200,177, 74, 77,104, 4, 22, 0, 80, 13, 77,196,199,189, 32,250,250,189,245, 59,184,136, 76, - 77,138, 3, 23, 0,180,122,197, 25, 56, 58, 7,206,251,245,228,117, 37,251, 76,107,106,250, 76, 50,107, 4,164, 56,189,244, 6, -135, 65,187, 7, 86, 4,129, 16, 9,216, 38,135,146, 55,218, 39,162, 1,121,208,157, 48,170,137, 63,117, 76,245,241,251,223,253, -123,255,242, 31,252,215,255,253, 63,116, 73, 66, 12,109, 54,249,217,151, 95,125,244,201, 71,127,227,247,126,255,251, 31,126,235, - 58,103, 80, 33,226, 64, 92, 65,225,176,185,229,221, 68, 5,163,105, 22,236,104, 58, 36,160,172, 2,162, 34, 92,139,149, 82,182, -155,219,190,223, 90,173,196, 36, 82,159, 62,249,230,203,111,158,172,183,251,132,180,154,117, 90, 43,165,248,222, 59,111, 29,159, -158,206,186,217,122,189,126,242,226,197,205,245,245,122,187, 99, 3,111,132,206,187, 24, 99,104,218, 6,145, 68, 10,146,186,118, -217,207,229, 90,196, 64, 3, 48, 16,182, 41,110,242,122,183,223,101,209,200,161,105, 58,211, 58,228, 97,179,221, 86,169, 96, 24, -136, 99, 10,129, 25, 13, 69,171, 65, 21,245,207,143,246,253,120, 43, 27, 85, 43, 34,128, 40, 38, 0, 16, 41, 18,123,161,140, 38, - 86,138,204,187,121,219,117, 82,235,118, 8, 23,151,151, 64,156, 98, 36, 47,196,144, 76,209, 73, 31, 38, 0, 96,242, 11,242,130, - 78,195,118, 63,174, 81,236, 96, 46,124,221,181, 3,143,114, 79, 80,185, 73, 81,110,224, 31, 36,251,133, 96, 23,196,227,183,230, -192, 31, 23,100, 29,122, 23, 6,186, 27,251,200,113, 57,155,143, 57,239,199,190, 47, 37, 40, 35, 66,228,144,179, 0,216,209, 98, -121,124,180,124,235,254,131,211,227,249, 59,143, 30,125,253,244,229,241,106,126,117,115, 99, 64,243, 38,237,153,110, 55,155,253, -176, 59, 91,172,126,240,157, 15,190,124,246,124,183, 27,186,118, 86,164,158, 95,190,236,115, 63,140,101,170,228,204,198,154, 85, -100,179,223,139, 2, 49, 53, 49, 52, 49, 49, 97, 8,132,196,129, 25,145, 66,226, 36,193, 27,122,190, 66,229, 25, 98, 1, 33,196, - 92,118,144, 1, 21,140, 56, 16,197, 20, 2,167, 38, 4,171, 89,192, 76,141, 57, 18, 26, 50,117,109, 71,243,165,106, 21, 53, 5, -171, 89, 74,201,253,216,247,195,176,222,238,110,215,119,185, 31, 70, 51, 50,100, 14,106,224, 59,223,174,238, 33, 35, 12,228, 23, -231, 64, 72, 8,204, 60,214, 2, 64,132,168,206,237, 10,225,224,134,155,164,165,222,252, 36,164,121,162,106, 36, 10,106,224, 62, -107,158,250,147, 10,230, 56,247,105,238, 45, 86,153,153,144, 1, 21, 1,130,129, 78, 52, 51,159, 15,168, 26,138, 78,192,121,240, - 25,130,169,249,202,161, 40,120,202, 7, 16, 20,170,148, 32,147,177, 27, 8,153, 25,153,235, 96,168, 94,195, 24,120, 58, 14,192, - 39,177, 42, 38,166, 65, 39, 85,146, 18,128, 0, 51,153, 30,160,234, 62, 79, 86, 45, 85,109, 42, 11,209,192,162,151,245,160, 38, - 85,112,210, 63,192, 52,192, 38,191, 96,190,254,248, 33,162, 34, 0,161,122,108, 0, 13,205,249, 42,182,207, 25,181,154, 90,211, - 36, 81,169,185,214, 34,226, 21,111, 21,164, 98,106,104,170,102, 33, 4,102, 87,195, 1,152, 32,100, 65, 52, 18, 52, 21,149, 92, - 70, 83, 20, 0,217,141,218,151,217,124,142, 20,164,142,158,220,101,118, 81, 19,136,178,138,170,168,128,166, 24, 1,200, 16,152, -130,104, 65,162, 67,116,219,199, 6,164,104,102, 24, 41, 16, 83,197,172, 62,215, 1, 69, 34, 15,215, 35, 19, 6, 12,196, 24,130, - 22, 1, 80, 38,139,161, 1, 19,172, 37,248, 16, 5, 12, 0,217, 3,141, 70, 19, 3,192,251,240, 96, 64,254, 15,242,181, 86, 64, - 35, 50,127, 5, 19,193, 33,133,110, 98,194,132,248,250, 94, 76, 62,125, 3, 87,159, 78,189,243,169,103,228,231, 2, 78, 92,245, -224,162,130,234, 48,162,195, 93,219, 76,200, 67,144,164, 40, 83,215, 29,125,252,139, 0,156,126,227,183,126,247, 39,127,245,217, - 95,126,121, 62, 22, 5,172, 98,245,249,179,175,175,119, 35,254,223,127,252,175,252,139,191, 23, 17,170, 1, 0,138, 1, 35,187, -125,220,107, 34, 39,200,212, 90, 76, 32,117, 45, 49,155,218, 80,180,100, 21,195,177,223,110, 54, 55,195,230, 70,181, 16, 52, 24, -224,213,249,213, 23, 95,124,241,234,246,246,236,228,232,209,189,123,254,140,185,127,239,228,241, 59,239,150, 90, 63,254,228,147, - 39, 47,206,183,155, 45, 50, 53,169,233, 98,116,109, 83,219,134,200, 41,196, 84,107,221,247,123,169, 38, 32,104, 48,150, 44, 62, - 22, 16,193,192, 49,165,128,184,221,237,247,117,156, 55,179, 46,145, 66,237,251,221,221,110, 39, 53, 35,133, 16, 98, 74,145, 0, -106, 21,138,228,153, 76,100,220,237,251, 82,234, 56,142, 67,205, 67, 17, 52,240, 37,108, 71, 81,215, 92, 20,168,141, 12, 8,185, - 10, 80,192,192,221,172, 67, 83,142,169, 31,199,190, 31, 1,145,137,170, 74,155, 82, 79, 67, 21,144,170, 96, 54,249, 33, 0, 0, -176,250,136,115,218, 52,112,150,160, 47,240,201,107, 78, 4,161,153, 84, 18, 52, 70,240,110,236,228,142,240,176, 7,152,107,214, - 16, 84,125, 72,134, 7,110,219,107, 23, 35, 32, 98,128,168,162,131,230,211,213,252,141,120,180,222,236,171, 8, 87,170,117, 60, - 93,173,254,218, 15,126,248,203,223,253,246,217,209,241,213,245,205,205,230,174,235,230, 63,127,242,205, 63,247,215,127,253, 39, -159,126,129, 0,127,244,167, 95, 75, 41,187, 97,124,116,239,222,143,190,247,221, 24,194, 23,223, 60,249,240,219,239,253, 47,255, -232, 15,127,254,252, 89,140,225,187,239,188,255,217,147,175, 36,151,181,202,221,250, 46,139, 34,113,147,218, 89, 55,107, 34, 65, -213,106, 58,230,177,102, 25,139, 53,109,154,165,176, 94,103, 10,161,235, 98, 12, 33,134,164,166, 76,204, 20,220, 9,163,100,100, - 17, 3,130,214,177, 74,174, 57,114,206, 28,183, 62,116, 34, 8,192,109, 19,230,179,217,241,201,106, 53, 91, 44, 22,139,197,114, -217,164,132,224,208, 43, 37,166, 97,216,247,195,112,187,221,223,222,220, 92,222,220, 92, 92, 95, 95,223,221,109,118,187,113, 24, - 21, 16,136, 34,154,130, 53,137,171, 26,249, 22, 9, 10, 81, 64, 0,102, 14,200,194, 64,170, 8,134, 85, 9, 95,231, 18, 4, 12, - 98,224, 64, 80, 11, 18,128, 0, 84, 55, 60,160,209, 65, 81,227, 89, 55, 5, 83,180, 68, 36,102, 85, 20,193,200, 64,208,204,128, -201,199,132,140,204,117, 20, 96, 68,196, 20,130, 1, 72, 17,181,233,140, 7,223,122, 12, 0, 78, 87, 55,200,165, 4,242, 46,196, -116,133,102,132, 74,147,172,195, 0,101, 66,157, 24, 57,242, 89, 9, 95, 63,239, 41, 32, 84, 10, 80,242, 97, 68,230,119, 8, 52, -213, 26, 83, 16,255, 98,147, 41,128, 2, 4,131, 38,165, 34,117,132,202, 24,188, 28,170,135, 91,188, 63,142,166, 63,168, 30,118, - 56,209,196, 52,152, 41,138,104,201, 37, 48, 35,186,123,141,188, 9,129, 64,222,156, 48,169, 70,135, 46,238,228,150,245,184, 97, - 48, 83, 4, 99, 99, 65, 8,204, 33,206,167, 35, 18, 76, 22, 77, 63,150, 50,246,165,102, 4,202,219, 29,161,174,142,143, 65, 33, - 4, 78,169, 17,199, 67,233, 33,202, 2, 96,200,117,204, 68, 16,187, 14, 20, 84,132, 56,160, 66,213,202, 42, 20, 99, 84, 54,173, -197, 4, 77,128,162,203, 41, 1, 45,181, 51,160, 70, 84, 17, 70,173, 89,148, 74, 41, 0, 86,198, 26,204, 44, 16,187, 88,212, 7, -125,147, 74,148, 24,181,138,186,192,197, 5, 52,206,226,114,189,246,212,192, 57,204, 48, 13,167, 81,172,247,225,205, 49,188, 56, -133, 61,217, 84, 16, 25,220, 71,240,186,181,232, 44, 80, 55,225,137, 77,115, 39,169,126, 11,161,224,240,107,179, 98,134,130, 8, -200, 65, 93, 4, 8, 38, 90, 67,211,158,157, 29,133,111, 94, 50,113, 95,198,191,253,183,255,206,223,255,187,191,251, 31,255,167, -255,217, 71,207,111,239,110,215,247, 79, 87, 8, 40, 90, 35,199, 73,176,164, 21,129, 28, 32,105, 0,134, 65, 8,106, 1, 85,200, -185,236,247,125, 25,247,155,187, 43,169,125, 41,194,204, 99, 63,188,186,120,250,252,229,121,191, 31, 87,199,171, 31,125,248, 97, -215, 70, 49,107,186,166,107,103,219,253,238,159,254,241,255,243,244,233, 11, 84,156, 47,218,163,213, 74, 75,165, 72,136,200,132, - 41,165,192,156,115,222,247, 89,180, 26, 88,169,101, 59,246, 42,214,196,232,143,103, 64,146, 34,125,217,138, 89, 12,180,104, 90, -209,124,181,223,229, 33,103,169, 76,212,181, 11, 87, 56,214,146,199,113, 64,132, 93,191, 51,128,174, 73, 6,160, 34,187,253,190, -207, 85, 14,210, 6, 64, 8,136,200, 44,110,206, 50,219, 13,121,172, 18, 66, 56, 89,117, 0, 8, 68,203,249,113, 72,187,162,114, -125,123,155,135, 33, 5,130,138, 33,193,201,114, 46,106, 85,178, 20,237,171,136,135, 66,193, 0, 72,138,137, 21, 15, 85,161, 17, -128,232,180,220,172, 0,236,253,129,131,142,124, 10, 68,191, 70, 38,123,119, 21, 64, 13,244,160, 51, 68, 0,100, 36,100, 50,209, -170,114,160, 80,184, 5, 27, 8,112,187,207,139,123,179,227, 85,216,238,119,106,150, 82, 60, 61, 57,249,217,151, 95, 32,193,111, -252,234,175, 62,189,120,117,117,125,243,103, 31,125,244, 7,191,247, 55,193,240,234,230,246,110,183,101,179,211,147,179,251, 32, -247, 79,206,250,220,255,244,203, 47,193,234,221,245,237,237,110,247,224,232, 56,197, 16, 80, 77,236,102,191, 55, 85,160,112,178, - 88, 44,218,200, 33, 52,137,251,177, 8,212, 89,140, 2,154, 51, 0, 85,239, 39,109,246,251,237, 48, 6,226,227,197,114, 62,107, -124,170,204, 68,196, 76, 72,145,137, 89, 72,200,145,135,196, 20, 34, 51,211,178,107, 87,179,249,209,209,124,217, 45,142, 87,203, - 7,247, 78, 23, 71,171, 38,164,110,190,108,187, 6, 57,198,208, 32, 18, 51, 41, 96,238,119, 82,133, 2, 73,201, 67, 63,230, 50, - 12,251,225,250,246,238,249,203, 23,215, 55,215,175,174,110,206,175,174,251,113, 44,181,108,182, 61,249,188, 36,155,169, 16,147, - 78,155,241,147, 28,144, 2, 50, 51, 30,114, 16, 16,152,249,144,129, 64,245,224, 26,185, 43,141,208, 0, 2,130, 0, 25, 0,249, -206,253,100, 34, 7, 84, 31,237,249, 56, 16,170,154,162, 69, 85, 67,101, 32, 19, 19, 81,102, 34,162,215,177, 31, 31,183, 76,236, - 61, 3, 37,223,106, 3, 85, 13, 49, 32, 76, 19, 26,157, 0,124, 38, 82, 99, 8,136, 19,114,209,151,187,244,128,242,155,232, 49, - 66, 58,177, 24,136,129, 92,202, 3, 8,234, 78, 47, 55,165,120,129, 15, 20, 27,166,202,125, 41,191,160,221, 30, 98,205, 94,205, - 0, 26, 1, 16,177,128,248, 5, 72,204,129,184,160,134, 6, 26,136, 83, 72,204, 44,104,106, 26,152, 60, 48,231,135,149,233,193, -241, 0, 24,188,154,240,198,254,244, 8,241, 50, 2, 85, 11, 76, 37,170, 17, 83,215,112, 23, 16,176, 19,145, 82,115, 85,232,251, -141,130,201, 86,193,128, 56, 32,114, 12,129,145, 93, 21,146, 56,104, 67,138,106, 82, 69,192,197,132, 68,200,212,148,154,163,162, - 25, 34,179,235,225,189,155, 69, 76, 41,118, 20,163, 26,128,168, 48,131, 48,162,184,160, 43,166, 24,124, 70,195,164,106,138,222, -233,113,168,130,200,148,129,132, 26,220, 91,228, 23,187,105, 44, 64,240,122,156, 58,153,103,109,122, 49,224,208, 79, 7, 50,127, -202, 50, 3, 18, 30, 72,147, 94, 19, 76, 18, 73,143, 87, 22, 53,156,150,152, 60, 41,139, 83,236,210, 59, 62,135,241, 45, 26,146, - 11,124, 3,154,197,212,157,156,156,196, 16,108, 28, 9,237,195,247, 31, 47,239,191,253,239,255,187,255,222,215, 47, 46,222,184, -127,154,165, 18, 34,249,146,147,191,201, 22, 20, 76,180, 42, 54,128, 73,209,198,220,247,187,245,110,123, 11,160,253,110, 43,181, -214,113, 24,114,190,189,187, 27,246,187,167, 47, 94,222,237,199,119,223,124,248,230,123, 15, 30,156,158,238,199,129, 98,179,217, -220, 62, 57,127,181,221,238,250,126, 47, 34, 71,243,101,140, 68,132,166, 48,155,207,129,212,239,190, 82,202, 48,228,177, 12,106, -152,203,184, 31,134, 92, 74, 76, 77, 27, 83,206,185,170, 17,152, 47,103,167,148,128, 96,236,135,245,176, 21, 81, 69,136, 28,102, - 33,229,156,183,253, 46,231,108,104, 12,160,196, 94,250,116, 77, 82,131, 82, 11,152, 6,230, 38,162,177, 9, 64, 46, 89, 68, 81, - 77, 12,198,177, 20,145,249, 98, 53, 14,163, 24,204, 83,211,196,208,180, 29, 24, 50,208,106,182, 84, 49, 4,188,190,185,164, 16, -131, 9,171,142,165, 0, 81, 96,142, 28, 79,219,118, 40, 5, 0, 57, 4,169,117, 44,165, 31,185,106, 5,133,125, 46,224,187,109, -190,109,140, 24,152, 39,241, 49,144, 19,129, 8, 80,124,124, 98,102, 0,213,243,193, 2, 72,211, 12, 29,253,147, 86,157,169,239, -233, 16, 80, 3,144,226,242, 94,149,250,205,249,171, 20, 82,100, 34,198, 93, 63,252,252,155, 39,187,156,111,215,155,245,110,207, - 28,150, 77,184,184,188,250,209,135,223,251,175,254,219,127,240,245,243,167,219,221,240,214,131,179,229,172, 93,180,205,243,203, -139, 79,191,220,236,198,225,151,223,123,175,214, 50,239,154,161, 31,158, 93, 92,252,197,231,159,143, 99, 65, 14,247,143,142, 56, -134, 89, 10,226,254, 63, 32, 55,150,149, 34,175, 23,253,162,219, 19, 8, 3,179,175,153,148, 42,102,134, 25, 8, 81, 85, 82,106, - 76,149,153,145,177, 73, 13, 17,182, 93,119,180, 92, 52, 41, 53,145, 17,177,140,117,135,253, 88,203,237,122, 29, 83, 76, 49,165, -192,177,105, 98,224,182,105, 83,211,116, 93,155, 82,215,117, 93,136, 77, 4,167,225,116, 11, 64,169,245,222,155,143,190,243,225, -135, 53,143, 67,223,239,251, 97,191,219,221,238,119, 55, 55,183,125,223, 95, 92, 93,157, 95, 92,188,188,188,185, 94,223, 14,227, - 40,166, 82,235, 80,106,100, 98,167,222, 33, 50,162,168, 17, 25,161,138, 10, 57,196, 65, 13, 16,196, 27, 47, 6, 7,199,185,137, - 11,196,167,131,210,200,231, 2, 7, 97, 41, 32, 86, 81, 35,216,245, 3, 35, 66, 12,168,130, 94, 68,136, 77, 20, 28,175,225,192, - 16,216, 13, 11, 4,102, 98, 74, 58, 61,241, 1,212,192,204,170, 86,123, 61,112,115, 71,142, 79,231,241,181,146,243,144,214, 38, -239, 26, 79,171,135,135,101,115,111,113,160, 79,250, 15, 43, 57, 83,168,207,197,182, 94, 13, 42,168, 39,158,189,123, 48,197,165, - 16, 25,253,251,105,116, 88,119, 84,223, 66, 64,242, 49, 53,161, 63,180,176, 77,105,250,165,167,203, 40,153, 26,210, 65,215,137, -232,203, 76,126, 75,179,195,125, 6,192,165, 17, 14, 83,215,201,149, 34, 25, 57, 0, 96, 19, 40,197,160,106,210, 84, 4,168,213, -212,164,152, 20, 49, 43, 40,158,245, 80, 52,211,148, 26, 34, 66, 85,110,102,192,164, 42,140,236, 26, 91,153, 54, 71,145,136,137, -128, 66, 40, 90,104,172,128,172,181,162,169, 15,234, 25,217,204, 68, 53,120,109,124, 80,160,122,168, 82,209, 96, 28,247,138, 16, - 98, 98, 12,192,234,207,241, 73,154, 1, 7,162,129, 41, 26, 34,177,119, 27, 38,199,152,185,203,132,166,115,158,144, 1,100,154, -218,226,100, 3,156,108,123, 56,125,198,216,208, 87, 38,124,250,141,138, 46, 8, 6,243,119, 85, 77,161, 40, 78, 15, 34, 64, 53, - 32,131,144,222,126,231,209,172,249,201,205,126,247,111,253,189,127,243,111,254,238,111, 93,223,174,219,229,201,247,150, 39, 99, -206, 46, 64, 83, 21, 49, 9,196, 96,152, 85,139, 24, 88,163,162,187,237,171,187,219,203, 60, 12,181,230, 54, 54,155,237,238,110, -125,179,185, 91,143, 99,217,236,182, 23, 55, 55,187,113, 24,134,252,155, 63,252,254, 59, 15,239,109,250,225,235,103,207, 95, 92, - 94,170,170, 41, 68,102, 38,106,155, 70, 65, 83,136, 77,140,181, 20,136,147,246, 88,164, 74,150, 2,178, 27,122,149, 58,150,234, - 76,184, 38,182, 77,211,212, 90, 74,201, 49,133, 20, 98, 32,206, 85,214,187,253, 48, 12,128,126,231, 49, 16,237,181, 82,128,126, - 28,107, 22, 66, 42,160,168,150, 18,165,192, 33,132,148, 18,170,133,166, 51, 21, 77, 96,125,191, 29,199, 82, 10,136,229, 92, 55, -251,190, 22, 49,131, 16,194,138, 98,106,177,239,183,137,136,153, 82, 74,132, 40,181,132, 54,205,218, 57, 32,170,202,118,191, 13, -145,135,221,110,148, 74, 24,198, 33,171, 72,215, 53, 99, 29,115,214, 54,197, 89,155,174,238, 6,145, 82, 85, 23, 41, 22, 6, 85, -200, 94,177, 1, 86, 25,198,106,136,180,104, 23,164,162,170,128,254,205,135,195, 90,244,161,168, 3, 51, 65,142,129,137,204,196, - 79, 86, 1,129,131,150, 17,255, 63,166,222,228,201,146, 43, 75,239, 59,211,189,238,254, 94, 68,228,136, 4,178,208, 72,160, 10, -133, 2, 10,133,170,234,177,154,205,238,102, 75, 38,146, 34,165,141, 54,250, 87,100,166, 21, 55,210, 74, 75,153,100,148,204,180, -144, 22,148, 22,220,203,180,144, 68,177, 57,136,109,106, 90, 79, 53, 0,141, 49,231,200,136,200,136,120, 17,239, 61,119,191,247, -156,163,197,185, 30, 40, 24, 12, 11,100,100, 90, 70, 60,247,123,207,240,125,191,143,192,201,168,137,173, 29,220,231,105,174,232, -146, 51,128, 87,117, 97,222,238, 71, 51,115,155,254,242,201, 55,111,222,125,240, 63,255,243,127,158,200, 62,249,224,253, 63,255, -155, 95,117, 41, 37,198,199,175, 94, 61,125,121,140, 68,111,222,191,115,118,121,113,126,181, 59,223,108,166,121,158,107,217,205, -179, 16,175,114, 74, 89,192,148, 72, 98,148, 69, 68,132, 22,233,151,220, 68,191,212,183,144,140,152, 46,185,153, 9, 68, 48, 54, -127,164,218,126, 0, 0, 32, 0, 73, 68, 65, 84,104,200,254, 16, 38, 51, 44,133,136,204, 9,220, 78,207, 55,167,231,175, 69, 82, - 34,236,115,151,251, 62, 9, 15, 41,231, 62,175,251,190,239,186, 33,119,195,106,232, 82,215,101, 1,132,156, 83, 78,105,213,117, - 93,238, 83, 78,125,238, 68,114,215,103,233,114,226, 14, 68,250,131,131,225,240,214, 29,128, 50, 79,101,154, 34, 98,177,150,178, -223,237,171,233,118,187,221,238,118, 47, 94,157, 60, 63,126,254,234,228,244,229,217,235,205,213,245, 84, 74,169, 85, 17,170, 59, - 34,177, 80,226,206, 92, 17, 32, 49, 59, 2, 97, 0,129, 48, 10, 52, 71,211,166, 91, 39,107, 34, 93, 50,168,177,225,173,174,213, - 42,129,171, 59, 24, 42, 32, 49, 87,176, 82,106,183, 94,185,151, 22,228, 19,193,216, 11, 84, 53, 80,105, 46,208,178, 49, 29, 8, -145, 16, 84,219,218, 5, 93,145, 40, 94, 98,173, 21,146, 52,183,161, 81,156,231,222,246, 54,104, 8,160, 14,130, 75,163, 16,190, - 11,144, 69,211,225, 0, 2,208,166,234, 30, 33, 24,128,224,218,250,138, 88, 7,196,182,207,221,169,154,133,202, 40,164,249, 14, - 28,131,108,110,147,105, 20, 68, 6,174, 45,235, 77,209, 20, 68, 22,163, 71, 88,144, 26, 13, 55, 80, 89,176,252, 23, 91,125, 27, -161,111, 96, 22,231,123,196, 62, 65,117, 5, 3, 35, 50, 83, 4, 96, 32,141,234,219,157, 24, 73,200, 99,125,138,136, 0,101,198, -113,222,199, 29,171, 87,215,132,158, 83, 39, 34, 76,243,208,119, 57, 15,224,125,245, 26, 20,150, 54,140,211,234, 54,155, 53, 86, -164,154,154,107,151, 68, 82,150,134, 62,140, 40,120,136, 80,104, 2, 80,104, 42, 87, 34, 34, 45, 21,127, 45,225, 34,246, 62, 45, -178,176,197,163,198,245,127,131,160, 97, 12,123,196, 18,140,221,248,234,237,113,112, 12, 51, 95,236,199,205,219,154,179,209,127, -169, 9,103,189,137, 54,227,154,176,224, 32, 56, 48,130,130,129,131,170,126,239,251, 31,189,255,232, 47,206,175,174,254,252, 47, -254,242,247,126,243,147,135, 15,238,107,144, 3,157,193,201, 45,196,178,190, 29, 75,169, 62,215,121,127,189,223, 94, 95,108, 47, -207,129, 60,247, 67,166,238,250,250,252,228,234,197,102,179, 57,187,216, 92,239,198,205,126,111,238, 12,246, 27,247,238,173, 87, - 7,168,246,255,253,205,175,230, 82,166, 90,250,190, 59, 90,175, 81,141,146, 76,115,233,251, 62,160,201,165,148,170,202, 0,165, - 76, 83,213,237,126, 55,149, 74,136,224, 80,138,185, 27,177,116, 41, 51,147, 91, 69,244,245, 48,152,131, 22,221, 76,187,105,158, - 40, 48,159,104,213,124,156,138,187,151, 50,155,249,106,232,136,220,221, 87,146, 73, 66, 89, 33, 34, 4,224,187,121,174,181,152, -195, 84,202,126, 63, 22,179,243,203,125, 47,121,181,202,215,251, 73,152, 0,201,106,153,167,221,193,225,209, 52,143,213,189, 58, -148, 90, 19,167,209, 77,231,210,119,121, 42,124,235,240,246, 56,141, 69,173, 78, 51, 2, 36, 78, 38, 58, 47,241, 89,230,243,118, - 95, 9,161,216,156,114, 63,237,118,213,157,137, 51, 51, 85,221,169, 18,120, 45,109, 92, 86,185,152, 71,195, 36, 14, 46, 66, 72, -174,165, 21, 96, 81, 20, 75,162, 46,101, 55,175, 78,137,221, 92,201,227,212, 16, 10,207,106,173,106,176, 36,236, 26, 17, 24,242, - 28, 87, 53, 25, 40,108,107,249,252,155, 47,127,247,147,159,220,221, 77, 47, 78, 95,253,187,159,255,229,135,239,189, 43, 44,235, -126, 24,250,225,151, 95,126,115,118,185,233, 58, 41,251,114,126,113, 61,149, 82, 74, 81, 51, 4, 76,196, 8, 4, 72,130,220,165, - 52,206,234, 14,140, 76, 34,132,128,192,166,213, 29, 52,150,144, 64, 90, 29, 51, 58, 97, 76,120,205, 93,137, 96, 54,103,100,193, -162,160,110, 45, 39,129, 80,205,136, 96,154,167,205,246,122,158,231,169,234,186,235,238,221,185,219,103, 49,119, 38,200, 93,238, -114,223,119,169, 75,121,181, 26,214,125, 78,185,235,115, 78, 44,253,208, 13, 93,223, 17,165,156, 72,120, 72,137, 24,153,164,203, -221,106,189,202,125,223,247,125,204,115, 68, 56,165, 78, 97,181, 62, 58, 68, 71,115, 53,181,143,127,232,243,180, 87,211,237,213, -110,115,117,117,189,187,186,216, 92,157,158,111, 78,206, 78, 47,175, 55,187,237,190,104, 25,167, 66,233,234,122,187,171,101, 6, - 18, 96, 36,201, 8,144, 18, 67,117, 87, 7,196,204,162,110, 70, 97, 75,105,154, 66,104,193, 8,132,110,171,190,175,102,141,101, - 2,192,205,158, 98, 6, 75, 27,191,168,171,133,196,213, 84,227,165, 70, 53, 16,136, 50,182, 80, 51, 48, 18, 69,208, 34, 2, 16, - 9,199,200, 5, 0, 12,127, 61, 78,231,102, 30, 31, 69,222, 77, 34,115, 51, 81,218,183,206,169,246, 79, 59, 81, 0,144,131,107, - 2, 74,203, 95,207, 1,144,141,154,247,161,141, 16, 4,129,144,237,198, 95,230,145, 64, 17, 99,101, 52,171, 49,173, 90,124, 5, -184,240, 80, 22,157,246,242, 95,132, 95, 27, 76,123, 4, 52,147,186, 57,134, 70, 74,172,204, 76, 24, 55,209, 98,246,141, 11, 5, - 33, 8, 95, 6, 8,173,246, 37,162, 62,177, 69,226,220, 0,213, 76,171,206,102,101,156,232, 26, 25,185,239,187,156, 6,247,210, - 15,189, 71,114, 33,160,161, 51, 83,124,215,237, 90,131,228, 54, 10, 32, 0, 90,219,106,104, 88, 14, 21, 0, 82,234, 0,129,137, - 22,253, 98, 67, 18,184, 1,210, 34,130,108,202,241,166,182,113,215,144, 83,182,212,246, 80, 97, 16,220,124, 45, 52, 35,176,131, -183,213, 5, 32,120,132, 48,154,183,150,203, 26,186,166, 54,169, 76, 5, 39, 68,148,166,140,132,198,181, 49,208, 82,215,183,239, -255,228, 71, 31, 62,125,245,250,179,191,253,244,191,249,111,255,233, 31,254,236,183,223,125,231,237,119, 31, 61, 90, 31, 12,117, - 46,213,113,158,109,119,181,221,110,175, 46, 94, 31,107,157, 9, 41, 13,131,187,237,174,199,103, 79, 95,108, 54,151,211, 92,205, -180,212,249,122,172,199,167,231,175, 55,175, 75,133,223,250,248,251,204,252,226,244,149,187,119,146,115, 74, 67,223, 73, 98, 87, -115, 4, 68, 31,134, 46,145, 76,101, 95, 38,155,234, 92,107,157,180,106, 41,145, 44, 44,200,115,173,238, 22, 90,198,148, 36, 49, - 87, 4,161, 84,173,238,119,251,237,110,111, 90,195,228, 51, 77,234,164,153, 72,193,221, 93, 85, 29, 17,192,166,185, 6,112,115, -246,146, 85, 82,230,113,218,215, 42,136, 84,106, 13,207,250,241,201,235,235,237,148, 83,222,142, 99, 62,148,144,187, 54,145, 42, -248,245,118,123,116,120,120,184, 94,237,246,211,209,129,153, 26, 11,130,185,147, 39,228, 33,103,181,218,231,161,238,182,251,113, -138, 48,248,177, 86, 34,116, 80, 15, 74, 4,243,126,158, 19,114, 39,121, 15,123,115, 23,137, 72, 73, 22,115, 71, 3,100, 0, 71, - 2,181, 90,220, 28, 32, 71,151,167, 68, 78,156,144, 16, 17,104,154, 75,117,200, 44, 0, 80,172,148, 82, 99,220,198, 76,128,216, -161, 64,196, 60, 18,155,107,148,252,193,115, 37, 36,213, 90,107,201, 41, 27,249,126,156,190,248,234,201,203, 87,167,219,253, 4, -102,230,254,171,175, 30,223,191,125,171,152,255,237,227,199,227, 56,137, 72,172,131,198,105,102, 38, 38,170, 53,188,126,102,110, - 2,236,230,115,173, 4,160,142,166,245,160,235, 23, 43,174, 19, 35, 20, 23, 0, 5,216,105, 89, 85,129,182,149, 91, 8, 23,177, - 84,139,229,131,186,187, 51, 33, 17, 67, 68,187, 0, 48,177,176,212, 64, 98,187,169,251, 56,238,189, 88,215, 77, 35,237, 47,208, -138,129, 1,100, 73,195,208,245, 57,229,156,135,161,207, 41,173,251, 44,146,186,110, 24,152,115, 18, 96, 72, 40, 34, 32,146,251, -156,187,148,134,213,106, 24,250, 46,231,148,251, 97, 53,244,253, 64,146,220, 13,145,186,213,129,214,185,239,215,111,188,249, 80, -132,145, 12,129,208,169, 90,157,203,140, 0,169, 27,246,219,237,147, 23, 79,126,245,249,151,127,253,243, 95, 62,121,254,236,242, -234,202, 61,244, 43,136, 8,137,153, 18,121,141, 96,131,155, 96, 50,112,160,162,145, 94,205,196,132,106, 75, 22, 4,128, 91, 99, -125, 99,152,135, 12,152,140, 66,203, 67,106,132,102, 4,192,132, 20,101, 25, 33, 32,171,213,208,184,187,129, 53,144, 3,178, 83, -187,211, 9,168,233,112,113, 97, 65, 1,242,194, 75, 89,150, 59,196, 88,212, 36,126,251,114, 44,135,185,107, 73,230,137, 4,160, -182,217, 69,192,128,159, 80, 60,140, 0,205,124,199, 33,216, 64, 52, 6, 32, 98,138,243, 23,180, 13,232,169, 21,229,234, 78, 4, -173,172, 13,225, 56, 51, 53, 44, 4, 1,212,240,237, 59,146,131,125,123,200,251, 50, 0,115, 87,162, 22,115,100,176,232, 9,208, -163,147, 80,112, 4,108, 43,180, 38,219, 86, 55, 66, 3, 11,179,146, 16,101, 79,128, 29,118,224, 80,205,118,243, 56,150, 73,221, -253,106,139,104, 93,146,190, 27,170, 26,186,167, 68,194,153, 72,156,132,216,187,220,201, 50,180,106,183, 36, 24, 54,212, 10,179, - 47, 22, 82,162,229, 39,223,200,235, 97,162, 96,168, 22,243,211,118, 29, 53, 13, 98, 0, 14,110,166,111, 97,192,117,247, 26,169, -153,232,248,107, 67,123, 68,140, 68, 93, 96,140, 9, 69,148,123,113, 91, 48,198, 84,108, 33,130,197,157, 23,105, 26,224, 88, 1, - 63,250,248,195,255,227,255,254,215,128,248,217,151,159,159,188, 58,249,224,189,119,254,206,239,253,236,251, 31,252,160, 22,189, -188, 60, 63,125,245, 98, 30,183,135,135, 71, 40,208,247,171,147,151, 47, 79, 63,255,114,187,219, 95,239,119,211, 52,147,208,189, -163, 91,187,113,252,213, 87, 95,159, 95,111,175,183,227, 88,230,219,135,107, 43, 58, 82, 93,245,131, 59,136,144, 48, 17, 49,154, - 86, 55, 0, 34,164, 82,202,102,188,218,239, 71,119,136,158, 11, 8, 19,231,226,166,117,158,107, 65,132, 97,232,187,148,208, 41, - 39, 6, 71,171,229,106,119,189,159,198,121,156, 83,206,136, 20, 91, 92,117,173,181,170,137,147, 23,179, 56,211,157, 41,114, 26, - 1,168, 79,210,117,169,212,146, 37, 57,200,103,143,159,100, 74,138,176,189, 30, 83, 48, 50,213, 76,107,223,165,170,134,190,240, - 50, 1, 75, 45,151,155,205,237, 59,119,182,219,113, 55,238,115,215, 59,130,106, 33,166,169, 22, 22, 73,194,134, 86,180,198, 20, -181, 84,117,115, 68, 81,131, 82, 85,132,133,152,153, 70, 40,241,227,142,135, 33, 11,141,179, 13, 34,163, 22, 5, 19, 32, 64,112, - 2, 50, 92,180, 84,160,110, 8, 4,234, 6,241,173, 88,173,213,152, 10,145, 86,109,108,103,116, 84, 80,116, 6,116,247, 10,222, - 75,190,179, 62,236,114,183, 94,245, 69,171, 19,141,187, 73,189, 74,238, 90, 35,120,168,227, 56, 79,115, 57, 90,103,102,100, 98, -114,152,231, 73,205,201,177, 27,122,173, 5,213,220, 21,208, 59,145,105, 46,213, 20, 29,138, 25, 2,133, 11, 49,179,236,166,153, -185,246, 41,133,155,217, 90,245,233,193,215,107, 52, 95,106,228, 59, 48,103, 18, 8,225, 7,162, 1,144,144,155, 41, 56, 85, 55, - 52, 2, 53,171,174,218, 34,222, 13,209,117,210,194, 46, 4,168,132,106,142,228, 65,125, 40, 85,103, 24,231,121,190,112,221,238, - 39, 36,100,230, 62,167,190,235, 87, 67,215,229,212,229, 28, 35,155,156,164, 11, 74, 79,151, 51,113,151,101, 24,134, 46,119, 89, -184, 75,121, 88,175,114,215,175,134, 97,181, 62, 76, 73,186,156, 73,160, 91,175, 57, 15,145,120,156,220,123,176, 97,117,216,175, -214,170,245,209,247, 63,250,217,239, 79,187,203,215, 79,158,124,243,249, 23,127,251,217,151, 95,125,253,244,233,241,217,249,197, -245,118, 86,239, 34,149,135, 81, 8, 33, 49, 87, 82, 55,161, 64, 38, 4,222,210,204,141,145,163,173,119, 34, 87,183,104,244,137, - 91,132, 25,114,172,206,132, 83,169,161,101, 64, 34, 65, 98,243, 54,110, 1,192,101, 9, 27, 55, 34,148,150,140,214, 42,101, 15, - 63, 38, 80, 44,233,154,187,106, 17, 6, 17,128, 90, 76, 66, 8,177, 45, 57,173,169,244,112, 17, 95, 35,199,138,216, 33,192,230, -145,215,215,118, 70,141, 75, 8,232,196,136, 68,168,174,161,193,181,216, 38, 36, 6,152, 45, 66,181, 91, 43, 25,170,109,188, 1, -164, 44, 29, 6,184,234, 2,123,246, 6,165, 93,138, 89, 2, 86, 85,243,106,145,112, 68, 28, 50, 69,247,216,139, 7,139,194, 64, -154,151,196,129,219,212, 19,220,205,128,163,113,114,159, 43,176,196, 11,232, 0, 68,148, 0,145,128, 1,148,157, 80, 12,240,106, -220,155,170,155,233,149, 1,104,151,115,150,126,213,119,251,253, 94,218, 90, 58,124,101,109,221, 12,174, 21,111,150, 13, 20, 97, - 31,161, 44,178,136, 77, 71, 66,175,182,200,219,117,177, 9,133,206,141,220,181,157,247, 68, 96, 96, 94,225,219, 44,168,112,164, - 33, 0,129,153, 55, 45, 87,204,176, 24,201,220, 52,214, 41, 20,238,133, 40, 23,220,127,109,155,235,224, 26,119, 70, 45,229,254, - 91,239,254,230, 15, 30,157, 92,141,191,255,163,143,126,240,254,247,238,223,191,143, 36, 95,127,241,171,211,147, 83,240,122,184, - 62,236,115,119,113,113,121,189,217,156,156,191,222,237,167,125,153,146,200,170,235,190,243,224,222, 60,207,167,103,103,159, 63, -123,250,234,252,138,192,133,232,135,223,125,247, 96, 61,220,187,125, 72, 8, 85, 43,146, 88, 45, 85, 43,170, 33,186, 35,129,217, -230,250,122,183,189,174, 6, 57, 0, 50,136,213, 20,204,175,166,107, 38, 18,225,219,221,161,177,103,150,248,166,247,101,190,190, -222,109,167, 49, 17,179,112, 56,102,135,126,165,251,237, 56,205, 6, 46,196,192,100, 90, 9, 64, 77, 3,113, 42, 68,140,196, 12, -213,230,231,207, 94, 49,117,255,228,191,252, 39, 95, 61,121,246,171,127,250,223,207,243,252,250,242, 82,132,215,183, 14,246,179, - 13,125, 58,191,170,166, 86, 52,152, 29,109, 73,133,136, 87,215,215,171, 97,117,116,176,186,220, 92, 31,172, 15, 74, 17, 22,164, -153, 10, 75, 38,236,251,213,225,176, 58, 63, 59,207, 34, 14,190, 26,242,213,126,207, 89, 57, 9, 16,220,191,117,251,244, 98, 51, -116, 66, 44, 70, 20, 27,113, 74, 92,171, 58,225,144, 18, 78,188, 31, 39, 71, 71, 39,111,175, 80, 51,184, 41,128, 24, 26, 24, 18, - 81,160, 42,152,219, 20,212, 91, 63, 76,128, 8, 40, 8, 73,210, 84,139,213, 90,124, 6,234, 19,107,217,111,163, 33,239, 51,164, - 52, 16, 16,137, 60,184,123,239,106,191,125,189,185,250,250,249,177, 24,118,210, 79,101, 20,102,106,175,186,163,185, 85, 83, 34, -116, 72,200,213, 76,205,192,213,177, 97, 18, 8, 25,217, 12,116, 50,205, 22,127, 21, 5, 98,171,138,136,203, 57, 0, 44, 20,173, -190,197,159, 10,110,132, 14,144,152, 23,225,167,185, 19, 25,184, 43, 3,251, 77,131,218,214,128, 14, 68,104,228,161,161,142, 52, -155,104, 33,212,112,137,182, 49, 11,183,141,143,101, 7,110, 89,228, 96,189,202,196,142,222,117, 29, 33,231, 36,196,148,133,115, -206, 41,165,204,148, 82, 26,186,174,207, 34, 57,245,169, 99,132, 68, 57, 15,114,116,120,112,251,240,246,193,193,193,122,189, 62, -188,125,255,232,206,157,225,240,136,136, 9, 28, 69,144, 0,220, 25, 81, 65,214,183,239,125,120,251,238,135, 63,252,201, 63, 28, -183,175, 95,159, 28,159,188,250,250,155,111,158, 60, 63, 62, 61,191,120,117,118,122,121,189,119,132,121,182,169, 20, 97, 1,194, -156,123,119, 23, 38,164, 20, 51, 91, 92,104, 37, 45, 51, 16,177,173,206,144, 98, 79, 14,170, 72,158, 57,133,209,205, 76,213,156, - 88,124,185, 71, 9, 80, 81, 17,161,170,118, 76,229,166,114,132,155,204,180, 38,243,105, 46, 24,144,246,203, 17, 87, 20,127,144, - 56, 17, 35,160,161,241, 2, 59,107, 34,108, 4, 36, 86,117,108,190,249,229,224,109, 53, 66,192,194, 12,200,220,145,136,200,157, -136,213, 20, 35,198,129, 66, 56, 0, 75, 62, 51,194, 82,177, 66, 76, 26, 33, 14,254,133,189,212,154, 77, 82,117, 83, 67,161,160, -249, 91, 84,252, 30,182, 9,115,211, 24,204,195,194,112, 12,218,157,149, 95,243,185, 97, 24, 76, 5,208, 48,216,173, 37,242,173, - 85, 35,186, 58,150,188,216,134,103,180,148,219,132, 68,137, 1, 73,188,153, 9,182,101,183,215,233,122,183, 21,244,101, 76, 14, - 75,252, 70, 0,228,201,209, 17, 12,144, 1,151,134,169,153,230,220, 98,242,142,238, 22,123,232, 72,218,141,185, 64,155, 97, 44, -198, 49, 95,246,183, 55,124,207, 88,130,132,228,104, 73,224, 0,140,189,136, 47,152,119, 35, 22,104,161, 33, 13,152,215,158, 1, - 4, 4, 6, 7, 98,116,173,199, 39,215, 63,252,233,111, 15,119, 31,174,250, 92,139,190, 58,121, 89, 38, 69,132,163,195,161,148, -233,233,139, 23,187,235,253, 56, 77, 87,227,246,242,250,250,104,189,126,248,198,131, 59,135, 7,251,253,254,197,233,201,203,211, -243,147,215, 23, 93,206,127,247,167,159,220, 59, 56, 82,240,195,163,213,126,156,213,180,204, 90, 74, 65, 82, 85,141,184, 2,117, -173, 85,205,157, 8,187,220,101, 36, 15, 39,155,233, 60,207, 76,120,180, 94, 11,179,169,137, 36, 98,208,170, 83, 45,211, 56, 93, -239,247,132, 88,171, 42, 56, 91, 37,130,185,204,211, 52, 3, 26,144,247, 34,232, 56,107, 85,208,134,137,212,226,140, 64, 84,117, -222, 92,143,199, 39,151, 87,219,253,126,156,255,167,127,246,191,156,156,158, 61, 63,126,241,254,219, 15,227,227,119,112, 39, 74, - 57, 25, 68,150, 39,181,101, 82,232,206, 12,129,252,229,233,233,111, 60,124,147,136, 47, 47,175,242,189,148, 83,239,104,102,138, -169, 99,128,219, 71,183,159,203,241,245,126,191,234, 58,145,212, 49, 5,247, 53, 46,250,142,217, 28,132,128,209,185, 97, 84, 85, - 29,200, 93,132, 7, 64,187, 70,110,205, 46,248,194, 41,137, 94,186,120,101,194, 0,153, 0, 3,170,169, 59, 47,143,113, 20,250, -204, 84, 76,115,146,162, 10, 72, 67,215,177, 81,173, 58,214,232,153,221, 28,246, 69,117,154,137, 57, 37, 62, 61,219,140, 58,143, -227,254,225,189,219, 66,180,159, 13,152,195, 0,172,209,248, 25,104,244,194,140,170,234,139,121,123, 73, 6, 3, 70,182,162, 90, - 53,158,200,198,127,105, 51,220, 70,196, 6,196,176,147,154,153,186, 3,130, 32,128,129, 9,153, 91,117,133,152,131, 53,220, 0, -182,199, 31, 17,129,220, 26, 90,203,188, 90, 83,112,128, 69,166,129,187, 66,251,209, 54,130, 9,185,215,152,119, 48, 16,185,186, -147,215,170,100,147,187, 79,137,173,154, 1,133,140, 72, 8,114,151,221, 60,167,212,117, 57, 19,163, 96,206,194,200, 41,167,195, -174,123,231,237,183, 15,135,213,106,245,108,189,238,239,220,186,211, 13,107, 36,202, 34,135,119,110, 57, 80,151,123, 3, 12,232, - 30, 16,211, 48,188,241,240,221,187,111, 62,252,232,163, 31,150,185, 78,243,126,183,219, 95,188, 62,127,252,252,233,167, 95,124, -241,197, 55,223, 60,123,117,122,252,250,226,122,183, 19,102,160,148, 26,176, 16,152,154,191,136,136, 69, 88, 43,168, 41,132, 50, - 31,193,204,139, 27, 58,144, 16,133, 87, 42,138, 62, 91,236,176,161,172, 65, 49, 51,130,160, 11, 44,217,198,208,170,228,152,146, -235,175,165,218, 7,197,123,249, 3,194, 66, 36, 30,194, 73, 71, 53, 88,142,241,184,197,137,192, 25,160, 66, 59, 56, 98,216,203, -240,173,186, 15,193,209,226,172, 3, 70,202, 33,226, 36, 22,166, 90, 45, 94,115,116, 52, 11,247,246,141, 35,251,219,168, 59,140, - 69,180, 47, 81, 78, 26,195,105,240, 82,145, 25, 17,136,200,156,209,212, 92,137, 56,198, 45,237,225,143,105, 53, 81,153,103,180, - 16, 53,199, 62, 3,137, 28,153, 24,216,209, 66,197, 98,109, 33,172,104,228, 64, 81,131,136, 51, 88,109, 30,134,200, 23,138,114, - 36,224, 80,142,136,216, 37, 46, 53, 11,134,174, 31,221,111, 28, 76,136, 21,130, 91, 76,192, 11, 39,164, 93,175, 28,183,119,216, - 64, 23, 28,204,205,185, 30, 50, 35, 13,208,102,171,181, 23,175,240,194, 25,110,158, 24, 64,189,249,118, 1, 91,234,222,242, 47, - 32,242,183,146, 75,183,112,163, 33,144, 33,160,105,115, 83, 51,191,124,254,226,171,207, 63, 51, 83,113, 31,199,169,214,130,238, -146, 8,220,119,187,237,230,242,122, 28,231,203,237,213,102,123,141,140,247, 14, 15,205,233,233,241,241,151, 79, 30, 79,115,185, -216,110,215,185,251,248,253,247,238, 28, 30, 34,154,186, 58,227,197,197, 70,213, 92,157,146, 0, 82,128, 97,231, 90,204, 60,177, - 8,161, 16,119, 93,214, 82,118, 58,153,170,171,179,240,122, 88,117, 93,103,165, 24, 57, 33,151, 58,142,251, 58,205, 99,228,245, - 0, 54,117, 1, 17,120,141,139, 29, 36,177, 57,205,117,222,205, 5, 52, 52,224,144,144, 89, 72, 59,158, 13,204,212,198,250,242, -197,233,197,126,234,251,204, 5,254,175,127,241, 47,175,199, 93, 74, 93,164,159,131, 90,173, 22,225,181, 34, 2, 64, 85, 39,116, -183, 82, 49, 11, 16,105,173, 36,124,181,223,191,190,236,110, 31,221,121,125,177, 89, 13, 59, 97, 97,166, 66, 69,152,114,234,186, -110,120,248,224,193,215,143,159, 48,179,169, 18, 83,169,102,170,125,223,205,115, 37,193, 62,201,110,138, 97, 74, 19,163, 97,208, - 69, 84,153, 19, 34,104, 40,207, 72,204,107,128,244, 26, 31,196, 76,114,210,170,145,170, 28,114,250, 69, 21,219, 26,222,128, 6, - 19,139,227,184, 74,121,232,147,161,105,197,162,213,145,209,189, 79, 57,110,212,170,182,219,143,171, 85,198,153, 9,184, 79,137, -144, 83,132,201,123,244,232,224,230, 70,102, 78,212, 4,121, 81, 40,121,172,242,111, 50,208,181,106, 56,122, 72, 4, 0, 66,165, -218, 98,146,205, 4,145,137, 24,201,138, 45,128,105, 96, 68, 55, 37,103, 87,195, 86,228,199,105,109, 77, 70,141, 96,238, 73, 0, - 57,182, 87, 65, 28,160,136, 43, 8,242, 54, 32,161, 87,119, 87,211,100,169, 77, 62, 23, 85,134, 55,168,113,204,113, 99,243,228, - 72, 8,136, 93,146,170,170,128, 86,109, 59,142, 90,175,182,211,180, 26,186, 44, 41, 47, 96, 99, 78,242,234,242,242,232,224,160, - 75,233,160, 31,134,161, 95,119, 29, 11,221,191,125,235,224,214,109, 34,236,146, 0, 98,151,250,156,187, 24, 3,113,202,204, 29, - 37, 74,195, 32, 93,119,120,116,255,205,135,239,124,244,163, 31,255,131,127, 80,231,221,180,219,111,159, 62,123,250,245,227, 39, - 95,126,253,245, 55, 47,142,175,182,219,215,181,186,187, 97,198,132, 26,200, 26, 34,206,168,147, 17,199,218, 18,169,197,211, 57, -179,152, 85, 67,170,106, 66,196, 28, 2, 41, 93, 94,111, 16,162,212,102, 96,112, 83,190, 81, 4,145, 46, 9,246, 1,196, 37,118, -112, 35, 34, 97,177, 80, 97, 57,123,140,188, 52,150,122,214, 97,131, 25, 68,245,233,196,228,132, 81,189, 3, 32,160, 4,186, 22, - 1, 24,133, 89,139, 1, 57,146, 19,129, 26,131, 23,102, 49, 3, 16, 38,231, 68,216,231, 38,115, 55,143,181, 66, 99,116, 52, 46, - 51, 58, 88,117,215, 32,162, 99, 91,192, 44,203,102,115, 83, 5, 52, 68, 2, 74,160,170,170, 81,164, 54,105, 80,252, 5,221,146, -112,220, 32,182,120, 70, 90,202, 51, 56,218,162,200, 97, 49, 85,138, 28, 34,179, 24, 28,198, 93,225, 24, 33, 12,128,136, 5,148, - 67, 0,187, 92, 31,193,247,149,245,221,195, 58,215,113,179, 71,196,192, 36,128, 27,183,240,140,232, 84,154,200, 13, 22,201,123, -168,153, 2, 13,131,205,142,234, 45,124, 47,106,243, 26, 60,184,176, 73, 55,134,160,171,135,139, 49, 48, 95,120,131, 79, 10,210, -100,171,191,194, 7,143,208,128,200, 55,116, 24,104,179, 26, 11, 4, 10, 32,226,126,115,125,252,252,169, 86, 69,172,106,213,205, - 16,172,206, 94, 74, 45,102,251,121,188,218,237,199,105,116,176,213,208,151, 82,207, 55,155,171,253,184, 94, 13,101,174,143,143, -143, 39,131, 63,250,228, 67, 64, 58,190, 60, 39,167,148, 19, 35,245, 57,185,233, 88,103,155,125, 42,197,219, 42,136,134,156,135, -174, 43,106,106,117,183,221,207, 86, 72,128, 80,242, 32, 57,229, 68, 56,151,169,148, 50,141,213,138, 78, 58,107, 13, 14, 6,230, -212,105,173,165,204,204,196,204,197,171,112,118, 47,227, 56, 79,117,174, 85, 17, 97,189, 90, 29, 12,195, 92,234,108,238,230,197, -204, 84, 95,159,190,238,144,179,164, 78,212,213, 16, 80, 36,117, 41, 1, 81, 51, 3, 4,235,217,125,183, 31,133,168,150, 50,215, -106,110, 40,204,200,194, 50, 53,113, 11, 60, 61, 62, 59, 90, 31, 14,171,238,252,114,219,167,180, 94,173, 85,235, 92, 40, 73, 7, -238,247,238,222,125,247,209,219,199,167,175, 21,208, 1, 59, 78, 8,128,238,177, 91,131,182,238, 64, 66, 4, 97, 48, 51,183,196, -100,230,142,150,153,139,185,129, 86,171,241,248,234, 66,139,117, 38,115, 18, 65, 53,171, 75, 15, 26,126, 63, 88,102,220, 40,136, - 37, 18, 34,220,201, 16, 41, 17, 87,179,102, 72,161, 8, 99,194,166,215,174,154,186,110,154,119,234,174, 21, 10, 20,171,166, 4, - 64,177,105, 4, 38, 18,135, 8,211,136, 84,171,230, 20, 5,196, 82,227,204, 39,166, 46, 49, 23,186,145, 68, 56, 56, 11,235,108, - 11,213, 46,102,235,224, 8, 66, 56, 2, 16, 2, 35, 26, 18, 50,105, 8,100,137,106,113,117, 75,128,205, 42, 25, 96, 62,184,129, -158,106,116, 49, 22, 11, 60, 71,141,155, 61,218,114,103, 39, 4, 96, 36, 54, 87, 0,243, 86,176,162,186, 81, 72,246, 16,208,189, - 20,165,174, 11,195, 78, 41,181,207, 93, 20,122,227,126,175,106, 57,149,174,116,137, 60,172,173,175, 95, 95, 15, 67, 98,230,131, -213,208,231,110, 53,116, 73,228,214,225,193,157,195,195, 62,165,174, 19, 71,114,247,149,164,220, 15, 93, 39,125,215, 69,130,121, - 30,134,190,235,115, 55,164, 97, 69, 64, 34, 57,247,235,225,240,214,155,111,191,247,251,191,231,227,188,127,125,118,114,113,254, -250,155,103, 47, 94,188,124,249,242,228,244,248,236,236,106,179,121,125,225,165,236,212, 98,240,228,140, 40, 44,169,203,228,100, -160,204,226,213,129, 49,165, 16, 46, 97, 76, 61,200, 73,162,130, 69,208,160, 98, 85, 15,201,184, 35, 56,163, 16, 33,222,156,148, -216, 6,141,156,152, 82,204,236,147,128, 99,228,140,138, 27,128, 5,214,165,141,224,218, 49,100, 4, 80, 45, 66, 16,113, 65,235, -183, 84, 33, 14,212, 1, 34,147, 83, 36,168, 24,180, 48,160, 37, 0, 26,137, 57,154,146,248, 36,189, 17,211,252, 91, 94,222, 50, -123, 8, 15,135, 55,232, 70, 20,168,182,172,135, 45,194, 34,220,108,201,188, 1,143, 28, 35, 8, 26,200, 50,109,111, 14, 76, 7, - 7,157,205,204, 49, 81,168,113,163, 53, 69, 4,183, 74, 30,191,247, 6, 90,110, 14, 24,254, 5,154, 43, 32, 88,153, 17,193,140, - 41, 5, 79,193,101,119,177, 13, 3, 28, 34,130,105, 36,149,196,109,131, 16,131,255, 54, 92,251, 53, 86, 79,188,199,205, 1, 17, - 39,178,171, 7,149, 0, 0,129, 3, 29,137, 13, 44, 19, 63, 8,162,120,226, 33, 92,104,128, 8, 12,168,109,207, 0,238, 90,221, - 20, 89,190,253,180,252, 6, 93, 11,241,116,226,146,124, 51,237,230,147,147, 19, 32,201, 93, 6, 69,238,169,168,215,185, 34, 22, - 36, 52,199,162,142, 68,204,220,231,110,154,103, 96,239,251,225,244,226,242,114,187,219,108,182, 36,240,198,209,173,205,245,150, - 88, 68,196,217,124,154,170,218,118, 2, 68,210,218, 2,121,145, 96, 37, 29, 18, 26,216,245,254, 26,129,170,169,169,118, 41, 35, -115,151, 59, 70, 24,231,233,114,156,212, 52,162, 15,192,192,153,147,120, 85, 37,146, 70,183,117,212, 89, 41, 67, 45,122,113,253, -122,158, 11, 3,222, 58, 60,122,247,189,223,184,119,251,118, 41,245,108,115,241,234,252,188,130,206,181, 92,156, 95,222, 58, 88, -181,213, 94,236,117,150,129,134,154, 11, 57, 49,186, 85,226, 76, 14,102,170, 85, 99,194,166,102,213,171, 56, 71,162, 18,137, 36, - 78,140,229,114,123,253,252,228,248,157,183,223,190, 44,219,221, 60, 83, 78,107,238,180,206,227,180,207, 57, 37,150,239,191,247, -221,237,126,188,184,188,156,230,145,192,110,193, 42,167,116, 53,142,153, 57,196,146, 55,246,110,119,247,170, 55,220, 40, 68,200, -132, 45,100,162, 69,240, 53, 98, 9, 5,179, 36,202,177,168, 99,131,161,136,141,221,204, 44,130,236,168, 85,205,193, 16, 82, 34, - 32,161, 14, 89,204,133, 41,115, 82, 87, 68, 87,243,106,218,101,145, 44, 10, 78, 68,196, 80, 74,132,211, 57,120, 9,197,158, 33, - 16,177, 87,195, 20,155, 93, 32, 2,245,216,232,135, 20, 27,192,193,153, 19, 75,164,136, 48, 74, 76,127,171, 27, 19,153,155,131, - 23,179,158,217,188, 70,208,139, 24,168, 42, 19,183, 27,193, 20, 56,155, 87,211, 10, 36, 49,209,173,170,109,236,184,240,175,137, -176,128,130,131,106,149, 76,139,100,141, 28,136, 17, 5,161, 88,179, 33,162,121, 27,129,162, 87,135, 68,225,243, 35, 68,119, 6, - 5, 83,111, 95, 90,213, 74,100,153, 45, 19, 75, 6,140, 19, 86,171,169,151, 90, 38, 53,187,190,222,170, 25, 19,231, 36,125,223, -173,215,253,209,106,213,117, 89, 56, 9, 17, 51,136,228,117,215,229,156, 86, 17, 47,147,250,190,203,253,144, 15,214, 7,125,223, - 15,253,106,181, 94,165,174, 79,221,192,210, 3,226,157,123,111,220,127,240,157,247, 63,252,100, 26,199,113,119,181,185,188,184, -186,218, 28,159,156,158,156,158, 60, 59, 62,254,230,249,139, 39, 47, 79, 46,174, 54,165,214,237,110,159, 57, 49,147, 66,101, 14, - 57, 14, 7,124, 5,219,110, 15,189, 49, 46, 67,127, 78,138, 26,178,200, 24,149,196,145,178,144, 12,155, 24, 5,155,150, 37,188, - 58, 9,200,201,129,156,140,221,205, 57,164, 60,208, 2,153, 17,145,208,204,129, 17,190, 69,151, 91,203, 42,114,176,144,244, 45, - 27,203, 27, 90,106,219,236, 82, 98, 38, 2,243, 72,121, 38,150, 80,140,152, 41, 56, 90, 91,177, 70, 82, 4,224, 13,181, 35, 6, - 19, 55, 82,251,208,132, 47,248, 28, 34,178, 16,129, 34,186,214,182,169,109, 31,162,182,185, 76,252, 62,111,134, 4,111, 2, 83, - 95, 94,124, 69, 98,106,224,174, 5,248, 5, 16,185,122,181, 42,130,155, 46,162,166,136,214, 0, 7,112,209,106, 20,195, 37, 92, -176, 48,180, 28, 39,222,210,164, 2, 17,140, 68,225,118,134,101, 85,218, 70, 43, 17,176, 4,213, 33, 88,130,140, 55, 7,120,211, -201,196,120,201, 99,167, 26,147, 28, 6,212,134,255,245, 8,237, 8,141,119,131,145,184, 57, 96, 29,175, 92,146, 72,231, 55, 2, -169,182,241, 37,160, 52,239,183, 73,100,125,239,222, 52,207, 90,107,153,166,157, 93,237, 71, 69, 65,159, 21,180,170,214, 32, 13, - 37,102, 7, 66,171, 67,159,235,110,122,244,246,131, 62,115,151,251, 44, 60, 77,243, 56,151,106, 51,115, 78, 57,205,251,218,247, -195,208,247, 90,138,185, 35, 19, 49,109,182,219, 37, 48, 69, 87,121,224, 46,166,124,224,174,251, 82, 29, 12, 9,202, 84, 0,176, -239, 18, 75, 42,181,154, 25, 90,100,140,213,162, 69, 40,153,218,229,118,156,230,249,246,173,195,239,127,239,253, 55,111,221,149, -148, 46,247,211,171,227,227,203,237,102,179,189, 42,197,166, 82,246, 87, 87,155,203,203,187,183, 15,135,174,171,181, 76,181,180, -232,187,229,165, 96,226, 68,130,196,179,106,164,111, 2, 6,143, 73,220,247, 92, 17, 40, 98,179, 16, 42, 40,132,159, 13, 94,190, - 58,189,119,235,206,186,239,174,174,119, 93,150, 34,210,177,204,117, 70,132, 36,169, 75,221,131,123,247,254,147,127,248,159,253, -241,223,251,251,255,213,127,253, 95,188, 62, 63,145,212,215, 90,135,156,106, 64,161,193,213, 13, 44,208, 84, 64, 12,138,206,232, -213, 61, 17,177, 51, 1, 86,116,138,222,144, 22, 51,155, 80,228,205, 57,186,106,136,102, 49, 20,238, 65, 46, 55, 51, 32, 69, 4, - 13, 34,141,147,106, 93, 13,171,237,126,118,130, 33,165, 89,177,130, 18, 97, 66,226,196, 89,114, 45,102,106,166, 33,211,141,238, - 49,170, 61,114,112,171, 26,240,103, 97,174,181,170,129,214,146,115, 71,109,127,132,224, 80,212, 56,156,136, 6,206, 65, 89,112, - 6,172, 53,198,179, 70,200, 93,162,185, 54,227,191, 11, 23,111, 29,166, 5,147,133, 16,212,133, 25,162,111,136, 0, 5, 98,104, -142,141,118,159, 81, 37,245,133,115, 27,228,164,208, 23, 51, 54,215,163,153, 35, 84, 64, 84,232,144, 50, 10,103,154, 75, 13,131, - 96, 80,172,188, 56, 13, 24, 9, 59, 49, 40,176, 54,110, 38, 0,116, 50, 50, 42,174, 45, 39, 25, 32,188, 72,101, 46, 51,149,113, -242,203,171,171,241,185,178,208,173,131,245,122,181, 10,128, 1, 49,247,194, 93,151,135, 62, 53,205, 14, 19,139, 28, 30,172,135, - 46,175,186,238,112,189, 94,173, 86, 7,171,129,115,150,212, 31,172,215,253,234, 64,186, 62,165,238,240,246,189, 97,125,120,175, -206,143,222,253,174,187,215, 50,109,206, 47,174,182, 87,155,203,205,229,245,245,243,151,199, 79, 95,157, 94,109,183,175, 55,155, -253,118,187, 25,103, 33, 20,100, 71, 20,145,106, 32,238, 8,145,161, 6, 11,223,209, 17,113, 65,149, 52,195, 14, 52,209, 28, 2, - 27, 53,137, 54, 2,139,171, 18,135,123,147, 56, 33, 2,150, 18,148,164,118, 48,248, 34,225,128,165, 64,140,227, 71, 23,225, 75, -164,241,181,172,149,144, 12, 68, 59,217, 34,206, 61,142, 40,228, 8, 47, 77, 45, 74, 58, 86,191, 65,196, 70,110,171,226, 80,151, -184, 44,147,155,106,142,136,236,145, 19, 7,132,132, 70,214,224,187,224, 76,209,255,181,235,188, 33,144,141,220, 42, 17,180, 18, - 41,102,223,209,209,185, 52,201, 22, 18,169,133, 0, 5,102, 7, 50, 66,118,208,162, 6, 6, 70, 64,128,225,210, 32, 0, 34,116, -226,224, 57, 33,204,210,102, 42,209, 3,112, 3,202, 0, 49,122,203,217, 36,108,223, 26,180,242, 25,221,212, 1,208, 90,253,222, -174, 77,102, 15,148, 67, 12,214,153,150, 14,107,233,131,161,221, 78, 49,127, 9,132, 66,195,218, 52,166, 4, 53,228,100,236,164, -106, 81,171,182, 87, 62,200,141, 95,136, 8, 10, 36, 84,139,167,188, 62,184,125,247,155, 47, 62,123,246,236,233,249,249,185,187, -139,228,213,170,235,242,192, 34,110, 70, 76, 73,132, 66,187, 35, 12, 58,129,217,237, 91,183, 58,217, 85, 55, 53,155,166,113,158, -209, 0, 18,137,112, 7,110,106,154, 36,153,217,110, 63, 1, 57, 19,215,121,218,110,183, 14,216,229,220,137, 56,186,186, 78, 69, - 17,208, 85,171,107, 38,174, 90,186,212,203,225, 26,129,153,161,206, 37,206,146, 18, 28, 49, 7, 83, 43, 84, 14,111, 29,125,252, -206,163,223,252,209,143, 31,189,243,206,241,139,151,191,248,244,211, 95,126,241,249,102,179, 27,231,113, 46,179,153,109, 54,155, -121,156, 51,147, 57,198,220,198, 84,139, 90,202, 9,205,113, 66,106, 24,174,176, 9,144,185, 86,211, 64,187, 84, 43,128, 14,106, -200,136, 72,174, 86,230,226,234,156,155,166,202,205, 94,190, 58,121,247,157,239, 76,165, 94,110,182, 4,168,238,104,190,199,253, -225,193, 97,146,244, 71,127,248, 31,253,227,255,244, 63, 63, 56, 90,221,187,119,255,213,171, 19, 17,103,192,120, 98,114, 74,212, -200,245,128, 72,161,252,142,221,187,171, 11, 83,206,201, 17,231,121, 90,128, 29,206, 8, 4,192,142,138, 55,251,164,120, 39, 8, - 92,205, 65, 40, 64,129, 52, 87, 87,173, 96,110,100, 76, 4,238,243, 92, 0,161,134, 11, 24, 80,213, 8,208, 69,146,100,166,197, - 1,143, 46,140,251,192, 93, 47,189, 75,248,230,144,192,162,136, 48, 15,171,214, 92, 52,158, 76, 66, 68, 66, 85,117, 2, 20,172, - 65,113,137,238, 3,193, 99, 15, 10, 4, 26,188, 12,174, 22, 53, 50,128,213,196,157, 85,171,165, 32,226,220, 18, 21, 20, 41,153, -107,109,146,225,118, 6,223, 56,119,149, 21, 35, 50,199, 12, 13,147,224, 52, 53,246,121, 83,211, 44, 37, 61,160, 58,139,187, 33, -179, 56, 45, 0,118,114,196,128,110, 18, 71,120,100,155, 55,187,153,171,115,130,132,172,168,141,224, 73,139,193,144,212, 28, 48, - 16,160, 12, 54,234,118, 28,175,182,123, 52, 63, 90, 13,196, 36,140, 41,103, 2,226,196, 57,229,156,169,151,156,115,151, 19,119, -146,250, 85,238, 36, 31,172,250,245,122,117,216,245, 67,223,229,174,203, 93, 62, 24,250,156,187,220, 13,171,131,117,202,125,215, - 13,136, 60,172, 15,134,213,193, 3, 2,175, 90,107, 21,226,177, 76, 4, 54,207,243,171, 87,103, 63,255,236,211,111,158,189, 56, - 62, 61, 27,119, 99,213, 98,176,159,102,245, 27,106, 55, 0, 16, 8, 18,170,107,192,199, 57, 14, 28, 84,111,117,234,205,120,208, -192,123, 38, 5, 39,226,200,133, 54, 53, 53, 71, 0,117,207,204, 69,153,200, 35,212,138, 48,166, 46,173, 83, 36,112, 14, 5,162, - 6,134,207, 9,176, 58, 80, 67,236,128,187, 99,140, 98, 56, 56,225, 97,202, 52, 55, 11, 45, 15,186,183,143,213,205, 85,137, 72, -131,150,186,212,236, 0, 26,118,132, 0, 48, 48,177, 27,186, 43, 33, 3,130, 86, 69, 71, 5,131, 8, 11,114, 55,181, 70,111,113, - 3, 48, 87,138,216, 80, 47, 14,230, 16,224, 48, 48, 68,177, 8,222, 19, 6, 51, 48,192,132,209, 70,132, 82,220,212, 41, 42, 7, - 67, 17, 2, 51,115,136,177,146, 91,113, 5,105,125,135,108,161, 0, 0, 32, 0, 73, 68, 65, 84,184, 71, 67, 96, 8, 25,255,146, - 59,218,238,171,112,241,134,176,183, 5,151,198,172, 81,218, 20,101,193,124, 59, 16,134,101,180,141,234,205, 34, 79, 36,196,141, -109,187, 26, 94, 40,186, 49, 77, 53,197,170,135, 44, 30,150,180, 63, 0, 39,202,253,161, 3,164, 44,193,169, 3, 66, 20, 4,242, -105,103,132,155,191,253,229, 95,254,242,151,159,238,166,130,177,234,169,117, 26,199, 59,247,243, 81,215, 87, 45,243,172,251,237, -110, 44,101, 63,207,166,181,168, 10,194, 52, 77,115,173,196, 56,205,138, 14,194,140,132, 68, 70,146,136, 72, 68,194,184, 73,140, -106,186,185,190, 38,162,131, 97, 93,180,146, 67, 68,242,100,118, 9,178,146,164,158, 83, 74,121,158,107, 18,156,171, 86,181, 90, -235, 92,234, 60,205,234,150, 72, 50, 34, 39,118,164,247,222,251,240, 63,248,147,255,240,141, 7,111,237,246,151, 47, 30, 63,249, -197, 47,127,241,229,227,167,103, 23,175,167,185,160,112,153,117,183,219,158, 93,108,214,125, 71,196, 28, 82, 10,119,162, 48, 27, -169, 46, 20,190, 22,113, 8,110,106,204,132, 8, 66,194, 40,128, 40, 64, 34, 50,142, 83, 78, 20,241, 87,234,234,158, 92,221,221, - 88,120, 42,243,225,106, 93,212,198, 89,207,183, 87,105,191,251,147,191,247, 31,167,126,248,238,187,239,223,190,115,239,224,240, -246, 87, 95,253,226,127,252, 31,254,187,191,252,229, 95,221, 57, 60, 50,115, 53, 51,245, 26,167, 10, 84, 12,188,172,171, 8, 16, - 65, 80, 3,147,176, 35,152, 26,145, 44, 10, 89,119,192,112, 66, 19,179,215, 86, 65, 17, 71,178,161, 46,162, 18,104, 5,105,195, - 78,169, 27,238,231,210,231,100,142, 86, 21,208, 74, 53,228, 6, 13,159,107,217,108,118,111,220, 73, 57, 9, 32, 2,145,151, 26, -233,198,194,172,106,136, 48,171,129, 25, 33, 99, 91,251,248,130, 11, 53,128, 8, 64, 64, 55, 80, 13, 7, 99,243,210, 73, 34,100, -210,217, 57,228, 4,228,197,116, 81,241,135, 42,215, 17,145, 57, 19, 41,134, 92,164,217,158, 2, 71,130,112,147,156,237,100, 26, - 28, 45, 74,146, 56,161, 85,109,229,155, 89,181, 80,230, 52,203,247, 66,206,114,100,131,136, 79, 67,215,246, 69,241,235, 13, 40, -101,213, 90, 4,168, 25, 3, 84, 51,199,136, 60, 17, 39,180,234,140, 75, 10,230,141,158, 97, 9, 68, 13, 7, 37, 19, 17, 97,176, -131,133, 41,214,197,251, 50,219, 8,136, 59, 70, 22,225, 46, 39, 4, 39,150,190, 99,230,212,119, 41, 49,229,212,173,215,253,144, -211,208, 13,183, 15, 15,186, 46,247, 57, 31,172, 6, 78,105,189, 26,134,190,207,221,208,119, 93,183, 90,231,188,146,148,136,229, -104,125, 32, 41, 59,194,155, 15, 31,253,224,163, 31, 77,227,118,115,113,113,177,217,108,206, 47,158,159,157,188, 58, 62,249,230, -213,203,205,230,234,244,252,178,204,115, 53,219,205,197,171, 1, 97, 18, 70, 71, 98, 34, 66,172,230,130,168, 26,252, 74, 4,226, -112,158, 70,222,179,147,186,167, 80,112, 51, 21,179, 80, 50,129, 17, 48,154, 59, 82,236, 91,155,236,208,150, 31,203, 92, 35,163, - 77, 0, 1,136,110,226,197,224, 6,186,139,180,200, 79, 24, 29,141, 26, 60, 44,216,149, 55,250,118, 68, 68, 23, 64,116,171,238, - 64,204,170, 10,193,250, 1, 70, 2, 80, 5, 52, 3,250, 86,216, 77,168, 85, 9,128,152,151,104, 57, 0, 55,116, 39, 76, 49,221, - 5,141, 23,131,150,207,207,220, 75, 68, 52,186, 26, 2, 1, 51,184,130, 57, 49,152, 49, 58, 80,242, 27,109, 88, 51, 20,169, 26, -152, 1, 3,144, 99,149,166,114, 33, 92,200,201,112, 3, 10, 67,230,136,165, 14,161, 17, 18, 96, 83, 70, 54, 36, 27,186, 69,104, - 71,236, 71,130,157, 9,234, 36,172,177,206,130,197,217,122,131, 31,139,196,154, 24, 93, 49,199,206, 1, 35,199,104, 65, 7, 99, - 11,188,162,200, 21, 88,210, 55,226,166, 68, 47, 58,207,229,171, 95,254,249,167,159,125, 41, 57,247, 4,243,190,140,211,140,224, -132,124,241,228,235,187,135,183,193,253,197,233,235,253,180,119,135, 98,150, 8,205,125, 54, 80, 53, 20, 40, 69,193,189,235,134, -148, 18,177, 18, 50, 1, 22,213,105,156,162, 6,170,181, 24, 88,159, 7, 97,217,207,163,186, 77,134,185,203, 89,168, 86, 29, 58, -102, 22,117, 21, 17, 53, 45,117,222,237,170,130,154, 66, 45,165, 84,251,224,251,223,253,173,223,252,145,142,219,191,249,213,151, - 83,165,223,253,221, 63,248,232,147, 31, 51,210,217,201,139,175,190,250,252,233,211,231, 79,143, 95, 94,236,182,213,161, 2,142, - 87,215, 39,167,103,171, 46, 51,161,144,180, 36, 20, 55, 93,166,222,145,244,118, 99, 3, 23, 22, 68, 48,211, 36,105,201,189, 83, - 68,209,102,221,142,209, 37,249,162, 77,165, 56,238,156, 14, 86,221, 63,254,147, 63,250,223,255,159, 63,253,236,139,167,136, 7, - 63,251,187,127,244,201,143,127,231,254, 27,111,237,174,183,251,253,246,222,131, 55, 51,119,227,180, 19, 20, 71, 84,181,170, 21, -153,176, 26, 82,152,214,113,183,223,229, 36,224,216,155,185, 97, 16,157,204,129, 19, 89,243,139, 71,119,198, 0,198, 76, 6, 77, - 89, 28,247, 19,199,112, 48, 6,163,241, 73, 39,178,201,213, 52,150, 77, 99, 41,136,126,152, 86,202,232, 32,230, 74,206,153,211, - 52,239,107,181,106,181,162, 43,128,171,163, 66, 81,141,113,106,112, 75, 56,114, 95,155, 30, 43,244,137, 22, 98,118, 98, 1, 44, -129, 26, 39, 65, 7, 99, 36,116,143,180, 76,211,170,213,180,106, 16, 2, 29,221, 9,213, 53, 11, 49,146, 98, 5,160, 33, 9,163, - 42, 32, 58, 71, 73,238, 0,228, 6,238,156,196,172, 78, 83, 64,146,111,194,174, 9, 48, 60,158,205,243,101, 65,209,247,160, 50, -196, 10,177,233,230, 85,137,164,169,201,219,214,203,129,227, 35,112,207, 18,147, 69, 99,100,101, 4, 66, 7, 19,128,182,164,115, - 44,214, 64,205,140, 60,107,137, 31, 73,164, 25,183, 9,130,155,182,156,202, 54, 29, 70,226,182,225, 11,179, 32, 34, 49, 76,165, - 78,243,108, 1,196,210,154, 88,152,121,189, 90,173,251,174, 75,210,119, 41,231,156,187,180,202,185,207,121,200,121,181, 94, 15, - 93, 90,175, 86,235,190, 95, 29,172,130,179,192,156,239,220,189, 51, 12, 7, 8, 88,181, 2,178,164,116,247,141,251,119, 31, 60, -240,234, 63, 1, 55, 43,227,126,156,231,114,121,117,185,217, 92, 94, 93,110,142, 79, 79, 95,158,156, 62,125,249,242,228,236,226, -244,114, 51, 78, 83, 20,240, 36,108,224,130,132,140,113, 63, 45, 14, 98,136, 67, 52,130, 62, 74,109, 3, 29, 89, 64,130, 8, 40, - 68, 11,205,133, 28,156,188, 21,150, 49,101,139,185, 60,161, 67,176,135, 90, 43, 1,156, 36,166,243,137,152,163,173,138,201,116, - 28,236, 81,217, 18,163,105,169, 21, 91,134, 93,140,237, 20,195, 0,141,232, 54, 33,176, 1,121,128,245, 34, 33,137,200,220,153, -197,205,154, 27, 3,205, 85, 23,239,127,187,140, 45,104,201, 49, 14, 33,114, 85,112, 39,116,115, 52, 68,175, 74,216,164,144, 49, -211,162,144, 57,180, 23,191, 66,176, 13, 73,192,149, 24, 0, 73,171, 11, 64, 68,153,219, 18,153,181,160, 17, 2,220, 29,195,155, - 27,121, 0,222,180, 36,141,245,182,208,194, 41, 24,165, 49, 70, 15,107, 91, 67, 70,218,226, 0,163,230,132,128, 38, 41, 35,104, - 25, 77, 77,129,182, 32,103, 17,144, 33, 46, 70, 97,160,152,221,182, 89, 63,133, 30, 73,203,171, 23,143,193,234, 84, 76,213, 18, - 17,139,168, 57, 18,245,156, 75,153,111,223,186,245,144, 96, 42,117, 30,139, 67,115,138,207,165, 78,230,104,214,173, 58, 68,146, -224, 30, 97, 50,179,221,180,179, 98,200,236,142, 14,186, 26,214,171,110,152,117,154,230,169, 86, 69,194,148, 82, 98,206, 73, 8, -153,208, 13,161,148, 58, 78, 83, 81,173, 85,193,112, 53,228,183,190,115,247,131, 31,124,240,238,163,183,223,251,238,251,255,239, -191,249,183, 63,255,244,235, 55,222,250,222,207,126,246,135,247, 31,188,113,121,121,241,252,217,227, 47, 31,127,249,248,201,243, -211,203,215,103,103,151, 99,153,183,227,212, 19,226, 60,169,106, 74, 44,115, 60,161, 45,163,188,148,138,102,136, 80,204, 40,210, -175,154,199,143, 0, 81,193, 58, 64, 8,124,107,153, 24, 33, 39,170,166,238, 1, 92,137,150, 19,130, 42, 8, 64, 85,235,195,251, - 15, 62,254,232, 7, 10,248,195, 79,118,127,231,247,254,152,152,190,248,252,231,156,153,145,118, 87, 23,127,254,239,254,197,201, -171, 87,239,127,239,123,231,155,139,221,238,218, 81, 28, 17, 84,179,112,180,212,146, 18,206, 37,120,174,166, 86,162,250, 64, 7, -211,117,119, 48,169,109,199, 17, 16,144,165, 25,152,156, 66, 1, 69, 76, 84, 66, 1, 30,203, 72,160,229,160, 9, 98, 9, 26, 48, - 83,226,100,224, 99,209,161,106,192, 43, 8, 0,128,230, 50, 19, 81, 18,206, 57,117,156,138, 22, 7, 53, 52, 4,138, 3,190, 46, -185, 64,136, 24, 2,251, 88,143, 48,161, 11, 79, 85, 83,219,103, 66, 53, 37, 64, 65,172,213, 65,160,122, 21, 16, 7, 68,161, 37, -129,202,173, 24, 51, 90, 49, 23,100, 2,175,128,224, 67, 78,157,164,125,169,204, 8, 70,137, 96, 87,141,192,213,173,106,101,100, - 38,208,200, 45, 13,205, 7,133,166,195,170, 57, 1,168, 42, 0,166, 76, 96, 80,205, 58, 34, 17,132, 57,170,127,178, 72, 91, 10, -251, 58,144, 32,155,171, 45,216, 63, 48,104,174, 40, 68, 82, 47, 20,122,208, 48, 72, 32, 35, 36,225,170,238,160, 10,102, 0,140, -210, 18,145,155,149,188,129,158,111,184,221,130, 28,125,125, 5,167, 8,146, 79,204,222,236,154,128,230,224,213,180,104, 53, 3, - 7,155,198,145, 0,153,145, 56,245,125,238,146,112,112,238, 68,134,156, 82, 74,235,190, 63, 88, 13, 71, 71, 7, 7, 67,183, 94, - 31,158,158,190, 28,134, 33,119, 67,196,115,117, 93, 30,134, 30,156,115,215, 17, 11, 33,229,213,176, 90, 31,222,190,115, 55, 8, -248,213, 96,222,239,231,105,183,189,222, 94, 92,111,158, 62,123,241,242,244,228,217,139,227,215, 23,231,199,175, 47, 94,157, 95, - 68,184,146, 26, 9, 53, 76, 90, 40,241, 19, 67, 88, 53,132, 81,136,171, 86, 68, 32,194, 20, 73, 44, 17, 70, 68,120,147, 40,198, -141, 84, 24,228, 32, 52, 0, 14, 57,166,155, 35,170, 25, 49,113,131,226, 96, 78,172, 45, 78,202, 23,134,113,171,226,131,209, 27, - 80,129, 40, 8,128, 0,140,161, 97, 65,154,218,165,229,222,185, 18,182,176, 45, 22,114, 37, 85,109,235, 99,226,112,155, 55, 91, - 41, 81,208, 67, 90, 31, 28,154, 5,111,149, 81,112, 47,181, 70,187,128,213,144, 17, 53,242,170,204, 72, 24,128, 10, 40, 35, 7, - 67,200,221, 65,136,147, 8, 17, 54,185, 15, 97,211,171,132, 69,106,129,237,199, 94, 9, 2,251, 15, 30,233, 86, 77,210,190, 88, -162,226,235,113,129,249, 68,193,190,132,143,104,148,159, 45,180,199,173, 85, 66,110, 72, 76,148,227, 94, 92, 76,128, 49,225,191, -185, 58, 29,106,160,165,219,122, 25, 9, 41,229,243,227,159, 63,126,254, 82, 29,227, 5, 51, 32, 22,234,178,152,122,159,147,100, - 70, 55, 53,216,237,103,119, 55,175,234,110, 34,100,184, 62, 76, 17, 72, 49, 77, 19, 0, 86,175,117,170,101,156, 13, 16,208, 19, -146, 8, 13,253,138, 16,175,199,136,235,116, 97, 73, 89, 82,202,137,176,186,162,186, 90, 81,245, 88,192,190,253,157,183,222,122, -235,173,119, 31,125,231,209,163,119,190,243,240, 97, 55, 28,254,249,159,253,235,255,237,159,253,175, 87, 91,252,221,223,255,251, - 31,124,252,145,150,242,226,249, 55,199,207,158, 60,123,254,242,155,167, 79,159,159,156, 92, 94, 95,143,115,241, 50,157,159, 95, -222,187,125, 68,132,130, 72,190,180, 41,110,193, 23, 71, 70, 4, 98, 96,194, 57,145, 32,230, 96,239, 50, 3, 1, 8,210,108,154, -148, 16,157,132,201,205, 13,168,125, 52,128,142,230,192,200,184, 80,176,199,185,188,247,232,157,238,246,123, 31,252,228,173, 15, -192, 95, 60,123,252,111,255,236, 95, 50,165, 7,111,126,103,191,191,250, 87,255,230, 79, 9,169,147,180,234,134,239,190,247,221, - 95,252,226,231, 14,128,142,234,238,106,136, 52,149, 2,238,171, 46, 3, 17,152, 2,161, 56, 77, 53, 58, 80, 35,196, 94, 36, 26, - 97, 70,106, 88, 56, 52, 64,137,237, 37, 54,194,115, 32,106, 29, 1, 57, 84, 93,216, 44, 90,236,177,175,129,170,102,110,137,210, - 52,149, 74, 34,174,213,177,204,165,203, 29, 18,205, 90,201,191,165,203,198,120, 54, 56, 71,181,121,208,140,137, 67,221, 24,226, - 20,170,106, 28,118, 84, 10,148, 49, 39, 9, 9,252, 18, 44,217, 34,126,208,111,104,124,158, 4,157, 44, 92,154, 44,108,230, 99, -153, 29,169,153,196, 69,176,204, 72, 45, 36,220, 12, 12, 45,146,234, 8, 64, 29, 98,247, 83,106,141,111,187, 86, 75,137,193,201, -172,106, 85,167, 4,109,183,231, 17, 62,201, 20, 22, 9, 50,115, 64, 35, 36,213,182, 81, 32,102, 98, 14, 51,160, 3,146, 97,157, -103,179,138,144,131,222,179,204, 83, 33,117, 92,180, 68,218,178,162, 49, 50, 24,152, 35, 52, 91,174, 7, 64, 56,230, 73, 10, 30, -159,132, 81,117,227,130,232,176, 68, 77, 88,108, 29,201,201, 24, 89, 34,207, 32,165,177,214,185, 96, 53,215,221,190, 99, 41, 86, - 50, 51, 16, 49, 75,159,211,170,239, 87, 67,119,208, 15, 7, 7,195,106,232,134,110,232, 36,113,146,190,147,156,250,174,147, 62, -119, 73, 18, 11, 15,235,149,112,150,148,136,115,206,132,144, 88,100, 37,135,235,195, 59,111, 17,127,240,193, 71,228,182, 31,199, -221,118,187,217, 94,191, 62,191,184,188,220, 60,121,241,252,244,252,226,122,187, 59,191,186,222,239,167,253, 60, 86,211,162, 96, - 6,106,234, 0, 73, 8, 64,136, 82, 80, 43, 34, 30,189,160, 34,128,196,254,201, 1, 16,133,168, 90,108, 91, 64,150, 21, 46, 17, - 9,177,153,133,228, 12, 96, 33, 96, 97,155,237, 45, 27,164, 37,181,193, 35, 0,189,113,162,218,151, 3, 97,152,219,160, 5, 76, - 89,219,232,146, 59, 68, 30,113, 51,101, 0,152, 26,130, 3, 50,160, 11, 80,117,107,163, 9,102, 86,119,110,100, 98, 36,116, 69, -175,113, 90, 54,131,149,187,215, 82, 89,210,183,243,109, 10,254,170, 75, 12,175, 20,221,193,188,136, 18,152,137,199,227,205,228, -166,128, 76,139, 50,184,109,161, 27, 70,167,193,219,190, 37,138, 53,229,145, 7, 21, 18, 29,136,184,165, 43,181,214,102, 49,158, -181,196,113, 6,114, 88,240,128,113,113, 32,177,164, 28,122,136,184,139, 99,137, 71,230, 72,201,173,132, 15,243, 70,214,138, 14, -200,172,181,170, 78,183, 14, 15, 55,215,251,253,126,156,203, 92,107, 40,112,153, 5,175,167,110,232, 82, 41, 87,175,175,174,171, - 43, 90, 16, 1, 67,125,203, 72,153, 25,139,214,170, 74, 8,251,221, 56, 77, 83,117, 0,128,196,204,201, 51,115, 85, 43,101,106, - 3,100, 48, 17,202, 89,180,214,205,126, 86, 83, 65,236,251,244,230,253,187, 63,252,240,163,159,254,206,239,124,247, 7, 31,215, -105,203,156, 16,241,223,255,217,191,250,226, 87,191,122,118,124,241,157,119,222,255, 71,127,240,199,221,176,222, 92,158, 93,158, - 29, 63,127,252,228,155,103,207,190,122,250,236,197,201,217, 56,207, 86,244,122,187, 57, 90,245, 44, 40,194,166,206, 72, 36,100, -136,146, 90,190,149, 57,148, 90,197, 57, 72,167, 41,230,110,238,166,198,129, 97, 37, 12,196,146, 8,171, 66, 2,156,230,162, 86, - 1,169,170,102,136,137,135, 26,180, 66, 16, 9,126,248,209,199, 51,201,211,103, 95, 62,127,246,245, 95,252,213, 95,215,121,255, -206,219,143,142, 14,142, 62,251,244,175, 94,190,120,241,232,209,163, 97,232,137,249,173,251,111, 92, 60,120,243,236,242, 28,118, - 38,196, 69,103,145, 62,130, 39, 17,157,212,136,136,128,170,169, 16, 4,175,168,154, 38,201, 68,228,224,213,205,209,153, 57,144, - 46,141,213, 23,214,133, 24, 14,180, 16,238, 72,214,132,234,150, 76, 25,113, 50,205, 64, 76,116, 61,142,135,136, 97,106,139, 90, -136,144, 12, 92,205, 84, 45,167, 36,200, 68,162, 62,131,130,113,188, 75, 16,100,172,170, 45, 48, 20,151, 49, 35, 34,219,188,100, -196, 46,161, 81,113, 44, 38, 78, 22, 65,141,205, 53,233, 8,136,194, 30,130,238,155,228, 64, 4, 71,163,120, 81, 9,196,209,204, - 2, 69,128,134,140,130,137,104, 12,194, 53, 27,129, 25,144, 99,151,115,169, 5,192,154, 43, 31,121,154,103, 2, 72,188,100,158, - 16, 32, 48,121,147,146, 34, 2, 9,183,238,184, 41,131, 61, 2,183, 35,215, 20, 22,231, 61, 73, 66, 47,110, 74,145,167, 8,168, - 97,146, 69, 66,224, 86,183, 42, 50,123,133,136,148,111, 59,132, 26,224, 19,112, 95, 34,250,144, 48,200,230, 16, 97,120, 26,155, -191, 22, 95, 25, 90,146,224, 45,148,128, 59, 32, 18, 65, 85, 3,212,121, 42,202, 58,142,211,229,110,116,132,163, 97,117,112,216, -175,251, 85,151, 83,159,115, 78, 28,137,116,189, 36, 97,238,115, 94, 13,253,170,239,147,112,215,247,135,221,208,117,169, 27,114, - 78, 61, 49,231,174,235,187, 78, 56,115, 78, 11,225,157,214,195,122, 88,175,222,122,240,150,153,254, 12,126,199, 74,221,238,119, -187,235,237,213,118, 60, 61,127,117,118,113,249,234,236,252,213,217,217,171,215,175,167,221, 84,204,107,169, 85, 11, 0,115, 66, - 71, 23, 97, 50, 90,118,206,128,224,196,228, 8, 34, 82,107,141, 9,179,129, 5, 75,199,192,235, 52,249,162,244,178, 22, 10, 16, -138,117,108, 34,109,167,248,131, 16,151,255,211,104,198, 24, 3,108, 3,163,156, 96,137,154,102, 55,211,106, 80,193, 35, 54,189, -213,254, 68,161,186, 66, 39, 0, 36,171,222, 76,251,132,232,160, 80, 17, 82,132, 95, 70, 76,200,141,112, 62,182,236, 78, 56, 23, -195,106,204, 36, 76,106,102,166,129,110,247, 37, 8, 29,221,201, 17,205,160, 22, 89, 52,187,186,100, 34,195,146,157, 71,110,218, - 46,177, 16, 40, 45,109,202, 13, 40, 51, 56,246, 45,154,181,101,105, 69,245,111,191, 70, 60, 0, 71,242,198, 75,107,203,230, 32, -213, 97, 48, 32,144, 34,200,165, 41, 94, 91, 55, 96,203, 28,185,233, 70,155,182, 20,220,173,158,156,158,157, 92, 92, 9,128,176, -184,131,214, 49,240,126,196, 82,180,150, 93,157,199,253,229,213,182, 17, 57,213,153,129,129,164,203,128, 56,105, 85,173,227,126, - 52,247,237, 84, 45, 2, 16,136, 14, 14,214, 67,223,153,154,154,166,148, 23,153, 40,149, 82,166,105, 74, 73,134,220,191,247,238, -219, 63,253,201, 79, 62,250,232,163,219,119,239, 29,221,190,173, 36,175,158, 63,203,196,147,109,255,236, 79,255,207,207,126,241, -183,235, 91,111,254,193,223,251, 71,239,125,247,251, 69,203,217,139,167,175, 94, 61,121,241,226,213, 23, 95,125,243,245,179,103, -231,219,171,113, 63,127,231,222,157,205,197,197,181, 57,162, 4,200,218,106,204,193, 48,120,138, 45, 3, 60,254,234, 28, 98, 80, -118, 66, 9,116, 13, 68, 66,119, 24, 27, 80, 88, 70,157,106,213, 33,119, 10,174, 22, 68, 67, 68, 98,175,102,174,110,238,142,102, -112,184, 94,191,253,230, 27, 47, 30,127,250,213,151,191,124,249,252,249,135,143, 30, 12, 57,175,110, 61,156,116,126,250,252,133, -147,151,121,222, 19,247, 93, 62, 88, 29, 60,124,240,240,245,229,165,185,107,169,147,170,176, 1, 98,177,218, 33, 21,119,114, 27, -186,172,181,201,174,212, 65, 13, 4, 97,149,211,118, 42, 13,226,132, 64, 76,141,122,234, 81,190, 16, 51,151,144, 73,182, 90, 20, -153,136, 96,113, 96,151,234, 57, 57,250,126,154, 9,168, 75, 82,180, 38,226,224, 96,187,163, 32,207,141, 27,111, 49, 20,117,188, -209, 48,196, 99,103,173, 91,185, 41,120, 16, 45, 58, 60,187, 57,232,176,133, 73, 26,170, 22, 98, 81,117,171,170,234,138,142, 0, -218,158, 68,172,173, 14, 50, 0, 76,146,144,121, 30,107,173,154,136, 28, 41, 10,179,218,118,221,165,106,141,240, 38,152, 1, 29, -212,109,174,133, 0, 29, 8, 93, 37, 69,143,225,234, 96, 0, 41,164,244,230,180, 56,223,185, 49,171,188,225, 9,137, 98,132,175, - 8, 72,216,165,180,155, 39, 85, 21, 78, 96,115, 32, 6,110,118,134,170,150, 16, 42, 49, 33, 72, 64,126,192,155,218, 30,192,105, - 17,229, 47, 57,166,204,225,113, 15, 84, 26, 91,219,109, 9,136,217, 28,153,124,236,168,205,170,105,200, 24,152, 95, 37,230, 46, -231,185,106,172,171, 75, 85, 17,100, 34, 55, 45,170,103, 85,181,214,169,175,225,204,236,187,156, 18, 35, 80, 4,164, 8, 19, 17, -102, 73, 57,165, 46,167, 85,206, 41,165,126,200,235,126,232,186, 60,116,125,159, 19, 3, 96,238,250,148, 36,194, 78,186, 60,116, - 61,178, 32, 18, 75,252, 98,215,175,214,247,136,222,211, 71,115, 41,155,171,203,113,183,175, 90,231,185, 92, 94, 95,158,190, 62, -127,117,118,113,242,250,108,187,223,239,199,105,183,223, 79,181,132, 93,153,152, 32, 32,180,192, 76,136, 34,165, 22, 71,230,196, - 68, 24,254, 79,166,182,250,158, 77,209, 13,204, 9, 2, 0,185, 56, 66,233,134, 65,115, 35,233, 84,184, 33,209,199, 4,128,170, - 27,186, 57, 97,219,163, 64,139,138,197, 16, 57,199, 64,178,241, 72,109,113,252,181,165,177, 1, 16, 16, 35,178, 91,245, 27, 22, - 11,115,187,225, 27, 17,166, 69,224, 56,128, 43,104,211,222,131, 59, 88,213, 72,102, 55,231,170, 21, 93, 1, 65, 90, 77,141, 72, -204, 30,138,131, 5, 16,130,209,140, 99,172, 82, 99,120, 67,205,166,106,182,120, 86, 9, 99,185, 76,116, 67, 87, 88, 20,149, 75, - 11, 13, 10,106, 55, 94, 3,136,206, 28, 16, 9, 35,162,215,108, 94, 92,143,203,246,191, 49,229,155,133, 21, 29, 92, 45,118, 14, - 93, 63, 28, 30, 12,125,146, 59, 71, 71,166, 90, 77, 17, 96,156, 39, 36,210,106,238, 32, 41,111, 46, 55, 87, 83,205,136,197, 12, - 25, 17,180,154,237,118,251,185, 94,101, 97, 68,154,213,118,211,232, 14,125,215,221, 59,186,221,245, 9,137,208,161, 98,181, 82, -231, 82,193,161,154, 30, 12,253,155,111,220,255,248,195, 15,126,242,227, 31,223,191,127,255,240,246,209,176, 62,208,234, 70,248, -252,233,147, 97,117,132, 96,191,250,235,191,248,197, 47, 62, 61,187,216,253,224,147,223,255,248,147,159, 14,171,213,118,119,125, -117,250,242,248,213,179, 79, 63,251,252,139,199, 79,142,207, 47,199,253,126,183,219, 94,109,118,223,127,112,239,217,184, 85,112, - 32,207,194, 12, 88, 21,162, 76, 99,164, 68, 84, 98,113, 14,102,213,156,216,220, 56,110, 57,194,161,235,218, 80, 2, 80, 67,245, - 4, 22,214,205,128,189,138, 96,153, 27, 11,136,200, 67,164,133, 0,238,250,224,238,189,219,195,208,247,233,183,126,240,193,227, - 85,247,240,193,157,127,255, 55,191,120,248,189,183,182,219,205, 79, 63,249,237,111,190,249,162,212, 57,107, 46,165,100, 73,111, - 62,124,227,228,236,228,229,217,169,122,101,164, 82,212, 77, 9,160, 70, 94,135,182, 71, 55, 28,186,166, 26, 26, 62, 97,206, 82, -139, 3, 3, 48, 32,152, 35,146, 32, 2, 82, 85,107,110,212, 5,245, 7, 13, 68,228,145, 46,239,136,234,106, 36,232,110,128, 87, -227,136,216,103, 33, 67,220,207,133,137,170, 1, 16,218, 60, 71, 43, 92,172,130, 27, 19, 53,226, 69,108,116,154,154, 26, 8, 97, -154,231,185, 86, 9, 66,177,131, 87, 51, 7, 19,101, 70,195, 54,135,172, 85, 19,179,185,106, 85, 68, 39,247,190, 75,165,170,131, - 33, 80, 60,151, 72, 80,107, 29,107, 61,224,100,224,148,144, 72,204, 45,178, 40,173,214,102,161, 5,208,170,130, 75,105,239,110, -170, 10,102,166, 20,121,238,228,166, 80, 93,209,219,110,193, 91, 39,237, 13, 99, 69, 12,209, 53, 24, 58,122, 52,189, 81,231, 16, -160,112,138,156,100, 95,252, 34, 76, 64, 68,174, 26,191,221,192,137,168,106, 1, 67, 74,124,131, 89, 9,251,212, 66,124,197,152, -139, 70, 20, 30, 44,208,143,200,161,246,150,121,225,106, 10, 33,149, 10, 6, 32, 0, 53,168, 47, 55,109,191,121, 85,141, 19,206, -220, 8,254,127,166,222, 44,230,178,236,186,239, 91,195,222,251,156,115,239, 55,213,216, 53,117,117, 23,123, 96, 15,156,154,148, -154, 52, 69,137,140, 34, 89,163,165, 64,136,148,216,112, 98, 35, 1,132, 0, 1,140, 32,121,201, 75, 94, 2, 4,240,107,134,183, - 0, 2, 12,219, 72,140, 4,118, 98, 57,138, 68, 77,148, 41, 74, 28, 76,154,166, 66,182,122,238,170,238,174,233,171,250,230,239, -222,115,246,222,107,173, 60,172,125,190, 38,186,208, 15,141, 66,117,213,173,115,247, 89,251,191,254,255,223,159, 90, 51, 6, 51, - 51,139,138,136,156, 74,166, 64, 82, 36, 70, 78, 33, 16,227,106,181, 38, 98,255,252, 23, 49,245,139, 46, 16, 5, 14,125, 23, 83, -136, 41,165,141,161, 75, 41,165,232, 51, 60, 96,224, 33,117, 41,134,141,229, 50,246,105, 72,125, 23,135,152, 56,164,238,224,232, -104,127,127,255,202, 19, 79,220,188,121, 35,134,136, 76, 68, 65, 85,107, 41,165,150,211,213,122,119,247,209,201,201,225,193,209, -241,254,209,209,222,254,193,238,254,193,254,193,193,148,115, 22, 29,167,177, 40, 84,133, 72, 76, 72,204,236, 23, 52, 78, 6,136, - 49,114,206,138, 64, 70,172,136,213, 29, 49,136, 13, 17,215, 82,245,138,198,128,136, 20,218,231, 70,205, 20,104, 34, 45,145,161, -213, 99,183, 32, 70, 1,219,110,166, 21, 84,121, 59,145, 53, 71,189,103,140,212, 16,217,204,107,144,230,142,105,108,185, 78,112, -208, 77,123,117, 3,241,172, 63,178, 49,162,138,169,136, 35,108,172,250,123,165,165,141, 12, 33,152, 91, 74,125,226,249, 49,198, -165,155,239,157,254,224,125, 89,126,212, 58, 14,109,190, 71,250,128,222, 32, 60,103,152,183,230,128,179,102,126,108, 56,130, 6, - 26,155,171,187,189, 63, 93, 4, 64,230,247,137,139, 88, 98,170,128,179, 81,167,237,150, 13, 24,137, 73,106, 85,179,235, 55,158, -140,223,253,193,253, 71,143, 13,112, 49, 12, 23,206,109, 93,186,116,145, 1, 57,112,191, 92,162,232, 95,189,246,250,198, 73,175, - 96, 84,164,130,212, 92,171, 65,223,165,205,141,101,206, 50,150,113,149,167, 46,118,139,161,223, 88, 44, 76,245,232,244, 84,106, - 69, 4, 81,116,142,202,243,183,110, 62,247,212,205,151, 63,253,201, 23, 95,250,100, 55,244,211, 52,229,113, 13, 28,149,195,131, -247,223, 89,108,158,235,151,203,187,239,191,245,214,143, 94,187,115,231,222,114,251,234, 47,252,234, 47, 63,113,245,137,213, 42, - 31, 29,238,157,236, 63,122,239,189,119,127,248,250,235,183,239,222,203, 42,227,122,212, 50, 89, 21, 3,165, 16, 58, 78,135,211, - 81,201,213, 19,244,138,218,136, 69,160, 28, 56, 23, 4,179, 24, 34, 34,176, 25,130, 23,241,176, 78,121, 17, 35, 19,250,198, 92, - 77, 1, 73,149,192, 32,132, 0,168,204,228,199, 3, 1, 17,130,104, 69, 0, 10, 20, 98, 16,179, 39,175, 92,221,220, 90, 90, 76, -112, 98, 67,215, 49,210, 43,159,250,137,184,185,253,225,221, 59,183,158,121, 97, 88,108,148, 50,149, 16, 40, 12, 68,125, 71,195, -173,167,159,190,115,255,222,241,209, 49, 4,238, 35, 50,115,215,245, 37, 79,145, 8, 8,214, 83, 97,196, 34, 74,132,145,153, 57, - 0,145, 86,141,204,164, 86, 69, 33,160,154,145,170, 16, 53,187,140,105, 11,244, 32, 84,213,128,132,161,157,245, 6, 22, 3,229, - 9, 80, 12,169,229, 76,143,198,105, 49,116, 12, 72,136,235, 41,175,199,154,171, 94,218,222, 80, 81, 85, 43,185,213,194,121,161, - 18,158, 61,108, 4,205, 91,205,129, 85,192,196, 31, 82, 53, 0,194,169,148, 92,100, 72, 48,137,153,163, 12, 68,171,152,248, 68, - 33, 90,160, 86, 85, 36, 43, 82,171, 59,156,145,209,192,148,198,162,170,218,121,149,152,153,122, 34, 15,128,144,165, 86, 36, 52, -119,180,155, 1,162, 0, 24,178,104,102,128, 64, 84, 76, 74,177, 24, 81, 43,170, 25,113,112,190, 74,160,153, 20,110,224,181,233, -218,180, 19,144,217, 62, 89,205,198, 41, 11,181, 33,160,152,170, 40, 0,130, 43, 65,136, 6, 48,169,129, 72, 21, 85, 53, 66, 5, -195, 8,168, 51, 24,196,203,122,136,192,172,154,121,192, 8, 16, 28,157,137,228, 0, 0, 48, 49, 19, 81, 39,177, 41,128,187,213, -102,209,138, 60, 2, 38,128, 10,200, 76, 85,140, 16,177,130, 85,175,109,171, 0,177,154,138, 86,223, 13,146,215, 73, 58,116, 9, -160,150,154, 75, 17, 25,171,234,233, 84, 16,161, 99,222, 90, 46,140, 99, 32,244,100,114, 66,142, 28, 98, 10,125,234, 82,224, 20, -152,163, 95,138, 56,134,208,119, 93,159,210,176,236, 4,232,248,232,248,202,197,115,227,201,226, 94, 25, 67,232,250,190, 95, 46, - 54,251,161,163,148, 22,177, 59,183,115,254,234,213,107,181, 10, 24,148,156,205,106, 45, 50,230,188, 26, 79,243, 52,126,120,239, -225, 95,191,247,238, 59,239,221, 57, 56, 60,200, 69,213, 84,154,232, 66,128,136,200,169,163, 98,101,150, 68,196,196,144, 3, 27, - 74,123, 88, 9,145, 20,102, 59, 84, 11, 98,181,154, 17,103, 21, 89, 85,207,111,121,242,209,154,235,209,115,160, 86, 85, 26,150, -151,208, 7, 8,100,179, 98,226, 3, 10, 17, 3, 25,145, 83, 31,204, 8, 64,220,150,128,102, 14, 55, 84,164, 90, 36,240,217, 37, - 21, 60,245, 6,228,125,233,134,100,236,249, 88,113, 23,103,195,222,184, 27, 93,125,113,235,101,167,103,130, 9, 0, 2, 27,233, - 28, 4, 68,244,106, 7,247, 98, 99, 91,200,182,127, 33,179, 63,185,243,127, 52, 34,244,216,246,220, 44, 77, 90, 42, 68,155, 1, -113, 49, 32, 1,161, 57,229,192, 42, 84,197, 64, 31,189, 51, 8,193, 64, 68, 13,176,150,178,117,238,226,114,115,145,213,114,145, -147,213,234,228,244,164,139,253, 98,209, 41, 64, 8, 92,171,189,183,251,240,222,238,158, 39,252, 93,233, 76, 49, 84,178,253,189, -195, 85, 25, 3,113, 23, 83,138, 73, 85, 31,237,239,231, 82,212,172,235,210,197,157,157,231,110,221,124,250,214,205,207,124,242, - 51, 55,159,190,149,250, 84,204,166,213,180,127,184,175, 85,250,229,166, 2,222,127,255,131,205,243,151,215,235,211,111,254,197, -159, 61,188,119, 47,215,240,212, 75,159,251,212,167, 63, 27, 98, 56, 57, 57, 57, 61, 57,218,189,123,231,173,183,222,122,253,221, -247,246,143,143,166,154,115,206, 7,143,119,183, 54, 22,165, 86,100, 38,164,173,173,173, 71, 71, 39,204, 20, 42, 68,138,163,101, -255,150, 82,104, 32, 38, 81, 43,181,228,154, 99, 76,171,169, 46, 7, 70, 36, 5, 68, 14,203,190, 19, 83, 3,255,139, 48, 14, 64, - 66, 2,192, 10,203,110,113,202,167,185,120, 24, 3, 9, 67,151, 12,193,138, 8,152,221,188,121, 29,152, 85,229,228,248, 52,117, -195,198,246,230,202, 22,167,185,174,215, 99, 63, 12, 59, 91, 91,251,251,187,139,110,168,165,148, 88,134,110,216, 88,110,189,240, -236,179,223,252,238,247,242,148,193,176,239,250, 82, 4,137,200,154,213,137,252,193, 51, 16, 53, 21, 5, 53, 10, 36, 89,134, 62, -173, 86, 35, 2, 38,142, 99,201,137, 73,114,169,162,136, 32, 96,243,196,104,234,200, 61, 50,173, 78,191,182, 10, 0,222,160,134, -128,136, 99,201,227,148,185,239, 87,211,116,114, 58,114,224,245, 52,238,238,203, 88, 13, 9,157,188, 8, 58,155, 67, 90,187,131, -122,173, 50,154, 97, 84, 82,175, 19,109, 88,119,247,236,159,142,171, 69,159,136,217, 20, 48,180, 10, 38,240,148,134,146, 33,121, - 29, 19, 4, 91, 79,197,251,160, 19, 33,128,121, 95,121, 45,106, 96, 72,152,136, 68, 32, 4, 32,107,212,120, 85, 45, 34, 6,202, - 16, 26, 57,157,200,192,136,130,230,214,154,233, 53, 93,129, 73,196,102,216, 82,147, 49,219,103, 9,136,170, 30,133, 53, 49, 5, - 64, 54, 99,212,170,142,209, 7,195,153,166,173, 2,144,152, 65,132,192,140,200,181, 21, 83, 32, 68,101,242, 24, 21,184,177,218, -107,164,145,154,150,224, 34, 60, 0, 34, 8,104,128,128, 0, 12,192,212,108, 21,179, 73,186, 17, 97, 61, 70, 32, 96, 80,197,131, -233,166, 82, 85, 20, 72,153,102,227, 53,154, 25, 49,171,154, 48,165, 16,106, 45,129,189, 45, 4,137,130,155,117,221, 12, 2, 0, -162, 80, 68,160,148, 85, 21, 3,228,192, 17, 48,164, 20,188,237,135,200, 43,207,250, 46,116,177, 15,140,204,236, 21, 17, 69,181, - 15,241,116,181,186,247, 96,111,177,236, 23, 93, 55,120, 8, 43,165, 97,185, 12, 33,109,108, 44,186,110,209,197, 33,116, 97,216, -232,145, 34, 18, 16, 32, 6,234,210,240,138,232, 47,214,124,124,116,116,122,122,242,240,241,238,163,221,189,123, 15,239,223,127, -244,104,247,209,254,241,233,169,152,228,226,110, 37,194,166, 15, 55,108,187,203, 22, 31,201,215, 86, 93,136, 80, 69, 17, 1,246, -208, 15,162,143,227,234, 55, 47,183,160, 16,225,220, 12,228, 84,122, 64, 69,191, 48, 33, 32,105,109, 27, 22, 51, 69, 99,161, 74, -129, 33,207,240,225, 38,142, 32, 24,144,145, 89, 5,176,216,113,235,125, 50, 35, 95,242,138, 48,176,239,219,180,121, 33,205,204, - 2,121, 99,224,204,181, 62,163,152, 57,242,161, 89,101,230,173,250, 89,187, 30,186, 92,101,106, 10,200,216,168, 82,106, 64, 72, - 30,175,105, 56, 1,105, 13,136,142,249,157,243,200,166, 2,212,140,165,132,145,187,222, 97,111, 20,135, 58,174, 64,213,130,192, - 71,114,144,183,166,159, 97,152,173,223, 60,247,236,179, 79,255,209,159,125, 39, 34,230, 90,166, 41,175,242,158,152,118, 49, 2, -218,193,209,106,204,121,204,213, 7,127,246,223, 17,193, 88,115, 21, 93,244, 61, 3,137,234,225,201,169,104, 61,183,181,249,226, -205,235,207, 61,251,220,203, 47,189,248,212,199,158,222,217, 62,199, 49, 18,197, 92,166,211,131,131, 90, 42, 35,244,203,205,227, -195,189,213,209, 81,236,187,245,233,241,234,232,240, 47,190,254,181,135,123,167, 79,221,250,248,103, 63,249,202,229,171, 87,180, -148,195,189,199, 39, 71,123,247, 63,184,243,250,155,111,189,119,255,254,106,189,158,166, 92,214,171,142, 3, 24, 16, 49, 51, 67, - 41, 85,100,174,108, 86, 3, 8,228, 93, 87,160,214,118, 97,162, 21, 25,167, 49,151, 90, 77,211, 88,242,114, 57, 48,128,136,136, -106,100, 14, 20,192,128, 3,250, 34, 62,112, 12, 64,165,148,192,204, 33,154, 76,202,164, 38, 41, 80, 12, 72, 72,104,214,247,221, -173,155, 79, 2, 19, 25,158,174, 86,139,205,205,126,177, 44, 43,235, 88,175, 94,189,190,216,220, 89,110,110,191,127,247,253, 29, -201, 54, 66,225,152, 56, 4,230, 27, 87,174, 93,189,252,193, 59,239,191,111, 49, 33, 96,150,156,136, 38, 51,118,204,128,128,131, - 33, 43,129,138,230, 60,161,104,138, 41, 16,134, 64,109, 97, 9, 64,136,130, 24,252,203,210, 70, 73, 83, 5, 83, 80, 18, 51, 46, - 42, 0,182,104,133,234,218,130,181, 8, 36,118,178,158,138,143,123,140, 0, 32,170,199,211,218,249,138,126,248, 18, 35, 43,206, -194, 94,235,133, 86, 0, 67, 72,126,211,116,239, 45, 97, 96, 80, 63, 89, 16, 68, 13,205, 98, 64, 51, 8,236,105,219, 80,173,136, - 74,138, 44,134,213,193, 15,238, 57, 65, 82, 39, 60,169,115,228,155, 28,132, 76, 56,195,117,136, 2, 81,105,119, 98, 55,127, 25, -145,161,137, 50,162,170, 22,169, 49, 4,247,222,160,130,231,212,129, 19,149,181, 52,128, 95, 59, 79, 85,221,242,172,224,183,126, - 53,171,146, 33, 19,147,123,172, 26,179,219, 20, 48,186,129,116,222, 71,180,254,132,102, 77,214, 54, 93, 82, 96, 45, 5,196,113, - 33,228, 40, 24,117, 25,118,102,255, 21, 85,102,178,143, 82, 60,174, 46,195,220, 61, 11, 16,253,134,174, 28, 8,170, 49,218,186, - 26,184,133,217,183,228,170,110, 54,244,229,191, 19,170, 13, 64,212,237, 43, 13, 92,228, 88, 72, 1, 33,135, 72,160, 2, 82, 10, - 88,205,220,195, 87,179,151, 44,219,186, 86, 38,204, 85, 85, 37,134,144,186,212,197,216,197, 16, 83, 66,131,190,227,253,227,163, - 46,198, 52,116, 29,115,223,245,125,159, 82,136, 27,139, 97, 72,221,114,232,251,190,239, 98,183,216, 88,196,148,250,174,143,169, -139, 93,191,185,185, 81,115, 53,192, 16,195,114,251,220,230,185, 11,215,158,188,165,181,138,212,113, 28,143,142, 15,247,247,247, -247, 15, 14, 15,142,246,119,119, 31, 98,191,121,120,188, 70,176, 16,152,153, 28, 91,211, 28,101,141, 29, 22, 28,235,142, 40, 70, -174, 73, 43,216, 44,226, 32,152, 17,181,180, 65,235,101,163, 70,241,194,134, 19,243, 22, 60, 85, 66, 18, 84, 4, 67,140, 70,134, - 76,132, 84,161, 54, 3,142, 53, 60,229, 25,185,161, 57,246,253, 96, 3, 49, 48, 98,140, 20,164,170, 2, 48, 32, 18, 5, 34, 21, - 65,166,208, 98,194, 38, 54,163,115,220, 51,237,135,126,179, 43,254,120,223, 96, 91, 83, 17,124,180, 61,248,104, 42,104,177, 44, - 59,107,228,112,199,100, 64,146, 89,194, 98, 48,109, 65, 14, 64, 52,197,192,196, 4, 34, 24, 98,236, 7, 45, 89,107, 54, 32, 5, - 65,199,141,249,114,164, 58,223, 16, 9,169, 27,134, 11, 59, 23, 98,236,151,139,197,149, 33,109,116, 49, 79,101,148,188, 26,235, -123,119, 63, 16,145, 46,112,100,246, 82,217,192, 76, 33,212, 92,142,199,124,186,158, 96,140,145,124, 70,241, 9, 0, 0, 32, 0, - 73, 68, 65, 84,233,242,249,229, 75,207, 61,245,249,207,125,238,147,159,250,204,133, 11, 23,185, 11,136,193,204,114,201,164,128, -108,134,150, 87, 99, 72, 41, 12,221,193,238,131,216, 15, 93,138,239,191,247,222, 95,191,254, 67, 93,143,213,250, 87,255,198, 23, -158,125,254, 5,238,120,125,116,116,116,176,127,184,255,248,221,247,222,121,247,253, 59,251,199, 39,121, 42, 82,202, 56,174, 8, - 20, 9, 82,224,200,212, 7, 94,137,157, 73,165,162, 80,139,204,150,126, 64, 0, 98,116,195, 25, 33, 2,210, 60, 15, 58, 15, 67, -205,205,181, 0, 28, 8,157, 71,130, 4, 64,160,158,138,131, 16, 40,198,128,140, 0,204,142,117, 70, 52, 0, 5,221, 26,134, 39, -206, 95,208,170, 38,120,114,124, 60,108, 44, 98, 76,108,143,233,248,136, 48,254,201,239,253,239,180, 62, 90,244,189,170, 89,208, - 41,143,204, 33,133,180, 88, 44, 95,124,238,227,183,239,221,171,181, 34, 35, 1, 36, 14,185, 86, 21, 21,239,124, 0, 27, 82,152, - 86,133, 16, 2,113,198,194,104,129, 83,138, 82, 1,179,151,107,136, 3, 91,216, 7, 13,155,241,239,216, 38,111,119,229, 98,253, -136,147,126,230, 30,161,169, 86, 47, 73,240,149, 14, 51,129, 18, 5, 58, 89,175, 87,171,156,186, 48,191, 68,218,178,255,172, 84, -217, 76, 75, 21, 16, 83, 2,149, 51, 11, 24, 68, 78,203,110,225,219,165,172, 22,208, 16, 24, 68, 25,131, 89, 14,115, 0,157, 1, -181, 10, 6, 79,149, 66, 8,172,181, 34,179, 2,136, 25, 59, 81, 67,212,189, 38, 85,196,157,112,206,232,243,218, 11, 98,247,226, - 33,114,152, 74, 65, 0,102, 18,105,208,226,162,181, 84, 81, 45, 56,127, 67, 60,230,205, 8, 0, 22,128,156,186, 80, 84, 1, 13, -153,252, 68,175, 38,140,108,109,183,142,162,170, 89,176, 65,182, 1, 12, 74, 41, 4, 32,164,196,172,181, 17,230,231,130, 19,108, -133,232, 31, 85,228, 72,104,142,127, 72, 68, 76, 92,154,247,200,121,226, 51, 82, 4,144, 61,199,211,176, 11, 8, 45,123,196,117, -173, 72,140, 10,226,110, 40, 17, 39,185,231, 82,218,201,101,192, 12, 96, 86, 12, 52,215, 90, 4, 9,202,172,236,139,129, 9, 9, - 40, 53,110,163,187, 69, 5, 49, 17, 3,136,248,211,158,139, 20,209, 34, 58, 81, 94, 14,139, 40, 58,149,146,214, 33, 48,187, 50, - 17, 3,197, 20,186, 24, 83,136, 30,194,234, 82, 26,186,174,139,161,239,135,161, 31,250, 46,110, 44, 23,195,208,111, 46, 54, 66, -234, 66,228,161, 31, 82, 26, 66,138, 93,191, 96, 14,169,235, 54,134,197,198,185,243,151,175,220, 80,201,160, 54,214, 58,141,235, - 7,251, 43, 1, 69,212,104,171,229, 16, 83,196, 46, 68, 10, 24, 8, 84, 81,124, 53,217, 74, 95,125,250, 36,115,132,128, 79,190, - 0,170, 78,188,157,115, 76,224, 93,118,164, 34,126, 82, 34, 6,195, 98, 96, 76, 84, 69,144,140,128,180,152, 56, 80,167,122,207, -163,249,243,214,108,252, 30, 70, 53, 99,102,213,230, 58,246,153,155, 24, 77, 26,100,173,148, 66, 8, 38, 16, 0,205,164, 52, 30, -153,219,166, 4, 40,204, 85,184, 28, 64,218,209,143,179,231,221, 37, 54,215, 76,188,160,206,128, 77, 5,145,193,140,168,209,224, - 41, 18, 33,214,226, 10, 59,250, 29, 4, 65, 90,248,101, 54,227,104, 45, 0, 29, 14, 29, 99, 66,107,247, 93, 3,241,203, 17,250, - 13, 88,221,203,213, 58,166,191,243,245, 63,254, 39,255,219, 63,255, 96,239,120,209,199,190, 31,182, 55, 23,125,140,162,117,255, -240,120,181, 94,249, 37,177,133, 97, 5,114,173,117, 53, 78, 83, 57, 93,175,171, 64,223,197,223,254,207,254,246,151,191,244,133, -237,243, 23,185,235,215,167,167,211, 56,214,169, 96, 0, 98, 98, 12,128,160,117,170,181,164,229, 50,246,195,222,253,123, 91,231, - 46, 20,149,175,127,253, 79,198,211,147,211,211, 92,113,249,202, 23, 63,123,229,202, 53,131,122,116,112,124,116,240,248,195,247, -239,220,253,224,206,155,239,127, 0, 2, 67,162,213,241, 88,107, 61, 61,205, 27,125, 56, 29,215,185, 10, 24, 22, 67,138, 28, 99, -152,114,110, 17, 1, 39,216,182,173, 23,184, 0,114,182,153,142, 33,136,170,154, 33,177, 58,170,199, 4,209,136,208,225,203,196, -164, 0, 20,121,145,186,147,211,245, 56,142,193,209, 87, 6,238,181, 5, 69, 32, 20,160,107, 23, 47,158,223,217,230, 16,179,148, -113,156,128, 8, 57,112,234,227,144,167,147,227,144, 15,111, 92,222, 1,182,135, 7, 71,129, 67, 45,181,134, 41, 32, 83, 76, 87, -175, 92,254,212, 11, 47,188,249,238,187,196, 0,102, 49,242, 98, 24, 20,237,232,248,100, 42, 18, 41, 4, 74,219, 11, 50,196,170, - 26, 66, 36, 0, 53, 75, 33, 5, 67, 1, 67, 9,100,234,183, 46, 6, 40, 98,103, 81,106, 59,219,216, 56, 70, 64,181,182,193,160, -165, 36, 16, 77, 76,146, 49, 32,154, 87,189, 35,100,173,137,162,153, 26, 9, 26,131,170, 17,219,204,167, 6, 3,242, 53, 63,243, -114, 99,227,224,232,144, 17,144, 64,197,103,198,112, 86,243, 8, 8, 37,103, 69,234,135,174,102,169, 82,204,212, 20, 74,206,234, -121,116, 2, 84, 82,109,213,196,128, 64,106,171, 41, 99,128,200, 9,152,165, 72,223,241,148, 53,198, 88, 69,156,129, 32, 13, 38, -131,193, 25,168, 98,142,142,226, 64, 17, 81, 12, 85, 0, 64, 3,114, 5,173,106, 78,120, 85,171,168,209, 12, 74, 21,117,174,121, - 53, 0, 76, 72,147, 40,134, 16,124,208, 5, 86, 53, 86,169, 14,155,103, 53, 0, 32, 7,112, 10, 26,136,148,158,147, 81,176, 70, - 54, 52, 4,159, 38, 28,119,166,228,122,171,218,143,117,216,121,188,172,101,125,221,225,102,179, 81, 14, 26,174,167, 69,229, 67, - 72, 51,226, 79, 83, 12, 49,176, 95,233,189,196,195, 91, 79, 13, 64, 85, 9,168, 50,138, 65,154,239, 1, 78,143, 10, 76, 69, 20, -196,136,221, 99,225,130, 20, 40,130,170, 17,161, 26,154, 21,117,199, 54, 57, 3, 94, 17, 3, 0,138, 26,177, 17,154, 86, 85, 50, - 13, 52,173,166,169, 78,206,102, 88, 14,131, 2,214, 34, 67, 23, 98,140, 93, 74, 49,112,100,238, 83, 74, 41,246,125, 55, 12,253, -198, 98, 99,209,197,190,235,151,139, 97, 99,185, 57,244, 41,164, 52,244, 67, 23, 83,236,251,174,139, 28,250, 16, 34, 49, 15,203, - 97,177, 92,218, 5, 43,181, 74,214,211,233,244,184,200,116,184, 98,172,129,172, 75, 76,104, 41, 80, 0, 8,193, 2,161, 2,163, -136,187,104, 85, 42,152, 63,173,174,206,179,169,205,182, 25, 66, 82, 40,254,140, 59,207,178, 52,184, 37,160, 47,114,125, 91,219, -162,235,124, 86, 60,101, 20, 72,205, 64,218,246,141, 40, 52,114,157, 49,153, 99,201,218,137,215, 18,174,110,200, 7, 11,190,212, -117,137,199,107, 71,126, 44, 60,130, 42,245,172,213, 9,200, 95,249,190, 5,118, 77,161,189,146, 64, 60, 8,127,150,199, 5, 1, - 72,203,142, 82,210, 71,135, 31,197,161,156,207,143, 60,247,122,184,226, 35,150, 43, 45, 55, 67, 72, 82, 39,205,197,196,165,127, - 68, 48,213,218,186, 83,196,186,197,178,172, 79,254,213,239,254,222,159,252,249, 55,223,120,255, 94, 8,233,250,133,115, 67,207, -187,123,143,214, 83, 77, 41,113,160, 24, 34, 1,100,147, 44,181, 78, 53, 4,222, 30,250, 7, 7,107, 5, 74,221, 48,112,248,123, -255,241,111,254,230,111,254,135, 39, 99, 62,157, 38, 91,143,181,102, 4, 98,138,104, 8,130, 2, 21,212, 56,134,245,225, 94,183, -220, 62,125,120, 63,198,240,206,219,111,188,241,195, 31,140,171, 41,246, 91,151,175,223,122,230,185,231,187,110,200,227,250,244, -244,104,239,193,253, 59,183,223,189,125,247,222,238,227,199, 23, 46,236,252,242,151,191,120,184,247,240,159,253,203, 63,150, 22, -119,103,191,161, 3,129,204, 8,105, 63,238, 17,177,235,152,155,105,205, 98,160,234,121, 22,175,190, 33, 66,162, 34,210,224,213, -237, 44,244,240, 46, 48,130,170, 56,195,107, 42, 82, 72,151, 67, 7,132,165, 40, 52,246,121, 11,239, 40, 40,170, 94,127,226,210, -176, 88, 2,112,169, 39,235, 60,185,121,137, 57, 46,150, 27,235,245,234,217, 23,158,123,231,173,119,158,121,234,169,189,147,215, -196, 52, 49, 77, 37,135, 16, 82,133, 62,245,159,124,241,229,156,203,131,199,143, 17, 3, 34, 86,173, 93, 76, 23,182,183,198, 90, -199,245, 58, 75, 97, 36,119,242, 32, 98, 35, 5, 17,110,117,139,163,113,157,157,148, 81, 52, 48, 86, 5,102,211,218,158,152, 24, -147,255, 97, 34,243,164, 69,213,220, 10,233, 16, 68, 4,164, 64,226, 55,133, 51, 59,151,226, 56, 21,167,180,183, 64, 3,243, 92, - 12, 65,160,154,107,113,110,177, 84, 89,141,167, 45, 11, 46,149, 17, 77, 8, 16, 68,140, 25, 66,224,128,152, 11, 24, 88, 45,162, -106, 82,213, 11,175,252,227,102, 34,169, 16, 2,120,139,152,169,137, 89, 8,205, 1, 15,140, 86, 4, 25, 69, 32, 75,217, 14,132, - 8, 35,181,110, 73, 96,215,143,177,148, 98,104, 6,148, 2,213,138, 58,151, 32,128, 66,136,113, 90,157,142, 37,119,204, 51, 64, -219,175, 32,104, 85, 49,249, 9,172,196,104, 85,129,180, 84,224,192,102, 38, 82,115, 21, 55,211,177, 18, 2,155,170,129,154,106, - 98, 54,138,226, 62, 59,153, 41,232, 6,128, 26, 17,149,168, 74,235, 66, 6, 80,155,193,181,224,140,243, 86,155, 77, 74,134,115, - 6,199,124,231,235, 95,117,228, 64,168,222,249,192,205, 13, 29, 56,148, 90,141,176,168, 85,133, 24,217,239, 90,204,232, 94, 88, -149,106,192, 70,205,253,205, 72, 4, 20,129,178,170, 18,249, 75,148, 42,198,192, 42, 85,196,140, 80,196, 2,187,133,202, 39,128, -179,151,141, 33,128,138, 82,236, 1, 10,113, 3, 24, 6,102, 85, 53, 83,169,146, 69, 15,142,143, 3,211,162,239, 2,115,145,202, -196, 93, 8, 33,134, 24, 99,223,167,101,215,167, 46, 49,113,159, 82,223, 58, 78,226,214,114, 57, 12,253,114, 88, 14,139,190,239, -250,141,197,178,235,251,152,186, 20, 35,167, 62,198, 46, 48,239,108,108, 2,162,200, 54, 0, 86,209,146,203, 84,166,147,117, 70, - 19, 21,141,164,129, 17,161,166, 0, 12, 76,224, 55, 11,100, 12, 4, 34,160, 0,232, 73, 14, 5, 53,191,236, 1, 32, 96, 45,202, -158,160,101, 86,135,109, 32, 3,212,118, 19, 21,109,189,211, 1,139, 2,250,192, 79, 72,110,160,243, 73,170,153, 12,145, 61,199, -174,224,179,181,223, 42, 60, 31, 23,126,124,159,226,179, 82,243,235,195, 89,161,161,157,225,225,177,149,192,105,123, 28, 63,202, - 93, 0,249,123,218, 35,209, 98,132,152, 87, 25, 86, 69,177, 81,213,154,162, 32, 45,166,217,206,108, 83, 0,168, 83,134,184,158, -100,146,113,173,146,141, 0,129,193, 23,173,102, 0, 12,148, 22, 27,139, 58, 30,255,238,191,248,231,191,255,245,111,223,223,125, -244,228,149, 75, 87,207,157, 83,162,191,251,159,254, 39,122,248,224,247,254,240, 15,127,248,206,135, 53, 67, 45,202,140, 12,112, - 97,123,249,241,231,158,121,229,211,175,188,244,242,203, 95,251,131,127,245, 59,255,215,159, 46, 22,139,197,114,241,179, 95,249, -153,195,227,163,169, 40,130, 6,198,237,157, 29,173,178, 30,215, 90,107,173, 37,164,168, 98,199, 71,135,181, 76,125,205,143,247, - 31,223,187,115,103,117,114, 20, 49,225,246,185,143, 61,247,210,197,139, 23,145,104,117,122,116,184,247,232,238, 7,119,222,185, -243,222,189, 7,187, 99, 41, 95,248,220,167,127,246,167, 94,125,226,242,133,175,126,245,171,134,152,124, 86, 36,208, 42, 76,196, -110, 90, 7,231,245, 75,203,143,207,165, 98, 42,128, 64, 41, 80, 0,118,174, 3, 49, 70,226,117,173,244,145,169,180,137, 26,158, -130, 39, 98, 81, 3,130,192, 92, 74,166,212,153,128,168, 34,145,103, 36, 35,205, 17, 74,132,103,159,190,153,186,142, 67, 24,167, -105, 53,174,201,147, 21, 72, 16,121, 88, 12,100,112,237,169, 27,111,252,232,205,203, 91,155,247, 14,142,186, 5, 33, 96,174,165, -235,122,100,234,251,238,229,231, 95,122,248,237,111, 0, 97, 8,193, 12,198, 60,109, 44,150, 9, 33,103, 46, 42, 33,134, 64, 84, -196, 84, 37, 49, 3, 34, 41, 12,125,199,132,235,113,116,204,104,187,233,213,179, 10, 6, 21,169,134, 24, 76,153,153, 77,209, 95, -131, 70,232, 70, 99, 68, 2, 71,235,121, 57,152,170,138,197, 96, 42,243, 42, 10, 25, 60, 15, 98, 4, 8,106, 76,220, 69, 20, 17, -151,114, 24, 40,144, 91, 29, 0,136,141, 10, 54, 62, 27,149, 82, 67, 12,102, 86,155, 69,193, 16,160,138,197, 72, 14,253,225,200, -193,247,215,134,102, 80,197, 84, 84,201, 8, 64, 21,173, 42, 7, 42, 5,138, 84, 52, 44, 69,192, 32,113,168,156, 85, 17, 20, 24, - 13,145,156,201, 14, 6,162,202,204,173, 50, 4, 17,136,178, 72, 41, 5,206,112, 82, 51,105, 91, 93,181,182,182, 11, 3, 38, 3, - 9,196, 98,213,185,208,162,162,166, 82, 21, 0, 42, 88,136, 0,132, 80, 27, 80,176,197, 88, 68,146,251,246,154, 3,143, 16,200, - 64,208, 67,195,115,131,181, 41, 40,250,250,167,109, 0,213,144,180,253, 76,223, 82,179, 2, 2,198, 0, 62, 48, 82, 96, 6,204, - 42, 96, 38, 34,213, 0, 56,200, 56,249,197,159, 80, 3, 55,194, 41, 19, 86,169, 85,180, 75, 4, 6,206,143,137, 41,168, 1, 6, -244,152, 76,195,178, 83,131,254,180,158, 44, 70,102, 34, 51,113, 49,246, 44, 85, 67, 13,189, 76, 14,240,111,155, 29,159,135,149, -208, 87,130, 54,247,131,130, 34, 76, 99, 1,203,107, 64, 12,206,105,212,190,239,134,126,240,237,151,147,241, 67, 8, 93, 8, 41, -121,182, 54, 13, 67, 90,246,195,230,230,198, 48,116, 27,253,114,177,232, 67,136, 33, 82,138, 67,236, 98,215, 59,165, 34, 14, 67, -183, 92,110, 35, 50, 82,144, 50, 22, 17,171, 50,150,241,184,228,105, 26, 29, 19, 23, 73,186,200, 41, 2,145, 5,162, 64, 32, 82, -124,155,104, 6, 94, 4,198,132,160,100,100, 90,107, 51,197,107,171,243, 64, 67,116, 11,141, 35, 3, 20, 5,209,179, 90,214, 32, -148,142,105,129,121,187, 47,132,200, 1, 76,156, 63, 8, 38, 18, 40, 32, 67, 0, 51,138,140,181, 45, 93, 0, 20,136,144,192,155, - 43, 85,219, 11,216, 31,186,217,158,239,221,194,243,171,105, 94,188, 54,245,198,171,254,128, 65,180, 89, 34,129, 0,213, 13,181, -224, 94, 76,192,179,254, 64, 3, 83,168,117,125, 10,106,134, 98,173, 48,170,130, 54,242,188,106,237,135,205, 59,111,254,232,119, -126,231,159,124,239,245,183,158,122,242,234,111,255,194,111, 97, 89,255,213,155,183,127,229,215,126,253,197, 23, 62,206,225,147, - 31,127,229, 39,111,191,249,218,201,193,241,122, 28,179,212,237,157,115,183,158,123, 97,231,220,185,106,134, 72,191,242,171,191, -252,151,223,251,193,107,239,239,165,190,207, 57,199,116, 65,117, 84, 51,205,229, 95,252,254,255,253,236,115,207,191,244,194,173, -131,131,227,197,214, 14,167,248,240,246, 59, 59, 23,174, 96, 56,247,253,191,248,250,238,195,187,169,235, 67,218,216,216,185,126, -253,230,173,141,205, 69,158,198,253,189, 71,187,247,239,190,251,214,155, 31,220,191,187,127,188, 58,191,179,241,247,255,214,175, - 62,243,244,211, 83,206,121, 42,227, 52, 25,114, 76,168,160, 96, 54,141,217,123, 56, 75,206,129, 90, 70,128,145,152,112,156,154, -129, 34, 50,133,200, 72, 28, 18,139, 24, 34, 34, 82, 85,143, 76,183,207,160,249,144,192, 35, 47,115,150, 29,140,137,187, 20,213, - 12, 24,106,173,126,102, 4, 38, 17, 1, 11,165, 26, 1, 62,113,241, 98, 26, 6,128,224,165, 43,226, 68, 42, 4,164, 46,117,253, -201,225,254,229,243, 23,118, 47, 62,188,254,196,181,227,215,254,250,100, 61,110, 14,139,105,189, 74, 49,109,198, 24, 67,186,252, -196,249,171,151,158,120,244,120,223,196, 60,236,105,166, 33,196, 20,226,209,170,244, 1, 13,136, 35,104, 49,245, 71, 4, 96,170, - 83, 31, 82, 23, 35, 48, 69,211,140, 12, 80,207, 34,207,158,123,149,106,150,130, 35, 50,201,188,208,238,163,174,221,179, 55, 96, -155,108,137, 93, 14, 78,196,110,169, 60,235,107,112,155, 54,162, 49,160, 17, 33, 3,136,170,104, 43,253, 48, 83,169,168, 58,215, -232, 40, 0,213,246, 52, 27,128,198, 64, 38,140,156,189,111, 47,134, 96, 94,155,224, 55, 81, 49, 13,134,132,126,248, 34,129,170, - 41,180,208,122, 8,140, 8,185, 10, 16, 17,113,151,226,170, 28, 85, 64,209, 82,107,112,100, 68,235,174,119, 75,107, 81, 96,212, -154,205,128,153, 60,133,164,230,110, 71, 84, 19,255, 77, 53,154, 92, 51,174, 0,121, 81, 23, 65, 12, 92, 49, 16, 3,122,221,132, - 2,205,221, 56, 2, 72,158, 68, 71,223,145,178,153,128, 26, 50, 97,109, 20,147, 54, 43, 56,223, 48,251,118, 22, 65, 45, 6, 36, - 67, 85,209,217,191,224, 5,135, 24, 60,223,101,236, 59, 0, 53,138, 12, 80,137, 41, 79,197, 68,196, 45,170, 51,183,146,136, 9, -160,138, 68,142,168, 10,103,211, 31, 57, 77, 22, 69,107,201, 10,228, 46,192,150, 89,156, 11,189, 92,179, 64, 0,168,214,204,209, -158,128, 86, 51,171,198, 78,214, 69,240, 48, 67, 34,133, 0, 30, 3, 50, 49,140, 6, 77,239, 68, 81, 97,114,137,207,207, 25, 64, -130,170, 42, 85, 78, 78, 87, 68,148,107,206, 85, 35,113, 63,116,151,206,109, 33,176,128,197, 64,145, 99,140, 33,133,212,199, 24, -187,180,236,251,237,205,173,229, 70, 63,196,142, 3, 35, 66,228,216, 47,210,178, 95,246,139,126, 88,116, 41, 45, 23,139,205,148, -122, 94, 14, 75,221, 70,132,170, 57,231, 98, 85,199,156, 75,205, 39, 99,145, 50,197, 72, 68, 18, 48, 37,200,204,254, 7, 33, 13, -168, 89,208,154,175,169,129,230,164, 69,158, 68,149,144,188,207,171,149,224, 57, 54, 1,154,149,211,204,206, 18,166,109, 4,242, - 93, 41,182, 34, 17, 23,111, 81, 41,168, 87,125,160,255,186,194,254, 41,214,150, 29,197, 25, 91,216, 32,144,243,187,125,110,183, -108,149, 86,115, 60,206, 87,178,132,238,134, 52,108, 47, 19,152,205,252, 60,199,154,170,156,109,131, 1, 16, 60, 99,210,194,138, -132, 40, 14,200,157,123, 92, 8, 1,203,250, 56,245,241,191,254, 7,255,197,173,171,151,239,222,187,247,228,211,207,253,194,175, -157,239,134,110, 92,175,213, 86,204,233,233,151, 62, 27,157,173, 8,102,138,162,117, 53, 77, 82, 11, 17,109, 93,185,245, 15,254, -243,191,243,223,252,247,255,227,233,234,244,255,253,227, 63,253,236, 39, 95, 42,130,159,251,220,103, 36,223,251,199,255,244,159, -246, 59,151,255,167,255,225,191, 91,110,109,173, 87,167,135,239,221,223,190,244,196,219,111,191,254,163,127,251, 29,102,190,112, -254, 34,198,157,107, 79, 63,191,177,185,137, 96, 7,251,123, 7,251,143,239,222,121,239,237,247,222,185,247,112, 87, 84, 94,125, -229,147,127,243,103, 94,221,216,220, 90, 79,197,212, 44,161,168, 34, 64,136,140,128, 82,235,106, 53,213,118,238, 89, 8,196, 68, - 69, 20, 8, 57,132,144,170, 19, 5,129,177,148, 42,110, 51,197,214,199, 85,205,205, 3,142,140, 80, 5, 19, 80, 16, 52,160, 92, - 74,149,138,216, 57, 11,105, 72,105,204, 18, 56, 0,130,152, 36,138,236,145, 52,194, 44,229,252,246,206,205,235,215, 49, 68, 35, -242,121,149,137, 0, 8,144, 17, 45,164,190, 31,134,227,189,189, 39,175,221,184,127,255,193, 79,188,244,241, 63,249,246,247,106, - 21, 99, 90,175, 87,139,126, 48, 3, 19,252,204, 39, 62,241,198, 59,111, 3, 40, 65,244, 45,110, 36, 90, 19, 45,187,164, 42,235, -177, 50, 3, 83,224,192,101, 42, 28, 89,115,181, 62,244,125,183, 90, 77, 14,200,117, 82, 47,153,103,107,124,156, 0, 48, 99, 10, - 49, 4,127, 13,183, 64,135,129,154, 34, 82,138,129,145,138, 8, 32,170, 88,129, 26, 2,197, 46,194,169, 87,120,205, 17,144,185, -212, 91,125,152, 48, 36,192, 82,179, 9, 24, 65,160,160,104, 21, 49, 48, 57,102,151, 16, 34, 81, 49,245,174, 15, 19,169, 82,217, - 67, 32, 64, 98, 42, 34,179, 82,239,100,142,143,186, 99, 77, 13, 2, 4,223, 55, 68,102,230, 42,165,170,106, 85, 1, 68,173, 4, -172,162,162, 21, 12, 8, 65, 90,234, 16,173,168, 21, 53, 50, 96, 38, 14, 63, 6, 88,242, 36, 3,144, 59, 60, 17,193,196, 9, 31, -170,138,128,165,138,235,117,165,228, 90,164,148, 60,229, 9, 48, 32,182,214, 89,108,162,138,123,215, 12, 69, 20, 98, 35,135, 96, -115,196,129,153,137, 90,160,102, 90, 51,210,179,148, 13,145, 10, 84, 80, 81,117, 0,149, 57,181, 6,140,252, 31,157,213, 90, 48, -166,198,171, 51,132,192, 44, 50, 19,148, 1, 65,161,138,132, 24, 92,208, 71, 34, 7,110,183,242, 57,103, 99,182,208, 2, 55,254, - 56, 16,162,162, 42,152, 19,244, 76,171,112,138,238,181, 63,235,144,240,151, 56, 49, 19,133,162,170,106,165,136, 74,145, 86,188, -225,230, 90,109,233, 47,104, 8, 73,231, 46, 82,211, 32, 56,144,231,129, 49,197, 40,106, 1, 39, 36,132,170, 0, 84, 76,173,202, - 56,214, 72, 4,136, 83, 41,155, 41,254,250, 87, 62,151, 49,221,125,240,120,255,160, 76, 66,102,150,186, 20, 57,116, 33,118, 41, - 12, 67,223,245,221, 34,166,229,114, 99, 88, 14,142,200, 31,150,155,129, 83,215,247, 41,198,174,219,100, 14, 64, 40, 34, 42, 90, -107, 45,181, 20,201,171,156, 81, 4, 64, 8, 20, 13, 9,148,164, 32,149,198, 45,168,138, 72,100, 6, 4, 34,218,162,163,190,180, -213, 51,129,254,172,107,188, 77, 27,230,109,213, 32,179, 17, 1, 12,140,220,118,105, 18, 60,209,214,100, 76, 36,243, 48,147, 57, - 89,179,133, 85,189,182, 4,129,253,252,118,138, 72, 43, 74,161,134,158, 60, 75,132,159, 21,188, 54,195,101,107,150,247, 34, 10, - 3, 32, 19,223,156,180,222,173,185,175,182,109, 22,253, 91, 1, 30,216,111, 96, 32,155,214,171,103, 94,126,245,191,125,225,149, -191,126,237, 7,247,119,247, 95,254,244, 79,110, 44,135,170, 50,142,147,183, 18, 87, 44, 58,213, 2,100,166,200, 33,116, 61, 96, -226,224,206,127, 57, 62, 58,124,230,149, 47,253,214, 47,127,247, 31,253,238,159,255,254, 31,253,241, 31,126,245, 15,179,216,171, -159,127,245, 23,191,252,234,149, 39, 46,221,123,116,244,143,255,217,255,249, 91,191,254,139, 23,111, 60,253,232,254,251,223,253, -203, 63,189,255,225,189, 39, 46, 95,234,250,115,221,246,149, 75, 79, 92,235,250,174,150,114,240,248,193,189,123,239,223,190,253, -222,238,227,199,123,135, 39,215, 46, 95,248,229,159,251,210,179, 31,187, 89,170,230,162, 78,196, 68,179, 82,106, 10,148,115, 77, - 41, 36,194,172,245,172,101, 48, 48, 25, 88, 41,237,238,201,173, 65, 17,180,150, 24, 67, 3,255,155, 34, 82, 23, 66, 36, 86,212, - 62,244,129, 99,169, 83,104, 95, 16, 99, 4,171,194,205,160,107,102, 54,149, 82, 69,137, 33,133,120,108,107, 5, 19,149, 62, 6, - 38, 86,213,203, 23,207,159, 63,183, 35, 83, 33, 2,198, 48,229,105,115,103,203, 84, 65, 77, 16, 8,121,216,216,180, 90,203, 84, -164,212,229,230,198,243,183,110,190,115,251,195,197, 98, 89, 76, 79, 86,171, 24, 34, 18,239,108,109,253,244,171,159,255,198, 55, -255, 98,123, 43, 54,245,192, 32, 32, 64, 8,129, 40,151, 34,106, 8,213,170,155, 45, 96, 18,149,245,180,209,119, 57,231, 50, 9, -249,133,147,192, 61, 26,230,136, 20,176,113, 44, 33,250, 24, 73,128, 21, 20, 20,154,255, 29,205, 59,136,173, 93, 37,153, 0,141, -209, 57,122,168, 8, 10, 16,230,154, 75, 34,246,206, 25, 19, 80,118, 86, 95, 40, 50,169, 0, 70, 34, 79, 85,181,251, 99,123, 84, -221,196,227,140, 86,105, 59, 68, 48,192,192,172,136, 80,108,102,216,168, 8,169,153,170, 32,177,182,154,224,198,171,100,162, 92, - 85,179, 0, 66, 32, 46, 82,189,140,147, 57, 80, 64, 18, 82, 21,100, 16, 5, 37, 85,246, 29, 43, 16, 49,205,236, 67,111, 74,246, -111,107,169, 10, 34,149, 24,209,178, 42, 97, 8,204, 14, 58,103,162, 92,203,152,199, 92,171,168, 17,123, 2,201, 47,206,216,240, -147,165, 26,154, 40, 16,104, 83, 7,207,112,164, 45,173,138, 17, 24, 84,193, 85, 43, 5,211,202,177,243, 83,180, 81, 74,253, 92, -197, 89, 70, 69, 52,102,127,206, 98,100, 64, 44,165,118, 41, 65,107, 28,157,155,127, 8, 0,173,170, 52, 10, 35, 34,128,149, 70, -196, 68, 64,114, 88, 5, 51, 17, 18, 83, 69, 68, 82, 84, 95,181, 16, 11, 84, 81, 0,226, 6,253,113,190, 2, 34,136,186,127,158, -185, 25,233, 69,106, 27,100,165, 86, 17,108,165,135,164,222,129,171,166, 86,129,146, 17,241,172,107,185,132, 65, 45,253, 6, 48, - 43,165,208,168,194, 36, 85,171, 40, 24,184, 48, 82,115,205, 50,254,212,167,159,187,122,235,217,245, 52,174,199,114,122,188,126, -184,247,248,195,135,251,123,135,167,123,251, 7,187,143,243,186,136,153,197,212,117, 41,244, 93,183,217,247,195, 98, 88,246,125, -223,165, 97,177, 92,244, 93, 76,221,114,177,164,190,235,187,129, 41,246,125,223,117, 11,224, 77, 19, 99,131,177,142,106, 88, 74, -169,146,167, 34, 90, 39, 68,144, 58, 89, 89, 71, 54, 68, 75,232,208,117,243, 59, 93,179, 45,169,129, 10, 4,114, 52,142, 65,115, - 34, 25,176,104,109,101,115,158,178, 82, 80, 85, 36, 2,162,128,128, 69,132,137,153,169,170,128,130,170,178,211,149, 13,124, 89, - 67, 62, 96, 40,152,168, 57,132,221, 90,119, 54,158,189, 5, 26,150, 20, 26,239,114,174, 69,129,179,194, 66,151, 25,208,218,143, - 25, 23, 14, 14,178, 35,112,158,131,186, 6, 68,193,177,213,136,132, 70,156,210,241,241,254, 15,190,251,189,141,157,115,159,251, -201, 87, 13,235, 84,203,204,198,153,111,158, 94,206, 24, 6, 32,103,181,144,212,104,160,104,102, 90, 86, 99,249,165, 95,253,141, -239,252,240,141,187,143, 86, 28, 35,146,125,251, 91,223,250,254,191,249,158,129,113,160,127,251,253, 31,156,219,217,250,248,173, - 15,238,190,247,218,176,216,186,126,243, 41,142, 59, 91, 23,175,158,191,120,145, 0,215,167, 71, 15,238,222,126,231,157,183,111, -127,248,225,222,254, 33, 16,126,254,149, 79,252,252,151,127,114,115,115,123, 61,121,105, 17,181,148, 31, 65,158,166, 24,226,225, -201, 90, 85,226, 48,152, 41,187, 85, 0,204,251, 67,166, 60,133, 46, 34,162, 84, 11, 33, 40, 32, 83, 64,226,200, 65,181,130, 98, - 96,114, 87,104,136, 36,210,212,217,234, 14, 86,244,190, 48, 43, 85,212,140, 1, 35, 51, 50, 30, 29,158, 94, 46, 59,232,188, 67, -116, 53, 27, 66, 32, 51,187,184,115, 46,198, 80,242,180, 30, 79,246,246,119,223,191,123,119,235,194, 19, 59,151,119,238,221,185, -131,200, 64,132, 16,226,198,210,224,244,227, 47, 63,255,253,239,255,224,202,249,115,239,222,249,176,214, 26, 82, 55, 78, 99,138, - 9,204,166,105,122,230, 99, 79,223,127,240,225,238,238, 94, 86, 97, 33,226,192, 28,170, 76, 10,132,196, 82,115, 31, 98, 11,214, - 2, 35,192, 88,166,190,227,154,101,202, 25,200,133, 83,252,104,199,167,170, 38, 89,129, 25,125, 34, 97,102,255, 25,238, 65,100, - 66, 84, 50,240, 64,157, 87,240,144, 17, 73, 85, 69,136,115, 13,152, 63,128, 14,109, 2, 85, 10, 96, 98, 30,162,159,125, 71,222, - 75, 57,183, 53,207,221,237,162,115,108, 17,155, 3, 65,205,136,152, 17,115,123, 29,107, 35,234,177,247,142, 49,128, 16, 50,219, - 28,212, 2, 64,194, 68, 93,145,181,181, 22, 40,152, 59,229,209,249, 22, 64,126, 86,138,123,164, 4, 32,130,113, 83,164,244,163, -248, 31,162,106,157,239,187,138,192,206, 77, 65, 38, 70,100,166,106,170,138,235,105, 34,112,142,136, 1, 67, 8, 81,212,121,136, - 13,166, 70,212,250,212,200, 26, 49,202,212,245, 89, 52, 20,132,208,228, 44,112,203, 49,169,130,128,249, 16,222, 12,203,237, 80, -215,143,216, 53, 6,140,200,196, 34, 66,136,129, 57,134, 16, 57, 76, 86,218,155,190,217, 94, 3, 25, 76, 83, 81, 80,238,153, 12, -144, 40, 24,152, 33, 35, 4,100,116,148,184,153,127,193,209,213, 52, 80, 52,227,118,247,159, 75,239,230,238,103,159,242,108,126, -167, 58,245,147, 9,165,106, 76,177,193,149,206,196,131,234,114,131,153, 40,177, 54, 44,168,191,223,212, 0, 41,163,133,179, 44, - 60,249,219, 17,230, 93,189, 54,184, 21,232,208,119,160, 80,170, 76, 89,170, 90, 63, 12,203,141,141,235, 79, 94,121,197, 84,173, - 78,171,233,248,116, 58, 60, 57,121,180,119,252,225,195,199,199,199, 39,187,135,235,119,246, 30, 49, 16,135, 24, 99, 92,116,221, -194,219,202,151,139,148,226,144, 82,223,117,203,205,229, 98, 24,210,176, 72,161,139,169, 15, 93,159, 98,232,187, 4,184,129,128, - 34, 86,107, 45, 82,242, 84,171,140, 83,169, 71,199, 7, 90, 39, 64,136,100, 41, 98,112, 8, 49, 35, 4, 0, 52, 45, 2,166, 72, -212, 80, 4, 88,207, 42, 0,219,180,220, 4, 31, 3,128, 0,136,204, 76, 68,126,115,159, 9,115,220, 70, 35,156,231, 29,153, 93, - 59,218,218,151,124,213,238,113,190, 51,111,109,251, 63,209,252,138, 4, 35, 10,205, 86, 43, 98,118, 6, 28,155,127, 7,168, 72, -212, 26, 16, 68,103,205,198,213,212, 38,189,246,203,197,157,183,223,124,251,173,183,158,121,241, 19, 79, 62,121, 45,143, 43, 95, -214,158, 81,233,231, 87, 10, 35, 48,119, 29, 84,209, 42, 6,162,102, 4,164,136,104, 92,166,245,112,254,210,223,255,143,126,243, - 31,254,207,191,179, 22, 93,164,196,220,155,217, 84,242,141, 27, 79,126,229,179,207,125,255, 7, 63,250,179,127,253,173, 95,249, -247,254,198,206,133,235,214,111, 95,190,116, 61,245, 73, 74,126,252,104,247,253, 59,111,191,249,246,219,247,118,119,143, 78, 86, - 79, 95,187,250,115, 95,249,252,167, 95,122,174,212,114,186, 58, 37, 10,115,166,205,119,100,178, 94,143,200,188, 92, 14, 71, 39, - 71,181,202,233, 58, 15, 93,231,238,211, 20,152, 9, 77,133,160, 99,226,214, 96,228,141,110, 78, 89, 3, 82, 53, 36,244,122, 7, - 12, 4, 94,107,197, 8, 98,232, 41,149,192,222, 63,153,115, 65,194, 46, 69, 70,220, 24,122, 96,170,181,133,142, 20, 32, 48,130, - 97, 49, 91,110, 44,106,173,167,235,227, 71, 15, 31,188,245,238,237,199,135, 7, 8,244,196,141,155, 15, 62,188, 75, 76, 42, 80, -115, 9, 28,180, 11, 96,112,225,220,249, 71,187,123, 23,183, 54, 31, 31,175,153, 43, 48,143,101,138, 28, 0, 56, 97,248,244,203, -159,250,218,159,255,185,100,169, 38, 68,152,107, 33,196,113, 26,183, 55, 55,145, 81,234,156, 53, 2, 52,208, 24,120,154, 74,107, - 66, 96,140,214, 40,218, 8,173,141, 26, 12,171,213,226,216,237, 90,141,216,137, 67,220, 28, 6, 8,100,181,109, 35, 20, 16, 11, -152,214, 26, 66,192, 89,125, 64, 98, 83, 81, 51, 84, 65, 32, 81,233, 3, 23, 53, 38, 48,163, 42, 2, 86, 20,185,170,204,104, 87, -223, 58, 16, 50, 5, 98, 53, 13, 33,204,132, 16,106, 4,120, 66, 41,102,232,133,179,254,155,225,102,227, 84, 96,106, 21,172,126, -234,161,145,128,198,192,165, 0, 40,136,148, 38,103,122,115,182, 59, 14,169, 49, 19, 68, 53, 56,106,194,209, 54,102,222,227,201, -164, 76, 92,109, 38,250, 50,204,210,100,107,229, 16, 53, 98,246,202,181,128,220,113, 90, 75, 70, 3, 66,176,106,238,170, 79, 93, -170,181,186,202, 31,136, 82,164, 81,102,212, 19,179, 25, 4,162,224,172,121, 98, 36, 6, 19,103, 57,240, 76,140, 34, 0, 80, 84, -242,165, 50, 34, 24, 3,180,194, 59,166,152, 82,169,153,145,186, 46, 96,235, 33,108,118,108,114,167,188,170, 51,143, 3, 49, 26, - 98, 64, 82,183, 92,205,104,251,249, 64,245, 39, 95, 91, 89, 13,147,191, 97,173, 32, 50,130, 6,240, 96,143,182, 68,156, 19, 6, - 65,179,216,130, 76,138,136, 10, 51,199, 24,171,106, 85, 37, 52, 84,117,127, 18, 82, 19, 49, 28,179, 37,109,249, 55, 7, 42, 20, -204, 26, 86,104, 61, 77,139,190, 35,255,249,160,129,195, 36,226, 60,122, 68, 70,175,112,143,132, 2,102, 86, 74,157,114, 65,201, - 70, 68,200,155, 91, 27, 59, 59,155, 79,223,184,246,121,198, 42,186,154,244,240,248,120, 92,173, 30, 62, 58,216, 61, 56,124,184, -123,120,120,124,112,247,116, 92,151,194, 28,250,174, 95, 14,105,115,185,185, 92, 14,203, 97,232, 82, 26,186,126, 88, 44, 83, 23, -134,197,208,117,203,174, 31, 82,215, 19,112, 23, 40,198,222, 44, 33, 80,222,220,200,185,104,149, 42, 53,151,188, 42,197,106,182, - 73,188, 27, 9, 76, 99, 0,174, 26,216,156,253, 82, 77,212,239,106,106, 82, 13, 9,204,212,241,224,161,225,109,204, 92,196,161, - 48,135, 19,218,150,135,156,216,212, 40,187, 13, 97,102,115,183,121, 75, 91,180, 80,107, 35,103,122, 95, 65,107,197, 85, 85,106, - 0,119,100, 50,177,138,192,134,128, 76, 86,107, 3,190,123, 45, 57,147, 67,225,103,224, 59, 48, 49,199,244,198, 15,255,234,225, -131,135,175,254,212,207,116,137, 75,206,134, 4,218,172,198, 51,163,222,121,109, 94, 83, 9, 16, 9, 74,213, 42,166,128,236, 55, - 53, 5,179, 92,234,203,159,249,201,255,242,239, 62,252,135,255,235,255,177,151,243,206,114, 25,136, 33,132,251, 15, 31, 28, 30, - 94,255,249,159,121,245, 15,254,236, 59,255,207, 55,190,251,219,127,239,179, 55,159,186, 89,242,180, 62, 57,122,112,247,246, 91, -111,188,245,246,157,219,143, 14,247, 9,249,151,190,252,133,159,253,210, 79,132,190, 91,229, 2, 10,196, 13,209, 0, 72, 14,154, - 55,228,213,122,146, 42,121,202, 76, 52,230, 60,149,186,189,177, 65,132, 32, 16, 34, 35, 50,135,200,132, 69,106,140,158, 20,176, - 0,160,162,185, 22,239, 30, 34,140,162,121, 44,117,171, 27, 86,148, 25, 81,213,204,180,245,225, 26, 30, 28,175, 78,115,174,213, -140,180,170, 33,240,162, 15, 42, 98,104, 96, 45, 36, 76,140, 41, 5, 50,189,114,241, 2,160,173, 78, 78,239,222,223,253,224,225, -195, 90,100,125,186,218,220,222,222,220,218, 58, 58,216, 39, 38, 66, 82,163,148,250,147,253,131, 11,231,207, 1,234,133, 75,231, -190,246,157,191,202, 37, 39, 76,171,213,233, 98,177, 17, 13, 5,117,107, 99,235,250,213,171,111,220,126, 39,105, 96,228,162,182, - 96,142,172,155,195, 32, 85,214,182,134, 92, 2, 71, 23,185,167,169,174,171,228,154,137, 8,148,137, 25, 9,173,162,129, 21, 81, - 50,237, 82, 44,103, 45,155, 33, 0,179,167, 90,154,195,198,140, 0, 2,250, 35,230,101,155, 85, 13,163,202, 76, 59,106,253,212, - 4,216, 78, 46, 70,111,148,103, 38, 66, 96,130, 82,220, 52, 66,190, 51,114, 54,125, 96,170,185, 84,151, 4, 0,138, 86,107,239, - 79, 84, 21, 85, 96, 34,109, 88, 21,112,202,143,155,187,131,119,199, 49, 17,153, 20,147,128, 0, 86,165,189, 57, 12, 21,125, 49, -168,196, 13,154,128,109,131,170, 10, 4,132,104,170,226, 59,238,179,158, 3, 48, 3,106,141, 58, 0,200, 52, 3,245, 12,188,238, - 10,207,244, 42, 32, 96, 68, 4,168, 62, 14,152, 53, 24,167, 17,136,154, 25, 19,154,161,145, 67,113,153,200, 28,181,143,140, 64, -134, 14,161, 67,107,225, 82, 3,172, 32,145,189, 95,154,170,169,206,226,181, 91, 43, 9,185, 54,243,143, 74,173,104, 94, 82,224, -197, 18,138, 0, 8, 1,160,120, 12,157, 34, 17, 6, 3, 77, 49, 96, 35, 27,160,255, 10, 6,216,156, 22,136,134,216, 90, 62, 21, -152,201,204,136,141, 42,130,130, 48, 0,114,155,250,112,238, 97,199,134, 74,241,211,219,187,166,249,204, 60,237, 6, 28,192,170, - 34,136,192,192, 16, 8,218,237,133, 0, 1,188,174,143, 60,159,133,214, 66,255, 85,100, 44, 37,165,228,119, 93, 3, 80, 45,166, - 74,148, 20,129,108,182, 50, 33,129, 26, 81, 48, 80,228,132, 72, 98,130,166, 42,168,106, 80, 12, 12, 24,233,220,206, 14,157,219, -190,113,253, 18, 1, 17, 71, 83, 59, 58, 62,126,255,254,195,253,253,227,187,187,143,223,253,224,193,254,254,227, 10, 24, 57,165, - 24, 99,138,139,161, 31, 82,215,165,184, 92, 44, 22,253,176, 88, 14,169,239, 23,221,144,186, 94, 74, 9,137, 56,164,148,250,190, - 11, 68,189,225, 0,136, 62, 19,228,169,230, 60,213, 82, 4, 85, 40,173,203, 88,243, 24, 44, 7,208, 64,144, 98,240,155,165, 33, -149,170, 72,234,212, 85,212,234,163,114,245,236,164,206,205,226,205,107,131,118, 54,119,183,157,183,232, 71, 96, 27,175,121, 66, -242, 22, 56,199,251,157, 45,122,253,110,136,206,128,245,250, 52, 36,255,182, 89, 21, 0,116,220,121,195,204, 56,151,187, 29,219, - 22, 99, 87,167,252,163,255,239, 91, 99,145, 87,191,244,101,144, 92,114, 37,246, 10, 94, 7,164, 10, 48,183, 11, 41, 34, 18,113, - 8, 96,104,181,182,168,173, 3,173,213,187,132,166, 50, 78,218,117,175,124,241,103,255,171,146,255,151,127,244,187,170, 86, 16, - 82,215,125,226,169,107, 55,174, 93, 44,180,245, 83, 95,252,242,239,255,241, 87,223,124,239,157,167,110, 94,127,252,240,238,135, -119,222,251,209,235,175,127,248,240,193,106,189,190,250,196,165,223,248,165,175,124,250, 19, 47,172,214, 57,151, 2,134,134,228, - 34, 44, 48,207,105,114,116, 86,236, 48, 12,143, 15, 14, 61,107, 84,107,109,226, 77, 0, 19, 99, 34, 51,139,129, 79, 78, 87, 6, -200, 28, 74,169,216,166,249, 14, 0, 0, 32, 0, 73, 68, 65, 84, 0, 48, 78,147,136, 18,177,223,241,167,169, 78,181, 44,210,230, -209,201,236, 65,110, 62,101, 0,213,117,201, 0,166,100, 94, 86,141, 40, 7,167, 83, 21, 56,157,214,170,194, 5,121, 24, 8,105, - 53,213,141,197,242,201,107, 87, 84, 1,205, 98, 8,170, 16,152,137, 3, 32, 94,190,254,228,234,248, 88,193,136,130, 72,145, 90, - 56, 17,102,187,114,229,218,135, 31,124,120,237,252,246,237,251,123, 93,234, 8,105,202, 35,165,193, 4,250, 56, 60,251,177,103, -222,124,239,109,191,246, 91, 41,194,174,240, 88, 85, 25, 82, 55,230, 73,209,186, 20, 77,109, 28,143,195,153,255,206,107,177,154, -185,202, 26,246, 24,169, 39, 96, 14,140, 88,221, 84,219,142, 60,156, 67, 72,104, 77, 43, 55,143, 73, 80,112,182,109,243,201,105, - 59, 51,204,136,177,181, 88, 0,128, 4, 10, 85,177,212,234,187,110, 59, 11,182,146, 17, 16, 32,156, 78, 83,173,149, 40,148, 42, -162,160, 85,213,212,115, 73, 6, 90,179, 2, 96,241,230,179, 51, 72,151,106, 53, 75, 8, 0, 32,197, 28,245,104, 4,145,156, 56, - 8,129,200, 2,174, 38,149,230, 3,113, 79,112, 75,214,170, 88, 11, 95, 55, 49,209,192, 76, 92,122, 80,160,128, 8,214,165,132, -222, 44,104,138,166, 78, 71,160, 64, 10, 38,165, 26, 66,138,254,110,145,150, 65,197,136, 48,193,124,192, 25, 88, 0,102,100, 53, -160, 16,163, 89,169,238,255,116,132, 84,187, 63,185, 66,234, 83, 87,171, 53, 69, 48, 85,241,244, 92, 19,236, 17, 76, 57,250,202, - 25, 99, 74,136, 24,136, 67,160, 82, 73, 5, 20,194,153, 48,163,230, 44,115, 32, 2,164, 64,129, 61, 69,217,228, 47,194,224,134, - 74,153,243,239,238,109,132,134,229, 34,140, 38,213, 85, 51,178,118,136, 0, 96, 68, 42, 46,113, 49, 0, 2, 35,198, 20,171, 56, -218, 11,220,217,195, 78,152,117, 6,150,123,230,137,204, 76, 84,197,188,189, 22, 27,201,171, 26, 48,113, 32,132,136, 48,130,225, -184, 94, 7, 64, 41, 5, 0,106,117, 82, 10, 1,128,214, 90, 91,219,164,249,220,216,108, 38, 0, 96, 66,232,207,114,101, 10, 85, -231, 21, 40,130,138,130,175,121,167,108, 90,135,174,123,249,217,167,136,136, 3,155,192,233,106,117,255,225,222,251, 15,118,239, - 62,124,180,127,116,180, 58, 62,126, 92, 30,139, 40,133,200, 68, 49,134, 46,117, 67,223,111,110, 44,150,221,178,235,220,176,223, -245,156, 32, 82, 23, 83, 76,125,138,129, 99,136, 93, 23,227, 34, 50,149,170, 99, 30, 49, 46,214, 57,173, 78,215, 42, 50,141, 35, - 83,141,108, 93, 64, 4,101, 20,196, 8,170,193, 68, 76, 75,153, 50,167, 14, 66, 12, 68,160,234, 9, 44, 66,171,165, 58, 54,217, -119,252,168,115,105,136,175,216,231, 71,198,159, 29,155,137, 60,115, 23, 8, 50,162,168,163, 15, 0,189,165,207,188,227, 27,206, -194,132, 14, 62,155,105,242,134,104, 76, 33,245,253,189, 15,110,191,245,214, 91, 79, 92,125,242, 83,207,220,146, 90,196,129, 14, -170, 68,173,248,219, 95,203,205, 84,103,134,254,212,250, 0,230, 64, 31, 4,145,106, 90,165, 86, 51,236, 54, 54,215,171,211, 85, -169, 63,253,115,191,246,151,255,230,181,239,191,249,225,185,243,203, 47,125,230,197, 39,175,223,192,180,179,125,233,218,147, 79, -222,184,245,236,115,223,254,214, 55,191,243,205,111, 60,122,116,239,157,247,239,222,223,221, 77, 49,252,205,159,254,194, 87,190, -248,202,206,206,198,241,233,137, 9, 57, 55, 10,193,152,216, 89, 75, 51,107, 15,204, 32,231,130,102, 8, 18, 2, 29,159,172, 17, - 33, 5,114,173, 53,134,212, 26, 65, 9,203, 52, 30,156,172,159,189,114, 65,204,200,231,127, 0,118,118, 23, 82, 85, 72, 28,136, - 24, 72,207,116,198, 0, 8, 8,147, 72,171, 9,118, 78, 91,155, 78, 3, 34,104,181, 44, 85,170, 25,209, 82, 58, 2, 36,198,157, -115, 59, 0,104,104,165,214,245, 56, 10,104,169, 19, 24,108,110,109,159,191,120,241,209,131,251, 30, 37, 83, 0, 14,105, 26, 87, -177, 22,209,122,253,210,229, 49,215,199, 71,167,203,197,162,230, 98, 93, 87, 4,166, 90, 46,156,191,240,226,115, 47,253,245, 27, - 63, 52, 84,100, 38, 3,231, 65, 86, 21, 14,129,152, 83, 96, 21,157,242, 20, 83,164,166,146, 35, 18, 86, 49, 62, 51, 91, 48,197, - 64, 8,192, 68,103, 65,182,249,184,110,231, 49,205, 20,106, 36,240, 24, 53,120,220,135, 8,204,136, 49, 96,155, 70,125,211, 91, -192,203,118,168,157,100, 76, 14, 67, 7, 36, 21,209,246,242,100, 85, 37,164, 46, 6, 53,161,179,248, 44,136, 15, 46, 49, 34, 88, - 28,167,170,214,120,185,222, 17,232, 99, 10,131, 49, 48, 18,120, 86,209,237,227,103,125, 33,106, 6,140, 86, 61, 58, 2,106,202, - 4, 69, 45, 17, 89,169, 13,186, 99, 58, 0,136, 32, 35,213, 25,240,109,160,166, 22, 18,171, 97,159, 72,170, 77, 69,212, 32,250, - 90, 81,193,200, 98,136, 37,103, 49,175,254, 1,114,235,154, 9,130,183, 0, 97,196, 48, 89,241, 87,130, 33, 84,173, 0, 16,136, -196,148,137,138,202, 89, 3,179,155,233, 2, 17, 16,144,153,137,113,194, 58, 59, 74,103, 74, 9, 32,145, 26,136, 89,240,205, 37, - 81, 66,119,121, 85, 21,181, 90,205, 89,194,128,236,126,156,217, 92, 17, 40, 84, 45, 58, 85, 71,209,104,129,172, 82,212, 84, 5, -252, 4, 80,107,186, 79,187,227,152,162, 81, 96, 0, 20, 85,213, 25,170,131,138, 94, 72,171, 96,218,160,184, 72,100, 82, 35,181, - 46, 51, 19,136,145, 75, 21, 36, 12,136,168, 86,177, 38,140,110,236, 83, 80, 4, 34, 34, 0, 82,200,136, 17,220,138,225, 95, 52, -194,177,150, 15,118, 31, 46,151,155, 1, 64,212, 11,183, 81, 9,130, 97, 36,110,142, 44,152, 95, 68, 72,190,253, 50, 3,179, 36, -206,224,246,163, 76,196,237,153,173,203, 14, 99,214, 90,215,162, 0, 85,197,105,111,215,110, 92,186,113,227,178, 84, 83,173,185, -216,193,201,241,122, 53, 30,156,172,238, 62,120,252,232,224,120,255,240,228,224,240,224,246,251, 50,137,116, 33,244, 67,183, 53, - 12,155, 27,203,197,224,170, 78, 23, 99, 8, 49, 6,102, 14,188,232,135,126,177, 97,128, 76,212, 49,165,141, 1, 16, 77,151,185, -202,152,215,171, 82, 84,205,196, 8, 52,231, 26, 0,204, 36,151,105, 69, 20, 49,154, 0, 96, 96,207,163,148, 60,149, 34, 49,117, - 76,237, 64, 7,248,104, 63, 51,191,141,231,182,207,150, 92,197, 25, 85, 67, 42, 34,254, 84,139, 81, 74, 64, 51,116, 12,207,184, -144, 6,222, 60, 98,237,219,105, 10, 24,160, 27,134, 31,254,187,111, 63,184,183,251,153, 47,124,113,217, 15,165, 76, 96,103,163, -135, 11,212,216,182, 88, 8, 94, 54,227, 99,156,169,168, 6, 78,157, 81, 33, 51, 45,160, 90, 85,133, 25, 79,215,211, 56, 78,160, - 19,199,225, 79,255,244,143,150,139,254,223,127,245,147,215,111, 92,235,250,157,173,203, 31, 59,127,233, 98,223,167,163,195,195, -131,195,147, 90,243,215,190,241, 53,230,184,187,127,116,227,210,185,191,243, 27,191,120,243,230,149,170,245,100,157, 17,137, 24, -173,101, 14,128, 29,118,229,127,247, 34, 68,172,146, 93,135, 58, 30,215, 27,105, 80, 85,230,104, 64,162, 58, 78,217,192, 98, 72, - 1,153,129, 3, 7,154, 53, 6, 10,164, 34,165,100, 38, 10, 76, 10,186,158,214,196,140,136,162,232,143, 16,114,195, 52,151,156, -219,173, 8,201,180,168,168, 49, 37, 39, 22,130, 34, 32, 17,136,212,113, 66, 83,184,121,253,210,102, 63,148, 82,215, 39,171,227, -211,147,245,152,189, 7, 0,145, 21,244,226,181,235, 7, 7,251, 37,103,100,102,235,197, 86,253,162,159, 86,211,141,235, 87,111, -223,185,247,233, 23,159,255,131, 63,255,150, 72,103,160, 37,231, 16,186,117, 30,197,236, 83, 47,189,248,248,241,131, 41, 79,136, - 88,173, 34,176,136,169,104,129,106,102,145,217, 84,178, 40,163, 54,127,171, 95, 2, 29,201,224,166, 5,194,196, 92,196, 40,134, - 64, 44, 94,165,209, 50,214,200,140,115,109, 19, 8,248, 38,137, 56,132, 48, 44, 78,167,201, 27,238,213,123,190,124,186,167,217, - 97, 0,160, 34,174,126, 55, 41, 86,144, 17,144,130, 80, 83,126,128, 72, 84, 83, 74, 42, 90,165, 18, 98, 17, 53, 53,138, 92,114, - 54, 11,137, 48,144, 15,239,254, 3, 2, 59,252, 21, 77, 85,181,162,176,167,248,221,138, 43, 96,181, 86,215,137,107,153, 31, 83, -119,188,128,219, 54,212,117, 30, 60,235, 64, 37,157,131,135,136, 2, 64,168, 34,196, 84, 53,231, 76,137, 3, 98,141,142,166,116, - 29,218, 93, 83,173,198, 4, 77,149,137, 2, 4, 31,110, 24,168,168, 98,192,128, 9, 77, 92, 82,239, 98, 40, 86, 40,192,152, 91, -226,156,230,214,117,239,121,106,183,104,131, 92, 37,134, 96,106,162,106,136, 17,161,158,117,166,249,215, 85,102, 68, 55,104, 41, -234,127,156, 6,221, 57,155,230,204, 51,213,106,204,136, 74,204,158, 69, 34,100,192, 90, 74, 69,211,192, 84,154,212,210, 92,173, -170,130,236,169,224, 6,129, 48, 66,153,239,239, 98,134, 96,138, 58,167,123, 81, 77, 29,142, 26, 35, 35,133, 73,215,108,160,206, - 18,199, 96, 6,134,243,163,211,178, 83,140,128,193,160, 82, 67,219, 51, 5, 96,156,171,217, 34, 83,160, 90,167,245,233,176,181, -173,166,165, 22,241,156, 57, 0, 71,118, 51, 57, 82, 80,255, 4,125, 87,238,165, 87,218, 66,182,237, 38,137,243, 26, 66,149, 40, -168, 22, 54, 80, 3,246,175,176,137,154, 77, 83,117,170,164,243, 99,206,109, 46,207,109,111, 94, 53,125,241,249,155,166, 86,198, - 73, 21, 14, 78, 78,246, 14,143,247, 14, 79,223,252, 96,247,246, 7,119,199, 92,204, 96,209,117,219, 27,139,237,157,237,197, 98, -177,181,177, 72,169,219, 72,201, 66, 40, 89, 40,208,208, 45,150,253, 34,118,161, 11,137,200,182,151, 11,164, 64,115, 10,118,255, -232, 48, 32, 5,142,125,183, 96,138, 97,102, 63, 53, 16, 77,149, 10,103, 76,188,143, 4,148,121, 91,127, 38,208,123, 76,194, 20, -124, 17,102, 13, 18,133,102, 34,213,252,254,214, 74,100, 29,107,221,136,121, 56, 87,115,206,140, 28, 12, 93, 0,165,239,127,235, - 95, 31,174,203, 79,253,252, 47,177, 73, 41,121,246,217, 52, 20,178, 59, 56,189, 17,121,190, 36,182, 75, 48, 24,123, 66,219, 68, -181,106,169,163,138,212, 82,133,113,125,180,183,220,188,120,120,178,126,227,175,190,113,231,131, 7, 47,189,240, 50,119, 27,113, -227,252,141,167,158, 30,250,206,196, 14,246,246,238,188,251,250, 59,111,189,117,111,119,119,189,158,142,198,131, 47,253,196, 43, -127,251, 63,248,249,216,165,105,204,205,201,227,234,101,131,249, 52, 48,148, 7,186,144, 24,208, 20,132, 17, 3,194,233, 42,111, -246, 11, 51, 99, 48,102,174, 82,181, 74, 68,170, 82,198,113, 92, 46,187,144,194,208,119, 86,205, 89,176,216, 5,207,124, 84, 81, -164, 48,101,113, 67,120, 34, 12,204, 83,173,104,158,195,196,108,198,206, 92, 67,195,121,137, 7,145, 40,134,200,161,212, 98, 64, - 6, 80,205,106, 45,207, 60,117,107,216, 88,174, 78, 78,205, 96,156, 10, 18,153, 97,157, 38,151, 88,251,229,230,249,203,151,238, -221,185, 77, 72, 70,172,156,200,106,236, 4, 9, 17, 37,117,225,198,213, 75, 31, 60, 56,232, 2,155,141, 27,155,157,168,183, 63, -224, 11,207,127,252,181,215, 95,139, 68, 98, 38, 42,161,163, 72,104,170,181,212,156, 98,159, 82, 31,235,152,197,212, 85,133, 48, - 78,197, 16,196, 72,161, 32, 88,140,193,123,231,130,161,215,179, 27,217,220, 64, 11,166, 31,205,243,222, 22,108,110, 13, 33,234, - 83, 44, 34, 0, 16,217,187, 79, 3, 80, 97, 96, 53, 69, 52,247, 47, 65, 53, 0, 24, 58, 94,175, 29,100, 67,106,237,195, 52,243, - 18, 31,205,165, 50,146, 66,179, 89, 16, 97,205, 98, 10,181, 42, 16,214,102, 0, 53, 80,130, 0, 0,100,200, 77,179, 38,136, 28, - 38,169,102, 80,205, 49,123, 64, 96,196,148, 85,234,140,225, 64, 98, 85, 84, 5, 66,168, 30, 16, 65, 37,246,118, 63, 80,113,245, -160, 57, 60, 72, 9,137,220,202,222,199, 0,132, 81, 2, 40,120,236, 3,129,136,218, 77,137, 34, 69, 8, 43, 24, 21, 42, 0,145, - 53, 21, 28, 1,205,196, 29, 89,156, 8, 17,201, 24,217, 25,104,174,171, 27, 34, 51, 88, 67,187, 18,186, 94,228,146, 95,169, 10, -104,129, 88, 21, 16,244,172,202,193, 15,202,192,132, 68, 28, 88, 12,139,212,160, 54, 12,221,234,100,244,142,145,220,212,175,255, -159,170, 55,107,150, 44, 59,178,243,150,187,239,125, 34,226,198,205,155,121,115,170,156, 10, 53,163, 38, 84, 1, 40, 76,196,212, -104, 16, 96, 91, 55, 69,209, 68,170,173,141, 47, 52, 61,203,244, 38, 62,232, 63, 72,250, 29, 52,227,147, 30,245, 38,202,196, 70, - 19, 93, 93, 13,160,107,206,170,156,231,225,102,230, 29, 35,226,156,189,221, 93, 15,190, 79,100, 17,102, 48, 20,204,178,110,198, -141, 56,113,142,239,229,107,125,203, 17, 51,175, 48,156, 19,251,202, 33,153, 69, 18, 87, 77,204,139,208, 97,213,213,226,183, 98, - 18, 78,137,221, 57, 30, 73,102, 70,236, 98,158,178, 12, 85,153,201, 84, 99, 14,165,156,136, 89,221, 65,156, 19, 45,208, 59,165, -156,179,129,136, 93, 85, 89, 82, 34, 30,162,177, 72,214, 50,102,115,243,197,122, 94, 61,208,161,138, 85,163, 30,152,147, 0,243, -205, 77,181,214,176, 66,148,220, 85,184, 57, 30, 36, 73, 25, 26, 90, 7,129, 92,244, 54, 76, 58, 35,196, 81,150,216, 19, 68, 85, -153, 57,199,254,140,148, 51,145, 5,180,131,189, 1,163, 98, 24,214,224, 57, 3, 22,161, 52,115,168,147,164,196, 56,125,226,248, -185,147,219, 66,252,207, 63,128,179,220,125,178,119,231,222,131,219, 15,118,110,220,223,185,113,247,174, 87,103,145,141,141,233, -246,241,227,105, 50,233,152, 59,145,106,158, 82, 18,166,141,217,198, 36,231,141,217,100,115, 62,223,152,205, 38,147, 89, 55,155, -110,228,105, 34,114,146,220, 77, 83,179, 36,180, 41, 27, 4,116,121,234,196,156, 82, 96,180,163,127, 18, 68, 48,246,181, 65, 22, - 62, 14,245, 16,226, 81,239,244,117, 13,147, 90,205, 41,183, 14,171, 49, 19,101, 35, 3,169, 29, 5,136, 8,220,205,102,139,221, -221, 79, 62,253,211,214,201,179, 63,251,193,187,168, 67,181,214,125, 17,137, 37, 52,198, 41, 64, 9, 13,159,170,227,142,117, 60, - 35,215,106, 90,181, 68, 68, 80, 74, 45,253,176,218,220, 58, 33,179,141,175, 62,251,227,149,171, 87,230,243,205,119,222,126, 43, - 79,183,231,167, 47,158, 63,127,206,171,238, 31, 60,123,250,104,231,206,205,107,183,238,222,186,251,104,231,201,238,222, 75, 23, -206,253, 15,239,189,190, 49,223,128,164, 97, 24, 28, 78, 36, 24, 67,159,194, 29,188,140,231, 9, 30, 31, 48,213,193,101,176,162, - 74, 36, 14, 48, 83,206, 9,210, 46, 51, 38, 97,105,120, 22, 38,137, 30,175,104, 63, 51,247,148, 83,151, 82,100,207,160,230,102, -137, 64,132,148, 58,110,128,201, 96,116,234, 80, 43,195,105,140,247, 0,166,234, 41, 39, 33,105,203,166, 17,223, 5,247, 11,103, -207,104,117, 85, 61, 92, 45,158, 29, 30, 12, 90,170,150, 85,127, 4, 98, 3,216,234,169,211, 47, 60,123,252,164, 12, 71,102, 76, - 44, 44, 72,221,108,113,176,119,254,220, 11,143, 30, 63,251,206, 27,175, 93,191,253,183,132,105, 34,152, 86, 22, 81,211,156, 38, -167,183, 79, 30, 63,126,226,209,179, 93, 2, 18, 7,163, 46,248, 21,168, 85,145,189,184,119, 57, 39, 97,172,196,220,205,140, 37, - 53, 35, 91,196,134,132, 59,242,216,192, 52, 7,237,168,206, 68,233,110, 40,245,156,132,195,251, 96, 90,149,186,220,149,178,128, -251, 68, 18,179,120,172,107, 91, 21, 20,172, 42, 9,143,140, 54,129, 27, 75, 2,216, 81, 97,128, 4, 57,183,237, 0, 86, 90,226, -146,140, 28, 94, 40, 57, 81,187,193,238,165,193, 82,141, 92,140,108,132,117,113, 34,142,206,133,144, 17,132,161,230, 17,225,119, -115, 9,219,139, 69, 60,133, 93,107,243,116, 83,236, 42,139, 71, 88,219,249,185, 51,205,220,201, 0,170,102,211,148,224, 40, 67, -141, 26,135,248, 20, 19, 71, 95,139,155,170,144,120,107, 94, 72,212,218,214, 98,132,172, 49,182, 55,219, 59,143, 5,231,238,109, - 83,168, 81,231, 48,206, 82,141, 61, 76, 97,177, 45,117, 53,205,179,202,102,214, 24,159,107,168, 15, 11, 57, 59,220, 25,232,186, -108, 43,173,168, 34, 73, 93,213, 60,210, 91, 62, 26, 27, 21,222,177, 24,185, 52,230, 64, 40,187, 34,196,194,210, 91,105, 30, 22, - 52,246, 22, 83, 50,118, 2,165,196,170, 14,102,215,138,176,116,131, 0,228,204,203, 2, 87, 37, 17, 34,202,194,193, 33,111,160, -148,241, 57,148,137, 33, 32,165, 32,100,197,138,133,155, 6,177,126, 88, 89,155, 92, 71,195,118,226,148,132,167,147, 73,211,142, -198, 7, 26, 19,153, 66,136,225, 76, 41,181,208, 68,107,111,130,179,146, 91, 56, 68,188, 49, 93,157, 24, 6,141,126,191, 70,133, -129, 1, 21, 96,139,177,108,180, 26,130, 88,132, 81,188,101,140,214,116,134,118, 14,245, 10,148,170,181, 84, 16, 78,206,167,231, -190,243,198, 15,223,125,221,221, 87,125,217,121,118,240,224,201,211,199,123, 7,207,118, 15, 14, 14, 15,158, 14,195,208,247, 6, - 22, 18,136, 39,226,217,100,163,203,210, 77,186,141,217,116,115, 54,219,220,152, 59, 56,141,187,211,192,131, 71, 83, 20,218,127, - 37,246,245,110,173, 55, 30,110,193,188, 49,183,218,144, 40,129,129,104,252,188, 40,183, 39,107,118, 29,145, 4, 34,230,104, 27, -160,112, 97,173, 91, 63,220, 13,156, 4,112,184,118, 93,247,248,222,157, 47, 62,251,244,213,119,222,191,112,246,116, 93, 29, 58, -152, 36, 16,106,205,189,227,223, 64,182,160,189, 74,106, 85, 83,110, 30,152,251, 90, 93,213,180, 58,119,229,104,255,240,240,232, -248,246,201,203,159,127,252,217,167,159,178,227,149, 87, 94,218,154,111, 15,178,121,242,204,185,141,205,121,191, 90, 62,125,242, -248,209,189, 59, 15, 31,220,191,125,255,222,245,219,119, 87,253,240, 47,126,254,131, 95,255,242,135, 91, 39,142,221,186,126,227, -227, 63,126,241,193, 15,222, 42,131, 53, 90, 76,251,148,156, 99,141,220,106,137,124,108, 46,144, 58,172,170,122, 28, 46,166, 41, - 37,112, 32,108, 73, 68, 58, 73, 34,139, 97, 8,115, 65, 18, 78, 93,167,112,135, 11,183, 14,160,234, 74, 78,139, 50,144, 68,115, - 17, 70,238, 51,192,236,238,164,134,234, 30,186, 31, 27, 65, 18,103,227,160,120,154,249,248, 14, 17, 57, 44,119,249,226, 11,103, -172,106,191, 42,123, 7,135,139,197,202,106, 61, 56, 92,172,106, 69, 64, 38, 84, 39, 27, 27,167, 95, 56,127,235,250,101, 38,102, -107, 79,136,110, 54, 75, 41,159, 84,123,178,179,247,234,133, 23,110,222,223, 33, 80,191, 90,205, 55, 55,225,182, 26,150, 27,147, -217,171, 47,191,124,243,238,189,161, 95, 17,145,169,133, 63,156,152,212,145, 57,205, 39,211, 85, 63, 48,113,180,142,146,136,185, -115,123,250,143, 29,190, 20,150, 43, 86,173, 97,177, 72,180, 62, 31, 54,201,206,213,173,221,245,161,145, 16, 2, 28,232,181, 78, -168, 83, 83, 14,159,182,151,184, 2,189,154,147,153,219,114,217, 51, 39,181, 26, 55, 59, 7, 44, 88, 75, 70, 22,199,228,112,133, -135,175, 64, 13, 76,164, 16, 98,141,111,104,172,229, 3,190, 13, 30,141, 90,193, 45,176, 38,130, 51, 97,157, 26,116, 55, 11, 47, - 83,108,194, 25,236,129, 18,106,245, 61,207,149,122, 33,110,127, 47, 53, 92, 31,113,164, 9, 61, 4,237, 38,145,183,188, 97, 59, -208, 75, 78,210, 23,175, 90, 27,164,130,200, 35, 37, 5,103,225,112, 33, 55, 76,187, 97,240,106, 86,205, 61,137,176, 0,166, 6, -142, 97, 62, 35,253,183,147, 89,124, 79,133,106, 17, 35,167,102,134,135, 6,229,139,204, 2, 38,107,166,150,132,205, 34, 28,143, -234, 70,204, 26,223, 79,197, 36, 75, 39,137, 28,108, 24,180,138,208,180,235, 68,132,170,182,137,154,216,169, 17, 68,155,233,156, -131, 91, 2, 38,120,172,224,146, 4,151, 47,178,200,165, 26, 51,192,100, 80,161, 36,146, 3,213,162,238,165, 84, 17,182, 90,135, - 90, 39,153,196,186,168,129,131,147, 1,169, 81,245,137,133, 42,216,154, 1,132,114, 78,234, 70,165, 48, 75,102,153, 77, 82,150, -137,161,180,105,159,220, 65, 67,181,236,193, 45,246,117, 29,187,155, 5,172,125,172, 58,183,176, 70,121,187, 98,169,185,121,188, -117,107, 17,160,202, 36, 99,219,118,108,179, 1, 55, 37, 98,176,130, 57,162,159,209, 24, 23,184, 45, 85,196, 70, 75,178,168, 97, - 48, 95, 28, 28,181, 74, 85,248,201,173, 99, 39,143,111,182, 56,215,160,139,126, 24, 86,195,193,170, 28, 44,150,123, 71,139,103, -207, 14,158,245,253,163, 39,187, 67,237,157,132, 8,155,179,233,108, 58, 75, 80, 71, 44, 36, 90, 81,130,185,131, 56,121, 36, 9, -215,225,203,231, 12,248,248,215, 51,198,204,159,251, 55, 7,113, 49, 50,226, 64, 57,121,220,219, 91, 1, 76, 99, 40,124,131, 10, - 39, 65,165,148, 46, 79, 31,222,189,115,249,203,207,223,255,241,207,182,143,111, 14,203,165,187,147, 52,168, 60,173,253,149, 49, -253, 71, 51,141, 42,115, 6, 25, 89,112, 55, 28,174, 62, 84, 51,167,110,186, 90,173,142, 14,158,156, 62,119,238,240, 96,247,159, -254,254,111, 47, 95,191,122,102,235,212, 91,239,188, 86,117,206,243,147,103,231,155,148,120,239,217,211,197,222,222,206,206,253, -155,183,238, 92,191,117,235,206,227,135,167,142, 29,255,247,255,230,183,223,127,255,221,101,223, 31, 29, 29,157,187,120,254,225, -195, 79,191,188,114,231,237,111,191,210,175, 86, 68,225, 87,115,184,122,251,118,199,239, 69, 99, 70,197,205, 92,213,172, 22, 11, -120,136,128,136,186,196,230,106,234, 41, 65, 93, 87,125, 15,226,105,215, 5, 47, 16,166, 17,110,234, 82,231,234,149,106, 25, 52, -165, 20,143,116,115,205, 57,179,172,160, 32,167,232,175,171,106, 99,193,166,177,128,157,212, 84,128, 73,202,195,176,138,216,122, -206,221,198,100,114,226,228,246, 96, 86,108, 88,244,253,106,181,116,247,195,163,197, 48,244, 16,118,171, 76,100,240,147,103,207, -238, 60,122,176, 56,220,165, 36, 34, 89,109,200,110,253,225, 33,106, 29,250,254,187,239,124,251,112,185,122,252,244,144,133,167, -117, 34, 93, 71, 64,213,186,125,252,196,235, 47,191,252,249,151, 95,128,197, 70,108, 88,220,141,138, 41,220,212,244,112, 89, 72, -181,217, 95,198, 35, 8,183,103,116,104, 39, 68,194,174,202, 96, 87,131,140,214,234,241, 72,182,174,203, 14,221, 70, 1,114,103, -102,117, 31, 34,224,230, 22, 93, 35, 34,100, 5, 0,216, 34,196,167,146,169, 95, 90, 70, 72,131, 62, 38,126,224,160,226,102, 78, -234, 72, 85,205,181,170,138,136, 65,157, 73,139, 69, 19,155,193,205, 33,241,100,136, 9, 16,225,239, 70,137,192, 14,168,227, 4, - 70, 41,203,112,213, 43,197, 60, 26,105,108, 25,123,148, 67,211, 11,253,146,147, 72,220, 77,130,139,204,241, 92, 36, 99, 73,234, -214,187,103, 17, 50, 3,145,186, 39, 34,102,104, 4,130, 56,177, 88,116,243,176, 19, 17,117,146,122, 45,205, 97,144,147,215, 26, -241, 31, 48,151, 90,153, 60, 17, 57,161, 87, 21,146, 44, 66, 65,225, 2,216,226,221,143, 22,209,216,104,144, 19, 33, 5, 83,172, -117, 61,113,188, 5,164,148,114, 98,138,178,139, 8,160,169, 27, 44, 70, 14,143, 2,103, 18,102, 17, 2, 23,211, 97, 40,155, 27, -179,148, 68,213, 98, 81,101, 96,137,158,224, 56,114,162, 37, 39, 55,186, 92,212,122,162,106, 72,205,169,174,227, 25,148,225,128, -198,128,196, 65, 78,176,102,226, 52,133,103,150, 65, 28,165,134,103,193,171,115,107, 29, 85,162, 4, 39,119, 99, 39,103, 39,181, -212, 90, 87,184, 20, 35, 32,132, 33, 80,231,228,230,158,132,188,182,195,157, 48, 80,189,245,137,182, 38, 67,135, 86, 72,138,150, -212, 22,211, 51,119,138,169, 6, 48, 99, 38, 85, 3, 57,106,108,216, 41,156,114,241, 24,107,193, 82, 18,181, 26,184,166, 56,240, - 90,147,232, 98, 90, 11,126, 15,204, 27,220,197, 0,142, 98, 26, 2,131, 53,140, 65,145, 80,118,234, 38,211,233,198,198,166,234, -133, 49, 97, 90,107,173,125, 89,148,242,120,239,232,254,195,157, 7,187,123, 79,246, 14, 18, 90, 44,185,225,250,198, 65,163, 70, - 8,194,219,208,234,227,217,165,117, 51, 68,235, 59, 70,232,204, 88, 26,224, 30,141,151,129,255, 91, 23, 66,137, 68,241, 31,214, -124, 45,180, 19,139, 8,231, 60,185,241,213,103, 55,111,222,249,224, 39, 63,155,111, 76, 86,203, 37, 26,194,220,104,100,218,211, - 56,151,182,225,175, 77, 25,161,132, 59, 76,221,173,214, 58,217, 56, 70,101,216,127,246,116,107,251, 36, 76,111, 93,249,242,211, -207, 62, 86,245,239,191,253,206,201, 83, 47, 44, 52,231,227, 39,230,147,233, 80,250,163, 39,187, 15, 31,222,125,252,232,209,253, - 71,143,174,223,186,179,191, 60,250,209,119,222,252,183,127,249,155, 83,167, 79, 44,142, 86, 22,189,222,206, 63,248,225,247, 62, -250,240,143,215,110,164, 87, 95, 58,191, 90, 13,204, 45, 93, 23,247,153,150,176,140,254, 64, 78, 44,210,215,162,170,221,108, 66, - 12,117,101,161, 32,216,170,133, 61, 38,101, 22,144, 9, 97,112, 15,186, 24,152,156, 56,119,157, 12,131, 90,212, 68,147, 36, 17, - 65, 32,141, 96,166,129,196, 38, 88,235,210,108,121, 40, 7, 75, 74, 90, 45,229,142,133,195,136, 40, 20, 91, 14,156,222,222,222, -152,205,181,244,165, 95, 45,142,142,142, 86, 75,115,148, 90,135,213, 2, 90, 35,179, 0,213,212,229,139, 47,190,116,229,242, 17, - 97,112, 51,225,132,228, 52, 63,102,176,151, 95,123,105,239,217,238,107, 47, 93,120,182,127, 25,240,161,234, 76,162,202,206, 88, -186, 55, 94,125,237,241,206,163,123,143,118,178, 68,123,154,207,114,118,226,162,101, 53,212,131,163, 85, 22, 73, 89, 4, 88,149, -194, 96,107,250,136,183,222, 33,196,232, 54,214, 62,198,138, 74,130,138, 55,206,188,110, 14, 22, 38, 53, 23, 70, 34, 82,213, 64, -197, 48,139,185, 69, 81, 55, 19,171, 18,204,133, 72,217, 21,173,143, 62,137, 84,173, 99,225,111,220,109, 21, 70,226, 94,221, 93, -173, 84,101, 80, 78,169,170,198, 25, 76, 53,110, 95, 13,119, 74, 99,248, 62, 32, 10, 68, 49,192,106,172,187, 67, 36, 39,225, 82, -135,120, 32,169, 58,177, 50, 37,114,144,197, 18,120, 13,210,118,119, 87, 55, 6, 4, 82,195,122, 16,213, 46,224, 82,251, 36, 82, -213, 19, 73,107,188,102,192,189,148, 10,145,240, 40, 39, 22, 77, 6, 2, 75, 52, 50,133, 48,101, 76,168,253, 0,184, 68,226, 21, -136,244,150,129, 86,101,197, 96, 13, 16, 70, 2,147,184, 7,210, 43, 42,127,157, 2,180,201, 60,110, 53, 97,113,191,166,177,204, -219,201, 16, 79, 58,234, 68,224,232, 75,169, 35, 79, 57, 54,139,110,206, 78,125,173,194,100,102,102, 54,168,234,106, 53,155, 76, - 82, 72,203, 32,107,232,155,134,248,111,199, 10,245, 82,181, 20,131, 57,101,160, 18,152,146, 48, 19,151,161,119, 55, 99, 35, 48, - 19, 27, 97, 53, 12,113, 18, 72,146, 72,164, 10,160,224,196,196, 81, 83,134, 74,206,141,236, 19, 68,204,182,225, 53, 38, 6, 69, -122,182, 77,218,194, 36, 66,156,152, 27, 26,165,225, 89,162, 90,135, 24,170, 52,242,233,192,108, 30,245, 91, 12, 82,144, 4, 88, -185,193, 52, 98, 23, 89,157,226, 66,148,228,225, 17, 18,114,243, 48,132, 52, 9,203, 45, 17,177,112, 29, 44,250,198,204,205,205, -198,128, 35,185,179,250, 96,218,152, 21, 12,114, 36, 18, 37,136,185, 69, 17, 6,129, 59,150, 98,106,238, 90,148, 48, 54,205, 0, - 12,246,156, 55,114,247,234,124,243,141, 75,231,132,253,201,179,189, 20,157,168, 99,124,188,173, 73,131,205,177,230, 61,133, 35, -160,177,105,209, 56, 97,161,121,183,251,219,250,224, 29,118,199, 17,119, 57,186,107,108,221,187,205,107, 28, 20, 33, 73, 34,179, -127,250,240,239,212,233, 39,191,250,117,162, 90,106,109,211, 58,161,157, 95,125,124, 28,122, 52,139,175, 73,232,110, 94, 89,178, -153,219, 80, 28, 62,221, 60,126,184,183,211, 15,122,234,133,115, 55,190,250,236,235,203, 95, 62,219,221,191,112,254,244,171, 47, -191, 90,124,186,192,100,126,252,184, 36, 62, 58,216,219,125,182,243,240,254,221, 43,215,175,222,188,123,127,239,240,232,228,246, -177,191,254,243, 95,255,217,143,191, 71,204, 71,203,101, 91, 36,139,152, 89, 5,253,224, 7,223,253,232,163, 63,205, 38,211,115, - 47,156,234,135,158, 71, 31, 8, 92, 67,252,141, 10, 65,195, 64, 62, 29, 22,139, 82,106,158,162,203, 73, 72, 84,157, 68, 70, 28, -131, 11,177,170,169, 34,177,164,212,113,138, 28,129, 0,230,205,247, 6, 2, 51,249,217,227,199,159,196, 31,133, 17,132, 65,117, -100, 10, 70, 96,143, 65, 14,102, 84, 56,134, 50,100,233,158,115,178,195,143, 88,235,185,179,103,166,147,201, 98,113, 84,170, 22, -179,246, 68, 53, 12,171,190,133,136,220,195, 25,121,236,244,169, 99,143,182, 15,158, 62,138, 49,137, 89,104,130,220,119, 50,233, - 86,165,136,251,249, 83, 39,239, 62,221,155,104, 5, 77,213,148,132,203, 80, 54, 38, 27,239,189,243,246,163,157,191,235, 75, 73, - 36,238, 38,146,138,233,193,225,106,169,213, 96, 12, 38,184,132,232, 24,164,136,198, 87, 48, 70, 50,176,155, 11,163,196,109, 62, - 5,237,207,153, 90,247, 1, 8, 66,162,120, 94,229, 27,174, 24,237, 7,176,140, 17, 33, 50, 51,167,176,119, 53,147, 73,124, 38, - 14, 53, 51, 85,181, 64, 52,162,237,106,170,185,174,145,135, 68,106,110,230,213,145,216, 97, 13,172,235,102, 14, 13,198,141, 5, -140,123,188,238,205, 43,121,192,111,224,166, 69, 77,171,145, 51, 71,225, 28,122, 2,135,203, 79,185,121,134, 89,216,107,192,145, - 45,145,100,176,142,191, 39,145,169, 55, 48, 75,184, 66,181,233, 21,193, 16, 15,186, 55,141,211,100,107,121,106,137, 39,118,213, -232,122, 99, 45,131,228, 76, 36, 93,206,181,148,161, 12, 57, 9,185, 39, 66,216,248,172,145,255, 80,204,121, 76,166,131,160,176, -230,126, 80, 85,215, 20,100, 46, 15,115, 51,198, 81,198, 5, 82, 98,231, 64, 66,181,192, 77,152,216,159,211,221,130,199, 89,172, -116, 50,237,203,146,103, 83, 38, 74, 68, 6, 90,244,133,225, 76,168, 14,141,133, 0, 36, 46,197, 52,225,229, 96,230, 70,237,118, -166,238, 98,238, 67, 45,173, 38,142,152,137, 50,101, 99,147,200,166, 18,153,122,146, 54, 82, 85, 31,220,205,201, 56,156,184,141, -139,236, 10,152, 71,141,153,143, 87, 19,155, 25,133,150, 85, 7, 90, 91, 73, 44,192,213, 81,108, 14,102, 78, 45,196, 10,107,174, - 71, 18, 18,173,145,110, 78, 68, 84,213, 27, 0,145,156,199,126,218,246, 78,173,185, 7,102,161,103, 71, 31,123, 72,243,230,234, - 10, 14, 31,170, 61,223, 52,196, 73,218,161, 68, 9, 92, 27, 12,210, 52,128, 19, 68, 70,138, 96,246, 16,160,176,176,134,163, 90, - 29, 25,240, 50,206, 48,106,166, 17, 22, 17, 81,153,164,134,248, 12,118,188,175, 69,230, 17, 73,228,205,107,110, 8, 34,118,112, - 43,219,124,219, 10, 99,125,157, 45,105, 46,118,144,196, 32,234, 17, 57, 27,227,225,163,158,204,128,117, 93,167, 58,252,225, 15, -191,159,109,110,127,255,253,239,247,253,162,214, 16, 31, 99, 87, 18, 81,169, 56,202, 39,106,239,201,154,122, 68,112,168,169,105, - 53,195,108, 99,243,233,195,219, 7, 71,139,205,141, 73, 95,151,159,124,248, 95, 46, 95,254,154, 36,189,251,206,183,207,156,190, -176,223,115, 55,217, 60, 62,157, 86, 29,118,159, 62,125,120,251,198,245,235,183,174,220,189,249,120,231, 89,238,242, 47,126,244, -221,191,252,213,143,182, 79,110,247,189,161, 88, 11,129,132,222, 66,174, 94,193,249,237,183, 95,255,248,147,171,179,141,141,173, -121, 55, 74, 35,209,158,194,163, 77,138, 0,225,196,165, 84, 53,148,213, 80, 6, 83, 87, 87, 55, 7,167,132,161,118, 34,105, 84, - 31,132,169,237, 1,153,136, 90,101,139,170,171, 85,103,203,156,143,109, 30,219,121,250, 12,142, 90,171, 65,213, 21, 1, 59, 29, - 27,233,226, 28, 49,230,207, 40,113,138,111, 62,183,142,119,118,167,111, 93, 56,207, 44,110,182,234,251,163, 69,239,196,253,106, - 24,220, 86,203,195,248, 1,238, 10, 22, 84, 37,194,249,139, 47, 46, 15,246, 85,123,212, 10,144,112,202,211,217,226,232,232,149, - 87, 95,185,113,229,234, 59, 91, 91,119,126,247,225, 80,250,213,144,187,148,171,170, 8,145,235,241,173,147,175,189,252,210,245, -219,119, 74, 29,230,147,105,117, 95, 14,195, 80, 85,198, 61, 9, 49, 85,120,102,170,234,132,132, 38,134,135, 2,209,114,228, 13, -240, 64,220, 56,232, 60, 62,214, 73, 8,222,171,166,196, 24, 87,154, 22,193, 66, 55,109, 23,100, 12,230, 34,108,230,206,204, 2, - 6,131, 69,106, 52, 94, 82,171,131,140, 43, 84,213,186,204,110, 94, 75, 53,130,122, 13, 21, 40,160,121,181, 68,205,173,155,185, - 69,110,155,192, 0, 73, 34,211,200, 94, 0, 68,210,202,199, 84, 24,197,136,148,156, 76, 98, 8,150,181,235, 37,104,223, 22,192, -222,145, 7,194, 68,225, 6,141,144,103,141,142,107,120, 78, 50,146,249,140,192,230,198,180,214, 67,161, 14, 97,104,141,253, 59, -136, 41,139,196,205, 75, 36, 17,220,132,204, 61,115,156, 42, 60, 44,144, 1, 76, 83,212, 16,188, 77, 53,208,208, 2,169, 84, 91, -218, 16,194,240, 32,197,213,234, 4, 19,130,186, 27,140, 73, 64, 36,137, 59, 38,176,193,172,148, 26,102,167,152, 7,171,147,251, - 56,248, 67, 51, 52,242,226,156, 82, 24,158, 37,177,144,184, 85, 85,139, 35, 44, 12, 68,198,109,123, 97, 81,222, 29,226, 92, 20, - 90,196, 17,202, 34, 27, 54,202,116, 74, 38, 49,164,171, 3, 16,145, 86,119,193, 60,122,162,218, 79,140,188, 37,152,217, 80,199, -252, 85, 72,246, 76,166,174,100, 72,204, 12, 33, 98, 78, 49, 76,146,187, 83, 18, 42,198,194,173,255, 14,240,118,142,105,137, 75, - 78,100,181, 53,105, 50, 89, 76, 72,174,174,180, 22, 62, 34,140, 97, 49,143,140,124,150,177, 58,187,121,131, 25,238,141, 85,228, -186,110, 97, 85,115, 85, 99, 73,102,149, 25, 26,198, 95,132, 76,193, 22,165,243,110, 65,250,245, 54, 80, 58,152,204,226, 5, 73, -252,157, 17,132,132,187,162, 21,249, 38,127,238,119,180,150, 58,107,104,232,214,235,215, 84,102, 27, 33,146, 77,137, 39, 31, 27, - 26, 49, 62,195,137,216,201,128,248,188,226,201,164,227,105,217,215,244, 2,118,234,166,179,253,167,143,255,233,143,255,120,254, - 91,175,191,242,202, 75,171,126,209,176, 98,112, 55, 29,251,100, 70, 90,153,141,176,255,181, 32,102,102,165,212,170,211,205,173, -163,189, 39,117, 40,211, 99,219,168,245,225,189,219, 87,190,254,122,119,247,224,226,197,243, 47,191,244,178,210,124,169,211,205, -205, 41, 51, 47,143,246,158, 62,125,112,235,218,141,203,215,191,190,123,255,241,170,232,247,191,243,230,111,127,241,163, 23,207, -159, 53,194,114,217, 7, 21, 11,141, 99, 31,183, 63,115,114,213, 97,126,252,248, 91,111,190,248,233,103,159,253,240,131,247, 51, -139,194,104, 92,157,132,185, 37,144, 61, 14, 12, 67, 5,211,160, 37, 39, 97, 80,113, 99, 2,136,139,105,244,102,177, 41, 17, 39, - 73, 41, 65,146,136, 68,115,131, 84,143,181, 30,149,162,179, 99,115,134,169, 27, 9,139,123,146, 4,162, 9,139,155,246,165,228, -201, 52,164,141, 52,198, 99, 36, 73,215,229,170,181,154, 18, 92,162,217,130,232,220,185, 51, 65,134, 61, 58, 90, 30, 46,143,114, - 78, 7,187, 7, 76, 88, 46,163, 21,172, 62,175,150, 96,108,110, 29,223, 62,121,246,241,206,125,138,180,159,123,206,194, 68, 58, - 12,147,217,236,196,214,137, 55, 94,190,244,229,213,187, 93,234,166,147,169, 85,115, 82,131, 39,202,111,190,254,234,253, 71,143, -118, 15,246, 99,201, 11, 18, 98, 34,130, 40, 1,161,131,216, 56,224,180, 41,166, 93,236,238, 45,148,219,100,152, 22,136, 94,231, -153,219,246,101,141,192,104,176, 77, 12,117,152,118, 73, 40,244,153,112,243,170,153,243, 40,216,195, 33,113,125, 54, 48,158,134, -235, 82, 66, 91,168, 77,126, 38,152,154,119, 34, 86, 6,211,154, 82, 46, 90,171,195,220,149,204,149,140, 91,246,211, 84,153,136, -147,112, 78,172, 1,132, 33, 38,238,136, 43,179, 26,132, 57, 11, 86,225,165, 36, 38,167, 90,213,160,132,232,118,136,209,143, 71, -115, 71, 67,174,130, 71,119,121,124, 5, 83,142, 21, 91,169, 86,107, 73,221, 4, 68, 41,172,129, 49,225, 50,151, 90,162, 25, 53, - 8, 78, 18, 53, 45, 73, 58,164, 82,213, 17,157, 63, 60,201, 19, 35,243, 98, 70,205,235,102, 64, 23,216, 86, 97,144,193, 73,205, -132,192, 2,150, 68, 76,196,173,158, 45,108, 12,238,177, 9,142,151,202, 81,165, 91,181,192,188,122, 37,112, 78,212,151,202, 48, - 24, 3,158, 89,136, 56,167, 20, 29, 29, 32,207,194,196, 73, 77,153,196,220, 13,206,145, 79,181, 6, 33,104,212,108,120, 2, 27, - 67, 88,160,181, 17,205, 56,190, 17,163,106, 71,224,148,152,217, 66,144,200,162, 0, 0, 32, 0, 73, 68, 65, 84,220, 66,219,213, - 90,219, 46,179,221, 10, 69,214,102, 11,196,237, 3,236,144,240,249, 17,160,198, 93, 98,206, 76, 52,208,128,145, 29, 97,225, 12, - 52,203, 19, 68,213, 45, 0, 85,175,165,130,200,181, 58,165, 81, 23,126, 46, 20, 51,145,122,195,165, 53,237,162, 53, 34,182,142, -145,248,156, 99, 92,143, 49,199, 92, 91, 80,200,212, 13,141,108, 48,218,106,162,113,222,227,193, 26,141,120,136,186,143,224, 31, -143, 12,223,248,213, 26, 14,126,244,168, 51,135,113,121,189, 68, 13, 93, 74,136, 65,156,154,198, 98, 70,156,218,192,238, 80,117, -138,186,133,216,114,217,200,123, 88, 15, 21,227,242, 8, 13,188,214, 14,198, 81,113, 54,174, 72,194,218,104, 97, 41, 24, 53, 85, -155,204,102, 79, 30,220,255,167, 79, 62,126,239,251, 63, 57,181,125,124, 24, 22,214,248, 2,172,181,140,139, 84,105,223,236,113, -119, 9,111, 96,123, 51,213,170, 68,233,216,169, 19,207,158,236, 16,229, 19,103,207,220,185,246,213,221,107,215,190,186,122, 53, -117,147, 31,125,239,189,110, 99,123,229,211,233,100,115,150,187, 94,251,253,103, 59,143, 30,220,254,242,242,151,215,110,222,190, -255,116,111,123,235,248,255,244,223,255,226,187,239,190, 73,137, 87,165,114,108, 8,220,137, 18,154,111, 34,124, 28, 18,106, 97, - 25,202,246,233, 51,111,152,254,195, 71,159,254,252,167,223, 35,101,138,146, 2, 50,142,141, 84,235, 97, 96,131, 2, 88,245,131, - 8,107,144,234, 68, 82, 10,159, 8,139,112, 55,153, 76,114,166,204,172,110, 85,225,168, 69,187,220,185, 19, 49,171,250,238,193, -209,246,137, 83, 28,204, 25, 96, 50,155,166,184,114,217, 86,165,152,155,120,163, 23, 54, 15, 36, 19,152, 50,133,248, 30, 3, 12, -155,249,201,227, 91,231, 79,158, 81, 83,119, 63, 56, 58, 90,244,131, 27, 14, 86, 75, 48,245,203, 37, 12, 68,185,173,173,153, 96, -160,140,243, 47,189,180,191,187,211,219, 42,228, 0,115,158,206,231, 71,251,251,201,116,103,103,231,131,247,222,187,115,251,225, -106,181,146,148,167,211,169,170,133,235,115,235,216,246,155,175,191,254,240,233,211,190, 84, 16, 79, 18, 18, 72, 64,149,108, 13, -123, 53,179, 44, 92,204,215,163, 65,104,126,125, 89, 33,117,220, 12,118,235, 8,100,152,140, 65, 32,139,105,124,228, 79, 55,204, -161,195,129,106, 37,214,140,230, 38, 20,181,121,163,209,114,204,223,235, 24,166, 51, 64,200,195, 60,105,166,110, 97,140, 4,171, - 57, 27, 59,226,156,107, 17,160,244,120,205, 78, 77,164, 32, 73, 66,176, 44, 98, 85, 53, 12,141, 66, 76,158,133,147, 37, 97,150, - 68, 66,137,105, 96, 6, 9,231, 73,210,162,195,208, 14,183,173, 49,173,173,184,252, 57, 56,201,209,106,199, 29, 85, 33, 24, 8, - 28,173,234, 52, 62,223,168, 33,107,188,154, 54, 26,157,163, 26,152,168, 75,185,116, 98,213, 77,145, 37, 81, 99, 99, 54,107, 41, - 57,155,215,181, 61, 29,132,201,164, 19,192, 60, 6, 91,143, 67,147,185, 10,231,204,124,160, 22,132,203, 54,123, 58,152,201,212, - 57,232, 56, 6, 78, 4, 99,181, 18, 56,192,208,141,218,126, 66, 97,166, 48, 73, 99,139,116, 6,131,184,212, 2, 80,228, 75, 61, -120, 12, 54,178,245,195,237,107,174,230, 48,103, 97, 2, 21,160,107,119,232, 86,110,197,225,195,144,156,136, 1,138,247,223,160, - 93,234,180,138,214, 26,160, 31, 78, 13,112,155,226,135,127,131,229,201,205,201,200, 41,137,140,221,214,204, 68, 81, 5, 67, 92, -106,209, 90,146,204,145,152,220, 44,248, 42, 18,142,117,105, 4,195,102,116, 1, 73,220,141, 67,169,226,181,193, 70,213,192, 96, -136,121,187, 89,133,168, 72, 78,193,169,104, 95,207,102, 66, 71, 14,164, 68,251, 99, 6,114, 8,143,157,209,112,212,209,120,221, -250, 44,225,102, 22,221, 77,173,170,138,217, 93, 33, 13,224,193,230, 22,240,160,209,146, 18, 2, 44,165,216, 26, 56,137,143,172, -118,119,231,180, 86,185, 67, 80,178,245, 43,107,243,126,251,195,207, 99,172, 45, 55,248, 60,173,180,126, 0, 16,141,180,106, 6, -165,212,221,191,121,251,243, 47,191,252,224,167,191,220,158, 79, 87,253, 82, 13, 94,122, 18,166, 44, 45, 24,213,224,121,161,142, -197, 73,169,173,118,221, 76,205, 69,210, 98,209,175,250,199,171,195,195,249,214,214,199,191,255,255,174,126,125,229,233,254,193, -203,223,122,241,253,119,222, 90,233,188, 71, 55,155, 79, 97,182,191,255,100,247,233,206,221, 59,215,191,188,114,245,198,157,251, -230,254,163,239,189,249, 55,127,241,235,237,211,219,139,101,239, 69,163, 50, 13, 32, 55, 5, 85, 68,203, 15,113,140, 56,110, 97, - 48, 32, 45,229,133,115,231, 9,242,249, 23,215,223,123,255,173, 90,170,187, 58, 68, 85,193, 76, 77,187,243,190,239,235, 80, 15, - 23, 75, 22,202,194,102, 10, 34, 45,133,157, 5,156, 82, 78,194, 57, 39,113, 74, 44, 66,148, 51,167, 20,223, 89, 19,230,161, 14, -238, 56, 54,159,166, 46, 39,102,119, 63, 88, 28,205,143, 29, 15,243, 70,173,189, 89,116, 40,145, 8, 20,106,214,212,141,170,214, - 77,186, 56, 73, 5,239,246,133,211,219, 39,182,183, 8, 82,139, 29, 45, 86, 67,169, 6, 95,173,122,166,116,120,116,216,142, 68, -107,111, 44, 96,213, 38, 27,211,147,167,206, 63,120,112,139,132,181, 12, 32, 97,241,233,198,198,230,230,252,233,238,190, 91,125, -243,181, 75,159, 95,187, 51, 44, 23, 93, 11, 52,164,206, 25,134,151, 46,190,248,218,139,119,175,221,185, 39,240, 96, 77, 27,161, -130,162,208,122,146,243,192, 84,181,105, 11, 10,196,206,153, 65, 86,169,184,130,220,205, 25, 12, 4,144,160, 65,106,131,110,161, -230,235, 78, 9,139, 51, 45, 19, 83, 56,148,189,201, 27,140,214, 75,217,206,151, 86,125, 36,164, 58,188,169,147,128, 33, 73,231, -228,174,131, 11, 7,121, 81,107,105,102,201,214, 29,105,197,149, 41, 44,191,209,138,225,102,232, 70,171, 98,141,158, 12, 2,105, -184, 29, 52,119,157,153,182,226,235, 8,171, 54,128, 73,164,247,155,229,171,157,135,163, 37, 47,228,213,184,223,131,195,169, 96, -109, 82,176,168,180,139,120, 32,165, 96,201, 11,108,164, 63, 34, 46, 88,148,136, 73, 17, 6, 55,120, 13, 22, 86, 60,240, 70,108, - 27,106,173,213,109,189,114,175, 6,167,176, 45, 68,245, 29, 79, 37,171, 99,213, 87,243,234, 13,199,108,109,125,102, 46,210,170, -163, 8, 12,171,112,239, 18, 15,149,187,110, 18, 63,222,219,121, 30,236,236,160,170, 72,112,114,174,240, 68,158, 57,171,219,193, -209,162,150,154,208, 66, 6,222,150, 68,113,132, 52,134, 35, 5, 77, 22, 41,222, 32, 98,152,129, 91,181,185,183,112,172,106, 45, -213,163,136,213, 57, 65,213, 71,201,167,181, 94, 49,129,153,131,208, 0,131,248, 55,115, 90,237, 31, 26,233, 63, 58,128, 34,174, - 96,174, 90, 35,141,233, 24, 61,237,102,196, 45,109,187,142,242, 16,147,169, 66,162,242,176,185,163,199,167, 7,135,226,210,182, - 90,237, 62, 70,102,197,193,241,150,186, 19,181,155,248,168,104,147,123, 85,192, 73,164,193,114,227,173,113,113, 51,150, 56,236, -198, 53,194,113,222, 30,221,104,141,240,195, 4, 35,118, 53, 33, 82,131, 71,178,155,226,193, 12,134,166,245,106,191, 21,172,240, -216,104,187,190, 69,143,229, 43, 88,255, 60, 64,173,186, 26,113,147,227,215, 4,206,160,116,198,101,238,205,204, 24, 36, 60, 19, -226,148,228,202,231,159, 62,122,178,251,253,159,252,108,107,115,186, 90, 46,135, 97, 81,135,149,105, 24, 65,114,202,147,198, 49, -227, 96, 10, 27, 49,220,162,197,196,188, 42, 37, 89, 45,150,169,155, 88, 61, 98,153,192,235,199, 31,254,221,181,155,183,182,182, -182,126,241,147, 31,110,109,159,219, 43, 44,105,186, 49,155, 14,203,163,253,221,167,143, 30,221,185,122,253,198,181,155,183, 30, - 63,125,118,225,252, 11,127,245,203, 31,127,240,222,183, 13,124,112,180, 28,143, 39,207,211,179, 49,194,181, 80, 97,156,245, 70, -143,187,129, 74,209,179,231,206,238,238, 30,126,242,249, 87,223,125,231,205,161,244,238, 26,254,141,144, 94, 88,120,185,236, 35, -232,156,152,115, 98, 22,105,168, 16,241, 10, 77,137, 67,196, 42, 94,153,153, 37,149,210,154,127, 28,166, 90, 22, 61, 12,206, 44, -147,220, 77,186, 48,140, 81, 72, 61,213,188, 20,207, 41, 9, 51, 84,173,201,136,198, 68, 93,234, 34,112,191, 38, 55, 17,209,203, - 23, 47, 77, 38, 83,117, 43,170,135,139, 5, 59, 45,151,171, 82,134, 46,243,222,193, 2,238,100, 8,144,142, 55, 22, 39, 89,213, - 23, 94,250,214,193,222,147,197,226, 48, 26, 51, 64,153, 58,148, 50,204,230,211,251,183,238, 93, 56,123,246,201,238,225,253,103, - 7, 93,237, 39, 41, 87,213, 78,140, 56,119,221,228,221, 55,223,190,251,112,103, 40, 3, 17,169,150, 73,202,188,126,234, 7,242, - 59,132,181,150,237, 9, 93, 18,131, 14, 98, 41,103,161, 49,120, 17,192,145,214,217,218, 96, 6, 35,209,104, 36,153,167, 40,250, - 52,107, 62, 56, 49, 73, 19, 43, 53, 34, 57,110,110,110,209,105, 23, 31,159, 16, 25,195,157,106, 68,178, 9,139,126,213,113,106, -131, 45, 19, 41, 9, 9,192, 14, 13,240,111, 88, 33,201,220,216, 0, 38,115, 23, 98, 98, 17,162, 21, 72,136, 65,224, 88, 4,184, -169,173,189,110, 10,119,162, 58,170, 77,109, 14,231, 24, 11,131,198,211, 92,124,205, 45, 10,178, 17, 83, 46,237,148, 26,193,212, -160, 83,152, 23,159, 76, 51,193,132, 81,109,172, 77,107,253, 20,173, 27,137,195,121, 64,220, 44, 49, 4,107, 78, 62,140,220,106, - 90,255, 15, 63,135,139, 48, 19, 33, 17, 51,215, 82,131, 15, 43,142, 34,113, 63, 98,118, 67, 0,199, 28, 34,172,213, 23,171,126, - 99, 54, 85, 43, 13,203,109,174,104,133,160, 41,177, 17,170,214,233,116,163,243,240,250,197, 67,146,146,200,224, 0, 81,176, 4, -215,150,146,216,208,250, 24,197, 34, 14, 73,153,114, 74,165, 84, 68, 28, 56,114, 2,100, 34, 41,231, 92,181,143, 63,220,206, 65, - 26, 38,100,132,141,100, 29,104, 34, 48,216, 77, 61, 10, 4, 34,186,236,134, 4,238,189,152,107, 40,176, 33,111,231,148,221,170, -185,197, 34,186, 26,224, 22,193,197,198,129,107, 43,200, 8,236,144,187,169, 41,115, 30,207, 57, 20,246,145,144, 32,157, 91,235, - 81, 56,188, 93,163, 26,146, 91, 11, 74,228, 11,162, 50, 34, 30, 18, 18,182,137, 38, 12, 55,120, 0, 52,232,161,109, 62, 38,152, -197, 37, 76, 22,206,124,119,119, 47, 26,136,158, 49, 44,234,227,162, 59,102,121, 38,131,166,166,173, 48,193, 67,194,140,184,100, - 64, 32,215,149,127,104, 45,126,218, 96,115,117,117, 84,107, 73,147,205, 73,151,172,237,254, 90, 81, 96,123,188, 84,227, 44, 17, - 42, 37,152,136, 76,114,254,232,247,255, 85, 57,253,240,199, 63, 77,137,250,213, 82, 75, 89, 29,238,214,254,104, 50, 63,157, 82, -110, 56, 84, 97,178, 6,164,116, 50, 15, 86, 88, 45,206,105, 99,123,123,239,201, 14, 49, 29,219,222,126,112,251,201,222,157,219, - 95,124,249,213,238,209,226,251,239,191,117,246,204,185,222,183,142,106,238,102, 19, 34, 28, 60,219,121,244,240,238,237,219, 55, -174, 92,191,113,235,254, 99,131,255,197,159,253,248, 87, 63,253,224,216,230,230,170,154, 89,105, 27, 90, 56, 91,188,196,245,110, - 38,106, 4, 99,250,179,134, 30, 4, 17,188, 86, 51,247, 55,222,122,245,250,215, 87, 63,253,252,202, 91,111,190, 82,139, 82,203, -226, 69,111, 45, 86,203, 94, 85,139, 85,102,238,251,194,110,157,100,230, 68, 40,225,231, 93, 13,197,204,173,168, 51,139,184,154, -178,187,144, 48,177, 1,253,208, 3, 94, 77, 17,244,106,134, 72,134,193,137,234,160,197, 26, 18, 43,174,206, 68,164, 68,146,164, -170, 54, 49,211, 43, 81, 6, 83,150,244,250, 75,223,146,156,172, 47,165,214, 85,223, 19,211,209, 98,101,166,228, 60,212, 50, 30, -254, 4, 80, 18, 7, 73,192,188, 82,158,156,189,116,233,214,213,175,163,251, 71, 77,217, 89, 82, 18,213,243, 23, 47,238,239,237, -190,116,241,133, 39,187, 71, 71,171, 21,111,228,196, 86,172,102,201, 2,108,111, 29,127,251,213, 87, 62,250,236,179, 60,153, 4, -183,202, 28,112, 43,160, 82,135, 40,165, 26, 5,186,104,228, 33, 83,128, 88, 25, 18,136,200,231,119,189,134,155, 54,119,138,136, - 20,125,179, 73, 98,108,245, 36,146,152,229, 33,166, 40,102, 78,238, 74, 14,101, 23,129,172,134, 69, 18, 30,168, 70,192, 51,176, -167,253,208,147,250, 98, 40,202,150,115, 74, 34,238,108, 81,123, 30, 37,212,196, 97, 11,246,198,187, 32, 2,229,196,173, 10,219, -131,210, 31, 7, 12, 54,167, 90,139, 86,157,118,121,112, 8,177, 0, 66,148,153,205, 13,228,169,125,255,149, 27, 57,134, 64, 72, - 28, 25, 74,183, 86, 32, 27, 90, 17,180,221,202,220,201, 80, 73, 51, 17,188,172,250,217,100, 18,171,137,214,205,234,238, 9,228, - 72,204, 66,110,160, 44,121,237, 54,166, 22,182,143,172, 20, 26, 12,111, 12,165, 54,210,187,187,187, 7,103,185, 22,205,209, 34, -194,208,218, 12,207, 77,109, 77,217,155, 81, 89, 99, 19, 91,203,160, 93,166,148,180, 6,226,110, 84, 90,160,131,171, 24, 35,161, -235,210,225,178,159,136, 1,110,102,194, 50,159,229, 85, 79, 49,127,132,217,131, 5,132, 70, 0, 86,117,135, 53,131,160, 52,201, -159,154,109,180, 69,124,213,144, 19,131,201,204,210,136,154, 74, 68,195,248, 2, 98,173,161,238,236,110,177,202,178, 49,150,226, -205, 48, 82,205,122,213, 90,163,230,148,213, 91,133,232,100,146,217,106, 84,186, 27, 89, 45,218,121,172,116,226, 1,197, 24, 97, - 60,174,202,146, 97, 26, 27,104,138,123,121,244,144, 4,189,162,113, 20,220,163,125,214,156, 64, 34,205,224,222,148,106, 33,120, -128,109,219, 51, 54,174, 3,146,248,244,217,188,154, 21,133, 4,214, 32,136,239, 48, 43, 14, 9, 5,163, 29, 49, 48,130,247,163, -225, 2, 60,154,246, 29,206,241,227, 32,105, 77, 23,104,224, 59,247,200, 45, 52, 33,159, 28, 36,173,203, 38,150,159, 76, 80, 53, -181, 40,225,182,166,118,145,136, 88,248, 91,218, 36, 64, 62,166,154,152,115,102,250,221,127,254,207,105,115,235,199, 63,250, 97, - 63,244,106,240, 90,250,229,174,150, 5,113, 38,233,184,155, 16,181,238, 34,183, 18,155, 88, 16,187,171,105,173,213, 38, 91,243, - 7, 55,175, 87,245, 51, 47,190,248,249, 31,126,119,247,250,213,235,183, 31,156, 56,185,253,151,191,250,137,167,249,254, 48,207, -243,233, 68,216,116,216,121,116,239,225,131,123,183,110,223,190,122,243,214,227,221,253,243,231, 78,253,187,255,238, 55,223,126, -237,229,101, 95,130,193, 50,246, 60, 59,175, 67,133,177,151,118,139,194, 67,109, 78, 88, 48,179,143,128,111, 2, 65,109,232,235, -107,111,190,241,233, 39, 95,236, 29, 28, 30,155,111,184, 42, 9,197,156, 65,230,139,229, 33, 8, 86, 77,161,131,112,169,206, 73, -132,188,244, 90,173, 50, 39, 70, 9,166,152, 48, 1, 92,171,170,131, 51,187,161,148,224,146, 74,151, 82,213, 74,238,106, 8, 33, -136, 97,213, 42,220,171,217, 80,180,235, 24,112, 53, 35, 65, 78, 9, 85,179,164,222, 43, 57, 72,140,129,227,199, 54, 95,186,116, - 41,246, 42,139,195,189,197, 48,192,108,239, 96,143, 88,220,177, 88, 14,160, 14, 9, 30, 21,231, 77,243,115, 16,213,178,218, 60, -113, 98, 99, 99,243,240,112, 31, 34,108,238,156, 24, 32,170,155, 91, 91, 7, 71,135, 57,167, 87, 46,156,254,234,238, 35, 45,131, -204,166,181,104, 73, 53, 73, 55,155,230,183,223,124,235,254,206,227,219, 15, 30, 78, 38, 19,162,224,176, 81, 98, 44,139, 2, 16, - 24,211, 88,141,198, 14, 3, 51, 79,115, 14, 33,190, 37,233,121,156, 79,133,199, 73,140,157,108,252,192,226, 34,140, 72, 73, 43, - 22, 13,144, 57, 11, 85,175,177,111, 54,195, 36,139,171, 6, 73, 70,205, 90, 69, 6,195,129,126, 40, 76, 36,196,102,234,202,156, -137,128,149, 89, 8, 7,213,220,217, 85,225,130, 28,233, 6, 0,204, 10,119, 83,118, 38, 66, 39,180,126,236,131,224,196,148, 93, -114,202, 78, 43,210,177,176,184,133,189, 2, 20, 44,177, 74,117,128, 60,139,120,196,114, 49, 42, 31, 6,136,175,173,117,214,112, - 22,214,124,201, 12,146,212,154,218, 90, 76, 10, 2, 7, 83,202, 89, 74,182,170, 53, 8, 61,196, 1,236, 72, 36, 43,175, 41,165, -120, 57,163,211,141, 27,254,149,130,167,175,204,236,110,170, 4,212, 46, 77, 76,205,184, 61,185,194, 12, 97, 1,161,196,212,193, - 90,205, 65,211,233,180, 19, 49,162, 3, 56, 89,195,236, 41,131, 77, 34, 84,148, 36, 19, 19,187,229,212,181,145,143, 41,113, 71, - 52, 18, 77,198, 85, 74,108,144,100,236,172, 34,135, 16,213,102,117,109, 56, 52, 1, 87,183,184,146, 4, 20,181,115, 21, 54, 97, -210, 26,190,239,246,155, 71, 6,216,131,208, 75, 48, 55, 19, 88, 5, 3,130, 88,113,154, 87,175,181,144, 7,141,192,165,109, 85, - 76,131,132,204,201,161,153,120,160,208, 79, 34, 94,213, 30,118,204,112,109, 19,197,152,206, 51,208, 8,126,117,119, 24,145,216, -120,122,112,179,118, 98, 26,195,245, 28,125,185,163, 3, 48,100,121, 35,111, 95, 10,143,139,124,132,105,147, 80, 99, 59,199, 4, -246,156,140,235,163,250,164,186,238,201, 35,143,141, 82, 16,247,154,154,110, 66,137,208, 54, 34,214,172,118,205,222,216,188,250, - 99,118,201,218, 3, 93, 91, 92,213, 25,121,182, 33,146, 40,108, 33, 28,107,174,102, 28, 30, 53,154,150, 97,153, 76,102, 7,123, - 79, 63,249,248, 79, 91,167,206,188,255,221,239, 68,138, 50,190, 0, 41,117,150,231, 32, 73, 41,177, 16,140,215,141,128, 17, 65, -132, 69,171, 56, 87,235,119,175,125,113,236,204,139,180,255,248,147,191,251,127,190,186,114,109, 40,254,189,247,222,125,229,149, - 87, 15,250, 52,104,183,177, 53, 39,211,195,189,221, 39, 79, 30,220,190,113,227,250,173,219,215,239,221,239, 38,221,111,127,241, -163,191,250,205, 79,167,221,100,177, 28, 76, 45,178, 24,205, 73,222, 40,121,141,109,136,209,215, 17,192,221,200,201,197,182,181, - 61,254, 48,194,217,151,195,235,175,189,242,233, 23,215,222,124,243,181,173,249,180, 84,143,117,134,153, 61,219, 59, 82, 53,141, -103, 36,204,160, 48,130, 72, 74, 50,203,201,201,150,171, 62, 98,249, 69, 67,163,165, 80,159,106,173, 14,144, 55,119,163, 48, 49, -168, 14,195,203,175,191,114,225,204,153,123, 59, 59,218, 98,186,129,238,137,149,176, 20,173,165, 42,146, 44,251,158, 64,196, 18, -205,228,219,199,143,159, 58,115,178,104, 41,253,242,193,206,238,178, 31, 86, 90,150,171, 94,152,201,125,177, 92,197, 3,219, 65, -227,169, 50, 70,120,133, 91,202,147, 83,231, 46, 44,175, 31,154, 58,113, 2,123,242,204,146,150,139,195,173,227,199,151, 71, 71, - 47,190,120,254,198,131,199,253,208,119,147, 41, 11,151,126,152,204, 51,119, 50,247,249,111,126,246,203,203,215,174,223,186,123, -107,119,119,151, 36,150,114,221, 44,229,197,208,123,148, 74,199, 95,211, 84, 15, 98, 74,185,147, 78,228,112, 24, 74, 95,226,202, - 76,227, 42,222,224, 48,197,154,102, 48,170,166,223,204,187,133, 5,158,154, 4,202, 68,150, 72,106, 84,244, 41,165, 20,223,133, -209, 2,230, 94,181, 76,242,100,179, 75,197,140,199,210,236, 72, 88, 87,247,106,198,128, 49, 90,113, 1,164, 41,133, 54,214, 38, - 74, 50, 7,105,141,175, 94,116, 98, 11,137,195,138, 85,215, 34,129,109,129,151,208,238,130,178,215,168,197,238,142,170,106, 17, -141,115,111, 62, 10, 6,201,232,253, 24,253,105, 0, 58, 22, 39, 82, 81, 17,118, 71,151,186, 90,251, 90,123, 26,205,115,165, 70, - 99, 99, 56,230,162, 14,137, 72, 28, 74, 0, 43,185,185,151,120, 44,192, 51, 49, 55, 3,223,186,176,193,163,190,131,163,160,129, -153,106, 13, 58, 95, 72,202,230,148, 88, 44,114,118, 57, 13, 85, 55,231, 51, 34, 89, 14, 67,128, 72,218,137,170, 45,253,124,232, -109,146, 65,206, 4,154,118,147, 60,233, 82,107,199,139, 94,119,111,227, 56, 26,150, 0,136, 42,249, 17, 24, 9,111, 60, 20, 33, - 40, 68, 27,180,177,209, 31,216, 37, 37, 17, 73, 42, 44, 33,100,181,214,239,200, 84,232, 56, 83,214,170, 89, 18, 59, 69,248,200, -184,185,111, 99, 9, 18, 5, 45, 22, 12, 62, 13, 66, 17, 49, 5,195,193, 89, 72,146,104,105,235, 63, 15, 33,195,218, 65, 30, 0, - 76, 35,235, 75,113, 90, 4,199,221,131,149, 35,251, 31,103,127, 38,210,184,137,140,187,222,209,235,201, 90, 43, 37, 18, 38,239, -152,106,227, 42, 51,177, 91,117, 34, 80, 5, 55,163,123,187, 64, 42,153, 89,128, 88,213,220,201,131, 13,215,152, 0,193,117,136, -195,178, 89, 80,148,155, 43, 69, 0, 66,138,180,151,143,214, 64,111, 57,187,241,222,215, 14,108, 99,196, 43,150,176,146,218, 46, -140, 27,194, 35, 36, 32, 31, 1,147,163, 24, 79, 27,179,141, 39,247,238,125,246,229,229,111,191,253,206,217,179,167,135,126, 53, -170, 11, 78, 68,156,114,158,204,115,215, 9, 39, 83, 37,150,200,184, 18,147, 15, 78, 66,147,249,177,131,189, 71,171,197,242,196, -233,179,229,104,177,120,246,224, 79,127,252,232,246,157,135,223,122,241,252, 91,111,188, 42,211,227, 59,135,169,219,152,111, 77, -167,125,191,120,182,243,232,254,189,155,215,111,222,190,114,227,214,211,253,189,183, 95,127,245,223,252,197,175, 94,188,112,182, -168, 31, 44,250, 53, 67,100,141,245,161,245, 8, 22,246, 70,230, 81, 80,139, 93, 10, 99,204,212,143, 92,228,209, 9, 65,212, 73, -247,238,155,175,252,211,103, 95,190,245,206, 91, 39, 54, 55, 74,213, 64,204,173, 86,171,212,137, 65, 39, 20,220,108,140,112, 30, -103,138,140,167,167,196,129,157,227, 17, 24,157,178,168, 85, 83,203,156,231,211, 41,183, 86,113,212, 82,127,253,231,127,118,230, -244,246,239,126,255, 97, 24,253, 34,226, 19, 55, 2,201,212,155,155,150, 96,143,120, 52,234,186,178,211,185,179,103, 54,102,179, -229,114,181, 90, 44,135, 90, 96,182, 90,246,238, 6,146, 68, 28,109,102, 1, 14, 71,228,209, 24, 48,109, 43, 57,213,237, 83,103, -158, 61,122,180,183,255, 52, 73,142,167,108, 74,105,232,251,110, 34,211,141,141, 83, 39,182, 79, 31,191,242,224,201,209,114,185, -216, 58,118, 76, 75, 29,106,217,152,228,227,199,142,157, 60,113,234,197,243, 23, 62,249,106,251,255,253,219,223,117, 93,183, 24, -138, 57,152,185, 75, 57, 9,215,166,135,182,115, 34, 24,179,212,109,205,167,110,144, 36, 79,134, 50, 42,100,108,110, 50,134,233, - 27, 76,182,173, 39,209,246, 77, 30, 38,156,118,181,212, 90,218,221, 80,141, 8,194,168,197,200, 21,148,217,161, 20,128,220,248, -196,217,221,187,110,138, 90,133,152, 40,185, 13,212,126,115,169, 86, 18, 40, 17, 12, 20,230, 6, 38, 14, 67, 99,202, 2, 98,152, - 49,161, 18, 11, 71,104,186, 89,146, 97, 34,164, 41,103, 93, 44, 64,172, 32, 83, 99,225,177, 30,164,181, 82,140,214, 20, 39, 38, -213,231,221,215, 13, 84, 71, 32,162,170,202, 96,112,235,199, 20,238,178, 72,117,165, 26, 94, 69,119,184, 56,201,184,211,231,128, - 58,172, 47, 83, 13,223,157,138, 53, 39,190,195, 34, 70, 45, 76, 10,206,192, 0,111, 94, 67, 22, 34, 22, 78,102, 42, 32,109,143, - 14,143, 40, 99, 84,191,154,234, 48,148,156,164,214, 50,203, 27, 67, 41,165,104,219, 79,248, 90, 49,179, 86,245, 0,148, 82,213, -245,238,131,199, 27, 27,147,179,219,103, 54, 54,242,190, 47, 35, 79, 0,176, 43,208,138,251, 0,144, 85,195,250,177, 6, 40,144, -157,220, 24,104,121, 98, 31, 13,203,102, 49,249, 17, 11, 51, 9,185, 40, 9,115,204,163,177, 23,109, 11,196,182,118,253, 6,245, -135,129,170,149, 19, 39,226, 1, 74, 36,238, 30,186, 32, 28,174, 70,110,148, 58, 82,135, 49, 67, 19,133,173, 76,220,130, 45,216, -254, 47,130, 6, 78, 35,178,194, 50, 80,227, 61,115, 70,203,251,106,144, 36,107, 27,254,219, 32,213, 54,162,230,104, 99,136,187, - 89,165, 6, 71, 30,227, 62,173,132,197, 90, 60, 34,179,171,123, 20, 74, 89, 8, 12,161, 19, 81, 64,238,192, 8,201,207,160,100, -206, 20, 85,186, 13,240, 17, 22,228,212,104,110,230,193,251,129,141,166,173, 6, 32,138,167, 88, 20,164, 16, 51,219,248, 44,139, -161,213, 71,173,163, 89, 85,227,250, 85, 5,167,217,108,118,253,242, 23, 87,111,220,249,209,207,127,182, 57,155, 12,101, 8, 17, - 40,148,169,248,158, 74,238,184,155,186, 41,249, 56,188,152,186, 58, 72,186,249,214,131, 59, 87, 68,142,109,159,185,244,224,246, - 87, 15,238,220,252,252,139,175,213,240,139,159,254,240,212,201,211,251,125, 46,190,177,177, 61, 97,199,179,167,143, 31, 63,184, -115,245,234,213, 91,247,238,221,123,248,152, 19,253,205,191,252,205,207,126,248,221,174,203,203,190,180,214, 17, 38, 78,128, 6, - 58,175, 73,145, 78, 99,169,132,175, 67,182,190, 38,218,227, 57,123, 39, 22,205,213,145, 98, 33, 87,180, 76,231,155,239,189,245, -234, 87, 87,175,191,255,222,251,132,234,100, 14,175, 26, 5, 94,108, 98,109, 0, 24,225, 61, 78,212,229, 76,236, 93, 74,211,110, -178, 90, 44, 37,145,161, 53, 69, 86,117,115,218,152,229, 90,243,116,210,169, 25,129, 38,147,201,127,250,143,255,233,252,185,243, - 41, 73,173, 53, 62, 16,142, 1,137,200,213,132,152, 89,170,214,174, 75, 65,125, 17, 98, 23,188,124,233,188,136,184,211,209,114, -113,184,234,139,214,229,114, 89,213, 82,102,192, 87,203, 30,166, 68,236, 24,113,125, 46,142, 66, 44,113, 21,114,162,179, 23, 47, -237, 31,236, 82, 98,175, 85,114,118,162,201,108,174, 67, 15,243,253,221,253,247,191,243,214,225,223,127,220,187,174,250, 62,167, -180, 88,174,220,189, 38,238,171,246,195,106,168, 21, 12, 17, 33, 20,115,119, 66, 78, 41,137, 12,218, 55, 92, 29,140,152, 79,204, -166, 39,230,115, 35,235, 7,221,236, 38, 79,118, 3,206, 37,205, 33, 22, 18,188, 90,148,127, 9, 75,164, 57,155,189,202,161, 80, - 56,101, 91,187,208,188,147,100, 40,203,161, 82, 74,234,102, 77,139, 78, 2, 99,184,128,138,177, 36, 73,204,165, 86,115, 75,156, -108, 12,220,145, 25, 70,171,114, 35,205,196,176,199, 4,134, 83,220,232, 77, 40,133,224, 67,142, 20,157, 67, 74, 36, 36,137,135, -226, 86,149, 26, 10,201,212,171,133,231, 62,142,105, 80, 5,197,252, 78, 45,200, 99,177,224,215, 81, 42, 28, 93,103,252,141,174, -233,208,229,219, 75,227, 22, 44, 39, 15, 75, 63,188,152,101, 67,234,146, 90,137, 48, 21, 50,154, 31, 36,234,227,190,129, 10, 81, -115, 14,104, 49, 81,232, 86,173,123,149,168, 86, 15, 56, 96,171, 86,166, 88, 38,250, 8,244, 84, 87,103, 34,133,229,156, 82,169, -230,241, 60,224,208, 45,205, 61, 81,102, 1, 39,130,196,135, 56, 28, 29, 30,222, 92, 44, 95,186,120, 33, 9,197, 94,215,220,130, -134, 28, 55,237,148,147,194,188, 54, 21,119, 84,101, 72,200, 28, 28, 61,230,107,131,151,153,194, 61, 17, 42,147,169,167, 76,174, -196,196,112, 34, 78,237,222,137,152, 88, 35, 54, 7, 89,183,175, 18, 91,220,198,132, 5, 82, 85,169,148, 6, 20,115, 37, 6, 40, - 1, 86,189,186,133,113, 50,199, 30, 81,221, 34,114,229,181, 70,195,161,251, 58,206,212,214,212,113, 91, 71, 52, 69, 50,187,246, - 99, 1,153,135,251,206,131,144,174,218,124, 43,102,214,162, 91, 4, 33, 55,136,145,121, 37, 74,102,234, 22,224,231, 10, 25, 87, -178,230, 90,141,153,192,228,205,245,214,218,125, 67, 51, 81,215,240,241, 48,181,244, 95,112,186,216,141, 9,201,205, 91, 67,201, -248,130, 71, 63, 63, 71,250,118,221, 31, 20,179, 79,180,214,183, 29,113, 28, 6,252, 27,223,139,216, 34, 72,202, 57, 93,254,252, - 79,143,159, 30,252,242, 87,127,150,115, 46,117, 24,147,177, 54, 54,183,130,121,210, 42,152, 36,173,161,146, 90,202,116,126,236, -217,163,123, 7,123,251, 89, 38, 96,186,246,217, 71, 95,124,241,197,195,157,103, 47, 94, 56,247,254, 59,111, 87,222,216,215,110, -178, 57,207,147,188, 90, 30, 61,121,120,255,214,141,107, 95,223,188,118,243,238,131,195,197,234,181,151, 47,254,235,223,252,226, -141, 87, 47, 45,123, 93,245,117,236, 31,137,188,221, 55,234,118, 64,136, 86, 22,140, 77,178,113,129,141, 29, 36, 81, 72,219,146, -188,212, 38, 37,142,197, 16, 28,156,134,126,152,111,157,121,229, 91,248,195,199, 31,127,255,187,239,147,169,171,213,190, 14,195, - 0,166, 44,172,166,131,234,180,235,152,217, 13,147, 46, 37,102, 85,151,156, 33, 36,194, 58, 96, 40, 43, 68,111, 19,200, 77,103, -211,201,238,254,161,164,148,195,222,199, 84,213, 58,225,174,235, 86,171, 62,214, 1, 18, 93, 90, 64, 85, 87,171, 66, 84, 1, 33, -113,105,247,170, 68,242,173,139, 23,205,147,121, 41,181,148,126,168,234,139,229, 16,101,113, 12,233,195,135,209,142,215, 49, 5, -214,214,248, 6, 2,193, 74, 61,118,242,196,246,246,153,189,221, 29, 73, 83, 0,176, 33,167,206, 85,207,156, 57,251,248,209,195, -249,124,227,229, 75,231,110,220,123,178,234,151,137, 55,220,252, 96, 49,172, 68,150,203,229,193,225, 94, 95,170,154,175,106,137, -184, 30, 25,247, 90,200,145,136,156,216,173,178,240,201,249,198,137, 99,155, 44, 98,165,100, 73, 44,220,154, 30, 61, 60, 30,235, -114, 82, 5, 37,152,169, 87,107,157, 97, 24, 31,206,112,106, 61, 6,137,201, 13,213,234, 52,167,163,161,104,173, 0,114, 36, 72, - 83,195,164, 56,156,196, 19,135, 63, 69,200, 44,119,201,204,213, 40, 39,238,171, 6,111, 93, 93,199,147, 44,153, 85, 55, 73,173, - 21,181,165, 43, 3,137, 30,211,140, 59,204, 53, 81,210, 90,171,154,176, 68,161, 71, 49,139,239,174,153, 19, 17,200, 32, 57,140, -236,147,196,171,161,170,106, 99, 48, 1,108, 49,230,141,244, 79, 11,126,223, 8, 31, 6, 37,145, 94, 53,192,226,113,231, 66,252, -104, 51,171,106, 73, 88, 80,205,181, 90,215, 73,112,209, 2,204,107, 70,228, 69,205, 40, 49, 57,149, 96,170,132, 73,154,129,162, -144, 20,183,221,200, 10, 7,245,194, 45, 96, 11, 32,162, 68, 84, 99,124,118, 75, 41, 89,117, 8,169, 43,140,136,137,196, 81,130, -147,156,136, 17,186, 9, 28,100, 78,238, 93, 74, 85,245,202,141, 91,103,207,156,164, 86,129,235, 2,142,197, 26,224, 76, 52, 34, - 65,215, 76,241,150,173, 52,119, 29,171, 13,227,170, 20, 22,145,164, 78, 65,212,240,224, 22, 83,131,172,154, 42, 55,211,109,160, -180,198,101,114, 43,211, 50,134,132,112, 46, 34,205, 47,231,193, 47,104,232, 45, 87,116,156,140, 97,145,141, 80, 7, 88, 82, 26, -213,172,228,228,230, 37,182, 7, 26, 85, 30, 68,110,177,134,197, 90, 61, 37,106,220,230, 80, 89,208, 16,205,218,136,114,234,237, - 78,109, 78, 28,227,185, 57,220, 40,145, 7, 67,156,205, 92,149, 36,185, 26,133,160,159,192,230, 14,109,109,156,194,164, 10, 15, - 88,106,227, 59, 70,185,136, 51,130,231,225,196, 28,172, 75,110, 82,167, 60,239,170,142, 87, 20,248, 56, 29,247,208,177, 71,166, -177, 60, 18,107, 80,116, 56,236,198, 62, 91,119,228,220, 49,217,159, 62,252,112,185,194, 63,251,241,143,137,188, 31,122, 0,219, - 23, 95,222, 58,119, 49, 96,222,225,169,146, 46,158,245,220,205,230,231,223,249,129, 14, 37, 79, 55,134,126,177,251,236,217,100, -235,196,100,146,142,246,158,126,253,233, 63,254,238,247,191, 63, 90,149, 95,252,179, 31,188,255,254,247, 86,249,148,207, 78,109, -110,109,165,204,207, 30, 63,184,121,249,179, 63,254,233,163, 15,255,248,199,207,175, 92, 79, 57,253,235,223,254,252,127,249,247, -255,227,171,223,186,120,180,212, 17, 53, 62,122, 6,173,217, 97,124, 84,156,243,108,246,198, 47,254, 21,128,110, 62,127,237,231, -127,181, 86, 62,180,157, 80,168,217,214,252,121,248, 56, 44,167,235,145,190,150,229,214,137, 19, 23,206,110, 93,254,250, 43, 22, -118, 47,149, 52,120,153, 16,150,214, 12,202, 6, 83,237,137, 41,117,147,170, 6,162, 90,180,241,113,163,133, 12, 84,181, 38,145, - 46,231,161, 86, 85,203, 93, 14,139,236, 80,149,184,161,119, 61, 22, 58,210,214,141, 57, 75, 39, 41, 12,113, 69, 53,154,208,137, -112,226,216,252,252,217, 23, 74,233, 87,171,126,255, 96,121,112,120, 84, 77, 87,253, 17, 35,106, 50,160,117, 80, 83,138, 63,189, -214,123,131,129,212,146,252, 14,179, 23, 46, 93,224, 60,225, 8, 6,114,199,146, 37,231,201,108,118,238,210,165,103, 59, 79,207, -156, 58,113,233,204, 49,119,237,107,113,129,213, 97,185, 56, 26, 74,201,105,114,234,196,201,115,167, 79,195, 21,163,225,209,221, -117,244, 39, 25, 40,177, 76,114, 86, 83, 98,174, 70,204,148, 68, 56,110,210, 17,207, 24, 15,215, 76,210,112,240, 12,213,231,237, -190,109, 54,106,255,164,128,171,186,186, 2, 52, 17, 33, 10, 91, 3, 25,172, 69,100,199,181,103,180, 14,115, 56,211,137, 41,201, - 56, 30, 70, 34,209,205, 76,198, 10,210, 0,245, 70,155, 51,195, 25,164,113,160,160,150, 79,143, 31, 45,209,231,237, 80,242, 98, -208, 96, 25, 91,113, 88, 99,180, 68,121, 71,220, 20, 36, 63,135, 55,173,229, 3, 4,157,103, 68,179, 59, 66,223,228,248, 15,197, -133,201, 34, 18,124, 44, 1,155, 91,175, 74,193,158,108, 93, 74, 28,163,107, 83, 29,205,162,206, 42,224,195,144,232,160,104, 46, - 38, 97,105, 74, 1,143,102,253,128,187, 58, 0, 86,152, 1, 27,147,174,203, 29, 90, 14, 88, 56,120,190,176, 90,170,227,191, 41, - 90,226,204, 67, 85, 51,151, 0,198, 37,158, 76, 38,147,201,116,115,190,113,124,107, 30,119,176,176, 44,132, 55, 50,150, 95, 76, - 17,222, 90, 11,166, 35, 8, 58,134,211, 38,193, 81, 10,190,138,136,169,186,251, 80,170,213, 10,131,154, 85,171, 41, 26,100,153, -157, 36,178,174,209,194, 99, 17,210,140,253, 4,197, 38,165,121,117,227, 90,144,113,109, 99,218,142,107,213, 85, 32, 68,208,106, -189,150, 0,146,193,204,107, 29,185,192,173,222, 7, 6,168,187, 85,139, 1,222, 42, 53, 86,116,148, 78, 89,187,219,152,181, 52, -112,128, 87,152, 41,177,131,180,170, 85, 87, 85,115,133,170,197, 58, 59,220,164,102,134,192, 18,137,235,152,252, 10, 72, 78,177, -182,113, 10,254,119,216, 40,199,179,230,248, 40,180, 88,151, 70,223,173,194, 82,132,137,162, 37, 55, 96, 25,241, 80, 20,153,156, -123,251, 59,177, 47,173,253,106,247,222,205,126,121, 68,163, 50, 31,135,226, 88,250,183, 35,140, 86, 48,165,212,245,139,131,127, -252,199,127,216, 62,253,226,123,239,189, 61, 12,171,248, 55,230, 39, 95,112,211,253, 7,119,200, 26,217,200, 17,101, 71,168,174, -245,232,240,238,167,255, 48, 61,118,108,119,119, 71, 73, 78,157, 57,251,248,254,237,221,135,247,191,250,234,203, 27,183,239,125, -251,141, 55,222,127,247,237,130,217,138, 55,103,243,201,116,190,241,198,119,223,215, 90, 29,120,112,231,246, 71,255,231,255,126, -255,217,211,239,188,245,250,191,250,245, 63, 59,127,102,187,175, 94, 75, 1,132,156,192, 78, 26,103, 92, 91,211,135, 90,237,210, -250,139,229, 24,150,135, 87,255,235,255, 61, 78,178, 96,226,182,197, 27,181, 55, 40,136, 61, 4, 79,242,231,219, 61,119,175,170, -151, 46,188,124,248,197,103,151, 47,127,253,222, 91,175, 88, 33, 7, 55,234, 83, 91,125,128, 12, 44, 41,137,116,147,137, 48,123, -228,194,163,185,157, 37, 34,210, 79,247, 15,103,147,105, 24,187,147,200, 80,106, 75,135, 19, 51,203, 98,168,193, 70, 4, 1, 22, - 97, 30,114, 39, 53, 99,162,121, 55, 17, 73,195,208,199,126,100,251,196,137,227,199,183,134,161,212,190, 63, 60, 56, 60, 90, 45, -234, 48,148, 26,139, 44, 35, 78, 85,181,150, 2, 74, 64, 9,162,210, 55,225,185,225,192, 54,179,217,124,243,212,169, 51, 79,119, - 30,115,238, 80,171,147,138,176, 41, 15,171,225,216,252, 88,158,228, 90,202,163,167, 7,123,203, 62, 65, 82, 74, 67, 29,102, 27, -115,152, 77,114,254,246,171,175, 61,253,199,221, 40, 51, 19, 33,212,246, 21,230,240,110, 81, 12,186, 84,107,101, 33,102, 2, 99, - 42,178, 82, 75, 44,213, 61,154,172,219, 33, 52, 64,142, 99, 91,233, 55,163,217,194, 76,160,138, 32,212,234, 52,231, 90,107, 16, - 40,219, 8,174, 62,150,178, 96, 77,184, 78,204, 52,198, 67, 76,219, 91,202, 17, 48, 34,213, 8, 14, 54,105, 67, 0,147,148,136, - 25, 68, 58,218, 60, 56,220, 32,228,125,173,135,203, 37, 17,117,147,142, 24,181,212,230,103, 32,144,179, 52, 13, 52, 56, 57,149, - 64, 44,196, 36, 36, 66, 32, 69,227,124,193, 98,191, 26, 2,124, 11,202, 53, 72, 44, 81, 11, 80,176,176,183, 98,233,112,242,193, -188,214,210,165,228,174,102, 22, 78,102, 53,165,148, 90,133, 20, 49,162, 99, 58,110,249, 68,193,170, 27,145,223, 26,213,179,102, -148, 51,245,203, 18, 39, 9,206,194,165, 40, 64, 64, 81, 83, 93,177, 16,220,213,212,128, 36, 36,156,137,200, 92, 73, 46, 89, 25, - 0, 0, 32, 0, 73, 68, 65, 84, 9, 28, 55, 61,106, 59, 81, 74, 76,185,203,129, 31,142, 66, 43, 38, 62,182,185, 97, 62,222,113, -189,245, 20,178, 96,154,115, 74,172, 67,187,235, 18, 17, 24,108, 17,193,245,200, 15,248,168,174,132,106,212,150,149, 4,117,171, -170,165, 86,152,173,101,247,208,187,198, 10,186,160,181, 69,201, 7,226,215,149, 78,192,100,138,136,158, 56,147,164, 88,175,196, - 27, 38,100, 6,184,128, 11, 65,181,130,224,174,113,112, 11,125, 5,205,109,105,176,218, 52, 12, 34, 18, 66,141,218,119,179,106, -235, 40,149,187,181, 11, 45,118, 36,104, 43,246,166, 20,141,212,175, 86,244,225, 81,179, 28,233,163, 24,251, 53,248,164, 14,247, - 4,212,118,155, 6,199,134,154, 81, 42,115, 84,223,142,114, 34, 81, 43, 77, 80,149, 44, 65, 43, 79,145,133, 24, 87, 91,163, 92, -220,128, 8,126,247,243, 63,192,113,252,220,197, 19, 23, 95,122,240,213,199,104,188,219, 32, 88, 24,190,121, 94,102,234,166,179, -251,183,111, 94,189,118,253,141,183, 63,184,116,238,212,193,226,136,219, 61,209, 15, 31,223, 11,160, 86,235, 77,109, 58,141, 25, -156, 56, 77,187,252,244,201,206,242,104,209,175, 14,231,199,207, 94,249,228,195,235,215,174,223,186,123,127,107,107,235, 95,252, -246,215,219, 39,207, 23,108, 72,238,178, 80, 93, 45,119,151,135,238,254,127,252,111,255,225,202,237, 91,127,245,111,255,230,127, -254, 95,255,195,127,249,191,254,227,143, 63,120,151,153, 34,134, 71, 36,204,145,108, 72,224, 58,130, 2, 3,208, 95,141, 37, 32, - 92,107, 8,109,192, 96,209,166,152,166,222,196,191, 51, 38,159,104,180,250, 70, 33, 7, 71, 5,108,160,112,250, 82,190,253,238, -187, 87, 47,127,249,247,127,248, 88,205, 61,234,163,122,217,200,236, 14, 73, 4, 34, 53,159, 8,107, 41,238,200, 41,117,147,201, - 98, 56,138,163,155, 8,147, 80,173, 58,217,202, 65, 43, 77, 57,149,213,138, 17, 85, 94, 6,160, 31, 6, 35, 34, 39, 27,243, 7, -238, 86,181,150,170, 85,221,108,152, 77, 8, 73, 88,184, 86,123,241,194, 11,179,217,198,254,222,222,106, 88, 45,135,178,234,117, - 24,138,213, 18,112,230, 38,222,219,232, 24,138,187,209,216,232, 51,126, 58,177,202,163,211,231,206,238,238, 60,172,253, 82,164, - 35, 8,145,164, 52, 75,124,116,230,210,133,199, 15,238,207,143,205, 47,157, 57,185,188,251,104,213, 47, 39,211, 46,229, 44, 44, - 44,169,168,158, 56,113,252,194,133,139,215,110, 92, 39,233,140,184,109, 25, 92,225, 96,215, 76, 81, 20,156, 13,150,136, 18,145, - 59,205,186,174,168,217,216, 57, 24, 21,166,102,113, 14,243,128,101,184,181,175, 50,185, 11,145, 39,214, 58,110,254,225, 14,174, - 94, 34, 46, 38,196, 41, 81, 41,145,217,110,155, 58, 34,151,204,147,148,107, 45,137, 57,108, 6, 22,199,103, 33, 17,233, 52, 45, - 67,197,104, 68, 38,112, 98, 34, 79, 4, 53,229, 72,129,171, 81, 74, 99,232,197,164, 69,139, 27,252, 44,181,145,158, 73,185,205, - 76,113,110, 52, 39, 73,164, 14,114,133, 33,148,207, 86, 44, 20,180, 75, 48, 65, 18,149, 26,248, 18,133,187, 36,129, 59,179, 48, -155,215, 18,222,121, 98, 49,114,102,202, 76, 10,168, 34, 34,114,137, 33,194,137,189, 68,229, 72,131,215, 66,129, 12, 74, 14, 73, - 18, 17, 82, 9, 43, 1,155, 83, 99,162,129,134,168,234,214,234, 69,155,179,168,148, 58,203,156,115, 23, 95,167,106,154,187,137, -181,133,103,195,150,211,120,246, 75, 73,140, 48,148, 74, 84, 77,157,152,114,202,179,105,183,209, 77, 15, 86,125, 48, 48, 90, 11, - 94,155,103,189,148,152,166,215, 86, 59, 90, 27, 32, 44,208,141, 77, 28, 1, 11,229, 28,239,180, 19, 48, 12,149, 73, 76,149,153, -134, 82,145,121, 50, 50, 7,195, 89, 22, 80, 67, 34,215,231, 21, 29, 28,105,216,204, 84,141,220,218,139, 79,204,194,148, 9, 70, -112, 14, 47,146,145,129,236,249, 11,138, 35, 63,115,163,136, 70, 27, 50,185,134,163,218,107, 4,144, 42, 2,202,214,240, 10,149, - 72,108,100,139, 17,147,170,186,129,153,132,216, 41, 57, 59, 35, 46, 39,109, 68,213, 88, 56, 71, 86, 41, 9,204, 52,138,253, 76, -219,138, 48,210, 57,214,154,174, 73, 72, 32,198,132,245, 73,202, 91, 13, 37,137,169, 67, 72,200,145,218, 67,114, 68, 62,133,111, -228, 57,222,222,156,152, 23,251,123,243,147,103, 9, 41, 50, 20, 39, 46,190, 60, 61,118, 28,238,139,103, 59,207,238,223,114, 85, - 98,153, 76,167,180,185,253,238,159,191,253,206, 47,117,249,244,241,177,115, 23,143, 62,249,135, 16,124,182, 47,188, 52,219, 58, - 9,162,229,254,211,189,123, 55, 80,149,167,211,115,111,126,239,225,181,203,167, 94,124,101, 88, 46, 30, 94,187,252,230,207,127, -123,227,143, 31,174,150, 7, 15,110,126,117,230,219,223,253,193, 95,253, 59, 38, 60,123,112,231,193,173,135, 3,208,165,206,181, - 30, 62,219,219,121,116,247, 96,181,248,193,175,255,249, 71,159,126,178,232,235,131, 27, 87, 94,252,235,191,254,233, 7,111, 87, -247,211,175,127,127,235,236, 37, 16,246, 31,222,185,255,229, 31,220,120,186, 57,123,237,255,175,234, 76,158,236,186,146,243,254, -101,230, 57,247,189, 26, 80,133, 2, 10, 35, 1,162, 9, 14,104, 14,234, 73, 77,170,217,146, 90, 99,104,136,112,135, 23,178,108, - 45,188,241,159,224,173,255, 8,239,189, 81,132, 55,118,132, 35, 28,150, 29, 33,135, 34,100,205, 45, 91,146,155,100,143,106, 18, - 36, 65, 0,133,185,128, 66,141,239,189,123,207,201, 76, 47,242,220, 7,121, 73, 6, 3, 32, 10,239,221,123, 78,230,247,253,126, -223,250,245,135, 31,127,184,253,202,155,195,236,248,238, 71,127,147,186,116,233,237,111,173,158,222,174,253,124,255,254, 23,241, - 19,237,214, 79, 93,251,230,175,221,252,235,255, 65, 68, 47,127,227, 87,242,202,169,118,111, 22,222,187,115,243,217,157, 79, 34, - 33, 63,146, 61,218, 17,180,133,133, 64,238, 86,134,197, 27, 55,110,252,232,195,239, 63,222, 59,154, 76, 59, 34,206, 57, 87,171, -179, 82, 54, 90,104, 89, 19,200,128,197,208, 39, 73, 66, 82,212, 88,120,168,106,176,147,249,130,137, 69,146,185,170,182, 93, 88, - 22, 81,243,220,117, 81,154,112,130,144, 48,187,100,169,145,141,133, 17, 81,206,121,182, 88, 52, 0, 33, 67, 77, 47,159,191, 72, - 76, 64, 61, 60, 58,218,125,182, 55, 88,237,135, 94, 3, 54, 11, 39,120,233,251,161, 44, 36,117, 99,146,201,185, 25, 82,148, 60, -236, 99,113,255,179,201,202,234,217,243, 23, 31, 63,188, 7,130,107, 9,168, 95,238,214,230,243,227,110,210,237, 62,126,122,249, -210,185,131,249,226,238,163,103,168,188, 62, 89, 53,184,176, 0,164,181, 94,191,114,229,201,238,110, 95,139,120, 0, 87,193, 97, -211, 35,241, 64,222, 39,158, 45,106, 22, 94,244,101,115, 99, 45, 75, 94,153,218,124,177, 8, 27,156,155, 87,168, 54, 10, 58,150, -116,167,168,164,134,245, 52, 60,187,161, 99,117,135,214,216,210, 27,145, 40, 84,171, 19,185,105,188,195, 90, 16, 52,115, 38, 56, -177, 12,181,100,114,102,113,210, 26,115,127, 99,206,205,145,216,116, 30, 68, 80,114, 39,117, 54, 47,198, 98,106, 93, 74,177,239, -100, 16, 20,147,201,132,153,213,140, 33, 78,200, 41, 11, 17, 67,204,213,162, 32, 21,191, 24, 51,107, 85,211,208, 24,250,210, 97, - 73, 49, 61,113, 50, 82, 50,175, 70, 96,129, 23, 16,167, 78, 40, 30, 23,222,151, 69,169, 53, 0, 84, 48, 35, 22, 97,230,212,213, - 82,152,201,204,205, 93, 72,148,144, 29, 66,164,176, 65, 73, 56,194, 53, 77,230,173,134,212, 22,162, 36, 36, 18,197,164,106, 57, - 33,229, 92,106, 85,160,106, 25,211,150,164,166, 41, 5, 99, 2,213, 28,142,162,150, 71,142, 49, 64, 44, 20,188,169,230,138,101, -234,178, 52,249,140,227,212,234,218,100,154, 17,168,181,178, 20,109,182,109,157,249, 11, 15, 0,141,153,114, 16,229, 36, 67, 95, - 83,150,130,210, 96,130,106,117,168, 3, 23,114,154,247,189,169,229, 73, 50,210, 36,226,240,106,150, 9,145,159, 0,187, 27,195, - 52, 81,151, 64, 99,212,220, 45,208, 39,209, 65, 36,102, 97,104, 8, 53,187,152,141,168,171,228, 14, 90, 85,131, 43,236, 54, 22, - 20, 8, 47, 30,243,209,137, 49, 37,127,177, 93, 29, 69,129,212, 74, 77,193,214, 80, 72,203,192,153,133,244,216,181, 16, 51, 28, - 22,229, 7, 55, 29,211,235,237,149,217, 40, 65, 4,102,168, 15,234,196,130, 56,208, 9, 92,157, 65,102, 96,137,102, 68, 48,103, - 65,240, 48,228,180,151,166,197,254,138,221,192,102,230,158,104,233,230,104,253,144,216,208, 99, 57,101,118,208,234,198,102,153, -207,226,118,117,230,234,117, 51,123,240,179, 15, 25,178,125,253,198,198,249,203, 39,187,143,221,201, 86, 79,105,173,135, 59,159, - 15,195, 98,235,202,171,205,185, 13, 63,115,229, 53, 22,126,248,179,239,187,209,246,245, 27, 27,231,175, 60,191,255,133, 23, 5, -209,250,153,179, 15, 62,254,225,201,225,222,249,151, 95, 3,176,251,240,139, 59,159,127,250,149, 95,255,174,176,124,250, 55,127, - 44,147,141,107, 95,255,214, 69, 94,217,123,248,112, 62,155, 31, 62,223,125,116,255,238,205,207, 62, 59,174,229, 95, 1,156, 38, -127,240,155,191,242,221, 63,248,151,195,236,104,222, 15, 87,191,242,109,146,116,243,123,255,147,160, 47,189,243,254,133, 87,223, -121,244,217, 15,226, 48, 62,221, 56,123,235,239,254, 44,182,222,151,222,250, 5, 43,229,211,239,253, 73,202,114,249,237,247,218, -151,204, 70,150, 39,252,206, 7,127, 25,223,187,213,179,231, 47,189,249,222,241,211, 71,227,151, 48,222,232, 28, 78, 57,143,196, - 35,193, 40,126, 92, 92,170, 95,187,122,197, 76, 73, 4, 76,171, 57,247,131,101,146, 70, 91,165, 70,164,154,245, 67, 55,233,170, - 87, 33,234, 18,149,129,220,188, 22,151, 44,194,146, 88,192, 84,172, 56,121, 53, 35,131,144, 28,157, 44,212, 52, 75,226, 70,100, -166, 36, 34, 44, 89,166, 8,191,177, 91, 92, 85, 50, 39, 21,123,249,210,101,119, 41,131, 29, 31,205, 15,103, 39, 66, 88,244, 5, -230, 35,113,129,204, 81,230,243,110,115, 69, 81,157, 2, 68,101, 52,142,157,192, 78,224,214,249, 50, 59,127,229,202,241,225,254, -201,236,132, 89,152, 29,194, 83, 94, 25,234,112,250,236,217,253,253,253,211,219,103,206,236,237,157, 44,250, 39,251, 71, 73,100, - 34,157,186,129, 5,196,171,107,211,107, 87, 94,250,252,238,157,170,234, 22,214,236, 56,144, 41, 17, 27,224, 76, 57,201, 80,171, -185, 14,106, 14,155,138, 12, 41,107, 63, 4,247, 21, 12, 81,142,135, 75,202, 17, 26, 48, 51,152, 58,117,204, 28, 91, 71,130,107, -117,176,112, 85, 93,153,118,117,168, 32,102,113,152,113,180, 3,173,173, 77, 44, 37,115, 45,129,206, 3,113, 13,232,188, 59, 92, - 64, 6,133, 33,194,172, 1,217,115,117,176, 12,181,178,112,151,186, 44, 60,144, 78,166,211,161,148, 8,168,113, 78, 29, 16,186, -212,190, 46,198, 53, 13,129,148, 18,161,132, 31,137,221,140, 13, 75,127, 49,150,146,194,152, 23, 69, 50, 61,158,110,194, 53,114, -223, 70, 14, 19, 98, 48,169, 91,151,146,219,184, 79,107,124, 68, 33,119,225,152,167,162,204, 75, 78, 34,206,225, 87, 50,115,225, - 37, 91,168,197,249,164,249,166, 27,165, 48, 6,102,237,175,190,125,202,169,169, 62,218,163, 73, 15, 78,250,205,211,147, 46,103, -131, 77, 40, 11, 36, 40, 97,157,164,193,141,108,100,231,130,220,217,137, 68,152,128, 94, 32, 44, 78, 32,150, 90, 10,218,124, 57, - 44, 29, 77, 94, 10,130, 90,109,221,203,168,139, 68, 54, 16,198,121,249, 70,119,144, 91,160,155,181,102, 79,196, 4, 19,114, 74, -196, 3,185, 16, 75,203,134,138,123, 31, 23,208, 37,253, 55, 28, 29,109,106,206,173,113,108,198,173,208,234,205, 3,146, 82,178, - 98, 99, 43,205,150,168,154,113, 9, 39, 35,224,222,219, 13,146,108, 73,107,137,188,137,143,146, 57, 54, 55,134,140, 43, 21, 39, - 27,249, 60, 78, 41, 17, 56, 49, 85, 55, 35, 7, 9, 91, 44,250,140, 69, 76,221,180, 89, 3,200, 56,177, 0,228,197,226,255,167, - 29,182,199,144,123, 91,222, 54, 0, 59, 53,142, 38, 11,153, 9,155,186,179,147,185,105,248,104,252,133,218, 56,148,162,218, 32, -193,228, 32,186,252,214,215, 95,122,251,235,107,103,206,237,221,187, 77,196, 76, 60,221, 56,125,240,112, 7, 14,213,225,240,201, -189,181, 51,231,158,238, 62,250,241,143, 63,186,112,245,149,105,153,205,142,246,203,162, 63,124,124, 63,242,241, 48, 91,219, 58, -187,119,247,150, 22,211,170,251, 15,238, 78, 55,183, 2,116, 14,224,217,206,231,135,207,118,215, 54,183,119, 31,220,113,224,131, -127,248,254,195,221,189, 55,222,249, 90,121,118,127, 94,186,253,133,220,191,115,103,115,251,236,241,254,254,195, 59,159,254,248, - 71, 31,252,221,255,253,224, 7, 31,127,114, 50, 95, 48,243,127,250,163,255,254,175,255,237,191,155,156, 58,123,239,199,255, 71, - 36,111, 94,250,210,163, 79,126, 0,171,174,254,236,206,167, 27, 23, 94,102,228, 56,135, 60,189,245,177,169,186, 85,164,180,190, -125,241,201,173,127, 36, 87,237,135,189,187,159,182, 12, 26,191, 16,108,198,120,176, 91,219,184,244,229,119, 31,125,252, 97,127, -114,248,130, 84, 59,210, 48,226,220,232,177,105,247,216,156, 87, 70,173,170,211,220,177,176, 80, 60, 11, 41, 24,156, 64, 60, 80, - 98,220,111,153, 19, 32,230,148, 56, 41, 96,238,197, 44,214, 62,145,207,170,165, 16,197,141,146, 84,245,112,118,220,236,132,163, - 71, 28,106,129, 72, 92, 90, 45, 98, 7, 41, 73, 54, 55,214, 47, 94, 62,231,174, 67, 41,251,135,135, 39,199, 51, 55,235,135,222, -225,137, 8,228, 10,192,108, 49, 91,180,103,232, 72, 74, 26,139, 12, 99,235,139,209,120, 38, 66,103, 47, 94,130, 57, 17,152,133, -140,221, 49,157,174,184,250,198,198,198,243,189,253,139, 23,207, 93, 58,115,122,109, 58,237,251, 65, 81, 45,102, 74,100, 48,121, -249,210,229,205,141, 77,175, 85, 82, 64,131, 95, 44, 22,133,224, 26, 28, 67,164,148, 2,184, 10,162, 83,211,105,226, 22,224,173, - 69,227,158, 20, 95,224,232,254,249,168, 67, 12,159, 42, 19,178,164,168,161, 85,115,141, 93,171, 85,150, 20,174, 68, 10,248, 21, -144,152,146,163, 19, 14,213, 25, 51, 27,172, 86, 53, 67, 13,128,223, 11,222, 80,139,195,131,131,117, 27,136, 18, 59,153,247,137, - 89,171,166,196,153,216,220,171,234,184,133, 13, 6, 30,123,181, 81,196, 65, 13, 5, 60, 30,156, 28, 68, 2,115,173,117,112,179, -255,239, 35,135, 86, 65, 97,138,104, 14,178, 8,220, 23,253, 80, 84, 3,199,202, 66, 20,108, 3, 34, 23,164, 36, 36, 18,151, 72, -225, 88,241,210, 8, 62,104,216,113,107,110,216, 40,187, 24, 17,115,148,175,194,177, 97,206,204,146, 36, 39, 97,145, 49, 28, 68, -141, 21, 65, 16, 73,237,197,204,228,110,213,253,164, 95,112, 68,157, 2,137, 58, 70, 56,105, 92,202, 10, 39,133, 51, 81, 78, 57, -119,194,224,196,156,146, 56, 19,145, 51,216, 65, 70,196,112,102, 74, 52, 46, 61,199,177,168,171,151, 18,221, 94,211, 22,120,228, - 20,193,202,246,217,228,212, 12, 54, 73,225, 90,171, 80,106, 98, 57,225, 49, 63,206,254, 79,250,139,222,100, 9,141, 64,210,194, -217,214,162,163,211,156, 25,148, 4, 76, 78, 4,181,229, 52, 59,250,171,213, 81,199,230,163,171,153,143,167,120, 98,226,204, 32, - 50,173, 49,208, 20,230,148, 69, 82, 2, 19, 56, 80, 75, 20, 15, 88,130, 16,199,124,206,199,181,139,131, 9,228, 68, 78,209, 16, -101,176,128, 40, 17, 73,117, 99, 24,196,226, 21,160,222,126,211,230,153, 4,133, 86,208, 70,202, 0, 1,110, 21,174,213, 76,205, - 75,109,117, 86,114,164, 37,197, 61,142,219,227,101, 46,197,167,228,254, 79, 62,224, 60, 61,123,245,218,218,153,237,195,199,247, - 37,103, 0,181,244, 4,164,212,145, 17, 49,223,125,240,232,231,190,246,117, 0,243,147, 99,175, 14,129,246,125, 92,254, 72, 4, - 68,231, 94,123,139,150,156, 35, 80, 85, 8, 10,220, 9,137,200, 31,223,250,228,254,147,221, 27,239,253,218,230,153,211,111,191, -121, 3,192,238,243,133, 76,214,114,199,139,195,163,148,211,103, 55,127,242,217,173, 47,190,184,183,179,251,108,127,123,107,243, -159,253,218, 47,186,251,167,127,241, 71,165,214,240, 2, 77,214, 54,136,232,245,111,255,206, 50,173,222,160,129,238,112,175, 67, - 31,203,144, 73, 94, 1, 80, 23,179,248,111,202, 98,214,230,209,227, 2, 58, 94,243,156,243, 75,239,124,107,239,206, 39, 39,207, - 30,241,216,238, 86, 53,144, 37,138,213,230,200,192, 67, 52,173, 91,159,162, 47, 11,117,154, 76,186,201,180,227, 36, 90,171,135, - 8,170,177,140,204,220, 76,181,203,169,148,162, 86, 1, 38,112, 53,171,117,112, 55, 17,113,231, 68, 92,251,154,114,118, 51,144, -151, 90,231,125, 77,241, 33, 7,133,192,110, 17,245, 30,130,145, 27,116,154,115, 41,133,128,190,212, 47, 93,185,116,118,107,187, -106,237,251,147,195,217,201,224,170,106,195, 80, 9, 28,135, 16, 1,140,105,168, 53,218, 12, 35, 93,174, 85,147,209,254, 52, 99, - 33, 82,221, 29,155,219,219,167,158,238, 30,237, 63,231,148, 2, 10,158, 58,211,154, 87, 38, 19, 29,106,183, 50, 93,223, 56,188, - 90,206,220,188,255,104, 24,116,210,137,153,119,146, 6,171,224,233,181,203, 47,237,237,237,185,123,199, 60,184,122, 72, 48,137, - 4, 24,138, 50, 81,151,100, 81,123,118, 36,102, 0,211, 46,207,250, 92,181,186, 75, 63, 12, 75,173, 51,168, 83,107, 95, 95, 18, - 14,243, 73,230,228,110,210,117, 54,215, 1, 69, 32,174,112, 40, 67,200, 17, 99,147,120, 49,114,128, 3,201, 73, 50,218, 67,217, - 83, 78,165,212,106, 21,205, 14, 78,129, 16,169, 77, 69,225, 20, 52, 75,230, 90,171,154, 78,114, 22, 22, 7, 74,141, 49,133, 59, -160,110,211, 73,215, 15,131,176, 20, 84,180,129, 82, 0,246, 96, 24, 99, 91,161,100, 24,107,210, 54, 22, 79, 98, 94, 97, 14, 51, - 18, 97, 33,174,108, 45,109,215, 58,119,200,157,152,107,169,224,248, 86, 18,194,164,154,136, 42,145, 3,106, 22,184,158,150, 17, -106,169,204,182, 68, 26,161, 0,225,237,203, 21,128, 15,129,108,200, 12,145,156, 18, 23,109, 25, 35, 25, 25,179,225, 58,111, 24, -108, 55,134,228,196, 90, 2,114,201,177, 8,241, 6, 38,111,200,125,114, 90,233,186, 69, 25,130,186,150,145,226, 77,144,146, 68, -118,136, 96, 76,172,230, 36, 2, 72,219,108, 70, 92,128, 27,199,133,163,118,167,142, 22,168,141,179, 46,177, 72,163,181,164,248, - 71,154, 72, 42,186, 64, 83,211,166,246, 10, 24, 97, 43, 54, 34, 36,150,219,116,119,173,110,205,109, 17,161,169,234,135, 39,179, -227,197,124, 53,183,201,223, 48,148,220, 9,179,104, 53,109, 78,129, 54,131, 33, 3, 51,143, 77,165, 0,106, 58, 49, 3,185,153, -224, 3,202, 76,236, 16, 1, 85, 12, 4,114, 50,114,210, 90, 57,181, 67,162,153, 69,144,156,132,152,217, 6, 68,194,220,133, 73, -131, 51,238, 81, 17,104,155,249,144,115, 54, 83,233,242,110,217,202,164,161,142,161,198, 30,112,114, 35, 18, 33,246, 6,215,183, -212,238, 47,238,204, 65, 34,139,208,126,109,156, 15, 34,171,253,254,253,157, 11,111,188,117,252,244,145, 85, 5, 32,121,194,204, - 58,148, 91,159,223,124,235,220,197,119,127,254, 23,212,122, 0,144,228,117,161,197, 38,107,235, 0,218, 60,203,253,206, 71,255, -187, 12, 11, 56,109,110, 95, 44,253, 81,233,135,141,203, 87, 0,236,222,191,253, 96,231,206,103, 95,220,222,216, 58, 7,162,183, - 95,123,253,184, 39, 0,107, 91, 23,188, 14,243,217,145,215,197,209,225,193,223,127,248,209,163,167, 79, 79, 78,250,215, 94,185, -250,251,191,253,157, 11,151, 47, 3,168,218, 34,165, 0,106, 25,224,126,243,123,127,172,165,182,156, 0,165, 23, 9,180,248,158, -160,148,161, 7,144, 39,147, 97,177, 96, 80,234,166,109,163, 97, 99,234,223, 65,196, 47,189,243,222,236,249,238,254,189, 91,161, -119,108,188,206,182,210,139, 4,191, 69,171,209,212, 68, 8,222,114,108,101, 81,220,209,177,148,190,248, 6,136, 69, 0, 17, 82, -245,162, 53, 80, 32,206,241,208,112, 1, 15, 69,173, 86, 51, 79, 41,157, 59,189,149,136,221, 2, 6,106,178,188, 86,153,214,210, - 3,150, 40, 1, 12,102,226, 68, 52,196, 95, 42, 19, 76,221,204,170,105,246, 4,171,215,175, 92, 91, 89,157,206,231,253,209,209, -241,241,241, 12,230,243, 97, 40,165,178,192,205, 72,146, 3,166,182, 24, 6,145,132, 17,222, 63,226, 76, 51,226, 70, 16, 45, 6, - 82,206,228, 10,130,159,187,248,210,241,193,222, 40,224, 32,225,156, 58,237, 86,214,207,109,108, 60,188,187,179,125,102,211, 21, -167,159,175,238,159,156, 16, 81, 74,132,156,115, 78, 90,202,133,237,179, 47, 93,188,120,231,209, 67,201, 29,233,130, 19, 80, 16, -222, 62, 34, 54,119,181, 74,192,202,218, 52, 29,114, 45,234,132,245,201,116,239,224, 80, 58,142,136,251,164,235, 98,244, 44,173, - 11,222,108, 65,226,172,104,155,224,201, 36, 67,169,198, 55,207, 68,164, 99, 65, 29,220, 44, 40,226, 2,138, 95, 1,153,168, 48, -147, 6,142,184, 29,157,115,142,167,139, 19,143,181,120,139,195,155,103,183, 64,200,134, 26,144,133, 84,105, 49, 44,144,115,203, - 10,155, 69,238,175,241, 24, 91,149,129,156,205,161, 68, 18,139, 57, 30,207,240,214, 30,248,206,224, 26, 79, 33, 39, 38,151, 64, - 2, 19,139,112,169, 53, 9,135, 75,183,155,164, 36,105, 96, 99, 30, 60,161, 21, 23,221,171,150, 85, 73, 24, 89, 98, 24,143,168, -113, 76,163, 81,204, 19,139, 5, 10, 36, 51,211,160, 85, 3,108,239,225, 45,103, 35,171, 6,141, 13,173,136, 17, 89, 41, 32,178, -198, 76,112,152, 83,131,137,114,215,101, 98, 34,166,162, 53, 94, 93, 17,115, 84,243,145,107, 27, 63, 37, 6, 81,238,196, 65,165, -184,194, 89, 90, 21,223,153, 4,174,174,195,208, 87, 97, 48,197,214,186, 13,157, 90, 96,151, 52, 4,167, 74,110, 32,246,196,194, -160, 44, 41, 94, 15, 72, 96, 35,102, 6, 39,182, 33, 66,237, 49,187,206, 76,148, 98,249,171, 8, 84, 79, 4, 9, 35,232,231,100, -193,153, 12, 12,164,214, 97, 88, 12,253,124,163, 91,101,146, 30, 62,237, 50, 49,169,247,222,210, 55,117,244, 46, 17, 64,106, 53, -132,104,204, 75,118,104,124, 34,117, 68,121,198,101, 95, 99,244,207,146,221,138,185, 17, 59,129, 85, 67,116,211,100,163,109,108, -165, 74, 41, 53,157,173,131,136,212,148,153,221,188, 33,240,165,121, 4,227,120, 96, 53,222, 34,237,160, 16,204, 5, 31, 61,102, - 4, 97,103,173,149, 70, 27, 31,143, 15,126,127,193,245,105, 20, 63, 26,245, 82, 86,203,162,159, 29,175,159,189, 96,166,253,241, -193,233, 75, 87,119, 31, 61,248,232,163,127,120,243,221, 95,228,210,215, 97,110,165, 46,142,246, 79, 95,186, 26,139,221,141, 11, - 87, 66, 42, 93,171, 30,238, 62, 56,127,253, 70, 74,147,245,237,243,253, 48,211,180,182,185,189,125,116,240,220,129, 31,126,244, -225,143,127,246,201,217,179,219,239,191,251, 77, 0,123, 11,112,119,250, 96,111,239,218,235,215,247,159, 61,190,127,251,214,229, -215,191,252,151,255,235, 79,239, 60,124, 48,201,242,187,191,250,238,191,249, 23,191,189,177,113,106, 40,218,206,232, 45,237, 67, - 90, 22, 7,143,118, 46,190,254,181,212,117,196,158,167, 43,107, 91,219,203, 31,119, 8, 96, 88,196,181, 30, 63,125,180,253,234, -219, 68,196, 93, 58,123,237,141,104,208,140,215,104, 39,166,139, 95,254,186,171, 62,249,244, 7, 17,187, 88,158, 9, 34, 65, 63, -226,152, 91,108,156,154, 44,186,245, 9,107, 85, 73,126, 56, 63,158,116,121, 66, 32,161,201,100, 34,228,197,117,168,218, 9,215, - 65,217,201, 92, 99, 4,198, 17,155,114, 75, 41, 49,131, 19, 17, 92,132,205,106,169,218, 34, 76,194,106, 77,172, 21,252,251, 40, -146,120,176,162,140, 22, 67, 95, 77,227, 64, 55,201,221,155,175, 94, 7,177,171,206,142, 23,139, 50, 24,124, 62, 91, 88, 27, 16, -202,133,243,219,193, 84, 95,244, 3,200, 97,214,118, 58, 44, 36,105, 4,175,142, 40, 30,130,103, 10, 78,233,169, 51,167, 55,206, -156, 43, 67, 15, 87, 34,135,115,226,220,117, 43, 86,212,170,150,161,156, 62,189,250,234,165,115,234, 58, 91, 44,200, 77,107,117, -162, 73,206, 41,175,188,241,202,245,213,149,213,150, 97, 50, 48, 32,137, 43, 60, 39,201,147,172, 14, 32,245,125,141,189, 92, 25, - 10, 51, 72, 48,159, 47,218, 67, 83,152,163, 73,199, 33,123, 14,148,181,240,216,251, 87, 83, 99, 48,113, 34,166, 4,168, 41,148, - 52, 50,109,238, 78,146,220, 44,222, 90,108, 20,183,231,198,253,243,198,139,106, 97,168,120,191,178, 59, 4, 66, 16, 32, 18,118, - 41,115, 18,137, 99,128, 90,220, 26,137, 73, 82,202, 78, 16,150,145, 61, 16, 40,100,103, 33, 82, 66, 76,182, 93,226, 65,232, 35, - 95, 98,168, 53, 34, 34, 60, 22,196, 35, 88, 1,135,217, 16,211,232,182,121,115,196,201, 20,174,209,186, 33,146, 86,185, 67, 76, -114,199,112, 97,100,247,154, 16,187,197,203,189,185, 13, 90,192,200,172, 84,173, 49,123,143,164, 82, 18,201, 62,134, 90, 70,105, -160,155, 58, 32,110, 18, 71,234, 20, 15,134, 72, 67,186, 6,206, 49,142,176,194,228,109, 4, 31, 31,153,217,201, 28,106, 57, 37, - 38,170,238,170, 26,241, 44,173,234,225,105,113,103, 64, 72, 0, 4,162,163,101,184, 26, 93,141, 84, 45,206,164,210, 86, 98, 80, -184, 58, 17, 83, 98,129, 59, 11, 17,168,154, 82, 24, 13, 41, 33, 68,190, 41,182,151, 68, 16, 18, 34, 73,203, 25,122, 91, 58,153, -153, 5, 52,222, 77,117,252, 78,240,218,202,250,114,213,200, 44, 16,105,157,225,246,164,110,211, 58, 48, 0, 14, 97,114,236, 4, - 2, 80,229, 94, 27,207,135, 25, 96,183,208, 47, 42,136,204,106, 28,175,193,130, 22,196, 36, 0,166,241,111,155,110,144,224,100, -206, 65,183, 38,119,183, 90,171,169,141, 63, 25,112,102,118,137,209, 59, 75,171,116, 45, 81, 69, 17,224,112,180, 1,168,123,137, -143,178, 26, 96,158,124,105,247,110, 35, 94,110, 41, 85,140, 13,105, 18,184,159,236, 61,221,186,124,181, 63, 58,218,249,228,199, -107,219,151,223,252,246,175,191,253, 75,212, 31,238, 63,219,249,220,212,136,229,249,221,207,183,174,190,250,242,215,223,175,125, -191,255,112,167, 91, 63,101,170,238,122,239,103, 63,184,124,227,171,215,223,251,101,150,164,101,120,186,243,197, 23, 63,252,251, -167,135,199,215,191,246,254,108, 62,188,255,238, 55, 78,159, 90,159, 87, 3,176,178,113,174,155,116,159,255,240, 71,231,175, 93, -253,165,239,254,243, 90,203, 95,255,249,159,255,199, 63,252,195,175,188,241,165,223,120,255,155, 23,206,157,233,135, 82,172,202, -116,153, 99, 12,160,184, 19,232,254, 79,255,254,226,141,111,188,250,254,111,179, 72,237, 23,123, 59,159,158, 60,123,216, 38,182, -113, 33,162, 10,200,195,159,125,255,242, 91,223,124,227, 87,190, 91,251,217,222,206,231,211,141,173,198,116, 24,113,218,167, 46, - 92,113,179, 87,127,233,187,241,199,223,187,123,243,249,221,155,203, 50,113,244,139,162,147, 22,229,247, 8,177, 4,146,233,100, -190,200, 41,151, 1, 41,119, 16, 33,224,204,230, 86,215, 65, 21,196,220, 54,180,109,152,171,166,213, 56,170, 41,180, 50,233,102, - 39,135,174, 43, 21, 78, 32, 53, 23,115,176,168, 41, 49,177, 16, 12,212,113,240,179,101,220,212,115, 48,235, 61,202,138, 92,180, - 76, 39,147,203,151, 47,186,121,169,229,164,159, 47,250,222,204,231,139, 69, 12, 84, 25,126,176,127,192, 76,110, 24, 6,141, 15, -220, 72,161,104, 1,181,216, 22, 5,183,136,148,189,143,232, 57,193,236,194, 75, 87, 78,142, 15,181, 22,162,196, 73,136,121, 50, -157,214,186, 56,119,249,210,179,221,167,147, 73,222,216, 44,175, 95,190,120,243,238,227,126, 88,172,173,159, 34, 80, 39,137, 72, - 79,157,222,124,237,218,203,183,110,223,141,224, 17, 66,113, 76, 73, 29,193, 96,139,190, 99,252, 88, 34,157,184, 54,153,150, 50, -171,142, 97,168, 2,234,171,166,228, 68, 2, 11,204,122, 92,152, 68,136, 84, 0, 70,240,171, 34, 96, 80,220,146, 41,117, 73,135, - 32,163,183,229, 4,161,153,124,204,220,130, 19,239,144,148,100, 32, 8,215, 90,115, 74,110,181, 85,249,154,236, 38,181,248,104, - 12,149, 99,232,105,190, 58,233, 74, 81,117,133,138, 72, 42,181,154,153, 86, 13, 18, 1,153, 36, 22, 35, 31,223, 35, 45,114, 11, - 98, 51,235, 68, 82, 27,117, 71,189,205, 99, 31,199, 52, 66,250, 0,105,199,177,224, 62, 33,108, 67,196, 52,250,234, 9, 68, 41, - 37,117,184,154,112,200,206, 42,136, 2, 66, 91,212, 90, 57,158, 95,184, 65,199,139, 66,112,216,199, 1,131,153,176,180,211,138, -141, 54,244, 86, 49,133, 75,195, 25,117, 41,141,191, 34,185, 69, 9,147,189, 61,135,109, 73,104,138, 73,164,116,185,246,125,152, - 14,172, 33,234, 3, 20,132, 49, 79,205, 68, 96,225, 23,231,167, 38,130,107, 68,132,134, 56,105,227,166,120, 73, 26, 70, 76, 49, - 49, 9, 81,151,146,170, 18, 25, 16,164, 70,143,211, 82,116,123, 9,137, 66, 87, 31,207,189,182, 9,227,208, 37, 22, 84, 0,194, - 76,204, 33, 91,105, 75,139,160,117,186, 85,167, 48,173,199,224,220, 3,192,197, 60, 42,172,221, 28,166, 62,174,175, 91,126,166, -189, 32, 89,220,219,133, 36, 86,179, 60,126,195,136,201,213, 34,120, 4,114,115, 99, 97, 19,113, 32,212,136,161,118, 0,165,112, - 53, 5, 26,158, 60,164, 54, 77,132,222,248,148,176, 80,223, 26, 49, 92,163, 60,209, 46,227, 97,172, 80,103,118,119, 79,173,137, -211,184,219, 99,236,207,189, 14,253,189,159,124,127,196,133, 81,127,112,176, 55, 12,159,253,244,163, 59,183,111,189,243,205,239, -228,197,124, 24,230,230, 81,228,133,187,149,126,241,240,227, 31,170, 86,184,173,156, 62,163,125, 95,106, 61,125,118,251,193,206, -103,183,126,244,193,217,237,211, 71,123, 7,125,153,237, 61,126,252,143, 31,127,114, 50,171,248, 15,255,254,189,111,188, 89,157, -247,251,156,147,124,244, 87,223, 19,242,167,143,238,221,251,226,211,219,255,245,254,189, 71,143,159, 28, 28,108,174,173,254,193, -119,127,227,171,111,190,106,138,121, 25,224, 32,150, 50, 63,252,201,159,252,231,102,150,106, 18,100,114,215,135, 31,127,255,209, -205, 15,199,118,151,131,104, 56,126,254,147, 63,251, 47, 2, 33, 50,115, 6, 72,251,114,247,163,191, 29,229, 60,216,223,249,156, -128,225,248,232,230, 95,253, 81,128,252, 62,249,139,255, 6, 2,115,114, 55,152, 82, 88, 32, 90,188,110,188, 29,191, 0,121,182, -174, 81,116,109,250,126, 96, 78,211,149,116,170, 42, 85, 85,179,195,147,227,203,211, 51,193, 15,138, 43, 86,213, 42,108,139, 69, -169,181,210,164,235,251,162,196,235, 43,147,231, 7,213, 65,181, 70, 0, 32,209,120,127, 38,103,146,228, 4,129, 65, 36,116, 0, - 35, 59,200, 18,226, 68,236,211, 46, 31,157,204, 94,190,112,113,235,244, 86,169, 54, 59, 58,217,127,190,223,247, 37,178,101, 52, -186,232,135, 90, 87, 87,166, 46,172, 86,151,132,161, 38,161,110,252, 33,113, 15,174, 0,135,183, 56, 62, 16,234, 88, 89, 93, 59, -179,125,254,209,189, 59,121,146, 97, 68,156,172,106,206,147, 90,135,173,115, 91,183, 62,185,181,214,229,107,151,206, 63, 63,153, - 63, 63, 58,153, 84,235, 18, 83,146, 9, 39,131,191,254,202, 43,251,207, 15,119, 30, 60, 72, 57, 49,216, 25, 73,152,133,135,161, -182, 61,113, 85, 8,133,102,152,133,215, 86,167,197,181,239,135, 65,121,168,133,136,125, 84,101, 4,206,148, 5,194, 12, 98,152, - 6, 19,187,168, 59, 69,126, 48, 38,239,112,144,144,120, 99, 21, 54, 22, 58, 51,197, 89,146, 40, 94,104, 81,108, 33,115,165,160, -142,152, 6,241,207, 91,219, 68, 64,168,104,176, 72, 54,113, 87, 6,171,151,140,140,145,102,105,106, 6, 87,173, 76, 46,137, 60, -202,180,164,129,125,229,176,144,197,153, 58,204, 44, 3,121, 99, 27,143, 17, 46, 71,102, 25,172,142, 72, 50,128,194,170,161,220, - 56,166, 81, 71, 50,192,152, 5,134,156,185,103,247,232, 49, 49,147, 67, 93,217,157, 71,130, 91, 28, 64,150,243,133, 64,201,197, - 33,175,129,100,131, 66, 79,237, 32, 52,174,218,131, 19,140, 68, 92,200, 96,206, 32,173, 37, 75,138, 20, 35, 9,199,100, 88, 70, - 50, 24, 51,192,232,144, 72,196,107, 37,131, 51,132,152, 25,165, 22,170,141,142,101, 60, 70, 2,153,114, 74,110, 24, 34, 14, 28, - 1, 75,129,215,200,143,195,105,132, 32, 6, 72,134,217, 85,251, 90, 88,132,205, 19, 19,152, 77, 85, 56, 85, 12, 68, 20,245,197, -102,100,116,175, 26, 36,151,198, 34, 30, 19,112, 78,209,244,118, 11,204, 67,252,189, 16,145, 80,106,169,209,241,108, 93,130, 33, -175, 30, 49, 82,107,206,177, 38, 9, 51,107, 20, 29, 39,114, 48, 3,213,156, 65, 28,104, 48,150, 32,196,185, 27, 80,199,118,141, - 71,165,195,105,132,158, 8,195, 93,132,212, 28, 78, 70,177, 28,111,246,152,240,109,140, 18, 50,114,119, 23, 19,106,221,127,201, - 89,107, 13,133,160,186,152, 43,183,135,161,112,100,122, 89, 35, 92,155,162,130,218, 18,159, 34, 36,113,180,105, 89,145,230, 13, - 21, 57, 56, 56,248,236, 31,254,118,178,117,238, 87,127,231,247,178,247,243,254,164,197, 45,178, 16, 92,135, 66,221, 36, 73,210, -147, 99,202,221,217,171,175, 29,237,237,110,158,191,180,255,108,119,101,243,194,233,173, 51,143,119,110, 61,127,242,232,225,131, -251,159,221,190,119,230,204,217,239,188,255,250,116, 50,157,171, 88, 62, 61, 93, 93,101,161,195,103,143,158, 62,121,112,239,222, -189,187,247, 31,223,125,252,104,177, 40, 63,255,230,245,223,252,206, 47,156,221,218, 90, 28,247,222,206,154, 2, 88,160,142,208, - 20, 23,225,163, 98, 71, 6,212,181, 18,103,247,138, 86, 63,102,110,212,132,224,220,136,107,117, 66,124,156,199,201,165,183,108, - 90, 67,101, 7,206, 63, 10, 0,210, 46,240,141,237, 23, 71, 48,103,137,123, 55,198, 95,220,227,240,127,112,120,204, 73,146,105, - 74,105, 24, 6, 55,215, 82,224,158, 88, 82,115,248,197, 73, 44, 13,117, 14, 38,175,186,127, 56, 35,243,148, 36,115,102, 98,120, - 77,194, 91,155,167,142,143,103,214,156, 69,198,209,180,178,246,187,165,166, 42, 4, 88, 0, 75,145,240, 51,152,234,229,203, 23, - 87, 86, 86, 13, 86,181, 28,158,204, 13, 40, 67,169,110, 81, 98, 25, 67, 0,142, 90,251, 82,252,133, 75,156,150,233,156,118,138, -179,118,228,140,152,138,143,193,177, 51,103,183,159,239, 62,209, 58, 64, 38, 57,101,115,168,100,114, 76,186,233,230,214,230, 52, -167,167, 79,159,191,122,233,252, 79,251, 7,125, 63,155,166, 83, 0,166, 43,211,162, 53,165,252,229, 55,222,120,182,255,172, 31, - 10,187, 73, 27,173, 17, 51,101,206, 65,197,142,179,237,250,164, 59, 56, 89, 36,145, 51, 27, 27, 7,135,199, 60,232,104, 30,183, -209, 59, 17, 0, 36,214, 80, 15, 3, 9, 94,204,132,161,106, 32,114, 50,226, 36, 76,113, 88, 34,132,190,131, 36, 22,156,113,148, -174,198, 34, 78, 12,211,208,217, 4,164,181, 77, 27,150,214,178, 70,136, 33, 50,168,169,116, 68,201, 93,173,175, 37,166, 88,169, - 75,165,239, 23,195, 16, 10,100, 87,175, 14, 46, 90, 59, 13, 96, 31,141,177, 36, 22,104, 29, 5,196,106,129,123,137,103, 36, 76, -201,101, 50, 73, 66, 60,104,227, 14, 6,110,207,212, 74,210,118, 2,108, 58, 31, 3,132, 29, 39,139,121,150,245,204, 89,109,201, -161,164, 6,140,165,118, 60,133,153, 91, 20,244,219,143,174,253, 25,153,200,156,140, 40,145,144,164, 44, 96,141, 91, 74, 43,166, - 34,120, 62,198, 68, 41,117, 97,174, 10, 26, 98,230,128, 49, 40, 51, 13,145,183,246,134,253, 77, 83, 78,146, 74,173, 96, 23,201, -170, 10, 71,102, 57,172, 1, 67,179, 48, 2,198, 71,177, 47, 26, 78, 15, 52,213,219,178,139,132,198,117,111, 51, 39, 0, 16,145, - 36,169,203,169,168, 66,220,137,166, 41,153, 54, 44, 0,128,148, 40,107,106,140,123,119,175, 65,139,107,208,194,241,255, 81, 68, -168, 90,208,226,136,152, 29, 72, 57,149,170,213, 12,170, 64,141,207,201, 32, 60,159,205, 35, 10, 80,204, 18,231,150,217, 82, 39, -130,113,139, 75, 80,188, 66,194,221, 22,170,119,230,112, 49, 47,145, 24, 34,174,234,106, 42, 17,221,105,187,126,107,169, 74,144, -228,228,181,214,170, 13,211,219,128,100,205, 28,191, 20,242, 5, 60, 76, 3,101, 70, 74, 53, 80,239,205,221, 42,206,106, 42,204, - 62, 86,246,169,165,130,145, 26, 98, 45,238, 38,203,219,145, 53,205,101,151,167,243,197,252,167, 63,248,160, 31,252,250, 91, 95, -189,120,110,187,214,210, 43,218,202, 37,248, 12,222,238, 71, 23,222,120, 71,114,231,102,179,231,187,183,127,250,209,116,101,117, -232, 23,171, 43,107, 95,252,228, 43,248,243,154, 0, 0, 8,156, 73, 68, 65, 84,195, 71,143, 30,126,126,235,206,188,214,175,190, -125,227,242,249,237,234,124,100, 43, 41,175,117, 93,118,235,247,246,158, 62,188,127,231,222,189, 71,183,118,118,238,237, 62,189, -112,118,235,247,127,247, 59, 95,190,254,178, 57,205,102, 71, 96,176, 79, 70,170,148, 47,151,108,228, 62, 54,115, 26,157,147, 44, -156, 39, 13,187,227, 80,166, 73, 43,237,186,155, 13, 8,225, 88,179,132,155,105,184,191,157, 44, 57,233,152,160, 82, 11, 94, 68, -219, 68, 52, 74,112,220, 42,151,131,194,224, 50,196, 87, 49,250,109,243,249,176, 58, 93,113,232,238,243, 67,214,128, 16,176, 48, -159, 44,230,107,235,171,153,211,188, 95, 12,181, 6, 76, 99,194,220,247,243,121, 25,114, 74, 73,186, 73, 55, 97, 66, 53, 53,245, -149,233,202,124,182, 48, 51,211, 90, 77, 39, 35, 47, 9,238,137,216,200, 61,234,195, 14, 85, 45, 42, 29, 11, 17,117,147,201,181, -171, 87,136, 65,213,251,190, 63,156,157,152,217,188,159, 91,160, 6,199,101,133,177,131,169,246,125, 59,228, 97,201, 98, 90,110, - 43,146,179, 3,234, 49, 53,136,109, 28, 1,238,221,250,250,230,214,153,199, 15,239,117,156,107,109,176,214,201,116,117, 49, 63, -217, 62,127,238,217,147, 39,167,183, 54,119,251,221,139, 91, 27,119,118,159,205,250,197, 70,183, 66, 66, 19,238, 22,165, 92,185, -116,229,198,171,111,252,232, 31,127,234, 34, 0,245,165,108, 76, 38,166,150,196, 93, 48, 12,101,222,151,193,117,139,166, 73,104, -190,232, 39,171, 43, 27,235,171,245,240,100, 88, 12, 97, 12,119,247,190, 12,113, 10, 13, 34,183, 99,156,116,142, 56,120,143,221, -107, 41,121,210,113, 76, 26, 97,238, 45,176,204, 49,100,112,113, 40,212,147, 67, 99,130, 65,148, 57,113,252,156, 57, 6, 58, 75, - 96, 55,194,188, 56, 91,244, 96, 89,235,152, 76, 8,112, 87, 51,114,243, 82, 43,136, 84,181, 86,173, 33,231, 38,117, 64,173,146, - 1,169,201,231,196, 56, 42,114,177, 0, 0,180,233,225,188,101, 92,114, 74, 85,151,162,122, 52,225, 9, 32, 76,137, 18, 24, 49, -116,137,246,103, 52,245, 85,235, 8,140,142,216, 30, 73,130,169,215,106, 17,206,116, 2, 39,193, 64,158, 64, 64,158,228,113, 8, -221,214,127, 65,110,169,213,205,200,152,196, 25,170, 17, 0, 34,137,236, 24, 98, 12, 83, 53, 30,107, 17,174, 55, 13,224,170,107, -244, 42,221,145,136, 37,177,187,197,201,134,217, 20,110,234, 43,147, 28,238,202, 86, 89,111, 79,154,104,168, 81, 69,107, 99,142, -121,161,118,115, 49, 51,112,128,229, 65,236,166, 90,147, 8, 51,218, 97, 20,234,193,106, 79,210, 15,230,241, 66,106, 41,244,192, -229,147,139,193, 57, 46, 49,241,163, 96, 78, 34, 67,173,204,108, 49,134, 12, 6, 60,188, 22, 99, 43, 49, 69,119, 51, 55, 47,102, - 76,210,142,244,112,243, 81,126,180, 4, 85,142, 51,153,165,152,172, 25, 90,219,213,175,137,145, 53,140, 89,204,110,227,226,187, - 82,100,106, 99, 90, 91,180,152, 6,114,180,169, 83,213, 77,173,198, 60, 61,196,200,241, 98, 86, 0,213, 56, 17,131, 92,141,164, - 41, 5, 56,158, 77,202, 32,130,151,246, 27, 73,188, 45,144, 90, 74,159,154,230,111,185,195, 78, 57, 17,248,246,167, 63,187,179, -179,115,249,229, 87,190,113,227, 70,173,253,124, 49,151,148,184,155, 80, 69,117,135,215, 88, 86,104,173, 39, 79,238, 31, 63,219, -157,174, 76, 14, 14, 15, 57,229, 73,110,130,191,231,143,119, 62,254,228,230,206,131, 39,151, 46,156,251,246,235,215,114,226, 89, - 97,205,167,243,100, 53,179,159,156, 28, 28,238, 61,185,115,247,238,237,187,247,110,221,127, 52,235, 23,239,127,229,203,191,243, -171,239,173,175,175,149,197, 0,102,131, 91,165,148, 45,130,187,129,229,106,163,133, 23,214, 98, 29,189, 36, 68,174, 4, 5,139, -123, 2,200, 92,185,193,166,157, 96, 49, 91,140,178, 0, 17,113,146, 17,208,163, 24,201,181, 16,110,232, 16, 10,243,120, 3,238, -216, 40, 86, 48,179,145,136,194, 60, 30,241,224,126,178,152,119,147, 73,223, 47,200,209,137,232,164, 75, 89, 42,212,205,230,179, - 69, 62,179,237,238,205,201, 64,204,174, 7,243, 69,104,198,132,169, 47,139,117, 94, 67, 43,203, 72,206,146,153,247, 79, 74,169, - 53, 5,251,134, 9,238,149, 91, 85, 46,181,241, 51, 17,144, 37,131,124,117, 58,185,114,225,162, 86,168,149,253,131,253,217, 98, - 97,102,181,212, 49, 71,180, 12,137, 1,224,197, 48, 31, 85, 73,241, 21,214,229, 27,190,121,115,149,169,115, 36,248,162,173, 96, -227,173,120,238,165, 43,207,159, 62,113,114,102,192,157, 57,165,233,116,226,245,248, 96,191, 46, 22,167,206,157, 91, 61,181,182, -237,120,122,120,188,176, 90,181,244, 53,173, 79, 38, 43,220,169,251,141,215, 94,223,185,127,127,247,249, 62,179,176,136, 72,118, - 31, 74, 25, 68,114,202, 44, 32, 53,127, 54,155, 79,146,172, 77, 39,139,170, 29,115, 74,236, 68,149, 52,187, 56,172,147, 28,141, - 70,142, 26,104,212, 63,226,113,108,177, 38, 8, 56,159, 21, 53, 34, 98, 39, 35,114, 98,131, 10,195,137, 52, 16,154, 36,181, 86, - 16, 18,167, 34,201, 2,141, 47,156,146,212,226, 74, 22, 29,206, 16, 7,179,155,185, 50,185, 89, 45,166,102,117,101,186, 82,230, -138, 68,139,190, 23,150, 69, 25,138, 22, 39,147, 80,100,190, 96,113, 53,195, 96,116,148,212, 61, 59, 37, 22, 78,201, 23,101,132, -133,180, 13,160, 85,213, 90, 70,110,108,216, 72, 12,196, 57,119, 73,132, 8,169, 75, 14,157,247, 14, 18, 6,173,173,174, 74, 40, - 12,163,113,100, 10, 36, 15,255, 52, 25,185, 26, 68,192,161,181,139,164, 38, 49,179,147, 54,146, 92,144,223,168, 89, 97, 25, 28, -228, 91, 22, 88, 35,133,147, 90, 75, 4,130,226,165, 64, 28,128, 45,111, 71,202, 6, 34,111,124,139,192,198,153, 69,238,223,153, - 72, 58, 54,109, 22,241, 54,173,110,243, 28,206,146,152,201, 84,107, 59, 5,195,213, 41,108,222, 12,179,101,154, 52, 80,204, 34, - 1, 24, 16,113,173, 14,241,177, 4, 33, 68, 33, 64,135, 32,176,199,196,146, 88, 76,107,175,117,249,194, 28,189, 67,226,134, 76, - 73, 49,180, 4, 10, 67, 40,129, 76,173,186, 43, 83,106,197,150,120,135,150,202,156,156, 20,206,109,245, 30, 55,103,231, 24,175, -141,248,223,136,228, 51,189,192, 36,197,219, 57,218, 72,109, 19, 59,154, 54, 20, 68,170,206, 44,102,113,250, 10, 49,129, 49, 68, -181, 90,228, 92,204,226, 52,217,130,203,106, 66,176, 70,129, 52, 18, 6,132,199, 7,160,153,241, 72, 5,211, 26,146,239, 6,158, - 79,141,198, 28,140,177, 88, 42,229, 21, 66,189,127,111,231,254,206,206,116,245,212, 55,191,245,203,235,235, 43,139,249,113, 80, -154,172,154,152, 27, 12,163, 57, 79,235, 80,251, 69,154,174, 77,214,214,143,143, 14, 37, 79, 78,109,157, 57,122,246,120,152, 29, -124,241,249,167,159,223,222, 73,210,189,251,149, 27,219, 91,155,213,232,168,116, 60,221,156,164,206,189, 60,221,125,188,251,248, -225,157,251,247,111,221,189,255,232,217,254,217,211, 27,191,247, 91,191,252,213,183,174, 27,104, 24, 10, 73,203, 38, 38, 33,184, -142,113, 19, 90,174, 77, 98, 51, 76,206,227,138,216, 65, 9, 17,186,119,129,155,147,196,140,161, 33,224, 99,202, 99, 70, 75,251, - 76, 60,200,195, 91,235, 75, 70, 77,155,224, 7, 19, 19, 32,119,109, 15,244,246, 3,141,233,237,139,106, 50,204,157,188,239,139, -164,236,139,217,100,146, 89, 61,250,166, 9,196, 34,139,249,108,177,152, 29, 29,167, 50, 20,139,160,165,164,121, 95,219,153,209, - 12,134, 44, 73,137,163, 5, 24,229,133,162,197,153, 73,154,221, 32,102, 13,193, 17, 36,106,148,174,101,240,121,115, 99, 99,115, -115, 83, 50, 47,142,202,243,131,253,170, 86,172, 46,202, 64,198, 4, 93, 90,116,195, 10, 95,251, 1,169,245,236, 98, 14, 97, 80, -166, 68,144,101, 90,218,213, 97,113,244, 89,126, 67,104,186,190,113,233,234,181,123, 59,183,147,100, 14,176,179,214,174, 91,157, - 78,231, 87,190,244,165,157, 59,119, 55, 79,175, 39,248,171, 47, 93,248,201,237,251, 10, 63,181,182,234,206, 89,200,107,221,220, - 56,253,213,119,126,238, 79,255,230,175,212,172,203,185, 88, 13,225, 14,224, 66, 60,201,210,173,118,139,162,100,186,182, 58,173, -199,115,115, 90,201,147, 35,204,225,148, 83,170,170, 57, 11, 17,143, 39,161, 86, 19,143,153, 67, 69, 52,183, 74, 11, 73, 66,153, - 26, 56,222,213,152,205, 3,221, 8, 50, 80,230, 96, 6,135, 10,144,216,189,160,186,117, 66, 16,242,242,162,125, 14, 7,204,192, - 78, 93,158, 40,188, 31,234, 88,107, 68, 34,234,189, 82,244,107, 0,226, 84,225, 18,197, 83,143,112, 72,236, 9,149,219, 53,208, - 33, 44,146, 56,150,136, 22, 91,157,176, 20, 81,169, 53,190,152,141, 91,202,204, 36, 17, 30,141,109,190,155, 17, 88, 43, 66, 31, - 52,153, 76,180, 86,196, 66,216, 93, 88, 84,149, 69, 96, 36, 36, 5, 46, 30, 66,201, 23,241, 87, 4,196, 0, 2,243, 10, 11, 90, -161, 7,200,254,159, 36,199,199,250, 72,232,215,131,167, 70, 34,210, 15, 67, 29,124,210, 37, 2, 59,143,101,250,165,222, 0,122, -116, 50, 3,241, 16, 35, 56, 94,129,130,147,180,217, 56, 8, 76, 99,147,142, 34, 13, 19,201,194, 37,194,138, 67, 99, 62,246,239, -227,204, 25, 27, 12, 18, 8, 17,187, 83, 11,145, 0,230, 85, 3, 44,236, 89,196,220,234, 80, 16,120,140,120,195, 48,147,209, 56, -202,140, 99,186,186, 67, 85,227,189,200,227, 8,160,148,194,164, 90,157,137, 18,203, 96,166,214,140,126,188, 84, 65, 4, 7,137, -150,208,126,199, 11, 96,157,144,187, 70, 26, 42, 44, 35, 22,190, 60, 39,110,243, 0,110,111, 43,113, 87, 55,231, 68, 68, 84, 77, -205,156,184, 9, 4,221,169, 90,148,252,218,181,165, 97, 27,204, 1, 87, 55, 14,229,112, 59,227,194,221,139, 25,179,120, 88, 31, -218,205, 34,164, 97, 48, 67,102,114,248,255, 3,163,186,128,162, 44,159, 39,191, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, -}; +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, 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,219, 8, 10, 15, 54, 11,254,114,226, 41, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189, +121,212,101,103, 89, 39,250,123,167, 61,156,225, 27,106, 72, 85, 66, 37, 49,149,129,132,132, 41, 21, 6, 1, 21, 72, 33,160,226, +132,137, 99, 59,155,216,186,188,182,182,146, 92,180, 23,246,242, 98, 19,187,111,115,219,123,181, 37, 42, 44,245,218, 10, 81,161, +165,175,136, 41, 71,104, 90, 66, 42, 4,130, 16, 8,169, 36, 36, 33, 73,205,223,116,134,189,223,225,254,241, 60,239,217,251,156, +250,230,250,190,202,224,254,173,117,214, 55,156,115,246,222,239,244,204, 3,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, + 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104, +208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26,156, 19,168,115,124, 63,193,175, 12,192,126, 33,176, 27, 64, 15, + 64,201,255,111,208,160, 65,131, 6, 13, 26, 60, 11, 32, 0, 72, 33,112,217,187,127,234,250, 63,121,248,247,127,226,232,163,127, +116,211,137,223,249, 55,111,250,239,137, 18, 7,106,159,105,208,160, 65,131, 6, 13, 26, 60,195, 53,117, 1, 32,121,199, 15,191, +242,157,183,126,215, 53, 63, 56, 83, 12,218, 83,211,173,252,218, 87, 92,250,252,111, 63,112,201,193,187, 62,255,208,147, 79,156, + 26,126, 9, 64,104,152,123,131, 6, 13, 26, 52,104,240,204,102,234, 18, 64,235,205,215,180,223,250,154,221,226,154,226,232, 81, +216,147, 39,224,251, 22, 23, 92,113,225,236, 13,215, 95,243,150,163,167,230,212,189, 15, 28,255, 12,128,126,195,216, 27, 52,104, +208,160, 65,131,103,182,166,158,254,237,125, 39,158,188,234,130,244, 69, 47,186,108,247, 94,148, 30,126,225, 20,252, 98, 15,157, +243,118,234,111,189,254,197,223, 48,147, 39,151,127,244,174, 35,159, 6,112,162, 97,236, 13, 26, 52,104,208,160,193, 51,147,169, + 3,128, 8,192,194,159,126,234,216,189, 78, 23, 59,191,254,170,189, 87, 24,101,224,122,139,240,167, 79, 3, 89, 27,175,122,245, + 85, 87, 29,188,106,223,107,255,254,222, 47, 63,124,122,169, 60,210, 44, 81,131, 6, 13, 26, 52,104,176,126,237,249, 92,223, 47, + 3, 48, 13, 96,223, 91,175,155,254,161,223,254, 87,215,253,248,174, 86,146, 21, 75, 67, 64, 25,136,125, 23,195,236,219,135,167, +158, 56, 49,255,243,191,241,145,255,240,223, 14,125,233,183, 0, 44,240,247,195, 51,121, 50, 67, 8, 7, 0,204,242,159, 71,132, + 16,207,105,161,228, 95,218,120, 27, 52,104,208,160, 97,234,203, 67, 2,152, 2,176,231,146, 89,245,173,255,227,103, 95,246,243, + 87, 93, 48,179,183,236,149, 0, 60,176,247, 34, 36, 23, 93, 12, 27, 60,222,249,190,255,249, 7,191,242,187,127,247,203, 0, 30, +229,231, 61,107,198, 30, 66,216, 15, 96,255, 58, 63,126, 74, 8,113,120,157,215,189, 19,192, 65,254,243, 86, 33,196,109,207,113, +166,254,156, 24, 47, 11, 39, 7, 89, 64, 57, 80,123,235, 48,128, 35, 0,238, 16, 66,156,218,130,251, 76, 94, 31, 91,189, 7, 27, + 52,104,240, 47, 27,250, 44,152,178, 7,208, 61,127,202,188,240,162, 89,179,211, 5, 41,198, 36, 5, 1, 72, 41,132,143,255, 17, +244, 37,168,209,187, 26, 64,171, 95,248,254,191,253,240, 67,127,245,127,190,245,234,111,191,114,239,212,140, 45, 3,112,234, 56, +202,118, 27,106,199,121,120,199,205,223,240,131, 47,223,127,193,243,127,240, 93,119,252,226,241,249,226,227, 91,196,216,111, 0, +240,174, 13, 16, 99, 0,184, 3,192, 33, 33,196,237,205,182,121,206, 88, 25,110,224,215, 74, 2, 94, 20, 88,222, 19, 66,184,157, + 5,151,179, 97,238, 7, 0,220,185,137,239, 29, 2,240,134,102,213, 26, 52,104,176, 29, 76, 93, 0, 16,221, 84, 30,248,175, 63, +248,146, 95,251,150, 23, 93,248,218, 86, 75, 39, 65, 40, 64, 8, 64, 10, 64,242,239, 90,209,223, 74,142,222, 19, 74,211,255,132, + 0,132, 4,164, 68, 0,130, 11,194,123,173, 33, 71,255, 23,240,174, 68,232, 11,188,249,141, 87,190,226,240,243,127,242,207,126, +242,215,255,252, 29, 31,249,228, 99,239, 3, 48,196,185, 55,197,223, 0,224,134, 16,194, 13, 0,110,220, 10,205,173,193,211,138, +187, 55,248,249,155, 0, 28, 12, 33,220,216,104,205, 13, 26, 52,120,174,105,234,187,127,239, 71,175,125,247, 13,175,218,255,117, +182,231, 0, 47, 32, 36, 23,139, 11, 18, 8,130,148,121,207,172, 55,176,134,238, 1,120, 15, 40, 5, 33, 88,117, 15, 0,132, 16, + 82, 10,133, 16, 70, 90, 61,177,236,128, 0, 1,219, 43,113,209, 69,187,118,255,233,127,252,161,255,231,127,255,173, 67,151,255, +198,159,124,242, 63, 0, 56,182, 69, 90,123,212,132,176,134,182, 86,255,251,206, 16,194, 27, 26,198,254,156,193, 97,144, 37,230, +176, 16,226, 16,107,242,179,188,214, 55,213,246,192,126, 0, 31, 8, 33, 92,183, 69,107,127, 59,200,188,191, 22,154,125,214,160, + 65,131,237,211,212, 83, 35,246,191,254,202,243, 94,134,165, 18,174, 63, 0,188, 39, 38, 29, 45,235,177, 24,108,252, 27, 1, 80, + 18, 98,215, 30,210,210,125, 0,164, 7, 60, 91,241,133,228, 75, 7, 64, 6,192, 59,210,246,157, 27,197,231,219,161, 69,203, 24, +249, 95,126,241, 91,126,238,101,151, 95,248,194, 31,127,215,159,191,109, 88,250,123,183,130,177, 11, 33, 86, 53,109,178,118,254, + 46, 84,102,218, 3, 76,236,111,107,182,208,179, 26,183, 3,184,125, 57,205,155,153,246, 29, 0,238, 8, 33,188,135,215, 59, 50, +246,173, 90,251, 59,162, 16,209,160, 65,131, 6, 91, 1,185,137,239,168, 97, 25, 78,252,197,125,143,126, 18,114,128, 52, 41,145, +182,128, 36, 15,252,242,213,239, 89,128,145, 67,192, 21, 64,214, 33,147,187, 39,166, 29,198,216,112, 9,248, 2,240, 3, 32, 12, +249,239, 1, 16, 74, 98,240, 33, 0,193,195,186, 0, 63,116,248,129,183, 94,123,240,158,247,253,235, 15,189,240,226,217,239, 4, +177,125,185,157,147, 36,132,184, 3,228,211,172,107, 76, 55, 52,219,231, 89,141, 55, 8, 33,110, 94,143, 41, 93, 8,113,243,132, + 70,125, 75, 51,125, 13, 26, 52,120,174,104,234, 0,112,226, 71,127,247,190,119,252,213,167, 31,249,206, 43, 46,158,186, 88, 0, +210,135,224,153, 4,194, 5, 10, 45,235, 15,173,188,246,194, 93, 47,184,241,235, 95,188,223,232, 84,122,239,217,223, 14, 98,236, +195, 37, 8, 45, 32,246, 93, 3,185,227, 10,160,181, 7,194,116, 1, 87, 32, 12,143, 35,244,190,138,112,226,139,128,235, 3, 50, + 7,224,224,131,130, 95, 42,240,130,171, 47,188,232,163,191,253, 99,191,247,166,159,126,175,250,236,145,147,127,134, 42,120,111, +187, 24,251,145, 16,194, 29, 53,141,237,192, 86, 92,119,153,136,232,195, 91, 20,105, 93,143,240,223, 84,186,217, 86, 92,227, 92, +140,119,226, 57,215,117,189, 77,104,200,183,163, 10,174,156, 13, 33, 28,104,124,235, 13, 26, 52,120, 46, 48,117, 7, 96, 9,192, + 23, 62,112,120,254,221, 56, 60,159, 99,249, 34, 54, 59,127,232,245, 23,253,216,155,175,187,230,252, 68, 26,233,124, 32,211,123, +127, 8, 12,151, 0, 55, 15,249,252,215, 64, 94,245,189,144,231, 93,113, 38,209,141,191, 44, 29,131,123,242,159,224, 31,255, 71, + 8,145,146,214, 46, 4,108,191,192,249,123,119, 77,127,248, 63,255,240,111,190,234, 71,127,235,228,227, 39, 7,127,139,173,243, +177,175,132, 45,201,195,102,198,118, 19,107,251, 7,150,121,255, 8, 42,211,240,169, 21,174,241,174,218,119,239, 16, 66,220, 94, +187,238, 77,152,136,232,230,107,222,182,158,232,253, 16,194, 77,172,141,238,223,232,115,109,199,120, 87, 25,235, 45,124,221,217, +218,199,183, 43, 82,124,146,129,207, 54,228,163, 65,131, 6,207, 5,166,238, 1, 12, 0, 88, 80, 81, 24,133,154, 7,157,153,234, + 11,222,247, 83,175,248,149, 31,126,237, 21,175,245, 5, 96,157, 7,202, 33, 66,127, 17,176, 3, 64, 7,152, 55,253, 18,228,254, +235,215,190, 91,123, 55,212,165,111,129,152,121, 1,252,231,223, 11, 72, 71, 74,185, 0,108,191,192, 69,151,158,191,235,189,111, +255,238, 95,127,227, 47,252,254,119, 2,248,202, 54, 51,245, 58, 33,223,148,118, 25, 66, 56, 8,224, 3,107, 48,133,253,172, 21, +222,180, 74,180,117,204,173, 6,128, 67,156,162,245,158, 85, 44, 8,251, 65,169, 89, 7,216,156,188, 18,243,125, 15, 86,118, 45, +196,231,186, 33,132,240,134,115, 56,222,229,198,122,103,195, 88, 27, 52,104,208,224,236,153,122,100,220, 37,191,234,138,181,186, +250,121,217, 91,254,224, 39, 94,115,219,181, 87,238,185,220,246, 61,188, 43, 73, 51, 47, 45, 32, 28, 68, 2,232,111,121, 23,228, +190,151,143, 46,214, 47, 44,238,122,248, 40,254,242,115, 79,226,244, 66, 31, 70, 9, 92,249,188, 25,124,243, 11, 46,192, 37,123, +102, 0, 0,114,231,165, 16, 47,250,105,184,207,254, 6, 96, 52,201, 22, 82,194, 47, 13,240,141,215, 95,245,210, 31,252,166, 23, +254,216, 31,252,229,125,239,196, 54,165,187, 49,195,187, 97, 66, 35,220,232, 53,110, 96, 6, 55,169, 1, 30,170, 9, 9,117,109, +118, 63,170, 72,251,195,107, 8, 27, 31,168,105,214,119,212, 52,203, 3, 19,207,125, 83, 8,225,200, 10,133, 98,222,181, 12, 67, +175, 95, 43, 62,219,129,101,198,113,174,198, 59, 59,193,208, 79,213,158,111,255, 54,158,149,131,107,104,238,103,179,175,182,220, +253,210,160, 65,131,127,153, 16, 91,116,141, 0, 96,250,135, 94,187,231,231,254,243,119,127,237,219,118,116,178,188, 40, 2, 5, +200, 21, 3,102,247, 0,202, 57,168,111,248, 73,168, 23,253,171,209,151,191,244,228,105,188,253, 79,239,197,103,143, 47,160,155, + 24, 36, 70, 82, 0,124, 89, 34,241, 22,223,250,138, 75,240, 51,175,191, 26,137, 38, 11,191,255,234,189,240,247,191, 15,232,236, + 70,236,210,170,147, 4, 15,124,241,241, 39,175,248,158,223,120, 19,128,207,129, 92, 4,171, 17,210, 91, 80, 43, 62, 35,132, 16, +235, 32,188,147, 26,236, 27, 38,253,178,171, 85, 88, 99,191,239,221, 53,102,116, 4,192,205,203,249,118,151,209,110, 15, 11, 33, +174, 91,229, 94,117, 6,124,243, 36, 83,224,123,127,160,198, 60, 78, 1,184,180,254, 57, 54,185,191,103,130,105,221, 56,233, 71, + 95, 69,243,222,182,241,174, 48,214, 35,124,207, 59, 38,215,106, 59,152, 98, 8,225, 65,140,251,237,175,219,164,149,230,206, 9, +107,207,114,214,134, 35,188,150,183, 55,165,119, 27, 52,104,112, 46, 52,245, 73,134,126,201,175,126,207, 21,191,122,235,155,174, +249,126,233, 53,138, 97, 73, 12,221,218,202, 56, 31, 60,176,251, 82,168,231,127,251,232,203, 79,206, 45,225, 7,126,231, 19,120, +112, 96, 49,211,202,209,215, 10,137, 81,200,149,128,201, 18, 8,103,241,254,255,117, 4, 74, 74,252,155,131,215,144,198,190,247, + 69,240,143,236, 1,220, 18,160, 51, 64, 0,190, 40,112,201,165,187,247,190,229, 53,151,188,241,195, 31,127,232, 11,168, 50,228, +215, 75,108,111, 89, 67, 67,155,100, 40, 55,111, 34,208,234, 61, 19,218,229,138,185,206, 66,136, 67,108,222,142, 26,233,129, 16, +194, 77,107,248,195, 15, 9, 33,110, 92,225,122, 71, 66, 8,183,214, 24, 74,204,193,174, 51,196, 91, 38,152,202,178,121,248,181, +103,187,251,105, 28,239,145,149,174,183, 77, 12,125, 50,190, 96,171,170, 10,174,228, 62,216,207,235,113, 75, 8,225, 57, 95,110, +184, 65,131, 6,207, 12,166, 46, 0,136, 61, 93,117,253, 31,223,244,178,255,244,186,151, 92,240, 98, 59, 0,172, 40, 1, 63,164, +126,108,137, 24,125, 50,148,125,168, 43, 94, 3,164,221,209, 5,254,253,127,255, 28, 62,245,196,105,160,219,197,201, 69, 11, 72, + 7, 41,128,174, 18,184,184,173,113, 65,174,177,107,186,131, 15,254,175, 7,241,218,203,207,195, 75, 46, 62, 15,144, 18,242,194, +215,194,127,254,247,129, 93, 23, 1,193,195, 11, 1,157,165,184,241,245, 47, 59,248,225,143, 63,244, 94, 0, 39,177, 49, 19,252, +122, 75,198,222,142, 77,228, 22,215,106,139,215,181,218, 85,153,143, 16,226, 48,151, 38,189,165, 38, 92,172,198, 76,110, 94,227, +122,135, 66, 8,135, 49,110,234,142,207, 55, 89, 42,245,182,213,158,175,246,108, 55, 61, 77,227,189,237, 92,153,168,121, 44,245, +253,113,120,139, 74, 5,199,186,242,117, 51,126,189, 6,253,104,111,134, 16,246,175, 20, 7,209,160, 65,131, 6,117,108, 38,191, + 59, 6,197,117,222,122, 96,250,231,239,249,119,175,253,211,215, 93,189,247,197, 69,207,193,195, 17, 67,151,160, 10,114, 74, 0, + 90, 80, 5, 57, 45, 33,119, 95, 51,186,200,209,185, 30,254,224,211, 95, 1,178, 22,165,185, 41, 9, 40, 5, 15,137,185,129,195, +103,143,246,112,247,209, 30,138, 32, 96,149,194,223,124,241,104,245, 0,221,139, 40,232, 14,150,159, 38, 0,214,227,202, 11,103, + 46, 5,112, 62,182,175, 81,205, 13,172, 69,110, 52, 64,171,206,224, 78,109,128, 41, 28,154,184,247,138, 12, 98,157,102,218,195, + 43, 60,211,193, 9, 6,187,158,231,187,227,105, 26,239,145,115, 85,127,159, 93, 8,147,230,242,179, 97,174,167, 0,220, 10,114, +125, 92, 39,132,184, 81, 8,113, 91,237,117,163, 16, 98, 7,127,166, 46,180,220,196,130, 87,131, 6, 13, 26,108,169,166, 30,205, +237, 23,188,237,219,246,253,202, 59,191,249,133, 63,161,188, 70, 81, 56, 64,121, 50,177, 7, 64,120,129,160, 4, 32, 37, 87,139, +243,128,206, 32,218, 23,140, 46,244,212, 66, 31,189, 65, 9,180,179, 74, 78,136,186,181,164,250,177,199, 23, 75,220, 85, 88, 92, + 61,165,177, 48,176,213, 67,100,211, 0, 20, 48,236, 65,228, 93, 4, 4,192,149,184, 96,111,231,188, 52,145,123,135,133,255,194, + 6,199,117,235, 42,239,237,103, 38,181,159, 53,168, 81,244,247, 6,180,197,131, 43, 48, 86,172, 67,187, 30,211, 26, 87, 8, 32, + 91,175,229,224,200, 42, 99,220,208,181, 38,159,237, 28,142,247,156,228,134,179,224, 54, 25, 59,112,235,217,228,166,243,119,215, + 83,236,230,182, 16,194, 33,140,187, 56,222,181,134, 32,213,160, 65,131, 6, 27, 98,234, 2, 0,166, 51,249,170,247,253,200, 85, +191,254, 29,215, 94,244,106, 59, 4,202,196,145,102,238, 2, 80, 4,232, 84,160,239,188, 55, 16, 18, 90,142, 50,216, 5, 0,132, + 42,126,109, 54, 79, 32,141,129, 15,160, 90,241, 33,140,234,189, 35, 0,240,212, 8,102,161, 95,226,222, 65, 31,111, 49,245, 84, +120, 15,132, 2,176, 67, 64, 76, 65, 8,170, 82,215,105,235,214,158,169,108,246, 43,199,123, 27,178, 64,172,199,103,201,126,213, + 91, 80,181,231,188, 19,192,122,131,165,234,209,205,251, 57,240,107, 51,152, 93, 69, 3, 60, 27,108,138, 9,243,103, 15,156,227, +241,110, 59, 83,103,134,126,231,196, 56,110, 62,151, 29,250,216, 29,113, 43, 42,211,255,254, 16,194, 13,147,129,129, 13, 26, 52, +104,176, 81,166, 30, 77,217,230,107, 47,206,190,239,143,126,236,218,219, 46,217, 51,125, 94, 49, 12, 64,166,136,161,151, 30,178, + 8,208, 45,137,119,255,221, 3,159,185,100, 42,155,249,246, 3, 23, 94, 92, 4, 80,163, 23,161,128,114, 17, 97,225, 97,136,157, +151, 2, 0,158,183,163,139,111,187,108, 15, 62,120,255, 49, 64,107,192, 10,170,251, 30, 27,192,128, 25,187, 16, 24,204, 45,225, +202, 61, 83, 21,209,237,157, 2, 6,243, 64, 49,205, 31,246, 8, 85,104,156,196, 54,152,223, 89,123, 66,141,200,174, 39,120,109, + 57,230,180,145, 94,238, 79, 7, 78,109,193,103,159, 77,227, 93, 15, 67,191,245,105,106,185, 91,175, 98,135,103,211, 60, 54,104, +208,224,153,201,212,163,185,253,188,159, 62,184,231, 23,223,249, 77, 87,255,111,211,121,154, 20, 30, 64,155, 53,231,194,195,120, +160, 76,129, 95,250,255, 62,247,225, 95,251,243,175,124,240,195, 63,253,194,183,129, 10,191,145, 95, 93, 0,208, 18,225,196,103, +129,175,185,158,153, 36,240,246,111,189, 10, 31,188,255, 9, 96, 80, 2, 73, 82,241, 98,199,119, 13, 30, 88, 90,194, 27,175,216, +135,111,126,225,190,138,240,206,127, 25, 33, 12, 33, 92, 57,210,236,133, 8, 88, 92, 28,246,143,206, 15, 22,182, 81,123,186,141, +171,155, 69,220,128,141, 71, 66, 31,193,230, 43,211, 61, 27,243,151,159,109,227,157,100,232,183, 63, 93,209,231, 66,136, 83, 19, +193,141, 7,209, 52, 17,106,208,160,193, 38,153,186, 0, 32,148,196, 21,191,243, 67, 87,252,151, 31,121,229,165,111,116, 37, 80, +104, 1,164, 10,240, 30,161,239,145,106,224,216,160, 24,252,204,127,187,231,119,223,255,201, 83,127, 4,192, 63,188, 48,124, 10, + 34, 92, 25, 2, 32, 34, 83,207,187,240,143,124, 2,234,202, 31, 0,218,187, 1, 0,215,125,205,110,124,232,230, 87,227, 7,222, +123, 23, 22,231, 7, 64,150,145, 63, 61, 4,160, 44,129,126, 15,111,186,124, 47,126,255,167, 94,141, 52,154,223, 93, 1,255,192, +159, 65,164, 25, 32,200,143, 31,188, 3,164,196, 99, 79,204, 31, 27, 20,254, 24,182, 47, 80, 14, 32,159,243,193, 26,145,221,176, +246,245, 47, 44, 69,233, 89, 51, 94,238,198, 54,201,208,159,238,168,243,166, 16, 77,131, 6, 13,214, 13,185, 6, 83, 63,239,189, + 63,242,252,223,252,145, 87, 93,250,198,162, 4, 92, 91, 3,185,161, 44,240, 37,143, 52,147,184,239,241,185,167, 94,247,174,143, +191,227,253,159, 60,245, 95, 1, 60, 12,224,241, 47, 29, 91,248, 34,164, 0, 28,247, 87, 81, 2,208,100,130,183,247,253,246,216, + 77,190,237,197,251,240,207,255,238, 13,248,213,183, 92,131, 23,205,166,200, 66,137, 41,233,240, 29,151,237,194,251,255,245,215, +225, 67,191,248, 58,156, 55,157,143, 62,239,191,252,231, 8,167, 30, 6, 76, 78,109,219, 17, 0,235, 0, 41,240,197, 71, 79, 63, + 2,234,179,238,159, 97,243,188, 82,212,249,179,253,249, 14, 62, 75,199,187, 18, 67,191,233, 25,198,208, 27, 52,104,208, 96,203, + 52,117, 92,181, 39,121,237, 91,175,126,222,245,182,239,129,174, 6, 18, 9, 20, 30,114, 96,161, 59, 18, 31,189,247,201,251,191, +247, 61,159,254,143,167,122,254, 99, 0, 78,128, 26,189,100,127,245,169, 19,119,157,126, 83,241,163,221,118,162,189,103, 59,188, + 0,208,106, 35,124,229, 31,225,103,254, 8,242,202,239, 31,221,231,162, 93, 93,252,242,183,188, 0,183,188,249, 74,156, 94, 28, + 66,107,137,217,118,122,198,243,248,199, 63, 1,247,207,127, 8,228,109,146, 58,164, 66,240, 30,194, 57,184,193, 0, 31,252,135, +123,254, 39,168, 30,253,118, 50,245,205,248, 53,199, 76,168,219, 85,245,236, 44,112,164,246,124,235,234, 62,199,249,219,207,214, +241, 62,155, 24,250,102,131, 24, 27, 52,104,208,104,234,227, 12,255, 5,251,242,203,219,169,129,247,160,232,246, 94, 9, 93, 88, + 32, 5,110,187,243, 11,135,222,244,238,195,255,246, 84,207,255, 13,128,167, 0,204, 1, 40, 0,148, 15, 28, 47,238,250,232,253, + 79,220,171, 52, 16, 56, 21, 77, 72, 50,197,139,246, 52,252, 63,255, 33,220,189,255, 23, 80,140,187,191,141,146,216, 61,157,159, +201,208, 93, 1,255,192, 29,240,119,189, 19, 34,205, 32,148, 34,127,189, 73,129,178,132,146,192, 23,191,120,244,201, 15,126,252, +145, 67,160,218,239,219,194,212, 39, 90,124,110,132,200, 78,166,137,221,244, 12,219, 7,245,231,155,229,114,166,155,213,210,159, + 13,227,125, 86, 48,116, 46,221, 59, 41,124, 53,104,208,160,193,166,152,186,250,196, 3,139, 95, 58, 81,148, 54,105, 75, 36,165, + 71,162,128,129, 10,225,103,239,184,231,143,111,253,127,143,252, 10,128,207, 0, 56,206, 26,122, 12,111, 43, 1, 60,245,159, 62, +252,224, 29,253,210, 67,149, 22, 40, 61,105,235,177, 40, 77,187,139,240,208, 71, 97,255,238,103,224, 31,251, 24,208, 95, 65,137, + 27, 46, 32, 60,117, 47,236,199,126, 1,254,190,219,129, 44, 7,148, 38, 95,186, 0, 32, 52,196,176, 4, 84,192,187,222,255,241, + 15, 2,248, 50,223,127,203,153,122, 45,111,185,142,117,165, 23,113, 26, 82,157, 32,223,178,134,166,123,174,113, 7,198,125,183, +183,172, 99, 46,110,121, 22,143,119, 37,134,126, 24,171,215, 44, 88, 83,232, 11, 33,220, 82,123, 29,156,152,179,141,238,183,122, + 80,230, 41, 52,121,234, 13, 26, 52, 88, 3,171,154,223,159,152,119,159,250,241, 63, 60,124,219,207,190,238,242, 27,102,219,102, +250,254, 19,139,143,253,214, 95, 63,244,225,127,124, 96,241, 47, 0, 60, 1,224, 52,107,231,117, 38,234, 0,244,239,126,108,240, +145,255,251,239, 31, 60,248,182, 55, 95,249, 6,183, 80, 80,241,153, 84, 85, 33,108,173,105,192,206,195,125,234,215,224,147, 14, +176,227, 10,200,153,203, 0,149, 1,161,132,159,127, 4, 56,126, 63, 48, 56, 5,152, 4,104,239,168, 81, 60, 0, 94, 1,133,128, +106, 43,124,228,175, 31,252,252, 31,254,213,151,254, 24,100,122, 47,183, 65, 59, 63,136, 51,251,139,159,194,198, 34,223,111,198, +120,237,245, 59,185,205,232,161,117,220,255, 6,102,150,219, 18,112,198, 81,214,183,213,152,200,193, 16,194,123,150,211, 88,107, + 41, 95,179,207,214,241,174,194,208,223,112,150,110,130,253, 19,140,248,214,154,213,226, 0,215, 58,184,125,173, 92,243, 90, 27, +221,250, 28,223,214,116,111,107,208,160,193,217, 48,245, 18,192,201, 15,221, 51,247,222, 15,221,115,247,157, 0,186, 32,191,249, +147, 32, 83,251, 34,127,102,178,172, 88,236,183,254,228,173,127,244,192,187, 15,156, 63,125,201,245, 47, 61,255,178, 98,110, 0, + 49,157, 1,169, 24, 85,140,131, 49, 16,198, 80, 81,154,147,247,193, 29,251,244,232,114, 66, 42,106,216,210,238, 78, 80, 60, 0, +133, 71,240, 41, 76, 98,112,228,129, 99,167,126,224,215,255,226,215, 89, 75,239, 99,141, 14,109, 43, 16,209,205,180,106,189,121, + 35, 68,150,171,165,221,140,170, 19, 90,100,116,135,152,240, 31,158, 96, 14, 81,152, 56, 80, 99, 16,219,137,219, 49,222, 6,245, + 38,214, 52,111,175, 61,219, 65,102,132,179,172,137,159,194, 10, 62,248,103,242,120,121, 92,203,185, 4, 62,176,129,173,112,199, + 38,114,215, 15,178,192,116,132,231, 96,185,218,239,147,173,114, 1, 42, 3,220,164,178, 53,104,208,224,172,152,186, 99,198,109, +153,137, 75,254,223,144, 95, 14, 43, 55, 77,177, 0, 22, 3,112,223, 13,191,117,207,255,241, 55,111,123,197, 59, 95,122,249,174, +231,149,167, 7,192, 84, 10,145,129,106,189, 71,173, 93, 40, 32,201, 87,207, 67, 11, 0,188, 7,134, 30,126,110,128,228,130,243, +240,248, 19,115,139, 55,252,242,159,221,118,114,161,252, 88, 77,200,216,110, 28,102,134,190,225,160, 37, 33,196,237,181, 2, 54, +179,117, 66,255,116,111, 4,214,214,111,100,237,122,255, 10,154,103,221, 74,113, 35,214,104,132,243, 76, 30,239, 50,216,168,123, +224,208, 89,220,107, 63,214, 31,103,112,251, 57, 16,232, 26, 52,104,240, 28,129, 92,131,141, 90,144,191,252, 20,168,243,217,105, + 0, 61,254,127, 88,227,187, 67, 0,115,167,122,254,239,191,254,215,254,233,237, 31,189,231,137,251, 77,162,161,230,134,240,167, + 45, 48,112,181,171, 8,142,144,159,120,197,154,240, 14, 64,225, 16,230, 28,112,178,143,100,199, 14,124,238,193,249, 39,223,240, +115,127,242,142,123, 30,153,255,115,126,182, 30,182, 47,234,253, 16, 19,215, 27,185, 17,199,217,212,255,190, 29, 84, 94,246,118, +172, 47, 7,249, 14,144, 41,123,219, 43,154,113, 83,152,235,214,184,215, 33, 80,219,211,195,207,246,241,158, 99, 68,127,253,122, +247,206, 29, 32,119,192,205,141,217,189, 65,131, 6,235,166,227,219,124,125, 5,160,197, 90,218,213,191,240, 29, 23,253,248,219, +223,120,213,183,206, 78, 39,218, 15, 61,156,150, 64,174, 33, 98,141,120, 89,123,156, 16, 0, 7, 4, 27,128,190,131, 44, 45,148, +145,232, 59,224, 55, 63,246,228,223,189,253,247,238,126, 79,233,195,167, 80,165,210,217,103,227, 2,176, 41,120, 82, 75, 60, 2, +234,110,118,232,105,124,174,104, 14,175,247, 68, 63,180,206,110,112,207,186,241, 62, 77,235,190, 31,103,198, 38, 28, 6,153,219, + 27, 70,222,160, 65,131,103, 28, 83,143,140, 61, 3, 48, 13, 96,239, 11,246,164,175,255,217,183,236,255,246,239, 58,112,209,203, +119,116,181, 65,144,220, 19, 93,114, 49, 25,126,176, 0,200,224, 71,202,250,226,192,251,143,124,230,241,251,126,251,208, 67, 31, +254,219, 47, 44,252, 37,128,199,216,114,208,127,182, 50,244, 6, 13, 26, 52,104,208,224,217,198,212,227,125, 18, 0,109, 0, 83, + 0,246,238,153, 82, 47,121,211,181,179, 47,127,235,139, 47,122,217,213,207,155, 58,191,157,170,118,166, 69, 34,149,146,222, 33, + 12,157, 45,122,133,239, 61,124,116,225,216, 7, 62,251,232, 61,135,238, 62,117,215, 3,199,139,195, 0, 30, 7, 48, 15,242,161, +111, 91, 78,122,131, 6, 13, 26, 52,104,208, 48,245,213,239, 37, 1,164, 32,147,124, 11, 20, 81,191, 3,192,158, 78, 42,118,182, + 19, 57,149,105,153, 20,206,219,197, 34, 44, 44, 12,252, 9, 0, 71, 65, 38,246,121,144,223,124, 9,107, 7,234, 53,104,208,160, + 65,131, 6, 13, 83, 63,135,204,221,176,246, 30, 95, 26,163,238,235, 0,107,224, 37,191, 10,102,228,182, 97,230, 13, 26, 52,104, +208,160,193, 51,135,169, 79,222, 63, 50,249,248,179,206,212, 67,237,103,195,200, 27, 52,104,208,160, 65,131,103, 48, 83, 95,237, +121, 26, 38,222,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, + 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6, 13, 26, + 52,104,208,160, 65,131, 6, 13, 26, 52,104,208,160, 65,131, 6,219, 4,129, 61,175,217,250, 34, 47, 90, 3, 66, 2,240, 64,105, + 55,247,253, 68, 87,127, 59, 13, 40, 11, 56, 15, 40, 9,244, 6,244,153, 86, 14, 72, 9,168, 4,176, 5,127,216, 3,189, 18, 40, + 7,213,181, 52, 95,107,185,238,241,189,193,248,125, 1,186, 71,150,210, 24,116, 2, 20, 3,160, 40,169, 64,173, 50, 84,212,214, + 6, 64, 11, 42, 96, 11,126,207, 76, 92,111, 43,231, 51,201,232,153, 92, 65,227, 21, 18,232, 47, 0,222, 80,155, 90, 33,168,170, +254,206, 29, 84,131,207,228,128, 49, 72, 18, 9, 59,244,240,197,144,230,212, 91,160, 44,129, 84, 1, 75, 3,154,171, 76, 3,131, +130,202,253,216, 1, 77,148, 0,215,241,243, 52, 7,174,160,255,235, 4,232,247,233,111,239,105,254, 61,207,173,231, 53,175,255, +190,217, 61,240, 92,129,201,128, 96,129,153,157, 64,111,137,246,108,175, 15,180,218,192,226, 28,208,153, 6,138, 30,205,107,111, + 9,176,150, 94, 43,237,131, 73,212, 63,107, 52,144,231, 64,210,162, 53,141,173,140,125, 0, 22,230,105,221,215,187, 63,205, 50, +247,146,146,206, 96, 44, 17,117,182,235,218,158,198,107,191,241,117,176,222,227,227,247,223,143,235,175,123, 57,254,230, 31, 62, + 6, 60,246,200,250,232, 2, 31, 61,132,101,230, 44,158, 25, 7, 58, 27, 40, 1,169,249, 12,243,103,138,193,242,115,189,218, 60, +107, 13, 8, 77,103,221,215,104, 74, 81,123, 6,163,199,207, 5,106,159,117,126,229,245,173,237,153,214,129,203,209, 59,252, 0, +221, 71, 27, 96,215, 14, 32,215, 64,223, 2,143, 62, 85,209,183,205,210, 85,111, 0,215,167,253, 56,183, 64,255,155,234,210,222, + 20,154,126,159, 59, 69,159, 47, 65,115, 39, 4,125,103,106, 22,152, 63, 69, 99,204,114, 96,137,247,181, 45,137, 86,187, 65,228, + 46,213, 62,153,234, 2,195, 33,128,100,252,125, 41,129, 97, 1,100, 93, 32, 12,137,174,197,249,137, 52,200,110, 19,253,168,207, + 71,233,137,214,217,115, 68,171, 76, 2, 76, 79, 3, 89, 66,180,183,215, 7,122,139,244,127, 9,162,245, 58, 3,242, 4, 8,142, +190, 51,112, 21, 95,141,223,243, 30, 24, 12, 1,163,128,114, 8,244, 6, 80,232, 92,244, 43, 91,250,176,173, 12, 72, 83, 32,111, +209,164, 41,193,197, 94, 55,208, 76, 77, 74, 98,172,163,191,249,187, 82,208,228,123, 87, 93, 79, 41,250,124,176,180, 11, 74, 15, + 12,123,213,119,149, 4,181,119,229,131,165, 38,238, 85,127, 54,239,233,149, 26, 98,222, 74, 3,174, 4,116, 74, 19, 8, 0, 90, + 86,125,225, 44, 19,139, 86, 27, 48, 18,232, 15, 55, 54,206,245,194, 51, 69,208,160, 69, 85,154,132,152,164, 69, 4, 36, 53,192, +236, 20,176,107, 6,112, 2, 83,179, 83, 48,105,138, 78,150,224,130,238, 14,120,239, 48, 53,213, 69,174, 13,160, 36, 74, 1,122, + 86, 33,105,141,250, 5,207, 93,159,152, 75,176,192, 48,208,198, 42, 74,154, 56,157,144, 64, 16, 60, 80, 6, 90,131,200, 52, 4, + 63,151,102, 6, 34, 64,189,115, 3,175,153, 16,213,154, 42,201, 4,207,111,236,240,249,103, 97, 51,190, 52, 1,138, 33, 48,187, + 19,152,159, 7,218,109, 34,198,105, 14, 44,205, 19, 67,159,155,163,255,207, 47, 2,153, 33,162,178,220, 88,151, 99, 52,241,172, +196,249, 84, 9, 49,245, 60,161,207, 7,150,215,149,166,125,235, 2, 19,214,117,158, 65, 81, 59, 35, 0, 93, 79, 73,250,185,209, + 51, 61,137,172,139, 29, 47,121, 62,190,233,107, 95,133,139,247, 93,128,151, 92,122, 25,222,255,145, 59,129,175, 60,180,194, 30, +224,113, 56,193,231, 52, 16,109,241,158,247,151, 27,239,215,232, 89,184, 84,138,207,189, 4, 96,121,174, 34, 3, 14,203,143, 65, +202,229,207, 96,100, 2, 44,171,142,209, 20,207,215, 29,209, 28, 81,123, 14, 81,171,149, 25,136,158,173, 50,117, 87,188,225,149, +216, 55,179, 19, 95,125,224, 33,192, 11,192, 50,179, 49, 9,112,252, 36, 80, 22, 27,159,251, 52,161,123, 59, 79,175, 78,155,246, + 66,105,233,119, 47,233,186, 73,198,140, 98, 30, 80, 45, 26,160,183, 68, 19, 58,109, 98,220,253, 62, 48, 51, 75,243, 59, 24, 0, + 42,163, 57, 24, 20, 52,199,176,128,110,211,251,129, 5,127,107,137,150, 8, 79,239, 39, 45,154, 19,239, 42,250, 93,148,145,176, +210,251,170, 70,147,207,246, 28, 74,162,125,240,174,198, 27, 52,205,111,164,175,194,159, 27, 58,211,202,136,191, 24, 3,148,142, +133, 23, 71,124,211,243, 79,193,130,148,117,244, 25,235,129, 86, 90,209,135, 68,211,124, 13,150,104,141, 22,151, 0,153, 1, 58, +217, 98,166,110, 52, 73,110, 83, 93, 98, 52, 89,139, 78,163, 47, 55, 38,213,155,154,150,113,198,225, 18,172, 9,242, 97,142, 31, + 19,146, 25, 78, 1, 56, 55,126, 64, 19,102,196,166, 38,221, 43,150,206,108,121,230, 61, 66,124, 6, 69,247, 25, 70,173,212, 19, + 97, 84,124,128,165, 4, 82,131,233,171, 46,198,174,189,187,177,112,114,142, 62,123, 54,139,109, 50,218, 96,126, 98,190,152, 38, +193, 75, 34,208,146,159, 79, 25, 32,213, 64, 59,199,174,169, 41,116, 59, 57,164, 48, 72,117,130,221,121, 7,222, 58, 76,229, 57, + 4, 72,152,203,146, 20, 62, 4, 20,142, 55,135, 0,109,144,193,128, 54, 84, 96,105, 80, 5,210, 10, 18, 69, 19, 82, 88, 34,144, +195, 33, 63, 27,207, 63,226, 51,241,188, 26, 65,115, 36,248, 64, 11, 65,147,157,112,207, 30, 9, 18,178,228, 58,153, 66,212,140, + 20,191,140, 28, 95,223, 85,133, 0,205, 19, 23,173, 6,231,136,145,107, 69,251, 55, 8,160,219, 2,134,125, 98,220, 11,139, 36, + 0,246, 23,128, 86,151, 24,123,183, 11,204, 47,208,153, 89, 92, 32,162, 90, 22, 43, 11,186, 82, 84, 47, 8, 98,108, 82,240, 61, + 19, 58,119, 73, 77, 8, 82,154, 9,153,160,121,119,229,218,243,183, 18, 99,139,140,125, 76,216, 92, 31,212, 75,175,193,171, 95, +246, 82,156,127,233, 37,208,207,219,137,185, 2,248,142, 87,190, 12, 51, 59,102, 49,232, 15, 48, 59,211,197, 37,187,207,195,103, + 62,243,185, 51,247,126,212,108, 60, 0, 25, 42, 33, 67,177, 42, 39, 88,178,156,124, 30, 33,232,156, 71, 11,159,103,109, 76, 50, + 51, 89, 85, 75,183,227,170,120,156, 15, 85, 19,234, 77,100,232,188,215,189,171,180,244,184,255,227,125,227, 89, 17,188, 47, 86, +153,187, 19, 65,224,171, 95,250, 74, 37, 80, 35, 16,253,156,155, 7,250,131,205, 9,196, 66,208,120,179, 22, 32, 12,208, 63, 13, +136,132,158,211, 6, 32, 55, 76,163, 53,224, 11, 58,115, 66,145,130,212,105, 3,193, 0,253, 69, 64,166, 52,238, 97, 65, 22,132, +194, 3,153, 34, 70,159,104,182,208, 1,240, 3,162, 25, 70, 19,225,113,172, 93, 2, 52,126,103,129,162, 24,127, 95, 37,204,244, + 37,189, 63, 44, 42,165,101,179, 86, 33,147, 1,157, 14, 41,153,138,133, 26, 95, 83, 18, 35,255, 48,252,203,122,206,198,217,162, +228,189,165, 21,208, 50, 52,247,115,139,180, 62,145,127,132, 0, 36,105,197,144,132, 36, 75,155, 43,217,154,225, 1, 59, 4,172, + 2,130,170, 4,131, 16,160,183,216,158, 65,147, 24, 15,134, 7, 61,116,232,210,100,174,151,225, 13, 61,153,146,213, 4, 97, 49, + 41, 49,190,222, 18, 96, 23, 43, 83,165, 94,197,100, 25,255, 63, 50,179,240, 97,140,230,150,149,190,211, 31, 2,166,164, 49, 56, + 95,227, 11, 44,185, 74, 77, 7, 63, 8,132, 16,112,108,105, 0,244,203,179,159, 63, 45,232,103,185,220, 56,226,125,217, 12,158, +101,180, 49,243, 12, 59,186, 57,118,228, 45, 12,221, 16,137,202, 32,132,130, 11, 64,102, 52,156, 4,114,149, 96,105,232, 97,132, +198,206,118, 27, 30, 14,189,185, 5, 58, 88, 96,169, 48, 97,105,189,112,244, 28, 33, 84,204, 48, 75,129,165, 97, 69,192, 38,101, +174,232, 34, 1,152,241,250, 74,147, 49, 44, 17,103,220,183, 39,240, 26,219,117, 16, 36,157,215, 23, 13, 8, 9,216,231,177,242, +119,172, 29,215,108,109,237,255,219,141,200, 7,140, 38,162,215, 27, 18,227, 94, 90,168,126,182,235,140,188, 79,103,100,105, 1, +104,231,116,112, 53,239, 45,187,140,182, 88,103,182, 33, 18, 64, 79, 68,184, 45,201,173, 18,173, 37,245,253, 47, 5,237,219, 44, + 95,223, 57,156,156,195,213,204,254,107,201, 7, 47,185, 18, 95,187,111, 47,174,250,154,125,208,198, 64, 10,133,223, 93,248, 71, +180, 90,109,244,123,125,120, 15, 44, 44, 14,177,184,184, 0,180,103,128,211, 79,158,121,145,200,152, 81,147,209,156,175,230,123, + 37, 39,162,243, 36, 16,148,182,178,210,149,126,229,207,215,199, 85,223, 75, 35,147,176,174,148,131, 58, 61,113,252,249, 96, 1, +175,171,117, 26,185,168,252,184,213, 99, 53, 28,121,164,114, 97,214,233,206, 70,247,175,214,192,142, 61,192,220,177,138, 65, 58, +144,146,165, 88,200,142, 90,184,101,197, 8, 69,181,238,129,191, 19, 21, 31, 33,129, 84, 0,133, 1,100, 73,230, 96,128,172,122, +138,207,169,244, 36, 72,150, 53, 58, 16,215,173,176,149, 18, 81,176,229,161,254,126,152,120, 63, 77,170,239,109,202, 5,204,252, +103,166,195, 22,137, 41,114, 55,198,131,101,249, 30,113, 47,157,141, 66,182, 25,198, 94, 12,137,142, 11,144,176,191,180, 64,252, + 45,142,185,100, 26, 17, 93,174,174, 32, 1,107,169, 79,251,201,150, 68, 3,134, 5,241, 93,222,151, 91,167,169,107, 77,230,129, +118,206, 27, 56, 84, 62,184,192,155, 82,201,117, 74, 92,158,181, 80, 81, 17, 74,161,201, 7,209,105,209,239,118, 88, 73, 85,107, + 73,174,241, 96, 73, 65, 23, 11,108,118, 91,237,144,120, 71,207,106, 45,253, 46, 88, 43,138, 38, 35,207,215, 45, 74, 12,143,158, +130, 59,118,146,124,116,103,101,233,144, 44,233,218,149,205,155,237, 46,155, 1, 19,250,188, 80,232,116, 50,236,105,229, 8, 65, + 32,211, 6, 65, 8, 40, 8,116,187,109, 20, 69,137, 92, 75, 88,235, 96,164, 70,225, 75, 88, 31,224,124,192,208, 89,146,136,123, + 5,141,175, 28, 18,179,141, 82,171,103,198,238, 1, 12, 29, 32,108,181,150,214,146,164,169, 36, 19, 75, 95,249, 15,203,104,170, + 21,100, 85,128,228,107, 50, 69, 43,216, 60,191,218,218,141, 76,157,178,230,152,148, 36, 56, 24,189,242, 62,138,102,210, 51,172, + 28,231,128,161,167,124, 64, 61,107,145,214, 3,121, 70, 26, 87,194,254,208, 84, 1, 69, 77,115,239,228,180,111,146,148,215,193, +144,182, 82,186, 51,173, 87, 62, 48,115,246,164,237, 40, 65,231, 43, 18, 92, 35, 73,106,183,174,102, 45, 96,247, 72,159,199, 63, +236,173, 95,235,153, 20, 34, 54,193,208,209,202,112,222,197,123,112,253,181, 47,133, 84, 18, 40, 61,172,183,184,176,211,193,253, +143, 63,134,233,172, 13,231, 28,250, 75, 61,220,253,224,151,113,242,209,199,136, 67, 78,238,139,145,182, 43,170,222,142,163, 88, + 14, 63,238,243,142, 46, 9,107,137, 70,200,168,197,176,150,166, 4, 9, 79,235,177, 86, 76,154,127,101, 77,217, 40,121, 93, 74, + 95,249, 61, 71,123,149,233,159,175, 53,152,148,172,109,173, 71,211,246,172,249, 59, 55,238,110, 92,139, 6,207,204, 18,109,112, + 14,216,247, 60, 96,182, 5, 28, 63, 77,174, 29, 37,137, 49,200, 26,141,147,129,253,177,108, 5, 17,146,155, 91, 74, 87,209,197, + 0, 0, 32, 0, 73, 68, 65, 84, 91, 64,164, 76,135, 44,157, 99, 33, 88,160,103, 97, 74,176, 98,148,105, 32,176, 63,221, 59,154, +223, 44, 39, 70, 21, 93, 36,142, 77,198,113,191,134, 64, 52,192,242,121,174,191,239,253, 72, 97, 66, 89,174,233,174, 88,214, 85, + 3, 73, 99, 73,216, 21, 21, 45, 36,139,189,113, 75,144, 96,186, 20,194,185,119,241,149, 76, 67, 3,211,222,162, 36, 6, 45, 37, +173,137, 2,209,144, 52,231,253,164,200,162, 42, 68,245,188, 49,158, 42,225, 88, 51,200, 45,212,212,173, 37, 77, 53, 41,136,185, +199,255, 73,150, 6, 53, 7,119,181,176,190, 96,157,178, 32,115,162,103,102, 23,253,231, 0,153,155,149,220,216,243, 45, 43,133, +105,140,205,192,106,196,202, 90, 18, 38, 34,145,140,140,119,181,192,166,141,162, 55, 24,215, 16,150,115, 75, 56, 75,139,108, 12, +187, 9, 36,178,212,160,231, 45, 90, 82, 35,176, 58,210,110,231, 80, 2,104,165, 6, 67,235,160,181,198,192,150,104,235, 12,115, + 69, 31, 74,177, 25, 63,106,124,182,168, 44, 23,253,146,214, 48,176,198, 62, 12,204,208,253,153,166,225,146, 41,171,172,153, 42, + 13, 31,170,210,159, 25,195, 80,128, 2, 13, 97,104, 44,171,238,129, 72, 68,121,190,181, 1,116,151,168,121,137,229,131,133, 38, + 25, 58, 91, 20,105, 78,129,181,205, 3,103, 33,212,250,154,181, 31, 0, 18, 67,218, 76,198, 65, 44,194,144,116,173, 13,249,194, + 90, 6,152,103,159,122, 57,164, 57,239,245,105,223,235, 9, 70, 53, 50, 33, 79,104,161,163,128, 70, 11, 68,119,121,167, 13, 12, +248,187,169,168,108,196,253,254,198,181,158,209, 51,212,230,114,131,152,210, 64, 49, 24,192, 7,192,200, 4,195, 65, 31, 90, 73, + 28,190,235,203, 16, 65,160,103, 45,180, 82,120,224,190, 71, 72,123,145,171,156,109,137, 51, 25,108, 60,219, 90,147,127,119, 4, + 14,132,115,254, 76,237,125, 61,150,155,229,222,183,182, 90, 7, 35,171,253, 20,233, 81,253, 94,206, 87,110, 65, 37,207,124,142, +173,222,127,251,158,135, 23, 92,121, 41,250,118,128,135, 62,241, 89,224,241,199, 89,144, 40,128,192,227,205,178,106, 14,163, 11, + 82,241, 89,106,101,180, 63, 18,205,214,194, 1,187, 18, 88,115, 22,236, 62,163,224, 30,214,204, 19,118,201,241,225, 46, 11, 64, +118, 56,182, 74, 0,105, 27, 56,122,188,178, 52, 90, 0,130,125,240,138, 15,203,136, 31, 88,114, 9,196, 56, 40, 36,213, 26, 70, +235,213,228, 17, 54,186,218, 20,161,224,247,116,165, 28, 14, 88, 27, 78, 21,157, 69,233, 55, 47,160,110,194,240, 10, 68,107, 15, +206,124,118,128,207,100, 89,173,143,201,128,225,128, 20,132, 97, 65,214, 12, 45,136, 38,179,177, 18,185, 33, 75,114, 12,236, 75, + 59, 52,239,173,108, 27, 2,229, 70,129, 41,178,242, 61, 7, 79, 27,194,241,131, 75, 54,189,174, 71,244,138, 82,148,247, 85, 48, +138,102,230, 55,100,191,143, 97, 13, 92, 49, 99, 89,175,251, 84,235, 51,163,225,253, 26, 95,150,158, 36,167,250,207,237, 56,167, + 43, 73,140, 89,194, 17,145, 45, 54,141, 11,200,156,152,119,106, 20, 0,129,194, 23,232,152, 12, 50, 0,105,150, 34, 75,114,136, + 0, 72, 41, 49,180, 14, 18, 2, 65, 6, 72,225,177, 48,191, 68,146,112,105,129,254, 82,229,187, 73, 21,109, 44, 40, 58,216, 90, +179, 84, 30, 38,226, 21,216,159, 43, 88,155,143, 18,111,124, 9,144,214,168,120, 95, 68,134, 94,128,136,247,106,218,146,143, 26, + 0, 7, 57, 6, 73, 17,182,237, 22, 73,223, 74, 2,189, 30, 61, 91,183, 11,236,222,197,153, 10,110,124, 13,235,107,236,183,241, + 0, 75, 89, 89,150, 0, 10,232, 18, 28,116, 89, 14,137,145, 7,102,232,195, 33,141, 97, 56, 4, 90, 45,142, 56,102,243, 90,150, + 80, 20,108,180, 56, 24, 38,160,137,170, 2,212,140,162,117, 80, 81, 19,172,197,130,104,205, 62,182,232, 35, 68, 21, 92, 51,236, +175, 79, 67, 93,201,173,128, 13,134, 38,180, 50, 96,215, 30, 20, 74, 96, 71, 42, 49,219,157, 70,175,223,199,112, 56,196, 35, 39, +158,192, 87,189, 2,144,225,248, 98,129,199, 22, 22, 17,220, 2,176, 56,207, 22, 9,185,178,182, 94,223, 99,117, 31,169,209, 36, +240,107, 65, 86, 38,189,134,185,123,179,154,153, 16,149,229,174,100,171,100, 12, 68, 4,107,159, 49, 6,194,251,241,159,194,173, + 62,135,209, 7,190,209,224, 80,182, 40,236,190,232,124, 60,126,122, 14,229,227,199,198,227,139,226, 53, 11,214, 4, 93,180, 90, + 70,171,130,169, 4,112, 41,232, 25,139,130,246,111, 12,246,147,130,104,133,103, 6, 26,216,109,167, 2,251,231, 29,199, 33,149, + 64,154,209, 61, 74, 14,128, 83,134,232,129,209,116,246,133, 96,166,165,232, 59,153,193, 40,235, 70, 9,122, 30, 25, 5, 83, 67, +180, 57, 97, 6, 30,199,164, 65, 1,117, 41,251,255,163, 79,124,204, 69, 5, 14,238, 27,112,180,184, 59,119, 26,185,172,187, 2, +153,183,248,101, 92,133,214,210,217,215,154, 63,227,121,252,188,215,250,253,138,255, 69,225,220, 59,162, 21,146,227,159,134, 44, + 12,155,214, 22,251,212,173, 37,127,183, 97, 34, 54, 23, 72, 75, 25, 29, 6, 11, 12, 2, 75,253,122,121,173, 73,235, 74, 18,206, + 19,250,136, 97,166,141, 2,152, 31,208,134,105,165,181,168,245, 80,105, 17,253,130, 36,154,224,151,247, 75,174, 37, 89,173,246, +121,187,194,207,115, 5, 15, 34, 30,253, 62,208,109,211,191, 74, 15,159, 1,131,210, 67, 25,137,212,104, 12,220, 0,185,153,169, +132,217, 76,163,191,216, 67, 22, 3, 47,250, 22,214, 7,154,183, 1,175, 89,180, 20,104, 13,244, 44, 75,125,156, 98,177, 82,234, + 79,157, 48, 46,231, 67,140, 38, 80, 37,233,160, 75, 77,218,100,212,250,215, 66, 97, 89,171,103,159,125, 61, 69, 40,254, 34, 52, +208,237,208,181, 91, 25,153,176,173, 29,215,210, 55,169, 97,110, 92,163,173, 91,144, 60, 73, 48,145,161, 23,236,124,237, 15,129, + 60, 37,201, 59, 79, 41, 29,168,157,147,175,207,104,122, 63, 30,246,186,102, 94,122,118,207,248,113,173,189,230,213,128, 4,125, +127,116,222, 98, 90,105, 56, 55,155,181,126,118,101,130,233,107, 46,195,193, 43,246, 99,110,176,132,196,164,120,228,241, 71, 49, + 40, 29, 74,239, 48,191, 20,240,245,151, 92,134,157, 83,211, 72,211, 20,206, 14,241,240,241,199,240,201,197, 62,249, 22, 87,242, +111,174,166, 89, 41, 89, 9,142, 81,120, 92, 78,131,158, 36,170, 27,213,190, 70,230,247,154,149,106,228, 6,169, 89,139,226,255, +198,126,174,131,200,104,156,233,203, 95, 15,230, 23,240,249, 79, 28, 30, 79,233, 93,110,204,206, 87,154,178,226,179, 37, 11,182, +126,121,178, 18, 9, 73, 90, 99,244,141,215,253,225,206, 3, 34, 39,191,186, 47, 57,162,190, 95, 99,218,158,211,109, 65,138, 92, + 89,140, 91,179,226, 62,137,231,101, 56,160,207, 37, 28,135, 98,107,251, 85, 72,122, 62, 88,142, 51,146, 53,134,206, 86, 25, 27, +170,207,198,185, 23, 53,247,137,139,238, 87, 22,114,207, 5,162,101, 65,215,246,173,214,213,218,142, 89,193,106,207, 28, 5,115, +233, 1, 47,145,188,232, 82, 92,123,241,101,248,167, 79,126, 10, 56,122,146,206,115,156,191,222,128,180,244, 98, 80,155,211,114, + 27, 82,218, 60, 75,127,253, 1,105, 42, 34, 0,150,165, 88, 23,216, 68, 51, 65,100, 12,107, 36,210, 0, 45,246,129,228, 44,133, +228,156,171,151,179, 79, 40, 99,115,132,214,100,222, 20,138,222, 51, 28,138,106, 20,249, 41,140, 33,237, 78,196,136,225,154,228, +191, 90, 0,208,102,165,184,115,145,118,165, 36, 77, 91,150,179, 79,209, 67,182, 51,132, 32,209, 74, 21,180,148, 80, 80,200, 84, + 10,201,129, 34, 89,146, 99, 80,150, 48,198, 64, 72, 1, 91,150, 72,147, 20, 71,142, 31, 39,237,188,215, 35, 51,187,117,227,254, +195,232,119, 93, 77,178,141,140,187, 30,225, 43,196,184,176,229,125,165,157,196,148,184, 98,184,126,191,226, 72,152, 9, 64,193, +154,144,240, 64,191,199,254, 39,254, 92, 98,104,147,187, 1, 89,130, 38, 92,241,180,221,182,112,125, 76, 50,158, 30, 19, 5,155, +122,154, 95, 80, 85, 10,149, 49, 52,110,149, 82, 60,136, 76,232,103, 43, 35, 77, 93,165, 36,236, 56, 87, 17,128, 24,157, 27,153, +118,212,202, 3, 11,119, 8,227, 65,113,129,231,167,180,100, 73,114,172, 37, 57, 54, 65,151,229,246,237,205, 52, 33,107,140, 96, +141,238,210,139,241,154,253,251,208,233,182, 48,219,157, 69,112, 30, 15, 28, 63,137, 79,125,238, 49,156, 14, 22,179,173, 14,118, +118,102,113,222,238,243,176,115,231, 44, 90,211, 83,104, 67,195,230, 10,199,164,165, 0,194,141, 70, 34, 7, 94,107,167,136,120, + 75,201,209,242, 28,139, 16,194,230, 77,175, 87, 93,138, 87,188,250,149,120,252,203, 95, 97,203, 17,223, 43,212,180,116,137, 42, +214, 33,132,181,125,245, 43, 9,238, 82, 87,214,192,141, 98, 88,172,108,145,138,231, 91,202,202, 37, 19, 2,113, 58,231,201, 26, + 20,221,114,222,113,160, 91, 12,126, 85,100,253,136,103,200,179,175, 95, 71, 75,105, 66,239, 69, 11,192, 40,138,155,173, 68, 25, +167,202, 37,170,218,139, 49,230,202,123, 32,105,115, 44, 9, 31, 86,193,177, 10, 66, 87,227,137,181, 1, 50, 14,248, 27, 22,108, +253,144,149, 37, 46, 94, 87,240,218, 72, 89,179, 90,249,181,231,127, 43,249,160,175,107,235, 76,136,150,219,115,245,117, 25,101, + 35, 13, 1,239,144, 95,188, 23, 74,120,156,252,194,131, 85,182, 82, 60,235, 49, 35, 75, 73, 10, 34,239,245, 0, 41,183, 73,127, +169, 75, 34,214, 2,105, 12,146, 67,165,161,197,232, 68,112,128, 79, 98,104, 80, 90,147,175, 49, 58,125,234,135,177,157,210, 6, + 44,107, 3, 75,217,228, 34, 2,144, 43,192,114,238,159, 99,194,103,153, 72,150, 49, 10,118,139, 35, 28,235, 38,148,237,198,176, +224, 40,244, 69, 0, 29,192, 8,120, 59,132, 85, 2, 11, 67, 1,151, 2,169, 73, 49,176, 5,218,121, 27,153, 49,176,174,207,177, + 85, 30, 90, 8,132, 52,193,241,185,121,168, 68,193,249, 64,115, 50, 55, 87,153,122, 67, 77,197,181, 27, 12,168,170, 23, 38,169, + 23,141,152,244,101,215, 53,144,181,180,145, 40, 92,148,236, 35, 29, 44,156,185,215,230, 23,232, 85, 87,167,108, 93, 61,183,103, +191,198,209, 55, 42,216, 71, 89, 22,227,207, 30,247,150,224, 98, 51, 66, 2, 97,192, 41,101,236, 75,207, 83, 50,147,165,172,169, +171,148, 35, 94,185,232, 71, 50, 17,185, 63,233,163,143,130,157,243,227,154,123, 56, 71, 62,194,245,104,232,140, 61,179, 93,236, +236,182, 1, 72, 12,122,125, 8,157,226,138, 93, 59,240,249, 47, 62,137,249,185, 30,220,244, 78,204, 78,119,209,233,228, 40, 16, +208, 73, 18,228, 23, 93,136, 52,203,161, 80,226,190,167, 78,110, 60, 26,217, 70,127,112, 89, 17,241,122,116,181,192,250,162,207, +151, 67,223,226,177,147,199,198, 93, 58, 30,103,186,240,228, 50, 86,129,245,222, 55, 42,241,147, 62,228,205,248,114,237,106, 26, + 36, 42,223,178,146,149,191, 28,168, 50, 42,100,140,137,225,224,221,200,220,125, 44,188,227, 41, 47,186,228,232,249,122, 16,109, +116,189,196,115, 27,153,176,170, 69,195, 39,181, 40,239, 52, 97, 87,138,102,193,150,231, 75,129, 76,240,162, 46,160,179,230, 31, +179,153,172, 37, 97, 64,162,218, 47, 49,248,110, 50,142,226, 92,159, 9, 76, 88, 92,244,132,159,125, 57, 30, 98,146, 42,198,192, +104, 44,222,125, 63, 30,168,143,181,174, 4, 71, 1,101, 88, 80,102,209,182,248,212, 87,130,115,149, 47, 38, 6,183, 36,138,136, + 91,154,176, 54,158,210,207, 78, 70, 82, 93,146, 80, 68,112,167, 77,154,122,150,144, 86,158,166, 28,136, 39, 41,114,216,129, 52, +243, 68,115,254,163, 35,255, 76, 2,146,250, 18,195, 26, 61,136,241, 27, 93, 85, 71, 91,205,180,183, 94,205,219,251, 42, 29,218, +215, 14,213,182,237, 33,174,118, 17,163, 84, 11,139,144,103,108,153, 87, 72,165, 66, 98, 12,116,106, 80, 12, 75, 20,195, 1, 68, +224,200, 79, 9, 44, 46, 45, 65, 74, 9,143,128,254,226, 2, 11, 64,156,131, 30, 56, 90, 84,200,113,115,250,122, 24,250,114,154, +201, 74, 69, 84,162,105,172,158,123,189,165,146,115,221, 1,124, 22,215,141,218,120,244,151,135, 64,204, 57,203,106,126, 83,206, +179,245,158,133, 34, 22, 34,149, 34,138,166,162,166,193,133,104,178,148,211, 37, 13,229, 3,231, 45,250, 59, 73,201,135, 89,183, +126,104, 78, 1, 84,130, 52,160, 80,211,204,117,204, 44,169,105,134,246,105,170,220, 23,235, 74, 4, 54,183, 66, 98,169, 44, 48, + 61,211,197, 84,154,194,100, 41,138,126, 15,255,124,236, 73,156, 56, 49, 15,184, 18, 75, 18,184,124,199, 94,152, 36, 67,107,170, +133,150,209, 16, 70,192, 11,131, 86,218,133,106, 39,120,234,248,137,141, 51,246, 80, 99,230,113, 79,202,122,142,120, 88,249,172, +215, 35,231, 39,247,227,233, 57, 44,124,229,171,172,157,170,106, 91, 69,159,180,168, 49,143,229, 74,108,136,117,156, 13, 95,123, +150,141,158,135,250, 24, 48, 49,134,169,221, 85, 65,174,120,109,231,200, 87, 29,159, 57, 97,230, 46,153,134,198, 26, 32,138, 9, +155, 81,100, 1,203,100, 37, 80,186, 88, 72,166, 22,189, 30,239,233, 10,218,251,157, 46,237,113, 25,200,130,162,216,106,226, 60, +199,219,200, 90, 96, 28, 75, 69, 90, 18, 51, 15,181,245, 84,236,231, 87,158,252,243, 96, 33,210, 22, 85,150,192,164, 53, 36,106, +235,126,157,180,105,171, 53,117, 41, 43,139, 75,100,220, 30,203,199,138,140,206, 18, 91,187, 12, 71,236,151, 37,205, 65, 89,146, + 59, 68, 49,115,137,149, 9,227,184,173, 37, 30,155,118,206, 17, 83,143,155, 78,178,223, 67, 73, 98,206,221,156, 24,238, 84,135, + 24,181, 49, 80, 51, 83, 8, 82, 35,105,231,208,105,138, 60, 53,208,218,160,155,182,144,167, 41,188,210,104, 39, 57, 84,150,192, +123, 9,145, 39, 8, 38,173, 22, 50,230, 54, 6, 80,192,151,102, 63, 81,158,112, 0,142, 34, 98,109,125,149, 86,101,237,120,144, +156,201,200,156,148,242,225, 88,206, 12,168,107,135, 16,190,242,219, 70, 62,178, 93,140, 61, 10, 17, 14, 52, 22,235,128,225, 0, +161,221, 6,124,128,215, 64,110, 52, 92,225,144,153, 4, 74, 25, 88, 81,194, 59,135, 65,105,225,157, 71,225, 28,158, 56,117,154, +221, 36,108, 10, 86,160,181,136,135,204,121,170, 78,182,158,192,146, 72, 40, 70,102,164, 85, 76,135,145, 97,197,234,100,145,216, + 10,241,204,170, 26,167, 57, 63, 55,237, 96, 20,188, 34, 36, 9,140,165, 37, 33,211,113,174,104, 12,228,209, 76,120, 50,195, 65, +115,108, 41, 50,138,136,143,228, 50,191, 50,173,254, 14, 37,125,182,232, 85,135, 63, 30,110,128,138,126, 4, 22,226, 66, 32,226, + 56,202,215,230,128, 48,241, 52,165,228,140, 24,150,160,241, 75, 84,197, 67,164,196, 87, 37,112,225,142, 14,230, 22,231,113,124, +241, 20, 62,251,232, 81,224,216, 34, 48, 40, 81,218, 18,143,244,150,176,167,221,198,212, 84, 23,202, 72,244, 22, 29,164, 1,118, + 77,207, 32, 19, 45, 12, 18,133,147, 39, 87, 96,236,145, 1,215,199, 60,242, 77,178,107, 34,254,172, 7,214, 45, 87,177, 47, 22, +154,138,230,231,181, 82,111, 99,208, 88,168,107,237,126,252,250,171, 69,240,175,154, 74,235, 55,185, 87,107, 26, 97,140,101,137, +140,254,188, 61,180,215, 6, 75,227, 2, 64, 20,198,227, 94, 83,181,160,227,193,144,246,117, 97, 57,232,149, 43,174, 41,158, 83, +235, 72, 16,136,174,174, 24,180, 8, 84, 1,109, 49,157, 44, 97,166,109,251,204,240, 57, 61, 51,225,243,161,146, 90,234, 28, 11, + 16, 37,187,173,130,160,152,170,146,105,170, 54,236, 94, 77, 86,175, 56,183,234, 26,216,237,175, 69, 85,103,226,245,245, 89,203, +244, 31, 3,253,226,126,205,146, 42,200, 50,102, 41,197,191, 77,139,232, 73, 43,163,201,145,150,178,126,207,154,169,155,140,152, +179, 72, 43,226,183,156, 36, 47, 88, 59,207, 18, 96,166, 77,149,182, 50,174,246,147, 25,116,186, 29,228,173, 14,114, 99,176, 51, +107, 97, 42, 75,208,209, 6,157, 36,195, 76,146, 34,209, 6,221, 36,135, 16,192,174,164,141, 60, 49,112,240,152, 78,114,104,101, + 16,180,132,206, 18, 56,161, 72,147,213,236,207,148,236,103,151,236,227, 28,153,255, 85,149, 11,238,107, 26,157,166,234,108, 84, + 25,140, 75,163, 46,119,192, 71, 49, 47,190,182,112,181,107,216,237, 76, 95, 81, 76,200, 11, 10, 18,113, 14,232,247,225,124, 64, +222,201, 81, 6,139,174, 78, 33, 37,112,122,176,132, 84,165,152, 31,246,161, 4,105,232,167,250, 75,176,206,195, 45, 46,144,134, + 88,122, 46,183, 91,115,119,104,205,230,102, 93,229,247,110, 84, 81, 94, 73,171,243,126, 60, 37, 49,154,228,156,123,230, 48,116, +128,181,236,146,230, 58,106,206, 46, 70,168, 70, 77,198,208, 70,208, 44, 61,199,207, 12,122,148,122, 40,234, 46,132, 1,205,113, +209,103,237, 62,212,222,175,229, 68,143, 42, 42,178, 85, 35,136, 42, 71, 56, 75,168,138, 84, 98,232, 25,158,183, 7,152, 91,170, +245, 62,136,230,240,132,204,158,144,103,250,254,183, 67,208,204,116,205,204, 44, 1, 55, 64,120,226, 36,190,252,197, 35,120,232, + 75,143,224,241,135,143, 1, 39,231,200, 26, 81,246,129,211,115, 40,150, 22,240,144,243,152,209, 41,132, 76, 32,181, 66,158, 25, + 12,134, 5,138,210, 98, 74,165,184,127,176, 72,197, 54,234,193, 86, 53, 98, 45,164,164,151,247, 16, 35, 66, 30,234,106,116, 37, + 68, 46,199, 52, 71, 74,128,172,162,191, 29, 87,251, 90,105, 63,142,238, 17, 42, 97, 52,230,164, 79, 6,142, 46,251,253, 45,204, +154,169, 51, 12, 37, 43,237, 91,212,202,212,206,159,174, 24,122,125, 14,116, 45, 98,220,203,170,250, 94, 96,229,199, 57, 14,238, +146, 20, 35,101,244,184,245, 35,230,154,199,223,163,198, 62,138,223,224, 10,135, 78,208, 30, 44,152, 94,106, 95, 41, 63,138,149, +147, 80,144,165,214, 59, 18, 20,180,167,136,122,237,171, 2, 63,224,115,161, 76,229,215,183, 88, 61,134, 96,108, 29,248,156,217, +115, 32,252,142,197,111, 69, 43,181, 92,159, 53,205,232, 42, 54, 32, 86, 51,141,213,248,164, 98, 43, 96,168, 2,228, 98, 28, 69, +214, 1,236, 86, 4,202,237,216, 9, 76,119, 41,221, 40, 36, 36,225,141, 24, 36,251, 64, 4, 7,190,181,217,148,222,105,115, 4, +123, 11, 59,166,167,208, 54, 45,116, 76,130, 78,146, 99, 38, 75,161, 32,161,165,161, 84, 45,157,162,163, 83,104,109, 0, 8,236, +109,205,162, 95, 14,161,164,196,116,210,130,112, 64, 46, 53,118,152, 22, 44, 60,114,147,194, 9, 1,167, 98,105, 82, 84,126,161, + 36,154,149, 5, 73,122,193,115,128, 29,170, 3, 28, 43,129, 73,206,135,177, 97,101, 63,124, 93, 35,151, 53,230,190,221,146, 96, + 12,166,138,229, 6, 93, 73, 11,172, 12,250, 58, 65,158, 26,204, 23, 3,180,148,129, 86, 26,189,114, 0, 5,137, 94, 89,160,231, + 10, 44, 21, 67,244, 23, 22,105,124, 67, 75, 25, 10, 69, 96,169, 56,169, 2,208, 16,106,105, 44,203,104, 55, 70, 19, 97,208,106, +109, 77,123,100,218, 20,227,129, 43, 81,235,113,254,220, 4,176,172, 7, 89,194, 37, 43, 89,160, 41, 89, 27, 47,125,165, 45,107, + 54,123,167, 6,163,200,220,140, 45, 64,142,211,134,162,115, 83,166,156, 26, 8,210, 76,226, 26,198, 26,225, 10,227, 65,108,130, + 53,126, 17, 53,164,218, 30, 11, 92,200,135,215,235, 5,215, 93,133, 99, 71, 30, 27, 39,108, 74,146,245, 37,112,160,216,185, 48, +203,199,234,129, 34, 84, 65, 84, 49,101, 42,112,122, 31, 64,251, 52,174,243,176,128, 91, 42,241, 72,217,199, 46,157,161,213,202, +160,180,198, 82,111, 8, 95, 6,244,122, 61, 40, 25,112,162, 4,196, 96, 8,161, 0, 17, 2,164,146, 16, 33,140,106,208, 8,128, +152,122,252, 41, 37, 4,107,233,228,117, 11, 92, 90,194, 46, 47, 32,123, 89, 85,153, 68,168, 52,214,114, 29, 1,103,129,131,126, +203, 9,139,214,106,154,226, 86, 50, 21, 89,115,149,229, 25,144,228, 36,168, 7,199,251,112, 21, 55,162, 99, 87, 66, 81,210,254, + 81,156, 50, 26,216,106, 81, 63,247,169,161, 57,137,150,167, 1, 23,255,138,166,124,239,171,207,215, 83,173, 6,158,175, 63,172, +138,214, 40, 78,145, 21,204, 27,130, 37,174,237, 74,178, 76,105, 95,179,160,138, 42, 64, 46,240,254, 23, 92,156,204, 59,122,238, +213,148,129, 49,235, 33,206, 61,125,241,126, 92, 91, 95, 47,125,143,138, 69,228, 97, 81,216,178,101,149,206, 22,106,244, 42, 6, +133, 58,191, 5, 76,189,213, 33,205, 91,176,201,182,224,218,224, 58,214,234,230, 42,115,218,144,223,124,231, 12,144,166, 72, 59, + 45,156,223,238,192, 8,137,110,146, 34, 55, 41,140,148,104,233, 12,146, 37,200,110,210,230, 30, 38, 26,137,212, 80, 8, 24,122, +135,220,228, 16,193,195, 7,143,204,164,240,206,194,134,128,142, 74, 49,116, 5,164, 18,104,155, 20, 94,122, 40,149, 0,218, 32, +128, 55, 99, 96,139,193,192, 81, 64, 94, 97,163,184, 72,230,139,210,113, 78,101, 96, 45,189, 88, 99,211, 76,254,244,235,207,147, +223,138, 13, 86, 39, 30, 37,231, 63, 39, 25, 16, 2,250,174, 68,233,135, 8,222, 99,161, 28, 32,192, 97, 97, 80, 96, 97, 56, 36, + 63,186,141, 1,140, 49,135, 54,208,239, 41, 91, 86, 60, 7,124,197,138,122,117,233,243,140,226, 63,107,152,127, 71,121,186, 98, +156,153,215,115,143,183, 58, 66,125,179,126,116, 37, 40,146, 52,145, 92,222, 54,106,238,204,128, 99, 99,161,161,163,130, 50,129, +173, 28, 14,180,151, 2,184,172,227,160,202,227,183,150, 53,255, 58,225,231,235, 21, 19,190,255,232,195,143,213,184,130, 39, 95, +162,136,101,132,121,203, 42,224,216,163, 79,156,217,224, 67,178,214, 21, 3,136,206, 69,151,188,229, 42,160,197,255,201, 9, 70, + 24,159,209,147, 0,228,150, 22,241, 21,111,209,129, 66,162, 83,244,150,122, 8,176, 56, 49,127, 18, 11,189, 1, 78, 91,143,144, +119, 32,134, 22,162, 28, 64, 72, 49,122, 73, 41,136,105,243,245, 4,107,239,145,161,143,121, 9,150,211,210,163, 63, 57,174,111, +244,191, 23,182, 86, 55,127, 45,183,211, 42, 12,215,218,202, 29,229,183,161, 97, 72,156,211, 68, 83,161,151, 86, 74,123, 68,112, +115,160,181, 50, 30,132, 32, 51,174,240, 84,239,161,197, 85,228,138,126,213, 56,100,224, 88,177, 97, 11,100,108,210, 18,215,208, +232,138,201,196, 98, 64,162, 86,237, 80,123,162,255, 49,122,219,250,170, 96, 82,180, 10, 38,130,178,164, 60,151,243, 45, 81, 53, + 3, 27,197,165,112,238,186,103,179,189,183, 85,214,206,102,172,135,171,197, 80,172,228,234, 25,197, 46, 76, 92, 51, 77,206,204, +178,218,140, 91, 37,242, 77, 37,198,104,170,186,230, 50,132,175, 30,165,251, 68,183, 72, 93, 80, 21,213,222, 61,123,166,238,184, + 48,134, 11,192,226, 0, 40,123, 76,192,121,161,179,188, 98,230,211, 93, 36, 89,134,243,167,103,177, 43,109, 33, 55, 9,180, 86, +200, 84,130, 76, 39,200,149,193, 16, 14, 45,147,195, 57, 7, 37, 37, 82,147,142, 36,146,118,154, 51,251, 8,208, 82,195, 8,129, +194,123,164, 73, 11, 1, 30, 66, 0,221,172, 5, 3, 9, 31, 60,140,144, 16, 74, 82,133, 72,163, 16, 98, 1, 4, 1,210,118,162, +143, 29,156,214,225, 37,117,123, 26, 22, 85,112,223,118,164, 1,181, 58,188,112,114,107,180,168, 72, 44, 4, 53, 74, 40, 3,241, +155, 97,240, 40,217,135,238,124,192,124, 49, 68,111,200, 18,118,212,246, 69,189, 46, 53,167,229, 32, 22,248,240, 92, 40,168, 86, +132,166,206,156, 39,137,195, 90,218,186,247, 85,249,210,200,216,227,117, 66,216,222,226, 48,235,133, 98,181, 32, 30, 28,149,208, +254, 94,236, 85,154, 89,146, 0, 94, 81,230,133,141, 37,141,107, 62,111, 88, 98,228,154,171, 98, 5,174, 2, 56, 28,156, 73,105, + 98, 77,246,186,144, 87,111, 0,130, 48,206, 36,141, 38, 51,102, 76,211, 42,202, 51,153, 69, 36,158,177,248,207,118,105, 39,102, + 29, 68,113,181,244,209,200,140,188,128,155, 63,141,135, 79, 44, 32,203,128,133,197, 37,244,251, 67, 44,245,135,152, 31, 20,104, +167, 9,140, 78,208, 23, 30,194,164, 16,101, 9, 17, 28,100,212,210,163,214, 30, 25, 59,207,199,228,207,101, 53, 34,163,137,118, +197,174,111,229, 68, 7,184,201, 0,186,141, 88,147,234, 41,153,103, 35,100,118, 90, 20,131,180,146,175, 95,114, 90, 87,154,178, + 73,157,211,135,203,114,109,250,194,130, 21,188, 7,242, 54, 51,116, 71,110,167, 97,193,193, 87, 28,180, 21, 75,125,219, 48, 94, +122, 57,106,233,178,150, 66, 44,216, 5, 36,185,225, 72, 52,179, 59, 69, 76, 94,161, 54,207,150,127,175,237,219, 24,241, 46, 80, + 5,154,122, 27,205, 50,164,148, 72,177,185,122,237, 41, 23,202, 81, 92,222, 54,210,192,216,140,201, 57,242, 83,151,182,150,165, +101, 43,154, 45, 5,119, 62,228,207,154,140,221,161,220, 88,101, 61,129,191,186,102,233,140,116, 83,131, 43,234, 49, 93,212, 28, + 55, 48, 44, 16,142,159,102, 75,160, 27, 55,201,199, 40,248, 88, 94,118, 88,108, 5, 83, 47,128,165, 30,181,126, 43, 57, 16, 66, + 37, 64, 59,161,158,222,173, 20,216, 57,133,206,244, 52,178, 44, 69, 87,167,232, 38, 41, 50,147, 67, 74,137, 41,221,130,148, 52, + 48, 41, 53, 49,226,224,145, 39, 45,100, 90,163,180, 14,173, 52,135,117,142,138, 68, 41, 67,210, 57, 4,148, 74, 32, 1, 20,174, + 64,162, 12, 32, 4,202,162, 68,146, 24,216, 96, 73, 40, 80, 10, 66, 8,100, 38, 65, 97, 29,164, 54,100, 49, 83,181,154,191, 73, +108, 52,226, 41,101,195,219,237,145,170, 35, 33, 84,172,113,197,110,101,103,227, 75,142, 27, 81, 43,178,138, 72,238,146, 6,135, +208, 31,160,148,192,176,223,135,133, 64,185,216,227,195,200,121,233,129,115,190, 77,204,139,101,109, 57,250,200, 60,119,118, 82, +182,170, 91, 61, 74, 95,242,227,126,187, 16,198, 53,176,213, 52, 3,132, 51,125,234,246,105,102,232, 38,163,136, 94, 45,184, 63, + 49,143, 51, 88,170,171, 16, 15,174, 16,156, 2,228,136,208,116,218, 68, 76, 3,155, 40, 53,215, 71, 8,174,106, 17, 42, 66,213, + 93,108, 50,176,107, 20,224, 52, 65,253,163, 0, 84, 23,152, 2,215,118, 79, 81,105,148, 43,105, 99,117,179,104,100, 14, 59,118, + 0,123,119, 3,211, 51, 85,247,193,179,217,199,134,107,243,199,186,243, 35,226,164,199,219, 39, 43,185,114,222,118,140,174,246, + 14,232,207,225,241, 99,115,120,180, 40,112,122,176,132,133,225, 0, 18, 2,109,163,209, 74, 52, 90,173, 54, 10,163,225, 77, 10, + 57,112, 16,190,224,216, 91,214,214,173, 29,211,206,151,251,253,140,192,116, 41, 42, 55, 83,204, 57, 7, 87, 72,180,181,253, 14, + 69,116, 66,201,229,251, 50, 76,106,125,235, 9,138, 90, 15,186, 45, 96,122,138,253,213, 43,180,206,141, 66,156, 20,180, 63, 28, +168, 6,194, 96,131,173,160,133, 39,173, 60, 12,170,184,130,148,179,135, 44,170,156,116,205,241, 37,134,115,180, 36, 11,191, 8, + 85, 30,186, 98,115,146, 16, 28,220,201, 46,190,148, 45,127, 49, 63,125,180, 48, 9,251,245, 61,247,122,183, 36, 96,143,178, 76, + 38,155,247,132,205, 9,172,154,221,170,130, 99, 5,134,182, 50,113, 7,206,163, 51,178,138, 43,136, 12, 86,230, 84, 71,133,106, + 29,211,239,150,235,210, 11,206,188, 50,168,170, 74,174, 69,211,235, 53, 45, 98,159, 0,165,201,194, 18,115,239, 53, 7,160,198, +114,176,147,110,208,146,255,231,220,216, 61,183, 38,250,221,215,122,156,171, 90,161,152,110, 14,116,186,152,218,177, 3, 70,105, + 76,155, 12, 59, 59,211,200, 37,249,122, 91, 38, 67,240, 30, 82, 10, 24,109, 70,231, 43, 51, 9, 9, 67,138, 11,170, 8,133,118, +222, 98, 95,187,130,150,128,226,180, 44, 13,133,196, 80,158, 99, 34, 52,188, 36, 13, 83, 11, 5,107, 29,180, 20,200,149,129, 4, + 73,133,198, 72, 4, 37,224,164,170, 77,172,224,224,140,104,246,148,219,103,178,148,177, 30, 52,155,154,214,219,223,122,197, 13, +202,196, 94, 11,210, 30, 29,232,144, 57, 54,221,244, 11, 64,120, 4, 71,145,145,228, 30,113, 24,165,189,136, 88, 20, 72,212, 90, +165,214,162, 93, 61, 63,223, 96, 56,190, 25,133, 24, 47, 56,179, 92,170,208, 74,155,185, 94,229, 43, 6,132,156, 99, 95,215, 25, +196, 93,233, 81,221,113,161, 21,132, 52, 16,165,135, 16, 6, 66, 88, 8, 17, 42,205, 65, 9, 98,232, 50, 80,217, 94,173, 72,178, +215,146, 8, 87, 89,176,182,207, 62,118, 45, 40,247, 52, 70,171,166, 73,197,112, 71,190,182,101, 74, 20,199,212,162,184,198, 38, +250, 99,125,213, 99,123,189,140, 57, 49,192,142, 89,114, 37,120, 22,224,138,226, 76, 33, 99,221,237,112,101,229,142,240,168, 10, +229, 8, 62, 63, 74,241,121,170, 69,242,174,184, 39,106,171, 81,244,129,185, 62,134,172, 57,181,181,129, 48, 10,237,180,141, 86, +150, 33, 75, 53,160, 20,138, 36,133, 76, 50,200, 2,180, 62,206, 87,126,117, 44,159, 85,182,236,218, 71,235,199,104,206, 67,173, +136, 13,199, 61,196, 20, 54, 53,177, 54,117,193, 26,162, 10,206,141,218,221, 86,100, 36,180,187, 85,160,177, 7, 91, 66, 87,177, + 10,148, 69,197,208,215, 43, 40,143, 4, 16,126,230,204,208,152, 90,121,197,240,118,119,137,201,117, 50,170, 23,162, 12,151,107, + 6,249,240, 71, 93, 48, 61, 23, 4,227,250,238, 54,140, 12,161,180, 15,202,106,205,135,190, 10,180, 19,172,169, 59, 77,110, 43, +173,216,239,206,116, 41,250,218, 71,230,123, 57, 30, 28,186,110,211, 54, 87,183,140,238,129, 81,116,185,170,210,234, 52,199, 14, + 8, 85, 21,176,241, 69, 85,242,222,130, 54,136,137,174, 1, 22,200,125,205, 93,182,214,186,203, 90, 42,239,168,149,176,226, 46, +139,241, 25, 56,118, 39,146, 7,201,252, 85,214, 82,222,150,161,157, 91,220, 79, 61,161,138,112,121, 70, 18,222,206, 25,236,216, +185, 11, 90, 40,236, 48, 57,102, 91, 93,120, 27,144, 37, 25,180, 84, 40,202, 18, 74, 10, 24,165,169, 71,188, 81,232, 36, 41, 32, + 21, 18,165,160,133,132, 54, 25, 20,183,235, 84, 82, 66, 9, 1, 37,104,118, 5, 2,130,144,144, 66, 82, 32, 88,209, 71, 38, 21, +213, 61,113, 37, 18,109,160,160,224,225,225, 3,208, 73, 18,142, 90,150, 48, 90,192, 10,201, 5,149, 56,215,210,163, 74, 41,112, +219,164,169,199, 75,186,179,180, 6, 68,194,106,106,229, 66, 19, 85,229, 54,123,238,192,230, 75,146, 34, 11, 46,208, 19,106,218, +114,172,108, 18,205,202, 81, 50, 44,216,124,220,227,224,150,122, 3,158, 88, 33, 78,170,113, 19,252,122,243,164,147,132,210,196, +178,156,152,194,176,120, 90,131,227, 4, 0,145,101,220, 62, 90, 67,176, 95, 85, 56, 91, 49,244,216,157, 79,164, 53,225, 53, 0, +221, 89,218,239,117,179,163, 97, 77,160,224, 28, 94,112, 68,112,198,205,120, 50,110,242, 2, 63,174,169, 71,194, 48,201, 88, 71, + 57,242, 76, 0,140, 24, 39,226,235,205,241, 23,172, 93,104, 78, 39, 90, 90,170, 58,134,153,132, 52, 66, 99,214, 39,208, 74,234, + 14, 56, 98,232,145,216,185, 80, 9,197, 1, 68,136,189,172,250, 88, 47,135, 50, 84, 25, 41,129,180, 47,161, 28, 80,120,148, 62, + 96, 40, 20,118,117, 58, 48, 38, 67,170, 20, 90, 38,197, 84,158,163,147,166, 8,137, 65,217,105, 65,232, 12,162, 95, 64,216, 98, + 77,134,190,252,220, 56,154,223,192,154,102,204,251,143,217, 32, 82,140, 51,244,122, 15, 4,205,117, 10,192,213, 45, 17,131,204, +216, 10,182, 81,147,253, 36, 2,107,149,206, 81,161,162,213, 26,242,212, 3,104,215,123, 63,195,245, 63,218,204,152,103,219,244, +179,149,144, 5, 74, 2,152,206,137,225,181, 51,170,179, 96,120, 78,178,132,198,110, 12, 87,242,228,159, 35, 33,137,173,125, 35, +225, 71, 80,170, 90, 44,171,235,202,154, 98, 21, 42, 77, 57, 6,247,169,104,134, 55, 20, 29, 31, 99, 89,234,110,169,141,210,203, +152,177,162,229,120,147, 29,231,120,227,136, 42, 11, 64,129, 4,223, 68,211, 92,248, 90,187,232,224, 73,171,246,178, 42,123,173, + 88,185, 90,143,160, 29,233,104, 61,214, 34,209,148,217, 98,106, 12, 61,222, 43,128,133,140,168, 20,214,232,248,196,254,218,186, +138,114,134, 35,220,211,100, 20,233,158,182, 58, 48,208,216,145,183, 96,180, 65, 97, 75,180,116,134,224, 28,188, 22,232,102,173, + 17,141,128,118, 72,148,129, 84, 10,109, 45,225, 3, 16,156,131, 82, 18,158,219,119, 90, 87, 2, 65,193,123, 7, 3, 1, 45,104, +113,134,101,129,160, 21,218,105, 11,165,181, 16, 10, 48, 72, 96,157,131,144, 2,218, 75,100,121,130, 65, 97,145,105,137, 12, 9, +150, 44,160, 82,133,190, 18, 40,130,175,124,232,177, 59, 78,146, 97,212, 33,104,171,177, 21,215,140,103,101,212,207,185,214,153, +104,136,170,102,122,220, 64,185,226, 40, 83,214,232, 5, 72, 32,136,145,184,138,183,131, 31,208,255, 23,123, 84,219,185, 92,134, + 56, 88, 84, 4,107,100,126, 95,175,101,193,144, 5, 71, 41, 0, 45,234, 0, 55, 92,220, 82, 38, 29, 0,224,242, 43,113,224,178, + 93,184,252,130,125,216,189,235, 60,180,119,207, 32, 72,133,188,149, 64, 35, 64,166, 9,140,214,200,164, 68, 57, 28, 98,105, 88, + 98,105,105,128,165,197, 62, 6, 11,139, 56,245,212, 81, 60,240,212, 19,248,220,157,159, 64,216,181, 27,232, 45, 64,216, 62,241, +159, 36, 39,193, 53,212,246,126, 12,172, 10,220, 21,170,237,169,174,190,178, 44, 96,113,191, 99, 87,144, 9,114,136,113,211,251, +114,149,166,226,128, 98,228,123,180,110,248,154, 98, 47,215,217,173,176, 44,128,197, 57,206,135, 15,244, 28,245,106,120,102,162, +187,217,154,231, 29, 85,101,199, 72, 91, 99, 55, 69,167,153,225,115,241, 29,167, 89, 11, 91,142,209,112,127, 6, 59,113, 62,180, +133, 40, 10, 20, 58,193, 92,111, 10,121,218, 70, 42, 91, 80, 90, 32,216, 2,153, 84,216, 51,179, 3, 30, 30, 51,137,196,233,222, + 9,244,237, 28,190,112,231,221, 85, 85,221,138,252,175,188, 79,226,126,134,173, 2,231, 70,194, 11,198, 43,210,141,206, 26, 11, + 66, 18, 92,223,130,199, 27,175, 56, 4,119,210, 66,173,210,218, 38, 49, 24,208,107, 43,161, 57,234, 92,129,220,163, 57, 19,139, + 52,229, 88, 16,238,236,167, 64,153, 27,113,189,235,139,223, 54,220,191,128,203,115,219, 90,159,134, 0, 96,177,168,252,196, 75, +220,192, 37,214,116,176, 19,238, 39,139,170,154,165,176, 53, 13,152,203, 27, 27, 91,149,130, 5,187,196,236, 38,186, 13,234,218, +222,140, 5, 6, 98,230, 67, 61, 3,162,240, 85, 79,119,205,189,225,203, 33,231,134,199,231, 2,209,199,184,255, 67,109,191,104, +189, 62, 58, 63,249,118,201, 65,130,182, 22, 16, 43,226,245,121, 31, 42, 93,197, 47,196,150,228, 19,117,254, 5,246,188, 38,108, +217, 38,105, 27, 74,137,104,117,144,236,154,198,121,217, 52,242, 52,129,145, 6, 10, 64,170, 18,104, 67, 62, 23,173, 12, 82,149, + 32,225, 46,107,153, 78, 32,133,131,230, 20, 51, 37, 2,172,245,112,142, 76,233,193, 59,104, 0,169,176,112, 90, 99, 56,164, 86, +161, 54, 0,131,194,162,103, 75,148, 46,192,122,135,158, 29, 2, 66, 34, 56, 7, 27, 44,140, 50, 40, 93,229,119, 28,148, 14,198, + 8,204,245,151, 0, 33,112,188, 63,128, 91, 90, 36,255,202,176,199, 11, 91, 80, 16, 82,105,207, 77,244,240,134,205,238,168, 76, + 94,145,144, 10, 49,206,204, 5,170,195,160,147,170,185,142,228,180,189,232,211, 44,107, 41,120,131, 33, 29,190,222, 18,109,210, +222, 96,107,159,123,106,150, 2,127, 98,106,202,137,211,192,112,105,211,130, 78, 93, 43, 75, 95,242, 34,124,215, 43, 95,138, 11, + 47,223,143,217,217, 22, 10, 33, 96, 2,176, 35, 85, 88,130,132, 81, 18,137, 54,232, 21, 5, 10,206,156, 8,182, 24,149,128,245, +222, 67,115, 52,110,139, 9,252,176,180,176, 46,224,171, 71, 79,227,200,103, 63,143, 15,220,125, 31,240,224, 17, 4,149, 2, 51, + 93,210, 34,132,172,122, 31,107,110,180, 48, 55, 79,135,222,121, 46, 11, 59,172, 24,133,224, 88,138,158,173,180,121,189, 12, 17, +168, 87,223, 27, 99,228, 24, 47, 81,186,158,152,132, 52, 33, 45, 75,103,212,238,181,158,166,153,178, 86, 6, 80,179,160,114,157, +185,180,117,157,192,212, 5,142,132,153, 89,204, 26,224, 50,205, 97,125,109, 47, 71,110, 86,173, 33,166,119, 66,236,189, 4,151, +159,191, 11, 59,179,105, 76,183, 58,164, 40, 74,141,139,206,111, 99,207,238, 41, 76, 79,105,124,245,196, 0, 15,125,233,126,124, +242,225, 47,224,201,143,127,102,148, 6, 29,106, 63,235,175,149,152, 61,213,176,151, 85,190,117, 61, 7, 28, 53, 38,175,184, 7, + 69,212,146,108,237,106,209,116, 26,153, 82,120, 6,196,140,212,215, 77, 74,218, 11,221,140, 54, 81, 82,211,176,235, 13,144, 44, +184,194,153,156, 8,131,208,112,174,168,180,200,250,216, 35, 45,113,142, 44, 66,139,220,205,173,223, 39,173, 93,150,228, 51, 15, +195, 51, 53,218,122,249,211,186,144, 6,216,113, 0, 0, 32, 0, 73, 68, 65, 84, 0,139,122,202,161,223, 56, 61,142,252, 41,182, +151, 45, 49, 94, 43, 32, 90, 59, 39, 91,228,198,204,160,224,171,226,105,158,153,172,225,235,153, 90,163,169,222,160,170,123,176, +217,120, 21,147,212,138, 75,213, 27,217,248,106,190, 99,138,118, 61,245,170, 54, 39, 91,163,169, 43,174,180,165,217,236, 62,213, +193,108,154,195,104,133, 76,167, 72, 36, 7,171,169, 28,131,178,143,110,214,130,132, 68,146, 72,164, 58, 65,154, 26, 40, 37,224, +172, 68,150,164, 8,193, 98, 88, 90,104, 37,161,133, 7,134, 67, 8, 37,144, 7, 18,137,212,192,162, 3,137, 69, 0, 93, 91,194, +106,129,167,132,128,242, 1, 46,145, 8, 33, 33,215,152, 4,132, 80, 8,214, 66,139,170,213,170,225, 26,197,211,121, 27,189,178, +143,118,106,176,132, 14,156, 92, 36,237,209,198,116, 38,253,204, 99,232,192,120,125,240, 51, 76,117,156, 6, 82,128, 2,170,130, + 39, 45, 44,101,223,160,228,239,229, 92, 72,162, 12,120,213, 85,251,241,137, 47, 28,225,198, 98,138, 3, 64, 98, 57,221, 45,126, +238,193, 2,153, 53, 91, 41, 9, 16, 97,194,247, 23, 53,198,104,238, 28, 88,172, 84,200, 58, 18,255, 55,127,207, 91,240,194, 87, + 30,192,174,221, 51,152,205,115,216,178, 68,175, 40,209, 27, 20, 16, 74,194, 14, 45, 78, 23, 20,229,154, 40, 9,167, 4,148, 20, + 80, 16,112, 69, 9, 64,160, 95, 18, 3, 30,246, 11,244, 11,139,233,233, 22, 90,173, 4, 45,157,160,173, 37, 94,122,197, 62,188, +241,234,139,240,198,111,250, 58, 60,122,114, 30,159,250,135,187,240, 63, 62,254,105, 98,226,129,245, 62,205, 53,178,157, 3,220, +176, 98,110,145, 81,106, 77, 81,240,182,172, 74,108,214, 25,250,100, 46,171,101,237,177,206,192, 39,127,174, 23,121, 14,236,217, + 81, 77,220,241, 99,213,189,157, 7,230,251,216, 80,173,241,210,210,158, 26,249,194,107,227, 81, 53, 33, 81,216,241,158, 15, 27, +221, 47, 39,158, 2,116, 23,253,221,187,176,100, 75,100,101,129, 52,105, 99,255,197,187,113,209,222, 54, 46,185,160,131, 68, 43, + 92,176,219,162,149,103, 80, 42,197,135, 30, 89, 4, 30,125,112,164,173,111,168,228,187,171, 89, 20,198,122, 88,212,153, 68, 70, +204, 78,233,138,254, 97,192,140, 92,144,245, 73,213,253,109,207, 0, 26, 18, 45, 65, 74, 19,173,158,153,162,137,153,206,128,190, +165,244, 94, 33, 33,181,132,105, 27, 4,142,179,233,232, 4, 82, 8,248, 16,144, 43,141,190,243,112,240, 48, 34, 67,233, 61, 20, +103, 32,149,214,193,194,195,141, 10, 45,113, 0,167,209,196,236, 68, 78,130,228,128, 11, 58, 45,183, 31,202,149,172, 26,158,232, +217,102,173,156,245,126,230,163, 66, 87,204, 20, 85,189,236,237,132,155, 52, 90, 51, 29,187, 75, 29,215,189,119,224,186, 32, 53, +225, 79,112,151, 72, 55,209, 52,108,163,207, 27,226,254,139, 41,214,190,178, 8, 25, 0, 46, 33,255,254,232,128,177,130, 80,163, + 29,103,239, 83,215, 20,184,130,118, 14,180, 53, 48,179, 3,157, 60, 71, 91,165,232, 36, 25,100, 80, 80, 2, 48, 58,133,115, 67, +180,211, 28, 74, 8, 36, 70, 33, 75, 82,164,121,134,196,208,198,161,121,160, 96, 8, 45, 61,130, 43,161,157,131, 48, 2, 29, 87, + 32,241, 14,137,247,112,174, 4, 66,137,204,121, 4,239,224,189, 69, 22,128,129,176, 84,117, 19, 64,225, 73, 62, 79,117, 2,129, + 0, 47,128, 84, 25,248, 16,160, 37,157, 56,163, 12,156, 35,159, 94,128, 64, 33, 20,249, 57,202,146,203,126,114,202,194,114,209, +174,107, 5,157,108,119,240,215,168,186, 19,251,123, 37,119, 64, 26, 6,242,201,104, 54, 3, 26,174,170,231, 56, 31, 52,213, 64, +170, 32,131,128,145, 26, 78, 6, 60,122,124, 14,111,126,245,245, 40,243, 33,230, 78,204,211, 70,178,150, 11, 88,184,179,219, 27, +245, 84,160, 24,171, 80, 14,168,226, 90,191, 87, 5,224, 69,134,222,158,166, 42,131,105,139, 59,151,197,210,147, 45,110,208, 67, + 27, 55,189,250,133,248,190,239,126, 11,190,235,166,239,193,203, 15,188, 16,211,221, 54,180, 36,166,122,186, 95, 96,169,176,208, +165,133,245, 30,169,243,120,252,196, 60,156, 23, 80, 70, 33, 88,135, 76, 27, 88,239, 49,149, 24,204,245, 10,164, 30, 72,148, 68, +123,166, 3, 47, 4,164, 13,200,179, 4,157,118,142, 32, 4, 84, 16,176,165,133,128, 64,146, 37,184,238,192, 53,248,186,175, 63, +128,125,187,166,241,240,201,163,232,159,236,209, 33, 95,232,147,191, 90,114, 81,141,216,235, 32,176,169,172,223,227, 52, 42, 81, + 69,219,151, 92, 3,115,185,148,190,216,183,187, 78,104,162, 86,161, 57,144,103, 61,105,151,173, 14,249, 77,181, 4,230, 22,104, +222,181, 28, 55, 53,111,116,191,198,212,200, 24,244, 23,235, 90,199,234,106, 58, 84, 65,180,214,158, 89, 78,120, 13,235,203, 40, +232,109,233, 36, 22,145,163, 61,211, 69, 75,165,216,217,157,193,215, 92,216,198,229, 23,239,128,145, 10,157, 86,138, 78,150, 64, + 36, 6,189,178,131,153,233, 93,120,176, 95, 34, 56,143,160, 13,194,249,251, 16, 46,216, 3,236,217, 75,193,144,171, 5,167,174, +227,249,144,232, 42, 0,176,157, 98,223, 11, 46,193,252,177, 57, 14,174,170, 9, 92,214, 82, 96,152,125, 6, 48,244,200,116,102, +218,180, 15, 90, 9, 55,200, 18, 72,186,109,164,105,130, 60, 33, 5,108,214,100,152, 54, 57,118,230,109, 36, 74, 97, 58,237,160, +107,114,104, 41, 49,155,117,208,209, 25,218,105,134, 92, 25, 76,165, 45,180,141,198,180, 54, 72,181, 70, 43, 77, 97,125, 64, 80, + 26,193,212, 44, 77,136,133, 99,120, 47,216,114,237,249, 95,238,181,153,177,123,112, 69,182,216,203,157,179,125,130,175,250, 40, +148,190, 58, 15,178, 86, 35, 34, 6, 28, 39,186,242,181,143,130,251,184, 10,166,224,130, 80, 37,151,181, 45,106, 41,103, 27, 85, + 10, 71,221,218, 98,156, 65,140, 97,137,149, 20, 45,231,252,151,213, 9, 9, 28,203,178,101,209,239,138,125,233, 83, 25, 96,218, + 72,167,167,176, 35,201,161,133,129, 81, 64,110, 50,164, 73,138,224, 45,140, 78,144,232, 12, 64,137, 86,218, 66,154,103,208, 34, + 64,170, 0, 33, 2,197,107,129, 34,181, 69, 8, 16, 92, 79,184, 35, 45,108, 0,210,224, 96,157, 67, 34, 5,242,210,162,112, 5, +116,172,168, 6,139,196,121,244, 80, 98, 80, 82, 62,163,210, 9,156, 45, 96,116,194, 38,252, 0,165, 53,164, 15, 48, 74,161,240, + 1, 90, 8, 24, 24, 20,176, 16, 82,160, 28,198, 98, 25,174,146,186,214, 27,120,162,107,121,140,114,139,234,153, 27,206,247, 84, + 19, 68, 55, 54,100,168,219,159,173,162, 96,148,152,199,108,248, 25,114, 14, 12,145, 18, 48, 10,137,210, 20,179, 0, 64, 10,129, + 32,129, 47,127,245, 97,204,205, 47, 49,243,103,109,127,104, 89, 82, 93,157,177,167, 47,191, 22,238,212,169,202,124, 86,214, 44, + 9,245,249,136,105, 67,101, 57,158,138, 17,209,153,229,142,125,117, 19,148,164, 74,132,211, 93, 96,122, 10, 47,122,249, 53,184, +241,187,223,138,239,249,174,215,227, 37, 87,237,199,190,110, 27,139, 46,160, 37, 4,130, 15, 24,148, 22, 67,235, 96,135, 22,139, + 3,139, 97,127,136,194, 5,180, 90, 57,102,167, 91,112,150, 52, 14, 93,150, 72, 76, 2, 39,128,254,176,128,148, 10,221,196, 64, + 6,129,118,158,227,210, 29,211,104, 75,133, 2, 2, 83,153, 65, 30, 4,230,188,195,233,162,192,210, 82, 15, 39, 7,125,188,237, +199,126, 9,223,247,147,223,139, 87, 92,123, 13,186,193,227,254,207,124,153, 36,250,165,211,212,108,168, 44,137,121, 42, 93, 69, +175, 71,255,123, 76,157, 26,153,233, 86,107,111, 43,170, 6, 27, 35,135,112, 45, 53, 80,202,181,247,154,229,146,154,243, 92,118, +213,139,101, 58,140,201,241,168,218,205,150, 51,117,174,202, 33,118, 27, 79, 59, 58,131,169,107, 13, 49,127, 12,243, 34, 71,123, +170,133,169, 36,199,243,206,159,198, 84, 59,193,244, 84,134, 32, 20,180, 81,200,140,134,208, 10, 58,107, 97,110,161,192,241,249, + 5,132, 52,197,215, 29,184, 12,215,126,205,126, 92,188,179, 11,209,206,112,226,244,252,217,165,243, 1, 68, 88,133, 64,114,241, + 5,216, 59, 53,139,227,115,115, 19,174, 42,206,189,198, 51,160,167,129,226,134, 89,221,156,220, 44,237,156,203,118, 27,164,105, +138,221, 89, 11,185,210,152, 77,186,152,201, 58,104, 39, 45,236,200,167, 97,164, 70, 55,233, 80, 77, 16,165,145, 40,131, 84, 39, + 80, 82, 32,145, 18, 25,167,121,182, 76,130, 34, 0,185, 73,209, 50, 25,114, 45,209, 54, 26, 66,105, 40,163, 81,218,192,101,132, +201, 50, 72, 76,239, 28,149,132,150, 53,215,137, 8,128,206, 41,138,222, 58, 78, 19,100, 41, 57,186,205,192,129,169,165,173,206, +156,228,134, 74,138,207, 17,184, 76,119, 44, 30, 21,107,119,184,130, 92, 25,145, 17, 59,191,241, 51, 20,121,200,168,153, 78,160, +116, 63, 97,185,200, 21,107,241,177, 65, 89, 96,103,126, 8, 20, 0,232,237, 89, 50,117,173, 73, 59,108,229,164, 89, 77,181, 49, +157,102,152, 78,219,208, 74, 66, 10, 32, 81, 26,214, 89,116,210, 46,188,119, 80, 10,152,106, 77, 35, 73, 21, 50, 99, 32,132,135, + 18, 20,196, 21, 64,233,109, 74, 10, 88, 91, 82,219,116, 9,104,231,144,115,161,142,196,123, 40,231, 49, 12,142,252,159,222, 66, +120, 65,193,119,222,195,133,152,173, 16,224,189, 67, 16, 26,130,163,180,165, 16, 80, 66, 64, 10, 9, 15,138, 34,148, 66,192, 33, +160,165, 19,244,157, 69, 16, 18, 46,148, 44, 40,176,100, 22, 56,204,119,173,195, 89,247, 7,249, 45,170,103,222,105, 19, 83, 83, +226,204,136,252,232, 48,140,154,156,229,102, 8, 14, 85,148,116, 44,138,144,155,209, 6,117, 66,192, 40,201, 21, 60, 5, 66, 16, + 72,210,148, 2,128, 53, 71,238,198, 90,195, 67,187, 70, 81, 24, 13,119,234, 4, 17, 57,203,117,246,235, 13, 71,226, 28,198,130, + 51, 43,205, 73, 43, 35,109, 60, 75, 43, 38,100,200, 84,184,235,162, 61,232, 25,131,239,127,195,155,241,154,131, 47,199,133, 23, +238,134,181, 1,137, 45,113,186, 95,224,177, 19,115,120,234,212, 34, 78,205,247,113,106,110, 17,110, 88,114,141,131,128,211,167, +230, 81, 14, 75,244, 22,250, 88, 90,234,195, 46,245,176, 48,116, 40, 29, 96, 18,131,197,133, 1,188,243,112, 11, 75,152, 31, 20, +152, 31, 20, 40,157, 69,191, 44,112,122, 48,196,209,165, 30, 22, 6, 67, 28,239,245,240,212,194, 18, 22,251, 67, 12, 6, 5,190, +242,200, 28,238,253,220,231,240,215, 31,254, 27,124,195, 55,126, 3, 46,191,106, 63, 46,127,254, 37,184,255,232, 49, 12,231,230, +184,108, 40,103, 33, 36,154,155,190,248, 42,168,170,180,220,184, 98, 29,146,252,168, 28,233, 4, 99,175,207,243, 90, 81,235,158, +250, 3,252,255,212,189, 89,175,165,217,121,223,247, 91,227, 59,236,225, 76, 85,213, 85,213, 35,217, 77,138,162, 72,145, 14,101, +201, 84, 36, 69, 52, 36, 68,146, 45, 89,138,146, 72,182,128, 36,178,157,139, 36,128,131, 0,185,200,167,200,125,130, 92,229, 19, +228,194,128, 1, 33,130,156,196,144, 5, 77, 16, 35,155,180, 40,138, 17,201,158,187,171,206,176,167,247, 93, 99, 46,214,122,207, +222, 85,221, 93,221, 93, 85,164,232, 13,116,215,116,234,212, 57,239, 94,107, 61,235,249, 63,255, 97,202,105,190,134,237, 30, 30, +163, 77,159, 79, 30, 48,238, 31,231,245,216,133, 76, 35,234, 41,120, 93,212,165, 44, 63,250, 53,231, 88,142,231, 75, 12, 45, 55, + 78, 58,132, 80,244,157,198, 85, 2,251,224, 64, 41,193,229,229,142,111, 94, 93,112,231,153, 57, 47,156,158,210,216,150, 59,207, +220,226,246,233, 13,210, 92,241,214, 59,231,143, 95,216,175,187,198, 76,124,231,138,243,222,146,191,243,106,189,252, 79,142,122, + 85,159, 45,197,223, 92,166,129,166, 16,126, 59, 3,167,179,170, 78,106,192, 42,230,139, 25,115,221,114,214,244,180,182,101,217, + 46,232,181,165, 55, 29,125,211,131,144,244,166,197, 40, 77,202,137,222,116, 52,198, 98,148, 70, 73,137, 20, 26, 37, 21,173,105, + 32,103,150,237,156, 86, 53, 12,209,177,108, 58,230,182,165,211, 22,131,132, 70, 50,230,234,217, 64,220,135,191,124,175, 47, 59, + 83,164, 43,236,173,158,135,109,229, 17,168,253, 62, 74,113, 79,130, 27,199,242,224,114,133,197,242, 52, 94, 43, 99,224,194, 59, + 16,123,153,166,115,251, 44,121,204, 1,115,126,178, 26,142, 31,127,109, 73,117,144,199, 46, 15,172,113, 15,228,149, 19, 74, 48, +133,233,152,138,134,196,248,132, 69, 93, 85,194, 69,223,194,124,129,109,123, 90, 85,230,227,173,214,244,182,131,148,232,154,150, +144, 35,139,182, 69, 43,141,181,170,214,161, 88,116,227,120,148,200, 8,161, 16, 49, 66,244, 88,107,209, 49, 96,115, 68, 74,133, + 26, 29, 34,102, 68, 76,200,148,138, 65, 13, 18,153, 33, 9, 65,139,192,147,174, 27,152, 84,187, 25,173, 12,141,212, 8, 33,105, +149,193, 87,196, 64, 0, 62, 39,172, 50,196, 28,112, 62,178,176, 13,187,232,113, 76, 27,113,178, 58,172,249,213, 31,118,187, 20, + 7,214,167, 79, 75, 22,215,117, 5, 9,201,234,189, 5,118,234,226,174,173, 42,171, 87,253,181,100,164,218, 51,118, 53, 4, 64, +234,122,115, 21,104,163,138, 60, 29, 48, 82,161,181,194,133, 88,173, 79,171, 6, 52,139,162, 25,125,212,248, 65,203, 34,245,154, + 24,165, 74,236, 3, 47, 14,195, 31,166,185,147,200,239,223, 85,154,106,188, 32, 4, 88,203,231,191,240, 89,126,250, 71, 94,230, +159,252,151,191,202,223,255,202,151,249,212, 39, 95,225,159,255,235,127,201, 43,207,127,146,182, 51, 92,109,183,188,123,185,229, +237,203, 45,126,181,101,179, 25,136, 49,193,206,115,113,239,138,203,149,195,111, 3,195,106,195,226,248, 6,166,233, 89,159,175, + 24, 99, 34,141, 25,219,247, 40,165,121,245,219,111,240,206, 91,247,216, 93, 94,241,238,189,251,140,227,136,219, 6,222,124,231, +156, 55,222,190,199,110, 53,178,189, 88,115,117,181,101,187,218,178,186, 92,225,199,196,255,246,191,252,239,165,198,238, 60,159, +249,194,223,162,233, 37,203,227, 57,127,235,179,159,194, 37,207,107, 95,251,102,121,175,142, 22,181,216,214,131, 76, 30,132,140, +184,240,160,245,228,135, 65,114,248,114, 72,136, 3,228,227,129,121,220,199, 41,166, 15,217,182, 10,234,184,169, 22,243, 28, 15, + 72,122,223,207, 78, 51, 61,216,169,107,189,151,169,165,136,216, 57,118, 77,203,172, 49,164,220,112,181,139, 88, 45, 81, 82,113, +111,200, 24, 37,240, 62,112,185, 9,124,245,219,175,242,236,145,226,206,242,152,110,185,224,232,120, 65,211, 24,206,102,115,222, + 22, 35, 87,111,220,127,252,142,113,114, 81,243,142,124,255, 98,127, 89, 74, 21,165,176, 7,177,185,153,167,255, 12,167,209,150, +209,251, 16,151,201, 3,220,244,245,223,111, 11,121,121, 94,213, 26,139, 14,180,164,209, 45,167, 77,203, 51,253, 49,203,238,136, +153,233, 56,153, 29, 99,164,162,181, 51,148,208,244,186, 69,203, 50, 91,159, 53,165,179, 23, 73,160,148, 70,203, 98, 0,102,165, +162,211, 13, 90,107,122,221,163,180,230,180, 61, 42,205,147,212, 8, 4,189,177,232, 36, 9, 42, 49,162,246, 55,181,244,125, 40, +236,147, 99,160, 81, 7, 17,174,213, 95, 34,196,125, 76,174, 86,133,247, 33,216,123,209, 91,189,151,185,169,170,163,215,106,159, +214,168,170, 35,169,169, 35,176, 92, 27, 41, 23,246,223,223,227,162,181, 82, 84,137,117,172, 30, 36,213,128,102,242,190,135,194, + 79, 48,146,235, 67,252, 0,245,123,178,162,110,171, 15,173,109, 97,121, 68, 99, 13,167, 93,135, 17, 10, 37, 37, 70,106,180,210, +228,156,105,180,194, 84,200,202, 72,137,212, 10, 69,164,209, 18, 5,152, 4, 70, 73,148,200,104, 4, 50, 70, 98,206, 68, 63, 34, + 83,198,198, 84,237, 33, 51, 58, 37,154, 92,228,175, 1,129, 65,224, 99, 64, 11,137, 65,178,145, 2, 41, 37, 93, 83, 24,170,141, +178, 52, 90, 97,109, 71,171, 45, 41, 7,180, 54, 24, 33,217, 69, 95,141,110,202,215,185, 9,158, 44, 4, 49, 30, 6,166, 76, 15, +244, 67,130, 90,230, 51,232,151, 37,172,198,213,226,250,164, 16,188,172,139, 39,248,247,122,124, 79, 93,220,212,145, 95,187, 98, + 29, 26, 22,136,122,131, 84,133, 1,111, 5,141,181,132,152, 17, 72, 4, 2, 41, 96, 8,161,106,217,107, 23, 57, 49,180,169,112, +241, 7,117,235,114,210, 63,203,125,242, 82, 22,251, 27,249,225,247, 33, 14,139,124,124, 47, 73, 70, 73,154, 79, 62,207,111,253, +252,127,200,207,124,229, 75,124,246, 71, 63, 69, 99, 53, 43, 23,136,110,228, 19,207,188,192,239,255,225,159,240,226,179,183,217, +109, 3,235,171, 45,171,171, 43,214, 23, 87,172,214,107,194,198,147,145,108, 86,107,118,155, 45, 18,133,146, 13,198,118, 28,205, + 23, 72,105,202,179, 8, 96,173, 37, 68,137,214, 13, 82, 25, 98, 16,196, 24,105,250, 5,218,182,220,127,251,109,182,155, 53,227, +118,195,119,222,120,157,113,179, 97,187, 90,115,113,255, 62,227,176,227,107, 95,255, 43,126,245, 63,249, 13,254,221, 87,255,140, + 63,254,163, 63,226, 19, 47, 61,207,118,181,197,246, 45,159,249,236,167,232,143,150,124,243,254, 5,108, 15, 66, 39,166, 27,248, + 4,249,153,154, 57, 16,252, 71, 43, 34,135,249, 2,211,129,117, 72,240,122, 28, 75,227, 67,251,217, 9, 98,156,230,144, 31,228, + 61,240,180,114, 11, 30, 9,191,107,132,150, 15,232,206,203,254,119,184, 97, 71,238,103, 56, 23,185, 90,101,118, 14,130, 20,215, +145, 5,231, 91,207,235,175, 95,112,255,254, 59, 12,126,199,243,103,183,184,243,236, 45, 82, 74,184,224,112,110, 96,166, 52,127, +121,255, 10,174, 86, 79,167,120, 60,188, 39,174,121, 20, 60,221,226,213,183,229,243, 47,142,203,251,117,116, 90,201,111, 51,184, +253, 12,156,157, 21,147,161,163,101, 41,226,203,234, 7,223, 22, 34,220,141,217,130, 59,139, 37,203,118,201,162, 91,208,105,203, +178, 93,160,132,196, 40, 67,111,122,180,212,100, 18, 74,234, 18,164,149, 5, 70,153,122,102, 75,140,178, 40,161, 48,186,197,167, +192,162,153,209,180, 29,173,105,139, 97,101,202,104,109,104,109, 91, 1, 37, 65,175, 44, 86,103,182, 89,145,235, 94,191, 30,195, +125,175, 94,125, 91, 57, 59, 21, 29,155, 28, 3, 83, 44,197,219,202,189,183,194,228, 27, 34,168,126, 3,149,221,174,204, 62,114, + 54, 23,120, 27, 87, 25,253,147, 68, 47,198,125,231, 31,211, 62,145,116,202,139,143,177,134,155,241,209,160,248, 73, 34, 60,241, + 54, 68,174,193,104,114,111, 46,150,170,181,177, 60,216, 32, 79, 60, 83, 55,186, 22,137,182, 46, 26,203,173,126,137,200, 18,173, + 21, 51,211,225, 98,196,106,141, 68,162,133, 64,107,115,173,249, 47,158, 5,138,150,128, 17, 5,114,215,201,163,132, 66, 40,208, +209, 49,134, 84,102,241,131, 67,121, 7,174, 16,154, 92,240,216, 84, 66, 28, 76, 40,100,185,136, 64, 86,110, 88, 6,180,182, 72, +173, 17, 82,163,165,164,237,218,194,184,111, 13, 50,107, 20, 2, 33, 50, 90,154,242,177, 64,204,137,153,177, 92,142, 59, 98,168, +115,151, 88,175,112,206,191,127,192,253,225,107,113, 82, 28,151, 76,117, 45, 10,225,201,225, 55, 31,202,194,252, 32,147,150,247, + 36, 70,213, 27,176,152,136, 41,213, 53,174, 47, 68, 51, 89, 9, 98, 5,177, 17,244,214,178,157,146,127, 66,222, 91,155, 78, 69, + 60,171,154,158,244,136,220, 98, 43, 15,228, 75,105, 47,231, 57, 36,119, 29, 90,133,190,207, 33,247,236, 79,253, 56,191,244,243, + 63,205,127,252,149, 47,115,124,251, 20,173, 52, 62, 70,222,190,191,226,106,189, 67,187,192,110, 28,121,241,238, 29, 82,148,228, + 0, 42,105,136, 18,163,151, 24,213,113,122,251, 46,253,108,142, 53, 11,158,123,225, 37,186,249, 17, 93,219,161,181,197,197,145, +101,219,210,216,150,147, 27,199,220,185,121,140,182,134,229,124,206,217,141, 19, 78,206, 78,232,102, 75,186,121,203, 75, 47,220, + 70, 53,115,220,214,177,217,238,208,210,178,243, 37, 14,116,189,219, 17,131,231,199,190,248, 89,180,142, 60,255,169, 23,249,194, + 23, 62, 13, 73,112,121,113,206,230, 98,133,178, 45,207,125,242, 5,238,206,123,254,237,159,254,121,217, 39, 20,130, 98,185, 81, + 15,229,178, 55, 62,225,108, 49, 31,204,203,159,212,189, 76, 86,167,143,107,187, 3,177,119,236,154,210, 22,167,206, 48,231,239, + 77, 7, 95,187, 79, 33,229,251,178,251,133,146,101, 31,134,145,171,203,115, 94,195, 51,134,129,232, 10,169,209,197,200,232, 18, +175,189,181, 98,189, 26, 73,110,197,189,237, 37,103,179, 25, 70, 25,150,199, 51, 46,206, 47,217, 12,107, 98, 12,252,197, 95,124, +183, 72, 55,159, 58,216,144, 14,230,156,226,201,231,247,211,179, 49, 61, 44, 79,232,111,158,225,219, 22,110, 28,151, 98,189,152, +195,141, 83, 88, 44,225,228,102, 65,247, 78, 78,145,203, 37,207,158,157,241,204, 98, 65,167, 37, 55,250, 57, 71,109, 79,163, 44, + 55,103,199, 72, 4,139,110, 9, 66, 32,208,116, 77, 15, 57,163,181, 68, 25,131,210, 10,211, 40, 76,211,144, 66, 68,106, 73,219, + 53, 4, 31,177, 74,145, 50,116,218,148,130,222,119, 36, 95, 81, 10,153, 17, 41,227,130, 43, 57, 30,169,228,114, 52,186,101, 23, + 29,163,172,233,144,168,247,111, 84,158, 22,244, 62, 21,236,107,219, 87, 81,214,181,119,101,198,191, 29,202,243,155,144,179,209, +149, 34, 46, 83, 57,191, 91,187,175,194,177,186,225,217,202, 25, 50,125, 81,127,184, 80,205,129,194,254, 74, 58, 65,226, 19,146, + 38, 68,205,136,248, 24,151,225,233, 60, 23, 7, 17,183, 83,108,173, 47, 40,247, 3, 72,221,193, 26,123,252,162,174,116,121, 48, + 71, 61,204,143, 88,206,103,197,214, 85, 40,230,141, 37,198, 72,111,139, 65,135, 86, 10, 37, 4, 90,107,140, 84, 24, 35,145, 57, +210,202,132,170, 51,111, 43, 51, 17,129, 16, 9,225, 67,209,219,239,182,164,209, 49,250, 1,181,115,164, 24, 81, 62,176,168,218, + 69, 19, 83, 33,211,145,145, 66,225,144, 8, 20,201, 88,178,148,196,156, 48,141, 69,169,210,169,182,125,139,214, 10, 35, 13, 34, +231, 50, 75,182,150,144,139,148, 66,107,195, 24, 28, 33, 69,118,185,186,126,185,106,197, 41,100,121,152,143,154, 47,247,243,125, +134,245,118, 91,160, 82, 45,159,112,198,200, 71, 95, 4,147, 79,242,244,163,168,173,243,236,164,228, 33,207,123,178,216,123,180, +199,148, 24,199,128,146,150, 60,214, 46,111,234,214,199,218, 13, 90, 9, 27, 87, 36, 28,143, 42, 46, 42,215,220,100, 81, 46, 1, +211,191,115,109,111,124, 16,105,121,120,200,125,238, 11,252, 23,191,241,203,252,204, 87,126,130,126,185,192,121,143,243, 17,231, + 60, 23,247,175,184,186,119,137,219, 5,118,187,128,209,134, 97,231,217, 92,174,105,237, 12,107, 91, 78,206, 78,185,253,204, 41, +207, 62,123,131,227,101, 79,223,181,156,157, 30,209,180,150, 89,215,114,227,198, 49,243,229, 12,221, 54, 44,143, 22,204,250,150, +166, 85,244,125,195,115,103,115, 60, 18,163, 52,125,219,112,251,198,146,101, 59,195,199,204,243,183,142,121,225,133,187,220,123, +103, 68, 36,193,201,226,148,179, 27,119,184,188,186,207, 59,235, 13,110,116, 44,151, 75, 86,171, 11,134,209, 49,155,205, 32, 11, + 86,235, 13,113, 28,145, 82,241,210,167, 63, 65,219, 89,190,249,245,111,212,141,239,247, 35,147,137, 72,248, 36,235,226,208,223, +253, 73,215,215,100,243, 58,133,154,240,144,111,252,196,149,184,134, 36,229,211, 33,130,190, 31,234,244,126,100,185,131,143, 17, + 57, 67,242,228,119,207,185, 60,191,226,117, 55,242,206,249, 37,140,150,139, 11,199,229,249, 21,227,120,133, 22,153,222, 24,214, +195,192,189,203,203, 18,111,224, 71, 82, 30,249, 63,254,252,235,228, 55,239,125,112,172,242, 19, 23,246, 10,197, 63,141, 78,180, +111,203,136,235,229,231, 65,105,210,201, 49,185, 81,208,245,229,178, 62,155, 21,255, 7, 91, 83, 49,151,199, 60,183, 56,225,133, +197, 49,187, 80, 72,201,119,251, 37,119, 23,167,144, 21, 39,179, 19, 0,206,102,167,136, 44,233,219, 25,182,111,216, 14, 27, 22, +199, 75, 80, 10,171, 45,109,107,201, 66, 33, 99,198,244,197,111, 68, 8,129,170,190, 33,182,209,116,179, 57, 57,229,154,178, 43, + 73, 41,149,166, 33, 69,180,212, 4, 18, 70, 27, 98,136,236,188,167,215,150, 44, 5,187, 84, 27,166, 41,161,240,105,159,143,241, +161,162,151, 38, 43,237, 84, 10,121,172,161, 77,219, 97, 79, 94,157,230,229,136,253,185, 29, 15, 18, 42,167,188,120, 33,246,190, + 12,178,169,112,125, 85, 24,201,131, 70, 38,214, 17,166,146,123,247,184,143,179,183,205,228,172, 55,133,143,229, 3,203,101,181, + 15,221,114, 15, 34,116,143, 87,212,117, 77,151,233, 42,137,171, 43,190,215,183,154, 25,141, 86,164, 84, 34, 79,203,108, 69, 34, +165,196, 42,131, 18,178,160,186,201, 51, 83, 2,171, 36, 86, 22, 35,215, 32, 5, 45, 16, 93, 33, 42,177, 25,112,110,100,187,219, + 18, 71,143,242,129,185,139,100, 33, 8, 46,211,139,253,244, 77, 10, 67, 20, 18, 33, 53,209, 90,132,182, 72,221,208,216,134, 36, + 20,166,181, 24, 85, 50,150,149,210, 8, 5, 50,171,218, 13, 58,164,208,248, 88,194, 32,124, 12,228, 12, 67,240,196,213,102, 47, + 33, 10, 97,127,107,123,212,124, 57,228,210, 89,239, 66,145,244, 76, 11, 74,126,143, 10,251, 52, 91, 59,156,189, 78,133, 61,213, +188,120, 97, 75,172,226,102, 87, 96,248, 41, 87,184, 46,178,236,253,126, 33, 6, 95, 55, 89,173,214, 62, 21,199,183, 71, 29,224, +211,124, 49,186,210,221, 77,112,243, 52,251, 61,244,255,158, 66, 24, 62,245, 57,126,253, 87,190,194, 47,255,226,207,240,220, 43, +119, 73, 33, 97, 26, 69, 74, 2,183, 26,217, 94,109,217, 94,108, 8, 33,145,178, 68,209,208,181,115,102,253,146,103,158,185, 69, +107, 27,148, 52,244,139,142, 69,219,209,181,134, 70, 25,206,142,103,220, 60,233,121,241,108,198,173,147,158,190, 85,204, 91,201, +173,163,150,121,219, 48,159,181,196, 44,232,117, 25, 17,205,172, 34,132,132, 16, 18,171, 20,243, 89, 67,107, 13,202,104,110, 46, + 58, 62,249,210, 29,206,135, 68, 51, 91,240, 35, 63,244, 50,219,171,128, 74,158,191,190,119,159,133, 49,204,218,142,221,176, 67, + 37,201,108, 62, 71,105, 93,247, 90, 66, 54,150, 23, 63,245, 18, 9,193,119,190,241, 87,213, 86, 50, 87,253,122, 53, 56,250, 65, +121, 29,242, 51,200,251, 98,212,204, 75, 39,104,186,253, 40, 74, 60, 20, 68,241, 52,214,245, 67,190, 11, 31,106,245, 58,113, 52, +142,230,132,113,203, 16, 70, 98, 26, 9,126,133,206,146,171,225, 62, 34,134, 2,185,103,135, 79, 9,231, 6,190,254,250,119,249, + 55,111,191,201,230, 91,247,224,242,252,233,146,210,228, 83, 30, 75, 52,182,140,182,142,142,225,249,103,160,237,120,246,238, 93, +152,117, 4,221, 34,102, 11,178, 52,165,144, 43, 1,205, 81, 57, 15,155, 5,167,182, 65,234,150,147,217, 17,183,250, 30,135,161, + 21,154,174,105,176,202, 50,107, 58,180,212,232,166, 67, 55, 10, 25, 5,203,147, 35,226,224,104,154,166, 20,110, 18, 70, 20, 8, + 62, 19, 80, 20,254,147,212,178, 4,107, 41, 10,177,217,104, 16,145,228, 35,155,113, 75, 14,129, 32, 18, 42, 75, 92,116,197,206, + 59,102,124,114,168,154,131, 30,181,192,249,186,158,198,167,200,134,159,210,207, 38, 98,170,213,251,117,173,196, 94,213,100,212, + 30,113,158,136,188,215,166, 57,105,207,121, 17,178,156,159,147,183,123,206, 5,158,143, 53, 54, 86, 86,200,126, 24,203, 30,137, +190,120,225, 7, 95, 57, 70,149, 91,165,244,199,191, 4, 79, 35,182,148,246, 36,217,107, 53, 76,222,171, 96, 30,122,118,143, 87, +212,167,194, 97,139, 55,240,252,236,132, 83, 59, 35,103,129, 84,146, 70,119, 24, 89,188,217, 5,146, 70,149, 25,186, 36,161,100, +198, 2, 70,100, 90,163,201, 34,161, 82, 66,229,140, 27, 7,164,143,228,209,179, 27, 7,196, 48, 96,119, 1,231, 10,244,174,146, + 64,103,232,180, 66, 43,131, 82,154,166,159,163,219, 30,154, 30,219,206, 80, 77,139,210, 6,217, 54, 8,107, 16,170, 28,222,212, + 57,187,136,197, 59, 62,196, 2, 9,133,156,137, 41, 33, 37, 92, 13,107,148,210,132, 16, 56, 31, 6,178,168, 93,167,243, 92,167, + 2, 61,106, 62, 22, 83,185,249,143,110, 95,208, 15, 33,104, 25,247, 48,230,211,218,252,211,141, 78,214, 64,137,201,207,123, 90, +176,153, 98,107,170, 39,248,169,118, 91,177,194, 66, 62,148, 13,144,235,101, 68,169, 26,180, 80, 25,150,155,243, 42,135, 10,143, +247,181, 77, 48,243, 4, 35, 29,189,200, 47,252,202, 79,243, 15,126,249,103,121,233, 51,159,192, 54,138,237,214,177, 27, 60,227, +214, 51,108, 71,220, 48, 18,156,199, 59,143, 18,150,229,226,132,179,179, 19,102,125, 75,223,155, 26,234,163,176,157,162,177,138, + 89,103, 88, 54,134,219, 39, 45, 39,139,158,190,105,144,170, 32, 38,157,149, 44, 91,141,150, 2, 37, 10,145, 42, 35,171,202,162, + 32, 8, 82,194,141,133,165,111, 20,189,213,228,148,139,188, 13, 73,215,104,158,187,125, 66,210,154,148, 51,139,229, 49,199,167, +183,136,235,129,111,191,243, 22, 86, 75,164, 84,188,179, 94,209, 40,193, 48, 14,228, 24,177,218,144,147, 68,104,205, 75,159,124, +129,115, 63,240,206,119, 94, 43, 93,194,118, 34,211, 72, 30,116,188,248, 1, 40,236,135, 23, 67, 83,209,184,190,169, 7,159, 46, +107, 68,240,224,200,231, 73,215,242, 7,196,179,126, 96,178,218,100,137,125,243, 6,159,249,212, 43,124,254,149, 31, 98,217, 88, +132,202, 92,172, 46, 25,253,150,139,221,134,215, 46,239,145,200, 24,101, 24, 82,224,171,175,191,205,155, 95,255, 14,187,111,125, + 7,214,171,167, 88,208,167,129, 41, 79,199,163, 98,130,218,103,115,184,123, 11,158,191, 13, 55,110,243,195, 55,158,229,164,233, + 72, 8, 62, 57, 63, 98,200,176, 52, 13, 27,219, 86, 6,182, 0, 59,227,110, 55, 99,214, 20,227, 36,163, 53, 74,104, 22, 77,139, +233,122, 22,182,135, 20,176,218, 34,164,161,237,117, 33,189,117,109, 49, 8,155,119, 53,147, 71,163,107,231, 77, 74, 72, 36, 89, + 56,132,148,165, 54,250, 34,215,146,178, 36, 18,134, 24,137, 68,164,128,221,232, 17, 66, 34, 73,228, 36, 24,115,153, 1,207,187, + 25, 91, 55,208, 54, 13, 90, 40,118, 58, 19, 69, 77,134, 20, 21, 9, 18,117,205, 61, 14,194,209,216,154, 36, 57,117,205,181,169, +240,149,196, 54, 89, 11, 78,222, 15,177,234,208,243, 4,207,219,189, 29,110,136,181,121,173, 99, 40, 37,106,167, 47,170,172,172, + 6,206,104, 85,246, 68,223, 22,102,189,209,133,100, 42,171,213,110, 62,200, 13,120,156,189,114,120,129,158,198,151,249,176, 99, +127,239,231,124, 60, 71,185,201, 54,112,110, 97, 54,199,231,140,173,118,121, 11, 91,102,233,160, 80,178,204,174, 11,153, 60,160, +149, 32,197, 68,223,154,226,176, 56, 56,176,170,100,159,123,200, 33,226,134, 1,225, 60,202,143,196,171, 13, 73,104,244, 54, 16, + 20, 12, 10, 90,161,217, 24,133, 54, 22,213,119, 68,221,210, 88,131, 64, 18,117,233,250, 11,244, 92,159,171, 12, 56, 38,213,151, + 32,235,162, 3,179,157, 98,220, 66,171, 52, 49, 6,182,206,211,155,134,149,171,198, 20,147,233, 73,160,204,100, 92,101, 41,199, +244,225,102, 18, 70, 86,143,225,201, 91,187,158,221,170,125,240, 25, 62,169,125,228,161, 22,252,240,247, 66,216,235,197, 1,220, + 37,232,227, 98, 60,147,124,149,172,181,123, 7,167,139, 77,249,179,144,247, 30,206, 91,247, 24,201, 24,239,243, 58,112,229,250, +185,255,252, 87,248,210, 79,253, 24,167,167,115, 98, 74, 92, 93,142,172,175,174, 72, 41,145, 35, 24,221, 18,182, 1,163, 91, 8, + 13,253,201, 13, 78, 79,230, 88,107,232, 27,203,124,102, 9, 33,147, 17,228, 36, 80,141,100,102, 44, 11,107, 80,100,156,139, 8, + 60, 66, 42, 92,128,139, 77, 34,101,207,172, 73,116, 86,178, 13,133, 21, 93,136,183,138,227,121, 33, 77, 22,133, 77, 66, 43,113, +157,227, 81, 87, 11,222, 39,122,107,248,210, 75, 55,216,141,129,123,219,200, 38, 30,211,205,231, 12,191,251, 59,136,148,137, 34, + 50,134,192,197,234,138, 69,191,100,244,145,198, 59,210,213, 21,110,216, 50, 63, 57,226, 23,126,254, 43, 92, 13,142, 87,255,228, +223, 61,232,155,126,237,199,249, 3,242,234,219,253,177, 48,173,143,113,138,118,116,149, 91,193,131,133, 75,235, 39, 91,199, 47, +127,178,116, 84, 95,255,198,251, 79,119,106,164,106,174, 26,222,137,127,214, 62,115,131,163,217, 18, 45, 21, 39,203, 99,186,174, + 33,249,196, 27,151,111,113,181,115,220,219,236,120,103,187, 99, 27, 61,241,254, 21,249,114, 11,227,138,252, 52, 45, 91, 63, 40, + 47,254,113, 29,197,160, 6,170,204,225,185,103,224,248, 4, 22, 55,144, 41, 51,235,231,184,221,154,231, 23, 55,184, 55,172,249, +100,211, 48, 2, 23,227,200,168,138,177, 80,223, 52,244, 70,163,133,198, 54,246, 90,154, 37,181,166,207,145,224, 29,182,233, 49, + 66, 33,165, 68, 38,137,238, 44, 70, 78,254, 4,245,172, 84, 16,115,192,200, 76, 96, 36,185,128, 18,153,156, 51, 46, 4,148, 46, +197,114, 28,124,149, 84, 41, 98, 40,157,173,173,166, 72, 67, 8,100,114,137,191,214,154, 24, 35,103,179, 35, 6, 63, 98,103, 22, + 45, 19,219,214,242,154, 53,165,136,174,135,114,238, 68, 87,214,216, 48,124,188,181, 53,186,125,231, 45,168, 49,218,181,171,138, + 53,143, 93,213,220,249,105, 29,155,154,111,161, 36, 12,235,178,254,213,129, 45,179, 79,251,153,121,116,160,230, 69, 17,116,237, + 70, 23, 10,154, 69,216, 59,202, 77,254,239,147, 10, 73,233, 58,210, 10, 31,127,191, 60,198,250,209,143,189,136,219,166, 20,170, +182,199,100,129,243,129,163,118,142,139, 17, 33,202, 77, 38,166,128, 50,134,144, 19,173,210,132,156,232, 40, 48, 88,223,116,104, + 50,209,121,164,146,248,237, 64,151, 33,248,192, 48, 12,100, 23,138,174, 63,120,140,173,174,117,141, 33, 54,179, 66, 24, 94, 30, + 99,154, 22,225, 61,169, 53, 40, 36,194,103, 98,215,209,166, 64,142,137, 36, 5, 86, 52,100, 34, 49, 70, 50, 9, 33, 53,201,101, +132, 40,209,167, 46,122, 2, 17,169, 5, 4, 69, 78, 1,143,195, 40,205,104,106, 96,193,218,239, 31,112, 76, 31,242, 6, 76,179, +210,112, 45, 93,188,246, 48,158,126, 93,174,244,213,204,224, 9, 11,166,169,129, 3,138, 7,201, 69,215,240,169, 45,115, 35, 29, +247,213,170,213,133, 32,212,232, 10, 37,197,226,209, 28, 14, 32, 97,107, 97, 92,237, 55,200, 19, 28,222,127,231,151,127,142, 47, +255,228,151,185,243,252, 41, 66, 10,134,157,103,125,181, 99,115,181, 65, 90, 89, 70,143,187, 17, 47, 18, 18,205, 51, 55,158, 69, +105, 75, 99, 53, 90, 9,140,209,204,122, 91, 46,216, 25,130,243,180, 70,176,104,203, 72, 39,230,196, 16, 51,110, 40, 12,126, 37, + 5,163,203,220,219, 4, 66,138, 88, 85, 51,134,180,198,167,196,213,170,100, 3, 68, 41, 8, 49,211,233, 4, 99, 66, 38,104,218, +226,182, 55, 84,114,103,204, 25, 25, 50,198, 20, 68,160,239, 90, 98, 18, 60,183,236, 80,252, 60,175,126,251,187, 12,155, 21, 62, +254, 53, 62, 58,180,182,164, 48,226,130, 39,196, 64, 8, 22, 55, 6,110,189,112,155,223,252,213, 95,226,127,221, 69,174,190,250, +141, 18, 82,225, 63, 42, 29,246,251,244,106,108, 53, 85,169, 95,151,169,135,223,122,245, 96,184,201,212,209,103,158,138,167,249, +115,119, 79, 57,233,230,252,249, 67, 69,189,228,123,132,253,207,107, 65,159, 32,205,219,139, 25,183,207,110,113,111,125,206, 11, +183,110, 35,141, 33, 69,143,209,207,208,154,134,119,183,107, 86,247,207,201,110,132,243,119,159,110,142,193,163, 10,250, 7,125, +172,109, 11, 55,229,131,158, 89, 99,203,236,252,198, 41, 60,247, 44,116,115,152, 29,131, 53,204,133,102,235, 29, 11,211, 50,132, +128,160,152,141,188,189, 94,177,176,109,137,170,165, 40, 57, 0,146,146, 92,121,207, 51, 77, 71,163,138,103,135,167, 40,128,112, + 35,130,140,214,138,182,107,139,202, 32,101,180,149,132,209, 87,115, 67,135, 38,144,180, 71,187,128, 19,174,120,128,120,143, 68, + 16,125,198, 79,173,111,146,196, 93,177, 97,142, 42,161,133,100, 23, 71, 90, 93, 28, 33,165, 44, 73,153, 90, 40,148, 46,210, 10, + 33, 51,164,142, 16, 2, 47,158,157,114, 62,236,216,180,150,232, 28, 92, 14,123,203,241,237,199,136,166,158, 26,153,107,187,214, +169,177, 58,144,109, 74,189,183,168,181,128, 59,184, 97,247,237, 62, 5,239,176,176,167, 74,134,155, 92, 31,175,155, 40, 11,210, + 85,219, 86,246,204,119,113,112, 78, 78,249, 28, 57,237, 77,196,198,239,237,216, 77, 63, 86, 33,105,219,186,233, 45, 56,199,209, + 98, 73,175, 53,224, 17,162,197, 84,200, 64, 73,141,243,158,214,180,196,232, 81,253,131,246, 16, 0, 0, 32, 0, 73, 68, 65, 84, +100,108, 83,158,174,115, 35, 70, 74, 84,202,152, 4, 94, 25,216,172, 8, 33, 96, 98, 68,133,132, 19, 13, 93, 83, 35, 82,173,102, +222, 22,189,228,242,228, 4, 21, 50, 62, 38,236,124, 86,130,128, 98, 66,180, 22, 81,137,108, 66,107, 76,166, 44, 38,138,214, 47, +186, 18, 50, 32,200,120,231, 16, 82,144,210, 30, 82,119, 57, 20,163,154, 12,173, 86,140, 94,237, 45, 14,145, 31,173, 83,159, 10, +187, 72,251, 91,227,245,162,227,193,159,123,249,228, 93,206,132,239, 75,185,191,113, 30,190,173, 74,150,247, 43,172, 96, 88,192, +162,169,193, 3,166,116,230,187,117,245,231, 30,203,223,247,169,166,136,141, 15, 6,133, 60,198,215,217,255,248,151,248,205,175, +252, 36,175,124,246, 69,180, 16, 12,206,227,198,192,250,114,139,119, 14,100, 41,232,243,126,129, 93,156,210,116, 45,120,137, 66, +211, 46, 12, 90, 72, 78,102, 22, 99, 20, 18, 65, 99, 52, 33, 43,206,179,192, 71,207,189,181,195, 84,147,157, 88, 67, 37,118,222, + 19, 66, 68, 68, 65,200,137, 97, 72, 12,163,103,116,145,229, 92, 23,232,190,149,184,109, 96,187, 13,132,172,104,231,134, 35,147, +203,218, 89, 11,180,146,244,141, 37,228, 98, 78,180,146, 30,163, 36,125,163, 88,180, 2,107, 53,214,104, 62,247,210, 13,142,102, + 13,247,239, 95,113,118,235, 22,171,139, 43, 94,191,255, 29, 70, 31, 72, 49, 34,149,192,168,128,237,122, 46,238,157,243,236, 75, +119,249,167,255,217, 47,241, 63,255,241,215, 14,230, 50, 63, 64,175, 36, 31, 66,146,216, 75, 27,167,174, 93, 60,253,127,246,213, +223,251, 3, 94, 61, 44,126, 7,200, 83, 70,151,194,174,245,117, 65, 23, 49,145,149,228, 91,111,190,195,173,217,155,220, 62,189, +137, 80,146, 24, 61, 57,192, 24, 2, 55,150, 71, 44,187,150,203, 55,222, 46, 33, 34,181,160,231,167,253,197,219, 26,142,180, 27, +247,197,226, 48, 20,228,250,251,234, 42,130,215, 66,120, 40,149,208,216, 2,253,206, 58, 56, 89,194,209,188,116,119,214, 22, 18, +150,131,165, 21, 32, 21, 66, 55,100,183,229,184,155,227,134, 45,207,119, 45,247,124,224,221,114,147, 39,137,140, 53,134,133,181, +116, 82,179, 11,142, 99,219, 97,155, 6, 17, 18,222,121,164, 84, 28,213,156,116,165, 37, 90,203, 98,171,225, 3, 86, 11,162,247, +228, 16,144, 58, 34, 6, 79, 34,163,165,160,217, 57, 6,145, 49, 25, 84,140, 5, 89, 22,130, 81,149,102,167,164,149, 54, 64, 98, +209,204, 8, 57,162, 77,195,224, 6, 90,101, 65, 39,134, 16, 88,116,115,188,223,146, 77, 67, 59,151, 92,185, 45,189,130, 43,173, + 88, 55,154, 75, 20,116,177,248,196,115, 5,222,194,246, 67,146, 28,141, 45,163,207, 41, 43, 33, 38, 16,110, 47, 3,155, 80,211, + 36, 30,156,233,216,218, 88,185,170, 77, 23,178,188, 23,227,186, 28,163,186,173,118,178,117,180,106,218,189, 95,188, 60,104,208, +166,189,108, 38,127, 18,185,255,185,146,123,118,253,211, 64,182, 62,228,245,241,103,234,186, 90, 94,246, 51,232, 91,154,147, 37, +189,210, 88,109,144, 66, 32, 69, 38,229, 76, 66, 84,189,122, 33, 7,168, 12,157, 76,184, 16,233,148,196, 20, 80, 8, 13, 40,165, + 80,126, 68,198,132,218,185, 50,178, 72, 96,148, 38, 26,141,233,122,218,182, 67,219,134,182,159, 97,140, 65, 90,131,182,134, 76, +174,188, 7, 77, 32,147, 83, 38, 73, 93, 33, 39, 73,200,165, 99, 79, 66,236, 51,147,153,204,190, 34, 57, 70,198,228,240, 62, 16, +115,172,235, 33,177,141, 99,241, 94,113,174,144,155,166,212,182,195, 44,229, 15,155, 77, 78, 86,131,217, 23,164, 97,210, 1,123, +246,176, 80,240,143,121, 29,211, 7, 26, 99, 5, 97, 44, 24,191, 63, 96, 67, 47,102, 69,191,106,155,114,156,185, 80, 14, 55, 31, +202,247, 18,135,242,119,198,106,103, 56, 86, 61,101, 13,122, 33,133,247, 18,241, 62,162, 70,249,215,127,251,183,248, 79,127,237, +239,114,231,185,155,184, 49,224,124, 32,250, 92,127,140,215,211, 7,133,225,120,126,196,114, 54,227,246,209,146,153,109,144,173, +194, 72,197,162, 49,204, 90, 85,227,196, 19,228,204,106,235, 24,221, 8, 34,147,125, 34, 10,193,213,182,132,183,196,152, 89,175, + 2,171,171, 29,231,235, 45,187,221,136, 15, 30, 31, 18, 82, 72,238,189,189,226,222,102, 7, 17,108,149,151,197,224, 8, 89,113, +113,233, 25,131, 99,244, 17, 55, 70, 92,242, 16, 51, 65, 8, 4,146,205,224,184,220, 56, 70,159,153, 55,146,209,121,180,146, 44, +250,134,219, 55, 23, 28,157,206,249,196, 11,183, 16,237, 2,171, 90,124,101,192,175,118, 91, 72,145, 70, 23,111,128,103,159,191, +193, 23,126,234,111,243,175,127,231,255,225, 7, 38,236,227,129,179, 73, 87,230,239,100,184, 84, 11,162, 76,188, 71,103,246, 81, + 15, 38,253, 1,247,151,135,127,127, 42,232,170,234,135,167,249,103,101, 49,139,201,135,161, 22, 77,177,139, 92,244,130,190,230, +141,183,166, 97,181,185, 66, 10, 88,239,182,252,233, 95,125, 23,222,126,245, 26,181,122,234, 5, 93,214,180,182,182,219, 95,124, +212,193, 65,158,115,189, 40, 85,207,110,161, 32, 12,251,125,212, 90, 80, 29, 28, 31,149,196,191,163,121,209,149,119,109, 41, 38, + 85, 1,137,110,176,148, 68,202,165, 44,137,131, 34,122,174,124,160,201,145,123,110,199,102,220,128,223, 33,117,135,147,154, 59, + 93,135,149,130,101, 99, 48,213, 67, 66,213,128, 43,163,138,217,212,188,183,215,130, 20, 50, 37, 60, 43, 71,114, 12, 5,132,168, +118,221,132,136, 30, 35, 65, 75,172,143,200,154,149, 33, 43,129, 75,138,124,205,229, 82, 70, 99,164, 68, 91, 67,219, 24, 18,169, +152,125, 9, 16, 66, 48,239, 91,156, 27,232,172, 45,102, 66,100,230,182, 37,166, 80, 56,181, 89,149, 99,218, 10, 98, 18,251,140, +243,198, 22,136,254,144,179,112,152, 45, 17,124,173, 77,121,111,216,162,197, 94, 58,145, 39,130,167,170,103,220,193,251, 56,212, +226, 63,233,190, 85,174,246,220,186,202,200, 84, 33,185, 54,181, 97,138,197,116,168,196, 40,155,242,107,217, 84, 50,221, 52,163, +143,229,189,119, 99,181,205, 86,149, 53,175, 31,207, 79,226,123, 90,212,219,190,232,109,251, 6,164, 70,181, 13,141,177,204,141, + 65,203,150,156, 34,141,105,176, 82, 19,146, 71,150,119,147,148, 2,141,132,133,166,116, 49, 66, 98,115, 70, 33,203, 51,244, 9, +147, 37, 42,122,162, 75, 88,109,112,198, 34,155, 14,211,207,104,141, 69, 89, 75, 59,235,137, 62,162,171,183,176, 8,177, 20,108, +169,145,100, 66, 77,132,147, 2, 54,209,163,108, 49, 70,201, 57, 18, 67, 66, 8, 65,140,169, 64, 72, 57,227, 98, 32, 36, 79, 68, +144,147,199,167,226, 74, 23, 83, 34,196,136,159,152,141, 83,210,148,143,133,240,246,145,141,187,210,158, 85,169, 38, 39,162,218, +169,167,248,152, 33, 5, 15,221,244, 98,253,122,140,173, 70, 7,213, 47,190, 95,212,244,188, 74,216,112,187,253, 92, 52,135,122, + 1,136, 48, 78, 58,244,176, 95,116,250, 33, 22,253, 20,245,247, 33, 68,160,230, 63,248, 18,255,245, 63,254,135,124,241,203,159, +195, 24,205,110, 44, 33, 7, 41,102,178,200,164,148,137, 33,145,131,164,177, 29, 55, 79,110,240,220,233, 41,203,197,140,227, 69, +139, 80,146,155,139,142,219,199, 29,157, 45,220, 8, 33, 96, 51, 68, 86,131, 99,227, 28,187,157,199,187,192,198,123,214,235, 29, +219,245,200,229,197,150,132, 33,197,196,118, 51,224,119,142,113, 23,217,173, 71,132, 78,197,215,223, 39,148, 22, 8, 13,227,110, + 96,116,158,205,122,139, 31, 28, 62, 10,182,155,145, 97, 28, 9, 33, 51, 14,129,245,214,177, 25, 60, 46, 41,114, 78, 4,239, 25, + 35,228,156,104,173, 40,121, 29, 25,122,173, 88,180,154,101,111, 89,246, 51,238, 62,123, 11, 59, 59,226,232,228,140,123,111,191, + 77, 12,145,166,177, 37, 60,207, 71, 94,120,225, 25, 62,255,147, 63,198,239,255,206,239,253,128,117,234, 53,255,122,146, 25,197, +176, 15,220, 73, 60,126,184,134,212,123,183, 51, 93,198,104,197,146, 51,188, 23, 62,133,189, 52, 72,215,131, 86,213,208, 27, 33, + 30, 44,236,126,196,125,231, 77, 94,253,206, 95,241,141,237, 21, 89, 57,122,107,113,206,241,199,175,127,135,237, 55,191, 5,126, +252,224, 98,254,137,151,249,244, 79,124,145,123,127,245,215,143,184,121,124,200,243,154, 46, 67,227,184,151, 80, 93,187,140,229, + 3,195,160, 90, 8,164, 44,207,162,105,192,206, 74,103,222,218, 18,176,210, 54, 85, 45,162,202,254, 77, 19, 81, 42, 17,108,203, + 11, 77,135,200,145,224, 7,124,138,164, 48,144,220,142,239,110, 86,228,113,139, 80,154,185, 2, 77, 65,152,132,182,180, 53, 23, +192, 72, 69,140,137,166, 51, 52, 2,102,115, 83,199,203,213,252,171,250, 83,229,148,209, 58, 33, 82,113,238, 36,102, 68, 12,228, + 24, 80, 49, 34,114,177,162,176, 2,180, 80, 64, 68, 8,137,110, 44, 70, 91, 76,107,208,141, 65, 27, 77, 22,208, 54, 77, 33, 76, + 75,129, 49,138, 24, 35, 93, 91, 96,247,242, 22, 75,188, 31, 49, 82,145,115,105,150, 78,187,142,251,195,128,106, 44, 81,203, 26, + 21, 61,141, 53,171, 23,186,182,149,116, 60, 49,217, 15, 50,237,179,219,155,183,196, 74, 98,156,194, 46,114,189,156, 38,202,179, + 14,126,239,177, 46,155, 82,208,175,199, 52,182,172,215,144, 10,154,137, 40,223,188, 16,123,189, 58,147,180,211,151,117,234,170, +211,155,169,121,244,166, 58,212, 81,211, 47,197,247, 62, 11,224,227, 21,245,190,173, 48,146, 41, 55,167, 89,143,178,134,179,174, + 47,129, 43, 74,208,155,142,148, 19,137, 92,154, 84, 33,144,100,218, 28,208, 57,128,200,180, 82, 33, 82, 36, 42, 69,147, 74, 97, +143,128, 30, 74, 81,237, 81,120,173, 80,243, 57,182,105,208,198, 18,148, 98,214,119,228, 24,209,173, 37,197, 90,144,116,177,129, +117,209,147,140, 33,121,143, 19,137, 49, 6,100,134, 40, 37,161,250,121,103, 37,137, 62, 84, 87,191,120, 93,184, 5,144,235,131, +207, 41,226, 98, 66,145,145, 66,176,217,212, 52,171,237, 88,180,222, 34,215, 91,216,227,220,236, 15,108,103,227, 19,144,228, 14, +217,237,135, 63,159,244,138,105,138, 91,181,101,145, 42, 85, 10,248,110, 40,139, 55, 84,134,168,171,172,244, 84, 11,119, 99,247, + 16,209,116,112, 79,183,225, 84,103, 85,227, 7,155, 69,156,254,228, 79,240, 63,252,246,175,242,210, 75,119, 42,241,180,204,187, +189,247,140, 33,226,118,129, 97,240,108, 46,183, 24,221,115,243,198, 45,158, 61, 61,225,232,168,165, 51,166,146, 67, 51,179, 70, + 33,165,192,197,200, 16, 51, 99,130,245,198,115,126, 57,176,221,121,134,209,179, 90, 13, 92, 93,110,217,172, 6,182,187, 1, 63, +122, 98, 78,108,199, 80,188,222, 47, 7,156, 27, 8,209, 17,125,201, 5,200, 62,161,148, 34, 69,201,102,181, 69, 74, 65, 74, 25, +183, 29, 24, 54, 35,155,203, 17,183,113,184,113, 96,231, 29, 41, 4,182,155,145,113, 44, 23, 9,171, 4,189,145,236,198,136,208, +146,152,114,229, 33, 85,243, 36, 37,105,172, 98,222, 27, 94,188,121, 68, 63,155, 33,237,156, 20, 5, 73, 4, 4,138,144, 18,219, +209,113,231,217, 51, 62,247, 19, 63,206, 31,252,159,255,247, 15, 86, 97,143,213, 1,239,253, 2,119, 30,231,101,236, 62,170, 52, + 85,130,230, 24,203, 33, 60,107,246,100, 35,173,247,178, 34,216, 39,103, 77, 45,182,172,126,245,213,212, 67, 92, 27,238,212,175, +115,181,227, 45,231,249,230,219,111,241,205,183,222,100,251,221, 55,201,227,250,209,223,195,122,197,223,254, 59,255, 17,183, 62, +253, 9,190,251,141,111, 60, 30,107, 93, 86, 5,201,244,181,235,135,252,248,167,203,178,214,165,136,207, 23,176, 60, 65, 30, 31, +145,151,179,131, 44,123, 85,138,130, 82,251,142, 51,133,210, 68, 9, 65,204,137, 24, 60, 97, 92,211,165, 76,218, 94,208, 4,199, +184,189,226,221,237, 10,198, 1,225, 7,192,243, 66, 51, 99,214, 47, 57,178, 13, 90, 74, 66,202,215, 33, 44,157, 22,116,115,195, +220, 42,218, 70,162,165,160,111, 37,186,122,150, 79,118, 4,201, 23,110, 74,218, 13,197,139,127, 8,197,162, 59, 23,200, 93, 9, +137,105, 12,198,180,216,182,197, 54, 22,213, 53, 40, 99,139, 47,137,181, 40,169,200,185,204,238,181, 42,132,232,198, 54,196,224, +209, 82,212, 16,180,132,175,239, 81, 18,197,253,115, 32,176,108, 91,132, 20, 8,163,112, 86, 22,228,176,235, 10,218, 41,227,158, +137, 46,170, 13,172, 72,117, 92,193, 94, 97, 20, 40, 5, 53,199,189, 93,175,212,165,232, 83, 73,193,147,235,219, 48, 22, 79, 14, + 95, 47, 9,186,202,214, 68,222, 7,124, 9, 91, 85, 32, 84, 51, 25, 81,244,233,169,218, 2, 79,151, 58,173,170, 11,103,189,236, +153, 74, 88,252, 62,116,233, 31,175,168,107, 93, 61,190, 21,204,106,234,143,214,204,103, 51, 52,146,185,181, 37,214, 84,148,141, + 55,201, 34,148,128,144, 3, 46, 7, 22,178, 60,160, 46,139,210, 77,231,140,164,108, 36,149,138,180,204, 38, 81,162,110,109,135, +237, 59,178,178,100, 37,209,198, 48,166, 64, 86,229, 96,148, 36,164, 54,136, 24,217,230,136, 82, 18,231,194,117,198,201,232, 61, + 89, 22,214,189,203, 9,157, 82,129,226, 67, 34,197, 2, 31,249, 80,224, 31,159, 28, 32, 8, 49, 17,115,192, 42, 69, 22,153,115, + 63, 98, 90,131, 27,171, 94,209,213,212, 41,255, 4,126,209, 79, 18, 35,120,248, 94, 72,249,224,165,224,176,184, 79, 9, 91, 50, + 23,107, 67, 31, 96,187,131,113,183, 47,212,147, 43,216,195, 29,255, 3,159, 99,234,212, 39, 56,182,182,108,215, 16,252,190,187, +249,217, 95,255, 69,126,235, 31,253,125,142,230, 61, 87,155, 29,219,245,192,110,112,108,119,158, 24, 51,195,102,100,183, 25,136, + 46,161,153,243,204,157,103,248,220, 39,110,114,231,164,165,181, 6,231, 19,177,118, 96, 62,129, 71,178,118,137, 55,223, 90,113, +117,185,101, 61, 4,134,144,216, 14,158,205,122,199,230,202,177, 91, 15,248,224, 24,183, 3,193, 7,198,113, 32,120, 71,116,129, + 24, 3, 57,149,241, 71,172, 58,252,148, 34,195,110,199,118,189, 99,216,141,172,207, 47, 16, 66,225,156, 35,249,177, 34, 53,144, +115,196,143, 14,165, 53,195,232, 10, 23, 67, 70,164, 80,180,179, 98,173,235,198, 72,211,106, 6, 95, 80, 39,170, 92,174,240,199, + 4,141, 49, 40,173,137,178,229,153,219, 55,217,110, 3,110,216,161,219,134, 97,189, 97, 12,137,231, 94,184,201,115,159,248, 36, +127,246,251,127,244, 24,216,245,191, 7,175,105, 86,220,170, 50,119,182,109,145,136,118,179,122, 24, 86,242,230, 4, 89,155,169, +176,137,125, 65,159, 58,225, 44,246,168,209,251, 25,238, 72,138,229,235,197,101,249,111, 28, 74, 33,248,160,103,167, 75, 44,232, + 55,183,107, 94,190,243, 44,127,253,245,175,239, 33,245, 71,237,205,198,150,175,185, 53,123,100, 97,114, 15,211, 15,141, 39, 38, +253,179, 86,165, 11,188,121,198,252,120,206,252,120,206,216, 88,178,177,213,209, 44,214, 17,218, 65, 54,192,100, 87,154, 98, 41, + 60,227,134,237,184, 97,117,117,159,221,246,156,215,238, 95,225, 55, 87,188,182,170, 5,189, 85, 28,205, 58,110,182, 61,199,205, +156,214,182, 40, 37, 64, 89,186,156,176, 82,211,181,146,229,204,208,181,197, 0,108,222, 42,186, 86, 33, 98,194, 54,170, 18,147, + 51,209, 7, 68, 78,196,245, 72,206,137,184,222,146, 71, 71,118, 30, 65, 46,231,182,110,139,153,152,209,116,205,140, 44, 21,221, +172, 67,100,133,181, 6, 41,101, 97,190, 91, 83,198,108, 85, 94,155, 98,192, 24, 75,162,132,112, 73, 81,124, 78, 93, 8,180,198, + 18,115, 44, 6, 98, 82, 18, 98, 36, 9, 73, 18,130,104,234, 57,118,212,150, 11,144,243,165,176,235, 41,173,208, 20,107,110,171, + 32,200,178,230,144, 85, 55,174,246, 50, 76,125,224,149,129,170,217, 21, 19,201,174, 22,236,209,213, 5, 85, 47,101, 82,148,130, +158,134, 18, 7,157, 43,220,126, 77,134, 22,251, 28, 7,228, 1,121,234,192,202,217,249, 3, 31,136, 39,100,193, 77,126, 8, 19, +195, 62, 61,110, 81,159,236, 64,219,190, 44,236,190, 41, 48,154, 82,220,232,122, 50, 25,171,219, 58,151,206, 40, 33,201, 57, 33, + 40,208,187,200, 25,159,224,140,200, 32, 51, 45, 18, 35, 4, 89, 42, 68,150,200,148, 17, 8, 68,206, 36,211,208,204,122,178,181, + 37,232, 72, 27,178,132, 70, 75, 92,138,164,156, 80,218, 20,233, 92,142, 32, 20,131,247,132, 84, 50,197,163, 47,182,177, 33, 38, +140, 16,101,159, 8,144, 46, 34,140, 4,153,241, 46,144,114, 34, 11, 73,240,158, 24, 2, 62, 7,132,144,164, 84, 82,186,102,178, + 33,228,196, 54, 87,150,231, 24,107, 30,111,252,155, 61,103, 31,238,162,141,222, 23,228,233,207, 38,184,127,136,101,118, 30,195, + 30,154, 63,204,182,126,212,231,152, 22, 96, 83,229, 46,170,250, 38, 95, 31,124,165,216,255,226,111,254, 26,191,240,107, 63, 71, +223, 88,222, 61, 95,177, 94,237, 24,135,192,118, 23,240, 99, 49, 0, 73, 49, 99,245, 12, 35, 91,142,143, 79,121,246,230, 9, 77, + 53,126,241, 46, 17, 66, 98, 12,153,213, 48, 18, 92, 34,184,200,253,203,129,119,207,215,220, 59, 95,179,190,220, 49, 12, 35,171, +243, 29,187,237,192,110,189,102,231, 6, 98,240,184,193,177,219,108, 9,163, 71, 32, 24,135, 13,227,110, 64, 25,197,176,217,162, +141, 41, 69,158, 76, 8,158, 97, 59,224,221, 64, 76, 9,231,119, 56, 55, 34, 20,228,236, 9, 99, 64,217,150, 97,187, 37,231, 76, + 38,147, 92,194,246,134,172, 45, 41, 22,109,104,132,162,121,175,227, 37,137, 68,107, 81,221,118, 51,179, 89,195,113,223,176,114, +208, 88,195,141,211, 37,235,130,221,227,189,195, 15, 35,194, 24, 94,124,249, 46,119,238, 62,199, 87,255,240, 79, 63,160,144,255, +123, 84,208, 31,190,127, 88, 83, 70,117,218, 20,173,175,148,229,240,173, 9,137,165,123,105, 74, 1,166, 66,213,147,167,245,225, + 75,240,225, 29,142,148, 31,192, 17, 72, 31,204, 90, 23,192,253,243, 82,208, 39, 8,246, 81,133, 93,235,253,197, 3, 30,204,224, +158,138,251, 84,224, 39,178,148, 22, 37, 11,226,248, 8,121, 60,227,120,214,211,118, 45, 94, 75, 22,198, 20,103, 53, 33,247,172, +107,113,192, 68,140,161, 60,155,213, 21, 92, 94,192, 59,239,146,175,118,140,111,190, 11,171, 53,187,243,251,229, 18,208,104,132, + 41, 49,167, 47, 46,207,138, 23,187,208, 72,105,145, 57,209, 91, 75,171, 4,139,185,165, 49,154,227,153,102,209,149, 46,189, 53, +146, 89,171, 17, 33,151,112,172, 92,208, 39,191, 29, 32, 38,194,197, 21, 41,248,242,252, 67,177,127, 45, 53,180, 65,182, 6,221, +244,101,162,208, 55,228,148,153, 29,117,228, 92,164,161, 77, 99,137, 41, 34,170,155,232,148,182, 23, 67,198, 71,143,182, 22,239, + 35, 81, 36,180, 82,248,148,208, 82,145, 36,140, 62,208, 24,197,152, 34, 43,239, 49, 82, 18,173,134, 93, 93, 7, 93, 91,189, 54, +100,121,206, 34,237,253, 54, 52,101,124, 17,198,130,130,140,245,207,146, 42, 90,114,101,107,224, 77, 61, 39,167,247, 74,230,234, +219, 94,211,218, 38,227, 26, 89,223,139, 41,187, 60,213,116, 52,217, 20,216,125, 50,234,210, 83, 8, 75, 40,159,127,116,123,111, +248,244,148, 92,243,100,253,223,245,122,127,239, 90,253,120,240,187,172, 29,122,215, 94,207,134,111, 44,230,164, 36,153,155,134, +144, 60,173, 52, 52,218,144, 43, 33, 45, 19,203, 27,149, 2, 22, 24,114,230,148, 18,119,106,116,131, 77, 32,132, 36, 10, 48, 33, + 35,173,161,233, 58,178,212,133,140, 97, 52, 57,197,210, 36, 42, 81, 50,235, 41, 40, 76, 36,145,133, 64,145, 25, 70,135,212,130, +113, 61, 16,157,135,152,104,164, 38,133,128,212, 18,124, 68, 24, 69,172, 51,110, 41, 51, 62,100,198,232,200, 41,225, 83, 68, 85, +253,253, 54,184, 98, 73, 26, 61,107,231, 56,110, 91, 54, 87,219,178,241,220,184,223,128,127,163, 7,168,126,176,115, 57,132,227, +167, 66, 29, 83, 9, 37,152,110,138,135, 7,214, 33,209,238, 81,159, 35,213,219,238, 68, 70, 65,215,195,178,144,127,126,241, 31, +254, 26, 63,251,247,126, 26,107, 13,171,237,192,213,197,142,171,119, 46,137, 41,163, 26, 77, 12, 17,239, 60,182,233,152, 47,122, +180,208,104, 97,144,141,194,214,113,105, 78, 5, 54,223,121,207,224, 3,195, 16,185, 28, 6,238, 95,172,216,238, 70,220,206,177, +217, 57, 86, 23, 23,236, 86, 27,114,242, 4,225,233,218, 6,211, 25,148, 82, 52,125,135,247,174, 54, 71,153,209, 5, 66,130, 76, + 70, 41,141,247, 99,185,249,167,200,224,118, 72, 36, 99,204,196, 16,112, 33, 32, 19,120, 95, 46,122,214, 26,164, 82, 12,219, 29, +237,220,226, 93, 68,106,139, 54, 18,211, 88,178, 47,198, 69,227,152,104,172, 38,102,232, 26, 67,170, 70, 70, 25,129, 86,154,163, +206, 50,107, 20,111, 94, 12,197,173,110,222,178, 25, 2,227,118,131, 27, 6,114,200, 36, 41,120,233,229,187,156,156,221,226,223, +254,233,255,123,176,115, 63,134,220,205,216, 58,135, 85,223,191,156,234, 7, 10, 93,189,244, 77, 14, 90,211,248, 71, 83,138,248, +196,241,152, 8, 75, 91, 87,153,198,149, 56,102,108,233,170,115,117, 33, 52,242,193,194,254, 97, 7,226,163,164,101,239, 87,160, +223,239, 2,192,161,173,241,251, 4, 55, 77, 36,190,195, 56,225,105, 68,160,229, 62, 76, 73, 29,252,158, 48,197,143,125, 62,135, +229,156,103,231, 61, 95, 60,157,113,199, 26,238, 52,150, 99,149,105, 51,220,167,186,130,229, 10,243,250, 88,216,244,155, 29, 92, + 92,193,197, 10,222, 57,135,221, 21,220,187, 40,138, 21, 95,231,198,203, 57,116,182, 56, 32,246, 51, 26,213,176,108,150, 88,163, +209, 90,161,132,102,222, 54,156,206, 52,243, 86,115,107, 97, 56,157, 25, 58,163, 88,106, 65,171,196,117,152,156,212, 16, 92,100, +112, 35,164,204,112, 85, 52,253,121,231,136,187, 1,157, 32,197,132,210, 22,221,119, 24,221, 96,186,242,115,178,160, 93,180, 4, +151,200, 6,172, 46,238,137, 82, 10,132,144,228, 92, 8,212,185, 74,100, 75,100,121,172, 1,118, 5,193,141, 41,225, 40,242, 59, + 41,139,171,103,202,153, 31, 62, 94,242,134, 27,137, 33,150,139,162, 82,123,155, 87, 33,106, 86,123,141, 36,213,166, 32, 41,209, + 23,162, 27, 53, 73, 45,248, 82,108,141, 41,235,210,135,242,113,162, 42, 12,130, 43,191,214,162,204,225,117,165,197,171,106, 94, +211,217,162, 22,162, 94, 24,162,171, 94, 38,234,192,190,117,202,218,144,149, 60, 39, 31,140,155,126, 82,208, 77,195,123, 4,107, + 85, 25,114,184,198, 63,122, 81,175,217,214,232,174,124,179,141,133,182, 45,100, 8, 93,216,202, 66, 10,172,178, 69, 38, 6,248, + 28, 81, 8,114,206,136, 92, 10,231, 82,137, 98, 9, 91,195,221,149,177,184,148,104,178, 36, 40, 73, 86, 6,169, 53, 65, 22,141, +114,204, 5,186,153, 76, 15,144,146, 44,192,199, 88,158,169,139,236,182, 91,116,134, 97,181,194,185, 1,157, 18,109,130, 93,112, + 36, 81,100,115,187,156, 80,185,104, 40, 99, 42, 8, 66,164, 72, 44, 38, 19,126, 23, 2, 62,122,172,182,184, 24,112, 49, 96,132, +228,254,110, 44,208,112,240, 48,248,239,157, 95,244,199, 38, 53, 29,192,228,135, 80,250,161, 51,216,225,143,215,142, 75,122,191, + 24, 14,255,254,251,125, 14, 45, 31,180,185,109,116,133, 53, 3,255,232,191,251,199,124,249,239,254, 56, 66, 10, 54,187, 66, 86, + 27,182, 3,126, 24,201, 72,114, 44,207,217,152,150,174,233, 88,118, 45,243,206, 98,149,162, 81,138,163,185, 65, 74,216,140,137, +139,157, 99,181, 25, 89,173, 70, 46, 87, 27, 46,175,182,172, 47, 55,108,174, 54,184,193,179,189,218,144,114, 68, 91, 73,215,105, +206, 78, 79,233,230, 45,177,118,118, 66, 64, 59,111, 57, 57, 91,114,116,180,164,157,245,204,231,109,153, 26, 12, 1,173, 53, 82, +105, 98, 8, 12,110,192,104, 67, 72,133,149, 47,201,104, 83,102,143, 46, 56,146,143, 8,138, 89, 70, 99, 53, 57,129,181, 13,218, + 74, 36, 26,219,107,132, 79, 56, 37,233,181, 70, 72, 65,240, 48,239, 20, 86,203,234,107, 81,160,206,222, 42,146,144,172,118,129, +227, 70,113,231,236,152,171,144,185,255,238, 91,144, 50,209, 39,146, 16,188,240,242, 93,222,220, 57,222,249,214,183,247,108,233, +143, 4,193,235,125,231, 8,223,223,162,174,171, 4, 72,176,119,239,210, 53,230,178,111,202, 33, 89, 52,172, 7,116, 99, 81,214, + 80, 78,229,224, 53, 77, 37,140, 86,222,134,154,172, 56,217, 67,159,143,114,226, 58, 52, 96,202,249,209, 28,148,235, 51, 81, 62, +136, 2,168,131, 75,132,170,249,217, 15,195,154,178,146,159,174, 61, 33,234, 97,207,164,104,169,123, 37, 86, 71, 52, 59, 43,185, + 24,198,150, 70,168,111,249,212,188, 71,137,204,204, 88, 82,246, 52, 82, 35, 85,226,237,161,100, 93, 20, 31, 12, 15,155, 17,214, + 99,201,143,184,218, 20,121,213,184,171, 69, 63,236,207,227,163, 57, 52, 6,161, 53, 89,107,110,206,102,156,205,110, 16,210,200, +113,115,132,209, 22,169, 5, 51, 93,236,143,159, 59,110, 57,158, 91,140,148, 28,155, 34,101,235,141, 66, 2,214, 8,198,173, 39, +164, 76, 10, 17,191,243,132,237,142, 52, 56,198, 97, 68,134, 88,209, 77,176,179, 35,162,177, 36,219, 32,109,131,182,229,204,110, +109,233,198, 91,107,241,201,151, 44,246,144, 48, 74, 21, 46, 19,144, 66, 32,167, 72, 8,190,102, 71, 21, 62, 66, 8, 1, 41, 36, + 46, 38,100,149, 52,134,156, 80,202,240,218,110, 75,206,133,100, 25, 99,220, 39, 82,198,253, 24, 5, 68, 33, 26,250, 58, 7, 23, +170, 92, 18,109, 83, 81,230,118,127,182,249,176, 39,186,201,138, 22, 73, 91,160,121, 79, 33,197, 37, 15,186, 50,218, 85,157,161, + 79,219, 48,109,235,252,190, 94, 68,115,101,243, 78,113,197, 70,236, 35, 90, 39, 39,184, 84, 77,104,158, 40,116,105,154,229,203, +247, 94, 80, 31,171,168,203, 26, 61,215,232,253, 28,204, 40,140, 49, 44,218, 2,187, 47, 77,143, 39,160,165,194, 5, 71,163, 44, + 46,249, 50, 43,215, 18,153, 18, 67, 10, 52, 74, 32, 16,180,218, 84, 41, 69,177, 50,148,202, 64,215,147,148,169, 4, 69, 65,174, + 10,176,156, 19, 89, 9,156,243, 36, 4,113, 44,249,217, 97,220,161,115, 34,143,174, 4,105, 92,173,200,162,232,209,149, 44, 76, +247, 40,192,202,140,143,153, 4,168, 92,179,215,115, 66, 10, 69, 8, 14, 41, 36, 57, 11, 16,146, 49, 12, 40, 33, 42, 11, 62,178, +114,190,220, 18,165,132,203, 45, 79, 53,128,224, 73,110,111,239, 55,163, 63,156,135, 79, 29,199,244,107,127,208,173, 79,139,225, + 48, 4,230, 3, 47, 10,245,192,189, 38,210, 37,126,227,191,249,175,248,209,159,248, 17, 66,202,108, 54, 35,187,173, 99,125,185, +197, 13, 1, 33, 53,255,226,143,255,128,119,223, 57,231,135, 63,253,105, 22,221,156,190,109, 49, 70, 49,111,123,158,191,187,228, +185,211, 25,173,149,196, 12, 87, 99,145,164, 93, 94, 14,236,134,145,113, 40,196,183, 68, 34,134,140,180,144,146,231,228,228,152, + 91,183, 79, 56,154,247,244,199, 29,179,101, 83, 58,145,197,140,174,181,156, 30,207,120,249,165, 27,116,179,134,101,107, 56, 58, +233, 11, 60,158, 18,253,172,229,232,104,198,209,217, 12, 55,122,198,113,192, 42, 77, 74,169, 92,242, 83,113,170, 75, 33, 21, 84, + 47,103,140,153,149,176, 10,153, 11,226, 36, 20,136,140,115,158,119,222,190,224,237, 55,222,229,106, 53,224, 83, 38,136,204,209, +172,225,116, 97,136, 49,179,113,153,182,209, 24, 45, 9,185,232,106, 82, 12,156, 44, 13, 74,181,172,119,153,205,230, 28,211, 52, +108,215, 91,186,174,229,243,159,255, 33,254,229, 63,255,221,131, 46,189, 50,119, 77,133,173,229, 65,183,152, 14,224,121,165,190, +255, 69,125,234, 92,197,193,148, 32, 79,197, 91,149,116,191,147,101, 41,242, 70,213,228,190,218,137,231,202,172,159, 58, 41, 57, + 29,176,149,215,225,253, 30,178,140,241,195,179,230,167,162,124, 8,161,127, 80, 81, 79, 15,117,234, 83,246,245,117,114, 76,189, + 68, 60, 28,190, 49,217, 49, 43,246,182,207,141, 41,228, 45,219,195,141, 19, 56, 62, 46, 68, 64, 91,207, 73,219, 66, 95,212, 39, +243,198,114,167,147, 44,148,193,103, 95,145,118,141,206,153, 83, 5,175, 93,108, 97,189, 43,251,107, 51,192,246,162, 64,239,163, +175, 73,145, 60,232,224,135, 42,235, 98,209, 35, 90, 67,163, 45,103,221, 17,173, 50,156,204, 78, 24,220, 64,163, 20,198, 52, 44, +187,150,103,142, 59,218,185,161,183,146,165, 41, 16,247, 92, 74,148, 20, 52,178,176,222,165, 20,236, 86, 14, 23, 60,195,213,134, +205,214, 49,120,199,214,121, 6,169, 25,141,197,156,156,225,108,139,154,117,228,166, 37,117, 22,165, 53,170, 83, 4,169, 42, 87, + 2, 68, 46, 36, 89,109, 4,110, 12,229,222,153, 50, 41, 70,114,202, 40,169, 74,209,206, 16,146, 32, 2,161,252, 69, 66,206,132, + 24,105, 85,203, 16, 35, 89,150,224, 18, 7,133,111, 21, 42,249, 55, 86,168, 61, 76, 5,180,114, 52, 76,253, 51,165,247, 73,103, +162,194,235,218, 20,251,221,209,237, 17,150,237,118,191,246, 38,235, 87,106, 55, 62, 93,152, 51,133,148, 39, 42,193,120, 74, 43, +204,106,210,204,213,200,214,184, 39,203, 77,232,231, 97,163,244,164,208,187,156, 28, 40,167, 53, 28,222, 3,193,127,188,153,186, +168, 80,159, 85,213,160, 62, 35, 91,203,210, 22,155,193,148, 18,141,148,236,188,163,179, 45, 57, 7, 20,162, 24, 20,196,136, 20, + 25,133,192,133,132,210, 26, 89, 18, 1,208, 82,145,149, 70,154, 14, 45, 21,194, 20,232, 93, 40, 81,185, 35, 69,170, 22, 98, 34, +231, 2,153,198,156,241,187, 21,126,181, 34, 12,142,148, 2,140, 59,178, 20, 52, 66,213,247, 81,128, 44,198, 10, 8,139, 34,151, + 46,159,140, 76, 25,169, 21, 49, 59,188, 80,197, 9, 79, 21,205, 37, 66, 16, 83, 36,231,204,214, 7,146,148,120, 41,201,209, 23, +104, 44,135,167,151, 3,156,158,194,225,122, 8, 49, 30,118,233,106, 10, 54,168,238,117, 66, 92, 91,232, 62, 80,196, 15, 97,202, +135,255, 51, 21,110, 55,250,154, 25,255,219,255,227,127,203,103,191,244, 67, 92,173, 71, 54,235,129,213,197,154,148, 5, 74, 42, + 84,107,144, 82,240,202,157, 23,249,230,171,175,146,183,129,231,238,222, 45,145,186, 73,208, 26,195,209,204,160, 43,187,125,187, +243,108,182, 35,187,109, 96,179,219,177, 93, 13,108,215, 35,227,206, 21,196, 71,102,194,224,153, 45,123,218,206,210,116, 37, 41, + 74, 27, 69,215,106,150, 71, 29, 71,203,134,227,147,142,211,101, 87,235, 76, 70, 40, 65,219,232,107,216,207,206, 12,183,110,204, +217,236, 28,141, 53,164, 24, 73, 89, 16,146, 39, 71,129, 79, 1,171,245,181,242, 65, 43, 69, 22, 1,173, 5,198, 42,114, 76,172, + 55, 87,188,251,246, 61,190,249,173,111,241,246,189,123,228,112,194, 91,239,188,197,159,126,237,235,188,253,250, 57,175,223,119, +108,178, 36,250,132,209, 2, 45, 4,179, 70,145,144,164, 44, 88,111,182, 40, 45,240, 94,208,205,122,238,223,187,143, 54, 6,101, + 20,155,213,142,211,103,142,249,161, 31,253, 2,127,244,127,253, 43,246,246,177,178, 22,109,189,191,249,139,135,138,247,148, 8, +246,253,236,210,101, 13,114,158, 12,105,186,166, 88,155,202, 50,234, 98, 57, 43,135,175,150, 48, 4,104,106,252,100,161, 32,215, +206,190,126,142, 48,148,143,203, 31,115,246, 56, 17,133,166, 3, 46,231,247,118,237,239,167, 48,121, 95,248,253, 96, 46,254, 65, +170,148,154, 33,129,109,144,207,222,166,187,115, 27,223, 26,154,231,239,194,209, 17,185,179,176, 92,148, 75, 75,219, 86, 8,190, +224,218,109,163,184, 99, 13, 89,148,144,148,153,180,196,228,232,114,102,244, 35,223,121,103, 5,235, 45,172,214, 69,165, 50,214, +174,157, 15,136, 59,158,183,112, 60, 3,173, 17, 89, 48, 95, 44, 48, 18,230,166,167, 51, 22,171, 91,250,166,101,222,180,156, 29, +181, 52,109,153,165,207, 91, 93,117,233, 25, 35, 36,173, 46,170,141, 20, 34, 97,240,116, 22,214,219,200,102, 53,176, 14,130,181, +208,140,237,130,173, 49,168,126, 78,104, 90,152,207, 8,214,208,245,229,188,110,122,139,208, 6,137, 2,161, 11, 74, 39, 36,126, +140, 68, 23,145, 58, 17,171,127,134,172,218,251, 12,136, 84, 26,174,152,203, 94,156,124, 66,114,245, 24,145, 90,178,245, 14,159, + 35, 57, 73, 86,222,145,195,193, 37,110, 74, 41,203, 83, 84,111,229,253,200,154,138, 54,249,146,200,122,145, 84, 21,154,207, 19, +131, 93,149, 61,213, 53,251,172,245,201,106, 54,184, 66,138,147,169,102,213,223, 42,163, 14, 83, 59,125, 65,105,114, 69, 40,144, +189,154, 52,241,182, 94, 48,235, 91, 55,233,231,159, 70, 19, 56,201, 74,165,126,176,210, 63,180, 94, 63,222, 76, 61,197,242, 64, +250,190,108,192,166, 72,219,140,144,180, 66, 35,117, 33, 59,204,108, 91,152,199,128, 86,250,186,227,141,117,163,105, 33,200, 34, + 35,181,166, 81,229,176,210, 82,161,108,131,208,117, 6, 83, 97,246,156, 33,107, 73, 16,133,185, 78,206, 36,191, 35, 58,135,173, + 49,151, 54,130,202, 69, 83,169,100,137,122, 53,186, 41, 35, 19, 99,105,148,197, 42, 89,200, 24, 33, 34,201, 36, 37, 25,221,128, +150,138,157, 47,238, 95, 69,108, 86, 72, 30, 84,205,186, 32,179,137,177,248,133, 79,190,240, 62,214,195, 85, 60, 26, 22,252, 94, +100, 78,127, 80,183, 62,253,155, 83,161,158, 76, 60,168,112, 97,245,103,102,116, 15,126, 93,239,215,165,191,223,204,189,126,175, +255,244,127,250,103,124,250,243,159, 96,189, 30, 73, 49,226,199,186, 17,115,198, 13,142,236, 51, 82,106,218,166,229,243,159,126, +133, 23,158,123, 14, 66,145,192, 44, 22, 45,199, 39, 61,189, 53, 37,216,200, 71, 46, 86,158,213,214,115,181, 29,217,108, 11,219, +118,216,248, 98,235, 43, 50, 74, 26,186,182, 65, 73,141,109, 53,243, 69,135,212, 69, 54, 54,235, 44,243, 70,179,104, 45,173,214, + 88,163,144,162, 16,216,250,198, 96,132,160,107, 45, 93,163,177, 82, 18, 98, 98,183,246, 88, 93,180,180, 41, 70, 82,200, 37,164, + 66, 89,150,139, 14, 55, 56,208,138, 93,220,210, 74,193, 56,236,248,235, 55,223,224, 27,175,189,137,115,130, 69,119, 74,202,146, +174,189,205,167,190,248, 57,140,232,145, 33, 51,140, 27,190,246,221,111,242,187,127,242, 85,126,255,207,254,156,215,190,253, 6, +139,155, 55,121,246,230,172,192,138, 62, 17,114, 96,240,137,243, 33,112,121,190, 41,132, 66,183, 37,230,178,158,118, 59,199,237, + 23,111, 50, 34,248,238, 95,252,101, 41,228, 90, 87,139, 74, 14, 32,121,177, 55, 47,250,155,122, 77,136, 65,174,157,205,209,178, +204, 43,115,101, 15, 55, 13,180,245, 18, 98,106, 71, 62,133, 8, 81,101, 94,162, 30,176, 57,215, 61,149,246,100,177,143,178,111, + 30, 62,224,166, 78, 61, 61,162,160, 95,255, 61,249,232,207,251,190,204,119, 3,243, 99,110,188,242, 9,126,248,246, 29,190,253, +181,191, 68,157, 29, 97,206,110,115, 98, 12, 27,219,151,238,124, 54, 47, 5,162,105,234,104, 66, 50,102,193, 12, 74,151,156, 18, +131, 27,145, 49,114,127,183,225,254,118,203,187,111, 92,130, 91,151, 46, 48,184, 71,191,183,198, 22,248,184,235,160,179, 8,171, +104,141,229, 70,183,224,164, 91,128, 16, 44,154,158,152, 50,243,217,156, 89,103, 48,189,229,120,102,174, 57,138,157, 81,104, 45, +208, 82, 48,207,165, 46,249, 16, 89,173, 3,110, 72, 92, 37, 73,150,134,119,101,135, 71, 34,186, 35,180,106, 80,182,193,152, 6, +219,245, 88,163,176,189, 98,244,133, 79, 33,148, 98, 76, 25,159, 5, 57, 39, 92,134,232,227, 53, 7, 69,146, 10, 89,174, 18, 34, +179, 20, 72, 41,138, 71, 72, 44,235, 33,231, 72,111, 90, 20, 10,153, 18, 46,197,194,127, 9,129,148, 51,126,234,188, 75,128, 67, + 69,125,234,154, 17,236,139,182,210,101, 77,181,213, 57,179,179,229,158, 28,235,154,149,170, 20,126,165, 10,107, 94,202, 2, 3, + 52, 85,195,158, 37,184,109,121,198,119,110,208,156, 29,163,250,134, 72, 53,230, 26,134,253, 40,114, 28, 10,223, 44, 85, 19,175, + 92,247,166,148,251, 11,166, 60,224,155, 60, 41,178,251,136, 46,253,227, 23,245,105,227,236,226,245, 77, 56, 91,195, 38, 68, 78, +251, 89, 97,192, 43,137,150, 26,159, 3,173,178,236,130, 43,146, 77, 33,137,169, 20, 0, 45, 96,222, 90,178,200,104,101, 48,218, +146, 84, 49,143,209,182, 33, 27,133, 20, 5, 34, 79, 90,144,124, 42,186,116, 9,195,232, 72, 34,209,110, 86,140,163,195, 8,129, +161, 28,204,198, 40,230, 82,146,234,173, 75, 26, 75,175, 13, 66,168, 66, 48,205, 25,165, 37,129,196, 38, 4, 58,165,217,166, 29, + 99, 40,183,185,109, 8,200, 20,113,201,177, 75,197,168, 38,196, 64,204,137,171,177,134, 11,140,190,220, 0,121,136, 96,118, 88, +200, 31,158,121,124,148,228,166,199,133,225, 15,217,235,135,240,250,196, 70, 57,212,211, 78, 48,210,225, 60,253,240,224,123,224, +123, 50,176,163, 0, 0, 32, 0, 73, 68, 65, 84,115,164,189,222, 83, 38,248,220, 23,249,103,255,253, 63,225,211,159,121,158,221, + 24, 73, 49,177,219, 56,164,148,104,173, 8, 46,224, 6,143,214,154,228, 19, 90, 27,218,166,132,237,100, 47, 88, 44, 91,238,156, +206, 57,154,183,180, 86,147, 82,102,179,173, 5,125, 28,217,237, 60,209, 21,166,188,146, 18,221, 72,154,214,150,204,230,222,114, +122, 54,199, 52,134,174,211,116,173, 98,217, 55,180, 70, 23,251, 86,171, 80,170,216, 65, 42, 41, 74,144,146, 16, 52, 74,161,180, +160,109,202,218, 72,128,214,138,221,232,203,104, 50,102, 98,246,164,144,241, 62,150, 28,247, 52,178,176, 13,243,126,198,253,213, +134,251,235,129,147,238, 22,183, 78,239,114, 60, 63, 99, 27, 50,175,159,191,198,215,223,254,255,184,120,253, 93,222,125,247, 91, + 52,218,224,162,103,227,182,133,212,233, 19,111, 93,173,184,247,250,134,175,191, 49,114, 30,203,220,178,213,162,192,156, 72, 98, + 18,196, 44,216, 92, 92,177,186, 56, 39,231,116,205,156,127,229, 51, 47,243,175,254,197,239,213, 53, 38,139,215,192,195,228,185, +148,254,102,139,186,148, 92, 7, 14, 40,138, 76,200,214, 20, 55,226, 30,134, 55,166,116,234,145,194, 70, 86,213,152,101,242,224, + 14,110,111,179, 58,249, 55,124, 20,168,242,208,233,112, 26, 33, 61, 60, 83,127,148, 3,226, 7, 21,246,135, 47, 2,147,243, 91, +215,193,236, 4, 94,121,158,159,121,238,121,250,254, 6,183, 94,254, 52,179,179, 51,190,112,242, 28,255, 38, 9,100, 63, 47, 35, + 60,211, 66,183, 4,219,178,180, 13,163,105,120, 70, 41,206,133,228,118,142,136,228,233, 1,233, 70, 24, 29,127,248,237,243, 82, +208,183, 97, 63, 51,127,228, 25, 44, 96, 62, 43,207, 91, 73,116,215,209, 41, 77,171, 13,141,180,204,236, 2,165, 36, 77,219, 50, +239,123,148, 81,180,141,166,239, 53, 86, 23,189,122, 57, 11, 4,115, 9,207, 14,130,185,147,156,135,192,189,181,227,124,204,140, + 89,178,217, 70, 92,130, 17,129,145, 2,221, 25,154,121,135, 54,154,153, 81, 72, 83,116,226,178,178,177, 99, 76, 24,163,113, 57, + 19, 82, 38,250,226,200, 72,206,252,255,196,189,105,143,100, 89,122,223,247, 59,219,221, 34, 34, 35,183, 90,123,157,238,153,238, +153,158,149,228,144,179,144,166,104,120,100,137,180, 32,201,162, 12,193,134, 97, 24,134, 13, 88,111,253, 9,244, 73,252,206, 48, +224, 55,130, 0, 3,150, 44,195, 16, 8,129, 34, 9,209,195,197,163, 25,206,210, 51,189, 86, 87, 85, 86, 85,102, 70,196, 93,206, +234, 23,231,220,140,172,154,154,149, 51,102, 2,133,206,174,206,234,138,136,123,239,121,158,231,255,252,151,228, 35, 9, 89, 12, +110, 60, 41, 41,164,150, 8,161, 80, 36, 98,146,196, 20,209, 82,150, 59, 39,226,136,136, 40,217, 20, 82,154, 75,146, 84,242, 24, + 50, 99,189, 92,239,144,178, 27,206,140, 28,201,217,174,178,236,186, 67, 89,205, 76,229, 62,104,171,178, 35,175,138, 29,111,217, +191, 27, 85,238, 99, 83, 28,232,138,163, 92,101, 8, 77, 69, 24,166, 76, 92,156,166,108,208,100, 10,212, 95,215,121,143,222,180, + 89,233,160, 18, 52,203,146, 98, 90,216,244,198,228, 95, 84,217,159,225,106,199,254, 51,162,107, 79,153, 64,205, 60,167, 37,167, +191,245, 25,250,119,238,253,156, 69, 61,148,142,218,134, 43,198,173,234, 26, 98,140,172,234, 38,239, 37, 83, 96, 97, 58,156,183, +153, 9, 95,170,137, 86, 57,142, 47, 23,118,141,198,160,181, 34,206,246,130,166, 34,136, 12,125,250,148,167,233,148, 98,182,116, + 77, 96,221,148,189,159, 99, 68, 90, 71,155, 66,209, 3, 43,144,217, 0, 36, 20,153, 81, 43, 21,149,169,152,164,192,200, 60,249, + 67, 98, 12, 62,243, 96,100,162,119, 3, 83, 76,196, 24,153, 98, 32,132,132,141,150, 62, 70, 76,138, 76,209, 51,134,192, 16, 2, +202, 72,236, 80,144,138, 84,178,117, 67,202,123,173,217, 60,227,122,227,243, 60,210,206,143, 43,236,241,175, 49, 49,137,178,195, +153, 95,135,247, 69,255,250,188,235, 23,159, 62,208,174, 31,124,115,131,162,203,205, 92,138,124,247, 27,191,206, 63,253,253,223, +229,213, 87,110,176,157, 44,206,102, 66,141,181, 33,155,196,184,128, 27, 61,206,122,188,139,153,232, 41, 43,110,223, 62, 98,217, +214,220, 57, 57,224, 83, 47, 31,113,247,176, 99,213, 86, 24, 35,241, 46,107,206,123,231,217,246, 19,211,224, 8, 4,170, 90,114, +124,208,113,120,188,100,213, 54,180,139,154,170,169, 88, 46, 27,218, 54,103,149, 47,154,108, 65, 89, 75, 73, 91,101, 98,150, 20, +100,199, 58,178, 44,199,199,116,245,207,148, 18, 74, 73, 92,202,122,220, 36, 4, 55,110, 46,104,186,134, 36, 53,253, 48,224,220, +136,212,146,187,119, 94,198,232, 21, 62,118,172,218, 99, 22,102,137,199,210, 79,151,188,247,248, 61,254,223,143,126,192,187,247, + 31,209, 15, 35,247,238,221,227,131,113,203, 73, 91,113,105,123, 98,176, 24, 41,176, 62,112,208,180, 28, 47,150,132,221,200,238, +177,231,157,119, 31,240,120, 28,240, 94,224, 37, 56, 23, 48, 90,242,240,163,135, 36,161,184,127,118,159,182,174,112,253, 68,187, +236, 88,159, 28,243,221,111,253,160,200,111, 74,150,121,186,122,170, 51,145,231,111,226,235, 11,159,132,143,206,246, 89,213, 93, + 57,184,116,225, 91,164,184, 55,174,145,101,234,105,230,103,164,202,174,134, 37,116,228,106, 29,180,219,100,114,211,245,103, 67, + 21, 11, 86,165,139,135,118,120, 26,141,146,215,166, 21,249, 12,249,109, 46,242,215, 73,162,215, 81,172,231,173,170, 4,249,253, +164,107, 13,133,169,242,158,188,238,224,228, 24, 78,143, 57, 61,121,129,170, 94,160,214, 71, 44,186, 53,178, 90, 50, 24,195, 74, + 26, 30, 8, 9,205,138,165,174,248,120,189,224,139,221,146, 94,213,124,177,169, 9,186,230,213, 74,209,187,145,102,154, 16,253, +200, 69, 63, 18,156,229,221,179,199,185,160,255,180,150,193, 85, 38, 41,179,168, 65,231,251,249,184,109, 57, 48, 45,135,221, 10, +173, 53,181,106,105,154, 6,105, 26,132,145, 28, 29, 54,212, 38,123, 64, 84,149,196,250, 64, 83, 41, 54, 54,176, 35,112,223, 89, + 30, 91, 71,232, 35,155, 33, 48,133,196,214,131,143,129,160, 52,149,150,212,117, 69, 85, 86, 83,149,206, 69, 84, 75,208, 85,222, + 97, 71, 37, 81, 41, 18, 18,244, 54,159,179,169,164, 60, 75, 41,179,147,238, 24,144, 74, 35, 34, 8,153,175,107, 76, 16, 9,120, + 60, 85,146,196, 96, 73, 34, 19,172, 31,185, 33,155, 28,134,148, 67,107, 36, 56,239,247, 92,142,124,216,228,243, 42,196, 61, 12, + 62, 35, 90, 41,229, 34, 77,218,123, 31,204, 16,126, 73,176,203,135, 74, 93,172, 96,155,252,123,166,202,223,155, 18, 29,237, 3, + 60,217,230,130,158,128,182,219, 19, 73,108,145,216,205, 8,147,174,243,253, 28,108, 81,166, 20,117,138, 44,197, 61,149,220,148, +168,178,244, 45,253, 53,247,237,193,210, 47,187,172,144,224,231,141, 94,245, 62,239, 22,188,133,113, 36,132, 37, 65, 64,239, 28, +139,170, 34,132,132, 19, 19, 66,234,171,152, 86, 23, 60,157,174,217, 57, 87,194, 95,242,244, 24, 72, 40, 41,137,192, 32, 2,141, + 82, 76, 50, 91,181,202, 36,136, 66, 34, 69,200, 77,127, 83,227,167,128, 84,134,169,105, 88, 41,137, 68, 96,129, 6,129, 39, 17, +241,212, 42,199, 52, 70, 60,141,212,108,253, 72, 74, 25,206,247, 5, 98,151, 82, 93,173,248, 34,137,232, 92,113,226,206,222,238, + 54,134,210, 0, 10, 90, 45,217,217, 80,172, 93, 21, 76,133,120,209,212,121, 10,121, 38,132,226, 41,232,123, 46,164,115,218,217, + 47,210,204,255,250, 62,252,122, 99,161,245, 62,160, 0,160, 57,129,221,195,189,139,157, 46,176,174, 44, 7,153,245, 79,191,174, + 57, 20,102,178,168, 47,126,145,255,241, 31,255, 46,183,110, 29,211, 91,135, 31, 61,206, 39,198,126,194,109, 39,188,145, 89, 87, +238, 28,166,174,233,218,142,174,109,185,113,178,230,112,209,112,220, 54, 28, 30,212, 84,198,224, 17,232, 4, 33,228, 6,175,173, + 53,245,168, 88, 24, 67,106, 34, 82, 24,186, 78,113,184,108, 56,232, 42,170, 42,223, 23,143,183, 83, 38,186, 10,129, 79, 9, 37, +196, 21,225, 73, 37, 24, 93,196,151, 38, 42,164,132, 15, 57,128, 66,144,208, 10, 34, 57, 37,106, 33, 12, 34,102, 78, 7, 73,178, + 88,100,120,116,220, 14,128,160, 94,156,114,121, 25,248,193,135,223,195, 37, 79,171, 12, 67,152, 24,253,196,197, 48, 50, 78,150, +139,209, 33,107,145,107,234,144, 96, 51,240,199, 37,142,164,171, 37,175, 30, 30,210,153,200,163,161,231,160,223,112, 99,169,177, +253,134, 16, 3, 15, 63,122,159,147,211,155, 44,215, 45, 71, 39, 43,142,150, 53,175,189,241, 49,254,236, 79,191,206,217,118,160, + 86,231,172,143, 15,120,116,239, 33, 47,188,246, 42, 44, 86,215,238,169, 6,252,144, 15, 16,255, 55,167,190,248,242,107,111,242, + 71,147,135,239,191, 95,228, 69,213,158,112, 38,202,247,190,248,197,171,178, 95, 79,117, 46,186,253, 46, 79,188,233,218, 1,182, +155,138,186, 34, 62, 69,144, 71,181, 80,207,200, 82,202,223,135,248,195, 58,243,164,159,150,246,120,255,252,103,172, 42,191,231, +125,222,253,247,219, 60, 81,167,107,140,104,231,243,239, 25,153,247,169, 55,215,121, 71,174,117,126,214, 23,199,124,242,228, 22, +232, 5, 13,138,164, 36, 71,109, 67,116,142,229,201, 9, 63,216,238,192, 77,156, 52, 29,199, 4, 30,122,248,213,229,154, 71,231, +231,188,209, 5,166,237, 19,190,149, 22,156,125,244, 4, 30,220,135,116, 93, 30,251, 51,156, 9,215, 87, 14,149,161,110,115,147, + 84,107,197,110, 26,169, 85,139,234,114, 51, 99, 67,160,211, 13,227, 20,193, 68, 78, 90,201,118, 8, 44, 59,205,217,214, 34, 36, +156, 91,143,177,158,225,194, 33, 82, 34,197,136,221,141,224, 5, 3,130, 86, 37,164, 49,180, 2,164, 20,200, 20,144, 8,132,203, +164, 82, 69, 64, 36,129, 10,185,216,134,148,168, 67,246,114, 8, 33,103,174, 11,153, 16, 73, 99,234,116, 69,171,240,110,142,185, + 78,153,199, 18, 21, 99, 24, 73, 72, 70, 63,224, 98, 66,167,196, 24, 2, 74, 64,171, 5, 27, 79,153,112,109,201, 97,151,215,140, +104, 10, 33, 83,139,189, 98,231,202,122, 88,194, 82, 61, 93,195, 18, 48, 21,109,250, 52, 27, 21,201,226,156, 90,238, 23, 89, 84, + 28,222,103,196,102,188, 78,208, 44, 50,205,249,114,212, 42,163, 83, 83,202,223, 55,203,226,102,167,247,168,130, 20, 16,171, 60, + 20,155,194, 9,208, 99,110, 22,254, 58,233,109,223,248,222, 95, 3,126,191,186,177, 34, 56,145, 59,117,109,168,171, 42, 59,168, +198, 72, 91, 25, 34,146, 74,202,236,170, 21, 34,181,174,112,193,210,152, 6, 37, 36,149,210, 24,153, 77,238, 43, 93,161,234,138, +170,174, 89, 29,174,243,218,195, 39, 98, 97, 54,134,152,163, 6,133,200,123, 32, 59,246, 28,232, 12,185, 10, 37,105,141, 38,200, +108, 21,216,153,154,136, 32,170,132, 84, 21, 3,145,182,105,114, 20, 38, 17, 97, 20, 46,192, 24, 29,117,221,112, 49, 58,108, 74, +136, 18,152,224,163, 39, 10,193, 24, 61, 62, 5, 42, 45, 56,159, 60,131,143, 25, 90,179,182, 72, 24, 10, 67, 86,215,249,230, 8, +101, 92, 84,197,107, 93,170, 61, 17, 67,166,253, 77, 38,197, 47,198,126,243, 58, 35,247,106,234, 41, 30,217,215, 39, 16, 31,224, +181,151,242,129,187,219,236,225,160, 84, 8,116,149,218, 19,152,230, 73,198, 21, 93,250, 39, 63,203,255,244,223,252,125,222,120, +229, 22,219,201,114,254,100,199,102, 51,144, 98, 66, 8,129,115,142,177,183,217,117,202, 71,218,166,227,244,198, 33, 55,142, 15, +184,181, 94,210, 40,157,225,240, 36, 24, 93, 98,103, 35,151,147,103,231, 60,155,237,196,102,176,236,172, 99,176,158,182, 82, 44, + 91, 67,215, 24, 26,147,239,157, 32, 4,181,145,116,181, 46,171, 89, 73,165, 36, 54,228,132,190,209, 7, 6, 31,136, 41, 49,249, +128, 43,228,153, 16, 83,118, 7,140,241, 74, 7, 79,177,165,204,134, 67,130, 85,173,185,232, 39, 36,112,180,108,232, 7,199,135, +247,222,225,223,189,243, 29,222,254,206, 7,220,127,231, 17, 31,220, 59,227,254, 59,143,120,244,131, 75,118,214,194,162,202, 16, +163,214,220, 94,118,156,222, 58, 64,174, 27,218,198,208,214, 13,151, 59,203,165,155,232, 83,226,114,178, 36, 2,147, 79, 52,166, +102,189, 62,101,177, 56, 98,185, 62,166, 58, 48,216,205,150,203,161,231,248,112,193,119,223,126,143,203,113,224,201, 56,176, 50, + 21, 70,107,218,174, 69, 25,248,224,131,179, 61,180, 28, 67,201,154,254,155,131,221,223,255,230, 95,101, 8, 82, 74,168,219, 92, + 89,175,152,227, 51,251,188,192,163,243,228,110,195,222,174,184,183, 25,134,119,236, 11, 90,138, 79,195,144, 66, 67, 91,158,157, +217,172,230, 89,119,184,121, 26,191,126, 30, 81,154, 3,127,173,248, 95, 73,151,100, 49, 39,161, 48,239,175,165,104,205,251,233, +122,149, 15,244,155,167,121,242, 58, 88,102, 79,246,118,149, 27,172,170,229,172, 90,240,198,106, 9, 70,163,144, 44, 5,168,174, +163, 50,146,203, 32,120,189,169,121,185,170,145,149,161,209,146, 49,192,205,197, 18, 45, 35, 74,213,220,172, 4,223,189,236,225, +252, 73,246,188,248, 73,123,252,231,125,117,217,205,147, 85, 11, 50,187, 23,118,218,100,166,123,179, 96,217,174, 80, 73, 97,234, + 26, 83,213,200, 90, 99,165, 36, 10,208,181, 34,144, 56, 27, 61,187,152,120,188,177, 52, 41,209,111, 39,130, 13, 92,156, 79,108, +138,137,147, 19, 49,135,170, 72, 56,212, 25,186, 87,228,218,134,183,172, 42,197,146,132,140,129,198, 36, 42,153, 57, 77,102, 12, + 44,140,192, 91,207,218, 72,140,204,126,244, 46, 38, 82,113,105, 75, 82, 96, 93, 86,184,120,103,145,210, 96,157,103, 8, 14, 65, +192, 71, 65,239, 7,124,153,166, 67, 74,140, 49,146, 82, 96,154,121, 65, 41,238, 67, 88,162,216,187, 18,218,130,166, 94, 31,172, +164,200,133, 54,201, 61, 50, 35,196, 30, 66,215,229, 92, 60, 92,228, 34,188, 94,228,169,186, 42, 1, 71, 77,125,205, 57, 80, 21, +179,174,148,163,185, 21,249,254, 81,229, 44,174,212,254, 60,158, 37,117,179,151, 68, 44, 36,202,170,202,175,111,190,150,166,161, +200,180,184, 10,181,255,105,214,182,207,221,228,206,190,180, 63,235,244,232,201,147,235,110,128,101,203,229, 56,209, 30, 24, 42, +173,242,123,149,121, 63,168, 0,173,178, 25,141, 86, 57,212, 66,154, 12,135, 68, 45, 89, 84, 13,222, 7, 24, 28, 71,235, 99, 98, + 76,180,117,205,214, 57, 68, 76,184,204,130, 64,106,133, 74, 16,123,203,186,233, 16,222, 33,149,166,149,217,112,163,142,142, 24, +115, 39, 86,215,154,201, 58, 60,176,208, 21,131,155, 64,231,189,102,239, 61, 19,160,117, 69, 31, 28,117,101,114,224,142,130,138, +132, 77, 33,195, 59, 17,140, 20,220,223, 77, 88,145, 88, 24,197,165,115,249,144,153,161,207,182,202,147,122,219,230,110,203,150, +174,173,160, 19,121,210,136, 57,179,215,164,189, 46,242, 23, 57,173,135, 31,227,152, 53,119,126,223,252, 22,212, 39,251,191, 55, + 20,226, 82,163,242,158, 73,213, 48,110,246,211, 79, 57, 52,255,251,255,252,107,124,226,213,219,124,244,232,156,243, 39, 3,227, +182,207,131,208,177,161, 63,223, 33,165,202, 82, 63, 64,169, 26,169, 53, 70, 27,214,109,131,136, 2, 76,158, 94,165,132,193,123, + 70,159, 3, 93,166, 41,224,188,203, 73,107, 62,178,106, 20,181,150, 24,149, 53,232,181,150, 4,159,211,247,124, 72, 87,207,164, +245, 1,169,100,182,246, 77, 17,231,178,193,140, 81,130, 90,102,235,225,193,103, 21,195,186, 49, 28,215,154, 39,222,161,162, 34, +164, 64,165, 20, 19, 2, 37, 35, 86, 36,162, 11,124,244,254, 19,222,122,233, 6,127,231, 87, 63,206, 7,175,221,225,243, 79,182, +108,207, 30,115,113,255, 62,255,230,222, 67,238, 95,236, 56, 62, 88,178,179, 83, 38,118, 93,244, 88,229,168, 94, 61,226,245,211, + 23, 0,201,232,122,142,154, 53,143,250,115,222,125,242, 17, 99,244,220, 89, 31,113,227,224,148, 23,143, 95,193, 52, 10,161, 36, + 93,183,128,148,208,169,195,138,158, 39, 31,124,200, 52, 90, 72,146,117,211,241,157, 71, 15,217,244, 59,186,229,130,113, 24,120, +235,205,143,243,199,127,244,151,133,195, 49, 75,169,228, 47, 75,163,246,156, 7, 92, 63,127,130,156,119,132,215,115,170,159, 82, +200,148,189,162,223,150,201,153, 12, 47, 87,250, 26, 23, 32,238, 51,218,159,125, 22, 26,253,244, 68, 42,126, 12, 74,117,253,229, + 94,127,173,243,189,174,100,137,227,140,251, 2,110,231,169,188, 20,253,102,193,167, 94, 57,229,155,125,226,173,227, 37,255, 97, +112,249, 16,215, 69,117, 80,215,249,185,111, 50,114,178,113,150,163,102,149,225,220,174,206,219,200, 36,249,204, 97, 71,140,137, +206,123,238,133,196, 75, 82,178,213,146,190,223,225,245, 1, 55, 87, 59, 52, 1,150, 7,112,120, 10, 15,166, 61, 82,240,211,126, +205, 70, 61,199,213,158,176, 15,180, 85, 77,165,178,106, 8, 33, 17,117, 13, 70,147, 42, 73, 31, 5,210, 38, 38, 13,187,173, 67, + 40,168, 98, 34,248, 64, 27, 2,143,135, 68,178, 30,119, 49, 50, 77, 14,225, 34,209, 7,164, 15,164, 41,178, 90,106, 84, 72, 24, +160, 85, 18,182, 30,161, 36, 85, 8,212, 74,113,128,160,237, 3,203,166,195, 74,129,104,243, 94, 60, 44, 20,151, 2, 6,159,152, + 72,104,163,216,141, 57,231, 67, 38,143,170, 27,252,118, 3, 66, 50,216,204,169, 48,218,144,130,163,213, 57,207,131,104,233, 84, + 94, 3,100, 87, 76,168,140,193,150,128,159, 43, 25, 89, 44,126,240,243,122,212,152,162, 8, 33,239,219,103, 7,195,186,228, 96, + 84,134, 43, 59, 87, 91,206,194,121,181, 97,212,158, 24,185,217,237, 99,136,107,179, 71,117,148,134,118,158,208,219,114,127,149, +123,202,135,125,202,219,108,136, 51, 27,210, 44,154,253,128,215,150,149,213,193, 34,251,159,136,226, 55,111,251, 34, 1,245,215, +182, 74,254,167, 6,115, 20,159,248,141,127,134,110,138,199,240,207,120,131, 93,193, 27, 2,140, 97, 20,130,163, 98, 25, 27, 82, +162,171,187, 76, 52,148, 25,182, 1,137, 81, 6,231, 45,139,170,197,152, 10,239, 29, 74,107,170,170, 66, 42,153,173, 61, 71,143, +119,129,152, 66,134,232,189,205,126, 3,198, 92, 73,213, 4,130, 78,105, 84,165,104,171,154, 88,188,182,149,202,190,193, 90, 41, +122, 60,190, 50, 56, 41,136, 82,224,203,244, 23,165,194,133, 84, 10,132,194,147, 24, 98, 68, 42, 65, 64, 49, 5, 71, 20, 96, 99, +196,123, 79, 4, 46,103, 59, 65, 55,199,244, 5, 24,124, 62,128, 76, 73, 65,211,114,207,190,212,213, 85,224, 12, 34,128,207,121, +200, 25,134,249, 5,234,220,159,149,160, 93,119,154,131,124,160,165,196,242,139,159,226,205, 79,127,146, 7,223,127,167, 4,107, + 20,214, 39,100,233, 76,244,229,192,200, 13,203, 87,255,209,239,241,197,175,124,150, 39, 23, 59,206, 30, 92, 48,141, 14, 33, 36, +139,163, 37, 82,192, 56, 58,148, 84,153,132, 40, 52,141,233, 88, 45, 23,220, 56, 92,177, 48, 6, 93, 73, 42, 45,179,172,176, 20, +228,201,122, 38,231,121,120, 57, 48, 12,150,144, 34, 93,173, 56, 57,104, 56, 89,214,116,149,166,174,179,129,139, 72, 96, 83, 68, +149,196,189, 90, 41, 92,202, 69, 62,165,132,143,145,169,172, 2,188, 15,153,171, 17, 2, 75,149, 77, 53,106, 9, 71,181, 64, 37, + 65, 91,107,140, 82, 28, 47,170,204, 50,247,217,184,232,171,119,143,185,191,245,124,251,189, 75,234,165,230,159,252,202, 43,188, +113, 99,141, 93,116,220,121,241, 5,110,117,135,252,173, 79,189,206, 73, 85,115,115,209,241,202,225, 1,111,223,127, 12,135, 13, + 55, 15, 14, 89, 54, 71,212,213,146,179,254, 12,235, 39,142, 22,167, 28,117, 71, 88, 59, 32,180,196,166,192,163,221, 37,253,180, +165, 51,154, 16, 18,170,170,105, 79,142, 88,159,172,121,244,209,123,220,127,248,144,179,237, 37,141, 82,216,232, 57,219,141, 28, +183, 53,218,212,172, 78,143, 56,239, 39, 30,199, 2,225, 45,234, 60, 57,110,182,240,242,139,121,215,187,219,254,116,132,178, 89, +226,248, 60,255,105, 93, 12, 83, 84, 93, 10,118,169, 20, 17,126,200,217,238,106,197, 83,149,123, 59, 93, 13,231, 87,171, 32, 81, +216,193,241,218, 58, 71,183, 69,195, 92, 98,140, 99, 40,207,197,143, 32,179, 25, 83,140, 61,194, 62, 6,152,244,252, 41,253, 89, + 7,184,249, 25, 48,229, 92,155, 9,125,130, 12,115,170, 98,164, 21,129,213, 33,191,243,137,187,208, 45,248,212,233, 1,163, 50, +124,108,125,204, 3, 93, 19, 40, 36, 40, 53, 59,226,105,106,165,184, 45, 13,171,186,197,106, 77, 40,159,109, 15, 8, 31,185,211, + 42, 30, 76,129, 35,165,121,140,228, 52, 70, 70,173, 57,145,130, 71,187,137,202, 40,190,179,221, 16,182, 27,112,187, 44, 95,155, +157, 27,137, 63,217, 29, 80,138,252,218,219,114,173,180,166,174, 52, 71, 85,203,141,118, 77, 83,119,232,182, 35,233,138,164,103, + 99, 26,137,175, 52, 91, 31, 25,109, 98, 40,124,150,201, 5,122, 23,176,189,195, 59,207,110,211, 51,238,118,216, 97,196, 13, 3, + 79, 54, 23,248, 48,176, 10,129, 54,122, 26,111,105,132,162,149,130, 54, 37,148, 11,168, 16, 80,253,150,195, 32,104,156,227, 80, + 36, 78,132,164, 78,176,144,146,227,153,188, 22, 18,163,205, 38,100, 81,130, 39, 27,205, 88,114, 38, 67,116, 83, 1, 99, 2,181, +132,173,179,212, 90,161, 99, 65, 85,147, 96, 91, 84, 34, 50, 37,166, 48,171, 38,202,125,161,138,124,208,198,124, 47,135, 82,228, +141,218,123,186,171, 98, 35,107,202,218,104,110, 78,187, 54,159,233,203, 54, 23, 86, 93, 96,117,235, 11,217,173,144,186, 42,185, +135,252, 83,122, 70,217, 81, 10,249,220, 44,198,107,164,198,114, 6,102,120,158,125,112,207, 12,205,147,114, 3,217, 85, 5, 61, + 48, 37,168,166,202,182,236,198,228, 65,108,158,226,141,250,177,104,175,166, 42,111,206,245,249, 65,252, 89,119,235,253,148,223, +100,183, 32,180,145, 39, 67,207,170,110, 88,181, 11,118,211, 68,103, 42, 98, 20,104,165, 8,201,227,130,167, 53, 13,162,216, 8, +106,221, 20, 94, 86, 96,219,111,113, 5, 58, 75, 50, 75, 96, 4, 30, 97, 76,238, 64, 67, 68,104, 67,136, 17, 45, 50, 44, 34,200, + 72,158,150, 58, 55, 19, 37, 3,120, 34, 81, 91,195, 16, 29,178,173,137,147, 39,146, 47,104, 26, 29,168, 72,136, 57, 64, 64,138, + 28, 3, 58,216, 17, 85, 12, 27,130, 29,242,231,111, 42,198,105,204, 55,198,124, 65,231, 32,138,142,253,174,164, 41, 83, 59,177, +200, 27,124,177, 19, 28,179,204, 69,216,125,135,104, 13,248,205, 47,103,224,242,215,118,235,222, 23,147, 5,205,246,235,127,193, + 95,118,119,246, 41,113,179,127, 65,152,181,190,236,157,242, 62,253, 43,124,249,171, 95,100,234, 29,231, 23, 59,236,224,233, 86, + 29,235,227, 5,187,157,205, 58,236,170,152, 5,249, 72,219,180, 28,173, 87, 88,155,216, 92, 58, 90, 93,161,141,206,241,182, 33, + 91, 75,246, 54, 50,249,136,240, 41,155,212,233,226, 52, 72, 34,250,136,151, 34, 39, 74,185, 12,143,139,226,167,158, 27, 68,152, + 98,134,211,189, 15, 76, 33,160,129,187, 11,195,214,121,108, 36,235,210,133,160,174, 36,166, 16, 39,183, 73, 82,213,249,129, 90, + 86,186,168, 51, 20, 42,229,176, 8, 93, 43,190,252,214, 93, 14,239, 58,132,155,248,151,223,251,144, 79,158, 30,178,104, 43,222, +126,239, 33, 7,171,142, 91,199, 45,159,251,204,139,124,233,238, 17, 95,127,255, 17, 31,127,245, 14,127,240,141,111,211, 85,138, +255,240,240,109,110,117,135,108,118,231,180,139, 53,141,214, 28,180, 43,130,219,240,253,199,247,248,246,238, 17,156,245, 48,129, +124,105,205,155,199, 7,188,122,114,151,203,199,231,220,188,123,139,110,125,155, 15,238,127,157,247, 31,111,121, 18, 2, 71,141, +225,184,209,188,254,202, 43,208, 86,188,124,231,136,255,234,239,253,109,198,205, 84,164,179, 9,239, 44,214, 58,126,243,197, 19, +222,221,142,220,187,127,198, 63,255,147, 63,229,251,127,242, 39,207,191, 31,230,201,126,158, 96,174,166, 61,251,244,228, 29,138, + 51, 87, 20,121, 79, 45, 96,191, 64,252, 81, 13,165,223, 67,153,243,200,152,138, 53,177, 42, 15,230,172,170,104,155, 61, 68, 63, +142,123, 39, 48, 51, 51,233,175,161, 87,222,231,226, 43,202, 68,227,226, 30, 77,212,250,153, 41,253, 57, 19,140, 47,137,130,161, +200,157,204,140,104, 85, 64,137,198,140, 64,183,162, 90, 47,104,215,199, 60, 30, 29,147, 94,209,170,136, 87, 45, 7,106,226,108, +102, 67,199, 0,228,102,224,165,234,152,191, 36,241,149,177,199, 87, 29, 15,189,231, 70,157, 21, 54, 46, 6,118,219, 68,155, 18, + 46, 4,150, 62,112, 33, 19, 77,128,247,135,129, 59,109,199,159, 61, 60,195,234,186,228, 41, 52,192,112,109,152,210,123, 53, 65, +224, 71, 35, 37, 77,243, 84, 35,181,214, 53,175, 44,142, 48, 90,211, 45, 14, 80,166,193, 10,137, 23,217, 37, 81,135,128,244,158, +158, 60, 45,214,129,108,186,148, 34,135, 33, 50, 4,136,214,147,236, 68,231, 61,151,155, 39,108,135,145,139, 96, 57, 89, 44, 48, + 65, 98,162, 64, 43,131,242, 19, 76,145, 74,107,100, 74,172, 72, 28,168,154, 62, 76,220,162,166, 9,128,205, 17,184, 49, 36,182, + 41,177, 6,188,148, 96, 2,187, 36,216,246, 57,138,117, 8, 16,165,198,121,176, 73,224,163,133,152,216, 38, 79, 35, 4, 67,136, + 57,249, 48, 72,182,113,226, 88, 73, 30, 90,143, 79,137,202, 40,172,191, 86,216, 92,200, 77,163, 36,103,116,212,234,202, 19, 38, +251,245, 87,153,244,166,203,120,189,185,132,195,155, 87,217, 33,121,184,241,217, 44,104, 94,139, 84,165, 33, 30, 11,241,120,156, +242,223,129,202, 30,244, 70,239,137,199,218,236, 25,237,115, 35, 60, 7, 21,213,106,111, 49, 27, 11,169,180,196,204, 94, 33, 71, +162, 88, 5,207, 16,126,167, 11, 2, 81, 66,106,132, 4,209,149, 84, 66,191,143,149,157,182,207, 41,234,214,230, 23,253,243, 70, +194, 57, 11, 99,121, 80,235,138,209, 84, 32, 39, 26,165,209,166, 33, 4, 79, 83, 53, 56,239,179,109, 32, 1, 37, 4,163,179, 44, +171,150,132,199,135,188, 43, 7,152,220,136, 49, 6, 65, 78,231, 97, 4,161, 36,202,228,110, 44,196, 68,165, 13, 82, 72,100, 74, + 40, 45,208, 90, 34,165, 36, 90, 15, 77,131,176,142,224, 70,236,178, 35, 13, 3,187,209, 83, 53, 21, 97,202, 19,172,212,154,224, + 66,118, 52,210, 26, 3,244,222, 17,230,157,135,169,193,123, 42,149,120, 56,236, 8, 66,130, 42,222,189,182,192, 47, 90,238, 77, +191, 98,249,240, 27,157,247,135, 49,236,147,116,150,139,124, 3,232, 42,103,241,206, 36,167,174,185,150,219,251, 75, 40,236,215, + 39,150,249,151,125,239,233,131, 83,235, 98,252,241, 52,148,249, 15,127,227,147, 28, 28, 46, 24,122, 71, 93, 85,196, 54,210,173, + 26,134, 41,224,125, 32,248,144,161,247, 49, 66,212,144, 36, 77, 91,209,181,154,227,101,199,201,186,161, 49, 10,173, 4,147,143, + 87, 62, 17, 25,164, 72,156,116, 21, 73,102,139,212,186,146, 44,235,236,212, 85, 43,144, 73,226, 93,222,125, 87, 38,179, 94,173, +207,170,133, 90,136,140,150, 26,133, 72,137, 86, 9,142, 27, 73, 31, 2, 62, 9,142, 69,162,145, 32,100,226, 50, 69, 84, 20, 60, +216, 57, 22,149,166, 89, 42,166, 8, 55,187,134, 70, 43,238,157,247, 84,141,226, 83, 55,150,124,226,101, 69,171, 37,223, 61,219, +240,199,223,127, 76,178,137,118,181,200,172,210,193,161,158,244,252,145, 11,156,172, 59,254,233,215,126,141,223,248,220, 39,248, +171, 15, 30,241, 23,127,254,109, 8, 19,127,241,216, 49,212,142,239, 61,252, 30,173, 54, 60,222, 92,112, 62, 76,121,157,211, 25, +208,129,248,120,195, 55, 31, 92,240,225, 75,151,124,246,228, 9, 97,218,112,252,194, 29, 62,241,218,167,249,236, 23, 86, 28, 30, + 53,156, 30, 85,124,236,100,193,113,171,217,218, 64,140, 9,119, 43,175, 9, 14,154,236, 3,177, 48,146,202, 72,158, 12,158, 99, + 27,249,170,150,252,195,127,240,219, 92,140,142, 15,207,123,254,234, 59, 31,242, 7,127,242,111,248,247,255,242, 15,114,241,126, + 22,189,126, 14,124,159,102, 78,198, 83,147, 50,224,126, 68, 81, 9, 49,167,254,173, 86, 87,220,162,252,255,141,249,126,130,167, + 7, 4,235,193,216,130, 94,197, 31,173, 6,185,190,150,250,113,164,161,167, 26,215, 31, 1, 81,207, 68,209,201,150,116,184, 17, +148,205, 16,122, 4,150, 29, 7,183,143,249,220,237, 35, 30, 76,142,182, 91,208, 72,131,174, 26,188,183,188, 46, 91,162,115, 60, + 22, 83,209, 53,231,117,195,247,118,143,249,220,193, 17, 31, 76, 19,157,245, 44,155,134,139,113, 96,170, 42, 86, 36,190,229, 19, +159, 58, 88,224, 67,100,212,138,208,247,244, 68,110, 24,205,187,110,226, 65,242,185,104,175,186, 60, 8,236,158,121, 15,234,153, +141,200,243,222,223,236, 3,128,130,186,227,184, 57, 0,109,232, 86, 39,128,200, 50, 49,165, 24,172,199, 8, 5,109,102,189,143, +206,102,146,127, 37,137, 33,114, 75, 36,250, 0,149,245, 56,159,101,118,143,206,207,168,172,227,124,216,178, 86, 18,101, 61, 85, + 91, 50,215,181, 66,248,136,209,138, 70,105, 90,165,104, 66, 64, 37,201, 43,170, 65,183, 6,233, 50, 87,105, 12,142, 74, 26,150, + 17, 92,217,109, 75,165,176, 9, 14,170,192,189,201, 33,148,100,176, 16,181, 33, 22,215, 60, 27, 71, 26,169,241,193,211,136,188, +130,105,141, 38, 18,217, 13,158,227, 74, 18,167,196,214, 63, 19,128,163, 75,246,192, 44,250,153,175,217,172,106,208, 6,213,182, + 4, 1, 75,221,210,175,142,178,185,213,220,224,166,178, 90,165,104,202,103,253,183, 47, 67,161,243, 57,223,125,178,249,140,191, + 90,125, 62,207,182, 53, 62,237,251, 62,133,189, 74,169, 42, 78,117,117,149,121, 78,211,144, 45,106,131,205,141, 71, 27, 96, 96, +111, 83, 60,199,246,174,171,140,112,205,107,178,177,217,115, 82,226,248,148, 25,154, 34, 30,253, 51,250,221, 47,198, 33, 77, 43, + 44,146,227,197, 65,102, 43,147,117,232, 62, 6,140, 52,132, 20,179,113,143,146,212, 82, 35,148, 68, 11,205,228, 28,198,232,108, + 56, 83,236, 10, 19, 18,235,178, 23,180, 49,249,165, 6, 33,209, 74,162,234,138, 78, 41, 92,136,212,198, 16,139,255,182, 48, 21, + 82, 10,122,159,205, 82,108, 49,213, 87,166,194, 21,178, 84, 10, 41,155, 36,248,108,136, 16, 98, 98, 76,146, 68,196, 9, 65, 31, + 34,194, 71,156,144, 92,122,139, 22, 2, 23,115,246, 58,163, 43, 45,180,156,147, 72,242, 1, 35, 74,182,239, 12,181,248,180,135, +229, 41, 36, 57, 81,172,183,116, 85, 76, 15,202, 69,255, 57,201, 16, 63, 53, 52,255,211,252,251, 51,191,255,247,254,219,127,130, +146, 96, 71, 79, 8,185,184,132, 72,201,176,167,216,233, 10,130,135,186,174, 89,173,150,220, 61, 93,115,178,234, 88, 45, 43,150, + 38,147,106,102,215, 80,151, 34, 33,164,156,167,160, 5,146, 68,163, 20,167,107,195,210,232, 28,211, 56,191,148,144, 81,155, 84, +248, 47,214, 7,100,138,184,152,167,250,144, 2, 33,230, 73, 40,133,200, 50, 6,100, 8, 28,196, 68, 37,160, 18,146,147,148,232, + 98,226, 72, 10,172,200, 83,129, 69, 48,110, 7, 78, 43,195,113, 83, 97, 18,124,235,108,199, 7,151, 35, 8,112, 8, 78, 15, 58, + 94, 59, 93,242, 36, 8, 92, 72,220,190,181, 4, 35,233, 55, 35,110,116, 60,222, 78,216,201, 51, 38,137, 49,134, 95,255,252,107, +188,122,186,166,221, 89,254,175,119, 63,228,163,221,150,147,174,166, 51,154, 86, 27, 86, 90,179, 37,145,106, 69,210, 18,121, 80, +241,249,211, 99, 94,190,121,194,209,141, 5,191,255,183, 94,231, 31,125,233, 99,124,233,205,219,124,254,229, 99, 62,125,123,141, + 20,130,203,193, 35, 82,126,126,124,136,236,172,103, 42,132, 64, 18,152, 74,177,168, 12,125, 16,124,112, 57,161, 82,228,229,211, + 37, 95,184,125,196, 75,119, 14,249,237, 47,126,129,127,252,251,191,199, 43, 47,189,196, 31,254,209,159, 34,144,121,109, 37, 4, + 34,101, 67,165,108, 2,146, 15, 32, 97, 52, 34,169,125,241, 87, 62, 79,217,209, 62,127,143, 61, 75, 38,173,203,208,160,119,123, +226, 82, 74, 48,244,207, 88,179, 22, 34,102,112,123,185,219,117,107,215,249,240,251,113, 30,239,215,139,254,179, 43,166, 31,154, +100,203,142, 83, 25, 56, 88,103,104,179,237,114,228,235,170,205, 59,204, 69, 67,234,106,110, 54, 13, 73,213,188,118,184, 38, 42, + 56,210, 25, 53, 56,172, 5, 15,109,228, 50,133,189,115,153,200,222, 2, 70, 72, 14, 98,162, 14,142, 46, 5,206,172,101,185,125, +140, 53, 21,223,159, 70,118, 33,114, 71, 73, 30,218,137, 35,165,232,157,167,247, 17, 29, 2,223, 24,167,124, 80,251, 30,118,187, +167, 19, 21, 37,251, 40, 80,226, 15, 15, 90,179,202,230,228, 6,172, 22,176, 94,243,194,209, 13,126,227,246,203, 28, 44, 22, 24, + 45,168,181,193,232, 26, 27, 50, 41, 46, 42, 69,240,137, 33, 6,162,148, 52, 82,208, 72,193, 97, 2, 23, 34,235,152,176,131,163, + 38,176, 59,127,130,187,124,130,157, 70,150, 9,218,182,166,105, 90, 58, 93,161,149,196,196, 72, 83, 27,140,128,133,169,232,128, +195,202,176,142, 9, 35, 5,173,148, 57, 72, 70, 10,234,226,190, 39,124,162, 49,138,160, 37, 23, 49,175, 52, 71,153,120,178, 29, +121,224, 3, 59,239,144, 36,164, 80,104, 33,104,116, 3,228,193,109,240, 1, 93,144, 58, 45, 36, 33,228,231,160, 83,154,243, 16, + 8,162, 64,234,161,228, 90, 36,153, 27, 37, 93,200,202,198,228,207,169, 93,242,202,250,152,151,186, 21, 47,214, 75, 94, 90, 30, +176,144,134,186,233,184,156,173,101,227,108,141, 88,216,240,148, 51, 91, 42, 82,140,168, 36,114, 13,152,189,231, 93,185, 47,180, +222,147,159, 37, 92,165, 13,134, 18, 24, 19,194,158, 61,175, 85, 70, 11, 40,171, 31, 63,149, 34, 31, 74,211, 88,254,124, 87, 21, +223, 6,246, 49,217,161,188,174, 57, 77,179,170,246,178, 82,165,158,178, 83,254,249,217,239,207, 22,135,144,242, 94,185,210,236, + 20,116,170,202,122,113, 93,229,240,148, 20,169, 10,116,110,148, 42,102, 5,142, 90,213, 72,149, 39,247,170, 64, 15, 33, 7, 40, +227,124,204, 97, 72, 73,225,139,105, 71,221,154, 43,179,131, 99,173, 24, 10, 6, 85,155, 42,147,169, 82,190,105,119, 62, 32,203, + 14, 61,197,204,160,244, 73, 16, 69, 42,103,135,196,249,128,149,121, 42,180, 41,225, 98, 96,112, 30, 75, 98,112, 19,125,132, 41, + 58, 70,239, 50, 51, 49,206,123, 22,181,183,192,140,215,189,126,227,158,253,152,174, 77, 70, 90,150,255,158,246,123,179,217,210, +112, 14,148,144,242,167,119,210,250, 37,126,125,236,111,255, 14, 95,254,245, 79, 51, 12,150,126,219, 19,124,196, 59, 79,211, 53, + 76,253,196, 52, 58,166,222, 18, 92, 64,146,189, 5,106, 99, 16, 66,178, 90,213,172,155,153, 37, 43, 24,124, 36,146,153,234,110, +138,217, 35, 71,230, 98,127,227,192,208, 26,141, 42,134, 44,145,108, 24,163, 77,182, 87,157, 51, 26,116, 10,248, 24,209, 50, 63, + 15,243, 80, 24, 99, 36,185,192,165,143,120,149, 27,142,205,232, 80, 17, 22, 49, 81,249,192,165, 4, 87, 25,140, 81,168,199, 59, +212,119, 30,243,238,195, 11, 76,163,185,209,182,180, 49,114,239,114,199,251,103, 61, 23, 86,178,168, 20,199,173,225,184, 51,220, + 92,104,188,183, 28,117, 29,186,210,108,206, 7,198, 41,112,255,114,228,209,229,192, 43, 39, 75,188,245,124,250,227,183,248,237, +207,189, 14, 23, 3,255,254,175, 62,100,125,208,177, 52, 11, 84,165,105,170,138, 86, 9, 94, 57, 92,242,214,221, 27,252,167, 95, +120,139,255,242,119,191,196, 87,191,240, 26,159,249,248, 29,234, 90, 35,132,160, 15,217,239,122,235, 2, 79,118, 30,239, 35,141, + 81, 28, 52,153, 65, 13,249, 51,234,173, 99,176,142, 16,242,120,172,132,100, 55, 57, 30,238,118,156,237, 34, 85,130,173,141, 56, +239,185,123,208,242, 91,159,127,157,255,225,191,254, 7, 44,239,190,193,191,251,183,255,182, 16,126,179,212, 79, 22, 85,134,136, + 69, 87, 94,210,165,196,204, 36,159,252, 15,155, 39, 92,215,125,167, 82,128, 6,151,155,214,113,147,121, 35,118,122,126,113, 14, + 97, 95,208,231,137,230,138,157,156,246,190, 14, 63,201,231,253,199,253,204,156,123,208,212,124,246,213, 91,180,135, 29, 47,156, + 46,233,186, 10, 86,203,172, 90,146,133,113,108, 12,193, 84, 44, 76,197,171,235, 5, 38, 2,133,215, 96, 68, 86,218,220,159, 70, + 46,230,134,196,185, 2,197,143,172,220, 72, 28,123,130,221,226,135,115,154,221, 57,198, 91,222,187,120,200, 71,214,113, 87, 26, +190, 49,140, 28, 33,121,111,178, 4,239,121, 24, 61,223, 26,122,108,178,121, 42,155,250,204,156, 62,223,101,244,110,126,255,243, + 25, 18,158,137, 70,174,202,100,183, 62,134,163, 31,132,194,155, 0, 0, 32, 0, 73, 68, 65, 84, 53, 28,159, 34,143,110,240,169, +197, 9, 55,186,138,155,221,146, 70, 85, 57,176, 76,230, 97,242,194,122,188,245, 68,153, 93, 50,149,128,133,128, 99,157, 67,173, + 84,200, 94, 19,135, 93,102,162, 55, 49, 51,217, 23,193, 99,140,102,165, 27,142, 23, 11,144,146,101, 33,193, 42, 41,104, 85,141, + 72, 80, 87,146, 42, 65,101, 20, 11,165,145, 90,228, 60, 5, 41, 48,117, 62,247,189, 82,140,165, 65,119, 74,176, 77,137,203,222, + 51,197, 68,111, 45, 65,228,186,161, 5, 68, 12, 40,137,170,107, 66, 18, 40,213, 48,197, 64, 37, 5,131,115, 72,165,168,149,193, + 11, 65, 91,213,212, 85,203, 40, 37,169,169,178,203,105, 93,103, 53,146, 49,176, 62,202,223,183, 75,100,187,226,173,122,193,186, + 94,209,180, 29,219,144, 56,238, 58, 90, 33, 16, 73,112, 25, 10,242, 58,175, 52, 68, 78,118, 76, 49, 92, 5, 11, 45,116,150,194, +202, 20, 73, 59,187, 63,136,230,251, 57,165,125,140, 43,169,144,250,124,174, 15, 59, 91, 92, 61,103,155,103, 81, 86, 87,133,141, +111,228,222, 91,106,230,109, 85, 38, 31,128, 46,236,229,199, 74,229,123,165,106,242,179,217, 84, 25,161,240, 49, 63,123, 34,223, + 51,191,152,162, 62,143, 88, 38, 91,243, 37, 32,181, 21, 62,164, 76,134,210, 85, 94,139, 5, 80, 74,224, 99, 68,146,168,171, 6, + 31,236, 85,252,222,228,125,254, 12,133,192,249,156,195, 27, 72,216, 16,104,170, 66, 34,136, 10,211,106, 22, 8,208, 26,149, 18, + 90,230,110, 41, 1, 21,130, 65,100, 73,205, 38,229, 41, 51, 10,153,181,232, 49,224, 93,204,156, 50, 37, 8, 62, 23,251, 33,120, + 92,202,204,236, 24, 35, 99,132, 62,120,250, 24, 72,200,204,240, 14,190, 4, 8,148, 64, 27, 93,244,145,136,124, 97,230,216,200, +196, 62,141, 71,138,167,243, 37,174, 23,247, 90,229,238,114,198,219,102, 59, 80, 37, 11, 73,162,252,172, 86,191, 56, 9,220, 79, +241,245,123,127,231,107,220,122,241, 6,155,203,158,224, 34,218, 24,172,245, 52,139, 54, 91,194,198,136,148, 26,163,107, 86,171, + 21, 74, 74,218,186, 97,189,236,184,115,210,178, 48, 38,135,163,196,196, 16, 34, 46,101,103,169,152, 50,193,173, 81,130,195,133, +230,164, 53, 40,169,136, 66, 32,149, 40, 9,158,217,182,210, 40, 65,109, 4, 38, 69,142,141, 32,200,132, 8,137, 74, 68, 84, 12, + 57,207, 33, 70,106,239,241,201,179,180,129, 42, 37, 86, 62,178,178,129,122, 10, 36, 45,216, 26,201,129, 79,172,133,196,104,193, +163,221, 64,255,193, 5,239,221, 59,103,221, 26, 94, 92,118,124,108,189,160,157, 50, 81,208, 40,137,140, 5, 1,104, 20,214, 58, + 46,118, 19, 39,109,205, 43, 71, 29,111,127,120,201,232, 2,219,205, 72,229, 28,255,201,167,238,242,189,139,158,155, 55,151,252, +222,151,223,228,226,252,146,127,253,103,239,240,192, 79, 60,217,246,120,225,120,235,206, 11,124,254,179,111,242,213, 47,125,146, + 47,127,238, 85, 78,215, 29, 66,230, 93,231,110,242, 92,236, 60,247, 46, 44,151, 59,203,131,139,137,243,222, 18, 98,160,149,176, + 16, 2,227, 97, 59,121, 54,193,211, 79, 62,251,229, 91,207,163,221,196,102,240,172, 42, 73,140,145,135,155,129,179,222, 49, 89, +135,179, 14,225, 60, 10,201,209,170,227, 51,175,223,229,229, 47,124,133,255,251,255,248,215, 57,175,161, 28, 44,210, 95,147,137, + 69,143, 8,165,224, 56,255,163,221,144,174,242, 2,124, 46,252, 70,102, 8, 81,201, 61,153,237, 39, 17,110,175,249, 84, 92, 65, +168,241,167, 40,234, 63,145,246,155,189,215,213,114,193,209, 65, 75,187,234,184,112, 9,173,107,182, 33, 97,141,202,197,113, 54, +172,215,138,187, 77,197, 82, 27, 42,165, 56, 82,134,148, 34, 75, 89,241,176, 31, 80, 82,241,161,183,249,144,181, 3,244,151,240, +248,156,203,243, 39, 12,110,100,229,123,118,195, 37, 38, 78,124,227,236, 35, 30,110,206, 73,211,192,125, 63,177, 19,130,247,188, +231,108,220,113, 47, 10, 30, 57,139,157,118,197, 83, 98,200,126,226,219,146,190,214,247,123, 9,148, 81,121,106, 83, 69, 69, 80, +155, 44,169,171, 91,184,125, 2,135, 43, 56, 92, 67,183, 34, 9,201,177, 50,124,108,181,200, 86,195, 82, 81, 25,147,215,137,214, +211,187, 28,103,172,188,167, 22,146, 78, 42,150,149, 34,166, 68, 39, 18, 49,101,237,183, 77,145,198,123, 52,130,131, 4,147,115, +172,148,230,176, 91, 16,165,164,107, 27, 84,101,168, 84, 38, 58,107,153,155,111, 33, 4,203,202,228,140,117,173,104,164, 70,182, + 21,210, 40, 82, 37,241, 90, 19, 73,104, 33,184, 0, 54, 36,198, 20,185,191,205, 6, 95, 83,185,222, 14,149, 45, 99, 5, 4,109, +202,252,148, 77,196,162,128,139, 24, 72, 66, 99,147, 66, 74, 69,212, 53,171,170,195, 55, 29, 72,141, 93, 28,146,154, 85, 38,149, +181, 11, 88,173,203,212,190, 0,221,241,114,187,228,160,238,216,121,139, 87,154,133,214, 12, 49,224,131,167, 82,146,179,164,114, + 79, 37,184, 82,103,164, 82,156, 59, 37,145,222, 49,140,142, 3, 2,227,197,112,141, 63,146,246, 5,125,230, 89,205, 77,239, 60, +237, 79, 37, 5,212,239, 19, 8,111,221, 57, 96,183, 29,185, 50,194, 87, 50, 15,139,241, 90,252,175,187,214,252, 94, 95, 51, 24, +189,207, 91,160,112, 96, 22, 93,177,204,205,218,251, 95, 92, 81,191,218,131,101, 61,168, 77,138,182,109,104,141, 97, 8,174,176, +210,179, 49,136, 80, 57,116, 37, 38,143,245, 46,203, 39, 84,254,164,146,144,196,148, 99,247,108, 76,164, 36, 72, 82, 17, 98,202, + 19,161, 84,116, 70,210, 8,129, 12, 1, 76,246,240,110,133, 32, 37,129, 18,137,209, 69,108,138, 36, 31,176,193,102,233, 84,200, + 12, 76, 31, 2,155,209, 34,101, 78,104, 27,125,222, 51,217, 16, 17,161,192, 61,209, 35, 82,214,173,167,232,114,184,203,149,193, +198,124, 65,253,222, 9,104,198,153, 99,186,182,159,190,214,149,137,107,197,125,142,168, 20,229,130,151,192,135,156,223, 91, 96, +200,182, 45, 17,128, 41, 67, 53,146, 31,195,120, 44,196, 12,253,243, 64,248, 58,235,111, 77,115,229,189,253,181,255,226, 63, 67, +104,201,246, 98,160,238, 26,148, 86, 8, 33,177,195,132,115, 33,239,193,155,134,227,163, 53, 70, 85,156, 28,175, 57, 62,104,185, +113,220,114,212, 84,104,157,229, 44, 83,204,122,241,236,230, 38, 48,228,130,189,106, 53,141,201,112,116, 16, 18, 49,127,160, 69, + 2, 74, 74,212, 2, 14, 4, 24, 18, 50, 9, 68, 8,136,224,145, 49,178,142,145,161, 36, 61,109,198,128, 72,145, 49, 6,156,207, + 28,137,218,122, 6, 34,113, 81,243,242, 54,240,250, 31, 93,112,120,182, 99,167, 34, 27,231, 9, 49,114,107,107, 57,254,104,200, + 65, 24,117, 69, 28, 29,195,251, 79,232, 14, 52, 71,171,134,203,126,100,107, 3, 90, 8, 30,109, 50, 83,255,243,183, 14,185, 85, + 73,254,224,155,223, 39, 4,203,189,203, 29, 34, 73,150, 46,241,237,203,158,117, 91,241,198,199, 95,230,226,209, 5,183,151, 43, +222,122,233, 22,191,249, 43,159,230, 63,254,205, 55,249,181, 55, 95,224,230,170,131, 36,152,166, 64, 63, 69,156, 13,140,147, 99, +180,129, 20,178, 83,225, 16, 60,126,242, 56,235, 24,156, 37,216,128,247,158, 71,195,196,229,104, 11, 63, 33,225, 98,164,119,142, + 77,111, 73, 2,148,150, 37,250,118, 71,163,225, 80, 42,154,224,233,148,194, 40,133,208,154,151,111,173,248,242,239,124,149,237, +110,199, 15,190,247, 1,194,231, 92,172,235,155,244, 31,245,253,243, 21, 23,215, 38,240,103, 85, 24, 63, 81, 57,119, 45,128,229, + 42,112, 35,253,252, 50,207,217,202,117,177,128,131, 37, 31,191,177, 36,162, 89, 87,154,182,170,232, 42, 73,139, 68,213,134,157, +115,133,160,151,145, 49,175, 21,183,140,226, 86, 85, 51,248,145, 86,106, 82, 10, 36, 60,223,239, 71,150,227,150,203,190,135,205, + 6, 30,239,224,209, 6, 46, 31,227, 54, 61,103,147,229,113,140,124,184, 27,153, 66, 36, 93,108,243, 52,223,181,123,244,161, 50, +153,103,144,138,202, 68,170,252,188,121, 91,224,221, 25,237,112,208, 28, 66,187,132,163,195,188, 46,168,107, 88,175,243,254,125, +181,200,103, 64,215,128, 94,102, 7, 77,211,240,235, 77,131, 17,137,174,170, 8, 49, 15, 66,186,100,109, 92,140, 19, 38,129, 73, + 17, 35, 4, 77,165, 88,215, 21,150, 68,240,145, 74,148,224,197,157,167,213, 2,124,192, 72,168,124,160,173, 27,124,140, 44, 22, + 11, 26,163, 80,218, 96,140,201, 4, 89, 45,105,140, 42,214,177, 53, 85,211, 32,181,193, 52, 21,178,169, 16,198,100, 8, 92,101, +165,209, 89, 12,184,144,232,173,231,113, 8,236, 92,150, 59, 63,112, 14,139, 32, 9,149,179, 61,100,102,187,123, 33,139,195,181, +160, 23,134, 90, 72, 62,112,158,195,170, 35,153,154, 74, 43,164, 89, 80,235,134,180, 56, 96, 68, 33,164, 38, 84, 93,254,108,139, +179, 31, 72,100,221,240,153,170, 34, 36, 56,104,187, 43, 41,172, 18,130,133,105, 48, 82,224,189, 99, 19, 11,193,115,174,238,222, +194,228,112,211, 68,232, 51,129,111, 58,223,228, 85,211, 60,160,165,107, 3,109,145, 86,103,114,231,108, 21,158,246,202, 13, 55, +101,116,119,242,248, 85,151,249, 72,115,162, 91, 44,240,123,242,123,191, 16,165,158, 94, 73,205, 69,221, 22,146,156, 42,197,104, +134,252,117,169, 3,222,255,130,139,250, 92,204, 38, 11, 50, 49,104,141,151, 2, 31, 66, 86, 10, 72, 67, 72,158,209,251, 60,173, +120, 95, 82,180,114, 34, 90, 18,185,152,251,152,161,216, 84,138,101,144, 32, 16,196, 20,105,180,161, 13, 25, 82,234,148,194, 59, +143, 16,130,152,242, 4,226,125, 44,196, 55,207, 48,141,140, 49,225, 93, 62, 52, 61, 48,186, 9, 37, 2,214,193, 16, 3, 82, 8, +108, 0, 79,160, 18,121,114,151,222,210, 17,209, 8,130,119,212, 9,172,205,136, 66,110, 39, 75,103,230, 66,129,212,195,190,235, +154, 97, 51,113, 45, 88,226,122, 65,159,255, 93,138,124,193,107,185, 15, 25, 80,133,229,232,109,134,142,116,185,168,243,206,164, + 49,207, 88, 10,234,171,154,158, 9, 53,146,159,201,111,182, 91,192,114,149, 15,143,148,192, 77,124,237,247,255, 46,253,206,102, + 21, 64,109,176, 83, 64, 72, 73,240,158,232,114,188,224,173, 27,167, 28, 45, 23, 32, 36,181,210, 28,175, 26,142, 22,217,163, 64, + 75,145, 45,100, 67, 42, 62, 15,146, 74,100, 55,191,202,100,243, 24, 83, 75,100, 97,156,202,236,239,154,247,197, 36, 38,151, 57, + 21,146,132, 73,137,206, 7,142,125, 98, 25, 18,139,201,115, 18, 4, 75, 23,168, 99, 96, 51, 57, 84,130,203,193,131, 11, 12, 17, +132, 79, 28,104,197, 99, 5,175,254,233, 71,164,119, 62, 32, 61,186,100,249,161,101, 57, 70,170, 23, 14,168,180,194,125,240, 17, +219,179,115,158, 92,230, 29,109,244,145,135, 15,119,232,206,224,132,224,114,152, 72, 82,113, 99,221,177,181,158, 15,183, 61,175, + 31, 29,240,205,123, 27, 30, 93, 92,162,128,239,124,248,128, 11,167,121,247,254, 5,231, 54,145,132,224,213, 87,238,240,210, 43, +183,249,213,207,190,202,167, 63,118,147,174,170,152, 92, 96, 24, 3,206,229,149,210,224, 60, 23,125,158,206,157,205, 28,129, 80, +154, 67, 81,228,142,227,232,184,247,100,203,131,221,200,163,126, 98,179,243, 76, 33,100,251,219,152,145, 54,153, 34,206, 5,162, +144,140,219,137,237,110, 96,165, 53,119, 14, 22,172,201,104,198, 52,121, 62, 60,159,184,152, 38, 94,191,181,230,247,127,251,215, +249,222,253, 7,188,253,237,119,178,154,228, 57,178,119,241,203,132,130,174,187,161,205,171,167,249,217,248,121,215, 79, 77,149, +167,178,131,108, 10,115,171,174,185,177,170,168,181,206,121,246, 69, 95, 29, 16, 60,158, 66, 41,232,249,254, 27,164,224, 99,149, +100,231, 29, 85, 76, 12, 33, 16,237,136, 14, 1,227, 7,190,123,185,195, 61,185,132,179,115,216, 60,129, 48,229, 52, 53,173,114, +243, 61, 31,172,162,192,160,155,190,132, 93, 85,249,161, 44,169, 84, 82,107,126,115,177, 98,155, 18, 95,170, 42,156,243, 8,165, +153,250, 77,110,102, 78, 78,120,241,246, 33, 39,183,142,145, 93,205, 96,170, 60,129,181, 85,254,187,148, 44,251,213, 61, 84,155, +164, 66, 41, 56,169, 52, 85,242, 57, 51,193, 77,140, 62,177,115, 3,219,209,103,211, 72,145, 72, 81,176,104,154,220,115,104,129, +141, 89, 11, 48, 12,129,147,165,102,112,145,165,214, 8, 59,161,154, 6, 63, 77, 44,154, 54,123,177, 87, 53, 93,173, 73, 82, 81, + 27,133, 80, 58,171, 91,218, 6,105, 12, 81, 74,218,166, 98,170, 12,162,210,168, 90, 19,106,149,157, 69,203, 78,124, 32, 48, 2, +143,167,137, 9,199,217,148,159, 23, 43, 53,136, 64, 37, 43,134,152,245,239,173, 4, 41, 13,145, 72,171, 20, 59,159, 56, 53,154, + 3,221,208, 72, 69, 83,119, 12, 50,175, 2,164, 54, 28, 40,197, 67, 83,151,122,124,109,178,141,129,207,180, 29, 86, 73, 86, 34, +195,236,139,148,104,234, 58,187,144,138,132, 50, 6, 67,228,195,105, 44,133,215,102, 37,152,117, 89,129,209,143, 48,218, 76, 12, + 29,124, 57,223,217, 75,129,139, 12,143, 68,254,239,178, 52,153,221,236, 47, 47,178,122, 99, 28, 96, 24,192, 91,194, 69,159, 51, + 68, 76,189,223,151,207,158, 10,243,148,159, 10,140, 47,197,222, 6,151, 18,202, 53, 79,234, 85, 65,114,103, 71, 80, 5, 8,245, + 75, 40,234,209, 23,230, 97,222, 27,219,161, 39,182, 13, 90,104,158,216,129, 86,231, 28, 93,102,242, 67,202, 89,233, 46,230,253, +121,150,209,150, 32, 0, 41, 9,178, 28,248, 34,187, 18, 69, 34, 11, 99,184, 41, 5,143, 98,164, 65, 34, 82,202,150,130,228,152, +214,157,181, 88,239,177,206,177,179, 19,194,123,122,239,136, 33, 19,191, 54,118, 32, 18, 11,105, 61, 91, 20,202, 20, 17, 30, 66, +176, 28,214,130,228, 5,135,194,209,137, 72,229, 61,235,152,144,118,202,121, 46,209,102, 70,163, 47,228,136, 57, 96, 32, 81,164, + 10, 51,177, 70,238, 33,120,173,247, 63, 35, 69,134,243,107,147,117,149,226, 26, 4, 32,114, 72, 66,254,115,133, 16, 65,164,132, +126,231, 31,187,154,216,229,190,160, 95, 5,194,252, 12,135,162,187,182,191,219,110, 88,254,230, 87,248,173, 95,253, 20,211, 84, + 26,165, 72, 78,175,139, 9,103, 3,222, 71,186,110,201,205,227, 53,151,151, 3, 50, 9, 42,165, 88,116, 21,149,222, 79, 95,214, +103,216,125, 62,183,179,199,135,162,109,178,212, 76, 23,159, 1,163,115,122, 91, 61,183, 40, 9,132, 72, 84, 36, 84,140, 28, 68, +208, 46,230,136, 99, 23,168,166, 68,114,158,122, 12,172,166,200, 98,242, 76,187, 9, 61, 56, 6,231, 25, 1, 55, 57,110, 28,117, +124,253,157, 71,188,251,253,239,243,231,246,130,182,223,241, 82, 92,113, 28, 87, 28, 76,129,111,159, 63,225,255,217,158,243,225, +176,225,242,114,195, 7, 83,228,206,122,201,147,222, 17,158,244,200, 16,185,148,176,176,158, 79, 28,173, 56,168, 53,105,242,124, +253,124, 71,136,154,203,139, 77,118, 40, 12, 30,107, 61, 47,156,158,114,118,185,161, 94, 53,124,252,238,154, 59,167, 43,214,109, +110,192,108,136, 88, 27,113, 33,146, 68,194, 58,207,118, 59,114,177,181,196, 34,217,105,107,197,232, 34,219, 97, 98, 24, 61, 46, + 70, 38, 27,184,236, 71,250,193, 50,140, 14, 27, 60, 42,102, 88, 82,136, 50, 5,250,148, 85, 28, 49,209,239, 38,166,237,200,170, +173,185,209, 85,244,143,243,251,120,114,185,227, 79,223,190,207,163,135, 27, 38, 41,120,243,238, 17, 95,248,194,103,121,231,236, + 9, 63,248,222,219,136, 57,123, 69,254,255, 80,216,159, 53,140, 17,207,176,238,127,214,194, 62, 79,232,166,206, 26,126,165,161, + 53,220,237,106,148,146, 68, 4, 83,140,217,207, 2, 65,239, 3,103,214,239,137, 76,101,189,117,146, 18,107,145,112,193,179,136, + 14, 25, 61,182,223, 16,237,196, 55, 63,186,128,199,143,114,198,249, 52,238,181,200,170,104,203,231,221,231, 48,230,130,222,111, +178,147, 85, 91,231,102,220, 84,252,206,193, 33,159,172, 58, 34,130,183,180, 66, 39,193,139,109,205,203, 6,206,124,100,168, 5, +111, 28, 29,240,202,241, 33, 90,183, 84,218,240,164,202,137,101, 68,177,255,156,230,231, 95, 23,167, 61, 45, 24, 99,228,118, 76, +172, 68,222,211, 39, 34,163, 29, 56,219, 78, 57, 2,181,236,133,181,202,136,155, 49, 21, 19,226, 42, 64,175,109, 4,155, 62,176, + 48, 18, 93,138,100,180,142,186,174, 8, 74, 32,170, 10, 37, 4, 65,107,164,201, 49,194,149, 81,200, 69,131,172, 12, 65, 27, 82, + 91,227,180,194, 40,137,109, 12, 67,202,205,250,133, 20,108,124,100, 72,145, 71, 62, 49, 88,143, 87,176, 29, 97, 23, 3,151, 66, + 18, 98, 78, 95,211, 66, 80,149,200,237, 24, 19,181, 42,225, 45, 49, 51,172,106, 99,168, 83,162,170, 13,222,122, 78,234,138, 42, +194, 11,181,225, 8,193,155, 50,113, 39, 56, 78,149,100, 45, 5,189,119, 56, 93, 17,195,196, 18, 65, 37, 52,173, 16,140, 34, 81, + 33,139,181,109, 34, 12, 3,223,158,118,244,187,203, 76, 94,180, 54,255, 26,134, 34,207,140,123,185, 89,165,242,112, 61, 7,192, +204, 82,184,201,231, 41,124,217,148, 28, 4,149, 73, 13, 90,149,123, 62,229, 51, 61,204,107,166,144,173,100, 43,246,238,135, 49, +230,154, 50,115, 77,124,220, 35,186, 54, 94, 65,247,121,184, 83,249,204, 15,215,184, 40, 74, 92,237,222,127, 9,147,122,121,129, +174, 64,241,210, 16,140, 98, 23, 45, 70,228,160, 22, 67,246,130, 31,131, 67,201, 66,164, 74, 30, 33,114,196, 94,109, 12,158, 28, +143, 55, 69,135, 20, 2,147,189,152, 56,109, 43,106, 41,217,133,136,241, 33,195,243, 49,129,119,164, 16,233,125,118, 43,147, 68, + 30,122,203,100, 7,156,207,233, 95,147,183, 4, 63,162,133, 96,176, 22,165, 42, 52, 46, 71,112,134,188,244,111,107,133,242,129, + 3,149,243,126,187,224, 57,210,138, 83, 2, 47, 74,201, 82, 6,238,187,140, 44,228, 2, 91,118, 33,178, 92,120,161, 74, 22,178, +216, 67, 52,130, 43,136,249,106, 82,159,245,238,243,142,189, 18,101, 98, 79,217, 34, 51,228,169,248,138, 84, 49,195, 49,110,182, + 69,140,251,162,222,204,122,201, 31, 1, 95, 54,101, 39,167,170,103,124,195, 99,238, 78,167, 1,136,188,240,201, 55,249,213,207, +189,145,185, 5,228,233,220,187,148,239,237,201, 19, 92,228, 96,217, 33,181, 70, 75, 69,215, 85,156, 28,118, 28, 53,154, 69, 49, + 86,240, 62, 50,134,136,247,137, 24, 18,181, 18, 28,180,134, 69,163,203,208,146, 89,234,137, 68, 42, 5, 74, 20, 34,180, 22,130, +138,196, 65, 72, 84, 33, 82,249, 68,116, 30, 19,161,241,137,106,138,132,148, 48, 54, 80, 5,193,194, 69,236,229,128,159, 44,155, +113, 66,251, 64, 60, 90, 48,164,200,159,252,225,215,249,232,222, 35,126, 48,246,124,119,154, 88,250,115, 78, 82, 98,225, 26, 22, +182,231, 27,118,203,219,195,150,209, 59, 90, 37,114,248,207,232, 57,117,137, 35, 99,184,115,216,162,106,201,106,200, 17,195,109, +109,208,222, 99,181,192,138, 6, 59, 12, 60,217,230,164,192,143,127,226, 46,175,188,122,194,205,227, 5,139,218,228, 9, 37, 68, + 38, 23,176, 62,146, 66, 64, 41, 65,112, 41, 31,178, 49,225, 93,206, 60, 88,180,154,182, 49, 89, 46, 84,154, 64,161, 4, 82, 8, +164,204,100, 78,161, 37, 74, 8,142, 14, 91,140,204, 76,246,101, 83,177,236, 12, 74, 72, 46,118,142,237,110, 32, 88,199,199,142, + 86, 52, 66, 50,158,239,104,140,224,219,247, 47,121,251,254, 3,108,121, 61, 30,137,233, 42,190,242,197,207,240,254,163, 39,188, +243,246, 59, 63, 84,208,127,121, 83,250, 51,127,145, 42,178, 80,193,207, 94,216,103,189,122,183,202,240,116, 85, 28,224,148,230, +102, 91,209, 41, 73, 37, 4,145,148, 3,157, 82,226,193,232,185,152, 27,234,170,200,222, 82, 66,198, 68,149, 28,167, 74, 96,199, +137, 46, 38, 6,231,249,223,191,123, 31,206, 31,237,245,199,179,182,127, 38, 23,150,184,103,198, 18,248, 49,108,243,255, 51,148, + 52,186,245, 33,111,173, 79,136,194,240,226,162, 70,167, 72,146,134,166,110, 89,152,196,102,130,117, 85,113, 88, 41,222, 88, 45, + 57,110, 23, 28,106,205, 73,211,112,223, 6,122,202,144, 48, 67,176, 51, 3, 58,132,220, 68, 12, 61,182,239,217,248,158,247, 54, +143, 89,226,120, 50, 90, 54, 46,177, 75, 2, 23,178,140,152, 36,145, 73, 16,164,162, 50, 26, 33, 53, 70, 81,162,172, 5,210, 64, + 35,178, 83,227, 36, 36,161,172,109,186,186, 70,154, 26,154, 26,165, 20, 65, 74,124, 93, 97,171, 12,195, 39,165,241,203, 38,219, + 17, 24,197,164, 21, 35,145, 73, 8, 54, 33, 50, 6,207, 37,137, 15,139,187,231, 35, 18,219, 9, 6, 59,241, 40, 9,100,176,140, + 54,114, 88,235, 98, 50, 37,209, 66,208,201,172, 78, 74, 49,225,129, 70, 40, 86, 82,228,248, 12, 1,134, 44,109,238,164,160, 53, +130, 90, 4,166, 0, 7, 58, 80,197,200,218, 79,220, 82,134,147,232, 89, 0, 55,147,224, 72,100, 23,184,149, 84, 52, 9, 68,242, + 28, 86, 42,167,114,110,206,121, 24, 38,164,247,164,217,131,221, 23,178,104, 40, 59,241,121,205,170,138,110,221, 21, 20,198, 22, +146,105,125, 45, 33,110,142, 37,158, 83,212,196,108, 97,107,138,148, 45,101, 36, 32,165,140,188,136,194,199,210,133,217, 78,225, + 86, 12,197,219,100, 30,228,102, 78,151,143, 25,225, 85, 5, 5, 16,242,169,200,237, 95, 78, 81,191,218,177,205,145,136,249, 67, +177, 90, 48, 17,152,130, 71, 81, 58,187, 16, 73,228,195, 58,196,108, 19,104, 67, 64, 25,195,224, 44, 70, 27, 36,138, 49,120, 42, + 45, 88,104,133,145,154, 24, 2, 90, 40, 38, 63,230, 32,151, 16,232,157,167, 34, 34, 99,226,131,221, 57, 83,244,164, 40,232,221, +142,157,243, 36, 17,168, 35,140,193, 19, 66, 36,122,139, 18,130, 42, 6, 42, 34, 73, 68, 26, 31,104,133,164,177, 19,173,144,172, +132,100,233, 39, 14,148,196, 36,184,237, 35, 15, 35,108, 66,122, 58, 87,189, 47,145,172, 46,114, 69,163,116, 37,206, 79,138,167, + 13,253,231, 29,251, 12, 21, 93,143, 5,156, 97, 60,165,242,133, 27,167,156,210, 21,203,254,125,150,188,204,100,166,166, 2,189, +200, 55,198,243,100,137,186,184,103, 41,145,161,160,107,210,135,103,191,190,242,213,175,240,137, 79,190,140,115, 30,103,195, 21, +146, 49,237, 38,236,232,105,154,138,151,111,157,102, 50,142,209,172,219,134, 27,135, 45,203,198,228,200, 85, 33, 25,125,192,167, + 68,163, 5,198, 72,106, 45,105,180,202, 69,173,120,236,199,226,207, 30, 82, 38,212,205,156, 4,145, 18,186,152,101,132, 24,145, +206,103, 93,108,140,212, 67, 36,141,158, 48, 89,170,222, 35, 54, 22, 51, 68,218,221,132, 25, 6, 46,157,229,116,217,146,110, 29, +240,231,127,241, 54, 15,254,234, 67, 54,187,145, 7, 33,178,182,129,255,115, 24,249, 87,219,135,124,142,137,151,150, 47,241,107, +171, 83,110,121, 71,140,158,101, 63, 34, 71,207,105, 76, 44,235,154, 87, 63,113,135,218,200,236, 53, 52, 6,134, 40, 16,173,161, + 94,183,156, 46, 27,110, 31, 53,188,250,210, 77,236,164, 88, 28, 29,240,242,171,167,188,112, 99,197,113,151, 49,135,221,232,152, +108, 96, 51, 76,108,139,115, 30, 62,102, 4,195, 23, 87, 44, 41, 88, 46, 42,150, 93,195,106, 81,179,236, 42,150,181,193,212, 58, +255,188, 72, 24,163,168,107, 67,221, 24, 14, 15, 90, 94, 56, 94,160,181,198,249,196, 65,171, 81, 82, 18, 4,156,157,109,153,134, +137,197,178,229,215, 94,185,137, 74,129,113,176,140,214,241,205, 7,231,108,199,158,139,237, 37,253,206, 34,162, 33,136,192,139, +183, 14,249,244, 91,111,241,191,253, 47,255, 34, 67,185, 60,237, 33,195, 53,250,200, 47,244, 76,144,215,238,249,171,221,100,250, +233, 25,238,186, 16,226, 22, 93, 38, 70, 45,234,188, 62,146, 34,203, 35, 4,156, 84,146, 70,107,180,202, 25, 2,147,119, 60,153, + 60,239, 88,155,243,176, 67,200,242, 84, 37,192, 59, 46,173,229,174,145,220,219,245, 40,231,248,112,179,229, 59,143, 47,185, 56, +219,228, 61,167, 20,185,160, 63,203, 25,240, 62, 79,116, 67,159,201,110,206,239,223, 99,183,132,163, 19, 42,165,121,171,109,144, + 85, 69, 72,134,182, 85, 76, 46,241,104,242,116, 74,208, 39,184, 89, 25,142,234, 26, 41,178,198,220,199,192,221,166,226,219,219, +205,222,247, 34,148,215,221, 15, 25,254,223,141,249,239,222,245,236,166, 29,231,214,241, 97,138, 60,118, 22,155, 4, 74, 42,148, +144, 24,165, 72, 49,161,148, 65, 10,205,132,160, 85, 50, 7,181,104,197, 20, 35,203, 90,226, 35,180,181,102,244,129,182, 50, 36, +153,243, 43,188,148, 8,173, 24,148,194,214, 6,140,194,105,201, 84, 12,166,166, 36,178,126,187,220,179, 81, 42, 70,145,232, 37, +156, 91,201, 35,151,232, 93, 96,227, 19,187,157,101, 20,137, 29, 2,239, 45, 42,122,106,153,153,226, 41, 38,100,242, 36,165, 72, + 33, 34,136, 36,231,137, 49, 81, 37, 79, 10,137,174,201,180,254,101,107, 48,209,161, 91,141, 8, 1,165, 36, 43, 63, 50,197,136, + 9, 14, 41, 43, 12, 35, 11, 17,208, 41, 33, 9, 24,169, 57, 81,137, 24, 45,210, 91,214,149,198,184,137,237,238, 17,219, 97,226, +141,174,226, 52,194,199, 14, 22, 52, 82,179, 90,180,152,186,161,151,197, 9,116,206, 68,143,177, 16,158, 51, 7, 33, 59,195,145, +207,254,144,138,107, 99,249,185,121,186,118,110, 47,225,148,101,152,107,187, 2,223,135, 18,215,170,247,205,102,136,185, 89,104, +179,185, 87,110,234,102, 20,188,172,122,221,236,198, 88, 76,118,230,181,112,226,151, 88,212,103,239, 92,101, 50,100,165, 51, 29, + 63, 33,136, 90,177, 11, 57, 33,104,231, 45,187,224,168, 11,148, 97, 99,200, 19, 11, 96,180, 33,164, 64, 18,217,110, 84, 8, 67, + 27, 1, 17,104,165,100,240, 83,142,147, 37, 96, 39, 75, 45, 37,113,154,120,108, 71,124,140, 60, 25,119,132, 24, 8, 62, 18,131, +163, 70, 50,133, 60, 41,117, 66,144,130, 43, 68, 45, 80,193, 97, 66,164,142,158, 54,122,140,144,116,222, 35,162,163, 81,138, 38, + 70, 66,138, 52, 74,241, 58, 9, 47, 2,247, 41,172, 69,235,179, 67,148,203,157,255,213,105, 40, 10,185,221, 22, 24,231, 58,185, + 2,114,199, 55,107,117,103, 24,134, 82,208, 99,129,244,187,106,239, 53, 28, 75, 19,225,228,149,124, 1, 89, 18,133, 92,137,250, +123,222, 65, 42,234,124, 19,142, 33,147, 65,126,196,215, 87,190,246,219,220,190,115, 74, 72,137,105,242, 72,173,114,156,234,228, + 73, 17, 94,188,123, 11,211,214,184, 40, 80, 82,114,235,112,193, 65,103,168,180, 70, 25, 93, 44, 99,243,155,175, 5,104,153,173, + 98,141,201, 42, 6, 31, 50,194, 33,201, 33, 43,179, 58, 34,250, 76,120,147, 33,171, 34,164, 15, 40,159,144, 62, 34, 99, 36,217, + 64,216, 58, 98, 63,145, 98, 36, 61,238, 81,151, 35,141, 75,212, 83,192,244, 61, 43,165, 56,190,125,204,187,222,243,207,255,213, + 31, 82, 77,129,197, 24, 24,183,150,205, 54,176, 14,137,175, 4,205,215,197,200,203,227, 64,167, 43,110, 45, 78,120,109,117,204, +189,221, 57,239,143, 27,150, 49, 49, 34, 88, 13, 96,146,100,177,108, 57,124,229, 20, 35,178,150,250, 34,134, 76,222,116, 17,173, + 18, 47,220, 61,228,213, 87,110,241,226,141, 37,181, 82,217, 29,213,121,206, 46, 39, 98,140, 89,122, 86, 24,150, 62,100, 59,219, + 24,178,245,237,162, 49, 28, 29, 52, 44, 23, 13,139,174, 66,203,108,247, 89,107, 81,162, 40,115, 81,151, 5,213,104, 42,195, 65, +219,228,117,145,115,220,174, 43, 86, 81,162,109,228,133, 69,195,127,244,218,109, 62,251,194, 17,211,100,209, 34,113, 57,120,254, +226,131, 71,124,251,163,119,217,108,123,222,184,241, 2,127,247,243,111,178, 17,112,118,177, 99,181,106, 57, 58,232,248,239,254, +254,239,241, 63,255,175,255,226, 74,158,155,126,217,211,250, 92,244,230,102,119,110,116,159,149,193, 61,175,168,107,160,106, 88, + 31,174,160,109, 81,181, 65,181, 53, 65, 23,143,136,178, 82, 58,139,154, 70, 75, 54, 46, 63, 95, 46,122, 38,155,232, 73, 76, 59, +187,223, 80,217,144, 97, 83, 27,248,224,114,224,254,227,129,239,159,143,188,255,228,130,139,203, 93,150,246,201, 50,141,205, 46, +117,206,255,176,253,238, 15,153,232, 40,136,134, 91,183,143,249,237,155,119, 72,186, 35,134,244,255,209,246, 38,191,150,101,215, +153,223,111, 55,167,185,237,235,227, 69,151, 17,217, 49,147, 20, 51, 37,153,106, 76,169, 40, 74,150, 68, 89,178, 74, 50, 92, 5, +215,192,240,200,255,131, 97,120,230,145,231, 5, 15, 12,123, 96, 24,112, 21,108,192, 48,224,129, 97,187, 44,168, 76, 74,114, 73, + 44, 50, 73,145,148, 72, 38,153,109,244,205,235,110,123,206,238, 61,216,251,190,251, 50,197,164, 26,144, 1, 4,162,121,209,188, +119,239, 57,103,237,181,214,247,253, 62, 82, 8, 72,213, 34,165,196, 83,226,160,221,154,221, 90,101,123,175, 20,164,224,169,132, +160, 15,150,153,117,172,186, 46,231,107,172,186,220,157,207,250,172,154, 95,173,243,239, 13,170, 92, 92, 26,133, 9,158,105,219, + 34,145,196,148, 24,212, 77, 22,170, 74,157,199,216, 34, 51, 33,188,208,120, 41, 89,198, 60, 13, 90,117,129,118,160,152,245, 30, +169, 20, 42, 70, 68, 91, 17,139, 69, 25, 9,125,147, 85,233,243, 40, 9, 40,146,172, 48, 73,226,132, 32,216,200, 10, 73, 74, 18, + 39, 83, 78,236, 52,121,245,228,188,103, 21, 96,217, 59,140,144,184, 4,206,121,180, 51,116,206, 82,135, 44, 34,139, 41,230,157, +125,112, 84, 34, 98,173, 5, 34,202, 90,100, 18, 52,210, 81, 37,145, 47, 27,160,138,137, 73, 12, 4,161,168,141,193,120, 75, 74, + 48, 20, 2,153, 28,163, 16,152,232,154, 58, 24,110, 84, 13, 35,183,162, 37, 49,244, 22, 29, 44,202,117,216,110,129, 13,142,137, +132,147,229,138,241,160,166,213, 21,173, 18, 12,181,100, 90, 73,246,154, 58,175,111,154,188, 86,184,188, 78, 55, 40,223,205,179, + 59,149,134,108, 35,100,219,120,215,131,223,194,103, 92,204,117,162,109,242,117, 39, 85,174,143,170, 52,134,178,172, 88, 55, 26, + 10,227,183,129, 93, 27,140,183, 15,219,213,238,230,112, 92, 93, 33,214,241,211, 46,234,148,253,130,208, 37,231, 86,129,177,229, + 96, 35,232,140, 5,157, 71,242,107,219,163,149,198,197,128,172, 52, 34, 9,250,224,137,228, 46,183,213,117, 22,210, 5,207, 88, + 39,150, 41,114, 32, 21,214,152,236, 97, 12,145,181, 51,152,232,209,222,176,182,150, 14,232, 76,199, 88, 8, 6, 74,177,180, 61, +149,212, 52, 66, 32,124,200, 63,166,132,243, 61, 3,149,119, 54, 10,168,131, 99, 15,137, 75, 9, 29, 28, 93,140,244, 62, 49, 70, + 82, 87, 13, 85, 8,236, 9,197,169, 12,204,131,202,111, 84, 42,124, 97,159,182, 34,135, 84,146,220,144,121, 68,158,194,214, 68, +186,185, 24,196,166,187,143, 91,121,189, 16, 91,164,103,218,228, 66,171,242,198, 54,133,153, 93,222,104,177,201,118,239, 63,185, +187,241, 54,139, 62,194,143,143,246,251,226, 31,254, 46, 85,163,233, 58, 71,138,217, 49,176,188, 88, 17, 34,236, 29,238,241,185, +215,111,163,165,198,133,132, 78,146,195,253, 1, 90, 72,132,144, 37,218, 54,223,116,141, 18, 12, 90,141, 86,130,186, 42, 59,249, +144,217,236,214,167,188,103,246,185, 91,143, 5, 42, 35, 67, 64,165,128,176, 30,225,178, 93, 74,184,128, 48,158,212, 57,150,243, + 21,189, 11,120,145, 48,179, 37,118,181, 66,122,136,222, 33,131,103, 52,153, 50,120,233,128,239,124,245,187,124,248,205,135,172, + 83,160, 78, 2, 29, 35, 79, 86,158,207, 10,197, 43, 85,197,211,149,227,105, 88,163,100, 71,131, 96,111,116,192,117, 52,149,183, +124, 79, 4,214,109,195, 9, 9,191, 50,236, 92,159, 34,142,198,132,186, 34,145, 80, 38,176, 91, 41,186,121,199,105,128,107, 7, + 99,148,206, 94,221,139,206,242,236,124,205,247, 63, 60,163,235, 28,107, 27,112, 54, 79, 37, 82,204,135,154, 16, 50, 1,177,173, + 43,166,147,134, 65,157, 15, 68, 66,200,252,241,152, 10,219, 62,146, 95, 21,145, 71,249, 46, 96, 35,216,152,184,247,112, 65,191, + 10, 60,120, 48,227,254,189,103,252,249, 95,189,205, 7,207,206,152, 45, 44, 55,119, 26,246,235,154,163,131, 9, 73, 43,126,238, +238, 17,186,217, 97,247,240, 58,255,209, 47,188,134,214,130,183,159, 93, 32,149,230,217,210,240,221,119, 31,243,243, 47, 93,231, +248,211, 63,195,159,124,249, 43, 31, 37,204,253, 52, 58,245,143,143,225, 55,202,119,119, 69,107, 18,127,140, 10, 94,106,104, 7, + 28,238,143, 24, 13, 90, 68, 91,163,180,194,164,180, 77,136,139,128,204,135,197, 59, 26,166,178,172,209,128,123,157, 35,108,160, + 33,155,233,128,119, 89,125,190, 92,100, 63,113,232,242, 56, 93, 52,185, 59, 55, 54,119, 79,222, 95,153,132,233, 43, 10,228, 43, +157,210,230,254,211, 10, 14,246,184, 51, 29,115,115,239, 0,106,201,163,222,146,170,154,161, 86, 60,178,158, 38, 88,230, 41, 50, + 86, 21, 82, 6,234,148,115, 38, 92, 12,136, 96,185, 88,175,248,206,147,115,152,149,207,107, 54,135,110,145, 5, 87, 33, 22,180, +115, 17,231, 14,244,101,241,181, 34,139, 2,155,170,201,152,101,145,175, 36,165, 42, 66,180, 36, 33, 73, 41,219, 72,173, 7, 71, +202, 49,213, 94,160, 10, 69,173, 71, 35, 43,129, 81,146, 80, 73, 86,165,128,172,125, 78,157, 11, 85, 69, 36, 97,149,190, 4, 9, + 7, 33,233,125,190,175, 29, 69, 35, 66,162, 79,130,245,218, 20,109, 84,192, 90,131,242,142,149, 51,168,232, 16,214,100, 26,104, +138,164,224,209, 41,209,245, 29, 58, 6,170,224,105,132,163, 9, 61, 83, 36, 45, 48,137,121,157, 53, 44,147,189,161,203,147,176, + 16, 28,117, 48, 84,206,101,231, 71, 74,244,174,231, 90,138, 56,187,228, 64,106, 6,206,144, 92, 79,116, 6,172, 69, 4,159, 19, +196,131, 97,119, 48,160, 15, 1, 65, 98,191, 30,208, 5,135,148, 50,195,110,180, 98,160, 21, 39,182,192, 98,184,194, 87, 80,229, +181, 23,101, 18,170, 84,185,126, 82,158,190,202, 82,120, 59,155, 15, 96,155,105,236,166, 16, 55,162, 68,181,214,219, 76, 3, 91, + 82,232, 90,189, 21,202,109,186,243, 77, 96,204,102,220,158,210, 37, 15,109,147, 64,248,211, 45,234,155,229,253,120,148,111,214, + 84,226,239, 66,184, 44,108,193,249, 60,122, 39,209,199,252, 66,166,148,195, 86, 98,138, 40, 52, 81, 36,130, 40,191,142, 17,157, + 18, 85, 8, 44, 82,162,242, 22, 99,122, 68, 74,248,224,136,165,155,122,102,215,244,222, 50,148, 42,239, 52, 67,100,162, 53,222, +247,200, 24, 25, 10, 65, 75, 62, 36, 72, 4, 49,120,170, 24,153, 58, 75,171, 27,156,181,232, 24,169,144,232,178,230, 78, 82, 17, +189,163,115,129, 97, 74,236, 42,197, 66, 9,230,126,227, 83, 44,249,209,193, 21, 53,123,121,179, 93,151, 11,111,111, 74,151,144, +242, 27,211, 86, 57,150,213,199, 45,102,179,173,202,232,165, 46, 73, 61,165,160, 19, 63,234,133,244, 41,243,228,125,252,123,198, +113,234, 79, 20,211,253,218,239,253, 22, 90, 75,124,136, 40, 41,177, 54, 98,123, 75,211,182,220,186,117,192,181,241,136,103,179, + 14, 25, 97,111, 90,177, 55,200, 33, 60, 82,100, 76,175,146,185,131,175,148, 64, 41,145,193, 41, 34,175, 85, 98,140, 5, 50,147, +139,151, 40, 86,142,252,251,249, 59, 33, 16,173, 39,244, 22,187,182,152,165,193,251, 64, 90, 91, 22,243, 62,167,231, 89,143,233, + 12, 23, 93, 15, 50, 50,235, 23,116,193, 51,216, 25, 83,239, 14,185,241,175,254,146,207,215, 53, 39,115,195,227, 51,195, 13, 39, +120,147,138,159, 19,138, 87, 15, 70,204,206,123,206, 26,112,195,134,239,164, 53,207, 87,103, 28, 70,201,167,135,183,249, 25, 53, +228,184, 64,112,118,218, 1,182,179,220,179,150,249,189, 25, 79,223,123,206,243,103,115, 46, 90,201,153, 84,188,122, 56,102,168, + 20,203,165,225,100,217,241,100,222,241,248,249, 34,251,133, 3,152,206,227, 66, 44, 70,137,172, 27, 24, 13, 42,118,199, 3,118, + 39, 45,131,186, 66, 43, 81,120, 70,145,206, 6, 58,235,233, 92, 22,240, 72,160, 77,208,219,128,183,129,197, 69,207,163,179, 37, + 23,179, 5, 15,159, 60,226,237,251,239,115,210,173,161,170,169,135, 19,244,206,136,119,151,150, 71, 1, 78,156,229,157,147, 37, + 43,227, 56,239, 60,198,122, 30, 44, 87, 60, 92, 27,144,130,231,103, 43,238,253,224,125,254,234,237,239,112,178,148,168,225,144, + 55,126,254, 13,190,246,231, 95,253,177,182, 54,241,147, 44,234,155,130, 30,210,214, 1, 10, 63,158, 42, 87,143,184,125,125, 2, +170,197, 87, 21,163,182,165, 45,221,146, 9, 27,145,104, 4, 19,105, 98,228, 88,230,195, 98, 68, 18,149, 96,105, 29,235,116,165, +131, 10, 33,119, 81,253, 42,227,159, 69, 25,159, 59,151,255,157, 13,251, 59,132,143,118,227, 90,110, 39, 3,162,236, 69, 21, 91, + 29, 77,165, 96, 56,230,100,103,135, 32, 43,188, 28, 82, 75,149,137,153, 85,205, 52, 37,116, 59,166,151, 31,150, 0, 0, 32, 0, + 73, 68, 65, 84, 68, 57,203,154,196,131,213,140,212, 45, 25, 36,203,136,132, 89,175,120,251,249, 41,103, 79,207,225,244, 28,204, + 34,143,248,157,223, 38,143,137, 43,150,192,166, 42,124, 11, 73, 40, 73,103, 85, 81,229, 87,178,202, 56,255, 16,208,170,130, 36, +112, 49,101, 16,151, 20, 68, 45, 25,106,133,208, 2, 47, 65, 10, 73,146,130, 46, 9,180, 86,244, 46, 3, 90,214, 17, 86,101, 28, +111, 99, 34,181, 13,222,231,189,242,178, 60, 51,214, 34, 15, 31,215, 49,178, 10, 89, 95,227,124, 94, 69,197,126,133, 11,249,192, +110, 92, 79,109, 13,206, 91,132,144,196,100, 81, 66,162,162,197,251,136,116, 61, 42, 6, 68,232,104,131,167, 1, 92, 48, 76, 19, + 88,179,100, 39,102, 58, 95,244, 22,101,215, 40,179, 38,121,135, 54, 29,149,115, 8,111, 17, 49, 48,241,158,224, 61,123, 82,242, +217,221,107,156, 46,207,105,189,167, 74,130,140,197,202,225,153, 83,221, 32, 82,100, 44, 53,109,193,187,106, 41,177, 49, 80, 41, +137, 11, 1, 37, 36, 59,117,195,233, 98, 85,130,137, 68, 46,210, 87, 69,151, 27,107,241,230,186, 81,133, 74,103,202,179,190,183, + 37,169,176,172, 28,219,122, 27, 10, 22, 92,238,196, 99,216, 10,165, 55,226, 99, 81,158,247,170, 68,105, 27,183, 61, 40,108,198, +239,136,172,143, 82,250,167, 88,212,181,222, 98,237, 98,202,106,208,210,117, 95, 22,187, 75,225,129, 33,149,194,110, 17,180,149, +102,237, 93, 73,118,203,129, 3, 74,128, 8, 14, 79, 22,182, 12,100, 66, 57,139, 41,222,192,133, 91,103, 36,108, 76, 92,248, 14, +235, 3,193, 27,214, 49,112,144,114,172,106, 8,129, 29,161, 72, 49,160,145,168, 80,216,190, 18,140,143,232, 8, 59, 90, 82,187, +144, 69,166, 41,191,245, 41, 4,156,204,187,238, 20, 34,227,186, 98, 46, 19, 58,229, 16,146, 71,193,103, 62,188,247,219, 44,242, + 20, 75,113,247,219,241, 9,105, 11,228, 15, 62,139, 37,172,221, 90, 24, 68, 33, 8,109, 34, 93, 55,227,149, 84, 70,237,227, 97, +126, 29,155, 58,255, 25,235,254,142,120,223,171,133, 60,254,200,194,254,230,239,255, 30,191,240,139,159,166,183,158, 80,110, 72, +211, 89,108,239,184,118,243,144,227,221, 49,141, 84, 44, 59,203,238,168,229, 96,212, 50,104,117, 86,189,139, 92, 8,107, 41,242, +186, 73, 10,116,233, 16,124,200, 5, 93,144, 49,167,174,160, 78, 19, 89, 9, 46, 55, 95, 91,200, 59,162,208, 91,170,181,195,134, + 64,176,185,192, 69,231, 73,189, 39, 25, 71,215, 25,122,219,115, 26, 29,115, 25,121,183, 91, 97,154,138,195, 79,223, 34, 62,152, +209,252,229, 35, 94, 29, 31,240,235,205,136,253,139, 53,225,169,231,200, 75,150, 83,201,122, 92,241,158,247, 40, 37,185, 23, 61, +231,227,134,119,149,224, 66,193,177, 82,140, 85,195,129, 28,178, 47, 43,118, 6, 3,166, 66,193,243, 21,247, 79,231, 92,191,189, +195,139,183,246, 56,184,177,203,145,208, 92,107,107,148, 75,216, 62,219, 35,133, 43, 89,238, 87,248, 17, 66, 10,234, 58,187, 3, +118,198, 3,246, 38, 67,246, 39, 13,131, 90,151,107, 59,255, 29, 23, 2, 49, 6, 66, 74,212, 82,146,124, 98,170, 18, 47,213, 53, + 79,103, 29, 31, 60, 56, 99, 54,155,227,188,229,112,111,196,231, 62,117,147,155,215,142,153, 14,119,217, 29, 78, 72, 69, 93,127, +231, 96,194,106,109,120,126,182,162,209,154, 51, 27, 88,199,196,193,225,152,221,189, 17,200, 12,117,154,159,204, 57,174, 27,246, + 38, 83,122,159,241,161,175,191,242, 2,191,248,239,252, 60, 95,249,202,159,125,100,191,254, 19, 47,232, 87, 21,240,155,164,171, +205, 84,235,111,163,202,141, 6,152,193,132,209,116,196,167,247, 6, 28, 14,106,118,107,205,245, 90, 49, 80,138,147,165,201, 15, + 78,103, 49, 46,146,148,230,104,216, 48, 80,130, 86,100,208,202,194,231, 96,161,188,251,235,243, 67,212,102,209, 25,190, 56, 82, +148,222, 78,202, 54,209,176, 31,103,214,111, 86, 7,170, 20,116, 41,178, 85,174,153,192,141, 99,216, 25,195,100,159,231, 85,205, +141,102, 68, 39, 4,123, 77,205,185,113, 56, 96, 71,193,137,181,248, 24,121,107,121,206,217,226,148, 39,103,231, 60,158,157,242, +214,163, 51,158, 62,124, 2,179,243,188, 46,251, 27,124,138,205, 1,191,220,198, 77,181, 77, 2, 67,208,167,128,144,130, 73, 53, +192,166, 68,163, 20,178, 76, 71, 68,138,136, 24,243, 72, 94, 66,244,130,145,202, 16, 40, 33, 37,169,146,132, 36,137, 74, 98,124, +202, 63,146,105,102, 46, 38, 58, 31, 17, 42, 23,241, 40,243, 10, 37,175,128, 99, 30,173,147, 19,212,164,247,172,124,160,235, 60, +209, 25,146,136,132,110, 13,206,144,130,205, 25,234, 66, 18,162, 45,169,184, 14, 21, 19,214, 27,218, 70, 66,176, 12,136, 4,223, + 83,153, 30,229, 3,209, 59,154, 20,113, 33,128, 55,200,224,136,166, 3,103, 17, 46, 79,236,156,235, 24, 34, 32, 56,132, 16, 57, + 47, 66,192,172, 95,229,116,199,226, 67, 15, 36,148, 80, 40, 18,158, 88, 66, 54, 5, 42,101,105, 70,231, 12, 29,177,120,230, 19, + 54, 6,150,214, 51,105,106, 22,222, 95, 97,244,139,220, 41,111, 28, 36,155,113,249,102,148,190, 17,198,165,194,160,135,237,245, +181,217,207,111,148,242, 87,121,241,226, 74, 81,247, 37, 20,198, 20,198,130,210,249,218,221, 96, 2, 67, 73, 51, 68,129,119, 63, +101,161, 92, 91,129, 87, 48, 29,230,125,238,168,217,226, 80,155,234,114, 92,128, 80,121,212,229,242,233,105,181,238,145, 85,131, +113, 6,161, 42, 70,186,194,186, 30, 17, 35, 50, 37,134, 41, 18, 17,212, 41,208, 71,199,202, 59,148, 80, 24,111, 89, 59,139,137, +145,148, 18,141,212, 76,131,197, 91,199, 80,107,134,192, 50, 6, 14, 85,141, 53,153, 24, 85,107,149,167, 5, 62,160,101, 22,105, +212,193, 51, 78, 20, 14, 61,151, 66, 5, 67,202, 76, 99, 18, 6,232, 82,204,227,254, 74,210,155,136,237,203,205, 31, 93, 17, 76, +168,252,117,171,143,189, 54,118, 51,122, 44, 63, 23,229, 77, 9, 69, 81,155,228,246,230,221, 60,232, 54,252, 71, 41,183,209,126, + 54, 67,117,127, 44,113,174, 41, 40,193,205,195, 74, 21,145, 71, 16, 31, 41,236,191,250,235, 95,224,248,250, 1, 62, 38,250,117, + 30,191, 59,147,245, 12,187, 59, 35,110,237, 78, 74,195,162,105,180,162,106, 84,222, 53, 35,112, 49,146, 82,188,124,206,233,130, +131,141, 41, 96, 93,192,197,108,187,202, 76,130, 13,140, 41, 79, 43, 68,140, 40,145,168, 82, 94, 45, 57,231,145,198,209,185,236, +231,118,214, 97,230, 61,177,239,113,171, 53,157,181,204,214,134,185,237, 89, 24,195,105,176,236,191,120,155,157,207,222,226, 43, +127,254, 13,222,250,139,251, 12,142, 21, 47,220,124,145, 23,118, 26,252,196,240,245, 39, 6, 33, 34,143, 71,112,126, 56,196, 95, +159, 50, 18, 2,150, 6, 81,107,226,193, 49, 15, 14,199,156,141, 43, 6, 71, 35, 26,169,209,109,141, 58, 24, 50,108, 27, 14,238, +236,178,127,123,143,118,210,210,122, 24,161,168,155, 10, 85, 41, 70,114,139,207,140, 49, 96, 67,164, 25, 86, 76,198, 13,215,246, +134,220,220, 27,113,109,119,196,193,116,192,100, 88, 51,110,106,180, 86,249,181, 8,145,152,242,136, 94, 10,201,180,209,236,141, +242,104,252,134,150,200,121,199,255,246,111,190, 75,112,145,122, 48, 96, 50, 30,241,194,241,148, 59,187, 35, 82, 76,188,253,195, + 71, 44,206, 47, 16, 62,112,234, 37,119, 38, 53,235,103, 75, 98, 31,217,213, 21, 55,246,134, 44, 58,207, 98,101,105, 27, 77,191, +178,200, 8,211,225,128,225,112,192,218, 71,108,200,195,162, 81, 91,241,218,171, 55,240,178,229,251,127,253,221,143, 20,242,191, + 79, 65,255,219,254,236,175,254,193,239,242,202,103, 62,203, 7,111,191,253, 9,171,162, 79, 56,164, 14, 91,216,221, 37, 76,134, +252,236,222,152, 73, 83, 19,132,100,164, 4, 74, 73,146, 8, 60,176, 41,143,203,215, 38,251,213,119,106,142,170, 28, 8,178,142, +145, 93,173, 8, 4,158, 47,138,255,184,187, 2, 19, 65,111,221, 35,162, 46,162,164, 79, 56,100, 92,213, 4,184, 50, 5, 31, 76, +144,119,239,114,243,238, 45,210,225, 17,118,178, 83,114,229,107,180,210,153, 1,159, 34,199,117,131, 35,160, 17,168, 20,121,104, +123, 78,251, 25,166,239, 88, 60, 62,229,236,222, 3,220,114, 1,203,213,143,159,190,109,178,224, 55,154,157,186,216,251, 66,118, + 4, 5, 41, 88,121,203, 78,221,162,132, 68,136, 92, 72, 66, 12,104, 85, 19, 69, 98,131,126, 10, 82, 49, 44,135,114,155, 68,110, + 10,149, 32, 59,234, 36, 65,102,124,240,218,102, 17,108, 42,207, 64, 81,236,136,202, 7,188,144,136, 50,117, 77,198,230,224,167, +222,129,239, 73,222, 18, 76,143,138,158, 24,115, 98,156, 19,130,228,123,156,207,137,107,222, 88, 76, 74,232,148, 8,201, 51, 66, +226,125,207, 40, 74,186, 16,169, 69, 34,152, 14,153, 32,218,142, 58,120,162,115,140,200,235,170, 97, 10,196, 4, 67, 85,177,246, +134, 86,230,152, 85, 73, 22,232,170,242,236, 81,100,194,168, 32,139,182,129,156,248,137,192,166,188,231,246,228, 6, 83, 8, 8, + 41, 98, 98,194,246,150, 73,211,240,104,181,162,169, 42,236,198,238, 38, 85, 41,172,113,155, 60, 88, 95, 81,158,214,114, 11,166, +145,106,155,247,177, 57, 52, 74,145,109,145,155,149,173, 40,249, 32, 27,101, 59,229,227,189,223,254, 61, 81,166,224,179, 85,110, + 28,155,186,248,229, 29,136,159,150,250,125, 88,252,122,169,202, 59,131,166,201,113,129, 27,127,173, 42,167, 27,228,149, 19,122, +218, 34, 38,171, 10,107, 28, 70, 10, 86,214, 16,188, 97, 90, 88,215, 3, 9, 42, 9, 38,194,179,136,129, 90, 72,214,193, 99,202, +232,109,217,175,243, 69,137, 64,250,142,118, 35,138, 43, 23,243, 68,192,204,244,140,235, 22, 17, 29,201,123,150,222,103, 7,124, +204, 35,185, 29,157,185,191, 31,190,242, 58,215, 46, 78, 73, 73,226,137,140,145, 88,160, 67, 32, 69,194,186,196, 66,101, 72, 78, + 40,202, 79,187, 25,167, 7,159,187,244,166,222,146,134, 40, 86, 6, 10,216,223, 23, 81,157, 43,132, 58,183, 81, 2,151, 55,126, +227,245, 18, 69,100, 81,169,237, 30,101,179,123,140, 41,119, 8, 27, 59,197,213, 7, 65, 83,127,212, 94, 1,219, 36,162,205,184, +176,124,224,183,254,201, 63,206, 56,221,144,112, 54, 95, 64,147,209, 0,129, 98,111,119,140,150, 10, 37, 21,141, 86, 72, 33, 75, + 87,158,227, 83,157,203,162,176, 90, 73,154, 90,150,162, 14, 62, 70, 58,159,149,236,133,220,139,137,145, 40,178, 47, 85,196,144, + 35,143,197,150,123,109, 66,192, 46, 76, 22, 9,245,142,213,202,176,156, 45, 56,159,175,152,245, 29, 51,103,145, 41, 18,157,101, +109,122, 92, 76,236,190,112,140, 62,222,225,255,253,163,175,113,241,112,201,247,186,142,212,172, 9, 56, 62,115,227, 22,111, 54, +137, 39,120,254,236,241, 26, 63, 55,156,159,175,169, 5, 48,110, 25,197,196, 99,179,160, 11,129,190,213,204,118, 71,156, 54,146, +147,169, 34,222, 30,179,216,169,176,149,162, 54,121,100, 41, 7, 53,205,184,166,110, 52, 35, 89, 49,172, 53,173,146,180, 62, 50, + 33, 49,110,107,166,147,150,107,135, 99,246, 39, 3,246,166, 3, 70,131, 26, 93,108,128, 90,201,178,126,141, 36,159,213,255, 82, + 8, 26,173,153, 12, 42,246,234,138,147,101,199, 35,165,248,242,215, 63, 32,133, 28,172,209,212, 53,195,129,226,217,188,103,185, +116, 12,147,228,116,102,153,205,206,120,180,154, 49, 11,137,111,254,240,251,124,240,236, 62, 39, 23, 39,188,251,240, 62,143, 31, +157, 48,191, 88, 48, 95,204, 57,123,122,206,163,135, 79, 57,125,126,206,197,197,140,231, 39, 39, 44,214, 29, 85,173, 8,174,167, +235, 12, 54, 9, 6,187,215,137,202,242,224,189,123,151, 0, 69,254,158, 69,253, 71,125,223,124,187,191,180,124,240,222, 7,208, +175,255,238, 5, 93,235,220, 1, 31,102,129,220,205,166,166,173, 50,238,116, 32, 37, 90, 87,120,231,240,222, 49, 95,153,188,230, + 27,100,178,216, 65,147,115, 35,234,148,232,125, 96,225,115,126,184, 57, 95,110, 35,135,109,233,188,170, 97,238,218, 69, 41,146, +155, 46,253,147,196,126, 82,228,191, 55,220,129, 23,142,121,243,198, 49,135,211, 67,218,193,136, 51,213,146, 68,158,208,205,234, +150,167, 40,166, 34,113, 18, 35, 67,239, 56,247, 14, 17, 19,111, 89,151, 31,204,125, 15, 23, 11,152,205,126,124, 66,221,230,245, +240, 30,212, 32,127,174, 65,102, 71, 64, 44,234,105, 37, 8,206,211, 14, 90, 66,112,104,169,177,193, 51,168,106, 20,153,236, 25, +188, 65, 11,149,215,103,185, 68, 19,108,160, 86, 50,219,172,109, 66, 40,137,136, 9, 93, 30,105, 61, 80, 33, 72,133, 0, 42, 76, +204,114,158,144, 15, 83, 90,103, 13, 11,189, 39, 57,159, 5,202,102,141,240, 14, 65,200,196, 59, 34,214, 5, 98,200, 17,170, 85, + 57,124,120, 41,192,245, 68,233,169, 19,120,231, 24,162, 89, 70,207,184, 30, 16,189, 67,235, 1,157,235, 25, 75,133,113,150,125, + 41,209,128, 70,160,133, 68,138,204, 37,168,164, 32, 68, 79, 85, 38, 9,163, 36,240, 66,228,175,131, 72, 31, 44, 72,141, 38, 17, + 81,185,112,147,138, 51, 89, 32, 98, 66,165,136,147,153,247,174, 8,244, 33,177,234, 13, 35, 93,115, 70,164, 74,121,122,145, 68, +177,153, 41,181, 85,160, 20, 23, 28,141,206, 98, 55, 41,182, 19, 42, 33, 62,122, 77,109,158,219,151, 93,186,222,142,211, 55,142, + 37, 23,114,189, 8,108,187,247, 80,108,112,107, 91,106, 72,209, 86,249,248, 83, 42,234, 74,231, 34, 30,200,114,125, 84, 62,177, +232,156,129,158,199, 21, 41,183, 8, 66,111, 21,130,177,132,164,152, 34,221, 79, 20,123, 67,222, 95, 91,107,105, 73,104,153, 71, + 64,144, 72, 41,228, 44,246,222,226,163,203, 14, 2, 2,131, 2,132,217, 67, 48,174,114,150,179, 46, 23, 56, 68,124, 25,239,235, + 20,105, 35,204,108,192,133,200, 72,128, 45,121,221,183, 79,159,179, 44,144,148, 81,132, 69,121, 23, 12,130, 25,137,133, 16, 44, +125,190, 32,214, 65,112,238,242, 41,249, 50,150, 53, 94, 21,192,197,210, 89,171,141, 68, 49, 67,248, 83, 17,187, 37,114, 52,235, +102, 36, 35,139,176, 78, 94, 17,207,249, 66,170, 43, 88, 81,124, 25,185,200, 43,116,174,116,133,207,189,177, 91,136, 43, 66, 62, +228,246,128,193,214,162,243,251,255,233, 31, 98,186, 28, 44,225, 92, 32,186,192,238,206, 36,159,193,146,164,109,107, 14,134, 45, +195, 90, 83,215,217,141, 16,203, 80,161,210, 32,146,160,105,178,133, 45,199, 80, 71, 92, 12, 24, 31, 8, 41, 71,168, 38,145,178, +133, 80,230,216,220,232,179, 18, 28, 4,222,121, 92, 8, 8, 31, 57, 95,245, 44,214, 22,103, 29,171,222,240,164,235,120,188, 94, +115, 97,123,214, 9, 92, 37, 56,235, 58,150,214, 16, 43,197,203, 47,189,192,201, 98,205,215,254,215,111, 32, 6,146,186, 18, 52, +119,246,249,186,142, 28, 72,184, 62,217,227,243,215,111,242, 89,147,247,204,223,127,106, 8, 35, 80,141, 98, 60, 25,179,127,112, +204, 75,135,199,188,116,227,144,113,165, 9, 90,114,237,230, 14,211,189, 17,207, 47, 86, 72,227, 72,215,166, 84, 71, 99, 70,147, +134,145, 84, 84, 97, 43,142, 22, 62,162, 67,162,173, 85,254,248,184,165, 29,214, 12,219,154,166, 86,217,238, 87, 28,142, 46,101, +191,120, 12,161,192,167, 4, 77,165,169,106,133, 20,138,243,147,158, 7,167, 11,118,247, 7,156,156,175, 49,103, 11,170,170,230, +151,111,236,241,198,241,148,135, 23, 29, 51, 99,120,116,190,224, 7,247, 63,224,157,179,167, 44,187, 30,223,205,232,215, 38, 15, + 98, 18,132,228,115,183, 20, 12,203,213,138,179,229,140,179,197, 57, 23,171, 57,103,139,115, 78,215, 51,158,207,207,184, 88, 94, +240,222,179, 71, 60, 57,125,198,129, 24,146, 82,228,197,151, 94,230,223,252,201,159,254, 72,251,122,250, 49,133, 94,252, 29,138, + 61,139, 89, 46,156,159, 52,221,251, 81,140,133,241, 4,142,247, 47, 73, 93,183,171, 42, 91,122,145,116, 36,250,190,207,217, 0, +120, 30,117,219, 16,142, 78, 40, 38,141,100,110, 3, 41, 69,154,148,144,214,243,238,179,115, 46, 51, 77, 47,177,155, 50,143,224, +155,122,171, 92, 86,242, 71, 79,193, 54,201, 92, 41,193,104, 10,135,187,220,190,118,147,233,104, 23,163, 52,162, 26, 48,208, 21, + 23,190,116,114,222, 17,180, 98,153,224,209,122,141,171, 26,190,231, 45, 31,244,235,124,162,247,174,196,124,174,243, 14,253,111, +211,199, 84, 58,123,158,147, 7, 74, 38,134, 93,231,102,106,227,190,145, 18, 19,242, 65, 77,132,192,176, 25,210,185, 30,169, 21, + 34, 69, 26, 85,147, 66, 94, 51, 58, 23,114,132,181, 84,185,185,241,145, 86,103,129, 43, 34,195,193,214, 33, 18,123, 75, 16,153, +246,104,215, 46, 11, 92,125, 32,134,132, 36, 18, 58,131, 95,175,243,218,109,221, 33, 66, 79,112,150, 16, 60,193, 58, 2,129,228, + 18,142,172,175, 81, 50, 93, 90, 12,125,112, 89,180,236, 28, 49, 69, 26, 50,113,174, 10, 17,157, 32, 9,141,136, 14,180,162,139, +130,166, 16, 2, 13,130, 70,105,230,209, 83, 41,133, 41, 13, 76, 16,138, 4, 52,222,177,146,154, 58, 88, 92,180, 40,153, 93, 58, + 97,147,213, 65,194,136, 76, 43, 13,100,124,109, 37,242, 33, 65,165,242,185,166, 72, 77,100,105, 29, 61, 25,128,165,180,102, 34, + 37,149,210,140,128,186,174,104,148,206,221,127, 42, 66, 56, 87,158,223,186, 52, 85,233, 10, 54,124,147, 13,162,244, 86, 32,183, +177, 76,166,184,213,157,108,224, 67,186, 8,235, 54, 72,114, 85, 72,114,118, 85,252,244,153,191,207,170,251, 9, 23,245,170,134, +122,152, 11, 77,211,108, 59,197,182,222, 6,202,167, 43,116,164, 13, 98, 79,177, 21,127,197, 77, 23, 26, 47,141,248, 89,168, 16, + 57,146, 9, 85, 41,116,244, 4, 23, 80, 49,226, 98,230,100, 43, 41, 89,118, 75,100, 74,180, 41,177,178,134,155,186,206,187,250, +224,217,211, 53, 34,194,210, 57,166,170,166,143,150,228, 2, 77, 65, 67, 6,231,240,198, 16,146,160, 46,225, 35, 73,194,158,212, +204,125,126, 19,155, 4, 39,197,114, 23,145, 88, 41,104,149,224,153, 79, 44,125,196,169,172, 88, 78,137,220,145, 75,181, 85,178, +167,210, 29, 43,182,156,235,203,184, 74, 93, 10, 58,249,231, 37, 41,232,114, 85,177,185, 24,160, 88,221, 82, 81, 12, 23,177, 81, +239, 33,169,226,111, 47,175,175, 42,212,169, 75,235, 91, 9,153, 73, 42, 95,116,155,220,223, 16,248,204,239,255, 7,124,254,115, +159,230,226,124,133,174, 43,136, 25, 12,147,130, 96,119, 60,100, 52,108,217, 27,182, 28,140, 26,154, 70,149,125,176,192,167,132, +136,100,116, 36, 89, 36,183,233,212,125,204, 16, 26, 98,188, 92,253, 9, 41,168, 68, 14,222,169, 68,217,239, 9,208, 62, 18, 67, +164,235,115, 32,137, 89, 90,170, 69, 71, 88, 25,132,181, 44, 58, 75,111, 45, 74,228,220,251,211,174,103,213,119, 57,132,103,210, +242,194,155, 47,242, 23, 95,121, 11,255,175, 79,216,105,160,185,214,210, 87,160,158,206,249,225,122,205,119,194,146,163, 73,195, +241,235,159,226, 55, 62,253, 38, 95,184, 46, 56, 28, 40,102,149,228,177, 8,132,228, 56,237,215,116, 54, 32,146,162, 70,176,190, +232, 89,156, 46,152, 55, 53,211, 59,135,140,174, 77,208,149, 66, 70, 8,179, 30,177,242,132, 62, 91,212,130, 11, 36, 34,177,146, +184, 70,163, 27,141,174,213, 37, 77, 48, 21,149,127,138, 9,235, 2,179,222,177,234,242,148, 66, 73,137, 82,146,189,241,128,247, +159,102,202,156,112, 6, 85,107,174,239,141,104, 22,145,167,203,158,135,103, 51,254,242,222, 51,158,159, 93, 96,157,167,110, 91, + 22,231,115, 30,159, 95,100,228,104, 74,204,215, 61, 54,122,198, 74,179,182,129, 85,112, 24,239, 49, 49, 11,150, 58,239, 89,245, +249, 64,112, 54, 95,241,131,231, 11,124,223, 19, 19,204, 23, 61,251, 42, 59, 19,170,113,203,151,126,251, 55,248,211, 47,255,233, +223, 40,232,252, 67, 88,241, 31, 47,238, 87, 57,241, 63,142, 25,223, 78,224,230, 33,236,142,178,216,118, 80, 65,128,164, 5, 85, +204, 29,166,113,129,150,200,147,181,229, 91,103,102, 11,136, 41,207,150,147, 36,120,169,202, 99,230,117,103,121,235,225,156,228, + 74,254,244, 38, 17,173, 42, 99,209, 16,202, 90,176, 60,131, 62, 30,125,250,241,157,250,100, 47, 7,172, 92,191,201,231,118,247, +121, 97, 58,229,246,100, 66, 91,124,226,247,205,106,203,151,112, 22,103,123, 80,138,133, 47,241,157, 17, 88,157,230, 46,219,153, +252,255,157, 45, 63, 6,136,250, 4,171,176, 32, 79, 66,243,252, 59, 23,121,155, 69,154, 84,242, 18, 84, 21,148,192,200, 72,240, +185,161, 9,209,163,117,133,148,185,203,148, 34,147,228, 66,240, 52,149, 98,237, 92, 97, 33, 68,214, 38,175,107, 86,189, 37, 57, +143,174, 43, 98,116, 68,227,179,107,207,122,100,136, 8,219, 35, 41, 2, 97,107,137, 46,107,137,172,237, 72, 27, 93,141, 16, 89, + 52,231,109,137,255,149,184,148,133,118,189,207, 59,118,235, 60, 54,250,146,171, 18, 49,174,167, 18,146, 62, 4, 26,145,136, 50, + 35, 93, 91,169,168,165,162,139,158, 29,169, 88,199, 44,108, 91, 69,135,143, 1,169,179,224,109,229, 45,161,106, 72,209, 97,144, + 68, 33,104, 82, 98, 22, 61, 41, 69, 66,140,116,209,229, 41, 79, 10,120, 66, 57,124,230,103,148, 66, 98,163, 69, 36,129,141, 1, +169, 4, 38, 36, 90, 37, 25, 11, 65, 43, 21, 83, 37, 25, 40,137, 21,137,105,147, 51, 60, 76, 42,224,154,250, 74, 33,142, 92,201, + 1,185,146,183, 46, 75,179,235,220,150, 62,154,200,236,252, 65,137, 87,173, 84, 17, 94,151,110, 93,108, 60,242, 64, 23,242,129, + 78,144,163, 92,131, 67,255, 68,133,113,170,201,167,197,205, 56,160, 85,249, 11,219, 20,163,171, 39,242, 90,111,189,217,165,225, + 68,139,162,236, 43, 76,115, 27,144, 56,134, 90,178, 19, 5,115, 11,199, 98,197,168,110, 51, 76,205, 25,164,108,216, 19,154,167, +221,146,157,170,162,179,134,144,224, 72,215,216, 16,153, 8, 24,171,154,174,236, 89, 14,116,205,210, 91,118,208,204,177,172, 67, + 68,133,136, 38, 43, 42,165,246, 44, 13,184, 74,163, 98,226,185,235,144,149,102, 29, 50,225,105, 71, 42,102,228, 83,145, 36,135, + 20, 88, 34,123,173,102,209, 59,162, 86, 89,229, 62,110, 96,105,182,147,139, 80, 96, 49,169,124,157,254,202, 14, 79,149, 31,211, + 21, 79,162, 17, 48,186,178,155,217, 16,235, 98,177, 58,216,176,213,189, 13, 11, 41,206,232,252,111,153,152, 39, 35,148, 92,236, +170,164,106, 73,189,125, 52, 71,113,249,190,189,121,231, 38, 49, 65, 59,108, 16, 90, 98, 93, 32,153,128,115,185, 91, 81,149,204, +160,147,178,247,174,149, 40, 78,164, 44, 56, 49, 62,162,138,201, 89,108,222,234, 50,136,137, 69,176,185,137,154, 23,136,156, 52, +152, 4, 82,230, 49,161,244, 33,171, 86, 59,131,155, 25, 84,111, 11,203,191,104, 79, 66,192, 6, 71,159, 18,125,111,176,206, 32, +108, 32,166,192, 94,219,242,176,115,252,233,187, 15,185,253, 70,197,200, 66, 67, 66,156,172, 56, 57, 26,113,231,229,215, 89,156, + 61,225,191,139, 29, 47,135, 57,191,110, 87, 28, 31,222,230, 75,117,203, 23,206,159,243,131,229,115,238,173, 35, 95, 94, 95,112, + 18, 3, 79, 42,201,207,238, 28, 51,158, 52,168,107, 19,246, 14,247,152, 30,140,144, 74, 98, 66,194, 45, 58,170,149,195,150,117, + 4, 54,167,186, 5, 45,112,149, 36, 21, 26,156, 14, 9,225, 35,158, 72, 40,112,165,232,193,185,196,122, 29, 80, 36, 68,157,201, + 93, 49, 74,222,190,191, 32,185, 72,171, 96, 58,108,121,218,121,236, 78,205, 63,123,105,194,119,204,138,127,241,116,129,143, 62, + 31,168, 26,197,155,159,191,203,247,191,255, 61,238, 61, 95,114,115, 84,241,107,135, 55, 96, 26,249,198,124,206,176,110,217,175, + 7,220,222,191,198,141,233,148,115,111,121,124,126,142,241,134, 85,183,228, 83, 71, 13, 7,163, 29, 46, 86, 75,158,246, 11,246, +116, 67, 45, 34,157, 2, 21, 2,194, 68,190,248, 43,175,241, 95,255, 45, 29,122,250, 17,123,247,159,152, 5,174,109,217,185,123, +141, 52, 26, 35,134, 3,122,173,241, 41, 17,130,227,161, 75,220,174, 61,206, 67,231, 28, 30, 79,146,101,229,197, 71, 57, 16, 17, +248,234,188, 76, 2, 93,159,159, 47,178,192,155,218, 9,248, 46,239,215,171,186, 60, 92, 55,172, 8,121,217,204,255, 77, 21,190, +206, 35,247,107, 59, 48,157, 66, 91,115,176, 59,101, 58, 24, 34,133,228,184,170,232,206,230,249,243, 89,207, 11,167,163,221, 10, +135,165,132,174,227,118, 93,113,214,238,178,182, 43,234,182,194, 74, 9,135, 83,120,210,125,242, 42,162,169,175,156,144,178, 32, + 12,116, 1,159,100,245, 51,115, 67, 14, 68,175, 97,217, 97,125,228, 98,144,223,161,131,225,148, 69,183,196,200,142,189,241, 1, +189, 89,210, 52, 67,132, 23,172, 18,168,186, 97, 57,207,182, 71,173, 43,250,232, 81, 73,210, 69,143,181, 61,131, 74, 99,157,165, + 81, 67,186,213, 18,165, 21,237,176,194,175, 59,162,179, 72,145,240,214, 33,149, 36,164,128, 3,188,181,101, 5,144,175,152,222, + 25,180,200, 90,136,149,235,240,222,145, 80,116,209,160, 82,142, 16,237,172, 97,208,140, 9,101, 84,190, 38,209, 6, 11, 85,139, +148,208, 91,195,245,193,148,179,110,206,158,144,172, 98, 96, 32, 20, 94,128,179, 61, 75,165,217,169, 26, 30,117,107,118,155, 66, +243, 75, 48,147, 2,233, 61, 81,105,188,136,248, 62,215, 0, 71,194,199, 72, 93,215,152,148,178,255, 30,193,146,148,209,204, 74, + 81,167,200, 16,113,169, 37,104,154,124,184, 59,239, 35, 71,117, 13, 82,226,101, 96,169,134, 4,105,179,253,176, 41, 5,217, 95, +205, 89,151, 91,139,166,247, 31, 93,169, 92,118,249, 62, 83, 70, 55,251,246,141,152,122,115,237,106,153, 39,189,227, 97,190,134, +157,253,136, 44,250, 39,243,173, 46,133, 56,216,140, 36,213,117, 25,161,139,143, 65, 25,202,233,164,119,249, 11,118,229,215, 38, + 92, 25, 71,196,178,128,245, 68,217,162,116, 69,178,145, 29,237,104,172,162,247, 29,187,186, 34,106, 65,111, 87, 64, 98, 42, 20, +143, 86,107, 14,116, 22,125,116,166,131, 42, 39, 13,137,166, 98, 32,171,242,224,137, 52, 90,208,123, 71, 29, 35, 78, 64,231,125, + 14,134,145, 18,150,134,117,163,209,192, 89,128,161,208,168, 16,168, 10,157,163,147, 10,161, 21, 9,193, 72, 87,132, 4,159,169, +106, 46, 66,224,212,184,172, 20, 29, 54,249,164, 54,172,179, 26,119,163,162,189,138,105,213, 34, 23,225, 88, 66, 0,130,206,150, +154, 77, 97,151, 41,167, 59,169,226,139,244, 97,235, 93, 44,118,176, 75, 76,108, 36,191,222,182,252,219, 67,189, 45,248,151, 1, + 26,155,255, 75,111, 11,122, 57, 83, 93,187,125,227,242,115,202, 18, 18, 81, 38, 83,249, 66,148, 81, 18,124, 22, 31,110,180, 67, + 66,228, 63,171,149,184, 76,221,173,149,200, 16, 37,178,117,205,167, 88, 2,177,242, 9, 53,164,148,247,237, 72,162,207, 73,122, +193, 6,154,148,149,238,110,237,208,197,121, 96, 0,227, 29,198, 88,214,125,199,172,235,145, 36,132,179, 4,235,145, 36,130,150, + 12,199, 3,190,255,193, 3,150, 95,153,243,149, 99,201,254,169,229,215,247, 26, 94,126, 97,200,226,241,130,123, 23,223,224, 66, +193,162,210,236, 69,248,111,215,107,126,121,239,144,234,180,227,101, 85,243,185,163,215,249,247,142,111,242, 79,102,167,124,227, +102, 67,251,230, 13,142,238,238,229,123,208, 37,116,165, 17, 62,208,135, 60,102, 84, 2,210, 40,147,181, 36, 2,233, 50, 75, 32, +200,124,125, 87,100,155, 86, 21, 34,149,143,216,232,115, 98, 96,217,217,133, 62,226,109,158, 56, 33, 37, 33,230,108,131,211,251, +107,162,244, 60,239, 61,222, 59, 30,159,207,184,251,133, 23,137, 55,119,184,247,214,135, 92,172,151, 8, 1,163,166,229,104,111, +143,221, 81,195,209,222, 17,191,249,233,138,100,214,236, 79, 15, 56,237, 46, 88,167,196,163,231,103, 44,141,231,165,211,231,188, +118,237,144,233,222, 33,203,126,193,186, 55,220,222, 61,224,213,163,235,188,124, 48,226,193,197,138, 47,255,240,175, 88, 44,102, +188,176,183,199,139,251,135,220, 58, 56,228,240,250,148,187,135, 19,254,229,255,244,207,249, 79,254,179,255, 28,212, 0, 49, 26, +195,225,136,116,112,200, 63,190,113,196, 31,175, 86,172,159, 61, 39,157,156, 34,158, 94,128, 89,126,180, 99,223, 57, 34, 29,236, +192,221, 87,152,142, 15,153, 47,158,230,103,195,226, 28,206,230,136,211, 11,146, 89,253,232,226,165, 53,140, 39,164,209,152,235, +147, 17,170, 25,162,129,185,115,124, 24, 18, 67, 25, 89, 88,203,164,146, 84,193,241,212,194,131,133,217, 10,143, 98, 42,211,171, +152,243,202, 77,202,247,150, 47, 72,207,203,123,178, 20,207,166,222,118,237, 27, 56,147,214, 63,218, 68,162, 91, 24,239,194,241, + 97,193,211, 14, 25, 55, 99, 8,142,224, 61, 86, 64,139,100, 32,122, 88, 92,228,117,195,168,133, 33, 48, 57, 6,215,241, 11, 56, +154,233,132,199,243, 57, 71, 85,102, 21, 84,214,242,221, 90, 93,106, 1, 62,241, 91, 40, 48,169,148,242, 93,162, 54, 63, 47, 33, + 80,107,155,153,226,203,242,111, 52, 26,172,193, 84,146,147,144, 88, 37,207,141,122,138,175,107,116,183,160,210, 53,201,174, 24, + 84, 99,122,215,209, 70,143, 80, 21,189, 51,180,117, 3, 66, 50, 95,175, 51, 11, 62,130, 49, 29,109,221, 98,102, 39,212,170, 66, +167,200,234,124, 65, 91, 85, 16, 61, 94,120,208,224,173,199,135,136, 23, 57, 26,123,105, 13,149,140,244, 33,101,107,170,144,120, + 99,208, 2,214, 49,139,102,149,172,177,193, 18,173,103,183, 25,211,187, 53,168,134, 54,145,117, 57,101,135, 46,128, 97, 51,228, +172, 95, 49, 84, 21, 42, 37, 66,232,216,169, 6,244,174, 39,169,154, 67, 41,121,226,179,102,228, 3,179,102, 87, 41,198,213,144, +222,245, 72,221, 16,146,197, 27, 79,163, 21, 3, 33, 24,164, 68,175, 53,203,228,233, 99, 6, 64, 61,245, 57,155,161,119, 33,247, +156, 74, 80,213,154,129, 74,232,242, 30,117, 40,174,143, 91,158,216, 28, 46,165,133,160,209,146,245,160,212,191, 88,220, 80,161, +216,208, 54,220, 17, 95, 66, 88, 16, 91,167,211,149,237,108, 22, 81, 39,104,138, 48,206, 22, 58,233,230, 97,107, 74, 30,251, 16, + 88,235,143,220, 71,250, 39,214,165,235, 42, 95,240,114,131,195, 43,224,251, 13,150, 81, 95, 17,108, 41,149,139,212,166,160,199, +114, 2,217,132,204,199, 50,158, 42,187,136, 42, 70,218, 20, 24, 7, 65,165, 36,131, 24,136, 62, 65,144, 25, 50, 32, 4, 34,244, + 84, 41, 34,131,160, 22, 42,243,199,147, 97, 52,152, 32,172,101,210, 14,153,247,107,122, 60, 45,249,180,219,165,200,210, 5,180, +150,224, 36, 38, 56,168, 36,195, 16, 89, 58,193, 72, 75, 98,202,221,110,160,198, 43, 50,208,161,124,205,193, 39,218,170,198,132, +132,142,240,218,209, 30,223,158,173, 89,251, 8, 85, 81,165,143, 70,208, 25, 96, 8, 39,167,249,141, 33,150,132,182, 43, 29,187, +240,101, 98,225,183,158, 93, 87, 70,246,233,138, 48,103,211,161, 75,181,101,206,203, 2,248, 31,214,249, 71,239,182,135,136,232, + 63, 86,220, 47,211, 92,138,186,210,211, 12, 27, 86,171, 14,129, 32,132,136,148, 18, 93, 85,236,239,141, 57,156,180, 8, 20,139, +165,101,111,218,208,200, 68, 72,130,222,101,194, 94, 45, 36, 82,201,156,208, 86,171, 2,224, 74,248,152, 5,144, 98,227,212, 75, + 9,173, 4,141,148,185,179, 21,121,196,143,150, 44, 66,192, 11,129, 41,125, 94, 21,242,158, 90,250,192,220,121, 22,222,229,235, + 64,128, 23,162,164,210, 38, 26, 33, 57, 24, 79,248, 63,191,254, 13,190,141,135,168,120, 42, 96,231, 73,207,219, 11,135,172, 4, +183,251,196,235,119,134,132, 23,135, 60,141,134, 83, 60,127,254,244, 41,175,190,112, 23,185,127,141,231,131, 49,191,220, 56,210, +221, 99, 62,247, 75,183, 25, 76, 26,164,202,236,233,229,220, 18, 66,192, 46, 45, 62, 69, 42, 93,132, 69, 77,118, 17, 68,178,207, + 55,166,148, 1, 81,229, 44, 38, 67,162,242,137,202,231,151,184,243, 1, 73,202,160, 64, 9, 52, 32, 43,129,247,145,206, 68,158, +252,245, 41, 73,192,169,243,172,141, 35,120,199, 98,214,115,255,225, 25,221,221, 3,228,189, 39, 8,225,144,149, 98,160,106,142, + 71, 53,196,196,181,227, 3, 30, 61,126,192,151,127,240,152,127,181,250, 0,166, 21,105,238,192, 68, 82, 31, 56,101,201,215,213, + 51,196, 72, 80,239, 84, 12,106,193,236, 91,239,103,152, 73,163,152,214, 10,173, 5,183,246,106,174, 13, 70, 8,235,216, 25,213, + 52,195, 10,223,123,126,254,149, 91,136,207,126, 6, 66, 5,147,154, 52,154,240,251,215, 95,228,165,155,251,252,202,179,115,254, +120,176,139, 60, 56,130,151, 61,156, 60, 37, 61,155,195,222, 8, 14,143,224,213,207,209,220,125,145,255,242,103,142,233,164,226, +191, 57, 89,177, 62, 93,192,179, 25,156, 63,207, 66,185,147,247, 51, 94,117,118, 10, 31,220,223, 10,196, 84, 11,215, 15, 17,109, +205,180, 25,114, 52,174,121,190,182,188, 60,104,152, 42, 65,237,123, 4,154,181,113,156, 57,120,104,220,182, 40,199, 84,208,170, + 62,251,207, 29,127,147,162,216,212,249,255,218,216, 65,175, 10,211, 54, 31,251,248, 97,163,169,115, 76,241,222, 46,236,142,203, +122,113, 8, 82,114, 84,122, 20,210,154,189,170,162,119, 61,181, 93,100,117,253,201, 9,248,105,102,212,175, 78,184, 59,222, 71, + 72,201,249,252,156,170,105,153,154,142,211, 4, 66, 68,126,161,213,188, 53, 30,100,219,106,138,159,220,173, 39,147,119,233,212, + 32, 29,196, 10, 82, 93,148,252, 85,214,238,200, 30,150, 5,104, 82, 87,176,232, 8,181,163, 75, 3,238,185, 51,110,178,203,194, + 44, 57, 30,237,230, 46,218, 5, 6,109,131, 15,158,196,146,182, 26,229,144, 19, 20,109,221,210,151,204,119, 85, 85,244,235, 37, + 33,121,146,242,248, 24, 24, 15, 6, 56,211,101,177,172, 86, 88,111, 73, 49,147,229, 36,176,234, 87,232,130, 76,207, 26, 40,240, +193,210,199,136, 45,224,175,144, 34, 43,211,179, 87, 55, 80, 43, 46,130,161,173,134,156, 23, 68,110,171, 5, 93,136, 92, 75, 61, + 67,165, 57,214, 48,168, 26,162, 51,172, 83,228,238, 96,135,123,221,140, 93,221,208, 0,139,224,178, 94, 39, 4,214, 66,225,132, +100,238,214, 52, 74, 65,114,204,141, 5, 33,104,125, 98, 34, 68,225,115, 4, 36,138,152, 2, 39, 33, 49,172, 20,115,227,209,165, + 41,233, 93,224,168, 85, 12,148,102, 21, 34, 73, 43,134, 72, 28,112, 60,168,232,188,192, 9,197, 17,145,199,194, 97,199, 5,243, +109, 77,110, 96,253, 21, 6,131,190, 98,125,107,175, 76,178,117,181,117,100,196,144,175,177, 88, 30,126,151,126,119, 7,163, 42, + 23,253, 72, 78, 40,116, 91, 56,210, 79,102,167, 94,215,249,147,145, 5,111, 23, 74,145,222,200,253, 55, 5,168,100,173, 99,220, + 71, 99, 68, 55,157,251,229,136,126,115,106,206, 6,192,253, 86,115, 80, 73, 6, 82,179,171, 96,164, 52, 62,198, 60,194, 41,151, +119,159,114,186,215,133, 15, 12,180,102,183, 82,132, 16, 9,206,208, 42, 77, 42, 59,197,113, 85,115, 98,214, 52, 73,177, 32, 17, + 83,226,220, 71,162,138, 12, 19,184,152,112,192, 48, 38, 42, 20, 49, 70, 98, 76, 24, 18,170, 4, 14, 36, 37, 49, 82,177,142, 9, + 47,193, 75,208, 40,214,222, 49,173, 43,102, 73,176,211,182, 24, 41,168,218,150,144, 34,114, 48,202, 67, 11,145,133, 51,200, 66, + 18, 74,155, 99,153, 36,135, 9,151,179,150,204, 69, 42,219,221, 74,184,203,134,229,185,121,120, 73,145,145,131, 66,228, 3,148, +139, 91, 27, 68, 42,188,104,121,165,160, 95,198, 18,114,169,156,127,233, 75,191,205,111,254,234, 27, 88,159, 48,198, 17, 93,194, +152,140,214, 77, 81, 48, 29, 15, 81, 82, 34, 81,140, 91,141,143, 57, 64,199,135,236,237, 20, 5,214,162,181,100, 84,201,178, 42, + 74,244, 62,251,211, 33,149, 21,126, 22,183, 84, 50,211, 4, 19,153,190,167,138,237,205, 27,207,197,210,176,234, 45,157,179,156, +116, 29,235, 62, 35,132,141,181,216, 34, 44, 75, 49, 11, 26,155, 16,184,241,210, 29,186,221, 17,255,226,255,250, 43,208,240, 51, + 63,191, 79,115,179,225,161,177,124,127,230, 89,107,248,208, 37,218,169, 98, 48, 81,180,131, 38,187, 37, 4,200, 97,197, 7,222, +242, 78,116,252, 69, 35,153,221, 28,179, 35, 4,235,185,207,228, 80, 23, 48,198,225, 59,139,232, 29, 77,163,169, 43,133,174, 43, +164, 86,164,178, 31,139, 2,108, 74,185, 3,137,153,161,160,108, 96, 16,160, 9, 57, 93, 14, 27,144, 49, 80, 9, 73, 43, 4, 35, +169,104,170,124, 48,248,224,201,140,175,127,235, 67, 22, 11,143,136,137,241,168,193,244,134,139,211, 83,158,127,248,152,250,238, + 33,107, 47,169,147, 38, 73,141,241,134,139,222, 49,190,190, 71, 88,246, 16, 61,223,254,230, 3, 88,120, 68, 35,248,204,157, 29, +222,120,241,128,134,187, 93,191, 0, 0, 32, 0, 73, 68, 65, 84,209,181, 1, 95,248,185, 59,252,230, 47,191,201,235, 71, 67,134, +201, 51,214,130,179,148,168, 43, 73,248, 97,143, 59,247,152, 29,201,201,204,241,108,181,224,162,159, 49,115,142,123,114,194, 55, + 58,199,183, 87,142,112,227, 85, 30,174,122, 24, 76, 65,183,188, 60, 30,209, 74,193,247, 47,230,156,186,132,208, 45,236, 28,194, +120,138, 56,190,142,248,165,223,134, 47,124, 1,174, 95,227,159,222,217,231,119,247,107, 34,130,175,158,172, 89, 93,172,115,129, + 57, 62,128,155, 55, 33,141,225,229,207,242,123,199,183, 16,119,238,114, 54,191, 40,137,107, 35, 24,104,118, 39, 19,142,106,205, +194, 69,142, 42,197, 60,194,142,244, 12, 8,236,198,196,158,150, 28,214,130, 51, 23,232, 72,217,218,149, 34,204,215, 96, 75, 84, +102,252, 17,251,233, 31,103, 1,253,248,199,154, 26,244, 0,142,246,225,230, 81,238,164, 7, 99,168,219,203, 17,248, 69,112, 28, +235,138,107, 42,130,235,168,157,225,251, 39,143,120,244,195, 71, 48, 63,207,247,243,176,134,166,229, 77,145,152, 11, 73, 31, 35, +199,209,115, 46, 20,187,193, 48, 77,145, 69,136,156, 44,139,255,248,147, 44,109,151, 24,209, 2,189,145, 37,135, 23, 85,244, 51, +114, 75, 41, 35, 71, 18,231, 17, 48,224, 3, 73, 38, 2,145,117,200,217,235, 43,219,163,164,166,247,166,208, 53, 45, 90, 10,172, +235, 50, 56, 9, 79,103,123, 20, 2, 19, 12, 34,230, 88, 87, 31, 13,117,221,178, 54, 75, 82,140, 24,223,229,251, 58, 37,124,176, + 56,239,113,201,209, 23,226,219,202, 57, 86,166,195, 16,233, 92,207,154,136, 66,210, 71,207,202, 90, 22, 41, 33,163, 96,229,243, + 24,125, 80, 55,116, 54, 79,122,171, 70,115, 97, 35,149,212,172,146,192,104,205, 68,130, 18, 57,175,189, 18,130,101,140, 28,170, +138, 62,197,156,110,167, 52, 30, 65, 39, 53, 22,232,149, 68,232, 26, 39, 20,125, 10, 56,173, 56, 11,145,186,174,120, 28,139,210, + 93,105,206, 80, 56,169, 17,186,162,139,137, 74,107,100,211, 48, 80, 26, 41, 21, 38,229,120,112,173, 21, 90, 85,212, 85, 69, 82, + 16,189,166,170,242,223, 75, 33,242, 60, 93, 9,241,146, 34, 95, 3,133,160,122, 41,204,220,172, 99, 55,190,245,206, 22,213,113, + 17, 51,167,114, 77, 75, 89, 18,255,202,239,233,162,181, 18, 50,231,131,164,242,140,239,186,159, 80, 81,223, 40,218,235,225,182, +216,140,155, 60, 66,175,171, 92,172,140, 47,157,119, 17,107, 85,165,176, 95, 21, 11,144, 50,174,177,239,243, 39,105,182, 97, 48, +243, 32,120,161,150,140,100, 6, 56, 16, 35,141, 84,244, 49, 20,225, 85,182,152, 61,237, 61, 85,157,199,239, 3, 89, 35,131,207, +158,202,152,199, 55, 67, 37, 88, 57,207,173,175, 62,224,244,246, 20, 68,226,129, 11,104, 33,136, 73, 82, 75, 24,132, 92,164,100, +217,177, 8, 41,177, 41, 49,212,249,112,146,164,196, 39, 65, 7, 24,157,139,157,148, 26, 27, 35, 97, 48,160, 82,217,242,229,128, + 65,173, 17, 49, 50, 26, 12, 88,123,143,108,106, 82, 83,109, 71,131,170,236,182, 85,241, 65, 92, 82, 40,227, 54, 70, 53,168, 60, +177,144,234,146, 35,158,105, 68,122, 27, 52,176, 41,212,155,172, 93, 91,156, 4, 50, 94, 9,136,217,180,255, 27, 47,125,238,102, + 94,121,227, 13,222,124,243, 21,186,222, 98,251,128,119,129,126,109, 25,142, 91,130, 73,212, 77,205,164,174,185,190, 55,160,174, +244,101, 67,180,185, 88, 99, 74,200, 4,149, 18, 52, 58, 99,119, 67, 76, 24,159, 21,199,130, 12,116, 80, 50, 83,230,148,206,244, + 57, 17, 83, 22,168,148,233,140,142,145,100, 60, 43,235,112, 46,176,114,158,182,136, 67,102,166, 99,101, 13, 85,240,212, 33,145, + 20,168, 65,205,141,215, 94,226,249,147,231,124,253,171, 15, 80, 93,226,217, 69,199,252, 81,135,185, 8,224, 18,171,161,132, 93, +201, 91,239,244,252,127,125,199,100,209,241, 90,130,131, 70,243, 43, 14, 62, 53,222,225, 83,215, 14,217,215,146, 7,167,115,190, +118,178, 96,120, 52, 36,106, 56,233, 13,231, 93, 30,169, 78, 7,117, 70,186,214, 21, 82,203,140,218, 20,224, 73, 57, 38,213,101, +145,159,179,249, 33, 90,155,136,238, 29,218,120,164,241, 25,125, 27,161, 65,210,232,138,193,160,162,109, 20,111,157, 44,121,248, +151, 15,243,219,227,160,173, 43, 6,195,138,174,179, 68,227,152, 45, 46,120,244,188, 35, 13,224,173,119,223, 99,237, 12,149,206, +235,152,195,187, 71,188,112, 48,228, 83,135, 59,220,251,171, 31,240,248, 91,115,196,163,200,231,126,238,128,189,241,132,167,231, + 75, 94,216,221,229,230,193,117, 6,205,136,215,175,221,224,223,127,225, 21, 94,220,155,242, 95,253,206, 23,185,117,171,165,211, + 75, 94,191, 62,101,181,178,156, 34,153,254,236,231,208, 59,215,185,254,153, 91,248,113, 11,173,198,116,134, 31,222,123, 8,103, +207,192,116,172,237,130,238,244, 25,223,126,250, 4,218,125,120,241, 53,196,203, 47,193,249,138,223,189,251, 10,191,189, 51, 64, + 41,201,195,247, 30,241,215,127,252,255,176,227,134,252,239,127,242, 53,222,255, 55,127, 4, 15,239,193, 7,223,133, 39, 15,225, +241, 83, 24, 78,248,252,157, 99,110, 29, 31,240, 84,142, 56, 25,142,242, 56, 81, 10, 24,143, 56, 84,154, 86,105,116,130, 69,140, +204,186, 53,187, 10,110, 10,193, 68, 72, 38, 90, 49,214, 26,131,231,241, 34, 67,103,152,247,121,199,216,123, 62,121, 41,254,119, +209, 7,105,216,221,133,221,157, 92,204, 15,246,114,119, 62,154, 22, 43,220,230,123,190,175, 30, 44,206,137,235, 5,179,229,140, +239, 63,123,194,119,190,249,126,222,167, 27,123,249,245,220, 29, 12, 49,192,216,173,184,214,182,188,103, 58, 38, 49,235, 71, 30, + 59,199,190,148,188, 62,150,116, 82,179, 58, 93,125,178, 96, 78,136,210,202,216,252, 99,148,121,194,167,171,252, 60, 73,174,164, +124,153, 92, 68, 76,200, 98,229, 77,100, 44,130, 96, 45, 29,129, 36, 96,105, 59,148,136,184, 20,177,222,210, 59,203,194,245,164, + 20, 48,206, 97,189,197, 38, 71, 76,240,193,249, 35,140,239,233, 76,199,217,242,130, 16, 3,115, 51,167,213, 89, 68, 55, 91,207, +145, 66, 49,239, 23,216, 82,208,151,102,141, 11,129,117,244,172,157,199,166,140,141, 62,247,142,189,186,225,190,143, 84, 90,243, +190,144, 28,212, 53, 78, 10,164,172,216, 27, 15, 89, 38,201,220,123,218,170,166, 71,208, 75, 77, 35, 36,170,174,217,209, 53, 21, + 16,148, 68,145, 88,136, 68,171, 43,140, 82,172, 98,164, 43,137,115, 65, 8,134,237,128,170, 4, 81, 5, 85,179,138,138,132,226, + 89, 72, 28,140, 70, 60,240, 18,161,234,236,203,175, 42,246, 70, 3,246,135, 35,166,163,150, 86, 87, 8,169,233,147, 98, 41, 5, +136,138, 97,219, 18, 85, 77, 18,146, 65,213, 96,138, 5, 41, 74,193, 34, 74,106, 37, 89,167,132,212, 13, 73,203, 44,156,214,242, +138, 56, 83,228,203, 51,165,178,103, 87,185, 94,250, 43,161, 64, 27, 16,205,230,251,165,112,165, 60,215, 71,131,124, 16, 24, 15, +243, 97,116, 58,253, 9,193,103,218, 77,151, 46,183,157,186, 13,249,228, 32,203,130,191, 45,187, 3,185, 41, 74,229, 4, 19,202, +206,221,150, 46, 61, 27, 9,183, 88,198,162,146,191,181,215,112,189, 82,236,169,138, 70, 10,132, 84, 68, 18,163, 74, 97, 98,202, +136,209, 4, 81, 9, 92, 72,200,148,176,214,100, 75, 81,132,206, 90, 70, 74,211,165,196,218, 58,254,249,241,148, 95,208,154, 83, +107,217,169,242,233,110, 82,105, 22, 73,208,200,204, 20, 94, 23,161, 22, 54,135,199, 40,221,208,199, 98, 37,168,170,156,199,142, +196,107, 77,165, 52, 15,173,167,213, 53, 74,231,155,108,169, 51,112, 66, 21, 47,207, 88, 43,218,182, 65, 43,133,241,101,191,151, +194, 21,107, 91,121,253, 54,184,216,164, 41,225,184,133,243,190, 73,228, 17, 91,202, 80, 74,249, 66,216,172, 60, 76, 1,102,184, + 50,206, 55, 87, 64, 5,206,110,109,118, 73, 92, 62, 48,126,237, 55,126,141, 91, 47, 94,231,244,100,133, 53,174, 12, 0, 36,135, +187, 59, 84, 72,170,170, 66, 42,193,241, 94,139, 86, 42,199,224, 74,177, 9,222, 3, 1,109,165,168,107,133,146, 89, 33,103, 67, + 86,150,250, 13,127, 64,230,112, 23,165,179,157, 77, 36, 72, 62, 18,173,203, 29,108,130, 36,242, 65,224, 98,237,104, 98,194,164, +192,220, 24, 22,235,158, 89,103, 50,198, 23, 88,120,143,175, 5,131,189, 29,118,111, 30,241,189, 63,253, 38, 60, 49, 92,219,211, + 60, 63,241,176,220,172, 54,128,219, 45,175,189,113,141,120,183,230,248,238,132,111,181,146,217, 78,195,123,181,230, 94,114, 44, +136,236,118, 61,215,214,142, 55,215,158, 21,137, 46, 6,206,231, 29,170,213, 84,149, 66, 41,197,100, 80,163,155, 10, 93,105,146, +146, 89,140,227, 3,193, 7,156,245,244,107,139, 95,187, 60,233,176, 17,209,123,228,202, 94, 22,117,233, 98,222,183,105, 69,213, +214, 84,163, 6, 89, 73,190,119,190,226,247,133,226, 78,210,188,123,209, 33, 85, 62, 52,121, 27,152, 45, 45,122,103,151,207,238, + 13, 8,195,150,119,238, 61, 99,103,178,195,171, 47,189,198,139,215,110, 48,104, 36, 39,193,243,205,127,253, 45,222,126,126,193, +108, 79,193, 99,207,123, 99,203,237,151,174,115,182,187,207,129, 89,242,103,127,241,109,158,199, 14,221,140,152, 12, 71,188,127, +246,156,217,233,156,221,221, 3,238,254,193,239, 48,112, 2, 87, 89,174,255,234, 63,226,181, 95,124,157, 95,249,244,173,156,108, + 54,106, 8,179, 57, 95, 60,108,248, 63,254,232,203,112,255, 1, 60, 63,103, 33, 60,143,134, 7,252,199, 95,252, 18,255,225, 23, +127,142,191,220,157, 98, 3,136,199,207,248,244,160,101, 80,105,212,108,198,219, 31,190, 3,207,239,243,245,175,124,133,103,223, +254,183,240,193,135,112,239,125,184,127, 31,222,125, 7, 30,124, 8,181,231,129,209,160, 42,254,218, 3,178,134,106, 0, 50,128, + 51,204,164, 96, 12,116,193, 97,189,199,132,192,126,138, 52,193, 51,208,154,186, 76,138,130, 49,188,179, 48,136,101,135,176,203, +156, 29, 16,255,129, 5,189,157,192,116, 7,142,142,224,112, 15,118,167, 57, 17,174,170,243,189,169,212,118,146,232,201, 35,254, +245,138,116,118,206,179, 39,167, 60,252,225, 3, 78,159, 62,207,113,198,155, 78,123, 52,229,238,141,125,166,193,177, 55, 28,240, +204, 89,172,115,104, 33, 24, 9,120,102,122,106, 33, 24, 70,199,189,222,179,114, 14, 35,225,165, 95,124,147,139,247,239,127, 66, + 72, 83, 4,217,148,117, 93, 68,196, 10,145, 28,162, 82,136,122,128,232, 3,162,213, 8, 41,179,218, 60, 8,132, 22,136, 68, 62, +100,134,128, 8, 1,239, 3, 54, 58, 58, 18, 43,223, 97,188, 35, 68,143, 18,146, 69,183,196,147, 29, 42,243,245,146,181,239, 49, +222,240,116,181, 98,110, 12, 51,219,241,112,117,206, 78,221,242,108,118, 74, 76, 1, 37, 4, 15,206, 79, 25, 85, 13, 11,211,179, + 48, 29, 11,235,152,185,158,153, 49,184, 36,120,152, 34, 70, 86,236, 53, 19,118,171, 1,175,238, 29,209,161, 57, 26, 14,249,161, +210,200,186,197, 70,152, 69, 65,211,180,120,161, 89, 8,205,209,112,196,181,166,230,238,206, 4, 89, 85,172, 82, 98,183,105, 72, +229,223, 51, 49,160,149, 98, 17, 3, 81,215,204,137, 56,169, 56, 24,142, 25,214, 53,149,168,104,155, 33,171, 24, 89,196,196,185, +174, 24, 75,201, 7,214, 51,210,154,147, 20,177,186,230,184,170, 57,108,235,204, 50,145, 85, 78,252,211,154,251, 33,224, 84,197, +169,170,168, 18, 8,149, 1, 72,125,146, 76,235, 1,231, 36, 90, 33,137, 90, 51,208, 21,161,110,242,189,228, 2, 76, 38,249, 61, +171, 84,169,119, 5, 76,227,227, 86, 72,157,210,150,105,210,151,131,217,198,158,188, 73,120,187,244,176,151,213, 74,219, 20, 65, + 83,147,107,234,112,248, 19, 40,234,149,206,212, 56, 89,216,180,155,136,186, 90,230,177,252, 64,103,146,220,160, 64, 79,122, 83, +186, 75,185,245, 91,127,100,180, 84,124,236,155,110,176,213, 4,155,184,211, 84, 52, 82,102,177,130,148, 52, 72,156,204, 78,176, + 70, 72, 66, 74,172, 66, 98,230, 3, 35, 1, 71,131, 33, 51,231, 88, 24,203, 81, 51,224,162,239,105,165,100,208,182,124, 38,101, + 11,146,214, 21, 54, 5,166,186, 97,149, 18, 90, 43,214, 33, 17, 93, 96,168, 4,201,120,124, 85, 80,130,189,161,105,106,170,166, + 37,166,128, 67, 32,154, 6, 23, 28, 23, 49,113,125,178,203,179,181,161,214, 21, 85, 57, 13,207, 75, 64,140, 75,129, 90,215, 56, +235, 72, 8,140, 42,106, 8, 31,182,150, 62, 45,182,157,123,173,182,142, 0,138,143,189, 45,147,144,226,223,207,227,151,114,112, + 74,177, 0,108,202, 9, 14, 87,224, 4, 27, 95,100, 25,213,139, 34, 79, 23,197,211, 24, 2,191,243,207,254,128,241,116,200,217, +243, 25,198,250, 34, 66,203,118,172,182,105, 24,181, 21,215, 38, 67,246,134, 21, 82, 40, 72,121,114,145, 16,217,171, 94,176,139, +147,129,190,196, 97,251,148,215, 26, 41,165,252, 22, 42, 65,173, 36, 18,121,137,171, 36, 68,116, 17, 68,198, 16, 49, 9, 86,214, +179,232, 44,117, 8,244, 93, 46,232,115,103,241,206,161, 73, 44,100,226, 73,231,105,106,201,241,222, 62,231,167,103,252,203,255, +241, 93,150, 83,120, 98, 34,141,137, 12, 10, 96,139, 62,194, 58, 48,184,213,240,250,193, 46,135, 77, 11, 66,112, 56,157, 48, 29, +143,184,243,234,235,196,227,107, 60,105, 27,222,183,134,209,254, 14,225,238, 62,119,111,239,113,112, 52,101, 48,108, 80, 82,178, + 51,106,208, 77,141,174, 20, 66,231,208, 26,159, 34,174,115,196,149, 37,174, 12,126,222,145,150, 6,107, 60, 51,239, 48,107,143, +180, 17, 21, 2,202,165, 12,179, 16,217,242, 71,163,145,173,102, 69,228,222,202,113,227,133, 9,213,237, 9,103,227,134,106, 82, +227, 67,226,230,235, 59,124,246,223,125,129, 63,252,252, 29, 94,121,237, 24,127,180,135,221,191,193,209, 11,183,248,210,231,110, +241, 75, 47,237,243, 76,104, 46,230, 11,222,249,193, 61,186,241,132,223,250,167,191,129,255,212, 46,253,222, 46,255,253, 43, 47, +240,250,193,148,231,159,122,137,119, 30,126,192, 95,255,223,143,184,111,159,177,236, 79, 89,137,200,159,127,233, 55,105, 63,117, + 11, 53,172,241,175,221,193,188,241, 6,135, 55,247,249,229, 91, 83, 94,155, 84,164,139, 37,255,203,255,240, 63, 51,121,248,136, +201,206, 17,235,135,239,240,224, 7, 79,224,198, 62,124,246,243,252,225,175,254, 10,255,197, 63,186,195,167, 38, 21,223,123,239, +140, 15,254,237, 55,225,222,183,248,225,122, 78, 67,205,215, 58,135, 9, 1, 49,154, 66, 43,243, 14,127,181,248,168,122,222, 89, +196,253,251,136,217, 41, 23,201, 49,244,129,107, 90, 82,251, 14, 84,141, 75, 57,186,249, 52, 70,186, 16,208, 49,210,117, 6,133, +103, 95,101, 65,146,117, 54,243,199,173,227,195,139, 53,110,113,145,149,236, 49,254,195,176,182, 59, 59,176, 59,229,238, 43,183, +217,191,126,157, 52, 26, 97, 54,177,152,226,138,208, 53,138, 18, 4,211,193,249, 2,158,156,192,249, 9,204,231,217,131,255,241, + 17,190,247,204,116,195,206,160,166,149, 10, 3, 88,103,216,197,243, 36, 36,174, 87,154, 41,145,115,107, 57,104, 53,149,245,156, +173, 58,226,176,198,232, 17, 92,156,255,205,102, 93, 74, 68,242, 8,106,132,220, 88, 85,213,150,113, 81,235,252,241,148,138,147, + 74, 34, 76,143,208, 10, 17, 74, 81, 71, 32,156, 71, 24, 79,212,255, 63,105,111,246,107,105,118,158,247,253,214,248, 13,123, 56, +243,169, 83, 85, 93, 93, 93,172,174,158, 56,153, 45,137, 10, 41, 51,178, 33,193,130, 36, 35,145, 97,192,210,133, 12, 36,200,159, +146,155,228, 46,119, 9,144, 32, 72,174,236, 4, 50, 34, 40,242,144, 72,182,168, 33, 20,105, 81,162, 68,145,236,185,217,213, 93, +243,169, 51,236,233,155,214,148,139,245,157, 58, 69,138,162,100,251, 0,141, 70, 55,186,107,239,179,135,245,190,235,125,159,231, +249, 9,252,186,167, 75,145,158,192,178,239, 88,199,129,197,208,240,120,185,100, 29, 7, 78,251, 53,139,211, 5, 67, 18,244,109, + 79,127,182, 33,124,252,132,199,143, 31,211,214, 5,235, 97,224,254, 98,201,188, 40,120,176, 94, 48,196,200,241,224,120,216, 14, +156,119,129,141,146,172,148, 38,152, 10,165, 43,190, 48,219,195,214, 51,122,169,216,155,206,241,170,192,235,130,199, 33, 81, 84, + 53, 66,107, 30,247, 29,167,194,176, 37,224,106, 89,241,210,116, 66,101,242, 69,170, 46, 74, 58,151,215,114, 46, 69, 74, 41, 51, +162, 59,193,134,200,160, 13,115, 99,159, 89,248,148, 49,164,148, 24,132,160, 11, 18,133,224, 81, 74, 76,164, 98,153, 18,103,202, +160, 99,224,192,150,204,170, 10, 63,154,219,210,200,182, 40,147,226,254,152, 26,249, 24,201, 92,192,169,208, 76, 77, 73,212,138, + 90, 91,162, 52,204,109,201, 32, 52, 93, 20, 76,116,137, 85, 2, 35, 21,190, 40, 17, 66,147,252,144,207,237, 62, 60,103, 87, 22, +151,235, 81, 57, 94,116,195,184,254,185, 72,103, 29, 87,121, 25, 42,147,158,241,211,233,250, 49, 42, 88,193,164,248, 17, 66,185, + 11,203, 68,248, 49, 66,141,231, 23,253, 33, 94,230,209,198,209,195,105,213,248,224, 64, 61, 25,159,116, 28,119,228,234,178, 51, + 49,227, 46,193,143, 41,107, 23,202,213, 66,231,241,124,140,208, 12,212,219, 5, 49, 4,202,162,192,142, 35,185,141,136,153,181, +173, 52, 33, 4,124,138,148, 35, 23,253,220,123,226, 38,113,213, 26,122,163,184,223, 52, 92, 43, 13, 78, 66,215, 52,217,163,143, + 68,141,120,155, 53, 1,161, 20, 93,204,106, 72, 10, 69,179,118, 56,171,168,186,142, 6,216,169,106,150, 67,207, 68,102,155,158, +181, 10, 57,120,142,173,196, 72, 75,231, 58,174,204,107,150,173,103, 9,180, 74, 82,203,188,195,201,147, 9,143, 49,138, 74,192, + 12,203, 61, 95,228,219,132, 43, 51,129,169, 24, 45, 11,197,197,222,123, 28,193, 91,147,247, 99,155, 54, 91, 4,149,189,108,128, +226, 56,126,187,236, 0,198, 46,126,180, 21,170,254,185,200,247,113,255,166,100,110, 0,100,238, 0,165, 54,212,165,193,150, 5, +206, 53, 12, 33,210,119, 13,222, 11,246,111, 79,241, 33, 17,197, 40, 16,148,163,109, 45,137,156,229, 78, 78,111,138, 49, 71,196, + 94,172,137,196, 24,177,120, 17, 56, 18,158, 77, 13,199,226, 54,138,221, 32,162,165,192, 27,149,227, 98, 35,249,182,236,125,238, +234,157,207,116, 52, 45,104,122,207,208,123,102,209, 83,171, 18,167,224,183,126,239,109,184, 62, 82,186,250, 72,159, 18,189,146, +212, 34,177,159,224,245,168, 88,252,155,167, 60,184,125, 78,115, 84,115, 62,209,220,222,154,115,104,167,108, 25,139,173, 42,142, +174,237,211, 41,193,244,234, 22,187, 19,203,238,188,162,117,158,224, 19, 58,197,188,222, 82, 57,137, 42,250,172,234,239, 58,143, +223,244,132,243, 6,183,106, 9,231, 93, 14,242, 16,153,210,244, 84,104, 90,155,113,141,170,200,116, 41,161,198, 23,164,243,180, + 70, 50, 36,201, 79,207, 74,254,197,147, 13,167,107,207,237,195, 57,183,141,224,177,145, 92,157, 27, 10,169, 57,237, 60, 79,124, +226,113, 18,232, 74, 17, 62, 94,242,218, 43, 87,216,149,154, 7,149,226, 65,167,249,142, 87, 60, 57, 59,165,251,246,135,184,193, +243,107,175,189,194,230, 51, 91, 20,127,244, 93,222,191,255,152, 95,249,213, 95,230,119,204,255, 67,247,203,255,152,111, 61, 56, + 97,251, 11,159,226, 5, 35, 48,117,102,220,171, 62,112, 48, 51,124,244,212,241,251,159,172, 49,181,160,148,112,171,168,232,154, +158,170,180,188,250,226,171,124,237,168,131,207,253, 4, 92,187,193,111,173,122,190,240,237, 7,124,252,209, 61,190,250,141, 63, + 64,188,245, 33,105,113, 6,243, 45,190,254,218, 9,236, 94,131,249, 30,136, 9,226,232, 54, 76,102,164,191, 0,158,220,191, 44, +182,133, 37,109, 29,192,222,156,157,232, 56,220,156,113, 93, 12, 28, 39,193,188,208,252,222, 96,115,115, 58, 56,218,206,115,191, +235,192, 37, 78, 54, 17, 49,145,188, 94, 22, 20, 50,127,250,223, 93,173,105, 78, 79,114, 24,199, 15,121,226,255, 86, 22,187,194, +230,209,250,209, 21,174, 95, 59, 98, 94, 84,188, 52,219, 70, 73,195, 7,205,146,191,236,154, 49, 23,194,141, 65, 89,125, 46,232, + 79, 22,176,218, 60, 83,254,255,181, 63, 41, 66,223,241,193,202, 48, 0,243,233, 20, 33, 18,203, 0,187, 42,210, 12, 29, 70, 23, +148, 69,129,118, 29,239,133, 0,147,146,229,119, 63,204,254,245,209,238, 36, 46,206, 93,123,121,108,139, 64, 22,202,217, 81, 51, +163,244, 88, 27,100, 22, 46, 63,107, 44, 58, 64, 34,214, 93,118,202,248, 46,143,110,209, 48, 47,225,120, 1,147,154,212,247,184, +145, 50,150,146,200,254,105,171, 25, 78, 61, 41,102, 49,150, 96,153, 85,247,139,243,188,167,247,158,230,207,207,104,182,247, 96, + 94,179,120,188,130,249, 4,140,203, 83,179,114,108, 54,172, 1, 85,242, 70, 57,227,139,135, 7,232, 50, 43,253,159, 58,201,147, + 20, 81,198, 64,211, 82, 87, 51, 30,187, 22,133, 34, 20, 19, 8, 3, 94,104,142, 38,134,165,207, 72, 85, 77, 36,197,108,185,117, + 73, 97,147, 35,197, 64, 45, 37, 70, 74, 66,244, 20, 72,132,200,185,246, 3, 9, 31, 3, 86, 42,246,100,129, 65,240, 81,227,216, + 37, 67,112,172,148,196,224,169,139, 2,157,160,247, 30,173, 84, 94,112, 40, 77,240, 30,161, 5, 97, 32, 51,214,129,119, 82,100, + 27, 48, 90,179,173, 20, 66, 42,100,130, 38,122,118,202, 2,161, 13, 11, 55, 80,150, 59, 48,244, 76,221, 64,168, 21, 46, 57,220, +217, 41,241, 98,172,126,177,197,121,150,221,226,243,100, 85, 91, 88,119, 80,155,108,143, 30, 5,186,153,246, 57,134,142,197,144, +111,235,253,144,255,157, 16, 63,116, 83, 47,198,253,204,133, 2, 42,134, 31,159,237, 30,227, 24,214,160,242,200, 76,219,203,226, + 93,154,252, 38, 22,118,140, 36, 29,201,100, 70, 94,198,221,121,127, 73, 29,187, 16,210,149,227, 23,172, 52,249, 3, 17, 3,141, + 84, 28,213,134,235,117,222,111, 12,249,227,137, 85, 26, 41, 4, 67,140,204,140,101, 17, 2,143,250,129,137, 50,184,193, 83, 90, +133, 1,134,224,113, 62,142, 35, 19, 16,163, 13,162, 77,144,164,200, 65, 41, 49, 82, 22, 5,231,206,161, 98, 96, 45,198,238, 47, + 74,210, 40,244, 48, 73, 32,173, 33,218, 12, 80, 88, 43,141, 87,154,101, 31, 16,202,176,244,145, 82,105, 22,163,173,192, 9, 80, + 34, 97,133, 38,198,200,148,200,126, 97,232, 99,228, 70, 33, 89,123,184, 54, 55, 44,252,184, 87, 49, 69,126,205,211, 5, 8, 96, +228, 61,219, 2, 98,159, 85,193, 50, 93,134,244,168,209,187,142, 24, 51,244,229,101,166,188,240, 16,117, 94,105,164, 52,222,210, + 71,167,129, 22,207,156, 8,255,248,159,254, 23, 12,222,179, 90,118,128, 96,107,107,130,182, 5, 90,105, 68,202,227,187,137, 45, +217,223,158, 80, 24, 3, 40,204, 40,120, 19, 36,196,184, 47, 55, 58,135, 88, 36,192,143, 52, 54, 57, 42,222,165,202,169,124, 82, +228, 36, 57,141, 64,250,128, 28,124, 30, 63,197,113,229, 50, 56, 54,103, 13,195,186,161, 89,119,104, 63, 32, 99, 34,117, 14,239, + 50,208,165,176,134,195,195,109, 78,151, 11,190,246,135, 79, 71,229,232,152,214,151, 98,230,103, 55,129, 69, 72,124, 52, 36, 62, +155, 36,111,244,146, 79,249,196,108,227,136,235, 13,199, 97,197,251,199, 79, 40,148,197,163,168,102, 5, 7, 91, 37,193, 74, 86, +157,227,100,209,177,233, 28, 69, 8,204, 71, 11, 97, 24, 60,125, 63,176, 90, 15, 52,171,142,245,241,154,254,100,195,234,201,138, +205,249,154,184, 25, 80,157, 71,251, 72,223,123,150, 74, 83, 86,134,114, 98, 81,181, 33, 21,138, 88, 72,156, 20, 44,181,226, 79, + 31,119, 60, 58, 93,227,155,129,147,143, 22, 28,157,183, 44,134,196,199,117,193, 50, 65,209, 58,110,198,192, 31, 55,158,150,200, +102, 24,248,179,251,107, 14,118,106,206,159,182,124,175, 13,116,198,112,243,133, 43,188,118,235, 26,119, 23, 3,183,203, 9,127, +119,119,194, 55, 79, 26,126,251,172,229,219, 31, 63, 96,239,214, 45,236,207,254, 44,211,237,146,159,120,229,144,151, 42,205,237, +185,161, 52, 18,221, 5,132, 15,252,230,127,255, 63,243,254,255,254,239, 40,223,124,131, 23,125,196, 8,201,222,203,183, 25, 40, + 57, 57, 94,114, 79,150,184,107, 55, 88, 40,141,120,112, 23,222,251, 14,127,242,173,111,242,239,191,241, 53,120,235, 61,232,187, + 92,112,250, 13,220,191, 15, 67,139,152,150,136,233, 54,162, 40, 97,235, 8,113,116,132, 40, 4, 98,136,136, 43,215, 16, 47,221, +130,163, 35,196,214, 54,251,229,156,219,211, 25, 34, 70, 14, 38, 5,195,232,120, 57,189,136, 80,245, 62, 31, 90,237, 0, 9, 30, +111, 6, 94,180,128,115,188,127,186,224, 27,143, 22, 99,196,178,255, 43,226,178,191,241,198,110, 44, 76,199,189,249,124,202, 11, + 59, 7,124,250,240,136,169, 45, 16, 70, 50, 23,134,123,174,103,240, 29,172,155,204, 49,127,122,158, 85,237,205, 58,143,217,255, + 54, 28,140, 32, 73, 74,115,115,103,134,240,158, 46,146,209,171, 2, 74,109, 9,222,115,104, 60,223,216, 12,132, 16, 97,213,102, + 43, 92,159,109,174,194, 94, 68, 55, 22, 16, 37,162, 48, 8,165,161, 40, 17,133, 69, 76, 42,132, 80,200,210,230,219,120,204,107, + 68,145, 98,182,130, 42,131, 8, 14,169, 12,194,245,185,225, 30,134,252, 29,238, 6,196,102,200, 24,212, 38, 34, 86, 77,190,201, +175, 55,136,193,195,166, 69,156,158,229,191, 55, 61, 98, 61,254,222,189, 3, 53,142,251,117,157,181, 82,166,132,157,233, 24, 40, +118, 33, 16,172,242,164,177,172,184, 53,219,230, 43,123,115, 76, 97,217, 41, 70,124,110, 18, 60,118,129,101, 28, 56, 13,137,117, +200,122,171,228,134,103,231,219,171, 90, 81, 68,129, 45, 50, 53, 51,166,200,150, 86, 68,159, 11,160,140,158, 73,138, 20, 74,178, +114, 61,101, 18, 88,149,107,203, 38, 6, 80, 22, 73,194, 74,131, 78, 33,143,223,125, 36, 42, 69, 76, 89, 56, 56,144,216, 33,178, + 91, 25,132, 72,104,161, 81, 66,228,210,229, 19, 90, 37, 62,232, 29, 33,196, 44, 10,148, 10, 33, 36, 47,149, 37, 9,112, 49, 18, +165,196,142,154, 42,167, 12,171, 20,113, 72,138, 20,145, 9,250,232,169,149,193,248, 1, 69, 98, 75, 68,194,168,119,146, 74,230, +193,181, 20,185, 14,111,150,227,216,113, 76,165, 51,230, 50,247,196,152, 92, 7,244,232,131, 23,227,133,109, 24,158, 43,234, 90, +143, 51,252,231,162, 37,148,248,155, 35, 11,165,204, 99,224,194, 94,142,127, 43,123,201, 12,103,140,109, 92,143,193, 15, 73,102, + 53,230,197,152,232, 34,194, 34,230,113, 27,117, 49, 62, 65,149, 71,105,227,174,254,213,210, 48,173, 42,144, 18, 35, 50, 47,216, +201,156, 57,174,148,166, 13,142, 90,105,254,112,209,210,118,142,235,181,230, 60,120,116,128, 74, 74,218,222,129,200,145,156,143, +219,129, 82,231, 78,103,209, 57,148,209,217,182, 16, 19,149, 82, 56, 4,201, 5,246, 73,156,105, 73,236,122,124,140,172, 72, 20, + 36,144, 26, 95, 85, 56,239, 40,116, 65,135,162, 75,153,108,118, 38,192,167,144,149,222, 33, 3, 51,134, 20, 40,165, 98,187, 16, +180,189,163, 82,145,160, 4,123, 82,240,184,201, 98,191,225,162, 75, 75, 33,107, 20,194, 40,124,209, 58, 31, 86, 23,175,101, 84, +185, 99,144,207, 29, 89, 23,169,115,105, 76,123, 9,227,205, 93,143,111,188, 26, 95,227,174,203, 77,216, 56, 97, 81, 63,249,101, +126,233, 75,159, 97,213,246, 44,158, 46, 73,200,188,186, 81,153,133,190,183, 51,165,180, 5,243, 89,193,188, 42,145,163,210, 84, + 34, 32,141,164, 35,149, 85,168, 86,103,113,136, 72, 41, 7,173,140,141, 68, 26,189,155, 82,200, 49,152, 38,131, 10, 98,200,196, +187, 97,240,153,130,231, 2,237,224, 56, 61,223,176,105, 58,220,224,113, 62,143, 87,205,248,103,201, 4,251,123, 83,138,157, 45, +254,240,123, 31, 51, 91,123,206, 69,204, 13, 99, 28, 87, 16,110, 20,107,142,222,240,247, 8,124,107,136,148, 7,138, 67,171,248, +194, 65,197,203,147, 25,135, 9, 68,116, 68, 31,112, 62,225, 18,172,218,129,229,170,101,209,244,136,224,217, 45, 12,211, 50,231, + 27,120,151,247,231, 67,215,211, 54, 61, 67,219,179, 92, 54, 60, 89, 55, 44,186, 30, 98,196, 36,129, 34,145, 72,180, 49,145,148, +194,100, 3, 63,201, 72, 82,169,112,243,130,149, 86,188, 88,192, 23,107,195,225,142,229,212, 42,238, 46, 7, 78, 14, 39,204, 39, +150,193, 7,134,179,142,173, 39, 75,222, 30, 9, 78,201,193,103,125,224,231,118, 43, 30,118, 29, 77, 10,236,213, 5,213,149, 57, +219,251,115,234,170,230,211, 51,195,235,237,192,187,239,221,229,119, 99,201,245,175,124,133,151,175,237,179,175, 4, 7, 90,112, + 85,195, 47, 76, 5,247,158,174,184,251,135,111,243,245,255,237,255,228,247,255,135,127,203,209, 52, 81, 87,146, 15,255,199,175, + 82,117, 31, 49,125,245, 53,206,128,191, 76, 80, 29,204,120,241,149, 67,142,136,124,251,155,127, 8,127,241, 29,120,114, 31,119, +255, 62,226,116,253, 3, 80,160,252,201,144,136,197, 89,222,111,207, 10,196,214, 17,170, 40,249, 71, 55, 95,224,239,221,121,157, +171,135,215,120,239,251,119, 17, 33,241,147, 71, 59, 28, 23, 91, 28,104,205,142, 18, 24, 99,209, 41,175,116,154,224, 56, 30, 28, +196, 1, 81, 76, 16, 59,219,121,106,178, 92, 34,218,200,251,167, 75,222,122,248,148,251,103, 27, 68,212,136, 43,123,136,214,255, + 64,244,241,143, 23,194,217, 44,130,187,114, 0, 71,251,176,181, 13, 69,137,179, 83,238,204,166, 40,173, 48, 82,161, 8,232,190, +225,254,201, 73, 46,226,143,206, 96,125, 14, 87,175,194,147,167, 63,158,140, 88,215,207,133,130, 36,152, 84, 60,238, 61,135,211, +154, 46, 69, 62, 51,181, 60,241, 16,195,192, 65, 33,121,212,229,203,195,208,182,163,104, 42, 55,240, 66,171,204,105, 40,107, 68, + 85, 32,172,201,227,244,249, 12,153, 4,162,178,200, 20, 17, 69, 46, 92, 66, 8,132,136, 72, 45,145,214, 34, 92, 14, 45, 82, 49, + 34,147,207,134,164, 4, 50, 70,228,186, 65,246,153,167, 32,124, 64,182, 77, 46,238,155, 14,209,118,185,240, 55,185,105, 19, 62, + 32,100, 1, 87,174,114,227,104,135,163,107,123, 28,237,205, 41,107,195, 82, 87,136,178, 64,236, 76, 17, 91,219,168,249,156,106, +107,155, 80, 22,164,162,120,246,154,191, 86, 88, 14, 38, 53, 82, 42,134,144,198,115, 56,129, 75,156,134,200,189,161,203,151, 62, + 55, 18,244,136,144, 2,109,130, 59,181, 65,199,156, 24, 90, 8, 40, 83,196,117, 13,237,208, 97, 99, 64,165,196,208,247,204,132, +160, 0,108,244, 84, 66, 50,144, 24,162,103,199, 88,124, 12, 56, 33,184,219, 39,206,156,199,227, 51,161, 14,232, 7,199, 3,239, +216, 79,145, 93,107, 41,165, 70,166,152, 97, 48, 4,158,180, 3,167,206,225, 66, 32, 41,137, 82,154, 47, 84, 21, 37, 89,255, 85, +168,156,216, 87, 22, 19, 42,169, 24,156, 67,217, 60,105,216,160,152, 25,141,140, 48,179, 53, 41,180, 28,136, 64,109, 21,251,165, +101,207, 74,162, 80,244, 62,145,252,152, 65,146,252,152,210, 55,214, 70,173, 70,173, 90,186,140, 10, 30, 70,132,112, 14,236,135, +162,120,174,168, 95, 40,238,210,115,217, 80, 63,142,109,252,188, 5, 68,141,183,113,165, 47, 11,186, 85,227, 19, 10,121,167, 22, +195,229,168,190, 40,176, 55,174, 19, 86,203, 17, 88,114,193, 88, 38, 63,190, 26, 21,219, 77,151,159, 71, 81,112,125,103, 70,141, + 96, 90,228, 49, 85, 31, 7, 10, 12, 46, 69,172, 22, 88, 20,143,188,195,137,192,227, 33, 98,100,226, 69, 85,176,118,158, 46, 4, +172, 16, 8,149,133, 86, 59,133, 97, 25, 2,141, 11,204,166, 85,142,241, 84,138, 66, 10, 54, 41,209,135, 64, 73,162,213, 2,235, + 3,105,200,183, 92,149, 2, 58, 10,158, 36, 79, 82, 2,165, 13, 31,244, 30, 33, 21, 15,135,158, 94, 41,206,164,204,190, 71,160, + 25,195, 86,124, 76, 28,105,141, 78, 17, 37, 34, 69, 76,148,192, 58, 69,174, 25,197, 11,219, 53,247,125, 34,117, 67, 46,196, 23, + 54,136,139,244, 33,153, 35, 31,145, 41, 23,118,105,242,107, 27,199, 27,119, 26,111,235, 23, 35,246, 36,126, 16,109, 43,121, 6, +202,201, 34,186,252, 33,124,253,211,175,241,147, 95,184,195,211, 39, 27,154, 77,135, 82,138,174,113,184,198,209,181,158,201,180, +230,214,254, 22,187,149,165, 48, 38, 55, 42, 58,119,174, 81, 36,122, 23,241, 49, 97, 20,148, 54,243,212, 99, 74, 12, 99,164,156, + 18,185, 24,199,139, 29,224, 40,242,115, 62,211,152, 92, 12, 52,206,103,158,186,143,244, 93,207,226,188,165, 25, 28, 68,207,224, + 60, 93, 55,228,141,142,200, 1, 14,251,187,219,172,207, 23,220,251,131, 39,168, 82,112,220,197, 60,141,136, 2,218,231,242,236, +159,159,187,238, 42,238, 29, 89,222, 42, 4,195, 78,201, 83, 1,167, 34, 51,220, 85,240, 20,194,160,133,162, 64, 96, 84,166, 85, + 29,108, 85,236,110,215, 20,165,205, 72,202, 68,166,170,141,152,198,204,216,137,156,183, 89,205,155, 4,168,148, 70, 68,120,110, + 98,156,148, 56,161, 8, 42,191, 15,186,208, 24, 37, 41,140, 96, 57,102,227,123,145,216, 19,137, 15,143, 55,188,110, 3,219, 49, +208, 5,136, 66,176, 16, 18,171, 4,125, 76, 92, 73,240,138, 17,184,110,224,107, 70, 49, 49,134, 55, 15, 74, 14, 38, 26, 81, 20, + 76,247,167,124,254,250, 14,179,171, 51,222,155,238,243,237,233, 54,147,189, 9,159,214,137,185, 27, 48,109, 71,179,110,120,122, +182, 70, 60, 94,112,179, 86,184,205,154,117,179,102,209, 4, 78,222, 31, 16,175, 78,248,169,191,115, 19,117,125,143, 43, 47, 31, + 32,164,224,222,247,143,249,232,253, 7,156, 63,124, 72,124,248, 33,203, 7,199,136,126,200, 99,217, 8,130,248, 67,240, 22, 63, +202, 54, 92, 46, 10,201,129,173,249,197, 59, 55,216,169, 11,254,217,160,240,135, 87, 16,187,219, 60,146, 5,164, 64, 37, 13, 83, +109,184, 58, 41, 41, 68,164, 16, 1,209, 59, 62,218,172, 16,218, 34,182,246, 96,114,128,216,158,163,106, 11, 50, 33,154, 11,128, +209,152,203,208,244,192,128,248, 17,103,150,184,208,254, 76, 39, 57,218,245,224, 16, 14,247,178, 77,109,103, 43,219,211,138, 18, +180,166, 87,150, 79, 9,137,148,121,122, 38, 82,226,244,252,152,251, 79, 78,224,238,147, 28,158,227, 60,156,158,253,248,130,190, +189,199,252,179, 47,209, 47, 54,121,202,160, 68,214,121,204, 38, 68,149, 49,167, 31,246, 3, 3,217,122, 26, 19,156,247, 61,125, + 31, 16,198, 16,156, 3, 23, 16, 86,231,255,183,158, 34,234, 18, 68, 68,212,249,134,107, 10,139,157, 90,180, 15,204, 39, 37, 59, + 66, 80, 72,197, 16, 3, 90, 10,132,144,200,110,200, 43,175, 24, 81,147, 2, 57,228,226,167, 0,213, 69, 84,148, 40, 76,182,173, +186,132,114, 9,233, 61, 50,133, 92,244,131, 64, 42,141, 40, 45, 98,178,141,216,218, 98,111, 86,240, 51,219, 21,183,108,193,157, +121, 77, 97, 44,161, 44, 56,223,223,167,158,239,176, 85, 87,236, 84, 53, 62,121,164, 52,227,170, 77,160,132,230,166,209,236, 21, + 38,163,175,147, 64,132, 72,146,146,227,182,227, 27,235, 53, 41, 14,224,218,172, 77,232, 86, 99,124,238, 64, 43, 18, 47, 6,207, +158, 86, 36,223, 81,199,132,107,214, 44,134,142,171, 41,103, 59,216,152, 87,176,132, 76,127, 44, 0,235, 7,180,202,142,149, 97, + 20, 94,159,196,200,159,175,215, 52, 82,147,146,224, 65,223, 81,168,130,227, 24,242, 20,163,239,216,150, 17,225, 29, 49, 56,226, +208,211,224,249,214,217,146,110,252,188, 79,149, 66, 1,187, 66, 81, 26,149,203,154,212, 8, 33, 33,120,130,174,208, 35,108,204, +105,139,141,142,101, 20, 76,132, 64,132,129,153, 45,136,110,160, 84,144,198,122, 87, 40, 40,149,196,106, 73,144,138, 96,116, 22, +204, 73,159,235,231,152,240,137, 24,217, 42, 93, 51, 6,190,141,122, 54,149,243, 74,126,112,252, 30, 46,114,216,185, 76,189,249, + 91, 89, 64,200, 35, 22, 57,222,192, 47, 30, 68,140,129, 41,221,152,166,211,249, 60, 82, 10,145,176, 89,229,142,204,135, 75,114, +155, 27, 50, 39,118,221,193,122,117,169, 6,175, 75,182,167, 5, 59, 69,145, 5,108, 72, 10, 85,176,137, 61, 70, 10,140, 52, 36, + 18,231,222,177, 14,142, 70, 8, 92, 23,209,210, 51, 55,146,117,140, 44,187,241,131,170, 37, 49,101,244,101,101, 77, 30,205, 11, +193, 68,105,150, 49, 32,200, 59,228, 42,101,171, 28, 33, 80,196, 64,138,153,237,221, 39,193, 32,243,248,229, 97,132, 61, 45,249, +190, 11,120, 83,114, 50,244,184,232,113, 73,162,136,180, 49,162,147,224, 64,129,213, 17,145, 2,115, 1, 83,107, 96, 24,152, 75, + 5, 8,206, 18,124,170,182,116, 74,209, 92, 88,253,144, 63, 56, 59,212,242,146,102,119, 33, 46,212, 35,201,229,194,218, 38,198, +155,186,146,185,240, 95, 8,242,146, 24,173, 46,126,132,188,100,242, 67,177,176, 0, 0, 32, 0, 73, 68, 65, 84,171,216,237, 87, + 95,229,149, 87, 94,100,189,238,243,205,184,207,169,105,222, 7,124,151,168, 39, 37,175,223,216,101, 90, 91,172,214, 4,145, 15, +138,156,155, 76, 30,177, 75, 40, 68,246, 62,167,209,206,230, 99, 32,196,244,236,105, 10,153, 15, 49, 59,178,141, 7, 23, 17, 33, + 16,198,176,149,228, 2, 67,231, 56,105, 6, 78,154,158, 85,223,115,188,110,216,120,135, 31, 60, 25,101,223,227,165,100,182,187, +205,253,183,238,145,214,142, 91, 42,115, 1,174, 32, 88,196, 68,120,158, 29,112,193, 55,190, 83,192,142,201,130, 45,163,184,215, + 37, 62,238, 2,107, 19, 88, 9, 40,167, 19,236,124, 11, 61,159,176,189, 93, 51,159,150,204,107,195,254,180,100, 54, 41,209, 70, +227,147,192,187, 72,219, 13,217,187, 30, 99, 14,149, 9,145,206, 69,186,206, 17,124,198, 90,202,152, 50, 40,104,116, 8, 12,128, + 83, 25, 91,151,164, 96,183,233,169, 63, 58, 33,189,245, 9,233,235,239, 48,251,179,143,216,187,191,224,197,162, 96,103,171,226, +228,147, 53,205,163, 5,161,113,116, 10, 82,145,227,104, 95,148,138, 69, 76,252,249,137,167,209,130,182,115,148, 90, 96,218,200, +253,214,243,193,202,241,241,144,248,176,135, 79,148, 33, 86,150, 97, 8,220,238, 59,118,154,158, 97,177,225,227,227,117,182,218, +101,172, 32, 46, 86,172,194,130,122,191,224, 75,191,252, 38,191,254,243,111,242,223,124,254, 53,182,174,110,225,172,102,249,222, + 35, 62,249,224, 33,215, 53,124,110, 82,241,133,249, 54, 47,204, 20,223, 93, 5,104, 55,136,232, 17, 38,219, 19, 47,139,122, 68, +212,183,145,111,126, 30,113,243, 14,226,250,203,136,217, 14, 87,183, 38,204, 69,226, 74, 23,120,176, 92,243,139, 7, 87,184,187, + 94, 66, 72,108,136,188,161, 53, 59, 50, 97, 83,160,242, 30, 25, 91,222, 58, 59, 71,110,214,136,178, 66,216, 2,129, 34, 13, 27, + 68,223, 32,106, 11,123, 51,132,169,248,213,215,142,184,179, 59,225,237,167, 13, 12,221, 95, 29,185, 23, 83,120,225, 42,236, 29, +192,213,189,188,239,221,154,230,208,142,162, 26,225, 40,105,252, 30,121, 30, 56,199, 81,136,152, 52,112,126,246,152,175,126,114, + 31, 30, 62,201,222,247,191,233,146,243, 12,153,236,232,165,133,179,179,124,174,198,139,232,102, 69, 83, 88, 86,206,211, 39,104, +218, 64,167, 18, 27, 31,233,135,192, 6,143, 31, 28,116, 1,107,243,249,144,180, 65, 16, 80, 42,239,165,139, 82, 19, 29, 28, 78, +205,232, 26, 82,185,200,133,200,220, 42,218,148,115, 33,235, 81,232,162,146, 66,181, 29, 42, 73,180, 11,104,105,208, 4,246,109, +193, 63, 60,156,241,230, 94,205, 11,181,229,227, 38,162, 2,168,120, 97,213, 53, 72, 99, 17,214, 32,117,133,212,185,153,248,233, +173,130, 29, 83, 80,105,205, 34, 38,116,105,169,103,115, 30, 71,129,214, 37,133,204,194,229, 76, 18, 21,244,126, 0,105, 72,113, + 96, 11,184, 94, 20, 8, 55, 80, 11, 73,232, 91, 78,219,134,223, 61, 57,165, 27,214, 57,133,175, 89,193,226, 41,180,163,173,111, +232, 32,244,152,232,217, 52, 27,186,161,165,239,214, 12, 67,199, 86,191, 70,186,128, 13,137,105,200, 23,132, 42, 9,118,132,196, + 39, 48, 33,210,251,142,132,228, 81,240,172,147,224,173,229, 26,107,167, 36,223,147,144,212,202,176,246, 29,219, 74,179,118,142, +208,110,104, 86, 13,222, 53, 4,153,120,178, 94,114,127,221,177, 28, 28,173,115, 36, 18,221,208, 51, 16,216, 54, 6, 43, 50,251, +194,146,176, 66,146,180, 33, 6,207, 41,146,227, 48, 48, 17, 32,117,137, 26, 28,115, 35,144,193, 67,215, 83, 88, 75,240, 45,117, + 2,111, 20,201, 71, 42,149, 47,212,165, 21,153,211, 82,216,231, 44,201, 2,250,238,178,102,106,149,195,134, 24, 51, 11, 98, 78, +116,253,171,234,247, 24, 47, 63,132,127, 93, 1,151,250, 7, 49,159, 66, 92, 42,241, 34,151, 66,185, 11,216,251,133, 71,218,218, +203, 28, 91,247, 67,143,225, 70, 41,127, 24,159,112,235,114,178, 82, 85, 66, 93, 82,138,200, 81, 97,152,154, 18,129,100, 21, 28, + 83, 93, 18,162,160, 79, 16, 68,192, 10, 88,184,200, 39,141,231, 90, 37, 25, 66,224, 44, 68,204, 16, 88,201,172,202,143, 46,199, +196,182, 73,228, 24,117,165,242,196, 54,146, 83,191,144, 20, 66,210,199, 72, 17, 3, 67, 18,116, 74, 33,164,196,143,201,125,149, +135,115, 45,153,134,200, 67, 15, 75,165, 88, 71, 55, 22, 85,129, 75,129, 77,136, 52,209, 35,146,103,146, 18, 83, 9, 53,185, 24, + 22,193,161,165,194,199,200,164,180,108, 27,205,169,200,138,218,149, 45,242, 37, 83,141, 10,179,231,221, 1, 41,230,155,188,139, +121, 23,200, 5,185, 45, 94,194, 99,226, 69,214,251,120,180,153, 81,189,102,244,200,219,189, 8, 67,128,159,249,202,207,176,123, +101,155, 16, 35, 67, 31,104, 22, 13,235,245, 6,107, 11, 78, 78, 87,104, 59,225,229, 27,187,148, 54, 51,212,165, 84,132,152,242, + 91, 68, 64,164,236,213, 45, 74,133, 30,195, 88,252,152,177, 28, 71,155,218, 5,232, 69, 32,198, 36,169,152, 5,112,206,209, 53, + 61,193,121,196, 16, 88,121,207,113,235, 88, 53, 29,184,192, 89,219,225,130, 99, 19, 3, 27, 96, 45,160,222,154,178, 17,137, 63, +125,235, 17,111,117,249, 80,148, 74,242,229,160,248,251,104,254,126, 97,120, 67, 73,222, 43, 4,189, 25,111, 70,175,207, 96, 90, +141, 47,166, 6,145, 8, 14,180, 85,212,133, 97,111, 58, 99, 50,155,161,203,146, 80,228,195, 72, 11,193,150,177, 84,133, 65, 42, + 69,240,137,166,117,156, 44,214,156,158,183,108,250, 17, 11,219, 57,214,155,129,245,166, 99,221,117,185, 1,145, 18, 45, 37,133, +145, 24, 96, 82,106,182,119, 10,230, 51, 75,112,142, 39,247, 31,176,127,218, 33,124,226,129,244, 57,203,190,239,153,111, 58,246, +118,118, 8, 50,241, 72,129,216,169,209, 86,209, 38,193,118,130,166, 79,220, 95, 5,214, 49, 81, 78, 44,122,183,230,212, 11, 30, +184,196,162,143, 60,237, 60,199, 3,120, 33,179,251, 66, 64,104, 3,251,131,203, 97, 56, 72,206,238, 29, 83, 27, 69,187,104, 49, + 51,139,220,169,217,189,118,157, 95,248, 71, 95,230,205,159,124,153,159,191,177,203,180,214,252,243, 63,249,128,111,125,245,235, + 60,125,255, 67,110,148,130, 89,105,153,134,132,145, 5,201, 88,222,242, 61,190,139, 99, 97, 79,185,176, 43,133,188,253, 58, 63, +247,139,191,194,111,255,183,255, 21,159,253,244, 27,252,235,165, 69, 62,249, 4,249,206,159, 35,131,197, 37,195,106,211, 96,165, +228,108, 24,104, 99,142, 66,150,209,113,147,200, 92, 38, 84, 28, 48, 41,178,105,214, 60,238,123,220,147,115,196,189,251, 89,251, +169, 20, 82, 36,132,212,224, 59,196,131, 83,254,201,157, 67,126,253,181, 79,243,217,253, 3, 22, 69,226,131,133,131,144, 16,113, +140,225,156, 78,224,230, 17, 95,186,253, 41,234,157, 93,202,233, 22, 43, 61,238,126,149,186, 12,250, 96,188,241,251,142,161, 93, +211, 54, 27, 30,156,159,240,205,239,223,135,227,211,156,124,199,143,192, 27,255,184, 9,102,211,252, 96, 90,157, 27, 71,168,205, +112, 57, 65, 27,157, 56,105,240, 52,222, 99, 70,139,174,208,130, 42, 64,111, 36,133,128,163,210, 96,129,118,228,153,239, 20,154, +198, 69,182, 74,203,174, 49,180, 68,166,214,112,210,122,230,133,204,118,232,144, 87, 99,186,203,152, 85,147, 6,140,210,152,102, +192, 24,205, 87, 74,203, 94, 97, 50, 61, 86, 74,182,181,228,113,155, 80,165, 70,111,213,168,178, 70,238,214,200, 73,141,156,150, +200, 74,241,159,239, 20,220, 41, 45, 59, 90, 19, 17, 72,171, 25,132,100, 72,112,234,179, 21, 24,153,168,164,193,225,240,193,101, + 86,215,144,119,240,141, 31, 8,125,203, 21, 41, 56, 91, 28,211, 14, 61,191,127,239, 46,199, 79,143,225,244, 4,214,107, 56, 63, +207, 1, 66, 93, 63, 38,255, 13,208,108,120,218,246,124, 60,180,124, 48, 12, 52,155, 6, 57,116,236,196,136, 9,129, 9,137, 77, + 12, 28,232,146, 74, 8,186,148,152, 11, 73,163, 36, 38,230,128,160,211, 24,248, 78,151, 88,107,131, 14, 3, 66, 23, 8, 1,165, +144, 8, 98,230,235, 36,193, 16, 60,171,117,203, 39,203,150,187,103, 13, 79, 66,196,247, 3,221,224,216,145,146,174,237,153, 24, +197,224, 3,167,125,207,129, 18, 28, 22, 26,163,178,128, 88,105,201,105,128, 37, 34, 35,192,165,196,198,136, 22, 48, 12, 29, 69, + 24, 72, 82, 48,193, 81,134,192,106,240, 76,146,200,131, 28,173,242, 25, 21, 18,149, 18, 4,161,112, 74, 93, 78, 95,149,185,140, +145, 45,108, 62,211, 47,146,233,194, 0, 46,252, 71,196,196,234, 25, 76,203,252, 66,119,237,229,135, 54, 93, 40,247,210,229,248, +253, 98,132, 44,212,179, 66,146, 71,201,207, 41,223, 47,190, 76,207,212,219,163, 80,172, 30, 57,228, 85,206, 54,182,194, 34,133, +100, 57, 12,148,214,162,144,172,253,128,212, 22,237, 7, 90, 20, 18,135,150,146, 24, 34, 15, 59,152, 72, 65,233, 29,143, 82,182, +190, 45, 7, 7,117, 73,227, 28,214, 40,146,135, 70, 36, 42,165,233, 72,104,149,139,211,202,123,106,107,136, 74,162, 9,248,212, +114, 98, 20,120,143, 73, 30, 33, 52,190,233, 9, 19, 65, 45, 28,101, 7,141, 46,178, 86, 0, 96,104,137, 49, 91,250, 22,195,192, +182, 22, 92,179, 53,141,247, 28, 26, 67,231, 4, 62, 4, 14, 39, 83, 22, 67,135, 19,130, 93, 4,167, 69,205, 52,118, 44,170, 34, +199,199,202,220,209,225, 47,112,146,163,107, 64,143,183, 1,127, 33, 56,140, 57,176, 70,170, 60,138, 30,252, 8,204, 9,227,127, + 99,243, 62, 93,155,172,220, 21,121,106,226,135,252,129,152, 78, 11,214,139, 14,165, 21,214,232,124,214,140,161, 54, 77,231,217, +155,149, 8, 41,242,197,223, 11,162, 72,200,152,211,247,130,143,120, 35,178, 48, 19,137,210, 18, 39,178, 15, 61,164,188, 2, 8, + 49, 61,235,220, 37, 9, 27, 35,161,243,136, 16,177, 72, 54,193, 51, 12,129,101,211,211,199, 49, 39, 93,102, 6,242,128,160,141, + 61, 19, 41,217,191,126,200,123, 31,220, 67, 7,216, 70,240,189,141, 3, 31,249, 30,145,162, 77,252, 92,165,184, 89,106,126,197, + 41,126,242,214,140,119,222,218,112, 60, 43, 81, 47,189,192,227,110,195,102,112,156,116, 29, 31, 30,247,108,149,138,106,156,100, + 4, 34,221,208, 35, 86,146, 97, 8,132,222,179, 95,151, 76, 71,123, 99,219, 6, 78, 78, 27, 62,186,119,198,122,211, 94,222, 76, +165, 96,232, 7, 26,215, 49,116, 29, 94, 41,114, 34,124, 22,216,108,205, 75, 14, 94,220, 98,182, 55,101,182, 59,225,189,239, 63, +230,131,166,167, 85,112,211,193, 67, 25, 25, 74,193,206,102,224, 86,227, 41,191,115,151, 87,215, 13,175,237,212,204, 94, 63,226, +254,213,146, 73,227,216, 44, 7, 30, 13,240,141,100,120, 49, 42,190, 60, 53,252,191, 14,222, 63,239,169, 35, 20, 70, 50, 31, 60, +122, 82,128, 80, 24,173,184, 35, 21, 55,182, 21,133, 51,136, 85,195,241, 91,239,114,235,198, 62, 47,224,120,242,201, 99,218, 43, + 19,234,218,160, 10, 69, 81, 22, 28,159, 44,249,151,119,159,242,207,127,251,247,120,244,241,146, 23,182, 13, 7,135, 91, 24, 93, + 82, 20, 37,178, 27, 56,239,214,156,198, 68,220,218,193,220, 82, 4, 25, 72, 79, 31, 33, 94,126, 19,110,190, 4,251, 47,114,116, +117,151,205,147, 51,126,227,255,250, 29,244,239,126, 23,241,197,151, 16, 71,215,217, 81, 2,183, 92, 96,164,226,165,162,100, 49, +116, 28, 3, 41,120,196,208, 34,101,139,223, 24,106, 91, 32,130, 99, 66,100,123,189,164, 89,158, 19,143, 79,136,253,154,116,251, + 83,196,157, 3, 82, 89,145,108, 73,178,134,223,120,239, 1, 87,240, 28,204,118,248, 94,235,179,183,252,188,132,176, 70, 40, 75, + 58,218,129,189,125, 38,102,194,223,217,219,101,145,114, 72,213,191,109,150,121,189,103, 71,226,149,243,153,118,181, 88, 66,227, +184,191,217,100,199, 73,234,199,181,225,104, 31, 13,241,111,127, 86,254, 40, 46,250, 98, 1,187,123,151,156,134,209, 6,156,198, +113,238, 48, 4, 10,157,149,236,107, 55,112, 93, 27, 6,173, 56,137,137,155, 19,141, 31, 4, 49,207, 16,185, 82, 21,108, 6,199, +138,236, 78,153, 0,117,101,232, 99, 98, 72, 41, 63,101, 31,145, 87,246,144, 82, 83, 76, 44,184,129,212,244,220, 26, 6,110,232, +204, 55, 80, 2, 54, 46,112,173,176,212,187,150,184, 55,131,189, 25, 87,170,154,164, 5,167, 67, 75,227, 29,175, 18,249,172, 81, +212, 90,114, 84,148, 60,117, 29, 79,162,199, 3, 31,116, 3,167,162,196,168, 60,133, 91,135, 13, 73, 38,214,109, 3,222, 33, 54, + 27,146, 80,172, 55, 45,223,148,145,111,202,209, 86,146, 2, 44,250, 49,179, 99,156,244, 14, 25,226, 50,238,184,242,244, 81, 11, + 88,174,159,157,177,119,165,102,119,219,210, 6,193,190,206, 4, 54,141,160,137,142, 82, 26,166, 82,112, 46, 20,197, 24,202,213, +111, 22, 24,171,217, 69,179,113, 3, 24,131, 14,142, 32, 4, 94,106, 22, 17, 90,198,137,243,176, 33, 40,152, 71, 73, 39, 5,219, + 17, 58, 33,217,158,151, 28,247,145,131,121,205,227,214, 97, 11,197, 64,164,239, 55, 44, 84, 32,161,169,116, 73,215, 12,156, 10, +197,137,157,161,147,103, 75, 90,124,236, 65, 41,170, 36,232, 98,100, 87, 6,156, 27, 48, 74,178, 85, 26, 78, 6,199,150,132,165, +119, 20,104, 38, 6, 22, 36,154, 16,144,182, 32,166, 0,194,254,224,103,105,185, 25,131,141,234, 60, 17,170, 74,112,254,185,162, +174,245, 37, 41,230,199,141,221,167,117,142, 33, 44,170, 92, 32, 46,126, 6, 46,139, 77,188,192,201,245, 99,228,233, 88,236,237, +115, 93,174,243,151,227,126,212, 37,108, 4,153,173, 90,106, 84,193, 63,103,159,219,132,200,196,234,204, 47,209, 50,231,175,248, + 33, 91,179,188,167, 65,176,171, 21, 69, 33, 89, 15, 25, 8,163,141,160,245,254, 89,202,253,178,115,168,202, 82,185,136, 55, 30, + 6,205,153,114,108,219,140, 51,108, 83,196, 40,197, 34, 95, 71,153,105, 65,131,198,182, 3,219,192, 70,107,214,193, 51, 67,243, +168,237, 8, 93, 71, 61,155,114, 26, 37,108,250,203, 72, 86, 9, 52, 27,176,138,224, 35,239,159,173,248,220, 86,126,209, 39,232, + 49, 38, 87, 50, 49, 22,173, 10, 78,104,217, 45, 19, 77, 47, 51,115, 5, 46, 51,224,155,110,220,157, 95, 28, 42,242,146,250, 22, +228,232, 58, 24, 27, 34, 41,243,239,234,135,252, 62, 68,159, 91,118,171,243,123,164,220,104,253,241,104,107, 41,173,225,228,108, +131, 27, 11,188,214, 6,151, 2,162, 44, 40, 37, 20,101,206, 6,200,251,242, 11,105, 68, 78, 82,235, 98,192, 17,145, 61, 88,173, +144, 57, 69, 6,169, 50,139,152,144,111,238,217, 46, 47, 81, 49,195, 94,116, 2,163, 36, 90,107,188, 8,184, 16,232, 55, 30,223, + 56,232, 29,125,240, 24, 33, 88,165,196, 10, 40,172,225,104, 58,101,111,127,139, 63,250,147,239,241,221, 38,239,208, 16, 49,255, +174, 83, 77,223, 58,254,213,185,203,193,241,107,207, 59,231, 3, 47,110,107,138, 39, 13,146,123,220,216,153,242,194,214, 46,250, +250, 14,223,219,121,204,100,182,197,164,174, 41,102, 83, 14,143,118, 88,117, 67,222, 16,109,122,154, 36,232,132,192, 9, 24,122, +207,217,162,225,238,253, 19, 30, 62, 56,103,240, 29, 41,100,108,167,136, 17, 31, 99,166,167,249,132, 64,179,232, 5, 82, 25,148, +130,253,189,138,122,119, 74, 49, 45,113, 41,113,214, 42,110, 79,247,248,254,233, 83, 30,184,150, 77,219, 32,140,164, 25,122,174, + 4, 69,179, 56,102,111, 19, 88,196,134,217, 39, 11, 78, 95,152, 96,103,154, 35, 83,112, 16,225,198, 85,197,181,101, 79,215, 5, +126,213, 74,254,167, 85,207, 73,227, 25, 6,216, 41, 36,147, 66,113, 22,224, 80, 11, 62, 59, 51, 28,213,138, 19, 1,111, 63, 78, +124,229,240, 21, 22,201,113, 32, 18,159,217, 46,249,227, 69,203,195,239,220, 99,231,232, 42,211,123,103, 92,145,130,111,126,247, + 33,119, 80,108,109, 91,116, 93,176, 85, 79, 49, 66,211,173,150,220,125,252,144, 83, 93,177,116, 41,239, 67,203,154,161, 56,128, + 47,127, 38, 39, 89,181, 27,196,215,254,128,223,248,238,130,127,241,134, 66, 93,217,197,124,233, 14,162,156,176, 91,207, 57, 16, +154,137, 86,163,169, 38,208, 13,158,207, 19,217,154,239, 66,154, 51,167, 37,173,206,169,162,195,132, 0,203,115, 94, 63, 95,241, +180,237,137, 6,194, 98, 65,252,222,251,196,219,142,120,253, 6, 73,193, 23, 95,186,195, 27,183,111,241,199, 31,188, 75,255,240, + 29,238, 29,247,136,170,134, 74,147,216,206,201,150,211, 41,111, 76,106,110,109,111, 97,133,228, 74, 97, 40, 69,143, 90,231,176, + 70,218,113,127,123,190,202,141,239,249, 58, 23,115,158, 43,200, 74,130, 48, 57,103,253, 63,164,168,255,117, 63,171,213,104,253, +213, 35,255, 66, 17, 92,204,199,156, 17,244, 46,177, 45, 3,229, 78,205,227,245,192,190,149,220,172, 18, 15,186, 64, 39, 20, 83, + 18,133, 53, 28,167,196, 43,133,193, 42,184,110, 53,171, 33,240,168, 25,152,151,130,166,143, 72, 31, 81,218,160,171,146, 91,243, + 41, 66,107,164, 31,136,147,158, 47, 9,207,203, 74,161, 6,199,241,178,227,233,186,231, 35,239,153, 86, 21,177, 40,198, 44,144, +128, 68,163,180, 34, 16,121, 81, 68, 38, 90, 82,250,196,169, 95,178,173, 13,157,115, 28, 7,184,231, 65,153,136,111,219,108, 68, +233, 90,210,122,141,104,123, 82,215, 67,231, 16,195, 64,146,238, 50,228,231, 7, 64, 95, 41,171, 92,203,145,148,103, 60,108, 70, + 32,141,119,224, 70, 43,244, 72, 59,139,210,241,180, 53,220,175, 19, 6,184,154,224, 64, 41,206,165, 34,166, 68, 47,179,125,248, + 52, 37, 26,160,172,166,232,216, 17, 92,139, 80, 37,131, 15,120,157, 39,199,103, 67,135, 21,154,117, 28,178, 86,201,214,176, 13, +203, 85, 67,225,123, 54, 2,156,213, 48, 68, 68,101, 57, 67,240, 74, 93,240, 46,153,123,209,171,130,223, 91,116,212, 90,243,134, + 13,188, 39, 36,235, 16, 9, 33,176, 85,206,240,205,130,189, 98,134,175, 39, 16, 3, 59, 4,154,205, 19,166, 90, 67, 12,172, 99, +100, 79, 43,156,207,154, 45,159, 28, 43, 31,241, 14, 10, 41,243,250, 66,233,209,185, 60, 54, 62,113, 12,173,113,125, 46,238, 90, + 67,219, 65,122,254,166,110,245,165,100,254,199, 21,245,161, 1,202, 92, 52,158,221,180, 61, 88, 55,250,163,199, 4, 57, 63, 90, +180,188,191, 28, 5, 95,220,200, 47, 10,248,133,218,254,226,159,155,238,242,198,127,193, 13, 30,233, 99,239,169,130, 23,165,160, +151,146, 2,216,196,152,119, 55, 82, 18, 99,196,249,129, 18,197, 82,122,212,136, 46, 91, 43,197, 68, 6, 76,161,105,157,231,110, + 19,120, 97, 2,170,247,172,140,162, 38,146, 76, 66,171,114,132,132, 64, 37, 36, 29,176,140,145,235, 90, 35,131,167,198, 32,133, +231,201,232, 10,159, 40,205, 58, 4, 10,161,120, 52, 64,116, 29,181,116,153,204, 19,251, 49,190,207, 65, 10, 40, 97,121,226,122, +190, 48,175, 88,123,199, 84, 40, 38, 90,161,180,201,163, 94, 44, 50, 5, 10, 37,168,124,226,250, 86,201,112, 62,176,190,120,103, +124,155,247,127,171, 46,127,232,149, 29,189,178, 49, 63, 25, 63,118, 84,202, 94,142, 6,227,184,147,143,163, 40,206,199, 75,149, +114, 24,217,237,162,196, 22, 10,171,243, 72,189,158, 78,114, 40,221, 38,147,209,246,171,154,157,189, 41,125, 15,165,209, 8,145, +105,108, 81,100, 43, 91,206, 97,143,196, 33,208,235, 72, 29, 21, 33,138,203,129,140,144, 99, 10, 98, 22,229,136,148,208, 82,100, +123,188,204, 35, 41, 25, 19,209,103,222,186, 86,130, 3,165, 57, 47, 10, 68, 8, 44, 82,162,142,145,101,190, 18, 83,212, 5,235, +243, 13,220, 95,147, 60, 76,181,102,221, 15,208,132,252, 90, 92, 55,240, 73, 15, 27, 15, 6,190,190, 47,248, 58, 1,156,227,102, + 1, 7,139, 21,221,217,154, 73,253,152,178, 46,217,155,111,243,229,207,221,225,240,133, 93,202,218,242,232,124,195,233,186,101, +181,233, 41,180,165,174, 74,162,148,116,131,227,120,213,240,240,116,201,134, 72, 16,146, 36, 21,169,119,248,161, 35, 70,151,127, + 55, 52,146,148,119,237, 86,211,167, 72,155, 18,109,140, 20, 18,190,249,246, 99,206,122,248,164,154,210,238, 22, 84,174,103,221, +221,167, 90, 31,227,156,227, 95,135,129,217,162,225,197,162,228, 17, 37,187, 15,158, 50,105,246, 17,100,112,140, 83,138,161,208, + 28, 79, 44,198, 5, 78,149,224,205,157,130,223,250,218,125, 30,108,224, 63,187,190,155,149,181, 17,124, 8,124,126, 90,179, 61, +181,156,165,200,245, 98,135,201,178,230,201,122,224,157,227,115, 68, 20,156,189,243, 17, 15,222,251,152, 15,138,119,121,225,215, +126, 25,172,161, 45, 75, 44,150, 29,237,248,240,163, 5,205,249,134,237,253, 41, 91,123, 91,252,254, 87,255,130,116,117,159,120, +243, 8,130,161, 22,240,202,151,222,228,245,254,152,223,252, 95,190,133,253,114,201,144, 2,123, 63,127, 3, 89, 87,236,206,175, +176, 78, 9,163, 52, 71,202,176,103,115, 26,100, 66,226,186, 53, 47,138,158,117, 12, 28, 30, 93,163,156, 84,184,190,231,236,195, +111,179,186,127,151,243,216,211,222, 95,114,173, 46, 41,129, 79,111,237,240,173,197, 25,161, 91, 17, 82,128,243, 39,188,121,245, + 5,190,116,176,203, 92, 72,124,140,252,230,251,223,231,230, 36,112,183, 79,121,154,110, 20,105,108, 34,136, 48, 87, 10,171, 5, + 58, 6,122,215,241,165,208,240, 71,235,101,158,132, 61, 61,207, 86,181,229, 34, 79, 32, 11,251, 35,188,230,233,111, 62, 27,255, +182, 63,110,200,244,182, 49,145,115, 90,104, 58, 9,125, 31,185, 82, 41,156,149,156,181,158, 93, 23,153,106,201,218, 7, 54, 30, +180,213, 57, 71,170, 46,185,182,189,207, 78, 49,229,102,109,185,163, 4,106,241, 24, 21, 28,127,201, 10,173, 36,115,223,161,181, +198,214, 53, 73, 90,166, 69,238,127,103,117,205,212, 27,110,196,158,228, 28, 19, 99,168,103, 64, 31,120,219,195,220, 40,130, 86, +108,155,130,137,177, 12, 36, 58, 41,217, 55,134, 67, 45,209, 93, 62,215,116, 72,116,222, 51, 12,145,223,121,218,227, 68, 68, 15, +103,132,229, 26,180, 37,185,129,120,129, 4,149,144,250,241,117, 13, 54,251,250, 47, 34, 80, 69, 49,174, 25,199,139, 78,231, 71, + 29, 86,186, 4,128, 93,136, 36, 92,255, 44,170, 91, 4,184,219,182,212,133, 96, 54,230,158, 8,163,145, 49, 48,232,130, 20, 61, + 43, 33,233,181,161,141,145,132,164, 81, 5,123,186, 99,225,122, 30,217,154, 57,145, 77,202, 77,213,169,239,199,245,229,152,226, + 41, 13, 76, 74,250, 30,146,177,104, 4, 11,163, 81, 9,130, 82,108,138,154,159, 80,146,149,144, 44,132,160, 78,176,107, 20,143, + 66,228,101,173,121,170, 12,119,125,203,186, 83,204,170,154, 71,171, 99,136, 29, 71, 55, 95,103,245,238,159, 81, 81, 16,125, 71, + 10,137, 90,102, 65, 93,242,207, 16,152,204,180,228,110,227, 71,200,149,186, 36,184, 21,163,142,162,200,164,200,103, 7,110, 63, + 66,139,132,122,174,168, 59,127,201,123,253,113, 63, 77,155, 51,133,229, 15,141,151, 28, 16,187, 60,154,127,158, 15, 59,118, 35, + 57, 5,135,203,177, 19, 33,171,149, 13,121,199, 36,199, 55,243, 25,169, 73,141,108,227, 13, 84, 19, 84, 72,156, 7,199,118,204, +233, 78, 90, 89, 54, 41, 82,138, 12, 5,152,218,146,251,155, 37,203, 24,185, 82, 27,190,127, 49, 82,211,112,220,122, 98, 18, 92, + 41, 21, 79, 26,232,230,137, 93, 18,139,148,173, 74, 87,101,230,232,106, 33,241, 8, 28,145,131, 42,119,115, 33, 64, 69, 46,244, + 86,107,122,151,241,138, 61,137,211, 16,152, 23,138, 7, 35,183,153, 97, 4,181,172, 54,207,252,248,161,105, 57, 50,138,183,151, + 45, 95,152,215,212, 85,129, 79,129,153,153,208,184,236, 19,245, 82, 83, 70,207,141,201,156, 7,205,134, 45, 35, 40, 5, 60, 93, +181, 80, 87, 89,160, 83,106, 8,213, 72,124, 35,135,212,244, 99,177,246, 9, 38,228, 27,184, 30, 21,240, 23,171,142,139,177,129, + 31,121,211,186,200,157,177, 41,153,212,147,156,250,230, 19,182,146,112,158, 24,134,129,162, 40, 57,188,178,203,223,253,204,117, +164,210, 36,145, 69, 26, 46,145,233,106, 82,144,124, 78,140, 43, 10, 73, 8, 41,111, 0, 18, 72, 41,179,121, 33, 64, 34,142,230, +134,244, 44, 80, 71, 2,106,220, 27,102,198,120,100, 54,218,139,125,132, 38,100, 40, 79, 14,227, 20,204, 68, 66, 8,137, 45, 43, +142,143,207,121,251,126,199,204, 10,166,133, 98,157, 70, 49,225, 69, 97,247, 23, 1, 1, 33,123,244,111,215,224, 36, 15,151,129, + 79, 98,226,221, 90,113,133,192, 21, 25,217, 44,207,168,239, 62,230,211,211,130, 23, 74,205,164, 42,176, 74, 50, 49,134,162,180, +204,234, 2,107, 52,206,141, 80, 26, 21,243,168,174,168, 32, 37,130, 50,248, 21,200, 62,161, 99,200, 62,124, 4, 49, 6, 98,231, +240,235,158,197,201,154,132,224,241,249,138,234,253,123,156, 76, 42,238, 79,246, 57,156,148,220,153, 77,249,120, 50,229,252,227, +125,228,174,163, 57,237, 88, 29, 9,222,245, 3,159, 58,152,243, 7, 83,205, 71,255,235,255,199,250,147, 99,170,249, 22,113, 62, + 33, 20, 37, 87,175,239,112,227,206, 14,157,128,247, 31, 44,120,177, 42,217,185, 49,231,188,247, 76, 66, 66,185,200, 63, 56,172, +153, 36,208, 62,113, 69,229,176,141,118,106,249,211,147,150, 38, 70, 86,171,134,214,105,218,135, 13,215,127,234, 38, 79, 11,195, + 45,109,120,233,229, 27,220, 83,146,189,190,225,218,235, 45,103,143, 30, 48, 63, 60, 66, 77, 12,182,123, 68,122,119,159, 52,109, +184,117,235, 58,169, 56,224,181,197, 61, 42,161,248,149,127,122,155,213,100,155,101, 40,152,238, 28,208, 3,171,224,121, 41, 4, + 42, 5, 91, 74, 51,179, 80,203,132, 78,142, 85,232,104,135,134, 36, 11,166,214, 82,149, 5,231, 85,201,176,253, 18, 31,156, 46, +249,252,201, 35, 90, 35,248,189,199,199,252,194,213, 61,190, 33,160, 76, 18,191, 60,193,223,127, 64,216,221,167,174, 37,197,225, + 54,161,152,210,233,146, 55, 14, 15,153,107,216,234, 29,223,110,251, 81,185,238, 73, 66,243,238,224,249,169,118,193,141, 80,211, +250, 14,227, 29,177, 95,231, 93,249,201, 34,171,172,155,238, 7,241,166, 74,254,208, 63,251,191, 18,110,243, 31,157, 43,127,241, +103, 14,249, 49,151,163, 76,233, 74, 93,242,120,227, 40, 10,197, 84,128, 76,137, 32, 4, 87, 38, 5,171,113, 63, 43,172,162,212, +150,235,179,125,246,118,182,185,105, 44,183, 66,131,177, 37,221,234,132,253, 98,139,143, 54, 11, 14,148,193,147, 24, 16, 76,234, +130, 66, 25,170, 66,161,164,229, 72, 43,174,166,130, 32, 27,172,138,244, 1,110,109, 77, 16,177,227, 65, 93,208, 88,240,218,144, +140,161,141,129,181, 79, 60,236, 58,110,148, 2, 75,228, 64, 43, 54,110,192, 13,158,213,162, 69, 63, 62,135, 20,114, 60, 47, 25, + 42, 21,184, 12,203, 73,189, 71,104, 77,234, 7,114, 12, 12,249,251, 90, 75, 8,125,222, 19, 95,212, 5, 61,234,178,180,186, 76, +208,188,200,216,186, 40, 96,195, 0, 91, 19, 24, 2, 31,172, 29, 98,170,249,194,164,226, 97,204,251,241, 34,102,230,135, 19, 10, + 27, 2,131,202,158,140, 45, 47, 88, 75,197, 92, 72,222,117,145, 37,137,164,244,136,184,214,121,109,172,199, 6, 67,251, 92,224, +171,154, 32,192, 35,176, 82, 33,148,100,219,148,120,224, 84, 91, 78,253,192, 34, 68,246,203, 9,149,144,120, 35, 57,117, 45,199, + 99,156,107, 72,142,123,235, 83,110,137,196, 98,121,130,191,251, 22,110,179, 4, 60,173, 79, 92,213,153, 8, 89, 5,129,151,130, + 33, 66,239, 2,167, 62,159, 59,249, 66,246,156, 88, 58,166,220,252, 92, 76,132,205,115,214,242,190,135,117,243, 67,150, 54,239, +255,102, 17,200, 5, 12,228, 34, 10,209,140,240, 3, 51,142,135,109,145,255,122,214, 28,164,188,203, 29,134,203,255,103, 24,227, +238, 10, 9,171, 53,204,103, 25,217, 88,141, 0,152, 16,115, 8,141, 28,129,241, 50,145, 82, 96,170, 44, 51, 45, 41,148, 70, 11, + 8, 98,132,133,164, 64,235, 2, 66, 73,206, 66,224,254,102,160, 31, 65, 49,155, 33, 50, 83,146, 62, 69, 54, 81, 16,164,160,113, +145,121,105, 80, 18,106, 99,105,147, 96,183,208,248, 81,249, 46,149,102,229, 61, 67, 8, 57, 13, 45,194, 32,115,177,121, 48, 12, + 4,153,253,216, 69, 82, 60,246,185,211,234, 47, 20,215, 23,182, 61, 55, 22,121, 33, 24,156,103,219,100, 91,220,142,177, 84,198, +114,238, 58,172, 50, 36, 33,136, 33, 96,146,100, 16, 96,165,192, 73,129,219,180, 92,153, 84,156, 54, 45, 68,216,154, 22,244,221, +144,181, 10,105, 92, 81,232,231, 4,117, 62,140, 30,244,139,214, 54, 94,134,212, 92,208,239, 82,204,227, 44,109,161,237,248,236, +155,159, 97,190, 55,231,244,248, 28, 31, 96, 50,157,178, 60, 89, 81, 79, 38, 92,217,219,226,221, 79,214,188,112,101, 62,142,202, +101,166,177,141,193, 85,125,200, 25, 1, 89,148, 47, 40,108, 78, 40,147, 34,143,233,253,168,198,245, 33,226, 67,194,187,108,105, + 84,241, 66,249, 30,192, 7, 66,235,232,154,129,174, 15,196,193,227, 82,100, 21, 28,201,199,108,135,139,145,171,251,187, 28, 28, +238,242,206,219,239,243,222, 73,195,178,117,172,134, 17, 81,219,135,188, 12, 59, 30,133,138, 25,223, 4,103, 14, 38, 18,185, 93, +225,251, 56,106, 57, 37,243, 90, 83, 25,203,164,158, 34,181, 37, 84, 22,105, 53,189, 15, 28,159,183,244,157,163, 42, 53,211, 73, +137,210, 18,239, 60,109,215,211,245,217, 98, 39,180, 34, 70, 75,194, 18,140, 70, 10,205,118, 81,115,125,190,205,225,100,206,196, +148, 76,149, 97,191, 40, 41,146, 68,205, 45,178, 46,105,107,139,208, 2,206,150, 76, 39, 19,110, 29,212, 52,202,208,238, 77, 16, +170, 96, 82, 22, 84,243, 18, 61,155,178,127, 56,229,202,225,148, 99, 49,229,251,201,210,204,106,228,225, 46,147,171,115,156, 86, + 60, 10,112,114,222, 99,181,165,124,113,155,117, 59,112,122,210, 48,108, 28,243, 29,131,248,232,148,151,246,167,136, 0, 86,231, + 56, 76,149, 18, 47, 84,130,155, 83,195, 7,143, 60, 11, 57,103,101,225, 74, 33,216,185,122,200, 78,105,104, 3,248,178, 32, 77, +166, 32, 38,108, 85, 37,219,135, 59, 60,126,186,226,159,124,230,243,252,131,255,242,167, 57,122,227, 14,213,233, 19,134,167, 31, +243,130, 45,137,102,194,244,240, 6,147,131, 79,177,127,227, 58,182,174,152, 78, 39,204, 37, 28,106,195, 22,138,173, 34,113,160, + 52,179, 24,208,190,103,238, 6, 78, 22, 43,246, 82, 71, 85,212,180,211, 41,117,239,249,104,240,220, 48, 5,119, 69,226,134,138, +188,148, 4,223, 76,138, 95,170, 45,239,161,144, 66, 35,241, 8, 23,120,176, 25,216,173, 5,247,134,129,148, 36,183,235,138, 93, + 91,177,109, 44,239, 56, 79, 24, 57,214,194,121, 98,236,249,254,114,205, 46, 61,186,239, 89,117, 11,254,229,135,143,224,254,113, + 30,133,187, 31,218,125,203, 81,159, 18, 70,190,130, 28,187, 84,255,159, 0,136,121, 54, 69,139,151,205,118, 28,207,138, 36,168, +172, 34,133,132, 23,130,237,164,120,109,111,194, 79,237,109,241,234,124,202,212, 72, 2,130, 86, 9,182,180,225,198,116,198,220, +150,236,213, 19, 94, 41, 11, 74,109,216,149,146,169,202,126,117, 45, 45,219,214, 98,149, 98, 87, 89,166,166,224,160,168,216,211, + 21,187, 41,114,104, 44, 7,186,100, 91, 21, 76, 80, 76, 76,205,188,156, 48,177,154,235, 86,179, 63,157,113,168, 37,187, 2,182, + 84, 68,118, 29,133,115, 44,215,107,142,130, 71,227,217,180, 61,199,231, 13,127,113,186,100,117,214,142, 22,219, 1, 17,179,240, +239, 50, 66,220, 95,254,174,207,191, 30,241,121, 29, 86,200, 89, 26,207, 24, 23, 98,244,105,143,103, 91,161, 47, 99,195, 73, 96, + 44,194,103, 55, 65, 72,112, 10,196,145,124,104,165,198, 11,129, 23, 57, 41,206,169,172, 53,216,140, 60, 17,139, 96, 41, 19, 8, +205,146,144,111,231,114,116, 4,153,139, 32,151,145,241, 33,115,214, 71,146,144,148, 36,152,146,137, 50,217,222,172, 52,115,169, +121, 34, 52,218, 90, 10, 91,162,144, 60, 9,158,162,172,184, 35, 5,247,146,128, 48, 48,183, 37, 65, 89,170,208, 99,250, 6,101, + 13,209,123,172, 72, 56,145,181, 71, 49, 4,150, 33, 19,244,136,137, 39,109,164, 75, 99,232,140, 80,227, 45,125, 20,204, 41,123, +185,106, 45,205, 88, 43, 85,182,185,141,103,244,127,218, 79, 61,201, 5,164, 75,204,127,226, 14,203,119,238,229, 20, 36,115,161, +146, 31, 59, 43,173, 71, 47,233,216, 93,116, 49,171, 29,235, 45,216,173,145,186, 32, 94,164,165,117, 62, 23,253,114,228,141,203, + 44,246, 58,243, 1, 71, 34,137,200,169, 15,108, 9, 65, 82,154,193, 59, 64,176,240,158, 62, 68,102, 82,178,136, 9, 41,229,248, + 98,141,117, 78, 93,140,254, 5,223,111, 19, 91, 86,176,155, 2, 83, 11, 79, 7,199,212, 90, 54, 41, 49, 9,238,242,134, 43, 5, + 40, 79, 10,154,211,152,152, 26,147,131,108,148,160,197,211, 15,130,190, 16,185,177,121,102, 51, 35,219,199,116, 22, 5,246, 33, +239,168,139,152,232, 4, 48,116,212, 69,205,248,209,205, 89, 11, 70, 83,199, 72, 7,236, 1, 15,132,160, 78, 61,159,155,105, 60, +154, 10, 79,179, 59,201,187,100, 3,119,151, 21,125,232, 47, 87, 32,210, 65,127,177, 79,231, 50,138,183,176,227,141,126,180, 46, +132,113, 74, 82, 88, 54,171, 14, 63,238,232,125,219,211,156,181,172,155,134, 33,120,166,243, 9,235,179,200,241,249, 6, 43, 4, + 82, 10,172,214,232,145,196,102, 20,156,167, 8, 93,196, 26, 49, 58, 81, 69,158, 96,165,252,181, 14, 41, 63,156,140,217, 38,231, + 70, 12,171,243,158,228, 60,214, 5,116, 4, 55, 4,206, 7, 71, 59, 12, 52,222,161, 60,164,152,144, 66, 48, 51,134, 43,202,178, +131,228,221, 71, 11, 58, 61,126,177, 87, 62, 63, 0,140,184, 89,178,109,109, 29, 97, 42, 97,237,225,173, 13,113, 94,160, 42,147, +117, 1, 41, 49, 51, 5, 91, 85, 69, 93, 20,244,193,113,114,182,121,150,213,227, 55, 3,194, 69,156, 82, 76,230,142, 9, 16,189, +199, 24, 73, 89, 25,166,157,165, 25, 34,102, 42,232, 6,139, 76,150, 98, 54,231,149,121,193,107,179,138, 74, 8, 66,231,104, 87, + 93, 78,206,219,177,120, 13,117,173,153, 76,118,152, 78, 45,190,141, 52,205,128,144,112,125,215,240, 66, 50, 28, 92, 41,120,184, +242,156,135,192,233,178,163,233, 60,199, 77,192, 27,197,193,139, 7,108, 29, 84, 76,182, 11,234,144, 16,189,167, 43, 4,147,173, + 57,202, 57,190,119,188,230,233,131, 37,171,147,150,183,255,213,191,227,149,255,238,191,230,255,248,247,111, 33,222, 62,231,103, +127,233, 85, 84, 44, 16, 86, 19, 67,194, 68,216,171, 53,191,254,197,107,124,245, 91, 15, 56,108,175, 80, 46,159, 98, 30, 46,240, +181,229,112,174, 49, 30,150,201, 80, 94, 55, 12,141,101,253,228, 41,191,246,153, 79,241,185,219,135,252,179,255,251, 27,188,247, +206,219,156,223,250, 60,101, 45, 57,223,222,102, 90,109, 35,119,182,153,204, 10,202,105,129, 34,209,172, 91,180,154, 50, 44, 55, + 40, 25,217, 18,134,210, 13, 24, 63, 32,137, 12,174,227, 85,237,249,131,183, 63,228,211,119, 63,160,252,212,171, 44,119, 95,226, +203, 74, 48,173, 44, 95,188,249, 50,230,250,117, 86,237, 57,243, 79,238,242,213,179,142,191,183, 83,241,241,149, 25, 31, 60,109, +145, 74,225,106,203,191, 57,107,152,118,138,175,236, 40,174, 85, 91, 68,173, 80,205,154, 45, 37, 57,142,153, 51,145, 98, 78, 72, + 91,106,197,111,156,159, 49, 77,176, 56, 89,193,217, 57,162,235, 72,234, 71,156,105,126,212,164, 92, 68,178,186, 17,190, 97,117, +190,160,180,253, 95,109, 4,254, 67,111,234, 23, 66,186, 8,187,159,189,195,233, 71, 79,152,138,192, 68,107,174,238, 90, 94,153, +205, 56,170,103, 36,169, 56,242, 1,193, 57, 83, 34,131, 79,108, 27,201,204, 42, 84,138, 36, 37,217, 83, 10, 29, 2,186, 40, 8, + 17,246,148, 39,186,129,151,132,200, 35,114,215, 51,137,130,210,123,102,182,196, 4, 79,169, 20, 69, 89, 99, 38,134, 48, 68,154, +245,130,217,100,135,232, 61,125,223,208,108,214,180, 93,203, 98,211,242,198,224,121,176,110,120,228, 60,167, 90,243,205,174, 99, +224,255,103,237, 77, 98, 36, 77,243,243,190,223,187,126, 91, 44,153,145, 75, 85, 86, 85,215,210, 93,221, 51, 61,156,157, 67, 14, + 57, 36, 37, 82,150,185,192, 48, 33, 27,180, 1, 95,228,131, 47, 6,124, 48, 4, 24,240, 73,128,225,139, 1,195,128,125,240,193, + 7,249, 98, 2,186,200, 2, 40,203, 20, 32,153,139, 8, 82,148, 72,145, 34,197,153, 86,207,116,207,244, 82,221, 85,213,149,149, +107,100,196,183,189,155, 15,239,151, 85, 77,114,108,211, 26,246,169,208,221,200,202,140,140,248,254,219,243,252,158,200,199, 62, + 48,196,145,170,148, 19,188,230, 83,181, 23, 72, 83,190,247,167,145, 17, 9, 16,222, 79,209,203, 58, 11,124, 39,253,128,144,110, + 0, 0, 32, 0, 73, 68, 65, 84,198, 12,169,203, 53, 35, 76, 27, 99, 83, 78, 19, 85,200, 53, 67, 76,153, 24,184,108,243, 27, 2, +148,146, 48,122,190, 73,207,144, 4, 95, 89,104,230, 82, 51, 18,104,148,161, 11,129, 30, 48, 74,115, 21, 34,131, 86, 28, 6, 8, + 41,178, 22,138,129,172,157, 17, 74, 17, 98,204,104,221,232,166,237,114,145, 79,198,170,129,137,204,183,150,138,215,141, 97, 68, +177, 86,154,195, 8, 87, 90,114,144, 4, 79,148,224,142,153,115, 25, 70,222, 46,231,220,102,195, 99, 96, 29, 34, 42,118,220,212, + 37,224,121,214,109,184,103, 11,210,152,104, 19,132, 16, 72, 65, 48, 34,145, 24,158,143, 25, 16,148,195,185, 66,174, 35, 74,102, +235, 85, 93,101,149,187, 45, 50,187,228,250,197, 45,203, 23, 37,235, 7, 11,116,169,203, 23,201, 49,111,254,212, 15, 99,181,226, +226,248, 98,162,209, 77, 44,243,248,169,172,206, 76,230,200, 19,108, 59,100,161,211,124, 6, 77,141, 44,116, 86, 92,247, 35, 92, +173,243,215,190, 78,114, 19, 47,211,192,230, 70, 49,196, 12,239,111,167, 80,148,150, 72,231, 35, 1, 88, 15,158, 83,239,115,122, +155,204,211,101, 10, 57, 95, 55,143,149, 83, 41,157,160, 30, 82,234,140, 1,148,153, 73,110,148, 96, 27, 34,123, 74, 50,151,154, +109,244,236, 72,137,146,240,201,198,211,163,208, 18,206,131, 32, 34,169,180, 98,136,226,101,247, 45, 39, 50, 73,152,168,120, 46, +163, 20,215,253,200,253,166,102,183, 40,232, 17, 84, 66,162,148,164,139,137,218, 24, 98,140, 12,193, 83,105,203,214,141,212,133, +162,241,142,135,210, 32,146,224, 10,201,171, 74,177,171, 37, 94, 8, 62, 95, 20,124, 36, 5, 97, 24,115, 55,231,166,224, 23, 89, +230,155, 57, 62,223,133,220,148,171,172,124,166, 84,185,248,194,250,246,214,219,223,230,151,126,233,231,216,180, 46,131, 85,124, + 98,216, 14, 92,182, 3,149, 45,121,248,218, 13,118,155,130,222, 7, 8, 57,101,205, 76, 64, 35, 73,162, 31, 60, 91, 23,104, 93, +194, 74,137, 53,249, 53, 12, 36, 98, 72,140, 33, 48,186, 56, 61, 88, 50, 39,158, 20,233,221, 52,149,247,158,147,118,228,162,115, +180, 62,131,102, 46,199,108, 99, 25,198,158,232, 3,115,101, 89, 52,101, 22,211,125,243, 99, 94,187, 10,236,123,193,221, 91, 5, +143,174,223, 27,149,124,153,206, 86,146,207, 58, 33,193,131, 18,154,252,250,213,141,226, 70, 83, 48, 43, 11, 14,235, 57,165, 54, + 40,107,176,214, 18,133,192,143,142, 97,219,211,110, 91,132, 53,212,149, 69, 10,232, 6,199,229,118, 96, 24, 29,163,243, 68,159, +208, 66, 82,207, 53,133,209, 84,139,146,215, 15,231, 28, 29, 52, 44, 22, 21, 85,109,176, 69,206, 92, 55,141,102,119,111,134, 20, +145, 79,158,108, 88, 46, 74,234,218, 80, 87, 6, 99, 21,139, 66,113,179, 80,236, 91,195,172,210,232,198,176,179, 44,217,158,245, +180,219,158,110,219,161, 43,205,108,183,192, 26,137,114,129,184,245, 96, 37,221,186,227,234,209, 25,103,127,248, 61,254,232,111, +255, 35,174,126,243,219,168,143, 71,222,252,143,191,204,235, 95,125,192, 31,254,218,111,240,214, 63,120,155,215,191,112,151, 54, + 70, 46, 98,160,182,130,170,176, 88,173,208, 11,195,229, 7, 29, 95,118,138, 97,188,162,171, 74,116,109,249,162, 27, 24,147, 32, +218, 2,105, 45, 97,127,151, 79,198,145, 95,253, 59,255, 59,199,127,237,231, 40, 94,249, 12,183,239, 29,177, 58,184,193,108,181, +135,106, 26,154,101,197,172,177,212, 86,103,122,160,247,232,209, 81, 14,158, 57, 30,237, 28,115,109, 56, 48, 5, 59,163,103,214, +181,236,246, 35,111,218,130,207, 55,115,142, 46, 79,249,209,122,198, 23,234, 25,111, 44, 86,188,214, 44, 89, 21, 13, 69,217,112, + 65,100,102, 5,172,118,216,111,102,220, 61,216,229,196, 40,130,206,205,126,144,154, 31,155,207,168, 4,120,239,113, 49,208, 59, +199,199,235,109, 14, 91, 57,187,130,203, 22,113,118, 65, 26, 60,195,101,159,183, 59, 50,175,156,196, 4,208,249,127, 12,171,178, + 19, 58,187, 48, 25, 82,163, 77,126,182,125, 90, 36,252,255,245,143,148, 47, 79,145,159, 38,226,148, 22, 10, 75,119,182,201,124, +245, 36, 56,216,169,120, 56,111,184,211,204,153, 43,141, 85,134, 72, 98,207,150, 92, 5,207,188,208, 52, 82, 82, 40,195,162,108, +168, 35,236, 38, 65,153, 28,209, 71,124, 20, 84,202,176, 40,106,106, 99,153,233,130,133, 20,212, 50, 79,150,141,176,148,202, 80, +151,115, 36, 54,171,250, 83,162,158,175,168,202, 57,133, 45, 41,164,160,180,150, 89, 89,178,154,213,220, 60,216,227,230,193, 46, +183,247,151, 28,220, 62,228,232,112,193,155,183,110,114,127, 94,242,198,254, 42,111,193,148,102, 43, 18,201, 65,210, 50, 39,103, +126,159,130,254,231,252,252,113, 90,183,199,148, 7,174,235,201, 61,168,140,201, 86,102,154,162,205,203,215,109,130,200,160, 12, +226,186, 41, 51,121, 53, 30,147,160, 52,138, 66, 41,198, 24,137, 19,235,100,155, 34, 66,107,198, 16, 49, 69,197,133,243, 28,218, + 2,132,164, 81,138,185,178,108,100,230,151,100,198,135,153,232,158,229, 11,160, 87,146,138,207, 21, 13, 91,169,179,218, 62, 9, +180, 86,236, 34,121, 79,192,171,218,210, 11, 65, 43, 20, 23,227,128,156,182,202, 3,144,148,101, 37, 37,167,126,228, 94, 81,225, +124,160, 52, 5, 78,106,182, 33,226,141, 70, 26, 67,151, 96,144, 18, 79, 34, 12,110,154,250, 38, 79,122, 97,242,107,164,174,183, +216,230,229, 16,169, 36, 86, 10,130,209, 63, 96, 81,151, 19,143, 56,193,201,199,207,184,248,222,211, 9,101, 39,255,244, 77, 74, +234,151,197, 93,201,172, 50,245,125, 22,169, 44, 22,160, 4,105,116,176,238, 50, 37, 39,201, 9,123, 23,114,135, 44, 21,140,158, +202, 74,132,130,185,214,180,206,103,228,235,208, 35, 83,190,131,131,228,233,118,224,108, 66,143, 18, 32,133,144,115,192,211,244, +166, 49,246,133,170, 92, 10, 73,175,114, 13,168,117, 66, 41, 77,129,100, 87,103, 2,207,214, 7,110,106,195,165,119, 92,186,200, + 43,165,224, 59,237,200, 16, 37,141,200, 69,189, 83,137,116,253,206, 82,217, 7,253,162,129,241,147,234,220,121, 80,130, 82,102, + 20,226, 43,205, 12,161, 20, 34, 6, 42,109,112, 49, 32, 17,184, 24,241,126,164, 52,154, 98, 28, 89, 37,193, 54, 38,110, 21,154, + 93, 45,105, 99, 98, 68,114, 71, 75, 78, 82, 96, 12,129,171,160,178, 40,143,240, 50, 16,199, 95,175,228,253,203, 53,141, 79,121, + 69, 86,218, 23,144,130, 95,248,247,127,129,187,175, 30,177, 94,119,180,219, 22, 55,142,140, 19,225,109,103,177, 64, 72,197,106, + 86, 49,159, 23, 64,166,227, 73, 33, 24, 66,162, 31, 61, 67,240, 88, 18,221,144, 3, 92,140,150, 36, 9, 33, 10, 66,140,196,152, +178, 47, 61, 68, 34,249,207, 17,129,144, 80,164,108,183,233,187,145,181, 11,108, 83,196, 13,142, 34,230,200,213, 49,100,238,128, + 78,153,141,220, 1,191,246,214, 35, 68, 23, 41, 37,136, 33,113, 62, 70,190,114,183,225, 39,238,204,248,185,210,240, 83,175,214, +188,118, 88,210, 61,172,216,155, 75, 78,199, 8,165, 64, 42,197,172, 52,212, 70, 50,183,150,253,197, 46, 50, 66, 81, 87,216,178, + 64, 11, 73,236,115,116,106,136,129,166,170, 88,148, 6, 23, 2, 39,235,142,227,179, 13,237,101, 71,215, 13,120,159, 83,241, 12, + 18,165, 65, 25,133,109, 10,230,149,193,216,220, 56, 6, 35, 73,149, 70,107, 56,220,105,176,133,102,177, 83, 83,149,134, 40, 21, + 74,201, 28,202,151, 18,133,139,148, 61, 36, 33, 24,172, 64, 43,201,106,127,198,114, 89,226,189, 39, 8,193,191,250,149,223,229, +189,111, 62,226,198, 98,135,245, 39,151,124,247, 15,255,132,239,254,238,159,240,123,255,203, 31,243,248,183, 62,200,233,119, 40, + 36, 1, 22,145, 31,254,233, 31,226,222,143,127,158, 94, 25,126,235,215,255, 25, 7,183,143,184,212,138,221, 90, 83,219,108, 13, +221,169, 44, 39,251, 13,247, 14,231,204,223, 63, 99, 45, 34,135,165,102, 39, 68, 46,158, 93,177, 45, 11,234, 89, 65,219,123,214, +169,192,124,229,171,148, 70,177,218,171,152,151, 6,163, 20,218,228,207,122,109,196,139, 39,182,117,158,114, 24,144,219,145,153, +246, 28, 10,201, 13, 93,240,197,162,226,168, 42,121, 80, 46,184,191,115,131, 7,119, 30,242,224,246,125,142,118,110,113,115,182, +207,222,114,159,157,131, 61,234,162,166,218,205, 81,153, 85, 80,244, 30,134,228,152, 23, 5, 55,155, 37,141, 49,236, 23,146,247, + 7, 15, 72, 66,138, 52,140, 28, 25,195,156,196,243, 97,195, 63, 60, 59, 39, 73,248,194,162,164, 22,158,139,147,233,110,238, 70, + 16, 2, 33,114, 40, 19, 58,175, 43,179,216, 52,252,121, 32,135, 41,243,218,211, 76,159,111, 61,177, 33,162,255,139, 23,245, 79, +107,139, 94,168,233,203,188, 54, 45,154, 12,194, 41,243,234,118,183, 48,220,168, 13, 71,166,100, 89, 20,204, 76,137, 4,106,165, + 8,164,156, 82,153, 50,169,177,138, 17,225, 6,172,243, 84,222, 81, 41,203, 24, 35, 85, 81, 33,133,164, 48, 10, 37, 36, 18, 65, + 74,130, 74,107,164, 0,107, 42,170,229, 14, 66, 90,116,105,145,218, 98,154, 6,101, 76,230,195,199,136, 20, 57,153, 82, 41, 77, + 89, 55,104,101, 41,139,146,217,124,151,133,169,185,189, 60, 96,175,106,216,173, 27,238,204,230,216,194,240,112,103, 65,242,129, + 79, 4,164,249, 33,209,119,153,143, 30, 35,233,251, 20,116,241,233,194,206,167,132,188,215,156, 20,117,189,158,143, 47, 99, 70, +175, 29, 60, 90,252,169,190, 64, 76, 95,188,117, 17,167, 37, 46, 38, 26,153,208, 90, 35,164,230,156,140,204,141, 49, 23, 79, 23, + 35,117, 89,210, 37,197, 40, 36, 27, 20,133,212,204,164, 96, 43,212,196, 9, 17,211, 10,126, 66,112,203,130, 59,182,224,105,130, + 91, 90, 83,107,197, 59, 18,238,170,130,103, 4,142,164,224,189, 16, 88, 41, 77,157, 18,167,198,114, 11,120,230, 51,151, 69, 24, +201,101,146,252, 84, 85,225,130,231,245, 89,195,190,150, 84, 86,243,165,217,140,189,186,225, 94, 97,121, 88,215,156,166,200, 37, +146,116,157,228, 70,200, 53, 48, 94,231,128,144,201,173,215,129, 95,218, 66,146, 36,242,249,246, 7, 43,234, 33,228, 78, 75, 76, +119,246, 52, 37,241,148, 38,119,184, 97,202, 85, 15, 33, 23,255,235,187,210, 56, 78,111,244,204,114,167, 29,178,186,187, 31,243, +135, 69, 77, 10, 63,171, 94, 78,235,165, 69, 68, 88,104, 77, 39, 97, 97, 45,235,209, 49, 51,154,110, 74, 20,218, 6,143,210,138, +139,126,186,133,167,188, 14, 15, 62, 76,112, 28,253, 18,126, 35, 68, 22,124, 69, 8, 99,164,148,217,163,222,135, 64, 35, 5,109, +140, 40,160, 19, 76,111,116,193, 71,193,115,168, 36, 39, 67, 96,144, 2, 23,179, 55, 49, 75,193, 95, 6,138, 76,161,228, 83,145, +141, 47,188,168,103,189,231, 51,203, 25,125,138, 84, 74,224,147,160, 16, 80, 75,141,115,142, 82,105,180,204,162,182,165, 82, 24, + 50,145, 46, 41,145,255, 10, 37,153,135,196, 25,130, 61,173,168,148,230, 56, 74,156,152,254,174,126,200,239,114,165,114,160,139, +148, 89,128,120,189,194,113,126,210, 61,100,229,100, 88,204,248,202, 23, 31, 50,244,158,174,115, 4,231,240, 19,250, 85,164,196, +195,215,142,152,213, 5, 59,179, 34,115,117, 2, 72, 45, 9, 33,178, 25, 29,151, 87,158,110, 12,164,152,111, 65,102,250, 62, 37, +146, 20, 18,129,196,232, 34, 99,200,104, 74,145, 34, 86, 64,149, 50, 38, 22, 31,216,142,158,245, 24, 24, 59,135,115,142, 2,120, +238, 60,235, 20, 72,222,209,199,192,108, 49,231, 81,187,229,215,255,201, 7, 60,146,129,247,206, 28, 31, 92, 57,134, 51,207,199, +207, 29, 31, 94,246, 28, 24,184,245,165, 59,252,200,195,215, 41,142, 14,184,163, 3, 63, 84, 43,126, 98, 94,177, 42, 18,181, 16, +164, 4,203,210,114,179,217,161,158,205, 40, 22, 53, 86,233,204,100,146,249,119, 22, 2, 44,230, 53,135,179, 18, 66,224,252,116, +195,241,211, 51,182,235, 43,252, 48,226,188, 35, 57,143, 74,137,224, 61,206,193, 48, 38, 98,161,137, 74,210, 43, 65, 42, 13,205, +178, 64,156,111, 40,254,245, 19,222,189, 88,227, 17, 72,151, 72,218, 80,104,157, 5,133, 36,132,139,200, 36,136,133,202, 41,130, +217, 9,136,213,138,157,155,115,102,251, 53, 95,254,201,207,241,141, 47,191,198,215,239, 46,217,185,183,199, 87,190,244, 6,255, +252, 95,109,217, 14, 11,228,113, 64,208, 79, 69, 29, 22,111,214,232,162,228,225,205, 5, 95,255,252, 17, 15,126,244,179, 60,223, +175,216, 43, 53,149, 75, 84, 74,162,173, 70, 22,146, 7,187, 37,197, 97, 69, 58,168, 89,188,187,229,234,124,160,235, 70,254,232, +120,160,154, 43,124,136,140,235, 17, 51, 4,118, 18,148,203, 18,229, 19,138, 68, 97, 36,113, 59,146,188, 71, 38,137,116, 1,209, +142,212,253, 72,108,183,104, 34,183,133,230,205,178,225, 70, 89,112,179,110, 88,205,102,212,203, 5,229,206, 28, 93, 26,172,178, + 24, 4,182, 44, 49,179, 10,213,212,232,202,162,171, 2, 85, 20, 88,107, 88,120,205,111, 15,129,207, 53, 13,101,213, 80,107,139, + 72,145, 66,120,158, 62,187, 36,125,112,204, 7,255,215,247,216,185,111, 24,199,150,199, 23, 23,188,211,122,126,246, 96,151, 47, +238, 30,242,234,206,146, 15, 82,160,221,110, 50,222,118,162, 41, 10, 49,185, 69,234, 10,154,102,138, 48,253,148, 86,136, 41, 2, +238,122, 82, 20,249, 62,154,113,157, 67,254, 44,253, 69, 7,159,235, 33, 71, 22, 57,113,171,106, 96, 94,231, 7,180,214, 44,172, + 98,169, 36,123, 11,131, 1, 30, 86, 53,145,108,169, 45,165, 32,166, 56,125,174, 96,244,217,109,161,200,216,106, 43, 4,115,105, +176, 73, 98,173, 38,133,152, 83, 19,125,100,219,181,108,251, 43, 68,116, 8, 4, 82, 40,164,136, 24, 85, 32, 85, 66, 8,131, 42, + 12, 56,151, 49,206, 82,230,144, 24,231, 16, 90,163,109,129, 68, 99,108,133,178, 21,214, 52,216,170, 65,106,141, 45, 42,138,162, + 38, 42,195, 65, 61,103, 67, 98, 89, 21,124,243,108, 64,223,219,197,159,158,229,154,108, 20,233, 26, 64, 38,167, 9, 94,235,191, + 24,126,220,232, 28,212, 99,228,196, 43,153,238,235, 98,138,245,142,113, 18,253,102, 56, 24, 70,210, 38,184, 97, 45,181, 53, 12, + 82,146, 84, 14,185, 84,202, 18,100,110, 70,163, 84,196, 32,152, 87,150,109, 18, 84, 74, 19,164,160, 81, 6, 33, 5,133,146,116, +241, 90,155, 52, 21,118,165,153, 11,197,171, 69,197, 73,204,191,155,165,178,108, 17,116, 40, 66,146,220,144,138, 36,178, 88,120, + 30, 35, 31, 2,165, 41, 9,228, 96, 46,165, 21, 59, 82,114,171, 50,220,211, 37, 91, 4, 51,105,216, 74,197, 74,149, 12, 74, 83, + 40,205,205,178,102, 16,130,211, 48,109, 42, 70,247, 82,139,161,204, 20,179, 42, 94,164,222,161, 45, 74, 25,146, 82, 4, 85,254, + 37,228,169, 95,175, 76,174,253,155, 77, 61, 21,177,235, 28,239, 79,197,203,169,201,203,221,141, 89, 24, 81,152,233,126, 49, 21, +160, 41, 44, 5,145,253,206, 47, 86, 11, 50,175,151,157, 53,204,180,230,187,155, 45,243, 66,179, 52,134, 53,153, 94,212,198, 64, + 7,116, 78,112, 17, 2, 98, 12,153,169,155, 34, 47,118, 52, 98,250, 30,194,212,125, 43, 5, 62, 32, 75,205,166, 31,153,149,138, +218, 26,146,247, 44, 11,203,214,123,218,224, 9,192, 54, 38,138,152, 56, 13,137,237, 48, 78, 65, 41,215, 30,252, 63,251, 65,158, + 86, 38, 76, 63,127,120,201,163,126, 60, 70,110, 53, 22, 71, 98, 71, 74,118, 76,193,102,220, 98,180,129, 48, 16,164,193, 6, 79, + 99,114, 51, 82, 41, 73, 36,161,149, 68, 75,197, 73, 74,236, 33,121, 26, 3, 43,109,176,181,228,233,224,167,201,156, 60,141, 79, + 62,234, 23, 98, 69,145,166,135,213, 84,153,125,142,171,187,120,118,204, 87,127,236,135,113, 99, 94,135,199, 4, 33, 36, 54, 93, +143,235, 3,139,221, 37,187,243, 38, 39, 1, 78,248,211,124, 51,207, 2,184,182,243,116,131,207, 73,142, 49,162, 84,142, 61, 84, +211, 41, 98,188,158,210, 67,164,154, 4, 40,253,132,142, 44, 82, 78,243, 75,131,231,162, 27,113,221, 64,233, 61,142,200,198, 59, +182,126,200, 27, 38, 91,112,120,231, 38,207,187,150, 63,126,247,241,116,190, 73, 83,124,108,130, 70, 48,158,120,254,205, 89,207, + 31,111,174, 8,203, 72, 89, 85,188,243,241, 83,202,229,140,163, 89,195,254,238, 62, 7,209,115, 11,248, 92,221,176, 55, 91, 98, +171, 26, 91, 26,202,194, 98, 11,149,213,185, 8,162, 15,220,152, 87, 28, 46, 75, 84, 72,156,157,181,156, 95,158,211,119, 67, 78, +132,242, 25, 23,156, 98, 32,198,252,190, 12, 41,226,198,196, 0,244, 72, 22,115,203,124,102,184, 58,121,206, 91, 31,124,196,163, + 16, 56,187,234,185,120,118,198,187,223, 62, 97,126, 50,240,222,224,217, 45, 53, 58,129, 83,137,160, 97,227, 3, 94,100, 11, 91, + 2,124, 18,140, 82, 49,147,146,135,115,195,106, 89,179,191,204,119,208,159,255,107,175,243, 31,253,228, 3,126,242,139,183, 88, +251,199, 60,126,255, 2,137,227,175,252,215, 63,199,143,191,114,192, 50,228,237, 87,153,224,187, 23, 29,231,143, 79, 57, 18,154, +198, 72, 76,109, 16, 38, 71, 69, 26,165,184,122,187, 69,188,239, 49, 79, 7,206, 79, 47,232,195, 5,118, 54, 67, 95,110,177,155, +150,230,170,231, 48, 36,106,163,120,181,150,124,205, 74, 62,155, 34,175,199,192, 43, 41,242,211,179,146,215,140,224,118, 33,185, +242, 3,201,195,129,210,220, 87,134, 90,231,237,200,162,154, 97,234, 18, 89, 24, 68, 93, 34,173, 65, 40,137, 72, 18, 33,115,244, +174,104, 42,196,162, 0,171,145, 90, 33,149, 68, 43,197,225,178,225,212, 5,222,108,106,246,139,138, 91,166,228, 63,251,247,126, +140,159, 53, 21,127,239,234,156,120, 88,243,157,147,142, 63,252,232,146,119,158,174, 73,223, 59,231, 27,111,222,229, 70, 85,211, +166,200, 31, 5,199,152, 52,244, 30, 49,246,249, 4,165, 64, 20, 5,114, 81,243,250,174,197, 91,155,197,174, 62,188, 12, 18,145, + 50,175,129,175,201,142,110,204,214, 55,247,255, 67, 48,167,116,142, 41,109,106,216,153,229,130, 94,217,188, 58, 45, 21, 43,171, + 40,132,228,103, 87, 21,135, 2, 94, 45, 11,130,148,200, 24, 41,164,198,165,152,131, 26, 73,196,224,185,232,182,180, 33,144, 82, + 30, 52,124, 10,104, 18, 82,105, 84,136,156, 15, 3, 2,193,218,245,140, 33,112, 25, 70, 92,138, 68,239,208, 74, 99,141, 37,165, +136,110, 26, 68,200, 14, 22, 97, 44, 20, 10,161, 20,201, 59,132,202, 9,139, 66, 8,164, 84,153, 68,109, 43, 32, 33,172, 70, 74, + 69, 82,154,164, 20, 90, 25,182, 8, 74, 83,208,138,200,157, 18,196,122,203,113, 31,241,101, 69,242,144, 76, 65,180, 53, 41,138, +108,115,150, 6,172, 68, 76, 91,222, 63, 79,233,211, 47,239,200,105, 42,224, 70,189,200,137,167,152, 10,237, 20, 20, 99,203,146, +160, 21, 86,106,154,210, 18,165, 66, 75, 67,105, 52, 87, 99,162, 49,134, 36,179,184, 13, 4,115,109,137,133, 69, 36,155,183, 33, + 74, 81, 73, 75, 75,160, 81,146,203,148,240,198,144,194,116,198,156,148, 79,181, 50, 84, 41,112, 46, 4,149, 54, 52, 34,242, 84, + 40,246,101, 22,167, 5, 96, 76, 2, 39, 37, 59, 82,242, 28, 8, 41, 32,148, 69, 16,105, 80,220, 22,154, 55,230, 11, 62,244, 35, + 75, 85,176,197,177,178, 11, 62,113, 61,171,114,198, 58, 65, 79, 98, 71, 75,122,105, 88, 71,159, 27,153,110,152, 26,163,105,237, + 46, 5, 66, 23, 40,109, 40,180,196,203, 44,162,147, 50,253, 37, 8,229,174,189,155,117, 57, 69,135,166, 79,201,237,139, 23,222, +194,151,164, 32,145,249,239,238,218,214, 96,115, 81, 15,254,165,216, 44, 77,121,226,253,244,239,146,135, 82,179,144,130,211,126, +224,235,111,126,142,243, 71,143,248, 36, 37,106, 43, 57,117,217, 50,225,250,200,243,216,177, 91, 20,156,140, 46, 79,174, 74,229, + 78, 79,126,106,101, 99,213,203,239,187, 80, 68, 23, 40, 76, 14,162,217,211,129,193, 90,206,219,204, 11, 54, 90,178, 29, 61,117, +130, 51, 36, 55,172,224,217,116,147,207, 96, 23,253, 41,110,190,250, 62,183,180,235,117,146,134,232, 9,253,192, 31,159,110,248, +252,193, 18,105, 52, 79,182,107,246,170, 26,215,247,152,162, 98, 24,174, 16,186,196,122, 15,182,164,247, 89,201, 95,105,141,247, + 57,208,224,116,116,220, 16,154, 45, 9,147,200, 97, 20, 35, 80, 68, 24, 38,223,250,181, 53,240,251, 61,127, 12,153,206, 4, 88, + 43, 1,205,213, 69, 32, 78, 83,202,188, 44,233, 59, 79,112,129, 16, 67, 6,172,132, 72,165, 37,227,224, 81, 50,177, 29, 60,155, +193,177,222, 58,116, 27,217, 93, 20,212, 70,226, 67,194,170,156, 84, 38,175, 51,129, 72,116, 41, 7,168, 68,160, 21,130,128,160, +209, 57, 77,105,150, 96, 45, 4, 43,165, 24,130,100, 85, 20,108,250, 54,247,129, 68,202,202,226,214, 87,217,214,135, 7, 27,225, +142,205, 10,119, 18, 44, 53, 92,193,229,123, 29,191,117,252, 1,247,127,102,203, 7, 62,112,218,119, 28, 23,138, 55, 23, 59, 12, + 85,195,221,221, 5,183,186, 17, 37, 20,167, 68, 68,128, 69,109, 49, 70,177,141,145,203,148,137,178,115, 33,144, 33,209,141, 30, + 70,135,244, 9, 27, 34, 82, 41,164, 16, 83,202, 85, 66,248, 97,202,156,246,244,222,177,137, 3,108,103, 92,218,132,208, 13,255, +242, 60, 17, 67,164, 54, 6, 33,225,160, 40,217, 21, 35, 95, 60,118,252,195, 63,254, 61,126, 39, 58,110,127,253,135,152,223,152, + 99,154,130,164, 53,203,202,210, 21, 5, 99, 74, 68,173, 9, 62,243,248, 69, 20,164,144, 25, 28,131,212,148, 18,202,251, 13,175, +222,126,149,255,230,103,255,115,206,223, 57,230,119,199,192,177, 10,108,149, 68,196,136, 1,194, 24, 56,253,149,223,231, 79,254, +231,223,231,183, 80,252,213,255,224, 62,191,248, 95,252, 13,230,159, 57,152,214,152,130,219, 63,126, 3,126,244, 16, 98,228,205, +206,227,207,122,190,245,127,188,197,193,189, 67,218,222, 79, 28, 1,137,117, 26, 61, 72, 74, 41, 40,102, 51, 68, 61, 67, 76,228, +200,250,170, 67, 94,108,185, 85,150, 60, 25, 19,115, 37,169,181,162, 68, 48,223,153,163,119,102,136,114,194, 23,199, 4,163,200, + 19, 72, 57,137, 52,108, 49,173, 58, 65, 76, 42,100, 17, 37,210, 40, 30,116,154,187,171,125, 60, 9, 71,194,141,240,247,255,241, + 31,240,175,135, 62, 7,144, 72,133, 44, 21,194, 42, 36, 37,241, 48,241,203,223,250, 46,255,195,143,126,134,181, 54,108, 66,132, +189, 5,194, 42,210, 39, 37,162,189, 36,181, 27,192, 19,235,130,103,193,114, 41, 4,204, 42, 4,146,212, 78, 32,154, 97,132,226, +122, 16,136,223,159, 16,247,255,182,118,215, 21,203,195, 57, 93,146,220,222,169,137, 72, 78, 17,108, 66, 70, 98, 43,153, 27,183, +175, 47, 53, 7,149, 97,134,193, 5,120,220,118,148,117, 69, 55,108,153,219, 18, 43, 2,155,161,231,180,109,249,216, 15,156,219, +134,187,141,100,140, 30,145, 52, 79, 66,207,118, 27, 16, 66,178, 50, 37,207,198, 30, 69, 68, 4,143, 8, 3, 39,192,205,114,134, +211,185,161,211,245, 44,247,245,171, 26,233, 2, 30,137,138,145,224, 71,164, 85, 48, 90, 82,202, 91, 9,193, 20,196,148, 34,178, +172, 72, 49, 98,154,138, 24,242, 48, 23,181, 99, 87, 72, 68, 81,177, 34,178,213,138,163,242,140, 47,204, 12,143, 29,156, 13, 35, + 66,106, 46,124, 96,140,224,194, 4,240,217, 76, 1, 60,166, 32, 13, 49,115, 78, 94, 12,138, 38, 59,163, 82,132,178,196, 54, 5, +152,130,170,202,110, 33,172,166, 2,182,218, 80,106,141,139,158, 3,157, 73, 17, 86, 91, 74,107,115, 70,133, 82,172,180, 70,107, + 3, 8, 10, 41,144, 82, 19,133,162, 34,114, 28, 18, 21,137, 82,229,230, 98, 95, 23, 92, 12, 14, 77, 68,135, 64, 48, 10,229, 50, +113,242,129,214, 60,119, 35,162, 44,152, 69,176, 9,190, 23, 35,175,105,120, 39, 38,142,164,164, 6,158,197,200,109,224, 17,208, + 76,224, 27,162, 71, 34,248, 90, 93,114,219,104,206,188,227, 78, 81,115,236, 28, 11,179,195, 24, 71,110,207, 86, 92, 12, 27,118, +140, 69,104, 67, 43,224, 78,225,185,223,236,115,188,217, 82,204, 12,111, 61,223, 18,165, 70, 12, 46, 71,217, 18, 40,129, 82, 40, + 14,136,160, 18,131,212,127, 9,147,250,167,163, 12,109,153, 63, 0,122,234,180,124,152,248,180, 83, 60,166,184, 78, 12,155, 80, +176,106,154, 28,211,100,123, 99,154, 52,167,238, 48,139,240,166,197,147, 15,168,210, 50, 83,138,211,205, 26,173, 52, 94, 73,188, + 80, 92, 37, 40,147,162,149,176,246,145,171, 97,164, 16, 34,231, 18, 95,159,203,164,192, 22,138, 48, 38, 48, 10, 37,196, 11,135, + 4, 70, 17,134,145,206, 37,118,172,164, 78, 57,181,205,167, 72,244,121,157,213, 35,152,201,200, 73,159, 88,143, 97,106, 24,228, +203,117,126,186, 78, 81,147, 47, 15, 72, 82, 76,234, 73, 61, 53, 0,185, 38,141,201, 51, 55,146, 89,105,114, 67, 33,166,147,247, +208, 83, 26, 75,240,142, 78, 8,230, 72,198, 24,209, 54,195,254, 21,146, 32, 52, 90, 66, 23, 35,143, 99, 64, 10,205, 19, 38, 11, + 70, 63,117,117,147,157,231,229, 42,241,207,110, 87, 66,214, 22,148,134, 31,255, 43, 63, 65,140,208, 94,181,116,109, 75,187,237, + 40,138,130,161, 31, 80,210,178,183,191,195,173,221,134,224, 35,150,140, 56,236, 92,164, 29, 3, 97,140, 92,181,142,209, 7, 54, +206, 83,151, 58,135,183,136, 44,164,243, 41,209,133,124, 23, 43,132, 96, 12,137, 33,229, 48, 28,231, 35, 54, 69,108,231, 24,122, + 71, 57, 56, 86, 81, 32, 37, 84, 64,116,129, 24, 50,242,240,193,141, 67,222,251,224, 17,239,157, 92,241,122, 23,121,254, 73,128, +117,128,165,130,199, 14,250,200, 44,129, 38,113,184, 48,216, 16,168, 14, 42,214,231,125,158,104, 54,103,180,209,241,165, 47,125, +137, 27,111,188,194,182, 48, 92,110, 91,170, 4,203,101,195,124, 86, 80, 89,195,210, 40,118,203,130,189,121,137,150,146,161,115, +116,151, 45,169,235, 41, 68,182,134, 25,157,225, 14,122, 90, 20,232,148,208, 50, 82,132,132, 30, 28,202, 57, 70,239,105,235,154, +205,108, 70, 82, 21,171, 24,216,155, 27, 78,188, 64, 12, 61,103,238,138,127,122,118,142, 25,215,188,251,157, 15,233,223,126, 76, +251, 27,223,228,157,247, 79,248,253,223,121,143,187, 23,145,117,109,184, 24, 29, 73, 75,180,149,248, 49,135,197, 92, 33,216, 2, + 49,102,151,136,239, 28, 91,153,120, 63, 37,250, 82, 19, 77,129,145, 26,143, 96,140,129,113, 12,188,242,230, 29,254,229,123,239, + 99, 30,141, 60,250,246, 57,255,244,127,251, 67,126,225,111,254, 8, 98,178,194,166, 33,226,175, 6, 82, 76, 25, 7, 92, 26,110, +125,227, 30,205,221, 29,246, 63,187, 98,247,181, 93,230, 71, 11,138, 69,133, 80, 18, 93,106,180, 80, 40,163, 81,133, 38, 78, 13, +243,198,121,198,152,185, 2,135, 83, 20,239,222,124, 78,185, 63, 71, 86, 57,194, 22,159, 72, 99, 36,174, 59,146,115,164,174, 39, + 57,135,176, 42,127,212, 11, 77,242,137, 56, 6, 92, 63, 18,188,199, 71,159,243,173, 75,131,170, 11,236,254,146,195,197, 46, 55, + 69,197,126,165,113, 54,242,180, 31,137,195, 72,252,206, 25,137,192,189,253,146,191,253,181, 47,243, 57,101,249,213,147, 99,174, +124,204, 83, 94, 85,228, 38,216, 84,224,122, 68,187,165,247,242,101, 64,134, 49, 8, 49,129, 61, 72, 19,123,252, 58,222,242, 83, + 39, 68,173,255,252,132,121,157,139, 81, 90,104,230,168,229,140,207,237,204,120,184,187, 96,111,209, 80, 88,205, 65, 83,240, 60, + 66,144,137, 74, 27,172, 12,252,120, 83, 49,183, 42, 67, 84,124,158,194,207,183, 3, 49, 68, 6, 55, 82,144,159, 63,111, 11,120, +171,218,227,222,124,201,221,253,219, 24,109,179, 64,109, 24, 56,139, 35, 67,244,180,192,198, 15, 92,185,142, 77,116,108, 82, 2, +107, 89, 43, 65,221, 52,216,162, 64,218,124, 42, 10, 49, 76,196,115, 8,163, 35, 77, 27,197,224,186,252,222, 16,146, 20, 28, 66, + 24,146,202,226, 87, 89,214, 89,189,164, 44,113,130,225, 68,107, 9, 68,162, 46,217, 4, 71,176, 22, 93, 85, 72, 43,121, 80, 87, +152,218,240, 96, 94,113,119, 86,112,123, 81, 49, 8,201,225, 94,205,185,158,234,133,212,249,249,101,235,151, 89,225,218,192,124, +206,237,221,138,195,186,164,153, 21,172, 26,195,194, 90,118, 11,197,110,101,217,151, 26, 37, 51, 91, 98,161, 11,230, 69, 73, 97, + 20, 51, 91, 17, 68,100, 49, 21, 72,133,100,174,114,240,151,151,154, 65, 8, 46, 93,100,174,115, 2,227,220,102,232, 76,235, 70, +106,149,127,239, 27,239,169,100,118,242, 52, 36, 28,146,221, 20, 25, 66,126,110,245, 66,240,154,214,188, 59,140,220,183, 5,199, + 33,178,163, 36,149, 82,156, 35,185, 15,124,148, 2,114, 10, 2,251,233,106, 70, 29, 97, 97, 21,115, 99,240, 66, 80,153, 76,180, +171, 76, 65, 31, 60, 11, 83,209,138, 68,166,241,123,140,214,184, 40,153,171, 68,151, 12, 43, 3,167, 67,200,246,241, 24,121,189, +106,216, 81,146, 90, 10,110, 74,201,162, 40,177, 66,253,128, 69, 93, 79,235,165,235, 44,118, 57, 81,129,196,148,223,157,166, 34, +173, 39,240,252, 11, 68,172,123,121,167, 26,211, 68, 26,242, 83,138, 88,238,170,178,170,217,230, 73, 83,128, 42,203, 44,136, 52, + 5, 59, 90, 65, 89,224,164,101,140,137, 70, 91,158,120, 71, 23, 34,193, 22,132,190,207,228,159, 77,159,191, 23, 99,144,133,196, +162, 40,172,197, 39, 71,140,137,125, 83,208,199,136, 85,138,224, 60,193, 7,118,180, 96, 16,208,133,128,137,130,109,242,148,211, + 26,204, 36, 56, 29, 60,173,144,249,254,239,252, 20, 65,153,160,170,242,207, 48, 78,105, 76, 97,122, 16, 88, 59,145,244,166,230, + 71,100,111,230,170,177, 36,159,216, 45, 10, 90, 55, 96,101, 86,226,187,233,181, 49, 86, 51,142,142,178, 52,136, 0, 73, 78,164, +163,152, 94,172, 78,157,146,252,193, 38,135, 3,188, 72,107,187, 22, 38, 94, 43, 39,191,223,237,170, 46,167,219,191,224, 75, 95, +255, 42,101, 83,208,111,123,218,245, 38, 99, 5,180, 65, 70,193,197,249,134,162,156, 51, 95,212,204, 27,141, 84,130,118, 72,244, + 62,208,247, 1, 23,161,247,142,182,119, 88,171,184,123,208, 32,200,247,248,156,214, 22,179,149, 45, 68, 90, 31,232, 67, 64, 8, +145,197,250, 46,160,131,167,234, 51,107,125, 24, 28,125, 8, 60,139,142, 62, 70, 26, 41, 25, 82, 98, 37, 21,175,220, 62,228,195, +199, 79,184,250,246, 57,247,172,228,246,107, 37,162, 86,188,118, 88,112,187, 11,252, 59,243,130,207,110,115, 51,240,229,160,216, + 93, 74, 52,176,187, 44, 16, 8,246, 2, 92, 68,199, 16,224,141, 55,239,243,218,103,110,113,220, 58,174,250, 1, 91, 21, 20,133, +166, 41, 52,133, 82,236, 46, 43,234,202, 98,164,160,219, 14,108,215, 45,105, 24, 49, 66, 80, 26,141,145, 18,155, 18, 50,100,171, +158,140, 9, 69,206,153, 55, 17, 52, 17,213, 57,180,119,136, 33, 97, 48,244,197,140,131,253, 93, 98, 57, 39,154,138, 43, 13,101, +123,201,237, 30,158,186,142,195,214,113,233, 6, 94,237, 19,207, 66,135,252,246,187, 92,125,247, 9,255,228, 55,254, 57, 79, 30, +117, 60,122,188,229,195, 62,208, 91,141,208,146, 46,130, 12,158,174,117,124,180, 30,248,206,105,199, 58, 37,164,150,124,102,101, +241, 66,147,140,230,208, 9,182, 50, 49, 68,197,236, 51,175,242,229,159,126,157,195, 7, 37,238,189, 51,254,207,255,233, 55,249, +233,191,241, 21,164, 80,184,179,129,177,115, 4, 41, 80, 66,162, 76, 78,181,147, 11,139, 40, 52,178,204,235,240, 24,179,203,196, +141,121,122, 39,228, 7,125, 18,137, 97, 12, 92, 56,135, 46, 13, 61,176, 50, 57, 4,104, 86, 91,244,117,218,152, 75,132,103, 91, +134,247,143,241, 31,126,194,248,201, 49,227,232, 16, 49, 32,166,160,161,216,142,248,193,227,186,158,182,235,184,188,220,224,198, + 1, 93, 40,164,209, 8,173,161,208,116,222,211, 38,193, 85, 10,196,148, 40, 45,168,186,228,188,214, 68, 45, 56,247,240,209,211, + 71,252,183,111,125,151,231,103, 93, 46, 30,243, 69, 86, 52, 47, 26,196,238, 46,236,237,193,124,137,120,126, 9,174,205,197, 68, + 76,226,223,186,156,232,141,226,229, 42,254,211, 27,184, 79,255,249,186,200,235, 38,175,150, 15, 14, 88,204,107,126,226,104,151, +251,243, 57, 55,155,134, 90, 27,118,148,228,196, 7, 90, 1,253, 20,203,176, 39, 36,187, 5,220, 84,185, 9, 47,133,224,184, 31, +248, 23,207,214, 84, 74,240, 30,145,161,168,248, 94,189,226,247,203, 21,174, 90,240, 87,239,222,227,160,168, 88, 53,187,196,144, +232, 72, 28,183, 3,155,152,136, 41,224, 98, 96, 27, 3,231,126,196, 9,193, 58, 38,188, 18,216,186,196, 24,203, 40, 35, 42, 9, +134, 20,137, 50, 15, 55,227, 56, 18,194, 72, 26,122, 82,136,200, 20, 73,110, 64, 40,155, 61,255, 73, 65, 85,101,207,182,148, 36, +163,242, 57, 74, 11,164, 81,180, 33,209, 7,199, 32, 37, 99, 76,180,201,179, 99, 42,148, 49,220,169, 42,180,206,246,180, 85, 61, + 99, 85, 88, 6, 45,169,235,130, 81,104,196,188, 33,212, 85,174, 37,139, 6, 22, 85, 22, 15,214, 5,119, 87, 51,144,154,210, 42, + 42, 99,137, 72,246, 75, 75,161, 13, 23, 94,176, 83, 91,108,212, 84, 69,241,162,168,121, 18,141,170,112, 49,167, 74, 90,153,165, + 95, 73,106,208, 2,147,160, 46, 10,182,227,136,143, 9,143, 32, 6,135, 16,138, 75, 63,144, 98, 96,144,137,198,185,156,149, 78, +100, 39, 5,108,206,240,100, 38, 18, 46, 36, 54, 66,112,168, 13,143,253,192,131,178,225,210, 59, 82,138, 44,129,143, 8,184,224, + 16, 62,113, 71, 27, 14,165,226,176,214,168,144,144,198,190, 8,146,140,147, 91,170, 52,150,203, 16, 88, 25,195,218,141, 84,182, +100,240, 30, 41, 18,103,163, 67, 39,176, 82,115, 44, 2,171,178,226,117,163, 9,202, 98,148,226, 64, 9,148,212, 52,133,100, 33, +220, 15,170,126,159,146,217,132,205,147,185,158,176,175,218,188, 12, 88, 86, 58,123, 62,153,140,253,253,116,131,239, 93,158,212, +245, 52,237, 42, 61, 77,187,215,201,110,217,248,159, 1, 16,144,148, 66,148,138,186,176,180,218,160,149,194, 40,205,229,116,243, +174,180,229,185,243,132,190,195,206, 23,140,235,171, 73,192,150,183, 0, 73, 43, 42, 33, 72, 41,210, 40,137, 16, 18, 99, 36,189, + 15,153,123,110, 52, 12, 35,235, 40,184, 91,105, 46, 93,160, 86,138,153, 84,156,199,196, 92, 75,206, 98,224,196,101,228, 96, 34, +195, 83,242, 14,138, 44,240,211,122, 42,188,241, 83,170,127,159,109, 35, 34,253, 41,110,244,105, 23,121, 56,171, 24, 68, 94,255, +244,221,128, 22, 9,161, 50,227,184,237,123, 10, 99, 81,225,165,176, 47,251,230, 51,135,121,144,138,167,222,113, 25, 36, 65,155, +220, 16,197,137, 12,120,205, 7, 78,225,251,223,255,164,156,110, 86,112,247,238,125,118,247,119, 25,122, 71,244, 14, 31, 34,221, + 48, 98,180, 33,196, 72,221,204,152, 47, 22, 28,173, 26,148,140,249, 53,117,105,186,149, 7,146,136, 8, 37, 9, 99,192, 88,197, +178, 54,140, 33,101,180,233,148, 19, 45,128,113,186, 1, 54,147,222,192,133,144, 93, 61, 41, 18,134,192,170, 15,120, 23,152,161, +216, 79,145, 48, 6,130,132, 74, 43, 86,203, 57,223,124,250,148,183, 30, 95,240,137,243,188,211,122, 78, 54,158,167,223,107,121, +114,191,224,116,166,249, 23, 91, 79,120,189,224, 96, 71, 50,215,154,102,167,228,167,230, 11, 22, 46, 81,140,129, 98, 49,167,243, + 45, 85,185,195, 27, 15,111, 48, 70,193,232, 19,125,202,177,177,213,100,127,156,205,107,234,202,162,148,196,199, 68,215,122, 92, +223,147, 98,156,208,182,145, 20, 34, 41,166,172,128, 23,153,160,167,132,202,182, 62,173, 40,181, 98,111,165,121, 77, 69, 22, 51, +203,237,189,134,207,220,222, 97, 86, 89, 62,142,134,214,214,236,220,184,133,187,119, 31,127,239, 53, 14,191,242, 25,110,126,254, + 13,206, 84,197, 59,103,199, 60, 59, 89,243,215,247,102,252,163,139, 13,225,233, 39, 12, 79, 62, 66,187,200, 86, 20,156, 78, 97, + 29,214, 69, 62,217,122,222,189, 26,120, 54, 58, 58, 37,249,252, 94,193,225, 60, 55, 37,167, 81,113, 94, 72,238,161, 56, 51,138, +155,135, 51,110,223, 95,113,227,243,247, 89,252,252, 23,216,251,236,138, 95,254,239,255, 1,221,255,248, 29, 94,251,165, 55, 17, +133, 66,207, 44, 74,171, 44, 65,185,214,184,196, 12, 49, 74,189,167, 61,105,249,224,116,195,105, 55, 16, 58,199,213,186, 99,187, +238,216, 58, 79, 31, 35,163,204,186, 2,124,224, 42, 37,230, 70, 97,138,108,191,137,125, 96,120,116,193,240,225,115,210, 59,223, +130,211,143, 8,237, 37,177,191, 66, 10,133, 8, 16,186, 14,223, 13,244,219,142,171, 77,203,135,151,151,124,216,109,144,193, 33, +133,204,205, 65, 97,137, 34, 49,106,197, 38, 6,206, 60,244,147,194,186, 20,145, 7,171, 25, 71,243,130, 7, 51, 67,159, 50,151, +240,164, 11,121,157,254,252, 12,179,103,219,153, 0, 0, 32, 0, 73, 68, 65, 84, 49, 43, 97,103,143,159, 63, 92,241,239,222,188, +193,157,198,242,237, 56, 64, 81,231,207, 75, 31,167,103,153,206,195,198,162,225,206,209, 62,159, 59,152,243,113,159,207, 49, 88, +253, 50, 90, 90,216, 60,180, 44,151,176, 83,103,235,221,238,140,175,222,220, 97,223, 88,142,170,134,156,105, 24,168,116,129, 13, +129,142,196,137,207, 91,139, 43,159, 83,233,110,218,140,191, 62, 27, 6,254,238,227, 45, 79,202, 25, 79,246, 15, 57,221,185,201, +191,169,119,121, 82,204, 17,186,228,111,222,187,205,151,202,154, 31,154,205, 57,136, 9,233, 19, 9,129,151, 35,155, 33,208, 19, + 8, 34, 39, 87,110, 93,224, 60, 70,174,132,160, 37,159,152,102,133,161, 52,134,181,243,200, 24,241,131,231,249,230,138, 20, 2, +109,219, 18,131,199,140, 35,113, 26, 46,210,181,232, 87,233,108,113, 20, 57,200,200,123,159,173,107,218, 48, 58,207,152, 18, 27, + 53, 97, 70, 68, 94,217,123, 41,217,181,118, 18,170,105,118,170, 25, 93,138, 20,166, 96,223, 22,244, 18,150,179, 37, 74,165,220, + 88, 47,102,217,150,166, 52,187,243,134, 59, 85,201,210, 40,202,166,162,214, 6,109, 21,179,162,100, 20, 9, 37, 53,135, 77,157, +239,225,182,194, 40, 48,214, 96,117, 73,161, 12, 99,154, 68,189, 34,163,176,209, 37, 86, 73,186, 16,209,218,112, 53,120, 74, 35, + 16, 73,146, 66,142,220,214, 36,174, 82,164, 77,145,185,243, 24,161,153,145, 61,255,187, 41, 32,146, 71, 7, 79, 18, 96,137,244, + 67,203, 24, 34, 71,218,242,214,176,229, 72, 25,106, 41,120,199,121, 98,138,144, 2, 70, 75,110,203,204, 71,185, 95, 22,116, 74, + 82, 2, 35,137,153,210,180, 74,178,212, 37,155,228, 89,105, 77, 39, 4, 43,107, 57, 31, 29, 51, 93,240,164,237, 49, 66,210,225, + 9, 74,241,229, 89,197,158, 12, 68, 81, 80,106,201, 61, 35,153, 27,131,146,145, 50, 9, 46,199,248, 3, 22,117, 37, 95,168, 15, + 51,133,199,194,188,252, 83,118,131, 23, 89,175,144,167, 71, 33,242,250, 87,132,188,110,105,202,252,223,221,148, 34, 22,166,105, +189, 42, 51,196,134, 41, 98, 78, 68, 82,105,136, 90, 35,140,101, 84,154,115,231,152, 23, 21,206, 88,158, 13, 91,234,178,202,201, + 97,125,151, 39,231,179,171, 92,120,165,162, 40, 53, 67,136, 20, 34,145,132,192, 74,232, 92, 96, 33, 37,165,146,116,237, 0, 82, + 18, 58,199,211, 49,242,234,220,208, 69,207,241,152,184, 89, 91,158,185, 17,159, 12,107, 4,209,249,252,179,251,144, 27,150, 48, +137,253,226,132,245, 75,188, 92,205, 15, 33,223, 46, 99,122,169,250, 28,243, 42,207,169,196,145, 53, 92,141, 35,149, 54,108, 6, +151, 85,241,215,255,111, 8,140,211,170,135, 16,113, 82,230,104, 83,145, 85,153, 35,137, 62, 36,182, 99,151,155, 38, 61, 61,104, +220,164, 69,232,253, 68,156, 11,127, 6,126, 33,166,252,250,200,219,223,252, 22, 63,245, 11, 63,195,246,226,138, 52, 53, 40,222, +123, 78, 54, 27, 98,128,189,249,146,229,114,198,206,220, 82,200,124, 90, 24, 93,162, 29, 3,227, 24, 25, 7,207,186, 27, 8, 46, +210,133,192,162,182, 72, 18,133,146,217,191, 42,193,165, 68,140, 89, 13,111, 98,100, 41, 35,229,148,191, 62,159,236,110,201, 69, +116, 10, 44, 98,162, 65, 48, 79,129,149, 84, 25,146, 49,171,120,247,248,140,254,108,205,158, 18,172,162, 96,150, 2,103, 49,191, +201,174, 62,232, 72, 67,100,125,225,121,123, 27, 57,173, 18,106,105, 56,186,125,132,159,215,168, 24,185,217,148,220, 48, 21,242, +236,130, 81, 23, 52, 82,177,152, 87,116, 33, 16, 66, 36,141, 14, 21,161,170, 11,202, 74,163,181,202, 33, 54, 33, 50,116, 14,239, + 60, 49, 4,162,115,140, 46,160, 98, 14, 91, 40,144,152, 36,104,180,166, 50,154, 89, 89, 80,151,134, 29, 35,184,111, 10,246, 18, +180, 38,195, 33,206, 29, 92,249,132, 85,145,164,225,162,247, 20,109, 96,121, 99,206,193, 43, 11,110,190,121,196, 63,246, 43,254, +214,195,187, 20,119,143,120,253,141,251, 44,191,250, 5, 62, 60, 89, 83,110,207,217,188,255, 33,227,157,187,204,166,165,205,249, +232,121,127, 51, 34,198,136,142,145, 89, 89,176,168, 12, 27, 4,239, 14,145, 11, 31, 89,203,196,122,240, 28, 84,138,203, 33,114, +188, 25, 25,125,228, 11, 63,241, 26,223,248,197, 31,230,141,255,228,115, 96, 18,197, 65,133,174, 52,114, 74,193, 74, 27, 71, 58, +235, 9,103, 61,227, 89,203,230,233,150,167,167, 27,190,117,185,230,100,112, 60, 31, 71,130,130, 86, 11,156, 72,244, 10,130, 18, +184,148, 19,249,132, 82, 52,149,101, 32,178, 25, 61, 93,244,172,183, 45,177,219, 32,151, 13, 65,130,223,221, 37,218, 2, 49,145, +214,198,237,150,243,110,203,201,176,229, 73,244,188,221,173, 57, 9, 35, 49, 70, 26,107,241,147,186,216, 25, 69, 23,225, 34, 37, +206, 93,224, 50,228,109,153,214,185,209,223, 49,154,185, 54,220,108, 26,238, 26,197,235,171,154,219,251, 75,158, 8,197, 92, 65, +247,228,148, 95,124,245, 85,238,214, 21,231,179,125,254,228,234, 60, 47, 23, 11, 3,149,134,170, 70,204,106,168, 10,238,172, 22, +252,200,209, 1,183,119,246,112,181,228,249, 58,193,238, 14,234,230, 33,105,190,128, 41,209,140,163, 61, 40, 43, 22,139, 57,251, +214,176, 44, 13, 7,186, 32, 76,155,132, 66, 26, 68,138, 8,165,240,209,241,193,232,179,240,110, 8, 28,247,145,141, 72,180, 90, +241, 39,209,114,182,127,139, 7, 55,110,178,191,123,131,122,182, 75, 40, 26, 70,169, 16, 69,195,207,148,150,219,101, 65,147, 4, +157,243, 44,181,102,219,181,156, 12, 61,207,186,237,148,254,156, 8, 49, 48,184,145,205,232,120, 22, 28,163,213,244, 66, 82, 89, +131, 11,142,194,106, 78,182, 27, 58, 63,114,225, 19,103,253, 21,231,109,230,209,111, 93,135, 26,187,140,144,158, 54,111, 72,147, +167, 93,161,136,211,102, 54,105, 67, 76,137, 81, 66,235, 61, 66, 26,206,156, 35, 73,193,152, 34,181, 41,178,204,204,150, 84, 82, +211, 73,129, 45, 42,146, 27, 9, 85,205,202, 88,182, 62, 81, 23, 37,187, 69, 69, 8,145,253,170,102, 86, 84,188, 54,179,148,218, +178,103, 45,179, 20,152,149, 13,115, 83, 51,151,130,170,168,168, 76,137,181,150,202, 20, 24,171,209,194,100,122,162,146, 89, 56, +175, 20, 74,192, 76, 11,172,212,140,201, 51,164,196, 66, 74,250,148,155,213,130,200,136,199, 8, 73,105, 52,253, 56, 32, 99,164, +115, 35, 11, 33,168, 98,196, 71,199, 46,145,245, 56, 80, 2,115, 1, 46, 4,116, 74,244,192,211,209,113, 66,228, 32, 69,158, 6, +143,136, 9, 29, 28, 62, 9, 84, 12,200, 16, 89,145,248,242,172,230,147,118,100,215, 26,164,146,204, 76,201, 57,129, 27,186, 98, + 67,100, 71, 91,122, 36,134,136,155,116, 59, 33,229,199,244,198, 7,182, 34,159, 23, 31,106, 73,101, 44,251, 70,112,168,178, 5, + 86,147,120,197, 20, 92, 6, 79,173,126, 16, 75,155,214,211, 52, 46,167,123, 72, 9,123, 77, 46,192, 70,102,133,187,152, 10,250, +181,229, 75, 78,124,242,232,178,207, 96, 53,135, 38, 43, 24, 25,167,152, 81,107,243,218,125,188, 70,154, 78,225,240,246, 26,219, +167, 25, 34, 12, 50,162,138,134,173,119, 12, 8,132,208,140,227,196,240, 53, 22,174,218,169,128, 14, 80,104,102, 86, 35, 82,162, + 81,138,243,214,101,229,168, 75, 44,106,201,133,203,118,188,212,141, 16, 61,169, 48,156,141, 9,165, 37,143, 93,226,204, 37,156, +212,156,250, 64, 76, 42,111, 24,194, 52,205,244,253, 75, 23,166,156,238,112, 87,221,196, 18, 30,243,125, 45, 77,247,245, 16, 95, +198,210,138,196,149, 75, 57, 71,103,202,118,175,124,164, 13,121,123, 81, 39,193,243,232,209, 66,231, 84, 43,145,104,125,190,177, +182, 41,113, 21, 35,165, 86, 12, 62,228,149, 23,233,101, 68,235,181, 29, 68, 76, 14,132, 79, 11,124,226, 53, 14,113,218,146, 4, +193, 55,254,250, 79,226, 67, 36,248,108, 79, 83, 19, 36,168, 41, 74,148, 18,136, 24, 81,218,162,181, 34, 9, 69, 41, 21, 70,100, + 64, 66, 27, 61, 93,239,217,217, 45,168, 43, 69,231, 2, 82,230, 12,245,152, 82,238,231,162, 32,133,132,139, 1,231, 67,254,123, +166,181,150,138, 80,138,108,237,155, 43, 69,233,227,139,181,148,179, 6,107, 36,118,217,224, 70,135, 62, 61,103, 30, 35, 23,196, +220, 40,204, 20,213, 66,211, 25,160,150, 72, 45,176, 43,141,147, 2,243,180,227, 96, 79,225,110, 28, 49, 47, 13, 95,190,121,151, + 84,214,168, 24, 24, 90,135, 24, 2,139, 85, 67, 16, 10, 81, 26, 6, 31,208, 62, 78, 10,127,137, 86, 18, 17,114,247, 62,250, 72, +235,242,125, 51,184,140,185,181, 8,102, 66,113, 88,228,169, 99, 71, 27,246,170,146,121, 99,153, 55, 6,157, 34,214,106,170,166, + 98,167,201,202, 97, 73,100,159,158,131,246,146,221,227, 19,194,197, 57,188,255, 62, 23,107,199,108, 53, 39,117,158,149,146, 60, +158,149,140, 71, 13,199, 7,187,220,216,155,241,240, 11, 15,249,238,222, 17,171, 31,249, 28,162,212,184, 4,110,240, 92,180,142, + 95,249, 95,255, 62,223,254,239,126,157,253,111,188,193,113,204,211, 81,135,100, 59,169,104, 43, 33,184, 81,105,164, 20, 92,133, +204, 14, 88, 85,130,177, 29, 56,233, 35,175,172, 74,132, 22,164,148,232,149,228,163,199,107, 62,250,131,199,204,149,160,125,186, +225,248,233, 37, 39,235,150,239,156, 95,241,157,171, 45,199, 93,196, 37, 69,235, 35,114,166,152, 85, 10,109,228, 68,137,142, 88, + 41, 24,149,160, 49, 58, 91,141,165,164, 23,137, 77,136,156, 8,232, 45,108,202,130,171,131, 61, 78, 87, 11,134,217,156,203,186, +228, 98, 28,121,228,122,190, 53,246,124,100, 13, 31,147,184, 20, 21,149,130,243,162, 36, 26, 67,165, 20,131, 72,140, 66,240, 36, + 4,206, 66,228,147, 24,241, 62,177, 14, 14,164,193,136,124,103,221,177, 37,183,181,197,150, 37, 66, 42, 90, 34,179, 89,193,110, + 83,112,146, 4, 15, 54,199,252,135,175, 63,228,187, 23,167,252,222, 56, 66,114,136,113, 34, 48, 54, 37, 95,219,217,225,181,121, +195, 81,179, 32,200,146,203, 36,248,163,164, 9,171,134,175,223,186,195,231,143, 14, 89,206,231, 60, 45, 74, 88,236,228, 38,190, +176,204,165,162,182,154,185,148, 44, 16, 20, 41,161, 68,222, 24,100,146, 64,226,216,143,124,188,245,136,194,194,106, 23,102, 21, +207,237,146, 39,178,225,104,117,196,103,119, 15, 89, 53, 11,172,169,176, 69, 69, 93,228, 59,244, 95, 41,243,109,122,150, 96,112, + 35, 75,169,112, 67, 79,232,122,158,182,231, 28,187, 22,136,180, 67,207,118,236,249,240,124,203, 39,253, 64,231, 60,107, 63,208, + 69, 71, 63,142,212, 34,241,193,243, 99, 46,219, 43,158, 94,156,240,237,231,199, 60,186, 90, 51, 36,199, 89,191,229,241,213, 37, +142, 68,215, 93, 97, 98,192,232,146, 36, 18, 41, 10,146,206,185,222, 81, 43,162, 18,244,193,211,143,158,160, 53,155, 24,104,133, +167,243, 30, 33, 21, 26,137, 81, 38,235,105,116,193, 76, 23,104, 37,193,150, 8, 18, 73,106, 86,117,195, 16,179, 21,214, 90,131, +149,138,157,194,224,131,228,179,117, 69,210, 10, 93, 52, 44,108,153,217,235,198,114, 80,204, 24,165, 36, 10,153,111,224, 82, 33, +141,196,232, 2, 68,194, 24,133,115, 30, 37, 21, 82, 10, 80,145, 74,104,100,130, 49,230,137,187, 36,210,197,144,197,164, 34, 17, +189,195, 72, 56, 29, 71, 68,138,196, 20, 8,126,164, 74, 1,231, 71,118,132,192, 50, 18, 93, 96,166, 61,114, 76,140,222,179, 91, + 90, 54, 93,135, 35,177, 39, 18, 42,230, 51,163,242, 45,218, 7,180, 16,236, 8,137, 75,158,251,214,228,239, 89, 40,214, 4,110, +233,146, 45, 1,153, 36,157, 0, 43, 50, 28, 42,248,136, 54,134,222, 7,222, 27, 61,129,136, 16,146, 87, 74,147,183,129, 49,127, + 93,157, 18,165,144, 28, 20, 37, 41, 38,124, 12,184, 24,255, 45,213,239, 47, 60,231,211,138,249, 26,184, 31,167,137, 92, 76,106, +115,169, 94,218,189,226,132,126,189, 46, 44,133,252, 84,148, 94,156,176,140, 83,254,186,155,252,136,106, 42, 76, 46, 76, 80,155, +172, 6, 38,116,236,175,238, 80,232,154,199, 93, 59,121,179, 37,168, 42,103,188, 67,190,237, 63,217,228,244,154,202,226,122,199, +253,165,229,116,112,204, 4, 8, 31,120,101, 97, 88,247, 14,237, 18, 51, 11,103,151,227,139,168,211,161, 44,120, 60, 42, 80,146, +214,251,169, 72, 93,223,210, 84, 86,237,183,221, 20, 65,219,101, 37,255, 48, 64,169,114, 52,173,239,115,168, 72,159,149,251,249, +136, 18, 94, 42,239,123, 15, 54,241,193,165,228, 11, 59,138,231,219,158,193,104,252,182,229,158,157,115, 76,164, 64, 48, 70,135, + 79,224,199, 72,178, 26, 23, 18, 70,101,143,106,240,158,253, 82, 81, 68,201, 91,151, 25,115,187,238,251, 28,143,187,105,243, 93, + 16, 50,233,101,216,252,249, 45,139,203, 86,194,245,243, 53,213,178, 65,105,201,217,211,211,140, 75, 4, 62, 58,123,142,210,134, +102,194,183,174, 7,199,174,206, 54, 17,143, 98, 8, 16,146,160, 82,138,113, 8, 44,102,150,109, 55, 82, 89,197,162, 22, 47, 50, +217, 67, 8,116, 41,223, 97, 23, 82, 80, 41,201,149, 11,217,169,104, 21, 38, 9,140, 24,169, 10, 3, 11, 65,232, 6,234,168,209, + 34, 81, 11,133,217,157,115,239,106,197, 27,186, 38,205, 45,191,109,182,152,194,176,135,226,131,224, 89,223, 46,233, 93,224, 94, +128,181,130, 78, 9, 86, 11,203, 65, 8, 84, 9,202,197,138,249,182, 99,121,176,143,106, 22, 60, 13, 61,197,241, 25, 39, 66, 32, + 23, 53,213,222,156, 27,119,246, 24,182, 61,227,224,184, 90,183,164,193,160,129, 66,107, 94, 89, 45, 72, 81,242, 52, 10,124,234, +176, 12,212, 81,176, 82, 37, 15, 22, 11,230,117,153, 47, 81,133, 70,206, 11,212,126,141,112,145,174, 29, 57,181,160,241,148, 46, + 71, 34,142,155, 45,233,108,195,205, 51,199,113,215,209, 17,185,241,232, 17, 23, 31, 63, 97,185,127,192, 23,159, 28,243,171,139, + 57,143,126,248,179,236,237, 6,102, 8,206, 90,199,205, 82,179,237, 60, 90, 11,158,117,158, 15, 79,182,252,246,223,250,187,164, +113, 11, 88,126,237,191,252, 59,240,230, 14,219,255,234, 63,229, 55, 69,228,222,221,125,190,182, 99,185, 41, 4,171, 2, 46,199, +196, 70, 9, 22, 90, 82,218,188,133,120,190,241,252,206, 71,151,124,182,201,123,211,143, 46,182,124,240,124,192,104,201,179,231, +103, 52, 9,168, 4,207, 93,228,121,136,180, 1,122,145, 16,120,218,157, 25,183, 10,112, 2, 10, 23, 80, 90,230, 16, 13, 23,112, + 70,241,209, 85,207, 92, 9,172,150,212, 70,179,117,129,103,131, 99,225, 19,214, 7, 80,146,153, 53, 60,171, 13,189, 89,208, 46, + 42,186, 39,167, 60, 31, 19, 85, 33,104, 77, 67, 21, 3, 79,229,140,253, 90,242,110,155,120,146, 34, 53, 18,127,177, 97, 99, 13, +109,136,120,224, 60,105,162,174, 89, 39, 71,140, 5, 59, 74,176,180, 69,118,144,196,128,183, 5,190,149, 68,231, 48, 49,112,171, +105,248,229,167,103,244,127,244, 7,252,189,243, 1,209, 84, 48, 95,146, 70, 16, 58,191,247,247,173,198,104,141, 23,146,111,246, + 61,231, 33,230, 48,214,249, 46, 95,187,123, 23, 33, 5, 71,253,192,219,103, 23,180, 67, 55, 9,131, 35, 46,140,180, 99,228, 44, + 70,118,108,102, 93,204,133, 98, 19, 34, 81, 36,174,124,207, 99, 12,172, 10,246,139,154, 93, 99, 48,170, 98, 71, 9,140, 84, 52, +186,194,106, 67, 81, 53,212, 19, 28, 81, 38,207,129, 20,124,219, 69,238,110,175,184, 37, 11, 36,146,110, 28, 72,131,227,188,221, +240,241,122, 77, 27, 7, 78,183, 1, 82,224,124,240,140,231,107,100,140,200,182, 39,236, 47, 56, 5, 46, 27,203, 91, 49, 98,156, +199,120, 48,253,136,105, 59,204,106,201,219, 82, 83, 55, 5,133, 72, 60, 42, 37,159,193,162, 22,145, 33, 4,172,182, 44,118,110, + 32, 6, 72,186, 96, 28, 28,222, 57,194,164,111,186,220,174,113, 42,159,222,144,154,146, 72, 80, 2, 41, 18, 30,195, 18,137,176, + 6, 53, 58,208,138,133, 15, 60,243, 3, 6,193, 66, 36,156, 51,204, 82, 98, 8,121,176,104, 22, 26,169, 20, 77,240, 36, 99, 48, + 34,159, 29, 27, 83, 77, 48,155,200,210,148,108,125,255, 66, 7,132, 75,104,105,240,113,164, 44, 52,206, 37,164, 76, 8, 15, 27, + 6, 42, 1, 58, 9, 28,137, 62, 58,144,150, 16, 28, 18,168,148,225,188, 27, 88,166,196,113,112,164,113, 64, 43,129, 9,129, 82, + 71, 66, 76, 52, 62,208,165,196, 14, 5,107, 61,178,227, 4,155,171, 11, 10,109,177, 41,111,121,181, 72, 84,228, 36, 55, 77, 22, + 74,175,240,236,136, 18, 81, 86, 28, 36,184,240,158,215,237,156,247, 92,207, 74,151,108, 36,236, 11,193, 59, 67, 98, 17, 61, 66, + 73,234, 4,143,198,192,158,182, 60, 1,132,239, 57,176,138, 62, 56,140,148, 92,245, 91,230, 82, 18, 99, 96,219,245, 8, 41,120, + 67,106, 30,199,241,223, 98, 82,215,250,165,239,156, 9,239, 87, 78,247,114, 59, 17,151,122,151, 39, 65,239, 94, 78,168, 76,114, + 97, 55,249, 64, 69,122,233,255,108, 39, 11, 86,156,214,198,101,145, 85,170, 90,229,253,195, 68,174,194,170, 60,133,207,114,128, +198,195,155, 15,120,124,117, 78,136, 1,188, 67, 74, 75, 66, 65,187,201, 19,115, 55,192, 48, 32,165, 98, 81, 21,216,148, 81,168, +181, 21,236,105, 56,235, 71,102, 74,130, 27,233,187,172,220, 37,133,236, 37,213, 58,223,207, 84,190, 99,167, 52,169,247,205, 36, + 22,136,211,244,173, 85, 62, 19, 88, 13,114,130,204,139, 73, 92, 99,204,116,110,152,176,185,195,116,175,187,158,214,123,143, 19, +137,199,157, 71,151,138,183, 62, 89, 83, 87,138, 15, 47, 90,180,209,104, 41, 8, 42, 11, 82, 70, 37,208, 66,224, 66, 38,185, 21, + 82,225,137,204, 80, 12,209,211, 88, 69, 67, 98, 75,206, 59,199,231,108,230,204,225, 23,147,160, 47,190,180,223,201,233,116, 18, + 4, 71,175, 28,113,112,235,144,118,155, 69, 50,193, 71,182,125,139, 17,154,131,213, 33,123, 7, 75,102, 77, 65,112,137,194,106, + 84,132,166,212,200, 49,112, 57, 6,124, 74,180, 67,192,185, 72, 83,107,148, 20,104, 57,173,223, 17,120,242,135, 53,166,148,131, +247,144, 68, 1,137,188,174,213, 58, 79,235,248,152,161, 62,133,194,214, 6, 45, 53,101,169,249,191, 89,123,179, 88,203,210,243, + 60,239,249,167, 53,238,233, 76,117,106,174,174,174,234,110,246, 64,145, 77,138,148, 40, 91,178,132,152, 6, 18,197, 73, 46, 20, + 7, 65, 4,196,185, 73,128, 32,185, 8, 2,248, 46,176,238,156, 27, 35,200,125,144, 92, 4,112,132, 12,130,108, 40,138,172, 33, +214, 16, 73,164, 73, 90, 36,155,221,173,110,178,187,171,107, 62,243,217,227, 26,254, 41, 23,255, 58, 85, 69,137, 18, 20,197,167, +177,113, 80, 5,116,157,179,246, 94,123,127,255,247,125,239,251,188,178, 54,204,109, 36, 28, 28,227,181, 96,145, 75,124,109,216, +100, 18, 95, 72, 30, 73,207,246, 40,103,119,167,100, 57,206, 24, 95,158,178,181, 61,229,114, 85,115,185,183,188, 81,111, 51, 13, +145, 93, 93, 48,186,177, 13,166, 96,220,246,100,173, 99, 45, 5,179,237,154,171,151,183, 40, 75,147, 0, 99, 77, 75, 92,246,200, +206, 83, 74, 69,169, 36, 69,132,222,167,209,158, 16,138, 76, 24,246, 71, 35, 46,239, 77,153,108,215,148,163,156, 98, 82,144,207, + 10,178,210, 80, 76, 43,138,113, 73, 17, 34,198, 58,100,239, 56, 95,172,217, 57,106, 48, 46,242,193,193, 33,242,124, 69,238, 5, +166, 52, 92, 11,240,242,227, 5,223,113,199,184,137, 96,218, 45,184,255,219,127,128,207,182, 89, 29,172,216, 44, 26,214,235,150, +223,254, 95,126,149,143,254,209,239,113,239,215,191,145, 52, 13, 72, 2, 38,233, 60,142, 27, 62,250,103,127, 72,248,167, 95,167, +236, 63,229,214,157,171,124,121,183,100, 87,107,254,120,229, 56,232, 2,158,200,165, 82,209,161, 56,149,138,199, 66,114,127, 99, +121,180,238, 89, 53, 30,109, 36, 94, 66, 44, 32,138, 72, 75,160, 35,224,100,128,152,196,139,215,239,236,145, 95,153,114,164,115, + 62, 61,119,252,225,183, 62,230,206,254,132,222, 71,158, 90, 79,171, 69, 74,226,206, 4,247,159,204,105, 93, 74, 88,180,189,101, +221, 89, 66,111, 25, 75, 65,166, 4,185,144,244,121,154,250,185,178, 32,232, 12,171, 51, 84,157, 97,235,146,179,141,101,113,190, +100,213,119,228, 85,198,131,243,158, 77, 20,172, 93,135, 15,145,163, 69,135,146,146,181,210, 56,149,225,163,100,119, 54,166,145, +130,105, 94,208, 33, 57,246, 17, 43, 5, 79,150, 45, 71,189,101,172, 20, 71, 82,241,222, 89,139,232,186,228,145,207, 52,140,170, + 4, 95, 57, 93,115,165,144,236, 85, 5, 7,155,134,119, 87,107,172,237, 17, 82,241, 70, 53,226,181,233, 4, 41, 37, 66, 73, 86, +173,229, 64, 12,217, 7, 62, 21, 84, 21,159,239,202,107, 37,105,133,224, 8,136, 66, 50, 42, 74,246,234,154,207, 86, 19,238, 78, +119,208, 67,224,138, 70, 82, 12,194,178, 92,105,156, 15, 8, 33,200,134,157,117,227, 61, 15, 87, 11, 94,145, 1,215,245,220, 8, +145,213, 98,206,124,115,198,251, 71, 79,248, 96,126,206,199, 39, 27,206,155,142,229,233, 28,123,118, 68,180, 29, 97,179, 33,246, + 45, 97,177, 76,143,249,138,112,190,196, 47,214,248,243, 57,174,239,241,222,225, 86,107,220,217, 25,253,241, 9,253, 98,197,241, +162,225, 97, 72, 57, 26, 45,129,237,188,164, 35,164,172,141,224, 17, 70,211,122, 79, 23, 28,115,239,105,133,224,164,107, 88,217, + 30, 97, 20,189, 28, 38,124,153, 65,101, 25,121,102,104,165,160, 42, 43,180,148,172,165,167, 50, 25, 27,239,208, 89,137, 84, 34, + 33, 94,181,166,202, 4,179,172,196,135,128,202,138,164, 90,143,142,186, 26, 35, 98,192, 6,207,118, 85, 99,173, 69, 68, 65,150, +231,244, 46, 29, 44, 83,109, 25, 36, 70, 18, 92,231, 80,120,140,136,180,193,211, 58, 75, 22, 61,189, 16,104,103, 19, 63,159,136, + 12,142,198, 53, 52,182, 39,118,107,108, 84,212,222,146, 73, 71, 17, 2, 51,151, 92, 90,151,132, 96,227, 44,179, 0, 10, 79,244, +129,245,186, 37, 23,129,232,146, 56,249, 10,130, 55,180,227, 21,165,248,146,209, 92,215,134, 27, 69, 70, 21, 34, 91, 38,231,178, +150,156,217,150,151,202, 17,139,104,217, 86,134,143,219,158,155,133,226, 60, 70, 74, 4,143, 86, 61,133, 84,124, 18, 28, 69,140, + 92, 54, 6, 31, 4,187, 90, 38,212,109, 12,105, 13, 32, 82,131,183, 29, 3, 62, 6,148,253,235, 20,117, 53,136,182,226, 11, 68, +223,160,158, 71, 94,118,131, 23,189, 27,186,235,206,191,128,140, 29,138, 77, 28,188, 52,222,167,248,193,139,241,240, 5,125, 77, +229, 41,147, 92, 13,130,187,186, 30, 22, 12, 42, 1, 7, 68,242, 63,126,218,181,216,126,232,204,163, 32,186,254, 57,201,237,240, + 60, 33,103,125,131, 44, 10,148,137,216,206,177,167, 21, 49,120,250, 33,138,180, 68, 17,131,163,233,124, 26,223, 55,131, 29, 76, +233,225, 80, 49, 88,195,244, 16, 29,171,196,112, 24, 25,104,121, 82, 36, 80,142,237,210, 65, 38,134,164, 13, 8,126,128,234, 12, +120, 63, 63, 8, 78, 46,216,235, 74,190, 16,254, 18, 88, 46, 82, 80,203,201,241,138,185,143, 60, 92,118,204,170, 12,231,122,148, + 84, 8, 33, 89,117,150, 74,167,209,247,210, 59, 42, 33, 89, 13,182, 47, 25,160, 11,145,157, 44, 41, 81,173,190, 56, 68,168,244, +179,109, 24,216,240,242, 57,138, 49,166,157,244,124, 60,225,237,215,239,178,217,180, 4,231,240, 49,146, 9,195, 89,179,100, 90, + 86,124,241,205, 91, 52,157,199,185,152,246,223, 50, 37,177, 17, 2,110,128,205,152, 76,226, 58, 71,219,121, 84, 62,184, 23,124, +196, 1,173, 13, 52,222, 33, 7, 38,188, 38, 82, 75, 65,227, 3, 75, 31,169,135,221,144, 18,176, 81, 96, 50,133,206, 52, 54,147, + 8,173,200, 50, 77, 63, 46,121,122,255,152,147,186, 32,142,199,156,103,138,121, 38,209,185,161, 45, 12,182, 46,240,101, 78, 99, + 20,125,136,156,183, 45,139,224,120,208, 52, 44,124,203,229,122, 11,218,134, 88, 87,228,187, 35,124,227,185,228, 35, 93,174,232, + 37,228,117, 78, 89,230,104,163,144, 33, 64,107, 81,214,161,122,143,110, 92, 58,128,173, 45,110, 72,120,141,218,144, 85, 57, 59, +147,146,108,156,161, 42,157,118,178, 90, 18, 43,133, 50, 18,165,210,107,165, 4, 72,165,168, 66, 36, 39, 18, 58,203,172,177,172, +207,206,185,172, 11, 20,145, 85,111,137,202,113, 52,171,120,237, 23,254, 22,111,254,212, 91,188,252,133, 55, 57,222,116, 60,249, +230,215, 56,248,232, 67,222,251, 23,223,166,253,253, 57, 33, 13,228,210,154, 34, 33, 65,136, 67, 60,208,197,247,213,247,142,121, +247,159,124,139, 3,113, 66,244,138,239,127,248,132,211, 63,253,148,187,183, 47, 35, 28,172,165,160,137,176,238,147, 45, 78, 75, +104, 91,203,253,195, 5, 34, 70,158,156,110,168, 8,116, 77,199,166,117, 68, 37,240, 34,114,181,214,252,189, 47,222,224,149,137, +225,105, 27,248, 80,107, 30,223,185,204,111,170,130,223, 89, 5,190,254,233,146, 91, 59, 53, 50,120,172,130,211,165,103,165, 37, + 78, 68,214,173,195,123,143, 36, 98,100,122,109,173, 20,116, 33,160,165,224,112,227, 88,123, 88, 72,201, 34, 51, 44,182,198, 28, + 8,201, 83, 12, 70, 26,158,108, 90,106, 33,217,116, 45, 58,203,217, 52, 3,225, 47, 4, 50, 34,219,165,228,218,172, 38,100, 25, +178, 40,113, 90, 97,165,102,174,224, 97, 19, 8, 66,177, 17,145,163,182,229,149,170,224,104,112,146,252,196, 36,231,118,145,115, + 67,102, 60, 52, 57,162,206,185,191,106,152,202, 2,111, 45, 55, 98,203,184,239,184,148,103,160, 52, 55,243, 28, 73,164,105, 59, +222,221,108, 88,134,128,176, 61,149, 20,104, 15, 27, 41,184,162, 20,103, 66, 17, 85,198,125, 23,168,114,195, 38, 40,138,220, 48, + 42, 38,232,188, 66, 75, 69,192,208,250, 64,102, 12, 2,129,247, 22,109, 36, 74, 39, 87,197,166,105,112,214,113,238, 26,150,221, +154,247,238,191,199, 72, 10, 30,158, 61,229,227,147,199,124,114,124,204,119, 78,206,248,224, 96, 65,152,207,137,237,130,184,216, +164, 60,243, 1,249, 28, 95, 0,177,198, 16,240, 65, 18, 36,120, 41, 9, 3,174,195, 7,247,156, 46,237, 61,174,235,105,219,200, + 19,219, 17, 8,104,145, 88, 25,203,190,193,232,156,181,235, 9, 82,208, 11,193,113,179,162, 23,145,179,222,177,192,211,116,233, +231,134,204, 36,239,184, 41,232,181,162,136, 18,165, 37, 94, 72,140,144,180, 50,129, 90,156,181,136,152,116, 79,224,201,117,142, + 17, 9,239,108,132, 78,201,153, 89, 65,173, 19, 61, 51, 55, 26,163,100, 90,193, 41,205,102,211,162,181, 26, 0,158,105, 84, 77, +244,180,109, 79,244,145,133,237, 81, 62,209, 54,181,119, 56, 33,145,125,135, 14, 1, 17, 3,181, 8,244, 93,159,250, 79,191,193, +218, 64,230, 27,172,181,108, 11,216,142, 9,249, 61,139,130, 16, 2,187, 82,224,189,103, 18,160, 20,129, 76,120, 88, 54,188, 94, + 74,222, 86,146,187, 69,198,142, 52, 92, 49,154,155, 89,197,101,147,244, 60, 19,101,200, 66, 18,240,109,103, 57,103,222, 50,145, +154, 3,219,242,242,168,230,163,174,227, 90,158,241,104,217, 16,148,228, 3,107, 25,133,192, 90, 10, 94, 45, 52, 70, 5, 86, 33, +176,133,160,150,146, 86,192, 76, 72,174,102, 5, 77, 76,248,142, 59,229,232,175, 81,212,165,252, 33,114,239,179,204, 91,173,135, +157,114, 42,248,183, 62,255, 50,243,163,249, 15, 51,224,187, 48, 20,195,129,231, 46,101,242,118,196,161, 8,184, 97,223, 91, 22, + 73, 49, 94, 94,140,224,229, 32,198, 19,168, 60, 79,172,117,161,136,182, 75, 16,123,103, 81, 66, 18, 69, 76,123,236,174, 75,249, +200,171, 21,224,137, 22, 46,103,146,177,150,180, 81, 16,188,227,192,121,118,178,140, 96, 83,190,239,225,106,243, 60,205, 76,136, + 84, 0,171,122,208, 5,196,231, 96,156, 48,116,192, 65, 12, 34, 57,255, 92, 52,199,160,182, 15, 46,173, 36, 20, 41, 11, 93, 12, +215,135,228,153, 41,253,162, 99,183, 3, 90,246, 34, 59, 55,244,176, 89, 66,231,120,108, 35, 91,101,134, 18,130, 34, 10, 70, 42, +237,169, 69,239,201,133,192,185,200, 88, 43,150,195, 13,166,149, 36,120, 40,117,196, 68,193,218, 15,188,247, 56,188, 94, 34,197, +159,166, 53, 73,120, 22, 5,185,190,255,128, 87, 63,247, 38,121,150,209,173, 26,178, 44,231,115,159,125,147, 7, 15, 30, 18, 93, +224,230,173, 27, 44, 22, 29,101,149, 2, 97,178, 76,147,105,201, 38,122,162, 75, 66, 26, 41, 35,174, 75, 59, 91, 31, 82,216, 75, + 80,113, 24,141,201, 20,150, 35, 21,106, 80, 72,119, 33, 97,111, 51, 41,216, 49, 9,113, 42,226, 16,101,172, 36, 85,166, 89,155, + 36, 12, 68, 75,186, 81,206,159,220, 63,230,211,205,130, 42, 6,214,125, 67, 71,160,141,129, 40, 37,107, 17, 89, 74,146,120, 69, + 10,142,133,103,225, 98,194, 84,146, 34, 46,139,178,194, 4, 65,233, 33, 76, 75, 70, 42,199, 40, 73, 27, 3,217,186,199,108, 85, +137,100, 38, 37, 2,208,157,199,204, 91,212,188, 37,156,174,209,157,101, 76,100, 44, 52,133,214,120,173,113, 70, 34, 50,133, 53, + 10,151,168, 52,196,182, 71,103, 10, 97, 20, 81, 74,132, 82, 72, 69, 42,244,101, 70, 81,231, 20, 69,193,254,107, 55,152, 92,219, + 98,182,232,217,139,146,251, 49, 18,191,252, 58,175,189,121, 21, 45, 20,162, 42,153, 92,153,146,141,183, 17, 93,228,225,241, 33, +155,143,151, 4, 28, 1,193,115,170,182,127,246, 16, 67,137, 7,137, 64,242,232, 27, 15,249,250, 63,253, 54,159,252,230,119,121, +252,123,223,227, 91,239,191,207,207,126,245,109, 92,227,152,175, 59,214, 79,151,228, 71, 11,126,229,127,250,101, 14,191,245, 14, +155,119,223, 39,223,157,177, 62, 95, 50, 63,111, 6,203,141,192, 9,193,153,202,169,162,229,245,189, 49, 95, 59, 89,243, 63, 31, + 54,124, 48,132, 13,233, 76,163,198, 57,241,214, 54,247, 39, 37,183,125, 96,177,232,104,242,140,243, 85,199, 92,102,136,214, 99, +178, 68,137,195, 59, 74,163,105,136, 8, 4,199, 93,143, 53,112,224, 20,231,117,205,122, 84,242, 56, 51,220, 31,229, 28,103, 5, +227, 73,206,104, 58,225, 32,192,178,237,176,243,115, 86, 46, 80, 25, 69,239, 58, 10,229,168,132,166, 54,134, 66, 27,162,150,220, +219, 4, 30, 58,135,146, 57,167, 38,103,187,172,216,213,169, 27, 26,153, 12,175, 4,119,243,146,253,178, 64,106,205, 86,145, 51, + 18,201, 42,187, 95,143,201,180,230,149,113,205, 36, 47,217, 31,215,148,218, 80,200, 12, 27,225,254,106,193, 19,107, 89,132,200, +202,123,118,242, 18, 75, 96,173, 32, 70,137,149, 10,175, 52,103, 82,115, 42, 53,175,151, 5,159,203, 51,238,148, 53, 51, 97,112, + 82, 34,148,193,105, 69, 8,145,198,167,166,192,123, 75, 8, 61,193,167, 81,190,239, 58, 86,221,146,229,234,156,147,239,191,203, +103,174, 94,226,143, 62,125,204, 59,143,142,120,239,116,201,123, 7,199, 28,159,157, 67,183, 33, 10, 71,108, 59, 34, 63,204, 91, +127, 33, 82,235,217,232, 58,132,231,143, 11,183,250,197, 93,116, 81,220,189,239, 89,197,192,131,181, 35, 55,130,214, 91,206,109, + 75,144,130,149,183, 68, 36,143, 54,115,172, 16, 60,106,214,172,162, 39, 6,112, 66, 16, 68, 98, 58, 40,147, 17, 68, 64, 75,133, +200, 52,113, 72,124, 68,107, 86, 33, 32,135, 96, 43,149,105,108,235, 24,103, 57,153, 76,204,248,220,100, 56,111, 41,139,156,145, + 49,195, 86, 54, 75,107,172, 16,200,180, 65,105,141, 50,154, 24, 61,182, 79,133, 89,196, 64,183,238, 16, 17,214,253, 6, 25, 61, + 39,157, 69,135,148,230,185, 27,147,144,176, 22, 2, 17, 29,222, 90, 84,112,132, 24, 41,125, 96, 26, 60,165, 20, 76,130,167, 6, + 74,169,152,136, 84,231,106, 18,226,122, 23, 40, 17,204,136,220,201, 50,238,102,154,109,101,216, 42, 71,236,154,154,151, 70, 83, +246,138, 41, 38,194,180, 26,145, 73,137,150,130,113,145, 81, 41, 67,239, 3, 69, 76,147,213,153,202, 56,114, 61, 91,218,176,116, +142,243, 62,242,129,237, 56,141,240, 52, 6,198, 49, 48, 27,228,104,183,170,130, 16, 5, 19,149,177,165, 12, 59,166,162, 9,158, +207, 84, 51,118,140, 70,248,191,142,250,253,153,208,234,197,162, 62,180, 47,106,176,176, 33,152, 63, 57, 75,133,171,117, 47,140, +156,197, 11,123,119, 1,190, 75,194, 20, 25,147,120,142, 0,186, 74, 49,114, 91,227, 84,248, 7,131, 62, 49,133,195,199,182,135, +178,130, 96,169,162, 99, 52,100,165, 79, 99,160,233, 91, 38, 70,209,217, 62, 9,216, 66, 72, 59,245,144,212,141, 74, 42, 66,232, + 17, 81, 50, 35,208,216,164, 82, 60,237, 44,222,250,148,225,173, 92, 74,251, 42,203,103, 96,154,164, 68, 31,186,110, 35,146,138, +127,224,185, 99,195,115, 2, 94, 28, 10,189, 24,162,240,218,102, 32,202, 57,112,195,168,222, 69, 40,205, 51,150,123, 18,171,197, +231,246, 56, 63, 48,166,189,133,188,100, 82, 42,148, 79, 52,182, 82, 41,162,183, 88, 33, 49, 33,177,212, 55,206,179,157,105,172, + 76, 41, 94, 94, 10,102, 81, 80, 69,207,147,139, 72, 82, 23,210, 59,187,247,131,203, 64,254, 57,112, 70,190, 61,227,230,237,155, +116, 93, 67,211,108, 56, 62, 60,167,183, 45,222, 11, 66,200,113,125, 96, 52, 41,201, 11, 77, 46, 37, 82,165, 53,132, 37, 34, 66, + 26, 5,249, 16,159,197,185, 71, 98, 18,217, 9,153, 68,249, 17, 42,117,161,221,139, 76, 85,154,168,184,232,137, 81,146,105,153, +242,198,133, 72, 97, 20, 46, 89,115,188, 73, 40,211, 62, 83, 28, 29,173,152, 68,205,164,168,104,148,164, 42, 38,136,170,100, 60, +154,146,107, 77,102, 12, 70,128, 42, 50, 10,169,240, 90, 64,150, 83,153,156, 75, 89,129,247,158,124, 92, 33, 71, 5,178, 80, 84, +251, 35, 74,169, 48, 33, 82,180,142, 48,201, 16, 90,161, 98,130,238, 25,231,201, 26,139, 89, 89,100,215, 36,245,171,212,140,132, + 98, 90, 24,178, 92,177,214,146, 53, 73, 28, 22, 50,133, 68,144,109, 28,213,253,115,196, 36,195,103, 26,151, 15,200,211,224, 49, +157,199, 28,204, 81, 43, 11,215,167,232, 89, 77,121,125,135,124,107,204,150,211, 92,113,145,122,209,144, 61, 90,146,159,244,248, + 15, 14, 56,179, 61,227, 75, 19,222,250,220, 43,236,255,141,215,248, 65,213,225,254,244,152, 56,252, 39, 0,161,114, 68,108,249, + 7,255,233, 23,248,227,119, 22, 8,223, 13, 61,187, 76,145,184, 72, 4, 26, 30,117,252,237,255,224, 75,108,154,150,205,241,138, + 98, 57, 71,111,230,124,229,141,187,220,249,177, 59,212,183,111,210, 89,135, 11,130,102,216,223,197, 62,105, 47,100,111,249,181, + 63,250, 38,149,174,248, 71,135,158,249,178,195, 91,139,111, 45,221,186,167, 93,117, 8,155, 50,193,139, 42,231,111,142, 4, 71, + 94,112,214,123,150,235, 22,163, 36,163, 82,226,101,196, 74,197, 82,128,244,145,141,117,156,119,142, 69, 11,199, 85,198, 81,102, +120,164, 36, 79,144, 92, 53,138,191, 49,202,184,189, 83, 51,173,115,150, 94,240, 3, 97, 56, 90,174, 97, 53,231,160,153,115, 41, +215, 20, 17,148,201,208, 70, 17, 98, 96, 29, 35,153,144,156,249,200,227,229,156,187,121,150,150, 20,166,224,238,168, 96, 17, 18, +244,100,171, 44,217,173, 10, 74, 83,208, 42, 77,235, 83,225,216, 42, 74,118,137,212, 89,134,150, 26,149,143, 82, 98,154,209, 28, +117, 14,173, 51, 22, 49, 34, 72, 22, 84, 27, 3, 27,161,137, 3, 14,121,172, 52, 39, 66,210,168,130, 45, 37,121, 43,147,108,153, +130, 66, 24,118, 76, 70, 46,147,122,255,160,237, 88,218, 14,223,247,156,247, 13, 27,219,114,214, 52,116,109,203,106,181,228,225, +201, 99,142, 78,142,120,116,240, 20, 58,199,225, 39,143,225,201, 99,226,242,156,216,109, 82, 19, 19, 2, 81,133,225,192, 30, 94, + 40,222,127,182,152,243,194,116,231,135,163, 84, 46, 30, 23, 41,168,238,226, 97, 19,186,249,163,243,142,127,117, 62, 71, 2,173, +183, 28,186, 13, 79,109,203,169,183, 44,188,229,180,111,232,189,163,245,150, 60, 43,113, 3,231,189,146,233, 64, 56, 49,134, 77, +215,165,224, 24, 2, 77,140, 72, 4, 46, 6,164, 46,112,174, 35,203,179,100, 15,149,146, 66, 43,172,143,148, 69,158, 4,134, 17, +170, 44, 27,166,141,138, 92, 25,162,212, 4, 36,173, 13, 8, 23,105,250,134,205,166,165,239, 45, 49,244,201,135,142, 39,122,143, +119,150,169,209,136, 16, 88,251,142, 82, 72, 68,240,248,190, 69,138, 64,231, 58,180, 15, 72,231,200,134, 98, 45, 66,100, 91,164, + 73,107, 37,161,148,146,145,148,204, 98,138,161,222,146,134,155,245,132,153,206,153, 20, 21, 91,227, 41, 35,149,177, 55,217, 99, + 55, 31, 49, 85, 25, 87,183, 46,145,133,136, 70, 50, 45, 42,108, 76,113,211, 82, 72, 78,241,136, 8, 31,119, 27,154, 24, 89, 17, + 88, 71,193,119, 54, 27,130,208, 60,244, 61, 45,130,147, 16, 24, 33,120,171,206,217, 56,203, 75,101, 73, 64,177,109, 10,142,250, +134, 55, 71,187,116,161,227,122,189,195,189,118,245,215, 84,191,251, 33, 17,236, 17, 13,114,221, 0, 0, 32, 0, 73, 68, 65, 84, +226, 54,113, 46, 41,219,141,121, 62,166,190, 40, 38,249, 16, 69,122,225,235,116,225, 5,181,248, 32,132,243,118,160, 3,248, 68, +122, 26, 15,100, 33, 53,208,231, 46,166, 3, 97, 56, 12, 72, 65, 78, 10, 57,176, 93,203,158,214, 28,246,237, 16, 81, 60,116,166, +171, 53,204, 87,208, 89, 38,117,218,255,120,160,145,130,104, 61, 74, 73,186, 62, 36,142,114,136,116,157, 69,170,152,210,221,130, + 29,124,170,102,136,105,189, 32,198,169,139, 25, 86, 42,136, 66, 12,227,250,161, 19,238,251,116,141,189, 75,187,236, 48, 76, 38, + 98, 76,235, 9,157, 63,139, 9,140,109,178,192,141,148,162,247, 33, 9,251,172,135,104,193,201,180, 20, 90, 45, 56, 93, 90, 84, + 93, 32, 69,226,141, 71, 9, 19, 20, 14,143,139,158, 32, 34, 42,200, 36,110, 19,130, 60,192,177,237,113, 90,113, 89,195, 97,231, +159,171,244,197,160,107,136,195, 26,228, 5,104,253,163, 15, 63,226,179, 63,249,227, 9, 9,233, 3,173,239,137, 65,144,235,140, +157,221, 61,242, 34,167, 42, 50,198,101, 78,110, 20, 34,130, 80, 2, 61,252,123, 33, 68,178, 66,167,216, 85, 23,136,131,100,162, +115, 46, 69,125,170,212, 63,154,139,179,161,136,233,252, 18, 35, 35, 45, 40, 5,100, 74, 83,168,228,245,246,131,240, 74, 12,216, + 80,149, 25, 22, 89, 70,191,182,212, 58, 97, 92,215,221, 6, 27, 60,189,107, 19,220,196,123,148,201,185,122,229, 38,211,122,198, +100, 54,227,242,246, 30,179,170,198, 8, 67,173, 13, 35, 33,153,236, 78, 40,140, 70,219,136, 44, 13,126, 0,207,100, 82,224, 51, +153,130,185, 66, 68,217,128,233, 60,210, 38, 84,107, 52, 10,101, 82, 54,187,201, 85,202, 73, 55, 10, 35,192, 32, 41,140, 66,231, + 26,187,233,153, 29,116,240,104, 5,109,143, 47, 21, 20, 26,169,147,175, 93, 54, 1,185,238, 16,147,114, 72,235, 3,129,194, 92, + 25,147,141, 12,246,116, 69, 55,239,105, 30,156,112, 37, 56, 94,201, 13,227, 66, 51,207, 53, 87,246, 39,188,245,153, 59,132,105, + 75,245,214,132,203,111,223, 68,124,110,159, 47,254,199, 63,199, 23,126,226, 10,127,255,239,254, 44, 89,222,240,237,111,126,130, + 28, 60, 6,233,221,147,182,239,146,192,233,201,199,236,190,246, 42, 58,244,200,222,167, 4, 47, 37,209, 90,178, 38, 38,176,144, +119,116, 65,112,190, 88, 34,176,248,213,138,222, 90,156,204,249,181,143, 62,193,127,242,125,194, 39, 31, 19, 30, 63, 34, 60,252, +148,112,178, 32, 60, 58,160,107, 2, 99,239,249, 79,174, 22,124,241,202,148,173,105,206,135, 75, 71,179,108,112, 66,160,165, 71, + 32, 56,247,145, 50,194,201,166, 73, 34,178, 16, 88, 91,193,169, 80,180, 90,178,118,129,214,121,254,118,173,249,185,253,146,215, +102, 25, 61,138,211, 32,120,191,113, 56,173, 57,148, 38, 9,180,150,167, 24,215,147, 69, 64,102, 88, 37, 89,245,176,238,122,116, +111,169,136, 56,219, 49, 82,129,109, 19, 41,178, 12,239, 36,186,200,145,217, 8, 35, 13,101, 85,209,184,200, 89, 20,120,147, 49, + 14,142,203,163,154, 82, 41,164, 54,152, 40, 81, 90, 35,133, 64, 72,195, 19,239,145,210,240, 88, 4,148,144,116, 41, 35, 47, 29, +200,149,166,208,249,128, 39,141,188, 82,100,188, 42, 35,123, 72,138, 44,167,150,130, 17,146, 67,219,241,131,166,229,164,223,112, +220,119,124,212, 44,121,186, 89,114,116, 62,231,241,147, 39, 60,190,255,132,179,123, 15, 89, 31, 29,192,106, 9, 7, 39,131,246, + 40, 29,158,163, 74,107, 71, 84, 24,232,152,241, 47, 12, 74,249,255, 82,224,253, 11,223,159,141,227, 93,143,235, 58,238,109, 60, +223, 94,174,105, 68,228,219,203, 13, 39, 6, 30,186,200,121,148,144,231,228, 91,151,232, 84,202, 81,232,133,194, 5,143, 82,138, +121,223,225,148,196, 59,199,121,219, 64,132, 54, 56,132,179,200,152, 68,164,209, 90, 54, 62, 48, 46,203,244, 60,155, 68,111,204, +148, 76,177,164,190,199,199, 72,136, 2, 33, 37, 82, 36,253,135,183,145,179,118,205,178,235, 89, 7,203,218,182, 52, 33,176,218, +172,232,250,158,211,102,131, 11,158,243,182,195,117, 29, 83, 13,190,239,145,206,146,135,128,237, 58, 42,161, 32,132, 20,144,131, + 64, 17,153, 74, 65,231, 29,219, 66,160,165, 96, 36, 36, 59, 58, 99, 58,154,178, 95,212, 76,243, 17, 85, 81,145,231, 35,234, 98, + 76,105, 74,242,188,102,183,170,153,228, 57,179,186, 70, 56,199,100, 60,166, 48, 57, 10, 65, 41, 82,116,120, 16,137,115,242,196, +245,212,198,176,112,145, 54, 6,126,176,110, 25, 73,201,119,108, 71,140,105,149, 32,130,227,117, 99,232,156,227,237,209,132, 15, +218,150, 61,169,177,193,242,198,100,155, 15, 55, 43, 62, 51,222,229,187,103, 7,252,248,222,149,255, 31,150,182,240,124,124,251, +108, 44,159, 13,194,176, 11,116, 42, 67, 76,222,133, 26, 62, 14,133, 94,136, 84,236,132,120, 62, 32,106,237, 96, 63, 75,169, 73, +148, 58,221,176, 82,253, 48, 74,118, 24,141,251,206, 83,233,228,121, 63,233, 82, 33,151,128,240, 73,248, 64,103, 97,221,128,111, +233, 84,218,223, 33, 20,219, 3, 12, 69,249,200, 88, 72, 22, 33,125,208,117,109, 32, 10,255,124,140,222,117,105, 5,112, 1,212, +201,139,212,133, 63,139, 50, 29,138, 54,131, 98,191,115,207,119,234,132,193,242, 22,158,157,164,211,255, 51,168,250, 93, 76,138, +120, 37,233,219, 33,231,188,237,159,219,226,164,127,190,247,206, 37,139, 54,114,212, 56,164, 12,212, 8, 54,222,145,107,133, 33, +162, 93,160, 23,129, 12,137,141,224,162,195, 40, 69,219, 57,162, 16, 52, 65,208, 55,125,250,157,220,102,152, 46,252,217,193,220, + 96, 24,216,155,113,249,242, 21,144,130,233,100, 11,219,116,140,235, 17,123,151,118,168, 70, 57, 91,147, 2,136, 24,165,159, 49, +131,252,160,103, 80, 67,208, 11, 2,156, 15, 68, 23,177,189, 35,120,200,242,148,128, 55,214, 34, 9,229, 34,100, 82,166,167,139, +148,140,214,133,200,169,117, 4, 17, 49, 33,210,251, 64, 39, 65,169,100,157, 49, 74, 97,234,156,229,167,135, 28, 46,150,172, 68, +164, 87,154, 94, 27,114,157,113,119,251, 18,183,182,246,169, 39,219, 76,102, 51,174, 94,221,229,141,187,215,249,201,183,110,145, + 77,167,212, 91, 83,246, 71, 53,178,117,100,147,146, 50,203,160,115,104,163, 17,179,196,149, 86, 90, 17, 10,153, 44,121, 17,164, +243,136, 65, 71,208, 35,240, 90,130, 78,153,241,218, 40,140,145, 20, 82, 81, 74, 40,163, 72, 0, 27, 31,121,231,196,113,184, 95, +210,198, 21,253,147, 19,186, 71,167,248,117,139, 40, 51, 68,110,144, 34, 32,164, 70,230, 26, 25, 34,162, 75,239, 5, 17, 98,250, +187, 42, 71,204,114,244,245, 49,249,172, 68, 25, 69,172, 37, 49,151, 72, 9, 7,167, 43, 58, 89, 82,141,102,136,106,196,143,239, +141,249,207,189,227, 11, 46,242,155, 31,220,231, 35, 17,120,237, 43,183,217,125,185, 96,116,189,100, 45, 3,156,244, 40,224,171, +255,240,231,249,151,255,195, 59,124,231, 87,190,206,171,127,231,243, 20,206,162, 67, 64,134, 64,101, 45, 7, 77,143,127,250, 41, + 31,254,234,183,216,236,103,216,245,146,157,245, 9,187,243, 83,182,207, 14, 16,177,227,126, 16, 92,157,108,115,125, 52,166, 48, + 25,186,219,240,213,246,140, 59,221,130,141, 50, 60, 93, 52,188, 62,202,185, 57, 46,248, 90, 11,191, 83,228,168, 33, 71,104, 99, + 10,140, 49,196, 40,240,235, 53,210, 57, 92,107, 57,183, 61, 93,159,172,138,197, 98,141, 88,110,232,187,192,219,181,230,213,105, + 65,110, 52, 39,125,228, 55, 14, 27,150, 4, 76,157,145, 85, 37, 93,208,220, 59, 58,228,252,228, 0,225, 26,136, 17, 43, 20, 62, + 6,214,109, 79,227,122, 70, 64,180, 61,133,134,138,180,139,205,140, 36,203,106,234,178,164, 55,134,141,147,136,178,164,172, 70, + 4, 23,152,106,205, 56,215, 84, 58,199, 40,147, 24, 11,121, 18,226,158,186, 64, 39, 53,231,209,115,210,247, 20,164, 3,209,102, +200,189,184,156,101,156, 73,201, 76, 41,150, 81, 48,149,145,215,178, 20,222,179, 21, 61, 75,215,179, 10,142, 7,182,227,215, 79, +207, 56,177, 27,150,139, 57,113,177, 72,141,200,201, 25,177,109, 97,125,142,144, 33,133, 96,245, 3,179, 67,166,136,105,140, 68, +244,225,133, 83,114,130,217, 64,248, 43,125,124,255,168, 34, 31,254,146,226,238,242, 12,167, 75,156, 16, 56,105,120, 98,114,206, + 46, 93,226, 81, 94,115, 54,222,101,119,186,203,108,119, 31, 47, 36, 50,175, 88,106, 73,231, 45,182,239,105,186, 22, 99, 12,193, + 57,154,152,178, 36,186,118,131,183, 22,221,119, 8,151,162,108, 51,239,144, 17, 86, 93, 71,149, 25,182,124,164, 9, 30, 33, 37, + 89,219, 13, 33, 43,142, 82,128,243, 14, 47, 37,116, 9, 39, 61,119, 61,139,232,120,218,119,184, 64, 58, 68,132, 72, 46, 2,219, + 72, 70, 2,218,174,199,250, 84,107,174,229,134,130,136,114,158,145, 78,246, 75,233,147, 48, 80, 18,153, 42,141,140,130,189,114, + 4, 17,246,171, 41,187,229,132,253,233, 30,120,207,184,218, 66,153,156,158,200,118, 61,195, 71,136,202,144,143,106,118, 77,193, +168, 30, 97, 16, 20,121, 73, 32,173, 76,147, 36, 77,162, 17,116,125, 79, 67,164, 18,146,135,182, 67, 16,121,220,116, 76,144,252, +174,179, 67, 51,155,106,233, 76, 74,238,249,192,127,180,179,205,135,253,134,175, 20, 21,167, 10,246,178,130,247,230,167,252,244, +246, 62,239,109,150,252,196,222, 85,126,235,224,225,191, 38,246,251, 51, 16,141, 25,184,237, 67,215, 13, 67,142,164,122,110,233, +202,205,115, 97,220,139, 7,128,126,192,154, 74,157,210,140, 80,169,216, 5, 63, 76, 1,178, 36,170, 67,160,180, 98, 44,147, 7, +247,172,237,168, 68, 26, 3, 27,159,130, 71,112,126, 16,135, 13, 30,242, 24,241, 81,242, 90,145,161, 73, 5,232, 40, 68,116,112, +236,104,201, 88, 72,142, 93,155,198, 87, 23, 42,241, 48,164, 50,169, 60,173, 8,172, 27,210,214, 6, 73,129, 15,233,141,166, 72, + 42,255,174, 31,236,119,109,242,224,251, 54, 21,244, 23,167, 27, 58, 79,227, 35,165,211,225, 70,203,231,192, 26, 49, 8, 1, 47, +212,243,118,216,215, 91, 7, 93, 67,140,146,243, 85,199,198,192, 52,164,147,164, 28,222,137, 54,198, 52, 60,144, 49,217,110,172, + 67,239,237,241,157,165,227, 53,229, 56,246, 49,121,240,237,176, 99,151, 60,103,209,191,240,245,224,253, 31,240, 99, 95,126, 27, +162,160, 91, 55, 52, 93, 75, 12,112,114,188, 32, 56,205,229,253, 41, 50,138,164,110,207, 82,184, 9, 49,237,246,189,136, 88,231, + 81, 33,210,181, 46,105, 1, 69,234,180,145,145,202,104,106,157,186, 25, 31, 35, 27,235,159,229,255,246, 62,157,180, 54,222, 51, +239, 35,185, 74,123,248, 16, 97,233, 28, 77,136,120,163,104,148, 98,215,148,232,233,140,107,245, 4, 47, 12, 74,101,140, 77,201, + 91,147, 45,234, 24, 57, 62, 61,161, 95, 47,144, 62,224, 54,150,178,183, 76, 16, 92,158, 86, 76, 47, 79,241,163,156,172,177,140, +148, 34,100,169,135, 21,153, 70,150, 25,162, 48,132, 33,198, 81, 93,160,252,125, 28,130, 43, 36, 82, 43,116, 72, 7, 12,161, 69, + 50, 63,132,136, 70,144, 41,137,138, 17,233, 61, 15,207, 44,246,220,226, 99, 78,254,210, 22, 71, 33,195, 44, 55,184,239, 31,208, +172, 91,226,162, 69, 54, 29,172, 59,226,162, 33, 62,221,224, 30, 29, 33, 90, 75, 92, 54, 72,169,209,181, 70, 79, 42, 86,179,130, +197, 86,193,114, 82,225, 70, 37, 22,193,193,201,138,213,233, 41, 70, 6, 68, 94,242, 31,206, 74,174,232,140, 42, 42, 38,120,238, +105, 69, 94, 20,140,119, 46, 49,189,122,137, 27,175,220,226,246, 87,238,144,125,249, 37,254,179, 66,243,210,207,222,225,105,181, +224,157,255,254,143,248,147,223,120,151,207,127,229, 22,255,227, 63,249, 29,142,190,249, 1,211,109,197,150, 44,120,245,213,125, +174,120,203, 79, 42,193, 87,203, 49,111, 86, 51,102,249,136,135, 70,179, 46, 39,124,245,165, 43,188,117,117,143,219, 87,118,184, +148,143,248,169,157,171,188, 49,221,230,229,224,248,189,222,242,255, 60, 60, 69,202,130,127,220, 75, 78, 51,197,189,113,201,189, +237, 17, 31,205,106,244,164, 98, 60, 42,208, 42,163, 95,108, 56, 63, 95,128,136, 40, 29,185,225, 54,124, 81, 9,222,232, 87, 92, + 19,158,243, 78,176, 18,146,167, 22,254,217,131, 13, 31,158,174,233,137,200,113,201,206,172,228,242,168,166, 18, 37, 11, 20, 31, +157,159,115,182,217,160, 67, 67,215,183, 40,231, 19,238,183,235,217,207, 37,165, 72,110, 11, 39,101,138, 90, 21,145,133, 11,228, + 82,160,133,164,115, 22,215, 7,140,132,105, 93, 83, 73, 67,149, 41,114,149, 72,123, 81,192,153, 13,116, 49,221,215, 22, 40,149, + 98, 41, 36, 75, 36, 47,231, 25,175, 21, 53, 39, 81, 98, 5, 92,215,138, 93, 37, 57,113,129,195, 16,249,183, 71, 99, 58,151,238, +199, 39, 1,190,190, 90,178, 21, 45,135,135, 39,233,253,127,190, 30,216, 26, 46, 9,111, 59,143,232,134,184,228,139, 28,114,169, +147, 94, 98,208,246,136, 48,172, 38, 73, 90,158, 11,144,231, 95,244,248, 75, 11,187,214,196, 34, 35,150, 37, 33, 31, 19,242,138, + 80,143, 8,245,132,176, 53,195, 95,217,199,223,186,140,187,178,143,187,126, 11, 55,221,198,141,118,233,138, 17, 55,242,146,237, + 73,133,208, 6,235, 3,167,203, 6,103, 91, 68,244, 24,231,232,135, 88,236,190,217,224,125,106,128,100,183, 38,244, 45, 83, 34, +218,182, 20, 49,160, 9, 72,215,147,133, 68,165, 28, 41, 77,215,247,168,220, 16,218,110, 88, 69,166,130,231, 87, 29, 70, 40,230, +237,134,181,237, 57,179, 13,202, 7,100,244, 20, 65,240,165, 50,227,181,170,224, 70, 89, 48, 53,130, 50, 66,215, 56,148,128,137, + 18, 76,149, 98, 44, 53,106,200,166, 24,101, 25,219,121, 77,129,160,154,108, 39, 52,116, 86,176, 83,207, 64, 42,182,234,105,154, +234,148, 19,108,244,228,229,132, 50,171, 88, 71,203,104, 60,101, 84, 86, 76,165,162, 30,143, 17,222,145,149,229, 51,108,118,136, +129, 60,203,211,164,161,239,176,222,179,118,150, 35,223,209, 6,199,161,235,153,119,158,223,107, 27,162,179,105, 10, 3,140,165, +100, 25,225, 31,236, 76,248,229,179, 37,191,184,181,197,159,180, 13, 87,165,226,126,219,240, 51,219,251,252,225,114,206,151,234, + 41,255,114,121,202,191,121,227,206,191,166,148,182, 11, 16,188,139, 41,199, 91,188,128,145, 45,179,231, 9,108, 65, 13,187,105, +249,188,219,247,110,240,153,155,231,184,216,222,131,242, 84, 49,176,233, 3, 85, 85,160,131, 39,148, 37,141,119,196,102,195, 56, +207, 57,219,180,228, 82,176,177,142, 92, 11,172,181,100, 34, 69,126,166,159,153, 65, 88,131,148,236, 23,146, 54, 66,239, 29,185, +130,235, 74,243,212, 5,178, 40,208, 56,240, 58, 21,226, 63,155, 62,183, 57, 79,227,248,233,236,249,117,108, 6,150,123,166,211, +206,126,211, 63,247,226, 67,218,203,255,168, 44, 21,111, 65,141,135,160, 23,255, 67,214, 54,138,148, 18,151,186,127, 9, 34, 7, + 29,210,239, 0, 16, 59, 32,227,248,112,133,218,139, 92,178,130,221,188,160, 42, 13, 83,224,208,123, 64, 82, 2,141, 81,168,195, + 67,126, 66, 73, 22, 62,114,213,120, 30,106,153, 18,220, 46,172,117,127,193,215, 39,247,238,115,247,206, 93,188,116, 24,163, 80, + 66,113, 54,159, 51,221,154,114,112,176,230,234,229, 9, 40,137,136,130,177, 17, 44, 8,184, 76, 17,219, 52,134,180, 49, 32,181, + 72, 1, 36, 34, 29,220,188, 77,138,239,165, 76,250, 66, 41, 32, 87, 41,172, 38,196, 52, 94, 35,132,164,234,143,158,115, 11, 15, +186,158,206, 57,114,160, 48,146,210, 24,150, 34,242,250, 94,205,149, 60, 35,168,136, 50,154,229,201,146,147,179, 99, 26, 21,217, + 22, 5, 63, 51,221,166, 46, 75,182, 46,141,209,163, 28,217, 69,108,105,136, 70,210, 58,199,165,221, 9,106,119, 76, 53,239, 89, + 57,203,121, 8,228, 49, 32,137,104,163, 80,133, 30,244, 21, 32,181, 67, 12,150, 74, 37, 4,194,250,180, 22, 25,226, 99,133, 15, +105,250,137, 74,163,238,232, 9,153,230,223,248,220,140,227, 71,107,138,203, 91,204,246, 74,158, 78, 86, 60, 62,172,177,149, 37, +211,145, 8, 92,162,227,180,105,185,254,210, 62,157,236,249,214, 31,124,135,187, 69, 75, 49,170,200,166, 19,140, 74,153,235, 31, +182, 13, 7, 25,124,235,227,251,100, 85,141, 81,146,163,245,138, 27, 59,151,144, 1,166,221, 49, 71,118,143,203, 82,161, 0, 17, + 2,215,102, 99,108,132,166,245, 44, 59, 75,159, 37,182,194,127,153,149, 76, 17,252,164,146,228, 63,253, 83,252,224,115, 43,234, +227, 67, 54, 31,126,143, 95,124, 99,151,229,106, 13,167,115, 94,223,209,236,230, 37, 86, 73,176,145,220, 36, 91,209,182,140,188, + 33, 34, 97, 58,230,234,222,140, 81,153, 19, 4,236, 8, 69, 17,210, 65,108,164, 4, 63,119,220,240,251,173,227,151, 63,124,140, + 95,156,227,110,222,132,151,247, 97, 84, 32,164,224, 88, 75,222,172, 43,222,190, 50,130, 43, 99, 62,125,103,206,131, 39,247,153, +246,107, 94, 25,101,236,196, 64, 94, 84,220,113, 29, 31,206,159,242,127,124,175,225, 35,149,232,100, 58,147,196,160,216,180, 26, +145,101,108,215, 57, 87, 94,185,206,102,123,130, 59,188,196,236,248, 35,246,215, 11,114,215,242, 56, 43,248,104, 25,153, 24,197, + 90, 20, 68,165,200,138, 60,241,190,157, 37, 68,201, 44, 51,116,222,178,233, 28, 83,173,200,202,140, 3,219,225,188, 64, 27,201, + 90,192, 72, 41, 64, 49, 95,109,208,178, 96, 37, 90, 78,176,236,100, 5, 51, 41, 89, 57,207, 29,109,240,209,113,179,204, 57,160, +229, 82,208,140,149,230,172,111,121,173,204,112, 68,126,165,177, 60,104, 58,246, 11,197,217,186,101,108, 20,244, 61,213,100,196, +230,124,158,166,120,157, 27,178, 28,210,174, 42, 14,152,103, 49,196,184, 70, 13,194, 5,162,145, 63, 84,164, 5, 36, 46,190,115, +127,174,120,191, 88,192,127, 84, 65, 39,207,146,190,167,168, 17, 87,174,240,229,235,151, 41,178, 49, 31,135,192,227,205, 26, 17, + 93,226,238, 3,152, 10, 17, 83,116,109,180,142,168, 3,149,146,136, 34,167,111, 28, 90, 70,150,237,146,245,106, 78,219,183, 76, + 67, 67, 57,217,162,105,150, 88,219,130,144, 8, 2,210,123,116,240,212, 82, 80,111,230, 20, 58,103, 25, 28,151, 90,199, 90,103, +180,202,160, 17, 44,108, 79, 37, 20,174,235, 25, 27,205,122,189,192, 75, 1, 93, 64, 11,201,252,252,156, 85,136,172,250,134,162, +119, 72,239, 16,120,246,137,220, 44, 74, 10, 37, 81, 49,176, 4,156,118, 52,163,140,104, 35, 99, 97, 24,229,154, 45, 93,226,189, +103, 42, 20, 54,146,220, 42,179, 75, 4,239,240,163, 29,172,235,144,229,104, 64,177, 26,148, 78, 77,204,246,100,139,229,102, 73, + 94, 84,132,168,201,164,129, 76, 49,174,199,216,182,101, 50,174, 17, 46,164,120, 89, 36, 89, 38,177, 93,159, 8,155,218, 48, 95, +156,178,244, 61,171,174,225, 9,145,123,155,150,247,205,208, 60,102, 25,248,228,192, 90,153,146,255,250,210, 22,255,237,193, 41, +255,221,141,171,252,227,167,135,252,253,237, 41,247,108,207,141,114,196,255,122,112,192,191,119,233, 18,255,124,121,206,191,123, +233, 26,191,127,248, 20,197,206,221, 95, 34, 31,216,225, 38, 27,196, 96,234, 57,149, 44,252, 21,198, 57, 90,167, 16,147, 11, 75, + 26, 47,140,213, 61,207,169,112, 23,208,149, 11,113,221,179, 64, 4,159, 58, 94,235, 83, 39, 92, 21,100,163,154, 24, 35,151, 71, + 37, 85, 8,200, 92,147,245, 14, 19,192, 32,152,219, 62,177,197, 67, 36, 58,139,119,201,228,227, 90,151, 14, 23, 82, 38, 21, 57, +201, 74,214, 10,197, 37,173, 89, 74,168,133,102,233, 29, 19,173,105,188,163,139,146, 77, 8,233,116,244,103, 89,233,145,244, 4, +247,107,200,202, 84,152,241,233,119,189,232,212,173, 79,187,180, 24, 6,205,192,160, 48, 15, 46, 61,135,179,173,244,221, 13, 7, + 13, 72, 99,125,212, 48, 13, 48,195,140,203, 13,227,254,152,126,143,224, 94, 88,111, 12,138,124, 21, 89, 55, 29,135, 86,241, 82, +161,120,106, 29, 82,169,148, 74, 23, 19,205,205, 13, 7,129,167,173,227,212,246, 44, 93,196,218,144,198,250,222, 15,215,240,163, +191,238,189,247, 33,175,252,216,103, 40,234,146,172,168,184,125,247, 37, 66, 23,147,208, 79, 73,102,211,154, 66, 43, 2,130, 60, + 87, 73,188, 31,160, 15,150,174, 77, 98, 63,231,211,148, 48,248,128,141,129, 73,101,104,123,143,144, 2, 45, 34, 82,165,209,123, +231, 35,185, 86,212, 90,210,184,144,124,236, 33,210,249,192, 73,219, 19, 34, 84,185, 73,147, 1,163,120,184,105,185, 34, 97,247, +251,167,156, 29,156,210,172, 55,188, 90, 21,252,120, 61,229,198,254, 22,179,237, 9,123,121,201, 40, 42,140,117,112,214, 34,231, + 27,138,121, 71,239, 35,125,231,169,124,164,152, 84,132, 92,113, 26, 29,143, 36,204, 53, 24, 45, 17, 90,162,202,156, 40, 85, 90, +209,132,180,139,198, 70, 2, 73, 39,128,124, 30, 81,160,132, 64, 41,133, 48, 73,193, 27,149, 74,196,191,253, 49,163,203, 99,230, + 81, 97, 90,199,189,243, 6,191,182, 72, 37, 41,242,140,160, 12,148, 21,217,229, 93,102,151,198,232,155, 59,236,237,238,241,222, +135,223,231,192, 40,158, 68,248,211,249,156,127,241,209, 39,252,223,191,252, 33,223,253,173,143,121,242,221,115,238,127,235, 41, + 63,248,230, 1,143,191, 51,231,189,175, 61,225,221,211, 35,238, 77, 36,127, 18, 35, 47,111,111, 17,235,146,249,143,221,162, 51, +134,217,155,183, 17,215,118,161,168, 57, 63,239,153, 20,138,151,115,195,142, 0, 35, 4, 65, 74, 44,176,223, 54,188, 28,160, 78, + 87,136, 48,146,219,163, 41, 69,158, 92, 23,214,167, 52,177, 72,160, 19,145, 21, 2,103, 50,182,171,130, 40, 18, 71,193,104,197, + 40,207, 48,133,230, 20,201,147, 40,249,194,213, 25,183, 38, 99,122, 10, 38,235, 6,113,186,100,125,180, 68,228,134,185,139,108, +103,138, 91,165,225,202,164, 96,186, 91,161,119,118, 24,159, 58,110,133,134, 92,105,100,140, 16, 5, 83, 1, 69,220,240,253,195, +167,248,205, 28, 86,235, 20, 61,217,123,106, 36,219, 66, 82,107,193,164,202,248,210,229, 9, 63, 87, 78,121,115,179, 65,207, 15, +120,180, 90,240,125, 31, 49,194, 18,237, 6, 17, 3,189,117,196, 24,113, 94, 80,122,203,117, 26,110,216,158,171,194, 83,216, 13, +125, 51,103, 79,151, 84, 50,114,110, 29,211,188, 2, 34,167,235,142,162,200,152,247,150,117, 8,188, 57,158,240,199, 77,207, 79, +140,106, 76,150,113, 24, 2,159, 41, 11, 58, 27,184,149,101, 84, 69, 77,229,122,174, 22, 21,235,232,169,179,156, 83,103,217,209, +154,153,146,132,216,177,105, 61, 75,235,120,228, 67,154, 84,246, 22, 86, 77,106, 30,130,123,158, 14, 23,211, 71,133,208,105,133, + 39,244,112, 95, 94,136, 36, 7,221,132, 4,100, 8, 63,252,231,103,154,138, 23, 10,191, 76, 66, 89, 97, 52,236, 94, 38, 78,167, +112,247, 54,188,242, 38,255,254,235, 95,228,165, 91, 55, 25,143,119, 57,245,112, 96,138,164,198, 71, 19,116, 70,140,142, 32,100, + 42,122, 74, 16,186,150,118,179,132,213, 57,151,148,199, 45, 78, 56, 61, 63,224,119, 30, 61,162,136, 61,149,150,204,155, 21, 82, + 43, 54,109, 75, 41,192,119, 27,100,215,176, 75,100,199,187,148,150, 40, 21,187,182, 39, 71,176, 45, 5,165,179,232,190, 65,199, +200,194,183,172,251,134, 85,187,193,246,142,195,243, 51, 54, 77,199,217,249, 9,125,211,176,238,214,136,174,167,196, 81,186,158, + 50, 4,222, 30, 21, 84, 74, 81, 75,137, 33, 50, 70,144, 9,207, 30,138, 59,153,228,229, 66,179, 47, 4,183,117,198,231,138, 17, +149,183,188, 85, 76,168,198, 59, 92, 67, 83,142,182, 80, 49, 80, 84, 51,164,209,104,147, 51, 46, 70, 72,149,161,243,156,206, 91, +242,170, 6,165,168,181, 65,228,134, 74, 25, 60, 80,215, 37,222, 38,237, 72,146,140, 37,139, 31, 64,223,245, 4,215,163,162,224, +160,155, 51, 15, 61,143,154, 5, 31,250, 72,211, 54, 4, 33,137, 46, 37, 38, 34,224, 23, 70, 25, 95,223, 88,254,171,253, 75,252, +195,199,143,249,111,174, 92,229, 55,207,230,188, 90,230,252,243,179, 57,255,206,238, 46,191,219,172,248, 74, 61,225,187,109,195, +207,236,239,163, 24,223,249, 37,134,228,234,103, 40, 87, 31, 82,241,177,253, 95,173,176,135, 11, 5,248,144,141,174,228,179,177, +119, 42,218,242,121,161, 18,164,221,180,148,207,147,217,132, 76,105,109, 98,144, 71,215, 37, 91,101,129,145,146,206,167,206, 38, +119, 1,105, 36, 65, 8,106,239,232,108, 79, 31, 34,113, 16,233, 41,231, 9, 46, 32,227,160, 7,158, 47,210, 1,165, 11,168, 42, +137,164,158,120,203,174,212, 52, 70,176,140,130, 22,207, 18, 48, 58,121,149,125, 55,168,216, 95,188,222, 11,218,221,197,186, 32, + 12,192,157, 16,134, 34, 62, 4,212, 68,159, 58, 96, 51,232, 0,156, 75,133,120, 50,133, 73,145,242,162,155, 52,129, 64,103, 3, +144, 39, 41,250, 25,186,236, 52, 22,143,195,212,162, 75, 7,132,100,190, 76,207, 87,140,207,179,157, 61,220, 91,119,188, 58,206, +121,208, 58,218,144,246,236,243, 62, 32,124,100,222, 59,244,176,159, 62,105,147, 24, 48,177,224, 47,226,129,254,226,215,244,149, +183, 94, 99,182,183, 77, 57, 74,251, 69,173, 76,242, 23, 11,157,212,168, 6,252,144,128,100,148,120, 54,146,111,173,195,217, 56, +128, 51, 34, 46, 68,188, 79,162,188,186,214,140,139, 11,223,182, 24, 50, 34, 4, 82, 8,250, 24,217, 88,139,141,145,214,185,103, + 33, 18,142,136, 25,124,169, 79,206, 27, 78, 91, 75, 89, 23,108, 13,177,186,181, 82,148,101, 78,221,123,132, 23,200,117, 79,214, +121,124,215,226,251, 64,167, 33, 40, 73, 62, 42,168,148,196, 52, 14, 19, 4,186,179, 20,227,138, 32, 21, 15, 6, 64,210, 44, 55, +216, 16, 17,117,145,196,107, 34, 9,245,144, 98,200,102, 18, 16, 99, 18,238,137,132,193,149,198, 36,196,170,148,200,152, 70,184, +253,172,128,227,142,145, 48,132, 43, 35,212, 89, 75,253,141, 71,212, 55, 50,194,106, 73,189,238, 9, 27,216,222, 42,216,158, 21, +148, 85,142,237, 29,110,171,224,165,215,111, 48, 63, 92,179,152,207, 57, 56, 60,226,254, 59,103,184, 24,113,235,126,176, 26, 41, + 2,142, 56, 60, 56,237,176, 77,203,222,103,239,210,188,121,155,241,237,109,102, 90,240, 55,103, 35, 94,149,138,167,125, 75, 62, +169,216,185, 49, 99,186, 63, 33,107, 60,223,118,142,243,174,167,115,158,105, 81,240,165,124,130,107, 23, 24, 37, 8, 58,226, 46, + 95, 35,247, 45, 74,192,218,182, 60, 42, 10,158,110,206,233, 92,199,166, 89, 51,239, 90,142,188,227,220, 11, 58, 36,167,173,165, +223,244, 84, 85,198,121,107, 57,207, 52,215,246, 42,182,170,140,105,109, 88, 96, 56, 12,146, 71,239,127, 3,115,126, 68,190, 17, +184,147,134,251, 66,113,117,148,115,187,204,120,121, 39, 71,100,138, 75, 59, 53, 91, 78,145,183, 93,250, 40,146, 2, 47,224, 84, +106,102, 89,205,229,190,165,223, 28, 51,251,228, 29, 86,135,247, 40,124,129,237, 28, 58,128, 80,146,215, 13,236,201,136, 89, 55, + 28, 62,125,200,159,156, 46,248,160,235, 41,130, 77,136, 99,107,105, 90,203,198, 10,246, 84,207,181,216,243,102,132,219, 72,118, +109, 2, 47, 85, 82, 37,102,119, 8, 72, 21, 57, 93,174,153, 55, 61,107,111, 17, 94,178, 83, 87,188, 61, 29, 35,165,226,199,202, +146, 81,149, 49, 69, 32,155, 13,143,150, 75,214,222, 49,210,154, 49,142,135,206,210, 44, 78, 41,148, 97,175, 40,184, 92,213, 68, + 33,120,119,189,230,188,233, 56,179, 61, 31,110,154,180,186,115, 46,233,138,194, 48,241,107,125,170,222,147,113,250,174, 50,132, + 73, 66, 64, 97,116, 18, 87, 14, 17,199, 23,133, 91, 13, 69, 93, 93, 24,145, 46,254, 14, 80, 90, 35,140, 70, 78,119, 16,251,123, +136, 59,183,224,245, 55,225,218, 13,184,250, 18,236,221,228,238,238,117, 62,191,191,197,116, 84, 80, 22,134,211,206,242,201,226, + 20,188, 37, 70, 71,236,122,194,102, 77, 88,159, 17,150, 11,226,227,199,132,213, 25,241,195,143, 56,222, 44,248,238, 71, 31,113, +255,244,128,239,190,127, 15,119, 58,231,112,221,112,180, 88,147, 27,120,112,124, 76, 17,122, 14,142, 78,152,224,216, 18,145,157, +102, 67, 38, 21,133,128,202,246, 76,165, 70, 18, 40, 92, 64,185,158, 16, 28, 85,179,102,215, 89,122,103, 25,183, 13,133,235,152, +250,150,151,155, 21,175, 7,207,155, 50,240,122,215,242,213, 76, 51,113, 45, 55,137,236,234, 68,104,219, 86,154, 26,216,213, 5, +149,115,236,133,200,109,173,184,161, 4,175,168,130,151, 76,206,181,124, 76, 25, 5, 87,202, 45, 84, 86,176, 43, 11,172,150,236, + 25, 3, 85,157,146, 25,235, 26, 83, 22, 88, 4, 58, 87, 24,173,145,131,102,204, 72,129,212, 89,170, 33, 33, 82, 21, 9,243, 26, + 69,250,188,216,180, 61, 82, 43,122,107,217, 52, 45, 17, 79,192,209,249,150,165,237, 88,118,107, 14,188,231, 7,203, 22,111, 45, + 65,184, 36,202, 13, 22,132, 66, 70,248,185,209,152,223, 89,110,248, 47,118,183,249,223, 79,231,252,244,180,228,107,231, 27,254, +222,222, 46,191,124, 50,231,239,110,111,241,141,126,195, 79,143,198,252, 95,243, 51, 20,147,151,127, 9, 61, 40,217, 7, 16, 26, +153, 74,163,104,147,253,165,138,202, 63, 87,216,229,160,198, 20, 50,117,118, 46,166,150, 77,136,231,106,241,190, 29,238,198,193, + 43,205,176, 87, 87, 67,216,184, 76, 79,230,222, 40, 25,234,199, 82,160,140,164, 9,145, 82, 73,198, 42,112,210, 36,144,128,247, + 17, 33, 35,177, 11,207,206, 35,193, 37,186,220,179, 29,126,232,152,152,140, 69, 27,217, 26,167,200,187,131,181, 99,100, 20,157, +144,228,153, 34, 72,129, 68,146, 27, 69,215,118, 63,250,122, 47,196,125, 74,167,195,142,144,207,135, 88,201, 83, 4,114, 56,180, +244,118, 64,222, 14,172,119,100, 2,225,244,205,160,210,203, 6, 40,204,144, 51,159,107, 38, 10, 58,149, 14, 63, 25, 17, 47, 84, +218,129,203,240,156, 0,199,112,224,146, 98,144,175, 40,158, 6,199, 37, 35,217, 81,146, 67,235,217,143,176, 12, 48, 65, 96,173, +103, 17,161,233, 2, 34, 4, 98,102,210,193,227,226,223,252, 11,190,158, 84, 21,159,189,243, 18, 16, 89,175, 54,116,155, 6,231, + 60,101, 93,179,119,105,130, 12,130, 44, 55,212, 70,167, 4,164, 16,201,134, 32, 16, 31, 99,234,134, 92, 68, 32,153,212, 6,103, + 61,253,224,248,203,179,164, 24,143, 34, 21, 65, 49,176,124,146, 35, 39,117,233,193, 71, 58,235,233,250,192,249,198,114,180,234, +152,175,187, 52,234, 30,229,124,239,225, 49, 79,219,142, 85,140,108,156,227,241,102,195,185, 0, 21, 60,217,118, 69,147, 27,178, +189,154,234,198, 14,242,165,109,182, 62,115,153,226,198, 14, 98,167,166,120,105,139, 77,149,161,131,164, 28, 21, 60, 94,183,148, + 70,112,100, 29,171, 16, 17,101, 78, 81,164,113,100, 16, 67,204,164, 2,171,161,147, 18,127, 1,202, 41,116,202, 8,207,146,134, + 68, 9,129, 46, 53,147, 50,103, 60,183,244,203, 13, 92,174,104,103, 21,197,237,109,202, 73,137,253,100,201,225,161, 32, 8, 69, +115,214, 48,177, 29,217, 52,167,239, 28, 75, 23, 40,182, 42,110,189,113,157,197,227, 57,255,234,183,222,199,125,216,224,214, 61, +110, 40,229, 23,126,226,100,100, 75,247,159, 56,111,152,127,237, 62,229,205,138,171,119,175,242,153,222, 51,126,247, 4,117,222, +178,127,222, 49, 89,109,184,150,193,205,121,203,229, 16,248,172, 48,188, 90,140,184, 51,154,242,242,213, 61,202,233,132,221, 98, +151,157, 87, 95,226,234,181,107, 92, 63, 92,146,119,150, 32, 10, 94,255,249, 47, 51, 89, 69,190,181,110,249,188,202,200,219,150, +223, 62, 59,229,228,248,152,135, 15, 62,225,254, 71,223,231,193,135,127,202,175,127,227,187, 92,159,237,144, 21, 25, 81, 39,192, + 74, 84,138,168, 52, 42, 74,158,116,129,167,197,152,240,107,255, 27,246,221,111, 34,154, 99,100, 95, 33,246,118,248,183,174, 20, + 92,159, 22,236, 26,144, 54,208,244,144, 91,139,142, 17,235, 28,157, 86, 72, 36, 91, 50,114,107, 50,226,243,245,132,219, 85,205, +151,138,140, 75,199,159,194,226, 9,247,142, 78, 57,235, 34, 51,235,224,120,206,251,143,239,241,235,159, 60,228,119,143,214,248, + 62,176,136,130,220, 91, 38, 50,162, 20, 92,201, 97, 11,197, 77, 34,159, 81, 25,123, 66, 82,233,156, 66,104, 38,166, 2, 33, 9, +121,198,178,143,172, 17, 92,157,141,184, 52, 25,179,157,101,236,150, 5, 74, 40,174,103, 25,123,185,193, 7,207,121,179,228,201, +124, 78, 29, 61, 27,223,211,245, 61,206,121,206,219, 53,125, 12,196, 24,152, 72, 65, 93,105, 74, 60,149,239, 8,182,227,157,174, + 29,236,178,253,224,178, 25,194,171,242, 28,246,182,224,202, 46, 76, 70, 48,173, 17, 85, 9, 89,134, 48, 5, 66,167,213,131, 80, + 73,247,241,172,144, 59,135, 26, 18,177,245, 80,208,117, 85,160,198, 91,200,235, 87,145,175,220, 69,220,190,131,184,126, 23, 49, +189,130, 24,109, 67, 61, 67,100, 5, 72,137, 81,138, 27, 82, 83,106, 65,179, 90,243,240,232,132, 7,167, 79,137, 39,135,196,131, + 35,226,209, 9, 60, 57, 32, 30,158, 19,159, 30, 19,207, 78,137,199, 39,196,213, 2, 78, 78,136,231,115,154,163,179,212,104,185, + 14,214, 61,221,124,197,227,249,134,211,206,114,127,177, 97,164, 2,211, 16, 40,154,142, 81,174, 49, 49, 48,138, 1, 33,135, 84, +200, 0, 27,215, 99,164,161,114, 29,193, 59, 74,101, 24,117, 13,133, 84,212, 62,240,182, 50,188,102,114,110,168,156, 61, 41,184, + 82,148,236, 11,195, 29,165,185, 45, 52,175,161,216, 87,154,207,232,130,155, 89,205,110,136,220,150, 57,147, 16,184,161,115,182, +132, 34, 71, 50,173,102, 24, 4,117, 62, 3, 34,121, 94, 33, 76,198,184,168, 64,107, 76, 89, 16,164,162, 71, 32,181, 68,152,180, + 34,246, 8,138,204, 96,148, 65, 9,153,112,194, 68,230,182,167,245,158, 24,211, 52,108,221,117,104,173, 89,174, 86,244,193,179, +106,215,232,224, 88,180,107, 62,217,204, 33, 90, 54,209,243,209,217, 25,143,172, 39,244,158, 16,210,106, 37, 70, 73, 84,154, 27, +198,144,101,154,183,138,140,239,181, 45, 63, 89,231,252,105,215,241,246,164,230,183,206,151,252,194,206, 22,255,231,209, 25, 63, +191,189,197,175,157, 44,248,197, 27,151,135,162, 78,120,238,109,144,131,141, 44, 27, 10,186, 16, 9, 90,242, 87, 17, 85, 6,159, +246,204,113, 40, 28, 23,124,120, 6, 49, 71,176, 63, 44,144,123, 81,129,221,167,195,132,168,198,212,211,138,141,115,236,141, 42, +188, 79,128,130,105,150,130, 68,142,150,107,114, 96,221, 56, 92,151,196, 86,105,172, 45,137, 93,155,130, 96,252, 0, 89, 89,183, + 32, 3, 93, 7,251,147,156, 32, 5,199, 93,228,165, 73, 70, 47, 83,146, 88,144,130,177, 16,108,124,100,221,165, 40,209, 31, 25, + 87,122, 49,141,232,125,154, 60,200,144,174, 71, 12, 45,126,116,233,201,179,131,143,223,133,231, 93,126,240, 73,137,127,209,113, +203,129, 31,175, 21,228,154,237, 12, 22, 46,178,149, 9,234, 76,178,236, 6,225, 92, 74, 32, 72, 1, 57,241,197, 3,196,176,202, + 80, 17,239, 60,109, 4, 17, 36, 70, 68, 14, 99, 68,133,192,177,183,228, 90,114,218,245,180, 33, 32,163, 32, 51, 17,223,251,212, +173,255,168,107,188, 96, 4, 61,120,204, 91, 95,248, 28,163,233, 24,188, 71,162,121,114,248,104,208, 58,100,108,207,106,182, 70, +121, 26, 30, 12,231, 18,165, 5,189,141,207, 94,234,222, 5,214,182, 99,213, 88,164, 6,219, 6,156,135, 34,229,148, 38,170,152, + 72,236,240,214,122, 70, 42, 57,169,227,112,141,109,111, 17,192,122,227,112, 3,113,204,122,207,238, 86,197,162,241,204,231, 75, + 30,247, 61,243, 81, 73,190, 55,193,111, 23, 92,185,182,141, 40, 13,187, 47, 95,162,188,190, 13, 59, 37,155,182,231,147,147, 57, +199, 71,115, 30,156, 47,121,178, 89,115, 30, 2,203, 0,123,179, 10,165,224, 97,223,113,214,122, 62, 58,183,156,116,112,115,167, + 76,113,178, 98, 48, 52, 8,153,222,220, 82,208,137, 20, 3, 28, 11,147,166, 44,133, 70,101, 6,145, 25,188,148,100, 59, 5, 38, + 87,104,231, 40, 15, 86,152,101,159, 14, 0,153, 34,191, 54,161, 13,208,156,247,216,190,225,254,123, 31,114,115,225,169,175,111, + 35, 8,220, 91,121, 86, 86,113,235,141, 91,180,249,152, 7,239,253,224, 89,151,158, 30,138, 4,122, 77, 15, 8, 8, 52,130, 53, +199, 95,251,148,211,218,241,234, 43, 55, 48,227,196, 65, 8,181, 98,147, 43,186,220,160, 34,140, 60, 84, 66,160,103, 53, 98,127, + 66, 48, 25,178,208,112,109, 10, 70,164,108,237,195, 5, 90,101, 68,149,163,119,119,248,212, 20, 60,169, 39,252,157,207,191,204, +246, 75, 47,243, 73, 52,220, 47,115,186,173, 45,150,213, 22,171,106,196,141, 75, 99,222, 63,123,202,175,127,247, 29,126,245,227, +202,128, 32,160, 0, 0, 32, 0, 73, 68, 65, 84, 7,124,245,165, 59, 84, 69,198,163,222,243,237,133,227,221,206,211,245, 14,166, + 21,188,243, 77,196,227, 71, 8,191,225,120,114,139,217,108,196,213, 12,214,125,224,253,121,207,102,213, 50, 81,130,176,106, 88, +180,107,122,157,225, 98,164,170, 43,114,173,153, 25,195,165,178,102, 87, 41, 94, 26,111, 33,122, 75,190, 62,166, 57,123,196,239, + 61,120,196, 31, 60,121,200,111,124,250,136,251, 77, 64,138, 36,128,148, 67, 66,217, 76, 5,110, 41,201, 37, 4, 87,116,198,171, + 89,197, 94, 62,162, 30,111,145,229, 5, 85, 94, 33,141,102, 82,214,156, 5,207, 90, 75, 38, 69,141,204, 52, 99, 83,160, 77, 10, + 28,217,205,147,207,124,229, 60, 62, 4, 86, 49,249,237,181,210, 16,225, 90,150, 83,232,140, 76, 8, 58,151,160, 39, 99, 41,216, + 82,234,255,229,236,205, 98, 52, 77,207,243,188,235, 93,190,237, 95,107,239,174,238,233,233,238, 89,201,225,112, 68,138,164, 40, + 75, 98,168,213,202,130,196, 65,156, 88,200,102, 69,112, 16, 64, 8, 16,228, 44, 1,124, 66,192,201,137,207, 28, 32, 1,146,200, +128, 3, 40,113, 2, 91, 32, 98, 71,118, 44, 75,150, 21,209,220, 68,114, 72,206, 62,189, 76,239,181, 87,253,219,183,190, 91, 14, +222,175,186,123,134,155,236, 2,126, 84,117,119,161,250,223,234,123,222,231,121,238,251,186,217, 81, 10,213,180, 12,132,229,237, +186,141,109,141, 76, 98, 78,195,112, 13,198, 83,216, 88,139, 81,174,147,205,232, 4, 26, 78,249, 11,107, 57, 47,108,140, 25, 76, + 51,142,165, 64,166, 89,188,169, 4, 53, 29,163, 54,182, 25,188,252, 60,159,120,249,101, 94,125,245,167,152, 95,189, 76,184,254, + 34,234,202, 85,244,245,231, 81, 59, 87, 80,147, 29,228,120, 3,161, 52, 34, 73, 16, 82, 61,177,231, 54, 53,101, 83,243,156,175, +169,231,199, 28, 31,239,241, 79,223,122, 19,110,125, 0,123,199, 80,206, 96, 81, 18,108, 67,112, 29,161,173,163, 96,237,169, 6, + 40, 60, 93, 7, 92,191,146,116, 29,194,116, 96, 90,124, 80, 44, 2,188, 58,204,184,156,167,100,125,150, 70,166, 83, 50,169,112, +222,146,244,209,210,214,199,119,122,174, 51,164,109,201,210,140,145, 74,184,144,102, 76,133,100, 59,201, 24, 34,152,232,148,137, +212,228, 74, 49,206,198,228, 18,182,134, 27,108,138,148, 66, 37, 12, 68,194, 16, 65,138,100,154,230, 72, 23, 24,164, 5, 69, 82, +144,168,148, 44,159,162,116,130,146,241, 57,209,249, 16,153, 42, 66,154,129,140,155,215,144, 36, 24,169, 8, 64,235,124, 44,226, +198, 68,144, 40, 2,235, 61,199,229, 10,227, 5,149, 49,164, 50,238,207,165, 15,212,101, 69,227, 45,117,221, 34,130,231,184, 62, +101, 97, 13,173,173,217,107, 74, 58,215, 49,146,146,155,203,146,198, 58,188,148,132,198, 16,180,130,208,114,162, 19,158,215, 9, + 7,174,229, 83,217,136,111, 85, 13,175,165, 25,239, 52, 13,159,155, 12,249,191,143,206,248, 43, 23,182,248,221,131, 99,254,234, +238, 54,191,123,103, 15,197,228,218,151, 30,239,181,207,241,175,169,234, 45, 20, 42,182, 87,169,254,137, 35,219, 15, 41, 54,206, +119,235,198,199, 23, 86,208,123,175,195, 19,127,251, 99, 59, 91,255,103, 5, 66,231, 80, 20,108,108,174,177, 83,196, 12,221, 52, + 31,176, 62, 24, 49, 25,229, 56,161, 9, 4, 58,227,233,172,137,204,119,223,171,200,203,182,247, 95,244,227,240,178,142,130,181, +206,130,212,148, 4,106,175,185, 58,148,212, 8,106, 4,195,158, 77,126,210, 5, 20,208, 56, 27,173,112,222,253, 24,240, 78,191, + 74,120,140,120,237,119, 94,162,159, 60, 72, 17,213,239,189,248,235,241, 27,252,233,142,191, 63,241, 33, 99, 10, 93, 93, 59,158, + 29, 74, 22,109, 96,213,122, 66,214, 7,192,208,131,105, 68, 63, 50, 87,231, 85, 38, 60, 41,242, 33,208,121,143,149,208,244,193, + 25,181,131,137,214,204,218, 14,153, 42,180, 11, 92, 72, 36, 75,239,113, 56, 48,242, 7,215, 12, 31,149, 73,108,174,241,210,199, + 95, 68, 41, 77, 49, 40, 80, 34, 33,205,115,108,227,144, 73,202,250, 90,193, 36, 79,250,194, 30, 98, 10, 27,158,166,117, 88,225, +105, 26, 67,211, 57,108, 99, 35, 87, 31,143,237, 28,203, 30,100,146, 75,193, 86, 30,139,143,146,145, 41, 46,132, 96, 51,141, 8, +200, 32, 4, 77,107,209, 90,145, 17, 69, 88,153, 80,172, 15, 50,172, 11,236,205, 74, 18,165, 9,233,144, 98,107,202,231,174, 95, +228,217, 11,235,220,153, 87,188, 89,214,140, 70,209,235, 51,239, 12, 75, 99, 48, 62, 80, 19, 56,177,129, 54, 85,124, 80,182,220, + 42, 43, 92, 34,216, 26, 23, 84,222, 83,249,192,229,245, 1,163, 60,146,175,188,232, 81,172, 33, 62, 93,149,241,156,185,192, 92, + 72,150, 82,210,106, 77,208, 10,159,164,184, 68, 81, 37,146, 71,139, 26,115,255,132, 97,145, 66,221, 33,239, 45, 73, 79, 13, 90, + 56, 76,170, 73,183, 11,144,158,211,155, 7,172,150, 71,220,124,116,151,231,221,136,201,230, 4,175, 60,195,105, 78,174, 20,207, +188,112,145,171,159,125, 14,207, 17, 15,222,217,195,145,227, 46,104,124,161,120,249,175,253, 69,126,227, 55,126,142,223,250,207, +126,137, 63,186,188,206,103,127,237,243, 60,248,211,155,156,125,235,251,252,225,226,148, 7,211,109,190,126,188, 0,223,241,135, +183, 30,241,198,195, 99,190,242,214, 13,222,153,207, 56,116, 49, 64, 35,117, 34, 34, 59,235,142,174,170,152, 61, 56,230,225,141, + 91,220, 63,188,203,172, 90, 48,115, 29,135,141,164, 29, 13,241,121,194,160,241, 36,235, 5,183, 27,207, 89,219, 69,142,148, 10, +180,217,132, 79,125,236, 5, 54,167, 59,188,111, 2,255,117, 6,227,195, 35,190, 38, 70,220, 91, 5, 94,239, 28,167,214, 16,234, + 25,225,224, 30,226,213,207,194,231,126,137,191,246,197,207,243,189,189, 25,223, 45,225, 52,207,113,149,229,230, 73,203,124,213, +178,142, 97, 77, 39,176, 40,185,107, 91, 6,217,128, 86,194, 40, 77,153,166, 26, 41, 96,152, 15,113, 82,145,228, 3,200,199, 12, +164, 96, 61,180, 28,183, 21,207,109, 79,120,105,119,157,207, 62,187,195,206,214, 58,175, 76, 7,204,140,101, 77, 9,174,167, 25, + 47, 36, 57,207, 38, 5, 23,139, 33,195,225, 4,157,230,120, 47, 16, 66,160,243, 28,129,128,222,150, 54, 24,164, 92, 28, 79, 25, +228,154,113,150, 50, 74, 53, 3, 45,153, 68, 21, 40, 37,240,168,118, 40,165, 49, 42, 33, 79,115, 6, 89,138, 78, 52,235,195,132, + 4,197,133, 60,229,229, 52,101, 67, 10, 84,103,168,131,197,250, 64,237, 3, 39, 58,139,157,121, 49,238, 25, 29, 27,144, 15, 96, +184, 14,131, 53, 80, 5,159, 31,141,121, 46, 79,153,166, 5,163, 44,225,134, 84,145,121,144, 36,168, 65,138,202, 51,210,205,117, +254,141, 11, 23,248,249,231, 94,230,194,133, 93,174, 76, 47,115, 43,159,146, 76,182,208, 58, 67, 43,133, 84, 10,233, 37, 82, 4, + 68, 83, 34,140,129,217, 30,156, 60, 64, 28,220,133,131, 7,188,243,254,123,188,113,235, 22,239,222,190, 11,135,143, 96,177,136, +141,137,233, 89, 36, 61, 49,244,252, 26, 25,254, 28,189,158,240, 62,174,173,178,140,124,115,194,120,156, 83, 46, 99,147,179, 61, + 28, 18,100, 92,153,106,161, 48,222, 19,165,110,113,216, 11, 1,167, 18, 50, 33, 41, 84,194, 24,197, 84,105, 82,149,144, 11, 73, + 34, 69,204,136, 72, 11,180,135, 60, 31,160,101,130, 78, 50,178,116,138, 82,146,172,216, 70, 39, 89, 4, 67,233,140, 68,231,232, + 36, 69, 39, 3,116, 62, 0,227, 80,121, 14, 89,134,212,154,144, 36, 40, 33,240, 34,174,126, 91, 4,171,224, 34,237,219, 71,158, + 99, 23, 34,153,239,164, 92,209, 4,208, 40, 78,218, 37, 45,209,198,108,186,142, 16,160,108, 42,172,181,212,166,229,164,158,145, + 72,205,202, 86, 28,155, 18, 37, 28,169,212,156,153,134,111,159,214,184,198,197,130,158,165, 96, 12, 97, 48,192,181, 49, 18,252, + 51,131, 17,127,127, 85,241,159,110,173,243, 59,167,167,252, 59,147, 53,190,124,114,198,191,191,190,198,223, 59,216,231,183,175, + 94,225,111,223,127,200,111, 63,127, 13,193,245, 95, 13,116, 13,232,252,113,199, 27,187,192, 52, 22,119,149,246, 34, 48, 34, 33, +237,233, 24,207, 31, 39,156,179,150, 39,218,250, 62, 4, 70,165,113, 44,253,244, 1, 32,190, 83,162,162,114,178, 1, 91,107,252, +236,218, 56,146,178,242,130,245,241, 6,153, 20, 81, 10,154, 72,230,203, 51,142, 23, 53,111,220,189, 19, 1,250,174, 15,135,233, +120,146,140, 38,125,196,196,218,250,137, 74, 61,201,216,152,228, 52,109,111, 21,200, 5,117, 31, 46,103,122,129, 86,181,172,227, +232,190,106,126,252,227, 27,228,209,190,199,135,207, 37,143,191, 62,247,129,123, 27,159, 7,251,145,174, 56, 27,197, 16, 28,157, +146, 41,137, 77, 19, 92, 99,144,153,194, 11, 17,119,223,222,163, 18, 21,179,225, 77, 27,253, 51,210, 63, 9,199, 57,159, 80, 60, + 29,178, 35, 50,178, 73, 70, 46, 20, 99,160, 72, 4, 11, 19,208,192, 18,207, 98,213, 33,117,136,194, 55,249,147, 31,231,127,245, + 55,254, 58, 91,187,235,172,230, 21,213,210, 96,203, 22, 65,194,213,107,187, 92,187,184,206,206, 70, 30,173,248, 46,208, 57, 71, +217, 57,102,179,134,206, 89, 14, 14,151, 52, 62, 16,188,167,173, 76, 68, 67,138,128,206, 36,215,118,198,108,140,115, 46,141, 19, +106,235, 9, 61, 89,202, 7, 72,130,167,181, 14, 27, 60,243,170,195, 4,200,165, 96,185,108,162, 74,117, 99,128,107, 13,124,103, +143,159,255,133,143,115, 79,122, 30,182,142,129, 55,152,163, 5, 15,171,150,195,174, 35, 47, 82, 62,249,252, 22,137,140, 32,140, +101,101,185,119,188,194, 54, 6, 43,161,154, 55,164,153, 34, 75, 83,190,240, 83,207, 32,147, 24, 42, 50,202, 82,210, 52, 33, 32, + 72,100,244,133,203,214,226,107,195, 73,217,177,183, 50,172,156,199, 17,131, 94, 38, 90,177,145,197, 0, 27, 41, 4,239,175,106, +230,239,157,145,221,127,196,171,121,202, 39, 46,172, 83, 92, 25,146,140, 51,194,131, 37, 85,145, 97,159, 29, 51,219,159,179,247, +250, 45,234,197,156, 66, 74, 62,243,234, 39,209,215, 54, 73, 47, 76, 57,182,142, 71,166,227,254, 89, 75, 82,151,236, 90,195,239, +126,253, 3, 94,122,113,135,195, 58,230,149,255,235, 87, 39, 12,115, 77, 3,252, 63, 55,207,120,176,106, 9, 85, 69,168, 43,218, +179, 35,194,235,239,240,220,231, 94, 98,224, 44, 95,251, 95,190, 79, 69,135, 66, 60,161,196, 95, 29,242,243,159,221, 33,155,142, + 96,186,206,188,172,217,120,230, 25,190,246,213,175,114,252,250,119,162,237,121, 48,226,139,175,188,198,197,151, 63,206,120,109, +139,170,156,113,227,224, 17,167,203, 51,106,229,185,127, 88, 51,188,184,205,231, 95,249, 36,172,111, 51, 48, 53,191,109,106,178, +214,241,245,197,156,255,166,216, 37, 76,135,228,120, 6, 18,190,119,120,138, 56, 61,224,123,127,245, 87,216,185,182,193,223,250, +211, 59,252, 79,239, 30,146,140,134,108,100, 9, 63, 55, 25, 32, 23, 21,175, 77, 37, 63,163, 19,210, 89,201,236,224,144,253, 44, +165, 73, 19,158, 25,228, 4,231, 16, 66, 98,165,160,171, 26,230,120,222,173, 91, 14,202, 21,123,173,225,164,109, 89, 27, 12,249, +194,230, 26, 71,213,130,177, 82, 72,107, 57, 62, 59,162,109, 74,174, 16,248,124, 62, 38, 79,114, 10,157, 50,154,110,129, 76,177, +193, 83,219,134, 90, 72,218, 52,225, 56, 4,190,221, 85,140,135, 3,108,154,179, 51, 46,240, 62, 48, 12,113,197, 52,206, 18,142, +202,150,183,155,134,195,210,176, 32,112,214,182,164,210,179, 22, 36,185, 2,235, 61,163, 4,158,243,158,103, 85,202, 56, 85,204, +234,138,239,174, 74,246,186,138, 47,175, 42, 58,231, 8, 73, 66, 72,114,130, 46,122, 32,151, 36,168,148,207,227,121,105, 90,240, +188,150,156, 86, 37,243,106,201,172, 58,101,191,238,248,238,170, 66,121,251,120,212,254,249,201, 58,159, 26,141,120,254,210,117, +198,131, 2,147,104,222, 61, 61,227,110,217,114,218, 25, 22, 77,205,161,115,184,230, 12,187, 60,195,204, 43,236,209, 25,246,240, + 33,118,178,137,179,101,236,137, 58, 27,107,182,181, 31, 86,200,255, 57,125,239, 63,170,207, 3, 16,151, 47,178,117,237, 18,215, +243,156, 11,243, 5,207,121, 79,158,167,172,165, 25,235, 58, 97,172, 19, 84,112,196,129,159,196, 57,131, 82, 17, 39,158, 73,205, + 80,104,118,101,194, 68, 39,100, 34, 68,236,180,233, 72,148, 6,227,208,249, 0,165,242, 8,109,209, 26,130, 66,166, 89,252,218, +152,199, 90, 29,172, 69,140,167,224,226, 66, 75,168, 72, 33, 68, 39, 88, 66,236,192,149,192, 33, 56, 1, 78,148,231,216, 65,173, + 35, 29,175,108, 12, 3, 33,104,172, 35,193, 19,172,163,234, 90, 12, 14,108, 84,229,111, 10,193,220, 52, 76,116, 70,103, 91, 62, + 88,158,176,165,115, 90,223, 48,146,158,214, 91, 2,129,131,106,201,239, 31,158,113,235,160,198,121,135,207, 51, 66,112,132,233, +152,224, 28,122, 99,141,207, 78,214,112, 66,241, 31, 93,121,142,255,126,111,143,191,190,187,203,223, 61, 57,226, 63,220,220,230, + 43,139, 5,127,121,235, 34,255,231,193, 62,255,197,149,203,252,239, 15, 30,245,101, 87,141, 98, 65, 20, 61, 14, 53,205, 97, 52, +130, 76,245,216,215, 65, 31, 88,210, 23, 21,107,127,252, 43,124,254,239,143,191,173,151,108, 42, 27,139,179,232,231,182,231, 5, +253,156,239, 62,204,120, 81,199,116,168,221,193, 24,161,115,214, 7, 99, 74,211,161,146,140, 86,104,182, 39, 41,139,230, 17,151, +119,119,120,120,231, 94,124, 51,153, 94,124,103, 1,209,244,224, 23,243,228,190, 8, 29,207, 4, 1,230,214, 19,180, 36,145,146, + 85,229, 24,165, 26,219, 89, 42, 47,158, 0,115,126,210,129, 5, 98, 55, 46, 68, 60, 21,132,167,222,185, 45, 17,135,123,190, 82, + 80,242,169,231,225,220,218,214, 64, 40, 64,200, 72, 92,243,113,204, 51, 32,198,204,154, 92, 65, 3,173,177, 40,149,226,154,158, +200,236,207, 45,105, 93,188, 31, 90,127,100,138, 96, 80, 78,147,104,193,161,243,172, 7,201, 64,192,178,127, 9,178, 92,210,214, +238,201,110,254,252,240,245, 35, 62,222,248,254,247,249,165,139, 95, 96,178, 54,192,217,146,249,209, 49,222,194,157,219, 2,235, + 2,163, 98,135, 52, 81, 72, 9, 34, 8,242, 62,196, 36, 24, 71, 62,201,209, 61, 53, 47,209,178,247,211,199,149,201,225, 89,141, +181, 17,212,179, 51,201, 88,116, 14,173,100,188, 96, 43,193, 64,107,132, 15, 36, 18, 58,235,232, 44,140, 70, 25, 4,207,122,150, +224,179,156,147,181,146,255,235,107,239,242,173, 7, 55, 49, 4,142,218,154,129,214,108, 14, 71,228, 50, 67,231, 41,139,163, 37, +195,201, 24, 33, 37,131, 81,130, 22,146, 70, 72, 78, 15, 78,104, 22,139,232, 58, 84, 18,153, 42,190,240,201, 43,209, 77,145, 9, +164,148, 88, 31,122, 65, 28, 88, 37,105, 83, 73, 85, 75,200, 21,174,141,235, 5,235, 5,173,115, 44,141,162, 72, 97,146, 43,252, +250, 6,249,238, 26, 73,119,133, 27,123, 43,110,188,113,200,231, 15, 13,215,118,167, 20,187,129,201,237, 57, 62,129,209, 48, 99, +247,167, 95,196, 55, 29, 77, 8,148,193, 50,108, 91,244,131, 19,100,158, 98, 69, 28, 63, 94,200, 53,137,151,252,230, 23, 95,228, +209,202, 32, 71,146, 89,166, 88,174,103, 12,148, 98,101, 45,131, 75, 19, 46, 47, 90,174,135,130, 45,189,141,224, 10, 27,191,246, + 51,188, 51, 43,105,170,138,255,224,111,190,200,124, 85,178, 44, 27,156,235, 96, 80,112,244, 15,255, 5,237,149, 43, 28,252,179, +215, 17, 87, 78, 16,163,130,157,151,174,115,248,250,119,158,160, 66,171, 21,255,228, 91, 95,197,125,235,171,216,203, 87,113,179, + 85,164,130,209,224,187, 94,211,245,240, 1, 55,206,142,248,212,171, 63,207,229,221, 11,180,235,107, 12,165,224, 89,224,139,123, +111,115,147,231,201, 70, 35,180, 13,184,151,174, 33,222,168,249,239,254,217,187,252,229, 87,118,249, 59,239, 30, 96,219, 14,225, + 44, 51,165,249,167, 39, 51, 46,102, 57,133, 83,124,236, 74,206, 51,151,214,185,168, 53,223,126,247, 77,182, 54,118,152,121,207, +133,209,128, 82,198, 14, 89, 21, 25,157,181,116,198,210,228, 19,156,168, 89, 75, 11,174,140, 52,167, 50,112, 97, 48, 65, 3,243, +176, 98,115,125,155,180, 42,184,140,194,119, 53,169,119,100,162,183,216,246, 57,243,193, 25, 72, 83, 66,103, 56, 9, 29,161,103, +115,111, 56,143,233, 44,178, 79, 62, 20, 46,176,240, 29, 77,127,206,214,120, 78, 59, 71,112,150,210, 56,146, 52,163,114, 14, 17, + 20, 99, 60,155,195, 33,211, 44,163,109, 13,149,202, 64,181,188, 97, 60,198,247, 90,156,115, 55, 80,240,100, 56,214, 70, 3,118, + 16,124, 58,207,216, 21,146,113,162, 72,139, 33,165,183, 20, 98,131,183,155, 99,132,214, 72,162, 96, 75,107,205,165,241,144,204, +121, 46,122, 24,121, 16, 85,205,101,235,185,215, 46, 16, 93,195,237,211,135, 84,135, 39,188,183,172,120,111,255, 4,149,128,169, +154,168,140, 95,156,112,174,210,249, 97,172,120,241, 19,138,118,248,136, 7, 62,252,168,127,111, 3,179,178,230,142,243,200,182, + 67, 89,195,101, 41,209,137,166, 9,130,179,166, 35, 65,160,149, 34,113,158, 84, 71,226,104,176, 30,165, 3, 66,122,132,140, 36, + 75,231, 3, 9,146, 36, 29, 18,108,131, 74, 7, 8,153, 18, 66,136,235, 5,145, 34,164, 67, 40, 5,198, 68,127,191,236, 31, 89, +154, 64, 83,130,206,145, 82,225, 93, 11, 40,130,181,136,158,143, 17, 2, 49, 92, 71, 43, 86,157,167, 9,129, 89,103,232, 84,204, +101, 95,153, 24, 36,212,118, 45,198, 70,226, 94,133,165,232,101,139,247,156, 97,164, 82,238, 87, 51,102,245,146, 84, 42, 62,168, +207,208, 66,112, 22, 28,101, 91,210, 25,203,235,103, 11,110, 63, 92,224,187,152, 65, 18, 86, 51,194,100,147,176,170,160,200,176, +167, 51,190, 97, 60, 63,187, 53,229,111, 62,186,203,127,187,115,137,191,189,255,136,223,218,186,192,223, 61, 57,226, 55, 55, 47, +240,229,195, 71,252,187, 91,155,252,157,253, 99,126,227,210, 46,138,209,115, 95,194,119,177,155,117, 54, 94,232, 7,195,152, 23, + 46, 68, 44,234,231,187,117,215,211,211,126, 82, 81,255,145, 65, 48,105, 52, 42,247,140,111, 66,140, 23,140, 49,160,154,193,176, + 96, 99,178,206, 88, 4, 58, 33,120,118,247, 42,137, 82, 20,197, 0,145, 38,140, 6, 25,203,198, 80,117, 13,206,195, 73,240,125, + 18, 27, 79,132,126,193,245, 33, 49,231,161, 37, 46,142,204, 73, 40, 3,164,131, 20,239, 2, 77, 27,177,166, 85, 99, 49,153,142, + 99,122,111,250,209,116,127,197,210, 58,250,199,165,140,143,253, 60, 4, 69,246, 48,115, 84,175, 72,127, 42,181,174,231,199,208, + 17,239,131, 15, 63, 8,122, 73,116, 20,102,232, 12,167, 85,159, 95, 46,216, 45, 4, 71,173,103, 43,133, 60, 17, 17,119,159,193, + 56, 81, 84,166,143,179,125,122,167,254,209,131, 84,162, 49, 45, 84,193,177,155,104,150, 62,208,122, 71,234, 37,171,208,197, 34, + 37, 60,104, 98,148,172,251,241, 35,248, 59,111,191,207,167,126,238,103, 25,142, 10,118, 54,214, 73,178, 12,103, 96,243,194, 26, + 73,162,201, 18,141, 18,146, 60,141, 99, 48, 2, 88, 23,250, 61,116,212,104,139, 62,197,206,135,120,225,132,128, 23,176,168, 13, +165, 13, 84, 33,208,250,152,230, 38,129,129,150, 88, 23,176,190,119, 10,218,248,124,183, 54,224,157, 64,229, 41,149,130, 47,127, +229,117,190,118,231, 38,167,109,203,237,179, 37,169,144,108,143, 70,116,206,144, 74, 5, 2,150,101, 73, 87,213, 52,166, 99, 57, + 43,169,140,101, 53, 95, 32, 16,188,246,234,115,124,246,181,231,216,125,102, 7,165, 36,182,115, 76,134, 25, 82,168, 40,133,176, +177,163,213, 90,245,246, 59, 79, 75,136,108,111, 2, 66,120, 52,129, 68,123,164,128, 65, 42, 25,166,130,253,147,150,121, 11, 42, + 83, 36, 91, 3,212,229, 9,179, 44, 99, 88, 40,242, 97,138,203, 4,170,181,100, 37,100, 13,164, 85, 75,162, 3,162, 72,104,206, + 42, 86,119, 78, 57,123,247, 30,195,195, 37,195,221, 33, 94, 9, 38,169, 98,154,105,214,165,228, 84, 9, 78,133,100,238,161,242, +129,131,206, 81,181, 14, 21, 4, 63,181, 57,100, 60,204,184, 58, 29, 48, 65, 49,237, 28,239, 46, 44,143, 42,207,137, 87,212, 94, + 81, 76,167,232,193,152,201,231, 95, 99,109, 52,225,149,159,126,137,245,221, 93,142,110,220,230,180, 58,163,104, 20, 7,181,197, +250,238, 9,255, 27,112,203, 57,214,212,184,182,194,183, 29,206, 70,107,142,111, 43,252,254, 62, 15,125,205, 67,161,121, 36, 20, +186,110,248,189,217, 25,223,156, 47,216,117, 21, 74, 15,200, 58,195, 39, 22, 11,218, 79,127,140,175,220,221,231,247,254,223, 63, +160,222,187, 11,123,119, 16,123,247,225,225, 7,136,211,135,212,203, 83,110, 39, 99,126,126,107,196,118,154,144, 2,215, 77, 66, + 53, 59,225,127,120,247,117, 94, 28,111,210,165,113,109,227, 66, 96,225, 28,251, 58, 97,101, 3,206, 71,254,193,206,184, 32, 15, + 32,180, 96,101, 44,153, 82,132,224, 81,214, 50,234,106,138,224, 80, 2,132,105, 81, 34, 65, 40,137,237, 58,140,119, 24,235, 88, +152,150,219,109,205, 94, 91, 99, 85, 66,161, 37,222,244,217, 11,198,145,166,138,202, 6,150,117,139, 50, 6,233, 91, 70,190, 33, +119, 29,151,165, 99,214,118, 40,161,120,175, 92, 33, 72,120,102, 52, 96, 71, 39,180,120,142,218,134, 63,154,205,120,189,105,159, +100, 60, 52,117,212,228,232,132,103,242, 2,225, 45,175,201,192,179, 90,144, 73, 9,198,177, 46, 37, 39,198,240,103,139,146, 67, +235, 80, 42,160,210, 20,157, 15,217,205, 11,174,101,154, 23,210, 9, 69,185, 96,179, 53, 76,150, 43,166, 77,197,165,174, 99,125, +126,196,206,170, 34,239, 58, 46, 34, 40,138,140, 71,171, 50, 94,123,123, 11,220, 15,116,213, 79,251,223,127,194, 77,126, 4,110, +243,248,179,214,136, 62,162, 22, 41, 17,222, 16, 74, 67,125, 86,179,119, 54, 99, 71, 64,235, 28, 71,193,209, 52,142, 36,141,185, +243,206,217,152,220, 71,143,208,150, 18, 47, 37, 99, 1, 67,149, 34,108, 67,174, 83, 68,240,136, 16, 80, 74,161,180,198,155, 14, +165,211,248,255, 42, 13, 66, 69, 56,143, 78, 30,175, 73, 67, 79, 50, 21, 8,130, 51, 8,165, 9, 62, 32,164,196, 57,135,119, 29, + 72,133,107, 27, 42,215,178,232, 90,142, 92, 71,165, 21, 43,211, 97,156,101, 86, 87,212,214, 48,175, 75, 90, 99, 56, 94,157,114, + 86, 47,113, 93, 76, 13,205,164,162,243,158,198, 25, 58, 91, 71, 62,153,141,211,202,224, 28,243,186, 98, 86,118, 60,168, 27,190, +117,127,134,171, 75,124,215,197,233,136,245, 4,215,198,201,185, 51, 80,164, 8, 27,120, 40, 2,191,144, 42,254,215,179, 57,255, +229,133,203,252,131,249, 41,127,105,178,206, 31,207,102,124,122, 48,224,125,239,249,226,120,200,239, 60,122,216,239,212,207,119, +232, 66,199, 87, 40, 43,162, 10, 83,233, 39,123,225, 44,235, 81,174,254, 39,238, 99,127,116, 81,239, 49,168, 42, 34, 95,133, 76, +158, 40,202,243,130, 43, 91, 35,156,235,152, 12, 70, 60, 63,216, 96,168, 82, 54, 46,108,176,190, 49, 97, 56,202,169, 92, 32,209, + 2,141,102, 81, 87,180,206,210,150,203, 88,212,211,254,196,123, 14,157,193, 61,177,111,133,168, 48, 71, 38,209,246, 41, 4,100, + 58,138, 78,179, 62,116, 70,136, 72,116,115, 54,118,194,217, 8, 46,108,194,120,210,155, 68,237, 19,113,153, 16,113,167, 46,228, + 19, 12, 46,125,222,186,232,223,222, 46, 64,222, 71,173,202,143,232, 17,156, 3,153,227, 68,212, 45,100, 82,162,164,199, 42,193, +118,166, 24,249,192, 44, 4,174,104, 1, 38,112,220, 24,130,147, 79,118,233,231,187,245,115, 84,237,121, 56, 75, 15, 87,223, 72, + 51, 14, 86,134, 81, 34, 24, 1,123,101,199, 52, 81,120,239,104, 90, 8,231, 62,254,243,215,246,199,124,172,239,110,113,245,185, +171, 28, 30,159,209,118, 22,235,162, 53,195, 7, 98,161,245,129, 60,213, 81,200,229, 3,109,239,130, 8, 38,250,194,131, 7,153, +136, 40,228,203, 20, 78, 8,188,141,135, 68, 21, 4,173,245,116,198,163, 19, 25,227,101,125,164,205,121, 41,113, 82,112,218,121, + 26, 36, 22,129, 81, 26,169, 5, 70, 4,246, 30,156, 98,219,142,141,124,192, 70,158,145,234, 24,178, 32,133, 68, 8,197,201,106, +201,170,109,232, 92, 71,211, 52, 52,109,131,176,130,203, 59, 59, 92,187,180,197,178, 54,220,188,125,192,173, 27,247,121,120,255, +128,147,147,134,139,187, 19,166,131,140,166,179, 4, 60,169,142,118,186, 32,192, 17,217,251,238, 28, 84, 67, 32,147,144, 73, 65, +145, 18,243,236, 19,201,234,246, 25,234,168, 36,109, 3,173, 13, 24,231,168, 51,197, 65, 90,176,187, 54,192, 6,129,210,144,109, +174,193, 89, 64,172, 26,228, 78, 70,216, 26,226,157,195, 46, 27,138,105,193, 96,154,197, 29,108,174, 24, 37, 41,131, 32, 72, 31, +174,152, 47,150,124,235,205, 7,248, 89,205,222,237, 19,150,143, 78, 80,171,146,176,114,236, 92, 24, 81,100,154,149, 11,116, 85, +199,119,206,106,238,204, 42,188,146, 12, 6, 57, 27,163,148, 53, 9, 83, 13,133, 51,252,133,181,130, 23, 54,166, 20,105, 66,121, +237, 89, 84, 39, 88,203, 4,207,174, 13,217,185,176,195,238, 51,151,152, 92,216,198, 14,167,204,100, 17,119,138,182,251, 16, 74, +244, 49, 63,252,240,144,166, 44,121,235,108,201, 31,180, 53,223, 52,146, 67, 33, 25, 89,199,206, 56, 97, 83, 6,198,153,226,149, +179, 51,174,143,135,108,109, 92,100,111, 56,197,222,125, 31, 30, 62,130,114, 9,143, 30, 33,142, 14,145,237, 9,121,217,241,146, + 30,145, 90,143, 50,142,113, 93,241, 41, 5, 55,170, 37, 95,105, 21, 23, 7, 9,251,198,114,199, 7,206, 42, 71,139,100, 17, 34, +187,123,144, 72, 70, 90, 35,137,191,255,169, 16,148,182,163, 51,134,196,180, 12,130, 39, 13, 17,141,235,157,197, 56,135,117,142, +218,118,236, 45, 79, 40,125,199, 94, 87,115,234, 13,123,171,154,205, 52, 69, 56, 71, 98, 12, 74,107,172,113,236,173,150,204,155, +146,196, 25,214, 77,139,176,158,173, 96, 88,115,134, 13, 33,120, 80, 46,168,108, 75, 73, 74,174,225, 97, 83, 49, 43, 87,188, 63, + 59,225,171,243, 83,154,122, 21,187,197,166,238, 29, 65, 30,145,103, 12,165, 68, 4,199,101, 60,133,130,129,183, 36, 33,240,230, +106,193, 55, 22, 53,111,119, 45,210,117, 72,157,162, 84,194,122,154,176,155,142, 25,203,132,237, 84,115, 17,201,150, 82,172, 15, + 10, 10,149,162, 59, 19, 41,154,190,141, 54,208, 76, 50, 29,143,112,227, 1, 71, 70, 34,122, 97,240,143, 42,236, 63,224,131,255, + 17, 30,120,249,209, 98,175, 53,164,186, 39,223, 41,240, 50, 14, 37,234, 54, 34,184,157,225, 65,211,114,203, 72, 86, 4,190,223, + 6, 58, 97, 88,217, 88,124,141,115,184,224, 64,169, 88, 12,165, 64, 6, 72,137,144,171, 92, 72,164, 80,104, 2, 34,196,107,153, +210, 89,244,134, 88, 19, 15, 18, 62,230,117, 8,235,162, 41, 85, 74,130,105,192,199,159, 39,164, 36,116,109, 63,232,140,164, 58, +111, 44,222, 26,218,224, 40, 77,199,158,181,236, 57, 75,109, 45,149,139,120, 91, 33, 98,166,124,213,149,156,214, 51, 78, 76,195, +254,114, 70,235, 13,141,119,145,246,169, 37,137,243,204,109, 36,148, 58, 60, 74, 40,108,215,178,242, 14, 17, 60,137,240,220,173, + 58, 90,215, 18, 76, 31,196,163, 1,157, 18,154, 14,145,100, 80, 25,196,184, 64,212, 13,183,117,202,127,188,177,206,255,120,176, +207,191, 54,200,248,227,101,201,181, 60,101,134, 39,183, 29,255,240,228,132, 79, 76,167, 40, 38,207,127,233,113,135,238,109,244, +154, 43, 31,187,201,243,142, 80,244, 5,160,237,250, 83,229,191, 98, 81,215,242, 73,241, 13, 1, 17, 92,124, 20,215, 47,241,241, + 75, 27,124,226,153, 23,184, 52,221,226,165,173, 93,158, 25,111, 34,114,205,181,237,117, 86,222,210,153,192,104, 50, 32, 40,205, +131,131, 67,214,199, 99,110,159, 29, 96, 86,125,234, 88,103,226,207, 14, 42, 30, 58,240,209,190,117,238,137, 23,196, 19,155, 82, +253,247,137,184,140, 10, 34,118,242, 90, 70, 53,250,170,141,127, 63, 30,193,120, 8, 69,191, 46, 88,244, 39,235,243, 81, 55, 50, +254,172,115,225, 95,146, 63,225,212, 43,221,191,145, 93,188, 63, 79, 67,100, 30, 63, 31, 30, 66,252,217, 90, 4, 70, 69, 84, 87, +174,245, 9, 97,151,181, 70,121,207,134,138, 2,158,121,235, 34, 97,142,240,100, 5,114, 14,146,120,124,104,178,208, 70,162,220, + 84, 11,150, 33,230,239,166,137, 96,213, 6,188, 10, 76,148,160, 13,125, 34,158, 23, 63, 20, 23,251,244,199,205,239,191,195, 23, +255,173, 95, 97, 99, 50,100, 89, 54, 49,181,169,179,116,141,137,193, 10, 66,145, 38, 9,131, 76, 71,202,174, 13,125, 94, 76, 64, +247, 2, 63,173, 98, 82,152, 84, 18,215,249,216,125, 3,193,249, 56,198, 31,166, 12,138,148,198,249,199,254,112, 47, 4,101,231, +104,250,116,218,243, 19,123,227, 29, 89,170, 8, 33,161, 59,171, 65,138, 24, 24,163, 53, 73, 63,142, 12,193, 33,148,100,160, 52, + 74,105, 6,217,128,141,181, 45, 70,147, 49,235,147,156,189,253, 51, 30, 62, 58, 0, 41, 41,242,156,166,233,176,193, 82,163,216, +221, 26,225,131, 71, 17, 80, 74,162,117, 68,224, 57,231,232,140,165, 53, 54,134,163,244,145,188, 82, 4,180, 20,104, 17, 51,230, +147, 66,177, 56,108, 24,165,146,237, 92,113, 57, 75,240, 14, 94,155, 36,108, 21,154, 3, 27,240, 62,142,234,241, 30, 70,154,230, +210, 4, 51,200, 9, 89,130, 30, 21,136,237, 9, 97,154, 35,134, 9,153,243, 80,183, 4,235, 88,168,192,187, 66,112,253,229, 29, +214,114,201,149,205,130,143,125,108,139,112, 92,177, 38, 2, 97, 99,196,126, 23,120,111,105,120,115,222, 50, 51,129,221,164, 99, +224, 29,207,155, 57,203,147, 67,158, 75,115,182,117,202,115, 4, 46, 21,145,184,101,141,225,189,178, 68, 59,199,154, 15, 12,132, + 98, 82,228, 20,137,100, 45,207,216, 42, 82, 46, 76, 6, 12, 54, 38, 28, 39, 99, 12, 22,223,118, 63,144, 4,198,226, 12,230, 51, +186,170, 36,156,158, 16,164,163,194,243,234,112,196, 90,146, 80, 32, 73, 19,141,106, 59,210, 97,194, 48, 36,220,169,142,225,228, + 36,254,238,104, 13,139, 5,161,172,185,115,188, 79,222,204,217,182,138, 20, 40,178,140,137,119,108,183, 43, 30, 46, 79,185,217, +118, 28, 90,203,101,239,216, 54, 13,223,245,130,147,182,230,154,106,153, 91,197, 51,169, 36, 85, 26,109, 3,214, 25,172,243, 28, +149, 11, 26,111,217, 49, 29,162,109, 81,222, 48, 91,205, 16, 33,112,216,173,120,103,254,136, 42, 4,238, 45, 78,121, 48, 63,226, +102,181,162,170,150, 72, 17,176,171, 37,251,213,130,179,206,241, 96,118,130, 13,158, 77,211,209,181, 45,181, 51, 76,188,193,135, +192, 26,129,196,118,100,182,161,241,112,228,106,206, 26,195,119,246,239,242,181, 71,247,249,254,236,152,114,177,128, 85, 5, 39, + 11, 88,172, 98,151,222, 58,200, 51,108,128, 81,154,241, 65,215,113,217, 55,184,186,102,102, 12, 15,218,154,127, 81,150, 72,211, + 34,130, 67, 57,131,212, 25, 87,211,140,105,158,147,250,192, 40, 75,217, 29, 20,108, 37, 3,134,131, 28,229, 37, 88,131,176, 6, +111, 59,172,181,100,105, 74,161, 21,147,193,136,106,154,115, 38,250, 61,126, 80,209, 77,209, 95,167, 62, 90,204,197,211, 94,248, +159,112, 67,107,132,146,113, 74,231, 69,236,137,212,147, 97,188, 8, 14,124, 64,184,216,136,148,139, 6, 23, 60,123,157,231, 65, +219, 17,122,108,107,227,162, 69,239,156,176, 23, 3,158, 2,107, 74, 19, 76,135, 14, 14, 37, 53, 88, 23, 83,191, 67, 76,100, 59, + 47,238, 16, 16, 82, 19,188, 69, 4,240,214, 32, 84,130,183, 13, 8,133,235,237,213, 65, 42, 92,215,225,123, 79, 73,227, 90,170, +174,228,160,173,184,225, 91,218, 52,227,172, 89,225,172,165, 54,134, 89,189,192,226,153,155,150,133,235,184,187, 92,177,244,130, +121,185,140,217,101, 34,170,107,103,222, 48,214, 26, 23, 60, 2,201,170,169,168,112, 24,239, 80, 66,114, 84, 55,200, 34,225,168, + 1,239,187,184,254,241, 50, 70, 69, 75,141,176, 6, 38, 3,196,217, 2,177, 62,229, 25,219,242,181,206,240,249, 34,231,173,206, +178, 50, 53, 55,140,163,236, 58, 30, 24,207, 84, 4,190,182, 56, 65,177,118,237, 75, 36,170, 7,195,232,152,231,157,232,120, 83, +250,195,227, 93, 99,162,255,208,152,127,181, 0,152,180,207, 92,215, 17, 82, 35,242, 49, 92,186,204,175,190,252, 9, 94,189,250, + 50,105, 54, 96,123,123,155, 75,235,155,120, 18,158,189,180, 78, 35, 36,237,170,102, 48,202,105,173, 71, 42, 73, 38,115,234,174, +197, 55, 45,167,222,198, 39,227,220,158,161,101, 31,129,218, 39,191,185,238,201,232, 95,245, 34,183,200,246,140,111,184,243,119, +176,212, 49,113, 45, 81,113, 12,223,118,209,214,103, 2, 44, 87, 96,234, 15,171,216,149, 0,145,244,157,115,255,174, 21, 60,225, +183,107,221,115,220, 93, 47,158,179, 63,228,249,136,246,182,221, 97,202,172,243, 60,167, 21, 19,165, 24, 4,137, 14, 81,220,230, +140, 99, 34, 36,163, 4, 78,218,126,243,117, 14,245,177,246,169,207, 79, 17,250, 68,191, 43, 62, 15,101, 8,176,169,160,108, 2, +109, 48,100, 58,193,153, 62,128,230, 39,116,234, 0,107,155,235,188,242,202,139, 4, 41, 72,115,205,198,120, 72,231, 2,182,243, + 12, 38, 3, 46,175,143, 81, 90,160, 84,204, 74,246,189, 67,210,248,128,150, 17,214,160, 50,137, 12, 49, 94, 85,246,246, 16, 84, +188,127,137, 76,200,242,120, 40,136, 83, 50, 65, 32,224, 2, 72, 33,226, 83, 74,160, 72, 53,227, 60, 69,202, 64, 58, 76, 57,126, +112,138, 18, 10, 37,101, 20,188, 16,185, 5, 74,106, 70,249,144,193, 96,192,179,187,151,248,245,159,249, 56,155, 27, 99,246,143, + 22, 28,157,206, 24, 78, 70,140, 39, 35,202,178,162,115, 29, 27, 59,219,236, 92,218,196, 56, 79,145, 39,140,138,148, 36,145, 24, + 27, 21,175,214,122, 66,159, 36,230, 93, 92, 25, 9, 31,176, 54,178, 18,206,175, 87, 74, 9,150,165,165,107, 2,249, 32,137, 57, +209, 90,146, 56,203,254,157, 83,228,170,229,221, 59,103,156,236,159,177,153, 41, 90, 25,184, 51,144,188,227, 36,199, 78,114, 88, + 59,110,189,115,143, 71,247,246, 56,156,149,148,214, 82,183,150,170, 53, 36,211, 1, 11, 1,223,190,241,136,236,246, 13, 62,247, +252, 37,254,198, 87,222,230,209, 59,183,105,131,103, 88,149, 36,121,198,123,179,134, 3,165, 56, 10,129,195, 32,248,181,171, 5, +191,126,109,155,183, 31, 60,228,155, 15,110,242, 79,238,222, 35,168, 0, 94,112, 57,139,194,179,251, 7,199,220, 95, 44, 24, 59, +199,192, 88,148,233,200, 2,140,181,230, 74, 62,224,103,183,175,176,150,167,180,137,198,111, 13, 56, 45,214,177,178, 32,212,154, + 96, 10,144,105, 47,191,139,204,242, 48, 59, 37,156, 30, 18,116,198,107,215, 95,100,153, 77,216, 17,142, 76, 69,173,132, 74, 20, +171,214, 82,174,206,184, 89,183,132,229, 28,202,138,160,227,117, 39,216,128, 43, 27,190,183,127, 68, 48, 51, 46,167, 5, 35, 60, +197,104,140, 91,157, 50, 59,222,227,247, 15,143,120,239,116,193,221,206,242,229,131, 7, 60, 76, 50, 78, 44,220, 53,134, 55,218, +142, 63, 41, 27,254,164,178,188, 42, 12,202, 59,230,229,138,247,203,134,133, 89,226,219,154,172,107,152,205, 23, 20, 74,242,246, +242,140,119,206, 78, 56,237, 12,247,151,103,188,123, 52,227,189,211, 19,110,221,220,227,224,116,197,189,147, 67, 6,218, 18, 92, +199, 89,181,192,154, 21, 89, 91,225, 77, 67,144,144, 4,135,145, 10,237, 29,185,247,132,174, 70, 59, 3,166,194,116, 13,111,150, +103,204,170, 25, 77, 85,225,202, 10,206,106, 68, 91,193,193,105,116,233,204, 74, 68,103,160,169, 48,153,100,133, 96, 89,151,188, + 93, 54,188, 55, 91,240, 94,181,226,187,203, 21,194,180, 8,103, 17,109,131,116, 6, 41, 3, 23,138, 2,229, 2, 90, 72, 10, 31, +120, 46, 75, 89, 83, 58,226,175,149, 66,167, 41,190,109,168, 93,139, 21, 14,225, 29,211, 98, 68,162, 37,195, 44,229, 76, 8,150, + 66, 64,145, 65, 58, 64, 36, 3, 68, 26,217,242,194,187, 15,129,109,158,190,233, 31, 2,184,121,220,173, 39,125, 81,239,127,199, + 63,180, 44, 12, 1, 17,250, 70, 40,213,143,243, 49,132,239,192,122,188,131,163,101,199, 28, 71,129,196, 27, 75,135,196, 58,199, + 80, 41,202,174,166,243,150,156,136, 69,238,156, 65, 17,245, 8, 65, 4,148, 84,216,166,126,172,213,242,166,137,235, 63,215, 70, + 1,154,179, 56,215, 98, 93, 3, 82,198, 3,159,169,113,128, 17,158,186,171, 57,107, 87, 84,206,114, 11,199,126, 87,113, 96,106, +206, 90, 75,101,106,142,154,101,100,181,183, 37,165,183,156,214, 53,149,117,172,130,195,121,137, 12,129,153, 53, 52,182,139, 61, +241,249, 52,136, 64, 16,158,178,139,142,158,101,137,101, 66,182, 0, 0, 32, 0, 73, 68, 65, 84,221, 50,144,138, 34, 4, 76,170, +153, 45,226,227, 15,244, 73,154, 26, 68, 62, 64,204,150,136,173, 41,226,224,132,114,109,194,199, 21,188,141, 70,116, 21,211, 44, +163,180, 29, 59, 50,229,253,114,198, 80, 69,131,171, 98,227,249, 47,209,217, 39, 59,117,161, 99, 1,234,122,111,186,137, 72, 70, +234, 85, 28, 19,201,126, 7,126, 14,148,249,151,234,214,243, 88, 72,133,131, 98,130,152,174,243,201,171,151,120,118,243, 25,132, + 78, 80, 42,225,226,214, 26,193,121,116, 8,204,235,142, 34, 19,104,173,168,106, 75, 72, 5,243, 85, 75, 85,119,120, 99, 25,164, +146, 91,179,167,226, 8,207, 5,120,178,127,171,157,135,151,156,219,191,242, 65,111, 13,147,125, 26, 90,159, 43,158,244,143, 57, + 75,122, 92, 99,136,187,250,197, 18,202, 50,222, 62, 10,107,145, 50,190,179,147, 36, 30,126,206,139, 56,125,145, 63,143,167, 85, +105,156, 24,164,242, 7, 11,187,148,224, 53, 11,103, 89, 79, 18, 54,165, 32, 11, 17, 62,227, 9,236, 8,193,153, 11,140, 3, 56, + 33,217,212,146, 35,215,119,253,231,157,250,227,207,189, 69,174, 47,244,174, 47,252, 57, 34,238,151, 91, 67,154, 43,180, 82, 49, +158,150,222, 3,255,231, 0, 16,188,251,221,183,248,236,175,254, 2,219,235, 19,164,146,204, 87, 45,211,233,144,147,147, 25,243, +211, 37,181, 9, 72, 21, 59,210,104, 3, 11, 49,158, 84, 42,138, 92,147,100, 18,225,162, 11,221,138,152,188,150,104,141, 22, 10, +111, 61, 74,198, 16,149,170, 54,120,231,113,206,211,117, 30,173, 37, 74, 62,185, 13,243,140, 76,235,152, 1, 36, 20,109, 29, 40, + 23,101,223, 97, 4,178, 36,165, 72, 7,140, 39, 19, 38,211,117,158,123,254, 25, 62,247,242, 46,139,147,146,111,188,127,135,116, +144, 81,140, 6,180,109,199, 98, 85, 49,152, 12,185,120,113,155,225,184,192,247,187,251,213, 50, 94,168, 7, 89, 18,197,123, 62, + 18,242,140,141, 5,221,121,143,235, 85,253,198, 58,156, 11, 72, 41, 73,180, 34, 77, 52,227, 65, 74,146, 42,208,113, 60, 88, 87, + 29,109,211,113,116,255,144, 91, 55,239,176, 56, 61,225,224,225,125,110,223,219,231,237,219, 15,248,214, 91, 31,112,156,175,177, + 51, 46,152, 37,154,183, 66,194,151,191,250, 45,190,254, 63,255, 9, 95,189,241, 46,255,232, 15, 94,231, 31,253,227,111, 35, 86, +199,188,124,249, 58, 39,251,167,252,155,175,190, 76, 33, 52,191,255,213,111,112,229,234,101, 62,251,185, 23,248,245,237, 33,127, + 38,128, 11, 67,202,165,229,229, 73,134, 82,154, 95, 30,166, 56, 31,248,238,253, 3,188, 53,124,236,234, 85,220,100,131, 67, 2, +218, 25,238, 86, 45,167,171,146,235,197,152, 32, 4, 3, 33, 49, 38,134,136,164, 82,242,233,141, 93, 46,236,236,176, 57, 28,115, +211, 90,110,184, 12, 49,154, 64,161, 48, 58,193,111, 20, 20, 91,235,236, 92,219,129,209, 58, 45, 26, 86, 22,164, 37, 4,201,228, +217,103,185, 62, 78, 25, 11, 73,103, 59, 18,173,217, 47, 87, 44,155,150,133,149,124,176,154, 69,104,211,108, 21,131, 44,130, 36, +120,219, 31,236, 4,111,207, 86, 92, 80, 13, 27, 74,211, 85, 37,143, 22,135,252,189,123, 71,188,249, 96, 70,117, 60,231,232,224, + 16,237,107, 46, 54,103, 44,110,220,160,109,103,160, 4, 66, 39, 8,219,242,237,229,140,163,166,230,165, 34,227, 15,110,189,135, +246,129,213,252,152,211,249,130,155, 85,203, 91,243, 5,239,150, 21, 95,155,151,188,126,182,228,221,121,205,131,217,146,217,106, +137,107,107,156,109,169,170,146,155,243,154,253,182, 37,152,138, 60,213,236, 74,201, 84,128,113,150,160, 20,170,107, 81,214,112, +236, 45, 27,166,161, 67, 64,215, 50,111,151,212,139,138, 85, 85, 33,124, 0,231, 16, 94,192,188,129,118, 5, 93,141,176, 29, 84, + 37,156,158, 33, 14,143,240,103, 11,192,227,203,138,122,181,164, 92, 44, 16,139, 5, 98,181,132,186, 66, 46, 22,136,174, 69, 9, +195,202,117,172,107,141,144, 9, 74,192, 69, 45,217, 17,158,161, 76,145, 90, 18,234,146, 96, 29, 70,128,212,138, 81,154, 33,128, + 66,105, 10,165,113,161,195,100,138,153,241,136, 44,129, 97, 6,163, 17, 66,166, 72,149, 34,113, 72,231, 62, 4,181,209, 79, 21, +118,253,195, 10,187,142, 35,115,126, 72,136,140,112, 46,214, 20, 41, 99,167, 46,162, 72, 48,142,203, 29,162,234,192, 5,170, 85, +203,253,202,176,232, 12, 34, 4,130, 12,204,155, 38,114,230, 3,116,109, 75,227, 12,185, 15,184,224,232,188, 65,122,168,187, 42, +166, 45, 58,135,235,106,156,233, 98, 65,247,142,174, 94, 17,132,199, 88,139, 13,142,206, 89, 90,111,113,222,177,104, 86,148,109, +195,153, 45,217, 55, 45,111,119, 75,110, 54, 43,110,149, 53,119,203,154,210,118,220,238, 58,150,173,161,242,142, 86, 73,102,171, + 18, 43,161,179, 22,101, 35,236,108,209,212,148,222,227,181,228, 65, 85,115, 49, 75, 56,181,134,182,173,177, 33,224,149, 64,219, +232,199, 55,214, 49, 85, 10, 33, 96,179, 72,217,171, 76, 20, 81,123,143, 48, 22,108, 28,193,203,249, 10,177, 54, 69, 30,204, 56, + 77, 20, 98, 49,199, 14,134,172,230,115,188,210,156, 52,115,100,154, 49, 11,158,114,121,134, 98,116,237, 75,232,243, 78,189, 79, + 87,235,179,101,177, 29,212, 77,236,222,109, 63,218, 78, 84,180,141,105,126, 44,192,228, 7, 62,178, 52,238,184, 19, 21, 79,132, +227, 33,131,233, 26,175, 93,190,198,100,109, 28, 35, 59, 61, 12, 6, 57,178, 23, 64,248,186, 69, 43,201, 96,152, 97,156,229,204, +121,170,101, 75, 23, 12, 78,192,114,181,228,160, 93, 96,170,174,183,204,201, 39,209,169,231,176, 27,211, 19,230,210, 34, 22,239, +252,188, 8,247, 59, 23,165,123,206,125,218, 43, 80,251,125,181, 51, 31,142,150,253, 97,235, 4, 21,161,251, 72,221, 23,243, 36, + 58, 6, 92,128, 81,209,231,201,247,197,190,238,126,112,212,237, 92, 31, 75,171,217, 78, 20,195, 30,206,210,187,238, 48, 6,118, + 18,193,125,239, 24,186, 64, 30, 60, 71, 82,224,186,167,118,233,231,157,250,211, 74,246,126,109, 18,124,192,132, 56,238, 86,104, +108,176,113,244, 29,252, 19,220,237,159, 51,170,113,184, 54,225,226,181, 93,138, 36,199, 56,195,254,253, 35,188, 51, 12, 6, 35, + 28, 48,155, 55,120, 4,147,113,134, 16,130,245, 34, 65, 8, 65,158,107,148, 82,100,153, 36,207, 20,193,157, 3,102, 4, 89, 46, + 73, 19, 69,150, 69, 14,130, 53,158,209, 80, 19,130, 64, 72, 17, 71,102, 65, 60, 30,225,159,199,218, 7,235,217,159,149,125, 34, +159, 96, 48, 25, 50,154, 76, 24, 77,198,140, 38, 99,146, 60, 69,167, 5,173,177,236,205, 86,204, 77, 96, 48, 28,130, 20, 72, 47, + 73,146,132,233,250,152, 52, 77,104, 27,195,236,116,193,219,239,191,203,255,246, 71, 95,231, 79,254,244, 13, 82, 20,235, 59,107, +140,139,244,241,232,207, 67,175,118,117, 44,202,142,186, 49,148,165,161,169, 45,214,248, 72,197,235,237, 55, 39,173,231, 99,157, +225,170,246,188, 25, 60,243,170,102,181,170, 89,149, 21,117,187, 36, 81, 9,243,213, 25, 15, 14,247,216,223,127,196,173,218,241, + 96, 1,126,123,196, 34, 75,176,207, 60, 75,158,150, 28,190,254,128,240, 65, 75, 56,171,184,251,157, 61, 62,243,133, 87,184,242, +252, 46, 97,125,192,157,121, 69,125,122, 76, 97,106,222,185,117,159, 7,143, 30,242,245, 59, 15, 57,122,255, 30,215,240,252,123, + 47, 61, 67, 45,224, 31,191,243,128, 71,139, 57,111,207,106,158,219,216,228, 23, 63,243,113, 54, 94,125,158,181,235,187,220,244, +130,123,247,238,240,193,131, 91,124,112,114, 76,131,103, 39, 31,240, 64,167, 44,218, 21, 50,209,188, 52, 93, 39, 77,115,106,107, +248, 78,215,241,102, 82,176,157,101, 92,209,130,157,196,144,143, 51,198,211, 9,195,124,192,246,198,144,193, 48,101,161, 83,124, +231,193, 25,102, 23,183, 25,232, 49, 74,122, 74,165,104,234,154,253,174, 99,229, 53,221,149,171, 28, 79, 47,210,118,115,120,120, + 16,131, 69, 92, 31, 22,226, 61,190,159,144,188,109, 91,218,106,201,205,182,228,255, 40, 87,124,103,105,113,243, 6,247,193, 28, +127, 56,199,220, 93, 49, 95,149, 96,170,216,217,248, 14, 49, 63, 70, 78,214,216, 30,111,241, 59, 95,248, 4,191,252,169,151, 48, +173,231, 96,126,204,219,251, 51, 62,184,247,128,123,103, 43,238,122,193,163,166,165,105, 44,214, 54,177,115,107, 27,108, 23,133, +130,206,251, 88, 32,188,165, 92,173,216,107, 2,147, 84, 50,192,209,248,142, 11, 66, 82,123,143, 22, 2,235, 12, 83,211,178, 82, + 9,109, 53,231, 65, 85,179, 10,129,174, 92,113, 58,171, 98, 55,142,138, 81,163,161,111, 8, 62,186,211, 54, 22,177, 92,192,124, + 14,179,121,108, 44, 22, 53, 98, 54, 67,156,157, 32,142, 79, 16,199,199,200,197, 2,121,186,128,197,130,185,109,153,153, 10,133, + 98,135,192,181, 52, 35,181, 22,209,182,248,206, 97, 8, 56,111, 73,149, 34, 17,138, 34, 73, 73,133, 66,121, 79,234, 3,206, 59, + 38,227,156,113,145,240,252,120,192, 11,107, 3,214,166, 5,227, 34, 97,222, 4,148,245,113, 59,233,253,227, 66,158,126,164,200, +235,167, 58,122, 33, 68, 44,210,166,239,212,205, 83,227,119, 23, 67, 78, 68,136,157,186,112,253, 4,247, 60,184, 38, 8, 68, 87, + 65, 42, 17,109, 77,217, 6,246,219,134,147,186,101,148,234,200,205,234, 26,154, 0,141, 49,204,113,164, 33,208, 56, 67, 27, 2, +166,107,113, 34,208,118, 53, 22, 79,101, 27,156,107,113,214, 96,189,197,184, 14,227, 13,101, 87, 81,217, 22,231, 58,246,218,138, +131,122,198, 7,109,201,237,106,197,183,109,205,222,114,201, 55, 79, 87, 44, 92,199, 65, 89,115, 38,224,208,121, 78,172, 67,107, + 69, 89,150,168, 52,199, 6,139,113,158, 78, 9,150,141,195, 56,207,178, 50, 28, 25,199,153,241,140,173,101, 32, 28, 86, 40, 90, +103, 81, 46,166,146, 90,239, 25,234,120, 65,203,164, 96, 36, 21, 75,239, 89, 90, 19, 15, 62, 68,160,152,148, 14,129, 66,182, 75, +212,100,140,154, 45, 81, 89,138,182, 14, 53,202,145,117,137, 74, 52,170,142, 60,125,169, 51, 20,235,207,127, 9,219,119,234,231, +230,131,208, 7,172,208,231,131, 43, 25,139,177,234,247,235, 42, 60,137, 88, 85,242, 9,159,252, 71, 89,192,164, 4,153,197, 93, +118, 58,132, 98,128, 72, 83, 6,195, 28,145,164, 76, 82, 77,146,102, 40, 25,240, 1,114,173,145, 74,144, 9,176,166,163, 89, 53, +204,106, 71,219, 25,206, 22, 37, 42,213,180,171, 6,176, 28,148,115,234,170,137,221,177, 13,177,112,203,190,115, 69, 64, 48,125, +242,141,140,209,167, 73,127,191,125,136, 35,167,208, 31, 52,252,249,232,186, 39,196,157,123,224,127,220, 58,129,126, 77,145, 21, +189, 50, 61,196,195,129,214, 79,146,215, 68,191, 14, 16,231,251,240,143,118,252,113, 70, 53,214, 30, 47, 21,218,129,246,113,188, +123,190,122, 95, 35, 78, 70, 74,239, 25, 10,207,105,119,142,138,181,125,132,107, 95,118, 30, 47,181,206, 95,147, 94, 84,231,125, +244,104,170, 62,207, 62,244,135, 55,255,231, 63,148,221,248,254, 13, 94,249,204,107,168, 76, 51, 46, 10,234,182,195, 89,199,114, + 49,103, 99,115, 74,158,198, 85,205, 48, 75, 98,200,139, 32, 10,224,132, 32, 81, 2, 27, 4,206, 6,130,140,170,101,173, 98, 24, + 74,146, 38,164, 89,138, 76, 52, 74, 9,130, 9,113, 56,212,196,200, 93, 99, 60,198,216,120,190, 10,158,217,178,163,174, 61,213, +178, 67, 41,201,104, 24,139,119,146, 37,188,120,125,155,151, 46,111, 16, 84,138, 15,129, 68, 73,164,144,172,170, 21,243,147, 5, + 82, 10,100, 34, 56,124,116,192,247,110,188,195, 31,127,247,109,254,236,246, 45,190,242,246, 45,110,126,103, 15, 62,168,225,118, +205,141,113,205,199, 47, 93, 98, 99,125, 68,170,162,187, 91,247,178,146,198, 56, 58,227,112, 30,154,198,210, 54,142,198,246,201, +193, 90,146, 41, 77, 55, 84,124,122,163, 96,120,161,224,238, 32, 97,184, 53, 98,124,101,131,236,165, 75, 36,207, 93, 33,108,173, +145,138, 1,251,167,167,188,251,206, 1,109, 17,120, 20, 18,214,150,150,236,194,148, 3, 37, 25, 60,127,157,171,215,183,121,246, + 51, 59,124,230, 87, 94,226,211,191,246,113, 78,148,229,238,193, 1,239,223,126,200,183, 30, 60, 68, 33,248,173,201, 38, 27, 94, +240,207, 27,203,157,170, 65,234,140,201,197, 75,216,205, 41,199, 90,211, 77, 11,154,139, 91, 36,151, 47,113, 89,167, 20, 71, 21, +223, 60,171,121,243,254, 41,239,221,186, 71,215, 89,178,245, 77,222, 42, 87,236, 47, 79,169,234,138,249,114,142,150,130, 85,158, + 83,213, 75,164,181,220, 48, 29,223,181, 6,165, 7,228,222,179, 46, 61, 3,215,210,106,201, 95, 26, 13,249, 43,211,117, 94, 82, + 18,167, 21, 42,151, 44,172,224,250,100,200, 56, 87, 84,197,132, 3, 18,142, 90,207,253,106, 73,105, 45,109, 91, 51, 89,219, 34, + 75, 4,114,178,201,194,204, 8, 71,199,208, 57,130,238,233,118, 66,224,165,161, 89, 54,188, 57, 95,242,237, 69,201,161, 83, 56, + 65, 20, 82,174, 41,252,105,212,231,167, 43,207, 79,229,154,191,184, 94,240,252, 98,197,205,186, 4, 28, 87,159,189,198,199, 71, + 3,214, 18,205,223,122,235, 30,183,131,136,187,202,163, 57,193,119,120, 20, 94,107,156, 15,209,137,210, 69, 30,130,243,254, 49, +201,207, 3,193, 69, 17, 21, 78,112,156,164, 92, 25, 42,118,131,199, 58,203, 24, 65,107, 58,134, 4,156,115,100,166, 97, 30, 60, +167,222, 51, 63,155,115,186,168,232,218, 22,119,178,138,214,170, 44,229,213, 11, 5,255,246,165,117, 62, 62, 29,243,198,241,234, +113,108,234,227,142,214,244,130,221,182,133,182,142, 28,143,208, 7,184,244,187,101, 89,199, 8, 95,121, 82, 34, 59, 67,233, 26, + 82, 37, 24,219,142,245,166, 66, 57,143,243,150,186, 45, 9, 50, 32,157, 39,149, 2, 45, 64, 11,141, 12, 30, 41, 37,133,146,108, + 38, 41,159, 24, 12, 25, 39, 9,211,108,192,122, 62, 96,146, 40,126,122,115,194,199,198, 3,214,181,224,200, 58,146, 0,169,247, +164,125, 97, 79,250,219,211, 29,187,240, 81,148, 38,180, 64, 24,158,100,190, 59, 31,129, 55,206, 61, 1,210, 40,137,176,145, 61, + 32, 68, 28,249,147,104,132,141, 13,143, 16, 81, 84,214,117,158, 71,171, 14,105, 59,202,206, 50, 8,130,149, 8, 88,235, 56,117, +142, 3, 1, 71,182,163,146,146,135, 85,201,137,112,172,154, 21, 51,239,104,218,150,189,174,193,155,134, 67,215, 98,141,161, 82, +138,101,219,114,191, 46,185, 85, 46,248, 32, 56,190,113,186,226,131,206,112, 99, 94,243,192, 58, 26,231, 89,213,150, 86, 6,170, +101,133, 79, 83, 26,239, 73, 8, 56, 41,169, 77, 71, 25, 4, 74, 40,142, 86, 13,235, 89,194,126,109, 40,155,134,182, 53,108,103, +146, 19,103,216,148, 26, 97, 45,155, 74,209, 66,212,191, 16, 83, 30,231,206, 16, 2,212,214,113,185, 72,120,127,209, 64,211, 69, +205, 53, 30,233, 4, 82,216,184,202, 59, 93,160,130, 64,167, 26,109, 12, 74, 43,116, 8,104, 23, 35,175,149,148,200, 85,133, 98, +218,239,212,221, 57,253, 77,197, 66,224,252,147, 0, 17,210, 94,237,221,227, 93,117, 74,246,252, 69,214,175, 94, 64, 95,216,164, + 29, 15, 97,107, 19, 6, 99,184,120, 33,126,189,181, 9,147, 53, 24,140, 98,145, 77,147,136, 60,204, 18,228, 56, 35, 77, 18,100, +112,140,117, 26,177,125,185,102, 58, 28, 49, 29, 23, 76,166, 41,174,181, 56,111, 32,120,188,132,106,181,192,244,172,220,163,211, + 25, 85, 83,114, 80,205,152,213, 21,198, 7, 66,119,190, 15,239, 85,225, 69, 10, 77,251,132,134,148,232, 88,212,181,142, 43,134, +244,169,241,187,238, 59,247, 68,199,125,134,210,177,168, 43,249,227,167, 17,185,142, 43, 5,124, 20,212,233, 60, 22,246, 44,233, + 45,117, 34,138,239,206, 73, 76,173,123, 34,182,251, 8, 51,255,149,188,160, 8,176,239, 59, 46, 41,141, 2,150,253, 47,241, 88, + 8, 18, 33, 72,165,164,240,240, 64, 75,130, 0, 90,251,228, 96, 96, 31,171, 84,122,111,190,232, 21, 27, 34, 78, 16,148, 2, 93, +244,147, 8, 27, 31,223,191, 76,172,110, 34,217,183, 29, 47,189, 16,225, 22, 87,118, 54, 57, 91, 84,156, 29, 31,225,131,138,135, +177, 60, 99, 88,100,212,181, 33,200, 88,212,109, 32, 90,209,164,192,123, 17,247,228,113,225, 69,162, 20,214,250, 30, 69, 31,199, +219,182,207,137, 15,222,211, 57,135,107, 28,131, 97, 26,247,218, 65, 16, 28,228, 89,194,104,152, 51, 26, 23, 92,216, 25,179,181, + 49,224, 51, 47,237,240, 51,215, 54, 89, 53,134,251, 71, 75, 30, 62, 60,160,106, 58,190,249,230,247,185,127,116,196,239,127,239, + 29,254,236,143,223,226,235,223,187,193, 27,119, 30,112,255,222,156,178,181,180,231,118,205, 81, 30,133,136,135, 6,127,167, 38, +127, 38,229,202,181, 93, 38,195, 2, 25,226,240,197, 19,207,141, 65,200,232,149,117,145,124,165,164, 68,101,154, 97,161, 25, 23, + 41, 27,121,194,239,189,183,207,215,111, 28, 49,187,121,196,217,173, 67, 56, 94,177, 60, 89,224,131, 35,153, 20,236, 92,219, 98, +114,253, 42,255,249, 47,190,134,218,220,101, 49,157,160,101,224,167, 82,197,219, 69, 65, 54, 72,185,250,242, 46,249, 51, 23,144, + 23,183,185, 57,235,248,211, 15, 30,240,255,157,214,124, 93,140,120,127,178,203,175,188,250, 34, 47, 92,222,228, 52, 31,242, 72, +228,108, 77,167, 60,251,201, 23,153,236,110,112, 40, 20,157,245, 12, 11,205, 32,207,120,118,152,241,153, 66,176, 88,214,124,251, +100,193,221,166, 98,103,103,141,245,103, 47, 51,188,180,205, 88,143,120,189,236,184,175,167,188,176,181,205, 21, 41, 89, 10,193, +119, 66,224,123,214,177, 39, 21, 73, 26,149,220,169, 20,180,213, 18, 99,106, 26, 23,248,205,233, 58,207, 12, 71, 92, 72, 50,238, +217,142, 3,231, 24, 42,152, 52,150,141,249,138,105, 98,145,131,117,110,216,138,169, 74,233,108,135,242,142,253,147, 3,134,211, + 77,130,113, 44,101,130, 93,206, 8, 85, 5, 62, 16,186, 38,142,225,173,193,227,241, 66,226,250, 11,179,147, 26,145, 74,134,163, +132, 38, 11,140, 22,129, 79,108,228,252,226,245,117, 62,183, 57,102,146, 37,172,117, 14,177, 90,241,126,115,198, 63, 95, 88, 78, +207, 22,124, 99,190,136, 86,167,181,141, 8,183,240, 16,186, 50, 90,243, 44,120,215, 60, 41,228, 66,196, 46,253, 41,149, 63,196, + 97,165,235, 90,198,227,156,165,113,236,138,128,116,134,169,177, 52,174, 37,224,153,183, 45,117,107,168,173,101,182,108,168,170, + 22,233, 44,141,233, 16,198, 32,138,156,255,228,202, 22,191,188,115,129, 65,170,248, 86,219,208,204,234, 15, 77,205,196, 71, 35, + 85, 85, 44,228,231, 2, 52, 33,163,128, 86, 90,139,176, 29,162, 44, 17,199, 75, 14,143, 79, 57,105,102,236,132,142,177,237,232, +154, 18,159, 38, 24,107, 8,109, 69, 22, 60,174, 51, 72,161, 48,222, 32,132,100,173, 24,179,158, 23, 12,178,130,141,124, 76,167, + 20,195,100,192,246,112,157, 11,105,193,115,195, 33,151, 7, 57,207, 72,205, 21,165, 41,148,228,106,158,179,150,165,124,122, 52, +101,223, 91, 18, 33, 80, 61,131, 94,156,119,235,177,245,142,161, 72, 46, 10,173, 63,164,144,151, 18,153,196, 68, 68,233,125,252, +218,121, 68,255,119,162,235, 34,202,214,185, 24,113,237, 61, 39, 93,199, 94,231,249, 32, 56,110,159, 54, 60,244,134,165, 20,124, +208,118,220,110, 27,110,215, 45,247,188,225, 86,215,241,102,101,120,171,108,184,163, 2,183,156,225, 77,211,114,100, 44,111,152, +142, 7,117,201, 91,182,227, 86, 91,243,118,109,120,163, 49,156, 25,203,204,122,218, 16,237,171,198, 56, 80,130,214, 70,203,173, + 49, 6,135,103,222,121,230, 62,142,241, 59,235,121,104, 12,153, 20,204,154,150,206, 90, 66, 99, 17,198,177,108, 60,151, 7,138, +220, 88,174,103, 41, 82, 4,182,149,194,123,207, 26,208,244,152, 97,107, 61,169,128,101,221,225,125, 96,225, 44,194,199, 60, 18, + 9, 40, 99, 81,157, 69, 21,154, 68, 41,116,213,162, 85,194, 21, 87,211,233,148,169,177,248,186,137,223,163, 20,250, 7, 9,113, +221, 15, 94,208,117, 15, 71,144, 50,178,141, 95,185,196,245,205,109,154,206, 51,206, 83,234, 45,199,162,118, 28,214, 11,214,147, +130, 36, 45, 40,155,134,253,178,138,251,219,164, 23,220,233, 39,251,248, 60, 21, 76,178, 20,130,195,132,142, 73,146,162,148,100, +152, 11, 76,103, 8,170,163,177,142, 84,129,112,134,164, 72, 73, 4,180, 18,238, 29, 44, 34, 67,128, 64,189,234,240,222,199, 67, +195,121,116,105, 63,198, 66,167, 79, 30,131, 1,114, 31,139, 91, 34,227,247, 75, 29,139,126,154,210,211, 81,158, 20,251, 85, 10, +117,253,100,223,254,195, 62,170, 6, 54,198,125,225,238,159, 39,213,167,174,229,253,253,176,253, 33, 33,113, 31,166,237, 61,245, +244, 18, 60, 95,175, 75, 62,145, 23, 92,215, 25,203, 16, 24, 11,193,179, 66, 62,246, 9, 19, 60,117, 15,140,185,228, 44, 15,206, + 87, 26,231,135,132,199, 63,183, 31,197,235, 2, 54, 55,226,255,189, 42,123,112, 77,143,158,173,254, 37,133,142,137,132, 32,185, +251,149,239,114,243,133,231, 41, 62,247, 26,243,213,138,143,189,244, 12,207, 93,191,196, 91,111,222,226,240,209, 35,218,178, 35, +207, 52,137,210,168, 10, 6,195, 4,103, 3,149, 51,100, 65, 70,217,130,146,228,121, 18,109,107, 62,110, 78, 91, 23,213,169,198, + 65,145, 73,140,240, 36,137, 70,117,158,144, 71,181,184,214,138,113,145, 80,202, 8,170,137, 23, 60, 65,219, 57,210, 68,243, 15, +254,240,255,103,236,189,122, 44, 75,179,244,188,231,115,219, 30, 27, 54,125,102,121,215,213,102,218, 84,147,163,129,208, 50, 35, + 18,148, 4,112, 40, 8,188,162, 0,253, 2,233, 94, 16,248, 19,116, 33, 72, 0, 37, 8,208,141, 64, 2, 26,104, 64,129, 24, 81, +131,230,104, 60,167, 77, 85, 23,171,170,203,102,101, 86,250, 12,115, 34,142,219,246, 51,186,248,118,102, 86,119, 87,207,116, 0, +129,116,129,140,115, 78,236,179,215,183,214,122,223,231,253,128, 71, 39, 71, 76, 71, 83, 30,159,156,115,111,185,224,189,187, 71, +168, 76,114,177,204,217,153,149, 44,214, 61,156, 14,207,125, 54,252,124,142, 91, 72, 21,201,190,198,238,229,248,191,163,224,110, +199, 31,255,249,207,121,225,249,231,152,190, 85,176, 63,202, 49, 34,178, 21,148,210,104,229, 98,104, 71, 22, 16, 74,160, 4,104, +163, 72,149, 68, 75,129,244,158,221,182,163,237,122, 78, 23, 39, 32, 21, 75,219, 99,235, 53,235,143, 54, 24,149,178,116,130, 43, +223,125,145,231, 94,185,200,215, 38, 91,110,221, 60,229,202,209,154,107,103,154,174, 18,156, 94,154,242,200, 42,230,235,142,223, + 53,158,159,228, 9,122,182,195,235,105,201,205,180,224,197, 36,229, 63,157,106,236,170,226,167,199,143,113,101,193,229,209, 14, +197, 60, 99,238, 45, 63,217, 70, 26,222,200,193,244,108, 77, 85,102,212, 57,180, 23, 74, 46, 79, 83,246,130,103,190, 51,230,162, +150,124,250,193, 29,146,229,130,195,124,204,120,118,129,236,194, 8, 89, 55,184,237, 26,181,233,232,131, 39,164,130, 84, 41,232, + 29,143,117, 73,147,195,105,211, 48, 49,129, 44, 73, 16, 46, 16, 68,100, 46,116, 4,230, 8,246,139,132,139, 89,134,116, 61,119, + 78, 62,101,103,239, 50,231,222,227,148, 33,145,158,170,171,121,247,147,247,105,199, 59, 96, 12,242,229, 87,241,117, 13,139,199, +120, 93,198,108,108, 41, 16, 85,141, 48,131,227,164,238,193,158, 99,117, 74,155,101, 8, 7,114,170,153,207, 19, 46,229, 41,115, +147,160, 9,220,214,154,151,172,227,181, 7,199,188,189, 94,242, 39,155,171, 96, 70, 8,147, 32,144,112,227,121,152, 78, 9,119, +238, 17, 54, 21,161, 89, 71,189,116, 15,193,200,167, 14,209, 95, 1,170,180, 29, 98,186,195, 6,152, 72,197, 18,129,219, 52,156, + 26, 25, 59, 87, 21,145,212, 77,213,227,250,142, 41,113,250,120,199,250,168,212,238, 44,178,106,121, 49, 73, 73,133, 66,234,132, +209,104,194,249,100, 77, 88,213, 67, 2,223,175,129,189, 12,112,172,224, 60, 65,201,167,118, 66, 7, 56,107,177, 52,116,231, 13, + 31,173,207,248, 95,238, 60,230,251, 38,227,198,108,204,120, 62, 34,155,142,120, 46, 27, 83,181, 53,185, 74,232,251,150, 30, 79, +146,231,160, 12,217,240, 61, 77, 90, 48,245, 30,235, 29,227,180, 32, 45, 39,216,205,217, 48,114, 15,136,113,193, 15, 66, 32, 67, + 80, 8,197,186,107,120,171,157,114,212, 52,188,183, 92,242,110,221,162,250, 14,101, 45,194,254, 82,222,251,151, 14, 72, 79, 1, +156,157,125,154, 1, 47,158,208, 63, 59,139,120,146, 11, 31, 60, 33,209,241,121,246,131, 32,174,247,172,155, 26, 13, 84,149,228, +241,195, 21,186,200,208, 50, 6, 45, 41, 41,144,168,152, 1,159, 70, 71,147, 16, 17, 61, 13,110,216,178,134, 1, 1,237,241, 77, +143,183, 30, 55,220,175, 92, 18, 35, 91,179,210,208, 5, 71,130,100, 21, 98, 79, 22,128,160, 4,222,246,172,147, 4,223, 58, 8, + 29, 75, 25, 87,216, 50,145,144,106,194,166, 67,164,138,157,214,242, 66,106,208,125,203,142,202, 16,222, 71,200,216,112,235, 47, +132, 36,211,112,180,106, 16,193,115, 57, 87,220,173, 19, 68, 84,101, 32,123,144, 74,163,140, 68,123,152,102,130,203, 74,243,237, + 82,209, 88,199,117,111,105, 83,201, 81,102,184,185,174,185,189,110, 81,140,174,253,211,191, 85,181,174, 6, 96, 74, 8,112,237, +128,231,246,102,180, 54,176, 91,150,228,166, 36, 51, 25,123,229,132, 76,104,114, 19, 57,189,163,212,144,200, 64, 97, 4,171,110, +216,121, 11, 65, 98,146,184, 71, 21,130, 34, 49,104, 9, 55,118,118, 48,105, 74,162, 2, 93,215, 83,164,146, 92, 43,166,165,198, +216, 64,179,109, 25, 25, 65,187,172, 88,111,207, 73,180,102, 81,109,185,119,118,134,237, 61,146,200,227,133, 39,161, 32, 67,241, +106,219, 33, 18,181,137,197, 45, 77, 24, 84, 80,207, 70,237,121, 22,191,134,161, 83,183,253,112,120, 81, 80, 87,241, 74,251,155, +198,240,194, 67, 57,138,190,171, 50,139, 69, 60, 77, 6,117,123, 22,197,135,102, 80,199,123, 23,213,158, 95, 86,156, 63, 25,251, + 59,207,117,173,240, 66,178, 12,129,145, 15, 84, 2, 82, 33,162, 94, 81, 64, 41, 4,159,217,150, 92, 73, 54, 82, 70, 92, 42, 3, +100,199,250, 95,180,184,205,119,153, 92, 60,164, 28,141,169,165,142, 83, 11, 61,232,225,131,143, 73,115, 90, 71,135,192, 47, 24, + 82,252,175, 30,234,228, 83, 63, 10, 31,254,236, 67, 94,255,230,155, 36, 89,202, 98, 91, 49, 46, 50,186, 16, 80,105, 66,181, 90, + 35,179,148,253,157, 49,227, 60, 65, 34,152, 36, 2,173, 37,163, 68, 81, 91,143,148,112, 48, 54,113,191, 45, 5, 10, 65,110, 52, + 58,213,200,129, 62, 55, 78,163, 32, 46,114,155, 21,125,231,168,182,150,117,211,177,222,118,212, 85,199,182,234,168,250,158,122, +211,211, 11,207,189, 59,199,252,139,191,126,155,101,181,166, 76, 13, 82, 64, 19, 98,218,215, 40, 51, 84, 46,208,235, 64, 48,192, +202, 69, 49,100, 42,163, 8,244,118, 27, 51,143, 39, 17, 88, 65, 42,224,221,138, 59,101,197,139, 87,174,112, 97,103,196, 36, 79, +227,132, 32, 49,164, 70,162, 7, 26, 34, 34,196,188,119,249,196,109,232,217, 54, 29,171,166, 37, 49, 16,188,164,107,123,200, 83, +244,197, 93, 46,124,239, 53,190,113,117,151,127,244,141, 27,220,187, 48,231,115, 41,233,203,148,139, 23,167,124,195,247,124,235, +213, 67,174, 78,225, 38, 41,123, 99,205,181, 89,193,238,106,197, 79,110, 63, 70, 20, 35, 94,191,177,195, 27, 99, 77, 18,122, 14, +131,229,110,232,184,103, 52,243,249,152,221,197,134,211,211, 37,201, 39,119,169,174, 92, 68,118,142, 63,255,171,183,249,248,143, +127,136, 93,181,220,125,120,196,173, 7,247,249,224,103,239,115,243,237,119,184,113,225, 58,203,109,207,103,143,239,243,211,155, + 55, 41,109,199,165,249, 30, 19,163,113,137,198,104, 67, 90,102,116, 94,160,205, 96,121, 37,144,116, 53,127,184,173, 57,205, 39, + 60,144, 57,191,111, 5, 63, 72, 20,183,109,203,187,109,203, 81, 93, 49,174, 59,246,132, 98, 90, 24,102,227, 9,135,105, 70, 38, + 37, 69, 89,210, 7,197, 44, 79, 57, 24, 21,232,190,227,130, 16,248, 36,103,163, 50,152,149,132,211, 37,228,134, 16, 20, 1,133, + 23,150, 32, 19,188, 84,241,179,111,162, 0,108, 91, 19,132, 96,156, 37,236,149,154,203,133,225,165, 81,206,149,157, 25,175,205, +114, 38, 46,176,168, 90, 94, 15,144,159,159,243,197,250, 28, 49,153,198,131,130, 50, 8,149,192,222, 30,228, 41,225,172,138,185, +225, 10,188,139,200,226, 32, 69,108, 24,190,252,118,207,198, 48, 74, 56, 13,138, 60,151,180,109,143, 87,154,186,106,113, 74,209, +247, 14,217,117,132,174,167,116,129,189,214, 33,109, 64, 90,199,194,134,104, 25,235, 45,251, 99,133, 73, 19,254,109,183,229,199, +173,139,158,228, 22, 4, 81,161, 46,126,185, 75,127, 34,149, 25,108,159, 66,240,180, 91,127, 10,144,241, 50,110,251,250,158,202, +121,110,182, 13,239,156,158,242,163,227, 51,206,214, 21,174,217,210,119, 61,133, 18,145,251, 32, 5, 86,104,172,209, 88,165,145, + 69, 70,151,165,104,147,146,100, 25, 34,196, 52,179, 92, 70, 63, 56,222, 51, 53,138, 84, 4,174,148, 35,198,202,112, 99,103,159, +203,163, 9,151,203,140,189, 36,101,207,104,238, 12, 9,213,191,124,223,252, 21,223,187,247, 40,239,145, 90,199,209,177,181,113, +179,107,237, 32,184,211,207,244, 7,246, 73,138,167, 4, 27,179, 38,188,235,241,189,197,225,113,193, 98,117, 66, 31,160,239, 28, +189,209,116, 70,210, 41, 73, 43, 36, 45,208, 10, 65, 27, 2,173, 20,180, 66,208, 13,177,207,164,134, 38,209, 72,161,216,155,141, +120,177, 76,121,109, 90,114,163, 24,113,161, 72,121, 62, 49, 92,202, 52,107, 2, 85,158,209, 11, 65, 72,211,232,212, 73,212, 83, +203,119, 16,146, 96,163,125, 13, 9,175, 39,130,111,102,134,239, 22, 5, 19, 2,135, 70, 49,150,177,246,109,189,139, 1,166, 33, +208,244, 49, 18, 90,133,192,219,155,154,182, 11, 8,173, 80, 34, 68, 87,145,144,131,240, 56,225,239,150, 25,111, 77, 71,188, 84, + 22, 92, 25,143,120,121, 50,198, 40,197,203,105,198,141,209,136, 61,205,111, 80,212, 97,216,207, 70, 66,154, 60,152,112, 48, 42, +216, 47, 39,140,211, 49, 62, 8,198,249, 8,163, 83,138, 36, 35, 53, 38, 78,122,197,147,221,143,167,204, 83,150, 85, 3, 74,162, +130, 68, 42, 65,161, 12, 33,120,118,202, 41,147, 84, 50,155,151, 72, 41, 40,210,140,124,148, 50, 77, 21, 35,163,112,189, 67,186, +150,126, 93,209, 53, 91,164, 20,124,177,120,200, 7,247,143,105,123, 79,158, 40, 90, 47,152, 10,141, 16,129,174,139, 30,200,129, +134, 2,205,102,200,132, 7,178, 44,238,209,211,129,150, 39,134,142, 29, 49, 16,226, 6,168,140, 28,188,238,189,143, 7,131,191, +201,246,165,242,216,253,143,179,120,241,165,102, 40,174,122,200, 86,215,131, 95,125, 80,122,118,245,175,134,227,248,200, 5,120, + 48,116,232,151,141, 97, 19, 2,115, 21, 59,245, 38,196, 92,241,147, 65,184, 83, 9, 72,125, 96, 43,158,224, 94, 19,184,254, 18, + 47,191,249, 38,167, 42,135,147, 71,112,184,199,165,217,156,217,168,164, 15,208, 46,206,226,129,198,185,103,143,231, 43, 7, 16, +191, 92,216, 7, 85,253,151, 62,126,252,103, 63,226,187, 63,248, 62,147,162, 96, 83,215, 40, 4,245,166, 97,178,183,131, 86,130, +182,245, 4, 9,227, 60, 29,242,135, 21,137, 86, 76, 75,195,180, 72, 16, 42,210,232, 38,153, 33, 47, 12,121,166, 40,141,102,148, + 27,132, 20,180,189,101, 83,117,108, 58,203,102,221,178,218,182, 8, 5,171,243, 58, 90,221,240, 52,181, 37, 77, 12, 89,153,160, +130,228,202,181, 61,250,147,115,238,172,215, 40, 4,153, 74, 81,210,179,238, 28,151, 71, 19,118,210, 52,102,237,120,112, 89,128, +179, 97,194,177,147,194,238, 48,201,209,146,189,195, 49,227, 89,193,246,106, 66,213,195,190, 73,120,225,218, 5,102, 99, 67, 38, + 20,153, 20, 3, 82, 51, 12,111,228,104,163, 43,148, 33, 81, 10, 23, 60, 54,120,210,204,176, 62,107,216,214,142,157,111,223,224, +218,215,175,177,127,105, 14, 58,190, 39,166, 77,197,159,254,228, 22,159,255,213,207,249,248, 47,223,225,248,222,154,247, 22, 21, + 63,215,130,203,227,140, 68, 38,164,101, 74, 97, 36, 63, 50, 41,226,234, 62, 85,106, 56,111,123,194, 78,193, 52, 75,152, 20, 25, + 63,157,143,153, 94,222, 99,190, 59, 69, 63,127,129,249,124,204, 97,154,226, 38, 99, 38,133,225,218,115, 87,249, 87,255,253,191, +224,163,243, 5,159, 62,122,200, 71, 15,143, 17,244,124,243,213,215,249,237,239,191,206, 15,255,232, 79,248,131, 63,250,107,142, +178,148,111, 93,188,200, 56, 53,145, 98, 38, 66, 28, 15, 6, 65, 39, 5, 93,239, 48,196,244, 67,213,215, 60,239, 27, 86,199,143, + 88, 59,139, 67,241,105, 91,243,133,150,116,206, 82,216,158, 73,223,179, 63, 74,217, 25, 79,152, 76,118, 33,201, 41,243, 9,169, +201,152,236,237,144,142,199,120,149,112,189,200,185,161,224, 34,158, 68,104, 30,202, 4, 70, 41, 88, 75,240,142, 96, 99,148,101, + 72, 4,193,197,227, 58, 58,118,212, 96, 17, 30,236, 36,103,150, 39, 28, 22,134,215,198, 5,123,123, 23,201, 76, 70, 17,122,222, +127,112, 70,102, 52,123, 2, 62, 87,146,190, 48, 72,169, 17, 89,142, 50, 41,255,236,183,222, 64, 36, 25, 31,105, 8,199, 43,130, +239, 9, 82, 16,188,136, 30, 20,239,127, 33,214, 65,168, 4, 89,230,200,222, 51, 54,146,171, 69, 22,199,241,105, 74,225, 29, 59, + 62,112, 24, 2, 7, 65,114, 73, 66,230,224,170,150,132,222, 49, 21,158,199, 54,102,181,191,183,220,242,163,170,229,125, 7, 34, +213,177,128, 21, 58,138,202,172,125, 86,216, 77, 20,147,137, 16,190, 52,118, 39,142,179,135, 80, 25,225,191, 4,120, 29,238, 43, +193,199,199,238, 1,239, 29,143,183, 91,126,118,190, 38,177,142, 69,240, 44,130,227, 24,143, 51,134, 86,198,174,182,241, 30,153, + 36, 60, 82,154,218,195, 56, 77, 24,235, 40,236, 19,125, 75, 46, 21,173,107,185,144,100,228, 38,101,119,114,136, 81, 25,249,120, +151, 66,231, 28,148, 25,187, 90,115, 37,207,240, 90,241,104, 48,109,135, 39, 22,105, 41, 17,169,137, 99,119,173, 80, 90, 33,141, + 65,105, 25,247,241, 66, 60, 45,246, 79, 70,242,226,233, 4,114,104, 58,188, 37,104, 25,101, 65, 82, 18,178, 2,143,198,151, 37, + 46, 79,112, 69,129,157,230,244,169,166,147,146, 62, 77,232,148,164, 11,146, 54, 81,116, 73, 74,151, 37,244, 66,208, 43,197,104, +148,225,132, 97,103, 92, 48,202, 50, 94,152,140,248,157,189,107, 92,204,166,236,155,130,171,197, 52,122,219,149, 98,148, 72, 54, + 94, 96,211,140,198,187,120,157, 56, 23, 11,185,134, 50, 68, 66,120,231, 61,169,119,124,179, 72,121, 77, 43,130, 12, 40, 36,107, +235, 40,140, 70, 15, 89, 23,181, 15,116,222, 13, 98, 76,207,113,219, 35,145,156,216, 88,240, 37, 10, 41, 37, 90, 40,166,163,156, +255, 48, 79,249,222,222,152, 27,163, 17,211, 34,225,181,157,125,188,209,236, 23, 99,146,180, 32, 75, 50,114,165,127,195,162,254, +164, 0,121, 79,152, 22, 60,183,183, 23, 71, 73,104, 82,173,209, 74, 99,135, 19,164,150, 42, 50,243, 7, 4,236,186,174,216,218, +142,109, 31,103, 23,233,144,187, 29,132, 32,145, 2, 47, 3,123,163, 17,121,150,147,164, 9,229, 40, 65,248,192, 72, 75,186,243, + 6,183,173,161,105, 57, 95, 46,200, 36, 52, 77,195,166, 90,113,127,211, 48, 75, 19, 42,239, 81, 1,186, 68,211,122, 71,110,210, + 56, 49,239,186,161,168, 15, 88, 91,105,134,116,180, 33,192,123, 92, 60, 91, 11, 60, 41,240,114,128,210, 40, 13, 93, 59, 92, 68, +253, 51,165,250, 87,137, 0,133,135,180,128,100, 16,225,101,201, 64,205, 35, 38,190, 37,195,247,237,186, 56,154,183,225,233,126, +232, 87,242,218,137, 72, 88, 27, 28,115,109, 56,119,158,141, 16, 20, 64, 13,172, 0, 25, 2, 33, 4,214, 18,148,144,244, 2,216, + 63,228,191,254,251, 63,224,239,255,206, 55,248,222,107,111,240,231,103, 27, 66,219,242,226,229,171, 92,158, 95,160,245, 13,139, +135, 71, 67, 92,236,128,173,125,178,143,215, 67, 13,215, 95,174,229,254, 23, 59,117, 63, 28,236,190,244,241,246,241, 25,223,120, +233, 5,202,113,198,122, 93,211,213, 45,213,102,205,106,177, 6, 33,169,155,158,170,119, 88, 11,163,210,196,236,100,163, 49,198, + 32,181,198, 72,133, 8,106,176,133,121, 26,231, 88,183,150, 77,107,169,234,158,186,141, 2,146,174,181,209, 74,102, 61, 42,149, +184, 62, 16,108, 76, 24, 83, 82, 81,164, 9,227, 34, 97,148, 27, 94,122,245, 6,219,163, 13,125,223,113,107,121,142,237, 29,199, +203, 45, 15,183, 21, 82, 10, 30, 85, 13,253,186, 97,200,187, 4, 35, 72, 15,114,174, 29, 78,152, 21,138, 67,142, 0, 0, 32, 0, + 73, 68, 65, 84, 31,150,236, 79, 11,140,132,157, 60,231,165,157, 67,190,123,237, 37, 70,249,132, 44,215, 92,156, 23, 4,225, 81, + 33, 80,119,150,213,182,167,243, 30, 45, 96,150, 27, 46, 79, 51,118,139,132, 84,203, 33, 69, 44,161, 40, 19,150, 77,199,213,231, + 15, 57, 62,223,242,240,223,221,225,214,159,191,207, 31,254,240,207,249,231,255,247, 95,241, 71,255,211, 79,121,255,147, 47,248, +232,100, 65,187, 61,162, 93, 45,248,235, 31,255,140, 31,253,228, 61,118, 95,121,147, 99,165, 88,164,154,147, 91, 71,124,240,255, +252, 25,205,186,230,209,221, 71,144,100,236, 94,156,177,127, 80,240,199,143,106, 92, 22, 35, 84,123,239, 49,206,161,246,103,232, +193, 50,179, 62,171,249, 81,117,151,160, 20,173,209,124,251,210,132,215,111,188,194,119,222,250, 58,231,219, 13,255,195, 95,188, +141,223,223, 33,228, 57, 50, 40, 46, 22, 41,120, 71,237, 2, 5,130, 7,231,167,156,110, 27, 84,232,105,186, 22, 25, 28,216,150, + 18,205,101, 9,163,234,140,251,206,242,184,119,220, 10,146, 92,198,110,233, 85, 35,249,123, 7,151, 25,151, 51, 72,115,102,211, + 25,203,196,224,141,198,148, 35,188,210,140,178, 20,227, 35,192, 72, 43,208, 72,166, 74,115,150, 20,136,114,132,175, 55,241,144, +140, 32,108,155, 56,114, 14, 1,130,138, 17,201, 62,110,192, 93,112,228,211, 17,137, 18, 92, 20,129,185, 4,223,119,124,246,197, + 99,254,223,247, 79,152, 20, 10, 45, 5,255,237,215,223,224, 13, 2, 47,159, 31,113,124,112,133,255,238,197, 75,124,239,219, 47, +241, 82, 81,242,197,217,154, 59, 71,199,248,229, 54,202, 78,132,199,247,207,220, 33, 79,174,254, 39, 52, 55,105, 61,109,237, 57, +176,142, 73,170, 56, 72, 19, 46, 5,197,190,148,209,175, 46, 5,161,243, 92, 78, 13,157,130, 44, 77, 17,157,229,139, 44, 39,232, + 12, 89, 85,216,222, 34,108,204, 24, 16,105,130, 20, 32, 50,131,108,101,180,146, 89,144, 34,196,174,245, 73,183, 62, 20,115, 49, + 88, 85,159,250,188,127,137,215, 30,158, 82,255, 52, 46,254,111, 56, 9,159, 52,150,159,214, 53,183,132,228, 76, 72,154, 68, 18, +164,160,149,154, 38, 73,249,184,169, 57,114,158, 50, 77,201, 16,104,231, 49,193,227,250,150,190,175,208, 4,198, 58,229, 96,122, +137,164,152,147, 77, 14,209,217,132, 68, 23,104, 85, 48, 74, 83,114, 25,176,137, 36, 45, 18,250,178,164, 10, 10,100,202,116,154, +209,146, 96,138, 34, 90,152,103, 83, 52,154,201,206, 4, 47, 18,246,230, 99, 58,157,163, 70,211,136,253, 72,199, 8, 51, 4,129, + 25,160,200, 65,103,132, 44, 33,148, 35,194,116, 70,152,141, 9, 23, 15,152,204, 39,136, 34, 71,229, 41,110, 84,210,102, 57, 86, +107,250,124, 68, 95,148,116, 73, 66,159, 23,244, 73, 14, 38,101, 60,158, 49,205,243,120,200, 28,141, 24,229, 83,110,236,204,121, +181,220, 99, 87,103, 28,100, 5, 19,101,200, 84,130, 0,234, 16,187,231,181, 12,220,105,162,246, 34, 12,247, 98, 37, 5,116,150, + 61,169,227, 33,223,122,174, 26,216,241,158,107,153, 38, 21,160,137,133, 93, 6,168,137, 49,212, 50, 8, 30,247,150,142,168, 41, + 90,224,185,211,247,180, 94, 34,117, 64, 50,116,233,198,240, 15,166, 25,223,223, 25,147, 37,154, 75,101,198, 52,207, 9, 2, 70, +163, 29,116, 86, 98,178, 49, 82, 39,236, 77,102,191, 97, 81, 31,144,127,136, 4,150, 21,199,169,225,185,221, 61,188, 15,164, 73, +142, 36,112,190,222,146,153, 4, 31, 60, 18,168,187,134,109,215,224, 67, 96,209,212, 32, 60,174,247,244, 77, 71, 63,228,210, 86, + 3,102,212, 9,197,245,221, 41, 69,153,162,131,163,175, 26, 66,223, 96,143, 55,172,207,207, 89, 86, 43, 74, 36,167,182, 5,219, + 80, 87, 53,181, 13,212, 66,224,172, 69, 26,131, 71,160, 6, 81, 90,245, 36,146,117,181, 29, 80,170, 79,246,250, 14, 76, 10,179, +114,200,251, 13,177,224, 38,146,194, 24,250, 16, 67, 85,250,224,227,223, 75,224,100,245, 12, 55,251,203,133,216,251, 33,212, 37, +141,144,246,100,240,185,167,195,225,225,201, 76,150, 65, 60,183,173,227,191, 7,251,213, 48, 26, 33, 56, 7, 14,181, 98,229, 29, + 86, 4, 10,169, 88, 56, 79, 39, 5, 91,215,145, 41, 67, 67,192,136,136,120,172, 58, 5, 23,198,252,147,127,240, 59,140,178,130, +113,105, 56, 59,237, 41,199, 37,191,251,189,239,243,234, 75,135,140,165,226,157, 15, 62,136, 35,120,223, 15, 62,209, 65, 45,111, +109,124,156,246, 75,190, 20, 63, 16,246,212, 19,225,160,248, 21,199,169,187,255,152,227, 80,243,252,181,171,140,198, 25,213,182, +102,189, 58,199, 89,203,226,232,152,114, 50, 99,113,180,164,235, 3,143,207, 43,156, 84,209,154, 38,163,154,188,183,241,162,109, +122, 71,213, 89,186,222, 71,208,140,136,129, 42,125, 23,255, 44, 85, 28,223, 11, 41, 81, 66, 70, 76,112, 18,133,132,206,121,172, + 8,120, 27, 56, 59,175, 25, 21,154,114, 52,230,230,157,187,124,124,255, 12, 43, 61, 87,230, 19,206,207,106, 42,233,217, 43, 12, + 86, 43,156, 13,144,107,152,100, 76,203,148,121,106,216, 73,115, 70,105, 78,153,102,104, 17, 29, 24,227,209,140, 36, 41, 88,157, + 55,236, 29,230, 20,169,166,178,142,214, 5,214,141,197, 57, 75, 38, 4,243,194, 48,203, 52,153, 86,116,214,209,244, 30,169, 37, +222, 7,150,171,138,147,187,231, 60,120,255, 38, 15, 63,253,148,197,250, 12,156,229,235,175,191,194,254,171, 25,159,157, 44,162, +135, 54, 83, 60,191, 59, 6,224,222,201,150, 63,253,232, 35,178,215,191,142, 74, 21,221,182,225,237,255,237, 15,120,240,224, 14, + 15,190,184,199,163,163,199,236, 95,185,140, 29,101,248, 47,238,242,127,252,203, 31,178, 56,110,233,122,168,148, 98,161, 5,251, + 72,234,222, 33, 47, 77,248,247,127,240, 61,254,189,255,248,183,121,235,173,111,240,131,139, 87,185,171, 39, 28,125,248,115,254, +244,131,207, 57,214,138,214, 7,130, 82,212, 68,160,206,197, 44, 33, 39,176, 94,173, 88,172, 23,116,237, 26,108,135, 20, 80,109, +150,140,178, 17,179,201, 46, 23,139, 25, 55, 38,123, 60,167, 28,157, 80,156,214, 53,243,209,132, 81, 94,240, 79,118,247,121,225, +240, 2,153, 73,176,105,129, 79, 18, 86, 89, 70, 87,148, 88, 99, 40,115, 51, 76,112, 12, 99, 35, 41,133, 36, 81,158, 44, 81, 36, +102, 12,197,136,229,100, 10,213, 34, 30,146,141,132,109, 3, 73, 70,112,245,112,232,126, 6,198, 58,239, 90,238, 8,131, 21,146, +227,147, 37, 71, 39, 43,254,232,139, 5,127,178,108,216,109, 45, 59, 66,208, 28,157, 48,109,107, 46, 4,201,155,205,130,242,120, +193,230,243, 71,252,228,189,119,121,240,248, 46,155,198,178,233, 33,116,158,176,117,132, 85,207, 19,127,169,208,209,154, 37,123, +141, 68, 32,203,146,209,225, 14,106, 54, 98,111, 58, 34,241,129,203, 4,114, 23,200,165, 34, 13,158, 84, 27,122,239, 9, 82,146, + 88, 79,146, 38,140,172,231,174,245,200,209, 8, 89, 53,113, 52,223,244,168, 68, 33,147, 4, 25, 52, 50, 85,200, 36, 71,160,227, + 40, 90, 12,120, 16,231,159, 65, 93,134,110, 93,252,210, 61,233, 87,139,186,140,137,103, 90,225,180,196, 5,112,194,115,190,108, +248,162, 15, 28, 97,217,104,184,217, 87, 28,185,142, 19,109,232,156,165,212,134,194, 58,186,182,163,111, 43,182, 93,141,243,113, + 20,126,169,152, 80,230,115,178,201, 46, 58,203, 80, 38, 31,250, 18,133, 80, 26,215,111,163,115, 33, 85,204,138,148,157,210, 48, +205, 52,179, 34,101,119,158,179,208,134, 23,230, 37,123,153,226,187,251, 51, 94,204, 50,190,115, 56,231, 98, 89,240,214,165, 61, + 94,223, 41,121, 99,127,135, 11,147,168,103, 57,151, 9, 54,207, 98,198,249,116, 68, 24,151, 48, 41, 32, 47, 9,179, 17,255,249, +225, 62, 95, 27, 79,248,209,239,255, 27, 92,170,249,135, 47,191,202,231,206, 82, 37, 25, 78, 42,172, 49,184,124,140, 72,114,118, + 76,202, 44, 43,153,167, 25,227,180,160,212, 9,121,154,147,231,134,125,157,113, 61, 45,153, 61,109, 84, 29,141,119,148, 58, 69, + 73,201, 73, 87, 83, 7, 71, 23,224,220,197, 41, 93,112, 81, 37,176, 47, 5, 91,231,226,161,211,122,174,164,146,151,181,100,162, + 53, 77,231, 80, 18,180, 16,180,222, 51, 23,113, 81,124,106,123,142,156,167, 7,206,122,135,211,134, 5,129,166,143,150, 64, 53, + 76, 51,190, 63, 75,121, 37, 79,184,150,231,100, 90, 49, 75, 51,210,164, 32,207, 71,244, 82, 67, 26, 83, 67, 71,249,136,206,100, +191, 97, 81, 79, 74,200, 39, 48, 25, 67, 94,224,140,102,213,117,148, 73,194,209,118, 27,177,126, 74,209,217, 14, 27, 58, 92,112, + 4, 33, 88,247, 91,206,170,138, 85,223,209,109,122, 88, 14,163,231,222, 15, 10, 87, 79,221,118, 60,222, 86,164,210, 97,108,199, +227, 71,143, 25,245, 91,206,110,222,226,248,225, 61,170,237,134,164,107,233, 19, 77,127,126, 66,221,247,116, 85,135, 48,138,179, +222,211, 43,205,198, 7,186, 1,212,223, 9, 73,174,117, 4,104, 56,192,110, 33,203, 99,202, 28, 33,142,170,181,138,167,190, 52, +254,176,140, 16, 52, 46, 48, 49,154, 78, 4,114, 33, 99,252,251,166,141, 29, 93, 87, 71, 77,192,175, 43,236,195, 69, 77,145, 70, + 98, 93,211, 61,227,220, 19, 24,178, 4, 97, 84,192,114, 29, 59,245,175,234,252, 7,117,206,227, 16,168,165,100, 44, 20,139, 39, +240,194, 16,152,232,132, 51,107, 73,129,199,192,152,192,170, 11,160, 53,175,223,184,194,206,180,228,147, 91, 11,126,252,225,135, +124,253,133, 55,249,238,215, 46, 51,202, 51, 28, 29,127,246,215, 31,196,239,221, 91,144,238, 89,138,222,151, 11,186,181,177,160, +155, 47, 57, 29,158, 78, 50, 6,203,158, 29, 14, 76,244, 44, 62,189,203, 66, 90, 94,126,233,121,102,187, 99, 64, 99,109, 79,221, +108,184,119,255, 30, 88,135,109, 61,203,229,150,243, 85,195,233,121,195,218,122,172,141,190, 89,231,163,195,194,135,128,145,177, + 8, 10,169,201,180,196,203,216,157, 40, 35, 16, 66, 34,165, 36,205, 53,133,137,130,196,182,237,233,157,195, 59,135,240,129, 64, + 32, 47, 82,138, 60,165,171, 60,125,191, 98, 99, 61, 7, 69,201,238, 36, 99, 55,207,152,100, 5,175,236, 31,242,218,213, 43,188, +121,237, 26,175, 93,188,204, 97, 57, 66, 4, 79,166, 19, 38,217,148,131,209, 62,179,241, 30, 69, 54,102,182, 51, 39, 73, 36,105, +154,113,176, 59, 97,111,162, 88,111, 45, 39,171,150,186,235,169, 91, 75,221, 91,172,139, 0,139,101,221,115, 92,117, 3, 9,174, +103,185,109,208, 82,112,113, 86,240,209,199,183,233,250,142, 16, 4, 35,109,184,183, 60, 33, 79, 51, 14, 14, 71, 60,114, 29,155, + 91, 43, 62,187,189,224,161,119,120, 35,232,110,159,209,126,251,155, 92, 26,101,236, 28,140, 56,249,236, 19,148,239, 57,216, 27, + 65, 87,113,231,193, 49,207,141,103,188, 46, 60,147, 44,229, 95,253,243, 31,242,243,191,124,155,183, 63,250, 16,125, 86, 99,179, + 25,166,245,140,171,134, 31,254,233, 59,236, 23,134,145,150, 20,179, 17,238,227, 79,241, 67,222, 64,109, 3,199,206,226, 69, 64, +170, 56,169, 58,175, 26, 90, 91,113,220,108, 57,107, 43,130,119,232, 32,144,193, 33,138, 49,105,146,241,234,124,143,121, 81, 34, + 19, 67, 62,158,115, 56, 46,185, 50,157,242, 87, 31,188,199,215, 14, 46, 51, 25,229, 92, 48, 57,107,161,168, 68, 32, 76,198, 52, +243, 49,173, 16, 84, 38, 35,205, 13, 65, 41, 14,159, 16, 32, 59, 75,131, 64,107,195, 74, 40,242,217,156,231,167,187,124, 97, 74, +168,150,132, 60,137,211,182,103,180,249,248, 62,214,106, 0,154, 88,108, 23,184,237, 61, 39,157,227,167, 85,199, 23,210,115, 41, + 79,184,150,104,174,171,136,236,157, 27,141, 14,150,169,131,169,183,204, 17,220,208, 57, 47,107,133, 10,150,119,122, 31,133, 84, +101, 70,152,150,188,240,252, 14,103, 58,143,108,141, 81,142, 24,101,177, 32,239,207,201,247,118,184,182,127,153,217,236,128,249, +116,159, 92,107, 70,193,146,185,192, 54, 56,140,146, 36, 73, 74, 34, 6,199,128,128,233,222,140,217,188,228, 40,205, 81, 23,247, +163,202,185,239, 81,235, 10, 57, 88, 48,149, 78, 80,169, 70,149, 41, 50,201, 72, 38, 99,176, 49, 66, 86,120,135,124, 50,138, 15, + 1,225, 37,226, 75,147,181,240, 43,133, 93,226,181,138, 68,104,173,113, 42, 90,245,172,244,184,174,230,188,246,124,190,173,169, +145,156, 40, 88,245, 14,163, 18,232, 43,166, 72, 82,235, 88, 85, 11,100,176, 84,206,145, 4,199,133,108, 74, 49,222,197, 36, 57, +114,176, 31,203,201, 24,130, 36,244, 29, 65, 6, 26,122, 58,165,176, 18,210, 36,193, 72, 73,145, 37, 36, 70,147,103,134,151,139, +140,239,141, 74, 94,204, 83,158,159, 76, 25, 39, 57,175, 76,103, 76, 76,193,149,162,228, 32,205,153, 37, 9, 23, 70, 57, 23,114, + 77,154,105,202, 82, 51,202,114,108,150,209, 25, 67, 57, 46,248,135,243, 25,223,158, 28,242,252,104,135, 71,191,243, 22,255,205, +243, 47,243, 63,102, 19,190, 31,122,110, 11, 73,167, 13, 33,201, 73,116,202, 78,146, 48,214,154, 50, 81,200, 32, 73,132, 32, 49, + 5, 82, 72,118, 76,202,142, 50,236, 73,197, 60, 43,105,251, 14,109, 18, 76,136,218,171, 46, 56,106,239,121,228, 90,142,154,158, + 42, 68, 59, 93,240,158,113, 8,180, 34,218, 16, 19, 1, 29,130, 66, 6, 14, 6,235,116, 98, 20, 59, 34,174, 24, 82, 25, 27,151, +202, 7, 62,235, 45, 39,222,179,176,150, 45,130,181,119,116, 38,234,127,100, 26,119,252,215,199,138,151,115,205,243,121,138, 20, +130, 81,154,160,164, 38, 49, 41, 38, 77,192, 36,104, 19,139,122, 35, 98,224,213,223, 94,212,181,142,214,180,217,124, 16, 97, 9, + 16,138,106,213,112,127,185,166,182,209, 7,152, 36,154,117, 91,177,109,107,182,237,154,117,191,102,177,173, 56,174, 42,186,227, + 13,156,157,199, 98, 94, 85, 81,141, 93,213,136,237, 54,170, 89,235,134,187, 15, 79,120,239,227,219,124,120,255, 17,243,163, 99, +214,143,207,201, 60,200,161,227, 95, 29, 47,208,206, 81,183, 61, 8,168, 2, 60,106, 44, 91, 17,208, 8, 66,162,249, 79,190,241, + 61,238,159, 60,196,250,128,147,192,182,130,218, 66, 91, 71, 65,156, 28, 40,115, 58, 5, 99, 40,202,148,174,235,201,211, 20, 45, +161,114,118,160,155,129,237,226,206,132,109, 29, 11,221,223, 52,134, 71,193,116, 52,236,238,135, 81,126,154, 12,150, 64, 61, 20, + 66, 11, 65, 32,148, 66, 84, 27, 68,111, 17, 95, 65, 92,122, 34,116,235,172, 98,173, 2, 90, 68, 14,242,121, 8,232, 16, 34,164, + 14, 34, 54, 83, 39,116,218,209,183, 29,231,139, 19,126,244,233, 61,254,221,237,207,185,125,255, 24,161, 36,207,221,184,206,106, +185,225,230,199, 15,120,239,131, 79,160,170, 65,182,241,249,200, 47, 89,225,244, 19, 33,202, 64,201, 99,176,121,241, 37, 74,223, +147, 36, 58, 63,168, 86, 92,124,218, 39,159,220, 65,151, 25,207,189,248, 28, 89,145, 34,101, 66, 94,142, 25,143,198, 24,173, 57, + 95,157,147,153,148,221,249, 4, 43, 3,182,237, 89,174, 42, 64,144,164, 26, 57,236,168,227,168, 73,160,181,192, 40, 73,145,106, + 18, 19,137,116,153, 49, 24, 19,109,113, 10,129, 35,142, 44,181,150, 24, 36,163,113, 74,150, 27,250,214,211,244,129,157,249,156, + 36, 24,246, 77,201, 40,201,216, 29,237,112,101,231, 50,251,179, 3, 82, 41,201,211,130,188, 40,200,211, 17,163, 98, 66,130, 97, + 50,218,225,240,224, 34, 87,175, 95,226,107,111,220,224,107, 47, 95,225,205, 23, 15,249,250, 75, 23,153,239, 77, 16,202, 48,201, + 60, 77,107, 99,247, 69,244,172, 55, 85, 79,135,199, 9, 65,229, 28,221, 32,124,169,186,136,225, 61,152, 22,188,114,121,206,195, +227, 45,119, 31, 61,102,103,186, 67, 49, 26,209,185,142,207,142,143,104,123,203, 56, 55,164,179,148,116, 47, 35,201, 36,223,184, +178,207,115,215,230,220,122,251,109,158,251,238,183, 40,115, 77, 62,158,115,247,157,247,200,140, 36,207, 82,150,103, 43,116, 83, +225,102,187, 92,254,254,107,140,115,205,135,239,223,102,188,109, 41, 55,231,188,240,234,235, 28, 26,193, 97,154,240,205,221, 61, +206, 22, 13,237,195,115,206,190,120, 72, 21, 28,202, 5,250,222, 18, 46, 93,229, 19, 39, 8,213,150,107, 73,202, 89,189, 65,119, + 53,139,106,195,162,238, 57,204, 52,243,124,196, 56, 47,240,166,160,204, 10,174,150, 35,174,152,148, 34,207, 88,151, 41, 91,239, + 41,138, 18, 35, 53, 95,191,246, 28, 82,193,121, 8,164,147, 9, 15,157,195,141, 74,150,169,230,204,104,164,150, 56,161,232,144, +236, 22, 6,225, 97, 44, 5, 53, 49,102,119,225, 61,169, 76,121,253, 96,204,127,121,117,204,126, 49,229,199,157, 64,108, 22,113, +181,149,165,241,194,211, 89,196, 52, 59, 16,122, 0, 48,185, 14,183,109, 57, 9,158,115,225,153, 11,201,141, 76,113, 45, 53, 28, + 26, 69,153,106,180, 81,140,147, 4, 58,203,193,100,196,100,186, 79,158, 23,228, 74,147, 25,205, 50,133, 59,121,130, 43, 82, 94, +187, 52, 38,207, 12,201,200,176,108, 3,210,129,148, 9, 98, 90,240,143, 47,206,248,230,206, 46, 59,211,125, 70,229,136,185, 78, + 64,101,236,248,232,165,158,100, 25,173,139, 97, 71, 94, 66,162, 20,179, 23, 94, 35,187,244, 18,187, 47,190,201,213,107, 55,184, +180,179,207,165,253, 67,100,230,216, 10,129, 92,108, 80,117,143,202, 13, 42, 77, 81,227,130, 23, 15,246,249,123, 55, 46,243,234, +193,152,135, 94, 96,183,219,193,227, 29, 6,133,248, 87, 11, 93,159, 29,125,124,100, 60, 40,249,180,160, 63,241,222, 59, 15,206, +117,184,117,199,106,189,230,180,182, 28, 47,215,156,250,154,188,173,144,109, 5, 93,133,113, 29,171,170,198,225, 24, 11,201,229, +209, 46, 70, 36, 36, 73,142, 42, 75, 40,226, 90,209, 91, 75,111, 59, 58,223, 83, 7,203, 90,120,250, 97,122, 58,206, 18,114,163, +104,133,228,235,101,201, 85,165,249,198,120,202, 72, 38, 76,147,132,189,108, 66, 80,154,195,108, 76,105, 10, 70,218,112, 49, 31, + 35,131,103, 47, 43, 41, 18,205,200, 24,178, 84, 51, 79,227, 8,250,141,188,224,149,209, 14, 55,202, 57, 66, 74,190, 99,226,234, +243, 37,223,225, 85,164,105, 30,251,152,126, 55, 1, 74,157, 70,235,157,212, 24,161,208, 42, 1, 17,200,211, 20, 27,122, 46,153, + 52,254, 28,131,167, 24,210, 73, 91,231, 72,141,102,221,183, 44,250,150, 19, 34, 6,246, 92,128,117, 14,233, 3,162,181,140,156, +163, 31, 68,205,137, 8,172, 16,236, 9,207,133, 68,115,160, 20,189,119, 44,109, 28,213,111, 61, 28,133,192,167,189,163, 3, 90, + 1, 94, 10, 86, 74,178,237, 37,157,209, 8,165,216, 77, 52,215,114,195,235,121, 74,130,192, 11,193, 78,154,129,214,148, 89, 74, +167, 12,163,108, 66, 67,192, 10, 65,171, 20, 45,242,111, 43,234, 26,242, 18,230,243, 65,232, 37, 98, 39,234,135, 96, 22,231,105, +125,207,178,179,100, 26,186,224,144, 74,177,172, 42,142,235,154,199,143,150,184,199, 3,198,117,187,133,122, 27, 59,102,219,197, + 95,251, 54, 50,144,235, 77, 76,105,170, 54,132,186,102,234, 36, 47, 29,236,176,236, 59,164,209,116, 3, 19,183,147, 18,229, 60, +107, 33,216, 75, 18,238,160, 56,173,106,132,144, 96, 61,159, 31, 61,196, 5, 31,187,246,174,141, 20, 55,250, 72,192, 99,232, 66, +251,161,163, 30,231,244,141,101, 84,150,108,218, 22, 51,248, 64,219,206, 34,108,244, 75,211,181,195,213,223,199,199,236,134,240, +151, 95, 46,236,154,232,209, 87,102,240,245, 63, 17,176, 13,100, 62, 37,163, 16,166,107,227,191,119, 62, 42,235,127, 73, 21,250, +180,168,135, 0,210, 83,106, 77, 39, 33, 23, 34, 54, 51, 65, 48,214,154, 62,120, 52,130, 99,239,216, 19,134, 76, 56, 30, 45, 55, + 60,120,184,102,217, 68, 15,250,241,221,251,124,186, 88,114,235,254, 57, 63,124,231,231,112,239,193,240,216,186, 65,252, 38,191, + 4,191,249, 50,227,241, 75, 93,250,147,130,254, 36,208,135,129, 91,224, 35, 24,230, 73, 0,243,237,143, 62, 37, 45,115, 94,126, +237, 69,164, 22, 84, 85,220,177, 23,163, 17,222,247, 52, 93, 77, 62,158, 34,125,236,198, 43,219,209,214, 61, 89, 97,168, 90,135, +181,129,118,128, 5,101, 70, 12,137,107,146,204, 68,174,123,162,163,167, 61, 75, 35, 36,168, 72, 12,137,145, 20,153, 97, 50, 74, +217,153,229,236,143,114,116,102, 72, 83,205,238,180,100, 50,157,144,148, 99,164, 77, 41,179, 73, 60,104,204, 38,104,149, 82,148, + 37,229,100,130,239, 28,163, 73,201,165, 43,151,120,225,185,171,188,244,194, 33,175, 94,155,113,125,191,228,112,148,178,172, 60, + 39,149, 37, 83,129,159,124,252, 41, 31,125,122,139, 11,135,115,186, 16,109, 74, 1,232,156,197, 89,199,170,238, 56, 91,214, 44, + 87, 53,155,117,195,114, 81,177,218, 52,224, 3, 51,173, 57, 93,183,172,214, 13,203,245, 25,206, 58,164,210,104, 17,184,119,182, +161,183,158,113,110,112,206,243,112,213,209,245, 45,207, 31, 92,224,130,134,254,249,151, 40,210,132,189, 11,115,254,206,223,125, +139,127,253, 71,127,129,198,146,164,138, 59,103, 43,108, 82, 50,187, 48,231,229,215,111,144, 9,207,189,229,130, 43,187, 5,147, +170,230,181, 23,110,160,100,244,212,103, 70,113, 84,181,244,125,141,245,129,102,179,193,246, 45,119, 31, 63,224,139,119, 63, 34, +236,205,249,189,107, 47,242,163,197, 9,250,236, 20,223, 91,174,204,199,204,243, 49,187,229, 4,159, 21,140,138,146, 81,146,112, +209, 7, 14,147,132, 10,207, 23, 65, 18,140,166,114, 1,202,156, 44, 79,163,151,118, 50, 97, 45, 5, 39,227,156, 83,239, 57,107, + 29,105,158,208, 33,216,108, 58, 92, 31,181, 19,107,101,184,231, 2, 43,157,176,242,154, 66, 27,124,219,241,143, 47,141,184,190, + 63,166,212,112,115,107,216, 14,221,210, 75,218,177, 40, 75, 84, 97, 8,153,161, 40,115,108, 63,192,150,140,140,141, 67,223, 16, +218,134,149,183, 8, 23,152, 75, 73, 39, 60, 34, 79, 40,166, 41,218, 24, 18,173, 24, 21, 69,212,120, 36, 57,141,117, 44,148,100, +101, 18,198, 38,176, 78, 52, 70, 74,178, 84,115, 94, 91, 54,181, 5, 37,249, 71, 23, 10,254,233,197, 57,191, 59,223,225,107,229, +156,153,210,156,166, 57,157, 16, 92, 8,129, 52,120,114,111, 89,119, 29,101,145,177,117,142,253,162,160, 30,205,209, 7,215,217, +185,124,133,253,113,206, 94, 86, 32,146,168, 50,223,223,217,231,242,100,204,168,148, 44, 87, 21,186,181,232, 50,198,170,254,222, +245, 23,248,173,253, 75, 76,138, 57,171,212,113,212, 6,100,211, 33, 91, 79,220,172, 63, 41,236, 79, 70,111,191,104,193,123, 86, +216, 45,222,232,167,183, 51,175, 98,172,177, 87, 34,170,253,113,132,243, 53,225,248,132,118,181,229,222,189, 5,247,206,150,152, +174, 70, 88,139,235, 58,148,247,140,145, 28,152,132, 60, 31,163,179, 18, 97, 36, 66, 39,248,182, 39,216, 46,194,110,250, 45, 15, +251, 13, 27,192, 72, 65, 47, 20,185,140,174,158, 23,178, 28, 21, 60, 95,203, 70, 84,222,179,151,143,208, 58,197,152,132, 84,103, + 72, 19, 15,241,133,206,232,125,199, 44, 25, 97, 67, 20,252,153, 36,165, 39,144,106, 69, 34, 4, 87,139, 9,215,210, 18, 7, 8, +101,112,193,161,148, 96,150,166, 44,173,101, 65,207,137,139,148,186,204, 40,100,240,104,169,209, 33,234, 94, 52, 2,149,168, 56, +169, 19, 10,239, 45,123, 58, 37,115, 49,181, 45,174, 81, 4,125,223,113,220,213, 60,234, 59,142,125,207,178,110,169,188,163,222, + 84,120,231, 72,136,233,141,115, 37, 41, 8, 44, 3, 36, 14,238,123,193,124,144,250, 87, 66, 48, 29,178, 46,238, 5,207,207, 26, +203,137,136,119,227,141,128, 70, 8, 86, 8,182, 14,102, 25, 36, 8,156,150,124,215, 40,114, 21, 72,165, 34,151, 10, 37, 97,100, + 12, 94,106, 50,157, 18,148,198, 73,195, 86, 42, 92, 16,212,206,253,109, 69,221, 67, 49,137,197, 41, 75,145,105, 74,158,153,184, +115,126,194,126,223,214,224, 61,139,147, 21,167,189,231,164,173, 88,220, 63,166, 62, 90,195,253,251, 49,106,175,105,127, 45,113, + 78,124,197, 8,122,108, 20, 78, 25,198,121,202,102,216, 73, 97, 20,161,237,177, 70, 83, 40,205,143,219, 22, 41, 29,141, 84, 52, +125, 28,127, 58, 31,227, 63,159,250,192, 87,213,160, 54, 31, 32, 51,142, 24,161,234, 93, 76, 72,155, 79,232,186, 14,169, 4, 14, +137, 36,224,196,192, 77,223,110, 99,145, 14,196, 68,165, 39,187,102,220,175, 22,117, 33,162, 32, 47, 49, 81, 5,255, 36,110,240, + 75, 4,168,104,155, 27,168,119, 74, 12,135, 26,251,171,150,143,167,248,215,104,191, 16, 66,209,136, 64, 75,160, 28,138,236,142, +138,202, 78,124,160, 35, 48, 21, 9,210, 58, 54,161, 39,172,182,209,166,101, 27, 86,189,229,168, 90,194,249, 42, 30,168,156, 69, + 72,251,139,223,199,126,169,176,243,165, 46,253, 73, 97, 87, 67, 65,127, 26, 43,203, 51, 55,192, 19,201,128,132,207,222,255,152, +253, 75, 23,185,252,220, 37,130,144,241,166, 93,109, 98,206,177,119,156, 30, 69,246,248,225,165,125,210,196, 32,165, 98,127,146, +179,173, 45,219,206, 98, 18, 29,173, 98,131,242, 88,105, 25,119,234,131, 30, 40, 51, 10, 41,100, 28, 83,132, 24, 96, 49, 42, 82, +178, 52, 33,211,138,162,212,164, 3,163,160, 72, 37, 89, 98, 40,138, 4,167, 3,206, 90,140, 82,228,217,152,209,180, 36,201, 12, + 74,105,188,179,204,103, 35, 46, 94,153,114,105,167,224,202, 44, 35, 79, 52,141,245,124,113,222,242,120,189,225,232,248, 17,111, +191,251, 14,159,223,249,152,119,111,221,230,133, 27,215,153,143, 51,188,139, 81,172, 77,211, 83, 55, 29, 77,213,179, 89, 54, 52, +155,134,237,186,162,173,163,117,241,112, 82,208,184,192, 23,199,231,204,247,247, 64, 26,206, 54, 75,214,237,134, 68, 27,146, 52, +208, 59,143, 11, 1,105, 36,153,150,172, 58,203,221,229, 25,214, 89,142, 63,187,197,139,223,120,157, 43, 70, 49,145,138,249,213, + 43,172, 62,191,137,147, 49, 69,110,181, 56,229,185,195,203,204,118, 70, 92,127,245, 6,133, 72,120,251,147,155, 76, 83,193,119, + 94,123, 61,142, 97,133,224,104,211,114,210,247,156,110, 54,252,235,144,113,195, 85, 60, 88,157,241,227,179, 83,154, 71,167,240, +224, 1,223,159,103,124,162, 10, 30, 39,154,229,135, 15,120,245,234, 30, 89, 94,146,103, 5,118,160, 96,181, 82,145, 9, 65,112, +158, 62,201,184,217,244,164,211,130,109, 27,185, 1, 73,162,152,206, 74,156, 13, 44,156,228,124,219,114,182,110,232,170,138,243, +243, 45,235, 85, 67,150, 72,232, 58, 10, 9,171,198, 67,154,210, 39, 26, 53,206, 89, 39,134,165,147,172,130,229, 18,240,251,103, +150, 59,125, 20,118,190,216,175,113,218,112, 65, 9,190, 57,155, 96,140,231,226,184,164, 44, 37,139,173, 7, 23, 16,125,253,165, +123,137,227,204,118,124,216, 86,188, 93,247,172,164, 67,105, 67,105, 34,223, 94, 5, 71,240, 61,155,174,230,147,174,226,166,132, +165,237, 81, 54,130,100,214,189,163,233,123,238,156,117, 32, 5,151, 71,134,223, 27,165,252,214,108,198, 56,203, 81,206,210,120, +203,231,213,134,190,222,162,155,138,108, 16,147,101, 66,198, 12, 4,163,217, 72, 77,153,164,152,233, 1, 7,187, 51,198, 69,206, +220, 40, 10, 41,240,214, 49, 73, 82,102,243,125,158,219,191,198,155,151, 46,243,202,254, 28,187, 62,231, 82,154,243,189,157,125, + 46,236,204,240,198,112,167, 17, 60, 76, 4, 74, 39,200, 52, 65, 56, 27,239,109,222, 35,126, 81, 20,243, 11, 35,248,167,157,123, +128,160, 36, 94, 69,175,187,215, 50, 22,125, 69,140,254,236,135,228,189,182, 3, 2, 77,215,113,123,221,177,170,107,142,234,138, + 16, 4,133, 22, 28, 74,193, 40, 27, 35,149,142, 94,116,231, 8, 93, 71,223, 84, 84,245,146,181,171, 88,248,158,115, 28, 54, 8, + 74,165,216,120,199,133, 36,103,233, 29,175,166, 37, 78,192, 78,154,227, 66,160, 76, 75,156,148, 36, 67,167, 29,144, 32, 60, 18, + 69,235, 45,141,239, 81, 82,196,164, 70,165,240, 56,180, 48, 28,100, 25, 59,186,196, 17,133,144,133,214, 52, 46,242, 12,206,187, +134, 47,250,154, 51, 27, 83, 21,147,224, 49, 62,166, 45,106, 17, 48, 2,204,144,224,102,131,167, 11,158,214,121, 18,219, 49,147, +138, 4, 73,211, 54, 88,107,121,216,108,185,217,172, 57, 13,150,133,235, 88,247,142,123,103, 43,124,219,195,166,162,109, 59,138, + 32,201,148,103, 97,195, 83,109,208, 38, 4, 30,181,158,187,210, 83,247,158,255,175,237,249,172,182, 44, 67,224,175,154,104,239, +189,221,131, 87,129,147, 14, 86, 34, 82, 64,141, 86,100, 18,180, 8,212, 34,112, 73, 73, 10, 33, 41,132, 64, 43,129, 64,146,104, +131, 73, 50,122,101, 56, 69, 80, 17,232,130,199,255, 70,234,119,229, 33,207,193, 36,140,203,156, 30, 71,110, 98,238,186,171,251, + 88,176, 23,143,225,232, 4, 78,142, 8, 15,143, 34,175,184,218,254,198,108,147, 95, 46,236,167,206,243,242,100,140,205, 20, 90, + 64, 19, 4, 88,135, 50,154,166,107, 56, 87,138, 76, 9, 30,183,158, 83, 47,162, 2, 52,132, 33, 28, 96, 80,118,111, 99,188, 94, +204, 74,183,207,226, 98,245,144, 25, 63, 60, 7,180, 38,248, 64,112, 46, 30, 8,194,128,114, 53, 67,215,237,109,204,154,175,171, +248, 90, 72,241,235, 19,215,166,243,152, 57,175, 99, 44,171,176,195,215,139, 33,226,181,233,227, 24,223,251,248,152, 93,247,213, +232,245, 39, 2, 60,192, 89, 69,103, 5, 19, 3, 99, 33, 81, 74, 81, 57,135,247,158, 14, 24, 11,112,196, 19,232,105,227,152,164, +208, 58, 23,247,248,121, 49,188,163, 29,244, 53,162,111,159,165,185, 61,117, 53,248, 97,189, 96,159,141,229,191,124, 59, 8,225, + 41,244, 98,240,202, 12,135, 27,255,139,157, 62,240,222,143,127,198,181, 23, 95,226,226,181,125,148,138,227,240,190,173, 9,193, + 19,164,167,235, 90,206, 78, 79, 89,158,173, 57, 61, 57,229,248,180,102,211, 52, 44,207, 42,130,145,212,173, 99, 85,117,228,169, +137, 36, 37, 25,187,118, 33, 32, 49,146,220, 72, 50, 99, 40, 51,131, 82,138, 44,215,228,137, 65,232,103,137,123,189, 13,120,160, +106,226,227,156,142, 50, 46, 95,156, 82, 76, 50,246,246, 51,202,169, 97,190, 83,176,183, 87, 50,219, 31,243,198,245,125, 14,167, + 25, 69,170, 56, 95, 53,188,247,197, 17,127,241,238,199,124,246,217,103, 60,184,247, 57,239,126,248, 1,239,220,185,203, 7, 71, +103,220, 91,214,204,172,231,245, 87,111,144,104,133,146,130,214, 58,234,186,139, 74,233,100, 80,231, 35, 48,153,224,187, 59, 99, +174,239, 78, 88, 54, 29,247,207,150, 28,238,205,152,204, 10,148,202, 73,188,225,209,250,148, 68, 42,186,224,176, 33, 48,207, 51, +202, 84,115, 56, 29,147,106,137, 87,130,169,239,121,225,198, 75,104, 41,105,140,164,219,159,179,253,226,140,176, 61,167,200, 34, +147,253,179,207,110,114,249,197, 23, 80,121,202,141,235,135, 76, 68,198,163,197,130, 63,249,252, 30,223,184,122, 13, 39,224, 94, +219,241,227,247,255,138,127,249,254, 71,156,187, 45,159,156, 63,230,246,241,130,243, 91,199,132,205,146,208,215,252,248,206, 61, +170,197,121,212,126, 92, 61,224,179,207,239,241,181, 43, 87,232, 16,104,147, 32,165, 70, 73, 67, 45, 37,231,193,115,146, 40,130, + 49,180, 77, 71,235, 4,181,243,148,133,142, 14,141,174,103,187, 56,161, 91,109,120,184, 94,163,172,165,173, 43, 18, 44, 73, 83, + 83, 12,139,148,121,145,144, 24, 9,121, 78, 39, 36,231,121,202,120,148,241, 96, 27,248,201, 73,205,209, 98,203, 73,103,121,113, +123,206,166,111,185,150, 25,178, 44, 99,229,122,174,103, 5,149,235,249,121, 19,248,214,229, 41, 15,151, 77,212,183, 40,255, 21, +250, 23,199,163,186,225,167,235,154, 73,237,168,154,158,181, 11,220,238, 90,254,109, 93,243,158,235,120,108, 27,250,182,165, 58, + 89,178, 17, 48, 71, 82,213, 45,137,132,177,145,228, 26,126,123,146,179, 39, 32,241,176,174,215,252,116,121,198, 95,110,215,248, +110,131,169, 43,164,237, 72, 17,204,180,194,202,152,123,208,218,158,198,164,204, 38,187,204,178,130, 50, 79, 81,157,195,244,142, +177, 73, 24, 39, 49,222,118,119, 50, 66, 39, 57,187,187,251,188,178,127,141,203, 50, 33, 23,208, 55, 29,119,234,138, 7,189,227, + 76, 72,212, 56, 71,230, 10,145,151,136, 52, 71, 8, 29, 27,135,158, 47, 37,221,127,133,120,206,251,104, 15,244,224,181,124, 6, +219, 81,224,219,246, 89,135,159, 38,241,158, 85, 78,162,226,123,119,206,114,235,216,236,206, 41, 85,180, 90,153,106, 73, 46, 20, +216, 30,231, 2,206,246,212,245,146,141,173,120,208,174,121,224,123,194,112, 24,239,173,101,100, 82, 30,246, 45, 87,179,156,218, +121,118,147, 12, 33, 4,101, 54,198,227, 24, 23, 99, 54,189,197, 38, 6,223,119, 36, 73,130,247,129, 62, 6,145,178,234, 59,156, + 20,108,156,165, 37,250,243,149, 80,132, 0, 83,157, 80, 26,141,247,144,105,195,178,169,185, 93,175,184,213,212,172,172,165,119, + 22, 33,160,243, 29,184, 30,231,122,164, 23,212,125, 77,215,182,113,109,208,117,212,237, 10,217, 55, 44,251,142,166,171, 57,233, + 27,150, 93,197,173,102,197, 99,103,121,212,110, 57,247,150,202, 5, 78,215, 91,194,106, 75,240,241, 48,153, 36,134, 32, 4,153, + 20, 20, 74,176,112, 30,235, 97, 27, 96,225, 5,183,122,207,194, 11, 30,118, 61,183, 58, 71,135,228,220, 7,122, 33,216,122, 73, + 31, 2, 4, 65, 72, 37,170,243,148, 6,218, 32, 81, 42,176, 35,227,253,246,192,104,206, 58,143,146,195, 24, 31,193, 93, 4,149, +214,108,173,195, 42,205,169,237,126,131,162, 46,135,113,241,124,142, 49, 18, 53,156, 66,170,174, 31, 84,225, 50,166,183, 53,221, + 47,118,124, 38, 25,198,209, 67,241,252, 13, 18,221,158, 22,119,163,185, 27, 20,151,138, 4,239,162,154, 93, 40,205,178,169,241, + 58, 3,231,248,211,109, 75,162, 52,219,174,123, 54,178,126, 18, 74, 51, 96, 72, 89,159, 15,227,227,225, 77, 46,205,112,189, 91, +240, 38, 78, 32, 82, 3,189, 67, 9,143, 25,242,208,131,148, 76,132,164,109, 26,216, 14, 65, 44, 97, 16,136,245, 3, 0,225, 87, +242,209,135, 56,131, 44,133, 34, 69,108,187, 24, 30,131,143,175,159, 34,230, 78, 53, 45, 34,196,132, 34,209,118,113, 63,246, 85, +175,131,247,113,220,175, 61, 16,149,171,137,144,180,222,145, 72,193, 8,141, 23,209,226,118,223, 91, 82, 33,120,209, 72,250,224, + 89, 63, 61,180, 71,127,232,244, 96,143, 23,222,120, 13,117,225, 2,219,109, 15,161,128, 55,223,226,183,127,231, 63,227,158,115, +136,211,123, 3,246, 54,137,107,132,108, 54,144,244,220,211, 20,165, 39, 12,249,120, 24,248,245,232,220,119,254,242,199,188,241, +157,111,177,115, 56,197, 24,141, 48, 17, 4,227,173,199,139, 16,223, 68,244,180,182, 37,132,192, 98,177,160, 40, 74, 50,147,210, +182, 22,147, 74,242, 68, 83,166, 6, 59, 88,251,139, 68, 33,130, 36, 77, 34, 38,209, 7,143,210, 2, 51,172, 16,210, 65, 89, 47, +164, 32,213,160,165, 36, 85,138,249, 40,225,218,126,201,238,184, 32,203, 19,202,145, 65, 75,197,254, 52, 99, 50, 74,160,235, 89, +215, 27, 30,174, 54,252,252,243, 35,126,244,206,187,124,252,241,251,252,240,131,119,249,232,209,125,126,254,248, 49, 31,221, 62, +230,252,108, 75, 95, 59, 72, 21,143,215, 75, 94,191,126,131, 75,187, 99, 18, 45,233, 7, 63,233,141,189, 17,111, 28, 76, 48,101, +138,212,146,231, 74,195,235,243, 49, 58, 4, 62,126,184,224,180,110,184,118, 48,101, 90,102, 60, 56, 62,231,202,254, 30,105, 82, + 98,148,224,218,197, 43,236,230, 35,178, 52, 33, 77, 36,243, 52, 99,150,151, 92,221,221,103, 50, 26,241,232,206,125,194,206, 5, +238,120,135,208,146, 27,223,122,137,229,199,247, 16,182,166, 76, 19,188,119,124,254,241, 45,246, 47, 94, 98,220,116,220,184,178, +199,121, 29,200,131,229,224,149,235,180,121,224,255,250,131,255,147,211,236,144,147,106,133,255,236, 1, 77,223, 81,183, 45,225, +100, 67,168,150,208,219,168,228,237, 35, 62,149,182,131, 43, 23,185,174, 52, 90, 27,180, 82,244, 2,130,183, 56, 9, 78,104,214, + 29,100,153,161,239,123, 84,179, 5, 27,120,116,182, 65,216,142,237,249, 18, 87,173,113,237, 22,221,181,156,184,158, 77, 8, 20, +125,203, 78,128,185,235, 25, 19,152,107,195,104,148,162,149, 98, 17,162, 80,236,226,200,112, 48, 47,208, 38, 69,105,201,158,131, +102,189,228,249,105,206,231,235, 45, 85, 83, 51, 78, 19, 54, 78, 18,148,224,181, 81,202,191, 93,118, 4, 45,226,248,157, 4,136, +150, 72,190,228, 51,143,133,205,242,254,166,229,253,206,178,178, 45, 15,131,231, 78,221,179,168, 58,110,159,158,243,201,249,154, + 99, 47, 73, 15,167, 28,142,115,122,231, 56,119,150, 92, 10, 50,161, 48,157,101,209, 54,252,236,228,140, 63,124,112,202, 63,123, +188,226, 81,235,223,218,122,142, 0, 0, 32, 0, 73, 68, 65, 84, 40,250,154,210, 58,250,224, 56, 52,112,142, 98, 36, 35,244,164, + 82,154,115,192,168, 17,187,147, 9,174,233,145,137,162,237, 44,157,237,153,142, 50,242, 84,147, 35,152,101, 9,210, 72,228, 40, +103, 60,223,197, 8,131,237,122,100,215,161,113,164, 66,178, 22, 10,161, 21, 34, 53,200, 81, 10,227, 2,161, 82,152,140, 96, 60, + 66,204,102, 48, 29, 62, 85, 2, 98,136, 58, 30, 92, 65,193, 71,239, 63,206,199,146,233, 6, 63,126,154, 12, 22,194, 36,162,116, + 83,141,184,122, 41, 94, 15, 55,174,210,212, 91,252,120,143,170, 93, 34,203, 9,105,187,161, 35, 32, 92,207,233,246,148,135,253, +154,155,205, 57,183,250,134, 58, 4,114,165, 56,235,123, 10,163,169, 67, 96, 71,106,110, 91,203, 11,105, 70,231, 45,123, 3, 86, + 91, 11,201,253,182, 65,100, 25,155,182, 67,165, 41,174,235,105, 67, 36,190, 45, 92, 75,175, 36, 39, 93,131, 11,130, 30, 75,227, + 44,214,119, 20, 90, 51, 18,138, 92,106,130,117,212,182,227,110,189,230,131,237,130,135,117,197,195,166, 34,177, 29,139,205, 6, +219,119,136,182, 66,186,150,163,213,130,174, 94,115, 94,109,184,249,248,152,227,205, 25,155,243, 21,141,175,121, 92,109,184,181, + 93,241,160,221,242, 97,181,226,182,183, 28,185,150,165,117,108,123, 79,223,121,172,137, 19,226, 32,227,244,163, 19,224, 19,133, +245,112,226, 35,222,213,138,161,190,200,232, 12, 32, 12, 26,181,109, 19, 67,139, 92,120,182, 10, 85, 17, 40,132,133, 30, 1, 22, +198, 38,208,183, 16, 8,236,132,168, 35, 19,193,211, 58,203, 61,239,168, 93,207,210,104, 78,125,160, 22,112,218,247, 52,184,223, +160,168, 59, 23,109, 77,121, 17,115,109,125,244, 20, 71, 16,118, 23,137,105,155,234, 23,153,230,105, 18, 85,230, 98,160,237, 60, + 21,173,254,134, 81,173,206, 17, 18,201, 35,239,201, 18, 77,145,106,238,172, 27,110, 20, 57,143,154,154,207,164, 71,120,197,137, +227, 89, 7,110,135,168, 83,231,159,112, 19,227,239,187, 38,118,221,246, 73, 94,252, 80,241,236, 96, 61,211, 42,142,124,134,238, + 2, 37, 25, 11,201,170,237, 73,122, 27,215,198, 77, 19,199,248, 16,159,167,245, 95,253, 58, 57, 96, 92,198, 40, 65, 99,158, 61, +134, 68, 33,150,213,179, 9, 65,219,198,215,198, 61, 27,193,127,101, 97,103,232,216, 77, 44, 84, 78,122,118,134, 28,225, 6,203, + 4, 73, 47, 34,125,110, 46, 37, 39,206, 81, 15, 63,124,242, 98,112, 43,104,190,121,245, 57, 94,190,112,157,111,191,246, 53, 66, + 6, 15,215,129,255,234,119,255, 35,254,139,255,224, 5,222,250,230,215,121, 72,224,248,163,219,209, 37,144, 20, 17,154, 19, 52, + 40, 59,164,222,133,103,241,181,246,215, 20,244, 98, 20, 41,117,192, 95,255,155,191,224,205,183,190,199,222,254,152, 36, 75,201, +199, 17, 29, 60,158,206, 41,166, 35,242,162,164, 44,198,164, 69,134, 78, 52,245,118,201, 98,177,224,236,108,129, 16,154,245,214, + 97,117, 20,157, 44,219, 62, 2, 54,132,136,161, 6, 66, 80,217,104,119, 19, 16,177,172, 79, 70,139, 2, 50, 25,119,241,137,138, +113,168,121, 98, 8, 90, 83, 26, 67,145,166,236, 76,114,114,105,216, 52,150, 85, 93,211,214,150,109,219,113,126,178,230,241,163, + 71,124,248,240, 17,119,238,158, 83,173, 27, 90, 27, 96,107, 33, 85, 20,251, 25, 47,237, 77,152, 22, 6,187,172,217, 59,220, 35, + 85,154,210, 36, 92,158,229,188,185, 63,229,202,238,136,157, 44,193,139,192,170,141,252,231, 63,187,121,159,159,222,250, 28,215, + 89, 46, 30,238,177,169, 90, 30,159, 46, 33, 75,217,187,176,135, 16, 9,194,121, 52, 10,135,136,202,230,196, 48,206, 11,102,211, + 29,116, 94, 98,130,103,251,197,103,220,201,118, 41, 52, 72,173,217,236,236,113,252,232, 4,217, 86,100, 74,147, 39,154,234,241, +130, 23,111, 92,198,143, 75, 70,215, 15,185, 56,155,243,220,133, 9,255,243,255,250,191,243,216,106,110, 62,188,135,127,239,179, +216, 97,244, 3, 40, 41,209, 48,140, 94,201,146,120,205,118, 33,178,240, 23, 43, 62, 29,101,252,252,236,148,185,140,176,155,182, + 9, 72, 36,219,222,227,189,163, 58, 95, 83,120,135,105, 26, 54,213,130,166,233,121,176, 92,243,117,111,249,142,250,255,185,123, +179, 88, 79,211,252,190,235,243,108,239,246,223,207, 82,167,214,174,234,165,122,186,123,118,207, 52,198,177,227, 69, 38,118, 98, + 71,193,114, 34, 43, 66, 17, 4, 9, 41, 8, 36,110,184,135, 11, 64,202, 69, 16, 8, 16, 8, 4,145,130,130,132, 4,138, 9,177, + 49,182,135,140,199,158,173,103,198, 61, 61,189,119, 85, 87, 87, 87,215,114,234,236,255,253,221,158,133,139,231, 61,117,170,151, +217,130,114, 97,254,210, 95, 71,213,234,243,255,191,231,125,158,247,249,109,223,197,176,221,172,249, 95, 95,125,135,105,162,152, +183, 53,173, 15,156,107, 23,236, 8,120, 6,216,202,114,130,137,243,113,169, 20,189,194,240, 92, 63,163,144, 48,201, 20,152,132, + 69,229, 24, 38, 57,199,171,154, 13, 45, 24, 38, 18,231, 26,188, 8,224, 21, 90, 75, 46,171,192, 93, 27, 58,133,200, 64,168, 98, +135, 41, 88,255,177,118,116,144,158,202,183,220,169, 43,110,156, 44,120,255, 96,197,157,195, 25, 15,103, 51, 78, 86, 11, 14,147, +148,187,189, 28,231, 5,223,159,215, 44,124,212, 42,210, 26, 94, 94, 52,124,103, 85,243,207,239, 30,243,206, 73, 13, 58, 26,207, + 12, 7, 25, 57,130, 84, 43,246,130,194, 39, 9, 7,193, 51,147,154, 67,169,144, 82, 83,122,199, 80, 37, 4, 99,152,151, 53,199, +182,197,118, 92,231, 84, 70,153,217, 44,209,228,157,219,159,151,130,180,200,217,233, 13,120, 34, 31,115, 25, 67, 17, 2, 9,146, +125,239, 58, 49,154, 72, 17, 37,213, 29, 86,168,207,197,115, 19,126,229,210, 57,126,245,137,203, 60,113,174,207, 29,169,105,181, + 1, 17, 25, 7, 4, 79,176, 54, 86,153,222, 71,113,152,212,196,162,103,178, 1, 27, 35,206,237,108,178,218,222,138,103,231, 96, +192, 24,139,239,111,208,184, 10,219,223,224,126, 61,227,158, 73,121,111,190,207, 93,225,184, 85,206,120,208,214,188,189, 94, 16, +108,205, 72, 41,246,109,205,213, 52,227,196, 58, 82, 33,216,199,243,108, 90,240, 70, 83,115, 53,201, 57,112, 22, 33, 4,239,218, +150,190, 73,249, 65, 85, 34,180,228,164,169,104,164,162,242, 45, 75,160, 68,112,220,148, 44,189,167,148,138,149,107,105, 90,203, +220,182,164, 66,162,130,227,214,226,132, 58,180,220, 94,207,184,177,156,242,160,109, 56,110, 43,234,170,225,100,182,162, 89,174, + 88,175, 74,102,211, 5,135,211, 25,139,195, 37, 71,251,199,204,142,166, 52,135, 7,212,251, 83, 22, 71, 83,118,247,167,220,245, +154, 70,171, 24, 36,149,102,213,182,148, 77, 32, 72, 73, 89, 91, 86,222,178,180,254,145, 57,149,232,101,120, 33,105, 90, 79,109, + 36,161,245, 56, 29,133,130, 30,157,155, 42,137,138,108, 74, 64, 17,129,154,103, 50,129,157, 69,169,232, 92,234,188,165, 9,158, + 66,195,134,130, 99,231,232, 35,152,150, 13, 43,111,249,147, 69,133,177,142, 3, 36,139,208,130,144,204,125, 4,138,214,136,159, +144,210,230, 92,156,201,230, 5, 33,216, 24, 60,155, 58,182, 60,151,107, 88, 47, 62, 28,176, 83,211, 9,183,116,182, 61,167, 22, +166, 63,133,255,122, 0,146, 34,103, 90, 55,184, 32, 73,240,124,253,112, 69, 98, 4,109,235,216,175,125, 87, 61,119,124,115,173, + 98,183, 32, 87,176,174, 35, 31,220,159,122,134,119,215,108, 84,231, 59,222,137,195,184, 22, 76,246,200, 65, 45,116, 66,179,141, +173, 9,222,227, 84,128,217,178,163,165,117, 98, 54,237,143, 80,151, 75,101,228,242,107, 29,221,136,124,180,116, 21, 77,211,113, +216, 29,212, 54,154,222,167, 18, 33, 76, 76, 58, 78,173,246,126,152,240, 79,231,143,254,172, 78, 89,227,200,145, 44,136,129, 77, + 7, 40,164,228,158,181, 92,209,154, 61,101,104,179, 33,161, 95,116, 9,129,224,194,198,132,107,151,159,140,200,209,124,192, 43, +187, 31,240,111,252,234,231,249,212,149, 9,227, 66,179,191, 47,120,253,165,239,117,237,247, 78,156,199,119,162, 61,117,123,214, +129,249,104, 64, 47,178,120,255,174, 63, 15,131, 49,108, 92,128,227, 35,192,243,237,175,252, 41,159,251, 75, 63,203,120, 84,224, +136,244,143,114,189, 98,117, 60,195,121, 71,219, 52, 81,224,195, 89,234,186,162, 63, 26,146,164, 9,179,147, 25, 7, 7,187,104, +211, 35, 0, 59,147, 30,163, 92,227, 36,156,148, 13,166,211, 87, 87, 2,124,136, 92,119, 33, 5,153,142, 85,158,150, 26, 41, 85, +244,146, 14, 2,143, 68, 40, 25, 15,203, 68, 70,189,248,202,177,110,106,172,107, 81, 26,166,139,134,245,170,230,251,183,222,224, +157,189,121,228,154, 42, 21,147,209, 76, 49,218,200,184,216, 47,216,232,103,108,247,251,212,190,197,137, 12, 47,213, 35,145,190, + 69, 21,165,108,119, 79, 86,188,124,251, 33,239,221,127,200,205, 7,123,220,216,123,128,117,142, 98, 48,100,114,126,147,219,247, +246, 89,206, 23,148,229, 42,186,212,245, 50,174, 93,187,196,249,139, 27,244,123, 3,180,202,176,173, 37,237, 15, 41,155, 53,182, +110, 16, 90,145, 21, 5,217,221, 91,204, 70, 91,140,100,224,122, 63,227,249,103,159,102,125, 82, 17,234, 57,121, 86,144, 38, 25, +199,211, 22,181,179,201, 94,213,240,236,229, 77,254,163,255,244,191,224,181,111,191,193,244,189,251,132,249, 52, 74, 89,166,130, +176,170, 9, 78, 17,146,132,225,102,143,122,101, 65,248,200,248,176,113, 92,116,249,242, 54,139, 96, 97,235, 9,126, 69, 84, 4, +149, 50,111, 26,172, 11,220, 43, 75,214,117, 77,174, 53,214,181, 80,206,168,235,154,253,197,140,145,146,252,198,120,194, 53,101, +216, 80,134,230,226,121,158,154,108,112,239,248,136, 70, 6,174,226,185, 28, 2, 67,109, 24,248, 22,147,100,184, 16,152,154,132, + 11,189,132,169,139,136,248, 74, 8,122, 50,176,118, 62,170, 34,162,104, 76,142,105, 3, 43, 27,169,167,155,169,225,104,221,146, +230, 41, 3, 41,217,119, 46,210,223,180, 36, 52, 14,178,156, 80,175, 63,196,221,126, 92, 51,221, 75,112,218,199,119, 7,100,242, +117,133,175, 3, 7,203,150, 48, 91,196,115, 57, 81, 44,140,161,173, 28,117, 89, 35,234,238,124,201, 2, 33,207, 88,104,195,168, +208,232,188, 0, 99,168,165,198,106,197, 2,193, 80, 18, 21,191, 58,252,236,222,122,201,126,219,112,100, 75,214, 30, 22,109, 75, + 79, 42,114, 21,249,236,198,131,177,142,108,144,115,113,107,200,214,120,192,168, 87, 48, 50, 25, 67,175,201,165,198, 90,203,145, + 16,177,163, 18, 58,157,116, 35,121,170, 63,224,111, 95,186,194, 95,185,116,149,141,172, 71, 45, 13, 7,161,229, 80,201,248,188, +230, 69, 84,214, 44, 6, 49,208,164, 5,194,228,209, 69,115, 99, 19,206,141, 33,203,248,204,230, 6,207,231,154,139,249,144,237, + 36,231,124,127,204,115, 9,156,235, 15,112, 85,197, 42, 29,178, 91,214,232, 65,159, 89, 83, 82, 74,201,253,122,197, 40, 53,145, + 2, 38,224,185,164,224,157,182,225, 66,154, 49,199,115,197,100,188,222,212, 60,159,245,121,205, 86,140, 84,194, 59, 33,112,222, + 24, 94,105, 74, 46, 36, 57,175,181, 13,107, 9, 55,154,146,131,110,170,182, 86,154,123,214,226,140, 33, 56,139, 82, 6,149, 36, +236,151,107,148,183,188, 52,159,241,126,189,226,219,199, 71,124,251,232,152, 91, 85,195,237,163, 41,179,217,138,102,177, 34, 44, + 86,132,178, 34, 44,231,177, 72,105, 60,193,183,113, 39,172,235, 24, 87, 37, 4,105,163, 86,100, 11,195, 73, 63, 22, 94, 33, 48, +115, 1,235, 60, 7,109, 75, 42, 37,211,224,112,182,165,105, 44, 20, 73, 28, 47,122, 98,140, 8, 34,198, 1,219,129,141,148,124, +100, 28, 38,186, 14,103, 32,196,160,190, 88,158, 41,159, 74, 16,170, 51,175, 9,145,194,188,106, 29,139,210, 97,240,220,154,213, +220, 44, 27,222, 94,214, 76,107,203,205,117,203,173,170,137,250,154, 34,142, 95, 87,193, 82,150,229, 79, 24,212, 79, 3,187,239, +244,209,203,170,227,155,183, 17,185, 94, 86, 31, 49, 0,209,143, 80,223,248, 83,190,120,243,211,153,136, 56, 71,211,180, 88, 89, +112, 56, 95,115,216, 74, 84, 2,211,101,195,244, 84,183,187,141,178,149,168,238,100,149, 34, 2,243,210, 46, 19,242, 46,210,217, + 48,157,154,154,143,227, 0, 97,227, 99,157,100,241,161, 72, 35,208, 44, 40,213,101,176, 93,101,186,174,187,207,233,192, 99,117, +243,163, 19,147,214, 66,154, 68,105,195, 83,254,109,219, 62,194,151,161, 4,233, 86,159,191,247, 11,159,229, 11, 87,118,248,204, +213, 29, 94, 93,183,112,112,244,113,214, 1,143,181,229, 93,180, 35, 60, 20,130, 73,128,105,240, 92, 82, 9, 46, 4, 86,206, 50, + 84, 26, 21, 60,203,126, 31,113,105, 27,159, 22, 52,242,148,150,230, 89, 53, 53,231,243,130,224, 28,251, 71,247,121,111,239, 24, +213, 66, 49,232,243,238,238,154,255,253,155,223,164,124,247, 78, 76,118,172,237,208,254,246, 49, 79,121,251,225, 57,122,218,135, +254, 8,174, 94,227,201,167,159,230,231,158,249, 12, 69,158,146, 37,154,217,178,130,114, 1,192,183,254,248, 79,121,254,103,191, +204,100,220, 39, 16, 40,215,117,228,165, 59,135, 76, 20, 70, 39,164,131,156, 36,205,241,221,131, 34, 59, 94,120, 86,228,156,204, +150,236,159, 44, 57, 92,181, 44, 86, 45,182,182,148,141, 35, 75, 21,206,197,249, 32, 34,138, 58, 32, 4,214, 5,210,196,144, 24, + 29,133, 48,132,140, 10,111, 50,138,110, 4, 31, 56, 94, 53, 28,206,151, 20, 41,236,238,175,184,253,193, 33,135,135, 83,254,219, +191,255, 31,227, 46, 92,227, 92, 95, 50,109,227,104,233,234, 86,193,115,231,199, 20, 90,113,105, 50, 98,107, 48,164,245,142, 69, + 89,177, 94,206,217, 24,111, 16,132,228,120,177,230,131,227, 21,183,246,230,188,125,255,144,233,225, 49, 77,213, 48,155,207, 59, +228,173, 33, 47,250,180,173,224,222,221,219, 4,239, 41,203,117, 20, 94, 42, 75,164,201,184,184, 51, 97, 60,204,121,225, 83,151, +216,220,220, 96,190, 88,211, 44, 43,150,235, 21,149, 83,172,231,199, 40, 37, 88,220,120,141,139, 91,151,201,140,166, 21,160,159, +216,193,222,185,207,108,185,100,144,247,153,156, 59,207,231,175,159,231,229,247,118,249, 63,191,251, 22,239, 52, 21,161,108,160, + 46, 9, 36, 81, 45,205,219,168,206,102, 27,152,244,249,119,159,218,226,217,243, 3, 94,185,127, 4, 78, 71,237,123,173,153,159, + 44,249,210,246,152, 23, 38, 59,252, 7, 63,247, 34,127,248,242, 55, 24, 20, 57,223,152, 30,243,160, 46,185, 55, 59,160,169,150, +188, 59, 59, 1, 15,235,122,201, 27, 15,247,248, 66,166,121,177, 63, 98,152, 20,204,109,203, 74, 90,254,195,127,243,175,178,145, +143,249,254,189,125, 46, 40,203, 57,161,216, 9,209,145,175,157, 47, 56,177,160, 18, 73,139,166,159, 39,212,225,140, 62,234, 91, +199,210,118,192,174, 34,163,241,129, 75,105, 1, 38, 37,209,134,161, 49, 84, 74,113, 80, 86, 76,101,231, 56,153,103,132,113, 63, + 58,251,109,108, 16,122, 61,130, 73, 9, 38,199,215,229,163,201,243,227,239, 83,170,151,247,158,176, 90, 18,230, 75,130,111, 32, +207, 17, 91, 99,138,126,143,214, 68,165,200, 32, 69,215, 1,108, 97,111,142,149,146,157,157, 9, 99,109, 40,117, 26,177,176, 66, +208, 55, 41,147,108,128, 70,144, 40, 73,161, 36,211,118, 69,226, 29, 85, 93,113, 82, 87,180, 90, 49,183,150, 60, 64,129, 66, 87, + 13,253, 34,101,251,194,128,254,184, 71,111, 82, 32, 19, 67,162, 13,133, 52,168,186,198, 21, 9, 53, 41,115,147, 34,104, 17,203, + 5, 56,207,207,108, 20,252,252,214, 54,227,162,143,150,134,239, 47,102,188, 84, 89, 90, 37,161, 40, 96, 56,130,241, 48,186, 88, + 22,177,117,207,176,135, 56, 55, 70,108, 12, 32,201,248,237,115, 19,180, 8,244, 85, 66, 47, 81,124,106,178,205, 88, 64,149,228, +248,182,100,115, 48,162,106, 27, 54,122, 41,179,218, 49, 40, 18,230, 66, 48, 74, 50, 22, 66, 49, 82,154,167,139,130, 91,222,241, +116,214,231, 1,158,109,147,114,211,181,124,161, 24,242,186,109,120,190, 24,114,219, 53,236,104,195, 77, 41,121,218,100,220,241, + 45, 27, 42,225, 43,171,134, 59,109, 64, 43,205,161, 72, 57,242, 45,100,195, 40, 17,157,230,216,166,230,192, 5, 46, 24, 67,233, + 90,116,213,240,157,131, 53,251,123, 83,202,227, 5,213,222, 67,194,172, 36, 44,203,184,215,215, 77,236,216, 56, 8,173, 3, 17, +249,254, 17, 48,221,126, 8,135, 16, 26, 75, 16,146,121,101, 41, 6, 25,139,224,153,173, 43,130,209,140,148, 98, 29, 2, 25,112, +210, 90,130,245,143, 5,244,199,156, 47,101,167,147, 46, 59, 90,176, 52,241, 12, 61, 29, 19, 11,209,197, 6, 23,207,202,166,138, +197,166, 13, 81,115,193,118, 64,229,198, 97,181,100,181,172,104,239, 28,224,119,134,132,170,138, 14,134,117,133, 93, 91,246,102, + 37, 33, 85,236,207, 23,204,235,146,121, 85,253, 20, 65,189, 3,155,196, 25,115, 29, 51,145,229, 52, 86,199, 31, 13,116,237,169, + 63,123,167, 47, 30,236, 79, 85,165,127,168, 13, 47, 34,194, 51, 40,112,243, 21, 78, 71,167, 40,116, 71,191,242, 93, 27,163,233, + 28,218,132,136, 45, 68, 41, 98,219,220, 73,240, 21,164,105,188, 86, 69,156,167,159,250,144,247, 11, 88, 85,177, 45,213,118,237, +230, 32,186, 68,197,199,224, 92,182,177,218,255,104,242,242,137,192,128, 40, 8,129, 84,143,104, 99,143,108, 20,123,138,223,249, +220,115,124,249,179,215,185,118,229, 18,189, 65,159,137, 49,188,121,119, 63,222,207,254, 4,182,182, 97,251,114,119, 96,116, 98, + 57,105, 52,124, 9, 65,177,173, 4,233,233,193, 35, 37, 70, 37, 84, 69,193,232,218,147, 20,151,174, 32,242, 1, 66,122, 18, 37, +177, 68, 81,150,160,160, 45,167, 52,229,138,187, 7,251, 28, 77,103,220,218, 61,226,251,119,142,185,189,123,132, 78, 3, 83,217, +121,200,231,166,115,228,235, 16, 53,217,169, 61,173,120, 36,246,241, 59,127,251,111,240,155,191,249,235,252,214, 95,126,145,207, + 92,127,138, 34, 45,104,203,150,131,114,198,108,185,140, 93,157, 14, 33,255,210, 87,254,140, 39,174, 63,205,165,203,231,208,137, +193, 5,129,107, 91,108,211,210, 84,209,187, 90, 73,133,210, 18, 39, 2,109, 93, 33,141,196,186,104, 35,136,128,217,241, 34, 58, +142,245, 83,238, 60, 56, 97, 94,182,172, 43,199,176,103, 88, 55,142,117, 29,157,151,124,128, 52, 49, 56, 33, 98,192,116, 33,250, +186,187,208,209,118, 2,193, 70, 69,191,187, 15, 23,124,251,123,111,178, 94,174, 81, 65,112,225,153,231,217, 24,110,176, 44, 79, + 48, 6,206, 13, 50,182,122, 57,105,146,160, 4,244,211, 12,165, 52,173,109, 73,181,138, 66, 55,227, 62,155,163,130,224, 3,109, +221,224,156,163, 90,173,177,190,198,214, 45, 38, 55, 12,134,131,232,159, 83,215, 28, 30,239,177,174, 74,172,143,146,201, 50, 64, + 99, 91,214,203, 5,249,160,207,221,123,135,236,223, 59,100,213, 88,202,178,138,244, 32,231,168,133,102,160, 2,101,179, 66, 6, +193, 63,127,243, 13,174, 94,185,198, 50, 81,120, 41, 96, 99, 27,125,120, 72, 80,146,171,159,190,198,238,225, 9,255,253,127,253, +143,216, 31, 13, 8, 65,112,117,123,196,201,209,156, 96,163,189,103,112,154, 32, 45, 1,201, 95,237, 23,252,141,171,151,152, 76, +206,113,151,150,189,131, 69, 92,107,219,194,186,102,119, 81,177,215,204,233,111, 95,226,205,226, 2,127,114,251, 6,203, 15,222, +167,109,214,184,195, 35, 78,238, 60, 96,189,156,243, 96,247, 33,187,199,115, 88,172,121,113,152,112,217,244,104,129, 91,205,146, + 69,211,240,153,139, 23,248,218, 94,197,157, 96,120, 38, 84, 12,133,230,138,201,240, 77,205,180, 92, 49,173, 86, 52,141,101,152, +165, 72, 35, 17, 70,162,188,160, 42, 91,142,234,200,201, 14,137,162,240,129,103,198, 3,182,123, 57, 79,142, 70,108, 21, 3, 84, +218,167,245, 18, 31, 2,203,186,100, 59, 49,156,207,115,174, 12, 70, 12, 55, 71,108,109, 78, 56,119,110,135,213, 32,167,214, 2, + 95, 12, 9,182,194,183,246, 19,131,251,153,147, 88,108, 83,227, 26, 66, 0,159,104,124,104, 34,142, 72, 40,254,206,149, 17,127, +237,137, 77,254,108, 81, 19,170, 53, 15,156, 68, 20, 61, 6, 89, 2, 58,165, 16,138,173, 52,163,113,158,139,105,193, 42, 56,150, +109, 77,102, 18,178,224,105,218,146,204, 40, 78,234, 53, 85, 8,184, 0,125, 2, 61,169, 40, 50, 67,186,221, 39,233,231, 72,173, +162,131,105, 16, 80,182,164,206,147, 56,135,207, 53, 83,217,167,202,250, 48, 62, 15, 82, 48,240, 13,147, 96, 81, 54,240,205,147, + 35,190, 58, 91,112,212,214,144,102,244,139, 1, 73,154,146, 38, 9, 77,154,128, 17,136, 44, 69,228, 25, 36, 25,191, 56, 28,242, + 75,219,155,140,211, 30,107, 33, 80, 4, 54,250, 27,188,190, 92,115, 97,115,147,188, 90, 49,200, 71, 28,172,231, 12,123, 99,180, +107,240, 73, 74, 45, 65,163, 88,184,134,158,148,172, 67, 96, 22, 60, 79,154,140, 93, 1,219, 66,242,126,176, 92, 55, 5, 63,104, +215,124,177,152,240, 70, 91,243,132, 73, 57, 20,146, 39,133,230,221,224,184,164, 12, 95,171, 45, 90,167, 44,146, 52, 42,215, 25, +137,206,114,110, 47, 42,134,195, 49,109, 93, 82,166, 57, 89,154,145,138, 20, 35, 2,137, 12,172, 68,224,120, 81, 19,234, 10,188, + 32, 40, 27,215, 47,184,104,186,162, 32,184, 78, 73,179,237, 4, 58,234,211,130,165,195, 93, 88, 23,139, 25, 35, 8, 73,193,220, +123, 86, 62,158, 79,198,195,202,121,188,245, 76,109,131,111, 61, 94,118,138,114,174,251,189, 54,196,100,207,187, 88,220,213,174, + 43,238,162, 48, 26, 82,119, 44,168, 83, 68, 98, 32, 74, 24,218, 88, 48,182, 1,154, 53, 66,201,200,220, 10,237, 35,239,145,254, +207, 61,207,175,255,194,175, 49,185,180,197,221, 31,188,129,119, 14,239, 26,124, 91,115,184, 42,217, 95, 58, 30,204, 75,118,231, +229, 79, 25,212, 93,231, 7, 94, 55, 17, 13,222,254,136, 96, 29,186,249, 51,246,147,103,208, 63, 77, 31, 94,133, 88,233,135, 78, + 60,166,237, 2,185, 15,103,148,171, 83, 32,151,144,241, 64,106, 59,212,182,179,157, 14,123,135, 80,119, 26,124, 19, 51, 85,219, +145,141,243, 36,182,153,173,139,111,245, 88, 85, 90, 69,126, 42,101,219,181,236,221,143,189, 94,225,186, 44,190,181,145, 67,239, + 99, 71,225,252,185, 17,191,246,165, 79, 51, 30,111, 32,181,102, 60, 28,160,148,231,107, 15, 14,163,144,198,198, 38,191,252,133, + 95,226,153, 43,207,176,177,189,195, 60, 87, 48,153,224, 70,227, 56,235, 46,250, 28,139,140,162,200, 88,110,142,217,186,122, 29, +189,185, 65,178,189,205,197, 11,207,176,179,245, 36,147, 98,136,210,158, 84, 9,164, 10, 24,169, 56,159,165,104, 4,139,186,229, +225,186,164, 57, 46, 17,212, 76, 46,110,243, 59,191,254, 34,127,235,231, 63,197,214,104,204,203,111,220,141,155, 92,117, 18,177, + 38,116,179,158,110, 22, 36, 5,140,174,240,203,191,240, 34,189,188,160,223, 75,105,218,192,114, 94, 81, 54, 53,175,127,112,159, +102,247,118,151, 4,157, 9,202,127,255, 27,223, 35,233,245,185,122,253, 10,195, 65, 15,235, 2, 38,141,148, 12,173, 20,202,168, +168, 42,151, 38, 36, 89, 66,154, 36, 72,109, 88,173,102,148,229,138,197,244,144,245,170,100,186, 40, 73,179, 4,148,160,117,142, + 59,247,142,185,125,231,144, 50,120,234,198,243, 96,186,164, 14,158,163, 69,116, 73,187,249, 96,193,113,217,128, 8,172,234,154, + 89, 85,241,222,238,140,155,119, 30,242,242,159,191,129,111, 45,121, 97,184,117,231, 22,139,234,132,175,255,254,239,243,220, 11, + 79, 51, 74, 13,189,196,144, 38,138,126,154,161,181,194, 57,139, 15,158,225,176,207,100, 99,194,120,115,131,119,111,220, 96,126, +176,224,137, 39, 47,178, 49,206, 17, 82,178,152,174,168,203, 10,169,162,184,133,119,129,249, 98,198,162, 90,226,188, 39, 81,154, +166, 45, 49, 90, 99,148, 65, 25,133,208,154, 64,194,241,241, 58, 2,247,238,221,225,206,238, 7, 28, 29, 31,147, 25,197,131,221, +219, 72, 13,133,201, 17, 82,144,184,138,111,191,250, 58,227,107, 79, 51,159,215, 28, 79,215, 12, 81,188,240,229,231,120,240,193, + 3,254,203,127,240, 15, 9,195,148, 48, 24,240,244,248, 28,191,120,225, 28,149,104, 56,120,176, 23,207, 18,121, 10, 30,243,188, +187,172,216,222, 26,240,170,215, 84,131, 77,238, 29, 79, 35,144, 7, 27,159,183,186,198, 46,106,190,253,224, 30,187,227,109, 66, + 2,236,237,194,195, 67,196,193, 20,148, 68, 78,143,162,234,240,122,137, 90,172,121,114,144,226,104,120,216,214, 60, 16,130,243, +166, 64, 60, 56,160, 76,115,110,212,150,220,193,139, 89,206,121,147, 48, 65, 82, 84, 75, 74, 23, 56,241, 22,231, 37, 18,133, 22, + 18, 71, 96,191,116, 76, 27,139,112,142, 92, 4,174,244, 82,174,231, 42, 42,197, 77,250,244,179, 20,157,103, 52, 33, 97,238,115, + 18,225,144, 50,112,165, 95, 80,164, 25, 74,103,236, 12, 7,132,160,184,212, 27,161,243,148,117, 97,104,130, 38,120, 73, 80, 1, +223,218, 15,181,230, 63,106,125, 26, 90, 11,179, 57,254,112, 30,193,191, 43,203,223,188, 52,226,239, 60,117,133, 79, 77, 54,184, +220, 19,124,237,193, 49, 65, 40,218,113, 76,242, 76, 98,216,214,138, 84, 37,108, 36, 25, 51,215,208,215, 41,235, 16, 53,192, 69, +176, 40, 33, 72,157,195, 72,197, 10, 88, 52, 53,206,181, 76, 80,244, 70, 41,201,184,128,160, 16, 50, 82, 8,221,178, 69, 84, 45, + 38,120,250, 66,145, 74, 56,108, 61, 85, 62, 68,141, 54,217, 26,110, 51, 73, 39,124, 80, 46,120,105,127,159,239,150, 21,123,101, +133, 73,114, 70, 4,206, 43,195, 68, 74, 90,223,178, 45, 37, 94, 26,172, 78, 65, 8,118,122, 3,254,253,171, 87,248,197,237, 29, +206,101, 57, 15,154,134,117, 62, 68, 9,193, 23,183,182,120,176,174,216, 25,142, 56,168,106,174, 15, 71,172,155, 53, 62,201, 88, + 59,139, 5, 26, 44,153,146, 44, 90,203,200, 24,148,139,238,107,153,179,204,149,230,162, 54,188,211, 86,124, 62, 27,240,157,122, +197,245, 36,229,182,141,149,249, 45, 44, 79,201,148,119,189,101,152,102,188,237, 96,101, 50, 46, 25,143,201,115,156, 15, 92,204, + 19,172,131,116, 48, 64, 91, 71, 26, 2,187,182,166,144,134,165, 15,188,125, 60,231, 92,207, 48, 21, 50, 26,255,216,216,109, 12, +105, 10,182,237,176, 21,177, 94,139,129,221, 34,130,239, 84, 52,187,192,124, 26,220, 91, 75, 8,109,231,194,150, 98,157, 71,106, + 88,181, 45,214,123,188,148, 88,231, 8,136, 51,183,207, 68, 19, 84,199,241,149, 42,250,180,166,230,209,104, 87,136, 83,254,175, + 56,227, 1, 55, 54, 22,147, 77, 21,199,181,162, 99, 69,181,109,108,213,251, 14,184,218, 90,154, 59,187,188, 83,205,185,251,250, + 77,194,122,253,161,189,234, 91, 27, 29,235,234, 10, 87,173,127,218, 74,253,167,120,121,255, 73,236,138,127,177,207,105, 79,181, +210,125,148, 88,149, 62, 86,224,170, 67, 20,186, 16, 3,206, 41, 24,175,125,140,142, 69,135, 90,119,246, 76,196, 89, 6,176, 50, + 90,234, 40,115, 6, 6, 75, 77, 92,144, 14, 48, 39,137, 45,219, 71,215,240, 73, 28,117, 62,130,248, 79, 82, 68,136,170,123,104, +137,208, 34, 82,236,180, 36, 29, 13,184, 48,218,226,250,213, 29,154,214,209, 88,199,235,239,238,243,131, 91,183, 65,107,190,244, +244,179, 92,217,188,202,160, 72, 24,229, 35,206, 15,183, 57, 63,222, 98,107,180,201,212,173,105,165,128, 84,225,243, 62, 95,120, +234,103,184,124,233, 83, 12, 70,219, 76,134, 19,118,118, 46, 99,250, 57, 70,235, 40, 52,225,106,188,111, 59,224,152,102,208,203, +169, 90,207,193,170,194,175, 23,144, 14,248,173, 95,252, 57,126,249,179,151,216,238,103, 44,170,154,175,254,249,219,221, 24,163, + 75,152,156, 7,225, 62, 60,236, 15,129,231,158,190, 70,154,231,184, 32, 56, 62, 94, 48,157,157,240,242,187,239,242,240,213,215, + 59,179,154, 56,210,160, 55,140,182,180, 73,143,155,175,190,198,205,163, 41, 79, 94,185,194,246,206,152, 52,141, 21,181, 78, 77, + 4,136, 72,133,210,209, 96,231,248,225, 62,243,163, 99,210,126,129, 64,160,140, 34,235,229,113,148,176, 90,178,119,255, 30, 94, +106,170,178,194,121,199,201,193,148,123,119,247,152, 30, 45,168, 90,207,189,221, 67,110,221,188,207,108, 58, 99,212, 79, 25,102, +134,183,223,185,195,155,175,191, 79,185, 42,217,189,247, 16, 66,137, 39,208, 54, 21,155, 91, 27,100,169,230,179, 95,124, 1, 33, + 4,214,183,164, 90,147,152,132,212, 36, 88,231,200,146,132,201,104,192,100,123,139,197,108,198,239,189,244,231,188,250,123, 95, +225, 7, 39, 71,108,167,125, 62,253,169,171, 76, 6, 57,135, 39, 37,101, 85, 19,112, 88, 91, 81,173, 75,130,112, 88,219, 18, 66, +160,106,107,218,198, 33,181, 36, 77, 83,146, 52, 37,207, 11,180,201,249, 31,254,243,191,207, 42, 83, 60,117,241, 9,132,128, 59, +251,123, 20, 90,115,251,120, 22, 27, 37, 70,144, 37, 5,105,146,146,135,192,242,214, 77,222,247, 9,243,147, 19,152,157,176,213, +235,241,250, 31,253, 1,183,111,223,137,235,176,189,197, 47, 93,188,202,100, 52,162,110, 4,239, 29, 29, 65,181,254, 16, 26, 28, +103,249,238,221, 19, 30, 76, 6,140, 19,197,238,180, 11,234, 70, 69, 77,233,102, 21,159,175,117,137,112, 51, 56,119, 25, 33, 3, +226,120, 14,179, 35, 68, 98,162,116,169,144,200,202,161,122, 57,247,102,107, 66,112,172,141, 98, 96, 82,174,165, 61,206,103,125, +174,175,150, 60,151, 40,254, 68,229,252,229, 80,179,163, 37,217,186,164,239, 32,149,129, 99, 33, 57,106, 61,203,101,197,209,178, +101,247,168, 97,225, 37, 77, 93, 99, 36, 76,180,228,185, 73,194,118,145, 48,233,165,104,169,200,178, 4,175, 12,199, 46,224, 85, +198,170,105,217, 73, 2, 7,141,165, 17, 9,219,253, 2, 23, 20,105,170, 73,242, 30, 82,229, 36,198, 96, 83,205,218, 72, 66,211, + 65,115,196,153, 35, 91,248, 33,193, 29, 31,131,123,200, 11,206,111,244,120,114, 48,160,111, 18, 94,218, 63,226,229,105, 11,174, +161,116,129,173,201,132, 45, 90,198,105,143, 43, 89,129, 11,176,242,142, 6,207, 68, 25,102,109,133, 21, 34,138,137, 0,199,245, + 18, 97, 29, 7,203, 21, 53,129,208, 54, 12, 91, 73, 49,200, 65, 10, 92,101,169, 22, 22, 97, 29,218,122, 84,136,179,247,148,128, +203, 53,165, 73,201,123, 9, 23, 6, 5, 27, 89,198,181,241,152, 75, 58,229, 25, 9, 6,199, 6,146,157, 44,193,132,134,129,146, +164, 85, 67, 38, 37,137,138, 74,124,107,161,121, 82, 75,254,202,214, 38,147,201,132,188,223, 99,225, 37, 43,161,216,234, 13,184, +217, 74,158,204, 13,135,222, 51, 50,146,135,192,192, 7, 14, 2, 72,111,169,131,194,224, 56,113,129,158,130,135,214,114, 73, 42, +156,244, 56,165, 24, 11,193, 45, 91,113, 61,201,121,185,173,249, 76,154,241,102, 83,115, 53,201,184,237, 45, 87,149,226, 29,107, +177, 42, 97,215, 9,118,209,236,136,192,118,191,135,118, 81,193,209, 41,205, 74,196,209, 93,240,240,190, 83, 60,155, 36,212,194, +179,169, 52,123,205,154,210,186, 40,190,213, 70,231, 52, 76,151,144, 17,147, 34,244, 41,144,218,253, 72,208,111,232, 66, 71,176, +167,192, 74, 69,211, 52, 56, 43,176,194,163, 36, 88, 58, 16,156, 20, 12,211,132, 70, 10, 6,137,129,196,224,106,219,137,121,117, +133,208,227, 1,221,118,223,127,170, 54,106, 58,155,111,219, 60,242,149,127,132, 63,235, 18,141, 71,201,198,193, 17,172, 63,252, +252,250,199,233,138,222,227,189,255,151, 24,212,255,101, 37, 10,208,129, 15,136, 70, 42,190,243, 66,183, 93,171,188,113, 17,224, +100,187, 96,244, 72,100,229, 84,212,197,199,223,179, 33, 46,114,211,130, 54,177, 90,135,216,162,207, 12, 10,129, 95,119,116, 57, +239, 98,144,230, 19,140, 88, 30,151,211, 85, 41,164, 10,145,165, 93,101, 27,187, 6, 66, 68, 43,203,114, 94,147,100, 61,122,253, + 62,203,202,113,111,127,197,183,222,188,193, 73,217,242,212,120, 27, 39, 44, 23, 55, 47, 61, 98,200, 25, 97, 24, 15, 55, 25,101, + 99, 92,104, 89, 87,115, 18, 45,249,244,149, 43, 60,247,220,103,185,250,244, 5, 46, 92,220, 1, 82,164,146,228,121,156,179,183, +245, 26,215, 68, 87, 45, 37, 2,163, 94,129,247,176, 40, 43,142,167, 43, 56, 62,128, 36,197,228, 9,231, 46, 92, 32,184,134, 63, +250,179, 55,185,121,231, 78,119,223,186,150,145,107, 63,158,149,249,134, 87,239, 31,242,173, 27,183,249,214, 27, 55,248,230, 59, +183,120,253,253,251, 28, 61, 60,224,111,254,230,207,242,175,255,173,223,224,185,207, 63,207,203,223,191, 1, 62,233,124,234, 13, + 56,199,124,255,128,111,253,193, 87,113, 50,176,181,115,129,243, 59, 99, 76,146,224,173,167,109, 90,218,117, 77, 83,215,209,110, + 80, 43, 66,112,172,150, 11,130,117,184,182, 97, 62,157,226,108,131, 76, 20, 77, 85,178, 90,158, 48,159,159,176, 88,156,208, 31, + 12,192, 4,214,235,146,123,119,222, 35, 79, 11,206, 95,218, 34,205, 13,111,188,123,151,178,110,184,246,204, 37,108,240,172,171, +138,197,106, 78,101, 43,130,176, 44,203, 37,141,179, 52,117, 69,235,124,244,118,150, 18, 33, 4,121,146,209,239,231,108,109, 71, + 3,163, 55,110,220,224, 15,255,155,239,176, 62,120, 43,222,143,147, 25, 63,216,219,227,206,222, 30,215,174, 61, 65,154, 25, 80, + 10, 87,133,152, 16, 18, 8, 33,154, 25, 37,137,193,249, 22, 79, 32, 87,134,254,104, 68,150,230,236,236,236,208, 75, 21, 63,243, +175,188,200,231,158,122,134,157,157, 45,116,146,163,154,166, 91, 67,143, 82, 10,111, 3, 66, 9,180, 74, 56, 55, 57,199,214,198, +132,203, 82,115,174,153,243,185,237, 45, 66,219, 66, 47,227, 7,245,154,240,240, 8, 76,194,221,188, 32,144,242,181,218,130,110, +225,193, 49,225,180,203,214,218,174,117,216, 80,175, 42,246,122,134, 80, 90, 88, 77,227,115, 83,251,216, 37,203,123, 80, 86,136, +178,134,190, 66, 12,207, 65,181, 64,212,209, 79, 65, 74,133,208, 6,217, 58,148,116,136,166,197,214,142,107, 90,114,181,223, 99, + 39,205, 25,233,148,145,206,185,188, 94,241,215,151,199,252, 39,235,138, 47, 52, 11, 70,206, 33,165, 34, 73,251, 28,201, 56,190, +154, 53, 13,213,226, 4,218,134,178,182,228, 89, 74, 42,225,252, 36,229,217, 97, 78,145, 36,160,100,172,140, 58,190,117,107, 20, +171,218,163, 80,204,219, 64, 46, 4,195, 52,195, 98, 64, 40,140,202, 16, 68, 1,163, 86, 42, 42, 28,115, 33, 9, 90,197,106, 73, +234,232,223,254, 35,186,113,225, 49,110,202,237, 34,163,202, 4,119,154,134,127, 60, 93, 99,219,238,240, 93, 55, 28, 41,193,179, +147, 17, 27, 74,163,129,149,181,108,165, 5,214, 7,214,193,161,165, 66, 11,205,210,183,100,202,144,134,192, 73,185, 68,249, 22, +223, 86,148,193,211, 11, 18, 83, 69,189,137,122,218, 80,213, 45,198,122,180,146, 36,202, 32, 90,135,106, 29, 74, 5, 22, 90,211, + 47, 82,122, 74, 48,208,146,139,253,132,177, 74, 9,214,177,157,100,104,225,193,214, 76,122, 19,114, 37, 17, 89, 74,223,104,132, +151,108,102, 3,130, 82,140,148,226,114, 63, 39,213,145,138,252, 45, 27,184,172, 19,238, 5,120, 58, 81,220,108, 3,151, 18,195, +210,123,122, 77,131,211, 10,211,214, 28, 6,131,161, 97,209, 74,250,162,101,209, 90, 54,149,228, 36, 56, 76,128, 77, 41,121, 24, + 2,215, 84,194,187, 33,240, 41,173,121,197,181, 60,111, 50,110, 56,203, 19, 58,229,166,247,140,211,130,251,174,225,102, 48,188, +208,211, 36, 58, 71, 10,203,162, 12, 20,169,161,213,134,147,101, 75,146, 72,150, 65,115, 61,145,236,121,199,180, 93,147, 4,216, + 78, 18,246,171, 53,101,128,182,170, 8,210, 61,162, 5, 7,225,227,200,164,163,239,253, 72, 22,207,135, 0,202, 93, 85,223,205, +183, 49, 50, 2,168,219,216, 78,151, 74,211, 79, 18,192,179,105, 52, 13,146,129, 84, 8,163,162, 56,152,235,132,198, 78, 65, 85, + 46,116,214,222, 34,198, 31, 73,236, 42,107, 5,165,251, 16,131, 76,252,136,198,117,248, 33, 58,255,167,239,191, 88, 65,253,113, + 78,184,150,145,122,147,152, 51, 21, 52, 31,226,251,212, 63, 61,116,173,144, 83,218,155,140,170,177, 52,117,156, 29,219, 54,242, + 90,179, 52,182, 57,172,143,193,189,113, 4, 37,232,208, 85,103,105,155,236, 16,253,159,228,175,110,116,164,149, 36,105, 68, 49, +158, 42,238, 5, 16, 34,116,238,108,142, 7,193, 50, 16,125, 30, 30, 44,216,221,223,231,246,225, 30, 95,188,242, 2,227,193, 6, +155,197, 38,139,106,129,109, 26,202,186, 68,139,132, 44, 43,176, 77, 77,107,107,198,185,102,104, 18, 46, 76,182,184,254,236, 85, + 54,198, 3,164, 12,180, 45, 84,117, 77,189,110, 88, 87, 75,108,168, 70, 44,229, 0, 0, 32, 0, 73, 68, 65, 84,211,224,124, 29, +141,226, 84,244, 97, 89,217,154,233,170,101,117, 52,139,135,246,106,201,131,217, 9, 95,123,247, 3,222,190,117,204, 55, 95,127, + 7,246,119,187,204,209, 70,240,134,111,207,118,202,227,187,108, 57,135,197, 18,151, 12,248,242,245, 39,249,194,181,107, 60,115, +241, 60,207,191,112,157, 81,209, 71,169,148,175,127,247,205,174,131,210,117, 83,100,167,244,167,224,253,183,239,243,205,255,231, +107,156,148, 21,195, 98,192,230,206,136,209,100, 64,146, 39,164,121, 78,214,239,145,247, 50, 6,163, 33,195,141, 17, 74,106,156, +183,136, 16, 98,117, 93, 53,180,174,197,152,132, 36, 51, 12, 55, 38,164, 69, 65, 83, 47, 41,215, 75,180,145, 12, 55, 71,120,233, +152, 46,102,180,117, 69,214,207, 56, 56,154,114,251,238, 17, 34, 52, 8, 44, 74,197,245, 52,105, 66,158, 39,244,123, 61,146, 68, + 97,140, 33,207, 18, 54,198, 99, 6,227, 1,105,150,241,230, 59,239,240,251,255,244,101,238,189,241, 10,164,211, 15,175,253,124, +193,131, 27,239,241,135,239,222, 34, 43,107, 46, 93,185, 72,175, 95,160,141,129, 16, 80, 42, 33, 49, 41,173,111,144,104,134,195, + 49, 59,151,174,112,241,226, 69,206,109,109,112,113,103,192,114, 85,147, 26,205,249,205, 30,147, 81,159, 81,207, 80, 53, 48, 95, +205, 40, 76,202,185,201, 22, 91,147, 29,156,141, 7,202,100,115,147,235,215,159,194, 58,203,104, 49, 37,221, 28,211, 38, 41, 15, +130,228,253,208,226,238, 61,132,121, 69, 35, 90,238, 38, 41, 33, 73,226, 66,150, 43,152,205, 62, 30,168,108, 32, 16,221,208,132, + 3,234, 16, 1,115, 73, 47, 82,112,124,196,169,136, 85, 5, 59,231, 35, 23,122,122,130,104, 90, 68, 93, 33,147, 20,233,107,100, + 43,209, 73, 74,235,107, 22,222,242,249, 34,101, 59, 45,216,208, 25,133, 50,100,214,163, 29,252,122,179, 96,190, 94, 96,189,199, +244, 71,180, 38,101, 97, 18,202, 0,181, 20,228,109, 69,175,173, 8,120, 26,153, 96,242,148, 79,111,246, 40,164,196,104,141, 86, + 18,167, 4,109, 0,169, 4,135,141,231,225,172, 98,229, 3,206, 59,180,107,112,193,163, 4,104,165,168,136,174, 87,190, 3,231, +173,189,165,150,130, 6, 31,253,219,125,244,143,136, 29,192,240, 67,169,166,167, 2, 76,161, 12,220,202, 50,222,113,129, 42,209, +145,239, 93,198, 10, 44,132, 64, 37, 96,167,151,115, 78,105,140, 78,153,186, 6, 45,162, 22,115,233, 45, 54, 56, 10,169,152,219, + 6,139,164,118, 22,237, 26,158, 85,154, 52, 4, 86,222, 49,146, 10,150, 77, 44,238, 26,139,145,138, 20,137,116, 93,178, 88, 53, +120,223, 18,250,154,202,193, 48,209, 60,181,153, 98,172, 39, 33,112,161, 63, 96,189, 42,217, 30, 12,152,203,132, 32, 36, 42,201, + 25,103, 5,235,160, 25,231,125, 86,222,177,221,159,112,185,159,113,212,120, 68,154,243,245, 69,201, 19, 70,115, 79,105,174,104, +201,237, 10,158, 72, 5, 15,188,167,215,212,180, 74,144, 32,152,121, 24, 11,207, 34, 56,156,171, 88,121, 79, 79,192,212, 89, 70, + 34,208, 4,112, 66,241,164, 50,188,227,107, 46, 33,121, 75,192,139, 73,206, 93,147,112, 81, 27,222, 15,158, 45,224,166,183,220, +106, 2, 99,165, 17, 34,197,168, 22,169, 12, 46, 40,242, 68,115, 48, 91,115,105,212,227,214,178,225,124, 10,123,117, 60,114,135, + 66,179,198,211, 84, 75,250, 58, 2,217,166,173,135,218,117,113,188, 27, 39,186,174, 98,167,253,208, 56, 88,252,200,192,222, 81, +183, 37,177,170, 86, 93, 7, 51,209, 32, 4,218, 40,180, 8, 8,161,169, 3,228, 38, 42,190, 89,239,185,152, 37,216, 16, 72,164, +166, 57,125,202,132,239,204,204, 58, 1,142,214,198,207, 13, 81, 34, 59,130,202,221, 79,116,109, 31,235, 34,125,200,137,228, 47, + 98, 80, 63,173,216, 53,177,202, 62, 69, 25, 6, 1,153, 62,203,138, 66,151, 37, 9,206,130, 54, 33,234,214,159, 86, 41, 74,198, +118,189,236,104, 76,167,115,118,219, 5,241,211,155,172, 58,142,187, 13,159, 44,190, 34, 85,220,101, 74, 67, 34, 17,182,107,142, +216, 40,136, 33,124,183, 20,147,130,205, 68, 17,218,138,182, 89, 51,204,198, 12,178, 13,198,189, 13, 82,147,179, 63, 59,226, 79, +223,121,133, 7,211,123,164,166, 3,240,219, 21,219,147, 30, 87,182,119,184,176,125, 30, 33, 2, 89,175,143,144,146,229,186, 97, +255,254, 17,171,249, 17, 77,211, 80,214, 75, 42, 91, 67, 80,100, 73, 15, 17, 2,141,107, 89,149,150,195,101, 69,187,255,160, 75, + 74, 4,172,150,132,189,125, 14,110,223,128,249, 97,108, 1, 53,117,100, 12,156,142,196, 69,231, 25,239, 31, 31, 9, 5, 24,158, +227, 75,159,251, 28,159,123,234, 51,108, 76, 70, 12, 71, 3,114,147, 80,149,150,147,147, 57,127,254,199,223,141,247,227, 20, 40, +226, 60,143,124, 44, 67, 60, 56, 31,188,123,135,239,125,227, 21,190,250,251, 95,161,244, 45,118, 81,146,100, 25,218,104, 76,146, +208,235,167,100,121, 70, 49, 72,201,250, 61,138,241, 16, 41,226,140,209,152,200,107, 46,215,107,132,247,180,109,137, 50,134,209, +214, 38,147,173, 9, 38,139,114,146,171,229,154,182, 46, 89,204,230,252, 79, 95,251, 42,111, 63,188,195,107,239,191,207,139, 47, + 60,207,104, 60, 32, 43,114,242, 34,167, 63, 28, 48,220,218,160, 55, 26, 50, 26, 14,201, 7, 3, 30, 62,120,200, 31,252,224, 13, +190,245,199,175,113,247,198, 13, 16, 77,236,100,124,146,254, 63,192,193, 49, 55, 30, 30,241,167,175,252,128,151,222,191,197, 83, +227, 17, 27, 23,207,113,241,218, 14,147,157, 13,174, 61,125,149,171, 79, 62,193,151,191,240, 44,151, 47,109,199,138,190,245, 28, + 28, 46, 81, 70,112,245,226,152, 11,219, 35,138,110, 22,183,118, 2, 91,195,120,188,193,245,207, 62,199,198,249, 77,124, 11,227, +141, 45,130, 80,124,243,187,127,198,255,245,181, 63,229,202,192, 80, 37, 61,110, 91,199,251,117,195,131,147, 99, 56, 41, 35,178, +118,177,142, 98,210, 42, 33,168, 4, 50, 96,247,232,227,123,216,119,192,161, 68,209,223,238,211, 76,151, 49, 57,221,158, 64, 47, +141,221,155,147, 21,162,138, 54,172,226,210, 21, 68,166, 16,203, 88,177, 11,219,198,194, 38, 81, 40, 91,161,147, 60, 66,112,234, +146,103, 82,195,185,172, 79,142, 32, 73, 82,180, 80,104,161, 72,109,203, 94,112,212, 89,206, 74, 42,132, 80,220, 77, 52, 67, 23, +216,193,177,227, 42,138,245,138,123,190,161,213, 3, 14,215,150, 39, 38, 57,163,212, 32,133, 32, 81, 10, 39, 4,247, 74,203,254, +210, 50,135,200,176,168, 75, 42, 91,209, 75, 4, 58,207, 8, 40,180, 50, 88,235,168,157,163, 9,158,181,247,248, 16,240,161,229, +178, 4,167, 12, 91,169, 97,126,122,216, 58,247, 49, 91,211,179,152,238, 99, 23,235,104, 69, 91, 36,209, 69,177, 13, 4,215, 85, + 96,222, 49, 79, 36,207, 22, 41,149,212, 36,161, 69,201, 8,228, 83, 34, 96, 2,148,221, 17,229,130,224,196,214, 76,189,229, 98, +154,115, 94, 37, 12,148, 38, 13,142,224,160, 39, 37,210,123, 86,214, 82,152, 4, 35, 64,218, 0,101,139,181, 21,181,183, 52, 82, + 97, 10, 77,150,105, 18, 96,160, 84,244, 95,106, 28,231, 70, 3,150,141, 71, 42, 67,158,101, 88,239,104,164,166,151,167, 88, 7, + 73, 62,164,144,154, 36, 27,112, 97,208,227, 36, 8,206, 21, 9,135, 30, 46, 42,120,109,110,121,118,100,248,160,134,205,208,224, +211, 20,215, 97,154, 6, 1, 30, 54, 37, 85, 8, 88,160, 23, 2, 11, 60, 61,107, 89, 3, 19, 20, 66, 4,142,133,231,146, 52,220, +146,130,103,149, 38,223,220,224,103,175, 92, 36,152, 20,225, 60, 47, 55, 53, 54,104, 22, 68,109, 9, 25, 4,189, 84,177,108, 53, + 89, 18, 88,148,158,113, 79,115,111,222,240,244, 64,115,119,225,216, 52,150,131, 42, 32, 69,139,243, 1,109, 12,218, 59, 14,215, + 37,165,117,113, 2,107,195, 35,230, 85, 76,216, 92, 60,159,127,196, 8,245, 99,129,212,116, 69,161, 74, 8, 65,117,198, 86,177, +104, 75,141,138,251, 16,129, 59, 5,187, 91,216,233, 71,225,172,177,209, 72, 31, 53,250,131, 20, 81,243,228, 84, 81,203,117,212, +234,166,142,231,106, 85,198,239,249,132, 78,176,248, 73,175,245, 49,238,212, 95,204, 87,219,137,200,152,238,103,167,151, 30, 45, +206,220,199, 43,251,212, 68,138, 26,254,140, 27,104,187, 22,100,234, 33,164,103,201, 66, 47,129,117,211, 45,126,135,254,246, 54, + 34,209,101,120,172,221, 46, 59, 49,154,142,163,104,146,168, 0, 87,241, 88,235,223, 67, 11, 65, 91,196,218,195,170, 33,139, 34, +244,244,211, 30,203,218, 71,197,174, 36, 97, 54,155,115,178,154,226,214, 37,203,101,205, 75,205, 91, 20,201,123,188,112,110,139, + 39, 46,126,145,241, 96,128, 80,154,221,221,154,219, 55,223, 66,233, 12,223, 10, 2,142,218,181, 84,109, 69,109, 27, 18,157, 50, +200,198,228, 38, 99,152,111,128,183,124,160,119,185,113,123, 55,106,206, 7,255,216,142,240,103, 6, 52,167, 6, 46,167,255,221, +119, 40, 81,249, 17,125,120, 37,217,122,230, 50,207, 61,113,157,162,151,162,141,232, 4, 9, 28, 89,174, 89, 61, 88,193, 56,242, +245,169,237, 25,135,191, 37, 2, 21, 79,191, 47, 77,163,164,112,145,241,205,127,242,149, 15, 45,217,214,207,127,153, 47, 95,186, +200,206,165, 11,108, 94,218,161,215, 75,163,145,195,206, 24, 24, 83,151, 13,109, 99,217, 60,191,137, 78, 53,193, 6,180, 86, 24, +163,113, 56,218, 54, 32, 26, 24,140, 11,240, 5,179,121, 11, 14,146,196,208,224,216,186,184, 77,145, 75,108,235,104, 92,180, 80, +172,214, 53, 15,239,220,229,229, 59,247, 25,228,155,188,250,202, 59,176, 60,129, 81, 15, 84, 63, 38, 61,131, 1, 84,139, 31,190, + 47,143, 14,224, 8,170, 15,238,241,143,254,252, 53,184,124, 9,113,239, 62,124,246, 57,254,237, 95,252,121,242,254,152,147,217, +144,117,217, 32,189,192,100,154,141, 73,193,197,113,143,205,126, 30,111,181, 10,100, 89,194,120, 99,128,200,158,138, 57,102,112, +188,247,250,219,220,188,123,139,239,220, 63,198,189,113,227, 81,166,254, 63, 31,205,225,115, 21,253,237, 77,150,149,139,251,124, + 18, 45, 90, 89,151,240,246,109,120, 14, 24,111,198, 53,185,176, 5, 15, 30,126,188, 5, 41, 91,168, 44, 75, 27, 80,231,183,113, +211,101, 68, 72,123, 31,147,103, 5,193, 27,196,209, 9,197,106,202,246, 96,192,223,253, 75,159,227, 63,251,230,171,132,195, 99, + 66,154,198, 25,117,154,226,109,131,175,107,222, 12, 3,158,184,251,128, 43, 89,143,190, 15,120, 17, 53, 4,164, 25, 82,104,195, +197,197, 62,223,174,215,164,185,102, 46, 20,231,164,166, 48, 30,237, 13,198,123, 60, 45, 27,135,119,121,133, 30,215,253, 14,193, + 7,166,139,146, 36, 75, 9, 9, 28, 90,199,173, 38,112, 79, 8,166, 70,179, 30, 22,132,249, 17,185, 84,152, 40,102, 64,227, 37, + 38, 13,132, 32, 49, 65,179,196,113, 65, 11, 46, 6,197, 40,233,113,210,180, 60,145,215, 44, 74,197,177,179,172, 67,244, 68, 8, +118,246,232,240,252, 88, 85,100, 45,193, 46, 16,183, 90, 56,191,217,177,124,116, 44, 42,172,195,150,150,223,187,191,207,111,157, +111,217, 28,109, 49, 17,130,147, 54,130,214,234,206,123,161, 1,234, 16, 56,180, 45,151,101,108,221,150, 50, 97, 32, 37, 35,149, +160,133, 96,214,182,232, 16, 24,231, 5, 39, 39,199,168,209, 8,103, 59, 54,135,130, 22, 73,161,163,131,161,243,158,214, 41,234, + 16,216,206, 82,150, 30, 92,221, 48, 25, 20, 20, 54,227,110,213, 48, 23, 1,211, 56, 74,171, 49,198, 80,118, 93,233,220, 68,225, +156, 76, 75,222, 95, 58,174,247, 13,239, 86,158, 79, 15, 52,239, 54,130,103,211,192, 7, 54,101, 80, 47, 8, 70,227,202, 37, 78, + 39, 20, 74, 49, 7, 66,221,114,220,180,108, 72,207,158,135, 75, 34,112,151,154,167,125, 70, 89,150,188,102, 44, 82,106,222, 49, + 9,127,189, 55, 96,175,178,232, 36, 97, 79, 73, 74, 11,135,180,188,238, 20, 47, 72, 79,161, 60, 8,195, 80,181,204, 42, 77,145, + 6,110,207, 27,158, 26, 24, 94,155,183,252,204,200,240,234,220,243,124, 22,120,173, 42,184,172, 22,212, 94,162, 4, 60, 53,200, +185,177,104, 33, 84,157, 86,129,136,133, 73,211,169,141,214,205,143,197,101,127,232, 85, 55,145,223,111,125,180,172,182, 10, 82, + 79, 63, 79, 41,157,199, 8, 73, 21, 44,163,212, 80,119,137,151,109, 3,131, 84, 81, 57,135, 38,160,235,192, 80, 72,142, 17,157, +125,136, 63,147,232,126, 4,198, 78,160,250,209, 99, 31,241,227,174,245, 47,124, 80,167,163,202, 85, 26,122,157,145,129,239, 76, + 83, 76,215,102,207,116,231,212,214, 41,250,168, 54,222,208,143, 46,108,221,196, 0, 45, 0,147,241,185, 47,127,150, 87, 31,238, +194,205,135, 93,251,221, 71, 58,130,247,144, 41,240, 89,180, 27,236,247,224,104, 5,182, 59,228,155, 42, 6,255,196,196,162,182, +249, 48, 27, 48, 72, 16,101,205,178, 90, 51,206,199, 72,157,147,138,136,164,124,112,248,128,101,185,226,198,253, 93, 88,175,226, +130, 85,115,214,153,102, 53, 54,120, 91, 1,125,172,107,113,206, 81, 55, 45,213,122, 65,221,214, 56, 31, 40,215,109,172,208, 85, +198,165,173, 1,193, 11, 60,138, 65, 49,192, 57,207,249,144,194,242, 43, 49,249,208, 81, 69, 12,253,120,251,149, 78,146,246, 49, +141,247, 46,167,161,149, 17, 80,120,122,240, 95,186,198,139, 87,158,227,220,165, 49, 74, 72,166, 39, 43,154,229, 17, 23,175,108, +210, 88,199,249, 11,219,252, 91,127,247,183,185,191,191,199, 87,126,247, 27,113,151,213, 31,161, 3, 42, 25,233, 26, 69, 63,126, +143,214, 31, 10, 50,135,223,248, 30,255,247, 71,150,251,249, 95,255, 5,206, 15,134, 92,190,112, 1,157,166,209, 44,102,144, 19, +214,241,175, 80, 38,193,152,216,154, 13, 68, 31,227,100,144,196,153,109,223,242,239,252,198,111,242, 63,254,238,255, 1,137,100, + 53,157,242, 15,254,241, 31,241,215, 62,245, 52, 47, 63,120,200,222, 91,135,224,231, 29, 87, 31, 24, 63,140,215,109, 4,156,204, + 64,218,104,247, 57,159, 71,225,142, 79,218, 71,159,240,208,137,123,247, 9, 90,195,107,111,243, 15, 95,123, 27,145, 38,241,225, +172, 27, 68, 54, 64, 84, 11, 68, 22, 19, 5, 9, 92,251,249,207,147, 11, 73,166, 5,115,235,184,249,221,183, 8, 42, 33, 96, 9, +235,234,147,219,110,243, 5,124,247,109,150, 23, 54,249,149,107,231,216, 40, 18,244, 83, 59,124, 35, 9,220,123,247, 30,172,102, + 48,155,119,163, 42, 96,115, 12, 71, 11,176,179, 15,127,206,218, 66, 1,159, 27,245,248,181,141, 33,127,248,193, 46,175, 77,203, +199, 18,229,206,180,104, 81,178,126,235, 29,254,189, 95,250, 87,249,213, 43, 87,248,222,157, 15,248,202,201,148,160, 51, 66, 57, +195,215, 41,193,181,248, 34,199,219,134,175,238, 62, 96, 35,215,252,246, 19,134, 68,106,196,112,130, 84, 26,153,123, 6,118,200, +206,234,128,239,155, 6,163, 13,185,148, 72, 31, 72,147,148, 53,240,245,241,121,158, 20,130,155,111,127,139,244,250,151,249,218, +219,142, 43,155, 99,206,111, 11,110, 79, 29,119,173,228,102,235,152, 9, 73, 83, 36, 32, 5,230,220, 5,204,238, 29,150,171, 5, + 65, 74, 6,169, 97,186,136,159,185, 12,150, 11,202,145, 72,131,146, 22,227, 51,114,235, 88,147,177, 47, 2,131, 60,103,221, 2, +227,110,141,171,197,135,166, 79,143,227,151, 5, 16,170, 10,238, 31, 64,158, 66, 54,140,103,142, 74,161,113, 44,108,224,165,116, + 65, 38, 52, 39,105,198,197, 98,192,180,142,200,229,212,228,148,182,225,184,169, 24,104, 67, 38, 4,243, 0,219, 38, 97,209, 21, +152,133, 78, 24,229, 25, 78,104,230, 74,209, 26,201,251,174, 97,220, 88, 18, 99,168,188,163, 41, 82, 90,162,100,114,161, 21,171, +214,147,107,137, 13, 34,226, 48,128,158,138, 9, 89, 91,150,108, 37, 5,119,155,146, 60, 49,148, 1,242, 16, 71,135,109, 16, 28, + 5,200, 43,203,103, 6, 41,223,157,213, 92,235,105,238,183,146, 23, 18,199,205, 82,178, 65,203,145, 74, 56,215,214,172, 76, 66, +181, 94,113, 36, 36,206,149, 52,222,146, 8,203,145,109,217, 86,130,131,170,102,146, 24, 94, 46,167,108, 38,154, 89,235,201,141, +160, 89, 46,120,115, 62,101,167, 24,208, 42,197,126,213,114, 76,224,165,202,145,104,199,107, 94,177,145,192,162,180,228, 89,142, +162, 97,182,242, 92, 30, 38,124,176,104,248,153,190,228,141,185,229,201, 68,240,176, 85, 60,171, 27, 94,159,195,115,121,194, 92, +165,220,106, 43, 66, 47,237, 76,196,154, 56, 58,170,218, 24,234,214,213, 99, 54,211, 63,197,107, 93,129,182,192, 8,180,131, 84, +179, 44,163, 5,184, 74, 52, 70, 73, 78,170,134,171,147, 28,103, 29,202, 67,229,186,159,165,143,221,251,224,200, 92, 96,237, 79, +129,112,174, 19, 71,235,108,185, 87,117, 84,240,252, 88,116, 62, 59, 23,195, 79,120,185,127,177,131,186,237,204, 90,172,232,120, +241,167, 64,183,110, 6,184,110,206,156,196,188, 61, 19,161,249, 97,175, 58,222,145, 87,191,246,221, 24,196, 79,171,124,255, 24, +131, 85,105,200, 61, 12,134,144, 36,176, 9,220, 95,156, 93, 79, 49,138,115, 75,162, 17,156, 56, 21,199,137,189,108, 66,101, 89, + 85, 48, 26,166, 36,186, 79,101, 75,102,229,130,195,213, 49, 55,238,220,135,227, 67,130,179,103,127, 15,176, 55,171,216,189,127, +135,114, 62, 71, 38,154,227,195, 99,102,213,138,101,185,102,209, 54,204,203,134, 89,105, 9, 8,158,191, 50, 68, 7, 69,150,229, + 60,249,204, 14,219,163, 62, 71,179,134,219, 47,223, 60, 83,195,179,182,227,101,126,244,126, 62, 6,250,163,235, 62,160,161,144, +103,120, 57,145,130,244, 92,184,124, 1,219, 88,218, 16,216, 59,184, 79, 18, 26, 54,199,151,209, 74, 98, 93,206,106, 85,113,113, +107, 11, 46,244,225,224, 48,118, 56,156,238,172, 95, 57, 83, 91,114,116,155, 89,254,216,135,237,173, 63,252, 58,111,253,184, 61, +145, 13, 98,226, 49,216,140, 24,135,209, 32,234, 18, 68, 21,147,136,230,247, 9,255,221,255,246,207, 64,106,254,224,149, 55, 35, +182,162, 7, 52, 58, 6,240,193,168, 67,166, 42,200, 4, 60, 60,140,166, 70,117, 27,215, 28,162, 62,182,254, 49,160, 27,173, 9, +137,142,163, 23,173, 99, 98, 87, 87, 80,100,136, 52, 33,132, 78, 40, 41,212,241,223, 74,114,251,123,111,197,251,178,174, 8,105, +210, 5,241,179,128,254, 67,179,116, 95,145,174, 87, 60,169, 36, 89,175,143,149,112,237,252, 6,247,238, 29, 16, 86, 37,236, 29, +193,176,224,133,193, 6, 23, 47,247,184,163, 20,239,190,249,206, 25,112,168,110,226, 22, 77, 13,255,218,198,144,207, 14, 55,153, +143, 23,188,246,238,126, 12, 96, 33,196,102, 12,113,189,194,114,205,195,245,140,111, 60, 52,188,221, 27, 17,178, 30,161,138,230, + 61, 62,149,184,218,224,106,143, 5, 92,240,252,222,238,140, 47,101,247,120,214, 24, 84,145,161,210,113,167,253,225,216, 94, 44, +113, 70, 99,116,194,148, 64, 38, 21,149,119,100, 73,198,103,183, 71,220, 45, 87,136,237,243,188,250,218,119,120,227,254,132, 47, + 61,241,105, 38,147, 45,230,105,202,221, 0,239,229, 25, 33, 55,204, 67,202, 36, 79, 25,140, 28, 75,127,145,254,209, 62,231,219, +146, 89, 89,145,100, 57,203,166,226, 82,174,187,238, 86, 4, 58, 89,111, 59,134,131,229, 66, 47,101,160, 28, 39,141,165,246, 41, + 34, 73,192,234,179,231,229,163, 1,189,139, 16,162,245, 4,106, 4, 93,155,183,167, 64, 37, 60,159,107,246,214, 45,239,172,151, + 60,157, 24,254,232,240, 62,207,245, 71, 28,122,199, 86, 8,212,214,178, 36,208,247,150, 82,106,158,205, 10,142,156,101,164, 52, + 74,105,166,206, 17,156, 71, 38,130, 96, 18, 10,163, 88, 24,201,155,194, 80, 87, 53,163,126,206,229, 65, 78,138,164, 10, 1,221, + 56, 92, 8,132, 54,138,103, 89,231,232,167, 9, 77,235, 49,222,115,177,215,227,157,213,138, 65,166,153, 89,143,129,200, 51,111, + 27,210,212, 80, 54,146,144, 41,246,125,224,185,161,230,161, 15, 92, 48,112,215,195,166,180,148, 66,176,221,192,162, 13, 72,219, +112,136, 32,109, 74, 30, 46,215,100, 58,174,181,108, 26,246,218,134,212,104, 30, 54, 21, 3, 20, 95, 63, 92,241,194, 48,227,235, +243, 53,151,250, 67,254,217,221, 7, 60, 61, 26,242, 96, 89, 17, 18,197,141,202, 50, 16,130,169, 85, 24, 42,110,161, 24,209,112, +137, 64,158, 27, 84, 82,208,184,134, 29,227,185, 97,115, 54,243,146,147, 50, 10, 88, 89, 18, 46, 23, 37,149,119, 44,116,202, 42, + 73,226, 94, 30,100, 81, 99, 99,255, 48, 62,255,161,254,240, 25,247, 47, 18,107,234, 5, 52,105, 92,252, 60,129, 36, 97,229, 61, +153,247, 76,180,161,170, 45,185,136, 0,105,237, 61,179,178,165,200, 21, 7,179,166, 59, 14,196,217,216,183,237, 68,205,232,152, + 89,202,158, 61,139,143,206, 96, 27,223, 31, 9,238, 63,238,245, 23,115,166,254,161,150, 97,135,130, 23,221, 35, 39,100,188, 97, +153,236,110, 26,143, 85,219, 33, 6,182, 79, 2,186,157, 26,190,200, 83,213,185, 83,222,123, 56, 67,131, 75, 25,219,215, 60, 70, +163, 91, 46,207, 42, 54,173,163, 12,163,245,103, 7,190,235, 84,130, 20,160, 21,201,213, 43,124,241,201,231,185,184,125,149,162, + 55,194,136,140, 15, 78,238,115,239,232,152,102,239,222, 25,245, 66,200, 88, 37,154,132,205, 34, 65, 72, 71, 93,149, 44,214, 11, + 86,117, 77, 93,151,236, 46, 87,220, 63, 92, 80,238, 45,163, 40,144,146,108,111, 79, 24,154, 30,253,162,207,103, 94,184, 64,145, + 37,152, 68,241,237, 55,239,114,240,230, 75, 63, 5, 29,209,159,221, 96,147,116, 42, 72,221, 61, 50,138, 81,209,163,151,245,152, + 77, 79, 56,153, 31,113,126,107,131,205,241, 4,147,104,150,101,131, 13,129,166,105,120,229, 27, 95,239,184,154,221, 40, 66,158, + 81, 65,162,140,176, 63, 83, 5,108,237,255,247,253,160, 58, 42, 9, 73, 76, 74,178, 36,182, 73, 90, 11,182,142,127,203,186,142, +120, 11,213,141, 23,144, 48, 93,194, 98, 17,245, 0,132,138, 26,226,167, 56,139, 85, 25,255,127,103,227, 79,223,173,175,215,103, + 0,202, 79, 50,249, 49, 49,145,139,162, 19, 62, 50, 91, 30,243, 28, 66,117, 10, 83,117, 67,208,170, 19, 76,234, 16, 64, 82,158, + 85,229,178, 99, 82,104, 69,112, 46,238,179, 83,199, 65,211,237, 85, 37,177, 2,158,221, 28,162,250, 61,230,222,243, 86,217,112, +178, 92,198, 68,183,106, 97,210,231,122,127, 72,145,231,204,157,229,160,108, 16,101, 21, 19,139, 52,237,186, 53,134, 89,154, 16, +180,224,119, 79, 42,214,181,131,118, 9,210,159,209,109, 68,138,168, 26,190,125, 60,227,196,192,161, 54,172,235, 18,177, 88, 32, +122, 3,100, 83,162,130, 66,202, 22,105,114,164, 3,233, 74, 70, 46,240,252,230, 24,147,230, 49,217,173,203,104,250,226,214,188, +237, 45,109,154,210, 51,105,180,120, 37,112,208, 68, 97,141,255,101,252, 4,193,199,110,133,189,191,203,157,195,247,121,107,239, + 54,183,246,239,178,191, 94, 81,175, 42,234, 32,232,121, 79,147, 37,212, 89,130, 79, 12,106, 48,132,164,207,192, 11,180,111,241, + 66,176, 21, 44,153,209,244, 67,192, 8, 65, 8, 1,139,196,116,254, 6, 83,219, 50,212,134,195,170,134,117, 27, 61, 31,252, 39, + 3,171, 68,151,233, 10,186,202, 11, 27, 37, 87,211,140,223,121,114,135,191,119,237, 58,231, 50,197, 43,213,138, 87, 79,214,120, +169,152,226,145, 74,243, 65, 83,210, 42,197, 68, 40,174, 38, 25, 67,161,162,229,179, 0,100,188,255,167, 14,146,214,100, 88, 5, +137,214,172, 2, 44, 19,197, 58, 49, 12, 51,195,112, 16, 21,246,122,169,230,216, 90, 18, 4, 1, 56, 92,173,217, 74, 52, 7,101, +205, 36, 79, 41, 91,135,181, 22, 27,160, 85,154,224, 26,218, 32,177,109,139, 48, 9,179, 54, 48,236, 41,170, 74, 32,132,197, 5, + 65, 30, 2,107, 4, 67,235, 88,120, 71,210,182,172, 93,203,134,173, 57,176,150,121, 91,242, 94,109,209,173,229,184, 92,211,148, +107, 22,174,197, 16, 56, 90,213,140, 19,195, 91,243, 21,147, 94,198,219,139, 53,151,132,228,173,249,156, 3, 91,243,157,195, 3, + 50, 35,248,206,241, 17, 79,106,193,157, 0, 33, 56,146, 32, 25, 59,139,209, 73, 52,195, 14,142, 32, 28, 19,173,121,183, 12, 92, +144, 21,199,107,207,197,141, 30,247, 79,214, 36,210,211, 87,154,227,186,164, 72,163,127,125,169, 19, 26,225,226,115,155,117, 12, + 41,107,127,226,160,248,195, 7,238,157,152,140, 54,241,140, 70,225,188,143,213,186,144,132,214,210, 75, 13,107,219,208, 4,135, +212,112, 82, 58,140, 11, 44,154, 54,186,129, 6, 65,104, 58,108, 78, 91, 66,217, 57,136,226,227,179,255, 40,174,157,130,154, 78, +103,159,246,172, 91,252,255,251,160,238, 59, 41, 49,173, 58,222,122, 23,200,219,112,134, 42,116,237, 89,228,246,174,171,214, 62, + 9, 81,223, 1,226,132,234,130,184,138,191,211,214, 93,203,186, 58,227, 28, 54, 54,122,174, 55,143, 41,234, 25, 29,171, 65,249, + 24,176, 76,158,185,155,137,172,207,139,207,127,134,103,158,188, 78,175,215, 67, 27,197,186,170,184,115,112,159,189,123,119,227, +225,123,154, 28, 36, 26,146,132,173, 81,206,118,191,160,159,245,144, 82, 82,217,134, 85, 83,115, 82,150,236,174, 74, 88, 86, 81, +251, 57, 72,212,164,224,252,104, 64, 47, 53, 12,139, 49,219, 59, 27,228,137,102,182,106,248,214,107,119, 89,188,255,131,159,184, +133,243,216, 13,238, 70, 19,157,236,109,136,148,183,247,235, 21, 7,199,187, 60, 56,216,101, 93, 55, 92,217, 58, 71,222,207, 81, +194,243,224,225, 17,255,213,239,254, 19, 94,249,202, 55,187,160,103,226,125, 82,242,236,104,124,132, 57,232, 16, 38,173,143,149, +241,143, 19,247,249, 81,175, 34, 59, 11,138,139, 89,180,225,108,218,174,187,146, 69, 31,128,208,237, 1,239, 98,144,174, 42, 88, +150,221,247,106,232,231,241,193,245, 62,226, 0,230,221, 92,218,119,202, 21,233,169,211,223,169,196, 36,143, 37, 42,143, 5,118, +173,227,126, 60, 77, 42,165, 6,235, 59,139,204,186, 75,244,116,164,133,101, 25, 66, 9,196,186,138, 18,188,213, 58, 6,112, 37, +161,170, 9,173, 37, 56, 23, 3, 58, 68, 3, 14,217,129,118, 78,177, 16,222,131,245,188,225, 53,111,103, 9,175, 84, 53, 83,231, + 97,181,132,121, 25,247,112, 19,120, 48,204,153, 33,120,191,177,113,252, 81, 85, 81,191,191, 41, 17,131, 17,120,203,129,144,188, + 44, 4,107,147,196,189,188, 92, 67, 43, 17,202,116,186, 15, 18,241,255,114,247,102, 63,150, 93,217,153,223,111, 79,103,184,231, + 14, 49,228, 72, 50, 73, 22,139,172, 42, 85, 21, 85, 82, 73,130,160, 22, 36, 75,141, 22, 44,248,193, 3,208, 86, 3,110,219, 13, + 63,250, 47, 51,252,110,192,112,195,176,209, 70,171, 37, 75,213,146,154,170, 42,138, 51, 43,147, 57, 69,198,116,167, 51,238,193, + 15,123,159,184, 55,147, 76, 50,201,178, 90,178, 3, 72, 68, 70,144, 25,113,239,153,214, 90,223,250, 6,101, 17, 91,203,131,237, + 6,117,253,128, 91,215,142, 88, 61,190, 68,216, 30, 57, 88,164,208,136,160,144,214, 34, 11,133,104, 59, 62,233, 45,127,120, 56, +167, 16, 18, 3,208,111,177,219, 11, 86,245,138, 15,186,154, 48, 61, 64, 8,205,144,101,108,134,129, 19,239,185, 16,130,143,100, + 6,147,138,160, 13, 97,146, 19,154, 13,190,174, 9,247, 31,224,127,241, 49,254,242, 49, 65, 14,180,213, 49, 93,153,211, 41, 29, + 11,102,105,248,238,209,156, 27, 55,142,177, 46,199,132,150, 73,240,116,214,161,133,194,251, 1,129, 32, 87,138, 44, 4,154, 16, + 48, 90,243,160, 27, 88, 90, 7,117, 29,143,219,115,178, 25,196,179,150,206,206, 33,144,176,168,248, 31,223,120,131,239,221,186, +205, 76,104, 62, 89, 95,242,206,147, 53, 89,174, 25, 2, 44,219,158, 89,158,227,128, 91, 42, 99, 46, 37,133, 54, 76,132, 68, 74, +131, 37,112,233, 3, 7,202,208, 20, 57, 34, 56,188,212,244, 90,115,233, 61, 5, 10,147,233,216, 95,186, 64,149, 27,150,214, 83, +132,120, 29,158,110, 27,110,205, 38, 60,222,116,204,139,140,139,186,231, 64, 11,140,212,252,221,122,205,224, 28,173,215,224, 3, + 65, 25,148, 86, 88, 31,184,223,195,161, 10,100, 33, 80,134, 64, 7,204,173,227, 52,128,104,182,212, 33, 48,107, 26, 62, 28,122, +238,110,182,124,214, 13,172, 55, 43, 30,247, 61,194,245, 92,214, 45,198, 57,206,182, 61,173, 11, 60,104,122,230, 38,227,147, 77, + 67,107, 61, 79,250, 30, 19,160,189,216, 50,207, 52,247, 30, 60, 97,154, 27,126,113,118, 73, 46, 3, 86,101,244, 93,143, 45, 10, +142,157,231,220,118,220,153, 77, 57, 80,154,191, 89,117,188,148, 5,150,131,228,102,230,121,111,235,248, 97, 41,113, 34, 62,223, +107,175,152,232,192,113, 53,227,141, 50,231,129,135, 46, 35, 89,125,187,100, 6,243, 75, 14, 14, 42, 37,143, 10, 15, 62,145,220, +164, 96,232, 61, 91,235,153,103,154,203,186,167,202, 36,221,224, 9,214,147,201,192, 89, 29, 83, 62,109,231,147,227, 93,226,189, +140,164,107,229,147, 29,249,222,179,227,115, 30,135,105,192, 26,107,203,255,175,139, 58, 36, 55, 57,157, 38,193, 36,228, 31, 69, +255, 67, 27, 59, 43,111,227, 3, 94,136,184,220, 54, 42, 49,214,213, 78,228,159, 38,164,200,118,212, 49, 69, 13, 17,255,110,251, +221,109,109, 19, 75,209, 39,120,100, 60,200,185,217,113,207,228, 51, 12,135,174,135,170,226,230,173,107, 28,207,142, 41,202,146, + 97,240,212,219,154,119,238,126, 64,119,113, 17,139,158, 78, 19,122,145,113, 84, 25,110,204, 42, 14,167,115,166,217, 4,135,167, + 29, 90,182, 93,199,233,166,163, 91,117,208,244, 8,149,145, 95,159,114,115,154,113,109, 54, 99,106, 42, 94,122,229, 21,138, 73, +206,106, 99,121,255,239, 30,242,167,239,254, 5, 60,185,255,212,195, 73,188, 48,244,148, 26, 22, 49,190,151,152, 12, 84,167,164, +180, 89,150, 83,233,130,224, 53,171,117,199,207, 62,120,143, 79,127,242,211, 4,171, 39,169,134, 81, 79, 63, 13,251,244,189,126, +116,176, 19,187, 44,251, 95,138, 60,153, 94,107,121, 24, 39,115,145,108,111, 93, 42,230,117, 3,243, 73, 50, 28, 18,177,160,139, +244,121, 68, 11,132,136,141,223,166,139,231, 98,148, 73,218,100, 35,108,187, 24,220, 99,147,132, 82,132,167, 11,187,148, 73,190, + 39, 99, 34,133, 76,215,140, 34, 5, 12, 69, 27,201,200, 41, 40,162,253,240, 96, 83, 83, 82,199,194, 61,106, 91,115, 19,139,122, +158, 69,219,100, 72,175, 47,201, 56,199,235, 87,200,200,202,239, 97, 56,152,197,107,219, 7,184,220,198,162, 44,163,214, 54, 52, + 61,219,202,196,127,155, 73, 88, 54,241,218, 94,204,162, 68,173,168,224, 98, 5,229, 20,170,114, 23,236,115,177,130,114,130,240, + 3,120, 27, 19,168, 68, 76,108,234,231, 37, 75,107, 17,141, 69,172, 26,132, 10, 96, 20, 34, 12, 49, 98,120,112,144, 73,130,115, + 28, 59,193,145,239,200,109,141,104,123,134,102,205,178,235,249,105,211,211,151, 57, 42,159,224,165, 38,120,135, 84, 18,215,183, + 60,193,208,154, 2,170, 5,193, 76, 8, 66, 68,144,164,200,162, 25,201,242, 18,127,177, 36,232, 64,152,222, 32, 8,193, 80, 42, +254,235,131,146,255,252,118,201,119, 15,115, 84, 85,240,241,137, 37,147, 29,202, 58, 38, 90, 19,136,249,215,222,123,186, 16,112, + 82,240,164,111, 89, 15,158,229,120, 29,174,187,200,246,127,166,152,239,238, 33,153, 38,246, 84,220,101, 0, 83, 82, 77, 37,133, +208,252,117, 83,243,191,156,159,211,213, 61,235,186, 69,107, 73,161, 53, 10,137, 81,129, 45, 80, 72,197, 53,101,112,233,180, 22, +218,160,164,162, 23,146,198, 57,230,101, 21,139,117,240,244, 82,114, 14,180, 1, 38,133,161,146,146,243,206,226,189,139, 91, 72, + 4, 85,174,121,180,108,184, 49,201,185, 88, 55, 40, 41, 17, 82,112,222,245,200, 32,184,112, 61,125,231,241, 90,131,214, 52, 67, + 67,231, 28,219,190,199,135, 64,150, 41,206,235,142,128,231,253,203, 45,249,176,101,233, 99,254,251,169,183,216,102,205,224,225, +100,117,193,103,174,167,217,108, 88,110,214, 88,224,100, 89,179, 50,146,117,107,169, 7,203,121,221,225, 16,201,179,193,227, 86, + 91,130, 54,180,203, 21,193, 7,218, 39, 43,130, 81,216,186, 35, 12, 29, 97,186,160,169,183,172,116,198,111,205, 42,150,155,134, +206, 75, 94,158,228, 52, 93, 75,129,133,188,224,142,239, 57,241,138,174, 95, 97,109,207, 16, 96,145, 23,228, 66,210,218,232,210, +247, 32,136,200,125,154,100,241,126, 24,161,239,111, 98, 89, 62, 42,173,178,184, 90,193, 13, 9,185,181, 87, 40,192,122, 24,168, +123,139,181, 2,111, 3,195,224,217, 52, 14, 33, 2,182, 79,161, 96, 93, 31,159,159, 46, 14, 99,144,146, 78,247, 93, 87,125, 26, + 2,174,166,244,196,102,180,254,133,204,220,254,241, 20,117, 83,196,244, 32,228,151,230,117, 63,119, 90,207,246, 32, 80,165,227, +129,242, 67,100,172,219, 62,234,110, 69, 58, 34, 33, 77,135, 90,236, 96,244,164, 41, 39, 36,104,101,132,232,165,220,155,244,211, +212,101,197, 14, 94,127, 54,181,205,167,137,223, 37, 41,152,243,145,176,225, 1, 97, 56,203, 37, 47, 47,230,244,221, 64,176,150, +187, 79, 62,229,131,123,159,236,180,144, 58, 78,131,147,210,112, 56,201, 89, 76, 43,102,249, 28, 41, 37,214, 14, 44,251,142, 77, +215,243,164,238, 99, 30,187,206,224, 96,194,157, 69,201, 97, 89, 82,230, 37,243,114,206, 91,223,123,157,235,179,146,204, 8, 62, +120,239, 99,222,251,228, 35,184, 60,249,166,112,200,158,110, 51, 69,241, 86,115,178,178,228,160,200,200,181,161, 13,129,143, 30, + 62,224, 79, 63,124,143,247,254,230,239,192,109,246,150,144, 38, 22, 43, 41,227,212,238, 82, 65,175,219, 20,247,153,154, 38,163, +190,121, 39, 93, 20,177,136, 78,167,176,217,166, 41, 57,192,164,138,231,181, 79,222,246, 82, 70,103,166,182,191,178,239,197,199, +104,225,120,142, 18, 44,159, 21,241,245, 5, 82, 1,110,227, 62, 61,249,223,211, 52,113,119,175,216,161, 67,251, 81,139, 87,225, + 13,114,215,224,133, 61,214,171,115,177, 48,236,191,223,253,191,123, 31, 39,243,100, 97,138,115,145,112, 39,211,100,158,114, 5, +174, 86, 25,125, 63,218, 95,193, 43,183, 80,229,140, 27,101,197, 54, 23,240,228, 50,233,204,211,185, 92,204, 35, 18, 20,194,206, +132,102,181,142, 73,123,155, 26,174,207, 33, 4,196,172,136,175,121,219,166,102,110, 27,139,121, 82,153, 8,231,163,157,229,249, + 26,113, 48, 71,228, 38, 30,183, 77,141, 24,250, 24, 13,170,210, 74,164,183, 64,224,167, 93,207, 27,198, 80, 17, 80,125, 75,211, + 90, 62,169, 91,126, 58, 56, 62,177,142,235,243, 25,223, 41, 42,222, 94, 28,161,134,158,181,247, 28,116,151,124,234, 76,108,172, +102, 7,145, 56,184,184,193,143,143,143,185,223,172,240,189, 35,212, 91,194,253,207, 8,153,137,124, 10, 39,248,147,155, 37,223, + 59, 46, 89,228, 26,147, 73,126,182,246,232,213, 41,165,209,116,125, 71, 78,160,151, 38,150, 99,109,120,210,109, 25,132,196, 14, +150,190,239,232,214, 49,255, 65, 52,245, 83,197, 92, 60, 85,216, 61, 2,141,192, 94, 77,235,216,142,159, 7,195,159,122,199,159, + 55, 61, 53,169, 73, 20,130,237,186,129,204, 96,113,136, 32,201,149,226,186,210, 12, 4, 94,214, 5,185,206, 89,135,128, 70, 97, +181,230,176,172,216,122,199,160, 13,235, 32,112, 82,176,246,129, 13, 49,161,113,150, 25, 42,163,232, 7,199, 48,120,172,128,102, +176, 17, 58,111, 7, 14, 50, 21,141,180,172, 67,245, 22,213,119, 8, 33, 57,181,158, 94, 72, 6, 17, 73,215,117,223,114,233, 3, + 23, 46,176,217, 54, 76, 76,198,197,166, 97,161, 28, 15, 90, 75,233, 58, 30,110,107, 28, 61,219,110,203,159, 45, 47,184,168,155, +216,144, 54, 17, 70,118,231,171,248, 60,220,180,208,247, 49,201,174, 31, 98,200, 86,211, 17, 86,171,120, 15,157, 44, 99,145, 93, + 94,198, 21,195,233, 50, 26,187, 12, 1,108, 67,168,230,116,237, 26,134,158,133, 12,156, 15, 3,133, 17, 4, 27,157, 11, 55,205, +138, 90,192,147,166,230,208, 24,206, 91, 75,158, 5,166,166,192, 5, 16, 90,179,181,150,123, 99,152,202,164,136,190, 36,215, 15, +163, 75,162, 76, 68,225,175, 83,103, 76,182,139, 20, 31,221, 73,247,239, 65,239,163,117,122,223,209, 53,142, 70, 6,154,186, 71, + 40, 69,223,244, 73,174,214,196,223,235, 54,169, 64, 63,199,117, 85,243,140,220, 40,125,253,130,205,200, 63,142,162,174, 83, 22, +176,142,214,170, 95,197, 42,126, 62,213,120,239, 97,218,165,192,150,171,253,185,221,177, 92, 66, 58,112,195, 62, 20,236,158,110, + 14,180,121,122, 90,191,154,184, 83, 66, 92,231,118, 80,238, 62,132, 47,216,193,162, 33,193,180, 99, 23,166, 4, 46, 24,234,208, + 48,241, 61,203,205, 35, 46, 54, 39,108,124,199,224,119,150,130, 89,169,185, 86, 77, 56,172, 74,166,217,132, 66, 90, 78,169,235, + 0, 0, 32, 0, 73, 68, 65, 84, 27,108, 8,108,135,150,139,237,134,179, 77,135,219,246, 48,128,152,228, 92,159, 23, 92,171, 10, +102, 69, 69,174, 50, 6, 2,175,189,122,135,249, 52,227, 98,213,177,222,212,188,243,209,123,176,190,124,174,246,246,171,235,186, +219,243, 3,144, 48, 95, 80,205, 74, 14,178,156,160, 20,171,186,229,201,102,203,242,228, 18, 46, 79, 83,243,147, 46, 88, 61,162, + 32,169,248,140,133,193, 36, 66,158,237,119,251,229, 47,156,212, 83,215, 58,194,226,232,167,239, 4,157,104,252,102, 22,245,158, + 70,198, 27, 80, 22,224,154,157, 54,116, 83, 67,189,141,231, 56, 58, 73,128,206, 83, 99,230,226,121, 51, 58, 54, 8, 46,194,226, +148, 42,122,217,207,170,116, 46,109,146, 47, 57,162, 56,117,111,133, 16,194,211,133,221,166, 66,218,251,221,154,232,107, 48,117, + 62, 71,140, 51, 58, 54,164, 99, 65,246,196,227,233, 92,226, 61, 4,152, 47,120,235, 91,175,243,107, 71,183,184,153,151, 76,253, +192,227,211,232,206,118,149,147,144,151,187,166,202,218,200, 11,209, 38, 73, 63,199,172,231,128,152,228,177, 72,103, 10, 46, 46, +163,217, 19, 62,146,230,172, 67, 12, 3, 98,176, 8, 23, 82,118,193,140,127,254,250,109, 66, 54,112,250,217,229,238,149, 91,119, +245, 30,124,215,241,231,141,197, 13,142,198, 8, 30,122,203,251, 18, 62, 81,240,104, 99,185,121, 48,225,119,111,188,196,245,188, +224, 85,105,152,175, 47,168,221,128,217, 62,230,209,166,129,182, 39, 28, 28,240, 47, 95,191,206, 31,189,121, 27,161, 22,188,223, + 46, 99, 70,188, 84,132,135,247,225,248, 26, 28, 29,241,122, 85,240,237, 69, 78, 43, 4,103, 29,220,247,240,248,211,135,152,224, + 49, 4,214, 82,130, 16, 56,161,120,104,123, 10, 33,144, 42,103,232, 7,142, 50,104,236, 64,183,105, 16, 67,159,244,198,241,116, +238,127, 22,105,167,254, 84,177, 31, 44, 98,219,211, 78, 13, 78,166, 66, 47,227,196, 37,130,163,217, 52, 52,198, 80, 72, 34, 63, + 70, 75,230, 62, 80,101, 6,235, 44, 83,105,152, 72,197,214,123,122,233, 17,186,164,182, 61, 94, 74, 30, 9,197,178, 23,172, 26, + 75, 94, 26,182,110, 64, 75,193, 76,105,188,243,180,221,128,246, 30, 63,120,242, 16,240, 8,164, 8,176,237,152,181, 29,165,179, +168,224,104,115,197, 73,239,216,184, 64,235, 28, 27, 33,232,156,231,126,183,102,144, 25,149, 86,200,190,225,222,106,195,249,208, +178,238,123, 54,182,163,235,123, 62, 91,175, 57,107, 45, 92, 46,227,245,119,177,142,241,219,193, 71,181, 81, 63,196,123,202, 54, +241, 26,243, 67, 84,141,228, 57,156,158,199,251,111,181,138,215,196,118, 27,135,159,109, 3, 34,198, 37, 35,162,251,231, 89,223, + 51, 15,240, 51,231, 89,116, 29,235, 32, 88,214, 91, 30, 4,133,182,142, 39,214,161,188,231,174,179,252,197,118,203,107, 50, 96, +101, 96, 51, 12,252,101,111,227,229,138,143,107,184, 60, 71,234,156,151,143, 15,152, 29, 77,168, 15,231, 4, 39,211,250,244, 5, +208, 65,231, 34, 73, 88,184,221,189, 2, 41, 95,100, 72,171,222, 16, 27, 24,198,148, 75,129,235,250,248, 59,172,141, 5, 93,217, +157,204,247,203,102,168,209, 9,117,159,168,247,194,180,162,127, 12, 69,221,251,180,175,216, 17,135,190,209,207, 64,198, 93,135, + 27,226,131,168, 75,218, 16,199,110, 23,225, 34, 9,126,127, 0,189,130,136, 71,237,185, 76,208,188, 16,241,117,165,155, 63, 66, +156,163, 55,124, 58,137, 98,183, 51,143, 77,129,137,147,169,244,201,160,127,120,250,196, 76,102,148,243, 9, 85,169,200, 53, 20, + 38,222,232,151,214, 19, 92,180, 14,172,202,130,235,179, 41,243,162,162,204, 39, 41,173,171,231,124,187,230,164,110,217,110, 59, +132,245, 80,104,110, 45, 10,110, 86, 21, 85, 81, 98,164, 70, 74,205,209,225,171,160, 74,250, 32,120,248,112,201,195,199, 15,249, +232,254, 61, 88,158,127, 51,232,105, 31,133,240,196,155,114,126, 72, 85,149,232,148, 91,126,210, 52,108,158, 92,194,217,131, 20, +180,147, 90, 80, 97,210,234, 34,117,184, 89, 34,132,141,176,187, 75,123,238, 97,120, 62,244,174,229,174,113, 29, 93,253, 70, 72, +106, 50,141, 95,151,243,184,227,118, 46, 74,139,236,144, 32,172, 33,157,244,104,231, 24,247,224, 1, 84,145, 76,135,210,117, 83, +153, 56, 69, 84,217,142, 91, 81,165,102,161, 72,174, 79,222,197,255,103, 36, 77,202,196,187, 24,228, 30, 9,208,196,189,155, 52, +169,121,200, 32, 31,149, 4,207, 63,246,226,170, 81,121,186, 97, 9,251,141,141, 72, 1, 70, 46, 17,170,204, 12,249,171,111, 17, +206, 47, 82, 53, 17, 80,206,184,249,202,109,102, 69, 69,166, 10,140,132, 79, 79,206, 97,187,142,175,105, 76, 78, 20,130, 76, 9, +110,107, 88, 53,251,107, 43,153,204,151, 28, 28,205,160,152,197, 9,220,135, 68, 24, 84,136, 20,205, 43,246, 27, 62, 60,255,213, +219,111,241, 47,222,252, 46,191,119,253, 38,239,172, 78, 56,191,216, 92, 53, 56, 87, 54,150,222,227,109,207, 7, 97,224,207, 6, +193,217, 52,231, 1,158,115, 47, 24,108, 64,230,134,223,153, 46,184, 38, 13,197,224, 41,183, 23, 56, 4,210, 7, 84,127,201,163, +229, 25,223, 95, 28,243,251,223,190,193,155,215,231,156,108,122,126,210, 65,200, 6,194,201, 25,225,244, 81,116,194,155,223, 98, + 57, 59,224,179, 65,240,216,193, 71,173,231,211, 85,207,185,133,220,121, 90,219, 70,110,177, 52,180, 2,132, 16, 32, 13, 50, 56, + 22,153, 33,247, 3,202,246,132, 48,208, 46, 55, 8,239,159, 2, 67,197, 51,224,168,124, 22,150,183, 61,172, 54, 8,159,208, 64, +149, 26, 49, 36, 88,135,235, 58,214, 66,144,107, 67, 55, 12, 44,140,230,178,239,120, 75,231, 4, 99,120, 40, 36, 85, 97, 48, 86, + 80, 7,207,133, 54, 60,118,158,199, 27,203,214,123, 90,226, 37,238,149, 36,243, 30, 23, 60,218, 58, 46,235,142,185,148,184,222, +178,181, 3,155,245,134,126,219, 48,107, 7,140, 31,208,222, 81,132,232, 65, 95, 86, 57,119,166, 25,111,148,134,219, 69, 70,222, +247,172, 61,156,247, 13,239, 53, 91, 62,108,107, 30, 13, 29, 39,182,231,241, 96,121,220,108,121,112,121,198,210, 9,196,201,147, +216, 36, 95, 92,198,235,146,189,208,173,164,144,136, 60, 20, 23,229,155,163,194, 98, 31,145,218,123,110, 6,239,146,135,134,132, + 34, 35, 92,108, 8,133,230,161,247,220, 14,158, 71,213,156,118,123,201,251, 58,167,116, 29, 91,107,217, 10,197,165,119, 56,215, +115, 17, 2, 15,187, 30, 53,120, 78,219,154,251,193, 63,197,139, 58,194,243,118, 49,225,119,230, 19,126,237,224,136,223, 60,152, +163,103, 57,247,114,149, 86, 98, 47,176,250, 19,196,250, 50, 42,147, 70, 95,143,113,101,107,251,184, 82, 27, 18,147,221, 15, 73, +230,236, 18,212,158, 2,195, 94,244, 25, 60, 62,155,198,191, 75,253,197,132,220,127,180,240,251,213, 68,243,180, 85, 30, 90, 39, + 6,115, 98, 11,127, 25, 81, 64,138, 52,125,141, 33, 42,201,222, 85,133, 29,204,106, 68,124,206,143, 63,195,164,234, 46, 19,236, +234,146, 99, 80,158,195, 75, 7,112, 52,133,101,189,243, 65, 23, 50, 77, 30,209, 87, 56,154,180,236, 17, 28, 38,101, 44,236, 38, + 75,221,149,125,250,245,154,146, 27,119,110,240,202,252, 16,109,178,184,214,237, 91, 78,183, 93, 42,234,146,235,147,130,107,213, +140,210, 24, 36,138,206, 15,172,251,154,243, 77,205,197,101, 13,189, 69, 40,197, 43,243,130,151,143, 38, 28, 84, 37, 70,104, 50, +157, 83, 84, 83,254,211,223,255, 1, 63,126,243, 8,169, 21,127,241,211, 19,254,242,227,191,163, 89, 95, 68,189,242, 47,179,179, + 30,177,162,234, 16,142, 14, 40,141, 70, 9,120,188,174,105, 87, 27,184,184,136,197,121,212, 91, 74,145,136,114,121,220, 29,233, +189, 34,110,212,142,245, 62,118,194,207, 67,113,236,142, 0,138,220, 63,119, 58,222, 48, 38,139, 55,154,117,145, 16, 87,111, 64, +151, 17,249, 9, 42, 90,127, 14,109, 44,106, 33, 62,188, 17,169,185,168,242,216,104, 76,146, 4, 70,171,248, 59, 42, 19, 31,198, + 70, 38,182,121,216,153, 16,217, 68,192, 20,106, 15,194,243, 81, 58, 35, 68, 68,114,148, 1,153,237, 94,255,115, 61,197,147,235, +222,216, 84,122,187,199,122,245, 79, 55, 54,227, 49, 29, 43,199,181,235,252,240,205,215, 57,249,224,227,248,125,231, 33,203, 56, + 61, 92, 80, 86, 11, 46, 3,188,223,118,116,143, 31, 68, 38,183, 17,144,149,208,110,184,118, 60,231,247,143, 42,110,101,154, 66, + 5, 78, 46,215,241,191, 13, 77,132, 24, 69, 72,146,205, 99,254,217,241,171, 28, 79, 12, 15,158,156, 70, 67, 27, 19,163, 64, 73, +211,171, 48, 26,208, 44, 22,134, 63,254,193,143,248,219, 39,103,220,117, 61, 15, 30,159,198,200,224,177, 65, 73,210,176, 49, 89, + 42,120,201,153,201,240, 72,110, 2, 63,170, 50,110, 20,130,169,148,188,220, 7,228,208, 32, 49, 52,190,229, 0, 9, 89,206,203, +194,177, 25, 28,157,207,216,132,192,191, 62,233,120,210,119, 4, 83,194,172,140,199,110,189, 37, 72,135,206,143,248, 48, 72, 46, + 7,248,100,176,172,183, 17,181,105,234, 26,134,192, 36, 19,116, 78, 32,114, 77, 70, 12,136,154,168, 12,165, 20, 42,192,205, 16, + 19,178, 30, 53, 61,170,115, 72,118,133, 93,125, 65, 65,127,182,176, 51, 88,196,182,129, 46,217,127, 75, 5,185,185, 74,236, 10, +181, 99,179,220,178, 21,176, 10,158,185, 17, 8, 93,176,178, 61,103,182,229,124,112, 88,109,120,191,239, 80, 66,240, 68, 9,206, +154,150,117,240,216, 44, 99, 93,183,100, 97,192,123,168,155, 14,183,109,168,140,138, 54,202,131,229,100,179,230,108, 91,211, 52, + 13, 19,107,163,211,156,181, 4, 15,153, 49,220,152, 78,184, 49,155,112,108, 12,151,131,199,202,128,168, 27,222,111, 55,132,161, + 33,244, 45,222, 89,232, 26, 66,189,134,243, 83,196, 96,225,228, 28,218, 22,177,169, 17,146, 8,179,135,164, 6,217, 47,232, 95, +151,113, 46, 71,211, 31, 15,133,137,207, 82,239, 88, 26,131,234,182, 60, 54, 25,175, 14, 53,181,201,185, 59,180,204,148, 96,105, +123, 78,156, 67,234,156,239,248,150, 75,239,249,168,109, 8, 30,222,146,146,133,144, 92,122,199,155, 38,227, 87, 38,134, 91, 38, +199,168,128, 17,154, 75,223,115, 87,104,156,208, 17,189, 82, 89, 42,206,246,249,104,165, 73,211,186, 50, 96,219,196, 93, 73, 12, +246,253, 24,242,167, 2, 89, 82, 16,216,215,217,231,107,253, 12, 4, 47,159, 46,246,254,255, 11, 69,221,185, 47, 46,232, 87, 15, +197, 4,139, 7,249,197,112,201,213, 30, 34, 60,221, 5,238,235,112, 71, 25,149, 25, 63,167,255,238,252,110,210,145,137, 72, 39, + 45,211, 87,111, 49, 45, 50,154, 39,235,100,237,103,119, 48,116,231,119, 18,170,241, 53, 23,147, 4,131,202, 29, 84,237,159,121, +152,231, 19,236,108,198,237,131, 35,148, 16, 56, 31,184,216,108, 56,171, 59,148, 86,148, 74,113, 52,201, 40, 77,134, 86, 10,239, + 28,219, 97,203,197,182,230,193,170, 78,177,166,176, 88, 20,188,116, 88, 50, 47, 74,140,201, 98,230, 60,130, 27, 7, 51,126,251, + 87,191,197, 98, 58, 99,106, 20,239,222,219,240,206, 47, 62,196,214,107, 56, 59,121, 46,188,251, 66, 59,165,249, 20,200,120,237, +199, 63,224,215, 95,126,157, 91,179, 5, 65, 58, 90,215,209,124,250, 16,252, 38,237,206,139, 84,204,211,241,108,235, 72, 34, 28, +139,184, 20, 17,150,203,205,206, 11,249,139, 46,246,241,220,143,146, 77,253, 12,194,226, 71,123, 95, 19,111, 68,157, 39,107,224, +144, 98, 99,137,134, 67, 38,143, 77,217,200, 7, 48, 69,108, 20,117, 98,144, 79, 77,146,170, 40,200, 21,114,146, 35,180, 66, 26, + 69, 24,207, 33, 41, 48,104,176,241,223,140,112,154, 78, 48,254, 32,163, 49, 81,110,146,244,164,139, 23,135, 78,202,129,231,133, + 1,233, 81,159,191, 87,216, 71,207,234,103, 31,120, 34, 77,235,227,199,118,205,201,199,159,238, 96,127, 66,108, 88,143,103, 60, +201, 43, 78,135, 45,157,181,208,109, 34, 84, 58,254,204,131, 67, 94, 91,104, 50,163, 9, 1, 62, 89,246,108,181,129,213, 5, 76, +230,208,213,241, 61, 8,193, 31,190,254, 38, 63,124,227, 85, 74,239,184,215,173,232, 78, 19, 92,218,237,145,199,140, 70,100,154, +251, 23, 45, 31, 46, 31,241,192, 76,184, 11, 44, 55, 13, 97,179,141, 58,111, 41, 63,159,130,102,123, 66,208, 28, 21,240,134,210, +188, 81,149,188, 49,159,210,121,203, 13, 37, 81, 46, 66,157,153,146, 76,117,134,240,150, 30,144,125,205, 79,159,156,240,111,206, + 59, 30,116, 77,132,221,117, 70, 16, 6, 42, 77, 48, 18, 46, 47,217,108, 46,121,141,130,207,182, 3,125,221,208,116, 3, 85,219, +192,118,197,145,148, 8,153, 81, 77, 12, 90, 72,188,130, 3, 64,104, 69,142, 96,130,128,161, 37,195, 33,133,224,162,173, 81,131, +101,164, 8,236,255,217, 47,242,159,219,185,251,184, 99, 23, 46,128,214,136,210,196,128, 35, 37, 16,237, 16, 55, 78,118,224,210, + 57, 30,116, 3,109, 24, 56, 13,142, 51,111, 49, 66,240, 81,223, 48, 17,130,143,189,227,209,170,166, 53, 37, 79, 54, 75,250, 16, +168,125,207,196, 69, 87, 75, 97, 29,167, 67,199,114,187,165,173, 59, 62, 93,157, 51,244, 29, 67,112,172,251, 45,166,219,112, 83, + 40,108,146,241,137, 44,103,114, 48,141, 54, 17, 82,112,152, 25, 30,174, 87, 56,215,243,176, 27,168,235,109,188,103,150,231,132, +203, 11, 56, 95, 34,150,107, 56,189, 68,132, 14,209, 70,164, 70,132, 30,132, 65, 40, 31,101,138, 62,161,114,163, 84,245,235, 32, +131,222,167,240,149, 68, 0,237,134,132,140,246,116,194,131, 13, 92,106,197,118,179,129, 32, 89, 91, 71, 23, 28,232,156, 31,251, +134, 11,149,241, 27,153, 96,134,226,183, 84,148,159, 86, 67,205, 45,161,208,120,126,101, 58, 97,145,130,210,182, 67,199, 84, 74, +126,178,105, 8,133,142,210,183, 34,135,249, 60,145, 92,247, 82, 63,159,154,214, 83,243,210,182,113, 88, 24,119,227,157, 77,255, +205,255,191, 52,228,202, 47,159,128,191,228,247,252,195,155,207, 24,189,199, 90,126,166, 83, 82, 50, 86, 94,147,168,255, 50, 61, +221,195, 23, 9,241,247,222,138,251,130,130, 62,194,223,201, 4, 4,201,206, 46,118,172,112, 87, 38, 49, 22, 6,205,230,231,119, +227, 3,121,219, 38,210, 83,218,151, 42,187, 11,132, 65,238,153,181,216,120, 97,132, 4,155,116,225,105, 67, 1,128, 97,205,198, + 89, 92, 80,180, 22,214,173,227,164, 30,144, 8,202, 76,113, 80,228, 20, 38, 50, 97, 91,107, 9, 56,214,109,199, 69,215, 19,172, + 67, 40, 13,165,138,164,184,162,136,161, 33, 16, 67, 36, 92,203,195,179, 53, 39,203,142, 42,239,120,184, 28,176,206, 38,162,158, +251, 6,114,182,221,199,244, 55,190,195,183,230, 11, 38,170, 98, 54, 59,226,120,113, 72, 46, 13,215,219, 25, 85, 46,248,243,247, + 62,130,173,141, 59, 89,246,229,107, 73,106,214, 63,109,168,195, 36, 17,209,244,151,152, 42,140,231,107, 60,189,227,215, 58,157, +171,174, 7, 61,219, 17, 42,100,202, 35, 38,201, 25,221, 22,156,137,133, 93,164,140,248, 60,201,178, 72,205, 93,110,226,142, 44, +207,200,178,216,100, 41,160,144, 26,171, 28,181, 21,228,165,166, 27, 18,146, 52,155, 68, 63,245, 73, 30, 97,245, 38,105, 75,171, + 50, 90, 6, 75, 29,201, 67,121,145,222, 67, 27,157,232,122, 3, 19,226,123,126,170, 27, 79,124, 15, 29,167,221, 88,224,247, 59, +152,189,181,144, 75, 1, 16,227,234, 98,108,112,198, 99,145,103,209,140,105,179,129,195,109,116, 54,211, 9, 45, 40,202,168,195, +159, 86,240,248,140,119, 57,230,222, 12,100,110, 88, 41, 13,155, 75,152, 30, 64,187,141,123,116,239, 97, 93,243, 89,215,113,116, +190,229, 51,159,179, 12, 42,110, 49,106,251,244,121,243, 50,230, 84,219,158, 63,255,236,130,197,225,171,172, 79,207, 98,255,145, +206,249, 83, 83,250,222,159, 80, 47, 89,103,146,249, 97,193,119, 23, 37,153,144, 56,165,249,100,123,193, 91,197, 33, 70,121, 38, +147, 25,222,246,220, 12, 14,143,196,245, 43,190,181,189,228,238,234, 18, 83,205, 8,179,107, 4,100, 52,192,201, 94, 38, 20,115, +130,235,248, 23,179,156,191,189,247, 87,188, 89, 45, 88,150,135, 20,229,140, 39,237,150,107, 66, 64, 89,198,185, 91, 43,180, 20, + 76, 27, 79,143, 99,129,192, 23, 19,194, 48,144, 87, 71, 84, 66,113,190,174,209, 38, 39,198,194,124,126, 34,223,111, 84,174,222, + 87,250, 44,198,247,190, 93, 19,130, 36,100, 10,170,138,160, 12,225, 72, 35,122, 75,216, 52,132, 77,207,210, 57,254,109,231,249, +241,177,229,194, 43, 62,212, 27,174, 77, 42, 62,114, 27,200,166,108,125,160, 8,209,204,103,211,110,232,124,192,234, 14,113,182, +230,237,197, 1,178, 31,168, 76,198, 59,219, 19,174,137,156,114,176,156, 13, 27, 46, 29,220, 15, 45,101,223,112, 92,206,177, 69, +197, 76, 11,182,155, 22, 93, 21, 56, 37,176, 93,135,148,154,135,221,192,106,216,144, 97,105,235, 21,172,215,136,101, 3,171, 21, + 65, 14,136,145, 83, 50,158,215,222, 35, 84, 15, 72, 2, 30,161, 36,193,181,105,205,240,245, 72,175, 97,188,231, 85, 3,107, 29, +137,168,125, 7, 7, 7,177,192,151, 9, 82,207,243,120, 47,200, 36,237,180, 45,179,162,228,147,182, 97, 41, 4, 71,153,226,227, + 65,114, 68,203,185, 87,188,149, 5,250,208,209,175, 47, 97, 50,101,166, 21,107,215,115,210,245,120,145, 86, 35, 34, 68, 57,107, +211,195, 75,215,225,108,147, 34, 82, 19,172,222, 15,177,144, 15, 22,244, 38,222,159, 87, 38, 97,123, 70,101, 90,255,242,122,120, +173,191, 24,250, 15,207,148, 59,251,143,117, 82, 31, 39,112,165,227,222, 81,238,125,125, 53,229,176,251,108, 71, 93,174,253, 18, +182,160,125,250,107,255,140, 92,192,237,193, 33, 87,242,163, 44,254, 78,108,100, 99,187, 36, 53,112, 9,234, 80,196, 7, 38,169, + 83,243,118, 23,252,146,233, 84,188,211,207, 22, 68, 63, 95, 98,224,253,231,100, 87,179, 3,202, 42,167,115, 61,237, 48,176,238, + 26,122,219, 51,211, 25,135,121, 78,145,101, 8, 33,105,135,142, 77,219,114,110,123,150,109, 79, 24, 2,170, 52, 28, 87, 21, 7, +147,130,194,228,104, 37,233,251,129,203,182,225, 73,189,225,238,197, 25,205, 70,242,201, 67,199,187,159, 62,225,253,187, 31, 80, +169,128, 83, 57,109,239, 9,205,234,235, 23,247, 55, 94,225,159,254,202,247,185, 61,191,198,205,195,235,204,103, 7, 44, 14, 14, + 40, 76,134,243, 61, 77,187,228,211,229, 18,206,151, 59,153,213,216, 84,133, 16,215, 20, 89, 58, 31,253, 30, 52, 47,229,231,143, +207,243,246,248,114,239,239, 30,200, 85,156,184,155, 77, 34,160, 16,247, 89, 56, 80,147, 8,187,155, 44,157,184,116, 30, 77, 74, +200,209, 58, 58, 66,205,242,120,141,149, 5,224, 9, 62,112, 84,229, 87, 15,236, 76, 38,171, 77, 31, 8, 66,197,189, 95,112,105, + 98, 78,136, 81,174, 83,140,162, 74,193, 65, 99,196,111,136,223, 23, 33,238,214,242, 34,222,149,251,124, 17,159,184, 2, 9,118, +140,215,244,190,209,254, 30,203,118, 68, 61,174,162,113,247,110,114,159, 16, 16,159,194,136, 38, 51, 56, 92, 64, 62, 69, 9, 65, + 38, 21,110, 52, 81,217,180,145,244,119,185,161, 47, 10, 58,147,208,132, 50,143,238, 91,101, 21,247,128, 58,114, 33,206, 53,188, + 43, 53,247,187, 26,164, 67, 60,124,188, 11,164, 72,240, 59, 18,196,104, 0,213, 91,218,161,142, 43, 47,173, 9, 82, 71,118,116, +146,227,125, 62,163, 92,114,205, 24,126,235,230,148, 91, 89,193,196,100, 8, 37,249,197,208,113, 32,161,202,231, 8, 33,112, 56, +132, 16,244,222,177, 28, 58,154,190, 67, 52, 27,182,167,151,216,205,217, 21,124, 19, 76, 73, 40,103,252, 15,175,220,230,247, 94, +122,137,227,233,130,127,253,228,132, 91, 65,112,186, 61,231,150,130,163,108,194, 52,211,148, 69,142, 29, 98,242, 95, 41, 4, 57, + 62,242, 96,241, 20, 89,134, 14,138,105, 81,177, 40, 51,110,230,146,187,203, 14, 29, 28,198, 75, 12,158,241,113,174,158, 3,199, + 63,245,199, 59, 16, 30, 49, 36,110, 78, 89,112,109,118,192, 31, 93, 95,240, 79, 94, 57,230,164,222,178, 94, 54, 4, 60, 15, 55, + 53, 23,214,115, 62, 88,238,213, 29, 91,165,248,108,121, 70,231, 6, 30,172,207,104,112,172,173,101,109, 91, 30,116, 53,107,231, +248,219,139,115, 38,194,242,168, 94,242,139,186,229,172,222,114,183,169,209,190,227,175, 79,206,249,216,195,208,173,208,120, 78, +240, 88, 4, 74, 72,154, 20,108,243,222,118,203,123, 23, 75, 62,232,182,224, 2,153,237,113,193, 98,211,115, 82,180, 93,124, 15, + 1,132, 13,136,144, 38,115,107, 35, 31,193,249,104,123, 19, 66, 44,252, 95,115,205, 23,158, 69,109,187, 38, 93, 88,169,154, 41, + 17, 7, 41, 49, 18,107,137,114, 81,231,248,149,178,160,238, 26,222,158,228,209,138, 2,207,143,139,156,247, 26,203,143,171,156, +141,237, 41,165,164,177, 14,221, 53, 8,107,121,210,183,252,207, 23,203,216,168, 15, 9,125, 29, 3,190,180,230, 55,111, 86,252, +209, 43,215,248,209, 75, 71,188,121,243, 58,191, 88, 28, 50, 76,170,221,250,117, 24,146, 12,186,216,153,133, 5,183, 99,194,127, +227,130,254, 69,204,119,190,160,182, 61,127, 90,255,135, 45,234,251,147,202, 24, 87,122,213, 2,139,120, 34,145,241,160,141,208, +249, 24,146,178,127,209,248, 17,174,120,246,161,200,231,119,218,159,131,119,109,124,248,155,113, 63,158, 14,170, 86, 73,146, 38, +227, 5, 52, 6,200,140,110, 98, 97,188,123,243,157, 14,123, 31, 17,240,246,249, 5,171,172,200,167, 37,210, 7,182,125, 67,215, +247, 4,235, 57,154, 22,148, 89,129,146,130,193, 90, 90,235, 56,111, 59,214, 77,135,245, 1,101,114, 38,153, 97, 90, 26, 38, 69, +142,137,157, 6, 77,215,178,234, 91,206,215, 61,171,186,230,195,123,247,120,247,222, 7,172,150,143,184, 61,187,201,245,234, 6, +139,131, 99,238, 93, 60,138, 19,217,139, 94,116,142,136,138, 28, 46,120,229,218, 33,185,202,168, 38,115,132, 18, 20, 89, 78,179, +169,145, 74,240,100,249,132,187,255,254,189,248,158, 71,214,102, 8,187,162, 62,186,188, 57,191,251,220,245, 79,147, 12,191,148, +108,177,199, 33, 83, 73,199, 63, 50,229,139,196, 95,240,233,156,185, 4,201,211,165,203, 33,196,134,173,154, 68, 41,215,124,186, + 75, 94,146, 50, 18,227,132,231,104, 82, 82, 24,141, 70,178,200, 13,141,117, 84, 82, 99, 69,140,210,116, 4,130, 8,228, 69,137, + 27,229,143, 46,105,218,125,114,155, 35, 21,115, 41, 83, 66,148,221, 93, 67, 90, 69,251, 96,189,111,176,227,119,133,221,219, 47, + 0,206,252, 30, 73,102,143,131, 48,202,227,132, 72, 65, 66,201, 85, 14, 17,191, 95,205,225,232, 26,210,100, 8,169,240, 12,132, +182,129,139,243,216, 92,108,155,136, 44,228,102,151,239, 60,164, 9,108,232,162,171,222,232,156,104,109, 90, 79, 36,243,165,166, + 67,156, 62, 77,184, 20,222,131, 23, 8,147, 26,157, 54, 53,186, 87,134, 69,146,224,159,247,160,247,172, 85,198,143, 22, 37,183, +178,140,193, 59, 86,222,113,215, 90, 30, 73,207,235, 89, 69, 97, 74, 10, 97, 48,125,131,232, 26,238,213, 43, 6,239,169, 6,207, + 4,203,242,124,139, 61,191, 32, 20,146,144, 25,190,149, 79,249,195, 87,111,241,202,193,148, 7,155,150, 63,221, 52,124,178,189, +196, 11,205,194, 24, 54,193,113,123, 94, 48, 56,136,246, 51,129, 74,128,146, 10,165, 37, 2,129, 18,138, 73, 89,226,132,228,184, +156,242,250,226, 26,223,191,177, 32, 47, 52,219,204, 68,138,136,206,209,153, 68, 7, 80, 94,162,240, 95, 80,220, 53,210, 68, 18, +176,212, 38, 18,232,108, 64, 20, 25,191,127,115,193,111,223,126,149,219,249,132,197, 68,243,215,143, 46,162, 61,240,166, 37,116, +125, 92, 87,172,150,244,231,231,132,174,167,175, 27,194,164,164,111,107,250,203, 51, 6,219, 17, 54, 43,134,182,198, 5,203,189, +237,154,251, 23, 23, 44,187,142,243,174,229,162,111,185,223, 54,184,109,139,191, 92,242,241,186,227,253,118,205,153,180,124,108, +123, 42,169,249,120,187,225,253,229,146, 63, 59,189,224,189,190, 70,121,129, 12, 22,129, 99, 18, 60, 70, 9, 26,235, 35,225, 47, + 72, 68,202, 11, 23,222,199,226,206,110,125, 38,246,214,104, 79,113, 11, 94,224, 67, 60,143,195, 51, 38,223, 73,253,116, 83,172, +178, 84, 84, 13,167,214,242,135,243, 2, 23, 2,183,243, 28,225, 29, 39,125,195,175, 84, 19,126,178,217,240, 86, 49, 97,139,196, + 13, 45,189, 27,248,183, 79,158,240,201,106,195,249,186,137, 78,139, 38,145, 24, 67, 34,246, 5,199,239, 44,166, 84,198, 80,228, + 19,130,210, 12, 62,240, 88,201, 56, 24,164,192,159,100,234, 30,239,225, 33, 26,204,124,110,136,252, 38,220,178,103,235,215,184, +190,179,126,103, 95,254, 37, 14,115,255,176, 69, 93,250, 52,245, 36,131, 15,149, 58, 51,173,226,131,114,140, 59, 53, 41, 51,221, +166,233, 56,164,206,109,255, 13, 93,217,234, 61, 51,165, 91,255,229,140,121,147,165, 40, 77, 31, 9, 84,214,239,152,235, 87,230, +251, 54, 22, 18,233,175,148, 80, 41,104, 45,165,180,132,103,136, 17, 95,177, 91, 49, 37, 93, 86,144,233,192, 96, 7,218,174, 35, +207, 36,243, 60,195,168,152, 54,212, 59,199,186,111,185,236, 59,186,244, 30,170,162,224,160,202,152, 8,137, 17, 18, 99, 4,222, + 90, 86, 67,199,227,101,205,166,237,226, 36, 60, 56,172,134, 69, 57,225,229,227, 87,233, 66,143, 14,154,207,214,231,216, 71,247, + 94,108,159,238, 72,187, 49, 1,237,128,184, 62,165, 84,134, 82, 79,208, 89,137,210,130,174,110, 56,191, 56,229,127,255,249,207, +225,241, 19,110,254,225,239,178,253,244,222, 14, 5, 81, 9, 5, 25,189,142,159, 37,139,140,136,140, 20, 41, 17,206, 63,135,156, + 39,247,214, 49,236, 38,197, 44, 33, 2,117, 29,247,230, 67,212, 21, 71, 75,222, 42, 73,189,242,248,123, 22, 21,243,151,110, 83, + 84, 37,106, 90, 49, 56,155, 36,148,130, 92,107,148, 16, 84, 58,202,127,150,189,103,150,105, 58,239, 81,233,241,212, 91, 79,105, + 20,109, 61,196,253,153,243, 41,170,215,197,233,252, 74,155,238,211,132,110,227,181, 45,243, 88,120,135, 68,216,220,183,130,220, + 47,236, 90, 62,243,246,237,211,135, 96, 60,158, 87,246,197,236,153,221,164,239, 41, 21, 77,113,164,128,195, 25, 97,178, 32,216, +150,128, 76, 49,172, 77, 92, 7,248,116, 45,219, 49,125, 45,161, 38,219,246, 10,206,164,245,177, 1,176, 46,229,170,155, 72,146, + 11, 1, 86,235,232,136,183,255, 80, 30,123,106,163, 16,117,138, 57, 86,154, 48, 47,248, 87,111,220,160,156, 21,220,123,178,138, +123,211,103, 31,232,193,161,181,166,202, 12,107, 2,247,189,231, 3,235,248,179,206,242,123, 74,176,208, 37, 6,137, 30, 6,124, +187,226,129,179, 8,235, 17,214, 81,122,193, 66, 64,237, 29,221,163, 11, 2, 45, 47,107, 56, 44, 42,150,125,207, 95,157, 46,249, +249,122, 9, 82,210,218,150, 7,117, 67,237, 45,219,214, 82, 59, 71,145,151, 84, 10,114, 4,131, 15, 84, 1,156,119,136,114,130, +159, 78,169,202, 9, 89, 57, 69, 34,184,105, 42,126,253,198,203,252,218,205, 91,188,253,250, 29,110,221, 56,228,177, 46, 17, 86, +161,133, 67, 5,143,242, 30, 53, 41,162,171, 30,196,198,202,232,232,176,151,204,154,132,237, 17, 14,138,185,225,213,201,156, 78, + 74,238, 14, 61,239, 73, 79,216,118,176, 90,198,107,121,187,133,186, 35,244, 3, 97, 91, 19,250,158,112,255, 17, 56, 75,184,220, + 64,169, 97, 91,227,237, 0,221, 64,232, 90,252,166, 33, 88,143, 95,175, 8,117,135,111, 45, 97,179,193,183, 22,191,185,100,115, +126,206,253,117,207,167,131,227,223,212,151,252,249,106,205, 79,234, 53,143,188, 77,251,253,154, 82, 4,114, 31,200,188, 37,243, + 48, 87,130,181, 20, 41,201, 90, 34, 19,138, 42,242, 9, 34,215,187, 70,115, 68,110,158, 41,214, 95,172,239,255,170,194,174, 99, +209,154,148, 41, 82, 59,139,240,119, 57,137,141,124, 55, 64,105,120, 75,106,126, 59, 23,104, 83,160,156,101,229, 44, 62,120, 14, +148, 97, 35, 5,175,105,205, 25, 48,117,150,121, 94,112,210,118,220,145, 18, 63,116,116,109,207,182,238, 96, 91,167, 97, 36, 42, + 64,254,224,120,194,203, 89,134, 86, 25, 94, 40,140,214, 40,229,121,191,115, 73, 13, 35, 99,211,170,178, 36, 97, 78,247,239, 40, +171,126,161, 97,229, 75,184,200,242,139, 8,114,114,111,112, 77,181,238, 57, 48,255, 63, 92, 81,207,179,120,178,236,176,179, 33, + 29,109, 67,179, 44, 62,176, 61, 41,251, 60, 21,216,204, 36,194,211,222, 67,244,138,109, 56, 78,241,233, 11,251, 2,164, 5,173, +119,133, 65,154,221, 46,211,167,194, 48,234,217,247,131, 96,252,254, 78, 35, 77,162,146, 29,170,240, 34,154,199, 76,225,242, 41, + 94,198,160, 12, 47, 29, 19,101,226,164, 40, 21, 62, 8,186,193,114,209, 91,182,221, 0, 8,230, 7, 83,110, 47, 14, 40,181, 65, + 9, 16, 4,164,247,116,206,178,106,122,206, 86, 13, 97,240, 8, 31,146,116, 2,124,166, 17, 42,144,235,156,179,230,146,251, 79, + 30, 65,187, 34,188,136,193,139, 76,197,214, 73,232, 44,151,171, 37,159, 14, 61,199,101, 78,158,231, 12,221,192,166,105,184,127, +241,152,135, 31,222, 5,103, 99,152,194,197,242,105, 6,232, 87,161, 52, 34,101,222,203, 47,131,173,198, 48, 29,181,135,213,165, + 9,220,217,200, 92,109, 54,241,198, 31,145, 19, 63, 58,178,233,216, 20,222, 56, 38,207, 20, 90,104,132, 0, 43, 37,193,182,160, + 21,185, 84, 84, 70,145, 41, 69, 99, 3,149, 81,180,214,225,131, 39,136,128,199,145,107, 73, 63, 4,156, 27,253, 14,210,227,201, +118,169, 1, 10,145, 57,158, 21,169, 80,219, 36, 61,235,227,235,180, 54,146, 7,191,112, 90, 29,215, 73,123,219,230, 60,139,147, +244, 62,231,100,148,124, 62,187,190,130,216,160, 24,179,147,111, 22,121,108, 34, 84,130, 5,109, 23, 97,240, 85, 27,119,135,117, + 15,198,240,218,141, 9, 63,200, 53,175,101,138,187,103,171, 68,144, 75,122,117,124,124,144, 42,147,124, 5,178,200, 23,184,184, +252, 92, 81,199, 39,111,251,193, 38, 36,109,128, 44,231,191,127,227, 22,191,119,227, 14, 70,195,255,125,214, 68,159, 0,118, 22, +171,130,104,157,251,112,208,104, 41, 89, 3, 15,156,229,190,147, 88, 39,184, 27, 90,254,137, 41, 41, 48, 40,153, 81, 44,174,241, +242,209,109,174,103,134,101,223,226, 8,100, 88, 94, 54, 26, 41, 5,121,215,241,160,109, 8,126,195,191,127,248,144,127,119,118, + 70, 24,122,130, 34,154,214,100, 6, 79,108, 2,122,239,112, 54,112,123, 82,176,181, 45, 55,140,161,243, 1,147,229, 44, 14, 22, + 20,179, 9,250, 96,134, 51, 26, 33, 13,147,114,130,247,129,239, 29,220,224, 7,183, 94,229,187,179, 27,252,250,209, 13, 38,115, +205, 61, 15, 90,101,168,190, 71,117, 22, 57,153,160, 76,134,202, 75,228,224,144,194, 34,131,138,133,125,176,208,212, 60,217, 88, +154,210,177,148,129,159,212, 3,219,224,160, 72, 43,139,117, 29,175,105,219, 39,169,151,139,150,191, 67, 71,232, 60,129, 1,214, + 13,161,110, 97,121, 25,125,197,183, 29,161,183,132,224, 99, 19, 48,244,248,139, 19,130,235,240,109,131,239, 26,188,115, 49, 22, +183,174,241, 78,224,134, 26,239, 6, 6, 63,196,201,223, 65, 62, 88,140,112, 84, 82, 82, 10, 75,174,224,192, 40, 90, 33,152, 40, +197,171, 83,205,235, 7, 83, 14, 22, 5,213,193,140,165,154,166, 20,199, 72, 6,125, 17,199,202,231, 21,120, 1, 8,167,227,176, + 52,201,160, 92,196,235,149, 16,249, 33, 77, 90, 35, 45,166, 16, 36,255,201, 52, 3,161, 88, 54, 43,166,249,148,206,123,110,231, + 37,101,128,119,235,129,137, 49, 84,174,231,157,198,115, 93, 6,180, 18, 4, 9, 55,164,228,219, 18,254,195,233, 38,230, 62,116, +117,202,132, 8,220,154,230, 28,165,235,201, 75, 73, 23, 2,119,155,129,251,222,238,236,165,125, 34,216,230,121,188,239,138, 34, +162,129,243,121,228,173, 16,146,174,157,167,172,194, 95, 88,158,253,133, 68,185,125,101, 12,255,128,240,123,158,197,130,169,244, +142,249,172, 18, 44, 55,178,205,199,169, 67,232, 61,246,249,222,127, 27,255,222,165,128,149,126, 47, 42,245, 89,221,158,231,133, +172,244,174,138,138, 79, 5,217,201,157,143,182,142, 25,232, 87,233, 56,210,238,177, 94,246,150, 64, 82, 60,141,246,191,168,100, + 33,159, 35,143, 14,210, 84, 30,223,227, 52, 87,104, 41, 81, 41,138,117, 99, 7,182, 67,207,208,122, 80,130,235,243, 57, 71,147, + 42,234,124,189, 71,138,128, 7,154, 97,224,116,219,211,215, 45, 34, 88,194,224,147, 22, 50,208,181, 29,151, 67,207,164,148,100, + 42,195,148,154,229,221, 79, 63,175, 48,144, 50, 22,143,253,239,187,212,185,202, 84, 24,234, 14,206, 46,184,151,231, 76,144,156, +111, 86,156, 44,207,249,155,191,251, 32, 26, 74,120, 7,143,159,124, 13, 13,230, 30, 95, 98, 44,238, 94,124,201,201,211,169,113, +218,219,194,121,226,106,102,244,223, 55, 69, 58,159, 33,201, 18,211,215, 62, 64, 38, 49,147, 10, 35, 21, 2, 65,125,118,114,229, +224, 87,102, 17,130,239,211,164, 17, 66, 96, 98, 4,141, 15,248,224,232,186, 1,161, 37,110,136, 69,128, 33,217, 4, 15,125,212, +186,143, 54,179, 46,233,187, 73, 49,173, 17, 82,136,222,211,202,126,193,148,254, 12,204, 14, 48,159,237,246,237,106,239, 88, 93, + 25,152, 36, 72,220, 36, 56, 82,236, 61, 66,157,138, 83,117, 31,226, 52, 83,229,200,172,136, 92, 0,153,126, 94,221,196, 66, 61, +137,196,190,183,230,113,191, 60, 23,130,109,102, 88, 95,174,118,153, 7,235,109,202,143,111, 99,166,188, 78,146,189,109,106, 16, +158,125, 40,143, 48,236,136,204,204, 42,126,116,235, 58, 47, 85, 11,222,223,174,248, 15,171,250,106,191, 62,178,252, 69, 90, 63, + 8,111, 89,107,131, 45, 52,141,214,156, 9,141, 66,176, 14,240, 61, 45,184, 61,185,134,204, 10,212,157, 59,152,197,156, 60,155, +242,224,226, 4, 31, 44, 7, 74, 51,147,130, 55,203,140,215,202,156,235,210,243,127,220, 59,229,241,227, 75,252,102, 21,237, 71, +135,142, 16,162,197,232, 92,105, 58, 33, 41,164,230,187,121,137, 15,129,133, 20,172,250,150,105, 86, 48, 5, 68, 81, 48, 63,158, +146, 77,178, 56,109,103, 57,189, 8, 92, 95,204,249,246,241,130,163,107, 11,110,220, 62,230, 80,230,220,206,230, 76, 75,197, 71, + 97, 64,161, 80, 38, 71, 57, 17, 31,117,193, 35,165, 68, 74,141, 20, 17,198,150,193, 71,131,154,190,225,209, 89,203,199,189,101, +147,167, 18, 39, 53, 84, 69,242,187, 72,247,136, 73,205,235,120,111,217,100, 56,212, 69,171,209,224, 29,180, 53,161,111, 8,205, +150,208,213,132,174, 37,108,214,209, 82,183,235, 9, 62, 58, 18,122, 51,137,141,234,182,195, 93,158,225,215, 91,124,231,240, 50, + 96,189,160,198, 98,221,192, 53, 1,194, 15, 72, 2, 19,169,240,222,242,189,210,240, 95, 30,207,249,227,107,115,126,255,240, 26, + 63,154, 77, 48,153,225,246,225, 4, 57,203, 57,247,163, 37,179,191, 50,185, 18, 95,241,231,115, 80,189, 75, 13,162, 54, 80,205, +162, 71,196,232, 19, 18,136,182,175,101,206, 91, 70,179, 48, 5, 19, 37,184,165, 37, 51,157,113, 50,116, 92, 87,145, 39,240,211, +174,231, 71, 85, 5,174,231, 49,146,183,164, 35, 87,138, 92,103,244, 67,203, 37,112,182,105,120, 83,122, 62,238,251,120, 95,116, + 45,116,150,207,250,192,237, 66,115,156,103,120, 60,181, 11,252,111,117,178,119, 29,146,124,109,180,181, 22, 10,180,230,237,227, + 25,255,217,203, 71,252,241, 75,215,121,179,202, 56, 62,158,241,137, 75,131,135, 74, 80,150,208, 9,233,245, 47,246,124, 28,239, +117, 41, 63, 47,107,123,118, 74, 55, 89,180,191,158,204,254,158,139,186,214,159, 63,125, 89,130, 25,131,143, 7, 68,236,193,174, + 89,218, 89,200,189,221,122,199,206, 61, 43, 27, 3, 44,146, 65, 71, 72,108,224,111,162,189, 30,187,161, 76,197, 2, 46,147, 3, +157, 75, 83,250, 78,147, 18, 11, 74,240,159,191, 34,189,142,210, 13,207, 87,104,145,159,165,146, 31, 17,166, 21,101,150,161, 3, + 8, 28,165, 20, 40, 37, 17, 66, 80,187,129, 85,239,217,108,146,145,129,212,148, 69,134, 81,130, 64,192, 38, 18,203, 48, 56,206, +234,142,198,245,248, 54,238,234,128,200,176,237, 99, 71,121,124,231, 14,191,250,210,247,185,182,184, 65,169,167,124,252,209,207, +147, 17, 10, 59, 86,117, 72,244,165,253, 6, 73,142,133, 98, 12,198,137, 19, 88, 88, 45,185,127,178,228,254,217, 41, 39, 15, 79, +226, 78,234,120, 17,163,104,151,203,175, 39,217, 16,123, 37, 33,124,149,109, 99,154,212, 71,231, 38, 33,119,180,171, 16,118,202, + 5,183,137,208,187, 72, 70, 64, 87,251,111, 79,111, 29,117,219, 70,205,190, 84, 32, 2, 82, 27, 36,129,206,121, 22,153,166,245, + 46, 22,125,103, 49, 66, 82,183,129, 28,208,184, 0, 0, 32, 0, 73, 68, 65, 84, 29, 74, 73,218,110,192, 14, 46,158,228,113,183, +109, 19,151, 66,166,137,125,244,130,247, 34,153, 14,117, 41,139,222, 62,205,122,127,222,199,124,198,175,254,193, 31,240,248,209, + 41,132,209,168, 35, 53, 46, 35, 41,211,167, 41,126, 84, 85, 36,203,214, 8,223,200,104, 97,156, 16,138,197,225, 34, 58, 33,203, +232,187,142,119,209,202,210,185,200,242, 45, 11,242,105, 78,166, 36, 79, 20,124,120,186,142,205,208,208,197,227, 90, 76,162, 43, + 88,235, 96, 49, 37, 91, 28,242,223,188,114, 27, 76,224,241,147,243,157,213,237,243,166, 49,103,249, 64, 74, 50, 3,255,211,249, +138, 49, 71, 65,216, 1,186, 52,217,203,241,118, 10, 12,237,128,152, 76, 64, 75,164,206,113, 82,161, 51,141, 99,224,123,213,140, +108,122,136,190,113, 13, 89,228, 32, 13,225,244,132,204, 8,230,194, 50,211,138,185, 82,232,204,176,200, 12, 11, 45,168,115,201, +106, 8,248,179, 21, 97, 85, 19,148,228,123,139, 41, 7, 69, 69,169, 20,223, 46, 42,110, 86, 26,229, 6, 30,146,241,170,214,216, + 48,176,177, 29,211,114,130,208,154,220,104,148,212,228, 70, 49, 59,156,112, 45,207,121,245,246,156,233,181, 25,249,180, 32,159, +148, 20, 65, 83, 5,205,141, 34, 99,118, 60,229,177, 5,165, 99, 46,188, 42,203,152, 84, 55,184, 56, 3,100, 2,209,119,209, 94, + 55, 51,136,205,146,176, 94, 33,172, 39,100, 9,194,117, 46,162, 78,211,105, 92,167, 76,138, 88,212,159, 34, 89,122,130,247, 87, + 54,191, 97,252, 60, 90, 11,143,196,196,125, 25, 97, 86,225, 95,190, 78,200,115,124,211,225,189, 37, 88,139,239, 54,177,184,111, + 58,176,158,182,239, 49,161,167, 18,129, 74, 42, 58,231,152, 72,201, 15, 77,206, 43,153,225,118, 94,209, 75, 65,102, 10,114, 93, +208,154,140, 60, 47, 40, 38, 25,143,145, 8,105,226, 42, 88,131, 72,215,200, 87, 21,245,171,207, 33, 93,243,215, 23, 28,127,251, + 22,119,174, 31, 80, 86, 25,235, 85, 23, 81,157,220, 32, 50, 67,233, 3,111,205, 75, 50, 37,105,132,228,193,208,242, 45,157,209, + 59,199, 52, 43,240,174, 39,179, 61, 70, 27, 50, 2, 23, 74,209, 15, 13, 77, 16, 28,232,156,123,219, 45,223,193, 82,235,140, 7, + 77,203,224,147, 4,175,107,193, 14,124,120,190,230, 47,215, 29,127,179,110,248,233,233, 58, 90, 79,143, 6, 89,146, 56, 96,250, +116,255, 25,193,239, 30, 78, 56,204,115,150,110,160,200, 50, 10, 35,121,199, 19,159, 89, 90,199,232,102,157, 37,243, 42, 29,107, +221,151, 33,166, 99,125,250,220,196,110,247,184, 95,251,232,175,129, 27,215,225,160,250,123, 46,234, 38,193, 40,201,200, 42,154, +133,164,105,123, 92, 78,203,189,135,242,104,252, 50, 78, 40, 73,242,136, 74,134, 32, 54,196, 23, 63,116,105,127,145, 10,146,210, + 47, 6,123,127,209,129, 27,108,236, 6,197,222,208,164,216, 53, 14, 36, 86,190, 22,137, 21,191,199,134,119, 99, 76,107,130, 7, + 94,212, 9,111,114,200,252,248, 24,129,101,146, 75,140,242, 56,124,100,247, 58,199,186,115,212, 93,135,107,135,196,244,150,104, + 41, 48,193,209, 15, 29,189,115,212,214,178,234, 44,235,174,195,182,195,213,235, 18,128,200,116,252,119,147,138,215, 94,122,133, +235,213, 13, 76, 86,112, 86, 95,114,247, 23, 31, 69,168,105, 60, 63,251, 27,118,241,108, 23, 57,198,165,250,167, 9,217,161,139, +234, 0, 83,240, 43, 63,250, 46,223,121,229, 14, 55,174, 29,240,240,195,143,190,102, 83,181,231,219,251, 34, 50,144, 49, 28,101, +156,236,199,159,163,203,136, 6,117,155,148, 31,224,162,243,147, 74,190,255, 58,105,228,101,154,114,198,244, 62, 29,139,157,147, + 16,188, 96,176,241,218,148, 2,250,161,103, 8, 34,230,195, 91,199,208, 38, 55, 40,153,174, 1, 45,210, 83, 75,199,130, 45,146, +125,171, 76,174,117,210,199,137, 94,236,241, 8,244, 87, 68, 39, 10,201,226,206,109,206, 46,183,145,165,126, 37,135,244, 79,147, + 46, 71,119,195,177,161,185, 98,197,143,231, 44,178,171, 77,158, 33,179, 18,233,122, 6, 68, 84, 7,116, 67, 52, 83,202, 5, 52, +150,203, 44,231, 51,161, 56,233, 92,132,240, 79,150, 41,174,210,239,216,188,125, 7,139, 5,255,237,183, 95, 99,158, 21,220, 44, + 51,254,234,222,195,167,144,135, 47, 44,238,131,101,216,214,252,188,177,145,183, 98,116,156, 40,148, 70, 12,109, 98, 76,239,184, + 64, 2, 79, 91, 91, 66, 53,165,204, 51,110,149,134,235, 70,211,216,192,129,214, 92, 47,166,228,243, 35, 4, 18,119,182,166,169, + 47, 89, 40,141,180, 45, 3, 1,171, 20, 83,165,232,165, 98,155,231,148,147, 18,189,200,241, 71,135,212, 50, 70,146,102, 58,102, + 40, 84, 69,206, 91,243, 9,139,188, 68, 21, 5, 10, 75, 45, 2, 97,176,116,195, 64,240,130,182, 29,232,188, 34, 47, 37, 7, 70, +114,144, 25,142,139,140,163, 89,137, 73,134, 88, 33, 64,191, 29,152,152,140,151,138, 25, 55,204,140,107,243,130,108, 81,176,206, +114,110, 29, 76,104,136,249,232,178, 40, 17, 14,230, 85, 73, 63, 54,255, 58,106,158, 51, 47,177,247, 79,119, 33, 83,121, 14,121, +137, 88, 76, 17,179, 18,145, 25,196,186,223, 17,211,190, 4,222,126, 86, 97,112, 85,212,111, 93, 39, 28,205,241, 66, 17,156,199, + 55,245, 21,231, 50, 12,150,208,212,132,102, 11,203,134,165,135,163, 66, 17, 6,143, 15,158,204,121,126,115, 86,114, 36, 53,181, + 15, 28, 20, 83,164, 50,212, 74,161, 85, 70, 11,148,153, 65,105,201,105,153, 33,242, 28, 81, 86, 8,165, 17, 33, 32,148, 68,154, +104,188, 35,210,179, 90,228, 25, 28, 94, 67, 28, 30,198, 93,121,176,136, 30, 56,152,160, 94,123,137, 95,125,233, 22, 71, 85,197, +181,233,148, 70, 59, 14,231, 11,230,147,130, 44,203, 89, 43,197,171,153,228,251,210, 80,227,185, 99, 42, 30, 13, 3,179,204,240, +184,221,178,200, 12, 66, 74,222, 93,111,249,118,150, 97,188, 71, 8, 77,214,111,249,133,115,188,157, 73, 54, 66,241,112,217,240, +201, 42, 33,110,193,238,106, 66,215,195,182, 38,172,183, 81, 10,218, 15,145, 41,223,182,123,208,119, 68,157, 95,171, 12,223,153, +149, 9, 84,150, 72, 41,233,172,227, 97,235,168,131,139,207,173, 34,169, 99, 50,179,147, 70,243, 21, 67,224, 72, 10, 31,229,129, +227,122,249,139,212,220,186,128,195, 41, 8,241,247, 92,212, 71, 54,251,184,223, 20, 62,194, 43, 90,164,154, 62,230, 7,167, 68, +169, 50, 89,116,138, 84,192, 77,250,247,109,138,229,244,105, 18, 26, 89,194,163,166,221,168,111, 78, 78,208,169, 0,122,145, 18, +189,236,142,132, 39,210, 62, 83,134,221, 90, 64,239, 5,198,104,113, 21,121,249,149,228,184,253,143,163,107, 48,201, 40,101, 52, + 7,109,236,144, 40, 4, 1, 31, 60,203,166,165,223,244,187, 59, 50,215, 84, 74,199, 7,146,115, 52,189,163,117,158, 85,211, 18, +154,126, 23, 28, 50, 58,182,105, 73,118,120,196, 31,253,198,111,115,231,224,101,178,194,112,114,121,198,121,179,226,241,123,239, +236, 38,226, 81, 46, 50,178,213, 3, 47,198, 70,215,121,100,240,191,114,131, 31,220,122,153, 42,203, 89,148,115,222,175,215,209, + 54,242,235, 20,246,175,115,220,198,130, 53,122,152,143,143,174,190,141,197,122,146,180,225, 58,237,180,188,125, 26, 21, 24, 9, +118, 42,217,253,250, 72, 20, 11,214, 33,100,160, 15,150, 66, 43, 86,109, 79,102, 76, 12,246,176, 22,215,251, 24, 38,161, 50, 66, +155,100,151,232,221, 42,105, 36,122,250, 17,253, 48,209,163,160,208,241, 97,161,242, 29, 34,245,101,197,221, 90,206,238, 61,129, +119,207, 97, 49, 58,239,137,207, 91, 75,238,239,214,173,221, 37, 18, 38,201, 17, 93, 3,205,128,152, 79,176, 2,110,102,138,181, +141, 54,161, 46, 36,249, 93,189,137,247, 99,158, 36, 57, 82, 70,116,103,211,166,169, 48,177,130,187, 20,106,227, 5, 47,189,114, +204,180,156,242,225,106,205,167,203, 21, 44, 87, 95,205, 98, 30,108,132,220, 77,129, 40,242,184, 22, 40,242,132,102,116, 49, 20, + 70,238, 75,191, 44, 62, 47,184, 54,157,240,250,172,224,229, 44,231,102,102,232,252,192, 29, 85, 80,133, 12,177,109,241,151,231, +208,111,232,130, 37,147,224,188,199, 7,193, 96, 50,106, 33,104, 76,198,153,214,132,108,194, 26,137,168,102, 76,102, 83,206,236, + 64, 40, 74,178,190,229, 90, 85, 33,165, 96, 27, 2,151,117,244, 75,183, 33, 71, 40,133,119, 29, 79,150, 23,116,155,158,118,109, + 41,243,140, 10,193,225,180,100, 90,154,120, 41, 57, 79,115, 57,208, 39,120, 59,211,154,227,233,148,111,205,143,249,222,244, 26, +111, 47,110,113,123,122,196,203,211, 9, 55,143, 22,212,194, 33, 39, 5,181,208,152, 98,130,247,154,144, 25,130, 80, 88,223, 69, + 47,129,179, 39,136,218, 71,134,121, 89,198, 63,197, 4, 81, 76,224,232, 0,145,149, 8, 55,230, 99, 60, 77, 76, 11, 95, 81,224, +131, 29,160, 19,132,186, 33,180, 29,193, 8,194, 96,241,251,255,214,185,180,199,135,199,219, 1, 81, 72,214,157,197,122,199,117, + 41,185,157,229, 40, 41,144, 74,210, 74,205, 35, 4,191,112, 30,167, 51,156, 27,168,138, 9,159,166,103,163, 40, 51,196,193, 12, + 49,155, 35,103, 51,132, 48, 8, 93, 32,130, 64, 28, 28,114,227,135,111,242,195,111,191,206,173,227, 35,166,243, 9,231, 33, 54, +201,226,240,136,183, 95,191,205,141,197, 97, 92, 55, 6,207,171,199,175, 48,175, 38,124,251,198,171, 28, 22, 57, 88,248,171, 65, +114,205,120,142,100, 70, 23, 44,183,164,226,103, 77,199,247,170, 41, 63, 91,109,121,105, 82,112, 83,192,133,247, 12,118, 64, 41, +197,165,115,188, 42,163, 64,227,227,245,134, 62, 56, 30,214, 93,146,181, 61,171,170,242, 59, 87,188,174,139,205,109,215,239, 86, + 72, 67, 68,139,151, 65,241,195, 42, 39,215,138, 42,203,113,222, 49, 72,201,159,159,175,119, 3,196, 56,200,142,133, 57,168,136, +114,250, 23,244,129,255,130, 77,221,231,184,196,166, 0,165,255,158,139,186, 79,187, 7, 35,159,182,181, 30, 31,200, 97, 44, 38, +137,108, 70, 72,172,217,148,132, 21,146,214, 55, 31, 37, 72,201,163, 93,238, 89, 60, 40, 25,117,192,214,127,243,215, 40, 69,146, +246,164,215,123,165,139, 78,144,188, 20,207,236,214,147,212,194, 39, 41,210,184, 95,121,145,226,100, 52, 76,231, 96, 52,131, 29, +144, 50, 32, 69,136,196,101, 96,221, 15,212,235, 4,187, 19,181,190,121,110,168,180,185, 90, 65,215,118,136,208,124,151,136, 27, + 33,196,156,238,224, 18,151, 34,227, 59,175,191,196,175,189,241, 54,147, 89, 69, 8,158,119, 31,188,199,207,238,222,133,243, 39, +187, 11,105, 95,126, 38,120,177,105,217,196, 48, 23,166, 5, 78, 6,190,123,253, 22,214, 7, 54,125,203,221,119,247, 80,128, 23, + 66, 44,138,221,190,248,235,156,175, 47, 82, 25, 76,138,104,211,234,101,132,189,117,146,149,153, 84, 68, 68,216,237,240,243,100, +114, 52,158, 51, 23, 98,212,169,131,174, 27, 48, 90,208, 44,123,156,243,132,173, 35,116, 22,134, 16,235,168,117, 32, 20, 82,137, +189,135,168,220,145,211,228, 56,177, 39,179,152,178,140,138,132, 66,197,115, 83,232, 47, 71,116, 92, 31, 77, 54,198, 68,188,193, +126,254,186,218,127,239, 35, 55,100, 76,160,179,195, 85, 30,179,235, 6,244,172, 64,227, 57,144,146,137,136,219, 44,231,146, 52, +104,179,141,231, 61,159,236,156,237,182,203,157, 60,103, 24,118, 33, 60,131,227,195,162,224, 93,239,249,192, 19,207,243,147,179, +231,247,243, 35, 87,163, 72,108,252, 46,238, 67, 69, 89,196,251,187,200,185, 94, 78,168,187, 14, 26, 27, 11,187,181,209, 99,221, +228,220, 58,170,120,115, 50,225,102,150, 51, 85, 6, 21, 2, 83,103, 57, 26, 60,102, 93, 35,215,167, 8, 27, 87, 35, 82, 27,178, + 32, 24,194, 64,131,224, 66, 73, 30, 35,233,148,166,113,130,144, 77,184, 83, 78,120,189,202,249,193,180,226,117,147, 97,114,195, + 89, 15,245, 16,168, 7, 65,161, 20, 86, 43, 50,173,169, 10,197,208,193,208,119,244,237,154,147,199, 15,232, 58,205,205,249,148, +210, 9,180, 21,168, 32,217,110, 7,150,117,207,227,229, 22,213,247, 76, 38, 57, 89,166, 41, 76,198,225,108,198,245, 98,194,171, +211, 67,238, 84,215, 56,150,134,239, 47, 14,121,105,162, 17, 69, 96, 58,201,153,148, 57, 90, 10, 90, 23,240, 77, 71,240, 3,162, +239,162, 1, 80,215, 33, 76,116,159, 19,229, 12, 81, 46,248,141,107, 55,249,151, 63,250, 33,223,126,249, 58,239, 24, 25, 73,139, + 93,247, 66,210,177,144, 26,172, 16, 2, 65,105, 66,166, 8, 8, 66,215,125,241,132,111,123,196, 80,179, 94, 15,108, 58,207,105, +235,121,181,148, 28,101,146,153,202, 49, 82,113,191,239,248,133,247, 92, 4,143, 80, 10,148,161, 38, 48, 17,130, 19, 25,101, 98, + 2,144,147, 18, 81,100,200,249, 28, 49,169, 16, 55, 14,248,225, 27,119,248,222,173, 55,184,113,237, 58,147, 44, 35, 11,129, 91, +135, 11,178,163, 57,183,110, 94, 99,154, 23,148, 58, 71, 74,193,180,156,178,220,118, 84,197,148, 50, 43,200,179,130,195,106,194, +237,208,242,208,122,190,165, 36,150, 64,111,114, 50,103, 57,245,142, 55, 51, 67,239, 44,103, 66,112, 32, 4,154,192, 67,215,115, + 40, 4,114,136,100,193, 83, 23,184,108, 90,122,225,233,221,158, 58,231,185,250,241, 84,160,125, 31, 27, 96,219, 71,243,169,174, +101, 86, 25,110,107,195,129, 81,172,186,158,255,245,209,146,173, 15, 49,248, 75,135,157, 18, 43,164,117,102,219,197, 26,242,203, +186,208,233, 68,106, 14, 33,222,207,167,103,255, 17,136,114,126, 63,123, 60, 65,134,102,124,144, 39, 28,123,100, 62,251, 68, 38, + 24,119,137,163,190,153,176,155,222, 93,122, 88, 62, 37,233, 73,147,186,148,223,236, 0, 61,245,111,178,103, 96,117, 34,236, 46, +237, 83, 43,141,171, 85,194, 8,195,191, 72, 65,212, 26, 38, 11, 40, 13, 65, 8,130,242,104, 5,153, 22, 40, 41,168,123,199,170, +235, 9,125,127,245, 59,100, 97, 80, 82, 16,132,167,183,158, 85, 55,208,212,195, 46,199,119,132,164, 67, 10,250, 80, 2, 53,159, +243,198,241, 77,174, 29,220, 34, 4,193,166,105,120,231,238, 71, 52,167,167,176,185,248,188, 25,207,215,153,150, 85, 6, 7,211, + 36,225, 16, 92,218,134,123, 23, 43, 62, 56, 61,133,135, 15, 95, 60,206, 48,207,224,141,215,162, 45,233,122,245,203,219, 43, 14, +233,196,140, 97, 61, 33, 57, 17,102, 69,146,156,249, 61,237,149,227,191,251, 47,254,132,119, 62,124,111,215,216,180,177,112, 49, +120, 92,159, 44, 7, 91, 27,121, 31, 46, 21,227,100,156,147,229,121,204, 71, 54,130, 76, 41,156, 78, 89,230, 54, 21, 89, 53,218, + 13,167, 61,146, 73,196, 51,157,254,159, 76,127,249, 62, 77,126,205,107,247, 89,181,193,248, 61,231,184,182,168,104, 5, 76, 76, +140,163, 60,206, 13, 75,107,227, 78,176,107,227,245,124,235, 40, 26,240, 76,139,120, 12, 46,151, 79,253,140,248, 51,163,139,220, +144,171,157, 2,101,185,218,189,143,162,136,205, 94, 8, 87,228, 30, 49, 41,193,170, 8, 57,146,248, 47, 89,148,120,253,201,173, +107,252,243, 59,175,160, 75,193, 71,103, 27, 68,103,175,210,206,100, 83,115,237,248,144,239, 46, 14,120,189,152,115, 88, 76, 16, + 1, 78,218, 53,223,234, 59,140,247,104, 85,161,164,192,100,101,162,127, 72,134,161,227,177,119, 60,112,150, 54, 43, 88, 9, 65, + 71, 70,149,229,188, 49,159,114,172, 50, 94, 46, 42, 50, 4, 51,101,216,120, 73, 39, 36, 65,105, 50,105,144,218,224,133, 36, 4, + 77,111,123,108,144,108,182, 91,234,118,205,102,125,194,186, 85,124,171,172, 88, 40,133,107, 45,125,235, 56,185,220,242,233,229, +138, 96, 7,242, 54, 34, 61, 70, 25,178, 50, 39, 43, 10,202,105,197, 60,203,120,249,232,136, 59,135,135,188, 94, 30, 50, 65, 71, + 23, 99,233, 34,179,190,208,228, 89,129, 20, 26, 39,100, 84,177,116, 45, 98,187, 65, 14, 30,153, 11,228,228,128,127,245,157,215, +248,193,237,235,220,185,126, 19, 47,167,124, 24,122,132, 19,132,126,136, 59,250, 23,213, 65,103, 89, 66,151, 92, 50,108,250,146, + 41,113,232,193, 91, 68,231,120,119, 59,240, 23,235,154,135,190,229,255,220,212,252,101,215,115,174, 2,165, 52,132,224, 24,146, +162,211, 73, 21, 27,170, 16, 16, 90, 33,148, 65,228, 19,254,233,173, 91,252,218,209, 33,191,115,243, 21,230,243,235, 40,147, 99, +116,142, 50, 69,140,100,208,154,219,243,155,220, 94,220,102,158, 31,227, 80,180,174,229,211, 7, 15, 80, 74, 82,149, 21, 85, 57, +193,249,129,213,114,137, 36, 80,119, 61,127,218, 90,126,171,170,240,125,203,177,214, 84, 18, 26,231, 88, 3,199,222,225,181,193, +121,207,204,246,148, 82,208, 58,199,165,181,252,187,117,203,161, 18, 60,236, 98, 99, 31, 7,198,231, 12, 25, 87,249,230,123,126, + 18,227, 80, 48, 88,238,157,108,248,201,233, 37,255,215,163, 53,127,181,220,178, 29,149, 38, 34,165, 20,250,116,188,125, 72,146, +216, 33, 30, 91, 59,252,146,156, 53,249, 52, 68,230,253,127, 68, 73,155,209, 41,236, 35,153,111, 8,157, 38,120,187,131, 18, 67, +122,248,150, 89, 44,224,154, 8, 99,106,177,131,227,123,187,219,245,137, 4,225,167,137, 22,145,164, 61,223, 4,138,151, 9,146, +181,169, 80,219, 61, 98,220,216, 44, 8,246, 72,116,126,247,189,225, 5, 79,140,153,192,225, 44,217, 9, 10,178, 66, 82, 40, 21, +221, 61,149, 98, 61,244, 49,123,119,220,215,148, 81,183, 62,146,209,155,193, 97,183, 93,156,156,218, 1,100, 96,126,227, 58, 85, + 85, 81, 78, 42,154,166, 7,161,248,157,239,255, 42, 55,103, 55, 16, 66,112,182, 60,225,238,233,103,124,116,242, 24,206,207, 99, + 68,226, 47,213,164,165, 5,104, 22,253,214,235,147, 11,186,135, 39,112,126, 18,139,196,139,126, 76,167,188,253,107,111,115,243, +250, 81, 36,220,125,217,195,229, 69, 63,198,224, 31,159,252,181, 81,177,171, 86, 50,133,148, 36,156,215, 57,222,249,249,207,226, +223,155, 4,129,181,195, 78,142,230,210, 57, 21,255, 15,117,111,250, 35, 89,118,158,249,253,206,118,151,184,177,229, 86,107,119, + 87, 55,155,139, 72,137,212, 72, 20,103,145, 53,163, 17,168, 17, 96, 12,198, 30,251,139, 96,192,128,255, 62,195,254,102,192, 48, + 96,120,145,101, 91, 50, 70,163,161, 68,114,212,100, 55,123,173, 45,179,114,137,140,237,110,103,241,135,115,110, 70, 84,117,117, +119,117,147, 90, 38,129, 98,118, 49,179,170, 34,111,220,123,222,247,125,222,103, 73, 57,239,131, 97,142,143, 7,162,243,129,188, + 84, 81,169, 64, 64, 34, 8,131, 12,205, 36, 41,142, 86, 59,181,135,227,198, 75, 61,222, 75,238,203, 35, 20,159,215,169,251,189, +142,253, 57,239, 6,137,205, 12,227, 60,167,150, 2,147, 25,106,239,169,189,135, 85, 19, 73,115, 58,135,215,111,241,159,223,123, +141,111,207,167,188,126, 80,241,193,147,179,151, 55, 29, 54, 68,231,185,144,200,135,117, 31, 61, 2, 32, 22,116, 17, 67, 87, 34, + 7, 69, 71, 54,126,150, 18,208,244,224,243, 31,184, 51, 27,241,135, 7, 71,220, 45, 39, 4, 2,127,190, 88, 35,156, 69,244,254, +166,176, 47,125,206,239,220, 57,228,173,234,144,214, 91, 50,101,248,184,219, 50,221, 44, 56,148, 6, 83, 29, 32,178, 28,101, 74, + 68,240,209, 78,217,119, 92,246, 13,103, 66,178, 82,138,214, 11,178,172, 98, 58, 82,188,150, 23,168,228, 10,168,165, 36,151, 26, +167, 97,235,193, 9,133, 87, 10, 45, 53, 90,105,106, 1, 94, 42,154, 54,186,168, 29,231,158,220,183,252,245,123,239, 32,123,201, +108,213, 83, 53,158,118,189,101,211,119, 60,219,110,120,180,188, 98,185, 92, 68, 67, 28,101, 80, 66, 33,130, 64, 26, 69, 86,104, +178,105, 78, 81, 21, 84, 85,197,109, 89,225, 59,203,162,107,176, 58, 68,208,111,100,120,179,200,120, 59, 51,188, 33, 21, 89, 80, + 92,213, 22,113,189, 68,108, 27,196, 72,240,181,233,156, 7, 7, 51, 46,130,224, 73,175,120, 71,149, 80, 8, 68,166, 96,211,165, + 52,196, 47, 48,125,113,142,144,212, 49,248,254, 51,155, 75,241,194,159, 1, 31,221, 2,107,203, 71,181,229, 73,211,112, 46, 4, +143, 58,203, 60, 83, 49,167, 34, 68,148,112,221, 89, 90, 60, 43,169, 17, 34, 48,201, 70,252,119, 39,199,252,225,241, 45, 30, 84, + 51,190, 61, 63, 98,146,151,244,121,201, 38, 56,182,157,197, 57,139, 20,154, 50, 43,169,202, 41,121,150,145,203, 2,219, 11,206, +182, 23,156, 93,175, 8,120,156,235,232,108,203,163,171, 83,158, 58,207, 47,218,142, 63, 30,197,179,123,105,123, 22, 82, 82, 32, + 24, 73, 65,219,174,209,102,196, 7,125,199, 93, 41, 49, 82,145,185,142, 71,157,101,217, 91, 78, 52, 92, 89,203,114,157,114, 71, +218,176, 67,200, 62, 85, 31,110,224, 91,158, 39, 24,201,157,217, 88,219, 69,201,230,114,117,131,162,208, 37,107,217, 54, 73, 95, +187, 62,170, 71,134, 44,138, 95,202,168, 70,126, 90, 66, 32,229,223, 97, 81,247,123,108, 93, 37,227,126,130,116,232,117,123,174, + 62, 34, 77, 2, 34,121,180, 43, 34,163, 87, 16,139,134, 25,166,113,187,139, 51, 20,122, 87,100,135, 98,255,121, 83,187,214,145, +217,219,239,193,160, 74, 39,195,155,129,204, 32,119, 6, 52,214,239, 14,207,225,226,245, 9,176, 10,175, 56,229,230, 25,156, 28, + 66,158, 49, 62,152, 80,100,209,226,181, 42, 36, 2,201,178,177,108, 59, 75,104,218,248, 58, 74,131, 84, 34,134,215,117, 30,215, +116,241,107,219,148,205,155, 73,238,223, 61,230, 7, 95,255, 22,223,121,253,215, 56, 25, 31,240,201,234, 18,114,195,247,223,248, +117, 38,147, 25, 62, 4,254,242,253,159,240,179,139,211, 24,207,185,185,248,252, 9,241, 85, 63,156,139,135,249,106, 27,243,203, +219,250,203,255,189,109,203,217,249,130,179, 15, 63,220,237,102, 7,200,118,248,245,101,110,120,157,228, 48, 74,198, 9, 89,155, +221,125,228, 19, 39,162, 31, 82,225,162,196, 45,178,197,251,136, 16,101, 41, 12, 64, 37,219,215, 60, 41, 30,100, 22,223,240,116, + 64, 75, 5,165, 81,104, 17, 15, 9,233, 61, 58,151,209, 38, 26,199, 55,239, 30,113, 84,141,152,150, 5,139,171,117, 82, 88,232, + 72,152, 51,121, 68, 84,148,142,247,244,171,170, 37, 62,239,135, 30,174,213, 96,154,180, 95,216,189,199, 33,233,139, 2,242,140, +145,148,156,117,201, 53, 41, 56, 88,110,160,204,248,157, 7,175,113, 50, 63,192, 5,131, 50, 57,239,182, 93,124, 79,110,226, 30, +253,110,106, 11, 50, 94,155,225, 89, 27,140,117,124, 34,120,109,154,100,222,148,197,180, 58,147,131,119,136, 33,186,182,183,172, +149,228, 86,161,200, 8,252, 79,231,151,156, 91,159,248, 42,137, 45,237, 61, 66,103,124,235,176,226,160,172, 88, 7,104, 9, 92, + 57,203,127,191,216,240, 70,179,226,100,122,128, 30, 31, 35,139, 34,174,158,172,199,167,230,202,183, 53, 31,116,158, 54,203, 49, + 90,241,141,106,138,240,129,220,104,132,210, 88, 23, 48, 66,210, 17,184, 10, 6, 39, 21,178, 28,225,149,194,235,156,177, 16,100, + 38, 39,235, 58,126, 99, 90,240, 71,119,238,114, 32, 51, 58,123,205,255,245, 31,126,196, 7,155, 71,228,219,154,159,126,244, 14, + 31, 62,253,128,179,235,103,116,155, 11, 22,155, 5, 15, 55, 11,100,221, 97,156, 38, 56,143,176, 30, 89,104,204, 40, 67, 25,137, +206,115,148, 84,204,124,193,233,118,197,185,107, 57, 35, 48,207, 51,178, 76,241, 96, 58,226,126, 53,226,190,209,124, 43,207, 17, +185,100,237,122,220,249,134,211,126, 69,219,195,147,181,227,223,183,158,165, 8,145, 22, 51,157, 68, 45,183,202,193, 54, 81, 7, +207,231,152,189,120,183,123,223, 94,216,197,139,207, 42,236,131, 9, 23, 62,173,161,122, 66, 99,161,235,121,132,100,166, 32, 51, + 57,155,174,197, 57, 71,211,119,180,193,225,133,230,247, 38, 5,223, 59, 56, 97,150, 77, 56,172, 42, 84,158,161, 76,198,227,198, +114,177,181, 44, 90,203,233,118,133,235, 91,116,102,208, 50,163,154,140,241,190, 71,208,211,217,154, 95, 60, 60,229,236,236, 25, + 31, 61, 61,229,131,197, 5,151,171, 53,171,229, 18,164,224,245,170,160,238,123,198, 74, 49, 15,129,109,223,114,142,224,237,108, +196,101,191,229, 45,101, 88,249, 14,233, 28,109, 8,156, 59,199,129,243, 60,241,150, 15,150,253,142,235, 37,211,202,243,101,220, + 34,207,206,171,100,127, 98,255,204, 68,183,221,253, 78,219, 69,184,125,155, 36,157,182,219, 17,223,126,169, 41,253,133, 55, 42, +229,151,252,221,154,207,228,217,142,173, 43,197,110,103,103,210,158,177,200,192, 53,113,202,178, 54, 30,132, 50,193,121,106,216, + 75, 36,150,175, 74,127, 70,101,187, 67, 71,238,177, 10, 5,159,157,252,117,251, 24,249,205,251,132,203,237,110,170,200,210, 82, + 91,234, 61, 50,130,223,251,123,194,243, 58,105,239,119, 94,245, 95,244,230,140,138,184, 71, 31,149,140,166, 57,183,198, 99, 10, +163, 56, 26, 85,180,214, 82, 91,199,214,118,216,117, 29,247, 44, 41, 61, 44,248,128,107,211,110,211,246,137,161, 9,148,134,124, + 62,226, 31,189,118,143,215,239,189,133,145,146, 50,203,145,162, 67, 88,203,237,249, 45, 76,150,113,189, 93,242,108,241,140,203, +139, 11,184,184,188, 49,254,248,149, 52,104,131, 68,234,151,185, 49,235,122,183, 95, 54,217, 78,226,168, 72, 83,246,151,137,109, + 76,255, 35,242,157, 68,207,249, 8, 43,223,164,240,165,215, 91,148, 17,110,119,110, 71,208,188, 33,178,164,245, 80,144,100,153, + 33,215, 2,231, 2,153,145, 76, 75,131,150,144, 41, 25,169, 28, 46,114, 48,148, 84,104,163, 56,153,142, 24,229, 89,218,218, 4, +174,101,148, 32,222,232,141, 85,178,132,117, 3, 89,174,255,229,154, 44,253, 66, 28,227,205,126, 95,238, 8,133, 2, 92,150,211, + 21,134,149,216, 35, 68,182, 29,172, 59,232,106, 54,243, 41, 15,230, 7,244, 66,243,176,119,156, 94, 95,198,162,126,147, 54,184, +135,124,245, 54, 50,179,197, 96, 24,149, 44,102,125,186, 71,125,159,136,148,101,210,181,167,233, 71,233, 88,216,131,135,198,243, + 55,215, 43,254,116,181,225,188,141,230, 83, 34,211,145, 4, 38, 13,194, 11,132,107,232, 71, 5,179, 92,227,133,230,202,117, 60, + 10,150,139,160,248, 81,179,229,119, 21,148,147, 99,100,102, 16, 38,139, 33,122, 33,160,144, 76, 37, 84,219, 21, 63,110,122,114, +163, 56,214,138,121, 89,161,144,212, 93,135,134,104,182,162, 12,143, 28, 8, 83, 80,100, 5, 90,103, 84, 74, 50, 46,114, 68,239, +184,115, 56,229,247, 78, 38, 28,228, 25,101,166,249, 96,113,205,105,219,115,118,126,205, 95,124,244, 33, 63,189,124,198,207,207, + 46,249,248,234,138,179,229,138,203,118,203,217,234,138,109,232,184,232, 91, 46,154,104,246, 82,216, 64, 38, 21,102, 84,196, 61, +179, 3,183,233,232,154,150, 95,176,101, 33, 12, 22,201, 73,149, 83, 32,153, 20, 5,135,227, 18, 93, 26, 78,170,146,215, 76,206, +215, 53,136,179, 75,254,253,147, 15,249,171,237,138,235,205, 21, 2, 11,121, 92, 77, 48,169, 96, 62, 65,204,198,160, 50, 68,219, + 70, 15,246,207,146,142,125, 17,199,249, 37,223, 27,246,206,189,208,118,177, 72,217, 30, 54, 61, 79,172,103,172, 37,109,239,233, +131,163,238,123, 86,125,207, 33,142, 63, 56, 60,230,181,241,148,204,148,140,198, 37, 58,203,112, 82, 32,180,228,195, 77,207,143, +218, 53, 87,118,203,117,191,229,114,187, 38, 19,208,118, 91,156,237,104,251,142, 39,139, 39, 92,219, 14,154, 14, 33,210,106,162, +239, 99,242,157,209,124,212, 90,164, 12,220,149,130,165,235,201,181,225,208,182, 44,133, 98, 34, 21,215, 62,122,250,139,224,185, +114,142, 59,222,243, 39,215, 45, 7, 26,122, 47,169,109,226,100,249,180, 86,250,172,116,185, 97, 72,183,126,247,249,239,235, 99, + 88, 27, 14, 2,162,193,217,206,249,191,227,162, 62, 24,104,244,253,206,175,122,112,146, 51, 58,118, 51,131, 77,222,126,183, 36, +136, 95,211, 42, 65,248, 41,188,162,200,246, 44, 51,253,243, 82, 1, 62,163,168,251,152,228, 21,156,140,118,140,222,199,191,167, + 31, 86,254,233,224, 17,201,128,134, 61, 4, 96,136,105,117,169,200,191,202, 46,218, 20,145, 64, 85,149,200,137,225, 86, 85, 81, + 24,195, 56,203,144, 82,243,172,107, 88,118, 45,182,238, 99,195,162,146, 65, 65, 19,237, 94,177,125,212, 9, 7, 17,247,186,121, + 70, 62, 29,241,181,163,138,113, 14, 19, 51,195,152,156,109,215,240,244,226, 49,189,107, 88,219,154,166,107,120,178, 56,229,221, +199,143,225,226, 26, 86,215,188,154, 43,207,223,195,135,201,226,197, 31, 92,252,130,216, 67, 79,120,181,215, 61,220, 55,194,239, +252,152,179, 61, 61,119,232,119,169, 78,141,221,165,244, 14,193, 65, 38,221, 75, 74,147,103,134,224, 97,148, 9,148, 86,204, 74, + 69, 33, 5,133, 18,228, 82, 96,132, 68,163, 32,147,204,180, 74, 64,128, 96,219, 59,102,163, 2, 45, 53, 14,207,249,182,222,147, + 72, 14,205,159, 76,209,173,110, 87,244,190, 74, 97,191, 33,200, 13,230, 20, 47, 64,131, 3, 67,222, 19,195, 93, 70, 21,179, 92, +115,146, 25,142,140,100,172, 36,203,166,131,166,161, 21,138,119,140,230, 61,107, 57,181,233,217,124,124,158,164,129,233,240, 24, + 60,235,125,202,146,158,150,252,240,100,204,239,223,154,114,160, 37, 31,158, 47,146, 45,175,142,200,196,180, 74,242,181,180,186, +112,209,180, 67,164,160, 24,172, 71, 92, 47,111,210, 15,133,137, 49,203, 98, 92, 32,166, 99,126,231,193, 9,183, 71, 25,139,174, +231,137,116, 44,165,226, 39,189, 64, 74,141,210,134,255,251,163,143,249, 23,147, 17,249,193, 45,164,142, 18, 42, 57,174, 40,231, + 39,204,103,119, 56,174,123,178,245, 21, 63,115,150,131,204, 48, 86, 10,107, 91, 14,242, 2,107,123,122, 2, 63,175, 29, 62,139, +241,197,149,210, 76,181,230,246,184,160, 80,146,249,108,132,237, 61,211, 92,226, 67,224, 97,221,242,151, 23, 43, 30,175,175, 9, + 77,135, 23, 14, 47, 20, 30, 23, 21, 41,189, 99,213, 56, 86,235,150, 79,186,154, 62,212,124,236,106, 46,186,134,106,219, 50,237, + 37, 70,154,184, 98, 93,118,116,117, 67,107,107, 62,234,106,158,224,185, 16,146, 34, 8,166,153, 70, 74,137,202,115, 84,102,248, +218,236,128,223, 60,152,241,253,105,206,183, 11,205,237,109,224,240,226, 2,125,254,140,139,118,133, 16, 81, 94, 41, 66,218, 93, +171, 12,113,114,136,152,143,227,127,183,105,165,241, 18, 25,220, 23, 21,249, 87,106, 2, 6, 19,166, 85,195,169,243,180, 93, 79, + 16,129,117, 31,232,149, 64, 11,201,137, 54,124,109,122,200,253,249,156, 70, 40,116,174,104, 5,252,108,181,225,199,219,134,143, +124, 75,103,107,106,215,177,236, 90, 62, 90, 94,162,108, 71,223, 53, 92,110, 22,156,119, 75,182, 77,207, 15, 15, 11,254,245,173, + 25,111,143, 11,190, 89,230,252,141, 16, 8,169,112, 82,178,232, 35,154,154, 57,203,182,239, 88, 56, 88,244, 45,207,108,207,200, +246,156,123,207, 68, 4, 14, 2,252,162,105,185, 43, 61,255,174,129,237,118,203,161,128,186,237, 56,174, 12,219,198,239,101,125, +188,112,142,251,189, 28,145, 47,115,148,234, 87,248,126,163,227, 89, 52,248, 94,188,146, 65, 77,122,222,111, 38,245, 0,216,175, + 80,212,245, 47, 89, 27, 76,138,191,188,129, 29,251, 29, 12,127,227, 54, 23, 82,241,214, 59,118,122,110,146, 78,120,200,149, 78, + 50,180,129,128,244, 98, 17,255, 60,121,150,115,209, 65,104,112,230, 18,121,148,170,237,155,202,144,246,134, 93,251, 60,153,236, +203, 16,203, 70, 5, 84, 21, 84, 57, 24,137,201, 53, 85,158, 51, 54, 25, 66, 11,214,117,203, 85,211, 97,155, 54,178, 41,195,208, +121,185, 8, 1,119,137,205,158,155, 36,195,202, 65, 73,116,166,152,100,134, 60,211, 52,205,150,197,114,193, 71,103, 79,176,174, + 67, 8,184, 88,109,248,217,147, 71,156, 63, 57,133,203, 37,244,219, 29,145,236, 31, 82, 33, 47,146, 13,170,200, 98,177,205, 20, +200, 50,193,182, 73,219,248,101, 94,247,224,131,174,138,228, 95,160,118, 17,141,131,156,100, 40,242, 38, 21,212, 97, 15, 63, 50, +241,251,149, 64, 43,193,212, 8, 42,149, 33, 9,204,198, 25, 66,122, 74, 21,139, 91,145,201,184, 30, 39,185,134, 9,129, 73,178, +178, 69,219,210, 58,203,229,166,193, 5,145,146,221, 82,113,221,151,181, 25, 21,119,218,125, 98,206,251, 47,121, 74, 12, 67,250, + 16, 8,179, 31, 60, 47,146, 63, 4, 18, 38, 5,234, 96,134,204,115,238, 20,154, 91,198, 80, 74, 73, 22, 60,183,115,193,217,114, + 19, 97,248,241, 56,105,252,137,197, 60,132,104, 75,122,243,204,236,189, 70, 17,120,112,116,192, 15,142,167,204,202, 9,179, 66, +243, 23,103, 87, 73,254,169, 96, 52,142,133,125,248,126,151,184, 24, 38,143,217,226,164,233,189,109,210,212, 21, 37, 62, 98,154, + 67, 85,240, 71,119,142,248, 23,119,238,113,187, 40,120, 88,111,249,179,101,207, 83,149, 35, 70,211,104,189,106, 50,164,239,248, + 53, 60,135, 71,183, 35,187,186,202, 81,111,156,160,102, 19,244,108, 74,222, 86, 28,109, 55,124,188,120,204, 89,176,204,148, 2, +161,216,134, 8, 13, 95,245, 13, 31,136,140, 99,147,113,104,114,110, 27,197,173,169, 97,172, 21,147,145, 36,235, 99,227,116,186, +234,184,240,150,159,159,173,184,176, 61,171,224,113,117,139, 95,172,241, 70,224, 90,139,115, 30,111, 50,156,119, 56, 99,160,233, +121,124,118, 69,239, 44, 43,191,229,188, 89,112,220, 88,166,174, 32,116, 61,206,123,174,175,174,249, 15,235, 83,126,102,151,188, +211,247,108, 69,160, 35,250,140, 87,153,162, 9,146, 81,158,241, 86, 53,231,107,211, 3,166, 38,103, 20,122,198,202, 35,145, 28, + 1,191,209,116, 60,126,244, 9,117,223, 32, 66,159, 72,105, 50,106,193,205, 8, 49,159, 34,111, 31, 32,110,159, 32,242, 2,177, +181, 81, 93,241,183, 49, 53,186, 14,177,217,208,110, 91, 86, 1,186,190,231,245,195, 3,102,229,132, 34,203,152, 8,137, 81, 5, +211, 44, 99, 35, 5, 15, 59,199, 47, 22, 91,254,207,237, 50, 78,200, 46,113,165, 68, 68, 1, 47,186, 45,143,234,107, 22,237,150, +117,211,243, 95, 77,114,254,205,241, 9, 83,173,249,222,108,134, 54,130,183, 10,205,143, 18,114,107,149,228, 72, 8, 86, 62,240, +115, 39,200, 51,248,155, 62,240,166,129,255,181,238,248,154,150, 60,222, 52,212, 34,208, 4,207,143,106,201,131,208,114, 97,161, +181, 29, 65, 72,182,109, 66,129, 91,183, 83, 63, 13, 31,135, 71, 95, 29,233, 52,137, 99,163, 85, 60,203, 67,170,131, 82,237,210, + 42, 7, 39,166, 48,196, 72,191, 66, 97,247,251,187,126,110, 24,246, 95,190,168,255,178,117, 65,136,120, 99,221, 68,170,166, 44, +219,174,223, 65,134,131, 25,205, 0,209,107, 21, 29,187,240, 48,158,196, 31, 90,165, 20, 53, 45, 94, 14,151,124, 17, 27,125,112, +230,146, 69,220,175,155, 12,138, 73, 98, 60,219,228,231,237,191,154,169,205,208,217,141, 39, 41,119, 59, 67,149, 57, 85,110,152, +103, 10, 39, 5,181,237,184,236, 61,155, 62,237,208,131, 72, 38, 61, 97, 47, 32, 36, 57, 16, 9,181, 75,169,147, 18,101, 36,117, + 90,161, 62,221,108,121,178, 88,211,134,142,141,119,180,189,227,162,174,227,106, 97,211, 0, 77,252,153,134, 80, 16,249, 15,164, +160, 35,163, 5,169,201,147,189, 97, 30,155,171, 76, 39, 50, 86, 10,180, 20, 98, 87, 8, 63,107, 98, 29, 86, 32, 67, 81, 23, 9, +105,177,195, 74, 38, 69,166,234,108, 71,200, 28,248, 17,163,226, 70,179,158, 87, 37,149, 80, 24, 33,152,101,134, 34, 23,140,141, + 70, 4, 73, 38, 21,222,123,170, 60, 26,217,152, 92, 33,131, 32,168,168, 92,240, 1,148, 81,100, 82,210, 7,232,156,199, 6, 65, +112, 97,183, 30, 24, 26, 77, 23,146, 46,214,196,123,173,183, 95,146, 67,176,231, 13, 45,249,244,158, 79,229,241,192, 40, 21, 84, + 35, 66, 89,112, 52,173,184,103, 12,218, 24, 60, 1,237, 61,222,247,156,158,111, 19, 19,215,193,209, 60,217,146,230,113,237,181, +237, 35, 95, 98,136,118, 29, 8,168,189,165, 25, 85,188,117, 52,161,247,158, 31,181, 29, 79,174,234,221,154, 72,164,103, 75,101, +187, 21,131,210,201,140, 39,174, 70, 68,155, 52,191,195,164,215,244,241, 62, 40, 11,254,229,193, 1, 95, 31, 31,161,148,226,147, +190,230, 35, 15, 98, 84, 33, 85,129, 52, 5, 82,231,104, 37,184,190,124,204,119,231,119,200,231, 7,136, 89,137,190, 51, 71,142, + 11,164, 86,132,141, 32,172,107, 22, 31,125,192,143, 62,126,138,159,103, 92,180,107, 78,219, 26, 73,224,189,117, 77,208,134, 7, +197,152,183, 75,197,241,184, 34, 83,146,185,150,204, 51, 77, 37, 2, 66, 41, 58, 33,184,218, 88,150, 77, 67,221,173, 89, 35,176, + 56,124,223,227, 67,192,245, 29,190,119,120,215,227, 16,184,186,165, 55, 10,223,122, 54,182,101, 81, 59,234,122,205,249,226,140, +187,190,227,250,252, 25,205,114,197,159, 62,121,135, 15,234,107, 62, 14, 61,143, 76,143, 76, 50, 0, 0, 32, 0, 73, 68, 65, 84, +155,134,218, 90, 26, 4,235,222, 82,251,104,146,243,160,154,241,102, 62,138,118,210, 58,167, 40,199,180,161,167,243, 30,107, 61, + 51,169,249, 78, 94,240,181,166,229,241,197, 21,205,197, 85,108, 54,181, 70, 74,133,204, 52,223, 63,126,141, 63,254,250,183,248, + 71,247, 95,227,221, 82,209,173, 27, 68,223,125,234, 94,251, 34, 72,254,149,190, 94,100,241, 44,213,130,108, 50,225,222,120, 28, + 9,113, 65,176,240,158,167, 93,207, 19, 39,121,212, 58, 30,182, 13, 63, 95,111,216,180, 53, 77,183, 33,224, 9, 46,229, 37,144, + 16, 74,162,197,237, 55,164,226, 15,230, 21,153, 80,220, 46, 74,206,173,101,154,130,160,206,123,203,185,117,144, 41,206,146, 10, +226, 66,106, 62,233, 44,111, 75,201,169,131, 55, 71,154,247, 26,207, 86, 41, 36,142,191,108, 60, 95, 83, 45, 63,179, 34, 26,130, +230,121,170, 41, 68, 18,242,128,122,237,243, 93,190, 74, 65,215, 58, 13, 13, 41,113,116,144, 65,103, 50, 62,251, 62, 37, 88, 34, +158, 71,218,204, 32,151,118,175, 86,143, 95, 24, 52,255,238, 3, 93,188,223, 73,194, 66,216, 77,234, 69,182,139,230, 28, 76,105, +186,126, 7,139,226, 33, 43,200,191,251, 13,220,227,179, 68, 98,210,187,139,255,156,243,194, 75,226, 86,243,189,110,201,185,248, +251,162,132,147, 91,112, 56,143,147,138, 52,137, 16, 84,199,107,220,181, 95,173,152,155, 34, 18, 87,164,128, 89,201,120, 82, 50, + 47,115,166, 69, 78,227, 29,181,181, 44, 26, 71,240, 30,231, 3,247, 38,115,142,171, 41, 85,145,177, 90,109, 19,180, 63, 24,155, +168,184,227,237,125,188, 30,171, 45,110, 83,211, 93, 92,113,121, 85,179,172, 61,155,214,179,234, 45,155,174, 99,179,168, 9,139, + 77,116, 87,179,118,183,251, 25,200, 98, 90,126,154, 36,248,119,249,161,117, 44,224,183, 15, 98,225, 24,101, 73, 9,145,197,188, +100,146, 85,176, 78, 69, 68,137, 88,171,246, 39,140,125, 66,221, 13,209, 81,238, 32, 26, 37, 35, 3, 94,201,231,227, 94,109, 31, +239, 23,165, 35, 68, 63, 41, 35, 41,210,196,251, 34, 87, 80, 8,193, 72, 11, 10,169, 16, 72,164, 1, 35, 4, 82, 6, 74,173,105, +123,135,201, 52,190,115,168, 36, 81,243, 82,160, 84, 76,224,242, 82,210,135,128,208, 18,239, 60, 78, 14,106,143,164,224,112,169, + 73, 29,148, 27, 54,145,249,190,140,114,128,189, 7, 89,238,187, 77,165, 48, 22,173, 82,228,105,234,250,143,102, 88,109,184, 85, + 86,108,108, 71,166, 50,218,174,197,245, 13,207,158, 94,237,200,130,243, 49, 76,102, 72,109, 56, 24, 31,224, 71, 18,247,228, 42, + 77, 79,207,203, 54, 93,231,248,169,210,252, 24,120,124,189,141, 77,196,166,143,239,211,176,179, 15, 41,123, 26, 25, 93,247, 6, +189,110,235,161,173,119,240,174,247, 17,146,239, 44, 34,207,121,163,148,100, 66,240,193,230,154,127,119, 93,179,238,124,116,198, +203, 43,100, 94, 48,214, 6,213, 91,214,222, 17, 78, 63,230,141,163,123,232,170, 66, 77, 11,132,212,208, 4,252,217,138,190,217, + 34, 89,179, 89, 44,120,239,195,143, 56,111,225,162,233,249,100,187,165,147, 25,111,143, 38,124,163,200, 56, 40, 10,102,153,225, + 65,153, 49, 85,146, 3,173, 8, 33, 48, 22, 30, 39, 52, 70, 40, 54,155,150, 92,105, 78,235, 45,214,117,120, 3,110,211, 19,121, +247, 30,103, 61,126, 84, 68, 42,199,182,193,141,115,124,221, 99,183, 13, 75, 47,120,239,252,154,255,120,125,198, 95, 60,123,204, +255,242,232, 93,254,183,203, 51,174, 22, 75,254,250,252,154, 46, 4, 92,112,244,125,139,196,177,114, 61,214, 11,110, 21, 5, 35, +165, 56, 25, 79,145, 70,179,105,182, 92,120,199, 51,223,163, 20, 76,180,164, 84, 49,221,241,205,210,128,183,156, 61,185, 70,174, +174,145,190, 71,230, 21,255,197,235,175,115, 56, 42, 25,141, 43,100,200,249, 96, 44,226,250,164,233, 62,117, 6,136, 47, 59,159, +189, 4,133, 21, 89, 9, 65,114,124, 50,227,164,154,224,124,207,117,189,197,121,207, 82,104, 86, 93, 71,237, 61,109,211,145, 11, + 71,238, 59,166,206,146,117, 13,206, 57,122,219,198, 60,247,172,140,110,185,121,201,127, 61, 53,204,165,225, 56,207,232, 8,104, + 25,115, 50,158,245, 61,189,128,119,135,245,168, 84,172,165, 97,162, 5,121,150,243,137,139,170,162,159,119,158,219, 2, 30,201, +168,205,191,165, 4,239, 53, 46,122, 59, 25, 21,125, 27,180,138, 3,147, 50,177,148, 88,251,197,210,211, 87, 65, 14,227,133,217, +173, 6,229,128, 6,171,136, 14,187,132, 54, 27,177,243, 72, 81,233, 28,251,138, 36,218,191,191,148,182, 1,106,239, 83,164,164, +139,123, 54,114,179,211,182,231,217, 46,208,165,143,135,131, 59, 77,134, 23, 82,239, 18,169,134, 3,231,166, 99,121, 9,228,175, +211,244, 34, 83,145, 68,192,252, 0,198, 99,242, 60,131, 32, 41,171,130, 94,153, 40, 73,112,221,151,152,156, 82, 71,150,207, 98, +193, 44,243,248,127, 87, 57, 89, 89,112, 56, 42, 40,140,198,135,192,178,181,180,206,211,133, 64,219, 57, 78, 70, 83,190,117,235, + 77,198,229,152,178, 24,241,116,121, 29,117,234,150,157, 67, 92,211, 69, 45,119,183,138,145,140, 77,157, 92,141,250,104, 84,177, +220,192, 98, 5,139, 13,212,203,248,117,231,184, 73,244, 81, 58, 78,109,194,192,237,187, 80, 86, 80,142, 99,196,230,175, 66, 86, +245,170, 31,163, 34,134, 52,140,203, 84,216,228,141, 47,178, 44, 13, 50,203,152,140, 39,160, 13,213,164,138, 6, 55,101,138,255, +196,237, 30, 48,249, 5,112,131, 74,130, 89,225,192, 75,254,248,191,253,111,248,233, 95,255,100, 87,228, 85, 98,164,155,161, 57, +136, 80,186,144,130,145,210,140,165,196, 2,213, 72, 35, 67,192, 40, 73, 46, 37,109,112, 20,128,179, 30,105, 20,193,122,186,212, + 76,104, 1,157, 23,216, 4,173,123, 27,112, 33,224,186, 62,113, 61,220,206,218,120,240,211,239,146, 20,198,219, 87,116,243,251, +140,189,154,220,235,216,139,193,239, 94, 70, 43, 88,109, 96, 86,226,178, 28,111, 59, 70, 89, 22,109,228,251,158, 95, 60, 93,224, + 86,235,157, 29,229,108,194,241,209, 29,126, 48,154,241,102, 89,113, 71,103,124,216,111,163,167,255,139,230, 74,125, 7,171, 13, +193,228, 73,127,158,216,239,109, 23,167, 29,155,242,159, 93,106,146,131,220, 73, 69,229,243,105, 94, 55, 76,237,182,133,205,154, +159,173, 59, 30, 55,107,254,244,244,154,205, 98,139,204, 4, 50,207,145, 66,115,171,156,113,172, 51,126,247,238,156,223, 58,156, +227,141,160, 91, 47, 57, 25, 31,147, 85, 5,210, 9, 88,182,184,103,107, 92,187, 65, 72, 40,180,229,231, 79,158, 33, 55,107,212, +122,131,106, 98, 80,201,239,142, 21,247, 70,209, 36,102,174, 21, 69,145, 49,213, 26,129,224,200, 7, 42, 41, 57,145,129,179,214, + 33,133,100,107, 45, 65, 42,150,193, 18,250, 30, 95, 42,124,231,241, 62,224,165,192,119, 93,220, 52, 8, 25,101,207, 4, 92, 89, + 96, 23,107, 92,153,243,172,117, 60,106,214,156,250,140,237,234,154,179,174,198,173,174,113, 87, 43,220,178, 38, 56, 75,179,173, +209, 66,240,168,107,120,175,109, 56, 24, 79,144,214, 83, 24,205,199,125,195,135,125,205,181,181,228, 4,250, 16, 24,105, 77,165, + 53,185,145, 28, 20, 57,127,185,234, 41,230, 37, 97,185, 66,110,214, 28,102,142, 91,163, 9, 79,219,150,255,125,181,162,245,125, + 60, 87,134,128,158,174,127,174, 89,251,114,133,125,224,163, 68,126,148, 72, 86,204, 98, 60,227,245,147,219,168, 76, 81,183,129, +214,117,252,226,236,146,186,171, 25,101,134, 82, 43,170, 82, 96,132,103, 28, 60,198, 91,180,237,113,157, 37, 3, 70, 82,242,235, +211, 59,124, 99,118,135,163,124,194,194,215,124, 87, 41, 14,146,143, 64,103,123,164,210,156, 89,203, 7,125,195,199, 54,173,218, +146,107,100,155,146,213,144,154, 45,128, 52, 92, 74,193, 88,101, 72, 15, 39, 25, 28,101,146,105, 16,212, 33,208,137, 52,236,104, + 25, 99,138,139, 60,146, 65, 67, 26,170, 36, 95, 94, 38,173, 19,183, 68, 38,164,209,166,104,111,153,226,142,109,155,134, 72, 31, + 11,122,159,140,207, 20, 73,250,249,213, 77,105,254,254,138,186,247,169, 59, 74,236, 40,155, 32,187,166,221, 65,227, 42,105,121, +187, 62,254,190, 27,152,234, 38, 14,248, 34,153,208,124,145,231,186,202,162, 43,157, 76,176,189,148, 49,174,179, 26, 51,158, 76, + 80, 66, 68, 98,187,144,244, 93, 36,210,209,109,119,100,190,207,205, 70, 47,160,156,192,228, 16, 38, 35,168,178, 24,242, 82, 40, +212,164,100,154, 23,148,153,198, 0,173,243,108,172,101,211, 58,130, 7, 45, 36,111,222,186,205, 65,121, 64, 16,158, 76,148, 20, + 35,195,249,249, 51,168,109, 12,221, 88,175,162,165,103,179,217,101,146,223,236, 42,135,156,242, 46, 53, 69,221,243,185,229,153, +132,241, 60,238,244, 71, 51,152, 78,201,167, 19,142,143,167,168,170,164, 93,182,159,110, 94,190,200,159,252,151,153,208,243, 60, +198, 18, 86,201, 85,172,139,193, 21,163,162,226,193,244,136,131, 98, 68, 97, 50,238, 29,206, 41,116, 70,166,224,168,170,152, 29, +207,184,214, 89,114, 32, 84,187,125,151,144, 59,171,219,155,128,151,189, 53,143,136, 69,239,205, 95,123,139,119,127,250,110, 44, + 76, 25,187,251,174, 40,192, 8, 84,145,131,243,100, 70, 83, 9,129,201, 36,163, 76, 98, 59, 79,153, 75,114,169,176,193,199, 6, +218, 7, 58,231,110,248,152, 58,196, 52, 55,155,130,225,250,129, 6,160, 32,184, 64, 47, 6,131,138,189,247, 76, 16,165,137,131, +223,130, 79,141,237, 87,153, 10, 60, 59, 25,219,240,222,137,236, 38, 90, 1,147, 39,121, 30,108, 36, 60,107,123, 78,157,231,252, +122,141,187, 88, 66,187,217, 53, 4,243, 3,222,158, 79, 57,153, 28, 19,164, 32, 40,197, 51,187,166,123,250, 44,193,146,124,122, +197, 37,116, 52,173, 25,220,227,116,242,194,247,105,213, 35, 18,169,212,165,226,225,236,115,235, 50,241, 34, 89,167,183,136,186, +101,177,216, 32,234,109, 36,122,213, 29,178,208,136,106,202, 27,213,152,183,198, 83,190,121,123,206, 72,102, 8, 41,121,120,241, +148,215, 68,193,116,126,136, 12, 2,225,136,102, 54,189, 5, 28, 69,158, 49,234, 26, 30, 45,151, 40, 28,186,239, 57,108, 91,126, +111, 54,166,202, 75,230, 89,206,184, 26, 83, 6, 65,102, 84,140,155,144,146,204, 57, 60, 48,149, 1,145, 41, 58, 47,185,180,142, +165,235,241, 93,139,215, 2,159,231,209, 87,100, 93,227,235, 26, 47, 13,222,123,188,137, 17,170,118, 91,227,133,192,106,133,173, + 59,156,151,216,102,131,203, 74, 44,209,130,216,105,133,183, 53,190,238,240,109, 67,179,218, 16,172,165,182, 29, 63,106, 59, 90, +229,120,191, 89,241,212, 57, 62,105, 86, 52,109,139, 12,158,194,121, 2,129,128,100, 36, 53,179, 81,198,215,143,198, 28,205, 70, +152,217,152, 67, 35,248,232,233, 37,255,199,135, 31,240,227,235, 11, 58, 2,116, 53,132,144,124, 21, 52,204,166, 80,141,119, 65, + 50, 47,201, 68,255, 92,201,137, 76,220, 23, 33,163, 11, 93, 62, 97,246,250, 61, 42,157,209,117, 22, 31,224,253,211, 75,220,217, + 37, 27,107,153,151, 57,153, 9,228, 65,160, 68,160,179, 13,153, 48, 4, 39, 48, 2,164,109,185, 87, 30,112,247,228,132, 91, 71, + 71, 84,227, 10,143,228,190,173,201,131,231,150,206,241, 34,176,177,158,143,186,134, 63,105, 58, 26,203,142,151, 53, 88, 54, 75, +147,200, 28,233,107, 42, 99, 46,224,150, 81,108,133,100, 46, 37, 70, 57, 30, 59,143, 67,236, 56, 56, 58,249,149, 20, 89, 58,175, +198,241,243,112,222,192,171, 69,122, 15, 89, 38, 74,239, 88,242,122, 40,232,253,206, 77,110, 56,182, 68,114, 86,181,110,119,142, +253, 39, 87,212, 53,187, 60,117,233, 19,204,206,206,119, 93,138, 88,172,141,222,189, 89, 67,122, 91, 63,236, 72,147, 25,205, 23, +253,240,153, 78,157,156,220, 29,248, 33,218,209,118,218,160,165,140,171, 87,136, 69,253,242,108,119,161,141,138,175,161,156,197, +155, 63,159,196, 55,218,140, 34, 9,206,148, 49,140, 32, 31,204,111, 64, 86,154, 44,207,152,100, 25,179, 34, 71, 32,105,130,103, +213,218,104,239,234, 2,153, 82, 76,243,146, 91,147, 3, 74, 93, 96, 84,116, 85,250,217,211,199,180, 23,151,208, 92, 67,179,141, +230, 5,254, 43, 66, 64, 1, 56,152,243,221,111,189,193,111,127,243, 91, 60,184,119,151,163,241,156,197,122, 65,231, 61,221,182, + 1,215, 62, 63, 37, 14,159,141,254,236, 98,175,247,138,200,103,237,130,181,222, 53, 69, 38, 93,255,188,138, 83,170, 33,101,163, + 11,212,184,226,193,236,144,147,195, 35, 10, 97,200,139,140,145, 46,153,143, 43, 74,149,227,129,163,209,156,105, 89,114,149, 27, +130,209, 96,101,124,221, 58, 49,201,213,222,231,129,212, 53, 32, 60, 78,239, 10,122,178,130,141,146,172,212,157,103,134,224, 3, + 89,110,200, 4, 28,154,248, 62, 26,169, 41,115, 77, 38,226, 4,160,124,156,174, 91, 27,144, 74,226, 3,132, 16, 15,132, 46, 4, +180, 16,120, 47,216, 88, 31,141,130,172,195, 1, 97,184, 63,247, 47,145, 75,123,116, 33, 98,177,147, 42, 58,175,233, 60, 37, 21, +166,107,215,191, 42,243,255, 5, 39,185, 60,189, 39,131,138,163,172,226,212, 62, 16,113,154, 46, 69,233, 94,220,184,228,197,247, + 44,163, 60, 60, 38,207, 53, 66, 42,158,244, 29,143,186, 6, 22,203,157,201,204,167,254,109, 27,159,221,241, 40, 30, 88,101, 14, +163, 81,252, 25,235,102,215, 96,246,126,231,233,176,127,191,140,138, 88,124,115, 29,179,198,141,134,174, 67, 24,137,176, 18, 97, +123,164,237, 17, 69,198,236,232,132,111, 87,115,238, 28, 78,184, 59,174,200,181,102, 99, 37,239, 94,110, 24,117,107,238,201, 25, +249,180,138,242, 56,173, 17, 70, 35, 45, 4,223,161, 74,205, 97,145,115,213, 58,148, 30,241,186, 86, 28, 43,205,131, 81,206,116, +116,128,113,129, 96, 52,153,137,232,140, 86,138,208, 90, 84, 8,100, 2,150,109,207, 88,195,242,242, 26, 45, 37,215,118, 75,176, +129, 96, 12,161, 80,241,179, 86,132,229, 18,143,199, 11,112,157,197,139, 46,154,219,180, 53, 14,137,203, 13,206,111,177, 50,224, +235, 30,103, 52,174,183,120,173,163,241,181,237, 9, 93, 11,155, 13, 97,209,224,183, 91,222,239, 90,222,111, 90,182, 77, 77,211, + 55, 92,217,158,171,174, 67,116,142,210,193, 72, 65, 31, 36, 69,145, 51, 27, 85,156,100, 5,255,180, 40,249,225,120,202, 31, 77, + 43,190,101, 36,127,246,209, 83,248,248,147,120,166,218, 46, 58,115, 42, 73, 80, 10,202,156, 80,230,145, 3, 84, 85,241,136,252, +162, 65,201,177,139,243,101,224,189,196,226,222,143,199, 28,142, 70,212,190, 67, 11,197,229, 98, 65,184, 62,135, 62,112,182,221, +114,221,213, 28, 87, 5, 66, 11, 90,103,209,197,148, 50,159, 80, 22, 99,186,190,166, 26,229,220, 57,188, 75, 86, 20, 84,121, 78, + 91, 55,124,240,236, 35, 10,231,184,182, 29,231,193,241,179,122,205,255,120,121,205,181,101,135,116,145,194,189,134,194, 41,101, +180,218,245,150, 99,173, 25, 57, 79,174, 4,218, 57,158,246,158,177,210, 44, 8,116, 66, 38, 84, 56,173,174, 84,250,149,153,136, + 28,139,200, 77, 33, 75, 60,145,160, 62, 63,101,109,224,159, 8, 19,139,118,174,118,158, 39,221,158, 91,105, 72,197,223,250,248, +189, 67,227, 43,253,243,222, 40,255,233, 76,234,123,135,145, 74,123,243, 65, 78, 35,213,142, 44,231, 67, 34, 0, 37,150,160,243, +113, 15,111, 63,195, 23,251,165,203, 31,153, 46, 96, 58,216, 91,191,235, 46,149, 68, 72, 77,231, 2,157,245, 49,144,196,182, 32, + 29,144, 69,189,109,150,222,208, 81,154,122,134,130,231,146,207,183,147,113, 58, 23,160, 42,205, 97, 81, 50, 45, 53,243,124,132, + 18,146,166, 79,146,151,174, 37,184,192,184, 42, 57,172, 70,220, 26, 79,177,194,209,122,207,162, 93,178,236, 58, 30,126,242, 9, + 92, 60,221, 33, 22,191, 20, 33, 77,195,124,198, 15,222,254, 38,147,241, 17,213,104,130,181,142,171,237,130,203,245,150,176, 92, +165,195,218,238, 92,201,148,222,153,250,200, 4,221,203,180, 23, 29,138,244,240,119, 15, 68,198,151, 21,253,161,192, 14,251,236, + 32,227,245, 55, 89,130,207, 5, 20, 57,111,204,143,184, 55,191,131, 49,154,178, 28, 49, 45, 43,138, 60, 71, 11,141,115,150, 82, + 27,148, 82, 20, 38,122,128, 95, 6,159, 10,187,136,235,131,225, 94,218,151,117,236,123, 33,200,100, 63, 60, 52,115, 25,137,161, +157,165,159, 19, 40, 13, 42, 8, 70,185, 34,120,152, 24, 77,174, 20, 74,199, 61,151,240, 30,151,248, 15, 89,166,232,131,139,155, + 28,163,113, 93,135,144,146, 39,109,135,144,129, 32,163, 89, 72,112, 68,231,174, 65, 51,111, 7,162,156, 75,235,162, 16,211, 6, +179, 50, 62,204, 69, 17,145,167, 44, 69, 52,218, 62,113, 41,190, 66, 67,215,219, 61,217,103,106, 56, 51, 19, 11,184, 72, 94,238, +219,228, 40,183,255,247,219,142,107, 37,249,216, 40, 62, 64,240,172,107,227,186,103,187,141,190,210,242, 37,171, 45,151,126,198, + 44,135,249,148,127,125,247, 22, 63,124,237, 62,111, 31,148,252,244,244,122,183,183,149, 47,172, 97,134,213, 71, 48, 8,215, 37, +244, 36, 53,102, 82, 34, 66, 76,179, 18, 89,156,198,133, 0,155,231,252,227, 55, 30,240,181,201,132, 89,145,163,117,206,170,246, + 60, 91,111,121,218, 94,240,166,131,113, 49, 69,149, 25, 98,108, 34, 19, 92, 41,168, 91, 68,150, 83,150, 37, 7,193,147, 59, 71, +231,224,181, 34,227, 78, 53, 6,219, 98, 76, 65, 81,142,144, 66,164,158,223,199,219,135,104,223, 92, 73, 73,189,217,160, 50,193, +220, 91, 62, 58,123, 18, 45,101,181,230,143,238,221,227, 15,223,120,157, 7, 99,201, 79,214,155,184, 81,169,107,188,118,248, 98, +130,183, 46, 26,219, 40,133,171,175,241, 50,199,203, 16,247,240,133,137, 83,191,210, 81,205, 89,119, 17, 37,169,211,206,187, 94, +195,179,115,186,171, 43,206,206, 47,121,124,213,114,209,116, 60,220,246,116,117,131,106, 45,165, 23,204,114, 67,150,107, 58,109, +120, 93,231, 60,168,102, 28,155,156,153, 41, 57, 86,146,219, 35,205, 70,122,158,157, 93, 18, 46, 46,161,237,163,247,187, 82, 4, + 29,215, 96,255,242,254, 33,255,230,237,183,248,237,251,119,185, 30,107, 46, 46, 54,159, 57, 80,132,193,111, 33, 68,200, 88, 12, +209,201, 10,130, 13, 48, 45,233, 59,207,147,237,134,240,232, 20,182, 27,130,107,160,110,169, 55, 53,239,182, 27,182,237, 6, 65, + 78, 89, 76,201,203,130,239,255,103,191, 77,119,213,177,109,215,140,139, 17,147,241,136,104,118,211,240, 63,191,255, 49, 15,151, + 11,254,135,139, 21, 23,174,231,255,185, 90,179,242, 18,234,150, 16,246, 76,194,144,241,252, 86,106, 71, 74,149, 26,227, 45, 40, + 69,238, 44, 37,224,165, 96,101, 29, 39, 90,243,108, 95,243, 61,144,181,135,198, 90, 36,165,204,192,201, 26,220, 34,209,207,171, + 89, 94, 60,119, 7, 95, 10,210, 26, 74,232,157, 91,169, 72,191,119, 93, 66,209, 84,140,103, 30,206,168, 97,178,247, 95, 77,109, +246,247, 56,169,239, 77,123, 3,220, 48,132,179,236,231,108, 15, 18, 29,216, 57,207,245, 95,114, 15,236, 93,108, 28,220, 30, 34, + 19, 18, 57,194, 69, 6,107,232,109,148,127,117,219,216, 45,149, 85,156,192,139,180, 55, 82,123,241,172,106,111,151, 84,119,113, +242, 12, 1,114,195,164, 42,152,151,134, 42,207, 80, 66,208, 58,199,182,243,172,251, 14, 31, 2,101,161, 57, 46, 42,110, 85, 51, +124,144, 52,109, 75,227,122,222,127,250,140,167,167,167,112,250,209,115,145,150,191,212,135,115,160,114, 30,188,113,151,131,217, + 1, 66,106,126,126,250,144,247, 63,252,152,112,113,149,194, 59,250, 29,113,113, 56,121,179,100,113,234, 19, 19, 83,165,184,209, +144,236,120,117, 90,139,104,181,139,111, 29,246,114,131, 93,175, 16, 59,146, 26, 41,176,167, 79,172,239, 16, 29,221,100, 49,225, +215,110, 63, 96, 54,157,227,172,167,202, 71,113,208,212, 57, 65,192,168, 24, 97,125,195,192, 53,179, 4, 38, 82,131, 49,212, 62, + 68, 46,129,144,187,172,251,253,162,126, 19,231,187,231,188,164,108, 36, 9,169, 68,162,211, 38,189,214,104,115, 25,130,224, 32, + 55,104, 33,137, 52, 57,133, 49,209, 4,182,119,158, 66, 74,214,182,103,164, 84,220,250,180,129, 32, 20,215,193, 49, 82,134,174, +119,180,206,227,156,223,109, 2, 68, 72, 80,187,143,197,251, 38, 13, 47,220, 20, 82,178, 50, 93,163, 33,162, 80,236,188,185,191, +234,174,221, 37, 61,121, 85,221, 4,204, 40, 33, 8,214,198,181, 71,215, 70, 85, 68,232,118,135,134,115,209,110,116, 54, 74,168, + 88,106,236,154, 13, 44, 18,121,244,101, 54,204,109, 7,227,138,239,222, 58,225, 55,230,199,228, 58,195,122,207, 95, 53, 93,140, +173,124,241,245, 15, 68, 58,169,226,243,110, 70, 8, 21, 27,177,184, 5, 19, 49,134, 83,104,132, 14,136,206, 34,189, 64, 22,134, +127,118,235,117,222, 62, 58, 96,108, 50, 10, 29, 21, 8, 93,219,241,254,122, 67,103,151, 76, 54, 45,147,233, 28, 89, 40,196, 40, + 35,132,128,174,166,136,117,131,197,115, 48,157, 51, 55,134, 81, 7, 77,211,144,107,184, 61, 61, 68, 21, 35,100,211, 96,133, 38, + 83,154, 97,107,226,124,192, 53, 29, 78, 10,154,224,169, 28, 52,219,107,142,139,140, 79, 46, 47,169, 70, 35,254,249,157, 59,220, +170,166, 28, 77, 14,120,239,250,156,235,197,150,224, 44, 65, 23,248,237,134,160, 52, 94, 42,124,179,197,103, 21,222,246,201,183, + 41,158, 9,222,148,132,174,142, 22, 25, 10, 66,211,237, 22, 73,114, 47,140,165,237, 8,219, 13,246,122,133,109, 26,158,181, 45, + 63,239, 45,211,206,113,175, 48,116, 82, 50, 54,154,187,197,152, 82, 42,164, 50,209,152, 74,105, 70, 82,225,133,231, 32, 83,124, + 40, 51,124, 93,195,197, 34, 54,158, 46, 66,207,191,127,231, 54, 35,149,161,180,230, 82, 6, 30, 9,133,144, 89,124,102,247,138, +251,254,107,187, 81, 8, 13,235, 20,231, 0, 75,189,117,212, 93, 77,120,252, 20, 54, 87, 73,177, 33, 8,222, 18,218, 6, 46, 87, + 44,150, 91, 86, 70,115,255,240, 46,199, 71,183,217, 44, 90,180, 84,120,235,169,155,117,220, 32,217,152, 97,174,109,205, 95,127, +252, 24,209,247,156,173,106,186, 62, 16,218, 62, 61,251, 50,166, 39,186, 16, 27, 86, 31, 24,133, 64,111,147,113,151,130,214, 11, +238,139, 64, 19, 44, 2,129, 12,158, 18,193, 59,109,159, 12,162,194,243,110,150,195, 90, 88, 38,191, 11, 73, 60, 47,164,136, 8, +177, 54,177, 81,150, 73,189,181,255,156,106,149,228,214,123,110,143, 67,178,164,222,243,144,207,179,157, 90,164,103, 55, 0,188, +152,202,166,247,200,241,255, 32,139,250, 0,203, 74,177,183, 79,127,129,228,246,156, 30,156,231, 33, 59,225,190,154,172, 78,164, +176, 15,225,119,178,157, 44,103,252,230,109,166, 7, 83,182, 62,193,132,235,117,124, 19,143,102, 59, 67, 0,111, 35,124,152, 98, + 77, 81, 42,254,121, 68,252,222,129, 41, 89, 26,230,121,134, 49, 2, 35, 21,181,179, 92,215,150,117,103,233,189,197, 40,197,113, + 49, 98, 82, 20, 24,169,113,210,209,116,142, 39,171, 21,205,229, 51, 56, 61,143,211,211, 87,105,142, 62, 11, 38,111,106,222, 15, + 61,231,215,151,252,228,147,143,121,248,240, 9, 60,252, 56, 89,187,238, 77,217, 67,243,148,169, 4,249,239, 41, 11,148,220,145, +204,110,130,116, 84,114,250,147,207, 75, 10,135, 78,119,127, 74, 31, 60,215,117, 74,217,179, 22,188,228, 27,111,189, 77, 89,142, + 80, 82,146, 43, 3, 82, 81,230, 5,214, 89,140, 48,116,206,161,165, 64, 43, 67,221,182,232, 44,163,183,150, 46,120, 54,117,187, + 51, 37, 26, 86, 0, 54,253, 27,195,191, 61, 76,234, 50, 33, 5, 89,186,223,196,160,137,151, 55,118,177, 90, 43,166,185,142,211, +184, 81,100, 82,161,148,196, 7, 71,231, 2, 90, 10,214,214,145, 35, 8, 50, 58, 81, 5,231,227,218,204, 67, 43, 60, 78,106, 90, +107,227,228, 32, 18, 44,121, 3,191, 39,247,186, 64, 44,170, 67, 81, 23,106,119, 40,220, 60,197,233, 48,233,136, 81,192, 95, 37, +168, 72,107,152,205, 34,113,174,202,121, 80, 26, 50,231,152, 27,133,241,150,186,243, 49, 97,234, 83,114, 80, 31,215, 76,213, 56, + 18, 3, 6, 23,188,245,122,167, 6,121, 89, 34, 97,219,113,124, 50,227,184, 28,209,120,203, 39,182,227,195,118, 11, 77,178,146, + 29,190, 63,207,246,158,253, 4,223,170, 16,153,239, 67, 19, 22,199, 64, 68,154,102, 4, 10, 25,122,132,202,249,238,201, 9,175, +205,142,209, 90, 35,136,100,196, 69,211,179, 88,175,120,214,110,185,114,107,170,109,207,172, 24,163,114,131, 28, 21,209,253, 55, +104,202, 44,167,154,157,112, 92,221,225, 86, 89,209,173, 90,132,232, 40, 6,151,192,124,132, 12, 14,231, 60, 82, 41,132,150,184, +186, 67,230,134,237,182,102, 98,162, 87,198,170,105,144, 1,238, 26,129,240, 13,119,231,199,228, 74,241,201,118,195, 95,108,106, +218,109,141,183, 30,143, 39,228, 26,143, 34,168,130, 80,150,248,182, 37, 8,139, 15, 22,175, 51,130,245, 4,231, 8, 89, 30, 11, + 94, 15, 65,198,245,224,128, 40, 7,249,124, 49, 13,251,124,154,109,199, 7, 82, 48,111, 29,227, 76,211, 40, 73, 41, 3,135,166, + 64, 41,141,115, 14, 47, 5, 87, 93, 77, 38, 3,199, 74,242, 70,161, 80,163,130,199,249, 40,250,144, 47, 86,132,171, 21,183, 15, +114, 78,170,138,107,107,249,243,229,134,173,245, 80,106, 68, 89, 70,121,173,141,211,248, 23,202,219,122, 11,155, 85, 36, 88,246, +237,142, 59,145,204,157, 82, 5,132,224,104,174, 27,142,239,223,230,100,114,136, 82, 2,239, 28, 46,120,234,166, 78,183, 94, 92, +123,213,219, 13, 31, 94, 46,225,217, 41,108,108,156,198,151,219,232, 3,177, 90,198,198, 99,221,196,162,238, 28,253,186,137,175, +119, 40,236,193,179, 22,112,143,136,194,104,223,243, 65,215, 19,164,192,217,100,238, 53,236,181, 85, 26, 4,212,192,249, 74, 40, +177, 78,123,123,147,167,228,199,168,200,226, 38, 47,106, 47, 4,169, 40,210,153, 58,252,204,118, 23,237, 29, 82,198,200,144,161, + 32,134, 63,159, 92, 75,103,115,168,166, 41,248,108,136,246,254, 85, 77,234, 67,135, 32,245,243,126,220, 55,146, 34,255,233, 16, +137, 87,129,132,111,166,242,192, 77, 75,252,101, 96,251,175, 74,204, 27,220,188,240,112,255, 46, 63,252,167,191,201,119,110,223, +231,219,175,189,197,119, 94,187, 77, 89, 21, 60,126,114, 17,247,131, 89,158,114,223,101,210,235,166, 2,166,247,236, 49,141,130, +108,248, 44,201,115,133, 81,130, 92, 43,106,235,184,220,246, 92, 55, 53,174,183,148, 70,243,214,193,109, 14,102, 99,198,229,148, +213,102, 77,111, 61, 87, 77,195,114,177,132,197,229, 78, 19,252,101, 14,238, 1, 57, 24,160,203,193, 80,103,144, 12,102, 26,158, + 45, 89, 61, 62,165,125,248, 49, 44, 46,118,157,245, 0,237, 12,230, 7,131, 37,168,212, 41, 76,167, 77, 8, 71, 42,242,217,192, +220,150, 9,170, 79, 82,187, 44, 77,236, 55, 55,104,130,191,135,226, 58,152,173,116, 41,251,219, 11, 56, 58, 68,140, 71,220,154, +204, 25,153, 18,169,179,148,182, 5,101, 22, 11,187,117, 29,130,192,186,171,233,122,143, 82,130,171,245, 26, 43, 28,141, 16,132, +186,143,232,205, 32,121,212,164,201, 92,197, 66, 49, 48, 74,135, 61,123, 80,187,166,108,152, 56, 35, 61, 26, 37, 34,169, 34,215, + 18,141, 32,207,210,129,232, 64,136, 16, 61,201, 69, 64, 11,104,125, 32, 75,142,178, 91,235,145, 66,210,244,158,218, 57,100, 8, + 56,145,178,201,221,222,174,219,197, 67,140,118,207,161, 80,202, 93, 65,215, 42, 30,128,114, 56,244,210,123, 34,220,103,219, 86, +126,238,147,173, 99, 86,250,180, 98,102,226,253,106, 16, 88,231,169, 8,209, 73,174,169,119,204,119,191,247,156, 20, 37,183,103, +138, 77,117, 20,137,160, 50,161, 55,167,151,105,122, 23,159,158,214,173,229,217,166,227,175,187,134,191,106, 90, 62, 92,111,227, +125, 82,232,216,108, 13,205,170, 78, 12,121,147,154,153,161, 1, 20,121,116, 71,147, 30, 33,125,156,214,133,143,111, 81, 80, 8, +223, 33,108,203,119, 94,123,157, 73, 86, 33,181,166,211,146,211,117, 67,227, 3,205,102, 75,237, 90,150,117, 79, 79,199,253,209, +140,162, 42, 80,202, 32,148, 66,141, 74,204, 65, 69, 54, 25,147,221, 57, 32,147, 99,140,237, 57,191,184,100, 50, 18,228,213,140, +208,213,160, 20, 65,104,130, 15,200, 48, 80, 32, 28,211,188,160,173, 91, 38, 42,163, 16,146, 18,195,216,100,200,174,102,181, 89, +243, 81,223,240,231, 23,151,156,247,125,212, 92,111,226,228, 77, 31, 8, 74, 18,198, 25, 65, 11, 66,221, 18,104, 9, 34,202,165, +130, 25,206,166,100,172,101,227,164,123, 83,193,213, 75, 10,250, 11, 92, 53,250,158,119,250,142,166,105,169,157,135, 76, 48,149, + 18,237, 29, 65, 72, 46,234, 53, 29,129,222,245, 76,188,231,174, 50,156,228,134, 55,170,156,139, 50,103, 57, 26, 17,156,227,189, +247, 31,241,103,159, 60,230, 71,219,134,109,215, 71,147,160,148,151, 32,140,138,170, 21, 83, 70,233,154, 16,241,172, 25, 21, 47, + 93, 17,137,207, 67, 77,135,198,191,105, 1,203, 51,147,113,171,154, 96,148, 38,120, 79,223,181,172,155, 21,214,246,104, 2,189, +107,177, 93,207,138,134,245,227, 69,148,235,182,109,138, 62,173,119, 25,231,109,157, 86, 22,117, 36, 26,135, 20,125, 58, 52, 64, + 10,180,115,172,251,158,214,193,194, 57,236, 62,170,230,247,236,198, 73,107, 58,157, 30,116, 4, 15,116,198,127,121, 56,227, 7, +147, 17,255,100, 92,162,239,188,193,195, 31,255, 24,117,231,136,208,187,157,161,163, 24,146, 13, 7,211, 52,155,172,207,195, 78, + 30,170, 72, 43,225, 52,138,251,110, 71,214, 59,152,197, 26, 36, 21,108,234,184,254,252,149, 21,117,147,237, 92,111, 6,147,217, + 97,106, 27, 12, 96,134,169,226, 85, 14, 29,157,224, 69,157,118,133, 50,153,174, 72,241,183,195,184,126,177, 67, 81, 73, 11, 40, + 42, 94,251,214,219,252,250,253, 7, 76,230,183,144, 66, 49,157,206,113,109,207,187,182,141,157, 81,145,160,217, 54,165,146, 45, +175,211,141,148, 96,123,162, 71,187, 52,130,201, 40, 39,207, 12, 19,163,146, 93,168,103,209,116,212,235,116,195,105,205,107,135, +135,220, 62, 60, 97,156, 87, 40,161,241, 74,242,241,213, 37,139,171,107,184, 88,196,124,234,208,127,185,166, 69, 13,201, 95,233, + 49,146, 2,116,153,138,219, 16, 24,146, 76,109,156,125,121, 72,129, 38,162, 13,222,239,116,225, 67, 96,141,145,169,177,209,187, +110, 84,134,248,158, 13, 29,169, 18,177,208, 15,108,115,173, 18, 33,100,128, 87,253,206, 80,136,244,125,101, 52,230, 57,152,206, +152, 85, 35, 66, 8, 20,166,192,186, 62, 34,129, 64,103, 45, 4, 75,227, 58,140,136, 48,248,229, 98,137,201, 20,117,103,233,156, +199, 53, 13,244,235, 93, 70,113,218,195,198,130,147,228, 40, 46,197,211,146, 26, 80,157,116,186, 62,236,166,198,224, 33, 51,232, + 16, 40,141,166, 11, 30,233,226,125,221, 57,143,247,158,222, 7,156,243, 52,189, 39, 55,138,186,135,206,122,180,148,172,189,197, +171,232, 5,223,220, 32, 25, 73, 95,111, 83,230,125,235,226, 52, 33,210,107, 29,194,128, 84,122, 38, 90,123,147,131,126,179, 6, +169,155,212,217,135,231,209,151,231, 96,194,207,120,246,148,137, 48, 58,146, 98,148,113,168, 5, 66,105, 26,231,216, 52, 61,165, +183,108, 54,137,183,241,162,135,117,150,179, 57, 58,130,201, 45,126,167, 28,241, 70, 86,112,168, 2,167,215,171,120,112,126, 86, +212,112, 93,195,114,157, 16,172,132,114,105, 29,247,134, 46,125,125,240,138,184,185, 39,178,148,191,240,130, 45,169, 75,133, 29, +162,223,183, 20,136, 96,248,155,205,150, 55,142, 15,177,186,224,170,115, 92, 11,199, 98,221, 82, 1,227,190,163,146,130,183,143, +142, 56,152,143, 24, 85, 5, 18,133,148, 26, 89,106,228,225, 40,106,217,115, 29, 21, 15,219,128, 25, 9, 46,234, 37,235,237, 5, +227,106,134, 84,101,220,227, 10, 8, 73,235, 47, 19,163,122, 84,150,216,166,103,146,231, 76,180, 64, 11, 67, 38, 50, 86,237, 53, + 79,150,151,188,215,116,248,174, 35, 40,133, 47, 50, 66,215,227,155,109, 34, 4, 59, 66,219, 18,250, 53,212, 77,148, 78,245, 9, + 1,244,137, 44,217,181,187,169, 69,238,120,189,175, 34, 53, 19,222,243,180,109,249, 69, 93,243,255, 45,123,206,235, 13, 65,123, +182, 56,122, 31,184,106,214,148, 62, 80,132,128, 16,130,128,192,106,201,108, 92,178,146,154,235,114, 4, 71,135,241, 31,189, 94, + 35,206, 22, 17, 61, 25,222,171,129,253, 93, 22, 49,105,242,246, 45,126,248,107, 15,248,206,237, 35,102,199, 83, 30, 47,109, 92, +213, 5, 62,117, 79,138,151, 13, 88,131,148,214, 57,220,197, 5, 98, 62, 35, 35,196, 45,149,243, 4,161, 82,124,131,165,105, 26, + 86,221,154,211,197,138, 38, 36,207,138,254,115,130, 84,156, 75,187,235,136, 40,138, 68, 9, 10, 87, 43,150,222,179,105, 45,171, +166, 35, 8, 17,239, 61,149, 66,197,156,139, 53,173,245, 59,173,248,240,115,107,205, 55, 50,195, 91, 69,206,216,228, 24,169,249, + 14,158,223,124,253, 54, 39, 38,240,243,109, 31,155, 88,153,220, 35, 7, 84,211,171, 72,148,179, 3, 26, 39,119, 12,251,225,245, + 90,187,139, 44,206,116,226,113, 37,185,247,102,155, 26,189, 95, 69, 81, 31, 10,240,224,169, 62,176,137, 7,243,150, 1, 90, 29, + 82,175, 94,201,171, 86,238,138, 0, 98, 47,241,172,255,219, 47,232, 38,193,136,210,192,131,187,124,255,173, 55, 25,149, 83,178, + 44, 35, 56,232,123, 75, 89, 22,104,183,230,210,121,130, 15, 4,159,228, 17,219, 6, 46, 23,241,115,149,244,222,165, 70,230,138, + 81,174, 49, 82, 80,101, 34, 41,151, 60,151,171, 6,183,218,194,106, 3,153, 97, 84,149,188,113,124,155,131,114, 66, 32, 50,167, +215,125,205,197,102, 77,127,185, 76, 76,247,246,203, 17, 35, 6, 46,194, 62,251, 27, 17, 59, 62, 33,119,133, 29,191, 67, 68, 94, + 36, 58, 37, 84,232,249, 29,146,216, 85,252,125,243, 22,159,248, 13, 50, 5,173,100,106, 39, 35, 19,236, 50,196,111,152,231, 42, + 21, 45,249,188,169,144, 81,241,181,143,103, 76,199, 5,203, 77,205,253,131,219,180,214,226,189, 69, 9,193,182,107,232,108, 71, +109, 91, 70,166, 68, 75, 69,227, 90,140,209,108,234, 26, 23, 98,227,228,214,203,180, 42, 72, 26, 80, 19, 98,241,216,247,255,215, + 41,191,216,136, 56,189, 15,134, 62, 69,106, 0, 74, 19, 37, 62, 14,180,214, 88, 23,179,199,251,224, 81, 1, 28,158,173,117,228, + 82,196,126, 78, 7,218, 54,254,253, 94,193,214,245,180, 2,154, 62,196,239, 19, 2,215,135,221,218,104,216,239,119,110, 87,200, +135, 93,186, 52,137,149,191,127,221,211,179, 49,144, 0,131,123,254,249,120,153, 70,255,101,207,158, 41, 34,169,103, 82,210, 42, +201, 72, 72,182,120,148,117, 80,119,172, 54, 61,110,152,158, 63,181,243, 86,112,239, 22,191,115,112,139,147,178,228, 40,203, 81, +125,199,105,187,164,191,186,126, 57,252,190, 47,115,235,218,196, 91, 72, 4,189, 44, 49,137,133, 73,133,125, 88,229,228, 96,235, +120,144,233, 9,248, 14,209,217, 68, 94,141,123, 75,209,219, 88,208, 1,225, 4,130,192,251,218, 83,168,146,101,151,130, 58,188, +229,160, 50,220, 27, 79,185, 91, 76,184, 51,153,114,116, 56,195,110, 91, 52, 18,217, 6,228, 36, 71, 30, 22,136,204, 32,140, 36, +108, 28,118,219,210,103, 10, 39, 3,173,146,180,174, 71, 5,143,200,242, 68,230,142,197, 79, 25,131,197, 99, 16,100,121, 70,223, +212,228, 38, 67,133,192,214, 7,166,166,136,236,118, 91,115,222, 89,124, 8, 4,163, 8, 70, 18,186,158,224,122,112,155, 72, 58, +108,219, 20,140,178,199, 25, 34,133,251,236,107,246, 63,103,242,253, 44,255,118,113, 3,203,119,124, 92,111,249,127,175, 26,254, +100,221, 48, 22, 22,211,246,204, 60,140,149,100,237, 29, 91, 41, 88, 3,155, 16,232,203,140,181,209,252,227,163,138,127,123,247, + 54,191,121, 50,229,247,238, 31,113,160,224,189,167,215,136,235,107, 16, 42, 42, 19,202,152, 96,121,127, 82,240, 91,243, 3, 94, + 59,186,205,225,116,198, 59, 69, 78, 63, 42,147,178,196,164,231, 81, 68,199, 78,147, 71,101,199, 40,231,232,254, 9,181, 44,118, + 12,242,180,102,186,176, 61,206, 40, 50, 37, 17,105, 53,211, 7,139,117, 13,235,245, 53,206,183, 52,173,101, 45, 37,200, 60, 34, +135, 38,173,112, 94, 66,230, 19, 9,121,227,246, 93,126,239,123,223,229,215, 31,188,197,236,112,194,147,247, 63,129,174,229, 48, + 15,212,155, 58, 66, 33,117,183, 51, 75,106,109, 10, 17, 75,207,173,142,175,241,219,153,230,159, 76, 42,114,149,225, 67, 32,147, +154,198,247, 20, 82, 34,165,225,195,166,166,150, 3,243, 93,199,231, 86,153,228,201, 48,212,158,244, 78, 9,187,131,223, 93, 26, + 29,153, 26,155, 0, 0, 32, 0, 73, 68, 65, 84,148,134,103,124, 88,207,217, 16,125, 71,134,144,153, 95,186,168,223,192,186,105, +234,217,183,110,237, 82, 55, 17,210, 1,109,221,243, 22,146, 95, 4,129, 15,211,160,150,187,144,148,191,237, 41,125,144, 62,137, +116,160,119, 14, 49,159,112, 50,154, 96,116,148, 55, 9, 41, 88,174,150, 60,188, 94,113,118,189, 66, 10, 65,232, 18,177,105, 29, + 73, 37, 40, 25,229, 66, 82,199, 41, 61, 87, 20, 90, 16, 66,212, 46,215,157, 99,217,180,112,185,137,172, 85,109,160, 44, 57,156, +148, 76,117, 65,150,151, 55,147,228,214, 53, 60, 58,189,128,103,105,143, 62, 20,243, 87,189, 20, 38,221,212, 46, 93,119,159,116, +143, 65,237, 96,112,201, 30, 26,194,110,194,222,159,212, 7,199,190,161,195, 22,201,252, 32,176,211,128, 91,151,120, 8,114,167, + 77, 30, 38,255,228,151, 30, 67, 59,210,191,181,159,119, 63, 76,238,222,167,195, 59,193,244, 58,199,101, 57, 71,101, 73,221,119, +120,111,169,178,130,166,107,145, 74,179,105,214, 8, 25,144, 66,225, 66, 96,100, 74, 16,129,105, 89,113,185,190,230,234, 98, 17, +167,194,190,141, 93,123, 72,114,181, 97, 82, 31,200,150, 50,165,233, 13,196,189, 96,210,207,145,140,142, 18,226, 2, 1, 33, 37, + 69, 46, 89,119,142, 44, 37,172,181,189,199,139,184,187,213, 54, 68, 20, 47,153,195,213, 30, 90,235,169, 93,192,134, 64, 41, 37, +117, 99,119, 5,122,144,209, 89,151,174, 91,250,255, 82,238, 53, 93,114,151, 27,190,111, 8, 50,178, 77,220,167, 11,251, 60,105, +114, 63,110,241,197,102,249,197,134, 45,151, 81,122,153, 69,148,165, 9, 32,165,228,162,238,113,189,163, 91,109,226,123,248,178, +137, 91,101,112, 48,231,222,116,198, 97, 94,208,216, 30,131,231, 23,171,107,220,179,243, 47,110,194,123, 11,181,139,242,182, 76, +241,221,201,132,127,117,231,152,223, 62,153, 80, 77,114, 62, 57,191,142,215,196,167,179,228,224, 54,223,251,254,183, 57,253,224, + 35,132,204, 35, 4, 63,236,102,149, 68,120, 3, 94, 34,219, 53,210,197,233,237,161,114,156,231, 21,149, 11, 28,224, 57,153,142, +120, 99, 52,225,173,195, 67, 14,198, 19,242,188,192,123,203,229,163, 51,114, 43,208, 85,158, 12,142, 98, 20,175, 95, 54,216, 77, +205,170,169,177,163,138,144,101,212,206,211, 43, 77, 16, 10,163, 13,189,179, 40, 41,177, 65, 48, 26,141,240,206,199,251,116, 60, +194,117, 61, 2,184, 93,141,217,118,150,177,201,176,161,103,140,227, 81,219, 17, 66,192,107, 77,200,116,100,104, 55,237,141,214, + 63, 22,224, 93,118,252,238,243,206,112,236,197,255,126, 49, 70, 85,124,206,215,110,204,187,234, 45,118,179,229, 39,171, 45, 7, + 4,250,166,193,118,150, 32, 4,139, 0,219,204,112, 17, 4, 87, 30, 10, 99,248,245,106,194,221,114,198,215, 38,199,220,159,156, +144,151, 25,118, 94,240,112,221,195,250, 42, 14, 41, 78,192, 40, 99, 84,102,124,111, 58, 67, 41, 77,231, 3,191,232, 45,219,214, + 66,101,162, 74,104, 58,130,131, 57,156, 28, 69,251,225, 91, 71,252,219,111,191,193,247,143, 79,248,221,215,239,225,230, 5,143, +201, 99, 67,115,124, 12,101,206,166,200,168,148, 38, 8,193, 73, 89, 97,189,195,120,207,114,179,102,221, 89,148, 20,148,185, 70, +151, 57, 77, 94,194,252,144,252,181, 55,112,119, 95,131, 78, 65,150, 12,140, 32,114, 0,180,225,187,223,254, 58,199, 7, 39, 16, + 60,214,100,124,114,246,148, 25,150,197,114, 27, 39,225,122,147,160,251, 62,170, 60,250,193, 71, 33,236, 46,106,240,188,153, 25, +190, 89,142,147,167,137,130,224,240,222,161,164,102,211, 55,180,194,242,164, 75, 89,225,153,137,208,250, 96,231,236, 99, 17, 23, +200, 72,161,113, 50,161, 79,105,189, 98,221,243,178,212,126, 72,192,235,190, 82,109,124,121, 81,151, 9,114,240, 41,142,210,217, + 88, 64,250,189, 3,157,193,206, 85,236, 32,132, 87, 49, 46, 25,224,145, 23,141, 84,254, 54, 63, 6, 9, 85, 16, 17, 10, 65,176, +200, 12, 85,150,113, 52, 46, 16,194,227, 29,156, 95,175,248,139,119,222, 5,209, 71,178, 19, 62,193,166, 77,116,197,154, 23, 73, +222, 16, 51,166, 67,136,249,188,189,119, 52,189,163,111,250,216, 93,173,151,177,216,141, 71,140, 39, 35,170, 66, 35,241, 72,109, +232,250,150,198,121, 30,158,157,179,125,122, 26,247, 67, 55, 59,152, 47, 67, 54, 84,177,248, 26,177,131,151, 3, 59,223,224, 97, +160,147, 67,214,252, 75, 60,212,247,247,238, 67, 83,224,210, 62, 87, 14, 76,204, 68, 38,115,118, 23, 30,162, 19,188,173, 19,243, +220, 13,161, 58, 58,194,197,168, 4,127, 37,191, 99, 37,118,118,166,129,104,252,211,247,244, 65,208,107,133, 32, 36, 55, 88,135, + 11,142,197,118,129, 68, 82,234, 17, 74,104, 50,173,144,194,160,165, 98,219, 52, 76,139, 17, 15,183, 75, 56, 59, 75, 39,153, 77, +123,252,253, 2,153,224, 46,103,119, 28, 2, 51,200, 26, 37, 84,229,243, 9,100, 68,166,115, 7, 49, 80,195,122,156, 11, 88, 5, + 5,113, 98, 19, 30,172, 8,224, 3,181,247, 4, 33,232, 83,163, 42, 9,172,187, 97, 23, 42,246,228,107, 73, 70,166, 84, 60, 68, + 92,159,252,207,137,178, 60,215,236,244,222,174,143,215,175,235,119,201,102,251,176,251,231,125,188, 8,161,143,170, 72,230, 73, + 54,187, 78, 42, 90, 27,125,216,221,166,129,235,197,103, 63,123,194,195,108,140,171,170, 36,253,213,188,187,186,228,252,242, 50, + 54,172,175, 18, 10, 50,228, 59,204, 39,252,193,157, 99,114,169,152,149, 83,156,235,121,167,238, 83, 80, 82,186,103,182,215,156, +126,242, 48, 53,160, 18, 49,196,200, 14,211,122,232, 17, 65, 34,115,137, 8, 22,105, 5,178,105, 9, 42,144, 9,193,189, 81,198, +131,106,202, 91,243, 25,147, 34,163,154, 69, 51, 21,223, 67,215, 56,214,151,231,140, 84,142, 57, 24,199,251,196, 65,216, 90, 66, +211,227, 69,160,147,158,173, 20,184, 98,132, 77,220,146,218, 91,132,140, 33, 63, 69, 53,194,217, 30,161, 20, 89,150,209,214, 45, + 50, 8,100,102,240, 65, 80,100,154, 77,239, 57,206,198,116, 90, 98,125,195,179, 46, 74,187, 66, 12, 5,136,164, 68, 27,207,148, +151, 21, 99,249, 25,159,191,204,175, 23,167,248, 0, 4, 31, 97,255,159, 45,150,124,220, 89,124,211,210,246, 14, 39, 2, 87,222, +114, 42, 37,207,132,100, 94, 26,222,210, 25,119, 70, 51,148,202,208,198, 96, 76, 73,171, 13,125, 33,185, 80, 89, 92, 25, 92,175, + 97,121,197,166,243,188, 94,106,148, 84,156,246, 29, 63, 90, 44, 19,139, 59,233, 75, 85, 90,221,142, 51, 80,138,217,100,204,247, +102,135,220,169,102,140,203,138,172,200,120, 71, 73,220,120, 12,183, 79,152,222,127,147, 81, 81,130,146, 84,192,131,201,140,147, + 81,206,196,104, 46,250,134,218, 57,148,214,228, 66,162,165, 96,148,103,252,240,183,254, 41,255,234,159,255, 62,255,236, 55,190, +199,209,252, 62,106, 62,166,155, 29,211,118, 93,146,230, 26,206,188,226, 27,135, 83, 68, 86,209,109, 87,124,252,240, 9,237,242, +154,233,184,164, 93,247,233,249,232,161,109,201,180,194,109,183,209,178,185,237, 83,141,139,199,217,177,210,188, 53,202, 24,201, +140,222,181,145, 65, 79,160,237,123,150,222,242,151,203,134,237,224, 60,103, 20,163, 42,167,207, 75,200,116, 76,203, 19,137, 43, +129,223,157, 73,128, 8, 33,254,250, 21,214,193,151,159, 20, 34, 81,248,135,201, 92,232,221,132,190,109, 34, 57, 34,193,100,251, +142, 61, 55,196,160,127,136, 31, 42, 77,216, 50,197,172, 62, 89,178, 58,217,176,221,108,153,140, 15, 33, 52, 56,219, 36, 82,194, + 62,155, 60, 29,252,147,113, 60, 36,203,148, 50,119,179, 71,108, 99, 45,238, 45,172,183, 41, 35,126, 7,127, 74, 13,193, 7, 86, + 93,207,246,234, 20,135,100, 81,119,172, 47,215,176, 90,127,177, 27,222,103,153,233,244,169,233,232,147,214,193,200,228, 91,239, +227,207,200,144, 78,150,194,105, 20,187,223,219,189,162,190,109,118, 83,184, 75,123,244,125, 97,113,219,196,212, 51, 33, 99,193, +217,191, 23, 94, 28,216, 84, 42,252, 55,221, 73, 6,165,136, 83,103,122, 73, 56,189,155, 84,251,150,101,219,146,101, 26,183,245, +132,205,154,233,120, 12,214,115,114, 56, 5,160,204, 75, 50, 99,112,125,143, 50,121,220,165,251,134,215,230, 21, 15,191,254, 38, +188,255, 65, 12, 48, 81,123,124, 4,217,199,127, 71,217,231,175,111,219,237,146,200, 26, 27, 73, 92,222,199, 48, 17, 37, 33, 3, + 45, 4, 77,231,208, 72, 86,193, 83, 32, 88, 16, 8,206,115, 32, 5, 54, 4, 46,251,158,137,138,141,192, 38, 65,209,197, 16, 64, +228,247,166,213,129,108,227, 93,130,223, 19, 15,194,166,130, 23, 92, 34,246,245,207,255,153, 23,255,251,171,248, 19,232,228,136, +149, 26, 22,186, 62,194,224,214,237,174,255,103, 54, 8, 22,206,174, 57,157, 95,112,234, 61, 44, 47,226, 52, 3, 80, 8,120, 85, +197,229,102, 5,171, 45,109,215,115, 50, 61,100,221,183, 60,209, 49,171, 30,167, 65,118, 59, 18,163,200,227,251, 54,232,117,189, +137,208,252, 80,156,148,197,123,131,207,193,119, 29,254,236, 17,206,247, 60, 10, 61, 63,152, 85,228,128, 81, 2,157,105,100, 46, +200,171, 10,151,107,176, 61,107,215,177, 92,109, 80,143,174,201,239, 76, 99, 19,234, 60,106, 86, 48, 42, 2,186,201, 41,187,146, +243,229, 53, 11,105,233, 61, 28,143, 39,204,110, 29,162,148, 36, 88,104,183, 45, 25, 1,219, 89,132,136,136,157, 17,130,186,109, +168,138,156,215,230,135,252,199,235, 83,166,121,201, 55,111,189,206,149,123,194,199,109,131, 32,139, 69,247,238, 93,184,188,138, +171,182,182,123, 57,116,254, 57, 5,250,121,146,156,190,121, 78, 69, 90,231, 8,187, 99,165,135,255,159,186,247,108,178,236, 58, +239,253,126, 43,237,112, 98,199,153, 1,102, 6,145, 0, 73, 48,136,162,168, 72,221,171,171,107,189,176,222, 58,125, 5,127, 13, +126, 26, 87,185, 92, 46,135,178,101, 91,117,203,215,165,146,117, 45,139,162,196, 32, 6,136, 4, 48, 4, 6,192,204,116, 58,113, +135,149,252, 98,173,221,231, 76, 34, 2, 85,186, 86, 87,117,117, 79, 79,247, 9,123,175,181,158,244, 15,207,248,155, 8,124,176, +217,240,254,102, 67,216,108,152,108, 74,142, 70, 35,220,116,204, 47, 85,193,151,116,137,174, 11,106,161,232, 8,180, 33, 49, 20, +218,224,168,139, 17,119, 15, 61,247,164, 72,190,237,139, 53,108,123,254,135,239,253,132,232, 44,232,241,117,155,154, 73,149, 20, + 44, 67, 62,127,214, 61, 76, 71, 40,210, 56, 78, 41,131, 20, 2, 41, 52,183,170, 49,247,104,161,158,208,121,203, 97, 61, 66,199, +200,237,233,152,219,179, 17,181, 81,172, 27,205,173,110,198, 74,104,240,150,224, 18, 30,228,197,217, 17,175,188,124,151,111,188, + 54,199,148,154,155,199, 37, 55,223, 62,164,111, 54,252,183,189,163,251,240, 62,194,247,196,237,138, 11,111, 57,242, 61,147,170, + 98, 50,159,178,110, 91,150, 87, 93,214,108,224,122,150,221,111,219,221, 57, 65,155,102,235, 19, 7,182,226, 3,161, 57, 31,111, + 24,141, 21, 71,166,102,101, 27,162, 15, 56,224,157,102,203, 89, 8, 40,169,168, 43, 69, 37,210, 40, 86, 86,145, 77, 35,210, 88, +176, 80,233,188,183,221,206,203,163,123, 90,123, 63,254, 42, 64,244, 62,117,248, 83, 87,234, 3, 8,167,200, 21,143,207, 51,219, +224,115,133,222,166, 67,113,219,238,108, 81,201,135,214, 64, 33,250,231,212, 18,127,242,141, 63, 15, 60, 36,101, 58,228,116,238, +155, 18,224,104,204,239,188,126,155,155, 39,199, 76,231, 37,149,209,156, 28, 30,240,225,229, 57,171,237, 22,101, 20, 81, 12,109, +232, 68,237,160, 46,118, 82,152, 42,139, 4,172,123,216,108,224,106,155,248,200,109,127,141, 58, 86, 35,195,200, 40, 68,148,108, +189, 99, 99, 3,103, 77, 67,127,149,231,237,155,203,207,119, 96,171,189, 46, 10,131, 82, 87,110,221, 26,147,237, 70,243, 2, 40, + 51, 21,101, 24,228,201, 61,158,113, 36,123,210,199, 4, 2, 52, 38, 5,222,174,221,177, 20,164,220,241,106, 10,185,107,185,135, +144,103,167,123,115,173, 48,120,162, 15,200,238,140, 54,247, 49,207,239, 67, 66,123,186,252,243,110, 11, 33,176,237, 44,203,190, +103,213,247,148, 74,115, 52,155, 81, 21, 21, 39,179, 99,140, 81, 72,161,209,101,129, 16,146,217,120,130,115, 61, 35, 93, 80,170, +200, 5,106,103,149,232,251,244,248, 62,163,137,221, 51, 58, 65, 74,238,168, 42, 3,208,188, 48,100, 88,123,154,102, 40,137, 37, + 94, 23,212, 32, 17, 49, 38, 45, 23, 18,117,205,121,207,101,219, 81, 85, 26,215,123,182, 54, 80,228, 45,115, 13,148, 27, 40,108, + 3, 86,193,251, 92,197, 59,210, 48, 88,236,130, 88,239, 30,167,118, 62,171,195,245, 60,205,251, 39, 55,122, 53, 74,126,230,227, + 50, 37,120,101, 6, 8,250, 60, 11, 63,187,252,100, 7, 40,111,179,177,142, 72, 93, 42,107,147,167,192,114,243,233, 19, 81,159, + 16, 74,221,164,230,131,222,241,253,182,227,103,155, 54,237,167,102, 11, 62,139,110,168, 36, 49,122,173, 43, 32, 67, 66,194, 83, +164,239,243,216, 68,208, 35,131, 70,184, 6,169, 42,148, 23,168,222, 18,101,224,181,217, 41,199,166, 96, 50, 27, 99,180, 68,150, + 26, 85,106, 34,130,162, 46, 89, 44,150,232,141, 69, 7,129, 84,105,223,248,182, 71, 40,129,170, 53, 69, 81, 50, 50, 37,149, 48, + 8,161,185,117,231, 6,245,193, 24,115, 56, 70, 24,141, 18, 26,239, 34,182,115,200,210, 16,188,199,197, 64, 81, 26, 90, 31,104, +251,150,117,132,214,148, 52,192,168, 52,188,183,110, 8, 50, 18, 11,147,206,139,201, 24, 84,129,240, 1,185,234, 17,217, 65, 55, +239, 32,212,245,167, 70, 37,136,223,222,103, 72,191,227, 65,150, 5,210, 8,164, 18, 72,145,212, 48,165,247, 79,183,225,247, 43, +246,253, 79, 47,232,172,227,114,221,176, 88,246,196,182,227, 81,140,252,198,116,204,161, 54, 76,234, 9, 0,239,180, 27, 46, 92, +199,199,125,207, 54, 6,122, 17,113, 66,195,225, 12, 38, 35,226,100, 2,179, 89,218, 71,171, 38,105, 30, 92, 44,211, 26, 57, 63, + 75,126, 20, 34,209, 21, 27,160,150,142,185,210,180,206,114,101, 59,254,106,181, 77,123,161,168,185, 51,154, 50,146,138, 50, 6, + 94,158,140,152, 40, 73, 89, 40,188,130, 94, 40, 62,180, 14, 87,150,212,166,194, 17, 25,153,146, 55,191,240, 50, 7,211, 17,109, + 31, 48, 72,182, 54, 34,162, 68, 19,249,229,250, 42, 61,119, 81,114,235,228, 16,163, 10,122, 4,239, 93, 93,225,151,103,153, 97, + 16,210,243,219,236, 36, 24,158,156,207, 39,227, 33,164,166,233,123,126,218,123, 94,174, 36, 70, 68,122, 31,232,188,231,157,126, +195, 79, 54, 61, 27,239,145,217,151, 69,163, 16,165,160,245, 36,165, 65,145,217, 35, 82,165,241,168, 16,121,236, 41,114, 49,229, +159, 15, 42, 44,139, 84, 84, 85, 38,237,199,161, 91,250, 43, 42,251,199,131,186,148, 48, 58,132, 98,154,128, 14,163, 81, 86,184, +146,201,122,174,168, 18, 34,215, 84,169,202, 40,244,110, 46, 54,104,214,126, 30, 78,237, 63, 69, 48, 31, 14, 55,249, 12,125, 94, + 85,236, 29,230,164,139,116,115,204,183, 94,189,205,168, 30,209,181,129,186, 42, 80, 50,112, 88, 76,248,104,181, 96,219,111, 81, + 50,166, 24, 88, 40,162, 86,200,202, 32,164, 76,168, 73, 31, 97,217, 38, 95,246,197, 26,150,217,159,125, 86,167,235, 54,174, 48, + 38,205,147,173,247,248, 0, 27,239,211,225,237, 61,172,206, 63,123, 53,166,115, 23, 37,184, 93, 94, 39,217,179,161, 53,105, 30, + 99, 76,230, 71,154, 28,108,217,161, 57, 7,224,154,209,121, 54,170,211, 74, 68, 67,200,153,234,224,152, 23, 99,170,160, 66, 76, +139, 63,100, 10,214, 0,138, 51, 58,183,189, 51, 35, 32,100,107, 77, 93,236,230,251, 42,238,130,103,148, 89,191, 63,183,166, 93, + 82,251,162,235, 97,181,133,208,179,145,154,227,233,148,195,106,204,108, 58,197,123, 79, 89, 22, 40, 41, 24, 79, 38, 56,107, 9, +193, 98,187,158,178, 40, 8, 42,178,106,186,244, 6, 93, 72, 45,238,190,123,254,104,199,251,188, 49, 34, 96,114, 82,147,121,236, + 25,131, 16,131, 39,202,152,198,219, 49,210,245, 14, 39, 99, 50,112,241, 17, 27, 28,141, 15, 76,180, 98,219, 88, 10,163,114, 52, +207,231, 68, 8, 59,228,255,208,245,232,236, 30, 74, 63, 38, 0,159,103, 39, 60, 33,194, 39,239,157,231, 5,245,199, 70, 42, 21, +220, 60, 74,201,247,168,230,141, 73,193,177, 54,212, 81,112,164, 21, 55,100,224, 98,185,250,228,181, 39,196,142, 2, 26, 99,154, +237,111, 59, 88, 52,159, 92,233,239,239,205,174,227,170,141, 60, 10,145,141,202,215,223,147,170, 32,187,190,166,179, 37,212,176, + 73, 65,222,107,132,235,147, 0, 77,238,128,136, 40, 17, 42, 38,122,155, 8,200,114,130,244, 61, 50, 68,214,209,115,103, 82,113, + 84,205, 24, 41,141, 86, 18,169, 20, 33, 6,212,164,196, 90, 79, 64, 96, 53,244, 23, 43,100,231, 8,173, 69,212, 6, 57, 41,137, +214, 35,141,166,156,212,140,203, 17,243,217,148,234,116,134,158, 84,168,113,133,170, 12,193, 6, 90,235, 16,133,196,134, 64, 80, +146, 32, 37,141,247, 4, 33,184, 10, 30,163, 20,235,174,163, 51, 6,173, 43,222, 58, 57,230,230,184,230,168, 54,220, 28, 25,254, +139,219,183,248,175, 95,191,203, 91,167, 35,254,106,213, 34, 93, 64, 6,119, 29,204,245,240,213,104,180, 82,104, 37, 51,222, 80, +160,188, 71,121, 80, 74,163, 42,185, 75, 4, 4, 40, 41,144, 49, 33,224,229, 94,235,254,233,106, 93,167, 22,122, 78,110, 35,145, +216,103,157,254,117,199,182,138, 8,111, 57,179, 13, 87, 81,240,113,223,114,207,182,108,172,229,178,105,137, 66, 98, 51, 59, 70, +214, 21, 98, 52, 34,102,103, 63, 70, 21, 84, 21,163,233, 4,187,216,100, 91,209,144, 40, 89,139, 45,244, 61,247, 31, 92,242,221, +143, 30,112,213, 47,249,139, 95, 62,130, 15, 62,204,235,106,205,202, 54, 84,125,143,176, 13, 69,136,204,140,194,134,192,186,109, +249,225,229,154,141,212,248, 24,145,198, 32, 84,193, 89,215,113,103,114,200,205,185,193, 89,199, 98,213,177,117,160,181,132, 62, +242, 96,253,136,237,102, 11, 77,195,225,193, 17, 33, 70,186,190,227,131, 95,188, 11,155,101, 46, 90, 51, 8, 85,239,241,204,159, +220, 87, 33,183,203,183, 14,175, 4,127,223,118,252,223,151, 43,222,110, 59,254,118,189,225,199,139,150, 77, 76,116,213, 66,194, + 76,107,186, 24,136, 66, 38,207,166, 97,236, 27, 19,173,247,200, 20,180, 18, 94, 61,152,112, 37, 76, 22,235, 82, 59, 9,229,167, +138,184, 12, 52,237,243,226, 16,207,176,133,125,110,251, 93,235,164, 62, 53, 59, 76,243,218,168,178,218, 85, 1,151,151, 80, 5, +104, 87, 80, 78,210, 28,216,100,126,162,201,237,216, 65,217,203,185,127,222, 10,125, 95,201,108, 16, 81, 25,254,237,220,222, 91, +204, 78, 56, 58,253,205,203,211, 81,166, 77, 70,170, 66, 98, 10, 77,111, 35,101,110, 87, 42, 4,165, 0,105,210,251,178, 22, 98, + 70,236,247,214,165, 96,212,183,169,165,178,204,193,112, 86,229, 89, 82,170, 88, 61, 17,105, 10, 68, 76, 7,100, 41, 3,157,144, +159, 13, 16,247, 36,128,201,183, 32,170, 76, 83, 11, 59,174, 56,164,255, 43,178,232,193, 53, 90, 61, 47, 6,159, 91,244,251, 90, +223,229, 36,161,229,251, 12, 98, 11,213,110,132, 50,140, 86,182,171,180, 97,125,174,194,237,240,213,237, 84,232,174,171,203,225, +189,245,233,185, 6,235,207,184, 55,103,133,221, 8, 71,230,182,179,203, 86,179,155,158, 48, 25, 97, 2,196, 24,233,156,163, 42, + 43,132,148,232, 34, 85, 71,169, 59, 22,249,222,131,247,248,218,233,109,198,198, 80,158,206,233,174,214, 57, 97,202,175,223,254, + 10, 43,211,216,166,128, 14, 73,176,162,202,107,196,231,235, 84, 25,176, 73, 60,100, 8,202,222,122,218, 24,169, 60,120, 25, 48, + 14,214, 46, 80,105, 65,231, 82,160,170, 76,106, 26,116, 42,111, 82,163,119,216,145, 65,203,125, 16,224, 24, 2,163, 54,169,253, +238,229, 39,143,175,246,247,214,222, 82,127,172,139, 51,159, 51,159,212,152,217,136, 27, 82, 49, 51, 5, 91, 23, 49, 37,168,224, +241,189,228,213,227, 99,222,221,222,255,228,231, 90,183, 48,233, 82,162,164,115,199,174, 72,157,201, 79,189, 55, 71, 85, 74, 96, +203, 92,150, 78,138,212,241, 58,157,165, 91,112,113,158, 76,101, 84,149, 70, 40,195, 45, 42, 52,194,107, 34, 14,130, 33, 42,155, +243, 66, 75, 12, 37,193,247,248,178,198,105,133,125,180,228,127,253,209, 15, 24, 71,193,188,252, 58, 82, 41, 60,130,114, 84, 16, +123,143,152,214, 8, 31, 88,158,175,112,210,114,255,195,123,140,100,228,120,118,202,232,116,142, 26,151, 72,153,199, 2, 35, 65, + 57, 31, 35, 39, 73, 57,113, 16, 67, 9, 66, 18,163,192, 75, 73, 52,208,228,110,148,170, 20,155,117,147,192,103,120,212,168,100, + 46, 13, 55,162,163,139,145, 98, 58,227,197,245,134, 66, 27,254,112, 62,162, 38, 80, 86, 83,126,183,151,124,247, 23, 31, 49, 61, +158,208, 54, 13,210, 6,102, 64,211, 89,164,117, 72,231, 17,131,135,183,183,215,103, 91, 52,250, 41,206,122, 28,130,180,123,188, + 34,223, 63,102, 2, 26,177,223,226,181,225,122, 1,197, 46,161,191,127,252,119, 11,126, 60,159,115,251,246, 41,107,161,185, 49, +155,242,113,150, 22,142, 49,178,237, 60,197,184,192,201,196,124,153,148, 21,109, 76,235,254,173,219, 55,121, 57,118,244, 93, 79, +123, 52,226, 7, 77,195,253,143,174,146,184,141,112,176,190,202,186, 74,129,183,239,127,176, 91, 35, 75,141,248,210,239,242,202, +228,144, 27, 85, 5, 97,195,213,102,201, 61, 21,144, 82, 17,130,231,170,233, 81,170, 96, 90,214, 9, 15,101, 45,181,144,108, 62, +190,207,189,197, 21,181, 52, 92,184,192,228,245, 87,137,165,230,206, 75,183,248,250,242, 85,254,207,243, 5,156,159,241,227,255, +231,175,119,103, 90,183,217,139, 25,123, 4,132, 95,245,209,245, 96, 2, 92, 56, 88,151, 48,174,185, 88,101,141,249,124, 78,170, + 73,141,138,129,149, 11,140, 74,205,186,203, 12,161,222,131,134, 63,157, 86,220,136,145, 57, 0, 19,188, 13,124,124, 56,227,127, +218, 58,220,162, 77,137,198,106, 5,182,223,141, 81,202, 34,157, 83,195,248,146,140,103,178,242,217,251,255,169,160, 62,170,161, + 58, 74, 30,211,202, 64,219, 38,190, 92,211,193,252, 16,232,147,137, 70,183,222,205,212, 11,189,155,185,199,161,141,246,252,172, +125,244,123,191,201,246, 47,255,230,159,190, 82,223, 63, 68,158, 2, 20,237, 81, 70,100, 62,200, 85,207,189,143, 23,124,243,238, +150, 48, 58,194,148, 6,169,161, 82, 37,127,241,179,159,112,241,241, 5, 24,216, 22,145, 73,126,188,170, 84, 88, 11, 91,151, 57, +199,235, 38, 85,231,203, 54, 7, 69,153, 40, 68, 70, 64,165,174, 27, 33,135,229, 4, 41, 21,198, 84,124,184,186,160, 27,120,202, +101,190,198,159,229,163,235, 83, 59, 38,132, 29,143,220,134,157,242, 16,213, 14,160,228,119,221,249,148,190,231,223,209, 58, 97, + 3,122,191,211,229,222,191,143,251, 12,135,144,175,239, 48,243,244,121,152,106,115, 0,241,215, 15,158,231,237,114,151, 64,120, +210,154,105,114,102, 41,121,188,109, 59, 24,124, 40,185, 75, 70, 10, 13, 10, 44, 29,202,104,182,237,134, 24,234,235, 68, 11, 2, + 90, 73, 74,173,248,202,233, 75,156,175,175,168,202,146,170, 50,116, 70, 38,228,109, 40,210,252,248, 87, 1,180, 29, 36,162,249, + 54,137, 60, 12,243,238,125,205,250,152,223,155,221,105, 11, 7, 45,104,101,100, 82, 21, 20,170, 96, 28, 60,155, 69,131, 34, 49, + 65,186,144, 94, 66, 73, 96,217,248, 29, 62, 33,207,223,177,185,171, 97, 51,142,161, 8, 89, 53, 46,139, 79, 12,207,253,105,242, + 98,247,236,237, 60,159,106,166, 85,133, 50, 21, 7,165,129, 24,152, 25, 77, 99,123,250,206,115, 96, 52,141,240,105, 15,111, 63, +197,250,243,238,154,198,132, 54, 41,153,103,245,233,246,165,219, 75,178,182, 93,186, 56,190, 72,227,142, 16,161,236,161,154,130, +111, 82,133, 46,202,204,166,113, 59,140,134, 15, 48, 4,116, 61, 38,244, 27,194,168,194,175, 86,120, 52, 78, 68,172,208,172, 31, + 93,241,243,135,239,115,123,118, 3, 93, 24,154,222, 49, 37, 75, 21,228, 60,164, 45, 4,155, 94,115,142, 35,108,183,196,139,143, +185,249,209,132, 55, 94,124,153,233,139, 39, 40,173,209,227, 26, 66, 68, 42,149, 26, 43, 14, 92,227,104,215, 45, 91,235,176, 26, +202, 66, 16, 85, 66,199,111,108,160,169, 10,150, 33,208,136, 72, 20,130, 3,231, 56,247, 18,175, 21,119,170,130,143,199, 83,140, +243,216, 58,141,227,206,163,230, 91, 95, 62,228,171, 95,145,184,109,131,116, 61, 70,194,213,242,146,166,219, 98,131,231,195,135, + 87, 64,199,197,253, 13,162,185,132, 62, 57,183, 69,155, 58,165,241, 58,168,167,196, 39,118,253, 83,193, 60, 15,161,174,191, 62, + 89,185,139,189,200,112, 61,105, 90, 44,184,191, 88, 16,181,230, 74,215, 48,170,146,217, 75, 85, 18,181,162,111, 96, 52, 29,131, + 82,108,130,165, 22, 37, 55,149,228, 75, 70, 50,215, 71,120,181,165, 24, 31,160, 23,103,220,111,129, 81,155, 40, 99,155, 54, 3, + 65,247,248,235,166,128,187, 95,229, 63,253,218,183,153,207,231,244,155, 5,203,205, 61,188, 92,114,149,215,230,214,245, 72,111, + 49, 42,233,183,107, 83,177, 14,150, 27, 66,112,203,119,204,154,128,213,134,211,114, 68, 37, 60, 23, 34,221,243,131,201,140, 98, + 60,162,211, 25,219,241,228,188,250,186,232,251,148, 31,214,237,144,241, 77,147,240, 42,166, 74,103,189, 41,241,139, 13,219, 74, + 49,171,107,154,222,161,180, 98,107, 19, 45,238,182,128,113,140,252, 70, 89,177,142,158,169,208,168,169,225,101, 4,219, 81,207, + 15, 15,231,124,112, 49, 78, 74,114, 15, 30, 36, 87, 78,178,169,206, 16, 83,226, 94,241,179,143,139,122, 6,142, 34,181,223,181, +134,233,113, 82,178,137,234, 90, 78, 83,169, 50, 89,244, 9, 1,109,200, 64, 22,153,103,234, 67,213, 88,164,202,103,208, 7,127, + 94,251,240,206,171,124,251, 43, 95,229,189, 77, 3, 87,151,255,116, 65,125, 64, 85, 15,179,244, 33,184,239, 43,166, 41,185,163, +115, 9,153,130,203,166,229, 29,122, 94,157, 78,136, 81,210,181, 29,111,255,226, 29,126,252,224, 10,187,186,202, 66,254, 10, 31, + 34,227,194, 16,137, 88, 1,190,115,176,202, 38, 23, 93,214, 27,150, 89, 29,107, 82, 66, 57, 74,149, 8,145,233,120,198,124, 50, + 69,106,147,148,196,165,100,217,181, 9, 29,127,181,253,124,238,107,215,109,238, 28,177,245,158, 71,184,207,130, 47, 3, 86, 77, +100, 69,181,125,183,175, 50,189,182, 84,121,229,175,214,165,164, 46,228,170,178, 24, 2,118, 76,156, 80,223,100, 26,154, 76,179, +247,202,236,105, 20,228,150,187, 44, 51, 71, 62,209,213,112, 54,137,233, 12,226, 43, 79,182,139, 6,101,169,129,250, 54,206,244, +150,201,152,121, 85, 34,163,192,135,128, 68, 34,181, 34,134, 64,239, 59,218, 77,139,139,142, 77,179,198,147, 90,218,222, 90, 86, +157, 77,247,216,246,201,221,238, 19, 89, 24, 46, 37, 98,131, 36,164,139,169, 21, 63, 84,237, 66,237, 54,241, 32,149,155, 53, 34, + 14,170, 26, 41, 2, 94, 40,182, 77, 79, 97, 36,133,140, 4, 23, 9, 33, 34,181, 76,222, 53,144, 42,187, 65, 18, 86,134,157,170, +222,160,255,224,247,228, 98,241, 79,211, 14, 63,203,199,193,156,131,201,132,233,225,148, 88, 26,166,166,162, 84, 6, 71,146,190, +221,246, 22,105, 91, 54,219,150,197,249,226,233, 32, 28,158, 16, 74, 24,149,112,122,196, 27, 71, 83,190,121, 56,226, 55,142,198, + 28,141, 21,239, 63, 92,127,242,218,173,138,148, 20, 93, 91, 35,103, 63,133, 81,157,128,141,245,140, 59, 35, 67, 24,149,244,103, +139,204,208,200, 30,240, 54,181,151, 68,200, 95,163, 76,237,120,225, 17, 65, 35,156, 71, 84, 10,164, 65,132,152,184, 9,126,203, +253, 71,107,142,102,154, 89, 57, 71, 8, 77, 23, 97,211, 59, 54,109,207,202, 59,182,214,241,225,114, 69,231, 45, 23,221,134,243, +126,197, 7,221,134,179,229, 57,114,213, 50, 63, 60,130, 16, 80,198, 16, 92, 36,246, 14,187,234,105,206,214,124,116,181,102, 25, + 60,157,136, 56,163,176, 34,242,208, 71,186, 74,211, 6,216, 32,208,133, 65,121,143, 49, 10, 35, 36,174, 44,145,198,160,165, 0, + 99, 88,233,130, 43,235,185, 50, 5, 97, 84, 35,141,161,200, 62,241,149,169, 40,117,193, 68, 26,222, 28,207,248,198,201, 93,190, +124,248, 2,111,222,122,129, 77, 1,237, 38, 98,138,164,136,102, 32,201, 39, 3,134,128,182, 14, 29,194,117,251, 62,181,230,143, +145, 52,215, 36, 24,129,124,110,102, 24,159, 53,207, 13, 1, 92, 79,108,182, 9,255,208,108,210,218,213, 26,155,233,204, 35, 83, + 49, 82,145,215, 71,154, 3, 31, 24,107,133,209,154,166,111, 56,174, 70, 92,132,192, 69, 36,157,139, 85,153,214,131, 23,136, 66, + 38,206,251,248,132, 63,248,189,127,203, 87,191,252, 26,135, 71, 53,101,169,105,214, 45, 62,108, 40,138, 18, 79,214,112,176, 22, +225,114, 97, 28, 4, 50, 68, 42, 97, 57,213,201,120,201,147,204,149,238, 59, 65, 35, 53,171,117,203,249,213,130,127, 60,255,152, +248,224,193,174,120,121,222,200,234,179,152,166,120,159, 37,178, 51, 53,181, 27, 24, 47,137,151,222,117, 22, 39, 36, 86, 12,179, + 56,207, 23, 75,201,151,181,196, 10,193, 76, 40, 90,173, 56,208, 53,125, 81, 82, 85, 99,222, 67, 51,153,207, 88, 72, 9, 71, 7, + 80,141,211, 94,240, 54, 83,222,114,102, 90,100,145,156,103,188, 31,241, 84, 80,175, 10, 56,190,157,104, 62, 38, 75, 21, 6,153, +230, 45, 49, 5,183,228,103, 46, 97,187,200,115, 72,151, 90,243, 93, 6,207, 13, 92,220,231,125, 44, 46,121,239, 71, 63,250,167, + 13,232,195,205,209,250,241,153,250, 48,155,188,238, 61,101, 85, 53,113,141,100,130,206,226, 47, 87,220,211,150,191,254,135, 95, +240,183,127,253, 99,126,254,227,159, 96, 31,158,239,184,244, 64, 49,210, 20, 82, 18,144,200, 8,125,219,167, 42,207,219, 4,136, +155,212, 41,200, 21, 89,216, 63, 59, 30,129,228,100,122, 68, 81, 84, 8, 4,101, 89, 96,116,193,217,253,251,112,177, 72, 1,240, +243, 28,222,194,103,119, 49,177, 83,105, 27, 90,240,106, 79,143,125, 0,194,133,152,240, 15,131,216, 79,200, 82,132,195,124,215, +186,157, 25,129,218, 75, 16,100,166,163,233,220, 46, 14,121,150, 62, 0,232,134, 64,231,243,235, 16, 62,243,230,227, 78, 72,195, +125,194,251,147,185, 26, 22, 25,239,160, 18, 0,209,150,138,227,122,130,136, 26, 79,199,166,109, 82,238, 98, 35, 77,219,178,217, +172,177,193, 33,240, 92,110, 55,188,191, 88,167, 74,176,239, 18, 72, 39,186, 79, 47,134,228,178,125,218, 40,163,197, 69, 62,230, + 6,231,167, 33, 25, 9,225,218,246, 87,213,146, 90,106,154,174, 3,231,115, 87, 57,105,110,143,181,100,166, 4, 90, 70,100, 16, +180,249,255, 99,231,114,245,151,199, 84, 33,215, 80, 42,175, 79,216, 73, 38,127,222,160, 62,158, 96,199, 37, 98, 54,162, 86, 21, + 86, 8,140, 20,120,169,216, 4, 16,209,211,187,192,207,207,182,233, 16,178,185,179, 85,229,222, 94,153,173, 34, 7, 21,201,227, + 99,222, 60, 61,226,219, 55, 78,121,101,126,204,216,148,220,170,107,102, 53,188,251,209,197, 39, 84, 54,164,174,132,202, 35,169, + 40, 83,167,108, 54, 70, 30, 28,240, 95,221, 56,230, 55, 15, 79,248,114,173,248, 94,211, 36, 34,189, 82, 89,193, 81,164, 2, 66, + 6, 68,187, 77, 24, 13,101, 32,170,164,112,150, 41,154, 34, 88,132,243,105, 47,201,154,216, 53,252,227,213,138,218,120, 26, 7, + 54,106, 58, 34,143,250,158,171,174,229,106,211,224, 4, 60, 90, 47, 88,249,158, 38, 10,164,136, 4,169, 57,239,183, 44,206, 23, +212, 86, 34, 99,164,191, 76,250,237,205,217,138,247, 63,126,200, 59,155, 5, 75, 28,189, 49, 44, 66,100, 29, 5,157,128, 94, 9, +162,146,184, 66, 83, 35, 40,181,102,235, 29,141,143,156, 26,205, 66, 42, 52, 80, 43,201,149, 11, 89, 96, 69, 35,141,162, 54,138, +224, 3,227,162, 32, 56,199, 68,192,239, 31,156,242,214,209, 13,222, 60, 58,230,246,244,128,147,209,156, 87, 79, 95,228,214,205, + 35,198, 55, 15,185,156, 76, 49, 40,116, 52,152,222,163, 99, 72,254, 34, 90,161,133, 64, 27,205, 75,191,255, 91,252,214,191,250, + 54,239,255,240,251,123,192,185,180,215,196,175,110,245, 60,255,140,181,110, 39,197,218, 88,124,219,211, 41,193, 68, 41, 14,162, +229, 11,227, 57, 70, 74,182, 93,195, 68,107,214,193,113,223, 59,206,107, 67,172,139,164, 89, 48,159,194,180, 66,212, 19,168,102, +188,245,141,223,226,213,147, 91,220,185,123,152,140,209, 10,205,118,177, 96,219, 45,209,122, 76,101, 42,180, 20,216,222,226,131, +165, 42,167, 84,101,133, 86,130,117,111,185,108, 87, 64,160, 87, 37,231,162,228,222, 38,242,254,217, 5, 15,175, 46, 88,244, 29, + 31,174,175,114,155,198,254,106, 26,230,103,217,110, 58,251, 99, 12,194, 82,248,157,163,102, 22,152, 18, 34,123, 92,100,253,144, +127,165, 34,175,104, 77,140,130, 40, 37, 94,107,130, 50,196,162, 32, 42,131,169,107,110,205, 14,121,235,240,152, 87, 38, 35,190, +122, 56, 69,142, 20,139,160,240,155, 62,117, 60, 7,224,111,255,124,234,201,112,175,119,189,106,153,196,111, 0, 66,103,243, 6, + 79, 98, 13, 97,177,222,189,129, 34,207, 9,201,213,156, 41,118,200,221,255,216, 31,215, 51,245,103,180,224,187,103,252,110, 12, +172,191,255,206,227,200,104,178, 60,108,159, 17,253, 66,210,135,128, 18,146,198,237,169,129, 13,207, 17,114,160, 51, 25,193,108, +179,222,112,173, 88,116, 45,186, 54,140,138, 10, 98,224,193,197, 85,162,189,225, 62, 63,101,201,229, 85, 88,200, 93,111, 45,228, + 27, 24,179,165,223,208,146, 31, 42,244,161,242,206,146,181,248, 61,109,233,125,253,230, 32,119,191, 59, 84,225,158, 29, 94,162, +207,143,207, 48, 47,222,123,158,235, 36, 74, 62,221,106,255, 85,239,229,218,180, 40,166, 4, 98,185,101, 89,151,124,108,206,184, + 53,191, 65,187,134, 66, 43, 30,245, 45,211,106, 66,227,182,172,109, 75,239, 90,206,183,107, 70, 90,103, 11,183,161, 99, 96,159, +125, 94,253,230, 87,249,131, 55,190,194,229,250,146,159,252,217,159,239, 81,169,100,122,238,206, 67,185,135, 11, 40,196,174,163, +240,228,230, 89, 54,220, 15, 29, 69,244,212, 82, 97, 2,212, 49,210, 92,231, 93,158,145, 16,140,138,200,184, 80,124,180,241,232, +218,208, 53, 57,217, 17,185, 67,224,179, 32, 77, 17,118,116, 63,177, 55,139,127,214,136,233, 73, 4,212,254,124, 48, 4, 38, 99, +131, 17,146, 7,222, 18, 28, 76,235,154, 70, 72, 86, 4,106,105, 80,101, 65,121,235,128,110, 93, 37,112,226,102,149,124, 14,164, + 78,235,160,205,143,183,222,130,214,188, 54,159,112, 48,158,227,128,201,104, 12, 69,203,201,244, 34,181,205, 99,183,163, 48,198, +240,196,117,119,160, 38, 9,135, 51,170,210, 11,108,151, 32,111,242, 71,163, 41, 47, 31,222,192, 16, 48,245,152,255,252,141, 13, +255,253,213, 50,177, 71,132, 72,201,114,151,169,137,179, 99,104, 22, 73,153, 76, 8, 98,244,196, 32, 8, 69,133,167, 69,248, 2, +161,122,112, 13, 81, 58,194,106,193,255,248,195, 31,243,199, 95,182,156,110,206, 56, 60,184, 73,208,154, 77,112, 8, 17,136,206, +177,240,142,166,247, 28, 25,195, 88,150,200, 24,233, 8,220,243, 27,126,242,238,247,184,251,209,156,187,245, 1, 49, 4,150, 93, +195,125,215,112,105, 20,177,186, 69, 17, 60, 99, 20, 86, 66, 85, 8,172,139,168,210,224,189, 37,170, 4,232,155,234,130, 96, 91, +238,175,215, 28, 72,201, 74,105, 46,235,146, 19, 33,216,216, 64,239, 60,194, 24, 92,140,152, 16, 57, 40, 12,213,100,196, 29, 51, +231,166,214,148,194, 80, 0,117, 41, 49, 82, 48, 81,130,155,197,203,252, 54,183,249,195, 91, 75,214,205, 10,239, 35,139,230,146, +224,123,218,118,203,119,239,159,241,198,180, 4, 34,127,247,203, 11, 52, 63,161,218, 76,177,199, 22,233, 92,166,188, 61,223,140, + 37, 60,177,172,196, 19, 95,175, 63,182,109,250,220, 20,240,240,130, 7, 55,142,240,243, 17,191,109, 74,108, 76,182,197, 91, 31, +104, 66, 96,163, 5,161, 39, 37,100,163, 2,209,247,144,145,245, 71,102,202,203,167,183,208,133,164,109, 91,148, 80,172, 87,107, + 58,219, 98,132,161,210, 26, 99, 74, 84, 47,217,148, 27,156,243,116,182,167, 46, 43,140, 48, 72, 25,120,180,241,172,195,150, 35, +113,147, 27,167,167,220,169, 74, 46,214, 91,254,254,254, 61,126,182,188, 72,227,227, 27,135,105, 45, 62, 20,136,216, 37,252,192, +147, 45,248,231,181,226,181,126,186,213,237,246,168,220,195, 57,167,117, 2, 76, 11, 11,141,134,106,192, 12,165, 98,238,102, 93, + 80,133, 12,141, 39,209,249,188, 16,148, 66, 33, 67, 90,189, 18, 0, 0, 32, 0, 73, 68, 65, 84, 76,133, 82, 5, 5,146,178,170, + 56, 86, 5, 86,151,252,142, 80,188, 57,170,249, 15,135, 35, 30, 60,218,164, 89,123,187,218,141, 8,247,164,154,227,115,103,234, +151,103,132, 91, 47, 82, 24, 67,143, 73,104, 93, 35, 9,189, 75,122,191,171, 85,170, 78,135, 57,106,116,185,117, 25, 62,191,201, +202, 63, 53, 88,238,211,102,161, 58,255, 78,208, 79,247,158,134,116,103, 82, 82,206, 43, 42, 85, 64,244,196,172, 42,182,123,140, +204,113, 28, 2,251, 32,206, 63,184,132, 69, 88,111,215, 84,198,176,217, 88,148,134, 69,179,205,129,242,215,189, 96, 46, 43,142, + 13, 1, 54, 87, 70,131, 81,192,254,195, 15,115,221, 97, 49, 63,121,173,202, 98, 15, 13, 63,152,222,228,191,177,125, 62,144,217, + 89,177,178,159, 48,236, 61,135,149, 59,128,218, 39, 9,165, 60,121,239, 68,230,148,123,145, 64,128, 77,199,163,237, 22,207,199, + 76,203, 25,203, 54, 80, 21, 53,109,215,115,222,174, 9,177,231,188,217,114,119, 58,231, 39,239,190,151,109, 11,179, 71,184,205, + 9,166,206, 55,122,160,245, 45,155, 20,208,207, 30, 60,254,220,165,220,157,106,206,166,214,112,204,116, 1,235,118,110,106, 82, +160,240,148, 74,227,109,100,162,253,181, 56,247,180,132, 62, 68, 70, 67,135, 72, 64,141,192, 17, 49, 72, 14,203,200, 85,227, 41, + 10, 65,223,199,107,145,149,235,192,222,231, 36,194, 15,236, 4,118,216,137,200,227,192, 69,246,112, 18,143, 25,170,164,100,243, +162,117, 92, 85, 61,166,168,120,179, 26,177,245,129,121,161,184, 93, 22, 80,107,126,122,214,225,166,227, 20, 56,199, 53, 52,147, +212,105, 82,185,251,118,152,125,158,111, 30, 2,240,161, 11,156,122,199,188, 30,177,142, 9, 85,254,115, 49,130,187, 55,179, 64, + 71,158,151,219, 38,113,112,135, 57,189,206, 20,216, 81,150, 9,181, 29,152, 41,244,158, 18, 69,235, 61,186, 44,185,180, 61,247, +228, 56, 29,192,219,188,222,218, 85,214, 84,128,232, 54, 8, 89, 37,198, 9,128,169, 9,177,133,190, 69,148, 18,175, 29,201,203, +203, 19,131, 33, 72,139,235, 44,127,254,131,159, 80, 77,198,124,245,246, 1, 7,163, 41,211,201, 49, 94, 73,180,237,152, 22,134, + 64, 75,140, 21, 94,168,164, 18, 38, 53,141,235, 89,232,130,127,247,241, 47,105,253, 59,220, 85,138,169, 72, 9,238,120, 60, 71, + 53, 51,162,168, 17, 46, 80, 58,207,184, 44,105,125,164, 12,142, 66, 10,164,139,212, 74, 96,163,134,178, 64,245, 13,139,222,114, + 82, 4,218,135, 87, 60, 82, 42,205,134, 77,133,236,122,122,165, 57,174, 12,115,231, 57, 42, 74,102,133,100, 60,170,208, 94, 16, + 60,232, 40, 24,213, 6, 23, 3, 39, 58,210,183,150, 23,102, 71,248,241,148,109,223,162, 14,142,216,174, 86,152, 99,205,159,190, + 96, 9,182,131, 16,249,227,155, 11,198,122,204, 95,254, 73,228, 7,139, 43,238,125,188, 66,108,214,233,108,216,174,247,230,241, + 79,207,101, 3,207,159,213, 62,133,239,161,135, 51,203,217,162,228, 63,224,120,125, 62,101, 90, 86, 52, 4, 62, 34,226,115,130, + 47,149, 36, 56,203,100, 50, 99,235, 35, 7,186,228,141,201, 41,135, 71,167,104, 96,185,106,104,150,139,196, 32,235,122, 92,238, +222,105, 81, 32, 10,197,184,168,177, 46,205,227, 93, 8, 24, 85, 50, 42, 39,156,140,239, 48, 26,157, 82,141,231, 28,206, 11,188, +240, 28, 90, 5,116,185,109, 77,106,251, 31, 29,164,222,253,213, 26,161,214,169, 3,173,158, 0,166,150, 69, 6,196, 13, 2, 90, +123, 1,127,112, 68, 30, 18,237, 46, 51,120,186, 39,227, 79, 46,150,108,159,215,114, 65,215, 58,238,107, 79, 21,224, 5, 41,177, + 58,160,133,196, 75,197, 10, 65, 39, 13,133, 41,241, 66, 82, 32, 40, 39, 19,188,210,160, 75,250,224,185,121,224,121, 16, 11, 68, +223,130, 60, 76,230, 98, 0, 23, 23,169, 8,242, 22, 97,219,103,204,212,173,131,209, 4, 68,106,213, 17, 21,170, 40, 18,191,174, +207,173,151,245, 58,101,245, 42, 62,157,195,133,248,207, 75, 99,251,181,231,240,123,222,225,215, 1, 43,238, 60,164,111, 30,242, +214,171, 55,185,115,112,192, 23, 79, 79, 56, 28,141,185,236, 27,182,157, 77,128,143,109,159, 5, 11,212,227, 8, 20,124,214, 36, +214,215,109,254,109,116,108, 93,199,102,211, 18,109, 6,140,100, 32,196,231, 31, 57,228, 3,221,100,196,110,200, 96,110, 53,112, + 30,213,238,103, 3, 53,237,121, 20, 8,145,233,105,206, 63,238,154,229,195, 78,100,199,231,121,167,217,227, 92,135, 12,126,203, +163,154,235,118,250, 32,123,250,228,122, 24,168,135,207, 90, 39, 3, 22,194,199, 68,225,216,108,177,214,177,180,158,179,237,150, +243,109,195,131,245,146,181,107,121,240,209, 25,139,179, 75,250,224, 57,251,229,199,169, 37,232, 92,162,202,181,155,235, 0,124, +109,247, 58, 0,250,154, 13,103,103,107,184,119,111,119, 45,116, 86,212, 27,212,239,204, 96,137, 40, 82,203, 46, 88, 16,146,209, + 48,197,136, 73, 30, 82, 33,169,164, 36, 34,152, 86,130,109,155, 80,240,133, 16, 76,132,160, 18,146, 82, 72, 60,176, 33, 85, 99, + 83, 69,146,161, 53,130,198,250, 93, 22, 25,124,222, 83,236, 84,255,180,120,220,229,110, 96, 16, 12,159, 3,102,226, 73,183, 52, + 37,161,168,137,227, 26,111, 12, 95, 51,154,219,147,146, 73, 97,152, 20, 37,117,140, 92,161, 40,203,154,149, 22, 68,163, 96, 92, +241,173,249,156,201,168,230,168,212, 76,235,154,182, 52,248, 34,105,183, 63, 16, 2,107,198,212,178,100,105, 3, 15,125,228, 47, +122,155, 70, 21,211, 58,181, 84,235, 42, 29,158, 78, 36, 60,133,218, 51,126, 10, 38,143, 97,178,147, 95,173,249,176,174, 56, 84, + 21,107,161,121,216, 88,254,175,197, 34, 21, 13,171, 77,154, 25,146, 57,189, 33, 37,146, 66,237,113,136, 67, 50,129, 17, 82,165, +100, 80,120,162,211,217,249, 44, 16,188, 38,120,135, 15, 2,219,247,124,240,104,193, 47, 30, 46,248,201,251, 31,227,101,203,173, +170, 96,109, 91, 42, 1, 54,122,148, 84, 68, 4, 93,102,106, 60,180, 45, 63,109, 59,250, 40,121, 20, 5, 11, 41,240, 81, 34, 70, + 35,182, 14, 54, 50, 73, 63,203, 82,179,234,193,107, 65,139,196,118, 62, 77, 25,250,192,185, 75,244,182, 90,105,214,174,165,107, + 90,138,174,165,245,142,105,215, 34,156,101, 29, 60, 68,207, 77, 34, 50, 6, 70,193,115,208, 5,198,198, 96,140, 65, 8,137, 48, +201, 22,212, 55, 29,218, 5, 74,173, 40,163,199, 40,201, 44, 66,129,224, 96, 52,166,234,123,102, 74,115,247,228, 46,135,229,132, +187, 7, 55,153,160,121,101, 60, 99, 90, 21,220, 60, 40, 57, 62,158,115,223,133,228,103, 97,178,194,227, 51,206,132,103,241,220, +159,213, 36, 18,251, 0,178,174,227,131,203, 53, 75, 21,249,229,178,225,103,109,203,125,235,120,100, 61,181, 73,254,244, 65, 42, + 74, 97,232,189,163, 42, 10, 14,202,212, 1,170,234,130,224, 60,190,183, 28, 11,149,196,124,164, 78,115,242,124, 22,117,237,150, +214,181, 52, 93,139,144,129, 82, 75,148,212,124,233,139, 95,225,173, 47,222,226,133, 91, 83,156, 11,184,182,101,187, 89,241,211, +243,143, 88,186,212,114, 23,190,231, 15,142,143,249,234,201,156,175,221, 60,226,167, 93,158,135,111, 87,215,227,190, 84, 88,100, +155,102, 23,174, 19,202,199,180, 33,158, 44,134,194,243,207,102, 49,140,214,250,164, 40,121,207, 59, 94, 19,138,211, 66, 97,133, +162,146,145,165, 52,108, 77,197,123,202, 96,131,167, 82, 5,163,202,224,156, 69, 41,201,170,107,153,148,117, 82,254, 35,208, 76, +103, 80, 23,188,122,122,147,171, 73,205, 23,111,223, 69, 31,205,217, 72, 13,162, 64, 68,123,125, 63, 51, 79, 93, 39,222,172, 46, +144,179, 41,135,147,138,173,239, 40,141,225,133,195, 9,203, 77,147, 14, 79,223,165,202, 98, 0, 81,197, 12, 78,250,255, 67,235, +253,179,130,235, 30, 75, 71,247,200, 33, 90,162,110, 28,242,133,211, 27, 28,141,166, 8,169, 41,141,161,150,134,251,143, 22,176, +220, 38, 47, 95,155, 91,167, 3, 69,141, 62, 27,151,144,218,153,209,239,108, 77, 93, 6,165, 53,109,250,217, 16,124,126,237,113, +131,218,155,205,202,157,189,168, 12,187,121, 59,159,208, 10, 31,244,248,133,222, 33, 83, 7,217,215,161,125,175,242,123,244, 46, + 3,231,220,238, 58, 10,118, 62,196, 3, 40,234, 73,127,119,153,219,250,195,235, 24,126,102,178,203, 92,161,211, 92, 74, 85,153, + 62, 37, 19, 86,227, 60, 39,145, 23, 87,208,116,116, 31,159,165, 86,236,106, 3,171,203,140,109,112, 41, 0,119, 93, 58,244,227, + 32,115,251, 68,192,235,250,116,223,246,175,133, 12, 9, 23, 50,188, 23,155,109, 78,251, 28, 60,124,234, 66, 89, 37,137, 54, 50, + 83, 17,163, 12, 70,169,132,237, 83,201, 9,111,170, 19, 8,178,212, 18,239, 2, 90, 68,180, 80,196,224, 57, 18,130, 86, 66, 25, + 21,133,132, 71,157,163,148, 18, 59,236, 33,177,135,141,136, 89,194,214,103, 45,247,225, 62, 12,238,130, 33,238, 2,250,112,178, + 74,145,240, 12,195,232, 99, 50,130,113,205,183,234,146,131,210, 80,233, 34,255,151, 32, 10,201,105, 85,112, 97, 3,189,209, 40, + 93,242, 95,158, 28,163, 11,195, 87,167, 51, 94,153,159,242,226,168,230,214,104,204, 5,130, 38,235,226,159,201,146,159, 8, 73, +135,226,163, 24,248,102,125,192,116, 52,162, 46,167, 44, 76,153, 42,241,186, 78, 96,199,241, 8, 14,143,146, 2,227,124, 14, 47, +156,192,205, 99, 56,152,229, 89,125, 2, 12,189,173, 75,254,161,115,188, 61,236,163,205, 50,119, 70,178,102,252,208,114, 50, 69, +178,162,214, 10, 38, 19, 68,111,179, 70, 70,204, 1, 29,136,150,232, 83,130, 27,133, 32, 72, 75,240, 17, 79,139,119, 61,190, 89, +225, 55, 13,143,174,122,230, 99,141, 11,142,149,247,105,164, 80,214,184, 24,233, 99,196, 70,199,207,187, 45,247,109,196,134, 72, + 48,154, 82, 87, 84, 85,137,143, 10, 39,116,214,132,143,108,162, 72,213,121,161,105,123,143,147, 2,219, 71, 2, 30, 25, 2, 50, + 6,150,192, 44, 8,108,179, 37, 10,137,246, 29,173,237,120,232,122,198,170,224,170,107,208, 8, 78,138,146,109,211,112, 56, 30, + 99,172,199,117,150,222,246,108,150, 13,205,106,139, 80, 18, 25, 60, 90,165,253,166,173, 69, 70, 40,164, 64,216,158,170, 44,153, +140, 38,200, 16, 41,116,137, 86, 9, 7, 84, 10,197,152,200,188,168,168, 75,195,237,113,197,237,155, 71,232,131, 25,231, 49,161, +182, 99, 84,136, 66, 94, 87,161,226, 57, 85,186,248,196, 66,195,179,184, 92,113,177,217,178,186,108,217,110,123,204,124, 76,107, +251,196,185, 23,176,117,142, 73, 61, 38,184, 4,110,156,152, 9,133,146,188, 60, 46,184, 83, 24,122, 23,121,233,240,128,224, 60, + 23,222, 99,148,192,123,143, 11, 61,235,229, 58,123, 68, 8,170,170,100, 92, 76,185,123,247, 5, 78,143,198,180,157,231,195, 15, + 47,120,255,253,123,188,255,224, 30,255,112,249,113, 94, 75,129,175,207, 15,249,198,108,202,171,227, 99, 94,153,158,240,218,164, +230,123,203, 62,117,142,252, 54,123, 64, 20, 41,150,177,199,126, 25,198,146,195,121,166, 63,155,197,184, 8, 33,159, 71, 1,235, + 3, 45, 34, 41,123, 35,248, 32, 70, 26,163, 88,203,130, 51, 93, 49, 47,106, 74, 4,194, 7,148,210,120, 31,168,180, 97,217,183, + 32,193, 41,205,157,162,224,119,142,143, 57,156,204,249, 55, 71, 55,184,115,114,131,215,166, 51, 78,111,221,228,157,135, 15, 96, + 60, 69,116,201, 5, 81,113,252,133,239, 48,174,160, 24,163,238,220,224,180,154,242,141,187, 47,115, 88, 87,220, 28,143, 9, 34, +208,201, 64, 95, 23, 41,131,185, 56,223,129,121, 2,255,178, 42,244,231, 5,245,129,214,165, 36, 20,134,151, 94,187,197, 23, 78, + 94, 68,171,132,188,157,212, 83,100,132, 43,183,101,251,224, 44,169,198, 57,118,252,112, 57,248,118,103,145, 27,225,179,169, 73, + 22,218,240, 54, 85,146, 49,236,132,250,127,173, 96,206, 14,196, 37,247, 42,235,152, 27,104, 49,235, 22,199,248,233, 28,240,100, +142, 20,131, 82, 30,113,231,164, 55, 84,249,170, 72,149,186,235, 51, 80,196,239,124,210, 7,245,180,103,129,188,134,128,222,239, +129,215,170, 34,211,229,246, 90, 96,186,206, 45,248,172,143, 44,115, 23,164,219,164,107,230,187, 4,136,178,118, 7, 26,177,109, + 6,251,181,105, 3, 41,185, 75, 52,158,236, 68, 8,241,244,181, 24, 50,114,138,236,247,154, 77,138, 6,160, 92,182,127, 36, 68, + 70, 70,210, 91,152,142, 36,129,192,204, 72,148, 74,192,163, 40, 4, 42, 70,148,143,140,149,202,183, 39, 82, 74,201, 50, 4, 70, + 8,150,206,225,124,224,164,212, 44, 93,192,134, 44, 19,123, 45,216,148, 49, 28,110, 24,223,200,148,104,239, 3,207, 76,110,209, +203,189,170,125,160,222,201,108,170,164, 10, 78,166, 5,191, 49, 29, 37,203, 16, 9, 82,168, 36,217, 47, 53, 49, 70,206,163,228, +202, 59,254, 85, 61, 97, 90,143, 57, 40, 19, 40, 73,232,164,175,239,164,100, 29, 4,107, 83,226,101,210,208,126,179, 26,241, 82, + 89,243, 70, 57,226,112, 82,112,219, 24,238, 78,102,220,119,158, 70,155, 20,124, 77,145,130,187, 34, 7,246, 57,212,211,164,164, + 86,142, 18,168,180, 30, 37, 64, 92, 81,165,170,222,231, 49,134,206,236,131,211, 35, 56,152,195,237, 91,240,210,203, 48, 31, 39, + 5,179, 81,137, 32,173, 53,209,219,244,183,109,159,174, 65, 93, 19,157, 79,183, 74, 65, 36, 16,100, 32,108,219,107, 58,151, 15, + 61,206, 74,222,221, 56,222,238, 44, 63, 95,116,160, 60,115, 9, 94, 68,214,221,134, 95,118, 45,127,189,233,112, 62,226,180,162, + 48, 5, 85,161, 83, 34,107, 84,178,142,168, 52,222, 90,130, 8, 20,186, 96,221,121,138, 66,225,251, 64,235, 2,227, 90, 33, 67, +228,188,235, 41,219, 22,215,111, 89,119, 29,135, 66, 18,251, 13,155,108,151,252,151,151, 11,180, 52, 88,223,177,218,180,148,165, +161, 82,154,198, 59,206,182, 91,214,235, 37,163,224, 88, 54, 43, 46, 23, 75,198, 69, 1,206, 82, 6,144, 74,161, 70,163,100, 56, + 37, 64, 27,131, 12, 1, 51, 30, 35, 11, 67,236, 44, 82, 72,124,215, 19,162, 67, 16,168, 99,228, 70, 85, 51,175, 43,230, 82,242, +165, 27,135,204, 71, 37,167, 39, 51, 62,242, 50,221, 39, 15, 20, 50, 25,233,236, 7,114, 83, 93, 43,159,137, 33, 41, 55, 89, 46, +251, 73,108,144,207, 50,196,182,199,159,111, 32,251, 35, 56, 27,136, 82, 19,157, 99,166, 21,117, 81, 35,108,195,235,199, 7,220, +172, 13,194,104,238,206, 70, 68, 41, 16,163, 49, 87,162,166, 52, 83, 80,138,182,185,226,170, 89,114,177,217, 18,133,199,132,228, +150,119,114,227,132,211,195,154, 66, 71,222,189,247, 49,255,221,223,253, 61,247,126,244, 54, 60,122,148,206,177,202,240,159,221, +188,201,216,140, 57, 24, 79,169, 71,147,164,237, 63, 86,188,127,209,164,115,121, 48,123, 26, 58,183, 66,166, 49,156,214,187,121, +249,224,255,190,223,225,251, 85,182,199, 60, 97,174, 19,225,172,135,191,223,182,172,140,230,255,232, 61, 27, 17,248,113,151,220, +222, 14,138, 2, 45, 37,198, 40, 20,146,222,247, 52,206, 18,131,165, 17,145, 62,104,222, 56, 56,228,203, 7, 71,188, 57, 59,225, +100, 50,225, 11,211, 25,186,158,224,123,199,139,119, 95,194, 23,176,157,207,241,219, 30,197,173,175,127,167,120,253, 53,126,251, +173,183,184,125,116,135, 47,156,188, 64,223, 59, 94, 56,189, 65, 64, 81, 98,120,245,228,148,113,169,120, 24,186, 68, 73,217, 54, +255,241,228, 96,127, 29, 16,221,116,156, 14,154,224, 30,159,167, 40, 9,163, 89, 82,207, 67,177, 80,130,163, 81,205,141,195, 91, + 40,101,232,251,150, 85,211,176,108, 59,150, 87,219,212,150, 85, 50, 85,121, 74,102, 26,160, 73, 65,170,168,118,104, 93,153,179, +187,144,171, 48,235, 19, 55, 58,248,207,247,250,149,206, 7,162,201,128, 46,191, 11,164, 82,114,109, 24, 48,160, 56, 62,109, 7, +101, 8,132,215, 78, 65, 50, 7, 16,151,186, 1, 34, 39, 38, 67, 75, 91,102,231, 62, 33,115, 64,205, 63,123, 86, 2,161,116,174, +162,195,238,112, 24,218,243, 67,139,182,172, 82, 21,237, 99,146, 53,141, 3,207,222,237, 56,243, 3, 72,103,176,253, 29,222,219, +190,225,201,190,205,235,245, 33, 19,158, 47, 97, 44,179,175,177,200,221,148,114,143, 22, 41,228,206,233, 45, 66,105, 20, 69, 5, + 93, 23, 81, 82, 33,133,160,146,208, 33,216,246, 9,253,174, 68,162, 25, 85, 34,153,236,180, 49, 80, 10,201,202, 5,106,145,230, +139, 23,214, 17,163,160,243,123,140,132,152,105,145,131, 85,163,202, 38, 61, 46,236,128,144,131,221,192,181,244,236, 94,151,201, +101, 33,160,152, 16,231, 91, 83,241,133, 81, 65, 97, 12, 18,129, 86, 26, 45, 21, 13,129, 82,105, 30,118, 29, 7, 90,243,202,100, +130, 64, 49, 46, 42,150, 33, 82, 86, 37,202, 20, 56,153,146,138,119, 35, 68, 93, 66, 89,242,133,162,226,165, 81,197,100, 50, 98, +102, 10,122, 37, 17, 40, 42, 93,242,158,203,199,152, 41,178,225,209, 24, 85, 77, 41,170, 9,245,193, 45, 94, 46,199, 92, 84, 99, + 40,199, 9, 40, 37,242,186, 48,227, 36,105,171, 10,168,102,233,251,131, 23,224,240, 5, 24, 31, 65, 49,129,249,141, 68,241, 57, +190, 1,163, 26, 49,171,225,248, 48, 89,179,222, 60,129,131, 3,152, 77, 18,204,231,197, 91,137, 20,114,122, 66,220,110,137,243, + 83,130, 13,196, 62, 5,247,224, 37, 65,234,252,189,103,217, 71,182,177,195,227,104,125,224,123,203,134,181,237,241, 2,188, 20, + 72,105, 48, 90, 51, 46, 74,180,144,140, 43,133, 8,129,210,104,202, 66,177,218,108, 40,100, 74,152,124, 38,216, 92,173, 59, 2, +142,166,105,241, 93,195, 68, 8,164,181,172,187, 13, 74,105,238, 89,203,125,107,217, 70,197,205,131,116, 48,247,117,205,187,235, +158, 63, 59, 95,208, 24,193,195,102,203,155,243, 49, 87,237, 6,169, 37, 63, 95,109,184, 88, 47,144,222,163,187, 6, 89, 24,108, +187, 69, 42,133, 44, 74,162,115,148,213, 24,161, 13,161,233,145, 38, 17,219,250,174,161,247, 61, 93,223, 80, 41,131, 65, 50,142, +130,163,106, 68, 41, 37,243,170,102,164, 21,175, 31, 79,169,199, 5,151, 85,141,215, 21,200, 42, 85,239, 93,198, 56,248, 44,165, +170,117,186, 71, 36,208,173,144,123,238,156, 3,216,246, 9, 74, 28,219, 22,150, 75,196,163, 21, 8,193,111,191,242, 26,175, 31, +159, 82, 11,152,106,193,173,217,140,211, 73,205,205,233,136, 94, 73, 84,169,233,181, 66,141,107, 86, 62,237,233,174,239, 88, 55, +107, 54,109, 75,244,158,217,104,194,168, 26,113,124,116,202,104,100,184, 92, 55,108, 87, 27,254,230, 7, 63, 66, 60,120, 23, 54, +107, 68,212,112, 60,231, 95, 31,157,114,115, 58,197, 34,105, 16, 84,245,136,251,206,243,174,137, 9,201,239,251,199, 99,129,179, + 59,134,207,126,251,125,120,255, 70,239, 24, 71,159, 96, 57, 46,246,207, 64,161,192, 40, 30,181, 14,154,158, 51, 7, 75, 23,104, +117, 96,170, 75,166, 82, 98,144,201,249, 45,128,247, 73, 74,183, 21,130,186, 48,188, 94, 79,208, 74, 81,141,199, 76,234,138,178, + 48, 76,198, 21, 91, 97,240,245, 4,239, 37,119,230, 7,232, 89,141,226,139,255,250, 59, 95,188,251, 34, 47, 31,189,128, 41,106, +166,147,138,211, 27,183,210, 65,160, 74, 78,143,143, 9,189,101, 82, 22,188,113,114, 19, 89, 22,156, 15, 85, 89,215,253,203, 9, +234,197, 46,227, 39,232,164, 99, 61,124,212, 73,171, 29,163,210,108,112,219, 80, 77, 43,110, 31,223, 68, 75,205,178,109, 88,181, + 45, 23,155, 13, 27, 23, 19, 79, 93,202,116,240, 22,249, 48,214, 58, 37, 5,131, 83, 79,204,183,212,250,236,207,219,165, 25, 75, +223,124,190,215,111,116, 10,118,131,115,208,224,165,190,111,217, 39, 7,112, 88,120,218,138,243,147, 40, 43, 3,189, 75,136,132, +172, 31,146, 29,231,118,146,167,125,150,160, 29,156,246,244, 30,207,251, 89, 45,254, 65,138,118,160, 77,117,109,202,238, 7,219, + 94,159,223,147,235, 82,181,172,179,231, 59, 89, 31, 89,100,209,155,144,129,153, 90,237,172,128,159, 21,160,165,120, 60,160, 15, +137,195, 53, 46, 32, 60,141, 40, 31,232,127,168, 52,203,142,153,194, 55,140,100, 50,136, 74,201,200,177, 74,122,219,189, 23,140, +181,196, 75,208, 8,188,134, 34, 36, 97,156, 81,136,108, 0, 35, 69, 22, 49, 12,212, 82,112,238, 28,189,143, 40, 37, 65, 4,156, +144,248,193,181,238,122,110,158,120,173, 41,232,229,228, 74,239,129, 31, 7,223,250,161, 13, 47,242, 97, 51,140, 49, 68,154,168, + 81, 26,142,198,134,137, 22, 4,161, 81, 49,160,149,160,140,146, 69,240,124, 28, 34,183,116, 65,109, 20,149, 80, 56,146,252,104, +140, 73,116,197,122,152,143, 70,108,187,158, 11, 83,242, 39,245,136, 27, 85,193,164,210,172,123,201,214, 58,166,245,152,117,231, +169, 10,205, 54,194, 66,170,228,163,173, 52,255,230,224,152,215,170,146,111, 30, 28,240,166, 81,188, 80, 87,124,105, 52,199,171, +130,243, 8, 20, 35, 48,163, 68,133, 53, 89,196, 67,104,168,231,188,121,122,147,163,106,204,241,244,152,249,193, 49,186,154,178, +173,166, 41,176, 76, 15,161, 62, 64, 40, 5, 55,110,165, 81,195,104, 12,167,119,136,211, 10, 78,239,192,241, 65, 18,105,185,243, + 42,193, 89,226,184, 78,129, 60, 42, 66,232,137, 69, 73,208,154, 16, 36,182,119, 60, 90,116,188,211, 90,126,126,177, 98, 11, 4, +231, 9, 74, 16,140, 33,104,195, 72, 43, 42,169, 56, 25,149, 28, 9,137, 38, 48, 17, 18,235, 60,181, 86,184,222,179, 70,208, 90, +203,213,118,131, 13,145,179,117,131,116, 45,139,190,229,253,205, 21,219,118,205,165, 11, 60,176,150,183,215, 27,154,168,249,210, +141, 99,238, 93,109,153,215, 21,203, 69,139,168, 38,220,170, 43, 30,246, 17, 99,106,230, 37, 28, 77, 39, 60,104,123,126,210, 57, + 54,120, 86,214,178, 45, 12, 86, 21, 68,173, 89,109, 27,150, 2, 58,103,209, 74, 35, 59,143,154,142, 8,157,163,109, 55, 4, 17, + 89,119, 43,130, 76,107, 78,132,128, 82,138,224, 29,138, 72,161, 12, 81, 73, 70, 82,115, 50, 26,241, 27,243, 9,119,199, 21,191, +125, 50,230, 7, 61, 41,217,234, 35, 4, 71,172, 70,185,179,146, 71, 88,213, 52, 37,250,133,222, 25, 67, 61,167, 45,143, 77,221, + 2,198, 51,254,248,183,190, 65, 93, 40,230,227, 17,139,245,150, 55,142,142, 41,140,102,153, 3,171, 55,154, 86, 10, 30, 88,205, + 58, 10, 54,125,160,117, 93,202,113,125,143, 23,142,113, 89,115, 58,191,193,203,175,190,200,201, 97, 77, 45, 37,239,190,251, 1, +223,255,127,255, 38, 89, 94, 15, 32, 95, 23, 24, 29,140,121,161, 24, 19,202, 17, 93,132,183,155, 13, 63,107, 60,231,146,164,175, +210,248,199, 99,129,220, 59,251,134,226, 97,168,202, 93, 62,131,162,218,157, 97,241, 87,119,171,133, 78,166, 66,148,114,135,153, + 81, 58,119,153, 34, 91, 45, 57,235,183, 28,102, 7, 58, 31, 44,141,107,233,189,103, 19,123, 30,181,158,111, 30, 30,225,163,224, +104, 50,167, 11, 1, 93, 26, 58,161, 18,188,100, 92,211,134,136, 42, 39, 24, 89,114, 88, 77, 81,188,249,251,223,249,189,215,191, +204,209,209, 9,179,217,132,233,108, 66,111, 29,227,113,205,100, 58,162,107,122, 14,142,142, 24, 79, 38,152, 40,185, 49,157, 50, + 25, 21,124,100, 52,209,171,164,237,203,191,128, 22,124, 33, 19, 66, 93, 10,184, 90, 39,137,215,161,202,157,206,211,194,204, 51, + 63,124,228,226,189,251, 92,200,200,197,122,137, 66,114,182, 89,208, 57,199,230,193,249,206,241,202,103, 91,197, 34, 43,110, 21, +106, 39,116, 51,208,192, 66, 62,120, 67,191, 19, 98,249, 92, 84,189, 12,112, 25, 68, 13,134, 92,112,255,241,100,230,134,235, 79, + 65, 67,213,185,253, 60,120,113, 15, 45, 92, 37,211,124, 91,102, 14,186,205, 74,103,215,214,187,195, 28, 93,236,253, 94,120, 54, + 48,110, 8,172,131,150,252, 16,144, 7,249, 88,149,147, 15,153, 65, 42,195, 11, 27,213,233,223,213, 36,139,227,100, 85, 55,181, +247,250,158,156,113, 13,216,128,253,160, 62, 84,218, 62,211,173, 76,158,227, 15,191, 51,184,221,105,177,167, 83,111,216,167, 68, +140, 84, 74,114, 52,130, 88,106, 54,109,224,184, 20,180, 34, 82, 72,197,170,207,147, 22, 37, 48, 49, 82, 75,133,138,176,138,201, + 86, 17, 34,193,129, 22, 73,203,122, 25, 61, 5,130,101,235,119,246,198, 98,111,138, 41,213, 94, 96, 79, 38, 51,215, 72,222,107, +250, 98,254,155,225,186,135,176,115, 99,243, 30,164,230, 3, 47,249,210,216, 48, 50, 5,165, 84,120, 17, 81, 18,190,223, 88,254, +177,177,212, 33,112,168, 53, 70, 21, 8, 20, 74, 9, 36, 18,165, 20,198,104,222, 89,182,220, 11,112, 74,224,229,170,224,120, 92, +225, 81, 20,218,112,102, 29, 42, 66, 85, 22,172, 28,104, 93,242,190, 77, 35,159, 47,215, 99, 94, 80,154, 23,103, 51,164,210, 24, + 35,153,214, 53, 72,197,121,103,121, 80,142,211,107, 53, 38, 85,226,101, 1, 66,113, 52,155,242, 71,163,154,175, 29,141,249,210, +141, 41,119, 70, 37, 47, 21, 48, 42, 43,222, 9,192,120,150, 70, 46,186,128,178, 66, 84, 19,168,103, 48, 57, 1, 41,121,235,198, + 75,172, 17,152,241, 33, 95,120,225, 37, 30, 58, 7, 71, 71,196, 66, 18, 15,230, 68,165,136, 62, 18, 75,157,116,185,133, 36, 10, + 79,104, 91,226,122, 73,116,145, 96,123, 66,136, 4,109, 8, 74,224, 68,100,164, 53,115, 41,185,173, 21, 19, 83,114,144,249,241, + 83,169, 8,222,226,130, 37, 90, 79,211,247, 68, 68,234,230,245, 45, 15, 58,199,229,118,197, 89,211,208, 70,193,134,142,191,189, + 90, 98,189,167, 87,146,208, 91, 94,158, 79, 88, 49,101,227, 29, 71,117, 65,148,138,141,247, 84,101,193,119,207, 22,252,163,215, +188,189, 13,244, 40,222,241,130, 86,106,182,227,130,179,224,184, 52, 5,110, 90,113,229, 97, 89, 22,116, 93, 11,227,146,208,246, +116,161,167,151,146, 15, 86,231,132,232,104,162,163, 68, 16,242,248, 69,106,131, 15, 1, 23, 61, 49, 4, 70,198,240,178, 54,188, + 88,140,120,101, 58, 99, 41, 5,183,106,195,219, 54,173,179,104,202,108,190,228,136, 62, 32,234, 41,136, 36, 45,139,172,242, 30, +206, 22,198,207,233,224,138, 32,249,218,183,191,206,235,183, 95, 65, 2,117, 53,226,195,135,247, 64,150, 72, 33, 57, 29,215, 44, +156, 99,237, 60, 31,108, 61,223,181,145,247,122,203, 86, 68,150,214,129, 48,232,140,111,154,234,146, 27,199,167,220,120,225,152, +182,179,172,215, 29,255,203, 95,253,123, 46,222,126,251,241,100,194,247,188, 43, 12, 7, 19, 69, 39, 74, 46,189,231,111, 87, 29, +255, 24,243,121, 98,178, 80,215,229,122,167,136, 58, 36,243,214,238,102,233,195,207,135,194, 33, 10, 30, 67,174,126,146, 95, 67, + 85,236,180, 2,148, 74, 8,118,145, 71,136,203, 53,157,150,172,156,165, 16,150,232, 45, 11,219,240,209,182,101,105, 29, 47,141, + 12,135,101, 69, 89,142,152,215, 37,173, 20, 68,161,233, 99,224, 96, 84, 16, 98,164,151,130,135,157, 35, 20, 53, 50, 42,212, 27, +191,251,167,223,121,237,133, 23,185, 88, 52,156, 28, 30, 98,125, 96, 54,175, 48,133, 70,169,196,179, 11, 62, 50,158, 84, 24, 85, + 18,188,160,144,134,155,227,154,135,210,167,142,107,111, 63,149, 58,218,103,245, 6,254, 92,195,102,253,156, 57, 71,204, 60,242, +190,217,153,207,107,157,170,161,186, 78,224, 54,193,206,255,122,189,102,117,209,210,207, 71, 60, 88, 44,176,209,243,232,193,121, +146,118,149, 49, 29,178, 82,236,132, 96,194,192, 63,222, 67,147,135,144,126, 63,180, 73, 3,217,121,144,159, 19, 3,144, 91,186, +215,126,221,136, 12,198, 11, 79, 35, 50, 63, 77,142, 37,247,105,103,123,224, 16,173,210,130,179, 62,221,211,129,234, 49, 8,149, + 96, 51,152, 45,111,224,231, 25,167, 12,254,229, 58,207,220,219, 46,253,219,229,205, 20,179,233,204, 53,154, 95,239,161,231, 67, + 58,188,135, 77, 51, 24, 7,145,239,161, 28,228,136,229,227,111,118,216,116, 79,221,251,184,179, 18,134,116,191, 10,181, 11,252, + 65,103, 25, 46,177, 19,229,201,215,199, 86,134, 50, 70, 28,130, 82, 70, 14, 20,120,165,153, 32,121,100, 5, 66, 36,211, 23, 31, + 4,165, 2, 31, 99,202, 93,128, 62, 70, 52,130,101, 72, 45,114,161, 5,155, 16, 88,109,193, 23,114,135, 91, 24,238,229,254,235, +189,238, 20, 12, 82,192,236, 76, 39,246,157,157,134,185,158,247, 57,137,137,169,163, 82,149, 8, 19,121, 96,123,124,176,124,216, + 58,174,154,134,239,247, 14,108, 71, 47, 52, 47, 21, 10,225, 61, 83, 93, 82, 41, 5, 8, 98, 8,116,206,241,160,143,252,204, 89, + 94, 50,134, 49, 18, 29,160, 67, 98, 16, 28,205, 42,130, 23,233,182, 73,193,251,155, 45,103, 25, 7,240, 71,243, 49,163,178, 98, + 99, 29,133,210, 20, 85, 69,219, 71,124,244,152,122,132,136,145,139,152,109,144, 99,128,170, 6,173,248,173, 73,197, 43,227,130, +162, 50, 92, 89,201,172,214,180, 81, 48, 53,146,195,162,224,189, 62,166,185,188,150, 96,234, 44, 89, 91,242,237,201,132, 63,190, +117,130,139,146,111, 30, 30,112,211, 20, 40,109,184,115,112,202, 47,157, 39,206, 78,211, 65, 90,150,112, 56,205, 9, 88,145, 80, +224, 85, 10,114,209, 67,108,151,217, 57, 14,226,166, 35, 78,107,208, 26,129,224,229, 82,112, 36, 36,135, 33, 82,196,192, 17,130, +121,132,146,136,244,150, 14,203,184,144,244, 77, 79,239, 59,162,132,202,109,209, 74,225,109,199, 13,233, 41,188,199,246,150,211, + 74, 80,198,142,159,246,146,219, 35,205,182,179,140,234, 57,103,125, 79,223,119,188, 48,159,243,209,118,203,172, 26,113,217,181, +204,171,138,217,116, 78, 81, 22, 56, 96, 77,193,249,232, 0,135,228, 92, 22, 52,101,201,251, 27, 75, 51,169,185,208,138,243,174, +229, 35,165,248,165,119,124, 40, 2, 15,164, 38,120, 79,167, 52,147,232,177, 82,208, 59,135, 21,130,222, 59,130, 86,156, 72,131, +145,134, 90,105,130,212,156,154,130, 94,107, 46, 10,195,133, 0,186, 44, 79, 43, 69,234,156,217,237, 53, 13, 86,168,228,194,118, +141,173,121, 18, 85,175,117,114,166, 83,240,240,157,247,121,237,141, 87, 9, 4, 54,171, 75,254,183, 31,255,128,159, 63, 58,231, +141,249, 33,247, 55, 91,108,148,252, 98,225,248, 65,227,248, 97,103, 89, 72,201,153,179,156, 11, 40,202,146,136, 66, 72, 73,173, + 75,142,166, 7, 28, 29, 79,136, 17,238,191,255,136, 63,255,179,127,151,198,194,123,144, 26, 97, 29,244, 29, 63,235, 28,127,223, +181,252, 48, 68, 46, 84,145, 94, 63, 49,159,105, 89,149,115,219,165,138,122,168,204,149,126, 92,245,242,218, 44, 76,164,243, 63, +202, 79,198, 44, 93,203, 78,231, 98, 76,155,212,221, 22, 58, 43,210,229,162,230,252,156,245,170,229, 61, 31,233,218,134,101, 12, +244,222,113,175,107,208, 1, 94,170, 39, 28, 84, 37,231, 65,114,179, 42, 89, 57,203, 65, 85, 98,165,100,209,121, 62, 92, 59,182, + 65,210,224,153,212, 21,106,250,149, 63,252,206,171,183,110, 51,155, 28,226, 36, 8, 41,168, 42, 67,232, 2,101,165, 81,198, 96, + 10,133,144, 2, 23, 2, 2, 73,215, 37,203,152,182,107,184,218,118,233,208, 9,225, 41, 27,185, 79, 67,147,248,164, 4,224,179, +205,156,229, 14,120,244, 36,136, 97, 64, 35,218, 39, 36,101,101, 14,228,202,236, 42,208,135,139,204, 53, 92,209, 93, 92,208,109, + 58,182,151,203,212, 62,143,195,156, 37,183, 99,188,203,146,168, 67,192, 30, 60,171, 99,202,110, 93,159, 52,226, 67,158,195,200, +207,158,167, 60,230,150,117,125, 85, 28, 59,227,150,207,249,152,207, 74, 30,226, 19,226, 45,251,247,115, 95,165,239,121,152,138, +161,130, 46,139, 93,149,236,135,106,221,239,181,245,115, 5,122, 61, 23,207,242,196,131, 48, 11, 34, 3,194,114,160,234,114,107, + 94,237,241,232,131,125,188, 98,223, 15,110, 49, 38, 33, 32,111,119, 96, 61,185, 39,203,170,196,222,224,107,112,148,203, 27, 47, +219,205, 74,157, 64, 79,117, 37,169,181,160,183,112, 80, 37, 9,220, 46,130,172, 20,109,198, 66,110, 92,164,148, 17,147,177,131, +125, 4, 65,164, 19,130, 16, 60, 65, 10,156,247,148, 82,177,201,220,247,232,194,174,175, 30,247,241,198, 97,247,189,205, 64, 76, +177, 87,165, 15,244,203, 33,240,239,191,255,144,213,234, 26,203, 89,227,121,212, 56,222, 91,182,124,180,105,249,160,181,201,109, +209, 91, 58,235,232,188,231,141,217,140,177, 80,105,154,130,196, 72,205,195,118,203,119, 55, 75, 26,111, 89,219,158,223,156, 79, + 24,149,138,211,113,141,174, 18,144,208,247, 62,187,106, 6,254,194, 38,241,159,223,171, 13,167,166,192,199,192,188, 52, 44,179, +229,175, 85, 10,147,131,203, 61,235, 89,198, 12, 92, 52, 6,188,231,246,184,230, 37,163, 24,155, 18,139,160, 50,146,141,247,232, + 50, 1, 42, 23,109,199, 90, 73,182, 62,166,100, 64, 3, 66,241,214,124,194,215, 15,198,120,161,121,121, 90,112, 22, 13, 55, 75, + 77,101, 12, 31,184,136,158, 76, 88,186,152,198, 98,179,227, 84,213, 31, 28,103, 21, 72, 65,236, 33, 78,103,208,183,196,110,147, +153, 60, 45, 49,122,196,170, 5, 35,120,177, 48,124, 81, 4, 14,149,198,216, 45, 19, 4,211,232, 41, 98,224, 32, 68, 76,112,156, +120,199,204, 57,110, 8,203, 76, 9,198, 49,224, 67,154,153, 76,243, 89,227,148,230,134, 22,156,245, 61,151,155,142,190,235,248, + 97,223,243,155,199, 39, 84,117, 65,107, 97, 86,215, 92, 54,150, 82, 74,130,150, 28, 85, 99, 30,110,183, 92, 5,135, 21,146,195, +241,132, 88,150, 76,141,226,223,175, 59,190,120, 56,225,127, 63, 91,242,230,233,156,247,130, 98,189,109,185,168, 70,156, 69,201, +185, 46,120, 20, 20,151,133,100, 93,141,208,125,203,131,162, 36,218,158, 54, 68,214,118,139,149,146, 18,152, 20, 21,181,128, 32, + 4,165, 76,202,142,149,208,132, 66,243, 75, 41,105, 11, 13, 66, 19,251,204, 32,177, 54, 87,235,201,131, 66, 20,131, 24,138,127, + 26,187, 50, 25,167, 17, 73, 89, 33,108,228, 31,222,121,135,127,216,158,243,163,159,191,131,248,249,251,216,251,247,249,222,197, + 21,127,119,254, 17,151, 54,240,151,219,134,135, 49,119,212,188,205,243,104,201,178,235,185,138, 32,116,137,142,130,153,174,232, +172,103,185, 92,241,224,236, 17, 63,251,233,219,169,197,255,100, 12,242,185,189, 46, 69, 18,135,201, 73,191,112,109,146,153,136, + 49,237,151, 24,147, 90,219,117, 16,183,233, 12, 27,176, 66,195,156,221,217, 92,120,248,103, 83,119, 31,195, 19, 13,184,156, 44, +171, 45, 50,219,198,147,228,144, 99, 62,159,180, 73, 95,183, 13, 87,214,115,222,245,156,181, 13, 29,145,143,154, 14,240,220, 54, + 37, 19,173,169,202, 18, 81, 20,136, 0,203, 16,105, 4,124,188,245, 44, 66,143, 20,146,206,123,212, 75,223,250, 79,190,115, 52, +153,208, 52, 61, 74, 74,230,227, 17,158,200,168, 42,240, 46, 34,181, 32, 34,112,155,158,174,181, 68, 21,113, 25,104, 38,133,162, +215,138,205, 53, 15,181, 74, 72, 81,165,161, 40, 16,166, 72,154,195, 85,226,133, 11, 41, 16, 82, 34, 66,248,212, 85,186,248, 44, +213,236,147, 82, 9,207,188,224,250,233,120, 22, 67, 70, 65,106,184,218, 36,173,243, 1,124, 84,150,169,106,172, 50, 16,174,205, + 64,183,206,165, 27,147, 37,187, 49,185,194,235,250, 84,149, 58,155, 4, 69,162,206,179,195, 92, 29,154, 44, 41,251, 28,158,232, + 83,173,113,246,102,221,196, 92,221,102, 31,224,207,203, 36,148,251, 10, 38,207, 32, 90,254, 58,211,148,225,154,151, 38,155,115, +200, 93,165, 94, 21, 41,211,143,121,129,203,172, 75,175,247, 56,162, 74,166,217,221,112, 47,101,222, 72, 46,238,180,211, 33,121, + 14,136,231,184, 2, 94,163,240,243,107, 41,138, 44,212,147,193,133,200, 93, 66, 1,169,107, 80, 12, 20, 49,149,174,171,146, 72, + 37,121,169, 86,244, 2,162, 84,220, 80,130, 72,164, 12, 18,167, 53,151, 93,138, 3, 70, 8, 60,145,222,197, 36, 83,160, 4, 91, + 23,104,165, 64,100, 52,123, 31, 2,107, 34,150, 72, 23, 50,200,125, 0, 80, 14,116, 64,246,131,116, 76,239, 25,247,184, 57,207, +117,101, 31,119,137,222,179, 80,184,146,116,240,108, 92, 18,134,233, 50, 42,121,209,166,206,154, 8, 44,188, 99, 42, 3,239, 44, +214,172, 99, 75, 27, 28, 15,182, 43,254,231,243, 75, 26, 2,116, 91,188, 86,124,169, 44,209, 74, 48, 19,169,122, 17,125,210,218, + 47, 74,193,127,115,113, 9, 49,112,199, 68,156,212,220, 45, 53,165,142, 44,188, 96, 36, 35, 74, 72,148,214, 4,231, 48, 85, 65, +225, 61,239,185,184,147,202,173, 12,127, 50, 41, 57, 40, 19, 55, 57, 40, 65,244,129, 32, 21,203,198, 81,149,154,131, 74,243,161, + 13, 44,132, 72,107, 1,205,237, 66,243,173,121,197,214, 71,180,150, 60,116,112,107,172, 89, 59, 24,213,134,210, 40,222,147, 37, +219, 16, 19,208,238,255, 99,238,189, 99, 61, 95,243,251,174,215, 83,190,237,215, 78,155, 51,103,214, 69, 66,164, 0, 0, 32, 0, + 73, 68, 65, 84,230, 78,185,125,247,102, 91,108, 92, 18, 82, 12,137, 73,140, 67, 81,148, 40,144,200, 18, 36,161, 8,146, 16, 16, + 2, 36, 4, 1,139, 16,100,197, 40, 10, 37, 18,130, 72, 38,160, 68, 72, 17, 9,144, 4, 41, 9,113,130,133,141,157,141,189,235, +189,190,187,183,151,185,211, 79,251,245,111,121, 26,127, 60,207,247,252,126, 51, 59,115,119,238,238,218,230, 39, 29,253,102, 78, +253,150,231,251,124,218,187,184, 16,109,165,203, 42, 94,199,193,110, 52,152, 17, 33, 34,236,173, 39, 24,147, 88, 28, 81,247, 64, +212,142,217,168,228, 5,233,153, 52, 53, 19,173, 25, 56, 71, 30, 28,165,119, 20,193,115,205,123,246,124,224,102,112,236, 8,197, +208, 7,156,119, 12,115, 69,200, 20,165,132, 34,203, 25, 2, 94,107, 42,165, 9,153,164,173, 27,156,177,188, 62, 63,227,115,131, +146,169, 5,153, 23, 12,203,140,133,135,157,224,153, 5,143,237, 28,183,219,154,145,173, 97, 52, 97, 55, 87,124,109,209,240,219, + 14, 38,252,141,227, 5,255,244,141,125,126,177, 9,236, 6,135, 27,143,120,104, 28,203, 97,197, 42,215, 44,101,206, 45, 23,199, +132,167,229, 24,233, 13,247,178, 10,231, 59, 78,100,212,104,111,133, 98,207,123, 50,149, 69, 81, 20, 17,253, 10,102, 66, 82, 75, +133,206,179, 24, 60,170, 42, 74, 28,251, 16,247, 52,145, 0,102, 93, 11,170,138,160,179,124,152, 48, 29,253,152,171, 76,108,136, +152, 8, 10,225,160, 94, 19,110, 63, 72, 82,217, 49, 14, 48, 59,135,243, 21,167,119,239, 67,102,226, 24,204, 16, 11, 45, 37, 97, +181,138,123,133,206,168,145, 28, 27, 19, 45,107,235, 6,230,167,184,249, 49,191,117, 8,203,231, 46, 49, 27, 14,241, 87, 14, 17, +105,116, 40, 18,151, 94, 44,154, 4,184, 53,113, 92, 42, 99,114, 44,188, 71,200,164, 44,105, 72,248, 30, 30, 45, 14,122, 32,113, +143,229,233, 37,178,249,132,121,122, 15, 92,237,237,177,101,210,107,200, 84,234,108,203,248,245,190, 99,216,166,228,194,116,136, +186, 23,113,138,251,230, 29, 31,120,117,144, 49,145,154,135,139, 5,123, 85,116,199,155, 33,184, 51,183, 60,112, 29,109, 16,100, +206, 69,187,143,211,231, 62,255,227,151,202,138,195,131, 67, 6,229, 8,135,199, 7,137,150, 1, 93, 42, 2,208,206, 91,172,247, +120,225,113,235, 14,141,226,206,201, 9,185,206, 41, 21,156, 88,139,171,202,120,162,163, 17, 20, 5, 66,231,209,202, 85,102,136, +106,132,144, 57,232, 18,145, 43,196,213, 27,136,253,125,100, 94, 33, 28, 48, 25, 35,140,185, 8,246, 79, 21, 58,120,156,227,220, +183,128,159,166, 96,246,164,205, 78,203,167,183, 6,234, 58, 62,208,125,160, 80, 58, 82,112,132,220,136,238,228,121, 20,159, 41, +210,220, 60, 43,162,127,186, 46, 54,180, 30,151,204, 66,170, 49, 76,118,226, 53, 25,237, 69, 32,145, 73,173,170, 62,170, 60, 62, + 99,207,116, 18,213, 16,155,143,109,192,198,246,174,253,237,210, 9, 47,226,121,143,152,223,250,189,246,187,128,143,232,187, 38, +219, 51,170,162, 55,129, 9, 27, 4,125,159,193, 56, 31,175, 77, 31,216,117, 58,255,158,178, 21, 18, 77,207,233,212, 22, 79, 51, +177,240, 12,162, 71, 89, 30, 17,245, 89,226,122,155,176, 65,146, 95, 20,197, 50, 38, 22, 58,221, 59, 29, 91,102, 1,193,168,144, + 92,150,154, 67, 4,121,174,153,120,201, 82, 75, 86,193,209, 5,104,130,136,185,137,128,206, 75,108, 8,172,141,199,164,189,175, +245, 1,129, 96, 37, 2, 93, 23,112, 34,224, 2,184,222, 25,206, 37, 26, 98, 15,150,115,102,115, 28,201,170,242, 66, 57, 80,111, +105, 62,245,244, 54, 17, 30,101, 46,108, 39, 54, 38, 13,226,235, 38,182,150, 23,203,248,251,151, 77,244, 69,151,112,107,182,230, + 94,103,248, 96, 93,243,230,116,202,187, 93,236, 80,209, 52, 96, 27, 94,203, 51,180, 23,140,139, 12, 39,192,123, 75,103, 58,132, +107,249,169, 91,183,224,107,191,196,247, 95,191,194,155, 45,252, 96,174, 40,108, 71, 71,193, 78, 14, 50, 72, 22,173, 37,195,227, +139, 40, 39,253,150,177,156,118,169,114,146, 57, 88,199,107,195, 18,109, 3,186,210, 40, 31, 88,121, 65, 41, 64,105,137, 8,158, +185,151,236,123,203,187, 93,236,128, 77,114,201,203, 90, 48,206, 51, 4, 30, 39, 21,131, 66,210,248,136,155, 80,206, 83,150, 57, + 39,141,225, 60,203, 8, 65,243,252,225, 46,115, 36,175,142,198, 92, 59, 60,228, 65,107,216,201, 10,218,178,138,215,120,111,130, + 24, 14,162,163,152,105, 17, 34,130, 91,229,210, 96, 51,193, 11,133,102,108, 61,185,183,236,134, 24, 12, 14,188,167, 12,142, 75, +193, 83,233,130, 1, 2, 33, 36,101, 94,177, 14, 22, 33, 20, 70,231, 72, 1, 51,175, 25, 20, 57,173,177,172, 58, 71,174, 37,187, +202,115,189,148, 88, 27,104, 92,203,126, 57,226,111,124,252, 1,191,233,232,128, 51, 35, 25,105,193,199,171, 5, 55,139,156,135, +235, 37,165,202, 88, 26,195, 48, 47,176,133,230,181, 76,241, 15,141,224, 55,168,192, 3, 27, 88,218, 64,145, 43,188,214,232,206, +226, 70, 21,109,107, 57,169, 6,140,188,141, 12, 4,233,185, 63,152,144,117, 29,247,117,134, 51, 29, 58,120, 14,178, 44, 2, 66, +181, 98,233, 61, 43,169, 56,115, 14,165, 52, 7,163, 49,214, 24,206,117, 18,181,170,235,216,241, 25, 14,226, 51, 94,175, 17,197, + 8,225, 26, 24,143, 35, 66, 62, 47,147,186,102, 2,118, 10, 9,181, 65,180,230,201,243, 65,215,197,103,124,186,138,254, 32, 85, + 74,238,215, 75,132, 18, 49,192, 59,135, 72,180,213,147,182,230, 11,162,225, 48, 56, 70,174,227,123,247, 15,120,173, 42, 56,204, +161, 46, 11,236, 78, 73,123,235,254,102, 12, 40, 2, 98, 54,139, 69,149, 14, 49,200, 6,127,145, 28, 11, 64,104,129,104,252,198, +180,170,237, 30, 21,159,113, 46, 97, 64,196,183, 40, 28,251,238, 90,162, 67,170, 84,196, 20,169,253,222,123,167,248, 84, 56,218, + 16,227, 73, 82,181, 20, 89, 14,243,121,188,110,214, 65,215,225,181, 69, 4, 79, 7,188, 61,157,114,110,225, 87,206, 86,124,195, + 71, 83, 93,141,167, 53,142, 44,120, 84,120,229,251,126,252,104, 88, 48,202,115, 26,211, 65, 80,228,121, 70,103, 44,166,115, 44, +151, 53,133,214, 72, 2,243,243, 5,157,111,105,234,142,209,100,200,124, 49,231,116,185,194, 9,137, 32, 80,141, 71,152, 76, 71, +138, 82, 53,224,249, 43, 99,174, 28,237,113,138, 70,148, 57,159,251,236,117, 78,171, 9,191,245,229,171,124,241,250, 62, 55,110, +220,224,133, 23,143,216, 57, 26, 80, 29,237, 51,187,123, 26,105, 18,233, 66, 61, 18,216, 7, 35,184,113,149,193,171,215,241,151, + 47, 17,130,100,255,243, 55,168,171, 10, 22,233, 2, 93,208,144,194,147, 85,128,158,198, 81,223,166, 6,109,223,164, 30, 20,145, +229,241,226,183,201,212, 64,138,184,104, 85, 6,195,138,157,231,174,240,210,245,155, 28, 30, 94,102,255,240, 50,167, 90,198,108, +108, 56,102,116, 48, 65,151, 25,197,168,160,235,173, 60, 85,111,174,146, 90,190,125,197,158,109, 43,221,109,117, 30, 68,223,122, +214, 91, 85,221, 54,114,251,219, 13,236,114, 43,194,219,239, 78, 64,239,121,232, 61,149,172,105, 55,124,250, 71,164, 78,179,152, +173, 42,155,252,217,187,216, 21,233,205,102, 92,194,105, 52, 46, 5,175, 52,127,178, 93, 82,126,115,155,204,249,147,132, 33,100, +228,171,146,244,129, 34, 32, 70, 36, 3, 28,145,114, 26, 21, 3,102,136, 78, 75,253, 61,184, 52,200,216, 19, 32,165,196, 75,129, +242, 2,145,197, 54,186,117,129, 54, 72, 10, 41,233, 66,192, 38, 49, 25,151, 38, 5, 42,128,113, 2,227, 33, 47, 36,211,149, 99, +156, 5, 58, 43,104, 3, 27,231, 54,182,170,117,159, 54,188, 94, 58, 86, 36, 4,188,176, 41,153,217,106,195,251, 20,216,123, 41, +217,167,113,102, 31,255,156, 75, 88, 9,124, 84,137,236,186, 40,247, 58,175, 99,224, 63,153, 70,113,164,147, 41,180, 6, 95,106, + 6,101, 78, 33, 20, 70,120,166,181,225,254, 98,193,195,213,138, 91, 93, 3,187, 7,220,245,128,169, 57,238, 26,180,204,184, 82, + 66,112, 14, 47, 2,123,133,198, 18,216,213,129,251,235,134,159,175,155,205,102,234, 13,131, 34, 99,224, 28, 59, 58, 10,148, 8, + 39, 40,114,197,178,131,221, 42,218, 87, 22,120,190,186,114, 76,187, 88,225,151, 18, 62, 87,198,103, 97,175,202,168, 77, 32,211, +138, 69,109, 25, 8, 88,104,141, 86,130,155,133,102, 55,211, 76,148,224,185,209,128,171, 18, 6,227,146,145,128, 23,181,230,174, +147,180,137,154, 41,202, 17,248, 22,177,183,131,144, 25, 12, 74,196,106,133,176,134,121, 11,147, 81,198, 16,176,198, 32,157,229, + 57,160,178, 29, 99,161,145, 2, 50, 93,144,101, 37,186, 31,237,229, 5,133,138, 73,104,208,146,113,166,105, 17, 60,236, 28,151, +170, 44, 90, 11,120, 27,231,190,206,112,125,178,207,207,127,244, 54,159,219, 29,178,108, 21, 95, 62,189,203,251,243, 41, 39, 54, +240,222,114,202, 81,174, 49, 42,103, 60, 26, 97,144, 8,227,120,223, 9, 94,112, 29,239, 53,150, 60,207,105, 8,228, 85,193,170, +109,249,184,241, 12, 27,131,215,130, 27, 93,203,221,172, 96,108, 45,239,101, 35,110,168,192, 89,174,160,109, 89, 42, 77, 27, 76, + 82,225,243, 44,157,163,201, 10,166,192, 90,130, 80, 25, 50,196,209,128, 2, 78, 36,136, 50,131, 32, 17, 62, 89, 6, 27, 27,139, + 27, 9,162,168, 18,189, 55, 61, 99,174,139,235,218,153, 68, 91, 53, 79,239,190, 58, 23, 43,254,118, 13,183,238, 66,115, 22,139, + 35, 43, 16, 66,129,206,162,193, 15, 22,161, 20, 63, 58,169,216, 41, 42, 94, 27, 12, 9, 69,201, 85,145, 81,238, 93,101,112,237, + 69, 14,242, 9,239,200, 22,206,102, 17,176, 26, 98, 1, 37,188, 68, 12,203, 24, 42,164,142,232,244,144, 70, 65, 26,200, 20,194, + 6, 68,219,196,125,225,162, 99, 40, 55,202,163,125,108,121,218, 51,151, 12,189,200,147, 16, 88,111,112,209,218,184, 55,214,109, +108,185, 23, 9, 25,239,100,194,114, 37, 64,114,109, 17,227, 81, 82, 30,141,157,197, 7,199,115,222,235, 12,191,180, 88,240, 86, +103,248,149,217, 57, 31,187,150,105, 91,227,148, 70, 91, 67,158,231,212,205, 10,133, 63,250,241, 59,193,115,117,103,140,119,158, + 92,122,150,211, 25,214, 7,206, 78,103,228,185,196, 5,207,124,186, 64,229,177, 53,217, 57,195,116, 57,103,109, 91,156,240,248, + 16,168, 84,204, 96,126,203,149, 29, 86, 78, 50, 40, 74,214, 94,242,112,225, 24, 12, 11,254,169, 87,174,240,206,220,243,153,195, + 35,190,231,230, 53,170,114,196,205,171,151,121,225,218, 21,118,138, 9, 26,201,135,173,138,173,156,208,123,125,235,104,209, 87, + 14, 96,239,128,207,188,122,133, 23,246,247, 56, 26,143,249,204,243, 87,152,228, 37,121,165,153,154, 0,139,122, 35,230,209,143, +156,241,207, 30,212,121, 74,181,115,225, 5,222, 70,212,162,105,226, 2, 80, 58, 6,139,221, 61, 62,115,120,133,113, 57,224,234, +254, 97, 18, 16, 8, 76,155,154,124, 56,100, 82,229, 28, 14,247,208, 82,131, 46,105, 93, 20,102,136, 51,248, 52,247,245, 91,157, +129,167,233, 57,245,173, 32,177, 69,221,122, 90,235,245, 89,231,234,189, 36,162,181, 27, 78,253,119,250,202,242, 24, 44,157,219, +104,202,247,221,134,190, 58,247, 9,123,208,251,102,251, 44,206,222,116, 17,245,200, 67,114,109, 19, 41, 9,146,230,209, 57,149, +243,113,206, 37, 68,162,202,125, 11,197, 60,159,152, 8, 33, 9,190,248,176,209,175, 87,125, 64, 76, 74,128, 9, 60,151, 75,201, +149, 44,224,149, 66,132, 64, 41, 21, 34,147,200,214,162, 69,228,188,214, 46,144, 73,193,210,165,241, 19, 73,168, 71, 6, 58, 98, +176,215, 66, 50,235, 28,251,165, 96,218,121,132, 80, 81,255,189, 7,202,185, 45,201,101,159,230,235, 93,136,227, 0,195, 38,160, +123,187, 1,220, 94, 88, 10,247, 35,249,176, 17, 61,250, 52, 52, 70,159,240, 14, 93,172,202,105,214,177, 74,154, 47, 98, 37,214, + 56,234, 97,201,238,112, 68, 45, 84, 84,250,106, 91,222, 94,157,241,141,211,227,184, 57,133, 54,254,188, 84,180, 93,203,171, 90, +113,169, 42,208,222,146,123,139,177, 29,235,166, 37,152,142, 91,203,154, 59,205, 42, 38,102, 54,118, 90, 76,240,236, 11, 23, 59, +118,157,163,212,154, 81, 6,227, 76, 80,119, 1,137,231,108,109,248,242, 42, 49, 71,130,165, 20,129, 87, 39, 57, 89, 8,212, 54, + 80,230,146,186,181, 28,142,114, 30, 58,201,158,136, 90, 2, 15, 87,134,135, 94, 48,169, 10,126,102,217,241,249,157, 10,227, 61, +107,231,185,167,114, 6, 2,166,198,199,128,164, 52, 98,180, 27, 55,226,241, 8,225, 90,184,113, 3,121,124,134,220,155,112,251, +225,130,135, 18,118,139, 28,101, 44, 89,107,184,162, 20,121,240, 20, 58, 39,136,140, 78,120,178,162,164,149,154,165,212,204,242, +140,214, 89,100,145,211, 41,197,188,131,188,208, 52,105,162,210, 9,133,203, 53, 70, 73,206,231, 39, 8, 89,240,225,236,156,111, + 44, 78,104,186,150,198, 59,186,213, 57,214, 59,238,170,140, 35, 33,216,203,115,198,147, 33, 93,145, 83, 56,203,219,171, 53, 7, +163,146,247,215, 29, 7,185, 98, 97, 44,120,193,243,149,226,171,181,227,121,215,113,191, 40,184, 92,175, 57, 41, 42, 94, 20, 53, +191, 18, 10, 46,249,142, 51,159, 71, 91, 88,165, 57,183, 13,194, 89,230, 42, 34,227,167, 8, 92, 86, 97, 69,236, 72,246, 30,111, +153,210,156,133, 4, 94, 93,214, 8,159,244,210, 69, 74, 56,139, 10, 17,210,243, 95,183, 17,152,236, 92,178, 12, 53,207, 54, 86, +117, 17,185,206,233, 41,156, 45,225,228, 46, 66,198,145, 17,193, 35,112,252,216,254, 46, 71, 90,113, 73,105, 66,150, 81, 27, 19, +105,155, 7,151,232,148,164,243,146,243,197, 49,243,227,211,248,247,186, 14,145,233,232,236, 23, 98,146, 32,178, 12,145,101,124, +166, 42,249,129,225,132,239,219, 25,113,121, 84,241, 97,211,193, 98,141,104,235, 88,100, 94, 20, 80,225, 81, 23,204, 79, 74,164, +123, 86,144,202, 19,107,200,167,234,191, 77, 32, 96,210,190,159,168, 74, 33,141,133,219, 68, 33, 54, 53,162, 72, 99, 72, 27,147, + 34,187,110,226,179,185, 88,196,235,106, 26,192,178, 12, 48,117, 14,154, 21,139,229, 20,197,240,198,143,163, 53,171,188,229,189, +211, 19,186,110,205,170, 94,178, 88,206, 25,100, 37,139,229,156,118,213,144,149, 25,117,179,166,110,107, 58,211,210,212,134, 7, +235, 57,157,141,252,220,178,200,184, 57, 26,112,175,243, 72, 33,184, 57,172,184, 84,150, 84,227, 49, 47, 14, 7,220,237, 52,207, +141,246,249,220,165, 93, 46, 29,238, 33,244,128, 60, 31,176,172,225,218,209, 37, 6,229, 46,191,225,218, 30,183,145,100, 71, 67, +218, 51, 3, 42, 82, 88, 68, 57, 97,242,202, 33, 47, 31,236,115, 48,218, 97,111, 48,228,112,119,143,241,104,204,225, 96,192, 45, +187,198, 28, 47, 99,150,247,248, 60,245,105, 23,252,241,215,211,132, 90,250,141,175, 87, 47, 19,105,243,151, 10, 10,205,100,103, +143,107, 59,251,232, 92, 68,109,230, 60, 71,105,205,195,102,201, 40,215, 28, 14,118, 81, 85, 73,145, 21,100,153, 98,106,218,168, +144,214, 75,154, 90,191, 21,212,213, 39, 13,193, 55,224,177,237,238,130,248, 54, 85,253, 60,223, 12,178,250,110, 4,244, 30, 87, +208,219,121,170, 36, 98,225, 92, 2,191, 36,227, 27,111, 35, 55, 93,248,232,179, 45, 4, 84,217,102, 68,162, 19,133,174,179,155, +108,183, 75, 52, 26, 29,185,216, 40, 25,103, 79,223, 74,194,177,111,122, 8,183,145, 93,237, 43,245, 30, 97,174, 19, 61, 80,101, + 23,151,246,160, 82, 49,121,150,154, 66, 4, 26,235,201,115,133,176, 30,163, 99,219,253,196,120,134,153,162,243, 62, 61,144, 34, +101,248,241, 60,140,243,136, 16, 88, 58,129, 34,208,132, 4, 16,236,250,121, 91,182, 25, 37,244,163, 6, 69,194, 16,244,237,119, +185, 65,228, 7,191, 9,236,166, 79,254,122,189,130,111, 35,193,235,193,133,230, 9,206,129,133,132,157, 93,142, 39, 19,238,250, +192, 7, 93,203,237,174, 97,213, 52, 48,155,194,249, 60,178, 58,164,143, 96,164,182,230,195,206, 82,154,150,113, 48,204,218,142, +179, 85,205,213, 76,242,191, 61, 56,227,157,243,135, 73,167, 33,206,235, 9, 14,218, 53, 15, 77, 96,228, 26, 14, 16,100,193,225, + 13, 52,173,103,191,128,197,178,227,221,181,231,225,114,158,128, 70,154,182, 53, 12,218,142,231,138, 28,147,148,251,118,114,201, +131,149,225,249,161,166, 70,114,123, 29, 55,249, 99,149, 49, 53,142,239, 29,228, 76, 91,143, 44,163,166,196,170,181, 84,185,230, + 76,228, 72,173,227,101, 46, 7, 48, 60, 64,116, 43,216,191, 18,167, 95,135, 59,136, 92, 35, 77,203,202,192,187,167, 11, 74,233, + 25,229, 25,151,124, 64,133, 16,193, 75, 66, 18,202, 17, 11,192, 8,201,188,200, 57, 15,129,121,145, 99, 58,143, 85,130,221, 34, +167,238, 2,115,235,201,116, 52,241,176,222,211, 5,133, 10, 2, 45, 44,185,107, 25,218,134, 35, 12,106,181,166, 11, 30,235, 44, +222,180,124,102, 56,162, 44,135,156,173,107, 58, 27,104,138,140, 97, 89, 96, 3,136, 76, 99,165,228, 82,161,201,141,225,235,181, +229, 75,149,226,174, 13, 28,212, 75, 78,138, 1, 59, 77,205,219,162,228, 53,209,114,203,105,174, 20,146,115,151, 49, 51,134, 74, + 6,238, 16, 48, 93,199, 90, 69, 96,180, 19, 30,167,114,156,240,180,222,209, 56, 79, 14,100, 69,193, 92, 9, 66,145,131,174, 16, +203, 6, 81,175, 99, 65,214,196,103, 84,244,242,225,109,253,116,134,204,179, 96,166,154, 85,148,133,158, 30, 35, 76, 7,133,100, +183, 26,113, 40, 5, 55, 39, 21,166,109,240,214, 80,230, 25,109, 8, 24,103,184,187, 94,115,239,252,132,175,188,255, 17,194, 73, + 68,231, 99,101,222, 69,193, 28,177,182,136,221, 1,162,200,249,220, 96,192,111, 59,188,204, 75,163, 33,135,229,136, 93, 41,169, +131,227, 65,211,196,174,172,138, 93,232, 56, 7, 79,178,197,189,246,198, 39,137,123,109, 7,253, 44, 75, 21,120, 29, 11, 23,111, + 19,215,189,215,154,207, 54,117,156, 78,154, 28, 69, 1,164,113,116,103,146,158,135,139, 90, 31,237, 58,106,165, 44, 22,176, 90, +131, 89,227,108,203,108,189, 98,229, 12,138,234,218,143, 51, 95,176,250,232, 1,237,170,227, 36,147,124,124,114, 31, 47, 61,211, +245, 25, 67,157,241,112,113, 70,103, 60,245,122, 77,231, 28, 15,166, 51,130, 2,211,116, 56, 23,233, 6, 90, 74,172,212,104,165, +185,185,179,131,214,146,115, 39,121,249, 96,143,198,105, 46,143,247,249,236,243, 71,140,247,118, 17, 33, 99, 60, 26, 32,100,198, +254,222,144,114,144, 51, 28, 87, 56, 49,228,114, 85, 49, 81, 57, 31, 45,150,201, 28, 69,161, 94,185,202, 43,187, 19, 46,141,247, +120,238,202, 33,121, 86,161,164, 38,211,154, 60, 83, 28, 86, 35,222,237, 44, 44,231,207,102,105,250,164,192,254,137, 65,161,111, +161,244,193, 84,199, 10,202, 43, 76, 89,178, 55,170, 24,230, 21, 32, 25,228, 21,139,122,206,173,143,239, 83,211,113,249,224,136, + 16, 60, 66, 42,230,203, 53,171, 46,192,226, 52,182, 91,218,100, 55,218, 31,179,122, 26,230,191,167, 81, 36,179,145,199, 3,185, +148,191,190,114,189,125, 80,205,212,134, 59, 31,182,132, 81, 66,106,201, 27,226,249,246,109,113,225, 99,149,222,227, 35,212, 99, +247,196,121,144, 46, 58,192,133, 46,174,250, 50, 79,201,208, 86, 39, 96,187, 99,241,120,128,239,231,251, 23,109,235,176, 81,108, +147, 91,216,130,222, 4, 38, 5,228, 74, 75,198,121,148,124, 85,193,179,212,138, 29, 68,148, 8, 16,129,153, 9,204,131, 99,148, + 43,230,157,143, 46, 98, 58,141, 51,186, 68,147,233, 81,238, 66,160,144,216,158,182,102, 98, 62,131, 74,157,136, 11,237,247,109, +128, 92,234,188,169, 45,133,187, 94,237,175,175, 20,122,122, 99, 38, 54, 73,222,119,178, 14,244,150,110, 65, 63,158,217,219,131, +201, 36,105, 12,196,141,134,102, 13, 39,103,240,224, 1, 76,167,112,182,138,115,251, 0,116, 29, 31, 55,107,190,182, 92,242,141, +197,130,119,231,231,252,163,217,138,245,244, 20,104,227,172,190, 91,166, 68,162, 77,109,217,142,165,183,140,125,195,201,186,101, +136, 67, 89, 67,179, 92,240,206,210,241, 75,211,227,120,124,245, 10, 86, 51,232, 58,202, 44,167,109, 59,158, 47, 74, 74,239,184, +189, 50, 92, 25, 40,140,241, 88, 23,131,237,137, 9,236,201,168,168, 39,149,228,221,206,177,155, 41, 68,107,184, 84, 40,154, 92, + 19, 28, 12,164,160,214, 69, 66, 59, 7,198, 7,215, 48,206, 82, 12,118,240,121,133,152,159, 34, 71, 35,228,116,129, 8,158, 59, + 65,177, 50, 45,101,221,113, 35,203,241, 90, 99,164,192,102, 26,151, 21, 60,208,138,133,146,156, 16,112, 66,178, 20, 1, 13, 44, +141, 67,100,130, 70,150,212, 66,176,176, 22, 87,140, 8,182,137,213, 62,142, 44,147, 92,151,146,231,188,231,149, 92,243,170,146, + 92,111,106, 14,149,229,103,151, 43,174,231, 3,230,109, 67, 94,150,220,152,148,152, 65, 73,176,142, 61,165,168, 67,164,151,221, +211,154, 87, 69,224,163,181,225,200,183, 76,199, 35, 70,139, 5,205, 96,192,117,183,228, 45,167,184, 26, 60, 43,161, 25,200, 22, + 67,198, 87, 90,184,164, 28,247,179, 44,178, 59,164,196, 7,129, 64,226,132,160,243, 14,165, 20,101,158,161, 5, 28,230, 67,230, + 74, 97,125, 2, 23,170, 28, 17,146, 40, 87, 16, 81,213, 77,248,167,232,114,232,111,201,187, 21, 59, 59,112,249,185,168, 33, 34, + 36,204, 27,132,143,129, 53,175, 74,110, 12, 71, 92,173,114,246, 29, 4, 17,232,218, 14,103, 12,239, 47,167, 60, 88, 28,243,149, +135,247, 88, 26, 71,176, 14, 33, 4,194, 69,148,190, 12, 1,161, 2, 66,103,136,178,228,247,222,120,142, 27,195, 9, 74,105,218, + 0, 59,249,128,145,146,124,117,118,134,104, 76,242,140,176,177, 99,156,165,194,226, 91, 5,244,237,174, 98,239,125,231, 83, 37, +222,123,115, 8,159,104,189,114, 83,181,203,180,135, 6,153,152, 59, 2,130,137, 99, 14, 82,181,223, 39,225,161, 15,240,117,236, +104,180,150,112,255, 62,254,228,180, 55,116, 73,175,186, 38,220,123, 8,147, 1,243,229,154,211,217,154, 15, 86,103,172,156,227, +206,249, 25,171,182,230,225,114,206,188,233, 56,159,173, 65, 8,202, 74,199, 44, 53, 56,174, 12,135, 8,114, 66, 48,116, 40,174, +142,247, 25, 21, 57, 71,123,251, 84,101,197,238,238,144,253, 97,137,211,154, 97,158, 83,230,138,241, 78, 69,166, 11, 70, 85,198, +100, 92,208, 90, 73,240,146,231,143, 46,241,238,201, 41, 88,205,228,242,132, 47, 61,119,149,203,123, 59, 88,231,168,134, 21, 77, +107,144, 34, 74,152,238, 78,134, 24,223,240,240,227, 89,204, 98, 62, 77,251,241, 73,122,229,223, 52, 31,241, 27, 78, 33, 50,141, + 72, 20,120, 67, 40,135,236, 15,135, 40,161,201,179,136, 40, 61,155,207, 56,153,206,161, 94,145, 15,198, 4, 41,153,175,214,152, +160,168,103, 11, 56, 59,137, 27,183, 79,148,184,237,106,249,137,213,122,216,208,237,250,121,164,148,143,190,255,122, 6,245, 94, +184, 71,176, 89,244,143,207,214,165,120, 20,113,126, 33, 10,148,197, 5,170,179,141,245, 40, 36,250, 96, 58,175, 96,146,139,220, +150, 88,139, 20, 27,141,251,109,113,156, 39,169,198,245,178,182,189, 26, 91,143,105,232, 33, 5,253, 72,227, 66,120, 38,178, 52, + 70, 42,144, 73,133,204, 51, 38, 94, 98, 18,143,123, 25, 2, 66, 9,156, 15,212, 70,210, 6,183,169,178,123,157,249,237,164, 81, +203,136,172,182,108,216, 18,189,118,127, 8, 91,247, 53, 5,117, 41,158, 78, 78,232, 63,231,229,166,130, 87, 9,112,167, 30, 51, +177,249,180, 93, 22,173, 34,171, 32, 75, 6, 31,206,193,243, 55, 97, 56,138, 1,189,231,238, 26, 3,247, 78,226, 12,222,218,141, + 89, 78, 99, 98,208, 54, 62,182, 9,235, 38,138, 83,157,157, 71, 37,178, 69, 29, 13,145, 76, 7,231,179,152,168,174,151,224, 58, + 76,187,230,227,206,114,167, 91,242,230,123,223,224,117,114,190,114,122,194,157,197,113,236,146, 53, 11,104, 82, 50, 32, 28,211, +249,130,223, 49, 41, 88,172, 27, 10,165,216,145, 14,237, 3,183,151, 29,135, 10,126,110,218,240,182,245, 20,109,203,213, 65,193, + 73,231,216,215, 18,233, 2,119, 28, 76, 6, 5,101, 16, 28, 40,207,181, 65,133,149,138,203,185,230,197, 65, 65,238, 2, 47,238, +237,114, 86,119, 88,161, 17,163, 61,196,236, 1, 98, 60, 64, 24,143, 88,175, 56, 57, 95,240,102,169,121,174, 51, 52,194,227,138, +146, 7, 4,238, 10,193, 42,207,153, 6,201, 76, 10, 86,169, 45, 29,165,129,193,203,130,198, 24,222,247,158, 60,175,112, 1,202, +172,164, 69,227, 8, 84,197,144,129,247, 76,138, 2, 35, 53,138, 64,169, 5,178,238,216,209,112,210,156,115,165,136, 30,228, 39, +179, 6, 68,142,113,158, 97,149,161,172, 99, 26, 20,215,218,154,147,160,216,105,151,156,148, 3,118,166,231, 44,202,146,172, 89, +243,150, 44,121, 77, 54, 44,100, 70, 97,150,204,173,166,202, 61,149,133, 55,169,144,139, 51, 62, 18, 57,121,183,160,201, 74, 22, +237, 10, 47, 64, 32,162,254,188,247, 76,242, 1,147, 92,145,133,128, 31,141, 88,233,132,137, 89, 27,132,176, 96,171,136, 98, 23, + 32,116, 21, 91,233,143,206,253, 54,115,230, 39, 5,247, 44,231, 71,255,153, 31,225,135,127,243,111,226,149,107,215,120, 99,177, +224,210,171, 47,242,155,190,240,253,212,206,114, 54, 63,231, 67, 37,120,185,136, 94, 5,213,122,205,121,215,210, 90,195,237,213, + 25, 63,125, 62,103,209, 26, 76,221,197,110,139, 3,145, 41,100,208, 72, 47, 16, 33,142,212, 68, 85,240,242,206,144,107,163, 93, + 74,157,225,164,192, 19,184,179, 94,242, 13, 27,229, 92,133,105, 54,147,208,158,174,247,172,207, 87, 15,210,131, 8,178,201,178, + 24,132,139, 98, 19, 79, 66,194, 21,245, 64,226,222,148, 75,217,132,210, 79,238,132,242, 49, 42,113, 15, 64,118,169, 51, 58,159, +197,103,105,181,120, 44,168,247,175,243, 69,164, 28, 52, 53,204, 87,180, 77, 71,119,231, 14,139,182, 99,181, 88,179,246, 14, 39, + 97,109, 29,133,200,200, 52, 92,159,236,166,226, 66,130, 40, 56, 28, 77, 40,117, 9, 66, 49, 40, 75,124, 16,148, 69,197,120, 82, +144, 11,141, 46, 36,185,206,169,202, 12,165, 37,133,206,185,127,182,102, 60,169,168,215,150,229,170,229,189,245,156, 16, 96,103, +111,196,141,201, 4,169, 20,229, 96, 68, 8,129,162,200,144, 82,162,242,140,224, 61,205,106,201,135,167,171,104, 15,251, 29, 85, + 43,143,173,179,190, 74,223,174,214,251, 74,201, 72,152, 47, 56, 81,158,165,105, 88, 52,115, 30,204,207,249,120,185, 34, 28, 47, + 97,113,204,162, 49, 44,100,193,170,113,172, 87,107, 56, 63,131,102,186, 1, 69, 61,158,241,169, 45,181,162,222,226, 20,243,232, + 92,125,251,166,246, 0,191, 95,207, 42,221,152, 77,224,238, 93,215, 92,162,167,245, 98, 51, 61, 21, 77,138,180,112, 19,218,189, + 23,120,208,249,134,222,209,163,194, 93, 2,143,249,190,165,159,109,180,223, 73,137, 85, 16, 27,254,188, 20,223,172, 77,208, 43, +252, 93,180,220,229,150, 96,156,222,100,202, 23, 24,133, 88,173, 58,231,233,188, 96, 55,147, 72,173, 88,135, 16,213,183,164,226, +204,153, 40, 90, 34, 21, 11,239,112,253,239, 17,114, 11,145,158, 64,124,189,251,157,148,155,234, 61, 79, 0,153, 92,197,207,245, + 0, 69,169, 54,128, 79, 31,122,140, 76, 58, 23,177,105,226,244, 20, 55,122, 42, 32, 49, 64,110,111, 60, 23, 27,100, 9,187,123, + 49, 0,127,210, 61,204,213, 70,132,135,116,188,229, 40, 50, 55, 38,147,228,183,238,162,134,117, 91,199, 17,210, 98,145,174, 41, +241,221, 38,167,188,102, 5,243, 21, 44,215,176, 92, 65, 51,131,179, 57,204,207, 96, 49,219,108, 64, 15,103, 49,121,163, 23,206, + 49,145, 51, 78, 32,204, 78, 99, 85,190,154,193, 98, 26,141,125, 22,231, 96,107, 70,193,208, 53, 75,190, 54,159,242,165,157, 93, +190,122,255, 30,129,140, 15,206,166, 28, 73,248,219,181,225,246,249, 9, 47,155, 26,231,224,174, 9, 92,223, 29,226,114,141,237, + 12, 7,147, 1,243, 69, 77,174, 53,161,200,208,198,209, 0,135,133,226,182, 11, 92, 31,104, 22,139, 53,217, 96,194,103,117,224, +238,114,138, 24,237, 34,234,101, 76, 70,198,195,152,191,158, 28,243,122,166, 41,155,142, 51, 5,247,133,165,214, 25, 15,189,101, + 46,162, 43,222, 89,235,145, 90,178,104, 37, 83,103, 80, 46,240,139, 1,106,173, 9, 50, 71, 7,143, 47,134, 72, 12,131,225, 1, +187,190,161, 26,237, 97, 28,228, 90, 35, 84,134,149, 25, 82, 11,180,119,156,215, 29,109,187,166,198,209,214, 13, 39,117,205,123, +139, 37, 95,110,226,109,184,238, 13,111, 4,201, 75,120,206,148,230,200, 52,156,150, 67,246, 2, 44, 60,188, 20,214,188,229, 75, +246,154, 5, 75, 61,100, 20, 26, 26,167, 25,102, 48,182, 43,222,206,118,185,181,156,241, 1,154,118,126, 70,109, 5,132,142, 73, + 94, 80,200,140, 66,106, 10, 25,169,121, 95, 24, 12, 57, 84,129, 87, 43,197,221,214,210,117,150,235,255,216, 23,152,220,184,196, +252,206,233, 70, 91,253,137, 1,189,151, 72, 76, 27,110,177,173, 99, 81,241, 79,254,142, 31, 34, 43, 74,170,178, 34,180, 43,126, +248,251,254,113, 94,124,233, 42,135,229,136,215,255,222,207,224,131,229, 43, 65,242,188,109,248,216,118, 52,182,227,141,249, 9, +175, 47,151,220,239, 58,108,103, 32, 4,180,130,203,153,230,181,113,198, 97, 46,120,185, 42, 24,102,146,105,215, 34, 3,188,116, +249, 18,151,171, 49, 78, 73, 36,112,102, 45, 31, 47,214,124,216,212,113, 93,158, 77,163,227,154,181,136,158,142,108, 62,197,126, + 43, 28, 23,202, 81, 38, 68,153,242,182,141,231,107,125, 26, 69,102,177, 64,241, 73, 35, 30, 19, 71,146,157,217,236,151,150,141, + 59,102,207,127,239,247,181,199, 18,249, 39, 7,245,254,101, 82, 22, 62, 95,196,247,182,141, 45,179,218,226, 0, 93, 13,241, 82, +242,252,164, 98,214,193, 32, 83,152,160,168, 84,198,164, 44, 25, 14,114, 6,101, 73,103, 61,227,113, 69, 89, 72, 84,166, 25,143, + 50,180,206,201,181, 38,203, 20,135,163,156,218,120,118, 70, 57,247, 78,107,242, 66,161,133,226, 82, 89,114, 26, 60,151,171,156, +203,147, 33,151, 15,247,201,116, 70, 83,215,100,213,128,206,117,232, 32,152,173,102,156,175,150,124,124,190,136,179, 6,241,132, + 13,254,211,112,184,183,214,218,133, 19,221,133, 2,155,221,180,107, 73,153,150,177,180,214, 48,111, 29,171, 69, 77,104, 13, 76, +143, 47,220,197,194,218, 19, 22,211, 72, 21, 58,189,183, 9, 84, 79, 3, 89,248,173, 54, 75, 31,176,122,160,198, 54, 77,172,159, +195,252,255,161, 74,239, 81,220,125, 64,223, 78, 58, 92,156,133, 94,160,188,149,220,146,133, 5,172, 74,224,186,132,109,232, 18, +152,205, 54,209, 94, 53, 81,149, 98,208, 45,184, 48,177,239,171,239,222,198,180, 79,110, 50,189,201,146, 51,189,153,157,171, 68, +147,203,179,216, 17,241, 91, 1, 83, 19,171,209,212, 17, 41,148, 64,151,154, 90,194,185,243,140, 81,120, 4,199,174,163,146,138, + 22,207, 50,120,100,208, 92,108, 91,109, 66,242,247,107,165,200,211,188, 60,209,230,122,139, 90,147,196,120,250,174,131, 74,146, +195,189,160, 69,235, 55,222, 1,189,127,122,216, 10,234, 23, 70, 48, 9, 96,163,253, 70, 88,231,113, 0,143,183,159, 28,208,203, +100, 64,228, 21,148,137,163,223, 39, 39,210,193,229,195, 40,209,154,229, 73,201,175,142, 85,217,106, 25,209,243,189,138, 88,127, + 49,251,249,188,183,113, 67,183,221,230,255,219,235,218,216,248,181, 85, 29, 19,134,222,209,176,141,237,120,206,231, 17,129,127, +239, 54,156, 78,225,248, 12, 30,158,130, 11,116,161,133, 7,103, 96,107,222,152, 79,121,216,118,188, 59,187,207, 29, 7,111,204, +206, 88,205,207,192, 26, 78,101,244, 65,120,161,138,231,119, 74, 96,183,200,200,188, 99, 80,106,186,206,179, 43, 3,115, 29,169, + 92, 15,219,142, 10, 79, 94,100, 12,132, 2,103,200,117,198,157,144, 70, 72,222,192,238, 40, 6,171,206, 18, 60, 52,237,154, 55, +230, 53,167,198, 50, 83,130,169,107,176,153, 70, 42,197,251,117,203, 88, 11,124,200, 88,219,142,129,202,248, 27,157, 97, 21, 34, +234,126,222,181, 44,138, 49, 57, 1, 89,236, 48,212,154, 73, 54, 36, 83,138,188,218, 33,132,128,149, 25, 66, 6,140,214,184,188, + 96, 25, 44, 43, 93,114,111,109,121,216,174,120,184, 94,210, 9,137,111, 87,228,182,163, 54,150,207, 75,193,173,224,185, 92,175, + 56,174,198,236,173,166,204,144, 12,240,220, 86, 5, 47,179,230,196,107, 38,210, 80, 59,197, 80, 26, 22,157,195,232, 33, 52, 83, +234,225, 46,221,106,198, 44, 43,112,237,154, 73,166, 24,120, 71,165, 50, 70, 89, 73, 41, 4, 47, 9, 65,165, 53,101,240,140,133, +224,102, 33,248,229,198, 49,127,227, 29, 22, 31,221,142,227,201, 44,123,172,224,240,124,179,134,181,140, 40,240,155, 55,227,154, +114, 14, 20,236,223, 56,228, 96,103,143,249,124,202,123, 15, 31,240,249,207,190,200,120, 88, 32,164,231, 23,126,246,231, 17,179, +115, 40, 5,191, 60,155,241, 43,171, 53, 95, 93, 76,249,160,235,152, 37, 54,135,176, 32,130,163, 0,174, 15, 37,215,130,224,122, +158,113, 45, 83,188, 88,229,124,190, 44,153,250,142,175, 52,158,225, 64,227, 69,198,185,247,124, 56, 91,240, 15,154, 46,106,149, +244,207,208,114, 5,227, 33,131,223,248, 26,166, 53, 81, 95,254,153, 1,169,125, 98, 46,210,236,220, 38,234,106,114,105,202,212, +134,174,171, 82, 66,159,103,233,185, 72, 96, 94,177,213,197,235, 85, 63,125, 82,170, 11,201,171, 99, 43,209,248,228,160,254, 36, + 48,153,115, 17,241,106,193, 9, 73, 86, 22, 24,162,104,129, 71,115,115,156,211, 57,201,112, 56,164,208,154,172,172,168, 74,201, +238, 32,167,200, 75,170, 44,103,152,107,138, 66,178, 55,208, 12,135,154,224, 5,231, 43,203,188,117, 52, 77,131, 16, 2,157, 9, +102,211, 53,227, 60, 99, 55,207, 24, 15, 71,236, 76,134, 4, 41,217,153, 12,177,198,226,172,199, 99, 57, 62, 61,227,193, 98,206, +241,157,227, 40,247, 39,210,220,226,211, 58,201,105, 54, 85,185,125,194, 92,221,250,141,168,135,210, 41,121, 72, 52,171, 58, 1, + 26,234, 22,234,105,156,119, 36, 51, 3,234, 25,212,115, 88, 46, 30, 13,102,159, 22,208,212, 11,236,108, 1,166,127, 77,170,244, + 94, 78,247, 66,130, 87, 63,186,137,123,183, 65,161,103,122, 35, 52,211,211,206, 50, 21, 1,109, 50, 75, 21,113,207, 17, 77, 82, +177,222,166,192,214,165,202, 89,108, 2,122,150, 50,212, 11, 3, 5,187, 17,180,185,152,187,139,173, 17, 68, 66,138,247,179,244, +254,251, 82,179, 35, 58,220,109,117, 69,250,177,128, 78,234, 51,169,109, 30, 4, 92, 41, 36,115, 3, 7, 69,129, 11, 30, 43,161, +144, 18,237, 92,100,202, 11,193,220,137, 56, 79,239, 1,126,190,159,161,245, 65, 90,110, 85,162,108, 42,118, 82,117,155, 37,238, +124,145,228, 96,149,218,120,169, 39, 36, 62,153,120, 52,145,203,182,100,137,101, 90, 27, 23,226, 53,225,217,129,143,187, 71, 49, +104, 95, 58,140, 78,103,123, 7,241,239,181, 93, 74,138, 21, 92,218,131,157,253,141, 16,146,202,226,189, 57,157,198,164, 85,203, +141,229,237,183,227,220, 88,232,152,196,229,122,115,252,214,193,170,139,188,122,211,197,251,179, 94,197,247,166,129,121, 18,231, +152,173,224,236, 12,230,211,120, 47,143,239, 68, 33, 19, 41, 96,126, 12, 82, 34,164,231,104,114,137,194, 26,118,139, 12,103, 61, +185,119,204,189,164, 8, 22, 33, 5,167,198,243,126, 23,165, 92, 95, 25,230,252,242,131, 5, 82, 73,158,203, 36,239, 47, 86,188, + 58,168,184, 55,159, 69,151,185,249, 49,100,154,224, 60,161,243, 4,161,241,245,130,179,149,225,227,214,243,110,103,121,177,144, +220, 53, 53, 87,164,228,107,157,103, 97, 13, 3,169,248, 74, 8,204,179, 18, 92, 71, 32, 64, 89, 97, 93, 96,169, 75,118,139, 28, +139,100, 52,222, 71, 42, 65, 53, 28,226,243, 28,161, 74, 58,149, 51,151, 48,117,138,135, 42,199, 56,193, 74, 71, 51, 22,175, 50, + 44, 6,231, 60,115,157,243, 57, 17,248,106,107,248,162,232, 88,150, 99, 14,204,140,243,209, 1,131,166,197, 22,154, 27,161,230, + 61,147,115,168,162, 46,209,176, 16, 44,150, 29,168,140,117,103, 56, 46,198,148,171, 25, 62, 43,113,235, 37,181, 86,148,235, 53, +215,171,156,177, 46, 41,165,228, 72, 43, 6, 58, 39, 88,195,174, 82, 52, 30, 20,142, 43,185,231, 77,227, 19,180, 63, 21, 87,223, +180, 38,182, 91,238,125,242, 91,240,252, 23, 94, 97,118,214, 69,161, 36,107,120,255,141,183,248,242,207,253,191,124,237,157,143, + 56,195, 51, 18,134,213, 98,202,151,223,126,157,135,175,223, 2,105, 16,211,105,252,125,117, 29,237,120,219, 22,209,118, 73, 84, +198,146, 9,120, 99, 58,215,121, 0, 0, 32, 0, 73, 68, 65, 84,161, 16,148, 33,176,175, 4,215,117,198,110,150,115, 41, 83,228, +165, 70,123,201,131,213,138,183,141,229,151,235, 37,175,215, 29, 31,154, 58,185, 95,134,205, 94,159,229, 20,175, 94,231,115, 7, +215, 57,203, 61,246,238,244,153,100,209, 31,109,195,167,185,155, 76,115,244,158,206,219, 38,141, 14,181,253,125,105,175,243,253, +222,183, 69, 95,237,157, 37,123,230, 75,150,246, 54,185,121,230, 63, 93, 80,135,232,174,132, 74,148, 34,197, 11,151, 43, 38,121, + 65,235, 21,207, 13, 53,247,106,139,119,150,221, 66, 81,150, 67,134,101,198,238,168, 64,233,140, 97,153,115,237,176, 98, 50, 16, + 12,171,168, 45, 63,204, 21,109, 23,105,113, 81,225, 85, 32,133,143,182,130, 50,202,115,102, 2,206, 27,199,254,184,160, 26,150, +232, 60,231,228,120, 74,150,103,172,151, 51,100,240,252,204,215,223,143,224,157,126, 13,169,240,236, 85,172,222,210, 97,233, 43, +227, 94,213,205,251,111, 78, 50,123,234,129,177,241,130, 6, 31,219,131,245, 50,206,253,218,246,201, 0, 17,249, 29, 6,215,139, +196, 66,126, 50, 79,242,187,253,234, 41, 95,189, 7,122, 79,197,208, 91,114,188, 38,233,196, 91,183,161,115,108, 87,231, 90,197, + 74,149, 16, 3, 87,214,243,209,147,176,143, 49,169,130,139,226, 31, 23, 0,147, 62, 65, 80, 91,109,242,109, 32, 93,255,222,187, + 69,153,110,139,186,168, 30,165,126,201,236, 17,188,227, 35, 16,220,222,254, 52,209,239, 68,166,169,125,224,160,136, 60,221,135, + 78,177,151, 65,231, 2, 70, 72,242, 0,107, 41, 89,251,237,225,119,162, 84, 6,145, 90,240,169,122, 14, 79,160, 82,246,194, 19, +219,163,131,190, 52,247, 46,137, 29,165, 99,179,189,118,116, 47, 68, 20, 30,109,199,247,172, 12, 23,158,157,234,248,217,207,176, +115,227,136, 47, 94,127,129,207, 94,190,202,193,164, 98,111, 48,100,180, 55, 97, 58, 91, 70, 20,243,100, 2, 7, 99, 24, 95,226, +168, 44,121, 41, 47,121, 41,211, 92, 17,129,187,245, 50,130,228,124, 6, 7,123,176,179, 19, 29,175, 92,247,233,214,150,115,177, + 82,207,139,141,197,110,111, 35, 44, 84, 92, 11, 33,196,153, 99,211, 38,245,199, 38,126,172, 23,241,123,150, 43,184,127, 7,150, + 45, 76,231, 49, 25, 88, 45, 1,139, 9,130,171,194,114,207, 8,246, 84,180, 73,253,192,194,190, 14,236, 89,195, 91,198,243,176, + 54, 92,241,158, 3, 5, 31,118,158,151,117,148,240,157, 11,120,206, 89, 30,172,106, 94,174, 42,238,173,231,208,173,192,121,194, +124, 69,232, 12,190,200, 9, 90,226,219, 53,222, 91,124,187,230,227,198,113,164, 60, 15, 76,195,184, 80, 44, 87, 11, 58, 33,185, +107, 28,141,179, 4, 85,164,241, 75, 14,195, 29,130, 11,188,176, 51,100,164, 75,106,211,177,183,179,131,109, 44, 94, 15,240, 66, + 98,149,164,182,130,135, 30,206,144,172,242,130, 38,171,232,202, 1, 70,101,248,124, 4, 58,227,133,172, 98, 32, 37, 63,176, 59, + 98,237, 50, 14,204, 18, 91, 76, 24,155, 25,228, 67,178,174,225, 86,200,121, 49,119,172,140,163,202,162,214,142, 2, 90, 27,184, +151,101,200,213, 28,202, 17,147, 52, 67,191, 36, 21,167, 46,112,128, 99, 95, 72, 74, 41,185, 36,115,118,114,117, 33,136, 56, 84, + 25, 65, 8,206,157,225,235, 30, 56, 57,139, 34, 51,206, 60, 1,225,238, 31,107,197, 71, 53,207,217,233, 57, 44,167,143, 22, 41, + 58,137,127, 53, 29,239,191,115,155,175,255,242, 27, 60,252,165,143, 98,101, 43,227,158, 35, 86,171, 8,160,108, 29,162, 73,232, +118, 27, 41,146, 82, 10, 14, 66,224, 69,173, 57, 16,130, 61,169, 25, 40, 69,145,105,114, 45, 25, 72,193,204,123,102,235, 46,250, +184,247,163, 57, 33, 99,210, 37,162, 2,101,240, 30,123,231, 12,183,171,153,189,254, 46, 98,189,250,244,123,168,216,162,173,170, +212,189,236,131,114,175,176, 25, 32,250, 30,167,203,180,221,230,239,247, 48, 37, 34,128, 78,108,213, 86,129, 71,170,245, 79, 23, +212,181,222, 40,229, 20,146,163,215,118,248,248,173, 51, 6, 59, 25,135, 69,206,221, 58, 16,130,229, 82,169,104,125,206,115,135, + 67, 14,118, 75, 92,200,168,180, 96,127, 39,103, 50, 20,140,170, 28,239,147,228,102, 38, 49, 38, 90, 2,158, 44, 26,170, 66,225, +124,224,225,201, 10,219,212,228, 89,172,182,134, 85,129,247, 2,149,229,120, 31,184,116, 48,230,252,116,206, 98, 49,229,175,191, +119, 11,238, 78,227, 76,207,134,141,109, 39, 60, 91,245,208,239,203, 50,157, 95,106,219,125, 51,111,253,177,247,254, 63, 79,219, + 60,251,100, 65,242,221, 49,178,251,213,160,161, 61,203, 61,183,143, 38,214, 17,101,190,149, 88,100, 58,137,192,164, 64, 45,182, + 43,249,196, 41,239,101, 99, 67,136, 93, 14, 89, 93, 56, 41, 69,109,247, 46,205,200, 83,155,218,182,137, 54,152, 61, 26,196, 67, +216,154,169,139, 13, 8,174,179,143,242,213,123, 84,124,182,165, 92, 87,136, 71,121, 52,130,141, 96,145,202, 55, 82,144, 40,130, +119, 56, 41,105,131,140,167, 40, 21,181,151, 81,132,201, 64,166, 21, 75, 19,131,252, 69,192,118,225, 81,173,227,190,163,114, 97, + 79,107, 55, 85,122, 63,203, 15, 61,152,166,167,203,184, 71, 1,112, 50,141, 6,182,147,153,190,187,224, 83, 30,209,111, 8, 97, + 11, 68,248, 73, 70, 19,229,152,157, 27,215,121,245,224,136,113, 57,100,255, 96,159, 65, 62, 32, 24, 67,174, 20,235, 76,209,206, +215,176, 63,132, 75, 87, 57, 26, 12,120,181, 26, 51,214, 26, 45, 96,224, 59,180,111, 57, 61, 94, 69,156,195,100, 24,223,203, 28, +166,179, 79, 81,165,167, 57,106, 33, 35, 29, 32,139, 84,198,223, 48, 86,252,192,164,228,249, 82,241,193, 89, 27, 91,242,193, 63, +106, 17,220,175,125,147,230,147,109, 19,255,109,218,184,233,175, 18, 24, 15,207, 92,121, 90,169,120,123, 54,165, 53,130,251, 77, + 77,133,226,118, 16,212,171,154,214, 88,198,121,198,241,186, 99,100, 28,141,214, 28, 8, 48,171, 37,199,197,128, 87,114,201,219, +243, 37,235,122, 14,198, 16,112, 23,114,253, 97,246, 16,175, 6,120,229,241,109,139, 55,150,102,177,224,195,179,134,219,243,154, + 15, 79,167,220,111, 26,110,227, 35,157, 81, 15, 98, 48, 27, 31, 16,218, 8, 42, 29, 20, 21, 69,210,188, 23,163,138,243,117, 67, + 59, 24,144,103,154, 51, 47, 17, 82,115, 39, 8,110, 89,139,202, 43,150,121, 69,208, 89,244,186,207, 39,144,143, 40, 6,251, 92, + 43, 6, 92,157,236,130,200, 57,154, 20, 52, 89, 73,190,154,113, 76, 69, 22,106,138, 98,196,161, 52,220, 94,214,236, 23, 37,141, +177, 49, 87,178,129,219, 2,154,166,166, 40, 42, 14, 4, 12,149,230,185, 42, 67, 90,203, 43,227, 10, 37, 20,218,117, 28,170,140, + 61,149,145, 37, 48,104,147,196,151,156, 16,204, 3,124,109,185,140,207,129,173, 83,146,109,191,197,102,214,143,174,186, 39,235, +132,132,100,137,108, 82,146, 95,102,136,139,194, 34,126,143, 72,227, 29,129, 71,212, 77,164,204, 39,243,149,163, 74,114, 83, 72, +118,165, 38,151,130,137, 86,236,229,154, 12, 77,174, 36,135, 74,177, 11,204,188,167,113,118, 51,102, 18,177, 3, 23,178, 52, 66, +107, 91, 86, 31,222,137, 20, 50,239,163,104,205,167,217,127,251,209,147, 76, 64, 25, 45,226,154,101,171,144, 20, 73,116, 75,176, +225,253,135,237,107,145,246,191, 97, 21,181, 91,122,205,120, 69,220,255, 62,117,165,190, 45,253, 41, 60,228, 37,171, 44, 32, 86, + 29,211,181,229,222,210, 83, 35,184,170, 29,153,148,156, 47,151,188,124,117,159,162, 26,225,140,225,104,191,228,104,183, 96, 82, +169,200,231, 86, 34,250,119, 8,129,214,240,211, 95, 91,113,176, 3,171,218,208,218, 14,151,102,122,214, 88, 92, 16, 12,134, 5, +206, 5, 70,163,156,229,162, 35,207, 21, 77,211,114,182, 88,241,238, 91,239,197, 86, 96,109, 55, 96,178, 94,151,248,211, 4, 76, +191, 37,198,242, 29, 7,195,199, 80,119,223,205,224,254,204, 85,208,119,161, 59,208, 7,112,185,141,109,145, 27,113,159,222,246, +243, 66, 19, 89, 71,208, 86,166,226, 70,237,237, 6, 5,223,219, 25,170, 34, 1, 67, 68,156, 83, 74,145,130,119, 6,126, 29, 3, + 91, 89,110, 2,217,186,217, 82,164,235, 85,212,194,163,129,110, 59,160,235,100,222,162,229,198, 1,174,175,142,123, 81, 27,177, +229, 97, 78,226,150,247,246,165,200,152,249, 42, 69,161, 36, 51, 20,153, 16,248, 16,144, 42, 32,180,224,172,182,228, 90,209,110, + 75, 70, 26,255, 40,194,191,139,173, 59,218,232,149, 64,161, 31,173, 80,251, 4,167, 15,242,253,231,100, 15,186,179,155, 7,251, +113,166, 99, 95,173, 15,163,146, 87,228,245,187, 77,119,234,147, 42,245, 27, 55,248,226,205, 27,148, 89,201,225,222, 37,138, 60, +199,217, 14,107, 28,185,202,104,108,195,204,117,176,179,195,247, 29, 94,225,181,209, 37, 14,170, 1,141,181, 81,205,178,105,104, +187, 21, 15, 86,117,172,146,178, 4, 20,156, 47,227,115,248,105,170,244, 11,202,161,134, 50,231,218,176,224, 55,142, 11, 38, 42, +162,209, 39,165,228,195,217, 42,169, 42,202, 71, 85, 4,165,140,201, 88,153,197,107,161,100,220, 52,219, 52,207,151, 1, 86, 13, + 93,211,209,154,154,208,213, 44,156,195,205,143, 57,246,154,145, 51,236, 6,207, 73,219,113,108, 58, 20,130,155,227,156,176, 94, +131,214, 40,169,216,239, 26,238,173,107, 30,212, 43,172,169, 35,192,207,180,209,202,181,235, 8, 34, 39,172, 87,132,122, 77, 24, +148,120, 99, 99,176,119, 93,252,220, 98, 78,168, 87,132,233, 50,186,194,217, 6,116, 65,176, 22,198,187, 72,161,121,101, 52, 32, + 32, 56, 21,160,180,226, 65,158,211, 8,201, 87,140,163,203, 52,175, 11,141, 13,176, 76, 28,106,164,138,207, 80, 62,140,231,156, + 15,184,190,187,199, 36,203, 24,142, 70, 20, 8,206,157,102,156, 11,140, 46, 56,104,150,172,130, 66,248,154,115,163,121,126,167, +228,108, 89, 51, 25, 42, 22,235,192, 45, 33,120, 94, 40, 12,240,188, 18,236,141, 10,156, 23,220, 24,148, 28, 85, 21,227,108,192, +218, 59,174,102, 5,210,116,236,231, 57, 57, 2, 57, 40,169, 9,120,173, 88, 35,185,237, 29,111,218, 4,152, 60, 91,125, 50,150, +227,153, 71,190, 62,142, 52, 73,160, 48, 25, 69,150, 68,191, 71,167, 61, 78,116, 14, 97, 58,132, 18, 8,239,144, 62, 32, 21,100, + 82,112,128,228,178, 20,236,228, 25,149,148,220,172, 74,174, 22, 21, 87,138,156,163, 34,231,234,160, 98, 87, 75, 62, 92,119,180, + 18,130,210,132,196, 42, 10, 33, 2,154,195,178,133,179,179, 24,204, 71,195,232, 80, 39, 36,194,218, 79,103, 60,230,183,112, 39, +125,210,211,155, 48,245,202,155,193, 63, 74,195,237, 5,208,122,204, 82, 94,114, 97, 92,214, 39, 67, 91, 73,252,179, 7,245,158, + 58,165, 36,232, 97,148, 7, 60,158,163,158,159, 16,206,107,174, 95,175, 40, 50,203,135,115,195, 81, 41,184, 58,201, 9,162, 4, +111, 57,220, 31, 34, 69, 96,119, 32,216, 25, 22, 56,231,104,141, 67, 11, 88,119, 6,239, 4, 95,255,224,140,247, 63,186,195, 32, +207, 88, 45,150,204, 23, 75,214,171,154, 60,151, 12, 70, 21,121,158, 1, 10,103, 28, 69, 1, 77,227,112,193,241,254,253,251,204, +117,160,187,117,188,213,170,120,140, 42,246,105, 91,220,223,141,224,123, 1,172,243,159,152,160,254,170, 6,116,245, 93, 41,213, + 19,200, 73,110,141, 41,236,163, 25,202,246, 38,155,171,216, 38, 29, 12,145, 95,252, 44, 97,182,136,237, 81,231,160, 24,197,170, + 44, 36,250, 91, 16, 81,205, 43,171, 54,116, 47, 37, 55, 52,144,117,162,147, 92, 56, 36, 37,224,160, 44, 54,237,233, 46, 5,204, +109,103, 62,149,199, 68, 66,170, 13, 69, 48, 16, 91,181,170,167, 8,166, 81,128, 78,130, 57,201,122,148, 66,167,141, 34, 38,135, + 6,193,160,204, 88, 27,143,150, 34, 62,143, 38,144, 73,201,188, 55,108,184,248,251,126, 19,204, 93,136,215, 34,108, 81,250,182, + 91,240, 61,184,204,111, 85,250, 33, 41,205,117,110, 3,154,235, 85, 4,251,148,189, 99, 83,193,103,105, 3,232, 91,123,186,183, +139, 20,159, 72,115, 44, 94,122,137, 16, 44,215, 15, 14,201,243,156,206,116, 40,145,108, 72, 9,180,193,113,188,106,248,210,213, + 67,138,106, 55,122, 60,228,138, 65, 86, 96, 58,131, 20,142,135,179, 19,206, 62,190, 19,219,200, 75,147, 16,241,221,166,253,222, +107,100, 63,237, 25,236,191,222, 3, 63,117,129, 28, 14,248,157,151, 42,118,178, 28, 47, 4, 74, 64,215, 26,222, 57,111,146, 35, +152,217,172,181,190, 75,148,231,112,120, 53,174,177,174,222,140,204, 50,157, 68, 59,146,141,240,116, 30,175,213,131,187,169,117, +187,100,161, 52, 67, 60,210,117, 72, 2,133, 3,107, 45,227,193,144,206,116,248,229,154,157, 66,243,229,243, 57,206,180, 9, 39, + 99, 8,166,139,125,107, 27, 8, 82, 16,218,134, 32, 3,161,105,183, 93,182, 47,138,172, 96, 34, 88, 49,220,187, 15,195, 49,140, + 71,113, 45,234,104, 39,122,170, 51,188, 16, 92, 30,230,220, 91,117, 92,175, 50, 62,108, 45,151,180,230,190,243, 88, 36, 43,169, + 8, 34,128, 46, 19, 56, 42,138,232, 48, 28,115,105, 48,228,102, 38,121,241,112,135,182,181,168, 73,197,209, 32,231, 97, 23, 56, + 20,158, 85,174,105,219, 21,222, 73, 14, 10, 56,158,173,216, 27, 23,172, 59,207,185, 23,236, 2, 75, 33,201, 93,199,225,184, 96, + 71, 74,198, 74, 48,148, 25, 58,203,217,205,115, 14, 7, 35,240, 2,169,115, 86, 93, 67,200,114,234, 32, 88, 40, 65,155,101,220, +117,158,247,140,224,142,243,177, 91,178, 92,197, 81,152,247,143,219,108,125, 27,237,201,222,157, 49,205,155,125, 44,222,132,220, +224,124, 68,138,129,194,216,244,110,144, 34, 35, 35,160, 51,201,101, 45,217,209,138, 35,157, 49,210,154,129, 46,169,116, 70,153, +229,236,102, 5,198, 91,172, 53, 76, 21,212, 4,100, 94,224, 93,228,185,203,174, 35,172, 26,112, 9, 1, 63, 44, 35, 45, 78,134, +139,142,238,183,101, 27,254, 73, 64,233,139,175,251,205, 62, 96,211,124, 93, 37, 61, 13,107,226,216, 55,124, 26,244,251, 19,129, + 90, 9, 1,110, 36,131,207, 95,197,124, 56, 67, 93, 31, 96,131,103,250,238, 12,177,110,185,127,122,202, 7,203, 53, 59,250,156, +157,170, 64,229, 35,118, 70,146,163, 73, 69,221, 52,148,133,138, 0,145,206,197,153,185, 14,236, 13, 5, 85,149,209,186,142,233, +188,229,193,241, 3,140,119,104, 41,145, 89,198,100, 84,224,141, 97,185, 92, 81, 86, 37,211,243, 25, 93,211, 81,105,197, 27,247, + 31, 16, 86, 6,154,121, 82,183,106,191, 51, 77,244, 79,251,163, 23, 93,140,132,180,238,179,172, 39,217,168,249,111, 29, 67,191, +227,164,194,109,241,161,229,227,227, 19,249,232,199,183,188, 78, 9, 76,160, 83, 48,247,114,155,103,245,205,235,195,165, 69,169, + 50,194,206, 78, 68, 48,135,164, 38,167, 66,156,193, 22, 18, 66, 30,249,154,189, 87,124, 81, 36, 10, 88,153, 90, 81,126,179,128, +123,164,123, 79,147, 99,139,214,214,250, 71,145,213, 69, 30,129, 39,190, 23,131, 73, 21,253,182,211,153, 21,155, 74,223,187,168, +242, 36,185, 48,141,136,179, 52, 46,208,243,198, 57, 42, 41, 89,121, 8, 33, 32, 2, 44, 43, 25,171,101,221, 11,238,216, 77, 64, +207,213,134,146,231, 82, 50,164,244,133,132,236,197,245, 19,233, 30, 52, 41, 49,201, 68, 60, 72,151, 42,110,145,142,143, 45,111, +117,181, 21,220,243, 30,116, 19,175,247, 69,182,255, 45,198, 51,238,124, 73,117,245,136,138,232,243,160, 16, 12,134, 21,109,189, +198,250,142,186, 93, 50,204, 4,223,115,253, 38, 85, 85,177,146,138,194, 11, 36, 6, 92,199,241,114,198,215, 78, 78,225,193, 52, + 57,229,249,216, 6,116, 38,137, 3,145,186, 50,219,224,202,199,147,222,173, 17,138,146, 32,115,190,120, 56, 96, 47, 47, 24,107, + 69, 16, 18,227, 29,223, 88,183, 28, 79,163, 90,221,133,176, 80,191,110,123,187,231,213, 44, 2, 40,133,219,162, 7,110, 9,232, +180,233,231,219, 85, 52,179, 89, 45, 99,208, 41, 37,179,102,206,209,112,151, 83,211, 82, 8,193,165, 76,179,182, 29,187,206, 49, + 42, 43,254,254,195,227,152,168,180,179,200,181,183,109, 4,188, 42, 69,176, 38, 6,242,229,121,108,215, 58,247,104, 48,127,236, + 61, 38,170,115,194,217, 12,142, 14,211, 26, 43,200,117, 84,161, 84, 68, 13,251,179,214,114,181,140,250,235, 45, 30,107,124, 20, + 43,234,129, 83,147, 73, 92,115,121, 9, 50,227,112, 92,112,115, 50, 64,103,146, 44,203,233,148,164, 13, 48,145,138,187, 86, 48, + 86,154,219, 54,160,156, 99,218,121,148,119, 44,189,164,105, 45,149, 16,220,115,134,207,142, 52, 7,131, 10,225, 61, 59, 66,112, +165, 28,178, 18,130,177, 86,200, 16, 24, 13, 7,212, 1,186,214, 50, 42, 43,150, 72,214, 69,206, 84, 42,102,206,242,160, 17,204, +165,230,212,182, 56,103, 8,138,136,185,248,118,192,147, 79,220,134,108,194,219,116,143, 24,170,136,190, 5,191, 61, 81,115, 46, + 78,161, 36,232, 92, 49,146,138, 29, 41,184,146,107, 46,149, 5, 35, 85,196,173, 42,120,164,208,180,222,160,180,102, 41, 3,211, +186,102,156,101,212,214, 99,157, 97,164, 4,245, 98, 25, 19,186,243,121,212,134,207, 51,132, 22, 9,101,111, 35,229,237, 49,136, +206,167,126,189,112,141,253, 47,124,134,250,214,189,111,102, 65, 61, 30,232,219, 46, 57,133,118, 79, 28, 19, 63,209,222,236,171, +127,239,167,248,143,127,226,127,224,111,254,221,159,123,242, 1,172, 27, 24,148,172,223, 58, 69, 20, 26,119,107,193,186,245,136, + 28,126,240,251, 95,228,203,255,240, 1,208, 32, 41,185,123,118,159, 32, 53,207, 95,126,137,119,238,157,241,202,149, 9, 47,222, + 60, 98,181,106,121,231,131, 7, 96, 61,247,167, 45,139,117,205,221,143, 79,152, 45,215,156,181, 75,150,214,208,153, 64, 86, 72, +118,179, 33,167,199, 51,254,212,191,242,187,248, 63,127,238, 77,190,113,235,132,182,107, 57, 95,213,252,181,159,248,215, 81, 74, +226,211,188, 85, 74,137,148,130,201, 43, 63, 66,103,126,149,145,225,189,184,137,216, 70,193,109,251,180,127, 27,137, 65,127,131, +244,119,128,108, 87,143,189,111, 31,235,183,215, 3, 75, 7,148,192, 45, 79, 82, 84, 26,148, 23,235, 34, 2,158, 44,188,243, 97, +100, 74,168, 50,118, 79,124, 52,202,192, 38,138, 90,158,116,225,109, 66,138, 23,163,200, 36, 80,101,178, 7, 77,188,105,183, 69, +235,235,131,123,191, 14,117, 58, 46,107, 31, 61,199,124, 11, 64, 38,100,148, 28,246, 34,126,190, 87,108,235, 91,216, 89,186, 88, +193, 61,202,149,135, 11,117,184,117,202,152, 59, 31,232,130, 68,182, 2,143, 75, 35,137,116, 45,122,197,184,158,146, 7,177, 29, +220,177, 53,219, 79, 92,244, 32, 54, 93,132,254,107, 62, 89,173,246, 84, 55,107, 55,179,247,167,101,155,222,166,132,193,166,243, +121,134,219,217, 44,120,240,230, 71,148,159,147,156, 46, 87,188,114,245, 26,166, 61,163, 44, 52,160, 56, 24, 76,248,204,209,101, +202, 65, 9, 34,227,250, 96, 72,107, 28, 31, 62, 92,240,229,213, 20,191, 92,110,116, 7,214, 22, 6, 26,202,113, 60,134,198,197, + 64,223,175, 7,251,148,181,158, 0, 73,180, 29, 20, 57,215,247, 53,151,133, 96,234, 28,131,144,225, 68,224,107,181,225, 27,203, + 84,169, 60,105,253,150, 99, 56,184, 4, 15,239,108,198, 47,253,247, 93,172,207,173,117,177,110,128, 38,206,123,231,199,241,103, +190,248,121,102,139,251, 92, 26,236,178,240, 29,111,156, 47,249,222,157, 67, 36,134,166,171,185,150, 73,110, 55, 45,194, 68,117, +177, 48,157, 69,251,214,135,167,241, 25, 95,156,130,148,113, 62,254,216, 43, 60,233,255,235, 6,116, 3, 31,188, 9, 87,159, 3, +165,105,149, 38, 8,133, 73,157, 37, 45, 5,239,173, 26,148,132,171,121,193,109,209,224,154, 36,113, 76, 25, 25, 0, 89,122,206, +148,230,210,176, 36,228,177,187, 81,228,160, 76, 60,111,155, 43, 70,165,226, 23, 30, 46,216, 45,134,252,109, 19,216,149,150, 42, + 40,174, 54, 11,116, 57,166, 2,174, 41,141,195,177, 19, 60, 50,175,200,117,198,217,106,193,181,225,152, 78, 75,206, 91, 75,179, + 92, 51,153, 76, 88, 10,135,145,209,193,236,220, 90, 76,145,115,214,105, 78,164, 99,109, 58,118,243, 1, 39,229, 16,155,207, 96, +188, 15,237,253, 95,213, 45, 56, 96, 17, 90, 19, 82, 27,252, 98, 82,101, 45,172,107,234, 14,186,231, 52,107,167,152,183,134, 98, + 0, 54,116,104, 10,144, 26,227, 13,185,210,236,120, 79, 48,150,215, 6, 3,222,237, 26, 62,151, 59,222, 93, 59, 86,222,115, 77, +192,157,135, 39, 81,119,190, 53,132,176, 6, 27, 16,198,198, 46,204, 19,238,185,120,202, 26,120,234,235,195, 59,156, 73,241,244, +174, 86,175, 32,217,175,235, 79,240,187,248,166, 39,101, 56, 40,249,252,103, 95,224,231,127,241,141, 39,236,237, 54,129,228,146, +174,119,183, 2, 87,161, 94,221,199,191,125, 15,117,243, 26,191,240,143,238, 80,221, 40,169,178,146,159,125,231,152,207,220,104, +216, 47, 75,222,124, 39,231,232, 96,135,197,110,193,206,100,192,235,111,223, 98,186,152,177,110, 29,153,232,248,250,155,247,248, + 59,111,125,200,165, 74,178,183, 51, 68,134,152,253,223, 59, 55,120,235,216, 29, 15,120,238,112,135, 95,121,231, 22,239,221,123, + 72,161,115, 38, 85,201,143,254, 59, 63,201,255,243,238,251,240,254, 3,104, 22,252,249, 63,253, 39,121,238,232,210,175, 65, 64, +231, 9, 1,253,113,148,123, 31,108,248,100,239,243,222, 82,115,187, 10, 17,252,218,188,190,213,177,109,223,251, 39,253,187,216, + 50, 84, 41,199,169, 61, 38,162, 9, 75,207,197, 44,114,232, 68, 4,119,244,232,253, 97, 9, 77, 74, 60,180,220, 80, 51, 42, 29, +177, 17,217, 78,172, 96,237, 34,122,176,171, 60, 86, 76, 93,189,209,124,239,215,225,246, 2, 87, 9,132,114,145, 54,247, 85, 93, + 10,232, 93,242, 83,238, 82,224,191, 64,143,203, 77, 64, 52, 61, 42,117, 43, 65, 11, 36,212,105,128,208,225,253, 86, 85, 45,182, + 42,116,111, 55, 26, 6,164,249,111,149, 71,160, 79,112,143,242,216,189,221,252, 91,132, 77, 66, 80,234,216,222,253,164,246, 78, + 78,236, 72,101, 41, 49,184,118, 8, 31,222,223,200,222, 58,255,201,247,182,105,248,232,131, 59,140, 46,239,177, 51,205, 24, 23, + 37,171, 58,218,196, 30,237,236,177,119, 52,161,110,162,216,206,170,109, 88,180, 13, 46, 3,191,154, 65,151,180,167,243,173,107, + 4,113,148, 33,154,248,247,215,137, 13,225,158,226,121,111,211,215, 83,192, 13, 66,208, 4,143,246,129,247,186,142,179, 14,222, +169,211,207, 21, 2,230, 91, 26, 4, 33,174,181,252, 11,175,208,221, 59,251, 22,137,235, 99, 9, 95,159,144,246,246,150,239,188, +133,253,220,107,156,213, 53,132, 21, 72,197, 47,222,125,143,188, 28, 83, 9,193,108,126, 6,210, 19,154, 8,146, 19, 85, 9,171, +134, 32, 53, 60,124,152,152, 48,221,183, 8, 60,143,189,230,167, 96, 87,145, 45, 96, 1,149,211, 1,183,229,152, 35,215,226,170, +138,214,121, 94,173, 74,238,117, 29,206, 38,136,186, 77,244,217,178,188,120,142, 46,233,200,216,176, 66, 48, 46, 53,214, 5,116, +225, 81,121, 78,221, 90, 78,219, 64, 53, 44,121,195, 74, 14,133,160,238, 26, 68,107,120, 32, 38,236,153,134, 74, 72,174,236, 14, + 41, 77,141,148, 26,135,164,234, 90,118,118,119,185, 91, 55,228, 78,113, 56, 40, 24, 82,242,208, 7, 70,187,151, 56, 63, 62, 6, + 37, 88,171,156, 46,192, 10,144, 33,176, 18, 18,135, 36,232, 44,170, 16,142,151,176, 78,201,221,175,202,203, 62, 26,194,116, 79, + 51,142,235, 63, 8, 64, 26,110,157, 46, 81,151,225,197, 82, 51,109, 59,142, 84, 73,235, 28,173,179, 84, 42,231,196,116,212,193, +178,159,231,204,172,225, 32,215,172,154,142,151, 67,203, 7,179,154,251,103, 11,164,179, 4, 27, 63,132,141,231, 19,236,163, 88, +182, 79,188,231,207,242,122,255,246, 19, 18,215, 18, 6,195, 4, 16, 77,186, 14,166,123,166,208,148,246, 67,201,199,191,244,215, +144, 82,242,225,151,255, 42, 0, 95,250, 29,127,152, 15,110,221,229, 63,248, 19, 63,198,191,249, 47,255, 94, 14, 15,118,249,153, + 95,248, 26,255,210,191,255,103, 57, 62,155,241,195, 63,244, 61,252,143, 63,241,239,242,215,127,254, 23,249, 23,126,219, 15, 34, +149,226, 79,254,248, 95,224,123,127,224, 53,254,192, 63,241,155,185,124,184,207,159,251,171,127,139, 63,247,151,255, 47,254,232, + 15,125, 63, 82, 88,180,254, 62, 94,127,243, 35, 86, 77,199, 15,126,254, 5,190,231,139, 47,243,119,190,252,151,120,248,250, 91, +252,200,191,248,187,249,183,254,232,239,225,198,229,125,190,254,241, 61,126,236, 39,127,138, 95,126,255,109,238,254,165, 63,141, + 64,240,147,255,246,239, 3,224,143,253,217,191,204,207,190,253,141,216,253,156, 25,176, 53,255,252,239,254,173,252,190,223,243, + 67,124,207, 15,255, 17,126, 93, 95, 61,184, 65, 60,107,208,220,162,242, 92,180,152,121,118,141,225,103,237, 40, 60,237,111,107, +251,108,129,253,105,199, 93,150,177, 10,239,221,212, 84, 1, 86,199,207, 55,117,148,142, 29,148,155,227,200, 52,180, 73, 26,182, +136,150,138,145,247,223,198, 25, 41,117,148, 24, 85, 62,182,233,251, 42,221,177,161, 61,125, 19, 56,110, 11, 33,239,205,166, 53, + 29, 82,171, 90,166, 28,190, 15,232, 50,196, 68, 99,144,127,115, 75, 56, 35, 30,135, 77, 32, 65,147,170, 97,209, 87,228, 91,237, +124,177,245,248, 54, 9, 73,232, 83, 96,237,103,245,117,226,223, 23,217,214, 24, 32, 5,116,231, 82,162,144,254,118,174,210,239, +217, 10,148,166,217, 32,226,183,129,114, 90,196,121,113, 86,114,233,242, 1, 39, 15,103, 48,235,210, 40, 65, 38,239,132,173, 29, +102,123, 45,133, 21,100, 7,188,118,245, 38, 90, 58, 6,163, 17,174,169, 81, 74,179,127,120,137,178,204, 81, 69, 96, 58,111,168, + 93, 71,231, 44,199,245, 60,110, 44,139,117,252,176,102,179, 86,157,221,128,254,164,127, 74, 15,240,177, 53,185,181,214,239, 28, +175,120,126, 60,228, 78,211,128, 47,121,167,115,155,243, 21,114,147, 32, 92, 36,235, 53,221,219,239, 70,250,104,219, 61,161, 66, +127,108,221, 63,254,249,190,149,219, 76,152, 31, 31,195,184,141, 5, 75,178, 36,237,128,206,172,226, 8,193, 68, 14, 52, 64, 56, +153, 70,175,245,166,217, 84,255,197,147,157, 2, 63,113, 99, 95, 55,177, 61, 61,174,226,249,237, 94, 6,123,200,131,241, 78,212, +214,215, 37,239, 44,234, 77, 23,168,255,123, 66, 70, 4,246,112, 0,157, 71,101,158,202,121,156, 18,204, 93, 96, 80,102,152,198, + 96, 8,136, 66,179,178,158,147, 96, 41,131, 98,145,105, 6,114, 68,147, 91,196,116,206,160, 24,162,186,134, 82,192,104,178,203, + 14,130,105,211,161, 6, 21, 31,206,230,188,178,183, 71, 99, 13,171,214,113,234, 12,207, 15, 7,156, 19, 56,216,223,231,214,236, +156, 66,230,156,174,187,200, 0, 17, 48, 8,158, 70,107,180,206,112, 34,131,225,128, 32, 10,112,205,147,241, 61,219,157,206, 79, + 83,132, 93, 36,105,143,221,243, 94,175,201,123, 66, 90, 87,161,179, 4, 3, 31,157,231,252, 3, 47, 40,145,236, 23,138, 12, 80, + 50,103,233, 13, 74,106,238,172,107, 78, 9,104,165,144,206,162, 75, 77,214,193,229, 61,193,195, 85,234, 2, 52,117,106,121, 63, + 58, 90,249, 38, 12, 5,143,226, 91,191,109, 76, 65,145, 67, 89,196, 2, 72, 8,112, 42,225,109,252, 39,198,133, 71,102,234, 33, + 4,156,115,156,156,205,248,254, 31,249,215,248, 47,254,235,255,153,243,217,130,159,248,143,254, 13,126,251,111,254, 18, 63,250, +135,254, 61,254,204,127,245, 63,241, 99,191,255,119,241,165, 87,159,231,111,253,253,175,242,135,254,185,223,206, 23, 94,123,137, +255,242,191,249, 43,252,137,159,250, 43, 92,175,198,252,135,127,252, 15,242,191,252,181,159,230,143,255,103,127,145,143,166,199, +252, 39,127,228, 15,240,231,254,187,255,149, 92,214,124,254,133, 27, 76, 70, 67,254,238, 79,255, 60,191,243,183,124,145,151, 95, +184,202, 31,249, 79,255, 91,254,239,127,248, 14,127,242, 15,255,179,252,254, 31,249, 65,126,255,159,248,179,252,169,159,252,139, +252,150, 47,124,134,223,254,242, 77,254,234, 95,250,223,113,251, 59,116,173,225, 95,253,207,255,123,254,194,255,241, 15, 88,173, + 86, 88,103,120,227, 87,238,192,116,202,205, 23,174,242, 55,127,234,207,240, 7,255,216,159,230,205,119, 62,250,181,169,210,241, + 27,177,148, 39, 61,210,129,103,243, 40,239,129, 61,126,203,145, 43,244,173,216,239, 70,146,225, 63,217,114,246,153,125,212, 31, + 27,248, 95, 24, 28, 84,233,148, 85, 2,193,117,144, 87, 96,151, 49,130, 21,101,188, 22, 85, 1, 85,149,134, 93, 58,130,210,134, +131, 24, 64, 93, 74, 14,156,219,200, 32,154, 5,200, 50,166,196,222,196,160,218, 3,227,202,252,209,141, 64,234, 77,128,233, 9, +180,206, 37, 48,158,216,204,209,173,216,180,188,123,106,140,220, 66,196, 43, 25, 55,218,114, 16, 31,168, 94,198,214,218, 56, 79, +105, 76, 12,166,150, 77, 80,251,255,186, 59,243,216,202,174,251,190,127,206,114,151,119,223,198,101, 54,105,180,203,178, 36,203, + 82,237,120, 81,188, 1,110,155,218, 13,218, 24,112, 19,184,168,255,180, 83, 32, 64,209, 38, 5,130, 2, 6,138,180, 64,227, 46, +105,141, 26, 40,138,182,169,155,182, 6,154,216,109,224,164,177, 93, 27, 65,108, 3, 74, 17, 91,134, 20, 69,171,173, 37,150, 53, +210,140,102,134, 67,114, 72,190,229, 46,103,233, 31,231, 92,222, 75,206,140,228, 25, 73,142,209, 7, 16, 36, 31,249,222,187,203, + 57,191,245,251,251,126,235,232,169, 91, 36, 61,190, 35,175,176,190,119,189, 84, 36,138,112,157,156,234,129,102, 96,191, 34, 70, + 4,195,212, 33,232, 57, 76,118,209,239, 73, 87, 53,139,237, 69, 16, 52,106,103,228,137, 61,121,209,151,233,117,221,122, 74, 52, +119,223,247,118, 38,195,130, 99,227,117, 82,165, 25, 20, 5,227, 65, 65, 83, 55, 12, 70, 5, 94,104, 68,170,105, 28, 56, 28, 79, +109,109,211, 8, 9, 23, 46, 4, 10, 88,211,116,199,236,162,212,166,142,228, 49, 45, 81,149, 10,162, 76, 7,122,171,253, 62,161, + 86,113, 84, 17, 94,108, 96,203, 43,182,132, 15,193,138,139, 85, 20,235,130,194, 85, 95,200, 40,209,176, 88,118,204,145,237, 61, +234,143, 26,181,243,238,142,131, 65,114, 31, 75, 82, 45,195, 49, 14,179, 72,128, 20,143,115,123, 35, 16,222, 72, 21,232,105,181, +134,205,109,152, 14,195, 26,216, 62, 23,208,221, 89,250,170,153,250,149,177, 47, 13,204,150, 97, 31, 12, 70, 1, 27, 32,117, 28, + 9,171,194, 57,167, 49,168,107,215,133, 82,221,244,135,169,104,140, 99,109, 92,176,174, 36, 74, 73,246,106,143,148,130,165, 23, +156, 89,212, 44,113,204,107,139, 84, 10, 82, 77,227, 61, 78, 73,142,166, 41,141,148,220, 49,144,140, 17, 88, 47, 25, 74, 65,145, +103, 44,107,195, 90, 81,176,181, 44,241, 90,147, 41,201, 40,205,184, 96, 26,214,117,194, 5,107,184,101, 52,225, 84, 89, 50, 72, +161,170, 45, 53,130,165,173,216, 50, 13, 66,106,106, 83,117, 99,169, 91,219, 29, 51, 98,223, 97, 37,170,107,169, 93, 45,121, 81, +111, 13,137,120,111, 69,143, 30, 66,120, 31,116,212, 33,140,186, 57, 88, 36,138,163, 90,145,105, 73, 74,104,159,205,156,101,219, + 90, 46, 56,203, 2,129, 21, 30, 33, 4,210,251, 64, 75, 46, 37, 39,134, 41, 34, 81, 44,147, 1,216, 6,233, 65, 28, 2,199, 93, + 65,134,235,218,123,236,237,254, 77,211, 14, 84, 42, 68,216, 99,175, 2, 2,191, 36,158,126,239,187,238,229, 27,127,252,208,254, +239, 55, 92,119,148,191,247,137,143,114,251,253,127,155,243, 23, 46, 2,240,187, 95,125,128,143,253,205, 15, 66,185,199, 79,255, +165,183,240,111, 63,247,191,248,230,255,125, 2,117,251, 58, 27, 91, 23,249,250,131,143,240,123,143, 61, 70,189,156,115,246,249, + 77,118,102, 11,236,162,228,219, 79,158,231, 19, 31, 91,225,143,254,236, 73, 62,242,115,239, 71,107,205,135,126,229, 55,216,220, +216,227,216,218,136, 79,253,210,223,226,190,159,251,135,188,180,189,139, 51,154,175,125,235, 65, 62,249,177,159,133, 69,201,253, + 55, 93,207,215,190,243, 8, 79,109,158, 39,145,146,199, 47,206,200,178, 32, 50,161, 71, 5,191,243,217, 79,241,239,127,251,171, + 60,240,208, 19, 63,222,186,181,239, 1,176,250,229,119,119,149, 61,113,219,150,220,123,128,179,215,181,131, 96,174, 0,161, 48, + 63,106, 4,115,233,115,222,193,112, 26, 70, 7,163,100, 41,178, 9,229,114, 83,129, 30, 71,173,110, 7, 43, 3,152, 22,161,228, + 40, 36,140,178, 64, 6,147, 8,210, 36,167,102,121, 41, 97, 79, 50, 14,239,237, 0,105,186,158,125,109,186,126,122,107,200,197, +229, 90, 32,186, 3,149, 65,112,198,109,217,221, 68,133,188, 36,143,206,216,133, 13,212,146,187, 12, 90,227,145,192,162,233, 0, +136,137, 14,165,116, 45, 2,130,185,142,199,236,234, 46, 92, 23,135, 67,244, 24,168, 45,234,174, 50, 80,153,144, 69,215,241,127, +147, 94, 9, 63,139,206,223,134, 44, 60, 4, 30, 61, 71,116,224, 28,218,177,191,121, 55, 54,217,196,118,134,237,129,104,132, 12, +148,178,237,253, 94,191,137,227,171,235,104,169,217, 89,236,145,231, 57,171,249,144, 36, 79, 73,101, 26, 49, 89,134,201,116, 0, + 18,230,203, 5,183,140, 87,241,102,198,247,198, 67,216,220,233,174,107, 59,158,211,158, 99,139,177,168, 77, 36,102, 50, 87,118, +126,109,150,221,148, 48,111,129,156, 45, 72, 49,146, 7, 73, 21,112, 22,182, 60,152,229,183,159,173, 47,131,169,208,241, 92,205, +161, 62,187,190, 76,214,119,113, 22,152,245,210, 54, 88,216, 11, 96,186,202,192,169, 51,193,145, 22,121,144, 0,157, 47, 3, 59, +228, 43,100,232, 87,149,113,170, 37,252,249, 11,225, 60, 7, 41, 52, 11,152, 28, 15,253,104,107,160,148, 93,123, 72,200,174,244, + 26,191,167, 89, 78,125,238, 34,230,196, 26,110, 94, 51, 28,166,224,100,160, 76, 80,158,166,129, 97,150,176, 83, 53, 88, 37,112, +105,152,114, 88,120,207,170, 75, 56,147,228,164,110,193,221, 89,202, 66,192,145, 68, 65, 82,224,234,134, 65,154, 4, 21,100,161, +152, 11,199, 48,205,152,153,154, 19,163, 1,103, 22, 75,142, 15, 6,108,151, 75, 26, 26,156,183, 88,149,131,153,225, 26,131,202, + 71,152, 34,202,151, 14,199, 65,147,163,127,111,156, 60,152,189, 43,249,163, 87, 38, 15, 93,247, 3, 25,113, 79,176,208, 43,185, + 63, 94,232,154,146,229, 30,124, 77, 8,172,132, 66, 44, 56,150, 5,194, 35, 43, 5,115,165, 3, 75,164,245,104, 37, 24,106,205, + 0,197, 12, 65,158, 75,134, 72,142,100, 21, 79,178, 2,179, 57,126,209,224,125, 40,199,247,209, 46,254,208,207,175,205,100,155, + 32,109,188,175,191, 30,136,122, 94,237, 26, 93, 98,177,223,243,206,123,248,244,103, 63,191,255,251,135, 62,248, 46, 30,126,244, +233,125,135, 14, 48, 29, 21,156,223, 14, 36, 19,247,191,253, 78,254,201,103,254, 43,140,114,236,243, 23,120,251, 93,111,226,155, +223,126,146,157, 23,246,152,222,182,194,123,223,255, 86,190,253,240,247,112, 82, 51,190,110,192, 93,183,223,198,251, 86, 71, 76, + 71, 5,119,254,141,127,192,238,172, 98,116, 52,227,175,254,244,125,100,169,230,161,223,251,215,241,106,120,164,144,124,241, 15, +190,137, 7,222,115,223, 29,124,250, 55,126,139,157,231,126,176, 15,184,170,226, 92,241,175,255,242,199, 49,214,241,235,255,249, +127, 7,135, 66,253,198,250,115, 67, 40, 89,183,151,207,186,131, 78,197, 93,195, 29,237, 27,165,170,254, 49, 5, 38,230,218, 3, +135, 68,134, 50,187,237, 59,116, 31,174,191,175,162, 99, 95, 66, 54, 8,255,187, 50, 10, 32,170,149, 33, 89,150, 81,237, 85, 76, + 38, 3,202,210, 99, 91, 62, 99,116,200,202,171,101, 64,176,103, 61, 16, 90,157, 4,144, 83,109, 46,189,102,109, 73,190,229, 79, + 86,189,123,144,137,110, 57, 24, 31,126,247,209,193,139, 24,152, 16,203,244,101,236,135, 15,243, 78,188,196,187, 96, 92,117, 68, + 62,150, 38,150,200,155,208,251, 78, 85, 96, 95, 59,236,204,219,223,219,185, 83, 31,157, 85,105,194,235,124,204,238,211,126,159, +188,103,229, 92,203,104,101,186, 74,132,171, 35,213,109, 47, 72, 49,254,224,186,107,151, 97,227,122,216,205, 62,136, 51, 84, 52, +110,184,237, 36,179,106, 73,158,104, 50,149,178, 87,206,209, 8, 50,173, 81, 67,168, 23, 53,211, 35, 19,118,247, 26, 22, 85,195, +238,178, 66, 99, 40, 27, 56,178, 58,229, 66,185,132,151,202,144,173,239, 7,161, 38, 4, 33,210,117,125, 84,173,187,210,249,171, +225, 53,148,233,136, 56,218,160, 49, 21, 65, 4, 3, 96,135, 80,173,241,166,123, 77,223,192,239,115,255,167, 7,251,142, 2, 72, +167,112,235, 42, 60,251,220,101, 2,217, 58,242, 18,196,160, 46,199, 28,146,165, 0, 0, 19,212, 73, 68, 65, 84, 25,132, 15,187, +176, 13,213, 94,168, 68, 93,220,137,228, 74, 85, 88,131,197,235,212, 43,174,234,240,249,207,191, 0,199,214,122, 99,195, 50,220, +243, 74,198,209, 69,194, 40,103,108, 73,164, 66, 83, 11,184,213,212, 84, 58,225,135,103, 54,184,101, 60,100,161, 37, 59,101, 67, +170, 85,192,163,106, 25,240,186, 89,144,153, 93, 36,158,129,147,148, 90,145, 13, 28, 55,214, 21,168, 49, 27,222,146,121,199,197, +218,144, 36,154, 36,207,216,174, 42,174, 19,154,185, 55,228, 42, 65,226, 16, 73,138,179,150, 53,157,176,225, 26,106,149, 48, 73, + 60,167,155, 26,105, 75, 18,157,144,160, 40, 75, 19,156, 81,158,195,145,181, 96, 11, 90,109,132,182,197,213,199,175, 92, 77, 73, +122, 52, 13,247,231, 74,118,210,183, 83, 94,174,151,183, 24,240, 37, 75,169,248,242,210,114,231,177, 33, 43,118,193,170, 77, 25, + 39,193,103, 36,105, 18,114, 52, 33,240,113,124,104,168, 37, 30, 69, 35, 5, 43, 90,177,146, 40, 30, 17,138, 74,215,120, 83,226, +154, 6, 81,155,253,185,121,119,153,204,252, 53,149,225,189,129,157,157,176,119,165,123,213,126,250, 37, 78,253,150, 27, 79,176, + 58, 29,243,232,147,207,237, 63,119,116,125,149,189,217, 65, 18,129,143,252,245, 15,240,155,191,243, 85,110,187,253, 22, 70,195, + 1,143,253,240,165, 8,204, 17,124,224,254,123,248,231,159,251, 18,222, 59, 70,197,152,123,174, 63,201, 3,143,125,159,119,188, +253, 24,223,127,161,230, 45,183,223,192,167,255,251, 55,120,247,155,143,242,233, 95,254, 56,255,225,139, 95,226,241,103,182, 89, + 95, 25,243,149, 7,254,148, 95,248,213,207,226,189,197, 55, 30, 63, 47,241,245,156,155,111, 60,206,234,116, 20,142,203,214, 80, + 0,197, 4,134, 67, 62,124,255, 61,124,242,231,127,134,183,253,194,175, 6,231, 80,164,193,184,191,209, 64,185,125,159, 30,127, +232,247, 59,175,213, 89,190,161, 60,238,209,249,213,230, 42, 62, 71, 95, 33,203,223, 79, 9, 15,238, 72,161, 58,112,156, 34,128, +211,178, 20,142,142,195,232,206, 56, 35,215, 9,206,195,112,117, 66,109, 13,121,150, 34,164, 97,111,105, 72,144, 84,152, 72, 27, + 90,195,142,233,156, 49, 38, 34,172, 27,240,101,119,124, 66,135, 32,175, 53,222,135, 37, 75,219,254,185,142, 30,119, 63,203,238, +101, 64,237,107,219,146,246,230, 44, 56,146, 36,102,132,146,192,106,166,162,227,109,226,255,238,163,220,101,216,124,109,112, 32, + 35, 65, 19, 61,208, 99, 75,132,211,127, 93,155,229,183,239,153, 69,105, 88,161,218, 3, 63, 4,170, 59, 52, 30, 86, 19,156,222, + 62,102, 32,222,146, 54,232, 58,188, 7, 90,199,171, 82, 94, 58,117,154, 27,238, 89, 3, 96, 94, 46,209,137,192, 52, 13,206, 86, + 84, 75, 79,154,231,212,141,165, 24,103,156,218,188, 72,109, 26,110,212, 57, 85,230,185,119,120,130,167,202, 37,223, 91, 84,112, +118, 43,192,173, 91, 71, 87,155, 88,133,208, 93,133,162,117,232, 87, 2,206,181,207,215, 6,146, 26, 92, 26,239,109,188, 55, 69, +168,200,169,241,144, 19,169,227,244,198, 2, 22, 59,151,178, 8,238,247,221, 15, 33,225,189,129,249, 38, 60,187,121,249,236,218, + 52,112,113, 47, 8,215,136, 36,148,194,215,215,195,243,167,231, 1, 16,220, 24, 96,212,177,128,165,250,245,221,158,229, 30, 92, +104, 34, 67, 96, 92,135,131,149, 48,151, 94,214, 17,160,172, 88,115,142,147,131,156,117, 9, 79,204,151, 28, 79, 37,190, 42, 57, + 85,150,108,160,208,123,115, 40, 6,108,249, 0,144,195, 6, 37,192, 34, 81,108, 11,139, 51,176,240,150,155, 11,205, 81, 33,168, + 42,201,186, 20, 44,154,146,163,105,202,249,237, 25,183, 14, 37,167,231, 53,215, 37, 41,187,182, 97, 37, 73,217, 49,134, 66,105, +230,166, 97,168, 18, 54, 49, 52, 22,150, 77,195, 89, 39,176, 74, 50,119, 26,101, 5,165,143,129,126, 86,192,176, 6,113, 49, 34, +245,229,190, 62,249,126,217, 61,185, 74,251,103,221,193, 53,117, 57, 28, 67, 59, 69, 36,101, 32, 1,138, 69, 54,111, 12,126, 62, +199,169,138,167,206,195,201,105, 74,230, 3, 46,101,152, 15, 40,109,131, 80, 9,185, 86, 56,227, 81, 42, 16,242, 52,214, 82,232, +140, 92, 25, 6,192,155,110,204, 57, 83, 86,252,176, 44,249,225,102,133, 45,231,216,101,117,192,225, 58, 94,135, 76,125, 63,129, +138, 36, 94, 50,237,104,101, 95,225, 90, 29,168, 89,158, 56,186,134,181,142,209,112,192,120, 24,234,143, 79, 61,243, 60,239,123, +247,125,220,113,235, 13,164,137,230,159,254,163, 79,146,101, 41,191,253,251, 15,112,255,253,111,229,225,199,159,197, 8,141, 7, +110, 58,121,140,225, 96,192,159, 61,242,125,214,223,188,202, 75,223,123,153,119,191,237,205, 60,121,246, 69, 30,124, 98,131,119, +221,121, 19,207,189,180,193,191,251,221, 47,242, 75,255,236, 63,241,145, 15,190,147, 27,142,223,130, 83,154,199,158,125,145, 15, +252,212,221,252,212, 91,110,195, 27,207,234,116,192, 39,255,206, 95,161,152, 12,123,199,149,134,227,178, 26,180,230,186,181, 41, +159,255,212, 47,242,137,127,241, 95, 56,189,177,211, 33, 4, 61, 63,158,135,137,206,219,180,142,210,116,207,253,164, 61,132,142, + 97,164,190,182,128,160,159,161, 39,192, 32, 50,192,165, 61,135,162, 34,241, 75, 22,103,179,143, 29,131,233, 24,146,132,233,120, +200,209,188, 64,139,148,161,200, 72, 68,194, 80,101,140, 83, 77, 83, 65, 46,117,104,119, 15, 90, 93,239, 72, 20, 99,108,236,217, + 39, 81, 33,172, 12,159, 1,145, 94,244,240,174,214,221,119,213,203,104,247,143, 63, 58,116, 14, 85, 87,164,234, 50,228,246,222, + 46, 99, 38,218, 82, 56,150,189,209, 53,231,187,237,235, 76,231,192,196,161,173, 37,101, 71,108, 35, 99, 12,100,122,115,246,109, +118,158, 0,149,143, 1, 67,116,136,253, 17, 23,157,244,144,242,109,102, 31, 3,158,180,181, 90, 61,194,163,198,245,130,175, 67, +173, 22, 7,236,108,243,252,246, 89,150,139, 93,140,169, 88,238,237,210,152, 57,179,217,140,186, 90, 50, 95,204, 40, 23, 37,243, +221,146, 81, 42, 56,174, 83,164, 80,172,143, 39,156,222,221,101,146, 36,220,125,114, 21,142, 76, 46, 13, 26,138, 60,156,119,107, +228,132,238,233,174,155,203,103,171,125, 30,123,111,187,118,148,136, 68, 27,171, 99,110, 91, 41, 40, 6, 67,222,113,211, 42, 12, +198,161, 36,175,117, 87, 13, 56, 76, 19,140, 57, 24,144,182, 78,191,125, 77,235,244,219, 86, 71, 99,120,203,104,141,159, 95, 63, +198,199,111,189,149,147,199,215, 33, 31,118,193, 81, 53, 59, 8,116,187, 22,144,234, 37,191,247, 3, 80, 3,231, 78,195, 75,231, + 2,136,206,212, 48,219,220,151,220,188,217,214,220, 87, 20, 76,235,154,220, 58,222, 63,200, 25, 84, 13,105, 83,114, 82, 39,236, +108,189,204,185,237,243, 44, 94, 58, 69, 1,236,149, 21, 94,123, 84,166,216, 43,155,120, 45, 5,140, 50, 22, 66, 83,100, 9,201, +164, 96, 51, 79, 25,175, 76,216,170, 12, 71,167, 35,158, 63,191,195,177,201,144,202, 25,142,142,134, 24, 9,147, 65,202, 22,142, +245, 81,206,217,170,230,136, 82,172, 13, 52,153,214, 92,172, 23,204,141,161,196,211, 72,193, 18, 80, 58, 58,117, 37,225,232, 10, + 20, 43,113,223,246,170,155,182, 93,167, 28,172,192,189,154,205,221,221,185,100, 29,249,150,152, 37, 50, 42,134,178,187, 11,112, + 28,186, 47,219, 24,172, 41,177,187,123,156,186,176,203,119,247, 22,236, 85,134,178, 92, 98,170,134,198, 89, 26, 99,241, 17,232, +156, 41, 69,161, 21,215,105,120,239,100,157, 15, 29,191,142,247,173, 30,229,195,199,142,240,209,147, 39,248,240, 13, 43,232,181, + 53,244,100,138, 42, 70, 40,173,145,135,122,237,175,169,183,174,117,176, 95, 89, 18,190, 15,178, 75, 91,141,175,228,212, 31,125, +234, 57, 30,122,244,251,188,252,216,239,243,245, 47,124, 6,128,175,252,225,159,240,223,190,248,127,120,232, 15, 63,199,217, 39, +254,128, 55,221,118, 35, 31,254,228, 63,166,177,142,251,223,122, 39,223,121,244,233,125,117,173,247,188,237,173, 60,252,248, 51, +216, 44,101,227,145,151,185,254,196, 81,214,166, 35, 30,248,214,211,184,101,197,123,223,121, 23, 15, 60,248, 24,187,231, 23,188, +124,238, 34,127,255, 95,254, 22,255,241,215,126,145,181,233,144,175,255,201, 35,252,155,207,127,153, 47,125,230, 87,152,125,247, +243, 60,244,133,127,197,219,238,186,157,197,238,156, 71,159,122,250,224,113,217, 18,105,106,254,199,175,253, 93,190,240,173,239, +242,229, 63,254,211,168,102,227,130, 97,252,139,210, 23,255, 73,116,230,253, 50,142,141,223, 95,203,163,221,132,182,165,142,245, +193,233,166,209, 0,107, 19,144,239,217, 40, 32,134,135, 9,147,241,132,198, 57,102,198,179,158,165,228, 90,146,107, 73,162, 37, +198,193,106,158, 35, 83,201, 48, 77, 81,168,224,244,234, 72,176,160,211,142,243,189,237,187,245,209,206,251, 13,180, 86,214,245, + 10,216,129,182, 39,217, 58,116,149, 6,128,148,137, 14,101, 95,153, 73,116,217, 67,155, 81,247, 65,106,139,186,235,253,183, 36, + 49,109, 79,189,253,156,195, 34, 1,206, 35,147, 32, 59,140, 80, 93, 95,221, 69, 39,238,251, 65, 71,204,202,219,210,254,254,123, +244,116,231,171, 67, 56,129,125,189, 3,115,153,221,237, 66,255,210,201, 46, 24,242,161, 60,126,238,197,179,188,176,117,129,167, +206,158,226,236,222, 22,167,182,206,227,104,176,214, 35,156, 99,107,107,155,249,206, 54,236,205, 89, 25,229,172,166,176,187, 88, +210,120,137,200, 51,134, 73, 6,131, 60,176, 2,182, 89,152,141, 6,218,197,190,186, 49, 33, 16, 75,210,142, 25,240,138,176, 93, + 25, 89,178,124, 55,151,155, 8,210,241,128,119,140, 10,142,175,142,153, 20, 3,182,208, 28,185,110, 21,198,195,200,129, 32, 59, +103, 77,175,207,223, 86,114,250,173, 45,113, 25,163, 41, 91,125,130,140,159, 57,186,202, 61,199,215,184,107,186,198, 95, 59,121, + 3,156, 88,239, 70, 39,175, 53,240,191,210,244, 73, 31,193, 77, 47, 57,152,109,194,198, 38,108,157, 9,138,143,205,146,251,176, +164,206,163,235,146,235,181,162, 4, 42, 60,198, 4, 85,202,235,211,154,147, 74,162,235,146,205,122,143,239,124,234, 55,209, 79, + 63,204,169, 63,250, 10, 27,139,154, 18,137, 17, 33,192, 44,180,226, 45, 67,197,233, 65, 70, 54,202,208, 90,147,104,205,182, 46, +176,169,102, 52,157,176,181, 51, 35,205,242, 48, 48,130, 96,230, 61,185,144, 44,170,134,235,166, 35,150,120, 42, 15,203,218, 51, + 41, 70, 32, 36, 42, 25, 96, 61,228,105, 78,237, 91,106,228, 81,152,235, 31, 12,186,164,160, 61,215, 42, 78, 32, 44,202,171,179, +217, 87,250,223,120,253,124, 19,197,182,122,253,238, 86, 38,193, 18, 92,133,109, 74,236, 98,201,197,141, 57, 15,238, 46,104,172, +195, 53, 65,246,121,183,174,169,188,223,167, 96, 31,169,132, 99,233, 8,137, 96,162, 83,214,148,226,230,116,200,219, 7, 83,238, +152, 76, 57,186, 58, 64,173, 77, 80, 71, 86,144,147, 41, 34,201,175,158, 93,238, 74, 25,122,154,244, 52, 42,232,212, 18, 95, 97, +162, 73,112,252,253, 63,122, 94,155, 69, 22,176, 22,168,211,159,245,109,203,153,105,129,152, 45, 98, 22,209, 64, 62, 70,148,123, +161,167, 37, 29, 66,167, 97,211,103,145, 48, 35, 11,125,140,208,239, 12,136, 96, 95, 19, 70, 56,204, 28,127,165,136,184,136,139, +165,165, 47,173, 77, 48,106,243,249, 95,156, 83,255,113, 62,218,153,204, 55, 92,126,245,208,226, 41,162, 33, 74, 84, 96,115,107, + 29,133,146, 7, 23,163, 34, 24,221,149, 17,211, 65,129, 18, 9,133,150, 36, 90,177, 57,171, 89,207, 83,246, 26, 67,174, 37, 3, +173, 56, 63, 47, 81, 2,182,182,247,162,179, 43, 3,181,167, 51, 97,196,199, 87, 7,241, 6, 90, 31, 98,155,139,253,244,182,183, + 14, 29,171, 94,214,203,206,145, 29,240,196,212,145,171,254,112, 70, 27,203,228,253, 30,119,159, 80,198, 31, 42,253,249, 30,218, +122,159,253,226, 50,239,215,102,230, 94,116,217, 95,170, 34,133,172,138,200,108,209, 5, 23,165, 9, 1, 78,145,198,207,183, 29, + 18,218,247,112, 2, 45,136, 79,181,206,204,117,199,148,230,112,100, 5,214, 87, 96, 99, 27,206,109,134,247,200,199, 33,203, 30, + 14,201, 82,201, 48, 73,153, 14,114,110, 63,178,206,116, 56, 70,167,197,126,188,180, 53,219,101,148,101, 8, 47,169,109,195,139, +139, 25,152,138,189,114,198,243,155,115,120,121, 35,204,174,215,132,106, 74,191,223,221, 22, 12, 90, 37,189, 43,181,127,218, 94, +188,136, 45,135,181,105, 8, 24, 86, 71,188, 99, 50,230,104,154,146, 8,193,182, 41, 57, 63,175,121,102, 54,131,139,139, 64, 73, +186,108, 66,176, 37,155, 16,116,182,220,217,253,224,175, 45,201,246,217, 65,100,143,200,232,248, 9,238,189,247, 30, 62,122,231, +189, 12, 7, 25,137,183,252,249,185,115,124,229,217, 39,120,225,225,199,187,145,178,107,217,167, 87,218,159,175,244,183,201, 58, +156,188, 14,142, 28,131, 60,225, 29,235, 55,114, 75, 62, 98, 94, 47, 17,163, 9,121,211,176,215, 52, 36, 58, 97, 77, 55,108,205, +106,188,148,252,160,170,168,140,225,133,217, 38, 63,123,253,173,212,214,240,141,147,183,195,168,128, 92,161,156,228, 47, 31,201, + 72,128, 41,138, 29,231,185, 69, 67,179, 91,113,163,114,204,247,150,176, 40, 57, 41, 60,197, 64,161,117,202,233,178, 98, 85,107, +246,202,138,139, 42, 97,108, 13, 47,214,150,220, 90,158,156, 25, 54,202, 57,155,198,162,112,108,224,104,170, 10, 43,193,150,243, +208,174,152,111, 5, 5,205,141,141,208, 54,121,195,230,214, 15, 58,210,195,131, 37,226, 10,207,147,228, 76, 39, 25,239, 93, 25, + 33,178,140,193,104, 72,146, 38, 20, 89,130, 18,112, 68,103,220, 58,200, 89, 69,145, 72, 77,226, 45,206, 90,140,243,156,181,150, +199, 23, 59,252,207,153,161, 90,150, 52,101,131,169, 74,236,238, 46,118,177,196,197,192,194, 95, 11,120, 78,235, 32,222,114,248, +177,104, 58, 59,112,185,216,248,234, 84,218, 6,161, 79, 90,164, 1,244,212, 15, 96,133,128,201, 56, 8, 30,100, 41,194,217, 32, + 56, 80,238, 5, 3,178, 92, 34, 6, 69, 48,164,105,212,252, 43,210, 0,209, 79, 21,190,137, 36,247, 90,194,124, 23,106,139,119, +230,202, 99, 14, 77, 29, 12,126, 93,131,171, 66, 86, 88,215, 63,217, 14,189,149,115,237,143, 22, 93,235,251,136,168,106,181, 63, +198,245, 70,145,202,203,203,252,110, 66,175, 46,139,136,100,221, 91, 8, 58,170,157,173, 79, 32, 77,152,140,135,236, 46,107, 78, +140,135, 56, 43,177,222,113,253,100,202,172,170,152,102, 25, 90,194, 11, 23,247, 56, 62, 44,216, 92,204, 81,105,138, 45,203, 32, +163,153,233, 96, 20,204,188, 19,132,217,111, 90,197,113,168,125, 73, 86,215,161, 84, 90, 66,148,118, 7,181, 4, 45, 42,233, 52, +233, 91,174,116,223,206,136,251,206,240, 15,146,224, 28, 90, 69, 53,111,131,243,108,199,167, 90,128,157,107, 98,134, 44, 59, 56, + 76,235,208,247, 57,217,187,221,156,102,122, 31,196, 19, 2,145, 40,247,218,248,152,193,196, 81, 10, 33,163,206,178,140,215, 32, + 10, 21, 57, 31, 71,158,204, 65,112, 92,219, 94,112,102, 31,100,138,138, 74,109,211, 41,220,124, 34, 74,125,102, 65,128,197,197, +192,107, 92,128, 20,100,121,130, 22,146, 60,209,204,234,134, 92,165,108, 47,150,248,114,201,238,114,155,221,186, 97,103,185,192, + 59, 27,166, 16,133,194, 56,199, 51,198, 96,235,184,239,170,168,142, 6,161, 84,216,202,245, 38,145,219,189,137,162,207, 74,116, + 2, 64,253,241,179, 60,138,240,248,152, 30,217, 48,141,112,239,202,144, 60, 73, 24, 36, 9,169, 20, 88,103,121,100, 89,135,114, +107,227,187, 25,118, 41, 67,139,162, 24,114,252,216,152,108,144, 49, 25, 23,204,151,117,143, 67, 63, 94,119, 41, 46,229,165, 87, +138,217,250, 17,238, 88, 91,195, 57,203,204,122,126,120,113,151, 7,119,183, 97,119,113,237,226, 36,251, 12,145,241, 92, 91,170, +102,231, 94,121,207, 86,203, 48, 29, 50,208,188,115,178, 66,102, 27,134, 69, 74,166, 11,154,122,137,118,142, 65,146,161, 88,128, + 84,228,137, 96, 36,124,160,148, 21,150,243,203, 57,207, 93,120,145,231,245, 48,236, 73, 21,136,126,238, 58, 50,224, 54, 45,169, +149, 66, 11, 72,180, 70, 90,207, 88,193,174,245, 12, 16,172, 38,138,243,165, 33,215,138,212,212,172, 14,114,158,221, 43, 17, 8, + 10, 44,231, 44,220, 48, 74, 57, 83, 89, 18, 91,115,209,131,171, 75,172,144, 84,206, 81, 74, 25, 64,106,182,129,122, 47,234, 31, +208, 85,224, 84, 47,168,205,115, 24, 14, 99,165,204,189, 97,142, 29, 94,129,190,215, 25, 42,231,249,193,174,225,246, 97, 0, 32, +214, 73,144, 85, 94,211, 25, 55, 36, 25, 39,117,193, 68, 41, 20, 30, 37, 53, 74, 40,172, 51, 20, 58,225, 34,142,133,105,216,240, +224,132,199, 91,143, 55, 65,177,212,251,215, 96,155,219, 36,161, 21,154, 82,105,184, 78,166,126,197,247,252,209,157,122,145,199, +186,126,143, 25,171, 53,226,165, 13,243,198, 85, 13, 43,211,160,212, 36, 4, 44,107,196,104, 28,102, 90,179, 12,204, 2,210, 34, + 48, 57, 13,179, 48, 34,162, 85, 88,192, 38,150, 53,119,151, 1, 24, 44,204, 62,225,195,149, 65, 19, 54,114, 2,155,215,117, 81, +188,113, 9,111, 79,145, 75, 69,141,112,119, 13,220,200, 73,218, 25,192,246, 75,218, 55, 72, 44,198, 29,252,106, 3,173, 84,134, +146,115, 58,238,148,197,124,172,182,140,134, 32, 4,147,245, 21,118,231,115,110, 94, 95,197,227, 25,232,148, 65,146,114,113, 49, +103,109, 56,194,216,154,221,202,114,124,148,179, 93, 86, 12,179, 1,187, 59,123,241, 60,124,152,187, 54, 54,124,206,229,164, 68, +219,185,242,253, 67,213, 93, 54, 46, 98,159, 91,197, 56,164,157,245,222, 47,195,139,176,230, 90, 39, 47, 85,199,183,110, 76, 48, + 7,125,153, 84,227, 58, 96,157,111,117,225,117,156,213,238,197,254, 42, 58,226, 86,113, 45,254, 45,149, 2, 97, 5, 77,210,211, + 65, 87, 50, 42,210,133, 49,164, 64, 48, 97,195, 57,232, 52,140,243,101, 42,102,159,177,175,223,148,221,235, 91,250,217, 42,114, + 34,168,168, 18,167, 68, 24, 41,116, 4,228,113,166,194,154,217,153,195,133,205,240,247,100, 16,240, 11, 66, 34,149,100,154,165, + 8, 41, 81, 30,230,165,101,105, 44,139,170, 34,145,150,185,245,140,210,130,109,107, 80, 94,112,186,169, 56,101, 12,179,114, 25, + 69, 86, 8, 76,125,109,121,164,142,247,107,237, 72,192, 84, 20, 69,200,166,155, 42, 56, 42, 23,181, 0,250,247,180,229,249,111, +133,125,108, 0, 89,222,180, 58,224,142,213, 53,206, 47, 43,156, 16,236, 52,134,211,243, 24, 72, 72,122,220,247, 81, 63, 32,211, + 92,159,107,132,240,140,132, 98, 92,164,236,236, 45,123,169, 89,116,230,206,119, 14,190,105,192, 89,154, 44,229,251, 77, 77,229, + 36,207,205, 22,124,115,111, 23,202, 89, 0,209,205,103,215,150,165,247, 57,187, 47, 55, 39,191,223, 2,184, 12, 71,254,124, 15, +138, 49,119,175,228,220, 62, 24,240,131, 89,197,117,131,132,188,200,152, 59, 24,102,161, 68, 60,175, 96, 42, 44,210,129,161,100, +111, 89,114,174,169,195, 53, 58,127, 38, 36, 86,107, 55, 66,174,201,135, 25,133,150, 20, 94,160, 19,205,208, 5, 85,205, 60,211, + 12,133, 96, 69,194,142,177,172, 42,193, 29, 69,202, 98,144,243,204,214,140, 34, 21,204,235,134,179,198,225,157,227,133,237, 6, +211, 24, 54, 81, 24,215,176, 52, 22, 47,192, 72, 69,105,130,176, 77, 24, 71,109, 66, 16,218, 52,145,175,192, 68,129, 39, 17,240, + 10, 39,142,194,209,181, 80,117,157,207,223, 16,199,206, 43, 56,246,253,255,183, 22, 33, 28,167,140, 99, 61,209, 24, 37,113, 89, +202, 20,152, 74,184,115, 56, 33,149,138, 84,166,193,138, 75, 17,228,152,113, 92,108,106, 94, 50, 53,231,230, 53, 30, 17, 50,115, +169,194,169, 84, 21,190,119, 78, 87, 45,248, 34,130, 28,113,128,135, 68,190,247, 87,146, 85,190, 42,167,222, 26,149,150,168, 67, + 39,225,103,103, 2, 73,135,245, 1,165, 58, 43, 59, 69,170, 52, 82, 58,166, 42, 46,218,144,229,137, 36,137,253,207,208, 51,244, +139, 38,100,127,101, 21,141,150, 11, 11,242,255,167,135,212,189,122,143,132,213, 81, 88,228,230, 26,130,145, 86,116,164, 37, 65, +241,213,143,183,159,223,206, 9,103, 89,212, 59,142, 37,229, 36, 13, 64, 14, 31,130,189, 10,207,104, 52, 36, 85, 10, 45, 53, 74, + 72, 36,154,181, 98, 72,109, 29,169, 76,200, 82, 21,199, 72, 36,103,103,243,208, 15,171,203, 64,202,177,220, 5, 83, 94, 89, 66, +183, 37, 29,145, 34,244,166,181, 11,142, 93, 69,176, 98, 75, 12,228,125, 68,163,139,224,136,219, 44,218, 69,118,166,118,228, 75, +244,230,210,114, 29,202,223,202,119, 78,189,149,106,109,203,246,222, 29,252,210, 73, 20, 51,105,131,135, 46,234,178, 94, 96,165, + 36,181, 2,219,174,131, 50,182,161, 92, 79, 70, 54,213,225, 90,250, 38,204,205,187, 56, 14,103, 77,112,238,194, 7, 39,174,162, +243,107,127,110, 57, 19, 68,196, 61,180,206,171,137,125,238, 11, 51,216,190, 16,202,212, 74, 69,117, 60, 9, 69,130, 18, 18,131, + 64, 10,129,147,138,185,109,216, 90,214,156,218,217,226,166, 66, 49, 78, 20,149,113,148, 30,206, 88,195, 15, 76,197,178,149, 88, +141, 28,219, 44,102, 33, 16, 49,182,203,208,215, 87,187,192,102,217,132, 64,208,154, 46, 16,235,103,203,237,189,212,145,134,209, + 25,152, 55,156,105, 28,199, 82,203, 36,149, 92, 40,151, 60, 52, 43,195, 76, 62,190,107, 61,168, 46, 80,155, 38,146, 81, 34, 24, + 9, 65,130,160,178,134,157, 89,117,176, 18, 35,123, 32,196,182,157, 99, 45, 88, 65,157, 8, 94,172,150,156, 41,103,161,159,189, +172, 96,119, 30,214,228,213,238,211,214,145,183,194, 54,237,115,135, 51,246,125,114, 35, 46, 11,252,212, 3, 69,170, 37,119, 23, + 3,102,214,145,227,200,165, 68, 9,129,104, 12,235,153, 10, 36,135, 77,195,102, 99,120,112,231, 34, 44,103,241, 61, 93, 8, 60, +117,134,212, 5,199,134, 33, 33,184,113,152,147,106,129,208,146, 65, 34, 25, 72,193, 64, 8,106,235,185,176,177,160,180, 13,207, + 45, 97,167, 41,169, 61,236, 44, 13, 59,149,167, 49,112,174, 10,231,176,144, 32,241, 36, 54,136, 62, 13,156,197,154,134, 25, 1, + 48,233, 77, 29, 70, 94,157, 13,142,168,172, 67,229,109,177, 8,235,120, 50,134, 19,235,100,227, 34, 76, 46, 45,203,215,117,156, + 87, 92,133,179, 23,128,116, 14, 89,213,108,204, 74, 46, 84,158, 90, 8, 94,150,154, 60,151,172, 24,199,245,197,132, 34, 73, 16, +206, 82,232, 20, 39, 37,167,151,115, 78,217,154,239,206, 27, 42, 37,176,198,225,165,192,213, 53,190,113,120,107,240,175,133, 68, +204, 69,208,168, 45, 59, 33,151, 87,121,252, 63,200,142,135, 98, 79, 39, 83, 45, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, + 0}; + diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 28a54b20277..169443d855f 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1615,7 +1615,12 @@ static int gpencil_area_exists(bContext *C, ScrArea *satest) 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 */ + //int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */ + /* currently, grease pencil conflicts with such operators as undo and set object mode + which makes behavior of operator totally unpredictable and crash for some cases. + the only way to solve this proper is to ger rid of pointers to data which can + chage stored in operator custom data (sergey) */ + int estate = OPERATOR_RUNNING_MODAL; // if (event->type == NDOF_MOTION) // return OPERATOR_PASS_THROUGH; @@ -1722,13 +1727,18 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event) /* standard undo/redo shouldn't be allowed to execute or else it causes crashes, so catch it here */ // FIXME: this is a hardcoded hotkey that can't be changed // TODO: catch redo as well, but how? - if (event->type == ZKEY) { + if (event->type == ZKEY && event->val == KM_RELEASE) { /* oskey = cmd key on macs as they seem to use cmd-z for undo as well? */ if ((event->ctrl) || (event->oskey)) { /* just delete last stroke, which will look like undo to the end user */ //printf("caught attempted undo event... deleting last stroke \n"); gpencil_frame_delete_laststroke(p->gpl, p->gpf); - + /* undoing the last line can free p->gpf + * note, could do this in a bit more of an elegant way then a search but it at least prevents a crash */ + if(BLI_findindex(&p->gpl->frames, p->gpf) == -1) { + p->gpf= NULL; + } + /* event handled, so force refresh */ ED_region_tag_redraw(p->ar); /* just active area for now, since doing whole screen is too slow */ estate = OPERATOR_RUNNING_MODAL; diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 28d0a9520b2..c646ec55506 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -108,7 +108,7 @@ int ED_object_add_generic_get_opts(struct bContext *C, struct wmOperator *op, fl struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, float *rot, int enter_editmode, unsigned int layer); void ED_object_single_users(struct Main *bmain, struct Scene *scene, int full); - +void ED_object_single_user(struct Scene *scene, struct Object *ob); /* object motion paths */ void ED_objects_clear_paths(struct bContext *C); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 9b47e103f29..c7a1d860a63 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -214,7 +214,7 @@ struct uiBut { BIFIconID icon; char lock; - char dt; + char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied from the block */ char changed; /* could be made into a single flag */ unsigned char unit_type; /* so buttons can support unit systems which are not RNA */ short modifier_key; @@ -307,7 +307,8 @@ struct uiBlock { void *drawextra_arg2; int flag; - char direction, dt; + char direction; + char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied to buttons */ short auto_open; double auto_open_last; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 85cc944f03b..4810b3fdf54 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -367,7 +367,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in unit= UI_UNIT_X*0.75; butw= unit; buth= unit; - + if(ptr->type == &RNA_Armature) { bArmature *arm= (bArmature *)ptr->data; layer_used= arm->layer_used; @@ -379,7 +379,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in for(a=0; aroot->block->dt, UI_EMBOSSN, UI_EMBOSSP)) { + boolarr= MEM_callocN(sizeof(int)*len, "ui_item_array"); + RNA_property_boolean_get_array(ptr, prop, boolarr); + } + for(a=0; atype==NUM) but->type= NUMSLI; if(toggle && but->type==OPTION) but->type= TOG; } + + if(boolarr) { + MEM_freeN(boolarr); + } } } @@ -951,13 +962,14 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index uiBut *but; PropertyType type; char namestr[UI_MAX_NAME_STR]; - int len, w, h, slider, toggle, expand, icon_only, no_bg; + int len, is_array, w, h, slider, toggle, expand, icon_only, no_bg; uiBlockSetCurLayout(block, layout); /* retrieve info */ type= RNA_property_type(prop); - len= RNA_property_array_length(ptr, prop); + is_array= RNA_property_array_check(prop); + len= (is_array) ? RNA_property_array_length(ptr, prop) : 0; /* set name and icon */ if(!name) @@ -967,14 +979,16 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index if(ELEM4(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_POINTER)) name= ui_item_name_add_colon(name, namestr); - else if(type == PROP_BOOLEAN && len && index == RNA_NO_INDEX) + else if(type == PROP_BOOLEAN && is_array && index == RNA_NO_INDEX) name= ui_item_name_add_colon(name, namestr); else if(type == PROP_ENUM && index != RNA_ENUM_VALUE) name= ui_item_name_add_colon(name, namestr); if(layout->root->type == UI_LAYOUT_MENU) { - if(type == PROP_BOOLEAN) - icon= (RNA_property_boolean_get(ptr, prop))? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + if(type == PROP_BOOLEAN && ((is_array == FALSE) || (index != RNA_NO_INDEX))) { + if(is_array) icon= (RNA_property_boolean_get_index(ptr, prop, index)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + else icon= (RNA_property_boolean_get(ptr, prop)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT; + } else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) { int enum_value= RNA_property_enum_get(ptr, prop); if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { @@ -999,7 +1013,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index uiBlockSetEmboss(block, UI_EMBOSSN); /* array property */ - if(index == RNA_NO_INDEX && len > 0) + if(index == RNA_NO_INDEX && is_array) ui_item_array(layout, block, name, icon, ptr, prop, len, 0, 0, w, h, expand, slider, toggle, icon_only); /* enum item */ else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) { @@ -2745,6 +2759,25 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in uiItemL(layout, "* Redo Unsupported *", ICON_NONE); // XXX, could give some nicer feedback or not show redo panel at all? } + /* menu */ + if(op->type->flag & OPTYPE_PRESET) { + /* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */ + PointerRNA op_ptr; + uiLayout *row; + + row= uiLayoutRow(layout, TRUE); + uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE); + + 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); + + 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", 1); + op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); + } + if(op->type->ui) { op->layout= layout; op->type->ui((bContext*)C, op); @@ -2759,25 +2792,6 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - /* menu */ - if(op->type->flag & OPTYPE_PRESET) { - /* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */ - PointerRNA op_ptr; - uiLayout *row; - - row= uiLayoutRow(layout, TRUE); - uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE); - - 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); - - 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", 1); - op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0); - } - /* main draw call */ empty= uiDefAutoButsRNA(layout, &ptr, check_prop, label_align) == 0; diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index f7460e77030..8bce27e366b 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1188,7 +1188,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, uiBut *bt; uiSafetyRct *saferct; rctf butrct; - float aspect; + /*float aspect;*/ /*UNUSED*/ int xsize, ysize, xof=0, yof=0, center; short dir1= 0, dir2=0; @@ -1223,7 +1223,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, } } - aspect= (float)(block->maxx - block->minx + 4); + /*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); @@ -1232,7 +1232,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but, xsize= block->maxx - block->minx+4; // 4 for shadow ysize= block->maxy - block->miny+4; - aspect/= (float)xsize; + /*aspect/= (float)xsize;*/ /*UNUSED*/ if(but) { int left=0, right=0, top=0, down=0; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 0f5bc5479a0..690d0fe4d6b 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -39,6 +39,7 @@ #include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BKE_animsys.h" #include "BKE_colortools.h" @@ -53,6 +54,7 @@ #include "BKE_displist.h" #include "ED_screen.h" +#include "ED_object.h" #include "ED_render.h" #include "RNA_access.h" @@ -275,18 +277,28 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) break; case UI_ID_ALONE: if(id) { + const int do_scene_obj= (GS(id->name) == ID_OB) && + (template->ptr.type == &RNA_SceneObjects); + /* make copy */ - if(id_copy(id, &newid, 0) && newid) { - /* copy animation actions too */ - BKE_copy_animdata_id_action(id); - /* us is 1 by convention, but RNA_property_pointer_set - will also incremement it, so set it to zero */ - newid->us= 0; - - /* assign copy */ - RNA_id_pointer_create(newid, &idptr); - RNA_property_pointer_set(&template->ptr, template->prop, idptr); - RNA_property_update(C, &template->ptr, template->prop); + if(do_scene_obj) { + Scene *scene= CTX_data_scene(C); + ED_object_single_user(scene, (struct Object *)id); + WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); + } + else { + if(id_copy(id, &newid, 0) && newid) { + /* copy animation actions too */ + BKE_copy_animdata_id_action(id); + /* us is 1 by convention, but RNA_property_pointer_set + will also incremement it, so set it to zero */ + newid->us= 0; + + /* assign copy */ + RNA_id_pointer_create(newid, &idptr); + RNA_property_pointer_set(&template->ptr, template->prop, idptr); + RNA_property_update(C, &template->ptr, template->prop); + } } } break; @@ -404,10 +416,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str sprintf(str, "%d", id->us); - if(id->us<10) - but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy."); - else - but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X+10,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy."); + but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X + ((id->us < 10) ? 0:10), UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays 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) @@ -2107,7 +2116,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe } else if(itemptr->type == &RNA_ShapeKey) { Object *ob= (Object*)activeptr->data; - Key *key= (Key*)itemptr->data; + Key *key= (Key*)itemptr->id.data; split= uiLayoutSplit(sub, 0.75f, 0); @@ -2319,10 +2328,11 @@ static void operator_call_cb(bContext *C, void *UNUSED(arg1), void *arg2) static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + if(BLI_strcasestr(ot->name, str)) { if(WM_operator_poll((bContext*)C, ot)) { char name[256]; @@ -2342,6 +2352,7 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char } } } + BLI_ghashIterator_free(iter); } void uiTemplateOperatorSearch(uiLayout *layout) diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index f660dbb9edd..a3f56192cb5 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -143,7 +143,7 @@ int uiDefAutoButsRNA(uiLayout *layout, PointerRNA *ptr, int (*check_prop)(Proper if(label_align != '\0') { PropertyType type = RNA_property_type(prop); - int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(ptr, prop)); + int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(prop)); name= RNA_property_ui_name(prop); diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index f3db6ad11ae..e71f709f89b 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1557,7 +1557,7 @@ void init_userdef_do_versions(void) U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET; } - if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) { + if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 2)) { bTheme *btheme; for(btheme= U.themes.first; btheme; btheme= btheme->next) { btheme->tnode.noodle_curving = 5; diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index ec08bfccda3..4377fb03632 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1449,9 +1449,8 @@ static int mesh_separate_material(wmOperator *op, Main *bmain, Scene *scene, Bas /* select the material */ EM_select_by_material(em, curr_mat); /* and now separate */ - if(0==mesh_separate_selected(op, bmain, scene, editbase)) { - BKE_mesh_end_editmesh(me, em); - return 0; + if(em->totfacesel > 0) { + mesh_separate_selected(op, bmain, scene, editbase); } } diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 9497370a4fa..eb6854d2548 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -1697,7 +1697,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type) /* ctrl+c in mesh editmode */ -static void mesh_copy_menu(EditMesh *em, wmOperator *op) +static void UNUSED_FUNCTION(mesh_copy_menu)(EditMesh *em, wmOperator *op) { EditSelection *ese; int ret; diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index bfae101d38e..9ff2923f733 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -3895,7 +3895,7 @@ void MESH_OT_edge_rotate(wmOperatorType *ot) /* XXX old bevel not ported yet */ -static void bevel_menu(EditMesh *em) +static void UNUSED_FUNCTION(bevel_menu)(EditMesh *em) { BME_Mesh *bm; BME_TransData_Head *td; diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index fdb1b9dc549..2e44d4031c8 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -183,7 +183,7 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode) } 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_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX); + RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -M_PI * 2.0f, M_PI * 2.0f); prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", ""); RNA_def_property_flag(prop, PROP_HIDDEN); diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 142c849eb7b..f0d1164f951 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -723,7 +723,7 @@ static void spot_interactive(Object *ob, int mode) } #endif -static void special_editmenu(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(special_editmenu)(Scene *scene, View3D *v3d) { // XXX static short numcuts= 2; Object *ob= OBACT; @@ -1345,7 +1345,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) DAG_ids_flush_update(bmain, 0); } -static void copy_attr_menu(Main *bmain, Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v3d) { Object *ob; short event; @@ -1618,7 +1618,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) /* ********************** */ -static void image_aspect(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(image_aspect)(Scene *scene, View3D *v3d) { /* all selected objects with an image map: scale in image aspect */ Base *base; @@ -1693,7 +1693,7 @@ static int vergbaseco(const void *a1, const void *a2) } -static void auto_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(auto_timeoffs)(Scene *scene, View3D *v3d) { Base *base, **basesort, **bs; float start, delta; @@ -1734,7 +1734,7 @@ static void auto_timeoffs(Scene *scene, View3D *v3d) } -static void ofs_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(ofs_timeoffs)(Scene *scene, View3D *v3d) { float offset=0.0f; @@ -1753,7 +1753,7 @@ static void ofs_timeoffs(Scene *scene, View3D *v3d) } -static void rand_timeoffs(Scene *scene, View3D *v3d) +static void UNUSED_FUNCTION(rand_timeoffs)(Scene *scene, View3D *v3d) { Base *base; float rand_ofs=0.0f; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 0fb7cf8b640..225e6e73563 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1402,6 +1402,20 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag) set_sca_new_poins(); } +/* not an especially efficient function, only added so the single user + * button can be functional.*/ +void ED_object_single_user(Scene *scene, Object *ob) +{ + Base *base; + + for(base= FIRSTBASE; base; base= base->next) { + if(base->object == ob) base->flag |= OB_DONE; + else base->flag &= ~OB_DONE; + } + + single_object_users(scene, NULL, OB_DONE); +} + static void new_id_matar(Material **matar, int totcol) { ID *id; diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 6548bdb37a9..8910f101b01 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -60,6 +60,7 @@ #include "RE_engine.h" +#include "ED_node.h" #include "ED_render.h" #include "render_intern.h" // own include @@ -214,6 +215,8 @@ static void texture_changed(Main *bmain, Tex *tex) Material *ma; Lamp *la; World *wo; + Scene *scene; + bNode *node; /* icons */ BKE_icon_changed(BKE_icon_getid(&tex->id)); @@ -247,6 +250,16 @@ static void texture_changed(Main *bmain, Tex *tex) BKE_icon_changed(BKE_icon_getid(&wo->id)); } + + /* find compositing nodes */ + for(scene=bmain->scene.first; scene; scene=scene->id.next) { + if(scene->use_nodes && scene->nodetree) { + for(node=scene->nodetree->nodes.first; node; node=node->next) { + if(node->id == &tex->id) + ED_node_changed_update(&scene->id, node); + } + } + } } static void lamp_changed(Main *bmain, Lamp *la) diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index 3effea296d7..4707baa279b 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -675,7 +675,12 @@ static int scrollback_append_exec(bContext *C, wmOperator *op) console_scrollback_limit(sc); - console_textview_update_rect(sc, ar); + /* 'ar' can be null depending on the operator that runs + * rendering with invoke default for eg causes this */ + if(ar) { + console_textview_update_rect(sc, ar); + } + ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index d4253495e97..4dd97c63d40 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -1159,6 +1159,13 @@ int file_filename_exec(bContext *C, wmOperator *UNUSED(unused)) return OPERATOR_FINISHED; } +/* TODO, directory operator is non-functional while a library is loaded + * until this is properly supported just disable it. */ +static int file_directory_poll(bContext *C) +{ + return ED_operator_file_active(C) && filelist_lib(CTX_wm_space_file(C)->files) == NULL; +} + void FILE_OT_directory(struct wmOperatorType *ot) { /* identifiers */ @@ -1169,7 +1176,7 @@ void FILE_OT_directory(struct wmOperatorType *ot) /* api callbacks */ ot->invoke= file_directory_invoke; ot->exec= file_directory_exec; - ot->poll= ED_operator_file_active; /* <- important, handler is on window level */ + ot->poll= file_directory_poll; /* <- important, handler is on window level */ } void FILE_OT_refresh(struct wmOperatorType *ot) diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 6736230e84f..d8be312cf39 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -602,28 +602,6 @@ short filelist_changed(struct FileList* filelist) return filelist->changed; } -static struct ImBuf * filelist_loadimage(struct FileList* filelist, int index) -{ - ImBuf *imb = NULL; - int fidx = 0; - - if ( (index < 0) || (index >= filelist->numfiltered) ) { - return NULL; - } - fidx = filelist->fidx[index]; - imb = filelist->filelist[fidx].image; - if (!imb) - { - if ( (filelist->filelist[fidx].flags & IMAGEFILE) || (filelist->filelist[fidx].flags & MOVIEFILE) ) { - imb = IMB_thumb_read(filelist->filelist[fidx].path, THB_NORMAL); - } - if (imb) { - filelist->filelist[fidx].image = imb; - } - } - return imb; -} - struct ImBuf * filelist_getimage(struct FileList* filelist, int index) { ImBuf* ibuf = NULL; diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 77c91b28a63..af99087b0b8 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -951,7 +951,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_FINISHED; } -static void NLA_OT_bake (wmOperatorType *ot) +void NLA_OT_bake (wmOperatorType *ot) { /* identifiers */ ot->name= "Bake Strips"; diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 848b037e1cb..274983fd316 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1703,7 +1703,7 @@ void NODE_OT_link_viewer(wmOperatorType *ot) /* return 0, nothing done */ -static int node_mouse_groupheader(SpaceNode *snode) +static int UNUSED_FUNCTION(node_mouse_groupheader)(SpaceNode *snode) { bNode *gnode; float mx=0, my=0; @@ -2018,7 +2018,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) } /* can be called from menus too, but they should do own undopush and redraws */ -bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy) +bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, int type, float locx, float locy) { bNode *node= NULL, *gnode; @@ -2033,7 +2033,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float return NULL; } else { - bNodeTree *ngroup= BLI_findlink(&G.main->nodetree, type-NODE_GROUP_MENU); + bNodeTree *ngroup= BLI_findlink(&bmain->nodetree, type-NODE_GROUP_MENU); if(ngroup) node= nodeAddNodeType(snode->edittree, NODE_GROUP, ngroup, NULL); } @@ -2054,7 +2054,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float } node_tree_verify_groups(snode->nodetree); - ED_node_set_active(G.main, snode->edittree, node); + 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)) @@ -3069,10 +3069,10 @@ static int node_mute_exec(bContext *C, wmOperator *UNUSED(op)) for(node= snode->edittree->nodes.first; node; node= node->next) { if(node->flag & SELECT) { - if(node->inputs.first && node->outputs.first) { + /* Be able to mute in-/output nodes as well. - DingTo + if(node->inputs.first && node->outputs.first) { */ node->flag ^= NODE_MUTED; snode_tag_changed(snode, node); - } } } @@ -3283,6 +3283,7 @@ void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot) 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; @@ -3323,7 +3324,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op) ED_preview_kill_jobs(C); - node = node_add_node(snode, scene, ntype, snode->mx, snode->my); + node = node_add_node(snode, bmain, scene, ntype, snode->mx, snode->my); if (!node) { BKE_report(op->reports, RPT_WARNING, "Could not add an image node."); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 15b1847ecf1..9f1029d58a0 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -64,6 +64,8 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) { + 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; @@ -87,7 +89,7 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event) else node->flag &= ~NODE_TEST; } - node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my); + node= node_add_node(snode, bmain, scene, event, snode->mx, snode->my); /* select previous selection before autoconnect */ for(node= snode->edittree->nodes.first; node; node= node->next) { diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index d30322d469f..2939676d051 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -43,6 +43,7 @@ struct wmWindowManager; struct bNode; struct bNodeSocket; struct bNodeLink; +struct Main; /* temp data to pass on to modal */ typedef struct bNodeLinkDrag @@ -97,7 +98,7 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre void snode_notify(bContext *C, SpaceNode *snode); void snode_dag_update(bContext *C, SpaceNode *snode); bNode *next_node(bNodeTree *ntree); -bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy); +bNode *node_add_node(SpaceNode *snode, struct Main *bmain, Scene *scene, int type, float locx, float locy); void snode_set_context(SpaceNode *snode, Scene *scene); void snode_make_group_editable(SpaceNode *snode, bNode *gnode); void node_deselectall(SpaceNode *snode); diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c index 857405aff4e..c76f4d1ef36 100644 --- a/source/blender/editors/space_node/node_select.c +++ b/source/blender/editors/space_node/node_select.c @@ -38,6 +38,7 @@ #include "BKE_context.h" #include "BKE_global.h" +#include "BKE_main.h" #include "BLI_rect.h" #include "BLI_utildefines.h" @@ -72,7 +73,7 @@ static bNode *node_under_mouse(bNodeTree *ntree, int mx, int my) /* ****** Click Select ****** */ -static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2], short extend) +static bNode *node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const int mval[2], short extend) { bNode *node; float mx, my; @@ -94,7 +95,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2] else node->flag ^= SELECT; - ED_node_set_active(G.main, snode->edittree, node); + ED_node_set_active(bmain, snode->edittree, node); } return node; @@ -102,6 +103,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2] 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); int mval[2]; @@ -115,7 +117,7 @@ static int node_select_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); /* perform the select */ - node= node_mouse_select(snode, ar, mval, extend); + node= node_mouse_select(bmain, snode, ar, mval, extend); /* send notifiers */ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL); diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt index 4194d463e10..d969a80a678 100644 --- a/source/blender/editors/space_outliner/CMakeLists.txt +++ b/source/blender/editors/space_outliner/CMakeLists.txt @@ -37,8 +37,12 @@ set(INC_SYS ) set(SRC - outliner.c + outliner_draw.c + outliner_edit.c outliner_ops.c + outliner_select.c + outliner_tools.c + outliner_tree.c space_outliner.c outliner_intern.h diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c deleted file mode 100644 index 93dc96cf9c0..00000000000 --- a/source/blender/editors/space_outliner/outliner.c +++ /dev/null @@ -1,5792 +0,0 @@ -/* - * $Id$ - * - * ***** 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) 2004 Blender Foundation. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/space_outliner/outliner.c - * \ingroup spoutliner - */ - - -#include -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "DNA_anim_types.h" -#include "DNA_armature_types.h" -#include "DNA_constraint_types.h" -#include "DNA_camera_types.h" -#include "DNA_group_types.h" -#include "DNA_key_types.h" -#include "DNA_lamp_types.h" -#include "DNA_material_types.h" -#include "DNA_mesh_types.h" -#include "DNA_meta_types.h" -#include "DNA_particle_types.h" -#include "DNA_scene_types.h" -#include "DNA_world_types.h" -#include "DNA_sequence_types.h" -#include "DNA_object_types.h" - -#include "BLI_blenlib.h" -#include "BLI_utildefines.h" -#include "BLI_math_base.h" - -#if defined WIN32 && !defined _LIBC -# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ -#else -# ifndef _GNU_SOURCE -# define _GNU_SOURCE -# endif -# include -#endif - - -#include "BKE_animsys.h" -#include "BKE_context.h" -#include "BKE_deform.h" -#include "BKE_depsgraph.h" -#include "BKE_fcurve.h" -#include "BKE_global.h" -#include "BKE_group.h" -#include "BKE_library.h" -#include "BKE_main.h" -#include "BKE_modifier.h" -#include "BKE_report.h" -#include "BKE_scene.h" -#include "BKE_sequencer.h" - -#include "ED_armature.h" -#include "ED_object.h" -#include "ED_screen.h" -#include "ED_util.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "BIF_gl.h" -#include "BIF_glutil.h" - -#include "UI_interface.h" -#include "UI_interface_icons.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "RNA_access.h" -#include "RNA_define.h" - -#include "ED_keyframing.h" - -#include "outliner_intern.h" - - -#define OL_Y_OFFSET 2 - -#define OL_TOG_RESTRICT_VIEWX (UI_UNIT_X*3) -#define OL_TOG_RESTRICT_SELECTX (UI_UNIT_X*2) -#define OL_TOG_RESTRICT_RENDERX UI_UNIT_X - -#define OL_TOGW OL_TOG_RESTRICT_VIEWX - -#define OL_RNA_COLX (UI_UNIT_X*15) -#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) -#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) - -#define TS_CHUNK 128 - -#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL) - -/* ************* XXX **************** */ - -static void error(const char *UNUSED(arg), ...) {} - -/* ********************************** */ - - -/* ******************** PROTOTYPES ***************** */ -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty); -static void outliner_do_object_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)); - -static int group_select_flag(Group *gr); - -/* ******************** PERSISTANT DATA ***************** */ - -static void outliner_storage_cleanup(SpaceOops *soops) -{ - TreeStore *ts= soops->treestore; - - if(ts) { - TreeStoreElem *tselem; - int a, unused= 0; - - /* each element used once, for ID blocks with more users to have each a treestore */ - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) tselem->used= 0; - - /* cleanup only after reading file or undo step, and always for - * RNA datablocks view in order to save memory */ - if(soops->storeflag & SO_TREESTORE_CLEANUP) { - - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id==NULL) unused++; - } - - if(unused) { - if(ts->usedelem == unused) { - MEM_freeN(ts->data); - ts->data= NULL; - ts->usedelem= ts->totelem= 0; - } - else { - TreeStoreElem *tsnewar, *tsnew; - - tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem"); - for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { - if(tselem->id) { - *tsnew= *tselem; - tsnew++; - } - } - MEM_freeN(ts->data); - ts->data= tsnewar; - ts->usedelem-= unused; - ts->totelem= ts->usedelem; - } - } - } - } -} - -static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr) -{ - TreeStore *ts; - TreeStoreElem *tselem; - int a; - - /* case 1; no TreeStore */ - if(soops->treestore==NULL) { - soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore"); - } - ts= soops->treestore; - - /* check if 'te' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if(tselem->id==id && tselem->used==0) { - if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) { - te->store_index= a; - tselem->used= 1; - return; - } - } - } - - /* add 1 element to treestore */ - if(ts->usedelem==ts->totelem) { - TreeStoreElem *tsnew; - - tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data"); - if(ts->data) { - memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem)); - MEM_freeN(ts->data); - } - ts->data= tsnew; - ts->totelem+= TS_CHUNK; - } - - tselem= ts->data+ts->usedelem; - - tselem->type= type; - if(type) tselem->nr= nr; // we're picky! :) - else tselem->nr= 0; - tselem->id= id; - tselem->used = 0; - tselem->flag= TSE_CLOSED; - te->store_index= ts->usedelem; - - ts->usedelem++; -} - -/* ******************** TREE MANAGEMENT ****************** */ - -void outliner_free_tree(ListBase *lb) -{ - - while(lb->first) { - TreeElement *te= lb->first; - - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } -} - -static void outliner_height(SpaceOops *soops, ListBase *lb, int *h) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - if((tselem->flag & TSE_CLOSED)==0) - outliner_height(soops, &te->subtree, h); - (*h) += UI_UNIT_Y; - te= te->next; - } -} - -#if 0 // XXX this is currently disabled until te->xend is set correctly -static void outliner_width(SpaceOops *soops, ListBase *lb, int *w) -{ - TreeElement *te= lb->first; - while(te) { -// TreeStoreElem *tselem= TREESTORE(te); - - // XXX fixme... te->xend is not set yet - if(tselem->flag & TSE_CLOSED) { - if (te->xend > *w) - *w = te->xend; - } - outliner_width(soops, &te->subtree, w); - te= te->next; - } -} -#endif - -static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx) -{ - TreeElement *te= lb->first; - while(te) { - TreeStoreElem *tselem= TREESTORE(te); - // XXX fixme... (currently, we're using a fixed length of 100)! - /*if(te->xend) { - if(te->xend > *w) - *w = te->xend; - }*/ - if(startx+100 > *w) - *w = startx+100; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X); - te= te->next; - } -} - -static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) -{ - TreeElement *te= lb->first, *tes; - while(te) { - if(te->store_index==store_index) return te; - tes= outliner_find_tree_element(&te->subtree, store_index); - if(tes) return tes; - te= te->next; - } - return NULL; -} - - - -static ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) -{ - TreeStoreElem *tselem; - te= te->parent; - - while(te) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==idcode) return tselem->id; - te= te->parent; - } - return NULL; -} - -struct treesort { - TreeElement *te; - ID *id; - const char *name; - short idcode; -}; - -static int treesort_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - int comp; - - /* first put objects last (hierarchy) */ - comp= (x1->idcode==ID_OB); - if(x2->idcode==ID_OB) comp+=2; - - if(comp==1) return 1; - else if(comp==2) return -1; - else if(comp==3) { - comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - return 0; -} - -/* this is nice option for later? doesnt look too useful... */ -#if 0 -static int treesort_obtype_alpha(const void *v1, const void *v2) -{ - const struct treesort *x1= v1, *x2= v2; - - /* first put objects last (hierarchy) */ - if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1; - else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1; - 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; - else return 0; - } - else { - int comp= strcmp(x1->name, x2->name); - - if( comp>0 ) return 1; - else if( comp<0) return -1; - return 0; - } - } -} -#endif - -/* sort happens on each subtree individual */ -static void outliner_sort(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - int totelem=0; - - te= lb->last; - if(te==NULL) return; - tselem= TREESTORE(te); - - /* sorting rules; only object lists or deformgroups */ - if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) { - - /* count first */ - for(te= lb->first; te; te= te->next) totelem++; - - if(totelem>1) { - struct treesort *tear= MEM_mallocN(totelem*sizeof(struct treesort), "tree sort array"); - struct treesort *tp=tear; - int skip= 0; - - for(te= lb->first; te; te= te->next, tp++) { - tselem= TREESTORE(te); - tp->te= te; - tp->name= te->name; - tp->idcode= te->idcode; - if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0; // dont sort this - tp->id= tselem->id; - } - /* keep beginning of list */ - for(tp= tear, skip=0; skipidcode) break; - - if(skipfirst=lb->last= NULL; - tp= tear; - while(totelem--) { - BLI_addtail(lb, tp->te); - tp++; - } - MEM_freeN(tear); - } - } - - for(te= lb->first; te; te= te->next) { - outliner_sort(soops, &te->subtree); - } -} - -/* Prototype, see functions below */ -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index); - -#define LOG2I(x) (int)(log(x)/M_LN2) - -static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) -{ - TreeStoreElem *tselem = NULL; - TreeElement *te = NULL; - - /* log stuff is to convert bitflags (powers of 2) to small integers, - * in order to not overflow short tselem->nr */ - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED)); - te->name= "Combined"; - te->directdata= &srl->passflag; - - /* save cpu cycles, but we add the first to invoke an open/close triangle */ - tselem = TREESTORE(tenla); - if(tselem->flag & TSE_CLOSED) - return; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z)); - te->name= "Z"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR)); - te->name= "Vector"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL)); - te->name= "Normal"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV)); - te->name= "UV"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST)); - te->name= "Mist"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB)); - te->name= "Index Object"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); - te->name= "Index Material"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); - te->name= "Color"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE)); - te->name= "Diffuse"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC)); - te->name= "Specular"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW)); - te->name= "Shadow"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO)); - te->name= "AO"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT)); - te->name= "Reflection"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT)); - te->name= "Refraction"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT)); - te->name= "Indirect"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT)); - te->name= "Environment"; - te->directdata= &srl->passflag; - - te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT)); - te->name= "Emit"; - te->directdata= &srl->passflag; -} - -#undef LOG2I - -/* special handling of hierarchical non-lib data */ -static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, - TreeElement *parent, int *a) -{ - TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); - - (*a)++; - te->name= curBone->name; - te->directdata= curBone; - - for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { - outliner_add_bone(soops, &te->subtree, id, curBone, te, a); - } -} - -static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) -{ - SceneRenderLayer *srl; - TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0); - int a; - - tenla->name= "RenderLayers"; - for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) { - TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a); - tenlay->name= srl->name; - tenlay->directdata= &srl->passflag; - - if(srl->light_override) - outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0); - if(srl->mat_override) - outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0); - - outliner_add_passes(soops, tenlay, &sce->id, srl); - } - - outliner_add_element(soops, lb, sce->world, te, 0, 0); -} - -static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, - TreeElement *parent, short type, short index) -{ - TreeElement *te; - TreeStoreElem *tselem; - ID *id= idv; - int a = 0; - - if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - id= ((PointerRNA*)idv)->id.data; - if(!id) id= ((PointerRNA*)idv)->data; - } - - if(id==NULL) return NULL; - - te= MEM_callocN(sizeof(TreeElement), "tree elem"); - /* add to the visual tree */ - BLI_addtail(lb, te); - /* add to the storage */ - check_persistant(soops, te, id, type, index); - tselem= TREESTORE(te); - - 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); - else { - te->name= id->name+2; // default, can be overridden by Library or non-ID data - te->idcode= GS(id->name); - } - - if(type==0) { - - /* tuck pointer back in object, to construct hierarchy */ - if(GS(id->name)==ID_OB) id->newid= (ID *)te; - - /* expand specific data always */ - switch(GS(id->name)) { - case ID_LI: - te->name= ((Library *)id)->name; - break; - case ID_SCE: - outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); - break; - case ID_OB: - { - Object *ob= (Object *)id; - - outliner_add_element(soops, &te->subtree, ob->adt, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this - - if(ob->proxy && ob->id.lib==NULL) - outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); - - outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); - - if(ob->pose) { - bArmature *arm= ob->data; - bPoseChannel *pchan; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); - - tenla->name= "Pose"; - - if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) { // channels undefined in editmode, but we want the 'tenla' pose icon itself - int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ - - for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); - ten->name= pchan->name; - ten->directdata= pchan; - pchan->prev= (bPoseChannel *)ten; - - if(pchan->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten1; - TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); - //char *str; - - tenla1->name= "Constraints"; - for(con= pchan->constraints.first; con; con= con->next, const_index++) { - ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); -#if 0 /* disabled as it needs to be reworked for recoded constraints system */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten1->name= str; - else if(target) ten1->name= target->id.name+2; - else ten1->name= con->name; -#endif - ten1->name= con->name; - ten1->directdata= con; - /* possible add all other types links? */ - } - } - } - /* make hierarchy */ - ten= tenla->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - if(tselem->type==TSE_POSE_CHANNEL) { - pchan= (bPoseChannel *)ten->directdata; - if(pchan->parent) { - BLI_remlink(&tenla->subtree, ten); - par= (TreeElement *)pchan->parent->prev; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - } - ten= nten; - } - /* restore prev pointers */ - pchan= ob->pose->chanbase.first; - if(pchan) pchan->prev= NULL; - for(; pchan; pchan= pchan->next) { - if(pchan->next) pchan->next->prev= pchan; - } - } - - /* Pose Groups */ - if(ob->pose->agroups.first) { - bActionGroup *agrp; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); - int a= 0; - - tenla->name= "Bone Groups"; - for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); - ten->name= agrp->name; - ten->directdata= agrp; - } - } - } - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); - - if(ob->constraints.first) { - //Object *target; - bConstraint *con; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); - int a= 0; - //char *str; - - tenla->name= "Constraints"; - for(con= ob->constraints.first; con; con= con->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); -#if 0 /* disabled due to constraints system targets recode... code here needs review */ - target= get_constraint_target(con, &str); - if(str && str[0]) ten->name= str; - else if(target) ten->name= target->id.name+2; - else ten->name= con->name; -#endif - ten->name= con->name; - ten->directdata= con; - /* possible add all other types links? */ - } - } - - if(ob->modifiers.first) { - ModifierData *md; - TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); - int index; - - temod->name = "Modifiers"; - for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { - TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); - te->name= md->name; - te->directdata = md; - - if (md->type==eModifierType_Lattice) { - outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Curve) { - outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Armature) { - outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_Hook) { - outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); - } else if (md->type==eModifierType_ParticleSystem) { - TreeElement *ten; - ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; - - ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); - ten->directdata = psys; - ten->name = psys->part->id.name+2; - } - } - } - if(ob->defbase.first) { - bDeformGroup *defgroup; - TreeElement *ten; - TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); - int a= 0; - - tenla->name= "Vertex Groups"; - for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) { - ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); - ten->name= defgroup->name; - ten->directdata= defgroup; - } - } - - if(ob->dup_group) - outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); - - } - break; - case ID_ME: - { - Mesh *me= (Mesh *)id; - - //outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0); - - outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); - /* could do tfaces with image links, but the images are not grouped nicely. - would require going over all tfaces, sort images in use. etc... */ - } - break; - case ID_CU: - { - Curve *cu= (Curve *)id; - - outliner_add_element(soops, &te->subtree, cu->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); - } - break; - case ID_MB: - { - MetaBall *mb= (MetaBall *)id; - for(a=0; atotcol; a++) - outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); - } - break; - case ID_MA: - { - Material *ma= (Material *)id; - - outliner_add_element(soops, &te->subtree, ma->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_TE: - { - Tex *tex= (Tex *)id; - - outliner_add_element(soops, &te->subtree, tex->adt, te, TSE_ANIM_DATA, 0); - outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); - } - break; - case ID_CA: - { - Camera *ca= (Camera *)id; - outliner_add_element(soops, &te->subtree, ca->adt, te, TSE_ANIM_DATA, 0); - } - break; - case ID_LA: - { - Lamp *la= (Lamp *)id; - - outliner_add_element(soops, &te->subtree, la->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_WO: - { - World *wrld= (World *)id; - - outliner_add_element(soops, &te->subtree, wrld->adt, te, TSE_ANIM_DATA, 0); - - for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); - } - } - break; - case ID_KE: - { - Key *key= (Key *)id; - - outliner_add_element(soops, &te->subtree, key->adt, te, TSE_ANIM_DATA, 0); - } - break; - case ID_AC: - { - // XXX do we want to be exposing the F-Curves here? - //bAction *act= (bAction *)id; - } - break; - case ID_AR: - { - bArmature *arm= (bArmature *)id; - int a= 0; - - if(arm->edbo) { - EditBone *ebone; - TreeElement *ten; - - for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { - ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); - ten->directdata= ebone; - ten->name= ebone->name; - ebone->temp= ten; - } - /* make hierarchy */ - ten= te->subtree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - ebone= (EditBone *)ten->directdata; - if(ebone->parent) { - BLI_remlink(&te->subtree, ten); - par= ebone->parent->temp; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - } - 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); - else { - Bone *curBone; - for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ - outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); - } - } - } - } - break; - } - } - else if(type==TSE_ANIM_DATA) { - AnimData *adt= (AnimData *)idv; - - /* this element's info */ - te->name= "Animation"; - - /* Action */ - outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0); - - /* Drivers */ - if (adt->drivers.first) { - TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); - ID *lastadded= NULL; - FCurve *fcu; - - ted->name= "Drivers"; - - for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { - if (fcu->driver && fcu->driver->variables.first) { - ChannelDriver *driver= fcu->driver; - DriverVar *dvar; - - for (dvar= driver->variables.first; dvar; dvar= dvar->next) { - /* loop over all targets used here */ - DRIVER_TARGETS_USED_LOOPER(dvar) - { - if (lastadded != dtar->id) { - // XXX this lastadded check is rather lame, and also fails quite badly... - outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); - lastadded= dtar->id; - } - } - DRIVER_TARGETS_LOOPER_END - } - } - } - } - - /* NLA Data */ - if (adt->nla_tracks.first) { - TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0); - NlaTrack *nlt; - int a= 0; - - tenla->name= "NLA Tracks"; - - for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) { - TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a); - NlaStrip *strip; - TreeElement *ten; - int b= 0; - - tenlt->name= nlt->name; - - for (strip=nlt->strips.first; strip; strip=strip->next, b++) { - ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b); - if(ten) ten->directdata= strip; - } - } - } - } - else if(type==TSE_SEQUENCE) { - Sequence *seq= (Sequence*) idv; - Sequence *p; - - /* - * The idcode is a little hack, but the outliner - * only check te->idcode if te->type is equal to zero, - * so this is "safe". - */ - te->idcode= seq->type; - te->directdata= seq; - - if(seq->type<7) { - /* - * This work like the sequence. - * If the sequence have a name (not default name) - * show it, in other case put the filename. - */ - if(strcmp(seq->name, "SQ")) - te->name= seq->name; - else { - if((seq->strip) && (seq->strip->stripdata)) - te->name= seq->strip->stripdata->name; - else - te->name= "SQ None"; - } - - if(seq->type==SEQ_META) { - te->name= "Meta Strip"; - p= seq->seqbase.first; - while(p) { - outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } - } - else - outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index); - } - else - te->name= "Effect"; - } - else if(type==TSE_SEQ_STRIP) { - Strip *strip= (Strip *)idv; - - if(strip->dir) - te->name= strip->dir; - else - te->name= "Strip None"; - te->directdata= strip; - } - else if(type==TSE_SEQUENCE_DUP) { - Sequence *seq= (Sequence*)idv; - - te->idcode= seq->type; - te->directdata= seq; - te->name= seq->strip->stripdata->name; - } - else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { - PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv; - PropertyRNA *prop, *iterprop; - PropertyType proptype; - int a, tot; - - /* we do lazy build, for speed and to avoid infinite recusion */ - - if(ptr->data == NULL) { - te->name= "(empty)"; - } - else if(type == TSE_RNA_STRUCT) { - /* struct */ - te->name= RNA_struct_name_get_alloc(ptr, NULL, 0); - - if(te->name) - te->flag |= TE_FREE_NAME; - else - te->name= (char*)RNA_struct_ui_name(ptr->type); - - iterprop= RNA_struct_iterator_property(ptr->type); - tot= RNA_property_collection_length(ptr, iterprop); - - /* auto open these cases */ - if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) - if(!tselem->used) - tselem->flag &= ~TSE_CLOSED; - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_PROPERTY, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - - te->rnaptr= *ptr; - } - else if(type == TSE_RNA_PROPERTY) { - /* property */ - iterprop= RNA_struct_iterator_property(ptr->type); - RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr); - - prop= propptr.data; - proptype= RNA_property_type(prop); - - te->name= (char*)RNA_property_ui_name(prop); - te->directdata= prop; - te->rnaptr= *ptr; - - if(proptype == PROP_POINTER) { - pptr= RNA_property_pointer_get(ptr, prop); - - if(pptr.data) { - if(!(tselem->flag & TSE_CLOSED)) - outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); - else - te->flag |= TE_LAZY_CLOSED; - } - } - else if(proptype == PROP_COLLECTION) { - tot= RNA_property_collection_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); - } - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) { - tot= RNA_property_array_length(ptr, prop); - - if(!(tselem->flag & TSE_CLOSED)) { - for(a=0; asubtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a); - } - else if(tot) - te->flag |= TE_LAZY_CLOSED; - } - } - else if(type == TSE_RNA_ARRAY_ELEM) { - char c; - - prop= parent->directdata; - - te->directdata= prop; - te->rnaptr= *ptr; - te->index= index; - - c= RNA_property_array_item_char(prop, index); - - te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName"); - if(c) sprintf((char *)te->name, " %c", c); - else sprintf((char *)te->name, " %d", index+1); - te->flag |= TE_FREE_NAME; - } - } - else if(type == TSE_KEYMAP) { - wmKeyMap *km= (wmKeyMap *)idv; - wmKeyMapItem *kmi; - char opname[OP_MAX_TYPENAME]; - - te->directdata= idv; - te->name= km->idname; - - if(!(tselem->flag & TSE_CLOSED)) { - a= 0; - - for (kmi= km->items.first; kmi; kmi= kmi->next, a++) { - const char *key= WM_key_event_string(kmi->type); - - if(key[0]) { - wmOperatorType *ot= NULL; - - if(kmi->propvalue); - 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); - - ten->directdata= kmi; - - if(kmi->propvalue) { - ten->name= "Modal map, not yet"; - } - else { - WM_operator_py_idname(opname, ot->idname); - ten->name= BLI_strdup(opname); - ten->flag |= TE_FREE_NAME; - } - } - } - } - } - else - te->flag |= TE_LAZY_CLOSED; - } - - return te; -} - -static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten, *tep; - TreeStoreElem *tselem; - - /* build hierarchy */ - // XXX also, set extents here... - te= lb->first; - while(te) { - ten= te->next; - tselem= TREESTORE(te); - - if(tselem->type==0 && te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - if(ob->parent && ob->parent->id.newid) { - BLI_remlink(lb, te); - tep= (TreeElement *)ob->parent->id.newid; - BLI_addtail(&tep->subtree, te); - // set correct parent pointers - for(te=tep->subtree.first; te; te= te->next) te->parent= tep; - } - } - te= ten; - } -} - -/* Helped function to put duplicate sequence in the same tree. */ -static int need_add_seq_dup(Sequence *seq) -{ - Sequence *p; - - if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name)) - return(1); - - /* - * First check backward, if we found a duplicate - * sequence before this, don't need it, just return. - */ - p= seq->prev; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->prev; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(2); - p= p->prev; - } - - p= seq->next; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - return(0); - p= p->next; - } - return(1); -} - -static void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index) -{ - TreeElement *ch; - Sequence *p; - - p= seq; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - - if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) - ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); - p= p->next; - } -} - -static int outliner_filter_has_name(TreeElement *te, const char *name, int flags) -{ -#if 0 - int found= 0; - - /* determine if match */ - if (flags & SO_FIND_CASE_SENSITIVE) { - if (flags & SO_FIND_COMPLETE) - found= strcmp(te->name, name) == 0; - else - found= strstr(te->name, name) != NULL; - } - else { - if (flags & SO_FIND_COMPLETE) - found= BLI_strcasecmp(te->name, name) == 0; - else - found= BLI_strcasestr(te->name, name) != NULL; - } -#else - - int fn_flag= 0; - int found= 0; - - if ((flags & SO_FIND_CASE_SENSITIVE) == 0) - fn_flag |= FNM_CASEFOLD; - - if (flags & SO_FIND_COMPLETE) { - found= fnmatch(name, te->name, fn_flag)==0; - } - else { - char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2]; - sprintf(fn_name, "*%s*", name); - found= fnmatch(fn_name, te->name, fn_flag)==0; - } - return found; -#endif -} - -static int outliner_filter_tree(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te, *ten; - TreeStoreElem *tselem; - - /* although we don't have any search string, we return TRUE - * since the entire tree is ok then... - */ - if (soops->search_string[0]==0) - return 1; - - for (te= lb->first; te; te= ten) { - ten= te->next; - - if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) { - /* item isn't something we're looking for, but... - * - if the subtree is expanded, check if there are any matches that can be easily found - * so that searching for "cu" in the default scene will still match the Cube - * - otherwise, we can't see within the subtree and the item doesn't match, - * so these can be safely ignored (i.e. the subtree can get freed) - */ - tselem= TREESTORE(te); - - if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { - outliner_free_tree(&te->subtree); - BLI_remlink(lb, te); - - if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); - MEM_freeN(te); - } - } - else { - /* filter subtree too */ - outliner_filter_tree(soops, &te->subtree); - } - } - - /* if there are still items in the list, that means that there were still some matches */ - return (lb->first != NULL); -} - - -static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) -{ - Base *base; - Object *ob; - TreeElement *te=NULL, *ten; - TreeStoreElem *tselem; - int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */ - - if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW)) - return; - - outliner_free_tree(&soops->tree); - outliner_storage_cleanup(soops); - - /* clear ob id.new flags */ - for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL; - - /* options */ - if(soops->outlinevis == SO_LIBRARIES) { - Library *lib; - - for(lib= mainvar->library.first; lib; lib= lib->id.next) { - ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0); - lib->id.newid= (ID *)ten; - } - /* make hierarchy */ - ten= soops->tree.first; - while(ten) { - TreeElement *nten= ten->next, *par; - tselem= TREESTORE(ten); - lib= (Library *)tselem->id; - if(lib->parent) { - BLI_remlink(&soops->tree, ten); - par= (TreeElement *)lib->parent->id.newid; - BLI_addtail(&par->subtree, ten); - ten->parent= par; - } - ten= nten; - } - /* restore newid pointers */ - for(lib= mainvar->library.first; lib; lib= lib->id.next) - lib->id.newid= NULL; - - } - else if(soops->outlinevis == SO_ALL_SCENES) { - Scene *sce; - for(sce= mainvar->scene.first; sce; sce= sce->id.next) { - te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0); - tselem= TREESTORE(te); - if(sce==scene && show_opened) - tselem->flag &= ~TSE_CLOSED; - - for(base= sce->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL; - } - } - else if(soops->outlinevis == SO_CUR_SCENE) { - - outliner_add_scene_contents(soops, &soops->tree, scene, NULL); - - for(base= scene->base.first; base; base= base->next) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_VISIBLE) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) - outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis == SO_GROUPS) { - Group *group; - GroupObject *go; - - for(group= mainvar->group.first; group; group= group->id.next) { - if(group->gobject.first) { - te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0); - - for(go= group->gobject.first; go; go= go->next) { - ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0); - ten->directdata= NULL; /* eh, why? */ - } - outliner_make_hierarchy(soops, &te->subtree); - /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ - for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL; - } - } - } - else if(soops->outlinevis == SO_SAME_TYPE) { - Object *ob= OBACT; - if(ob) { - for(base= scene->base.first; base; base= base->next) { - if(base->object->type==ob->type) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - } - else if(soops->outlinevis == SO_SELECTED) { - for(base= scene->base.first; base; base= base->next) { - if(base->lay & scene->lay) { - if(base==BASACT || (base->flag & SELECT)) { - ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); - ten->directdata= base; - } - } - } - outliner_make_hierarchy(soops, &soops->tree); - } - else if(soops->outlinevis==SO_SEQUENCE) { - Sequence *seq; - Editing *ed= seq_give_editing(scene, FALSE); - int op; - - if(ed==NULL) - return; - - seq= ed->seqbasep->first; - if(!seq) - return; - - while(seq) { - op= need_add_seq_dup(seq); - if(op==1) - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0); - else if(op==0) { - ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0); - add_seq_dup(soops, seq, ten, 0); - } - seq= seq->next; - } - } - else if(soops->outlinevis==SO_DATABLOCKS) { - PointerRNA mainptr; - - RNA_main_pointer_create(mainvar, &mainptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_USERDEF) { - PointerRNA userdefptr; - - RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); - - ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); - - if(show_opened) { - tselem= TREESTORE(ten); - tselem->flag &= ~TSE_CLOSED; - } - } - else if(soops->outlinevis==SO_KEYMAP) { - wmWindowManager *wm= mainvar->wm.first; - wmKeyMap *km; - - for(km= wm->defaultconf->keymaps.first; km; km= km->next) { - ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0); - } - } - else { - ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0); - if(ten) ten->directdata= BASACT; - } - - outliner_sort(soops, &soops->tree); - outliner_filter_tree(soops, &soops->tree); -} - -/* **************** INTERACTIVE ************* */ - - -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 up= 0; - - if(RNA_boolean_get(op->ptr, "up")) - up= 1; - - if(up == 0) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_scroll_page(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Scroll Page"; - ot->idname= "OUTLINER_OT_scroll_page"; - ot->description= "Scroll page up or down"; - - /* callbacks */ - ot->exec= outliner_scroll_page_exec; - ot->poll= ED_operator_outliner_active; - - /* properties */ - RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page."); -} - - -static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel) -{ - TreeElement *te; - int level=curlevel, lev; - - for(te= lb->first; te; te= te->next) { - - lev= outliner_count_levels(soops, &te->subtree, curlevel+1); - if(lev>level) level= lev; - } - return level; -} - -static int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - int level; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & flag) return curlevel; - - level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1); - if(level) return level; - } - return 0; -} - -static void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(set==0) tselem->flag &= ~flag; - else tselem->flag |= flag; - outliner_set_flag(soops, &te->subtree, flag, set); - } -} - -/* --- */ - -/* same check needed for both object operation and restrict column button func - * return 0 when in edit mode (cannot restrict view or select) - * otherwise return 1 */ -static int common_restrict_check(bContext *C, Object *ob) -{ - /* Don't allow hide an object in edit mode, - * check the bug #22153 and #21609, #23977 - */ - Object *obedit= CTX_data_edit_object(C); - if (obedit && obedit == ob) { - /* found object is hidden, reset */ - if (ob->restrictflag & OB_RESTRICT_VIEW) - ob->restrictflag &= ~OB_RESTRICT_VIEW; - /* found object is unselectable, reset */ - if (ob->restrictflag & OB_RESTRICT_SELECT) - ob->restrictflag &= ~OB_RESTRICT_SELECT; - return 0; - } - - return 1; -} - -static void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - Object *ob = (Object *)tselem->id; - - /* add check for edit mode */ - if(!common_restrict_check(C, ob)) return; - - if(base || (base= object_in_scene(ob, scene))) { - if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) { - ED_base_object_select(base, BA_DESELECT); - } - } -} - -static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_visibility_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Visibility"; - ot->idname= "OUTLINER_OT_visibility_toggle"; - ot->description= "Toggle the visibility of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_visibility_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_SELECT; - } -} - -static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selectability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selectability"; - ot->idname= "OUTLINER_OT_selectability_toggle"; - ot->description= "Toggle the selectability"; - - /* callbacks */ - ot->exec= outliner_toggle_selectability_exec; - ot->poll= ED_operator_outliner_active_no_editobject; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -static void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->object->restrictflag^=OB_RESTRICT_RENDER; - } -} - -static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_renderability_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Renderability"; - ot->idname= "OUTLINER_OT_renderability_toggle"; - ot->description= "Toggle the renderability of selected items"; - - /* callbacks */ - ot->exec= outliner_toggle_renderability_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* --- */ - -static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Expand/Collapse All"; - ot->idname= "OUTLINER_OT_expanded_toggle"; - ot->description= "Expand/Collapse all items"; - - /* callbacks */ - ot->exec= outliner_toggle_expanded_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1)) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - else - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_selected_toggle(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Toggle Selected"; - ot->idname= "OUTLINER_OT_selected_toggle"; - ot->description= "Toggle the Outliner selection of items"; - - /* callbacks */ - ot->exec= outliner_toggle_selected_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ -} - -/* --- */ - -/* helper function for Show/Hide one level operator */ -static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(open) { - if(curlevel<=level) tselem->flag &= ~TSE_CLOSED; - } - else { - if(curlevel>=level) tselem->flag |= TSE_CLOSED; - } - - outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open); - } -} - -static int outliner_one_level_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - int add= RNA_boolean_get(op->ptr, "open"); - int level; - - level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1); - if(add==1) { - if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1); - } - else { - if(level==0) level= outliner_count_levels(soops, &soops->tree, 0); - if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_one_level(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show/Hide One Level"; - ot->idname= "OUTLINER_OT_show_one_level"; - ot->description= "Expand/collapse all entries by one level"; - - /* callbacks */ - ot->exec= outliner_one_level_exec; - ot->poll= ED_operator_outliner_active; - - /* no undo or registry, UI option */ - - /* properties */ - RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); -} - -/* This is not used anywhere at the moment */ -#if 0 -/* return 1 when levels were opened */ -static int outliner_open_back(SpaceOops *soops, TreeElement *te) -{ - TreeStoreElem *tselem; - int retval= 0; - - for (te= te->parent; te; te= te->parent) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) { - tselem->flag &= ~TSE_CLOSED; - retval= 1; - } - } - return retval; -} - -static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te; te= te->next) { - /* check if this tree-element was the one we're seeking */ - if (te == teFind) { - *found= 1; - return; - } - - /* try to see if sub-tree contains it then */ - outliner_open_reveal(soops, &te->subtree, teFind, found); - if (*found) { - tselem= TREESTORE(te); - if (tselem->flag & TSE_CLOSED) - tselem->flag &= ~TSE_CLOSED; - return; - } - } -} -#endif - -// XXX just use View2D ops for this? -static void outliner_page_up_down(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int up) -{ - int dy= ar->v2d.mask.ymax-ar->v2d.mask.ymin; - - if(up == -1) dy= -dy; - ar->v2d.cur.ymin+= dy; - ar->v2d.cur.ymax+= dy; - - soops->storeflag |= SO_TREESTORE_REDRAW; -} - -/* **** do clicks on items ******* */ - -static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Scene *sce; - - /* paranoia check */ - if(te->idcode!=ID_SCE) - return 0; - sce= (Scene *)tselem->id; - - if(set) { - sce->r.actlay= tselem->nr; - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce); - } - else { - return sce->r.actlay==tselem->nr; - } - return 0; -} - -static void tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeStoreElem *tselem= TREESTORE(te); - Scene *sce; - Base *base; - Object *ob= NULL; - - /* if id is not object, we search back */ - if(te->idcode==ID_OB) ob= (Object *)tselem->id; - else { - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==OBACT) return; - } - if(ob==NULL) return; - - sce= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - - /* find associated base in current scene */ - base= object_in_scene(ob, scene); - - if(base) { - if(set==2) { - /* swap select */ - if(base->flag & SELECT) - ED_base_object_select(base, BA_DESELECT); - else - ED_base_object_select(base, BA_SELECT); - } - else { - /* deleselect all */ - scene_deselect_all(scene); - ED_base_object_select(base, BA_SELECT); - } - if(C) { - ED_base_object_activate(C, base); /* adds notifier */ - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - } - - if(ob!=scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); -} - -static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tes; - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - // note: ob->matbits can be NULL when a local object points to a library mesh. - if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia - - /* searching in ob mat array? */ - tes= te->parent; - if(tes->idcode==ID_OB) { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 1; // make ob material active too - ob->colbits |= (1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]) return 1; - } - } - /* or we search for obdata material */ - else { - if(set) { - ob->actcol= te->index+1; - ob->matbits[te->index]= 0; // make obdata material active too - ob->colbits &= ~(1<index); - } - else { - if(ob->actcol == te->index+1) - if(ob->matbits[te->index]==0) return 1; - } - } - if(set) { - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); - } - return 0; -} - -static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem /* *tselem,*/ *tselemp; - Object *ob=OBACT; - SpaceButs *sbuts=NULL; - - if(ob==NULL) return 0; // no active object - - /*tselem= TREESTORE(te);*/ /*UNUSED*/ - - /* find buttons area (note, this is undefined really still, needs recode in blender) */ - /* XXX removed finding sbuts */ - - /* where is texture linked to? */ - tep= te->parent; - tselemp= TREESTORE(tep); - - if(tep->idcode==ID_WO) { - World *wrld= (World *)tselemp->id; - - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 1; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - wrld->texact= te->index; - } - else if(tselemp->id == (ID *)(scene->world)) { - if(wrld->texact==te->index) return 1; - } - } - else if(tep->idcode==ID_LA) { - Lamp *la= (Lamp *)tselemp->id; - if(set) { - if(sbuts) { - // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 2; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - la->texact= te->index; - } - else { - if(tselemp->id == ob->data) { - if(la->texact==te->index) return 1; - } - } - } - else if(tep->idcode==ID_MA) { - Material *ma= (Material *)tselemp->id; - if(set) { - if(sbuts) { - //sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c - // XXX sbuts->texfrom= 0; - } -// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture - ma->texact= (char)te->index; - - /* also set active material */ - ob->actcol= tep->index+1; - } - else if(tep->flag & TE_ACTIVE) { // this is active material - if(ma->texact==te->index) return 1; - } - } - - if(set) - WM_event_add_notifier(C, NC_TEXTURE, NULL); - - return 0; -} - - -static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob; - - /* we search for the object parent */ - ob= (Object *)outliner_search_back(soops, te, ID_OB); - if(ob==NULL || ob!=OBACT) return 0; // just paranoia - - if(set) { -// XXX extern_set_butspace(F5KEY, 0); - } - else return 1; - - return 0; -} - -static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - Object *ob= (Object *)outliner_search_back(soops, te, ID_OB); - - if(set) - return 0; - - return scene->camera == ob; -} - -static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - TreeElement *tep; - TreeStoreElem *tselem=NULL; - Scene *sce=NULL; - - tep= te->parent; - if(tep) { - tselem= TREESTORE(tep); - sce= (Scene *)tselem->id; - } - - if(set) { // make new scene active - if(sce && scene != sce) { - ED_screen_set_scene(C, sce); - } - } - - if(tep==NULL || tselem->id == (ID *)scene) { - if(set) { -// XXX extern_set_butspace(F8KEY, 0); - } - else { - return 1; - } - } - return 0; -} - -static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob; - - /* id in tselem is object */ - ob= (Object *)tselem->id; - if(set) { - ob->actdef= te->index+1; - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); - } - else { - if(ob==OBACT) - if(ob->actdef== te->index+1) return 1; - } - return 0; -} - -static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - - if(set) { - if (ob->pose) { - ob->pose->active_group= te->index+1; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - } - } - else { - if(ob==OBACT && ob->pose) { - if (ob->pose->active_group== te->index+1) return 1; - } - } - return 0; -} - -static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - bArmature *arm= ob->data; - bPoseChannel *pchan= te->directdata; - - if(set) { - if(!(pchan->bone->flag & BONE_HIDDEN_P)) { - - if(set==2) ED_pose_deselectall(ob, 2); // 2 = clear active tag - else ED_pose_deselectall(ob, 0); // 0 = deselect - - if(set==2 && (pchan->bone->flag & BONE_SELECTED)) { - pchan->bone->flag &= ~BONE_SELECTED; - } else { - pchan->bone->flag |= BONE_SELECTED; - arm->act_bone= pchan->bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob); - - } - } - else { - if(ob==OBACT && ob->pose) { - if (pchan->bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - -static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) -{ - bArmature *arm= (bArmature *)tselem->id; - Bone *bone= te->directdata; - - 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); - - if(set==2 && (bone->flag & BONE_SELECTED)) { - bone->flag &= ~BONE_SELECTED; - } else { - bone->flag |= BONE_SELECTED; - arm->act_bone= bone; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT); - } - } - else { - Object *ob= OBACT; - - if(ob && ob->data==arm) { - if (bone->flag & BONE_SELECTED) return 1; - } - } - return 0; -} - - -/* ebones only draw in editmode armature */ -static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel) -{ - if(sel) { - ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL; - arm->act_edbone= ebone; - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL; - } - else { - ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); - // flush to parent? - if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL; - } - - WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit); -} -static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - bArmature *arm= scene->obedit->data; - EditBone *ebone= te->directdata; - - if(set==1) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - ED_armature_deselect_all(scene->obedit, 0); // deselect - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - } - else if (set==2) { - if(!(ebone->flag & BONE_HIDDEN_A)) { - if(!(ebone->flag & BONE_SELECTED)) { - tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); - return 1; - } - else { - /* entirely selected, so de-select */ - tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE); - return 0; - } - } - } - else if (ebone->flag & BONE_SELECTED) { - return 1; - } - return 0; -} - -static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); - -// XXX extern_set_butspace(F9KEY, 0); - } - - return 0; -} - -static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); - -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - if(set) { - Object *ob= (Object *)tselem->id; - - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); -// XXX extern_set_butspace(F7KEY, 0); - } - - return 0; -} - -static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set)) -{ - // XXX removed - return 0; -} - -/* generic call for ID data check or make/check active in UI */ -static int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) -{ - - switch(te->idcode) { - case ID_MA: - return tree_element_active_material(C, scene, soops, te, set); - case ID_WO: - return tree_element_active_world(C, scene, soops, te, set); - case ID_LA: - return tree_element_active_lamp(C, scene, soops, te, set); - case ID_TE: - return tree_element_active_texture(C, scene, soops, te, set); - case ID_TXT: - return tree_element_active_text(C, scene, soops, te, set); - case ID_CA: - return tree_element_active_camera(C, scene, soops, te, set); - } - return 0; -} - -static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) -{ - Object *ob= (Object *)tselem->id; - Base *base= object_in_scene(ob, scene); - - if(set) { - if(scene->obedit) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - if(ob->mode & OB_MODE_POSE) - ED_armature_exit_posemode(C, base); - else - ED_armature_enter_posemode(C, base); - } - else { - if(ob->mode & OB_MODE_POSE) return 1; - } - return 0; -} - -static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq= (Sequence*) te->directdata; - - if(set) { -// XXX select_single_seq(seq, 1); - } - else { - if(seq->flag & SELECT) - return(1); - } - return(0); -} - -static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - Sequence *seq, *p; - Editing *ed= seq_give_editing(scene, FALSE); - - seq= (Sequence*)te->directdata; - if(set==0) { - if(seq->flag & SELECT) - return(1); - return(0); - } - -// XXX select_single_seq(seq, 1); - p= ed->seqbasep->first; - while(p) { - if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { - p= p->next; - continue; - } - -// if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) -// XXX select_single_seq(p, 0); - p= p->next; - } - return(0); -} - -static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) -{ - wmKeyMapItem *kmi= te->directdata; - - if(set==0) { - if(kmi->flag & KMI_INACTIVE) return 0; - return 1; - } - else { - kmi->flag ^= KMI_INACTIVE; - } - return 0; -} - - -/* generic call for non-id data to make/check active in UI */ -/* Context can be NULL when set==0 */ -static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set) -{ - switch(tselem->type) { - case TSE_DEFGROUP: - return tree_element_active_defgroup(C, scene, te, tselem, set); - case TSE_BONE: - return tree_element_active_bone(C, scene, te, tselem, set); - case TSE_EBONE: - return tree_element_active_ebone(C, scene, te, tselem, set); - case TSE_MODIFIER: - return tree_element_active_modifier(C, te, tselem, set); - case TSE_LINKED_OB: - if(set) tree_element_set_active_object(C, scene, soops, te, set); - else if(tselem->id==(ID *)OBACT) return 1; - break; - case TSE_LINKED_PSYS: - return tree_element_active_psys(C, scene, te, tselem, set); - case TSE_POSE_BASE: - return tree_element_active_pose(C, scene, te, tselem, set); - case TSE_POSE_CHANNEL: - return tree_element_active_posechannel(C, scene, te, tselem, set); - case TSE_CONSTRAINT: - return tree_element_active_constraint(C, te, tselem, set); - case TSE_R_LAYER: - return tree_element_active_renderlayer(C, te, tselem, set); - case TSE_POSEGRP: - return tree_element_active_posegroup(C, scene, te, tselem, set); - case TSE_SEQUENCE: - return tree_element_active_sequence(te, tselem, set); - case TSE_SEQUENCE_DUP: - return tree_element_active_sequence_dup(scene, te, tselem, set); - case TSE_KEYMAP_ITEM: - return tree_element_active_keymap_item(C, te, tselem, set); - - } - return 0; -} - -static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - int openclose= 0; - - /* open close icon */ - if((te->flag & TE_ICONROW)==0) { // hidden icon, no open/close - if( mval[0]>te->xs && mval[0]xs+UI_UNIT_X) - openclose= 1; - } - - if(openclose) { - /* all below close/open? */ - if(extend) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - - } - - return 1; - } - /* name and first icon */ - else if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* always makes active object */ - if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP) - tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0)); - - if(tselem->type==0) { // the lib blocks - /* editmode? */ - if(te->idcode==ID_SCE) { - if(scene!=(Scene *)tselem->id) { - ED_screen_set_scene(C, (Scene *)tselem->id); - } - } - else if(te->idcode==ID_GR) { - Group *gr= (Group *)tselem->id; - GroupObject *gob; - - if(extend) { - int sel= BA_SELECT; - for(gob= gr->gobject.first; gob; gob= gob->next) { - if(gob->ob->flag & SELECT) { - sel= BA_DESELECT; - break; - } - } - - for(gob= gr->gobject.first; gob; gob= gob->next) { - ED_base_object_select(object_in_scene(gob->ob, scene), sel); - } - } - else { - scene_deselect_all(scene); - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->flag & SELECT) == 0) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) { - WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); - } else { // rest of types - tree_element_active(C, scene, soops, te, 1); - } - - } - else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0)); - - return 1; - } - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1; - } - return 0; -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int extend= RNA_boolean_get(op->ptr, "extend"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX) - return OPERATOR_CANCELLED; - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break; - } - - if(te) { - ED_undo_push(C, "Outliner click event"); - } - else { - short selecting= -1; - int row; - - /* get row number - 100 here is just a dummy value since we don't need the column */ - UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, - fmval[0], fmval[1], NULL, &row); - - /* select relevant row */ - outliner_select(soops, &soops->tree, &row, &selecting); - - soops->storeflag |= SO_TREESTORE_REDRAW; - - ED_undo_push(C, "Outliner selection event"); - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_activate(wmOperatorType *ot) -{ - ot->name= "Activate Item"; - ot->idname= "OUTLINER_OT_item_activate"; - ot->description= "Handle mouse clicks to activate/select items"; - - ot->invoke= outliner_item_activate; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation."); -} - -/* *********** */ - -static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* all below close/open? */ - if(all) { - tselem->flag &= ~TSE_CLOSED; - outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); - } - else { - if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, mval)) - return 1; - } - return 0; - -} - -/* event can enterkey, then it opens/closes */ -static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - int all= RNA_boolean_get(op->ptr, "all"); - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_openclose(C, soops, te, all, fmval)) - break; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_item_openclose(wmOperatorType *ot) -{ - ot->name= "Open/Close Item"; - ot->idname= "OUTLINER_OT_item_openclose"; - ot->description= "Toggle whether item under cursor is enabled or closed"; - - ot->invoke= outliner_item_openclose; - - ot->poll= ED_operator_outliner_active; - - RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items."); - -} - - -/* ********************************************** */ - -static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - TreeStoreElem *tselem= TREESTORE(te); - - /* name and first icon */ - if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { - - /* can't rename rna datablocks entries */ - if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) - ; - else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) - error("Cannot edit builtin name"); - else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) - error("Cannot edit sequence name"); - else if(tselem->id->lib) { - // XXX error_libdata(); - } - else if(te->idcode == ID_LI && te->parent) { - error("Cannot edit the path of an indirectly linked library"); - } - else { - tselem->flag |= TSE_TEXTBUT; - ED_region_tag_redraw(ar); - } - } - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1; - } - return 0; -} - -static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_item_rename(C, ar, soops, te, fmval)) break; - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_item_rename(wmOperatorType *ot) -{ - ot->name= "Rename Item"; - ot->idname= "OUTLINER_OT_item_rename"; - ot->description= "Rename item under cursor"; - - ot->invoke= outliner_item_rename; - - ot->poll= ED_operator_outliner_active; -} - -static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id) -{ - TreeElement *te, *tes; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0) { - if(tselem->id==id) return te; - /* only deeper on scene or object */ - if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) { - tes= outliner_find_id(soops, &te->subtree, id); - if(tes) return tes; - } - } - } - return NULL; -} - -static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *so= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - - TreeElement *te; - int xdelta, ytop; - - // TODO: make this get this info from context instead... - if (OBACT == NULL) - return OPERATOR_CANCELLED; - - 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); - if (ytop>0) ytop= 0; - - v2d->cur.ymax= (float)ytop; - v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - v2d->cur.xmin); - v2d->cur.xmin += xdelta; - v2d->cur.xmax += xdelta; - - so->storeflag |= SO_TREESTORE_REDRAW; - } - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_active(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Active"; - ot->idname= "OUTLINER_OT_show_active"; - ot->description= "Adjust the view so that the active Object is shown centered"; - - /* callbacks */ - ot->exec= outliner_show_active_exec; - ot->poll= ED_operator_outliner_active; -} - -/* tse is not in the treestore, we use its contents to find a match */ -static TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse) -{ - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem; - int a; - - if(tse->id==NULL) return NULL; - - /* check if 'tse' is in treestore */ - tselem= ts->data; - for(a=0; ausedelem; a++, tselem++) { - if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) { - if(tselem->id==tse->id) { - break; - } - } - } - if(tselem) - return outliner_find_tree_element(&soops->tree, a); - - return NULL; -} - - -/* Called to find an item based on name. - */ -#if 0 - -/* recursive helper for function below */ -static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeStoreElem *tselem= TREESTORE(te); - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) { - TreeElement *ten; - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty); - } - } - -} - -/* to retrieve coordinates with redrawing the entire tree */ -static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y; - int startx= 0; - - for(te= soops->tree.first; te; te= te->next) { - outliner_set_coordinates_element(soops, te, startx, &starty); - } -} - -/* find next element that has this name */ -static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound) -{ - TreeElement *te, *tes; - - for (te= lb->first; te; te= te->next) { - int found = outliner_filter_has_name(te, name, flags); - - if(found) { - /* name is right, but is element the previous one? */ - if (prev) { - if ((te != prev) && (*prevFound)) - return te; - if (te == prev) { - *prevFound = 1; - } - } - else - return te; - } - - tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound); - if(tes) return tes; - } - - /* nothing valid found */ - return NULL; -} - -static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) -{ - TreeElement *te= NULL; - TreeElement *last_find; - TreeStoreElem *tselem; - int ytop, xdelta, prevFound=0; - char name[32]; - - /* get last found tree-element based on stored search_tse */ - last_find= outliner_find_tse(soops, &soops->search_tse); - - /* determine which type of search to do */ - if (again && last_find) { - /* no popup panel - previous + user wanted to search for next after previous */ - BLI_strncpy(name, soops->search_string, sizeof(name)); - flags= soops->search_flags; - - /* try to find matching element */ - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - if (te==NULL) { - /* no more matches after previous, start from beginning again */ - prevFound= 1; - te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); - } - } - else { - /* pop up panel - no previous, or user didn't want search after previous */ - strcpy(name, ""); -// XXX if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) { -// te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound); -// } -// else return; /* XXX RETURN! XXX */ - } - - /* do selection and reveal */ - if (te) { - tselem= TREESTORE(te); - if (tselem) { - /* expand branches so that it will be visible, we need to get correct coordinates */ - if( outliner_open_back(soops, te)) - outliner_set_coordinates(ar, soops); - - /* deselect all visible, and select found element */ - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - tselem->flag |= TSE_SELECTED; - - /* make te->ys center of view */ - ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/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)); - - /* make te->xs ==> te->xend center of view */ - xdelta = (int)(te->xs - ar->v2d.cur.xmin); - ar->v2d.cur.xmin += xdelta; - ar->v2d.cur.xmax += xdelta; - - /* store selection */ - soops->search_tse= *tselem; - - BLI_strncpy(soops->search_string, name, 33); - soops->search_flags= flags; - - /* redraw */ - soops->storeflag |= SO_TREESTORE_REDRAW; - } - } - else { - /* no tree-element found */ - error("Not found: %s", name); - } -} -#endif - -/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/ -static int subtree_has_objects(SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) return 1; - if( subtree_has_objects(soops, &te->subtree)) return 1; - } - return 0; -} - -/* recursive helper function for Show Hierarchy operator */ -static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - /* open all object elems, close others */ - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED; - else tselem->flag &= ~TSE_CLOSED; - } - else if(te->idcode==ID_OB) { - if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED; - else tselem->flag |= TSE_CLOSED; - } - } - else tselem->flag |= TSE_CLOSED; - - if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree); - } -} - -/* show entire object level hierarchy */ -static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - - /* recursively open/close levels */ - tree_element_show_hierarchy(scene, soops, &soops->tree); - - ED_region_tag_redraw(ar); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Show Hierarchy"; - ot->idname= "OUTLINER_OT_show_hierarchy"; - ot->description= "Open all object entries and close all others"; - - /* callbacks */ - ot->exec= outliner_show_hierarchy_exec; - ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... - - /* no undo or registry, UI option */ -} - -void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { - tselem= TREESTORE(te); - - /* if we've encountered the right item, set its 'Outliner' selection status */ - if (*index == 0) { - /* this should be the last one, so no need to do anything with index */ - if ((te->flag & TE_ICONROW)==0) { - /* -1 value means toggle testing for now... */ - if (*selecting == -1) { - if (tselem->flag & TSE_SELECTED) - *selecting= 0; - else - *selecting= 1; - } - - /* set selection */ - if (*selecting) - tselem->flag |= TSE_SELECTED; - else - tselem->flag &= ~TSE_SELECTED; - } - } - else if ((tselem->flag & TSE_CLOSED)==0) { - /* Only try selecting sub-elements if we haven't hit the right element yet - * - * Hack warning: - * Index must be reduced before supplying it to the sub-tree to try to do - * selection, however, we need to increment it again for the next loop to - * function correctly - */ - (*index)--; - outliner_select(soops, &te->subtree, index, selecting); - (*index)++; - } - } -} - -/* ************ SELECTION OPERATIONS ********* */ - -static void set_operation_types(SpaceOops *soops, ListBase *lb, - int *scenelevel, - int *objectlevel, - int *idlevel, - int *datalevel) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type) { - if(*datalevel==0) - *datalevel= tselem->type; - else if(*datalevel!=tselem->type) - *datalevel= -1; - } - else { - int idcode= GS(tselem->id->name); - switch(idcode) { - case ID_SCE: - *scenelevel= 1; - break; - case ID_OB: - *objectlevel= 1; - break; - - case ID_ME: case ID_CU: case ID_MB: case ID_LT: - case ID_LA: case ID_AR: case ID_CA: - case ID_MA: case ID_TE: case ID_IP: case ID_IM: - case ID_SO: case ID_KE: case ID_WO: case ID_AC: - case ID_NLA: case ID_TXT: case ID_GR: - if(*idlevel==0) *idlevel= idcode; - else if(*idlevel!=idcode) *idlevel= -1; - break; - } - } - } - if((tselem->flag & TSE_CLOSED)==0) { - set_operation_types(soops, &te->subtree, - scenelevel, objectlevel, idlevel, datalevel); - } - } -} - -static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - Material **matar=NULL; - int a, totcol=0; - - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - totcol= ob->totcol; - matar= ob->mat; - } - else if( GS(tsep->id->name)==ID_ME) { - Mesh *me= (Mesh *)tsep->id; - totcol= me->totcol; - matar= me->mat; - } - else if( GS(tsep->id->name)==ID_CU) { - Curve *cu= (Curve *)tsep->id; - totcol= cu->totcol; - matar= cu->mat; - } - else if( GS(tsep->id->name)==ID_MB) { - MetaBall *mb= (MetaBall *)tsep->id; - totcol= mb->totcol; - matar= mb->mat; - } - - for(a=0; aindex && matar[a]) { - matar[a]->id.us--; - matar[a]= NULL; - } - } -} - -static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) -{ - MTex **mtex= NULL; - int a; - - if( GS(tsep->id->name)==ID_MA) { - Material *ma= (Material *)tsep->id; - mtex= ma->mtex; - } - else if( GS(tsep->id->name)==ID_LA) { - Lamp *la= (Lamp *)tsep->id; - mtex= la->mtex; - } - else if( GS(tsep->id->name)==ID_WO) { - World *wrld= (World *)tsep->id; - mtex= wrld->mtex; - } - else return; - - for(a=0; aindex && mtex[a]) { - if(mtex[a]->tex) { - mtex[a]->tex->id.us--; - mtex[a]->tex= NULL; - } - } - } -} - -static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - - if(tsep) { - if( GS(tsep->id->name)==ID_OB) { - Object *ob= (Object *)tsep->id; - ob->dup_group= NULL; - } - } - else { - unlink_group(group); - } -} - -static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0) { - TreeStoreElem *tsep= TREESTORE(te->parent); - operation_cb(C, scene, te, tsep, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb); - } - } -} - -/* */ - -static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) { - base->flag |= SELECT; - base->object->flag |= SELECT; - } -} - -static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); - if(base) { - base->flag &= ~SELECT; - base->object->flag &= ~SELECT; - } -} - -static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Base *base= (Base *)te->directdata; - - if(base==NULL) - base= object_in_scene((Object *)tselem->id, scene); - if(base) { - // check also library later - if(scene->obedit==base->object) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); - - ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); - te->directdata= NULL; - tselem->id= NULL; - } - -} - -static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { - tselem->id->lib= NULL; - tselem->id->flag= LIB_LOCAL; - new_id(NULL, tselem->id, NULL); - } -} - -static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) -{ - Group *group= (Group *)tselem->id; - GroupObject *gob; - Base *base; - - for(gob=group->gobject.first; gob; gob=gob->next) { - base= object_in_scene(gob->ob, scene); - if (base) { - base->object->flag |= SELECT; - base->flag |= SELECT; - } else { - /* link to scene */ - base= MEM_callocN( sizeof(Base), "add_base"); - BLI_addhead(&scene->base, base); - base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */ - gob->ob->flag |= SELECT; - base->flag = gob->ob->flag; - base->object= gob->ob; - id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */ - } - } -} - -static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, - void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==0 && te->idcode==ID_OB) { - // when objects selected in other scenes... dunno if that should be allowed - Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE); - if(scene_owner && scene_act != scene_owner) { - ED_screen_set_scene(C, scene_owner); - } - /* important to use 'scene_owner' not scene_act else deleting objects can crash. - * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the - * outliner isnt showing scenes: Visible Layer draw mode for eg. */ - operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb); - } - } -} - -/* ******************************************** */ - -static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - - if(event==1) - pchan->bone->flag |= BONE_SELECTED; - else if(event==2) - pchan->bone->flag &= ~BONE_SELECTED; - else if(event==3) { - pchan->bone->flag |= BONE_HIDDEN_P; - pchan->bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - pchan->bone->flag &= ~BONE_HIDDEN_P; -} - -static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - Bone *bone= (Bone *)te->directdata; - - if(event==1) - bone->flag |= BONE_SELECTED; - else if(event==2) - bone->flag &= ~BONE_SELECTED; - else if(event==3) { - bone->flag |= BONE_HIDDEN_P; - bone->flag &= ~BONE_SELECTED; - } - else if(event==4) - bone->flag &= ~BONE_HIDDEN_P; -} - -static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) -{ - EditBone *ebone= (EditBone *)te->directdata; - - if(event==1) - ebone->flag |= BONE_SELECTED; - else if(event==2) - ebone->flag &= ~BONE_SELECTED; - else if(event==3) { - ebone->flag |= BONE_HIDDEN_A; - ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; - } - else if(event==4) - ebone->flag &= ~BONE_HIDDEN_A; -} - -static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem)) -{ -// Sequence *seq= (Sequence*) te->directdata; - if(event==1) { -// XXX select_single_seq(seq, 1); - } -} - -static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, - void (*operation_cb)(int, TreeElement *, TreeStoreElem *)) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te=lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(tselem->flag & TSE_SELECTED) { - if(tselem->type==type) { - operation_cb(event, te, tselem); - } - } - if((tselem->flag & TSE_CLOSED)==0) { - outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb); - } - } -} - -static void outliner_del(bContext *C, Scene *scene, ARegion *UNUSED(ar), SpaceOops *soops) -{ - - if(soops->outlinevis==SO_SEQUENCE) - ;// del_seq(); - else { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(CTX_data_main(C), scene); - ED_undo_push(C, "Delete Objects"); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } -} - -/* **************************************** */ - -static EnumPropertyItem prop_object_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {4, "DELETE", 0, "Delete", ""}, - {6, "TOGVIS", 0, "Toggle Visible", ""}, - {7, "TOGSEL", 0, "Toggle Selectable", ""}, - {8, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_object_operation_exec(bContext *C, wmOperator *op) -{ - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - const char *str= NULL; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - Scene *sce= scene; // to be able to delete, scenes are set... - outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb); - if(scene != sce) { - ED_screen_set_scene(C, sce); - } - - str= "Select Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==2) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb); - str= "Deselect Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==4) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); - DAG_scene_sort(bmain, scene); - str= "Delete Objects"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - } - else if(event==5) { /* disabled, see above enum (ton) */ - outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb); - str= "Localized Objects"; - } - else if(event==6) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); - str= "Toggle Visibility"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); - } - else if(event==7) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); - str= "Toggle Selectability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - } - else if(event==8) { - outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); - str= "Toggle Renderability"; - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); - } - - ED_undo_push(C, str); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_object_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Object Operation"; - ot->idname= "OUTLINER_OT_object_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_object_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_group_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, - {3, "LINK", 0, "Link Group Objects to Scene", ""}, - {4, "TOGVIS", 0, "Toggle Visible", ""}, - {5, "TOGSEL", 0, "Toggle Selectable", ""}, - {6, "TOGREN", 0, "Toggle Renderable", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_group_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); - ED_undo_push(C, "Unlink group"); - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - else if(event==3) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); - ED_undo_push(C, "Link Group Objects to Scene"); - } - - - WM_event_add_notifier(C, NC_GROUP, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_group_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Group Operation"; - ot->idname= "OUTLINER_OT_group_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_group_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_id_op_types[] = { - {1, "UNLINK", 0, "Unlink", ""}, - {2, "LOCAL", 0, "Make Local", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_id_operation_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - event= RNA_enum_get(op->ptr, "type"); - - if(event==1) { - switch(idlevel) { - case ID_MA: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); - ED_undo_push(C, "Unlink material"); - break; - case ID_TE: - outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); - ED_undo_push(C, "Unlink texture"); - break; - default: - BKE_report(op->reports, RPT_WARNING, "Not Yet"); - } - } - else if(event==2) { - outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); - ED_undo_push(C, "Localized Data"); - } - - /* wrong notifier still... */ - WM_event_add_notifier(C, NC_OBJECT, NULL); - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_id_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner ID data Operation"; - ot->idname= "OUTLINER_OT_id_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_id_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", ""); -} - -/* **************************************** */ - -static EnumPropertyItem prop_data_op_types[] = { - {1, "SELECT", 0, "Select", ""}, - {2, "DESELECT", 0, "Deselect", ""}, - {3, "HIDE", 0, "Hide", ""}, - {4, "UNHIDE", 0, "Unhide", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static int outliner_data_operation_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - int event; - - /* check for invalid states */ - if (soops == NULL) - return OPERATOR_CANCELLED; - - 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) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "PoseChannel operation"); - } - } - else if(datalevel==TSE_BONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "Bone operation"); - } - } - else if(datalevel==TSE_EBONE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); - ED_undo_push(C, "EditBone operation"); - } - } - else if(datalevel==TSE_SEQUENCE) { - if(event>0) { - outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb); - } - } - - return OPERATOR_FINISHED; -} - - -void OUTLINER_OT_data_operation(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Outliner Data Operation"; - ot->idname= "OUTLINER_OT_data_operation"; - ot->description= ""; - - /* callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= outliner_data_operation_exec; - ot->poll= ED_operator_outliner_active; - - ot->flag= 0; - - ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", ""); -} - - -/* ******************** */ - - -static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2]) -{ - - if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { - int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; - TreeStoreElem *tselem= TREESTORE(te); - - /* select object that's clicked on and popup context menu */ - if (!(tselem->flag & TSE_SELECTED)) { - - if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) ) - outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); - - tselem->flag |= TSE_SELECTED; - /* redraw, same as outliner_select function */ - soops->storeflag |= SO_TREESTORE_REDRAW; - ED_region_tag_redraw(ar); - } - - set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); - - if(scenelevel) { - //if(objectlevel || datalevel || idlevel) error("Mixed selection"); - //else pupmenu("Scene Operations%t|Delete"); - } - else if(objectlevel) { - WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - else if(idlevel) { - if(idlevel==-1 || datalevel) error("Mixed selection"); - else { - if (idlevel==ID_GR) - WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL); - else - WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - else if(datalevel) { - if(datalevel==-1) error("Mixed selection"); - else { - WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); - } - } - - return 1; - } - - for(te= te->subtree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) - return 1; - } - return 0; -} - - -static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - SpaceOops *soops= CTX_wm_space_outliner(C); - TreeElement *te; - float fmval[2]; - - UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); - - for(te= soops->tree.first; te; te= te->next) { - if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break; - } - - return OPERATOR_FINISHED; -} - -/* Menu only! Calls other operators */ -void OUTLINER_OT_operation(wmOperatorType *ot) -{ - ot->name= "Execute Operation"; - ot->idname= "OUTLINER_OT_operation"; - ot->description= "Context menu for item operations"; - - ot->invoke= outliner_operation; - - ot->poll= ED_operator_outliner_active; -} - - - -/* ***************** ANIMATO OPERATIONS ********************************** */ -/* KeyingSet and Driver Creation - Helper functions */ - -/* specialised poll callback for these operators to work in Datablocks view only */ -static int ed_operator_outliner_datablocks_active(bContext *C) -{ - ScrArea *sa= CTX_wm_area(C); - if ((sa) && (sa->spacetype==SPACE_OUTLINER)) { - SpaceOops *so= CTX_wm_space_outliner(C); - return (so->outlinevis == SO_DATABLOCKS); - } - return 0; -} - - -/* Helper func to extract an RNA path from selected tree element - * NOTE: the caller must zero-out all values of the pointers that it passes here first, as - * this function does not do that yet - */ -static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, - ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode)) -{ - ListBase hierarchy = {NULL, NULL}; - LinkData *ld; - TreeElement *tem, *temnext, *temsub; - TreeStoreElem *tse, *tsenext; - PointerRNA *ptr, *nextptr; - PropertyRNA *prop; - char *newpath=NULL; - - /* optimise tricks: - * - Don't do anything if the selected item is a 'struct', but arrays are allowed - */ - if (tselem->type == TSE_RNA_STRUCT) - return; - - /* Overview of Algorithm: - * 1. Go up the chain of parents until we find the 'root', taking note of the - * levels encountered in reverse-order (i.e. items are added to the start of the list - * for more convenient looping later) - * 2. Walk down the chain, adding from the first ID encountered - * (which will become the 'ID' for the KeyingSet Path), and build a - * path as we step through the chain - */ - - /* step 1: flatten out hierarchy of parents into a flat chain */ - for (tem= te->parent; tem; tem= tem->parent) { - ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()"); - ld->data= tem; - BLI_addhead(&hierarchy, ld); - } - - /* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */ - for (ld= hierarchy.first; ld; ld= ld->next) { - /* get data */ - tem= (TreeElement *)ld->data; - tse= TREESTORE(tem); - ptr= &tem->rnaptr; - prop= tem->directdata; - - /* check if we're looking for first ID, or appending to path */ - if (*id) { - /* just 'append' property to path - * - to prevent memory leaks, we must write to newpath not path, then free old path + swap them - */ - if(tse->type == TSE_RNA_PROPERTY) { - if(RNA_property_type(prop) == PROP_POINTER) { - /* for pointer we just append property name */ - newpath= RNA_path_append(*path, ptr, prop, 0, NULL); - } - else if(RNA_property_type(prop) == PROP_COLLECTION) { - char buf[128], *name; - - temnext= (TreeElement*)(ld->next->data); - tsenext= TREESTORE(temnext); - - nextptr= &temnext->rnaptr; - name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf)); - - if(name) { - /* if possible, use name as a key in the path */ - newpath= RNA_path_append(*path, NULL, prop, 0, name); - - if(name != buf) - MEM_freeN(name); - } - else { - /* otherwise use index */ - int index= 0; - - for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++) - if(temsub == temnext) - break; - - newpath= RNA_path_append(*path, NULL, prop, index, NULL); - } - - ld= ld->next; - } - } - - if(newpath) { - if (*path) MEM_freeN(*path); - *path= newpath; - newpath= NULL; - } - } - else { - /* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */ - if (tse->type == TSE_RNA_STRUCT) { - /* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */ - if(RNA_struct_is_ID(ptr->type)) { - *id= (ID *)ptr->data; - - /* clear path */ - if(*path) { - MEM_freeN(*path); - path= NULL; - } - } - } - } - } - - /* step 3: if we've got an ID, add the current item to the path */ - if (*id) { - /* add the active property to the path */ - ptr= &te->rnaptr; - prop= te->directdata; - - /* array checks */ - if (tselem->type == TSE_RNA_ARRAY_ELEM) { - /* item is part of an array, so must set the array_index */ - *array_index= te->index; - } - else if (RNA_property_array_length(ptr, prop)) { - /* entire array was selected, so keyframe all */ - *flag |= KSP_FLAG_WHOLE_ARRAY; - } - - /* path */ - newpath= RNA_path_append(*path, NULL, prop, 0, NULL); - if (*path) MEM_freeN(*path); - *path= newpath; - } - - /* free temp data */ - BLI_freelistN(&hierarchy); -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - DRIVERS_EDITMODE_ADD = 0, - DRIVERS_EDITMODE_REMOVE, -} /*eDrivers_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; - int arraylen = 1; - - /* array checks */ - if (flag & KSP_FLAG_WHOLE_ARRAY) { - /* entire array was selected, so add drivers for all */ - arraylen= RNA_property_array_length(&te->rnaptr, te->directdata); - } - else - arraylen= array_index; - - /* we should do at least one step */ - if (arraylen == array_index) - arraylen++; - - /* for each array element we should affect, add driver */ - for (; array_index < arraylen; array_index++) { - /* action depends on mode */ - switch (mode) { - case DRIVERS_EDITMODE_ADD: - { - /* add a new driver with the information obtained (only if valid) */ - ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); - } - break; - case DRIVERS_EDITMODE_REMOVE: - { - /* remove driver matching the information obtained (only if valid) */ - ANIM_remove_driver(reports, id, path, array_index, dflags); - } - break; - } - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - - - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_drivers_editop(soops, &te->subtree, reports, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) -{ - /* api callbacks */ - ot->idname= "OUTLINER_OT_drivers_add_selected"; - ot->name= "Add Drivers for Selected"; - ot->description= "Add drivers to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_addsel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_drivers_delete_selected"; - ot->name= "Delete Drivers for Selected"; - ot->description= "Delete drivers assigned to selected items"; - - /* api callbacks */ - ot->exec= outliner_drivers_deletesel_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** KEYINGSET OPERATIONS *************** */ - -/* These operators are only available in databrowser mode for now, as - * they depend on having RNA paths and/or hierarchies available. - */ -enum { - KEYINGSET_EDITMODE_ADD = 0, - KEYINGSET_EDITMODE_REMOVE, -} /*eKeyingSet_EditModes*/; - -/* Utilities ---------------------------------- */ - -/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */ -// TODO: should this be an API func? -static KeyingSet *verify_active_keyingset(Scene *scene, short add) -{ - KeyingSet *ks= NULL; - - /* sanity check */ - if (scene == NULL) - return NULL; - - /* try to find one from scene */ - if (scene->active_keyingset > 0) - ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1); - - /* add if none found */ - // XXX the default settings have yet to evolve - if ((add) && (ks==NULL)) { - ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0); - scene->active_keyingset= BLI_countlist(&scene->keyingsets); - } - - return ks; -} - -/* Recursively iterate over tree, finding and working on selected items */ -static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for (te= tree->first; te; te=te->next) { - tselem= TREESTORE(te); - - /* if item is selected, perform operation */ - if (tselem->flag & TSE_SELECTED) { - ID *id= NULL; - char *path= NULL; - int array_index= 0; - short flag= 0; - short groupmode= KSP_GROUP_KSNAME; - - /* check if RNA-property described by this selected element is an animateable prop */ - if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { - /* get id + path + index info from the selected element */ - tree_element_to_path(soops, te, tselem, - &id, &path, &array_index, &flag, &groupmode); - } - - /* only if ID and path were set, should we perform any actions */ - if (id && path) { - /* action depends on mode */ - switch (mode) { - case KEYINGSET_EDITMODE_ADD: - { - /* add a new path with the information obtained (only if valid) */ - // TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name - BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode); - ks->active_path= BLI_countlist(&ks->paths); - } - break; - case KEYINGSET_EDITMODE_REMOVE: - { - /* find the relevant path, then remove it from the KeyingSet */ - KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode); - - if (ksp) { - /* free path's data */ - BKE_keyingset_free_path(ks, ksp); - - ks->active_path= 0; - } - } - break; - } - - /* free path, since it had to be generated */ - MEM_freeN(path); - } - } - - /* go over sub-tree */ - if ((tselem->flag & TSE_CLOSED)==0) - do_outliner_keyingset_editop(soops, ks, &te->subtree, mode); - } -} - -/* Add Operator ---------------------------------- */ - -static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (ks == NULL) { - BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set"); - return OPERATOR_CANCELLED; - } - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_add_selected"; - ot->name= "Keying Set Add Selected"; - ot->description= "Add selected items (blue-grey rows) to active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_additems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - - -/* Remove Operator ---------------------------------- */ - -static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op)) -{ - SpaceOops *soutliner= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - KeyingSet *ks= verify_active_keyingset(scene, 1); - - /* check for invalid states */ - if (soutliner == NULL) - return OPERATOR_CANCELLED; - - /* recursively go into tree, adding selected items */ - do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE); - - /* send notifiers */ - WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); - - return OPERATOR_FINISHED; -} - -void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot) -{ - /* identifiers */ - ot->idname= "OUTLINER_OT_keyingset_remove_selected"; - ot->name= "Keying Set Remove Selected"; - ot->description = "Remove selected items (blue-grey rows) from active Keying Set"; - - /* api callbacks */ - ot->exec= outliner_keyingset_removeitems_exec; - ot->poll= ed_operator_outliner_datablocks_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; -} - -/* ***************** DRAW *************** */ - -/* make function calls a bit compacter */ -struct DrawIconArg { - uiBlock *block; - ID *id; - int xmax, x, y; - float alpha; -}; - -static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon) -{ - /* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */ - if(arg->x >= arg->xmax) - UI_icon_draw(arg->x, arg->y, icon); - else { - /* XXX investigate: button placement of icons is way different than UI_icon_draw? */ - float ufac= UI_UNIT_X/20.0f; - uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : ""); - - if(arg->id) - uiButSetDragID(but, arg->id); - } - -} - -static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha) -{ - struct DrawIconArg arg; - - /* make function calls a bit compacter */ - arg.block= block; - arg.id= tselem->id; - arg.xmax= xmax; - arg.x= x; - arg.y= y; - arg.alpha= alpha; - - if(tselem->type) { - switch( tselem->type) { - case TSE_ANIM_DATA: - UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx - case TSE_NLA: - UI_icon_draw(x, y, ICON_NLA); break; - case TSE_NLA_TRACK: - UI_icon_draw(x, y, ICON_NLA); break; // XXX - case TSE_NLA_ACTION: - UI_icon_draw(x, y, ICON_ACTION); break; - case TSE_DEFGROUP_BASE: - UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; - case TSE_BONE: - case TSE_EBONE: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_CONSTRAINT_BASE: - UI_icon_draw(x, y, ICON_CONSTRAINT); break; - case TSE_MODIFIER_BASE: - UI_icon_draw(x, y, ICON_MODIFIER); break; - case TSE_LINKED_OB: - UI_icon_draw(x, y, ICON_OBJECT_DATA); break; - case TSE_LINKED_PSYS: - UI_icon_draw(x, y, ICON_PARTICLES); break; - case TSE_MODIFIER: - { - Object *ob= (Object *)tselem->id; - ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); - switch(md->type) { - case eModifierType_Subsurf: - UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; - case eModifierType_Armature: - UI_icon_draw(x, y, ICON_MOD_ARMATURE); break; - case eModifierType_Lattice: - UI_icon_draw(x, y, ICON_MOD_LATTICE); break; - case eModifierType_Curve: - UI_icon_draw(x, y, ICON_MOD_CURVE); break; - case eModifierType_Build: - UI_icon_draw(x, y, ICON_MOD_BUILD); break; - case eModifierType_Mirror: - UI_icon_draw(x, y, ICON_MOD_MIRROR); break; - case eModifierType_Decimate: - UI_icon_draw(x, y, ICON_MOD_DECIM); break; - case eModifierType_Wave: - UI_icon_draw(x, y, ICON_MOD_WAVE); break; - case eModifierType_Hook: - UI_icon_draw(x, y, ICON_HOOK); break; - case eModifierType_Softbody: - UI_icon_draw(x, y, ICON_MOD_SOFT); break; - case eModifierType_Boolean: - UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break; - case eModifierType_ParticleSystem: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_ParticleInstance: - UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; - case eModifierType_EdgeSplit: - UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break; - case eModifierType_Array: - UI_icon_draw(x, y, ICON_MOD_ARRAY); break; - case eModifierType_UVProject: - UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break; - case eModifierType_Displace: - UI_icon_draw(x, y, ICON_MOD_DISPLACE); break; - case eModifierType_Shrinkwrap: - UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break; - case eModifierType_Cast: - UI_icon_draw(x, y, ICON_MOD_CAST); break; - case eModifierType_MeshDeform: - UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; - case eModifierType_Bevel: - UI_icon_draw(x, y, ICON_MOD_BEVEL); break; - case eModifierType_Smooth: - UI_icon_draw(x, y, ICON_MOD_SMOOTH); break; - case eModifierType_SimpleDeform: - UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break; - case eModifierType_Mask: - UI_icon_draw(x, y, ICON_MOD_MASK); break; - case eModifierType_Cloth: - UI_icon_draw(x, y, ICON_MOD_CLOTH); break; - case eModifierType_Explode: - UI_icon_draw(x, y, ICON_MOD_EXPLODE); break; - case eModifierType_Collision: - UI_icon_draw(x, y, ICON_MOD_PHYSICS); break; - case eModifierType_Fluidsim: - UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break; - case eModifierType_Multires: - UI_icon_draw(x, y, ICON_MOD_MULTIRES); break; - case eModifierType_Smoke: - UI_icon_draw(x, y, ICON_MOD_SMOKE); break; - case eModifierType_Solidify: - UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break; - case eModifierType_Screw: - UI_icon_draw(x, y, ICON_MOD_SCREW); break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - break; - } - case TSE_SCRIPT_BASE: - UI_icon_draw(x, y, ICON_TEXT); break; - case TSE_POSE_BASE: - UI_icon_draw(x, y, ICON_ARMATURE_DATA); break; - case TSE_POSE_CHANNEL: - UI_icon_draw(x, y, ICON_BONE_DATA); break; - case TSE_PROXY: - UI_icon_draw(x, y, ICON_GHOST); break; - case TSE_R_LAYER_BASE: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_R_LAYER: - UI_icon_draw(x, y, ICON_RENDERLAYERS); break; - case TSE_LINKED_LAMP: - UI_icon_draw(x, y, ICON_LAMP_DATA); break; - case TSE_LINKED_MAT: - UI_icon_draw(x, y, ICON_MATERIAL_DATA); break; - case TSE_POSEGRP_BASE: - UI_icon_draw(x, y, ICON_VERTEXSEL); break; - case TSE_SEQUENCE: - if(te->idcode==SEQ_MOVIE) - UI_icon_draw(x, y, ICON_SEQUENCE); - else if(te->idcode==SEQ_META) - UI_icon_draw(x, y, ICON_DOT); - else if(te->idcode==SEQ_SCENE) - UI_icon_draw(x, y, ICON_SCENE); - else if(te->idcode==SEQ_SOUND) - UI_icon_draw(x, y, ICON_SOUND); - else if(te->idcode==SEQ_IMAGE) - UI_icon_draw(x, y, ICON_IMAGE_COL); - else - UI_icon_draw(x, y, ICON_PARTICLES); - break; - case TSE_SEQ_STRIP: - UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT); - break; - case TSE_SEQUENCE_DUP: - UI_icon_draw(x, y, ICON_OBJECT_DATA); - break; - case TSE_RNA_STRUCT: - if(RNA_struct_is_ID(te->rnaptr.type)) { - arg.id= (ID *)te->rnaptr.data; - tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type)); - } - else - UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type)); - break; - default: - UI_icon_draw(x, y, ICON_DOT); break; - } - } - else if (GS(tselem->id->name) == ID_OB) { - Object *ob= (Object *)tselem->id; - switch (ob->type) { - case OB_LAMP: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break; - case OB_MESH: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break; - case OB_CAMERA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break; - case OB_CURVE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break; - case OB_MBALL: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break; - case OB_LATTICE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break; - case OB_ARMATURE: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break; - case OB_FONT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; - case OB_SURF: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; - case OB_EMPTY: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; - - } - } - else { - switch( GS(tselem->id->name)) { - case ID_SCE: - tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; - case ID_ME: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break; - case ID_CU: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break; - case ID_MB: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break; - case ID_LT: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break; - case ID_LA: - { - Lamp *la= (Lamp *)tselem->id; - - switch(la->type) { - case LA_LOCAL: - tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; - case LA_SUN: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break; - case LA_SPOT: - tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break; - case LA_HEMI: - tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break; - case LA_AREA: - tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break; - default: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break; - } - break; - } - case ID_MA: - tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break; - case ID_TE: - tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; - case ID_IM: - tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; - case ID_SO: - tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break; - case ID_AR: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; - case ID_CA: - tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break; - case ID_KE: - tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break; - case ID_WO: - tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break; - case ID_AC: - tselem_draw_icon_uibut(&arg, ICON_ACTION); break; - case ID_NLA: - tselem_draw_icon_uibut(&arg, ICON_NLA); break; - case ID_TXT: - tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break; - case ID_GR: - tselem_draw_icon_uibut(&arg, ICON_GROUP); break; - case ID_LI: - tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; - } - } -} - -static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys) -{ - TreeElement *te; - TreeStoreElem *tselem; - int active; - - for(te= lb->first; te; te= te->next) { - - /* exit drawing early */ - if((*offsx) - UI_UNIT_X > xmax) - break; - - tselem= TREESTORE(te); - - /* object hierarchy always, further constrained on level */ - if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) { - - /* active blocks get white circle */ - if(tselem->type==0) { - if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id); - else if(scene->obedit && scene->obedit->data==tselem->id) active= 1; // XXX use context? - else active= tree_element_active(C, scene, soops, te, 0); - } - else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0); - - if(active) { - float ufac= UI_UNIT_X/20.0f; - - uiSetRoundBox(15); - glColor4ub(255, 255, 255, 100); - uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables */ - } - - tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f); - te->xs= (float)*offsx; - te->ys= (float)ys; - te->xend= (short)*offsx+UI_UNIT_X; - te->flag |= TE_ICONROW; // for click - - (*offsx) += UI_UNIT_X; - } - - /* this tree element always has same amount of branches, so dont draw */ - if(tselem->type!=TSE_R_LAYER) - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys); - } - -} - -/* closed tree element */ -static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)(*starty); - - for(ten= te->subtree.first; ten; ten= ten->next) { - outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty); - } -} - - -static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty) -{ - TreeElement *ten; - TreeStoreElem *tselem; - float ufac= UI_UNIT_X/20.0f; - int offsx= 0, active=0; // active=1 active obj, else active data - - tselem= TREESTORE(te); - - if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) { - int xmax= ar->v2d.cur.xmax; - - /* icons can be ui buts, we dont want it to overlap with restrict */ - if((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - xmax-= OL_TOGW+UI_UNIT_X; - - glEnable(GL_BLEND); - - /* colors for active/selected data */ - if(tselem->type==0) { - if(te->idcode==ID_SCE) { - if(tselem->id == (ID *)scene) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - } - else if(te->idcode==ID_GR) { - Group *gr = (Group *)tselem->id; - - if(group_select_flag(gr)) { - char col[4]; - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - glColor4ubv((GLubyte *)col); - - active= 2; - } - } - else if(te->idcode==ID_OB) { - Object *ob= (Object *)tselem->id; - - if(ob==OBACT || (ob->flag & SELECT)) { - char col[4]= {0, 0, 0, 0}; - - /* outliner active ob: always white text, circle color now similar to view3d */ - - active= 2; /* means it draws a color circle */ - if(ob==OBACT) { - if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col); - col[3]= 100; - } - - active= 1; /* means it draws white text */ - } - else if(ob->flag & SELECT) { - UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); - col[3]= 100; - } - - glColor4ubv((GLubyte *)col); - } - - } - else if(scene->obedit && scene->obedit->data==tselem->id) { - glColor4ub(255, 255, 255, 100); - active= 2; - } - else { - if(tree_element_active(C, scene, soops, te, 0)) { - glColor4ub(220, 220, 255, 100); - active= 2; - } - } - } - else { - if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2; - glColor4ub(220, 220, 255, 100); - } - - /* active circle */ - if(active) { - uiSetRoundBox(15); - uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); - glEnable(GL_BLEND); /* roundbox disables it */ - - te->flag |= TE_ACTIVE; // for lookup in display hierarchies - } - - /* open/close icon, only when sublevels, except for scene */ - if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) { - int icon_x; - if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE)) - icon_x = startx; - else - icon_x = startx+5*ufac; - - // icons a bit higher - if(tselem->flag & TSE_CLOSED) - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT); - else - UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN); - } - offsx+= UI_UNIT_X; - - /* datatype icon */ - - if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { - // icons a bit higher - tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); - - offsx+= UI_UNIT_X; - } - else - offsx+= 2*ufac; - - if(tselem->type==0 && tselem->id->lib) { - glPixelTransferf(GL_ALPHA_SCALE, 0.5f); - if(tselem->id->flag & LIB_INDIRECT) - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT); - else - UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT); - glPixelTransferf(GL_ALPHA_SCALE, 1.0f); - offsx+= UI_UNIT_X; - } - glDisable(GL_BLEND); - - /* name */ - if(active==1) UI_ThemeColor(TH_TEXT_HI); - else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f); - else UI_ThemeColor(TH_TEXT); - - UI_DrawString(startx+offsx, *starty+5*ufac, te->name); - - offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name)); - - /* closed item, we draw the icons, not when it's a scene, or master-server list though */ - if(tselem->flag & TSE_CLOSED) { - 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 dont draw */ - int tempx= startx+offsx; - - // divider - UI_ThemeColorShade(TH_BACK, -40); - glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4); - - glEnable(GL_BLEND); - glPixelTransferf(GL_ALPHA_SCALE, 0.5); - - outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2); - - glPixelTransferf(GL_ALPHA_SCALE, 1.0); - glDisable(GL_BLEND); - } - } - } - } - /* store coord and continue, we need coordinates for elements outside view too */ - te->xs= (float)startx; - te->ys= (float)*starty; - te->xend= startx+offsx; - - if((tselem->flag & TSE_CLOSED)==0) { - *starty-= UI_UNIT_Y; - - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty); - } - else { - for(ten= te->subtree.first; ten; ten= ten->next) - outliner_set_coord_tree_element(soops, te, startx, starty); - - *starty-= UI_UNIT_Y; - } -} - -static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - int y1, y2; - - if(lb->first==NULL) return; - - y1=y2= *starty; /* for vertical lines between objects */ - for(te=lb->first; te; te= te->next) { - y2= *starty; - tselem= TREESTORE(te); - - /* horizontal line? */ - if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE)) - glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1); - - *starty-= UI_UNIT_Y; - - if((tselem->flag & TSE_CLOSED)==0) - outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty); - } - - /* vertical line */ - te= lb->last; - if(te->parent || lb->first!=lb->last) { - tselem= TREESTORE(te); - if(tselem->type==0 && te->idcode==ID_OB) { - - glRecti(startx, y1+UI_UNIT_Y, startx+1, y2); - } - } -} - -static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if((tselem->flag & TSE_CLOSED)==0) - if(tselem->type == TSE_RNA_STRUCT) - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1); - - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) { - outliner_draw_struct_marks(ar, soops, &te->subtree, starty); - if(tselem->type == TSE_RNA_STRUCT) - fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y); - } - } -} - -static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) -{ - TreeElement *te; - TreeStoreElem *tselem; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - - /* selection status */ - if(tselem->flag & TSE_SELECTED) { - glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1); - } - *starty-= UI_UNIT_Y; - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty); - } -} - - -static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops) -{ - TreeElement *te; - int starty, startx; - float col[4]; - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once - - if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* struct marks */ - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - //UI_ThemeColorShade(TH_BACK, -20); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_struct_marks(ar, soops, &soops->tree, &starty); - } - - /* always draw selection fill before hierarchy */ - UI_GetThemeColor3fv(TH_BACK, col); - glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - outliner_draw_selection(ar, soops, &soops->tree, &starty); - - // grey hierarchy lines - UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; - startx= 6; - outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); - - // items themselves - starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; - startx= 0; - for(te= soops->tree.first; te; te= te->next) { - outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty); - } -} - - -static void outliner_back(ARegion *ar) -{ - int ystart; - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } -} - -static void outliner_draw_restrictcols(ARegion *ar) -{ - int ystart; - - /* background underneath */ - UI_ThemeColor(TH_BACK); - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax); - - UI_ThemeColorShade(TH_BACK, 6); - ystart= (int)ar->v2d.tot.ymax; - ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; - - while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { - glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y); - ystart-= 2*UI_UNIT_Y; - } - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* view */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); - - /* render */ - fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymax, - ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, - ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); -} - -static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* deselect objects that are invisible */ - if (ob->restrictflag & OB_RESTRICT_VIEW) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2) -{ - Scene *scene = (Scene *)poin; - Object *ob = (Object *)poin2; - - if(!common_restrict_check(C, ob)) return; - - /* if select restriction has just been turned on */ - if (ob->restrictflag & OB_RESTRICT_SELECT) { - /* Ouch! There is no backwards pointer from Object to Base, - * so have to do loop to find it. */ - ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); - } - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - -} - -static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin); -} - -static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)) -{ - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin); -} - -static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Object *ob = (Object *)poin2; - - DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); -} - -static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - Bone *bone= (Bone *)poin2; - if(bone && (bone->flag & BONE_HIDDEN_P)) - bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2) -{ - EditBone *ebone= (EditBone *)poin2; - if(ebone && (ebone->flag & BONE_HIDDEN_A)) - ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); - - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); -} - -static int group_restrict_flag(Group *gr, int flag) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) { - if((gob->ob->restrictflag & flag) == 0) - return 0; - } - - return 1; -} - -static int group_select_flag(Group *gr) -{ - GroupObject *gob; - - for(gob= gr->gobject.first; gob; gob= gob->next) - if((gob->ob->flag & SELECT)) - return 1; - - return 0; -} - -static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) -{ - Scene *scene = (Scene *)poin; - GroupObject *gob; - Group *gr = (Group *)poin2; - - if(group_restrict_flag(gr, flag)) { - for(gob= gr->gobject.first; gob; gob= gob->next) { - gob->ob->restrictflag &= ~flag; - - if(flag==OB_RESTRICT_VIEW) - if(gob->ob->flag & SELECT) - ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT); - } - } - else { - for(gob= gr->gobject.first; gob; gob= gob->next) { - /* 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(object_in_scene(gob->ob, scene), BA_SELECT); - } - } - } -} - -static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT); - WM_event_add_notifier(C, NC_GROUP, NULL); -} -static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2) -{ - restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER); - WM_event_add_notifier(C, NC_GROUP, NULL); -} - - -static void namebutton_cb(bContext *C, void *tsep, char *oldname) -{ - SpaceOops *soops= CTX_wm_space_outliner(C); - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); - TreeStore *ts= soops->treestore; - TreeStoreElem *tselem= tsep; - - if(ts && tselem) { - TreeElement *te= outliner_find_tse(soops, tselem); - - if(tselem->type==0) { - test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort - - switch(GS(tselem->id->name)) { - case ID_MA: - WM_event_add_notifier(C, NC_MATERIAL, NULL); break; - case ID_TE: - WM_event_add_notifier(C, NC_TEXTURE, NULL); break; - case ID_IM: - WM_event_add_notifier(C, NC_IMAGE, NULL); break; - case ID_SCE: - WM_event_add_notifier(C, NC_SCENE, NULL); break; - default: - WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; - } - /* Check the library target exists */ - if (te->idcode == ID_LI) { - char expanded[FILE_MAXDIR + FILE_MAXFILE]; - BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); - BLI_path_abs(expanded, G.main->name); - if (!BLI_exists(expanded)) { - error("This path does not exist, correct this before saving"); - } - } - } - else { - switch(tselem->type) { - case TSE_DEFGROUP: - defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object - break; - case TSE_NLA_ACTION: - test_idbutton(tselem->id->name+2); - break; - case TSE_EBONE: - { - bArmature *arm= (bArmature *)tselem->id; - if(arm->edbo) { - EditBone *ebone= te->directdata; - char newname[sizeof(ebone->name)]; - - /* restore bone name */ - BLI_strncpy(newname, ebone->name, sizeof(ebone->name)); - BLI_strncpy(ebone->name, oldname, sizeof(ebone->name)); - ED_armature_bone_rename(obedit->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT); - } - } - break; - - case TSE_BONE: - { - Bone *bone= te->directdata; - Object *ob; - char newname[sizeof(bone->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, bone->name, sizeof(bone->name)); - BLI_strncpy(bone->name, oldname, sizeof(bone->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSE_CHANNEL: - { - bPoseChannel *pchan= te->directdata; - Object *ob; - char newname[sizeof(pchan->name)]; - - // always make current object active - tree_element_set_active_object(C, scene, soops, te, 1); - ob= OBACT; - - /* restore bone name */ - BLI_strncpy(newname, pchan->name, sizeof(pchan->name)); - BLI_strncpy(pchan->name, oldname, sizeof(pchan->name)); - ED_armature_bone_rename(ob->data, oldname, newname); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_POSEGRP: - { - Object *ob= (Object *)tselem->id; // id = object - bActionGroup *grp= te->directdata; - - BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name)); - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); - } - break; - case TSE_R_LAYER: - break; - } - } - tselem->flag &= ~TSE_TEXTBUT; - } -} - -static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - Object *ob = NULL; - Group *gr = NULL; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - /* objects have toggle-able restriction flags */ - if(tselem->type==0 && te->idcode==ID_OB) { - PointerRNA ptr; - - ob = (Object *)tselem->id; - RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr); - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_view_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_select", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob); - - bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, - &ptr, "hide_render", -1, 0, 0, -1, -1, NULL); - uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob); - - uiBlockSetEmboss(block, UI_EMBOSS); - - } - if(tselem->type==0 && te->idcode==ID_GR){ - int restrict_bool; - gr = (Group *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr); - - restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER); - bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - /* scene render layers and passes have toggle-able flags too! */ - else if(tselem->type==TSE_R_LAYER) { - uiBlockSetEmboss(block, UI_EMBOSSN); - - bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_R_PASS) { - int *layflag= te->directdata; - int passflag= 1<nr; - - uiBlockSetEmboss(block, UI_EMBOSSN); - - - bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - layflag++; /* is lay_xor */ - if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT)) - bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined"); - uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); - - uiBlockSetEmboss(block, UI_EMBOSS); - } - else if(tselem->type==TSE_MODIFIER) { - ModifierData *md= (ModifierData *)te->directdata; - ob = (Object *)tselem->id; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - - bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability"); - uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); - } - else if(tselem->type==TSE_POSE_CHANNEL) { - bPoseChannel *pchan= (bPoseChannel *)te->directdata; - Bone *bone = pchan->bone; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL); - } - else if(tselem->type==TSE_EBONE) { - EditBone *ebone= (EditBone *)te->directdata; - - uiBlockSetEmboss(block, UI_EMBOSSN); - bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone); - - bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, - (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); - uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree); - } -} - -static void outliner_draw_rnacols(ARegion *ar, int sizex) -{ - View2D *v2d= &ar->v2d; - - float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT; - if(minytot.ymin) miny = v2d->tot.ymin; - - UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); - - /* draw column separator lines */ - fdrawline((float)sizex, - v2d->cur.ymax, - (float)sizex, - miny); - - fdrawline((float)sizex+OL_RNA_COL_SIZEX, - v2d->cur.ymax, - (float)sizex+OL_RNA_COL_SIZEX, - miny); -} - -static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - PointerRNA *ptr; - PropertyRNA *prop; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - if(tselem->type == TSE_RNA_PROPERTY) { - ptr= &te->rnaptr; - prop= te->directdata; - - if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0)) - uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - else if(tselem->type == TSE_RNA_ARRAY_ELEM) { - ptr= &te->rnaptr; - prop= te->directdata; - - uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree); - } -} - -static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2) -{ - wmOperatorType *ot= arg2; - wmKeyMapItem *kmi= arg_kmi; - - if(ot) - BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME); -} - -static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) -{ - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - - if(BLI_strcasestr(ot->idname, str)) { - char name[OP_MAX_TYPENAME]; - - /* display name for menu */ - WM_operator_py_idname(name, ot->idname); - - if(0==uiSearchItemAdd(items, name, ot, 0)) - break; - } - } -} - -/* operator Search browse menu, open */ -static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) -{ - static char search[OP_MAX_TYPENAME]; - wmEvent event; - wmWindow *win= CTX_wm_window(C); - wmKeyMapItem *kmi= arg_kmi; - wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0); - uiBlock *block; - uiBut *but; - - /* clear initial search string, then all items show */ - search[0]= 0; - - block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); - - /* fake button, it holds space for search items */ - uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, ""); - uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); - - uiBoundsBlock(block, 6); - uiBlockSetDirection(block, UI_DOWN); - uiEndBlock(C, block); - - event= *(win->eventstate); /* XXX huh huh? make api call */ - event.type= EVT_BUT_OPEN; - event.val= KM_PRESS; - event.customdata= but; - event.customdatafree= FALSE; - wm_event_add(win, &event); - - return block; -} - -#define OL_KM_KEYBOARD 0 -#define OL_KM_MOUSE 1 -#define OL_KM_TWEAK 2 -#define OL_KM_SPECIALS 3 - -static short keymap_menu_type(short type) -{ - if(ISKEYBOARD(type)) return OL_KM_KEYBOARD; - if(ISTWEAK(type)) return OL_KM_TWEAK; - if(ISMOUSE(type)) return OL_KM_MOUSE; -// return OL_KM_SPECIALS; - return 0; -} - -static const char *keymap_type_menu(void) -{ - static const char string[]= - "Event Type%t" - "|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD) - "|Mouse%x" STRINGIFY(OL_KM_MOUSE) - "|Tweak%x" STRINGIFY(OL_KM_TWEAK) -// "|Specials%x" STRINGIFY(OL_KM_SPECIALS) - ; - - return string; -} - -static const char *keymap_mouse_menu(void) -{ - static const char string[]= - "Mouse Event%t" - "|Left Mouse%x" STRINGIFY(LEFTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) - "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) - "|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE) - "|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE) - "|Action Mouse%x" STRINGIFY(ACTIONMOUSE) - "|Select Mouse%x" STRINGIFY(SELECTMOUSE) - "|Mouse Move%x" STRINGIFY(MOUSEMOVE) - "|Wheel Up%x" STRINGIFY(WHEELUPMOUSE) - "|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE) - "|Wheel In%x" STRINGIFY(WHEELINMOUSE) - "|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE) - "|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN) - "|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM) - "|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE) - ; - - return string; -} - -static const char *keymap_tweak_menu(void) -{ - static const char string[]= - "Tweak Event%t" - "|Left Mouse%x" STRINGIFY(EVT_TWEAK_L) - "|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M) - "|Right Mouse%x" STRINGIFY(EVT_TWEAK_R) - "|Action Mouse%x" STRINGIFY(EVT_TWEAK_A) - "|Select Mouse%x" STRINGIFY(EVT_TWEAK_S) - ; - - return string; -} - -static const char *keymap_tweak_dir_menu(void) -{ - static const char string[]= - "Tweak Direction%t" - "|Any%x" STRINGIFY(KM_ANY) - "|North%x" STRINGIFY(EVT_GESTURE_N) - "|North-East%x" STRINGIFY(EVT_GESTURE_NE) - "|East%x" STRINGIFY(EVT_GESTURE_E) - "|Sout-East%x" STRINGIFY(EVT_GESTURE_SE) - "|South%x" STRINGIFY(EVT_GESTURE_S) - "|South-West%x" STRINGIFY(EVT_GESTURE_SW) - "|West%x" STRINGIFY(EVT_GESTURE_W) - "|North-West%x" STRINGIFY(EVT_GESTURE_NW) - ; - - return string; -} - - -static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) -{ - wmKeyMapItem *kmi= kmi_v; - short maptype= keymap_menu_type(kmi->type); - - if(maptype!=kmi->maptype) { - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - kmi->type= AKEY; - kmi->val= KM_PRESS; - break; - case OL_KM_MOUSE: - kmi->type= LEFTMOUSE; - kmi->val= KM_PRESS; - break; - case OL_KM_TWEAK: - kmi->type= EVT_TWEAK_L; - kmi->val= KM_ANY; - break; - case OL_KM_SPECIALS: - kmi->type= AKEY; - kmi->val= KM_PRESS; - } - ED_region_tag_redraw(CTX_wm_region(C)); - } -} - -static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - TreeElement *te; - TreeStoreElem *tselem; - - uiBlockSetEmboss(block, UI_EMBOSST); - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - uiBut *but; - const char *str; - int xstart= 240; - int butw1= UI_UNIT_X; /* operator */ - int butw2= 90; /* event type, menus */ - int butw3= 43; /* modifiers */ - - if(tselem->type == TSE_KEYMAP_ITEM) { - wmKeyMapItem *kmi= te->directdata; - - /* modal map? */ - if(kmi->propvalue); - else { - uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator"); - } - xstart+= butw1+10; - - /* map type button */ - kmi->maptype= keymap_menu_type(kmi->type); - - str= keymap_type_menu(); - but= uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type"); - uiButSetFunc(but, keymap_type_cb, kmi, NULL); - xstart+= butw2+5; - - /* edit actual event */ - switch(kmi->maptype) { - case OL_KM_KEYBOARD: - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code"); - xstart+= butw2+5; - break; - case OL_KM_MOUSE: - str= keymap_mouse_menu(); - uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Mouse button"); - xstart+= butw2+5; - break; - case OL_KM_TWEAK: - str= keymap_tweak_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Tweak gesture"); - xstart+= butw2+5; - str= keymap_tweak_dir_menu(); - uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0, "Tweak gesture direction"); - xstart+= butw2+5; - break; - } - - /* modifiers */ - uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5; - uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3; - xstart+= 5; - uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code"); - xstart+= butw3+5; - - /* rna property */ - if(kmi->ptr && kmi->ptr->data) { - uiDefBut(block, LABEL, 0, "(RNA property)", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2; - } - - (void)xstart; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree); - } -} - - -static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) -{ - uiBut *bt; - TreeElement *te; - TreeStoreElem *tselem; - int spx, dx, len; - - for(te= lb->first; te; te= te->next) { - tselem= TREESTORE(te); - if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { - - if(tselem->flag & TSE_TEXTBUT) { - - /* If we add support to rename Sequence. - * need change this. - */ - if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature - - if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name); - else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name); - else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name); - else len= MAX_ID_NAME-2; - - - dx= (int)UI_GetStringWidth(te->name); - if(dx<100) dx= 100; - spx=te->xs+2*UI_UNIT_X-4; - if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10; - - bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, ""); - uiButSetRenameFunc(bt, namebutton_cb, tselem); - - /* returns false if button got removed */ - if( 0 == uiButActiveOnly(C, block, bt) ) - tselem->flag &= ~TSE_TEXTBUT; - } - } - - if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree); - } -} - -void draw_outliner(const bContext *C) -{ - Main *mainvar= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - SpaceOops *soops= CTX_wm_space_outliner(C); - uiBlock *block; - int sizey= 0, sizex= 0, sizex_rna= 0; - - outliner_build_tree(mainvar, scene, soops); // always - - /* get extents of data */ - outliner_height(soops, &soops->tree, &sizey); - - if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) { - /* RNA has two columns: - * - column 1 is (max_width + OL_RNA_COL_SPACEX) or - * (OL_RNA_COL_X), whichever is wider... - * - column 2 is fixed at OL_RNA_COL_SIZEX - * - * (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100) - */ - - /* get actual width of column 1 */ - outliner_rna_width(soops, &soops->tree, &sizex_rna, 0); - sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX); - - /* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */ - if (soops->outlinevis == SO_KEYMAP) - sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough... - else - sizex= sizex_rna + OL_RNA_COL_SIZEX + 50; - } - else { - /* width must take into account restriction columns (if visible) so that entries will still be visible */ - //outliner_width(soops, &soops->tree, &sizex); - outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly... - - /* constant offset for restriction columns */ - // XXX this isn't that great yet... - if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0) - sizex += OL_TOGW*3; - } - - /* tweak to display last line (when list bigger than window) */ - sizey += V2D_SCROLL_HEIGHT; - - /* adds vertical offset */ - sizey += OL_Y_OFFSET; - - /* update size of tot-rect (extents of data/viewable area) */ - UI_view2d_totRect_set(v2d, sizex, sizey); - - /* force display to pixel coords */ - v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y); - /* set matrix for 2d-view controls */ - UI_view2d_view_ortho(v2d); - - /* draw outliner stuff (background, hierachy lines and names) */ - outliner_back(ar); - block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS); - outliner_draw_tree((bContext *)C, block, scene, ar, soops); - - if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { - /* draw rna buttons */ - outliner_draw_rnacols(ar, sizex_rna); - outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree); - } - else if(soops->outlinevis == SO_KEYMAP) { - outliner_draw_keymapbuts(block, ar, soops, &soops->tree); - } - else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) { - /* draw restriction columns */ - outliner_draw_restrictcols(ar); - outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree); - } - - /* draw edit buttons if nessecery */ - outliner_buttons(C, block, ar, soops, &soops->tree); - - uiEndBlock(C, block); - uiDrawBlock(C, block); - - /* clear flag that allows quick redraws */ - soops->storeflag &= ~SO_TREESTORE_REDRAW; -} - diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c new file mode 100644 index 00000000000..17b44022c80 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -0,0 +1,1671 @@ +/* + * $Id$ + * + * ***** 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) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_draw.c + * \ingroup spoutliner + */ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "BLI_ghash.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ +/* Tree Size Functions */ + +static void outliner_height(SpaceOops *soops, ListBase *lb, int *h) +{ + TreeElement *te= lb->first; + while(te) { + TreeStoreElem *tselem= TREESTORE(te); + if((tselem->flag & TSE_CLOSED)==0) + outliner_height(soops, &te->subtree, h); + (*h) += UI_UNIT_Y; + te= te->next; + } +} + +#if 0 // XXX this is currently disabled until te->xend is set correctly +static void outliner_width(SpaceOops *soops, ListBase *lb, int *w) +{ + TreeElement *te= lb->first; + while(te) { +// TreeStoreElem *tselem= TREESTORE(te); + + // XXX fixme... te->xend is not set yet + if(tselem->flag & TSE_CLOSED) { + if (te->xend > *w) + *w = te->xend; + } + outliner_width(soops, &te->subtree, w); + te= te->next; + } +} +#endif + +static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx) +{ + TreeElement *te= lb->first; + while(te) { + TreeStoreElem *tselem= TREESTORE(te); + // XXX fixme... (currently, we're using a fixed length of 100)! + /*if(te->xend) { + if(te->xend > *w) + *w = te->xend; + }*/ + if(startx+100 > *w) + *w = startx+100; + + if((tselem->flag & TSE_CLOSED)==0) + outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X); + te= te->next; + } +} + +/* ****************************************************** */ + +static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2) +{ + Scene *scene = (Scene *)poin; + Object *ob = (Object *)poin2; + + if(!common_restrict_check(C, ob)) return; + + /* deselect objects that are invisible */ + if (ob->restrictflag & OB_RESTRICT_VIEW) { + /* Ouch! There is no backwards pointer from Object to Base, + * so have to do loop to find it. */ + ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); + } + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + +} + +static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2) +{ + Scene *scene = (Scene *)poin; + Object *ob = (Object *)poin2; + + if(!common_restrict_check(C, ob)) return; + + /* if select restriction has just been turned on */ + if (ob->restrictflag & OB_RESTRICT_SELECT) { + /* Ouch! There is no backwards pointer from Object to Base, + * so have to do loop to find it. */ + ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT); + } + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + +} + +static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2)) +{ + WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin); +} + +static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)) +{ + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin); +} + +static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + Object *ob = (Object *)poin2; + + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); +} + +static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + Bone *bone= (Bone *)poin2; + if(bone && (bone->flag & BONE_HIDDEN_P)) + bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); +} + +static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2) +{ + EditBone *ebone= (EditBone *)poin2; + if(ebone && (ebone->flag & BONE_HIDDEN_A)) + ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); +} + +static int group_restrict_flag(Group *gr, int flag) +{ + GroupObject *gob; + + for(gob= gr->gobject.first; gob; gob= gob->next) { + if((gob->ob->restrictflag & flag) == 0) + return 0; + } + + return 1; +} + +static int group_select_flag(Group *gr) +{ + GroupObject *gob; + + for(gob= gr->gobject.first; gob; gob= gob->next) + if((gob->ob->flag & SELECT)) + return 1; + + return 0; +} + +static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag) +{ + Scene *scene = (Scene *)poin; + GroupObject *gob; + Group *gr = (Group *)poin2; + + if(group_restrict_flag(gr, flag)) { + for(gob= gr->gobject.first; gob; gob= gob->next) { + gob->ob->restrictflag &= ~flag; + + if(flag==OB_RESTRICT_VIEW) + if(gob->ob->flag & SELECT) + ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT); + } + } + else { + for(gob= gr->gobject.first; gob; gob= gob->next) { + /* 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(object_in_scene(gob->ob, scene), BA_SELECT); + } + } + } +} + +static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW); + WM_event_add_notifier(C, NC_GROUP, NULL); +} +static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT); + WM_event_add_notifier(C, NC_GROUP, NULL); +} +static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2) +{ + restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER); + WM_event_add_notifier(C, NC_GROUP, NULL); +} + + +static void namebutton_cb(bContext *C, void *tsep, char *oldname) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + Object *obedit= CTX_data_edit_object(C); + TreeStore *ts= soops->treestore; + TreeStoreElem *tselem= tsep; + + if(ts && tselem) { + TreeElement *te= outliner_find_tse(soops, tselem); + + if(tselem->type==0) { + test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort + + switch(GS(tselem->id->name)) { + case ID_MA: + WM_event_add_notifier(C, NC_MATERIAL, NULL); break; + case ID_TE: + WM_event_add_notifier(C, NC_TEXTURE, NULL); break; + case ID_IM: + WM_event_add_notifier(C, NC_IMAGE, NULL); break; + case ID_SCE: + WM_event_add_notifier(C, NC_SCENE, NULL); break; + default: + WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; + } + /* Check the library target exists */ + if (te->idcode == ID_LI) { + char expanded[FILE_MAXDIR + FILE_MAXFILE]; + BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE); + BLI_path_abs(expanded, G.main->name); + if (!BLI_exists(expanded)) { + BKE_report(CTX_wm_reports(C), RPT_ERROR, "This path does not exist, correct this before saving"); + } + } + } + else { + switch(tselem->type) { + case TSE_DEFGROUP: + defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object + break; + case TSE_NLA_ACTION: + test_idbutton(tselem->id->name+2); + break; + case TSE_EBONE: + { + bArmature *arm= (bArmature *)tselem->id; + if(arm->edbo) { + EditBone *ebone= te->directdata; + char newname[sizeof(ebone->name)]; + + /* restore bone name */ + BLI_strncpy(newname, ebone->name, sizeof(ebone->name)); + BLI_strncpy(ebone->name, oldname, sizeof(ebone->name)); + ED_armature_bone_rename(obedit->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT); + } + } + break; + + case TSE_BONE: + { + Bone *bone= te->directdata; + Object *ob; + char newname[sizeof(bone->name)]; + + // always make current object active + tree_element_active(C, scene, soops, te, 1); // was set_active_object() + ob= OBACT; + + /* restore bone name */ + BLI_strncpy(newname, bone->name, sizeof(bone->name)); + BLI_strncpy(bone->name, oldname, sizeof(bone->name)); + ED_armature_bone_rename(ob->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_POSE_CHANNEL: + { + bPoseChannel *pchan= te->directdata; + Object *ob; + char newname[sizeof(pchan->name)]; + + // always make current object active + tree_element_active(C, scene, soops, te, 1); // was set_active_object() + ob= OBACT; + + /* restore bone name */ + BLI_strncpy(newname, pchan->name, sizeof(pchan->name)); + BLI_strncpy(pchan->name, oldname, sizeof(pchan->name)); + ED_armature_bone_rename(ob->data, oldname, newname); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_POSEGRP: + { + Object *ob= (Object *)tselem->id; // id = object + bActionGroup *grp= te->directdata; + + BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name)); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob); + } + break; + case TSE_R_LAYER: + break; + } + } + tselem->flag &= ~TSE_TEXTBUT; + } +} + +static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + uiBut *bt; + TreeElement *te; + TreeStoreElem *tselem; + Object *ob = NULL; + Group *gr = NULL; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + /* objects have toggle-able restriction flags */ + if(tselem->type==0 && te->idcode==ID_OB) { + PointerRNA ptr; + + ob = (Object *)tselem->id; + RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr); + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_view_cb, scene, ob); + + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide_select", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob); + + bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, + &ptr, "hide_render", -1, 0, 0, -1, -1, NULL); + uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob); + + uiBlockSetEmboss(block, UI_EMBOSS); + + } + if(tselem->type==0 && te->idcode==ID_GR){ + int restrict_bool; + gr = (Group *)tselem->id; + + uiBlockSetEmboss(block, UI_EMBOSSN); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr); + + restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER); + bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability"); + uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + /* scene render layers and passes have toggle-able flags too! */ + else if(tselem->type==TSE_R_LAYER) { + uiBlockSetEmboss(block, UI_EMBOSSN); + + bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + else if(tselem->type==TSE_R_PASS) { + int *layflag= te->directdata; + int passflag= 1<nr; + + uiBlockSetEmboss(block, UI_EMBOSSN); + + + bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + layflag++; /* is lay_xor */ + if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT)) + bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined"); + uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL); + + uiBlockSetEmboss(block, UI_EMBOSS); + } + else if(tselem->type==TSE_MODIFIER) { + ModifierData *md= (ModifierData *)te->directdata; + ob = (Object *)tselem->id; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); + + bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability"); + uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob); + } + else if(tselem->type==TSE_POSE_CHANNEL) { + bPoseChannel *pchan= (bPoseChannel *)te->directdata; + Bone *bone = pchan->bone; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone); + + bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL); + } + else if(tselem->type==TSE_EBONE) { + EditBone *ebone= (EditBone *)te->directdata; + + uiBlockSetEmboss(block, UI_EMBOSSN); + bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View"); + uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone); + + bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, + (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View"); + uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL); + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree); + } +} + +static void outliner_draw_rnacols(ARegion *ar, int sizex) +{ + View2D *v2d= &ar->v2d; + + float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT; + if(minytot.ymin) miny = v2d->tot.ymin; + + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + + /* draw column separator lines */ + fdrawline((float)sizex, + v2d->cur.ymax, + (float)sizex, + miny); + + fdrawline((float)sizex+OL_RNA_COL_SIZEX, + v2d->cur.ymax, + (float)sizex+OL_RNA_COL_SIZEX, + miny); +} + +static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + PointerRNA *ptr; + PropertyRNA *prop; + + uiBlockSetEmboss(block, UI_EMBOSST); + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + if(tselem->type == TSE_RNA_PROPERTY) { + ptr= &te->rnaptr; + prop= te->directdata; + + if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0)) + uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); + } + else if(tselem->type == TSE_RNA_ARRAY_ELEM) { + ptr= &te->rnaptr; + prop= te->directdata; + + uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1); + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree); + } +} + +static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2) +{ + wmOperatorType *ot= arg2; + wmKeyMapItem *kmi= arg_kmi; + + if(ot) + BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME); +} + +static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items) +{ + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + + if(BLI_strcasestr(ot->idname, str)) { + char name[OP_MAX_TYPENAME]; + + /* display name for menu */ + WM_operator_py_idname(name, ot->idname); + + if(0==uiSearchItemAdd(items, name, ot, 0)) + break; + } + } + BLI_ghashIterator_free(iter); +} + +/* operator Search browse menu, open */ +static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) +{ + static char search[OP_MAX_TYPENAME]; + wmEvent event; + wmWindow *win= CTX_wm_window(C); + wmKeyMapItem *kmi= arg_kmi; + wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0); + uiBlock *block; + uiBut *but; + + /* clear initial search string, then all items show */ + search[0]= 0; + + block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); + uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); + + /* fake button, it holds space for search items */ + uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); + + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, ""); + uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); + + uiBoundsBlock(block, 6); + uiBlockSetDirection(block, UI_DOWN); + uiEndBlock(C, block); + + event= *(win->eventstate); /* XXX huh huh? make api call */ + event.type= EVT_BUT_OPEN; + event.val= KM_PRESS; + event.customdata= but; + event.customdatafree= FALSE; + wm_event_add(win, &event); + + return block; +} + +#define OL_KM_KEYBOARD 0 +#define OL_KM_MOUSE 1 +#define OL_KM_TWEAK 2 +#define OL_KM_SPECIALS 3 + +static short keymap_menu_type(short type) +{ + if(ISKEYBOARD(type)) return OL_KM_KEYBOARD; + if(ISTWEAK(type)) return OL_KM_TWEAK; + if(ISMOUSE(type)) return OL_KM_MOUSE; +// return OL_KM_SPECIALS; + return 0; +} + +static const char *keymap_type_menu(void) +{ + static const char string[]= + "Event Type%t" + "|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD) + "|Mouse%x" STRINGIFY(OL_KM_MOUSE) + "|Tweak%x" STRINGIFY(OL_KM_TWEAK) +// "|Specials%x" STRINGIFY(OL_KM_SPECIALS) + ; + + return string; +} + +static const char *keymap_mouse_menu(void) +{ + static const char string[]= + "Mouse Event%t" + "|Left Mouse%x" STRINGIFY(LEFTMOUSE) + "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) + "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) + "|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE) + "|Right Mouse%x" STRINGIFY(RIGHTMOUSE) + "|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE) + "|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE) + "|Action Mouse%x" STRINGIFY(ACTIONMOUSE) + "|Select Mouse%x" STRINGIFY(SELECTMOUSE) + "|Mouse Move%x" STRINGIFY(MOUSEMOVE) + "|Wheel Up%x" STRINGIFY(WHEELUPMOUSE) + "|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE) + "|Wheel In%x" STRINGIFY(WHEELINMOUSE) + "|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE) + "|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN) + "|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM) + "|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE) + ; + + return string; +} + +static const char *keymap_tweak_menu(void) +{ + static const char string[]= + "Tweak Event%t" + "|Left Mouse%x" STRINGIFY(EVT_TWEAK_L) + "|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M) + "|Right Mouse%x" STRINGIFY(EVT_TWEAK_R) + "|Action Mouse%x" STRINGIFY(EVT_TWEAK_A) + "|Select Mouse%x" STRINGIFY(EVT_TWEAK_S) + ; + + return string; +} + +static const char *keymap_tweak_dir_menu(void) +{ + static const char string[]= + "Tweak Direction%t" + "|Any%x" STRINGIFY(KM_ANY) + "|North%x" STRINGIFY(EVT_GESTURE_N) + "|North-East%x" STRINGIFY(EVT_GESTURE_NE) + "|East%x" STRINGIFY(EVT_GESTURE_E) + "|Sout-East%x" STRINGIFY(EVT_GESTURE_SE) + "|South%x" STRINGIFY(EVT_GESTURE_S) + "|South-West%x" STRINGIFY(EVT_GESTURE_SW) + "|West%x" STRINGIFY(EVT_GESTURE_W) + "|North-West%x" STRINGIFY(EVT_GESTURE_NW) + ; + + return string; +} + + +static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) +{ + wmKeyMapItem *kmi= kmi_v; + short maptype= keymap_menu_type(kmi->type); + + if(maptype!=kmi->maptype) { + switch(kmi->maptype) { + case OL_KM_KEYBOARD: + kmi->type= AKEY; + kmi->val= KM_PRESS; + break; + case OL_KM_MOUSE: + kmi->type= LEFTMOUSE; + kmi->val= KM_PRESS; + break; + case OL_KM_TWEAK: + kmi->type= EVT_TWEAK_L; + kmi->val= KM_ANY; + break; + case OL_KM_SPECIALS: + kmi->type= AKEY; + kmi->val= KM_PRESS; + } + ED_region_tag_redraw(CTX_wm_region(C)); + } +} + +static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + uiBlockSetEmboss(block, UI_EMBOSST); + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + uiBut *but; + const char *str; + int xstart= 240; + int butw1= UI_UNIT_X; /* operator */ + int butw2= 90; /* event type, menus */ + int butw3= 43; /* modifiers */ + + if(tselem->type == TSE_KEYMAP_ITEM) { + wmKeyMapItem *kmi= te->directdata; + + /* modal map? */ + if(kmi->propvalue); + else { + uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator"); + } + xstart+= butw1+10; + + /* map type button */ + kmi->maptype= keymap_menu_type(kmi->type); + + str= keymap_type_menu(); + but= uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type"); + uiButSetFunc(but, keymap_type_cb, kmi, NULL); + xstart+= butw2+5; + + /* edit actual event */ + switch(kmi->maptype) { + case OL_KM_KEYBOARD: + uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code"); + xstart+= butw2+5; + break; + case OL_KM_MOUSE: + str= keymap_mouse_menu(); + uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Mouse button"); + xstart+= butw2+5; + break; + case OL_KM_TWEAK: + str= keymap_tweak_menu(); + uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0, "Tweak gesture"); + xstart+= butw2+5; + str= keymap_tweak_dir_menu(); + uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0, "Tweak gesture direction"); + xstart+= butw2+5; + break; + } + + /* modifiers */ + uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5; + uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3; + xstart+= 5; + uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code"); + xstart+= butw3+5; + + /* rna property */ + if(kmi->ptr && kmi->ptr->data) { + uiDefBut(block, LABEL, 0, "(RNA property)", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2; + } + + (void)xstart; + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree); + } +} + + +static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb) +{ + uiBut *bt; + TreeElement *te; + TreeStoreElem *tselem; + int spx, dx, len; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) { + + if(tselem->flag & TSE_TEXTBUT) { + + /* If we add support to rename Sequence. + * need change this. + */ + if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature + + if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name); + else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name); + else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name); + else len= MAX_ID_NAME-2; + + + dx= (int)UI_GetStringWidth(te->name); + if(dx<100) dx= 100; + spx=te->xs+2*UI_UNIT_X-4; + if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10; + + bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, ""); + uiButSetRenameFunc(bt, namebutton_cb, tselem); + + /* returns false if button got removed */ + if( 0 == uiButActiveOnly(C, block, bt) ) + tselem->flag &= ~TSE_TEXTBUT; + } + } + + if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree); + } +} + +/* ****************************************************** */ +/* Normal Drawing... */ + +/* make function calls a bit compacter */ +struct DrawIconArg { + uiBlock *block; + ID *id; + int xmax, x, y; + float alpha; +}; + +static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon) +{ + /* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */ + if(arg->x >= arg->xmax) + UI_icon_draw(arg->x, arg->y, icon); + else { + /* XXX investigate: button placement of icons is way different than UI_icon_draw? */ + float ufac= UI_UNIT_X/20.0f; + uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : ""); + + if(arg->id) + uiButSetDragID(but, arg->id); + } + +} + +static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha) +{ + struct DrawIconArg arg; + + /* make function calls a bit compacter */ + arg.block= block; + arg.id= tselem->id; + arg.xmax= xmax; + arg.x= x; + arg.y= y; + arg.alpha= alpha; + + if(tselem->type) { + switch( tselem->type) { + case TSE_ANIM_DATA: + UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx + case TSE_NLA: + UI_icon_draw(x, y, ICON_NLA); break; + case TSE_NLA_TRACK: + UI_icon_draw(x, y, ICON_NLA); break; // XXX + case TSE_NLA_ACTION: + UI_icon_draw(x, y, ICON_ACTION); break; + case TSE_DRIVER_BASE: + +#if 0 // GSOC_PEPPER + + UI_icon_draw(x, y, ICON_DRIVER); break; + +#endif // GSOC_PEPPER + + case TSE_DEFGROUP_BASE: + UI_icon_draw(x, y, ICON_GROUP_VERTEX); break; + case TSE_BONE: + case TSE_EBONE: + UI_icon_draw(x, y, ICON_BONE_DATA); break; + case TSE_CONSTRAINT_BASE: + UI_icon_draw(x, y, ICON_CONSTRAINT); break; + case TSE_MODIFIER_BASE: + UI_icon_draw(x, y, ICON_MODIFIER); break; + case TSE_LINKED_OB: + UI_icon_draw(x, y, ICON_OBJECT_DATA); break; + case TSE_LINKED_PSYS: + UI_icon_draw(x, y, ICON_PARTICLES); break; + case TSE_MODIFIER: + { + Object *ob= (Object *)tselem->id; + ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); + switch(md->type) { + case eModifierType_Subsurf: + UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; + case eModifierType_Armature: + UI_icon_draw(x, y, ICON_MOD_ARMATURE); break; + case eModifierType_Lattice: + UI_icon_draw(x, y, ICON_MOD_LATTICE); break; + case eModifierType_Curve: + UI_icon_draw(x, y, ICON_MOD_CURVE); break; + case eModifierType_Build: + UI_icon_draw(x, y, ICON_MOD_BUILD); break; + case eModifierType_Mirror: + UI_icon_draw(x, y, ICON_MOD_MIRROR); break; + case eModifierType_Decimate: + UI_icon_draw(x, y, ICON_MOD_DECIM); break; + case eModifierType_Wave: + UI_icon_draw(x, y, ICON_MOD_WAVE); break; + case eModifierType_Hook: + UI_icon_draw(x, y, ICON_HOOK); break; + case eModifierType_Softbody: + UI_icon_draw(x, y, ICON_MOD_SOFT); break; + case eModifierType_Boolean: + UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break; + case eModifierType_ParticleSystem: + UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; + case eModifierType_ParticleInstance: + UI_icon_draw(x, y, ICON_MOD_PARTICLES); break; + case eModifierType_EdgeSplit: + UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break; + case eModifierType_Array: + UI_icon_draw(x, y, ICON_MOD_ARRAY); break; + case eModifierType_UVProject: + UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break; + case eModifierType_Displace: + UI_icon_draw(x, y, ICON_MOD_DISPLACE); break; + case eModifierType_Shrinkwrap: + UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break; + case eModifierType_Cast: + UI_icon_draw(x, y, ICON_MOD_CAST); break; + case eModifierType_MeshDeform: + UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break; + case eModifierType_Bevel: + UI_icon_draw(x, y, ICON_MOD_BEVEL); break; + case eModifierType_Smooth: + UI_icon_draw(x, y, ICON_MOD_SMOOTH); break; + case eModifierType_SimpleDeform: + UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break; + case eModifierType_Mask: + UI_icon_draw(x, y, ICON_MOD_MASK); break; + case eModifierType_Cloth: + UI_icon_draw(x, y, ICON_MOD_CLOTH); break; + case eModifierType_Explode: + UI_icon_draw(x, y, ICON_MOD_EXPLODE); break; + case eModifierType_Collision: + UI_icon_draw(x, y, ICON_MOD_PHYSICS); break; + case eModifierType_Fluidsim: + UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break; + case eModifierType_Multires: + UI_icon_draw(x, y, ICON_MOD_MULTIRES); break; + case eModifierType_Smoke: + UI_icon_draw(x, y, ICON_MOD_SMOKE); break; + case eModifierType_Solidify: + UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break; + case eModifierType_Screw: + UI_icon_draw(x, y, ICON_MOD_SCREW); break; + default: + UI_icon_draw(x, y, ICON_DOT); break; + } + break; + } + case TSE_SCRIPT_BASE: + UI_icon_draw(x, y, ICON_TEXT); break; + case TSE_POSE_BASE: + UI_icon_draw(x, y, ICON_ARMATURE_DATA); break; + case TSE_POSE_CHANNEL: + UI_icon_draw(x, y, ICON_BONE_DATA); break; + case TSE_PROXY: + UI_icon_draw(x, y, ICON_GHOST); break; + case TSE_R_LAYER_BASE: + UI_icon_draw(x, y, ICON_RENDERLAYERS); break; + case TSE_R_LAYER: + UI_icon_draw(x, y, ICON_RENDERLAYERS); break; + case TSE_LINKED_LAMP: + UI_icon_draw(x, y, ICON_LAMP_DATA); break; + case TSE_LINKED_MAT: + UI_icon_draw(x, y, ICON_MATERIAL_DATA); break; + case TSE_POSEGRP_BASE: + UI_icon_draw(x, y, ICON_VERTEXSEL); break; + case TSE_SEQUENCE: + if(te->idcode==SEQ_MOVIE) + UI_icon_draw(x, y, ICON_SEQUENCE); + else if(te->idcode==SEQ_META) + UI_icon_draw(x, y, ICON_DOT); + else if(te->idcode==SEQ_SCENE) + UI_icon_draw(x, y, ICON_SCENE); + else if(te->idcode==SEQ_SOUND) + UI_icon_draw(x, y, ICON_SOUND); + else if(te->idcode==SEQ_IMAGE) + UI_icon_draw(x, y, ICON_IMAGE_COL); + else + UI_icon_draw(x, y, ICON_PARTICLES); + break; + case TSE_SEQ_STRIP: + UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT); + break; + case TSE_SEQUENCE_DUP: + UI_icon_draw(x, y, ICON_OBJECT_DATA); + break; + case TSE_RNA_STRUCT: + if(RNA_struct_is_ID(te->rnaptr.type)) { + arg.id= (ID *)te->rnaptr.data; + tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type)); + } + else + UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type)); + break; + default: + UI_icon_draw(x, y, ICON_DOT); break; + } + } + else if (GS(tselem->id->name) == ID_OB) { + Object *ob= (Object *)tselem->id; + switch (ob->type) { + case OB_LAMP: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break; + case OB_MESH: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break; + case OB_CAMERA: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break; + case OB_CURVE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break; + case OB_MBALL: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break; + case OB_LATTICE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break; + case OB_ARMATURE: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break; + case OB_FONT: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break; + case OB_SURF: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break; + +#if 0 // GSOC_PEPPER + + case OB_SPEAKER: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SPEAKER); break; + +#endif // GSOC_PEPPER + + case OB_EMPTY: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break; + + } + } + else { + switch( GS(tselem->id->name)) { + case ID_SCE: + tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; + case ID_ME: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break; + case ID_CU: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break; + case ID_MB: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break; + case ID_LT: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break; + case ID_LA: + { + Lamp *la= (Lamp *)tselem->id; + + switch(la->type) { + case LA_LOCAL: + tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; + case LA_SUN: + tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break; + case LA_SPOT: + tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break; + case LA_HEMI: + tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break; + case LA_AREA: + tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break; + default: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break; + } + break; + } + case ID_MA: + tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break; + case ID_TE: + tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break; + case ID_IM: + tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break; + +#if 0 // GSOC_PEPPER + + case ID_SPK: + case ID_SO: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_SPEAKER); break; + +#endif // GSOC_PEPPER + + case ID_AR: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break; + case ID_CA: + tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break; + case ID_KE: + tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break; + case ID_WO: + tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break; + case ID_AC: + tselem_draw_icon_uibut(&arg, ICON_ACTION); break; + case ID_NLA: + tselem_draw_icon_uibut(&arg, ICON_NLA); break; + case ID_TXT: + tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break; + case ID_GR: + tselem_draw_icon_uibut(&arg, ICON_GROUP); break; + case ID_LI: + tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; + } + } +} + +static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys) +{ + TreeElement *te; + TreeStoreElem *tselem; + int active; + + for(te= lb->first; te; te= te->next) { + + /* exit drawing early */ + if((*offsx) - UI_UNIT_X > xmax) + break; + + tselem= TREESTORE(te); + + /* object hierarchy always, further constrained on level */ + if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) { + + /* active blocks get white circle */ + if(tselem->type==0) { + if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id); + else if(scene->obedit && scene->obedit->data==tselem->id) active= 1; // XXX use context? + else active= tree_element_active(C, scene, soops, te, 0); + } + else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0); + + if(active) { + float ufac= UI_UNIT_X/20.0f; + + uiSetRoundBox(15); + glColor4ub(255, 255, 255, 100); + uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); + glEnable(GL_BLEND); /* roundbox disables */ + } + + tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f); + te->xs= (float)*offsx; + te->ys= (float)ys; + te->xend= (short)*offsx+UI_UNIT_X; + te->flag |= TE_ICONROW; // for click + + (*offsx) += UI_UNIT_X; + } + + /* this tree element always has same amount of branches, so dont draw */ + if(tselem->type!=TSE_R_LAYER) + outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys); + } + +} + +/* closed tree element */ +static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeElement *ten; + + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)(*starty); + + for(ten= te->subtree.first; ten; ten= ten->next) { + outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty); + } +} + + +static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeElement *ten; + TreeStoreElem *tselem; + float ufac= UI_UNIT_X/20.0f; + int offsx= 0, active=0; // active=1 active obj, else active data + + tselem= TREESTORE(te); + + if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) { + int xmax= ar->v2d.cur.xmax; + + /* icons can be ui buts, we dont want it to overlap with restrict */ + if((soops->flag & SO_HIDE_RESTRICTCOLS)==0) + xmax-= OL_TOGW+UI_UNIT_X; + + glEnable(GL_BLEND); + + /* colors for active/selected data */ + if(tselem->type==0) { + if(te->idcode==ID_SCE) { + if(tselem->id == (ID *)scene) { + glColor4ub(255, 255, 255, 100); + active= 2; + } + } + else if(te->idcode==ID_GR) { + Group *gr = (Group *)tselem->id; + + if(group_select_flag(gr)) { + char col[4]; + UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); + col[3]= 100; + glColor4ubv((GLubyte *)col); + + active= 2; + } + } + else if(te->idcode==ID_OB) { + Object *ob= (Object *)tselem->id; + + if(ob==OBACT || (ob->flag & SELECT)) { + char col[4]= {0, 0, 0, 0}; + + /* outliner active ob: always white text, circle color now similar to view3d */ + + active= 2; /* means it draws a color circle */ + if(ob==OBACT) { + if(ob->flag & SELECT) { + UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col); + col[3]= 100; + } + + active= 1; /* means it draws white text */ + } + else if(ob->flag & SELECT) { + UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col); + col[3]= 100; + } + + glColor4ubv((GLubyte *)col); + } + + } + else if(scene->obedit && scene->obedit->data==tselem->id) { + glColor4ub(255, 255, 255, 100); + active= 2; + } + else { + if(tree_element_active(C, scene, soops, te, 0)) { + glColor4ub(220, 220, 255, 100); + active= 2; + } + } + } + else { + if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2; + glColor4ub(220, 220, 255, 100); + } + + /* active circle */ + if(active) { + uiSetRoundBox(15); + uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac); + glEnable(GL_BLEND); /* roundbox disables it */ + + te->flag |= TE_ACTIVE; // for lookup in display hierarchies + } + + /* open/close icon, only when sublevels, except for scene */ + if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) { + int icon_x; + if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE)) + icon_x = startx; + else + icon_x = startx+5*ufac; + + // icons a bit higher + if(tselem->flag & TSE_CLOSED) + UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT); + else + UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN); + } + offsx+= UI_UNIT_X; + + /* datatype icon */ + + if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) { + // icons a bit higher + tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f); + + offsx+= UI_UNIT_X; + } + else + offsx+= 2*ufac; + + if(tselem->type==0 && tselem->id->lib) { + glPixelTransferf(GL_ALPHA_SCALE, 0.5f); + if(tselem->id->flag & LIB_INDIRECT) + UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT); + else + UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT); + glPixelTransferf(GL_ALPHA_SCALE, 1.0f); + offsx+= UI_UNIT_X; + } + glDisable(GL_BLEND); + + /* name */ + if(active==1) UI_ThemeColor(TH_TEXT_HI); + else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f); + else UI_ThemeColor(TH_TEXT); + + UI_DrawString(startx+offsx, *starty+5*ufac, te->name); + + offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name)); + + /* closed item, we draw the icons, not when it's a scene, or master-server list though */ + if(tselem->flag & TSE_CLOSED) { + 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 dont draw */ + int tempx= startx+offsx; + + // divider + UI_ThemeColorShade(TH_BACK, -40); + glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4); + + glEnable(GL_BLEND); + glPixelTransferf(GL_ALPHA_SCALE, 0.5); + + outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2); + + glPixelTransferf(GL_ALPHA_SCALE, 1.0); + glDisable(GL_BLEND); + } + } + } + } + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)*starty; + te->xend= startx+offsx; + + if((tselem->flag & TSE_CLOSED)==0) { + *starty-= UI_UNIT_Y; + + for(ten= te->subtree.first; ten; ten= ten->next) + outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty); + } + else { + for(ten= te->subtree.first; ten; ten= ten->next) + outliner_set_coord_tree_element(soops, te, startx, starty); + + *starty-= UI_UNIT_Y; + } +} + +static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + int y1, y2; + + if(lb->first==NULL) return; + + y1=y2= *starty; /* for vertical lines between objects */ + for(te=lb->first; te; te= te->next) { + y2= *starty; + tselem= TREESTORE(te); + + /* horizontal line? */ + if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE)) + glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1); + + *starty-= UI_UNIT_Y; + + if((tselem->flag & TSE_CLOSED)==0) + outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty); + } + + /* vertical line */ + te= lb->last; + if(te->parent || lb->first!=lb->last) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==ID_OB) { + + glRecti(startx, y1+UI_UNIT_Y, startx+1, y2); + } + } +} + +static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + /* selection status */ + if((tselem->flag & TSE_CLOSED)==0) + if(tselem->type == TSE_RNA_STRUCT) + glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1); + + *starty-= UI_UNIT_Y; + if((tselem->flag & TSE_CLOSED)==0) { + outliner_draw_struct_marks(ar, soops, &te->subtree, starty); + if(tselem->type == TSE_RNA_STRUCT) + fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y); + } + } +} + +static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + /* selection status */ + if(tselem->flag & TSE_SELECTED) { + glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1); + } + *starty-= UI_UNIT_Y; + if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty); + } +} + + +static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops) +{ + TreeElement *te; + int starty, startx; + float col[4]; + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once + + if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { + /* struct marks */ + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + //UI_ThemeColorShade(TH_BACK, -20); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + outliner_draw_struct_marks(ar, soops, &soops->tree, &starty); + } + + /* always draw selection fill before hierarchy */ + UI_GetThemeColor3fv(TH_BACK, col); + glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + outliner_draw_selection(ar, soops, &soops->tree, &starty); + + // grey hierarchy lines + UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f); + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET; + startx= 6; + outliner_draw_hierarchy(soops, &soops->tree, startx, &starty); + + // items themselves + starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET; + startx= 0; + for(te= soops->tree.first; te; te= te->next) { + outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty); + } +} + + +static void outliner_back(ARegion *ar) +{ + int ystart; + + UI_ThemeColorShade(TH_BACK, 6); + ystart= (int)ar->v2d.tot.ymax; + ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; + + while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { + glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y); + ystart-= 2*UI_UNIT_Y; + } +} + +static void outliner_draw_restrictcols(ARegion *ar) +{ + int ystart; + + /* background underneath */ + UI_ThemeColor(TH_BACK); + glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax); + + UI_ThemeColorShade(TH_BACK, 6); + ystart= (int)ar->v2d.tot.ymax; + ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET; + + while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) { + glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y); + ystart-= 2*UI_UNIT_Y; + } + + UI_ThemeColorShadeAlpha(TH_BACK, -15, -200); + + /* view */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); + + /* render */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); + + /* render */ + fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, + ar->v2d.cur.ymax, + ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, + ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT); +} + +/* ****************************************************** */ +/* Main Entrypoint - Draw contents of Outliner editor */ + +void draw_outliner(const bContext *C) +{ + Main *mainvar= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= &ar->v2d; + SpaceOops *soops= CTX_wm_space_outliner(C); + uiBlock *block; + int sizey= 0, sizex= 0, sizex_rna= 0; + + outliner_build_tree(mainvar, scene, soops); // always + + /* get extents of data */ + outliner_height(soops, &soops->tree, &sizey); + + if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) { + /* RNA has two columns: + * - column 1 is (max_width + OL_RNA_COL_SPACEX) or + * (OL_RNA_COL_X), whichever is wider... + * - column 2 is fixed at OL_RNA_COL_SIZEX + * + * (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100) + */ + + /* get actual width of column 1 */ + outliner_rna_width(soops, &soops->tree, &sizex_rna, 0); + sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX); + + /* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */ + if (soops->outlinevis == SO_KEYMAP) + sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough... + else + sizex= sizex_rna + OL_RNA_COL_SIZEX + 50; + } + else { + /* width must take into account restriction columns (if visible) so that entries will still be visible */ + //outliner_width(soops, &soops->tree, &sizex); + outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly... + + /* constant offset for restriction columns */ + // XXX this isn't that great yet... + if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0) + sizex += OL_TOGW*3; + } + + /* tweak to display last line (when list bigger than window) */ + sizey += V2D_SCROLL_HEIGHT; + + /* adds vertical offset */ + sizey += OL_Y_OFFSET; + + /* update size of tot-rect (extents of data/viewable area) */ + UI_view2d_totRect_set(v2d, sizex, sizey); + + /* force display to pixel coords */ + v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y); + /* set matrix for 2d-view controls */ + UI_view2d_view_ortho(v2d); + + /* draw outliner stuff (background, hierachy lines and names) */ + outliner_back(ar); + block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS); + outliner_draw_tree((bContext *)C, block, scene, ar, soops); + + if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) { + /* draw rna buttons */ + outliner_draw_rnacols(ar, sizex_rna); + outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree); + } + else if(soops->outlinevis == SO_KEYMAP) { + outliner_draw_keymapbuts(block, ar, soops, &soops->tree); + } + else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) { + /* draw restriction columns */ + outliner_draw_restrictcols(ar); + outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree); + } + + /* draw edit buttons if nessecery */ + outliner_buttons(C, block, ar, soops, &soops->tree); + + uiEndBlock(C, block); + uiDrawBlock(C, block); + + /* clear flag that allows quick redraws */ + soops->storeflag &= ~SO_TREESTORE_REDRAW; +} diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c new file mode 100644 index 00000000000..15167a3ba2c --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -0,0 +1,1398 @@ +/* + * $Id$ + * + * ***** 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) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_edit.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "ED_keyframing.h" + +#include "outliner_intern.h" + +/* ************************************************************** */ +/* Unused Utilities */ +// XXX: where to place these? + +/* This is not used anywhere at the moment */ +#if 0 +/* return 1 when levels were opened */ +static int outliner_open_back(SpaceOops *soops, TreeElement *te) +{ + TreeStoreElem *tselem; + int retval= 0; + + for (te= te->parent; te; te= te->parent) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_CLOSED) { + tselem->flag &= ~TSE_CLOSED; + retval= 1; + } + } + return retval; +} + +static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= lb->first; te; te= te->next) { + /* check if this tree-element was the one we're seeking */ + if (te == teFind) { + *found= 1; + return; + } + + /* try to see if sub-tree contains it then */ + outliner_open_reveal(soops, &te->subtree, teFind, found); + if (*found) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_CLOSED) + tselem->flag &= ~TSE_CLOSED; + return; + } + } +} +#endif + +/* ************************************************************** */ +/* Click Activated */ + +/* Toggle Open/Closed ------------------------------------------- */ + +static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2]) +{ + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + + /* all below close/open? */ + if(all) { + tselem->flag &= ~TSE_CLOSED; + outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); + } + else { + if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + } + + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_openclose(C, soops, te, all, mval)) + return 1; + } + return 0; + +} + +/* event can enterkey, then it opens/closes */ +static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event) +{ + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + int all= RNA_boolean_get(op->ptr, "all"); + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_openclose(C, soops, te, all, fmval)) + break; + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_item_openclose(wmOperatorType *ot) +{ + ot->name= "Open/Close Item"; + ot->idname= "OUTLINER_OT_item_openclose"; + ot->description= "Toggle whether item under cursor is enabled or closed"; + + ot->invoke= outliner_item_openclose; + + ot->poll= ED_operator_outliner_active; + + RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items."); +} + +/* Rename --------------------------------------------------- */ + +static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2]) +{ + ReportList *reports= CTX_wm_reports(C); // XXX + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + + /* name and first icon */ + if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { + + /* can't rename rna datablocks entries */ + if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) + ; + else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) + BKE_report(reports, RPT_WARNING, "Cannot edit builtin name"); + else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) + BKE_report(reports, RPT_WARNING, "Cannot edit sequence name"); + else if(tselem->id->lib) { + // XXX error_libdata(); + } + else if(te->idcode == ID_LI && te->parent) { + BKE_report(reports, RPT_WARNING, "Cannot edit the path of an indirectly linked library"); + } + else { + tselem->flag |= TSE_TEXTBUT; + ED_region_tag_redraw(ar); + } + } + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1; + } + return 0; +} + +static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event) +{ + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_rename(C, ar, soops, te, fmval)) break; + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_item_rename(wmOperatorType *ot) +{ + ot->name= "Rename Item"; + ot->idname= "OUTLINER_OT_item_rename"; + ot->description= "Rename item under cursor"; + + ot->invoke= outliner_item_rename; + + ot->poll= ED_operator_outliner_active; +} + +/* ************************************************************** */ +/* Setting Toggling Operators */ + +/* =============================================== */ +/* Toggling Utilities (Exported) */ + +/* Apply Settings ------------------------------- */ + +static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel) +{ + TreeElement *te; + int level=curlevel, lev; + + for(te= lb->first; te; te= te->next) { + + lev= outliner_count_levels(soops, &te->subtree, curlevel+1); + if(lev>level) level= lev; + } + return level; +} + +int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel) +{ + TreeElement *te; + TreeStoreElem *tselem; + int level; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & flag) return curlevel; + + level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1); + if(level) return level; + } + return 0; +} + +void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(set==0) tselem->flag &= ~flag; + else tselem->flag |= flag; + outliner_set_flag(soops, &te->subtree, flag, set); + } +} + +/* Restriction Columns ------------------------------- */ + +/* same check needed for both object operation and restrict column button func + * return 0 when in edit mode (cannot restrict view or select) + * otherwise return 1 */ +int common_restrict_check(bContext *C, Object *ob) +{ + /* Don't allow hide an object in edit mode, + * check the bug #22153 and #21609, #23977 + */ + Object *obedit= CTX_data_edit_object(C); + if (obedit && obedit == ob) { + /* found object is hidden, reset */ + if (ob->restrictflag & OB_RESTRICT_VIEW) + ob->restrictflag &= ~OB_RESTRICT_VIEW; + /* found object is unselectable, reset */ + if (ob->restrictflag & OB_RESTRICT_SELECT) + ob->restrictflag &= ~OB_RESTRICT_SELECT; + return 0; + } + + return 1; +} + +/* =============================================== */ +/* Restriction toggles */ + +/* Toggle Visibility ---------------------------------------- */ + +void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + Object *ob = (Object *)tselem->id; + + /* add check for edit mode */ + if(!common_restrict_check(C, ob)) return; + + if(base || (base= object_in_scene(ob, scene))) { + if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) { + ED_base_object_select(base, BA_DESELECT); + } + } +} + +static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); + + WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_visibility_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Visibility"; + ot->idname= "OUTLINER_OT_visibility_toggle"; + ot->description= "Toggle the visibility of selected items"; + + /* callbacks */ + ot->exec= outliner_toggle_visibility_exec; + ot->poll= ED_operator_outliner_active_no_editobject; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* Toggle Selectability ---------------------------------------- */ + +void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->object->restrictflag^=OB_RESTRICT_SELECT; + } +} + +static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_selectability_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Selectability"; + ot->idname= "OUTLINER_OT_selectability_toggle"; + ot->description= "Toggle the selectability"; + + /* callbacks */ + ot->exec= outliner_toggle_selectability_exec; + ot->poll= ED_operator_outliner_active_no_editobject; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* Toggle Renderability ---------------------------------------- */ + +void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->object->restrictflag^=OB_RESTRICT_RENDER; + } +} + +static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_renderability_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Renderability"; + ot->idname= "OUTLINER_OT_renderability_toggle"; + ot->description= "Toggle the renderability of selected items"; + + /* callbacks */ + ot->exec= outliner_toggle_renderability_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* =============================================== */ +/* Outliner setting toggles */ + +/* Toggle Expanded (Outliner) ---------------------------------------- */ + +static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + + if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1)) + outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0); + else + outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_expanded_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Expand/Collapse All"; + ot->idname= "OUTLINER_OT_expanded_toggle"; + ot->description= "Expand/Collapse all items"; + + /* callbacks */ + ot->exec= outliner_toggle_expanded_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ +} + +/* Toggle Selected (Outliner) ---------------------------------------- */ + +static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + Scene *scene= CTX_data_scene(C); + + if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1)) + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + else + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1); + + soops->storeflag |= SO_TREESTORE_REDRAW; + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_selected_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toggle Selected"; + ot->idname= "OUTLINER_OT_selected_toggle"; + ot->description= "Toggle the Outliner selection of items"; + + /* callbacks */ + ot->exec= outliner_toggle_selected_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ +} + +/* ************************************************************** */ +/* Hotkey Only Operators */ + +/* Show Active --------------------------------------------------- */ + +static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *so= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= &ar->v2d; + + TreeElement *te; + int xdelta, ytop; + + // TODO: make this get this info from context instead... + if (OBACT == NULL) + return OPERATOR_CANCELLED; + + 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); + if (ytop>0) ytop= 0; + + v2d->cur.ymax= (float)ytop; + v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin)); + + /* make te->xs ==> te->xend center of view */ + xdelta = (int)(te->xs - v2d->cur.xmin); + v2d->cur.xmin += xdelta; + v2d->cur.xmax += xdelta; + + so->storeflag |= SO_TREESTORE_REDRAW; + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_active(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show Active"; + ot->idname= "OUTLINER_OT_show_active"; + ot->description= "Adjust the view so that the active Object is shown centered"; + + /* callbacks */ + ot->exec= outliner_show_active_exec; + ot->poll= ED_operator_outliner_active; +} + +/* View Panning --------------------------------------------------- */ + +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 up= 0; + + if(RNA_boolean_get(op->ptr, "up")) + up= 1; + + if(up == 0) dy= -dy; + ar->v2d.cur.ymin+= dy; + ar->v2d.cur.ymax+= dy; + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_scroll_page(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Scroll Page"; + ot->idname= "OUTLINER_OT_scroll_page"; + ot->description= "Scroll page up or down"; + + /* callbacks */ + ot->exec= outliner_scroll_page_exec; + ot->poll= ED_operator_outliner_active; + + /* properties */ + RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page."); +} + +/* Search ------------------------------------------------------- */ +// TODO: probably obsolete now with filtering? + +#if 0 + +/* recursive helper for function below */ +static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty) +{ + TreeStoreElem *tselem= TREESTORE(te); + + /* store coord and continue, we need coordinates for elements outside view too */ + te->xs= (float)startx; + te->ys= (float)(*starty); + *starty-= UI_UNIT_Y; + + if((tselem->flag & TSE_CLOSED)==0) { + TreeElement *ten; + for(ten= te->subtree.first; ten; ten= ten->next) { + outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty); + } + } + +} + +/* to retrieve coordinates with redrawing the entire tree */ +static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops) +{ + TreeElement *te; + int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y; + int startx= 0; + + for(te= soops->tree.first; te; te= te->next) { + outliner_set_coordinates_element(soops, te, startx, &starty); + } +} + +/* find next element that has this name */ +static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound) +{ + TreeElement *te, *tes; + + for (te= lb->first; te; te= te->next) { + int found = outliner_filter_has_name(te, name, flags); + + if(found) { + /* name is right, but is element the previous one? */ + if (prev) { + if ((te != prev) && (*prevFound)) + return te; + if (te == prev) { + *prevFound = 1; + } + } + else + return te; + } + + tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound); + if(tes) return tes; + } + + /* nothing valid found */ + return NULL; +} + +static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) +{ + ReportList *reports = NULL; // CTX_wm_reports(C); + TreeElement *te= NULL; + TreeElement *last_find; + TreeStoreElem *tselem; + int ytop, xdelta, prevFound=0; + char name[32]; + + /* get last found tree-element based on stored search_tse */ + last_find= outliner_find_tse(soops, &soops->search_tse); + + /* determine which type of search to do */ + if (again && last_find) { + /* no popup panel - previous + user wanted to search for next after previous */ + BLI_strncpy(name, soops->search_string, sizeof(name)); + flags= soops->search_flags; + + /* try to find matching element */ + te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); + if (te==NULL) { + /* no more matches after previous, start from beginning again */ + prevFound= 1; + te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound); + } + } + else { + /* pop up panel - no previous, or user didn't want search after previous */ + strcpy(name, ""); +// XXX if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) { +// te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound); +// } +// else return; /* XXX RETURN! XXX */ + } + + /* do selection and reveal */ + if (te) { + tselem= TREESTORE(te); + if (tselem) { + /* expand branches so that it will be visible, we need to get correct coordinates */ + if( outliner_open_back(soops, te)) + outliner_set_coordinates(ar, soops); + + /* deselect all visible, and select found element */ + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + tselem->flag |= TSE_SELECTED; + + /* make te->ys center of view */ + ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/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)); + + /* make te->xs ==> te->xend center of view */ + xdelta = (int)(te->xs - ar->v2d.cur.xmin); + ar->v2d.cur.xmin += xdelta; + ar->v2d.cur.xmax += xdelta; + + /* store selection */ + soops->search_tse= *tselem; + + BLI_strncpy(soops->search_string, name, 33); + soops->search_flags= flags; + + /* redraw */ + soops->storeflag |= SO_TREESTORE_REDRAW; + } + } + else { + /* no tree-element found */ + BKE_report(reports, RPT_WARNING, "Not found: %s", name); + } +} +#endif + +/* Show One Level ----------------------------------------------- */ + +/* helper function for Show/Hide one level operator */ +static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + if(open) { + if(curlevel<=level) tselem->flag &= ~TSE_CLOSED; + } + else { + if(curlevel>=level) tselem->flag |= TSE_CLOSED; + } + + outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open); + } +} + +static int outliner_one_level_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + int add= RNA_boolean_get(op->ptr, "open"); + int level; + + level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1); + if(add==1) { + if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1); + } + else { + if(level==0) level= outliner_count_levels(soops, &soops->tree, 0); + if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0); + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_one_level(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show/Hide One Level"; + ot->idname= "OUTLINER_OT_show_one_level"; + ot->description= "Expand/collapse all entries by one level"; + + /* callbacks */ + ot->exec= outliner_one_level_exec; + ot->poll= ED_operator_outliner_active; + + /* no undo or registry, UI option */ + + /* properties */ + RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep."); +} + +/* Show Hierarchy ----------------------------------------------- */ + +/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/ +static int subtree_has_objects(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==ID_OB) return 1; + if( subtree_has_objects(soops, &te->subtree)) return 1; + } + return 0; +} + +/* recursive helper function for Show Hierarchy operator */ +static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + + /* open all object elems, close others */ + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + + if(tselem->type==0) { + if(te->idcode==ID_SCE) { + if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED; + else tselem->flag &= ~TSE_CLOSED; + } + else if(te->idcode==ID_OB) { + if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + } + } + else tselem->flag |= TSE_CLOSED; + + if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree); + } +} + +/* show entire object level hierarchy */ +static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + ARegion *ar= CTX_wm_region(C); + Scene *scene= CTX_data_scene(C); + + /* recursively open/close levels */ + tree_element_show_hierarchy(scene, soops, &soops->tree); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_show_hierarchy(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Show Hierarchy"; + ot->idname= "OUTLINER_OT_show_hierarchy"; + ot->description= "Open all object entries and close all others"; + + /* callbacks */ + ot->exec= outliner_show_hierarchy_exec; + ot->poll= ED_operator_outliner_active; // TODO: shouldn't be allowed in RNA views... + + /* no undo or registry, UI option */ +} + +/* ************************************************************** */ +/* ANIMATO OPERATIONS */ +/* KeyingSet and Driver Creation - Helper functions */ + +/* specialised poll callback for these operators to work in Datablocks view only */ +static int ed_operator_outliner_datablocks_active(bContext *C) +{ + ScrArea *sa= CTX_wm_area(C); + if ((sa) && (sa->spacetype==SPACE_OUTLINER)) { + SpaceOops *so= CTX_wm_space_outliner(C); + return (so->outlinevis == SO_DATABLOCKS); + } + return 0; +} + + +/* Helper func to extract an RNA path from selected tree element + * NOTE: the caller must zero-out all values of the pointers that it passes here first, as + * this function does not do that yet + */ +static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, + ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode)) +{ + ListBase hierarchy = {NULL, NULL}; + LinkData *ld; + TreeElement *tem, *temnext, *temsub; + TreeStoreElem *tse, *tsenext; + PointerRNA *ptr, *nextptr; + PropertyRNA *prop; + char *newpath=NULL; + + /* optimise tricks: + * - Don't do anything if the selected item is a 'struct', but arrays are allowed + */ + if (tselem->type == TSE_RNA_STRUCT) + return; + + /* Overview of Algorithm: + * 1. Go up the chain of parents until we find the 'root', taking note of the + * levels encountered in reverse-order (i.e. items are added to the start of the list + * for more convenient looping later) + * 2. Walk down the chain, adding from the first ID encountered + * (which will become the 'ID' for the KeyingSet Path), and build a + * path as we step through the chain + */ + + /* step 1: flatten out hierarchy of parents into a flat chain */ + for (tem= te->parent; tem; tem= tem->parent) { + ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()"); + ld->data= tem; + BLI_addhead(&hierarchy, ld); + } + + /* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */ + for (ld= hierarchy.first; ld; ld= ld->next) { + /* get data */ + tem= (TreeElement *)ld->data; + tse= TREESTORE(tem); + ptr= &tem->rnaptr; + prop= tem->directdata; + + /* check if we're looking for first ID, or appending to path */ + if (*id) { + /* just 'append' property to path + * - to prevent memory leaks, we must write to newpath not path, then free old path + swap them + */ + if(tse->type == TSE_RNA_PROPERTY) { + if(RNA_property_type(prop) == PROP_POINTER) { + /* for pointer we just append property name */ + newpath= RNA_path_append(*path, ptr, prop, 0, NULL); + } + else if(RNA_property_type(prop) == PROP_COLLECTION) { + char buf[128], *name; + + temnext= (TreeElement*)(ld->next->data); + tsenext= TREESTORE(temnext); + + nextptr= &temnext->rnaptr; + name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf)); + + if(name) { + /* if possible, use name as a key in the path */ + newpath= RNA_path_append(*path, NULL, prop, 0, name); + + if(name != buf) + MEM_freeN(name); + } + else { + /* otherwise use index */ + int index= 0; + + for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++) + if(temsub == temnext) + break; + + newpath= RNA_path_append(*path, NULL, prop, index, NULL); + } + + ld= ld->next; + } + } + + if(newpath) { + if (*path) MEM_freeN(*path); + *path= newpath; + newpath= NULL; + } + } + else { + /* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */ + if (tse->type == TSE_RNA_STRUCT) { + /* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */ + if(RNA_struct_is_ID(ptr->type)) { + *id= (ID *)ptr->data; + + /* clear path */ + if(*path) { + MEM_freeN(*path); + path= NULL; + } + } + } + } + } + + /* step 3: if we've got an ID, add the current item to the path */ + if (*id) { + /* add the active property to the path */ + ptr= &te->rnaptr; + prop= te->directdata; + + /* array checks */ + if (tselem->type == TSE_RNA_ARRAY_ELEM) { + /* item is part of an array, so must set the array_index */ + *array_index= te->index; + } + else if (RNA_property_array_length(ptr, prop)) { + /* entire array was selected, so keyframe all */ + *flag |= KSP_FLAG_WHOLE_ARRAY; + } + + /* path */ + newpath= RNA_path_append(*path, NULL, prop, 0, NULL); + if (*path) MEM_freeN(*path); + *path= newpath; + } + + /* free temp data */ + BLI_freelistN(&hierarchy); +} + +/* =============================================== */ +/* Driver Operations */ + +/* These operators are only available in databrowser mode for now, as + * they depend on having RNA paths and/or hierarchies available. + */ +enum { + DRIVERS_EDITMODE_ADD = 0, + DRIVERS_EDITMODE_REMOVE, +} /*eDrivers_EditModes*/; + +/* Utilities ---------------------------------- */ + +/* Recursively iterate over tree, finding and working on selected items */ +static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= tree->first; te; te=te->next) { + tselem= TREESTORE(te); + + /* if item is selected, perform operation */ + if (tselem->flag & TSE_SELECTED) { + ID *id= NULL; + char *path= NULL; + int array_index= 0; + short flag= 0; + short groupmode= KSP_GROUP_KSNAME; + + /* check if RNA-property described by this selected element is an animateable prop */ + if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { + /* get id + path + index info from the selected element */ + tree_element_to_path(soops, te, tselem, + &id, &path, &array_index, &flag, &groupmode); + } + + /* only if ID and path were set, should we perform any actions */ + if (id && path) { + short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR; + int arraylen = 1; + + /* array checks */ + if (flag & KSP_FLAG_WHOLE_ARRAY) { + /* entire array was selected, so add drivers for all */ + arraylen= RNA_property_array_length(&te->rnaptr, te->directdata); + } + else + arraylen= array_index; + + /* we should do at least one step */ + if (arraylen == array_index) + arraylen++; + + /* for each array element we should affect, add driver */ + for (; array_index < arraylen; array_index++) { + /* action depends on mode */ + switch (mode) { + case DRIVERS_EDITMODE_ADD: + { + /* add a new driver with the information obtained (only if valid) */ + ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON); + } + break; + case DRIVERS_EDITMODE_REMOVE: + { + /* remove driver matching the information obtained (only if valid) */ + ANIM_remove_driver(reports, id, path, array_index, dflags); + } + break; + } + } + + /* free path, since it had to be generated */ + MEM_freeN(path); + } + + + } + + /* go over sub-tree */ + if ((tselem->flag & TSE_CLOSED)==0) + do_outliner_drivers_editop(soops, &te->subtree, reports, mode); + } +} + +/* Add Operator ---------------------------------- */ + +static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD); + + /* send notifiers */ + WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) +{ + /* api callbacks */ + ot->idname= "OUTLINER_OT_drivers_add_selected"; + ot->name= "Add Drivers for Selected"; + ot->description= "Add drivers to selected items"; + + /* api callbacks */ + ot->exec= outliner_drivers_addsel_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + + +/* Remove Operator ---------------------------------- */ + +static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE); + + /* send notifiers */ + WM_event_add_notifier(C, ND_KEYS, NULL); // XXX + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_drivers_delete_selected"; + ot->name= "Delete Drivers for Selected"; + ot->description= "Delete drivers assigned to selected items"; + + /* api callbacks */ + ot->exec= outliner_drivers_deletesel_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* =============================================== */ +/* Keying Set Operations */ + +/* These operators are only available in databrowser mode for now, as + * they depend on having RNA paths and/or hierarchies available. + */ +enum { + KEYINGSET_EDITMODE_ADD = 0, + KEYINGSET_EDITMODE_REMOVE, +} /*eKeyingSet_EditModes*/; + +/* Utilities ---------------------------------- */ + +/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */ +// TODO: should this be an API func? +static KeyingSet *verify_active_keyingset(Scene *scene, short add) +{ + KeyingSet *ks= NULL; + + /* sanity check */ + if (scene == NULL) + return NULL; + + /* try to find one from scene */ + if (scene->active_keyingset > 0) + ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1); + + /* add if none found */ + // XXX the default settings have yet to evolve + if ((add) && (ks==NULL)) { + ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0); + scene->active_keyingset= BLI_countlist(&scene->keyingsets); + } + + return ks; +} + +/* Recursively iterate over tree, finding and working on selected items */ +static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= tree->first; te; te=te->next) { + tselem= TREESTORE(te); + + /* if item is selected, perform operation */ + if (tselem->flag & TSE_SELECTED) { + ID *id= NULL; + char *path= NULL; + int array_index= 0; + short flag= 0; + short groupmode= KSP_GROUP_KSNAME; + + /* check if RNA-property described by this selected element is an animateable prop */ + if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) { + /* get id + path + index info from the selected element */ + tree_element_to_path(soops, te, tselem, + &id, &path, &array_index, &flag, &groupmode); + } + + /* only if ID and path were set, should we perform any actions */ + if (id && path) { + /* action depends on mode */ + switch (mode) { + case KEYINGSET_EDITMODE_ADD: + { + /* add a new path with the information obtained (only if valid) */ + // TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name + BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode); + ks->active_path= BLI_countlist(&ks->paths); + } + break; + case KEYINGSET_EDITMODE_REMOVE: + { + /* find the relevant path, then remove it from the KeyingSet */ + KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode); + + if (ksp) { + /* free path's data */ + BKE_keyingset_free_path(ks, ksp); + + ks->active_path= 0; + } + } + break; + } + + /* free path, since it had to be generated */ + MEM_freeN(path); + } + } + + /* go over sub-tree */ + if ((tselem->flag & TSE_CLOSED)==0) + do_outliner_keyingset_editop(soops, ks, &te->subtree, mode); + } +} + +/* Add Operator ---------------------------------- */ + +static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + KeyingSet *ks= verify_active_keyingset(scene, 1); + + /* check for invalid states */ + if (ks == NULL) { + BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set"); + return OPERATOR_CANCELLED; + } + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD); + + /* send notifiers */ + WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_keyingset_add_selected"; + ot->name= "Keying Set Add Selected"; + ot->description= "Add selected items (blue-grey rows) to active Keying Set"; + + /* api callbacks */ + ot->exec= outliner_keyingset_additems_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} + + +/* Remove Operator ---------------------------------- */ + +static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceOops *soutliner= CTX_wm_space_outliner(C); + Scene *scene= CTX_data_scene(C); + KeyingSet *ks= verify_active_keyingset(scene, 1); + + /* check for invalid states */ + if (soutliner == NULL) + return OPERATOR_CANCELLED; + + /* recursively go into tree, adding selected items */ + do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE); + + /* send notifiers */ + WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot) +{ + /* identifiers */ + ot->idname= "OUTLINER_OT_keyingset_remove_selected"; + ot->name= "Keying Set Remove Selected"; + ot->description = "Remove selected items (blue-grey rows) from active Keying Set"; + + /* api callbacks */ + ot->exec= outliner_keyingset_removeitems_exec; + ot->poll= ed_operator_outliner_datablocks_active; + + /* flags */ + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; +} diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index cbb26d79c4b..85bbbd4fffb 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -44,6 +44,8 @@ struct TreeStoreElem; struct bContext; struct Scene; struct ARegion; +struct ID; +struct Object; typedef struct TreeElement { struct TreeElement *next, *prev, *parent; @@ -107,27 +109,65 @@ typedef struct TreeElement { /* button events */ #define OL_NAMEBUTTON 1 +/* get TreeStoreElem associated with a TreeElement + * < a: (TreeElement) tree element to find stored element for + */ +#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL) -/* outliner_ops.c */ -void outliner_operatortypes(void); -void outliner_keymap(struct wmKeyConfig *keyconf); +/* size constants */ +#define OL_Y_OFFSET 2 -/* outliner_header.c */ -void outliner_header_buttons(const struct bContext *C, struct ARegion *ar); +#define OL_TOG_RESTRICT_VIEWX (UI_UNIT_X*3) +#define OL_TOG_RESTRICT_SELECTX (UI_UNIT_X*2) +#define OL_TOG_RESTRICT_RENDERX UI_UNIT_X + +#define OL_TOGW OL_TOG_RESTRICT_VIEWX + +#define OL_RNA_COLX (UI_UNIT_X*15) +#define OL_RNA_COL_SIZEX (UI_UNIT_X*7.5) +#define OL_RNA_COL_SPACEX (UI_UNIT_X*2.5) + + +/* outliner_tree.c ----------------------------------------------- */ + +void outliner_free_tree(ListBase *lb); + +TreeElement *outliner_find_tse(struct SpaceOops *soops, TreeStoreElem *tse); +TreeElement *outliner_find_id(struct SpaceOops *soops, ListBase *lb, struct ID *id); +struct ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode); + +void outliner_build_tree(struct Main *mainvar, struct Scene *scene, struct SpaceOops *soops); + +/* outliner_draw.c ---------------------------------------------- */ -/* outliner.c */ -void outliner_free_tree(struct ListBase *lb); -void outliner_select(struct SpaceOops *soops, struct ListBase *lb, int *index, short *selecting); void draw_outliner(const struct bContext *C); +/* outliner_select.c -------------------------------------------- */ + +void outliner_select(struct SpaceOops *soops, ListBase *lb, int *index, short *selecting); + +int tree_element_type_active(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set); +int tree_element_active(struct bContext *C, struct Scene *scene, SpaceOops *soops, TreeElement *te, int set); + +/* outliner_edit.c ---------------------------------------------- */ + +void outliner_do_object_operation(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, struct ListBase *lb, + void (*operation_cb)(struct bContext *C, struct Scene *scene, struct TreeElement *, struct TreeStoreElem *, TreeStoreElem *)); + +int common_restrict_check(struct bContext *C, struct Object *ob); + +int outliner_has_one_flag(struct SpaceOops *soops, ListBase *lb, short flag, short curlevel); +void outliner_set_flag(struct SpaceOops *soops, ListBase *lb, short flag, short set); + +void object_toggle_visibility_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void object_toggle_selectability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); +void object_toggle_renderability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem); + +/* ...................................................... */ + void OUTLINER_OT_item_activate(struct wmOperatorType *ot); void OUTLINER_OT_item_openclose(struct wmOperatorType *ot); void OUTLINER_OT_item_rename(struct wmOperatorType *ot); -void OUTLINER_OT_operation(struct wmOperatorType *ot); -void OUTLINER_OT_object_operation(struct wmOperatorType *ot); -void OUTLINER_OT_group_operation(struct wmOperatorType *ot); -void OUTLINER_OT_id_operation(struct wmOperatorType *ot); -void OUTLINER_OT_data_operation(struct wmOperatorType *ot); void OUTLINER_OT_show_one_level(struct wmOperatorType *ot); void OUTLINER_OT_show_active(struct wmOperatorType *ot); @@ -148,5 +188,23 @@ void OUTLINER_OT_keyingset_remove_selected(struct wmOperatorType *ot); void OUTLINER_OT_drivers_add_selected(struct wmOperatorType *ot); void OUTLINER_OT_drivers_delete_selected(struct wmOperatorType *ot); -#endif /* ED_OUTLINER_INTERN_H */ +/* outliner_tools.c ---------------------------------------------- */ + +void OUTLINER_OT_operation(struct wmOperatorType *ot); +void OUTLINER_OT_object_operation(struct wmOperatorType *ot); +void OUTLINER_OT_group_operation(struct wmOperatorType *ot); +void OUTLINER_OT_id_operation(struct wmOperatorType *ot); +void OUTLINER_OT_data_operation(struct wmOperatorType *ot); +void OUTLINER_OT_animdata_operation(struct wmOperatorType *ot); +void OUTLINER_OT_action_set(struct wmOperatorType *ot); + +/* ---------------------------------------------------------------- */ +/* outliner_ops.c */ +void outliner_operatortypes(void); +void outliner_keymap(struct wmKeyConfig *keyconf); + +/* outliner_header.c */ +void outliner_header_buttons(const struct bContext *C, struct ARegion *ar); + +#endif /* ED_OUTLINER_INTERN_H */ diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index 8bd30235931..f3e2c352172 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -57,6 +57,13 @@ void outliner_operatortypes(void) WM_operatortype_append(OUTLINER_OT_group_operation); WM_operatortype_append(OUTLINER_OT_id_operation); WM_operatortype_append(OUTLINER_OT_data_operation); + WM_operatortype_append(OUTLINER_OT_animdata_operation); + +#if 0 // GSOC_PEPPER + + WM_operatortype_append(OUTLINER_OT_action_set); + +#endif // GSOC_PEPPER WM_operatortype_append(OUTLINER_OT_show_one_level); WM_operatortype_append(OUTLINER_OT_show_active); diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c new file mode 100644 index 00000000000..620a936a944 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -0,0 +1,867 @@ +/* + * $Id$ + * + * ***** 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) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_select.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ +/* Outliner Selection (grey-blue highlight for rows) */ + +void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) { + tselem= TREESTORE(te); + + /* if we've encountered the right item, set its 'Outliner' selection status */ + if (*index == 0) { + /* this should be the last one, so no need to do anything with index */ + if ((te->flag & TE_ICONROW)==0) { + /* -1 value means toggle testing for now... */ + if (*selecting == -1) { + if (tselem->flag & TSE_SELECTED) + *selecting= 0; + else + *selecting= 1; + } + + /* set selection */ + if (*selecting) + tselem->flag |= TSE_SELECTED; + else + tselem->flag &= ~TSE_SELECTED; + } + } + else if ((tselem->flag & TSE_CLOSED)==0) { + /* Only try selecting sub-elements if we haven't hit the right element yet + * + * Hack warning: + * Index must be reduced before supplying it to the sub-tree to try to do + * selection, however, we need to increment it again for the next loop to + * function correctly + */ + (*index)--; + outliner_select(soops, &te->subtree, index, selecting); + (*index)++; + } + } +} + +/* ****************************************************** */ +/* Outliner Element Selection/Activation on Click */ + +static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Scene *sce; + + /* paranoia check */ + if(te->idcode!=ID_SCE) + return 0; + sce= (Scene *)tselem->id; + + if(set) { + sce->r.actlay= tselem->nr; + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce); + } + else { + return sce->r.actlay==tselem->nr; + } + return 0; +} + +static int tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeStoreElem *tselem= TREESTORE(te); + Scene *sce; + Base *base; + Object *ob= NULL; + + /* if id is not object, we search back */ + if(te->idcode==ID_OB) ob= (Object *)tselem->id; + else { + ob= (Object *)outliner_search_back(soops, te, ID_OB); + if(ob==OBACT) return 0; + } + if(ob==NULL) return 0; + + sce= (Scene *)outliner_search_back(soops, te, ID_SCE); + if(sce && scene != sce) { + ED_screen_set_scene(C, sce); + } + + /* find associated base in current scene */ + base= object_in_scene(ob, scene); + + if(base) { + if(set==2) { + /* swap select */ + if(base->flag & SELECT) + ED_base_object_select(base, BA_DESELECT); + else + ED_base_object_select(base, BA_SELECT); + } + else { + /* deleselect all */ + scene_deselect_all(scene); + ED_base_object_select(base, BA_SELECT); + } + if(C) { + ED_base_object_activate(C, base); /* adds notifier */ + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + } + + if(ob!=scene->obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + return 1; +} + +static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tes; + Object *ob; + + /* we search for the object parent */ + ob= (Object *)outliner_search_back(soops, te, ID_OB); + // note: ob->matbits can be NULL when a local object points to a library mesh. + if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia + + /* searching in ob mat array? */ + tes= te->parent; + if(tes->idcode==ID_OB) { + if(set) { + ob->actcol= te->index+1; + ob->matbits[te->index]= 1; // make ob material active too + ob->colbits |= (1<index); + } + else { + if(ob->actcol == te->index+1) + if(ob->matbits[te->index]) return 1; + } + } + /* or we search for obdata material */ + else { + if(set) { + ob->actcol= te->index+1; + ob->matbits[te->index]= 0; // make obdata material active too + ob->colbits &= ~(1<index); + } + else { + if(ob->actcol == te->index+1) + if(ob->matbits[te->index]==0) return 1; + } + } + if(set) { + WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); + } + return 0; +} + +static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tep; + TreeStoreElem /* *tselem,*/ *tselemp; + Object *ob=OBACT; + SpaceButs *sbuts=NULL; + + if(ob==NULL) return 0; // no active object + + /*tselem= TREESTORE(te);*/ /*UNUSED*/ + + /* find buttons area (note, this is undefined really still, needs recode in blender) */ + /* XXX removed finding sbuts */ + + /* where is texture linked to? */ + tep= te->parent; + tselemp= TREESTORE(tep); + + if(tep->idcode==ID_WO) { + World *wrld= (World *)tselemp->id; + + if(set) { + if(sbuts) { + // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 1; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + wrld->texact= te->index; + } + else if(tselemp->id == (ID *)(scene->world)) { + if(wrld->texact==te->index) return 1; + } + } + else if(tep->idcode==ID_LA) { + Lamp *la= (Lamp *)tselemp->id; + if(set) { + if(sbuts) { + // XXX sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 2; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + la->texact= te->index; + } + else { + if(tselemp->id == ob->data) { + if(la->texact==te->index) return 1; + } + } + } + else if(tep->idcode==ID_MA) { + Material *ma= (Material *)tselemp->id; + if(set) { + if(sbuts) { + //sbuts->tabo= TAB_SHADING_TEX; // hack from header_buttonswin.c + // XXX sbuts->texfrom= 0; + } +// XXX extern_set_butspace(F6KEY, 0); // force shading buttons texture + ma->texact= (char)te->index; + + /* also set active material */ + ob->actcol= tep->index+1; + } + else if(tep->flag & TE_ACTIVE) { // this is active material + if(ma->texact==te->index) return 1; + } + } + + if(set) + WM_event_add_notifier(C, NC_TEXTURE, NULL); + + return 0; +} + + +static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + Object *ob; + + /* we search for the object parent */ + ob= (Object *)outliner_search_back(soops, te, ID_OB); + if(ob==NULL || ob!=OBACT) return 0; // just paranoia + + if(set) { +// XXX extern_set_butspace(F5KEY, 0); + } + else return 1; + + return 0; +} + +static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + Object *ob= (Object *)outliner_search_back(soops, te, ID_OB); + + if(set) + return 0; + + return scene->camera == ob; +} + +static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + TreeElement *tep; + TreeStoreElem *tselem=NULL; + Scene *sce=NULL; + + tep= te->parent; + if(tep) { + tselem= TREESTORE(tep); + sce= (Scene *)tselem->id; + } + + if(set) { // make new scene active + if(sce && scene != sce) { + ED_screen_set_scene(C, sce); + } + } + + if(tep==NULL || tselem->id == (ID *)scene) { + if(set) { +// XXX extern_set_butspace(F8KEY, 0); + } + else { + return 1; + } + } + return 0; +} + +static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob; + + /* id in tselem is object */ + ob= (Object *)tselem->id; + if(set) { + ob->actdef= te->index+1; + DAG_id_tag_update(&ob->id, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob); + } + else { + if(ob==OBACT) + if(ob->actdef== te->index+1) return 1; + } + return 0; +} + +static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + + if(set) { + if (ob->pose) { + ob->pose->active_group= te->index+1; + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + } + } + else { + if(ob==OBACT && ob->pose) { + if (ob->pose->active_group== te->index+1) return 1; + } + } + return 0; +} + +static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + bArmature *arm= ob->data; + bPoseChannel *pchan= te->directdata; + + if(set) { + if(!(pchan->bone->flag & BONE_HIDDEN_P)) { + + if(set==2) ED_pose_deselectall(ob, 2); // 2 = clear active tag + else ED_pose_deselectall(ob, 0); // 0 = deselect + + if(set==2 && (pchan->bone->flag & BONE_SELECTED)) { + pchan->bone->flag &= ~BONE_SELECTED; + } else { + pchan->bone->flag |= BONE_SELECTED; + arm->act_bone= pchan->bone; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob); + + } + } + else { + if(ob==OBACT && ob->pose) { + if (pchan->bone->flag & BONE_SELECTED) return 1; + } + } + return 0; +} + +static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set) +{ + bArmature *arm= (bArmature *)tselem->id; + Bone *bone= te->directdata; + + 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); + + if(set==2 && (bone->flag & BONE_SELECTED)) { + bone->flag &= ~BONE_SELECTED; + } else { + bone->flag |= BONE_SELECTED; + arm->act_bone= bone; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT); + } + } + else { + Object *ob= OBACT; + + if(ob && ob->data==arm) { + if (bone->flag & BONE_SELECTED) return 1; + } + } + return 0; +} + + +/* ebones only draw in editmode armature */ +static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel) +{ + if(sel) { + ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL; + arm->act_edbone= ebone; + // flush to parent? + if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL; + } + else { + ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL); + // flush to parent? + if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL; + } + + WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit); +} +static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + bArmature *arm= scene->obedit->data; + EditBone *ebone= te->directdata; + + if(set==1) { + if(!(ebone->flag & BONE_HIDDEN_A)) { + ED_armature_deselect_all(scene->obedit, 0); // deselect + tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); + return 1; + } + } + else if (set==2) { + if(!(ebone->flag & BONE_HIDDEN_A)) { + if(!(ebone->flag & BONE_SELECTED)) { + tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE); + return 1; + } + else { + /* entirely selected, so de-select */ + tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE); + return 0; + } + } + } + else if (ebone->flag & BONE_SELECTED) { + return 1; + } + return 0; +} + +static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + +// XXX extern_set_butspace(F9KEY, 0); + } + + return 0; +} + +static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob); + +// XXX extern_set_butspace(F7KEY, 0); + } + + return 0; +} + +static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + if(set) { + Object *ob= (Object *)tselem->id; + + WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); +// XXX extern_set_butspace(F7KEY, 0); + } + + return 0; +} + +static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set)) +{ + // XXX removed + return 0; +} + +static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set) +{ + Object *ob= (Object *)tselem->id; + Base *base= object_in_scene(ob, scene); + + if(set) { + if(scene->obedit) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + if(ob->mode & OB_MODE_POSE) + ED_armature_exit_posemode(C, base); + else + ED_armature_enter_posemode(C, base); + } + else { + if(ob->mode & OB_MODE_POSE) return 1; + } + return 0; +} + +static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + Sequence *seq= (Sequence*) te->directdata; + + if(set) { +// XXX select_single_seq(seq, 1); + } + else { + if(seq->flag & SELECT) + return(1); + } + return(0); +} + +static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + Sequence *seq, *p; + Editing *ed= seq_give_editing(scene, FALSE); + + seq= (Sequence*)te->directdata; + if(set==0) { + if(seq->flag & SELECT) + return(1); + return(0); + } + +// XXX select_single_seq(seq, 1); + p= ed->seqbasep->first; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + +// if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) +// XXX select_single_seq(p, 0); + p= p->next; + } + return(0); +} + +static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set) +{ + wmKeyMapItem *kmi= te->directdata; + + if(set==0) { + if(kmi->flag & KMI_INACTIVE) return 0; + return 1; + } + else { + kmi->flag ^= KMI_INACTIVE; + } + return 0; +} + +/* ---------------------------------------------- */ + +/* generic call for ID data check or make/check active in UI */ +int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) +{ + + switch(te->idcode) { + /* Note: no ID_OB: objects are handled specially to allow multiple + selection. See do_outliner_item_activate. */ + case ID_MA: + return tree_element_active_material(C, scene, soops, te, set); + case ID_WO: + return tree_element_active_world(C, scene, soops, te, set); + case ID_LA: + return tree_element_active_lamp(C, scene, soops, te, set); + case ID_TE: + return tree_element_active_texture(C, scene, soops, te, set); + case ID_TXT: + return tree_element_active_text(C, scene, soops, te, set); + case ID_CA: + return tree_element_active_camera(C, scene, soops, te, set); + } + return 0; +} + +/* generic call for non-id data to make/check active in UI */ +/* Context can be NULL when set==0 */ +int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set) +{ + switch(tselem->type) { + case TSE_DEFGROUP: + return tree_element_active_defgroup(C, scene, te, tselem, set); + case TSE_BONE: + return tree_element_active_bone(C, scene, te, tselem, set); + case TSE_EBONE: + return tree_element_active_ebone(C, scene, te, tselem, set); + case TSE_MODIFIER: + return tree_element_active_modifier(C, te, tselem, set); + case TSE_LINKED_OB: + if(set) tree_element_set_active_object(C, scene, soops, te, set); + else if(tselem->id==(ID *)OBACT) return 1; + break; + case TSE_LINKED_PSYS: + return tree_element_active_psys(C, scene, te, tselem, set); + case TSE_POSE_BASE: + return tree_element_active_pose(C, scene, te, tselem, set); + case TSE_POSE_CHANNEL: + return tree_element_active_posechannel(C, scene, te, tselem, set); + case TSE_CONSTRAINT: + return tree_element_active_constraint(C, te, tselem, set); + case TSE_R_LAYER: + return tree_element_active_renderlayer(C, te, tselem, set); + case TSE_POSEGRP: + return tree_element_active_posegroup(C, scene, te, tselem, set); + case TSE_SEQUENCE: + return tree_element_active_sequence(te, tselem, set); + case TSE_SEQUENCE_DUP: + return tree_element_active_sequence_dup(scene, te, tselem, set); + case TSE_KEYMAP_ITEM: + return tree_element_active_keymap_item(C, te, tselem, set); + + } + return 0; +} + +/* ================================================ */ + +static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2]) +{ + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + TreeStoreElem *tselem= TREESTORE(te); + int openclose= 0; + + /* open close icon */ + if((te->flag & TE_ICONROW)==0) { // hidden icon, no open/close + if( mval[0]>te->xs && mval[0]xs+UI_UNIT_X) + openclose= 1; + } + + if(openclose) { + /* all below close/open? */ + if(extend) { + tselem->flag &= ~TSE_CLOSED; + outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1)); + } + else { + if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED; + else tselem->flag |= TSE_CLOSED; + + } + + return 1; + } + /* name and first icon */ + else if(mval[0]>te->xs+UI_UNIT_X && mval[0]xend) { + + /* always makes active object */ + if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP) + tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0)); + + if(tselem->type==0) { // the lib blocks + /* editmode? */ + if(te->idcode==ID_SCE) { + if(scene!=(Scene *)tselem->id) { + ED_screen_set_scene(C, (Scene *)tselem->id); + } + } + else if(te->idcode==ID_GR) { + Group *gr= (Group *)tselem->id; + GroupObject *gob; + + if(extend) { + int sel= BA_SELECT; + for(gob= gr->gobject.first; gob; gob= gob->next) { + if(gob->ob->flag & SELECT) { + sel= BA_DESELECT; + break; + } + } + + for(gob= gr->gobject.first; gob; gob= gob->next) { + ED_base_object_select(object_in_scene(gob->ob, scene), sel); + } + } + else { + scene_deselect_all(scene); + + for(gob= gr->gobject.first; gob; gob= gob->next) { + if((gob->ob->flag & SELECT) == 0) + ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT); + } + } + + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) { + WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); + } else { // rest of types + tree_element_active(C, scene, soops, te, 1); + } + + } + else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0)); + + return 1; + } + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1; + } + return 0; +} + +/* event can enterkey, then it opens/closes */ +static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event) +{ + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + int extend= RNA_boolean_get(op->ptr, "extend"); + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX) + return OPERATOR_CANCELLED; + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break; + } + + if(te) { + ED_undo_push(C, "Outliner click event"); + } + else { + short selecting= -1; + int row; + + /* get row number - 100 here is just a dummy value since we don't need the column */ + UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, + fmval[0], fmval[1], NULL, &row); + + /* select relevant row */ + outliner_select(soops, &soops->tree, &row, &selecting); + + soops->storeflag |= SO_TREESTORE_REDRAW; + + ED_undo_push(C, "Outliner selection event"); + } + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_item_activate(wmOperatorType *ot) +{ + ot->name= "Activate Item"; + ot->idname= "OUTLINER_OT_item_activate"; + ot->description= "Handle mouse clicks to activate/select items"; + + ot->invoke= outliner_item_activate; + + ot->poll= ED_operator_outliner_active; + + RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation."); +} + +/* ****************************************************** */ diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c new file mode 100644 index 00000000000..f5e1a67010e --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -0,0 +1,1217 @@ +/* + * $Id$ + * + * ***** 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) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_tools.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "outliner_intern.h" + +/* ****************************************************** */ + +/* ************ SELECTION OPERATIONS ********* */ + +static void set_operation_types(SpaceOops *soops, ListBase *lb, + int *scenelevel, + int *objectlevel, + int *idlevel, + int *datalevel) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type) { + if(*datalevel==0) + *datalevel= tselem->type; + else if(*datalevel!=tselem->type) + *datalevel= -1; + } + else { + int idcode= GS(tselem->id->name); + switch(idcode) { + case ID_SCE: + *scenelevel= 1; + break; + case ID_OB: + *objectlevel= 1; + break; + + case ID_ME: case ID_CU: case ID_MB: case ID_LT: + case ID_LA: case ID_AR: case ID_CA: /* case ID_SPK: */ /* GSOC_PEPPER */ + case ID_MA: case ID_TE: case ID_IP: case ID_IM: + case ID_SO: case ID_KE: case ID_WO: case ID_AC: + case ID_NLA: case ID_TXT: case ID_GR: + if(*idlevel==0) *idlevel= idcode; + else if(*idlevel!=idcode) *idlevel= -1; + break; + } + } + } + if((tselem->flag & TSE_CLOSED)==0) { + set_operation_types(soops, &te->subtree, + scenelevel, objectlevel, idlevel, datalevel); + } + } +} + +#if 0 // GSOC_PEPPER + +static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + /* just set action to NULL */ + BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL); +} + +#endif // GSOC_PEPPER + +static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + Material **matar=NULL; + int a, totcol=0; + + if( GS(tsep->id->name)==ID_OB) { + Object *ob= (Object *)tsep->id; + totcol= ob->totcol; + matar= ob->mat; + } + else if( GS(tsep->id->name)==ID_ME) { + Mesh *me= (Mesh *)tsep->id; + totcol= me->totcol; + matar= me->mat; + } + else if( GS(tsep->id->name)==ID_CU) { + Curve *cu= (Curve *)tsep->id; + totcol= cu->totcol; + matar= cu->mat; + } + else if( GS(tsep->id->name)==ID_MB) { + MetaBall *mb= (MetaBall *)tsep->id; + totcol= mb->totcol; + matar= mb->mat; + } + + for(a=0; aindex && matar[a]) { + matar[a]->id.us--; + matar[a]= NULL; + } + } +} + +static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem)) +{ + MTex **mtex= NULL; + int a; + + if( GS(tsep->id->name)==ID_MA) { + Material *ma= (Material *)tsep->id; + mtex= ma->mtex; + } + else if( GS(tsep->id->name)==ID_LA) { + Lamp *la= (Lamp *)tsep->id; + mtex= la->mtex; + } + else if( GS(tsep->id->name)==ID_WO) { + World *wrld= (World *)tsep->id; + mtex= wrld->mtex; + } + else return; + + for(a=0; aindex && mtex[a]) { + if(mtex[a]->tex) { + mtex[a]->tex->id.us--; + mtex[a]->tex= NULL; + } + } + } +} + +static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + + if(tsep) { + if( GS(tsep->id->name)==ID_OB) { + Object *ob= (Object *)tsep->id; + ob->dup_group= NULL; + } + } + else { + unlink_group(group); + } +} + +static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, + void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==0) { + TreeStoreElem *tsep= TREESTORE(te->parent); + operation_cb(C, scene, te, tsep, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb); + } + } +} + +/* */ + +static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) { + base->flag |= SELECT; + base->object->flag |= SELECT; + } +} + +static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) base= object_in_scene((Object *)tselem->id, scene); + if(base) { + base->flag &= ~SELECT; + base->object->flag &= ~SELECT; + } +} + +static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Base *base= (Base *)te->directdata; + + if(base==NULL) + base= object_in_scene((Object *)tselem->id, scene); + if(base) { + // check also library later + if(scene->obedit==base->object) + ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); + + ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); + te->directdata= NULL; + tselem->id= NULL; + } + +} + +static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + if (tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) { + tselem->id->lib= NULL; + tselem->id->flag= LIB_LOCAL; + new_id(NULL, tselem->id, NULL); + } +} + +static void id_fake_user_set_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if ((id) && ((id->flag & LIB_FAKEUSER) == 0)) { + id->flag |= LIB_FAKEUSER; + id_us_plus(id); + } +} + +static void id_fake_user_clear_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if ((id) && (id->flag & LIB_FAKEUSER)) { + id->flag &= ~LIB_FAKEUSER; + id_us_min(id); + } +} + +#if 0 // GSOC_PEPPER + +static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem) +{ + ID *id = tselem->id; + + if (id) { + IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id; + PointerRNA ptr = {{0}}; + PropertyRNA *prop; + + RNA_pointer_create(&iat->id, &RNA_AnimData, iat->adt, &ptr); + prop = RNA_struct_find_property(&ptr, "action"); + + id_single_user(C, id, &ptr, prop); + } +} + +#endif + +static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem) +{ + Group *group= (Group *)tselem->id; + GroupObject *gob; + Base *base; + + for(gob=group->gobject.first; gob; gob=gob->next) { + base= object_in_scene(gob->ob, scene); + if (base) { + base->object->flag |= SELECT; + base->flag |= SELECT; + } else { + /* link to scene */ + base= MEM_callocN( sizeof(Base), "add_base"); + BLI_addhead(&scene->base, base); + base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */ + gob->ob->flag |= SELECT; + base->flag = gob->ob->flag; + base->object= gob->ob; + id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */ + } + } +} + +void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, + void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==0 && te->idcode==ID_OB) { + // when objects selected in other scenes... dunno if that should be allowed + Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE); + if(scene_owner && scene_act != scene_owner) { + ED_screen_set_scene(C, scene_owner); + } + /* important to use 'scene_owner' not scene_act else deleting objects can crash. + * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the + * outliner isnt showing scenes: Visible Layer draw mode for eg. */ + operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb); + } + } +} + +/* ******************************************** */ + +#if 0 // GSOC_PEPPER + +static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + /* just set action to NULL */ + BKE_animdata_set_action(NULL, tselem->id, NULL); +} + +#endif // GSOC_PEPPER + +static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + + /* just free drivers - stored as a list of F-Curves */ + free_fcurves(&iat->adt->drivers); +} + +static void refreshdrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem) +{ + IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id; + FCurve *fcu; + + /* loop over drivers, performing refresh (i.e. check graph_buttons.c and rna_fcurve.c for details) */ + for (fcu = iat->adt->drivers.first; fcu; fcu= fcu->next) { + fcu->flag &= ~FCURVE_DISABLED; + + if (fcu->driver) + fcu->driver->flag &= ~DRIVER_FLAG_INVALID; + } +} + +/* --------------------------------- */ + +static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + bPoseChannel *pchan= (bPoseChannel *)te->directdata; + + if(event==1) + pchan->bone->flag |= BONE_SELECTED; + else if(event==2) + pchan->bone->flag &= ~BONE_SELECTED; + else if(event==3) { + pchan->bone->flag |= BONE_HIDDEN_P; + pchan->bone->flag &= ~BONE_SELECTED; + } + else if(event==4) + pchan->bone->flag &= ~BONE_HIDDEN_P; +} + +static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + Bone *bone= (Bone *)te->directdata; + + if(event==1) + bone->flag |= BONE_SELECTED; + else if(event==2) + bone->flag &= ~BONE_SELECTED; + else if(event==3) { + bone->flag |= BONE_HIDDEN_P; + bone->flag &= ~BONE_SELECTED; + } + else if(event==4) + bone->flag &= ~BONE_HIDDEN_P; +} + +static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem)) +{ + EditBone *ebone= (EditBone *)te->directdata; + + if(event==1) + ebone->flag |= BONE_SELECTED; + else if(event==2) + ebone->flag &= ~BONE_SELECTED; + else if(event==3) { + ebone->flag |= BONE_HIDDEN_A; + ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; + } + else if(event==4) + ebone->flag &= ~BONE_HIDDEN_A; +} + +static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem)) +{ +// Sequence *seq= (Sequence*) te->directdata; + if(event==1) { +// XXX select_single_seq(seq, 1); + } +} + +static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, + void (*operation_cb)(int, TreeElement *, TreeStoreElem *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for(te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->flag & TSE_SELECTED) { + if(tselem->type==type) { + operation_cb(event, te, tselem); + } + } + if((tselem->flag & TSE_CLOSED)==0) { + outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb); + } + } +} + +/* **************************************** */ + +static EnumPropertyItem prop_object_op_types[] = { + {1, "SELECT", 0, "Select", ""}, + {2, "DESELECT", 0, "Deselect", ""}, + {4, "DELETE", 0, "Delete", ""}, + {6, "TOGVIS", 0, "Toggle Visible", ""}, + {7, "TOGSEL", 0, "Toggle Selectable", ""}, + {8, "TOGREN", 0, "Toggle Renderable", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_object_operation_exec(bContext *C, wmOperator *op) +{ + Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int event; + const char *str= NULL; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + + if(event==1) { + Scene *sce= scene; // to be able to delete, scenes are set... + outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb); + if(scene != sce) { + ED_screen_set_scene(C, sce); + } + + str= "Select Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==2) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb); + str= "Deselect Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==4) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb); + DAG_scene_sort(bmain, scene); + str= "Delete Objects"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); + } + else if(event==5) { /* disabled, see above enum (ton) */ + outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb); + str= "Localized Objects"; + } + else if(event==6) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb); + str= "Toggle Visibility"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene); + } + else if(event==7) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb); + str= "Toggle Selectability"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + } + else if(event==8) { + outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb); + str= "Toggle Renderability"; + WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene); + } + + ED_undo_push(C, str); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_object_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Object Operation"; + ot->idname= "OUTLINER_OT_object_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_object_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", ""); +} + +/* **************************************** */ + +static EnumPropertyItem prop_group_op_types[] = { + {1, "UNLINK", 0, "Unlink", ""}, + {2, "LOCAL", 0, "Make Local", ""}, + {3, "LINK", 0, "Link Group Objects to Scene", ""}, + {4, "TOGVIS", 0, "Toggle Visible", ""}, + {5, "TOGSEL", 0, "Toggle Selectable", ""}, + {6, "TOGREN", 0, "Toggle Renderable", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_group_operation_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + + if(event==1) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb); + ED_undo_push(C, "Unlink group"); + } + else if(event==2) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); + ED_undo_push(C, "Localized Data"); + } + else if(event==3) { + outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb); + ED_undo_push(C, "Link Group Objects to Scene"); + } + + + WM_event_add_notifier(C, NC_GROUP, NULL); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_group_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Group Operation"; + ot->idname= "OUTLINER_OT_group_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_group_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", ""); +} + +/* **************************************** */ + +typedef enum eOutlinerIdOpTypes { + OUTLINER_IDOP_INVALID = 0, + + OUTLINER_IDOP_UNLINK, + OUTLINER_IDOP_LOCAL, + OUTLINER_IDOP_SINGLE, + + OUTLINER_IDOP_FAKE_ADD, + OUTLINER_IDOP_FAKE_CLEAR +} eOutlinerIdOpTypes; + +// TODO: implement support for changing the ID-block used +static EnumPropertyItem prop_id_op_types[] = { + {OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""}, + {OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""}, + {OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""}, + {OUTLINER_IDOP_FAKE_ADD, "ADD_FAKE", 0, "Add Fake User", "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", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_id_operation_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + eOutlinerIdOpTypes event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + event= RNA_enum_get(op->ptr, "type"); + + switch (event) { + case OUTLINER_IDOP_UNLINK: + { + /* unlink datablock from its parent */ + switch (idlevel) { + +#if 0 // GSOC_PEPPER + + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + +#endif // GSOC_PEPPER + + case ID_MA: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink material"); + break; + case ID_TE: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb); + + WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL); + ED_undo_push(C, "Unlink texture"); + break; + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } + } + break; + + case OUTLINER_IDOP_LOCAL: + { + /* make local */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb); + ED_undo_push(C, "Localized Data"); + } + break; + +#if 0 // GSOC_PEPPER + + case OUTLINER_IDOP_SINGLE: + { + /* make single user */ + switch (idlevel) { + case ID_AC: + outliner_do_libdata_operation(C, scene, soops, &soops->tree, singleuser_action_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Single-User Action"); + break; + + default: + BKE_report(op->reports, RPT_WARNING, "Not Yet"); + break; + } + } + break; + +#endif // GSOC_PEPPER + + case OUTLINER_IDOP_FAKE_ADD: + { + /* set fake user */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_set_cb); + + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + ED_undo_push(C, "Add Fake User"); + } + break; + + case OUTLINER_IDOP_FAKE_CLEAR: + { + /* clear fake user */ + outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_clear_cb); + + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + ED_undo_push(C, "Clear Fake User"); + } + break; + + default: + // invalid - unhandled + break; + } + + /* wrong notifier still... */ + WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL); + + // XXX: this is just so that outliner is always up to date + WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_id_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner ID data Operation"; + ot->idname= "OUTLINER_OT_id_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_id_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", ""); +} + +/* **************************************** */ + +static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *lb, ID *newid, + void (*operation_cb)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *)) +{ + TreeElement *te; + TreeStoreElem *tselem; + + for (te=lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if (tselem->flag & TSE_SELECTED) { + if(tselem->type==type) { + TreeStoreElem *tsep = TREESTORE(te->parent); + operation_cb(te, tselem, tsep, newid); + } + } + if ((tselem->flag & TSE_CLOSED)==0) { + outliner_do_id_set_operation(soops, type, &te->subtree, newid, operation_cb); + } + } +} + +/* ------------------------------------------ */ + +#if 0 // GSOC_PEPPER + +static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId) +{ + bAction *act = (bAction *)actId; + + if (tselem->type == TSE_ANIM_DATA) { + /* "animation" entries - action is child of this */ + BKE_animdata_set_action(NULL, tselem->id, act); + } + /* TODO: if any other "expander" channels which own actions need to support this menu, + * add: tselem->type = ... + */ + else if (tsep && (tsep->type == TSE_ANIM_DATA)) { + /* "animation" entries case again */ + BKE_animdata_set_action(NULL, tsep->id, act); + } + // TODO: other cases not supported yet +} + +static int outliner_action_set_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + + bAction *act; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + /* get action to use */ + act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action")); + + if (act == NULL) { + BKE_report(op->reports, RPT_ERROR, "No valid Action to add."); + return OPERATOR_CANCELLED; + } + else if (act->idroot == 0) { + /* hopefully in this case (i.e. library of userless actions), the user knows what they're doing... */ + BKE_reportf(op->reports, RPT_WARNING, + "Action '%s' does not specify what datablocks it can be used on. Try setting the 'ID Root Type' setting from the Datablocks Editor for this Action to avoid future problems", + act->id.name+2); + } + + /* perform action if valid channel */ + if (datalevel == TSE_ANIM_DATA) + outliner_do_id_set_operation(soops, datalevel, &soops->tree, (ID*)act, actionset_id_cb); + else if (idlevel == ID_AC) + outliner_do_id_set_operation(soops, idlevel, &soops->tree, (ID*)act, actionset_id_cb); + else + return OPERATOR_CANCELLED; + + /* set notifier that things have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Set action"); + + /* done */ + return OPERATOR_FINISHED; +} + +void OUTLINER_OT_action_set(wmOperatorType *ot) +{ + PropertyRNA *prop; + + /* identifiers */ + ot->name= "Outliner Set Action"; + ot->idname= "OUTLINER_OT_action_set"; + ot->description= "Change the active action used"; + + /* api callbacks */ + ot->invoke= WM_enum_search_invoke; + ot->exec= outliner_action_set_exec; + ot->poll= ED_operator_outliner_active; + + /* flags */ + ot->flag= 0; + + /* props */ + // TODO: this would be nicer as an ID-pointer... + prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", ""); + RNA_def_enum_funcs(prop, RNA_action_itemf); + ot->prop= prop; +} + +#endif // GSOC_PEPPER + +/* **************************************** */ + +typedef enum eOutliner_AnimDataOps { + OUTLINER_ANIMOP_INVALID = 0, + + OUTLINER_ANIMOP_SET_ACT, + OUTLINER_ANIMOP_CLEAR_ACT, + + OUTLINER_ANIMOP_REFRESH_DRV, + OUTLINER_ANIMOP_CLEAR_DRV + + //OUTLINER_ANIMOP_COPY_DRIVERS, + //OUTLINER_ANIMOP_PASTE_DRIVERS +} eOutliner_AnimDataOps; + +static EnumPropertyItem prop_animdata_op_types[] = { + {OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""}, + {OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""}, + {OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""}, + //{OUTLINER_ANIMOP_COPY_DRIVERS, "COPY_DRIVERS", 0, "Copy Drivers", ""}, + //{OUTLINER_ANIMOP_PASTE_DRIVERS, "PASTE_DRIVERS", 0, "Paste Drivers", ""}, + {OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_animdata_operation_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + eOutliner_AnimDataOps event; + short updateDeps = 0; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + event= RNA_enum_get(op->ptr, "type"); + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if (datalevel != TSE_ANIM_DATA) + return OPERATOR_CANCELLED; + + /* perform the core operation */ + switch (event) { + +#if 0 // GSOC_PEPPER + + case OUTLINER_ANIMOP_SET_ACT: + /* delegate once again... */ + WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL); + break; + + case OUTLINER_ANIMOP_CLEAR_ACT: + /* clear active action - using standard rules */ + outliner_do_data_operation(soops, datalevel, event, &soops->tree, unlinkact_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL); + ED_undo_push(C, "Unlink action"); + break; + +#endif // GSOC_PEPPER + + case OUTLINER_ANIMOP_REFRESH_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + //ED_undo_push(C, "Refresh Drivers"); /* no undo needed - shouldn't have any impact? */ + updateDeps = 1; + break; + + case OUTLINER_ANIMOP_CLEAR_DRV: + outliner_do_data_operation(soops, datalevel, event, &soops->tree, cleardrivers_animdata_cb); + + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL); + ED_undo_push(C, "Clear Drivers"); + updateDeps = 1; + break; + + default: // invalid + break; + } + + /* update dependencies */ + if (updateDeps) { + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + + /* rebuild depsgraph for the new deps */ + DAG_scene_sort(bmain, scene); + + /* force an update of depsgraph */ + DAG_ids_flush_update(bmain, 0); + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_animdata_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Animation Data Operation"; + ot->idname= "OUTLINER_OT_animdata_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_animdata_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_animdata_op_types, 0, "Animation Operation", ""); +} + +/* **************************************** */ + +static EnumPropertyItem prop_data_op_types[] = { + {1, "SELECT", 0, "Select", ""}, + {2, "DESELECT", 0, "Deselect", ""}, + {3, "HIDE", 0, "Hide", ""}, + {4, "UNHIDE", 0, "Unhide", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int outliner_data_operation_exec(bContext *C, wmOperator *op) +{ + SpaceOops *soops= CTX_wm_space_outliner(C); + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + int event; + + /* check for invalid states */ + if (soops == NULL) + return OPERATOR_CANCELLED; + + 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) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "PoseChannel operation"); + } + } + else if(datalevel==TSE_BONE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "Bone operation"); + } + } + else if(datalevel==TSE_EBONE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb); + WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + ED_undo_push(C, "EditBone operation"); + } + } + else if(datalevel==TSE_SEQUENCE) { + if(event>0) { + outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb); + } + } + + return OPERATOR_FINISHED; +} + + +void OUTLINER_OT_data_operation(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Outliner Data Operation"; + ot->idname= "OUTLINER_OT_data_operation"; + ot->description= ""; + + /* callbacks */ + ot->invoke= WM_menu_invoke; + ot->exec= outliner_data_operation_exec; + ot->poll= ED_operator_outliner_active; + + ot->flag= 0; + + ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", ""); +} + + +/* ******************** */ + + +static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2]) +{ + ReportList *reports = CTX_wm_reports(C); // XXX... + + if(mval[1]>te->ys && mval[1]ys+UI_UNIT_Y) { + int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0; + TreeStoreElem *tselem= TREESTORE(te); + + /* select object that's clicked on and popup context menu */ + if (!(tselem->flag & TSE_SELECTED)) { + + if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) ) + outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0); + + tselem->flag |= TSE_SELECTED; + /* redraw, same as outliner_select function */ + soops->storeflag |= SO_TREESTORE_REDRAW; + ED_region_tag_redraw(ar); + } + + set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel); + + if(scenelevel) { + //if(objectlevel || datalevel || idlevel) error("Mixed selection"); + //else pupmenu("Scene Operations%t|Delete"); + } + else if(objectlevel) { + WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + else if(idlevel) { + if(idlevel==-1 || datalevel) BKE_report(reports, RPT_WARNING, "Mixed selection"); + else { + if (idlevel==ID_GR) + WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL); + else + WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + } + else if(datalevel) { + if(datalevel==-1) BKE_report(reports, RPT_WARNING, "Mixed selection"); + else { + if (datalevel == TSE_ANIM_DATA) + WM_operator_name_call(C, "OUTLINER_OT_animdata_operation", WM_OP_INVOKE_REGION_WIN, NULL); + else if (datalevel == TSE_DRIVER_BASE) + /* do nothing... no special ops needed yet */; + else + WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL); + } + } + + return 1; + } + + for(te= te->subtree.first; te; te= te->next) { + if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) + return 1; + } + return 0; +} + + +static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event) +{ + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + SpaceOops *soops= CTX_wm_space_outliner(C); + TreeElement *te; + float fmval[2]; + + UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1); + + for(te= soops->tree.first; te; te= te->next) { + if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break; + } + + return OPERATOR_FINISHED; +} + +/* Menu only! Calls other operators */ +void OUTLINER_OT_operation(wmOperatorType *ot) +{ + ot->name= "Execute Operation"; + ot->idname= "OUTLINER_OT_operation"; + ot->description= "Context menu for item operations"; + + ot->invoke= outliner_operation; + + ot->poll= ED_operator_outliner_active; +} + +/* ****************************************************** */ diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c new file mode 100644 index 00000000000..3560bfb9896 --- /dev/null +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -0,0 +1,1585 @@ +/* + * $Id$ + * + * ***** 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) 2004 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_outliner/outliner_tree.c + * \ingroup spoutliner + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_camera_types.h" +#include "DNA_group_types.h" +#include "DNA_key_types.h" +#include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_world_types.h" +#include "DNA_sequence_types.h" + +#if 0 // GSOC_PEPPER + +#include "DNA_speaker_types.h" + +#endif // GSOC_PEPPER + +#include "DNA_object_types.h" + +#include "BLI_blenlib.h" +#include "BLI_utildefines.h" +#include "BLI_math_base.h" + +#if defined WIN32 && !defined _LIBC +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif + + +#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_deform.h" +#include "BKE_depsgraph.h" +#include "BKE_fcurve.h" +#include "BKE_global.h" +#include "BKE_group.h" +#include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_report.h" +#include "BKE_scene.h" +#include "BKE_sequencer.h" + +#include "ED_armature.h" +#include "ED_object.h" +#include "ED_screen.h" +#include "ED_util.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "UI_interface.h" +#include "UI_interface_icons.h" +#include "UI_resources.h" +#include "UI_view2d.h" + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_enum_types.h" + +#include "outliner_intern.h" + +/* ********************************************************* */ +/* Defines */ + +#define TS_CHUNK 128 + +/* ********************************************************* */ +/* Persistant Data */ + +static void outliner_storage_cleanup(SpaceOops *soops) +{ + TreeStore *ts= soops->treestore; + + if(ts) { + TreeStoreElem *tselem; + int a, unused= 0; + + /* each element used once, for ID blocks with more users to have each a treestore */ + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) tselem->used= 0; + + /* cleanup only after reading file or undo step, and always for + * RNA datablocks view in order to save memory */ + if(soops->storeflag & SO_TREESTORE_CLEANUP) { + + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { + if(tselem->id==NULL) unused++; + } + + if(unused) { + if(ts->usedelem == unused) { + MEM_freeN(ts->data); + ts->data= NULL; + ts->usedelem= ts->totelem= 0; + } + else { + TreeStoreElem *tsnewar, *tsnew; + + tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem"); + for(a=0, tselem= ts->data; ausedelem; a++, tselem++) { + if(tselem->id) { + *tsnew= *tselem; + tsnew++; + } + } + MEM_freeN(ts->data); + ts->data= tsnewar; + ts->usedelem-= unused; + ts->totelem= ts->usedelem; + } + } + } + } +} + +static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr) +{ + TreeStore *ts; + TreeStoreElem *tselem; + int a; + + /* case 1; no TreeStore */ + if(soops->treestore==NULL) { + soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore"); + } + ts= soops->treestore; + + /* check if 'te' is in treestore */ + tselem= ts->data; + for(a=0; ausedelem; a++, tselem++) { + if(tselem->id==id && tselem->used==0) { + if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) { + te->store_index= a; + tselem->used= 1; + return; + } + } + } + + /* add 1 element to treestore */ + if(ts->usedelem==ts->totelem) { + TreeStoreElem *tsnew; + + tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data"); + if(ts->data) { + memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem)); + MEM_freeN(ts->data); + } + ts->data= tsnew; + ts->totelem+= TS_CHUNK; + } + + tselem= ts->data+ts->usedelem; + + tselem->type= type; + if(type) tselem->nr= nr; // we're picky! :) + else tselem->nr= 0; + tselem->id= id; + tselem->used = 0; + tselem->flag= TSE_CLOSED; + te->store_index= ts->usedelem; + + ts->usedelem++; +} + +/* ********************************************************* */ +/* Tree Management */ + +void outliner_free_tree(ListBase *lb) +{ + while(lb->first) { + TreeElement *te= lb->first; + + outliner_free_tree(&te->subtree); + BLI_remlink(lb, te); + + if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); + MEM_freeN(te); + } +} + +/* Find ith item from the treestore */ +TreeElement *outliner_find_tree_element(ListBase *lb, int store_index) +{ + TreeElement *te= lb->first, *tes; + while(te) { + if(te->store_index==store_index) return te; + tes= outliner_find_tree_element(&te->subtree, store_index); + if(tes) return tes; + te= te->next; + } + return NULL; +} + +/* tse is not in the treestore, we use its contents to find a match */ +TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse) +{ + TreeStore *ts= soops->treestore; + TreeStoreElem *tselem; + int a; + + if(tse->id==NULL) return NULL; + + /* check if 'tse' is in treestore */ + tselem= ts->data; + for(a=0; ausedelem; a++, tselem++) { + if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) { + if(tselem->id==tse->id) { + break; + } + } + } + if(tselem) + return outliner_find_tree_element(&soops->tree, a); + + return NULL; +} + +/* Find treestore that refers to given ID */ +TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id) +{ + TreeElement *te, *tes; + TreeStoreElem *tselem; + + for(te= lb->first; te; te= te->next) { + tselem= TREESTORE(te); + if(tselem->type==0) { + if(tselem->id==id) return te; + /* only deeper on scene or object */ + if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) { + tes= outliner_find_id(soops, &te->subtree, id); + if(tes) return tes; + } + } + } + return NULL; +} + + +ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode) +{ + TreeStoreElem *tselem; + te= te->parent; + + while(te) { + tselem= TREESTORE(te); + if(tselem->type==0 && te->idcode==idcode) return tselem->id; + te= te->parent; + } + return NULL; +} + + +/* ********************************************************* */ + +/* Prototype, see functions below */ +static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, + TreeElement *parent, short type, short index); + +/* -------------------------------------------------------- */ + +/* special handling of hierarchical non-lib data */ +static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, + TreeElement *parent, int *a) +{ + TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a); + + (*a)++; + te->name= curBone->name; + te->directdata= curBone; + + for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) { + outliner_add_bone(soops, &te->subtree, id, curBone, te, a); + } +} + +/* -------------------------------------------------------- */ + +#define LOG2I(x) (int)(log(x)/M_LN2) + +static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl) +{ + TreeStoreElem *tselem = NULL; + TreeElement *te = NULL; + + /* log stuff is to convert bitflags (powers of 2) to small integers, + * in order to not overflow short tselem->nr */ + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED)); + te->name= "Combined"; + te->directdata= &srl->passflag; + + /* save cpu cycles, but we add the first to invoke an open/close triangle */ + tselem = TREESTORE(tenla); + if(tselem->flag & TSE_CLOSED) + return; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z)); + te->name= "Z"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR)); + te->name= "Vector"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL)); + te->name= "Normal"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV)); + te->name= "UV"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST)); + te->name= "Mist"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB)); + te->name= "Index Object"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA)); + te->name= "Index Material"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA)); + te->name= "Color"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE)); + te->name= "Diffuse"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC)); + te->name= "Specular"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW)); + te->name= "Shadow"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO)); + te->name= "AO"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT)); + te->name= "Reflection"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT)); + te->name= "Refraction"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT)); + te->name= "Indirect"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT)); + te->name= "Environment"; + te->directdata= &srl->passflag; + + te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT)); + te->name= "Emit"; + te->directdata= &srl->passflag; +} + +#undef LOG2I + +static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) +{ + SceneRenderLayer *srl; + TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0); + int a; + + tenla->name= "RenderLayers"; + for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) { + TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a); + tenlay->name= srl->name; + tenlay->directdata= &srl->passflag; + + if(srl->light_override) + outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0); + if(srl->mat_override) + outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0); + + outliner_add_passes(soops, tenlay, &sce->id, srl); + } + + // TODO: move this to the front? + if (sce->adt) + outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, lb, sce->world, te, 0, 0); +} + +// can be inlined if necessary +static void outliner_add_object_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, Object *ob) +{ + int a = 0; + + if (ob->adt) + outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this + + if (ob->proxy && ob->id.lib==NULL) + outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0); + + outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0); + + if (ob->pose) { + bArmature *arm= ob->data; + bPoseChannel *pchan; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0); + + tenla->name= "Pose"; + + /* channels undefined in editmode, but we want the 'tenla' pose icon itself */ + if ((arm->edbo == NULL) && (ob->mode & OB_MODE_POSE)) { + int a= 0, const_index= 1000; /* ensure unique id for bone constraints */ + + for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a); + ten->name= pchan->name; + ten->directdata= pchan; + pchan->prev= (bPoseChannel *)ten; + + if(pchan->constraints.first) { + //Object *target; + bConstraint *con; + TreeElement *ten1; + TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0); + //char *str; + + tenla1->name= "Constraints"; + for(con= pchan->constraints.first; con; con= con->next, const_index++) { + ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index); +#if 0 /* disabled as it needs to be reworked for recoded constraints system */ + target= get_constraint_target(con, &str); + if(str && str[0]) ten1->name= str; + else if(target) ten1->name= target->id.name+2; + else ten1->name= con->name; +#endif + ten1->name= con->name; + ten1->directdata= con; + /* possible add all other types links? */ + } + } + } + /* make hierarchy */ + ten= tenla->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + tselem= TREESTORE(ten); + if(tselem->type==TSE_POSE_CHANNEL) { + pchan= (bPoseChannel *)ten->directdata; + if(pchan->parent) { + BLI_remlink(&tenla->subtree, ten); + par= (TreeElement *)pchan->parent->prev; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + } + ten= nten; + } + /* restore prev pointers */ + pchan= ob->pose->chanbase.first; + if(pchan) pchan->prev= NULL; + for(; pchan; pchan= pchan->next) { + if(pchan->next) pchan->next->prev= pchan; + } + } + + /* Pose Groups */ + if(ob->pose->agroups.first) { + bActionGroup *agrp; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0); + int a= 0; + + tenla->name= "Bone Groups"; + for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a); + ten->name= agrp->name; + ten->directdata= agrp; + } + } + } + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a); + + if(ob->constraints.first) { + //Object *target; + bConstraint *con; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0); + //char *str; + + tenla->name= "Constraints"; + for (con=ob->constraints.first, a=0; con; con= con->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a); +#if 0 /* disabled due to constraints system targets recode... code here needs review */ + target= get_constraint_target(con, &str); + if(str && str[0]) ten->name= str; + else if(target) ten->name= target->id.name+2; + else ten->name= con->name; +#endif + ten->name= con->name; + ten->directdata= con; + /* possible add all other types links? */ + } + } + + if (ob->modifiers.first) { + ModifierData *md; + TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0); + int index; + + temod->name = "Modifiers"; + for (index=0,md=ob->modifiers.first; md; index++,md=md->next) { + TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index); + te->name= md->name; + te->directdata = md; + + if (md->type==eModifierType_Lattice) { + outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Curve) { + outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Armature) { + outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_Hook) { + outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0); + } + else if (md->type==eModifierType_ParticleSystem) { + TreeElement *ten; + ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys; + + ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0); + ten->directdata = psys; + ten->name = psys->part->id.name+2; + } + } + } + + /* vertex groups */ + if (ob->defbase.first) { + bDeformGroup *defgroup; + TreeElement *ten; + TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0); + + tenla->name= "Vertex Groups"; + for (defgroup=ob->defbase.first, a=0; defgroup; defgroup=defgroup->next, a++) { + ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a); + ten->name= defgroup->name; + ten->directdata= defgroup; + } + } + + /* duplicated group */ + if (ob->dup_group) + outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0); +} + +// can be inlined if necessary +static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, ID *id) +{ + /* tuck pointer back in object, to construct hierarchy */ + if (GS(id->name)==ID_OB) id->newid= (ID *)te; + + /* expand specific data always */ + switch (GS(id->name)) { + case ID_LI: + { + te->name= ((Library *)id)->name; + } + break; + case ID_SCE: + { + outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te); + } + break; + case ID_OB: + { + outliner_add_object_contents(soops, te, tselem, (Object *)id); + } + break; + case ID_ME: + { + Mesh *me= (Mesh *)id; + int a; + + if (me->adt) + outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, me->key, te, 0, 0); + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a); + /* could do tfaces with image links, but the images are not grouped nicely. + would require going over all tfaces, sort images in use. etc... */ + } + break; + case ID_CU: + { + Curve *cu= (Curve *)id; + int a; + + if (cu->adt) + outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a); + } + break; + case ID_MB: + { + MetaBall *mb= (MetaBall *)id; + int a; + + if (mb->adt) + outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0); + + for(a=0; atotcol; a++) + outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a); + } + break; + case ID_MA: + { + Material *ma= (Material *)id; + int a; + + if (ma->adt) + outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a); + } + } + break; + case ID_TE: + { + Tex *tex= (Tex *)id; + + if (tex->adt) + outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0); + + outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0); + } + break; + case ID_CA: + { + Camera *ca= (Camera *)id; + + if (ca->adt) + outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0); + } + break; + case ID_LA: + { + Lamp *la= (Lamp *)id; + int a; + + if (la->adt) + outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a); + } + } + break; + +#if 0 // GSOC_PEPPER + + case ID_SPK: + { + Speaker *spk= (Speaker *)id; + + if(spk->adt) + outliner_add_element(soops, &te->subtree, spk, te, TSE_ANIM_DATA, 0); + } + break; + +#endif // GSOC_PEPPER + + case ID_WO: + { + World *wrld= (World *)id; + int a; + + if (wrld->adt) + outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0); + + for(a=0; amtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a); + } + } + break; + case ID_KE: + { + Key *key= (Key *)id; + + if (key->adt) + outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0); + } + break; + case ID_AC: + { + // XXX do we want to be exposing the F-Curves here? + //bAction *act= (bAction *)id; + } + break; + case ID_AR: + { + bArmature *arm= (bArmature *)id; + int a= 0; + + if (arm->adt) + outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0); + + if(arm->edbo) { + EditBone *ebone; + TreeElement *ten; + + for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) { + ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a); + ten->directdata= ebone; + ten->name= ebone->name; + ebone->temp= ten; + } + /* make hierarchy */ + ten= te->subtree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + ebone= (EditBone *)ten->directdata; + if(ebone->parent) { + BLI_remlink(&te->subtree, ten); + par= ebone->parent->temp; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + ten= nten; + } + } + 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); + else { + Bone *curBone; + for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){ + outliner_add_bone(soops, &te->subtree, id, curBone, te, &a); + } + } + } + } + break; + } +} + +// TODO: this function needs to be split up! It's getting a bit too large... +static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, + TreeElement *parent, short type, short index) +{ + TreeElement *te; + TreeStoreElem *tselem; + ID *id= idv; + int a = 0; + + if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { + id= ((PointerRNA*)idv)->id.data; + if(!id) id= ((PointerRNA*)idv)->data; + } + + if(id==NULL) return NULL; + + te= MEM_callocN(sizeof(TreeElement), "tree elem"); + /* add to the visual tree */ + BLI_addtail(lb, te); + /* add to the storage */ + check_persistant(soops, te, id, type, index); + tselem= TREESTORE(te); + + 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); + else { + te->name= id->name+2; // default, can be overridden by Library or non-ID data + te->idcode= GS(id->name); + } + + if(type==0) { + /* ID datablock */ + outliner_add_id_contents(soops, te, tselem, id); + } + else if(type==TSE_ANIM_DATA) { + IdAdtTemplate *iat = (IdAdtTemplate *)idv; + AnimData *adt= (AnimData *)iat->adt; + + /* this element's info */ + te->name= "Animation"; + te->directdata= adt; + + /* Action */ + outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0); + + /* Drivers */ + if (adt->drivers.first) { + TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); + ID *lastadded= NULL; + FCurve *fcu; + + ted->name= "Drivers"; + + for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { + if (fcu->driver && fcu->driver->variables.first) { + ChannelDriver *driver= fcu->driver; + DriverVar *dvar; + + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* loop over all targets used here */ + DRIVER_TARGETS_USED_LOOPER(dvar) + { + if (lastadded != dtar->id) { + // XXX this lastadded check is rather lame, and also fails quite badly... + outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); + lastadded= dtar->id; + } + } + DRIVER_TARGETS_LOOPER_END + } + } + } + } + + /* NLA Data */ + if (adt->nla_tracks.first) { + TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0); + NlaTrack *nlt; + int a= 0; + + tenla->name= "NLA Tracks"; + + for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) { + TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a); + NlaStrip *strip; + TreeElement *ten; + int b= 0; + + tenlt->name= nlt->name; + + for (strip=nlt->strips.first; strip; strip=strip->next, b++) { + ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b); + if(ten) ten->directdata= strip; + } + } + } + } + else if(type==TSE_SEQUENCE) { + Sequence *seq= (Sequence*) idv; + Sequence *p; + + /* + * The idcode is a little hack, but the outliner + * only check te->idcode if te->type is equal to zero, + * so this is "safe". + */ + te->idcode= seq->type; + te->directdata= seq; + + if(seq->type<7) { + /* + * This work like the sequence. + * If the sequence have a name (not default name) + * show it, in other case put the filename. + */ + if(strcmp(seq->name, "SQ")) + te->name= seq->name; + else { + if((seq->strip) && (seq->strip->stripdata)) + te->name= seq->strip->stripdata->name; + else + te->name= "SQ None"; + } + + if(seq->type==SEQ_META) { + te->name= "Meta Strip"; + p= seq->seqbase.first; + while(p) { + outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); + p= p->next; + } + } + else + outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index); + } + else + te->name= "Effect"; + } + else if(type==TSE_SEQ_STRIP) { + Strip *strip= (Strip *)idv; + + if(strip->dir) + te->name= strip->dir; + else + te->name= "Strip None"; + te->directdata= strip; + } + else if(type==TSE_SEQUENCE_DUP) { + Sequence *seq= (Sequence*)idv; + + te->idcode= seq->type; + te->directdata= seq; + te->name= seq->strip->stripdata->name; + } + else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) { + PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv; + PropertyRNA *prop, *iterprop; + PropertyType proptype; + int a, tot; + + /* we do lazy build, for speed and to avoid infinite recusion */ + + if(ptr->data == NULL) { + te->name= "(empty)"; + } + else if(type == TSE_RNA_STRUCT) { + /* struct */ + te->name= RNA_struct_name_get_alloc(ptr, NULL, 0); + + if(te->name) + te->flag |= TE_FREE_NAME; + else + te->name= (char*)RNA_struct_ui_name(ptr->type); + + iterprop= RNA_struct_iterator_property(ptr->type); + tot= RNA_property_collection_length(ptr, iterprop); + + /* auto open these cases */ + if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) + if(!tselem->used) + tselem->flag &= ~TSE_CLOSED; + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)ptr, te, TSE_RNA_PROPERTY, a); + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + + te->rnaptr= *ptr; + } + else if(type == TSE_RNA_PROPERTY) { + /* property */ + iterprop= RNA_struct_iterator_property(ptr->type); + RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr); + + prop= propptr.data; + proptype= RNA_property_type(prop); + + te->name= (char*)RNA_property_ui_name(prop); + te->directdata= prop; + te->rnaptr= *ptr; + + if(proptype == PROP_POINTER) { + pptr= RNA_property_pointer_get(ptr, prop); + + if(pptr.data) { + if(!(tselem->flag & TSE_CLOSED)) + outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1); + else + te->flag |= TE_LAZY_CLOSED; + } + } + else if(proptype == PROP_COLLECTION) { + tot= RNA_property_collection_length(ptr, prop); + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)&pptr, te, TSE_RNA_STRUCT, a); + } + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + } + else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) { + tot= RNA_property_array_length(ptr, prop); + + if(!(tselem->flag & TSE_CLOSED)) { + for(a=0; asubtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a); + } + else if(tot) + te->flag |= TE_LAZY_CLOSED; + } + } + else if(type == TSE_RNA_ARRAY_ELEM) { + char c; + + prop= parent->directdata; + + te->directdata= prop; + te->rnaptr= *ptr; + te->index= index; + + c= RNA_property_array_item_char(prop, index); + + te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName"); + if(c) sprintf((char *)te->name, " %c", c); + else sprintf((char *)te->name, " %d", index+1); + te->flag |= TE_FREE_NAME; + } + } + else if(type == TSE_KEYMAP) { + wmKeyMap *km= (wmKeyMap *)idv; + wmKeyMapItem *kmi; + char opname[OP_MAX_TYPENAME]; + + te->directdata= idv; + te->name= km->idname; + + if(!(tselem->flag & TSE_CLOSED)) { + a= 0; + + for (kmi= km->items.first; kmi; kmi= kmi->next, a++) { + const char *key= WM_key_event_string(kmi->type); + + if(key[0]) { + wmOperatorType *ot= NULL; + + if(kmi->propvalue); + 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); + + ten->directdata= kmi; + + if(kmi->propvalue) { + ten->name= "Modal map, not yet"; + } + else { + WM_operator_py_idname(opname, ot->idname); + ten->name= BLI_strdup(opname); + ten->flag |= TE_FREE_NAME; + } + } + } + } + } + else + te->flag |= TE_LAZY_CLOSED; + } + + return te; +} + +/* ======================================================= */ +/* Sequencer mode tree building */ + +/* Helped function to put duplicate sequence in the same tree. */ +static int need_add_seq_dup(Sequence *seq) +{ + Sequence *p; + + if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name)) + return(1); + + /* + * First check backward, if we found a duplicate + * sequence before this, don't need it, just return. + */ + p= seq->prev; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->prev; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + return(2); + p= p->prev; + } + + p= seq->next; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + return(0); + p= p->next; + } + return(1); +} + +static void outliner_add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index) +{ + TreeElement *ch; + Sequence *p; + + p= seq; + while(p) { + if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) { + p= p->next; + continue; + } + + if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name)) + ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index); + p= p->next; + } +} + +/* ======================================================= */ +/* Generic Tree Building helpers - order these are called is top to bottom */ + +/* Hierarchy --------------------------------------------- */ + +/* make sure elements are correctly nested */ +static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te, *ten, *tep; + TreeStoreElem *tselem; + + /* build hierarchy */ + // XXX also, set extents here... + te= lb->first; + while(te) { + ten= te->next; + tselem= TREESTORE(te); + + if(tselem->type==0 && te->idcode==ID_OB) { + Object *ob= (Object *)tselem->id; + if(ob->parent && ob->parent->id.newid) { + BLI_remlink(lb, te); + tep= (TreeElement *)ob->parent->id.newid; + BLI_addtail(&tep->subtree, te); + // set correct parent pointers + for(te=tep->subtree.first; te; te= te->next) te->parent= tep; + } + } + te= ten; + } +} + +/* Sorting ------------------------------------------------------ */ + +typedef struct tTreeSort { + TreeElement *te; + ID *id; + const char *name; + short idcode; +} tTreeSort; + +/* alphabetical comparator */ +static int treesort_alpha(const void *v1, const void *v2) +{ + const tTreeSort *x1= v1, *x2= v2; + int comp; + + /* first put objects last (hierarchy) */ + comp= (x1->idcode==ID_OB); + if(x2->idcode==ID_OB) comp+=2; + + if(comp==1) return 1; + else if(comp==2) return -1; + else if(comp==3) { + comp= strcmp(x1->name, x2->name); + + if( comp>0 ) return 1; + else if( comp<0) return -1; + return 0; + } + return 0; +} + +/* this is nice option for later? doesnt look too useful... */ +#if 0 +static int treesort_obtype_alpha(const void *v1, const void *v2) +{ + const tTreeSort *x1= v1, *x2= v2; + + /* first put objects last (hierarchy) */ + if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1; + else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1; + 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; + else return 0; + } + else { + int comp= strcmp(x1->name, x2->name); + + if( comp>0 ) return 1; + else if( comp<0) return -1; + return 0; + } + } +} +#endif + +/* sort happens on each subtree individual */ +static void outliner_sort(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te; + TreeStoreElem *tselem; + int totelem=0; + + te= lb->last; + if(te==NULL) return; + tselem= TREESTORE(te); + + /* sorting rules; only object lists or deformgroups */ + if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) { + + /* count first */ + for(te= lb->first; te; te= te->next) totelem++; + + if(totelem>1) { + tTreeSort *tear= MEM_mallocN(totelem*sizeof(tTreeSort), "tree sort array"); + tTreeSort *tp=tear; + int skip= 0; + + for(te= lb->first; te; te= te->next, tp++) { + tselem= TREESTORE(te); + tp->te= te; + tp->name= te->name; + tp->idcode= te->idcode; + if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0; // dont sort this + tp->id= tselem->id; + } + /* keep beginning of list */ + for(tp= tear, skip=0; skipidcode) break; + + if(skipfirst=lb->last= NULL; + tp= tear; + while(totelem--) { + BLI_addtail(lb, tp->te); + tp++; + } + MEM_freeN(tear); + } + } + + for(te= lb->first; te; te= te->next) { + outliner_sort(soops, &te->subtree); + } +} + +/* Filtering ----------------------------------------------- */ + +static int outliner_filter_has_name(TreeElement *te, const char *name, int flags) +{ +#if 0 + int found= 0; + + /* determine if match */ + if (flags & SO_FIND_CASE_SENSITIVE) { + if (flags & SO_FIND_COMPLETE) + found= strcmp(te->name, name) == 0; + else + found= strstr(te->name, name) != NULL; + } + else { + if (flags & SO_FIND_COMPLETE) + found= BLI_strcasecmp(te->name, name) == 0; + else + found= BLI_strcasestr(te->name, name) != NULL; + } +#else + + int fn_flag= 0; + int found= 0; + + if ((flags & SO_FIND_CASE_SENSITIVE) == 0) + fn_flag |= FNM_CASEFOLD; + + if (flags & SO_FIND_COMPLETE) { + found= fnmatch(name, te->name, fn_flag)==0; + } + else { + char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2]; + sprintf(fn_name, "*%s*", name); + found= fnmatch(fn_name, te->name, fn_flag)==0; + } + return found; +#endif +} + +static int outliner_filter_tree(SpaceOops *soops, ListBase *lb) +{ + TreeElement *te, *ten; + TreeStoreElem *tselem; + + /* although we don't have any search string, we return TRUE + * since the entire tree is ok then... + */ + if (soops->search_string[0]==0) + return 1; + + for (te= lb->first; te; te= ten) { + ten= te->next; + + if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) { + /* item isn't something we're looking for, but... + * - if the subtree is expanded, check if there are any matches that can be easily found + * so that searching for "cu" in the default scene will still match the Cube + * - otherwise, we can't see within the subtree and the item doesn't match, + * so these can be safely ignored (i.e. the subtree can get freed) + */ + tselem= TREESTORE(te); + + if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { + outliner_free_tree(&te->subtree); + BLI_remlink(lb, te); + + if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name); + MEM_freeN(te); + } + } + else { + /* filter subtree too */ + outliner_filter_tree(soops, &te->subtree); + } + } + + /* if there are still items in the list, that means that there were still some matches */ + return (lb->first != NULL); +} + +/* ======================================================= */ +/* Main Tree Building API */ + +/* Main entry point for building the tree data-structure that the outliner represents */ +// TODO: split each mode into its own function? +void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) +{ + Base *base; + Object *ob; + TreeElement *te=NULL, *ten; + TreeStoreElem *tselem; + int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */ + + if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW)) + return; + + outliner_free_tree(&soops->tree); + outliner_storage_cleanup(soops); + + /* clear ob id.new flags */ + for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL; + + /* options */ + if(soops->outlinevis == SO_LIBRARIES) { + Library *lib; + + for(lib= mainvar->library.first; lib; lib= lib->id.next) { + ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0); + lib->id.newid= (ID *)ten; + } + /* make hierarchy */ + ten= soops->tree.first; + while(ten) { + TreeElement *nten= ten->next, *par; + tselem= TREESTORE(ten); + lib= (Library *)tselem->id; + if(lib->parent) { + BLI_remlink(&soops->tree, ten); + par= (TreeElement *)lib->parent->id.newid; + BLI_addtail(&par->subtree, ten); + ten->parent= par; + } + ten= nten; + } + /* restore newid pointers */ + for(lib= mainvar->library.first; lib; lib= lib->id.next) + lib->id.newid= NULL; + + } + else if(soops->outlinevis == SO_ALL_SCENES) { + Scene *sce; + for(sce= mainvar->scene.first; sce; sce= sce->id.next) { + te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0); + tselem= TREESTORE(te); + if(sce==scene && show_opened) + tselem->flag &= ~TSE_CLOSED; + + for(base= sce->base.first; base; base= base->next) { + ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0); + ten->directdata= base; + } + outliner_make_hierarchy(soops, &te->subtree); + /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ + for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL; + } + } + else if(soops->outlinevis == SO_CUR_SCENE) { + + outliner_add_scene_contents(soops, &soops->tree, scene, NULL); + + for(base= scene->base.first; base; base= base->next) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis == SO_VISIBLE) { + for(base= scene->base.first; base; base= base->next) { + if(base->lay & scene->lay) + outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis == SO_GROUPS) { + Group *group; + GroupObject *go; + + for(group= mainvar->group.first; group; group= group->id.next) { + if(group->gobject.first) { + te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0); + + for(go= group->gobject.first; go; go= go->next) { + ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0); + ten->directdata= NULL; /* eh, why? */ + } + outliner_make_hierarchy(soops, &te->subtree); + /* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */ + for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL; + } + } + } + else if(soops->outlinevis == SO_SAME_TYPE) { + Object *ob= OBACT; + if(ob) { + for(base= scene->base.first; base; base= base->next) { + if(base->object->type==ob->type) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + } + outliner_make_hierarchy(soops, &soops->tree); + } + } + else if(soops->outlinevis == SO_SELECTED) { + for(base= scene->base.first; base; base= base->next) { + if(base->lay & scene->lay) { + if(base==BASACT || (base->flag & SELECT)) { + ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0); + ten->directdata= base; + } + } + } + outliner_make_hierarchy(soops, &soops->tree); + } + else if(soops->outlinevis==SO_SEQUENCE) { + Sequence *seq; + Editing *ed= seq_give_editing(scene, FALSE); + int op; + + if(ed==NULL) + return; + + seq= ed->seqbasep->first; + if(!seq) + return; + + while(seq) { + op= need_add_seq_dup(seq); + if(op==1) + ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0); + else if(op==0) { + ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0); + outliner_add_seq_dup(soops, seq, ten, 0); + } + seq= seq->next; + } + } + else if(soops->outlinevis==SO_DATABLOCKS) { + PointerRNA mainptr; + + RNA_main_pointer_create(mainvar, &mainptr); + + ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1); + + if(show_opened) { + tselem= TREESTORE(ten); + tselem->flag &= ~TSE_CLOSED; + } + } + else if(soops->outlinevis==SO_USERDEF) { + PointerRNA userdefptr; + + RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr); + + ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1); + + if(show_opened) { + tselem= TREESTORE(ten); + tselem->flag &= ~TSE_CLOSED; + } + } + else if(soops->outlinevis==SO_KEYMAP) { + wmWindowManager *wm= mainvar->wm.first; + wmKeyMap *km; + + for(km= wm->defaultconf->keymaps.first; km; km= km->next) { + ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0); + } + } + else { + ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0); + if(ten) ten->directdata= BASACT; + } + + outliner_sort(soops, &soops->tree); + outliner_filter_tree(soops, &soops->tree); +} + + diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 13b186b174b..603be557a3c 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -179,6 +179,13 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ANIMATION: + switch(wmn->data) { + case ND_NLA_ACTCHANGE: + ED_region_tag_redraw(ar); + break; + } + break; } } diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index b105b2507ab..14004e7fbba 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -83,9 +83,8 @@ /* avoid passing multiple args and be more verbose */ #define SEQPROP_STARTFRAME (1<<0) #define SEQPROP_ENDFRAME (1<<1) -#define SEQPROP_FILES (1<<2) -#define SEQPROP_NOPATHS (1<<3) -#define SEQPROP_NOCHAN (1<<4) +#define SEQPROP_NOPATHS (1<<2) +#define SEQPROP_NOCHAN (1<<3) #define SELECT 1 @@ -102,9 +101,6 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag) RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "replace the current selection"); RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips"); - - if(flag & SEQPROP_FILES) - RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op, const char *identifier) @@ -411,8 +407,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); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME); RNA_def_boolean(ot->srna, "sound", TRUE, "Sound", "Load sound with the movie"); } @@ -466,8 +462,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); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME); RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory."); } @@ -573,8 +569,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); - sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES); + WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH|WM_FILESEL_FILES); + sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME); } diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 98687bb90e0..dc84289a8de 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -702,7 +702,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline static Sequence *special_seq_update= 0; -static void set_special_seq_update(int val) +static void UNUSED_FUNCTION(set_special_seq_update)(int val) { // int x; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 6a69d32d307..5429f0ee98f 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -75,10 +75,6 @@ /* own include */ #include "sequencer_intern.h" -static void error(const char *UNUSED(dummy)) {} -static void waitcursor(int UNUSED(val)) {} -static void activate_fileselect(int UNUSED(d1), const char *UNUSED(d2), const char *UNUSED(d3), void *UNUSED(d4)) {} -static int pupmenu(const char *UNUSED(dummy)) {return 0;} static int okee(const char *UNUSED(dummy)) {return 0;} @@ -139,7 +135,7 @@ void seq_rectf(Sequence *seq, rctf *rectf) rectf->ymax= seq->machine+SEQ_STRIP_OFSTOP; } -static void change_plugin_seq(Scene *scene, char *str) /* called from fileselect */ +static void UNUSED_FUNCTION(change_plugin_seq)(Scene *scene, char *str) /* called from fileselect */ { Editing *ed= seq_give_editing(scene, FALSE); struct SeqEffectHandle sh; @@ -392,205 +388,6 @@ void recurs_sel_seq(Sequence *seqm) } } -int event_to_efftype(int event) -{ - if(event==2) return SEQ_CROSS; - if(event==3) return SEQ_GAMCROSS; - if(event==4) return SEQ_ADD; - if(event==5) return SEQ_SUB; - if(event==6) return SEQ_MUL; - if(event==7) return SEQ_ALPHAOVER; - if(event==8) return SEQ_ALPHAUNDER; - if(event==9) return SEQ_OVERDROP; - if(event==10) return SEQ_PLUGIN; - if(event==13) return SEQ_WIPE; - if(event==14) return SEQ_GLOW; - if(event==15) return SEQ_TRANSFORM; - if(event==16) return SEQ_COLOR; - if(event==17) return SEQ_SPEED; - if(event==18) return SEQ_ADJUSTMENT; - return 0; -} - -#if 0 -static void reload_sound_strip(Scene *scene, char *name) -{ - Editing *ed; - Sequence *seq, *seqact; - SpaceFile *sfile; - Sequence *last_seq= seq_active_get(scene); - - ed= scene->ed; - - if(last_seq==0 || last_seq->type!=SEQ_SOUND) return; - seqact= last_seq; /* last_seq changes in alloc_sequence */ - - /* search sfile */ -// sfile= scrarea_find_space_of_type(curarea, SPACE_FILE); - if(sfile==0) return; - - waitcursor(1); - - seq = sfile_to_snd_sequence(sfile, seqact->start, seqact->machine); - printf("seq->type: %i\n", seq->type); - if(seq && seq!=seqact) { - /* i'm not sure about this one, seems to work without it -- sgefant */ - seq_free_strip(seqact->strip); - - seqact->strip= seq->strip; - - seqact->len= seq->len; - calc_sequence(scene, seqact); - - seq->strip= 0; - seq_free_sequence(scene, seq); - BLI_remlink(ed->seqbasep, seq); - - seq= ed->seqbasep->first; - - } - - waitcursor(0); - -} -#endif - -static void reload_image_strip(Scene *scene, char *UNUSED(name)) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq=NULL, *seqact; - SpaceFile *sfile=NULL; - Sequence *last_seq= seq_active_get(scene); - - - - if(last_seq==NULL || last_seq->type!=SEQ_IMAGE) return; - seqact= last_seq; /* last_seq changes in alloc_sequence */ - - /* search sfile */ -// sfile= scrarea_find_space_of_type(curarea, SPACE_FILE); - if(sfile == NULL) return; - - waitcursor(1); - -// seq= sfile_to_sequence(scene, sfile, seqact->start, seqact->machine, 1); // XXX ADD BACK - if(seq && seq!=seqact) { - seq_free_strip(seqact->strip); - - seqact->strip= seq->strip; - - seqact->len= seq->len; - calc_sequence(scene, seqact); - - seq->strip= NULL; - seq_free_sequence(scene, seq); - BLI_remlink(ed->seqbasep, seq); - - update_changed_seq_and_deps(scene, seqact, 1, 1); - } - waitcursor(0); - -} - - -static void change_sequence(Scene *scene) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *last_seq= seq_active_get(scene); - Scene *sce; - short event; - - if(last_seq == NULL) return; - - if(last_seq->type & SEQ_EFFECT) { - event = pupmenu("Change Effect%t" - "|Switch A <-> B %x1" - "|Switch B <-> C %x10" - "|Plugin%x11" - "|Recalculate%x12" - "|Cross%x2" - "|Gamma Cross%x3" - "|Add%x4" - "|Sub%x5" - "|Mul%x6" - "|Alpha Over%x7" - "|Alpha Under%x8" - "|Alpha Over Drop%x9" - "|Wipe%x13" - "|Glow%x14" - "|Transform%x15" - "|Color Generator%x16" - "|Speed Control%x17" - "|Adjustment Layer%x18"); - if(event > 0) { - if(event==1) { - SWAP(Sequence *,last_seq->seq1,last_seq->seq2); - } - else if(event==10) { - SWAP(Sequence *,last_seq->seq2,last_seq->seq3); - } - else if(event==11) { - activate_fileselect( - FILE_SPECIAL, "Select Plugin", - U.plugseqdir, change_plugin_seq); - } - else if(event==12); - /* recalculate: only new_stripdata */ - else { - /* free previous effect and init new effect */ - struct SeqEffectHandle sh; - - if (get_sequence_effect_num_inputs( - last_seq->type) - < get_sequence_effect_num_inputs( - event_to_efftype(event))) { - error("New effect needs more " - "input strips!"); - } else { - sh = get_sequence_effect(last_seq); - sh.free(last_seq); - - last_seq->type - = event_to_efftype(event); - - sh = get_sequence_effect(last_seq); - sh.init(last_seq); - } - } - - update_changed_seq_and_deps(scene, last_seq, 0, 1); - } - } - else if(last_seq->type == SEQ_IMAGE) { - if(okee("Change images")) { - activate_fileselect(FILE_SPECIAL, - "Select Images", - ed->act_imagedir, - reload_image_strip); - } - } - else if(last_seq->type == SEQ_MOVIE) { - ; - } - else if(last_seq->type == SEQ_SCENE) { - event= pupmenu("Change Scene%t|Update Start and End"); - - if(event==1) { - sce= last_seq->scene; - - last_seq->len= sce->r.efra - sce->r.sfra + 1; - last_seq->sfra= sce->r.sfra; - - /* bad code to change seq->len? update_changed_seq_and_deps() expects the strip->len to be OK */ - new_tstripdata(last_seq); - - update_changed_seq_and_deps(scene, last_seq, 1, 1); - - } - } - -} - int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3, const char **error_str) { Editing *ed = seq_give_editing(scene, FALSE); @@ -961,7 +758,7 @@ static int insert_gap(Scene *scene, int gap, int cfra) return done; } -static void touch_seq_files(Scene *scene) +static void UNUSED_FUNCTION(touch_seq_files)(Scene *scene) { Sequence *seq; Editing *ed= seq_give_editing(scene, FALSE); @@ -973,7 +770,7 @@ static void touch_seq_files(Scene *scene) if(okee("Touch and print selected movies")==0) return; - waitcursor(1); + WM_cursor_wait(1); SEQP_BEGIN(ed, seq) { if(seq->flag & SELECT) { @@ -988,7 +785,7 @@ static void touch_seq_files(Scene *scene) } SEQ_END - waitcursor(0); + WM_cursor_wait(0); } /* @@ -1016,7 +813,7 @@ static void set_filter_seq(Scene *scene) } */ -static void seq_remap_paths(Scene *scene) +static void UNUSED_FUNCTION(seq_remap_paths)(Scene *scene) { Sequence *seq, *last_seq = seq_active_get(scene); Editing *ed= seq_give_editing(scene, FALSE); @@ -1057,7 +854,7 @@ static void seq_remap_paths(Scene *scene) } -static void no_gaps(Scene *scene) +static void UNUSED_FUNCTION(no_gaps)(Scene *scene) { Editing *ed= seq_give_editing(scene, FALSE); int cfra, first= 0, done; @@ -1103,6 +900,19 @@ int sequencer_edit_poll(bContext *C) return (seq_give_editing(CTX_data_scene(C), FALSE) != NULL); } +int sequencer_strip_poll(bContext *C) +{ + Editing *ed; + return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && (ed->act_seq != NULL)); +} + +int sequencer_strip_has_path_poll(bContext *C) +{ + Editing *ed; + Sequence *seq; + return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && ((seq= ed->act_seq) != NULL) && (SEQ_HAS_PATH(seq))); +} + int sequencer_view_poll(bContext *C) { SpaceSeq *sseq= CTX_wm_space_seq(C); @@ -1755,6 +1565,58 @@ void SEQUENCER_OT_delete(wmOperatorType *ot) } +/* offset clear operator */ +static int sequencer_offset_clear_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + + /* for effects, try to find a replacement input */ + for(seq=ed->seqbasep->first; seq; seq=seq->next) { + if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) { + seq->startofs= seq->endofs= seq->startstill= seq->endstill= 0; + } + } + + /* updates lengths etc */ + seq= ed->seqbasep->first; + while(seq) { + calc_sequence(scene, seq); + seq= seq->next; + } + + for(seq=ed->seqbasep->first; seq; seq=seq->next) { + if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) { + if(seq_test_overlap(ed->seqbasep, seq)) { + shuffle_seq(ed->seqbasep, seq, scene); + } + } + } + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + + +void SEQUENCER_OT_offset_clear(wmOperatorType *ot) +{ + + /* identifiers */ + ot->name= "Clear Strip Offset"; + ot->idname= "SEQUENCER_OT_offset_clear"; + ot->description="Clear strip offsets from the start and end frames"; + + /* api callbacks */ + ot->exec= sequencer_offset_clear_exec; + ot->poll= sequencer_edit_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + + /* separate_images operator */ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) { @@ -2830,3 +2692,230 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot) /* rna */ WM_operator_properties_gesture_border(ot, FALSE); } + + +/* change ops */ + +static EnumPropertyItem prop_change_effect_input_types[] = { + {0, "A_B", 0, "A -> B", ""}, + {1, "B_C", 0, "B -> C", ""}, + {2, "A_C", 0, "A -> C", ""}, + {0, NULL, 0, NULL, NULL} +}; + +static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + + Sequence **seq_1, **seq_2; + + switch(RNA_enum_get(op->ptr, "swap")) { + case 0: + seq_1= &seq->seq1; + seq_2= &seq->seq2; + break; + case 1: + seq_1= &seq->seq2; + seq_2= &seq->seq3; + break; + default: /* 2 */ + seq_1= &seq->seq1; + seq_2= &seq->seq3; + break; + } + + if(*seq_1 == NULL || *seq_2 == NULL) { + BKE_report(op->reports, RPT_ERROR, "One of the effect inputs is unset, can't swap"); + return OPERATOR_CANCELLED; + } + else { + SWAP(Sequence *, *seq_1, *seq_2); + } + + update_changed_seq_and_deps(scene, seq, 0, 1); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Effect Input"; + ot->idname= "SEQUENCER_OT_change_effect_input"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_effect_input_exec; + ot->poll= sequencer_effect_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + ot->prop= RNA_def_enum(ot->srna, "swap", prop_change_effect_input_types, 0, "Swap", "The effect inputs to swap"); +} + +static int sequencer_change_effect_type_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + const int new_type= RNA_enum_get(op->ptr, "type"); + + /* free previous effect and init new effect */ + struct SeqEffectHandle sh; + + if ((seq->type & SEQ_EFFECT) == 0) { + return OPERATOR_CANCELLED; + } + + /* can someone explain the logic behind only allowing to increse this, + * copied from 2.4x - campbell */ + if (get_sequence_effect_num_inputs(seq->type) < + get_sequence_effect_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.free(seq); + + seq->type= new_type; + + sh = get_sequence_effect(seq); + sh.init(seq); + } + + /* update */ + update_changed_seq_and_deps(scene, seq, 0, 1); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Effect Type"; + ot->idname= "SEQUENCER_OT_change_effect_type"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_effect_type_exec; + ot->poll= sequencer_effect_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + ot->prop= RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, "Type", "Sequencer effect type"); +} + +static int sequencer_change_path_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq= seq_active_get(scene); + + if(seq->type == SEQ_IMAGE) { + char directory[FILE_MAX]; + const int len= RNA_property_collection_length(op->ptr, RNA_struct_find_property(op->ptr, "files")); + StripElem *se; + + if(len==0) + return OPERATOR_CANCELLED; + + RNA_string_get(op->ptr, "directory", directory); + BLI_strncpy(seq->strip->dir, directory, sizeof(seq->strip->dir)); + + if(seq->strip->stripdata) { + MEM_freeN(seq->strip->stripdata); + } + seq->strip->stripdata= se= MEM_callocN(len*sizeof(StripElem), "stripelem"); + + RNA_BEGIN(op->ptr, itemptr, "files") { + char *filename= RNA_string_get_alloc(&itemptr, "name", NULL, 0); + BLI_strncpy(se->name, filename, sizeof(se->name)); + MEM_freeN(filename); + se++; + } + RNA_END; + + /* reset these else we wont see all the images */ + seq->anim_startofs= seq->anim_endofs= 0; + + /* correct start/end frames so we dont move + * important not to set seq->len= len; allow the function to handle it */ + reload_sequence_new_file(scene, seq, TRUE); + + calc_sequence(scene, seq); + + /* important else we dont get the imbuf cache flushed */ + free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); + } + else { + /* lame, set rna filepath */ + PointerRNA seq_ptr; + PropertyRNA *prop; + char filepath[FILE_MAX]; + + RNA_pointer_create(&scene->id, &RNA_Sequence, seq, &seq_ptr); + + RNA_string_get(op->ptr, "filepath", filepath); + prop= RNA_struct_find_property(&seq_ptr, "filepath"); + RNA_property_string_set(&seq_ptr, prop, filepath); + RNA_property_update(C, &seq_ptr, prop); + } + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; +} + +static int sequencer_change_path_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) +{ + Scene *scene= CTX_data_scene(C); + Sequence *seq= seq_active_get(scene); + + RNA_string_set(op->ptr, "directory", seq->strip->dir); + + /* set default display depending on seq type */ + if(seq->type == SEQ_IMAGE) { + RNA_boolean_set(op->ptr, "filter_movie", 0); + } + else { + RNA_boolean_set(op->ptr, "filter_image", 0); + } + + WM_event_add_fileselect(C, op); + + return OPERATOR_RUNNING_MODAL; +} + +void SEQUENCER_OT_change_path(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change Data/Files"; + ot->idname= "SEQUENCER_OT_change_path"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_change_path_exec; + ot->invoke= sequencer_change_path_invoke; + ot->poll= sequencer_strip_has_path_poll; + + /* 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); +} diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 209b39662aa..7ab76f9b6d7 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -70,6 +70,8 @@ int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, in /* operator helpers */ int sequencer_edit_poll(struct bContext *C); +int sequencer_strip_poll(struct bContext *C); +int sequencer_strip_has_path_poll(struct bContext *C); int sequencer_view_poll(struct bContext *C); /* externs */ @@ -91,6 +93,7 @@ void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot); void SEQUENCER_OT_swap_inputs(struct wmOperatorType *ot); void SEQUENCER_OT_duplicate(struct wmOperatorType *ot); void SEQUENCER_OT_delete(struct wmOperatorType *ot); +void SEQUENCER_OT_offset_clear(struct wmOperatorType *ot); void SEQUENCER_OT_images_separate(struct wmOperatorType *ot); void SEQUENCER_OT_meta_toggle(struct wmOperatorType *ot); void SEQUENCER_OT_meta_make(struct wmOperatorType *ot); @@ -108,6 +111,10 @@ void SEQUENCER_OT_view_selected(struct wmOperatorType *ot); void SEQUENCER_OT_view_zoom_ratio(struct wmOperatorType *ot); void SEQUENCER_OT_view_ghost_border(struct wmOperatorType *ot); +void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot); +void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot); +void SEQUENCER_OT_change_path(struct wmOperatorType *ot); + void SEQUENCER_OT_copy(struct wmOperatorType *ot); void SEQUENCER_OT_paste(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index f5c26cb17d3..df33ce73b9c 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -68,6 +68,7 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_swap_inputs); WM_operatortype_append(SEQUENCER_OT_duplicate); WM_operatortype_append(SEQUENCER_OT_delete); + WM_operatortype_append(SEQUENCER_OT_offset_clear); WM_operatortype_append(SEQUENCER_OT_images_separate); WM_operatortype_append(SEQUENCER_OT_meta_toggle); WM_operatortype_append(SEQUENCER_OT_meta_make); @@ -86,6 +87,10 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_view_zoom_ratio); WM_operatortype_append(SEQUENCER_OT_view_ghost_border); + WM_operatortype_append(SEQUENCER_OT_change_effect_input); + WM_operatortype_append(SEQUENCER_OT_change_effect_type); + WM_operatortype_append(SEQUENCER_OT_change_path); + /* sequencer_select.c */ WM_operatortype_append(SEQUENCER_OT_select_all_toggle); WM_operatortype_append(SEQUENCER_OT_select_inverse); @@ -145,6 +150,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0); @@ -240,6 +247,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_select_border", BKEY, KM_PRESS, 0, 0); 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"); diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 8d5f372f55e..0ac23765167 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -159,7 +159,7 @@ void select_surround_from_last(Scene *scene) #endif -static void select_single_seq(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */ +static void UNUSED_FUNCTION(select_single_seq)(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */ { Editing *ed= seq_give_editing(scene, FALSE); diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c index 6e6f131655b..51b4b838171 100644 --- a/source/blender/editors/space_text/text_python.c +++ b/source/blender/editors/space_text/text_python.c @@ -43,6 +43,7 @@ #include "BKE_text.h" #include "BLI_blenlib.h" +#include "BLI_utildefines.h" #include "WM_types.h" @@ -192,7 +193,7 @@ static void confirm_suggestion(Text *text, int skipleft) // XXX static int doc_scroll= 0; -static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val) +static short UNUSED_FUNCTION(do_texttools)(SpaceText *st, char ascii, unsigned short evnt, short val) { ARegion *ar= NULL; // XXX int qual= 0; // XXX @@ -375,7 +376,7 @@ static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short ; // XXX redraw_alltext(); #endif -static short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val) +static short UNUSED_FUNCTION(do_textmarkers)(SpaceText *st, char ascii, unsigned short evnt, short val) { Text *text; TextMarker *marker, *mrk, *nxt; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 4a8fb92d7e1..2fe2a95de83 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5475,7 +5475,7 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base) } } else if(ob->type==OB_ARMATURE) { - if(!(ob->mode & OB_MODE_POSE)) + if(!(ob->mode & OB_MODE_POSE && base == scene->basact)) draw_armature(scene, v3d, ar, base, OB_WIRE, FALSE, TRUE); } @@ -5732,7 +5732,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) /* if( ((int)ob->ctime) != F_(scene->r.cfra)) where_is_object(scene, ob); */ /* draw motion paths (in view space) */ - if (ob->mpath) { + if (ob->mpath && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { bAnimVizSettings *avs= &ob->avs; /* setup drawing environment for paths */ diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index 50dd98b08a4..3cc3bde9754 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -46,6 +46,7 @@ #include "BLI_editVert.h" #include "BLI_rand.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BKE_context.h" #include "BKE_idprop.h" @@ -140,10 +141,11 @@ static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2) static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { - + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + if(BLI_strcasestr(ot->name, str)) { if(WM_operator_poll((bContext*)C, ot)) { @@ -152,6 +154,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons } } } + BLI_ghashIterator_free(iter); } diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt index 283b09f42e4..e44cc1f5df3 100644 --- a/source/blender/editors/transform/CMakeLists.txt +++ b/source/blender/editors/transform/CMakeLists.txt @@ -41,7 +41,6 @@ set(SRC transform_generics.c transform_input.c transform_manipulator.c - transform_ndofinput.c transform_ops.c transform_orientations.c transform_snap.c diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 39e26bc6436..c1c812e8c68 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1006,11 +1006,6 @@ int transformEvent(TransInfo *t, wmEvent *event) else view_editmove(event->type); t->redraw= 1; break; -#if 0 - case NDOF_MOTION: - // should have been caught by tranform_modal - return OPERATOR_PASS_THROUGH; -#endif default: handled = 0; break; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index d8e42488787..485344875d4 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -67,14 +67,6 @@ struct wmTimer; struct ARegion; struct ReportList; -typedef struct NDofInput { - int flag; - int axis; - float fval[7]; - float factor[3]; -} NDofInput; - - /* The ctrl value has different meaning: 0 : No value has been typed @@ -273,7 +265,6 @@ typedef struct TransInfo { TransCon con; /* transformed constraint */ TransSnap tsnap; NumInput num; /* numerical input */ - NDofInput ndof; /* ndof input */ MouseInput mouse; /* mouse input */ char redraw; /* redraw flag */ float prop_size; /* proportional circle radius */ @@ -340,9 +331,6 @@ typedef struct TransInfo { /* ******************** Macros & Prototypes *********************** */ -/* NDOFINPUT FLAGS */ -#define NDOF_INIT 1 - /* transinfo->state */ #define TRANS_STARTING 0 #define TRANS_RUNNING 1 @@ -683,20 +671,6 @@ void calculatePropRatio(TransInfo *t); void getViewVector(TransInfo *t, float coord[3], float vec[3]); -/*********************** NDofInput ********************************/ - -void initNDofInput(NDofInput *n); -int hasNDofInput(NDofInput *n); -void applyNDofInput(NDofInput *n, float *vec); -int handleNDofInput(NDofInput *n, struct wmEvent *event); - -/* handleNDofInput return values */ -#define NDOF_REFRESH 1 -#define NDOF_NOMOVE 2 -#define NDOF_CONFIRM 3 -#define NDOF_CANCEL 4 - - /*********************** Transform Orientations ******************************/ void initTransformOrientation(struct bContext *C, TransInfo *t); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index c81c398e696..306796efee9 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1165,7 +1165,6 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) setTransformViewMatrices(t); initNumInput(&t->num); - initNDofInput(&t->ndof); return 1; } diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c deleted file mode 100644 index c5946163770..00000000000 --- a/source/blender/editors/transform/transform_ndofinput.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $Id$ - * - * ***** 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: all of this file. - * - * Contributor(s): Martin Poirier - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/transform/transform_ndofinput.c - * \ingroup edtransform - */ - - - #include /* fabs */ -#include /* for sprintf */ - -#include "BLI_utildefines.h" - -#include "BKE_global.h" /* for G */ - /* ABS */ - -#include "WM_types.h" - -#include "transform.h" - -#if 0 -static int updateNDofMotion(NDofInput *n); // return 0 when motion is null -#endif -static void resetNDofInput(NDofInput *n); - -void initNDofInput(NDofInput *n) -{ - int i; - - n->flag = 0; - n->axis = 0; - - resetNDofInput(n); - - for(i = 0; i < 3; i++) - { - n->factor[i] = 1.0f; - } -} - -static void resetNDofInput(NDofInput *n) -{ - int i; - for(i = 0; i < 6; i++) - { - n->fval[i] = 0.0f; - } -} - - -int handleNDofInput(NDofInput *UNUSED(n), wmEvent *UNUSED(event)) -{ - int retval = 0; - // TRANSFORM_FIX_ME -#if 0 - switch(event) - { - case NDOFMOTION: - if (updateNDofMotion(n) == 0) - { - retval = NDOF_NOMOVE; - } - else - { - retval = NDOF_REFRESH; - } - break; - case NDOFBUTTON: - if (val == 1) - { - retval = NDOF_CONFIRM; - } - else if (val == 2) - { - retval = NDOF_CANCEL; - resetNDofInput(n); - n->flag &= ~NDOF_INIT; - } - break; - } -#endif - return retval; -} - -int hasNDofInput(NDofInput *n) -{ - return (n->flag & NDOF_INIT) == NDOF_INIT; -} - -void applyNDofInput(NDofInput *n, float *vec) -{ - if (hasNDofInput(n)) - { - int i, j; - - for (i = 0, j = 0; i < 6; i++) - { - if (n->axis & (1 << i)) - { - vec[j] = n->fval[i] * n->factor[j]; - j++; - } - } - } -} - -// TRANSFORM_FIX_ME -#if 0 - -static int updateNDofMotion(NDofInput *n) -{ - float fval[7]; - int i; - int retval = 0; - - getndof(fval); - - if (G.vd->ndoffilter) - filterNDOFvalues(fval); - - for(i = 0; i < 6; i++) - { - if (!retval && fval[i] != 0.0f) - { - retval = 1; - } - - n->fval[i] += fval[i] / 1024.0f; - } - - n->flag |= NDOF_INIT; - - return retval; -} -#endif - - - - diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 54e0b31e201..231293024f0 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -360,17 +360,14 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) TransInfo *t = op->customdata; - #if 0 +#if 0 // stable 2D mouse coords map to different 3D coords while the 3D mouse is active // in other words, 2D deltas are no longer good enough! // disable until individual 'transformers' behave better if (event->type == NDOF_MOTION) - { - /* puts("transform_modal: passing through NDOF_MOTION"); */ return OPERATOR_PASS_THROUGH; - } - #endif +#endif /* XXX insert keys are called here, and require context */ t->context= C; diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 919b0eb0c29..8b0104fcdca 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -355,7 +355,7 @@ struct anim * IMB_open_anim( const char * name, int ib_flags) { anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct"); if (anim != NULL) { - strcpy(anim->name, name); /* fixme: possible buffer overflow here? */ + BLI_strncpy(anim->name, name, sizeof(anim->name)); anim->ib_flags = ib_flags; } return(anim); diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c index 1644e653df4..3f391b91c0f 100644 --- a/source/blender/imbuf/intern/filter.c +++ b/source/blender/imbuf/intern/filter.c @@ -371,11 +371,15 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) float weight[25]; /* build a weights buffer */ - n= 2; - k= 0; + n= 1; + /*k= 0; for(i = -n; i <= n; i++) for(j = -n; j <= n; j++) weight[k++] = sqrt((float) i * i + j * j); + */ + weight[0]=1; weight[1]=2; weight[2]=1; + weight[3]=2; weight[4]=0; weight[5]=2; + weight[6]=1; weight[7]=2; weight[8]=1; /* run passes */ for(r = 0; cannot_early_out == 1 && r < filter; r++) { @@ -393,10 +397,10 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter) float acc[4]={0,0,0,0}; k = 0; - if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || + /*if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x+1, y, width, height), depth, is_float) || check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y-1, width, height), depth, is_float) || - check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float)) { + check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float))*/ { for(i= -n; i<=n; i++) { for(j=-n; j<=n; j++) { if(i != 0 || j != 0) { diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 3787675f339..053f3b38168 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -712,16 +712,16 @@ typedef struct ShapeKeyModifierData { typedef struct SolidifyModifierData { ModifierData modifier; - char defgrp_name[32]; /* name of vertex group to use */ + char defgrp_name[32]; /* name of vertex group to use */ float offset; /* new surface offset level*/ float offset_fac; /* midpoint of the offset */ + float offset_fac_vg; /* factor for the minimum weight to use when vgroups are used, avoids 0.0 weights giving duplicate geometry */ float crease_inner; float crease_outer; float crease_rim; int flag; short mat_ofs; short mat_ofs_rim; - int pad; } SolidifyModifierData; #define MOD_SOLIDIFY_RIM (1<<0) diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 963b3de3b4d..c1427ca0e79 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -47,532 +47,534 @@ struct Scene; /* Types */ extern BlenderRNA BLENDER_RNA; -extern LIBEXPORT StructRNA RNA_Action; -extern LIBEXPORT StructRNA RNA_ActionConstraint; -extern LIBEXPORT StructRNA RNA_ActionGroup; -extern LIBEXPORT StructRNA RNA_Actuator; -extern LIBEXPORT StructRNA RNA_ActuatorSensor; -extern LIBEXPORT StructRNA RNA_Addon; -extern LIBEXPORT StructRNA RNA_AdjustmentSequence; -extern LIBEXPORT StructRNA RNA_AlwaysSensor; -extern LIBEXPORT StructRNA RNA_AndController; -extern LIBEXPORT StructRNA RNA_AnimData; -extern LIBEXPORT StructRNA RNA_AnimViz; -extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths; -extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning; -extern LIBEXPORT StructRNA RNA_AnyType; -extern LIBEXPORT StructRNA RNA_Area; -extern LIBEXPORT StructRNA RNA_AreaLamp; -extern LIBEXPORT StructRNA RNA_Armature; -extern LIBEXPORT StructRNA RNA_ArmatureModifier; -extern LIBEXPORT StructRNA RNA_ArmatureSensor; -extern LIBEXPORT StructRNA RNA_ArrayModifier; -extern LIBEXPORT StructRNA RNA_BackgroundImage; -extern LIBEXPORT StructRNA RNA_BevelModifier; -extern LIBEXPORT StructRNA RNA_BezierSplinePoint; -extern LIBEXPORT StructRNA RNA_BlendData; -extern LIBEXPORT StructRNA RNA_BlendTexture; -extern LIBEXPORT StructRNA RNA_BlenderRNA; -extern LIBEXPORT StructRNA RNA_BoidRule; -extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed; -extern LIBEXPORT StructRNA RNA_BoidRuleAvoid; -extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision; -extern LIBEXPORT StructRNA RNA_BoidRuleFight; -extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader; -extern LIBEXPORT StructRNA RNA_BoidRuleGoal; -extern LIBEXPORT StructRNA RNA_BoidSettings; -extern LIBEXPORT StructRNA RNA_BoidState; -extern LIBEXPORT StructRNA RNA_Bone; -extern LIBEXPORT StructRNA RNA_BoneGroup; -extern LIBEXPORT StructRNA RNA_BooleanModifier; -extern LIBEXPORT StructRNA RNA_BooleanProperty; -extern LIBEXPORT StructRNA RNA_Brush; -extern LIBEXPORT StructRNA RNA_BrushTextureSlot; -extern LIBEXPORT StructRNA RNA_BuildModifier; -extern LIBEXPORT StructRNA RNA_Camera; -extern LIBEXPORT StructRNA RNA_CastModifier; -extern LIBEXPORT StructRNA RNA_ChildOfConstraint; -extern LIBEXPORT StructRNA RNA_ChildParticle; -extern LIBEXPORT StructRNA RNA_ClampToConstraint; -extern LIBEXPORT StructRNA RNA_ClothCollisionSettings; -extern LIBEXPORT StructRNA RNA_ClothModifier; -extern LIBEXPORT StructRNA RNA_ClothSettings; -extern LIBEXPORT StructRNA RNA_CloudsTexture; -extern LIBEXPORT StructRNA RNA_CollectionProperty; -extern LIBEXPORT StructRNA RNA_CollisionModifier; -extern LIBEXPORT StructRNA RNA_CollisionSensor; -extern LIBEXPORT StructRNA RNA_CollisionSettings; -extern LIBEXPORT StructRNA RNA_ColorRamp; -extern LIBEXPORT StructRNA RNA_ColorRampElement; -extern LIBEXPORT StructRNA RNA_ColorSequence; -extern LIBEXPORT StructRNA RNA_CompositorNode; -extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver; -extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur; -extern LIBEXPORT StructRNA RNA_CompositorNodeBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast; -extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeComposite; -extern LIBEXPORT StructRNA RNA_CompositorNodeCrop; -extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec; -extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus; -extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode; -extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace; -extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeFilter; -extern LIBEXPORT StructRNA RNA_CompositorNodeFlip; -extern LIBEXPORT StructRNA RNA_CompositorNodeGamma; -extern LIBEXPORT StructRNA RNA_CompositorNodeGlare; -extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat; -extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask; -extern LIBEXPORT StructRNA RNA_CompositorNodeImage; -extern LIBEXPORT StructRNA RNA_CompositorNodeInvert; -extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist; -extern LIBEXPORT StructRNA RNA_CompositorNodeLevels; -extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV; -extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue; -extern LIBEXPORT StructRNA RNA_CompositorNodeMath; -extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeNormal; -extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize; -extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile; -extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey; -extern LIBEXPORT StructRNA RNA_CompositorNodeRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers; -extern LIBEXPORT StructRNA RNA_CompositorNodeRotate; -extern LIBEXPORT StructRNA RNA_CompositorNodeScale; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha; -extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer; -extern LIBEXPORT StructRNA RNA_CompositorNodeTexture; -extern LIBEXPORT StructRNA RNA_CompositorNodeTime; -extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap; -extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate; -extern LIBEXPORT StructRNA RNA_CompositorNodeTree; -extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeValue; -extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeViewer; -extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine; -extern LIBEXPORT StructRNA RNA_ConsoleLine; -extern LIBEXPORT StructRNA RNA_Constraint; -extern LIBEXPORT StructRNA RNA_ConstraintTarget; -extern LIBEXPORT StructRNA RNA_Context; -extern LIBEXPORT StructRNA RNA_ControlFluidSettings; -extern LIBEXPORT StructRNA RNA_Controller; -extern LIBEXPORT StructRNA RNA_CopyLocationConstraint; -extern LIBEXPORT StructRNA RNA_CopyRotationConstraint; -extern LIBEXPORT StructRNA RNA_CopyScaleConstraint; -extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint; -extern LIBEXPORT StructRNA RNA_Curve; -extern LIBEXPORT StructRNA RNA_CurveMap; -extern LIBEXPORT StructRNA RNA_CurveMapPoint; -extern LIBEXPORT StructRNA RNA_CurveMapping; -extern LIBEXPORT StructRNA RNA_CurveModifier; -extern LIBEXPORT StructRNA RNA_CurvePoint; -extern LIBEXPORT StructRNA RNA_DampedTrackConstraint; -extern LIBEXPORT StructRNA RNA_DecimateModifier; -extern LIBEXPORT StructRNA RNA_DelaySensor; -extern LIBEXPORT StructRNA RNA_DisplaceModifier; -extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture; -extern LIBEXPORT StructRNA RNA_DomainFluidSettings; -extern LIBEXPORT StructRNA RNA_Driver; -extern LIBEXPORT StructRNA RNA_DriverTarget; -extern LIBEXPORT StructRNA RNA_DriverVariable; -extern LIBEXPORT StructRNA RNA_DupliObject; -extern LIBEXPORT StructRNA RNA_EdgeSplitModifier; -extern LIBEXPORT StructRNA RNA_EditBone; -extern LIBEXPORT StructRNA RNA_EffectSequence; -extern LIBEXPORT StructRNA RNA_EffectorWeights; -extern LIBEXPORT StructRNA RNA_EnumProperty; -extern LIBEXPORT StructRNA RNA_EnumPropertyItem; -extern LIBEXPORT StructRNA RNA_EnvironmentMap; -extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture; -extern LIBEXPORT StructRNA RNA_Event; -extern LIBEXPORT StructRNA RNA_ExplodeModifier; -extern LIBEXPORT StructRNA RNA_ExpressionController; -extern LIBEXPORT StructRNA RNA_FCurve; -extern LIBEXPORT StructRNA RNA_FCurveSample; -extern LIBEXPORT StructRNA RNA_FModifier; -extern LIBEXPORT StructRNA RNA_FModifierCycles; -extern LIBEXPORT StructRNA RNA_FModifierEnvelope; -extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint; -extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator; -extern LIBEXPORT StructRNA RNA_FModifierGenerator; -extern LIBEXPORT StructRNA RNA_FModifierLimits; -extern LIBEXPORT StructRNA RNA_FModifierNoise; -extern LIBEXPORT StructRNA RNA_FModifierPython; -extern LIBEXPORT StructRNA RNA_FModifierStepped; -extern LIBEXPORT StructRNA RNA_FieldSettings; -extern LIBEXPORT StructRNA RNA_FileSelectParams; -extern LIBEXPORT StructRNA RNA_FloatProperty; -extern LIBEXPORT StructRNA RNA_FloorConstraint; -extern LIBEXPORT StructRNA RNA_FluidFluidSettings; -extern LIBEXPORT StructRNA RNA_FluidSettings; -extern LIBEXPORT StructRNA RNA_FluidSimulationModifier; -extern LIBEXPORT StructRNA RNA_FollowPathConstraint; -extern LIBEXPORT StructRNA RNA_Function; -extern LIBEXPORT StructRNA RNA_GPencilFrame; -extern LIBEXPORT StructRNA RNA_GPencilLayer; -extern LIBEXPORT StructRNA RNA_GPencilStroke; -extern LIBEXPORT StructRNA RNA_GPencilStrokePoint; -extern LIBEXPORT StructRNA RNA_GameBooleanProperty; -extern LIBEXPORT StructRNA RNA_GameFloatProperty; -extern LIBEXPORT StructRNA RNA_GameIntProperty; -extern LIBEXPORT StructRNA RNA_GameObjectSettings; -extern LIBEXPORT StructRNA RNA_GameProperty; -extern LIBEXPORT StructRNA RNA_GameSoftBodySettings; -extern LIBEXPORT StructRNA RNA_GameStringProperty; -extern LIBEXPORT StructRNA RNA_GameTimerProperty; -extern LIBEXPORT StructRNA RNA_GlowSequence; -extern LIBEXPORT StructRNA RNA_GreasePencil; -extern LIBEXPORT StructRNA RNA_Group; -extern LIBEXPORT StructRNA RNA_Header; -extern LIBEXPORT StructRNA RNA_HemiLamp; -extern LIBEXPORT StructRNA RNA_Histogram; -extern LIBEXPORT StructRNA RNA_HookModifier; -extern LIBEXPORT StructRNA RNA_ID; -extern LIBEXPORT StructRNA RNA_IKParam; -extern LIBEXPORT StructRNA RNA_Image; -extern LIBEXPORT StructRNA RNA_ImagePaint; -extern LIBEXPORT StructRNA RNA_ImageSequence; -extern LIBEXPORT StructRNA RNA_ImageTexture; -extern LIBEXPORT StructRNA RNA_ImageUser; -extern LIBEXPORT StructRNA RNA_InflowFluidSettings; -extern LIBEXPORT StructRNA RNA_IntProperty; -extern LIBEXPORT StructRNA RNA_Itasc; -extern LIBEXPORT StructRNA RNA_JoystickSensor; -extern LIBEXPORT StructRNA RNA_Key; -extern LIBEXPORT StructRNA RNA_KeyConfig; -extern LIBEXPORT StructRNA RNA_KeyMap; -extern LIBEXPORT StructRNA RNA_KeyMapItem; -extern LIBEXPORT StructRNA RNA_KeyboardSensor; -extern LIBEXPORT StructRNA RNA_Keyframe; -extern LIBEXPORT StructRNA RNA_KeyingSet; -extern LIBEXPORT StructRNA RNA_KeyingSetInfo; -extern LIBEXPORT StructRNA RNA_KeyingSetPath; -extern LIBEXPORT StructRNA RNA_KinematicConstraint; -extern LIBEXPORT StructRNA RNA_Lamp; -extern LIBEXPORT StructRNA RNA_LampSkySettings; -extern LIBEXPORT StructRNA RNA_LampTextureSlot; -extern LIBEXPORT StructRNA RNA_Lattice; -extern LIBEXPORT StructRNA RNA_LatticeModifier; -extern LIBEXPORT StructRNA RNA_LatticePoint; -extern LIBEXPORT StructRNA RNA_Library; -extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint; -extern LIBEXPORT StructRNA RNA_LimitLocationConstraint; -extern LIBEXPORT StructRNA RNA_LimitRotationConstraint; -extern LIBEXPORT StructRNA RNA_LimitScaleConstraint; -extern LIBEXPORT StructRNA RNA_LockedTrackConstraint; -extern LIBEXPORT StructRNA RNA_Macro; -extern LIBEXPORT StructRNA RNA_MagicTexture; -extern LIBEXPORT StructRNA RNA_MarbleTexture; -extern LIBEXPORT StructRNA RNA_MaskModifier; -extern LIBEXPORT StructRNA RNA_Material; -extern LIBEXPORT StructRNA RNA_MaterialHalo; -extern LIBEXPORT StructRNA RNA_MaterialPhysics; -extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror; -extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency; -extern LIBEXPORT StructRNA RNA_MaterialSlot; -extern LIBEXPORT StructRNA RNA_MaterialStrand; -extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering; -extern LIBEXPORT StructRNA RNA_MaterialTextureSlot; -extern LIBEXPORT StructRNA RNA_MaterialVolume; -extern LIBEXPORT StructRNA RNA_Menu; -extern LIBEXPORT StructRNA RNA_Mesh; -extern LIBEXPORT StructRNA RNA_MeshColor; -extern LIBEXPORT StructRNA RNA_MeshColorLayer; -extern LIBEXPORT StructRNA RNA_MeshDeformModifier; -extern LIBEXPORT StructRNA RNA_MeshEdge; -extern LIBEXPORT StructRNA RNA_MeshFace; -extern LIBEXPORT StructRNA RNA_MeshFloatProperty; -extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshIntProperty; -extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshSticky; -extern LIBEXPORT StructRNA RNA_MeshStringProperty; -extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshTextureFace; -extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer; -extern LIBEXPORT StructRNA RNA_MeshVertex; -extern LIBEXPORT StructRNA RNA_MessageSensor; -extern LIBEXPORT StructRNA RNA_MetaBall; -extern LIBEXPORT StructRNA RNA_MetaElement; -extern LIBEXPORT StructRNA RNA_MetaSequence; -extern LIBEXPORT StructRNA RNA_MirrorModifier; -extern LIBEXPORT StructRNA RNA_Modifier; -extern LIBEXPORT StructRNA RNA_MotionPath; -extern LIBEXPORT StructRNA RNA_MotionPathVert; -extern LIBEXPORT StructRNA RNA_MouseSensor; -extern LIBEXPORT StructRNA RNA_MovieSequence; -extern LIBEXPORT StructRNA RNA_MulticamSequence; -extern LIBEXPORT StructRNA RNA_MultiresModifier; -extern LIBEXPORT StructRNA RNA_MusgraveTexture; -extern LIBEXPORT StructRNA RNA_NandController; -extern LIBEXPORT StructRNA RNA_NearSensor; -extern LIBEXPORT StructRNA RNA_NlaStrip; -extern LIBEXPORT StructRNA RNA_NlaTrack; -extern LIBEXPORT StructRNA RNA_Node; -extern LIBEXPORT StructRNA RNA_NodeGroup; -extern LIBEXPORT StructRNA RNA_NodeLink; -extern LIBEXPORT StructRNA RNA_NodeSocket; -extern LIBEXPORT StructRNA RNA_NodeTree; -extern LIBEXPORT StructRNA RNA_NoiseTexture; -extern LIBEXPORT StructRNA RNA_NorController; -extern LIBEXPORT StructRNA RNA_Object; -extern LIBEXPORT StructRNA RNA_ObjectBase; -extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings; -extern LIBEXPORT StructRNA RNA_Operator; -extern LIBEXPORT StructRNA RNA_OperatorFileListElement; -extern LIBEXPORT StructRNA RNA_OperatorMousePath; -extern LIBEXPORT StructRNA RNA_OperatorProperties; -extern LIBEXPORT StructRNA RNA_OperatorStrokeElement; -extern LIBEXPORT StructRNA RNA_OperatorTypeMacro; -extern LIBEXPORT StructRNA RNA_OrController; -extern LIBEXPORT StructRNA RNA_OutflowFluidSettings; -extern LIBEXPORT StructRNA RNA_PackedFile; -extern LIBEXPORT StructRNA RNA_Paint; -extern LIBEXPORT StructRNA RNA_Panel; -extern LIBEXPORT StructRNA RNA_Particle; -extern LIBEXPORT StructRNA RNA_ParticleBrush; -extern LIBEXPORT StructRNA RNA_ParticleDupliWeight; -extern LIBEXPORT StructRNA RNA_ParticleEdit; -extern LIBEXPORT StructRNA RNA_ParticleFluidSettings; -extern LIBEXPORT StructRNA RNA_ParticleHairKey; -extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier; -extern LIBEXPORT StructRNA RNA_ParticleKey; -extern LIBEXPORT StructRNA RNA_ParticleSettings; -extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot; -extern LIBEXPORT StructRNA RNA_ParticleSystem; -extern LIBEXPORT StructRNA RNA_ParticleSystemModifier; -extern LIBEXPORT StructRNA RNA_ParticleTarget; -extern LIBEXPORT StructRNA RNA_PivotConstraint; -extern LIBEXPORT StructRNA RNA_PluginSequence; -extern LIBEXPORT StructRNA RNA_PluginTexture; -extern LIBEXPORT StructRNA RNA_PointCache; -extern LIBEXPORT StructRNA RNA_PointDensity; -extern LIBEXPORT StructRNA RNA_PointDensityTexture; -extern LIBEXPORT StructRNA RNA_PointLamp; -extern LIBEXPORT StructRNA RNA_PointerProperty; -extern LIBEXPORT StructRNA RNA_Pose; -extern LIBEXPORT StructRNA RNA_PoseBone; -extern LIBEXPORT StructRNA RNA_Property; -extern LIBEXPORT StructRNA RNA_PropertyGroup; -extern LIBEXPORT StructRNA RNA_PropertyGroupItem; -extern LIBEXPORT StructRNA RNA_PropertySensor; -extern LIBEXPORT StructRNA RNA_PythonConstraint; -extern LIBEXPORT StructRNA RNA_PythonController; -extern LIBEXPORT StructRNA RNA_RGBANodeSocket; -extern LIBEXPORT StructRNA RNA_RadarSensor; -extern LIBEXPORT StructRNA RNA_RandomSensor; -extern LIBEXPORT StructRNA RNA_RaySensor; -extern LIBEXPORT StructRNA RNA_Region; -extern LIBEXPORT StructRNA RNA_RenderEngine; -extern LIBEXPORT StructRNA RNA_RenderLayer; -extern LIBEXPORT StructRNA RNA_RenderPass; -extern LIBEXPORT StructRNA RNA_RenderResult; -extern LIBEXPORT StructRNA RNA_RenderSettings; -extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint; -extern LIBEXPORT StructRNA RNA_SPHFluidSettings; -extern LIBEXPORT StructRNA RNA_Scene; -extern LIBEXPORT StructRNA RNA_SceneGameData; -extern LIBEXPORT StructRNA RNA_SceneRenderLayer; -extern LIBEXPORT StructRNA RNA_SceneSequence; -extern LIBEXPORT StructRNA RNA_Scopes; -extern LIBEXPORT StructRNA RNA_Screen; -extern LIBEXPORT StructRNA RNA_ScrewModifier; -extern LIBEXPORT StructRNA RNA_Sculpt; -extern LIBEXPORT StructRNA RNA_Sensor; -extern LIBEXPORT StructRNA RNA_Sequence; -extern LIBEXPORT StructRNA RNA_SequenceColorBalance; -extern LIBEXPORT StructRNA RNA_SequenceCrop; -extern LIBEXPORT StructRNA RNA_SequenceEditor; -extern LIBEXPORT StructRNA RNA_SequenceElement; -extern LIBEXPORT StructRNA RNA_SequenceProxy; -extern LIBEXPORT StructRNA RNA_SequenceTransform; -extern LIBEXPORT StructRNA RNA_ShaderNode; -extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData; -extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial; -extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry; -extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation; -extern LIBEXPORT StructRNA RNA_ShaderNodeInvert; -extern LIBEXPORT StructRNA RNA_ShaderNodeMapping; -extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial; -extern LIBEXPORT StructRNA RNA_ShaderNodeMath; -extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeNormal; -extern LIBEXPORT StructRNA RNA_ShaderNodeOutput; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze; -extern LIBEXPORT StructRNA RNA_ShaderNodeTexture; -extern LIBEXPORT StructRNA RNA_ShaderNodeTree; -extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeValue; -extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve; -extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath; -extern LIBEXPORT StructRNA RNA_ShapeKey; -extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint; -extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint; -extern LIBEXPORT StructRNA RNA_ShapeKeyPoint; -extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint; -extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier; -extern LIBEXPORT StructRNA RNA_SimpleDeformModifier; -extern LIBEXPORT StructRNA RNA_SmokeCollSettings; -extern LIBEXPORT StructRNA RNA_SmokeDomainSettings; -extern LIBEXPORT StructRNA RNA_SmokeFlowSettings; -extern LIBEXPORT StructRNA RNA_SmokeModifier; -extern LIBEXPORT StructRNA RNA_SmoothModifier; -extern LIBEXPORT StructRNA RNA_SoftBodyModifier; -extern LIBEXPORT StructRNA RNA_SoftBodySettings; -extern LIBEXPORT StructRNA RNA_SolidifyModifier; -extern LIBEXPORT StructRNA RNA_Sound; -extern LIBEXPORT StructRNA RNA_SoundSequence; -extern LIBEXPORT StructRNA RNA_Space; -extern LIBEXPORT StructRNA RNA_SpaceConsole; -extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor; -extern LIBEXPORT StructRNA RNA_SpaceFileBrowser; -extern LIBEXPORT StructRNA RNA_SpaceGraphEditor; -extern LIBEXPORT StructRNA RNA_SpaceImageEditor; -extern LIBEXPORT StructRNA RNA_SpaceInfo; -extern LIBEXPORT StructRNA RNA_SpaceLogicEditor; -extern LIBEXPORT StructRNA RNA_SpaceNLA; -extern LIBEXPORT StructRNA RNA_SpaceNodeEditor; -extern LIBEXPORT StructRNA RNA_SpaceOutliner; -extern LIBEXPORT StructRNA RNA_SpaceProperties; -extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor; -extern LIBEXPORT StructRNA RNA_SpaceTextEditor; -extern LIBEXPORT StructRNA RNA_SpaceTimeline; -extern LIBEXPORT StructRNA RNA_SpaceUVEditor; -extern LIBEXPORT StructRNA RNA_SpaceUserPreferences; -extern LIBEXPORT StructRNA RNA_SpaceView3D; -extern LIBEXPORT StructRNA RNA_SpeedControlSequence; -extern LIBEXPORT StructRNA RNA_Spline; -extern LIBEXPORT StructRNA RNA_SplineIKConstraint; -extern LIBEXPORT StructRNA RNA_SpotLamp; -extern LIBEXPORT StructRNA RNA_StretchToConstraint; -extern LIBEXPORT StructRNA RNA_StringProperty; -extern LIBEXPORT StructRNA RNA_Struct; -extern LIBEXPORT StructRNA RNA_StucciTexture; -extern LIBEXPORT StructRNA RNA_SubsurfModifier; -extern LIBEXPORT StructRNA RNA_SunLamp; -extern LIBEXPORT StructRNA RNA_SurfaceCurve; -extern LIBEXPORT StructRNA RNA_SurfaceModifier; -extern LIBEXPORT StructRNA RNA_TexMapping; -extern LIBEXPORT StructRNA RNA_Text; -extern LIBEXPORT StructRNA RNA_TextBox; -extern LIBEXPORT StructRNA RNA_TextCharacterFormat; -extern LIBEXPORT StructRNA RNA_TextCurve; -extern LIBEXPORT StructRNA RNA_TextLine; -extern LIBEXPORT StructRNA RNA_TextMarker; -extern LIBEXPORT StructRNA RNA_Texture; -extern LIBEXPORT StructRNA RNA_TextureNode; -extern LIBEXPORT StructRNA RNA_TextureNodeBricks; -extern LIBEXPORT StructRNA RNA_TextureNodeChecker; -extern LIBEXPORT StructRNA RNA_TextureNodeCompose; -extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates; -extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime; -extern LIBEXPORT StructRNA RNA_TextureNodeDecompose; -extern LIBEXPORT StructRNA RNA_TextureNodeDistance; -extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation; -extern LIBEXPORT StructRNA RNA_TextureNodeImage; -extern LIBEXPORT StructRNA RNA_TextureNodeInvert; -extern LIBEXPORT StructRNA RNA_TextureNodeMath; -extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeOutput; -extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_TextureNodeRotate; -extern LIBEXPORT StructRNA RNA_TextureNodeScale; -extern LIBEXPORT StructRNA RNA_TextureNodeTexture; -extern LIBEXPORT StructRNA RNA_TextureNodeTranslate; -extern LIBEXPORT StructRNA RNA_TextureNodeTree; -extern LIBEXPORT StructRNA RNA_TextureNodeValToNor; -extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeViewer; -extern LIBEXPORT StructRNA RNA_TextureSlot; -extern LIBEXPORT StructRNA RNA_Theme; -extern LIBEXPORT StructRNA RNA_ThemeAudioWindow; -extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet; -extern LIBEXPORT StructRNA RNA_ThemeConsole; -extern LIBEXPORT StructRNA RNA_ThemeDopeSheet; -extern LIBEXPORT StructRNA RNA_ThemeFileBrowser; -extern LIBEXPORT StructRNA RNA_ThemeFontStyle; -extern LIBEXPORT StructRNA RNA_ThemeGraphEditor; -extern LIBEXPORT StructRNA RNA_ThemeImageEditor; -extern LIBEXPORT StructRNA RNA_ThemeInfo; -extern LIBEXPORT StructRNA RNA_ThemeLogicEditor; -extern LIBEXPORT StructRNA RNA_ThemeNLAEditor; -extern LIBEXPORT StructRNA RNA_ThemeNodeEditor; -extern LIBEXPORT StructRNA RNA_ThemeOutliner; -extern LIBEXPORT StructRNA RNA_ThemeProperties; -extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor; -extern LIBEXPORT StructRNA RNA_ThemeStyle; -extern LIBEXPORT StructRNA RNA_ThemeTextEditor; -extern LIBEXPORT StructRNA RNA_ThemeTimeline; -extern LIBEXPORT StructRNA RNA_ThemeUserInterface; -extern LIBEXPORT StructRNA RNA_ThemeUserPreferences; -extern LIBEXPORT StructRNA RNA_ThemeView3D; -extern LIBEXPORT StructRNA RNA_ThemeWidgetColors; -extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors; -extern LIBEXPORT StructRNA RNA_TimelineMarker; -extern LIBEXPORT StructRNA RNA_Timer; -extern LIBEXPORT StructRNA RNA_ToolSettings; -extern LIBEXPORT StructRNA RNA_TouchSensor; -extern LIBEXPORT StructRNA RNA_TrackToConstraint; -extern LIBEXPORT StructRNA RNA_TransformConstraint; -extern LIBEXPORT StructRNA RNA_TransformSequence; -extern LIBEXPORT StructRNA RNA_UILayout; -extern LIBEXPORT StructRNA RNA_UIListItem; -extern LIBEXPORT StructRNA RNA_UVProjectModifier; -extern LIBEXPORT StructRNA RNA_UVProjector; -extern LIBEXPORT StructRNA RNA_UnitSettings; -extern LIBEXPORT StructRNA RNA_UnknownType; -extern LIBEXPORT StructRNA RNA_UserPreferences; -extern LIBEXPORT StructRNA RNA_UserPreferencesEdit; -extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths; -extern LIBEXPORT StructRNA RNA_UserPreferencesSystem; -extern LIBEXPORT StructRNA RNA_UserPreferencesView; -extern LIBEXPORT StructRNA RNA_UserSolidLight; -extern LIBEXPORT StructRNA RNA_ValueNodeSocket; -extern LIBEXPORT StructRNA RNA_VectorFont; -extern LIBEXPORT StructRNA RNA_VectorNodeSocket; -extern LIBEXPORT StructRNA RNA_VertexGroup; -extern LIBEXPORT StructRNA RNA_VertexGroupElement; -extern LIBEXPORT StructRNA RNA_VertexPaint; -extern LIBEXPORT StructRNA RNA_VoronoiTexture; -extern LIBEXPORT StructRNA RNA_VoxelData; -extern LIBEXPORT StructRNA RNA_VoxelDataTexture; -extern LIBEXPORT StructRNA RNA_WarpModifier; -extern LIBEXPORT StructRNA RNA_WaveModifier; -extern LIBEXPORT StructRNA RNA_Window; -extern LIBEXPORT StructRNA RNA_WindowManager; -extern LIBEXPORT StructRNA RNA_WipeSequence; -extern LIBEXPORT StructRNA RNA_WoodTexture; -extern LIBEXPORT StructRNA RNA_World; -extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion; -extern LIBEXPORT StructRNA RNA_WorldMistSettings; -extern LIBEXPORT StructRNA RNA_WorldStarsSettings; -extern LIBEXPORT StructRNA RNA_WorldTextureSlot; -extern LIBEXPORT StructRNA RNA_XnorController; -extern LIBEXPORT StructRNA RNA_XorController; +extern StructRNA RNA_Action; +extern StructRNA RNA_ActionConstraint; +extern StructRNA RNA_ActionGroup; +extern StructRNA RNA_Actuator; +extern StructRNA RNA_ActuatorSensor; +extern StructRNA RNA_Addon; +extern StructRNA RNA_AdjustmentSequence; +extern StructRNA RNA_AlwaysSensor; +extern StructRNA RNA_AndController; +extern StructRNA RNA_AnimData; +extern StructRNA RNA_AnimViz; +extern StructRNA RNA_AnimVizMotionPaths; +extern StructRNA RNA_AnimVizOnionSkinning; +extern StructRNA RNA_AnyType; +extern StructRNA RNA_Area; +extern StructRNA RNA_AreaLamp; +extern StructRNA RNA_Armature; +extern StructRNA RNA_ArmatureModifier; +extern StructRNA RNA_ArmatureSensor; +extern StructRNA RNA_ArrayModifier; +extern StructRNA RNA_BackgroundImage; +extern StructRNA RNA_BevelModifier; +extern StructRNA RNA_BezierSplinePoint; +extern StructRNA RNA_BlendData; +extern StructRNA RNA_BlendTexture; +extern StructRNA RNA_BlenderRNA; +extern StructRNA RNA_BoidRule; +extern StructRNA RNA_BoidRuleAverageSpeed; +extern StructRNA RNA_BoidRuleAvoid; +extern StructRNA RNA_BoidRuleAvoidCollision; +extern StructRNA RNA_BoidRuleFight; +extern StructRNA RNA_BoidRuleFollowLeader; +extern StructRNA RNA_BoidRuleGoal; +extern StructRNA RNA_BoidSettings; +extern StructRNA RNA_BoidState; +extern StructRNA RNA_Bone; +extern StructRNA RNA_BoneGroup; +extern StructRNA RNA_BooleanModifier; +extern StructRNA RNA_BooleanProperty; +extern StructRNA RNA_Brush; +extern StructRNA RNA_BrushTextureSlot; +extern StructRNA RNA_BuildModifier; +extern StructRNA RNA_Camera; +extern StructRNA RNA_CastModifier; +extern StructRNA RNA_ChildOfConstraint; +extern StructRNA RNA_ChildParticle; +extern StructRNA RNA_ClampToConstraint; +extern StructRNA RNA_ClothCollisionSettings; +extern StructRNA RNA_ClothModifier; +extern StructRNA RNA_ClothSettings; +extern StructRNA RNA_CloudsTexture; +extern StructRNA RNA_CollectionProperty; +extern StructRNA RNA_CollisionModifier; +extern StructRNA RNA_CollisionSensor; +extern StructRNA RNA_CollisionSettings; +extern StructRNA RNA_ColorRamp; +extern StructRNA RNA_ColorRampElement; +extern StructRNA RNA_ColorSequence; +extern StructRNA RNA_CompositorNode; +extern StructRNA RNA_CompositorNodeAlphaOver; +extern StructRNA RNA_CompositorNodeBilateralblur; +extern StructRNA RNA_CompositorNodeBlur; +extern StructRNA RNA_CompositorNodeBrightContrast; +extern StructRNA RNA_CompositorNodeChannelMatte; +extern StructRNA RNA_CompositorNodeChromaMatte; +extern StructRNA RNA_CompositorNodeColorMatte; +extern StructRNA RNA_CompositorNodeColorSpill; +extern StructRNA RNA_CompositorNodeCombHSVA; +extern StructRNA RNA_CompositorNodeCombRGBA; +extern StructRNA RNA_CompositorNodeCombYCCA; +extern StructRNA RNA_CompositorNodeCombYUVA; +extern StructRNA RNA_CompositorNodeComposite; +extern StructRNA RNA_CompositorNodeCrop; +extern StructRNA RNA_CompositorNodeCurveRGB; +extern StructRNA RNA_CompositorNodeCurveVec; +extern StructRNA RNA_CompositorNodeDBlur; +extern StructRNA RNA_CompositorNodeDefocus; +extern StructRNA RNA_CompositorNodeDiffMatte; +extern StructRNA RNA_CompositorNodeDilateErode; +extern StructRNA RNA_CompositorNodeDisplace; +extern StructRNA RNA_CompositorNodeDistanceMatte; +extern StructRNA RNA_CompositorNodeFilter; +extern StructRNA RNA_CompositorNodeFlip; +extern StructRNA RNA_CompositorNodeGamma; +extern StructRNA RNA_CompositorNodeGlare; +extern StructRNA RNA_CompositorNodeHueSat; +extern StructRNA RNA_CompositorNodeIDMask; +extern StructRNA RNA_CompositorNodeImage; +extern StructRNA RNA_CompositorNodeInvert; +extern StructRNA RNA_CompositorNodeLensdist; +extern StructRNA RNA_CompositorNodeLevels; +extern StructRNA RNA_CompositorNodeLumaMatte; +extern StructRNA RNA_CompositorNodeMapUV; +extern StructRNA RNA_CompositorNodeMapValue; +extern StructRNA RNA_CompositorNodeMath; +extern StructRNA RNA_CompositorNodeMixRGB; +extern StructRNA RNA_CompositorNodeNormal; +extern StructRNA RNA_CompositorNodeNormalize; +extern StructRNA RNA_CompositorNodeOutputFile; +extern StructRNA RNA_CompositorNodePremulKey; +extern StructRNA RNA_CompositorNodeRGB; +extern StructRNA RNA_CompositorNodeRGBToBW; +extern StructRNA RNA_CompositorNodeRLayers; +extern StructRNA RNA_CompositorNodeRotate; +extern StructRNA RNA_CompositorNodeScale; +extern StructRNA RNA_CompositorNodeSepHSVA; +extern StructRNA RNA_CompositorNodeSepRGBA; +extern StructRNA RNA_CompositorNodeSepYCCA; +extern StructRNA RNA_CompositorNodeSepYUVA; +extern StructRNA RNA_CompositorNodeSetAlpha; +extern StructRNA RNA_CompositorNodeSplitViewer; +extern StructRNA RNA_CompositorNodeTexture; +extern StructRNA RNA_CompositorNodeTime; +extern StructRNA RNA_CompositorNodeTonemap; +extern StructRNA RNA_CompositorNodeTranslate; +extern StructRNA RNA_CompositorNodeTree; +extern StructRNA RNA_CompositorNodeValToRGB; +extern StructRNA RNA_CompositorNodeValue; +extern StructRNA RNA_CompositorNodeVecBlur; +extern StructRNA RNA_CompositorNodeViewer; +extern StructRNA RNA_CompositorNodeZcombine; +extern StructRNA RNA_ConsoleLine; +extern StructRNA RNA_Constraint; +extern StructRNA RNA_ConstraintTarget; +extern StructRNA RNA_Context; +extern StructRNA RNA_ControlFluidSettings; +extern StructRNA RNA_Controller; +extern StructRNA RNA_CopyLocationConstraint; +extern StructRNA RNA_CopyRotationConstraint; +extern StructRNA RNA_CopyScaleConstraint; +extern StructRNA RNA_CopyTransformsConstraint; +extern StructRNA RNA_Curve; +extern StructRNA RNA_CurveMap; +extern StructRNA RNA_CurveMapPoint; +extern StructRNA RNA_CurveMapping; +extern StructRNA RNA_CurveModifier; +extern StructRNA RNA_CurvePoint; +extern StructRNA RNA_DampedTrackConstraint; +extern StructRNA RNA_DecimateModifier; +extern StructRNA RNA_DelaySensor; +extern StructRNA RNA_DisplaceModifier; +extern StructRNA RNA_DistortedNoiseTexture; +extern StructRNA RNA_DomainFluidSettings; +extern StructRNA RNA_Driver; +extern StructRNA RNA_DriverTarget; +extern StructRNA RNA_DriverVariable; +extern StructRNA RNA_DupliObject; +extern StructRNA RNA_EdgeSplitModifier; +extern StructRNA RNA_EditBone; +extern StructRNA RNA_EffectSequence; +extern StructRNA RNA_EffectorWeights; +extern StructRNA RNA_EnumProperty; +extern StructRNA RNA_EnumPropertyItem; +extern StructRNA RNA_EnvironmentMap; +extern StructRNA RNA_EnvironmentMapTexture; +extern StructRNA RNA_Event; +extern StructRNA RNA_ExplodeModifier; +extern StructRNA RNA_ExpressionController; +extern StructRNA RNA_FCurve; +extern StructRNA RNA_FCurveSample; +extern StructRNA RNA_FModifier; +extern StructRNA RNA_FModifierCycles; +extern StructRNA RNA_FModifierEnvelope; +extern StructRNA RNA_FModifierEnvelopeControlPoint; +extern StructRNA RNA_FModifierFunctionGenerator; +extern StructRNA RNA_FModifierGenerator; +extern StructRNA RNA_FModifierLimits; +extern StructRNA RNA_FModifierNoise; +extern StructRNA RNA_FModifierPython; +extern StructRNA RNA_FModifierStepped; +extern StructRNA RNA_FieldSettings; +extern StructRNA RNA_FileSelectParams; +extern StructRNA RNA_FloatProperty; +extern StructRNA RNA_FloorConstraint; +extern StructRNA RNA_FluidFluidSettings; +extern StructRNA RNA_FluidSettings; +extern StructRNA RNA_FluidSimulationModifier; +extern StructRNA RNA_FollowPathConstraint; +extern StructRNA RNA_Function; +extern StructRNA RNA_GPencilFrame; +extern StructRNA RNA_GPencilLayer; +extern StructRNA RNA_GPencilStroke; +extern StructRNA RNA_GPencilStrokePoint; +extern StructRNA RNA_GameBooleanProperty; +extern StructRNA RNA_GameFloatProperty; +extern StructRNA RNA_GameIntProperty; +extern StructRNA RNA_GameObjectSettings; +extern StructRNA RNA_GameProperty; +extern StructRNA RNA_GameSoftBodySettings; +extern StructRNA RNA_GameStringProperty; +extern StructRNA RNA_GameTimerProperty; +extern StructRNA RNA_GlowSequence; +extern StructRNA RNA_GreasePencil; +extern StructRNA RNA_Group; +extern StructRNA RNA_Header; +extern StructRNA RNA_HemiLamp; +extern StructRNA RNA_Histogram; +extern StructRNA RNA_HookModifier; +extern StructRNA RNA_ID; +extern StructRNA RNA_IKParam; +extern StructRNA RNA_Image; +extern StructRNA RNA_ImagePaint; +extern StructRNA RNA_ImageSequence; +extern StructRNA RNA_ImageTexture; +extern StructRNA RNA_ImageUser; +extern StructRNA RNA_InflowFluidSettings; +extern StructRNA RNA_IntProperty; +extern StructRNA RNA_Itasc; +extern StructRNA RNA_JoystickSensor; +extern StructRNA RNA_Key; +extern StructRNA RNA_KeyConfig; +extern StructRNA RNA_KeyMap; +extern StructRNA RNA_KeyMapItem; +extern StructRNA RNA_KeyboardSensor; +extern StructRNA RNA_Keyframe; +extern StructRNA RNA_KeyingSet; +extern StructRNA RNA_KeyingSetInfo; +extern StructRNA RNA_KeyingSetPath; +extern StructRNA RNA_KinematicConstraint; +extern StructRNA RNA_Lamp; +extern StructRNA RNA_LampSkySettings; +extern StructRNA RNA_LampTextureSlot; +extern StructRNA RNA_Lattice; +extern StructRNA RNA_LatticeModifier; +extern StructRNA RNA_LatticePoint; +extern StructRNA RNA_Library; +extern StructRNA RNA_LimitDistanceConstraint; +extern StructRNA RNA_LimitLocationConstraint; +extern StructRNA RNA_LimitRotationConstraint; +extern StructRNA RNA_LimitScaleConstraint; +extern StructRNA RNA_LockedTrackConstraint; +extern StructRNA RNA_Macro; +extern StructRNA RNA_MagicTexture; +extern StructRNA RNA_MarbleTexture; +extern StructRNA RNA_MaskModifier; +extern StructRNA RNA_Material; +extern StructRNA RNA_MaterialHalo; +extern StructRNA RNA_MaterialPhysics; +extern StructRNA RNA_MaterialRaytraceMirror; +extern StructRNA RNA_MaterialRaytraceTransparency; +extern StructRNA RNA_MaterialSlot; +extern StructRNA RNA_MaterialStrand; +extern StructRNA RNA_MaterialSubsurfaceScattering; +extern StructRNA RNA_MaterialTextureSlot; +extern StructRNA RNA_MaterialVolume; +extern StructRNA RNA_Menu; +extern StructRNA RNA_Mesh; +extern StructRNA RNA_MeshColor; +extern StructRNA RNA_MeshColorLayer; +extern StructRNA RNA_MeshDeformModifier; +extern StructRNA RNA_MeshEdge; +extern StructRNA RNA_MeshFace; +extern StructRNA RNA_MeshFloatProperty; +extern StructRNA RNA_MeshFloatPropertyLayer; +extern StructRNA RNA_MeshIntProperty; +extern StructRNA RNA_MeshIntPropertyLayer; +extern StructRNA RNA_MeshSticky; +extern StructRNA RNA_MeshStringProperty; +extern StructRNA RNA_MeshStringPropertyLayer; +extern StructRNA RNA_MeshTextureFace; +extern StructRNA RNA_MeshTextureFaceLayer; +extern StructRNA RNA_MeshVertex; +extern StructRNA RNA_MessageSensor; +extern StructRNA RNA_MetaBall; +extern StructRNA RNA_MetaElement; +extern StructRNA RNA_MetaSequence; +extern StructRNA RNA_MirrorModifier; +extern StructRNA RNA_Modifier; +extern StructRNA RNA_MotionPath; +extern StructRNA RNA_MotionPathVert; +extern StructRNA RNA_MouseSensor; +extern StructRNA RNA_MovieSequence; +extern StructRNA RNA_MulticamSequence; +extern StructRNA RNA_MultiresModifier; +extern StructRNA RNA_MusgraveTexture; +extern StructRNA RNA_NandController; +extern StructRNA RNA_NearSensor; +extern StructRNA RNA_NlaStrip; +extern StructRNA RNA_NlaTrack; +extern StructRNA RNA_Node; +extern StructRNA RNA_NodeGroup; +extern StructRNA RNA_NodeLink; +extern StructRNA RNA_NodeSocket; +extern StructRNA RNA_NodeTree; +extern StructRNA RNA_NoiseTexture; +extern StructRNA RNA_NorController; +extern StructRNA RNA_Object; +extern StructRNA RNA_ObjectBase; +extern StructRNA RNA_ObstacleFluidSettings; +extern StructRNA RNA_Operator; +extern StructRNA RNA_OperatorFileListElement; +extern StructRNA RNA_OperatorMousePath; +extern StructRNA RNA_OperatorProperties; +extern StructRNA RNA_OperatorStrokeElement; +extern StructRNA RNA_OperatorTypeMacro; +extern StructRNA RNA_OrController; +extern StructRNA RNA_OutflowFluidSettings; +extern StructRNA RNA_PackedFile; +extern StructRNA RNA_Paint; +extern StructRNA RNA_Panel; +extern StructRNA RNA_Particle; +extern StructRNA RNA_ParticleBrush; +extern StructRNA RNA_ParticleDupliWeight; +extern StructRNA RNA_ParticleEdit; +extern StructRNA RNA_ParticleFluidSettings; +extern StructRNA RNA_ParticleHairKey; +extern StructRNA RNA_ParticleInstanceModifier; +extern StructRNA RNA_ParticleKey; +extern StructRNA RNA_ParticleSettings; +extern StructRNA RNA_ParticleSettingsTextureSlot; +extern StructRNA RNA_ParticleSystem; +extern StructRNA RNA_ParticleSystemModifier; +extern StructRNA RNA_ParticleTarget; +extern StructRNA RNA_PivotConstraint; +extern StructRNA RNA_PluginSequence; +extern StructRNA RNA_PluginTexture; +extern StructRNA RNA_PointCache; +extern StructRNA RNA_PointDensity; +extern StructRNA RNA_PointDensityTexture; +extern StructRNA RNA_PointLamp; +extern StructRNA RNA_PointerProperty; +extern StructRNA RNA_Pose; +extern StructRNA RNA_PoseBone; +extern StructRNA RNA_Property; +extern StructRNA RNA_PropertyGroup; +extern StructRNA RNA_PropertyGroupItem; +extern StructRNA RNA_PropertySensor; +extern StructRNA RNA_PythonConstraint; +extern StructRNA RNA_PythonController; +extern StructRNA RNA_RGBANodeSocket; +extern StructRNA RNA_RadarSensor; +extern StructRNA RNA_RandomSensor; +extern StructRNA RNA_RaySensor; +extern StructRNA RNA_Region; +extern StructRNA RNA_RenderEngine; +extern StructRNA RNA_RenderLayer; +extern StructRNA RNA_RenderPass; +extern StructRNA RNA_RenderResult; +extern StructRNA RNA_RenderSettings; +extern StructRNA RNA_RigidBodyJointConstraint; +extern StructRNA RNA_SPHFluidSettings; +extern StructRNA RNA_Scene; +extern StructRNA RNA_SceneGameData; +extern StructRNA RNA_SceneRenderLayer; +extern StructRNA RNA_SceneSequence; +extern StructRNA RNA_SceneObjects; +extern StructRNA RNA_Scopes; +extern StructRNA RNA_Screen; +extern StructRNA RNA_ScrewModifier; +extern StructRNA RNA_Sculpt; +extern StructRNA RNA_Sensor; +extern StructRNA RNA_Sequence; +extern StructRNA RNA_SequenceColorBalance; +extern StructRNA RNA_SequenceCrop; +extern StructRNA RNA_SequenceEditor; +extern StructRNA RNA_SequenceElement; +extern StructRNA RNA_SequenceProxy; +extern StructRNA RNA_SequenceTransform; +extern StructRNA RNA_ShaderNode; +extern StructRNA RNA_ShaderNodeCameraData; +extern StructRNA RNA_ShaderNodeCombineRGB; +extern StructRNA RNA_ShaderNodeExtendedMaterial; +extern StructRNA RNA_ShaderNodeGeometry; +extern StructRNA RNA_ShaderNodeHueSaturation; +extern StructRNA RNA_ShaderNodeInvert; +extern StructRNA RNA_ShaderNodeMapping; +extern StructRNA RNA_ShaderNodeMaterial; +extern StructRNA RNA_ShaderNodeMath; +extern StructRNA RNA_ShaderNodeMixRGB; +extern StructRNA RNA_ShaderNodeNormal; +extern StructRNA RNA_ShaderNodeOutput; +extern StructRNA RNA_ShaderNodeRGB; +extern StructRNA RNA_ShaderNodeRGBCurve; +extern StructRNA RNA_ShaderNodeRGBToBW; +extern StructRNA RNA_ShaderNodeSeparateRGB; +extern StructRNA RNA_ShaderNodeSqueeze; +extern StructRNA RNA_ShaderNodeTexture; +extern StructRNA RNA_ShaderNodeTree; +extern StructRNA RNA_ShaderNodeValToRGB; +extern StructRNA RNA_ShaderNodeValue; +extern StructRNA RNA_ShaderNodeVectorCurve; +extern StructRNA RNA_ShaderNodeVectorMath; +extern StructRNA RNA_ShapeKey; +extern StructRNA RNA_ShapeKeyBezierPoint; +extern StructRNA RNA_ShapeKeyCurvePoint; +extern StructRNA RNA_ShapeKeyPoint; +extern StructRNA RNA_ShrinkwrapConstraint; +extern StructRNA RNA_ShrinkwrapModifier; +extern StructRNA RNA_SimpleDeformModifier; +extern StructRNA RNA_SmokeCollSettings; +extern StructRNA RNA_SmokeDomainSettings; +extern StructRNA RNA_SmokeFlowSettings; +extern StructRNA RNA_SmokeModifier; +extern StructRNA RNA_SmoothModifier; +extern StructRNA RNA_SoftBodyModifier; +extern StructRNA RNA_SoftBodySettings; +extern StructRNA RNA_SolidifyModifier; +extern StructRNA RNA_Sound; +extern StructRNA RNA_SoundSequence; +extern StructRNA RNA_Space; +extern StructRNA RNA_SpaceConsole; +extern StructRNA RNA_SpaceDopeSheetEditor; +extern StructRNA RNA_SpaceFileBrowser; +extern StructRNA RNA_SpaceGraphEditor; +extern StructRNA RNA_SpaceImageEditor; +extern StructRNA RNA_SpaceInfo; +extern StructRNA RNA_SpaceLogicEditor; +extern StructRNA RNA_SpaceNLA; +extern StructRNA RNA_SpaceNodeEditor; +extern StructRNA RNA_SpaceOutliner; +extern StructRNA RNA_SpaceProperties; +extern StructRNA RNA_SpaceSequenceEditor; +extern StructRNA RNA_SpaceTextEditor; +extern StructRNA RNA_SpaceTimeline; +extern StructRNA RNA_SpaceUVEditor; +extern StructRNA RNA_SpaceUserPreferences; +extern StructRNA RNA_SpaceView3D; +extern StructRNA RNA_SpeedControlSequence; +extern StructRNA RNA_Spline; +extern StructRNA RNA_SplineIKConstraint; +extern StructRNA RNA_SpotLamp; +extern StructRNA RNA_StretchToConstraint; +extern StructRNA RNA_StringProperty; +extern StructRNA RNA_Struct; +extern StructRNA RNA_StucciTexture; +extern StructRNA RNA_SubsurfModifier; +extern StructRNA RNA_SunLamp; +extern StructRNA RNA_SurfaceCurve; +extern StructRNA RNA_SurfaceModifier; +extern StructRNA RNA_TexMapping; +extern StructRNA RNA_Text; +extern StructRNA RNA_TextBox; +extern StructRNA RNA_TextCharacterFormat; +extern StructRNA RNA_TextCurve; +extern StructRNA RNA_TextLine; +extern StructRNA RNA_TextMarker; +extern StructRNA RNA_Texture; +extern StructRNA RNA_TextureNode; +extern StructRNA RNA_TextureNodeBricks; +extern StructRNA RNA_TextureNodeChecker; +extern StructRNA RNA_TextureNodeCompose; +extern StructRNA RNA_TextureNodeCoordinates; +extern StructRNA RNA_TextureNodeCurveRGB; +extern StructRNA RNA_TextureNodeCurveTime; +extern StructRNA RNA_TextureNodeDecompose; +extern StructRNA RNA_TextureNodeDistance; +extern StructRNA RNA_TextureNodeHueSaturation; +extern StructRNA RNA_TextureNodeImage; +extern StructRNA RNA_TextureNodeInvert; +extern StructRNA RNA_TextureNodeMath; +extern StructRNA RNA_TextureNodeMixRGB; +extern StructRNA RNA_TextureNodeOutput; +extern StructRNA RNA_TextureNodeRGBToBW; +extern StructRNA RNA_TextureNodeRotate; +extern StructRNA RNA_TextureNodeScale; +extern StructRNA RNA_TextureNodeTexture; +extern StructRNA RNA_TextureNodeTranslate; +extern StructRNA RNA_TextureNodeTree; +extern StructRNA RNA_TextureNodeValToNor; +extern StructRNA RNA_TextureNodeValToRGB; +extern StructRNA RNA_TextureNodeViewer; +extern StructRNA RNA_TextureSlot; +extern StructRNA RNA_Theme; +extern StructRNA RNA_ThemeAudioWindow; +extern StructRNA RNA_ThemeBoneColorSet; +extern StructRNA RNA_ThemeConsole; +extern StructRNA RNA_ThemeDopeSheet; +extern StructRNA RNA_ThemeFileBrowser; +extern StructRNA RNA_ThemeFontStyle; +extern StructRNA RNA_ThemeGraphEditor; +extern StructRNA RNA_ThemeImageEditor; +extern StructRNA RNA_ThemeInfo; +extern StructRNA RNA_ThemeLogicEditor; +extern StructRNA RNA_ThemeNLAEditor; +extern StructRNA RNA_ThemeNodeEditor; +extern StructRNA RNA_ThemeOutliner; +extern StructRNA RNA_ThemeProperties; +extern StructRNA RNA_ThemeSequenceEditor; +extern StructRNA RNA_ThemeStyle; +extern StructRNA RNA_ThemeTextEditor; +extern StructRNA RNA_ThemeTimeline; +extern StructRNA RNA_ThemeUserInterface; +extern StructRNA RNA_ThemeUserPreferences; +extern StructRNA RNA_ThemeView3D; +extern StructRNA RNA_ThemeWidgetColors; +extern StructRNA RNA_ThemeWidgetStateColors; +extern StructRNA RNA_TimelineMarker; +extern StructRNA RNA_Timer; +extern StructRNA RNA_ToolSettings; +extern StructRNA RNA_TouchSensor; +extern StructRNA RNA_TrackToConstraint; +extern StructRNA RNA_TransformConstraint; +extern StructRNA RNA_TransformSequence; +extern StructRNA RNA_UILayout; +extern StructRNA RNA_UIListItem; +extern StructRNA RNA_UVProjectModifier; +extern StructRNA RNA_UVProjector; +extern StructRNA RNA_UnitSettings; +extern StructRNA RNA_UnknownType; +extern StructRNA RNA_UserPreferences; +extern StructRNA RNA_UserPreferencesEdit; +extern StructRNA RNA_UserPreferencesFilePaths; +extern StructRNA RNA_UserPreferencesSystem; +extern StructRNA RNA_UserPreferencesView; +extern StructRNA RNA_UserSolidLight; +extern StructRNA RNA_ValueNodeSocket; +extern StructRNA RNA_VectorFont; +extern StructRNA RNA_VectorNodeSocket; +extern StructRNA RNA_VertexGroup; +extern StructRNA RNA_VertexGroupElement; +extern StructRNA RNA_VertexPaint; +extern StructRNA RNA_VoronoiTexture; +extern StructRNA RNA_VoxelData; +extern StructRNA RNA_VoxelDataTexture; +extern StructRNA RNA_WarpModifier; +extern StructRNA RNA_WaveModifier; +extern StructRNA RNA_Window; +extern StructRNA RNA_WindowManager; +extern StructRNA RNA_WipeSequence; +extern StructRNA RNA_WoodTexture; +extern StructRNA RNA_World; +extern StructRNA RNA_WorldAmbientOcclusion; +extern StructRNA RNA_WorldMistSettings; +extern StructRNA RNA_WorldStarsSettings; +extern StructRNA RNA_WorldTextureSlot; +extern StructRNA RNA_XnorController; +extern StructRNA RNA_XorController; + /* Pointer * @@ -585,56 +587,55 @@ extern LIBEXPORT StructRNA RNA_XorController; * There is also a way to get a pointer with the information about all structs. */ -LIBEXPORT void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); -LIBEXPORT void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); -LIBEXPORT void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); +void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); +void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); +void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); -LIBEXPORT void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); -LIBEXPORT void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); +void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); +void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); -extern LIBEXPORT const PointerRNA PointerRNA_NULL; +extern const PointerRNA PointerRNA_NULL; /* Structs */ -LIBEXPORT const char *RNA_struct_identifier(StructRNA *type); -LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type); -LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type); -LIBEXPORT int RNA_struct_ui_icon(StructRNA *type); +const char *RNA_struct_identifier(StructRNA *type); +const char *RNA_struct_ui_name(StructRNA *type); +const char *RNA_struct_ui_description(StructRNA *type); +int RNA_struct_ui_icon(StructRNA *type); -LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type); -LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type); -LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type); +PropertyRNA *RNA_struct_name_property(StructRNA *type); +PropertyRNA *RNA_struct_iterator_property(StructRNA *type); +StructRNA *RNA_struct_base(StructRNA *type); -LIBEXPORT int RNA_struct_is_ID(StructRNA *type); -LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna); +int RNA_struct_is_ID(StructRNA *type); +int RNA_struct_is_a(StructRNA *type, StructRNA *srna); -LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type); -LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type); -LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr); +StructRegisterFunc RNA_struct_register(StructRNA *type); +StructUnregisterFunc RNA_struct_unregister(StructRNA *type); void **RNA_struct_instance(PointerRNA *ptr); -LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna); -LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type); +void *RNA_struct_py_type_get(StructRNA *srna); +void RNA_struct_py_type_set(StructRNA *srna, void *py_type); -LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna); -LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); +void *RNA_struct_blender_type_get(StructRNA *srna); +void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); -LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); -LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna); -LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type); +struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); +int RNA_struct_idprops_check(StructRNA *srna); +int RNA_struct_idprops_register_check(StructRNA *type); int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier); -LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); -LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); +PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); +int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); /* lower level functions for access to type properties */ -LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna); -LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); +const struct ListBase *RNA_struct_type_properties(StructRNA *srna); +PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); -LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); -LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna); +FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); +const struct ListBase *RNA_struct_type_functions(StructRNA *srna); -LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); +char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Properties * @@ -643,143 +644,143 @@ LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int f /* Property Information */ -LIBEXPORT const char *RNA_property_identifier(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_description(PropertyRNA *prop); +const char *RNA_property_identifier(PropertyRNA *prop); +const char *RNA_property_description(PropertyRNA *prop); -LIBEXPORT PropertyType RNA_property_type(PropertyRNA *prop); -LIBEXPORT PropertySubType RNA_property_subtype(PropertyRNA *prop); -LIBEXPORT PropertyUnit RNA_property_unit(PropertyRNA *prop); -LIBEXPORT int RNA_property_flag(PropertyRNA *prop); +PropertyType RNA_property_type(PropertyRNA *prop); +PropertySubType RNA_property_subtype(PropertyRNA *prop); +PropertyUnit RNA_property_unit(PropertyRNA *prop); +int RNA_property_flag(PropertyRNA *prop); void *RNA_property_py_data_get(PropertyRNA *prop); -LIBEXPORT int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); -LIBEXPORT int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); -LIBEXPORT char RNA_property_array_item_char(PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_array_item_index(PropertyRNA *prop, char name); +int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_array_check(PropertyRNA *prop); +int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); +int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); +char RNA_property_array_item_char(PropertyRNA *prop, int index); +int RNA_property_array_item_index(PropertyRNA *prop, char name); -LIBEXPORT int RNA_property_string_maxlength(PropertyRNA *prop); +int RNA_property_string_maxlength(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_ui_name(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_ui_description(PropertyRNA *prop); -LIBEXPORT int RNA_property_ui_icon(PropertyRNA *prop); +const char *RNA_property_ui_name(PropertyRNA *prop); +const char *RNA_property_ui_description(PropertyRNA *prop); +int RNA_property_ui_icon(PropertyRNA *prop); /* Dynamic Property Information */ -LIBEXPORT void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); -LIBEXPORT void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); +void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); +void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); -LIBEXPORT void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); -LIBEXPORT void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); +void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); +void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); -LIBEXPORT int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); -LIBEXPORT int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); +int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); +int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); -LIBEXPORT int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); -LIBEXPORT int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); -LIBEXPORT int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); -LIBEXPORT int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); +int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); +int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); +int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); +int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); -LIBEXPORT void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); -LIBEXPORT int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); -LIBEXPORT int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -LIBEXPORT int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); -LIBEXPORT int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); +int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); +int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); +int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -LIBEXPORT StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); +StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); -LIBEXPORT int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ -LIBEXPORT int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ +int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); +int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ +int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ -LIBEXPORT void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_update_check(struct PropertyRNA *prop); +void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_update_check(struct PropertyRNA *prop); /* Property Data */ -LIBEXPORT int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -LIBEXPORT void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -LIBEXPORT int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]); -LIBEXPORT int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -LIBEXPORT void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -LIBEXPORT int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); -LIBEXPORT void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -LIBEXPORT void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]); -LIBEXPORT float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); -LIBEXPORT void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); -LIBEXPORT float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -LIBEXPORT float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); -LIBEXPORT char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -LIBEXPORT void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); -LIBEXPORT int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); -LIBEXPORT char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -LIBEXPORT int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); - -LIBEXPORT int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); +void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); +void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]); +int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); +void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]); +float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); +void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); +char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); +int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); +char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); + +int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); +int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); void *RNA_property_enum_py_data_get(PropertyRNA *prop); -LIBEXPORT PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); -LIBEXPORT PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); +PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); -LIBEXPORT void RNA_property_collection_next(CollectionPropertyIterator *iter); -LIBEXPORT void RNA_property_collection_end(CollectionPropertyIterator *iter); -LIBEXPORT int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); -LIBEXPORT int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); +void RNA_property_collection_next(CollectionPropertyIterator *iter); +void RNA_property_collection_end(CollectionPropertyIterator *iter); +int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); +int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); +int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); +int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); /* efficient functions to set properties for arrays */ -LIBEXPORT int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); -LIBEXPORT int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -LIBEXPORT int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -LIBEXPORT int RNA_raw_type_sizeof(RawPropertyType type); +int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); +int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +int RNA_raw_type_sizeof(RawPropertyType type); RawPropertyType RNA_property_raw_type(PropertyRNA *prop); /* to create ID property groups */ -LIBEXPORT void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); -LIBEXPORT void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); +void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); +void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); /* copy/reset */ -LIBEXPORT int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); +int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); +int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); /* Path * @@ -790,18 +791,18 @@ LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); * particular pointers, which is useful in a number of applications, like * UI code or Actions, though efficiency is a concern. */ -LIBEXPORT char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, +char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey); -LIBEXPORT char *RNA_path_back(const char *path); +char *RNA_path_back(const char *path); -LIBEXPORT int RNA_path_resolve(PointerRNA *ptr, const char *path, +int RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop); -LIBEXPORT int RNA_path_resolve_full(PointerRNA *ptr, const char *path, +int RNA_path_resolve_full(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *index); -LIBEXPORT char *RNA_path_from_ID_to_struct(PointerRNA *ptr); -LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); +char *RNA_path_from_ID_to_struct(PointerRNA *ptr); +char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); /* Quick name based property access * @@ -812,48 +813,48 @@ LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop) * There is no support for pointers and collections here yet, these can be * added when ID properties support them. */ -LIBEXPORT int RNA_boolean_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); -LIBEXPORT void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); +int RNA_boolean_get(PointerRNA *ptr, const char *name); +void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); +void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); +void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); -LIBEXPORT int RNA_int_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_int_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); -LIBEXPORT void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); +int RNA_int_get(PointerRNA *ptr, const char *name); +void RNA_int_set(PointerRNA *ptr, const char *name, int value); +void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); +void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); -LIBEXPORT float RNA_float_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_float_set(PointerRNA *ptr, const char *name, float value); -LIBEXPORT void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); -LIBEXPORT void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); +float RNA_float_get(PointerRNA *ptr, const char *name); +void RNA_float_set(PointerRNA *ptr, const char *name, float value); +void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); +void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); -LIBEXPORT int RNA_enum_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_enum_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); -LIBEXPORT int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); +int RNA_enum_get(PointerRNA *ptr, const char *name); +void RNA_enum_set(PointerRNA *ptr, const char *name, int value); +void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); +int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); /* lower level functions that don't use a PointerRNA */ -LIBEXPORT int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); -LIBEXPORT int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); -LIBEXPORT int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); +int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); +int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); +int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); -LIBEXPORT void RNA_string_get(PointerRNA *ptr, const char *name, char *value); -LIBEXPORT char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); -LIBEXPORT int RNA_string_length(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); +void RNA_string_get(PointerRNA *ptr, const char *name, char *value); +char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); +int RNA_string_length(PointerRNA *ptr, const char *name); +void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); /** * Retrieve the named property from PointerRNA. */ -LIBEXPORT PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); +PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); /* Set the property name of PointerRNA ptr to ptr_value */ -LIBEXPORT void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); -LIBEXPORT void RNA_pointer_add(PointerRNA *ptr, const char *name); +void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); +void RNA_pointer_add(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); -LIBEXPORT int RNA_collection_length(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); -LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); +void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); +int RNA_collection_length(PointerRNA *ptr, const char *name); +void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); +void RNA_collection_clear(PointerRNA *ptr, const char *name); #define RNA_BEGIN(sptr, itemptr, propname) \ { \ @@ -889,65 +890,65 @@ LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); } /* check if the idproperty exists, for operators */ -LIBEXPORT int RNA_property_is_set(PointerRNA *ptr, const char *name); -LIBEXPORT int RNA_property_is_idprop(PropertyRNA *prop); +int RNA_property_is_set(PointerRNA *ptr, const char *name); +int RNA_property_is_idprop(PropertyRNA *prop); /* python compatible string representation of this property, (must be freed!) */ -LIBEXPORT char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr); +char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr); /* Function */ -LIBEXPORT const char *RNA_function_identifier(FunctionRNA *func); -LIBEXPORT const char *RNA_function_ui_description(FunctionRNA *func); -LIBEXPORT int RNA_function_flag(FunctionRNA *func); -LIBEXPORT int RNA_function_defined(FunctionRNA *func); +const char *RNA_function_identifier(FunctionRNA *func); +const char *RNA_function_ui_description(FunctionRNA *func); +int RNA_function_flag(FunctionRNA *func); +int RNA_function_defined(FunctionRNA *func); -LIBEXPORT PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); -LIBEXPORT PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); -LIBEXPORT const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); +PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); +PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); +const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); /* Utility */ -LIBEXPORT ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); -LIBEXPORT void RNA_parameter_list_free(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_size(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_arg_count(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_ret_count(ParameterList *parms); - -LIBEXPORT void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); -LIBEXPORT void RNA_parameter_list_next(ParameterIterator *iter); -LIBEXPORT void RNA_parameter_list_end(ParameterIterator *iter); - -LIBEXPORT void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); -LIBEXPORT void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); -LIBEXPORT void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); -LIBEXPORT void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); -LIBEXPORT int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); -LIBEXPORT int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); -LIBEXPORT void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); -LIBEXPORT void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); - -LIBEXPORT int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); -LIBEXPORT int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); - -LIBEXPORT int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) +ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); +void RNA_parameter_list_free(ParameterList *parms); +int RNA_parameter_list_size(ParameterList *parms); +int RNA_parameter_list_arg_count(ParameterList *parms); +int RNA_parameter_list_ret_count(ParameterList *parms); + +void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); +void RNA_parameter_list_next(ParameterIterator *iter); +void RNA_parameter_list_end(ParameterIterator *iter); + +void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); +void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); +void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); +void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); +int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); +int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); +void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); +void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); + +int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); +int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); + +int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -LIBEXPORT int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) +int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -LIBEXPORT int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); -LIBEXPORT int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); +int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); +int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); /* ID */ -LIBEXPORT short RNA_type_to_ID_code(StructRNA *type); -LIBEXPORT StructRNA *ID_code_to_RNA_type(short idcode); +short RNA_type_to_ID_code(StructRNA *type); +StructRNA *ID_code_to_RNA_type(short idcode); void RNA_warning(const char *format, ...) #ifdef __GNUC__ diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 3053a1c33bc..f8199074f27 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,18 +36,6 @@ extern "C" { #endif -#ifndef LIBEXPORT -#ifdef _WIN32 -#ifdef BLENDER_PLUGIN -#define LIBEXPORT __declspec(dllimport) -#else -#define LIBEXPORT __declspec(dllexport) -#endif -#else -#define LIBEXPORT -#endif -#endif - struct ParameterList; struct FunctionRNA; struct PropertyRNA; @@ -293,7 +281,7 @@ typedef struct ParameterList { typedef struct ParameterIterator { struct ParameterList *parms; - PointerRNA funcptr; + /* PointerRNA funcptr; */ /*UNUSED*/ void *data; int size, offset; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 0ebe73dfe36..7da538e171b 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -516,7 +516,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, char *value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -532,7 +532,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT PointerRNA %s(PointerRNA *ptr)\n", func); + fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -567,9 +567,9 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -614,7 +614,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr fprintf(f, "}\n\n"); } else { - fprintf(f, "LIBEXPORT %s %s(PointerRNA *ptr)\n", rna_type_type(prop), func); + fprintf(f, "%s %s(PointerRNA *ptr)\n", rna_type_type(prop), func); fprintf(f, "{\n"); if(manualfunc) { @@ -728,7 +728,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const char *value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -744,7 +744,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, PointerRNA value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -781,9 +781,9 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -841,7 +841,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr fprintf(f, "}\n\n"); } else { - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop)); fprintf(f, "{\n"); if(manualfunc) { @@ -895,7 +895,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -917,7 +917,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -952,7 +952,7 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(!manualfunc) @@ -1014,7 +1014,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { @@ -1105,7 +1105,7 @@ static char *rna_def_property_next_func(FILE *f, StructRNA *srna, PropertyRNA *p func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); fprintf(f, " %s(iter);\n", manualfunc); @@ -1128,7 +1128,7 @@ static char *rna_def_property_end_func(FILE *f, StructRNA *srna, PropertyRNA *pr func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); if(manualfunc) fprintf(f, " %s(iter);\n", manualfunc); @@ -1320,31 +1320,31 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR case PROP_BOOLEAN: case PROP_INT: { if(!prop->arraydimension) { - fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); + fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[]);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[]);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, int values[]);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const int values[]);\n", func); } break; } case PROP_FLOAT: { if(!prop->arraydimension) { - fprintf(f, "LIBEXPORT float %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, float value);\n", func); + fprintf(f, "float %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); + fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[]);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[]);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, float values[]);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const float values[]);\n", func); } break; } @@ -1362,8 +1362,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "};\n\n"); } - fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); break; } @@ -1374,24 +1374,24 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "#define %s_%s_MAX %d\n\n", srna->identifier, prop->identifier, sprop->maxlength); } - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, char *value);\n", func); - fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const char *value);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, char *value);\n", func); + fprintf(f, "int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const char *value);\n", func); break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT PointerRNA %sget(PointerRNA *ptr);\n", func); + fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func); //fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func); break; } case PROP_COLLECTION: { - fprintf(f, "LIBEXPORT void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); - fprintf(f, "LIBEXPORT void %snext(CollectionPropertyIterator *iter);\n", func); - fprintf(f, "LIBEXPORT void %send(CollectionPropertyIterator *iter);\n", func); - //fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); - //fprintf(f, "LIBEXPORT void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); + 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); + //fprintf(f, "int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); + //fprintf(f, "void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); break; } } @@ -1862,7 +1862,7 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f) StructRNA *srna; for(srna=brna->structs.first; srna; srna=srna->cont.next) - fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); fprintf(f, "\n"); } @@ -2336,7 +2336,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\n"); } - fprintf(f, "LIBEXPORT StructRNA RNA_%s = {\n", srna->identifier); + fprintf(f, "StructRNA RNA_%s = {\n", srna->identifier); if(srna->cont.next) fprintf(f, "\t{(ContainerRNA *)&RNA_%s, ", ((StructRNA*)srna->cont.next)->identifier); else fprintf(f, "\t{NULL, "); @@ -2482,18 +2482,6 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); - fprintf(f, "#ifndef LIBEXPORT\n"); - fprintf(f, "#ifdef _WIN32\n"); - fprintf(f, "#ifdef BLENDER_PLUGIN\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#include \n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2570,12 +2558,6 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated function declarations for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); - fprintf(f, "#ifdef _WIN32\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n\n"); - fprintf(f, "#include \"RNA_types.h\"\n\n"); fprintf(f, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); @@ -2597,7 +2579,7 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/**************** %s ****************/\n\n", srna->name); while(srna) { - fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); srna= srna->base; } fprintf(f, "\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 4e4bb46669b..88447f6dd77 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -62,7 +62,7 @@ #include "rna_internal.h" -LIBEXPORT const PointerRNA PointerRNA_NULL= {{NULL}}; +const PointerRNA PointerRNA_NULL= {{NULL}}; /* Init/Exit */ @@ -288,7 +288,7 @@ static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop) } } -static int rna_ensure_property_array_check(PointerRNA *UNUSED(ptr), PropertyRNA *prop) +static int rna_ensure_property_array_check(PropertyRNA *prop) { if(prop->magic == RNA_MAGIC) { return (prop->getlength || prop->totarraylength) ? 1:0; @@ -765,9 +765,9 @@ int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop) return rna_ensure_property_array_length(ptr, prop); } -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop) +int RNA_property_array_check(PropertyRNA *prop) { - return rna_ensure_property_array_check(ptr, prop); + return rna_ensure_property_array_check(prop); } /* used by BPY to make an array from the python object */ @@ -1399,6 +1399,7 @@ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1414,6 +1415,7 @@ void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); /* just incase other values are passed */ if(value) value= 1; @@ -1440,6 +1442,7 @@ void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *val IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1463,6 +1466,7 @@ int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1486,6 +1490,7 @@ void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const in IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1519,6 +1524,7 @@ void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int inde int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1541,6 +1547,7 @@ int RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); return bprop->defaultvalue; } @@ -1550,6 +1557,7 @@ void RNA_property_boolean_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= bprop->defaultvalue; @@ -1565,6 +1573,7 @@ int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_default_array(ptr, prop, tmp); @@ -1588,6 +1597,7 @@ int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1603,6 +1613,7 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */ @@ -1628,6 +1639,7 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1688,6 +1700,7 @@ int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index) int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1711,6 +1724,7 @@ void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *v IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1744,6 +1758,7 @@ void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1772,6 +1787,7 @@ void RNA_property_int_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *pr IntPropertyRNA *iprop= (IntPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= iprop->defaultvalue; @@ -1808,6 +1824,7 @@ float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(idprop->type == IDP_FLOAT) @@ -1827,6 +1844,7 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */ @@ -1858,6 +1876,7 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1923,6 +1942,7 @@ float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -1948,6 +1968,7 @@ void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const floa int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) { @@ -1991,6 +2012,7 @@ void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -2013,6 +2035,7 @@ float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); return fprop->defaultvalue; } @@ -2022,6 +2045,7 @@ void RNA_property_float_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA * FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= fprop->defaultvalue; @@ -2037,6 +2061,7 @@ float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_default_array(ptr, prop, tmp); @@ -4484,7 +4509,8 @@ int RNA_parameter_list_ret_count(ParameterList *parms) void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter) { - RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); + /* may be useful but unused now */ + /* RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); */ /*UNUSED*/ iter->parms= parms; iter->parm= parms->func->cont.properties.first; diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 0163dd5db32..8127c180706 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -85,7 +85,7 @@ static EnumPropertyItem target_space_pchan_items[] = { static EnumPropertyItem owner_space_pchan_items[] = { {0, "WORLD", 0, "World Space", "The constraint is applied relative to the world coordinate system"}, {2, "POSE", 0, "Pose Space", "The constraint is applied in Pose Space, the object transformation is ignored"}, - {3, "LOCAL_WITH_PARENT", 0, "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, + {3, "LOCAL_WITH_PARENT", 0, "Local With Parent", "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, {1, "LOCAL", 0, "Local Space", "The constraint is applied relative to the local coordinate sytem of the object"}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 260d483b9d2..599d36ec8b8 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -651,7 +651,7 @@ static char *rna_TextBox_path(PointerRNA *ptr) int index= (int)(tb - cu->tb); if (index >= 0 && index < cu->totbox) - return BLI_sprintfN("textboxes[%d]", index); + return BLI_sprintfN("text_boxes[%d]", index); else return BLI_strdup(""); } diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index d20033a5967..c0ae7b02b1a 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -30,12 +30,6 @@ #ifndef RNA_INTERNAL_H #define RNA_INTERNAL_H -#ifdef _WIN32 -#define LIBEXPORT __declspec(dllexport) -#else -#define LIBEXPORT -#endif - #include "UI_resources.h" #include "rna_internal_types.h" @@ -307,8 +301,8 @@ extern CollectionPropertyRNA rna_PropertyGroupItem_idp_array; extern FloatPropertyRNA rna_PropertyGroupItem_double; extern FloatPropertyRNA rna_PropertyGroupItem_double_array; -extern LIBEXPORT StructRNA RNA_PropertyGroupItem; -extern LIBEXPORT StructRNA RNA_PropertyGroup; +extern StructRNA RNA_PropertyGroupItem; +extern StructRNA RNA_PropertyGroup; struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 7d6e1dd0567..05665ea077a 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -232,7 +232,7 @@ Mesh *rna_Main_meshes_new(Main *UNUSED(bmain), const char *name) id_us_min(&me->id); return me; } -LIBEXPORT void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) +void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) { if(ID_REAL_USERS(mesh) <= 0) free_libblock(&bmain->mesh, mesh); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba655915fb6..5c5391b0bba 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2265,6 +2265,13 @@ static void rna_def_modifier_solidify(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "thickness_vertex_group", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "offset_fac_vg"); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Vertex Group Factor", "Thickness factor to use for zero vertex group influence"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "offset_fac"); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 76bbfcbed41..55e1119f58e 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2025,7 +2025,14 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Input Matrix", "Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied."); RNA_def_property_float_funcs(prop, "rna_Object_matrix_basis_get", "rna_Object_matrix_basis_set", NULL); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); - + + /*parent_inverse*/ + prop= RNA_def_property(srna, "matrix_parent_inverse", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "parentinv"); + RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4); + RNA_def_property_ui_text(prop, "Matrix", "Inverse of object's parent matrix at time of parenting"); + RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); + /* collections */ prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "Constraint"); diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index b99b5f3dc26..53c71c42f7c 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -78,7 +78,7 @@ /* copied from Mesh_getFromObject and adapted to RNA interface */ /* settings: 0 - preview, 1 - render */ -LIBEXPORT Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) +Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) { Mesh *tmpmesh; Curve *tmpcu = NULL; @@ -286,7 +286,7 @@ 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 */ -LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) +void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) { if (!(ob->transflag & OB_DUPLI)) { BKE_report(reports, RPT_ERROR, "Object does not have duplis."); @@ -308,7 +308,7 @@ LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scen /* ob->duplilist should now be freed with Object.free_duplilist */ } -LIBEXPORT void rna_Object_free_duplilist(Object *ob) +void rna_Object_free_duplilist(Object *ob) { if (ob->duplilist) { free_object_duplilist(ob->duplilist); @@ -457,7 +457,7 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d) base->lay= base->object->lay= v3d->lay; } -LIBEXPORT int rna_Object_is_modified(Object *ob, Scene *scene, int settings) +int rna_Object_is_modified(Object *ob, Scene *scene, int settings) { return object_is_modified(scene, ob) & settings; } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index a0744a5b6a0..4337f3c4de6 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -50,12 +50,12 @@ #include "BKE_context.h" #include "BKE_report.h" -LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +void engine_tag_redraw(RenderEngine *engine) { engine->do_draw = 1; } -LIBEXPORT void engine_tag_update(RenderEngine *engine) +void engine_tag_update(RenderEngine *engine) { engine->do_update = 1; } @@ -263,7 +263,7 @@ static void rna_RenderLayer_rect_get(PointerRNA *ptr, float *values) memcpy(values, rl->rectf, sizeof(float)*rl->rectx*rl->recty*4); } -LIBEXPORT void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) +void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) { RenderLayer *rl= (RenderLayer*)ptr->data; memcpy(rl->rectf, values, sizeof(float)*rl->rectx*rl->recty*4); @@ -285,7 +285,7 @@ static void rna_RenderPass_rect_get(PointerRNA *ptr, float *values) memcpy(values, rpass->rect, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); } -LIBEXPORT void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) +void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) { RenderPass *rpass= (RenderPass*)ptr->data; memcpy(rpass->rect, values, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 57044188dd9..a685c6deb34 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2769,7 +2769,7 @@ static void rna_def_userdef_input(BlenderRNA *brna) prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES); RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed"); - /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' + /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' */ /* 3D view: fly */ prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 307cf0e175a..93adf808f83 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1746,6 +1746,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item"); RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_USER_MODIFIED); diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 0b1fac06e14..afe6da8b38a 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -232,8 +232,10 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, float (*vert_nors)[3]= NULL; - float const ofs_orig= - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); - float const ofs_new= smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float ofs_orig= - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float ofs_new= smd->offset - (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset); + const float offset_fac_vg= smd->offset_fac_vg; + const float offset_fac_vg_inv= 1.0f - smd->offset_fac_vg; /* weights */ MDeformVert *dvert, *dv= NULL; @@ -391,8 +393,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, dv= dvert; for(i=0; ico, mv->co, mv->no, scalar_short_vgroup); @@ -405,8 +408,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, dv= dvert; for(i=0; ico, mv->co, mv->no, scalar_short_vgroup); @@ -466,15 +470,21 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* vertex group support */ if(dvert) { + float scalar; + dv= dvert; if(defgrp_invert) { for(i=0; inext) { + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); + name= PyUnicode_FromString(ot->idname); PyList_Append(list, name); Py_DECREF(name); } - + BLI_ghashIterator_free(iter); + return list; } diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4447a0476f4..ba8145c2773 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -856,7 +856,7 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self) if(type==PROP_COLLECTION) { len= pyrna_prop_collection_length(self); } - else if (RNA_property_array_check(&self->ptr, self->prop)) { + else if (RNA_property_array_check(self->prop)) { len= pyrna_prop_array_length((BPy_PropertyArrayRNA *)self); } @@ -1224,7 +1224,7 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) PyObject *ret; int type= RNA_property_type(prop); - if (RNA_property_array_check(ptr, prop)) { + if (RNA_property_array_check(prop)) { return pyrna_py_from_array(ptr, prop); } @@ -1369,7 +1369,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb int type= RNA_property_type(prop); - if (RNA_property_array_check(ptr, prop)) { + if (RNA_property_array_check(prop)) { /* done getting the length */ if(pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) { return -1; @@ -4088,7 +4088,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat int type= RNA_property_type(prop); int flag= RNA_property_flag(prop); - if(RNA_property_array_check(ptr, prop)) { + if(RNA_property_array_check(prop)) { int a, len; if (flag & PROP_DYNAMIC) { @@ -5519,7 +5519,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop) { BPy_PropertyRNA *pyrna; - if (RNA_property_array_check(ptr, prop) == 0) { + if (RNA_property_array_check(prop) == 0) { PyTypeObject *type; if (RNA_property_type(prop) != PROP_COLLECTION) { diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c index 30d83e196ba..8bde1db96ca 100644 --- a/source/blender/python/intern/bpy_rna_anim.c +++ b/source/blender/python/intern/bpy_rna_anim.c @@ -107,7 +107,7 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi return -1; } - if(RNA_property_array_check(&r_ptr, prop) == 0) { + if(RNA_property_array_check(prop) == 0) { if((*index) == -1) { *index= 0; } diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index 9843a57e0f2..e50ce233671 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -285,17 +285,20 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, int int totdim= RNA_property_array_dimension(ptr, prop, NULL); const int seq_size= PySequence_Size(seq); - /* General note for 'data' being NULL or PySequence_GetItem() failing. + /* Regarding PySequence_GetItem() failing. * * This should never be NULL since we validated it, _but_ some triky python * developer could write their own sequence type which succeeds on - * validating but fails later somehow, so include checks for safety. */ + * validating but fails later somehow, so include checks for safety. + */ + + /* Note that 'data can be NULL' */ if(seq_size == -1) { return NULL; } - for (i= 0; (i < seq_size) && data; i++) { + for (i= 0; i < seq_size; i++) { PyObject *item= PySequence_GetItem(seq, i); if(item) { if (dim + 1 < totdim) { diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c index a954c07c98d..56c1334ecac 100644 --- a/source/blender/python/mathutils/mathutils_Vector.c +++ b/source/blender/python/mathutils/mathutils_Vector.c @@ -37,8 +37,6 @@ #include "BLI_math.h" #include "BLI_utildefines.h" -extern void PyC_LineSpit(void); - #define MAX_DIMENSIONS 4 /* Swizzle axes get packed into a single value that is used as a closure. Each @@ -1161,28 +1159,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } else if (vec1) { if (MatrixObject_Check(v2)) { - extern void PyC_LineSpit(void); - - /* VEC * MATRIX */ - /* this is deprecated!, use the reverse instead */ - float tvec[MAX_DIMENSIONS]; - /* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT +#if 1 PyErr_SetString(PyExc_ValueError, "(Vector * Matrix) is now removed, reverse the " "order (promoted to an Error for Debug builds)"); return NULL; #else - printf("Warning: (Vector * Matrix) is now deprecated, " - "reverse the multiplication order in the script.\n"); - PyC_LineSpit(); -#endif -#endif /* ifndef MATH_STANDALONE */ -/* ------ to be removed ------*/ + /* VEC * MATRIX */ + /* this is deprecated!, use the reverse instead */ + float tvec[MAX_DIMENSIONS]; if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; @@ -1191,9 +1179,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) } return newVectorObject(tvec, vec1->size, Py_NEW, Py_TYPE(vec1)); +#endif +/* ------ to be removed ------*/ } else if (QuaternionObject_Check(v2)) { /* VEC * QUAT */ +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector * Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds)"); + return NULL; +#else QuaternionObject *quat2 = (QuaternionObject*)v2; float tvec[3]; @@ -1207,26 +1204,11 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2) return NULL; } - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector * Quat) is now removed, reverse the " - "order (promoted to an Error for Debug builds)"); - return NULL; -#else - printf("Warning: (Vector * Quat) is now deprecated, " - "reverse the multiplication order in the script.\n"); - PyC_LineSpit(); -#endif -#endif /* ifndef MATH_STANDALONE */ -/* ------ to be removed ------*/ - - copy_v3_v3(tvec, vec1->vec); mul_qt_v3(quat2->quat, tvec); return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); +#endif +/* ------ to be removed ------*/ } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */ return vector_mul_float(vec1, scalar); @@ -1260,6 +1242,14 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) /* only support vec*=float and vec*=mat vec*=vec result is a float so that wont work */ if (MatrixObject_Check(v2)) { +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector *= Matrix) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else float rvec[MAX_DIMENSIONS]; if(BaseMath_ReadCallback((MatrixObject *)v2) == -1) return NULL; @@ -1267,28 +1257,21 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1) return NULL; - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector *= Matrix) is now removed, reverse the " - "order (promoted to an Error for Debug builds) " - "and uses the non in-place multiplication."); - return NULL; -#else - printf("Warning: (Vector *= Matrix) is now deprecated, " - "reverse the (non in-place) multiplication order in the script.\n"); - PyC_LineSpit(); + memcpy(vec->vec, rvec, sizeof(float) * vec->size); #endif -#endif /* ifndef MATH_STANDALONE */ /* ------ to be removed ------*/ - - - memcpy(vec->vec, rvec, sizeof(float) * vec->size); } else if (QuaternionObject_Check(v2)) { /* VEC *= QUAT */ + +/* ------ to be removed ------*/ +#if 1 + PyErr_SetString(PyExc_ValueError, + "(Vector *= Quat) is now removed, reverse the " + "order (promoted to an Error for Debug builds) " + "and uses the non in-place multiplication."); + return NULL; +#else QuaternionObject *quat2 = (QuaternionObject*)v2; if(vec->size != 3) { @@ -1302,25 +1285,9 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2) return NULL; } - -/* ------ to be removed ------*/ -#ifndef MATH_STANDALONE -#ifdef WITH_ASSERT_ABORT - PyErr_SetString(PyExc_ValueError, - "(Vector *= Quat) is now removed, reverse the " - "order (promoted to an Error for Debug builds) " - "and uses the non in-place multiplication."); - return NULL; -#else - printf("Warning: (Vector *= Quat) is now deprecated, " - "reverse the (non in-place) multiplication order in the script.\n"); - PyC_LineSpit(); + mul_qt_v3(quat2->quat, vec->vec); #endif -#endif /* ifndef MATH_STANDALONE */ /* ------ to be removed ------*/ - - - mul_qt_v3(quat2->quat, vec->vec); } else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ mul_vn_fl(vec->vec, vec->size, scalar); @@ -1728,6 +1695,21 @@ static int Vector_setLength(VectorObject *self, PyObject *value) return 0; } +/* vector.length_squared */ +static PyObject *Vector_getLengthSquared(VectorObject *self, void *UNUSED(closure)) +{ + double dot = 0.0f; + int i; + + if(BaseMath_ReadCallback(self) == -1) + return NULL; + + for(i = 0; i < self->size; i++){ + dot += (double)(self->vec[i] * self->vec[i]); + } + return PyFloat_FromDouble(dot); +} + /* Get a new Vector according to the provided swizzle. This function has little error checking, as we are in control of the inputs: the closure is set by us in Vector_createSwizzleGetSeter. */ @@ -1851,6 +1833,7 @@ static PyGetSetDef Vector_getseters[] = { {(char *)"z", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Z axis (3D Vectors only).\n\n:type: float", (void *)2}, {(char *)"w", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector W axis (4D Vectors only).\n\n:type: float", (void *)3}, {(char *)"length", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, + {(char *)"length_squared", (getter)Vector_getLengthSquared, (setter)NULL, (char *)"Vector length squared (v.dot(v)).\n\n:type: float", NULL}, {(char *)"magnitude", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL}, {(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL}, {(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL}, diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 2b0ee81fcde..f7a927ec5db 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -93,14 +93,14 @@ 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); -LIBEXPORT struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); -LIBEXPORT void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); -LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); - -LIBEXPORT int RE_engine_test_break(RenderEngine *engine); -LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); -LIBEXPORT void RE_engine_update_progress(RenderEngine *engine, float progress); -LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg); +struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); +void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); +void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); + +int RE_engine_test_break(RenderEngine *engine); +void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +void RE_engine_update_progress(RenderEngine *engine, float progress); +void RE_engine_report(RenderEngine *engine, int type, const char *msg); int RE_engine_render(struct Render *re, int do_all); diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 34d3adcf15b..d62f411a7c5 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -1679,7 +1679,7 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int /* not used, test function for ambient occlusion (yaf: pathlight) */ /* main problem; has to be called within shading loop, giving unwanted recursion */ -static int ray_trace_shadow_rad(ShadeInput *ship, ShadeResult *shr) +static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *shr) { static int counter=0, only_one= 0; extern float hashvectf[]; diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt index 20ac3ba7077..dc83e29b497 100644 --- a/source/blender/windowmanager/CMakeLists.txt +++ b/source/blender/windowmanager/CMakeLists.txt @@ -67,6 +67,7 @@ set(SRC intern/wm_window.c WM_api.h + WM_keymap.h WM_types.h wm.h wm_cursors.h diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 42c3096dfc9..e1b8cefca4b 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -179,7 +179,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 wmOperatorType *WM_operatortype_first(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); @@ -222,6 +222,7 @@ wmOperator *WM_operator_last_redo(const struct bContext *C); #define WM_FILESEL_DIRECTORY (1 << 1) #define WM_FILESEL_FILENAME (1 << 2) #define WM_FILESEL_FILEPATH (1 << 3) +#define WM_FILESEL_FILES (1 << 4) /* operator as a python command (resultuing string must be free'd) */ @@ -230,6 +231,7 @@ 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); int WM_menutype_contains(struct MenuType* mt); diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 7fd52e89a5f..cc3ae3ab753 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -389,8 +389,14 @@ 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. - float tvec[3]; // translation - float rvec[3]; // rotation: + union { + float tvec[3]; // translation + struct { float tx, ty, tz; }; + }; + union { + 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 @@ -417,8 +423,6 @@ typedef struct wmTimer { typedef struct wmOperatorType { - struct wmOperatorType *next, *prev; - const char *name; /* text for ui, undo */ const char *idname; /* unique identifier */ const char *description; /* tooltips and python docs */ diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 1d5cf1cdc53..9299b50103c 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -40,7 +40,11 @@ #include "GHOST_C-api.h" +#include "MEM_guardedalloc.h" + +#include "BLI_utildefines.h" #include "BLI_blenlib.h" +#include "BLI_ghash.h" #include "BKE_blender.h" #include "BKE_context.h" @@ -59,8 +63,6 @@ #include "wm_draw.h" #include "wm.h" -#include "MEM_guardedalloc.h" - #include "ED_screen.h" #ifdef WITH_PYTHON @@ -151,14 +153,14 @@ void WM_operator_stack_clear(wmWindowManager *wm) /* ****************************************** */ -static ListBase menutypes = {NULL, NULL}; /* global menutype list */ +static GHash *menutypes_hash= NULL; MenuType *WM_menutype_find(const char *idname, int quiet) { MenuType* mt; if (idname[0]) { - mt= BLI_findstring(&menutypes, idname, offsetof(MenuType, idname)); + mt= BLI_ghash_lookup(menutypes_hash, idname); if(mt) return mt; } @@ -171,35 +173,55 @@ MenuType *WM_menutype_find(const char *idname, int quiet) int WM_menutype_add(MenuType* mt) { - BLI_addtail(&menutypes, mt); + BLI_ghash_insert(menutypes_hash, (void *)mt->idname, mt); return 1; } /* inefficient but only used for tooltip code */ int WM_menutype_contains(MenuType* mt) { - return (mt != NULL && BLI_findindex(&menutypes, mt) != -1); + int found= FALSE; + + if(mt) { + GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + if(mt == BLI_ghashIterator_getValue(iter)) { + found= TRUE; + break; + } + } + BLI_ghashIterator_free(iter); + } + + return found; } void WM_menutype_freelink(MenuType* mt) { - BLI_freelinkN(&menutypes, mt); + BLI_ghash_remove(menutypes_hash, mt->idname, NULL, (GHashValFreeFP)MEM_freeN); } -void WM_menutype_free(void) +/* called on initialize WM_init() */ +void WM_menutype_init(void) { - MenuType* mt= menutypes.first, *mt_next; + menutypes_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "menutypes_hash gh"); +} - while(mt) { - mt_next= mt->next; +void WM_menutype_free(void) +{ + GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash); - if(mt->ext.free) + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + MenuType *mt= BLI_ghashIterator_getValue(iter); + if(mt->ext.free) { mt->ext.free(mt->ext.data); - - WM_menutype_freelink(mt); - - mt= mt_next; + } } + BLI_ghashIterator_free(iter); + + BLI_ghash_free(menutypes_hash, NULL, (GHashValFreeFP)MEM_freeN); + menutypes_hash= NULL; } /* ****************************************** */ diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 5baaf6b4eb2..a96cc8cf957 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2335,29 +2335,32 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g const float s = U.ndof_sensitivity; - data->tvec[0]= s * ghost->tx; + data->tx = s * ghost->tx; - data->rvec[0]= s * ghost->rx; - data->rvec[1]= s * ghost->ry; - data->rvec[2]= s * ghost->rz; + data->rx = s * ghost->rx; + data->ry = s * ghost->ry; + data->rz = s * ghost->rz; if (U.ndof_flag & NDOF_ZOOM_UPDOWN) { - // rotate so Y is where Z was (maintain handed-ness) - data->tvec[1]= s * ghost->tz; - data->tvec[2]= s * -ghost->ty; - - // should this affect rotation also? - // initial guess is 'yes', but get user feedback immediately! -#if 0 // after turning this on, my guess becomes 'no' - data->rvec[1]= s * ghost->rz; - data->rvec[2]= s * ghost->ry; + /* rotate so Y is where Z was */ + data->ty = s * ghost->tz; + data->tz = s * ghost->ty; + /* maintain handed-ness? or just do what feels right? */ + + /* should this affect rotation also? + * initial guess is 'yes', but get user feedback immediately! + */ +#if 0 + /* after turning this on, my guess becomes 'no' */ + data->ry = s * ghost->rz; + data->rz = s * ghost->ry; #endif } else { - data->tvec[1]= s * ghost->ty; - data->tvec[2]= s * ghost->tz; + data->ty = s * ghost->ty; + data->tz = s * ghost->tz; } data->dt = ghost->dt; diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 20f9d2237c2..6b3a574b6b6 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -450,7 +450,7 @@ 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 *reports, short from_memory) +int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory) { ListBase wmbase; char tstr[FILE_MAXDIR+FILE_MAXFILE]; @@ -466,7 +466,6 @@ int WM_read_homefile(bContext *C, ReportList *reports, short from_memory) } else { tstr[0] = '\0'; from_memory = 1; - BKE_report(reports, RPT_INFO, "Config directory with "STRINGIFY(BLENDER_STARTUP_FILE)" file not found."); } } diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 6f8b455e835..66adbdaa681 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -128,7 +128,8 @@ void WM_init(bContext *C, int argc, const char **argv) } GHOST_CreateSystemPaths(); wm_operatortype_init(); - + WM_menutype_init(); + set_free_windowmanager_cb(wm_close_and_free); /* library.c */ set_blender_test_break_cb(wm_window_testbreak); /* blender.c */ DAG_editors_update_cb(ED_render_id_flush_update); /* depsgraph.c */ diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 2fb0a1b2ab9..6887aa4c717 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -106,6 +106,9 @@ static int wm_keymap_item_equals_result(wmKeyMapItem *a, wmKeyMapItem *b) (a->ptr && b->ptr && IDP_EqualsProperties(a->ptr->data, b->ptr->data)))) return 0; + if((a->flag & KMI_INACTIVE) != (b->flag & KMI_INACTIVE)) + return 0; + return (a->propvalue == b->propvalue); } @@ -1009,7 +1012,8 @@ void WM_keyconfig_update(wmWindowManager *wm) addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid); /* diff */ - wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km); + if(defaultmap) + wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km); } } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index cea2d6b3fe5..1beb5b3dda3 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -58,6 +58,7 @@ #include "BLI_math.h" #include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLI_ghash.h" #include "BLO_readfile.h" @@ -100,7 +101,7 @@ #include "wm_subwindow.h" #include "wm_window.h" -static ListBase global_ops= {NULL, NULL}; +static GHash *global_ops_hash= NULL; /* ************ operator API, exported ********** */ @@ -113,7 +114,7 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet) WM_operator_bl_idname(idname_bl, idname); if (idname_bl[0]) { - ot= (wmOperatorType *)BLI_findstring_ptr(&global_ops, idname_bl, offsetof(wmOperatorType, idname)); + ot= BLI_ghash_lookup(global_ops_hash, idname_bl); if(ot) { return ot; } @@ -125,9 +126,10 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet) return NULL; } -wmOperatorType *WM_operatortype_first(void) +/* caller must free */ +GHashIterator *WM_operatortype_iter(void) { - return global_ops.first; + return BLI_ghashIterator_new(global_ops_hash); } /* all ops in 1 list (for time being... needs evaluation later) */ @@ -147,7 +149,8 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*)) RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); // XXX All ops should have a description but for now allow them not to. RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *userdata) @@ -159,7 +162,8 @@ void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *us opfunc(ot, userdata); RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } /* ********************* macro operator ******************** */ @@ -351,7 +355,7 @@ wmOperatorType *WM_operatortype_append_macro(const char *idname, const char *nam RNA_def_struct_ui_text(ot->srna, ot->name, ot->description); // XXX All ops should have a description but for now allow them not to. RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); return ot; } @@ -378,7 +382,7 @@ void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), vo RNA_def_struct_ui_text(ot->srna, ot->name, ot->description); RNA_def_struct_identifier(ot->srna, ot->idname); - BLI_addtail(&global_ops, ot); + BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot); } wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname) @@ -426,14 +430,14 @@ int WM_operatortype_remove(const char *idname) if (ot==NULL) return 0; - BLI_remlink(&global_ops, ot); RNA_struct_free(&BLENDER_RNA, ot->srna); if(ot->macro.first) wm_operatortype_free_macro(ot); - - MEM_freeN(ot); + BLI_ghash_remove(global_ops_hash, (void *)ot->idname, NULL, NULL); + + MEM_freeN(ot); return 1; } @@ -807,6 +811,9 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, if(flag & WM_FILESEL_FILENAME) RNA_def_string_file_name(ot->srna, "filename", "", FILE_MAX, "File Name", "Name of the file"); + if(flag & WM_FILESEL_FILES) + RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); + if (action == FILE_SAVE) { prop= RNA_def_boolean(ot->srna, "check_existing", 1, "Check Existing", "Check and warn on overwriting existing files"); RNA_def_property_flag(prop, PROP_HIDDEN); @@ -1247,7 +1254,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NONE); uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-258/"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-259/"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.5/Manual"); uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // @@ -1311,9 +1318,10 @@ static void operator_call_cb(struct bContext *C, void *UNUSED(arg1), void *arg2) static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) { - wmOperatorType *ot = WM_operatortype_first(); - - for(; ot; ot= ot->next) { + GHashIterator *iter= WM_operatortype_iter(); + + for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { + wmOperatorType *ot= BLI_ghashIterator_getValue(iter); if((ot->flag & OPTYPE_INTERNAL) && (G.f & G_DEBUG) == 0) continue; @@ -1337,6 +1345,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons } } } + BLI_ghashIterator_free(iter); } static uiBlock *wm_block_search_menu(bContext *C, ARegion *ar, void *UNUSED(arg_op)) @@ -1742,14 +1751,12 @@ 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_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); 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"); - - RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", ""); } /* *************** recover last session **************** */ @@ -2003,8 +2010,6 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - int selected = 0; - if(!RNA_property_is_set(op->ptr, "filepath")) { char filepath[FILE_MAX]; BLI_strncpy(filepath, G.main->name, sizeof(filepath)); @@ -3457,26 +3462,31 @@ static void WM_OT_ndof_sensitivity_change(wmOperatorType *ot) RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then sensitivity changes 50%, otherwise 10%"); } + +static void operatortype_ghash_free_cb(wmOperatorType *ot) +{ + if(ot->macro.first) + wm_operatortype_free_macro(ot); + + if(ot->ext.srna) /* python operator, allocs own string */ + MEM_freeN((void *)ot->idname); + + MEM_freeN(ot); +} + /* ******************************************************* */ /* called on initialize WM_exit() */ void wm_operatortype_free(void) { - wmOperatorType *ot; - - for(ot= global_ops.first; ot; ot= ot->next) { - if(ot->macro.first) - wm_operatortype_free_macro(ot); - - if(ot->ext.srna) /* python operator, allocs own string */ - MEM_freeN((void *)ot->idname); - } - - BLI_freelistN(&global_ops); + BLI_ghash_free(global_ops_hash, NULL, (GHashValFreeFP)operatortype_ghash_free_cb); + global_ops_hash= NULL; } /* called on initialize WM_init() */ void wm_operatortype_init(void) { + global_ops_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wm_operatortype_init gh"); + WM_operatortype_append(WM_OT_window_duplicate); WM_operatortype_append(WM_OT_read_homefile); WM_operatortype_append(WM_OT_read_factory_settings); diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c index a87001fb1b4..8ea1f2fdd0a 100644 --- a/source/blender/windowmanager/intern/wm_subwindow.c +++ b/source/blender/windowmanager/intern/wm_subwindow.c @@ -378,7 +378,8 @@ unsigned int index_to_framebuffer(int index) void WM_set_framebuffer_index_color(int index) { - cpack(index_to_framebuffer(index)); + const int col= index_to_framebuffer(index); + cpack(col); } int WM_framebuffer_to_index(unsigned int col) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index b37f6b0baf2..d8f37aa250c 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -395,7 +395,7 @@ void RE_engine_free(struct RenderEngine *engine) {} /* python */ struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;} -struct wmOperatorType *WM_operatortype_first(){return (struct wmOperatorType *) NULL;} +struct GHashIterator *WM_operatortype_iter(){return (struct GHashIterator *) NULL;} struct wmOperatorType *WM_operatortype_exists(const char *idname){return (struct wmOperatorType *) NULL;} struct wmOperatorTypeMacro *WM_operatortype_macro_define(struct wmOperatorType *ot, const char *idname){return (struct wmOperatorTypeMacro *) NULL;} int WM_operator_call_py(struct bContext *C, struct wmOperatorType *ot, int context, struct PointerRNA *properties, struct ReportList *reports){return 0;} diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 49f00e39110..3f09eee013e 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -254,8 +254,12 @@ void KX_LightObject::BindShadowBuffer(RAS_IRasterizer *ras, KX_Camera *cam, MT_T cam->NodeUpdateGS(0); /* setup rasterizer transformations */ + /* SetViewMatrix may use stereomode which we temporarily disable here */ + RAS_IRasterizer::StereoMode stereomode = ras->GetStereoMode(); + ras->SetStereoMode(RAS_IRasterizer::RAS_STEREO_NOSTEREO); ras->SetProjectionMatrix(projectionmat); ras->SetViewMatrix(modelviewmat, cam->NodeGetWorldOrientation(), cam->NodeGetWorldPosition(), cam->GetCameraData()->m_perspective); + ras->SetStereoMode(stereomode); } void KX_LightObject::UnbindShadowBuffer(RAS_IRasterizer *ras) diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 8fd0d6e7099..3f802642d33 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -111,7 +111,7 @@ add_test(export_obj_all_objects ${TEST_BLENDER_EXE} --run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_all_objects.obj',use_selection=False,use_nurbs=True\) --md5_source=${TEST_OUT_DIR}/export_obj_all_objects.obj --md5_source=${TEST_OUT_DIR}/export_obj_all_objects.mtl - --md5=01c123948efadc6a71ab2c09a5925756 --md5_method=FILE + --md5=04b3ed97cede07a19548fc518ce9f8ca --md5_method=FILE ) @@ -196,7 +196,7 @@ add_test(export_x3d_cube ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_cube.x3d',use_selection=False\) --md5_source=${TEST_OUT_DIR}/export_x3d_cube.x3d - --md5=5e804c689896116331fa190a9fabbad4 --md5_method=FILE + --md5=2621d8cc2cc1d34f6711c54519907dac --md5_method=FILE ) add_test(export_x3d_nurbs ${TEST_BLENDER_EXE} @@ -204,7 +204,7 @@ add_test(export_x3d_nurbs ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_nurbs.x3d',use_selection=False\) --md5_source=${TEST_OUT_DIR}/export_x3d_nurbs.x3d - --md5=2d5bcf43cf7b6fbbef1c8cc566968fe5 --md5_method=FILE + --md5=d56b3736bab063d101d42079bd276f01 --md5_method=FILE ) add_test(export_x3d_all_objects ${TEST_BLENDER_EXE} @@ -212,7 +212,7 @@ add_test(export_x3d_all_objects ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_all_objects.x3d',use_selection=False\) --md5_source=${TEST_OUT_DIR}/export_x3d_all_objects.x3d - --md5=2809ec13a4cab55d265ce7525c5db1b7 --md5_method=FILE + --md5=0914c9a7fcdbfc5741c1269497e9068b --md5_method=FILE ) @@ -273,7 +273,7 @@ add_test(export_fbx_cube ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_cube.fbx',use_selection=False,use_metadata=False\) --md5_source=${TEST_OUT_DIR}/export_fbx_cube.fbx - --md5=83dca99a0cb338852b8c85951a44c68a --md5_method=FILE + --md5=86da2495dffd7c270e682f599be6b3d1 --md5_method=FILE ) add_test(export_fbx_nurbs ${TEST_BLENDER_EXE} @@ -281,7 +281,7 @@ add_test(export_fbx_nurbs ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_nurbs.fbx',use_selection=False,use_metadata=False\) --md5_source=${TEST_OUT_DIR}/export_fbx_nurbs.fbx - --md5=c7d9491ffa6264e820ed1e12df63f871 --md5_method=FILE + --md5=88a263ddb5181e6522dc214debb92ced --md5_method=FILE ) add_test(export_fbx_all_objects ${TEST_BLENDER_EXE} @@ -289,5 +289,5 @@ add_test(export_fbx_all_objects ${TEST_BLENDER_EXE} --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_all_objects.fbx',use_selection=False,use_metadata=False\) --md5_source=${TEST_OUT_DIR}/export_fbx_all_objects.fbx - --md5=22867f82e1615fd1eae18cfaac8ba035 --md5_method=FILE + --md5=e6f75fe7de9aa366896456e13eafc76a --md5_method=FILE ) diff --git a/source/tests/bl_run_operators.py b/source/tests/bl_run_operators.py index 668b4e69228..b64055df252 100644 --- a/source/tests/bl_run_operators.py +++ b/source/tests/bl_run_operators.py @@ -70,7 +70,7 @@ def run_ops(operators, setup_func=None): setup_func() - for mode in ('EXEC_DEFAULT', 'INVOKE_DEFAULT'): + for mode in {'EXEC_DEFAULT', 'INVOKE_DEFAULT'}: try: op(mode) except: -- cgit v1.2.3 From f7b9c85871ad4e68dbd578556f3ae8ef55d6dc98 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 21 Aug 2011 10:32:15 +0000 Subject: Cycles: fix some invalid memory access problems found by running the windows build in debug mode. --- CMakeLists.txt | 14 ++++++-------- intern/cycles/blender/blender_mesh.cpp | 20 ++++++++++---------- intern/cycles/blender/blender_object.cpp | 6 +++--- intern/cycles/blender/blender_session.cpp | 4 +++- intern/cycles/blender/blender_shader.cpp | 18 +++++++++--------- intern/cycles/blender/blender_sync.cpp | 10 +++++----- intern/cycles/render/graph.cpp | 2 +- intern/cycles/render/graph.h | 3 ++- source/blender/makesrna/intern/makesrna.c | 8 ++++---- 9 files changed, 43 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cc935939f4..1422710ad33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -497,12 +497,6 @@ if(UNIX AND NOT APPLE) set(BOOST "/usr" CACHE PATH "Boost Directory") endif() - #set(Boost_ADDITIONAL_VERSIONS "1.46" "1.45" "1.44" - # "1.43" "1.43.0" "1.42" "1.42.0" - # "1.41" "1.41.0" "1.40" "1.40.0" - # "1.39" "1.39.0" "1.38" "1.38.0" - # "1.37" "1.37.0" "1.34.1" "1_34_1") - set(BOOST_ROOT ${BOOST}) set(Boost_USE_MULTITHREADED ON) find_package(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) @@ -819,8 +813,12 @@ elseif(WIN32) set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib") - set(BOOST_LIBRARIES libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} - libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX}) + set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1.lib") + set(BOOST_LIBRARIES + optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} + libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} + debug libboost_date_time-${BOOST_DEBUG_POSTFIX} libboost_filesystem-${BOOST_DEBUG_POSTFIX} + libboost_regex-${BOOST_DEBUG_POSTFIX} libboost_system-${BOOST_DEBUG_POSTFIX} libboost_thread-${BOOST_DEBUG_POSTFIX}) set(BOOST_LIBPATH ${BOOST}/lib) set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") endif() diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index c69e911723e..3fe4fa60a16 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -62,14 +62,14 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< /* create vertices */ BL::Mesh::vertices_iterator v; - for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v) mesh->verts.push_back(get_float3(v->co())); /* create faces */ BL::Mesh::faces_iterator f; vector nverts; - for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) { + for(b_mesh.faces.begin(f); f != b_mesh.faces.end(); ++f) { int4 vi = get_int4(f->vertices_raw()); int n= (vi[3] == 0)? 3: 4; int shader = used_shaders[f->material_index()]; @@ -101,7 +101,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< BL::Mesh::vertices_iterator v; size_t i = 0; - for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v) fdata[i++] = get_float3(v->co())*size - loc; } @@ -109,7 +109,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< { BL::Mesh::vertex_colors_iterator l; - for(l = b_mesh.vertex_colors.begin(); l != b_mesh.vertex_colors.end(); ++l) { + for(b_mesh.vertex_colors.begin(l); l != b_mesh.vertex_colors.end(); ++l) { if(!mesh_need_attribute(scene, mesh, ustring(l->name()))) continue; @@ -120,7 +120,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< float3 *fdata = attr->data_float3(); size_t i = 0; - for(c = l->data.begin(); c != l->data.end(); ++c, ++i) { + for(l->data.begin(c); c != l->data.end(); ++c, ++i) { fdata[0] = get_float3(c->color1()); fdata[1] = get_float3(c->color2()); fdata[2] = get_float3(c->color3()); @@ -140,7 +140,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< { BL::Mesh::uv_textures_iterator l; - for(l = b_mesh.uv_textures.begin(); l != b_mesh.uv_textures.end(); ++l) { + for(b_mesh.uv_textures.begin(l); l != b_mesh.uv_textures.end(); ++l) { Attribute::Standard std = (l->active_render())? Attribute::STD_UV: Attribute::STD_NONE; ustring name = ustring(l->name()); @@ -158,7 +158,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< float3 *fdata = attr->data_float3(); size_t i = 0; - for(t = l->data.begin(); t != l->data.end(); ++t, ++i) { + for(l->data.begin(t); t != l->data.end(); ++t, ++i) { fdata[0] = get_float3(t->uv1()); fdata[1] = get_float3(t->uv2()); fdata[2] = get_float3(t->uv3()); @@ -183,13 +183,13 @@ static void create_subd_mesh(Mesh *mesh, BL::Mesh b_mesh, PointerRNA *cmesh, con /* create vertices */ BL::Mesh::vertices_iterator v; - for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v) + for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v) sdmesh.add_vert(get_float3(v->co())); /* create faces */ BL::Mesh::faces_iterator f; - for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) { + for(b_mesh.faces.begin(f); f != b_mesh.faces.end(); ++f) { int4 vi = get_int4(f->vertices_raw()); int n= (vi[3] == 0)? 3: 4; //int shader = used_shaders[f->material_index()]; @@ -223,7 +223,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) vector used_shaders; BL::Object::material_slots_iterator slot; - for(slot = b_ob.material_slots.begin(); slot != b_ob.material_slots.end(); ++slot) + for(b_ob.material_slots.begin(slot); slot != b_ob.material_slots.end(); ++slot) find_shader(slot->material(), used_shaders); if(used_shaders.size() == 0) diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 241cbf07357..52081cc0b60 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -40,7 +40,7 @@ bool BlenderSync::object_is_modified(BL::Object b_ob) else { /* object level material links */ BL::Object::material_slots_iterator slot; - for(slot = b_ob.material_slots.begin(); slot != b_ob.material_slots.end(); ++slot) + for(b_ob.material_slots.begin(slot); slot != b_ob.material_slots.end(); ++slot) if(slot->link() == BL::MaterialSlot::link_OBJECT) return true; } @@ -144,7 +144,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) /* object loop */ BL::Scene::objects_iterator b_ob; - for(b_ob = b_scene.objects.begin(); b_ob != b_scene.objects.end(); ++b_ob) { + for(b_scene.objects.begin(b_ob); b_ob != b_scene.objects.end(); ++b_ob) { bool hide = (b_v3d)? b_ob->hide(): b_ob->hide_render(); if(!hide && get_layer(b_ob->layers()) & layer) { @@ -155,7 +155,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) BL::Object::dupli_list_iterator b_dup; int b_index = 0; - for(b_dup = b_ob->dupli_list.begin(); b_dup != b_ob->dupli_list.end(); ++b_dup) { + for(b_ob->dupli_list.begin(b_dup); b_dup != b_ob->dupli_list.end(); ++b_dup) { Transform tfm = get_transform(b_dup->matrix()); sync_object(*b_ob, b_index, b_dup->object(), tfm); b_index++; diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index d79c671fd3b..f69ebff5338 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -148,7 +148,9 @@ void BlenderSession::write_render_result() RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr); BL::RenderResult rr(rrptr); - rna_RenderLayer_rect_set(&rr.layers.begin()->ptr, (float*)&buffer[0]); + BL::RenderResult::layers_iterator layer; + rr.layers.begin(layer); + rna_RenderLayer_rect_set(&layer->ptr, (float*)&buffer[0]); RE_engine_end_result((RenderEngine*)b_engine.ptr.data, rrp); } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 113cf2a91bc..db65a7f129e 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -54,18 +54,18 @@ static BL::NodeSocket get_node_input(BL::Node *b_group_node, BL::Node b_node, co { BL::Node::inputs_iterator b_in; - for(b_in = b_node.inputs.begin(); b_in != b_node.inputs.end(); ++b_in) { + for(b_node.inputs.begin(b_in); b_in != b_node.inputs.end(); ++b_in) { if(b_in->name() == name) { if(b_group_node) { BL::NodeTree b_ntree = BL::NodeGroup(*b_group_node).node_tree(); BL::NodeTree::links_iterator b_link; - for(b_link = b_ntree.links.begin(); b_link != b_ntree.links.end(); ++b_link) { + for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); ++b_link) { if(b_link->to_socket().ptr.data == b_in->ptr.data) { BL::Node::inputs_iterator b_gin; - for(b_gin = b_group_node->inputs.begin(); b_gin != b_group_node->inputs.end(); ++b_gin) + for(b_group_node->inputs.begin(b_gin); b_gin != b_group_node->inputs.end(); ++b_gin) if(b_gin->group_socket().ptr.data == b_link->from_socket().ptr.data) return *b_gin; @@ -86,7 +86,7 @@ static BL::NodeSocket get_node_output(BL::Node b_node, const string& name) { BL::Node::outputs_iterator b_out; - for(b_out = b_node.outputs.begin(); b_out != b_node.outputs.end(); ++b_out) + for(b_node.outputs.begin(b_out); b_out != b_node.outputs.end(); ++b_out) if(b_out->name() == name) return *b_out; @@ -405,7 +405,7 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr PtrNodeMap node_map; map node_groups; - for(b_node = b_ntree.nodes.begin(); b_node != b_ntree.nodes.end(); ++b_node) { + for(b_ntree.nodes.begin(b_node); b_node != b_ntree.nodes.end(); ++b_node) { if(b_node->is_a(&RNA_NodeGroup)) { BL::NodeGroup b_gnode(*b_node); BL::ShaderNodeTree b_group_ntree(b_gnode.node_tree()); @@ -422,7 +422,7 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr node_map[b_node->ptr.data] = node; - for(b_input = b_node->inputs.begin(); b_input != b_node->inputs.end(); ++b_input) { + for(b_node->inputs.begin(b_input); b_input != b_node->inputs.end(); ++b_input) { ShaderInput *input = node->input(b_input->name().c_str()); BL::NodeSocket sock(get_node_input(b_group_node, *b_node, b_input->name())); @@ -458,7 +458,7 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr /* connect nodes */ BL::NodeTree::links_iterator b_link; - for(b_link = b_ntree.links.begin(); b_link != b_ntree.links.end(); ++b_link) { + for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); ++b_link) { /* get blender link data */ BL::Node b_from_node = b_link->from_node(); BL::Node b_to_node = b_link->to_node(); @@ -528,7 +528,7 @@ void BlenderSync::sync_materials() /* material loop */ BL::BlendData::materials_iterator b_mat; - for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); ++b_mat) { + for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); ++b_mat) { Shader *shader; /* test if we need to sync */ @@ -610,7 +610,7 @@ void BlenderSync::sync_lamps() /* lamp loop */ BL::BlendData::lamps_iterator b_lamp; - for(b_lamp = b_data.lamps.begin(); b_lamp != b_data.lamps.end(); ++b_lamp) { + for(b_data.lamps.begin(b_lamp); b_lamp != b_data.lamps.end(); ++b_lamp) { Shader *shader; /* test if we need to sync */ diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 1897ff13a64..c00fd8e7689 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -65,19 +65,19 @@ bool BlenderSync::sync_recalc() BL::BlendData::materials_iterator b_mat; - for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); ++b_mat) + for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); ++b_mat) if(b_mat->recalc()) shader_map.set_recalc(*b_mat); BL::BlendData::lamps_iterator b_lamp; - for(b_lamp = b_data.lamps.begin(); b_lamp != b_data.lamps.end(); ++b_lamp) + for(b_data.lamps.begin(b_lamp); b_lamp != b_data.lamps.end(); ++b_lamp) if(b_lamp->recalc()) shader_map.set_recalc(*b_lamp); BL::BlendData::objects_iterator b_ob; - for(b_ob = b_data.objects.begin(); b_ob != b_data.objects.end(); ++b_ob) { + for(b_data.objects.begin(b_ob); b_ob != b_data.objects.end(); ++b_ob) { if(b_ob->recalc()) { object_map.set_recalc(*b_ob); light_map.set_recalc(*b_ob); @@ -92,13 +92,13 @@ bool BlenderSync::sync_recalc() BL::BlendData::meshes_iterator b_mesh; - for(b_mesh = b_data.meshes.begin(); b_mesh != b_data.meshes.end(); ++b_mesh) + for(b_data.meshes.begin(b_mesh); b_mesh != b_data.meshes.end(); ++b_mesh) if(b_mesh->recalc()) mesh_map.set_recalc(*b_mesh); BL::BlendData::worlds_iterator b_world; - for(b_world = b_data.worlds.begin(); b_world != b_data.worlds.end(); ++b_world) + for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); ++b_world) if(world_map == b_world->ptr.data && b_world->recalc()) world_recalc = true; diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp index 3dd3d6107b4..54acc6e14cd 100644 --- a/intern/cycles/render/graph.cpp +++ b/intern/cycles/render/graph.cpp @@ -324,7 +324,7 @@ void ShaderGraph::clean() break_cycles(output(), visited, on_stack); /* remove unused nodes */ - vector newnodes; + list newnodes; foreach(ShaderNode *node, nodes) { if(visited[node->id]) diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h index c73dd77d5df..a79a68da358 100644 --- a/intern/cycles/render/graph.h +++ b/intern/cycles/render/graph.h @@ -21,6 +21,7 @@ #include "kernel_types.h" +#include "util_list.h" #include "util_map.h" #include "util_param.h" #include "util_set.h" @@ -193,7 +194,7 @@ public: class ShaderGraph { public: - vector nodes; + list nodes; bool finalized; ShaderGraph(); diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 7da538e171b..f96111d7a62 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2670,8 +2670,6 @@ static const char *cpp_classes = "" " operator bool(void)\n" " { return iter.valid != 0; }\n" " const CollectionIterator& operator++() { Tnext(&iter); t = T(iter.ptr); return *this; }\n" -" const CollectionIterator& operator=(const CollectionIterator& copy)\n" -" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" "\n" " T& operator*(void) { return t; }\n" " T* operator->(void) { return &t; }\n" @@ -2682,6 +2680,8 @@ static const char *cpp_classes = "" " { if(init) Tend(&iter); Tbegin(&iter, (PointerRNA*)&ptr.ptr); t = T(iter.ptr); init = true; }\n" "\n" "private:\n" +" const CollectionIterator& operator=(const CollectionIterator& copy) {}\n" +"" " CollectionPropertyIterator iter;\n" " T t;\n" " bool init;\n" @@ -2692,8 +2692,8 @@ static const char *cpp_classes = "" "public:\n" " Collection(const PointerRNA& p) : ptr(p) {}\n" "\n" -" CollectionIterator begin()\n" -" { CollectionIterator iter; iter.begin(ptr); return iter; }\n" +" void begin(CollectionIterator& iter)\n" +" { iter.begin(ptr); }\n" " CollectionIterator end()\n" " { return CollectionIterator(); } /* test */ \n" "\n" -- cgit v1.2.3 From 9ccc60ed8c22ad7ce886273832dd885af3c2347d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 22 Aug 2011 13:17:43 +0000 Subject: Cycles: * Update progress bar during render (patch by Thomas) * Show status/pass/time during render in 3d view --- intern/cycles/blender/addon/engine.py | 36 +------------ intern/cycles/blender/blender_session.cpp | 35 ++++++++++--- intern/cycles/blender/blender_session.h | 1 + intern/cycles/blender/blender_util.h | 2 + source/blender/editors/space_view3d/view3d_draw.c | 61 +++++++++++++++++------ source/blender/render/extern/include/RE_engine.h | 1 + source/blender/render/intern/pipeline/engine.c | 41 ++++++++++++--- 7 files changed, 112 insertions(+), 65 deletions(-) diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index 6879efcb24e..d25eb21eeb9 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -58,41 +58,7 @@ def draw(engine, region, v3d, rv3d): rv3d = rv3d.as_pointer() # draw render image - status, substatus = lib.draw(engine.session, v3d, rv3d) - - # draw text over image - if status != "": - import blf - import bgl - - fontid = 0 # todo, find out how to set this - dim = blf.dimensions(fontid, status) - dim_sub = blf.dimensions(fontid, substatus) - - padding = 5 - - x = (region.width - max(dim[0], dim_sub[0]))*0.5 - padding - y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 - padding - - bgl.glColor4f(0.0, 0.0, 0.0, 0.5) - bgl.glEnable(bgl.GL_BLEND) - bgl.glBlendFunc(bgl.GL_SRC_ALPHA, bgl.GL_ONE_MINUS_SRC_ALPHA) - bgl.glRectf(x, y, x+max(dim[0], dim_sub[0])+padding+padding, y+dim[1]+dim_sub[1]+padding+padding+2) - bgl.glDisable(bgl.GL_BLEND) - - x = (region.width - dim[0])*0.5 - y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 + dim_sub[1] + padding - - bgl.glColor3f(0.8, 0.8, 0.8) - blf.position(fontid, x, y, 0) - blf.draw(fontid, status) - - x = (region.width - dim_sub[0])*0.5 - y = (region.height - (dim[1] + dim_sub[1] + padding))*0.5 - - bgl.glColor3f(0.6, 0.6, 0.6) - blf.position(fontid, x, y, 0) - blf.draw(fontid, substatus) + lib.draw(engine.session, v3d, rv3d) def available_devices(): import libcycles_blender as lib diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index f69ebff5338..045efef0ef0 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -243,6 +243,15 @@ void BlenderSession::get_status(string& status, string& substatus) session->progress.get_status(status, substatus); } +void BlenderSession::get_progress(float& progress, double& total_time) +{ + double pass_time; + int pass; + + session->progress.get_pass(pass, total_time, pass_time); + progress = ((float)pass/(float)session->params.passes); +} + void BlenderSession::tag_update() { /* tell blender that we want to get another update callback */ @@ -251,16 +260,28 @@ void BlenderSession::tag_update() void BlenderSession::tag_redraw() { - if(background) { - /* offline render, set stats and redraw if timeout passed */ - string status, substatus; - get_status(status, substatus); + string status, substatus; + float progress; + double total_time; + char time_str[128]; + + /* update stats and progress */ + get_status(status, substatus); + get_progress(progress, total_time); + + if(!background) { + BLI_timestr(total_time, time_str); + status = "Time: " + string(time_str) + " | " + status; + } - if(substatus.size() > 0) - status += " | " + substatus; + if(substatus.size() > 0) + status += " | " + substatus; - RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); + RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); + RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); + if(background) { + /* offline render, redraw if timeout passed */ if(time_dt() - last_redraw_time > 1.0f) { write_render_result(); engine_tag_redraw((RenderEngine*)b_engine.ptr.data); diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h index 8bc5d3dfab9..ea3e005a884 100644 --- a/intern/cycles/blender/blender_session.h +++ b/intern/cycles/blender/blender_session.h @@ -55,6 +55,7 @@ public: void tag_redraw(); void tag_update(); void get_status(string& status, string& substatus); + void get_progress(float& progress, double& total_time); void test_cancel(); bool background; diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 354a195758f..fe9a611e2f8 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -44,9 +44,11 @@ void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *r void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result); 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); void engine_tag_redraw(void *engine); void engine_tag_update(void *engine); int rna_Object_is_modified(void *ob, void *scene, int settings); +void BLI_timestr(double _time, char *str); } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index cf048582849..746bc752764 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2566,6 +2566,32 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar) return 1; } +static void view3d_main_area_draw_engine_info(RegionView3D *rv3d, ARegion *ar) +{ + rcti rect; + const int header_height = 18; + + if(!rv3d->render_engine || !rv3d->render_engine->text) + return; + + /* background box */ + rect= ar->winrct; + rect.xmin= 0; + rect.ymin= ar->winrct.ymax - ar->winrct.ymin - header_height; + rect.xmax= ar->winrct.xmax - ar->winrct.xmin; + rect.ymax= ar->winrct.ymax - ar->winrct.ymin; + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + glColor4f(0.0f, 0.0f, 0.0f, 0.25f); + glRecti(rect.xmin, rect.ymin, rect.xmax+1, rect.ymax+1); + glDisable(GL_BLEND); + + /* text */ + UI_ThemeColor(TH_TEXT_HI); + UI_DrawString(12, rect.ymin + 5, rv3d->render_engine->text); +} + /* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */ void view3d_main_area_draw(const bContext *C, ARegion *ar) { @@ -2781,26 +2807,31 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) else draw_view_icon(rv3d); - if((U.uiflag & USER_SHOW_FPS) && (CTX_wm_screen(C)->animtimer)) { - draw_viewport_fps(scene, ar); + if(rv3d->render_engine) { + view3d_main_area_draw_engine_info(rv3d, ar); } - else if(U.uiflag & USER_SHOW_VIEWPORTNAME) { - draw_viewport_name(ar, v3d); - } - if (grid_unit) { /* draw below the viewport name */ - char tstr[32]= ""; + else { + if((U.uiflag & USER_SHOW_FPS) && (CTX_wm_screen(C)->animtimer)) { + draw_viewport_fps(scene, ar); + } + else if(U.uiflag & USER_SHOW_VIEWPORTNAME) { + draw_viewport_name(ar, v3d); + } + if (grid_unit) { /* draw below the viewport name */ + char tstr[32]= ""; - UI_ThemeColor(TH_TEXT_HI); - if(v3d->grid != 1.0f) { - BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid); + UI_ThemeColor(TH_TEXT_HI); + if(v3d->grid != 1.0f) { + BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid); + } + + BLF_draw_default_ascii(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ } - BLF_draw_default_ascii(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ + ob= OBACT; + if(U.uiflag & USER_DRAWVIEWINFO) + draw_selected_name(scene, ob); } - - ob= OBACT; - if(U.uiflag & USER_DRAWVIEWINFO) - draw_selected_name(scene, ob); /* XXX here was the blockhandlers for floating panels */ diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index f7a927ec5db..7f01bc673d2 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -82,6 +82,7 @@ typedef struct RenderEngine { struct Render *re; ListBase fullresult; + char *text; int do_draw; int do_update; diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index 68d3b2697c5..0fc6a0320c8 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -38,6 +38,7 @@ #include "MEM_guardedalloc.h" #include "BLI_listbase.h" +#include "BLI_string.h" #include "BLI_utildefines.h" #include "BKE_report.h" @@ -133,6 +134,9 @@ void RE_engine_free(RenderEngine *engine) } #endif + if(engine->text) + MEM_freeN(engine->text); + MEM_freeN(engine); } @@ -204,7 +208,10 @@ int RE_engine_test_break(RenderEngine *engine) { Render *re= engine->re; - return re->test_break(re->tbh); + if(re) + return re->test_break(re->tbh); + + return 0; } /* Statistics */ @@ -213,19 +220,37 @@ void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char { Render *re= engine->re; - re->i.statstr= stats; - re->i.infostr= info; - re->stats_draw(re->sdh, &re->i); - re->i.infostr= NULL; - re->i.statstr= NULL; + /* stats draw callback */ + if(re) { + re->i.statstr= stats; + re->i.infostr= info; + re->stats_draw(re->sdh, &re->i); + re->i.infostr= NULL; + re->i.statstr= NULL; + } + + /* set engine text */ + if(engine->text) { + MEM_freeN(engine->text); + engine->text= NULL; + } + + if(stats && stats[0] && info && info[0]) + engine->text= BLI_sprintfN("%s | %s", stats, info); + else if(info && info[0]) + engine->text= BLI_strdup(info); + else if(stats && stats[0]) + engine->text= BLI_strdup(stats); } void RE_engine_update_progress(RenderEngine *engine, float progress) { Render *re= engine->re; - CLAMP(progress, 0.0f, 1.0f); - re->progress(re->prh, progress); + if(re) { + CLAMP(progress, 0.0f, 1.0f); + re->progress(re->prh, progress); + } } void RE_engine_report(RenderEngine *engine, int type, const char *msg) -- cgit v1.2.3 From f717a1cca6ff7732119bd8d28e4d6e2c7ddd64e6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 23 Aug 2011 12:18:32 +0000 Subject: Cycles: fix missing update when adding a lamp. --- source/blender/editors/object/object_add.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 2e44d4031c8..6bc45638d4c 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -308,6 +308,7 @@ Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, int en /* more editor stuff */ ED_object_base_init_transform(C, BASACT, loc, rot); + DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); ED_render_id_flush_update(bmain, ob->data); -- cgit v1.2.3 From bd38aa51ad029f114813d3d8f5a069571255b211 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 23 Aug 2011 12:20:11 +0000 Subject: Cycles: fix crash in 3d view status text display. --- intern/cycles/blender/blender_python.cpp | 27 +++------------------------ intern/cycles/blender/blender_session.cpp | 30 +++++++++++++++++------------- intern/cycles/blender/blender_session.h | 2 +- 3 files changed, 21 insertions(+), 38 deletions(-) diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 1e72e5f15f1..b40f5206fea 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -129,37 +129,16 @@ static PyObject *draw_func(PyObject *self, PyObject *args) BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); - bool draw_text = false; - if(PyLong_AsVoidPtr(pyrv3d)) { /* 3d view drawing */ int viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); - draw_text = session->draw(viewport[2], viewport[3]); - } - else { - /* image editor drawing */ - draw_text = session->draw(); + session->draw(viewport[2], viewport[3]); } - /* draw */ - PyObject *ret = PyTuple_New(2); - - if(!draw_text) { - PyTuple_SetItem(ret, 0, PyUnicode_FromString("")); - PyTuple_SetItem(ret, 1, PyUnicode_FromString("")); - } - else { - string status, substatus; - - session->get_status(status, substatus); - - PyTuple_SetItem(ret, 0, PyUnicode_FromString(status.c_str())); - PyTuple_SetItem(ret, 1, PyUnicode_FromString(substatus.c_str())); - } - - return ret; + Py_INCREF(Py_None); + return Py_None; } static PyObject *sync_func(PyObject *self, PyObject *args) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 045efef0ef0..4223998c1f6 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -229,12 +229,10 @@ bool BlenderSession::draw(int w, int h) session->reset(width, height); } - /* draw */ - return !session->draw(width, height); -} + /* update status and progress for 3d view draw */ + update_status_progress(); -bool BlenderSession::draw() -{ + /* draw */ return !session->draw(width, height); } @@ -252,20 +250,13 @@ void BlenderSession::get_progress(float& progress, double& total_time) progress = ((float)pass/(float)session->params.passes); } -void BlenderSession::tag_update() -{ - /* tell blender that we want to get another update callback */ - engine_tag_update((RenderEngine*)b_engine.ptr.data); -} - -void BlenderSession::tag_redraw() +void BlenderSession::update_status_progress() { string status, substatus; float progress; double total_time; char time_str[128]; - /* update stats and progress */ get_status(status, substatus); get_progress(progress, total_time); @@ -279,8 +270,21 @@ void BlenderSession::tag_redraw() RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); +} +void BlenderSession::tag_update() +{ + /* tell blender that we want to get another update callback */ + engine_tag_update((RenderEngine*)b_engine.ptr.data); +} + +void BlenderSession::tag_redraw() +{ if(background) { + /* update stats and progress, only for background here because + in 3d view we do it in draw for thread safety reasons */ + update_status_progress(); + /* offline render, redraw if timeout passed */ if(time_dt() - last_redraw_time > 1.0f) { write_render_result(); diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h index ea3e005a884..8608ddd2658 100644 --- a/intern/cycles/blender/blender_session.h +++ b/intern/cycles/blender/blender_session.h @@ -50,13 +50,13 @@ public: void synchronize(); /* drawing */ - bool draw(); bool draw(int w, int h); void tag_redraw(); void tag_update(); void get_status(string& status, string& substatus); void get_progress(float& progress, double& total_time); void test_cancel(); + void update_status_progress(); bool background; Session *session; -- cgit v1.2.3 From 48b4de31521501203c39fc7efa9aca7d018b6a1c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 24 Aug 2011 10:44:04 +0000 Subject: Cycles: * auto/fixed threads option is used now, patch by Thomas. * remove unused CUDA_LIBRARIES, library is dynamically loaded * fix mesh XML export operator for API update --- intern/cycles/app/cycles_test.cpp | 1 + intern/cycles/blender/addon/ui.py | 28 +++++++++++++++++----------- intern/cycles/blender/addon/xml.py | 2 +- intern/cycles/blender/blender_sync.cpp | 1 + intern/cycles/cmake/external_libs.cmake | 4 +--- intern/cycles/device/device.cpp | 4 ++-- intern/cycles/device/device.h | 2 +- intern/cycles/device/device_cpu.cpp | 12 ++++++++---- intern/cycles/device/device_intern.h | 2 +- intern/cycles/render/session.cpp | 2 +- intern/cycles/render/session.h | 3 +++ 11 files changed, 37 insertions(+), 24 deletions(-) diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp index 698974b6277..f617e5db44b 100644 --- a/intern/cycles/app/cycles_test.cpp +++ b/intern/cycles/app/cycles_test.cpp @@ -222,6 +222,7 @@ static void options_parse(int argc, const char **argv) "--quiet", &options.quiet, "In background mode, don't print progress messages", "--passes %d", &options.session_params.passes, "Number of passes to render", "--output %s", &options.session_params.output_path, "File path to write output image", + "--threads %d", &options.session_params.threads, "CPU Rendering Threads", "--help", &help, "Print help message", NULL); diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index b4aeaa8e7ab..ca839691111 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -54,7 +54,7 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): #row = col.row() #row.prop(cycles, "blur_caustics") #row.active = not cycles.no_caustics - + class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Film" @@ -69,32 +69,38 @@ class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): split.prop(cycles, "exposure") split.prop(cycles, "response_curve", text="") -class CyclesRender_PT_debug(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Debug" +class CyclesRender_PT_performance(CyclesButtonsPanel, bpy.types.Panel): + bl_label = "Performance" bl_options = {'DEFAULT_CLOSED'} def draw(self, context): layout = self.layout scene = context.scene + rd = scene.render cycles = scene.cycles split = layout.split() - col = split.column() + col = split.column(align=True) - sub = col.column(align=True) - sub.prop(cycles, "debug_bvh_type", text="") - sub.prop(cycles, "debug_use_spatial_splits") + col.label(text="Threads:") + col.row().prop(rd, "threads_mode", expand=True) + sub = col.column() + sub.enabled = rd.threads_mode == 'FIXED' + sub.prop(rd, "threads") sub = col.column(align=True) + sub.label(text="Tiles:") sub.prop(cycles, "debug_tile_size") sub.prop(cycles, "debug_min_size") - col = split.column(align=True) - col.prop(cycles, "debug_cancel_timeout") - col.prop(cycles, "debug_reset_timeout") - col.prop(cycles, "debug_text_timeout") + col = split.column() + + sub = col.column(align=True) + sub.label(text="Acceleration structure:") + sub.prop(cycles, "debug_bvh_type", text="") + sub.prop(cycles, "debug_use_spatial_splits") class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Post Processing" diff --git a/intern/cycles/blender/addon/xml.py b/intern/cycles/blender/addon/xml.py index 3500d3f0aa5..f489f099e8b 100644 --- a/intern/cycles/blender/addon/xml.py +++ b/intern/cycles/blender/addon/xml.py @@ -61,7 +61,7 @@ class ExportCyclesXML(bpy.types.Operator, ExportHelper): if not object: raise Exception("No active object") - mesh = object.create_mesh(scene, True, 'PREVIEW') + mesh = object.to_mesh(scene, True, 'PREVIEW') if not mesh: raise Exception("No mesh data in active object") diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index c00fd8e7689..a6eeb5ec1ae 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -192,6 +192,7 @@ SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background params.device_type = dtype; /* other parameters */ + params.threads = b_scene.render().threads(); params.background = background; params.passes = (background)? get_int(cscene, "passes"): INT_MAX; params.tile_size = get_int(cscene, "debug_tile_size"); diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 01f3cc1af0d..b23e3b292c5 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -94,13 +94,11 @@ if(WITH_CYCLES_CUDA) set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - find_library(CUDA_LIBRARIES NAMES cuda PATHS ${CYCLES_CUDA}/lib ${CYCLES_CUDA}/lib/Win32 NO_DEFAULT_PATH) find_path(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH) find_program(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) - if(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) + if(CUDA_INCLUDES AND CUDA_NVCC) message(STATUS "CUDA includes = ${CUDA_INCLUDES}") - message(STATUS "CUDA library = ${CUDA_LIBRARIES}") message(STATUS "CUDA nvcc = ${CUDA_NVCC}") else() message(STATUS "CUDA not found") diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 4fae9310a7f..cd0d64f37dd 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -99,13 +99,13 @@ void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, in glPixelZoom(1.0f, 1.0f); } -Device *Device::create(DeviceType type, bool background) +Device *Device::create(DeviceType type, bool background, int threads) { Device *device; switch(type) { case DEVICE_CPU: - device = device_cpu_create(); + device = device_cpu_create(threads); break; #ifdef WITH_CUDA case DEVICE_CUDA: diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index aba077fc2f3..8006eea1a5f 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -123,7 +123,7 @@ public: #endif /* static */ - static Device *create(DeviceType type, bool background = true); + static Device *create(DeviceType type, bool background = true, int threads = 0); static DeviceType type_from_string(const char *name); static string string_from_type(DeviceType type); diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index bb47a127f20..7066efee547 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -44,10 +44,14 @@ public: ThreadQueue tasks; KernelGlobals *kg; - CPUDevice() + CPUDevice(int threads_num) { kg = kernel_globals_create(); - threads.resize(system_cpu_thread_count()); + + if(threads_num == 0) + threads_num = system_cpu_thread_count(); + + threads.resize(threads_num); for(size_t i = 0; i < threads.size(); i++) threads[i] = new thread(function_bind(&CPUDevice::thread_run, this, i)); @@ -207,9 +211,9 @@ public: } }; -Device *device_cpu_create() +Device *device_cpu_create(int threads) { - return new CPUDevice(); + return new CPUDevice(threads); } CCL_NAMESPACE_END diff --git a/intern/cycles/device/device_intern.h b/intern/cycles/device/device_intern.h index b2875b168b4..e098ac1f0e3 100644 --- a/intern/cycles/device/device_intern.h +++ b/intern/cycles/device/device_intern.h @@ -23,7 +23,7 @@ CCL_NAMESPACE_BEGIN class Device; -Device *device_cpu_create(); +Device *device_cpu_create(int threads); Device *device_opencl_create(bool background); Device *device_cuda_create(bool background); Device *device_network_create(const char *address); diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 9fa0e548cab..56fbadcee08 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -37,7 +37,7 @@ Session::Session(const SessionParams& params_) { device_use_gl = (params.device_type == DEVICE_CUDA && !params.background); - device = Device::create(params.device_type, params.background); + device = Device::create(params.device_type, params.background, params.threads); buffers = new RenderBuffers(device); display = new DisplayBuffer(device); diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 7b23a89afc2..3411dcd23c6 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -46,6 +46,7 @@ public: int passes; int tile_size; int min_size; + int threads; double cancel_timeout; double reset_timeout; @@ -61,6 +62,7 @@ public: passes = INT_MAX; tile_size = 64; min_size = 64; + threads = 0; cancel_timeout = 0.1; reset_timeout = 0.1; @@ -75,6 +77,7 @@ public: && progressive == params.progressive && tile_size == params.tile_size && min_size == params.min_size + && threads == params.threads && cancel_timeout == params.cancel_timeout && reset_timeout == params.reset_timeout && text_timeout == params.text_timeout); } -- cgit v1.2.3 From 564eae2dc40a99b53ef01390e58813998dd61953 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 24 Aug 2011 13:43:34 +0000 Subject: Cycles: remove automatic copy of boost/openimageio shared libraries to binary folder, this doesn't work well, proper solution is to statically link these in official builds. --- source/creator/CMakeLists.txt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 43dc998ebc9..9e9a1ef7db1 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -405,22 +405,6 @@ if(UNIX AND NOT APPLE) # install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')") endif() endif() - - # XXX this is non standard - if(WITH_OPENIMAGEIO) - set(oiio_install_libs - ${OPENIMAGEIO_LIBPATH}/lib${OPENIMAGEIO_LIBRARY}.so - ${BOOST_LIBRARIES}) - - list(REMOVE_ITEM oiio_install_libs optimized) - list(REMOVE_ITEM oiio_install_libs debug) - - install( - FILES ${oiio_install_libs} - DESTINATION ${TARGETDIR} - ) - endif() - elseif(WIN32) set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION}) -- cgit v1.2.3 From dc557b74409cf31a6406b26bbbe9302590319e86 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 24 Aug 2011 19:21:04 +0000 Subject: Cycles: linux build tweaks to allow static oiio/boost build. Wiki build instructions have been updated to do static linking now: http://wiki.blender.org/index.php/Dev:2.5/Source/Render/Cycles/Building --- CMakeLists.txt | 10 ++++++---- build_files/cmake/macros.cmake | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f2f6ba2b743..eb4323416ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -519,9 +519,11 @@ if(UNIX AND NOT APPLE) set(BOOST "/usr" CACHE PATH "Boost Directory") endif() - set(BOOST_ROOT ${BOOST}) - set(Boost_USE_MULTITHREADED ON) - find_package(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) + if(NOT BOOST_CUSTOM) + set(BOOST_ROOT ${BOOST}) + set(Boost_USE_MULTITHREADED ON) + find_package(Boost 1.47 REQUIRED COMPONENTS filesystem regex system thread) + endif() set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) set(BOOST_LIBRARIES ${Boost_LIBRARIES}) @@ -538,7 +540,7 @@ if(UNIX AND NOT APPLE) endif() set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) - set(OPENIMAGEIO_LIBRARY OpenImageIO) + set(OPENIMAGEIO_LIBRARY OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 437ad92631f..234d40668ba 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -278,12 +278,13 @@ macro(setup_liblinks if(WITH_IMAGE_TIFF) target_link_libraries(${target} ${TIFF_LIBRARY}) endif() - if(WITH_BOOST) - target_link_libraries(${target} ${BOOST_LIBRARIES}) - endif() if(WITH_OPENIMAGEIO) target_link_libraries(${target} ${OPENIMAGEIO_LIBRARY}) endif() + if(WITH_BOOST) + set(${boost_libs} ${BOOST_LIBRARIES}) + target_link_libraries(${target} ${boost_libs}) + endif() if(WITH_IMAGE_OPENEXR) if(WIN32 AND NOT UNIX) file_list_suffix(OPENEXR_LIBRARIES_DEBUG "${OPENEXR_LIBRARIES}" "_d") -- cgit v1.2.3 From 88481246f080c788f7fe85d658f91d2fe44ccae0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 24 Aug 2011 19:31:14 +0000 Subject: Cycles: small fix for last commit, don't know what's going on here exactly but this solves it for now. --- build_files/cmake/macros.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 234d40668ba..ab63c6f51a7 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -282,8 +282,12 @@ macro(setup_liblinks target_link_libraries(${target} ${OPENIMAGEIO_LIBRARY}) endif() if(WITH_BOOST) - set(${boost_libs} ${BOOST_LIBRARIES}) - target_link_libraries(${target} ${boost_libs}) + if(BOOST_CUSTOM) + set(${boost_libs} ${BOOST_LIBRARIES}) + target_link_libraries(${target} ${boost_libs}) + else() + target_link_libraries(${target} ${BOOST_LIBRARIES}) + endif() endif() if(WITH_IMAGE_OPENEXR) if(WIN32 AND NOT UNIX) -- cgit v1.2.3 From d48e4fc92be346810baa8cac595ab0a735882a87 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 25 Aug 2011 12:50:52 +0000 Subject: Cycles: fix linux build issue, link order was wrong. --- build_files/cmake/macros.cmake | 7 +------ intern/cycles/blender/CMakeLists.txt | 22 ---------------------- source/creator/CMakeLists.txt | 22 ++++++++++++++++++---- 3 files changed, 19 insertions(+), 32 deletions(-) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index ab63c6f51a7..15198b2f67d 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -282,12 +282,7 @@ macro(setup_liblinks target_link_libraries(${target} ${OPENIMAGEIO_LIBRARY}) endif() if(WITH_BOOST) - if(BOOST_CUSTOM) - set(${boost_libs} ${BOOST_LIBRARIES}) - target_link_libraries(${target} ${boost_libs}) - else() - target_link_libraries(${target} ${BOOST_LIBRARIES}) - endif() + target_link_libraries(${target} ${BOOST_LIBRARIES}) endif() if(WITH_IMAGE_OPENEXR) if(WIN32 AND NOT UNIX) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 324d35d5360..a035d8fde6b 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -31,30 +31,8 @@ include_directories( ${PYTHON_INCLUDE_DIRS} ${GLEW_INCLUDE_PATH}) -set(LIBRARIES - cycles_render - cycles_bvh - cycles_device - cycles_kernel - cycles_util - cycles_subd) - -if(WITH_CYCLES_OSL) - list(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES}) -endif() - -if(WITH_CYCLES_PARTIO) - list(APPEND LIBRARIES ${PARTIO_LIBRARIES}) -endif() - -if(WITH_CYCLES_OPENCL) - list(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -endif() - blender_add_lib(bf_intern_cycles "${sources}" "" "") - add_dependencies(bf_intern_cycles bf_rna) -target_link_libraries(bf_intern_cycles ${LIBRARIES}) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${addonfiles}" ${CYCLES_INSTALL_PATH}) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 9e9a1ef7db1..0c5f15c130b 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -729,6 +729,16 @@ if(WITH_MOD_FLUID) list(APPEND BLENDER_LINK_LIBS bf_intern_elbeem) endif() +if(WITH_CYCLES) + list(APPEND BLENDER_LINK_LIBS + cycles_render + cycles_bvh + cycles_device + cycles_kernel + cycles_util + cycles_subd) +endif() + #if(UNIX) # Sort libraries @@ -830,6 +840,14 @@ endif() bf_blenfont bf_intern_audaspace bf_intern_mikktspace + + bf_intern_cycles + cycles_render + cycles_bvh + cycles_device + cycles_kernel + cycles_util + cycles_subd ) if(WITH_MOD_CLOTH_ELTOPO) @@ -856,10 +874,6 @@ endif() list(APPEND BLENDER_SORTED_LIBS bf_quicktime) endif() - if(WITH_CYCLES) - list(APPEND BLENDER_SORTED_LIBS bf_intern_cycles) - endif() - foreach(SORTLIB ${BLENDER_SORTED_LIBS}) set(REMLIB ${SORTLIB}) foreach(SEARCHLIB ${BLENDER_LINK_LIBS}) -- cgit v1.2.3 From bae896691aa3d7bb2a75292da3cc490894996b01 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 28 Aug 2011 13:55:59 +0000 Subject: Cycles: * Add alpha pass output, to use set Transparent option in Film panel. * Add Holdout closure (OSL terminology), this is like the Sky option in the internal renderer, objects with this closure show the background / zero alpha. * Add option to use Gaussian instead of Box pixel filter in the UI. * Remove camera response curves for now, they don't really belong here in the pipeline, should be moved to compositor. * Output full float values for rendering now, previously was only byte precision. * Add a patch from Thomas to get a preview passes option, but still disabled because it isn't quite working right yet. * CUDA: don't compile shader graph evaluation inline. * Convert tabs to spaces in python files. --- intern/cycles/app/cycles_test.cpp | 8 +- intern/cycles/blender/addon/__init__.py | 74 +-- intern/cycles/blender/addon/engine.py | 62 +- intern/cycles/blender/addon/enums.py | 81 +-- intern/cycles/blender/addon/properties.py | 186 +++--- intern/cycles/blender/addon/ui.py | 733 +++++++++++---------- intern/cycles/blender/addon/xml.py | 90 +-- intern/cycles/blender/blender_session.cpp | 48 +- intern/cycles/blender/blender_shader.cpp | 7 + intern/cycles/blender/blender_sync.cpp | 26 +- intern/cycles/cmake/external_libs.cmake | 8 +- intern/cycles/device/device.cpp | 10 +- intern/cycles/device/device.h | 2 +- intern/cycles/device/device_cuda.cpp | 14 +- intern/cycles/device/device_multi.cpp | 4 +- intern/cycles/kernel/kernel.cpp | 12 - intern/cycles/kernel/kernel_compat_cuda.h | 1 + intern/cycles/kernel/kernel_compat_opencl.h | 1 + intern/cycles/kernel/kernel_film.h | 24 +- intern/cycles/kernel/kernel_path.h | 65 +- intern/cycles/kernel/kernel_shader.h | 20 + intern/cycles/kernel/kernel_textures.h | 3 - intern/cycles/kernel/kernel_types.h | 15 +- intern/cycles/kernel/osl/osl_shader.cpp | 19 +- intern/cycles/kernel/osl/osl_shader.h | 1 + intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h | 2 +- intern/cycles/kernel/svm/bsdf_diffuse.h | 4 +- intern/cycles/kernel/svm/bsdf_microfacet.h | 4 +- intern/cycles/kernel/svm/bsdf_reflection.h | 1 + intern/cycles/kernel/svm/bsdf_refraction.h | 1 + intern/cycles/kernel/svm/bsdf_transparent.h | 1 + intern/cycles/kernel/svm/bsdf_ward.h | 2 +- intern/cycles/kernel/svm/bsdf_westin.h | 4 +- intern/cycles/kernel/svm/svm.h | 4 +- intern/cycles/kernel/svm/svm_closure.h | 6 + intern/cycles/kernel/svm/svm_convert.h | 2 +- intern/cycles/kernel/svm/svm_types.h | 3 +- intern/cycles/render/CMakeLists.txt | 2 - intern/cycles/render/background.cpp | 6 +- intern/cycles/render/background.h | 1 + intern/cycles/render/buffers.cpp | 59 +- intern/cycles/render/buffers.h | 4 + intern/cycles/render/camera.h | 2 - intern/cycles/render/film.cpp | 72 +- intern/cycles/render/film.h | 2 - intern/cycles/render/filter.cpp | 11 + intern/cycles/render/filter.h | 7 + intern/cycles/render/mesh.cpp | 2 +- intern/cycles/render/nodes.cpp | 18 + intern/cycles/render/nodes.h | 5 + intern/cycles/render/scene.h | 5 - intern/cycles/render/session.cpp | 49 +- intern/cycles/render/session.h | 10 +- intern/cycles/render/tile.cpp | 12 +- intern/cycles/render/tile.h | 3 +- intern/cycles/util/util_color.h | 5 + intern/cycles/util/util_types.h | 1 + source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/node.c | 3 +- .../blender/makesrna/intern/rna_nodetree_types.h | 3 +- source/blender/nodes/CMakeLists.txt | 1 + source/blender/nodes/SHD_node.h | 1 + .../blender/nodes/intern/SHD_nodes/SHD_holdout.c | 63 ++ 63 files changed, 1037 insertions(+), 859 deletions(-) create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_holdout.c diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp index f617e5db44b..c16f6f4e99a 100644 --- a/intern/cycles/app/cycles_test.cpp +++ b/intern/cycles/app/cycles_test.cpp @@ -85,7 +85,7 @@ static void session_print_status() static void session_init() { options.session = new Session(options.session_params); - options.session->reset(options.width, options.height); + options.session->reset(options.width, options.height, options.session_params.passes); options.session->scene = options.scene; if(options.session_params.background && !options.quiet) @@ -162,13 +162,13 @@ static void resize(int width, int height) options.height= height; if(options.session) - options.session->reset(options.width, options.height); + options.session->reset(options.width, options.height, options.session_params.passes); } void keyboard(unsigned char key) { if(key == 'r') - options.session->reset(options.width, options.height); + options.session->reset(options.width, options.height, options.session_params.passes); else if(key == 27) // escape options.session->progress.set_cancel("Cancelled"); } @@ -285,7 +285,7 @@ using namespace ccl; int main(int argc, const char **argv) { - path_init("../blender/intern/cycles"); + path_init("../build/bin/2.59/scripts/addons/cycles/"); options_parse(argc, argv); diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index e66d078f8c7..418f3d4cd27 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -37,50 +37,50 @@ from cycles import xml from cycles import engine class CyclesRender(bpy.types.RenderEngine): - bl_idname = 'CYCLES' - bl_label = "Cycles" + bl_idname = 'CYCLES' + bl_label = "Cycles" - def __init__(self): - engine.init() - self.session = None - - def __del__(self): - engine.free(self) + def __init__(self): + engine.init() + self.session = None + + def __del__(self): + engine.free(self) - # final render - def update(self, data, scene): - engine.create(self, data, scene) - engine.update(self, data, scene) + # final render + def update(self, data, scene): + engine.create(self, data, scene) + engine.update(self, data, scene) - def render(self): - engine.render(self) + def render(self): + engine.render(self) - # preview render - # def preview_update(self, context, id): - # pass - # - # def preview_render(self): - # pass - - # viewport render - def view_update(self, context): - if not self.session: - engine.create(self, context.blend_data, context.scene, - context.region, context.space_data, context.region_data) - engine.update(self, context.blend_data, context.scene) + # preview render + # def preview_update(self, context, id): + # pass + # + # def preview_render(self): + # pass + + # viewport render + def view_update(self, context): + if not self.session: + engine.create(self, context.blend_data, context.scene, + context.region, context.space_data, context.region_data) + engine.update(self, context.blend_data, context.scene) - def view_draw(self, context): - engine.draw(self, context.region, context.space_data, context.region_data) + def view_draw(self, context): + engine.draw(self, context.region, context.space_data, context.region_data) def register(): - properties.register() - ui.register() - xml.register() - bpy.utils.register_module(__name__) + properties.register() + ui.register() + xml.register() + bpy.utils.register_module(__name__) def unregister(): - xml.unregister() - ui.unregister() - properties.unregister() - bpy.utils.unregister_module(__name__) + xml.unregister() + ui.unregister() + properties.unregister() + bpy.utils.unregister_module(__name__) diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index d25eb21eeb9..d6ea15a435f 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -19,52 +19,52 @@ import bpy def init(): - import libcycles_blender as lib - import os.path - lib.init(os.path.dirname(__file__)) + import libcycles_blender as lib + import os.path + lib.init(os.path.dirname(__file__)) def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): - import libcycles_blender as lib + import libcycles_blender as lib - data = data.as_pointer() - scene = scene.as_pointer() - if region: - region = region.as_pointer() - if v3d: - v3d = v3d.as_pointer() - if rv3d: - rv3d = rv3d.as_pointer() + data = data.as_pointer() + scene = scene.as_pointer() + if region: + region = region.as_pointer() + if v3d: + v3d = v3d.as_pointer() + if rv3d: + rv3d = rv3d.as_pointer() - engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d) + engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d) def free(engine): - if "session" in dir(engine): - if engine.session: - import libcycles_blender as lib - lib.free(engine.session) - del engine.session + if "session" in dir(engine): + if engine.session: + import libcycles_blender as lib + lib.free(engine.session) + del engine.session def render(engine): - import libcycles_blender as lib - lib.render(engine.session) + import libcycles_blender as lib + lib.render(engine.session) def update(engine, data, scene): - import libcycles_blender as lib - lib.sync(engine.session) + import libcycles_blender as lib + lib.sync(engine.session) def draw(engine, region, v3d, rv3d): - import libcycles_blender as lib - v3d = v3d.as_pointer() - rv3d = rv3d.as_pointer() + import libcycles_blender as lib + v3d = v3d.as_pointer() + rv3d = rv3d.as_pointer() - # draw render image - lib.draw(engine.session, v3d, rv3d) + # draw render image + lib.draw(engine.session, v3d, rv3d) def available_devices(): - import libcycles_blender as lib - return lib.available_devices() + import libcycles_blender as lib + return lib.available_devices() def with_osl(): - import libcycles_blender as lib - return lib.with_osl() + import libcycles_blender as lib + return lib.with_osl() diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index fd12fa6d5a5..4b30f606de2 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -33,81 +33,8 @@ bvh_types = ( ("DYNAMIC_BVH", "Dynamic BVH", "Objects can be individually updated, at the cost of slower render time"), ("STATIC_BVH", "Static BVH", "Any object modification requires a complete BVH rebuild, but renders faster")) -response_curves = ( -("None", "None", ""), -("", "Agfa", ""), -("Agfacolor Futura 100", "Futura 100", ""), -("Agfacolor Futura 200", "Futura 200", ""), -("Agfacolor Futura 400", "Futura 400", ""), -("Agfacolor Futura II 100", "Futura II 100", ""), -("Agfacolor Futura II 200", "Futura II 200", ""), -("Agfacolor Futura II 400", "Futura II 400", ""), -("Agfacolor HDC 100 plus", "HDC 100 plus", ""), -("Agfacolor HDC 400 plus", "HDC 400 plus", ""), -("Agfacolor HDC 200 plus", "HDC 200 plus", ""), -("Agfacolor Optima II 100", "Optima II 100", ""), -("Agfacolor Optima II 200", "Optima II 200", ""), -("Agfacolor Ultra 050", "Ultra 050", ""), -("", "Agfa", ""), -("Agfacolor Vista 100", "Vista 100", ""), -("Agfacolor Vista 200", "Vista 200", ""), -("Agfacolor Vista 400", "Vista 400", ""), -("Agfacolor Vista 800", "Vista 800", ""), -("Agfachrome CT Precisa 100", "CT Precisa 100", ""), -("Agfachrome CT Precisa 200", "CT Precisa 200", ""), -("Agfachrome RSX2 050", "Agfachrome RSX2 050", ""), -("Agfachrome RSX2 100", "Agfachrome RSX2 100", ""), -("Agfachrome RSX2 200", "Agfachrome RSX2 200", ""), -("Advantix 100", "Advantix 100", ""), -("Advantix 200", "Advantix 200", ""), -("Advantix 400", "Advantix 400", ""), -("", "Kodak", ""), -("Gold 100", "Gold 100", ""), -("Gold 200", "Gold 200", ""), -("Max Zoom 800", "Max Zoom 800", ""), -("Portra 100T", "Portra 100T", ""), -("Portra 160NC", "Portra 160NC", ""), -("Portra 160VC", "Portra 160VC", ""), -("Portra 800", "Portra 800", ""), -("Portra 400VC", "Portra 400VC", ""), -("Portra 400NC", "Portra 400NC", ""), -("", "Kodak", ""), -("Ektachrome 100 plus", "Ektachrome 100 plus", ""), -("Ektachrome 320T", "Ektachrome 320T", ""), -("Ektachrome 400X", "Ektachrome 400X", ""), -("Ektachrome 64", "Ektachrome 64", ""), -("Ektachrome 64T", "Ektachrome 64T", ""), -("Ektachrome E100S", "Ektachrome E100S", ""), -("Ektachrome 100", "Ektachrome 100", ""), -("Kodachrome 200", "Kodachrome 200", ""), -("Kodachrome 25", "Kodachrome 25", ""), -("Kodachrome 64", "Kodachrome 64", ""), -#("DSCS 3151", "DSCS 3151", ""), -#("DSCS 3152", "DSCS 3152", ""), -#("DSCS 3153", "DSCS 3153", ""), -#("DSCS 3154", "DSCS 3154", ""), -#("DSCS 3155", "DSCS 3155", ""), -#("DSCS 3156", "DSCS 3156", ""), -#("KAI-0311", "KAI-0311", ""), -#("KAF-2001", "KAF-2001", ""), -#("KAF-3000", "KAF-3000", ""), -#("KAI-0372", "KAI-0372", ""), -#("KAI-1010", "KAI-1010", ""), -("", "Fujifilm", ""), -("F-125", "F-125", ""), -("F-250", "F-250", ""), -("F-400", "F-400", ""), -("FCI", "FCI", ""), -("FP2900Z", "FP2900Z", ""), -("", "Eastman", ""), -("Double X Neg 12min", "Double X Neg 12min", ""), -("Double X Neg 6min", "Double X Neg 6min", ""), -("Double X Neg 5min", "Double X Neg 5min", ""), -("Double X Neg 4min", "Double X Neg 4min", ""), -("", "Canon", ""), -("Optura 981111", "Optura 981111", ""), -("Optura 981113", "Optura 981113", ""), -("Optura 981114", "Optura 981114", ""), -("Optura 981111.SLRR", "Optura 981111.SLRR", "") -) +filter_types = ( +("BOX", "Box", "Box filter"), +("GAUSSIAN", "Gaussian", "Gaussian filter")) + diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 3ec0587d89c..62c1db5a16d 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -22,99 +22,117 @@ from bpy.props import * from cycles import enums class CyclesRenderSettings(bpy.types.PropertyGroup): - @classmethod - def register(cls): - bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles Render Settings", description="Cycles Render Settings") - - cls.device = EnumProperty(name="Device", description="Device to use for rendering", - items=enums.devices, default="CPU") - - cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", - items=enums.shading_systems, default="GPU_COMPATIBLE") - - cls.passes = IntProperty(name="Passes", description="Number of passes to render", - default=10, min=1, max=2147483647) - cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces", - default=3, min=0, max=1024) - cls.max_bounces = IntProperty(name="Max Bounces", description="Maximum number of bounces", - default=8, min=0, max=1024) - cls.no_caustics = BoolProperty(name="No Caustics", description="Leave out caustics, resulting in a darker image with less noise", - default=False) - cls.blur_caustics = FloatProperty(name="Blur Caustics", description="Blur caustics to reduce noise", - default=0.0, min=0.0, max=1.0) - - cls.exposure = FloatProperty(name="Exposure", description="Image brightness scale", - default=1.0, min=0.0, max=10.0) - cls.response_curve = EnumProperty(name="Response Curve", description="Measured camera film response", - items=enums.response_curves, default="Advantix 400") - - cls.debug_tile_size = IntProperty(name="Tile Size", description="", - default=1024, min=1, max=4096) - cls.debug_min_size = IntProperty(name="Min Size", description="", - default=64, min=1, max=4096) - cls.debug_reset_timeout = FloatProperty(name="Reset timeout", description="", - default=0.1, min=0.01, max=10.0) - cls.debug_cancel_timeout = FloatProperty(name="Cancel timeout", description="", - default=0.1, min=0.01, max=10.0) - cls.debug_text_timeout = FloatProperty(name="Text timeout", description="", - default=1.0, min=0.01, max=10.0) - - cls.debug_bvh_type = EnumProperty(name="BVH Type", description="Choose between faster updates, or faster render", - items=enums.bvh_types, default="DYNAMIC_BVH") - cls.debug_use_spatial_splits = BoolProperty(name="Use Spatial Splits", description="Use BVH spatial splits: longer builder time, faster render", - default=False) - - @classmethod - def unregister(cls): - del bpy.types.Scene.cycles + @classmethod + def register(cls): + bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles Render Settings", description="Cycles Render Settings") + + cls.device = EnumProperty(name="Device", description="Device to use for rendering", + items=enums.devices, default="CPU") + + cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", + items=enums.shading_systems, default="GPU_COMPATIBLE") + + cls.passes = IntProperty(name="Passes", description="Number of passes to render", + default=10, min=1, max=2147483647) + cls.preview_passes = IntProperty(name="Preview Passes", description="Number of passes to render in the viewport, unlimited if 0", + default=0, min=0, max=2147483647) + cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces", + default=3, min=0, max=1024) + cls.max_bounces = IntProperty(name="Max Bounces", description="Maximum number of bounces", + default=8, min=0, max=1024) + cls.no_caustics = BoolProperty(name="No Caustics", description="Leave out caustics, resulting in a darker image with less noise", + default=False) + cls.blur_caustics = FloatProperty(name="Blur Caustics", description="Blur caustics to reduce noise", + default=0.0, min=0.0, max=1.0) + + cls.exposure = FloatProperty(name="Exposure", description="Image brightness scale", + default=1.0, min=0.0, max=10.0) + cls.transparent = BoolProperty(name="Transparent", description="World background is transparent", + default=False) + + cls.filter_type = EnumProperty(name="Filter Type", description="Pixel filter type", + items=enums.filter_types, default="GAUSSIAN") + cls.filter_width = FloatProperty(name="Filter Width", description="Pixel filter width", + default=1.5, min=0.01, max=10.0) + + cls.debug_tile_size = IntProperty(name="Tile Size", description="", + default=1024, min=1, max=4096) + cls.debug_min_size = IntProperty(name="Min Size", description="", + default=64, min=1, max=4096) + cls.debug_reset_timeout = FloatProperty(name="Reset timeout", description="", + default=0.1, min=0.01, max=10.0) + cls.debug_cancel_timeout = FloatProperty(name="Cancel timeout", description="", + default=0.1, min=0.01, max=10.0) + cls.debug_text_timeout = FloatProperty(name="Text timeout", description="", + default=1.0, min=0.01, max=10.0) + + cls.debug_bvh_type = EnumProperty(name="BVH Type", description="Choose between faster updates, or faster render", + items=enums.bvh_types, default="DYNAMIC_BVH") + cls.debug_use_spatial_splits = BoolProperty(name="Use Spatial Splits", description="Use BVH spatial splits: longer builder time, faster render", + default=False) + + @classmethod + def unregister(cls): + del bpy.types.Scene.cycles class CyclesCameraSettings(bpy.types.PropertyGroup): - @classmethod - def register(cls): - bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles Camera Settings") + @classmethod + def register(cls): + bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles Camera Settings") - cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field", - default=0.0, min=0.0, max=10.0) - - @classmethod - def unregister(cls): - del bpy.types.Camera.cycles + cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field", + default=0.0, min=0.0, max=10.0) + + @classmethod + def unregister(cls): + del bpy.types.Camera.cycles class CyclesMaterialSettings(bpy.types.PropertyGroup): - @classmethod - def register(cls): - bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles Material Settings") + @classmethod + def register(cls): + bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles Material Settings") - @classmethod - def unregister(cls): - del bpy.types.Material.cycles + @classmethod + def unregister(cls): + del bpy.types.Material.cycles + +class CyclesWorldSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.World.cycles = PointerProperty(type=cls, name="Cycles World Settings", description="Cycles World Settings") + + @classmethod + def unregister(cls): + del bpy.types.World.cycles class CyclesMeshSettings(bpy.types.PropertyGroup): - @classmethod - def register(cls): - bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") - bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") - bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") - - cls.displacement_method = EnumProperty(name="Displacement Method", description="Method to use for the displacement", - items=enums.displacement_methods, default="BUMP") - cls.use_subdivision = BoolProperty(name="Use Subdivision", description="Subdivide mesh for rendering", - default=False) - cls.dicing_rate = FloatProperty(name="Dicing Rate", description="", default=1.0, min=0.001, max=1000.0) - - @classmethod - def unregister(cls): - del bpy.types.Mesh.cycles + @classmethod + def register(cls): + bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + + cls.displacement_method = EnumProperty(name="Displacement Method", description="Method to use for the displacement", + items=enums.displacement_methods, default="BUMP") + cls.use_subdivision = BoolProperty(name="Use Subdivision", description="Subdivide mesh for rendering", + default=False) + cls.dicing_rate = FloatProperty(name="Dicing Rate", description="", default=1.0, min=0.001, max=1000.0) + + @classmethod + def unregister(cls): + del bpy.types.Mesh.cycles def register(): - bpy.utils.register_class(CyclesRenderSettings) - bpy.utils.register_class(CyclesCameraSettings) - bpy.utils.register_class(CyclesMaterialSettings) - bpy.utils.register_class(CyclesMeshSettings) - + bpy.utils.register_class(CyclesRenderSettings) + bpy.utils.register_class(CyclesCameraSettings) + bpy.utils.register_class(CyclesMaterialSettings) + bpy.utils.register_class(CyclesWorldSettings) + bpy.utils.register_class(CyclesMeshSettings) + def unregister(): - bpy.utils.unregister_class(CyclesRenderSettings) - bpy.utils.unregister_class(CyclesCameraSettings) - bpy.utils.unregister_class(CyclesMaterialSettings) - bpy.utils.unregister_class(CyclesMeshSettings) + bpy.utils.unregister_class(CyclesRenderSettings) + bpy.utils.unregister_class(CyclesCameraSettings) + bpy.utils.unregister_class(CyclesMaterialSettings) + bpy.utils.unregister_class(CyclesWorldSettings) + bpy.utils.unregister_class(CyclesMeshSettings) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ca839691111..a1363ece854 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -22,494 +22,503 @@ from cycles import enums from cycles import engine class CyclesButtonsPanel(): - bl_space_type = "PROPERTIES" - bl_region_type = "WINDOW" - bl_context = "render" - - @classmethod - def poll(cls, context): - rd = context.scene.render - return rd.engine == 'CYCLES' + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "render" + + @classmethod + def poll(cls, context): + rd = context.scene.render + return rd.engine == 'CYCLES' class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Integrator" + bl_label = "Integrator" - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - scene = context.scene - cycles = scene.cycles + scene = context.scene + cscene = scene.cycles - split = layout.split() + split = layout.split() - col = split.column() - col.prop(cycles, "passes") - col.prop(cycles, "no_caustics") + col = split.column() + col.prop(cscene, "passes", text="Render Passes") + #sub = col.row() + #sub.active = cscene.preview_passes >= 1 + #sub.prop(cscene, "preview_passes") + col.prop(cscene, "no_caustics") - col = split.column() - col = col.column(align=True) - col.prop(cycles, "max_bounces") - col.prop(cycles, "min_bounces") + col = split.column() + col = col.column(align=True) + col.prop(cscene, "max_bounces") + col.prop(cscene, "min_bounces") - #row = col.row() - #row.prop(cycles, "blur_caustics") - #row.active = not cycles.no_caustics - + #row = col.row() + #row.prop(cscene, "blur_caustics") + #row.active = not cscene.no_caustics + class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Film" + bl_label = "Film" - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - scene = context.scene - cycles = scene.cycles + scene = context.scene + cscene = scene.cycles - split = layout.split() + split = layout.split() - split.prop(cycles, "exposure") - split.prop(cycles, "response_curve", text="") + col = split.column(); + col.prop(cscene, "exposure") + col.prop(cscene, "transparent") + + col = split.column() + col.prop(cscene, "filter_type", text="") + if cscene.filter_type != 'BOX': + col.prop(cscene, "filter_width", text="Width") class CyclesRender_PT_performance(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Performance" - bl_options = {'DEFAULT_CLOSED'} + bl_label = "Performance" + bl_options = {'DEFAULT_CLOSED'} - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - scene = context.scene - rd = scene.render - cycles = scene.cycles + scene = context.scene + rd = scene.render + cscene = scene.cycles - split = layout.split() + split = layout.split() - col = split.column(align=True) + col = split.column(align=True) - col.label(text="Threads:") - col.row().prop(rd, "threads_mode", expand=True) - sub = col.column() - sub.enabled = rd.threads_mode == 'FIXED' - sub.prop(rd, "threads") + col.label(text="Threads:") + col.row().prop(rd, "threads_mode", expand=True) + sub = col.column() + sub.enabled = rd.threads_mode == 'FIXED' + sub.prop(rd, "threads") - sub = col.column(align=True) - sub.label(text="Tiles:") - sub.prop(cycles, "debug_tile_size") - sub.prop(cycles, "debug_min_size") + sub = col.column(align=True) + sub.label(text="Tiles:") + sub.prop(cscene, "debug_tile_size") + sub.prop(cscene, "debug_min_size") - col = split.column() + col = split.column() - sub = col.column(align=True) - sub.label(text="Acceleration structure:") - sub.prop(cycles, "debug_bvh_type", text="") - sub.prop(cycles, "debug_use_spatial_splits") + sub = col.column(align=True) + sub.label(text="Acceleration structure:") + sub.prop(cscene, "debug_bvh_type", text="") + sub.prop(cscene, "debug_use_spatial_splits") class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Post Processing" - bl_options = {'DEFAULT_CLOSED'} + bl_label = "Post Processing" + bl_options = {'DEFAULT_CLOSED'} - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - rd = context.scene.render + rd = context.scene.render - split = layout.split() + split = layout.split() - col = split.column() - col.prop(rd, "use_compositing") - col.prop(rd, "use_sequencer") + col = split.column() + col.prop(rd, "use_compositing") + col.prop(rd, "use_sequencer") - col = split.column() - col.prop(rd, "dither_intensity", text="Dither", slider=True) + col = split.column() + col.prop(rd, "dither_intensity", text="Dither", slider=True) class Cycles_PT_camera(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Cycles" - bl_context = "data" + bl_label = "Cycles" + bl_context = "data" - @classmethod - def poll(cls, context): - return context.camera + @classmethod + def poll(cls, context): + return context.camera - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - camera = context.camera - cycles = camera.cycles + camera = context.camera + ccamera = camera.cycles - layout.prop(cycles, "lens_radius") + layout.prop(ccamera, "lens_radius") class Cycles_PT_context_material(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Surface" - bl_context = "material" - bl_options = {'HIDE_HEADER'} + bl_label = "Surface" + bl_context = "material" + bl_options = {'HIDE_HEADER'} - @classmethod - def poll(cls, context): - return (context.material or context.object) and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return (context.material or context.object) and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.material - ob = context.object - slot = context.material_slot - space = context.space_data + mat = context.material + ob = context.object + slot = context.material_slot + space = context.space_data - if ob: - row = layout.row() + if ob: + row = layout.row() - row.template_list(ob, "material_slots", ob, "active_material_index", rows=2) + row.template_list(ob, "material_slots", ob, "active_material_index", rows=2) - col = row.column(align=True) - col.operator("object.material_slot_add", icon='ZOOMIN', text="") - col.operator("object.material_slot_remove", icon='ZOOMOUT', text="") + col = row.column(align=True) + col.operator("object.material_slot_add", icon='ZOOMIN', text="") + col.operator("object.material_slot_remove", icon='ZOOMOUT', text="") - col.menu("MATERIAL_MT_specials", icon='DOWNARROW_HLT', text="") + col.menu("MATERIAL_MT_specials", icon='DOWNARROW_HLT', text="") - if ob.mode == 'EDIT': - row = layout.row(align=True) - row.operator("object.material_slot_assign", text="Assign") - row.operator("object.material_slot_select", text="Select") - row.operator("object.material_slot_deselect", text="Deselect") + if ob.mode == 'EDIT': + row = layout.row(align=True) + row.operator("object.material_slot_assign", text="Assign") + row.operator("object.material_slot_select", text="Select") + row.operator("object.material_slot_deselect", text="Deselect") - split = layout.split(percentage=0.65) + split = layout.split(percentage=0.65) - if ob: - split.template_ID(ob, "active_material", new="material.new") - row = split.row() + if ob: + split.template_ID(ob, "active_material", new="material.new") + row = split.row() - if slot: - row.prop(slot, "link", text="") - else: - row.label() - elif mat: - split.template_ID(space, "pin_id") - split.separator() + if slot: + row.prop(slot, "link", text="") + else: + row.label() + elif mat: + split.template_ID(space, "pin_id") + split.separator() class Cycles_PT_mesh_displacement(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Displacement" - bl_context = "data" + bl_label = "Displacement" + bl_context = "data" - @classmethod - def poll(cls, context): - return context.mesh or context.curve or context.meta_ball + @classmethod + def poll(cls, context): + return context.mesh or context.curve or context.meta_ball - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mesh = context.mesh - curve = context.curve - mball = context.meta_ball + mesh = context.mesh + curve = context.curve + mball = context.meta_ball - if mesh: - cycles = mesh.cycles - elif curve: - cycles = curve.cycles - elif mball: - cycles = mball.cycles + if mesh: + cdata = mesh.cycles + elif curve: + cdata = curve.cycles + elif mball: + cdata = mball.cycles - layout.prop(cycles, "displacement_method", text="Method") - layout.prop(cycles, "use_subdivision"); - layout.prop(cycles, "dicing_rate"); + layout.prop(cdata, "displacement_method", text="Method") + layout.prop(cdata, "use_subdivision"); + layout.prop(cdata, "dicing_rate"); def find_node(material, nodetype): - if material and material.node_tree: - ntree = material.node_tree + if material and material.node_tree: + ntree = material.node_tree - for node in ntree.nodes: - if type(node) is not bpy.types.NodeGroup and node.type == nodetype: - return node - - return None + for node in ntree.nodes: + if type(node) is not bpy.types.NodeGroup and node.type == nodetype: + return node + + return None def find_node_input(node, name): - for input in node.inputs: - if input.name == name: - return input - - return None + for input in node.inputs: + if input.name == name: + return input + + return None def panel_node_draw(layout, id, output_type, input_name): - if not id.node_tree: - layout.prop(id, "use_nodes") - return + if not id.node_tree: + layout.prop(id, "use_nodes") + return - ntree = id.node_tree + ntree = id.node_tree - node = find_node(id, output_type) - if not node: - layout.label(text="No output node.") - else: - input = find_node_input(node, input_name) - layout.template_node_view(ntree, node, input); + node = find_node(id, output_type) + if not node: + layout.label(text="No output node.") + else: + input = find_node_input(node, input_name) + layout.template_node_view(ntree, node, input); class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Surface" - bl_context = "data" + bl_label = "Surface" + bl_context = "data" - @classmethod - def poll(cls, context): - return context.lamp and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.lamp and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.lamp - panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') + mat = context.lamp + panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') class CyclesWorld_PT_surface(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Surface" - bl_context = "world" + bl_label = "Surface" + bl_context = "world" - @classmethod - def poll(cls, context): - return context.world and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.world and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.world - panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') + mat = context.world + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') class CyclesWorld_PT_volume(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Volume" - bl_context = "world" + bl_label = "Volume" + bl_context = "world" - @classmethod - def poll(cls, context): - return context.world and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.world and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout - layout.active = False + def draw(self, context): + layout = self.layout + layout.active = False - mat = context.world - panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Volume') + mat = context.world + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Volume') class CyclesMaterial_PT_surface(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Surface" - bl_context = "material" + bl_label = "Surface" + bl_context = "material" - @classmethod - def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.material - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') class CyclesMaterial_PT_volume(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Volume" - bl_context = "material" + bl_label = "Volume" + bl_context = "material" - @classmethod - def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout - layout.active = False + def draw(self, context): + layout = self.layout + layout.active = False - mat = context.material - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') class CyclesMaterial_PT_displacement(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Displacement" - bl_context = "material" + bl_label = "Displacement" + bl_context = "material" - @classmethod - def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.material - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Displacement') + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Displacement') class CyclesMaterial_PT_settings(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Settings" - bl_context = "material" - bl_options = {'DEFAULT_CLOSED'} + bl_label = "Settings" + bl_context = "material" + bl_options = {'DEFAULT_CLOSED'} - @classmethod - def poll(cls, context): - # return context.material and CyclesButtonsPanel.poll(context) - return False + @classmethod + def poll(cls, context): + # return context.material and CyclesButtonsPanel.poll(context) + return False - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - mat = context.material - - row = layout.row() - row.label(text="Light Group:") - row.prop(mat, "light_group", text="") + mat = context.material + + row = layout.row() + row.label(text="Light Group:") + row.prop(mat, "light_group", text="") class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "" - bl_context = "texture" - bl_options = {'HIDE_HEADER'} - COMPAT_ENGINES = {'CYCLES'} - - def draw(self, context): - layout = self.layout - - tex = context.texture - space = context.space_data - pin_id = space.pin_id - use_pin_id = space.use_pin_id; - user = context.texture_user - node = context.texture_node - - if not use_pin_id or not isinstance(pin_id, bpy.types.Texture): - pin_id = None - - if not pin_id: - layout.template_texture_user() - - if user: - layout.separator() - - split = layout.split(percentage=0.65) - col = split.column() - - if pin_id: - col.template_ID(space, "pin_id") - elif user: - col.template_ID(user, "texture", new="texture.new") - - if tex: - row = split.row() - row.prop(tex, "use_nodes", icon="NODETREE", text="") - row.label() - - if not tex.use_nodes: - split = layout.split(percentage=0.2) - split.label(text="Type:") - split.prop(tex, "type", text="") + bl_label = "" + bl_context = "texture" + bl_options = {'HIDE_HEADER'} + COMPAT_ENGINES = {'CYCLES'} + + def draw(self, context): + layout = self.layout + + tex = context.texture + space = context.space_data + pin_id = space.pin_id + use_pin_id = space.use_pin_id; + user = context.texture_user + node = context.texture_node + + if not use_pin_id or not isinstance(pin_id, bpy.types.Texture): + pin_id = None + + if not pin_id: + layout.template_texture_user() + + if user: + layout.separator() + + split = layout.split(percentage=0.65) + col = split.column() + + if pin_id: + col.template_ID(space, "pin_id") + elif user: + col.template_ID(user, "texture", new="texture.new") + + if tex: + row = split.row() + row.prop(tex, "use_nodes", icon="NODETREE", text="") + row.label() + + if not tex.use_nodes: + split = layout.split(percentage=0.2) + split.label(text="Type:") + split.prop(tex, "type", text="") class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Nodes" - bl_context = "texture" + bl_label = "Nodes" + bl_context = "texture" - @classmethod - def poll(cls, context): - tex = context.texture - return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + tex = context.texture + return (tex and tex.use_nodes) and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - tex = context.texture - panel_node_draw(layout, tex, 'OUTPUT_TEXTURE', 'Color') + tex = context.texture + panel_node_draw(layout, tex, 'OUTPUT_TEXTURE', 'Color') class CyclesTexture_PT_node(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Node" - bl_context = "texture" + bl_label = "Node" + bl_context = "texture" - @classmethod - def poll(cls, context): - node = context.texture_node - return node and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + node = context.texture_node + return node and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout + def draw(self, context): + layout = self.layout - node = context.texture_node - ntree = node.id_data - layout.template_node_view(ntree, node, None) + node = context.texture_node + ntree = node.id_data + layout.template_node_view(ntree, node, None) class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Mapping" - bl_context = "texture" + bl_label = "Mapping" + bl_context = "texture" - @classmethod - def poll(cls, context): - tex = context.texture - node = context.texture_node - return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) + @classmethod + def poll(cls, context): + tex = context.texture + node = context.texture_node + return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) - def draw(self, context): - layout = self.layout - layout.label("Texture coordinate mapping goes here."); - layout.label("Translate, rotate, scale, projection, XYZ.") + def draw(self, context): + layout = self.layout + layout.label("Texture coordinate mapping goes here."); + layout.label("Translate, rotate, scale, projection, XYZ.") class CyclesTexture_PT_color(CyclesButtonsPanel, bpy.types.Panel): - bl_label = "Color" - bl_context = "texture" - - @classmethod - def poll(cls, context): - tex = context.texture - node = context.texture_node - return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) - - def draw(self, context): - layout = self.layout - layout.label("Color modification options go here."); - layout.label("Ramp, brightness, contrast, saturation.") - + bl_label = "Color" + bl_context = "texture" + + @classmethod + def poll(cls, context): + tex = context.texture + node = context.texture_node + return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.label("Color modification options go here."); + layout.label("Ramp, brightness, contrast, saturation.") + def draw_device(self, context): - scene = context.scene - layout = self.layout + scene = context.scene + layout = self.layout - if scene.render.engine == "CYCLES": - cycles = scene.cycles + if scene.render.engine == "CYCLES": + cscene = scene.cycles - if 'cuda' in engine.available_devices(): - layout.prop(cycles, "device") - if cycles.device == 'CPU' and engine.with_osl(): - layout.prop(cycles, "shading_system") + if 'cuda' in engine.available_devices(): + layout.prop(cscene, "device") + if cscene.device == 'CPU' and engine.with_osl(): + layout.prop(cscene, "shading_system") def get_panels(): - return [ - bpy.types.RENDER_PT_render, - bpy.types.RENDER_PT_output, - bpy.types.RENDER_PT_encoding, - bpy.types.RENDER_PT_dimensions, - bpy.types.RENDER_PT_stamp, - bpy.types.WORLD_PT_context_world, - bpy.types.DATA_PT_context_mesh, - bpy.types.DATA_PT_context_camera, - bpy.types.DATA_PT_context_lamp, - bpy.types.DATA_PT_texture_space, - bpy.types.DATA_PT_curve_texture_space, - bpy.types.DATA_PT_mball_texture_space, - bpy.types.DATA_PT_vertex_groups, - bpy.types.DATA_PT_shape_keys, - bpy.types.DATA_PT_uv_texture, - bpy.types.DATA_PT_vertex_colors, - bpy.types.DATA_PT_camera, - bpy.types.DATA_PT_camera_display, - bpy.types.DATA_PT_custom_props_mesh, - bpy.types.DATA_PT_custom_props_camera, - bpy.types.DATA_PT_custom_props_lamp, - bpy.types.TEXTURE_PT_clouds, - bpy.types.TEXTURE_PT_wood, - bpy.types.TEXTURE_PT_marble, - bpy.types.TEXTURE_PT_magic, - bpy.types.TEXTURE_PT_blend, - bpy.types.TEXTURE_PT_stucci, - bpy.types.TEXTURE_PT_image, - bpy.types.TEXTURE_PT_image_sampling, - bpy.types.TEXTURE_PT_image_mapping, - bpy.types.TEXTURE_PT_musgrave, - bpy.types.TEXTURE_PT_voronoi, - bpy.types.TEXTURE_PT_distortednoise, - bpy.types.TEXTURE_PT_voxeldata, - bpy.types.TEXTURE_PT_pointdensity, - bpy.types.TEXTURE_PT_pointdensity_turbulence] + return [ + bpy.types.RENDER_PT_render, + bpy.types.RENDER_PT_output, + bpy.types.RENDER_PT_encoding, + bpy.types.RENDER_PT_dimensions, + bpy.types.RENDER_PT_stamp, + bpy.types.WORLD_PT_context_world, + bpy.types.DATA_PT_context_mesh, + bpy.types.DATA_PT_context_camera, + bpy.types.DATA_PT_context_lamp, + bpy.types.DATA_PT_texture_space, + bpy.types.DATA_PT_curve_texture_space, + bpy.types.DATA_PT_mball_texture_space, + bpy.types.DATA_PT_vertex_groups, + bpy.types.DATA_PT_shape_keys, + bpy.types.DATA_PT_uv_texture, + bpy.types.DATA_PT_vertex_colors, + bpy.types.DATA_PT_camera, + bpy.types.DATA_PT_camera_display, + bpy.types.DATA_PT_custom_props_mesh, + bpy.types.DATA_PT_custom_props_camera, + bpy.types.DATA_PT_custom_props_lamp, + bpy.types.TEXTURE_PT_clouds, + bpy.types.TEXTURE_PT_wood, + bpy.types.TEXTURE_PT_marble, + bpy.types.TEXTURE_PT_magic, + bpy.types.TEXTURE_PT_blend, + bpy.types.TEXTURE_PT_stucci, + bpy.types.TEXTURE_PT_image, + bpy.types.TEXTURE_PT_image_sampling, + bpy.types.TEXTURE_PT_image_mapping, + bpy.types.TEXTURE_PT_musgrave, + bpy.types.TEXTURE_PT_voronoi, + bpy.types.TEXTURE_PT_distortednoise, + bpy.types.TEXTURE_PT_voxeldata, + bpy.types.TEXTURE_PT_pointdensity, + bpy.types.TEXTURE_PT_pointdensity_turbulence] def register(): - bpy.types.RENDER_PT_render.append(draw_device) + bpy.types.RENDER_PT_render.append(draw_device) - for panel in get_panels(): - panel.COMPAT_ENGINES.add('CYCLES') - + for panel in get_panels(): + panel.COMPAT_ENGINES.add('CYCLES') + def unregister(): - bpy.types.RENDER_PT_render.remove(draw_device) + bpy.types.RENDER_PT_render.remove(draw_device) - for panel in get_panels(): - panel.COMPAT_ENGINES.remove('CYCLES') + for panel in get_panels(): + panel.COMPAT_ENGINES.remove('CYCLES') diff --git a/intern/cycles/blender/addon/xml.py b/intern/cycles/blender/addon/xml.py index f489f099e8b..3713da09235 100644 --- a/intern/cycles/blender/addon/xml.py +++ b/intern/cycles/blender/addon/xml.py @@ -25,75 +25,75 @@ import xml.etree.ElementTree as etree import xml.dom.minidom as dom def strip(root): - root.text = None - root.tail = None + root.text = None + root.tail = None - for elem in root: - strip(elem) + for elem in root: + strip(elem) def write(node, fname): - strip(node) + strip(node) - s = etree.tostring(node) - s = dom.parseString(s).toprettyxml() + s = etree.tostring(node) + s = dom.parseString(s).toprettyxml() - f = open(fname, "w") - f.write(s) + f = open(fname, "w") + f.write(s) class ExportCyclesXML(bpy.types.Operator, ExportHelper): - '''''' - bl_idname = "export_mesh.cycles_xml" - bl_label = "Export Cycles XML" + '''''' + bl_idname = "export_mesh.cycles_xml" + bl_label = "Export Cycles XML" - filename_ext = ".xml" + filename_ext = ".xml" - @classmethod - def poll(cls, context): - return context.active_object != None + @classmethod + def poll(cls, context): + return context.active_object != None - def execute(self, context): - filepath = bpy.path.ensure_ext(self.filepath, ".xml") + def execute(self, context): + filepath = bpy.path.ensure_ext(self.filepath, ".xml") - # get mesh - scene = context.scene - object = context.object + # get mesh + scene = context.scene + object = context.object - if not object: - raise Exception("No active object") + if not object: + raise Exception("No active object") - mesh = object.to_mesh(scene, True, 'PREVIEW') + mesh = object.to_mesh(scene, True, 'PREVIEW') - if not mesh: - raise Exception("No mesh data in active object") + if not mesh: + raise Exception("No mesh data in active object") - # generate mesh node - nverts = "" - verts = "" - P = "" + # generate mesh node + nverts = "" + verts = "" + P = "" - for v in mesh.vertices: - P += "%f %f %f " % (v.co[0], v.co[1], v.co[2]) + for v in mesh.vertices: + P += "%f %f %f " % (v.co[0], v.co[1], v.co[2]) - for i, f in enumerate(mesh.faces): - nverts += str(len(f.vertices)) + " " + for i, f in enumerate(mesh.faces): + nverts += str(len(f.vertices)) + " " - for v in f.vertices: - verts += str(v) + " " - verts += " " + for v in f.vertices: + verts += str(v) + " " + verts += " " - node = etree.Element('mesh', attrib={'nverts': nverts, 'verts': verts, 'P': P}) - - # write to file - write(node, filepath) + node = etree.Element('mesh', attrib={'nverts': nverts, 'verts': verts, 'P': P}) + + # write to file + write(node, filepath) - return {'FINISHED'} + return {'FINISHED'} def register(): - pass + pass def unregister(): - pass + pass if __name__ == "__main__": - register() + register() diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 4223998c1f6..7be15ca0e3c 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -21,6 +21,7 @@ #include "camera.h" #include "device.h" #include "integrator.h" +#include "film.h" #include "light.h" #include "scene.h" #include "session.h" @@ -94,7 +95,7 @@ void BlenderSession::create_session() session->progress.set_cancel_callback(function_bind(&BlenderSession::test_cancel, this)); /* start rendering */ - session->reset(width, height); + session->reset(width, height, session_params.passes); session->start(); } @@ -118,30 +119,16 @@ void BlenderSession::render() void BlenderSession::write_render_result() { /* get result */ - DisplayBuffer *display = session->display; - Device *device = session->device; - - if(!display->rgba.device_pointer) - return; - - /* todo: get float buffer */ - device->pixels_copy_from(display->rgba, 0, width, height); - uchar4 *rgba = (uchar4*)display->rgba.data_pointer; - - vector buffer(width*height); - float fac = 1.0f/255.0f; - bool color_management = b_scene.render().use_color_management(); - - /* normalize */ - for(int i = width*height - 1; i >= 0; i--) { - uchar4 f = rgba[i]; - float3 rgb = make_float3(f.x, f.y, f.z)*fac; + RenderBuffers *buffers = session->buffers; + float exposure = scene->film->exposure; + double total_time, pass_time; + int pass; + session->progress.get_pass(pass, total_time, pass_time); - if(color_management) - rgb = color_srgb_to_scene_linear(rgb); + float4 *pixels = buffers->copy_from_device(exposure, pass); - buffer[i] = make_float4(rgb.x, rgb.y, rgb.z, 1.0f); - } + if(!pixels) + return; struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, width, height); PointerRNA rrptr; @@ -150,9 +137,11 @@ void BlenderSession::write_render_result() BL::RenderResult::layers_iterator layer; rr.layers.begin(layer); - rna_RenderLayer_rect_set(&layer->ptr, (float*)&buffer[0]); + rna_RenderLayer_rect_set(&layer->ptr, (float*)pixels); RE_engine_end_result((RenderEngine*)b_engine.ptr.data, rrp); + + delete [] pixels; } void BlenderSession::synchronize() @@ -168,6 +157,9 @@ void BlenderSession::synchronize() return; } + /* increase passes, but never decrease */ + session->set_passes(session_params.passes); + /* copy recalc flags, outside of mutex so we can decide to do the real synchronization at a later time to not block on running updates */ sync->sync_recalc(); @@ -188,7 +180,7 @@ void BlenderSession::synchronize() /* reset if needed */ if(scene->need_reset()) - session->reset(width, height); + session->reset(width, height, session_params.passes); /* unlock */ session->scene->mutex.unlock(); @@ -225,8 +217,10 @@ bool BlenderSession::draw(int w, int h) } /* reset if requested */ - if(reset) - session->reset(width, height); + if(reset) { + SessionParams session_params = BlenderSync::get_session_params(b_scene, background); + session->reset(width, height, session_params.passes); + } } /* update status and progress for 3d view draw */ diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index db65a7f129e..9024de092b7 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -208,6 +208,10 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = new BackgroundNode(); break; } + case BL::ShaderNode::type_HOLDOUT: { + node = new HoldoutNode(); + break; + } case BL::ShaderNode::type_BSDF_ANISOTROPIC: { node = new WardBsdfNode(); break; @@ -594,6 +598,9 @@ void BlenderSync::sync_world() shader->tag_update(scene); } + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + background->transparent = get_boolean(cscene, "transparent"); + if(background->modified(prevbackground)) background->tag_update(scene); diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index a6eeb5ec1ae..ccfc3bb2bf1 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -18,6 +18,7 @@ #include "background.h" #include "film.h" +#include "../render/filter.h" #include "graph.h" #include "integrator.h" #include "light.h" @@ -149,10 +150,18 @@ void BlenderSync::sync_film() Film prevfilm = *film; film->exposure = get_float(cscene, "exposure"); - film->response = get_enum_identifier(cscene, "response_curve"); if(film->modified(prevfilm)) film->tag_update(scene); + + Filter *filter = scene->filter; + Filter prevfilter = *filter; + + filter->filter_type = (FilterType)RNA_enum_get(&cscene, "filter_type"); + filter->filter_width = (filter->filter_type == FILTER_BOX)? 1.0f: get_float(cscene, "filter_width"); + + if(filter->modified(prevfilter)) + filter->tag_update(scene); } /* Scene Parameters */ @@ -190,11 +199,22 @@ SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background foreach(DeviceType dt, types) if(dt == dtype) params.device_type = dtype; + + /* Background */ + params.background = background; + + /* passes */ + if(background) { + params.passes = get_int(cscene, "passes"); + } + else { + params.passes = get_int(cscene, "preview_passes"); + if(params.passes == 0) + params.passes = INT_MAX; + } /* other parameters */ params.threads = b_scene.render().threads(); - params.background = background; - params.passes = (background)? get_int(cscene, "passes"): INT_MAX; 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"); diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index b23e3b292c5..d53be9f6fe6 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -94,18 +94,14 @@ if(WITH_CYCLES_CUDA) set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - find_path(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH) find_program(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) - if(CUDA_INCLUDES AND CUDA_NVCC) - message(STATUS "CUDA includes = ${CUDA_INCLUDES}") + if(CUDA_NVCC) message(STATUS "CUDA nvcc = ${CUDA_NVCC}") else() - message(STATUS "CUDA not found") + message(STATUS "CUDA compiler not found") endif() - include_directories(${CUDA_INCLUDES}) - endif() ########################################################################### diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index cd0d64f37dd..2f2d34dcef2 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -86,10 +86,15 @@ void Device::pixels_free(device_memory& mem) mem_free(mem); } -void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height) +void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height, bool transparent) { pixels_copy_from(rgba, y, w, h); + if(transparent) { + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + } + glPixelZoom((float)width/(float)w, (float)height/(float)h); glRasterPos2f(0, y); @@ -97,6 +102,9 @@ void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, in glRasterPos2f(0.0f, 0.0f); glPixelZoom(1.0f, 1.0f); + + if(transparent) + glDisable(GL_BLEND); } Device *Device::create(DeviceType type, bool background, int threads) diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index 8006eea1a5f..87683ae4719 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -115,7 +115,7 @@ public: /* opengl drawing */ virtual void draw_pixels(device_memory& mem, int y, int w, int h, - int width, int height); + int width, int height, bool transparent); #ifdef WITH_NETWORK /* networking */ diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 0537e231f44..cc1c1275bf4 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -607,7 +607,7 @@ public: } } - void draw_pixels(device_memory& mem, int y, int w, int h, int width, int height) + void draw_pixels(device_memory& mem, int y, int w, int h, int width, int height, bool transparent) { if(!background) { PixelMem pmem = pixel_mem_map[mem.device_pointer]; @@ -621,11 +621,16 @@ public: glEnable(GL_TEXTURE_2D); + if(transparent) { + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + } + glColor3f(1.0f, 1.0f, 1.0f); glPushMatrix(); glTranslatef(0.0f, (float)y, 0.0f); - + glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); @@ -640,6 +645,9 @@ public: glEnd(); glPopMatrix(); + + if(transparent) + glDisable(GL_BLEND); glBindTexture(GL_TEXTURE_2D, 0); glDisable(GL_TEXTURE_2D); @@ -649,7 +657,7 @@ public: return; } - Device::draw_pixels(mem, y, w, h, width, height); + Device::draw_pixels(mem, y, w, h, width, height, transparent); } void task_add(DeviceTask& task) diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp index e48df93737d..cae63596d3b 100644 --- a/intern/cycles/device/device_multi.cpp +++ b/intern/cycles/device/device_multi.cpp @@ -244,7 +244,7 @@ public: mem.device_pointer = tmp; } - void draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height) + void draw_pixels(device_memory& rgba, int y, int w, int h, int width, int height, bool transparent) { device_ptr tmp = rgba.device_pointer; int i = 0, sub_h = h/devices.size(); @@ -255,7 +255,7 @@ public: /* adjust math for w/width */ rgba.device_pointer = sub.ptr_map[tmp]; - sub.device->draw_pixels(rgba, sy, w, sh, width, height); + sub.device->draw_pixels(rgba, sy, w, sh, width, height, transparent); i++; } diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp index 656e90eb526..d9ba237d964 100644 --- a/intern/cycles/kernel/kernel.cpp +++ b/intern/cycles/kernel/kernel.cpp @@ -129,18 +129,6 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t kg->__filter_table.data = (float*)mem; kg->__filter_table.width = width; } - else if(strcmp(name, "__response_curve_R") == 0) { - kg->__response_curve_R.data = (float*)mem; - kg->__response_curve_R.width = width; - } - else if(strcmp(name, "__response_curve_B") == 0) { - kg->__response_curve_B.data = (float*)mem; - kg->__response_curve_B.width = width; - } - else if(strcmp(name, "__response_curve_G") == 0) { - kg->__response_curve_G.data = (float*)mem; - kg->__response_curve_G.width = width; - } else if(strcmp(name, "__sobol_directions") == 0) { kg->__sobol_directions.data = (uint*)mem; kg->__sobol_directions.width = width; diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h index b7b29d46323..3a0eff5210c 100644 --- a/intern/cycles/kernel/kernel_compat_cuda.h +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -33,6 +33,7 @@ CCL_NAMESPACE_BEGIN #define __device __device__ __inline__ #define __device_inline __device__ __inline__ +#define __device_noinline __device__ __noinline__ #define __global #define __shared __shared__ #define __constant diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index 3d493c61fe4..287bf320881 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -30,6 +30,7 @@ /* in opencl all functions are device functions, so leave this empty */ #define __device #define __device_inline +#define __device_noinline /* no assert in opencl */ #define kernel_assert(cond) diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/kernel_film.h index 0bbd6c202a1..f6351a73295 100644 --- a/intern/cycles/kernel/kernel_film.h +++ b/intern/cycles/kernel/kernel_film.h @@ -20,21 +20,17 @@ CCL_NAMESPACE_BEGIN __device float4 film_map(KernelGlobals *kg, float4 irradiance, int pass) { - float scale = kernel_data.film.exposure*(1.0f/(pass+1)); + float scale = 1.0f/(float)(pass+1); + float exposure = kernel_data.film.exposure; float4 result = irradiance*scale; - if(kernel_data.film.use_response_curve) { - /* camera response curve */ - result.x = kernel_tex_interp(__response_curve_R, result.x); - result.y = kernel_tex_interp(__response_curve_G, result.y); - result.z = kernel_tex_interp(__response_curve_B, result.z); - } - else { - /* conversion to srgb */ - result.x = color_scene_linear_to_srgb(result.x); - result.y = color_scene_linear_to_srgb(result.y); - result.z = color_scene_linear_to_srgb(result.z); - } + /* conversion to srgb */ + result.x = color_scene_linear_to_srgb(result.x*exposure); + result.y = color_scene_linear_to_srgb(result.y*exposure); + result.z = color_scene_linear_to_srgb(result.z*exposure); + + /* clamp since alpha might be > 1.0 due to russian roulette */ + result.w = clamp(result.w, 0.0f, 1.0f); return result; } @@ -47,7 +43,7 @@ __device uchar4 film_float_to_byte(float4 color) result.x = (uchar)clamp(color.x*255.0f, 0.0f, 255.0f); result.y = (uchar)clamp(color.y*255.0f, 0.0f, 255.0f); result.z = (uchar)clamp(color.z*255.0f, 0.0f, 255.0f); - result.w = 255; + result.w = (uchar)clamp(color.w*255.0f, 0.0f, 255.0f); return result; } diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 47aeea4f5c5..2cbb4ae306e 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -105,10 +105,11 @@ __device int path_flag_from_label(int path_flag, int label) return path_flag; } -__device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) +__device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) { /* initialize */ float3 L = make_float3(0.0f, 0.0f, 0.0f); + float Ltransparent = 0.0f; #ifdef __EMISSION__ float ray_pdf = 0.0f; @@ -123,14 +124,20 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray if(!scene_intersect(kg, &ray, false, &isect)) { /* eval background shader if nothing hit */ + if(kernel_data.background.transparent && (path_flag & PATH_RAY_CAMERA)) { + Ltransparent += average(throughput); + } + else { #ifdef __BACKGROUND__ - ShaderData sd; - shader_setup_from_background(kg, &sd, &ray); - L += throughput*shader_eval_background(kg, &sd, path_flag); - shader_release(kg, &sd); + ShaderData sd; + shader_setup_from_background(kg, &sd, &ray); + L += throughput*shader_eval_background(kg, &sd, path_flag); + shader_release(kg, &sd); #else - L += make_float3(0.8f, 0.8f, 0.8f); + L += make_float3(0.8f, 0.8f, 0.8f); #endif + } + break; } @@ -140,6 +147,22 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray float rbsdf = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF); shader_eval_surface(kg, &sd, rbsdf, path_flag); +#ifdef __HOLDOUT__ + if((sd.flag & SD_HOLDOUT) && (path_flag & PATH_RAY_CAMERA)) { + float3 holdout_weight = shader_holdout_eval(kg, &sd); + + if(kernel_data.background.transparent) { + Ltransparent += average(holdout_weight*throughput); + } + else { + ShaderData sd; + shader_setup_from_background(kg, &sd, &ray); + L += holdout_weight*throughput*shader_eval_background(kg, &sd, path_flag); + shader_release(kg, &sd); + } + } +#endif + #ifdef __EMISSION__ /* emission */ if(kernel_data.integrator.use_emission) { @@ -166,6 +189,12 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray } #endif + /* no BSDF? we can stop here */ + if(!(sd.flag & SD_BSDF)) { + path_flag &= ~PATH_RAY_CAMERA; + break; + } + /* sample BSDF */ float bsdf_pdf; float3 bsdf_eval; @@ -180,8 +209,10 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray shader_release(kg, &sd); - if(bsdf_pdf == 0.0f || is_zero(bsdf_eval)) + if(bsdf_pdf == 0.0f || is_zero(bsdf_eval)) { + path_flag &= ~PATH_RAY_CAMERA; break; + } /* modify throughput */ throughput *= bsdf_eval/bsdf_pdf; @@ -197,8 +228,10 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray float probability = path_terminate_probability(kg, bounce, throughput); float terminate = path_rng(kg, rng, pass, rng_offset + PRNG_TERMINATE); - if(terminate >= probability) + if(terminate >= probability) { + path_flag &= ~PATH_RAY_CAMERA; break; + } throughput /= probability; @@ -212,7 +245,7 @@ __device float3 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray #endif } - return L; + return make_float4(L.x, L.y, L.z, 1.0f - Ltransparent); } __device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __global uint *rng_state, int pass, int x, int y) @@ -236,25 +269,19 @@ __device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __gl /* integrate */ #ifdef __MODIFY_TP__ float3 throughput = path_terminate_modified_throughput(kg, buffer, x, y, pass); - float3 L = kernel_path_integrate(kg, &rng, pass, ray, throughput)/throughput; + float4 L = kernel_path_integrate(kg, &rng, pass, ray, throughput)/throughput; #else float3 throughput = make_float3(1.0f, 1.0f, 1.0f); - float3 L = kernel_path_integrate(kg, &rng, pass, ray, throughput); + float4 L = kernel_path_integrate(kg, &rng, pass, ray, throughput); #endif /* accumulate result in output buffer */ int index = x + y*kernel_data.cam.width; - float4 result; - result.x = L.x; - result.y = L.y; - result.z = L.z; - result.w = 1.0f; - if(pass == 0) - buffer[index] = result; + buffer[index] = L; else - buffer[index] += result; + buffer[index] += L; path_rng_end(kg, rng_state, rng, x, y); } diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index c4fc65596b2..ed3aec21207 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -342,6 +342,26 @@ __device void shader_emissive_sample(KernelGlobals *kg, ShaderData *sd, } } +/* Holdout */ + +__device float3 shader_holdout_eval(KernelGlobals *kg, ShaderData *sd) +{ +#ifdef WITH_OSL + if(kg->osl.use) { + return OSLShader::holdout_eval(sd); + } + else +#endif + { +#ifdef __SVM__ + if(sd->svm_closure == CLOSURE_HOLDOUT_ID) + return make_float3(1.0f, 1.0f, 1.0f); + else + return make_float3(0.0f, 0.0f, 0.0f); +#endif + } +} + /* Surface Evaluation */ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, diff --git a/intern/cycles/kernel/kernel_textures.h b/intern/cycles/kernel/kernel_textures.h index bd44ed7eee5..dd4566ec184 100644 --- a/intern/cycles/kernel/kernel_textures.h +++ b/intern/cycles/kernel/kernel_textures.h @@ -38,9 +38,6 @@ KERNEL_TEX(uint4, texture_uint4, __svm_nodes) /* camera/film */ KERNEL_TEX(float, texture_float, __filter_table) -KERNEL_TEX(float, texture_float, __response_curve_R) -KERNEL_TEX(float, texture_float, __response_curve_G) -KERNEL_TEX(float, texture_float, __response_curve_B) /* sobol */ KERNEL_TEX(uint, texture_uint, __sobol_directions) diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index c0cb3fc8a09..06581d593e4 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -37,6 +37,7 @@ CCL_NAMESPACE_BEGIN #ifndef __KERNEL_OPENCL__ #define __SVM__ #define __TEXTURES__ +#define __HOLDOUT__ #endif #define __RAY_DIFFERENTIALS__ #define __CAMERA_CLIPPING__ @@ -194,8 +195,10 @@ struct FlatClosure { enum ShaderDataFlag { SD_BACKFACING = 1, /* backside of surface? */ SD_EMISSION = 2, /* have emissive closure? */ - SD_BSDF_HAS_EVAL = 4, /* have non-singular bsdf closure? */ - SD_BSDF_GLOSSY = 8 /* have glossy bsdf */ + SD_BSDF = 4, /* have bsdf closure? */ + SD_BSDF_HAS_EVAL = 8, /* have non-singular bsdf closure? */ + SD_BSDF_GLOSSY = 16, /* have glossy bsdf */ + SD_HOLDOUT = 32 /* have holdout closure? */ }; typedef struct ShaderData { @@ -257,6 +260,8 @@ typedef struct ShaderData { float emissive_sample_sum; float volume_sample_sum; + float3 holdout_weight; + float randb; } osl_closure; @@ -313,14 +318,14 @@ typedef struct KernelCamera { typedef struct KernelFilm { float exposure; - int use_response_curve; - int pad1, pad2; + int pad1, pad2, pad3; } KernelFilm; typedef struct KernelBackground { /* only shader index */ int shader; - int pad1, pad2, pad3; + int transparent; + int pad1, pad2; } KernelBackground; typedef struct KernelSunSky { diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index a86946a680e..007d14b526b 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -145,9 +145,11 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, /* scattering flags */ if(scattering == OSL::Labels::DIFFUSE) - sd->flag |= SD_BSDF_HAS_EVAL; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; else if(scattering == OSL::Labels::GLOSSY) - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + else + sd->flag |= SD_BSDF; /* add */ sd->osl_closure.bsdf[sd->osl_closure.num_bsdf++] = flat; @@ -170,8 +172,11 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, sd->osl_closure.emissive[sd->osl_closure.num_emissive++] = flat; break; } - case ClosurePrimitive::BSSRDF: case ClosurePrimitive::Holdout: + sd->osl_closure.holdout_weight += weight; + sd->flag |= SD_HOLDOUT; + break; + case ClosurePrimitive::BSSRDF: case ClosurePrimitive::Debug: break; /* not implemented */ case ClosurePrimitive::Background: @@ -212,6 +217,7 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int sd->osl_closure.emissive_sample_sum = 0.0f; sd->osl_closure.num_bsdf = 0; sd->osl_closure.num_emissive = 0; + sd->osl_closure.holdout_weight = make_float3(0.0f, 0.0f, 0.0f); sd->osl_closure.randb = randb; if(globals->Ci) { @@ -555,5 +561,12 @@ float3 OSLShader::volume_eval_phase(const ShaderData *sd, const float3 omega_in, return eval; } +/* Holdout Closure */ + +float3 OSLShader::holdout_eval(const ShaderData *sd) +{ + return sd->osl_closure.holdout_weight; +} + CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h index 2e5279c12ce..9b578b159ae 100644 --- a/intern/cycles/kernel/osl/osl_shader.h +++ b/intern/cycles/kernel/osl/osl_shader.h @@ -74,6 +74,7 @@ public: float3 *eval, float3 *I, float *pdf); static float3 volume_eval_phase(const ShaderData *sd, const float3 omega_in, const float3 omega_out); + static float3 holdout_eval(const ShaderData *sd); /* release */ static void release(KernelGlobals *kg, const ShaderData *sd); diff --git a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h index 04e4ccb8313..a04f4e2b076 100644 --- a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h +++ b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h @@ -50,7 +50,7 @@ __device void bsdf_ashikhmin_velvet_setup(ShaderData *sd, float3 N, float sigma) self->m_invsigma2 = 1.0f/(sigma * sigma); sd->svm_closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; - sd->flag |= SD_BSDF_HAS_EVAL; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } __device void bsdf_ashikhmin_velvet_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h index 00493e72203..dcd29534109 100644 --- a/intern/cycles/kernel/svm/bsdf_diffuse.h +++ b/intern/cycles/kernel/svm/bsdf_diffuse.h @@ -47,7 +47,7 @@ __device void bsdf_diffuse_setup(ShaderData *sd, float3 N) //self->m_N = N; sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; - sd->flag |= SD_BSDF_HAS_EVAL; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } __device void bsdf_diffuse_blur(ShaderData *sd, float roughness) @@ -110,7 +110,7 @@ __device void bsdf_translucent_setup(ShaderData *sd, float3 N) //self->m_N = N; sd->svm_closure = CLOSURE_BSDF_TRANSLUCENT_ID; - sd->flag |= SD_BSDF_HAS_EVAL; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } __device void bsdf_translucent_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h index a948ba06871..c98092b2f8f 100644 --- a/intern/cycles/kernel/svm/bsdf_microfacet.h +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -58,7 +58,7 @@ __device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, floa else sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_ID; - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } __device void bsdf_microfacet_ggx_blur(ShaderData *sd, float roughness) @@ -278,7 +278,7 @@ __device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, else sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } __device void bsdf_microfacet_beckmann_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_reflection.h b/intern/cycles/kernel/svm/bsdf_reflection.h index 287cc9c2506..2c49eb7ef24 100644 --- a/intern/cycles/kernel/svm/bsdf_reflection.h +++ b/intern/cycles/kernel/svm/bsdf_reflection.h @@ -47,6 +47,7 @@ __device void bsdf_reflection_setup(ShaderData *sd, float3 N) //self->m_N = N; sd->svm_closure = CLOSURE_BSDF_REFLECTION_ID; + sd->flag |= SD_BSDF; } __device void bsdf_reflection_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_refraction.h b/intern/cycles/kernel/svm/bsdf_refraction.h index 55a914f8334..534945f4f0b 100644 --- a/intern/cycles/kernel/svm/bsdf_refraction.h +++ b/intern/cycles/kernel/svm/bsdf_refraction.h @@ -48,6 +48,7 @@ __device void bsdf_refraction_setup(ShaderData *sd, float3 N, float eta) self->m_eta = eta; sd->svm_closure = CLOSURE_BSDF_REFRACTION_ID; + sd->flag |= SD_BSDF; } __device void bsdf_refraction_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_transparent.h b/intern/cycles/kernel/svm/bsdf_transparent.h index e689e3db357..30288bf251d 100644 --- a/intern/cycles/kernel/svm/bsdf_transparent.h +++ b/intern/cycles/kernel/svm/bsdf_transparent.h @@ -38,6 +38,7 @@ CCL_NAMESPACE_BEGIN __device void bsdf_transparent_setup(ShaderData *sd) { sd->svm_closure = CLOSURE_BSDF_TRANSPARENT_ID; + sd->flag |= SD_BSDF; } __device void bsdf_transparent_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index c54418afa77..6680644a1a7 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -54,7 +54,7 @@ __device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, floa self->m_ay = clamp(ay, 1e-5f, 1.0f); sd->svm_closure = CLOSURE_BSDF_WARD_ID; - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } __device void bsdf_ward_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h index 6031012d0ca..55fc8286529 100644 --- a/intern/cycles/kernel/svm/bsdf_westin.h +++ b/intern/cycles/kernel/svm/bsdf_westin.h @@ -51,7 +51,7 @@ __device void bsdf_westin_backscatter_setup(ShaderData *sd, float3 N, float roug self->m_invroughness = 1.0f/roughness; sd->svm_closure = CLOSURE_BSDF_WESTIN_BACKSCATTER_ID; - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } __device void bsdf_westin_backscatter_blur(ShaderData *sd, float roughness) @@ -146,7 +146,7 @@ __device void bsdf_westin_sheen_setup(ShaderData *sd, float3 N, float edginess) self->m_edginess = edginess; sd->svm_closure = CLOSURE_BSDF_WESTIN_SHEEN_ID; - sd->flag |= SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } __device void bsdf_westin_sheen_blur(ShaderData *sd, float roughness) diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 68e54d9752e..3a2b6bfb1ae 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -148,7 +148,7 @@ CCL_NAMESPACE_BEGIN /* Main Interpreter Loop */ -__device void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, float randb, int path_flag) +__device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, float randb, int path_flag) { float stack[SVM_STACK_SIZE]; float closure_weight = 1.0f; @@ -172,6 +172,8 @@ __device void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderType type, svm_node_closure_emission(sd); else if(node.x == NODE_CLOSURE_BACKGROUND) svm_node_closure_background(sd); + else if(node.x == NODE_CLOSURE_HOLDOUT) + svm_node_closure_holdout(sd); else if(node.x == NODE_CLOSURE_SET_WEIGHT) svm_node_closure_set_weight(sd, node.y, node.z, node.w); else if(node.x == NODE_CLOSURE_WEIGHT) diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index a7462e2c358..1efadcefbd5 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -136,6 +136,12 @@ __device void svm_node_closure_background(ShaderData *sd) sd->svm_closure = CLOSURE_BACKGROUND_ID; } +__device void svm_node_closure_holdout(ShaderData *sd) +{ + sd->svm_closure = CLOSURE_HOLDOUT_ID; + sd->flag |= SD_HOLDOUT; +} + /* Closure Nodes */ __device void svm_node_closure_set_weight(ShaderData *sd, uint r, uint g, uint b) diff --git a/intern/cycles/kernel/svm/svm_convert.h b/intern/cycles/kernel/svm/svm_convert.h index 14925569bfb..188b0489d9e 100644 --- a/intern/cycles/kernel/svm/svm_convert.h +++ b/intern/cycles/kernel/svm/svm_convert.h @@ -30,7 +30,7 @@ __device void svm_node_convert(ShaderData *sd, float *stack, uint type, uint fro } case NODE_CONVERT_CF: { float3 f = stack_load_float3(stack, from); - float g = f.x*0.2126f + f.y*0.7152f + f.z*0.0722f; + float g = linear_rgb_to_gray(f); stack_store_float(stack, to, g); break; } diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 5cbd05e4400..786478c0c03 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -81,7 +81,8 @@ typedef enum NodeType { NODE_EMISSION_SET_WEIGHT_TOTAL = 4300, NODE_ATTR_BUMP_DX = 4400, NODE_ATTR_BUMP_DY = 4500, - NODE_TEX_ENVIRONMENT = 4600 + NODE_TEX_ENVIRONMENT = 4600, + NODE_CLOSURE_HOLDOUT = 4700 } NodeType; typedef enum NodeAttributeType { diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt index c3d5ae1ea05..14859aa4414 100644 --- a/intern/cycles/render/CMakeLists.txt +++ b/intern/cycles/render/CMakeLists.txt @@ -15,7 +15,6 @@ set(sources buffers.cpp camera.cpp film.cpp - film_response.cpp filter.cpp graph.cpp image.cpp @@ -39,7 +38,6 @@ set(headers buffers.h camera.h film.h - film_response.h filter.h graph.h image.h diff --git a/intern/cycles/render/background.cpp b/intern/cycles/render/background.cpp index 871fe128514..bf4131b6d38 100644 --- a/intern/cycles/render/background.cpp +++ b/intern/cycles/render/background.cpp @@ -31,6 +31,7 @@ CCL_NAMESPACE_BEGIN Background::Background() { + transparent = false; need_update = true; } @@ -45,8 +46,9 @@ void Background::device_update(Device *device, DeviceScene *dscene, Scene *scene device_free(device, dscene); - /* set shader index */ + /* set shader index and transparent option */ KernelBackground *kbackground = &dscene->data.background; + kbackground->transparent = transparent; kbackground->shader = scene->shader_manager->get_shader_id(scene->default_background); need_update = false; @@ -58,7 +60,7 @@ void Background::device_free(Device *device, DeviceScene *dscene) bool Background::modified(const Background& background) { - return false; + return !(transparent == background.transparent); } void Background::tag_update(Scene *scene) diff --git a/intern/cycles/render/background.h b/intern/cycles/render/background.h index a048cbc535c..16d2ccb6caa 100644 --- a/intern/cycles/render/background.h +++ b/intern/cycles/render/background.h @@ -29,6 +29,7 @@ class Scene; class Background { public: + bool transparent; bool need_update; Background(); diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp index c1d9158c85e..62dc17960ae 100644 --- a/intern/cycles/render/buffers.cpp +++ b/intern/cycles/render/buffers.cpp @@ -24,6 +24,7 @@ #include "util_debug.h" #include "util_hash.h" #include "util_image.h" +#include "util_math.h" #include "util_opengl.h" #include "util_time.h" #include "util_types.h" @@ -84,6 +85,33 @@ void RenderBuffers::reset(Device *device, int width_, int height_) device->mem_copy_to(rng_state); } +float4 *RenderBuffers::copy_from_device(float exposure, int pass) +{ + if(!buffer.device_pointer) + return NULL; + + device->mem_copy_from(buffer, 0, buffer.memory_size()); + + float4 *out = new float4[width*height]; + float4 *in = (float4*)buffer.data_pointer; + float scale = 1.0f/(float)pass; + + for(int i = width*height - 1; i >= 0; i--) { + float4 rgba = in[i]*scale; + + rgba.x = rgba.x*exposure; + rgba.y = rgba.y*exposure; + rgba.z = rgba.z*exposure; + + /* clamp since alpha might be > 1.0 due to russian roulette */ + rgba.w = clamp(rgba.w, 0.0f, 1.0f); + + out[i] = rgba; + } + + return out; +} + /* Display Buffer */ DisplayBuffer::DisplayBuffer(Device *device_) @@ -93,6 +121,7 @@ DisplayBuffer::DisplayBuffer(Device *device_) height = 0; draw_width = 0; draw_height = 0; + transparent = true; /* todo: determine from background */ } DisplayBuffer::~DisplayBuffer() @@ -132,10 +161,36 @@ void DisplayBuffer::draw_set(int width_, int height_) draw_height = height_; } +void DisplayBuffer::draw_transparency_grid() +{ + GLubyte checker_stipple_sml[32*32/8] = { + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \ + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \ + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \ + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \ + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \ + 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \ + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \ + 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \ + }; + + glColor4ub(50, 50, 50, 255); + glRectf(0, 0, width, height); + glEnable(GL_POLYGON_STIPPLE); + glColor4ub(55, 55, 55, 255); + glPolygonStipple(checker_stipple_sml); + glRectf(0, 0, width, height); + glDisable(GL_POLYGON_STIPPLE); +} + void DisplayBuffer::draw(Device *device) { - if(draw_width != 0 && draw_height != 0) - device->draw_pixels(rgba, 0, draw_width, draw_height, width, height); + if(draw_width != 0 && draw_height != 0) { + if(transparent) + draw_transparency_grid(); + + device->draw_pixels(rgba, 0, draw_width, draw_height, width, height, transparent); + } } bool DisplayBuffer::draw_ready() diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h index 1922f875d86..e99fedb0dff 100644 --- a/intern/cycles/render/buffers.h +++ b/intern/cycles/render/buffers.h @@ -47,6 +47,7 @@ public: ~RenderBuffers(); void reset(Device *device, int width, int height); + float4 *copy_from_device(float exposure, int pass); protected: void device_free(); @@ -67,6 +68,8 @@ public: with progressive render we can be using only a subset of the buffer. if these are zero, it means nothing can be drawn yet */ int draw_width, draw_height; + /* draw alpha channel? */ + bool transparent; /* byte buffer for tonemapped result */ device_vector rgba; /* mutex, must be locked manually by callers */ @@ -83,6 +86,7 @@ public: bool draw_ready(); protected: + void draw_transparency_grid(); void device_free(); Device *device; diff --git a/intern/cycles/render/camera.h b/intern/cycles/render/camera.h index 6ae8c8fa4ae..d385aa274f4 100644 --- a/intern/cycles/render/camera.h +++ b/intern/cycles/render/camera.h @@ -19,8 +19,6 @@ #ifndef __CAMERA_H__ #define __CAMERA_H__ -#include "film_response.h" - #include "util_transform.h" #include "util_types.h" diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp index 05874244605..657abd97f70 100644 --- a/intern/cycles/render/film.cpp +++ b/intern/cycles/render/film.cpp @@ -19,30 +19,13 @@ #include "camera.h" #include "device.h" #include "film.h" -#include "film_response.h" #include "scene.h" CCL_NAMESPACE_BEGIN -static FilmResponseType find_response_type(const string& name) -{ - if(name == "" || name == "None") - return FILM_RESPONSE_NONE; - - for(size_t i = 0; i < FILM_RESPONSE_NUM; i++) { - FilmResponse *curve = &FILM_RESPONSE[i]; - if(curve->name == name) - return (FilmResponseType)i; - } - - return FILM_RESPONSE_NONE; -} - Film::Film() { exposure = 0.8f; - response = "Advantix 400"; - last_response = ""; need_update = true; } @@ -50,18 +33,6 @@ Film::~Film() { } -#if 0 -static void generate_python_enum() -{ - for(size_t i = 0; i < FILM_RESPONSE_NUM; i++) { - FilmResponse *curve = &FILM_RESPONSE[i]; - /*if(i == 0 || strcmp(curve->brand, FILM_RESPONSE[i-1].brand)) - printf("(\"\", \"%s\", \"\"),\n", curve->brand);*/ - printf("(\"%s\", \"%s %s\", \"\"),\n", curve->name, curve->brand, curve->name); - } -} -#endif - void Film::device_update(Device *device, DeviceScene *dscene) { if(!need_update) @@ -72,57 +43,16 @@ void Film::device_update(Device *device, DeviceScene *dscene) /* update __data */ kfilm->exposure = exposure; - FilmResponseType response_type = find_response_type(response); - - /* update __response_curves */ - if(response != last_response) { - device_free(device, dscene); - - if(response_type != FILM_RESPONSE_NONE) { - FilmResponse *curve = &FILM_RESPONSE[response_type]; - size_t response_curve_size = FILM_RESPONSE_SIZE; - - dscene->response_curve_R.copy(curve->B_R, response_curve_size); - - if(curve->rgb) { - dscene->response_curve_G.copy(curve->B_G, response_curve_size); - dscene->response_curve_B.copy(curve->B_B, response_curve_size); - } - else { - dscene->response_curve_G.copy(curve->B_R, response_curve_size); - dscene->response_curve_B.copy(curve->B_R, response_curve_size); - } - - device->tex_alloc("__response_curve_R", dscene->response_curve_R, true); - device->tex_alloc("__response_curve_G", dscene->response_curve_G, true); - device->tex_alloc("__response_curve_B", dscene->response_curve_B, true); - } - - last_response = response; - } - - kfilm->use_response_curve = (response_type != FILM_RESPONSE_NONE); - need_update = false; } void Film::device_free(Device *device, DeviceScene *dscene) { - device->tex_free(dscene->response_curve_R); - device->tex_free(dscene->response_curve_G); - device->tex_free(dscene->response_curve_B); - - dscene->response_curve_R.clear(); - dscene->response_curve_G.clear(); - dscene->response_curve_B.clear(); - - last_response = ""; } bool Film::modified(const Film& film) { - return !(response == film.response && - exposure == film.exposure && + return !(exposure == film.exposure && pass == film.pass); } diff --git a/intern/cycles/render/film.h b/intern/cycles/render/film.h index 9d6c58b30d1..201fc174f4f 100644 --- a/intern/cycles/render/film.h +++ b/intern/cycles/render/film.h @@ -29,8 +29,6 @@ class Scene; class Film { public: - string response; - string last_response; float exposure; int pass; bool need_update; diff --git a/intern/cycles/render/filter.cpp b/intern/cycles/render/filter.cpp index d7682bedc12..4925521e4a5 100644 --- a/intern/cycles/render/filter.cpp +++ b/intern/cycles/render/filter.cpp @@ -125,5 +125,16 @@ void Filter::device_free(Device *device, DeviceScene *dscene) dscene->filter_table.clear(); } +bool Filter::modified(const Filter& filter) +{ + return !(filter_type == filter.filter_type && + filter_width == filter.filter_width); +} + +void Filter::tag_update(Scene *scene) +{ + need_update = true; +} + CCL_NAMESPACE_END diff --git a/intern/cycles/render/filter.h b/intern/cycles/render/filter.h index 620e6ebe083..5df7bb8fd14 100644 --- a/intern/cycles/render/filter.h +++ b/intern/cycles/render/filter.h @@ -21,6 +21,10 @@ CCL_NAMESPACE_BEGIN +class Device; +class DeviceScene; +class Scene; + typedef enum FilterType { FILTER_BOX, FILTER_GAUSSIAN @@ -38,6 +42,9 @@ public: void device_update(Device *device, DeviceScene *dscene); void device_free(Device *device, DeviceScene *dscene); + + bool modified(const Filter& filter); + void tag_update(Scene *scene); }; CCL_NAMESPACE_END diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index aae32851131..b9163309652 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -392,7 +392,7 @@ void MeshManager::device_update_attributes(Device *device, DeviceScene *dscene, progress.set_status("Updating Mesh", "Computing attributes"); /* gather per mesh requested attributes. as meshes may have multiple - * shaders assigned, this merged the requested attributes that have + * shaders assigned, this merges the requested attributes that have * been set per shader by the shader manager */ vector mesh_attributes(scene->meshes.size()); diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 546d74c5c22..5ffc3fbbabb 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1275,6 +1275,24 @@ void BackgroundNode::compile(OSLCompiler& compiler) compiler.add(this, "node_background"); } +/* Holdout Closure */ + +HoldoutNode::HoldoutNode() +: ShaderNode("holdout") +{ + add_output("Holdout", SHADER_SOCKET_CLOSURE); +} + +void HoldoutNode::compile(SVMCompiler& compiler) +{ + compiler.add_node(NODE_CLOSURE_HOLDOUT, CLOSURE_HOLDOUT_ID); +} + +void HoldoutNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_holdout"); +} + /* Geometry */ GeometryNode::GeometryNode() diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index da3b743e79b..2afe585c3ac 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -257,6 +257,11 @@ public: SHADER_NODE_CLASS(BackgroundNode) }; +class HoldoutNode : public ShaderNode { +public: + SHADER_NODE_CLASS(HoldoutNode) +}; + class GeometryNode : public ShaderNode { public: SHADER_NODE_CLASS(GeometryNode) diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index 965a0054846..9d475cd9fa5 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -84,11 +84,6 @@ public: /* filter */ device_vector filter_table; - /* film */ - device_vector response_curve_R; - device_vector response_curve_G; - device_vector response_curve_B; - /* integrator */ device_vector sobol_directions; diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 56fbadcee08..5890714d740 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -52,6 +52,7 @@ Session::Session(const SessionParams& params_) delayed_reset.do_reset = false; delayed_reset.w = 0; delayed_reset.h = 0; + delayed_reset.passes = 0; display_outdated = false; gpu_draw_ready = false; @@ -95,7 +96,7 @@ bool Session::ready_to_reset() /* GPU Session */ -void Session::reset_gpu(int w, int h) +void Session::reset_gpu(int w, int h, int passes) { /* block for buffer acces and reset immediately. we can't do this in the thread, because we need to allocate an OpenGL buffer, and @@ -106,7 +107,7 @@ void Session::reset_gpu(int w, int h) display_outdated = true; reset_time = time_dt(); - reset_(w, h); + reset_(w, h, passes); gpu_need_tonemap = false; gpu_need_tonemap_cond.notify_all(); @@ -148,7 +149,14 @@ void Session::run_gpu() start_time = time_dt(); reset_time = time_dt(); - while(!progress.get_cancel() && tile_manager.next()) { + while(!progress.get_cancel()) { + bool done = !tile_manager.next(); + + if(done && params.background) + break; + + /* todo: wait when done in interactive mode */ + /* buffers mutex is locked entirely while rendering each pass, and released/reacquired on each iteration to allow reset and draw in between */ @@ -193,7 +201,7 @@ void Session::run_gpu() /* CPU Session */ -void Session::reset_cpu(int w, int h) +void Session::reset_cpu(int w, int h, int passes) { thread_scoped_lock reset_lock(delayed_reset.mutex); @@ -202,6 +210,7 @@ void Session::reset_cpu(int w, int h) delayed_reset.w = w; delayed_reset.h = h; + delayed_reset.passes = passes; delayed_reset.do_reset = true; device->task_cancel(); } @@ -235,11 +244,18 @@ void Session::run_cpu() thread_scoped_lock buffers_lock(buffers->mutex); thread_scoped_lock display_lock(display->mutex); - reset_(delayed_reset.w, delayed_reset.h); + reset_(delayed_reset.w, delayed_reset.h, delayed_reset.passes); delayed_reset.do_reset = false; } - while(!progress.get_cancel() && tile_manager.next()) { + while(!progress.get_cancel()) { + bool done = !tile_manager.next(); + + if(done && params.background) + break; + + /* todo: wait when done in interactive mode */ + { thread_scoped_lock buffers_lock(buffers->mutex); @@ -266,7 +282,7 @@ void Session::run_cpu() if(delayed_reset.do_reset) { /* reset rendering if request from main thread */ delayed_reset.do_reset = false; - reset_(delayed_reset.w, delayed_reset.h); + reset_(delayed_reset.w, delayed_reset.h, delayed_reset.passes); } else { /* tonemap only if we do not reset, we don't we don't @@ -313,7 +329,7 @@ bool Session::draw(int w, int h) return draw_cpu(w, h); } -void Session::reset_(int w, int h) +void Session::reset_(int w, int h, int passes) { if(w != buffers->width || h != buffers->height) { gpu_draw_ready = false; @@ -321,19 +337,28 @@ void Session::reset_(int w, int h) display->reset(device, w, h); } - tile_manager.reset(w, h); + tile_manager.reset(w, h, passes); start_time = time_dt(); preview_time = 0.0; pass = 0; } -void Session::reset(int w, int h) +void Session::reset(int w, int h, int passes) { if(device_use_gl) - reset_gpu(w, h); + reset_gpu(w, h, passes); else - reset_cpu(w, h); + reset_cpu(w, h, passes); +} + +void Session::set_passes(int passes) +{ + if(passes != params.passes) { + params.passes = passes; + tile_manager.set_passes(passes); + /* todo: awake in paused loop */ + } } void Session::wait() diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 3411dcd23c6..18983f55353 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -107,13 +107,15 @@ public: void wait(); bool ready_to_reset(); - void reset(int w, int h); + void reset(int w, int h, int passes); + void set_passes(int passes); protected: struct DelayedReset { thread_mutex mutex; bool do_reset; int w, h; + int passes; } delayed_reset; void run(); @@ -123,15 +125,15 @@ protected: void tonemap(); void path_trace(Tile& tile); - void reset_(int w, int h); + void reset_(int w, int h, int passes); void run_cpu(); bool draw_cpu(int w, int h); - void reset_cpu(int w, int h); + void reset_cpu(int w, int h, int passes); void run_gpu(); bool draw_gpu(int w, int h); - void reset_gpu(int w, int h); + void reset_gpu(int w, int h, int passes); TileManager tile_manager; bool device_use_gl; diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index 28ea39e70ed..450090c42f8 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -25,18 +25,17 @@ CCL_NAMESPACE_BEGIN TileManager::TileManager(bool progressive_, int passes_, int tile_size_, int min_size_) { progressive = progressive_; - passes = passes_; tile_size = tile_size_; min_size = min_size_; - reset(0, 0); + reset(0, 0, 0); } TileManager::~TileManager() { } -void TileManager::reset(int width_, int height_) +void TileManager::reset(int width_, int height_, int passes_) { full_width = width_; full_height = height_; @@ -54,6 +53,8 @@ void TileManager::reset(int width_, int height_) } } + passes = passes_; + state.width = 0; state.height = 0; state.pass = -1; @@ -61,6 +62,11 @@ void TileManager::reset(int width_, int height_) state.tiles.clear(); } +void TileManager::set_passes(int passes_) +{ + passes = passes_; +} + void TileManager::set_tiles() { int resolution = state.resolution; diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h index c3517b1e24d..56c69cdce88 100644 --- a/intern/cycles/render/tile.h +++ b/intern/cycles/render/tile.h @@ -50,7 +50,8 @@ public: TileManager(bool progressive, int passes, int tile_size, int min_size); ~TileManager(); - void reset(int width, int height); + void reset(int width, int height, int passes); + void set_passes(int passes); bool next(); bool done(); diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h index a11a5c7c2a7..8b4a175f498 100644 --- a/intern/cycles/util/util_color.h +++ b/intern/cycles/util/util_color.h @@ -60,6 +60,11 @@ __device float3 color_scene_linear_to_srgb(float3 c) #endif +__device float linear_rgb_to_gray(float3 c) +{ + return c.x*0.2126f + c.y*0.7152f + c.z*0.0722f; +} + CCL_NAMESPACE_END #endif /* __UTIL_COLOR_H__ */ diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h index 12ae60f1143..af5b91c963a 100644 --- a/intern/cycles/util/util_types.h +++ b/intern/cycles/util/util_types.h @@ -30,6 +30,7 @@ #ifndef __KERNEL_GPU__ #define __device static inline +#define __device_noinline static #define __global #define __local #define __shared diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index f61231141fd..5b1a80186a6 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -311,6 +311,7 @@ struct ShadeResult; #define SH_NODE_ADD_CLOSURE 156 #define SH_NODE_TEX_ENVIRONMENT 157 #define SH_NODE_OUTPUT_TEXTURE 158 +#define SH_NODE_HOLDOUT 159 /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 927d406eb61..a36032f137e 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3702,10 +3702,11 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_emission(ntypelist); register_node_type_sh_mix_closure(ntypelist); register_node_type_sh_add_closure(ntypelist); + register_node_type_sh_holdout(ntypelist); register_node_type_sh_output_lamp(ntypelist); register_node_type_sh_output_material(ntypelist); - register_node_type_sh_output_texture(ntypelist); + //register_node_type_sh_output_texture(ntypelist); register_node_type_sh_output_world(ntypelist); register_node_type_sh_tex_blend(ntypelist); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 41f1bf2d383..d14e4cd76f2 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -52,7 +52,7 @@ DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBR DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) -DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) +//DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) @@ -60,6 +60,7 @@ DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_C DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 96c59992b25..f4b6a452281 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -128,6 +128,7 @@ set(SRC intern/SHD_nodes/SHD_emission.c intern/SHD_nodes/SHD_fresnel.c intern/SHD_nodes/SHD_geometry.c + intern/SHD_nodes/SHD_holdout.c intern/SHD_nodes/SHD_light_path.c intern/SHD_nodes/SHD_mix_closure.c intern/SHD_nodes/SHD_add_closure.c diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index 7bee0dfb0bb..a939bca161d 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -67,6 +67,7 @@ void register_node_type_sh_bsdf_translucent(ListBase *lb); void register_node_type_sh_bsdf_transparent(ListBase *lb); void register_node_type_sh_bsdf_velvet(ListBase *lb); void register_node_type_sh_emission(ListBase *lb); +void register_node_type_sh_holdout(ListBase *lb); void register_node_type_sh_mix_closure(ListBase *lb); void register_node_type_sh_add_closure(ListBase *lb); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c new file mode 100644 index 00000000000..a96b621456a --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c @@ -0,0 +1,63 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_holdout_in[]= { + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_holdout_out[]= { + { SOCK_CLOSURE, 0, "Holdout", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_holdout(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_holdout(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_CLOSURE, 0, + sh_node_holdout_in, sh_node_holdout_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_holdout); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + -- cgit v1.2.3 From 47fb31404fcb7b3244d3a575807a5084996802cb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Aug 2011 10:21:10 +0000 Subject: Cycles: preview passes setting to set the max number of passes to render in the viewport working now, set to 0 for unlimited (well, actually 2147483647). --- intern/cycles/blender/addon/ui.py | 18 +-- intern/cycles/kernel/osl/nodes/node_holdout.osl | 28 +++++ intern/cycles/render/session.cpp | 141 +++++++++++++++++------- intern/cycles/render/session.h | 5 + 4 files changed, 143 insertions(+), 49 deletions(-) create mode 100644 intern/cycles/kernel/osl/nodes/node_holdout.osl diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index a1363ece854..8da478d45a1 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -43,16 +43,15 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): split = layout.split() col = split.column() - col.prop(cscene, "passes", text="Render Passes") - #sub = col.row() - #sub.active = cscene.preview_passes >= 1 - #sub.prop(cscene, "preview_passes") + sub = col.column(align=True) + sub.prop(cscene, "passes", text="Render Passes") + sub.prop(cscene, "preview_passes") col.prop(cscene, "no_caustics") col = split.column() - col = col.column(align=True) - col.prop(cscene, "max_bounces") - col.prop(cscene, "min_bounces") + sub = col.column(align=True) + sub.prop(cscene, "max_bounces") + sub.prop(cscene, "min_bounces") #row = col.row() #row.prop(cscene, "blur_caustics") @@ -74,9 +73,10 @@ class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): col.prop(cscene, "transparent") col = split.column() - col.prop(cscene, "filter_type", text="") + sub = col.column(align=True) + sub.prop(cscene, "filter_type", text="") if cscene.filter_type != 'BOX': - col.prop(cscene, "filter_width", text="Width") + sub.prop(cscene, "filter_width", text="Width") class CyclesRender_PT_performance(CyclesButtonsPanel, bpy.types.Panel): bl_label = "Performance" diff --git a/intern/cycles/kernel/osl/nodes/node_holdout.osl b/intern/cycles/kernel/osl/nodes/node_holdout.osl new file mode 100644 index 00000000000..69f8d85a82e --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_holdout.osl @@ -0,0 +1,28 @@ +/* + * 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_background( + color Color = color(0.8, 0.8, 0.8), + float Strength = 1.0, + output closure color Background = background()) +{ + Background = Color*Strength*background(); +} + diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 5890714d740..274c61a283e 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -57,6 +57,7 @@ Session::Session(const SessionParams& params_) display_outdated = false; gpu_draw_ready = false; gpu_need_tonemap = false; + pause = false; } Session::~Session() @@ -65,6 +66,7 @@ Session::~Session() progress.set_cancel("Exiting"); gpu_need_tonemap = false; gpu_need_tonemap_cond.notify_all(); + set_pause(false); wait(); } @@ -111,6 +113,8 @@ void Session::reset_gpu(int w, int h, int passes) gpu_need_tonemap = false; gpu_need_tonemap_cond.notify_all(); + + pause_cond.notify_all(); } bool Session::draw_gpu(int w, int h) @@ -150,52 +154,72 @@ void Session::run_gpu() reset_time = time_dt(); while(!progress.get_cancel()) { + /* advance to next tile */ bool done = !tile_manager.next(); - if(done && params.background) - break; + /* any work left? */ + if(done) { + /* if in background mode, we can stop immediately */ + if(params.background) { + break; + } + else { + /* in interactive mode, we wait until woken up */ + thread_scoped_lock pause_lock(pause_mutex); + pause_cond.wait(pause_lock); + } + } + else { + /* test for pause and wait until woken up */ + thread_scoped_lock pause_lock(pause_mutex); + while(pause) + pause_cond.wait(pause_lock); + } - /* todo: wait when done in interactive mode */ + { + /* buffers mutex is locked entirely while rendering each + pass, and released/reacquired on each iteration to allow + reset and draw in between */ + thread_scoped_lock buffers_lock(buffers->mutex); - /* buffers mutex is locked entirely while rendering each - pass, and released/reacquired on each iteration to allow - reset and draw in between */ - thread_scoped_lock buffers_lock(buffers->mutex); + /* update scene */ + update_scene(); + if(progress.get_cancel()) + break; - /* update scene */ - update_scene(); - if(progress.get_cancel()) - break; + /* update status and timing */ + update_status_time(); - /* update status and timing */ - update_status_time(); + /* path trace */ + foreach(Tile& tile, tile_manager.state.tiles) { + path_trace(tile); - /* path trace */ - foreach(Tile& tile, tile_manager.state.tiles) { - path_trace(tile); + device->task_wait(); - device->task_wait(); + if(progress.get_cancel()) + break; + } - if(progress.get_cancel()) - break; - } + /* update status and timing */ + update_status_time(); - gpu_need_tonemap = true; - gpu_draw_ready = true; - progress.set_update(); + gpu_need_tonemap = true; + gpu_draw_ready = true; + progress.set_update(); - /* wait for tonemap */ - if(!params.background) { - while(gpu_need_tonemap) { - if(progress.get_cancel()) - break; + /* wait for tonemap */ + if(!params.background) { + while(gpu_need_tonemap) { + if(progress.get_cancel()) + break; - gpu_need_tonemap_cond.wait(buffers_lock); + gpu_need_tonemap_cond.wait(buffers_lock); + } } - } - if(progress.get_cancel()) - break; + if(progress.get_cancel()) + break; + } } } @@ -213,6 +237,8 @@ void Session::reset_cpu(int w, int h, int passes) delayed_reset.passes = passes; delayed_reset.do_reset = true; device->task_cancel(); + + pause_cond.notify_all(); } bool Session::draw_cpu(int w, int h) @@ -249,14 +275,33 @@ void Session::run_cpu() } while(!progress.get_cancel()) { + /* advance to next tile */ bool done = !tile_manager.next(); + bool need_tonemap = false; - if(done && params.background) - break; - - /* todo: wait when done in interactive mode */ + /* any work left? */ + if(done) { + /* if in background mode, we can stop immediately */ + if(params.background) { + break; + } + else { + /* in interactive mode, we wait until woken up */ + thread_scoped_lock pause_lock(pause_mutex); + pause_cond.wait(pause_lock); + } + } + else { + /* test for pause and wait until woken up */ + thread_scoped_lock pause_lock(pause_mutex); + while(pause) + pause_cond.wait(pause_lock); + } - { + if(!done) { + /* buffers mutex is locked entirely while rendering each + pass, and released/reacquired on each iteration to allow + reset and draw in between */ thread_scoped_lock buffers_lock(buffers->mutex); /* update scene */ @@ -267,9 +312,14 @@ void Session::run_cpu() /* update status and timing */ update_status_time(); - /* path trace all tiles */ + /* path trace */ foreach(Tile& tile, tile_manager.state.tiles) path_trace(tile); + + /* update status and timing */ + update_status_time(); + + need_tonemap = true; } device->task_wait(); @@ -284,7 +334,7 @@ void Session::run_cpu() delayed_reset.do_reset = false; reset_(delayed_reset.w, delayed_reset.h, delayed_reset.passes); } - else { + else if(need_tonemap) { /* tonemap only if we do not reset, we don't we don't want to show the result of an incomplete pass*/ tonemap(); @@ -357,10 +407,21 @@ void Session::set_passes(int passes) if(passes != params.passes) { params.passes = passes; tile_manager.set_passes(passes); - /* todo: awake in paused loop */ + + pause_cond.notify_all(); } } +void Session::set_pause(bool pause_) +{ + { + thread_scoped_lock pause_lock(pause_mutex); + pause = pause_; + } + + pause_cond.notify_all(); +} + void Session::wait() { session_thread->join(); diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 18983f55353..3aaaeedf0c5 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -109,6 +109,7 @@ public: bool ready_to_reset(); void reset(int w, int h, int passes); void set_passes(int passes); + void set_pause(bool pause); protected: struct DelayedReset { @@ -146,6 +147,10 @@ protected: volatile bool gpu_need_tonemap; thread_condition_variable gpu_need_tonemap_cond; + bool pause; + thread_condition_variable pause_cond; + thread_mutex pause_mutex; + double start_time; double reset_time; double preview_time; -- cgit v1.2.3 From 160d8f6c0c14ef13ef2540e60a389933f9b8d009 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Aug 2011 11:47:03 +0000 Subject: Cycles: fix cuda assertion that could be triggerd sometimes, when trying to tonemap an empty image. --- intern/cycles/render/session.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 274c61a283e..5465ddac06b 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -508,11 +508,13 @@ void Session::tonemap() task.pass = tile_manager.state.pass; task.resolution = tile_manager.state.resolution; - device->task_add(task); - device->task_wait(); + if(task.w > 0 && task.h > 0) { + device->task_add(task); + device->task_wait(); - /* set display to new size */ - display->draw_set(tile_manager.state.width, tile_manager.state.height); + /* set display to new size */ + display->draw_set(task.w, task.h); + } display_outdated = false; } -- cgit v1.2.3 From 213c58fdd56c8437645d759e4e4540b638b6cf2e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 29 Aug 2011 13:59:11 +0000 Subject: Cycles UI file: * Import bpy.types.Panel at the beginning, like in Trunk --- intern/cycles/blender/addon/ui.py | 40 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 8da478d45a1..4fe9e25d251 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -18,6 +18,8 @@ import bpy +from bpy.types import Panel + from cycles import enums from cycles import engine @@ -31,7 +33,7 @@ class CyclesButtonsPanel(): rd = context.scene.render return rd.engine == 'CYCLES' -class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): +class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): bl_label = "Integrator" def draw(self, context): @@ -57,7 +59,7 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, bpy.types.Panel): #row.prop(cscene, "blur_caustics") #row.active = not cscene.no_caustics -class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): +class CyclesRender_PT_film(CyclesButtonsPanel, Panel): bl_label = "Film" def draw(self, context): @@ -78,7 +80,7 @@ class CyclesRender_PT_film(CyclesButtonsPanel, bpy.types.Panel): if cscene.filter_type != 'BOX': sub.prop(cscene, "filter_width", text="Width") -class CyclesRender_PT_performance(CyclesButtonsPanel, bpy.types.Panel): +class CyclesRender_PT_performance(CyclesButtonsPanel, Panel): bl_label = "Performance" bl_options = {'DEFAULT_CLOSED'} @@ -111,7 +113,7 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, bpy.types.Panel): sub.prop(cscene, "debug_bvh_type", text="") sub.prop(cscene, "debug_use_spatial_splits") -class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): +class Cycles_PT_post_processing(CyclesButtonsPanel, Panel): bl_label = "Post Processing" bl_options = {'DEFAULT_CLOSED'} @@ -129,7 +131,7 @@ class Cycles_PT_post_processing(CyclesButtonsPanel, bpy.types.Panel): col = split.column() col.prop(rd, "dither_intensity", text="Dither", slider=True) -class Cycles_PT_camera(CyclesButtonsPanel, bpy.types.Panel): +class Cycles_PT_camera(CyclesButtonsPanel, Panel): bl_label = "Cycles" bl_context = "data" @@ -145,7 +147,7 @@ class Cycles_PT_camera(CyclesButtonsPanel, bpy.types.Panel): layout.prop(ccamera, "lens_radius") -class Cycles_PT_context_material(CyclesButtonsPanel, bpy.types.Panel): +class Cycles_PT_context_material(CyclesButtonsPanel, Panel): bl_label = "Surface" bl_context = "material" bl_options = {'HIDE_HEADER'} @@ -193,7 +195,7 @@ class Cycles_PT_context_material(CyclesButtonsPanel, bpy.types.Panel): split.template_ID(space, "pin_id") split.separator() -class Cycles_PT_mesh_displacement(CyclesButtonsPanel, bpy.types.Panel): +class Cycles_PT_mesh_displacement(CyclesButtonsPanel, Panel): bl_label = "Displacement" bl_context = "data" @@ -250,7 +252,7 @@ def panel_node_draw(layout, id, output_type, input_name): input = find_node_input(node, input_name) layout.template_node_view(ntree, node, input); -class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): +class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): bl_label = "Surface" bl_context = "data" @@ -264,7 +266,7 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, bpy.types.Panel): mat = context.lamp panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') -class CyclesWorld_PT_surface(CyclesButtonsPanel, bpy.types.Panel): +class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel): bl_label = "Surface" bl_context = "world" @@ -278,7 +280,7 @@ class CyclesWorld_PT_surface(CyclesButtonsPanel, bpy.types.Panel): mat = context.world panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') -class CyclesWorld_PT_volume(CyclesButtonsPanel, bpy.types.Panel): +class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" bl_context = "world" @@ -293,7 +295,7 @@ class CyclesWorld_PT_volume(CyclesButtonsPanel, bpy.types.Panel): mat = context.world panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Volume') -class CyclesMaterial_PT_surface(CyclesButtonsPanel, bpy.types.Panel): +class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel): bl_label = "Surface" bl_context = "material" @@ -307,7 +309,7 @@ class CyclesMaterial_PT_surface(CyclesButtonsPanel, bpy.types.Panel): mat = context.material panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') -class CyclesMaterial_PT_volume(CyclesButtonsPanel, bpy.types.Panel): +class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" bl_context = "material" @@ -322,7 +324,7 @@ class CyclesMaterial_PT_volume(CyclesButtonsPanel, bpy.types.Panel): mat = context.material panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') -class CyclesMaterial_PT_displacement(CyclesButtonsPanel, bpy.types.Panel): +class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel): bl_label = "Displacement" bl_context = "material" @@ -336,7 +338,7 @@ class CyclesMaterial_PT_displacement(CyclesButtonsPanel, bpy.types.Panel): mat = context.material panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Displacement') -class CyclesMaterial_PT_settings(CyclesButtonsPanel, bpy.types.Panel): +class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): bl_label = "Settings" bl_context = "material" bl_options = {'DEFAULT_CLOSED'} @@ -355,7 +357,7 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, bpy.types.Panel): row.label(text="Light Group:") row.prop(mat, "light_group", text="") -class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): +class CyclesTexture_PT_context(CyclesButtonsPanel, Panel): bl_label = "" bl_context = "texture" bl_options = {'HIDE_HEADER'} @@ -398,7 +400,7 @@ class CyclesTexture_PT_context(CyclesButtonsPanel, bpy.types.Panel): split.label(text="Type:") split.prop(tex, "type", text="") -class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): +class CyclesTexture_PT_nodes(CyclesButtonsPanel, Panel): bl_label = "Nodes" bl_context = "texture" @@ -413,7 +415,7 @@ class CyclesTexture_PT_nodes(CyclesButtonsPanel, bpy.types.Panel): tex = context.texture panel_node_draw(layout, tex, 'OUTPUT_TEXTURE', 'Color') -class CyclesTexture_PT_node(CyclesButtonsPanel, bpy.types.Panel): +class CyclesTexture_PT_node(CyclesButtonsPanel, Panel): bl_label = "Node" bl_context = "texture" @@ -429,7 +431,7 @@ class CyclesTexture_PT_node(CyclesButtonsPanel, bpy.types.Panel): ntree = node.id_data layout.template_node_view(ntree, node, None) -class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): +class CyclesTexture_PT_mapping(CyclesButtonsPanel, Panel): bl_label = "Mapping" bl_context = "texture" @@ -444,7 +446,7 @@ class CyclesTexture_PT_mapping(CyclesButtonsPanel, bpy.types.Panel): layout.label("Texture coordinate mapping goes here."); layout.label("Translate, rotate, scale, projection, XYZ.") -class CyclesTexture_PT_color(CyclesButtonsPanel, bpy.types.Panel): +class CyclesTexture_PT_color(CyclesButtonsPanel, Panel): bl_label = "Color" bl_context = "texture" -- cgit v1.2.3 From be0aef2ef24d0d84e199c59a91634e87cdef3d58 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Aug 2011 16:54:13 +0000 Subject: Cycles: pause button to interrupt viewport renders, in the 3d view header. --- intern/cycles/blender/addon/properties.py | 3 + intern/cycles/blender/addon/ui.py | 13 +++ intern/cycles/blender/blender_session.cpp | 8 +- intern/cycles/blender/blender_sync.cpp | 6 ++ intern/cycles/blender/blender_sync.h | 1 + intern/cycles/render/scene.cpp | 20 ++-- intern/cycles/render/session.cpp | 149 ++++++++++++++++++++---------- intern/cycles/render/session.h | 3 +- 8 files changed, 140 insertions(+), 63 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 62c1db5a16d..b2d982fdabc 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -36,6 +36,9 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): default=10, min=1, max=2147483647) cls.preview_passes = IntProperty(name="Preview Passes", description="Number of passes to render in the viewport, unlimited if 0", default=0, min=0, max=2147483647) + cls.preview_pause = BoolProperty(name="Pause Preview", description="Pause all viewport preview renders", + default=False) + cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces", default=3, min=0, max=1024) cls.max_bounces = IntProperty(name="Max Bounces", description="Maximum number of bounces", diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 4fe9e25d251..ec753590cce 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -473,6 +473,17 @@ def draw_device(self, context): if cscene.device == 'CPU' and engine.with_osl(): layout.prop(cscene, "shading_system") +def draw_pause(self, context): + layout = self.layout + scene = context.scene + + if scene.render.engine == "CYCLES": + view = context.space_data + + if view.viewport_shade == "RENDERED": + cscene = scene.cycles + layout.prop(cscene, "preview_pause", icon="PAUSE", text="") + def get_panels(): return [ bpy.types.RENDER_PT_render, @@ -514,12 +525,14 @@ def get_panels(): def register(): bpy.types.RENDER_PT_render.append(draw_device) + bpy.types.VIEW3D_HT_header.append(draw_pause) for panel in get_panels(): panel.COMPAT_ENGINES.add('CYCLES') def unregister(): bpy.types.RENDER_PT_render.remove(draw_device) + bpy.types.VIEW3D_HT_header.remove(draw_pause) for panel in get_panels(): panel.COMPAT_ENGINES.remove('CYCLES') diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 7be15ca0e3c..62721b7cf10 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -93,6 +93,7 @@ void BlenderSession::create_session() 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)); /* start rendering */ session->reset(width, height, session_params.passes); @@ -159,6 +160,7 @@ void BlenderSession::synchronize() /* increase passes, but never decrease */ session->set_passes(session_params.passes); + session->set_pause(BlenderSync::get_session_pause(b_scene, background)); /* copy recalc flags, outside of mutex so we can decide to do the real synchronization at a later time to not block on running updates */ @@ -178,12 +180,12 @@ void BlenderSession::synchronize() else sync->sync_camera(width, height); + /* unlock */ + session->scene->mutex.unlock(); + /* reset if needed */ if(scene->need_reset()) session->reset(width, height, session_params.passes); - - /* unlock */ - session->scene->mutex.unlock(); } bool BlenderSession::draw(int w, int h) diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index ccfc3bb2bf1..c579253336f 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -185,6 +185,12 @@ SceneParams BlenderSync::get_scene_params(BL::Scene b_scene) /* Session Parameters */ +bool BlenderSync::get_session_pause(BL::Scene b_scene, bool background) +{ + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + return (background)? false: get_boolean(cscene, "preview_pause"); +} + SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background) { SessionParams params; diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 16ce1998a24..fe60f42bc75 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -61,6 +61,7 @@ public: /* get parameters */ static SceneParams get_scene_params(BL::Scene b_scene); static SessionParams get_session_params(BL::Scene b_scene, bool background); + static bool get_session_pause(BL::Scene b_scene, bool background); private: /* sync */ diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp index 85a0cc3a7c4..0b2e2b8a9b6 100644 --- a/intern/cycles/render/scene.cpp +++ b/intern/cycles/render/scene.cpp @@ -57,31 +57,31 @@ Scene::Scene(const SceneParams& params_) Scene::~Scene() { - camera->device_free(device, &dscene); + if(device) camera->device_free(device, &dscene); delete camera; - filter->device_free(device, &dscene); + if(device) filter->device_free(device, &dscene); delete filter; - film->device_free(device, &dscene); + if(device) film->device_free(device, &dscene); delete film; - background->device_free(device, &dscene); + if(device) background->device_free(device, &dscene); delete background; - mesh_manager->device_free(device, &dscene); + if(device) mesh_manager->device_free(device, &dscene); delete mesh_manager; - object_manager->device_free(device, &dscene); + if(device) object_manager->device_free(device, &dscene); delete object_manager; - integrator->device_free(device, &dscene); + if(device) integrator->device_free(device, &dscene); delete integrator; - shader_manager->device_free(device, &dscene); + if(device) shader_manager->device_free(device, &dscene); delete shader_manager; - light_manager->device_free(device, &dscene); + if(device) light_manager->device_free(device, &dscene); delete light_manager; foreach(Shader *s, shaders) @@ -93,7 +93,7 @@ Scene::~Scene() foreach(Light *l, lights) delete l; - image_manager->device_free(device, &dscene); + if(device) image_manager->device_free(device, &dscene); delete image_manager; } diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 5465ddac06b..52366f06337 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -47,6 +47,7 @@ Session::Session(const SessionParams& params_) start_time = 0.0; reset_time = 0.0; preview_time = 0.0; + paused_time = 0.0; pass = 0; delayed_reset.do_reset = false; @@ -64,9 +65,16 @@ Session::~Session() { if(session_thread) { progress.set_cancel("Exiting"); + gpu_need_tonemap = false; gpu_need_tonemap_cond.notify_all(); - set_pause(false); + + { + thread_scoped_lock pause_lock(pause_mutex); + pause = false; + } + pause_cond.notify_all(); + wait(); } @@ -152,40 +160,54 @@ void Session::run_gpu() { start_time = time_dt(); reset_time = time_dt(); + paused_time = 0.0; while(!progress.get_cancel()) { /* advance to next tile */ - bool done = !tile_manager.next(); + bool no_tiles = !tile_manager.next(); - /* any work left? */ - if(done) { - /* if in background mode, we can stop immediately */ - if(params.background) { + if(params.background) { + /* if no work left and in background mode, we can stop immediately */ + if(no_tiles) break; - } - else { - /* in interactive mode, we wait until woken up */ - thread_scoped_lock pause_lock(pause_mutex); - pause_cond.wait(pause_lock); - } } else { - /* test for pause and wait until woken up */ + /* if in interactive mode, and we are either paused or done for now, + wait for pause condition notify to wake up again */ thread_scoped_lock pause_lock(pause_mutex); - while(pause) - pause_cond.wait(pause_lock); - } - { - /* buffers mutex is locked entirely while rendering each - pass, and released/reacquired on each iteration to allow - reset and draw in between */ - thread_scoped_lock buffers_lock(buffers->mutex); + if(pause || no_tiles) { + update_status_time(pause, no_tiles); + while(1) { + double pause_start = time_dt(); + pause_cond.wait(pause_lock); + paused_time += time_dt() - pause_start; + + update_status_time(pause, no_tiles); + progress.set_update(); + + if(!pause) + break; + } + } + + if(progress.get_cancel()) + break; + } + + if(!no_tiles) { /* update scene */ update_scene(); if(progress.get_cancel()) break; + } + + if(!no_tiles) { + /* buffers mutex is locked entirely while rendering each + pass, and released/reacquired on each iteration to allow + reset and draw in between */ + thread_scoped_lock buffers_lock(buffers->mutex); /* update status and timing */ update_status_time(); @@ -276,29 +298,40 @@ void Session::run_cpu() while(!progress.get_cancel()) { /* advance to next tile */ - bool done = !tile_manager.next(); + bool no_tiles = !tile_manager.next(); bool need_tonemap = false; - /* any work left? */ - if(done) { - /* if in background mode, we can stop immediately */ - if(params.background) { + if(params.background) { + /* if no work left and in background mode, we can stop immediately */ + if(no_tiles) break; - } - else { - /* in interactive mode, we wait until woken up */ - thread_scoped_lock pause_lock(pause_mutex); - pause_cond.wait(pause_lock); - } } else { - /* test for pause and wait until woken up */ + /* if in interactive mode, and we are either paused or done for now, + wait for pause condition notify to wake up again */ thread_scoped_lock pause_lock(pause_mutex); - while(pause) - pause_cond.wait(pause_lock); + + if(pause || no_tiles) { + update_status_time(pause, no_tiles); + + while(1) { + double pause_start = time_dt(); + pause_cond.wait(pause_lock); + paused_time += time_dt() - pause_start; + + update_status_time(pause, no_tiles); + progress.set_update(); + + if(!pause) + break; + } + } + + if(progress.get_cancel()) + break; } - if(!done) { + if(!no_tiles) { /* buffers mutex is locked entirely while rendering each pass, and released/reacquired on each iteration to allow reset and draw in between */ @@ -350,12 +383,6 @@ void Session::run() /* session thread loop */ progress.set_status("Waiting for render to start"); - /* first scene update */ - if(!progress.get_cancel()) { - thread_scoped_lock scene_lock(scene->mutex); - scene->device_update(device, progress); - } - /* run */ if(!progress.get_cancel()) { if(device_use_gl) @@ -391,6 +418,7 @@ void Session::reset_(int w, int h, int passes) start_time = time_dt(); preview_time = 0.0; + paused_time = 0.0; pass = 0; } @@ -408,18 +436,28 @@ void Session::set_passes(int passes) params.passes = passes; tile_manager.set_passes(passes); + { + thread_scoped_lock pause_lock(pause_mutex); + } pause_cond.notify_all(); } } void Session::set_pause(bool pause_) { + bool notify = false; + { thread_scoped_lock pause_lock(pause_mutex); - pause = pause_; + + if(pause != pause_) { + pause = pause_; + notify = true; + } } - pause_cond.notify_all(); + if(notify) + pause_cond.notify_all(); } void Session::wait() @@ -452,27 +490,40 @@ void Session::update_scene() scene->device_update(device, progress); } -void Session::update_status_time() +void Session::update_status_time(bool show_pause, bool show_done) { int pass = tile_manager.state.pass; int resolution = tile_manager.state.resolution; /* update status */ - string substatus; + string status, substatus; + if(!params.progressive) substatus = "Path Tracing"; else if(params.passes == INT_MAX) substatus = string_printf("Path Tracing Pass %d", pass+1); else substatus = string_printf("Path Tracing Pass %d/%d", pass+1, params.passes); - progress.set_status("Rendering", substatus); + + if(show_pause) + status = "Paused"; + else if(show_done) + status = "Done"; + else + status = "Rendering"; + + progress.set_status(status, substatus); /* update timing */ if(preview_time == 0.0 && resolution == 1) preview_time = time_dt(); - double total_time = (time_dt() - start_time); - double pass_time = (pass == 0)? 0.0: (time_dt() - preview_time)/(pass); + double total_time = time_dt() - start_time - paused_time; + double pass_time = (pass == 0)? 0.0: (time_dt() - preview_time - paused_time)/(pass); + + /* negative can happen when we pause a bit before rendering, can discard that */ + if(total_time < 0.0) total_time = 0.0; + if(preview_time < 0.0) preview_time = 0.0; progress.set_pass(pass + 1, total_time, pass_time); } diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 3aaaeedf0c5..4d5cf434098 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -122,7 +122,7 @@ protected: void run(); void update_scene(); - void update_status_time(); + void update_status_time(bool show_pause = false, bool show_done = false); void tonemap(); void path_trace(Tile& tile); @@ -154,6 +154,7 @@ protected: double start_time; double reset_time; double preview_time; + double paused_time; }; CCL_NAMESPACE_END -- cgit v1.2.3 From eac2674f1d95ff7e43216fb58a012f1b59e1b709 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Aug 2011 17:17:40 +0000 Subject: Cycles: some tweaks to try to get sm_13 shader compiling. --- intern/cycles/kernel/kernel_path.h | 9 +- intern/cycles/kernel/svm/svm.h | 250 +++++++++++++++---------- intern/cycles/kernel/svm/svm_clouds.h | 2 +- intern/cycles/kernel/svm/svm_distorted_noise.h | 2 +- intern/cycles/kernel/svm/svm_magic.h | 2 +- intern/cycles/kernel/svm/svm_marble.h | 2 +- intern/cycles/kernel/svm/svm_musgrave.h | 10 +- intern/cycles/kernel/svm/svm_noise.h | 8 +- intern/cycles/kernel/svm/svm_stucci.h | 2 +- intern/cycles/kernel/svm/svm_voronoi.h | 30 +-- intern/cycles/kernel/svm/svm_wood.h | 2 +- 11 files changed, 180 insertions(+), 139 deletions(-) diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 2cbb4ae306e..d4ed4651751 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -151,15 +151,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray if((sd.flag & SD_HOLDOUT) && (path_flag & PATH_RAY_CAMERA)) { float3 holdout_weight = shader_holdout_eval(kg, &sd); - if(kernel_data.background.transparent) { + if(kernel_data.background.transparent) Ltransparent += average(holdout_weight*throughput); - } - else { - ShaderData sd; - shader_setup_from_background(kg, &sd, &ray); - L += holdout_weight*throughput*shader_eval_background(kg, &sd, path_flag); - shader_release(kg, &sd); - } } #endif diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 3a2b6bfb1ae..989c37c3cd0 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -160,111 +160,157 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT while(1) { uint4 node = read_node(kg, &offset); - if(node.x == NODE_SHADER_JUMP) { - if(type == SHADER_TYPE_SURFACE) offset = node.y; - else if(type == SHADER_TYPE_VOLUME) offset = node.z; - else if(type == SHADER_TYPE_DISPLACEMENT) offset = node.w; - else return; - } - else if(node.x == NODE_CLOSURE_BSDF) - svm_node_closure_bsdf(sd, stack, node, randb); - else if(node.x == NODE_CLOSURE_EMISSION) - svm_node_closure_emission(sd); - else if(node.x == NODE_CLOSURE_BACKGROUND) - svm_node_closure_background(sd); - else if(node.x == NODE_CLOSURE_HOLDOUT) - svm_node_closure_holdout(sd); - else if(node.x == NODE_CLOSURE_SET_WEIGHT) - svm_node_closure_set_weight(sd, node.y, node.z, node.w); - else if(node.x == NODE_CLOSURE_WEIGHT) - svm_node_closure_weight(sd, stack, node.y); - else if(node.x == NODE_EMISSION_WEIGHT) - svm_node_emission_weight(kg, sd, stack, node); - else if(node.x == NODE_MIX_CLOSURE) - svm_node_mix_closure(sd, stack, node.y, node.z, &offset, &randb); - else if(node.x == NODE_ADD_CLOSURE) - svm_node_add_closure(sd, stack, node.y, node.z, &offset, &randb, &closure_weight); - else if(node.x == NODE_JUMP) - offset = node.y; + switch(node.x) { + case NODE_SHADER_JUMP: { + if(type == SHADER_TYPE_SURFACE) offset = node.y; + else if(type == SHADER_TYPE_VOLUME) offset = node.z; + else if(type == SHADER_TYPE_DISPLACEMENT) offset = node.w; + else return; + break; + } + case NODE_CLOSURE_BSDF: + svm_node_closure_bsdf(sd, stack, node, randb); + break; + case NODE_CLOSURE_EMISSION: + svm_node_closure_emission(sd); + break; + case NODE_CLOSURE_BACKGROUND: + svm_node_closure_background(sd); + break; + case NODE_CLOSURE_HOLDOUT: + svm_node_closure_holdout(sd); + break; + case NODE_CLOSURE_SET_WEIGHT: + svm_node_closure_set_weight(sd, node.y, node.z, node.w); + break; + case NODE_CLOSURE_WEIGHT: + svm_node_closure_weight(sd, stack, node.y); + break; + case NODE_EMISSION_WEIGHT: + svm_node_emission_weight(kg, sd, stack, node); + break; + case NODE_MIX_CLOSURE: + svm_node_mix_closure(sd, stack, node.y, node.z, &offset, &randb); + break; + case NODE_ADD_CLOSURE: + svm_node_add_closure(sd, stack, node.y, node.z, &offset, &randb, &closure_weight); + break; + case NODE_JUMP: + offset = node.y; + break; #ifdef __TEXTURES__ - else if(node.x == NODE_TEX_NOISE_F) - svm_node_tex_noise_f(sd, stack, node.y, node.z); - else if(node.x == NODE_TEX_NOISE_V) - svm_node_tex_noise_v(sd, stack, node.y, node.z); - else if(node.x == NODE_TEX_IMAGE) - svm_node_tex_image(kg, sd, stack, node); - else if(node.x == NODE_TEX_ENVIRONMENT) - svm_node_tex_environment(kg, sd, stack, node); - else if(node.x == NODE_TEX_SKY) - svm_node_tex_sky(kg, sd, stack, node.y, node.z); - else if(node.x == NODE_TEX_BLEND) - svm_node_tex_blend(sd, stack, node); - else if(node.x == NODE_TEX_CLOUDS) - svm_node_tex_clouds(sd, stack, node); - else if(node.x == NODE_TEX_VORONOI) - svm_node_tex_voronoi(kg, sd, stack, node, &offset); - else if(node.x == NODE_TEX_MUSGRAVE) - svm_node_tex_musgrave(kg, sd, stack, node, &offset); - else if(node.x == NODE_TEX_MARBLE) - svm_node_tex_marble(kg, sd, stack, node, &offset); - else if(node.x == NODE_TEX_MAGIC) - svm_node_tex_magic(sd, stack, node); - else if(node.x == NODE_TEX_STUCCI) - svm_node_tex_stucci(kg, sd, stack, node, &offset); - else if(node.x == NODE_TEX_DISTORTED_NOISE) - svm_node_tex_distorted_noise(kg, sd, stack, node, &offset); - else if(node.x == NODE_TEX_WOOD) - svm_node_tex_wood(kg, sd, stack, node, &offset); + case NODE_TEX_NOISE_F: + svm_node_tex_noise_f(sd, stack, node.y, node.z); + break; + case NODE_TEX_NOISE_V: + svm_node_tex_noise_v(sd, stack, node.y, node.z); + break; + case NODE_TEX_IMAGE: + svm_node_tex_image(kg, sd, stack, node); + break; + case NODE_TEX_ENVIRONMENT: + svm_node_tex_environment(kg, sd, stack, node); + break; + case NODE_TEX_SKY: + svm_node_tex_sky(kg, sd, stack, node.y, node.z); + break; + case NODE_TEX_BLEND: + svm_node_tex_blend(sd, stack, node); + break; + case NODE_TEX_CLOUDS: + svm_node_tex_clouds(sd, stack, node); + break; + case NODE_TEX_VORONOI: + svm_node_tex_voronoi(kg, sd, stack, node, &offset); + break; + case NODE_TEX_MUSGRAVE: + svm_node_tex_musgrave(kg, sd, stack, node, &offset); + break; + case NODE_TEX_MARBLE: + svm_node_tex_marble(kg, sd, stack, node, &offset); + break; + case NODE_TEX_MAGIC: + svm_node_tex_magic(sd, stack, node); + break; + case NODE_TEX_STUCCI: + svm_node_tex_stucci(kg, sd, stack, node, &offset); + break; + case NODE_TEX_DISTORTED_NOISE: + svm_node_tex_distorted_noise(kg, sd, stack, node, &offset); + break; + case NODE_TEX_WOOD: + svm_node_tex_wood(kg, sd, stack, node, &offset); + break; #endif - else if(node.x == NODE_GEOMETRY) - svm_node_geometry(sd, stack, node.y, node.z); - else if(node.x == NODE_GEOMETRY_BUMP_DX) - svm_node_geometry_bump_dx(sd, stack, node.y, node.z); - else if(node.x == NODE_GEOMETRY_BUMP_DY) - svm_node_geometry_bump_dy(sd, stack, node.y, node.z); - else if(node.x == NODE_LIGHT_PATH) - svm_node_light_path(sd, stack, node.y, node.z, path_flag); - else if(node.x == NODE_CONVERT) - svm_node_convert(sd, stack, node.y, node.z, node.w); - else if(node.x == NODE_VALUE_F) - svm_node_value_f(kg, sd, stack, node.y, node.z); - else if(node.x == NODE_VALUE_V) - svm_node_value_v(kg, sd, stack, node.y, &offset); - else if(node.x == NODE_MIX) - svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset); - else if(node.x == NODE_ATTR) - svm_node_attr(kg, sd, stack, node); - else if(node.x == NODE_ATTR_BUMP_DX) - svm_node_attr_bump_dx(kg, sd, stack, node); - else if(node.x == NODE_ATTR_BUMP_DY) - svm_node_attr_bump_dy(kg, sd, stack, node); - else if(node.x == NODE_FRESNEL) - svm_node_fresnel(sd, stack, node.y, node.z, node.w); - else if(node.x == NODE_SET_DISPLACEMENT) - svm_node_set_displacement(sd, stack, node.y); - else if(node.x == NODE_SET_BUMP) - svm_node_set_bump(sd, stack, node.y, node.z, node.w); - else if(node.x == NODE_MATH) - svm_node_math(kg, sd, stack, node.y, node.z, node.w, &offset); - else if(node.x == NODE_VECTOR_MATH) - svm_node_vector_math(kg, sd, stack, node.y, node.z, node.w, &offset); - else if(node.x == NODE_MAPPING) - svm_node_mapping(kg, sd, stack, node.y, node.z, &offset); - else if(node.x == NODE_TEX_COORD) - svm_node_tex_coord(kg, sd, stack, node.y, node.z); - else if(node.x == NODE_TEX_COORD_BUMP_DX) - svm_node_tex_coord_bump_dx(kg, sd, stack, node.y, node.z); - else if(node.x == NODE_TEX_COORD_BUMP_DY) - svm_node_tex_coord_bump_dy(kg, sd, stack, node.y, node.z); - else if(node.x == NODE_EMISSION_SET_WEIGHT_TOTAL) - svm_node_emission_set_weight_total(kg, sd, node.y, node.z, node.w); - else if(node.x == NODE_END) - break; - else - return; + case NODE_GEOMETRY: + svm_node_geometry(sd, stack, node.y, node.z); + break; + case NODE_GEOMETRY_BUMP_DX: + svm_node_geometry_bump_dx(sd, stack, node.y, node.z); + break; + case NODE_GEOMETRY_BUMP_DY: + svm_node_geometry_bump_dy(sd, stack, node.y, node.z); + break; + case NODE_LIGHT_PATH: + svm_node_light_path(sd, stack, node.y, node.z, path_flag); + break; + case NODE_CONVERT: + svm_node_convert(sd, stack, node.y, node.z, node.w); + break; + case NODE_VALUE_F: + svm_node_value_f(kg, sd, stack, node.y, node.z); + break; + case NODE_VALUE_V: + svm_node_value_v(kg, sd, stack, node.y, &offset); + break; + case NODE_MIX: + svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset); + break; + case NODE_ATTR: + svm_node_attr(kg, sd, stack, node); + break; + case NODE_ATTR_BUMP_DX: + svm_node_attr_bump_dx(kg, sd, stack, node); + break; + case NODE_ATTR_BUMP_DY: + svm_node_attr_bump_dy(kg, sd, stack, node); + break; + case NODE_FRESNEL: + svm_node_fresnel(sd, stack, node.y, node.z, node.w); + break; + case NODE_SET_DISPLACEMENT: + svm_node_set_displacement(sd, stack, node.y); + break; + case NODE_SET_BUMP: + svm_node_set_bump(sd, stack, node.y, node.z, node.w); + break; + case NODE_MATH: + svm_node_math(kg, sd, stack, node.y, node.z, node.w, &offset); + break; + case NODE_VECTOR_MATH: + svm_node_vector_math(kg, sd, stack, node.y, node.z, node.w, &offset); + break; + case NODE_MAPPING: + svm_node_mapping(kg, sd, stack, node.y, node.z, &offset); + break; + case NODE_TEX_COORD: + svm_node_tex_coord(kg, sd, stack, node.y, node.z); + break; + case NODE_TEX_COORD_BUMP_DX: + svm_node_tex_coord_bump_dx(kg, sd, stack, node.y, node.z); + break; + case NODE_TEX_COORD_BUMP_DY: + svm_node_tex_coord_bump_dy(kg, sd, stack, node.y, node.z); + break; + case NODE_EMISSION_SET_WEIGHT_TOTAL: + svm_node_emission_set_weight_total(kg, sd, node.y, node.z, node.w); + break; + case NODE_END: + default: + sd->svm_closure_weight *= closure_weight; + return; + } } - - sd->svm_closure_weight *= closure_weight; } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_clouds.h b/intern/cycles/kernel/svm/svm_clouds.h index e51af684ab9..b89f1ceb072 100644 --- a/intern/cycles/kernel/svm/svm_clouds.h +++ b/intern/cycles/kernel/svm/svm_clouds.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Clouds */ -__device void svm_clouds(NodeNoiseBasis basis, int hard, int depth, float size, float3 p, float *fac, float3 *color) +__device_inline void svm_clouds(NodeNoiseBasis basis, int hard, int depth, float size, float3 p, float *fac, float3 *color) { p /= size; diff --git a/intern/cycles/kernel/svm/svm_distorted_noise.h b/intern/cycles/kernel/svm/svm_distorted_noise.h index 7518a3a9d2d..7d1556cd185 100644 --- a/intern/cycles/kernel/svm/svm_distorted_noise.h +++ b/intern/cycles/kernel/svm/svm_distorted_noise.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Distorted Noise (variable lacunarity noise) */ -__device float svm_distorted_noise(float3 p, float size, NodeNoiseBasis basis, NodeNoiseBasis distortion_basis, float distortion) +__device_noinline float svm_distorted_noise(float3 p, float size, NodeNoiseBasis basis, NodeNoiseBasis distortion_basis, float distortion) { float3 r; float3 offset = make_float3(13.5f, 13.5f, 13.5f); diff --git a/intern/cycles/kernel/svm/svm_magic.h b/intern/cycles/kernel/svm/svm_magic.h index 608ca4bbd2f..af847869f6e 100644 --- a/intern/cycles/kernel/svm/svm_magic.h +++ b/intern/cycles/kernel/svm/svm_magic.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Magic */ -__device float3 svm_magic(float3 p, int n, float turbulence) +__device_noinline float3 svm_magic(float3 p, int n, float turbulence) { float turb = turbulence/5.0f; diff --git a/intern/cycles/kernel/svm/svm_marble.h b/intern/cycles/kernel/svm/svm_marble.h index 4284688afb8..aa22565e956 100644 --- a/intern/cycles/kernel/svm/svm_marble.h +++ b/intern/cycles/kernel/svm/svm_marble.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Marble */ -__device float svm_marble(float3 p, float size, NodeMarbleType type, NodeWaveType wave, NodeNoiseBasis basis, int hard, float turb, int depth) +__device_noinline float svm_marble(float3 p, float size, NodeMarbleType type, NodeWaveType wave, NodeNoiseBasis basis, int hard, float turb, int depth) { float x = p.x; float y = p.y; diff --git a/intern/cycles/kernel/svm/svm_musgrave.h b/intern/cycles/kernel/svm/svm_musgrave.h index 5163b9f2ced..be327f7f262 100644 --- a/intern/cycles/kernel/svm/svm_musgrave.h +++ b/intern/cycles/kernel/svm/svm_musgrave.h @@ -27,7 +27,7 @@ CCL_NAMESPACE_BEGIN * from "Texturing and Modelling: A procedural approach" */ -__device float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +__device_noinline float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) { float rmd; float value = 0.0f; @@ -55,7 +55,7 @@ __device float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float H, float * octaves: number of frequencies in the fBm */ -__device float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +__device_noinline float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) { float rmd; float value = 1.0f; @@ -84,7 +84,7 @@ __device float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis basis, floa * offset: raises the terrain from `sea level' */ -__device float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset) +__device_noinline float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset) { float value, increment, rmd; float pwHL = pow(lacunarity, -H); @@ -119,7 +119,7 @@ __device float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis basis, flo * offset: raises the terrain from `sea level' */ -__device float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +__device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) { float result, signal, weight, rmd; float pwHL = pow(lacunarity, -H); @@ -156,7 +156,7 @@ __device float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseBasis basi * offset: raises the terrain from `sea level' */ -__device float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +__device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) { float result, signal, weight; float pwHL = pow(lacunarity, -H); diff --git a/intern/cycles/kernel/svm/svm_noise.h b/intern/cycles/kernel/svm/svm_noise.h index f41caa99772..72ff353abb4 100644 --- a/intern/cycles/kernel/svm/svm_noise.h +++ b/intern/cycles/kernel/svm/svm_noise.h @@ -112,7 +112,7 @@ __device float scale3(float result) return 0.9820f * result; } -__device float perlin(float x, float y, float z) +__device_noinline float perlin(float x, float y, float z) { int X; float fx = floorfrac(x, &X); int Y; float fy = floorfrac(y, &Y); @@ -135,7 +135,7 @@ __device float perlin(float x, float y, float z) return scale3(result); } -__device float perlin_periodic(float x, float y, float z, float3 pperiod) +__device_noinline float perlin_periodic(float x, float y, float z, float3 pperiod) { int X; float fx = floorfrac(x, &X); int Y; float fy = floorfrac(y, &Y); @@ -178,7 +178,7 @@ __device float snoise(float3 p) } /* cell noise */ -__device float cellnoise(float3 p) +__device_noinline float cellnoise(float3 p) { uint ix = quick_floor(p.x); uint iy = quick_floor(p.y); @@ -210,7 +210,7 @@ __device float psnoise(float3 p, float3 pperiod) } /* turbulence */ -__device float turbulence(float3 P, int oct, bool hard) +__device_noinline float turbulence(float3 P, int oct, bool hard) { float amp = 1.0f, fscale = 1.0f, sum = 0.0f; int i; diff --git a/intern/cycles/kernel/svm/svm_stucci.h b/intern/cycles/kernel/svm/svm_stucci.h index be8883b6388..89353ab4cd3 100644 --- a/intern/cycles/kernel/svm/svm_stucci.h +++ b/intern/cycles/kernel/svm/svm_stucci.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Stucci */ -__device float svm_stucci(NodeStucciType type, NodeNoiseBasis basis, int hard, float turbulence, float size, float3 p) +__device_noinline float svm_stucci(NodeStucciType type, NodeNoiseBasis basis, int hard, float turbulence, float size, float3 p) { p /= size; diff --git a/intern/cycles/kernel/svm/svm_voronoi.h b/intern/cycles/kernel/svm/svm_voronoi.h index df37b8faca8..36965959cc2 100644 --- a/intern/cycles/kernel/svm/svm_voronoi.h +++ b/intern/cycles/kernel/svm/svm_voronoi.h @@ -20,9 +20,9 @@ CCL_NAMESPACE_BEGIN /* Voronoi */ -__device float svm_voronoi(NodeDistanceMetric distance_metric, NodeVoronoiColoring coloring, +__device_noinline float4 svm_voronoi(NodeDistanceMetric distance_metric, NodeVoronoiColoring coloring, float weight1, float weight2, float weight3, float weight4, - float exponent, float intensity, float size, float3 p, float3 *color) + float exponent, float intensity, float size, float3 p) { float aw1 = fabsf(weight1); float aw2 = fabsf(weight2); @@ -41,31 +41,32 @@ __device float svm_voronoi(NodeDistanceMetric distance_metric, NodeVoronoiColori /* Scalar output */ float fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + float3 color; /* colored output */ if(coloring == NODE_VORONOI_INTENSITY) { - *color = make_float3(fac, fac, fac); + color = make_float3(fac, fac, 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]); + 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 != NODE_VORONOI_POSITION) { float t1 = min((da[1] - da[0])*10.0f, 1.0f); if(coloring == NODE_VORONOI_POSITION_OUTLINE_INTENSITY) - *color *= t1*fac; + color *= t1*fac; else if(coloring == NODE_VORONOI_POSITION_OUTLINE) - *color *= t1*sc; + color *= t1*sc; } else { - *color *= sc; + color *= sc; } } - return fac; + return make_float4(color.x, color.y, color.z, fac); } __device void svm_node_tex_voronoi(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) @@ -92,10 +93,11 @@ __device void svm_node_tex_voronoi(KernelGlobals *kg, ShaderData *sd, float *sta exponent = fmaxf(exponent, 1e-5f); size = nonzerof(size, 1e-5f); - float3 color; - float f = svm_voronoi((NodeDistanceMetric)distance_metric, + float4 result = svm_voronoi((NodeDistanceMetric)distance_metric, (NodeVoronoiColoring)coloring, - weight1, weight2, weight3, weight4, exponent, 1.0f, size, co, &color); + weight1, weight2, weight3, weight4, exponent, 1.0f, size, co); + float3 color = make_float3(result.x, result.y, result.z); + float f = result.w; if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f); if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, color); diff --git a/intern/cycles/kernel/svm/svm_wood.h b/intern/cycles/kernel/svm/svm_wood.h index 5c94a9fa3a2..0f22e633766 100644 --- a/intern/cycles/kernel/svm/svm_wood.h +++ b/intern/cycles/kernel/svm/svm_wood.h @@ -20,7 +20,7 @@ CCL_NAMESPACE_BEGIN /* Wood */ -__device float svm_wood(float3 p, float size, NodeWoodType type, NodeWaveType wave, NodeNoiseBasis basis, uint hard, float turb) +__device_noinline float svm_wood(float3 p, float size, NodeWoodType type, NodeWaveType wave, NodeNoiseBasis basis, uint hard, float turb) { float x = p.x; float y = p.y; -- cgit v1.2.3 From 1e741b3a52cc44b7a3ee173f180fd3d99c958efc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Aug 2011 17:55:14 +0000 Subject: Cycles: integrator presets, patch by Thomas. --- intern/cycles/blender/CMakeLists.txt | 1 + intern/cycles/blender/addon/__init__.py | 3 ++ intern/cycles/blender/addon/presets.py | 48 ++++++++++++++++++++++ intern/cycles/blender/addon/ui.py | 14 ++++++- .../presets/cycles/integrator/direct_light.py | 6 +++ 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 intern/cycles/blender/addon/presets.py create mode 100644 release/scripts/presets/cycles/integrator/direct_light.py diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index a035d8fde6b..a4f290f4abd 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -16,6 +16,7 @@ set(addonfiles addon/__init__.py addon/engine.py addon/enums.py + addon/presets.py addon/properties.py addon/ui.py addon/xml.py) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 418f3d4cd27..3ff1a8f3d41 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -35,6 +35,7 @@ from cycles import ui from cycles import properties from cycles import xml from cycles import engine +from cycles import presets class CyclesRender(bpy.types.RenderEngine): bl_idname = 'CYCLES' @@ -76,11 +77,13 @@ def register(): properties.register() ui.register() xml.register() + presets.register() bpy.utils.register_module(__name__) def unregister(): xml.unregister() ui.unregister() properties.unregister() + presets.unregister() bpy.utils.unregister_module(__name__) diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py new file mode 100644 index 00000000000..983d6dd471c --- /dev/null +++ b/intern/cycles/blender/addon/presets.py @@ -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. +# + +from bl_operators.presets import AddPresetBase +from bpy.types import Operator + +class AddPresetIntegrator(AddPresetBase, Operator): + '''Add an Integrator Preset''' + bl_idname = "render.cycles_integrator_preset_add" + bl_label = "Add Integrator Preset" + preset_menu = "CYCLES_MT_integrator_presets" + + preset_defines = [ + "cycles = bpy.context.scene.cycles" + ] + + preset_values = [ + "cycles.max_bounces", + "cycles.min_bounces", + "cycles.no_caustics", + ] + + preset_subdir = "cycles/integrator" + +def register(): + pass + +def unregister(): + pass + +if __name__ == "__main__": + register() + diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ec753590cce..dc102b97db8 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -18,11 +18,18 @@ import bpy -from bpy.types import Panel +from bpy.types import Panel, Menu from cycles import enums from cycles import engine +class CYCLES_MT_integrator_presets(Menu): + bl_label = "Integrator Presets" + preset_subdir = "cycles/integrator" + preset_operator = "script.execute_preset" + COMPAT_ENGINES = {'CYCLES'} + draw = Menu.draw_preset + class CyclesButtonsPanel(): bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" @@ -41,6 +48,11 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): scene = context.scene cscene = scene.cycles + + row = layout.row(align=True) + row.menu("CYCLES_MT_integrator_presets", text=bpy.types.CYCLES_MT_integrator_presets.bl_label) + row.operator("render.cycles_integrator_preset_add", text="", icon="ZOOMIN") + row.operator("render.cycles_integrator_preset_add", text="", icon="ZOOMOUT").remove_active = True split = layout.split() diff --git a/release/scripts/presets/cycles/integrator/direct_light.py b/release/scripts/presets/cycles/integrator/direct_light.py new file mode 100644 index 00000000000..0b791547628 --- /dev/null +++ b/release/scripts/presets/cycles/integrator/direct_light.py @@ -0,0 +1,6 @@ +import bpy +cycles = bpy.context.scene.cycles + +cycles.max_bounces = 0 +cycles.min_bounces = 0 +cycles.no_caustics = False -- cgit v1.2.3 From df625253ac0dec5be70701e2694c1e0358343fbf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 15:53:36 +0000 Subject: Cycles: * Add max diffuse/glossy/transmission bounces * Add separate min/max for transparent depth * Updated/added some presets that use these options * Add ray visibility options for objects, to hide them from camera/diffuse/glossy/transmission/shadow rays * Is singular ray output for light path node Details here: http://wiki.blender.org/index.php/Dev:2.5/Source/Render/Cycles/LightPaths --- intern/cycles/app/cycles_xml.cpp | 4 +- intern/cycles/blender/addon/presets.py | 5 + intern/cycles/blender/addon/properties.py | 58 +++++-- intern/cycles/blender/addon/ui.py | 56 ++++++- intern/cycles/blender/blender_object.cpp | 19 +++ intern/cycles/blender/blender_shader.cpp | 2 +- intern/cycles/blender/blender_sync.cpp | 14 +- intern/cycles/bvh/bvh.cpp | 43 ++++-- intern/cycles/bvh/bvh.h | 6 +- intern/cycles/bvh/bvh_build.cpp | 9 +- intern/cycles/bvh/bvh_node.h | 5 +- intern/cycles/kernel/kernel.cpp | 4 + intern/cycles/kernel/kernel_bvh.h | 38 +++-- intern/cycles/kernel/kernel_path.h | 172 ++++++++++++++------- intern/cycles/kernel/kernel_textures.h | 1 + intern/cycles/kernel/kernel_types.h | 23 ++- intern/cycles/kernel/osl/nodes/node_light_path.osl | 2 + intern/cycles/kernel/osl/osl_shader.cpp | 4 +- intern/cycles/kernel/svm/bsdf_transparent.h | 2 +- intern/cycles/kernel/svm/svm_light_path.h | 1 + intern/cycles/kernel/svm/svm_noise.h | 17 -- intern/cycles/kernel/svm/svm_texture.h | 4 +- intern/cycles/kernel/svm/svm_types.h | 1 + intern/cycles/render/integrator.cpp | 49 +++++- intern/cycles/render/integrator.h | 15 +- intern/cycles/render/mesh.cpp | 6 + intern/cycles/render/nodes.cpp | 11 +- intern/cycles/render/object.cpp | 1 + intern/cycles/render/object.h | 1 + intern/cycles/render/scene.h | 1 + .../presets/cycles/integrator/direct_light.py | 11 +- .../cycles/integrator/full_global_illumination.py | 11 ++ .../integrator/limited_global_illumination.py | 11 ++ .../nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 2 +- .../nodes/intern/SHD_nodes/SHD_light_path.c | 1 + 35 files changed, 457 insertions(+), 153 deletions(-) create mode 100644 release/scripts/presets/cycles/integrator/full_global_illumination.py create mode 100644 release/scripts/presets/cycles/integrator/limited_global_illumination.py diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp index 0e80cd80ece..7c3fb0b3625 100644 --- a/intern/cycles/app/cycles_xml.cpp +++ b/intern/cycles/app/cycles_xml.cpp @@ -255,8 +255,8 @@ static void xml_read_integrator(const XMLReadState& state, pugi::xml_node node) { Integrator *integrator = state.scene->integrator; - xml_read_int(&integrator->minbounce, node, "min_bounce"); - xml_read_int(&integrator->maxbounce, node, "max_bounce"); + xml_read_int(&integrator->min_bounce, node, "min_bounce"); + xml_read_int(&integrator->max_bounce, node, "max_bounce"); xml_read_bool(&integrator->no_caustics, node, "no_caustics"); xml_read_float(&integrator->blur_caustics, node, "blur_caustics"); } diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py index 983d6dd471c..e5243b633be 100644 --- a/intern/cycles/blender/addon/presets.py +++ b/intern/cycles/blender/addon/presets.py @@ -33,6 +33,11 @@ class AddPresetIntegrator(AddPresetBase, Operator): "cycles.max_bounces", "cycles.min_bounces", "cycles.no_caustics", + "cycles.diffuse_bounces", + "cycles.glossy_bounces", + "cycles.transmission_bounces", + "cycles.transparent_min_bounces", + "cycles.transparent_max_bounces" ] preset_subdir = "cycles/integrator" diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index b2d982fdabc..ca38520d28f 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -24,7 +24,7 @@ from cycles import enums class CyclesRenderSettings(bpy.types.PropertyGroup): @classmethod def register(cls): - bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles Render Settings", description="Cycles Render Settings") + bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles Render Settings", description="Cycles render settings") cls.device = EnumProperty(name="Device", description="Device to use for rendering", items=enums.devices, default="CPU") @@ -39,18 +39,31 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.preview_pause = BoolProperty(name="Pause Preview", description="Pause all viewport preview renders", default=False) - cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces", - default=3, min=0, max=1024) - cls.max_bounces = IntProperty(name="Max Bounces", description="Maximum number of bounces", - default=8, min=0, max=1024) cls.no_caustics = BoolProperty(name="No Caustics", description="Leave out caustics, resulting in a darker image with less noise", default=False) cls.blur_caustics = FloatProperty(name="Blur Caustics", description="Blur caustics to reduce noise", default=0.0, min=0.0, max=1.0) - cls.exposure = FloatProperty(name="Exposure", description="Image brightness scale", + cls.min_bounces = IntProperty(name="Min Bounces", description="Minimum number of bounces, setting this lower than the maximum enables probalistic path termination (faster but noisier)", + default=3, min=0, max=1024) + cls.max_bounces = IntProperty(name="Max Bounces", description="Total maximum number of bounces", + default=8, min=0, max=1024) + + cls.diffuse_bounces = IntProperty(name="Diffuse Bounces", description="Maximum number of diffuse reflection bounces, bounded by total maximum", + default=1024, min=0, max=1024) + cls.glossy_bounces = IntProperty(name="Glossy Bounces", description="Maximum number of glossy reflection bounces, bounded by total maximum", + default=1024, min=0, max=1024) + cls.transmission_bounces = IntProperty(name="Transmission Bounces", description="Maximum number of transmission bounces, bounded by total maximum", + default=1024, min=0, max=1024) + + cls.transparent_min_bounces = IntProperty(name="Transparent Min Bounces", description="Minimum number of transparent bounces, setting this lower than the maximum enables probalistic path termination (faster but noisier)", + default=8, min=0, max=1024) + cls.transparent_max_bounces = IntProperty(name="Transparent Max Bounces", description="Maximum number of transparent bounces", + default=8, min=0, max=1024) + + cls.film_exposure = FloatProperty(name="Exposure", description="Image brightness scale", default=1.0, min=0.0, max=10.0) - cls.transparent = BoolProperty(name="Transparent", description="World background is transparent", + cls.film_transparent = BoolProperty(name="Transparent", description="World background is transparent", default=False) cls.filter_type = EnumProperty(name="Filter Type", description="Pixel filter type", @@ -81,7 +94,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): class CyclesCameraSettings(bpy.types.PropertyGroup): @classmethod def register(cls): - bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles Camera Settings") + bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles camera settings") cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field", default=0.0, min=0.0, max=10.0) @@ -93,7 +106,7 @@ class CyclesCameraSettings(bpy.types.PropertyGroup): class CyclesMaterialSettings(bpy.types.PropertyGroup): @classmethod def register(cls): - bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles Material Settings") + bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles material settings") @classmethod def unregister(cls): @@ -102,18 +115,33 @@ class CyclesMaterialSettings(bpy.types.PropertyGroup): class CyclesWorldSettings(bpy.types.PropertyGroup): @classmethod def register(cls): - bpy.types.World.cycles = PointerProperty(type=cls, name="Cycles World Settings", description="Cycles World Settings") + bpy.types.World.cycles = PointerProperty(type=cls, name="Cycles World Settings", description="Cycles world settings") @classmethod def unregister(cls): del bpy.types.World.cycles +class CyclesVisibilitySettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Object.cycles_visibility = PointerProperty(type=cls, name="Cycles Visibility Settings", description="Cycles visibility settings") + + cls.camera = BoolProperty(name="Camera", description="Object visibility for camera rays", default=True) + cls.diffuse = BoolProperty(name="Diffuse", description="Object visibility for diffuse reflection rays", default=True) + cls.glossy = BoolProperty(name="Glossy", description="Object visibility for glossy reflection rays", default=True) + cls.transmission = BoolProperty(name="Transmission", description="Object visibility for transmission rays", default=True) + cls.shadow = BoolProperty(name="Shadow", description="Object visibility for shadow rays", default=True) + + @classmethod + def unregister(cls): + del bpy.types.Object.cycles_visibility + class CyclesMeshSettings(bpy.types.PropertyGroup): @classmethod def register(cls): - bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") - bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") - bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles Mesh Settings") + bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles mesh settings") + bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles mesh settings") + bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles Mesh Settings", description="Cycles mesh settings") cls.displacement_method = EnumProperty(name="Displacement Method", description="Method to use for the displacement", items=enums.displacement_methods, default="BUMP") @@ -124,12 +152,15 @@ class CyclesMeshSettings(bpy.types.PropertyGroup): @classmethod def unregister(cls): del bpy.types.Mesh.cycles + del bpy.types.Curve.cycles + del bpy.types.MetaBall.cycles def register(): bpy.utils.register_class(CyclesRenderSettings) bpy.utils.register_class(CyclesCameraSettings) bpy.utils.register_class(CyclesMaterialSettings) bpy.utils.register_class(CyclesWorldSettings) + bpy.utils.register_class(CyclesVisibilitySettings) bpy.utils.register_class(CyclesMeshSettings) def unregister(): @@ -138,4 +169,5 @@ def unregister(): bpy.utils.unregister_class(CyclesMaterialSettings) bpy.utils.unregister_class(CyclesWorldSettings) bpy.utils.unregister_class(CyclesMeshSettings) + bpy.utils.unregister_class(CyclesVisibilitySettings) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index dc102b97db8..001aacea3eb 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -42,6 +42,7 @@ class CyclesButtonsPanel(): class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): bl_label = "Integrator" + bl_options = {'DEFAULT_CLOSED'} def draw(self, context): layout = self.layout @@ -58,14 +59,28 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): col = split.column() sub = col.column(align=True) - sub.prop(cscene, "passes", text="Render Passes") - sub.prop(cscene, "preview_passes") - col.prop(cscene, "no_caustics") + sub.label(text="Passes:") + sub.prop(cscene, "passes", text="Render") + sub.prop(cscene, "preview_passes", text="Preview") + + sub = col.column(align=True) + sub.label("Tranparency:") + sub.prop(cscene, "transparent_max_bounces", text="Max") + sub.prop(cscene, "transparent_min_bounces", text="Min") + sub.prop(cscene, "no_caustics") col = split.column() + + sub = col.column(align=True) + sub.label(text="Bounces:") + sub.prop(cscene, "max_bounces", text="Max") + sub.prop(cscene, "min_bounces", text="Min") + sub = col.column(align=True) - sub.prop(cscene, "max_bounces") - sub.prop(cscene, "min_bounces") + sub.label(text="Light Paths:") + sub.prop(cscene, "diffuse_bounces", text="Diffuse") + sub.prop(cscene, "glossy_bounces", text="Glossy") + sub.prop(cscene, "transmission_bounces", text="Transmission") #row = col.row() #row.prop(cscene, "blur_caustics") @@ -83,8 +98,8 @@ class CyclesRender_PT_film(CyclesButtonsPanel, Panel): split = layout.split() col = split.column(); - col.prop(cscene, "exposure") - col.prop(cscene, "transparent") + col.prop(cscene, "film_exposure") + col.prop(cscene, "film_transparent") col = split.column() sub = col.column(align=True) @@ -233,6 +248,33 @@ class Cycles_PT_mesh_displacement(CyclesButtonsPanel, Panel): layout.prop(cdata, "use_subdivision"); layout.prop(cdata, "dicing_rate"); +class CyclesObject_PT_ray_visibility(CyclesButtonsPanel, Panel): + bl_label = "Ray Visibility" + bl_context = "object" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + ob = context.object + return ob and ob.type in ('MESH', 'CURVE', 'CURVE', 'SURFACE', 'FONT', 'META') # todo: 'LAMP' + + def draw(self, context): + layout = self.layout + + ob = context.object + visibility = ob.cycles_visibility + + split = layout.split() + + col = split.column() + col.prop(visibility, "camera") + col.prop(visibility, "diffuse") + col.prop(visibility, "glossy") + + col = split.column() + col.prop(visibility, "transmission") + col.prop(visibility, "shadow") + def find_node(material, nodetype): if material and material.node_tree: ntree = material.node_tree diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 52081cc0b60..f1ba2dba2f5 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -63,6 +63,20 @@ bool BlenderSync::object_is_light(BL::Object b_ob) return (b_ob_data && b_ob_data.is_a(&RNA_Lamp)); } +static uint object_ray_visibility(BL::Object b_ob) +{ + PointerRNA cvisibility = RNA_pointer_get(&b_ob.ptr, "cycles_visibility"); + uint flag = 0; + + flag |= get_boolean(cvisibility, "camera")? PATH_RAY_CAMERA: 0; + flag |= get_boolean(cvisibility, "diffuse")? PATH_RAY_DIFFUSE: 0; + flag |= get_boolean(cvisibility, "glossy")? PATH_RAY_GLOSSY: 0; + flag |= get_boolean(cvisibility, "transmission")? PATH_RAY_TRANSMIT: 0; + flag |= get_boolean(cvisibility, "shadow")? PATH_RAY_SHADOW: 0; + + return flag; +} + /* Light */ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm) @@ -115,6 +129,11 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, if(object_map.sync(&object, b_ob, b_parent, key)) { object->name = b_ob.name(); object->tfm = tfm; + + object->visibility = object_ray_visibility(b_ob); + if(b_parent.ptr.data != b_ob.ptr.data) + object->visibility &= object_ray_visibility(b_parent); + object->tag_update(scene); object_updated = true; } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 9024de092b7..4e19ee82f77 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -599,7 +599,7 @@ void BlenderSync::sync_world() } PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); - background->transparent = get_boolean(cscene, "transparent"); + background->transparent = get_boolean(cscene, "film_transparent"); if(background->modified(prevbackground)) background->tag_update(scene); diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index c579253336f..40ec4838dad 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -131,8 +131,16 @@ void BlenderSync::sync_integrator() Integrator *integrator = scene->integrator; Integrator previntegrator = *integrator; - integrator->minbounce = get_int(cscene, "min_bounces"); - integrator->maxbounce = get_int(cscene, "max_bounces"); + integrator->min_bounce = get_int(cscene, "min_bounces"); + integrator->max_bounce = get_int(cscene, "max_bounces"); + + integrator->max_diffuse_bounce = get_int(cscene, "diffuse_bounces"); + integrator->max_glossy_bounce = get_int(cscene, "glossy_bounces"); + integrator->max_transmission_bounce = get_int(cscene, "transmission_bounces"); + + integrator->transparent_max_bounce = get_int(cscene, "transparent_max_bounces"); + integrator->transparent_min_bounce = get_int(cscene, "transparent_min_bounces"); + integrator->no_caustics = get_boolean(cscene, "no_caustics"); integrator->blur_caustics = get_float(cscene, "blur_caustics"); @@ -149,7 +157,7 @@ void BlenderSync::sync_film() Film *film = scene->film; Film prevfilm = *film; - film->exposure = get_float(cscene, "exposure"); + film->exposure = get_float(cscene, "film_exposure"); if(film->modified(prevfilm)) film->tag_update(scene); diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index 664bdd98b1f..9bd748157bf 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -84,6 +84,7 @@ bool BVH::cache_read(CacheData& key) value.read(pack.nodes); value.read(pack.object_node); value.read(pack.tri_woop); + value.read(pack.prim_visibility); value.read(pack.prim_index); value.read(pack.prim_object); value.read(pack.is_leaf); @@ -103,6 +104,7 @@ void BVH::cache_write(CacheData& key) value.add(pack.nodes); value.add(pack.object_node); value.add(pack.tri_woop); + value.add(pack.prim_visibility); value.add(pack.prim_index); value.add(pack.prim_object); value.add(pack.is_leaf); @@ -236,6 +238,8 @@ void BVH::pack_triangles() pack.tri_woop.clear(); pack.tri_woop.resize(tidx_size * nsize); + pack.prim_visibility.clear(); + pack.prim_visibility.resize(tidx_size); for(unsigned int i = 0; i < tidx_size; i++) { if(pack.prim_index[i] != -1) { @@ -243,6 +247,10 @@ void BVH::pack_triangles() pack_triangle(i, woop); memcpy(&pack.tri_woop[i * nsize], woop, sizeof(float4)*3); + + int tob = pack.prim_object[i]; + Object *ob = objects[tob]; + pack.prim_visibility[i] = ob->visibility; } } } @@ -292,12 +300,14 @@ void BVH::pack_instances(size_t nodes_size) pack.prim_index.resize(prim_index_size); pack.prim_object.resize(prim_index_size); + pack.prim_visibility.resize(prim_index_size); pack.tri_woop.resize(tri_woop_size); pack.nodes.resize(nodes_size); pack.object_node.resize(objects.size()); int *pack_prim_index = &pack.prim_index[0]; int *pack_prim_object = &pack.prim_object[0]; + uint *pack_prim_visibility = &pack.prim_visibility[0]; float4 *pack_tri_woop = &pack.tri_woop[0]; int4 *pack_nodes = &pack.nodes[0]; @@ -327,9 +337,11 @@ void BVH::pack_instances(size_t nodes_size) { size_t bvh_prim_index_size = bvh->pack.prim_index.size(); int *bvh_prim_index = &bvh->pack.prim_index[0]; + uint *bvh_prim_visibility = &bvh->pack.prim_visibility[0]; for(size_t i = 0; i < bvh_prim_index_size; i++) { pack_prim_index[pack_prim_index_offset] = bvh_prim_index[i] + mesh_tri_offset; + pack_prim_visibility[pack_prim_index_offset] = bvh_prim_visibility[i] + mesh_tri_offset; pack_prim_object[pack_prim_index_offset] = 0; // unused for instances pack_prim_index_offset++; } @@ -394,25 +406,25 @@ void RegularBVH::pack_leaf(const BVHStackEntry& e, const LeafNode *leaf) { if(leaf->num_triangles() == 1 && pack.prim_index[leaf->m_lo] == -1) /* object */ - pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, ~(leaf->m_lo), 0); + pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, ~(leaf->m_lo), 0, leaf->m_visibility, leaf->m_visibility); else /* triangle */ - pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, leaf->m_lo, leaf->m_hi); + pack_node(e.idx, leaf->m_bounds, leaf->m_bounds, leaf->m_lo, leaf->m_hi, leaf->m_visibility, leaf->m_visibility); } void RegularBVH::pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1) { - pack_node(e.idx, e0.node->m_bounds, e1.node->m_bounds, e0.encodeIdx(), e1.encodeIdx()); + pack_node(e.idx, e0.node->m_bounds, e1.node->m_bounds, e0.encodeIdx(), e1.encodeIdx(), e0.node->m_visibility, e1.node->m_visibility); } -void RegularBVH::pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1) +void RegularBVH::pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1, uint visibility0, uint visibility1) { int4 data[BVH_NODE_SIZE] = { make_int4(__float_as_int(b0.min.x), __float_as_int(b0.max.x), __float_as_int(b0.min.y), __float_as_int(b0.max.y)), make_int4(__float_as_int(b1.min.x), __float_as_int(b1.max.x), __float_as_int(b1.min.y), __float_as_int(b1.max.y)), make_int4(__float_as_int(b0.min.z), __float_as_int(b0.max.z), __float_as_int(b1.min.z), __float_as_int(b1.max.z)), - make_int4(c0, c1, 0, 0) + make_int4(c0, c1, visibility0, visibility1) }; memcpy(&pack.nodes[idx * BVH_NODE_SIZE], data, sizeof(int4)*BVH_NODE_SIZE); @@ -467,10 +479,11 @@ void RegularBVH::refit_nodes() assert(!params.top_level); BoundBox bbox; - refit_node(0, (pack.is_leaf[0])? true: false, bbox); + uint visibility = 0; + refit_node(0, (pack.is_leaf[0])? true: false, bbox, visibility); } -void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox) +void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility) { int4 *data = &pack.nodes[idx*4]; @@ -499,21 +512,25 @@ void RegularBVH::refit_node(int idx, bool leaf, BoundBox& bbox) bbox.grow(vpos[vidx[1]]); bbox.grow(vpos[vidx[2]]); } + + visibility |= ob->visibility; } - pack_node(idx, bbox, bbox, c0, c1); + pack_node(idx, bbox, bbox, c0, c1, visibility, visibility); } else { /* refit inner node, set bbox from children */ BoundBox bbox0, bbox1; + uint visibility0 = 0, visibility1 = 0; - refit_node((c0 < 0)? -c0-1: c0, (c0 < 0), bbox0); - refit_node((c1 < 0)? -c1-1: c1, (c1 < 0), bbox1); + refit_node((c0 < 0)? -c0-1: c0, (c0 < 0), bbox0, visibility0); + refit_node((c1 < 0)? -c1-1: c1, (c1 < 0), bbox1, visibility1); + + pack_node(idx, bbox0, bbox1, c0, c1, visibility0, visibility1); bbox.grow(bbox0); bbox.grow(bbox1); - - pack_node(idx, bbox0, bbox1, c0, c1); + visibility = visibility0|visibility1; } } @@ -523,6 +540,8 @@ QBVH::QBVH(const BVHParams& params_, const vector& objects_) : BVH(params_, objects_) { params.use_qbvh = true; + + /* todo: use visibility */ } void QBVH::pack_leaf(const BVHStackEntry& e, const LeafNode *leaf) diff --git a/intern/cycles/bvh/bvh.h b/intern/cycles/bvh/bvh.h index 79e46d6a13c..e502af72335 100644 --- a/intern/cycles/bvh/bvh.h +++ b/intern/cycles/bvh/bvh.h @@ -51,6 +51,8 @@ struct PackedBVH { array object_node; /* precomputed triangle intersection data, one triangle is 4x float4 */ array tri_woop; + /* visibility visibilitys for primitives */ + array prim_visibility; /* mapping from BVH primitive index to true primitive index, as primitives may be duplicated due to spatial splits. -1 for instances. */ array prim_index; @@ -121,11 +123,11 @@ protected: void pack_nodes(const array& prims, const BVHNode *root); void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf); void pack_inner(const BVHStackEntry& e, const BVHStackEntry& e0, const BVHStackEntry& e1); - void pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1); + void pack_node(int idx, const BoundBox& b0, const BoundBox& b1, int c0, int c1, uint visibility0, uint visibility1); /* refit */ void refit_nodes(); - void refit_node(int idx, bool leaf, BoundBox& bbox); + void refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility); }; /* QBVH diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index 3e47cb75014..d3e84e11d53 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -218,12 +218,13 @@ BVHNode *BVHBuild::create_object_leaf_nodes(const Reference *ref, int num) { if(num == 0) { BoundBox bounds; - return new LeafNode(bounds, 0, 0); + return new LeafNode(bounds, 0, 0, 0); } else if(num == 1) { prim_index.push_back(ref[0].prim_index); prim_object.push_back(ref[0].prim_object); - return new LeafNode(ref[0].bounds, prim_index.size()-1, prim_index.size()); + uint visibility = objects[ref[0].prim_object]->visibility; + return new LeafNode(ref[0].bounds, visibility, prim_index.size()-1, prim_index.size()); } else { int mid = num/2; @@ -244,12 +245,14 @@ BVHNode* BVHBuild::create_leaf_node(const NodeSpec& spec) vector& p_object = prim_object; BoundBox bounds; int num = 0; + uint visibility = 0; for(int i = 0; i < spec.num; i++) { if(references.back().prim_index != -1) { p_index.push_back(references.back().prim_index); p_object.push_back(references.back().prim_object); bounds.grow(references.back().bounds); + visibility |= objects[references.back().prim_object]->visibility; references.pop_back(); num++; } @@ -258,7 +261,7 @@ BVHNode* BVHBuild::create_leaf_node(const NodeSpec& spec) BVHNode *leaf = NULL; if(num > 0) { - leaf = new LeafNode(bounds, p_index.size() - num, p_index.size()); + leaf = new LeafNode(bounds, visibility, p_index.size() - num, p_index.size()); if(num == spec.num) return leaf; diff --git a/intern/cycles/bvh/bvh_node.h b/intern/cycles/bvh/bvh_node.h index f8f0ffecd95..5e0a17a1193 100644 --- a/intern/cycles/bvh/bvh_node.h +++ b/intern/cycles/bvh/bvh_node.h @@ -52,6 +52,7 @@ public: float getArea() const { return m_bounds.area(); } BoundBox m_bounds; + uint m_visibility; // Subtree functions int getSubtreeSize(BVH_STAT stat=BVH_STAT_NODE_COUNT) const; @@ -65,6 +66,7 @@ public: InnerNode(const BoundBox& bounds, BVHNode* child0, BVHNode* child1) { m_bounds = bounds; + m_visibility = child0->m_visibility|child1->m_visibility; children[0] = child0; children[1] = child1; } @@ -80,9 +82,10 @@ public: class LeafNode : public BVHNode { public: - LeafNode(const BoundBox& bounds, int lo, int hi) + LeafNode(const BoundBox& bounds, uint visibility, int lo, int hi) { m_bounds = bounds; + m_visibility = visibility; m_lo = lo; m_hi = hi; } diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp index d9ba237d964..01682d11f33 100644 --- a/intern/cycles/kernel/kernel.cpp +++ b/intern/cycles/kernel/kernel.cpp @@ -89,6 +89,10 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t kg->__tri_woop.data = (float4*)mem; kg->__tri_woop.width = width; } + else if(strcmp(name, "__prim_visibility") == 0) { + kg->__prim_visibility.data = (uint*)mem; + kg->__prim_visibility.width = width; + } else if(strcmp(name, "__prim_index") == 0) { kg->__prim_index.data = (uint*)mem; kg->__prim_index.width = width; diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h index 4dea540e31c..df7663b5555 100644 --- a/intern/cycles/kernel/kernel_bvh.h +++ b/intern/cycles/kernel/kernel_bvh.h @@ -78,7 +78,7 @@ __device_inline void bvh_instance_pop(KernelGlobals *kg, int object, const Ray * __device_inline void bvh_node_intersect(KernelGlobals *kg, bool *traverseChild0, bool *traverseChild1, bool *closestChild1, int *nodeAddr0, int *nodeAddr1, - float3 P, float3 idir, float t, int nodeAddr) + float3 P, float3 idir, float t, uint visibility, int nodeAddr) { /* fetch node data */ float4 n0xy = kernel_tex_fetch(__bvh_nodes, nodeAddr*BVH_NODE_SIZE+0); @@ -111,8 +111,14 @@ __device_inline void bvh_node_intersect(KernelGlobals *kg, float c1max = min4(max(c1lox, c1hix), max(c1loy, c1hiy), max(c1loz, c1hiz), t); /* decide which nodes to traverse next */ +#ifdef __VISIBILITY_FLAG__ + /* this visibility test gives a 5% performance hit, how to solve? */ + *traverseChild0 = (c0max >= c0min) && (__float_as_int(cnodes.z) & visibility); + *traverseChild1 = (c1max >= c1min) && (__float_as_int(cnodes.w) & visibility); +#else *traverseChild0 = (c0max >= c0min); *traverseChild1 = (c1max >= c1min); +#endif *nodeAddr0 = __float_as_int(cnodes.x); *nodeAddr1 = __float_as_int(cnodes.y); @@ -121,7 +127,8 @@ __device_inline void bvh_node_intersect(KernelGlobals *kg, } /* Sven Woop's algorithm */ -__device_inline void bvh_triangle_intersect(KernelGlobals *kg, Intersection *isect, float3 P, float3 idir, int object, int triAddr) +__device_inline void bvh_triangle_intersect(KernelGlobals *kg, Intersection *isect, + float3 P, float3 idir, uint visibility, int object, int triAddr) { /* compute and check intersection t-value */ float4 v00 = kernel_tex_fetch(__tri_woop, triAddr*TRI_NODE_SIZE+0); @@ -146,18 +153,25 @@ __device_inline void bvh_triangle_intersect(KernelGlobals *kg, Intersection *ise float v = Oy + t*Dy; if(v >= 0.0f && u + v <= 1.0f) { - /* record intersection */ - isect->prim = triAddr; - isect->object = object; - isect->u = u; - isect->v = v; - isect->t = t; +#ifdef __VISIBILITY_FLAG__ + /* visibility flag test. we do it here under the assumption + that most triangles are culled by node flags */ + if(kernel_tex_fetch(__prim_visibility, triAddr) & visibility) +#endif + { + /* record intersection */ + isect->prim = triAddr; + isect->object = object; + isect->u = u; + isect->v = v; + isect->t = t; + } } } } } -__device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const bool isshadowray, Intersection *isect) +__device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const uint visibility, Intersection *isect) { /* traversal stack in CUDA thread-local memory */ int traversalStack[BVH_STACK_SIZE]; @@ -191,7 +205,7 @@ __device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const bo bvh_node_intersect(kg, &traverseChild0, &traverseChild1, &closestChild1, &nodeAddr, &nodeAddrChild1, - P, idir, isect->t, nodeAddr); + P, idir, isect->t, visibility, nodeAddr); if(traverseChild0 != traverseChild1) { /* one child was intersected */ @@ -236,10 +250,10 @@ __device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const bo /* triangle intersection */ while(primAddr < primAddr2) { /* intersect ray against triangle */ - bvh_triangle_intersect(kg, isect, P, idir, object, primAddr); + bvh_triangle_intersect(kg, isect, P, idir, visibility, object, primAddr); /* shadow ray early termination */ - if(isshadowray && isect->prim != ~0) + if(visibility == PATH_RAY_SHADOW && isect->prim != ~0) return true; primAddr++; diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index d4ed4651751..7f7aaad3270 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -58,51 +58,108 @@ __device float3 path_terminate_modified_throughput(KernelGlobals *kg, __global f } #endif -__device float path_terminate_probability(KernelGlobals *kg, int bounce, const float3 throughput) -{ - if(bounce >= kernel_data.integrator.maxbounce) - return 0.0f; - else if(bounce <= kernel_data.integrator.minbounce) - return 1.0f; +typedef struct PathState { + uint flag; + int bounce; - return average(throughput); + int diffuse_bounce; + int glossy_bounce; + int transmission_bounce; + int transparent_bounce; +} PathState; + +__device_inline void path_state_init(PathState *state) +{ + state->flag = PATH_RAY_CAMERA|PATH_RAY_SINGULAR; + state->bounce = 0; + state->diffuse_bounce = 0; + state->glossy_bounce = 0; + state->transmission_bounce = 0; + state->transparent_bounce = 0; } -__device int path_flag_from_label(int path_flag, int label) +__device_inline void path_state_next(PathState *state, int label) { - /* reflect/transmit */ + /* ray through transparent keeps same flags from previous ray and is + not counted as a regular bounce, transparent has separate max */ + if(label & LABEL_TRANSPARENT) { + state->flag |= PATH_RAY_TRANSPARENT; + state->transparent_bounce++; + + return; + } + + state->bounce++; + + /* reflection/transmission */ if(label & LABEL_REFLECT) { - path_flag |= PATH_RAY_REFLECT; - path_flag &= ~PATH_RAY_TRANSMIT; + state->flag |= PATH_RAY_REFLECT; + state->flag &= ~(PATH_RAY_TRANSMIT|PATH_RAY_CAMERA|PATH_RAY_TRANSPARENT); + + if(label & LABEL_DIFFUSE) + state->diffuse_bounce++; + else + state->glossy_bounce++; } else { kernel_assert(label & LABEL_TRANSMIT); - path_flag |= PATH_RAY_TRANSMIT; - path_flag &= ~PATH_RAY_REFLECT; + state->flag |= PATH_RAY_TRANSMIT; + state->flag &= ~(PATH_RAY_REFLECT|PATH_RAY_CAMERA|PATH_RAY_TRANSPARENT); + + state->transmission_bounce++; } /* diffuse/glossy/singular */ if(label & LABEL_DIFFUSE) { - path_flag |= PATH_RAY_DIFFUSE; - path_flag &= ~(PATH_RAY_GLOSSY|PATH_RAY_SINGULAR); + state->flag |= PATH_RAY_DIFFUSE; + state->flag &= ~(PATH_RAY_GLOSSY|PATH_RAY_SINGULAR); } else if(label & LABEL_GLOSSY) { - path_flag |= PATH_RAY_GLOSSY; - path_flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_SINGULAR); + state->flag |= PATH_RAY_GLOSSY; + state->flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_SINGULAR); } else { - kernel_assert(label & (LABEL_SINGULAR|LABEL_STRAIGHT)); + kernel_assert(label & LABEL_SINGULAR); + + state->flag |= PATH_RAY_GLOSSY|PATH_RAY_SINGULAR; + state->flag &= ~PATH_RAY_DIFFUSE; + } +} + +__device_inline uint path_state_ray_visibility(PathState *state) +{ + uint flag = state->flag; + + /* for visibility, diffuse/glossy are for reflection only */ + if(flag & PATH_RAY_TRANSMIT) + flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_GLOSSY); - path_flag |= PATH_RAY_SINGULAR; - path_flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_GLOSSY); + return flag; +} + +__device_inline float path_state_terminate_probability(KernelGlobals *kg, PathState *state, const float3 throughput) +{ + if(state->flag & PATH_RAY_TRANSPARENT) { + /* transparent rays treated separately */ + if(state->transparent_bounce >= kernel_data.integrator.transparent_max_bounce) + return 0.0f; + else if(state->transparent_bounce <= kernel_data.integrator.transparent_min_bounce) + return 1.0f; } - - /* ray through transparent is still camera ray */ - if(!(label & LABEL_STRAIGHT)) - path_flag &= ~PATH_RAY_CAMERA; - - return path_flag; + else { + /* other rays */ + if((state->bounce >= kernel_data.integrator.max_bounce) || + (state->diffuse_bounce >= kernel_data.integrator.max_diffuse_bounce) || + (state->glossy_bounce >= kernel_data.integrator.max_glossy_bounce) || + (state->transmission_bounce >= kernel_data.integrator.max_transmission_bounce)) + return 0.0f; + else if(state->bounce <= kernel_data.integrator.min_bounce) + return 1.0f; + } + + /* probalistic termination */ + return average(throughput); } __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) @@ -114,24 +171,27 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray #ifdef __EMISSION__ float ray_pdf = 0.0f; #endif - int path_flag = PATH_RAY_CAMERA|PATH_RAY_SINGULAR; + PathState state; int rng_offset = PRNG_BASE_NUM; + path_state_init(&state); + /* path iteration */ - for(int bounce = 0; ; bounce++, rng_offset += PRNG_BOUNCE_NUM) { + for(;; rng_offset += PRNG_BOUNCE_NUM) { /* intersect scene */ Intersection isect; + uint visibility = path_state_ray_visibility(&state); - if(!scene_intersect(kg, &ray, false, &isect)) { + if(!scene_intersect(kg, &ray, visibility, &isect)) { /* eval background shader if nothing hit */ - if(kernel_data.background.transparent && (path_flag & PATH_RAY_CAMERA)) { + if(kernel_data.background.transparent && (state.flag & PATH_RAY_CAMERA)) { Ltransparent += average(throughput); } else { #ifdef __BACKGROUND__ ShaderData sd; shader_setup_from_background(kg, &sd, &ray); - L += throughput*shader_eval_background(kg, &sd, path_flag); + L += throughput*shader_eval_background(kg, &sd, state.flag); shader_release(kg, &sd); #else L += make_float3(0.8f, 0.8f, 0.8f); @@ -145,10 +205,10 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ShaderData sd; shader_setup_from_ray(kg, &sd, &isect, &ray); float rbsdf = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF); - shader_eval_surface(kg, &sd, rbsdf, path_flag); + shader_eval_surface(kg, &sd, rbsdf, state.flag); #ifdef __HOLDOUT__ - if((sd.flag & SD_HOLDOUT) && (path_flag & PATH_RAY_CAMERA)) { + if((sd.flag & SD_HOLDOUT) && (state.flag & PATH_RAY_CAMERA)) { float3 holdout_weight = shader_holdout_eval(kg, &sd); if(kernel_data.background.transparent) @@ -160,11 +220,25 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray /* emission */ if(kernel_data.integrator.use_emission) { if(sd.flag & SD_EMISSION) - L += throughput*indirect_emission(kg, &sd, isect.t, path_flag, ray_pdf); + L += throughput*indirect_emission(kg, &sd, isect.t, state.flag, ray_pdf); + } +#endif + + /* path termination. this is a strange place to put the termination, it's + mainly due to the mixed in MIS that we use. gives too many unneeded + shader evaluations, only need emission if we are going to terminate */ + float probability = path_state_terminate_probability(kg, &state, throughput); + float terminate = path_rng(kg, rng, pass, rng_offset + PRNG_TERMINATE); + if(terminate >= probability) + break; + + throughput /= probability; + +#ifdef __EMISSION__ + if(kernel_data.integrator.use_emission) { /* sample illumination from lights to find path contribution */ - if((sd.flag & SD_BSDF_HAS_EVAL) && - bounce != kernel_data.integrator.maxbounce) { + if(sd.flag & SD_BSDF_HAS_EVAL) { float light_t = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT); float light_o = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_F); float light_u = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_U); @@ -173,9 +247,11 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray Ray light_ray; float3 light_L; + /* todo: use visbility flag to skip lights */ + if(direct_emission(kg, &sd, light_t, light_o, light_u, light_v, &light_ray, &light_L)) { /* trace shadow ray */ - if(!scene_intersect(kg, &light_ray, true, &isect)) + if(!scene_intersect(kg, &light_ray, PATH_RAY_SHADOW, &isect)) L += throughput*light_L; } } @@ -183,10 +259,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray #endif /* no BSDF? we can stop here */ - if(!(sd.flag & SD_BSDF)) { - path_flag &= ~PATH_RAY_CAMERA; + if(!(sd.flag & SD_BSDF)) break; - } /* sample BSDF */ float bsdf_pdf; @@ -202,10 +276,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray shader_release(kg, &sd); - if(bsdf_pdf == 0.0f || is_zero(bsdf_eval)) { - path_flag &= ~PATH_RAY_CAMERA; + if(bsdf_pdf == 0.0f || is_zero(bsdf_eval)) break; - } /* modify throughput */ throughput *= bsdf_eval/bsdf_pdf; @@ -215,18 +287,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray_pdf = bsdf_pdf; #endif - path_flag = path_flag_from_label(path_flag, label); - - /* path termination */ - float probability = path_terminate_probability(kg, bounce, throughput); - float terminate = path_rng(kg, rng, pass, rng_offset + PRNG_TERMINATE); - - if(terminate >= probability) { - path_flag &= ~PATH_RAY_CAMERA; - break; - } - - throughput /= probability; + /* update path state */ + path_state_next(&state, label); /* setup ray */ ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng); diff --git a/intern/cycles/kernel/kernel_textures.h b/intern/cycles/kernel/kernel_textures.h index dd4566ec184..19635b2664c 100644 --- a/intern/cycles/kernel/kernel_textures.h +++ b/intern/cycles/kernel/kernel_textures.h @@ -11,6 +11,7 @@ /* bvh */ KERNEL_TEX(float4, texture_float4, __bvh_nodes) KERNEL_TEX(float4, texture_float4, __tri_woop) +KERNEL_TEX(uint, texture_uint, __prim_visibility) KERNEL_TEX(uint, texture_uint, __prim_index) KERNEL_TEX(uint, texture_uint, __prim_object) KERNEL_TEX(uint, texture_uint, __object_node) diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 06581d593e4..5881f090944 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -34,11 +34,14 @@ CCL_NAMESPACE_BEGIN #define __BACKGROUND__ #define __EMISSION__ #define __CAUSTICS_TRICKS__ +#define __VISIBILITY_FLAG__ + #ifndef __KERNEL_OPENCL__ #define __SVM__ #define __TEXTURES__ #define __HOLDOUT__ #endif + #define __RAY_DIFFERENTIALS__ #define __CAMERA_CLIPPING__ #define __INTERSECTION_REFINE__ @@ -76,7 +79,8 @@ enum PathRayFlag { PATH_RAY_TRANSMIT = 8, PATH_RAY_DIFFUSE = 16, PATH_RAY_GLOSSY = 32, - PATH_RAY_SINGULAR = 64 + PATH_RAY_SINGULAR = 64, + PATH_RAY_TRANSPARENT = 128 }; /* Bidirectional Path Tracing */ @@ -115,7 +119,7 @@ typedef enum ClosureLabel { LABEL_DIFFUSE = 128, LABEL_GLOSSY = 256, LABEL_SINGULAR = 512, - LABEL_STRAIGHT = 1024, + LABEL_TRANSPARENT = 1024, LABEL_STOP = 2048 } ClosureLabel; @@ -351,9 +355,18 @@ typedef struct KernelIntegrator { float pdf_triangles; float pdf_lights; - /* path tracing */ - int minbounce; - int maxbounce; + /* bounces */ + int min_bounce; + int max_bounce; + + int max_diffuse_bounce; + int max_glossy_bounce; + int max_transmission_bounce; + + /* transparent */ + int transparent_min_bounce; + int transparent_max_bounce; + int transparent_shadows; /* caustics */ int no_caustics; diff --git a/intern/cycles/kernel/osl/nodes/node_light_path.osl b/intern/cycles/kernel/osl/nodes/node_light_path.osl index 081640428ab..0ead20bf2bb 100644 --- a/intern/cycles/kernel/osl/nodes/node_light_path.osl +++ b/intern/cycles/kernel/osl/nodes/node_light_path.osl @@ -23,6 +23,7 @@ shader node_light_path( output float IsShadowRay = 0.0, output float IsDiffuseRay = 0.0, output float IsGlossyRay = 0.0, + output float IsSingularRay = 0.0, output float IsReflectionRay = 0.0, output float IsTransmissionRay = 0.0) { @@ -30,6 +31,7 @@ shader node_light_path( IsShadowRay = raytype("shadow"); IsDiffuseRay = raytype("diffuse"); IsGlossyRay = raytype("glossy"); + IsSingularRay = raytype("singular"); IsReflectionRay = raytype("reflection"); IsTransmissionRay = raytype("refraction"); } diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 007d14b526b..73ff4f41423 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -89,7 +89,7 @@ static void shaderdata_to_shaderglobals(KernelGlobals *kg, ShaderData *sd, globals->surfacearea = (sd->object == ~0)? 1.0f: object_surface_area(kg, sd->object); /* booleans */ - globals->raytype = path_flag; + globals->raytype = path_flag; /* todo: add our own ray types */ globals->backfacing = (sd->flag & SD_BACKFACING); /* don't know yet if we need this */ @@ -437,7 +437,7 @@ int OSLShader::bsdf_sample(const ShaderData *sd, float randu, float randv, float else if(uscattering == OSL::Labels::SINGULAR) label |= LABEL_SINGULAR; else - label |= LABEL_STRAIGHT; + label |= LABEL_TRANSPARENT; /* eval + pdf */ eval *= flat->weight; diff --git a/intern/cycles/kernel/svm/bsdf_transparent.h b/intern/cycles/kernel/svm/bsdf_transparent.h index 30288bf251d..1674f04955e 100644 --- a/intern/cycles/kernel/svm/bsdf_transparent.h +++ b/intern/cycles/kernel/svm/bsdf_transparent.h @@ -70,7 +70,7 @@ __device int bsdf_transparent_sample(const ShaderData *sd, float randu, float ra #endif *pdf = 1; *eval = make_float3(1, 1, 1); - return LABEL_TRANSMIT|LABEL_STRAIGHT; + return LABEL_TRANSMIT|LABEL_TRANSPARENT; } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_light_path.h b/intern/cycles/kernel/svm/svm_light_path.h index d6413d1569e..1b13fd93a0f 100644 --- a/intern/cycles/kernel/svm/svm_light_path.h +++ b/intern/cycles/kernel/svm/svm_light_path.h @@ -29,6 +29,7 @@ __device void svm_node_light_path(ShaderData *sd, float *stack, uint type, uint case NODE_LP_shadow: info = (path_flag & PATH_RAY_SHADOW)? 1.0f: 0.0f; break; case NODE_LP_diffuse: info = (path_flag & PATH_RAY_DIFFUSE)? 1.0f: 0.0f; break; case NODE_LP_glossy: info = (path_flag & PATH_RAY_GLOSSY)? 1.0f: 0.0f; break; + case NODE_LP_singular: info = (path_flag & PATH_RAY_SINGULAR)? 1.0f: 0.0f; break; case NODE_LP_reflection: info = (path_flag & PATH_RAY_REFLECT)? 1.0f: 0.0f; break; case NODE_LP_transmission: info = (path_flag & PATH_RAY_TRANSMIT)? 1.0f: 0.0f; break; case NODE_LP_backfacing: info = (sd->flag & SD_BACKFACING)? 1.0f: 0.0f; break; diff --git a/intern/cycles/kernel/svm/svm_noise.h b/intern/cycles/kernel/svm/svm_noise.h index 72ff353abb4..28ad028ad0e 100644 --- a/intern/cycles/kernel/svm/svm_noise.h +++ b/intern/cycles/kernel/svm/svm_noise.h @@ -209,22 +209,5 @@ __device float psnoise(float3 p, float3 pperiod) return perlin_periodic(p.x, p.y, p.z, pperiod); } -/* turbulence */ -__device_noinline float turbulence(float3 P, int oct, bool hard) -{ - float amp = 1.0f, fscale = 1.0f, sum = 0.0f; - int i; - - for(i=0; i<=oct; i++, amp *= 0.5f, fscale *= 2.0f) { - float t = noise(fscale*P); - if(hard) t = fabsf(2.0f*t - 1.0f); - sum += t * amp; - } - - sum *= ((float)(1<data.integrator; /* integrator parameters */ - kintegrator->minbounce = minbounce + 1; - kintegrator->maxbounce = maxbounce + 1; + kintegrator->max_bounce = max_bounce + 1; + if(probalistic_termination) + kintegrator->min_bounce = min_bounce + 1; + else + kintegrator->min_bounce = kintegrator->max_bounce; + + kintegrator->max_diffuse_bounce = max_diffuse_bounce + 1; + kintegrator->max_glossy_bounce = max_glossy_bounce + 1; + kintegrator->max_transmission_bounce = max_transmission_bounce + 1; + + kintegrator->transparent_max_bounce = transparent_max_bounce + 1; + if(transparent_probalistic) + kintegrator->transparent_min_bounce = transparent_min_bounce + 1; + else + kintegrator->transparent_min_bounce = kintegrator->transparent_max_bounce; + + kintegrator->transparent_shadows = transparent_shadows; + kintegrator->no_caustics = no_caustics; kintegrator->blur_caustics = blur_caustics; /* sobol directions table */ - int dimensions = PRNG_BASE_NUM + (maxbounce + 2)*PRNG_BOUNCE_NUM; + int dimensions = PRNG_BASE_NUM + (max_bounce + 2)*PRNG_BOUNCE_NUM; uint *directions = dscene->sobol_directions.resize(SOBOL_BITS*dimensions); sobol_generate_direction_vectors((uint(*)[SOBOL_BITS])directions, dimensions); @@ -71,8 +98,16 @@ void Integrator::device_free(Device *device, DeviceScene *dscene) bool Integrator::modified(const Integrator& integrator) { - return !(minbounce == integrator.minbounce && - maxbounce == integrator.maxbounce && + return !(min_bounce == integrator.min_bounce && + max_bounce == integrator.max_bounce && + max_diffuse_bounce == integrator.max_diffuse_bounce && + max_glossy_bounce == integrator.max_glossy_bounce && + max_transmission_bounce == integrator.max_transmission_bounce && + probalistic_termination == integrator.probalistic_termination && + transparent_min_bounce == integrator.transparent_min_bounce && + transparent_max_bounce == integrator.transparent_max_bounce && + transparent_probalistic == integrator.transparent_probalistic && + transparent_shadows == integrator.transparent_shadows && no_caustics == integrator.no_caustics && blur_caustics == integrator.blur_caustics); } diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h index b7d0c48131f..5bab4470089 100644 --- a/intern/cycles/render/integrator.h +++ b/intern/cycles/render/integrator.h @@ -27,8 +27,19 @@ class Scene; class Integrator { public: - int minbounce; - int maxbounce; + int min_bounce; + int max_bounce; + + int max_diffuse_bounce; + int max_glossy_bounce; + int max_transmission_bounce; + bool probalistic_termination; + + int transparent_min_bounce; + int transparent_max_bounce; + bool transparent_probalistic; + bool transparent_shadows; + bool no_caustics; float blur_caustics; bool need_update; diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index b9163309652..b73013fc378 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -576,6 +576,10 @@ void MeshManager::device_update_bvh(Device *device, DeviceScene *dscene, Scene * dscene->tri_woop.reference(&pack.tri_woop[0], pack.tri_woop.size()); device->tex_alloc("__tri_woop", dscene->tri_woop); } + if(pack.prim_visibility.size()) { + dscene->prim_visibility.reference((uint*)&pack.prim_visibility[0], pack.prim_visibility.size()); + device->tex_alloc("__prim_visibility", dscene->prim_visibility); + } if(pack.prim_index.size()) { dscene->prim_index.reference((uint*)&pack.prim_index[0], pack.prim_index.size()); device->tex_alloc("__prim_index", dscene->prim_index); @@ -686,6 +690,7 @@ void MeshManager::device_free(Device *device, DeviceScene *dscene) device->tex_free(dscene->bvh_nodes); device->tex_free(dscene->object_node); device->tex_free(dscene->tri_woop); + device->tex_free(dscene->prim_visibility); device->tex_free(dscene->prim_index); device->tex_free(dscene->prim_object); device->tex_free(dscene->tri_normal); @@ -699,6 +704,7 @@ void MeshManager::device_free(Device *device, DeviceScene *dscene) dscene->bvh_nodes.clear(); dscene->object_node.clear(); dscene->tri_woop.clear(); + dscene->prim_visibility.clear(); dscene->prim_index.clear(); dscene->prim_object.clear(); dscene->tri_normal.clear(); diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 5ffc3fbbabb..900115d2231 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1117,7 +1117,7 @@ GlassBsdfNode::GlassBsdfNode() { distribution = ustring("Sharp"); - add_input("Roughness", SHADER_SOCKET_FLOAT, 0.2f); + add_input("Roughness", SHADER_SOCKET_FLOAT, 0.0f); add_input("Fresnel", SHADER_SOCKET_FLOAT, 0.3f); } @@ -1490,8 +1490,8 @@ LightPathNode::LightPathNode() add_output("Is Shadow Ray", SHADER_SOCKET_FLOAT); add_output("Is Diffuse Ray", SHADER_SOCKET_FLOAT); add_output("Is Glossy Ray", SHADER_SOCKET_FLOAT); - add_output("Is Reflection Ray", SHADER_SOCKET_FLOAT); add_output("Is Transmission Ray", SHADER_SOCKET_FLOAT); + add_output("Is Singular Ray", SHADER_SOCKET_FLOAT); } void LightPathNode::compile(SVMCompiler& compiler) @@ -1522,12 +1522,19 @@ void LightPathNode::compile(SVMCompiler& compiler) compiler.add_node(NODE_LIGHT_PATH, NODE_LP_glossy, out->stack_offset); } + out = output("Is Singular Ray"); + if(!out->links.empty()) { + compiler.stack_assign(out); + compiler.add_node(NODE_LIGHT_PATH, NODE_LP_singular, out->stack_offset); + } + out = output("Is Reflection Ray"); if(!out->links.empty()) { compiler.stack_assign(out); compiler.add_node(NODE_LIGHT_PATH, NODE_LP_reflection, out->stack_offset); } + out = output("Is Transmission Ray"); if(!out->links.empty()) { compiler.stack_assign(out); diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 06c93e48b89..4ba2de6e61b 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -33,6 +33,7 @@ Object::Object() name = ""; mesh = NULL; tfm = transform_identity(); + visibility = ~0; } Object::~Object() diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h index 7a12a06853b..7fe83cf7d91 100644 --- a/intern/cycles/render/object.h +++ b/intern/cycles/render/object.h @@ -42,6 +42,7 @@ public: BoundBox bounds; ustring name; vector attributes; + uint visibility; Object(); ~Object(); diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index 9d475cd9fa5..5772a9d7268 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -57,6 +57,7 @@ public: device_vector bvh_nodes; device_vector object_node; device_vector tri_woop; + device_vector prim_visibility; device_vector prim_index; device_vector prim_object; diff --git a/release/scripts/presets/cycles/integrator/direct_light.py b/release/scripts/presets/cycles/integrator/direct_light.py index 0b791547628..504068722d7 100644 --- a/release/scripts/presets/cycles/integrator/direct_light.py +++ b/release/scripts/presets/cycles/integrator/direct_light.py @@ -1,6 +1,11 @@ import bpy cycles = bpy.context.scene.cycles -cycles.max_bounces = 0 -cycles.min_bounces = 0 -cycles.no_caustics = False +cycles.max_bounces = 8 +cycles.min_bounces = 8 +cycles.no_caustics = True +cycles.diffuse_bounces = 0 +cycles.glossy_bounces = 1 +cycles.transmission_bounces = 2 +cycles.transparent_min_bounces = 8 +cycles.transparent_max_bounces = 8 diff --git a/release/scripts/presets/cycles/integrator/full_global_illumination.py b/release/scripts/presets/cycles/integrator/full_global_illumination.py new file mode 100644 index 00000000000..47c4431de13 --- /dev/null +++ b/release/scripts/presets/cycles/integrator/full_global_illumination.py @@ -0,0 +1,11 @@ +import bpy +cycles = bpy.context.scene.cycles + +cycles.max_bounces = 1024 +cycles.min_bounces = 3 +cycles.no_caustics = False +cycles.diffuse_bounces = 1024 +cycles.glossy_bounces = 1024 +cycles.transmission_bounces = 1024 +cycles.transparent_min_bounces = 8 +cycles.transparent_max_bounces = 1024 diff --git a/release/scripts/presets/cycles/integrator/limited_global_illumination.py b/release/scripts/presets/cycles/integrator/limited_global_illumination.py new file mode 100644 index 00000000000..f2a7e1f7b7a --- /dev/null +++ b/release/scripts/presets/cycles/integrator/limited_global_illumination.py @@ -0,0 +1,11 @@ +import bpy +cycles = bpy.context.scene.cycles + +cycles.max_bounces = 8 +cycles.min_bounces = 3 +cycles.no_caustics = True +cycles.diffuse_bounces = 1 +cycles.glossy_bounces = 4 +cycles.transmission_bounces = 8 +cycles.transparent_min_bounces = 8 +cycles.transparent_max_bounces = 8 diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index 262bf3ff115..7f42c70b338 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -33,7 +33,7 @@ static bNodeSocketType sh_node_bsdf_glass_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "Roughness", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c index 3bf32f42370..f828f66c3e6 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c @@ -36,6 +36,7 @@ static bNodeSocketType sh_node_light_path_out[]= { { SOCK_VALUE, 0, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Is Singular Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 0, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } -- cgit v1.2.3 From cf9d1e23c8e458b3e0d7d41abffdc34987656583 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 16:27:40 +0000 Subject: Cycles: fix missing update when setting integrator preset. --- source/blender/makesrna/intern/rna_access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 88447f6dd77..bb61d34b404 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1378,7 +1378,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return (prop->magic != RNA_MAGIC || prop->update || prop->noteflag); + return ((prop->magic != RNA_MAGIC) || (prop->flag & PROP_IDPROPERTY)|| prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) -- cgit v1.2.3 From af7171524ab6809a5ebe51c3cbfdff17e2cd74aa Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 1 Sep 2011 18:45:50 +0000 Subject: Cycles UI: * Added selector for CUDA/OpenCL. --- intern/cycles/blender/addon/enums.py | 6 +++++- intern/cycles/blender/addon/properties.py | 3 +++ intern/cycles/blender/addon/ui.py | 4 +++- intern/cycles/blender/blender_sync.cpp | 6 +++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 4b30f606de2..0ae97184e65 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -18,7 +18,11 @@ devices = ( ("CPU", "CPU", "Processor"), -("GPU", "GPU", "Graphics card (NVidia only)")) +("GPU", "GPU", "Graphics card")) + +gpu_type = ( +("CUDA", "CUDA", "NVidia only"), +("OPENCL", "OpenCL", "")) shading_systems = ( ("GPU_COMPATIBLE", "GPU Compatible", "Restricted shading system compatible with GPU rendering"), diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index ca38520d28f..5d90223032f 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -28,6 +28,9 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.device = EnumProperty(name="Device", description="Device to use for rendering", items=enums.devices, default="CPU") + + cls.gpu_type = EnumProperty(name="GPU Type", description="Processing system to use on the GPU", + items=enums.gpu_type, default="CUDA") cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", items=enums.shading_systems, default="GPU_COMPATIBLE") diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 001aacea3eb..ca6800e7fa0 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -522,8 +522,10 @@ def draw_device(self, context): if scene.render.engine == "CYCLES": cscene = scene.cycles - if 'cuda' in engine.available_devices(): + if ('cuda' or 'opencl') in engine.available_devices(): layout.prop(cscene, "device") + if cscene.device == 'GPU': + layout.prop(cscene, "gpu_type", expand=True) if cscene.device == 'CPU' and engine.with_osl(): layout.prop(cscene, "shading_system") diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 40ec4838dad..0c447c0512e 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -202,10 +202,14 @@ bool BlenderSync::get_session_pause(BL::Scene b_scene, bool background) SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background) { SessionParams params; + DeviceType dtype; PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); /* device type */ - DeviceType dtype = (RNA_enum_get(&cscene, "device") == 1)? DEVICE_CUDA: DEVICE_CPU; + if ((RNA_enum_get(&cscene, "device")) == 0) + dtype = DEVICE_CPU; + else + dtype = ((RNA_enum_get(&cscene, "gpu_type")) == 0)? DEVICE_CUDA: DEVICE_OPENCL; params.device_type = DEVICE_CPU; vector types = Device::available_types(); -- cgit v1.2.3 From 27102bfec4845df5ba8e65f7ca64d04840fbeab3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 19:00:23 +0000 Subject: Cycles: OpenCL library is now dynamically loaded so that blender doesn't crash if it's not installed on the system. Code copied from clew.h/clew.c in CLCC: http://clcc.sourceforge.net/ --- intern/cycles/CMakeLists.txt | 2 - intern/cycles/app/CMakeLists.txt | 4 - intern/cycles/cmake/external_libs.cmake | 21 - intern/cycles/device/device.cpp | 9 +- intern/cycles/device/device_opencl.cpp | 10 +- intern/cycles/doc/license/Boost.txt | 23 + intern/cycles/doc/license/readme.txt | 1 + intern/cycles/util/CMakeLists.txt | 2 + intern/cycles/util/util_opencl.c | 317 ++++++++ intern/cycles/util/util_opencl.h | 1314 +++++++++++++++++++++++++++++++ source/creator/CMakeLists.txt | 1 - 11 files changed, 1665 insertions(+), 39 deletions(-) create mode 100644 intern/cycles/doc/license/Boost.txt create mode 100755 intern/cycles/util/util_opencl.c create mode 100755 intern/cycles/util/util_opencl.h diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 77ae0486d16..5fce056259a 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -54,8 +54,6 @@ endif() if(WITH_CYCLES_OPENCL) add_definitions(-DWITH_OPENCL) - include_directories(${OPENCL_INCLUDE_DIR}) - endif() include_directories( diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index 1d74c32ca28..4ef5fd6857d 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -35,10 +35,6 @@ if(WITH_CYCLES_PARTIO) list(APPEND LIBRARIES ${PARTIO_LIBRARIES}) endif() -if(WITH_CYCLES_OPENCL) - list(APPEND LIBRARIES ${OPENCL_LIBRARIES}) -endif() - if(WITH_CYCLES_TEST) add_executable(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) target_link_libraries(cycles_test ${LIBRARIES}) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index d53be9f6fe6..fb7ba9cc3f2 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -104,24 +104,3 @@ if(WITH_CYCLES_CUDA) endif() -########################################################################### -# OpenCL - -if(WITH_CYCLES_OPENCL) - - if(APPLE) - set(OPENCL_INCLUDE_DIR "/System/Library/Frameworks/OpenCL.framework/Headers") - set(OPENCL_LIBRARIES "-framework OpenCL") - endif() - - if(WIN32) - set(OPENCL_INCLUDE_DIR "") - set(OPENCL_LIBRARIES "OpenCL") - endif() - - if(UNIX AND NOT APPLE) - set(OPENCL_INCLUDE_DIR ${CYCLES_OPENCL}) - set(OPENCL_LIBRARIES "OpenCL") - endif() -endif() - diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 2f2d34dcef2..aed0be96229 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -24,6 +24,7 @@ #include "util_cuda.h" #include "util_debug.h" +#include "util_opencl.h" #include "util_opengl.h" #include "util_types.h" #include "util_vector.h" @@ -135,7 +136,10 @@ Device *Device::create(DeviceType type, bool background, int threads) #endif #ifdef WITH_OPENCL case DEVICE_OPENCL: - device = device_opencl_create(background); + if(clLibraryInit()) + device = device_opencl_create(background); + else + device = NULL; break; #endif default: @@ -189,7 +193,8 @@ vector Device::available_types() #endif #ifdef WITH_OPENCL - types.push_back(DEVICE_OPENCL); + if(clLibraryInit()) + types.push_back(DEVICE_OPENCL); #endif #ifdef WITH_NETWORK diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 34c92986f46..d67fdc970a9 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -22,18 +22,11 @@ #include #include -#ifdef __APPLE__ -#include -#include -#else -#include -#include -#endif - #include "device.h" #include "device_intern.h" #include "util_map.h" +#include "util_opencl.h" #include "util_opengl.h" #include "util_path.h" #include "util_time.h" @@ -150,7 +143,6 @@ public: string build_options = ""; - string csource = "../blender/intern/cycles"; build_options += "-I " + path_get("kernel") + " -I " + path_get("util"); /* todo: escape path */ build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; diff --git a/intern/cycles/doc/license/Boost.txt b/intern/cycles/doc/license/Boost.txt new file mode 100644 index 00000000000..36b7cd93cdf --- /dev/null +++ b/intern/cycles/doc/license/Boost.txt @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/intern/cycles/doc/license/readme.txt b/intern/cycles/doc/license/readme.txt index de8c28f7f12..51494700f25 100644 --- a/intern/cycles/doc/license/readme.txt +++ b/intern/cycles/doc/license/readme.txt @@ -8,4 +8,5 @@ This program uses code from various sources. These are the licenses: * Sobol direction vectors are licensed under the Modified BSD license. * Matrix code adapted from OpenEXR under the Modified BSD license. * Procedural texture functions from Blender are licensed under GPL v2 or later. +* Boost and OpenCL dynamic loading under Boost License. diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index 4db90adc9e6..3adf483643f 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -9,6 +9,7 @@ set(sources util_cuda.cpp util_dynlib.cpp util_md5.cpp + util_opencl.c util_path.cpp util_string.cpp util_system.cpp @@ -34,6 +35,7 @@ set(headers util_map.h util_math.h util_md5.h + util_opencl.h util_opengl.h util_param.h util_path.h diff --git a/intern/cycles/util/util_opencl.c b/intern/cycles/util/util_opencl.c new file mode 100755 index 00000000000..b049a7b44ce --- /dev/null +++ b/intern/cycles/util/util_opencl.c @@ -0,0 +1,317 @@ +////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 Organic Vectory B.V. +// Written by George van Venrooij +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file doc/license/Boost.txt) +// Extracted from the CLCC project - http://clcc.sourceforge.net/ +////////////////////////////////////////////////////////////////////////// + +#include "util_opencl.h" + +#ifndef CLCC_GENERATE_DOCUMENTATION +#ifdef _WIN32 + #define WIN32_LEAN_AND_MEAN + #define VC_EXTRALEAN + #include + + typedef HMODULE CLCC_DYNLIB_HANDLE; + + #define CLCC_DYNLIB_OPEN LoadLibrary + #define CLCC_DYNLIB_CLOSE FreeLibrary + #define CLCC_DYNLIB_IMPORT GetProcAddress +#else + #include + + typedef void* CLCC_DYNLIB_HANDLE; + + #define CLCC_DYNLIB_OPEN(path) dlopen(path, RTLD_NOW | RTLD_GLOBAL) + #define CLCC_DYNLIB_CLOSE dlclose + #define CLCC_DYNLIB_IMPORT dlsym +#endif +#else + //typedef implementation_defined CLCC_DYNLIB_HANDLE; + //#define CLCC_DYNLIB_OPEN(path) implementation_defined + //#define CLCC_DYNLIB_CLOSE implementation_defined + //#define CLCC_DYNLIB_IMPORT implementation_defined +#endif + +#include + +//! \brief module handle +static CLCC_DYNLIB_HANDLE module = NULL; + +// Variables holding function entry points +#ifndef CLCC_GENERATE_DOCUMENTATION +PFNCLGETPLATFORMIDS __clewGetPlatformIDs = NULL; +PFNCLGETPLATFORMINFO __clewGetPlatformInfo = NULL; +PFNCLGETDEVICEIDS __clewGetDeviceIDs = NULL; +PFNCLGETDEVICEINFO __clewGetDeviceInfo = NULL; +PFNCLCREATECONTEXT __clewCreateContext = NULL; +PFNCLCREATECONTEXTFROMTYPE __clewCreateContextFromType = NULL; +PFNCLRETAINCONTEXT __clewRetainContext = NULL; +PFNCLRELEASECONTEXT __clewReleaseContext = NULL; +PFNCLGETCONTEXTINFO __clewGetContextInfo = NULL; +PFNCLCREATECOMMANDQUEUE __clewCreateCommandQueue = NULL; +PFNCLRETAINCOMMANDQUEUE __clewRetainCommandQueue = NULL; +PFNCLRELEASECOMMANDQUEUE __clewReleaseCommandQueue = NULL; +PFNCLGETCOMMANDQUEUEINFO __clewGetCommandQueueInfo = NULL; +PFNCLSETCOMMANDQUEUEPROPERTY __clewSetCommandQueueProperty = NULL; +PFNCLCREATEBUFFER __clewCreateBuffer = NULL; +PFNCLCREATEIMAGE2D __clewCreateImage2D = NULL; +PFNCLCREATEIMAGE3D __clewCreateImage3D = NULL; +PFNCLRETAINMEMOBJECT __clewRetainMemObject = NULL; +PFNCLRELEASEMEMOBJECT __clewReleaseMemObject = NULL; +PFNCLGETSUPPORTEDIMAGEFORMATS __clewGetSupportedImageFormats = NULL; +PFNCLGETMEMOBJECTINFO __clewGetMemObjectInfo = NULL; +PFNCLGETIMAGEINFO __clewGetImageInfo = NULL; +PFNCLCREATESAMPLER __clewCreateSampler = NULL; +PFNCLRETAINSAMPLER __clewRetainSampler = NULL; +PFNCLRELEASESAMPLER __clewReleaseSampler = NULL; +PFNCLGETSAMPLERINFO __clewGetSamplerInfo = NULL; +PFNCLCREATEPROGRAMWITHSOURCE __clewCreateProgramWithSource = NULL; +PFNCLCREATEPROGRAMWITHBINARY __clewCreateProgramWithBinary = NULL; +PFNCLRETAINPROGRAM __clewRetainProgram = NULL; +PFNCLRELEASEPROGRAM __clewReleaseProgram = NULL; +PFNCLBUILDPROGRAM __clewBuildProgram = NULL; +PFNCLUNLOADCOMPILER __clewUnloadCompiler = NULL; +PFNCLGETPROGRAMINFO __clewGetProgramInfo = NULL; +PFNCLGETPROGRAMBUILDINFO __clewGetProgramBuildInfo = NULL; +PFNCLCREATEKERNEL __clewCreateKernel = NULL; +PFNCLCREATEKERNELSINPROGRAM __clewCreateKernelsInProgram = NULL; +PFNCLRETAINKERNEL __clewRetainKernel = NULL; +PFNCLRELEASEKERNEL __clewReleaseKernel = NULL; +PFNCLSETKERNELARG __clewSetKernelArg = NULL; +PFNCLGETKERNELINFO __clewGetKernelInfo = NULL; +PFNCLGETKERNELWORKGROUPINFO __clewGetKernelWorkGroupInfo = NULL; +PFNCLWAITFOREVENTS __clewWaitForEvents = NULL; +PFNCLGETEVENTINFO __clewGetEventInfo = NULL; +PFNCLRETAINEVENT __clewRetainEvent = NULL; +PFNCLRELEASEEVENT __clewReleaseEvent = NULL; +PFNCLGETEVENTPROFILINGINFO __clewGetEventProfilingInfo = NULL; +PFNCLFLUSH __clewFlush = NULL; +PFNCLFINISH __clewFinish = NULL; +PFNCLENQUEUEREADBUFFER __clewEnqueueReadBuffer = NULL; +PFNCLENQUEUEWRITEBUFFER __clewEnqueueWriteBuffer = NULL; +PFNCLENQUEUECOPYBUFFER __clewEnqueueCopyBuffer = NULL; +PFNCLENQUEUEREADIMAGE __clewEnqueueReadImage = NULL; +PFNCLENQUEUEWRITEIMAGE __clewEnqueueWriteImage = NULL; +PFNCLENQUEUECOPYIMAGE __clewEnqueueCopyImage = NULL; +PFNCLENQUEUECOPYIMAGETOBUFFER __clewEnqueueCopyImageToBuffer = NULL; +PFNCLENQUEUECOPYBUFFERTOIMAGE __clewEnqueueCopyBufferToImage = NULL; +PFNCLENQUEUEMAPBUFFER __clewEnqueueMapBuffer = NULL; +PFNCLENQUEUEMAPIMAGE __clewEnqueueMapImage = NULL; +PFNCLENQUEUEUNMAPMEMOBJECT __clewEnqueueUnmapMemObject = NULL; +PFNCLENQUEUENDRANGEKERNEL __clewEnqueueNDRangeKernel = NULL; +PFNCLENQUEUETASK __clewEnqueueTask = NULL; +PFNCLENQUEUENATIVEKERNEL __clewEnqueueNativeKernel = NULL; +PFNCLENQUEUEMARKER __clewEnqueueMarker = NULL; +PFNCLENQUEUEWAITFOREVENTS __clewEnqueueWaitForEvents = NULL; +PFNCLENQUEUEBARRIER __clewEnqueueBarrier = NULL; +PFNCLGETEXTENSIONFUNCTIONADDRESS __clewGetExtensionFunctionAddress = NULL; +#endif // CLCC_GENERATE_DOCUMENTATION + + +//! \brief Unloads OpenCL dynamic library, should not be called directly +static void clewExit(void) +{ + if (module != NULL) + { + // Ignore errors + CLCC_DYNLIB_CLOSE(module); + module = NULL; + } +} + +//! \param path path to dynamic library to load +//! \return CLEW_ERROR_OPEN_FAILED if the library could not be opened +//! CLEW_ERROR_ATEXIT_FAILED if atexit(clewExit) failed +//! CLEW_SUCCESS when the library was succesfully loaded +int clLibraryInit() +{ +#ifdef _WIN32 + const char *path = "opencl.dll"; +#elif defined(__APPLE__) + const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL"; +#else + const char *path = "libopencl.so"; +#endif + int error = 0; + + // Check if already initialized + if (module != NULL) + { + return 1; + } + + // Load library + module = CLCC_DYNLIB_OPEN(path); + + // Check for errors + if (module == NULL) + { + return 0; + } + + // Set unloading + error = atexit(clewExit); + + if (error) + { + // Failure queing atexit, shutdown with error + CLCC_DYNLIB_CLOSE(module); + module = NULL; + + return 0; + } + + // Determine function entry-points + __clewGetPlatformIDs = (PFNCLGETPLATFORMIDS )CLCC_DYNLIB_IMPORT(module, "clGetPlatformIDs"); + __clewGetPlatformInfo = (PFNCLGETPLATFORMINFO )CLCC_DYNLIB_IMPORT(module, "clGetPlatformInfo"); + __clewGetDeviceIDs = (PFNCLGETDEVICEIDS )CLCC_DYNLIB_IMPORT(module, "clGetDeviceIDs"); + __clewGetDeviceInfo = (PFNCLGETDEVICEINFO )CLCC_DYNLIB_IMPORT(module, "clGetDeviceInfo"); + __clewCreateContext = (PFNCLCREATECONTEXT )CLCC_DYNLIB_IMPORT(module, "clCreateContext"); + __clewCreateContextFromType = (PFNCLCREATECONTEXTFROMTYPE )CLCC_DYNLIB_IMPORT(module, "clCreateContextFromType"); + __clewRetainContext = (PFNCLRETAINCONTEXT )CLCC_DYNLIB_IMPORT(module, "clRetainContext"); + __clewReleaseContext = (PFNCLRELEASECONTEXT )CLCC_DYNLIB_IMPORT(module, "clReleaseContext"); + __clewGetContextInfo = (PFNCLGETCONTEXTINFO )CLCC_DYNLIB_IMPORT(module, "clGetContextInfo"); + __clewCreateCommandQueue = (PFNCLCREATECOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clCreateCommandQueue"); + __clewRetainCommandQueue = (PFNCLRETAINCOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clRetainCommandQueue"); + __clewReleaseCommandQueue = (PFNCLRELEASECOMMANDQUEUE )CLCC_DYNLIB_IMPORT(module, "clReleaseCommandQueue"); + __clewGetCommandQueueInfo = (PFNCLGETCOMMANDQUEUEINFO )CLCC_DYNLIB_IMPORT(module, "clGetCommandQueueInfo"); + __clewSetCommandQueueProperty = (PFNCLSETCOMMANDQUEUEPROPERTY )CLCC_DYNLIB_IMPORT(module, "clSetCommandQueueProperty"); + __clewCreateBuffer = (PFNCLCREATEBUFFER )CLCC_DYNLIB_IMPORT(module, "clCreateBuffer"); + __clewCreateImage2D = (PFNCLCREATEIMAGE2D )CLCC_DYNLIB_IMPORT(module, "clCreateImage2D"); + __clewCreateImage3D = (PFNCLCREATEIMAGE3D )CLCC_DYNLIB_IMPORT(module, "clCreateImage3D"); + __clewRetainMemObject = (PFNCLRETAINMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clRetainMemObject"); + __clewReleaseMemObject = (PFNCLRELEASEMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clReleaseMemObject"); + __clewGetSupportedImageFormats = (PFNCLGETSUPPORTEDIMAGEFORMATS )CLCC_DYNLIB_IMPORT(module, "clGetSupportedImageFormats"); + __clewGetMemObjectInfo = (PFNCLGETMEMOBJECTINFO )CLCC_DYNLIB_IMPORT(module, "clGetMemObjectInfo"); + __clewGetImageInfo = (PFNCLGETIMAGEINFO )CLCC_DYNLIB_IMPORT(module, "clGetImageInfo"); + __clewCreateSampler = (PFNCLCREATESAMPLER )CLCC_DYNLIB_IMPORT(module, "clCreateSampler"); + __clewRetainSampler = (PFNCLRETAINSAMPLER )CLCC_DYNLIB_IMPORT(module, "clRetainSampler"); + __clewReleaseSampler = (PFNCLRELEASESAMPLER )CLCC_DYNLIB_IMPORT(module, "clReleaseSampler"); + __clewGetSamplerInfo = (PFNCLGETSAMPLERINFO )CLCC_DYNLIB_IMPORT(module, "clGetSamplerInfo"); + __clewCreateProgramWithSource = (PFNCLCREATEPROGRAMWITHSOURCE )CLCC_DYNLIB_IMPORT(module, "clCreateProgramWithSource"); + __clewCreateProgramWithBinary = (PFNCLCREATEPROGRAMWITHBINARY )CLCC_DYNLIB_IMPORT(module, "clCreateProgramWithBinary"); + __clewRetainProgram = (PFNCLRETAINPROGRAM )CLCC_DYNLIB_IMPORT(module, "clRetainProgram"); + __clewReleaseProgram = (PFNCLRELEASEPROGRAM )CLCC_DYNLIB_IMPORT(module, "clReleaseProgram"); + __clewBuildProgram = (PFNCLBUILDPROGRAM )CLCC_DYNLIB_IMPORT(module, "clBuildProgram"); + __clewUnloadCompiler = (PFNCLUNLOADCOMPILER )CLCC_DYNLIB_IMPORT(module, "clUnloadCompiler"); + __clewGetProgramInfo = (PFNCLGETPROGRAMINFO )CLCC_DYNLIB_IMPORT(module, "clGetProgramInfo"); + __clewGetProgramBuildInfo = (PFNCLGETPROGRAMBUILDINFO )CLCC_DYNLIB_IMPORT(module, "clGetProgramBuildInfo"); + __clewCreateKernel = (PFNCLCREATEKERNEL )CLCC_DYNLIB_IMPORT(module, "clCreateKernel"); + __clewCreateKernelsInProgram = (PFNCLCREATEKERNELSINPROGRAM )CLCC_DYNLIB_IMPORT(module, "clCreateKernelsInProgram"); + __clewRetainKernel = (PFNCLRETAINKERNEL )CLCC_DYNLIB_IMPORT(module, "clRetainKernel"); + __clewReleaseKernel = (PFNCLRELEASEKERNEL )CLCC_DYNLIB_IMPORT(module, "clReleaseKernel"); + __clewSetKernelArg = (PFNCLSETKERNELARG )CLCC_DYNLIB_IMPORT(module, "clSetKernelArg"); + __clewGetKernelInfo = (PFNCLGETKERNELINFO )CLCC_DYNLIB_IMPORT(module, "clGetKernelInfo"); + __clewGetKernelWorkGroupInfo = (PFNCLGETKERNELWORKGROUPINFO )CLCC_DYNLIB_IMPORT(module, "clGetKernelWorkGroupInfo"); + __clewWaitForEvents = (PFNCLWAITFOREVENTS )CLCC_DYNLIB_IMPORT(module, "clWaitForEvents"); + __clewGetEventInfo = (PFNCLGETEVENTINFO )CLCC_DYNLIB_IMPORT(module, "clGetEventInfo"); + __clewRetainEvent = (PFNCLRETAINEVENT )CLCC_DYNLIB_IMPORT(module, "clRetainEvent"); + __clewReleaseEvent = (PFNCLRELEASEEVENT )CLCC_DYNLIB_IMPORT(module, "clReleaseEvent"); + __clewGetEventProfilingInfo = (PFNCLGETEVENTPROFILINGINFO )CLCC_DYNLIB_IMPORT(module, "clGetEventProfilingInfo"); + __clewFlush = (PFNCLFLUSH )CLCC_DYNLIB_IMPORT(module, "clFlush"); + __clewFinish = (PFNCLFINISH )CLCC_DYNLIB_IMPORT(module, "clFinish"); + __clewEnqueueReadBuffer = (PFNCLENQUEUEREADBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueReadBuffer"); + __clewEnqueueWriteBuffer = (PFNCLENQUEUEWRITEBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueWriteBuffer"); + __clewEnqueueCopyBuffer = (PFNCLENQUEUECOPYBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyBuffer"); + __clewEnqueueReadImage = (PFNCLENQUEUEREADIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueReadImage"); + __clewEnqueueWriteImage = (PFNCLENQUEUEWRITEIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueWriteImage"); + __clewEnqueueCopyImage = (PFNCLENQUEUECOPYIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyImage"); + __clewEnqueueCopyImageToBuffer = (PFNCLENQUEUECOPYIMAGETOBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyImageToBuffer"); + __clewEnqueueCopyBufferToImage = (PFNCLENQUEUECOPYBUFFERTOIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueCopyBufferToImage"); + __clewEnqueueMapBuffer = (PFNCLENQUEUEMAPBUFFER )CLCC_DYNLIB_IMPORT(module, "clEnqueueMapBuffer"); + __clewEnqueueMapImage = (PFNCLENQUEUEMAPIMAGE )CLCC_DYNLIB_IMPORT(module, "clEnqueueMapImage"); + __clewEnqueueUnmapMemObject = (PFNCLENQUEUEUNMAPMEMOBJECT )CLCC_DYNLIB_IMPORT(module, "clEnqueueUnmapMemObject"); + __clewEnqueueNDRangeKernel = (PFNCLENQUEUENDRANGEKERNEL )CLCC_DYNLIB_IMPORT(module, "clEnqueueNDRangeKernel"); + __clewEnqueueTask = (PFNCLENQUEUETASK )CLCC_DYNLIB_IMPORT(module, "clEnqueueTask"); + __clewEnqueueNativeKernel = (PFNCLENQUEUENATIVEKERNEL )CLCC_DYNLIB_IMPORT(module, "clEnqueueNativeKernel"); + __clewEnqueueMarker = (PFNCLENQUEUEMARKER )CLCC_DYNLIB_IMPORT(module, "clEnqueueMarker"); + __clewEnqueueWaitForEvents = (PFNCLENQUEUEWAITFOREVENTS )CLCC_DYNLIB_IMPORT(module, "clEnqueueWaitForEvents"); + __clewEnqueueBarrier = (PFNCLENQUEUEBARRIER )CLCC_DYNLIB_IMPORT(module, "clEnqueueBarrier"); + __clewGetExtensionFunctionAddress = (PFNCLGETEXTENSIONFUNCTIONADDRESS )CLCC_DYNLIB_IMPORT(module, "clGetExtensionFunctionAddress"); + + return 1; +} + +//! \param error CL error code +//! \return a string representation of the error code +const char *clErrorString(cl_int error) +{ + static const char* strings[] = + { + // Error Codes + "CL_SUCCESS" // 0 + , "CL_DEVICE_NOT_FOUND" // -1 + , "CL_DEVICE_NOT_AVAILABLE" // -2 + , "CL_COMPILER_NOT_AVAILABLE" // -3 + , "CL_MEM_OBJECT_ALLOCATION_FAILURE" // -4 + , "CL_OUT_OF_RESOURCES" // -5 + , "CL_OUT_OF_HOST_MEMORY" // -6 + , "CL_PROFILING_INFO_NOT_AVAILABLE" // -7 + , "CL_MEM_COPY_OVERLAP" // -8 + , "CL_IMAGE_FORMAT_MISMATCH" // -9 + , "CL_IMAGE_FORMAT_NOT_SUPPORTED" // -10 + , "CL_BUILD_PROGRAM_FAILURE" // -11 + , "CL_MAP_FAILURE" // -12 + + , "" // -13 + , "" // -14 + , "" // -15 + , "" // -16 + , "" // -17 + , "" // -18 + , "" // -19 + + , "" // -20 + , "" // -21 + , "" // -22 + , "" // -23 + , "" // -24 + , "" // -25 + , "" // -26 + , "" // -27 + , "" // -28 + , "" // -29 + + , "CL_INVALID_VALUE" // -30 + , "CL_INVALID_DEVICE_TYPE" // -31 + , "CL_INVALID_PLATFORM" // -32 + , "CL_INVALID_DEVICE" // -33 + , "CL_INVALID_CONTEXT" // -34 + , "CL_INVALID_QUEUE_PROPERTIES" // -35 + , "CL_INVALID_COMMAND_QUEUE" // -36 + , "CL_INVALID_HOST_PTR" // -37 + , "CL_INVALID_MEM_OBJECT" // -38 + , "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR" // -39 + , "CL_INVALID_IMAGE_SIZE" // -40 + , "CL_INVALID_SAMPLER" // -41 + , "CL_INVALID_BINARY" // -42 + , "CL_INVALID_BUILD_OPTIONS" // -43 + , "CL_INVALID_PROGRAM" // -44 + , "CL_INVALID_PROGRAM_EXECUTABLE" // -45 + , "CL_INVALID_KERNEL_NAME" // -46 + , "CL_INVALID_KERNEL_DEFINITION" // -47 + , "CL_INVALID_KERNEL" // -48 + , "CL_INVALID_ARG_INDEX" // -49 + , "CL_INVALID_ARG_VALUE" // -50 + , "CL_INVALID_ARG_SIZE" // -51 + , "CL_INVALID_KERNEL_ARGS" // -52 + , "CL_INVALID_WORK_DIMENSION" // -53 + , "CL_INVALID_WORK_GROUP_SIZE" // -54 + , "CL_INVALID_WORK_ITEM_SIZE" // -55 + , "CL_INVALID_GLOBAL_OFFSET" // -56 + , "CL_INVALID_EVENT_WAIT_LIST" // -57 + , "CL_INVALID_EVENT" // -58 + , "CL_INVALID_OPERATION" // -59 + , "CL_INVALID_GL_OBJECT" // -60 + , "CL_INVALID_BUFFER_SIZE" // -61 + , "CL_INVALID_MIP_LEVEL" // -62 + , "CL_INVALID_GLOBAL_WORK_SIZE" // -63 + }; + + return strings[-error]; +} + diff --git a/intern/cycles/util/util_opencl.h b/intern/cycles/util/util_opencl.h new file mode 100755 index 00000000000..0c643e5d475 --- /dev/null +++ b/intern/cycles/util/util_opencl.h @@ -0,0 +1,1314 @@ +////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 Organic Vectory B.V. +// Written by George van Venrooij +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file doc/license/Boost.txt) +// Extracted from the CLCC project - http://clcc.sourceforge.net/ +////////////////////////////////////////////////////////////////////////// + +#ifndef __UTIL_OPENCL_H__ +#define __UTIL_OPENCL_H__ + +//! This file contains a copy of the contents of CL.H and CL_PLATFORM.H from the +//! official OpenCL spec. The purpose of this code is to load the OpenCL dynamic +//! library at run-time and thus allow the executable to function on many +//! platforms regardless of the vendor of the OpenCL driver actually installed. +//! Some of the techniques used here were inspired by work done in the GLEW +//! library (http://glew.sourceforge.net/) + +// Run-time dynamic linking functionality based on concepts used in GLEW +#ifdef __OPENCL_CL_H +#error cl.h included before clew.h +#endif + +#ifdef __OPENCL_CL_PLATFORM_H +#error cl_platform.h included before clew.h +#endif + +#ifndef CLCC_GENERATE_DOCUMENTATION +// Prevent cl.h inclusion +#define __OPENCL_CL_H +// Prevent cl_platform.h inclusion +#define __CL_PLATFORM_H +#endif // CLCC_GENERATE_DOCUMENTATION + +/******************************************************************************* +* Copyright (c) 2008-2009 The Khronos Group Inc. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and/or associated documentation files (the +* "Materials"), to deal in the Materials without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Materials, and to +* permit persons to whom the Materials are furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Materials. +* +* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +******************************************************************************/ + +#ifdef __APPLE__ +/* Contains #defines for AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER below */ +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef CLCC_GENERATE_DOCUMENTATION + +#if defined(_WIN32) +#define CL_API_ENTRY +#define CL_API_CALL __stdcall +#else +#define CL_API_ENTRY +#define CL_API_CALL +#endif + +#if defined(__APPLE__) +#define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER +#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import)) +#else +#define CL_API_SUFFIX__VERSION_1_0 +#define CL_EXTENSION_WEAK_LINK +#endif + +#if defined(_WIN32) && defined(_MSC_VER) + +/* scalar types */ +typedef signed __int8 cl_char; +typedef unsigned __int8 cl_uchar; +typedef signed __int16 cl_short; +typedef unsigned __int16 cl_ushort; +typedef signed __int32 cl_int; +typedef unsigned __int32 cl_uint; +typedef signed __int64 cl_long; +typedef unsigned __int64 cl_ulong; + +typedef unsigned __int16 cl_half; +typedef float cl_float; +typedef double cl_double; + + +/* +* Vector types +* +* Note: OpenCL requires that all types be naturally aligned. +* This means that vector types must be naturally aligned. +* For example, a vector of four floats must be aligned to +* a 16 byte boundary (calculated as 4 * the natural 4-byte +* alignment of the float). The alignment qualifiers here +* will only function properly if your compiler supports them +* and if you don't actively work to defeat them. For example, +* in order for a cl_float4 to be 16 byte aligned in a struct, +* the start of the struct must itself be 16-byte aligned. +* +* Maintaining proper alignment is the user's responsibility. +*/ +typedef signed __int8 cl_char2[2]; +typedef signed __int8 cl_char4[4]; +typedef signed __int8 cl_char8[8]; +typedef signed __int8 cl_char16[16]; +typedef unsigned __int8 cl_uchar2[2]; +typedef unsigned __int8 cl_uchar4[4]; +typedef unsigned __int8 cl_uchar8[8]; +typedef unsigned __int8 cl_uchar16[16]; + +typedef signed __int16 cl_short2[2]; +typedef signed __int16 cl_short4[4]; +typedef signed __int16 cl_short8[8]; +typedef signed __int16 cl_short16[16]; +typedef unsigned __int16 cl_ushort2[2]; +typedef unsigned __int16 cl_ushort4[4]; +typedef unsigned __int16 cl_ushort8[8]; +typedef unsigned __int16 cl_ushort16[16]; + +typedef signed __int32 cl_int2[2]; +typedef signed __int32 cl_int4[4]; +typedef signed __int32 cl_int8[8]; +typedef signed __int32 cl_int16[16]; +typedef unsigned __int32 cl_uint2[2]; +typedef unsigned __int32 cl_uint4[4]; +typedef unsigned __int32 cl_uint8[8]; +typedef unsigned __int32 cl_uint16[16]; + +typedef signed __int64 cl_long2[2]; +typedef signed __int64 cl_long4[4]; +typedef signed __int64 cl_long8[8]; +typedef signed __int64 cl_long16[16]; +typedef unsigned __int64 cl_ulong2[2]; +typedef unsigned __int64 cl_ulong4[4]; +typedef unsigned __int64 cl_ulong8[8]; +typedef unsigned __int64 cl_ulong16[16]; + +typedef float cl_float2[2]; +typedef float cl_float4[4]; +typedef float cl_float8[8]; +typedef float cl_float16[16]; + +typedef double cl_double2[2]; +typedef double cl_double4[4]; +typedef double cl_double8[8]; +typedef double cl_double16[16]; +/* There are no vector types for half */ + +#else + +#include + +/* scalar types */ +typedef int8_t cl_char; +typedef uint8_t cl_uchar; +typedef int16_t cl_short __attribute__((aligned(2))); +typedef uint16_t cl_ushort __attribute__((aligned(2))); +typedef int32_t cl_int __attribute__((aligned(4))); +typedef uint32_t cl_uint __attribute__((aligned(4))); +typedef int64_t cl_long __attribute__((aligned(8))); +typedef uint64_t cl_ulong __attribute__((aligned(8))); + +typedef uint16_t cl_half __attribute__((aligned(2))); +typedef float cl_float __attribute__((aligned(4))); +typedef double cl_double __attribute__((aligned(8))); + +/* +* Vector types +* +* Note: OpenCL requires that all types be naturally aligned. +* This means that vector types must be naturally aligned. +* For example, a vector of four floats must be aligned to +* a 16 byte boundary (calculated as 4 * the natural 4-byte +* alignment of the float). The alignment qualifiers here +* will only function properly if your compiler supports them +* and if you don't actively work to defeat them. For example, +* in order for a cl_float4 to be 16 byte aligned in a struct, +* the start of the struct must itself be 16-byte aligned. +* +* Maintaining proper alignment is the user's responsibility. +*/ +typedef int8_t cl_char2[2] __attribute__((aligned(2))); +typedef int8_t cl_char4[4] __attribute__((aligned(4))); +typedef int8_t cl_char8[8] __attribute__((aligned(8))); +typedef int8_t cl_char16[16] __attribute__((aligned(16))); +typedef uint8_t cl_uchar2[2] __attribute__((aligned(2))); +typedef uint8_t cl_uchar4[4] __attribute__((aligned(4))); +typedef uint8_t cl_uchar8[8] __attribute__((aligned(8))); +typedef uint8_t cl_uchar16[16] __attribute__((aligned(16))); + +typedef int16_t cl_short2[2] __attribute__((aligned(4))); +typedef int16_t cl_short4[4] __attribute__((aligned(8))); +typedef int16_t cl_short8[8] __attribute__((aligned(16))); +typedef int16_t cl_short16[16] __attribute__((aligned(32))); +typedef uint16_t cl_ushort2[2] __attribute__((aligned(4))); +typedef uint16_t cl_ushort4[4] __attribute__((aligned(8))); +typedef uint16_t cl_ushort8[8] __attribute__((aligned(16))); +typedef uint16_t cl_ushort16[16] __attribute__((aligned(32))); + +typedef int32_t cl_int2[2] __attribute__((aligned(8))); +typedef int32_t cl_int4[4] __attribute__((aligned(16))); +typedef int32_t cl_int8[8] __attribute__((aligned(32))); +typedef int32_t cl_int16[16] __attribute__((aligned(64))); +typedef uint32_t cl_uint2[2] __attribute__((aligned(8))); +typedef uint32_t cl_uint4[4] __attribute__((aligned(16))); +typedef uint32_t cl_uint8[8] __attribute__((aligned(32))); +typedef uint32_t cl_uint16[16] __attribute__((aligned(64))); + +typedef int64_t cl_long2[2] __attribute__((aligned(16))); +typedef int64_t cl_long4[4] __attribute__((aligned(32))); +typedef int64_t cl_long8[8] __attribute__((aligned(64))); +typedef int64_t cl_long16[16] __attribute__((aligned(128))); +typedef uint64_t cl_ulong2[2] __attribute__((aligned(16))); +typedef uint64_t cl_ulong4[4] __attribute__((aligned(32))); +typedef uint64_t cl_ulong8[8] __attribute__((aligned(64))); +typedef uint64_t cl_ulong16[16] __attribute__((aligned(128))); + +typedef float cl_float2[2] __attribute__((aligned(8))); +typedef float cl_float4[4] __attribute__((aligned(16))); +typedef float cl_float8[8] __attribute__((aligned(32))); +typedef float cl_float16[16] __attribute__((aligned(64))); + +typedef double cl_double2[2] __attribute__((aligned(16))); +typedef double cl_double4[4] __attribute__((aligned(32))); +typedef double cl_double8[8] __attribute__((aligned(64))); +typedef double cl_double16[16] __attribute__((aligned(128))); + +/* There are no vector types for half */ + +#endif + +/******************************************************************************/ + +// Macro names and corresponding values defined by OpenCL + +#define CL_CHAR_BIT 8 +#define CL_SCHAR_MAX 127 +#define CL_SCHAR_MIN (-127-1) +#define CL_CHAR_MAX CL_SCHAR_MAX +#define CL_CHAR_MIN CL_SCHAR_MIN +#define CL_UCHAR_MAX 255 +#define CL_SHRT_MAX 32767 +#define CL_SHRT_MIN (-32767-1) +#define CL_USHRT_MAX 65535 +#define CL_INT_MAX 2147483647 +#define CL_INT_MIN (-2147483647-1) +#define CL_UINT_MAX 0xffffffffU +#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) +#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) +#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) + +#define CL_FLT_DIG 6 +#define CL_FLT_MANT_DIG 24 +#define CL_FLT_MAX_10_EXP +38 +#define CL_FLT_MAX_EXP +128 +#define CL_FLT_MIN_10_EXP -37 +#define CL_FLT_MIN_EXP -125 +#define CL_FLT_RADIX 2 +#if defined(_MSC_VER) +// MSVC doesn't understand hex floats +#define CL_FLT_MAX 3.402823466e+38F +#define CL_FLT_MIN 1.175494351e-38F +#define CL_FLT_EPSILON 1.192092896e-07F +#else +#define CL_FLT_MAX 0x1.fffffep127f +#define CL_FLT_MIN 0x1.0p-126f +#define CL_FLT_EPSILON 0x1.0p-23f +#endif + +#define CL_DBL_DIG 15 +#define CL_DBL_MANT_DIG 53 +#define CL_DBL_MAX_10_EXP +308 +#define CL_DBL_MAX_EXP +1024 +#define CL_DBL_MIN_10_EXP -307 +#define CL_DBL_MIN_EXP -1021 +#define CL_DBL_RADIX 2 +#if defined(_MSC_VER) +// MSVC doesn't understand hex floats +#define CL_DBL_MAX 1.7976931348623158e+308 +#define CL_DBL_MIN 2.2250738585072014e-308 +#define CL_DBL_EPSILON 2.2204460492503131e-016 +#else +#define CL_DBL_MAX 0x1.fffffffffffffp1023 +#define CL_DBL_MIN 0x1.0p-1022 +#define CL_DBL_EPSILON 0x1.0p-52 +#endif + +#include + + +// CL.h contents +/******************************************************************************/ + +typedef struct _cl_platform_id * cl_platform_id; +typedef struct _cl_device_id * cl_device_id; +typedef struct _cl_context * cl_context; +typedef struct _cl_command_queue * cl_command_queue; +typedef struct _cl_mem * cl_mem; +typedef struct _cl_program * cl_program; +typedef struct _cl_kernel * cl_kernel; +typedef struct _cl_event * cl_event; +typedef struct _cl_sampler * cl_sampler; + +typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */ +typedef cl_ulong cl_bitfield; +typedef cl_bitfield cl_device_type; +typedef cl_uint cl_platform_info; +typedef cl_uint cl_device_info; +typedef cl_bitfield cl_device_address_info; +typedef cl_bitfield cl_device_fp_config; +typedef cl_uint cl_device_mem_cache_type; +typedef cl_uint cl_device_local_mem_type; +typedef cl_bitfield cl_device_exec_capabilities; +typedef cl_bitfield cl_command_queue_properties; + +typedef intptr_t cl_context_properties; +typedef cl_uint cl_context_info; +typedef cl_uint cl_command_queue_info; +typedef cl_uint cl_channel_order; +typedef cl_uint cl_channel_type; +typedef cl_bitfield cl_mem_flags; +typedef cl_uint cl_mem_object_type; +typedef cl_uint cl_mem_info; +typedef cl_uint cl_image_info; +typedef cl_uint cl_addressing_mode; +typedef cl_uint cl_filter_mode; +typedef cl_uint cl_sampler_info; +typedef cl_bitfield cl_map_flags; +typedef cl_uint cl_program_info; +typedef cl_uint cl_program_build_info; +typedef cl_int cl_build_status; +typedef cl_uint cl_kernel_info; +typedef cl_uint cl_kernel_work_group_info; +typedef cl_uint cl_event_info; +typedef cl_uint cl_command_type; +typedef cl_uint cl_profiling_info; + +typedef struct _cl_image_format { + cl_channel_order image_channel_order; + cl_channel_type image_channel_data_type; +} cl_image_format; + + + +/******************************************************************************/ + +// Error Codes +#define CL_SUCCESS 0 +#define CL_DEVICE_NOT_FOUND -1 +#define CL_DEVICE_NOT_AVAILABLE -2 +#define CL_COMPILER_NOT_AVAILABLE -3 +#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 +#define CL_OUT_OF_RESOURCES -5 +#define CL_OUT_OF_HOST_MEMORY -6 +#define CL_PROFILING_INFO_NOT_AVAILABLE -7 +#define CL_MEM_COPY_OVERLAP -8 +#define CL_IMAGE_FORMAT_MISMATCH -9 +#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 +#define CL_BUILD_PROGRAM_FAILURE -11 +#define CL_MAP_FAILURE -12 + +#define CL_INVALID_VALUE -30 +#define CL_INVALID_DEVICE_TYPE -31 +#define CL_INVALID_PLATFORM -32 +#define CL_INVALID_DEVICE -33 +#define CL_INVALID_CONTEXT -34 +#define CL_INVALID_QUEUE_PROPERTIES -35 +#define CL_INVALID_COMMAND_QUEUE -36 +#define CL_INVALID_HOST_PTR -37 +#define CL_INVALID_MEM_OBJECT -38 +#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 +#define CL_INVALID_IMAGE_SIZE -40 +#define CL_INVALID_SAMPLER -41 +#define CL_INVALID_BINARY -42 +#define CL_INVALID_BUILD_OPTIONS -43 +#define CL_INVALID_PROGRAM -44 +#define CL_INVALID_PROGRAM_EXECUTABLE -45 +#define CL_INVALID_KERNEL_NAME -46 +#define CL_INVALID_KERNEL_DEFINITION -47 +#define CL_INVALID_KERNEL -48 +#define CL_INVALID_ARG_INDEX -49 +#define CL_INVALID_ARG_VALUE -50 +#define CL_INVALID_ARG_SIZE -51 +#define CL_INVALID_KERNEL_ARGS -52 +#define CL_INVALID_WORK_DIMENSION -53 +#define CL_INVALID_WORK_GROUP_SIZE -54 +#define CL_INVALID_WORK_ITEM_SIZE -55 +#define CL_INVALID_GLOBAL_OFFSET -56 +#define CL_INVALID_EVENT_WAIT_LIST -57 +#define CL_INVALID_EVENT -58 +#define CL_INVALID_OPERATION -59 +#define CL_INVALID_GL_OBJECT -60 +#define CL_INVALID_BUFFER_SIZE -61 +#define CL_INVALID_MIP_LEVEL -62 +#define CL_INVALID_GLOBAL_WORK_SIZE -63 + +// OpenCL Version +#define CL_VERSION_1_0 1 + +// cl_bool +#define CL_FALSE 0 +#define CL_TRUE 1 + +// cl_platform_info +#define CL_PLATFORM_PROFILE 0x0900 +#define CL_PLATFORM_VERSION 0x0901 +#define CL_PLATFORM_NAME 0x0902 +#define CL_PLATFORM_VENDOR 0x0903 +#define CL_PLATFORM_EXTENSIONS 0x0904 + +// cl_device_type - bitfield +#define CL_DEVICE_TYPE_DEFAULT (1 << 0) +#define CL_DEVICE_TYPE_CPU (1 << 1) +#define CL_DEVICE_TYPE_GPU (1 << 2) +#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) +#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF + +// cl_device_info +#define CL_DEVICE_TYPE 0x1000 +#define CL_DEVICE_VENDOR_ID 0x1001 +#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 +#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 +#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 +#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B +#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C +#define CL_DEVICE_ADDRESS_BITS 0x100D +#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E +#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F +#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 +#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 +#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 +#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 +#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 +#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 +#define CL_DEVICE_IMAGE_SUPPORT 0x1016 +#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 +#define CL_DEVICE_MAX_SAMPLERS 0x1018 +#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 +#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A +#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B +#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C +#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D +#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E +#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F +#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 +#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 +#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 +#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 +#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 +#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 +#define CL_DEVICE_ENDIAN_LITTLE 0x1026 +#define CL_DEVICE_AVAILABLE 0x1027 +#define CL_DEVICE_COMPILER_AVAILABLE 0x1028 +#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 +#define CL_DEVICE_QUEUE_PROPERTIES 0x102A +#define CL_DEVICE_NAME 0x102B +#define CL_DEVICE_VENDOR 0x102C +#define CL_DRIVER_VERSION 0x102D +#define CL_DEVICE_PROFILE 0x102E +#define CL_DEVICE_VERSION 0x102F +#define CL_DEVICE_EXTENSIONS 0x1030 +#define CL_DEVICE_PLATFORM 0x1031 + +// cl_device_fp_config - bitfield +#define CL_FP_DENORM (1 << 0) +#define CL_FP_INF_NAN (1 << 1) +#define CL_FP_ROUND_TO_NEAREST (1 << 2) +#define CL_FP_ROUND_TO_ZERO (1 << 3) +#define CL_FP_ROUND_TO_INF (1 << 4) +#define CL_FP_FMA (1 << 5) + +// cl_device_mem_cache_type +#define CL_NONE 0x0 +#define CL_READ_ONLY_CACHE 0x1 +#define CL_READ_WRITE_CACHE 0x2 + +// cl_device_local_mem_type +#define CL_LOCAL 0x1 +#define CL_GLOBAL 0x2 + +// cl_device_exec_capabilities - bitfield +#define CL_EXEC_KERNEL (1 << 0) +#define CL_EXEC_NATIVE_KERNEL (1 << 1) + +// cl_command_queue_properties - bitfield +#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) +#define CL_QUEUE_PROFILING_ENABLE (1 << 1) + +// cl_context_info +#define CL_CONTEXT_REFERENCE_COUNT 0x1080 +#define CL_CONTEXT_DEVICES 0x1081 +#define CL_CONTEXT_PROPERTIES 0x1082 + +// cl_context_properties +#define CL_CONTEXT_PLATFORM 0x1084 + +// cl_command_queue_info +#define CL_QUEUE_CONTEXT 0x1090 +#define CL_QUEUE_DEVICE 0x1091 +#define CL_QUEUE_REFERENCE_COUNT 0x1092 +#define CL_QUEUE_PROPERTIES 0x1093 + +// cl_mem_flags - bitfield +#define CL_MEM_READ_WRITE (1 << 0) +#define CL_MEM_WRITE_ONLY (1 << 1) +#define CL_MEM_READ_ONLY (1 << 2) +#define CL_MEM_USE_HOST_PTR (1 << 3) +#define CL_MEM_ALLOC_HOST_PTR (1 << 4) +#define CL_MEM_COPY_HOST_PTR (1 << 5) + +// cl_channel_order +#define CL_R 0x10B0 +#define CL_A 0x10B1 +#define CL_RG 0x10B2 +#define CL_RA 0x10B3 +#define CL_RGB 0x10B4 +#define CL_RGBA 0x10B5 +#define CL_BGRA 0x10B6 +#define CL_ARGB 0x10B7 +#define CL_INTENSITY 0x10B8 +#define CL_LUMINANCE 0x10B9 + +// cl_channel_type +#define CL_SNORM_INT8 0x10D0 +#define CL_SNORM_INT16 0x10D1 +#define CL_UNORM_INT8 0x10D2 +#define CL_UNORM_INT16 0x10D3 +#define CL_UNORM_SHORT_565 0x10D4 +#define CL_UNORM_SHORT_555 0x10D5 +#define CL_UNORM_INT_101010 0x10D6 +#define CL_SIGNED_INT8 0x10D7 +#define CL_SIGNED_INT16 0x10D8 +#define CL_SIGNED_INT32 0x10D9 +#define CL_UNSIGNED_INT8 0x10DA +#define CL_UNSIGNED_INT16 0x10DB +#define CL_UNSIGNED_INT32 0x10DC +#define CL_HALF_FLOAT 0x10DD +#define CL_FLOAT 0x10DE + +// cl_mem_object_type +#define CL_MEM_OBJECT_BUFFER 0x10F0 +#define CL_MEM_OBJECT_IMAGE2D 0x10F1 +#define CL_MEM_OBJECT_IMAGE3D 0x10F2 + +// cl_mem_info +#define CL_MEM_TYPE 0x1100 +#define CL_MEM_FLAGS 0x1101 +#define CL_MEM_SIZE 0x1102 +#define CL_MEM_HOST_PTR 0x1103 +#define CL_MEM_MAP_COUNT 0x1104 +#define CL_MEM_REFERENCE_COUNT 0x1105 +#define CL_MEM_CONTEXT 0x1106 + +// cl_image_info +#define CL_IMAGE_FORMAT 0x1110 +#define CL_IMAGE_ELEMENT_SIZE 0x1111 +#define CL_IMAGE_ROW_PITCH 0x1112 +#define CL_IMAGE_SLICE_PITCH 0x1113 +#define CL_IMAGE_WIDTH 0x1114 +#define CL_IMAGE_HEIGHT 0x1115 +#define CL_IMAGE_DEPTH 0x1116 + +// cl_addressing_mode +#define CL_ADDRESS_NONE 0x1130 +#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 +#define CL_ADDRESS_CLAMP 0x1132 +#define CL_ADDRESS_REPEAT 0x1133 + +// cl_filter_mode +#define CL_FILTER_NEAREST 0x1140 +#define CL_FILTER_LINEAR 0x1141 + +// cl_sampler_info +#define CL_SAMPLER_REFERENCE_COUNT 0x1150 +#define CL_SAMPLER_CONTEXT 0x1151 +#define CL_SAMPLER_NORMALIZED_COORDS 0x1152 +#define CL_SAMPLER_ADDRESSING_MODE 0x1153 +#define CL_SAMPLER_FILTER_MODE 0x1154 + +// cl_map_flags - bitfield +#define CL_MAP_READ (1 << 0) +#define CL_MAP_WRITE (1 << 1) + +// cl_program_info +#define CL_PROGRAM_REFERENCE_COUNT 0x1160 +#define CL_PROGRAM_CONTEXT 0x1161 +#define CL_PROGRAM_NUM_DEVICES 0x1162 +#define CL_PROGRAM_DEVICES 0x1163 +#define CL_PROGRAM_SOURCE 0x1164 +#define CL_PROGRAM_BINARY_SIZES 0x1165 +#define CL_PROGRAM_BINARIES 0x1166 + +// cl_program_build_info +#define CL_PROGRAM_BUILD_STATUS 0x1181 +#define CL_PROGRAM_BUILD_OPTIONS 0x1182 +#define CL_PROGRAM_BUILD_LOG 0x1183 + +// cl_build_status +#define CL_BUILD_SUCCESS 0 +#define CL_BUILD_NONE -1 +#define CL_BUILD_ERROR -2 +#define CL_BUILD_IN_PROGRESS -3 + +// cl_kernel_info +#define CL_KERNEL_FUNCTION_NAME 0x1190 +#define CL_KERNEL_NUM_ARGS 0x1191 +#define CL_KERNEL_REFERENCE_COUNT 0x1192 +#define CL_KERNEL_CONTEXT 0x1193 +#define CL_KERNEL_PROGRAM 0x1194 + +// cl_kernel_work_group_info +#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 +#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 +#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 + +// cl_event_info +#define CL_EVENT_COMMAND_QUEUE 0x11D0 +#define CL_EVENT_COMMAND_TYPE 0x11D1 +#define CL_EVENT_REFERENCE_COUNT 0x11D2 +#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 + +// cl_command_type +#define CL_COMMAND_NDRANGE_KERNEL 0x11F0 +#define CL_COMMAND_TASK 0x11F1 +#define CL_COMMAND_NATIVE_KERNEL 0x11F2 +#define CL_COMMAND_READ_BUFFER 0x11F3 +#define CL_COMMAND_WRITE_BUFFER 0x11F4 +#define CL_COMMAND_COPY_BUFFER 0x11F5 +#define CL_COMMAND_READ_IMAGE 0x11F6 +#define CL_COMMAND_WRITE_IMAGE 0x11F7 +#define CL_COMMAND_COPY_IMAGE 0x11F8 +#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 +#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA +#define CL_COMMAND_MAP_BUFFER 0x11FB +#define CL_COMMAND_MAP_IMAGE 0x11FC +#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD +#define CL_COMMAND_MARKER 0x11FE +#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF +#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 + +// command execution status +#define CL_COMPLETE 0x0 +#define CL_RUNNING 0x1 +#define CL_SUBMITTED 0x2 +#define CL_QUEUED 0x3 + +// cl_profiling_info +#define CL_PROFILING_COMMAND_QUEUED 0x1280 +#define CL_PROFILING_COMMAND_SUBMIT 0x1281 +#define CL_PROFILING_COMMAND_START 0x1282 +#define CL_PROFILING_COMMAND_END 0x1283 + +/********************************************************************************************************/ + +/********************************************************************************************************/ + +// Function signature typedef's + +// Platform API +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETPLATFORMIDS)(cl_uint /* num_entries */, + cl_platform_id * /* platforms */, + cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETPLATFORMINFO)(cl_platform_id /* platform */, + cl_platform_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Device APIs +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETDEVICEIDS)(cl_platform_id /* platform */, + cl_device_type /* device_type */, + cl_uint /* num_entries */, + cl_device_id * /* devices */, + cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETDEVICEINFO)(cl_device_id /* device */, + cl_device_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Context APIs +typedef CL_API_ENTRY cl_context (CL_API_CALL * +PFNCLCREATECONTEXT)(const cl_context_properties * /* properties */, + cl_uint /* num_devices */, + const cl_device_id * /* devices */, + void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */, + void * /* user_data */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_context (CL_API_CALL * +PFNCLCREATECONTEXTFROMTYPE)(const cl_context_properties * /* properties */, + cl_device_type /* device_type */, + void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */, + void * /* user_data */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINCONTEXT)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASECONTEXT)(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETCONTEXTINFO)(cl_context /* context */, + cl_context_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Command Queue APIs +typedef CL_API_ENTRY cl_command_queue (CL_API_CALL * +PFNCLCREATECOMMANDQUEUE)(cl_context /* context */, + cl_device_id /* device */, + cl_command_queue_properties /* properties */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINCOMMANDQUEUE)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASECOMMANDQUEUE)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETCOMMANDQUEUEINFO)(cl_command_queue /* command_queue */, + cl_command_queue_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLSETCOMMANDQUEUEPROPERTY)(cl_command_queue /* command_queue */, + cl_command_queue_properties /* properties */, + cl_bool /* enable */, + cl_command_queue_properties * /* old_properties */) CL_API_SUFFIX__VERSION_1_0; + +// Memory Object APIs +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +PFNCLCREATEBUFFER)(cl_context /* context */, + cl_mem_flags /* flags */, + size_t /* size */, + void * /* host_ptr */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +PFNCLCREATEIMAGE2D)(cl_context /* context */, + cl_mem_flags /* flags */, + const cl_image_format * /* image_format */, + size_t /* image_width */, + size_t /* image_height */, + size_t /* image_row_pitch */, + void * /* host_ptr */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +PFNCLCREATEIMAGE3D)(cl_context /* context */, + cl_mem_flags /* flags */, + const cl_image_format * /* image_format */, + size_t /* image_width */, + size_t /* image_height */, + size_t /* image_depth */, + size_t /* image_row_pitch */, + size_t /* image_slice_pitch */, + void * /* host_ptr */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINMEMOBJECT)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASEMEMOBJECT)(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETSUPPORTEDIMAGEFORMATS)(cl_context /* context */, + cl_mem_flags /* flags */, + cl_mem_object_type /* image_type */, + cl_uint /* num_entries */, + cl_image_format * /* image_formats */, + cl_uint * /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETMEMOBJECTINFO)(cl_mem /* memobj */, + cl_mem_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETIMAGEINFO)(cl_mem /* image */, + cl_image_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Sampler APIs +typedef CL_API_ENTRY cl_sampler (CL_API_CALL * +PFNCLCREATESAMPLER)(cl_context /* context */, + cl_bool /* normalized_coords */, + cl_addressing_mode /* addressing_mode */, + cl_filter_mode /* filter_mode */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINSAMPLER)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASESAMPLER)(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETSAMPLERINFO)(cl_sampler /* sampler */, + cl_sampler_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Program Object APIs +typedef CL_API_ENTRY cl_program (CL_API_CALL * +PFNCLCREATEPROGRAMWITHSOURCE)(cl_context /* context */, + cl_uint /* count */, + const char ** /* strings */, + const size_t * /* lengths */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_program (CL_API_CALL * +PFNCLCREATEPROGRAMWITHBINARY)(cl_context /* context */, + cl_uint /* num_devices */, + const cl_device_id * /* device_list */, + const size_t * /* lengths */, + const unsigned char ** /* binaries */, + cl_int * /* binary_status */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINPROGRAM)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASEPROGRAM)(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLBUILDPROGRAM)(cl_program /* program */, + cl_uint /* num_devices */, + const cl_device_id * /* device_list */, + const char * /* options */, + void (*pfn_notify)(cl_program /* program */, void * /* user_data */), + void * /* user_data */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLUNLOADCOMPILER)(void) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETPROGRAMINFO)(cl_program /* program */, + cl_program_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETPROGRAMBUILDINFO)(cl_program /* program */, + cl_device_id /* device */, + cl_program_build_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Kernel Object APIs +typedef CL_API_ENTRY cl_kernel (CL_API_CALL * +PFNCLCREATEKERNEL)(cl_program /* program */, + const char * /* kernel_name */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLCREATEKERNELSINPROGRAM)(cl_program /* program */, + cl_uint /* num_kernels */, + cl_kernel * /* kernels */, + cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINKERNEL)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASEKERNEL)(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLSETKERNELARG)(cl_kernel /* kernel */, + cl_uint /* arg_index */, + size_t /* arg_size */, + const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETKERNELINFO)(cl_kernel /* kernel */, + cl_kernel_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETKERNELWORKGROUPINFO)(cl_kernel /* kernel */, + cl_device_id /* device */, + cl_kernel_work_group_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Event Object APIs +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLWAITFOREVENTS)(cl_uint /* num_events */, + const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETEVENTINFO)(cl_event /* event */, + cl_event_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRETAINEVENT)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLRELEASEEVENT)(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0; + +// Profiling APIs +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLGETEVENTPROFILINGINFO)(cl_event /* event */, + cl_profiling_info /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; + +// Flush and Finish APIs +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLFLUSH)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLFINISH)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; + +// Enqueued Commands APIs +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEREADBUFFER)(cl_command_queue /* command_queue */, + cl_mem /* buffer */, + cl_bool /* blocking_read */, + size_t /* offset */, + size_t /* cb */, + void * /* ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEWRITEBUFFER)(cl_command_queue /* command_queue */, + cl_mem /* buffer */, + cl_bool /* blocking_write */, + size_t /* offset */, + size_t /* cb */, + const void * /* ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUECOPYBUFFER)(cl_command_queue /* command_queue */, + cl_mem /* src_buffer */, + cl_mem /* dst_buffer */, + size_t /* src_offset */, + size_t /* dst_offset */, + size_t /* cb */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEREADIMAGE)(cl_command_queue /* command_queue */, + cl_mem /* image */, + cl_bool /* blocking_read */, + const size_t * /* origin[3] */, + const size_t * /* region[3] */, + size_t /* row_pitch */, + size_t /* slice_pitch */, + void * /* ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEWRITEIMAGE)(cl_command_queue /* command_queue */, + cl_mem /* image */, + cl_bool /* blocking_write */, + const size_t * /* origin[3] */, + const size_t * /* region[3] */, + size_t /* input_row_pitch */, + size_t /* input_slice_pitch */, + const void * /* ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUECOPYIMAGE)(cl_command_queue /* command_queue */, + cl_mem /* src_image */, + cl_mem /* dst_image */, + const size_t * /* src_origin[3] */, + const size_t * /* dst_origin[3] */, + const size_t * /* region[3] */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUECOPYIMAGETOBUFFER)(cl_command_queue /* command_queue */, + cl_mem /* src_image */, + cl_mem /* dst_buffer */, + const size_t * /* src_origin[3] */, + const size_t * /* region[3] */, + size_t /* dst_offset */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUECOPYBUFFERTOIMAGE)(cl_command_queue /* command_queue */, + cl_mem /* src_buffer */, + cl_mem /* dst_image */, + size_t /* src_offset */, + const size_t * /* dst_origin[3] */, + const size_t * /* region[3] */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY void * (CL_API_CALL * +PFNCLENQUEUEMAPBUFFER)(cl_command_queue /* command_queue */, + cl_mem /* buffer */, + cl_bool /* blocking_map */, + cl_map_flags /* map_flags */, + size_t /* offset */, + size_t /* cb */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY void * (CL_API_CALL * +PFNCLENQUEUEMAPIMAGE)(cl_command_queue /* command_queue */, + cl_mem /* image */, + cl_bool /* blocking_map */, + cl_map_flags /* map_flags */, + const size_t * /* origin[3] */, + const size_t * /* region[3] */, + size_t * /* image_row_pitch */, + size_t * /* image_slice_pitch */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */, + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEUNMAPMEMOBJECT)(cl_command_queue /* command_queue */, + cl_mem /* memobj */, + void * /* mapped_ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUENDRANGEKERNEL)(cl_command_queue /* command_queue */, + cl_kernel /* kernel */, + cl_uint /* work_dim */, + const size_t * /* global_work_offset */, + const size_t * /* global_work_size */, + const size_t * /* local_work_size */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUETASK)(cl_command_queue /* command_queue */, + cl_kernel /* kernel */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUENATIVEKERNEL)(cl_command_queue /* command_queue */, + void (*user_func)(void *), + void * /* args */, + size_t /* cb_args */, + cl_uint /* num_mem_objects */, + const cl_mem * /* mem_list */, + const void ** /* args_mem_loc */, + cl_uint /* num_events_in_wait_list */, + const cl_event * /* event_wait_list */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEMARKER)(cl_command_queue /* command_queue */, + cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEWAITFOREVENTS)(cl_command_queue /* command_queue */, + cl_uint /* num_events */, + const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +PFNCLENQUEUEBARRIER)(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0; + +// Extension function access +// +// Returns the extension function address for the given function name, +// or NULL if a valid function can not be found. The client must +// check to make sure the address is not NULL, before using or +// calling the returned function address. +// +typedef CL_API_ENTRY void * (CL_API_CALL * PFNCLGETEXTENSIONFUNCTIONADDRESS)(const char * /* func_name */) CL_API_SUFFIX__VERSION_1_0; + + +#define CLEW_STATIC + +#ifdef CLEW_STATIC +# define CLEWAPI extern +#else +# ifdef CLEW_BUILD +# define CLEWAPI extern __declspec(dllexport) +# else +# define CLEWAPI extern __declspec(dllimport) +# endif +#endif + +#if defined(_WIN32) +#define CLEW_FUN_EXPORT extern +#else +#define CLEW_FUN_EXPORT CLEWAPI +#endif + +#define CLEW_GET_FUN(x) x + + +// Variables holding function entry points +CLEW_FUN_EXPORT PFNCLGETPLATFORMIDS __clewGetPlatformIDs ; +CLEW_FUN_EXPORT PFNCLGETPLATFORMINFO __clewGetPlatformInfo ; +CLEW_FUN_EXPORT PFNCLGETDEVICEIDS __clewGetDeviceIDs ; +CLEW_FUN_EXPORT PFNCLGETDEVICEINFO __clewGetDeviceInfo ; +CLEW_FUN_EXPORT PFNCLCREATECONTEXT __clewCreateContext ; +CLEW_FUN_EXPORT PFNCLCREATECONTEXTFROMTYPE __clewCreateContextFromType ; +CLEW_FUN_EXPORT PFNCLRETAINCONTEXT __clewRetainContext ; +CLEW_FUN_EXPORT PFNCLRELEASECONTEXT __clewReleaseContext ; +CLEW_FUN_EXPORT PFNCLGETCONTEXTINFO __clewGetContextInfo ; +CLEW_FUN_EXPORT PFNCLCREATECOMMANDQUEUE __clewCreateCommandQueue ; +CLEW_FUN_EXPORT PFNCLRETAINCOMMANDQUEUE __clewRetainCommandQueue ; +CLEW_FUN_EXPORT PFNCLRELEASECOMMANDQUEUE __clewReleaseCommandQueue ; +CLEW_FUN_EXPORT PFNCLGETCOMMANDQUEUEINFO __clewGetCommandQueueInfo ; +CLEW_FUN_EXPORT PFNCLSETCOMMANDQUEUEPROPERTY __clewSetCommandQueueProperty ; +CLEW_FUN_EXPORT PFNCLCREATEBUFFER __clewCreateBuffer ; +CLEW_FUN_EXPORT PFNCLCREATEIMAGE2D __clewCreateImage2D ; +CLEW_FUN_EXPORT PFNCLCREATEIMAGE3D __clewCreateImage3D ; +CLEW_FUN_EXPORT PFNCLRETAINMEMOBJECT __clewRetainMemObject ; +CLEW_FUN_EXPORT PFNCLRELEASEMEMOBJECT __clewReleaseMemObject ; +CLEW_FUN_EXPORT PFNCLGETSUPPORTEDIMAGEFORMATS __clewGetSupportedImageFormats ; +CLEW_FUN_EXPORT PFNCLGETMEMOBJECTINFO __clewGetMemObjectInfo ; +CLEW_FUN_EXPORT PFNCLGETIMAGEINFO __clewGetImageInfo ; +CLEW_FUN_EXPORT PFNCLCREATESAMPLER __clewCreateSampler ; +CLEW_FUN_EXPORT PFNCLRETAINSAMPLER __clewRetainSampler ; +CLEW_FUN_EXPORT PFNCLRELEASESAMPLER __clewReleaseSampler ; +CLEW_FUN_EXPORT PFNCLGETSAMPLERINFO __clewGetSamplerInfo ; +CLEW_FUN_EXPORT PFNCLCREATEPROGRAMWITHSOURCE __clewCreateProgramWithSource ; +CLEW_FUN_EXPORT PFNCLCREATEPROGRAMWITHBINARY __clewCreateProgramWithBinary ; +CLEW_FUN_EXPORT PFNCLRETAINPROGRAM __clewRetainProgram ; +CLEW_FUN_EXPORT PFNCLRELEASEPROGRAM __clewReleaseProgram ; +CLEW_FUN_EXPORT PFNCLBUILDPROGRAM __clewBuildProgram ; +CLEW_FUN_EXPORT PFNCLUNLOADCOMPILER __clewUnloadCompiler ; +CLEW_FUN_EXPORT PFNCLGETPROGRAMINFO __clewGetProgramInfo ; +CLEW_FUN_EXPORT PFNCLGETPROGRAMBUILDINFO __clewGetProgramBuildInfo ; +CLEW_FUN_EXPORT PFNCLCREATEKERNEL __clewCreateKernel ; +CLEW_FUN_EXPORT PFNCLCREATEKERNELSINPROGRAM __clewCreateKernelsInProgram ; +CLEW_FUN_EXPORT PFNCLRETAINKERNEL __clewRetainKernel ; +CLEW_FUN_EXPORT PFNCLRELEASEKERNEL __clewReleaseKernel ; +CLEW_FUN_EXPORT PFNCLSETKERNELARG __clewSetKernelArg ; +CLEW_FUN_EXPORT PFNCLGETKERNELINFO __clewGetKernelInfo ; +CLEW_FUN_EXPORT PFNCLGETKERNELWORKGROUPINFO __clewGetKernelWorkGroupInfo ; +CLEW_FUN_EXPORT PFNCLWAITFOREVENTS __clewWaitForEvents ; +CLEW_FUN_EXPORT PFNCLGETEVENTINFO __clewGetEventInfo ; +CLEW_FUN_EXPORT PFNCLRETAINEVENT __clewRetainEvent ; +CLEW_FUN_EXPORT PFNCLRELEASEEVENT __clewReleaseEvent ; +CLEW_FUN_EXPORT PFNCLGETEVENTPROFILINGINFO __clewGetEventProfilingInfo ; +CLEW_FUN_EXPORT PFNCLFLUSH __clewFlush ; +CLEW_FUN_EXPORT PFNCLFINISH __clewFinish ; +CLEW_FUN_EXPORT PFNCLENQUEUEREADBUFFER __clewEnqueueReadBuffer ; +CLEW_FUN_EXPORT PFNCLENQUEUEWRITEBUFFER __clewEnqueueWriteBuffer ; +CLEW_FUN_EXPORT PFNCLENQUEUECOPYBUFFER __clewEnqueueCopyBuffer ; +CLEW_FUN_EXPORT PFNCLENQUEUEREADIMAGE __clewEnqueueReadImage ; +CLEW_FUN_EXPORT PFNCLENQUEUEWRITEIMAGE __clewEnqueueWriteImage ; +CLEW_FUN_EXPORT PFNCLENQUEUECOPYIMAGE __clewEnqueueCopyImage ; +CLEW_FUN_EXPORT PFNCLENQUEUECOPYIMAGETOBUFFER __clewEnqueueCopyImageToBuffer ; +CLEW_FUN_EXPORT PFNCLENQUEUECOPYBUFFERTOIMAGE __clewEnqueueCopyBufferToImage ; +CLEW_FUN_EXPORT PFNCLENQUEUEMAPBUFFER __clewEnqueueMapBuffer ; +CLEW_FUN_EXPORT PFNCLENQUEUEMAPIMAGE __clewEnqueueMapImage ; +CLEW_FUN_EXPORT PFNCLENQUEUEUNMAPMEMOBJECT __clewEnqueueUnmapMemObject ; +CLEW_FUN_EXPORT PFNCLENQUEUENDRANGEKERNEL __clewEnqueueNDRangeKernel ; +CLEW_FUN_EXPORT PFNCLENQUEUETASK __clewEnqueueTask ; +CLEW_FUN_EXPORT PFNCLENQUEUENATIVEKERNEL __clewEnqueueNativeKernel ; +CLEW_FUN_EXPORT PFNCLENQUEUEMARKER __clewEnqueueMarker ; +CLEW_FUN_EXPORT PFNCLENQUEUEWAITFOREVENTS __clewEnqueueWaitForEvents ; +CLEW_FUN_EXPORT PFNCLENQUEUEBARRIER __clewEnqueueBarrier ; +CLEW_FUN_EXPORT PFNCLGETEXTENSIONFUNCTIONADDRESS __clewGetExtensionFunctionAddress ; + + +#define clGetPlatformIDs CLEW_GET_FUN(__clewGetPlatformIDs ) +#define clGetPlatformInfo CLEW_GET_FUN(__clewGetPlatformInfo ) +#define clGetDeviceIDs CLEW_GET_FUN(__clewGetDeviceIDs ) +#define clGetDeviceInfo CLEW_GET_FUN(__clewGetDeviceInfo ) +#define clCreateContext CLEW_GET_FUN(__clewCreateContext ) +#define clCreateContextFromType CLEW_GET_FUN(__clewCreateContextFromType ) +#define clRetainContext CLEW_GET_FUN(__clewRetainContext ) +#define clReleaseContext CLEW_GET_FUN(__clewReleaseContext ) +#define clGetContextInfo CLEW_GET_FUN(__clewGetContextInfo ) +#define clCreateCommandQueue CLEW_GET_FUN(__clewCreateCommandQueue ) +#define clRetainCommandQueue CLEW_GET_FUN(__clewRetainCommandQueue ) +#define clReleaseCommandQueue CLEW_GET_FUN(__clewReleaseCommandQueue ) +#define clGetCommandQueueInfo CLEW_GET_FUN(__clewGetCommandQueueInfo ) +#define clSetCommandQueueProperty CLEW_GET_FUN(__clewSetCommandQueueProperty ) +#define clCreateBuffer CLEW_GET_FUN(__clewCreateBuffer ) +#define clCreateImage2D CLEW_GET_FUN(__clewCreateImage2D ) +#define clCreateImage3D CLEW_GET_FUN(__clewCreateImage3D ) +#define clRetainMemObject CLEW_GET_FUN(__clewRetainMemObject ) +#define clReleaseMemObject CLEW_GET_FUN(__clewReleaseMemObject ) +#define clGetSupportedImageFormats CLEW_GET_FUN(__clewGetSupportedImageFormats ) +#define clGetMemObjectInfo CLEW_GET_FUN(__clewGetMemObjectInfo ) +#define clGetImageInfo CLEW_GET_FUN(__clewGetImageInfo ) +#define clCreateSampler CLEW_GET_FUN(__clewCreateSampler ) +#define clRetainSampler CLEW_GET_FUN(__clewRetainSampler ) +#define clReleaseSampler CLEW_GET_FUN(__clewReleaseSampler ) +#define clGetSamplerInfo CLEW_GET_FUN(__clewGetSamplerInfo ) +#define clCreateProgramWithSource CLEW_GET_FUN(__clewCreateProgramWithSource ) +#define clCreateProgramWithBinary CLEW_GET_FUN(__clewCreateProgramWithBinary ) +#define clRetainProgram CLEW_GET_FUN(__clewRetainProgram ) +#define clReleaseProgram CLEW_GET_FUN(__clewReleaseProgram ) +#define clBuildProgram CLEW_GET_FUN(__clewBuildProgram ) +#define clUnloadCompiler CLEW_GET_FUN(__clewUnloadCompiler ) +#define clGetProgramInfo CLEW_GET_FUN(__clewGetProgramInfo ) +#define clGetProgramBuildInfo CLEW_GET_FUN(__clewGetProgramBuildInfo ) +#define clCreateKernel CLEW_GET_FUN(__clewCreateKernel ) +#define clCreateKernelsInProgram CLEW_GET_FUN(__clewCreateKernelsInProgram ) +#define clRetainKernel CLEW_GET_FUN(__clewRetainKernel ) +#define clReleaseKernel CLEW_GET_FUN(__clewReleaseKernel ) +#define clSetKernelArg CLEW_GET_FUN(__clewSetKernelArg ) +#define clGetKernelInfo CLEW_GET_FUN(__clewGetKernelInfo ) +#define clGetKernelWorkGroupInfo CLEW_GET_FUN(__clewGetKernelWorkGroupInfo ) +#define clWaitForEvents CLEW_GET_FUN(__clewWaitForEvents ) +#define clGetEventInfo CLEW_GET_FUN(__clewGetEventInfo ) +#define clRetainEvent CLEW_GET_FUN(__clewRetainEvent ) +#define clReleaseEvent CLEW_GET_FUN(__clewReleaseEvent ) +#define clGetEventProfilingInfo CLEW_GET_FUN(__clewGetEventProfilingInfo ) +#define clFlush CLEW_GET_FUN(__clewFlush ) +#define clFinish CLEW_GET_FUN(__clewFinish ) +#define clEnqueueReadBuffer CLEW_GET_FUN(__clewEnqueueReadBuffer ) +#define clEnqueueWriteBuffer CLEW_GET_FUN(__clewEnqueueWriteBuffer ) +#define clEnqueueCopyBuffer CLEW_GET_FUN(__clewEnqueueCopyBuffer ) +#define clEnqueueReadImage CLEW_GET_FUN(__clewEnqueueReadImage ) +#define clEnqueueWriteImage CLEW_GET_FUN(__clewEnqueueWriteImage ) +#define clEnqueueCopyImage CLEW_GET_FUN(__clewEnqueueCopyImage ) +#define clEnqueueCopyImageToBuffer CLEW_GET_FUN(__clewEnqueueCopyImageToBuffer ) +#define clEnqueueCopyBufferToImage CLEW_GET_FUN(__clewEnqueueCopyBufferToImage ) +#define clEnqueueMapBuffer CLEW_GET_FUN(__clewEnqueueMapBuffer ) +#define clEnqueueMapImage CLEW_GET_FUN(__clewEnqueueMapImage ) +#define clEnqueueUnmapMemObject CLEW_GET_FUN(__clewEnqueueUnmapMemObject ) +#define clEnqueueNDRangeKernel CLEW_GET_FUN(__clewEnqueueNDRangeKernel ) +#define clEnqueueTask CLEW_GET_FUN(__clewEnqueueTask ) +#define clEnqueueNativeKernel CLEW_GET_FUN(__clewEnqueueNativeKernel ) +#define clEnqueueMarker CLEW_GET_FUN(__clewEnqueueMarker ) +#define clEnqueueWaitForEvents CLEW_GET_FUN(__clewEnqueueWaitForEvents ) +#define clEnqueueBarrier CLEW_GET_FUN(__clewEnqueueBarrier ) +#define clGetExtensionFunctionAddress CLEW_GET_FUN(__clewGetExtensionFunctionAddress ) + +#endif // CLCC_GENERATE_DOCUMENTATION + +#define CLEW_SUCCESS 0 //!< Success error code +#define CLEW_ERROR_OPEN_FAILED -1 //!< Error code for failing to open the dynamic library +#define CLEW_ERROR_ATEXIT_FAILED -2 //!< Error code for failing to queue the closing of the dynamic library to atexit() + +int clLibraryInit(void); +const char *clErrorString(cl_int error); + +#ifdef __cplusplus +} +#endif + +#endif /* __UTIL_OPENCL_H__ */ + diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 0c5f15c130b..8afd7e2f3c4 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -739,7 +739,6 @@ if(WITH_CYCLES) cycles_subd) endif() - #if(UNIX) # Sort libraries set(BLENDER_SORTED_LIBS -- cgit v1.2.3 From 8ddef5163fc7bad1c55b6b8c1d9f6f349719800b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 19:43:57 +0000 Subject: Cycles: fix broken kernel compile after recent change, some tweaks to UI to only show options when available, fix linux lib detection. --- intern/cycles/blender/addon/enums.py | 2 +- intern/cycles/blender/addon/ui.py | 10 +++++++--- intern/cycles/blender/blender_sync.cpp | 28 +++++++++++++++++++--------- intern/cycles/kernel/kernel_shader.h | 2 +- intern/cycles/util/util_opencl.c | 2 +- 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 0ae97184e65..4f0666cf1e8 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -22,7 +22,7 @@ devices = ( gpu_type = ( ("CUDA", "CUDA", "NVidia only"), -("OPENCL", "OpenCL", "")) +("OPENCL", "OpenCL (incomplete)", "")) shading_systems = ( ("GPU_COMPATIBLE", "GPU Compatible", "Restricted shading system compatible with GPU rendering"), diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ca6800e7fa0..da99e4e23d6 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -522,10 +522,14 @@ def draw_device(self, context): if scene.render.engine == "CYCLES": cscene = scene.cycles - if ('cuda' or 'opencl') in engine.available_devices(): + available_devices = engine.available_devices() + available_cuda = 'cuda' in available_devices + available_opencl = 'opencl' in available_devices + + if available_cuda or available_opencl: layout.prop(cscene, "device") - if cscene.device == 'GPU': - layout.prop(cscene, "gpu_type", expand=True) + if cscene.device == 'GPU' and available_cuda and available_opencl: + layout.prop(cscene, "gpu_type") if cscene.device == 'CPU' and engine.with_osl(): layout.prop(cscene, "shading_system") diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 0c447c0512e..ea5d0a1a3c6 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -199,24 +199,34 @@ bool BlenderSync::get_session_pause(BL::Scene b_scene, bool background) return (background)? false: get_boolean(cscene, "preview_pause"); } +static bool device_type_available(vector& types, DeviceType dtype) +{ + foreach(DeviceType dt, types) + if(dt == dtype) + return true; + + return false; +} + SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background) { SessionParams params; - DeviceType dtype; PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); /* device type */ - if ((RNA_enum_get(&cscene, "device")) == 0) - dtype = DEVICE_CPU; - else - dtype = ((RNA_enum_get(&cscene, "gpu_type")) == 0)? DEVICE_CUDA: DEVICE_OPENCL; - params.device_type = DEVICE_CPU; - vector types = Device::available_types(); - foreach(DeviceType dt, types) - if(dt == dtype) + if(RNA_enum_get(&cscene, "device") != 0) { + vector types = Device::available_types(); + DeviceType dtype = (RNA_enum_get(&cscene, "gpu_type") == 0)? DEVICE_CUDA: DEVICE_OPENCL; + + if(device_type_available(types, dtype)) params.device_type = dtype; + else if(device_type_available(types, DEVICE_OPENCL)) + params.device_type = DEVICE_OPENCL; + else if(device_type_available(types, DEVICE_CUDA)) + params.device_type = DEVICE_CUDA; + } /* Background */ params.background = background; diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index ed3aec21207..237033eff8b 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -357,8 +357,8 @@ __device float3 shader_holdout_eval(KernelGlobals *kg, ShaderData *sd) if(sd->svm_closure == CLOSURE_HOLDOUT_ID) return make_float3(1.0f, 1.0f, 1.0f); else - return make_float3(0.0f, 0.0f, 0.0f); #endif + return make_float3(0.0f, 0.0f, 0.0f); } } diff --git a/intern/cycles/util/util_opencl.c b/intern/cycles/util/util_opencl.c index b049a7b44ce..d0b7bb331a8 100755 --- a/intern/cycles/util/util_opencl.c +++ b/intern/cycles/util/util_opencl.c @@ -134,7 +134,7 @@ int clLibraryInit() #elif defined(__APPLE__) const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL"; #else - const char *path = "libopencl.so"; + const char *path = "libOpenCL.so"; #endif int error = 0; -- cgit v1.2.3 From 1f7ac51c360f69e82244324161c87cbc32c518fb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 22:40:52 +0000 Subject: Cycles: fix opencl device bug that crashed on windows. Now shows diffuse meshes here on windows/nvidia. --- intern/cycles/device/device_opencl.cpp | 3 ++- intern/cycles/kernel/kernel_shader.h | 2 +- intern/cycles/util/util_opencl.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index d67fdc970a9..4020cc87392 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -140,13 +140,14 @@ public: /* compile kernel */ string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); size_t source_len = source.size(); + const char *source_str = source.c_str(); string build_options = ""; build_options += "-I " + path_get("kernel") + " -I " + path_get("util"); /* todo: escape path */ build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; - cpProgram = clCreateProgramWithSource(cxContext, 1, (const char **)&source, &source_len, &ciErr); + cpProgram = clCreateProgramWithSource(cxContext, 1, (const char **)&source_str, &source_len, &ciErr); opencl_assert(ciErr); diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 237033eff8b..92d920b5c61 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -377,7 +377,7 @@ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, #ifdef __SVM__ svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag); #else - sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; + bsdf_diffuse_setup(sd, sd->N); sd->svm_closure_weight = make_float3(0.8f, 0.8f, 0.8f); #endif diff --git a/intern/cycles/util/util_opencl.c b/intern/cycles/util/util_opencl.c index d0b7bb331a8..10429ffcd80 100755 --- a/intern/cycles/util/util_opencl.c +++ b/intern/cycles/util/util_opencl.c @@ -130,7 +130,7 @@ static void clewExit(void) int clLibraryInit() { #ifdef _WIN32 - const char *path = "opencl.dll"; + const char *path = "OpenCL.dll"; #elif defined(__APPLE__) const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL"; #else -- cgit v1.2.3 From 5feb921eba6b954c838724880aeda2576106089d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 22:53:11 +0000 Subject: Cycles: revert fix for integrator preset refresh, it causes continuous redraw leading to high cpu usage, need to find better solution. --- source/blender/makesrna/intern/rna_access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index bb61d34b404..59e92ee4619 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1378,7 +1378,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return ((prop->magic != RNA_MAGIC) || (prop->flag & PROP_IDPROPERTY)|| prop->update || prop->noteflag); + return ((prop->magic != RNA_MAGIC) || prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) -- cgit v1.2.3 From 3c7dcd7a471002efef504a2b0856a86b76cdfaf5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 2 Sep 2011 00:10:03 +0000 Subject: Cycles: compile opencl kernels in non-blocking thread, and don't crash on build failure but show error message in status text. --- intern/cycles/device/device.h | 3 +++ intern/cycles/device/device_cuda.cpp | 29 +++++++++++++++++++------ intern/cycles/device/device_opencl.cpp | 39 ++++++++++++++++++++++------------ intern/cycles/render/session.cpp | 9 ++++++++ intern/cycles/util/util_math.h | 12 ++++++++--- intern/cycles/util/util_string.cpp | 4 ++-- intern/cycles/util/util_string.h | 2 +- 7 files changed, 72 insertions(+), 26 deletions(-) diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index 87683ae4719..aa9cb9eb8f4 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -108,6 +108,9 @@ public: /* open shading language, only for CPU device */ virtual void *osl_memory() { return NULL; } + /* load/compile kernels, must be called before adding tasks */ + virtual bool load_kernels() { return true; } + /* tasks */ virtual void task_add(DeviceTask& task) = 0; virtual void task_wait() = 0; diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index cc1c1275bf4..a6a66873b92 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -137,7 +137,6 @@ public: CUDADevice(bool background_) { - int major, minor; background = background_; cuDevId = 0; @@ -153,11 +152,6 @@ public: else cuda_assert(cuGLCtxCreate(&cuContext, 0, cuDevice)) - /* open module */ - cuDeviceComputeCapability(&major, &minor, cuDevId); - string cubin = string_printf("lib/kernel_sm_%d%d.cubin", major, minor); - cuda_assert(cuModuleLoad(&cuModule, path_get(cubin).c_str())) - cuda_pop_context(); } @@ -179,6 +173,27 @@ public: return string("CUDA ") + deviceName; } + + bool load_kernels() + { + CUresult result; + int major, minor; + + cuda_push_context(); + + /* open module */ + cuDeviceComputeCapability(&major, &minor, cuDevId); + string cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor)); + + result = cuModuleLoad(&cuModule, cubin.c_str()); + if(result != CUDA_SUCCESS) + fprintf(stderr, "Failed loading CUDA kernel %s (%s).\n", cubin.c_str(), cuda_error_string(result)); + + cuda_pop_context(); + + return (result == CUDA_SUCCESS); + } + void mem_alloc(device_memory& mem, MemoryType type) { cuda_push_context(); @@ -231,7 +246,7 @@ public: cuda_push_context(); cuda_assert(cuModuleGetGlobal(&mem, &bytes, cuModule, name)) - assert(bytes == size); + //assert(bytes == size); cuda_assert(cuMemcpyHtoD(mem, host, size)) cuda_pop_context(); } diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 4020cc87392..afde8ac4c82 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -136,7 +136,16 @@ public: cqCommandQueue = clCreateCommandQueue(cxContext, cdDevice, 0, &ciErr); opencl_assert(ciErr); - + + null_mem = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); + + cpProgram = NULL; + ckPathTraceKernel = NULL; + ckFilmConvertKernel = NULL; + } + + bool load_kernels() + { /* compile kernel */ string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); size_t source_len = source.size(); @@ -152,6 +161,7 @@ public: opencl_assert(ciErr); ciErr = clBuildProgram(cpProgram, 0, NULL, build_options.c_str(), NULL, NULL); + if(ciErr != CL_SUCCESS) { char *build_log; size_t ret_val_size; @@ -162,13 +172,11 @@ public: clGetProgramBuildInfo(cpProgram, cdDevice, CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL); build_log[ret_val_size] = '\0'; - printf("OpenCL build failed:\n %s\n", build_log); + fprintf(stderr, "OpenCL build failed:\n %s\n", build_log); delete[] build_log; - opencl_assert(ciErr); - - return; + return false; } ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); @@ -176,13 +184,13 @@ public: ckFilmConvertKernel = clCreateKernel(cpProgram, "kernel_ocl_tonemap", &ciErr); opencl_assert(ciErr); - null_mem = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); + return true; } ~OpenCLDevice() { - - clReleaseMemObject(CL_MEM_PTR(null_mem)); + if(null_mem) + clReleaseMemObject(CL_MEM_PTR(null_mem)); map*>::iterator mt; for(mt = const_mem_map.begin(); mt != const_mem_map.end(); mt++) { @@ -190,11 +198,16 @@ public: delete mt->second; } - clReleaseKernel(ckPathTraceKernel); - clReleaseKernel(ckFilmConvertKernel); - clReleaseProgram(cpProgram); - clReleaseCommandQueue(cqCommandQueue); - clReleaseContext(cxContext); + if(ckPathTraceKernel) + clReleaseKernel(ckPathTraceKernel); + if(ckFilmConvertKernel) + clReleaseKernel(ckFilmConvertKernel); + if(cpProgram) + clReleaseProgram(cpProgram); + if(cqCommandQueue) + clReleaseCommandQueue(cqCommandQueue); + if(cxContext) + clReleaseContext(cxContext); } string description() diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 52366f06337..daa10ad4f19 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -380,6 +380,15 @@ void Session::run_cpu() void Session::run() { + /* load kernels */ + progress.set_status("Loading render kernels"); + + if(!device->load_kernels()) { + progress.set_status("Failed loading render kernel, see console for errors"); + progress.set_update(); + return; + } + /* session thread loop */ progress.set_status("Waiting for render to start"); diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index c435a9e17b8..8e52b98d52b 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -38,14 +38,20 @@ CCL_NAMESPACE_BEGIN -#ifndef __KERNEL_OPENCL__ - +#ifndef M_PI_F #define M_PI_F ((float)3.14159265358979323846264338327950288) +#endif +#ifndef M_PI_2_F #define M_PI_2_F ((float)1.57079632679489661923132169163975144) +#endif +#ifndef M_PI_4_F #define M_PI_4_F ((float)0.785398163397448309615660845819875721) +#endif +#ifndef M_1_PI_F #define M_1_PI_F ((float)0.318309886183790671537767526745028724) +#endif +#ifndef M_2_PI_F #define M_2_PI_F ((float)0.636619772367581343075535053490057448) - #endif /* Scalar */ diff --git a/intern/cycles/util/util_string.cpp b/intern/cycles/util/util_string.cpp index aaa482eec0d..0dac9a8142a 100644 --- a/intern/cycles/util/util_string.cpp +++ b/intern/cycles/util/util_string.cpp @@ -77,11 +77,11 @@ bool string_iequals(const string& a, const string& b) return false; } -void string_split(vector& tokens, const string& str) +void string_split(vector& tokens, const string& str, const string& separators) { vector split; - boost::split(split, str, boost::is_any_of("\t "), boost::token_compress_on); + boost::split(split, str, boost::is_any_of(separators), boost::token_compress_on); foreach(const string& token, split) if(token != "") diff --git a/intern/cycles/util/util_string.h b/intern/cycles/util/util_string.h index 72b893d2b17..342edd53658 100644 --- a/intern/cycles/util/util_string.h +++ b/intern/cycles/util/util_string.h @@ -41,7 +41,7 @@ using std::istringstream; string string_printf(const char *format, ...) PRINTF_ATTRIBUTE; bool string_iequals(const string& a, const string& b); -void string_split(vector& tokens, const string& str); +void string_split(vector& tokens, const string& str, const string& separators = "\t "); CCL_NAMESPACE_END -- cgit v1.2.3 From fefbdc4376b6bacdaba0ad50da3c706289301b3d Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 2 Sep 2011 00:53:00 +0000 Subject: Cycles: Remove warning of OpenCL not working from cmake, could be made enabled by default too, but will leave that for Brecht. :) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb4323416ca..d1b4a9a7590 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -208,7 +208,7 @@ option(WITH_API_INSTALL "Copy API header files into the blender install fold option(WITH_CYCLES "Enable Cycles Render Engine" ON) OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) -OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF) +OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support" OFF) OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) -- cgit v1.2.3 From f10a5c9dc7f864b50c6bec3bf814fbd5e3056ba8 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 2 Sep 2011 12:46:37 +0000 Subject: Cycles UI: * If only CUDA or OpenCL is available, show the available one in the device button. --- intern/cycles/blender/addon/enums.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 4f0666cf1e8..9842f2347a5 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -16,9 +16,24 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # +from cycles import engine + +def get_gpu_device(): + available_devices = engine.available_devices() + cuda = 'cuda' in available_devices + opencl = 'opencl' in available_devices + if cuda and opencl: + gpu_string = "GPU" + elif cuda and not opencl: + gpu_string = "GPU (CUDA)" + else: + gpu_string = "GPU (OpenCL)" + + return gpu_string + devices = ( ("CPU", "CPU", "Processor"), -("GPU", "GPU", "Graphics card")) +("GPU", get_gpu_device(), "Graphics card")) gpu_type = ( ("CUDA", "CUDA", "NVidia only"), -- cgit v1.2.3 From 1135875ab1501ff38184b91dc541aa8a2fe89c92 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 2 Sep 2011 14:55:06 +0000 Subject: Cycles: * Fix crash in light path node * Fix struct alignment issue for cuda * Fix issue with instances taking up too much memory * Fix issue with ray visibility working incorrect on some objects * Enable OpenCL always and remove option, it has no dependencies so may as well * Refuse to load kernel if OpenCL version < 1.1, recent drivers are needed * Better error handling for OpenCL device * 3D views with rendered draw mode will now revert to wireframe on file load --- CMakeLists.txt | 1 - intern/cycles/CMakeLists.txt | 4 +- intern/cycles/bvh/bvh.cpp | 29 ++++++-- intern/cycles/device/device_opencl.cpp | 105 ++++++++++++++++++++++++---- intern/cycles/kernel/CMakeLists.txt | 26 ++++--- intern/cycles/kernel/kernel_types.h | 3 - intern/cycles/render/nodes.cpp | 3 +- intern/cycles/util/util_opencl.h | 12 ++++ source/blender/blenloader/intern/readfile.c | 4 ++ 9 files changed, 146 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a09d208c9ab..b57d58258cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -208,7 +208,6 @@ option(WITH_API_INSTALL "Copy API header files into the blender install fold option(WITH_CYCLES "Enable Cycles Render Engine" ON) OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) -OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support" OFF) OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 5fce056259a..fd501b85be9 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -52,9 +52,7 @@ if(WITH_CYCLES_PARTIO) add_definitions(-DWITH_PARTIO) endif() -if(WITH_CYCLES_OPENCL) - add_definitions(-DWITH_OPENCL) -endif() +add_definitions(-DWITH_OPENCL) include_directories( ${BOOST_INCLUDE_DIR} diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index 9bd748157bf..3be1f822ed7 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -27,6 +27,7 @@ #include "util_cache.h" #include "util_debug.h" #include "util_foreach.h" +#include "util_map.h" #include "util_progress.h" #include "util_types.h" @@ -287,17 +288,25 @@ void BVH::pack_instances(size_t nodes_size) size_t pack_nodes_offset = nodes_size; size_t object_offset = 0; + map mesh_map; + foreach(Object *ob, objects) { Mesh *mesh = ob->mesh; BVH *bvh = mesh->bvh; if(!mesh->transform_applied) { - prim_index_size += bvh->pack.prim_index.size(); - tri_woop_size += bvh->pack.tri_woop.size(); - nodes_size += bvh->pack.nodes.size()*nsize; + if(mesh_map.find(mesh) == mesh_map.end()) { + prim_index_size += bvh->pack.prim_index.size(); + tri_woop_size += bvh->pack.tri_woop.size(); + nodes_size += bvh->pack.nodes.size()*nsize; + + mesh_map[mesh] = 1; + } } } + mesh_map.clear(); + pack.prim_index.resize(prim_index_size); pack.prim_object.resize(prim_index_size); pack.prim_visibility.resize(prim_index_size); @@ -322,6 +331,16 @@ void BVH::pack_instances(size_t nodes_size) continue; } + /* if mesh already added once, don't add it again, but used set + node offset for this object */ + map::iterator it = mesh_map.find(mesh); + + if(mesh_map.find(mesh) != mesh_map.end()) { + int noffset = it->second; + pack.object_node[object_offset++] = noffset; + continue; + } + BVH *bvh = mesh->bvh; int noffset = nodes_offset/nsize; @@ -333,6 +352,8 @@ void BVH::pack_instances(size_t nodes_size) else pack.object_node[object_offset++] = noffset; + mesh_map[mesh] = pack.object_node[object_offset-1]; + /* merge primitive and object indexes */ { size_t bvh_prim_index_size = bvh->pack.prim_index.size(); @@ -341,7 +362,7 @@ void BVH::pack_instances(size_t nodes_size) for(size_t i = 0; i < bvh_prim_index_size; i++) { pack_prim_index[pack_prim_index_offset] = bvh_prim_index[i] + mesh_tri_offset; - pack_prim_visibility[pack_prim_index_offset] = bvh_prim_visibility[i] + mesh_tri_offset; + pack_prim_visibility[pack_prim_index_offset] = bvh_prim_visibility[i]; pack_prim_object[pack_prim_index_offset] = 0; // unused for instances pack_prim_index_offset++; } diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index afde8ac4c82..9d25b6df529 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -49,6 +49,7 @@ public: map*> const_mem_map; map mem_map; device_ptr null_mem; + bool device_initialized; const char *opencl_error_string(cl_int err) { @@ -103,50 +104,120 @@ public: } } + bool opencl_error(cl_int err) + { + if(err != CL_SUCCESS) { + fprintf(stderr, "OpenCL error (%d): %s\n", err, opencl_error_string(err)); + return true; + } + + return false; + } + void opencl_assert(cl_int err) { if(err != CL_SUCCESS) { printf("error (%d): %s\n", err, opencl_error_string(err)); +#ifndef NDEBUG abort(); +#endif } } OpenCLDevice(bool background_) { background = background_; + cpPlatform = NULL; + cxContext = NULL; + cqCommandQueue = NULL; + cpProgram = NULL; + ckPathTraceKernel = NULL; + ckFilmConvertKernel = NULL; + null_mem = 0; + device_initialized = false; + vector platform_ids; cl_uint num_platforms; /* setup device */ ciErr = clGetPlatformIDs(0, NULL, &num_platforms); - opencl_assert(ciErr); - assert(num_platforms != 0); + if(opencl_error(ciErr)) + return; + + if(num_platforms == 0) { + fprintf(stderr, "OpenCL: no platforms found.\n"); + return; + } platform_ids.resize(num_platforms); ciErr = clGetPlatformIDs(num_platforms, &platform_ids[0], NULL); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return; cpPlatform = platform_ids[0]; /* todo: pick specified platform && device */ ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_ALL, 1, &cdDevice, NULL); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return; cxContext = clCreateContext(0, 1, &cdDevice, NULL, NULL, &ciErr); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return; cqCommandQueue = clCreateCommandQueue(cxContext, cdDevice, 0, &ciErr); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return; null_mem = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); + device_initialized = true; + } - cpProgram = NULL; - ckPathTraceKernel = NULL; - ckFilmConvertKernel = NULL; + bool opencl_version_check() + { + char version[256]; + int major, minor, req_major = 1, req_minor = 1; + + clGetPlatformInfo(cpPlatform, CL_PLATFORM_VERSION, sizeof(version), &version, NULL); + + if(sscanf(version, "OpenCL %d.%d", &major, &minor) < 2) { + fprintf(stderr, "OpenCL: failed to parse platform version string (%s).", version); + return false; + } + + if(!((major == req_major && minor >= req_minor) || (major > req_major))) { + fprintf(stderr, "OpenCL: platform version 1.1 or later required, found %d.%d\n", major, minor); + return false; + } + + clGetDeviceInfo(cdDevice, CL_DEVICE_OPENCL_C_VERSION, sizeof(version), &version, NULL); + + if(sscanf(version, "OpenCL C %d.%d", &major, &minor) < 2) { + fprintf(stderr, "OpenCL: failed to parse OpenCL C version string (%s).", version); + return false; + } + + if(!((major == req_major && minor >= req_minor) || (major > req_major))) { + fprintf(stderr, "OpenCL: C version 1.1 or later required, found %d.%d\n", major, minor); + return false; + } + + /* we don't check CL_DEVICE_VERSION since for e.g. nvidia sm 1.3 cards this is + 1.0 even if the language features are there, just limited shared memory */ + + return true; } bool load_kernels() { - /* compile kernel */ + /* verify if device was initialized */ + if(!device_initialized) + return false; + + /* verify we have right opencl version */ + if(!opencl_version_check()) + return false; + + /* compile source */ string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); size_t source_len = source.size(); const char *source_str = source.c_str(); @@ -156,9 +227,9 @@ public: build_options += "-I " + path_get("kernel") + " -I " + path_get("util"); /* todo: escape path */ build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; - cpProgram = clCreateProgramWithSource(cxContext, 1, (const char **)&source_str, &source_len, &ciErr); - - opencl_assert(ciErr); + cpProgram = clCreateProgramWithSource(cxContext, 1, &source_str, &source_len, &ciErr); + if(opencl_error(ciErr)) + return false; ciErr = clBuildProgram(cpProgram, 0, NULL, build_options.c_str(), NULL, NULL); @@ -179,10 +250,14 @@ public: return false; } + /* find kernels */ ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return false; + ckFilmConvertKernel = clCreateKernel(cpProgram, "kernel_ocl_tonemap", &ciErr); - opencl_assert(ciErr); + if(opencl_error(ciErr)) + return false; return true; } diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 7c77bf7ff82..31fe6994a1a 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -123,18 +123,16 @@ endif() # OPENCL kernel -if(WITH_CYCLES_OPENCL) - #set(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) - #add_custom_command( - # OUTPUT ${kernel_preprocessed} - # COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${kernel_preprocessed} - # DEPENDS ${kernel_sources} ${util_headers}) - #add_custom_target(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) - #delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${kernel_preprocessed}" ${CYCLES_INSTALL_PATH}/kernel) - - delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cl" ${CYCLES_INSTALL_PATH}/kernel) - delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${headers}" ${CYCLES_INSTALL_PATH}/kernel) - delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${svm_headers}" ${CYCLES_INSTALL_PATH}/kernel/svm) - delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${util_headers}" ${CYCLES_INSTALL_PATH}/kernel) -endif() +#set(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) +#add_custom_command( +# OUTPUT ${kernel_preprocessed} +# COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${kernel_preprocessed} +# DEPENDS ${kernel_sources} ${util_headers}) +#add_custom_target(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) +#delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${kernel_preprocessed}" ${CYCLES_INSTALL_PATH}/kernel) + +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cl" ${CYCLES_INSTALL_PATH}/kernel) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${headers}" ${CYCLES_INSTALL_PATH}/kernel) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${svm_headers}" ${CYCLES_INSTALL_PATH}/kernel/svm) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${util_headers}" ${CYCLES_INSTALL_PATH}/kernel) diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 5881f090944..3f7abbeca84 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -371,9 +371,6 @@ typedef struct KernelIntegrator { /* caustics */ int no_caustics; float blur_caustics; - - /* padding */ - int pad[2]; } KernelIntegrator; typedef struct KernelBVH { diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 900115d2231..0ff774bce59 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1490,8 +1490,9 @@ LightPathNode::LightPathNode() add_output("Is Shadow Ray", SHADER_SOCKET_FLOAT); add_output("Is Diffuse Ray", SHADER_SOCKET_FLOAT); add_output("Is Glossy Ray", SHADER_SOCKET_FLOAT); - add_output("Is Transmission Ray", SHADER_SOCKET_FLOAT); add_output("Is Singular Ray", SHADER_SOCKET_FLOAT); + add_output("Is Reflection Ray", SHADER_SOCKET_FLOAT); + add_output("Is Transmission Ray", SHADER_SOCKET_FLOAT); } void LightPathNode::compile(SVMCompiler& compiler) diff --git a/intern/cycles/util/util_opencl.h b/intern/cycles/util/util_opencl.h index 0c643e5d475..d3c95289101 100755 --- a/intern/cycles/util/util_opencl.h +++ b/intern/cycles/util/util_opencl.h @@ -482,6 +482,18 @@ typedef struct _cl_image_format { #define CL_DEVICE_VERSION 0x102F #define CL_DEVICE_EXTENSIONS 0x1030 #define CL_DEVICE_PLATFORM 0x1031 +/* 0x1032 reserved for CL_DEVICE_DOUBLE_FP_CONFIG */ +/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */ +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 +#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C +#define CL_DEVICE_OPENCL_C_VERSION 0x103D // cl_device_fp_config - bitfield #define CL_FP_DENORM (1 << 0) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 336e373012c..f11da97a1a0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5414,6 +5414,10 @@ static void direct_link_screen(FileData *fd, bScreen *sc) v3d->afterdraw_xray.first= v3d->afterdraw_xray.last= NULL; v3d->afterdraw_xraytransp.first= v3d->afterdraw_xraytransp.last= NULL; v3d->properties_storage= NULL; + + /* render can be quite heavy, set to wire on load */ + if(v3d->drawtype == OB_RENDER) + v3d->drawtype = OB_WIRE; view3d_split_250(v3d, &sl->regionbase); } -- cgit v1.2.3 From 67030aaf84229b4d0dc52fbe07e91c2c9d320b0d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 2 Sep 2011 16:15:18 +0000 Subject: Cycles: optimizations for instances in scene updates before render starts, should load a non-trivial mesh instanced many times quite a bit faster now. --- intern/cycles/device/device_opencl.cpp | 7 +++- intern/cycles/render/light.cpp | 63 ++++++++++++++++++++++++---------- intern/cycles/render/object.cpp | 45 ++++++++++++++++++------ intern/cycles/util/util_transform.h | 24 +++++++++++++ 4 files changed, 109 insertions(+), 30 deletions(-) diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 9d25b6df529..787f0e6feab 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -217,8 +217,13 @@ public: if(!opencl_version_check()) return false; + /* nvidia opencl cache doesn't not work correct with includes, so force recompile */ + static double recompile_trick = 0.0; + if(recompile_trick == 0.0) + recompile_trick = time_dt(); + /* compile source */ - string source = string_printf("#include \"kernel.cl\" // %lf\n", time_dt()); + string source = string_printf("#include \"kernel.cl\" // %lf\n", recompile_trick); size_t source_len = source.size(); const char *source_str = source.c_str(); diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index 88a797f753d..feb9e35e785 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -61,12 +61,24 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen foreach(Object *object, scene->objects) { Mesh *mesh = object->mesh; + bool have_emission = false; - for(size_t i = 0; i < mesh->triangles.size(); i++) { - Shader *shader = scene->shaders[mesh->shader[i]]; + /* skip if we have no emission shaders */ + foreach(uint sindex, mesh->used_shaders) { + if(scene->shaders[sindex]->has_surface_emission) { + have_emission = true; + break; + } + } - if(shader->has_surface_emission) - num_triangles++; + /* count triangles */ + if(have_emission) { + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Shader *shader = scene->shaders[mesh->shader[i]]; + + if(shader->has_surface_emission) + num_triangles++; + } } } @@ -82,25 +94,38 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen foreach(Object *object, scene->objects) { Mesh *mesh = object->mesh; - Transform tfm = object->tfm; - int object_id = (mesh->transform_applied)? -j-1: j; + bool have_emission = false; + + /* skip if we have no emission shaders */ + foreach(uint sindex, mesh->used_shaders) { + if(scene->shaders[sindex]->has_surface_emission) { + have_emission = true; + break; + } + } + + /* sum area */ + if(have_emission) { + Transform tfm = object->tfm; + int object_id = (mesh->transform_applied)? -j-1: j; - for(size_t i = 0; i < mesh->triangles.size(); i++) { - Shader *shader = scene->shaders[mesh->shader[i]]; + for(size_t i = 0; i < mesh->triangles.size(); i++) { + Shader *shader = scene->shaders[mesh->shader[i]]; - if(shader->has_surface_emission) { - distribution[offset].x = totarea; - distribution[offset].y = __int_as_float(i + mesh->tri_offset); - distribution[offset].z = 1.0f; - distribution[offset].w = __int_as_float(object_id); - offset++; + if(shader->has_surface_emission) { + distribution[offset].x = totarea; + distribution[offset].y = __int_as_float(i + mesh->tri_offset); + distribution[offset].z = 1.0f; + distribution[offset].w = __int_as_float(object_id); + offset++; - Mesh::Triangle t = mesh->triangles[i]; - float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); - float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); - float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); + Mesh::Triangle t = mesh->triangles[i]; + float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); + float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); + float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); - totarea += triangle_area(p1, p2, p3); + totarea += triangle_area(p1, p2, p3); + } } } diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 4ba2de6e61b..fab051bde72 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -22,6 +22,7 @@ #include "scene.h" #include "util_foreach.h" +#include "util_map.h" #include "util_progress.h" CCL_NAMESPACE_BEGIN @@ -103,6 +104,7 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene { float4 *objects = dscene->objects.resize(OBJECT_SIZE*scene->objects.size()); int i = 0; + map surface_area_map; foreach(Object *ob, scene->objects) { Mesh *mesh = ob->mesh; @@ -112,16 +114,39 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene Transform itfm = transform_inverse(tfm); Transform ntfm = transform_transpose(itfm); - /* compute surface area */ + /* compute surface area. for uniform scale we can do avoid the many + transform calls and share computation for instances */ /* todo: correct for displacement, and move to a better place */ - float surfacearea = 0.0f; - - foreach(Mesh::Triangle& t, mesh->triangles) { - float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); - float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); - float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); - - surfacearea += triangle_area(p1, p2, p3); + float uniform_scale; + float surface_area = 0.0f; + + if(transform_uniform_scale(tfm, uniform_scale)) { + map::iterator it = surface_area_map.find(mesh); + + if(it == surface_area_map.end()) { + foreach(Mesh::Triangle& t, mesh->triangles) { + float3 p1 = mesh->verts[t.v[0]]; + float3 p2 = mesh->verts[t.v[1]]; + float3 p3 = mesh->verts[t.v[2]]; + + surface_area += triangle_area(p1, p2, p3); + } + + surface_area_map[mesh] = surface_area; + } + else + surface_area = it->second; + + surface_area *= uniform_scale; + } + else { + foreach(Mesh::Triangle& t, mesh->triangles) { + float3 p1 = transform(&tfm, mesh->verts[t.v[0]]); + float3 p2 = transform(&tfm, mesh->verts[t.v[1]]); + float3 p3 = transform(&tfm, mesh->verts[t.v[2]]); + + surface_area += triangle_area(p1, p2, p3); + } } /* pack in texture */ @@ -130,7 +155,7 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene memcpy(&objects[offset], &tfm, sizeof(float4)*4); memcpy(&objects[offset+4], &itfm, sizeof(float4)*4); memcpy(&objects[offset+8], &ntfm, sizeof(float4)*4); - objects[offset+12] = make_float4(surfacearea, 0.0f, 0.0f, 0.0f); + objects[offset+12] = make_float4(surface_area, 0.0f, 0.0f, 0.0f); i++; diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h index e904674a981..998d4161ebf 100644 --- a/intern/cycles/util/util_transform.h +++ b/intern/cycles/util/util_transform.h @@ -205,6 +205,30 @@ __device_inline float3 transform_get_column(const Transform *t, int column) Transform transform_inverse(const Transform& a); +__device_inline bool transform_uniform_scale(const Transform& tfm, float& scale) +{ + /* the epsilon here is quite arbitrary, but this function is only used for + surface area and bump, where we except it to not be so sensitive */ + Transform ttfm = transform_transpose(tfm); + float eps = 1e-7f; + + float sx = len(float4_to_float3(tfm.x)); + float sy = len(float4_to_float3(tfm.y)); + float sz = len(float4_to_float3(tfm.z)); + float stx = len(float4_to_float3(ttfm.x)); + float sty = len(float4_to_float3(ttfm.y)); + float stz = len(float4_to_float3(ttfm.z)); + + if(fabsf(sx - sy) < eps && fabsf(sx - sz) < eps && + fabsf(sx - stx) < eps && fabsf(sx - sty) < eps && + fabsf(sx - stz) < eps) { + scale = sx; + return true; + } + + return false; +} + #endif CCL_NAMESPACE_END -- cgit v1.2.3 From db1664ed4c44ff56ce286e0007dfd1587109c7a5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 3 Sep 2011 10:49:54 +0000 Subject: Cycles: * Compute MD5 hash to deal with nvidia opencl compiler cache not recognizing changes in #included files, makes it possible to do kernel compile only once and remember it for the next time blender is started. * Kernel tweak to compile with ATI/linux. Enabling any more functionality than simple clay render still chokes the compiler though, without a specific error message .. --- intern/cycles/blender/addon/enums.py | 4 ++-- intern/cycles/device/device_opencl.cpp | 14 +++++++------- intern/cycles/kernel/kernel_path.h | 2 +- intern/cycles/kernel/kernel_types.h | 2 +- intern/cycles/kernel/svm/svm_bsdf.h | 2 ++ intern/cycles/render/session.cpp | 4 ++-- intern/cycles/util/util_md5.cpp | 23 +++++++++++++++++++++++ intern/cycles/util/util_md5.h | 1 + intern/cycles/util/util_path.cpp | 25 +++++++++++++++++++++++++ intern/cycles/util/util_path.h | 2 ++ 10 files changed, 66 insertions(+), 13 deletions(-) diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 9842f2347a5..4aef2553050 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -25,9 +25,9 @@ def get_gpu_device(): if cuda and opencl: gpu_string = "GPU" elif cuda and not opencl: - gpu_string = "GPU (CUDA)" + gpu_string = "CUDA GPU" else: - gpu_string = "GPU (OpenCL)" + gpu_string = "OpenCL GPU" return gpu_string diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 787f0e6feab..be4ed814d7e 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -217,19 +217,19 @@ public: if(!opencl_version_check()) return false; - /* nvidia opencl cache doesn't not work correct with includes, so force recompile */ - static double recompile_trick = 0.0; - if(recompile_trick == 0.0) - recompile_trick = time_dt(); + /* we compile kernels consisting of many files. unfortunately opencl + kernel caches do not seem to recognize changes in included files. + so we force recompile on changes by adding the md5 hash of all files */ + string kernel_path = path_get("kernel"); + string kernel_md5 = path_files_md5_hash(kernel_path); - /* compile source */ - string source = string_printf("#include \"kernel.cl\" // %lf\n", recompile_trick); + string source = "#include \"kernel.cl\" // " + kernel_md5 + "\n"; size_t source_len = source.size(); const char *source_str = source.c_str(); string build_options = ""; - build_options += "-I " + path_get("kernel") + " -I " + path_get("util"); /* todo: escape path */ + build_options += "-I " + kernel_path + ""; /* todo: escape path */ build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; cpProgram = clCreateProgramWithSource(cxContext, 1, &source_str, &source_len, &ciErr); diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 7f7aaad3270..b073cd49a8c 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -194,7 +194,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray L += throughput*shader_eval_background(kg, &sd, state.flag); shader_release(kg, &sd); #else - L += make_float3(0.8f, 0.8f, 0.8f); + L += throughput*make_float3(0.8f, 0.8f, 0.8f); #endif } diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 3f7abbeca84..b4467c24223 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -32,12 +32,12 @@ CCL_NAMESPACE_BEGIN #define __DPDU__ #define __UV__ #define __BACKGROUND__ -#define __EMISSION__ #define __CAUSTICS_TRICKS__ #define __VISIBILITY_FLAG__ #ifndef __KERNEL_OPENCL__ #define __SVM__ +#define __EMISSION__ #define __TEXTURES__ #define __HOLDOUT__ #endif diff --git a/intern/cycles/kernel/svm/svm_bsdf.h b/intern/cycles/kernel/svm/svm_bsdf.h index f02dc786c6b..22985e9ace5 100644 --- a/intern/cycles/kernel/svm/svm_bsdf.h +++ b/intern/cycles/kernel/svm/svm_bsdf.h @@ -37,6 +37,7 @@ __device int svm_bsdf_sample(const ShaderData *sd, float randu, float randv, flo case CLOSURE_BSDF_DIFFUSE_ID: label = bsdf_diffuse_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; +#ifdef __SVM__ case CLOSURE_BSDF_TRANSLUCENT_ID: label = bsdf_translucent_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; @@ -71,6 +72,7 @@ __device int svm_bsdf_sample(const ShaderData *sd, float randu, float randv, flo case CLOSURE_BSDF_WESTIN_SHEEN_ID: label = bsdf_westin_sheen_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; +#endif default: label = LABEL_NONE; break; diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index daa10ad4f19..d3482e7f92f 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -35,7 +35,7 @@ Session::Session(const SessionParams& params_) : params(params_), tile_manager(params.progressive, params.passes, params.tile_size, params.min_size) { - device_use_gl = (params.device_type == DEVICE_CUDA && !params.background); + device_use_gl = ((params.device_type == DEVICE_CUDA || params.device_type == DEVICE_OPENCL) && !params.background); device = Device::create(params.device_type, params.background, params.threads); buffers = new RenderBuffers(device); @@ -381,7 +381,7 @@ void Session::run_cpu() void Session::run() { /* load kernels */ - progress.set_status("Loading render kernels"); + progress.set_status("Loading render kernels (may take a few minutes)"); if(!device->load_kernels()) { progress.set_status("Failed loading render kernel, see console for errors"); diff --git a/intern/cycles/util/util_md5.cpp b/intern/cycles/util/util_md5.cpp index 9fd44740531..90b8a1fe062 100644 --- a/intern/cycles/util/util_md5.cpp +++ b/intern/cycles/util/util_md5.cpp @@ -309,6 +309,29 @@ void MD5Hash::append(const uint8_t *data, int nbytes) memcpy(buf, p, left); } +bool MD5Hash::append_file(const string& filepath) +{ + FILE *f = fopen(filepath.c_str(), "rb"); + + if(!f) + return false; + + const size_t buffer_size = 1024; + uint8_t buffer[buffer_size]; + size_t n; + + do { + n = fread(buffer, 1, buffer_size, f); + append(buffer, n); + } while(n == buffer_size); + + bool success = (ferror(f) == 0); + + fclose(f); + + return success; +} + void MD5Hash::finish(uint8_t digest[16]) { static const uint8_t pad[64] = { diff --git a/intern/cycles/util/util_md5.h b/intern/cycles/util/util_md5.h index 49f421d43d9..5e7e604c4cf 100644 --- a/intern/cycles/util/util_md5.h +++ b/intern/cycles/util/util_md5.h @@ -41,6 +41,7 @@ public: ~MD5Hash(); void append(const uint8_t *data, int size); + bool append_file(const string& filepath); string get_hex(); protected: diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index 109b842068d..6f76e378dc2 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -17,6 +17,7 @@ */ #include "util_debug.h" +#include "util_md5.h" #include "util_path.h" #include "util_string.h" @@ -59,5 +60,29 @@ string path_join(const string& dir, const string& file) return (boost::filesystem::path(dir) / boost::filesystem::path(file)).string(); } +string path_files_md5_hash(const string& dir) +{ + /* computes md5 hash of all files in the directory */ + MD5Hash hash; + + if(boost::filesystem::exists(dir)) { + boost::filesystem::directory_iterator it(dir), it_end; + + for(; it != it_end; it++) { + if(boost::filesystem::is_directory(it->status())) { + path_files_md5_hash(it->path().string()); + } + else { + string filepath = it->path().string(); + + hash.append((const uint8_t*)filepath.c_str(), filepath.size()); + hash.append_file(filepath); + } + } + } + + return hash.get_hex(); +} + CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h index b80bc0e9131..4be0cb86f56 100644 --- a/intern/cycles/util/util_path.h +++ b/intern/cycles/util/util_path.h @@ -35,6 +35,8 @@ string path_filename(const string& path); string path_dirname(const string& path); string path_join(const string& dir, const string& file); +string path_files_md5_hash(const string& dir); + CCL_NAMESPACE_END #endif -- cgit v1.2.3 From 6edb09fe935eff6bc6f928cc1527e48a06d2657a Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Sun, 4 Sep 2011 15:39:09 +0000 Subject: Compile fixes for MinGW, checked with basic initial setup, no CUDA, gcc 4.5.2. OpenImageIO still gives link-time errors, will try to make a lib for MinGW, see if it is fixed. --- CMakeLists.txt | 22 ++++++++++++++++++++++ intern/cycles/CMakeLists.txt | 9 +++++++-- intern/cycles/util/util_math.h | 2 ++ intern/cycles/util/util_system.cpp | 4 +++- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b57d58258cf..cb41d4d344c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -975,6 +975,28 @@ elseif(WIN32) set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") endif() + if(WITH_BOOST) + set(BOOST ${LIBDIR}/boost) + set(BOOST_INCLUDE_DIR ${BOOST}/include) + set(BOOST_POSTFIX "vc90-mt-s-1_46_1") + set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1") + set(BOOST_LIBRARIES + optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} + libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} + debug libboost_date_time-${BOOST_DEBUG_POSTFIX} libboost_filesystem-${BOOST_DEBUG_POSTFIX} + libboost_regex-${BOOST_DEBUG_POSTFIX} libboost_system-${BOOST_DEBUG_POSTFIX} libboost_thread-${BOOST_DEBUG_POSTFIX}) + set(BOOST_LIBPATH ${BOOST}/lib) + set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") + endif() + + if(WITH_OPENIMAGEIO) + set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) + set(OPENIMAGEIO_LIBRARY OpenImageIO) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + set(OPENIMAGEIO_DEFINITIONS) + endif() + set(PLATFORM_LINKFLAGS "--stack,2097152") endif() diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index fd501b85be9..5d76f57fa73 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -16,8 +16,13 @@ if(APPLE) endif(APPLE) if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") - set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") + set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + elseif(CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + endif() endif(WIN32) if(UNIX AND NOT APPLE) diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 8e52b98d52b..ceebada9293 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -60,8 +60,10 @@ CCL_NAMESPACE_BEGIN #ifndef __KERNEL_GPU__ +#if(!defined(FREE_WINDOWS)) #define copysignf(x, y) ((float)_copysign(x, y)) #define hypotf(x, y) _hypotf(x, y) +#endif #endif diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp index ac3089aa7ad..77a1b1ffb75 100644 --- a/intern/cycles/util/util_system.cpp +++ b/intern/cycles/util/util_system.cpp @@ -20,7 +20,9 @@ #include "util_types.h" #ifdef _WIN32 +#if(!defined(FREE_WINDOWS)) #include +#endif #include #elif defined(__APPLE__) #include @@ -57,7 +59,7 @@ int system_cpu_thread_count() return count; } -#ifndef _WIN32 +#if !defined(_WIN32) || defined(FREE_WINDOWS) static void __cpuid(int data[4], int selector) { #ifdef __x86_64__ -- cgit v1.2.3 From f3ee10ce5ca3050174b84032b6df6edbe548c5f1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 08:23:01 +0000 Subject: Cycles: remove -Werror from opencl compile options, apple opencl on lion seems to give "no previous prototype for function" warning, but it doens't make much sense in opencl, seems like a compiler bug? --- intern/cycles/device/device_opencl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index be4ed814d7e..956fdfb08c2 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -230,7 +230,7 @@ public: string build_options = ""; build_options += "-I " + kernel_path + ""; /* todo: escape path */ - build_options += " -Werror -cl-fast-relaxed-math -cl-strict-aliasing"; + build_options += " -cl-fast-relaxed-math -cl-strict-aliasing"; cpProgram = clCreateProgramWithSource(cxContext, 1, &source_str, &source_len, &ciErr); if(opencl_error(ciErr)) -- cgit v1.2.3 From 7d9d9fa976589683a7ae880848937b05ade8e74f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 5 Sep 2011 12:24:28 +0000 Subject: Cycles: use workgroup size from opencl, attempt to fix issue with apple opencl. --- intern/cycles/device/device_opencl.cpp | 19 +++++++++++++++++-- intern/cycles/util/util_math.h | 10 ++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index 956fdfb08c2..c142701c873 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -26,6 +26,7 @@ #include "device_intern.h" #include "util_map.h" +#include "util_math.h" #include "util_opencl.h" #include "util_opengl.h" #include "util_path.h" @@ -412,7 +413,14 @@ public: opencl_assert(ciErr); - size_t local_size[2] = {8, 8}; + size_t workgroup_size; + + clGetKernelWorkGroupInfo(ckPathTraceKernel, cdDevice, + CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), &workgroup_size, NULL); + + workgroup_size = max(sqrt((double)workgroup_size), 1.0); + + size_t local_size[2] = {workgroup_size, workgroup_size}; size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; /* run kernel */ @@ -480,7 +488,14 @@ public: opencl_assert(ciErr); - size_t local_size[2] = {8, 8}; + size_t workgroup_size; + + clGetKernelWorkGroupInfo(ckFilmConvertKernel, cdDevice, + CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), &workgroup_size, NULL); + + workgroup_size = max(sqrt((double)workgroup_size), 1.0); + + size_t local_size[2] = {workgroup_size, workgroup_size}; size_t global_size[2] = {global_size_round_up(local_size[0], d_w), global_size_round_up(local_size[1], d_h)}; /* run kernel */ diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index ceebada9293..c0418b3d8fd 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -101,6 +101,16 @@ __device_inline float min(float a, float b) return (a < b)? a: b; } +__device_inline double max(double a, double b) +{ + return (a > b)? a: b; +} + +__device_inline double min(double a, double b) +{ + return (a < b)? a: b; +} + #endif __device_inline float min4(float a, float b, float c, float d) -- cgit v1.2.3 From 6b134ae357188358f1437650924ab38886386860 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 6 Sep 2011 17:48:06 +0000 Subject: Cycles: set minimum required boost version lower. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cb41d4d344c..279644550c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -520,7 +520,7 @@ if(UNIX AND NOT APPLE) if(NOT BOOST_CUSTOM) set(BOOST_ROOT ${BOOST}) set(Boost_USE_MULTITHREADED ON) - find_package(Boost 1.47 REQUIRED COMPONENTS filesystem regex system thread) + find_package(Boost 1.34 REQUIRED COMPONENTS filesystem regex system thread) endif() set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) -- cgit v1.2.3 From 9b31cba74e2bd84e9988ebdab723e6e43f9b8357 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 8 Sep 2011 18:58:07 +0000 Subject: Cycles: some warning fixes, cpu device task tweaks, avoid unnecessary tonemap in non-viewport render, and some utility functions. --- intern/cycles/device/device.cpp | 5 + intern/cycles/device/device_cpu.cpp | 7 +- intern/cycles/kernel/kernel_types.h | 4 +- intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h | 14 ++- intern/cycles/kernel/svm/bsdf_diffuse.h | 10 -- intern/cycles/kernel/svm/bsdf_microfacet.h | 128 +++++++++++++---------- intern/cycles/kernel/svm/bsdf_reflection.h | 3 - intern/cycles/kernel/svm/bsdf_refraction.h | 8 +- intern/cycles/kernel/svm/bsdf_ward.h | 42 ++++---- intern/cycles/kernel/svm/bsdf_westin.h | 37 +++---- intern/cycles/render/session.cpp | 5 +- intern/cycles/util/util_cuda.cpp | 14 +++ intern/cycles/util/util_cuda.h | 2 + intern/cycles/util/util_opencl.h | 6 -- intern/cycles/util/util_path.cpp | 13 +++ intern/cycles/util/util_path.h | 2 + intern/cycles/util/util_system.cpp | 5 + intern/cycles/util/util_system.h | 1 + 18 files changed, 170 insertions(+), 136 deletions(-) diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index aed0be96229..e21dce45d80 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -24,6 +24,7 @@ #include "util_cuda.h" #include "util_debug.h" +#include "util_math.h" #include "util_opencl.h" #include "util_opengl.h" #include "util_types.h" @@ -43,6 +44,8 @@ DeviceTask::DeviceTask(Type type_) void DeviceTask::split(ThreadQueue& tasks, int num) { if(type == DISPLACE) { + num = min(displace_w, num); + for(int i = 0; i < num; i++) { int tx = displace_x + (displace_w/num)*i; int tw = (i == num-1)? displace_w - i*(displace_w/num): displace_w/num; @@ -56,6 +59,8 @@ void DeviceTask::split(ThreadQueue& tasks, int num) } } 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; diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 7066efee547..3a3ae685395 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -194,10 +194,9 @@ public: void task_add(DeviceTask& task) { - if(task.type == DeviceTask::TONEMAP) - tasks.push(task); - else - task.split(tasks, threads.size()); + /* split task into smaller ones, more than number of threads for uneven + workloads where some parts of the image render slower than others */ + task.split(tasks, threads.size()*10); } void task_wait() diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index b4467c24223..93cd61c43ca 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -246,7 +246,9 @@ typedef struct ShaderData { * memory usage, svm_closure_data contains closure parameters. */ ClosureType svm_closure; float3 svm_closure_weight; - float svm_closure_data[3]; /* CUDA gives compile error if out of bounds */ + float svm_closure_data0; + float svm_closure_data1; + float svm_closure_data2; #if !defined(__KERNEL_GPU__) && defined(WITH_OSL) /* OSL closure data and context. we store all closures flattened into diff --git a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h index a04f4e2b076..e94b33efaae 100644 --- a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h +++ b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h @@ -42,15 +42,13 @@ typedef struct BsdfAshikhminVelvetClosure { __device void bsdf_ashikhmin_velvet_setup(ShaderData *sd, float3 N, float sigma) { - BsdfAshikhminVelvetClosure *self = (BsdfAshikhminVelvetClosure*)sd->svm_closure_data; - sigma = fmaxf(sigma, 0.01f); - //self->m_N = N; - self->m_invsigma2 = 1.0f/(sigma * sigma); + float m_invsigma2 = 1.0f/(sigma * sigma); sd->svm_closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; + sd->svm_closure_data0 = m_invsigma2; } __device void bsdf_ashikhmin_velvet_blur(ShaderData *sd, float roughness) @@ -59,7 +57,7 @@ __device void bsdf_ashikhmin_velvet_blur(ShaderData *sd, float roughness) __device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfAshikhminVelvetClosure *self = (const BsdfAshikhminVelvetClosure*)sd->svm_closure_data; + float m_invsigma2 = sd->svm_closure_data0; float3 m_N = sd->N; float cosNO = dot(m_N, I); @@ -80,7 +78,7 @@ __device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const f float sinNH4 = sinNH2 * sinNH2; float cotangent2 = (cosNH * cosNH) / sinNH2; - float D = expf(-cotangent2 * self->m_invsigma2) * self->m_invsigma2 * M_1_PI_F / sinNH4; + float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * M_1_PI_F / sinNH4; float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically float out = 0.25f * (D * G) / cosNO; @@ -103,7 +101,7 @@ __device float bsdf_ashikhmin_velvet_albedo(const ShaderData *sd, const float3 I __device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfAshikhminVelvetClosure *self = (const BsdfAshikhminVelvetClosure*)sd->svm_closure_data; + float m_invsigma2 = sd->svm_closure_data0; float3 m_N = sd->N; // we are viewing the surface from above - send a ray out with uniform @@ -128,7 +126,7 @@ __device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, float randu, flo float sinNH4 = sinNH2 * sinNH2; float cotangent2 = (cosNH * cosNH) / sinNH2; - float D = expf(-cotangent2 * self->m_invsigma2) * self->m_invsigma2 * M_1_PI_F / sinNH4; + float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * M_1_PI_F / sinNH4; float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically float power = 0.25f * (D * G) / cosNO; diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h index dcd29534109..a917db86ff5 100644 --- a/intern/cycles/kernel/svm/bsdf_diffuse.h +++ b/intern/cycles/kernel/svm/bsdf_diffuse.h @@ -43,9 +43,6 @@ typedef struct BsdfDiffuseClosure { __device void bsdf_diffuse_setup(ShaderData *sd, float3 N) { - //BsdfDiffuseClosure *self = (BsdfDiffuseClosure*)sd->svm_closure_data; - //self->m_N = N; - sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } @@ -56,7 +53,6 @@ __device void bsdf_diffuse_blur(ShaderData *sd, float roughness) __device float3 bsdf_diffuse_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - //const BsdfDiffuseClosure *self = (const BsdfDiffuseClosure*)sd->svm_closure_data; float3 m_N = sd->N; float cos_pi = fmaxf(dot(m_N, omega_in), 0.0f) * M_1_PI_F; @@ -76,7 +72,6 @@ __device float bsdf_diffuse_albedo(const ShaderData *sd, const float3 I) __device int bsdf_diffuse_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - //const BsdfDiffuseClosure *self = (const BsdfDiffuseClosure*)sd->svm_closure_data; float3 m_N = sd->N; // distribution over the hemisphere @@ -106,9 +101,6 @@ typedef struct BsdfTranslucentClosure { __device void bsdf_translucent_setup(ShaderData *sd, float3 N) { - //BsdfTranslucentClosure *self = (BsdfTranslucentClosure*)sd->svm_closure_data; - //self->m_N = N; - sd->svm_closure = CLOSURE_BSDF_TRANSLUCENT_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } @@ -124,7 +116,6 @@ __device float3 bsdf_translucent_eval_reflect(const ShaderData *sd, const float3 __device float3 bsdf_translucent_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - //const BsdfTranslucentClosure *self = (const BsdfTranslucentClosure*)sd->svm_closure_data; float3 m_N = sd->N; float cos_pi = fmaxf(-dot(m_N, omega_in), 0.0f) * M_1_PI_F; @@ -139,7 +130,6 @@ __device float bsdf_translucent_albedo(const ShaderData *sd, const float3 I) __device int bsdf_translucent_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - //const BsdfTranslucentClosure *self = (const BsdfTranslucentClosure*)sd->svm_closure_data; float3 m_N = sd->N; // we are viewing the surface from the right side - send a ray out with cosine diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h index c98092b2f8f..595182d90de 100644 --- a/intern/cycles/kernel/svm/bsdf_microfacet.h +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -46,12 +46,13 @@ typedef struct BsdfMicrofacetGGXClosure { __device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, float eta, bool refractive) { - BsdfMicrofacetGGXClosure *self = (BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float m_ag = clamp(ag, 1e-5f, 1.0f); + float m_eta = eta; + int m_refractive = (refractive)? 1: 0; - //self->m_N = N; - self->m_ag = clamp(ag, 1e-5f, 1.0f); - self->m_eta = eta; - self->m_refractive = (refractive)? 1: 0; + sd->svm_closure_data0 = m_ag; + sd->svm_closure_data1 = m_eta; + sd->svm_closure_data2 = __int_as_float(m_refractive); if(refractive) sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; @@ -63,16 +64,19 @@ __device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, floa __device void bsdf_microfacet_ggx_blur(ShaderData *sd, float roughness) { - BsdfMicrofacetGGXClosure *self = (BsdfMicrofacetGGXClosure*)sd->svm_closure_data; - self->m_ag = fmaxf(roughness, self->m_ag); + float m_ag = sd->svm_closure_data0; + m_ag = fmaxf(roughness, m_ag); + sd->svm_closure_data0 = m_ag; } __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float m_ag = sd->svm_closure_data0; + //float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; - if(self->m_refractive == 1) return make_float3 (0, 0, 0); + if(m_refractive == 1) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNI > 0 && cosNO > 0) { @@ -80,7 +84,7 @@ __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const flo float3 Hr = normalize(omega_in + I); // eq. 20: (F*G*D)/(4*in*on) // eq. 33: first we calculate D(m) with m=Hr: - float alpha2 = self->m_ag * self->m_ag; + float alpha2 = m_ag * m_ag; float cosThetaM = dot(m_N, Hr); float cosThetaM2 = cosThetaM * cosThetaM; float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; @@ -104,22 +108,24 @@ __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const flo __device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float m_ag = sd->svm_closure_data0; + float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; - if(self->m_refractive == 0) return make_float3 (0, 0, 0); + if(m_refractive == 0) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO <= 0 || cosNI >= 0) return make_float3 (0, 0, 0); // vectors on same side -- not possible // compute half-vector of the refraction (eq. 16) - float3 ht = -(self->m_eta * omega_in + I); + float3 ht = -(m_eta * omega_in + I); float3 Ht = normalize(ht); float cosHO = dot(Ht, I); float cosHI = dot(Ht, omega_in); // eq. 33: first we calculate D(m) with m=Ht: - float alpha2 = self->m_ag * self->m_ag; + float alpha2 = m_ag * m_ag; float cosThetaM = dot(m_N, Ht); float cosThetaM2 = cosThetaM * cosThetaM; float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; @@ -131,8 +137,8 @@ __device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const fl float G = G1o * G1i; // probability float invHt2 = 1 / dot(ht, ht); - *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (self->m_eta * self->m_eta)) * invHt2; - float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D) * invHt2) / cosNO; + *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (m_eta * m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D) * invHt2) / cosNO; return make_float3 (out, out, out); } @@ -143,7 +149,9 @@ __device float bsdf_microfacet_ggx_albedo(const ShaderData *sd, const float3 I) __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfMicrofacetGGXClosure *self = (const BsdfMicrofacetGGXClosure*)sd->svm_closure_data; + float m_ag = sd->svm_closure_data0; + float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -154,7 +162,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float // eq. 35,36: // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) //tttt and sin(atan(x)) == x/sqrt(1+x^2) - float alpha2 = self->m_ag * self->m_ag; + float alpha2 = m_ag * m_ag; float tanThetaM2 = alpha2 * randu / (1 - randu); float cosThetaM = 1 / sqrtf(1 + tanThetaM2); float sinThetaM = cosThetaM * sqrtf(tanThetaM2); @@ -162,7 +170,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float float3 m = (cosf(phiM) * sinThetaM) * X + (sinf(phiM) * sinThetaM) * Y + cosThetaM * Z; - if(self->m_refractive == 0) { + if(m_refractive == 0) { float cosMO = dot(m, sd->I); if(cosMO > 0) { // eq. 39 - compute actual reflected direction @@ -208,7 +216,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float float3 dRdx, dRdy, dTdx, dTdy; #endif bool inside; - fresnel_dielectric(self->m_eta, m, sd->I, &R, &T, + fresnel_dielectric(m_eta, m, sd->I, &R, &T, #ifdef __RAY_DIFFERENTIALS__ sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, #endif @@ -235,11 +243,11 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float // eq. 21 float cosHI = dot(m, *omega_in); float cosHO = dot(m, sd->I); - float Ht2 = self->m_eta * cosHI + cosHO; + float Ht2 = m_eta * cosHI + cosHO; Ht2 *= Ht2; - float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D)) / (cosNO * Ht2); + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D)) / (cosNO * Ht2); // eq. 38 and eq. 17 - *pdf = pm * (self->m_eta * self->m_eta) * fabsf(cosHI) / Ht2; + *pdf = pm * (m_eta * m_eta) * fabsf(cosHI) / Ht2; *eval = make_float3(out, out, out); #ifdef __RAY_DIFFERENTIALS__ // Since there is some blur to this refraction, make the @@ -252,7 +260,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float } } } - return (self->m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; + return (m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; } /* BECKMANN */ @@ -266,12 +274,13 @@ typedef struct BsdfMicrofacetBeckmannClosure { __device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, float eta, bool refractive) { - BsdfMicrofacetBeckmannClosure *self = (BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float m_ab = clamp(ab, 1e-5f, 1.0f); + float m_eta = eta; + float m_refractive = (refractive)? 1: 0; - //self->m_N = N; - self->m_ab = clamp(ab, 1e-5f, 1.0f); - self->m_eta = eta; - self->m_refractive = (refractive)? 1: 0; + sd->svm_closure_data0 = m_ab; + sd->svm_closure_data1 = m_eta; + sd->svm_closure_data2 = __int_as_float(m_refractive); if(refractive) sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; @@ -283,16 +292,19 @@ __device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, __device void bsdf_microfacet_beckmann_blur(ShaderData *sd, float roughness) { - BsdfMicrofacetBeckmannClosure *self = (BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; - self->m_ab = fmaxf(roughness, self->m_ab); + float m_ab = sd->svm_closure_data0; + m_ab = fmaxf(roughness, m_ab); + sd->svm_closure_data0 = m_ab; } __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float m_ab = sd->svm_closure_data0; + //float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; - if(self->m_refractive == 1) return make_float3 (0, 0, 0); + if(m_refractive == 1) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO > 0 && cosNI > 0) { @@ -300,15 +312,15 @@ __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, cons float3 Hr = normalize(omega_in + I); // eq. 20: (F*G*D)/(4*in*on) // eq. 25: first we calculate D(m) with m=Hr: - float alpha2 = self->m_ab * self->m_ab; + float alpha2 = m_ab * m_ab; float cosThetaM = dot(m_N, Hr); float cosThetaM2 = cosThetaM * cosThetaM; float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; float cosThetaM4 = cosThetaM2 * cosThetaM2; float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); // eq. 26, 27: now calculate G1(i,m) and G1(o,m) - float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); - float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; float G = G1o * G1i; @@ -326,37 +338,39 @@ __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, cons __device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float m_ab = sd->svm_closure_data0; + float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; - if(self->m_refractive == 0) return make_float3 (0, 0, 0); + if(m_refractive == 0) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO <= 0 || cosNI >= 0) return make_float3 (0, 0, 0); // compute half-vector of the refraction (eq. 16) - float3 ht = -(self->m_eta * omega_in + I); + float3 ht = -(m_eta * omega_in + I); float3 Ht = normalize(ht); float cosHO = dot(Ht, I); float cosHI = dot(Ht, omega_in); // eq. 33: first we calculate D(m) with m=Ht: - float alpha2 = self->m_ab * self->m_ab; + float alpha2 = m_ab * m_ab; float cosThetaM = dot(m_N, Ht); float cosThetaM2 = cosThetaM * cosThetaM; float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2; float cosThetaM4 = cosThetaM2 * cosThetaM2; float D = expf(-tanThetaM2 / alpha2) / (M_PI_F * alpha2 * cosThetaM4); // eq. 26, 27: now calculate G1(i,m) and G1(o,m) - float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); - float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; float G = G1o * G1i; // probability float invHt2 = 1 / dot(ht, ht); - *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (self->m_eta * self->m_eta)) * invHt2; - float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D) * invHt2) / cosNO; + *pdf = D * fabsf(cosThetaM) * (fabsf(cosHI) * (m_eta * m_eta)) * invHt2; + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D) * invHt2) / cosNO; return make_float3 (out, out, out); } @@ -367,7 +381,9 @@ __device float bsdf_microfacet_beckmann_albedo(const ShaderData *sd, const float __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfMicrofacetBeckmannClosure *self = (const BsdfMicrofacetBeckmannClosure*)sd->svm_closure_data; + float m_ab = sd->svm_closure_data0; + float m_eta = sd->svm_closure_data1; + int m_refractive = __float_as_int(sd->svm_closure_data2); float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -378,7 +394,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, // eq. 35,36: // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) //tttt and sin(atan(x)) == x/sqrt(1+x^2) - float alpha2 = self->m_ab * self->m_ab; + float alpha2 = m_ab * m_ab; float tanThetaM = sqrtf(-alpha2 * logf(1 - randu)); float cosThetaM = 1 / sqrtf(1 + tanThetaM * tanThetaM); float sinThetaM = cosThetaM * tanThetaM; @@ -387,7 +403,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, (sinf(phiM) * sinThetaM) * Y + cosThetaM * Z; - if(self->m_refractive == 0) { + if(m_refractive == 0) { float cosMO = dot(m, sd->I); if(cosMO > 0) { // eq. 39 - compute actual reflected direction @@ -408,8 +424,8 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, // Eval BRDF*cosNI float cosNI = dot(m_N, *omega_in); // eq. 26, 27: now calculate G1(i,m) and G1(o,m) - float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); - float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; float G = G1o * G1i; @@ -436,7 +452,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, float3 dRdx, dRdy, dTdx, dTdy; #endif bool inside; - fresnel_dielectric(self->m_eta, m, sd->I, &R, &T, + fresnel_dielectric(m_eta, m, sd->I, &R, &T, #ifdef __RAY_DIFFERENTIALS__ sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, #endif @@ -459,19 +475,19 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, // eval BRDF*cosNI float cosNI = dot(m_N, *omega_in); // eq. 26, 27: now calculate G1(i,m) and G1(o,m) - float ao = 1 / (self->m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); - float ai = 1 / (self->m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); + float ao = 1 / (m_ab * sqrtf((1 - cosNO * cosNO) / (cosNO * cosNO))); + float ai = 1 / (m_ab * sqrtf((1 - cosNI * cosNI) / (cosNI * cosNI))); float G1o = ao < 1.6f ? (3.535f * ao + 2.181f * ao * ao) / (1 + 2.276f * ao + 2.577f * ao * ao) : 1.0f; float G1i = ai < 1.6f ? (3.535f * ai + 2.181f * ai * ai) / (1 + 2.276f * ai + 2.577f * ai * ai) : 1.0f; float G = G1o * G1i; // eq. 21 float cosHI = dot(m, *omega_in); float cosHO = dot(m, sd->I); - float Ht2 = self->m_eta * cosHI + cosHO; + float Ht2 = m_eta * cosHI + cosHO; Ht2 *= Ht2; - float out = (fabsf(cosHI * cosHO) * (self->m_eta * self->m_eta) * (G * D)) / (cosNO * Ht2); + float out = (fabsf(cosHI * cosHO) * (m_eta * m_eta) * (G * D)) / (cosNO * Ht2); // eq. 38 and eq. 17 - *pdf = pm * (self->m_eta * self->m_eta) * fabsf(cosHI) / Ht2; + *pdf = pm * (m_eta * m_eta) * fabsf(cosHI) / Ht2; *eval = make_float3(out, out, out); #ifdef __RAY_DIFFERENTIALS__ // Since there is some blur to this refraction, make the @@ -484,7 +500,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, } } } - return (self->m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; + return (m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/bsdf_reflection.h b/intern/cycles/kernel/svm/bsdf_reflection.h index 2c49eb7ef24..4dad61704df 100644 --- a/intern/cycles/kernel/svm/bsdf_reflection.h +++ b/intern/cycles/kernel/svm/bsdf_reflection.h @@ -43,9 +43,6 @@ typedef struct BsdfReflectionClosure { __device void bsdf_reflection_setup(ShaderData *sd, float3 N) { - //BsdfReflectionClosure *self = (BsdfReflectionClosure*)sd->svm_closure_data; - //self->m_N = N; - sd->svm_closure = CLOSURE_BSDF_REFLECTION_ID; sd->flag |= SD_BSDF; } diff --git a/intern/cycles/kernel/svm/bsdf_refraction.h b/intern/cycles/kernel/svm/bsdf_refraction.h index 534945f4f0b..93bd747eb31 100644 --- a/intern/cycles/kernel/svm/bsdf_refraction.h +++ b/intern/cycles/kernel/svm/bsdf_refraction.h @@ -43,9 +43,7 @@ typedef struct BsdfRefractionClosure { __device void bsdf_refraction_setup(ShaderData *sd, float3 N, float eta) { - BsdfRefractionClosure *self = (BsdfRefractionClosure*)sd->svm_closure_data; - - self->m_eta = eta; + sd->svm_closure_data0 = eta; sd->svm_closure = CLOSURE_BSDF_REFRACTION_ID; sd->flag |= SD_BSDF; @@ -72,7 +70,7 @@ __device float bsdf_refraction_albedo(const ShaderData *sd, const float3 I) __device int bsdf_refraction_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfRefractionClosure *self = (const BsdfRefractionClosure*)sd->svm_closure_data; + float m_eta = sd->svm_closure_data0; float3 m_N = sd->N; float3 R, T; @@ -80,7 +78,7 @@ __device int bsdf_refraction_sample(const ShaderData *sd, float randu, float ran float3 dRdx, dRdy, dTdx, dTdy; #endif bool inside; - fresnel_dielectric(self->m_eta, m_N, sd->I, &R, &T, + fresnel_dielectric(m_eta, m_N, sd->I, &R, &T, #ifdef __RAY_DIFFERENTIALS__ sd->dI.dx, sd->dI.dy, &dRdx, &dRdy, &dTdx, &dTdy, #endif diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index 6680644a1a7..18967b3981e 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -46,12 +46,11 @@ typedef struct BsdfWardClosure { __device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, float ay) { - BsdfWardClosure *self = (BsdfWardClosure*)sd->svm_closure_data; + float m_ax = clamp(ax, 1e-5f, 1.0f); + float m_ay = clamp(ay, 1e-5f, 1.0f); - //self->m_N = N; - //self->m_T = T; - self->m_ax = clamp(ax, 1e-5f, 1.0f); - self->m_ay = clamp(ay, 1e-5f, 1.0f); + sd->svm_closure_data0 = m_ax; + sd->svm_closure_data1 = m_ay; sd->svm_closure = CLOSURE_BSDF_WARD_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -59,35 +58,35 @@ __device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, floa __device void bsdf_ward_blur(ShaderData *sd, float roughness) { - BsdfWardClosure *self = (BsdfWardClosure*)sd->svm_closure_data; - - self->m_ax = fmaxf(roughness, self->m_ax); - self->m_ay = fmaxf(roughness, self->m_ay); + sd->svm_closure_data0 = fmaxf(roughness, sd->svm_closure_data0); + sd->svm_closure_data1 = fmaxf(roughness, sd->svm_closure_data1); } __device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfWardClosure *self = (const BsdfWardClosure*)sd->svm_closure_data; + float m_ax = sd->svm_closure_data0; + float m_ay = sd->svm_closure_data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); + if(cosNI > 0 && cosNO > 0) { // get half vector and get x,y basis on the surface for anisotropy float3 H = normalize(omega_in + I); // normalize needed for pdf float3 X, Y; make_orthonormals_tangent(m_N, m_T, &X, &Y); // eq. 4 - float dotx = dot(H, X) / self->m_ax; - float doty = dot(H, Y) / self->m_ay; + float dotx = dot(H, X) / m_ax; + float doty = dot(H, Y) / m_ay; float dotn = dot(H, m_N); float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); - float denom = (4 * M_PI_F * self->m_ax * self->m_ay * sqrtf(cosNO * cosNI)); + float denom = (4 * M_PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI)); float exp_val = expf(-exp_arg); float out = cosNI * exp_val / denom; float oh = dot(H, I); - denom = 4 * M_PI_F * self->m_ax * self->m_ay * oh * dotn * dotn * dotn; + denom = 4 * M_PI_F * m_ax * m_ay * oh * dotn * dotn * dotn; *pdf = exp_val / denom; return make_float3 (out, out, out); } @@ -106,7 +105,8 @@ __device float bsdf_ward_albedo(const ShaderData *sd, const float3 I) __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfWardClosure *self = (const BsdfWardClosure*)sd->svm_closure_data; + float m_ax = sd->svm_closure_data0; + float m_ay = sd->svm_closure_data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); @@ -120,7 +120,7 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl //ttoutput angle in the right quadrant) // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) //tttt and sin(atan(x)) == x/sqrt(1+x^2) - float alphaRatio = self->m_ay / self->m_ax; + float alphaRatio = m_ay / m_ax; float cosPhi, sinPhi; if(randu < 0.25f) { float val = 4 * randu; @@ -149,7 +149,7 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl // eq. 6 // we take advantage of cos(atan(x)) == 1/sqrt(1+x^2) //tttt and sin(atan(x)) == x/sqrt(1+x^2) - float thetaDenom = (cosPhi * cosPhi) / (self->m_ax * self->m_ax) + (sinPhi * sinPhi) / (self->m_ay * self->m_ay); + float thetaDenom = (cosPhi * cosPhi) / (m_ax * m_ax) + (sinPhi * sinPhi) / (m_ay * m_ay); float tanTheta2 = -logf(1 - randv) / thetaDenom; float cosTheta = 1 / sqrtf(1 + tanTheta2); float sinTheta = cosTheta * sqrtf(tanTheta2); @@ -159,8 +159,8 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl h.y = sinTheta * sinPhi; h.z = cosTheta; // compute terms that are easier in local space - float dotx = h.x / self->m_ax; - float doty = h.y / self->m_ay; + float dotx = h.x / m_ax; + float doty = h.y / m_ay; float dotn = h.z; // transform to world space h = h.x * X + h.y * Y + h.z * m_N; @@ -172,10 +172,10 @@ __device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, fl if(cosNI > 0) { // eq. 9 float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn); - float denom = 4 * M_PI_F * self->m_ax * self->m_ay * oh * dotn * dotn * dotn; + float denom = 4 * M_PI_F * m_ax * m_ay * oh * dotn * dotn * dotn; *pdf = expf(-exp_arg) / denom; // compiler will reuse expressions already computed - denom = (4 * M_PI_F * self->m_ax * self->m_ay * sqrtf(cosNO * cosNI)); + denom = (4 * M_PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI)); float power = cosNI * expf(-exp_arg) / denom; *eval = make_float3(power, power, power); #ifdef __RAY_DIFFERENTIALS__ diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h index 55fc8286529..0f38deb0885 100644 --- a/intern/cycles/kernel/svm/bsdf_westin.h +++ b/intern/cycles/kernel/svm/bsdf_westin.h @@ -44,25 +44,24 @@ typedef struct BsdfWestinBackscatterClosure { __device void bsdf_westin_backscatter_setup(ShaderData *sd, float3 N, float roughness) { - BsdfWestinBackscatterClosure *self = (BsdfWestinBackscatterClosure*)sd->svm_closure_data; - - //self->m_N = N; roughness = clamp(roughness, 1e-5f, 1.0f); - self->m_invroughness = 1.0f/roughness; + float m_invroughness = 1.0f/roughness; sd->svm_closure = CLOSURE_BSDF_WESTIN_BACKSCATTER_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->svm_closure_data0 = m_invroughness; } __device void bsdf_westin_backscatter_blur(ShaderData *sd, float roughness) { - BsdfWestinBackscatterClosure *self = (BsdfWestinBackscatterClosure*)sd->svm_closure_data; - self->m_invroughness = min(1.0f/roughness, self->m_invroughness); + float m_invroughness = sd->svm_closure_data0; + m_invroughness = min(1.0f/roughness, m_invroughness); + sd->svm_closure_data0 = m_invroughness; } __device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfWestinBackscatterClosure *self = (const BsdfWestinBackscatterClosure*)sd->svm_closure_data; + float m_invroughness = sd->svm_closure_data0; float3 m_N = sd->N; // pdf is implicitly 0 (no indirect sampling) @@ -70,7 +69,7 @@ __device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const float cosNI = dot(m_N, omega_in); if(cosNO > 0 && cosNI > 0) { float cosine = dot(I, omega_in); - *pdf = cosine > 0 ? (self->m_invroughness + 1) * powf(cosine, self->m_invroughness) : 0; + *pdf = cosine > 0 ? (m_invroughness + 1) * powf(cosine, m_invroughness) : 0; *pdf *= 0.5f * M_1_PI_F; return make_float3 (*pdf, *pdf, *pdf); } @@ -89,7 +88,7 @@ __device float bsdf_westin_backscatter_albedo(const ShaderData *sd, const float3 __device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfWestinBackscatterClosure *self = (const BsdfWestinBackscatterClosure*)sd->svm_closure_data; + float m_invroughness = sd->svm_closure_data0; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -101,7 +100,7 @@ __device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, f float3 T, B; make_orthonormals (sd->I, &T, &B); float phi = 2 * M_PI_F * randu; - float cosTheta = powf(randv, 1 / (self->m_invroughness + 1)); + float cosTheta = powf(randv, 1 / (m_invroughness + 1)); float sinTheta2 = 1 - cosTheta * cosTheta; float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0; *omega_in = (cosf(phi) * sinTheta) * T + @@ -114,8 +113,8 @@ __device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, f // make sure the direction we chose is still in the right hemisphere if(cosNI > 0) { - *pdf = 0.5f * M_1_PI_F * powf(cosTheta, self->m_invroughness); - *pdf = (self->m_invroughness + 1) * (*pdf); + *pdf = 0.5f * M_1_PI_F * powf(cosTheta, m_invroughness); + *pdf = (m_invroughness + 1) * (*pdf); *eval = make_float3(*pdf, *pdf, *pdf); #ifdef __RAY_DIFFERENTIALS__ // Since there is some blur to this reflection, make the @@ -140,13 +139,9 @@ typedef struct BsdfWestinSheenClosure { __device void bsdf_westin_sheen_setup(ShaderData *sd, float3 N, float edginess) { - BsdfWestinSheenClosure *self = (BsdfWestinSheenClosure*)sd->svm_closure_data; - - //self->m_N = N; - self->m_edginess = edginess; - sd->svm_closure = CLOSURE_BSDF_WESTIN_SHEEN_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + sd->svm_closure_data0 = edginess; } __device void bsdf_westin_sheen_blur(ShaderData *sd, float roughness) @@ -155,7 +150,7 @@ __device void bsdf_westin_sheen_blur(ShaderData *sd, float roughness) __device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) { - const BsdfWestinSheenClosure *self = (const BsdfWestinSheenClosure*)sd->svm_closure_data; + float m_edginess = sd->svm_closure_data0; float3 m_N = sd->N; // pdf is implicitly 0 (no indirect sampling) @@ -164,7 +159,7 @@ __device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const float if(cosNO > 0 && cosNI > 0) { float sinNO2 = 1 - cosNO * cosNO; *pdf = cosNI * M_1_PI_F; - float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * self->m_edginess) * (*pdf) : 0; + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * m_edginess) * (*pdf) : 0; return make_float3 (westin, westin, westin); } return make_float3 (0, 0, 0); @@ -182,7 +177,7 @@ __device float bsdf_westin_sheen_albedo(const ShaderData *sd, const float3 I) __device int bsdf_westin_sheen_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - const BsdfWestinSheenClosure *self = (const BsdfWestinSheenClosure*)sd->svm_closure_data; + float m_edginess = sd->svm_closure_data0; float3 m_N = sd->N; // we are viewing the surface from the right side - send a ray out with cosine @@ -192,7 +187,7 @@ __device int bsdf_westin_sheen_sample(const ShaderData *sd, float randu, float r // TODO: account for sheen when sampling float cosNO = dot(m_N, sd->I); float sinNO2 = 1 - cosNO * cosNO; - float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * self->m_edginess) * (*pdf) : 0; + float westin = sinNO2 > 0 ? powf(sinNO2, 0.5f * m_edginess) * (*pdf) : 0; *eval = make_float3(westin, westin, westin); #ifdef __RAY_DIFFERENTIALS__ // TODO: find a better approximation for the diffuse bounce diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index d3482e7f92f..f66c4a64b0b 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -79,6 +79,8 @@ Session::~Session() } if(params.output_path != "") { + tonemap(); + progress.set_status("Writing Image", params.output_path); display->write(device, params.output_path); } @@ -352,7 +354,8 @@ void Session::run_cpu() /* update status and timing */ update_status_time(); - need_tonemap = true; + if(!params.background) + need_tonemap = true; } device->task_wait(); diff --git a/intern/cycles/util/util_cuda.cpp b/intern/cycles/util/util_cuda.cpp index 15ce7efd9ee..b371f4e9499 100644 --- a/intern/cycles/util/util_cuda.cpp +++ b/intern/cycles/util/util_cuda.cpp @@ -19,6 +19,8 @@ #include "util_cuda.h" #include "util_debug.h" #include "util_dynlib.h" +#include "util_path.h" +#include "util_string.h" /* function defininitions */ @@ -375,5 +377,17 @@ bool cuLibraryInit() return result; } +string cuCompilerPath() +{ + /* todo: better nvcc detection */ +#ifdef _WIN32 + string nvcc = "C:/CUDA/bin/nvcc.exe"; +#else + string nvcc = "/usr/local/cuda/bin/nvcc"; +#endif + + return (path_exists(nvcc))? nvcc: ""; +} + CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_cuda.h b/intern/cycles/util/util_cuda.h index ecfaddf43cb..3674c65bd93 100644 --- a/intern/cycles/util/util_cuda.h +++ b/intern/cycles/util/util_cuda.h @@ -21,6 +21,7 @@ #include #include "util_opengl.h" +#include "util_string.h" CCL_NAMESPACE_BEGIN @@ -29,6 +30,7 @@ CCL_NAMESPACE_BEGIN * matrixMulDynlinkJIT in the CUDA SDK. */ bool cuLibraryInit(); +string cuCompilerPath(); CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_opencl.h b/intern/cycles/util/util_opencl.h index d3c95289101..08694874ac1 100755 --- a/intern/cycles/util/util_opencl.h +++ b/intern/cycles/util/util_opencl.h @@ -75,13 +75,7 @@ extern "C" { #define CL_API_CALL #endif -#if defined(__APPLE__) -#define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER -#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import)) -#else #define CL_API_SUFFIX__VERSION_1_0 -#define CL_EXTENSION_WEAK_LINK -#endif #if defined(_WIN32) && defined(_MSC_VER) diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index 6f76e378dc2..086063bcb81 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -27,6 +27,7 @@ OIIO_NAMESPACE_USING #define BOOST_FILESYSTEM_VERSION 2 #include +#include CCL_NAMESPACE_BEGIN @@ -60,6 +61,18 @@ string path_join(const string& dir, const string& file) return (boost::filesystem::path(dir) / boost::filesystem::path(file)).string(); } +string path_escape(const string& path) +{ + string result = path; + boost::replace_all(result, " ", "\\ "); + return result; +} + +bool path_exists(const string& path) +{ + return boost::filesystem::exists(path); +} + string path_files_md5_hash(const string& dir) { /* computes md5 hash of all files in the directory */ diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h index 4be0cb86f56..3e07f9524bf 100644 --- a/intern/cycles/util/util_path.h +++ b/intern/cycles/util/util_path.h @@ -35,6 +35,8 @@ string path_filename(const string& path); string path_dirname(const string& path); string path_join(const string& dir, const string& file); +string path_escape(const string& path); +bool path_exists(const string& path); string path_files_md5_hash(const string& dir); CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp index 77a1b1ffb75..8b09f227a74 100644 --- a/intern/cycles/util/util_system.cpp +++ b/intern/cycles/util/util_system.cpp @@ -113,5 +113,10 @@ string system_cpu_brand_string() return "Unknown CPU"; } +int system_cpu_bits() +{ + return (sizeof(void*)*8); +} + CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_system.h b/intern/cycles/util/util_system.h index 49a798acf03..214b3a18ca3 100644 --- a/intern/cycles/util/util_system.h +++ b/intern/cycles/util/util_system.h @@ -25,6 +25,7 @@ CCL_NAMESPACE_BEGIN int system_cpu_thread_count(); string system_cpu_brand_string(); +int system_cpu_bits(); CCL_NAMESPACE_END -- cgit v1.2.3 From cfbd6cf154bbc653422f30b2bf8077545f5fb99c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 9 Sep 2011 12:04:39 +0000 Subject: Cycles: * OpenCL now only uses GPU/Accelerator devices, it's only confusing if CPU device is used, easy to enable in the code for debugging. * OpenCL kernel binaries are now cached for faster startup after the first time compiling. * CUDA kernels can now be compiled and cached at runtime if the CUDA toolkit is installed. This means that even if the build does not have CUDA enabled, it's still possible to use it as long as you install the toolkit. --- intern/cycles/CMakeLists.txt | 3 +- intern/cycles/blender/addon/engine.py | 6 +- intern/cycles/blender/blender_python.cpp | 6 +- intern/cycles/device/device_cuda.cpp | 103 ++++++++++++++++++--- intern/cycles/device/device_opencl.cpp | 149 ++++++++++++++++++++++++++---- intern/cycles/kernel/CMakeLists.txt | 1 + intern/cycles/kernel/kernel_compat_cuda.h | 6 +- intern/cycles/render/session.cpp | 2 +- intern/cycles/util/util_cuda.cpp | 23 ++++- intern/cycles/util/util_path.cpp | 57 +++++++++++- intern/cycles/util/util_path.h | 7 +- 11 files changed, 317 insertions(+), 46 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 5d76f57fa73..05b9d4ad3bb 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -46,7 +46,7 @@ if(WITH_CYCLES_MULTI) endif() if(WITH_CYCLES_CUDA) - add_definitions(-DWITH_CUDA) + add_definitions(-DWITH_CUDA_BINARIES) endif() if(WITH_CYCLES_OSL) @@ -58,6 +58,7 @@ if(WITH_CYCLES_PARTIO) endif() add_definitions(-DWITH_OPENCL) +add_definitions(-DWITH_CUDA) include_directories( ${BOOST_INCLUDE_DIR} diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index d6ea15a435f..8cd7be567e6 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -21,7 +21,11 @@ import bpy def init(): import libcycles_blender as lib import os.path - lib.init(os.path.dirname(__file__)) + + path = os.path.dirname(__file__) + user_path = os.path.dirname(os.path.abspath(bpy.utils.user_resource('CONFIG', ''))) + + lib.init(path, user_path) def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): import libcycles_blender as lib diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index b40f5206fea..1026d420c02 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -28,12 +28,12 @@ CCL_NAMESPACE_BEGIN static PyObject *init_func(PyObject *self, PyObject *args) { - const char *path; + const char *path, *user_path; - if(!PyArg_ParseTuple(args, "s", &path)) + if(!PyArg_ParseTuple(args, "ss", &path, &user_path)) return NULL; - path_init(path); + path_init(path, user_path); Py_INCREF(Py_None); return Py_None; diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index a6a66873b92..49ffd3d0834 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -28,7 +28,9 @@ #include "util_map.h" #include "util_opengl.h" #include "util_path.h" +#include "util_system.h" #include "util_types.h" +#include "util_time.h" CCL_NAMESPACE_BEGIN @@ -125,6 +127,15 @@ public: } \ } + bool cuda_error(CUresult result) + { + if(result == CUDA_SUCCESS) + return false; + + fprintf(stderr, "CUDA error: %s\n", cuda_error_string(result)); + return true; + } + void cuda_push_context() { cuda_assert(cuCtxSetCurrent(cuContext)) @@ -140,17 +151,26 @@ public: background = background_; cuDevId = 0; + cuDevice = 0; + cuContext = 0; /* intialize */ - cuda_assert(cuInit(0)) + if(cuda_error(cuInit(0))) + return; /* setup device and context */ - cuda_assert(cuDeviceGet(&cuDevice, cuDevId)) + if(cuda_error(cuDeviceGet(&cuDevice, cuDevId))) + return; + + CUresult result; if(background) - cuda_assert(cuCtxCreate(&cuContext, 0, cuDevice)) + result = cuCtxCreate(&cuContext, 0, cuDevice); else - cuda_assert(cuGLCtxCreate(&cuContext, 0, cuDevice)) + result = cuGLCtxCreate(&cuContext, 0, cuDevice); + + if(cuda_error(result)) + return; cuda_pop_context(); } @@ -173,21 +193,80 @@ public: return string("CUDA ") + deviceName; } + string compile_kernel() + { + /* compute cubin name */ + int major, minor; + cuDeviceComputeCapability(&major, &minor, cuDevId); + + /* attempt to use kernel provided with blender */ + string cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor)); + if(path_exists(cubin)) + return cubin; + + /* not found, try to use locally compiled kernel */ + string kernel_path = path_get("kernel"); + string md5 = path_files_md5_hash(kernel_path); + + cubin = string_printf("cycles_kernel_sm%d%d_%s.cubin", major, minor, md5.c_str());; + cubin = path_user_get(path_join("cache", cubin)); + + /* if exists already, use it */ + if(path_exists(cubin)) + return cubin; + + /* if not, find CUDA compiler */ + string nvcc = cuCompilerPath(); + + if(nvcc == "") { + fprintf(stderr, "CUDA nvcc compiler not found. Install CUDA toolkit in default location.\n"); + return ""; + } + + /* compile */ + string kernel = path_join(kernel_path, "kernel.cu"); + string include = kernel_path; + const int machine = system_cpu_bits(); + const int maxreg = 24; + + double starttime = time_dt(); + printf("Compiling CUDA kernel ...\n"); + + string command = string_printf("%s -arch=sm_%d%d -m%d --cubin \"%s\" --use_fast_math " + "-o \"%s\" --ptxas-options=\"-v\" --maxrregcount=%d --opencc-options -OPT:Olimit=0 -I\"%s\" -DNVCC", + nvcc.c_str(), major, minor, machine, kernel.c_str(), cubin.c_str(), maxreg, include.c_str()); + + system(command.c_str()); + + /* verify if compilation succeeded */ + if(!path_exists(cubin)) { + fprintf(stderr, "CUDA kernel compilation failed.\n"); + return ""; + } + + printf("Kernel compilation finished in %.2lfs.\n", time_dt() - starttime); + + return cubin; + } bool load_kernels() { - CUresult result; - int major, minor; + /* check if cuda init succeeded */ + if(cuContext == 0) + return false; - cuda_push_context(); + /* get kernel */ + string cubin = compile_kernel(); + + if(cubin == "") + return false; /* open module */ - cuDeviceComputeCapability(&major, &minor, cuDevId); - string cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor)); + cuda_push_context(); - result = cuModuleLoad(&cuModule, cubin.c_str()); - if(result != CUDA_SUCCESS) - fprintf(stderr, "Failed loading CUDA kernel %s (%s).\n", cubin.c_str(), cuda_error_string(result)); + CUresult result = cuModuleLoad(&cuModule, cubin.c_str()); + if(cuda_error(result)) + fprintf(stderr, "Failed loading CUDA kernel %s.\n", cubin.c_str()); cuda_pop_context(); diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index c142701c873..a41238ffe09 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -27,6 +27,7 @@ #include "util_map.h" #include "util_math.h" +#include "util_md5.h" #include "util_opencl.h" #include "util_opengl.h" #include "util_path.h" @@ -118,7 +119,7 @@ public: void opencl_assert(cl_int err) { if(err != CL_SUCCESS) { - printf("error (%d): %s\n", err, opencl_error_string(err)); + fprintf(stderr, "OpenCL error (%d): %s\n", err, opencl_error_string(err)); #ifndef NDEBUG abort(); #endif @@ -157,7 +158,7 @@ public: cpPlatform = platform_ids[0]; /* todo: pick specified platform && device */ - ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_ALL, 1, &cdDevice, NULL); + ciErr = clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU|CL_DEVICE_TYPE_ACCELERATOR, 1, &cdDevice, NULL); if(opencl_error(ciErr)) return; @@ -208,38 +209,67 @@ public: return true; } - bool load_kernels() + bool load_binary(const string& kernel_path, const string& clbin) { - /* verify if device was initialized */ - if(!device_initialized) + /* read binary into memory */ + vector binary; + + if(!path_read_binary(clbin, binary)) { + fprintf(stderr, "OpenCL failed to read cached binary %s.\n", clbin.c_str()); return false; + } - /* verify we have right opencl version */ - if(!opencl_version_check()) + /* create program */ + cl_int status; + size_t size = binary.size(); + const uint8_t *bytes = &binary[0]; + + cpProgram = clCreateProgramWithBinary(cxContext, 1, &cdDevice, + &size, &bytes, &status, &ciErr); + + if(opencl_error(status) || opencl_error(ciErr)) { + fprintf(stderr, "OpenCL failed create program from cached binary %s.\n", clbin.c_str()); return false; + } - /* we compile kernels consisting of many files. unfortunately opencl - kernel caches do not seem to recognize changes in included files. - so we force recompile on changes by adding the md5 hash of all files */ - string kernel_path = path_get("kernel"); - string kernel_md5 = path_files_md5_hash(kernel_path); + if(!build_kernel(kernel_path)) + return false; - string source = "#include \"kernel.cl\" // " + kernel_md5 + "\n"; - size_t source_len = source.size(); - const char *source_str = source.c_str(); + return true; + } + + bool save_binary(const string& clbin) + { + size_t size = 0; + clGetProgramInfo(cpProgram, CL_PROGRAM_BINARY_SIZES, sizeof(size_t), &size, NULL); + + if(!size) + return false; + + vector binary(size); + uint8_t *bytes = &binary[0]; + + clGetProgramInfo(cpProgram, CL_PROGRAM_BINARIES, sizeof(uint8_t*), &bytes, NULL); + + if(!path_write_binary(clbin, binary)) { + fprintf(stderr, "OpenCL failed to write cached binary %s.\n", clbin.c_str()); + return false; + } + + return true; + } + bool build_kernel(const string& kernel_path) + { string build_options = ""; build_options += "-I " + kernel_path + ""; /* todo: escape path */ build_options += " -cl-fast-relaxed-math -cl-strict-aliasing"; - cpProgram = clCreateProgramWithSource(cxContext, 1, &source_str, &source_len, &ciErr); - if(opencl_error(ciErr)) - return false; - ciErr = clBuildProgram(cpProgram, 0, NULL, build_options.c_str(), NULL, NULL); if(ciErr != CL_SUCCESS) { + /* show build errors */ char *build_log; size_t ret_val_size; @@ -256,6 +286,87 @@ public: return false; } + return true; + } + + bool compile_kernel(const string& kernel_path, const string& kernel_md5) + { + /* we compile kernels consisting of many files. unfortunately opencl + kernel caches do not seem to recognize changes in included files. + so we force recompile on changes by adding the md5 hash of all files */ + string source = "#include \"kernel.cl\" // " + kernel_md5 + "\n"; + size_t source_len = source.size(); + const char *source_str = source.c_str(); + + cpProgram = clCreateProgramWithSource(cxContext, 1, &source_str, &source_len, &ciErr); + + if(opencl_error(ciErr)) + return false; + + double starttime = time_dt(); + printf("Compiling OpenCL kernel ...\n"); + + if(!build_kernel(kernel_path)) + return false; + + printf("Kernel compilation finished in %.2lfs.\n", time_dt() - starttime); + + return true; + } + + string device_md5_hash() + { + MD5Hash md5; + char version[256], driver[256], name[256], vendor[256]; + + clGetPlatformInfo(cpPlatform, CL_PLATFORM_VENDOR, sizeof(vendor), &vendor, NULL); + clGetDeviceInfo(cdDevice, CL_DEVICE_VERSION, sizeof(version), &version, NULL); + clGetDeviceInfo(cdDevice, CL_DEVICE_NAME, sizeof(name), &name, NULL); + clGetDeviceInfo(cdDevice, CL_DRIVER_VERSION, sizeof(driver), &driver, NULL); + + md5.append((uint8_t*)vendor, strlen(vendor)); + md5.append((uint8_t*)version, strlen(version)); + md5.append((uint8_t*)name, strlen(name)); + md5.append((uint8_t*)driver, strlen(driver)); + + return md5.get_hex(); + } + + bool load_kernels() + { + /* verify if device was initialized */ + if(!device_initialized) { + fprintf(stderr, "OpenCL: failed to initialize device.\n"); + return false; + } + + /* verify we have right opencl version */ + if(!opencl_version_check()) + return false; + + /* md5 hash to detect changes */ + string kernel_path = path_get("kernel"); + string kernel_md5 = path_files_md5_hash(kernel_path); + string device_md5 = device_md5_hash(); + + /* try to use cache binary */ + string clbin = string_printf("cycles_kernel_%s_%s.clbin", device_md5.c_str(), kernel_md5.c_str());; + clbin = path_user_get(path_join("cache", clbin)); + + if(path_exists(clbin)) { + /* if exists already, try use it */ + if(!load_binary(kernel_path, clbin)) + return false; + } + else { + /* compile kernel */ + if(!compile_kernel(kernel_path, kernel_md5)) + return false; + + /* save binary for reuse */ + save_binary(clbin); + } + /* find kernels */ ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); if(opencl_error(ciErr)) diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 31fe6994a1a..9714f941082 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -132,6 +132,7 @@ endif() #delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${kernel_preprocessed}" ${CYCLES_INSTALL_PATH}/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cl" ${CYCLES_INSTALL_PATH}/kernel) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cu" ${CYCLES_INSTALL_PATH}/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${headers}" ${CYCLES_INSTALL_PATH}/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${svm_headers}" ${CYCLES_INSTALL_PATH}/kernel/svm) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${util_headers}" ${CYCLES_INSTALL_PATH}/kernel) diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h index 3a0eff5210c..72aef463cab 100644 --- a/intern/cycles/kernel/kernel_compat_cuda.h +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -21,14 +21,14 @@ #define __KERNEL_GPU__ #define __KERNEL_CUDA__ +#define CCL_NAMESPACE_BEGIN +#define CCL_NAMESPACE_END #include #include #include "util_types.h" -CCL_NAMESPACE_BEGIN - /* Qualifier wrappers for different names on different devices */ #define __device __device__ __inline__ @@ -60,7 +60,5 @@ typedef texture texture_image_uchar4; #define kernel_data __data -CCL_NAMESPACE_END - #endif /* __KERNEL_COMPAT_CUDA_H__ */ diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index f66c4a64b0b..5fb687971ef 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -384,7 +384,7 @@ void Session::run_cpu() void Session::run() { /* load kernels */ - progress.set_status("Loading render kernels (may take a few minutes)"); + progress.set_status("Loading render kernels (may take a few minutes the first time)"); if(!device->load_kernels()) { progress.set_status("Failed loading render kernel, see console for errors"); diff --git a/intern/cycles/util/util_cuda.cpp b/intern/cycles/util/util_cuda.cpp index b371f4e9499..14e3f9a159b 100644 --- a/intern/cycles/util/util_cuda.cpp +++ b/intern/cycles/util/util_cuda.cpp @@ -16,6 +16,8 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include + #include "util_cuda.h" #include "util_debug.h" #include "util_dynlib.h" @@ -371,6 +373,11 @@ bool cuLibraryInit() /* cuda 4.0 */ CUDA_LIBRARY_FIND(cuCtxSetCurrent); +#ifndef WITH_CUDA_BINARIES + if(cuCompilerPath() == "") + return false; +#endif + /* success */ result = true; @@ -379,13 +386,23 @@ bool cuLibraryInit() string cuCompilerPath() { - /* todo: better nvcc detection */ #ifdef _WIN32 - string nvcc = "C:/CUDA/bin/nvcc.exe"; + const char *defaultpath = "C:/CUDA/bin"; + const char *executable = "nvcc.exe"; #else - string nvcc = "/usr/local/cuda/bin/nvcc"; + const char *defaultpath = "/usr/local/cuda/bin"; + const char *executable = "nvcc"; #endif + const char *binpath = getenv("CUDA_BIN_PATH"); + + string nvcc; + + if(binpath) + nvcc = path_join(binpath, executable); + else + nvcc = path_join(defaultpath, executable); + return (path_exists(nvcc))? nvcc: ""; } diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index 086063bcb81..90093e32d58 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -24,6 +24,8 @@ #include OIIO_NAMESPACE_USING +#include + #define BOOST_FILESYSTEM_VERSION 2 #include @@ -32,10 +34,12 @@ OIIO_NAMESPACE_USING CCL_NAMESPACE_BEGIN static string cached_path = ""; +static string cached_user_path = ""; -void path_init(const string& path) +void path_init(const string& path, const string& user_path) { cached_path = path; + cached_user_path = user_path; } string path_get(const string& sub) @@ -46,6 +50,14 @@ string path_get(const string& sub) return path_join(cached_path, sub); } +string path_user_get(const string& sub) +{ + if(cached_user_path == "") + cached_user_path = path_dirname(Sysutil::this_program_path()); + + return path_join(cached_user_path, sub); +} + string path_filename(const string& path) { return boost::filesystem::path(path).filename(); @@ -97,5 +109,48 @@ string path_files_md5_hash(const string& dir) return hash.get_hex(); } +bool path_write_binary(const string& path, const vector& binary) +{ + /* write binary file from memory */ + boost::filesystem::create_directories(path_dirname(path)); + + FILE *f = fopen(path.c_str(), "wb"); + + if(!f) + return false; + + if(binary.size() > 0) + fwrite(&binary[0], sizeof(uint8_t), binary.size(), f); + + fclose(f); + + return true; +} + +bool path_read_binary(const string& path, vector& binary) +{ + binary.resize(boost::filesystem::file_size(path)); + + /* read binary file into memory */ + FILE *f = fopen(path.c_str(), "rb"); + + if(!f) + return false; + + if(binary.size() == 0) { + fclose(f); + return false; + } + + if(fread(&binary[0], sizeof(uint8_t), binary.size(), f) != binary.size()) { + fclose(f); + return false; + } + + fclose(f); + + return true; +} + CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h index 3e07f9524bf..ec3524d362a 100644 --- a/intern/cycles/util/util_path.h +++ b/intern/cycles/util/util_path.h @@ -25,11 +25,13 @@ * then makes all paths relative to that. */ #include "util_string.h" +#include "util_vector.h" CCL_NAMESPACE_BEGIN -void path_init(const string& path = ""); +void path_init(const string& path = "", const string& user_path = ""); string path_get(const string& sub = ""); +string path_user_get(const string& sub = ""); string path_filename(const string& path); string path_dirname(const string& path); @@ -39,6 +41,9 @@ string path_escape(const string& path); bool path_exists(const string& path); string path_files_md5_hash(const string& dir); +bool path_write_binary(const string& path, const vector& binary); +bool path_read_binary(const string& path, vector& binary); + CCL_NAMESPACE_END #endif -- cgit v1.2.3 From 71c9120d044de3a859fda2d6b490fa3c249ec786 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 9 Sep 2011 16:38:15 +0000 Subject: Cycles: fix windows build, some minor tweaks. --- intern/cycles/kernel/kernel_types.h | 5 +++-- intern/cycles/kernel/svm/bsdf_microfacet.h | 34 ++++++++++++------------------ intern/cycles/render/film.cpp | 3 +-- intern/cycles/render/film.h | 1 - intern/cycles/util/util_path.h | 1 + 5 files changed, 19 insertions(+), 25 deletions(-) diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 93cd61c43ca..1417f2d5110 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -80,7 +80,9 @@ enum PathRayFlag { PATH_RAY_DIFFUSE = 16, PATH_RAY_GLOSSY = 32, PATH_RAY_SINGULAR = 64, - PATH_RAY_TRANSPARENT = 128 + PATH_RAY_TRANSPARENT = 128, + + PATH_RAY_ALL = (1|2|4|8|16|32|64|128) }; /* Bidirectional Path Tracing */ @@ -248,7 +250,6 @@ typedef struct ShaderData { float3 svm_closure_weight; float svm_closure_data0; float svm_closure_data1; - float svm_closure_data2; #if !defined(__KERNEL_GPU__) && defined(WITH_OSL) /* OSL closure data and context. we store all closures flattened into diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h index 595182d90de..0ca37eedc22 100644 --- a/intern/cycles/kernel/svm/bsdf_microfacet.h +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -41,18 +41,15 @@ typedef struct BsdfMicrofacetGGXClosure { //float3 m_N; float m_ag; float m_eta; - int m_refractive; } BsdfMicrofacetGGXClosure; __device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, float eta, bool refractive) { float m_ag = clamp(ag, 1e-5f, 1.0f); float m_eta = eta; - int m_refractive = (refractive)? 1: 0; sd->svm_closure_data0 = m_ag; sd->svm_closure_data1 = m_eta; - sd->svm_closure_data2 = __int_as_float(m_refractive); if(refractive) sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; @@ -73,10 +70,10 @@ __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const flo { float m_ag = sd->svm_closure_data0; //float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; - if(m_refractive == 1) return make_float3 (0, 0, 0); + if(m_refractive) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNI > 0 && cosNO > 0) { @@ -110,10 +107,10 @@ __device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const fl { float m_ag = sd->svm_closure_data0; float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; - if(m_refractive == 0) return make_float3 (0, 0, 0); + if(!m_refractive) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO <= 0 || cosNI >= 0) @@ -151,7 +148,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float { float m_ag = sd->svm_closure_data0; float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -170,7 +167,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float float3 m = (cosf(phiM) * sinThetaM) * X + (sinf(phiM) * sinThetaM) * Y + cosThetaM * Z; - if(m_refractive == 0) { + if(!m_refractive) { float cosMO = dot(m, sd->I); if(cosMO > 0) { // eq. 39 - compute actual reflected direction @@ -260,7 +257,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float } } } - return (m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; + return (m_refractive) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; } /* BECKMANN */ @@ -269,18 +266,15 @@ typedef struct BsdfMicrofacetBeckmannClosure { //float3 m_N; float m_ab; float m_eta; - int m_refractive; } BsdfMicrofacetBeckmannClosure; __device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, float eta, bool refractive) { float m_ab = clamp(ab, 1e-5f, 1.0f); float m_eta = eta; - float m_refractive = (refractive)? 1: 0; sd->svm_closure_data0 = m_ab; sd->svm_closure_data1 = m_eta; - sd->svm_closure_data2 = __int_as_float(m_refractive); if(refractive) sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; @@ -301,10 +295,10 @@ __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, cons { float m_ab = sd->svm_closure_data0; //float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; - if(m_refractive == 1) return make_float3 (0, 0, 0); + if(m_refractive) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO > 0 && cosNI > 0) { @@ -340,10 +334,10 @@ __device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, con { float m_ab = sd->svm_closure_data0; float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; - if(m_refractive == 0) return make_float3 (0, 0, 0); + if(!m_refractive) return make_float3 (0, 0, 0); float cosNO = dot(m_N, I); float cosNI = dot(m_N, omega_in); if(cosNO <= 0 || cosNI >= 0) @@ -383,7 +377,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, { float m_ab = sd->svm_closure_data0; float m_eta = sd->svm_closure_data1; - int m_refractive = __float_as_int(sd->svm_closure_data2); + int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -403,7 +397,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, (sinf(phiM) * sinThetaM) * Y + cosThetaM * Z; - if(m_refractive == 0) { + if(!m_refractive) { float cosMO = dot(m, sd->I); if(cosMO > 0) { // eq. 39 - compute actual reflected direction @@ -500,7 +494,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, } } } - return (m_refractive == 1) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; + return (m_refractive) ? LABEL_TRANSMIT|LABEL_GLOSSY : LABEL_REFLECT|LABEL_GLOSSY; } CCL_NAMESPACE_END diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp index 657abd97f70..0ae2866f182 100644 --- a/intern/cycles/render/film.cpp +++ b/intern/cycles/render/film.cpp @@ -52,8 +52,7 @@ void Film::device_free(Device *device, DeviceScene *dscene) bool Film::modified(const Film& film) { - return !(exposure == film.exposure && - pass == film.pass); + return !(exposure == film.exposure); } void Film::tag_update(Scene *scene) diff --git a/intern/cycles/render/film.h b/intern/cycles/render/film.h index 201fc174f4f..df24fad3725 100644 --- a/intern/cycles/render/film.h +++ b/intern/cycles/render/film.h @@ -30,7 +30,6 @@ class Scene; class Film { public: float exposure; - int pass; bool need_update; Film(); diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h index ec3524d362a..a91b91461fa 100644 --- a/intern/cycles/util/util_path.h +++ b/intern/cycles/util/util_path.h @@ -25,6 +25,7 @@ * then makes all paths relative to that. */ #include "util_string.h" +#include "util_types.h" #include "util_vector.h" CCL_NAMESPACE_BEGIN -- cgit v1.2.3 From 255f9794586f05352876a73f451e4df7399b30aa Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 11 Sep 2011 21:41:30 +0000 Subject: * Remove last occurrences of the OB_SHADED flag. --- source/blender/makesdna/DNA_view3d_types.h | 4 ++-- source/blender/makesrna/intern/rna_object.c | 1 - source/blender/makesrna/intern/rna_space.c | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 5b3ee5e06a9..6d4a845c5b0 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -168,8 +168,8 @@ typedef struct View3D { int layact; /** - * The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID, - * OB_SHADED or OB_TEXTURE */ + * The drawing mode for the 3d display. Set to OB_BOUNDBOX, OB_WIRE, OB_SOLID, + * OB_TEXTURE, OB_MATERIAL or OB_RENDER */ short drawtype; short ob_centre_cursor; /* optional bool for 3d cursor to define center */ short scenelock, around; diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index ad323b0aba4..420a7ac9ba2 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1739,7 +1739,6 @@ static void rna_def_object(BlenderRNA *brna) {OB_BOUNDBOX, "BOUNDS", 0, "Bounds", "Draw the bounding box of the object"}, {OB_WIRE, "WIRE", 0, "Wire", "Draw the object as a wireframe"}, {OB_SOLID, "SOLID", 0, "Solid", "Draw the object as a solid (If solid drawing is enabled in the viewport)"}, - // disabled {OB_SHADED, "SHADED", 0, "Shaded", ""}, {OB_TEXTURE, "TEXTURED", 0, "Textured", "Draw the object with textures (If textures are enabled in the viewport)"}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 108434ee4a8..4a66cde31a5 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -101,7 +101,6 @@ EnumPropertyItem viewport_shade_items[] = { {OB_BOUNDBOX, "BOUNDBOX", ICON_BBOX, "Bounding Box", "Display the object's local bounding boxes only"}, {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, - //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, -- cgit v1.2.3 From bf4f793b55fb773549f0830317c65d6d17627520 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 11 Sep 2011 23:44:20 +0000 Subject: Cycles Render API: * Show Rendered Viewport Shading only when the engine supports it. Only enabled for Cycles now. * Added RenderEngine flag RE_DO_RENDERED, which is an optional flag. Exposed as bl_use_rendered in Python. ToDo: When you are in Rendered mode and change to a engine which does not support it, the enum doesn't set properly to OB_SOLID. --- intern/cycles/blender/addon/__init__.py | 1 + source/blender/makesrna/intern/rna_render.c | 4 ++++ source/blender/makesrna/intern/rna_space.c | 25 ++++++++++++++++++++++++ source/blender/render/extern/include/RE_engine.h | 1 + 4 files changed, 31 insertions(+) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 3ff1a8f3d41..8688e678f86 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -40,6 +40,7 @@ from cycles import presets class CyclesRender(bpy.types.RenderEngine): bl_idname = 'CYCLES' bl_label = "Cycles" + bl_use_rendered = True def __init__(self): engine.init() diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 4337f3c4de6..0933dafcf22 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -402,6 +402,10 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_use_rendered", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_RENDERED); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 4a66cde31a5..b3a40ccef3c 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -450,6 +450,30 @@ static void rna_RegionView3D_view_matrix_set(PointerRNA *ptr, const float *value ED_view3d_from_m4((float (*)[4])values, rv3d->ofs, rv3d->viewquat, &rv3d->dist); } +static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C), PointerRNA *ptr, PropertyRNA *UNUSED(prop), int *free) +{ + Scene *scene = ((bScreen*)ptr->id.data)->scene; + RenderEngineType *type = RE_engines_find(scene->r.engine); + + EnumPropertyItem *item= NULL; + int totitem= 0; + + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_BOUNDBOX); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_WIRE); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_SOLID); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); + + if(type->flag & RE_DO_RENDERED) { + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); + } + + RNA_enum_item_end(&item, &totitem); + *free= 1; + + return item; +} + /* Space Image Editor */ static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr) @@ -1226,6 +1250,7 @@ static void rna_def_space_view3d(BlenderRNA *brna) prop= RNA_def_property(srna, "viewport_shade", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "drawtype"); RNA_def_property_enum_items(prop, viewport_shade_items); + RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_SpaceView3D_viewport_shade_itemf"); RNA_def_property_ui_text(prop, "Viewport Shading", "Method to display/shade objects in the 3D View"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update"); diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 7f01bc673d2..97e789e8560 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -52,6 +52,7 @@ struct Scene; #define RE_GAME 2 #define RE_DO_PREVIEW 4 #define RE_DO_ALL 8 +#define RE_DO_RENDERED 16 extern ListBase R_engines; -- cgit v1.2.3 From c40492205b4369de3babe63b43d127ca622773ec Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 12 Sep 2011 11:59:13 +0000 Subject: Cycles: * Remove RE_DO_RENDERED again, check for view_draw callback is sufficient. --- intern/cycles/blender/addon/__init__.py | 1 - source/blender/makesrna/intern/rna_render.c | 4 ---- source/blender/makesrna/intern/rna_space.c | 2 +- source/blender/render/extern/include/RE_engine.h | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 8688e678f86..3ff1a8f3d41 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -40,7 +40,6 @@ from cycles import presets class CyclesRender(bpy.types.RenderEngine): bl_idname = 'CYCLES' bl_label = "Cycles" - bl_use_rendered = True def __init__(self): engine.init() diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 0933dafcf22..4337f3c4de6 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -402,10 +402,6 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); - - prop= RNA_def_property(srna, "bl_use_rendered", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_RENDERED); - RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index b3a40ccef3c..651fb848f4c 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -464,7 +464,7 @@ static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); - if(type->flag & RE_DO_RENDERED) { + if(type->view_draw) { RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); } diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 97e789e8560..7f01bc673d2 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -52,7 +52,6 @@ struct Scene; #define RE_GAME 2 #define RE_DO_PREVIEW 4 #define RE_DO_ALL 8 -#define RE_DO_RENDERED 16 extern ListBase R_engines; -- cgit v1.2.3 From ebc653463ddfd9f8b893b6acbcc6465972e6abc6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 12 Sep 2011 13:13:56 +0000 Subject: Cycles: * Fix missing update when editing objects with emission materials. * Fix preview pass rendering set to 1 not showing full resolution. * Fix CUDA runtime compiling failing due to missing cache directory. * Use settings from first render layer for visibility and material override. And a bunch of incomplete and still disabled code mostly related to closure sampling. --- CMakeLists.txt | 3 +- intern/cycles/CMakeLists.txt | 5 +- intern/cycles/blender/addon/ui.py | 36 +++ intern/cycles/blender/blender_mesh.cpp | 8 +- intern/cycles/blender/blender_object.cpp | 24 +- intern/cycles/blender/blender_sync.cpp | 24 ++ intern/cycles/blender/blender_sync.h | 14 +- intern/cycles/device/device.cpp | 10 +- intern/cycles/device/device_cuda.cpp | 19 +- intern/cycles/device/device_multi.cpp | 34 ++- intern/cycles/kernel/kernel_emission.h | 41 ++- intern/cycles/kernel/kernel_globals.h | 4 +- intern/cycles/kernel/kernel_light.h | 12 +- intern/cycles/kernel/kernel_path.h | 99 ++++++- intern/cycles/kernel/kernel_shader.h | 338 +++++++++++++++-------- intern/cycles/kernel/kernel_types.h | 76 +++-- intern/cycles/kernel/osl/osl_shader.cpp | 249 +++++------------ intern/cycles/kernel/osl/osl_shader.h | 18 +- intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h | 20 +- intern/cycles/kernel/svm/bsdf_diffuse.h | 28 +- intern/cycles/kernel/svm/bsdf_microfacet.h | 84 +++--- intern/cycles/kernel/svm/bsdf_reflection.h | 16 +- intern/cycles/kernel/svm/bsdf_refraction.h | 18 +- intern/cycles/kernel/svm/bsdf_transparent.h | 14 +- intern/cycles/kernel/svm/bsdf_ward.h | 30 +- intern/cycles/kernel/svm/bsdf_westin.h | 44 +-- intern/cycles/kernel/svm/emissive.h | 27 +- intern/cycles/kernel/svm/svm.h | 40 +-- intern/cycles/kernel/svm/svm_bsdf.h | 106 ++++--- intern/cycles/kernel/svm/svm_closure.h | 279 +++++++++++++++---- intern/cycles/kernel/svm/svm_types.h | 10 + intern/cycles/kernel/svm/volume.h | 2 +- intern/cycles/render/light.cpp | 60 ++-- intern/cycles/render/mesh.cpp | 5 + intern/cycles/render/nodes.cpp | 13 +- intern/cycles/render/object.cpp | 12 +- intern/cycles/render/session.cpp | 2 +- intern/cycles/render/session.h | 2 +- intern/cycles/render/svm.cpp | 99 ++++++- intern/cycles/render/svm.h | 6 + intern/cycles/render/tile.cpp | 2 +- intern/cycles/util/util_path.cpp | 9 +- intern/cycles/util/util_path.h | 1 + 43 files changed, 1235 insertions(+), 708 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 279644550c2..c24817fc672 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -207,11 +207,10 @@ option(WITH_API_INSTALL "Copy API header files into the blender install fold # Cycles option(WITH_CYCLES "Enable Cycles Render Engine" ON) OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) -OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF) +OPTION(WITH_CYCLES_CUDA "Build with CUDA binaries" OFF) OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) -OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_TEST "Build cycles test application" OFF) # disable for now, but plan to support on all platforms eventually diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 05b9d4ad3bb..74bac846aa4 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -41,10 +41,6 @@ if(WITH_CYCLES_NETWORK) add_definitions(-DWITH_NETWORK) endif() -if(WITH_CYCLES_MULTI) - add_definitions(-DWITH_MULTI) -endif() - if(WITH_CYCLES_CUDA) add_definitions(-DWITH_CUDA_BINARIES) endif() @@ -59,6 +55,7 @@ endif() add_definitions(-DWITH_OPENCL) add_definitions(-DWITH_CUDA) +add_definitions(-DWITH_MULTI) include_directories( ${BOOST_INCLUDE_DIR} diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index da99e4e23d6..992a698bbdd 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -140,6 +140,42 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel): sub.prop(cscene, "debug_bvh_type", text="") sub.prop(cscene, "debug_use_spatial_splits") +class CyclesRender_PT_layers(CyclesButtonsPanel, Panel): + bl_label = "Layers" + bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} + + def draw(self, context): + layout = self.layout + + scene = context.scene + rd = scene.render + + # row = layout.row() + # row.template_list(rd, "layers", rd.layers, "active_index", rows=2) + + # col = row.column(align=True) + # col.operator("scene.render_layer_add", icon='ZOOMIN', text="") + # col.operator("scene.render_layer_remove", icon='ZOOMOUT', text="") + + row = layout.row() + # rl = rd.layers.active + rl = rd.layers[0] + row.prop(rl, "name") + #row.prop(rd, "use_single_layer", text="", icon_only=True) + + split = layout.split() + + col = split.column() + col.prop(scene, "layers", text="Scene") + + col = split.column() + col.prop(rl, "layers", text="Layer") + + layout.separator() + + layout.prop(rl, "material_override", text="Material") + class Cycles_PT_post_processing(CyclesButtonsPanel, Panel): bl_label = "Post Processing" bl_options = {'DEFAULT_CLOSED'} diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 3fe4fa60a16..f981be66eb4 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -223,8 +223,12 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) vector used_shaders; BL::Object::material_slots_iterator slot; - for(b_ob.material_slots.begin(slot); slot != b_ob.material_slots.end(); ++slot) - find_shader(slot->material(), used_shaders); + for(b_ob.material_slots.begin(slot); slot != b_ob.material_slots.end(); ++slot) { + if(render_layer.material_override) + find_shader(render_layer.material_override, used_shaders); + else + find_shader(slot->material(), used_shaders); + } if(used_shaders.size() == 0) used_shaders.push_back(scene->default_surface); diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index f1ba2dba2f5..e693efb2d7f 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -108,7 +108,7 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, /* Object */ -void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm) +void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm, uint visibility) { /* light is handled separately */ if(object_is_light(b_ob)) { @@ -130,7 +130,7 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, object->name = b_ob.name(); object->tfm = tfm; - object->visibility = object_ray_visibility(b_ob); + object->visibility = object_ray_visibility(b_ob) & visibility; if(b_parent.ptr.data != b_ob.ptr.data) object->visibility &= object_ray_visibility(b_parent); @@ -147,12 +147,8 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) { /* layer data */ - uint layer; - - if(b_v3d) - layer = get_layer(b_v3d.layers()); - else - layer = get_layer(b_scene.layers()); + uint scene_layer = render_layer.scene_layer; + uint layer = render_layer.layer; /* prepare for sync */ light_map.pre_sync(); @@ -165,8 +161,14 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) for(b_scene.objects.begin(b_ob); b_ob != b_scene.objects.end(); ++b_ob) { bool hide = (b_v3d)? b_ob->hide(): b_ob->hide_render(); + uint ob_layer = get_layer(b_ob->layers()); + + if(!hide && (ob_layer & scene_layer)) { + uint visibility = PATH_RAY_ALL; + + if(!(ob_layer & layer)) + visibility &= ~PATH_RAY_CAMERA; - if(!hide && get_layer(b_ob->layers()) & layer) { if(b_ob->is_duplicator()) { /* dupli objects */ object_create_duplilist(*b_ob, b_scene); @@ -176,7 +178,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) for(b_ob->dupli_list.begin(b_dup); b_dup != b_ob->dupli_list.end(); ++b_dup) { Transform tfm = get_transform(b_dup->matrix()); - sync_object(*b_ob, b_index, b_dup->object(), tfm); + sync_object(*b_ob, b_index, b_dup->object(), tfm, visibility); b_index++; } @@ -185,7 +187,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d) else { /* object itself */ Transform tfm = get_transform(b_ob->matrix_world()); - sync_object(*b_ob, 0, *b_ob, tfm); + sync_object(*b_ob, 0, *b_ob, tfm, visibility); } } } diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index ea5d0a1a3c6..b9d35a02a78 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -118,6 +118,7 @@ void BlenderSync::sync_data(BL::SpaceView3D b_v3d) { sync_integrator(); sync_film(); + sync_render_layer(b_v3d); sync_shaders(); sync_objects(b_v3d); } @@ -172,6 +173,29 @@ void BlenderSync::sync_film() filter->tag_update(scene); } +/* Render Layer */ + +void BlenderSync::sync_render_layer(BL::SpaceView3D b_v3d) +{ + if(b_v3d) { + render_layer.scene_layer = get_layer(b_v3d.layers()); + render_layer.layer = render_layer.scene_layer; + render_layer.material_override = PointerRNA_NULL; + } + else { + BL::RenderSettings r = b_scene.render(); + BL::RenderSettings::layers_iterator b_rlay; + + for(r.layers.begin(b_rlay); b_rlay != r.layers.end(); ++b_rlay) { + render_layer.scene_layer = get_layer(b_scene.layers()); + render_layer.layer = get_layer(b_rlay->layers()); + render_layer.material_override = b_rlay->material_override(); + + break; /* single layer for now */ + } + } +} + /* Scene Parameters */ SceneParams BlenderSync::get_scene_params(BL::Scene b_scene) diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index fe60f42bc75..48e755b3dcd 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -72,11 +72,12 @@ private: void sync_integrator(); void sync_view(); void sync_world(); + void sync_render_layer(BL::SpaceView3D b_v3d); void sync_shaders(); 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); + void sync_object(BL::Object b_parent, int b_index, BL::Object b_object, Transform& tfm, uint visibility); void sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm); /* util */ @@ -99,6 +100,17 @@ private: Scene *scene; bool preview; + + struct RenderLayerInfo { + RenderLayerInfo() + : scene_layer(0), layer(0), + material_override(PointerRNA_NULL) + {} + + uint scene_layer; + uint layer; + BL::Material material_override; + } render_layer; }; CCL_NAMESPACE_END diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index e21dce45d80..ab57d7cfe86 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -84,7 +84,7 @@ void Device::pixels_alloc(device_memory& mem) void Device::pixels_copy_from(device_memory& mem, int y, int w, int h) { - mem_copy_from(mem, sizeof(uchar)*4*y*w, sizeof(uchar)*4*w*h); + mem_copy_from(mem, sizeof(uint8_t)*4*y*w, sizeof(uint8_t)*4*w*h); } void Device::pixels_free(device_memory& mem) @@ -104,7 +104,13 @@ void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, in glPixelZoom((float)width/(float)w, (float)height/(float)h); glRasterPos2f(0, y); - glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, (void*)rgba.data_pointer); + uint8_t *pixels = (uint8_t*)rgba.data_pointer; + + /* for multi devices, this assumes the ineffecient method that we allocate + all pixels on the device even though we only render to a subset */ + pixels += sizeof(uint8_t)*4*y*w; + + glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels); glRasterPos2f(0.0f, 0.0f); glPixelZoom(1.0f, 1.0f); diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 49ffd3d0834..7fc0afce1ac 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -232,11 +232,16 @@ public: double starttime = time_dt(); printf("Compiling CUDA kernel ...\n"); + path_create_directories(cubin); + string command = string_printf("%s -arch=sm_%d%d -m%d --cubin \"%s\" --use_fast_math " "-o \"%s\" --ptxas-options=\"-v\" --maxrregcount=%d --opencc-options -OPT:Olimit=0 -I\"%s\" -DNVCC", nvcc.c_str(), major, minor, machine, kernel.c_str(), cubin.c_str(), maxreg, include.c_str()); - system(command.c_str()); + if(system(command.c_str()) == -1) { + fprintf(stderr, "Failed to execute compilation command.\n"); + return ""; + } /* verify if compilation succeeded */ if(!path_exists(cubin)) { @@ -708,9 +713,13 @@ public: cuda_push_context(); + /* for multi devices, this assumes the ineffecient method that we allocate + all pixels on the device even though we only render to a subset */ + size_t offset = sizeof(uint8_t)*4*y*w; + glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pmem.cuPBO); glBindTexture(GL_TEXTURE_2D, pmem.cuTexId); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, 0); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, (void*)offset); glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); glEnable(GL_TEXTURE_2D); @@ -729,11 +738,11 @@ public: glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f); - glTexCoord2f((float)w/(float)width, 0); + glTexCoord2f((float)w/(float)pmem.w, 0.0f); glVertex2f((float)width, 0.0f); - glTexCoord2f((float)w/(float)width, (float)h/(float)height); + glTexCoord2f((float)w/(float)pmem.w, (float)h/(float)pmem.h); glVertex2f((float)width, (float)height); - glTexCoord2f(0.0f, (float)h/(float)height); + glTexCoord2f(0.0f, (float)h/(float)pmem.h); glVertex2f(0.0f, (float)height); glEnd(); diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp index cae63596d3b..f2f6251685e 100644 --- a/intern/cycles/device/device_multi.cpp +++ b/intern/cycles/device/device_multi.cpp @@ -47,9 +47,6 @@ public: MultiDevice(bool background_) : unique_ptr(1) { - /* enforce background for now */ - background = true; - Device *device; /* add CPU device */ @@ -125,6 +122,15 @@ public: return desc.str(); } + bool load_kernels() + { + foreach(SubDevice& sub, devices) + if(!sub.device->load_kernels()) + return false; + + return true; + } + void mem_alloc(device_memory& mem, MemoryType type) { foreach(SubDevice& sub, devices) { @@ -219,12 +225,26 @@ public: void pixels_alloc(device_memory& mem) { - Device::pixels_alloc(mem); + foreach(SubDevice& sub, devices) { + mem.device_pointer = 0; + sub.device->pixels_alloc(mem); + sub.ptr_map[unique_ptr] = mem.device_pointer; + } + + mem.device_pointer = unique_ptr++; } void pixels_free(device_memory& mem) { - Device::pixels_free(mem); + device_ptr tmp = mem.device_pointer; + + foreach(SubDevice& sub, devices) { + mem.device_pointer = sub.ptr_map[tmp]; + sub.device->pixels_free(mem); + sub.ptr_map.erase(sub.ptr_map.find(tmp)); + } + + mem.device_pointer = 0; } void pixels_copy_from(device_memory& mem, int y, int w, int h) @@ -248,14 +268,16 @@ public: { device_ptr tmp = rgba.device_pointer; int i = 0, sub_h = h/devices.size(); + int sub_height = height/devices.size(); foreach(SubDevice& sub, devices) { int sy = y + i*sub_h; int sh = (i == (int)devices.size() - 1)? h - sub_h*i: sub_h; + int sheight = (i == (int)devices.size() - 1)? height - sub_height*i: sub_height; /* adjust math for w/width */ rgba.device_pointer = sub.ptr_map[tmp]; - sub.device->draw_pixels(rgba, sy, w, sh, width, height, transparent); + sub.device->draw_pixels(rgba, sy, w, sh, width, sheight, transparent); i++; } diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 6b6033e9ebd..58c9183e58a 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -46,20 +46,29 @@ __device float3 direct_emissive_eval(KernelGlobals *kg, float rando, return eval; } -__device bool direct_emission(KernelGlobals *kg, ShaderData *sd, float randt, float rando, - float randu, float randv, Ray *ray, float3 *eval) +__device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, + float randt, float rando, float randu, float randv, Ray *ray, float3 *eval) { - /* sample a position on a light */ LightSample ls; - light_sample(kg, randt, randu, randv, sd->P, &ls); +#ifdef __MULTI_LIGHT__ + if(lindex != -1) { + /* sample position on a specified light */ + light_select(kg, lindex, randu, randv, sd->P, &ls); + } + else +#endif + { + /* sample a light and position on int */ + light_sample(kg, randt, randu, randv, sd->P, &ls); + } /* compute incoming direction and distance */ float t; float3 omega_in = normalize_len(ls.P - sd->P, &t); /* compute pdf */ - float pdf = light_pdf(kg, &ls, -omega_in, t); + float pdf = light_sample_pdf(kg, &ls, -omega_in, t); /* evaluate closure */ *eval = direct_emissive_eval(kg, rando, &ls, randu, randv, -omega_in); @@ -67,6 +76,8 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, float randt, fl if(is_zero(*eval) || pdf == 0.0f) return false; + /* todo: use visbility flag to skip lights */ + /* evaluate BSDF at shading point */ float bsdf_pdf; float3 bsdf_eval = shader_bsdf_eval(kg, sd, omega_in, &bsdf_pdf); @@ -88,10 +99,22 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, float randt, fl *eval *= 0.25f; } - /* setup ray */ - ray->P = ray_offset(sd->P, sd->Ng); - ray->D = ray_offset(ls.P, ls.Ng) - ray->P; - ray->D = normalize_len(ray->D, &ray->t); +#if 0 + /* todo: implement this in light */ + bool no_shadow = true; + + if(no_shadow) { + ray->t = 0.0f; + } + else { +#endif + /* setup ray */ + ray->P = ray_offset(sd->P, sd->Ng); + ray->D = ray_offset(ls.P, ls.Ng) - ray->P; + ray->D = normalize_len(ray->D, &ray->t); +#if 0 + } +#endif return true; } diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h index f37b27cc9f4..a1b23128b38 100644 --- a/intern/cycles/kernel/kernel_globals.h +++ b/intern/cycles/kernel/kernel_globals.h @@ -20,7 +20,7 @@ #ifdef __KERNEL_CPU__ -#ifdef WITH_OSL +#ifdef __OSL__ #include "osl_globals.h" #endif @@ -43,7 +43,7 @@ typedef struct KernelGlobals { KernelData __data; -#ifdef WITH_OSL +#ifdef __OSL__ /* On the CPU, we also have the OSL globals here. Most data structures are shared with SVM, the difference is in the shaders and object/mesh attributes. */ OSLGlobals osl; diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h index 5164e5deea2..77e73e932ef 100644 --- a/intern/cycles/kernel/kernel_light.h +++ b/intern/cycles/kernel/kernel_light.h @@ -129,7 +129,7 @@ __device void light_sample(KernelGlobals *kg, float randt, float randu, float ra } } -__device float light_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) +__device float light_sample_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) { float pdf; @@ -141,5 +141,15 @@ __device float light_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) return pdf; } +__device void light_select(KernelGlobals *kg, int index, float randu, float randv, float3 P, LightSample *ls) +{ + point_light_sample(kg, index, randu, randv, P, ls); +} + +__device float light_select_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) +{ + return point_light_pdf(kg, t); +} + CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index b073cd49a8c..815eb4a1d53 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -162,6 +162,86 @@ __device_inline float path_state_terminate_probability(KernelGlobals *kg, PathSt return average(throughput); } +#ifdef __TRANSPARENT_SHADOWS__ +__device bool shader_transparent_shadow(KernelGlobals *kg, Intersection *isect) +{ + int prim = kernel_tex_fetch(__prim_index, isect->prim); + float4 Ns = kernel_tex_fetch(__tri_normal, prim); + int shader = __float_as_int(Ns.w); + + /* todo: add shader flag to check this */ + + return true; +} +#endif + +__device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ray, Intersection *isect, float3 *light_L) +{ + if(ray->t == 0.0f) + return false; + + bool result = scene_intersect(kg, ray, PATH_RAY_SHADOW, isect); + +#ifdef __TRANSPARENT_SHADOWS__ + if(result && kernel_data.integrator.transparent_shadows) { + /* transparent shadows work in such a way to try to minimize overhead + in cases where we don't need them. after a regular shadow ray is + cast we check if the hit primitive was potentially transparent, and + only in that case start marching. this gives on extra ray cast for + the cases were we do want transparency */ + if(shader_transparent_shadow(kg, isect)) { + /* todo: fix double contribution from indirect for triangle lights */ + /* if(kernel_data.integrator.transparent_shadows && (path_flag & PATH_RAY_TRANSPARENT)) */ + + float3 throughput = make_float3(1.0f, 1.0f, 1.0f); + float3 Pend = ray->P + ray->D*ray->t; + int bounce = state->transparent_bounce; + + for(;;) { + if(bounce >= kernel_data.integrator.transparent_max_bounce) { + return true; + } + else if(bounce >= kernel_data.integrator.transparent_min_bounce) { + /* todo: get random number somewhere for probabilistic terminate */ +#if 0 + float probability = average(throughput); + float terminate = 0.0f; /* todo: get this random number */ + + if(terminate >= probability) + return true; + + throughput /= probability; +#endif + } + + /* todo: fix it so we get first hit */ + if(!scene_intersect(kg, ray, PATH_RAY_SHADOW, isect)) { + *light_L *= throughput; + return false; + } + if(!shader_transparent_shadow(kg, isect)) + return true; + + ShaderData sd; + shader_setup_from_ray(kg, &sd, isect, ray); + shader_eval_surface(kg, &sd, 0.0f, PATH_RAY_SHADOW); /* todo: state flag? */ + + throughput *= shader_bsdf_transparency(kg, &sd); + + ray->P = ray_offset(sd.P, -sd.Ng); + ray->t = len(Pend - ray->P); + + bounce++; + } + + return true; + } + } +#endif + + return result; +} + __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) { /* initialize */ @@ -247,13 +327,22 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray Ray light_ray; float3 light_L; - /* todo: use visbility flag to skip lights */ +#ifdef __MULTI_LIGHT__ + /* index -1 means randomly sample from distribution */ + int i = (kernel_data.integrator.num_distribution)? -1: 0; - if(direct_emission(kg, &sd, light_t, light_o, light_u, light_v, &light_ray, &light_L)) { - /* trace shadow ray */ - if(!scene_intersect(kg, &light_ray, PATH_RAY_SHADOW, &isect)) - L += throughput*light_L; + for(; i < kernel_data.integrator.num_all_lights; i++) { +#else + const int i = -1; +#endif + if(direct_emission(kg, &sd, i, light_t, light_o, light_u, light_v, &light_ray, &light_L)) { + /* trace shadow ray */ + if(!shadow_blocked(kg, &state, &light_ray, &isect, &light_L)) + L += throughput*light_L; + } +#ifdef __MULTI_LIGHT__ } +#endif } } #endif diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 92d920b5c61..0cf2091590c 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -26,14 +26,19 @@ * */ + +#ifdef __OSL__ + +#include "osl_shader.h" + +#else + #include "svm/bsdf.h" #include "svm/emissive.h" #include "svm/volume.h" #include "svm/svm_bsdf.h" #include "svm/svm.h" -#ifdef WITH_OSL -#include "osl_shader.h" #endif CCL_NAMESPACE_BEGIN @@ -270,96 +275,201 @@ __device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderData /* BSDF */ -__device int shader_bsdf_sample(KernelGlobals *kg, const ShaderData *sd, - float randu, float randv, float3 *eval, - float3 *omega_in, differential3 *domega_in, float *pdf) +#ifdef __MULTI_CLOSURE__ + +__device_inline float3 _shader_bsdf_multi_eval(const ShaderData *sd, const float3 omega_in, float *pdf, + int skip_bsdf, float3 sum_eval, float sum_pdf, float sum_sample_weight) { - int label; + for(int i = 0; i< sd->num_closure; i++) { + if(i == skip_bsdf) + continue; - *pdf = 0.0f; + const ShaderClosure *sc = &sd->closure[i]; -#ifdef WITH_OSL - if(kg->osl.use) - label = OSLShader::bsdf_sample(sd, randu, randv, *eval, *omega_in, *domega_in, *pdf); - else + 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); #endif - label = svm_bsdf_sample(sd, randu, randv, eval, omega_in, domega_in, pdf); - return label; + if(bsdf_pdf != 0.0f) { + sum_eval += eval*sc->weight; + sum_pdf += bsdf_pdf*sc->sample_weight; + } + + sum_sample_weight += sc->sample_weight; + } + } + + *pdf = sum_pdf/sum_sample_weight; + return sum_eval; } +#endif + __device float3 shader_bsdf_eval(KernelGlobals *kg, const ShaderData *sd, const float3 omega_in, float *pdf) { - float3 eval; - +#ifdef __MULTI_CLOSURE__ + return _shader_bsdf_multi_eval(sd, omega_in, pdf, -1, make_float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f); +#else + const ShaderClosure *sc = &sd->closure; *pdf = 0.0f; + return svm_bsdf_eval(sd, sc, omega_in, pdf)*sc->weight; +#endif +} -#ifdef WITH_OSL - if(kg->osl.use) - eval = OSLShader::bsdf_eval(sd, omega_in, *pdf); - else +__device int shader_bsdf_sample(KernelGlobals *kg, const ShaderData *sd, + float randu, float randv, float3 *eval, + float3 *omega_in, differential3 *domega_in, float *pdf) +{ +#ifdef __MULTI_CLOSURE__ + int sampled = 0; + + if(sd->num_closure > 1) { + /* pick a BSDF closure based on sample weights */ + float sum = 0.0f; + + for(sampled = 0; sampled < sd->num_closure; sampled++) { + const ShaderClosure *sc = &sd->closure[sampled]; + + if(CLOSURE_IS_BSDF(sc->type)) + sum += sc->sample_weight; + } + + float r = sd->randb_closure*sum; + sum = 0.0f; + + for(sampled = 0; sampled < sd->num_closure; sampled++) { + const ShaderClosure *sc = &sd->closure[sampled]; + + if(CLOSURE_IS_BSDF(sc->type)) { + sum += sd->closure[sampled].sample_weight; + + if(r <= sum) + break; + } + } + + if(sampled == sd->num_closure) { + *pdf = 0.0f; + return LABEL_NONE; + } + } + + const ShaderClosure *sc = &sd->closure[sampled]; + int label; + + *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); #endif - eval = svm_bsdf_eval(sd, omega_in, pdf); - return eval; + *eval *= sc->weight; + + if(sd->num_closure > 1 && *pdf != 0.0f) { + float sweight = sc->sample_weight; + *eval = _shader_bsdf_multi_eval(sd, *omega_in, pdf, sampled, *eval, *pdf*sweight, sweight); + } + + return label; +#else + /* sample the single closure that we picked */ + *pdf = 0.0f; + int label = svm_bsdf_sample(sd, &sd->closure, randu, randv, eval, omega_in, domega_in, pdf); + *eval *= sd->closure.weight; + return label; +#endif } __device void shader_bsdf_blur(KernelGlobals *kg, ShaderData *sd, float roughness) { -#ifdef WITH_OSL - if(!kg->osl.use) +#ifndef __OSL__ +#ifdef __MULTI_CLOSURE__ + for(int i = 0; i< sd->num_closure; i++) { + ShaderClosure *sc = &sd->closure[i]; + + if(CLOSURE_IS_BSDF(sc->type)) + svm_bsdf_blur(sc, roughness); + } +#else + svm_bsdf_blur(&sd->closure, roughness); +#endif #endif - svm_bsdf_blur(sd, roughness); } -/* Emission */ - -__device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd) +__device float3 shader_bsdf_transparency(KernelGlobals *kg, ShaderData *sd) { -#ifdef WITH_OSL - if(kg->osl.use) { - return OSLShader::emissive_eval(sd); +#ifdef __MULTI_CLOSURE__ + float3 eval = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i< sd->num_closure; i++) { + ShaderClosure *sc = &sd->closure[i]; + + if(sc->type == CLOSURE_BSDF_TRANSPARENT_ID) // XXX osl + eval += sc->weight; } + + return eval; +#else + if(sd->closure.type == CLOSURE_BSDF_TRANSPARENT_ID) + return sd->closure.weight; else + return make_float3(0.0f, 0.0f, 0.0f); #endif - { - return svm_emissive_eval(sd); - } } -__device void shader_emissive_sample(KernelGlobals *kg, ShaderData *sd, - float randu, float randv, float3 *eval, float3 *I, float *pdf) + +/* Emission */ + +__device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd) { -#ifdef WITH_OSL - if(kg->osl.use) { - OSLShader::emissive_sample(sd, randu, randv, eval, I, pdf); - } - else +#ifdef __MULTI_CLOSURE__ + float3 eval = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i < sd->num_closure; i++) { + ShaderClosure *sc = &sd->closure[i]; + + if(CLOSURE_IS_EMISSION(sc->type)) { +#ifdef __OSL__ + eval += OSLShader::emissive_eval(sd)*sc->weight; +#else + eval += svm_emissive_eval(sd, sc)*sc->weight; #endif - { - svm_emissive_sample(sd, randu, randv, eval, I, pdf); + } } + + return eval; +#else + return svm_emissive_eval(sd, &sd->closure)*sd->closure.weight; +#endif } /* Holdout */ __device float3 shader_holdout_eval(KernelGlobals *kg, ShaderData *sd) { -#ifdef WITH_OSL - if(kg->osl.use) { - return OSLShader::holdout_eval(sd); +#ifdef __MULTI_CLOSURE__ + float3 weight = make_float3(0.0f, 0.0f, 0.0f); + + for(int i = 0; i < sd->num_closure; i++) { + ShaderClosure *sc = &sd->closure[i]; + + if(CLOSURE_IS_HOLDOUT(sc->type)) + weight += sc->weight; } - else -#endif - { -#ifdef __SVM__ - if(sd->svm_closure == CLOSURE_HOLDOUT_ID) - return make_float3(1.0f, 1.0f, 1.0f); - else + + return weight; +#else + if(sd->closure.type == CLOSURE_HOLDOUT_ID) + return make_float3(1.0f, 1.0f, 1.0f); + + return make_float3(0.0f, 0.0f, 0.0f); #endif - return make_float3(0.0f, 0.0f, 0.0f); - } } /* Surface Evaluation */ @@ -367,54 +477,54 @@ __device float3 shader_holdout_eval(KernelGlobals *kg, ShaderData *sd) __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag) { -#ifdef WITH_OSL - if(kg->osl.use) { - OSLShader::eval_surface(kg, sd, randb, path_flag); - } - else -#endif - { +#ifdef __OSL__ + OSLShader::eval_surface(kg, sd, randb, path_flag); +#else + #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->N); - sd->svm_closure_weight = make_float3(0.8f, 0.8f, 0.8f); + bsdf_diffuse_setup(sd, &sd->closure); + sd->closure.weight = make_float3(0.8f, 0.8f, 0.8f); #endif -#ifdef __CAUSTICS_TRICKS__ - /* caustic tricks */ - if((path_flag & PATH_RAY_DIFFUSE) && (sd->flag & SD_BSDF_GLOSSY)) { - if(kernel_data.integrator.no_caustics) { - sd->flag &= ~(SD_BSDF_GLOSSY|SD_BSDF_HAS_EVAL|SD_EMISSION); - sd->svm_closure = NBUILTIN_CLOSURES; - sd->svm_closure_weight = make_float3(0.0f, 0.0f, 0.0f); - } - else if(kernel_data.integrator.blur_caustics > 0.0f) - shader_bsdf_blur(kg, sd, kernel_data.integrator.blur_caustics); - } #endif - } } /* Background Evaluation */ __device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag) { -#ifdef WITH_OSL - if(kg->osl.use) { - return OSLShader::eval_background(kg, sd, path_flag); +#ifdef __OSL__ + return OSLShader::eval_background(kg, sd, path_flag); +#else + +#ifdef __SVM__ + 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); + + for(int i = 0; i< sd->num_closure; i++) { + const ShaderClosure *sc = &sd->closure[i]; + + if(CLOSURE_IS_BACKGROUND(sc->type)) + eval += sc->weight; } + + return eval; +#else + if(sd->closure.type == CLOSURE_BACKGROUND_ID) + return sd->closure.weight; else + return make_float3(0.8f, 0.8f, 0.8f); #endif - { -#ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag); + #else - sd->svm_closure_weight = make_float3(0.8f, 0.8f, 0.8f); + return make_float3(0.8f, 0.8f, 0.8f); #endif - return sd->svm_closure_weight; - } +#endif } /* Volume */ @@ -422,15 +532,25 @@ __device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int pa __device float3 shader_volume_eval_phase(KernelGlobals *kg, ShaderData *sd, float3 omega_in, float3 omega_out) { -#ifdef WITH_OSL - if(kg->osl.use) { - OSLShader::volume_eval_phase(sd, omega_in, omega_out); - } - else +#ifdef __MULTI_CLOSURE__ + 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]; + + if(CLOSURE_IS_VOLUME(sc->type)) { +#ifdef __OSL__ + eval += OSLShader::volume_eval_phase(sd, omega_in, omega_out); +#else + eval += volume_eval_phase(sd, sc, omega_in, omega_out); #endif - { - return volume_eval_phase(sd, omega_in, omega_out); + } } + + return eval; +#else + return volume_eval_phase(sd, &sd->closure, omega_in, omega_out); +#endif } /* Volume Evaluation */ @@ -438,17 +558,13 @@ __device float3 shader_volume_eval_phase(KernelGlobals *kg, ShaderData *sd, __device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag) { -#ifdef WITH_OSL - if(kg->osl.use) { - OSLShader::eval_volume(kg, sd, randb, path_flag); - } - else -#endif - { #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag); +#ifdef __OSL__ + OSLShader::eval_volume(kg, sd, randb, path_flag); +#else + svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag); +#endif #endif - } } /* Displacement Evaluation */ @@ -456,27 +572,21 @@ __device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd, __device void shader_eval_displacement(KernelGlobals *kg, ShaderData *sd) { /* this will modify sd->P */ - -#ifdef WITH_OSL - if(kg->osl.use) { - OSLShader::eval_displacement(kg, sd); - } - else -#endif - { #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_DISPLACEMENT, 0.0f, 0); +#ifdef __OSL__ + OSLShader::eval_displacement(kg, sd); +#else + svm_eval_nodes(kg, sd, SHADER_TYPE_DISPLACEMENT, 0.0f, 0); +#endif #endif - } } /* Free ShaderData */ __device void shader_release(KernelGlobals *kg, ShaderData *sd) { -#ifdef WITH_OSL - if(kg->osl.use) - OSLShader::release(kg, sd); +#ifdef __OSL__ + OSLShader::release(kg, sd); #endif } diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 1417f2d5110..d3012324739 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -34,6 +34,9 @@ CCL_NAMESPACE_BEGIN #define __BACKGROUND__ #define __CAUSTICS_TRICKS__ #define __VISIBILITY_FLAG__ +#define __RAY_DIFFERENTIALS__ +#define __CAMERA_CLIPPING__ +#define __INTERSECTION_REFINE__ #ifndef __KERNEL_OPENCL__ #define __SVM__ @@ -42,9 +45,13 @@ CCL_NAMESPACE_BEGIN #define __HOLDOUT__ #endif -#define __RAY_DIFFERENTIALS__ -#define __CAMERA_CLIPPING__ -#define __INTERSECTION_REFINE__ +#ifdef __KERNEL_CPU__ +//#define __MULTI_CLOSURE__ +//#define __MULTI_LIGHT__ +//#define __TRANSPARENT_SHADOWS__ +//#define __OSL__ +#endif + //#define __SOBOL_FULL_SCREEN__ //#define __MODIFY_TP__ //#define __QBVH__ @@ -179,20 +186,27 @@ typedef enum AttributeElement { ATTR_ELEMENT_NONE } AttributeElement; -/* OSL data */ +/* Closure data */ -#if !defined(__KERNEL_GPU__) && defined(WITH_OSL) +#define MAX_CLOSURE 8 -#define MAX_OSL_CLOSURE 8 - -struct FlatClosure { - void *prim; +typedef struct ShaderClosure { + ClosureType type; float3 weight; + +#ifdef __MULTI_CLOSURE__ float sample_weight; -}; +#endif +#ifdef __OSL__ + void *prim; +#else + float data0; + float data1; #endif +} ShaderClosure; + /* Shader Data * * Main shader state at a point on the surface or in a volume. All coordinates @@ -244,34 +258,18 @@ typedef struct ShaderData { float3 dPdu, dPdv; #endif - /* SVM closure data. we always sample a single closure, to get fixed - * memory usage, svm_closure_data contains closure parameters. */ - ClosureType svm_closure; - float3 svm_closure_weight; - float svm_closure_data0; - float svm_closure_data1; - -#if !defined(__KERNEL_GPU__) && defined(WITH_OSL) - /* OSL closure data and context. we store all closures flattened into - * lists per type, different from SVM. */ - struct { - FlatClosure bsdf[MAX_OSL_CLOSURE]; - FlatClosure emissive[MAX_OSL_CLOSURE]; - FlatClosure volume[MAX_OSL_CLOSURE]; - - int num_bsdf; - int num_emissive; - int num_volume; - - float bsdf_sample_sum; - float emissive_sample_sum; - float volume_sample_sum; - - float3 holdout_weight; - - float randb; - } osl_closure; +#ifdef __MULTI_CLOSURE__ + /* Closure data, we store a fixed array of closures */ + ShaderClosure closure[MAX_CLOSURE]; + int num_closure; + float randb_closure; +#else + /* Closure data, with a single sampled closure for low memory usage */ + ShaderClosure closure; +#endif +#ifdef __OSL__ + /* OSL context */ void *osl_ctx; #endif } ShaderData; @@ -352,11 +350,11 @@ typedef struct KernelSunSky { typedef struct KernelIntegrator { /* emission */ int use_emission; - int num_triangles; int num_distribution; - int num_lights; + int num_all_lights; float pdf_triangles; float pdf_lights; + float pdf_pad; /* bounces */ int min_bounce; diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 73ff4f41423..3f0b1610181 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -119,13 +119,13 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive*)comp->data(); if(prim) { - FlatClosure flat; - flat.prim = prim; - flat.weight = weight; + ShaderClosure sc; + sc.prim = prim; + sc.weight = weight; switch(prim->category()) { case ClosurePrimitive::BSDF: { - if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + if(sd->num_closure == MAX_CLOSURE) return; OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)prim; @@ -140,7 +140,8 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, float sample_weight = fabsf(average(weight))*albedo; float sample_sum = sd->osl_closure.bsdf_sample_sum + sample_weight; - flat.sample_weight = sample_weight; + sc.sample_weight = sample_weight; + sc.type = CLOSURE_BSDF_ID; sd->osl_closure.bsdf_sample_sum = sample_sum; /* scattering flags */ @@ -152,29 +153,35 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy, sd->flag |= SD_BSDF; /* add */ - sd->osl_closure.bsdf[sd->osl_closure.num_bsdf++] = flat; + sd->closure[sd->num_closure++] = sc; break; } case ClosurePrimitive::Emissive: { - if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + 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; - flat.sample_weight = 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; - sd->osl_closure.emissive[sd->osl_closure.num_emissive++] = flat; + sd->closure[sd->num_closure++] = sc; break; } case ClosurePrimitive::Holdout: - sd->osl_closure.holdout_weight += weight; + if(sd->num_closure == MAX_CLOSURE) + return; + + sc.sample_weight = 0.0f; + sc.type = CLOSURE_HOLDOUT_ID; sd->flag |= SD_HOLDOUT; + sd->closure[sd->num_closure++] = sc; break; case ClosurePrimitive::BSSRDF: case ClosurePrimitive::Debug: @@ -213,12 +220,8 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[sd->shader]), *globals); /* flatten closure tree */ - sd->osl_closure.bsdf_sample_sum = 0.0f; - sd->osl_closure.emissive_sample_sum = 0.0f; - sd->osl_closure.num_bsdf = 0; - sd->osl_closure.num_emissive = 0; - sd->osl_closure.holdout_weight = make_float3(0.0f, 0.0f, 0.0f); - sd->osl_closure.randb = randb; + sd->num_closure = 0; + sd->randb_closure = randb; if(globals->Ci) { bool no_glossy = (path_flag & PATH_RAY_DIFFUSE) && kernel_data.integrator.no_caustics; @@ -292,24 +295,25 @@ static void flatten_volume_closure_tree(ShaderData *sd, OSL::ClosurePrimitive *prim = (OSL::ClosurePrimitive*)comp->data(); if(prim) { - FlatClosure flat; - flat.prim = prim; - flat.weight = weight; + ShaderClosure sc; + sc.prim = prim; + sc.weight = weight; switch(prim->category()) { case ClosurePrimitive::Volume: { - if(sd->osl_closure.num_bsdf == MAX_OSL_CLOSURE) + 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; - flat.sample_weight = sample_weight; + sc.sample_weight = sample_weight; + sc.type = CLOSURE_VOLUME_ID; sd->osl_closure.volume_sample_sum = sample_sum; /* add */ - sd->osl_closure.volume[sd->osl_closure.num_volume++] = flat; + sd->closure[sd->num_closure++] = sc; break; } case ClosurePrimitive::Holdout: @@ -389,183 +393,76 @@ void OSLShader::release(KernelGlobals *kg, const ShaderData *sd) /* BSDF Closure */ -int OSLShader::bsdf_sample(const ShaderData *sd, float randu, float randv, float3& eval, float3& omega_in, differential3& domega_in, float& pdf) +int OSLShader::bsdf_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3& eval, float3& omega_in, differential3& domega_in, float& pdf) { - OSL::BSDFClosure *sample_bsdf = NULL; + OSL::BSDFClosure *sample_bsdf = (OSL::BSDFClosure*)sc->prim; int label = LABEL_NONE; - float r = sd->osl_closure.randb*sd->osl_closure.bsdf_sample_sum; - float sample_sum = 0.0f; pdf = 0.0f; - if(sd->osl_closure.bsdf_sample_sum == 0.0f) - return LABEL_NONE; - - /* find a closure to sample */ - for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { - const FlatClosure *flat = &sd->osl_closure.bsdf[i]; - sample_sum += flat->sample_weight; - - if(r > sample_sum) - continue; - - /* sample BSDF closure */ - sample_bsdf = (OSL::BSDFClosure*)flat->prim; - ustring ulabel; - - ulabel = sample_bsdf->sample(TO_VEC3(sd->Ng), - TO_VEC3(sd->I), TO_VEC3(sd->dI.dx), TO_VEC3(sd->dI.dy), - randu, randv, - TO_VEC3(omega_in), TO_VEC3(domega_in.dx), TO_VEC3(domega_in.dy), - pdf, TO_COLOR3(eval)); - - /* convert OSL label */ - if(ulabel == OSL::Labels::REFLECT) - label = LABEL_REFLECT; - else if(ulabel == OSL::Labels::TRANSMIT) - label = LABEL_TRANSMIT; - else - return LABEL_NONE; /* sampling failed */ - - /* convert scattering to our bitflag label */ - ustring uscattering = sample_bsdf->scattering(); - - if(uscattering == OSL::Labels::DIFFUSE) - label |= LABEL_DIFFUSE; - else if(uscattering == OSL::Labels::GLOSSY) - label |= LABEL_GLOSSY; - else if(uscattering == OSL::Labels::SINGULAR) - label |= LABEL_SINGULAR; - else - label |= LABEL_TRANSPARENT; - - /* eval + pdf */ - eval *= flat->weight; - pdf *= flat->sample_weight; - - break; - } - - if(!sample_bsdf || pdf == 0.0f) - return LABEL_NONE; - - /* add eval/pdf from other BSDF closures */ - for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { - const FlatClosure *flat = &sd->osl_closure.bsdf[i]; - OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)flat->prim; - - if(bsdf != sample_bsdf) { - OSL::Color3 bsdf_eval; - float bsdf_pdf = 0.0f; - - if(dot(sd->Ng, omega_in) >= 0.0f) - bsdf_eval = bsdf->eval_reflect(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); - else - bsdf_eval = bsdf->eval_transmit(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); - - if(bsdf_pdf != 0.0f) { - eval += TO_FLOAT3(bsdf_eval)*flat->weight; - pdf += bsdf_pdf*flat->sample_weight; - } - } - } - - pdf *= 1.0f/(sd->osl_closure.bsdf_sample_sum); + /* sample BSDF closure */ + ustring ulabel; + + ulabel = sample_bsdf->sample(TO_VEC3(sd->Ng), + TO_VEC3(sd->I), TO_VEC3(sd->dI.dx), TO_VEC3(sd->dI.dy), + randu, randv, + TO_VEC3(omega_in), TO_VEC3(domega_in.dx), TO_VEC3(domega_in.dy), + pdf, TO_COLOR3(eval)); + + /* convert OSL label */ + if(ulabel == OSL::Labels::REFLECT) + label = LABEL_REFLECT; + else if(ulabel == OSL::Labels::TRANSMIT) + label = LABEL_TRANSMIT; + else + return LABEL_NONE; /* sampling failed */ + + /* convert scattering to our bitflag label */ + ustring uscattering = sample_bsdf->scattering(); + + if(uscattering == OSL::Labels::DIFFUSE) + label |= LABEL_DIFFUSE; + else if(uscattering == OSL::Labels::GLOSSY) + label |= LABEL_GLOSSY; + else if(uscattering == OSL::Labels::SINGULAR) + label |= LABEL_SINGULAR; + else + label |= LABEL_TRANSPARENT; return label; } -float3 OSLShader::bsdf_eval(const ShaderData *sd, const float3& omega_in, float& pdf) +float3 OSLShader::bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, const float3& omega_in, float& pdf) { - float3 eval = make_float3(0.0f, 0.0f, 0.0f); - - pdf = 0.0f; - - for(int i = 0; i < sd->osl_closure.num_bsdf; i++) { - const FlatClosure *flat = &sd->osl_closure.bsdf[i]; - OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)flat->prim; - OSL::Color3 bsdf_eval; - float bsdf_pdf = 0.0f; - - if(dot(sd->Ng, omega_in) >= 0.0f) - bsdf_eval = bsdf->eval_reflect(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); - else - bsdf_eval = bsdf->eval_transmit(TO_VEC3(sd->I), TO_VEC3(omega_in), bsdf_pdf); - - if(bsdf_pdf != 0.0f) { - eval += TO_FLOAT3(bsdf_eval)*flat->weight; - pdf += bsdf_pdf*flat->sample_weight; - } - } - - pdf *= 1.0f/sd->osl_closure.bsdf_sample_sum; + OSL::BSDFClosure *bsdf = (OSL::BSDFClosure*)sc->prim; + OSL::Color3 bsdf_eval; - return eval; + if(dot(sd->Ng, omega_in) >= 0.0f) + bsdf_eval = bsdf->eval_reflect(TO_VEC3(sd->I), TO_VEC3(omega_in), pdf); + else + bsdf_eval = bsdf->eval_transmit(TO_VEC3(sd->I), TO_VEC3(omega_in), pdf); + + return TO_FLOAT3(bsdf_eval); } /* Emissive Closure */ -float3 OSLShader::emissive_eval(const ShaderData *sd) +float3 OSLShader::emissive_eval(const ShaderData *sd, const ShaderClosure *sc) { - float3 eval = make_float3(0.0f, 0.0f, 0.0f); - - for(int i = 0; i < sd->osl_closure.num_emissive; i++) { - const FlatClosure *flat = &sd->osl_closure.emissive[i]; - OSL::EmissiveClosure *emissive = (OSL::EmissiveClosure*)flat->prim; - OSL::Color3 emissive_eval = emissive->eval(TO_VEC3(sd->Ng), TO_VEC3(sd->I)); - eval += TO_FLOAT3(emissive_eval)*flat->weight; - } + 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; } -void OSLShader::emissive_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *I, float *pdf) -{ - float r = sd->osl_closure.randb*sd->osl_closure.emissive_sample_sum; - float sample_sum = 0.0f; - - *pdf = 0.0f; - - if(sd->osl_closure.emissive_sample_sum == 0.0f) - return; - - /* find a closure to sample */ - for(int i = 0; i < sd->osl_closure.num_emissive; i++) { - const FlatClosure *flat = &sd->osl_closure.emissive[i]; - sample_sum += flat->sample_weight; - - if(r <= sample_sum) { - /* sample emissive closure */ - OSL::EmissiveClosure *emissive = (OSL::EmissiveClosure*)flat->prim; - emissive->sample(TO_VEC3(sd->Ng), randu, randv, TO_VEC3(*I), *pdf); - *eval = flat->weight; - *pdf *= flat->sample_weight/sd->osl_closure.emissive_sample_sum; - return; - } - } -} - /* Volume Closure */ -float3 OSLShader::volume_eval_phase(const ShaderData *sd, const float3 omega_in, const float3 omega_out) -{ - float3 eval = make_float3(0.0f, 0.0f, 0.0f); - - for(int i = 0; i < sd->osl_closure.num_volume; i++) { - const FlatClosure *flat = &sd->osl_closure.volume[i]; - OSL::VolumeClosure *volume = (OSL::VolumeClosure*)flat->prim; - OSL::Color3 volume_eval = volume->eval_phase(TO_VEC3(omega_in), TO_VEC3(omega_out)); - eval += TO_FLOAT3(volume_eval)*flat->weight; - } - - return eval; -} - -/* Holdout Closure */ - -float3 OSLShader::holdout_eval(const ShaderData *sd) +float3 OSLShader::volume_eval_phase(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) { - return sd->osl_closure.holdout_weight; + OSL::VolumeClosure *volume = (OSL::VolumeClosure*)sc->prim; + OSL::Color3 volume_eval = volume->eval_phase(TO_VEC3(omega_in), TO_VEC3(omega_out)); + return TO_FLOAT3(volume_eval)*sc->weight; } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h index 9b578b159ae..6b1d402989b 100644 --- a/intern/cycles/kernel/osl/osl_shader.h +++ b/intern/cycles/kernel/osl/osl_shader.h @@ -46,6 +46,7 @@ namespace OSL = ::OSL; class OSLRenderServices; class Scene; +class ShaderClosure; class ShaderData; class differential3; class KernelGlobals; @@ -66,15 +67,16 @@ public: static void eval_displacement(KernelGlobals *kg, ShaderData *sd); /* sample & eval */ - static int bsdf_sample(const ShaderData *sd, float randu, float randv, + static int bsdf_sample(const ShaderData *sd, const ShaderClosure *sc, + float randu, float randv, float3& eval, float3& omega_in, differential3& domega_in, float& pdf); - static float3 bsdf_eval(const ShaderData *sd, const float3& omega_in, float& pdf); - static float3 emissive_eval(const ShaderData *sd); - static void emissive_sample(const ShaderData *sd, float randu, float randv, - float3 *eval, float3 *I, float *pdf); - static float3 volume_eval_phase(const ShaderData *sd, const float3 omega_in, - const float3 omega_out); - static float3 holdout_eval(const ShaderData *sd); + static float3 bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, + const float3& omega_in, float& pdf); + + static float3 emissive_eval(const ShaderData *sd, const ShaderClosure *sc); + + static float3 volume_eval_phase(const ShaderData *sd, const ShaderClosure *sc, + const float3 omega_in, const float3 omega_out); /* release */ static void release(KernelGlobals *kg, const ShaderData *sd); diff --git a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h index e94b33efaae..e16efebf5bb 100644 --- a/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h +++ b/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h @@ -40,24 +40,24 @@ typedef struct BsdfAshikhminVelvetClosure { float m_invsigma2; } BsdfAshikhminVelvetClosure; -__device void bsdf_ashikhmin_velvet_setup(ShaderData *sd, float3 N, float sigma) +__device void bsdf_ashikhmin_velvet_setup(ShaderData *sd, ShaderClosure *sc, float sigma) { sigma = fmaxf(sigma, 0.01f); float m_invsigma2 = 1.0f/(sigma * sigma); - sd->svm_closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; + sc->type = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; - sd->svm_closure_data0 = m_invsigma2; + sc->data0 = m_invsigma2; } -__device void bsdf_ashikhmin_velvet_blur(ShaderData *sd, float roughness) +__device void bsdf_ashikhmin_velvet_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_invsigma2 = sd->svm_closure_data0; + float m_invsigma2 = sc->data0; float3 m_N = sd->N; float cosNO = dot(m_N, I); @@ -89,19 +89,19 @@ __device float3 bsdf_ashikhmin_velvet_eval_reflect(const ShaderData *sd, const f return make_float3(0, 0, 0); } -__device float3 bsdf_ashikhmin_velvet_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ashikhmin_velvet_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_ashikhmin_velvet_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_ashikhmin_velvet_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_ashikhmin_velvet_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_invsigma2 = sd->svm_closure_data0; + float m_invsigma2 = sc->data0; float3 m_N = sd->N; // we are viewing the surface from above - send a ray out with uniform diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h index a917db86ff5..e8a002cb84c 100644 --- a/intern/cycles/kernel/svm/bsdf_diffuse.h +++ b/intern/cycles/kernel/svm/bsdf_diffuse.h @@ -41,17 +41,17 @@ typedef struct BsdfDiffuseClosure { //float3 m_N; } BsdfDiffuseClosure; -__device void bsdf_diffuse_setup(ShaderData *sd, float3 N) +__device void bsdf_diffuse_setup(ShaderData *sd, ShaderClosure *sc) { - sd->svm_closure = CLOSURE_BSDF_DIFFUSE_ID; + sc->type = CLOSURE_BSDF_DIFFUSE_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } -__device void bsdf_diffuse_blur(ShaderData *sd, float roughness) +__device void bsdf_diffuse_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_diffuse_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_diffuse_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { float3 m_N = sd->N; @@ -60,17 +60,17 @@ __device float3 bsdf_diffuse_eval_reflect(const ShaderData *sd, const float3 I, return make_float3(cos_pi, cos_pi, cos_pi); } -__device float3 bsdf_diffuse_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_diffuse_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_diffuse_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_diffuse_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_diffuse_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_diffuse_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { float3 m_N = sd->N; @@ -99,22 +99,22 @@ typedef struct BsdfTranslucentClosure { //float3 m_N; } BsdfTranslucentClosure; -__device void bsdf_translucent_setup(ShaderData *sd, float3 N) +__device void bsdf_translucent_setup(ShaderData *sd, ShaderClosure *sc) { - sd->svm_closure = CLOSURE_BSDF_TRANSLUCENT_ID; + sc->type = CLOSURE_BSDF_TRANSLUCENT_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL; } -__device void bsdf_translucent_blur(ShaderData *sd, float roughness) +__device void bsdf_translucent_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_translucent_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_translucent_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float3 bsdf_translucent_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_translucent_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { float3 m_N = sd->N; @@ -123,12 +123,12 @@ __device float3 bsdf_translucent_eval_transmit(const ShaderData *sd, const float return make_float3 (cos_pi, cos_pi, cos_pi); } -__device float bsdf_translucent_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_translucent_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_translucent_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_translucent_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { float3 m_N = sd->N; diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h index 0ca37eedc22..3acd3ba4c85 100644 --- a/intern/cycles/kernel/svm/bsdf_microfacet.h +++ b/intern/cycles/kernel/svm/bsdf_microfacet.h @@ -43,34 +43,34 @@ typedef struct BsdfMicrofacetGGXClosure { float m_eta; } BsdfMicrofacetGGXClosure; -__device void bsdf_microfacet_ggx_setup(ShaderData *sd, float3 N, float ag, float eta, bool refractive) +__device void bsdf_microfacet_ggx_setup(ShaderData *sd, ShaderClosure *sc, float ag, float eta, bool refractive) { float m_ag = clamp(ag, 1e-5f, 1.0f); float m_eta = eta; - sd->svm_closure_data0 = m_ag; - sd->svm_closure_data1 = m_eta; + sc->data0 = m_ag; + sc->data1 = m_eta; if(refractive) - sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; + sc->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; else - sd->svm_closure = CLOSURE_BSDF_MICROFACET_GGX_ID; + sc->type = CLOSURE_BSDF_MICROFACET_GGX_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } -__device void bsdf_microfacet_ggx_blur(ShaderData *sd, float roughness) +__device void bsdf_microfacet_ggx_blur(ShaderClosure *sc, float roughness) { - float m_ag = sd->svm_closure_data0; + float m_ag = sc->data0; m_ag = fmaxf(roughness, m_ag); - sd->svm_closure_data0 = m_ag; + sc->data0 = m_ag; } -__device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ag = sd->svm_closure_data0; - //float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; + float m_ag = sc->data0; + //float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; if(m_refractive) return make_float3 (0, 0, 0); @@ -103,11 +103,11 @@ __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderData *sd, const flo return make_float3 (0, 0, 0); } -__device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ag = sd->svm_closure_data0; - float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; + float m_ag = sc->data0; + float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; if(!m_refractive) return make_float3 (0, 0, 0); @@ -139,16 +139,16 @@ __device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderData *sd, const fl return make_float3 (out, out, out); } -__device float bsdf_microfacet_ggx_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_microfacet_ggx_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_microfacet_ggx_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_microfacet_ggx_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_ag = sd->svm_closure_data0; - float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; + float m_ag = sc->data0; + float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -268,34 +268,34 @@ typedef struct BsdfMicrofacetBeckmannClosure { float m_eta; } BsdfMicrofacetBeckmannClosure; -__device void bsdf_microfacet_beckmann_setup(ShaderData *sd, float3 N, float ab, float eta, bool refractive) +__device void bsdf_microfacet_beckmann_setup(ShaderData *sd, ShaderClosure *sc, float ab, float eta, bool refractive) { float m_ab = clamp(ab, 1e-5f, 1.0f); float m_eta = eta; - sd->svm_closure_data0 = m_ab; - sd->svm_closure_data1 = m_eta; + sc->data0 = m_ab; + sc->data1 = m_eta; if(refractive) - sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; + sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; else - sd->svm_closure = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; + sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } -__device void bsdf_microfacet_beckmann_blur(ShaderData *sd, float roughness) +__device void bsdf_microfacet_beckmann_blur(ShaderClosure *sc, float roughness) { - float m_ab = sd->svm_closure_data0; + float m_ab = sc->data0; m_ab = fmaxf(roughness, m_ab); - sd->svm_closure_data0 = m_ab; + sc->data0 = m_ab; } -__device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ab = sd->svm_closure_data0; - //float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; + float m_ab = sc->data0; + //float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; if(m_refractive) return make_float3 (0, 0, 0); @@ -330,11 +330,11 @@ __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderData *sd, cons return make_float3 (0, 0, 0); } -__device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ab = sd->svm_closure_data0; - float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; + float m_ab = sc->data0; + float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; if(!m_refractive) return make_float3 (0, 0, 0); @@ -368,16 +368,16 @@ __device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderData *sd, con return make_float3 (out, out, out); } -__device float bsdf_microfacet_beckmann_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_microfacet_beckmann_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_ab = sd->svm_closure_data0; - float m_eta = sd->svm_closure_data1; - int m_refractive = sd->svm_closure == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; + float m_ab = sc->data0; + float m_eta = sc->data1; + int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); diff --git a/intern/cycles/kernel/svm/bsdf_reflection.h b/intern/cycles/kernel/svm/bsdf_reflection.h index 4dad61704df..f00b72c4869 100644 --- a/intern/cycles/kernel/svm/bsdf_reflection.h +++ b/intern/cycles/kernel/svm/bsdf_reflection.h @@ -41,34 +41,34 @@ typedef struct BsdfReflectionClosure { //float3 m_N; } BsdfReflectionClosure; -__device void bsdf_reflection_setup(ShaderData *sd, float3 N) +__device void bsdf_reflection_setup(ShaderData *sd, ShaderClosure *sc) { - sd->svm_closure = CLOSURE_BSDF_REFLECTION_ID; + sc->type = CLOSURE_BSDF_REFLECTION_ID; sd->flag |= SD_BSDF; } -__device void bsdf_reflection_blur(ShaderData *sd, float roughness) +__device void bsdf_reflection_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_reflection_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_reflection_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float3 bsdf_reflection_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_reflection_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_reflection_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_reflection_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_reflection_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_reflection_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - //const BsdfReflectionClosure *self = (const BsdfReflectionClosure*)sd->svm_closure_data; + //const BsdfReflectionClosure *self = (const BsdfReflectionClosure*)sc->data; float3 m_N = sd->N; // only one direction is possible diff --git a/intern/cycles/kernel/svm/bsdf_refraction.h b/intern/cycles/kernel/svm/bsdf_refraction.h index 93bd747eb31..07ef8633e0d 100644 --- a/intern/cycles/kernel/svm/bsdf_refraction.h +++ b/intern/cycles/kernel/svm/bsdf_refraction.h @@ -41,36 +41,36 @@ typedef struct BsdfRefractionClosure { float m_eta; } BsdfRefractionClosure; -__device void bsdf_refraction_setup(ShaderData *sd, float3 N, float eta) +__device void bsdf_refraction_setup(ShaderData *sd, ShaderClosure *sc, float eta) { - sd->svm_closure_data0 = eta; + sc->data0 = eta; - sd->svm_closure = CLOSURE_BSDF_REFRACTION_ID; + sc->type = CLOSURE_BSDF_REFRACTION_ID; sd->flag |= SD_BSDF; } -__device void bsdf_refraction_blur(ShaderData *sd, float roughness) +__device void bsdf_refraction_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_refraction_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_refraction_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float3 bsdf_refraction_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_refraction_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_refraction_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_refraction_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_refraction_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_refraction_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_eta = sd->svm_closure_data0; + float m_eta = sc->data0; float3 m_N = sd->N; float3 R, T; diff --git a/intern/cycles/kernel/svm/bsdf_transparent.h b/intern/cycles/kernel/svm/bsdf_transparent.h index 1674f04955e..4425c4bf104 100644 --- a/intern/cycles/kernel/svm/bsdf_transparent.h +++ b/intern/cycles/kernel/svm/bsdf_transparent.h @@ -35,32 +35,32 @@ CCL_NAMESPACE_BEGIN -__device void bsdf_transparent_setup(ShaderData *sd) +__device void bsdf_transparent_setup(ShaderData *sd, ShaderClosure *sc) { - sd->svm_closure = CLOSURE_BSDF_TRANSPARENT_ID; + sc->type = CLOSURE_BSDF_TRANSPARENT_ID; sd->flag |= SD_BSDF; } -__device void bsdf_transparent_blur(ShaderData *sd, float roughness) +__device void bsdf_transparent_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_transparent_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_transparent_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float3 bsdf_transparent_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_transparent_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_transparent_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_transparent_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_transparent_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_transparent_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { // only one direction is possible *omega_in = -sd->I; diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h index 18967b3981e..d46baf099a6 100644 --- a/intern/cycles/kernel/svm/bsdf_ward.h +++ b/intern/cycles/kernel/svm/bsdf_ward.h @@ -44,28 +44,28 @@ typedef struct BsdfWardClosure { float m_ay; } BsdfWardClosure; -__device void bsdf_ward_setup(ShaderData *sd, float3 N, float3 T, float ax, float ay) +__device void bsdf_ward_setup(ShaderData *sd, ShaderClosure *sc, float3 T, float ax, float ay) { float m_ax = clamp(ax, 1e-5f, 1.0f); float m_ay = clamp(ay, 1e-5f, 1.0f); - sd->svm_closure_data0 = m_ax; - sd->svm_closure_data1 = m_ay; + sc->data0 = m_ax; + sc->data1 = m_ay; - sd->svm_closure = CLOSURE_BSDF_WARD_ID; + sc->type = CLOSURE_BSDF_WARD_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; } -__device void bsdf_ward_blur(ShaderData *sd, float roughness) +__device void bsdf_ward_blur(ShaderClosure *sc, float roughness) { - sd->svm_closure_data0 = fmaxf(roughness, sd->svm_closure_data0); - sd->svm_closure_data1 = fmaxf(roughness, sd->svm_closure_data1); + sc->data0 = fmaxf(roughness, sc->data0); + sc->data1 = fmaxf(roughness, sc->data1); } -__device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_ax = sd->svm_closure_data0; - float m_ay = sd->svm_closure_data1; + float m_ax = sc->data0; + float m_ay = sc->data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); @@ -93,20 +93,20 @@ __device float3 bsdf_ward_eval_reflect(const ShaderData *sd, const float3 I, con return make_float3 (0, 0, 0); } -__device float3 bsdf_ward_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_ward_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_ward_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_ward_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_ward_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_ward_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_ax = sd->svm_closure_data0; - float m_ay = sd->svm_closure_data1; + float m_ax = sc->data0; + float m_ay = sc->data1; float3 m_N = sd->N; float3 m_T = normalize(sd->dPdu); diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h index 0f38deb0885..21e5018c489 100644 --- a/intern/cycles/kernel/svm/bsdf_westin.h +++ b/intern/cycles/kernel/svm/bsdf_westin.h @@ -42,26 +42,26 @@ typedef struct BsdfWestinBackscatterClosure { float m_invroughness; } BsdfWestinBackscatterClosure; -__device void bsdf_westin_backscatter_setup(ShaderData *sd, float3 N, float roughness) +__device void bsdf_westin_backscatter_setup(ShaderData *sd, ShaderClosure *sc, float roughness) { roughness = clamp(roughness, 1e-5f, 1.0f); float m_invroughness = 1.0f/roughness; - sd->svm_closure = CLOSURE_BSDF_WESTIN_BACKSCATTER_ID; + sc->type = CLOSURE_BSDF_WESTIN_BACKSCATTER_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; - sd->svm_closure_data0 = m_invroughness; + sc->data0 = m_invroughness; } -__device void bsdf_westin_backscatter_blur(ShaderData *sd, float roughness) +__device void bsdf_westin_backscatter_blur(ShaderClosure *sc, float roughness) { - float m_invroughness = sd->svm_closure_data0; + float m_invroughness = sc->data0; m_invroughness = min(1.0f/roughness, m_invroughness); - sd->svm_closure_data0 = m_invroughness; + sc->data0 = m_invroughness; } -__device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_invroughness = sd->svm_closure_data0; + float m_invroughness = sc->data0; float3 m_N = sd->N; // pdf is implicitly 0 (no indirect sampling) @@ -76,19 +76,19 @@ __device float3 bsdf_westin_backscatter_eval_reflect(const ShaderData *sd, const return make_float3 (0, 0, 0); } -__device float3 bsdf_westin_backscatter_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_westin_backscatter_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_westin_backscatter_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_westin_backscatter_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_westin_backscatter_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_westin_backscatter_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_invroughness = sd->svm_closure_data0; + float m_invroughness = sc->data0; float3 m_N = sd->N; float cosNO = dot(m_N, sd->I); @@ -137,20 +137,20 @@ typedef struct BsdfWestinSheenClosure { float m_edginess; } BsdfWestinSheenClosure; -__device void bsdf_westin_sheen_setup(ShaderData *sd, float3 N, float edginess) +__device void bsdf_westin_sheen_setup(ShaderData *sd, ShaderClosure *sc, float edginess) { - sd->svm_closure = CLOSURE_BSDF_WESTIN_SHEEN_ID; + sc->type = CLOSURE_BSDF_WESTIN_SHEEN_ID; sd->flag |= SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; - sd->svm_closure_data0 = edginess; + sc->data0 = edginess; } -__device void bsdf_westin_sheen_blur(ShaderData *sd, float roughness) +__device void bsdf_westin_sheen_blur(ShaderClosure *sc, float roughness) { } -__device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { - float m_edginess = sd->svm_closure_data0; + float m_edginess = sc->data0; float3 m_N = sd->N; // pdf is implicitly 0 (no indirect sampling) @@ -165,19 +165,19 @@ __device float3 bsdf_westin_sheen_eval_reflect(const ShaderData *sd, const float return make_float3 (0, 0, 0); } -__device float3 bsdf_westin_sheen_eval_transmit(const ShaderData *sd, const float3 I, const float3 omega_in, float *pdf) +__device float3 bsdf_westin_sheen_eval_transmit(const ShaderData *sd, const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { return make_float3(0.0f, 0.0f, 0.0f); } -__device float bsdf_westin_sheen_albedo(const ShaderData *sd, const float3 I) +__device float bsdf_westin_sheen_albedo(const ShaderData *sd, const ShaderClosure *sc, const float3 I) { return 1.0f; } -__device int bsdf_westin_sheen_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) +__device int bsdf_westin_sheen_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { - float m_edginess = sd->svm_closure_data0; + float m_edginess = sc->data0; float3 m_N = sd->N; // we are viewing the surface from the right side - send a ray out with cosine diff --git a/intern/cycles/kernel/svm/emissive.h b/intern/cycles/kernel/svm/emissive.h index ed2b2e4aee8..8bd31751fb3 100644 --- a/intern/cycles/kernel/svm/emissive.h +++ b/intern/cycles/kernel/svm/emissive.h @@ -42,23 +42,6 @@ __device float3 emissive_eval(const float3 Ng, const float3 I) return make_float3(res, res, res); } -__device void emissive_sample(const float3 Ng, float randu, float randv, float3 *I, float *pdf) -{ - // We don't do anything sophisticated here for the step - // We just sample the whole cone uniformly to the cosine - float3 T, B; - make_orthonormals(Ng, &T, &B); - float phi = 2 * M_PI_F * randu; - - float cosTheta = sqrtf(1.0f - 1.0f * randv); - float sinTheta = sqrtf(1.0f - cosTheta * cosTheta); - *I = (cosf(phi) * sinTheta) * T + - (sinf(phi) * sinTheta) * B + - cosTheta * Ng; - - *pdf = M_1_PI_F; -} - /// Return the probability distribution function in the direction I, /// given the parameters and the light's surface normal. This MUST match /// the PDF computed by sample(). @@ -68,15 +51,9 @@ __device float emissive_pdf(const float3 Ng, const float3 I) return (cosNO > 0.0f)? M_1_PI_F: 0.0f; } -__device float3 svm_emissive_eval(ShaderData *sd) -{ - return sd->svm_closure_weight*emissive_eval(sd->Ng, sd->I); -} - -__device void svm_emissive_sample(ShaderData *sd, float randu, float randv, float3 *eval, float3 *I, float *pdf) +__device float3 svm_emissive_eval(ShaderData *sd, ShaderClosure *sc) { - *eval = sd->svm_closure_weight; - emissive_sample(sd->Ng, randu, randv, I, pdf); + return emissive_eval(sd->Ng, sd->I); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 989c37c3cd0..a5d95c1b394 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -47,14 +47,14 @@ CCL_NAMESPACE_BEGIN /* Stack */ -__device float3 stack_load_float3(float *stack, uint a) +__device_inline float3 stack_load_float3(float *stack, uint a) { kernel_assert(a+2 < SVM_STACK_SIZE); return make_float3(stack[a+0], stack[a+1], stack[a+2]); } -__device void stack_store_float3(float *stack, uint a, float3 f) +__device_inline void stack_store_float3(float *stack, uint a, float3 f) { kernel_assert(a+2 < SVM_STACK_SIZE); @@ -63,40 +63,40 @@ __device void stack_store_float3(float *stack, uint a, float3 f) stack[a+2] = f.z; } -__device float stack_load_float(float *stack, uint a) +__device_inline float stack_load_float(float *stack, uint a) { kernel_assert(a < SVM_STACK_SIZE); return stack[a]; } -__device float stack_load_float_default(float *stack, uint a, uint value) +__device_inline float stack_load_float_default(float *stack, uint a, uint value) { return (a == (uint)SVM_STACK_INVALID)? __int_as_float(value): stack_load_float(stack, a); } -__device void stack_store_float(float *stack, uint a, float f) +__device_inline void stack_store_float(float *stack, uint a, float f) { kernel_assert(a < SVM_STACK_SIZE); stack[a] = f; } -__device bool stack_valid(uint a) +__device_inline bool stack_valid(uint a) { return a != (uint)SVM_STACK_INVALID; } /* Reading Nodes */ -__device uint4 read_node(KernelGlobals *kg, int *offset) +__device_inline uint4 read_node(KernelGlobals *kg, int *offset) { uint4 node = kernel_tex_fetch(__svm_nodes, *offset); (*offset)++; return node; } -__device float4 read_node_float(KernelGlobals *kg, int *offset) +__device_inline float4 read_node_float(KernelGlobals *kg, int *offset) { uint4 node = kernel_tex_fetch(__svm_nodes, *offset); float4 f = make_float4(__int_as_float(node.x), __int_as_float(node.y), __int_as_float(node.z), __int_as_float(node.w)); @@ -104,7 +104,7 @@ __device float4 read_node_float(KernelGlobals *kg, int *offset) return f; } -__device void decode_node_uchar4(uint i, uint *x, uint *y, uint *z, uint *w) +__device_inline void decode_node_uchar4(uint i, uint *x, uint *y, uint *z, uint *w) { if(x) *x = (i & 0xFF); if(y) *y = ((i >> 8) & 0xFF); @@ -154,8 +154,12 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT float closure_weight = 1.0f; int offset = sd->shader; - sd->svm_closure = NBUILTIN_CLOSURES; - sd->svm_closure_weight = make_float3(0.0f, 0.0f, 0.0f); +#ifdef __MULTI_CLOSURE__ + sd->num_closure = 0; + sd->randb_closure = randb; +#else + sd->closure.type = NBUILTIN_CLOSURES; +#endif while(1) { uint4 node = read_node(kg, &offset); @@ -169,16 +173,16 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT break; } case NODE_CLOSURE_BSDF: - svm_node_closure_bsdf(sd, stack, node, randb); + svm_node_closure_bsdf(kg, sd, stack, node, randb, path_flag); break; case NODE_CLOSURE_EMISSION: - svm_node_closure_emission(sd); + svm_node_closure_emission(sd, stack, node); break; case NODE_CLOSURE_BACKGROUND: - svm_node_closure_background(sd); + svm_node_closure_background(sd, node); break; case NODE_CLOSURE_HOLDOUT: - svm_node_closure_holdout(sd); + svm_node_closure_holdout(sd, stack, node); break; case NODE_CLOSURE_SET_WEIGHT: svm_node_closure_set_weight(sd, node.y, node.z, node.w); @@ -190,7 +194,7 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT svm_node_emission_weight(kg, sd, stack, node); break; case NODE_MIX_CLOSURE: - svm_node_mix_closure(sd, stack, node.y, node.z, &offset, &randb); + svm_node_mix_closure(sd, stack, node, &offset, &randb); break; case NODE_ADD_CLOSURE: svm_node_add_closure(sd, stack, node.y, node.z, &offset, &randb, &closure_weight); @@ -307,7 +311,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT break; case NODE_END: default: - sd->svm_closure_weight *= closure_weight; +#ifndef __MULTI_CLOSURE__ + sd->closure.weight *= closure_weight; +#endif return; } } diff --git a/intern/cycles/kernel/svm/svm_bsdf.h b/intern/cycles/kernel/svm/svm_bsdf.h index 22985e9ace5..a1b39c6ca1e 100644 --- a/intern/cycles/kernel/svm/svm_bsdf.h +++ b/intern/cycles/kernel/svm/svm_bsdf.h @@ -29,48 +29,48 @@ CCL_NAMESPACE_BEGIN -__device int svm_bsdf_sample(const ShaderData *sd, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf) +__device int svm_bsdf_sample(const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf) { int label; - switch(sd->svm_closure) { + switch(sc->type) { case CLOSURE_BSDF_DIFFUSE_ID: - label = bsdf_diffuse_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_diffuse_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; #ifdef __SVM__ case CLOSURE_BSDF_TRANSLUCENT_ID: - label = bsdf_translucent_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_translucent_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_REFLECTION_ID: - label = bsdf_reflection_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_reflection_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_REFRACTION_ID: - label = bsdf_refraction_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_refraction_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_TRANSPARENT_ID: - label = bsdf_transparent_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_transparent_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_MICROFACET_GGX_ID: case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: - label = bsdf_microfacet_ggx_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_microfacet_ggx_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: - label = bsdf_microfacet_beckmann_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_microfacet_beckmann_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; #ifdef __DPDU__ case CLOSURE_BSDF_WARD_ID: - label = bsdf_ward_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_ward_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; #endif case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: - label = bsdf_ashikhmin_velvet_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_ashikhmin_velvet_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: - label = bsdf_westin_backscatter_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_westin_backscatter_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; case CLOSURE_BSDF_WESTIN_SHEEN_ID: - label = bsdf_westin_sheen_sample(sd, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); + label = bsdf_westin_sheen_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); break; #endif default: @@ -78,53 +78,51 @@ __device int svm_bsdf_sample(const ShaderData *sd, float randu, float randv, flo break; } - *eval *= sd->svm_closure_weight; - return label; } -__device float3 svm_bsdf_eval(const ShaderData *sd, const float3 omega_in, float *pdf) +__device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, float *pdf) { float3 eval; if(dot(sd->Ng, omega_in) >= 0.0f) { - switch(sd->svm_closure) { + switch(sc->type) { case CLOSURE_BSDF_DIFFUSE_ID: - eval = bsdf_diffuse_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_diffuse_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_TRANSLUCENT_ID: - eval = bsdf_translucent_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_translucent_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_REFLECTION_ID: - eval = bsdf_reflection_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_reflection_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_REFRACTION_ID: - eval = bsdf_refraction_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_refraction_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_TRANSPARENT_ID: - eval = bsdf_transparent_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_transparent_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_MICROFACET_GGX_ID: case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: - eval = bsdf_microfacet_ggx_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_microfacet_ggx_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: - eval = bsdf_microfacet_beckmann_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_microfacet_beckmann_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; #ifdef __DPDU__ case CLOSURE_BSDF_WARD_ID: - eval = bsdf_ward_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_ward_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; #endif case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: - eval = bsdf_ashikhmin_velvet_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_ashikhmin_velvet_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: - eval = bsdf_westin_backscatter_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_westin_backscatter_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_WESTIN_SHEEN_ID: - eval = bsdf_westin_sheen_eval_reflect(sd, sd->I, omega_in, pdf); + eval = bsdf_westin_sheen_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; default: eval = make_float3(0.0f, 0.0f, 0.0f); @@ -132,43 +130,43 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const float3 omega_in, float } } else { - switch(sd->svm_closure) { + switch(sc->type) { case CLOSURE_BSDF_DIFFUSE_ID: - eval = bsdf_diffuse_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_diffuse_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_TRANSLUCENT_ID: - eval = bsdf_translucent_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_translucent_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_REFLECTION_ID: - eval = bsdf_reflection_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_reflection_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_REFRACTION_ID: - eval = bsdf_refraction_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_refraction_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_TRANSPARENT_ID: - eval = bsdf_transparent_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_transparent_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_MICROFACET_GGX_ID: case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: - eval = bsdf_microfacet_ggx_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_microfacet_ggx_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: - eval = bsdf_microfacet_beckmann_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_microfacet_beckmann_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; #ifdef __DPDU__ case CLOSURE_BSDF_WARD_ID: - eval = bsdf_ward_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_ward_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; #endif case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: - eval = bsdf_ashikhmin_velvet_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_ashikhmin_velvet_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: - eval = bsdf_westin_backscatter_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_westin_backscatter_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; case CLOSURE_BSDF_WESTIN_SHEEN_ID: - eval = bsdf_westin_sheen_eval_transmit(sd, sd->I, omega_in, pdf); + eval = bsdf_westin_sheen_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; default: eval = make_float3(0.0f, 0.0f, 0.0f); @@ -176,50 +174,48 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const float3 omega_in, float } } - eval *= sd->svm_closure_weight; - return eval; } -__device void svm_bsdf_blur(ShaderData *sd, float roughness) +__device void svm_bsdf_blur(ShaderClosure *sc, float roughness) { - switch(sd->svm_closure) { + switch(sc->type) { case CLOSURE_BSDF_DIFFUSE_ID: - bsdf_diffuse_blur(sd, roughness); + bsdf_diffuse_blur(sc, roughness); break; case CLOSURE_BSDF_TRANSLUCENT_ID: - bsdf_translucent_blur(sd, roughness); + bsdf_translucent_blur(sc, roughness); break; case CLOSURE_BSDF_REFLECTION_ID: - bsdf_reflection_blur(sd, roughness); + bsdf_reflection_blur(sc, roughness); break; case CLOSURE_BSDF_REFRACTION_ID: - bsdf_refraction_blur(sd, roughness); + bsdf_refraction_blur(sc, roughness); break; case CLOSURE_BSDF_TRANSPARENT_ID: - bsdf_transparent_blur(sd, roughness); + bsdf_transparent_blur(sc, roughness); break; case CLOSURE_BSDF_MICROFACET_GGX_ID: case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: - bsdf_microfacet_ggx_blur(sd, roughness); + bsdf_microfacet_ggx_blur(sc, roughness); break; case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: - bsdf_microfacet_beckmann_blur(sd, roughness); + bsdf_microfacet_beckmann_blur(sc, roughness); break; #ifdef __DPDU__ case CLOSURE_BSDF_WARD_ID: - bsdf_ward_blur(sd, roughness); + bsdf_ward_blur(sc, roughness); break; #endif case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: - bsdf_ashikhmin_velvet_blur(sd, roughness); + bsdf_ashikhmin_velvet_blur(sc, roughness); break; case CLOSURE_BSDF_WESTIN_BACKSCATTER_ID: - bsdf_westin_backscatter_blur(sd, roughness); + bsdf_westin_backscatter_blur(sc, roughness); break; case CLOSURE_BSDF_WESTIN_SHEEN_ID: - bsdf_westin_sheen_blur(sd, roughness); + bsdf_westin_sheen_blur(sc, roughness); break; default: break; diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 1efadcefbd5..aaf2926f60d 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -20,28 +20,92 @@ CCL_NAMESPACE_BEGIN /* Closure Nodes */ -__device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, float randb) +__device void svm_node_glossy_setup(ShaderData *sd, ShaderClosure *sc, int type, float eta, float roughness, bool refract) +{ + if(type == CLOSURE_BSDF_REFRACTION_ID) { + if(refract) + bsdf_refraction_setup(sd, sc, eta); + else + bsdf_reflection_setup(sd, sc); + } + else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID) { + bsdf_microfacet_beckmann_setup(sd, sc, roughness, eta, refract); + } + else + bsdf_microfacet_ggx_setup(sd, sc, roughness, eta, refract); +} + +__device_inline ShaderClosure *svm_node_closure_get(ShaderData *sd) +{ +#ifdef __MULTI_CLOSURE__ + ShaderClosure *sc = &sd->closure[sd->num_closure]; + + if(sd->num_closure < MAX_CLOSURE) + sd->num_closure++; + + return sc; +#else + return &sd->closure; +#endif +} + +__device_inline void svm_node_closure_set_mix_weight(ShaderClosure *sc, float mix_weight) +{ +#ifdef __MULTI_CLOSURE__ + sc->weight *= mix_weight; + sc->sample_weight = fabsf(average(sc->weight)); +#endif +} + +__device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, float randb, int path_flag) { uint type, param1_offset, param2_offset; + +#ifdef __MULTI_CLOSURE__ + uint mix_weight_offset; + decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, &mix_weight_offset); + float mix_weight = (stack_valid(mix_weight_offset)? stack_load_float(stack, mix_weight_offset): 1.0f); + + if(mix_weight == 0.0f) + return; +#else decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, NULL); + float mix_weight = 1.0f; +#endif float param1 = (stack_valid(param1_offset))? stack_load_float(stack, param1_offset): __int_as_float(node.z); float param2 = (stack_valid(param2_offset))? stack_load_float(stack, param2_offset): __int_as_float(node.w); switch(type) { - case CLOSURE_BSDF_DIFFUSE_ID: - bsdf_diffuse_setup(sd, sd->N); + case CLOSURE_BSDF_DIFFUSE_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + bsdf_diffuse_setup(sd, sc); break; - case CLOSURE_BSDF_TRANSLUCENT_ID: - bsdf_translucent_setup(sd, sd->N); + } + case CLOSURE_BSDF_TRANSLUCENT_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + bsdf_translucent_setup(sd, sc); break; - case CLOSURE_BSDF_TRANSPARENT_ID: - bsdf_transparent_setup(sd); + } + case CLOSURE_BSDF_TRANSPARENT_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + bsdf_transparent_setup(sd, sc); break; + } case CLOSURE_BSDF_REFLECTION_ID: case CLOSURE_BSDF_MICROFACET_GGX_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: { - /* roughness */ +#ifdef __CAUSTICS_TRICKS__ + if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) + break; +#endif + + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + /* index of refraction */ float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); eta = 1.0f/eta; @@ -49,26 +113,22 @@ __device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, fl /* fresnel */ float cosNO = dot(sd->N, sd->I); float fresnel = fresnel_dielectric_cos(cosNO, eta); + float roughness = param1; - sd->svm_closure_weight *= fresnel; + sc->weight *= fresnel; /* setup bsdf */ - if(type == CLOSURE_BSDF_REFLECTION_ID) { - bsdf_reflection_setup(sd, sd->N); - } - else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_ID) { - float roughness = param1; - bsdf_microfacet_beckmann_setup(sd, sd->N, roughness, eta, false); - } - else { - float roughness = param1; - bsdf_microfacet_ggx_setup(sd, sd->N, roughness, eta, false); - } + svm_node_glossy_setup(sd, sc, type, eta, roughness, false); break; } case CLOSURE_BSDF_REFRACTION_ID: case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: { +#ifdef __CAUSTICS_TRICKS__ + if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) + break; +#endif + /* index of refraction */ float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); eta = (sd->flag & SD_BACKFACING)? eta: 1.0f/eta; @@ -76,34 +136,58 @@ __device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, fl /* fresnel */ float cosNO = dot(sd->N, sd->I); float fresnel = fresnel_dielectric_cos(cosNO, eta); - bool refract = (fresnel < randb); + float roughness = param1; + +#ifdef __MULTI_CLOSURE__ + /* reflection */ + ShaderClosure *sc = svm_node_closure_get(sd); + + float3 weight = sc->weight; + float sample_weight = sc->sample_weight; + + svm_node_closure_set_mix_weight(sc, mix_weight*fresnel); + svm_node_glossy_setup(sd, sc, type, eta, roughness, false); + + /* refraction */ + sc = svm_node_closure_get(sd); + + sc->weight = weight; + sc->sample_weight = sample_weight; + + svm_node_closure_set_mix_weight(sc, mix_weight*(1.0f - fresnel)); + svm_node_glossy_setup(sd, sc, type, eta, roughness, true); +#else + ShaderClosure *sc = svm_node_closure_get(sd); + + bool refract = (randb > fresnel); + + svm_node_closure_set_mix_weight(sc, mix_weight); + svm_node_glossy_setup(sd, sc, type, eta, roughness, refract); +#endif - /* setup bsdf */ - if(type == CLOSURE_BSDF_REFRACTION_ID) { - if(refract) - bsdf_refraction_setup(sd, sd->N, eta); - else - bsdf_reflection_setup(sd, sd->N); - } - else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID) { - float roughness = param1; - bsdf_microfacet_beckmann_setup(sd, sd->N, roughness, eta, refract); - } - else { - float roughness = param1; - bsdf_microfacet_ggx_setup(sd, sd->N, roughness, eta, refract); - } break; } #ifdef __DPDU__ case CLOSURE_BSDF_WARD_ID: { +#ifdef __CAUSTICS_TRICKS__ + if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) + break; +#endif + + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + float roughness_u = param1; float roughness_v = param2; - bsdf_ward_setup(sd, sd->N, normalize(sd->dPdu), roughness_u, roughness_v); + + bsdf_ward_setup(sd, sc, normalize(sd->dPdu), roughness_u, roughness_v); break; } #endif case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + /* sigma */ float sigma = clamp(param1, 0.0f, 1.0f); @@ -115,55 +199,107 @@ __device void svm_node_closure_bsdf(ShaderData *sd, float *stack, uint4 node, fl float cosNO = dot(sd->N, sd->I); float fresnel = fresnel_dielectric_cos(cosNO, eta); - sd->svm_closure_weight *= fresnel; + sc->weight *= fresnel; - bsdf_ashikhmin_velvet_setup(sd, sd->N, sigma); + bsdf_ashikhmin_velvet_setup(sd, sc, sigma); break; } default: - return; + break; } } -__device void svm_node_closure_emission(ShaderData *sd) +__device void svm_node_closure_emission(ShaderData *sd, float *stack, uint4 node) { - sd->svm_closure = CLOSURE_EMISSION_ID; +#ifdef __MULTI_CLOSURE__ + ShaderClosure *sc = svm_node_closure_get(sd); + uint mix_weight_offset = node.y; + + if(stack_valid(mix_weight_offset)) { + float mix_weight = stack_load_float(stack, mix_weight_offset); + + if(mix_weight == 0.0f) + return; + + sc->weight *= mix_weight; + } +#else + ShaderClosure *sc = &sd->closure; +#endif + + sc->type = CLOSURE_EMISSION_ID; sd->flag |= SD_EMISSION; } -__device void svm_node_closure_background(ShaderData *sd) +__device void svm_node_closure_background(ShaderData *sd, uint4 node) { - sd->svm_closure = CLOSURE_BACKGROUND_ID; +#ifdef __MULTI_CLOSURE__ + ShaderClosure *sc = svm_node_closure_get(sd); +#else + ShaderClosure *sc = &sd->closure; +#endif + + sc->type = CLOSURE_BACKGROUND_ID; } -__device void svm_node_closure_holdout(ShaderData *sd) +__device void svm_node_closure_holdout(ShaderData *sd, float *stack, uint4 node) { - sd->svm_closure = CLOSURE_HOLDOUT_ID; +#ifdef __MULTI_CLOSURE__ + ShaderClosure *sc = svm_node_closure_get(sd); + uint mix_weight_offset = node.y; + + if(stack_valid(mix_weight_offset)) { + float mix_weight = stack_load_float(stack, mix_weight_offset); + + if(mix_weight == 0.0f) + return; + + sc->weight = make_float3(mix_weight, mix_weight, mix_weight); + } + else + sc->weight = make_float3(1.0f, 1.0f, 1.0f); + + sc->sample_weight = 0.0f; +#else + ShaderClosure *sc = &sd->closure; +#endif + + sc->type = CLOSURE_HOLDOUT_ID; sd->flag |= SD_HOLDOUT; } /* Closure Nodes */ +__device_inline void svm_node_closure_store_weight(ShaderData *sd, float3 weight) +{ +#ifdef __MULTI_CLOSURE__ + sd->closure[sd->num_closure].weight = weight; +#else + sd->closure.weight = weight; +#endif +} + __device void svm_node_closure_set_weight(ShaderData *sd, uint r, uint g, uint b) { - sd->svm_closure_weight.x = __int_as_float(r); - sd->svm_closure_weight.y = __int_as_float(g); - sd->svm_closure_weight.z = __int_as_float(b); + float3 weight = make_float3(__int_as_float(r), __int_as_float(g), __int_as_float(b)); + svm_node_closure_store_weight(sd, weight); } __device void svm_node_emission_set_weight_total(KernelGlobals *kg, ShaderData *sd, uint r, uint g, uint b) { - sd->svm_closure_weight.x = __int_as_float(r); - sd->svm_closure_weight.y = __int_as_float(g); - sd->svm_closure_weight.z = __int_as_float(b); + float3 weight = make_float3(__int_as_float(r), __int_as_float(g), __int_as_float(b)); if(sd->object != ~0) - sd->svm_closure_weight /= object_surface_area(kg, sd->object); + weight /= object_surface_area(kg, sd->object); + + svm_node_closure_store_weight(sd, weight); } __device void svm_node_closure_weight(ShaderData *sd, float *stack, uint weight_offset) { - sd->svm_closure_weight = stack_load_float3(stack, weight_offset); + float3 weight = stack_load_float3(stack, weight_offset); + + svm_node_closure_store_weight(sd, weight); } __device void svm_node_emission_weight(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) @@ -172,37 +308,59 @@ __device void svm_node_emission_weight(KernelGlobals *kg, ShaderData *sd, float uint strength_offset = node.z; uint total_power = node.w; - sd->svm_closure_weight = stack_load_float3(stack, color_offset)*stack_load_float(stack, strength_offset); + float3 weight = stack_load_float3(stack, color_offset)*stack_load_float(stack, strength_offset); if(total_power && sd->object != ~0) - sd->svm_closure_weight /= object_surface_area(kg, sd->object); + weight /= object_surface_area(kg, sd->object); + + svm_node_closure_store_weight(sd, weight); } __device void svm_node_mix_closure(ShaderData *sd, float *stack, - uint weight_offset, uint node_jump, int *offset, float *randb) + uint4 node, int *offset, float *randb) { +#ifdef __MULTI_CLOSURE__ + /* fetch weight from blend input, previous mix closures, + and write to stack to be used by closure nodes later */ + uint weight_offset, in_weight_offset, weight1_offset, weight2_offset; + decode_node_uchar4(node.y, &weight_offset, &in_weight_offset, &weight1_offset, &weight2_offset); + float weight = stack_load_float(stack, weight_offset); - weight = clamp(weight, 0.0f, 1.0f); + float in_weight = (stack_valid(in_weight_offset))? stack_load_float(stack, in_weight_offset): 1.0f; + if(stack_valid(weight1_offset)) + stack_store_float(stack, weight1_offset, in_weight*(1.0f - weight)); + if(stack_valid(weight2_offset)) + stack_store_float(stack, weight2_offset, in_weight*weight); +#else /* pick a closure and make the random number uniform over 0..1 again. closure 1 starts on the next node, for closure 2 the start is at an offset from the current node, so we jump */ + uint weight_offset = node.y; + uint node_jump = node.z; + float weight = stack_load_float(stack, weight_offset); + weight = clamp(weight, 0.0f, 1.0f); + if(*randb < weight) { *offset += node_jump; *randb = *randb/weight; } else *randb = (*randb - weight)/(1.0f - weight); +#endif } __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, uint node_jump, int *offset, float *randb, float *closure_weight) { - float weight = 0.5f; - +#ifdef __MULTI_CLOSURE__ + /* nothing to do, handled in compiler */ +#else /* pick one of the two closures with probability 0.5. sampling quality is not going to be great, for that we'd need to evaluate the weights of the two closures being added */ + float weight = 0.5f; + if(*randb < weight) { *offset += node_jump; *randb = *randb/weight; @@ -211,6 +369,7 @@ __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, *randb = (*randb - weight)/(1.0f - weight); *closure_weight *= 2.0f; +#endif } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 758ba25c07a..98e4a5ee583 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -258,6 +258,7 @@ typedef enum ShaderType { /* Closure */ typedef enum ClosureType { + CLOSURE_BSDF_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_TRANSLUCENT_ID, CLOSURE_BSDF_REFLECTION_ID, @@ -272,16 +273,25 @@ typedef enum ClosureType { CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, CLOSURE_BSDF_WESTIN_SHEEN_ID, + CLOSURE_BSSRDF_CUBIC_ID, CLOSURE_EMISSION_ID, CLOSURE_DEBUG_ID, CLOSURE_BACKGROUND_ID, CLOSURE_HOLDOUT_ID, CLOSURE_SUBSURFACE_ID, + CLOSURE_VOLUME_ID, NBUILTIN_CLOSURES } ClosureType; +/* watch this, being lazy with memory usage */ +#define CLOSURE_IS_BSDF(type) (type <= CLOSURE_BSDF_WESTIN_SHEEN_ID) +#define CLOSURE_IS_VOLUME(type) (type == CLOSURE_VOLUME_ID) +#define CLOSURE_IS_EMISSION(type) (type == CLOSURE_EMISSION_ID) +#define CLOSURE_IS_HOLDOUT(type) (type == CLOSURE_HOLDOUT_ID) +#define CLOSURE_IS_BACKGROUND(type) (type == CLOSURE_BACKGROUND_ID) + CCL_NAMESPACE_END #endif /* __SVM_TYPES_H__ */ diff --git a/intern/cycles/kernel/svm/volume.h b/intern/cycles/kernel/svm/volume.h index 32e0601ee00..dc377b5c595 100644 --- a/intern/cycles/kernel/svm/volume.h +++ b/intern/cycles/kernel/svm/volume.h @@ -34,7 +34,7 @@ CCL_NAMESPACE_BEGIN /* VOLUME CLOSURE */ -__device float3 volume_eval_phase(ShaderData *sd, const float3 omega_in, const float3 omega_out) +__device float3 volume_eval_phase(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) { return make_float3(1.0f, 1.0f, 1.0f); } diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index feb9e35e785..b13cab55404 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -55,6 +55,9 @@ LightManager::~LightManager() void LightManager::device_update_distribution(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) { + /* option to always sample all point lights */ + bool multi_light = false; + /* count */ size_t num_lights = scene->lights.size(); size_t num_triangles = 0; @@ -82,7 +85,10 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen } } - size_t num_distribution = num_triangles + num_lights; + size_t num_distribution = num_triangles; + + if(!multi_light) + num_distribution += num_lights; /* emission area */ float4 *distribution = dscene->light_distribution.resize(num_distribution + 1); @@ -137,14 +143,16 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen float trianglearea = totarea; /* point lights */ - float lightarea = (totarea > 0.0f)? totarea/scene->lights.size(): 1.0f; - - for(size_t i = 0; i < scene->lights.size(); i++, offset++) { - distribution[offset].x = totarea; - distribution[offset].y = __int_as_float(-i-1); - distribution[offset].z = 1.0f; - distribution[offset].w = scene->lights[i]->radius; - totarea += lightarea; + if(!multi_light) { + float lightarea = (totarea > 0.0f)? totarea/scene->lights.size(): 1.0f; + + for(size_t i = 0; i < scene->lights.size(); i++, offset++) { + distribution[offset].x = totarea; + distribution[offset].y = __int_as_float(-i-1); + distribution[offset].z = 1.0f; + distribution[offset].w = scene->lights[i]->radius; + totarea += lightarea; + } } /* normalize cumulative distribution functions */ @@ -163,28 +171,40 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen /* update device */ KernelIntegrator *kintegrator = &dscene->data.integrator; - kintegrator->use_emission = (totarea > 0.0f); + kintegrator->use_emission = (totarea > 0.0f) || (multi_light && num_lights); if(kintegrator->use_emission) { /* number of emissives */ - kintegrator->num_triangles = num_triangles; - kintegrator->num_lights = num_lights; - kintegrator->num_distribution = num_distribution; + kintegrator->num_distribution = (totarea > 0.0f)? num_distribution: 0; /* precompute pdfs */ kintegrator->pdf_triangles = 0.0f; kintegrator->pdf_lights = 0.0f; - if(trianglearea > 0.0f) { - kintegrator->pdf_triangles = 1.0f/trianglearea; + if(multi_light) { + /* sample one of all triangles and all lights */ + kintegrator->num_all_lights = num_lights; + + if(trianglearea > 0.0f) + kintegrator->pdf_triangles = 1.0f/trianglearea; if(num_lights) - kintegrator->pdf_triangles *= 0.5f; + kintegrator->pdf_lights = 1.0f; } + else { + /* sample one, with 0.5 probability of light or triangle */ + kintegrator->num_all_lights = 0; + + if(trianglearea > 0.0f) { + kintegrator->pdf_triangles = 1.0f/trianglearea; + if(num_lights) + kintegrator->pdf_triangles *= 0.5f; + } - if(num_lights) { - kintegrator->pdf_lights = 1.0f/num_lights; - if(trianglearea > 0.0f) - kintegrator->pdf_lights *= 0.5f; + if(num_lights) { + kintegrator->pdf_lights = 1.0f/num_lights; + if(trianglearea > 0.0f) + kintegrator->pdf_lights *= 0.5f; + } } /* CDF */ diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index b73013fc378..7a6ce547486 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -21,6 +21,7 @@ #include "device.h" #include "shader.h" +#include "light.h" #include "mesh.h" #include "object.h" #include "scene.h" @@ -250,6 +251,10 @@ void Mesh::tag_update(Scene *scene, bool rebuild) scene->mesh_manager->need_update = true; scene->object_manager->need_update = true; + + foreach(uint sindex, used_shaders) + if(scene->shaders[sindex]->has_surface_emission) + scene->light_manager->need_update = true; } /* Mesh Manager */ diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 0ff774bce59..f2030256814 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1024,7 +1024,8 @@ void BsdfNode::compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput * compiler.add_node(NODE_CLOSURE_BSDF, compiler.encode_uchar4(closure, (param1)? param1->stack_offset: SVM_STACK_INVALID, - (param2)? param2->stack_offset: SVM_STACK_INVALID), + (param2)? param2->stack_offset: SVM_STACK_INVALID, + compiler.closure_mix_weight_offset()), __float_as_int((param1)? param1->value.x: 0.0f), __float_as_int((param2)? param2->value.x: 0.0f)); } @@ -1222,8 +1223,6 @@ EmissionNode::EmissionNode() void EmissionNode::compile(SVMCompiler& compiler) { - compiler.add_node(NODE_CLOSURE_EMISSION, CLOSURE_EMISSION_ID); - ShaderInput *color_in = input("Color"); ShaderInput *strength_in = input("Strength"); @@ -1236,6 +1235,8 @@ void EmissionNode::compile(SVMCompiler& compiler) compiler.add_node(NODE_EMISSION_SET_WEIGHT_TOTAL, color_in->value * strength_in->value.x); else compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value * strength_in->value.x); + + compiler.add_node(NODE_CLOSURE_EMISSION, compiler.closure_mix_weight_offset()); } void EmissionNode::compile(OSLCompiler& compiler) @@ -1256,8 +1257,6 @@ BackgroundNode::BackgroundNode() void BackgroundNode::compile(SVMCompiler& compiler) { - compiler.add_node(NODE_CLOSURE_BACKGROUND, CLOSURE_BACKGROUND_ID); - ShaderInput *color_in = input("Color"); ShaderInput *strength_in = input("Strength"); @@ -1268,6 +1267,8 @@ void BackgroundNode::compile(SVMCompiler& compiler) } else compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value*strength_in->value.x); + + compiler.add_node(NODE_CLOSURE_BACKGROUND, CLOSURE_BACKGROUND_ID); } void BackgroundNode::compile(OSLCompiler& compiler) @@ -1285,7 +1286,7 @@ HoldoutNode::HoldoutNode() void HoldoutNode::compile(SVMCompiler& compiler) { - compiler.add_node(NODE_CLOSURE_HOLDOUT, CLOSURE_HOLDOUT_ID); + compiler.add_node(NODE_CLOSURE_HOLDOUT, compiler.closure_mix_weight_offset()); } void HoldoutNode::compile(OSLCompiler& compiler) diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index fab051bde72..1059254d5c4 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -17,6 +17,7 @@ */ #include "device.h" +#include "light.h" #include "mesh.h" #include "object.h" #include "scene.h" @@ -83,8 +84,15 @@ void Object::apply_transform() void Object::tag_update(Scene *scene) { - if(mesh && mesh->transform_applied) - mesh->need_update = true; + if(mesh) { + if(mesh->transform_applied) + mesh->need_update = true; + + foreach(uint sindex, mesh->used_shaders) + if(scene->shaders[sindex]->has_surface_emission) + scene->light_manager->need_update = true; + } + scene->mesh_manager->need_update = true; scene->object_manager->need_update = true; } diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 5fb687971ef..5eb8d51a816 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -35,7 +35,7 @@ Session::Session(const SessionParams& params_) : params(params_), tile_manager(params.progressive, params.passes, params.tile_size, params.min_size) { - device_use_gl = ((params.device_type == DEVICE_CUDA || params.device_type == DEVICE_OPENCL) && !params.background); + device_use_gl = ((params.device_type != DEVICE_CPU) && !params.background); device = Device::create(params.device_type, params.background, params.threads); buffers = new RenderBuffers(device); diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 4d5cf434098..ca775939c09 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -58,7 +58,7 @@ public: background = false; output_path = ""; - progressive = false; + progressive = true; passes = INT_MAX; tile_size = 64; min_size = 64; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index da52eaecc18..c4188fda421 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -105,6 +105,7 @@ SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_man current_type = SHADER_TYPE_SURFACE; current_shader = NULL; background = false; + mix_weight_offset = SVM_STACK_INVALID; } int SVMCompiler::stack_size(ShaderSocketType type) @@ -419,6 +420,84 @@ void SVMCompiler::generate_closure(ShaderNode *node, set done, Stac } } +void SVMCompiler::generate_multi_closure(ShaderNode *node, set& done, uint in_offset) +{ + /* todo: the weaks point here is that unlike the single closure sampling + we will evaluate all nodes even if they are used as input for closures + that are unused. it's not clear what would be the best way to skip such + nodes at runtime, especially if they are tangled up */ + + if(node->name == ustring("mix_closure") || node->name == ustring("add_closure")) { + ShaderInput *fin = node->input("Fac"); + ShaderInput *cl1in = node->input("Closure1"); + ShaderInput *cl2in = node->input("Closure2"); + + uint out1_offset = SVM_STACK_INVALID; + uint out2_offset = SVM_STACK_INVALID; + + if(fin) { + /* mix closure */ + set dependencies; + find_dependencies(dependencies, done, fin); + generate_svm_nodes(dependencies, done); + + stack_assign(fin); + + if(cl1in->link) + out1_offset = stack_find_offset(SHADER_SOCKET_FLOAT); + if(cl2in->link) + out2_offset = stack_find_offset(SHADER_SOCKET_FLOAT); + + add_node(NODE_MIX_CLOSURE, + encode_uchar4(fin->stack_offset, in_offset, out1_offset, out2_offset)); + } + else { + /* add closure */ + out1_offset = in_offset; + out2_offset = in_offset; + } + + if(cl1in->link) { + generate_multi_closure(cl1in->link->parent, done, out1_offset); + + if(fin) + active_stack.users[out1_offset]--; + } + + if(cl2in->link) { + generate_multi_closure(cl2in->link->parent, done, out2_offset); + + if(fin) + active_stack.users[out2_offset]--; + } + } + else { + /* execute dependencies for closure */ + foreach(ShaderInput *in, node->inputs) { + if(!node_skip_input(node, in) && in->link) { + set dependencies; + find_dependencies(dependencies, done, in); + generate_svm_nodes(dependencies, done); + } + } + + mix_weight_offset = in_offset; + + /* compile closure itself */ + node->compile(*this); + stack_clear_users(node, done); + stack_clear_temporary(node); + + mix_weight_offset = SVM_STACK_INVALID; + + if(node->name == ustring("emission")) + current_shader->has_surface_emission = true; + + /* end node is added outside of this */ + } +} + + void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType type) { /* Converting a shader graph into svm_nodes that can be executed @@ -464,21 +543,35 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty } if(clin->link) { + bool generate = false; if(type == SHADER_TYPE_SURFACE) { /* generate surface shader */ - generate_closure(clin->link->parent, set(), Stack()); + generate = true; shader->has_surface = true; } else if(type == SHADER_TYPE_VOLUME) { /* generate volume shader */ - generate_closure(clin->link->parent, set(), Stack()); + generate = true; shader->has_volume = true; } else if(type == SHADER_TYPE_DISPLACEMENT) { /* generate displacement shader */ - generate_closure(clin->link->parent, set(), Stack()); + generate = true; shader->has_displacement = true; } + + if(generate) { + set done; + bool multi_closure = false; /* __MULTI_CLOSURE__ */ + + if(multi_closure) { + generate_multi_closure(clin->link->parent, done, SVM_STACK_INVALID); + } + else { + Stack stack; + generate_closure(clin->link->parent, done, stack); + } + } } /* compile output node */ diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index f76649e4a6f..05fb85b057f 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -24,6 +24,7 @@ #include "shader.h" #include "util_set.h" +#include "util_string.h" CCL_NAMESPACE_BEGIN @@ -65,6 +66,7 @@ public: uint attribute(ustring name); uint attribute(Attribute::Standard std); uint encode_uchar4(uint x, uint y = 0, uint z = 0, uint w = 0); + uint closure_mix_weight_offset() { return mix_weight_offset; } ShaderType output_type() { return current_type; } @@ -75,6 +77,8 @@ public: protected: struct Stack { + Stack() { memset(users, 0, sizeof(users)); } + int users[SVM_STACK_SIZE]; }; @@ -88,6 +92,7 @@ protected: void find_dependencies(set& dependencies, const set& done, ShaderInput *input); void generate_svm_nodes(const set& nodes, set& done); void generate_closure(ShaderNode *node, set done, Stack stack); + void generate_multi_closure(ShaderNode *node, set& done, uint in_offset); void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); @@ -96,6 +101,7 @@ protected: Shader *current_shader; Stack active_stack; int max_stack_use; + uint mix_weight_offset; }; CCL_NAMESPACE_END diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index 450090c42f8..61f3af7aa10 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -96,7 +96,7 @@ void TileManager::set_tiles() bool TileManager::done() { - return (state.pass+1 >= passes); + return (state.pass+1 >= passes && state.resolution == 1); } bool TileManager::next() diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index 90093e32d58..d3f739e19f6 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -109,11 +109,16 @@ string path_files_md5_hash(const string& dir) return hash.get_hex(); } -bool path_write_binary(const string& path, const vector& binary) +void path_create_directories(const string& path) { - /* write binary file from memory */ boost::filesystem::create_directories(path_dirname(path)); +} +bool path_write_binary(const string& path, const vector& binary) +{ + path_create_directories(path); + + /* write binary file from memory */ FILE *f = fopen(path.c_str(), "wb"); if(!f) diff --git a/intern/cycles/util/util_path.h b/intern/cycles/util/util_path.h index a91b91461fa..4a9d45ec594 100644 --- a/intern/cycles/util/util_path.h +++ b/intern/cycles/util/util_path.h @@ -42,6 +42,7 @@ string path_escape(const string& path); bool path_exists(const string& path); string path_files_md5_hash(const string& dir); +void path_create_directories(const string& path); bool path_write_binary(const string& path, const vector& binary); bool path_read_binary(const string& path, vector& binary); -- cgit v1.2.3 From f97d7b234daaed836172a7caaa5b8d590c7513e5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 12 Sep 2011 14:47:36 +0000 Subject: Cycles: fix crash with group node sockets that don't connect to any node inside the group. --- intern/cycles/blender/blender_shader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 4e19ee82f77..362c765b399 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -519,7 +519,10 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr to_name = b_to_sock.name(); } - graph->connect(from_node->output(from_name.c_str()), to_node->input(to_name.c_str())); + /* in case of groups there may not actually be a node inside the group + that the group socket connects to, so from_node or to_node may be NULL */ + if(from_node && to_node) + graph->connect(from_node->output(from_name.c_str()), to_node->input(to_name.c_str())); } } -- cgit v1.2.3 From 089abdecf7b14b97c460aa7697fa9191db281d92 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 14 Sep 2011 22:26:55 +0000 Subject: Cycles: attempted fixes for OS X preview render problem, and disable kernel cache there now as well since it seems to give issues there. --- intern/cycles/CMakeLists.txt | 2 +- intern/cycles/device/device.cpp | 2 +- intern/cycles/device/device_network.h | 4 ++++ intern/cycles/device/device_opencl.cpp | 4 ++++ intern/cycles/render/session.h | 2 +- intern/cycles/render/tile.cpp | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 74bac846aa4..0041f11c288 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -8,7 +8,7 @@ include(cmake/external_libs.cmake) # Build Flags set(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") -set(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") +set(GCC_OPTIM_FLAGS "-ffast-math -msse -msse2 -msse3 -mtune=native") if(APPLE) set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index ab57d7cfe86..6ba50154dac 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -108,7 +108,7 @@ void Device::draw_pixels(device_memory& rgba, int y, int w, int h, int width, in /* for multi devices, this assumes the ineffecient method that we allocate all pixels on the device even though we only render to a subset */ - pixels += sizeof(uint8_t)*4*y*w; + pixels += 4*y*w; glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels); diff --git a/intern/cycles/device/device_network.h b/intern/cycles/device/device_network.h index ebb1e43a7a7..775517586d3 100644 --- a/intern/cycles/device/device_network.h +++ b/intern/cycles/device/device_network.h @@ -19,6 +19,8 @@ #ifndef __DEVICE_NETWORK_H__ #define __DEVICE_NETWORK_H__ +#ifdef WITH_NETWORK + #include #include #include @@ -300,5 +302,7 @@ private: CCL_NAMESPACE_END +#endif + #endif /* __DEVICE_NETWORK_H__ */ diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index a41238ffe09..b58dfe7f168 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -353,19 +353,23 @@ public: string clbin = string_printf("cycles_kernel_%s_%s.clbin", device_md5.c_str(), kernel_md5.c_str());; clbin = path_user_get(path_join("cache", clbin)); +#ifndef __APPLE__ if(path_exists(clbin)) { /* if exists already, try use it */ if(!load_binary(kernel_path, clbin)) return false; } else { +#endif /* compile kernel */ if(!compile_kernel(kernel_path, kernel_md5)) return false; +#ifndef __APPLE__ /* save binary for reuse */ save_binary(clbin); } +#endif /* find kernels */ ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index ca775939c09..4d5cf434098 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -58,7 +58,7 @@ public: background = false; output_path = ""; - progressive = true; + progressive = false; passes = INT_MAX; tile_size = 64; min_size = 64; diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index 61f3af7aa10..450090c42f8 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -96,7 +96,7 @@ void TileManager::set_tiles() bool TileManager::done() { - return (state.pass+1 >= passes && state.resolution == 1); + return (state.pass+1 >= passes); } bool TileManager::next() -- cgit v1.2.3 From 5f13b52c67c0ff49d0b49eb3d07697fb2b5700bd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 15 Sep 2011 16:09:42 +0000 Subject: Cycles: fix preview render in 3d view not working on OS X. --- source/blender/makesrna/intern/makesrna.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 39599957a9a..ef51239d57d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2655,6 +2655,11 @@ static const char *cpp_classes = "" "class Array {\n" "public:\n" " T data[Tsize];\n" +"\n" +" Array() {}\n" +" Array(const Array& other) { memcpy(data, other.data, sizeof(T)*Tsize); }\n" +" const Array& operator=(const Array& other) { memcpy(data, other.data, sizeof(T)*Tsize); return *this; }\n" +"\n" " operator T*() { return data; }\n" "};\n" "\n" -- cgit v1.2.3 From 28cb4cb957a7e652e377974feb42a23fb6454e8e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 16 Sep 2011 10:29:30 +0000 Subject: Cycles: reenable opencl binary caching on mac, it's not the cause of the problem. --- intern/cycles/device/device_opencl.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index b58dfe7f168..a41238ffe09 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -353,23 +353,19 @@ public: string clbin = string_printf("cycles_kernel_%s_%s.clbin", device_md5.c_str(), kernel_md5.c_str());; clbin = path_user_get(path_join("cache", clbin)); -#ifndef __APPLE__ if(path_exists(clbin)) { /* if exists already, try use it */ if(!load_binary(kernel_path, clbin)) return false; } else { -#endif /* compile kernel */ if(!compile_kernel(kernel_path, kernel_md5)) return false; -#ifndef __APPLE__ /* save binary for reuse */ save_binary(clbin); } -#endif /* find kernels */ ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr); -- cgit v1.2.3 From 376aede7a6dbe0d5beee4dc5fd89bd8608c36b09 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 16 Sep 2011 12:59:22 +0000 Subject: Cycles: fix crash deleting emitting objects. --- intern/cycles/render/object.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 1059254d5c4..fec1ab7f4c8 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -241,6 +241,7 @@ void ObjectManager::tag_update(Scene *scene) { need_update = true; scene->mesh_manager->need_update = true; + scene->light_manager->need_update = true; } CCL_NAMESPACE_END -- cgit v1.2.3 From 0a5fcf3da3e82fd114095c8c2903d927f15ffc31 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 16 Sep 2011 13:00:09 +0000 Subject: Cycles: fix issue with mix shaders, leading to use of uninitialized memory. --- intern/cycles/render/svm.cpp | 11 +++++++++++ intern/cycles/render/svm.h | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index c4188fda421..8f3682cc349 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -230,6 +230,11 @@ void SVMCompiler::stack_clear_users(ShaderNode *node, set& done) for(int i = 0; i < size; i++) active_stack.users[output->stack_offset + i]--; + + output->stack_offset = SVM_STACK_INVALID; + + foreach(ShaderInput *in, output->links) + in->stack_offset = SVM_STACK_INVALID; } } } @@ -243,6 +248,8 @@ void SVMCompiler::stack_clear_temporary(ShaderNode *node) for(int i = 0; i < size; i++) active_stack.users[input->stack_offset + i]--; + + input->stack_offset = SVM_STACK_INVALID; } } } @@ -397,6 +404,10 @@ void SVMCompiler::generate_closure(ShaderNode *node, set done, Stac /* set jump for mix node, -1 because offset is already incremented when this jump is added to it */ svm_nodes[mix_offset].z = cl2_offset - mix_offset - 1; + + done.insert(node); + stack_clear_users(node, done); + stack_clear_temporary(node); } else { /* execute dependencies for closure */ diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index 05fb85b057f..dfd78cf3c40 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -78,6 +78,27 @@ public: protected: struct Stack { Stack() { memset(users, 0, sizeof(users)); } + Stack(const Stack& other) { memcpy(users, other.users, sizeof(users)); } + Stack& operator=(const Stack& other) { memcpy(users, other.users, sizeof(users)); return *this; } + + bool empty() + { + for(int i = 0; i < SVM_STACK_SIZE; i++) + if(users[i]) + return false; + + return true; + } + + void print() + { + printf("stack <"); + + for(int i = 0; i < SVM_STACK_SIZE; i++) + printf((users[i])? "*": " "); + + printf(">\n"); + } int users[SVM_STACK_SIZE]; }; -- cgit v1.2.3 From 66b1dfae89cc44953bd51c5da962cab437e76972 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 16 Sep 2011 13:14:02 +0000 Subject: Cycles: tweaks to properties and nodes * Passes renamed to samples * Camera lens radius renamed to aperature size/blades/rotation * Glass and fresnel nodes input is now index of refraction * Glossy and velvet fresnel socket removed * Mix/add closure node renamed to mix/add shader node * Blend weight node added for shader mixing weights There is some version patching code for reading existing files, but it's not perfect, so shaders may work a bit different. --- intern/cycles/app/cycles_test.cpp | 30 +++---- intern/cycles/app/cycles_xml.cpp | 2 +- intern/cycles/blender/addon/properties.py | 12 ++- intern/cycles/blender/addon/ui.py | 37 ++++++--- intern/cycles/blender/blender_camera.cpp | 13 ++- intern/cycles/blender/blender_session.cpp | 26 +++--- intern/cycles/blender/blender_shader.cpp | 26 +++++- intern/cycles/blender/blender_sync.cpp | 22 ++--- intern/cycles/device/device.cpp | 2 +- intern/cycles/device/device.h | 2 +- intern/cycles/device/device_cpu.cpp | 4 +- intern/cycles/device/device_cuda.cpp | 16 ++-- intern/cycles/device/device_network.cpp | 24 +++--- intern/cycles/device/device_opencl.cpp | 12 +-- intern/cycles/kernel/kernel.cl | 8 +- intern/cycles/kernel/kernel.cpp | 8 +- intern/cycles/kernel/kernel.cu | 8 +- intern/cycles/kernel/kernel.h | 4 +- intern/cycles/kernel/kernel_camera.h | 26 ++++-- intern/cycles/kernel/kernel_film.h | 8 +- intern/cycles/kernel/kernel_montecarlo.h | 24 ++++++ intern/cycles/kernel/kernel_path.h | 44 +++++----- intern/cycles/kernel/kernel_random.h | 22 ++--- intern/cycles/kernel/kernel_types.h | 19 ++--- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 1 + .../cycles/kernel/osl/nodes/node_blend_weight.osl | 42 ++++++++++ .../kernel/osl/nodes/node_environment_texture.osl | 5 +- intern/cycles/kernel/osl/nodes/node_fresnel.osl | 7 +- intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl | 6 +- .../cycles/kernel/osl/nodes/node_glossy_bsdf.osl | 14 +--- .../cycles/kernel/osl/nodes/node_image_texture.osl | 5 +- .../cycles/kernel/osl/nodes/node_velvet_bsdf.osl | 10 +-- intern/cycles/kernel/svm/svm.h | 3 + intern/cycles/kernel/svm/svm_closure.h | 38 +++------ intern/cycles/kernel/svm/svm_fresnel.h | 44 +++++++++- intern/cycles/kernel/svm/svm_image.h | 18 +++-- intern/cycles/kernel/svm/svm_types.h | 8 +- intern/cycles/render/buffers.cpp | 4 +- intern/cycles/render/buffers.h | 2 +- intern/cycles/render/camera.cpp | 12 ++- intern/cycles/render/camera.h | 4 +- intern/cycles/render/nodes.cpp | 93 +++++++++++++++++----- intern/cycles/render/nodes.h | 5 ++ intern/cycles/render/scene.h | 2 + intern/cycles/render/session.cpp | 60 +++++++------- intern/cycles/render/session.h | 20 ++--- intern/cycles/render/svm.cpp | 9 ++- intern/cycles/render/svm.h | 4 +- intern/cycles/render/tile.cpp | 18 ++--- intern/cycles/render/tile.h | 10 +-- intern/cycles/util/util_progress.h | 24 +++--- .../startup/bl_ui/properties_data_camera.py | 13 ++- source/blender/blenkernel/BKE_node.h | 7 +- source/blender/blenkernel/intern/node.c | 11 +-- source/blender/blenloader/intern/readfile.c | 59 +++++++++++++- source/blender/editors/interface/interface_node.c | 10 +-- source/blender/editors/space_node/node_draw.c | 2 +- source/blender/editors/space_node/node_edit.c | 12 +-- source/blender/editors/space_node/node_header.c | 6 +- source/blender/gpu/intern/gpu_shader_material.glsl | 20 ++--- source/blender/makesdna/DNA_node_types.h | 2 +- source/blender/makesrna/intern/rna_nodetree.c | 12 +-- .../blender/makesrna/intern/rna_nodetree_types.h | 5 +- source/blender/nodes/CMakeLists.txt | 5 +- source/blender/nodes/SHD_node.h | 5 +- .../nodes/intern/SHD_nodes/SHD_add_closure.c | 69 ---------------- .../nodes/intern/SHD_nodes/SHD_add_shader.c | 69 ++++++++++++++++ .../nodes/intern/SHD_nodes/SHD_background.c | 4 +- .../nodes/intern/SHD_nodes/SHD_blend_weight.c | 68 ++++++++++++++++ .../nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glass.c | 6 +- .../nodes/intern/SHD_nodes/SHD_bsdf_glossy.c | 5 +- .../nodes/intern/SHD_nodes/SHD_bsdf_translucent.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_transparent.c | 4 +- .../nodes/intern/SHD_nodes/SHD_bsdf_velvet.c | 5 +- .../blender/nodes/intern/SHD_nodes/SHD_emission.c | 6 +- .../blender/nodes/intern/SHD_nodes/SHD_fresnel.c | 4 +- .../blender/nodes/intern/SHD_nodes/SHD_holdout.c | 4 +- .../nodes/intern/SHD_nodes/SHD_mix_closure.c | 70 ---------------- .../nodes/intern/SHD_nodes/SHD_mix_shader.c | 70 ++++++++++++++++ .../nodes/intern/SHD_nodes/SHD_output_lamp.c | 2 +- .../nodes/intern/SHD_nodes/SHD_output_material.c | 4 +- .../nodes/intern/SHD_nodes/SHD_output_world.c | 4 +- 84 files changed, 901 insertions(+), 541 deletions(-) create mode 100644 intern/cycles/kernel/osl/nodes/node_blend_weight.osl delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c delete mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c create mode 100644 source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp index c16f6f4e99a..27e53ded6db 100644 --- a/intern/cycles/app/cycles_test.cpp +++ b/intern/cycles/app/cycles_test.cpp @@ -66,26 +66,26 @@ static void session_print(const string& str) static void session_print_status() { - int pass; - double total_time, pass_time; + int sample; + double total_time, sample_time; string status, substatus; /* get status */ - options.session->progress.get_pass(pass, total_time, pass_time); + options.session->progress.get_sample(sample, total_time, sample_time); options.session->progress.get_status(status, substatus); if(substatus != "") status += ": " + substatus; /* print status */ - status = string_printf("Pass %d %s", pass, status.c_str()); + status = string_printf("Sample %d %s", sample, status.c_str()); session_print(status); } static void session_init() { options.session = new Session(options.session_params); - options.session->reset(options.width, options.height, options.session_params.passes); + options.session->reset(options.width, options.height, options.session_params.samples); options.session->scene = options.scene; if(options.session_params.background && !options.quiet) @@ -133,18 +133,18 @@ static void display_info(Progress& progress) latency = (elapsed - last); last = elapsed; - int pass; - double total_time, pass_time; + int sample; + double total_time, sample_time; string status, substatus; - progress.get_pass(pass, total_time, pass_time); + progress.get_sample(sample, total_time, sample_time); progress.get_status(status, substatus); if(substatus != "") status += ": " + substatus; - str = string_printf("latency: %.4f pass: %d total: %.4f average: %.4f %s", - latency, pass, total_time, pass_time, status.c_str()); + str = string_printf("latency: %.4f sample: %d total: %.4f average: %.4f %s", + latency, sample, total_time, sample_time, status.c_str()); view_display_info(str.c_str()); } @@ -162,13 +162,13 @@ static void resize(int width, int height) options.height= height; if(options.session) - options.session->reset(options.width, options.height, options.session_params.passes); + options.session->reset(options.width, options.height, options.session_params.samples); } void keyboard(unsigned char key) { if(key == 'r') - options.session->reset(options.width, options.height, options.session_params.passes); + options.session->reset(options.width, options.height, options.session_params.samples); else if(key == 27) // escape options.session->progress.set_cancel("Cancelled"); } @@ -220,7 +220,7 @@ static void options_parse(int argc, const char **argv) "--shadingsys %s", &ssname, "Shading system to use: svm, osl", "--background", &options.session_params.background, "Render in background, without user interface", "--quiet", &options.quiet, "In background mode, don't print progress messages", - "--passes %d", &options.session_params.passes, "Number of passes to render", + "--samples %d", &options.session_params.samples, "Number of samples to render", "--output %s", &options.session_params.output_path, "File path to write output image", "--threads %d", &options.session_params.threads, "CPU Rendering Threads", "--help", &help, "Print help message", @@ -266,8 +266,8 @@ static void options_parse(int argc, const char **argv) fprintf(stderr, "OSL shading system only works with CPU device\n"); exit(EXIT_FAILURE); } - else if(options.session_params.passes < 0) { - fprintf(stderr, "Invalid number of passes: %d\n", options.session_params.passes); + else if(options.session_params.samples < 0) { + fprintf(stderr, "Invalid number of samples: %d\n", options.session_params.samples); exit(EXIT_FAILURE); } else if(options.filepath == "") { diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp index 7c3fb0b3625..c7580642c43 100644 --- a/intern/cycles/app/cycles_xml.cpp +++ b/intern/cycles/app/cycles_xml.cpp @@ -272,7 +272,7 @@ static void xml_read_camera(const XMLReadState& state, pugi::xml_node node) xml_read_float(&cam->nearclip, node, "nearclip"); xml_read_float(&cam->farclip, node, "farclip"); - xml_read_float(&cam->lensradius, node, "lensradius"); // 0.5*focallength/fstop + xml_read_float(&cam->aperturesize, node, "aperturesize"); // 0.5*focallength/fstop xml_read_float(&cam->focaldistance, node, "focaldistance"); xml_read_float(&cam->shutteropen, node, "shutteropen"); xml_read_float(&cam->shutterclose, node, "shutterclose"); diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 5d90223032f..89c2829175c 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -19,6 +19,8 @@ import bpy from bpy.props import * +import math + from cycles import enums class CyclesRenderSettings(bpy.types.PropertyGroup): @@ -35,9 +37,9 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", items=enums.shading_systems, default="GPU_COMPATIBLE") - cls.passes = IntProperty(name="Passes", description="Number of passes to render", + cls.samples = IntProperty(name="Samples", description="Number of samples to render for each pixel", default=10, min=1, max=2147483647) - cls.preview_passes = IntProperty(name="Preview Passes", description="Number of passes to render in the viewport, unlimited if 0", + cls.preview_samples = IntProperty(name="Preview Samples", description="Number of samples to render in the viewport, unlimited if 0", default=0, min=0, max=2147483647) cls.preview_pause = BoolProperty(name="Pause Preview", description="Pause all viewport preview renders", default=False) @@ -99,8 +101,12 @@ class CyclesCameraSettings(bpy.types.PropertyGroup): def register(cls): bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles Camera Settings", description="Cycles camera settings") - cls.lens_radius = FloatProperty(name="Lens radius", description="Lens radius for depth of field", + cls.aperture_size = FloatProperty(name="Aperture Size", description="Radius of the aperture for depth of field", default=0.0, min=0.0, max=10.0) + cls.aperture_blades = IntProperty(name="Aperture Blades", description="Number of blades in aperture for polygonal bokeh (need 3 or more)", + default=0, min=0, max=100) + cls.aperture_rotation = FloatProperty(name="Aperture Rotation", description="Rotation of blades in aperture", + default=0, soft_min=-math.pi, soft_max=math.pi, subtype='ANGLE') @classmethod def unregister(cls): diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 992a698bbdd..86d1f19d096 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -59,9 +59,9 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): col = split.column() sub = col.column(align=True) - sub.label(text="Passes:") - sub.prop(cscene, "passes", text="Render") - sub.prop(cscene, "preview_passes", text="Preview") + sub.label(text="Samples:") + sub.prop(cscene, "samples", text="Render") + sub.prop(cscene, "preview_samples", text="Preview") sub = col.column(align=True) sub.label("Tranparency:") @@ -194,21 +194,38 @@ class Cycles_PT_post_processing(CyclesButtonsPanel, Panel): col = split.column() col.prop(rd, "dither_intensity", text="Dither", slider=True) -class Cycles_PT_camera(CyclesButtonsPanel, Panel): - bl_label = "Cycles" +class CyclesCamera_PT_dof(CyclesButtonsPanel, Panel): + bl_label = "Depth of Field" bl_context = "data" @classmethod def poll(cls, context): - return context.camera + return context.camera and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout - camera = context.camera - ccamera = camera.cycles + cam = context.camera + ccam = cam.cycles - layout.prop(ccamera, "lens_radius") + split = layout.split() + + col = split.column() + col.label("Focus:") + col.prop(cam, "dof_object", text="") + + sub = col.row() + sub.active = cam.dof_object is None + sub.prop(cam, "dof_distance", text="Distance") + + col = split.column() + + col.label("Aperture:") + col.prop(ccam, "aperture_size", text="Size") + + sub = col.column(align=True) + sub.prop(ccam, "aperture_blades", text="Blades") + sub.prop(ccam, "aperture_rotation", text="Rotation") class Cycles_PT_context_material(CyclesButtonsPanel, Panel): bl_label = "Surface" @@ -550,7 +567,7 @@ class CyclesTexture_PT_color(CyclesButtonsPanel, Panel): layout = self.layout layout.label("Color modification options go here."); layout.label("Ramp, brightness, contrast, saturation.") - + def draw_device(self, context): scene = context.scene layout = self.layout diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index 530193247ae..e3b0fbd0a25 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -35,7 +35,10 @@ struct BlenderCamera { float ortho_scale; float lens; - float lensradius; + + float aperturesize; + uint apertureblades; + float aperturerotation; float focaldistance; float2 shift; @@ -90,7 +93,9 @@ static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob) bcam->ortho_scale = b_camera.ortho_scale(); bcam->lens = b_camera.lens(); - bcam->lensradius = RNA_float_get(&ccamera, "lens_radius"); + bcam->aperturesize = RNA_float_get(&ccamera, "aperture_size"); + bcam->apertureblades = RNA_int_get(&ccamera, "aperture_blades"); + bcam->aperturerotation = RNA_float_get(&ccamera, "aperture_rotation"); bcam->focaldistance = blender_camera_focal_distance(b_ob, b_camera); bcam->shift.x = b_camera.shift_x(); @@ -162,7 +167,9 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int /* perspective */ cam->fov = 2.0f*atan(16.0f/bcam->lens/aspectratio); cam->focaldistance = bcam->focaldistance; - cam->lensradius = bcam->lensradius; + cam->aperturesize = bcam->aperturesize; + cam->blades = bcam->apertureblades; + cam->bladesrotation = bcam->aperturerotation; /* transform, note the blender camera points along the negative z-axis */ cam->matrix = bcam->matrix * transform_scale(1.0f, 1.0f, -1.0f); diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 62721b7cf10..c6f016b7971 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -96,7 +96,7 @@ void BlenderSession::create_session() session->set_pause(BlenderSync::get_session_pause(b_scene, background)); /* start rendering */ - session->reset(width, height, session_params.passes); + session->reset(width, height, session_params.samples); session->start(); } @@ -122,11 +122,11 @@ void BlenderSession::write_render_result() /* get result */ RenderBuffers *buffers = session->buffers; float exposure = scene->film->exposure; - double total_time, pass_time; - int pass; - session->progress.get_pass(pass, total_time, pass_time); + double total_time, sample_time; + int sample; + session->progress.get_sample(sample, total_time, sample_time); - float4 *pixels = buffers->copy_from_device(exposure, pass); + float4 *pixels = buffers->copy_from_device(exposure, sample); if(!pixels) return; @@ -158,8 +158,8 @@ void BlenderSession::synchronize() return; } - /* increase passes, but never decrease */ - session->set_passes(session_params.passes); + /* increase samples, but never decrease */ + session->set_samples(session_params.samples); session->set_pause(BlenderSync::get_session_pause(b_scene, background)); /* copy recalc flags, outside of mutex so we can decide to do the real @@ -185,7 +185,7 @@ void BlenderSession::synchronize() /* reset if needed */ if(scene->need_reset()) - session->reset(width, height, session_params.passes); + session->reset(width, height, session_params.samples); } bool BlenderSession::draw(int w, int h) @@ -221,7 +221,7 @@ bool BlenderSession::draw(int w, int h) /* reset if requested */ if(reset) { SessionParams session_params = BlenderSync::get_session_params(b_scene, background); - session->reset(width, height, session_params.passes); + session->reset(width, height, session_params.samples); } } @@ -239,11 +239,11 @@ void BlenderSession::get_status(string& status, string& substatus) void BlenderSession::get_progress(float& progress, double& total_time) { - double pass_time; - int pass; + double sample_time; + int sample; - session->progress.get_pass(pass, total_time, pass_time); - progress = ((float)pass/(float)session->params.passes); + session->progress.get_sample(sample, total_time, sample_time); + progress = ((float)sample/(float)session->params.samples); } void BlenderSession::update_status_progress() diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 362c765b399..cba093edbad 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -190,11 +190,15 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = new FresnelNode(); break; } - case BL::ShaderNode::type_ADD_CLOSURE: { + case BL::ShaderNode::type_BLEND_WEIGHT: { + node = new BlendWeightNode(); + break; + } + case BL::ShaderNode::type_ADD_SHADER: { node = new AddClosureNode(); break; } - case BL::ShaderNode::type_MIX_CLOSURE: { + case BL::ShaderNode::type_MIX_SHADER: { node = new MixClosureNode(); break; } @@ -402,6 +406,20 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * return node; } +static const char *node_socket_map_name(const char *name) +{ + if(strstr(name, "Shader")) { + if(strcmp(name, "Shader") == 0) + return "Closure"; + if(strcmp(name, "Shader1") == 0) + return "Closure1"; + if(strcmp(name, "Shader2") == 0) + return "Closure2"; + } + + return name; +} + static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTree b_ntree, BL::Node *b_group_node, PtrSockMap& sockets_map) { /* add nodes */ @@ -427,7 +445,7 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr node_map[b_node->ptr.data] = node; for(b_node->inputs.begin(b_input); b_input != b_node->inputs.end(); ++b_input) { - ShaderInput *input = node->input(b_input->name().c_str()); + ShaderInput *input = node->input(node_socket_map_name(b_input->name().c_str())); BL::NodeSocket sock(get_node_input(b_group_node, *b_node, b_input->name())); assert(input); @@ -522,7 +540,7 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr /* in case of groups there may not actually be a node inside the group that the group socket connects to, so from_node or to_node may be NULL */ if(from_node && to_node) - graph->connect(from_node->output(from_name.c_str()), to_node->input(to_name.c_str())); + graph->connect(from_node->output(node_socket_map_name(from_name.c_str())), to_node->input(node_socket_map_name(to_name.c_str()))); } } diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index b9d35a02a78..9bb7cb45e35 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -185,13 +185,17 @@ void BlenderSync::sync_render_layer(BL::SpaceView3D b_v3d) else { BL::RenderSettings r = b_scene.render(); BL::RenderSettings::layers_iterator b_rlay; + bool first = true; for(r.layers.begin(b_rlay); b_rlay != r.layers.end(); ++b_rlay) { - render_layer.scene_layer = get_layer(b_scene.layers()); - render_layer.layer = get_layer(b_rlay->layers()); - render_layer.material_override = b_rlay->material_override(); + /* single layer for now */ + if(first) { + render_layer.scene_layer = get_layer(b_scene.layers()); + render_layer.layer = get_layer(b_rlay->layers()); + render_layer.material_override = b_rlay->material_override(); - break; /* single layer for now */ + first = false; + } } } } @@ -255,14 +259,14 @@ SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background /* Background */ params.background = background; - /* passes */ + /* samples */ if(background) { - params.passes = get_int(cscene, "passes"); + params.samples = get_int(cscene, "samples"); } else { - params.passes = get_int(cscene, "preview_passes"); - if(params.passes == 0) - params.passes = INT_MAX; + params.samples = get_int(cscene, "preview_samples"); + if(params.samples == 0) + params.samples = INT_MAX; } /* other parameters */ diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 6ba50154dac..f43ccffe461 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -36,7 +36,7 @@ CCL_NAMESPACE_BEGIN DeviceTask::DeviceTask(Type type_) : type(type_), x(0), y(0), w(0), h(0), rng_state(0), rgba(0), buffer(0), - pass(0), resolution(0), + sample(0), resolution(0), displace_input(0), displace_offset(0), displace_x(0), displace_w(0) { } diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index aa9cb9eb8f4..0b3c66dbb2c 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -58,7 +58,7 @@ public: device_ptr rng_state; device_ptr rgba; device_ptr buffer; - int pass; + int sample; int resolution; device_ptr displace_input; diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 3a3ae685395..2409cc65998 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -152,7 +152,7 @@ public: 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, (float4*)task.buffer, (unsigned int*)task.rng_state, task.pass, x, y); + kernel_cpu_path_trace(kg, (float4*)task.buffer, (unsigned int*)task.rng_state, task.sample, x, y); if(tasks.worker_cancel()) break; @@ -168,7 +168,7 @@ public: { for(int y = task.y; y < task.y + task.h; y++) { for(int x = task.x; x < task.x + task.w; x++) - kernel_cpu_tonemap(kg, (uchar4*)task.rgba, (float4*)task.buffer, task.pass, task.resolution, x, y); + kernel_cpu_tonemap(kg, (uchar4*)task.rgba, (float4*)task.buffer, task.sample, task.resolution, x, y); } } diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 7fc0afce1ac..3773dda7631 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -455,11 +455,11 @@ public: cuda_assert(cuParamSetv(cuPathTrace, offset, &d_rng_state, sizeof(d_rng_state))) offset += sizeof(d_rng_state); - int pass = task.pass; - offset = cuda_align_up(offset, __alignof(pass)); + int sample = task.sample; + offset = cuda_align_up(offset, __alignof(sample)); - cuda_assert(cuParamSeti(cuPathTrace, offset, task.pass)) - offset += sizeof(task.pass); + cuda_assert(cuParamSeti(cuPathTrace, offset, task.sample)) + offset += sizeof(task.sample); cuda_assert(cuParamSeti(cuPathTrace, offset, task.x)) offset += sizeof(task.x); @@ -513,11 +513,11 @@ public: cuda_assert(cuParamSetv(cuFilmConvert, offset, &d_buffer, sizeof(d_buffer))) offset += sizeof(d_buffer); - int pass = task.pass; - offset = cuda_align_up(offset, __alignof(pass)); + int sample = task.sample; + offset = cuda_align_up(offset, __alignof(sample)); - cuda_assert(cuParamSeti(cuFilmConvert, offset, task.pass)) - offset += sizeof(task.pass); + cuda_assert(cuParamSeti(cuFilmConvert, offset, task.sample)) + offset += sizeof(task.sample); cuda_assert(cuParamSeti(cuFilmConvert, offset, task.resolution)) offset += sizeof(task.resolution); diff --git a/intern/cycles/device/device_network.cpp b/intern/cycles/device/device_network.cpp index 0feba34f713..af7d90478cf 100644 --- a/intern/cycles/device/device_network.cpp +++ b/intern/cycles/device/device_network.cpp @@ -178,22 +178,22 @@ public: #endif } - void path_trace(int x, int y, int w, int h, device_ptr buffer, device_ptr rng_state, int pass) + void path_trace(int x, int y, int w, int h, device_ptr buffer, device_ptr rng_state, int sample) { #if 0 RPCSend snd(socket, "path_trace"); - snd.archive & x & y & w & h & buffer & rng_state & pass; + snd.archive & x & y & w & h & buffer & rng_state & sample; snd.write(); #endif } - void tonemap(int x, int y, int w, int h, device_ptr rgba, device_ptr buffer, int pass, int resolution) + void tonemap(int x, int y, int w, int h, device_ptr rgba, device_ptr buffer, int sample, int resolution) { #if 0 RPCSend snd(socket, "tonemap"); - snd.archive & x & y & w & h & rgba & buffer & pass & resolution; + snd.archive & x & y & w & h & rgba & buffer & sample & resolution; snd.write(); #endif } @@ -201,9 +201,9 @@ public: void task_add(DeviceTask& task) { if(task.type == DeviceTask::TONEMAP) - tonemap(task.x, task.y, task.w, task.h, task.rgba, task.buffer, task.pass, task.resolution); + tonemap(task.x, task.y, task.w, task.h, task.rgba, task.buffer, task.sample, task.resolution); else if(task.type == DeviceTask::PATH_TRACE) - path_trace(task.x, task.y, task.w, task.h, task.buffer, task.rng_state, task.pass); + path_trace(task.x, task.y, task.w, task.h, task.buffer, task.rng_state, task.sample); } void task_wait() @@ -355,20 +355,20 @@ void Device::server_run() #if 0 device_ptr buffer, rng_state; int x, y, w, h; - int pass; + int sample; - *rcv.archive & x & y & w & h & buffer & rng_state & pass; - path_trace(x, y, w, h, buffer, rng_state, pass); + *rcv.archive & x & y & w & h & buffer & rng_state & sample; + path_trace(x, y, w, h, buffer, rng_state, sample); #endif } else if(rcv.name == "tonemap") { #if 0 device_ptr rgba, buffer; int x, y, w, h; - int pass, resolution; + int sample, resolution; - *rcv.archive & x & y & w & h & rgba & buffer & pass & resolution; - tonemap(x, y, w, h, rgba, buffer, pass, resolution); + *rcv.archive & x & y & w & h & rgba & buffer & sample & resolution; + tonemap(x, y, w, h, rgba, buffer, sample, resolution); #endif } } diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index a41238ffe09..a87b12786b1 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -502,9 +502,9 @@ public: cl_int d_y = task.y; cl_int d_w = task.w; cl_int d_h = task.h; - cl_int d_pass = task.pass; + cl_int d_sample = task.sample; - /* pass arguments */ + /* sample arguments */ int narg = 0; ciErr = 0; @@ -516,7 +516,7 @@ public: ciErr |= set_kernel_arg_mem(ckPathTraceKernel, &narg, #name); #include "kernel_textures.h" - ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_pass), (void*)&d_pass); + ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_sample), (void*)&d_sample); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_x), (void*)&d_x); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_y), (void*)&d_y); ciErr |= clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_w), (void*)&d_w); @@ -575,10 +575,10 @@ public: cl_int d_y = task.y; cl_int d_w = task.w; cl_int d_h = task.h; - cl_int d_pass = task.pass; + cl_int d_sample = task.sample; cl_int d_resolution = task.resolution; - /* pass arguments */ + /* sample arguments */ int narg = 0; ciErr = 0; @@ -590,7 +590,7 @@ public: ciErr |= set_kernel_arg_mem(ckFilmConvertKernel, &narg, #name); #include "kernel_textures.h" - ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_pass), (void*)&d_pass); + ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_sample), (void*)&d_sample); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_resolution), (void*)&d_resolution); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_x), (void*)&d_x); ciErr |= clSetKernelArg(ckFilmConvertKernel, narg++, sizeof(d_y), (void*)&d_y); diff --git a/intern/cycles/kernel/kernel.cl b/intern/cycles/kernel/kernel.cl index 007a5f6de6a..48bee8eef97 100644 --- a/intern/cycles/kernel/kernel.cl +++ b/intern/cycles/kernel/kernel.cl @@ -37,7 +37,7 @@ __kernel void kernel_ocl_path_trace( int name##_width, #include "kernel_textures.h" - int pass, + int sample, int sx, int sy, int sw, int sh) { KernelGlobals kglobals, *kg = &kglobals; @@ -53,7 +53,7 @@ __kernel void kernel_ocl_path_trace( int y = sy + get_global_id(1); if(x < sx + sw && y < sy + sh) - kernel_path_trace(kg, buffer, rng_state, pass, x, y); + kernel_path_trace(kg, buffer, rng_state, sample, x, y); } __kernel void kernel_ocl_tonemap( @@ -66,7 +66,7 @@ __kernel void kernel_ocl_tonemap( int name##_width, #include "kernel_textures.h" - int pass, int resolution, + int sample, int resolution, int sx, int sy, int sw, int sh) { KernelGlobals kglobals, *kg = &kglobals; @@ -82,7 +82,7 @@ __kernel void kernel_ocl_tonemap( int y = sy + get_global_id(1); if(x < sx + sw && y < sy + sh) - kernel_film_tonemap(kg, rgba, buffer, pass, resolution, x, y); + kernel_film_tonemap(kg, rgba, buffer, sample, resolution, x, y); } /*__kernel void kernel_ocl_displace(__global uint4 *input, __global float3 *offset, int sx) diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp index 01682d11f33..7e5fa25c662 100644 --- a/intern/cycles/kernel/kernel.cpp +++ b/intern/cycles/kernel/kernel.cpp @@ -269,16 +269,16 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t /* Path Tracing */ -void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int pass, int x, int y) +void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int sample, int x, int y) { - kernel_path_trace(kg, buffer, rng_state, pass, x, y); + kernel_path_trace(kg, buffer, rng_state, sample, x, y); } /* Tonemapping */ -void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int pass, int resolution, int x, int y) +void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int sample, int resolution, int x, int y) { - kernel_film_tonemap(kg, rgba, buffer, pass, resolution, x, y); + kernel_film_tonemap(kg, rgba, buffer, sample, resolution, x, y); } /* Displacement */ diff --git a/intern/cycles/kernel/kernel.cu b/intern/cycles/kernel/kernel.cu index 5e5b445ac2c..75415a00b00 100644 --- a/intern/cycles/kernel/kernel.cu +++ b/intern/cycles/kernel/kernel.cu @@ -26,22 +26,22 @@ #include "kernel_path.h" #include "kernel_displace.h" -extern "C" __global__ void kernel_cuda_path_trace(float4 *buffer, uint *rng_state, int pass, int sx, int sy, int sw, int sh) +extern "C" __global__ void kernel_cuda_path_trace(float4 *buffer, uint *rng_state, int sample, int sx, int sy, int sw, int sh) { int x = sx + blockDim.x*blockIdx.x + threadIdx.x; int y = sy + blockDim.y*blockIdx.y + threadIdx.y; if(x < sx + sw && y < sy + sh) - kernel_path_trace(NULL, buffer, rng_state, pass, x, y); + kernel_path_trace(NULL, buffer, rng_state, sample, x, y); } -extern "C" __global__ void kernel_cuda_tonemap(uchar4 *rgba, float4 *buffer, int pass, int resolution, int sx, int sy, int sw, int sh) +extern "C" __global__ void kernel_cuda_tonemap(uchar4 *rgba, float4 *buffer, int sample, int resolution, int sx, int sy, int sw, int sh) { int x = sx + blockDim.x*blockIdx.x + threadIdx.x; int y = sy + blockDim.y*blockIdx.y + threadIdx.y; if(x < sx + sw && y < sy + sh) - kernel_film_tonemap(NULL, rgba, buffer, pass, resolution, x, y); + kernel_film_tonemap(NULL, rgba, buffer, sample, resolution, x, y); } extern "C" __global__ void kernel_cuda_displace(uint4 *input, float3 *offset, int sx) diff --git a/intern/cycles/kernel/kernel.h b/intern/cycles/kernel/kernel.h index 2bab585c6e6..7f60730e8bf 100644 --- a/intern/cycles/kernel/kernel.h +++ b/intern/cycles/kernel/kernel.h @@ -36,8 +36,8 @@ bool kernel_osl_use(KernelGlobals *kg); void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t size); void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height); -void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int pass, int x, int y); -void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int pass, int resolution, int x, int y); +void kernel_cpu_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int sample, int x, int y); +void kernel_cpu_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int sample, int resolution, int x, int y); void kernel_cpu_displace(KernelGlobals *kg, uint4 *input, float3 *offset, int i); diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/kernel_camera.h index 1f93394e078..c2828c20eee 100644 --- a/intern/cycles/kernel/kernel_camera.h +++ b/intern/cycles/kernel/kernel_camera.h @@ -20,6 +20,21 @@ CCL_NAMESPACE_BEGIN /* Perspective Camera */ +__device float2 camera_sample_aperture(KernelGlobals *kg, float u, float v) +{ + float blades = kernel_data.cam.blades; + + if(blades == 0.0f) { + /* sample disk */ + return concentric_sample_disk(u, v); + } + else { + /* sample polygon */ + float rotation = kernel_data.cam.bladesrotation; + return regular_polygon_sample(blades, rotation, u, v); + } +} + __device void camera_sample_perspective(KernelGlobals *kg, float raster_x, float raster_y, float lens_u, float lens_v, Ray *ray) { /* create ray form raster position */ @@ -30,14 +45,11 @@ __device void camera_sample_perspective(KernelGlobals *kg, float raster_x, float ray->D = Pcamera; /* modify ray for depth of field */ - float lensradius = kernel_data.cam.lensradius; - - if(lensradius > 0.0f) { - /* sample point on lens */ - float2 lensuv; + float aperturesize = kernel_data.cam.aperturesize; - lensuv = concentric_sample_disk(lens_u, lens_v); - lensuv *= lensradius; + 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 */ float ft = kernel_data.cam.focaldistance/ray->D.z; diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/kernel_film.h index f6351a73295..4373701452e 100644 --- a/intern/cycles/kernel/kernel_film.h +++ b/intern/cycles/kernel/kernel_film.h @@ -18,9 +18,9 @@ CCL_NAMESPACE_BEGIN -__device float4 film_map(KernelGlobals *kg, float4 irradiance, int pass) +__device float4 film_map(KernelGlobals *kg, float4 irradiance, int sample) { - float scale = 1.0f/(float)(pass+1); + float scale = 1.0f/(float)(sample+1); float exposure = kernel_data.film.exposure; float4 result = irradiance*scale; @@ -48,13 +48,13 @@ __device uchar4 film_float_to_byte(float4 color) return result; } -__device void kernel_film_tonemap(KernelGlobals *kg, __global uchar4 *rgba, __global float4 *buffer, int pass, int resolution, int x, int y) +__device void kernel_film_tonemap(KernelGlobals *kg, __global uchar4 *rgba, __global float4 *buffer, int sample, int resolution, int x, int y) { int w = kernel_data.cam.width; int index = x + y*w; float4 irradiance = buffer[index]; - float4 float_result = film_map(kg, irradiance, pass); + float4 float_result = film_map(kg, irradiance, sample); uchar4 byte_result = film_float_to_byte(float_result); rgba[index] = byte_result; diff --git a/intern/cycles/kernel/kernel_montecarlo.h b/intern/cycles/kernel/kernel_montecarlo.h index 6f3a3dd3421..5d9afb6418f 100644 --- a/intern/cycles/kernel/kernel_montecarlo.h +++ b/intern/cycles/kernel/kernel_montecarlo.h @@ -172,6 +172,30 @@ __device float2 concentric_sample_disk(float u1, float u2) return make_float2(r * cosf(theta), r * sinf(theta)); } +__device float2 regular_polygon_sample(float corners, float rotation, float u, float v) +{ + /* sample corner number and reuse u */ + float corner = floorf(u*corners); + u = u*corners - corner; + + /* uniform sampled triangle weights */ + u = sqrtf(u); + v = v*u; + u = 1.0f - u; + + /* point in triangle */ + float angle = M_PI_F/corners; + float2 p = make_float2((u + v)*cosf(angle), (u - v)*sinf(angle)); + + /* rotate */ + rotation += corner*2.0f*angle; + + float cr = cosf(rotation); + float sr = sinf(rotation); + + return make_float2(cr*p.x - sr*p.y, sr*p.x + cr*p.y); +} + /* Spherical coordinates <-> Cartesion direction */ __device float2 direction_to_spherical(float3 dir) diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 815eb4a1d53..d6977c24c53 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -34,22 +34,22 @@ CCL_NAMESPACE_BEGIN #ifdef __MODIFY_TP__ -__device float3 path_terminate_modified_throughput(KernelGlobals *kg, __global float3 *buffer, int x, int y, int pass) +__device float3 path_terminate_modified_throughput(KernelGlobals *kg, __global float3 *buffer, int x, int y, int sample) { /* modify throughput to influence path termination probability, to avoid darker regions receiving fewer samples than lighter regions. also RGB are weighted differently. proper validation still remains to be done. */ const float3 weights = make_float3(1.0f, 1.33f, 0.66f); const float3 one = make_float3(1.0f, 1.0f, 1.0f); - const int minpass = 5; + const int minsample = 5; const float minL = 0.1f; - if(pass >= minpass) { + if(sample >= minsample) { float3 L = buffer[x + y*kernel_data.cam.width]; float3 Lmin = make_float3(minL, minL, minL); - float correct = (float)(pass+1)/(float)pass; + float correct = (float)(sample+1)/(float)sample; - L = film_map(L*correct, pass); + L = film_map(L*correct, sample); return weights/clamp(L, Lmin, one); } @@ -242,7 +242,7 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra return result; } -__device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray ray, float3 throughput) +__device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, Ray ray, float3 throughput) { /* initialize */ float3 L = make_float3(0.0f, 0.0f, 0.0f); @@ -284,7 +284,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray /* setup shading */ ShaderData sd; shader_setup_from_ray(kg, &sd, &isect, &ray); - float rbsdf = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF); + float rbsdf = path_rng(kg, rng, sample, rng_offset + PRNG_BSDF); shader_eval_surface(kg, &sd, rbsdf, state.flag); #ifdef __HOLDOUT__ @@ -308,7 +308,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray mainly due to the mixed in MIS that we use. gives too many unneeded shader evaluations, only need emission if we are going to terminate */ float probability = path_state_terminate_probability(kg, &state, throughput); - float terminate = path_rng(kg, rng, pass, rng_offset + PRNG_TERMINATE); + float terminate = path_rng(kg, rng, sample, rng_offset + PRNG_TERMINATE); if(terminate >= probability) break; @@ -319,10 +319,10 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray if(kernel_data.integrator.use_emission) { /* sample illumination from lights to find path contribution */ if(sd.flag & SD_BSDF_HAS_EVAL) { - float light_t = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT); - float light_o = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_F); - float light_u = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_U); - float light_v = path_rng(kg, rng, pass, rng_offset + PRNG_LIGHT_V); + float light_t = path_rng(kg, rng, sample, rng_offset + PRNG_LIGHT); + float light_o = path_rng(kg, rng, sample, rng_offset + PRNG_LIGHT_F); + float light_u = path_rng(kg, rng, sample, rng_offset + PRNG_LIGHT_U); + float light_v = path_rng(kg, rng, sample, rng_offset + PRNG_LIGHT_V); Ray light_ray; float3 light_L; @@ -356,8 +356,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray float3 bsdf_eval; float3 bsdf_omega_in; differential3 bsdf_domega_in; - float bsdf_u = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF_U); - float bsdf_v = path_rng(kg, rng, pass, rng_offset + PRNG_BSDF_V); + float bsdf_u = path_rng(kg, rng, sample, rng_offset + PRNG_BSDF_U); + float bsdf_v = path_rng(kg, rng, sample, rng_offset + PRNG_BSDF_V); int label; label = shader_bsdf_sample(kg, &sd, bsdf_u, bsdf_v, &bsdf_eval, @@ -392,7 +392,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int pass, Ray return make_float4(L.x, L.y, L.z, 1.0f - Ltransparent); } -__device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __global uint *rng_state, int pass, int x, int y) +__device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __global uint *rng_state, int sample, int x, int y) { /* initialize random numbers */ RNG rng; @@ -400,29 +400,29 @@ __device void kernel_path_trace(KernelGlobals *kg, __global float4 *buffer, __gl float filter_u; float filter_v; - path_rng_init(kg, rng_state, pass, &rng, x, y, &filter_u, &filter_v); + path_rng_init(kg, rng_state, sample, &rng, x, y, &filter_u, &filter_v); /* sample camera ray */ Ray ray; - float lens_u = path_rng(kg, &rng, pass, PRNG_LENS_U); - float lens_v = path_rng(kg, &rng, pass, PRNG_LENS_V); + float lens_u = path_rng(kg, &rng, sample, PRNG_LENS_U); + float lens_v = path_rng(kg, &rng, sample, PRNG_LENS_V); camera_sample(kg, x, y, filter_u, filter_v, lens_u, lens_v, &ray); /* integrate */ #ifdef __MODIFY_TP__ - float3 throughput = path_terminate_modified_throughput(kg, buffer, x, y, pass); - float4 L = kernel_path_integrate(kg, &rng, pass, ray, throughput)/throughput; + float3 throughput = path_terminate_modified_throughput(kg, buffer, x, y, sample); + float4 L = kernel_path_integrate(kg, &rng, sample, ray, throughput)/throughput; #else float3 throughput = make_float3(1.0f, 1.0f, 1.0f); - float4 L = kernel_path_integrate(kg, &rng, pass, ray, throughput); + float4 L = kernel_path_integrate(kg, &rng, sample, ray, throughput); #endif /* accumulate result in output buffer */ int index = x + y*kernel_data.cam.width; - if(pass == 0) + if(sample == 0) buffer[index] = L; else buffer[index] += L; diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h index 6c2daafb061..13cf4df8b8c 100644 --- a/intern/cycles/kernel/kernel_random.h +++ b/intern/cycles/kernel/kernel_random.h @@ -95,7 +95,7 @@ __device uint sobol_lookup(const uint m, const uint frame, const uint ex, const return index; } -__device_inline float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimension) +__device_inline float path_rng(KernelGlobals *kg, RNG *rng, int sample, int dimension) { #ifdef __SOBOL_FULL_SCREEN__ uint result = sobol_dimension(kg, *rng, dimension); @@ -103,7 +103,7 @@ __device_inline float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimens return r; #else /* compute sobol sequence value using direction vectors */ - uint result = sobol_dimension(kg, pass, dimension); + uint result = sobol_dimension(kg, sample, dimension); float r = (float)result * (1.0f/(float)0xFFFFFFFF); /* Cranly-Patterson rotation using rng seed */ @@ -118,13 +118,13 @@ __device_inline float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimens #endif } -__device_inline void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int pass, RNG *rng, int x, int y, float *fx, float *fy) +__device_inline void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int sample, RNG *rng, int x, int y, float *fx, float *fy) { #ifdef __SOBOL_FULL_SCREEN__ uint px, py; uint bits = 16; /* limits us to 65536x65536 and 65536 samples */ uint size = 1 << bits; - uint frame = pass; + uint frame = sample; *rng = sobol_lookup(bits, frame, x, y, &px, &py); @@ -133,8 +133,8 @@ __device_inline void path_rng_init(KernelGlobals *kg, __global uint *rng_state, #else *rng = rng_state[x + y*kernel_data.cam.width]; - *fx = path_rng(kg, rng, pass, PRNG_FILTER_U); - *fy = path_rng(kg, rng, pass, PRNG_FILTER_V); + *fx = path_rng(kg, rng, sample, PRNG_FILTER_U); + *fy = path_rng(kg, rng, sample, PRNG_FILTER_V); #endif } @@ -147,25 +147,25 @@ __device void path_rng_end(KernelGlobals *kg, __global uint *rng_state, RNG rng, /* Linear Congruential Generator */ -__device float path_rng(KernelGlobals *kg, RNG *rng, int pass, int dimension) +__device float path_rng(KernelGlobals *kg, RNG *rng, int sample, int dimension) { /* implicit mod 2^32 */ *rng = (1103515245*(*rng) + 12345); return (float)*rng * (1.0f/(float)0xFFFFFFFF); } -__device void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int pass, RNG *rng, int x, int y, float *fx, float *fy) +__device void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int sample, RNG *rng, int x, int y, float *fx, float *fy) { /* load state */ *rng = rng_state[x + y*kernel_data.cam.width]; - *fx = path_rng(kg, rng, pass, PRNG_FILTER_U); - *fy = path_rng(kg, rng, pass, PRNG_FILTER_V); + *fx = path_rng(kg, rng, sample, PRNG_FILTER_U); + *fy = path_rng(kg, rng, sample, PRNG_FILTER_V); } __device void path_rng_end(KernelGlobals *kg, __global uint *rng_state, RNG rng, int x, int y) { - /* store state for next pass */ + /* store state for next sample */ rng_state[x + y*kernel_data.cam.width] = rng; } diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index d3012324739..8083da971ed 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -288,14 +288,6 @@ typedef struct KernelCamera { Transform cameratoworld; Transform rastertocamera; - /* depth of field */ - float lensradius; - float focaldistance; - - /* motion blur */ - float shutteropen; - float shutterclose; - /* differentials */ float3 dx; #ifndef WITH_OPENCL @@ -306,10 +298,19 @@ typedef struct KernelCamera { float pad2; #endif + /* depth of field */ + float aperturesize; + float blades; + float bladesrotation; + float focaldistance; + + /* motion blur */ + float shutteropen; + float shutterclose; + /* clipping */ float nearclip; float cliplength; - float pad3, pad4; /* more matrices */ Transform screentoworld; diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 365cc42ad6b..7d37bb09d71 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -30,6 +30,7 @@ set(osl_sources node_mix.osl node_mix_closure.osl node_musgrave_texture.osl + node_blend_weight_texture.osl node_noise_texture.osl node_output_displacement.osl node_output_surface.osl diff --git a/intern/cycles/kernel/osl/nodes/node_blend_weight.osl b/intern/cycles/kernel/osl/nodes/node_blend_weight.osl new file mode 100644 index 00000000000..d834819ef3a --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_blend_weight.osl @@ -0,0 +1,42 @@ +/* + * 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 "node_fresnel.h" + +shader node_blend_weight( + float Blend = 0.3, + normal Normal = N, + output float Fresnel = 0.0, + output float Facing = 0.0) +{ + float f = max(1.0 - Blend, 1e-5); + Fresnel = fresnel_dielectric(I, Normal, backfacing()? f: 1.0/f); + + Facing = abs(dot(I, Normal)); + + if(Blend != 0.5) { + Blend = clamp(Blend, 0.0, 1.0); + Blend = (Blend < 0.5)? 2.0*Blend: 0.5/(1.0 - Blend); + + Facing = powf(Facing, Blend); + } + + Facing = 1.0 - Facing; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl index 267db7bad2d..3ad806781eb 100644 --- a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl @@ -23,9 +23,10 @@ shader node_environment_texture( vector Vector = P, string filename = "", string color_space = "sRGB", - output color Color = color(0.0, 0.0, 0.0)) + output color Color = color(0.0, 0.0, 0.0), + output float Alpha = 1.0) { - Color = (color)environment(filename, Vector); + Color = (color)environment(filename, Vector, "alpha", Alpha); if(color_space == "sRGB") Color = color_srgb_to_scene_linear(Color); diff --git a/intern/cycles/kernel/osl/nodes/node_fresnel.osl b/intern/cycles/kernel/osl/nodes/node_fresnel.osl index ddc86db130f..3af4448b43f 100644 --- a/intern/cycles/kernel/osl/nodes/node_fresnel.osl +++ b/intern/cycles/kernel/osl/nodes/node_fresnel.osl @@ -20,11 +20,12 @@ #include "node_fresnel.h" shader node_fresnel( - float Fresnel = 0.3, + float IOR = 1.45, normal Normal = N, output float Fac = 0.0) { - float f = max(1.0 - Fresnel, 0.00001); - Fac = fresnel_dielectric(I, Normal, backfacing()? f: 1.0/f); + float f = max(IOR, 1.0 + 1e-5); + float eta = backfacing()? 1.0/f: f; + Fac = fresnel_dielectric(I, Normal, eta); } diff --git a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl index af946048011..cc2104af56f 100644 --- a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl +++ b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl @@ -23,12 +23,12 @@ shader node_glass_bsdf( color Color = color(0.8, 0.8, 0.8), string distribution = "Sharp", float Roughness = 0.2, - float Fresnel = 0.3, + float IOR = 1.45, normal Normal = N, output closure color BSDF = diffuse(Normal)) { - float f = clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); - float eta = backfacing()? f: 1.0/f; + float f = max(IOR, 1.0 + 1e-5); + float eta = backfacing()? 1.0/f: f; float Fr = fresnel_dielectric(I, Normal, eta); if(distribution == "Sharp") diff --git a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl index ca6bee74b38..aa446b66cfb 100644 --- a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl +++ b/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl @@ -23,23 +23,15 @@ shader node_glossy_bsdf( color Color = color(0.8, 0.8, 0.8), string distribution = "Beckmann", float Roughness = 0.2, - float Fresnel = 1.0, normal Normal = N, output closure color BSDF = diffuse(Normal)) { - float Fr = 1.0; - - if(Fresnel < 1.0) { - float eta = 1.0/clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); - Fr = fresnel_dielectric(I, Normal, eta); - } - if(distribution == "Sharp") - BSDF = (Fr*Color)*reflection(Normal); + BSDF = Color*reflection(Normal); else if(distribution == "Beckmann") - BSDF = (Fr*Color)*microfacet_beckmann(Normal, Roughness); + BSDF = Color*microfacet_beckmann(Normal, Roughness); else if(distribution == "GGX") - BSDF = (Fr*Color)*microfacet_ggx(Normal, Roughness); + BSDF = Color*microfacet_ggx(Normal, Roughness); } diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/osl/nodes/node_image_texture.osl index 85025db7c74..38126401d76 100644 --- a/intern/cycles/kernel/osl/nodes/node_image_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_image_texture.osl @@ -23,9 +23,10 @@ shader node_image_texture( point Vector = P, string filename = "", string color_space = "sRGB", - output color Color = color(0.0, 0.0, 0.0)) + output color Color = color(0.0, 0.0, 0.0), + output float Alpha = 1.0) { - Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic"); + Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic", "alpha", Alpha); if(color_space == "sRGB") Color = color_srgb_to_scene_linear(Color); diff --git a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl index 2b6219f6325..7a336c148db 100644 --- a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl +++ b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl @@ -22,19 +22,11 @@ shader node_velvet_bsdf( color Color = color(0.8, 0.8, 0.8), float Sigma = 0.0, - float Fresnel = 0.3, normal Normal = N, output closure color BSDF = diffuse(Normal)) { - float Fr = 1.0; - - if(Fresnel < 1.0) { - float eta = 1.0/clamp(1.0 - Fresnel, 1e-5, 1.0 - 1e-5); - Fr = fresnel_dielectric(I, Normal, eta); - } - float sigma = clamp(Sigma, 0.0, 1.0); - BSDF = (Fr*Color)*ashikhmin_velvet(Normal, sigma); + BSDF = Color*ashikhmin_velvet(Normal, sigma); } diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index a5d95c1b394..65d92a91df9 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -282,6 +282,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_FRESNEL: svm_node_fresnel(sd, stack, node.y, node.z, node.w); break; + case NODE_BLEND_WEIGHT: + svm_node_blend_weight(sd, stack, node); + break; case NODE_SET_DISPLACEMENT: svm_node_set_displacement(sd, stack, node.y); break; diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index aaf2926f60d..68f91408f1f 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -102,23 +102,19 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) break; #endif - ShaderClosure *sc = svm_node_closure_get(sd); svm_node_closure_set_mix_weight(sc, mix_weight); - /* index of refraction */ - float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); - eta = 1.0f/eta; - - /* fresnel */ - float cosNO = dot(sd->N, sd->I); - float fresnel = fresnel_dielectric_cos(cosNO, eta); float roughness = param1; - sc->weight *= fresnel; - /* setup bsdf */ - svm_node_glossy_setup(sd, sc, type, eta, roughness, false); + if(type == CLOSURE_BSDF_REFLECTION_ID) + bsdf_reflection_setup(sd, sc); + else if(type == CLOSURE_BSDF_MICROFACET_BECKMANN_ID) + bsdf_microfacet_beckmann_setup(sd, sc, roughness, 1.0f, false); + else + bsdf_microfacet_ggx_setup(sd, sc, roughness, 1.0f, false); + break; } case CLOSURE_BSDF_REFRACTION_ID: @@ -128,10 +124,9 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) break; #endif - /* index of refraction */ - float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); - eta = (sd->flag & SD_BACKFACING)? eta: 1.0f/eta; + float eta = fmaxf(param2, 1.0f + 1e-5f); + eta = (sd->flag & SD_BACKFACING)? 1.0f/eta: eta; /* fresnel */ float cosNO = dot(sd->N, sd->I); @@ -173,7 +168,6 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st if(kernel_data.integrator.no_caustics && (path_flag & PATH_RAY_DIFFUSE)) break; #endif - ShaderClosure *sc = svm_node_closure_get(sd); svm_node_closure_set_mix_weight(sc, mix_weight); @@ -190,17 +184,6 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st /* sigma */ float sigma = clamp(param1, 0.0f, 1.0f); - - /* index of refraction */ - float eta = clamp(1.0f-param2, 1e-5f, 1.0f - 1e-5f); - eta = 1.0f/eta; - - /* fresnel */ - float cosNO = dot(sd->N, sd->I); - float fresnel = fresnel_dielectric_cos(cosNO, eta); - - sc->weight *= fresnel; - bsdf_ashikhmin_velvet_setup(sd, sc, sigma); break; } @@ -308,7 +291,8 @@ __device void svm_node_emission_weight(KernelGlobals *kg, ShaderData *sd, float uint strength_offset = node.z; uint total_power = node.w; - float3 weight = stack_load_float3(stack, color_offset)*stack_load_float(stack, strength_offset); + float strength = stack_load_float(stack, strength_offset); + float3 weight = stack_load_float3(stack, color_offset)*strength; if(total_power && sd->object != ~0) weight /= object_surface_area(kg, sd->object); diff --git a/intern/cycles/kernel/svm/svm_fresnel.h b/intern/cycles/kernel/svm/svm_fresnel.h index f6122fa3071..1b9d99506e3 100644 --- a/intern/cycles/kernel/svm/svm_fresnel.h +++ b/intern/cycles/kernel/svm/svm_fresnel.h @@ -20,12 +20,48 @@ CCL_NAMESPACE_BEGIN /* Fresnel Node */ -__device void svm_node_fresnel(ShaderData *sd, float *stack, uint fresnel_offset, uint fresnel_value, uint out_offset) +__device void svm_node_fresnel(ShaderData *sd, float *stack, uint ior_offset, uint ior_value, uint out_offset) { - float fresnel = (stack_valid(fresnel_offset))? stack_load_float(stack, fresnel_offset): __int_as_float(fresnel_value); - fresnel = fmaxf(1.0f - fresnel, 0.00001f); + float eta = (stack_valid(ior_offset))? stack_load_float(stack, ior_offset): __int_as_float(ior_value); + eta = fmaxf(eta, 1.0f + 1e-5f); + eta = (sd->flag & SD_BACKFACING)? 1.0f/eta: eta; - float f = fresnel_dielectric_cos(dot(sd->I, sd->N), (sd->flag & SD_BACKFACING)? fresnel: 1.0f/fresnel); + float f = fresnel_dielectric_cos(dot(sd->I, sd->N), eta); + + stack_store_float(stack, out_offset, f); +} + +/* Blend Weight Node */ + +__device void svm_node_blend_weight(ShaderData *sd, float *stack, uint4 node) +{ + uint blend_offset = node.y; + uint blend_value = node.z; + float blend = (stack_valid(blend_offset))? stack_load_float(stack, blend_offset): __int_as_float(blend_value); + + uint type, out_offset; + decode_node_uchar4(node.w, &type, &out_offset, NULL, NULL); + + float f; + + if(type == NODE_BLEND_WEIGHT_FRESNEL) { + float eta = fmaxf(1.0f - blend, 1e-5f); + eta = (sd->flag & SD_BACKFACING)? eta: 1.0f/eta; + + f = fresnel_dielectric_cos(dot(sd->I, sd->N), eta); + } + else { + f = fabsf(dot(sd->I, sd->N)); + + if(blend != 0.5f) { + blend = clamp(blend, 0.0f, 1.0f); + blend = (blend < 0.5f)? 2.0f*blend: 0.5f/(1.0f - blend); + + f = powf(f, blend); + } + + f = 1.0f - f; + } stack_store_float(stack, out_offset, f); } diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 586e35c6465..62e24166970 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -147,9 +147,9 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) __device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) { uint id = node.y; - uint co_offset, out_offset, srgb; + uint co_offset, out_offset, alpha_offset, srgb; - decode_node_uchar4(node.z, &co_offset, &out_offset, &srgb, NULL); + 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); @@ -161,15 +161,18 @@ __device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack r.z = color_srgb_to_scene_linear(r.z); } - stack_store_float3(stack, out_offset, r); + if(stack_valid(out_offset)) + stack_store_float3(stack, out_offset, r); + 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; - uint co_offset, out_offset, srgb; + uint co_offset, out_offset, alpha_offset, srgb; - decode_node_uchar4(node.z, &co_offset, &out_offset, &srgb, NULL); + decode_node_uchar4(node.z, &co_offset, &out_offset, &alpha_offset, &srgb); float3 co = stack_load_float3(stack, co_offset); float u = (atan2f(co.y, co.x) + M_PI_F)/(2*M_PI_F); @@ -183,7 +186,10 @@ __device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float r.z = color_srgb_to_scene_linear(r.z); } - stack_store_float3(stack, out_offset, r); + if(stack_valid(out_offset)) + stack_store_float3(stack, out_offset, r); + if(stack_valid(alpha_offset)) + stack_store_float(stack, alpha_offset, f.w); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 98e4a5ee583..483f3c76f3c 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -82,7 +82,8 @@ typedef enum NodeType { NODE_ATTR_BUMP_DX = 4400, NODE_ATTR_BUMP_DY = 4500, NODE_TEX_ENVIRONMENT = 4600, - NODE_CLOSURE_HOLDOUT = 4700 + NODE_CLOSURE_HOLDOUT = 4700, + NODE_BLEND_WEIGHT = 4800 } NodeType; typedef enum NodeAttributeType { @@ -249,6 +250,11 @@ typedef enum NodeVoronoiColoring { NODE_VORONOI_POSITION_OUTLINE_INTENSITY } NodeVoronoiColoring; +typedef enum NodeBlendWeightType { + NODE_BLEND_WEIGHT_FRESNEL, + NODE_BLEND_WEIGHT_FACING +} NodeBlendWeightType; + typedef enum ShaderType { SHADER_TYPE_SURFACE, SHADER_TYPE_VOLUME, diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp index 62dc17960ae..acdddb475d0 100644 --- a/intern/cycles/render/buffers.cpp +++ b/intern/cycles/render/buffers.cpp @@ -85,7 +85,7 @@ void RenderBuffers::reset(Device *device, int width_, int height_) device->mem_copy_to(rng_state); } -float4 *RenderBuffers::copy_from_device(float exposure, int pass) +float4 *RenderBuffers::copy_from_device(float exposure, int sample) { if(!buffer.device_pointer) return NULL; @@ -94,7 +94,7 @@ float4 *RenderBuffers::copy_from_device(float exposure, int pass) float4 *out = new float4[width*height]; float4 *in = (float4*)buffer.data_pointer; - float scale = 1.0f/(float)pass; + float scale = 1.0f/(float)sample; for(int i = width*height - 1; i >= 0; i--) { float4 rgba = in[i]*scale; diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h index e99fedb0dff..d5eb8d7fa2f 100644 --- a/intern/cycles/render/buffers.h +++ b/intern/cycles/render/buffers.h @@ -47,7 +47,7 @@ public: ~RenderBuffers(); void reset(Device *device, int width, int height); - float4 *copy_from_device(float exposure, int pass); + float4 *copy_from_device(float exposure, int sample); protected: void device_free(); diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp index 74469c738c7..e88c0a388bc 100644 --- a/intern/cycles/render/camera.cpp +++ b/intern/cycles/render/camera.cpp @@ -28,8 +28,10 @@ Camera::Camera() shutteropen = 0.0f; shutterclose = 1.0f; - lensradius = 0.0f; + aperturesize = 0.0f; focaldistance = 10.0f; + blades = 0; + bladesrotation = 0.0f; matrix = transform_identity(); @@ -134,8 +136,10 @@ void Camera::device_update(Device *device, DeviceScene *dscene) kcam->worldtocamera = transform_inverse(cameratoworld); /* depth of field */ - kcam->lensradius = lensradius; + kcam->aperturesize = aperturesize; kcam->focaldistance = focaldistance; + kcam->blades = (blades < 3)? 0.0f: blades; + kcam->bladesrotation = bladesrotation; /* motion blur */ kcam->shutteropen = shutteropen; @@ -168,7 +172,9 @@ bool Camera::modified(const Camera& cam) { return !((shutteropen == cam.shutteropen) && (shutterclose == cam.shutterclose) && - (lensradius == cam.lensradius) && + (aperturesize == cam.aperturesize) && + (blades == cam.blades) && + (bladesrotation == cam.bladesrotation) && (focaldistance == cam.focaldistance) && (ortho == cam.ortho) && (fov == cam.fov) && diff --git a/intern/cycles/render/camera.h b/intern/cycles/render/camera.h index d385aa274f4..43537ce8c3c 100644 --- a/intern/cycles/render/camera.h +++ b/intern/cycles/render/camera.h @@ -39,8 +39,10 @@ public: float shutterclose; /* depth of field */ - float lensradius; float focaldistance; + float aperturesize; + uint blades; + float bladesrotation; /* orthographic/perspective */ bool ortho; diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index f2030256814..038a6c45b97 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -49,6 +49,7 @@ ImageTextureNode::ImageTextureNode() add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); add_output("Color", SHADER_SOCKET_COLOR); + add_output("Alpha", SHADER_SOCKET_FLOAT); } ImageTextureNode::~ImageTextureNode() @@ -69,12 +70,16 @@ void ImageTextureNode::compile(SVMCompiler& compiler) { ShaderInput *vector_in = input("Vector"); ShaderOutput *color_out = output("Color"); + ShaderOutput *alpha_out = output("Alpha"); image_manager = compiler.image_manager; if(slot == -1) slot = image_manager->add_image(filename); - compiler.stack_assign(color_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); + if(!alpha_out->links.empty()) + compiler.stack_assign(alpha_out); if(slot != -1) { compiler.stack_assign(vector_in); @@ -83,12 +88,17 @@ void ImageTextureNode::compile(SVMCompiler& compiler) compiler.encode_uchar4( vector_in->stack_offset, color_out->stack_offset, + alpha_out->stack_offset, color_space_enum[color_space])); } else { /* image not found */ - compiler.add_node(NODE_VALUE_V, color_out->stack_offset); - compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + if(!color_out->links.empty()) { + compiler.add_node(NODE_VALUE_V, color_out->stack_offset); + compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + } + if(!alpha_out->links.empty()) + compiler.add_node(NODE_VALUE_F, __float_as_int(0.0f), alpha_out->stack_offset); } } @@ -113,6 +123,7 @@ EnvironmentTextureNode::EnvironmentTextureNode() add_input("Vector", SHADER_SOCKET_VECTOR, ShaderInput::POSITION); add_output("Color", SHADER_SOCKET_COLOR); + add_output("Alpha", SHADER_SOCKET_FLOAT); } EnvironmentTextureNode::~EnvironmentTextureNode() @@ -133,12 +144,16 @@ void EnvironmentTextureNode::compile(SVMCompiler& compiler) { ShaderInput *vector_in = input("Vector"); ShaderOutput *color_out = output("Color"); + ShaderOutput *alpha_out = output("Alpha"); image_manager = compiler.image_manager; if(slot == -1) slot = image_manager->add_image(filename); - compiler.stack_assign(color_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); + if(!alpha_out->links.empty()) + compiler.stack_assign(alpha_out); if(slot != -1) { compiler.stack_assign(vector_in); @@ -147,12 +162,17 @@ void EnvironmentTextureNode::compile(SVMCompiler& compiler) compiler.encode_uchar4( vector_in->stack_offset, color_out->stack_offset, + alpha_out->stack_offset, color_space_enum[color_space])); } else { /* image not found */ - compiler.add_node(NODE_VALUE_V, color_out->stack_offset); - compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + if(!color_out->links.empty()) { + compiler.add_node(NODE_VALUE_V, color_out->stack_offset); + compiler.add_node(NODE_VALUE_V, make_float3(0, 0, 0)); + } + if(!alpha_out->links.empty()) + compiler.add_node(NODE_VALUE_F, __float_as_int(0.0f), alpha_out->stack_offset); } } @@ -1080,7 +1100,6 @@ GlossyBsdfNode::GlossyBsdfNode() distribution = ustring("Beckmann"); add_input("Roughness", SHADER_SOCKET_FLOAT, 0.2f); - add_input("Fresnel", SHADER_SOCKET_FLOAT, 1.0f); } void GlossyBsdfNode::compile(SVMCompiler& compiler) @@ -1088,9 +1107,9 @@ void GlossyBsdfNode::compile(SVMCompiler& compiler) closure = (ClosureType)distribution_enum[distribution]; if(closure == CLOSURE_BSDF_REFLECTION_ID) - BsdfNode::compile(compiler, NULL, input("Fresnel")); + BsdfNode::compile(compiler, NULL, NULL); else - BsdfNode::compile(compiler, input("Roughness"), input("Fresnel")); + BsdfNode::compile(compiler, input("Roughness"), NULL); } void GlossyBsdfNode::compile(OSLCompiler& compiler) @@ -1119,7 +1138,7 @@ GlassBsdfNode::GlassBsdfNode() distribution = ustring("Sharp"); add_input("Roughness", SHADER_SOCKET_FLOAT, 0.0f); - add_input("Fresnel", SHADER_SOCKET_FLOAT, 0.3f); + add_input("IOR", SHADER_SOCKET_FLOAT, 0.3f); } void GlassBsdfNode::compile(SVMCompiler& compiler) @@ -1127,9 +1146,9 @@ void GlassBsdfNode::compile(SVMCompiler& compiler) closure = (ClosureType)distribution_enum[distribution]; if(closure == CLOSURE_BSDF_REFRACTION_ID) - BsdfNode::compile(compiler, NULL, input("Fresnel")); + BsdfNode::compile(compiler, NULL, input("IOR")); else - BsdfNode::compile(compiler, input("Roughness"), input("Fresnel")); + BsdfNode::compile(compiler, input("Roughness"), input("IOR")); } void GlassBsdfNode::compile(OSLCompiler& compiler) @@ -1145,12 +1164,11 @@ VelvetBsdfNode::VelvetBsdfNode() closure = CLOSURE_BSDF_ASHIKHMIN_VELVET_ID; add_input("Sigma", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Fresnel", SHADER_SOCKET_FLOAT, 1.0f); } void VelvetBsdfNode::compile(SVMCompiler& compiler) { - BsdfNode::compile(compiler, input("Sigma"), input("Fresnel")); + BsdfNode::compile(compiler, input("Sigma"), NULL); } void VelvetBsdfNode::compile(OSLCompiler& compiler) @@ -1781,18 +1799,18 @@ FresnelNode::FresnelNode() : ShaderNode("Fresnel") { add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); - add_input("Fresnel", SHADER_SOCKET_FLOAT, 0.3f); + add_input("IOR", SHADER_SOCKET_FLOAT, 1.45f); add_output("Fac", SHADER_SOCKET_FLOAT); } void FresnelNode::compile(SVMCompiler& compiler) { - ShaderInput *fresnel_in = input("Fresnel"); + ShaderInput *ior_in = input("IOR"); ShaderOutput *fac_out = output("Fac"); - compiler.stack_assign(fresnel_in); + compiler.stack_assign(ior_in); compiler.stack_assign(fac_out); - compiler.add_node(NODE_FRESNEL, fresnel_in->stack_offset, __float_as_int(fresnel_in->value.x), fac_out->stack_offset); + compiler.add_node(NODE_FRESNEL, ior_in->stack_offset, __float_as_int(ior_in->value.x), fac_out->stack_offset); } void FresnelNode::compile(OSLCompiler& compiler) @@ -1800,6 +1818,45 @@ void FresnelNode::compile(OSLCompiler& compiler) compiler.add(this, "node_fresnel"); } +/* Blend Weight */ + +BlendWeightNode::BlendWeightNode() +: ShaderNode("BlendWeight") +{ + add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); + add_input("Blend", SHADER_SOCKET_FLOAT, 0.5f); + + add_output("Fresnel", SHADER_SOCKET_FLOAT); + add_output("Facing", SHADER_SOCKET_FLOAT); +} + +void BlendWeightNode::compile(SVMCompiler& compiler) +{ + ShaderInput *blend_in = input("Blend"); + + if(blend_in->link) + compiler.stack_assign(blend_in); + + ShaderOutput *fresnel_out = output("Fresnel"); + if(!fresnel_out->links.empty()) { + compiler.stack_assign(fresnel_out); + compiler.add_node(NODE_BLEND_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), + compiler.encode_uchar4(NODE_BLEND_WEIGHT_FRESNEL, fresnel_out->stack_offset)); + } + + ShaderOutput *facing_out = output("Facing"); + if(!facing_out->links.empty()) { + compiler.stack_assign(facing_out); + compiler.add_node(NODE_BLEND_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), + compiler.encode_uchar4(NODE_BLEND_WEIGHT_FACING, facing_out->stack_offset)); + } +} + +void BlendWeightNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_blend_weight"); +} + /* Output */ OutputNode::OutputNode() diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index 2afe585c3ac..f11f34778e3 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -323,6 +323,11 @@ public: SHADER_NODE_CLASS(FresnelNode) }; +class BlendWeightNode : public ShaderNode { +public: + SHADER_NODE_CLASS(BlendWeightNode) +}; + class MathNode : public ShaderNode { public: SHADER_NODE_CLASS(MathNode) diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index 5772a9d7268..93d8ebf1301 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -99,6 +99,7 @@ public: class SceneParams { public: enum { OSL, SVM } shadingsystem; + bool use_multi_closure; enum BVHType { BVH_DYNAMIC, BVH_STATIC } bvh_type; bool use_bvh_cache; bool use_bvh_spatial_split; @@ -107,6 +108,7 @@ public: SceneParams() { shadingsystem = SVM; + use_multi_closure = false; bvh_type = BVH_DYNAMIC; use_bvh_cache = false; use_bvh_spatial_split = false; diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 5eb8d51a816..50f7017bacf 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -33,7 +33,7 @@ CCL_NAMESPACE_BEGIN Session::Session(const SessionParams& params_) : params(params_), - tile_manager(params.progressive, params.passes, params.tile_size, params.min_size) + tile_manager(params.progressive, params.samples, params.tile_size, params.min_size) { device_use_gl = ((params.device_type != DEVICE_CPU) && !params.background); @@ -48,12 +48,12 @@ Session::Session(const SessionParams& params_) reset_time = 0.0; preview_time = 0.0; paused_time = 0.0; - pass = 0; + sample = 0; delayed_reset.do_reset = false; delayed_reset.w = 0; delayed_reset.h = 0; - delayed_reset.passes = 0; + delayed_reset.samples = 0; display_outdated = false; gpu_draw_ready = false; @@ -108,7 +108,7 @@ bool Session::ready_to_reset() /* GPU Session */ -void Session::reset_gpu(int w, int h, int passes) +void Session::reset_gpu(int w, int h, 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 @@ -119,7 +119,7 @@ void Session::reset_gpu(int w, int h, int passes) display_outdated = true; reset_time = time_dt(); - reset_(w, h, passes); + reset_(w, h, samples); gpu_need_tonemap = false; gpu_need_tonemap_cond.notify_all(); @@ -207,7 +207,7 @@ void Session::run_gpu() if(!no_tiles) { /* buffers mutex is locked entirely while rendering each - pass, and released/reacquired on each iteration to allow + sample, and released/reacquired on each iteration to allow reset and draw in between */ thread_scoped_lock buffers_lock(buffers->mutex); @@ -249,7 +249,7 @@ void Session::run_gpu() /* CPU Session */ -void Session::reset_cpu(int w, int h, int passes) +void Session::reset_cpu(int w, int h, int samples) { thread_scoped_lock reset_lock(delayed_reset.mutex); @@ -258,7 +258,7 @@ void Session::reset_cpu(int w, int h, int passes) delayed_reset.w = w; delayed_reset.h = h; - delayed_reset.passes = passes; + delayed_reset.samples = samples; delayed_reset.do_reset = true; device->task_cancel(); @@ -294,7 +294,7 @@ void Session::run_cpu() thread_scoped_lock buffers_lock(buffers->mutex); thread_scoped_lock display_lock(display->mutex); - reset_(delayed_reset.w, delayed_reset.h, delayed_reset.passes); + reset_(delayed_reset.w, delayed_reset.h, delayed_reset.samples); delayed_reset.do_reset = false; } @@ -335,7 +335,7 @@ void Session::run_cpu() if(!no_tiles) { /* buffers mutex is locked entirely while rendering each - pass, and released/reacquired on each iteration to allow + sample, and released/reacquired on each iteration to allow reset and draw in between */ thread_scoped_lock buffers_lock(buffers->mutex); @@ -368,11 +368,11 @@ void Session::run_cpu() if(delayed_reset.do_reset) { /* reset rendering if request from main thread */ delayed_reset.do_reset = false; - reset_(delayed_reset.w, delayed_reset.h, delayed_reset.passes); + reset_(delayed_reset.w, delayed_reset.h, delayed_reset.samples); } else if(need_tonemap) { /* tonemap only if we do not reset, we don't we don't - want to show the result of an incomplete pass*/ + want to show the result of an incomplete sample*/ tonemap(); } } @@ -418,7 +418,7 @@ bool Session::draw(int w, int h) return draw_cpu(w, h); } -void Session::reset_(int w, int h, int passes) +void Session::reset_(int w, int h, int samples) { if(w != buffers->width || h != buffers->height) { gpu_draw_ready = false; @@ -426,27 +426,27 @@ void Session::reset_(int w, int h, int passes) display->reset(device, w, h); } - tile_manager.reset(w, h, passes); + tile_manager.reset(w, h, samples); start_time = time_dt(); preview_time = 0.0; paused_time = 0.0; - pass = 0; + sample = 0; } -void Session::reset(int w, int h, int passes) +void Session::reset(int w, int h, int samples) { if(device_use_gl) - reset_gpu(w, h, passes); + reset_gpu(w, h, samples); else - reset_cpu(w, h, passes); + reset_cpu(w, h, samples); } -void Session::set_passes(int passes) +void Session::set_samples(int samples) { - if(passes != params.passes) { - params.passes = passes; - tile_manager.set_passes(passes); + if(samples != params.samples) { + params.samples = samples; + tile_manager.set_samples(samples); { thread_scoped_lock pause_lock(pause_mutex); @@ -504,7 +504,7 @@ void Session::update_scene() void Session::update_status_time(bool show_pause, bool show_done) { - int pass = tile_manager.state.pass; + int sample = tile_manager.state.sample; int resolution = tile_manager.state.resolution; /* update status */ @@ -512,10 +512,10 @@ void Session::update_status_time(bool show_pause, bool show_done) if(!params.progressive) substatus = "Path Tracing"; - else if(params.passes == INT_MAX) - substatus = string_printf("Path Tracing Pass %d", pass+1); + else if(params.samples == INT_MAX) + substatus = string_printf("Path Tracing Sample %d", sample+1); else - substatus = string_printf("Path Tracing Pass %d/%d", pass+1, params.passes); + substatus = string_printf("Path Tracing Sample %d/%d", sample+1, params.samples); if(show_pause) status = "Paused"; @@ -531,13 +531,13 @@ void Session::update_status_time(bool show_pause, bool show_done) preview_time = time_dt(); double total_time = time_dt() - start_time - paused_time; - double pass_time = (pass == 0)? 0.0: (time_dt() - preview_time - paused_time)/(pass); + double sample_time = (sample == 0)? 0.0: (time_dt() - preview_time - paused_time)/(sample); /* negative can happen when we pause a bit before rendering, can discard that */ if(total_time < 0.0) total_time = 0.0; if(preview_time < 0.0) preview_time = 0.0; - progress.set_pass(pass + 1, total_time, pass_time); + progress.set_sample(sample + 1, total_time, sample_time); } void Session::path_trace(Tile& tile) @@ -551,7 +551,7 @@ void Session::path_trace(Tile& tile) task.h = tile.h; task.buffer = buffers->buffer.device_pointer; task.rng_state = buffers->rng_state.device_pointer; - task.pass = tile_manager.state.pass; + task.sample = tile_manager.state.sample; task.resolution = tile_manager.state.resolution; device->task_add(task); @@ -568,7 +568,7 @@ void Session::tonemap() task.h = tile_manager.state.height; task.rgba = display->rgba.device_pointer; task.buffer = buffers->buffer.device_pointer; - task.pass = tile_manager.state.pass; + task.sample = tile_manager.state.sample; task.resolution = tile_manager.state.resolution; if(task.w > 0 && task.h > 0) { diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 4d5cf434098..82c14227d03 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -43,7 +43,7 @@ public: string output_path; bool progressive; - int passes; + int samples; int tile_size; int min_size; int threads; @@ -59,7 +59,7 @@ public: output_path = ""; progressive = false; - passes = INT_MAX; + samples = INT_MAX; tile_size = 64; min_size = 64; threads = 0; @@ -73,7 +73,7 @@ public: { return !(device_type == params.device_type && background == params.background && output_path == params.output_path - /* && passes == params.passes */ + /* && samples == params.samples */ && progressive == params.progressive && tile_size == params.tile_size && min_size == params.min_size @@ -97,7 +97,7 @@ public: DisplayBuffer *display; Progress progress; SessionParams params; - int pass; + int sample; Session(const SessionParams& params); ~Session(); @@ -107,8 +107,8 @@ public: void wait(); bool ready_to_reset(); - void reset(int w, int h, int passes); - void set_passes(int passes); + void reset(int w, int h, int samples); + void set_samples(int samples); void set_pause(bool pause); protected: @@ -116,7 +116,7 @@ protected: thread_mutex mutex; bool do_reset; int w, h; - int passes; + int samples; } delayed_reset; void run(); @@ -126,15 +126,15 @@ protected: void tonemap(); void path_trace(Tile& tile); - void reset_(int w, int h, int passes); + void reset_(int w, int h, int samples); void run_cpu(); bool draw_cpu(int w, int h); - void reset_cpu(int w, int h, int passes); + void reset_cpu(int w, int h, int samples); void run_gpu(); bool draw_gpu(int w, int h); - void reset_gpu(int w, int h, int passes); + void reset_gpu(int w, int h, int samples); TileManager tile_manager; bool device_use_gl; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index 8f3682cc349..c9bbeecc3a4 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -69,7 +69,8 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene if(shader->has_surface_emission) scene->light_manager->need_update = true; - SVMCompiler compiler(scene->shader_manager, scene->image_manager); + SVMCompiler compiler(scene->shader_manager, scene->image_manager, + scene->params.use_multi_closure); compiler.sunsky = (sunsky_done)? NULL: &dscene->data.sunsky; compiler.background = ((int)i == scene->default_background); compiler.compile(shader, svm_nodes, i); @@ -96,7 +97,7 @@ void SVMShaderManager::device_free(Device *device, DeviceScene *dscene) /* Graph Compiler */ -SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_manager_) +SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_manager_, bool use_multi_closure_) { shader_manager = shader_manager_; image_manager = image_manager_; @@ -106,6 +107,7 @@ SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_man current_shader = NULL; background = false; mix_weight_offset = SVM_STACK_INVALID; + use_multi_closure = use_multi_closure_; } int SVMCompiler::stack_size(ShaderSocketType type) @@ -573,9 +575,8 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty if(generate) { set done; - bool multi_closure = false; /* __MULTI_CLOSURE__ */ - if(multi_closure) { + if(use_multi_closure) { generate_multi_closure(clin->link->parent, done, SVM_STACK_INVALID); } else { diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index dfd78cf3c40..4c23e931e09 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -53,7 +53,8 @@ public: class SVMCompiler { public: - SVMCompiler(ShaderManager *shader_manager, ImageManager *image_manager); + SVMCompiler(ShaderManager *shader_manager, ImageManager *image_manager, + bool use_multi_closure_); void compile(Shader *shader, vector& svm_nodes, int index); void stack_assign(ShaderOutput *output); @@ -123,6 +124,7 @@ protected: Stack active_stack; int max_stack_use; uint mix_weight_offset; + bool use_multi_closure; }; CCL_NAMESPACE_END diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp index 450090c42f8..ba437e74874 100644 --- a/intern/cycles/render/tile.cpp +++ b/intern/cycles/render/tile.cpp @@ -22,7 +22,7 @@ CCL_NAMESPACE_BEGIN -TileManager::TileManager(bool progressive_, int passes_, int tile_size_, int min_size_) +TileManager::TileManager(bool progressive_, int samples_, int tile_size_, int min_size_) { progressive = progressive_; tile_size = tile_size_; @@ -35,7 +35,7 @@ TileManager::~TileManager() { } -void TileManager::reset(int width_, int height_, int passes_) +void TileManager::reset(int width_, int height_, int samples_) { full_width = width_; full_height = height_; @@ -53,18 +53,18 @@ void TileManager::reset(int width_, int height_, int passes_) } } - passes = passes_; + samples = samples_; state.width = 0; state.height = 0; - state.pass = -1; + state.sample = -1; state.resolution = start_resolution; state.tiles.clear(); } -void TileManager::set_passes(int passes_) +void TileManager::set_samples(int samples_) { - passes = passes_; + samples = samples_; } void TileManager::set_tiles() @@ -96,7 +96,7 @@ void TileManager::set_tiles() bool TileManager::done() { - return (state.pass+1 >= passes); + return (state.sample+1 >= samples && state.resolution == 1); } bool TileManager::next() @@ -105,12 +105,12 @@ bool TileManager::next() return false; if(progressive && state.resolution > 1) { - state.pass = 0; + state.sample = 0; state.resolution /= 2; set_tiles(); } else { - state.pass++; + state.sample++; state.resolution = 1; set_tiles(); } diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h index 56c69cdce88..5cd16eb8afa 100644 --- a/intern/cycles/render/tile.h +++ b/intern/cycles/render/tile.h @@ -42,16 +42,16 @@ public: struct State { int width; int height; - int pass; + int sample; int resolution; list tiles; } state; - TileManager(bool progressive, int passes, int tile_size, int min_size); + TileManager(bool progressive, int samples, int tile_size, int min_size); ~TileManager(); - void reset(int width, int height, int passes); - void set_passes(int passes); + void reset(int width, int height, int samples); + void set_samples(int samples); bool next(); bool done(); @@ -59,7 +59,7 @@ protected: void set_tiles(); bool progressive; - int passes; + int samples; int tile_size; int min_size; diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h index c9e0a6ab713..fc2e4af5ead 100644 --- a/intern/cycles/util/util_progress.h +++ b/intern/cycles/util/util_progress.h @@ -35,9 +35,9 @@ class Progress { public: Progress() { - pass = 0; + sample = 0; total_time = 0.0f; - pass_time = 0.0f; + sample_time = 0.0f; status = "Initializing"; substatus = ""; update_cb = NULL; @@ -55,7 +55,7 @@ public: { thread_scoped_lock lock(progress.progress_mutex); - progress.get_pass(pass, total_time, pass_time); + progress.get_sample(sample, total_time, sample_time); progress.get_status(status, substatus); return *this; @@ -88,24 +88,24 @@ public: cancel_cb = function; } - /* pass and timing information */ + /* sample and timing information */ - void set_pass(int pass_, double total_time_, double pass_time_) + void set_sample(int sample_, double total_time_, double sample_time_) { thread_scoped_lock lock(progress_mutex); - pass = pass_; + sample = sample_; total_time = total_time_; - pass_time = pass_time_; + sample_time = sample_time_; } - void get_pass(int& pass_, double& total_time_, double& pass_time_) + void get_sample(int& sample_, double& total_time_, double& sample_time_) { thread_scoped_lock lock(progress_mutex); - pass_ = pass; + sample_ = sample; total_time_ = total_time; - pass_time_ = pass_time; + sample_time_ = sample_time; } /* status messages */ @@ -156,10 +156,10 @@ protected: boost::function update_cb; boost::function cancel_cb; - int pass; + int sample; double total_time; - double pass_time; + double sample_time; string status; string substatus; diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py index 5255af40951..77877731777 100644 --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@ -100,18 +100,23 @@ class DATA_PT_camera(CameraButtonsPanel, Panel): col.prop(cam, "clip_start", text="Start") col.prop(cam, "clip_end", text="End") - layout.label(text="Depth of Field:") +class DATA_PT_camera_dof(CameraButtonsPanel, Panel): + bl_label = "Depth of Field" + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} + + def draw(self, context): + layout = self.layout + + cam = context.camera split = layout.split() split.prop(cam, "dof_object", text="") col = split.column() - if cam.dof_object is not None: - col.enabled = False + col.active = cam.dof_object is None col.prop(cam, "dof_distance", text="Distance") - class DATA_PT_camera_display(CameraButtonsPanel, Panel): bl_label = "Display" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 5b1a80186a6..ae7013ae293 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -128,7 +128,7 @@ typedef struct bNodeType { #define NODE_CLASS_OP_DYNAMIC 11 #define NODE_CLASS_PATTERN 12 #define NODE_CLASS_TEXTURE 13 -#define NODE_CLASS_CLOSURE 14 +#define NODE_CLASS_SHADER 14 /* bNodeSocketType flag */ #define SOCK_NO_VALUE 1 @@ -282,7 +282,7 @@ struct ShadeResult; #define SH_NODE_OUTPUT_WORLD 125 #define SH_NODE_OUTPUT_LAMP 126 #define SH_NODE_FRESNEL 127 -#define SH_NODE_MIX_CLOSURE 128 +#define SH_NODE_MIX_SHADER 128 #define SH_NODE_ATTRIBUTE 129 #define SH_NODE_BACKGROUND 130 #define SH_NODE_BSDF_ANISOTROPIC 131 @@ -308,10 +308,11 @@ struct ShadeResult; #define SH_NODE_TEX_STUCCI 153 #define SH_NODE_TEX_DISTNOISE 154 #define SH_NODE_TEX_COORD 155 -#define SH_NODE_ADD_CLOSURE 156 +#define SH_NODE_ADD_SHADER 156 #define SH_NODE_TEX_ENVIRONMENT 157 #define SH_NODE_OUTPUT_TEXTURE 158 #define SH_NODE_HOLDOUT 159 +#define SH_NODE_BLEND_WEIGHT 160 /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index a36032f137e..49cda7e8736 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3122,7 +3122,7 @@ static void gpu_from_node_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack gs[i].type= GPU_VEC3; else if (sock->type == SOCK_RGBA) gs[i].type= GPU_VEC4; - else if (sock->type == SOCK_CLOSURE) + else if (sock->type == SOCK_SHADER) gs[i].type= GPU_VEC4; else gs[i].type= GPU_NONE; @@ -3219,9 +3219,9 @@ static void ntreeGPUOutputLink(GPUMaterial *mat, bNode *node, bNodeStack *nsout[ if(nsout[i]->data) { GPUNodeLink *result= nsout[i]->data; - /* for closures, we can output the color directly, for others we + /* for shader sockets, we can output the color directly, for others we apply diffuse shading so we don't have flat colors */ - if(sock->type != SOCK_CLOSURE) + if(sock->type != SOCK_SHADER) GPU_link(mat, "node_bsdf_diffuse", result, GPU_builtin(GPU_VIEW_NORMAL), &result); GPU_material_output_link(mat, result); @@ -3690,6 +3690,7 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_geometry(ntypelist); register_node_type_sh_light_path(ntypelist); register_node_type_sh_fresnel(ntypelist); + register_node_type_sh_blend_weight(ntypelist); register_node_type_sh_tex_coord(ntypelist); register_node_type_sh_background(ntypelist); @@ -3700,8 +3701,8 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_bsdf_transparent(ntypelist); register_node_type_sh_bsdf_velvet(ntypelist); register_node_type_sh_emission(ntypelist); - register_node_type_sh_mix_closure(ntypelist); - register_node_type_sh_add_closure(ntypelist); + register_node_type_sh_mix_shader(ntypelist); + register_node_type_sh_add_shader(ntypelist); register_node_type_sh_holdout(ntypelist); register_node_type_sh_output_lamp(ntypelist); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f11da97a1a0..44dfdbddfa1 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2103,6 +2103,44 @@ static void lib_nodetree_do_versions_group(bNodeTree *ntree) } } +static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + + for(node=ntree->nodes.first; node; node=node->next) { + if(node->type == SH_NODE_FRESNEL) { + node->type = SH_NODE_BLEND_WEIGHT; + + for(sock=node->inputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Fresnel") == 0) + strcpy(sock->name, "Blend"); + + for(sock=node->outputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Fac") == 0) + strcpy(sock->name, "Fresnel"); + } + else { + for(sock=node->inputs.first; sock; sock=sock->next) { + if(strcmp(sock->name, "Closure1") == 0) + strcpy(sock->name, "Shader1"); + + if(strcmp(sock->name, "Closure2") == 0) + strcpy(sock->name, "Shader2"); + + if(strcmp(sock->name, "Fresnel") == 0) { + strcpy(sock->name, "IOR"); + sock->ns.vec[0] = 1.0f/MAX2(1.0f - sock->ns.vec[0], 1e-5f); + } + } + + for(sock=node->outputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Closure") == 0) + strcpy(sock->name, "Shader"); + } + } +} + /* verify types for nodes and groups, all data has to be read */ /* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic * typedefs*/ @@ -2123,6 +2161,7 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) /* now create the own typeinfo structs an verify nodes */ /* here we still assume no groups in groups */ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { + ntree_tmp_cycles_version_patch(ntree); ntreeVerifyTypes(ntree); /* internal nodes, no groups! */ } @@ -2142,8 +2181,10 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) } /* now verify all types in material trees, groups are set OK now */ for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) + if(ma->nodetree) { + ntree_tmp_cycles_version_patch(ma->nodetree); lib_nodetree_do_versions_group(ma->nodetree); + } } /* and scene trees */ for(sce= main->scene.first; sce; sce= sce->id.next) { @@ -2155,7 +2196,21 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) if(tx->nodetree) lib_nodetree_do_versions_group(tx->nodetree); } - + /* and world trees */ + for(wrld= main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) { + ntree_tmp_cycles_version_patch(wrld->nodetree); + lib_nodetree_do_versions_group(wrld->nodetree); + } + } + /* and lamp trees */ + for(la= main->lamp.first; la; la= la->id.next) { + if(la->nodetree) { + ntree_tmp_cycles_version_patch(la->nodetree); + lib_nodetree_do_versions_group(la->nodetree); + } + } + for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) ntree->flag &= ~NTREE_DO_VERSIONS; } diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 5a1b4c0a8b8..39d3755af51 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -149,7 +149,7 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) !(node->typeinfo->flag & NODE_OPTIONS)) BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", name, sock->link->fromsock->name); } - else if(sock->type == SOCK_CLOSURE) + else if(sock->type == SOCK_SHADER) BLI_strncpy(name, "None", UI_MAX_NAME_STR); else BLI_strncpy(name, "Default", UI_MAX_NAME_STR); @@ -252,7 +252,7 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) static int ui_compatible_sockets(int typeA, int typeB) { - if(typeA == SOCK_CLOSURE || typeB == SOCK_CLOSURE) + if(typeA == SOCK_SHADER || typeB == SOCK_SHADER) return (typeA == typeB); return (typeA == typeB); @@ -396,7 +396,7 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_ ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT); ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT); - ui_node_menu_column(bmain, arg, split, "Closure", NODE_CLASS_CLOSURE); + ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER); ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE); ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR); ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR); @@ -438,7 +438,7 @@ void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSo uiBlockSetCurLayout(block, layout); - if(sock->link || sock->type == SOCK_CLOSURE || (stype && (stype->flag & SOCK_NO_VALUE))) { + if(sock->link || sock->type == SOCK_SHADER || (stype && (stype->flag & SOCK_NO_VALUE))) { char name[UI_MAX_NAME_STR]; ui_node_sock_name(sock, name); but= uiDefMenuBut(block, ui_template_node_link_menu, NULL, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); @@ -543,7 +543,7 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree, bNodeSocketType *stype = ui_node_input_socket_type(node, input); /* input not linked, show value */ - if(input->type != SOCK_CLOSURE && (!stype || !(stype->flag & SOCK_NO_VALUE))) { + if(input->type != SOCK_SHADER && (!stype || !(stype->flag & SOCK_NO_VALUE))) { if(input->type == SOCK_VECTOR) { row = uiLayoutRow(split, 0); col = uiLayoutColumn(row, 0); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index faec823a314..8f243cc659f 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -882,7 +882,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN socket_circle_draw(sock, socket_size); if(node->block && sock->link==NULL) { - if((stype && stype->flag & SOCK_NO_VALUE) || sock->type==SOCK_CLOSURE) { + if((stype && stype->flag & SOCK_NO_VALUE) || sock->type==SOCK_SHADER) { uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f), (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 5b19a3b1509..ca59a9ed6a9 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -274,7 +274,7 @@ void ED_node_shader_default(ID *id) bNode *in, *out; bNodeSocket *fromsock, *tosock; bNodeTree *ntree; - int output_type, closure_type; + int output_type, shader_type; ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE); @@ -282,22 +282,22 @@ void ED_node_shader_default(ID *id) case ID_MA: ((Material*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_MATERIAL; - closure_type = SH_NODE_BSDF_DIFFUSE; + shader_type = SH_NODE_BSDF_DIFFUSE; break; case ID_WO: ((World*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_WORLD; - closure_type = SH_NODE_BACKGROUND; + shader_type = SH_NODE_BACKGROUND; break; case ID_LA: ((Lamp*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_LAMP; - closure_type = SH_NODE_EMISSION; + shader_type = SH_NODE_EMISSION; break; case ID_TE: ((Tex*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_TEXTURE; - closure_type = SH_NODE_TEX_CLOUDS; + shader_type = SH_NODE_TEX_CLOUDS; break; default: printf("ED_node_shader_default called on wrong ID type.\n"); @@ -307,7 +307,7 @@ void ED_node_shader_default(ID *id) out= nodeAddNodeType(ntree, output_type, NULL, NULL); out->locx= 300.0f; out->locy= 300.0f; - in= nodeAddNodeType(ntree, closure_type, NULL, NULL); + in= nodeAddNodeType(ntree, shader_type, NULL, NULL); in->locx= 10.0f; in->locy= 300.0f; nodeSetActive(ntree, in); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index e31710863d5..63eab2349b2 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -186,13 +186,13 @@ static void node_menu_add(const bContext *C, Menu *menu) uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); if(scene_use_new_shading_system(scene)) - uiItemMenuF(layout, "Closure", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CLOSURE)); + uiItemMenuF(layout, "Shader", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_SHADER)); + if(scene_use_new_shading_system(scene)) + uiItemMenuF(layout, "Texture", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - if(scene_use_new_shading_system(scene)) - uiItemMenuF(layout, "Texture", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); //uiItemMenuF(layout, "Dynamic", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); } else if(snode->treetype==NTREE_COMPOSIT) { diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index f2c4533a654..3f3e92dd1f1 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1853,7 +1853,7 @@ void node_bsdf_diffuse(vec4 color, vec3 N, out vec4 result) result = vec4(L*color.rgb, 1.0); } -void node_bsdf_glossy(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +void node_bsdf_glossy(vec4 color, float roughness, vec3 N, vec3 I, out vec4 result) { vec3 L = vec3(0.0); @@ -1874,7 +1874,7 @@ void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 node_bsdf_diffuse(color, N, result); } -void node_bsdf_glass(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, vec3 I, out vec4 result) { node_bsdf_diffuse(color, N, result); } @@ -1893,7 +1893,7 @@ void node_bsdf_transparent(vec4 color, out vec4 result) result.a = 0.0; } -void node_bsdf_velvet(vec4 color, float sigma, float fresnel, vec3 N, out vec4 result) +void node_bsdf_velvet(vec4 color, float sigma, vec3 N, out vec4 result) { node_bsdf_diffuse(color, N, result); } @@ -1907,22 +1907,22 @@ void node_emission(vec4 color, float strength, vec3 N, out vec4 result) /* closures */ -void node_mix_closure(float fac, vec4 closure1, vec4 closure2, out vec4 closure) +void node_mix_shader(float fac, vec4 shader1, vec4 shader2, out vec4 shader) { - closure = mix(closure1, closure2, fac); + shader = mix(shader1, shader2, fac); } -void node_add_closure(vec4 closure1, vec4 closure2, out vec4 closure) +void node_add_shader(vec4 shader1, vec4 shader2, out vec4 shader) { - closure = closure1 + closure2; + shader = shader1 + shader2; } /* fresnel */ -void node_fresnel(float f, vec3 N, vec3 I, out float result) +void node_fresnel(float ior, vec3 N, vec3 I, out float result) { - f = max(1.0 - f, 0.00001); - result = fresnel_dielectric(I, N, 1.0/f); //backfacing()? f: 1.0/f); + float eta = max(ior, 0.00001); + result = fresnel_dielectric(I, N, eta); //backfacing()? 1.0/eta: eta); } /* geometry */ diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index eea4c231980..7617effbb6f 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -100,7 +100,7 @@ typedef struct bNodeSocket { #define SOCK_VALUE 0 #define SOCK_VECTOR 1 #define SOCK_RGBA 2 -#define SOCK_CLOSURE 3 +#define SOCK_SHADER 3 /* sock->flag, first bit is select */ /* hidden is user defined, to hide unused */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 5eabbe72373..e56d848f29f 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -164,8 +164,8 @@ static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) return &RNA_VectorNodeSocket; case SOCK_RGBA: return &RNA_RGBANodeSocket; - case SOCK_CLOSURE: - return &RNA_ClosureNodeSocket; + case SOCK_SHADER: + return &RNA_ShaderNodeSocket; default: return &RNA_NodeSocket; } @@ -2979,12 +2979,12 @@ static void rna_def_node_socket_rgba(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); } -static void rna_def_node_socket_closure(BlenderRNA *brna) +static void rna_def_node_socket_shader(BlenderRNA *brna) { StructRNA *srna; - srna = RNA_def_struct(brna, "ClosureNodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "Closure Node Socket", "Input or output socket of a node"); + srna = RNA_def_struct(brna, "ShaderNodeSocket", "NodeSocket"); + RNA_def_struct_ui_text(srna, "Shader Node Socket", "Input or output socket of a node"); RNA_def_struct_sdna(srna, "bNodeSocket"); RNA_def_struct_ui_icon(srna, ICON_PLUG); RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); @@ -3224,7 +3224,7 @@ void RNA_def_nodetree(BlenderRNA *brna) rna_def_node_socket_value(brna); rna_def_node_socket_vector(brna); rna_def_node_socket_rgba(brna); - rna_def_node_socket_closure(brna); + rna_def_node_socket_shader(brna); rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d14e4cd76f2..abf421a2b79 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -55,8 +55,9 @@ DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPU //DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) -DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) -DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_CLOSURE", AddClosure, "Add Closure", "" ) +DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND_WEIGHT", BlendWeight, "BlendWeight", "" ) +DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) +DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index f4b6a452281..a789155bc5a 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -127,11 +127,12 @@ set(SRC intern/SHD_nodes/SHD_bsdf_velvet.c intern/SHD_nodes/SHD_emission.c intern/SHD_nodes/SHD_fresnel.c + intern/SHD_nodes/SHD_blend_weight.c intern/SHD_nodes/SHD_geometry.c intern/SHD_nodes/SHD_holdout.c intern/SHD_nodes/SHD_light_path.c - intern/SHD_nodes/SHD_mix_closure.c - intern/SHD_nodes/SHD_add_closure.c + intern/SHD_nodes/SHD_mix_shader.c + intern/SHD_nodes/SHD_add_shader.c intern/SHD_nodes/SHD_output_lamp.c intern/SHD_nodes/SHD_output_material.c intern/SHD_nodes/SHD_output_texture.c diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index a939bca161d..057b7ae4588 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -56,6 +56,7 @@ void register_node_type_sh_attribute(ListBase *lb); void register_node_type_sh_geometry(ListBase *lb); void register_node_type_sh_light_path(ListBase *lb); void register_node_type_sh_fresnel(ListBase *lb); +void register_node_type_sh_blend_weight(ListBase *lb); void register_node_type_sh_tex_coord(ListBase *lb); void register_node_type_sh_background(ListBase *lb); @@ -68,8 +69,8 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb); void register_node_type_sh_bsdf_velvet(ListBase *lb); void register_node_type_sh_emission(ListBase *lb); void register_node_type_sh_holdout(ListBase *lb); -void register_node_type_sh_mix_closure(ListBase *lb); -void register_node_type_sh_add_closure(ListBase *lb); +void register_node_type_sh_mix_shader(ListBase *lb); +void register_node_type_sh_add_shader(ListBase *lb); void register_node_type_sh_output_lamp(ListBase *lb); void register_node_type_sh_output_material(ListBase *lb); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c deleted file mode 100644 index 8c4a7d83915..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c +++ /dev/null @@ -1,69 +0,0 @@ -/** - * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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 "../SHD_util.h" - -/* **************** OUTPUT ******************** */ - -static bNodeSocketType sh_node_add_closure_in[]= { - { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_add_closure_out[]= { - { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_add_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) -{ -} - -static int node_shader_gpu_add_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "node_add_closure", in, out); -} - -/* node type definition */ -void register_node_type_sh_add_closure(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_ADD_CLOSURE, "Add Closure", NODE_CLASS_CLOSURE, 0, - sh_node_add_closure_in, sh_node_add_closure_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, NULL); - node_type_storage(&ntype, "", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_add_closure); - node_type_gpu(&ntype, node_shader_gpu_add_closure); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c new file mode 100644 index 00000000000..60fe04a8b34 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c @@ -0,0 +1,69 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_add_shader_in[]= { + { SOCK_SHADER, 1, "Shader1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_add_shader_out[]= { + { SOCK_SHADER, 0, "Shader", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_add_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_add_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_add_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_add_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0, + sh_node_add_shader_in, sh_node_add_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_add_shader); + node_type_gpu(&ntype, node_shader_gpu_add_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_background.c b/source/blender/nodes/intern/SHD_nodes/SHD_background.c index 195f804416f..e5603b2d167 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_background.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_background.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_background_in[]= { }; static bNodeSocketType sh_node_background_out[]= { - { SOCK_CLOSURE, 0, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -52,7 +52,7 @@ void register_node_type_sh_background(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0, sh_node_background_in, sh_node_background_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c b/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c new file mode 100644 index 00000000000..f68348a8aa5 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c @@ -0,0 +1,68 @@ +/** + * $Id: SHD_blend_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** BlendWeight ******************** */ +static bNodeSocketType sh_node_blend_weight_in[]= { + { SOCK_VALUE, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_blend_weight_out[]= { + { SOCK_VALUE, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_blend_weight(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_blend_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_blend_weight(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BLEND_WEIGHT, "Blend Weight", NODE_CLASS_INPUT, 0, + sh_node_blend_weight_in, sh_node_blend_weight_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_blend_weight); + node_type_gpu(&ntype, node_shader_gpu_blend_weight); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c index 508bf827440..15db7ebb53c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_anisotropic_in[]= { }; static bNodeSocketType sh_node_bsdf_anisotropic_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +57,7 @@ void register_node_type_sh_bsdf_anisotropic(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c index 2525174606a..bd2781d4052 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_diffuse_in[]= { }; static bNodeSocketType sh_node_bsdf_diffuse_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_diffuse(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index 7f42c70b338..2d2b31573f2 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -34,12 +34,12 @@ static bNodeSocketType sh_node_bsdf_glass_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Roughness", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_glass_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +57,7 @@ void register_node_type_sh_bsdf_glass(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c index 16dea77d492..033aea1509f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -34,12 +34,11 @@ static bNodeSocketType sh_node_bsdf_glossy_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_glossy_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -58,7 +57,7 @@ void register_node_type_sh_bsdf_glossy(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c index ceec2891aaf..7a9ff48f5c9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_translucent_in[]= { }; static bNodeSocketType sh_node_bsdf_translucent_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_translucent(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c index 4f4537b339d..b3932162d73 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_transparent_in[]= { }; static bNodeSocketType sh_node_bsdf_transparent_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c index 5b700eb1e4e..dfdcf2a4f7f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -34,12 +34,11 @@ static bNodeSocketType sh_node_bsdf_velvet_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Sigma", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_velvet_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +56,7 @@ void register_node_type_sh_bsdf_velvet(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c index 7a88db3380d..e8b1d58a85a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -33,12 +33,12 @@ static bNodeSocketType sh_node_emission_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Strength", 100.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { SOCK_VALUE, 1, "Strength", 30.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_emission_out[]= { - { SOCK_CLOSURE, 0, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -56,7 +56,7 @@ void register_node_type_sh_emission(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0, sh_node_emission_in, sh_node_emission_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c index 8e6d2545bb1..ac17faaaaa4 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c @@ -31,12 +31,12 @@ /* **************** Fresnel ******************** */ static bNodeSocketType sh_node_fresnel_in[]= { - { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_fresnel_out[]= { - { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c index a96b621456a..f874eda786a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c @@ -36,7 +36,7 @@ static bNodeSocketType sh_node_holdout_in[]= { }; static bNodeSocketType sh_node_holdout_out[]= { - { SOCK_CLOSURE, 0, "Holdout", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Holdout", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -50,7 +50,7 @@ void register_node_type_sh_holdout(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0, sh_node_holdout_in, sh_node_holdout_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c deleted file mode 100644 index 55838365756..00000000000 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c +++ /dev/null @@ -1,70 +0,0 @@ -/** - * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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 "../SHD_util.h" - -/* **************** OUTPUT ******************** */ - -static bNodeSocketType sh_node_mix_closure_in[]= { - { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketType sh_node_mix_closure_out[]= { - { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_mix_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) -{ -} - -static int node_shader_gpu_mix_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) -{ - return GPU_stack_link(mat, "node_mix_closure", in, out); -} - -/* node type definition */ -void register_node_type_sh_mix_closure(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_MIX_CLOSURE, "Mix Closure", NODE_CLASS_CLOSURE, 0, - sh_node_mix_closure_in, sh_node_mix_closure_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, NULL); - node_type_storage(&ntype, "", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_mix_closure); - node_type_gpu(&ntype, node_shader_gpu_mix_closure); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c new file mode 100644 index 00000000000..3f486c4b469 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c @@ -0,0 +1,70 @@ +/** + * $Id: SHD_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 "../SHD_util.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketType sh_node_mix_shader_in[]= { + { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_mix_shader_out[]= { + { SOCK_SHADER, 0, "Shader", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_mix_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_mix_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_mix_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_mix_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0, + sh_node_mix_shader_in, sh_node_mix_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_mix_shader); + node_type_gpu(&ntype, node_shader_gpu_mix_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c index 6665c727f48..5be9a1f6948 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c @@ -32,7 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_lamp_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c index 06ab6b67dac..c0cdde3fb8b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c @@ -32,8 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_material_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c index d140fb2408c..410ddd25bff 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c @@ -32,8 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_world_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From b5d1f7a073fb3f283bb6446a506e256d684df79f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 17 Sep 2011 14:38:56 +0000 Subject: Cycles: missed these files in merge commit. --- .../nodes/shader/nodes/node_shader_add_shader.c | 69 +++ .../nodes/shader/nodes/node_shader_attribute.c | 59 +++ .../nodes/shader/nodes/node_shader_background.c | 65 +++ .../nodes/shader/nodes/node_shader_blend_weight.c | 68 +++ .../shader/nodes/node_shader_bsdf_anisotropic.c | 70 +++ .../nodes/shader/nodes/node_shader_bsdf_diffuse.c | 68 +++ .../nodes/shader/nodes/node_shader_bsdf_glass.c | 70 +++ .../nodes/shader/nodes/node_shader_bsdf_glossy.c | 70 +++ .../shader/nodes/node_shader_bsdf_translucent.c | 68 +++ .../shader/nodes/node_shader_bsdf_transparent.c | 68 +++ .../nodes/shader/nodes/node_shader_bsdf_velvet.c | 69 +++ .../nodes/shader/nodes/node_shader_emission.c | 69 +++ .../nodes/shader/nodes/node_shader_fresnel.c | 68 +++ .../nodes/shader/nodes/node_shader_geometry.c | 71 ++++ .../nodes/shader/nodes/node_shader_holdout.c | 63 +++ .../nodes/shader/nodes/node_shader_light_path.c | 69 +++ .../nodes/shader/nodes/node_shader_mix_shader.c | 70 +++ .../blender/nodes/shader/nodes/node_shader_noise.h | 472 +++++++++++++++++++++ .../nodes/shader/nodes/node_shader_output_lamp.c | 58 +++ .../shader/nodes/node_shader_output_material.c | 71 ++++ .../shader/nodes/node_shader_output_texture.c | 75 ++++ .../nodes/shader/nodes/node_shader_output_world.c | 59 +++ .../nodes/shader/nodes/node_shader_tex_blend.c | 135 ++++++ .../nodes/shader/nodes/node_shader_tex_clouds.c | 118 ++++++ .../nodes/shader/nodes/node_shader_tex_coord.c | 75 ++++ .../nodes/shader/nodes/node_shader_tex_distnoise.c | 115 +++++ .../shader/nodes/node_shader_tex_environment.c | 115 +++++ .../nodes/shader/nodes/node_shader_tex_image.c | 113 +++++ .../nodes/shader/nodes/node_shader_tex_magic.c | 169 ++++++++ .../nodes/shader/nodes/node_shader_tex_marble.c | 123 ++++++ .../nodes/shader/nodes/node_shader_tex_musgrave.c | 288 +++++++++++++ .../nodes/shader/nodes/node_shader_tex_noise.c | 100 +++++ .../nodes/shader/nodes/node_shader_tex_sky.c | 82 ++++ .../nodes/shader/nodes/node_shader_tex_stucci.c | 118 ++++++ .../nodes/shader/nodes/node_shader_tex_voronoi.c | 164 +++++++ .../nodes/shader/nodes/node_shader_tex_wood.c | 125 ++++++ 36 files changed, 3729 insertions(+) create mode 100644 source/blender/nodes/shader/nodes/node_shader_add_shader.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_attribute.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_background.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_blend_weight.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_emission.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_fresnel.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_geometry.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_holdout.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_light_path.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_mix_shader.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_noise.h create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_lamp.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_material.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_texture.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_world.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_blend.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_clouds.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_coord.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_environment.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_image.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_magic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_marble.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_noise.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_sky.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_stucci.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_wood.c diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.c b/source/blender/nodes/shader/nodes/node_shader_add_shader.c new file mode 100644 index 00000000000..cc059d3dc90 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_add_shader_in[]= { + { SOCK_SHADER, 1, "Shader1"}, + { SOCK_SHADER, 1, "Shader2"}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_add_shader_out[]= { + { SOCK_SHADER, 0, "Shader"}, + { -1, 0, "" } +}; + +static void node_shader_exec_add_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_add_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_add_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_add_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_add_shader); + node_type_gpu(&ntype, node_shader_gpu_add_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.c new file mode 100644 index 00000000000..569a75ee79c --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c @@ -0,0 +1,59 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_attribute_out[]= { + { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_attribute(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_attribute(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_attribute); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_background.c b/source/blender/nodes/shader/nodes/node_shader_background.c new file mode 100644 index 00000000000..fab2310f4f6 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_background.c @@ -0,0 +1,65 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_background_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Strength", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_background_out[]= { + { SOCK_SHADER, 0, "Background"}, + { -1, 0, "" } +}; + +static void node_shader_exec_background(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_background(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_background); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_blend_weight.c b/source/blender/nodes/shader/nodes/node_shader_blend_weight.c new file mode 100644 index 00000000000..1affc276c18 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_blend_weight.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_blend_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** BlendWeight ******************** */ +static bNodeSocketTemplate sh_node_blend_weight_in[]= { + { SOCK_FLOAT, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_blend_weight_out[]= { + { SOCK_FLOAT, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_blend_weight(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_blend_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_blend_weight(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BLEND_WEIGHT, "Blend Weight", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, sh_node_blend_weight_in, sh_node_blend_weight_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_blend_weight); + node_type_gpu(&ntype, node_shader_gpu_blend_weight); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c new file mode 100644 index 00000000000..8ee6be6e624 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c @@ -0,0 +1,70 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_anisotropic_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness U", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness V", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_anisotropic_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_anisotropic(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_anisotropic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_anisotropic); + node_type_gpu(&ntype, node_shader_gpu_bsdf_anisotropic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c new file mode 100644 index 00000000000..33f9ab8f469 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_diffuse_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_diffuse_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_diffuse(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_diffuse", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_diffuse(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_diffuse); + node_type_gpu(&ntype, node_shader_gpu_bsdf_diffuse); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c new file mode 100644 index 00000000000..c7a3de44fb2 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c @@ -0,0 +1,70 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_glass_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_glass_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_glass(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_glass", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_glass(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_glass); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glass); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c new file mode 100644 index 00000000000..879ef0d8ae8 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c @@ -0,0 +1,70 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_glossy_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_glossy_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_glossy(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_bsdf_glossy", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_glossy(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_glossy); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glossy); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c new file mode 100644 index 00000000000..6f02f281cff --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_translucent_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_translucent_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_translucent(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_translucent", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_translucent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_translucent); + node_type_gpu(&ntype, node_shader_gpu_bsdf_translucent); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c new file mode 100644 index 00000000000..49e131b289e --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_transparent_in[]= { + { SOCK_RGBA, 1, "Color", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_transparent_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_transparent(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_transparent", in, out); +} + +/* node type definition */ +void register_node_type_sh_bsdf_transparent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_transparent); + node_type_gpu(&ntype, node_shader_gpu_bsdf_transparent); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c new file mode 100644 index 00000000000..49c783d046e --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_velvet_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Sigma", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_velvet_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static void node_shader_exec_bsdf_velvet(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_velvet", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_velvet(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_bsdf_velvet); + node_type_gpu(&ntype, node_shader_gpu_bsdf_velvet); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.c b/source/blender/nodes/shader/nodes/node_shader_emission.c new file mode 100644 index 00000000000..d57c5b672a5 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_emission.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_emission_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Strength", 30.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_emission_out[]= { + { SOCK_SHADER, 0, "Emission"}, + { -1, 0, "" } +}; + +static void node_shader_exec_emission(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_emission(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_emission", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_emission(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_emission_in, sh_node_emission_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_emission); + node_type_gpu(&ntype, node_shader_gpu_emission); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_fresnel.c b/source/blender/nodes/shader/nodes/node_shader_fresnel.c new file mode 100644 index 00000000000..c918d8464e6 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_fresnel.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_fresnel.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** Fresnel ******************** */ +static bNodeSocketTemplate sh_node_fresnel_in[]= { + { SOCK_FLOAT, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_fresnel_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_fresnel(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_fresnel(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_fresnel(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_FRESNEL, "Fresnel", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, sh_node_fresnel_in, sh_node_fresnel_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_fresnel); + node_type_gpu(&ntype, node_shader_gpu_fresnel); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.c b/source/blender/nodes/shader/nodes/node_shader_geometry.c new file mode 100644 index 00000000000..73ec0b2e5d6 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_geometry.c @@ -0,0 +1,71 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_geometry_out[]= { + { SOCK_VECTOR, 0, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Parametric", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_geometry(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_geometry", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX)); +} + +/* node type definition */ +void register_node_type_sh_geometry(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, NULL, sh_node_geometry_out); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_geometry); + node_type_gpu(&ntype, node_shader_gpu_geometry); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_holdout.c b/source/blender/nodes/shader/nodes/node_shader_holdout.c new file mode 100644 index 00000000000..1f376c4941c --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_holdout.c @@ -0,0 +1,63 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_holdout_in[]= { + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_holdout_out[]= { + { SOCK_SHADER, 0, "Holdout"}, + { -1, 0, "" } +}; + +static void node_shader_exec_holdout(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + + +/* node type definition */ +void register_node_type_sh_holdout(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_holdout_in, sh_node_holdout_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_holdout); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.c b/source/blender/nodes/shader/nodes/node_shader_light_path.c new file mode 100644 index 00000000000..a811259cced --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_light_path_out[]= { + { SOCK_FLOAT, 0, "Is Camera Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Singular Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_light_path(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_light_path(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_light_path", in, out); +} + +/* node type definition */ +void register_node_type_sh_light_path(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_LIGHT_PATH, "Light Path", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, NULL, sh_node_light_path_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_light_path); + node_type_gpu(&ntype, node_shader_gpu_light_path); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c new file mode 100644 index 00000000000..637f515583c --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c @@ -0,0 +1,70 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_mix_shader_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader1"}, + { SOCK_SHADER, 1, "Shader2"}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_mix_shader_out[]= { + { SOCK_SHADER, 0, "Shader"}, + { -1, 0, "" } +}; + +static void node_shader_exec_mix_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_mix_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_mix_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_mix_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_mix_shader_in, sh_node_mix_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_mix_shader); + node_type_gpu(&ntype, node_shader_gpu_mix_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_noise.h b/source/blender/nodes/shader/nodes/node_shader_noise.h new file mode 100644 index 00000000000..44aa8f6bb41 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_noise.h @@ -0,0 +1,472 @@ +/* + * Adapted from Open Shading Language with this license: + * + * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. + * All Rights Reserved. + * + * Modifications Copyright 2011, 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. +*/ + +#ifndef NODE_SHADER_NOISE_H +#define NODE_SHADER_NOISE_H + +MINLINE int quick_floor(float x) +{ + return (int)x - ((x < 0) ? 1 : 0); +} + +MINLINE float bits_to_01(unsigned int bits) +{ + return bits * (1.0f/(float)0xFFFFFFFF); +} + +MINLINE unsigned int hash(unsigned int kx, unsigned int ky, unsigned int kz) +{ + // define some handy macros +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) +#define final(a,b,c) \ +{ \ + c ^= b; c -= rot(b,14); \ + a ^= c; a -= rot(c,11); \ + b ^= a; b -= rot(a,25); \ + c ^= b; c -= rot(b,16); \ + a ^= c; a -= rot(c,4); \ + b ^= a; b -= rot(a,14); \ + c ^= b; c -= rot(b,24); \ +} + // now hash the data! + unsigned int a, b, c, len = 3; + a = b = c = 0xdeadbeef + (len << 2) + 13; + + c += kz; + b += ky; + a += kx; + final(a, b, c); + + return c; + // macros not needed anymore +#undef rot +#undef final +} + +MINLINE int imod(int a, int b) +{ + a %= b; + return a < 0 ? a + b : a; +} + +MINLINE unsigned int phash(int kx, int ky, int kz, int p[3]) +{ + return hash(imod(kx, p[0]), imod(ky, p[1]), imod(kz, p[2])); +} + +MINLINE float floorfrac(float x, int* i) +{ + *i = quick_floor(x); + return x - *i; +} + +MINLINE float fade(float t) +{ + return t * t * t * (t * (t * 6.0f - 15.0f) + 10.0f); +} + +MINLINE float nerp(float t, float a, float b) +{ + return (1.0f - t) * a + t * b; +} + +MINLINE 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; + return ((h&1) ? -u : u) + ((h&2) ? -v : v); +} + +MINLINE float scale3(float result) +{ + return 0.9820f * result; +} + +MINLINE float perlin(float x, float y, float z) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (hash (X , Y , Z ), fx , fy , fz ), + grad (hash (X+1, Y , Z ), fx-1.0f, fy , fz )), + nerp (u, grad (hash (X , Y+1, Z ), fx , fy-1.0f, fz ), + grad (hash (X+1, Y+1, Z ), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (hash (X , Y , Z+1), fx , fy , fz-1.0f ), + grad (hash (X+1, Y , Z+1), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (hash (X , Y+1, Z+1), fx , fy-1.0f, fz-1.0f ), + grad (hash (X+1, Y+1, Z+1), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +MINLINE float perlin_periodic(float x, float y, float z, float pperiod[3]) +{ + int X; float fx = floorfrac(x, &X); + int Y; float fy = floorfrac(y, &Y); + int Z; float fz = floorfrac(z, &Z); + + int p[3] = { + MAX2(quick_floor(pperiod[0]), 1), + MAX2(quick_floor(pperiod[1]), 1), + MAX2(quick_floor(pperiod[2]), 1)}; + + float u = fade(fx); + float v = fade(fy); + float w = fade(fz); + + float result; + + result = nerp (w, nerp (v, nerp (u, grad (phash (X , Y , Z , p), fx , fy , fz ), + grad (phash (X+1, Y , Z , p), fx-1.0f, fy , fz )), + nerp (u, grad (phash (X , Y+1, Z , p), fx , fy-1.0f, fz ), + grad (phash (X+1, Y+1, Z , p), fx-1.0f, fy-1.0f, fz ))), + nerp (v, nerp (u, grad (phash (X , Y , Z+1, p), fx , fy , fz-1.0f ), + grad (phash (X+1, Y , Z+1, p), fx-1.0f, fy , fz-1.0f )), + nerp (u, grad (phash (X , Y+1, Z+1, p), fx , fy-1.0f, fz-1.0f ), + grad (phash (X+1, Y+1, Z+1, p), fx-1.0f, fy-1.0f, fz-1.0f )))); + return scale3(result); +} + +/* perlin noise in range 0..1 */ +MINLINE float noise(float p[3]) +{ + float r = perlin(p[0], p[1], p[2]); + return 0.5f*r + 0.5f; +} + +/* perlin noise in range -1..1 */ +MINLINE float snoise(float p[3]) +{ + return perlin(p[0], p[1], p[2]); +} + +/* cell noise */ +MINLINE float cellnoise(float p[3]) +{ + unsigned int ix = quick_floor(p[0]); + unsigned int iy = quick_floor(p[1]); + unsigned int iz = quick_floor(p[2]); + + return bits_to_01(hash(ix, iy, iz)); +} + +MINLINE void cellnoise_color(float rgb[3], float p[3]) +{ + float pg[3] = {p[1], p[0], p[2]}; + float pb[3] = {p[1], p[2], p[0]}; + + float r = cellnoise(p); + float g = cellnoise(pg); + float b = cellnoise(pb); + + rgb[0]= r; + rgb[1]= g; + rgb[2]= b; +} + +/* periodic perlin noise in range 0..1 */ +MINLINE float pnoise(float p[3], float pperiod[3]) +{ + float r = perlin_periodic(p[0], p[1], p[2], pperiod); + return 0.5f*r + 0.5f; +} + +/* periodic perlin noise in range -1..1 */ +MINLINE float psnoise(float p[3], float pperiod[3]) +{ + return perlin_periodic(p[0], p[1], p[2], pperiod); +} + +/* + * 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. + */ + +/* turbulence */ +MINLINE float turbulence(float p[3], int oct, int hard) +{ + float amp = 1.0f, fscale = 1.0f, sum = 0.0f; + int i; + + for(i=0; i<=oct; i++, amp *= 0.5f, fscale *= 2.0f) { + float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; + float t = noise(pscale); + if(hard) t = fabsf(2.0f*t - 1.0f); + sum += t * amp; + } + + sum *= ((float)(1< 1.0f)? 1.0f: t; +} + +MINLINE float voronoi_F1S(float p[3]) { return 2.0f*voronoi_F1(p) - 1.0f; } +MINLINE float voronoi_F2S(float p[3]) { return 2.0f*voronoi_F2(p) - 1.0f; } +MINLINE float voronoi_F3S(float p[3]) { return 2.0f*voronoi_F3(p) - 1.0f; } +MINLINE float voronoi_F4S(float p[3]) { return 2.0f*voronoi_F4(p) - 1.0f; } +MINLINE float voronoi_F1F2S(float p[3]) { return 2.0f*voronoi_F1F2(p) - 1.0f; } +MINLINE float voronoi_CrS(float p[3]) { return 2.0f*voronoi_Cr(p) - 1.0f; } + +/* Noise Bases */ + +MINLINE float noise_basis(float p[3], int basis) +{ + if(basis == SHD_NOISE_PERLIN) + return noise(p); + if(basis == SHD_NOISE_VORONOI_F1) + return voronoi_F1S(p); + if(basis == SHD_NOISE_VORONOI_F2) + return voronoi_F2S(p); + if(basis == SHD_NOISE_VORONOI_F3) + return voronoi_F3S(p); + if(basis == SHD_NOISE_VORONOI_F4) + return voronoi_F4S(p); + if(basis == SHD_NOISE_VORONOI_F2_F1) + return voronoi_F1F2S(p); + if(basis == SHD_NOISE_VORONOI_CRACKLE) + return voronoi_CrS(p); + if(basis == SHD_NOISE_CELL_NOISE) + return cellnoise(p); + + return 0.0f; +} + +/* Soft/Hard Noise */ + +MINLINE float noise_basis_hard(float p[3], int basis, int hard) +{ + float t = noise_basis(p, basis); + return (hard)? fabsf(2.0f*t - 1.0f): t; +} + +/* Waves */ + +MINLINE float noise_wave(int wave, float a) +{ + if(wave == SHD_WAVE_SINE) { + return 0.5f + 0.5f*sin(a); + } + else if(wave == SHD_WAVE_SAW) { + float b = 2*M_PI; + int n = (int)(a / b); + a -= n*b; + if(a < 0) a += b; + + return a / b; + } + else if(wave == SHD_WAVE_TRI) { + float b = 2*M_PI; + float rmax = 1.0f; + + return rmax - 2.0f*fabsf(floorf((a*(1.0f/b))+0.5f) - (a*(1.0f/b))); + } + + return 0.0f; +} + +/* Turbulence */ + +MINLINE float noise_turbulence(float p[3], int basis, int octaves, int hard) +{ + float fscale = 1.0f; + float amp = 1.0f; + float sum = 0.0f; + int i; + + for(i = 0; i <= octaves; i++) { + float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; + float t = noise_basis(pscale, basis); + + if(hard) + t = fabsf(2.0f*t - 1.0f); + + sum += t*amp; + amp *= 0.5f; + fscale *= 2.0f; + } + + sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + + return sum; +} + +#endif /* NODE_SHADER_NOISE_H */ + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c new file mode 100644 index 00000000000..019921737c0 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c @@ -0,0 +1,58 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_lamp_in[]= { + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_lamp(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_output_lamp(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_LAMP, "Lamp Output", NODE_CLASS_OUTPUT, 0); + node_type_socket_templates(&ntype, sh_node_output_lamp_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_lamp); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c new file mode 100644 index 00000000000..a78d68596fb --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -0,0 +1,71 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_material_in[]= { + { SOCK_SHADER, 1, "Surface"}, + { SOCK_SHADER, 1, "Volume"}, + { SOCK_FLOAT, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_material(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_output_material(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *outlink; + + GPU_stack_link(mat, "node_output_material", in, out, &outlink); + GPU_material_output_link(mat, outlink); + + return 1; +} + + +/* node type definition */ +void register_node_type_sh_output_material(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT, 0); + node_type_socket_templates(&ntype, sh_node_output_material_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_material); + node_type_gpu(&ntype, node_shader_gpu_output_material); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_texture.c b/source/blender/nodes/shader/nodes/node_shader_output_texture.c new file mode 100644 index 00000000000..ad37746f541 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_texture.c @@ -0,0 +1,75 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_texture_in[]= { + { SOCK_RGBA, 1, "Color", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_texture(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out)) +{ + if(data && (node->flag & NODE_DO_OUTPUT)) { + ShaderCallData *scd= (ShaderCallData*)data; + TexResult *texres = scd->texres; + float col[4]; + + if(!texres) + return; + + nodestack_get_vec(col, SOCK_RGBA, in[0]); + + texres->tr= col[0]; + texres->tg= col[1]; + texres->tb= col[2]; + texres->ta= 1.0f; + + texres->tin= rgb_to_grayscale(col); + } +} + +/* node type definition */ +void register_node_type_sh_output_texture(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_TEXTURE, "Texture Output", NODE_CLASS_OUTPUT, 0); + node_type_socket_templates(&ntype, sh_node_output_texture_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_texture); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c new file mode 100644 index 00000000000..ee8c1f8addb --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -0,0 +1,59 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_world_in[]= { + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_output_world(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +/* node type definition */ +void register_node_type_sh_output_world(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT, 0); + node_type_socket_templates(&ntype, sh_node_output_world_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_output_world); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c new file mode 100644 index 00000000000..a42da334df2 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c @@ -0,0 +1,135 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +static float blend(float p[3], int type, int axis) +{ + float x, y; + + if(axis == SHD_BLEND_VERTICAL) { + x= p[1]; + y= p[0]; + } + else { + x= p[0]; + y= p[1]; + } + + if(type == SHD_BLEND_LINEAR) { + return (1.0f + x)/2.0f; + } + else if(type == SHD_BLEND_QUADRATIC) { + float r = MAX2((1.0f + x)/2.0f, 0.0f); + return r*r; + } + else if(type == SHD_BLEND_EASING) { + float r = MIN2(MAX2((1.0f + x)/2.0f, 0.0f), 1.0f); + float t = r*r; + + return (3.0f*t - 2.0f*t*r); + } + else if(type == SHD_BLEND_DIAGONAL) { + return (2.0f + x + y)/4.0f; + } + else if(type == SHD_BLEND_RADIAL) { + return atan2(y, x)/(2.0f*(float)M_PI) + 0.5f; + } + else { + float r = MAX2(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); + + if(type == SHD_BLEND_QUADRATIC_SPHERE) + return r*r; + else if(type == SHD_BLEND_SPHERICAL) + return r; + } + + return 0.0f; +} + +/* **************** BLEND ******************** */ + +static bNodeSocketTemplate sh_node_tex_blend_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_blend_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_blend(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexBlend *tex = MEM_callocN(sizeof(NodeTexBlend), "NodeTexBlend"); + tex->progression = SHD_BLEND_LINEAR; + tex->axis = SHD_BLEND_HORIZONTAL; + + node->storage = tex; +} + +static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexBlend *tex= (NodeTexBlend*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + out[0]->vec[0]= blend(vec, tex->progression, tex->axis); +} + +static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_blend", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_blend(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_BLEND, "Blend Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_blend_in, sh_node_tex_blend_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_blend); + node_type_storage(&ntype, "NodeTexBlend", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_blend); + node_type_gpu(&ntype, node_shader_gpu_tex_blend); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c new file mode 100644 index 00000000000..e140a587f87 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c @@ -0,0 +1,118 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float clouds(int basis, int hard, int depth, float size, float vec[3], float color[3]) +{ + float p[3], pg[3], pb[3]; + + mul_v3_v3fl(p, vec, 1.0f/size); + + pg[0]= p[1]; + pg[1]= p[0]; + pg[2]= p[2]; + + pb[0]= p[1]; + pb[1]= p[2]; + pb[2]= p[0]; + + color[0]= noise_turbulence(p, basis, depth, hard); + color[1]= noise_turbulence(pg, basis, depth, hard); + color[2]= noise_turbulence(pb, basis, depth, hard); + + return color[0]; +} + +/* **************** CLOUDS ******************** */ + +static bNodeSocketTemplate sh_node_tex_clouds_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_clouds_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_clouds(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexClouds *tex = MEM_callocN(sizeof(NodeTexClouds), "NodeTexClouds"); + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexClouds *tex= (NodeTexClouds*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + + out[1]->vec[0]= clouds(tex->basis, tex->hard, tex->depth, size, vec, out[0]->vec); +} + +static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_clouds", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_clouds(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_CLOUDS, "Clouds Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_clouds_in, sh_node_tex_clouds_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_clouds); + node_type_storage(&ntype, "NodeTexClouds", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_clouds); + node_type_gpu(&ntype, node_shader_gpu_tex_clouds); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c new file mode 100644 index 00000000000..5fdde7e23ce --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c @@ -0,0 +1,75 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +#include "DNA_customdata_types.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketTemplate sh_node_tex_coord_out[]= { + { SOCK_VECTOR, 0, "Generated", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Object", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Camera", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Window", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Reflection", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_tex_coord(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_tex_coord(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); + GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ""); + + return GPU_stack_link(mat, "node_tex_coord", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX), orco, mtface); +} + +/* node type definition */ +void register_node_type_sh_tex_coord(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0); + node_type_socket_templates(&ntype, NULL, sh_node_tex_coord_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_tex_coord); + node_type_gpu(&ntype, node_shader_gpu_tex_coord); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c new file mode 100644 index 00000000000..f91e6ee9f3d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c @@ -0,0 +1,115 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float distorted_noise(float vec[3], float size, int basis, int distortion_basis, float distortion) +{ + float p[3], r[3], p_offset[3], p_noffset[3]; + float offset[3] = {13.5f, 13.5f, 13.5f}; + + mul_v3_v3fl(p, vec, 1.0f/size); + add_v3_v3v3(p_offset, p, offset); + sub_v3_v3v3(p_noffset, p, offset); + + r[0] = noise_basis(p_offset, basis) * distortion; + r[1] = noise_basis(p, basis) * distortion; + r[2] = noise_basis(p_noffset, basis) * distortion; + + add_v3_v3(p, r); + + return noise_basis(p, distortion_basis); /* distorted-domain noise */ +} + +/* **************** OUTPUT ******************** */ + +static bNodeSocketTemplate sh_node_tex_distnoise_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Distortion", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_distnoise_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_distorted_noise(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexDistortedNoise *tex = MEM_callocN(sizeof(NodeTexDistortedNoise), "NodeTexDistortedNoise"); + tex->basis = SHD_NOISE_PERLIN; + tex->distortion_basis = SHD_NOISE_PERLIN; + + node->storage = tex; +} + +static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexDistortedNoise *tex= (NodeTexDistortedNoise*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, distortion; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&distortion, SOCK_FLOAT, in[2]); + + out[0]->vec[0]= distorted_noise(vec, size, tex->basis, tex->distortion_basis, distortion); +} + +static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_distnoise", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_distnoise(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_DISTNOISE, "Distorted Noise Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_distnoise_in, sh_node_tex_distnoise_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_distorted_noise); + node_type_storage(&ntype, "NodeTexDistortedNoise", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_distnoise); + node_type_gpu(&ntype, node_shader_gpu_tex_distnoise); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c new file mode 100644 index 00000000000..19271e0051b --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -0,0 +1,115 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_environment_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_environment_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexEnvironment *tex = MEM_callocN(sizeof(NodeTexEnvironment), "NodeTexEnvironment"); + tex->color_space = SHD_COLORSPACE_SRGB; + + node->storage = tex; +} + +static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + Image *ima= (Image*)node->id; + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexEnvironment *tex= (NodeTexEnvironment*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + if(ima) { + ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + + if(ibuf) { + float u= (atan2f(vec[1], vec[0]) + (float)M_PI)/(2*M_PI); + float v= atan2f(vec[2], hypotf(vec[0], vec[1]))/M_PI + 0.5f; + float rgb[4]; + + ibuf_sample(ibuf, u, v, 0.0f, 0.0f, rgb); + + if(tex->color_space == SHD_COLORSPACE_SRGB) + srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); + else + copy_v3_v3(out[0]->vec, rgb); + } + } +} + +static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_builtin(GPU_VIEW_POSITION); + + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); +} + +/* node type definition */ +void register_node_type_sh_tex_environment(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_ENVIRONMENT, "Environment Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_environment_in, sh_node_tex_environment_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_environment); + node_type_storage(&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_environment); + node_type_gpu(&ntype, node_shader_gpu_tex_environment); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.c new file mode 100644 index 00000000000..4ad6f387a7e --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c @@ -0,0 +1,113 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_image_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_image_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexImage *tex = MEM_callocN(sizeof(NodeTexImage), "NodeTexImage"); + tex->color_space = SHD_COLORSPACE_SRGB; + + node->storage = tex; +} + +static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + Image *ima= (Image*)node->id; + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexImage *tex= (NodeTexImage*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + if(ima) { + ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + + if(ibuf) { + float rgb[4]; + + ibuf_sample(ibuf, vec[0], vec[1], 0.0f, 0.0f, rgb); + + if(tex->color_space == SHD_COLORSPACE_SRGB) + srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); + else + copy_v3_v3(out[0]->vec, rgb); + } + } +} + +static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_attribute(CD_MTFACE, ""); + + return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); +} + +/* node type definition */ +void register_node_type_sh_tex_image(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_image_in, sh_node_tex_image_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_image); + node_type_storage(&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_image); + node_type_gpu(&ntype, node_shader_gpu_tex_image); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c new file mode 100644 index 00000000000..d15fff44883 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c @@ -0,0 +1,169 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +static void magic(float rgb[3], float p[3], int n, float turbulence) +{ + float turb = turbulence/5.0f; + + float x = sinf((p[0] + p[1] + p[2])*5.0f); + float y = cosf((-p[0] + p[1] - p[2])*5.0f); + float z = -cosf((-p[0] - p[1] + p[2])*5.0f); + + if(n > 0) { + x *= turb; + y *= turb; + z *= turb; + y = -cosf(x-y+z); + y *= turb; + + if(n > 1) { + x= cosf(x-y-z); + x *= turb; + + if(n > 2) { + z= sinf(-x-y-z); + z *= turb; + + if(n > 3) { + x= -cosf(-x+y-z); + x *= turb; + + if(n > 4) { + y= -sinf(-x+y+z); + y *= turb; + + if(n > 5) { + y= -cosf(-x+y+z); + y *= turb; + + if(n > 6) { + x= cosf(x+y+z); + x *= turb; + + if(n > 7) { + z= sinf(x+y-z); + z *= turb; + + if(n > 8) { + x= -cosf(-x-y+z); + x *= turb; + + if(n > 9) { + y= -sinf(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0f) { + turb *= 2.0f; + x /= turb; + y /= turb; + z /= turb; + } + + rgb[0]= 0.5f - x; + rgb[1]= 0.5f - y; + rgb[2]= 0.5f - z; +} + +/* **************** OUTPUT ******************** */ + +static bNodeSocketTemplate sh_node_tex_magic_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_magic_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_magic(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexMagic *tex = MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic"); + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMagic *tex= (NodeTexMagic*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&turbulence, SOCK_FLOAT, in[1]); + + magic(out[0]->vec, vec, tex->depth, turbulence); +} + +static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + NodeTexMagic *tex = (NodeTexMagic*)node->storage; + float depth = tex->depth; + + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_magic", in, out, GPU_uniform(&depth)); +} + +/* node type definition */ +void register_node_type_sh_tex_magic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_magic_in, sh_node_tex_magic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_magic); + node_type_storage(&ntype, "NodeTexMagic", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_magic); + node_type_gpu(&ntype, node_shader_gpu_tex_magic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c new file mode 100644 index 00000000000..fe707ee6359 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c @@ -0,0 +1,123 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float marble(float vec[3], float size, int type, int wave, int basis, int hard, float turb, int depth) +{ + float p[3]; + float x = vec[0]; + float y = vec[1]; + float z = vec[2]; + float n = 5.0f * (x + y + z); + float mi; + + mul_v3_v3fl(p, vec, 1.0f/size); + + mi = n + turb * noise_turbulence(p, basis, depth, hard); + + mi = noise_wave(wave, mi); + + if(type == SHD_MARBLE_SHARP) + mi = sqrt(mi); + else if(type == SHD_MARBLE_SHARPER) + mi = sqrt(sqrt(mi)); + + return mi; +} + +/* **************** MARBLE ******************** */ + +static bNodeSocketTemplate sh_node_tex_marble_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_marble_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_marble(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexMarble *tex = MEM_callocN(sizeof(NodeTexMarble), "NodeTexMarble"); + tex->type = SHD_MARBLE_SOFT; + tex->wave = SHD_WAVE_SINE; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + tex->depth = 2; + + node->storage = tex; +} + +static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMarble *tex= (NodeTexMarble*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); + + out[0]->vec[0]= marble(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence, tex->depth); +} + +static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_marble", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_marble(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MARBLE, "Marble Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_marble_in, sh_node_tex_marble_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_marble); + node_type_storage(&ntype, "NodeTexMarble", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_marble); + node_type_gpu(&ntype, node_shader_gpu_tex_marble); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c new file mode 100644 index 00000000000..a0a24559518 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c @@ -0,0 +1,288 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +/* Musgrave fBm + * + * H: fractal increment parameter + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * + * from "Texturing and Modelling: A procedural approach" + */ + +static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 0.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value += noise_basis(p, basis) * pwr; + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value += rmd * noise_basis(p, basis) * pwr; + + return value; +} + +/* Musgrave Multifractal + * + * H: highest fractal dimension + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + */ + +static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves) +{ + float rmd; + float value = 1.0f; + float pwr = 1.0f; + float pwHL = pow(lacunarity, -H); + int i; + + for(i = 0; i < (int)octaves; i++) { + value *= (pwr * noise_basis(p, basis) + 1.0f); + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + value *= (rmd * pwr * noise_basis(p, basis) + 1.0f); /* correct? */ + + return value; +} + +/* Musgrave Heterogeneous Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_hetero_terrain(float p[3], int basis, float H, float lacunarity, float octaves, float offset) +{ + float value, increment, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + /* first unscaled octave of function; later octaves are scaled */ + value = offset + noise_basis(p, basis); + mul_v3_fl(p, lacunarity); + + for(i = 1; i < (int)octaves; i++) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += increment; + pwr *= pwHL; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) { + increment = (noise_basis(p, basis) + offset) * pwr * value; + value += rmd * increment; + } + + return value; +} + +/* Hybrid Additive/Multiplicative Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight, rmd; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + result = noise_basis(p, basis) + offset; + weight = gain * result; + mul_v3_fl(p, lacunarity); + + for(i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { + if(weight > 1.0f) + weight = 1.0f; + + signal = (noise_basis(p, basis) + offset) * pwr; + pwr *= pwHL; + result += weight * signal; + weight *= gain * signal; + mul_v3_fl(p, lacunarity); + } + + rmd = octaves - floor(octaves); + if(rmd != 0.0f) + result += rmd * ((noise_basis(p, basis) + offset) * pwr); + + return result; +} + +/* Ridged Multifractal Terrain + * + * H: fractal dimension of the roughest area + * lacunarity: gap between successive frequencies + * octaves: number of frequencies in the fBm + * offset: raises the terrain from `sea level' + */ + +static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +{ + float result, signal, weight; + float pwHL = pow(lacunarity, -H); + float pwr = pwHL; + int i; + + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + result = signal; + weight = 1.0f; + + for(i = 1; i < (int)octaves; i++) { + mul_v3_fl(p, lacunarity); + weight = CLAMPIS(signal * gain, 0.0f, 1.0f); + signal = offset - fabsf(noise_basis(p, basis)); + signal *= signal; + signal *= weight; + result += signal * pwr; + pwr *= pwHL; + } + + return result; +} + +static float musgrave(int type, int basis, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float size, float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1.0f/size); + + if(type == SHD_MUSGRAVE_MULTIFRACTAL) + return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); + else if(type == SHD_MUSGRAVE_FBM) + return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, octaves); + else if(type == SHD_MUSGRAVE_HYBRID_MULTIFRACTAL) + return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == SHD_MUSGRAVE_RIDGED_MULTIFRACTAL) + return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + else if(type == SHD_MUSGRAVE_HETERO_TERRAIN) + return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, octaves, offset); + + return 0.0f; +} + +/* **************** MUSGRAVE ******************** */ + +static bNodeSocketTemplate sh_node_tex_musgrave_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Dimension", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Lacunarity", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Octaves", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Gain", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_musgrave_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_musgrave(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexMusgrave *tex = MEM_callocN(sizeof(NodeTexMusgrave), "NodeTexMusgrave"); + tex->type = SHD_MUSGRAVE_FBM; + tex->basis = SHD_NOISE_PERLIN; + + node->storage = tex; +} + +static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexMusgrave *tex= (NodeTexMusgrave*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, dimension, lacunarity, octaves, offset, gain; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&dimension, SOCK_FLOAT, in[2]); + nodestack_get_vec(&lacunarity, SOCK_FLOAT, in[3]); + nodestack_get_vec(&octaves, SOCK_FLOAT, in[4]); + nodestack_get_vec(&offset, SOCK_FLOAT, in[5]); + nodestack_get_vec(&gain, SOCK_FLOAT, in[6]); + + out[0]->vec[0]= musgrave(tex->type, tex->basis, dimension, lacunarity, octaves, offset, 1.0f, gain, size, vec); +} + +static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_musgrave", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_musgrave(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MUSGRAVE, "Musgrave Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_musgrave_in, sh_node_tex_musgrave_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_musgrave); + node_type_storage(&ntype, "NodeTexMusgrave", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_musgrave); + node_type_gpu(&ntype, node_shader_gpu_tex_musgrave); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c new file mode 100644 index 00000000000..9785c4473f5 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c @@ -0,0 +1,100 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float noise_texture_value(float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1e8f); + return cellnoise(p); +} + +static void noise_texture_color(float rgb[3], float vec[3]) +{ + float p[3]; + + mul_v3_v3fl(p, vec, 1e8f); + cellnoise_color(rgb, p); +} + +/* **************** NOISE ******************** */ + +static bNodeSocketTemplate sh_node_tex_noise_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_noise_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + bNodeSocket *vecsock = node->inputs.first; + float vec[3]; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + noise_texture_color(out[0]->vec, vec); + out[1]->vec[0]= noise_texture_value(vec); +} + +static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_noise", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_noise(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_NOISE, "Noise Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_noise_in, sh_node_tex_noise_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_tex_noise); + node_type_gpu(&ntype, node_shader_gpu_tex_noise); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c new file mode 100644 index 00000000000..6c155458245 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c @@ -0,0 +1,82 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_sky_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_sky_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_sky(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexSky *tex = MEM_callocN(sizeof(NodeTexSky), "NodeTexSky"); + tex->sun_direction[0] = 0.0f; + tex->sun_direction[1] = 0.0f; + tex->sun_direction[2] = 1.0f; + tex->turbidity = 2.2f; + + node->storage = tex; +} + +static void node_shader_exec_tex_sky(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_sky", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_sky(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_SKY, "Sky Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_sky_in, sh_node_tex_sky_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_sky); + node_type_storage(&ntype, "NodeTexSky", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_sky); + node_type_gpu(&ntype, node_shader_gpu_tex_sky); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c new file mode 100644 index 00000000000..22ea8d32047 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c @@ -0,0 +1,118 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float stucci(int type, int basis, int hard, float turbulence, float size, float vec[3]) +{ + float p[3], b2, ofs, r; + + mul_v3_v3fl(p, vec, 1.0f/size); + b2 = noise_basis_hard(p, basis, hard); + ofs = turbulence/200.0f; + + if(type != SHD_STUCCI_PLASTIC) + ofs *= b2*b2; + + p[2] += ofs; + r = noise_basis_hard(p, basis, hard); + + if(type == SHD_STUCCI_WALL_OUT) + r = 1.0f - r; + + return MAX2(r, 0.0f); +} + +/* **************** STUCCI ******************** */ + +static bNodeSocketTemplate sh_node_tex_stucci_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Turbulence", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_stucci_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_stucci(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexStucci *tex = MEM_callocN(sizeof(NodeTexStucci), "NodeTexStucci"); + tex->type = SHD_STUCCI_PLASTIC; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + + node->storage = tex; +} + +static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexStucci *tex= (NodeTexStucci*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); + + out[0]->vec[0]= stucci(tex->type, tex->basis, tex->hard, turbulence, size, vec); +} + +static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_stucci", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_stucci(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_STUCCI, "Stucci Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_stucci_in, sh_node_tex_stucci_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_stucci); + node_type_storage(&ntype, "NodeTexStucci", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_stucci); + node_type_gpu(&ntype, node_shader_gpu_tex_stucci); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c new file mode 100644 index 00000000000..16c694575c1 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c @@ -0,0 +1,164 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float voronoi_tex(int distance_metric, int coloring, + float weight1, float weight2, float weight3, float weight4, + float exponent, float intensity, float size, float vec[3], float color[3]) +{ + float aw1 = fabsf(weight1); + float aw2 = fabsf(weight2); + float aw3 = fabsf(weight3); + float aw4 = fabsf(weight4); + float sc = (aw1 + aw2 + aw3 + aw4); + float da[4]; + float pa[4][3]; + float fac; + float p[3]; + + if(sc != 0.0f) + sc = intensity/sc; + + /* compute distance and point coordinate of 4 nearest neighbours */ + mul_v3_v3fl(p, vec, 1.0f/size); + voronoi_generic(p, distance_metric, exponent, da, pa); + + /* Scalar output */ + fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + + /* colored output */ + if(coloring == SHD_VORONOI_INTENSITY) { + color[0]= color[1]= color[2]= fac; + } + else { + float rgb1[3], rgb2[3], rgb3[3], rgb4[3]; + + cellnoise_color(rgb1, pa[0]); + cellnoise_color(rgb2, pa[1]); + cellnoise_color(rgb3, pa[2]); + cellnoise_color(rgb4, pa[3]); + + mul_v3_v3fl(color, rgb1, aw1); + madd_v3_v3fl(color, rgb2, aw2); + madd_v3_v3fl(color, rgb3, aw3); + madd_v3_v3fl(color, rgb4, aw4); + + if(coloring != SHD_VORONOI_POSITION) { + float t1 = MIN2((da[1] - da[0])*10.0f, 1.0f); + + if(coloring == SHD_VORONOI_POSITION_OUTLINE_INTENSITY) + mul_v3_fl(color, t1*fac); + else if(coloring == SHD_VORONOI_POSITION_OUTLINE) + mul_v3_fl(color, t1*sc); + } + else { + mul_v3_fl(color, sc); + } + } + + return fac; +} + +/* **************** VORONOI ******************** */ + +static bNodeSocketTemplate sh_node_tex_voronoi_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Weight1", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_FLOAT, 1, "Weight2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_FLOAT, 1, "Weight3", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_FLOAT, 1, "Weight4", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_FLOAT, 1, "Exponent", 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_voronoi_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_voronoi(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexVoronoi *tex = MEM_callocN(sizeof(NodeTexVoronoi), "NodeTexVoronoi"); + tex->distance_metric = SHD_VORONOI_ACTUAL_DISTANCE; + tex->coloring = SHD_VORONOI_INTENSITY; + + node->storage = tex; +} + +static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexVoronoi *tex= (NodeTexVoronoi*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, w1, w2, w3, w4, exponent; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&w1, SOCK_FLOAT, in[2]); + nodestack_get_vec(&w2, SOCK_FLOAT, in[3]); + nodestack_get_vec(&w3, SOCK_FLOAT, in[4]); + nodestack_get_vec(&w4, SOCK_FLOAT, in[5]); + nodestack_get_vec(&exponent, SOCK_FLOAT, in[6]); + + out[1]->vec[0]= voronoi_tex(tex->distance_metric, tex->coloring, w1, w2, w3, w4, + exponent, 1.0f, size, vec, out[0]->vec); +} + +static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_voronoi", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_voronoi(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_VORONOI, "Voronoi Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_voronoi_in, sh_node_tex_voronoi_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_voronoi); + node_type_storage(&ntype, "NodeTexVoronoi", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_voronoi); + node_type_gpu(&ntype, node_shader_gpu_tex_voronoi); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c new file mode 100644 index 00000000000..5ae69524379 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c @@ -0,0 +1,125 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float wood(float p[3], float size, int type, int wave, int basis, unsigned int hard, float turb) +{ + float x = p[0]; + float y = p[1]; + float z = p[2]; + + if(type == SHD_WOOD_BANDS) { + return noise_wave(wave, (x + y + z)*10.0f); + } + else if(type == SHD_WOOD_RINGS) { + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f); + } + else if (type == SHD_WOOD_BAND_NOISE) { + float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; + float wi = turb*noise_basis_hard(psize, basis, hard); + return noise_wave(wave, (x + y + z)*10.0f + wi); + } + else if (type == SHD_WOOD_RING_NOISE) { + float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; + float wi = turb*noise_basis_hard(psize, basis, hard); + return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f + wi); + } + + return 0.0f; +} + +/* **************** WOOD ******************** */ + +static bNodeSocketTemplate sh_node_tex_wood_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_wood_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_init_tex_wood(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeTexWood *tex = MEM_callocN(sizeof(NodeTexWood), "NodeTexWood"); + tex->type = SHD_WOOD_BANDS; + tex->wave = SHD_WAVE_SINE; + tex->basis = SHD_NOISE_PERLIN; + tex->hard = 0; + + node->storage = tex; +} + +static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexWood *tex= (NodeTexWood*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], size, turbulence; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&size, SOCK_FLOAT, in[1]); + nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); + + out[0]->vec[0]= wood(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence); +} + +static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + if(!in[0].link) + in[0].link = GPU_attribute(CD_ORCO, ""); + + return GPU_stack_link(mat, "node_tex_wood", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_wood(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_WOOD, "Wood Texture", NODE_CLASS_TEXTURE, 0); + node_type_socket_templates(&ntype, sh_node_tex_wood_in, sh_node_tex_wood_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_wood); + node_type_storage(&ntype, "NodeTexWood", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_wood); + node_type_gpu(&ntype, node_shader_gpu_tex_wood); + + nodeRegisterType(lb, &ntype); +}; + -- cgit v1.2.3 From 18f2cd74ab7204a65687d368eac4fb53ca188bf5 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 17 Sep 2011 15:27:52 +0000 Subject: Cycles: * Fix node tree identifier. MATERIAL > SHADER. This fixes some of the node buttons not showing up after recent merge. --- source/blender/makesrna/intern/rna_nodetree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 36a5fd9c322..64086e76e5e 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -58,7 +58,7 @@ #include "MEM_guardedalloc.h" EnumPropertyItem nodetree_type_items[] = { - {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes" }, + {NTREE_SHADER, "SHADER", ICON_MATERIAL, "Shader", "Shader nodes" }, {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes" }, {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes" }, {0, NULL, 0, NULL, NULL} -- cgit v1.2.3 From 2d1f9cf448d2a34dd9316832583f570f8f24d72a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 17 Sep 2011 20:49:49 +0000 Subject: Cycles: fix math nodes not working after merge. --- source/blender/nodes/shader/nodes/node_shader_math.c | 4 ++-- source/blender/nodes/shader/nodes/node_shader_vectMath.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index 592779d6803..fc9f6bad4bf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -37,8 +37,8 @@ /* **************** SCALAR MATH ******************** */ static bNodeSocketTemplate sh_node_math_in[]= { - { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, - { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value1", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value2", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c index ca31d879e3e..e99c8f91b94 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vectMath.c +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -38,8 +38,8 @@ /* **************** VECTOR MATH ******************** */ static bNodeSocketTemplate sh_node_vect_math_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, - { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Vector1", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Vector2", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, { -1, 0, "" } }; -- cgit v1.2.3 From 08d52fcc8509fdd88af6afecd55e32cae500cef8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 18 Sep 2011 04:55:22 +0000 Subject: added FindOpenImageIO cmake module. --- CMakeLists.txt | 41 +++++++++------ build_files/cmake/Modules/FindOpenImageIO.cmake | 70 +++++++++++++++++++++++++ build_files/cmake/macros.cmake | 2 +- intern/cycles/CMakeLists.txt | 4 +- intern/cycles/app/CMakeLists.txt | 2 +- 5 files changed, 98 insertions(+), 21 deletions(-) create mode 100644 build_files/cmake/Modules/FindOpenImageIO.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a32742daf9c..b08ee065e1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -522,17 +522,23 @@ if(UNIX AND NOT APPLE) endif() if(WITH_OPENIMAGEIO) + + # temp, update if(CYCLES_OIIO) - set(OPENIMAGEIO ${CYCLES_OIIO} CACHE PATH "OpenImageIO Directory") + set(OPENIMAGEIO_ROOT_DIR ${CYCLES_OIIO}) unset(CYCLES_OIIO CACHE) - else() - set(OPENIMAGEIO "/usr" CACHE PATH "OpenImageIO Directory") endif() - set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) - set(OPENIMAGEIO_LIBRARY OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + find_package(OpenImageIO) + + set(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) + set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere set(OPENIMAGEIO_DEFINITIONS) + + if(NOT OPENIMAGEIO_FOUND) + set(WITH_OPENIMAGEIO OFF) + endif() + endif() # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed @@ -843,10 +849,10 @@ elseif(WIN32) endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) - set(OPENIMAGEIO_LIBRARY OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + set(OPENIMAGEIO_ROOT_DIR ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO_LIBRARIES OpenImageIO) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() @@ -978,10 +984,10 @@ elseif(WIN32) endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) - set(OPENIMAGEIO_LIBRARY OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) + set(OPENIMAGEIO_ROOT_DIR ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO_LIBRARIES OpenImageIO) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() @@ -1205,9 +1211,9 @@ elseif(APPLE) if(WITH_OPENIMAGEIO) set(OPENIMAGEIO ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include) - set(OPENIMAGEIO_LIBRARY OpenImageIO ${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_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO_LIBRARIES OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES}) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH}) set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD") endif() @@ -1529,6 +1535,7 @@ if(FIRST_RUN) info_cfg_option(WITH_IMAGE_OPENJPEG) info_cfg_option(WITH_IMAGE_REDCODE) info_cfg_option(WITH_IMAGE_TIFF) + info_cfg_option(WITH_OPENIMAGEIO) info_cfg_text("Audio:") info_cfg_option(WITH_OPENAL) diff --git a/build_files/cmake/Modules/FindOpenImageIO.cmake b/build_files/cmake/Modules/FindOpenImageIO.cmake new file mode 100644 index 00000000000..7512b93e09e --- /dev/null +++ b/build_files/cmake/Modules/FindOpenImageIO.cmake @@ -0,0 +1,70 @@ +# - Find OpenImageIO library +# Find the native OpenImageIO includes and library +# This module defines +# OPENIMAGEIO_INCLUDE_DIRS, where to find openimageio.h, Set when +# OPENIMAGEIO_INCLUDE_DIR is found. +# OPENIMAGEIO_LIBRARIES, libraries to link against to use OpenImageIO. +# OPENIMAGEIO_ROOT_DIR, The base directory to search for OpenImageIO. +# This can also be an environment variable. +# OPENIMAGEIO_FOUND, If false, do not try to use OpenImageIO. +# +# also defined, but not for general use are +# OPENIMAGEIO_LIBRARY, where to find the OpenImageIO library. + +#============================================================================= +# Copyright 2011 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 OPENIMAGEIO_ROOT_DIR was defined in the environment, use it. +IF(NOT OPENIMAGEIO_ROOT_DIR AND NOT $ENV{OPENIMAGEIO_ROOT_DIR} STREQUAL "") + SET(OPENIMAGEIO_ROOT_DIR $ENV{OPENIMAGEIO_ROOT_DIR}) +ENDIF() + +SET(_openimageio_SEARCH_DIRS + ${OPENIMAGEIO_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave +) + +FIND_PATH(OPENIMAGEIO_INCLUDE_DIR + NAMES + OpenImageIO/imageio.h + HINTS + ${_openimageio_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +FIND_LIBRARY(OPENIMAGEIO_LIBRARY + NAMES + OpenImageIO + HINTS + ${_openimageio_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + +# handle the QUIETLY and REQUIRED arguments and set OPENIMAGEIO_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageIO DEFAULT_MSG + OPENIMAGEIO_LIBRARY OPENIMAGEIO_INCLUDE_DIR) + +IF(OPENIMAGEIO_FOUND) + SET(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY}) + SET(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR}) +ENDIF(OPENIMAGEIO_FOUND) + +MARK_AS_ADVANCED( + OPENIMAGEIO_INCLUDE_DIR + OPENIMAGEIO_LIBRARY +) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 236c20cf8d3..9671bffe2bd 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -279,7 +279,7 @@ macro(setup_liblinks target_link_libraries(${target} ${TIFF_LIBRARY}) endif() if(WITH_OPENIMAGEIO) - target_link_libraries(${target} ${OPENIMAGEIO_LIBRARY}) + target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES}) endif() if(WITH_BOOST) target_link_libraries(${target} ${BOOST_LIBRARIES}) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 0041f11c288..d0b24c879a1 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -59,8 +59,8 @@ add_definitions(-DWITH_MULTI) include_directories( ${BOOST_INCLUDE_DIR} - ${OPENIMAGEIO_INCLUDE_DIR} - ${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO) + ${OPENIMAGEIO_INCLUDE_DIRS} + ${OPENIMAGEIO_INCLUDE_DIRS}/OpenImageIO) # Subdirectories diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index 4ef5fd6857d..ef6a80fbe5d 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -19,7 +19,7 @@ set(LIBRARIES ${BOOST_LIBRARIES} ${OPENGL_LIBRARIES} ${CYCLES_GLEW_LIBRARY} - ${OPENIMAGEIO_LIBRARY}) + ${OPENIMAGEIO_LIBRARIES}) link_directories(${OPENIMAGEIO_LIBPATH} ${BOOST_LIBPATH}) -- cgit v1.2.3 From 61f77fffac0e58142420100b8ead7c854e15fbb8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 18 Sep 2011 15:00:39 +0000 Subject: Cycles: fix openimageio build issues on mac/linux. --- CMakeLists.txt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b08ee065e1a..3620b7dc2d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -525,10 +525,11 @@ if(UNIX AND NOT APPLE) # temp, update if(CYCLES_OIIO) - set(OPENIMAGEIO_ROOT_DIR ${CYCLES_OIIO}) + set(OPENIMAGEIO ${CYCLES_OIIO}) unset(CYCLES_OIIO CACHE) endif() + set(OPENIMAGEIO_ROOT_DIR ${OPENIMAGEIO}) find_package(OpenImageIO) set(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) @@ -849,10 +850,10 @@ elseif(WIN32) endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO_ROOT_DIR ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() @@ -984,10 +985,10 @@ elseif(WIN32) endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO_ROOT_DIR ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() @@ -1211,9 +1212,9 @@ elseif(APPLE) if(WITH_OPENIMAGEIO) set(OPENIMAGEIO ${LIBDIR}/openimageio) - set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_ROOT_DIR}/include) + set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES}) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO_ROOT_DIR}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH}) + set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH}) set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD") endif() -- cgit v1.2.3 From e9b967d05b366783a93d92d6935e970c1ea42edd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 19 Sep 2011 11:57:31 +0000 Subject: Cycles: remove deprecated strict aliasing flag for opencl, fix missing update modifying object layer in properties editor, and add memarena utility. --- intern/cycles/device/device_opencl.cpp | 2 +- intern/cycles/util/CMakeLists.txt | 2 + intern/cycles/util/util_memarena.cpp | 61 +++++++++++++++++++++++++++++ intern/cycles/util/util_memarena.h | 48 +++++++++++++++++++++++ intern/cycles/util/util_transform.h | 5 +++ source/blender/makesrna/intern/rna_object.c | 2 + 6 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 intern/cycles/util/util_memarena.cpp create mode 100644 intern/cycles/util/util_memarena.h diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index a87b12786b1..bd26f4a78fb 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -264,7 +264,7 @@ public: string build_options = ""; build_options += "-I " + kernel_path + ""; /* todo: escape path */ - build_options += " -cl-fast-relaxed-math -cl-strict-aliasing"; + build_options += " -cl-fast-relaxed-math "; ciErr = clBuildProgram(cpProgram, 0, NULL, build_options.c_str(), NULL, NULL); diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index 3adf483643f..a7f7c663509 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -9,6 +9,7 @@ set(sources util_cuda.cpp util_dynlib.cpp util_md5.cpp + util_memarena.cpp util_opencl.c util_path.cpp util_string.cpp @@ -35,6 +36,7 @@ set(headers util_map.h util_math.h util_md5.h + util_memarena.h util_opencl.h util_opengl.h util_param.h diff --git a/intern/cycles/util/util_memarena.cpp b/intern/cycles/util/util_memarena.cpp new file mode 100644 index 00000000000..e7ae0d6b272 --- /dev/null +++ b/intern/cycles/util/util_memarena.cpp @@ -0,0 +1,61 @@ +/* + * 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 "util_foreach.h" +#include "util_math.h" +#include "util_memarena.h" + +CCL_NAMESPACE_BEGIN + +MemArena::MemArena(bool use_calloc_, size_t buffer_size_) +{ + use_calloc = use_calloc_; + buffer_size = buffer_size_; + + last_left = 0; + last_buffer = NULL; +} + +MemArena::~MemArena() +{ + foreach(uint8_t *buffer, buffers) + delete [] buffer; +} + +void *MemArena::alloc(size_t size) +{ + if(size > last_left) { + last_left = (size > buffer_size)? size: buffer_size; + last_buffer = new uint8_t[last_left]; + + if(use_calloc) + memset(last_buffer, 0, last_left); + + buffers.push_back(last_buffer); + } + + uint8_t *mem = last_buffer; + + last_buffer += size; + last_left -= size; + + return (void*)mem; +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/util/util_memarena.h b/intern/cycles/util/util_memarena.h new file mode 100644 index 00000000000..3b4b761509e --- /dev/null +++ b/intern/cycles/util/util_memarena.h @@ -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. + */ + +#ifndef __UTIL_MEMARENA_H__ +#define __UTIL_MEMARENA_H__ + +#include + +#include "util_list.h" +#include "util_types.h" + +CCL_NAMESPACE_BEGIN + +class MemArena { +public: + MemArena(bool use_calloc = true, size_t buffer_size = (1<<14)); + ~MemArena(); + + void *alloc(size_t size); + +protected: + bool use_calloc; + size_t buffer_size; + + list buffers; + uint8_t *last_buffer; + size_t last_left; +}; + +CCL_NAMESPACE_END + +#endif /* __UTIL_MEMARENA_H__ */ + diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h index 998d4161ebf..c43736fb2e4 100644 --- a/intern/cycles/util/util_transform.h +++ b/intern/cycles/util/util_transform.h @@ -30,6 +30,11 @@ CCL_NAMESPACE_BEGIN typedef struct Transform { float4 x, y, z, w; /* rows */ + +#ifndef __KERNEL_GPU__ + float4 operator[](int i) const { return *(&x + i); } + float4& operator[](int i) { return *(&x + i); } +#endif } Transform; __device_inline float3 transform(const Transform *t, const float3 a) diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index a27b6b2d72c..790c24ba2d7 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -284,6 +284,8 @@ static void rna_Object_layer_update__internal(Main *bmain, Scene *scene, Base *b else { DAG_scene_sort(bmain, scene); } + + DAG_id_type_tag(bmain, ID_OB); } static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) -- cgit v1.2.3 From 508bfebf361be55601b1bdbb9267c47c53da4c00 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 21 Sep 2011 11:54:28 +0000 Subject: Cycles: another bugfix for mix closure sampling + bump. --- intern/cycles/render/svm.cpp | 65 ++++++++++++++++++++++++++++++++------------ intern/cycles/render/svm.h | 12 +++++++- 2 files changed, 59 insertions(+), 18 deletions(-) diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index c9bbeecc3a4..8b527691bd9 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -156,6 +156,34 @@ int SVMCompiler::stack_find_offset(ShaderSocketType type) return offset; } +void SVMCompiler::stack_backup(StackBackup& backup, set& done) +{ + backup.done = done; + backup.stack = active_stack; + + foreach(ShaderNode *node, current_graph->nodes) { + foreach(ShaderInput *input, node->inputs) + backup.offsets.push_back(input->stack_offset); + foreach(ShaderOutput *output, node->outputs) + backup.offsets.push_back(output->stack_offset); + } +} + +void SVMCompiler::stack_restore(StackBackup& backup, set& done) +{ + int i = 0; + + done = backup.done; + active_stack = backup.stack; + + foreach(ShaderNode *node, current_graph->nodes) { + foreach(ShaderInput *input, node->inputs) + input->stack_offset = backup.offsets[i++]; + foreach(ShaderOutput *output, node->outputs) + output->stack_offset = backup.offsets[i++]; + } +} + void SVMCompiler::stack_assign(ShaderInput *input) { /* stack offset assign? */ @@ -354,13 +382,8 @@ void SVMCompiler::generate_svm_nodes(const set& nodes, set done, Stack stack) +void SVMCompiler::generate_closure(ShaderNode *node, set& done) { - /* note that done and stack are passed by value, that's intentional - because different branches of the closure tree should not influence - each other */ - active_stack = stack; - if(node->name == ustring("mix_closure") || node->name == ustring("add_closure")) { ShaderInput *fin = node->input("Fac"); ShaderInput *cl1in = node->input("Closure1"); @@ -383,11 +406,17 @@ void SVMCompiler::generate_closure(ShaderNode *node, set done, Stac else add_node(NODE_ADD_CLOSURE, 0, 0, 0); - /* generate code for closure 1 */ + /* generate code for closure 1 + note we backup all compiler state and restore it afterwards, so one + closure choice doesn't influence the other*/ if(cl1in->link) { - generate_closure(cl1in->link->parent, done, stack); + StackBackup backup; + stack_backup(backup, done); + + generate_closure(cl1in->link->parent, done); add_node(NODE_END, 0, 0, 0); - active_stack = stack; + + stack_restore(backup, done); } else add_node(NODE_END, 0, 0, 0); @@ -396,9 +425,13 @@ void SVMCompiler::generate_closure(ShaderNode *node, set done, Stac int cl2_offset = svm_nodes.size(); if(cl2in->link) { - generate_closure(cl2in->link->parent, done, stack); + StackBackup backup; + stack_backup(backup, done); + + generate_closure(cl2in->link->parent, done); add_node(NODE_END, 0, 0, 0); - active_stack = stack; + + stack_restore(backup, done); } else add_node(NODE_END, 0, 0, 0); @@ -530,6 +563,7 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty */ current_type = type; + current_graph = graph; /* get input in output node */ ShaderNode *node = graph->output(); @@ -576,13 +610,10 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty if(generate) { set done; - if(use_multi_closure) { + if(use_multi_closure) generate_multi_closure(clin->link->parent, done, SVM_STACK_INVALID); - } - else { - Stack stack; - generate_closure(clin->link->parent, done, stack); - } + else + generate_closure(clin->link->parent, done); } } diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index 4c23e931e09..d66d3816068 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -104,6 +104,15 @@ protected: int users[SVM_STACK_SIZE]; }; + struct StackBackup { + Stack stack; + vector offsets; + set done; + }; + + void stack_backup(StackBackup& backup, set& done); + void stack_restore(StackBackup& backup, set& done); + void stack_clear_temporary(ShaderNode *node); int stack_size(ShaderSocketType type); int stack_find_offset(ShaderSocketType type); @@ -113,7 +122,7 @@ protected: void find_dependencies(set& dependencies, const set& done, ShaderInput *input); void generate_svm_nodes(const set& nodes, set& done); - void generate_closure(ShaderNode *node, set done, Stack stack); + void generate_closure(ShaderNode *node, set& done); void generate_multi_closure(ShaderNode *node, set& done, uint in_offset); void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type); @@ -121,6 +130,7 @@ protected: vector svm_nodes; ShaderType current_type; Shader *current_shader; + ShaderGraph *current_graph; Stack active_stack; int max_stack_use; uint mix_weight_offset; -- cgit v1.2.3 From d1ef6ac79b9bc6f17e61802bea3c3c2fbfcfcfd0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 23 Sep 2011 11:15:47 +0000 Subject: Cycles: fix node name sometimes missing in node link menu text. --- source/blender/editors/interface/interface_node.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 354423a4db3..896924a10b5 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -138,16 +138,19 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) { if(sock->link && sock->link->fromnode) { bNode *node = sock->link->fromnode; + char node_name[UI_MAX_NAME_STR]; if(node->type == NODE_GROUP) - BLI_strncpy(name, node->id->name+2, UI_MAX_NAME_STR); + BLI_strncpy(node_name, node->id->name+2, UI_MAX_NAME_STR); else - BLI_strncpy(name, node->typeinfo->name, UI_MAX_NAME_STR); + BLI_strncpy(node_name, node->typeinfo->name, UI_MAX_NAME_STR); if(node->inputs.first == NULL && node->outputs.first != node->outputs.last && !(node->typeinfo->flag & NODE_OPTIONS)) - BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", name, sock->link->fromsock->name); + BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", node_name, sock->link->fromsock->name); + else + BLI_strncpy(name, node_name, UI_MAX_NAME_STR); } else if(sock->type == SOCK_SHADER) BLI_strncpy(name, "None", UI_MAX_NAME_STR); -- cgit v1.2.3 From f5b60afe4ec924f12ec859e4ca51cd8ed9eab3ad Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 27 Sep 2011 19:35:41 +0000 Subject: Cycles: fix error in md5 hash computation for files in directories below the first level. --- intern/cycles/util/util_md5.cpp | 4 +++- intern/cycles/util/util_path.cpp | 15 ++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/intern/cycles/util/util_md5.cpp b/intern/cycles/util/util_md5.cpp index 90b8a1fe062..b871fad3636 100644 --- a/intern/cycles/util/util_md5.cpp +++ b/intern/cycles/util/util_md5.cpp @@ -313,8 +313,10 @@ bool MD5Hash::append_file(const string& filepath) { FILE *f = fopen(filepath.c_str(), "rb"); - if(!f) + if(!f) { + fprintf(stderr, "MD5: failed to open file %s\n", filepath.c_str()); return false; + } const size_t buffer_size = 1024; uint8_t buffer[buffer_size]; diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp index d3f739e19f6..55e6a95b54a 100644 --- a/intern/cycles/util/util_path.cpp +++ b/intern/cycles/util/util_path.cpp @@ -85,17 +85,14 @@ bool path_exists(const string& path) return boost::filesystem::exists(path); } -string path_files_md5_hash(const string& dir) +static void path_files_md5_hash_recursive(MD5Hash& hash, const string& dir) { - /* computes md5 hash of all files in the directory */ - MD5Hash hash; - if(boost::filesystem::exists(dir)) { boost::filesystem::directory_iterator it(dir), it_end; for(; it != it_end; it++) { if(boost::filesystem::is_directory(it->status())) { - path_files_md5_hash(it->path().string()); + path_files_md5_hash_recursive(hash, it->path().string()); } else { string filepath = it->path().string(); @@ -105,6 +102,14 @@ string path_files_md5_hash(const string& dir) } } } +} + +string path_files_md5_hash(const string& dir) +{ + /* computes md5 hash of all files in the directory */ + MD5Hash hash; + + path_files_md5_hash_recursive(hash, dir); return hash.get_hex(); } -- cgit v1.2.3 From 136d27b350355232ebe4d0a13427777445334b05 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 27 Sep 2011 20:03:16 +0000 Subject: Cycles: add some volume nodes, they don't actually do anything, this is just to give other developers who may want to work on this to get a starting point. --- intern/cycles/app/cycles_xml.cpp | 6 ++ intern/cycles/blender/blender_shader.cpp | 8 ++ intern/cycles/kernel/kernel_types.h | 3 +- intern/cycles/kernel/svm/svm.h | 3 + intern/cycles/kernel/svm/svm_closure.h | 41 ++++++++++ intern/cycles/kernel/svm/svm_types.h | 8 +- intern/cycles/kernel/svm/volume.h | 95 ++++++++++++++-------- intern/cycles/render/nodes.cpp | 82 +++++++++++++++++++ intern/cycles/render/nodes.h | 19 +++++ source/blender/blenkernel/BKE_node.h | 2 + source/blender/blenkernel/intern/node.c | 4 +- .../blender/makesrna/intern/rna_nodetree_types.h | 2 + source/blender/nodes/CMakeLists.txt | 2 + source/blender/nodes/NOD_shader.h | 2 + .../shader/nodes/node_shader_volume_isotropic.c | 69 ++++++++++++++++ .../shader/nodes/node_shader_volume_transparent.c | 69 ++++++++++++++++ 16 files changed, 379 insertions(+), 36 deletions(-) create mode 100644 source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_volume_transparent.c diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp index c7580642c43..5f9e1d7a5ff 100644 --- a/intern/cycles/app/cycles_xml.cpp +++ b/intern/cycles/app/cycles_xml.cpp @@ -435,6 +435,12 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug else if(string_iequals(node.name(), "background")) { snode = new BackgroundNode(); } + else if(string_iequals(node.name(), "transparent_volume")) { + snode = new TransparentVolumeNode(); + } + else if(string_iequals(node.name(), "isotropic_volume")) { + snode = new IsotropicVolumeNode(); + } else if(string_iequals(node.name(), "geometry")) { snode = new GeometryNode(); } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 1f412093773..3993efbce39 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -275,6 +275,14 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = new EmissionNode(); break; } + case BL::ShaderNode::type_VOLUME_ISOTROPIC: { + node = new IsotropicVolumeNode(); + break; + } + case BL::ShaderNode::type_VOLUME_TRANSPARENT: { + node = new TransparentVolumeNode(); + break; + } case BL::ShaderNode::type_GEOMETRY: { node = new GeometryNode(); break; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 8083da971ed..e09eaa8284c 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -218,7 +218,8 @@ enum ShaderDataFlag { SD_BSDF = 4, /* have bsdf closure? */ SD_BSDF_HAS_EVAL = 8, /* have non-singular bsdf closure? */ SD_BSDF_GLOSSY = 16, /* have glossy bsdf */ - SD_HOLDOUT = 32 /* have holdout closure? */ + SD_HOLDOUT = 32, /* have holdout closure? */ + SD_VOLUME = 64 /* have volume closure? */ }; typedef struct ShaderData { diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 65d92a91df9..bd5c07753ad 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -184,6 +184,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_CLOSURE_HOLDOUT: svm_node_closure_holdout(sd, stack, node); break; + case NODE_CLOSURE_VOLUME: + svm_node_closure_volume(kg, sd, stack, node, path_flag); + break; case NODE_CLOSURE_SET_WEIGHT: svm_node_closure_set_weight(sd, node.y, node.z, node.w); break; diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 68f91408f1f..90636380e43 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -192,6 +192,47 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st } } +__device void svm_node_closure_volume(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int path_flag) +{ + uint type, param1_offset, param2_offset; + +#ifdef __MULTI_CLOSURE__ + uint mix_weight_offset; + decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, &mix_weight_offset); + float mix_weight = (stack_valid(mix_weight_offset)? stack_load_float(stack, mix_weight_offset): 1.0f); + + if(mix_weight == 0.0f) + return; +#else + decode_node_uchar4(node.y, &type, ¶m1_offset, ¶m2_offset, NULL); + float mix_weight = 1.0f; +#endif + + float param1 = (stack_valid(param1_offset))? stack_load_float(stack, param1_offset): __int_as_float(node.z); + //float param2 = (stack_valid(param2_offset))? stack_load_float(stack, param2_offset): __int_as_float(node.w); + + switch(type) { + case CLOSURE_VOLUME_TRANSPARENT_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + + float density = param1; + volume_transparent_setup(sd, sc, density); + break; + } + case CLOSURE_VOLUME_ISOTROPIC_ID: { + ShaderClosure *sc = svm_node_closure_get(sd); + svm_node_closure_set_mix_weight(sc, mix_weight); + + float density = param1; + volume_isotropic_setup(sd, sc, density); + break; + } + default: + break; + } +} + __device void svm_node_closure_emission(ShaderData *sd, float *stack, uint4 node) { #ifdef __MULTI_CLOSURE__ diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 483f3c76f3c..baec3d7ac6e 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -83,7 +83,8 @@ typedef enum NodeType { NODE_ATTR_BUMP_DY = 4500, NODE_TEX_ENVIRONMENT = 4600, NODE_CLOSURE_HOLDOUT = 4700, - NODE_BLEND_WEIGHT = 4800 + NODE_BLEND_WEIGHT = 4800, + NODE_CLOSURE_VOLUME = 4900 } NodeType; typedef enum NodeAttributeType { @@ -286,14 +287,17 @@ typedef enum ClosureType { CLOSURE_BACKGROUND_ID, CLOSURE_HOLDOUT_ID, CLOSURE_SUBSURFACE_ID, + CLOSURE_VOLUME_ID, + CLOSURE_VOLUME_TRANSPARENT_ID, + CLOSURE_VOLUME_ISOTROPIC_ID, NBUILTIN_CLOSURES } ClosureType; /* watch this, being lazy with memory usage */ #define CLOSURE_IS_BSDF(type) (type <= CLOSURE_BSDF_WESTIN_SHEEN_ID) -#define CLOSURE_IS_VOLUME(type) (type == CLOSURE_VOLUME_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) #define CLOSURE_IS_BACKGROUND(type) (type == CLOSURE_BACKGROUND_ID) diff --git a/intern/cycles/kernel/svm/volume.h b/intern/cycles/kernel/svm/volume.h index dc377b5c595..86cb2dcc24e 100644 --- a/intern/cycles/kernel/svm/volume.h +++ b/intern/cycles/kernel/svm/volume.h @@ -1,42 +1,73 @@ -/* - * Adapted from Open Shading Language with this license: - * - * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. - * All Rights Reserved. - * - * Modifications Copyright 2011, 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. -*/ +/* + * 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. + */ CCL_NAMESPACE_BEGIN +/* note: the interfaces here are just as an example, need to figure + out the right functions and parameters to use */ + +/* ISOTROPIC VOLUME CLOSURE */ + +__device void volume_isotropic_setup(ShaderData *sd, ShaderClosure *sc, float density) +{ + sc->type = CLOSURE_VOLUME_ISOTROPIC_ID; + sd->flag |= SD_VOLUME; + sc->data0 = density; +} + +__device float3 volume_isotropic_eval_phase(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) +{ + return make_float3(1.0f, 1.0f, 1.0f); +} + +/* TRANSPARENT VOLUME CLOSURE */ + +__device void volume_transparent_setup(ShaderData *sd, ShaderClosure *sc, float density) +{ + sc->type = CLOSURE_VOLUME_TRANSPARENT_ID; + sd->flag |= SD_VOLUME; + sc->data0 = density; +} + +__device float3 volume_transparent_eval_phase(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) +{ + return make_float3(1.0f, 1.0f, 1.0f); +} + /* VOLUME CLOSURE */ __device float3 volume_eval_phase(const ShaderData *sd, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) { - return make_float3(1.0f, 1.0f, 1.0f); + float3 eval; + + switch(sc->type) { + case CLOSURE_VOLUME_ISOTROPIC_ID: + eval = volume_isotropic_eval_phase(sd, sc, omega_in, omega_out); + break; + case CLOSURE_VOLUME_TRANSPARENT_ID: + eval = volume_transparent_eval_phase(sd, sc, omega_in, omega_out); + break; + default: + eval = make_float3(0.0f, 0.0f, 0.0f); + break; + } + + return eval; } CCL_NAMESPACE_END diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 038a6c45b97..4fd562b540c 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1312,6 +1312,88 @@ void HoldoutNode::compile(OSLCompiler& compiler) compiler.add(this, "node_holdout"); } +/* Volume Closure */ + +VolumeNode::VolumeNode() +: ShaderNode("volume") +{ + closure = ccl::CLOSURE_VOLUME_ISOTROPIC_ID; + + add_input("Color", SHADER_SOCKET_COLOR, make_float3(0.8f, 0.8f, 0.8f)); + add_input("Density", SHADER_SOCKET_FLOAT, 1.0f); + + add_output("Volume", SHADER_SOCKET_CLOSURE); +} + +void VolumeNode::compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput *param2) +{ + ShaderInput *color_in = input("Color"); + + if(color_in->link) { + compiler.stack_assign(color_in); + compiler.add_node(NODE_CLOSURE_WEIGHT, color_in->stack_offset); + } + else + compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value); + + if(param1) + compiler.stack_assign(param1); + if(param2) + compiler.stack_assign(param2); + + compiler.add_node(NODE_CLOSURE_VOLUME, + compiler.encode_uchar4(closure, + (param1)? param1->stack_offset: SVM_STACK_INVALID, + (param2)? param2->stack_offset: SVM_STACK_INVALID, + compiler.closure_mix_weight_offset()), + __float_as_int((param1)? param1->value.x: 0.0f), + __float_as_int((param2)? param2->value.x: 0.0f)); +} + +void VolumeNode::compile(SVMCompiler& compiler) +{ + compile(compiler, NULL, NULL); +} + +void VolumeNode::compile(OSLCompiler& compiler) +{ + assert(0); +} + +/* Transparent Volume Closure */ + +TransparentVolumeNode::TransparentVolumeNode() +{ + closure = CLOSURE_VOLUME_TRANSPARENT_ID; +} + +void TransparentVolumeNode::compile(SVMCompiler& compiler) +{ + VolumeNode::compile(compiler, input("Density"), NULL); +} + +void TransparentVolumeNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_isotropic_volume"); +} + +/* Isotropic Volume Closure */ + +IsotropicVolumeNode::IsotropicVolumeNode() +{ + closure = CLOSURE_VOLUME_ISOTROPIC_ID; +} + +void IsotropicVolumeNode::compile(SVMCompiler& compiler) +{ + VolumeNode::compile(compiler, input("Density"), NULL); +} + +void IsotropicVolumeNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_isotropic_volume"); +} + /* Geometry */ GeometryNode::GeometryNode() diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index f11f34778e3..0a7ac158431 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -262,6 +262,25 @@ public: SHADER_NODE_CLASS(HoldoutNode) }; +class VolumeNode : public ShaderNode { +public: + SHADER_NODE_CLASS(VolumeNode) + + void compile(SVMCompiler& compiler, ShaderInput *param1, ShaderInput *param2); + + ClosureType closure; +}; + +class TransparentVolumeNode : public VolumeNode { +public: + SHADER_NODE_CLASS(TransparentVolumeNode) +}; + +class IsotropicVolumeNode : public VolumeNode { +public: + SHADER_NODE_CLASS(IsotropicVolumeNode) +}; + class GeometryNode : public ShaderNode { public: SHADER_NODE_CLASS(GeometryNode) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index d269b2932d6..92968f23396 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -488,6 +488,8 @@ struct ShadeResult; #define SH_NODE_OUTPUT_TEXTURE 158 #define SH_NODE_HOLDOUT 159 #define SH_NODE_BLEND_WEIGHT 160 +#define SH_NODE_VOLUME_TRANSPARENT 161 +#define SH_NODE_VOLUME_ISOTROPIC 162 /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 14e753d5451..3c4c3d32452 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1886,9 +1886,11 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_bsdf_transparent(ntypelist); register_node_type_sh_bsdf_velvet(ntypelist); register_node_type_sh_emission(ntypelist); + register_node_type_sh_volume_transparent(ntypelist); + register_node_type_sh_volume_isotropic(ntypelist); + register_node_type_sh_holdout(ntypelist); register_node_type_sh_mix_shader(ntypelist); register_node_type_sh_add_shader(ntypelist); - register_node_type_sh_holdout(ntypelist); register_node_type_sh_output_lamp(ntypelist); register_node_type_sh_output_material(ntypelist); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 03873a514e1..f837a2f6898 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -74,6 +74,8 @@ DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") +DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 9c5c5213fd2..8ee67fc4f9a 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -138,6 +138,8 @@ set(SRC shader/nodes/node_shader_blend_weight.c shader/nodes/node_shader_geometry.c shader/nodes/node_shader_holdout.c + shader/nodes/node_shader_volume_transparent.c + shader/nodes/node_shader_volume_isotropic.c shader/nodes/node_shader_light_path.c shader/nodes/node_shader_mix_shader.c shader/nodes/node_shader_add_shader.c diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index 1c7d77df18d..d504b6d757b 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -75,6 +75,8 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb); void register_node_type_sh_bsdf_velvet(ListBase *lb); void register_node_type_sh_emission(ListBase *lb); void register_node_type_sh_holdout(ListBase *lb); +void register_node_type_sh_volume_transparent(ListBase *lb); +void register_node_type_sh_volume_isotropic(ListBase *lb); void register_node_type_sh_mix_shader(ListBase *lb); void register_node_type_sh_add_shader(ListBase *lb); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c new file mode 100644 index 00000000000..e5579c1bf0b --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_volume_isotropic_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Density", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_volume_isotropic_out[]= { + { SOCK_SHADER, 0, "Volume"}, + { -1, 0, "" } +}; + +static void node_shader_exec_volume_isotropic(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_volume_isotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_volume_isotropic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VOLUME_ISOTROPIC, "Isotropic Volume", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_volume_isotropic_in, sh_node_volume_isotropic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_volume_isotropic); + node_type_gpu(&ntype, node_shader_gpu_volume_isotropic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c new file mode 100644 index 00000000000..b2e9e22789a --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c @@ -0,0 +1,69 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_volume_transparent_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Density", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_volume_transparent_out[]= { + { SOCK_SHADER, 0, "Volume"}, + { -1, 0, "" } +}; + +static void node_shader_exec_volume_transparent(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_volume_transparent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_volume_transparent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VOLUME_TRANSPARENT, "Transparent Volume", NODE_CLASS_SHADER, 0); + node_type_socket_templates(&ntype, sh_node_volume_transparent_in, sh_node_volume_transparent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_volume_transparent); + node_type_gpu(&ntype, node_shader_gpu_volume_transparent); + + nodeRegisterType(lb, &ntype); +}; + -- cgit v1.2.3 From cdee3435c67abebb633cb09410c4a87d42ff61e3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 27 Sep 2011 20:37:24 +0000 Subject: Cycles: internal changes that should have no effect on user level yet, added shader flags for various purposes, and some code for light types other than points. --- intern/cycles/blender/addon/properties.py | 14 ++++ intern/cycles/blender/addon/ui.py | 64 +++++++++++++++-- intern/cycles/blender/blender_object.cpp | 52 +++++++++++++- intern/cycles/blender/blender_shader.cpp | 5 ++ intern/cycles/blender/blender_sync.cpp | 5 ++ intern/cycles/kernel/kernel.cpp | 83 +++------------------- intern/cycles/kernel/kernel_emission.h | 43 +++++------ intern/cycles/kernel/kernel_light.h | 114 ++++++++++++++++++++++++++---- intern/cycles/kernel/kernel_montecarlo.h | 11 --- intern/cycles/kernel/kernel_path.h | 25 ++----- intern/cycles/kernel/kernel_shader.h | 44 ++++++++---- intern/cycles/kernel/kernel_textures.h | 3 +- intern/cycles/kernel/kernel_types.h | 66 ++++++++--------- intern/cycles/kernel/osl/osl_shader.cpp | 16 +++-- intern/cycles/kernel/svm/svm.h | 2 +- intern/cycles/kernel/svm/svm_bsdf.h | 6 ++ intern/cycles/render/light.cpp | 72 +++++++++++++++---- intern/cycles/render/light.h | 15 +++- intern/cycles/render/nodes.cpp | 1 + intern/cycles/render/object.cpp | 7 +- intern/cycles/render/osl.cpp | 9 ++- intern/cycles/render/scene.h | 3 +- intern/cycles/render/shader.cpp | 49 ++++++++++++- intern/cycles/render/shader.h | 8 +++ intern/cycles/render/svm.cpp | 11 ++- intern/cycles/util/util_math.h | 13 ++++ 26 files changed, 512 insertions(+), 229 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 89c2829175c..8d3f709cdef 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -116,11 +116,23 @@ class CyclesMaterialSettings(bpy.types.PropertyGroup): @classmethod def register(cls): bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles material settings") + cls.sample_as_light = BoolProperty(name="Sample as Light", description="Use direct light sampling, to reduce noise for small or strong emitting materials", default=False) + cls.homogeneous_volume = BoolProperty(name="Homogeneous Volume", description="When using volume rendering, assume volume has the same density everywhere, for faster rendering", default=False) @classmethod def unregister(cls): del bpy.types.Material.cycles +class CyclesLampSettings(bpy.types.PropertyGroup): + @classmethod + def register(cls): + bpy.types.Lamp.cycles = PointerProperty(type=cls, name="Cycles Lamp Settings", description="Cycles lamp settings") + cls.cast_shadow = BoolProperty(name="Cast Shadow", description="Lamp casts shadows", default=True) + + @classmethod + def unregister(cls): + del bpy.types.Lamp.cycles + class CyclesWorldSettings(bpy.types.PropertyGroup): @classmethod def register(cls): @@ -168,6 +180,7 @@ def register(): bpy.utils.register_class(CyclesRenderSettings) bpy.utils.register_class(CyclesCameraSettings) bpy.utils.register_class(CyclesMaterialSettings) + bpy.utils.register_class(CyclesLampSettings) bpy.utils.register_class(CyclesWorldSettings) bpy.utils.register_class(CyclesVisibilitySettings) bpy.utils.register_class(CyclesMeshSettings) @@ -176,6 +189,7 @@ def unregister(): bpy.utils.unregister_class(CyclesRenderSettings) bpy.utils.unregister_class(CyclesCameraSettings) bpy.utils.unregister_class(CyclesMaterialSettings) + bpy.utils.unregister_class(CyclesLampSettings) bpy.utils.unregister_class(CyclesWorldSettings) bpy.utils.unregister_class(CyclesMeshSettings) bpy.utils.unregister_class(CyclesVisibilitySettings) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index f9ebfdc0bb5..ca2f7e497df 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -360,7 +360,48 @@ def panel_node_draw(layout, id, output_type, input_name): layout.template_node_view(ntree, node, input); class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): - bl_label = "Surface" + bl_label = "Lamp" + bl_context = "data" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + return False + #return context.lamp and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + lamp = context.lamp + clamp = lamp.cycles + + layout.prop(lamp, "type", expand=True) + + split = layout.split() + col = split.column(align=True) + + if lamp.type in ('POINT', 'SUN', 'SPOT'): + col.prop(lamp, "shadow_soft_size", text="Size") + elif lamp.type == 'AREA': + col.prop(lamp, "shape", text="") + sub = col.column(align=True) + + if lamp.shape == 'SQUARE': + sub.prop(lamp, "size") + elif lamp.shape == 'RECTANGLE': + sub.prop(lamp, "size", text="Size X") + sub.prop(lamp, "size_y", text="Size Y") + + col = split.column() + col.prop(clamp, "cast_shadow") + + if lamp.type == 'SPOT': + layout.label(text="Not supported, interpreted as point lamp.") + elif lamp.type == 'HEMI': + layout.label(text="Not supported, interpreted as sun lamp.") + +class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel): + bl_label = "Nodes" bl_context = "data" @classmethod @@ -399,8 +440,8 @@ class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): layout = self.layout layout.active = False - mat = context.world - panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Volume') + world = context.world + panel_node_draw(layout, world, 'OUTPUT_WORLD', 'Volume') class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel): bl_label = "Surface" @@ -429,8 +470,12 @@ class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): layout.active = False mat = context.material + cmat = mat.cycles + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') + layout.prop(cmat, "homogeneous_volume") + class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel): bl_label = "Displacement" bl_context = "material" @@ -452,17 +497,22 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - # return context.material and CyclesButtonsPanel.poll(context) return False + #return context.material and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout mat = context.material + cmat = mat.cycles + + split = layout.split() - row = layout.row() - row.label(text="Light Group:") - row.prop(mat, "light_group", text="") + col = split.column() + col.prop(cmat, "sample_as_light") + + col = split.column() + col.prop(cmat, "homogeneous_volume") class CyclesTexture_PT_context(CyclesButtonsPanel, Panel): bl_label = "" diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index e693efb2d7f..a4944a378e0 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -87,12 +87,58 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, if(!light_map.sync(&light, b_ob, b_parent, key)) return; + + BL::Lamp b_lamp(b_ob.data()); + + /* type */ +#if 0 + switch(b_lamp.type()) { + case BL::Lamp::type_POINT: { + BL::PointLamp b_point_lamp(b_lamp); + light->size = b_point_lamp.shadow_soft_size(); +#endif + light->type = LIGHT_POINT; +#if 0 + break; + } + case BL::Lamp::type_SPOT: { + BL::SpotLamp b_spot_lamp(b_lamp); + light->size = b_spot_lamp.shadow_soft_size(); + light->type = LIGHT_POINT; + break; + } + case BL::Lamp::type_HEMI: { + light->type = LIGHT_DISTANT; + light->size = 0.0f; + break; + } + case BL::Lamp::type_SUN: { + BL::SunLamp b_sun_lamp(b_lamp); + light->size = b_sun_lamp.shadow_soft_size(); + light->type = LIGHT_DISTANT; + break; + } + case BL::Lamp::type_AREA: { + BL::AreaLamp b_area_lamp(b_lamp); + light->size = 1.0f; + light->axisu = make_float3(tfm.x.x, tfm.y.x, tfm.z.x); + light->axisv = make_float3(tfm.x.y, tfm.y.y, tfm.z.y); + light->sizeu = b_area_lamp.size(); + if(b_area_lamp.shape() == BL::AreaLamp::shape_RECTANGLE) + light->sizev = b_area_lamp.size_y(); + else + light->sizev = light->sizeu; + light->type = LIGHT_AREA; + break; + } + } +#endif /* location */ light->co = make_float3(tfm.x.w, tfm.y.w, tfm.z.w); + light->dir = make_float3(tfm.x.z, tfm.y.z, tfm.z.z); /* shader */ - BL::Lamp b_lamp(b_ob.data()); vector used_shaders; find_shader(b_lamp, used_shaders); @@ -102,6 +148,10 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, light->shader = used_shaders[0]; + /* shadow */ + //PointerRNA clamp = RNA_pointer_get(&b_lamp.ptr, "cycles"); + //light->cast_shadow = get_boolean(clamp, "cast_shadow"); + /* tag */ light->tag_update(scene); } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 3993efbce39..0c962e3c5f0 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -587,6 +587,11 @@ void BlenderSync::sync_materials() graph->connect(closure->output("BSDF"), out->input("Surface")); } + /* settings */ + PointerRNA cmat = RNA_pointer_get(&b_mat->ptr, "cycles"); + //shader->sample_as_light = get_boolean(cmat, "sample_as_light"); + shader->homogeneous_volume = get_boolean(cmat, "homogeneous_volume"); + shader->set_graph(graph); shader->tag_update(scene); } diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 9bb7cb45e35..6f03cac315c 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -83,12 +83,17 @@ bool BlenderSync::sync_recalc() object_map.set_recalc(*b_ob); light_map.set_recalc(*b_ob); } + if(object_is_mesh(*b_ob)) { if(b_ob->recalc_data() || b_ob->data().recalc()) { BL::ID key = object_is_modified(*b_ob)? *b_ob: b_ob->data(); mesh_map.set_recalc(key); } } + else if(object_is_light(*b_ob)) { + if(b_ob->recalc_data() || b_ob->data().recalc()) + light_map.set_recalc(*b_ob); + } } BL::BlendData::meshes_iterator b_mesh; diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp index 7e5fa25c662..52a3852aa01 100644 --- a/intern/cycles/kernel/kernel.cpp +++ b/intern/cycles/kernel/kernel.cpp @@ -73,82 +73,17 @@ void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t s void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height) { - if(strcmp(name, "__bvh_nodes") == 0) { - kg->__bvh_nodes.data = (float4*)mem; - kg->__bvh_nodes.width = width; + if(0) { } - else if(strcmp(name, "__objects") == 0) { - kg->__objects.data = (float4*)mem; - kg->__objects.width = width; - } - else if(strcmp(name, "__tri_normal") == 0) { - kg->__tri_normal.data = (float4*)mem; - kg->__tri_normal.width = width; - } - else if(strcmp(name, "__tri_woop") == 0) { - kg->__tri_woop.data = (float4*)mem; - kg->__tri_woop.width = width; - } - else if(strcmp(name, "__prim_visibility") == 0) { - kg->__prim_visibility.data = (uint*)mem; - kg->__prim_visibility.width = width; - } - else if(strcmp(name, "__prim_index") == 0) { - kg->__prim_index.data = (uint*)mem; - kg->__prim_index.width = width; - } - else if(strcmp(name, "__prim_object") == 0) { - kg->__prim_object.data = (uint*)mem; - kg->__prim_object.width = width; - } - else if(strcmp(name, "__object_node") == 0) { - kg->__object_node.data = (uint*)mem; - kg->__object_node.width = width; - } - else if(strcmp(name, "__tri_vnormal") == 0) { - kg->__tri_vnormal.data = (float4*)mem; - kg->__tri_vnormal.width = width; - } - else if(strcmp(name, "__tri_vindex") == 0) { - kg->__tri_vindex.data = (float4*)mem; - kg->__tri_vindex.width = width; - } - else if(strcmp(name, "__tri_verts") == 0) { - kg->__tri_verts.data = (float4*)mem; - kg->__tri_verts.width = width; - } - else if(strcmp(name, "__light_distribution") == 0) { - kg->__light_distribution.data = (float4*)mem; - kg->__light_distribution.width = width; - } - else if(strcmp(name, "__light_point") == 0) { - kg->__light_point.data = (float4*)mem; - kg->__light_point.width = width; - } - else if(strcmp(name, "__svm_nodes") == 0) { - kg->__svm_nodes.data = (uint4*)mem; - kg->__svm_nodes.width = width; - } - else if(strcmp(name, "__filter_table") == 0) { - kg->__filter_table.data = (float*)mem; - kg->__filter_table.width = width; - } - else if(strcmp(name, "__sobol_directions") == 0) { - kg->__sobol_directions.data = (uint*)mem; - kg->__sobol_directions.width = width; - } - else if(strcmp(name, "__attributes_map") == 0) { - kg->__attributes_map.data = (uint4*)mem; - kg->__attributes_map.width = width; - } - else if(strcmp(name, "__attributes_float") == 0) { - kg->__attributes_float.data = (float*)mem; - kg->__attributes_float.width = width; - } - else if(strcmp(name, "__attributes_float3") == 0) { - kg->__attributes_float3.data = (float4*)mem; - kg->__attributes_float3.width = width; + +#define KERNEL_TEX(type, ttype, tname) \ + else if(strcmp(name, #tname) == 0) { \ + kg->tname.data = (type*)mem; \ + kg->tname.width = width; \ } +#define KERNEL_IMAGE_TEX(type, ttype, tname) +#include "kernel_textures.h" + else if(strstr(name, "__tex_image")) { texture_image_uchar4 *tex = NULL; int id = atoi(name + strlen("__tex_image_")); diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 58c9183e58a..13c48464088 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -63,15 +63,11 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, light_sample(kg, randt, randu, randv, sd->P, &ls); } - /* compute incoming direction and distance */ - float t; - float3 omega_in = normalize_len(ls.P - sd->P, &t); - /* compute pdf */ - float pdf = light_sample_pdf(kg, &ls, -omega_in, t); + float pdf = light_sample_pdf(kg, &ls, -ls.D, ls.t); /* evaluate closure */ - *eval = direct_emissive_eval(kg, rando, &ls, randu, randv, -omega_in); + *eval = direct_emissive_eval(kg, rando, &ls, randu, randv, -ls.D); if(is_zero(*eval) || pdf == 0.0f) return false; @@ -80,7 +76,7 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, /* evaluate BSDF at shading point */ float bsdf_pdf; - float3 bsdf_eval = shader_bsdf_eval(kg, sd, omega_in, &bsdf_pdf); + float3 bsdf_eval = shader_bsdf_eval(kg, sd, ls.D, &bsdf_pdf); *eval *= bsdf_eval/pdf; @@ -92,29 +88,34 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, float mis_weight = power_heuristic(pdf, bsdf_pdf); *eval *= mis_weight; } - else { + else if(!(ls.shader & SHADER_AREA_LIGHT)) { /* ensure point light works in Watts, this should be handled * elsewhere but for now together with the diffuse emission * closure it works out to the right value */ *eval *= 0.25f; + + /* XXX verify with other light types */ } -#if 0 - /* todo: implement this in light */ - bool no_shadow = true; + if(ls.shader & SHADER_CAST_SHADOW) { + /* setup ray */ + ray->P = ray_offset(sd->P, sd->Ng); - if(no_shadow) { - ray->t = 0.0f; + if(ls.t == FLT_MAX) { + /* distant light */ + ray->D = ls.D; + ray->t = ls.t; + } + else { + /* other lights, avoid self-intersection */ + ray->D = ray_offset(ls.P, ls.Ng) - ray->P; + ray->D = normalize_len(ray->D, &ray->t); + } } else { -#endif - /* setup ray */ - ray->P = ray_offset(sd->P, sd->Ng); - ray->D = ray_offset(ls.P, ls.Ng) - ray->P; - ray->D = normalize_len(ray->D, &ray->t); -#if 0 + /* signal to not cast shadow ray */ + ray->t = 0.0f; } -#endif return true; } @@ -126,7 +127,7 @@ __device float3 indirect_emission(KernelGlobals *kg, ShaderData *sd, float t, in /* evaluate emissive closure */ float3 L = shader_emissive_eval(kg, sd); - if(!(path_flag & PATH_RAY_SINGULAR)) { + if(!(path_flag & PATH_RAY_SINGULAR) && (sd->flag & SD_SAMPLE_AS_LIGHT)) { /* multiple importance sampling */ float pdf = triangle_light_pdf(kg, sd->Ng, sd->I, t); float mis_weight = power_heuristic(bsdf_pdf, pdf); diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h index 77e73e932ef..68d08a2655f 100644 --- a/intern/cycles/kernel/kernel_light.h +++ b/intern/cycles/kernel/kernel_light.h @@ -20,30 +20,112 @@ CCL_NAMESPACE_BEGIN typedef struct LightSample { float3 P; + float3 D; float3 Ng; + float t; int object; int prim; int shader; - float weight; } LightSample; -/* Point Light */ +/* Regular Light */ -__device void point_light_sample(KernelGlobals *kg, int point, +__device float3 disk_light_sample(float3 v, float randu, float randv) +{ + float3 ru, rv; + + make_orthonormals(v, &ru, &rv); + to_unit_disk(&randu, &randv); + + return ru*randu + rv*randv; +} + +__device float3 distant_light_sample(float3 D, float size, float randu, float randv) +{ + return normalize(D + disk_light_sample(D, randu, randv)*size); +} + +__device float3 sphere_light_sample(float3 P, float3 center, float size, float randu, float randv) +{ + return disk_light_sample(normalize(P - center), randu, randv)*size; +} + +__device float3 area_light_sample(float3 axisu, float3 axisv, float randu, float randv) +{ + randu = randu - 0.5f; + randv = randv - 0.5f; + + return axisu*randu + axisv*randv; +} + +__device void regular_light_sample(KernelGlobals *kg, int point, float randu, float randv, float3 P, LightSample *ls) { - float4 f = kernel_tex_fetch(__light_point, point); + float4 data0 = kernel_tex_fetch(__light_data, point*LIGHT_SIZE + 0); + float4 data1 = kernel_tex_fetch(__light_data, point*LIGHT_SIZE + 1); + + LightType type = (LightType)__float_as_int(data0.x); + + if(type == LIGHT_DISTANT) { + /* distant light */ + float3 D = make_float3(data0.y, data0.z, data0.w); + float size = data1.y; + + if(size > 0.0f) + D = distant_light_sample(D, size, randu, randv); + + ls->P = D; + ls->Ng = -D; + ls->D = D; + ls->t = FLT_MAX; + } + else { + ls->P = make_float3(data0.y, data0.z, data0.w); + + if(type == LIGHT_POINT) { + float size = data1.y; + + /* sphere light */ + if(size > 0.0f) + ls->P += sphere_light_sample(P, ls->P, size, randu, randv); + + ls->Ng = normalize(P - ls->P); + } + else { + /* area light */ + float4 data2 = kernel_tex_fetch(__light_data, point*LIGHT_SIZE + 2); + float4 data3 = kernel_tex_fetch(__light_data, point*LIGHT_SIZE + 3); + + float3 axisu = make_float3(data1.y, data1.z, data2.w); + float3 axisv = make_float3(data2.y, data2.z, data2.w); + float3 D = make_float3(data3.y, data3.z, data3.w); + + ls->P += area_light_sample(axisu, axisv, randu, randv); + ls->Ng = D; + } + + ls->t = 0.0f; + } - ls->P = make_float3(f.x, f.y, f.z); - ls->Ng = normalize(ls->P - P); - ls->shader = __float_as_int(f.w); + ls->shader = __float_as_int(data1.x); ls->object = ~0; ls->prim = ~0; } -__device float point_light_pdf(KernelGlobals *kg, float t) +__device float regular_light_pdf(KernelGlobals *kg, + const float3 Ng, const float3 I, float t) { - return t*t*kernel_data.integrator.pdf_lights; + float pdf = kernel_data.integrator.pdf_lights; + + if(t == FLT_MAX) + return pdf; + + float cos_pi = fabsf(dot(Ng, I)); + + if(cos_pi == 0.0f) + return 0.0f; + + return t*t*pdf/cos_pi; } /* Triangle Light */ @@ -56,6 +138,7 @@ __device void triangle_light_sample(KernelGlobals *kg, int prim, int object, ls->Ng = triangle_normal_MT(kg, prim, &ls->shader); ls->object = object; ls->prim = prim; + ls->t = 0.0f; #ifdef __INSTANCING__ /* instance transform */ @@ -117,7 +200,6 @@ __device void light_sample(KernelGlobals *kg, float randt, float randu, float ra /* fetch light data */ float4 l = kernel_tex_fetch(__light_distribution, index); int prim = __float_as_int(l.y); - ls->weight = l.z; if(prim >= 0) { int object = __float_as_int(l.w); @@ -125,8 +207,12 @@ __device void light_sample(KernelGlobals *kg, float randt, float randu, float ra } else { int point = -prim-1; - point_light_sample(kg, point, randu, randv, P, ls); + regular_light_sample(kg, point, randu, randv, P, ls); } + + /* compute incoming direction and distance */ + if(ls->t != FLT_MAX) + ls->D = normalize_len(ls->P - P, &ls->t); } __device float light_sample_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) @@ -136,19 +222,19 @@ __device float light_sample_pdf(KernelGlobals *kg, LightSample *ls, float3 I, fl if(ls->prim != ~0) pdf = triangle_light_pdf(kg, ls->Ng, I, t); else - pdf = point_light_pdf(kg, t); + pdf = regular_light_pdf(kg, ls->Ng, I, t); return pdf; } __device void light_select(KernelGlobals *kg, int index, float randu, float randv, float3 P, LightSample *ls) { - point_light_sample(kg, index, randu, randv, P, ls); + regular_light_sample(kg, index, randu, randv, P, ls); } __device float light_select_pdf(KernelGlobals *kg, LightSample *ls, float3 I, float t) { - return point_light_pdf(kg, t); + return regular_light_pdf(kg, ls->Ng, I, t); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/kernel_montecarlo.h b/intern/cycles/kernel/kernel_montecarlo.h index 5d9afb6418f..df291b66b23 100644 --- a/intern/cycles/kernel/kernel_montecarlo.h +++ b/intern/cycles/kernel/kernel_montecarlo.h @@ -67,17 +67,6 @@ __device void to_unit_disk(float *x, float *y) *y = r * sinf(phi); } -__device_inline void make_orthonormals(const float3 N, float3 *a, float3 *b) -{ - if(N.x != N.y || N.x != N.z) - *a = make_float3(N.z-N.y, N.x-N.z, N.y-N.x); //(1,1,1)x N - else - *a = make_float3(N.z-N.y, N.x+N.z, -N.y-N.x); //(-1,1,1)x N - - *a = normalize(*a); - *b = cross(N, *a); -} - __device void make_orthonormals_tangent(const float3 N, const float3 T, float3 *a, float3 *b) { *b = cross(N, T); diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index d6977c24c53..e438780b1c8 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -162,19 +162,6 @@ __device_inline float path_state_terminate_probability(KernelGlobals *kg, PathSt return average(throughput); } -#ifdef __TRANSPARENT_SHADOWS__ -__device bool shader_transparent_shadow(KernelGlobals *kg, Intersection *isect) -{ - int prim = kernel_tex_fetch(__prim_index, isect->prim); - float4 Ns = kernel_tex_fetch(__tri_normal, prim); - int shader = __float_as_int(Ns.w); - - /* todo: add shader flag to check this */ - - return true; -} -#endif - __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ray, Intersection *isect, float3 *light_L) { if(ray->t == 0.0f) @@ -229,12 +216,10 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra throughput *= shader_bsdf_transparency(kg, &sd); ray->P = ray_offset(sd.P, -sd.Ng); - ray->t = len(Pend - ray->P); + ray->t = (ray->t == FLT_MAX)? FLT_MAX: len(Pend - ray->P); bounce++; } - - return true; } } #endif @@ -298,10 +283,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R #ifdef __EMISSION__ /* emission */ - if(kernel_data.integrator.use_emission) { - if(sd.flag & SD_EMISSION) - L += throughput*indirect_emission(kg, &sd, isect.t, state.flag, ray_pdf); - } + if(sd.flag & SD_EMISSION) + L += throughput*indirect_emission(kg, &sd, isect.t, state.flag, ray_pdf); #endif /* path termination. this is a strange place to put the termination, it's @@ -316,7 +299,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R throughput /= probability; #ifdef __EMISSION__ - if(kernel_data.integrator.use_emission) { + if(kernel_data.integrator.use_direct_light) { /* sample illumination from lights to find path contribution */ if(sd.flag & SD_BSDF_HAS_EVAL) { float light_t = path_rng(kg, rng, sample, rng_offset + PRNG_LIGHT); diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 0cf2091590c..c1bcbb067b5 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -60,7 +60,6 @@ __device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, sd->N = Ng; sd->I = -ray->D; sd->shader = shader; - sd->flag = 0; /* triangle */ #ifdef __INSTANCING__ @@ -73,10 +72,10 @@ __device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, #endif /* smooth normal */ - if(sd->shader < 0) { + if(sd->shader & SHADER_SMOOTH_NORMAL) sd->N = triangle_smooth_normal(kg, sd->prim, sd->u, sd->v); - sd->shader = -sd->shader; - } + + sd->flag = kernel_tex_fetch(__shader_flag, sd->shader & SHADER_MASK); #ifdef __DPDU__ /* dPdu/dPdv */ @@ -103,7 +102,7 @@ __device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd, bool backfacing = (dot(sd->Ng, sd->I) < 0.0f); if(backfacing) { - sd->flag = SD_BACKFACING; + sd->flag |= SD_BACKFACING; sd->Ng = -sd->Ng; sd->N = -sd->N; #ifdef __DPDU__ @@ -132,7 +131,6 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd, sd->Ng = Ng; sd->I = I; sd->shader = shader; - sd->flag = 0; /* primitive */ #ifdef __INSTANCING__ @@ -159,9 +157,8 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd, #endif /* smooth normal */ - if(sd->shader < 0) { + if(sd->shader & SHADER_SMOOTH_NORMAL) { sd->N = triangle_smooth_normal(kg, sd->prim, sd->u, sd->v); - sd->shader = -sd->shader; #ifdef __INSTANCING__ if(instanced) @@ -169,6 +166,8 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd, #endif } + sd->flag = kernel_tex_fetch(__shader_flag, sd->shader & SHADER_MASK); + #ifdef __DPDU__ /* dPdu/dPdv */ if(sd->prim == ~0) { @@ -192,7 +191,7 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd, bool backfacing = (dot(sd->Ng, sd->I) < 0.0f); if(backfacing) { - sd->flag = SD_BACKFACING; + sd->flag |= SD_BACKFACING; sd->Ng = -sd->Ng; sd->N = -sd->N; #ifdef __DPDU__ @@ -245,7 +244,7 @@ __device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderData sd->Ng = -sd->P; sd->I = -sd->P; sd->shader = kernel_data.background.shader; - sd->flag = 0; + sd->flag = kernel_tex_fetch(__shader_flag, sd->shader & SHADER_MASK); #ifdef __INSTANCING__ sd->object = ~0; @@ -410,7 +409,7 @@ __device float3 shader_bsdf_transparency(KernelGlobals *kg, ShaderData *sd) for(int i = 0; i< sd->num_closure; i++) { ShaderClosure *sc = &sd->closure[i]; - if(sc->type == CLOSURE_BSDF_TRANSPARENT_ID) // XXX osl + if(sc->type == CLOSURE_BSDF_TRANSPARENT_ID) // todo: make this work for osl eval += sc->weight; } @@ -428,8 +427,9 @@ __device float3 shader_bsdf_transparency(KernelGlobals *kg, ShaderData *sd) __device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd) { + float3 eval; #ifdef __MULTI_CLOSURE__ - float3 eval = make_float3(0.0f, 0.0f, 0.0f); + eval = make_float3(0.0f, 0.0f, 0.0f); for(int i = 0; i < sd->num_closure; i++) { ShaderClosure *sc = &sd->closure[i]; @@ -442,11 +442,11 @@ __device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd) #endif } } - - return eval; #else - return svm_emissive_eval(sd, &sd->closure)*sd->closure.weight; + eval = svm_emissive_eval(sd, &sd->closure)*sd->closure.weight; #endif + + return eval; } /* Holdout */ @@ -581,6 +581,20 @@ __device void shader_eval_displacement(KernelGlobals *kg, ShaderData *sd) #endif } +/* Transparent Shadows */ + +#ifdef __TRANSPARENT_SHADOWS__ +__device bool shader_transparent_shadow(KernelGlobals *kg, Intersection *isect) +{ + int prim = kernel_tex_fetch(__prim_index, isect->prim); + float4 Ns = kernel_tex_fetch(__tri_normal, prim); + int shader = __float_as_int(Ns.w); + int flag = kernel_tex_fetch(__shader_flag, shader & SHADER_MASK); + + return (flag & SD_HAS_SURFACE_TRANSPARENT) != 0; +} +#endif + /* Free ShaderData */ __device void shader_release(KernelGlobals *kg, ShaderData *sd) diff --git a/intern/cycles/kernel/kernel_textures.h b/intern/cycles/kernel/kernel_textures.h index 19635b2664c..2bfb1b3b88e 100644 --- a/intern/cycles/kernel/kernel_textures.h +++ b/intern/cycles/kernel/kernel_textures.h @@ -32,10 +32,11 @@ KERNEL_TEX(float4, texture_float4, __attributes_float3) /* lights */ KERNEL_TEX(float4, texture_float4, __light_distribution) -KERNEL_TEX(float4, texture_float4, __light_point) +KERNEL_TEX(float4, texture_float4, __light_data) /* shaders */ KERNEL_TEX(uint4, texture_uint4, __svm_nodes) +KERNEL_TEX(uint, texture_uint, __shader_flag) /* camera/film */ KERNEL_TEX(float, texture_float, __filter_table) diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index e09eaa8284c..bda037e88cc 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -26,6 +26,7 @@ CCL_NAMESPACE_BEGIN #define OBJECT_SIZE 16 +#define LIGHT_SIZE 4 #define __SOBOL__ #define __INSTANCING__ @@ -43,12 +44,12 @@ CCL_NAMESPACE_BEGIN #define __EMISSION__ #define __TEXTURES__ #define __HOLDOUT__ +//#define __MULTI_CLOSURE__ +//#define __TRANSPARENT_SHADOWS__ +//#define __MULTI_LIGHT__ #endif #ifdef __KERNEL_CPU__ -//#define __MULTI_CLOSURE__ -//#define __MULTI_LIGHT__ -//#define __TRANSPARENT_SHADOWS__ //#define __OSL__ #endif @@ -79,6 +80,7 @@ enum PathTraceDimension { /* these flag values correspond exactly to OSL defaults, so be careful not to * change this, or if you do, set the "raytypes" shading system attribute with * your own new ray types and bitflag values */ + enum PathRayFlag { PATH_RAY_CAMERA = 1, PATH_RAY_SHADOW = 2, @@ -92,28 +94,6 @@ enum PathRayFlag { PATH_RAY_ALL = (1|2|4|8|16|32|64|128) }; -/* Bidirectional Path Tracing */ - -enum BidirTraceDimension { - BRNG_FILTER_U = 0, - BRNG_FILTER_V = 1, - BRNG_LENS_U = 2, - BRNG_LENS_V = 3, - BRNG_LIGHT_U = 4, - BRNG_LIGHT_V = 5, - BRNG_LIGHT = 6, - BRNG_LIGHT_F = 7, - BRNG_EMISSIVE_U = 8, - BRNG_EMISSIVE_V = 9, - BRNG_BASE_NUM = 10, - - BRNG_BSDF_U = 0, - BRNG_BSDF_V = 1, - BRNG_BSDF = 2, - BRNG_TERMINATE = 3, - BRNG_BOUNCE_NUM = 4 -}; - /* Closure Label */ typedef enum ClosureLabel { @@ -132,16 +112,23 @@ typedef enum ClosureLabel { LABEL_STOP = 2048 } ClosureLabel; -/* Ray Type */ +/* Shader Flag */ + +typedef enum ShaderFlag { + SHADER_SMOOTH_NORMAL = (1 << 31), + SHADER_CAST_SHADOW = (1 << 30), + SHADER_AREA_LIGHT = (1 << 29), -typedef enum RayType { - RayTypeCamera = 1, - RayTypeShadow = 2, - RayTypeReflection = 4, - RayTypeRefraction = 8, - RayTypeDiffuse = 16, - RayTypeGlossy = 32 -} RayType; + SHADER_MASK = ~(SHADER_SMOOTH_NORMAL|SHADER_CAST_SHADOW|SHADER_AREA_LIGHT) +} ShaderFlag; + +/* Light Type */ + +typedef enum LightType { + LIGHT_POINT, + LIGHT_DISTANT, + LIGHT_AREA +} LightType; /* Differential */ @@ -213,13 +200,20 @@ typedef struct ShaderClosure { * are in world space. */ enum ShaderDataFlag { + /* runtime flags */ SD_BACKFACING = 1, /* backside of surface? */ SD_EMISSION = 2, /* have emissive closure? */ SD_BSDF = 4, /* have bsdf closure? */ SD_BSDF_HAS_EVAL = 8, /* have non-singular bsdf closure? */ SD_BSDF_GLOSSY = 16, /* have glossy bsdf */ SD_HOLDOUT = 32, /* have holdout closure? */ - SD_VOLUME = 64 /* have volume closure? */ + SD_VOLUME = 64, /* have volume closure? */ + + /* shader flags */ + SD_SAMPLE_AS_LIGHT = 128, /* direct light sample */ + SD_HAS_SURFACE_TRANSPARENT = 256, /* has surface transparency */ + SD_HAS_VOLUME = 512, /* has volume shader */ + SD_HOMOGENEOUS_VOLUME = 1024 /* has homogeneous volume */ }; typedef struct ShaderData { @@ -351,7 +345,7 @@ typedef struct KernelSunSky { typedef struct KernelIntegrator { /* emission */ - int use_emission; + int use_direct_light; int num_distribution; int num_all_lights; float pdf_triangles; diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 3f0b1610181..18a8e974492 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -216,8 +216,10 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int shaderdata_to_shaderglobals(kg, sd, path_flag, globals); /* execute shader for this point */ - if(kg->osl.surface_state[sd->shader]) - ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[sd->shader]), *globals); + int shader = sd->shader & SHADER_MASK; + + if(kg->osl.surface_state[shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[shader]), *globals); /* flatten closure tree */ sd->num_closure = 0; @@ -351,7 +353,10 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int shaderdata_to_shaderglobals(kg, sd, path_flag, globals); /* execute shader */ - ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.volume_state[sd->shader]), *globals); + 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; @@ -377,7 +382,10 @@ void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd) shaderdata_to_shaderglobals(kg, sd, 0, globals); /* execute shader */ - ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.displacement_state[sd->shader]), *globals); + int shader = sd->shader & SHADER_MASK; + + if(kg->osl.displacement_state[shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.displacement_state[shader]), *globals); /* get back position */ sd->P = TO_FLOAT3(globals->P); diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index bd5c07753ad..62e02f1a01a 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -152,7 +152,7 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT { float stack[SVM_STACK_SIZE]; float closure_weight = 1.0f; - int offset = sd->shader; + int offset = sd->shader & SHADER_MASK; #ifdef __MULTI_CLOSURE__ sd->num_closure = 0; diff --git a/intern/cycles/kernel/svm/svm_bsdf.h b/intern/cycles/kernel/svm/svm_bsdf.h index a1b39c6ca1e..411efc8be8f 100644 --- a/intern/cycles/kernel/svm/svm_bsdf.h +++ b/intern/cycles/kernel/svm/svm_bsdf.h @@ -90,6 +90,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con case CLOSURE_BSDF_DIFFUSE_ID: eval = bsdf_diffuse_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; +#ifdef __SVM__ case CLOSURE_BSDF_TRANSLUCENT_ID: eval = bsdf_translucent_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; @@ -124,6 +125,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con case CLOSURE_BSDF_WESTIN_SHEEN_ID: eval = bsdf_westin_sheen_eval_reflect(sd, sc, sd->I, omega_in, pdf); break; +#endif default: eval = make_float3(0.0f, 0.0f, 0.0f); break; @@ -134,6 +136,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con case CLOSURE_BSDF_DIFFUSE_ID: eval = bsdf_diffuse_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; +#ifdef __SVM__ case CLOSURE_BSDF_TRANSLUCENT_ID: eval = bsdf_translucent_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; @@ -168,6 +171,7 @@ __device float3 svm_bsdf_eval(const ShaderData *sd, const ShaderClosure *sc, con case CLOSURE_BSDF_WESTIN_SHEEN_ID: eval = bsdf_westin_sheen_eval_transmit(sd, sc, sd->I, omega_in, pdf); break; +#endif default: eval = make_float3(0.0f, 0.0f, 0.0f); break; @@ -183,6 +187,7 @@ __device void svm_bsdf_blur(ShaderClosure *sc, float roughness) case CLOSURE_BSDF_DIFFUSE_ID: bsdf_diffuse_blur(sc, roughness); break; +#ifdef __SVM__ case CLOSURE_BSDF_TRANSLUCENT_ID: bsdf_translucent_blur(sc, roughness); break; @@ -217,6 +222,7 @@ __device void svm_bsdf_blur(ShaderClosure *sc, float roughness) case CLOSURE_BSDF_WESTIN_SHEEN_ID: bsdf_westin_sheen_blur(sc, roughness); break; +#endif default: break; } diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index b13cab55404..74943fd0ff7 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -32,8 +32,19 @@ CCL_NAMESPACE_BEGIN Light::Light() { + type = LIGHT_POINT; + co = make_float3(0.0f, 0.0f, 0.0f); - radius = 0.0f; + + dir = make_float3(0.0f, 0.0f, 0.0f); + size = 0.0f; + + axisu = make_float3(0.0f, 0.0f, 0.0f); + sizeu = 1.0f; + axisv = make_float3(0.0f, 0.0f, 0.0f); + sizev = 1.0f; + + cast_shadow = true; shader = 0; } @@ -68,7 +79,9 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen /* skip if we have no emission shaders */ foreach(uint sindex, mesh->used_shaders) { - if(scene->shaders[sindex]->has_surface_emission) { + Shader *shader = scene->shaders[sindex]; + + if(shader->sample_as_light && shader->has_surface_emission) { have_emission = true; break; } @@ -79,7 +92,7 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen for(size_t i = 0; i < mesh->triangles.size(); i++) { Shader *shader = scene->shaders[mesh->shader[i]]; - if(shader->has_surface_emission) + if(shader->sample_as_light && shader->has_surface_emission) num_triangles++; } } @@ -104,7 +117,9 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen /* skip if we have no emission shaders */ foreach(uint sindex, mesh->used_shaders) { - if(scene->shaders[sindex]->has_surface_emission) { + Shader *shader = scene->shaders[sindex]; + + if(shader->sample_as_light && shader->has_surface_emission) { have_emission = true; break; } @@ -118,7 +133,7 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen for(size_t i = 0; i < mesh->triangles.size(); i++) { Shader *shader = scene->shaders[mesh->shader[i]]; - if(shader->has_surface_emission) { + if(shader->sample_as_light && shader->has_surface_emission) { distribution[offset].x = totarea; distribution[offset].y = __int_as_float(i + mesh->tri_offset); distribution[offset].z = 1.0f; @@ -150,7 +165,7 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen distribution[offset].x = totarea; distribution[offset].y = __int_as_float(-i-1); distribution[offset].z = 1.0f; - distribution[offset].w = scene->lights[i]->radius; + distribution[offset].w = scene->lights[i]->size; totarea += lightarea; } } @@ -171,9 +186,9 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen /* update device */ KernelIntegrator *kintegrator = &dscene->data.integrator; - kintegrator->use_emission = (totarea > 0.0f) || (multi_light && num_lights); + kintegrator->use_direct_light = (totarea > 0.0f) || (multi_light && num_lights); - if(kintegrator->use_emission) { + if(kintegrator->use_direct_light) { /* number of emissives */ kintegrator->num_distribution = (totarea > 0.0f)? num_distribution: 0; @@ -219,16 +234,45 @@ void LightManager::device_update_points(Device *device, DeviceScene *dscene, Sce if(scene->lights.size() == 0) return; - float4 *light_point = dscene->light_point.resize(scene->lights.size()); + float4 *light_data = dscene->light_data.resize(scene->lights.size()*LIGHT_SIZE); for(size_t i = 0; i < scene->lights.size(); i++) { - float3 co = scene->lights[i]->co; + Light *light = scene->lights[i]; + float3 co = light->co; + float3 dir = normalize(light->dir); int shader_id = scene->shader_manager->get_shader_id(scene->lights[i]->shader); - light_point[i] = make_float4(co.x, co.y, co.z, __int_as_float(shader_id)); + if(!light->cast_shadow) + shader_id &= ~SHADER_CAST_SHADOW; + + if(light->type == LIGHT_POINT) { + shader_id &= ~SHADER_AREA_LIGHT; + + light_data[i*LIGHT_SIZE + 0] = make_float4(__int_as_float(light->type), co.x, co.y, co.z); + light_data[i*LIGHT_SIZE + 1] = make_float4(__int_as_float(shader_id), light->size, 0.0f, 0.0f); + light_data[i*LIGHT_SIZE + 2] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + light_data[i*LIGHT_SIZE + 3] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + } + else if(light->type == LIGHT_DISTANT) { + shader_id &= ~SHADER_AREA_LIGHT; + + light_data[i*LIGHT_SIZE + 0] = make_float4(__int_as_float(light->type), dir.x, dir.y, dir.z); + light_data[i*LIGHT_SIZE + 1] = make_float4(__int_as_float(shader_id), light->size, 0.0f, 0.0f); + light_data[i*LIGHT_SIZE + 2] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + light_data[i*LIGHT_SIZE + 3] = make_float4(0.0f, 0.0f, 0.0f, 0.0f); + } + else if(light->type == LIGHT_AREA) { + float3 axisu = light->axisu*(light->sizeu*light->size); + float3 axisv = light->axisv*(light->sizev*light->size); + + light_data[i*LIGHT_SIZE + 0] = make_float4(__int_as_float(light->type), co.x, co.y, co.z); + light_data[i*LIGHT_SIZE + 1] = make_float4(__int_as_float(shader_id), axisu.x, axisu.y, axisu.z); + light_data[i*LIGHT_SIZE + 2] = make_float4(0.0f, axisv.x, axisv.y, axisv.z); + light_data[i*LIGHT_SIZE + 3] = make_float4(0.0f, dir.x, dir.y, dir.z); + } } - device->tex_alloc("__light_point", dscene->light_point); + device->tex_alloc("__light_data", dscene->light_data); } void LightManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) @@ -250,10 +294,10 @@ void LightManager::device_update(Device *device, DeviceScene *dscene, Scene *sce void LightManager::device_free(Device *device, DeviceScene *dscene) { device->tex_free(dscene->light_distribution); - device->tex_free(dscene->light_point); + device->tex_free(dscene->light_data); dscene->light_distribution.clear(); - dscene->light_point.clear(); + dscene->light_data.clear(); } void LightManager::tag_update(Scene *scene) diff --git a/intern/cycles/render/light.h b/intern/cycles/render/light.h index dbc333260ee..19cbcb55386 100644 --- a/intern/cycles/render/light.h +++ b/intern/cycles/render/light.h @@ -19,6 +19,8 @@ #ifndef __LIGHT_H__ #define __LIGHT_H__ +#include "kernel_types.h" + #include "util_types.h" #include "util_vector.h" @@ -33,8 +35,19 @@ class Light { public: Light(); + LightType type; float3 co; - float radius; /* not implemented yet */ + + float3 dir; + float size; + + float3 axisu; + float sizeu; + float3 axisv; + float sizev; + + bool cast_shadow; + int shader; void tag_update(Scene *scene); diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 4fd562b540c..9e7e2a8a81d 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1214,6 +1214,7 @@ void TranslucentBsdfNode::compile(OSLCompiler& compiler) TransparentBsdfNode::TransparentBsdfNode() { + name = "transparent"; closure = CLOSURE_BSDF_TRANSPARENT_ID; } diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index fec1ab7f4c8..b91531ac462 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -88,9 +88,12 @@ void Object::tag_update(Scene *scene) if(mesh->transform_applied) mesh->need_update = true; - foreach(uint sindex, mesh->used_shaders) - if(scene->shaders[sindex]->has_surface_emission) + foreach(uint sindex, mesh->used_shaders) { + Shader *shader = scene->shaders[sindex]; + + if(shader->sample_as_light && shader->has_surface_emission) scene->light_manager->need_update = true; + } } scene->mesh_manager->need_update = true; diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 446cf72f5d6..b0173334c76 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -91,7 +91,7 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene if(progress.get_cancel()) return; - if(shader->has_surface_emission) + if(shader->sample_as_light && shader->has_surface_emission) scene->light_manager->need_update = true; OSLCompiler compiler((void*)ss); @@ -112,12 +112,16 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene /* set texture system */ scene->image_manager->set_osl_texture_system((void*)ts); + + device_update_common(device, dscene, scene, progress); } void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) { OSLGlobals *og = (OSLGlobals*)device->osl_memory(); + device_free_common(device, dscene); + /* clear shader engine */ og->use = false; og->ss = NULL; @@ -340,6 +344,8 @@ void OSLCompiler::generate_nodes(const set& nodes) if(node->name == ustring("emission")) current_shader->has_surface_emission = true; + if(node->name == ustring("transparent")) + current_shader->has_surface_transparent = true; } else nodes_done = false; @@ -403,6 +409,7 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) shader->has_surface = false; shader->has_surface_emission = false; + shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index 93d8ebf1301..a969dd66c4c 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -77,10 +77,11 @@ public: /* lights */ device_vector light_distribution; - device_vector light_point; + device_vector light_data; /* shaders */ device_vector svm_nodes; + device_vector shader_flag; /* filter */ device_vector filter_table; diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index 548beaaecdd..6e827ec94bb 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -39,7 +39,11 @@ Shader::Shader() graph = NULL; graph_bump = NULL; + sample_as_light = true; + homogeneous_volume = false; + has_surface = false; + has_surface_transparent = false; has_surface_emission = false; has_volume = false; has_displacement = false; @@ -72,7 +76,7 @@ void Shader::tag_update(Scene *scene) /* if the shader previously was emissive, update light distribution, * if the new shader is emissive, a light manager update tag will be * done in the shader manager device update. */ - if(has_surface_emission) + if(sample_as_light && has_surface_emission) scene->light_manager->need_update = true; /* get requested attributes. this could be optimized by pruning unused @@ -146,13 +150,52 @@ int ShaderManager::get_shader_id(uint shader, Mesh *mesh, bool smooth) /* index depends bump since this setting is not in the shader */ if(mesh && mesh->displacement_method != Mesh::DISPLACE_TRUE) id += 1; - /* stuff in smooth flag too */ + /* smooth flag */ if(smooth) - id= -id; + id |= SHADER_SMOOTH_NORMAL; + + /* default flags */ + id |= SHADER_CAST_SHADOW|SHADER_AREA_LIGHT; return id; } +void ShaderManager::device_update_common(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) +{ + device_free_common(device, dscene); + + if(scene->shaders.size() == 0) + return; + + uint shader_flag_size = scene->shaders.size()*2; + uint *shader_flag = dscene->shader_flag.resize(shader_flag_size); + uint i = 0; + + foreach(Shader *shader, scene->shaders) { + uint flag = 0; + + if(shader->sample_as_light) + flag |= SD_SAMPLE_AS_LIGHT; + if(shader->has_surface_transparent) + flag |= SD_HAS_SURFACE_TRANSPARENT; + if(shader->has_volume) + flag |= SD_HAS_VOLUME; + if(shader->homogeneous_volume) + flag |= SD_HOMOGENEOUS_VOLUME; + + shader_flag[i++] = flag; + shader_flag[i++] = flag; + } + + device->tex_alloc("__shader_flag", dscene->shader_flag); +} + +void ShaderManager::device_free_common(Device *device, DeviceScene *dscene) +{ + device->tex_free(dscene->shader_flag); + dscene->shader_flag.clear(); +} + void ShaderManager::add_default(Scene *scene) { Shader *shader; diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h index cc8bc473a3f..45efa123ef6 100644 --- a/intern/cycles/render/shader.h +++ b/intern/cycles/render/shader.h @@ -56,6 +56,10 @@ public: level setting, so we need to handle both */ ShaderGraph *graph_bump; + /* sampling */ + bool sample_as_light; + bool homogeneous_volume; + /* synchronization */ bool need_update; bool need_update_attributes; @@ -63,6 +67,7 @@ public: /* information about shader after compiling */ bool has_surface; bool has_surface_emission; + bool has_surface_transparent; bool has_volume; bool has_displacement; @@ -92,6 +97,9 @@ public: virtual void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) = 0; virtual void device_free(Device *device, DeviceScene *dscene) = 0; + void device_update_common(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); + void device_free_common(Device *device, DeviceScene *dscene); + /* get globally unique id for a type of attribute */ uint get_attribute_id(ustring name); uint get_attribute_id(Attribute::Standard std); diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index 8b527691bd9..a1687ae5e29 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -66,7 +66,7 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene assert(shader->graph); - if(shader->has_surface_emission) + if(shader->sample_as_light && shader->has_surface_emission) scene->light_manager->need_update = true; SVMCompiler compiler(scene->shader_manager, scene->image_manager, @@ -86,11 +86,15 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene shader->need_update = false; } + device_update_common(device, dscene, scene, progress); + need_update = false; } void SVMShaderManager::device_free(Device *device, DeviceScene *dscene) { + device_free_common(device, dscene); + device->tex_free(dscene->svm_nodes); dscene->svm_nodes.clear(); } @@ -461,6 +465,8 @@ void SVMCompiler::generate_closure(ShaderNode *node, set& done) if(node->name == ustring("emission")) current_shader->has_surface_emission = true; + if(node->name == ustring("transparent")) + current_shader->has_surface_transparent = true; /* end node is added outside of this */ } @@ -538,6 +544,8 @@ void SVMCompiler::generate_multi_closure(ShaderNode *node, set& don if(node->name == ustring("emission")) current_shader->has_surface_emission = true; + if(node->name == ustring("transparent")) + current_shader->has_surface_transparent = true; /* end node is added outside of this */ } @@ -641,6 +649,7 @@ void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int in shader->has_surface = false; shader->has_surface_emission = false; + shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index c0418b3d8fd..38e90f0b2b2 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -780,6 +780,19 @@ __device_inline float triangle_area(const float3 v1, const float3 v2, const floa #endif +/* Orthonormal vectors */ + +__device_inline void make_orthonormals(const float3 N, float3 *a, float3 *b) +{ + if(N.x != N.y || N.x != N.z) + *a = make_float3(N.z-N.y, N.x-N.z, N.y-N.x); //(1,1,1)x N + else + *a = make_float3(N.z-N.y, N.x+N.z, -N.y-N.x); //(-1,1,1)x N + + *a = normalize(*a); + *b = cross(N, *a); +} + CCL_NAMESPACE_END #endif /* __UTIL_MATH_H__ */ -- cgit v1.2.3 From e6dfbcf7cbd3cc708b5dfc8f29f790fd0c0c8735 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 27 Sep 2011 21:05:33 +0000 Subject: Cycles: * Typo Fix. --- intern/cycles/blender/addon/ui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ca2f7e497df..b8c3753800f 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -64,7 +64,7 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): sub.prop(cscene, "preview_samples", text="Preview") sub = col.column(align=True) - sub.label("Tranparency:") + sub.label("Transparency:") sub.prop(cscene, "transparent_max_bounces", text="Max") sub.prop(cscene, "transparent_min_bounces", text="Min") sub.prop(cscene, "no_caustics") -- cgit v1.2.3 From 5689467b9a1d04742e610da8e72d2c285c219778 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 27 Sep 2011 21:25:25 +0000 Subject: Cycles: * Use different Boost versions for x86/x64 windows. Will commit OIIO and Boost for x64 windows later, needs more testing. --- CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7194dd4b7da..9d10f915201 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -839,8 +839,13 @@ elseif(WIN32) if(WITH_BOOST) set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) - set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib") - set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1.lib") + if(CMAKE_CL_64) + set(BOOST_POSTFIX "vc90-mt-s-1_45.lib") + set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_45.lib") + else() + set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib") + set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1.lib") + endif() set(BOOST_LIBRARIES optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} -- cgit v1.2.3 From 590b7ff102c0ac5ee1f45ef8e43664afd9131251 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 29 Sep 2011 20:28:46 +0000 Subject: Cycles: * Remove duplicate declarations. --- release/scripts/startup/bl_ui/space_node.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index afd72b87384..2cbb75f615b 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -47,10 +47,8 @@ class NODE_HT_header(Header): row.prop(snode, "shader_type", text="", expand=True) if snode.shader_type == 'OBJECT': - ob = snode.id_from - snode_id = snode.id - if ob: - layout.template_ID(ob, "active_material", new="material.new") + if id_from: + layout.template_ID(id_from, "active_material", new="material.new") if snode_id: layout.prop(snode_id, "use_nodes") -- cgit v1.2.3 From da8f71bffb1a33c695a368c1243b8aa9ac54c21d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 3 Oct 2011 15:31:45 +0000 Subject: Cycles: some tweaks to silence msvc assertions in debug mode. --- intern/cycles/blender/blender_mesh.cpp | 9 +++-- intern/cycles/bvh/bvh.cpp | 16 ++++---- intern/cycles/device/device_network.h | 2 +- intern/cycles/render/attribute.h | 12 +++--- intern/cycles/render/mesh.cpp | 67 ++++++++++++++++++++-------------- intern/cycles/util/util_cache.h | 21 ++++++++--- 6 files changed, 76 insertions(+), 51 deletions(-) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index f981be66eb4..6e99b380c29 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -268,9 +268,10 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) vector oldtriangle = mesh->triangles; + mesh->clear(); mesh->used_shaders = used_shaders; - mesh->name = ustring(b_ob_data.name()); + mesh->name = ustring(b_ob_data.name().c_str()); if(b_mesh) { if(cmesh.data && RNA_boolean_get(&cmesh, "use_subdivision")) @@ -299,8 +300,10 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) if(oldtriangle.size() != mesh->triangles.size()) rebuild = true; - else if(memcmp(&oldtriangle[0], &mesh->triangles[0], sizeof(Mesh::Triangle)*oldtriangle.size()) != 0) - rebuild = true; + else if(oldtriangle.size()) { + if(memcmp(&oldtriangle[0], &mesh->triangles[0], sizeof(Mesh::Triangle)*oldtriangle.size()) != 0) + rebuild = true; + } mesh->tag_update(scene, rebuild); diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index 3be1f822ed7..cd3ad709812 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -314,11 +314,11 @@ void BVH::pack_instances(size_t nodes_size) pack.nodes.resize(nodes_size); pack.object_node.resize(objects.size()); - int *pack_prim_index = &pack.prim_index[0]; - int *pack_prim_object = &pack.prim_object[0]; - uint *pack_prim_visibility = &pack.prim_visibility[0]; - float4 *pack_tri_woop = &pack.tri_woop[0]; - int4 *pack_nodes = &pack.nodes[0]; + int *pack_prim_index = (pack.prim_index.size())? &pack.prim_index[0]: NULL; + int *pack_prim_object = (pack.prim_object.size())? &pack.prim_object[0]: NULL; + uint *pack_prim_visibility = (pack.prim_visibility.size())? &pack.prim_visibility[0]: NULL; + float4 *pack_tri_woop = (pack.tri_woop.size())? &pack.tri_woop[0]: NULL; + int4 *pack_nodes = (pack.nodes.size())? &pack.nodes[0]: NULL; /* merge */ foreach(Object *ob, objects) { @@ -355,7 +355,7 @@ void BVH::pack_instances(size_t nodes_size) mesh_map[mesh] = pack.object_node[object_offset-1]; /* merge primitive and object indexes */ - { + if(bvh->pack.prim_index.size()) { size_t bvh_prim_index_size = bvh->pack.prim_index.size(); int *bvh_prim_index = &bvh->pack.prim_index[0]; uint *bvh_prim_visibility = &bvh->pack.prim_visibility[0]; @@ -369,14 +369,14 @@ void BVH::pack_instances(size_t nodes_size) } /* merge triangle intersection data */ - { + if(bvh->pack.tri_woop.size()) { memcpy(pack_tri_woop+pack_tri_woop_offset, &bvh->pack.tri_woop[0], bvh->pack.tri_woop.size()*sizeof(float4)); pack_tri_woop_offset += bvh->pack.tri_woop.size(); } /* merge nodes */ - { + if( bvh->pack.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(); diff --git a/intern/cycles/device/device_network.h b/intern/cycles/device/device_network.h index 775517586d3..3cdb70bb4df 100644 --- a/intern/cycles/device/device_network.h +++ b/intern/cycles/device/device_network.h @@ -125,7 +125,7 @@ typedef struct RPCReceive { size_t len = boost::asio::read(socket, boost::asio::buffer(data)); if(len == data_size) { - archive_str = string(&data[0], data.size()); + archive_str = (data.size())? string(&data[0], data.size()): string(""); /*istringstream archive_stream(archive_str); boost::archive::text_iarchive archive(archive_stream);*/ archive_stream = new istringstream(archive_str); diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h index a1c3d2b6ae7..aef215d6c0c 100644 --- a/intern/cycles/render/attribute.h +++ b/intern/cycles/render/attribute.h @@ -73,13 +73,13 @@ public: size_t element_size(int numverts, int numfaces); size_t buffer_size(int numverts, int numfaces); - char *data() { return &buffer[0]; }; - float3 *data_float3() { return (float3*)&buffer[0]; } - float *data_float() { return (float*)&buffer[0]; } + char *data() { return (buffer.size())? &buffer[0]: NULL; }; + float3 *data_float3() { return (float3*)data(); } + float *data_float() { return (float*)data(); } - const char *data() const { return &buffer[0]; } - const float3 *data_float3() const { return (float3*)&buffer[0]; } - const float *data_float() const { return (float*)&buffer[0]; } + const char *data() const { return (buffer.size())? &buffer[0]: NULL; } + const float3 *data_float3() const { return (float3*)data(); } + const float *data_float() const { return (float*)data(); } static bool same_storage(TypeDesc a, TypeDesc b); static ustring standard_name(Attribute::Standard std); diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 7a6ce547486..ac07ee8e89f 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -115,17 +115,20 @@ void Mesh::add_face_normals() float3 *fN = attr_fN->data_float3(); /* compute face normals */ - float3 *verts_ptr = &verts[0]; size_t triangles_size = triangles.size(); - Triangle *triangles_ptr = &triangles[0]; - for(size_t i = 0; i < triangles_size; i++) { - Triangle t = triangles_ptr[i]; - float3 v0 = verts_ptr[t.v[0]]; - float3 v1 = verts_ptr[t.v[1]]; - float3 v2 = verts_ptr[t.v[2]]; + if(triangles_size) { + float3 *verts_ptr = &verts[0]; + Triangle *triangles_ptr = &triangles[0]; + + for(size_t i = 0; i < triangles_size; i++) { + Triangle t = triangles_ptr[i]; + float3 v0 = verts_ptr[t.v[0]]; + float3 v1 = verts_ptr[t.v[1]]; + float3 v2 = verts_ptr[t.v[2]]; - fN[i] = normalize(cross(v1 - v0, v2 - v0)); + fN[i] = normalize(cross(v1 - v0, v2 - v0)); + } } } @@ -143,15 +146,18 @@ void Mesh::add_vertex_normals() float3 *vN = attr_vN->data_float3(); /* compute vertex normals */ - memset(&vN[0], 0, verts.size()*sizeof(float3)); + memset(vN, 0, verts.size()*sizeof(float3)); size_t verts_size = verts.size(); size_t triangles_size = triangles.size(); - Triangle *triangles_ptr = &triangles[0]; - for(size_t i = 0; i < triangles_size; i++) - for(size_t j = 0; j < 3; j++) - vN[triangles_ptr[i].v[j]] += fN[i]; + if(triangles_size) { + Triangle *triangles_ptr = &triangles[0]; + + for(size_t i = 0; i < triangles_size; i++) + for(size_t j = 0; j < 3; j++) + vN[triangles_ptr[i].v[j]] += fN[i]; + } for(size_t i = 0; i < verts_size; i++) vN[i] = normalize(vN[i]); @@ -169,7 +175,7 @@ void Mesh::pack_normals(Scene *scene, float4 *normal, float4 *vnormal) bool last_smooth = false; size_t triangles_size = triangles.size(); - uint *shader_ptr = &shader[0]; + uint *shader_ptr = (shader.size())? &shader[0]: NULL; for(size_t i = 0; i < triangles_size; i++) { normal[i].x = fN[i].x; @@ -195,24 +201,30 @@ void Mesh::pack_normals(Scene *scene, float4 *normal, float4 *vnormal) void Mesh::pack_verts(float4 *tri_verts, float4 *tri_vindex, size_t vert_offset) { size_t verts_size = verts.size(); - float3 *verts_ptr = &verts[0]; - for(size_t i = 0; i < verts_size; i++) { - float3 p = verts_ptr[i]; - tri_verts[i] = make_float4(p.x, p.y, p.z, 0.0f); + if(verts_size) { + float3 *verts_ptr = &verts[0]; + + for(size_t i = 0; i < verts_size; i++) { + float3 p = verts_ptr[i]; + tri_verts[i] = make_float4(p.x, p.y, p.z, 0.0f); + } } size_t triangles_size = triangles.size(); - Triangle *triangles_ptr = &triangles[0]; - for(size_t i = 0; i < triangles_size; i++) { - Triangle t = triangles_ptr[i]; + if(triangles_size) { + Triangle *triangles_ptr = &triangles[0]; - tri_vindex[i] = make_float4( - __int_as_float(t.v[0] + vert_offset), - __int_as_float(t.v[1] + vert_offset), - __int_as_float(t.v[2] + vert_offset), - 0); + for(size_t i = 0; i < triangles_size; i++) { + Triangle t = triangles_ptr[i]; + + tri_vindex[i] = make_float4( + __int_as_float(t.v[0] + vert_offset), + __int_as_float(t.v[1] + vert_offset), + __int_as_float(t.v[2] + vert_offset), + 0); + } } } @@ -428,7 +440,8 @@ void MeshManager::device_update_attributes(Device *device, DeviceScene *dscene, /* todo: get rid of this exception */ if(!mattr && req.std == Attribute::STD_GENERATED) { mattr = mesh->attributes.add(Attribute::STD_GENERATED); - memcpy(mattr->data_float3(), &mesh->verts[0], sizeof(float3)*mesh->verts.size()); + if(mesh->verts.size()) + memcpy(mattr->data_float3(), &mesh->verts[0], sizeof(float3)*mesh->verts.size()); } /* attribute not found */ diff --git a/intern/cycles/util/util_cache.h b/intern/cycles/util/util_cache.h index 25b1f2e7a51..91e8a94a584 100644 --- a/intern/cycles/util/util_cache.h +++ b/intern/cycles/util/util_cache.h @@ -57,20 +57,26 @@ public: template void add(const vector& data) { - CacheBuffer buffer(&data[0], data.size()*sizeof(T)); - buffers.push_back(buffer); + if(data.size()) { + CacheBuffer buffer(&data[0], data.size()*sizeof(T)); + buffers.push_back(buffer); + } } template void add(const array& data) { - CacheBuffer buffer(&data[0], data.size()*sizeof(T)); - buffers.push_back(buffer); + if(data.size()) { + CacheBuffer buffer(&data[0], data.size()*sizeof(T)); + buffers.push_back(buffer); + } } void add(void *data, size_t size) { - CacheBuffer buffer(data, size); - buffers.push_back(buffer); + if(size) { + CacheBuffer buffer(data, size); + buffers.push_back(buffer); + } } void add(int& data) @@ -94,6 +100,9 @@ public: return; } + if(!size) + return; + data.resize(size/sizeof(T)); if(!fread(&data[0], size, 1, f)) { -- cgit v1.2.3 From 1ab9fc59b750b1dc5ebaacd30c6891949895a10d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 3 Oct 2011 17:42:24 +0000 Subject: Cycles: fix a few more msvc issues with empty scenes and ustring setting. --- intern/cycles/blender/blender_mesh.cpp | 6 +++--- intern/cycles/blender/blender_object.cpp | 2 +- intern/cycles/blender/blender_shader.cpp | 4 ++-- intern/cycles/bvh/bvh_build.cpp | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 6e99b380c29..0dc0b91be79 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -110,11 +110,11 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< BL::Mesh::vertex_colors_iterator l; for(b_mesh.vertex_colors.begin(l); l != b_mesh.vertex_colors.end(); ++l) { - if(!mesh_need_attribute(scene, mesh, ustring(l->name()))) + if(!mesh_need_attribute(scene, mesh, ustring(l->name().c_str()))) continue; Attribute *attr = mesh->attributes.add( - ustring(l->name()), TypeDesc::TypeColor, Attribute::CORNER); + ustring(l->name().c_str()), TypeDesc::TypeColor, Attribute::CORNER); BL::MeshColorLayer::data_iterator c; float3 *fdata = attr->data_float3(); @@ -142,7 +142,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< for(b_mesh.uv_textures.begin(l); l != b_mesh.uv_textures.end(); ++l) { Attribute::Standard std = (l->active_render())? Attribute::STD_UV: Attribute::STD_NONE; - ustring name = ustring(l->name()); + ustring name = ustring(l->name().c_str()); if(!(mesh_need_attribute(scene, mesh, name) || mesh_need_attribute(scene, mesh, std))) continue; diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index a4944a378e0..de41484975d 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -177,7 +177,7 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, /* object sync */ if(object_map.sync(&object, b_ob, b_parent, key)) { - object->name = b_ob.name(); + object->name = b_ob.name().c_str(); object->tfm = tfm; object->visibility = object_ray_visibility(b_ob) & visibility; diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 0c962e3c5f0..c7eda0a0160 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -568,7 +568,7 @@ void BlenderSync::sync_materials() if(shader_map.sync(&shader, *b_mat)) { ShaderGraph *graph = new ShaderGraph(); - shader->name = b_mat->name(); + shader->name = b_mat->name().c_str(); /* create nodes */ if(b_mat->use_nodes() && b_mat->node_tree()) { @@ -660,7 +660,7 @@ void BlenderSync::sync_lamps() /* create nodes */ if(b_lamp->use_nodes() && b_lamp->node_tree()) { - shader->name = b_lamp->name(); + shader->name = b_lamp->name().c_str(); PtrSockMap sock_to_node; BL::ShaderNodeTree b_ntree(b_lamp->node_tree()); diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index d3e84e11d53..67cff3f5873 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -270,7 +270,8 @@ BVHNode* BVHBuild::create_leaf_node(const NodeSpec& spec) /* while there may be multiple triangles in a leaf, for object primitives * we want them to be the only one, so we */ int ob_num = spec.num - num; - BVHNode *oleaf = create_object_leaf_nodes(&references.back() - (ob_num - 1), ob_num); + const Reference *ref = (ob_num)? &references.back() - (ob_num - 1): NULL; + BVHNode *oleaf = create_object_leaf_nodes(ref, ob_num); for(int i = 0; i < ob_num; i++) references.pop_back(); -- cgit v1.2.3 From 85818c8209bc6df4f60c7e86173521f5fa1a5a96 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 11 Oct 2011 17:19:55 +0000 Subject: Cycles: add python render engine option to use new shading nodes or not, instead of hardcoded check for cycles. Also some other minor code cleaning tweaks. --- CMakeLists.txt | 6 ------ intern/CMakeLists.txt | 5 +++++ intern/cycles/blender/addon/__init__.py | 1 + release/scripts/startup/bl_ui/properties_particle.py | 15 ++------------- release/scripts/startup/bl_ui/properties_texture.py | 1 - release/scripts/startup/bl_ui/space_node.py | 6 ++++-- release/scripts/startup/bl_ui/space_view3d.py | 8 +++++--- source/blender/blenkernel/BKE_scene.h | 2 +- source/blender/blenkernel/intern/scene.c | 7 +++++-- source/blender/editors/sculpt_paint/paint_image.c | 4 ++-- source/blender/editors/space_image/space_image.c | 2 +- source/blender/editors/space_node/node_header.c | 2 +- source/blender/editors/space_view3d/drawmesh.c | 2 +- source/blender/editors/space_view3d/drawobject.c | 8 ++++++-- source/blender/editors/space_view3d/view3d_draw.c | 3 ++- source/blender/editors/uvedit/uvedit_ops.c | 2 +- source/blender/makesdna/DNA_image_types.h | 1 + source/blender/makesdna/DNA_node_types.h | 2 +- source/blender/makesdna/DNA_view3d_types.h | 2 +- source/blender/makesrna/intern/rna_access.c | 2 +- source/blender/makesrna/intern/rna_render.c | 8 ++++++-- source/blender/makesrna/intern/rna_scene.c | 11 +++++++++++ source/blender/makesrna/intern/rna_space.c | 5 +++++ source/blender/render/extern/include/RE_engine.h | 9 +++++---- source/blender/render/intern/pipeline/engine.c | 6 +++--- 25 files changed, 71 insertions(+), 49 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09acb9e77c9..6bada40cd03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1462,12 +1462,6 @@ add_subdirectory(source) add_subdirectory(intern) add_subdirectory(extern) -#----------------------------------------------------------------------------- -# Cycles - -if(WITH_CYCLES) - add_subdirectory(intern/cycles) -endif() #----------------------------------------------------------------------------- # Blender Application diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index fe30d6cfa0c..b38b6e11fd7 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -58,3 +58,8 @@ endif() if(WITH_IK_ITASC) add_subdirectory(itasc) endif() + +if(WITH_CYCLES) + add_subdirectory(cycles) +endif() + diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 3ff1a8f3d41..4a5b78300bf 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -40,6 +40,7 @@ from cycles import presets class CyclesRender(bpy.types.RenderEngine): bl_idname = 'CYCLES' bl_label = "Cycles" + bl_use_shading_nodes = True def __init__(self): engine.init() diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index da4cb05ee8c..7f97239aa68 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -41,7 +41,6 @@ def particle_panel_enabled(context, psys): def particle_panel_poll(cls, context): psys = context.particle_system - engine = context.scene.render.engine settings = 0 if psys: @@ -79,7 +78,6 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): @classmethod def poll(cls, context): - engine = context.scene.render.engine return (context.particle_system or context.object or context.space_data.pin_id) def draw(self, context): @@ -251,7 +249,6 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel): @classmethod def poll(cls, context): psys = context.particle_system - engine = context.scene.render.engine if psys is None: return False if psys.settings is None: @@ -647,7 +644,6 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel): def poll(cls, context): psys = context.particle_system settings = particle_get_settings(context) - engine = context.scene.render.engine if settings is None: return False @@ -746,11 +742,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel): @classmethod def poll(cls, context): settings = particle_get_settings(context) - engine = context.scene.render.engine - if settings is None: - return False - - return True + return settings is not None def draw(self, context): layout = self.layout @@ -931,10 +923,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel): @classmethod def poll(cls, context): settings = particle_get_settings(context) - engine = context.scene.render.engine - if settings is None: - return False - return True + return settings is not None def draw(self, context): layout = self.layout diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index 38697c569da..34f5a948ee7 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -410,7 +410,6 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, Panel): #Only for Material based textures, not for Lamp/World... if slot and isinstance(idblock, bpy.types.Material): - slot = context.texture_slot col.prop(tex, "use_normal_map") row = col.row() row.active = tex.use_normal_map diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index d46ca25c57d..69766b54e97 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -27,6 +27,7 @@ class NODE_HT_header(Header): def draw(self, context): layout = self.layout + scene = context.scene snode = context.space_data snode_id = snode.id id_from = snode.id_from @@ -43,9 +44,10 @@ class NODE_HT_header(Header): layout.prop(snode, "tree_type", text="", expand=True) if snode.tree_type == 'SHADER': - row.prop(snode, "shader_type", text="", expand=True) + if scene.render.use_shading_nodes: + layout.prop(snode, "shader_type", text="", expand=True) - if snode.shader_type == 'OBJECT': + if not scene.render.use_shading_nodes or snode.shader_type == 'OBJECT': if id_from: layout.template_ID(id_from, "active_material", new="material.new") if snode_id: diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index c35b765c795..e2fe8c9fb82 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -2142,9 +2142,11 @@ class VIEW3D_PT_view3d_display(Panel): subsub.active = scene.unit_settings.system == 'NONE' subsub.prop(view, "grid_subdivisions", text="Subdivisions") - col = layout.column() - col.label(text="Shading:") - col.prop(gs, "material_mode", text="") + if not scene.render.use_shading_nodes: + col = layout.column() + col.label(text="Shading:") + col.prop(gs, "material_mode", text="") + col.prop(view, "show_textured_solid") layout.separator() diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 8f85f14306f..1b12f2dd4be 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -102,7 +102,7 @@ int get_render_child_particle_number(struct RenderData *r, int num); int get_render_shadow_samples(struct RenderData *r, int samples); float get_render_aosss_error(struct RenderData *r, float error); -int scene_use_new_shading_system(struct Scene *scene); +int scene_use_new_shading_nodes(struct Scene *scene); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 7dc5a222814..101a10903c8 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -74,6 +74,8 @@ #include "BKE_sound.h" +#include "RE_engine.h" + //XXX #include "BIF_previewrender.h" //XXX #include "BIF_editseq.h" @@ -1137,8 +1139,9 @@ Base *_setlooper_base_step(Scene **sce_iter, Base *base) return NULL; } -int scene_use_new_shading_system(Scene *scene) +int scene_use_new_shading_nodes(Scene *scene) { - return (strcmp(scene->r.engine, "CYCLES") == 0); + RenderEngineType *type= RE_engines_find(scene->r.engine); + return (type->flag & RE_USE_SHADING_NODES); } diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index c0ced572515..9e12aa64065 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -487,7 +487,7 @@ static Image *imapaint_face_image(const ImagePaintState *s, int face_index) { Image *ima; - if(scene_use_new_shading_system(s->scene)) { + if(scene_use_new_shading_nodes(s->scene)) { MFace *mf = s->me->mface+face_index; ED_object_get_active_image(s->ob, mf->mat_nr, &ima, NULL); } @@ -503,7 +503,7 @@ static Image *project_paint_face_image(const ProjPaintState *ps, int face_index) { Image *ima; - if(scene_use_new_shading_system(ps->scene)) { + if(scene_use_new_shading_nodes(ps->scene)) { MFace *mf = ps->dm_mface+face_index; ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL); } diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index f0709e056ec..b02b8fd856c 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -594,7 +594,7 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) EditMesh *em= BKE_mesh_get_editmesh(me); int sloppy= 1; /* partially selected face is ok */ - if(scene_use_new_shading_system(scene)) { + if(scene_use_new_shading_nodes(scene)) { /* new shading system, get image from material */ EditFace *efa= EM_get_actFace(em, sloppy); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 084570d905d..d5d7929faa3 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -232,7 +232,7 @@ static void node_menu_add(const bContext *C, Menu *menu) if(snode->treetype==NTREE_SHADER) { uiItemMenuF(layout, IFACE_(N_("Input")), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); uiItemMenuF(layout, IFACE_(N_("Output")), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - if(scene_use_new_shading_system(scene)) { + if(scene_use_new_shading_nodes(scene)) { uiItemMenuF(layout, IFACE_(N_("Shader")), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_SHADER)); uiItemMenuF(layout, IFACE_(N_("Texture")), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); } diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index b749538b742..6cad8f3487a 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -775,7 +775,7 @@ static int tex_mat_set_face_editmesh_cb(void *UNUSED(userData), int index) void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) { - if(!scene_use_new_shading_system(scene)) { + if(!scene_use_new_shading_nodes(scene)) { draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, faceselect); return; } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 09ddfd7dc2c..5521460ac14 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -107,7 +107,8 @@ /* this condition has been made more complex since editmode can draw textures */ #define CHECK_OB_DRAWTEXTURE(vd, dt) \ - ((ELEM(vd->drawtype, OB_TEXTURE, OB_MATERIAL) && dt>OB_SOLID)) + ((ELEM(vd->drawtype, OB_TEXTURE, OB_MATERIAL) && dt>OB_SOLID) || \ + (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX)) static void draw_bounding_volume(Scene *scene, Object *ob); @@ -131,6 +132,9 @@ static int check_ob_drawface_dot(Scene *sce, View3D *vd, char dt) if(dt==OB_TEXTURE && vd->drawtype==OB_TEXTURE) return 0; + if(vd->drawtype>=OB_SOLID && vd->flag2 & V3D_SOLID_TEX) + return 0; + return 1; } @@ -213,7 +217,7 @@ int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt) return 0; if(ob==OBACT && (ob && ob->mode & OB_MODE_WEIGHT_PAINT)) return 0; - if(scene_use_new_shading_system(scene)) + if(scene_use_new_shading_nodes(scene)) return 0; return (scene->gm.matmode == GAME_MAT_GLSL) && (dt > OB_SOLID); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index e4346101b78..dba594acf71 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2122,6 +2122,7 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) v3d->drawtype = OB_SOLID; v3d->lay &= GPU_lamp_shadow_layer(shadow->lamp); + v3d->flag2 &= ~V3D_SOLID_TEX; v3d->flag2 |= V3D_RENDER_OVERRIDE | V3D_RENDER_SHADOW; GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat); @@ -2152,7 +2153,7 @@ CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d) { CustomDataMask mask= 0; - if(ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL)) { + if(ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { mask |= CD_MASK_MTFACE | CD_MASK_MCOL; if(v3d->drawtype == OB_MATERIAL || scene->gm.matmode == GAME_MAT_GLSL) diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index e80b63b4eea..568445b3112 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -154,7 +154,7 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im return; } - if(scene_use_new_shading_system(scene)) { + if(scene_use_new_shading_nodes(scene)) { /* new shading system, assign image in material */ int sloppy= 1; EditFace *efa= EM_get_actFace(em, sloppy); diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index e090abe39bb..dd033339ca4 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -42,6 +42,7 @@ struct ImBuf; struct RenderResult; struct GPUTexture; + /* ImageUser is in Texture, in Nodes, Background Image, Image Window, .... */ /* should be used in conjunction with an ID * to Image. */ typedef struct ImageUser { diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 3477be4234f..6d1ff8dae59 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -104,7 +104,7 @@ typedef struct bNodeSocket { #define SOCK_FLOAT 0 #define SOCK_VECTOR 1 #define SOCK_RGBA 2 -#define SOCK_SHADER 3 +#define SOCK_SHADER 3 #define SOCK_BOOLEAN 4 #define SOCK_MESH 5 #define SOCK_INT 6 diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 6d4a845c5b0..2b7f54e0497 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -246,7 +246,7 @@ typedef struct View3D { /* View3d->flag2 (short) */ #define V3D_RENDER_OVERRIDE 4 -#define V3D_SOLID_TEX 8 /* deprecated */ +#define V3D_SOLID_TEX 8 #define V3D_DISPGP 16 #define V3D_LOCK_CAMERA 32 #define V3D_RENDER_SHADOW 64 /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */ diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e64c5fd670d..8047b2df226 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1454,7 +1454,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return ((prop->magic != RNA_MAGIC) || prop->update || prop->noteflag); + return (prop->magic != RNA_MAGIC || prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 460d7ce1c45..ef2e97c4427 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -397,11 +397,15 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_REGISTER); prop= RNA_def_property(srna, "bl_use_preview", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_PREVIEW); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_USE_PREVIEW); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); + RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_USE_POSTPROCESS); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_use_shading_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_USE_SHADING_NODES); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index c7a5d2c8f65..42ebdcbc582 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -841,6 +841,12 @@ static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) return (BLI_countlist(&R_engines) > 1); } +static int rna_RenderSettings_use_shading_nodes_get(PointerRNA *ptr) +{ + Scene *scene= (Scene*)ptr->id.data; + return scene_use_new_shading_nodes(scene); +} + static int rna_RenderSettings_use_game_engine_get(PointerRNA *ptr) { RenderData *rd= (RenderData*)ptr->data; @@ -3230,6 +3236,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); + prop= RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_shading_nodes_get", NULL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); + prop= RNA_def_property(srna, "use_game_engine", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_game_engine_get", NULL); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index b4bda045a70..8279bdc4a91 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1373,6 +1373,11 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Relationship Lines", "Show dashed lines indicating parent or constraint relationships"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "show_textured_solid", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SOLID_TEX); + RNA_def_property_ui_text(prop, "Textured Solid", "Display face-assigned textures in solid view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA); RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view"); diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 7f01bc673d2..7d5ba28cfa6 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -48,10 +48,11 @@ struct Scene; /* External Engine */ -#define RE_INTERNAL 1 -#define RE_GAME 2 -#define RE_DO_PREVIEW 4 -#define RE_DO_ALL 8 +#define RE_INTERNAL 1 +#define RE_GAME 2 +#define RE_USE_PREVIEW 4 +#define RE_USE_POSTPROCESS 8 +#define RE_USE_SHADING_NODES 16 extern ListBase R_engines; diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c index 0fc6a0320c8..d67cd3cb88f 100644 --- a/source/blender/render/intern/pipeline/engine.c +++ b/source/blender/render/intern/pipeline/engine.c @@ -268,11 +268,11 @@ int RE_engine_render(Render *re, int do_all) /* verify if we can render */ if(!type->render) return 0; - if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_DO_PREVIEW)) + if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_USE_PREVIEW)) return 0; - if(do_all && !(type->flag & RE_DO_ALL)) + if(do_all && !(type->flag & RE_USE_POSTPROCESS)) return 0; - if(!do_all && (type->flag & RE_DO_ALL)) + if(!do_all && (type->flag & RE_USE_POSTPROCESS)) return 0; /* create render result */ -- cgit v1.2.3 From 7503a7edfba9496521baefd70fe6cbcbfce5127b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 15:42:35 +0000 Subject: Cycles: replace surface/volume sockets in output nodes with a single shader socket, decided it's better to render objects as either surface or volume. This may break the volume rendering patch, but shaders with volume closures still get tagged as having volume closures, so it should be fixable without too many changes. --- intern/cycles/blender/addon/ui.py | 54 +- intern/cycles/blender/blender_shader.cpp | 6 +- intern/cycles/kernel/kernel_shader.h | 6 +- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 3 +- .../kernel/osl/nodes/node_output_closure.osl | 25 + .../kernel/osl/nodes/node_output_surface.osl | 25 - .../cycles/kernel/osl/nodes/node_output_volume.osl | 25 - intern/cycles/kernel/osl/osl_shader.cpp | 8 +- intern/cycles/kernel/svm/svm.h | 3 +- intern/cycles/kernel/svm/svm_types.h | 3 +- intern/cycles/render/nodes.cpp | 9 +- intern/cycles/render/osl.cpp | 62 +- intern/cycles/render/shader.cpp | 7 +- intern/cycles/render/shader.h | 7 +- intern/cycles/render/svm.cpp | 31 +- source/blender/blenloader/intern/readfile.c | 3 + source/blender/gpu/intern/gpu_shader_material.glsl | 4 +- .../blender/gpu/intern/gpu_shader_material.glsl.c | 2852 ++++++++++---------- .../nodes/shader/nodes/node_shader_output_lamp.c | 2 +- .../shader/nodes/node_shader_output_material.c | 3 +- .../nodes/shader/nodes/node_shader_output_world.c | 3 +- 21 files changed, 1518 insertions(+), 1623 deletions(-) create mode 100644 intern/cycles/kernel/osl/nodes/node_output_closure.osl delete mode 100644 intern/cycles/kernel/osl/nodes/node_output_surface.osl delete mode 100644 intern/cycles/kernel/osl/nodes/node_output_volume.osl diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index b8c3753800f..581d7a961bd 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -228,7 +228,7 @@ class CyclesCamera_PT_dof(CyclesButtonsPanel, Panel): sub.prop(ccam, "aperture_rotation", text="Rotation") class Cycles_PT_context_material(CyclesButtonsPanel, Panel): - bl_label = "Surface" + bl_label = "" bl_context = "material" bl_options = {'HIDE_HEADER'} @@ -400,8 +400,8 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): elif lamp.type == 'HEMI': layout.label(text="Not supported, interpreted as sun lamp.") -class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel): - bl_label = "Nodes" +class CyclesLamp_PT_shader(CyclesButtonsPanel, Panel): + bl_label = "Shader" bl_context = "data" @classmethod @@ -412,10 +412,10 @@ class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel): layout = self.layout mat = context.lamp - panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') + panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Shader') -class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel): - bl_label = "Surface" +class CyclesWorld_PT_shader(CyclesButtonsPanel, Panel): + bl_label = "Shader" bl_context = "world" @classmethod @@ -426,39 +426,10 @@ class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel): layout = self.layout mat = context.world - panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') - -class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): - bl_label = "Volume" - bl_context = "world" - - @classmethod - def poll(cls, context): - return context.world and CyclesButtonsPanel.poll(context) - - def draw(self, context): - layout = self.layout - layout.active = False - - world = context.world - panel_node_draw(layout, world, 'OUTPUT_WORLD', 'Volume') - -class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel): - bl_label = "Surface" - bl_context = "material" + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Shader') - @classmethod - def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) - - def draw(self, context): - layout = self.layout - - mat = context.material - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') - -class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): - bl_label = "Volume" +class CyclesMaterial_PT_shader(CyclesButtonsPanel, Panel): + bl_label = "Shader" bl_context = "material" @classmethod @@ -467,14 +438,9 @@ class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): def draw(self, context): layout = self.layout - layout.active = False mat = context.material - cmat = mat.cycles - - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') - - layout.prop(cmat, "homogeneous_volume") + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Shader') class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel): bl_label = "Displacement" diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index c7eda0a0160..ad7dfb14c64 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -584,7 +584,7 @@ void BlenderSync::sync_materials() closure->input("Color")->value = get_float3(b_mat->diffuse_color()); out = graph->output(); - graph->connect(closure->output("BSDF"), out->input("Surface")); + graph->connect(closure->output("BSDF"), out->input("Closure")); } /* settings */ @@ -625,7 +625,7 @@ void BlenderSync::sync_world() closure->input("Color")->value = get_float3(b_world.horizon_color()); out = graph->output(); - graph->connect(closure->output("Background"), out->input("Surface")); + graph->connect(closure->output("Background"), out->input("Closure")); } shader->set_graph(graph); @@ -675,7 +675,7 @@ void BlenderSync::sync_lamps() closure->input("Strength")->value.x = b_lamp->energy()*10.0f; out = graph->output(); - graph->connect(closure->output("Emission"), out->input("Surface")); + graph->connect(closure->output("Emission"), out->input("Closure")); } shader->set_graph(graph); diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index c1bcbb067b5..7ca7f96d73b 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -482,7 +482,7 @@ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, #else #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag); + svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, randb, path_flag); #else bsdf_diffuse_setup(sd, &sd->closure); sd->closure.weight = make_float3(0.8f, 0.8f, 0.8f); @@ -500,7 +500,7 @@ __device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int pa #else #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag); + svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, 0.0f, path_flag); #ifdef __MULTI_CLOSURE__ float3 eval = make_float3(0.0f, 0.0f, 0.0f); @@ -562,7 +562,7 @@ __device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd, #ifdef __OSL__ OSLShader::eval_volume(kg, sd, randb, path_flag); #else - svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag); + svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, randb, path_flag); #endif #endif } diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 7d37bb09d71..a1e420e8ac1 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -32,9 +32,8 @@ set(osl_sources node_musgrave_texture.osl node_blend_weight_texture.osl node_noise_texture.osl + node_output_closure.osl node_output_displacement.osl - node_output_surface.osl - node_output_volume.osl node_sky_texture.osl node_stucci_texture.osl node_texture_coordinate.osl diff --git a/intern/cycles/kernel/osl/nodes/node_output_closure.osl b/intern/cycles/kernel/osl/nodes/node_output_closure.osl new file mode 100644 index 00000000000..075cf35f60b --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_closure.osl @@ -0,0 +1,25 @@ +/* + * 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" + +surface node_output_surface(closure color Closure = background()) +{ + Ci = Closure; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_output_surface.osl b/intern/cycles/kernel/osl/nodes/node_output_surface.osl deleted file mode 100644 index 6efaf91121b..00000000000 --- a/intern/cycles/kernel/osl/nodes/node_output_surface.osl +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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" - -surface node_output_surface(closure color Surface = background()) -{ - Ci = Surface; -} - diff --git a/intern/cycles/kernel/osl/nodes/node_output_volume.osl b/intern/cycles/kernel/osl/nodes/node_output_volume.osl deleted file mode 100644 index 18094242dc7..00000000000 --- a/intern/cycles/kernel/osl/nodes/node_output_volume.osl +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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" - -volume node_output_volume(closure color Volume = background()) -{ - Ci = Volume; -} - diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 18a8e974492..42e63552063 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -218,8 +218,8 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int /* 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); + if(kg->osl.state[shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.state[shader]), *globals); /* flatten closure tree */ sd->num_closure = 0; @@ -355,8 +355,8 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int /* 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); + if(kg->osl.state[shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.state[shader]), *globals); /* retrieve resulting closures */ sd->osl_closure.volume_sample_sum = 0.0f; diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 62e02f1a01a..4e0ed25baea 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -166,8 +166,7 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT switch(node.x) { case NODE_SHADER_JUMP: { - if(type == SHADER_TYPE_SURFACE) offset = node.y; - else if(type == SHADER_TYPE_VOLUME) offset = node.z; + if(type == SHADER_TYPE_CLOSURE) offset = node.y; else if(type == SHADER_TYPE_DISPLACEMENT) offset = node.w; else return; break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index baec3d7ac6e..fb52a923b0c 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -257,8 +257,7 @@ typedef enum NodeBlendWeightType { } NodeBlendWeightType; typedef enum ShaderType { - SHADER_TYPE_SURFACE, - SHADER_TYPE_VOLUME, + SHADER_TYPE_CLOSURE, SHADER_TYPE_DISPLACEMENT } ShaderType; diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 9e7e2a8a81d..1d21e43217a 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1945,8 +1945,7 @@ void BlendWeightNode::compile(OSLCompiler& compiler) OutputNode::OutputNode() : ShaderNode("output") { - add_input("Surface", SHADER_SOCKET_CLOSURE); - add_input("Volume", SHADER_SOCKET_CLOSURE); + add_input("Closure", SHADER_SOCKET_CLOSURE); add_input("Displacement", SHADER_SOCKET_FLOAT); } @@ -1964,10 +1963,8 @@ void OutputNode::compile(SVMCompiler& compiler) void OutputNode::compile(OSLCompiler& compiler) { - if(compiler.output_type() == SHADER_TYPE_SURFACE) - compiler.add(this, "node_output_surface"); - else if(compiler.output_type() == SHADER_TYPE_VOLUME) - compiler.add(this, "node_output_volume"); + if(compiler.output_type() == SHADER_TYPE_CLOSURE) + compiler.add(this, "node_output_closure"); else if(compiler.output_type() == SHADER_TYPE_DISPLACEMENT) compiler.add(this, "node_output_displacement"); } diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index b0173334c76..492529c30a2 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -102,7 +102,7 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene /* setup shader engine */ og->ss = ss; int background_id = scene->shader_manager->get_shader_id(scene->default_background); - og->background_state = og->surface_state[background_id]; + og->background_state = og->state[background_id]; og->use = true; tls_create(OSLGlobals::ThreadData, og->thread_data); @@ -128,8 +128,7 @@ void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) tls_delete(OSLGlobals::ThreadData, og->thread_data); - og->surface_state.clear(); - og->volume_state.clear(); + og->state.clear(); og->displacement_state.clear(); og->background_state.reset(); } @@ -139,7 +138,7 @@ void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) OSLCompiler::OSLCompiler(void *shadingsys_) { shadingsys = shadingsys_; - current_type = SHADER_TYPE_SURFACE; + current_type = SHADER_TYPE_CLOSURE; current_shader = NULL; background = false; } @@ -170,9 +169,7 @@ bool OSLCompiler::node_skip_input(ShaderNode *node, ShaderInput *input) depending on the current shader type */ if(node->name == ustring("output")) { - if(strcmp(input->name, "Surface") == 0 && current_type != SHADER_TYPE_SURFACE) - return true; - if(strcmp(input->name, "Volume") == 0 && current_type != SHADER_TYPE_VOLUME) + if(strcmp(input->name, "Closure") == 0 && current_type != SHADER_TYPE_CLOSURE) return true; if(strcmp(input->name, "Displacement") == 0 && current_type != SHADER_TYPE_DISPLACEMENT) return true; @@ -223,9 +220,7 @@ void OSLCompiler::add(ShaderNode *node, const char *name) * because "volume" and "displacement" don't work yet in OSL. the shaders * work fine, but presumably these values would be used for more strict * checking, so when that is fixed, we should update the code here too. */ - if(current_type == SHADER_TYPE_SURFACE) - ss->Shader("surface", name, id(node).c_str()); - else if(current_type == SHADER_TYPE_VOLUME) + if(current_type == SHADER_TYPE_CLOSURE) ss->Shader("surface", name, id(node).c_str()); else if(current_type == SHADER_TYPE_DISPLACEMENT) ss->Shader("surface", name, id(node).c_str()); @@ -346,6 +341,8 @@ void OSLCompiler::generate_nodes(const set& nodes) current_shader->has_surface_emission = true; if(node->name == ustring("transparent")) current_shader->has_surface_transparent = true; + if(node->name == ustring("volume")) + current_shader->has_volume = true; } else nodes_done = false; @@ -365,15 +362,9 @@ void OSLCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty ShaderNode *output = graph->output(); set dependencies; - if(type == SHADER_TYPE_SURFACE) { + if(type == SHADER_TYPE_CLOSURE) { /* generate surface shader */ - find_dependencies(dependencies, output->input("Surface")); - generate_nodes(dependencies); - output->compile(*this); - } - else if(type == SHADER_TYPE_VOLUME) { - /* generate volume shader */ - find_dependencies(dependencies, output->input("Volume")); + find_dependencies(dependencies, output->input("Closure")); generate_nodes(dependencies); output->compile(*this); } @@ -396,7 +387,7 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) ShaderNode *output = (graph)? graph->output(): NULL; /* copy graph for shader with bump mapping */ - if(output->input("Surface")->link && output->input("Displacement")->link) + if(output->input("Closure")->link && output->input("Displacement")->link) if(!shader->graph_bump) shader->graph_bump = shader->graph->copy(); @@ -407,46 +398,29 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) current_shader = shader; - shader->has_surface = false; shader->has_surface_emission = false; shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; /* generate surface shader */ - if(graph && output->input("Surface")->link) { - compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); - og->surface_state.push_back(ss->state()); + if(graph && output->input("Closure")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_CLOSURE); + og->state.push_back(ss->state()); if(shader->graph_bump) { ss->clear_state(); - compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); - og->surface_state.push_back(ss->state()); + compile_type(shader, shader->graph_bump, SHADER_TYPE_CLOSURE); + og->state.push_back(ss->state()); } else - og->surface_state.push_back(ss->state()); - - ss->clear_state(); - - shader->has_surface = true; - } - else { - og->surface_state.push_back(OSL::ShadingAttribStateRef()); - og->surface_state.push_back(OSL::ShadingAttribStateRef()); - } - - /* generate volume shader */ - if(graph && output->input("Volume")->link) { - compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); - shader->has_volume = true; + og->state.push_back(ss->state()); - og->volume_state.push_back(ss->state()); - og->volume_state.push_back(ss->state()); ss->clear_state(); } else { - og->volume_state.push_back(OSL::ShadingAttribStateRef()); - og->volume_state.push_back(OSL::ShadingAttribStateRef()); + og->state.push_back(OSL::ShadingAttribStateRef()); + og->state.push_back(OSL::ShadingAttribStateRef()); } /* generate displacement shader */ diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index 6e827ec94bb..c0d450db22b 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -42,7 +42,6 @@ Shader::Shader() sample_as_light = true; homogeneous_volume = false; - has_surface = false; has_surface_transparent = false; has_surface_emission = false; has_volume = false; @@ -210,7 +209,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); out = graph->output(); - graph->connect(closure->output("BSDF"), out->input("Surface")); + graph->connect(closure->output("BSDF"), out->input("Closure")); shader = new Shader(); shader->name = "default_surface"; @@ -228,7 +227,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Strength")->value.x = 0.0f; out = graph->output(); - graph->connect(closure->output("Emission"), out->input("Surface")); + graph->connect(closure->output("Emission"), out->input("Closure")); shader = new Shader(); shader->name = "default_light"; @@ -245,7 +244,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); out = graph->output(); - graph->connect(closure->output("Background"), out->input("Surface")); + graph->connect(closure->output("Background"), out->input("Closure")); shader = new Shader(); shader->name = "default_background"; diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h index 45efa123ef6..17ffc75924b 100644 --- a/intern/cycles/render/shader.h +++ b/intern/cycles/render/shader.h @@ -39,8 +39,8 @@ struct float3; /* Shader describing the appearance of a Mesh, Light or Background. * - * While there is only a single shader graph, it has three outputs: surface, - * volume and displacement, that the shader manager will compile and execute + * While there is only a single shader graph, it has two outputs: shader, + * displacement, that the shader manager will compile and execute * separately. */ class Shader { @@ -65,11 +65,10 @@ public: bool need_update_attributes; /* information about shader after compiling */ - bool has_surface; bool has_surface_emission; bool has_surface_transparent; - bool has_volume; bool has_displacement; + bool has_volume; /* requested mesh attributes */ AttributeRequestSet attributes; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index a1687ae5e29..054989bbc28 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -107,7 +107,7 @@ SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_man image_manager = image_manager_; sunsky = NULL; max_stack_use = 0; - current_type = SHADER_TYPE_SURFACE; + current_type = SHADER_TYPE_CLOSURE; current_shader = NULL; background = false; mix_weight_offset = SVM_STACK_INVALID; @@ -467,6 +467,8 @@ void SVMCompiler::generate_closure(ShaderNode *node, set& done) current_shader->has_surface_emission = true; if(node->name == ustring("transparent")) current_shader->has_surface_transparent = true; + if(node->name == ustring("volume")) + current_shader->has_volume = true; /* end node is added outside of this */ } @@ -577,10 +579,8 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty ShaderNode *node = graph->output(); ShaderInput *clin = NULL; - if(type == SHADER_TYPE_SURFACE) - clin = node->input("Surface"); - else if(type == SHADER_TYPE_VOLUME) - clin = node->input("Volume"); + if(type == SHADER_TYPE_CLOSURE) + clin = node->input("Closure"); else if(type == SHADER_TYPE_DISPLACEMENT) clin = node->input("Displacement"); else @@ -599,15 +599,9 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty if(clin->link) { bool generate = false; - if(type == SHADER_TYPE_SURFACE) { + if(type == SHADER_TYPE_CLOSURE) { /* generate surface shader */ generate = true; - shader->has_surface = true; - } - else if(type == SHADER_TYPE_VOLUME) { - /* generate volume shader */ - generate = true; - shader->has_volume = true; } else if(type == SHADER_TYPE_DISPLACEMENT) { /* generate displacement shader */ @@ -636,7 +630,7 @@ void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int in /* copy graph for shader with bump mapping */ ShaderNode *node = shader->graph->output(); - if(node->input("Surface")->link && node->input("Displacement")->link) + if(node->input("Closure")->link && node->input("Displacement")->link) if(!shader->graph_bump) shader->graph_bump = shader->graph->copy(); @@ -647,30 +641,23 @@ void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int in current_shader = shader; - shader->has_surface = false; shader->has_surface_emission = false; shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; /* generate surface shader */ - compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); + compile_type(shader, shader->graph, SHADER_TYPE_CLOSURE); global_svm_nodes[index*2 + 0].y = global_svm_nodes.size(); global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); if(shader->graph_bump) { - compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); + compile_type(shader, shader->graph_bump, SHADER_TYPE_CLOSURE); global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); } - /* generate volume shader */ - compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); - global_svm_nodes[index*2 + 0].z = global_svm_nodes.size(); - global_svm_nodes[index*2 + 1].z = global_svm_nodes.size(); - global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); - /* generate displacement shader */ compile_type(shader, shader->graph, SHADER_TYPE_DISPLACEMENT); global_svm_nodes[index*2 + 0].w = global_svm_nodes.size(); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2d3d21c5c7f..1f62de69412 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2086,6 +2086,9 @@ static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) if(strcmp(sock->name, "Closure2") == 0) strcpy(sock->name, "Shader2"); + if(strcmp(sock->name, "Surface") == 0) + strcpy(sock->name, "Shader"); + if(strcmp(sock->name, "Fresnel") == 0) { strcpy(sock->name, "IOR"); sock->ns.vec[0] = 1.0f/MAX2(1.0f - sock->ns.vec[0], 1e-5f); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 4a9d793aaad..6ca6a862591 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -2114,8 +2114,8 @@ void node_light_path( /* output */ -void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result) +void node_output_material(vec4 shader, float displacement, out vec4 result) { - result = surface; + result = shader; } diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index e284c42532b..4898a3cbdf7 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,1453 +1,1453 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 46289; +int datatoc_gpu_shader_material_glsl_size= 46274; 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,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,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, + 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,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,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,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,100,105,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, 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,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, +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,100,105,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,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, +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,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, + 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,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, +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,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, +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,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, +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,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, +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,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, +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,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,109, 86,105,101,119, - 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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, + 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,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101, +119, 73,110,118, 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, 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,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, + 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,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,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, +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,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, +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, 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, 10, 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,125, 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,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, +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, 10, 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,125, 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, +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,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 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,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, - 40, 48, 46, 48, 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, 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,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,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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, 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, 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, - 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, - 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,100,105,115, -116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101, -110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32, -112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, - 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32, -122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, - 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, - 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, - 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, - 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, - 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, -122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, - 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45, -120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, - 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, - 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, - 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, - 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, - 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, - 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, - 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, - 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, -105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, - 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, - 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, - 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, - 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, - 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, - 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, - 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, - 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, - 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, - 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, - 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98, -117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, - 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, - 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32, -102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, -108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, - 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, - 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, + 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, 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,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, +102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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, 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, 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, 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, + 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,100,105,115,116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, +108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102, +108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101,110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32, +120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, + 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, + 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32, +112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, + 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, + 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, + 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99, +111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40, +110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9,122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, + 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, + 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, + 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, + 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, + 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, + 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, + 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, +120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, + 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, + 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116, +117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, + 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, + 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, + 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9, +125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, + 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, + 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, + 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, + 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32, +102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117, +116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32, +102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, +105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, + 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, + 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32, +102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108, +111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32, +116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, 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,104, 97,100, +101,114, 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,104, 97,100,101,114, 59, 10,125, 10, 10, 0}; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c index 019921737c0..aca2aebeb24 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c @@ -32,7 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_lamp_in[]= { - { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader"}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c index a78d68596fb..3d1c9c9fdf7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -32,8 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_material_in[]= { - { SOCK_SHADER, 1, "Surface"}, - { SOCK_SHADER, 1, "Volume"}, + { SOCK_SHADER, 1, "Shader"}, { SOCK_FLOAT, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c index ee8c1f8addb..5e42200ed28 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -32,8 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_world_in[]= { - { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader"}, { -1, 0, "" } }; -- cgit v1.2.3 From 9ec11147657b1c5e2b33ccaee9495b662aa2a3f8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 15:45:52 +0000 Subject: Cycles: make node with multiple input sockets with the same name work. Previously nodes like Mix had their sockets renamed to Color1/Color2, but doing this breaks compatibility for the internal renderer, so restored it now. --- intern/cycles/blender/blender_shader.cpp | 120 ++++++++++++--------- source/blender/blenloader/intern/readfile.c | 21 +++- .../nodes/shader/nodes/node_shader_add_shader.c | 4 +- .../blender/nodes/shader/nodes/node_shader_math.c | 4 +- .../nodes/shader/nodes/node_shader_mixRgb.c | 4 +- .../nodes/shader/nodes/node_shader_mix_shader.c | 4 +- .../nodes/shader/nodes/node_shader_vectMath.c | 4 +- 7 files changed, 100 insertions(+), 61 deletions(-) diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index ad7dfb14c64..da4513fbb7b 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -50,36 +50,26 @@ void BlenderSync::find_shader(BL::ID id, vector& used_shaders) /* Graph */ -static BL::NodeSocket get_node_input(BL::Node *b_group_node, BL::Node b_node, const string& name) +static BL::NodeSocket get_node_input(BL::Node *b_group_node, BL::NodeSocket b_in) { - BL::Node::inputs_iterator b_in; + if(b_group_node) { - for(b_node.inputs.begin(b_in); b_in != b_node.inputs.end(); ++b_in) { - if(b_in->name() == name) { - if(b_group_node) { + BL::NodeTree b_ntree = BL::NodeGroup(*b_group_node).node_tree(); + BL::NodeTree::links_iterator b_link; - BL::NodeTree b_ntree = BL::NodeGroup(*b_group_node).node_tree(); - BL::NodeTree::links_iterator b_link; + for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); ++b_link) { + if(b_link->to_socket().ptr.data == b_in.ptr.data) { + BL::Node::inputs_iterator b_gin; - for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); ++b_link) { - if(b_link->to_socket().ptr.data == b_in->ptr.data) { - BL::Node::inputs_iterator b_gin; + for(b_group_node->inputs.begin(b_gin); b_gin != b_group_node->inputs.end(); ++b_gin) + if(b_gin->group_socket().ptr.data == b_link->from_socket().ptr.data) + return *b_gin; - for(b_group_node->inputs.begin(b_gin); b_gin != b_group_node->inputs.end(); ++b_gin) - if(b_gin->group_socket().ptr.data == b_link->from_socket().ptr.data) - return *b_gin; - - } - } } - - return *b_in; } } - assert(0); - - return *b_in; + return b_in; } static BL::NodeSocket get_node_output(BL::Node b_node, const string& name) @@ -414,18 +404,52 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * return node; } -static const char *node_socket_map_name(const char *name) +static SocketPair node_socket_map_pair(PtrNodeMap& node_map, BL::Node b_node, BL::NodeSocket b_socket) { - if(strstr(name, "Shader")) { - if(strcmp(name, "Shader") == 0) - return "Closure"; - if(strcmp(name, "Shader1") == 0) - return "Closure1"; - if(strcmp(name, "Shader2") == 0) - return "Closure2"; + BL::Node::inputs_iterator b_input; + BL::Node::outputs_iterator b_output; + string name = b_socket.name(); + bool found = false; + int counter = 0, total = 0; + + /* find in inputs */ + for(b_node.inputs.begin(b_input); b_input != b_node.inputs.end(); ++b_input) { + if(b_input->name() == name) { + if(!found) + counter++; + total++; + } + + if(b_input->ptr.data == b_socket.ptr.data) + found = true; } - return name; + if(!found) { + /* find in outputs */ + found = false; + counter = 0; + total = 0; + + for(b_node.outputs.begin(b_output); b_output != b_node.outputs.end(); ++b_output) { + if(b_output->name() == name) { + if(!found) + counter++; + total++; + } + + if(b_output->ptr.data == b_socket.ptr.data) + found = true; + } + } + + /* rename if needed */ + if(name == "Shader") + name = "Closure"; + + if(total > 1) + name = string_printf("%s%d", name.c_str(), counter); + + return SocketPair(node_map[b_node.ptr.data], name); } static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTree b_ntree, BL::Node *b_group_node, PtrSockMap& sockets_map) @@ -453,8 +477,9 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr node_map[b_node->ptr.data] = node; for(b_node->inputs.begin(b_input); b_input != b_node->inputs.end(); ++b_input) { - ShaderInput *input = node->input(node_socket_map_name(b_input->name().c_str())); - BL::NodeSocket sock(get_node_input(b_group_node, *b_node, b_input->name())); + SocketPair pair = node_socket_map_pair(node_map, *b_node, *b_input); + ShaderInput *input = pair.first->input(pair.second.c_str()); + BL::NodeSocket sock(get_node_input(b_group_node, *b_input)); assert(input); @@ -500,55 +525,50 @@ static void add_nodes(BL::BlendData b_data, ShaderGraph *graph, BL::ShaderNodeTr if(b_group_node) { if(!b_from_node) { sockets_map[b_from_sock.ptr.data] = - SocketPair(node_map[b_to_node.ptr.data], b_to_sock.name()); + node_socket_map_pair(node_map, b_to_node, b_to_sock); continue; } else if(!b_to_node) { sockets_map[b_to_sock.ptr.data] = - SocketPair(node_map[b_from_node.ptr.data], b_from_sock.name()); + node_socket_map_pair(node_map, b_from_node, b_from_sock); continue; } } - ShaderNode *from_node, *to_node; - string from_name, to_name; + SocketPair from_pair, to_pair; /* from sock */ if(b_from_node.is_a(&RNA_NodeGroup)) { /* group node */ BL::NodeSocket group_sock = b_from_sock.group_socket(); - SocketPair& pair = node_groups[b_from_node.ptr.data][group_sock.ptr.data]; - - from_node = pair.first; - from_name = pair.second; + from_pair = node_groups[b_from_node.ptr.data][group_sock.ptr.data]; } else { /* regular node */ - from_node = node_map[b_from_node.ptr.data]; - from_name = b_from_sock.name(); + from_pair = node_socket_map_pair(node_map, b_from_node, b_from_sock); } /* to sock */ if(b_to_node.is_a(&RNA_NodeGroup)) { /* group node */ BL::NodeSocket group_sock = b_to_sock.group_socket(); - SocketPair& pair = node_groups[b_to_node.ptr.data][group_sock.ptr.data]; - - to_node = pair.first; - to_name = pair.second; + to_pair = node_groups[b_to_node.ptr.data][group_sock.ptr.data]; } else { /* regular node */ - to_node = node_map[b_to_node.ptr.data]; - to_name = b_to_sock.name(); + to_pair = node_socket_map_pair(node_map, b_to_node, b_to_sock); } /* in case of groups there may not actually be a node inside the group that the group socket connects to, so from_node or to_node may be NULL */ - if(from_node && to_node) - graph->connect(from_node->output(node_socket_map_name(from_name.c_str())), to_node->input(node_socket_map_name(to_name.c_str()))); + if(from_pair.first && to_pair.first) { + ShaderOutput *output = from_pair.first->output(from_pair.second.c_str()); + ShaderInput *input = to_pair.first->input(to_pair.second.c_str()); + + graph->connect(output, input); + } } } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1f62de69412..77f786d2105 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2082,10 +2082,29 @@ static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) for(sock=node->inputs.first; sock; sock=sock->next) { if(strcmp(sock->name, "Closure1") == 0) strcpy(sock->name, "Shader1"); - if(strcmp(sock->name, "Closure2") == 0) strcpy(sock->name, "Shader2"); + if(strcmp(sock->name, "Color1") == 0) + strcpy(sock->name, "Color"); + if(strcmp(sock->name, "Color2") == 0) + strcpy(sock->name, "Color"); + + if(strcmp(sock->name, "Vector1") == 0) + strcpy(sock->name, "Vector"); + if(strcmp(sock->name, "Vector2") == 0) + strcpy(sock->name, "Vector"); + + if(strcmp(sock->name, "Value1") == 0) + strcpy(sock->name, "Value"); + if(strcmp(sock->name, "Value2") == 0) + strcpy(sock->name, "Value"); + + if(strcmp(sock->name, "Shader1") == 0) + strcpy(sock->name, "Shader"); + if(strcmp(sock->name, "Shader2") == 0) + strcpy(sock->name, "Shader"); + if(strcmp(sock->name, "Surface") == 0) strcpy(sock->name, "Shader"); diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.c b/source/blender/nodes/shader/nodes/node_shader_add_shader.c index cc059d3dc90..9bce5c94343 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.c +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.c @@ -32,8 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_add_shader_in[]= { - { SOCK_SHADER, 1, "Shader1"}, - { SOCK_SHADER, 1, "Shader2"}, + { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Shader"}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index fc9f6bad4bf..592779d6803 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -37,8 +37,8 @@ /* **************** SCALAR MATH ******************** */ static bNodeSocketTemplate sh_node_math_in[]= { - { SOCK_FLOAT, 1, "Value1", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, - { SOCK_FLOAT, 1, "Value2", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, + { SOCK_FLOAT, 1, "Value", 0.5f, 0.5f, 0.5f, 1.0f, -100.0f, 100.0f, PROP_NONE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c index a9e4f2129be..ed5695edd42 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c @@ -37,8 +37,8 @@ /* **************** MIX RGB ******************** */ static bNodeSocketTemplate sh_node_mix_rgb_in[]= { { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR}, - { SOCK_RGBA, 1, "Color1", 0.5f, 0.5f, 0.5f, 1.0f}, - { SOCK_RGBA, 1, "Color2", 0.5f, 0.5f, 0.5f, 1.0f}, + { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f}, + { SOCK_RGBA, 1, "Color", 0.5f, 0.5f, 0.5f, 1.0f}, { -1, 0, "" } }; static bNodeSocketTemplate sh_node_mix_rgb_out[]= { diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c index 637f515583c..49f53633080 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c @@ -33,8 +33,8 @@ static bNodeSocketTemplate sh_node_mix_shader_in[]= { { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_SHADER, 1, "Shader1"}, - { SOCK_SHADER, 1, "Shader2"}, + { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Shader"}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c index e99c8f91b94..ca31d879e3e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vectMath.c +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -38,8 +38,8 @@ /* **************** VECTOR MATH ******************** */ static bNodeSocketTemplate sh_node_vect_math_in[]= { - { SOCK_VECTOR, 1, "Vector1", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, - { SOCK_VECTOR, 1, "Vector2", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, + { SOCK_VECTOR, 1, "Vector", 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, PROP_NONE}, { -1, 0, "" } }; -- cgit v1.2.3 From c3c44f8736b7a3d0e57baabf1f8f212f8cb0b1f4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 15:48:26 +0000 Subject: Cycles: don't use glsl in textured draw mode, to keep things simpler and faster there for now. Also add viewport color setting for materials for solid draw mode. --- intern/cycles/blender/addon/ui.py | 7 +- source/blender/editors/space_view3d/view3d_draw.c | 11 ++- source/blender/gpu/GPU_material.h | 3 +- source/blender/gpu/intern/gpu_draw.c | 31 ++++--- source/blender/gpu/intern/gpu_material.c | 25 ++--- source/blender/nodes/shader/node_shader_tree.c | 6 +- source/blender/nodes/shader/node_shader_util.c | 102 +-------------------- source/blender/nodes/shader/node_shader_util.h | 2 +- source/gameengine/Ketsji/BL_BlenderShader.cpp | 2 +- .../RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 2 +- 10 files changed, 45 insertions(+), 146 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 581d7a961bd..33e0b8bcb50 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -463,8 +463,7 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return False - #return context.material and CyclesButtonsPanel.poll(context) + return context.material and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -472,6 +471,9 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): mat = context.material cmat = mat.cycles + layout.prop(mat, "diffuse_color", text="Viewport Color") + + """ split = layout.split() col = split.column() @@ -479,6 +481,7 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): col = split.column() col.prop(cmat, "homogeneous_volume") + """ class CyclesTexture_PT_context(CyclesButtonsPanel, Panel): bl_label = "" diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index dba594acf71..d2264929149 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2156,8 +2156,15 @@ CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d) if(ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { mask |= CD_MASK_MTFACE | CD_MASK_MCOL; - if(v3d->drawtype == OB_MATERIAL || scene->gm.matmode == GAME_MAT_GLSL) - mask |= CD_MASK_ORCO; + if(scene_use_new_shading_nodes(scene)) { + /* todo: use orco in textured draw mode */ + if(v3d->drawtype == OB_MATERIAL) + mask |= CD_MASK_ORCO; + } + else { + if(scene->gm.matmode == GAME_MAT_GLSL) + mask |= CD_MASK_ORCO; + } } return mask; diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h index 6d34b5f5fab..29ad9c91374 100644 --- a/source/blender/gpu/GPU_material.h +++ b/source/blender/gpu/GPU_material.h @@ -121,13 +121,12 @@ int GPU_link(GPUMaterial *mat, const char *name, ...); int GPU_stack_link(GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNodeStack *out, ...); void GPU_material_output_link(GPUMaterial *material, GPUNodeLink *link); -int GPU_material_drawtype(GPUMaterial *material); void GPU_material_enable_alpha(GPUMaterial *material); GPUBlendMode GPU_material_alpha_blend(GPUMaterial *material, float obcol[4]); /* High level functions to create and use GPU materials */ -GPUMaterial *GPU_material_from_blender(struct Scene *scene, struct Material *ma, int drawtype); +GPUMaterial *GPU_material_from_blender(struct Scene *scene, struct Material *ma); void GPU_material_free(struct Material *ma); void GPU_materials_free(void); diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index b06af5bc193..d47d92f236c 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -64,7 +64,7 @@ #include "BKE_material.h" #include "BKE_node.h" #include "BKE_object.h" - +#include "BKE_scene.h" #include "BLI_threads.h" #include "BLI_blenlib.h" @@ -941,7 +941,6 @@ static struct GPUMaterialState { Material *gboundmat; Object *gob; Scene *gscene; - int gdrawtype; int glay; float (*gviewmat)[4]; float (*gviewinv)[4]; @@ -955,15 +954,17 @@ static struct GPUMaterialState { } GMS = {NULL}; /* fixed function material, alpha handed by caller */ -static void gpu_material_to_fixed(GPUMaterialFixed *smat, const Material *bmat, const int gamma, const Object *ob) +static void gpu_material_to_fixed(GPUMaterialFixed *smat, const Material *bmat, const int gamma, const Object *ob, const int new_shading_nodes) { - if (bmat->mode & MA_SHLESS) { + if(new_shading_nodes || bmat->mode & MA_SHLESS) { copy_v3_v3(smat->diff, &bmat->r); smat->diff[3]= 1.0; - if(gamma) { + if(gamma) linearrgb_to_srgb_v3_v3(smat->diff, smat->diff); - } + + zero_v4(smat->spec); + smat->hard= 0; } else { mul_v3_v3fl(smat->diff, &bmat->r, bmat->ref + bmat->emit); @@ -1004,6 +1005,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GPUBlendMode alphablend; int a; int gamma = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT; + int new_shading_nodes = scene_use_new_shading_nodes(scene); /* initialize state */ memset(&GMS, 0, sizeof(GMS)); @@ -1013,7 +1015,6 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GMS.gob = ob; GMS.gscene = scene; - GMS.gdrawtype = v3d->drawtype; GMS.totmat= ob->totcol+1; /* materials start from 1, default material is 0 */ GMS.glay= v3d->lay; GMS.gviewmat= rv3d->viewmat; @@ -1036,14 +1037,14 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O /* no materials assigned? */ if(ob->totcol==0) { - gpu_material_to_fixed(&GMS.matbuf[0], &defmaterial, 0, ob); + gpu_material_to_fixed(&GMS.matbuf[0], &defmaterial, 0, ob, new_shading_nodes); /* do material 1 too, for displists! */ memcpy(&GMS.matbuf[1], &GMS.matbuf[0], sizeof(GPUMaterialFixed)); if(glsl) { GMS.gmatbuf[0]= &defmaterial; - GPU_material_from_blender(GMS.gscene, &defmaterial, GMS.gdrawtype); + GPU_material_from_blender(GMS.gscene, &defmaterial); } GMS.alphablend[0]= GPU_BLEND_SOLID; @@ -1053,11 +1054,11 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O for(a=1; a<=ob->totcol; a++) { /* find a suitable material */ ma= give_current_material(ob, a); - if(!glsl) ma= gpu_active_node_material(ma); + if(!glsl && !new_shading_nodes) ma= gpu_active_node_material(ma); if(ma==NULL) ma= &defmaterial; /* create glsl material if requested */ - gpumat = (glsl)? GPU_material_from_blender(GMS.gscene, ma, GMS.gdrawtype): NULL; + gpumat = (glsl)? GPU_material_from_blender(GMS.gscene, ma): NULL; if(gpumat) { /* do glsl only if creating it succeed, else fallback */ @@ -1066,7 +1067,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O } else { /* fixed function opengl materials */ - gpu_material_to_fixed(&GMS.matbuf[a], ma, gamma, ob); + gpu_material_to_fixed(&GMS.matbuf[a], ma, gamma, ob, new_shading_nodes); alphablend = (ma->alpha == 1.0f)? GPU_BLEND_SOLID: GPU_BLEND_ALPHA; if(do_alpha_pass && GMS.alphapass) @@ -1127,7 +1128,7 @@ int GPU_enable_material(int nr, void *attribs) /* unbind glsl material */ if(GMS.gboundmat) { if(GMS.alphapass) glDepthMask(0); - GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat, GMS.gdrawtype)); + GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat)); GMS.gboundmat= NULL; } @@ -1145,7 +1146,7 @@ int GPU_enable_material(int nr, void *attribs) /* bind glsl material and get attributes */ Material *mat = GMS.gmatbuf[nr]; - gpumat = GPU_material_from_blender(GMS.gscene, mat, GMS.gdrawtype); + gpumat = GPU_material_from_blender(GMS.gscene, mat); GPU_material_vertex_attributes(gpumat, gattribs); GPU_material_bind(gpumat, GMS.gob->lay, GMS.glay, 1.0, !(GMS.gob->mode & OB_MODE_TEXTURE_PAINT)); GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, GMS.gviewmat, GMS.gviewinv, GMS.gob->col); @@ -1193,7 +1194,7 @@ void GPU_disable_material(void) if(GMS.gboundmat) { if(GMS.alphapass) glDepthMask(0); - GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat, GMS.gdrawtype)); + GPU_material_unbind(GPU_material_from_blender(GMS.gscene, GMS.gboundmat)); GMS.gboundmat= NULL; } diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 05525d6a491..def73b738eb 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -80,7 +80,6 @@ typedef enum DynMatProperty { struct GPUMaterial { Scene *scene; Material *ma; - int drawtype; /* for creating the material */ ListBase nodes; @@ -354,11 +353,6 @@ void GPU_material_output_link(GPUMaterial *material, GPUNodeLink *link) material->outlink= link; } -int GPU_material_drawtype(GPUMaterial *material) -{ - return material->drawtype; -} - void GPU_material_enable_alpha(GPUMaterial *material) { material->alpha= 1; @@ -1413,27 +1407,19 @@ static GPUNodeLink *GPU_blender_material(GPUMaterial *mat, Material *ma) return shr.combined; } -GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma, int drawtype) +GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma) { GPUMaterial *mat; GPUNodeLink *outlink; LinkData *link; - /* find an existing glsl shader that is already compiled */ - for(link=ma->gpumaterial.first; link; link=link->next) { - mat= (GPUMaterial*)link->data; - if(mat->scene == scene && mat->drawtype == drawtype) + for(link=ma->gpumaterial.first; link; link=link->next) + if(((GPUMaterial*)link->data)->scene == scene) return link->data; - } - - /* in texture draw mode, we need an active texture node */ - if(drawtype == OB_TEXTURE && (!ma->use_nodes || !nodeGetActiveTexture(ma->nodetree))) - return NULL; /* allocate material */ mat = GPU_material_construct_begin(ma); mat->scene = scene; - mat->drawtype = drawtype; if(!(scene->gm.flag & GAME_GLSL_NO_NODES) && ma->nodetree && ma->use_nodes) { /* create nodes */ @@ -1443,12 +1429,15 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma, int drawtype) /* create material */ outlink = GPU_blender_material(mat, ma); GPU_material_output_link(mat, outlink); + } + if(!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); } + GPU_material_construct_end(mat); /* note that even if building the shader fails in some way, we still keep @@ -1730,7 +1719,7 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma) if(!GPU_glsl_support()) return NULL; - mat = GPU_material_from_blender(scene, ma, OB_TEXTURE); + mat = GPU_material_from_blender(scene, ma); pass = (mat)? mat->pass: NULL; if(pass && pass->fragmentcode && pass->vertexcode) { diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index aec0087c85c..6fc2cc4bee9 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -123,14 +123,10 @@ bNodeTreeType ntreeType_Shader = { void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat) { bNodeTreeExec *exec; - bNode *tex_node = NULL; - - if(GPU_material_drawtype(mat) == OB_TEXTURE) - tex_node= nodeGetActiveTexture(ntree); exec = ntreeShaderBeginExecTree(ntree, 1); - ntreeExecGPUNodes(exec, tex_node, mat, 1); + ntreeExecGPUNodes(exec, mat, 1); ntreeShaderEndExecTree(exec, 1); } diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index 683391f5e77..58b54ac97fe 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -267,29 +267,7 @@ bNode *nodeGetActiveTexture(bNodeTree *ntree) return NULL; } -static void ntreeGPUOutputLink(GPUMaterial *mat, bNode *node, bNodeStack *nsout[MAX_SOCKET]) -{ - bNodeSocket *sock; - int i; - - /* link the first socket output as the material output, for viewing - individual textures in texture draw mode */ - for(sock=node->outputs.first, i=0; sock; sock=sock->next, i++) { - if(nsout[i]->data) { - GPUNodeLink *result= nsout[i]->data; - - /* for shader sockets, we can output the color directly, for others we - apply diffuse shading so we don't have flat colors */ - if(sock->type != SOCK_SHADER) - GPU_link(mat, "node_bsdf_diffuse", result, GPU_builtin(GPU_VIEW_NORMAL), &result); - - GPU_material_output_link(mat, result); - break; - } - } -} - -void ntreeExecGPUNodes(bNodeTreeExec *exec, bNode *tex_node, GPUMaterial *mat, int do_outputs) +void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs) { bNodeExec *nodeexec; bNode *node; @@ -319,90 +297,16 @@ void ntreeExecGPUNodes(bNodeTreeExec *exec, bNode *tex_node, GPUMaterial *mat, i node_get_stack(node, stack, nsin, nsout); gpu_stack_from_data_list(gpuin, &node->inputs, nsin); gpu_stack_from_data_list(gpuout, &node->outputs, nsout); - - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) { + if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) data_from_gpu_stack_list(&node->outputs, nsout, gpuout); - - /* for textured draw, output active node */ - if(node == tex_node) - ntreeGPUOutputLink(mat, node, nsout); - } } else if(node->typeinfo->gpuextfunc) { node_get_stack(node, stack, nsin, nsout); gpu_stack_from_data_list(gpuin, &node->inputs, nsin); gpu_stack_from_data_list(gpuout, &node->outputs, nsout); - if(node->typeinfo->gpuextfunc(mat, node, nodeexec->data, gpuin, gpuout)) { + if(node->typeinfo->gpuextfunc(mat, node, nodeexec->data, gpuin, gpuout)) data_from_gpu_stack_list(&node->outputs, nsout, gpuout); - - /* for textured draw, output active node */ - if(node == tex_node) - ntreeGPUOutputLink(mat, node, nsout); - } - } } } - -#if 0 - if((ntree->init & NTREE_EXEC_INIT)==0) - ntreeBeginExecTree(ntree); - - stack= ntree->stack; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->gpufunc) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_from_node_stack(&node->inputs, nsin, gpuin); - gpu_from_node_stack(&node->outputs, nsout, gpuout); - - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) { - data_from_gpu_stack(&node->outputs, nsout, gpuout); - - /* for textured draw, output active node */ - if(node == tex_node) - ntreeGPUOutputLink(mat, node, nsout); - } - } - else if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_node_group_execute(stack, mat, node, nsin); - } - - bNode *node, *tex_node; - bNodeStack *stack; - bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */ - bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */ - GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1]; - - if(GPU_material_drawtype(mat) == OB_TEXTURE) - tex_node= nodeGetActiveTexture(ntree); - else - tex_node= NULL; - - if((ntree->init & NTREE_EXEC_INIT)==0) - ntreeBeginExecTree(ntree); - - stack= ntree->stack; - - for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->gpufunc) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_from_node_stack(&node->inputs, nsin, gpuin); - gpu_from_node_stack(&node->outputs, nsout, gpuout); - - if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout)) { - data_from_gpu_stack(&node->outputs, nsout, gpuout); - - /* for textured draw, output active node */ - if(node == tex_node) - ntreeGPUOutputLink(mat, node, nsout); - } - } - else if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, stack, nsin, nsout, NULL); - gpu_node_group_execute(stack, mat, node, nsin); - } -#endif } - diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h index b8efbf29cf5..2b3cae24a93 100644 --- a/source/blender/nodes/shader/node_shader_util.h +++ b/source/blender/nodes/shader/node_shader_util.h @@ -131,6 +131,6 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns); void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, struct bNodeStack *ns); void node_data_from_gpu_stack(struct bNodeStack *ns, struct GPUNodeStack *gs); -void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct bNode *tex_node, struct GPUMaterial *mat, int do_outputs); +void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct GPUMaterial *mat, int do_outputs); #endif diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index c63244dcae2..ffc301fb715 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -41,7 +41,7 @@ BL_BlenderShader::~BL_BlenderShader() void BL_BlenderShader::ReloadMaterial() { - mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat, OB_RENDER) : NULL; + mGPUMat = (mMat) ? GPU_material_from_blender(mBlenderScene, mMat) : NULL; } void BL_BlenderShader::SetProg(bool enable, double time) diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index 24c5b22e20f..a63c4ff9f13 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -887,7 +887,7 @@ void RAS_OpenGLRasterizer::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi) Material* blmat = current_polymat->GetBlenderMaterial(); Scene* blscene = current_polymat->GetBlenderScene(); if (!wireframe && blscene && blmat) - GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat, OB_RENDER), ¤t_gpu_attribs); + GPU_material_vertex_attributes(GPU_material_from_blender(blscene, blmat), ¤t_gpu_attribs); else memset(¤t_gpu_attribs, 0, sizeof(current_gpu_attribs)); // DM draw can mess up blending mode, restore at the end -- cgit v1.2.3 From aff03aa7780e4a7d0dafd06f6e1ed3b3cdb90b5b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 15:54:53 +0000 Subject: Cycles: tag shading nodes as being compatible with the old/new shading system, so they only appear in the list when needed. Old shading nodes were previously disabled entirely, breaking internal renderer compatibility. --- source/blender/blenkernel/BKE_node.h | 7 ++- source/blender/blenkernel/intern/node.c | 53 ++++++++++++++-------- source/blender/editors/space_node/node_header.c | 10 +++- source/blender/nodes/NOD_shader.h | 21 +++++++-- source/blender/nodes/intern/node_common.c | 1 + .../nodes/shader/nodes/node_shader_add_shader.c | 1 + .../nodes/shader/nodes/node_shader_attribute.c | 1 + .../nodes/shader/nodes/node_shader_background.c | 1 + .../nodes/shader/nodes/node_shader_blend_weight.c | 1 + .../shader/nodes/node_shader_bsdf_anisotropic.c | 1 + .../nodes/shader/nodes/node_shader_bsdf_diffuse.c | 1 + .../nodes/shader/nodes/node_shader_bsdf_glass.c | 1 + .../nodes/shader/nodes/node_shader_bsdf_glossy.c | 1 + .../shader/nodes/node_shader_bsdf_translucent.c | 1 + .../shader/nodes/node_shader_bsdf_transparent.c | 1 + .../nodes/shader/nodes/node_shader_bsdf_velvet.c | 1 + .../nodes/shader/nodes/node_shader_camera.c | 1 + .../nodes/shader/nodes/node_shader_common.c | 5 +- .../nodes/shader/nodes/node_shader_curves.c | 2 + .../nodes/shader/nodes/node_shader_dynamic.c | 2 + .../nodes/shader/nodes/node_shader_emission.c | 1 + .../nodes/shader/nodes/node_shader_fresnel.c | 1 + .../blender/nodes/shader/nodes/node_shader_geom.c | 1 + .../nodes/shader/nodes/node_shader_geometry.c | 1 + .../nodes/shader/nodes/node_shader_holdout.c | 1 + .../nodes/shader/nodes/node_shader_hueSatVal.c | 1 + .../nodes/shader/nodes/node_shader_invert.c | 1 + .../nodes/shader/nodes/node_shader_light_path.c | 1 + .../nodes/shader/nodes/node_shader_mapping.c | 1 + .../nodes/shader/nodes/node_shader_material.c | 2 + .../blender/nodes/shader/nodes/node_shader_math.c | 1 + .../nodes/shader/nodes/node_shader_mixRgb.c | 1 + .../nodes/shader/nodes/node_shader_mix_shader.c | 1 + .../nodes/shader/nodes/node_shader_normal.c | 1 + .../nodes/shader/nodes/node_shader_output.c | 1 + .../nodes/shader/nodes/node_shader_output_lamp.c | 1 + .../shader/nodes/node_shader_output_material.c | 1 + .../shader/nodes/node_shader_output_texture.c | 1 + .../nodes/shader/nodes/node_shader_output_world.c | 1 + .../blender/nodes/shader/nodes/node_shader_rgb.c | 1 + .../nodes/shader/nodes/node_shader_sepcombRGB.c | 2 + .../nodes/shader/nodes/node_shader_squeeze.c | 1 + .../nodes/shader/nodes/node_shader_tex_blend.c | 1 + .../nodes/shader/nodes/node_shader_tex_clouds.c | 1 + .../nodes/shader/nodes/node_shader_tex_coord.c | 1 + .../nodes/shader/nodes/node_shader_tex_distnoise.c | 1 + .../shader/nodes/node_shader_tex_environment.c | 1 + .../nodes/shader/nodes/node_shader_tex_image.c | 1 + .../nodes/shader/nodes/node_shader_tex_magic.c | 1 + .../nodes/shader/nodes/node_shader_tex_marble.c | 1 + .../nodes/shader/nodes/node_shader_tex_musgrave.c | 1 + .../nodes/shader/nodes/node_shader_tex_noise.c | 1 + .../nodes/shader/nodes/node_shader_tex_sky.c | 1 + .../nodes/shader/nodes/node_shader_tex_stucci.c | 1 + .../nodes/shader/nodes/node_shader_tex_voronoi.c | 1 + .../nodes/shader/nodes/node_shader_tex_wood.c | 1 + .../nodes/shader/nodes/node_shader_texture.c | 1 + .../nodes/shader/nodes/node_shader_valToRgb.c | 2 + .../blender/nodes/shader/nodes/node_shader_value.c | 1 + .../nodes/shader/nodes/node_shader_vectMath.c | 1 + .../shader/nodes/node_shader_volume_isotropic.c | 3 +- .../shader/nodes/node_shader_volume_transparent.c | 3 +- 62 files changed, 134 insertions(+), 28 deletions(-) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 92968f23396..b25bfd4975d 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -133,7 +133,7 @@ typedef struct bNodeType { char name[32]; float width, minwidth, maxwidth; float height, minheight, maxheight; - short nclass, flag; + short nclass, flag, compatibility; /* templates for static sockets */ bNodeSocketTemplate *inputs, *outputs; @@ -236,6 +236,10 @@ typedef struct bNodeType { #define NODE_CLASS_SHADER 40 #define NODE_CLASS_LAYOUT 100 +/* nodetype->compatibility */ +#define NODE_OLD_SHADING 1 +#define NODE_NEW_SHADING 2 + /* enum values for input/output */ #define SOCK_IN 1 #define SOCK_OUT 2 @@ -394,6 +398,7 @@ void node_type_exec_new(struct bNodeType *ntype, void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **)); 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 *nodedata, struct GPUNodeStack *in, struct GPUNodeStack *out)); +void node_type_compatibility(struct bNodeType *ntype, short compatibility); /* ************** COMMON NODES *************** */ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index d7744852c25..307a30127f8 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1752,6 +1752,10 @@ void node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMate ntype->gpuextfunc = gpuextfunc; } +void node_type_compatibility(struct bNodeType *ntype, short compatibility) +{ + ntype->compatibility = compatibility; +} static bNodeType *is_nodetype_registered(ListBase *typelist, int type) { @@ -1856,20 +1860,33 @@ static void registerShaderNodes(ListBase *ntypelist) { register_node_type_frame(ntypelist); + register_node_type_sh_group(ntypelist); + //register_node_type_sh_forloop(ntypelist); + //register_node_type_sh_whileloop(ntypelist); + + register_node_type_sh_output(ntypelist); + register_node_type_sh_material(ntypelist); + register_node_type_sh_camera(ntypelist); register_node_type_sh_value(ntypelist); register_node_type_sh_rgb(ntypelist); - register_node_type_sh_math(ntypelist); - register_node_type_sh_vect_math(ntypelist); - - register_node_type_sh_group(ntypelist); -// register_node_type_sh_forloop(ntypelist); -// register_node_type_sh_whileloop(ntypelist); - - //register_node_type_sh_output(ntypelist); register_node_type_sh_mix_rgb(ntypelist); + register_node_type_sh_valtorgb(ntypelist); register_node_type_sh_rgbtobw(ntypelist); + register_node_type_sh_texture(ntypelist); + register_node_type_sh_normal(ntypelist); + register_node_type_sh_geom(ntypelist); register_node_type_sh_mapping(ntypelist); - //register_node_type_sh_texture(ntypelist); + register_node_type_sh_curve_vec(ntypelist); + register_node_type_sh_curve_rgb(ntypelist); + register_node_type_sh_math(ntypelist); + register_node_type_sh_vect_math(ntypelist); + register_node_type_sh_squeeze(ntypelist); + //register_node_type_sh_dynamic(ntypelist); + register_node_type_sh_material_ext(ntypelist); + register_node_type_sh_invert(ntypelist); + register_node_type_sh_seprgb(ntypelist); + register_node_type_sh_combrgb(ntypelist); + register_node_type_sh_hue_sat(ntypelist); register_node_type_sh_attribute(ntypelist); register_node_type_sh_geometry(ntypelist); @@ -1880,15 +1897,16 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_background(ntypelist); register_node_type_sh_bsdf_diffuse(ntypelist); - register_node_type_sh_bsdf_glass(ntypelist); register_node_type_sh_bsdf_glossy(ntypelist); + register_node_type_sh_bsdf_glass(ntypelist); + //register_node_type_sh_bsdf_anisotropic(ntypelist); register_node_type_sh_bsdf_translucent(ntypelist); register_node_type_sh_bsdf_transparent(ntypelist); register_node_type_sh_bsdf_velvet(ntypelist); register_node_type_sh_emission(ntypelist); + register_node_type_sh_holdout(ntypelist); register_node_type_sh_volume_transparent(ntypelist); register_node_type_sh_volume_isotropic(ntypelist); - register_node_type_sh_holdout(ntypelist); register_node_type_sh_mix_shader(ntypelist); register_node_type_sh_add_shader(ntypelist); @@ -1897,19 +1915,16 @@ static void registerShaderNodes(ListBase *ntypelist) //register_node_type_sh_output_texture(ntypelist); register_node_type_sh_output_world(ntypelist); - register_node_type_sh_tex_blend(ntypelist); - register_node_type_sh_tex_clouds(ntypelist); - register_node_type_sh_tex_distnoise(ntypelist); register_node_type_sh_tex_image(ntypelist); register_node_type_sh_tex_environment(ntypelist); - register_node_type_sh_tex_magic(ntypelist); - register_node_type_sh_tex_marble(ntypelist); - register_node_type_sh_tex_musgrave(ntypelist); - register_node_type_sh_tex_noise(ntypelist); register_node_type_sh_tex_sky(ntypelist); - register_node_type_sh_tex_stucci(ntypelist); register_node_type_sh_tex_voronoi(ntypelist); + register_node_type_sh_tex_blend(ntypelist); + register_node_type_sh_tex_magic(ntypelist); + register_node_type_sh_tex_marble(ntypelist); + register_node_type_sh_tex_clouds(ntypelist); register_node_type_sh_tex_wood(ntypelist); + register_node_type_sh_tex_musgrave(ntypelist); } static void registerTextureNodes(ListBase *ntypelist) diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index d5d7929faa3..56a16793ece 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -171,10 +171,11 @@ 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); bNodeTree *ntree; int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass); - int event; + int event, compatibility; ntree = snode->nodetree; @@ -182,6 +183,11 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) uiItemS(layout); return; } + + if(scene_use_new_shading_nodes(scene)) + compatibility= NODE_NEW_SHADING; + else + compatibility= NODE_OLD_SHADING; if (nodeclass==NODE_CLASS_GROUP) { bNodeTree *ngroup; @@ -213,7 +219,7 @@ 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(ntype->nclass==nodeclass && ntype->name && (ntype->compatibility&compatibility)) uiItemV(layout, ntype->name, 0, ntype->type); } } diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index d504b6d757b..f013a76bf03 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -49,14 +49,29 @@ void register_node_type_sh_group(ListBase *lb); void register_node_type_sh_forloop(ListBase *lb); void register_node_type_sh_whileloop(ListBase *lb); +void register_node_type_sh_output(ListBase *lb); +void register_node_type_sh_material(ListBase *lb); +void register_node_type_sh_camera(ListBase *lb); void register_node_type_sh_value(ListBase *lb); void register_node_type_sh_rgb(ListBase *lb); -void register_node_type_sh_math(ListBase *lb); -void register_node_type_sh_vect_math(ListBase *lb); void register_node_type_sh_mix_rgb(ListBase *lb); +void register_node_type_sh_valtorgb(ListBase *lb); void register_node_type_sh_rgbtobw(ListBase *lb); -void register_node_type_sh_mapping(ListBase *lb); void register_node_type_sh_texture(ListBase *lb); +void register_node_type_sh_normal(ListBase *lb); +void register_node_type_sh_geom(ListBase *lb); +void register_node_type_sh_mapping(ListBase *lb); +void register_node_type_sh_curve_vec(ListBase *lb); +void register_node_type_sh_curve_rgb(ListBase *lb); +void register_node_type_sh_math(ListBase *lb); +void register_node_type_sh_vect_math(ListBase *lb); +void register_node_type_sh_squeeze(ListBase *lb); +void register_node_type_sh_dynamic(ListBase *lb); +void register_node_type_sh_material_ext(ListBase *lb); +void register_node_type_sh_invert(ListBase *lb); +void register_node_type_sh_seprgb(ListBase *lb); +void register_node_type_sh_combrgb(ListBase *lb); +void register_node_type_sh_hue_sat(ListBase *lb); void register_node_type_sh_attribute(ListBase *lb); void register_node_type_sh_geometry(ListBase *lb); diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c index fa5a3c727c2..b4f2bf31515 100644 --- a/source/blender/nodes/intern/node_common.c +++ b/source/blender/nodes/intern/node_common.c @@ -977,6 +977,7 @@ void register_node_type_frame(ListBase *lb) node_type_base(ntype, NODE_FRAME, "Frame", NODE_CLASS_LAYOUT, NODE_BACKGROUND); node_type_size(ntype, 150, 100, 0); + node_type_compatibility(ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); ntype->needs_free = 1; nodeRegisterType(lb, ntype); diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.c b/source/blender/nodes/shader/nodes/node_shader_add_shader.c index 9bce5c94343..1cee889d601 100644 --- a/source/blender/nodes/shader/nodes/node_shader_add_shader.c +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.c @@ -57,6 +57,7 @@ void register_node_type_sh_add_shader(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.c index 569a75ee79c..131cfc3d285 100644 --- a/source/blender/nodes/shader/nodes/node_shader_attribute.c +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c @@ -47,6 +47,7 @@ void register_node_type_sh_attribute(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_background.c b/source/blender/nodes/shader/nodes/node_shader_background.c index fab2310f4f6..55f77e66af9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_background.c +++ b/source/blender/nodes/shader/nodes/node_shader_background.c @@ -53,6 +53,7 @@ void register_node_type_sh_background(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_blend_weight.c b/source/blender/nodes/shader/nodes/node_shader_blend_weight.c index 1affc276c18..f214f765abf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_blend_weight.c +++ b/source/blender/nodes/shader/nodes/node_shader_blend_weight.c @@ -56,6 +56,7 @@ void register_node_type_sh_blend_weight(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BLEND_WEIGHT, "Blend Weight", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_blend_weight_in, sh_node_blend_weight_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c index 8ee6be6e624..ef590dd7361 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c @@ -58,6 +58,7 @@ void register_node_type_sh_bsdf_anisotropic(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c index 33f9ab8f469..47f53ae4aa1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c @@ -56,6 +56,7 @@ void register_node_type_sh_bsdf_diffuse(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c index c7a3de44fb2..b8237e0e276 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c @@ -58,6 +58,7 @@ void register_node_type_sh_bsdf_glass(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c index 879ef0d8ae8..c8f9acfa206 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c @@ -58,6 +58,7 @@ void register_node_type_sh_bsdf_glossy(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c index 6f02f281cff..4ea41b379a1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c @@ -56,6 +56,7 @@ void register_node_type_sh_bsdf_translucent(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c index 49e131b289e..fceb54a3369 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c @@ -56,6 +56,7 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c index 49c783d046e..cc7eb626655 100644 --- a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c @@ -57,6 +57,7 @@ void register_node_type_sh_bsdf_velvet(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_camera.c b/source/blender/nodes/shader/nodes/node_shader_camera.c index c1e737fcb53..2e13cad65b6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_camera.c +++ b/source/blender/nodes/shader/nodes/node_shader_camera.c @@ -64,6 +64,7 @@ void register_node_type_sh_camera(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_CAMERA, "Camera Data", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_camera_out); node_type_size(&ntype, 95, 95, 120); node_type_storage(&ntype, "node_camera", NULL, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_common.c b/source/blender/nodes/shader/nodes/node_shader_common.c index ef40e3ce4d2..548ed91337b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_common.c +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -176,7 +176,7 @@ static int gpu_group_execute(GPUMaterial *mat, bNode *node, void *nodedata, GPUN bNodeTreeExec *exec= (bNodeTreeExec*)nodedata; group_gpu_copy_inputs(node, in, exec->stack); - ntreeExecGPUNodes(exec, NULL, mat, (node->flag & NODE_GROUP_EDIT)); + ntreeExecGPUNodes(exec, mat, (node->flag & NODE_GROUP_EDIT)); group_gpu_move_outputs(node, out, exec->stack); return 1; @@ -187,6 +187,7 @@ void register_node_type_sh_group(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT); + node_type_compatibility(&ntype, NODE_NEW_SHADING|NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); @@ -249,6 +250,7 @@ void register_node_type_sh_forloop(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_FORLOOP, "For", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); @@ -311,6 +313,7 @@ void register_node_type_sh_whileloop(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_WHILELOOP, "While", NODE_CLASS_GROUP, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.c b/source/blender/nodes/shader/nodes/node_shader_curves.c index 9dedeba6d39..3af065aa65e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_curves.c +++ b/source/blender/nodes/shader/nodes/node_shader_curves.c @@ -76,6 +76,7 @@ void register_node_type_sh_curve_vec(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_CURVE_VEC, "Vector Curves", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_curve_vec_in, sh_node_curve_vec_out); node_type_size(&ntype, 200, 140, 320); node_type_init(&ntype, node_shader_init_curve_vec); @@ -130,6 +131,7 @@ void register_node_type_sh_curve_rgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_CURVE_RGB, "RGB Curves", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_curve_rgb_in, sh_node_curve_rgb_out); node_type_size(&ntype, 200, 140, 320); node_type_init(&ntype, node_shader_init_curve_rgb); diff --git a/source/blender/nodes/shader/nodes/node_shader_dynamic.c b/source/blender/nodes/shader/nodes/node_shader_dynamic.c index 5aae54d858b..c9ba47f07a3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_dynamic.c +++ b/source/blender/nodes/shader/nodes/node_shader_dynamic.c @@ -768,6 +768,7 @@ void register_node_type_sh_dynamic(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, NODE_OPTIONS, NULL, NULL); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_size(&ntype, 150, 60, 300); node_type_init(&ntype, node_dynamic_init_cb); node_type_storage(&ntype, "NodeScriptDict", node_dynamic_free_storage_cb, node_dynamic_copy_cb); @@ -783,6 +784,7 @@ void register_node_type_sh_dynamic(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, 0); + node_type_compatibility(&ntype, NODE_OLD_SHADING); nodeRegisterType(lb, &ntype); } diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.c b/source/blender/nodes/shader/nodes/node_shader_emission.c index d57c5b672a5..32e17d772d7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_emission.c +++ b/source/blender/nodes/shader/nodes/node_shader_emission.c @@ -57,6 +57,7 @@ void register_node_type_sh_emission(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_emission_in, sh_node_emission_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_fresnel.c b/source/blender/nodes/shader/nodes/node_shader_fresnel.c index c918d8464e6..e93eac06eca 100644 --- a/source/blender/nodes/shader/nodes/node_shader_fresnel.c +++ b/source/blender/nodes/shader/nodes/node_shader_fresnel.c @@ -56,6 +56,7 @@ void register_node_type_sh_fresnel(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_FRESNEL, "Fresnel", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_fresnel_in, sh_node_fresnel_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_geom.c b/source/blender/nodes/shader/nodes/node_shader_geom.c index 9ea12ada484..4269469b27d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_geom.c +++ b/source/blender/nodes/shader/nodes/node_shader_geom.c @@ -141,6 +141,7 @@ void register_node_type_sh_geom(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_GEOM, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_geom_out); node_type_size(&ntype, 120, 80, 160); node_type_init(&ntype, node_shader_init_geometry); diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.c b/source/blender/nodes/shader/nodes/node_shader_geometry.c index 73ec0b2e5d6..f077d700a74 100644 --- a/source/blender/nodes/shader/nodes/node_shader_geometry.c +++ b/source/blender/nodes/shader/nodes/node_shader_geometry.c @@ -59,6 +59,7 @@ void register_node_type_sh_geometry(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_geometry_out); node_type_size(&ntype, 120, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_holdout.c b/source/blender/nodes/shader/nodes/node_shader_holdout.c index 1f376c4941c..170116aa833 100644 --- a/source/blender/nodes/shader/nodes/node_shader_holdout.c +++ b/source/blender/nodes/shader/nodes/node_shader_holdout.c @@ -51,6 +51,7 @@ void register_node_type_sh_holdout(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_holdout_in, sh_node_holdout_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c index f4f69cf56fe..2b266d01db2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c @@ -87,6 +87,7 @@ void register_node_type_sh_hue_sat(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_HUE_SAT, "Hue Saturation Value", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_hue_sat_in, sh_node_hue_sat_out); node_type_size(&ntype, 150, 80, 250); node_type_exec(&ntype, node_shader_exec_hue_sat); diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.c b/source/blender/nodes/shader/nodes/node_shader_invert.c index 5347d98b42e..4ac7463dac1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.c +++ b/source/blender/nodes/shader/nodes/node_shader_invert.c @@ -79,6 +79,7 @@ void register_node_type_sh_invert(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_invert_in, sh_node_invert_out); node_type_size(&ntype, 90, 80, 100); node_type_exec(&ntype, node_shader_exec_invert); diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.c b/source/blender/nodes/shader/nodes/node_shader_light_path.c index a811259cced..0055257dda2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_light_path.c +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.c @@ -57,6 +57,7 @@ void register_node_type_sh_light_path(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_LIGHT_PATH, "Light Path", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_light_path_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c index 05432708b29..2abc6dd3f77 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.c +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -93,6 +93,7 @@ void register_node_type_sh_mapping(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MAPPING, "Mapping", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mapping_in, sh_node_mapping_out); node_type_size(&ntype, 240, 160, 320); node_type_init(&ntype, node_shader_init_mapping); diff --git a/source/blender/nodes/shader/nodes/node_shader_material.c b/source/blender/nodes/shader/nodes/node_shader_material.c index 21fb4db115b..d30201b100e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_material.c @@ -307,6 +307,7 @@ void register_node_type_sh_material(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MATERIAL, "Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_material_in, sh_node_material_out); node_type_size(&ntype, 120, 80, 240); node_type_init(&ntype, node_shader_init_material); @@ -322,6 +323,7 @@ void register_node_type_sh_material_ext(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MATERIAL_EXT, "Extended Material", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_material_ext_in, sh_node_material_ext_out); node_type_size(&ntype, 120, 80, 240); node_type_init(&ntype, node_shader_init_material); diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index 592779d6803..a09fe3db69d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -243,6 +243,7 @@ void register_node_type_sh_math(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_math_in, sh_node_math_out); node_type_size(&ntype, 120, 110, 160); node_type_label(&ntype, node_math_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c index ed5695edd42..a7b5ac29bc5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c @@ -80,6 +80,7 @@ void register_node_type_sh_mix_rgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mix_rgb_in, sh_node_mix_rgb_out); node_type_size(&ntype, 100, 60, 150); node_type_label(&ntype, node_blend_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c index 49f53633080..a41a95a0fa4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c @@ -58,6 +58,7 @@ void register_node_type_sh_mix_shader(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mix_shader_in, sh_node_mix_shader_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_normal.c b/source/blender/nodes/shader/nodes/node_shader_normal.c index 1ce7c61c593..e40a5a8b133 100644 --- a/source/blender/nodes/shader/nodes/node_shader_normal.c +++ b/source/blender/nodes/shader/nodes/node_shader_normal.c @@ -86,6 +86,7 @@ void register_node_type_sh_normal(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_NORMAL, "Normal", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_normal_in, sh_node_normal_out); node_type_init(&ntype, node_shader_init_normal); node_type_exec(&ntype, node_shader_exec_normal); diff --git a/source/blender/nodes/shader/nodes/node_shader_output.c b/source/blender/nodes/shader/nodes/node_shader_output.c index 94990bd9cf1..d59534f3307 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output.c +++ b/source/blender/nodes/shader/nodes/node_shader_output.c @@ -85,6 +85,7 @@ void register_node_type_sh_output(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_OUTPUT, "Output", NODE_CLASS_OUTPUT, NODE_PREVIEW); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_output_in, NULL); node_type_size(&ntype, 80, 60, 200); node_type_exec(&ntype, node_shader_exec_output); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c index aca2aebeb24..4a7c033ad84 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c @@ -46,6 +46,7 @@ void register_node_type_sh_output_lamp(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_OUTPUT_LAMP, "Lamp Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_output_lamp_in, NULL); node_type_size(&ntype, 120, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c index 3d1c9c9fdf7..a3dbb103f21 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -58,6 +58,7 @@ void register_node_type_sh_output_material(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_output_material_in, NULL); node_type_size(&ntype, 120, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_texture.c b/source/blender/nodes/shader/nodes/node_shader_output_texture.c index ad37746f541..d436b23fb61 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_texture.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_texture.c @@ -63,6 +63,7 @@ void register_node_type_sh_output_texture(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_OUTPUT_TEXTURE, "Texture Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_output_texture_in, NULL); node_type_size(&ntype, 120, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c index 5e42200ed28..7bc06401dd0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -46,6 +46,7 @@ void register_node_type_sh_output_world(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_output_world_in, NULL); node_type_size(&ntype, 120, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb.c b/source/blender/nodes/shader/nodes/node_shader_rgb.c index d612e5c228f..8c03969edd2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_rgb.c @@ -73,6 +73,7 @@ void register_node_type_sh_rgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_rgb_out); node_type_init(&ntype, node_shader_init_rgb); node_type_size(&ntype, 140, 80, 140); diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c index 15a8a4952fb..db37fe44eef 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.c @@ -63,6 +63,7 @@ void register_node_type_sh_seprgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_SEPRGB, "Separate RGB", NODE_CLASS_CONVERTOR, 0); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_seprgb_in, sh_node_seprgb_out); node_type_size(&ntype, 80, 40, 140); node_type_exec(&ntype, node_shader_exec_seprgb); @@ -102,6 +103,7 @@ void register_node_type_sh_combrgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_COMBRGB, "Combine RGB", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_combrgb_in, sh_node_combrgb_out); node_type_size(&ntype, 80, 40, 140); node_type_exec(&ntype, node_shader_exec_combrgb); diff --git a/source/blender/nodes/shader/nodes/node_shader_squeeze.c b/source/blender/nodes/shader/nodes/node_shader_squeeze.c index b9eb116b866..30550a685c2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_squeeze.c +++ b/source/blender/nodes/shader/nodes/node_shader_squeeze.c @@ -69,6 +69,7 @@ void register_node_type_sh_squeeze(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_SQUEEZE, "Squeeze Value", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_squeeze_in, sh_node_squeeze_out); node_type_size(&ntype, 120, 110, 160); node_type_storage(&ntype, "node_squeeze", NULL, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c index a42da334df2..659b0cadd5b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c @@ -123,6 +123,7 @@ void register_node_type_sh_tex_blend(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_BLEND, "Blend Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_blend_in, sh_node_tex_blend_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_blend); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c index e140a587f87..c38dd155a7b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c @@ -106,6 +106,7 @@ void register_node_type_sh_tex_clouds(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_CLOUDS, "Clouds Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_clouds_in, sh_node_tex_clouds_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_clouds); 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 5fdde7e23ce..0239a64110d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c @@ -63,6 +63,7 @@ void register_node_type_sh_tex_coord(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0); + 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); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c index f91e6ee9f3d..c28fef9e472 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c @@ -103,6 +103,7 @@ void register_node_type_sh_tex_distnoise(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_DISTNOISE, "Distorted Noise Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_distnoise_in, sh_node_tex_distnoise_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_distorted_noise); 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 19271e0051b..7fbd5142e22 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -103,6 +103,7 @@ void register_node_type_sh_tex_environment(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_ENVIRONMENT, "Environment Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_environment_in, sh_node_tex_environment_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_environment); 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 4ad6f387a7e..11a2c914746 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c @@ -101,6 +101,7 @@ void register_node_type_sh_tex_image(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_image_in, sh_node_tex_image_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_image); 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 d15fff44883..5ccb42d99c4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c @@ -157,6 +157,7 @@ void register_node_type_sh_tex_magic(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_magic_in, sh_node_tex_magic_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_magic); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c index fe707ee6359..5b9b3008038 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c @@ -111,6 +111,7 @@ void register_node_type_sh_tex_marble(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_MARBLE, "Marble Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_marble_in, sh_node_tex_marble_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_marble); 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 a0a24559518..f8586b5e9ac 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c @@ -276,6 +276,7 @@ void register_node_type_sh_tex_musgrave(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_MUSGRAVE, "Musgrave Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_musgrave_in, sh_node_tex_musgrave_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_musgrave); 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 9785c4473f5..32f88e998a5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c @@ -88,6 +88,7 @@ void register_node_type_sh_tex_noise(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_NOISE, "Noise Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_noise_in, sh_node_tex_noise_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); 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 6c155458245..b43f7bd2924 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c @@ -70,6 +70,7 @@ void register_node_type_sh_tex_sky(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_SKY, "Sky Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_sky_in, sh_node_tex_sky_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_sky); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c index 22ea8d32047..4540e2c982b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c @@ -106,6 +106,7 @@ void register_node_type_sh_tex_stucci(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_STUCCI, "Stucci Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_stucci_in, sh_node_tex_stucci_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_stucci); 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 16c694575c1..b942aa00fb4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c @@ -152,6 +152,7 @@ void register_node_type_sh_tex_voronoi(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_VORONOI, "Voronoi Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_voronoi_in, sh_node_tex_voronoi_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_voronoi); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c index 5ae69524379..4fb11743882 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c @@ -113,6 +113,7 @@ void register_node_type_sh_tex_wood(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEX_WOOD, "Wood Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_wood_in, sh_node_tex_wood_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_wood); diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c index 09716820800..5403a11e992 100644 --- a/source/blender/nodes/shader/nodes/node_shader_texture.c +++ b/source/blender/nodes/shader/nodes/node_shader_texture.c @@ -138,6 +138,7 @@ void register_node_type_sh_texture(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_texture_in, sh_node_texture_out); node_type_size(&ntype, 120, 80, 240); node_type_exec(&ntype, node_shader_exec_texture); diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c index 5c1d3096a6e..cc31d301894 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c @@ -78,6 +78,7 @@ void register_node_type_sh_valtorgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VALTORGB, "ColorRamp", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_valtorgb_in, sh_node_valtorgb_out); node_type_size(&ntype, 240, 200, 300); node_type_init(&ntype, node_shader_init_valtorgb); @@ -118,6 +119,7 @@ void register_node_type_sh_rgbtobw(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out); node_type_size(&ntype, 80, 40, 120); node_type_exec(&ntype, node_shader_exec_rgbtobw); diff --git a/source/blender/nodes/shader/nodes/node_shader_value.c b/source/blender/nodes/shader/nodes/node_shader_value.c index 119a3664308..1552e8fbf42 100644 --- a/source/blender/nodes/shader/nodes/node_shader_value.c +++ b/source/blender/nodes/shader/nodes/node_shader_value.c @@ -73,6 +73,7 @@ void register_node_type_sh_value(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_value_out); node_type_init(&ntype, node_shader_init_value); node_type_size(&ntype, 80, 50, 120); diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c index ca31d879e3e..c8f9f5ec7e3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vectMath.c +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -137,6 +137,7 @@ void register_node_type_sh_vect_math(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VECT_MATH, "Vector Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_vect_math_in, sh_node_vect_math_out); node_type_size(&ntype, 80, 75, 140); node_type_label(&ntype, node_vect_math_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c index e5579c1bf0b..bc27478f309 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c +++ b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c @@ -46,7 +46,7 @@ static void node_shader_exec_volume_isotropic(void *UNUSED(data), bNode *UNUSED( { } -static int node_shader_gpu_volume_isotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_volume_isotropic(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) { return 0; } @@ -57,6 +57,7 @@ void register_node_type_sh_volume_isotropic(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VOLUME_ISOTROPIC, "Isotropic Volume", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_volume_isotropic_in, sh_node_volume_isotropic_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c index b2e9e22789a..d931736d15a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c +++ b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c @@ -46,7 +46,7 @@ static void node_shader_exec_volume_transparent(void *UNUSED(data), bNode *UNUSE { } -static int node_shader_gpu_volume_transparent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_volume_transparent(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) { return 0; } @@ -57,6 +57,7 @@ void register_node_type_sh_volume_transparent(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VOLUME_TRANSPARENT, "Transparent Volume", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_volume_transparent_in, sh_node_volume_transparent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); -- cgit v1.2.3 From 4c3b94fdbd9376c9ded785ce8d2eba88b280d149 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 16:01:37 +0000 Subject: Cycles: image texture node now uses UV as default texture coordinate, instead of generated. --- intern/cycles/render/graph.cpp | 19 +++++++++++++++---- intern/cycles/render/graph.h | 3 ++- intern/cycles/render/nodes.cpp | 22 +++++++++++----------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp index 54acc6e14cd..cdded403cbe 100644 --- a/intern/cycles/render/graph.cpp +++ b/intern/cycles/render/graph.cpp @@ -117,9 +117,14 @@ ShaderOutput *ShaderNode::add_output(const char *name, ShaderSocketType type) void ShaderNode::attributes(AttributeRequestSet *attributes) { - foreach(ShaderInput *input, inputs) - if(!input->link && input->default_value == ShaderInput::TEXTURE_COORDINATE) - attributes->add(Attribute::STD_GENERATED); + foreach(ShaderInput *input, inputs) { + if(!input->link) { + if(input->default_value == ShaderInput::TEXTURE_GENERATED) + attributes->add(Attribute::STD_GENERATED); + else if(input->default_value == ShaderInput::TEXTURE_UV) + attributes->add(Attribute::STD_UV); + } + } } /* Graph */ @@ -347,12 +352,18 @@ void ShaderGraph::default_inputs(bool do_osl) foreach(ShaderNode *node, nodes) { foreach(ShaderInput *input, node->inputs) { if(!input->link && !(input->osl_only && !do_osl)) { - if(input->default_value == ShaderInput::TEXTURE_COORDINATE) { + if(input->default_value == ShaderInput::TEXTURE_GENERATED) { if(!texco) texco = new TextureCoordinateNode(); connect(texco->output("Generated"), input); } + else if(input->default_value == ShaderInput::TEXTURE_UV) { + if(!texco) + texco = new TextureCoordinateNode(); + + connect(texco->output("UV"), input); + } else if(input->default_value == ShaderInput::INCOMING) { if(!geom) geom = new GeometryNode(); diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h index a79a68da358..2a2df5e1377 100644 --- a/intern/cycles/render/graph.h +++ b/intern/cycles/render/graph.h @@ -96,7 +96,8 @@ protected: class ShaderInput { public: enum DefaultValue { - TEXTURE_COORDINATE, + TEXTURE_GENERATED, + TEXTURE_UV, INCOMING, NORMAL, POSITION, diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 1d21e43217a..88be4b6d26f 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -47,7 +47,7 @@ ImageTextureNode::ImageTextureNode() filename = ""; color_space = ustring("sRGB"); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_UV); add_output("Color", SHADER_SOCKET_COLOR); add_output("Alpha", SHADER_SOCKET_FLOAT); } @@ -285,7 +285,7 @@ void SkyTextureNode::compile(OSLCompiler& compiler) NoiseTextureNode::NoiseTextureNode() : ShaderNode("noise_texture") { - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -350,7 +350,7 @@ BlendTextureNode::BlendTextureNode() progression = ustring("Linear"); axis = ustring("Horizontal"); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -402,7 +402,7 @@ CloudsTextureNode::CloudsTextureNode() depth = 2; add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); @@ -479,7 +479,7 @@ VoronoiTextureNode::VoronoiTextureNode() add_input("Weight3", SHADER_SOCKET_FLOAT, 0.0f); add_input("Weight4", SHADER_SOCKET_FLOAT, 0.0f); add_input("Exponent", SHADER_SOCKET_FLOAT, 2.5f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); @@ -557,7 +557,7 @@ MusgraveTextureNode::MusgraveTextureNode() add_input("Offset", SHADER_SOCKET_FLOAT, 0.0f); add_input("Gain", SHADER_SOCKET_FLOAT, 1.0f); add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -641,7 +641,7 @@ MarbleTextureNode::MarbleTextureNode() add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -684,7 +684,7 @@ MagicTextureNode::MagicTextureNode() depth = 2; add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); } @@ -734,7 +734,7 @@ StucciTextureNode::StucciTextureNode() add_input("Size", SHADER_SOCKET_FLOAT, 1.0f); add_input("Turbulence", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -780,7 +780,7 @@ DistortedNoiseTextureNode::DistortedNoiseTextureNode() add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); add_input("Distortion", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } @@ -840,7 +840,7 @@ WoodTextureNode::WoodTextureNode() add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_COORDINATE); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); } -- cgit v1.2.3 From 7d86c6b157f7fe5d21b822dca4ff5e788be116d7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 16:09:35 +0000 Subject: Cycles: add compatibility check to node link menu. --- source/blender/editors/interface/interface_node.c | 30 ++++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 896924a10b5..6c17a1d92ba 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -33,6 +33,7 @@ #include "MEM_guardedalloc.h" #include "DNA_node_types.h" +#include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "BLI_listbase.h" @@ -44,6 +45,7 @@ #include "BKE_library.h" #include "BKE_main.h" #include "BKE_node.h" +#include "BKE_scene.h" #include "RNA_access.h" @@ -271,7 +273,7 @@ static int ui_compatible_sockets(int typeA, int typeB) return (typeA == typeB); } -static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, const char *cname, int nclass) +static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, const char *cname, int nclass, int compatibility) { bNodeTree *ntree = arg->ntree; bNodeSocket *sock = arg->sock; @@ -342,6 +344,9 @@ static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, char name[UI_MAX_NAME_STR]; int i, j, num = 0; + if(!(ntype->compatibility & compatibility)) + continue; + if(ntype->nclass != nclass) continue; @@ -392,22 +397,29 @@ static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_p) { Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); uiBlock *block = uiLayoutGetBlock(layout); uiBut *but = (uiBut*)but_p; uiLayout *split, *column; NodeLinkArg *arg = (NodeLinkArg*)but->func_argN; bNodeSocket *sock = arg->sock; + int compatibility; + + if(scene_use_new_shading_nodes(scene)) + compatibility= NODE_NEW_SHADING; + else + compatibility= NODE_OLD_SHADING; uiBlockSetCurLayout(block, layout); split= uiLayoutSplit(layout, 0, 0); - ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT); - ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT); - ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER); - ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE); - ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR); - ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR); - ui_node_menu_column(bmain, arg, split, "Convertor", NODE_CLASS_CONVERTOR); + ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT, compatibility); + ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT, compatibility); + ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER, compatibility); + ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE, compatibility); + ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR, compatibility); + ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR, compatibility); + ui_node_menu_column(bmain, arg, split, "Convertor", NODE_CLASS_CONVERTOR, compatibility); column= uiLayoutColumn(split, 0); uiBlockSetCurLayout(block, column); @@ -426,7 +438,7 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_ uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_DISCONNECT)); } - ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP); + ui_node_menu_column(bmain, arg, column, "Group", NODE_CLASS_GROUP, compatibility); } void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSocket *sock) -- cgit v1.2.3 From 310b25c388aeaf43eeb4b0e4895cc5a24e44cd8e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 22:42:13 +0000 Subject: Cycles: code refactoring to split out code from mapping node. --- intern/cycles/blender/blender_shader.cpp | 9 +- intern/cycles/render/nodes.cpp | 155 ++++++++++++++++++++++++------- intern/cycles/render/nodes.h | 57 ++++++++---- 3 files changed, 165 insertions(+), 56 deletions(-) diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index da4513fbb7b..11c89db3e59 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -162,9 +162,12 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * case BL::ShaderNode::type_MAPPING: { BL::ShaderNodeMapping b_mapping_node(b_node); MappingNode *mapping = new MappingNode(); - mapping->translation = get_float3(b_mapping_node.location()); - mapping->rotation = get_float3(b_mapping_node.rotation()); - mapping->scale = get_float3(b_mapping_node.scale()); + + TextureMapping *tex_mapping = &mapping->tex_mapping; + tex_mapping->translation = get_float3(b_mapping_node.location()); + tex_mapping->rotation = get_float3(b_mapping_node.rotation()); + tex_mapping->scale = get_float3(b_mapping_node.scale()); + node = mapping; break; } diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 88be4b6d26f..1609bfe8791 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -25,6 +25,68 @@ CCL_NAMESPACE_BEGIN +/* Texture Mapping */ + +TextureMapping::TextureMapping() +{ + translation = make_float3(0.0f, 0.0f, 0.0f); + rotation = make_float3(0.0f, 0.0f, 0.0f); + scale = make_float3(1.0f, 1.0f, 1.0f); + + x_mapping = X; + y_mapping = Y; + z_mapping = Z; + + projection = FLAT; +} + +Transform TextureMapping::compute_transform() +{ + Transform mmat = transform_scale(make_float3(0.0f, 0.0f, 0.0f)); + + if(x_mapping != NONE) + mmat[0][x_mapping] = 1.0f; + if(y_mapping != NONE) + mmat[1][y_mapping] = 1.0f; + if(z_mapping != NONE) + mmat[2][z_mapping] = 1.0f; + + Transform smat = transform_scale(scale); + Transform rmat = transform_euler(rotation); + Transform tmat = transform_translate(translation); + + return tmat*rmat*smat*mmat; +} + +bool TextureMapping::skip() +{ + if(translation != make_float3(0.0f, 0.0f, 0.0f)) + return false; + if(rotation != make_float3(0.0f, 0.0f, 0.0f)) + return false; + if(scale != make_float3(1.0f, 1.0f, 1.0f)) + return false; + + if(x_mapping != X || y_mapping != Y || z_mapping != Z) + return false; + + return true; +} + +void TextureMapping::compile(SVMCompiler& compiler, int offset_in, int offset_out) +{ + if(offset_in == SVM_STACK_INVALID || offset_out == SVM_STACK_INVALID) + return; + + compiler.add_node(NODE_MAPPING, offset_in, offset_out); + + Transform tfm = compute_transform(); + compiler.add_node(tfm.x); + compiler.add_node(tfm.y); + compiler.add_node(tfm.z); + compiler.add_node(tfm.w); +} + /* Image Texture */ static ShaderEnum color_space_init() @@ -40,7 +102,7 @@ static ShaderEnum color_space_init() ShaderEnum ImageTextureNode::color_space_enum = color_space_init(); ImageTextureNode::ImageTextureNode() -: ShaderNode("image_texture") +: TextureNode("image_texture") { image_manager = NULL; slot = -1; @@ -83,6 +145,10 @@ void ImageTextureNode::compile(SVMCompiler& compiler) if(slot != -1) { compiler.stack_assign(vector_in); + + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.add_node(NODE_TEX_IMAGE, slot, compiler.encode_uchar4( @@ -114,7 +180,7 @@ void ImageTextureNode::compile(OSLCompiler& compiler) ShaderEnum EnvironmentTextureNode::color_space_enum = color_space_init(); EnvironmentTextureNode::EnvironmentTextureNode() -: ShaderNode("environment_texture") +: TextureNode("environment_texture") { image_manager = NULL; slot = -1; @@ -157,6 +223,10 @@ void EnvironmentTextureNode::compile(SVMCompiler& compiler) if(slot != -1) { compiler.stack_assign(vector_in); + + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.add_node(NODE_TEX_ENVIRONMENT, slot, compiler.encode_uchar4( @@ -248,7 +318,7 @@ static void sky_texture_precompute(KernelSunSky *ksunsky, float3 dir, float turb } SkyTextureNode::SkyTextureNode() -: ShaderNode("sky_texture") +: TextureNode("sky_texture") { sun_direction = make_float3(0.0f, 0.0f, 1.0f); turbidity = 2.2f; @@ -269,6 +339,9 @@ void SkyTextureNode::compile(SVMCompiler& compiler) if(vector_in->link) compiler.stack_assign(vector_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(color_out); compiler.add_node(NODE_TEX_SKY, vector_in->stack_offset, color_out->stack_offset); } @@ -283,7 +356,7 @@ void SkyTextureNode::compile(OSLCompiler& compiler) /* Noise Texture */ NoiseTextureNode::NoiseTextureNode() -: ShaderNode("noise_texture") +: TextureNode("noise_texture") { add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); @@ -296,14 +369,16 @@ void NoiseTextureNode::compile(SVMCompiler& compiler) ShaderOutput *color_out = output("Color"); ShaderOutput *fac_out = output("Fac"); + if(!color_out->links.empty() || !fac_out->links.empty()) + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + if(!color_out->links.empty()) { - compiler.stack_assign(vector_in); compiler.stack_assign(color_out); compiler.add_node(NODE_TEX_NOISE_V, vector_in->stack_offset, color_out->stack_offset); } if(!fac_out->links.empty()) { - compiler.stack_assign(vector_in); compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_NOISE_F, vector_in->stack_offset, fac_out->stack_offset); } @@ -345,7 +420,7 @@ ShaderEnum BlendTextureNode::progression_enum = blend_progression_init(); ShaderEnum BlendTextureNode::axis_enum = blend_axis_init(); BlendTextureNode::BlendTextureNode() -: ShaderNode("blend_texture") +: TextureNode("blend_texture") { progression = ustring("Linear"); axis = ustring("Horizontal"); @@ -361,6 +436,9 @@ void BlendTextureNode::compile(SVMCompiler& compiler) if(vector_in->link) compiler.stack_assign(vector_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_BLEND, compiler.encode_uchar4(progression_enum[progression], axis_enum[axis]), @@ -395,7 +473,7 @@ static ShaderEnum noise_basis_init() ShaderEnum CloudsTextureNode::basis_enum = noise_basis_init(); CloudsTextureNode::CloudsTextureNode() -: ShaderNode("clouds_texture") +: TextureNode("clouds_texture") { basis = ustring("Perlin"); hard = false; @@ -418,6 +496,9 @@ void CloudsTextureNode::compile(SVMCompiler& compiler) if(vector_in->link) compiler.stack_assign(vector_in); if(size_in->link) compiler.stack_assign(size_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(color_out); compiler.stack_assign(fac_out); @@ -468,7 +549,7 @@ ShaderEnum VoronoiTextureNode::distance_metric_enum = distance_metric_init(); ShaderEnum VoronoiTextureNode::coloring_enum = voronoi_coloring_init(); VoronoiTextureNode::VoronoiTextureNode() -: ShaderNode("voronoi_texture") +: TextureNode("voronoi_texture") { distance_metric = ustring("Actual Distance"); coloring = ustring("Intensity"); @@ -505,6 +586,9 @@ void VoronoiTextureNode::compile(SVMCompiler& compiler) if(vector_in->link) compiler.stack_assign(vector_in); if(size_in->link) compiler.stack_assign(size_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(color_out); compiler.stack_assign(fac_out); @@ -546,7 +630,7 @@ ShaderEnum MusgraveTextureNode::type_enum = musgrave_type_init(); ShaderEnum MusgraveTextureNode::basis_enum = noise_basis_init(); MusgraveTextureNode::MusgraveTextureNode() -: ShaderNode("musgrave_texture") +: TextureNode("musgrave_texture") { type = ustring("fBM"); basis = ustring("Perlin"); @@ -581,6 +665,9 @@ void MusgraveTextureNode::compile(SVMCompiler& compiler) if(gain_in->link) compiler.stack_assign(gain_in); if(size_in->link) compiler.stack_assign(size_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_MUSGRAVE, compiler.encode_uchar4(type_enum[type], basis_enum[basis], vector_in->stack_offset, fac_out->stack_offset), @@ -631,7 +718,7 @@ ShaderEnum MarbleTextureNode::wave_enum = noise_wave_init(); ShaderEnum MarbleTextureNode::basis_enum = noise_basis_init(); MarbleTextureNode::MarbleTextureNode() -: ShaderNode("marble_texture") +: TextureNode("marble_texture") { type = ustring("Soft"); wave = ustring("Sine"); @@ -657,6 +744,9 @@ void MarbleTextureNode::compile(SVMCompiler& compiler) if(turbulence_in->link) compiler.stack_assign(turbulence_in); if(vector_in->link) compiler.stack_assign(vector_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_MARBLE, compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), @@ -679,7 +769,7 @@ void MarbleTextureNode::compile(OSLCompiler& compiler) /* Magic Texture */ MagicTextureNode::MagicTextureNode() -: ShaderNode("magic_texture") +: TextureNode("magic_texture") { depth = 2; @@ -697,6 +787,9 @@ void MagicTextureNode::compile(SVMCompiler& compiler) if(vector_in->link) compiler.stack_assign(vector_in); if(turbulence_in->link) compiler.stack_assign(turbulence_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(color_out); compiler.add_node(NODE_TEX_MAGIC, compiler.encode_uchar4(depth, turbulence_in->stack_offset, vector_in->stack_offset, color_out->stack_offset), @@ -726,7 +819,7 @@ ShaderEnum StucciTextureNode::type_enum = stucci_type_init(); ShaderEnum StucciTextureNode::basis_enum = noise_basis_init(); StucciTextureNode::StucciTextureNode() -: ShaderNode("stucci_texture") +: TextureNode("stucci_texture") { type = ustring("Plastic"); basis = ustring("Perlin"); @@ -750,6 +843,9 @@ void StucciTextureNode::compile(SVMCompiler& compiler) if(turbulence_in->link) compiler.stack_assign(turbulence_in); if(vector_in->link) compiler.stack_assign(vector_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_STUCCI, @@ -773,7 +869,7 @@ void StucciTextureNode::compile(OSLCompiler& compiler) ShaderEnum DistortedNoiseTextureNode::basis_enum = noise_basis_init(); DistortedNoiseTextureNode::DistortedNoiseTextureNode() -: ShaderNode("distorted_noise_texture") +: TextureNode("distorted_noise_texture") { basis = ustring("Perlin"); distortion_basis = ustring("Perlin"); @@ -796,6 +892,9 @@ void DistortedNoiseTextureNode::compile(SVMCompiler& compiler) if(distortion_in->link) compiler.stack_assign(distortion_in); if(vector_in->link) compiler.stack_assign(vector_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_DISTORTED_NOISE, @@ -831,7 +930,7 @@ ShaderEnum WoodTextureNode::wave_enum = noise_wave_init(); ShaderEnum WoodTextureNode::basis_enum = noise_basis_init(); WoodTextureNode::WoodTextureNode() -: ShaderNode("wood_texture") +: TextureNode("wood_texture") { type = ustring("Bands"); wave = ustring("Sine"); @@ -856,6 +955,9 @@ void WoodTextureNode::compile(SVMCompiler& compiler) if(size_in->link) compiler.stack_assign(size_in); if(turbulence_in->link) compiler.stack_assign(turbulence_in); + if(!tex_mapping.skip()) + tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); + compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_WOOD, compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), @@ -879,19 +981,6 @@ MappingNode::MappingNode() { add_input("Vector", SHADER_SOCKET_POINT); add_output("Vector", SHADER_SOCKET_POINT); - - translation = make_float3(0.0f, 0.0f, 0.0f); - rotation = make_float3(0.0f, 0.0f, 0.0f); - scale = make_float3(1.0f, 1.0f, 1.0f); -} - -Transform MappingNode::compute_transform() -{ - Transform smat = transform_scale(scale); - Transform rmat = transform_euler(rotation); - Transform tmat = transform_translate(translation); - - return tmat*rmat*smat; } void MappingNode::compile(SVMCompiler& compiler) @@ -902,18 +991,12 @@ void MappingNode::compile(SVMCompiler& compiler) compiler.stack_assign(vector_in); compiler.stack_assign(vector_out); - compiler.add_node(NODE_MAPPING, vector_in->stack_offset, vector_out->stack_offset); - - Transform tfm = compute_transform(); - compiler.add_node(tfm.x); - compiler.add_node(tfm.y); - compiler.add_node(tfm.z); - compiler.add_node(tfm.w); + tex_mapping.compile(compiler, vector_in->stack_offset, vector_out->stack_offset); } void MappingNode::compile(OSLCompiler& compiler) { - Transform tfm = transform_transpose(compute_transform()); + Transform tfm = transform_transpose(tex_mapping.compute_transform()); compiler.parameter("Matrix", tfm); compiler.add(this, "node_mapping"); diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index 0a7ac158431..e11c51b4aaf 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -28,9 +28,35 @@ CCL_NAMESPACE_BEGIN class ImageManager; class Shadr; +/* Texture Mapping */ + +class TextureMapping { +public: + TextureMapping(); + Transform compute_transform(); + bool skip(); + void compile(SVMCompiler& compiler, int offset_in, int offset_out); + + float3 translation; + float3 rotation; + float3 scale; + + enum Mapping { X=0, Y=1, Z=2, NONE }; + Mapping x_mapping, y_mapping, z_mapping; + + enum Projection { FLAT, CUBE, TUBE, SPHERE }; + Projection projection; +}; + /* Nodes */ -class ImageTextureNode : public ShaderNode { +class TextureNode : public ShaderNode { +public: + TextureNode(const char *name) : ShaderNode(name) {} + TextureMapping tex_mapping; +}; + +class ImageTextureNode : public TextureNode { public: SHADER_NODE_NO_CLONE_CLASS(ImageTextureNode) ~ImageTextureNode(); @@ -44,7 +70,7 @@ public: static ShaderEnum color_space_enum; }; -class EnvironmentTextureNode : public ShaderNode { +class EnvironmentTextureNode : public TextureNode { public: SHADER_NODE_NO_CLONE_CLASS(EnvironmentTextureNode) ~EnvironmentTextureNode(); @@ -58,7 +84,7 @@ public: static ShaderEnum color_space_enum; }; -class SkyTextureNode : public ShaderNode { +class SkyTextureNode : public TextureNode { public: SHADER_NODE_CLASS(SkyTextureNode) @@ -71,12 +97,12 @@ public: SHADER_NODE_CLASS(OutputNode) }; -class NoiseTextureNode : public ShaderNode { +class NoiseTextureNode : public TextureNode { public: SHADER_NODE_CLASS(NoiseTextureNode) }; -class BlendTextureNode : public ShaderNode { +class BlendTextureNode : public TextureNode { public: SHADER_NODE_CLASS(BlendTextureNode) @@ -87,7 +113,7 @@ public: static ShaderEnum axis_enum; }; -class CloudsTextureNode : public ShaderNode { +class CloudsTextureNode : public TextureNode { public: SHADER_NODE_CLASS(CloudsTextureNode) @@ -98,7 +124,7 @@ public: static ShaderEnum basis_enum; }; -class VoronoiTextureNode : public ShaderNode { +class VoronoiTextureNode : public TextureNode { public: SHADER_NODE_CLASS(VoronoiTextureNode) @@ -109,7 +135,7 @@ public: static ShaderEnum coloring_enum; }; -class MusgraveTextureNode : public ShaderNode { +class MusgraveTextureNode : public TextureNode { public: SHADER_NODE_CLASS(MusgraveTextureNode) @@ -120,7 +146,7 @@ public: static ShaderEnum basis_enum; }; -class MarbleTextureNode : public ShaderNode { +class MarbleTextureNode : public TextureNode { public: SHADER_NODE_CLASS(MarbleTextureNode) @@ -135,14 +161,14 @@ public: static ShaderEnum basis_enum; }; -class MagicTextureNode : public ShaderNode { +class MagicTextureNode : public TextureNode { public: SHADER_NODE_CLASS(MagicTextureNode) int depth; }; -class StucciTextureNode : public ShaderNode { +class StucciTextureNode : public TextureNode { public: SHADER_NODE_CLASS(StucciTextureNode) @@ -154,7 +180,7 @@ public: static ShaderEnum basis_enum; }; -class DistortedNoiseTextureNode : public ShaderNode { +class DistortedNoiseTextureNode : public TextureNode { public: SHADER_NODE_CLASS(DistortedNoiseTextureNode) @@ -163,7 +189,7 @@ public: static ShaderEnum basis_enum; }; -class WoodTextureNode : public ShaderNode { +class WoodTextureNode : public TextureNode { public: SHADER_NODE_CLASS(WoodTextureNode) @@ -181,10 +207,7 @@ class MappingNode : public ShaderNode { public: SHADER_NODE_CLASS(MappingNode) - Transform compute_transform(); - float3 translation; - float3 rotation; - float3 scale; + TextureMapping tex_mapping; }; class ConvertNode : public ShaderNode { -- cgit v1.2.3 From 9ebfcea8f392a0ac91247973d2e9ee06f689799c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 12 Oct 2011 23:03:12 +0000 Subject: Cycles: revert commit that joined surface/volume socket into a single shader socket, on second thought this makes it a bit too difficult to understand what's going on. --- intern/cycles/blender/addon/ui.py | 54 +- intern/cycles/blender/blender_shader.cpp | 6 +- intern/cycles/kernel/kernel_shader.h | 6 +- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 3 +- .../kernel/osl/nodes/node_output_closure.osl | 25 - .../kernel/osl/nodes/node_output_surface.osl | 25 + .../cycles/kernel/osl/nodes/node_output_volume.osl | 25 + intern/cycles/kernel/osl/osl_shader.cpp | 8 +- intern/cycles/kernel/svm/svm.h | 3 +- intern/cycles/kernel/svm/svm_types.h | 3 +- intern/cycles/render/nodes.cpp | 9 +- intern/cycles/render/osl.cpp | 62 +- intern/cycles/render/shader.cpp | 7 +- intern/cycles/render/shader.h | 7 +- intern/cycles/render/svm.cpp | 31 +- source/blender/blenloader/intern/readfile.c | 8 +- source/blender/gpu/intern/gpu_shader_material.glsl | 4 +- .../blender/gpu/intern/gpu_shader_material.glsl.c | 2852 ++++++++++---------- .../nodes/shader/nodes/node_shader_output_lamp.c | 2 +- .../shader/nodes/node_shader_output_material.c | 3 +- .../nodes/shader/nodes/node_shader_output_world.c | 3 +- 21 files changed, 1629 insertions(+), 1517 deletions(-) delete mode 100644 intern/cycles/kernel/osl/nodes/node_output_closure.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_output_surface.osl create mode 100644 intern/cycles/kernel/osl/nodes/node_output_volume.osl diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 33e0b8bcb50..6f31732aa1f 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -228,7 +228,7 @@ class CyclesCamera_PT_dof(CyclesButtonsPanel, Panel): sub.prop(ccam, "aperture_rotation", text="Rotation") class Cycles_PT_context_material(CyclesButtonsPanel, Panel): - bl_label = "" + bl_label = "Surface" bl_context = "material" bl_options = {'HIDE_HEADER'} @@ -400,8 +400,8 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): elif lamp.type == 'HEMI': layout.label(text="Not supported, interpreted as sun lamp.") -class CyclesLamp_PT_shader(CyclesButtonsPanel, Panel): - bl_label = "Shader" +class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel): + bl_label = "Nodes" bl_context = "data" @classmethod @@ -412,10 +412,10 @@ class CyclesLamp_PT_shader(CyclesButtonsPanel, Panel): layout = self.layout mat = context.lamp - panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Shader') + panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface') -class CyclesWorld_PT_shader(CyclesButtonsPanel, Panel): - bl_label = "Shader" +class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel): + bl_label = "Surface" bl_context = "world" @classmethod @@ -426,10 +426,39 @@ class CyclesWorld_PT_shader(CyclesButtonsPanel, Panel): layout = self.layout mat = context.world - panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Shader') + panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface') + +class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): + bl_label = "Volume" + bl_context = "world" + + @classmethod + def poll(cls, context): + return context.world and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + layout.active = False + + world = context.world + panel_node_draw(layout, world, 'OUTPUT_WORLD', 'Volume') + +class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel): + bl_label = "Surface" + bl_context = "material" -class CyclesMaterial_PT_shader(CyclesButtonsPanel, Panel): - bl_label = "Shader" + @classmethod + def poll(cls, context): + return context.material and CyclesButtonsPanel.poll(context) + + def draw(self, context): + layout = self.layout + + mat = context.material + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface') + +class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): + bl_label = "Volume" bl_context = "material" @classmethod @@ -438,9 +467,14 @@ class CyclesMaterial_PT_shader(CyclesButtonsPanel, Panel): def draw(self, context): layout = self.layout + layout.active = False mat = context.material - panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Shader') + cmat = mat.cycles + + panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume') + + layout.prop(cmat, "homogeneous_volume") class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel): bl_label = "Displacement" diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 11c89db3e59..f798d4ff44a 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -607,7 +607,7 @@ void BlenderSync::sync_materials() closure->input("Color")->value = get_float3(b_mat->diffuse_color()); out = graph->output(); - graph->connect(closure->output("BSDF"), out->input("Closure")); + graph->connect(closure->output("BSDF"), out->input("Surface")); } /* settings */ @@ -648,7 +648,7 @@ void BlenderSync::sync_world() closure->input("Color")->value = get_float3(b_world.horizon_color()); out = graph->output(); - graph->connect(closure->output("Background"), out->input("Closure")); + graph->connect(closure->output("Background"), out->input("Surface")); } shader->set_graph(graph); @@ -698,7 +698,7 @@ void BlenderSync::sync_lamps() closure->input("Strength")->value.x = b_lamp->energy()*10.0f; out = graph->output(); - graph->connect(closure->output("Emission"), out->input("Closure")); + graph->connect(closure->output("Emission"), out->input("Surface")); } shader->set_graph(graph); diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 7ca7f96d73b..c1bcbb067b5 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -482,7 +482,7 @@ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd, #else #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, 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); @@ -500,7 +500,7 @@ __device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int pa #else #ifdef __SVM__ - svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, 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); @@ -562,7 +562,7 @@ __device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd, #ifdef __OSL__ OSLShader::eval_volume(kg, sd, randb, path_flag); #else - svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, randb, path_flag); + svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag); #endif #endif } diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index a1e420e8ac1..7d37bb09d71 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -32,8 +32,9 @@ set(osl_sources node_musgrave_texture.osl node_blend_weight_texture.osl node_noise_texture.osl - node_output_closure.osl node_output_displacement.osl + node_output_surface.osl + node_output_volume.osl node_sky_texture.osl node_stucci_texture.osl node_texture_coordinate.osl diff --git a/intern/cycles/kernel/osl/nodes/node_output_closure.osl b/intern/cycles/kernel/osl/nodes/node_output_closure.osl deleted file mode 100644 index 075cf35f60b..00000000000 --- a/intern/cycles/kernel/osl/nodes/node_output_closure.osl +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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" - -surface node_output_surface(closure color Closure = background()) -{ - Ci = Closure; -} - diff --git a/intern/cycles/kernel/osl/nodes/node_output_surface.osl b/intern/cycles/kernel/osl/nodes/node_output_surface.osl new file mode 100644 index 00000000000..6efaf91121b --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_surface.osl @@ -0,0 +1,25 @@ +/* + * 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" + +surface node_output_surface(closure color Surface = background()) +{ + Ci = Surface; +} + diff --git a/intern/cycles/kernel/osl/nodes/node_output_volume.osl b/intern/cycles/kernel/osl/nodes/node_output_volume.osl new file mode 100644 index 00000000000..18094242dc7 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_output_volume.osl @@ -0,0 +1,25 @@ +/* + * 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" + +volume node_output_volume(closure color Volume = background()) +{ + Ci = Volume; +} + diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 42e63552063..18a8e974492 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -218,8 +218,8 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int /* execute shader for this point */ int shader = sd->shader & SHADER_MASK; - if(kg->osl.state[shader]) - ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.state[shader]), *globals); + if(kg->osl.surface_state[shader]) + ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[shader]), *globals); /* flatten closure tree */ sd->num_closure = 0; @@ -355,8 +355,8 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int /* execute shader */ int shader = sd->shader & SHADER_MASK; - if(kg->osl.state[shader]) - ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.state[shader]), *globals); + 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; diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 4e0ed25baea..62e02f1a01a 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -166,7 +166,8 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT switch(node.x) { case NODE_SHADER_JUMP: { - if(type == SHADER_TYPE_CLOSURE) offset = node.y; + if(type == SHADER_TYPE_SURFACE) offset = node.y; + else if(type == SHADER_TYPE_VOLUME) offset = node.z; else if(type == SHADER_TYPE_DISPLACEMENT) offset = node.w; else return; break; diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index fb52a923b0c..baec3d7ac6e 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -257,7 +257,8 @@ typedef enum NodeBlendWeightType { } NodeBlendWeightType; typedef enum ShaderType { - SHADER_TYPE_CLOSURE, + SHADER_TYPE_SURFACE, + SHADER_TYPE_VOLUME, SHADER_TYPE_DISPLACEMENT } ShaderType; diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 1609bfe8791..e6aff8590ad 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -2028,7 +2028,8 @@ void BlendWeightNode::compile(OSLCompiler& compiler) OutputNode::OutputNode() : ShaderNode("output") { - add_input("Closure", SHADER_SOCKET_CLOSURE); + add_input("Surface", SHADER_SOCKET_CLOSURE); + add_input("Volume", SHADER_SOCKET_CLOSURE); add_input("Displacement", SHADER_SOCKET_FLOAT); } @@ -2046,8 +2047,10 @@ void OutputNode::compile(SVMCompiler& compiler) void OutputNode::compile(OSLCompiler& compiler) { - if(compiler.output_type() == SHADER_TYPE_CLOSURE) - compiler.add(this, "node_output_closure"); + if(compiler.output_type() == SHADER_TYPE_SURFACE) + compiler.add(this, "node_output_surface"); + else if(compiler.output_type() == SHADER_TYPE_VOLUME) + compiler.add(this, "node_output_volume"); else if(compiler.output_type() == SHADER_TYPE_DISPLACEMENT) compiler.add(this, "node_output_displacement"); } diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 492529c30a2..b0173334c76 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -102,7 +102,7 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene /* setup shader engine */ og->ss = ss; int background_id = scene->shader_manager->get_shader_id(scene->default_background); - og->background_state = og->state[background_id]; + og->background_state = og->surface_state[background_id]; og->use = true; tls_create(OSLGlobals::ThreadData, og->thread_data); @@ -128,7 +128,8 @@ void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) tls_delete(OSLGlobals::ThreadData, og->thread_data); - og->state.clear(); + og->surface_state.clear(); + og->volume_state.clear(); og->displacement_state.clear(); og->background_state.reset(); } @@ -138,7 +139,7 @@ void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) OSLCompiler::OSLCompiler(void *shadingsys_) { shadingsys = shadingsys_; - current_type = SHADER_TYPE_CLOSURE; + current_type = SHADER_TYPE_SURFACE; current_shader = NULL; background = false; } @@ -169,7 +170,9 @@ bool OSLCompiler::node_skip_input(ShaderNode *node, ShaderInput *input) depending on the current shader type */ if(node->name == ustring("output")) { - if(strcmp(input->name, "Closure") == 0 && current_type != SHADER_TYPE_CLOSURE) + if(strcmp(input->name, "Surface") == 0 && current_type != SHADER_TYPE_SURFACE) + return true; + if(strcmp(input->name, "Volume") == 0 && current_type != SHADER_TYPE_VOLUME) return true; if(strcmp(input->name, "Displacement") == 0 && current_type != SHADER_TYPE_DISPLACEMENT) return true; @@ -220,7 +223,9 @@ void OSLCompiler::add(ShaderNode *node, const char *name) * because "volume" and "displacement" don't work yet in OSL. the shaders * work fine, but presumably these values would be used for more strict * checking, so when that is fixed, we should update the code here too. */ - if(current_type == SHADER_TYPE_CLOSURE) + if(current_type == SHADER_TYPE_SURFACE) + ss->Shader("surface", name, id(node).c_str()); + else if(current_type == SHADER_TYPE_VOLUME) ss->Shader("surface", name, id(node).c_str()); else if(current_type == SHADER_TYPE_DISPLACEMENT) ss->Shader("surface", name, id(node).c_str()); @@ -341,8 +346,6 @@ void OSLCompiler::generate_nodes(const set& nodes) current_shader->has_surface_emission = true; if(node->name == ustring("transparent")) current_shader->has_surface_transparent = true; - if(node->name == ustring("volume")) - current_shader->has_volume = true; } else nodes_done = false; @@ -362,9 +365,15 @@ void OSLCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty ShaderNode *output = graph->output(); set dependencies; - if(type == SHADER_TYPE_CLOSURE) { + if(type == SHADER_TYPE_SURFACE) { /* generate surface shader */ - find_dependencies(dependencies, output->input("Closure")); + find_dependencies(dependencies, output->input("Surface")); + generate_nodes(dependencies); + output->compile(*this); + } + else if(type == SHADER_TYPE_VOLUME) { + /* generate volume shader */ + find_dependencies(dependencies, output->input("Volume")); generate_nodes(dependencies); output->compile(*this); } @@ -387,7 +396,7 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) ShaderNode *output = (graph)? graph->output(): NULL; /* copy graph for shader with bump mapping */ - if(output->input("Closure")->link && output->input("Displacement")->link) + if(output->input("Surface")->link && output->input("Displacement")->link) if(!shader->graph_bump) shader->graph_bump = shader->graph->copy(); @@ -398,29 +407,46 @@ void OSLCompiler::compile(OSLGlobals *og, Shader *shader) current_shader = shader; + shader->has_surface = false; shader->has_surface_emission = false; shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; /* generate surface shader */ - if(graph && output->input("Closure")->link) { - compile_type(shader, shader->graph, SHADER_TYPE_CLOSURE); - og->state.push_back(ss->state()); + if(graph && output->input("Surface")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); + og->surface_state.push_back(ss->state()); if(shader->graph_bump) { ss->clear_state(); - compile_type(shader, shader->graph_bump, SHADER_TYPE_CLOSURE); - og->state.push_back(ss->state()); + compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); + og->surface_state.push_back(ss->state()); } else - og->state.push_back(ss->state()); + og->surface_state.push_back(ss->state()); + + ss->clear_state(); + + shader->has_surface = true; + } + else { + og->surface_state.push_back(OSL::ShadingAttribStateRef()); + og->surface_state.push_back(OSL::ShadingAttribStateRef()); + } + + /* generate volume shader */ + if(graph && output->input("Volume")->link) { + compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); + shader->has_volume = true; + og->volume_state.push_back(ss->state()); + og->volume_state.push_back(ss->state()); ss->clear_state(); } else { - og->state.push_back(OSL::ShadingAttribStateRef()); - og->state.push_back(OSL::ShadingAttribStateRef()); + og->volume_state.push_back(OSL::ShadingAttribStateRef()); + og->volume_state.push_back(OSL::ShadingAttribStateRef()); } /* generate displacement shader */ diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index c0d450db22b..6e827ec94bb 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -42,6 +42,7 @@ Shader::Shader() sample_as_light = true; homogeneous_volume = false; + has_surface = false; has_surface_transparent = false; has_surface_emission = false; has_volume = false; @@ -209,7 +210,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); out = graph->output(); - graph->connect(closure->output("BSDF"), out->input("Closure")); + graph->connect(closure->output("BSDF"), out->input("Surface")); shader = new Shader(); shader->name = "default_surface"; @@ -227,7 +228,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Strength")->value.x = 0.0f; out = graph->output(); - graph->connect(closure->output("Emission"), out->input("Closure")); + graph->connect(closure->output("Emission"), out->input("Surface")); shader = new Shader(); shader->name = "default_light"; @@ -244,7 +245,7 @@ void ShaderManager::add_default(Scene *scene) closure->input("Color")->value = make_float3(0.8f, 0.8f, 0.8f); out = graph->output(); - graph->connect(closure->output("Background"), out->input("Closure")); + graph->connect(closure->output("Background"), out->input("Surface")); shader = new Shader(); shader->name = "default_background"; diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h index 17ffc75924b..45efa123ef6 100644 --- a/intern/cycles/render/shader.h +++ b/intern/cycles/render/shader.h @@ -39,8 +39,8 @@ struct float3; /* Shader describing the appearance of a Mesh, Light or Background. * - * While there is only a single shader graph, it has two outputs: shader, - * displacement, that the shader manager will compile and execute + * While there is only a single shader graph, it has three outputs: surface, + * volume and displacement, that the shader manager will compile and execute * separately. */ class Shader { @@ -65,10 +65,11 @@ public: bool need_update_attributes; /* information about shader after compiling */ + bool has_surface; bool has_surface_emission; bool has_surface_transparent; - bool has_displacement; bool has_volume; + bool has_displacement; /* requested mesh attributes */ AttributeRequestSet attributes; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index 054989bbc28..a1687ae5e29 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -107,7 +107,7 @@ SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_man image_manager = image_manager_; sunsky = NULL; max_stack_use = 0; - current_type = SHADER_TYPE_CLOSURE; + current_type = SHADER_TYPE_SURFACE; current_shader = NULL; background = false; mix_weight_offset = SVM_STACK_INVALID; @@ -467,8 +467,6 @@ void SVMCompiler::generate_closure(ShaderNode *node, set& done) current_shader->has_surface_emission = true; if(node->name == ustring("transparent")) current_shader->has_surface_transparent = true; - if(node->name == ustring("volume")) - current_shader->has_volume = true; /* end node is added outside of this */ } @@ -579,8 +577,10 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty ShaderNode *node = graph->output(); ShaderInput *clin = NULL; - if(type == SHADER_TYPE_CLOSURE) - clin = node->input("Closure"); + if(type == SHADER_TYPE_SURFACE) + clin = node->input("Surface"); + else if(type == SHADER_TYPE_VOLUME) + clin = node->input("Volume"); else if(type == SHADER_TYPE_DISPLACEMENT) clin = node->input("Displacement"); else @@ -599,9 +599,15 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty if(clin->link) { bool generate = false; - if(type == SHADER_TYPE_CLOSURE) { + if(type == SHADER_TYPE_SURFACE) { /* generate surface shader */ generate = true; + shader->has_surface = true; + } + else if(type == SHADER_TYPE_VOLUME) { + /* generate volume shader */ + generate = true; + shader->has_volume = true; } else if(type == SHADER_TYPE_DISPLACEMENT) { /* generate displacement shader */ @@ -630,7 +636,7 @@ void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int in /* copy graph for shader with bump mapping */ ShaderNode *node = shader->graph->output(); - if(node->input("Closure")->link && node->input("Displacement")->link) + if(node->input("Surface")->link && node->input("Displacement")->link) if(!shader->graph_bump) shader->graph_bump = shader->graph->copy(); @@ -641,23 +647,30 @@ void SVMCompiler::compile(Shader *shader, vector& global_svm_nodes, int in current_shader = shader; + shader->has_surface = false; shader->has_surface_emission = false; shader->has_surface_transparent = false; shader->has_volume = false; shader->has_displacement = false; /* generate surface shader */ - compile_type(shader, shader->graph, SHADER_TYPE_CLOSURE); + compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); global_svm_nodes[index*2 + 0].y = global_svm_nodes.size(); global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); if(shader->graph_bump) { - compile_type(shader, shader->graph_bump, SHADER_TYPE_CLOSURE); + compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); } + /* generate volume shader */ + compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); + global_svm_nodes[index*2 + 0].z = global_svm_nodes.size(); + global_svm_nodes[index*2 + 1].z = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); + /* generate displacement shader */ compile_type(shader, shader->graph, SHADER_TYPE_DISPLACEMENT); global_svm_nodes[index*2 + 0].w = global_svm_nodes.size(); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 77f786d2105..1ed23361581 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2105,8 +2105,12 @@ static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) if(strcmp(sock->name, "Shader2") == 0) strcpy(sock->name, "Shader"); - if(strcmp(sock->name, "Surface") == 0) - strcpy(sock->name, "Shader"); + if(node->type == SH_NODE_OUTPUT_MATERIAL || + node->type == SH_NODE_OUTPUT_WORLD || + node->type == SH_NODE_OUTPUT_LAMP) { + if(strcmp(sock->name, "Shader") == 0) + strcpy(sock->name, "Surface"); + } if(strcmp(sock->name, "Fresnel") == 0) { strcpy(sock->name, "IOR"); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index 6ca6a862591..4a9d793aaad 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -2114,8 +2114,8 @@ void node_light_path( /* output */ -void node_output_material(vec4 shader, float displacement, out vec4 result) +void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result) { - result = shader; + result = surface; } diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index 4898a3cbdf7..e284c42532b 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,1453 +1,1453 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 46274; +int datatoc_gpu_shader_material_glsl_size= 46289; 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,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,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, + 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,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,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,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, + 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, - 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,100,105,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, +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,100,105,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,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, +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, 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, + 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, 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, +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,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, +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,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, +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,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, +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,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, +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, 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,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101, -119, 73,110,118, 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, + 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,109, 86,105,101,119, + 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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,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,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, + 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,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,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, +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,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, +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, 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, 10, 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,125, 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, -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,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 10, 9, 47, 42, 32,100,105,114,101, 99, +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, 10, 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,125, 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,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, 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,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, -102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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, 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, 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, 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, - 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,100,105,115,116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, -108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102, -108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101,110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32, -120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, - 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, - 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32, -112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, - 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, - 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, - 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99, -111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40, -110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9,122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, - 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, - 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, - 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, - 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, - 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, - 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, - 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, -120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, - 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, - 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116, -117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, - 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, - 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, - 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9, -125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, - 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, - 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, - 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, - 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32, -102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117, -116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32, -102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, -105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, - 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, - 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32, -102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108, -111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32, -116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, 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,104, 97,100, -101,114, 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,104, 97,100,101,114, 59, 10,125, 10, 10, + 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,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, + 40, 48, 46, 48, 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, 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,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,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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, 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, 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, + 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,100,105,115, +116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101, +110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32, +112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, + 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32, +122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, + 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, + 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, + 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, + 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, + 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, +122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, + 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45, +120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, + 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, + 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, + 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, + 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, + 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, + 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, +105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, + 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, + 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, + 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, + 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, + 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, + 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, + 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, + 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, + 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, + 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, + 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98, +117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, + 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, + 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32, +102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, +108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, + 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/nodes/shader/nodes/node_shader_output_lamp.c b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c index 4a7c033ad84..33b6c49a356 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c @@ -32,7 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_lamp_in[]= { - { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c index a3dbb103f21..8d12380ca67 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -32,7 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_material_in[]= { - { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Surface"}, + { SOCK_SHADER, 1, "Volume"}, { SOCK_FLOAT, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c index 7bc06401dd0..72cc5c0fe1a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.c +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -32,7 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_output_world_in[]= { - { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From 19a42adc61877dfbc584ef84f52bdbfa5061b43c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 16:20:41 +0000 Subject: Cycles: fix nodes gone missing after new/old shading node compatibility changes. --- source/blender/blenkernel/intern/node.c | 3 +++ source/blender/editors/interface/interface_node.c | 14 ++++++++------ source/blender/editors/space_node/node_header.c | 17 ++++++++++------- .../blender/nodes/shader/nodes/node_shader_valToRgb.c | 2 +- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 307a30127f8..7392d6fc8fc 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1924,6 +1924,9 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_tex_marble(ntypelist); register_node_type_sh_tex_clouds(ntypelist); register_node_type_sh_tex_wood(ntypelist); + register_node_type_sh_tex_stucci(ntypelist); + register_node_type_sh_tex_noise(ntypelist); + register_node_type_sh_tex_distnoise(ntypelist); register_node_type_sh_tex_musgrave(ntypelist); } diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 6c17a1d92ba..80473025c7d 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -344,7 +344,7 @@ static void ui_node_menu_column(Main *bmain, NodeLinkArg *arg, uiLayout *layout, char name[UI_MAX_NAME_STR]; int i, j, num = 0; - if(!(ntype->compatibility & compatibility)) + if(compatibility && !(ntype->compatibility & compatibility)) continue; if(ntype->nclass != nclass) @@ -403,12 +403,14 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_ uiLayout *split, *column; NodeLinkArg *arg = (NodeLinkArg*)but->func_argN; bNodeSocket *sock = arg->sock; - int compatibility; + int compatibility= 0; - if(scene_use_new_shading_nodes(scene)) - compatibility= NODE_NEW_SHADING; - else - compatibility= NODE_OLD_SHADING; + if(arg->ntree->type == NTREE_SHADER) { + if(scene_use_new_shading_nodes(scene)) + compatibility= NODE_NEW_SHADING; + else + compatibility= NODE_OLD_SHADING; + } uiBlockSetCurLayout(block, layout); split= uiLayoutSplit(layout, 0, 0); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 56a16793ece..82b78840d0f 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -175,7 +175,7 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) SpaceNode *snode= CTX_wm_space_node(C); bNodeTree *ntree; int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass); - int event, compatibility; + int event, compatibility= 0; ntree = snode->nodetree; @@ -184,10 +184,12 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) return; } - if(scene_use_new_shading_nodes(scene)) - compatibility= NODE_NEW_SHADING; - else - compatibility= NODE_OLD_SHADING; + if(ntree->type == NTREE_SHADER) { + if(scene_use_new_shading_nodes(scene)) + compatibility= NODE_NEW_SHADING; + else + compatibility= NODE_OLD_SHADING; + } if (nodeclass==NODE_CLASS_GROUP) { bNodeTree *ngroup; @@ -219,8 +221,9 @@ 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 && (ntype->compatibility&compatibility)) - uiItemV(layout, ntype->name, 0, ntype->type); + if (ntype->nclass==nodeclass && ntype->name) + if (!compatibility || (ntype->compatibility & compatibility)) + uiItemV(layout, ntype->name, 0, ntype->type); } } } diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c index cc31d301894..4b276f0f214 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c @@ -119,7 +119,7 @@ void register_node_type_sh_rgbtobw(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out); node_type_size(&ntype, 80, 40, 120); node_type_exec(&ntype, node_shader_exec_rgbtobw); -- cgit v1.2.3 From 9c959d98fe5b873f2538882e041f00b6cd90d7cf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 20:13:35 +0000 Subject: Cycles: make Attribute node work, code for it was implemented in kernel, only missing was the ability to specify the attribute name in the node. This makes it possible to use multiple uv or vertex color layers now. --- intern/cycles/blender/blender_mesh.cpp | 17 +++--- intern/cycles/blender/blender_shader.cpp | 3 +- source/blender/editors/space_node/drawnode.c | 8 +++ source/blender/makesdna/DNA_node_types.h | 4 ++ .../blender/makesrna/intern/rna_nodetree_types.h | 60 +++++++++++----------- source/blender/nodes/shader/node_shader_tree.c | 1 - .../nodes/shader/nodes/node_shader_attribute.c | 17 ++++-- 7 files changed, 65 insertions(+), 45 deletions(-) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 0dc0b91be79..af14bad6402 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -121,17 +121,18 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< size_t i = 0; for(l->data.begin(c); c != l->data.end(); ++c, ++i) { - fdata[0] = get_float3(c->color1()); - fdata[1] = get_float3(c->color2()); - fdata[2] = get_float3(c->color3()); - fdata += 3; + fdata[0] = color_srgb_to_scene_linear(get_float3(c->color1())); + fdata[1] = color_srgb_to_scene_linear(get_float3(c->color2())); + fdata[2] = color_srgb_to_scene_linear(get_float3(c->color3())); if(nverts[i] == 4) { - fdata[0] = get_float3(c->color1()); - fdata[1] = get_float3(c->color3()); - fdata[2] = get_float3(c->color4()); - fdata += 3; + fdata[3] = fdata[0]; + fdata[4] = fdata[2]; + fdata[5] = color_srgb_to_scene_linear(get_float3(c->color4())); + fdata += 6; } + else + fdata += 3; } } } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index f798d4ff44a..9e3095f23e2 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -196,8 +196,9 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * break; } case BL::ShaderNode::type_ATTRIBUTE: { + BL::ShaderNodeAttribute b_attr_node(b_node); AttributeNode *attr = new AttributeNode(); - attr->attribute = ""; + attr->attribute = b_attr_node.attribute_name(); node = attr; break; } diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 2f15cc9130b..a0e3817ae27 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1006,6 +1006,11 @@ static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA } }*/ +static void node_shader_buts_attribute(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "attribute_name", 0, "Name", ICON_NONE); +} + static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA *ptr) { //uiItemR(layout, ptr, "image", 0, "", ICON_NONE); @@ -1170,6 +1175,9 @@ static void node_shader_set_butfunc(bNodeType *ntype) case SH_NODE_GEOM: ntype->uifunc= node_shader_buts_geometry; break; + case SH_NODE_ATTRIBUTE: + ntype->uifunc= node_shader_buts_attribute; + break; case SH_NODE_TEX_SKY: ntype->uifunc= node_shader_buts_tex_sky; break; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 6d1ff8dae59..b05d688e0bc 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -487,6 +487,10 @@ typedef struct NodeTexWood { int hard; } NodeTexWood; +typedef struct NodeShaderAttribute { + char name[64]; +} NodeShaderAttribute; + /* TEX_output */ typedef struct TexNodeOutput { char name[32]; diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index f837a2f6898..669be37931a 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -42,7 +42,7 @@ DefNode( ShaderNode, SH_NODE_VALTORGB, def_colorramp, "VALTO DefNode( ShaderNode, SH_NODE_RGBTOBW, 0, "RGBTOBW", RGBToBW, "RGB to BW", "" ) DefNode( ShaderNode, SH_NODE_TEXTURE, def_texture, "TEXTURE", Texture, "Texture", "" ) DefNode( ShaderNode, SH_NODE_NORMAL, 0, "NORMAL", Normal, "Normal", "" ) -DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) +DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) DefNode( ShaderNode, SH_NODE_MAPPING, def_sh_mapping, "MAPPING", Mapping, "Mapping", "" ) DefNode( ShaderNode, SH_NODE_CURVE_VEC, def_vector_curve, "CURVE_VEC", VectorCurve, "Vector Curve", "" ) DefNode( ShaderNode, SH_NODE_CURVE_RGB, def_rgb_curve, "CURVE_RGB", RGBCurve, "RGB Curve", "" ) @@ -64,35 +64,35 @@ DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) -DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") -DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") -DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") -DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") -DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") -DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") -DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") -DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") -DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") -DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") -DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") +DefNode( ShaderNode, SH_NODE_ATTRIBUTE, def_sh_attribute, "ATTRIBUTE", Attribute, "Attribute", "") +DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") +DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") +DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") +DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") +DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") +DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") +DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") +DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" ) diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index 6fc2cc4bee9..bb2e82fb033 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -244,4 +244,3 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) 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/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.c index 131cfc3d285..57f8aed474c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_attribute.c +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c @@ -32,7 +32,9 @@ /* **************** OUTPUT ******************** */ static bNodeSocketTemplate sh_node_attribute_out[]= { - { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_RGBA, 0, "Color"}, + { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX}, { -1, 0, "" } }; @@ -40,21 +42,26 @@ static void node_shader_exec_attribute(void *UNUSED(data), bNode *UNUSED(node), { } +static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute"); + node->storage = attr; +} /* node type definition */ void register_node_type_sh_attribute(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, 0); + node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, NODE_OPTIONS); node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, NULL); - node_type_storage(&ntype, "", NULL, NULL); + node_type_init(&ntype, node_shader_init_attribute); + node_type_storage(&ntype, "NodeShaderAttribute", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_attribute); node_type_gpu(&ntype, NULL); nodeRegisterType(lb, &ntype); -}; +} -- cgit v1.2.3 From d293d74942a8f48d4de6c53f4300540bd0035c34 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 20:43:45 +0000 Subject: Cycles: more tweaks to get old/new shading systems working better together, for now also made non-material/world/lamp stuff use old texture datablocks, no time to get this fully working now. Still some python tweaks to do to ensure the right panels show. --- source/blender/editors/include/ED_node.h | 2 +- source/blender/editors/object/object_add.c | 8 +- source/blender/editors/render/render_shading.c | 24 +- .../editors/space_buttons/buttons_context.c | 269 +++++++++++---------- .../editors/space_buttons/buttons_texture.c | 12 + source/blender/editors/space_node/node_draw.c | 2 - source/blender/editors/space_node/node_edit.c | 27 +-- source/blender/makesrna/intern/rna_ID.c | 4 +- source/blender/makesrna/intern/rna_lamp.c | 11 +- source/blender/makesrna/intern/rna_material.c | 11 +- source/blender/makesrna/intern/rna_nodetree.c | 12 + source/blender/makesrna/intern/rna_render.c | 2 +- source/blender/makesrna/intern/rna_texture.c | 13 +- source/blender/makesrna/intern/rna_world.c | 11 +- source/blender/nodes/texture/node_texture_tree.c | 76 +++--- .../blender/render/intern/source/render_texture.c | 4 +- 16 files changed, 262 insertions(+), 226 deletions(-) diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index f2eab51c5b9..37d2f65ee23 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -53,7 +53,7 @@ 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); /* node_edit.c */ -void ED_node_shader_default(struct ID *id); +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); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 8e3776e438e..39435065632 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -77,6 +77,7 @@ #include "BKE_particle.h" #include "BKE_report.h" #include "BKE_sca.h" +#include "BKE_scene.h" #include "BKE_speaker.h" #include "BKE_texture.h" @@ -701,6 +702,7 @@ static const char *get_lamp_defname(int type) static int object_lamp_add_exec(bContext *C, wmOperator *op) { + Scene *scene= CTX_data_scene(C); Object *ob; Lamp *la; int type= RNA_enum_get(op->ptr, "type"); @@ -719,8 +721,10 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op) rename_id(&ob->id, get_lamp_defname(type)); rename_id(&la->id, get_lamp_defname(type)); - ED_node_shader_default(&la->id); - la->use_nodes= 1; + if(scene_use_new_shading_nodes(scene)) { + ED_node_shader_default(scene, &la->id); + la->use_nodes= 1; + } return OPERATOR_FINISHED; } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 9ebe2014f92..4ae5f8bdde4 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -366,6 +366,7 @@ void OBJECT_OT_material_slot_copy(wmOperatorType *ot) static int new_material_exec(bContext *C, wmOperator *UNUSED(op)) { + Scene *scene= CTX_data_scene(C); Material *ma= CTX_data_pointer_get_type(C, "material", &RNA_Material).data; PointerRNA ptr, idptr; PropertyRNA *prop; @@ -376,8 +377,11 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op)) } else { ma= add_material("Material"); - ED_node_shader_default(&ma->id); - ma->use_nodes= 1; + + if(scene_use_new_shading_nodes(scene)) { + ED_node_shader_default(scene, &ma->id); + ma->use_nodes= 1; + } } /* hook into UI */ @@ -421,14 +425,10 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op)) PropertyRNA *prop; /* add or copy texture */ - if(tex) { + if(tex) tex= copy_texture(tex); - } - else { + else tex= add_texture("Texture"); - ED_node_shader_default(&tex->id); - tex->use_nodes= 1; - } /* hook into UI */ uiIDContextProperty(C, &ptr, &prop); @@ -466,6 +466,7 @@ void TEXTURE_OT_new(wmOperatorType *ot) static int new_world_exec(bContext *C, wmOperator *UNUSED(op)) { + Scene *scene= CTX_data_scene(C); World *wo= CTX_data_pointer_get_type(C, "world", &RNA_World).data; PointerRNA ptr, idptr; PropertyRNA *prop; @@ -476,8 +477,11 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op)) } else { wo= add_world("World"); - ED_node_shader_default(&wo->id); - wo->use_nodes= 1; + + if(scene_use_new_shading_nodes(scene)) { + ED_node_shader_default(scene, &wo->id); + wo->use_nodes= 1; + } } /* hook into UI */ diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 4f00a5aeeb9..adcba64609e 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -234,13 +234,11 @@ static int buttons_context_path_material(ButsContextPath *path, int for_texture) if(for_texture && give_current_material_texture_node(ma)) return 1; -#if 0 ma= give_node_material(ma); if(ma) { RNA_id_pointer_create(&ma->id, &path->ptr[path->len]); path->len++; } -#endif return 1; } } @@ -371,139 +369,141 @@ static int buttons_context_path_brush(ButsContextPath *path) static int buttons_context_path_texture(ButsContextPath *path, ButsContextTexture *ct) { - PointerRNA *ptr= &path->ptr[path->len-1]; - ID *id; - - /* if we already have a (pinned) texture, we're done */ - if(RNA_struct_is_a(ptr->type, &RNA_Texture)) - return 1; - - if(!(ct && ct->user)) - return 0; - - id= ct->user->id; - - if(id) { - if(GS(id->name) == ID_BR) - buttons_context_path_brush(path); - else if(GS(id->name) == ID_MA) - buttons_context_path_material(path, 0); - else if(GS(id->name) == ID_WO) - buttons_context_path_world(path); - else if(GS(id->name) == ID_LA) - buttons_context_path_data(path, OB_LAMP); - else if(GS(id->name) == ID_PA) - buttons_context_path_particle(path); - else if(GS(id->name) == ID_OB) - buttons_context_path_object(path); - } - - if(ct->texture) { - RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); - path->len++; - } - - return 1; - + if(ct) { + /* new shading system */ + PointerRNA *ptr= &path->ptr[path->len-1]; + ID *id; -#if 0 - Material *ma; - Lamp *la; - Brush *br; - World *wo; - ParticleSystem *psys; - Tex *tex; - PointerRNA *ptr= &path->ptr[path->len-1]; - int orig_len = path->len; + /* if we already have a (pinned) texture, we're done */ + if(RNA_struct_is_a(ptr->type, &RNA_Texture)) + return 1; - /* if we already have a (pinned) texture, we're done */ - if(RNA_struct_is_a(ptr->type, &RNA_Texture)) { - return 1; - } - /* try brush */ - if((path->tex_ctx == SB_TEXC_BRUSH) && buttons_context_path_brush(path)) { - br= path->ptr[path->len-1].data; + if(!ct->user) + return 0; - if(br) { - tex= give_current_brush_texture(br); - - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + id= ct->user->id; + + if(id) { + if(GS(id->name) == ID_BR) + buttons_context_path_brush(path); + else if(GS(id->name) == ID_MA) + buttons_context_path_material(path, 0); + else if(GS(id->name) == ID_WO) + buttons_context_path_world(path); + else if(GS(id->name) == ID_LA) + buttons_context_path_data(path, OB_LAMP); + else if(GS(id->name) == ID_PA) + buttons_context_path_particle(path); + else if(GS(id->name) == ID_OB) + buttons_context_path_object(path); + } + + if(ct->texture) { + RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); path->len++; - return 1; } - } - /* try world */ - if((path->tex_ctx == SB_TEXC_WORLD) && buttons_context_path_world(path)) { - wo= path->ptr[path->len-1].data; - if(wo && GS(wo->id.name)==ID_WO) { - tex= give_current_world_texture(wo); - - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; + return 1; + } + else { + /* old shading system */ + Material *ma; + Lamp *la; + Brush *br; + World *wo; + ParticleSystem *psys; + Tex *tex; + PointerRNA *ptr= &path->ptr[path->len-1]; + int orig_len = path->len; + + /* if we already have a (pinned) texture, we're done */ + if(RNA_struct_is_a(ptr->type, &RNA_Texture)) { return 1; } - } - /* try particles */ - if((path->tex_ctx == SB_TEXC_PARTICLES) && buttons_context_path_particle(path)) { - if(path->ptr[path->len-1].type == &RNA_ParticleSettings) { - ParticleSettings *part = path->ptr[path->len-1].data; + /* try brush */ + if((path->tex_ctx == SB_TEXC_BRUSH) && buttons_context_path_brush(path)) { + br= path->ptr[path->len-1].data; + + if(br) { + tex= give_current_brush_texture(br); - tex= give_current_particle_texture(part); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } - else { - psys= path->ptr[path->len-1].data; + /* try world */ + if((path->tex_ctx == SB_TEXC_WORLD) && buttons_context_path_world(path)) { + wo= path->ptr[path->len-1].data; - if(psys && psys->part && GS(psys->part->id.name)==ID_PA) { - tex= give_current_particle_texture(psys->part); + if(wo && GS(wo->id.name)==ID_WO) { + tex= give_current_world_texture(wo); RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); path->len++; return 1; } } - } - /* try material */ - if(buttons_context_path_material(path, 1)) { - ma= path->ptr[path->len-1].data; + /* try particles */ + if((path->tex_ctx == SB_TEXC_PARTICLES) && buttons_context_path_particle(path)) { + if(path->ptr[path->len-1].type == &RNA_ParticleSettings) { + ParticleSettings *part = path->ptr[path->len-1].data; + + tex= give_current_particle_texture(part); + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + else { + psys= path->ptr[path->len-1].data; - if(ma) { - tex= give_current_material_texture(ma); + if(psys && psys->part && GS(psys->part->id.name)==ID_PA) { + tex= give_current_particle_texture(psys->part); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + } } - } - /* try lamp */ - if(buttons_context_path_data(path, OB_LAMP)) { - la= path->ptr[path->len-1].data; + /* try material */ + if(buttons_context_path_material(path, 1)) { + ma= path->ptr[path->len-1].data; - if(la) { - tex= give_current_lamp_texture(la); + if(ma) { + tex= give_current_material_texture(ma); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } - } - /* try brushes again in case of no material, lamp, etc */ - path->len = orig_len; - if(buttons_context_path_brush(path)) { - br= path->ptr[path->len-1].data; - - if(br) { - tex= give_current_brush_texture(br); + /* try lamp */ + if(buttons_context_path_data(path, OB_LAMP)) { + la= path->ptr[path->len-1].data; + + if(la) { + tex= give_current_lamp_texture(la); + + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + } + /* try brushes again in case of no material, lamp, etc */ + path->len = orig_len; + if(buttons_context_path_brush(path)) { + br= path->ptr[path->len-1].data; - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + if(br) { + tex= give_current_brush_texture(br); + + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } } -#endif /* no path to a texture possible */ return 0; @@ -747,9 +747,15 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r } else if(CTX_data_equals(member, "texture")) { ButsContextTexture *ct= sbuts->texuser; - - if(ct) + + if(ct) { + /* new shading system */ CTX_data_pointer_set(result, &ct->texture->id, &RNA_Texture, ct->texture); + } + else { + /* old shading system */ + set_pointer_type(path, result, &RNA_Texture); + } return 1; } @@ -772,7 +778,10 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r else if(CTX_data_equals(member, "texture_user")) { ButsContextTexture *ct= sbuts->texuser; - if(ct && ct->user && ct->user->ptr.data) { + if(!ct) + return 0; /* old shading system */ + + if(ct->user && ct->user->ptr.data) { ButsTextureUser *user= ct->user; CTX_data_pointer_set(result, user->ptr.id.data, user->ptr.type, user->ptr.data); } @@ -782,29 +791,36 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r else if(CTX_data_equals(member, "texture_node")) { ButsContextTexture *ct= sbuts->texuser; - if(ct && ct->user && ct->user->node) - CTX_data_pointer_set(result, &ct->user->ntree->id, &RNA_Node, ct->user->node); + if(ct) { + /* new shading system */ + if(ct->user && ct->user->node) + CTX_data_pointer_set(result, &ct->user->ntree->id, &RNA_Node, ct->user->node); - return 1; - } -#if 0 - else if(CTX_data_equals(member, "texture_node")) { - PointerRNA *ptr; + return 1; + } + else { + /* old shading system */ + PointerRNA *ptr; - if((ptr=get_pointer_type(path, &RNA_Material))) { - Material *ma= ptr->data; + if((ptr=get_pointer_type(path, &RNA_Material))) { + Material *ma= ptr->data; - if(ma) { - bNode *node= give_current_material_texture_node(ma); - CTX_data_pointer_set(result, &ma->id, &RNA_Node, node); + if(ma) { + bNode *node= give_current_material_texture_node(ma); + CTX_data_pointer_set(result, &ma->id, &RNA_Node, node); + } } - } - return 1; + return 1; + } } else if(CTX_data_equals(member, "texture_slot")) { + ButsContextTexture *ct= sbuts->texuser; PointerRNA *ptr; + if(ct) + return 0; /* new shading system */ + if((ptr=get_pointer_type(path, &RNA_Material))) { Material *ma= ptr->data; @@ -851,7 +867,6 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } -#endif else if(CTX_data_equals(member, "bone")) { set_pointer_type(path, result, &RNA_Bone); return 1; diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c index dc013fc952b..dd9f3c57896 100644 --- a/source/blender/editors/space_buttons/buttons_texture.c +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -58,6 +58,7 @@ #include "BKE_node.h" #include "BKE_paint.h" #include "BKE_particle.h" +#include "BKE_scene.h" #include "RNA_access.h" @@ -252,6 +253,17 @@ void buttons_texture_context_compute(const bContext *C, SpaceButs *sbuts) /* gatheravailable texture users in context. runs on every draw of properties editor, before the buttons are created. */ ButsContextTexture *ct= sbuts->texuser; + Scene *scene= CTX_data_scene(C); + + if(!scene_use_new_shading_nodes(scene)) { + if(ct) { + MEM_freeN(ct); + BLI_freelistN(&ct->users); + sbuts->texuser= NULL; + } + + return; + } if(!ct) { ct= MEM_callocN(sizeof(ButsContextTexture), "ButsContextTexture"); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 1d963c5a45a..35f0cc29f96 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -108,8 +108,6 @@ void ED_node_changed_update(ID *id, bNode *node) 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); - else if(GS(id->name) == ID_TE) - WM_main_add_notifier(NC_TEXTURE|ND_NODES, id); } else if(treetype==NTREE_COMPOSIT) { NodeTagChanged(edittree, node); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index c7744263f04..2b0ce72376f 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -64,6 +64,7 @@ #include "BKE_material.h" #include "BKE_modifier.h" #include "BKE_paint.h" +#include "BKE_scene.h" #include "BKE_screen.h" #include "BKE_texture.h" #include "BKE_report.h" @@ -279,7 +280,7 @@ bNode *node_tree_get_editgroup(bNodeTree *nodetree) /* assumes nothing being done in ntree yet, sets the default in/out node */ /* called from shading buttons or header */ -void ED_node_shader_default(ID *id) +void ED_node_shader_default(Scene *scene, ID *id) { bNode *in, *out; bNodeSocket *fromsock, *tosock; @@ -292,8 +293,15 @@ void ED_node_shader_default(ID *id) switch(GS(id->name)) { case ID_MA: ((Material*)id)->nodetree = ntree; - output_type = SH_NODE_OUTPUT_MATERIAL; - shader_type = SH_NODE_BSDF_DIFFUSE; + + if(scene_use_new_shading_nodes(scene)) { + output_type = SH_NODE_OUTPUT_MATERIAL; + shader_type = SH_NODE_BSDF_DIFFUSE; + } + else { + output_type = SH_NODE_OUTPUT; + shader_type = SH_NODE_MATERIAL; + } break; case ID_WO: ((World*)id)->nodetree = ntree; @@ -305,11 +313,6 @@ void ED_node_shader_default(ID *id) output_type = SH_NODE_OUTPUT_LAMP; shader_type = SH_NODE_EMISSION; break; - case ID_TE: - ((Tex*)id)->nodetree = ntree; - output_type = SH_NODE_OUTPUT_TEXTURE; - shader_type = SH_NODE_TEX_CLOUDS; - break; default: printf("ED_node_shader_default called on wrong ID type.\n"); return; @@ -376,9 +379,6 @@ void ED_node_composit_default(Scene *sce) /* called from shading buttons or header */ void ED_node_texture_default(Tex *tx) { - ED_node_shader_default(&tx->id); - -#if 0 bNode *in, *out; bNodeSocket *fromsock, *tosock; bNodeTemplate ntemp; @@ -406,7 +406,6 @@ void ED_node_texture_default(Tex *tx) nodeAddLink(tx->nodetree, in, fromsock, out, tosock); ntreeUpdateTree(tx->nodetree); -#endif } /* id is supposed to contain a node tree */ @@ -438,7 +437,7 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre } else if(idtype == ID_TE) { *ntree= ((Tex*)id)->nodetree; - if(treetype) *treetype= (*ntree)? (*ntree)->type: NTREE_SHADER; + if(treetype) *treetype= NTREE_TEXTURE; } else { if(treetype) *treetype= 0; @@ -3663,6 +3662,7 @@ static int new_node_tree_exec(bContext *C, wmOperator *op) /* hook into UI */ uiIDContextProperty(C, &ptr, &prop); + if(prop) { RNA_id_pointer_create(&ntree->id, &idptr); RNA_property_pointer_set(&ptr, prop, idptr); @@ -3698,4 +3698,3 @@ void NODE_OT_new_node_tree(wmOperatorType *ot) 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/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 24e7594e784..cdc79e0a23f 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -485,12 +485,12 @@ static void rna_def_ID(BlenderRNA *brna) prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation."); + RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation"); prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation."); + RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation"); prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index 82d095e3510..7d585187f4f 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -148,13 +148,14 @@ static void rna_Lamp_spot_size_set(PointerRNA *ptr, float value) la->spotsize= RAD2DEGF(value); } -static void rna_Lamp_use_nodes_set(PointerRNA *ptr, int value) +static void rna_Lamp_use_nodes_update(Main *blain, Scene *scene, PointerRNA *ptr) { Lamp *la= (Lamp*)ptr->data; - la->use_nodes= value; if(la->use_nodes && la->nodetree==NULL) - ED_node_shader_default(&la->id); + ED_node_shader_default(scene, &la->id); + + rna_Lamp_update(blain, scene, ptr); } #else @@ -385,9 +386,9 @@ static void rna_def_lamp(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Lamp_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the lamp"); - RNA_def_property_update(prop, 0, "rna_Lamp_update"); + RNA_def_property_update(prop, 0, "rna_Lamp_use_nodes_update"); /* common */ rna_def_animdata_common(srna); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 16b9371916f..209b27eb1ff 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -271,13 +271,14 @@ static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value) ma->ramp_spec= add_colorband(0); } -static void rna_Material_use_nodes_set(PointerRNA *ptr, int value) +static void rna_Material_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Material *ma= (Material*)ptr->data; - ma->use_nodes= value; if(ma->use_nodes && ma->nodetree==NULL) - ED_node_shader_default(&ma->id); + ED_node_shader_default(scene, &ma->id); + + rna_Material_update(bmain, scene, ptr); } static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *UNUSED(C), PointerRNA *ptr, @@ -1956,9 +1957,9 @@ void RNA_def_material(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Material_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the material"); - RNA_def_property_update(prop, 0, "rna_Material_update"); + RNA_def_property_update(prop, 0, "rna_Material_use_nodes_update"); prop= RNA_def_property(srna, "active_node_material", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Material"); diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 4cbb1c7deea..f1fe5b6a85e 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1167,6 +1167,18 @@ static void def_sh_geometry(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_attribute(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeShaderAttribute", "storage"); + + prop = RNA_def_property(srna, "attribute_name", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_ui_text(prop, "Attribute Name", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index ef2e97c4427..45015f491d2 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -376,7 +376,7 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_REQUIRED); func= RNA_def_function(srna, "update_progress", "RE_engine_update_progress"); - prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done.", 0.0f, 1.0f); + prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done", 0.0f, 1.0f); RNA_def_property_flag(prop, PROP_REQUIRED); func= RNA_def_function(srna, "report", "RE_engine_report"); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index b5e8acb76e5..61c0605c73b 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -347,6 +347,16 @@ static void rna_Texture_use_nodes_set(PointerRNA *ptr, int v) ED_node_texture_default(tex); } +static void rna_Texture_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Tex *tex= (Tex*)ptr->data; + + if(tex->use_nodes && tex->nodetree==NULL) + ED_node_shader_default(scene, &tex->id); + + rna_Texture_nodes_update(bmain, scene, ptr); +} + static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) { Tex *tex= (Tex*)ptr->data; @@ -1831,8 +1841,9 @@ static void rna_def_texture(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); RNA_def_property_boolean_funcs(prop, NULL, "rna_Texture_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Make this a node-based texture"); - RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); + RNA_def_property_update(prop, 0, "rna_Texture_use_nodes_update"); prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 0b7bf62cc27..eb797158477 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -123,13 +123,14 @@ static void rna_World_stars_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Po WM_main_add_notifier(NC_WORLD|ND_WORLD_STARS, wo); } -static void rna_World_use_nodes_set(PointerRNA *ptr, int value) +static void rna_World_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) { World *wrld= (World*)ptr->data; - wrld->use_nodes= value; if(wrld->use_nodes && wrld->nodetree==NULL) - ED_node_shader_default(&wrld->id); + ED_node_shader_default(scene, &wrld->id); + + rna_World_update(bmain, scene, ptr); } #else @@ -583,9 +584,9 @@ void RNA_def_world(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_World_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the world"); - RNA_def_property_update(prop, 0, "rna_World_update"); + RNA_def_property_update(prop, 0, "rna_World_use_nodes_update"); rna_def_lighting(brna); rna_def_world_mist(brna); diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 9620886f435..603aa7ceb77 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -49,7 +49,6 @@ #include "node_util.h" #include "NOD_texture.h" #include "node_texture_util.h" -#include "../shader/node_shader_util.h" #include "RE_pipeline.h" #include "RE_shader_ext.h" @@ -217,57 +216,36 @@ int ntreeTexExecTree( ShadeInput *shi, MTex *mtex ){ + TexCallData data; + float *nor= texres->nor; + int retval = TEX_INT; bNodeThreadStack *nts = NULL; bNodeTreeExec *exec= nodes->execdata; - if(nodes->type == NTREE_SHADER) { - ShaderCallData scd; - - memset(&scd, 0, sizeof(scd)); - scd.texres = texres; - scd.co = co; - scd.dxt = dxt; - scd.dyt = dyt; - - if (!exec) - exec = nodes->execdata = ntreeShaderBeginExecTree(nodes, 1); - - nts= ntreeGetThreadStack(exec, thread); - ntreeExecThreadNodes(exec, nts, &scd, thread); - ntreeReleaseThreadStack(nts); - - return TEX_INT|TEX_RGB; - } - else { - TexCallData data; - float *nor= texres->nor; - int retval = TEX_INT; - - data.co = co; - data.dxt = dxt; - data.dyt = dyt; - data.osatex = osatex; - data.target = texres; - data.do_preview = preview; - data.thread = thread; - data.which_output = which_output; - data.cfra= cfra; - data.mtex= mtex; - data.shi= shi; - - if (!exec) - exec = ntreeTexBeginExecTree(nodes, 1); - - nts= ntreeGetThreadStack(exec, thread); - ntreeExecThreadNodes(exec, nts, &data, thread); - ntreeReleaseThreadStack(nts); + data.co = co; + data.dxt = dxt; + data.dyt = dyt; + data.osatex = osatex; + data.target = texres; + data.do_preview = preview; + data.thread = thread; + data.which_output = which_output; + data.cfra= cfra; + data.mtex= mtex; + data.shi= shi; + + if (!exec) + exec = ntreeTexBeginExecTree(nodes, 1); + + nts= ntreeGetThreadStack(exec, thread); + ntreeExecThreadNodes(exec, nts, &data, thread); + ntreeReleaseThreadStack(nts); - if(texres->nor) retval |= TEX_NOR; - 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; + if(texres->nor) retval |= TEX_NOR; + 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; - return retval; - } + return retval; } diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 9fdfd085111..ae814f67450 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -1362,9 +1362,9 @@ int multitex_ext_safe(Tex *tex, float *texvec, TexResult *texres) { int use_nodes= tex->use_nodes, retval; - // XXX tex->use_nodes= 0; + tex->use_nodes= 0; retval= multitex_nodes(tex, texvec, NULL, NULL, 0, texres, 0, 0, NULL, NULL); - // XXX tex->use_nodes= use_nodes; + tex->use_nodes= use_nodes; return retval; } -- cgit v1.2.3 From d5b679253a09c161707437f0a86bf32d5b548a63 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 23:49:01 +0000 Subject: Cycles: * Sun, area and point lights with size now supported * Cast shadow option to disable shadow casting for lamps * Emission strength of materials tweaked such that setting strength to 1.0 basically makes the material "shadeless" in that the value of the color input will be the resulting color in the image. --- intern/cycles/blender/addon/ui.py | 13 ++---- intern/cycles/blender/blender_object.cpp | 12 ++---- intern/cycles/kernel/kernel_emission.h | 13 +++--- intern/cycles/kernel/kernel_light.h | 8 ++-- intern/cycles/kernel/osl/emissive.cpp | 4 +- intern/cycles/kernel/svm/emissive.h | 4 +- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenloader/intern/readfile.c | 49 ++++++++++++++++++++++ source/blender/editors/space_node/node_edit.c | 10 +++++ .../nodes/shader/nodes/node_shader_emission.c | 2 +- 10 files changed, 82 insertions(+), 35 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 6f31732aa1f..d8f776b0114 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -366,8 +366,7 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return False - #return context.lamp and CyclesButtonsPanel.poll(context) + return context.lamp and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -505,17 +504,13 @@ class CyclesMaterial_PT_settings(CyclesButtonsPanel, Panel): mat = context.material cmat = mat.cycles - layout.prop(mat, "diffuse_color", text="Viewport Color") - - """ split = layout.split() - + col = split.column() - col.prop(cmat, "sample_as_light") + col.prop(mat, "diffuse_color", text="Viewport Color") col = split.column() - col.prop(cmat, "homogeneous_volume") - """ + col.prop(cmat, "sample_as_light") class CyclesTexture_PT_context(CyclesButtonsPanel, Panel): bl_label = "" diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index de41484975d..1095a3ee026 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -91,14 +91,11 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, BL::Lamp b_lamp(b_ob.data()); /* type */ -#if 0 switch(b_lamp.type()) { case BL::Lamp::type_POINT: { BL::PointLamp b_point_lamp(b_lamp); light->size = b_point_lamp.shadow_soft_size(); -#endif light->type = LIGHT_POINT; -#if 0 break; } case BL::Lamp::type_SPOT: { @@ -132,11 +129,10 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, break; } } -#endif - /* location */ + /* location and (inverted!) direction */ light->co = make_float3(tfm.x.w, tfm.y.w, tfm.z.w); - light->dir = make_float3(tfm.x.z, tfm.y.z, tfm.z.z); + light->dir = -make_float3(tfm.x.z, tfm.y.z, tfm.z.z); /* shader */ vector used_shaders; @@ -149,8 +145,8 @@ void BlenderSync::sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, light->shader = used_shaders[0]; /* shadow */ - //PointerRNA clamp = RNA_pointer_get(&b_lamp.ptr, "cycles"); - //light->cast_shadow = get_boolean(clamp, "cast_shadow"); + PointerRNA clamp = RNA_pointer_get(&b_lamp.ptr, "cycles"); + light->cast_shadow = get_boolean(clamp, "cast_shadow"); /* tag */ light->tag_update(scene); diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 13c48464088..22970f66669 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -88,14 +88,11 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, float mis_weight = power_heuristic(pdf, bsdf_pdf); *eval *= mis_weight; } - else if(!(ls.shader & SHADER_AREA_LIGHT)) { - /* ensure point light works in Watts, this should be handled - * elsewhere but for now together with the diffuse emission - * closure it works out to the right value */ - *eval *= 0.25f; - - /* XXX verify with other light types */ - } + /* todo: clean up these weights */ + else if(ls.shader & SHADER_AREA_LIGHT) + *eval *= 0.25f; /* area lamp */ + else if(ls.t != FLT_MAX) + *eval *= 0.25f*M_1_PI_F; /* point lamp */ if(ls.shader & SHADER_CAST_SHADOW) { /* setup ray */ diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h index 68d08a2655f..d5d47b28d59 100644 --- a/intern/cycles/kernel/kernel_light.h +++ b/intern/cycles/kernel/kernel_light.h @@ -75,8 +75,8 @@ __device void regular_light_sample(KernelGlobals *kg, int point, D = distant_light_sample(D, size, randu, randv); ls->P = D; - ls->Ng = -D; - ls->D = D; + ls->Ng = D; + ls->D = -D; ls->t = FLT_MAX; } else { @@ -120,9 +120,9 @@ __device float regular_light_pdf(KernelGlobals *kg, if(t == FLT_MAX) return pdf; - float cos_pi = fabsf(dot(Ng, I)); + float cos_pi = dot(Ng, I); - if(cos_pi == 0.0f) + if(cos_pi <= 0.0f) return 0.0f; return t*t*pdf/cos_pi; diff --git a/intern/cycles/kernel/osl/emissive.cpp b/intern/cycles/kernel/osl/emissive.cpp index 28d3c73e59b..2d2d6e1fdde 100644 --- a/intern/cycles/kernel/osl/emissive.cpp +++ b/intern/cycles/kernel/osl/emissive.cpp @@ -64,7 +64,7 @@ public: Color3 eval (const Vec3 &Ng, const Vec3 &omega_out) const { float cosNO = fabsf(Ng.dot(omega_out)); - float res = cosNO > 0 ? 1.0f / float(M_PI) : 0.0f; + float res = cosNO > 0 ? 1.0f: 0.0f; return Color3(res, res, res); } @@ -91,7 +91,7 @@ public: const Vec3 &omega_out) const { float cosNO = Ng.dot(omega_out); - return cosNO > 0 ? 1.0f / float(M_PI) : 0.0f; + return cosNO > 0 ? 1.0f: 0.0f; } }; diff --git a/intern/cycles/kernel/svm/emissive.h b/intern/cycles/kernel/svm/emissive.h index 8bd31751fb3..e3f99e9b729 100644 --- a/intern/cycles/kernel/svm/emissive.h +++ b/intern/cycles/kernel/svm/emissive.h @@ -37,7 +37,7 @@ CCL_NAMESPACE_BEGIN __device float3 emissive_eval(const float3 Ng, const float3 I) { float cosNO = fabsf(dot(Ng, I)); - float res = (cosNO > 0.0f)? M_1_PI_F: 0.0f; + float res = (cosNO > 0.0f)? 1.0f: 0.0f; return make_float3(res, res, res); } @@ -48,7 +48,7 @@ __device float3 emissive_eval(const float3 Ng, const float3 I) __device float emissive_pdf(const float3 Ng, const float3 I) { float cosNO = fabsf(dot(Ng, I)); - return (cosNO > 0.0f)? M_1_PI_F: 0.0f; + return (cosNO > 0.0f)? 1.0f: 0.0f; } __device float3 svm_emissive_eval(ShaderData *sd, ShaderClosure *sc) diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index f6910fede8e..34a9321284d 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,7 +44,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 259 -#define BLENDER_SUBVERSION 4 +#define BLENDER_SUBVERSION 5 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1ed23361581..fb1beec1cbf 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2057,6 +2057,30 @@ static void lib_link_nodetree(FileData *fd, Main *main) } } +static void ntree_tmp_cycles_emission_version_patch(FileData *fd, Library *lib, bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + bNodeSocketValueFloat *valfloat; + + for(node=ntree->nodes.first; node; node=node->next) { + if(node->type == SH_NODE_EMISSION) { + for(sock=node->inputs.first; sock; sock=sock->next) { + if(strcmp(sock->name, "Strength") == 0) { + valfloat= sock->default_value; + valfloat->value /= M_PI; + } + } + } + else if(node->type == NODE_GROUP) { + bNodeTree *ntree= newlibadr(fd, lib, node->id); + + if(ntree) + ntree_tmp_cycles_emission_version_patch(fd, lib, ntree); + } + } +} + static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) { bNode *node; @@ -12296,6 +12320,31 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } + if(main->versionfile < 259 || (main->versionfile == 259 && main->subversionfile < 5)) { + Scene *sce; + Base *base; + Material *ma; + + /* compatibility tweak */ + for(sce = main->scene.first; sce; sce = sce->id.next) { + if(strcmp(sce->r.engine, "CYCLES") == 0) { + for(base = sce->base.first; base; base=base->next) { + Object *ob= newlibadr(fd, lib, base->object); + + if(ob && ob->type == OB_LAMP) { + Lamp *la= newlibadr(fd, lib, ob->data); + if(la) + la->area_size= 0.0f; + } + } + } + } + + for(ma = main->mat.first; ma; ma= ma->id.next) + if(ma->nodetree) + ntree_tmp_cycles_emission_version_patch(fd, lib, ma->nodetree); + } + /* put compatibility code here until next subversion bump */ { } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 2b0ce72376f..82b3da675ba 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -331,6 +331,16 @@ void ED_node_shader_default(Scene *scene, ID *id) fromsock= in->outputs.first; tosock= out->inputs.first; nodeAddLink(ntree, in, fromsock, out, tosock); + + if(GS(id->name) == ID_LA) { + Lamp *la= (Lamp*)id; + + if(la->type == LA_LOCAL || la->type == LA_SPOT || la->type == LA_AREA) { + bNodeSocket *sock= in->inputs.last; + bNodeSocketValueFloat *default_value= sock->default_value; + default_value->value= 100.0f; + } + } ntreeUpdateTree(ntree); } diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.c b/source/blender/nodes/shader/nodes/node_shader_emission.c index 32e17d772d7..78644d5317d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_emission.c +++ b/source/blender/nodes/shader/nodes/node_shader_emission.c @@ -33,7 +33,7 @@ static bNodeSocketTemplate sh_node_emission_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_FLOAT, 1, "Strength", 30.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { SOCK_FLOAT, 1, "Strength", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, { -1, 0, "" } }; -- cgit v1.2.3 From 60b72a7a41017be884fffbc777336a15204c27fe Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 16 Oct 2011 14:11:53 +0000 Subject: Cycles: * World background was emitting light, even after removal of World shader nodes. --- intern/cycles/kernel/kernel_shader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index c1bcbb067b5..ac0df71c38f 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -517,7 +517,7 @@ __device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int pa if(sd->closure.type == CLOSURE_BACKGROUND_ID) return sd->closure.weight; else - return make_float3(0.8f, 0.8f, 0.8f); + return make_float3(0.0f, 0.0f, 0.0f); #endif #else -- cgit v1.2.3 From 5c3d8c1eb6ba4c6a18da7b089c145c4cc4556237 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 16:53:24 +0000 Subject: Cycles: fix missing node editor redraw when assiging/removing materials. --- source/blender/editors/space_node/space_node.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index dc3ef9f5a76..a17b58a80d8 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -216,6 +216,12 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_refresh(sa); } break; + case NC_OBJECT: + if(type==NTREE_SHADER) { + if(wmn->data==ND_OB_SHADING) + ED_area_tag_refresh(sa); + } + break; case NC_TEXT: /* pynodes */ if(wmn->data==ND_SHADING) @@ -436,6 +442,10 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn) case NC_NODE: ED_region_tag_redraw(ar); break; + case NC_OBJECT: + if(wmn->data==ND_OB_SHADING) + ED_region_tag_redraw(ar); + break; case NC_ID: if(wmn->action == NA_RENAME) ED_region_tag_redraw(ar); -- cgit v1.2.3 From 7b1ef0f41620514be98fc9fff9db9bd59ae57e0d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:00:48 +0000 Subject: Cycles: use mesh normals computed by Blender instead of computing our own, solves an issue with poor mesh geometry. --- intern/cycles/blender/blender_mesh.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index af14bad6402..3bf83fa533f 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -65,6 +65,13 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector< for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v) mesh->verts.push_back(get_float3(v->co())); + /* create vertex normals */ + Attribute *attr_N = mesh->attributes.add(Attribute::STD_VERTEX_NORMAL); + float3 *N = attr_N->data_float3(); + + for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v, ++N) + *N= get_float3(v->normal()); + /* create faces */ BL::Mesh::faces_iterator f; vector nverts; -- cgit v1.2.3 From 7600c687b27c07e8cad2ac1fdef912cd4ba47492 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:06:01 +0000 Subject: Cycles: fix sampling issue with certain (transparent) max bounce settings, and tweak presets/defaults to use 128 instead of 1024. --- intern/cycles/blender/addon/properties.py | 8 +++++--- intern/cycles/render/integrator.cpp | 2 +- .../presets/cycles/integrator/full_global_illumination.py | 10 +++++----- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 8d3f709cdef..a47174dd6c6 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -55,16 +55,18 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): default=8, min=0, max=1024) cls.diffuse_bounces = IntProperty(name="Diffuse Bounces", description="Maximum number of diffuse reflection bounces, bounded by total maximum", - default=1024, min=0, max=1024) + default=128, min=0, max=1024) cls.glossy_bounces = IntProperty(name="Glossy Bounces", description="Maximum number of glossy reflection bounces, bounded by total maximum", - default=1024, min=0, max=1024) + default=128, min=0, max=1024) cls.transmission_bounces = IntProperty(name="Transmission Bounces", description="Maximum number of transmission bounces, bounded by total maximum", - default=1024, min=0, max=1024) + default=128, min=0, max=1024) cls.transparent_min_bounces = IntProperty(name="Transparent Min Bounces", description="Minimum number of transparent bounces, setting this lower than the maximum enables probalistic path termination (faster but noisier)", default=8, min=0, max=1024) cls.transparent_max_bounces = IntProperty(name="Transparent Max Bounces", description="Maximum number of transparent bounces", default=8, min=0, max=1024) + cls.use_transparent_shadows = BoolProperty(name="Transparent Shadows", description="Use transparency of surfaces for rendering shadows", + default=True) cls.film_exposure = FloatProperty(name="Exposure", description="Image brightness scale", default=1.0, min=0.0, max=10.0) diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp index 57689be3965..78ea464d836 100644 --- a/intern/cycles/render/integrator.cpp +++ b/intern/cycles/render/integrator.cpp @@ -80,7 +80,7 @@ void Integrator::device_update(Device *device, DeviceScene *dscene) kintegrator->blur_caustics = blur_caustics; /* sobol directions table */ - int dimensions = PRNG_BASE_NUM + (max_bounce + 2)*PRNG_BOUNCE_NUM; + int dimensions = PRNG_BASE_NUM + (max_bounce + transparent_max_bounce + 2)*PRNG_BOUNCE_NUM; uint *directions = dscene->sobol_directions.resize(SOBOL_BITS*dimensions); sobol_generate_direction_vectors((uint(*)[SOBOL_BITS])directions, dimensions); diff --git a/release/scripts/presets/cycles/integrator/full_global_illumination.py b/release/scripts/presets/cycles/integrator/full_global_illumination.py index 47c4431de13..8687f169b8a 100644 --- a/release/scripts/presets/cycles/integrator/full_global_illumination.py +++ b/release/scripts/presets/cycles/integrator/full_global_illumination.py @@ -1,11 +1,11 @@ import bpy cycles = bpy.context.scene.cycles -cycles.max_bounces = 1024 +cycles.max_bounces = 128 cycles.min_bounces = 3 cycles.no_caustics = False -cycles.diffuse_bounces = 1024 -cycles.glossy_bounces = 1024 -cycles.transmission_bounces = 1024 +cycles.diffuse_bounces = 128 +cycles.glossy_bounces = 128 +cycles.transmission_bounces = 128 cycles.transparent_min_bounces = 8 -cycles.transparent_max_bounces = 1024 +cycles.transparent_max_bounces = 128 -- cgit v1.2.3 From 11f3029267524f66b1f4db9de53889216bfd7c35 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:19:29 +0000 Subject: Cycles: fix F12 render not using render resolution for modifiers. --- intern/cycles/blender/blender_util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index fe9a611e2f8..bcca028dc2a 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -56,7 +56,7 @@ CCL_NAMESPACE_BEGIN static inline BL::Mesh object_to_mesh(BL::Object self, BL::Scene scene, bool apply_modifiers, bool render) { - ID *data = rna_Object_to_mesh(self.ptr.data, NULL, scene.ptr.data, apply_modifiers, render); + ID *data = rna_Object_to_mesh(self.ptr.data, NULL, scene.ptr.data, apply_modifiers, (render)? 2: 1); PointerRNA ptr; RNA_id_pointer_create(data, &ptr); return BL::Mesh(ptr); -- cgit v1.2.3 From 60bc63c7b8e308ad652eae750fcb932f3fc0218d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:40:47 +0000 Subject: Cycles: enable improved closure sampling, this should give less noise for mix, add and glass shaders. How well this will work on non-fermi GPU's is unclear still, it's a bit heavy on register usage. --- intern/cycles/device/device.cpp | 2 ++ intern/cycles/device/device.h | 4 +++- intern/cycles/kernel/kernel_types.h | 2 +- intern/cycles/render/scene.h | 2 +- intern/cycles/render/svm.cpp | 3 ++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index f43ccffe461..01c50817709 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -157,6 +157,8 @@ Device *Device::create(DeviceType type, bool background, int threads) return NULL; } + device->device_type = type; + return device; } diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index 0b3c66dbb2c..360478cfd75 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -75,12 +75,14 @@ class Device { protected: Device() {} - DeviceType type; + DeviceType device_type; bool background; public: virtual ~Device() {} + DeviceType type() { return device_type; } + /* info */ virtual string description() = 0; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index bda037e88cc..c789601cd27 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -44,7 +44,7 @@ CCL_NAMESPACE_BEGIN #define __EMISSION__ #define __TEXTURES__ #define __HOLDOUT__ -//#define __MULTI_CLOSURE__ +#define __MULTI_CLOSURE__ //#define __TRANSPARENT_SHADOWS__ //#define __MULTI_LIGHT__ #endif diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index a969dd66c4c..c191f8a56e5 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -109,7 +109,7 @@ public: SceneParams() { shadingsystem = SVM; - use_multi_closure = false; + use_multi_closure = true; bvh_type = BVH_DYNAMIC; use_bvh_cache = false; use_bvh_spatial_split = false; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index a1687ae5e29..b9c4219f852 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -58,6 +58,7 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene } bool sunsky_done = false; + bool use_multi_closure = (scene->params.use_multi_closure && device->type() != DEVICE_OPENCL); for(i = 0; i < scene->shaders.size(); i++) { Shader *shader = scene->shaders[i]; @@ -70,7 +71,7 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene scene->light_manager->need_update = true; SVMCompiler compiler(scene->shader_manager, scene->image_manager, - scene->params.use_multi_closure); + use_multi_closure); compiler.sunsky = (sunsky_done)? NULL: &dscene->data.sunsky; compiler.background = ((int)i == scene->default_background); compiler.compile(shader, svm_nodes, i); -- cgit v1.2.3 From e5f544dd92704381bfd6f54a8024c62982a50448 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:54:43 +0000 Subject: Cycles: add transparent shadow support, i.e. shadows through Transparent BSDF shaders, enabled by default. --- intern/cycles/blender/addon/ui.py | 1 + intern/cycles/blender/blender_sync.cpp | 1 + intern/cycles/kernel/kernel_bvh.h | 2 +- intern/cycles/kernel/kernel_emission.h | 2 +- intern/cycles/kernel/kernel_path.h | 36 +++++++++++++++++++--------------- intern/cycles/kernel/kernel_types.h | 25 +++++++++++++---------- 6 files changed, 39 insertions(+), 28 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index d8f776b0114..10754ed6b9f 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -67,6 +67,7 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): sub.label("Transparency:") sub.prop(cscene, "transparent_max_bounces", text="Max") sub.prop(cscene, "transparent_min_bounces", text="Min") + sub.prop(cscene, "use_transparent_shadows", text="Shadows") sub.prop(cscene, "no_caustics") col = split.column() diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 6f03cac315c..4babb612bdd 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -146,6 +146,7 @@ void BlenderSync::sync_integrator() integrator->transparent_max_bounce = get_int(cscene, "transparent_max_bounces"); integrator->transparent_min_bounce = get_int(cscene, "transparent_min_bounces"); + integrator->transparent_shadows = get_boolean(cscene, "use_transparent_shadows"); integrator->no_caustics = get_boolean(cscene, "no_caustics"); integrator->blur_caustics = get_float(cscene, "blur_caustics"); diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h index df7663b5555..b5f59b94516 100644 --- a/intern/cycles/kernel/kernel_bvh.h +++ b/intern/cycles/kernel/kernel_bvh.h @@ -253,7 +253,7 @@ __device_inline bool scene_intersect(KernelGlobals *kg, const Ray *ray, const ui bvh_triangle_intersect(kg, isect, P, idir, visibility, object, primAddr); /* shadow ray early termination */ - if(visibility == PATH_RAY_SHADOW && isect->prim != ~0) + if(visibility == PATH_RAY_SHADOW_OPAQUE && isect->prim != ~0) return true; primAddr++; diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 22970f66669..b81db721eb3 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -124,7 +124,7 @@ __device float3 indirect_emission(KernelGlobals *kg, ShaderData *sd, float t, in /* evaluate emissive closure */ float3 L = shader_emissive_eval(kg, sd); - if(!(path_flag & PATH_RAY_SINGULAR) && (sd->flag & SD_SAMPLE_AS_LIGHT)) { + if(!(path_flag & PATH_RAY_MIS_SKIP) && (sd->flag & SD_SAMPLE_AS_LIGHT)) { /* multiple importance sampling */ float pdf = triangle_light_pdf(kg, sd->Ng, sd->I, t); float mis_weight = power_heuristic(bsdf_pdf, pdf); diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index e438780b1c8..c609f6f13fe 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -70,7 +70,7 @@ typedef struct PathState { __device_inline void path_state_init(PathState *state) { - state->flag = PATH_RAY_CAMERA|PATH_RAY_SINGULAR; + state->flag = PATH_RAY_CAMERA|PATH_RAY_SINGULAR|PATH_RAY_MIS_SKIP; state->bounce = 0; state->diffuse_bounce = 0; state->glossy_bounce = 0; @@ -78,7 +78,7 @@ __device_inline void path_state_init(PathState *state) state->transparent_bounce = 0; } -__device_inline void path_state_next(PathState *state, int label) +__device_inline void path_state_next(KernelGlobals *kg, PathState *state, int label) { /* ray through transparent keeps same flags from previous ray and is not counted as a regular bounce, transparent has separate max */ @@ -86,6 +86,9 @@ __device_inline void path_state_next(PathState *state, int label) state->flag |= PATH_RAY_TRANSPARENT; state->transparent_bounce++; + if(!kernel_data.integrator.transparent_shadows) + state->flag |= PATH_RAY_MIS_SKIP; + return; } @@ -113,16 +116,16 @@ __device_inline void path_state_next(PathState *state, int label) /* diffuse/glossy/singular */ if(label & LABEL_DIFFUSE) { state->flag |= PATH_RAY_DIFFUSE; - state->flag &= ~(PATH_RAY_GLOSSY|PATH_RAY_SINGULAR); + state->flag &= ~(PATH_RAY_GLOSSY|PATH_RAY_SINGULAR|PATH_RAY_MIS_SKIP); } else if(label & LABEL_GLOSSY) { state->flag |= PATH_RAY_GLOSSY; - state->flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_SINGULAR); + state->flag &= ~(PATH_RAY_DIFFUSE|PATH_RAY_SINGULAR|PATH_RAY_MIS_SKIP); } else { kernel_assert(label & LABEL_SINGULAR); - state->flag |= PATH_RAY_GLOSSY|PATH_RAY_SINGULAR; + state->flag |= PATH_RAY_GLOSSY|PATH_RAY_SINGULAR|PATH_RAY_MIS_SKIP; state->flag &= ~PATH_RAY_DIFFUSE; } } @@ -167,7 +170,7 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra if(ray->t == 0.0f) return false; - bool result = scene_intersect(kg, ray, PATH_RAY_SHADOW, isect); + bool result = scene_intersect(kg, ray, PATH_RAY_SHADOW_OPAQUE, isect); #ifdef __TRANSPARENT_SHADOWS__ if(result && kernel_data.integrator.transparent_shadows) { @@ -175,11 +178,11 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra in cases where we don't need them. after a regular shadow ray is cast we check if the hit primitive was potentially transparent, and only in that case start marching. this gives on extra ray cast for - the cases were we do want transparency */ + the cases were we do want transparency. + + also note that for this to work correct, multi close sampling must + be used, since we don't pass a random number to shader_eval_surface */ if(shader_transparent_shadow(kg, isect)) { - /* todo: fix double contribution from indirect for triangle lights */ - /* if(kernel_data.integrator.transparent_shadows && (path_flag & PATH_RAY_TRANSPARENT)) */ - float3 throughput = make_float3(1.0f, 1.0f, 1.0f); float3 Pend = ray->P + ray->D*ray->t; int bounce = state->transparent_bounce; @@ -192,7 +195,7 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra /* todo: get random number somewhere for probabilistic terminate */ #if 0 float probability = average(throughput); - float terminate = 0.0f; /* todo: get this random number */ + float terminate = 0.0f; if(terminate >= probability) return true; @@ -201,22 +204,23 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra #endif } - /* todo: fix it so we get first hit */ - if(!scene_intersect(kg, ray, PATH_RAY_SHADOW, isect)) { + if(!scene_intersect(kg, ray, PATH_RAY_SHADOW_TRANSPARENT, isect)) { *light_L *= throughput; return false; } + if(!shader_transparent_shadow(kg, isect)) return true; ShaderData sd; shader_setup_from_ray(kg, &sd, isect, ray); - shader_eval_surface(kg, &sd, 0.0f, PATH_RAY_SHADOW); /* todo: state flag? */ + shader_eval_surface(kg, &sd, 0.0f, PATH_RAY_SHADOW); throughput *= shader_bsdf_transparency(kg, &sd); ray->P = ray_offset(sd.P, -sd.Ng); - ray->t = (ray->t == FLT_MAX)? FLT_MAX: len(Pend - ray->P); + if(ray->t != FLT_MAX) + ray->D = normalize_len(Pend - ray->P, &ray->t); bounce++; } @@ -360,7 +364,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R #endif /* update path state */ - path_state_next(&state, label); + path_state_next(kg, &state, label); /* setup ray */ ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng); diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index c789601cd27..df438fe8d90 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -45,7 +45,7 @@ CCL_NAMESPACE_BEGIN #define __TEXTURES__ #define __HOLDOUT__ #define __MULTI_CLOSURE__ -//#define __TRANSPARENT_SHADOWS__ +#define __TRANSPARENT_SHADOWS__ //#define __MULTI_LIGHT__ #endif @@ -83,15 +83,20 @@ enum PathTraceDimension { enum PathRayFlag { PATH_RAY_CAMERA = 1, - PATH_RAY_SHADOW = 2, - PATH_RAY_REFLECT = 4, - PATH_RAY_TRANSMIT = 8, - PATH_RAY_DIFFUSE = 16, - PATH_RAY_GLOSSY = 32, - PATH_RAY_SINGULAR = 64, - PATH_RAY_TRANSPARENT = 128, - - PATH_RAY_ALL = (1|2|4|8|16|32|64|128) + PATH_RAY_REFLECT = 2, + PATH_RAY_TRANSMIT = 4, + PATH_RAY_DIFFUSE = 8, + PATH_RAY_GLOSSY = 16, + PATH_RAY_SINGULAR = 32, + PATH_RAY_TRANSPARENT = 64, + + PATH_RAY_SHADOW_OPAQUE = 128, + PATH_RAY_SHADOW_TRANSPARENT = 256, + PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE|PATH_RAY_SHADOW_TRANSPARENT), + + PATH_RAY_MIS_SKIP = 512, + + PATH_RAY_ALL = (1|2|4|8|16|32|64|128|256|512) }; /* Closure Label */ -- cgit v1.2.3 From 33691eb0e7d0c6b7aa47f3b8640b1a332004de6d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 17:55:39 +0000 Subject: Cycles: revert unneeded branch change to particles UI script. --- release/scripts/startup/bl_ui/properties_particle.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index 7f97239aa68..658c45e97a2 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -75,6 +75,7 @@ class ParticleButtonsPanel(): class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -176,6 +177,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): class PARTICLE_PT_emission(ParticleButtonsPanel, Panel): bl_label = "Emission" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -245,6 +247,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel): class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel): bl_label = "Hair dynamics" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -299,6 +302,7 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel): class PARTICLE_PT_cache(ParticleButtonsPanel, Panel): bl_label = "Cache" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -323,6 +327,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, Panel): class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel): bl_label = "Velocity" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -372,6 +377,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel): class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel): bl_label = "Rotation" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -420,6 +426,7 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel): class PARTICLE_PT_physics(ParticleButtonsPanel, Panel): bl_label = "Physics" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -639,6 +646,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel): class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel): bl_label = "Boid Brain" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -738,6 +746,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel): class PARTICLE_PT_render(ParticleButtonsPanel, Panel): bl_label = "Render" + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -919,6 +928,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel): class PARTICLE_PT_draw(ParticleButtonsPanel, Panel): bl_label = "Display" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -977,6 +987,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel): class PARTICLE_PT_children(ParticleButtonsPanel, Panel): bl_label = "Children" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1076,6 +1087,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, Panel): class PARTICLE_PT_field_weights(ParticleButtonsPanel, Panel): bl_label = "Field Weights" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1096,6 +1108,7 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, Panel): class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel): bl_label = "Force Field Settings" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} def draw(self, context): layout = self.layout @@ -1129,6 +1142,7 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel): class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel): bl_label = "Vertexgroups" bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_RENDER'} @classmethod def poll(cls, context): @@ -1197,6 +1211,7 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel): class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, Panel): + COMPAT_ENGINES = {'BLENDER_RENDER'} _context_path = "particle_system.settings" _property_type = bpy.types.ParticleSettings -- cgit v1.2.3 From 5fd67a3ba5ad10a932a0a1b4cbd3fe37691fbae1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 18:54:27 +0000 Subject: Cycles: enable multi closure sampling and transparent shadows only on CPU and CUDA cards with shader model >= 2 for now (GTX 4xx, 5xx, ..). The CUDA compiler can't handle the increased kernel size currently. --- intern/cycles/device/device.cpp | 2 -- intern/cycles/device/device.h | 3 +-- intern/cycles/device/device_cpu.cpp | 5 +++++ intern/cycles/device/device_cuda.cpp | 8 ++++++++ intern/cycles/device/device_multi.cpp | 10 ++++++++++ intern/cycles/device/device_network.cpp | 5 +++++ intern/cycles/device/device_opencl.cpp | 5 +++++ intern/cycles/kernel/kernel_types.h | 11 +++++++++-- intern/cycles/render/scene.h | 2 -- intern/cycles/render/svm.cpp | 2 +- 10 files changed, 44 insertions(+), 9 deletions(-) diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 01c50817709..f43ccffe461 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -157,8 +157,6 @@ Device *Device::create(DeviceType type, bool background, int threads) return NULL; } - device->device_type = type; - return device; } diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index 360478cfd75..5d6ac10dc40 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -75,13 +75,12 @@ class Device { protected: Device() {} - DeviceType device_type; bool background; public: virtual ~Device() {} - DeviceType type() { return device_type; } + virtual bool support_full_kernel() = 0; /* info */ virtual string description() = 0; diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 2409cc65998..d6e1c200996 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -69,6 +69,11 @@ public: kernel_globals_free(kg); } + bool support_full_kernel() + { + return true; + } + string description() { return system_cpu_brand_string(); diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 3773dda7631..1438dd67ca5 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -181,6 +181,14 @@ public: cuda_assert(cuCtxDetach(cuContext)) } + bool support_full_kernel() + { + int major, minor; + cuDeviceComputeCapability(&major, &minor, cuDevId); + + return (major >= 2); + } + string description() { /* print device information */ diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp index f2f6251685e..128c80ac396 100644 --- a/intern/cycles/device/device_multi.cpp +++ b/intern/cycles/device/device_multi.cpp @@ -90,6 +90,16 @@ public: delete sub.device; } + bool support_full_kernel() + { + foreach(SubDevice& sub, devices) { + if(!sub.device->support_full_kernel()) + return false; + } + + return true; + } + string description() { /* create map to find duplicate descriptions */ diff --git a/intern/cycles/device/device_network.cpp b/intern/cycles/device/device_network.cpp index af7d90478cf..a5ad84831fc 100644 --- a/intern/cycles/device/device_network.cpp +++ b/intern/cycles/device/device_network.cpp @@ -57,6 +57,11 @@ public: { } + bool support_full_kernel() + { + return false; + } + string description() { RPCSend snd(socket, "description"); diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp index bd26f4a78fb..d8df8025a08 100644 --- a/intern/cycles/device/device_opencl.cpp +++ b/intern/cycles/device/device_opencl.cpp @@ -402,6 +402,11 @@ public: clReleaseContext(cxContext); } + bool support_full_kernel() + { + return false; + } + string description() { char name[1024]; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index df438fe8d90..d8270b2cd71 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -44,15 +44,22 @@ CCL_NAMESPACE_BEGIN #define __EMISSION__ #define __TEXTURES__ #define __HOLDOUT__ -#define __MULTI_CLOSURE__ -#define __TRANSPARENT_SHADOWS__ //#define __MULTI_LIGHT__ #endif #ifdef __KERNEL_CPU__ +#define __MULTI_CLOSURE__ +#define __TRANSPARENT_SHADOWS__ //#define __OSL__ #endif +#ifdef __KERNEL_CUDA__ +#if __CUDA_ARCH__ >= 200 +#define __MULTI_CLOSURE__ +#define __TRANSPARENT_SHADOWS__ +#endif +#endif + //#define __SOBOL_FULL_SCREEN__ //#define __MODIFY_TP__ //#define __QBVH__ diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index c191f8a56e5..17bd7e20129 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -100,7 +100,6 @@ public: class SceneParams { public: enum { OSL, SVM } shadingsystem; - bool use_multi_closure; enum BVHType { BVH_DYNAMIC, BVH_STATIC } bvh_type; bool use_bvh_cache; bool use_bvh_spatial_split; @@ -109,7 +108,6 @@ public: SceneParams() { shadingsystem = SVM; - use_multi_closure = true; bvh_type = BVH_DYNAMIC; use_bvh_cache = false; use_bvh_spatial_split = false; diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index b9c4219f852..f088a8143cc 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -58,7 +58,7 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene } bool sunsky_done = false; - bool use_multi_closure = (scene->params.use_multi_closure && device->type() != DEVICE_OPENCL); + bool use_multi_closure = device->support_full_kernel(); for(i = 0; i < scene->shaders.size(); i++) { Shader *shader = scene->shaders[i]; -- cgit v1.2.3 From 7b06c1718b3362f8ddf5eb3815bab8fd1abce428 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 20:58:48 +0000 Subject: Cycles: material "sample as light" option, to make the integrator sample the object as a mesh light or not. This may result in more/less noisy renders depending on the situation, but should converge to the same result. --- intern/cycles/blender/addon/properties.py | 2 +- intern/cycles/blender/blender_shader.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index a47174dd6c6..6fab3ecaa68 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -118,7 +118,7 @@ class CyclesMaterialSettings(bpy.types.PropertyGroup): @classmethod def register(cls): bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles Material Settings", description="Cycles material settings") - cls.sample_as_light = BoolProperty(name="Sample as Light", description="Use direct light sampling, to reduce noise for small or strong emitting materials", default=False) + cls.sample_as_light = BoolProperty(name="Sample as Light", description="Use direct light sampling, to reduce noise for small or strong emitting materials", default=True) cls.homogeneous_volume = BoolProperty(name="Homogeneous Volume", description="When using volume rendering, assume volume has the same density everywhere, for faster rendering", default=False) @classmethod diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 9e3095f23e2..ed84777de7c 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -613,7 +613,7 @@ void BlenderSync::sync_materials() /* settings */ PointerRNA cmat = RNA_pointer_get(&b_mat->ptr, "cycles"); - //shader->sample_as_light = get_boolean(cmat, "sample_as_light"); + shader->sample_as_light = get_boolean(cmat, "sample_as_light"); shader->homogeneous_volume = get_boolean(cmat, "homogeneous_volume"); shader->set_graph(graph); -- cgit v1.2.3 From 590a524323b6a5672a759a70e25226e4f6f2855c Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 16 Oct 2011 22:06:35 +0000 Subject: Cycles: Add cmake path for the CUDA toolkit (default installation) on windows. --- intern/cycles/cmake/external_libs.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index fb7ba9cc3f2..07d45f9dd5d 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -89,8 +89,11 @@ endif() # CUDA if(WITH_CYCLES_CUDA) - - set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + if(WIN32) + set(CYCLES_CUDA "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0" CACHE PATH "Path to CUDA installation") + else() + set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + endif() set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") -- cgit v1.2.3 From d537a1586d7bd4c1eef40a56d4d57be2df7b95ec Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 16 Oct 2011 22:07:55 +0000 Subject: Cycles: fix crash using uv + generated texture coordinates on a single mesh. --- intern/cycles/render/mesh.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index ac07ee8e89f..2fef54605a1 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -378,7 +378,7 @@ void MeshManager::update_svm_attributes(Device *device, DeviceScene *dscene, Sce j = 0; foreach(AttributeRequest& req, attributes.requests) { - int index = i*attr_map_stride; + int index = i*attr_map_stride + j; uint id; if(req.std == Attribute::STD_NONE) -- cgit v1.2.3 From c18e9a1bc6c3712da4ecaa4e49ecf8201993a58e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 17 Oct 2011 11:24:20 +0000 Subject: Cycles: * Auto detection of CUDA toolkit, using FIND_PACKAGE(CUDA). (Requires at least CMAKE 2.8) --- intern/cycles/cmake/external_libs.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 07d45f9dd5d..b6a67a9b86c 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -89,10 +89,15 @@ endif() # CUDA if(WITH_CYCLES_CUDA) - if(WIN32) - set(CYCLES_CUDA "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0" CACHE PATH "Path to CUDA installation") + FIND_PACKAGE(CUDA) # Try to auto locate CUDA toolkit + if(CUDA_FOUND) + set(CYCLES_CUDA ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH "Path to CUDA installation") else() - set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + if(WIN32) + set(CYCLES_CUDA "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0" CACHE PATH "Path to CUDA installation") + else() + set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + endif() endif() set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") -- cgit v1.2.3 From 97e58e499d8969b344333449514499cf1f5fdfce Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 17 Oct 2011 11:54:43 +0000 Subject: use CMake's CUDA_NVCC_EXECUTABLE rather then own hard coded CYCLES_CUDA variable. --- intern/cycles/cmake/external_libs.cmake | 26 +++++++------------------- intern/cycles/kernel/CMakeLists.txt | 2 +- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index b6a67a9b86c..0915d4d92c8 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -82,33 +82,21 @@ if(WITH_CYCLES_BLENDER) ${CMAKE_SOURCE_DIR}/source/blender/blenloader ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern) - ADD_DEFINITIONS(-DBLENDER_PLUGIN) + add_definitions(-DBLENDER_PLUGIN) endif() ########################################################################### # CUDA if(WITH_CYCLES_CUDA) - FIND_PACKAGE(CUDA) # Try to auto locate CUDA toolkit + find_package(CUDA) # Try to auto locate CUDA toolkit if(CUDA_FOUND) - set(CYCLES_CUDA ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH "Path to CUDA installation") + message(STATUS "CUDA nvcc = ${CUDA_NVCC_EXECUTABLE}") + set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") + set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") else() - if(WIN32) - set(CYCLES_CUDA "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0" CACHE PATH "Path to CUDA installation") - else() - set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") - endif() + message(STATUS "CUDA compiler not found, disabling WITH_CYCLES_CUDA") + set(WITH_CYCLES_CUDA OFF) endif() - set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") - set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - - find_program(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH) - - if(CUDA_NVCC) - message(STATUS "CUDA nvcc = ${CUDA_NVCC}") - else() - message(STATUS "CUDA compiler not found") - endif() - endif() diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 9714f941082..cf10f035585 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -95,7 +95,7 @@ if(WITH_CYCLES_CUDA) add_custom_command( OUTPUT ${cuda_cubin} - COMMAND ${CUDA_NVCC} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC + COMMAND ${CUDA_NVCC_EXECUTABLE} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC DEPENDS ${cuda_sources}) delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib) -- cgit v1.2.3 From 72e47de8b58c250598c384cc19419d190746b080 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 19 Oct 2011 00:13:41 +0000 Subject: Cycles: fix some issues with mix shaders when the weight for an emission shader was 0.0, and background shader mix wasn't working. --- intern/cycles/blender/addon/ui.py | 2 ++ intern/cycles/kernel/svm/svm.h | 2 +- intern/cycles/kernel/svm/svm_closure.h | 45 +++++++++++++++++++++++++--------- intern/cycles/render/nodes.cpp | 2 +- 4 files changed, 38 insertions(+), 13 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 10754ed6b9f..94a48e6c42d 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -431,6 +431,7 @@ class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel): class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" bl_context = "world" + bl_options = {'DEFAULT_CLOSED'} @classmethod def poll(cls, context): @@ -460,6 +461,7 @@ class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel): class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" bl_context = "material" + bl_options = {'DEFAULT_CLOSED'} @classmethod def poll(cls, context): diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 62e02f1a01a..9628f96bcab 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -179,7 +179,7 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT svm_node_closure_emission(sd, stack, node); break; case NODE_CLOSURE_BACKGROUND: - svm_node_closure_background(sd, node); + svm_node_closure_background(sd, stack, node); break; case NODE_CLOSURE_HOLDOUT: svm_node_closure_holdout(sd, stack, node); diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 90636380e43..fcda7ac6fe1 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -236,7 +236,6 @@ __device void svm_node_closure_volume(KernelGlobals *kg, ShaderData *sd, float * __device void svm_node_closure_emission(ShaderData *sd, float *stack, uint4 node) { #ifdef __MULTI_CLOSURE__ - ShaderClosure *sc = svm_node_closure_get(sd); uint mix_weight_offset = node.y; if(stack_valid(mix_weight_offset)) { @@ -245,31 +244,52 @@ __device void svm_node_closure_emission(ShaderData *sd, float *stack, uint4 node if(mix_weight == 0.0f) return; + ShaderClosure *sc = svm_node_closure_get(sd); sc->weight *= mix_weight; + sc->type = CLOSURE_EMISSION_ID; } + else { + ShaderClosure *sc = svm_node_closure_get(sd); + sc->type = CLOSURE_EMISSION_ID; + } + #else ShaderClosure *sc = &sd->closure; + sc->type = CLOSURE_EMISSION_ID; #endif - sc->type = CLOSURE_EMISSION_ID; sd->flag |= SD_EMISSION; } -__device void svm_node_closure_background(ShaderData *sd, uint4 node) +__device void svm_node_closure_background(ShaderData *sd, float *stack, uint4 node) { #ifdef __MULTI_CLOSURE__ - ShaderClosure *sc = svm_node_closure_get(sd); + uint mix_weight_offset = node.y; + + if(stack_valid(mix_weight_offset)) { + float mix_weight = stack_load_float(stack, mix_weight_offset); + + if(mix_weight == 0.0f) + return; + + ShaderClosure *sc = svm_node_closure_get(sd); + sc->weight *= mix_weight; + sc->type = CLOSURE_BACKGROUND_ID; + } + else { + ShaderClosure *sc = svm_node_closure_get(sd); + sc->type = CLOSURE_BACKGROUND_ID; + } + #else ShaderClosure *sc = &sd->closure; -#endif - sc->type = CLOSURE_BACKGROUND_ID; +#endif } __device void svm_node_closure_holdout(ShaderData *sd, float *stack, uint4 node) { #ifdef __MULTI_CLOSURE__ - ShaderClosure *sc = svm_node_closure_get(sd); uint mix_weight_offset = node.y; if(stack_valid(mix_weight_offset)) { @@ -278,17 +298,20 @@ __device void svm_node_closure_holdout(ShaderData *sd, float *stack, uint4 node) if(mix_weight == 0.0f) return; + ShaderClosure *sc = svm_node_closure_get(sd); sc->weight = make_float3(mix_weight, mix_weight, mix_weight); + sc->type = CLOSURE_HOLDOUT_ID; } - else + else { + ShaderClosure *sc = svm_node_closure_get(sd); sc->weight = make_float3(1.0f, 1.0f, 1.0f); - - sc->sample_weight = 0.0f; + sc->type = CLOSURE_HOLDOUT_ID; + } #else ShaderClosure *sc = &sd->closure; + sc->type = CLOSURE_HOLDOUT_ID; #endif - sc->type = CLOSURE_HOLDOUT_ID; sd->flag |= SD_HOLDOUT; } diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index e6aff8590ad..9c72c01417a 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1370,7 +1370,7 @@ void BackgroundNode::compile(SVMCompiler& compiler) else compiler.add_node(NODE_CLOSURE_SET_WEIGHT, color_in->value*strength_in->value.x); - compiler.add_node(NODE_CLOSURE_BACKGROUND, CLOSURE_BACKGROUND_ID); + compiler.add_node(NODE_CLOSURE_BACKGROUND, compiler.closure_mix_weight_offset()); } void BackgroundNode::compile(OSLCompiler& compiler) -- cgit v1.2.3 From 3c9d69744e0aca3ffe3ace103233679988769e91 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 20 Oct 2011 16:05:32 +0000 Subject: Cycles: let cmake show error when not finding openimageio on linux. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bada40cd03..c57f42f416c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -525,7 +525,7 @@ if(UNIX AND NOT APPLE) endif() set(OPENIMAGEIO_ROOT_DIR ${OPENIMAGEIO}) - find_package(OpenImageIO) + find_package(OpenImageIO REQUIRED) set(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere -- cgit v1.2.3 From 586c631c88d7a4ea24810bf18ab96ed7ec542d37 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 22 Oct 2011 18:51:45 +0000 Subject: Cycles: when creating nodes from a blender material, set the diffuse color in the diffuse node, similar for lamps and world. --- intern/cycles/blender/addon/ui.py | 11 ++++--- source/blender/editors/space_node/node_edit.c | 46 ++++++++++++++++++++------- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 94a48e6c42d..d894f66c32e 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -348,7 +348,7 @@ def find_node_input(node, name): def panel_node_draw(layout, id, output_type, input_name): if not id.node_tree: - layout.prop(id, "use_nodes") + layout.prop(id, "use_nodes", icon='NODETREE') return ntree = id.node_tree @@ -435,7 +435,8 @@ class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return context.world and CyclesButtonsPanel.poll(context) + world = context.world + return world and world.node_tree and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -465,7 +466,8 @@ class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) + mat = context.material + return mat and mat.node_tree and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -484,7 +486,8 @@ class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return context.material and CyclesButtonsPanel.poll(context) + mat = context.material + return mat and mat.node_tree and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 10c5ca7ee1a..83f15243ebe 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -283,16 +283,18 @@ bNode *node_tree_get_editgroup(bNodeTree *nodetree) void ED_node_shader_default(Scene *scene, ID *id) { bNode *in, *out; - bNodeSocket *fromsock, *tosock; + bNodeSocket *fromsock, *tosock, *sock; bNodeTree *ntree; bNodeTemplate ntemp; int output_type, shader_type; + float color[3], strength = 1.0f; ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, 0); switch(GS(id->name)) { - case ID_MA: - ((Material*)id)->nodetree = ntree; + case ID_MA: { + Material *ma= (Material*)id; + ma->nodetree = ntree; if(scene_use_new_shading_nodes(scene)) { output_type = SH_NODE_OUTPUT_MATERIAL; @@ -302,17 +304,36 @@ void ED_node_shader_default(Scene *scene, ID *id) output_type = SH_NODE_OUTPUT; shader_type = SH_NODE_MATERIAL; } + + copy_v3_v3(color, &ma->r); + strength= 0.0f; break; - case ID_WO: - ((World*)id)->nodetree = ntree; + } + case ID_WO: { + World *wo= (World*)id; + + wo->nodetree = ntree; output_type = SH_NODE_OUTPUT_WORLD; shader_type = SH_NODE_BACKGROUND; + + copy_v3_v3(color, &wo->horr); + strength= 1.0f; break; - case ID_LA: + } + case ID_LA: { + Lamp *la= (Lamp*)id; + ((Lamp*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_LAMP; shader_type = SH_NODE_EMISSION; + + copy_v3_v3(color, &la->r); + if(la->type == LA_LOCAL || la->type == LA_SPOT || la->type == LA_AREA) + strength= 100.0f; + else + strength= 1.0f; break; + } default: printf("ED_node_shader_default called on wrong ID type.\n"); return; @@ -332,13 +353,14 @@ void ED_node_shader_default(Scene *scene, ID *id) tosock= out->inputs.first; nodeAddLink(ntree, in, fromsock, out, tosock); - if(GS(id->name) == ID_LA) { - Lamp *la= (Lamp*)id; + /* default values */ + if(scene_use_new_shading_nodes(scene)) { + sock= in->inputs.first; + copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, color); - if(la->type == LA_LOCAL || la->type == LA_SPOT || la->type == LA_AREA) { - bNodeSocket *sock= in->inputs.last; - bNodeSocketValueFloat *default_value= sock->default_value; - default_value->value= 100.0f; + if(strength != 0.0f) { + sock= in->inputs.last; + ((bNodeSocketValueFloat*)sock->default_value)->value= strength; } } -- cgit v1.2.3 From 83a44e48e7cb5cc6c794b50bb168a21144baeb06 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 22 Oct 2011 18:54:57 +0000 Subject: Cycles: some code changes to sync with trunk. --- source/blender/imbuf/IMB_imbuf_types.h | 12 + source/blender/render/CMakeLists.txt | 2 +- source/blender/render/SConscript | 2 +- source/blender/render/extern/include/RE_engine.h | 2 +- source/blender/render/intern/pipeline/engine.c | 311 --------------------- .../blender/render/intern/source/external_engine.c | 309 ++++++++++++++++++++ source/blender/render/intern/source/pipeline.c | 4 +- 7 files changed, 326 insertions(+), 316 deletions(-) delete mode 100644 source/blender/render/intern/pipeline/engine.c create mode 100644 source/blender/render/intern/source/external_engine.c diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h index c4872f370e5..f5e2bf71468 100644 --- a/source/blender/imbuf/IMB_imbuf_types.h +++ b/source/blender/imbuf/IMB_imbuf_types.h @@ -169,27 +169,39 @@ typedef struct ImBuf { #define JPG (1 << 27) #define BMP (1 << 26) +#ifdef WITH_QUICKTIME #define QUICKTIME (1 << 25) +#endif +#ifdef WITH_HDR #define RADHDR (1 << 24) +#endif +#ifdef WITH_TIFF #define TIF (1 << 23) #define TIF_16BIT (1 << 8 ) +#endif #define OPENEXR (1 << 22) #define OPENEXR_HALF (1 << 8 ) #define OPENEXR_COMPRESS (7) +#ifdef WITH_CINEON #define CINEON (1 << 21) #define DPX (1 << 20) +#endif +#ifdef WITH_DDS #define DDS (1 << 19) +#endif +#ifdef WITH_OPENJPEG #define JP2 (1 << 18) #define JP2_12BIT (1 << 17) #define JP2_16BIT (1 << 16) #define JP2_YCC (1 << 15) #define JP2_CINE (1 << 14) #define JP2_CINE_48FPS (1 << 13) +#endif #define RAWTGA (TGA | 1) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index f866e83c68e..d5b3bd5e311 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -56,6 +56,7 @@ set(SRC intern/raytrace/rayobject_vbvh.cpp intern/source/convertblender.c intern/source/envmap.c + intern/source/external_engine.c intern/source/gammaCorrectionTables.c intern/source/imagetexture.c intern/source/initrender.c @@ -78,7 +79,6 @@ set(SRC intern/source/volumetric.c intern/source/voxeldata.c intern/source/zbuf.c - intern/pipeline/engine.c extern/include/RE_engine.h extern/include/RE_pipeline.h diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index 1e19c6436b7..9c724187c27 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -1,7 +1,7 @@ #!/usr/bin/python Import ('env') -sources = env.Glob('intern/source/*.c') + env.Glob('intern/pipeline/*.c') +sources = env.Glob('intern/source/*.c') raysources = env.Glob('intern/raytrace/*.cpp') incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna' diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 7d5ba28cfa6..3df784a4e62 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -35,9 +35,9 @@ #define RE_ENGINE_H #include "DNA_listBase.h" -#include "DNA_vec_types.h" #include "RNA_types.h" +struct Object; struct Render; struct RenderEngine; struct RenderEngineType; diff --git a/source/blender/render/intern/pipeline/engine.c b/source/blender/render/intern/pipeline/engine.c deleted file mode 100644 index d67cd3cb88f..00000000000 --- a/source/blender/render/intern/pipeline/engine.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - * $Id$ - * - * ***** 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/render/intern/pipeline/engine.c - * \ingroup render - */ - -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "BLI_listbase.h" -#include "BLI_string.h" -#include "BLI_utildefines.h" - -#include "BKE_report.h" -#include "BKE_scene.h" - -#include "IMB_imbuf.h" -#include "IMB_imbuf_types.h" - -#include "intern/openexr/openexr_multi.h" - -#ifdef WITH_PYTHON -#include "BPY_extern.h" -#endif - -#include "RE_engine.h" -#include "RE_pipeline.h" - -#include "render_types.h" -#include "renderpipeline.h" - -/* Render Engine Types */ - -static RenderEngineType internal_render_type = { - NULL, NULL, - "BLENDER_RENDER", "Blender Render", RE_INTERNAL, - NULL, NULL, NULL, NULL, NULL, NULL, - {NULL, NULL, NULL}}; - -#ifdef WITH_GAMEENGINE - -static RenderEngineType internal_game_type = { - NULL, NULL, - "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, - NULL, NULL, NULL, NULL, NULL, NULL, - {NULL, NULL, NULL}}; - -#endif - -ListBase R_engines = {NULL, NULL}; - -void RE_engines_init(void) -{ - BLI_addtail(&R_engines, &internal_render_type); -#ifdef WITH_GAMEENGINE - BLI_addtail(&R_engines, &internal_game_type); -#endif -} - -void RE_engines_exit(void) -{ - RenderEngineType *type, *next; - - for(type=R_engines.first; type; type=next) { - next= type->next; - - BLI_remlink(&R_engines, type); - - if(!(type->flag & RE_INTERNAL)) { - if(type->ext.free) - type->ext.free(type->ext.data); - - MEM_freeN(type); - } - } -} - -RenderEngineType *RE_engines_find(const char *idname) -{ - RenderEngineType *type; - - type= BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname)); - if(!type) - type= &internal_render_type; - - return type; -} - -/* Create, Free */ - -RenderEngine *RE_engine_create(RenderEngineType *type) -{ - RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine"); - engine->type= type; - - return engine; -} - -void RE_engine_free(RenderEngine *engine) -{ -#ifdef WITH_PYTHON - if(engine->py_instance) { - BPY_DECREF(engine->py_instance); - } -#endif - - if(engine->text) - MEM_freeN(engine->text); - - MEM_freeN(engine); -} - -/* Render Results */ - -RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h) -{ - Render *re= engine->re; - RenderResult *result; - rcti disprect; - - /* ensure the coordinates are within the right limits */ - CLAMP(x, 0, re->result->rectx); - CLAMP(y, 0, re->result->recty); - CLAMP(w, 0, re->result->rectx); - CLAMP(h, 0, re->result->recty); - - if(x + w > re->result->rectx) - w= re->result->rectx - x; - if(y + h > re->result->recty) - h= re->result->recty - y; - - /* allocate a render result */ - disprect.xmin= x; - disprect.xmax= x+w; - disprect.ymin= y; - disprect.ymax= y+h; - - result= new_render_result(re, &disprect, 0, RR_USEMEM); - BLI_addtail(&engine->fullresult, result); - - return result; -} - -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 - re->display_draw(re->ddh, result, NULL); - } -} - -void RE_engine_end_result(RenderEngine *engine, RenderResult *result) -{ - Render *re= engine->re; - - 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))) - merge_render_result(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 */ - free_render_result(&engine->fullresult, result); -} - -/* Cancel */ - -int RE_engine_test_break(RenderEngine *engine) -{ - Render *re= engine->re; - - if(re) - return re->test_break(re->tbh); - - return 0; -} - -/* Statistics */ - -void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info) -{ - Render *re= engine->re; - - /* stats draw callback */ - if(re) { - re->i.statstr= stats; - re->i.infostr= info; - re->stats_draw(re->sdh, &re->i); - re->i.infostr= NULL; - re->i.statstr= NULL; - } - - /* set engine text */ - if(engine->text) { - MEM_freeN(engine->text); - engine->text= NULL; - } - - if(stats && stats[0] && info && info[0]) - engine->text= BLI_sprintfN("%s | %s", stats, info); - else if(info && info[0]) - engine->text= BLI_strdup(info); - else if(stats && stats[0]) - engine->text= BLI_strdup(stats); -} - -void RE_engine_update_progress(RenderEngine *engine, float progress) -{ - Render *re= engine->re; - - if(re) { - CLAMP(progress, 0.0f, 1.0f); - re->progress(re->prh, progress); - } -} - -void RE_engine_report(RenderEngine *engine, int type, const char *msg) -{ - BKE_report(engine->re->reports, type, msg); -} - -/* Render */ - -int RE_engine_render(Render *re, int do_all) -{ - RenderEngineType *type= RE_engines_find(re->r.engine); - RenderEngine *engine; - - /* verify if we can render */ - if(!type->render) - return 0; - if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_USE_PREVIEW)) - return 0; - if(do_all && !(type->flag & RE_USE_POSTPROCESS)) - return 0; - if(!do_all && (type->flag & RE_USE_POSTPROCESS)) - return 0; - - /* create render result */ - BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); - if(re->result==NULL || !(re->r.scemode & R_PREVIEWBUTS)) { - RE_FreeRenderResult(re->result); - re->result= new_render_result(re, &re->disprect, 0, 0); - } - BLI_rw_mutex_unlock(&re->resultmutex); - - if(re->result==NULL) - return 1; - - /* render */ - engine = RE_engine_create(type); - engine->re= re; - - if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) - scene_update_for_newframe(re->main, re->scene, re->lay); - - if(re->r.scemode & R_PREVIEWBUTS) { - //type->preview_update(engine, scene, id); - type->preview_render(engine); - } - else { - type->update(engine, re->main, re->scene); - type->render(engine); - } - - free_render_result(&engine->fullresult, engine->fullresult.first); - - RE_engine_free(engine); - - return 1; -} - diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c new file mode 100644 index 00000000000..2c8023afce0 --- /dev/null +++ b/source/blender/render/intern/source/external_engine.c @@ -0,0 +1,309 @@ +/* + * $Id$ + * + * ***** 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/render/intern/pipeline/engine.c + * \ingroup render + */ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_listbase.h" +#include "BLI_string.h" +#include "BLI_utildefines.h" + +#include "BKE_report.h" +#include "BKE_scene.h" + +#include "IMB_imbuf.h" +#include "IMB_imbuf_types.h" + +#ifdef WITH_PYTHON +#include "BPY_extern.h" +#endif + +#include "RE_engine.h" +#include "RE_pipeline.h" + +#include "render_types.h" +#include "renderpipeline.h" + +/* Render Engine Types */ + +static RenderEngineType internal_render_type = { + NULL, NULL, + "BLENDER_RENDER", "Blender Render", RE_INTERNAL, + NULL, NULL, NULL, NULL, NULL, NULL, + {NULL, NULL, NULL}}; + +#ifdef WITH_GAMEENGINE + +static RenderEngineType internal_game_type = { + NULL, NULL, + "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, + NULL, NULL, NULL, NULL, NULL, NULL, + {NULL, NULL, NULL}}; + +#endif + +ListBase R_engines = {NULL, NULL}; + +void RE_engines_init(void) +{ + BLI_addtail(&R_engines, &internal_render_type); +#ifdef WITH_GAMEENGINE + BLI_addtail(&R_engines, &internal_game_type); +#endif +} + +void RE_engines_exit(void) +{ + RenderEngineType *type, *next; + + for(type=R_engines.first; type; type=next) { + next= type->next; + + BLI_remlink(&R_engines, type); + + if(!(type->flag & RE_INTERNAL)) { + if(type->ext.free) + type->ext.free(type->ext.data); + + MEM_freeN(type); + } + } +} + +RenderEngineType *RE_engines_find(const char *idname) +{ + RenderEngineType *type; + + type= BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname)); + if(!type) + type= &internal_render_type; + + return type; +} + +/* Create, Free */ + +RenderEngine *RE_engine_create(RenderEngineType *type) +{ + RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine"); + engine->type= type; + + return engine; +} + +void RE_engine_free(RenderEngine *engine) +{ +#ifdef WITH_PYTHON + if(engine->py_instance) { + BPY_DECREF(engine->py_instance); + } +#endif + + if(engine->text) + MEM_freeN(engine->text); + + MEM_freeN(engine); +} + +/* Render Results */ + +RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h) +{ + Render *re= engine->re; + RenderResult *result; + rcti disprect; + + /* ensure the coordinates are within the right limits */ + CLAMP(x, 0, re->result->rectx); + CLAMP(y, 0, re->result->recty); + CLAMP(w, 0, re->result->rectx); + CLAMP(h, 0, re->result->recty); + + if(x + w > re->result->rectx) + w= re->result->rectx - x; + if(y + h > re->result->recty) + h= re->result->recty - y; + + /* allocate a render result */ + disprect.xmin= x; + disprect.xmax= x+w; + disprect.ymin= y; + disprect.ymax= y+h; + + result= new_render_result(re, &disprect, 0, RR_USEMEM); + BLI_addtail(&engine->fullresult, result); + + return result; +} + +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 + re->display_draw(re->ddh, result, NULL); + } +} + +void RE_engine_end_result(RenderEngine *engine, RenderResult *result) +{ + Render *re= engine->re; + + 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))) + merge_render_result(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 */ + free_render_result(&engine->fullresult, result); +} + +/* Cancel */ + +int RE_engine_test_break(RenderEngine *engine) +{ + Render *re= engine->re; + + if(re) + return re->test_break(re->tbh); + + return 0; +} + +/* Statistics */ + +void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info) +{ + Render *re= engine->re; + + /* stats draw callback */ + if(re) { + re->i.statstr= stats; + re->i.infostr= info; + re->stats_draw(re->sdh, &re->i); + re->i.infostr= NULL; + re->i.statstr= NULL; + } + + /* set engine text */ + if(engine->text) { + MEM_freeN(engine->text); + engine->text= NULL; + } + + if(stats && stats[0] && info && info[0]) + engine->text= BLI_sprintfN("%s | %s", stats, info); + else if(info && info[0]) + engine->text= BLI_strdup(info); + else if(stats && stats[0]) + engine->text= BLI_strdup(stats); +} + +void RE_engine_update_progress(RenderEngine *engine, float progress) +{ + Render *re= engine->re; + + if(re) { + CLAMP(progress, 0.0f, 1.0f); + re->progress(re->prh, progress); + } +} + +void RE_engine_report(RenderEngine *engine, int type, const char *msg) +{ + BKE_report(engine->re->reports, type, msg); +} + +/* Render */ + +int RE_engine_render(Render *re, int do_all) +{ + RenderEngineType *type= RE_engines_find(re->r.engine); + RenderEngine *engine; + + /* verify if we can render */ + if(!type->render) + return 0; + if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_USE_PREVIEW)) + return 0; + if(do_all && !(type->flag & RE_USE_POSTPROCESS)) + return 0; + if(!do_all && (type->flag & RE_USE_POSTPROCESS)) + return 0; + + /* create render result */ + BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); + if(re->result==NULL || !(re->r.scemode & R_PREVIEWBUTS)) { + RE_FreeRenderResult(re->result); + re->result= new_render_result(re, &re->disprect, 0, 0); + } + BLI_rw_mutex_unlock(&re->resultmutex); + + if(re->result==NULL) + return 1; + + /* render */ + engine = RE_engine_create(type); + engine->re= re; + + if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) + scene_update_for_newframe(re->main, re->scene, re->lay); + + if(re->r.scemode & R_PREVIEWBUTS) { + //type->preview_update(engine, scene, id); + type->preview_render(engine); + } + else { + type->update(engine, re->main, re->scene); + type->render(engine); + } + + free_render_result(&engine->fullresult, engine->fullresult.first); + + RE_engine_free(engine); + + return 1; +} + diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 864707d7060..567e1934f97 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -965,7 +965,7 @@ static void renderresult_add_names(RenderResult *rr) } /* called for reading temp files, and for external engines */ -static int read_render_result_from_file(const char *filename, RenderResult *rr, int external) +static int read_render_result_from_file(const char *filename, RenderResult *rr) { RenderLayer *rl; RenderPass *rpass; @@ -1029,7 +1029,7 @@ static int read_render_result(Render *re, int sample) render_unique_exr_name(re, str, sample); printf("read exr tmp file: %s\n", str); - if(read_render_result_from_file(str, re->result, 0)) { + if(read_render_result_from_file(str, re->result)) { success= TRUE; } else { -- cgit v1.2.3 From 05334492a3708812c6ffe45db629738ec19dbda1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 24 Oct 2011 19:32:10 +0000 Subject: Cycles: theme changes, some code syncing with trunk. --- intern/cycles/blender/addon/ui.py | 1 - source/blender/editors/datafiles/bfont.ttf.c | 11885 ++++++++--------- source/blender/editors/datafiles/bmonofont.ttf.c | 13316 ++++++++++++++----- source/blender/editors/gpencil/drawgpencil.c | 10 +- source/blender/editors/include/ED_gpencil.h | 3 +- source/blender/editors/interface/interface_draw.c | 15 +- .../blender/editors/interface/interface_intern.h | 2 +- source/blender/editors/interface/interface_panel.c | 13 +- source/blender/editors/interface/interface_style.c | 2 +- .../blender/editors/interface/interface_widgets.c | 18 +- source/blender/editors/screen/area.c | 259 +- source/blender/editors/space_view3d/drawmesh.c | 12 +- source/blender/editors/space_view3d/space_view3d.c | 19 +- source/blender/editors/space_view3d/view3d_draw.c | 88 +- .../blender/editors/space_view3d/view3d_intern.h | 3 +- source/blender/editors/space_view3d/view3d_ops.c | 1 - .../blender/editors/space_view3d/view3d_toolbar.c | 42 +- 17 files changed, 15956 insertions(+), 9733 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index d894f66c32e..f9e178a2d3a 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -363,7 +363,6 @@ def panel_node_draw(layout, id, output_type, input_name): class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel): bl_label = "Lamp" bl_context = "data" - bl_options = {'DEFAULT_CLOSED'} @classmethod def poll(cls, context): diff --git a/source/blender/editors/datafiles/bfont.ttf.c b/source/blender/editors/datafiles/bfont.ttf.c index 379af401075..3ebd06a47df 100644 --- a/source/blender/editors/datafiles/bfont.ttf.c +++ b/source/blender/editors/datafiles/bfont.ttf.c @@ -2,4533 +2,5621 @@ * \ingroup eddatafiles */ /* DataToC output of file */ - -int datatoc_bfont_ttf_size= 190044; + +int datatoc_bfont_ttf_size= 191532; char datatoc_bfont_ttf[]= { - 0, 1, 0, 0, 0, 19, 1, 0, 0, 4, 0, 48, 71, 68, 69, 70, 0, 38, 3,135, 0, 2, 61, 32, 0, 0, 0, 30, - 71, 80, 79, 83,148,189,162,240, 0, 2, 61, 64, 0, 0,168,250, 71, 83, 85, 66,108,145,116,143, 0, 2,230, 60, 0, 0, 0, 32, - 76, 84, 83, 72,201,155,185, 32, 0, 0, 16, 28, 0, 0, 3,134, 79, 83, 47, 50,160,203,149,139, 0, 0, 1,184, 0, 0, 0, 96, - 99,109, 97,112,206, 17,212,162, 0, 0, 86,120, 0, 0, 7,158, 99,118,116, 32, 57,126, 62, 76, 0, 0,104, 12, 0, 0, 1,252, -102,112,103,109,115,211, 35,176, 0, 0, 94, 24, 0, 0, 7, 5,103, 97,115,112, 0, 4, 0, 7, 0, 2, 61, 20, 0, 0, 0, 12, -103,108,121,102,197,190, 63,150, 0, 0,113, 16, 0, 1,168, 30,104,100,109,120,239, 14,250,171, 0, 0, 19,164, 0, 0, 66,212, -104,101, 97,100,234,253,135,111, 0, 0, 1, 60, 0, 0, 0, 54,104,104,101, 97, 12, 83, 9,164, 0, 0, 1,116, 0, 0, 0, 36, -104,109,116,120,210,203, 46, 39, 0, 0, 2, 24, 0, 0, 14, 4,108,111, 99, 97,146,250, 41, 76, 0, 0,106, 8, 0, 0, 7, 6, -109, 97,120,112, 6, 42, 2,133, 0, 0, 1,152, 0, 0, 0, 32,110, 97,109,101,181, 88,144, 86, 0, 2, 25, 48, 0, 0, 6,162, -112,111,115,116,216, 80,169, 39, 0, 2, 31,212, 0, 0, 29, 63,112,114,101,112,130,220, 33, 19, 0, 0,101, 32, 0, 0, 2,236, - 0, 1, 0, 0, 0, 1, 0, 0, 89,115,200,195, 95, 15, 60,245, 0, 25, 8, 0, 0, 0, 0, 0,193,154, 51, 0, 0, 0, 0, 0, -197, 83, 9, 61,251,137,253,213, 9, 90, 8, 98, 0, 0, 0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7,109,254, 29, - 0, 0, 9,100,251,137,254,162, 9, 90, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,128, 0, 1, 0, 0, - 3,130, 0,160, 0, 22, 0,122, 0, 5, 0, 2, 0, 16, 0, 47, 0, 90, 0, 0, 2, 31, 1, 57, 0, 3, 0, 1, 0, 3, 4,153, - 1,144, 0, 5, 0, 8, 5,154, 5, 51, 0, 0, 1, 30, 5,154, 5, 51, 0, 0, 3,208, 0,102, 1,242, 0, 0, 2, 11, 6, 6, - 3, 8, 4, 2, 2, 4,224, 0, 2,239, 64, 0, 32, 91, 0, 0, 0, 40, 0, 0, 0, 0, 49, 65, 83, 67, 0, 64, 0, 32,255,253, - 6, 31,254, 20, 0,132, 7,109, 1,227, 32, 0, 1,159, 0, 0, 0, 0, 4, 74, 5,182, 0, 0, 0, 32, 0, 2, 4,205, 0,193, - 0, 0, 0, 0, 4, 20, 0, 0, 2, 20, 0, 0, 2, 39, 0,147, 3, 55, 0,133, 5, 43, 0, 51, 4,104, 0,123, 6,154, 0,102, - 5,158, 0,109, 1,207, 0,133, 2,104, 0, 82, 2,104, 0, 61, 4,104, 0, 82, 4,104, 0,102, 2, 0, 0, 63, 2,147, 0, 82, - 2, 37, 0,147, 2,252, 0, 20, 4,104, 0, 98, 4,104, 0,178, 4,104, 0, 96, 4,104, 0, 82, 4,104, 0, 23, 4,104, 0,131, - 4,104, 0,113, 4,104, 0, 90, 4,104, 0,106, 4,104, 0,106, 2, 37, 0,147, 2, 37, 0, 63, 4,104, 0,102, 4,104, 0,102, - 4,104, 0,102, 3,104, 0, 37, 6,238, 0,109, 4,221, 0, 0, 4,248, 0,199, 4,211, 0,125, 5,121, 0,199, 4, 57, 0,199, - 3,238, 0,199, 5,133, 0,125, 5,156, 0,199, 2,182, 0, 82, 2, 43,255, 72, 4,162, 0,199, 3,238, 0,199, 6,246, 0,199, - 5,213, 0,199, 5,240, 0,125, 4,156, 0,199, 5,238, 0,125, 4,184, 0,199, 4, 39, 0,104, 4, 39, 0, 20, 5,150, 0,184, - 4,139, 0, 0, 7, 18, 0, 20, 4, 96, 0, 0, 4, 55, 0, 0, 4, 80, 0, 82, 2,109, 0,164, 2,252, 0, 23, 2,109, 0, 51, - 4, 66, 0, 41, 3, 74,255,252, 4,158, 1,137, 4, 63, 0, 94, 4,176, 0,174, 3,180, 0,113, 4,176, 0,113, 4, 72, 0,113, - 2,162, 0, 29, 4, 37, 0, 37, 4,182, 0,174, 2, 18, 0,160, 2, 18,255,188, 3,248, 0,174, 2, 18, 0,174, 7, 43, 0,174, - 4,182, 0,174, 4,158, 0,113, 4,176, 0,174, 4,176, 0,113, 3, 49, 0,174, 3,156, 0, 90, 2,182, 0, 33, 4,182, 0,164, - 3,213, 0, 0, 5,248, 0, 20, 4, 0, 0, 35, 3,233, 0, 10, 3,135, 0, 82, 2,213, 0, 61, 4,104, 1,233, 2,213, 0, 51, - 4,104, 0,102, 2, 20, 0, 0, 2, 39, 0,147, 4,104, 0,188, 4,104, 0, 68, 4,104, 0,123, 4,104, 0, 29, 4,104, 1,233, - 3,227, 0,121, 4,158, 1, 51, 6,168, 0,100, 2,166, 0, 68, 3,229, 0, 82, 4,104, 0,102, 2,147, 0, 82, 6,168, 0,100, - 4, 0,255,250, 3,109, 0,123, 4,104, 0,102, 2,166, 0, 49, 2,166, 0, 31, 4,158, 1,137, 4,193, 0,174, 5, 61, 0,113, - 2, 37, 0,147, 1,164, 0, 35, 2,166, 0, 63, 2,205, 0, 66, 3,229, 0, 84, 5,229, 0, 63, 5,229, 0, 44, 5,229, 0, 31, - 3,104, 0, 68, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 4,221, 0, 0, 6,209,255,254, - 4,211, 0,125, 4, 57, 0,199, 4, 57, 0,199, 4, 57, 0,199, 4, 57, 0,199, 2,182, 0, 62, 2,182, 0, 82, 2,182, 0, 17, - 2,182, 0, 64, 5,121, 0, 47, 5,213, 0,199, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, 5,240, 0,125, - 4,104, 0,141, 5,240, 0,125, 5,150, 0,184, 5,150, 0,184, 5,150, 0,184, 5,150, 0,184, 4, 55, 0, 0, 4,156, 0,199, - 4,209, 0,174, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 4, 63, 0, 94, 6,170, 0, 94, - 3,180, 0,113, 4, 72, 0,113, 4, 72, 0,113, 4, 72, 0,113, 4, 72, 0,113, 2, 18,255,222, 2, 18, 0,174, 2, 18,255,189, - 2, 18,255,238, 4,158, 0,111, 4,182, 0,174, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, 4,158, 0,113, - 4,104, 0,102, 4,158, 0,115, 4,182, 0,164, 4,182, 0,164, 4,182, 0,164, 4,182, 0,164, 3,233, 0, 10, 4,176, 0,174, - 3,233, 0, 10, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,211, 0,125, - 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 4,211, 0,125, 3,180, 0,113, 5,121, 0,199, - 4,176, 0,113, 5,121, 0, 47, 4,176, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, - 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 5,133, 0,125, 4, 37, 0, 37, 5,133, 0,125, - 4, 37, 0, 37, 5,133, 0,125, 4, 37, 0, 37, 5,133, 0,125, 4, 37, 0, 37, 5,156, 0,199, 4,182, 0,174, 5,156, 0, 0, - 4,182, 0, 18, 2,182,255,245, 2, 18,255,163, 2,182, 0, 61, 2, 18,255,235, 2,182, 0, 48, 2, 18,255,222, 2,182, 0, 82, - 2, 18, 0, 68, 2,182, 0, 82, 2, 18, 0,174, 4,225, 0, 82, 4, 37, 0,160, 2, 43,255, 72, 2, 18,255,188, 4,162, 0,199, - 3,248, 0,174, 3,248, 0,174, 3,238, 0,199, 2, 18, 0,171, 3,238, 0,199, 2, 18, 0,102, 3,238, 0,199, 2, 18, 0,174, - 3,238, 0,199, 2,102, 0,174, 3,238, 0, 29, 2, 18,255,246, 5,213, 0,199, 4,182, 0,174, 5,213, 0,199, 4,182, 0,174, - 5,213, 0,199, 4,182, 0,174, 5, 70,255,255, 5,213, 0,199, 4,182, 0,174, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, - 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 7, 31, 0,125, 7, 72, 0,113, 4,184, 0,199, 3, 49, 0,174, 4,184, 0,199, - 3, 49, 0, 96, 4,184, 0,199, 3, 49, 0,114, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0,104, - 3,156, 0, 90, 4, 39, 0,104, 3,156, 0, 90, 4, 39, 0, 20, 2,182, 0, 33, 4, 39, 0, 20, 2,182, 0, 33, 4, 39, 0, 20, - 2,182, 0, 33, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, - 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 7, 18, 0, 20, 5,248, 0, 20, 4, 55, 0, 0, - 3,233, 0, 10, 4, 55, 0, 0, 4, 80, 0, 82, 3,135, 0, 82, 4, 80, 0, 82, 3,135, 0, 82, 4, 80, 0, 82, 3,135, 0, 82, - 2, 76, 0,174, 4,104, 0,203, 4,221, 0, 0, 4, 63, 0, 94, 6,209,255,254, 6,170, 0, 94, 5,240, 0,125, 4,158, 0,115, - 4, 39, 0,104, 3,156, 0, 90, 4,158, 1, 2, 4,158, 1, 2, 4,117, 1, 27, 4,158, 1, 33, 2, 18, 0,160, 4,158, 1,109, - 1,123, 0, 31, 4,158, 1, 2, 4,158, 0,223, 4,158, 1,248, 4,158, 1, 20, 4,221,255,233, 2, 37, 0,147, 4,201,255,231, - 6, 23,255,231, 3,178,255,231, 6, 66,255,231, 5, 84,255,231, 6, 74,255,231, 2,158,255,228, 4,221, 0, 0, 4,248, 0,199, - 3,238, 0,199, 4,139, 0, 37, 4, 57, 0,199, 4, 80, 0, 82, 5,156, 0,199, 5,240, 0,125, 2,182, 0, 82, 4,162, 0,199, - 4,139, 0, 0, 6,246, 0,199, 5,213, 0,199, 4, 63, 0, 82, 5,240, 0,125, 5,135, 0,199, 4,156, 0,199, 4, 66, 0, 78, - 4, 39, 0, 20, 4, 55, 0, 0, 6, 35, 0,104, 4, 96, 0, 0, 6, 35, 0,104, 5,240, 0, 78, 2,182, 0, 64, 4, 55, 0, 0, - 4,176, 0,113, 3,160, 0, 90, 4,182, 0,174, 2,158, 0,164, 4,184, 0,164, 4,176, 0,113, 4,209, 0,174, 3,233, 0, 10, - 4,158, 0,111, 3,160, 0, 90, 3,164, 0,113, 4,182, 0,174, 4,135, 0,113, 2,158, 0,164, 3,248, 0,174, 4, 23,255,242, - 4,193, 0,174, 4, 35, 0, 0, 3,164, 0,113, 4,158, 0,113, 5, 10, 0, 25, 4,158, 0,164, 3,164, 0,113, 4,180, 0,113, - 3,152, 0, 18, 4,184, 0,164, 5,150, 0,113, 4, 49,255,236, 5,236, 0,164, 6, 6, 0,113, 2,158, 0, 21, 4,184, 0,164, - 4,158, 0,113, 4,184, 0,164, 6, 6, 0,113, 4, 57, 0,199, 5,160, 0, 20, 3,238, 0,199, 4,211, 0,125, 4, 39, 0,104, - 2,182, 0, 82, 2,182, 0, 64, 2, 43,255, 72, 7, 72, 0, 0, 7,117, 0,199, 5,160, 0, 20, 4,162, 0,199, 4,174, 0, 25, - 5,135, 0,199, 4,221, 0, 0, 4,156, 0,199, 4,248, 0,199, 3,238, 0,199, 5, 51, 0, 14, 4, 57, 0,199, 6,133, 0, 4, - 4, 92, 0, 72, 5,213, 0,201, 5,213, 0,201, 4,162, 0,199, 5, 90, 0, 0, 6,246, 0,199, 5,156, 0,199, 5,240, 0,125, - 5,135, 0,199, 4,156, 0,199, 4,211, 0,125, 4, 39, 0, 20, 4,174, 0, 25, 6, 35, 0,104, 4, 96, 0, 0, 5,154, 0,199, - 5, 72, 0,166, 7,250, 0,199, 7,250, 0,199, 5, 61, 0, 20, 6,150, 0,199, 4,156, 0,199, 4,193, 0, 59, 8, 29, 0,199, - 4,184, 0, 25, 4, 63, 0, 94, 4,143, 0,117, 4,137, 0,174, 3, 51, 0,174, 4, 96, 0, 41, 4, 72, 0,113, 5,195, 0, 4, - 3,174, 0, 68, 4,233, 0,174, 4,233, 0,174, 3,238, 0,174, 4, 94, 0, 16, 5,190, 0,174, 4,233, 0,174, 4,158, 0,113, - 4,193, 0,174, 4,176, 0,174, 3,180, 0,113, 3,135, 0, 41, 3,233, 0, 10, 5,147, 0,113, 4, 0, 0, 35, 4,209, 0,174, - 4,172, 0,154, 6,244, 0,174, 7, 4, 0,174, 5,109, 0, 41, 5,254, 0,174, 4,137, 0,174, 3,178, 0, 55, 6,121, 0,174, - 4, 63, 0, 35, 4, 72, 0,113, 4,182, 0, 18, 3, 51, 0,174, 3,180, 0,113, 3,156, 0, 90, 2, 18, 0,160, 2, 18,255,238, - 2, 18,255,188, 6,131, 0, 16, 6,229, 0,174, 4,182, 0, 18, 3,238, 0,174, 3,233, 0, 10, 4,193, 0,174, 3,238, 0,199, - 3, 51, 0,174, 7, 18, 0, 20, 5,248, 0, 20, 7, 18, 0, 20, 5,248, 0, 20, 7, 18, 0, 20, 5,248, 0, 20, 4, 55, 0, 0, - 3,233, 0, 10, 4, 0, 0, 82, 8, 0, 0, 82, 8, 0, 0, 82, 3, 74,255,252, 1,102, 0, 23, 1,102, 0, 23, 2, 0, 0, 63, - 1,102, 0, 25, 2,231, 0, 23, 2,231, 0, 23, 3,129, 0, 63, 3,227, 0,123, 3,248, 0,123, 3, 2, 0,150, 6,111, 0,147, - 9, 90, 0,102, 1,207, 0,133, 3, 55, 0,133, 2, 78, 0, 82, 2, 78, 0, 82, 3,246, 0,147, 1, 10,254,160, 2,248, 0,106, - 4,104, 0, 96, 4,104, 0, 68, 6, 0, 0,150, 4,104, 0, 63, 6,104, 0,141, 4, 0, 0,119, 7,231, 0,199, 5,254, 0, 37, - 5,240, 0, 78, 4,244, 0,102, 6, 14, 0, 83, 6, 14, 0, 51, 6, 14, 0, 79, 6, 14, 0,113, 4,166, 0, 98, 4,139, 0, 41, - 5,238, 0,199, 5, 12, 0, 74, 4,104, 0,102, 4,100, 0, 37, 5,168, 0,119, 3, 25, 0, 16, 4,104, 0,102, 4,104, 0,102, - 4,104, 0,102, 4,104, 0,102, 4,170, 0,109, 4,180, 0, 29, 4,180, 0, 29, 4,158, 0,207, 2, 18,255,188, 4, 0, 1,135, - 4, 0, 1,111, 4, 0, 1,125, 2,166, 0, 37, 2,166, 0, 12, 2,166, 0, 59, 2,166, 0, 37, 2,166, 0, 47, 2,166, 0, 49, - 2,166, 0, 33, 4, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2,171, 0, 0, 2, 0, 0, 0, 1, 85, 0, 0, - 4,104, 0, 0, 2, 37, 0, 0, 1,154, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 84, 8, 0, 0, 84, - 2, 18,255,188, 1,102, 0, 23, 4,205, 0, 10, 4, 82, 0, 0, 6,160, 0, 18, 6,246, 0,199, 7, 43, 0,174, 4,221, 0, 0, - 4, 63, 0, 94, 6, 66,254,211, 2,170, 0,115, 3, 51, 0,147, 7, 86, 0, 29, 7, 86, 0, 29, 5,240, 0,125, 4,170, 0,113, - 5,244, 0,184, 5, 47, 0,164, 0, 0,252,143, 0, 0,253, 72, 0, 0,252, 70, 0, 0,253, 4, 0, 0,253, 49, 4, 57, 0,199, - 5,213, 0,201, 4, 72, 0,113, 4,233, 0,174, 7,219, 0,125, 6,111, 0, 0, 5, 37, 0, 20, 4,221, 0, 20, 7, 39, 0,199, - 5,182, 0,174, 5, 47, 0, 0, 4,100, 0, 10, 7, 41, 0,199, 6, 18, 0,174, 5,127, 0, 20, 4,240, 0, 10, 7,139, 0,199, - 6,162, 0,174, 4, 94, 0, 57, 3,174, 0, 23, 6, 35, 0,104, 5,236, 0,164, 5,240, 0,125, 4,158, 0,113, 4,193, 0, 0, - 3,221, 0, 0, 4,193, 0, 0, 3,221, 0, 0, 9,100, 0,125, 8, 88, 0,113, 6, 63, 0,125, 5, 25, 0,113, 7,178, 0,125, - 6, 80, 0,113, 7,219, 0,125, 6,111, 0, 0, 4,211, 0,125, 3,180, 0,113, 4,223, 0,104, 4,117, 0,201, 4,158, 0,244, - 4,158, 1,225, 4,158, 1,225, 7,233, 0, 41, 7,166, 0, 41, 5,231, 0,201, 4,252, 0,174, 4,156, 0, 47, 4,137, 0, 18, - 4,156, 0,199, 4,176, 0,174, 3,238, 0, 47, 3, 51, 0, 18, 5, 0, 0,199, 4, 8, 0,174, 6,233, 0, 4, 6, 35, 0, 4, - 4, 92, 0, 72, 3,174, 0, 68, 5, 10, 0,199, 4, 74, 0,174, 4,162, 0,199, 4, 43, 0,174, 4,162, 0, 47, 3,248, 0, 18, - 5, 68, 0, 20, 4,209, 0, 41, 5,205, 0,229, 4,250, 0,174, 6, 92, 0,229, 5,172, 0,174, 8, 68, 0,199, 6,184, 0,174, - 5,236, 0,125, 4,242, 0,113, 4,211, 0,125, 3,180, 0,113, 4, 39, 0, 20, 3,135, 0, 41, 4, 55, 0, 0, 3,213, 0, 0, - 4, 55, 0, 0, 3,213, 0, 0, 4,211, 0, 0, 4, 61, 0, 35, 6,137, 0, 20, 5,139, 0, 41, 5, 72, 0,166, 4,188, 0,154, - 5, 72, 0,166, 4,172, 0,154, 5, 72, 0,199, 4,172, 0,174, 6,119, 0, 61, 5, 29, 0, 51, 6,119, 0, 61, 5, 29, 0, 51, - 2,182, 0, 82, 6,133, 0, 4, 5,195, 0, 4, 5, 74, 0,199, 4, 45, 0,174, 5,106, 0, 0, 4,113, 0, 16, 5,156, 0,229, - 4,233, 0,174, 5,203, 0,229, 4,252, 0,174, 5, 72, 0,166, 4,172, 0,154, 7, 6, 0,199, 5,209, 0,174, 2,182, 0, 82, - 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 6,209,255,254, 6,170, 0, 94, 4, 57, 0,199, 4, 72, 0,113, - 5,143, 0,113, 4, 72, 0,102, 5,143, 0,113, 4, 72, 0,102, 6,133, 0, 4, 5,195, 0, 4, 4, 92, 0, 72, 3,174, 0, 68, - 4, 92, 0, 72, 3,184, 0, 27, 5,213, 0,201, 4,233, 0,174, 5,213, 0,201, 4,233, 0,174, 5,240, 0,125, 4,158, 0,113, - 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 4,193, 0, 59, 3,178, 0, 55, 4,174, 0, 25, 3,233, 0, 10, - 4,174, 0, 25, 3,233, 0, 10, 4,174, 0, 25, 3,233, 0, 10, 5, 72, 0,166, 4,172, 0,154, 3,238, 0,199, 3, 51, 0,174, - 6,150, 0,199, 5,254, 0,174, 3,238, 0, 47, 3, 51, 0, 18, 4,195, 0, 0, 4, 47, 0, 35, 4, 96, 0, 0, 4, 0, 0, 35, - 4,156, 0,137, 4,176, 0,113, 6,244, 0,137, 6,254, 0,113, 6,252, 0, 78, 6, 70, 0, 80, 4,197, 0, 78, 4, 16, 0, 80, - 7,164, 0, 0, 6,164, 0, 16, 7,229, 0,199, 7, 47, 0,174, 5,195, 0,125, 4,225, 0,113, 5,129, 0, 20, 5, 18, 0, 41, - 4, 92, 0,111, 3,174, 0, 92, 5, 90, 0, 0, 4, 94, 0, 16, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, - 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 18, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, - 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, - 4,221, 0, 0, 4, 63, 0, 94, 4,221, 0, 0, 4, 63, 0, 94, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, - 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0, 39, 4, 72, 0, 18, 4, 57, 0,199, 4, 72, 0,113, - 4, 57, 0,199, 4, 72, 0,113, 4, 57, 0,199, 4, 72, 0,113, 2,182, 0, 82, 2, 18, 0, 98, 2,182, 0, 82, 2, 18, 0,158, - 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0, 51, - 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,170, 0,113, - 5,240, 0,125, 4,170, 0,113, 5,240, 0,125, 4,170, 0,113, 5,240, 0,125, 4,158, 0,113, 5,240, 0,125, 4,170, 0,113, - 5,150, 0,184, 4,182, 0,164, 5,150, 0,184, 4,182, 0,164, 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, - 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, 5,244, 0,184, 5, 47, 0,164, 4, 55, 0, 0, 3,233, 0, 10, - 4, 55, 0, 0, 3,233, 0, 10, 4, 55, 0, 0, 3,233, 0, 10, 4,176, 0,113, 0, 0,251,219, 0, 0,252,106, 0, 0,251,137, - 0, 0,252,106, 0, 0,252,100, 0, 0,252,115, 0, 0,252,115, 0, 0,252,115, 0, 0,252,100, 1,164, 0, 49, 0, 16, 0, 16, - 0, 0, 3,130, 1, 1, 1, 26, 40, 24, 1, 1, 10, 1, 43, 1, 1, 10, 11, 22, 1, 20, 5, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 20, 20, 11, 11, 11, 28, 11, 38, 34, 20, 11, 1, 18, 11, 21, 25, 21, 21, 20, 28, 25, 34, 19, 30, 22, 27, 27, 21, 23, 16, 16, - 38, 18, 1, 5, 1, 32, 1, 1, 17, 11, 28, 11, 21, 42, 25, 46, 12, 12, 10, 12, 24, 46, 21, 11, 11, 18, 42, 11, 46, 25, 11, 26, - 22, 18, 25, 24, 25, 11, 26, 40, 11, 11, 11, 11, 24, 21, 1, 4, 20, 39, 11, 1, 4, 1, 16, 11, 17, 17, 1, 18, 11, 20, 1, 17, - 10, 39, 1, 1, 10, 28, 38, 38, 38, 38, 38, 38, 1, 20, 1, 1, 1, 1, 25, 25, 25, 25, 11, 25, 34, 34, 34, 34, 34, 11, 34, 21, - 21, 21, 21, 38, 19, 22, 17, 17, 17, 17, 17, 17, 22, 28, 21, 21, 21, 21, 12, 12, 12, 12, 21, 46, 21, 21, 21, 21, 21, 11, 21, 46, - 46, 46, 46, 22, 11, 22, 38, 17, 38, 17, 38, 17, 20, 28, 20, 28, 20, 28, 20, 28, 11, 11, 11, 11, 1, 21, 1, 21, 1, 21, 1, 21, - 1, 21, 11, 25, 11, 25, 11, 25, 11, 25, 21, 46, 21, 46, 25, 12, 25, 12, 25, 12, 25, 12, 25, 12, 21, 23, 21, 12, 21, 10, 10, 20, - 12, 20, 12, 20, 12, 20, 36, 20, 12, 25, 46, 25, 46, 25, 46, 24, 25, 46, 34, 21, 34, 21, 34, 21, 42, 40, 22, 18, 22, 18, 22, 18, - 27, 42, 27, 42, 27, 42, 27, 42, 27, 11, 27, 11, 27, 11, 21, 46, 21, 46, 21, 46, 21, 46, 21, 46, 21, 46, 16, 11, 38, 22, 38, 18, - 18, 18, 18, 18, 18, 48, 11, 38, 17, 1, 22, 34, 21, 27, 42, 1, 1, 36, 1, 1, 1, 1, 1, 1, 1, 1, 38, 20, 21, 45, 12, 21, - 13, 21, 22, 38, 34, 25, 23, 1, 18, 21, 34, 25, 21, 25, 28, 25, 17, 34, 21, 19, 32, 27, 38, 25, 16, 25, 34, 25, 38, 11, 22, 46, - 22, 18, 11, 12, 22, 21, 22, 22, 46, 23, 22, 10, 45, 18, 24, 24, 21, 24, 19, 24, 24, 1, 18, 25, 19, 19, 24, 22, 18, 21, 18, 24, - 1, 14, 25, 20, 27, 25, 25, 21, 40, 25, 14, 21, 48, 21, 38, 19, 34, 25, 31, 1, 24, 18, 25, 25, 21, 16, 28, 21, 34, 21, 19, 20, - 27, 48, 25, 16, 21, 20, 25, 25, 23, 16, 25, 22, 36, 22, 17, 20, 25, 20, 22, 21, 25, 26, 25, 25, 10, 22, 19, 25, 21, 18, 11, 28, - 25, 22, 25, 26, 22, 18, 25, 25, 23, 24, 25, 17, 25, 17, 21, 46, 20, 28, 42, 12, 12, 12, 24, 24, 46, 10, 22, 18, 23, 1, 16, 11, - 16, 11, 16, 11, 38, 22, 1, 1, 1, 1, 21, 21, 25, 21, 21, 21, 25, 25, 25, 25, 25, 20, 43, 24, 25, 25, 12, 1, 25, 11, 11, 17, - 11, 1, 1, 42, 25, 34, 1, 12, 12, 12, 12, 38, 23, 30, 43, 1, 1, 23, 23, 11, 11, 11, 11, 25, 20, 20, 25, 12, 1, 1, 1, 17, - 17, 17, 17, 17, 17, 17, 1, 1, 1, 1, 1, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 12, 21, 17, 22, 24, 28, 24, 38, 17, 1, 1, - 1, 20, 20, 34, 21, 25, 28, 1, 1, 1, 1, 1, 1, 25, 21, 25, 29, 23, 32, 38, 1, 1, 28, 24, 24, 22, 25, 25, 23, 20, 1, 26, - 25, 19, 34, 21, 24, 22, 24, 22, 24, 1, 20, 21, 25, 1, 29, 24, 20, 28, 13, 36, 1, 1, 1, 46, 1, 22, 25, 1, 23, 19, 11, 18, - 20, 21, 25, 25, 25, 18, 26, 21, 1, 21, 25, 21, 10, 11, 24, 24, 25, 25, 25, 46, 25, 18, 19, 20, 28, 27, 25, 38, 25, 38, 25, 25, - 25, 42, 21, 19, 22, 20, 18, 25, 24, 10, 22, 10, 22, 25, 24, 25, 32, 24, 24, 20, 21, 25, 24, 25, 20, 18, 21, 21, 25, 38, 17, 38, - 17, 1, 22, 1, 21, 21, 21, 21, 21, 24, 25, 18, 26, 18, 17, 25, 25, 25, 25, 34, 21, 34, 21, 34, 21, 22, 17, 48, 22, 48, 22, 48, - 22, 20, 18, 25, 20, 16, 24, 18, 20, 22, 1, 16, 26, 19, 11, 23, 21, 24, 24, 25, 22, 23, 24, 39, 25, 21, 25, 19, 23, 18, 26, 16, - 22, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 38, 17, 1, 21, 1, 21, 1, 21, 1, - 21, 1, 21, 1, 21, 1, 21, 1, 21, 25, 12, 25, 12, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, 21, 34, - 21, 34, 21, 34, 21, 21, 46, 21, 46, 25, 28, 25, 28, 25, 28, 25, 28, 25, 28, 38, 22, 38, 22, 38, 22, 11, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 19, 0, 0, 3,132, 6, 7, 4, 0, 3, 2, 2, 2, 4, 3, 5, 4, 1, 2, 2, 3, - 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 5, 4, 4, 4, 4, 3, 3, 4, 4, 2, 2, - 3, 3, 5, 4, 4, 4, 4, 4, 3, 3, 4, 4, 5, 3, 3, 3, 2, 2, 2, 3, 2, 3, 4, 4, 3, 4, 3, 2, 3, 4, 2, 2, - 3, 2, 5, 4, 4, 4, 4, 2, 3, 2, 4, 3, 4, 4, 3, 3, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 5, 2, 3, - 3, 2, 5, 3, 3, 3, 3, 3, 3, 4, 4, 2, 1, 3, 2, 3, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 3, 3, - 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 4, 3, 4, 4, 4, 4, 4, 4, 4, 3, 4, 3, 4, 3, - 4, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 4, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 4, 4, 4, 4, 4, 4, 5, 4, 4, - 4, 4, 4, 4, 4, 4, 5, 5, 4, 2, 4, 2, 4, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 4, 3, 5, 5, 4, 4, 3, 3, 3, 3, 3, - 3, 2, 3, 1, 3, 3, 3, 3, 4, 2, 4, 5, 3, 5, 4, 5, 2, 4, 4, 3, 4, 3, 3, 4, 4, 2, 3, 4, 5, 4, 3, 4, - 4, 4, 4, 3, 3, 6, 3, 6, 4, 2, 3, 4, 3, 4, 2, 4, 4, 4, 3, 4, 3, 3, 4, 4, 2, 3, 4, 4, 4, 3, 4, 4, - 4, 3, 4, 3, 4, 5, 4, 5, 6, 2, 4, 4, 4, 6, 3, 5, 3, 4, 3, 2, 2, 2, 6, 6, 5, 3, 4, 4, 4, 4, 4, 3, - 4, 3, 5, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 4, 3, 4, 6, 3, 4, 4, 6, 6, 5, 6, 4, 4, 6, 4, 4, 4, 4, 2, - 3, 3, 4, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 3, 3, 3, 5, 4, 4, 4, 6, 6, 4, 5, 3, 3, 6, 4, 3, 4, 2, 3, - 3, 2, 2, 2, 5, 5, 4, 3, 3, 4, 3, 2, 5, 4, 5, 4, 5, 4, 3, 3, 3, 6, 6, 2, 1, 1, 2, 1, 2, 2, 3, 3, - 3, 2, 6, 7, 1, 2, 2, 2, 3, 1, 2, 3, 3, 5, 3, 5, 3, 6, 5, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 4, - 2, 3, 3, 3, 3, 4, 4, 4, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 6, 2, 2, 1, 3, 2, 1, 1, 0, - 0, 6, 6, 2, 1, 4, 3, 6, 5, 5, 4, 4, 5, 2, 2, 6, 6, 4, 4, 4, 4, 0, 0, 0, 0, 0, 3, 4, 3, 4, 6, 5, - 4, 4, 5, 4, 4, 3, 5, 5, 4, 4, 6, 5, 3, 3, 6, 5, 4, 4, 4, 3, 4, 3, 7, 6, 5, 4, 6, 5, 6, 5, 4, 3, - 4, 3, 3, 3, 3, 6, 6, 4, 4, 3, 3, 4, 4, 3, 2, 4, 3, 5, 5, 3, 3, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, - 4, 6, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 2, 5, 4, 4, 3, - 4, 3, 4, 4, 4, 4, 4, 4, 5, 5, 2, 4, 4, 4, 4, 5, 5, 3, 3, 4, 3, 4, 3, 5, 4, 3, 3, 3, 3, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 3, 4, 3, 4, 3, 4, 4, 3, 2, 6, 5, 3, 2, 4, 3, 3, 4, 3, 4, 6, 6, 5, - 5, 4, 3, 6, 5, 6, 6, 4, 4, 4, 5, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 3, 3, 3, 3, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 7, 9, 4, 0, 4, 2, 2, 3, 5, 4, 6, 5, - 2, 2, 2, 4, 4, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 3, 6, 5, 4, 4, 5, 4, 4, - 5, 5, 4, 2, 4, 3, 6, 5, 5, 4, 5, 4, 4, 4, 5, 5, 6, 4, 4, 4, 2, 3, 2, 4, 3, 4, 4, 4, 3, 4, 4, 3, - 4, 4, 2, 2, 4, 2, 6, 4, 4, 4, 4, 3, 3, 2, 4, 4, 6, 4, 4, 3, 2, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 3, - 4, 6, 2, 3, 4, 2, 6, 4, 3, 4, 3, 3, 4, 4, 5, 2, 1, 3, 2, 3, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 6, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 3, - 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 4, 3, - 4, 3, 4, 3, 4, 3, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, - 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 4, 2, 2, 4, 4, 4, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 4, 5, 4, 5, - 4, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 6, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 2, 4, 2, 4, 2, - 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 6, 4, 4, 4, 4, 3, 4, 3, 4, 3, 2, 4, 5, 4, 6, 6, 5, 4, 4, - 3, 4, 4, 4, 4, 2, 4, 1, 4, 4, 4, 4, 5, 2, 4, 5, 5, 5, 5, 6, 2, 5, 4, 3, 5, 4, 4, 5, 5, 4, 4, 5, - 6, 5, 4, 5, 5, 4, 4, 4, 4, 6, 4, 6, 5, 4, 4, 4, 3, 4, 2, 4, 4, 4, 4, 4, 3, 3, 4, 4, 2, 4, 4, 4, - 4, 3, 4, 4, 4, 3, 4, 3, 4, 6, 4, 6, 6, 2, 4, 4, 4, 6, 4, 5, 3, 4, 4, 4, 4, 2, 7, 7, 5, 4, 4, 5, - 5, 4, 4, 3, 5, 4, 6, 4, 5, 5, 4, 5, 6, 5, 5, 5, 4, 4, 4, 4, 6, 4, 5, 5, 8, 8, 5, 6, 4, 4, 7, 4, - 4, 4, 4, 3, 4, 4, 6, 3, 4, 4, 3, 4, 5, 4, 4, 4, 4, 3, 3, 4, 6, 4, 4, 4, 6, 6, 5, 6, 4, 3, 6, 4, - 4, 4, 3, 3, 3, 2, 2, 2, 6, 6, 4, 3, 4, 4, 3, 3, 6, 6, 6, 6, 6, 6, 4, 4, 4, 7, 7, 3, 1, 1, 2, 1, - 3, 3, 3, 3, 3, 3, 6, 8, 2, 3, 2, 2, 3, 1, 3, 4, 4, 5, 4, 6, 4, 7, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, - 4, 4, 4, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 7, 4, 7, 2, 2, 1, 4, - 2, 1, 1, 0, 0, 7, 7, 2, 1, 4, 4, 6, 6, 6, 5, 4, 5, 2, 3, 6, 6, 5, 4, 5, 4, 0, 0, 0, 0, 0, 4, 5, - 4, 4, 6, 6, 5, 4, 6, 5, 5, 4, 6, 5, 6, 4, 7, 5, 4, 4, 6, 6, 5, 4, 5, 4, 5, 4, 9, 7, 5, 4, 6, 6, - 6, 6, 4, 3, 4, 4, 4, 4, 4, 7, 7, 5, 4, 4, 4, 4, 4, 4, 3, 4, 4, 6, 6, 4, 3, 4, 4, 4, 3, 4, 3, 5, - 4, 5, 4, 5, 4, 7, 6, 6, 6, 4, 3, 4, 3, 4, 4, 4, 4, 4, 4, 7, 6, 6, 4, 5, 4, 5, 4, 6, 5, 6, 5, 4, - 6, 6, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 4, 5, 4, 5, 4, 6, 6, 4, 4, 5, 4, 5, 4, 6, 6, 4, 3, 4, - 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 3, 4, 4, 4, 4, 4, 4, 5, 4, 3, 3, 6, 6, 4, 3, 4, 4, 4, 4, 4, - 4, 6, 6, 6, 5, 4, 4, 7, 6, 7, 6, 5, 4, 5, 5, 4, 3, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, - 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 5, - 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, - 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 8, 10, 5, 0, 4, 2, 2, 3, - 5, 4, 7, 6, 2, 2, 2, 4, 4, 2, 3, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 7, 6, 5, - 5, 5, 4, 4, 6, 6, 4, 2, 5, 4, 8, 6, 6, 5, 6, 5, 4, 4, 6, 6, 8, 5, 4, 5, 2, 3, 2, 4, 3, 5, 4, 5, - 4, 5, 4, 3, 4, 5, 2, 2, 4, 2, 8, 5, 5, 5, 5, 3, 4, 3, 5, 4, 6, 4, 4, 4, 3, 4, 3, 4, 2, 2, 4, 4, - 4, 4, 4, 4, 5, 7, 3, 4, 4, 3, 7, 4, 3, 4, 4, 4, 5, 5, 5, 2, 2, 4, 3, 4, 6, 6, 6, 4, 6, 6, 6, 6, - 6, 6, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 4, 5, 5, 4, 4, 4, 4, - 4, 4, 7, 4, 4, 4, 4, 4, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 5, 4, 6, 4, 6, 4, - 6, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 6, 4, 6, 4, 6, 4, - 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 4, 2, 2, 5, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, - 5, 6, 5, 6, 5, 6, 6, 5, 6, 5, 6, 5, 6, 5, 7, 7, 5, 3, 5, 3, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 4, 3, 4, 3, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 4, 4, 5, 4, 5, 4, 5, 4, 2, 4, 6, 4, 7, - 7, 6, 5, 4, 4, 5, 5, 4, 5, 2, 5, 1, 5, 5, 5, 5, 6, 2, 5, 6, 5, 6, 5, 6, 2, 6, 5, 4, 6, 4, 5, 6, - 6, 4, 5, 6, 8, 6, 4, 6, 6, 5, 5, 4, 4, 6, 5, 6, 6, 4, 4, 5, 4, 5, 2, 5, 5, 5, 4, 5, 4, 4, 5, 5, - 2, 4, 4, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 6, 4, 6, 6, 2, 5, 5, 5, 6, 4, 6, 4, 5, 4, 4, 4, 2, 8, 8, - 6, 5, 5, 6, 6, 5, 5, 4, 6, 4, 8, 4, 6, 6, 5, 6, 8, 6, 6, 6, 5, 5, 4, 5, 6, 5, 6, 5, 8, 8, 6, 7, - 5, 5, 8, 5, 4, 5, 5, 3, 4, 4, 6, 4, 5, 5, 4, 5, 6, 5, 5, 5, 5, 4, 4, 4, 6, 4, 5, 5, 8, 8, 5, 6, - 4, 4, 7, 4, 4, 5, 3, 4, 4, 2, 2, 2, 7, 7, 5, 4, 4, 5, 4, 3, 8, 6, 8, 6, 8, 6, 4, 4, 4, 8, 8, 3, - 1, 1, 2, 1, 3, 3, 4, 4, 4, 3, 6, 9, 2, 3, 2, 2, 4, 1, 3, 4, 4, 6, 4, 6, 4, 8, 6, 6, 5, 6, 6, 6, - 6, 5, 6, 6, 5, 4, 4, 6, 3, 4, 4, 4, 4, 5, 5, 5, 5, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 8, - 3, 2, 1, 4, 2, 2, 1, 0, 0, 8, 8, 2, 1, 5, 4, 7, 8, 8, 6, 4, 6, 3, 3, 7, 7, 6, 5, 6, 5, 0, 0, 0, - 0, 0, 4, 6, 4, 5, 8, 6, 5, 5, 7, 6, 6, 4, 7, 5, 6, 6, 8, 7, 4, 4, 6, 6, 6, 5, 6, 4, 6, 4, 10, 8, - 6, 5, 8, 6, 8, 6, 5, 4, 5, 4, 5, 5, 5, 8, 8, 6, 5, 5, 5, 5, 5, 4, 3, 5, 4, 8, 6, 4, 4, 5, 4, 5, - 4, 5, 4, 5, 5, 6, 5, 6, 5, 8, 6, 7, 6, 5, 4, 4, 4, 4, 4, 4, 4, 5, 4, 7, 7, 6, 5, 5, 5, 5, 5, 7, - 5, 7, 5, 4, 8, 6, 5, 4, 6, 5, 6, 5, 6, 5, 5, 5, 8, 6, 4, 6, 4, 6, 4, 7, 7, 4, 4, 6, 4, 6, 4, 8, - 6, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 5, 4, 5, 5, 4, 3, 7, 6, 4, 3, 5, - 4, 5, 4, 5, 5, 7, 8, 6, 6, 4, 4, 8, 7, 9, 7, 6, 5, 5, 5, 4, 4, 6, 5, 6, 4, 6, 4, 6, 4, 6, 4, 6, - 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 4, 2, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, - 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 9, 12, 5, 0, - 5, 2, 2, 4, 6, 5, 8, 6, 2, 3, 3, 6, 5, 2, 3, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 5, 5, 5, - 4, 8, 6, 5, 5, 6, 5, 5, 6, 6, 4, 3, 5, 4, 8, 6, 7, 5, 7, 5, 5, 4, 6, 6, 8, 6, 6, 5, 3, 3, 3, 5, - 4, 5, 5, 5, 4, 5, 5, 4, 5, 5, 2, 2, 5, 2, 8, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, 3, 5, 3, 5, - 2, 2, 5, 5, 5, 5, 5, 4, 5, 7, 4, 5, 5, 3, 7, 5, 4, 5, 4, 4, 5, 5, 6, 2, 2, 4, 4, 5, 7, 7, 8, 4, - 6, 6, 6, 6, 6, 6, 8, 5, 5, 5, 5, 5, 4, 4, 4, 4, 6, 6, 7, 7, 7, 7, 7, 5, 7, 6, 6, 6, 6, 6, 5, 5, - 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, 4, 3, 2, 5, 5, 5, 4, 2, 4, 2, 4, 2, 4, - 3, 4, 2, 6, 5, 6, 5, 6, 5, 6, 6, 5, 7, 5, 7, 5, 7, 5, 9, 8, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, - 5, 4, 4, 4, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 6, 5, 6, 5, 4, 5, 4, 5, 4, 2, - 5, 6, 5, 8, 8, 7, 5, 5, 4, 5, 5, 5, 5, 2, 5, 2, 5, 5, 5, 5, 6, 2, 6, 7, 5, 8, 7, 8, 2, 6, 5, 5, - 6, 5, 5, 6, 7, 4, 5, 6, 8, 6, 5, 7, 6, 5, 5, 4, 6, 6, 6, 6, 7, 4, 6, 5, 4, 5, 2, 5, 5, 5, 5, 5, - 4, 4, 5, 5, 2, 5, 5, 5, 5, 4, 5, 6, 5, 4, 5, 4, 5, 6, 6, 6, 6, 2, 5, 5, 5, 6, 5, 6, 5, 5, 5, 4, - 4, 3, 9, 9, 6, 5, 6, 6, 6, 5, 5, 5, 6, 5, 8, 5, 6, 6, 5, 7, 8, 6, 7, 6, 5, 5, 4, 6, 6, 6, 6, 6, - 8, 8, 7, 7, 5, 5, 9, 5, 5, 5, 5, 4, 5, 5, 6, 4, 5, 5, 5, 5, 6, 5, 5, 5, 5, 4, 4, 5, 6, 5, 5, 5, - 8, 8, 6, 7, 5, 4, 7, 5, 5, 5, 4, 4, 4, 2, 2, 2, 8, 8, 5, 5, 5, 5, 5, 4, 8, 6, 8, 6, 8, 6, 6, 5, - 5, 9, 9, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 3, 6, 11, 2, 4, 3, 3, 4, 1, 4, 5, 5, 8, 5, 7, 5, 9, 8, 7, - 6, 8, 8, 8, 8, 5, 6, 6, 6, 5, 5, 7, 3, 5, 5, 5, 5, 6, 6, 6, 4, 2, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, - 5, 9, 5, 9, 3, 2, 2, 5, 2, 2, 1, 0, 0, 9, 9, 2, 2, 6, 6, 6, 8, 8, 6, 5, 7, 3, 4, 9, 9, 7, 5, 6, - 5, 0, 0, 0, 0, 0, 5, 6, 5, 5, 8, 7, 6, 5, 8, 6, 6, 6, 8, 7, 6, 6, 8, 7, 5, 4, 6, 6, 7, 5, 6, 5, - 6, 5, 12, 9, 7, 5, 8, 7, 8, 7, 5, 4, 5, 5, 5, 5, 5, 9, 9, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 8, 6, 5, - 4, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 6, 5, 9, 8, 7, 6, 5, 4, 4, 4, 6, 4, 6, 4, 6, 5, 8, 7, 7, 6, 6, - 5, 6, 5, 8, 6, 8, 6, 4, 8, 6, 6, 5, 7, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 6, 5, 6, 5, 8, 8, 5, 5, 7, - 5, 7, 5, 8, 6, 5, 4, 5, 4, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 5, 4, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 7, - 7, 5, 4, 5, 5, 6, 5, 5, 5, 8, 8, 8, 7, 5, 5, 10, 7, 9, 8, 6, 5, 6, 5, 5, 4, 7, 5, 6, 5, 6, 5, 6, - 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 4, 2, 4, 2, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 6, - 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, - 10, 12, 6, 0, 5, 3, 2, 4, 6, 6, 8, 7, 2, 3, 3, 6, 5, 2, 3, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, - 2, 5, 5, 5, 4, 8, 6, 6, 6, 6, 5, 5, 6, 6, 4, 3, 5, 4, 8, 6, 7, 5, 7, 5, 5, 4, 6, 6, 8, 6, 6, 5, - 3, 4, 3, 5, 4, 6, 5, 5, 4, 5, 5, 4, 5, 5, 2, 2, 5, 2, 8, 5, 5, 5, 5, 4, 4, 4, 5, 5, 6, 5, 5, 4, - 4, 5, 4, 5, 3, 2, 5, 5, 5, 5, 5, 5, 6, 8, 4, 5, 5, 3, 8, 5, 4, 5, 4, 4, 6, 5, 6, 2, 2, 4, 4, 5, - 7, 7, 7, 4, 6, 6, 6, 6, 6, 6, 9, 6, 5, 5, 5, 5, 4, 4, 4, 4, 6, 6, 7, 7, 7, 7, 7, 5, 7, 6, 6, 6, - 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 4, 6, 4, 6, 4, 6, 4, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 6, 5, 3, 2, 5, 5, 5, 4, 2, 4, - 2, 4, 2, 4, 4, 4, 2, 6, 5, 6, 5, 6, 5, 7, 6, 5, 7, 5, 7, 5, 7, 5, 9, 8, 5, 4, 5, 4, 5, 4, 5, 4, - 5, 4, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 8, 6, 6, 5, 6, 5, 4, 5, - 4, 5, 4, 2, 5, 6, 5, 9, 8, 7, 5, 5, 4, 6, 6, 6, 6, 3, 6, 2, 6, 6, 6, 6, 6, 2, 6, 7, 5, 8, 7, 8, - 2, 6, 6, 5, 6, 5, 5, 6, 7, 4, 5, 6, 8, 6, 5, 7, 6, 5, 5, 4, 6, 8, 6, 8, 7, 4, 6, 5, 4, 5, 2, 5, - 5, 5, 5, 5, 4, 4, 5, 5, 2, 5, 5, 5, 5, 4, 5, 6, 5, 4, 5, 4, 5, 6, 6, 6, 6, 2, 5, 5, 5, 6, 5, 7, - 5, 6, 5, 4, 4, 3, 9, 9, 7, 5, 6, 6, 6, 6, 6, 5, 6, 5, 8, 5, 6, 6, 5, 7, 8, 6, 7, 6, 5, 6, 4, 6, - 8, 6, 6, 6, 10, 10, 7, 8, 6, 6, 10, 5, 5, 5, 5, 4, 5, 5, 6, 4, 5, 5, 5, 5, 6, 5, 5, 5, 5, 4, 4, 5, - 6, 5, 5, 5, 8, 8, 7, 7, 5, 4, 8, 5, 5, 5, 4, 4, 4, 2, 2, 2, 8, 8, 5, 5, 5, 5, 5, 4, 8, 6, 8, 6, - 8, 6, 6, 5, 5, 10, 10, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 3, 9, 12, 2, 4, 3, 3, 4, 1, 4, 5, 5, 8, 5, 8, - 5, 9, 7, 7, 6, 8, 8, 8, 8, 5, 6, 7, 6, 6, 5, 7, 3, 5, 5, 5, 5, 6, 6, 6, 6, 2, 5, 5, 5, 4, 4, 4, - 4, 4, 4, 4, 5, 10, 5, 10, 3, 3, 2, 6, 3, 2, 1, 0, 0, 10, 10, 2, 2, 6, 6, 6, 8, 8, 6, 5, 8, 3, 4, 9, - 9, 7, 5, 6, 5, 0, 0, 0, 0, 0, 5, 6, 5, 5, 10, 7, 6, 6, 9, 7, 6, 6, 9, 8, 8, 6, 10, 7, 5, 4, 8, 6, - 7, 5, 6, 5, 6, 5, 12, 10, 7, 5, 10, 8, 10, 7, 6, 4, 6, 6, 6, 6, 6, 10, 10, 6, 5, 6, 6, 5, 5, 5, 4, 6, - 5, 8, 6, 5, 4, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 7, 6, 10, 8, 7, 6, 6, 4, 4, 4, 6, 4, 6, 4, 6, 5, 8, - 7, 7, 6, 6, 5, 6, 5, 8, 6, 8, 6, 4, 8, 6, 6, 5, 7, 5, 6, 5, 6, 5, 6, 5, 8, 6, 4, 6, 5, 6, 5, 9, - 8, 5, 5, 7, 5, 7, 5, 8, 6, 5, 4, 5, 4, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 6, 4, 6, 5, 6, 5, 6, 5, 6, - 5, 5, 4, 8, 7, 5, 4, 6, 5, 6, 5, 5, 5, 8, 8, 8, 7, 5, 5, 10, 8, 9, 8, 7, 5, 7, 5, 5, 4, 7, 5, 6, - 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 4, 2, 4, 2, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, - 5, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 11, 14, 7, 0, 6, 3, 3, 5, 7, 6, 9, 8, 3, 3, 3, 6, 6, 3, 4, 3, 4, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 3, 3, 6, 6, 6, 5, 10, 7, 7, 7, 8, 6, 5, 8, 8, 3, 3, 7, 5, 10, 8, 9, 6, 9, 7, 6, 5, 8, 7, - 9, 6, 7, 7, 3, 4, 3, 6, 5, 6, 6, 6, 5, 6, 6, 4, 6, 6, 2, 2, 5, 2, 10, 6, 6, 6, 6, 4, 5, 4, 6, 6, - 8, 6, 6, 5, 4, 5, 4, 6, 3, 3, 6, 6, 6, 6, 5, 5, 6, 9, 4, 5, 6, 4, 9, 6, 5, 6, 4, 4, 6, 6, 7, 3, - 2, 4, 4, 5, 8, 8, 8, 5, 7, 7, 7, 7, 7, 7, 9, 7, 6, 6, 6, 6, 3, 3, 3, 3, 8, 8, 9, 9, 9, 9, 9, 6, - 9, 8, 8, 8, 8, 7, 6, 6, 6, 6, 6, 6, 6, 6, 10, 5, 6, 6, 6, 6, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 5, 7, 5, 7, 5, 7, 5, 8, 6, 8, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 5, 3, 2, 7, 5, - 5, 5, 2, 5, 2, 5, 2, 5, 3, 5, 2, 8, 6, 8, 6, 8, 6, 8, 8, 6, 9, 6, 9, 6, 9, 6, 10, 10, 7, 4, 7, 4, - 7, 4, 6, 5, 6, 5, 6, 5, 6, 5, 5, 4, 5, 4, 5, 4, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, 7, 6, - 7, 7, 5, 7, 5, 7, 5, 2, 6, 7, 6, 9, 10, 9, 6, 6, 5, 6, 6, 6, 6, 3, 6, 2, 6, 6, 6, 6, 7, 3, 7, 9, - 4, 9, 8, 9, 4, 7, 7, 6, 7, 6, 7, 8, 9, 3, 7, 7, 10, 8, 5, 9, 8, 6, 6, 5, 7, 9, 6, 9, 9, 3, 7, 6, - 5, 6, 4, 6, 6, 6, 6, 6, 5, 5, 6, 6, 4, 5, 6, 6, 6, 5, 6, 8, 6, 5, 6, 5, 6, 8, 6, 8, 8, 4, 6, 6, - 6, 8, 6, 8, 6, 7, 6, 3, 3, 3, 10, 10, 8, 7, 6, 8, 7, 7, 7, 6, 7, 6, 9, 6, 8, 8, 7, 7, 10, 8, 9, 8, - 6, 7, 5, 6, 9, 6, 8, 8, 11, 11, 8, 9, 7, 7, 12, 7, 6, 6, 6, 4, 7, 6, 8, 5, 6, 6, 5, 6, 7, 6, 6, 6, - 6, 5, 6, 6, 8, 6, 6, 6, 10, 10, 8, 8, 6, 5, 9, 6, 6, 6, 4, 5, 5, 2, 2, 2, 10, 9, 6, 5, 6, 6, 5, 4, - 9, 8, 9, 8, 9, 8, 7, 6, 6, 11, 11, 5, 2, 2, 2, 2, 4, 4, 4, 5, 5, 5, 9, 13, 3, 5, 3, 3, 6, 1, 4, 6, - 6, 9, 6, 9, 6, 11, 9, 9, 7, 9, 9, 9, 9, 6, 7, 8, 7, 6, 6, 8, 4, 6, 6, 6, 6, 7, 6, 6, 6, 2, 6, 6, - 6, 4, 4, 4, 4, 4, 4, 4, 6, 11, 6, 11, 4, 3, 2, 6, 3, 2, 1, 0, 0, 11, 11, 2, 2, 7, 7, 8, 10, 10, 7, 6, - 9, 4, 4, 10, 10, 9, 6, 8, 7, 0, 0, 0, 0, 0, 6, 8, 6, 6, 11, 8, 7, 7, 10, 8, 7, 6, 10, 8, 7, 8, 10, 10, - 6, 5, 9, 8, 9, 6, 8, 6, 8, 6, 14, 11, 9, 6, 11, 9, 11, 8, 7, 5, 6, 6, 6, 6, 6, 11, 11, 8, 6, 6, 6, 6, - 6, 5, 4, 7, 6, 9, 8, 6, 5, 7, 6, 7, 5, 7, 5, 7, 7, 8, 6, 9, 7, 11, 10, 9, 7, 7, 5, 5, 6, 7, 6, 7, - 6, 6, 6, 10, 9, 8, 7, 8, 6, 8, 6, 9, 7, 9, 7, 3, 9, 8, 7, 6, 7, 6, 8, 6, 8, 6, 8, 6, 10, 7, 3, 7, - 6, 7, 6, 9, 10, 6, 6, 9, 6, 9, 6, 9, 8, 6, 5, 6, 5, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6, 7, 5, 6, 6, 6, - 6, 6, 6, 8, 6, 6, 4, 9, 8, 5, 4, 7, 6, 6, 6, 6, 6, 9, 10, 9, 9, 6, 6, 10, 9, 11, 9, 8, 6, 8, 7, 6, - 5, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 2, 3, 2, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 9, - 6, 9, 6, 9, 6, 9, 6, 8, 6, 8, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 7, 6, 7, 6, 7, 6, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 2, 12, 15, 7, 0, 6, 3, 3, 5, 8, 7, 10, 8, 3, 4, 4, 7, 7, 3, 4, 3, 4, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 7, 7, 5, 10, 7, 7, 7, 8, 6, 6, 8, 8, 4, 3, 7, 6, 11, 9, 9, 7, 9, 7, - 7, 7, 8, 7, 11, 7, 7, 7, 4, 4, 4, 6, 5, 7, 7, 7, 6, 7, 7, 3, 6, 7, 3, 3, 6, 3, 11, 7, 7, 7, 7, 4, - 6, 4, 7, 5, 9, 6, 5, 6, 4, 7, 4, 7, 3, 3, 7, 7, 7, 7, 7, 6, 7, 10, 4, 6, 7, 4, 10, 6, 5, 7, 4, 4, - 7, 7, 8, 3, 2, 4, 4, 6, 9, 9, 9, 5, 7, 7, 7, 7, 7, 7, 10, 7, 6, 6, 6, 6, 4, 4, 4, 4, 8, 9, 9, 9, - 9, 9, 9, 7, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 11, 6, 7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 7, 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 8, 7, 8, 7, 6, 7, - 6, 7, 6, 7, 6, 7, 6, 7, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 8, 7, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 7, 6, - 3, 3, 7, 6, 6, 6, 3, 6, 3, 6, 3, 6, 4, 6, 3, 9, 7, 9, 7, 9, 7, 8, 9, 7, 9, 7, 9, 7, 9, 7, 11, 11, - 7, 4, 7, 4, 7, 4, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 7, 4, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, - 11, 9, 7, 5, 7, 7, 6, 7, 6, 7, 6, 3, 7, 7, 7, 10, 11, 9, 7, 7, 6, 7, 7, 7, 7, 3, 7, 2, 7, 7, 7, 7, - 7, 3, 7, 9, 6, 9, 9, 9, 4, 7, 7, 6, 7, 6, 7, 8, 9, 4, 7, 7, 11, 9, 7, 9, 8, 7, 7, 7, 7, 9, 7, 9, - 9, 4, 7, 7, 6, 7, 4, 7, 7, 7, 5, 7, 6, 5, 7, 7, 4, 6, 5, 7, 6, 6, 7, 8, 7, 6, 7, 5, 7, 9, 6, 9, - 9, 4, 7, 7, 7, 9, 6, 9, 6, 7, 7, 4, 4, 3, 11, 11, 9, 7, 7, 8, 7, 7, 7, 6, 8, 6, 9, 7, 9, 9, 7, 8, - 11, 8, 9, 8, 7, 7, 7, 7, 9, 7, 8, 8, 11, 11, 8, 10, 7, 7, 12, 7, 7, 7, 7, 5, 6, 7, 9, 6, 7, 7, 6, 7, - 9, 7, 7, 7, 7, 6, 5, 5, 9, 6, 7, 7, 11, 11, 8, 9, 7, 6, 10, 7, 7, 7, 5, 6, 6, 3, 3, 3, 11, 11, 7, 6, - 5, 7, 6, 5, 11, 9, 11, 9, 11, 9, 7, 5, 6, 12, 12, 5, 2, 2, 2, 2, 4, 4, 4, 5, 5, 5, 9, 15, 3, 5, 4, 4, - 6, 2, 4, 7, 7, 10, 7, 10, 6, 13, 10, 9, 7, 9, 9, 9, 9, 7, 7, 8, 8, 7, 7, 9, 5, 7, 7, 7, 7, 7, 7, 7, - 7, 3, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 6, 12, 6, 12, 4, 3, 2, 7, 3, 2, 1, 0, 0, 12, 12, 3, 2, 7, 7, 9, - 11, 11, 7, 7, 9, 4, 5, 11, 11, 9, 7, 9, 8, 0, 0, 0, 0, 0, 6, 9, 7, 7, 11, 9, 7, 7, 11, 9, 7, 7, 10, 10, - 7, 7, 10, 10, 7, 6, 9, 9, 9, 7, 8, 5, 8, 5, 14, 13, 9, 7, 11, 9, 11, 9, 7, 6, 6, 7, 7, 7, 7, 12, 11, 9, - 7, 7, 7, 7, 7, 6, 5, 7, 7, 10, 9, 7, 6, 8, 6, 7, 6, 7, 6, 8, 7, 8, 7, 9, 8, 12, 11, 10, 9, 7, 6, 7, - 5, 7, 5, 7, 5, 7, 6, 10, 8, 9, 7, 8, 7, 8, 7, 10, 8, 10, 8, 4, 9, 9, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, - 11, 9, 4, 7, 7, 7, 7, 10, 11, 6, 7, 9, 7, 9, 7, 9, 9, 7, 6, 7, 6, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 7, - 6, 7, 5, 7, 5, 7, 5, 8, 7, 6, 5, 10, 9, 6, 5, 7, 6, 7, 6, 7, 7, 11, 11, 10, 9, 7, 6, 11, 10, 12, 11, 9, - 7, 9, 7, 7, 6, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, - 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 3, 4, 3, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, - 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 8, 7, 8, 7, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 7, 5, 7, 5, 7, 5, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 13, 16, 8, 0, 7, 3, 4, 5, 8, 7, 11, 9, 3, 4, 4, 7, 7, 3, 4, 3, - 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 7, 7, 6, 11, 8, 8, 8, 9, 7, 6, 9, 9, 5, 3, 8, 6, 11, 9, - 10, 7, 10, 8, 7, 7, 9, 7, 11, 7, 7, 7, 4, 5, 4, 7, 5, 8, 7, 8, 6, 8, 7, 4, 7, 8, 3, 3, 6, 3, 11, 8, - 8, 8, 8, 5, 6, 4, 8, 6, 10, 7, 6, 6, 5, 7, 5, 7, 3, 4, 7, 7, 7, 7, 7, 6, 8, 11, 5, 6, 7, 4, 11, 7, - 6, 7, 5, 5, 8, 8, 9, 3, 3, 5, 5, 6, 10, 10, 10, 6, 8, 8, 8, 8, 8, 8, 11, 8, 7, 7, 7, 7, 5, 5, 5, 5, - 9, 9, 10, 10, 10, 10, 10, 7, 10, 9, 9, 9, 9, 7, 7, 8, 7, 7, 7, 7, 7, 7, 11, 6, 7, 7, 7, 7, 3, 3, 3, 3, - 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 6, 8, 6, 8, 7, 8, 7, 8, 7, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, - 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 8, 9, 8, 5, 3, 5, 3, 5, 3, 5, 3, - 5, 3, 8, 6, 3, 3, 8, 6, 6, 6, 3, 6, 3, 6, 3, 6, 4, 6, 3, 9, 8, 9, 8, 9, 8, 9, 9, 8, 10, 8, 10, 8, - 10, 8, 12, 12, 8, 5, 8, 5, 8, 5, 7, 6, 7, 6, 7, 6, 7, 6, 7, 4, 7, 4, 7, 4, 9, 8, 9, 8, 9, 8, 9, 8, - 9, 8, 9, 8, 11, 10, 7, 6, 7, 7, 6, 7, 6, 7, 6, 4, 7, 8, 7, 11, 11, 10, 8, 7, 6, 8, 8, 7, 8, 3, 8, 2, - 8, 8, 8, 8, 8, 3, 8, 10, 6, 10, 9, 10, 4, 8, 8, 7, 7, 7, 7, 9, 10, 5, 8, 8, 11, 9, 7, 10, 9, 7, 7, 7, - 7, 10, 7, 10, 10, 5, 7, 8, 6, 8, 4, 8, 8, 8, 6, 8, 6, 6, 8, 8, 4, 6, 7, 8, 7, 6, 8, 8, 8, 6, 8, 6, - 8, 10, 7, 10, 11, 4, 8, 8, 8, 11, 7, 10, 7, 8, 7, 5, 5, 3, 12, 12, 10, 8, 8, 9, 8, 8, 8, 7, 8, 7, 11, 7, - 9, 9, 8, 9, 11, 9, 10, 9, 7, 8, 7, 8, 10, 7, 9, 9, 13, 13, 9, 11, 8, 8, 13, 8, 7, 8, 7, 5, 7, 7, 9, 6, - 8, 8, 6, 7, 9, 8, 8, 8, 8, 6, 5, 6, 9, 7, 8, 8, 11, 11, 8, 10, 7, 6, 11, 7, 7, 8, 5, 6, 6, 3, 3, 3, - 11, 11, 8, 6, 6, 8, 6, 5, 11, 10, 11, 10, 11, 10, 7, 6, 7, 13, 13, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 9, 16, - 3, 5, 4, 4, 6, 2, 5, 7, 7, 11, 7, 10, 7, 13, 10, 10, 8, 10, 10, 10, 10, 8, 7, 9, 8, 7, 7, 9, 5, 7, 7, 7, - 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 7, 13, 7, 13, 4, 3, 2, 7, 3, 3, 1, 0, 0, 13, 13, 3, - 2, 8, 7, 11, 11, 11, 8, 7, 10, 4, 5, 11, 11, 10, 8, 10, 9, 0, 0, 0, 0, 0, 7, 9, 7, 8, 13, 10, 8, 8, 12, 9, - 8, 7, 12, 10, 9, 7, 12, 10, 7, 6, 10, 10, 10, 8, 8, 6, 8, 6, 15, 14, 10, 8, 13, 10, 13, 10, 8, 6, 8, 7, 8, 8, - 8, 13, 12, 10, 8, 7, 8, 7, 8, 6, 5, 8, 7, 11, 9, 7, 6, 8, 7, 8, 6, 8, 6, 9, 7, 9, 8, 10, 9, 13, 11, 10, - 10, 8, 6, 7, 5, 7, 6, 7, 6, 7, 7, 11, 9, 9, 8, 9, 8, 9, 8, 11, 9, 11, 9, 5, 11, 9, 8, 8, 9, 7, 9, 8, - 9, 8, 9, 8, 11, 9, 5, 8, 7, 8, 7, 11, 11, 7, 7, 10, 7, 10, 7, 11, 9, 7, 6, 7, 7, 9, 8, 9, 8, 10, 8, 10, - 8, 10, 8, 8, 6, 8, 6, 8, 6, 8, 6, 9, 8, 7, 5, 11, 10, 6, 5, 8, 7, 7, 7, 7, 8, 11, 12, 11, 10, 8, 7, 13, - 11, 13, 12, 9, 8, 9, 8, 7, 6, 9, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, - 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 10, 8, 10, 8, 10, 8, 10, 8, 10, - 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 9, 8, 9, 8, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 7, 6, 7, - 6, 7, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 14, 17, 8, 0, 7, 4, 4, 6, 9, 8, 12, 10, 3, 4, 4, 8, - 8, 4, 5, 4, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 8, 8, 8, 6, 12, 9, 9, 8, 10, 7, 7, 10, 10, 5, 3, - 8, 7, 12, 10, 11, 8, 11, 8, 7, 7, 10, 8, 13, 8, 7, 8, 4, 5, 4, 7, 6, 8, 7, 8, 7, 8, 8, 4, 7, 8, 4, 4, - 7, 4, 13, 8, 8, 8, 8, 5, 7, 5, 8, 7, 10, 7, 7, 7, 5, 7, 5, 8, 4, 4, 8, 8, 8, 8, 7, 7, 8, 12, 5, 7, - 8, 5, 12, 7, 6, 8, 5, 5, 8, 8, 9, 4, 3, 5, 5, 7, 10, 10, 10, 6, 9, 9, 9, 9, 9, 9, 12, 8, 7, 7, 7, 7, - 5, 5, 5, 5, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10, 10, 7, 8, 8, 7, 7, 7, 7, 7, 7, 12, 7, 8, 8, 8, 8, - 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 7, 9, 7, 9, 7, 9, 7, 8, 7, 8, 7, 8, 7, - 8, 7, 10, 8, 10, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 10, 7, 10, 7, 10, 7, 10, 7, 10, 8, 10, 8, 5, 4, 5, 4, - 5, 4, 5, 4, 5, 4, 8, 8, 3, 4, 8, 7, 7, 7, 4, 7, 4, 7, 4, 7, 5, 7, 4, 10, 8, 10, 8, 10, 8, 10, 10, 8, - 11, 8, 11, 8, 11, 8, 12, 13, 8, 5, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 10, 8, 10, 8, - 10, 8, 10, 8, 10, 8, 10, 8, 13, 10, 7, 7, 7, 8, 7, 8, 7, 8, 7, 4, 8, 9, 7, 12, 12, 11, 8, 7, 7, 8, 8, 8, - 8, 4, 8, 3, 8, 8, 8, 8, 9, 4, 8, 11, 6, 11, 9, 11, 4, 9, 9, 7, 9, 7, 8, 10, 11, 5, 8, 9, 12, 10, 8, 11, - 10, 8, 8, 7, 7, 11, 8, 11, 11, 5, 7, 8, 7, 8, 4, 8, 8, 8, 7, 8, 7, 6, 8, 8, 4, 7, 7, 8, 7, 7, 8, 9, - 8, 7, 8, 6, 8, 10, 7, 10, 11, 4, 8, 8, 8, 11, 7, 10, 7, 8, 7, 5, 5, 3, 13, 13, 10, 8, 8, 10, 9, 8, 9, 7, - 9, 7, 11, 8, 10, 10, 8, 9, 12, 10, 11, 10, 8, 8, 7, 8, 11, 8, 10, 9, 13, 13, 9, 12, 9, 8, 15, 8, 7, 8, 8, 5, - 8, 8, 9, 7, 8, 8, 7, 8, 10, 8, 8, 8, 8, 7, 5, 7, 9, 7, 8, 8, 11, 11, 9, 11, 8, 7, 11, 8, 8, 8, 5, 7, - 7, 4, 4, 4, 12, 12, 8, 7, 7, 8, 7, 6, 13, 10, 13, 10, 13, 10, 7, 7, 7, 14, 14, 6, 3, 3, 3, 3, 6, 6, 6, 7, - 7, 6, 12, 17, 3, 6, 4, 4, 7, 2, 5, 8, 8, 12, 8, 11, 7, 14, 10, 11, 9, 11, 11, 11, 11, 8, 9, 10, 9, 8, 8, 10, - 5, 8, 8, 8, 8, 7, 8, 8, 8, 4, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 7, 14, 7, 14, 5, 4, 2, 8, 4, 3, 1, 0, - 0, 14, 14, 4, 3, 8, 8, 11, 12, 13, 9, 7, 11, 5, 6, 13, 13, 11, 8, 11, 9, 0, 0, 0, 0, 0, 7, 10, 8, 8, 13, 11, - 9, 8, 13, 10, 9, 7, 12, 10, 9, 9, 13, 12, 8, 7, 11, 10, 11, 8, 9, 7, 9, 7, 17, 15, 11, 8, 13, 11, 13, 11, 8, 7, - 9, 8, 8, 8, 8, 14, 13, 10, 8, 8, 8, 8, 8, 7, 5, 9, 8, 11, 10, 8, 7, 9, 8, 8, 7, 8, 7, 9, 8, 10, 8, 11, - 10, 15, 12, 11, 10, 8, 7, 7, 5, 7, 7, 7, 7, 8, 7, 11, 10, 10, 9, 9, 8, 10, 8, 11, 9, 11, 9, 5, 11, 9, 9, 8, - 9, 8, 10, 8, 10, 8, 9, 8, 12, 10, 5, 9, 7, 9, 7, 12, 12, 7, 8, 11, 8, 11, 8, 11, 9, 8, 7, 8, 7, 10, 8, 10, - 8, 11, 8, 11, 8, 11, 8, 8, 7, 8, 7, 8, 7, 8, 7, 9, 8, 7, 5, 12, 11, 7, 5, 8, 7, 8, 7, 8, 8, 12, 12, 12, - 11, 8, 7, 13, 12, 14, 12, 10, 8, 10, 9, 8, 7, 9, 8, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, 7, 9, - 7, 9, 7, 9, 7, 9, 7, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 5, 4, 5, 4, 11, 8, 11, 8, 11, - 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 10, 8, 10, 8, 11, 9, 11, 9, 11, 9, 11, 9, 11, - 9, 7, 7, 7, 7, 7, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 15, 18, 9, 0, 8, 4, 4, 7, 10, 8, 12, 11, - 4, 5, 5, 8, 8, 4, 5, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 8, 8, 8, 6, 13, 10, 10, 9, 10, 8, 8, - 10, 11, 6, 4, 9, 7, 13, 11, 11, 9, 11, 9, 7, 8, 11, 9, 14, 9, 8, 8, 5, 6, 5, 8, 6, 9, 8, 9, 7, 9, 8, 4, - 8, 8, 4, 4, 7, 4, 13, 8, 9, 9, 9, 6, 7, 5, 8, 7, 11, 7, 7, 7, 5, 7, 5, 8, 4, 4, 8, 8, 8, 8, 7, 7, - 9, 12, 5, 7, 8, 5, 12, 8, 7, 8, 5, 5, 9, 8, 10, 4, 3, 5, 5, 7, 11, 11, 11, 6, 10, 10, 10, 10, 10, 10, 13, 9, - 8, 8, 8, 8, 6, 6, 6, 6, 10, 11, 11, 11, 11, 11, 11, 8, 11, 11, 11, 11, 11, 8, 9, 9, 8, 8, 8, 8, 8, 8, 13, 7, - 8, 8, 8, 8, 4, 4, 4, 4, 9, 8, 9, 9, 9, 9, 9, 8, 9, 8, 8, 8, 8, 7, 9, 7, 10, 8, 10, 8, 10, 8, 9, 7, - 9, 7, 9, 7, 9, 7, 10, 9, 10, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 8, 10, 8, 10, 8, 10, 8, 11, 8, 11, 8, - 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 9, 8, 4, 4, 9, 7, 7, 7, 4, 7, 4, 7, 4, 7, 5, 7, 4, 11, 8, 11, 8, 11, - 8, 10, 11, 8, 11, 9, 11, 9, 11, 9, 13, 14, 9, 6, 9, 6, 9, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 5, 8, 5, 8, 5, - 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 14, 11, 8, 7, 8, 8, 7, 8, 7, 8, 7, 4, 8, 10, 8, 13, 13, 11, 9, 7, - 7, 9, 9, 8, 9, 4, 9, 3, 9, 9, 9, 9, 10, 4, 9, 12, 7, 12, 10, 12, 4, 10, 10, 8, 10, 8, 8, 11, 11, 6, 9, 10, - 13, 11, 8, 11, 11, 9, 8, 8, 8, 11, 9, 11, 11, 6, 8, 9, 7, 8, 4, 8, 9, 9, 7, 9, 7, 7, 8, 9, 4, 7, 7, 8, - 8, 7, 9, 9, 9, 7, 9, 7, 8, 11, 8, 10, 12, 4, 8, 9, 8, 12, 8, 11, 8, 9, 7, 6, 6, 4, 14, 15, 11, 9, 9, 11, - 10, 9, 10, 8, 10, 8, 12, 8, 11, 11, 9, 11, 13, 11, 11, 11, 9, 9, 8, 9, 11, 9, 11, 10, 14, 14, 10, 13, 10, 9, 16, 9, - 8, 9, 8, 6, 8, 8, 11, 7, 8, 8, 7, 8, 11, 8, 9, 8, 9, 7, 7, 7, 11, 7, 8, 8, 13, 13, 10, 11, 8, 7, 12, 8, - 8, 8, 6, 7, 7, 4, 4, 4, 12, 13, 8, 7, 7, 8, 7, 6, 14, 11, 14, 11, 14, 11, 8, 7, 8, 15, 15, 6, 3, 3, 3, 3, - 6, 6, 6, 8, 8, 7, 12, 18, 4, 7, 4, 4, 7, 2, 5, 8, 8, 12, 8, 12, 8, 15, 12, 11, 9, 11, 11, 11, 11, 9, 10, 11, - 9, 8, 8, 11, 6, 8, 8, 8, 8, 9, 9, 9, 9, 4, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 8, 15, 8, 15, 5, 4, 3, 8, - 4, 3, 2, 0, 0, 15, 15, 4, 3, 9, 8, 12, 13, 13, 10, 8, 12, 5, 6, 14, 14, 11, 9, 11, 9, 0, 0, 0, 0, 0, 8, 11, - 8, 8, 15, 12, 10, 9, 13, 11, 10, 8, 13, 10, 10, 9, 14, 12, 8, 7, 11, 10, 11, 9, 9, 7, 9, 7, 18, 16, 11, 9, 13, 12, - 15, 12, 9, 7, 9, 8, 9, 9, 9, 15, 14, 11, 8, 9, 9, 9, 9, 8, 6, 10, 8, 12, 11, 8, 7, 9, 8, 9, 7, 9, 7, 10, - 9, 11, 8, 12, 10, 16, 13, 11, 10, 9, 7, 8, 7, 8, 7, 8, 7, 9, 7, 13, 10, 10, 9, 10, 8, 11, 8, 12, 9, 12, 9, 6, - 12, 11, 10, 8, 11, 8, 11, 8, 11, 8, 10, 8, 13, 11, 6, 10, 8, 10, 8, 13, 13, 8, 8, 11, 8, 11, 8, 12, 11, 8, 7, 8, - 7, 11, 8, 11, 8, 11, 9, 11, 9, 11, 9, 9, 7, 9, 7, 9, 7, 9, 7, 10, 8, 8, 6, 13, 11, 8, 6, 9, 8, 9, 7, 9, - 9, 14, 14, 14, 12, 9, 8, 15, 12, 15, 12, 11, 9, 11, 10, 8, 7, 11, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, - 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 6, 4, 11, - 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 8, 11, 8, 11, 9, 11, 9, 11, - 9, 11, 9, 11, 9, 8, 7, 8, 7, 8, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 16, 20, 10, 0, 8, 4, 4, 7, - 10, 9, 13, 11, 4, 5, 5, 9, 9, 4, 5, 4, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 9, 9, 9, 7, 14, 11, 11, - 10, 11, 8, 8, 11, 11, 6, 4, 9, 8, 14, 12, 11, 9, 11, 10, 8, 8, 11, 10, 14, 9, 8, 9, 5, 6, 5, 9, 7, 9, 9, 9, - 8, 9, 9, 4, 8, 9, 4, 4, 8, 4, 14, 9, 9, 9, 9, 6, 7, 5, 9, 8, 12, 8, 8, 8, 6, 9, 6, 9, 4, 4, 9, 9, - 9, 9, 9, 8, 9, 13, 6, 8, 9, 5, 13, 8, 7, 9, 6, 6, 9, 9, 10, 4, 3, 6, 6, 8, 12, 12, 12, 7, 11, 11, 11, 11, - 11, 11, 14, 10, 8, 8, 8, 8, 6, 6, 6, 6, 11, 12, 11, 11, 11, 11, 11, 9, 11, 11, 11, 11, 11, 8, 9, 10, 9, 9, 9, 9, - 9, 9, 14, 8, 9, 9, 9, 9, 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 11, 9, 11, 9, - 11, 9, 10, 8, 10, 8, 10, 8, 10, 8, 11, 9, 11, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 11, 8, 11, 8, 11, 8, 11, 8, - 11, 9, 11, 9, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 10, 8, 4, 4, 9, 8, 8, 8, 4, 8, 4, 8, 4, 8, 6, 8, 4, 12, - 9, 12, 9, 12, 9, 11, 12, 9, 11, 9, 11, 9, 11, 9, 14, 15, 10, 6, 10, 6, 10, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 5, - 8, 5, 8, 5, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 14, 12, 8, 8, 8, 9, 8, 9, 8, 9, 8, 5, 9, 11, 9, 14, - 14, 11, 9, 8, 7, 9, 9, 9, 9, 4, 9, 3, 9, 9, 9, 9, 11, 4, 10, 12, 7, 13, 11, 13, 5, 11, 11, 8, 10, 8, 9, 11, - 11, 6, 9, 10, 14, 12, 9, 11, 11, 9, 9, 8, 8, 13, 9, 13, 11, 6, 8, 9, 7, 9, 5, 9, 9, 10, 8, 9, 7, 7, 9, 9, - 5, 8, 8, 9, 8, 8, 9, 10, 9, 8, 9, 7, 9, 11, 8, 12, 12, 5, 9, 9, 9, 12, 8, 11, 8, 10, 8, 6, 6, 4, 15, 15, - 11, 9, 10, 11, 11, 9, 11, 8, 10, 8, 14, 9, 12, 12, 9, 11, 14, 11, 11, 11, 9, 10, 8, 10, 13, 9, 11, 10, 16, 16, 11, 13, - 10, 10, 16, 10, 9, 9, 9, 6, 9, 9, 11, 7, 9, 9, 8, 9, 11, 9, 9, 9, 9, 8, 7, 8, 11, 8, 9, 9, 14, 14, 11, 12, - 9, 8, 13, 9, 9, 9, 6, 8, 7, 4, 4, 4, 14, 14, 9, 8, 8, 9, 8, 6, 14, 12, 14, 12, 14, 12, 8, 8, 8, 16, 16, 7, - 3, 3, 3, 3, 6, 6, 6, 8, 8, 7, 12, 20, 4, 7, 5, 5, 8, 2, 6, 9, 9, 13, 9, 13, 8, 16, 13, 11, 10, 12, 12, 12, - 12, 9, 10, 11, 10, 9, 9, 11, 6, 9, 9, 9, 9, 9, 9, 9, 10, 4, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 8, 16, 8, 16, - 5, 4, 3, 9, 4, 3, 2, 0, 0, 16, 16, 4, 3, 9, 9, 12, 14, 14, 11, 9, 13, 5, 6, 14, 14, 11, 9, 11, 10, 0, 0, 0, - 0, 0, 8, 12, 9, 9, 16, 13, 11, 9, 14, 11, 11, 9, 14, 12, 11, 9, 15, 14, 9, 7, 13, 12, 11, 9, 10, 8, 10, 8, 19, 17, - 11, 9, 14, 13, 16, 13, 10, 8, 10, 9, 9, 9, 9, 16, 15, 12, 9, 9, 9, 9, 9, 8, 6, 11, 8, 14, 11, 9, 7, 10, 9, 9, - 8, 9, 8, 11, 10, 11, 9, 12, 11, 17, 13, 13, 10, 10, 8, 8, 7, 8, 7, 8, 7, 9, 8, 13, 11, 11, 10, 10, 9, 11, 9, 13, - 10, 13, 10, 6, 14, 11, 11, 9, 11, 9, 11, 9, 11, 9, 10, 9, 14, 11, 6, 11, 9, 11, 9, 14, 14, 8, 9, 11, 9, 11, 9, 14, - 11, 9, 7, 9, 8, 12, 9, 12, 9, 11, 9, 11, 9, 11, 9, 10, 8, 10, 8, 10, 8, 10, 8, 10, 9, 8, 6, 13, 12, 8, 6, 10, - 8, 9, 8, 9, 9, 14, 14, 15, 13, 10, 8, 16, 14, 16, 14, 11, 9, 11, 10, 9, 7, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, - 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 6, - 4, 6, 4, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, 9, 11, - 10, 11, 10, 11, 10, 11, 10, 11, 10, 8, 8, 8, 8, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 17, 20, 10, 0, - 9, 4, 4, 7, 11, 9, 14, 12, 4, 5, 5, 9, 9, 4, 5, 4, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 9, 9, 9, - 7, 15, 10, 11, 10, 12, 9, 9, 12, 12, 6, 5, 10, 8, 15, 13, 13, 10, 13, 11, 9, 9, 12, 10, 15, 9, 9, 10, 5, 6, 5, 9, - 7, 10, 9, 10, 8, 10, 9, 6, 8, 9, 4, 4, 8, 4, 15, 9, 10, 10, 10, 6, 8, 6, 9, 8, 13, 8, 8, 8, 6, 9, 6, 9, - 4, 4, 9, 9, 9, 9, 9, 8, 10, 14, 6, 8, 9, 5, 14, 9, 7, 9, 6, 6, 10, 9, 11, 4, 3, 6, 6, 8, 13, 13, 13, 7, - 10, 10, 10, 10, 10, 10, 14, 10, 9, 9, 9, 9, 6, 6, 6, 6, 12, 13, 13, 13, 13, 13, 13, 9, 13, 12, 12, 12, 12, 9, 10, 10, - 9, 9, 9, 9, 9, 9, 14, 8, 9, 9, 9, 9, 4, 4, 4, 4, 10, 9, 10, 10, 10, 10, 10, 9, 10, 9, 9, 9, 9, 8, 10, 8, - 10, 9, 10, 9, 10, 9, 10, 8, 10, 8, 10, 8, 10, 8, 12, 10, 12, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 8, 12, 8, - 12, 8, 12, 8, 12, 9, 12, 9, 6, 4, 6, 4, 6, 4, 6, 4, 6, 4, 11, 8, 5, 4, 10, 8, 8, 8, 4, 8, 4, 8, 4, 8, - 6, 8, 4, 13, 9, 13, 9, 13, 9, 11, 13, 9, 13, 10, 13, 10, 13, 10, 15, 15, 11, 6, 11, 6, 11, 6, 9, 8, 9, 8, 9, 8, - 9, 8, 9, 6, 9, 6, 9, 6, 12, 9, 12, 9, 12, 9, 12, 9, 12, 9, 12, 9, 15, 13, 9, 8, 9, 10, 8, 10, 8, 10, 8, 5, - 9, 10, 9, 14, 14, 13, 10, 9, 8, 10, 10, 9, 10, 4, 10, 3, 10, 10, 10, 10, 10, 4, 10, 13, 8, 13, 11, 13, 5, 10, 11, 9, - 10, 9, 10, 12, 13, 6, 10, 10, 15, 13, 9, 13, 12, 10, 9, 9, 9, 14, 9, 14, 13, 6, 9, 10, 8, 9, 5, 9, 10, 10, 8, 10, - 8, 8, 9, 10, 5, 8, 9, 9, 8, 8, 10, 11, 10, 8, 10, 8, 9, 12, 9, 12, 13, 5, 9, 10, 9, 13, 9, 12, 9, 10, 9, 6, - 6, 5, 15, 16, 12, 10, 10, 12, 10, 10, 11, 9, 11, 9, 14, 10, 13, 13, 10, 11, 15, 12, 13, 12, 10, 10, 9, 10, 14, 9, 12, 11, - 17, 17, 11, 14, 11, 10, 18, 11, 9, 10, 9, 6, 9, 9, 12, 8, 9, 9, 8, 9, 12, 9, 10, 9, 10, 8, 8, 8, 12, 8, 9, 9, - 15, 15, 11, 12, 9, 8, 14, 9, 9, 9, 6, 8, 8, 4, 4, 4, 14, 14, 9, 8, 8, 9, 8, 7, 15, 13, 15, 13, 15, 13, 9, 8, - 9, 17, 17, 7, 3, 3, 3, 3, 6, 6, 6, 8, 8, 6, 15, 20, 4, 7, 5, 5, 8, 2, 6, 9, 9, 13, 9, 14, 9, 18, 14, 13, - 11, 13, 13, 13, 13, 10, 10, 12, 11, 9, 9, 12, 7, 9, 9, 9, 9, 9, 10, 10, 10, 4, 9, 9, 9, 6, 6, 6, 6, 6, 6, 6, - 9, 17, 9, 17, 6, 4, 3, 9, 5, 3, 2, 0, 0, 17, 17, 4, 3, 10, 10, 13, 15, 15, 10, 9, 13, 6, 7, 16, 16, 13, 10, 12, - 10, 0, 0, 0, 0, 0, 9, 13, 9, 9, 17, 14, 11, 10, 15, 12, 10, 9, 15, 12, 12, 11, 17, 14, 9, 8, 14, 12, 13, 10, 10, 8, - 10, 8, 20, 18, 13, 10, 15, 13, 17, 14, 10, 8, 10, 9, 10, 10, 10, 17, 16, 14, 9, 10, 10, 10, 10, 9, 6, 11, 9, 14, 12, 10, - 8, 11, 9, 10, 8, 10, 8, 11, 10, 12, 9, 13, 11, 18, 15, 14, 11, 10, 8, 9, 8, 9, 7, 9, 7, 9, 8, 13, 12, 12, 10, 11, - 9, 12, 9, 14, 10, 14, 10, 6, 14, 12, 11, 9, 11, 9, 12, 9, 12, 9, 11, 9, 15, 12, 6, 10, 9, 10, 9, 14, 14, 9, 9, 13, - 9, 13, 9, 14, 12, 10, 8, 10, 8, 13, 9, 13, 9, 13, 10, 13, 10, 13, 10, 10, 8, 10, 8, 10, 8, 10, 8, 11, 9, 9, 6, 14, - 12, 9, 6, 10, 9, 9, 8, 10, 10, 15, 15, 16, 13, 11, 9, 16, 14, 17, 14, 12, 10, 13, 11, 10, 8, 11, 9, 10, 9, 10, 9, 10, - 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 6, 4, 6, 4, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 12, - 9, 12, 9, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 9, 8, 9, 8, 9, 8, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, - 18, 22, 11, 0, 9, 5, 4, 7, 12, 10, 15, 13, 4, 5, 5, 10, 10, 4, 6, 4, 7, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, - 4, 10, 10, 10, 8, 16, 11, 11, 11, 12, 10, 9, 12, 13, 6, 5, 10, 9, 16, 13, 13, 11, 13, 11, 9, 9, 13, 10, 16, 10, 9, 10, - 5, 7, 5, 10, 7, 10, 10, 11, 8, 11, 10, 7, 10, 11, 5, 5, 9, 5, 16, 11, 10, 11, 11, 7, 9, 6, 11, 10, 13, 9, 10, 8, - 6, 10, 6, 10, 5, 4, 10, 10, 10, 10, 10, 9, 10, 15, 6, 10, 10, 6, 15, 9, 8, 10, 6, 6, 10, 11, 12, 4, 4, 6, 6, 10, - 13, 13, 13, 8, 11, 11, 11, 11, 11, 11, 15, 11, 10, 10, 10, 10, 6, 6, 6, 6, 12, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, - 13, 9, 11, 11, 10, 10, 10, 10, 10, 10, 15, 8, 10, 10, 10, 10, 5, 5, 5, 5, 10, 11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, - 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 8, 11, 8, 11, 8, 11, 8, 12, 11, 12, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 12, 10, 12, 10, 12, 10, 12, 10, 13, 11, 13, 11, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 11, 10, 5, 5, 10, 9, 9, 9, 5, 9, - 5, 9, 5, 9, 6, 9, 5, 13, 11, 13, 11, 13, 11, 13, 13, 11, 13, 10, 13, 10, 13, 10, 16, 16, 11, 7, 11, 7, 11, 7, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 6, 9, 6, 9, 6, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 16, 13, 9, 10, 9, 10, 8, 10, - 8, 10, 8, 5, 10, 11, 10, 15, 15, 13, 10, 9, 9, 10, 10, 10, 10, 5, 10, 3, 10, 10, 10, 10, 11, 4, 11, 14, 8, 14, 12, 14, - 6, 11, 11, 10, 11, 10, 10, 13, 13, 6, 10, 11, 16, 13, 10, 13, 13, 11, 10, 9, 9, 14, 10, 14, 13, 6, 9, 11, 8, 11, 6, 11, - 11, 11, 10, 10, 8, 8, 11, 10, 6, 9, 9, 11, 9, 8, 10, 12, 11, 8, 10, 8, 11, 13, 10, 12, 13, 6, 11, 10, 11, 13, 10, 13, - 10, 11, 9, 6, 6, 5, 16, 17, 13, 10, 11, 13, 11, 11, 11, 10, 12, 10, 14, 10, 13, 13, 10, 12, 16, 13, 13, 13, 11, 11, 9, 11, - 14, 10, 13, 12, 18, 18, 12, 15, 11, 11, 19, 11, 10, 10, 10, 7, 10, 10, 13, 8, 11, 11, 9, 10, 14, 11, 10, 11, 11, 8, 8, 10, - 13, 9, 11, 11, 16, 16, 12, 14, 10, 8, 15, 10, 10, 11, 7, 8, 9, 5, 5, 5, 15, 16, 11, 9, 10, 11, 9, 7, 16, 13, 16, 13, - 16, 13, 9, 10, 9, 18, 18, 7, 3, 3, 4, 3, 6, 6, 6, 8, 8, 7, 15, 21, 4, 7, 6, 6, 9, 2, 7, 10, 10, 14, 10, 14, - 9, 19, 14, 13, 11, 14, 14, 14, 14, 10, 11, 13, 11, 10, 10, 13, 7, 10, 10, 10, 10, 11, 11, 11, 11, 5, 9, 9, 9, 6, 6, 6, - 6, 6, 6, 6, 9, 18, 9, 18, 6, 5, 3, 10, 5, 4, 2, 0, 0, 18, 18, 5, 3, 11, 10, 15, 16, 16, 11, 10, 14, 6, 7, 17, - 17, 13, 10, 13, 12, 0, 0, 0, 0, 0, 10, 13, 10, 11, 18, 14, 12, 11, 16, 13, 11, 10, 16, 14, 12, 11, 17, 14, 10, 8, 14, 12, - 13, 10, 10, 10, 10, 10, 22, 19, 13, 10, 17, 14, 18, 14, 11, 8, 11, 10, 10, 10, 10, 18, 17, 13, 11, 10, 11, 11, 11, 9, 7, 11, - 9, 14, 13, 10, 8, 11, 10, 10, 9, 10, 9, 12, 11, 13, 11, 14, 12, 19, 15, 13, 12, 11, 8, 9, 8, 9, 9, 9, 9, 10, 9, 15, - 13, 13, 11, 12, 11, 13, 11, 15, 12, 15, 12, 6, 14, 13, 12, 10, 12, 10, 13, 11, 13, 11, 12, 11, 16, 14, 6, 11, 10, 11, 10, 15, - 15, 10, 10, 13, 10, 13, 10, 14, 13, 10, 8, 10, 8, 13, 11, 13, 11, 13, 10, 13, 10, 13, 10, 11, 8, 11, 10, 11, 10, 11, 10, 12, - 11, 10, 7, 15, 14, 9, 7, 11, 9, 10, 9, 11, 11, 16, 17, 16, 15, 11, 9, 18, 15, 19, 16, 13, 10, 13, 12, 10, 8, 12, 10, 11, - 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 6, 5, 6, 5, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, - 10, 13, 10, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 9, 10, 9, 10, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 4, 4, 19, 23, 11, 0, 10, 5, 4, 8, 12, 10, 16, 13, 4, 6, 6, 10, 10, 4, 6, 4, 7, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 4, 4, 10, 10, 10, 8, 16, 12, 12, 12, 13, 10, 9, 13, 14, 6, 5, 11, 10, 17, 14, 14, 11, 14, 12, 10, 10, 14, 11, - 17, 10, 10, 10, 6, 7, 6, 10, 8, 11, 10, 11, 9, 11, 10, 7, 10, 11, 5, 5, 9, 5, 17, 11, 10, 11, 11, 8, 9, 6, 11, 10, - 14, 10, 10, 8, 7, 10, 7, 10, 5, 4, 10, 10, 10, 10, 10, 10, 11, 16, 7, 10, 10, 6, 16, 10, 8, 10, 6, 6, 11, 11, 12, 4, - 4, 6, 7, 10, 14, 14, 14, 8, 12, 12, 12, 12, 12, 12, 16, 12, 10, 10, 10, 10, 6, 6, 6, 6, 13, 14, 14, 14, 14, 14, 14, 10, - 14, 14, 14, 14, 14, 10, 11, 11, 10, 10, 10, 10, 10, 10, 16, 9, 10, 10, 10, 10, 5, 5, 5, 5, 10, 11, 10, 10, 10, 10, 10, 10, - 10, 11, 11, 11, 11, 10, 11, 10, 12, 10, 12, 10, 12, 10, 12, 9, 12, 9, 12, 9, 12, 9, 13, 11, 13, 11, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 13, 10, 13, 10, 13, 10, 13, 10, 14, 11, 14, 11, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 11, 10, 5, 5, 11, 9, - 9, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 14, 11, 14, 11, 14, 11, 13, 14, 11, 14, 10, 14, 10, 14, 10, 17, 17, 12, 8, 12, 8, - 12, 8, 10, 9, 10, 9, 10, 9, 10, 9, 10, 6, 10, 6, 10, 6, 14, 11, 14, 11, 14, 11, 14, 11, 14, 11, 14, 11, 17, 14, 10, 10, - 10, 10, 8, 10, 8, 10, 8, 5, 10, 12, 10, 16, 16, 14, 10, 10, 9, 11, 11, 11, 11, 5, 11, 4, 11, 11, 11, 11, 12, 4, 11, 14, - 9, 15, 13, 15, 6, 12, 12, 10, 11, 10, 10, 14, 14, 6, 11, 12, 17, 14, 10, 14, 14, 11, 10, 10, 10, 14, 10, 14, 14, 6, 10, 11, - 8, 11, 6, 11, 11, 11, 10, 10, 8, 9, 11, 10, 6, 9, 10, 11, 10, 9, 10, 12, 11, 9, 10, 9, 11, 13, 10, 14, 14, 6, 11, 10, - 11, 14, 10, 13, 10, 12, 10, 6, 6, 5, 17, 18, 13, 11, 11, 14, 12, 11, 12, 10, 12, 10, 16, 10, 14, 14, 11, 13, 17, 14, 14, 14, - 11, 12, 10, 11, 14, 10, 14, 12, 18, 18, 12, 16, 12, 12, 20, 12, 10, 10, 10, 7, 11, 10, 14, 8, 11, 11, 9, 10, 14, 11, 10, 11, - 11, 9, 9, 10, 13, 10, 11, 11, 17, 17, 13, 15, 10, 9, 15, 10, 10, 11, 7, 9, 9, 5, 5, 5, 15, 16, 11, 9, 10, 11, 10, 8, - 17, 14, 17, 14, 17, 14, 10, 10, 10, 19, 19, 8, 3, 3, 4, 3, 7, 7, 7, 8, 8, 7, 15, 23, 4, 8, 6, 6, 9, 2, 7, 10, - 10, 14, 10, 15, 10, 19, 14, 14, 12, 14, 14, 14, 14, 11, 11, 14, 11, 10, 10, 13, 7, 10, 10, 10, 10, 11, 12, 12, 11, 5, 10, 10, - 10, 6, 6, 6, 6, 6, 6, 6, 10, 19, 10, 19, 6, 5, 3, 10, 5, 4, 2, 0, 0, 19, 19, 5, 3, 11, 10, 16, 17, 17, 12, 10, - 15, 6, 8, 18, 18, 14, 10, 14, 12, 0, 0, 0, 0, 0, 10, 14, 10, 11, 19, 15, 12, 11, 17, 14, 12, 11, 17, 15, 14, 13, 19, 17, - 10, 8, 14, 14, 14, 10, 11, 10, 11, 10, 22, 20, 14, 11, 18, 15, 19, 15, 12, 9, 12, 11, 11, 11, 11, 19, 18, 14, 11, 11, 11, 11, - 11, 9, 7, 12, 10, 16, 14, 10, 8, 12, 10, 11, 9, 11, 9, 13, 11, 14, 11, 15, 12, 20, 16, 14, 12, 12, 9, 10, 9, 10, 9, 10, - 9, 10, 10, 16, 13, 13, 11, 12, 11, 14, 11, 15, 12, 15, 12, 6, 16, 14, 13, 10, 13, 10, 14, 11, 14, 11, 12, 11, 17, 14, 6, 12, - 10, 12, 10, 16, 16, 10, 10, 14, 10, 14, 10, 16, 14, 10, 8, 10, 9, 14, 11, 14, 11, 14, 10, 14, 10, 14, 10, 12, 9, 11, 10, 11, - 10, 11, 10, 12, 11, 10, 7, 16, 15, 9, 7, 11, 10, 10, 10, 11, 11, 17, 17, 17, 15, 11, 9, 19, 16, 20, 17, 14, 10, 13, 12, 10, - 8, 13, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 12, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 5, 6, 5, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, - 10, 14, 10, 14, 10, 14, 10, 14, 11, 14, 11, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 10, 10, 10, 10, 10, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 4, 4, 20, 24, 12, 0, 10, 5, 5, 8, 13, 11, 17, 14, 5, 6, 6, 11, 11, 5, 6, 5, 7, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 5, 5, 11, 11, 11, 9, 17, 13, 12, 12, 14, 11, 10, 14, 13, 7, 6, 11, 10, 17, 14, 16, 12, 16, 12, - 11, 11, 13, 12, 18, 11, 11, 11, 6, 7, 6, 11, 8, 12, 11, 12, 9, 12, 10, 7, 11, 12, 5, 5, 10, 5, 19, 12, 11, 12, 12, 8, - 9, 7, 12, 10, 15, 10, 10, 9, 7, 11, 7, 11, 5, 5, 11, 11, 11, 11, 11, 9, 12, 17, 7, 10, 11, 6, 17, 10, 9, 11, 7, 7, - 12, 12, 13, 5, 4, 7, 7, 10, 15, 15, 15, 9, 13, 13, 13, 13, 13, 13, 17, 12, 11, 11, 11, 11, 7, 7, 7, 7, 14, 14, 16, 16, - 16, 16, 16, 11, 16, 13, 13, 13, 13, 11, 12, 12, 11, 11, 11, 11, 11, 11, 17, 9, 10, 10, 10, 10, 5, 5, 5, 5, 11, 12, 11, 11, - 11, 11, 11, 11, 11, 12, 12, 12, 12, 10, 12, 10, 13, 11, 13, 11, 13, 11, 12, 9, 12, 9, 12, 9, 12, 9, 14, 12, 14, 12, 11, 10, - 11, 10, 11, 10, 11, 10, 11, 10, 14, 11, 14, 11, 14, 11, 14, 11, 13, 12, 13, 12, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 13, 10, - 6, 5, 11, 10, 10, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 14, 12, 14, 12, 14, 12, 14, 14, 12, 16, 11, 16, 11, 16, 11, 18, 18, - 12, 8, 12, 8, 12, 8, 11, 9, 11, 9, 11, 9, 11, 9, 11, 7, 11, 7, 11, 7, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, - 18, 15, 11, 10, 11, 11, 9, 11, 9, 11, 9, 6, 11, 13, 11, 17, 17, 16, 11, 11, 9, 12, 12, 11, 12, 5, 12, 4, 12, 12, 12, 12, - 13, 5, 13, 15, 9, 17, 13, 17, 6, 13, 12, 11, 12, 11, 11, 13, 16, 7, 11, 12, 17, 14, 11, 16, 13, 12, 11, 11, 11, 15, 11, 15, - 16, 7, 11, 12, 8, 12, 6, 12, 12, 12, 11, 11, 8, 9, 12, 11, 6, 10, 10, 12, 10, 9, 11, 13, 12, 9, 11, 9, 12, 13, 10, 15, - 15, 6, 12, 11, 12, 15, 11, 14, 11, 12, 11, 7, 7, 6, 19, 19, 14, 11, 12, 13, 13, 12, 12, 11, 13, 11, 17, 11, 14, 14, 11, 13, - 17, 13, 16, 13, 12, 12, 11, 12, 15, 11, 13, 13, 19, 19, 13, 16, 12, 13, 21, 12, 11, 11, 11, 8, 11, 10, 15, 8, 12, 12, 10, 11, - 14, 12, 11, 12, 12, 9, 9, 10, 15, 10, 12, 12, 17, 17, 14, 16, 11, 9, 17, 11, 10, 12, 8, 9, 9, 5, 5, 5, 17, 17, 12, 10, - 10, 12, 9, 8, 18, 15, 18, 15, 18, 15, 11, 10, 10, 20, 20, 8, 4, 4, 4, 4, 8, 8, 8, 10, 10, 8, 15, 23, 5, 8, 6, 6, - 10, 3, 7, 11, 11, 15, 11, 16, 10, 20, 15, 16, 12, 15, 15, 15, 15, 12, 12, 14, 12, 11, 11, 14, 8, 11, 11, 11, 11, 11, 12, 12, - 12, 5, 10, 10, 10, 7, 7, 7, 7, 7, 7, 7, 10, 20, 10, 20, 7, 5, 3, 11, 5, 4, 2, 0, 0, 20, 20, 5, 4, 12, 11, 17, - 17, 19, 13, 11, 16, 7, 8, 18, 18, 16, 11, 15, 13, 0, 0, 0, 0, 0, 11, 14, 10, 12, 19, 16, 13, 12, 18, 14, 13, 11, 18, 15, - 15, 13, 19, 17, 11, 8, 15, 15, 16, 11, 12, 10, 12, 10, 24, 21, 16, 12, 18, 16, 19, 16, 12, 9, 12, 11, 12, 12, 12, 20, 19, 14, - 12, 12, 12, 12, 12, 10, 8, 12, 10, 17, 15, 11, 8, 12, 11, 11, 10, 11, 10, 13, 12, 13, 12, 15, 14, 21, 17, 15, 12, 12, 9, 11, - 9, 11, 11, 11, 11, 11, 10, 17, 15, 13, 13, 13, 12, 13, 12, 16, 13, 16, 13, 7, 17, 15, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, - 17, 14, 7, 13, 11, 13, 11, 17, 17, 11, 10, 15, 10, 15, 10, 17, 15, 11, 8, 11, 9, 14, 12, 14, 12, 16, 11, 16, 11, 16, 11, 13, - 9, 12, 10, 12, 10, 12, 10, 13, 12, 11, 8, 16, 16, 10, 8, 12, 10, 11, 10, 12, 12, 18, 18, 17, 15, 11, 9, 19, 17, 19, 18, 15, - 11, 14, 14, 11, 8, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 11, - 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 7, 5, 7, 5, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, - 11, 16, 11, 16, 11, 16, 11, 16, 11, 16, 11, 13, 12, 13, 12, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 11, 10, 11, 10, 11, 10, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 21, 26, 13, 0, 11, 5, 6, 8, 14, 12, 17, 15, 4, 6, 6, 12, 12, 6, 7, 6, - 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 9, 18, 13, 13, 13, 14, 11, 10, 14, 15, 8, 6, 12, 10, 18, 15, - 15, 12, 15, 13, 11, 10, 15, 12, 19, 11, 12, 11, 6, 8, 6, 11, 9, 12, 11, 12, 10, 12, 11, 7, 11, 12, 5, 5, 10, 5, 19, 12, - 12, 12, 12, 8, 9, 7, 12, 11, 16, 11, 11, 9, 7, 12, 7, 12, 5, 6, 12, 12, 12, 12, 12, 10, 12, 17, 7, 10, 12, 7, 17, 11, - 9, 12, 7, 7, 12, 12, 14, 6, 4, 7, 7, 10, 15, 15, 15, 9, 13, 13, 13, 13, 13, 13, 18, 13, 11, 11, 11, 11, 8, 8, 8, 8, - 14, 15, 15, 15, 15, 15, 15, 12, 15, 15, 15, 15, 15, 12, 12, 12, 11, 11, 11, 11, 11, 11, 18, 10, 11, 11, 11, 11, 5, 5, 5, 5, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 11, 13, 11, 13, 11, 13, 11, 13, 10, 13, 10, 13, 10, 13, 10, 14, 12, - 14, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 11, 14, 11, 14, 11, 14, 11, 15, 12, 15, 12, 8, 5, 8, 5, 8, 5, 8, 5, - 8, 5, 13, 11, 6, 5, 12, 10, 10, 10, 5, 10, 5, 10, 5, 10, 6, 10, 5, 15, 12, 15, 12, 15, 12, 14, 15, 12, 15, 12, 15, 12, - 15, 12, 19, 20, 13, 8, 13, 8, 13, 8, 11, 9, 11, 9, 11, 9, 11, 9, 10, 7, 10, 7, 10, 7, 15, 12, 15, 12, 15, 12, 15, 12, - 15, 12, 15, 12, 19, 16, 12, 11, 12, 11, 9, 11, 9, 11, 9, 6, 12, 13, 11, 18, 18, 15, 12, 11, 9, 12, 12, 12, 12, 5, 12, 4, - 12, 12, 12, 12, 13, 6, 13, 16, 10, 16, 14, 17, 6, 13, 13, 11, 12, 11, 11, 15, 15, 8, 12, 13, 18, 15, 11, 15, 15, 12, 11, 10, - 12, 16, 11, 16, 15, 8, 12, 12, 9, 12, 6, 12, 12, 13, 11, 12, 9, 9, 12, 12, 6, 10, 11, 12, 11, 10, 12, 13, 12, 10, 12, 9, - 12, 15, 11, 16, 15, 6, 12, 12, 12, 15, 11, 15, 11, 13, 11, 8, 8, 6, 19, 20, 15, 12, 12, 15, 13, 12, 13, 11, 14, 11, 18, 11, - 15, 15, 12, 14, 18, 15, 15, 15, 12, 13, 10, 12, 16, 11, 15, 14, 20, 20, 14, 17, 13, 13, 21, 13, 11, 12, 11, 8, 12, 11, 15, 9, - 12, 12, 10, 12, 15, 12, 12, 12, 12, 10, 9, 11, 15, 11, 12, 12, 17, 17, 14, 16, 11, 10, 18, 11, 11, 12, 8, 10, 9, 5, 5, 5, - 17, 18, 12, 10, 11, 12, 10, 8, 19, 16, 19, 16, 19, 16, 12, 11, 11, 21, 21, 9, 4, 4, 4, 4, 8, 8, 8, 10, 10, 9, 18, 25, - 4, 8, 6, 6, 10, 3, 7, 12, 12, 16, 12, 17, 11, 21, 17, 15, 13, 16, 16, 16, 16, 12, 12, 15, 12, 12, 12, 15, 8, 12, 12, 12, - 12, 11, 12, 12, 12, 5, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 11, 21, 11, 21, 7, 5, 4, 12, 6, 4, 2, 0, 0, 21, 21, 5, - 4, 13, 12, 17, 18, 19, 13, 11, 16, 7, 8, 19, 19, 15, 12, 16, 13, 0, 0, 0, 0, 0, 11, 15, 11, 12, 20, 17, 13, 12, 19, 15, - 13, 11, 18, 15, 14, 13, 20, 17, 11, 9, 16, 16, 15, 12, 12, 11, 12, 11, 26, 22, 16, 13, 19, 17, 20, 17, 13, 10, 13, 12, 12, 12, - 12, 21, 20, 16, 12, 12, 12, 12, 12, 10, 8, 13, 11, 18, 15, 11, 9, 13, 11, 12, 10, 12, 10, 14, 13, 15, 12, 17, 14, 22, 18, 16, - 13, 13, 10, 10, 9, 12, 11, 12, 11, 11, 11, 17, 15, 14, 13, 14, 12, 15, 12, 17, 14, 17, 14, 8, 18, 15, 14, 11, 14, 12, 15, 12, - 15, 12, 14, 12, 18, 15, 8, 13, 11, 13, 11, 18, 18, 11, 11, 15, 11, 15, 11, 18, 15, 11, 9, 11, 10, 15, 12, 15, 12, 15, 12, 15, - 12, 15, 12, 13, 10, 12, 11, 12, 11, 12, 11, 14, 12, 11, 8, 17, 16, 10, 8, 13, 11, 11, 11, 12, 12, 18, 18, 18, 16, 12, 10, 20, - 18, 21, 18, 15, 12, 14, 14, 11, 9, 14, 12, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, 11, 13, - 11, 13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 5, 8, 5, 15, 12, 15, 12, 15, 12, 15, 12, 15, - 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 15, 12, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 12, 11, 12, - 11, 12, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 22, 26, 13, 0, 11, 6, 6, 8, 14, 12, 18, 15, 4, 7, 7, 12, - 12, 6, 7, 6, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 9, 19, 13, 14, 13, 15, 12, 11, 15, 15, 8, 6, - 13, 11, 19, 16, 16, 13, 16, 13, 11, 11, 15, 13, 19, 12, 12, 12, 7, 8, 7, 12, 9, 13, 12, 13, 10, 13, 12, 7, 11, 13, 6, 6, - 11, 6, 20, 13, 13, 13, 13, 9, 10, 7, 13, 11, 16, 11, 11, 10, 8, 12, 8, 12, 6, 6, 12, 12, 12, 12, 12, 11, 13, 18, 7, 11, - 12, 7, 18, 11, 9, 12, 7, 7, 13, 13, 14, 6, 5, 7, 8, 11, 16, 16, 16, 9, 13, 13, 13, 13, 13, 13, 19, 13, 12, 12, 12, 12, - 8, 8, 8, 8, 15, 16, 16, 16, 16, 16, 16, 12, 16, 15, 15, 15, 15, 12, 13, 13, 12, 12, 12, 12, 12, 12, 18, 10, 12, 12, 12, 12, - 6, 6, 6, 6, 13, 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 13, 11, 13, 11, 13, 12, 13, 12, 13, 12, 13, 10, 13, 10, 13, 10, - 13, 10, 15, 13, 15, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 11, 15, 11, 15, 11, 15, 11, 15, 13, 15, 13, 8, 6, 8, 6, - 8, 6, 8, 6, 8, 6, 13, 12, 6, 6, 13, 11, 11, 11, 6, 11, 6, 11, 6, 11, 7, 11, 6, 16, 13, 16, 13, 16, 13, 15, 16, 13, - 16, 13, 16, 13, 16, 13, 20, 21, 13, 9, 13, 9, 13, 9, 11, 10, 11, 10, 11, 10, 11, 10, 11, 7, 11, 7, 11, 7, 15, 13, 15, 13, - 15, 13, 15, 13, 15, 13, 15, 13, 19, 16, 12, 11, 12, 12, 10, 12, 10, 12, 10, 6, 12, 13, 12, 19, 18, 16, 13, 11, 10, 13, 13, 12, - 13, 6, 13, 4, 13, 13, 13, 13, 13, 6, 13, 17, 10, 17, 15, 17, 7, 13, 14, 12, 13, 12, 12, 15, 16, 8, 13, 13, 19, 16, 12, 16, - 15, 13, 12, 11, 12, 16, 12, 16, 16, 8, 12, 13, 10, 13, 7, 13, 13, 13, 11, 13, 10, 10, 13, 13, 7, 11, 11, 13, 11, 10, 13, 14, - 13, 10, 13, 10, 13, 16, 12, 16, 16, 7, 13, 13, 13, 16, 12, 15, 12, 13, 11, 8, 8, 6, 20, 21, 15, 13, 13, 15, 13, 13, 14, 12, - 14, 12, 18, 12, 16, 16, 13, 15, 19, 15, 16, 15, 13, 13, 11, 13, 16, 12, 15, 15, 22, 22, 15, 18, 14, 13, 23, 13, 12, 13, 12, 9, - 12, 12, 16, 10, 13, 13, 11, 12, 16, 13, 13, 13, 13, 10, 10, 11, 16, 11, 13, 13, 20, 20, 14, 17, 12, 10, 19, 12, 12, 13, 9, 10, - 10, 6, 6, 6, 18, 19, 13, 11, 11, 13, 10, 9, 19, 16, 19, 16, 19, 16, 12, 11, 11, 22, 22, 9, 4, 4, 5, 4, 8, 8, 8, 11, - 11, 8, 18, 26, 4, 8, 7, 7, 11, 3, 8, 12, 12, 17, 12, 18, 11, 22, 17, 16, 14, 17, 17, 17, 17, 13, 13, 15, 13, 12, 12, 15, - 8, 12, 12, 12, 12, 13, 13, 13, 12, 6, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 11, 22, 11, 22, 7, 6, 4, 12, 6, 4, 2, 0, - 0, 22, 22, 6, 4, 13, 12, 18, 19, 20, 13, 12, 17, 7, 9, 20, 20, 16, 13, 16, 14, 0, 0, 0, 0, 0, 12, 16, 12, 13, 22, 17, - 14, 13, 20, 16, 13, 12, 19, 17, 14, 14, 20, 18, 12, 10, 16, 16, 16, 13, 13, 11, 13, 11, 26, 23, 17, 14, 21, 17, 22, 18, 13, 10, - 13, 12, 13, 13, 13, 22, 21, 16, 13, 13, 13, 13, 13, 11, 9, 14, 12, 18, 16, 12, 10, 14, 12, 13, 11, 13, 11, 14, 13, 15, 13, 17, - 15, 23, 19, 16, 14, 13, 10, 11, 10, 12, 10, 12, 10, 12, 11, 18, 15, 15, 13, 15, 13, 15, 13, 18, 14, 18, 14, 8, 18, 16, 15, 12, - 15, 12, 15, 13, 15, 13, 15, 13, 19, 16, 8, 13, 12, 13, 12, 19, 18, 12, 12, 15, 12, 15, 12, 18, 16, 12, 10, 12, 10, 16, 13, 16, - 13, 16, 13, 16, 13, 16, 13, 13, 10, 13, 11, 13, 11, 13, 11, 15, 13, 12, 9, 18, 17, 11, 9, 13, 12, 12, 11, 13, 13, 20, 19, 20, - 17, 13, 11, 22, 18, 22, 19, 16, 13, 15, 15, 12, 10, 15, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, - 12, 13, 12, 13, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 6, 8, 6, 16, 13, 16, 13, 16, - 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 16, 13, 15, 13, 15, 13, 16, 14, 16, 14, 16, 14, 16, 14, 16, - 14, 12, 11, 12, 11, 12, 11, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 23, 28, 14, 0, 12, 6, 6, 8, 15, 13, 19, 16, - 4, 7, 7, 13, 13, 6, 7, 6, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6, 6, 13, 13, 13, 10, 20, 14, 14, 14, 16, 12, 11, - 16, 16, 8, 6, 13, 11, 20, 17, 17, 13, 17, 14, 12, 12, 16, 13, 20, 13, 12, 12, 7, 9, 7, 12, 9, 13, 12, 13, 11, 13, 12, 8, - 12, 14, 6, 6, 11, 6, 20, 14, 13, 13, 13, 9, 10, 8, 14, 11, 17, 11, 11, 10, 8, 12, 8, 13, 6, 6, 13, 13, 13, 13, 12, 11, - 13, 19, 8, 11, 13, 7, 19, 12, 10, 13, 8, 8, 13, 14, 15, 6, 5, 8, 8, 11, 17, 17, 17, 10, 14, 14, 14, 14, 14, 14, 20, 14, - 12, 12, 12, 12, 8, 8, 8, 8, 16, 17, 17, 17, 17, 17, 17, 13, 17, 16, 16, 16, 16, 12, 13, 14, 12, 12, 12, 12, 12, 12, 19, 11, - 12, 12, 12, 12, 6, 6, 6, 6, 13, 14, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 11, 13, 11, 14, 12, 14, 12, 14, 12, 14, 11, - 14, 11, 14, 11, 14, 11, 16, 13, 16, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 12, 16, 12, 16, 12, 16, 12, 16, 14, 16, 14, - 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 14, 12, 6, 6, 13, 11, 11, 11, 6, 11, 6, 11, 6, 11, 8, 11, 6, 17, 14, 17, 14, 17, - 14, 16, 17, 14, 17, 13, 17, 13, 17, 13, 20, 21, 14, 9, 14, 9, 14, 9, 12, 10, 12, 10, 12, 10, 12, 10, 12, 8, 12, 8, 12, 8, - 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 20, 17, 12, 11, 12, 12, 10, 12, 10, 12, 10, 7, 13, 14, 12, 20, 19, 17, 13, 12, - 10, 13, 13, 13, 13, 6, 13, 4, 13, 13, 13, 13, 14, 6, 14, 18, 11, 18, 15, 18, 8, 14, 14, 12, 13, 12, 12, 16, 17, 8, 13, 14, - 20, 17, 12, 17, 16, 13, 12, 12, 12, 18, 13, 18, 17, 8, 12, 13, 10, 14, 8, 14, 13, 14, 11, 13, 10, 10, 14, 13, 8, 11, 12, 14, - 11, 11, 13, 15, 13, 11, 13, 10, 14, 16, 12, 17, 16, 8, 14, 13, 14, 16, 12, 16, 12, 14, 12, 8, 8, 6, 21, 22, 16, 13, 13, 16, - 14, 13, 14, 12, 15, 12, 18, 13, 17, 17, 13, 15, 20, 16, 17, 16, 13, 14, 12, 13, 18, 13, 16, 15, 22, 22, 15, 19, 14, 14, 24, 14, - 12, 13, 13, 9, 13, 12, 16, 11, 14, 14, 11, 13, 17, 14, 13, 14, 13, 11, 10, 11, 16, 11, 14, 13, 20, 20, 16, 18, 13, 11, 19, 12, - 12, 14, 9, 11, 10, 6, 6, 6, 20, 21, 14, 11, 11, 14, 11, 9, 20, 17, 20, 17, 20, 17, 12, 11, 12, 23, 23, 9, 4, 4, 5, 4, - 8, 8, 8, 10, 10, 10, 18, 27, 4, 8, 8, 8, 11, 3, 8, 13, 13, 17, 13, 18, 12, 23, 18, 17, 14, 17, 17, 17, 17, 13, 13, 16, - 14, 13, 13, 16, 9, 13, 13, 13, 13, 13, 14, 14, 13, 6, 12, 12, 12, 8, 8, 8, 8, 8, 8, 8, 12, 23, 12, 23, 8, 6, 4, 13, - 6, 5, 2, 0, 0, 23, 23, 6, 4, 14, 12, 18, 20, 20, 14, 12, 18, 8, 9, 21, 21, 17, 13, 17, 15, 0, 0, 0, 0, 0, 12, 17, - 12, 14, 22, 18, 14, 13, 21, 16, 14, 12, 20, 17, 16, 14, 22, 19, 13, 11, 18, 17, 17, 13, 13, 11, 13, 11, 28, 24, 18, 15, 21, 18, - 22, 19, 14, 11, 14, 13, 13, 13, 13, 23, 22, 17, 14, 13, 13, 13, 13, 11, 9, 14, 13, 18, 16, 13, 11, 14, 12, 13, 11, 13, 11, 15, - 13, 16, 14, 18, 16, 24, 20, 17, 14, 14, 11, 12, 10, 12, 11, 12, 11, 13, 11, 19, 16, 15, 14, 15, 13, 16, 14, 19, 15, 19, 15, 8, - 18, 16, 15, 13, 15, 13, 16, 14, 16, 14, 15, 13, 20, 17, 8, 14, 12, 14, 12, 20, 19, 12, 12, 16, 12, 16, 12, 18, 16, 13, 11, 13, - 11, 17, 14, 17, 14, 17, 13, 17, 13, 17, 13, 14, 11, 13, 11, 13, 11, 13, 11, 15, 13, 12, 9, 19, 18, 11, 9, 14, 12, 13, 11, 13, - 13, 20, 20, 21, 19, 14, 12, 22, 20, 23, 21, 17, 13, 16, 15, 13, 11, 15, 13, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, - 12, 14, 12, 14, 12, 14, 12, 14, 12, 14, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 6, 8, 6, 17, - 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 17, 13, 16, 14, 16, 14, 17, 15, 17, 15, 17, - 15, 17, 15, 17, 15, 12, 11, 12, 11, 12, 11, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 24, 28, 14, 0, 12, 6, 6, 10, - 16, 13, 20, 17, 5, 7, 7, 13, 13, 6, 8, 6, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6, 6, 13, 13, 13, 10, 21, 15, 15, - 14, 16, 13, 12, 17, 17, 9, 7, 14, 12, 21, 18, 18, 14, 18, 14, 13, 13, 17, 14, 21, 13, 13, 13, 7, 9, 7, 13, 10, 14, 13, 14, - 11, 14, 13, 8, 13, 14, 6, 6, 12, 6, 22, 14, 14, 14, 14, 10, 11, 8, 14, 12, 18, 12, 12, 11, 9, 13, 9, 13, 6, 6, 13, 13, - 13, 13, 13, 12, 14, 20, 8, 12, 13, 8, 20, 12, 10, 13, 8, 8, 14, 14, 16, 6, 5, 8, 8, 12, 18, 18, 18, 10, 15, 15, 15, 15, - 15, 15, 20, 14, 13, 13, 13, 13, 9, 9, 9, 9, 16, 18, 18, 18, 18, 18, 18, 13, 18, 17, 17, 17, 17, 13, 14, 14, 13, 13, 13, 13, - 13, 13, 20, 11, 13, 13, 13, 13, 6, 6, 6, 6, 14, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 12, 14, 12, 15, 13, 15, 13, - 15, 13, 14, 11, 14, 11, 14, 11, 14, 11, 16, 14, 16, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 13, 17, 13, 17, 13, 17, 13, - 17, 14, 17, 14, 9, 6, 9, 6, 9, 6, 9, 6, 9, 6, 15, 12, 7, 6, 14, 12, 12, 12, 6, 12, 6, 12, 6, 12, 8, 12, 6, 18, - 14, 18, 14, 18, 14, 16, 18, 14, 18, 14, 18, 14, 18, 14, 21, 22, 14, 10, 14, 10, 14, 10, 13, 11, 13, 11, 13, 11, 13, 11, 13, 8, - 13, 8, 13, 8, 17, 14, 17, 14, 17, 14, 17, 14, 17, 14, 17, 14, 21, 18, 13, 12, 13, 13, 11, 13, 11, 13, 11, 7, 13, 15, 13, 20, - 20, 18, 14, 13, 11, 14, 14, 13, 14, 6, 14, 4, 14, 14, 14, 14, 15, 6, 14, 18, 11, 19, 16, 19, 8, 15, 15, 13, 14, 13, 13, 17, - 18, 9, 14, 15, 21, 18, 13, 18, 17, 14, 13, 13, 13, 19, 13, 19, 18, 9, 13, 14, 11, 14, 8, 14, 14, 14, 12, 14, 11, 11, 14, 14, - 8, 12, 12, 14, 12, 11, 14, 15, 14, 11, 14, 11, 14, 16, 13, 18, 18, 8, 14, 14, 14, 18, 13, 17, 13, 14, 13, 9, 9, 7, 22, 23, - 17, 14, 14, 17, 15, 14, 15, 13, 16, 13, 20, 13, 18, 18, 14, 16, 21, 17, 18, 17, 14, 14, 13, 14, 19, 13, 17, 16, 23, 23, 16, 20, - 15, 14, 25, 14, 13, 14, 13, 10, 13, 13, 16, 11, 14, 14, 12, 13, 17, 14, 14, 14, 14, 11, 10, 12, 16, 12, 14, 14, 20, 20, 16, 18, - 13, 11, 20, 13, 13, 14, 10, 11, 11, 6, 6, 6, 20, 21, 14, 12, 12, 14, 12, 10, 21, 18, 21, 18, 21, 18, 13, 12, 12, 24, 24, 10, - 4, 4, 5, 4, 9, 9, 9, 11, 11, 10, 18, 28, 5, 10, 8, 8, 12, 3, 8, 13, 13, 18, 13, 19, 12, 24, 19, 18, 15, 18, 18, 18, - 18, 14, 14, 17, 14, 13, 13, 17, 9, 13, 13, 13, 13, 15, 14, 14, 13, 6, 12, 12, 12, 8, 8, 8, 8, 8, 8, 8, 12, 24, 12, 24, - 8, 6, 4, 13, 6, 5, 2, 0, 0, 24, 24, 6, 4, 14, 13, 20, 21, 22, 15, 13, 19, 8, 10, 22, 22, 18, 14, 17, 15, 0, 0, 0, - 0, 0, 13, 18, 13, 14, 23, 19, 15, 14, 21, 17, 15, 13, 21, 18, 17, 14, 23, 20, 13, 11, 19, 18, 18, 14, 14, 12, 14, 12, 28, 25, - 19, 15, 22, 19, 23, 19, 14, 11, 15, 13, 14, 14, 14, 24, 23, 18, 14, 14, 14, 14, 14, 12, 10, 15, 13, 20, 16, 13, 11, 15, 13, 14, - 12, 14, 12, 16, 14, 17, 14, 18, 16, 25, 21, 18, 15, 14, 11, 13, 10, 13, 12, 13, 12, 13, 12, 20, 17, 16, 14, 16, 14, 17, 14, 19, - 15, 19, 15, 9, 20, 16, 16, 13, 16, 13, 17, 14, 17, 14, 16, 14, 21, 17, 9, 15, 13, 15, 13, 20, 20, 13, 13, 17, 13, 17, 13, 20, - 16, 13, 11, 13, 11, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 14, 11, 14, 12, 14, 12, 14, 12, 16, 14, 13, 10, 20, 18, 12, 10, 14, - 13, 13, 12, 14, 14, 21, 21, 21, 19, 13, 12, 23, 20, 24, 21, 17, 14, 17, 15, 13, 11, 16, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, - 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 15, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, - 6, 9, 6, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 17, 14, 17, 14, 17, - 15, 17, 15, 17, 15, 17, 15, 17, 15, 13, 12, 13, 12, 13, 12, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 3, - 0, 0, 0, 3, 0, 0, 0, 28, 0, 1, 0, 0, 0, 0, 2,216, 0, 3, 0, 1, 0, 0, 4,226, 0, 4, 2,188, 0, 0, 0,144, - 0,128, 0, 6, 0, 16, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, 2,201, 2,221, 2,243, - 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4, 13, 4, 79, 4, 95, 4,134, 4,145, - 5, 19, 30, 1, 30, 63, 30,133, 30,241, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, - 32, 68, 32,127, 32,164, 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, - 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, 0,160, 1,146, 1,160, - 1,175, 1,240, 1,250, 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3,132, 3,140, - 3,142, 3,163, 3,209, 3,214, 4, 0, 4, 14, 4, 80, 4, 96, 4,136, 4,146, 30, 0, 30, 62, 30,128, 30,160, 30,242, 31, 77, - 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32,127, 32,163, 32,167, 32,171, 33, 5, 33, 19, - 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,100, 37,202, -251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, 0,178, 0, 97,255, 73,255, 49,255,150,254,133,254,132,254,118, -255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207,253,206,253,205,254,130,254,127, 0, 0,253,154, 0, 0,254, 12, - 0, 0,254, 9,228, 88,228, 24,227,122,228,125, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234,225,225,225,224,225,219, -225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200,224, 37,224, 34,224, 26, -224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 96, 0, 0, 0,120, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 0, 0, - 0, 0, 0, 0, 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, 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,108, 0, 0, 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, 1,164, 1,165, 1,166, - 1,167, 2,105, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, 1,244, 1,245, 2,107, - 1,246, 1,247, 2,147, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154, 1,248, 1,249, 2, 0, 2, 1, 3,111, 3,112, - 3,113, 3,114, 3,115, 3,116, 3,117, 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 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, 2, 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, 2, 13, - 0,114, 0,100, 0,101, 0,105, 2, 15, 0,120, 0,161, 0,112, 0,107, 2, 32, 0,118, 0,106, 2, 48, 0,136, 0,154, 2, 45, - 0,115, 2, 49, 2, 50, 0,103, 0,119, 2, 39, 2, 42, 2, 41, 1,141, 2, 46, 0,108, 0,124, 2, 33, 0,168, 0,186, 0,129, - 0, 99, 0,110, 2, 44, 1, 66, 2, 47, 2, 40, 0,109, 0,125, 2, 16, 0, 98, 0,130, 0,133, 0,151, 1, 20, 1, 21, 2, 2, - 2, 3, 2, 10, 2, 11, 2, 6, 2, 7, 0,185, 2, 51, 0,193, 1, 58, 2, 23, 2, 28, 2, 20, 2, 21, 2, 52, 2, 53, 2, 14, - 0,121, 2, 8, 2, 12, 2, 17, 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, 1, 75, 1, 82, 0,113, 1, 78, 1, 79, 1, 80, 0,122, 1, 83, 1, 81, 1, 76, 0, 4, - 2,188, 0, 0, 0,144, 0,128, 0, 6, 0, 16, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, - 2,201, 2,221, 2,243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4, 13, 4, 79, - 4, 95, 4,134, 4,145, 5, 19, 30, 1, 30, 63, 30,133, 30,241, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, - 32, 51, 32, 58, 32, 60, 32, 68, 32,127, 32,164, 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, - 34, 6, 34, 15, 34, 18, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, - 0,160, 1,146, 1,160, 1,175, 1,240, 1,250, 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, - 3, 35, 3,132, 3,140, 3,142, 3,163, 3,209, 3,214, 4, 0, 4, 14, 4, 80, 4, 96, 4,136, 4,146, 30, 0, 30, 62, 30,128, - 30,160, 30,242, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, 32, 60, 32, 68, 32,127, 32,163, 32,167, - 32,171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, - 34, 96, 34,100, 37,202,251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, 0,178, 0, 97,255, 73,255, 49,255,150, -254,133,254,132,254,118,255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207,253,206,253,205,254,130,254,127, 0, 0, -253,154, 0, 0,254, 12, 0, 0,254, 9,228, 88,228, 24,227,122,228,125, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234, -225,225,225,224,225,219,225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200, -224, 37,224, 34,224, 26,224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0,120, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, - 1,164, 1,165, 1,166, 1,167, 2,105, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, - 1,244, 1,245, 2,107, 1,246, 1,247, 2,147, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154, 1,248, 1,249, 2, 0, - 2, 1, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 0, 0, 64, 69, 89, 88, - 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, - 53, 49, 48, 47, 46, 45, 44, 40, 39, 38, 37, 36, 35, 34, 33, 31, 24, 20, 17, 16, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, - 2, 1, 0, 44, 69, 35, 70, 96, 32,176, 38, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97, 32,176, 38, 97,176, 4, 38, - 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 32, 97, 32,176, 70, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97,176, 32, 96, - 32,176, 38, 97,176, 32, 97,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 64, 97, 32,176,102, 96,176, 4, 38, 35, 72, 72, - 45, 44, 69, 35, 70, 35, 97,176, 64, 96, 32,176, 38, 97,176, 64, 97,176, 4, 38, 35, 72, 72, 45, 44, 1, 16, 32, 60, 0, 60, 45, - 44, 32, 69, 35, 32,176,205, 68, 35, 32,184, 1, 90, 81, 88, 35, 32,176,141, 68, 35, 89, 32,176,237, 81, 88, 35, 32,176, 77, 68, - 35, 89, 32,176, 4, 38, 81, 88, 35, 32,176, 13, 68, 35, 89, 33, 33, 45, 44, 32, 32, 69, 24,104, 68, 32,176, 1, 96, 32, 69,176, - 70,118,104,138, 69, 96, 68, 45, 44, 1,177, 11, 10, 67, 35, 67,101, 10, 45, 44, 0,177, 10, 11, 67, 35, 67, 11, 45, 44, 0,176, - 40, 35,112,177, 1, 40, 62, 1,176, 40, 35,112,177, 2, 40, 69, 58,177, 2, 0, 8, 13, 45, 44, 32, 69,176, 3, 37, 69, 97,100, -176, 80, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 73,176, 14, 35, 68, 45, 44, 32, 69,176, 0, 67, 96, 68, 45, 44, 1,176, 6, 67, -176, 7, 67,101, 10, 45, 44, 32,105,176, 64, 97,176, 0,139, 32,177, 44,192,138,140,184, 16, 0, 98, 96, 43, 12,100, 35,100, 97, - 92, 88,176, 3, 97, 89, 45, 44,138, 3, 69,138,138,135,176, 17, 43,176, 41, 35, 68,176, 41,122,228, 24, 45, 44, 69,101,176, 44, - 35, 68, 69,176, 43, 35, 68, 45, 44, 75, 82, 88, 69, 68, 27, 33, 33, 89, 45, 44, 75, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 1, -176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 96, 35,237,236, 45, 44, 1,176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 97, 35,237, -236, 45, 44, 1,176, 6, 37, 16,245, 0,237,236, 45, 44, 70, 35, 70, 96,138,138, 70, 35, 32, 70,138, 96,138, 97,184,255,128, 98, - 35, 32, 16, 35,138,177, 12, 12,138,112, 69, 96, 32,176, 0, 80, 88,176, 1, 97,184,255,186,139, 27,176, 70,140, 89,176, 16, 96, -104, 1, 58, 45, 44, 32, 69,176, 3, 37, 70, 82, 75,176, 19, 81, 91, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, - 35, 33, 56, 27, 33, 17, 89, 45, 44, 32, 69,176, 3, 37, 70, 80, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, - 33, 56, 27, 33, 17, 89, 45, 44, 0,176, 7, 67,176, 6, 67, 11, 45, 44, 33, 33, 12,100, 35,100,139,184, 64, 0, 98, 45, 44, 33, -176,128, 81, 88, 12,100, 35,100,139,184, 32, 0, 98, 27,178, 0, 64, 47, 43, 89,176, 2, 96, 45, 44, 33,176,192, 81, 88, 12,100, - 35,100,139,184, 21, 85, 98, 27,178, 0,128, 47, 43, 89,176, 2, 96, 45, 44, 12,100, 35,100,139,184, 64, 0, 98, 96, 35, 33, 45, - 44, 75, 83, 88,138,176, 4, 37, 73,100, 35, 69,105,176, 64,139, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68, 35, 16,176, 14, -246, 27, 33, 35,138, 18, 17, 32, 57, 47, 89, 45, 44, 75, 83, 88, 32,176, 3, 37, 73,100,105, 32,176, 5, 38,176, 6, 37, 73,100, - 35, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68,176, 4, 38, 16,176, 14,246,138, 16,176, 14, 35, 68,176, 14,246,176, 14, 35, - 68,176, 14,237, 27,138,176, 4, 38, 17, 18, 32, 57, 35, 32, 57, 47, 47, 89, 45, 44, 69, 35, 69, 96, 35, 69, 96, 35, 69, 96, 35, -118,104, 24,176,128, 98, 32, 45, 44,176, 72, 43, 45, 44, 32, 69,176, 0, 84, 88,176, 64, 68, 32, 69,176, 64, 97, 68, 27, 33, 33, - 89, 45, 44, 69,177, 48, 47, 69, 35, 69, 97, 96,176, 1, 96,105, 68, 45, 44, 75, 81, 88,176, 47, 35,112,176, 20, 35, 66, 27, 33, - 33, 89, 45, 44, 75, 81, 88, 32,176, 3, 37, 69,105, 83, 88, 68, 27, 33, 33, 89, 27, 33, 33, 89, 45, 44, 69,176, 20, 67,176, 0, - 96, 99,176, 1, 96,105, 68, 45, 44,176, 47, 69, 68, 45, 44, 69, 35, 32, 69,138, 96, 68, 45, 44, 69, 35, 69, 96, 68, 45, 44, 75, - 35, 81, 88,185, 0, 51,255,224,177, 52, 32, 27,179, 51, 0, 52, 0, 89, 68, 68, 45, 44,176, 22, 67, 88,176, 3, 38, 69,138, 88, -100,102,176, 31, 96, 27,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 89, 35, 88,101, 89,176, 41, 35, 68, 35, 16, -176, 41,224, 27, 33, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88, 75, 83, 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 27, 33, 33, - 33, 33, 89, 45, 44,176, 22, 67, 88,176, 4, 37, 69,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 35, 88, 27,101, - 89,176, 41, 35, 68,176, 5, 37,176, 8, 37, 8, 32, 88, 2, 27, 3, 89,176, 4, 37, 16,176, 5, 37, 32, 70,176, 4, 37, 35, 66, - 60,176, 4, 37,176, 7, 37, 8,176, 7, 37, 16,176, 6, 37, 32, 70,176, 4, 37,176, 1, 96, 35, 66, 60, 32, 88, 1, 27, 0, 89, -176, 4, 37, 16,176, 5, 37,176, 41,224,176, 41, 32, 69,101, 68,176, 7, 37, 16,176, 6, 37,176, 41,224,176, 5, 37,176, 8, 37, - 8, 32, 88, 2, 27, 3, 89,176, 5, 37,176, 3, 37, 67, 72,176, 4, 37,176, 7, 37, 8,176, 6, 37,176, 3, 37,176, 1, 96, 67, - 72, 27, 33, 89, 33, 33, 33, 33, 33, 33, 33, 45, 44, 2,176, 4, 37, 32, 32, 70,176, 4, 37, 35, 66,176, 5, 37, 8,176, 3, 37, - 69, 72, 33, 33, 33, 33, 45, 44, 2,176, 3, 37, 32,176, 4, 37, 8,176, 2, 37, 67, 72, 33, 33, 33, 45, 44, 69, 35, 32, 69, 24, - 32,176, 0, 80, 32, 88, 35,101, 35, 89, 35,104, 32,176, 64, 80, 88, 33,176, 64, 89, 35, 88,101, 89,138, 96, 68, 45, 44, 75, 83, - 35, 75, 81, 90, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 84, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 83, - 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 45, 44,176, 0, 33, 75, 84, 88, 56, 27, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 70, - 43, 27, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 71, 43, 27, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 72, 43, - 27, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 73, 43, 27, 33, 33, 33, 89, 45, 44, 32,138, 8, 35, 75, 83,138, 75, 81, - 90, 88, 35, 56, 27, 33, 33, 89, 45, 44, 0,176, 2, 37, 73,176, 0, 83, 88, 32,176, 64, 56, 17, 27, 33, 89, 45, 44, 1, 70, 35, - 70, 96, 35, 70, 97, 35, 32, 16, 32, 70,138, 97,184,255,128, 98,138,177, 64, 64,138,112, 69, 96,104, 58, 45, 44, 32,138, 35, 73, -100,138, 35, 83, 88, 60, 27, 33, 89, 45, 44, 75, 82, 88,125, 27,122, 89, 45, 44,176, 18, 0, 75, 1, 75, 84, 66, 45, 44,177, 2, - 0, 66,177, 35, 1,136, 81,177, 64, 1,136, 83, 90, 88,185, 16, 0, 0, 32,136, 84, 88,178, 2, 1, 2, 67, 96, 66, 89,177, 36, - 1,136, 81, 88,185, 32, 0, 0, 64,136, 84, 88,178, 2, 2, 2, 67, 96, 66,177, 36, 1,136, 84, 88,178, 2, 32, 2, 67, 96, 66, - 0, 75, 1, 75, 82, 88,178, 2, 8, 2, 67, 96, 66, 89, 27,185, 64, 0, 0,128,136, 84, 88,178, 2, 4, 2, 67, 96, 66, 89,185, - 64, 0, 0,128, 99,184, 1, 0,136, 84, 88,178, 2, 8, 2, 67, 96, 66, 89,185, 64, 0, 1, 0, 99,184, 2, 0,136, 84, 88,178, - 2, 16, 2, 67, 96, 66, 89,185, 64, 0, 2, 0, 99,184, 4, 0,136, 84, 88,178, 2, 64, 2, 67, 96, 66, 89, 89, 89, 89, 89, 45, - 44, 69, 24,104, 35, 75, 81, 88, 35, 32, 69, 32,100,176, 64, 80, 88,124, 89,104,138, 96, 89, 68, 45, 44,176, 0, 22,176, 2, 37, -176, 2, 37, 1,176, 1, 35, 62, 0,176, 2, 35, 62,177, 1, 2, 6, 12,176, 10, 35,101, 66,176, 11, 35, 66, 1,176, 1, 35, 63, - 0,176, 2, 35, 63,177, 1, 2, 6, 12,176, 6, 35,101, 66,176, 7, 35, 66,176, 1, 22, 1, 45, 44,122,138, 16, 69, 35,245, 24, - 45, 0, 0, 0, 64, 16, 9,248, 3,255, 31,143,247,159,247, 2,127,243, 1, 96,242, 1,184,255,232, 64, 43,235, 12, 16, 70,223, - 51,221, 85,222,255,220, 85, 48,221, 1,221, 1, 3, 85,220, 3,250, 31, 48,194, 1,111,192,239,192, 2,252,182, 24, 31, 48,183, - 1, 96,183,128,183, 2,184,255,192, 64, 56,183, 15, 19, 70,231,177, 1, 31,175, 47,175, 63,175, 3, 79,175, 95,175,111,175, 3, - 64,175, 15, 19, 70,172, 81, 24, 31, 31,156, 95,156, 2,224,155, 1, 3, 43,154, 1, 31,154, 1,144,154,160,154, 2,115,154,131, -154, 2, 5,184,255,234, 64, 25,154, 9, 11, 70,175,151,191,151, 2, 3, 43,150, 1, 31,150, 1,159,150,175,150, 2,124,150, 1, - 5,184,255,234, 64,133,150, 9, 11, 70, 47,146, 63,146, 79,146, 3, 64,146, 12, 15, 70, 47,145, 1,159,145, 1,135,134, 24, 31, - 64,124, 80,124, 2, 3, 16,116, 32,116, 48,116, 3, 2,116, 1,242,116, 1, 10,111, 1,255,111, 1,169,111, 1,151,111, 1,117, -111,133,111, 2, 75,111, 1, 10,110, 1,255,110, 1,169,110, 1,151,110, 1, 75,110, 1, 6, 26, 1, 24, 85, 25, 19,255, 31, 7, - 4,255, 31, 6, 3,255, 31, 63,103, 1, 31,103, 47,103, 63,103,255,103, 4, 64,102, 80,102,160,102,176,102, 4, 63,101, 1, 15, -101,175,101, 2, 5,160,100,224,100, 2, 3,184,255,192, 64, 79,100, 6, 10, 70, 97, 95, 43, 31, 96, 95, 71, 31, 95, 80, 34, 31, -247, 91, 1,236, 91, 1, 84, 91,132, 91, 2, 73, 91, 1, 59, 91, 1,249, 90, 1,239, 90, 1,107, 90, 1, 75, 90, 1, 59, 90, 1, - 6, 19, 51, 18, 85, 5, 1, 3, 85, 4, 51, 3, 85, 31, 3, 1, 15, 3, 63, 3,175, 3, 3, 15, 87, 31, 87, 47, 87, 3, 3,184, -255,192,179, 86, 18, 21, 70,184,255,224,179, 86, 7, 11, 70,184,255,192,179, 84, 18, 21, 70,184,255,192, 64,109, 84, 6, 11, 70, - 82, 80, 43, 31, 63, 80, 79, 80, 95, 80, 3,250, 72, 1,239, 72, 1,135, 72, 1,101, 72, 1, 86, 72, 1, 58, 72, 1,250, 71, 1, -239, 71, 1,135, 71, 1, 59, 71, 1, 6, 28, 27,255, 31, 22, 51, 21, 85, 17, 1, 15, 85, 16, 51, 15, 85, 2, 1, 0, 85, 1, 71, - 0, 85,251,250, 43, 31,250, 27, 18, 31, 15, 15, 1, 31, 15,207, 15, 2, 15, 15,255, 15, 2, 6,111, 0,127, 0,175, 0,239, 0, - 4, 16, 0, 1,128, 22, 1, 5, 1,184, 1,144,177, 84, 83, 43, 43, 75,184, 7,255, 82, 75,176, 6, 80, 91,176, 1,136,176, 37, - 83,176, 1,136,176, 64, 81, 90,176, 6,136,176, 0, 85, 90, 91, 88,177, 1, 1,142, 89,133,141,141, 0, 66, 29, 75,176, 50, 83, - 88,176, 96, 29, 89, 75,176,100, 83, 88,176, 64, 29, 89, 75,176,128, 83, 88,176, 16, 29,177, 22, 0, 66, 89,115,115, 94,115,116, -117, 43, 43, 43, 43, 43, 43, 43, 43, 1, 95,115,115,115,115,115,115,115,115,115,115, 0,115, 43, 1, 43, 43, 43, 43, 95,115, 0, -115,116, 43, 43, 43, 1, 95,115,115,115,115,115,115,115,115,115,115, 0, 43, 43, 43, 1, 43, 95,115, 94,115,116,115,115,116, 0, - 43, 43, 43, 43, 1, 95,115,115,115,115,116,115,115,115,115,115,116, 0,115,116,116, 1, 95,115, 43, 0,115,116, 43,115, 1, 43, - 95,115,115,116,116, 95,115, 43, 95,115,115,116,116, 0, 95,115,115, 1, 43, 0, 43,115,116, 1,115, 0, 43,115,116, 43, 1,115, - 0,115, 43, 43,115, 43, 43, 1, 43,115,115,115, 0, 43, 24, 94, 6, 20, 0, 11, 0, 78, 5,182, 0, 23, 0,117, 5,182, 5,205, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, 0, 20, 0,143, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0, - 0, 0,255,236, 0, 0,254, 20,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,172, 0,182, - 0,188, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 85, 0,131, 0,151, 0,159, 0,125, 0,229, 0,174, 0,174, 0,113, 0,113, - 0, 0, 0, 0, 0,186, 0,197, 0,186, 0, 0, 0, 0, 0,164, 0,159, 0,140, 0, 0, 0, 0, 0,199, 0,199, 0,125, 0,125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0,185, 0,138, 0, 0, 0, 0, 0,155, 0,166, 0,143, 0,119, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 0,110, 0,144, 0,180, 0,193, 0,213, - 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 0,111, 0,120, 0,150, 0,192, 0,213, 1, 71, 0, 0, 0, 0, 0, 0, 0,254, 1, 58, - 0,197, 0,120, 0,254, 1, 22, 1,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,238, 0, 0, 0,150, 0,136, 0,174, 0,150, 0,137, 1, 12, 0,150, 1, 24, 0, 0, 3, 29, 0,148, 2, 90, 0,130, 3,150, - 0, 0, 0,168, 0,140, 0, 0, 0, 0, 2,121, 0,217, 0,180, 1, 10, 0, 0, 1,131, 0,109, 0,127, 0,160, 0, 0, 0, 0, - 0,109, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 0,160, 0, 0, 0,130, 0,137, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5,182,252,148, 0, 17,255,239, 0,131, 0,143, 0, 0, 0, 0, 0,109, 0,123, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,188, 1,170, 3, 84, 0, 0, 0, 0, 0,188, 0,182, 1,215, 1,149, 0, 0, 0,150, 1, 0, 0,174, - 5,182,254,188,254,111,254,131, 0,111, 2,173, 0, 0, 0, 42, 0, 42, 0, 42, 0, 42, 0,111, 0,161, 1, 41, 1,226, 2,113, - 3, 41, 3, 77, 3,124, 3,172, 3,226, 4, 15, 4, 68, 4, 91, 4,149, 4,180, 5, 6, 5, 63, 5,148, 6, 18, 6,101, 6,204, - 7, 63, 7,103, 8, 17, 8,130, 8,218, 9, 61, 9,121, 9,187, 9,247, 10,106, 11, 52, 11,160, 12, 23, 12,116, 12,179, 12,236, - 13, 57, 13,151, 13,205, 14, 16, 14, 73, 14,151, 14,183, 15, 43, 15,124, 15,213, 16, 34, 16,139, 16,252, 17,102, 17,167, 17,229, - 18, 56, 18,238, 19, 77, 19,158, 19,209, 19,247, 20, 23, 20, 59, 20, 89, 20,112, 20,149, 21, 8, 21,105, 21,174, 22, 14, 22,107, - 22,206, 23,162, 23,227, 24, 20, 24, 95, 24,175, 24,200, 25, 57, 25,119, 25,192, 26, 34, 26,131, 26,201, 27, 57, 27,142, 27,207, - 28, 39, 28,212, 29,101, 29,206, 30, 27, 30,117, 30,153, 30,245, 31, 72, 31, 72, 31,144, 31,244, 32,106, 33, 1, 33,116, 33,164, - 34, 93, 34,161, 35, 74, 35,180, 36, 8, 36, 53, 36, 61, 37, 12, 37, 35, 37,126, 37,186, 38, 10, 38,127, 38,164, 38,238, 39, 43, - 39,101, 39,171, 39,226, 40, 42, 40,122, 40,163, 40,200, 40,247, 41,109, 41,133, 41,156, 41,180, 41,203, 41,228, 42, 9, 42,114, - 42,133, 42,157, 42,180, 42,204, 42,229, 42,253, 43, 20, 43, 43, 43, 68, 43,168, 43,191, 43,215, 43,238, 44, 5, 44, 29, 44, 54, - 44,155, 45, 28, 45, 52, 45, 75, 45, 99, 45,124, 45,147, 45,221, 46,120, 46,143, 46,165, 46,187, 46,209, 46,233, 47, 1, 47,177, - 47,196, 47,219, 47,241, 48, 7, 48, 31, 48, 55, 48, 78, 48,101, 48,126, 49, 14, 49, 36, 49, 59, 49, 81, 49,104, 49,127, 49,152, - 50, 9, 50,130, 50,153, 50,175, 50,197, 50,222, 50,244, 51, 89, 51,113, 51,137, 51,159, 51,182, 51,204, 51,227, 52, 0, 52, 23, - 52, 47, 52, 70, 52, 94, 52,117, 52,142, 52,165, 52,189, 52,213, 52,232, 52,240, 53,105, 53,128, 53,150, 53,173, 53,195, 53,218, - 53,241, 54, 5, 54, 38, 54, 61, 54, 83, 54,106, 54,128, 54,151, 54,174, 54,197, 54,221, 54,240, 55, 6, 55, 30, 55, 59, 55,140, - 55,231, 55,254, 56, 21, 56, 44, 56, 67, 56, 90, 56,113, 56,132, 56,152, 56,175, 56,200, 56,241, 57, 21, 57, 44, 57, 67, 57, 86, - 57,105, 57,178, 57,202, 57,231, 57,250, 58, 14, 58, 38, 58, 62, 58, 81, 58,116, 58,193, 59, 14, 59, 37, 59, 59, 59, 79, 59, 98, - 59,121, 59,144, 59,178, 60, 19, 60,108, 60,131, 60,153, 60,176, 60,199, 60,224, 60,248, 61,105, 61,247, 62, 15, 62, 37, 62, 56, - 62, 76, 62,100, 62,124, 62,147, 62,169, 62,192, 62,214, 62,234, 62,253, 63, 20, 63, 42, 63, 61, 63, 81, 63,104, 63,122, 63,209, - 64, 59, 64, 83, 64,105, 64,129, 64,151, 64,174, 64,196, 64,221, 64,245, 65, 14, 65, 38, 65, 57, 65, 76, 65, 99, 65,122, 65,145, - 65,167, 65,192, 65,215, 65,237, 66, 4, 66, 27, 66, 50, 66, 72, 66,123, 66,223, 67,193, 68,150, 68,174, 68,197, 68,220, 68,242, - 69, 5, 69, 24, 69, 78, 69,132, 69,156, 69,215, 69,254, 70, 78, 70,123, 70,194, 71, 5, 71, 50, 71,163, 71,188, 71,246, 72, 27, - 72, 65, 72,130, 72,179, 72,231, 73, 15, 73, 40, 73, 48, 73, 56, 73,106, 73,182, 73,190, 73,198, 73,206, 74, 61, 74, 69, 74, 77, - 74,153, 74,161, 74,169, 74,246, 74,254, 75, 41, 75, 49, 75,121, 75,129, 75,137, 76, 24, 76, 32, 76,142, 77, 16, 77, 41, 77, 66, - 77, 88, 77,110, 77,132, 77,156, 77,177, 78, 35, 78,165, 79, 4, 79,140, 80, 8, 80,110, 80,174, 81, 32, 81, 94, 81,102, 81,226, - 82, 48, 82,114, 83, 18, 83, 26, 83,110, 83,200, 84, 55, 84,144, 84,218, 85, 28, 85,154, 86, 46, 86,143, 87, 25, 87, 50, 87, 75, - 87, 97, 87,119, 87,149, 87,174, 88, 40, 88, 63, 88,170, 88,178, 88,186, 88,211, 88,219, 89,114, 89,209, 90, 47, 90, 70, 90, 93, - 90,166, 90,174, 91, 1, 91, 9, 91, 17, 91,132, 91,140, 92, 25, 92,156, 92,251, 93, 19, 93, 91, 93,191, 93,199, 93,207, 93,215, - 93,223, 93,231, 93,239, 93,247, 94,103, 94,111, 94,119, 94,172, 94,243, 95, 59, 95,145, 95,231, 96, 61, 96,139, 96,238, 97,101, - 97,226, 97,234, 98,101, 98,215, 98,255, 99,101, 99,109, 99,226,100, 96,100,164,100,187,100,245,101, 64,101,165,101,235,101,243, -102, 28,102, 36,102, 44,102,107,102,115,102,240,102,248,103, 50,103,114,103,189,104, 22,104,115,104,213,105, 31,105,136,105,252, -106, 83,106,107,106,218,106,240,107, 76,107, 84,107, 92,107,117,107,125,107,245,108, 84,108,174,108,196,108,218,109, 31,109, 84, -109,127,109,151,109,174,109,197,109,220,109,246,110, 16,110, 40,110, 64,110, 91,110,118,110,145,110,186,110,229,111, 17,111, 68, -111,114,111,206,112, 42,112,148,112,239,113,117,113,184,114, 93,115, 42,115, 50,115, 58,115,109,115,162,115,180,115,210,116, 21, -116,112,116,247,117,129,118, 21,118,195,119, 65,119,247,120,126,120,134,120,233,121, 18,121, 65,121,112,121,155,122, 21,122, 98, -122,145,122,219,123, 1,123, 45,123,201,124, 26,124,163,125, 27,125, 96,125,164,125,240,126, 15,126, 45,126,112,126,163,126,201, -126,238,127, 19,127, 86,127,159,127,252,128, 91,128,138,129, 39,129,145,129,145,129,145,129,145,129,145,129,145,129,145,129,145, -129,145,129,145,129,145,129,145,129,145,129,145,130,219,131, 78,131, 90,131, 98,132, 11,132,136,133, 36,133, 59,133, 82,133,102, -133,122,133,167,133,244,134, 71,134,116,134,160,135, 21,135,124,135,219,136, 62,136, 99,136,136,136,207,137, 14,137, 46,137, 70, -137, 94,137,117,137,140,138, 41,138,228,139,101,139,218,140, 75,140,188,141, 64,141,211,142,107,143, 23,143,184,144, 92,145, 10, -145,186,146,164,147,147,147,155,147,163,148, 16,148,112,148,208,149, 56,149, 82,149,108,150, 44,150, 66,150,200,151, 70,152, 74, -153, 51,153,249,154,230,155, 72,155,151,156, 86,156,155,156,222,157, 13,157, 62,158, 29,158,187,159, 97,159,233,160, 68,160,168, -161, 36,161,178,162, 17,162, 97,162,207,163, 51,163,209,164,134,164,156,164,178,165, 38,165,145,165,255,166,114,166,216,167, 68, -167,142,167,224,168, 46,168,135,168,208,169, 30,169,137,169,252,170,173,171, 87,171,107,171,127,171,206,172, 29,172, 37,172,136, -172,249,173,104,174, 15,174,207,175, 54,175,148,175,243,176, 79,176,182,177, 25,177,103,177,173,178, 47,178,191,179, 76,179,230, -179,238,180, 5,180, 28,180,138,180,249,181,108,181,196,182, 22,182,119,182,190,183, 23,183,113,183,189,184, 65,184,193,184,201, -184,224,184,246,185, 15,185, 39,185, 47,185, 55,185, 78,185,100,185,202,186, 40,186, 66,186, 91,186,116,186,142,186,168,186,194, -187, 44,187,148,187,172,187,195,187,221,187,246,188, 15,188, 40,188, 48,188, 56,188, 81,188,105,188,131,188,157,188,181,188,203, -188,229,188,253,189, 22,189, 46,189, 71,189, 95,189,166,189,225,189,250,190, 19,190, 37,190, 55,190, 80,190,102,190,231,191,154, -191,228,191,236,192,102,192,242,193,139,194, 29,194,162,195, 40,195,187,196, 40,196,132,196,235,197, 79,197,203,198, 38,198,135, -199, 5,199,137,199,157,199,177,199,200,199,223,199,246,200, 13,200, 39,200, 64,200, 90,200,115,200,141,200,166,200,192,200,217, -200,253,201, 30,201, 55,201, 80,201,105,201,130,201,155,201,180,201,205,201,230,202, 8,202, 41,202, 64,202, 87,202,110,202,133, -202,157,202,179,202,205,202,230,203, 0,203, 25,203, 51,203, 76,203,102,203,127,203,163,203,196,203,219,203,242,204, 10,204, 34, -204, 57,204, 81,204,104,204,127,204,152,204,178,204,203,204,229,204,254,205, 24,205, 49,205, 75,205,109,205,145,205,168,205,191, -205,215,205,238,206, 6,206, 30,206, 54,206, 77,206,101,206,125,206,148,206,172,206,195,206,218,206,242,207, 7,207, 31,207, 52, -207, 74,207, 96,207,120,207,141,207,165,207,189,207,213,207,235,208, 2,208, 25,208, 48,208, 70,208, 90,208,157,208,246,209, 75, -209,186,210, 47,210,122,210,200,211, 41,211,146,211,191,211,231,212, 15, 0, 0, 0, 2, 0,193, 0, 0, 4, 10, 5,182, 0, 3, - 0, 7, 0, 43, 64, 11, 5, 2, 2, 9, 4,112, 3,128, 3, 2, 3,184,255,192, 64, 9, 6, 9, 72, 3, 4, 3, 7, 0, 3, 0, - 63, 50, 47, 51, 1, 47, 43, 93, 51, 17, 51, 47, 51, 49, 48, 19, 33, 17, 33, 55, 33, 17, 33,193, 3, 73,252,183,104, 2,121,253, -135, 5,182,250, 74,104, 4,230, 0, 2, 0,147,255,227, 1,145, 5,182, 0, 3, 0, 23, 0, 58,185, 0, 1,255,240, 64, 19, 10, - 20, 72, 16, 25,128, 25,144, 25,160, 25, 4, 3, 14,154, 4, 2, 2, 4,184,255,192, 64, 10, 7, 10, 72, 4, 1, 9,155, 19, 2, - 3, 0, 63, 47,245,206, 1, 47, 43, 51, 47, 16,225, 50, 93, 49, 48, 43, 1, 35, 3, 51, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, - 14, 2, 35, 34, 46, 2, 1, 80,121, 51,223,240, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 1,158, 4, 24, -250,185, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 0, 0, 2, 0,133, 3,166, 2,178, 5,182, 0, 3, 0, 7, - 0, 55, 64, 35, 4,152, 7, 7, 9,208, 9,224, 9, 2, 47, 9,111, 9,127, 9, 3, 0,152, 0, 3, 16, 3,224, 3,240, 3, 4, - 3, 6, 2, 2, 7, 3, 3, 0, 63, 51, 51, 47, 51, 1, 47, 93,225, 93, 93, 18, 57, 47,225, 49, 48, 1, 3, 35, 3, 33, 3, 35, - 3, 1, 74, 41,115, 41, 2, 45, 41,114, 41, 5,182,253,240, 2, 16,253,240, 2, 16, 0, 0, 2, 0, 51, 0, 0, 4,248, 5,182, - 0, 27, 0, 31, 0,153, 64, 88, 3, 3, 26, 26, 24, 22, 30, 29, 7, 4, 6, 23, 23, 6, 25, 0, 1, 4, 4, 5,177, 24, 24, 33, - 21, 31, 28, 8, 4, 9, 20, 20, 18, 15, 14, 11, 4, 19,177, 10, 80, 16, 1, 16, 16, 12, 12, 9, 80, 10, 1, 10, 28, 1, 72, 13, - 1, 13,174, 12, 8, 4, 12, 31, 0, 16,174, 17, 25, 21, 17, 63, 17, 79, 17,223, 17, 3, 12, 17, 12, 17, 5, 23, 19, 6, 10, 5, - 0, 47, 51, 63, 51, 18, 57, 57, 47, 47, 93, 17, 51, 51, 16,225, 50, 50, 17, 51, 51, 16,225, 93, 50, 50, 1, 47, 93, 51, 51, 47, - 51, 47, 93, 16,228, 23, 57, 50, 17, 18, 23, 57, 17, 51, 47,228, 23, 57, 50, 51, 17, 18, 23, 57, 17, 51, 47, 51, 47, 49, 48, 1, - 3, 33, 21, 33, 3, 35, 19, 33, 3, 35, 19, 33, 53, 33, 19, 33, 53, 33, 19, 51, 3, 33, 19, 51, 3, 33, 21, 1, 33, 19, 33, 3, -215, 63, 1, 24,254,205, 82,147, 84,254,221, 82,144, 78,254,254, 1, 29, 65,254,238, 1, 43, 82,147, 82, 1, 37, 84,144, 84, 1, - 6,252,235, 1, 35, 64,254,221, 3,125,254,184,137,254, 84, 1,172,254, 84, 1,172,137, 1, 72,137, 1,176,254, 80, 1,176,254, - 80,137,254,184, 1, 72, 0, 3, 0,123,255,137, 3,217, 6, 18, 0, 45, 0, 54, 0, 63, 0,180, 64, 51, 52, 47, 41, 1, 41, 47, - 33, 1, 33, 6,112, 47, 60, 1, 60, 47, 30, 1, 30, 19, 32, 7, 1, 7, 7, 13, 46,110, 36, 15, 0, 31, 0, 2,255, 0, 1, 0, - 0, 1, 7, 0, 65, 13, 13, 55,110,224, 25, 1, 25,184,255,192, 64, 48, 8, 11, 72, 25, 51, 20, 20, 41, 60, 60, 19, 46, 55, 8, - 61, 40,115, 33, 37, 33, 31, 64, 14, 17, 72, 31, 31, 30, 80, 33, 1, 15, 33, 31, 33, 2, 8, 33, 52, 19,115, 8, 14, 8, 6, 6, - 5, 8,184,255,192,179, 10, 13, 72, 8, 0, 47, 43, 51, 51, 47, 17, 51, 16,225, 50, 47, 94, 93, 93, 51, 51, 47, 43, 17, 51, 16, -225, 50, 18, 57, 57, 18, 57, 17, 51, 51, 17, 51, 1, 47, 43, 93,225, 51, 47, 16,214, 94, 93, 93,113, 50,225, 17, 57, 47, 93, 51, - 51, 93, 51, 93,225, 50, 93, 50, 93, 50, 49, 48, 1, 20, 14, 2, 7, 21, 35, 53, 34, 46, 2, 39, 53, 30, 3, 51, 17, 46, 3, 53, - 52, 62, 2, 55, 53, 51, 21, 22, 22, 23, 7, 38, 38, 39, 17, 30, 3, 7, 52, 46, 2, 39, 17, 54, 54, 1, 20, 30, 2, 23, 17, 6, - 6, 3,217, 50, 93,133, 84,138, 50,102, 96, 84, 32, 33, 87, 96,101, 47, 89,131, 86, 42, 49, 91,129, 79,138,100,169, 67, 66, 56, -140, 74, 88,135, 91, 46,176, 20, 43, 70, 51, 93, 91,254, 18, 17, 40, 66, 49, 89, 83, 1,190, 70,114, 84, 55, 12,230,221, 9, 18, - 26, 17,172, 16, 33, 26, 17, 1,178, 30, 66, 85,110, 74, 67,111, 83, 53, 9,180,176, 5, 42, 31,145, 25, 41, 6,254, 90, 31, 66, - 83,107, 72, 33, 55, 45, 38, 18,254,139, 14, 98, 2,163, 36, 57, 47, 38, 17, 1,113, 16, 89, 0, 0, 5, 0,102,255,236, 6, 51, - 5,203, 0, 9, 0, 29, 0, 39, 0, 59, 0, 63, 0, 93,178, 60, 16, 62,184,255,240, 64, 51, 60, 62, 60, 62, 40, 20, 30,180, 50, -181, 35,180, 40, 65, 15, 65, 1, 5,180, 10,181, 0,180, 16, 20, 32, 20, 48, 20, 3, 20, 63, 6, 62, 24, 37,182, 55,183, 33,182, - 45, 25, 3,182, 15,183, 7,182, 25, 7, 0, 63,225,244,225, 63,225,244,225, 63, 63, 1, 47, 93,225,244,225, 93, 16,222,225,244, -225, 17, 18, 57, 57, 47, 47, 56, 56, 49, 48, 19, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, - 2, 51, 50, 30, 2, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, - 1, 35, 1,250, 71, 80,156,156, 80, 71, 1,199, 36, 74,115, 79, 73,112, 76, 38, 35, 73,113, 78, 75,113, 77, 39, 1,172, 71, 80, -156,156, 80, 71, 1,198, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 75,113, 76, 39,255, 0,252,213,158, 3, 44, 4, 2,165, -165, 1, 74, 1, 72,163,165,108,172,118, 63, 63,118,172,108,108,170,117, 62, 62,117,170,253, 74,165,164, 1, 73, 1, 72,163,165, -108,171,118, 63, 63,118,171,108,108,170,117, 62, 62,117,170, 3,146,250, 74, 5,182, 0, 0, 3, 0,109,255,236, 5,125, 5,205, - 0, 17, 0, 33, 0, 83, 0,128, 64, 77, 39, 24, 23, 74, 4, 73, 44, 73, 72, 10, 71, 54, 65, 71, 66, 32, 66, 1, 54, 66, 54, 66, - 29, 5, 59, 60, 71, 4, 72, 0, 71, 0, 44, 16, 44, 2, 8, 44, 44, 34, 32, 72, 1, 72, 85, 29, 72, 16, 34, 32, 34, 2, 34, 65, - 65, 49, 18, 81, 79, 22, 39, 24, 23, 74, 4, 15, 71, 60, 59, 5, 4, 49, 73, 21, 15, 80, 49, 0, 47,225, 63, 18, 23, 57, 18, 23, - 57, 63,225, 17, 57, 47, 1, 47, 93,225, 16,198, 93, 17, 57, 47, 94, 93,225, 17, 23, 57, 18, 57, 57, 47, 47, 93, 16,225, 16,225, - 17, 51, 17, 18, 23, 57, 49, 48, 1, 20, 30, 2, 23, 62, 3, 53, 52, 46, 2, 35, 34, 6, 19, 50, 62, 2, 55, 1, 14, 3, 21, 20, - 30, 2, 37, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 1, 62, 3, 55, 51, 14, 3, 7, 1, 35, - 39, 14, 3, 35, 34, 46, 2, 1,166, 16, 33, 52, 36, 59, 86, 56, 28, 25, 47, 66, 42, 86,100,135, 58, 98, 84, 72, 32,254,125, 52, - 80, 55, 28, 35, 66, 96,254,125, 40, 77,111, 71, 31, 60, 45, 28, 50, 94,138, 88, 83,131, 91, 48, 50, 84,109, 60, 1, 96, 27, 43, - 34, 27, 10,184, 15, 41, 53, 65, 39, 1, 21,225,168, 49, 96,108,124, 78,105,167,115, 61, 4,141, 34, 65, 65, 67, 37, 35, 62, 64, - 70, 41, 36, 61, 44, 25, 89,251,175, 23, 40, 54, 31, 1,151, 33, 63, 72, 85, 56, 54, 91, 65, 36,240, 78,122,100, 86, 42, 36, 77, - 87, 99, 57, 75,119, 83, 43, 43, 83,119, 75, 64,109, 93, 79, 36,254,140, 29, 60, 68, 78, 47, 66,111, 98, 85, 41,254,219,172, 45, - 71, 49, 27, 53,103,149, 0, 1, 0,133, 3,166, 1, 74, 5,182, 0, 3, 0, 42, 64, 28,192, 5,208, 5,224, 5, 3, 47, 5,111, - 5, 2, 0,152, 0, 3, 16, 3,224, 3,240, 3, 4, 3, 2, 2, 3, 3, 0, 63, 51, 47, 1, 47, 93,225, 93, 93, 49, 48, 1, 3, - 35, 3, 1, 74, 41,115, 41, 5,182,253,240, 2, 16, 0, 0, 1, 0, 82,254,188, 2, 43, 5,182, 0, 19, 0, 26, 64, 13, 6, 14, -242, 9,240, 63, 0, 1, 0, 14,249, 5,248, 0, 63, 63, 1, 47, 93,225,228, 50, 49, 48, 19, 52, 62, 2, 55, 51, 6, 2, 21, 20, - 30, 2, 23, 35, 46, 3, 82, 36, 74,113, 78,172,140,145, 37, 71,106, 69,170, 78,113, 74, 36, 2, 49,125,243,229,211, 93,193,254, - 50,244,119,236,226,212, 94, 90,206,225,240, 0, 0, 1, 0, 61,254,188, 2, 23, 5,182, 0, 19, 0, 28, 64, 14, 6, 14,242, 11, -240,176, 0, 1, 0, 21, 14,248, 5,249, 0, 63, 63, 1, 16,222, 93,225,228, 50, 49, 48, 1, 20, 14, 2, 7, 35, 62, 3, 53, 52, - 2, 39, 51, 30, 3, 2, 23, 36, 75,113, 78,170, 69,106, 72, 36,144,141,172, 78,113, 75, 36, 2, 49,124,240,225,206, 90, 94,212, -226,236,119,244, 1,206,193, 93,211,229,243, 0, 0, 1, 0, 82, 2,119, 4, 20, 6, 20, 0, 14, 0, 36, 64, 21, 31, 16, 1, 0, -152, 0, 14,128, 14,144, 14, 3, 8, 14, 31, 6, 1, 6, 6, 0, 0, 0, 63, 50, 47, 93, 1, 47, 94, 93,229, 93, 49, 48, 1, 3, - 37, 23, 5, 19, 7, 3, 3, 39, 19, 37, 55, 5, 3, 2,152, 43, 1,141, 26,254,134,245,178,176,158,184,242,254,137, 29, 1,135, - 43, 6, 20,254,119,111,193, 28,254,186, 96, 1,102,254,154, 96, 1, 70, 28,193,111, 1,137, 0, 0, 1, 0,102, 1, 6, 4, 2, - 4,162, 0, 11, 0, 41, 64, 24, 16, 13, 1, 6, 9,170, 3,239, 0, 1, 32, 0, 96, 0,160, 0, 3, 0, 9, 0,173, 6, 3,179, - 0, 63, 51,225, 50, 1, 47, 93, 93, 50,225, 50, 93, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 1,233,254,125, 1, -131,150, 1,131,254,125,150, 2,135,150, 1,133,254,123,150,254,127, 0, 0, 1, 0, 63,254,248, 1,121, 0,238, 0, 12, 0, 56, - 64, 20,207, 14, 1, 16, 14,144, 14,160, 14, 3, 27, 12, 43, 12, 2, 12, 1,151, 6, 7,184,255,192, 64, 13, 16, 20, 72, 95, 7, - 1, 16, 7, 1, 7, 6,156, 12, 0, 47,237, 1, 47, 93, 93, 43, 51,237, 50, 93, 93, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, 3, - 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 0, 1, 0, 82, - 1,209, 2, 66, 2,121, 0, 3, 0, 21, 64, 9, 2, 5, 64, 0, 1, 0, 0,185, 1, 0, 47,225, 1, 47, 93, 16,206, 49, 48, 19, - 53, 33, 21, 82, 1,240, 1,209,168,168, 0, 1, 0,147,255,227, 1,145, 0,250, 0, 19, 0, 53, 64, 27,128, 21,144, 21,160, 21, - 3, 17, 21, 1, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, 15, - 0, 47,237, 1, 47, 43, 93, 93,237, 93, 93, 49, 48, 55, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, - 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20,111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 0, 1, - 0, 20, 0, 0, 2,231, 5,182, 0, 3, 0, 30,177, 1, 2,184,255,240, 64, 9, 2, 3, 0, 16, 0, 5, 1, 0, 3, 0, 63, 47, - 17, 1, 51, 56, 50, 47, 56, 51, 49, 48, 1, 1, 35, 1, 2,231,253,224,179, 2, 33, 5,182,250, 74, 5,182, 0, 0, 2, 0, 98, -255,236, 4, 8, 5,205, 0, 19, 0, 39, 0, 38, 64, 21, 30,111, 0, 41, 16, 41, 1, 20,111, 32, 10, 1, 10, 35,115, 15, 7, 25, -115, 5, 25, 0, 63,225, 63,225, 1, 47, 93,225, 93, 16,222,225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, - 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 4, 8, 51,113,178,127,118,175,115, 57, - 51,111,177,126,119,176,116, 58,253, 19, 30, 66,107, 77, 77,108, 69, 31, 31, 69,108, 77, 77,107, 66, 30, 2,221,177,254,232,194, -102,102,194, 1, 24,177,177, 1, 24,193,102,101,193,254,232,178,150,224,149, 75, 74,148,225,151,150,224,148, 74, 74,148,224, 0, - 0, 1, 0,178, 0, 0, 2,199, 5,182, 0, 16, 0, 53, 64, 33, 64, 18, 1, 15, 1, 14, 14, 0,110,191, 1,255, 1, 2,126, 1, - 1, 0, 1, 16, 1, 32, 1, 64, 1, 4, 6, 1, 13, 15, 6, 0, 24, 0, 63, 63,205, 1, 47, 94, 93, 93, 93,225, 51, 47, 17, 51, - 93, 49, 48, 33, 35, 17, 52, 62, 2, 55, 14, 3, 7, 7, 39, 1, 51, 2,199,176, 1, 3, 3, 1, 17, 26, 27, 30, 21,148, 96, 1, -127,150, 3,145, 43, 98, 97, 89, 34, 18, 26, 24, 27, 18,121,123, 1, 43, 0, 1, 0, 96, 0, 0, 3,240, 5,203, 0, 35, 0, 60, - 64, 32, 35, 8,111, 27, 27, 37, 16, 37, 1, 34,111, 1, 33, 1, 17, 17, 32, 1, 1, 1, 8, 34, 16, 13,115, 22, 7, 2, 34,116, - 1, 24, 0, 63,225, 50, 63,225, 51, 18, 57, 1, 47, 93, 51, 47, 17, 51, 16,237, 93, 17, 51, 47,225, 51, 49, 48, 33, 33, 53, 1, - 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 1, 21, 33, 3,240,252,112, 1, 94, 75, -118, 83, 44, 34, 63, 86, 53, 95,153, 69,102, 40, 92,106,118, 65, 96,155,108, 59, 53, 93,129, 75,254,231, 2,177,156, 1,125, 81, -134,128,129, 76, 59, 90, 63, 32, 77, 60,119, 36, 63, 46, 27, 54,101,145, 91, 85,154,149,150, 81,254,213, 8, 0, 0, 1, 0, 82, -255,236, 3,238, 5,203, 0, 57, 0, 93, 64, 11, 33, 48, 33, 48, 18, 26,111, 9, 39,111, 0,184,255,192, 64, 40, 20, 23, 72, 0, - 0, 9, 59, 32, 59, 1, 79, 18, 1, 18, 6, 32,115,171, 33, 1,121, 33, 1, 11, 33, 1, 8, 33, 33, 21, 47, 44,115, 53, 7, 21, -115, 18, 14, 25, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93,225, 57, 1, 47, 93, 93, 16,206, 50, 47, 43,225, 16,225, - 17, 57, 57, 47, 47, 49, 48, 1, 20, 14, 2, 7, 21, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 52, - 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 3,193, 46, 83,116, 71,177,184, - 65,132,202,138,109,193, 85, 87,203, 93, 92,134, 87, 41, 53, 98,141, 89,133,133, 81,126, 85, 44, 36, 66, 92, 56,107,163, 74, 92, - 38, 93,110,125, 70,108,163,110, 56, 4, 96, 73,120, 88, 57, 12, 6, 22,181,145, 96,160,116, 64, 34, 45,170, 46, 50, 40, 74,108, - 67, 68, 97, 63, 30,151, 40, 74,102, 61, 52, 82, 57, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 0, 2, 0, 23, 0, 0, 4, 63, - 5,190, 0, 10, 0, 24, 0, 78, 64, 44, 9, 86, 0, 1, 0, 0, 2,110, 17, 12, 11, 7, 32, 3, 1, 3, 3, 26, 16, 26, 1,119, - 24,135, 24, 2, 24, 95, 5, 1, 5, 9, 6, 24,116, 1, 5, 5, 2, 17, 7, 6, 2, 24, 0, 63, 63, 51, 18, 57, 47, 51,225, 50, - 50, 1, 47, 93, 51, 93, 93, 18, 57, 47, 93, 51, 51, 51, 51,225, 50, 47, 93, 50, 49, 48, 1, 35, 17, 35, 17, 33, 53, 1, 51, 17, - 51, 33, 17, 52, 62, 2, 55, 35, 14, 3, 7, 1, 4, 63,213,176,253, 93, 2,151,188,213,254,123, 3, 4, 5, 1, 9, 7, 21, 25, - 26, 11,254,101, 1, 72,254,184, 1, 72,159, 3,215,252, 48, 1,100, 56,123,117,102, 34, 20, 49, 49, 46, 16,253,160, 0, 0, 1, - 0,131,255,236, 3,246, 5,182, 0, 42, 0, 78, 64, 24, 38, 26,111, 5, 44, 16, 44, 1, 39, 36, 36, 40,104, 35, 1, 89, 35, 1, - 35, 35,240, 15, 1, 15,184,255,192, 64, 18, 8, 11, 72, 15, 29,115, 0, 0, 21, 39,116, 36, 6, 21,115, 16, 10, 25, 0, 63, 51, -225, 63,225, 18, 57, 47,225, 1, 47, 43, 93, 51, 47, 93, 93, 51, 51, 17, 51, 93, 16,222,225, 51, 49, 48, 1, 50, 30, 2, 21, 20, - 14, 2, 35, 34, 46, 2, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 38, 35, 34, 14, 2, 7, 39, 19, 33, 21, 33, 3, 54, 54, 2, 33, - 99,171,127, 72, 68,134,197,128, 51, 99, 91, 82, 33, 33, 89, 98, 99, 42, 79,124, 86, 46,176,168, 27, 63, 63, 57, 21, 90, 55, 2, -178,253,236, 39, 32,105, 3,129, 55,108,160,105,114,182,126, 67, 10, 19, 30, 20,172, 23, 36, 24, 13, 37, 78,118, 81,143,151, 5, - 8, 9, 4, 57, 2,176,166,254, 93, 6, 14, 0, 0, 2, 0,113,255,236, 4, 10, 5,203, 0, 43, 0, 63, 0, 55, 64, 32, 49,110, - 12, 34, 65, 16, 65, 1, 23, 59,111, 0, 0, 16, 0, 32, 0, 3, 0, 54,117, 29, 29, 7, 44,115, 39, 25, 16,115, 7, 7, 0, 63, -225, 63,225, 17, 57, 47,225, 1, 47, 93,225, 50, 93, 16,222, 50,225, 49, 48, 19, 52, 62, 4, 51, 50, 30, 2, 23, 21, 38, 38, 35, - 34, 14, 4, 7, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 1, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 21, - 20, 30, 2,113, 21, 53, 92,142,198,133, 19, 46, 47, 43, 17, 35, 88, 43, 90,137,100, 67, 42, 20, 3, 12, 20, 57, 76, 95, 59, 95, -154,108, 59, 62,116,164,102,100,175,128, 74, 1,219, 60, 99, 72, 39, 33, 66, 99, 66, 67,111, 78, 43, 37, 73,110, 2,113,105,208, -191,164,121, 69, 2, 5, 7, 5,155, 12, 12, 43, 78,108,131,148, 80, 36, 63, 45, 26, 59,114,165,106,114,182,127, 68, 78,160,242, -254,185, 41, 83,127, 87, 70,111, 78, 42, 47, 75, 96, 48, 67,133,106, 67, 0, 1, 0, 90, 0, 0, 4, 6, 5,182, 0, 6, 0, 43, -177, 6, 0,184,255,240, 64, 17, 0, 0, 2, 1, 5, 8, 16, 8, 1, 2, 5, 2,116, 3, 6, 0, 24, 0, 63, 63,225, 50, 1, 47, - 93, 16,206, 50, 17, 57, 47, 56, 51, 49, 48, 33, 1, 33, 53, 33, 21, 1, 1, 25, 2, 51,253, 14, 3,172,253,213, 5, 16,166,145, -250,219, 0, 3, 0,106,255,236, 4, 0, 5,205, 0, 39, 0, 58, 0, 74, 0,128, 64, 83, 30, 35, 50,110, 15, 10, 40, 72,110,195, - 5,211, 5, 2,181, 5, 1, 5, 5, 15, 76, 16, 76, 1, 40,110, 25, 62,110,213, 35, 1,204, 35, 1,186, 35, 1, 35, 35, 16, 25, - 32, 25, 2, 25, 10, 30,104, 56,152, 56, 2, 89, 56, 1, 40, 56, 56, 56, 72, 56, 3, 56,147, 67, 1, 38, 67, 86, 67, 2, 67, 67, - 0, 45,115, 20, 25, 59,115, 0, 7, 0, 63,225, 63,225, 17, 57, 47, 93, 93,193, 93, 93, 93, 57, 57, 1, 47, 93, 51, 47, 93, 93, - 93,225, 16,225, 93, 16,206, 50, 47, 93, 93,225, 18, 57, 16,225, 17, 57, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 7, 30, 3, 21, - 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 3, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 39, 39, - 6, 6, 1, 34, 6, 21, 20, 30, 2, 23, 62, 3, 53, 52, 38, 2, 53, 84,149,113, 66, 40, 70, 96, 56, 58,111, 87, 53, 67,121,169, -102,110,171,117, 61, 45, 76,104, 58, 49, 86, 63, 37, 67,114,149,199, 32, 68,104, 72, 70,107, 72, 36, 39, 73,102, 63, 30,126,128, - 1, 22,106,125, 35, 62, 87, 51, 48, 85, 63, 36,126, 5,205, 44, 88,132, 88, 67,108, 87, 69, 28, 31, 76, 95,118, 73, 92,149,104, - 56, 54,101,146, 92, 75,120, 96, 74, 28, 31, 73, 90,109, 66, 87,131, 88, 44,251,166, 53, 89, 63, 35, 35, 65, 92, 56, 52, 84, 72, - 64, 31, 14, 60,155, 3, 84,106,101, 57, 82, 64, 51, 24, 22, 52, 66, 84, 54,101,106, 0, 0, 2, 0,106,255,236, 4, 4, 5,203, - 0, 41, 0, 61, 0, 53, 64, 30, 57, 21,111, 0, 63, 16, 63, 1, 47,110, 12, 16, 32, 32, 32, 2, 32, 52,117, 27, 27, 7, 42,115, - 37, 7, 16,117, 7, 26, 0, 63,225, 63,225, 17, 57, 47,225, 1, 47, 93, 51,225, 93, 16,222,225, 50, 49, 48, 1, 20, 14, 4, 35, - 34, 46, 2, 39, 53, 22, 22, 51, 50, 62, 2, 55, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, 34, 14, 2, 21, - 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 4, 4, 21, 53, 92,142,198,133, 19, 46, 46, 44, 17, 35, 88, 43,135,174,102, 43, 5, - 13, 20, 56, 76, 96, 59, 95,154,108, 59, 63,115,165,102,101,174,128, 74,254, 37, 60, 99, 72, 39, 33, 66, 99, 66, 68,110, 78, 43, - 37, 73,110, 3, 70,105,209,190,165,120, 69, 2, 5, 6, 5,156, 13, 12, 94,161,214,119, 36, 62, 46, 26, 59,114,165,106,114,183, -127, 68, 78,160,243, 1, 71, 40, 84,127, 87, 70,111, 78, 42, 47, 75, 96, 48, 67,133,107, 66, 0, 0, 2, 0,147,255,227, 1,145, - 4,102, 0, 19, 0, 39, 0, 62, 64, 28, 16, 41,128, 41,144, 41,160, 41, 4, 30, 10,150, 20,192, 0,208, 0, 2, 52, 0, 68, 0, -100, 0,116, 0, 4, 0,184,255,192, 64, 11, 7, 10, 72, 0, 35,155, 25, 16, 5,155, 15, 0, 47,237, 63,237, 1, 47, 43, 93, 93, - 51,229, 50, 93, 49, 48, 55, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, - 14, 2, 35, 34, 46, 2,147, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 20, 34, 46, 27, 26, 47, 34, 20, 20, - 34, 47, 26, 27, 46, 34, 20,111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 3,145, 39, 53, 33, 14, 14, 33, 53, - 39, 37, 52, 34, 16, 16, 34, 52, 0, 2, 0, 63,254,248, 1,145, 4,102, 0, 12, 0, 32, 0, 97, 64, 47, 16, 34,128, 34,144, 34, -160, 34, 4, 23,150,192, 13,208, 13, 2,100, 13,116, 13, 2, 80, 13, 1, 68, 13, 1, 59, 13, 1, 31, 13, 47, 13, 2, 13, 13, 27, - 12, 43, 12, 2, 12, 1,151, 6, 7,184,255,192, 64, 17, 16, 20, 72, 95, 7, 1, 16, 7, 1, 7, 28,155, 18, 16, 6,156, 12, 0, - 47,237, 63,237, 1, 47, 93, 93, 43, 51,237, 50, 93, 51, 47, 93, 93, 93, 93, 93, 93,229, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, - 3, 55, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8, - 17, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 2,237, 39, - 53, 33, 14, 14, 33, 53, 39, 37, 52, 34, 16, 16, 34, 52, 0, 1, 0,102, 0,238, 4, 2, 4,221, 0, 6, 0, 78, 64, 48, 0, 8, - 64, 8, 1, 64, 1, 1, 1, 2, 1, 5, 5, 3, 6,111, 0,127, 0, 2, 48, 0, 1, 0, 0, 4, 32, 3, 1, 80, 3,112, 3,128, - 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 50, 18, 57, 61, 47, 51, - 51, 1, 24, 47, 93, 93, 16,206, 49, 48, 37, 1, 53, 1, 21, 1, 1, 4, 2,252,100, 3,156,253, 33, 2,223,238, 1,168,102, 1, -225,160,254,148,254,190, 0, 2, 0,102, 1,186, 4, 2, 3,233, 0, 3, 0, 7, 0, 92, 64, 61, 7, 2, 9, 64, 9, 1, 4,198, - 0, 1,187, 0, 1,169, 0, 1,134, 0, 1,123, 0, 1,104, 0, 1, 66, 0, 1, 57, 0, 1, 0, 4,173, 31, 5, 47, 5, 2,127, - 5, 1, 0, 5, 16, 5, 2, 6, 5, 5, 0,173,240, 1, 1, 15, 1,111, 1, 2, 1, 0, 47, 93, 93,225, 51, 47, 94, 93, 93,113, -225, 1, 47, 93, 93, 93, 93, 93, 93, 93, 93, 51, 93, 16,206, 50, 49, 48, 19, 53, 33, 21, 1, 53, 33, 21,102, 3,156,252,100, 3, -156, 3, 84,149,149,254,102,150,150, 0, 0, 1, 0,102, 0,238, 4, 2, 4,221, 0, 6, 0, 78, 64, 48, 5, 8, 64, 8, 1, 64, - 6, 1, 6, 5, 4, 1, 1, 3, 0,111, 6,127, 6, 2, 48, 6, 1, 6, 6, 2, 32, 3, 1, 80, 3,112, 3,128, 3,208, 3,240, - 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 51, 18, 57, 61, 47, 51, 51, 1, 24, 47, - 93, 93, 16,206, 49, 48, 19, 1, 1, 53, 1, 21, 1,102, 2,224,253, 32, 3,156,252,100, 1,143, 1, 66, 1,108,160,254, 31,102, -254, 88, 0, 2, 0, 37,255,227, 3, 37, 5,203, 0, 39, 0, 59, 0, 62, 64, 33, 50,154, 40, 40, 39, 70, 0, 0, 20, 11, 70, 28, - 61, 47, 61, 1, 20, 11, 23, 15, 0, 1, 6, 0, 0, 45,155, 55, 19, 16, 81, 23, 4, 0, 63,225, 51, 47,229, 50, 47, 94, 93, 18, - 57, 1, 47, 93, 16,222,225, 17, 57, 47,225, 51, 47,225, 49, 48, 1, 53, 52, 62, 2, 55, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, - 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 14, 3, 21, 21, 3, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, - 1, 25, 15, 39, 66, 50, 48, 68, 43, 21, 30, 57, 85, 56, 83,150, 70, 63, 81,188, 97, 93,149,104, 56, 27, 54, 80, 54, 52, 66, 38, - 14,187, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 1,158, 37, 57, 92, 80, 77, 42, 41, 67, 69, 79, 53, 48, - 79, 57, 31, 52, 34,145, 42, 59, 51, 96,139, 87, 67,105, 90, 84, 47, 45, 67, 63, 66, 44, 18,254,209, 38, 53, 33, 15, 15, 33, 53, - 38, 37, 53, 34, 16, 16, 34, 53, 0, 2, 0,109,255, 74, 6,129, 5,182, 0, 87, 0,104, 0,111, 64, 63, 88, 23, 96, 39, 31, 23, - 1,127, 39, 1, 23, 39, 70, 70, 39, 23, 3, 78, 49, 32, 0, 1, 0,106, 64,106, 1, 59, 64, 78, 1, 78, 44, 12, 91, 18, 7, 18, -100, 28, 15, 18, 31, 18,191, 18, 3, 6, 0, 28, 1, 7, 18, 28, 18, 28, 64, 54, 83, 3, 64, 69, 73, 0, 47, 51,193, 63,193, 18, - 57, 57, 47, 47, 94, 93, 94, 93, 16,193, 17, 51, 16,193, 50, 50, 1, 47, 93,193, 93, 16,222,113,193, 17, 23, 57, 47, 47, 47, 93, - 93, 16,193, 16,193, 49, 48, 1, 20, 14, 4, 35, 34, 46, 2, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, - 3, 6, 6, 20, 20, 21, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 4, 6, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 21, - 6, 6, 35, 34, 36, 38, 2, 53, 52, 18, 54, 36, 51, 50, 4, 22, 18, 1, 20, 22, 51, 50, 62, 2, 55, 55, 38, 38, 35, 34, 14, 2, - 6,129, 19, 37, 57, 76, 97, 58, 45, 73, 52, 33, 6, 4, 18, 54, 71, 89, 53, 77,119, 82, 43, 59,111,158, 98, 45, 90, 82, 69, 23, - 23, 1, 1, 21, 34, 43, 23, 46, 70, 47, 24, 86,152,209,123,169,254,254,175, 90, 79,153,227,147, 61,119,111,100, 43, 86,216,130, -179,254,231,195,102,118,219, 1, 55,193,156, 1, 6,191,106,252, 21,101, 85, 55, 78, 50, 26, 4, 14, 28, 77, 42, 74,101, 63, 28, - 2,219, 62,125,113, 97, 72, 41, 30, 50, 65, 35, 37, 66, 49, 28, 56,101,142, 86,101,168,122, 68, 8, 14, 17, 8,254, 96, 22, 27, - 16, 8, 3, 53, 68, 40, 15, 61,104,140, 78,142,221,152, 79,111,199,254,239,162,151,234,160, 82, 14, 24, 31, 17,141, 38, 44,102, -195, 1, 25,179,188, 1, 69,238,136,101,189,254,241,254,213,133,119, 45, 83,115, 69,253, 8, 13, 58, 94,120, 0, 0, 2, 0, 0, - 0, 0, 4,221, 5,188, 0, 7, 0, 20, 0,132, 64, 36, 6, 5, 70, 2, 1, 70, 20, 1, 2, 20, 3, 73, 8, 1, 73, 1, 1, 8, - 1, 0, 14, 14, 3, 0, 0, 16, 7, 1,128, 7,144, 7,208, 7, 3, 7,184,255,192, 64, 24, 6, 10, 72, 7, 16, 7, 7, 22, 15, - 22, 31, 22, 47, 22,143, 22,159, 22,223, 22, 6, 7, 3, 4,184,255,240, 64, 17, 4, 2, 95, 14, 32, 10, 14, 72, 14, 5, 20, 20, - 5, 3, 4, 0, 18, 0, 63, 50, 63, 57, 47, 18, 57, 43,225, 1, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, 17, 18, 57, - 61, 47, 18, 57, 57, 93, 93, 18, 57, 57, 93, 93, 51, 51, 49, 48, 33, 3, 33, 3, 35, 1, 51, 1, 1, 3, 46, 3, 39, 14, 3, 7, - 3, 4, 31,160,253,223,162,188, 2, 25,170, 2, 26,254,103,148, 6, 17, 18, 18, 8, 7, 18, 18, 17, 6,145, 1,197,254, 59, 5, -188,250, 68, 2,106, 1,168, 18, 52, 60, 65, 31, 31, 66, 61, 51, 17,254, 88, 0, 0, 3, 0,199, 0, 0, 4,135, 5,182, 0, 23, - 0, 34, 0, 47, 0, 98, 64, 62, 11, 30, 90, 5, 6, 1,229, 6,245, 6, 2,214, 6, 1, 6, 6, 36, 42, 91,112, 17,128, 17, 2, - 17,103, 49,127, 49,143, 49, 2, 16, 49, 1, 24, 36, 90, 23,100, 48, 11, 35, 96,121, 24, 1, 11, 24, 1, 8, 24, 24, 0, 36, 96, - 23, 18, 34, 96, 0, 3, 0, 63,225, 63,225, 17, 57, 47, 94, 93, 93,225, 57, 1, 16,246,225, 50, 93, 93, 16,246, 93,225, 18, 57, - 47, 93, 93,113,225, 50, 49, 48, 19, 33, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 35, 33, 19, 51, 50, 62, 2, - 53, 52, 38, 35, 35, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35,199, 1,143,128,195,131, 66, 39, 74,109, 69, 69,121, 90, 52, 65, -123,176,111,254, 27,186,244, 84,114, 70, 31,154,166,223, 1, 10, 88,119, 73, 32, 33, 75,124, 92, 5,182, 39, 87,141,103, 62,108, - 82, 55, 9, 10, 12, 45, 79,120, 86,100,157,109, 58, 3, 74, 30, 59, 89, 59,120,104,253,151,253,240, 40, 72,101, 61, 56, 94, 67, - 37, 0, 0, 1, 0,125,255,236, 4,152, 5,203, 0, 35, 0, 76, 64, 20,175, 14, 1, 14, 64, 21, 24, 72, 14, 14, 24,186, 32, 1, - 96, 32,112, 32, 2, 32,184,255,192, 64, 24, 6, 10, 72, 32, 32, 37,175, 37, 1, 5, 91, 24,102, 36, 33, 0, 95, 29, 4, 13, 10, - 95, 19, 19, 0, 63,225, 51, 63,225, 51, 1, 16,246,225, 93, 17, 51, 47, 43, 93, 93, 18, 57, 47, 43, 93, 49, 48, 1, 34, 14, 2, - 21, 20, 30, 2, 51, 50, 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 3, 25,107,174, -123, 67, 59,118,176,118, 89,160, 78, 39, 78, 85, 97, 59,164,240,157, 76, 87,169,250,162,108,196, 79, 78, 63,148, 5, 39, 81,152, -218,137,141,219,150, 78, 35, 23,162, 15, 23, 14, 7,108,198, 1, 22,169,166, 1, 20,198,110, 44, 42,156, 32, 46, 0, 2, 0,199, - 0, 0, 4,252, 5,182, 0, 12, 0, 23, 0, 38, 64, 21, 13, 91, 0,103, 25, 16, 25, 1, 20, 90, 6,100, 24, 19, 96, 7, 3, 20, - 96, 6, 18, 0, 63,225, 63,225, 1, 16,246,225, 93, 16,246,225, 49, 48, 1, 20, 2, 6, 4, 35, 33, 17, 33, 50, 22, 22, 18, 7, - 52, 46, 2, 35, 35, 17, 51, 32, 0, 4,252, 96,182,254,247,168,254,146, 1,151,153,248,174, 95,197, 66,126,184,117,201,162, 1, - 8, 1, 12, 2,233,185,254,233,187, 94, 5,182, 92,181,254,244,182,146,213,138, 67,251,137, 1, 36, 0, 0, 1, 0,199, 0, 0, - 3,190, 5,182, 0, 11, 0, 66, 64, 38, 20, 8, 1, 8, 8, 1, 4, 0,103, 13, 6, 10, 90, 1,100, 12, 9, 95, 79, 6, 1, 15, - 6,175, 6, 2, 8, 6, 6, 10, 5, 95, 2, 3, 10, 95, 1, 18, 0, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, - 50, 16,230, 50, 17, 57, 47, 93, 49, 48, 33, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 3,190,253, 9, 2,247,253,195, 2, 23, -253,233, 2, 61, 5,182,164,254, 60,162,253,248, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 9, 0,112, 64, 17, 8, 8, 1, 15, - 3, 1,255, 3, 1,128, 3,144, 3,208, 3, 3, 3,184,255,192, 64, 56, 7, 10, 72, 3, 3, 11, 15, 11, 47, 11,143, 11,175, 11, - 4, 7, 6, 0, 90, 1,100, 10, 9, 95, 15, 6, 1, 15, 6, 63, 6,111, 6,255, 6, 4, 8, 6, 64, 26, 29, 72, 6, 64, 16, 21, - 72, 6, 6, 0, 5, 95, 2, 3, 0, 18, 0, 63, 63,225, 18, 57, 47, 43, 43, 94, 93,113,225, 1, 16,246,225, 50, 94, 93, 17, 51, - 47, 43, 93, 93,113, 18, 57, 47, 49, 48, 33, 35, 17, 33, 21, 33, 17, 33, 21, 33, 1,129,186, 2,247,253,195, 2, 23,253,233, 5, -182,164,253,252,164, 0, 0, 1, 0,125,255,236, 4,242, 5,203, 0, 43, 0, 55, 64, 30, 43, 43, 12, 41, 90, 20, 2,103, 45, 16, - 45, 1, 31, 91, 12,102, 44, 43, 95, 0, 0, 36, 26, 95, 17, 4, 36, 95, 7, 19, 0, 63,225, 63,225, 18, 57, 47,225, 1, 16,246, -225, 93, 16,246, 50,225, 17, 57, 47, 49, 48, 1, 33, 17, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 36, 51, 50, 22, 23, 7, 46, - 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 33, 3, 14, 1,228, 55,112,118,130, 75,157,242,166, 86, 95,182, 1, - 11,171,111,204, 88, 72, 36, 83, 88, 93, 46,122,188,127, 66, 55,120,190,134, 44, 73, 62, 55, 26,254,213, 3, 4,253, 51, 18, 28, - 19, 10,105,195, 1, 23,174,172, 1, 22,195,105, 44, 42,162, 17, 30, 23, 14, 81,152,218,137,130,216,156, 86, 5, 8, 11, 5, 1, -180, 0, 0, 1, 0,199, 0, 0, 4,213, 5,182, 0, 11, 0, 61, 64, 35, 9, 1, 90, 0,101, 13,192, 13, 1,191, 13, 1, 32, 13, - 1, 8, 4, 90, 5,100, 12, 3, 95, 15, 8, 1, 8, 8, 8, 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 94, 93,225, 1, - 16,246,225, 50, 93, 93, 93, 16,246,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,213,186,253,102,186,186, - 2,154,186, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0, 82, 0, 0, 2,100, 5,182, 0, 11, 0, 87, 64, 38, 11, 13, - 43, 13, 2,123, 13,155, 13,171, 13,251, 13, 4, 84, 13, 1, 43, 13, 59, 13, 75, 13, 3, 31, 13, 1, 2, 8, 11, 10, 90, 5, 2, -201, 3, 1, 3,184,255,248, 64, 16, 13, 16, 72, 0, 3, 1, 6, 3, 9, 4, 6, 3, 3, 10, 0, 18, 0, 63,193, 50, 63,193, 50, - 1, 47, 94, 93, 43, 93,193, 50,241,193, 50, 95, 93, 93, 93, 93,113, 49, 48, 33, 33, 53, 55, 17, 39, 53, 33, 21, 7, 17, 23, 2, -100,253,238,172,172, 2, 18,172,172,102, 41, 4,152, 41,102,102, 41,251,104, 41, 0, 1,255, 72,254,123, 1,115, 5,182, 0, 19, - 0, 47, 64, 28,223, 21, 1, 96, 21,112, 21, 2, 47, 21, 1, 15, 90, 12, 3, 3, 0, 12, 16, 12, 2, 7, 12, 13, 3, 7, 95, 0, - 0, 47,225, 63, 1, 47, 94, 93, 51, 47, 16,225, 93, 93, 93, 49, 48, 3, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 51, 17, - 20, 14, 2, 29, 51, 76, 28, 34, 78, 45, 37, 75, 61, 38,187, 59,105,147,254,123, 13, 11,160, 9, 11, 19, 50, 88, 68, 5,182,250, - 94,105,154,101, 49, 0, 0, 1, 0,199, 0, 0, 4,162, 5,182, 0, 12, 0,100, 64, 45, 2, 12,102, 12, 1, 12, 0, 10, 11, 16, - 11, 11, 1, 0, 0, 16, 0, 2, 7, 0, 16, 0, 0, 14,176, 14, 1, 47, 14, 1, 16, 14, 1, 8, 4, 90, 5,100, 13, 2, 16, 11, - 16, 72, 8,184,255,240, 64, 12, 11, 16, 72, 2, 8, 5, 10, 6, 3, 0, 5, 18, 0, 63, 51, 63, 51, 18, 57, 57, 43, 43, 1, 16, -246,225, 50, 93, 93, 93, 17, 51, 47, 56, 94, 93, 51, 51, 47, 56, 51, 17, 57, 93, 17, 51, 49, 48, 33, 35, 1, 7, 17, 35, 17, 51, - 17, 55, 1, 51, 1, 4,162,211,254, 61,139,186,186,121, 1,196,209,253,248, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253, -131, 0, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 5, 0, 35, 64, 19, 4, 7,175, 7, 1, 16, 7, 1, 3, 90, 0,100, 6, 1, - 3, 3, 95, 0, 18, 0, 63,225, 63, 1, 16,246,225, 93, 93, 17, 51, 49, 48, 51, 17, 51, 17, 33, 21,199,186, 2, 61, 5,182,250, -240,166, 0, 1, 0,199, 0, 0, 6, 47, 5,182, 0, 25, 0,139, 64, 19, 54, 25, 1, 57, 0, 1, 23, 14, 8, 12, 15, 72, 57, 14, - 1, 14, 17, 90, 25,184,255,248, 64, 28, 12, 15, 72, 25, 0, 8, 12, 15, 72, 0, 13, 13, 12, 9, 16,101, 27, 79, 27, 1, 32, 27, - 1, 15, 27, 1, 8, 11,184,255,248, 64, 26, 12, 15, 72, 38, 11, 1, 11, 2, 8, 90, 9,100, 26, 24, 1, 1, 16, 9, 18, 72, 1, - 14, 11, 3, 17, 12,184,255,240,182, 9, 18, 72, 12, 8, 0, 18, 0, 63, 50, 50, 43, 50, 63, 51, 51, 43, 17, 51, 1, 16,246,225, - 50, 50, 93, 43, 94, 93, 93, 93, 16,246, 17, 57, 57, 17, 51, 43, 51, 43,225, 50, 93, 43, 50, 49, 48, 93, 93, 33, 1, 35, 22, 23, - 22, 22, 21, 17, 35, 17, 33, 1, 51, 1, 33, 17, 35, 17, 52, 54, 55, 54, 55, 35, 1, 3, 35,254, 69, 8, 6, 4, 4, 5,172, 1, - 20, 1,156, 6, 1,158, 1, 20,186, 4, 3, 4, 3, 8,254, 65, 5, 0, 74, 73, 63,139, 57,252,150, 5,182,251, 88, 4,168,250, - 74, 3,119, 52,134, 61, 71, 73,251, 2, 0, 1, 0,199, 0, 0, 5, 14, 5,182, 0, 23, 0, 81, 64, 41, 14, 40, 1, 1, 1, 21, - 90, 0,101, 25,176, 25, 1,143, 25, 1, 0, 25, 16, 25, 2, 39, 12, 1, 12, 3, 9, 90, 10,100, 24, 22, 2, 16, 6, 24, 72, 2, - 11, 3, 13,184,255,240,182, 6, 24, 72, 13, 10, 0, 18, 0, 63, 50, 50, 43, 63, 51, 43, 51, 1, 16,246,225, 50, 50, 93, 93, 93, - 93, 16,246,225, 50, 93, 50, 49, 48, 33, 35, 1, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 46, 3, 53, 17, 51, 5, - 14,215,253, 49, 8, 6, 4, 4, 5,172,213, 2,204, 7, 3, 4, 1, 3, 3, 1,174, 4,186, 77, 76, 65,142, 57,252,231, 5,182, -251, 76, 76, 74, 32, 67, 67, 62, 26, 3, 32, 0, 0, 2, 0,125,255,236, 5,113, 5,205, 0, 19, 0, 39, 0, 52, 64, 32, 30, 91, - 0,103, 41,192, 41, 1,191, 41, 1,112, 41, 1, 47, 41, 95, 41, 2, 20, 91, 10,102, 40, 35, 95, 15, 4, 25, 95, 5, 19, 0, 63, -225, 63,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, - 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 5,113, 81,160,237,155,163,239,157, 76, 76,158, -240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50,106,164,114,114,166,108, 52, 2,221,169,254,234,198,108,108, -198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, - 0,199, 0, 0, 4, 51, 5,182, 0, 14, 0, 25, 0, 70, 64, 44, 21, 91, 40, 0, 56, 0, 72, 0, 3, 0,103, 27,207, 27, 1, 64, - 27, 1, 15, 27, 1, 6, 15, 7, 90, 8,100, 26, 15, 96, 48, 6, 64, 6, 2, 6, 6, 7, 25, 96, 9, 3, 7, 18, 0, 63, 63,225, - 17, 57, 47, 93,225, 1, 16,246,225, 50, 94, 93, 93, 93, 16,246, 93,225, 49, 48, 1, 20, 14, 2, 35, 35, 17, 35, 17, 33, 50, 30, - 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 4, 51, 55,126,207,152,150,186, 1,106,134,194,126, 60,253, 78,129, 93,139, 91, 46, -164,174,160, 4, 10, 91,168,129, 77,253,199, 5,182, 57,109,160,254,103, 32, 71,113, 81,142,137, 0, 2, 0,125,254, 98, 5,113, - 5,205, 0, 29, 0, 49, 0, 56, 64, 34, 40, 91, 0,103, 51,192, 51, 1,191, 51, 1,112, 51, 1, 47, 51, 95, 51, 2, 30, 91, 20, -102, 50, 45, 95, 25, 4, 35, 95, 5, 15, 19, 9, 0, 47, 63, 51,225, 63,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 49, 48, - 1, 20, 14, 2, 7, 22, 22, 23, 7, 38, 38, 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, - 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 5,113, 49, 95,142, 93, 43,137, 90,121,103,173, 51, 17, 41, 18,163,239,157, - 76, 76,158,240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50,106,164,114,114,166,108, 52, 2,221,131,226,181, -132, 38, 94,143, 60,142, 73,198,127, 2, 2,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, 81, 81,153, -219,137,138,218,151, 81, 81,151,218, 0, 0, 2, 0,199, 0, 0, 4,160, 5,182, 0, 15, 0, 28, 0,130, 64, 86, 9, 15, 25, 15, - 2,249, 15, 1, 15, 8, 11, 15, 72, 15, 12, 9, 12, 1, 7, 12, 1, 22, 91, 8, 7, 24, 7, 2, 7, 7, 9, 14, 1,233, 14,249, - 14, 2, 14, 8, 11, 15, 72, 14, 13, 16, 13, 30, 63, 30,143, 30,159, 30,191, 30,223, 30, 5, 32, 30, 1, 16, 1, 90, 2,100, 29, - 12, 3, 16, 96, 0, 0, 1, 8, 0, 0, 1, 28, 96, 3, 3, 14, 1, 18, 0, 63, 51, 63,225, 17, 57, 47, 94, 93,225, 18, 57, 1, - 16,246,225, 50, 93, 93, 16,206, 56, 50, 43, 93,113, 50, 47, 93,225, 18, 57, 94, 93, 17, 51, 43, 93,113, 49, 48, 1, 17, 35, 17, - 33, 32, 22, 21, 20, 14, 2, 7, 1, 35, 1, 39, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 1,129,186, 1,100, 1, 10,254, 49, 81, -104, 55, 1,142,219,254,161,229,164, 90,126, 81, 37, 41, 83,127, 87,160, 2, 92,253,164, 5,182,206,209, 87,130, 93, 62, 20,253, -113, 2, 92,158, 35, 69,103, 69, 72,100, 64, 29, 0, 1, 0,104,255,236, 3,201, 5,203, 0, 51, 0, 66, 64, 39, 89, 35, 1, 35, - 17, 90, 0,103, 53,191, 53,255, 53, 2, 96, 53, 1, 63, 53, 1, 42, 90, 9, 27,102, 52, 17, 42, 5, 39, 95, 36, 32, 4, 14, 96, - 9, 5, 19, 0, 63, 51,225, 63, 51,225, 18, 57, 57, 1, 16,246, 50,225, 93, 93, 93, 16,246,225, 51, 93, 49, 48, 1, 20, 14, 2, - 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, - 20, 30, 2, 23, 30, 3, 3,201, 69,128,184,115,111,193, 65, 34, 87, 96,102, 50,160,153, 29, 73,122, 93, 89,131, 85, 41, 64,116, -161, 97,119,190, 74, 67, 65,165, 88,122,134, 30, 70,115, 84, 91,137, 92, 47, 1,135, 97,153,106, 55, 35, 34,178, 16, 31, 24, 15, -120,112, 54, 80, 67, 63, 37, 35, 83,104,132, 84, 88,138, 95, 50, 45, 35,156, 29, 43,113, 96, 57, 83, 67, 59, 33, 36, 76, 96,126, - 0, 1, 0, 20, 0, 0, 4, 18, 5,182, 0, 7, 0, 94, 64, 50, 15, 9, 1,208, 9, 1, 79, 9,207, 9, 2, 16, 9, 32, 9, 48, - 9, 3,175, 6,239, 6, 2,132, 6, 1, 6, 6, 7, 90, 2, 64, 3,224, 3, 2, 15, 3, 1, 8, 3, 3, 87, 2,103, 2,119, 2, - 3, 2,184,255,192, 64, 11, 7, 10, 72, 2, 7, 3, 95, 4, 3, 0, 18, 0, 63, 63,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, - 16,225, 50, 47, 93, 93, 93, 93, 93,113, 49, 48, 33, 35, 17, 33, 53, 33, 21, 33, 2,113,187,254, 94, 3,254,254, 95, 5, 18,164, -164, 0, 0, 1, 0,184,255,236, 4,221, 5,184, 0, 23, 0, 47, 64, 28, 22, 90, 1,101, 25,176, 25, 1,111, 25,175, 25, 2, 16, - 25, 1, 14, 90, 11,100, 24, 17, 95, 6, 19, 12, 0, 3, 0, 63, 50, 63,225, 1, 16,246,225, 93, 93, 93, 16,246,225, 49, 48, 1, - 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 55, 17, 4,221, 66,133,201,136,128,196,133, 68,187,173, -175, 89,128, 82, 40, 1, 5,184,252, 76,114,196,144, 82, 77,142,199,122, 3,174,252, 72,175,192, 54, 98,136, 81, 3,184, 0, 1, - 0, 0, 0, 0, 4,139, 5,182, 0, 12, 0,108, 64, 16, 3, 2, 9, 9, 4, 0, 96, 1,112, 1,176, 1,240, 1, 4, 1,184,255, -192, 64, 22, 6, 10, 72, 1, 16, 1, 1, 14, 47, 14,127, 14,191, 14, 3, 14, 64, 6, 9, 72, 5, 4,184,255,240,180, 4, 5, 4, - 3, 9,184,255,224,179, 10, 17, 72, 9,184,255,240, 64, 10, 6, 9, 72, 9, 2, 3, 18, 0, 1, 3, 0, 63, 51, 63, 51, 51, 43, - 43, 63, 51, 1, 47, 56, 51, 43, 93, 17, 51, 47, 56, 43, 93, 51, 18, 57, 61, 47, 51, 51, 49, 48, 1, 51, 1, 35, 1, 51, 1, 22, - 22, 23, 54, 54, 55, 3,197,198,254, 23,187,254, 25,197, 1, 39, 29, 42, 17, 15, 46, 31, 5,182,250, 74, 5,182,252, 97, 91,169, - 74, 74,169, 97, 0, 1, 0, 20, 0, 0, 6,254, 5,182, 0, 42, 0,223,182, 16, 8, 21, 24, 72, 16, 15,184,255,248,181, 21, 24, - 72, 15, 7, 1,184,255,248, 64, 18, 21, 24, 72, 1, 0, 8, 21, 24, 72, 0, 22, 29, 8, 21, 24, 72, 29, 28,184,255,248, 64, 47, - 21, 24, 72, 28, 37, 20, 7, 1, 4, 7, 68, 7,180, 7, 3, 7, 4, 37, 20, 37, 36, 37, 68, 37, 84, 37, 5, 7, 22, 37, 37, 22, - 7, 3, 30, 13, 0, 14, 1,112, 14,128, 14,192, 14, 3, 14,184,255,192, 64, 24, 7, 10, 72, 14, 16, 14, 14, 44,111, 44,127, 44, - 2, 32, 44, 48, 44, 2, 15, 44, 1, 8, 31, 30,184,255,240, 64, 19, 30, 22, 32, 10, 17, 72, 22, 16, 6, 9, 72, 22, 13, 0, 30, - 3, 7, 37, 37,184,255,224,179, 10, 17, 72, 37,184,255,240,182, 6, 9, 72, 37, 16, 29, 18, 0, 63, 51, 51, 43, 43, 17, 51, 63, - 51, 51, 51, 43, 43, 1, 47, 56, 51, 94, 93, 93, 93, 17, 51, 47, 56, 43, 93,113, 51, 18, 23, 57, 61, 47, 47, 47, 93, 94, 93,113, - 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 49, 48, 1, 51, 19, 30, 3, 23, 62, 3, 55, 19, 51, 1, 35, 3, 38, - 38, 39, 38, 39, 6, 7, 6, 6, 7, 3, 35, 1, 51, 19, 30, 3, 23, 62, 3, 55, 3, 41,197,229, 15, 29, 25, 19, 6, 4, 12, 16, - 19, 11,200,199,254,145,188,254, 14, 26, 11, 12, 11, 11, 11, 10, 25, 14,242,188,254,126,197,223, 12, 20, 17, 14, 5, 5, 15, 20, - 23, 13, 5,182,252,168, 56,112,105, 94, 38, 38, 90, 99,103, 49, 3,114,250, 74, 3,170, 51,108, 47, 55, 52, 51, 55, 47,112, 54, -252, 92, 5,182,252,135, 46, 99, 98, 91, 38, 37, 98,108,111, 49, 0, 1, 0, 0, 0, 0, 4, 96, 5,182, 0, 11, 0,129, 64, 29, - 9, 10, 16, 10, 10, 0, 55, 11, 1, 11, 8, 56, 5, 1, 5, 2, 2, 1, 0, 0, 1,112, 0,128, 0,192, 0, 3, 0,184,255,192, - 64, 20, 7, 10, 72, 0, 16, 0, 0, 13, 15, 13, 31, 13, 47, 13,127, 13, 4, 8, 7, 6,184,255,240,179, 6, 6, 3, 4,184,255, -240, 64, 16, 4, 40, 2, 1, 39, 8, 1, 2, 8, 4, 9, 6, 3, 4, 0, 18, 0, 63, 50, 63, 51, 18, 57, 57, 93, 93, 1, 47, 56, - 50, 50, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, 57, 61, 47, 51, 93, 51, 51, 93, 17, 51, 24, 47, 56, 51, 49, 48, 33, - 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4, 96,211,254,158,254,145,188, 1,197,254, 90,198, 1, 76, 1, 78,190,254, 91, 2, -123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 0, 0, 0, 4, 55, 5,182, 0, 8, 0,115, 64, 25,239, 10, - 1, 10, 64, 9, 12, 72, 8,171, 7, 1,152, 7, 1, 64, 7, 1, 27, 7, 1, 15, 7, 1, 7,184,255,240, 64, 47, 7, 7, 5, 1, -128, 2, 1, 79, 2, 1, 27, 2, 1, 2, 16, 2, 2, 0, 4, 90,119, 5,135, 5,151, 5, 3, 79, 5, 1, 0, 5, 16, 5, 2, 7, - 5, 54, 0, 1, 0, 1, 4, 18, 7, 1, 3, 0, 63, 51, 63, 18, 57, 93, 1, 47, 94, 93, 93, 93,225, 57, 50, 47, 56, 93, 93, 93, - 51, 17, 51, 47, 56, 93, 93, 93, 93, 93, 51, 43, 93, 49, 48, 1, 1, 51, 1, 17, 35, 17, 1, 51, 2, 27, 1, 84,200,254, 66,187, -254, 66,203, 2,211, 2,227,252,131,253,199, 2, 47, 3,135, 0, 0, 1, 0, 82, 0, 0, 3,254, 5,182, 0, 9, 0, 56, 64, 32, - 9, 9, 3, 7,103, 11, 15, 11, 63, 11, 79, 11,159, 11, 4, 8, 8, 4, 4, 1,102, 10, 7, 4, 95, 5, 3, 2, 8, 95, 1, 18, - 0, 63,225, 57, 63,225, 57, 1, 16,230, 50, 47, 50, 94, 93, 16,230, 50, 50, 47, 49, 48, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, - 3,254,252, 84, 2,199,253, 77, 3,131,253, 58, 2,219,145, 4,127,166,145,251,129, 0, 0, 1, 0,164,254,188, 2, 57, 5,182, - 0, 7, 0, 38, 64, 23, 4, 0,243, 6,241, 0, 1, 16, 1,176, 1,192, 1, 4, 1, 5,245, 2,248, 6,245, 1,249, 0, 63,225, - 63,225, 1, 47, 93,225,237, 50, 49, 48, 1, 33, 17, 33, 21, 35, 17, 51, 2, 57,254,107, 1,149,223,223,254,188, 6,250,149,250, - 49, 0, 0, 1, 0, 23, 0, 0, 2,233, 5,182, 0, 3, 0, 33,183, 2, 1, 1, 16, 1, 5, 0, 3,184,255,240,180, 3, 2, 1, - 0, 3, 0, 63, 47, 47, 1, 47, 56, 51, 17, 51, 56, 17, 51, 49, 48, 19, 1, 35, 1,201, 2, 32,178,253,224, 5,182,250, 74, 5, -182, 0, 0, 1, 0, 51,254,188, 1,201, 5,182, 0, 7, 0, 36, 64, 20, 3, 0,243, 1,241, 96, 6,112, 6, 2, 6, 9, 0,245, - 7,249, 3,245, 4,248, 0, 63,225, 63,225, 1, 16,214, 93,225,237, 50, 49, 48, 23, 51, 17, 35, 53, 33, 17, 33, 51,223,223, 1, -150,254,106,174, 5,207,149,249, 6, 0, 0, 1, 0, 41, 2, 37, 4, 25, 5,193, 0, 6, 0, 18,182, 3, 3, 8, 0, 0, 1, 6, - 0, 63,205, 1, 47, 17, 51, 47, 49, 48, 19, 1, 51, 1, 35, 1, 1, 41, 1,203,102, 1,191,161,254,175,254,163, 2, 37, 3,156, -252,100, 2,223,253, 33, 0, 1,255,252,254,188, 3, 78,255, 72, 0, 3, 0, 18,182, 0, 0, 5, 1, 1,186, 2, 0, 47,225, 1, - 47, 17, 51, 47, 49, 48, 1, 33, 53, 33, 3, 78,252,174, 3, 82,254,188,140, 0, 0, 1, 1,137, 4,217, 3, 18, 6, 33, 0, 13, - 0, 22, 64, 10, 0, 6, 8,128, 15, 0, 95, 0, 2, 0, 0, 47, 93, 26,204, 1, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, - 3, 23, 3, 18,120, 35, 82, 77, 63, 16,219, 16, 43, 46, 48, 21, 4,217, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 0, 0, 2, - 0, 94,255,236, 3,156, 4, 94, 0, 35, 0, 50, 0, 84, 64, 17, 16, 1, 41, 71, 35, 85, 52, 15, 52,111, 52, 2, 6, 48, 72, 12, - 26,184,255,208, 64, 30, 13, 17, 72, 26, 16, 9, 12, 72, 26, 26, 12, 86, 51, 25, 22, 80, 29, 42, 82, 16, 16, 29, 16, 36, 80, 2, - 7, 22, 0, 21, 0, 63, 63, 51,225, 63, 57, 47,225, 16,225, 50, 1, 16,230, 50, 47, 43, 43, 16,225, 94, 93, 16,246,225, 50, 50, - 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, - 17, 37, 50, 62, 2, 53, 53, 7, 14, 3, 21, 20, 22, 3, 25, 37, 8, 33, 66, 78, 96, 63, 69,116, 85, 48,231,236,184, 29, 55, 81, - 52, 83,143, 66, 64, 74,182,100,102,149, 97, 48,254, 47, 61,104, 76, 43,143, 90,122, 73, 32, 97,152, 45, 65, 42, 20, 39, 81,123, - 84,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34,137, 40, 56, 41, 89,138, 98,253, 16,127, 38, 77,117, 79, 99, 7, 4, 32, 57, 81, - 51, 92, 86, 0, 0, 2, 0,174,255,236, 4, 63, 6, 20, 0, 31, 0, 47, 0, 56,181, 45, 72, 5, 87, 49, 49,184,255,184, 64, 23, - 10, 73, 21, 16, 37, 71, 18, 84, 48, 19, 0, 18, 21, 42, 80, 15, 10, 22, 32, 80, 27, 0, 16, 0, 63, 50,225, 63, 51,225, 63, 63, - 1, 16,246,225, 50, 50, 43, 16,246,225, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 35, 7, 35, 17, 51, 17, 20, - 6, 7, 6, 7, 51, 62, 3, 23, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 53, 52, 38, 2,158, 94,154,109, 60, 60,109,154, 94, 59, - 96, 77, 59, 23, 12, 37,133,182, 2, 2, 2, 2, 8, 23, 58, 77, 96, 25, 80,107, 65, 27, 27, 65,108, 81,135,127,127, 4, 94, 72, -143,212,140,141,213,144, 73, 26, 43, 58, 32,139, 6, 20,254,136, 35, 79, 34, 40, 38, 35, 60, 44, 25,151, 51,104,156,105,101,157, -107, 55,218,204,208,206, 0, 1, 0,113,255,236, 3,111, 4, 94, 0, 31, 0, 42, 64, 24, 29, 13, 33, 95, 33,127, 33, 2, 16, 33, - 1, 22, 72, 5, 86, 32, 19, 81, 10, 16, 25, 81, 0, 22, 0, 63,225, 63,225, 1, 16,246,225, 93, 93, 16,206, 50, 49, 48, 5, 34, - 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 6, 6, 2, 82,101,176,130, 74, - 76,133,178,102, 78,149, 50, 54, 23, 56, 60, 58, 26,157,144,145,148, 81,131, 54, 54,123, 20, 63,137,213,150,157,219,137, 62, 34, - 25,154, 10, 19, 15, 9,201,212,211,195, 37, 25,162, 29, 30, 0, 0, 2, 0,113,255,236, 4, 2, 6, 20, 0, 31, 0, 48, 0, 52, - 64, 29, 38, 0, 27, 71, 30, 85, 50, 16, 50, 1, 46, 72, 11, 86, 49, 31, 21, 28, 0, 43, 80, 22, 16, 16, 32, 80, 1, 6, 22, 0, - 63, 51,225, 63, 51,225, 63, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, 49, 48, 37, 35, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, - 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 35, 37, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 84, - 8, 22, 59, 77, 96, 60, 93,154,110, 60, 60,110,154, 93, 59, 96, 77, 60, 22, 12, 3, 3, 2, 4,182,147,254,198, 76,105, 65, 31, - 2, 27, 65,108, 81,135,127,127,147, 34, 61, 46, 26, 72,143,212,140,141,213,144, 73, 26, 44, 58, 32, 34, 31, 26, 55, 16, 1,180, -249,236,131, 46, 94,141, 94, 41,101,157,107, 55,218,204,209,205, 0, 2, 0,113,255,236, 3,225, 4, 94, 0, 30, 0, 39, 0, 67, - 64, 40, 35, 72, 25, 16, 87, 41,224, 41, 1,111, 41, 1, 34, 17, 72, 5, 86, 40, 17, 80, 27, 34, 43, 34, 2, 15, 34, 1, 6, 34, - 34, 20, 31, 80, 10, 16, 20, 81, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93,225, 1, 16,246,225, 50, 93, 93, 16,246, 50, -225, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 3, 34, 6, 7, - 33, 52, 46, 2, 2, 96,110,182,131, 72, 66,120,167,101, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87, - 96,114,133, 11, 1,236, 27, 57, 88, 20, 74,142,210,135,136,214,149, 78, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, - 18, 8, 3,219,156,149, 68,113, 80, 44, 0, 1, 0, 29, 0, 0, 2,240, 6, 31, 0, 27, 0,112, 64, 78,207, 29,223, 29, 2, 96, - 29,128, 29,144, 29,160, 29, 4, 31, 29, 63, 29, 79, 29, 3, 27, 27,127, 16,191, 16, 2, 16, 16, 26, 2, 71, 3, 7, 3, 15, 5, - 31, 5, 47, 5,175, 5, 4, 5, 5, 0, 3, 16, 3, 32, 3,128, 3,144, 3,160, 3, 6, 6, 3, 1, 5, 79, 7, 0, 26, 1, 7, - 26, 15, 20, 80, 13, 1, 2, 21, 0, 63, 63,225, 63, 94, 93, 51,225, 50, 1, 47, 94, 93, 51, 47, 93, 17, 51, 16,225, 50, 50, 47, - 93, 57, 47, 93, 93, 93, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, - 21, 51, 2,139,245,183,194,194, 45, 85,124, 78, 59, 99, 39, 47, 31, 73, 40, 40, 58, 38, 19,245, 3,193,252, 63, 3,193, 75, 68, - 96,107,141, 84, 35, 23, 14,141, 11, 17, 19, 48, 83, 65,104, 0, 0, 3, 0, 37,254, 20, 3,252, 4, 94, 0, 63, 0, 82, 0, 94, - 0,167, 64, 25, 13, 50, 5, 83, 71, 55, 18, 47, 96, 55,112, 55,128, 55, 3, 55, 47, 55, 47, 39, 72, 29, 89, 71, 5,184,255,192, - 64, 77, 7, 10, 72, 5, 5, 1, 10, 29, 1,253, 29, 1,176, 29, 1,136, 29, 1, 32, 29, 48, 29, 64, 29, 3, 29, 29, 96, 31, 96, - 1,191, 96,223, 96, 2,160, 96, 1, 64, 39, 64, 12, 15, 72, 39, 2, 5, 50, 13, 4, 60, 86, 82, 10, 10, 34, 92, 79, 60, 44, 78, - 15, 23, 1, 7, 23, 23, 60, 16, 69, 79, 34, 27, 1, 0, 15, 0, 63,193, 63,225, 63, 57, 47, 94, 93,193, 57, 16,225, 17, 57, 47, -225, 18, 23, 57, 1, 47, 43,193, 93, 93,113, 17, 51, 47, 93, 93, 93, 93,113, 51, 57, 47, 43,225, 16,193, 17, 57, 57, 47, 47, 93, - 16,193, 16,225, 18, 57, 57, 49, 48, 1, 21, 7, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 14, 3, 21, 20, 30, 2, 51, 51, 50, 30, - 2, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 55, 38, 38, 53, 52, 54, 55, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 1, 20, - 30, 2, 51, 50, 54, 53, 52, 46, 2, 35, 35, 34, 14, 2, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3,252,197, 28, 38, 47, - 95,140, 93, 22, 44, 14, 17, 33, 27, 17, 24, 41, 56, 31,176, 93,128, 81, 36, 65,134,205,139,107,160,106, 53, 39, 66, 87, 47, 42, - 54, 64, 69, 43, 71, 49, 27, 50, 98,146, 97, 37, 79, 27,254, 64, 26, 59, 97, 72,186,185, 24, 55, 90, 65,176, 35, 76, 63, 41, 92, -108, 99,100,103,105,100, 99,106, 4, 74,113, 27, 35,109, 69, 76,129, 94, 53, 1, 3, 10, 25, 32, 40, 24, 27, 33, 18, 6, 47, 80, -109, 61, 88,140, 97, 52, 42, 80,113, 71, 60, 91, 66, 42, 11, 19, 82, 53, 61, 89, 42, 18, 63, 81, 96, 51, 89,140, 98, 52, 11, 9, -251, 2, 37, 64, 46, 27,115,108, 46, 58, 33, 12, 16, 44, 77, 3, 96,115,112,111,119,123,116,120, 0, 1, 0,174, 0, 0, 4, 18, - 6, 20, 0, 25, 0, 50, 64, 29, 0, 71, 25, 85, 27, 16, 27, 96, 27,128, 27, 3, 15, 14, 10, 71, 11, 84, 26, 16, 4, 80, 21, 16, - 12, 0, 11, 0, 21, 0, 63, 50, 63, 63,225, 51, 1, 16,246,225, 50, 50, 93, 16,246,225, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, - 21, 17, 35, 17, 51, 17, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,182, 8, 10, 25, 69, 82, 92, 48, -183,185, 2,195,130,130, 52,102,148, 96,253,199, 6, 20,254, 50,144, 43, 63, 42, 20,191,210,253, 51, 0, 0, 2, 0,160, 0, 0, - 1,117, 5,229, 0, 3, 0, 17, 0, 37, 64, 20, 16, 19, 32, 19, 2, 12, 0, 71, 4, 1, 84, 18, 7, 83, 15, 15, 2, 15, 0, 21, - 0, 63, 63, 51, 47,229, 1, 16,246, 50,225, 50, 93, 49, 48, 33, 35, 17, 51, 3, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, - 1,100,182,182,196, 61, 45, 22, 39, 29, 17, 63, 44, 45, 61, 4, 74, 1, 41, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 2,255,188, -254, 20, 1,117, 5,229, 0, 19, 0, 33, 0, 46, 64, 25, 16, 35, 32, 35, 2, 28, 15, 71, 12, 20, 3, 3, 12, 84, 34, 23, 83, 31, - 31, 13, 15, 7, 80, 0, 27, 0, 63,225, 63, 51, 47,229, 1, 16,230, 50, 47, 50, 16,225, 50, 93, 49, 48, 19, 34, 38, 39, 53, 22, - 22, 51, 50, 62, 2, 53, 17, 51, 17, 20, 14, 2, 19, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 66, 48, 63, 23, 26, 54, 35, - 27, 46, 35, 19,182, 34, 72,109, 19, 61, 45, 22, 39, 29, 17, 63, 44, 45, 61,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 4,244, -251, 24, 77,123, 87, 47, 7, 95, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 0, 1, 0,174, 0, 0, 3,240, 6, 20, 0, 14, 0, 94, - 64, 11, 7, 4, 4, 2, 3, 3, 6, 68, 5, 1, 5,184,255,192, 64, 23, 7, 10, 72, 5, 16, 5, 5, 16, 15, 16, 47, 16, 2, 7, - 13, 9, 71, 10, 84, 15, 11, 0, 0,184,255,248, 64, 16, 12, 15, 72, 7, 8, 12, 15, 72, 0, 7, 3, 6, 10, 21, 3, 15, 0, 63, - 63, 51, 18, 57, 57, 43, 43, 63, 1, 16,246,225, 50, 94, 93, 17, 51, 47, 56, 43, 93, 51, 51, 17, 51, 57, 17, 51, 49, 48, 1, 55, - 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 3, 1, 86,135, 1, 37,211,254,111, 1,172,209,254,176,109,180,180, 16, 2, 55, -170, 1,105,254, 37,253,145, 1,248, 82,254, 90, 6, 20,253, 54,254,237, 0, 1, 0,174, 0, 0, 1,100, 6, 20, 0, 3, 0, 26, - 64, 14, 16, 5, 32, 5, 2, 0, 71, 1, 84, 4, 2, 0, 0, 21, 0, 63, 63, 1, 16,246,225, 93, 49, 48, 33, 35, 17, 51, 1,100, -182,182, 6, 20, 0, 1, 0,174, 0, 0, 6,135, 4, 94, 0, 44, 0,101, 64, 63, 35, 10, 71,185, 11, 1,150, 11,166, 11, 2,137, - 11, 1,103, 11,119, 11, 2, 11, 11, 22, 0, 71, 44, 85, 46,240, 46, 1,207, 46, 1, 32, 46, 80, 46, 2, 15, 46, 1, 8, 25, 21, - 71, 22, 84, 45, 35, 26, 26, 4, 15, 80, 40, 31, 16, 23, 15, 22, 11, 0, 21, 0, 63, 50, 50, 63, 63, 51,225, 50, 50, 17, 51, 1, - 16,246,225, 50, 94, 93, 93, 93, 93, 16,246,225, 17, 57, 47, 93, 93, 93, 93,225, 50, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, - 17, 35, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 22, 23, 51, 62, 3, 51, 50, 22, 21, 17, 5,209, -100,105, 73,102, 65, 30,183, 99,105, 77,104, 63, 27,182,148, 26, 10, 24, 66, 79, 89, 46,120,159, 38, 8, 26, 73, 87, 96, 50,175, -177, 2,195,130,130, 47, 91,135, 88,253,162, 2,195,130,130, 52,102,148, 96,253,199, 4, 74,148, 43, 63, 42, 20, 88, 94, 47, 68, - 45, 22,191,210,253, 51, 0, 1, 0,174, 0, 0, 4, 18, 4, 94, 0, 24, 0, 48, 64, 28, 0, 71, 24, 85, 26, 16, 26, 96, 26,128, - 26, 3, 14, 10, 71, 11, 84, 25, 15, 4, 80, 20, 16, 12, 15, 11, 0, 21, 0, 63, 50, 63, 63,225, 51, 1, 16,246,225, 50, 93, 16, -246,225, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, - 67, 29,182,148, 26, 10, 25, 69, 82, 92, 48,183,185, 2,195,130,130, 52,102,148, 96,253,199, 4, 74,148, 43, 63, 42, 20,191,210, -253, 51, 0, 2, 0,113,255,236, 4, 45, 4, 94, 0, 19, 0, 31, 0, 48, 64, 29, 26, 72, 0, 87, 33, 64, 33,208, 33,224, 33, 3, - 15, 33, 1, 6, 20, 72, 10, 86, 32, 29, 80, 15, 16, 23, 80, 5, 22, 0, 63,225, 63,225, 1, 16,246,225, 94, 93, 93, 16,246,225, - 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 45, - 67,125,178,111,103,174,127, 71, 67,124,179,111,103,174,127, 71,253, 0,137,154,154,135,137,154,154,135, 2, 39,137,213,145, 76, - 76,145,213,137,136,211,145, 75, 75,145,211,136,209,211,211,209,209,207,207, 0, 0, 2, 0,174,254, 20, 4, 63, 4, 94, 0, 31, - 0, 48, 0, 54, 64, 30, 46, 72, 27, 87, 50, 16, 50, 1, 38, 16, 6, 12, 71, 13, 84, 49, 32, 80, 17, 22, 16, 14, 15, 12, 27, 43, - 80, 5, 0, 22, 0, 63, 50,225, 63, 63, 63, 51,225, 1, 16,246,225, 50, 50, 50, 93, 16,246,225, 49, 48, 5, 34, 46, 2, 39, 35, - 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 3, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, - 54, 53, 52, 38, 2,158, 59, 96, 77, 59, 23, 12, 3, 3, 2, 4,182,148, 26, 8, 23, 58, 77, 96, 60, 94,154,109, 60, 60,109,154, -129, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127, 20, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 35, 61, 45, 27, - 72,143,212,140,141,213,144, 73, 3,219, 46, 94,140, 95, 41,101,157,107, 55,218,204,208,206, 0, 0, 2, 0,113,254, 20, 4, 2, - 4, 94, 0, 16, 0, 48, 0, 54, 64, 30, 43, 32, 5, 37, 71, 36, 85, 50, 16, 50, 1, 14, 72, 22, 86, 49, 36, 27, 34, 15, 32, 11, - 80, 27, 16, 44, 0, 80, 17, 22, 0, 63,225, 51, 63,225, 51, 63, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, 50, 49, 48, 37, 50, - 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 23, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 55, 51, 17, 35, 17, - 52, 54, 55, 54, 55, 35, 14, 3, 2, 53, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,102, 93,154,110, 60, 60,110,154, 93, 59, - 96, 76, 60, 23, 8, 27,147,182, 4, 2, 3, 3, 12, 22, 59, 77, 96,131, 46, 94,141, 94, 41,101,157,107, 55,218,204,209,205,151, - 72,143,212,140,141,213,144, 73, 27, 45, 61, 35,148,249,202, 1,213, 19, 58, 27, 32, 34, 34, 61, 46, 26, 0, 1, 0,174, 0, 0, - 3, 8, 4, 94, 0, 22, 0, 65, 64, 11,178, 3,194, 3, 2,144, 3,160, 3, 2, 3,184,255,192, 64, 27, 7, 11, 72, 3, 3, 24, - 48, 24, 80, 24,128, 24, 3, 17, 13, 71, 14, 84, 23, 15, 15, 13, 21, 18, 7, 0, 16, 0, 63,193, 51, 63, 63, 1, 16,246,225, 50, - 93, 17, 51, 47, 43, 93, 93, 49, 48, 1, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 2,137, 29, - 72, 26, 24, 28, 59, 26, 63,104, 75, 41,182,148, 22, 8, 25, 57, 71, 88, 4, 94, 5, 5,168, 5, 7, 51, 95,133, 81,253,176, 4, - 74,201, 43, 80, 61, 37, 0, 1, 0, 90,255,236, 3, 63, 4, 94, 0, 53, 0, 72, 64, 45, 37, 19, 71,144, 0,160, 0, 2, 0, 87, - 55, 63, 55, 95, 55,159, 55, 3, 16, 55, 1, 44, 71, 9,159, 29,175, 29, 2, 29, 86, 54, 38, 41, 80, 19, 44, 5, 34, 16, 9, 14, - 80, 5, 22, 0, 63,225, 50, 63, 18, 57, 57,225, 50, 1, 16,246, 93, 50,225, 93, 93, 16,246, 93,225, 51, 49, 48, 1, 20, 14, 2, - 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, - 21, 20, 30, 2, 23, 30, 3, 3, 63, 58,109,154, 96,109,156, 59, 31, 76, 84, 89, 44, 65, 91, 57, 26, 20, 53, 92, 72, 72,115, 80, - 43, 55,100,140, 86, 97,161, 72, 63, 65,137, 71,102, 98, 23, 56, 94, 70, 72,113, 80, 42, 1, 45, 80,120, 81, 40, 35, 34,166, 16, - 31, 24, 15, 22, 41, 59, 36, 31, 50, 49, 50, 31, 31, 60, 74, 97, 67, 70,109, 74, 38, 42, 34,147, 29, 43, 67, 62, 35, 52, 46, 47, - 29, 30, 60, 75, 96, 0, 0, 1, 0, 33,255,236, 2,143, 5, 70, 0, 29, 0, 80,177, 25, 5,184,255,192, 64, 47, 8, 11, 72, 5, - 5, 31, 63, 31, 79, 31, 2, 23, 27, 71, 20, 31, 18, 47, 18, 2, 18, 0, 16, 16, 16, 32, 16,176, 16,192, 16,208, 16, 6, 6, 16, - 26, 18, 79, 22, 20, 23, 15, 0, 80, 11, 22, 0, 63,225, 63, 51, 51,225, 50, 1, 47, 94, 93,198, 93, 51,225, 50, 93, 17, 51, 47, - 43, 51, 49, 48, 37, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 17, 35, 53, 55, 55, 51, 21, 33, 21, 33, 17, 20, 22, 1,250, - 18, 45, 42, 35, 9, 13, 40, 48, 52, 25, 62,106, 77, 44,155,155, 78,105, 1, 20,254,236, 63,129, 4, 6, 8, 3,138, 6, 12, 9, - 5, 32, 78,133,101, 2,125, 81, 78,230,252,137,253,131, 97, 98, 0, 1, 0,164,255,236, 4, 8, 4, 74, 0, 26, 0, 48, 64, 28, - 1, 23, 71, 26, 85, 28, 16, 28, 96, 28,128, 28, 3, 15, 71, 12, 84, 27, 24, 13, 15, 18, 80, 2, 7, 22, 0, 21, 0, 63, 63, 51, -225, 63, 51, 1, 16,246,225, 93, 16,246,225, 50, 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, - 2, 53, 17, 51, 17, 3,117, 27, 10, 25, 69, 82, 92, 48, 91,138, 92, 47,182,106,111, 81,110, 67, 29,182,147, 43, 63, 41, 20, 46, - 98,152,105, 2,205,253, 61,130,130, 52,101,148, 96, 2, 58,251,182, 0, 0, 1, 0, 0, 0, 0, 3,213, 4, 74, 0, 17, 0,109, -185, 0, 17,255,248, 64, 15, 10, 14, 72, 17, 0, 8, 10, 14, 72, 0, 9, 9, 1, 15, 16,184,255,192,179, 18, 21, 72, 16,184,255, -192, 64, 28, 7, 11, 72, 16, 16, 16, 16, 19,191, 19,207, 19,239, 19, 3, 80, 19, 1, 15, 19, 47, 19, 79, 19, 3, 7, 2, 1,184, -255,240, 64, 10, 1, 71, 9, 1, 9, 15, 1, 15, 0, 21, 0, 63, 63, 51, 57, 93, 1, 47, 56,193, 94, 93, 93, 93, 17, 51, 47, 56, - 43, 43,193, 18, 57, 61, 47, 51, 43, 51, 43, 49, 48, 33, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 1,119,254,137,188, -199, 11, 30, 30, 25, 4, 7, 5, 24, 30, 30, 11,199,188,254,137, 4, 74,253,157, 33,104,108, 96, 25, 25, 96,108,104, 33, 2, 99, -251,182, 0, 1, 0, 20, 0, 0, 5,227, 4, 74, 0, 47, 0,195,185, 0, 47,255,248, 64, 12, 10, 14, 72, 47, 0, 8, 9, 14, 72, - 0, 39, 32,184,255,248, 64, 18, 9, 14, 72, 32, 31, 8, 9, 14, 72, 31, 9, 16, 8, 10, 14, 72, 16, 15,184,255,248, 64, 9, 9, - 14, 72, 15, 24, 84, 39, 1, 39,184,255,224, 64, 21, 7, 10, 72, 91, 24, 1, 24, 32, 7, 10, 72, 39, 9, 24, 24, 9, 39, 3, 17, - 45, 46,184,255,192,179, 18, 21, 72, 46,184,255,192, 64, 19, 7, 11, 72, 46, 16, 46, 46, 49, 32, 49, 48, 49, 2, 15, 49, 1, 7, - 18, 17,184,255,240, 64, 22, 17, 45, 31, 9, 9, 1, 9, 17, 15, 39, 25, 6, 25,102, 25,118, 25, 3, 25, 0, 16, 21, 0, 63, 51, - 51, 93, 17, 51, 63, 51, 93, 51, 51, 1, 47, 56, 51, 94, 93, 93, 17, 51, 47, 56, 43, 43, 51, 18, 23, 57, 61, 47, 47, 47, 43, 93, - 43, 93, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 17, 51, 43, 51, 43, 49, 48, 33, 3, 46, 3, 39, 38, 39, 35, 6, 7, 6, 6, 7, - 3, 35, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 3,240,168, 4, 12, 12, 13, - 6, 14, 15, 6, 14, 13, 11, 25, 11,172,211,254,231,191,131, 10, 20, 18, 14, 4, 6, 5, 17, 21, 22, 10,179,196,172, 9, 23, 22, - 18, 4, 6, 3, 13, 18, 21, 11,137,186,254,228, 2,104, 18, 45, 50, 52, 25, 58, 62, 63, 58, 50,106, 37,253,156, 4, 74,253,184, - 45,105,103, 91, 29, 26, 87, 97, 95, 33, 2,107,253,149, 34, 92, 95, 88, 29, 26, 87,104,109, 47, 2, 72,251,182, 0, 1, 0, 35, - 0, 0, 3,219, 4, 74, 0, 11, 0,229, 64,161,137, 9, 1,134, 3, 1, 6, 4, 1,247, 4, 1,229, 4, 1, 54, 4, 1, 4, 5, -232, 6, 1, 6, 3,231, 0, 1, 0, 9, 9, 2, 1,248, 2, 1,234, 2, 1, 57, 2, 1, 2, 1,107, 5,123, 5, 2, 87, 5, 1, - 58, 5, 74, 5, 2,100, 1,116, 1, 2, 88, 1, 1, 53, 1, 69, 1, 2, 5, 1, 9, 1, 9, 5, 3, 11, 6, 8, 1,247, 8, 1, -229, 8, 1, 54, 8, 1, 8, 7, 64, 22, 25, 72, 7, 64, 14, 17, 72,107, 7,123, 7, 2, 87, 7, 1, 58, 7, 74, 7, 2, 7, 13, - 16, 13, 48, 13, 2,144, 13,176, 13, 2, 15, 13, 1, 6,217, 10, 1,200, 10, 1,186, 10, 1, 9, 10, 1, 10, 59, 11, 75, 11, 2, - 40, 11, 1, 5, 11, 21, 11, 2, 11, 7, 21, 1, 15, 0, 63, 63, 1, 47, 93, 93, 93,193, 93, 93, 93, 93, 94, 93, 93,113, 16,222, - 93, 93, 93, 43, 43,193, 93, 93, 93,113, 18, 23, 57, 61, 47, 24, 47, 47, 93, 93, 93, 93, 93, 93, 16,193, 93, 93, 93,113, 17, 51, - 93, 51, 51, 93, 16,193, 93, 93, 93,113, 49, 48, 0, 93, 93, 1, 1, 51, 19, 19, 51, 1, 1, 35, 1, 1, 35, 1,152,254,159,207, -250,250,207,254,157, 1,117,207,254,244,254,242,207, 2, 51, 2, 23,254,102, 1,154,253,233,253,205, 1,180,254, 76, 0, 0, 1, - 0, 10,254, 20, 3,223, 4, 74, 0, 34, 0,100,182, 34, 16, 8, 8, 0, 14, 15,184,255,192,179, 18, 21, 72, 15,184,255,192, 64, - 29, 7, 11, 72, 15, 16, 15, 15, 36,191, 36,207, 36,239, 36, 3, 80, 36, 1, 15, 36, 47, 36, 79, 36, 3, 7, 24, 1, 0,184,255, -240, 64, 12, 0, 34, 16, 8, 35, 28, 80, 21, 27, 14, 0, 15, 0, 63, 50, 63,225, 17, 51, 51, 51, 1, 47, 56,193, 51, 94, 93, 93, - 93, 17, 51, 47, 56, 43, 43,193, 18, 57, 61, 47, 51, 51, 49, 48, 19, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 14, 3, 35, - 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 55, 10,189,215, 14, 29, 25, 18, 4, 6, 5, 22, 27, 29, 11,199,188,254, 78, 28, 65, - 86,116, 80, 52, 76, 27, 21, 64, 35, 48, 70, 52, 37, 15, 57, 4, 74,253,155, 40, 88, 88, 82, 35, 25, 86, 97, 94, 33, 2, 99,251, - 39, 81,129, 90, 49, 11, 6,145, 5, 7, 23, 44, 64, 41,160, 0, 0, 1, 0, 82, 0, 0, 3, 53, 4, 74, 0, 9, 0,108, 64, 11, - 9,151, 3, 1, 3, 8, 9, 13, 72, 3, 7,184,255,192, 64, 17, 7, 10, 72, 7, 7, 11, 63, 11, 95, 11,127, 11, 3,152, 8, 1, - 8,184,255,248,181, 9, 13, 72, 8, 4, 2,184,255,192,183, 18, 21, 72, 63, 2, 1, 2, 7,184,255,240, 64, 18, 7, 12, 72, 7, - 4, 79, 5, 15, 2, 16, 7, 12, 72, 2, 8, 79, 1, 21, 0, 63,225, 50, 43, 63,225, 50, 43, 1, 47, 93, 43, 51, 51, 43, 93, 93, - 17, 51, 47, 43, 51, 43, 93, 51, 49, 48, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, 3, 53,253, 29, 2, 24,254, 9, 2,176,253,244, - 2, 30,125, 3, 68,137,146,252,209, 0, 0, 1, 0, 61,254,188, 2,162, 5,182, 0, 39, 0, 64, 64, 37, 26, 5, 5,247, 32, 39, -241, 35, 19, 15,246, 16, 12, 1, 12, 35, 15,245,217, 16, 1, 15, 16, 95, 16, 2, 16, 16, 41, 26,245, 25,248, 5,245, 6,249, 0, - 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, 47, 93,230, 51, 51,241, 50,226, 47, 50, 49, 48, 5, 20, 30, 2, 23, 21, 46, 3, - 53, 17, 52, 38, 35, 53, 50, 54, 53, 17, 52, 62, 2, 55, 21, 14, 3, 21, 17, 20, 6, 7, 21, 22, 22, 21, 1,244, 24, 45, 65, 40, - 77,131, 95, 54,131,125,125,131, 54, 95,131, 77, 40, 65, 45, 24,119,115,115,119, 16, 48, 61, 35, 13, 1,150, 1, 33, 71,110, 78, - 1, 78,103, 86,155, 86,103, 1, 77, 78,110, 71, 33, 1,149, 1, 13, 35, 61, 48,254,180,105,123, 20, 12, 20,122,106, 0, 0, 1, - 1,233,254, 20, 2,127, 6, 20, 0, 3, 0, 45, 64, 31, 0, 5, 1, 48, 5, 64, 5,112, 5,128, 5, 4, 2,170, 0, 3, 16, 3, - 64, 3,128, 3,192, 3, 5, 7, 3, 2, 27, 0, 0, 0, 63, 63, 1, 47, 94, 93,225, 93,113, 49, 48, 1, 51, 17, 35, 1,233,150, -150, 6, 20,248, 0, 0, 0, 1, 0, 51,254,188, 2,152, 5,182, 0, 41, 0, 64, 64, 37, 13, 36, 36,247, 7, 0,241, 26,246, 20, - 3,144, 29, 1, 29, 4, 26,245,239, 25,255, 25, 2,217, 25, 1, 25, 25, 14, 36,245, 35,249, 13,245, 14,248, 0, 63,225, 63,225, - 17, 57, 47, 93, 93,225, 57, 1, 47, 93, 51, 51,230,241, 50,226, 47, 50, 49, 48, 19, 52, 54, 55, 53, 38, 38, 53, 17, 52, 46, 2, - 39, 53, 30, 3, 21, 17, 20, 30, 2, 51, 21, 34, 6, 21, 17, 20, 14, 2, 7, 53, 62, 3, 53,225,119,115,115,119, 24, 45, 65, 40, - 77,131, 95, 54, 33, 65, 96, 62,125,131, 54, 95,131, 77, 40, 65, 45, 24, 1, 59,106,122, 20, 12, 20,123,105, 1, 76, 48, 61, 35, - 13, 1,149, 1, 33, 71,110, 78,254,179, 52, 72, 45, 20,155, 86,103,254,178, 78,110, 71, 33, 1,150, 1, 13, 35, 61, 48, 0, 1, - 0,102, 2, 74, 4, 2, 3, 90, 0, 35, 0, 60, 64, 13, 29, 37, 16, 37, 1, 16, 10, 1, 10, 23,173, 10, 31,184,255,192, 64, 22, - 16, 19, 72, 31, 31, 5,173, 28, 15, 13, 31, 13, 63, 13, 79, 13,111, 13,143, 13, 6, 13, 0, 47, 93, 51,241,200, 47, 43, 50,225, - 1, 47, 93, 93, 16,206, 49, 48, 1, 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, - 35, 34, 46, 2, 2, 18, 37, 55, 45, 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, - 24, 99,149, 29, 50, 55, 67, 2,139, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 20, 16, 22, 13, 5, 19, 33, 44, 25,162, -108, 5, 13, 25, 0, 2, 0,147,254,139, 1,145, 4, 94, 0, 3, 0, 23, 0, 65,185, 0, 0,255,240, 64, 19, 10, 20, 72, 48, 25, -160, 25,176, 25,192, 25, 4, 2, 4,154, 14, 3, 3, 14,184,255,192, 64, 15, 7, 10, 72, 14, 0, 9,155, 19, 0, 2, 16, 2, 2, - 7, 2, 0, 47, 94, 93, 47,245,206, 1, 47, 43, 51, 47, 16,225, 50, 93, 49, 48, 43, 19, 51, 19, 35, 19, 20, 14, 2, 35, 34, 46, - 2, 53, 52, 62, 2, 51, 50, 30, 2,213,121, 51,223,239, 19, 35, 46, 27, 26, 46, 35, 20, 20, 35, 46, 26, 27, 46, 35, 19, 2,164, -251,231, 5, 72, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, 0, 1, 0,188,255,236, 3,186, 5,203, 0, 37, - 0, 90, 64, 37, 18, 3, 70, 15, 4, 4, 10, 37, 21, 39, 64, 39, 1, 30, 72, 0, 10, 48, 10, 64, 10,208, 10, 4, 6, 10, 27,115, - 15, 18, 15, 33,115, 5, 2, 5, 15,184,255,192, 64, 12, 15, 18, 72, 15, 5, 15, 5, 3, 16, 7, 3, 25, 0, 63, 63, 18, 57, 57, - 47, 47, 43, 17, 51, 16,225, 17, 51, 16,225, 1, 47, 94, 93,225, 93, 16,198, 50, 17, 57, 47, 51,225, 50, 49, 48, 36, 6, 7, 21, - 35, 53, 46, 3, 53, 52, 62, 2, 55, 53, 51, 21, 22, 22, 23, 7, 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 3,118,110, - 76,137, 87,138, 98, 52, 53, 97,139, 86,137, 72,136, 46, 53, 23, 56, 60, 59, 25,157,144,145,148, 81,131, 54,212, 30, 2,200,206, - 13, 75,133,199,137,141,203,136, 75, 13,172,164, 3, 33, 23,154, 10, 19, 15, 9,202,212,210,195, 37, 24,161, 0, 0, 1, 0, 68, - 0, 0, 4, 35, 5,201, 0, 40, 0,117, 64, 17, 13, 17,111, 35, 15, 15, 31, 15, 2, 7, 31, 15, 31, 15, 25, 3, 23,184,255,192, -179, 10, 14, 72, 23,184,255,200, 64, 48, 6, 9, 72, 23, 23, 42, 16, 42, 1, 33, 25, 64, 11, 14, 72, 25, 25, 41, 16, 33,117, 13, - 47, 34,127, 34,143, 34,175, 34,191, 34,223, 34,255, 34, 7, 34, 34, 0, 22,116, 25, 24, 7,115, 0, 7, 0, 63,225, 63,225, 17, - 57, 47, 93, 51,225, 50, 17, 1, 51, 47, 43, 51, 93, 17, 51, 47, 43, 43, 51, 18, 57, 57, 47, 47, 94, 93, 51,225, 50, 49, 48, 1, - 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 17, 33, 21, 33, 21, 20, 14, 2, 7, 33, 21, 33, 53, 62, 3, 53, 53, 35, 53, 51, 17, - 52, 62, 2, 2,154,106,174, 66, 66, 56,141, 75, 48, 82, 60, 33, 1,120,254,136, 23, 39, 51, 27, 2,236,252, 33, 44, 73, 53, 30, -198,198, 59,105,146, 5,201, 45, 35,144, 29, 43, 27, 59, 94, 66,254,217,137,211, 62, 89, 64, 43, 16,166,154, 11, 41, 68, 97, 67, -213,137, 1, 68, 87,137, 95, 50, 0, 2, 0,123, 1, 29, 3,236, 4,139, 0, 35, 0, 55, 0,134, 64, 35, 14,143, 22, 1, 22, 22, - 46,171, 21, 15, 12, 24, 6, 30, 33, 3, 8, 0,112, 18, 1, 18, 18, 57, 16, 57, 1, 4, 32, 36,170,128, 0, 1, 0,184,255,192, - 64, 49, 6, 10, 72, 0, 0, 56, 23,128, 31, 1, 31, 12, 6, 24, 30, 15, 6, 4, 9, 41,174, 0, 27, 1, 27, 13, 5, 51,174,207, - 9,239, 9, 2,144, 9,160, 9,176, 9, 3, 31, 9, 63, 9,111, 9, 3, 9, 0, 47, 93, 93, 93,225,198, 50, 47, 93,225, 18, 23, - 57, 17, 51,198, 93, 50, 17, 1, 51, 47, 43, 93,225,198, 50, 93, 17, 51, 47, 93, 18, 23, 57,241,192, 47, 93, 50, 49, 48, 19, 52, - 54, 55, 39, 55, 23, 54, 54, 51, 50, 22, 23, 55, 23, 7, 22, 22, 21, 20, 6, 7, 23, 7, 39, 6, 6, 35, 34, 38, 39, 7, 39, 55, - 38, 38, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2,186, 35, 31,129, 98,127, 47,108, 60, 60,107, 46,129, 99, -130, 31, 37, 35, 33,127, 96,129, 46,107, 60, 60,110, 45,127, 96,127, 31, 35,138, 37, 65, 87, 50, 51, 89, 66, 38, 38, 66, 89, 51, - 50, 87, 65, 37, 2,211, 59,107, 47,129, 98,129, 32, 36, 36, 32,129, 96,129, 46,109, 60, 60,110, 45,127, 96,127, 31, 35, 36, 32, -127, 96,127, 45,108, 60, 50, 87, 65, 38, 38, 65, 87, 50, 51, 89, 66, 38, 38, 66, 89, 0, 0, 1, 0, 29, 0, 0, 4, 76, 5,182, - 0, 22, 0,149, 64, 91, 48, 24, 1, 15, 19, 12, 22,170, 21, 1, 21, 21, 12, 4, 8, 1,171, 2, 1, 31, 2, 1, 2, 2,152, 0, - 1, 0, 7, 3, 11, 90,153, 20, 1, 20, 16, 15, 12, 1,138, 12, 1, 0, 12, 16, 12, 64, 12, 3, 7, 12, 10, 14, 96, 15, 7, 15, - 6, 18, 96, 19, 3, 0, 19,127, 15,143, 15, 2, 48, 19, 1,208, 19, 1, 15, 19, 31, 19, 2, 15, 19, 15, 19, 1, 11, 18, 21, 1, - 3, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93,113, 93, 17, 51, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 94, 93, 93,113, 51, - 51, 93,225, 50, 50, 57, 93, 50, 47, 93, 93, 51, 57, 57, 17, 51, 47, 93, 51, 18, 57, 57, 93, 49, 48, 1, 1, 51, 1, 51, 21, 33, - 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 51, 1, 51, 2, 51, 1, 90,191,254,127,239,254,211, 1, 45,254,211,178,254, -211, 1, 45,254,211,234,254,133,192, 2,211, 2,227,253, 0,137,158,137,254,250, 1, 6,137,158,137, 3, 0, 0, 0, 2, 1,233, -254, 20, 2,127, 6, 20, 0, 3, 0, 7, 0, 57, 64, 37, 0, 9, 1, 48, 9, 64, 9,112, 9,128, 9, 4, 2, 6,170, 3, 0, 7, - 16, 7, 64, 7,128, 7,192, 7, 5, 7, 7, 4, 3, 4, 3, 6, 27, 0, 0, 0, 63, 63, 57, 57, 47, 47, 1, 47, 94, 93, 51,225, - 50, 93,113, 49, 48, 1, 51, 17, 35, 17, 51, 17, 35, 1,233,150,150,150,150, 6, 20,252,244,254, 25,252,243, 0, 0, 2, 0,121, -255,246, 3, 94, 6, 31, 0, 69, 0, 90, 0,121, 64, 75, 5, 86, 8, 81, 70, 33, 38, 76, 70, 60, 70, 41, 41, 16,255, 33, 1,160, - 33,176, 33, 2, 33, 92,192, 92, 1,191, 92, 1, 70, 70, 0, 23, 70, 8, 8, 49, 0, 0, 1, 0, 0, 16, 0, 48, 0,192, 0,208, - 0,240, 0, 6, 8, 0, 91, 38, 76, 5, 86, 23, 86, 76, 41, 4, 13, 55, 80, 46, 21, 20, 80, 13, 1, 0, 63,225, 63,225, 18, 23, - 57, 17, 51, 17, 51, 1, 16,198, 94, 93,113, 50, 50, 47,225, 16,225, 93, 93, 16,206, 93, 93, 50, 50, 47,225, 18, 57, 57, 16,225, - 17, 57, 57, 49, 48, 19, 52, 62, 2, 55, 38, 38, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, 20, 30, 2, 23, 30, - 3, 21, 20, 14, 2, 7, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 55, 20, - 30, 2, 23, 23, 62, 3, 53, 52, 46, 2, 39, 14, 3,137, 26, 45, 58, 31, 75, 85, 55,100,140, 86, 97,157, 72, 56, 65,140, 71, 99, -102, 24, 57, 95, 70, 72,113, 78, 42, 24, 41, 52, 28, 69, 76, 59,108,155, 96,108,156, 59, 31, 76, 84, 89, 43, 69, 93, 55, 23, 17, - 51, 94, 76, 73,115, 80, 41,154, 28, 63,101, 72, 35, 20, 41, 33, 21, 26, 65,108, 82, 25, 47, 38, 23, 3, 41, 51, 83, 64, 45, 15, - 38,114, 84, 61, 98, 68, 37, 40, 32,139, 28, 39, 59, 57, 27, 46, 44, 47, 29, 28, 65, 78, 97, 62, 52, 85, 68, 49, 16, 38,109, 78, - 71,111, 77, 40, 33, 32,158, 15, 30, 23, 14, 24, 39, 51, 27, 29, 45, 45, 49, 31, 31, 62, 78,100, 89, 37, 63, 58, 55, 30, 15, 13, - 36, 46, 56, 34, 38, 64, 59, 57, 30, 8, 31, 45, 58, 0, 0, 2, 1, 51, 5, 12, 3,106, 5,217, 0, 11, 0, 25, 0, 53, 64, 33, - 12,134,175, 20, 1, 20,192, 6,134, 0, 0, 16, 0, 64, 0, 80, 0, 4, 6, 0, 15, 3,145, 23,159, 9,207, 9, 2, 48, 9, 1, - 9, 0, 47, 93, 93, 51,229, 50, 1, 47, 94, 93,225, 26,220, 93,225, 49, 48, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 37, - 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 1, 51, 56, 40, 39, 58, 58, 39, 40, 56, 1,119, 56, 40, 19, 35, 26, 16, 58, 38, - 40, 56, 5,115, 54, 48, 49, 53, 53, 50, 50, 53, 54, 48, 12, 25, 38, 27, 53, 50, 50, 0, 0, 3, 0,100,255,236, 6, 68, 5,203, - 0, 37, 0, 65, 0, 85, 0,106, 64, 67, 5,197, 26, 15, 15, 34, 26, 34, 26, 34, 38, 76,195, 0, 52, 1,192, 52, 1, 52, 87, 66, -195, 38, 10,201, 21, 0,201, 31, 15, 21, 31, 21, 47, 21,127, 21,143, 21,159, 21, 6, 8, 0, 31, 16, 31, 96, 31,112, 31,128, 31, - 5, 21, 31, 21, 31, 45, 71,200, 59, 81,200, 45, 4, 0, 63,225, 47,225, 17, 57, 57, 47, 47, 93, 94, 93, 16,225, 16,225, 1, 47, -225, 16,222, 93,113,225, 17, 57, 57, 47, 47, 17, 51, 47, 16,225, 49, 48, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 21, - 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 1, 52, 62, 4, 51, 50, 30, 4, 21, 20, 14, 4, 35, 34, 46, - 4, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 3,123, 61, 94, 64, 33, 29, 61, 95, 67, 23, 54, 57, 56, 25, - 24, 49, 53, 60, 35,102,152,101, 51, 54,105,153,100, 63,132, 59, 62, 52, 97,252,190, 54, 97,138,167,192,104,104,192,167,138, 97, - 54, 54, 97,138,167,192,104,104,192,167,138, 97, 54,109,101,175,234,133,133,234,175,101,101,175,234,133,133,234,175,101, 4, 29, - 44, 83,120, 75, 78,120, 82, 43, 7, 12, 17, 9,131, 11, 18, 14, 7, 66,122,170,103,101,167,120, 67, 33, 29,127, 26, 28,254,190, -104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,137, 98, 53, 53, 98,137,167,192,104,133,234,175,101,101,175,234,133, -133,234,175,101,101,175,234, 0, 0, 2, 0, 68, 3, 16, 2, 66, 5,199, 0, 30, 0, 45, 0, 78, 64, 47, 45, 1, 15,224, 0, 29, - 16, 29, 2, 29, 47, 15, 47, 31, 47, 79, 47,127, 47,175, 47, 5, 36,224, 11, 23, 23, 96, 11, 1, 11, 46, 45,228, 15, 15, 26, 1, - 39,228, 0, 6,192, 19,228, 26,222, 0, 63,225, 26,220,196,225, 57, 17, 57, 47,225, 1, 16,198, 93, 50, 47, 16,225, 93, 16,214, - 93,225, 50, 50, 49, 48, 1, 39, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 22, - 21, 17, 3, 14, 3, 21, 20, 22, 51, 50, 62, 2, 53, 53, 1,231, 28, 18, 39, 47, 56, 35, 43, 72, 52, 29,141,143, 99, 61, 56, 48, - 90, 42, 48, 51,117, 60,125,119,201, 51, 68, 41, 18, 50, 42, 34, 58, 43, 25, 3, 29, 82, 22, 35, 25, 13, 26, 51, 77, 51,102,108, - 5, 4, 31, 72, 57, 29, 22,100, 26, 36,106,122,254, 58, 1, 57, 3, 18, 30, 43, 29, 51, 45, 21, 44, 65, 44, 49, 0, 2, 0, 82, - 0,115, 3,147, 3,199, 0, 6, 0, 13, 0, 96, 64, 17, 2, 4, 13,235, 10, 80, 4, 96, 4, 2, 4, 10, 4, 10, 6, 11, 9,184, -255,192, 64, 33, 9, 12, 72, 9, 15, 15, 15,159, 15,175, 15, 3, 6,235,159, 3, 1, 3, 6, 0, 3, 13, 7, 10, 10, 5, 3, 3, - 1, 12, 5, 8, 1, 0, 47, 51, 47, 51, 18, 57, 61, 47, 18, 57, 17, 51, 51, 17, 51, 51, 1, 24, 47, 93,225, 93, 16,198, 43, 50, - 17, 57, 57, 47, 47, 93, 16,225, 17, 51, 49, 48, 19, 1, 23, 3, 19, 7, 1, 37, 1, 23, 3, 19, 7, 1, 82, 1, 53,117,238,238, -117,254,203, 1,151, 1, 54,116,237,237,116,254,202, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 27, 1,158, 78,254,164,254, -164, 78, 1,155, 0, 1, 0,102, 1, 6, 4, 2, 3, 29, 0, 5, 0, 57, 64, 36, 2,170, 1, 7, 16, 7, 1,150, 4, 1,139, 4, - 1,121, 4, 1, 86, 4, 1, 75, 4, 1, 56, 4, 1, 18, 4, 1, 9, 4, 1, 4, 4,173, 5,179, 0, 63,225, 1, 47, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 16,222,225, 49, 48, 1, 17, 35, 17, 33, 53, 4, 2,149,252,249, 3, 29,253,233, 1,129,150, 0,255,255, - 0, 82, 1,209, 2, 66, 2,121, 2, 6, 0, 16, 0, 0, 0, 4, 0,100,255,236, 6, 68, 5,203, 0, 8, 0, 30, 0, 58, 0, 78, - 0,194, 64,125,164, 22,180, 22,196, 22, 3,180, 23,196, 23, 2, 23, 22, 1, 82, 21, 14, 23, 14, 22,197, 21, 14, 20, 21, 21, 14, - 14, 9, 0, 25,197, 26, 9,197, 4, 21, 4, 0, 26, 1, 0, 26,192, 26,208, 26, 3, 7,143, 4, 1, 26, 4, 26, 4, 31, 69,195, - 0, 45, 1,192, 45, 1, 45, 80, 59,195, 31, 14, 24,201, 0, 0, 22, 27, 22, 21, 26, 8,201, 27, 0, 26, 1, 15, 26, 31, 26, 47, - 26,127, 26,143, 26,159, 26, 6, 8, 0, 27, 16, 27, 96, 27,112, 27,128, 27, 5, 26, 27, 26, 27, 38, 64,200, 52, 19, 74,200, 38, - 4, 0, 63,225, 63,225, 17, 57, 57, 47, 47, 93, 94, 93,113, 16,225, 17, 51, 51, 17, 18, 57, 16,225, 50, 1, 47,225, 16,222, 93, -113,225, 17, 57, 57, 47, 47, 93, 94, 93,113, 17, 57, 16,225, 16,225, 50, 17, 57,135, 16, 43, 16, 0,193,135, 5, 43, 16,196, 1, - 93, 49, 48, 93, 1, 51, 50, 54, 53, 52, 38, 35, 35, 5, 20, 14, 2, 7, 22, 23, 30, 2, 23, 23, 35, 3, 35, 17, 35, 17, 51, 50, - 22, 1, 52, 62, 4, 51, 50, 30, 4, 21, 20, 14, 4, 35, 34, 46, 4, 55, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, - 2, 2,231, 72, 91, 79, 83, 89, 70, 1,146, 27, 45, 57, 31, 67, 53, 23, 42, 33, 10, 10,179,206, 95,157,233,168,158,251,235, 54, - 97,138,167,192,104,104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,138, 97, 54,109,101,175,234,133,133,234,175,101, -101,175,234,133,133,234,175,101, 3, 0, 72, 69, 74, 59,129, 48, 75, 57, 40, 13,110, 87, 37, 71, 56, 17, 17, 1, 96,254,160, 3, -125,130,254,195,104,192,167,138, 97, 54, 54, 97,138,167,192,104,104,192,167,137, 98, 53, 53, 98,137,167,192,104,133,234,175,101, -101,175,234,133,133,234,175,101,101,175,234, 0, 0, 1,255,250, 6, 20, 4, 6, 6,160, 0, 3, 0, 18,182, 0, 0, 5, 1, 1, -186, 2, 0, 47,225, 1, 47, 17, 51, 47, 49, 48, 1, 33, 53, 33, 4, 6,251,244, 4, 12, 6, 20,140, 0, 0, 2, 0,123, 3, 86, - 2,242, 5,203, 0, 19, 0, 39, 0, 67, 64, 44, 30,171, 10, 41,159, 41, 1, 20,170, 48, 0, 64, 0, 2, 0, 25,174, 16, 15, 32, - 15, 2,224, 15,240, 15, 2,111, 15, 1, 0, 15, 16, 15, 32, 15, 3, 6, 15, 15, 35,174, 5, 4, 0, 63,225, 51, 47, 94, 93, 93, - 93,113,225, 1, 47, 93,225, 93, 16,214,225, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 55, 20, 30, - 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2,123, 50, 85,115, 65, 65,115, 86, 50, 50, 86,115, 65, 65,115, 85, 50,123, 30, - 52, 70, 40, 40, 70, 53, 30, 30, 53, 70, 40, 40, 70, 52, 30, 4,143, 65,115, 86, 50, 50, 86,115, 65, 65,114, 85, 49, 49, 85,114, - 65, 39, 69, 52, 30, 30, 52, 69, 39, 40, 71, 53, 31, 31, 53, 71, 0, 2, 0,102, 0, 0, 4, 2, 4,162, 0, 11, 0, 15, 0, 58, - 64, 33, 16, 17, 1, 15, 8, 8, 6, 9,170, 12, 1, 1, 3,239, 0, 1, 32, 0, 96, 0,160, 0, 3, 0, 13,173, 12, 9, 0,173, - 6, 3,179, 0, 63, 51,225, 50, 47,225, 1, 47, 93, 93, 51, 51, 17, 51,225, 50, 50, 17, 51, 93, 49, 48, 1, 33, 53, 33, 17, 51, - 17, 33, 21, 33, 17, 35, 1, 53, 33, 21, 1,233,254,125, 1,131,150, 1,131,254,125,150,254,125, 3,156, 2,135,150, 1,133,254, -123,150,254,127,254,250,150,150, 0, 1, 0, 49, 2, 74, 2,109, 5,201, 0, 30, 0, 64, 64, 21, 8,225, 0, 23, 32, 79, 32,127, - 32, 2, 32, 64, 6, 10, 72, 29,225, 1, 15, 15, 1,184,255,192, 64, 14, 21, 24, 72, 1, 8, 29, 11,229, 18,222, 29,229, 1,221, - 0, 63,225, 63,225, 18, 57, 1, 47, 43, 51, 47, 16,225, 43, 93, 16,222, 50,225, 49, 48, 1, 33, 53, 55, 62, 3, 53, 52, 38, 35, - 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 7, 33, 2,109,253,196,209, 57, 72, 40, 15, 66, 54, 51, 93, 45, 78, - 54,133, 82, 60, 97, 68, 37, 29, 54, 79, 51,148, 1,140, 2, 74,112,228, 62, 85, 67, 59, 34, 65, 64, 50, 38, 94, 48, 65, 33, 63, - 91, 57, 50, 86, 85, 91, 55,157, 0, 1, 0, 31, 2, 57, 2,104, 5,201, 0, 48, 0, 97, 64, 60, 3, 0, 25, 25, 14, 6, 30,225, - 0, 0, 21,225, 6, 50, 95, 50,143, 50, 2, 50, 64, 6, 10, 72, 39, 39, 14, 64, 25, 32, 72, 14, 3, 25,228, 15, 26, 31, 26, 47, - 26, 95, 26,223, 26, 5, 8, 26, 26, 18, 38, 35,229, 44,222, 18,229, 15, 11,223, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, 93, -225, 57, 1, 47, 43, 51, 47, 43, 93, 16,222,225, 51, 47,225, 17, 18, 57, 47, 18, 57, 49, 48, 1, 20, 6, 7, 22, 22, 21, 20, 14, - 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 35, 53, 51, 50, 54, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, - 50, 30, 2, 2, 78, 81, 69, 88, 88, 40, 83,126, 86, 70,123, 57, 63,132, 53, 98, 88,107, 96, 98, 98, 92, 84, 20, 35, 47, 27, 59, - 97, 51, 69, 29, 61, 68, 76, 44, 69,105, 70, 35, 4,231, 78,106, 24, 23,106, 78, 60,100, 71, 40, 25, 31,133, 34, 38, 83, 73, 74, - 67,113, 79, 64, 32, 47, 30, 14, 41, 37, 96, 23, 37, 26, 15, 34, 60, 83, 0, 1, 1,137, 4,217, 3, 18, 6, 33, 0, 13, 0, 22, - 64, 10, 6, 0, 5,128, 15, 12, 95, 12, 2, 12, 0, 47, 93, 26,205, 1, 47,205, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, - 1,137, 22, 47, 47, 42, 16,219, 16, 63, 77, 81, 35,121, 4,244, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 0, 0, 1, 0,174, -254, 20, 4, 18, 4, 74, 0, 29, 0, 55, 64, 34, 13, 9, 71, 10, 85, 31, 16, 31, 32, 31, 96, 31,112, 31,128, 31, 5, 20, 29, 71, - 28, 84, 30, 26, 27, 3, 80, 17, 22, 11, 21, 28, 9, 15, 0, 63, 51, 63, 63,225, 63, 1, 16,246,225, 50, 93, 16,246,225, 50, 49, - 48, 1, 20, 22, 51, 50, 62, 2, 53, 17, 51, 17, 35, 39, 35, 6, 6, 35, 34, 38, 39, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1,100, -106,111, 82,110, 67, 28,182,147, 27, 10, 48,144,103, 72,106, 35, 1, 2, 2, 1,182,182, 1,135,130,130, 52,101,148, 96, 2, 58, -251,182,147, 83, 84, 46, 42, 38, 40, 35, 85, 42,254,192, 6, 54, 0, 1, 0,113,254,252, 4,102, 6, 20, 0, 19, 0, 55, 64, 33, - 4,153, 0, 5, 48, 5, 64, 5, 80, 5, 4, 6, 5, 5, 13, 1,153, 0, 21, 16, 21, 1, 0, 13, 16, 13, 2, 13, 3, 18, 0, 5, - 0, 0, 47, 50, 63,193, 1, 47, 93, 93, 16,214,225, 18, 57, 47, 94, 93,225, 49, 48, 1, 35, 17, 35, 17, 35, 17, 6, 35, 34, 46, - 2, 53, 52, 62, 2, 51, 33, 4,102,120,207,121, 61, 85, 95,155,109, 60, 65,119,166,100, 2, 51,254,252, 6,121,249,135, 3, 51, - 18, 51,118,192,140,147,197,120, 50, 0, 0, 1, 0,147, 2, 72, 1,145, 3, 94, 0, 19, 0, 51, 64, 26, 16, 21,128, 21,144, 21, -160, 21, 4, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, 15, 0, - 47,229, 1, 47, 43, 93, 93,237, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, 46, 27, - 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2,211, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, 0, 1, - 0, 35,254, 20, 1,152, 0, 0, 0, 25, 0, 57, 64, 31, 20, 19, 19, 21,127, 18,143, 18, 2, 18, 18, 6, 13,132, 0, 27, 6, 26, - 18,140, 21, 64, 9, 14, 72, 21, 21, 19, 10,141, 3, 0, 47,225, 47, 57, 47, 43,225, 1, 16,198, 16,214,225, 17, 57, 47, 93, 51, - 51, 17, 51, 49, 48, 1, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, 39, 55, 51, 7, 30, 3, 1,152,141,150, - 22, 45, 15, 15, 49, 16, 71, 80, 26, 46, 63, 37, 90,121, 57, 34, 58, 43, 25,254,225, 97,108, 6, 3,108, 3, 3, 43, 49, 24, 35, - 26, 19, 9,176,115, 8, 26, 41, 58, 0, 0, 1, 0, 63, 2, 74, 1,186, 5,182, 0, 14, 0, 52, 64, 33, 79, 16,127, 16, 2, 16, - 64, 6, 10, 72, 14, 14, 2,225, 0,127, 3,143, 3, 2, 32, 3, 48, 3, 2, 3, 2,221, 13, 9,229, 0,220, 0, 63,225,205, 63, - 1, 47, 93, 93, 51,225, 51, 47, 43, 93, 49, 48, 1, 51, 17, 35, 17, 52, 62, 2, 55, 6, 6, 7, 7, 39, 1, 51,135,145, 1, 3, - 3, 1, 14, 38, 22, 94, 74, 5,182,252,148, 2, 4, 25, 60, 60, 56, 22, 17, 40, 17, 73, 96, 0, 0, 2, 0, 66, 3, 16, 2,139, - 5,199, 0, 19, 0, 31, 0, 46,178, 26,224, 0,184,255,192, 64, 20, 9, 15, 72, 0, 33, 15, 33, 1, 20,224, 10, 32, 23,228, 5, -192, 29,228, 15,222, 0, 63,225, 26,220,225, 1, 16,214,225, 93, 16,214, 43,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, - 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2,139, 41, 77,109, 68, 63,106, 78, 43, 41, 76,109, 68, - 62,107, 78, 44,254, 58, 75, 86, 85, 75, 75, 85, 86, 75, 4,109, 83,130, 89, 47, 47, 89,130, 83, 83,129, 88, 46, 46, 88,129, 83, -119,121,121,119,120,115,115, 0, 0, 2, 0, 84, 0,115, 3,150, 3,199, 0, 6, 0, 13, 0, 86, 64, 47, 15, 15,159, 15,175, 15, - 3, 7,235, 4, 2, 10, 2, 10, 2, 3, 11, 9, 14, 0,235,159, 3, 1, 16, 3, 32, 3, 64, 3, 3, 3, 13, 7, 10, 6, 0, 3, - 10, 3, 10, 3, 1, 12, 5, 8, 1, 0, 47, 51, 47, 51, 18, 57, 57, 61, 47, 47, 17, 51, 51, 17, 51, 51, 1, 24, 47, 93, 93,225, - 16,198, 50, 17, 57, 57, 47, 47, 17, 51,225, 93, 49, 48, 1, 1, 39, 19, 3, 55, 1, 5, 1, 39, 19, 3, 55, 1, 3,150,254,202, -116,237,237,116, 1, 54,254,104,254,203,117,238,238,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98, 27,254,101, 78, - 1, 92, 1, 92, 78,254, 98, 0,255,255, 0, 63, 0, 0, 5,139, 5,182, 0, 38, 0,123, 0, 0, 0, 39, 2, 23, 2, 74, 0, 0, - 1, 7, 2, 60, 2,252,253,183, 0, 48, 64, 29, 3, 2, 22, 24, 3, 2,191, 22, 1,143, 22, 1, 63, 22, 1, 22, 1, 64, 17, 1, - 0, 17, 1, 17, 0, 64, 0, 1, 0, 17, 93, 53, 17, 93, 93, 53, 17, 93, 93, 93, 53, 53, 0, 63, 53, 53,255,255, 0, 44, 0, 0, - 5,160, 5,182, 0, 38, 0,123,237, 0, 0, 39, 2, 23, 2, 53, 0, 0, 1, 7, 0,116, 3, 51,253,183, 0, 40, 64, 24, 2, 20, - 24, 2, 0, 20, 1, 20, 1,176, 17, 1, 64, 17, 1, 17, 0,112, 0, 1, 64, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 53, 17, 93, - 53, 0, 63, 53,255,255, 0, 31, 0, 0, 5,206, 5,201, 0, 38, 0,117, 0, 0, 0, 39, 2, 23, 2,168, 0, 0, 1, 7, 2, 60, - 3, 63,253,183, 0, 60, 64, 39, 3, 2, 56, 24, 3, 2,112, 56, 1, 80, 56, 1, 56, 1,180, 51, 1,164, 51, 1,132, 51, 1,100, - 51, 1, 80, 51, 1, 48, 51, 1, 32, 51, 1, 51, 15, 76, 1, 93, 17, 93, 93, 93, 93, 93, 93, 93, 53, 17, 93, 93, 53, 53, 0, 63, - 53, 53, 0, 2, 0, 68,254,119, 3, 68, 4, 94, 0, 39, 0, 59, 0, 68, 64, 18, 50,154, 40, 40, 39, 70, 0, 0, 11, 20, 61, 15, - 61, 1, 8, 11, 70, 28,184,255,192, 64, 16, 15, 27, 72, 28, 11, 23, 39, 39, 45,155, 55, 16, 19, 16, 81, 23, 0, 47,225, 51, 63, -229, 50, 47, 18, 57, 1, 47, 43,225, 94, 93, 16,206, 17, 57, 47,225, 51, 47,225, 49, 48, 1, 21, 20, 14, 2, 7, 14, 3, 21, 20, - 30, 2, 51, 50, 54, 55, 23, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 62, 3, 53, 53, 19, 20, 14, 2, 35, 34, 46, 2, 53, 52, - 62, 2, 51, 50, 30, 2, 2, 80, 16, 39, 65, 50, 48, 68, 43, 21, 30, 57, 85, 55, 84,150, 69, 64, 82,188, 97, 93,149,103, 56, 27, - 53, 81, 54, 52, 66, 38, 14,186, 19, 35, 46, 27, 26, 46, 35, 20, 20, 35, 46, 26, 27, 46, 35, 19, 2,164, 37, 58, 91, 81, 76, 42, - 41, 67, 69, 79, 53, 48, 79, 57, 31, 51, 35,146, 42, 58, 51, 96,138, 88, 68,104, 90, 84, 47, 45, 67, 62, 67, 43, 19, 1, 47, 38, - 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52,255,255, 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, - 0, 67,255,189, 1, 82, 0, 21,180, 2, 21, 5, 38, 2,184,255,156,180, 27, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 0,118, 0,141, 1, 82, 0, 19, 64, 11, 2, 33, 5, 38, 2,108, - 21, 27, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 1, 75, - 0, 31, 1, 82, 0, 21,180, 2, 21, 5, 38, 2,184,255,255,180, 29, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, - 0, 0, 4,221, 7, 53, 2, 38, 0, 36, 0, 0, 1, 7, 1, 82, 0, 6, 1, 82, 0, 19, 64, 11, 2, 29, 5, 38, 2, 1, 30, 44, - 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 33, - 1, 82, 0, 23, 64, 13, 3, 2, 30, 5, 38, 3, 2, 1, 21, 41, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, - 0, 0, 4,221, 7, 4, 2, 38, 0, 36, 0, 0, 1, 6, 1, 80, 31,125, 0, 49, 64, 32, 3, 2,239, 26, 1,223, 26, 1, 80, 26, - 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, 3, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 53, 0, 17, 93, 93, 93, 93, - 93, 93, 93, 53, 53, 0, 0, 2,255,254, 0, 0, 6, 86, 5,182, 0, 15, 0, 19, 0,132, 64, 42, 6, 19, 10, 14, 90, 1, 17, 1, - 16, 3, 4, 19,169, 19, 1, 36, 19, 52, 19, 84, 19, 3, 16, 1, 1, 20, 12, 1, 19, 1, 12, 12, 1, 19, 3, 5, 8, 0,103, 21, - 4, 5,184,255,240, 64, 32, 5, 9, 19, 95, 6, 3, 95, 16, 13, 95, 10, 79, 10, 1, 15, 10,175, 10, 2, 8, 16, 10, 16, 10, 6, - 3, 4, 14, 95, 5, 1, 18, 0, 63, 51,225, 47, 63, 57, 57, 47, 47, 94, 93,113, 16,225, 16,225, 16,225, 50, 1, 47, 56, 51, 16, -230, 50, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93,125,135,196,196, 17, 1, 51, 16,225, 50, 17, 51, 49, 48, 33, 33, 17, 33, 3, 35, - 1, 33, 21, 33, 17, 33, 21, 33, 17, 33, 1, 33, 17, 35, 6, 86,253, 8,254, 37,203,186, 2,143, 3,201,253,195, 2, 22,253,234, - 2, 61,251,117, 1,147,108, 1,197,254, 59, 5,182,164,254, 60,162,253,248, 1,198, 2,168, 0,255,255, 0,125,254, 20, 4,152, - 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 0,122, 1,252, 0, 0, 0, 11,182, 1, 79, 42, 36, 24, 32, 37, 1, 43, 53, 0,255,255, - 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255, -194,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, - 0,118, 0, 63, 1, 82, 0, 19, 64, 11, 1, 24, 5, 38, 1, 74, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, - 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 1, 75,255,241, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,253,180, - 20, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 3,190, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106, -255,245, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 1, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0, 62, 0, 0, 2,100, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 0, 67,254,181, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255, -168,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 2,138, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, - 0,118,255,120, 1, 82, 0, 19, 64, 11, 1, 24, 5, 38, 1,106, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 17, - 0, 0, 2,169, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 1, 75,255, 15, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 2, 20, 12, - 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106,255, 13, - 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 47, - 0, 0, 4,252, 5,182, 0, 16, 0, 31, 0, 93, 64, 58, 26, 26, 14, 17, 91, 8,103, 33, 32, 33, 1, 24, 28, 90, 14, 16, 16, 1, - 14,100, 32, 27, 16, 95, 24, 15, 0, 1, 15, 0, 63, 0,111, 0,175, 0,223, 0,255, 0, 6, 8, 0, 64, 26, 29, 72, 0, 0, 2, - 28, 96, 14, 18, 23, 96, 2, 3, 0, 63,225, 63,225, 17, 57, 47, 43, 94, 93,113, 51,225, 50, 1, 16,230, 50, 50, 47, 16,225, 50, - 93, 16,246,225, 17, 57, 47, 49, 48, 19, 51, 17, 33, 50, 22, 22, 18, 21, 20, 2, 6, 4, 35, 33, 17, 35, 37, 52, 46, 2, 35, 35, - 17, 33, 21, 33, 17, 51, 32, 0, 47,152, 1,151,153,248,174, 95, 96,182,254,247,168,254,146,152, 4, 8, 66,126,184,117,201, 1, - 80,254,176,162, 1, 8, 1, 12, 3, 37, 2,145, 92,181,254,244,176,185,254,233,187, 94, 2,131, 96,146,213,138, 67,254, 14,162, -254, 29, 1, 36,255,255, 0,199, 0, 0, 5, 14, 7, 53, 2, 38, 0, 49, 0, 0, 1, 7, 1, 82, 0,139, 1, 82, 0, 19, 64, 11, - 1, 32, 5, 38, 1, 10, 33, 47, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, - 0, 0, 1, 7, 0, 67, 0, 84, 1, 82, 0, 21,180, 2, 40, 5, 38, 2,184,255,171,180, 46, 40, 10, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0,118, 1, 2, 1, 82, 0, 19, 64, 11, 2, 52, - 5, 38, 2, 88, 40, 46, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, - 1, 7, 1, 75, 0,174, 1, 82, 0, 19, 64, 11, 2, 40, 5, 38, 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,125,255,236, 5,113, 7, 53, 2, 38, 0, 50, 0, 0, 1, 7, 1, 82, 0,125, 1, 82, 0, 21,180, 2, 48, 5, 38, 2,184,255, -240,180, 49, 63, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 0, 50, 0, 0, 1, 7, - 0,106, 0,170, 1, 82, 0, 23, 64, 13, 3, 2, 49, 5, 38, 3, 2, 1, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, - 0, 1, 0,141, 1, 45, 3,221, 4,123, 0, 11, 0,135,185, 0, 6,255,240,179, 20, 23, 72, 6,184,255,224, 64, 24, 15, 18, 72, - 0, 16, 20, 23, 72, 0, 32, 15, 18, 72, 9, 16, 20, 23, 72, 9, 32, 15, 18, 72, 3,184,255,240,179, 20, 23, 72, 3,184,255,224, - 64, 48, 15, 18, 72, 64, 13, 1, 7, 5, 5, 3, 11, 1, 1, 80, 3, 1, 3, 8, 10, 10, 4, 2, 2, 32, 0, 1, 0, 0, 32, 0, - 80, 0,112, 0,128, 0,160, 0,192, 0,208, 0,240, 0, 9, 6, 0,179, 0, 25, 63, 94, 93,113, 50, 17, 51, 50, 17, 51, 1, 47, - 93, 51, 17, 51, 17, 51, 17, 51, 93, 49, 48, 0, 43, 43, 43, 43, 1, 43, 43, 43, 43, 1, 1, 55, 1, 1, 23, 1, 1, 7, 1, 1, - 39, 1,203,254,194,105, 1, 61, 1, 66,104,254,191, 1, 63,102,254,190,254,195,103, 2,211, 1, 63,105,254,194, 1, 62,103,254, -191,254,192,102, 1, 61,254,197,103, 0, 0, 3, 0,125,255,180, 5,113, 5,252, 0, 26, 0, 38, 0, 49, 0, 92, 64, 58, 41, 31, - 42, 30, 4, 27, 39, 91, 1, 25, 11, 14, 4, 17, 4,103, 51,192, 51, 1,191, 51, 1,112, 51, 1, 47, 51, 95, 51, 2, 27, 91, 17, -102, 50, 31, 41, 30, 42, 4, 45, 34, 95, 25, 1, 14, 11, 4, 9, 26, 22, 4, 45, 95, 12, 9, 19, 0, 63, 51,225, 63, 51, 18, 23, - 57,225, 17, 23, 57, 1, 16,246,225, 93, 93, 93, 93, 16,246, 17, 23, 57,225, 17, 23, 57, 49, 48, 1, 7, 22, 18, 21, 20, 2, 6, - 6, 35, 34, 39, 7, 39, 55, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 55, 1, 20, 22, 23, 1, 38, 38, 35, 34, 14, 2, 5, 16, - 39, 1, 22, 22, 51, 50, 62, 2, 5, 20, 92, 91, 94, 81,160,237,155,189,133, 78,137, 90, 97, 91, 76,158,240,163, 94,161, 66, 80, -252,183, 46, 48, 2, 67, 48,114, 71,114,166,108, 52, 3,106, 88,253,190, 47,114, 69,114,165,107, 50, 5,174,149, 99,254,222,183, -169,254,234,198,108, 71,127, 78,145,100, 1, 42,190,170, 1, 21,196,107, 42, 38,127,252,225,131,209, 78, 3,177, 29, 32, 81,151, -218,138, 1, 1,151,252, 84, 28, 30, 81,153,219,255,255, 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0, 67, - 0, 61, 1, 82, 0, 21,180, 1, 24, 5, 38, 1,184,255,192,180, 30, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184, -255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0,118, 0,197, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 72, 24, 30, - 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 75, 0,121, - 1, 82, 0, 21,180, 1, 24, 5, 38, 1,184,255,253,180, 32, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, - 4,221, 7, 43, 2, 38, 0, 56, 0, 0, 1, 7, 0,106, 0,125, 1, 82, 0, 23, 64, 13, 2, 1, 33, 5, 38, 2, 1, 1, 24, 44, - 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0,118, - 0, 49, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 99, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,199, 0, 0, - 4, 51, 5,182, 0, 16, 0, 27, 0, 60, 64, 33, 23, 91, 0,103, 29,159, 29, 1, 16, 29, 1, 17, 11, 7, 90, 8,100, 28, 17, 96, - 6, 27, 96, 11, 6, 11, 6, 11, 7, 9, 3, 7, 18, 0, 63, 63, 18, 57, 57, 47, 47, 16,225, 16,225, 1, 16,246,225, 50, 50, 93, - 93, 16,246,225, 49, 48, 1, 20, 14, 2, 35, 35, 17, 35, 17, 51, 21, 51, 50, 30, 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 4, - 51, 55,126,207,152,150,186,186,176,134,194,126, 60,253, 78,129, 93,139, 91, 46,164,174,160, 3, 14, 91,168,129, 77,254,195, 5, -182,252, 57,109,160,254,103, 32, 71,113, 81,143,136, 0, 0, 1, 0,174,255,236, 4,117, 6, 31, 0, 75, 0,109, 64, 72, 7, 70, - 46, 53, 71, 0, 15, 25, 31, 25, 47, 25, 3, 25, 64, 13, 19, 72, 95, 46,111, 46, 2, 15, 0, 31, 0, 47, 0, 3, 8, 25, 46, 0, - 0, 46, 25, 3, 65, 36, 71, 17, 87, 77, 16, 77, 32, 77,192, 77, 3, 64, 71, 65, 84, 76, 36, 7, 53, 3, 22, 58, 80, 71, 1, 65, - 21, 31, 80, 26, 22, 22, 0, 63, 51,225, 63, 63,225, 18, 23, 57, 1, 16,246,225, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 94, 93, - 93, 43, 93, 16,225, 16,225, 49, 48, 1, 20, 14, 4, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, - 50, 62, 2, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 4, 53, 52, 46, 2, 35, 34, 14, 2, 21, 17, 35, 17, 52, 62, 2, 51, 50, 30, - 2, 3,242, 43, 63, 75, 63, 43, 14, 39, 70, 57, 56, 88, 61, 33, 56,101,141, 85, 97,139, 53, 26, 65, 72, 76, 37, 56, 81, 52, 24, - 17, 43, 72, 56, 63, 85, 53, 22, 41, 62, 72, 62, 41, 33, 60, 83, 51, 49, 88, 66, 39,182, 63,113,156, 92, 92,152,108, 60, 4,236, - 57, 89, 73, 60, 55, 54, 30, 21, 33, 39, 49, 38, 37, 72, 82, 96, 62, 87,126, 81, 39, 35, 34,166, 16, 31, 24, 15, 25, 45, 64, 40, - 36, 59, 56, 58, 35, 40, 68, 67, 70, 42, 54, 79, 63, 54, 58, 67, 44, 42, 62, 41, 19, 19, 48, 83, 65,251, 78, 4,176,104,141, 85, - 37, 38, 76,116,255,255, 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0, 67,148, 0, 0, 21,180, 2, 51, 17, - 38, 2,184,255,229,180, 57, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, - 0, 0, 1, 6, 0,118, 53, 0, 0, 19, 64, 11, 2, 63, 17, 38, 2,133, 51, 57, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 94,255,236, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 1, 75,226, 0, 0, 19, 64, 11, 2, 51, 17, 38, 2, 51, 59, 51, - 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,227, 2, 38, 0, 68, 0, 0, 1, 6, 1, 82,189, 0, - 0, 19, 64, 11, 2, 59, 17, 38, 2, 41, 60, 74, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,217, - 2, 38, 0, 68, 0, 0, 1, 6, 0,106,222, 0, 0, 23, 64, 13, 3, 2, 60, 17, 38, 3, 2, 47, 51, 71, 12, 34, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 6,135, 2, 38, 0, 68, 0, 0, 1, 6, 1, 80,222, 0, 0, 23, 64, 13, - 3, 2, 56, 17, 38, 3, 2, 48, 61, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0, 94,255,236, 6, 68, 4, 94, - 0, 56, 0, 71, 0, 80, 0,124, 64, 26, 47, 20, 75, 30, 72, 4, 66, 66, 0, 76, 72, 38, 29, 87, 82, 79, 82, 95, 82,159, 82, 3, - 57, 72, 0, 14,184,255,192, 64, 46, 13, 17, 72, 14, 14, 0, 86, 81, 0, 66, 16, 66, 2, 66, 30, 80, 0, 4, 16, 4, 2, 4, 15, - 75, 31, 75, 2, 7, 75, 75, 17, 33, 60, 80, 47, 44, 52, 22, 72, 13, 10, 80, 23, 20, 17, 16, 0, 63, 51, 51,225, 50, 50, 63, 51, - 51,225, 50, 17, 57, 47, 94, 93, 51, 93,225, 50, 93, 1, 16,230, 50, 47, 43, 16,225, 93, 16,246, 50,225, 17, 57, 47, 51,225, 50, - 57, 57, 49, 48, 19, 52, 54, 55, 55, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 22, 23, 54, 54, 51, 50, 30, 2, 21, 21, - 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 38, 39, 14, 3, 35, 34, 46, 2, 55, 20, 22, 51, 50, 62, 2, 53, 53, 7, 14, - 3, 1, 34, 6, 7, 33, 52, 46, 2, 94,231,236,184, 29, 55, 81, 52, 83,143, 66, 64, 74,182,100,131,166, 43, 51,166,103, 97,154, -108, 57,253, 96, 5,147,147, 49, 85, 78, 74, 37, 39, 75, 79, 85, 49,138,202, 62, 34, 76, 95,116, 74, 71,123, 90, 52,189, 97, 79, - 61,104, 76, 43,143, 90,122, 73, 32, 3,133,110,127, 11, 1,215, 26, 55, 84, 1, 51,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34, -137, 40, 56, 85, 93, 85, 93, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, 8,114,115, 54, 85, 59, 31, 39, 81,123, - 82, 92, 86, 38, 77,117, 79, 99, 7, 4, 32, 57, 81, 2, 99,156,149, 68,113, 80, 44, 0,255,255, 0,113,254, 20, 3,111, 4, 94, - 2, 38, 0, 70, 0, 0, 1, 7, 0,122, 1, 66, 0, 0, 0, 11,182, 1, 47, 38, 32, 5, 13, 37, 1, 43, 53, 0,255,255, 0,113, -255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0, 67,148, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255,185,180, 46, 40, - 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0,118, 82, 0, - 0, 19, 64, 11, 2, 52, 17, 38, 2,118, 40, 46, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, - 2, 38, 0, 72, 0, 0, 1, 6, 1, 75,222, 0, 0, 19, 64, 11, 2, 40, 17, 38, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,113,255,236, 3,225, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106,218, 0, 0, 23, 64, 13, 3, 2, 49, 17, - 38, 3, 2, 0, 40, 60, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255,222, 0, 0, 1,103, 6, 33, 2, 38, 0,243, - 0, 0, 1, 7, 0, 67,254, 85, 0, 0, 0, 21,180, 1, 4, 17, 38, 1,184,255,154,180, 10, 4, 1, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,174, 0, 0, 2, 66, 6, 33, 2, 38, 0,243, 0, 0, 1, 7, 0,118,255, 48, 0, 0, 0, 19, 64, 11, 1, 16, - 17, 38, 1,116, 4, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,189, 0, 0, 2, 85, 6, 33, 2, 38, 0,243, 0, 0, - 1, 7, 1, 75,254,187, 0, 0, 0, 19, 64, 11, 1, 4, 17, 38, 1, 0, 12, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, -255,238, 0, 0, 2, 37, 5,217, 2, 38, 0,243, 0, 0, 1, 7, 0,106,254,187, 0, 0, 0, 23, 64, 13, 2, 1, 13, 17, 38, 2, - 1, 0, 4, 24, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0,111,255,236, 4, 45, 6, 35, 0, 39, 0, 57, 0,116, - 64, 70, 18, 40, 72, 0, 35, 32, 22, 25, 4, 28, 34, 24, 28, 34, 34, 28, 24, 3, 10, 0, 87, 59, 64, 59,208, 59,224, 59, 3, 15, - 59, 1, 6, 50, 72, 10, 86, 58, 32, 25, 35, 22, 4, 23, 33, 33, 29, 45, 80, 15, 18, 15,175, 15,191, 15, 2, 48, 15, 1, 23, 15, - 23, 15, 29, 1, 55, 80, 5, 22, 0, 63,225, 63, 57, 57, 47, 47, 93, 93, 17, 51, 16,225, 17, 51, 17, 18, 23, 57, 1, 16,246,225, - 94, 93, 93, 16,230, 17, 23, 57, 47, 47, 47, 17, 18, 23, 57, 16,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, - 51, 50, 22, 23, 55, 38, 38, 39, 5, 39, 55, 38, 38, 39, 55, 22, 22, 23, 55, 23, 7, 30, 3, 7, 52, 46, 2, 35, 34, 14, 2, 21, - 20, 30, 2, 51, 50, 54, 4, 45, 67,125,178,111,104,175,127, 71, 63,118,168,105,102,154, 43, 8, 31,120, 90,255, 0, 74,217, 40, - 85, 47, 70, 65,122, 59,227, 74,195, 67,111, 79, 44,188, 34, 70,110, 75, 77,109, 70, 33, 33, 71,109, 76,154,135, 2, 61,142,220, -152, 79, 66,127,185,119,119,184,126, 65, 59, 60, 4,118,192, 81,153,114,131, 28, 55, 26,123, 32, 72, 44,138,113,117, 65,156,187, -221,176, 56,107, 82, 50, 46, 88,131, 85, 76,125, 90, 49,199, 0,255,255, 0,174, 0, 0, 4, 18, 5,227, 2, 38, 0, 81, 0, 0, - 1, 6, 1, 82,249, 0, 0, 19, 64, 11, 1, 33, 17, 38, 1, 2, 34, 48, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113, -255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0, 67,216, 0, 0, 21,180, 2, 32, 17, 38, 2,184,255,215,180, 38, 32, - 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0,118, 80, 0, - 0, 19, 64, 11, 2, 44, 17, 38, 2, 78, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, - 2, 38, 0, 82, 0, 0, 1, 6, 1, 75,251, 0, 0, 21,180, 2, 32, 17, 38, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,227, 2, 38, 0, 82, 0, 0, 1, 6, 1, 82,226, 0, 0, 21,180, 2, 40, 17, - 38, 2,184,255,253,180, 41, 55, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, 2, 38, 0, 82, - 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 41, 17, 38, 3, 2,184,255,249,180, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0, 0, 3, 0,102, 0,248, 4, 2, 4,172, 0, 3, 0, 23, 0, 43, 0, 96, 64, 21, 48, 45, 1, 34,170, 24, 24, 14, -170, 86, 3,102, 3, 2, 40, 3, 56, 3, 2, 3, 0,184,255,240, 64, 40, 9, 13, 72, 0, 4, 39,173, 16, 29, 1, 15, 29, 1, 29, - 29, 1, 9,173, 0, 19, 16, 19, 32, 19, 96, 19,176, 19,192, 19,208, 19, 7, 7, 19, 19, 0,173, 1,179, 0, 63,225, 51, 47, 94, - 93,225, 17, 51, 47, 93,113,225, 1, 47, 51, 43, 51, 93, 93,225, 51, 47,225, 93, 49, 48, 19, 53, 33, 21, 1, 52, 62, 2, 51, 50, - 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,102, 3,156,253,191, 18, - 31, 41, 24, 23, 42, 32, 18, 18, 32, 42, 23, 24, 41, 31, 18, 18, 31, 41, 24, 23, 42, 32, 18, 18, 32, 42, 23, 24, 41, 31, 18, 2, -135,150,150,254,238, 35, 47, 30, 13, 13, 30, 47, 35, 33, 47, 31, 14, 14, 31, 47, 2,219, 35, 47, 30, 13, 13, 30, 47, 35, 33, 47, - 31, 14, 14, 31, 47, 0, 0, 3, 0,115,255,180, 4, 47, 4,145, 0, 26, 0, 36, 0, 45, 0, 92, 64, 59, 39, 31, 40, 30, 4, 27, - 37, 72, 23, 24, 22, 21, 7, 8, 10, 9, 8, 13, 0, 87, 47, 64, 47,208, 47,224, 47, 3, 15, 47, 1, 6, 27, 72, 13, 86, 46, 40, - 30, 39, 31, 4, 43, 34, 80, 7, 10, 24, 21, 4, 5, 22, 18, 16, 43, 80, 8, 5, 22, 0, 63,198,225, 63,198, 18, 23, 57,225, 17, - 23, 57, 1, 16,246,225, 94, 93, 93, 16,246, 17, 23, 57,225, 17, 23, 57, 49, 48, 1, 20, 14, 2, 35, 34, 39, 7, 39, 55, 38, 38, - 53, 52, 62, 2, 51, 50, 22, 23, 55, 23, 7, 22, 22, 5, 20, 22, 23, 1, 38, 38, 35, 34, 6, 5, 52, 39, 1, 22, 22, 51, 50, 54, - 4, 47, 67,125,178,111,125, 98, 68,131, 80, 63, 70, 67,124,179,111, 63,113, 49, 68,131, 80, 62, 69,253, 0, 19, 22, 1,141, 29, - 75, 45,154,135, 2, 68, 39,254,114, 31, 72, 45,154,135, 2, 39,137,213,145, 76, 53,109, 74,131, 72,213,137,136,211,145, 75, 29, - 28,108, 73,129, 73,209,134, 84,131, 51, 2,135, 17, 18,207,209,159, 99,253,123, 17, 16,211, 0,255,255, 0,164,255,236, 4, 8, - 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0, 67,163, 0, 0, 21,180, 1, 27, 17, 38, 1,184,255,155,180, 33, 27, 12, 25, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0,118, 96, 0, 0, 19, 64, 11, - 1, 39, 17, 38, 1, 87, 27, 33, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 6, 33, 2, 38, 0, 88, - 0, 0, 1, 6, 1, 75, 8, 0, 0, 19, 64, 11, 1, 27, 17, 38, 1, 0, 35, 27, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,164,255,236, 4, 8, 5,217, 2, 38, 0, 88, 0, 0, 1, 6, 0,106, 2, 0, 0, 25,182, 2, 1, 36, 17, 38, 2, 1,184,255, -251,180, 27, 47, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, - 1, 6, 0,118, 14, 0, 0, 19, 64, 11, 1, 47, 17, 38, 1,103, 35, 41, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,174, -254, 20, 4, 63, 6, 20, 0, 32, 0, 49, 0, 56, 64, 31, 47, 72, 10, 87, 51, 16, 51, 1, 39, 32, 31, 21, 27, 71, 28, 84, 50, 29, - 0, 27, 27, 44, 80, 21, 15, 22, 33, 80, 0, 5, 16, 0, 63, 51,225, 63, 51,225, 63, 63, 1, 16,246,225, 50, 50, 50, 50, 93, 16, -246,225, 49, 48, 1, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 17, 7, - 37, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 53, 52, 38, 1,100, 23, 58, 77, 96, 60, 94,154,109, 60, 60,109,154, 94, 59, 96, - 77, 59, 23, 12, 3, 3, 2, 4,182,182, 8, 1, 31, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127, 3,182, 35, 61, 45, 27, 72, -143,212,140,141,213,144, 73, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 8, 0,254, 54,148, 17, 46, 94,140, 95, 41,101,157,107, - 55,218,204,208,206, 0,255,255, 0, 10,254, 20, 3,223, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106,177, 0, 0, 23, 64, 13, - 2, 1, 44, 17, 38, 2, 1, 11, 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 6,193, - 2, 38, 0, 36, 0, 0, 1, 7, 1, 77, 0, 51, 1, 82, 0, 21,180, 2, 23, 5, 38, 2,184,255,255,180, 21, 22, 4, 7, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,156, 5,111, 2, 38, 0, 68, 0, 0, 1, 6, 1, 77,230, 0, 0, 19, 64, 11, - 2, 53, 17, 38, 2, 35, 51, 52, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7, 64, 2, 38, 0, 36, - 0, 0, 1, 7, 1, 78, 0, 33, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 94,255,236, 3,156, 5,238, 2, 38, 0, 68, 0, 0, 1, 6, 1, 78,212, 0, 0, 19, 64, 11, 2, 56, 17, 38, 2, 37, - 61, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,254, 66, 4,221, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 81, - 3, 98, 0, 0, 0, 20, 64, 13, 2,128, 39, 1, 48, 39, 1, 0, 39, 39, 0, 0, 37, 1, 43, 93, 93, 53,255,255, 0, 94,254, 66, - 3,184, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 1, 81, 2, 90, 0, 0, 0, 32, 64, 22, 2,240, 69, 1,160, 69, 1,144, 69, 1, -128, 69, 1, 48, 69, 1, 0, 69, 69, 0, 0, 37, 1, 43, 93, 93, 93, 93, 93, 53,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, - 0, 38, 0, 0, 1, 7, 0,118, 1, 10, 1, 82, 0, 19, 64, 11, 1, 48, 5, 38, 1,205, 36, 42, 24, 32, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,113,255,236, 3,111, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 0,118, 74, 0, 0, 23, 64, 14, 1, 44, 17, 38, - 1, 16, 32, 1,167, 32, 38, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, 0, 38, - 0, 0, 1, 7, 1, 75, 0,180, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1,119, 44, 36, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,113,255,236, 3,143, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 75,245, 0, 0, 23, 64, 14, 1, 32, 17, 38, 1, 16, - 40, 1, 83, 40, 32, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7, 55, 2, 38, 0, 38, 0, 0, - 1, 7, 1, 79, 2, 0, 1, 82, 0, 19, 64, 11, 1, 47, 5, 38, 1,128, 36, 44, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,113,255,236, 3,111, 5,229, 2, 38, 0, 70, 0, 0, 1, 7, 1, 79, 1, 51, 0, 0, 0, 23, 64, 14, 1, 43, 17, 38, 1, 16, - 32, 1, 77, 32, 40, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,152, 7,115, 2, 38, 0, 38, 0, 0, - 1, 7, 1, 76, 0,168, 1, 82, 0, 19, 64, 11, 1, 41, 5, 38, 1,107, 47, 36, 24, 32, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,113,255,236, 3,160, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 76, 6, 0, 0, 23, 64, 14, 1, 37, 17, 38, 1, 16, 43, 1, -100, 43, 32, 5, 13, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, 4,252, 7,115, 2, 38, 0, 39, 0, 0, 1, 7, - 1, 76, 0, 74, 1, 82, 0, 21,180, 2, 29, 5, 38, 2,184,255,183,180, 35, 24, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,113,255,236, 5, 82, 6, 20, 2, 38, 0, 71, 0, 0, 1, 7, 2, 56, 2,217, 0, 0, 0, 11,182, 2, 94, 62, 62, 29, 29, 37, - 1, 43, 53, 0,255,255, 0, 47, 0, 0, 4,252, 5,182, 2, 6, 0,146, 0, 0, 0, 2, 0,113,255,236, 4,158, 6, 20, 0, 39, - 0, 56, 0, 85, 64, 49, 31, 27, 0, 45, 71, 38, 29, 29, 11, 34, 38, 85, 58, 16, 58, 1, 54, 72, 11, 86, 57, 39, 21, 37, 29, 79, - 34, 30, 30, 16, 32, 0, 51, 80, 22, 0, 16, 16, 16, 32, 16, 3, 16, 16, 40, 80, 0, 6, 22, 0, 63, 51,225, 63, 93, 51,225, 63, - 18, 57, 47, 51,225, 50, 63, 1, 16,246,225, 93, 16,230, 50, 17, 57, 47, 16,225, 50, 50, 50, 49, 48, 37, 35, 14, 3, 35, 34, 46, - 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 37, 50, 62, 2, - 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 84, 8, 22, 59, 77, 96, 60, 93,154,110, 60, 60,110,154, 93, 59, 96, 77, 60, 22, - 12, 3, 3, 2, 4,254,133, 1,123,182,156,156,147,254,198, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,147, 34, 61, 46, 26, - 70,138,204,134,135,206,139, 71, 25, 44, 58, 32, 33, 31, 26, 55, 16,158,137,182,182,137,251, 43,131, 44, 89,133, 90, 39, 97,149, -102, 52,207,195,198,195,255,255, 0,199, 0, 0, 3,190, 6,193, 2, 38, 0, 40, 0, 0, 1, 7, 1, 77, 0, 10, 1, 82, 0, 19, - 64, 11, 1, 14, 5, 38, 1, 2, 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,111, 2, 38, - 0, 72, 0, 0, 1, 6, 1, 77, 0, 0, 0, 19, 64, 11, 2, 42, 17, 38, 2, 17, 40, 41, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,199, 0, 0, 3,190, 7, 64, 2, 38, 0, 40, 0, 0, 1, 7, 1, 78,255,251, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, - 1, 6, 22, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,238, 2, 38, 0, 72, 0, 0, 1, 6, - 1, 78,234, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 15, 50, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, - 3,190, 7, 26, 2, 38, 0, 40, 0, 0, 1, 7, 1, 79, 1, 63, 1, 53, 0, 19, 64, 11, 1, 23, 5, 38, 1, 7, 12, 20, 1, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,229, 2, 38, 0, 72, 0, 0, 1, 7, 1, 79, 1, 43, 0, 0, - 0, 19, 64, 11, 2, 51, 17, 38, 2, 12, 40, 48, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 66, 3,190, 5,182, - 2, 38, 0, 40, 0, 0, 1, 7, 1, 81, 2, 33, 0, 0, 0, 14,185, 0, 1,255,193,180, 18, 18, 0, 0, 37, 1, 43, 53,255,255, - 0,113,254, 97, 3,225, 4, 94, 2, 38, 0, 72, 0, 0, 1, 7, 1, 81, 2, 59, 0, 31, 0, 39, 64, 19, 2,240, 59, 1,224, 59, - 1,160, 59, 1,144, 59, 1, 80, 59, 1, 0, 59, 1,184,255,202,180, 59, 59, 26, 26, 37, 1, 43, 93, 93, 93, 93, 93, 93, 53, 0, -255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 1, 76,255,249, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, - 1, 4, 23, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, - 1, 76,228, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 9, 51, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, - 4,242, 7,115, 2, 38, 0, 42, 0, 0, 1, 7, 1, 75, 0,215, 1, 82, 0, 19, 64, 11, 1, 44, 5, 38, 1,109, 52, 44, 12, 1, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 37,254, 20, 3,252, 6, 33, 2, 38, 0, 74, 0, 0, 1, 6, 1, 75,198, 0, 0, 19, - 64, 11, 3, 95, 17, 38, 3, 3,103, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,242, 7, 64, 2, 38, - 0, 42, 0, 0, 1, 7, 1, 78, 0,201, 1, 82, 0, 19, 64, 11, 1, 49, 5, 38, 1, 95, 54, 44, 12, 1, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0, 37,254, 20, 3,252, 5,238, 2, 38, 0, 74, 0, 0, 1, 6, 1, 78,177, 0, 0, 21,180, 3,100, 17, 38, 3, -184,255,239,180,105, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4,242, 7, 55, 2, 38, 0, 42, 0, 0, - 1, 7, 1, 79, 2, 12, 1, 82, 0, 19, 64, 11, 1, 55, 5, 38, 1, 95, 44, 52, 12, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 37,254, 20, 3,252, 5,229, 2, 38, 0, 74, 0, 0, 1, 7, 1, 79, 0,242, 0, 0, 0, 21,180, 3,106, 17, 38, 3,184,255, -236,180, 95,103, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254, 59, 4,242, 5,203, 2, 38, 0, 42, 0, 0, 1, 7, - 2, 57, 1, 23, 0, 0, 0, 11,182, 1, 81, 44, 50, 12, 1, 37, 1, 43, 53, 0,255,255, 0, 37,254, 20, 3,252, 6, 33, 2, 38, - 0, 74, 0, 0, 1, 6, 2, 58, 45, 0, 0, 19, 64, 11, 3,100, 17, 38, 3, 28,101, 95, 39, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,199, 0, 0, 4,213, 7,115, 2, 38, 0, 43, 0, 0, 1, 7, 1, 75, 0,127, 1, 82, 0, 21,180, 1, 12, 5, 38, 1, -184,255,255,180, 20, 12, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 18, 7,170, 2, 38, 0, 75, 0, 0, - 1, 7, 1, 75, 0, 43, 1,137, 0, 31, 64, 20,112, 13, 1,112, 12, 1, 1,112, 26, 1, 26, 2, 38, 1, 25, 34, 26, 11, 24, 37, - 1, 43, 53, 0, 43, 93, 53, 93, 93, 0, 0, 2, 0, 0, 0, 0, 5,156, 5,182, 0, 19, 0, 23, 0, 86, 64, 47, 20, 4, 12, 90, - 7, 11,101, 25,176, 25, 1,175, 25, 1, 16, 25, 1, 23, 3, 15, 90, 0, 16,100, 24, 14, 95, 23, 22, 10, 18, 96, 19, 7, 3, 19, - 23, 19, 23, 19, 1, 16, 11, 18, 5, 1, 3, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 17, 51, 51, 16,225, 50, 50, 16,225, 1, 16, -246, 50,225, 50, 50, 93, 93, 93, 16,246, 50,225, 50, 50, 49, 48, 19, 53, 51, 21, 33, 53, 51, 21, 51, 21, 35, 17, 35, 17, 33, 17, - 35, 17, 35, 53, 1, 53, 33, 21,199,186, 2,154,186,199,199,186,253,102,186,199, 4, 27,253,102, 4,195,243,243,243,243,150,251, -211, 2,170,253, 86, 4, 45,150,254,139,223,223, 0, 1, 0, 18, 0, 0, 4, 18, 6, 20, 0, 33, 0, 85, 64, 52, 19, 11, 0, 71, - 33, 85, 35, 16, 35, 96, 35,128, 35, 3, 23, 22, 18, 10, 71, 15, 11, 84, 34, 21, 13, 79, 18,191, 14,207, 14, 2, 14, 14, 16, 23, - 4, 80, 0, 29, 16, 29, 32, 29, 3, 29, 16, 16, 0, 11, 0, 21, 0, 63, 50, 63, 63, 93,225, 51, 18, 57, 47, 93, 51,225, 50, 1, - 16,246, 50,225, 50, 50, 50, 93, 16,246,225, 18, 57, 49, 48, 33, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 35, 53, 51, 53, 51, - 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, - 25, 69, 82, 92, 48,183,185, 2,154,130,130, 52,102,148, 96,253,240, 4,213,137,182,182,137,184,144, 43, 63, 42, 20,191,210,253, - 92, 0,255,255,255,245, 0, 0, 2,196, 7, 53, 2, 38, 0, 44, 0, 0, 1, 7, 1, 82,254,243, 1, 82, 0, 19, 64, 11, 1, 20, - 5, 38, 1, 1, 21, 35, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,163, 0, 0, 2,114, 5,227, 2, 38, 0,243, 0, 0, - 1, 7, 1, 82,254,161, 0, 0, 0, 19, 64, 11, 1, 12, 17, 38, 1, 1, 13, 27, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 61, 0, 0, 2,124, 6,193, 2, 38, 0, 44, 0, 0, 1, 7, 1, 77,255, 34, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 1, - 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,235, 0, 0, 2, 42, 5,111, 2, 38, 0,243, 0, 0, 1, 7, 1, 77, -254,208, 0, 0, 0, 19, 64, 11, 1, 6, 17, 38, 1, 1, 4, 5, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 48, 0, 0, - 2,138, 7, 64, 2, 38, 0, 44, 0, 0, 1, 7, 1, 78,255, 15, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, 1, 2, 22, 12, 1, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,222, 0, 0, 2, 56, 5,238, 2, 38, 0,243, 0, 0, 1, 7, 1, 78,254,189, 0, 0, - 0, 19, 64, 11, 1, 9, 17, 38, 1, 2, 14, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 66, 2,100, 5,182, - 2, 38, 0, 44, 0, 0, 1, 7, 1, 81, 0,156, 0, 0, 0, 11,182, 1, 0, 25, 18, 1, 0, 37, 1, 43, 53, 0,255,255, 0, 68, -254, 66, 1,131, 5,229, 2, 38, 0, 76, 0, 0, 1, 6, 1, 81, 37, 0, 0, 16, 64, 10, 2,111, 37, 1, 0, 37, 37, 0, 0, 37, - 1, 43, 93, 53,255,255, 0, 82, 0, 0, 2,100, 7, 55, 2, 38, 0, 44, 0, 0, 1, 7, 1, 79, 0, 80, 1, 82, 0, 19, 64, 11, - 1, 23, 5, 38, 1, 0, 12, 20, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 1,100, 4, 74, 0, 3, 0, 26, - 64, 14, 16, 5, 32, 5, 2, 0, 71, 1, 84, 4, 2, 15, 0, 21, 0, 63, 63, 1, 16,246,225, 93, 49, 48, 33, 35, 17, 51, 1,100, -182,182, 4, 74,255,255, 0, 82,254,123, 4, 41, 5,182, 0, 38, 0, 44, 0, 0, 1, 7, 0, 45, 2,182, 0, 0, 0, 56, 64, 14, - 1, 24,127, 24, 1, 79, 24, 1, 24, 64, 7, 7, 72, 24,184,255,192, 64, 23, 6, 6, 72,191, 33, 1,160, 33, 1,143, 33, 1, 80, - 33, 1, 15, 33, 1, 33, 64, 7, 7, 72, 43, 93, 93, 93, 93, 93, 43, 43, 93, 93, 17, 53,255,255, 0,160,254, 20, 3,135, 5,229, - 0, 38, 0, 76, 0, 0, 1, 7, 0, 77, 2, 18, 0, 0, 0, 46, 64, 32, 3, 2, 30,207, 30, 1,223, 53, 1,159, 53, 1,128, 53, - 1, 95, 53, 1, 64, 53, 1, 32, 53, 1, 0, 53, 1, 53, 64, 6, 6, 72, 43, 93, 93, 93, 93, 93, 93, 93, 93, 17, 53, 53,255,255, -255, 72,254,123, 2,100, 7,115, 2, 38, 0, 45, 0, 0, 1, 7, 1, 75,254,202, 1, 82, 0, 19, 64, 11, 1, 20, 5, 38, 1, 0, - 28, 20, 13, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,188,254, 20, 2, 87, 6, 33, 2, 38, 2, 55, 0, 0, 1, 7, 1, 75, -254,189, 0, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 0, 28, 20, 13, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 59, - 4,162, 5,182, 2, 38, 0, 46, 0, 0, 1, 6, 2, 57,115, 0, 0, 14,185, 0, 1,255,177,180, 13, 19, 5, 0, 37, 1, 43, 53, -255,255, 0,174,254, 59, 3,240, 6, 20, 2, 38, 0, 78, 0, 0, 1, 6, 2, 57, 33, 0, 0, 14,185, 0, 1,255,196,180, 15, 21, - 10, 5, 37, 1, 43, 53, 0, 1, 0,174, 0, 0, 3,240, 4, 74, 0, 17, 0, 73, 64, 10, 1, 16, 16, 14, 15, 15, 68, 17, 1, 17, -184,255,192, 64, 28, 7, 10, 72, 17, 16, 17, 17, 19, 15, 19, 47, 19, 2, 7, 7, 3, 71, 4, 84, 18, 12, 1, 14, 5, 15, 4, 0, - 21, 0, 63, 50, 63, 51, 57, 57, 1, 16,246,225, 50, 94, 93, 17, 51, 47, 56, 43, 93, 51, 17, 51, 57, 17, 51, 49, 48, 33, 1, 7, - 17, 35, 17, 51, 17, 20, 6, 7, 6, 7, 55, 1, 51, 1, 1, 3, 35,254,172,109,180,180, 5, 3, 4, 4,131, 1, 51,205,254,111, - 1,172, 1,233, 81,254,104, 4, 74,254,231, 60,102, 38, 44, 36,176, 1,129,254, 22,253,160, 0,255,255, 0,199, 0, 0, 3,190, - 7,115, 2, 38, 0, 47, 0, 0, 1, 7, 0,118,255,101, 1, 82, 0, 21,180, 1, 18, 5, 38, 1,184,255,112,180, 6, 12, 0, 4, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,171, 0, 0, 2, 52, 7,172, 2, 38, 0, 79, 0, 0, 1, 7, 0,118,255, 34, 1,139, - 0, 31, 64, 20,112, 3, 1,112, 2, 1, 1,112, 16, 1, 16, 2, 38, 1,102, 4, 10, 1, 0, 37, 1, 43, 53, 0, 43, 93, 53, 93, - 93, 0,255,255, 0,199,254, 59, 3,190, 5,182, 2, 38, 0, 47, 0, 0, 1, 6, 2, 57, 45, 0, 0, 14,185, 0, 1,255,221,180, - 6, 12, 0, 4, 37, 1, 43, 53,255,255, 0,102,254, 59, 1,108, 6, 20, 2, 38, 0, 79, 0, 0, 1, 7, 2, 57,254,247, 0, 0, - 0, 14,185, 0, 1,255,224,180, 4, 10, 1, 0, 37, 1, 43, 53,255,255, 0,199, 0, 0, 3,190, 5,183, 2, 38, 0, 47, 0, 0, - 1, 7, 2, 56, 1, 0,255,163, 0, 22, 64, 13, 1, 11, 3, 1, 16, 6, 1, 96, 6, 12, 2, 4, 37, 1, 43, 93, 53, 0, 63, 53, -255,255, 0,174, 0, 0, 2,180, 6, 20, 2, 38, 0, 79, 0, 0, 1, 6, 2, 56, 59, 0, 0, 24, 64, 17, 1, 4, 64, 14, 16, 72, - 4, 64, 6, 9, 72, 94, 4, 4, 3, 3, 37, 1, 43, 43, 43, 53,255,255, 0,199, 0, 0, 3,190, 5,182, 2, 38, 0, 47, 0, 0, - 1, 7, 1, 79, 1,227,253,101, 0, 11,182, 1,171, 6, 14, 0, 4, 37, 1, 43, 53, 0,255,255, 0,174, 0, 0, 2,162, 6, 20, - 0, 38, 0, 79, 0, 0, 1, 7, 1, 79, 1, 45,253, 56, 0, 43, 64, 22,255, 19, 1,239, 19, 1,159, 19, 1,143, 19, 1,127, 19, - 1, 95, 19, 1, 31, 19, 1, 1,184, 1, 46,180, 4, 12, 1, 0, 37, 1, 43, 53, 93, 93, 93, 93, 93, 93, 93, 0, 0, 1, 0, 29, - 0, 0, 3,190, 5,182, 0, 13, 0, 97, 64, 50, 11, 6, 5, 12, 5, 0, 3, 4, 13, 4, 4, 5, 5, 10, 8, 8, 15,175, 15, 1, - 16, 15, 1, 12, 13, 13, 6, 3, 7, 90, 11, 0, 10,100, 14, 5, 4, 13, 12, 4, 12, 4, 12, 1, 7, 95, 10, 18, 1, 3, 0, 63, - 63,225, 18, 57, 57, 47, 47, 17, 51, 17, 51, 1, 16,246, 50, 50,225, 50, 50, 51, 47, 51, 93, 93, 17, 51, 17, 18, 57, 47, 51, 16, -125,135, 4,196,196, 16,135,196,196, 49, 48, 19, 17, 51, 17, 55, 23, 5, 17, 33, 21, 33, 17, 7, 39,199,186,227, 78,254,207, 2, - 61,253, 9, 97, 73, 2,164, 3, 18,253, 99,143,125,190,254, 57,166, 1,248, 60,125, 0, 0, 1,255,246, 0, 0, 2, 29, 6, 20, - 0, 11, 0,105, 64, 59, 64, 13, 80, 13, 2, 9, 6, 5, 10, 5, 0, 3, 4, 11, 10, 11, 11, 8, 4,221, 5, 1,187, 5,203, 5, - 2, 15, 5, 31, 5, 47, 5, 3, 6, 5, 5, 6, 3, 7, 71, 9, 0, 8, 84, 12, 11, 10, 5, 4, 10, 4, 10, 4, 1, 7, 21, 1, - 0, 0, 63, 63, 18, 57, 57, 47, 47, 17, 51, 17, 51, 1, 16,246, 50, 50,225, 50, 50, 50, 47, 94, 93, 93, 93, 51, 17, 51, 47, 51, -125,135, 4,196,196, 16,135,196,196, 1, 93, 49, 48, 19, 17, 51, 17, 55, 23, 7, 17, 35, 17, 7, 39,174,182,107, 78,185,182,106, - 78, 2,246, 3, 30,253, 89, 69,121,120,253, 63, 2, 74, 70,121,255,255, 0,199, 0, 0, 5, 14, 7,115, 2, 38, 0, 49, 0, 0, - 1, 7, 0,118, 0,242, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 85, 24, 30, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,174, 0, 0, 4, 18, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 0,118,111, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 92, 25, 31, - 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199,254, 59, 5, 14, 5,182, 2, 38, 0, 49, 0, 0, 1, 7, 2, 57, 0,217, - 0, 0, 0, 14,185, 0, 1,255,225,180, 24, 30, 10, 0, 37, 1, 43, 53,255,255, 0,174,254, 59, 4, 18, 4, 94, 2, 38, 0, 81, - 0, 0, 1, 6, 2, 57, 76, 0, 0, 14,185, 0, 1,255,222,180, 25, 31, 11, 23, 37, 1, 43, 53,255,255, 0,199, 0, 0, 5, 14, - 7,115, 2, 38, 0, 49, 0, 0, 1, 7, 1, 76, 0,156, 1, 82, 0, 19, 64, 11, 1, 29, 5, 38, 1, 0, 35, 24, 10, 0, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 18, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 1, 76, 12, 0, 0, 21,180, 1, - 30, 17, 38, 1,184,255,250,180, 36, 25, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,255, 0, 0, 4,161, 5,182, 0, 39, - 0, 81, 0,143, 0, 0, 1, 6, 2, 7,232, 0, 0, 41, 64, 29, 0, 24, 85, 39,239, 39, 1,191, 39, 1,159, 39, 1, 95, 39, 1, - 47, 39, 1, 39, 64, 8, 8, 72, 39, 64, 6, 6, 72, 43, 43, 93, 93, 93, 93, 93, 16,246, 52, 0, 0, 1, 0,199,254,123, 5, 14, - 5,182, 0, 37, 0, 74, 64, 42, 24, 12, 31, 90, 32, 4, 4, 21, 32,101, 39,176, 39, 1,143, 39, 1, 0, 39, 16, 39, 2, 23, 19, - 14, 20, 90, 21,100, 38, 31, 13, 22, 3, 21, 18, 24, 12, 18, 7, 95, 0, 0, 47,225, 63, 51, 63, 63, 51, 51, 1, 16,246,225, 50, - 50, 50, 93, 93, 93, 16,230, 17, 57, 47, 16,225, 50, 50, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 1, 35, 22, 23, - 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 38, 38, 53, 17, 51, 17, 20, 14, 2, 3,139, 51, 77, 27, 34, 78, 45, 37, 75, 61, 38, -253, 8, 8, 6, 4, 4, 5,172,213, 2,204, 7, 3, 4, 3, 5,174, 55,100,143,254,123, 13, 11,160, 9, 11, 19, 50, 88, 68, 4, -186, 77, 76, 65,142, 57,252,231, 5,182,251,117, 65, 65, 56,125, 52, 3, 32,250, 94,105,154,101, 49, 0, 0, 1, 0,174,254, 20, - 4, 18, 4, 94, 0, 40, 0, 58, 64, 34, 3, 3, 23, 12, 71, 36, 85, 42, 16, 42, 96, 42,128, 42, 3, 26, 22, 71, 23, 84, 41, 26, - 16, 80, 32, 16, 24, 15, 23, 21, 7, 80, 0, 27, 0, 63,225, 63, 63, 63,225, 51, 1, 16,246,225, 50, 93, 16,246,225, 17, 57, 47, - 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 19, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, - 22, 21, 3, 20, 14, 2, 2,238, 48, 63, 23, 26, 54, 35, 27, 46, 35, 19, 2,105,112, 81,110, 67, 29,182,148, 26, 10, 25, 69, 82, - 92, 48,183,185, 2, 34, 72,109,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 3,109,130,130, 52,102,148, 96,253,199, 4, 74,148, - 43, 63, 42, 20,191,210,252,149, 77,123, 87, 47,255,255, 0,125,255,236, 5,113, 6,193, 2, 38, 0, 50, 0, 0, 1, 7, 1, 77, - 0,188, 1, 82, 0, 19, 64, 11, 2, 42, 5, 38, 2, 0, 40, 41, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, - 4, 45, 5,111, 2, 38, 0, 82, 0, 0, 1, 6, 1, 77, 20, 0, 0, 19, 64, 11, 2, 34, 17, 38, 2, 0, 32, 33, 10, 0, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7, 64, 2, 38, 0, 50, 0, 0, 1, 7, 1, 78, 0,170, 1, 82, 0, 19, - 64, 11, 2, 45, 5, 38, 2, 1, 50, 40, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 5,238, 2, 38, - 0, 82, 0, 0, 1, 6, 1, 78, 0, 0, 0, 21,180, 2, 37, 17, 38, 2,184,255,255,180, 42, 32, 10, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,125,255,236, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 83, 0,236, 1, 82, 0, 23, 64, 13, 3, 2, - 52, 5, 38, 3, 2, 67, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, - 0, 82, 0, 0, 1, 6, 1, 83, 70, 0, 0, 23, 64, 13, 3, 2, 44, 17, 38, 3, 2, 69, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0, 0, 2, 0,125,255,236, 6,164, 5,205, 0, 25, 0, 42, 0, 91, 64, 54, 20, 22, 1, 22, 22, 0, 20, 24, 90, 39, - 39, 9, 18, 0,103, 44, 31, 44, 1, 31, 91, 9,102, 43, 23, 95, 79, 20, 1, 15, 20,175, 20, 2, 8, 20, 20, 25, 18, 95, 17, 3, - 26, 95, 14, 4, 36, 95, 4, 19, 25, 95, 0, 18, 0, 63,225, 63,225, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, - 93, 16,230, 50, 17, 57, 47,225, 50, 17, 57, 47, 93, 49, 48, 33, 33, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 23, - 33, 21, 33, 17, 33, 21, 33, 17, 33, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, 17, 38, 38, 6,164,253, 10, 43, 91, 48,163, -239,157, 76, 76,158,240,163, 98, 84, 2,244,253,194, 2, 23,253,233, 2, 62,252, 86,114,166,108, 52, 52,107,165,114, 52, 90, 38, - 38, 89, 9, 11,108,198, 1, 23,170,170, 1, 21,196,107, 23,164,254, 60,162,253,248, 4,133, 81,151,218,138,137,219,153, 81, 18, - 15, 4, 88, 16, 17, 0, 0, 3, 0,113,255,236, 6,225, 4, 94, 0, 42, 0, 54, 0, 63, 0,100, 64, 59, 19, 3, 63, 29, 72,208, - 49, 1, 49, 49, 11, 55, 72, 37, 28, 87, 65, 15, 65, 1,255, 65, 1, 64, 65, 1, 43, 72, 11, 86, 64, 29, 80, 27, 63, 43, 63, 2, - 15, 63, 1, 6, 63, 63, 46, 60, 52, 80, 22, 19, 16, 16, 32, 46, 80, 3, 0, 6, 22, 0, 63, 51, 51,225, 50, 63, 51, 51,225, 50, - 18, 57, 47, 94, 93, 93,225, 1, 16,246,225, 93, 93,113, 16,246, 50,225, 17, 57, 47, 93,225, 50, 57, 57, 49, 48, 5, 34, 38, 39, - 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, - 3, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 52, 46, 2, 35, 34, 6, 7, 5, 96,130,204, 65, 63,198,128,103,174,127, - 71, 67,124,179,111,121,195, 63, 60,185,117, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87,251,154,137, -154,150,139,140,151,154,135, 4,240, 27, 57, 88, 62,114,133, 11, 20,112,109,109,112, 76,145,213,137,136,211,145, 75,111,106,105, -112, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, 8, 2, 59,209,211,201,209,220,206,207, 98, 68,113, 80, 44,156, -149, 0,255,255, 0,199, 0, 0, 4,160, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 0,118, 0, 84, 1, 82, 0, 21,180, 2, 41, 5, - 38, 2,184,255,238,180, 29, 35, 2, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 3, 8, 6, 33, 2, 38, 0, 85, - 0, 0, 1, 6, 0,118,206, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 64, 23, 29, 14, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,199,254, 59, 4,160, 5,182, 2, 38, 0, 53, 0, 0, 1, 6, 2, 57,119, 0, 0, 14,185, 0, 2,255,182,180, 29, 35, 2, 13, - 37, 1, 43, 53,255,255, 0, 96,254, 59, 3, 8, 4, 94, 2, 38, 0, 85, 0, 0, 1, 7, 2, 57,254,241, 0, 0, 0, 14,185, 0, - 1,255, 8,180, 23, 29, 14, 3, 37, 1, 43, 53,255,255, 0,199, 0, 0, 4,160, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 1, 76, - 0, 14, 1, 82, 0, 21,180, 2, 34, 5, 38, 2,184,255,169,180, 40, 29, 2, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,114, - 0, 0, 3, 10, 6, 33, 2, 38, 0, 85, 0, 0, 1, 7, 1, 76,255,112, 0, 0, 0, 21,180, 1, 28, 17, 38, 1,184,255,227,180, - 34, 23, 14, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 0,118, - 0, 59, 1, 82, 0, 19, 64, 11, 1, 64, 5, 38, 1,112, 52, 58, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, - 3, 63, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 0,118,220, 0, 0, 19, 64, 11, 1, 66, 17, 38, 1, 93, 54, 60, 8, 0, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 1, 75,255,237, 1, 82, 0, 19, - 64, 11, 1, 52, 5, 38, 1, 34, 60, 52, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, 3, 63, 6, 33, 2, 38, - 0, 86, 0, 0, 1, 6, 1, 75,155, 0, 0, 19, 64, 11, 1, 54, 17, 38, 1, 28, 62, 54, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,104,254, 20, 3,201, 5,203, 2, 38, 0, 54, 0, 0, 1, 7, 0,122, 1, 53, 0, 0, 0, 14,185, 0, 1,255,250,180, - 58, 52, 8, 0, 37, 1, 43, 53,255,255, 0, 90,254, 20, 3, 63, 4, 94, 2, 38, 0, 86, 0, 0, 1, 7, 0,122, 0,240, 0, 0, - 0, 11,182, 1, 1, 60, 54, 8, 0, 37, 1, 43, 53, 0,255,255, 0,104,255,236, 3,201, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, - 1, 76,255,230, 1, 82, 0, 19, 64, 11, 1, 57, 5, 38, 1, 27, 63, 52, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90, -255,236, 3, 63, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 76,151, 0, 0, 19, 64, 11, 1, 59, 17, 38, 1, 24, 65, 54, 8, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20,254, 59, 4, 18, 5,182, 2, 38, 0, 55, 0, 0, 1, 6, 2, 57,249, 0, 0, 14, -185, 0, 1,255,216,180, 8, 14, 3, 5, 37, 1, 43, 53,255,255, 0, 33,254, 59, 2,143, 5, 70, 2, 38, 0, 87, 0, 0, 1, 7, - 2, 57,255, 93, 0, 0, 0, 14,185, 0, 1,255,247,180, 30, 36, 18, 5, 37, 1, 43, 53,255,255, 0, 20, 0, 0, 4, 18, 7,115, - 2, 38, 0, 55, 0, 0, 1, 7, 1, 76,255,200, 1, 82, 0, 19, 64, 11, 1, 13, 5, 38, 1, 3, 19, 8, 3, 5, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 33,255,236, 2,232, 6, 20, 2, 38, 0, 87, 0, 0, 1, 6, 2, 56,111, 0, 0, 11,182, 1, 97, 36, - 36, 24, 24, 37, 1, 43, 53, 0, 0, 1, 0, 20, 0, 0, 4, 18, 5,182, 0, 15, 0,115, 64, 76, 31, 17, 1,224, 17, 1, 95, 17, -223, 17, 2, 32, 17, 48, 17, 64, 17, 3, 8,191, 5,255, 5, 2, 5, 5, 10, 6, 90, 1, 15, 1, 80, 2,240, 2, 2, 31, 2, 1, - 2, 2, 13,119, 1,135, 1,151, 1, 3, 49, 1, 1, 0, 1, 16, 1, 32, 1, 3, 7, 1, 10, 13, 96, 7, 0, 0, 3, 11, 18, 6, - 2, 95, 3, 3, 0, 63,225, 50, 63, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 93, 93, 51, 51, 47, 93, 93, 18, 57, 16,225, 50, 50, - 47, 93, 57, 93, 93, 93,113, 49, 48, 1, 17, 33, 53, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 1,182,254, 94, 3,254,254, - 95, 1, 39,254,217,187,254,215, 3, 51, 1,223,164,164,254, 33,149,253, 98, 2,158,149, 0, 1, 0, 33,255,236, 2,143, 5, 70, - 0, 37, 0,106,182, 20, 31, 1, 32, 28, 28, 5,184,255,192, 64, 55, 8, 11, 72, 5, 5, 39, 47, 39, 63, 39, 2, 31, 27, 35, 71, - 19, 15, 22, 31, 22, 2, 22, 24, 20, 0, 16, 16, 16,160, 16,176, 16,192, 16, 5, 7, 16, 17, 34, 79, 20, 31, 31, 11, 21, 30, 79, - 26, 24, 27, 15, 0, 80, 11, 22, 0, 63,225, 63, 51, 51,225, 50, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 51, 51,196, 93, 50,225, - 50, 50, 93, 17, 51, 47, 43, 51, 17, 51, 0, 93, 49, 48, 37, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 53, 35, 53, 51, 53, - 35, 53, 55, 55, 51, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 22, 1,250, 18, 45, 42, 35, 9, 13, 40, 48, 52, 25, 62,106, 77, 44, -139,139,155,155, 78,105, 1, 20,254,236, 1, 2,254,254, 63,129, 4, 6, 8, 3,138, 6, 12, 9, 5, 32, 78,133,101,251,138,248, - 81, 78,230,252,137,248,138,251, 97, 98,255,255, 0,184,255,236, 4,221, 7, 53, 2, 38, 0, 56, 0, 0, 1, 7, 1, 82, 0, 96, - 1, 82, 0, 21,180, 1, 32, 5, 38, 1,184,255,255,180, 33, 47, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, - 4, 8, 5,227, 2, 38, 0, 88, 0, 0, 1, 6, 1, 82,243, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 6, 36, 50, 12, 25, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 6,193, 2, 38, 0, 56, 0, 0, 1, 7, 1, 77, 0,143, 1, 82, 0, 21, -180, 1, 26, 5, 38, 1,184,255,255,180, 24, 25, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 5,111, - 2, 38, 0, 88, 0, 0, 1, 6, 1, 77, 33, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 5, 27, 28, 12, 25, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,184,255,236, 4,221, 7, 64, 2, 38, 0, 56, 0, 0, 1, 7, 1, 78, 0,125, 1, 82, 0, 19, 64, 11, 1, 29, - 5, 38, 1, 0, 34, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 8, 5,238, 2, 38, 0, 88, 0, 0, - 1, 6, 1, 78, 12, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1, 4, 37, 27, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184, -255,236, 4,221, 7,217, 2, 38, 0, 56, 0, 0, 1, 7, 1, 80, 0,123, 1, 82, 0, 23, 64, 13, 2, 1, 29, 5, 38, 2, 1, 0, - 34, 24, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 8, 6,135, 2, 38, 0, 88, 0, 0, 1, 6, - 1, 80, 12, 0, 0, 23, 64, 13, 2, 1, 32, 17, 38, 2, 1, 5, 37, 27, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0,184,255,236, 4,221, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 83, 0,178, 1, 82, 0, 23, 64, 13, 2, 1, 36, 5, 38, 2, - 1, 54, 24, 44, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 14, 6, 33, 2, 38, 0, 88, 0, 0, - 1, 6, 1, 83, 80, 0, 0, 23, 64, 13, 2, 1, 39, 17, 38, 2, 1, 72, 27, 47, 12, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,184,254, 66, 4,221, 5,184, 2, 38, 0, 56, 0, 0, 1, 7, 1, 81, 2, 25, 0, 0, 0, 11,182, 1, 13, 37, 30, 11, - 0, 37, 1, 43, 53, 0,255,255, 0,164,254, 66, 4, 22, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 1, 81, 2,184, 0, 0, 0, 11, -182, 1, 14, 33, 33, 26, 26, 37, 1, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 1, 75, - 1, 59, 1, 82, 0, 19, 64, 11, 1, 43, 5, 38, 1, 0, 51, 43, 30, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, - 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 7, 1, 75, 0,174, 0, 0, 0, 19, 64, 11, 1, 48, 17, 38, 1, 0, 56, 48, 17, 46, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 1, 75,255,208, 1, 82, - 0, 19, 64, 11, 1, 9, 5, 38, 1, 2, 17, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, - 2, 38, 0, 92, 0, 0, 1, 6, 1, 75,169, 0, 0, 19, 64, 11, 1, 35, 17, 38, 1, 2, 43, 35, 0, 15, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106,255,206, 1, 82, 0, 23, 64, 13, 2, 1, - 18, 5, 38, 2, 1, 1, 9, 29, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7,115, 2, 38, - 0, 61, 0, 0, 1, 7, 0,118, 0, 57, 1, 82, 0, 19, 64, 11, 1, 22, 5, 38, 1, 94, 10, 16, 1, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0, 82, 0, 0, 3, 53, 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 0,118,214, 0, 0, 19, 64, 11, 1, 22, 17, 38, - 1, 96, 10, 16, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7, 55, 2, 38, 0, 61, 0, 0, 1, 7, - 1, 79, 1, 41, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 11, 10, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, - 0, 0, 3, 53, 5,229, 2, 38, 0, 93, 0, 0, 1, 7, 1, 79, 0,205, 0, 0, 0, 19, 64, 11, 1, 21, 17, 38, 1, 20, 10, 18, - 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3,254, 7,115, 2, 38, 0, 61, 0, 0, 1, 7, 1, 76,255,224, - 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 6, 21, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82, 0, 0, 3, 53, - 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 1, 76,134, 0, 0, 19, 64, 11, 1, 15, 17, 38, 1, 16, 21, 10, 1, 0, 37, 1, 43, 53, - 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 2,190, 6, 31, 0, 19, 0, 37, 64, 21, 9, 9, 21, 0, 21, 16, 21, 32, 21, 3, 19, 71, - 0, 84, 20, 13, 80, 6, 1, 0, 21, 0, 63, 63,225, 1, 16,246,225, 93, 17, 51, 47, 49, 48, 51, 17, 52, 62, 2, 51, 50, 22, 23, - 7, 38, 38, 35, 34, 14, 2, 21, 17,174, 45, 85,124, 78, 59, 99, 38, 47, 31, 72, 40, 40, 58, 39, 19, 4,176,107,141, 84, 35, 23, - 14,141, 11, 17, 19, 48, 83, 65,251, 78, 0, 1, 0,203,254, 20, 3,233, 5,203, 0, 43, 0, 74, 64, 42, 48, 45, 1, 41, 31, 31, - 1, 71, 18, 22, 18, 20, 20, 18, 10, 10, 0, 18, 16, 18, 48, 18, 64, 18, 4, 7, 18, 19, 0, 96, 22, 41, 41, 13, 35, 80, 28, 7, - 13, 80, 6, 27, 0, 63,225, 63,225, 18, 57, 47, 51,225, 50, 1, 47, 94, 93, 51, 47, 17, 51, 47, 17, 51, 16,225, 50, 47, 50, 93, - 49, 48, 1, 17, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 7, - 38, 38, 35, 34, 14, 2, 21, 21, 51, 21, 2,143, 45, 85,123, 78, 32, 61, 28, 26, 57, 31, 40, 59, 38, 19,194,194, 45, 85,124, 78, - 59, 99, 38, 47, 31, 72, 40, 40, 58, 39, 19,246, 3, 68,252, 63,107,141, 84, 35, 9, 6,153, 8, 10, 19, 48, 83, 65, 3,195, 75, - 68,137,107,141, 84, 35, 23, 14,141, 11, 17, 19, 48, 83, 65,145,137, 0, 0, 4, 0, 0, 0, 0, 4,221, 7,170, 0, 22, 0, 35, - 0, 49, 0, 62, 1, 1, 64, 94,137, 41, 1, 41,190, 42, 42, 48, 49, 49, 29, 56,131, 15, 13, 31, 13, 2, 16, 13, 32, 13, 2, 13, - 13, 86, 35,102, 35, 2, 35, 7, 8, 89, 23,105, 23, 2, 6, 23, 5, 29, 50,131, 15, 0, 31, 0,111, 0, 3, 0, 0,214, 10, 1, - 55, 10, 71, 10, 87, 10,199, 10, 4, 10,217, 3, 1, 56, 3, 72, 3, 88, 3,200, 3, 4, 3, 29, 29, 9, 5, 16, 4, 1,128, 4, -144, 4,208, 4, 3, 4,184,255,192, 64, 24, 6, 10, 72, 4, 16, 4, 4, 64, 15, 64, 31, 64, 47, 64,143, 64,159, 64,223, 64, 6, - 7, 8, 9,184,255,240, 64, 49, 9, 7, 95, 35, 29, 32, 10, 14, 72, 29, 10, 3, 60, 25, 53, 1, 53,140, 18, 16, 60, 1,143, 18, -239, 18, 2, 96, 18, 1, 16, 49, 32, 49, 2, 35, 60, 18, 49, 49, 18, 60, 35, 4, 4, 41, 9, 4, 18, 0, 63, 51, 47, 18, 23, 57, - 47, 47, 47, 47, 93, 93, 93, 93, 16,225, 93, 17, 51, 51, 51, 43, 16,225, 1, 47, 56, 51, 94, 93, 17, 51, 47, 56, 43, 93,113, 51, - 18, 57, 61, 47, 51, 93, 93, 51, 93, 93, 51, 24, 47, 93,225, 17, 18, 57, 57, 93, 18, 57, 57, 93, 51, 47, 93,113,225, 17, 51, 47, - 51, 51, 47,237, 93, 49, 48, 1, 20, 6, 7, 1, 35, 3, 33, 3, 35, 1, 38, 38, 53, 52, 62, 2, 51, 50, 30, 2, 3, 3, 46, 3, - 39, 14, 3, 7, 3, 19, 62, 3, 55, 51, 21, 14, 3, 7, 35, 19, 52, 38, 35, 34, 6, 21, 20, 22, 23, 51, 50, 54, 3, 80, 60, 51, - 1,252,190,154,253,211,156,188, 1,248, 51, 58, 32, 59, 82, 50, 49, 84, 62, 35, 12,148, 6, 17, 18, 18, 8, 7, 18, 18, 17, 6, -145,133, 21, 48, 47, 42, 16,219, 16, 63, 77, 81, 35,121,188, 63, 50, 49, 63, 51, 49, 12, 50, 63, 5,156, 70, 96, 25,251, 35, 1, -135,254,121, 4,219, 25, 96, 70, 51, 79, 56, 29, 29, 55, 79,252, 95, 1,125, 16, 46, 54, 59, 28, 28, 60, 54, 46, 15,254,131, 4, -139, 24, 61, 65, 64, 28, 16, 22, 65, 71, 66, 22,254,246, 52, 60, 60, 52, 51, 59, 3, 60, 0, 5, 0, 94,255,236, 3,156, 7,170, - 0, 13, 0, 49, 0, 64, 0, 84, 0, 96, 0,156, 64, 35, 85,131, 15, 65, 31, 65, 47, 65, 3, 65, 65, 91,131, 75, 6, 13, 75, 13, - 75, 13, 26, 30, 15, 55, 71, 49, 85, 98, 63, 98, 1, 62, 72, 26, 40,184,255,208, 64, 58, 13, 17, 72, 40, 16, 9, 12, 72, 40, 40, - 26, 86, 97, 88,140, 80, 80, 13, 96, 13,112, 13, 3, 13, 13, 80, 80, 5, 94,140, 64, 70, 80, 70, 2, 70, 70, 39, 36, 80, 43, 56, - 82, 30, 30, 43, 16, 50, 80, 15, 21, 22, 14, 21, 15, 5, 1, 5, 0, 47, 93, 63, 63, 51,225, 63, 57, 47,225, 16,225, 50, 51, 47, - 93,225, 17, 57, 47, 51, 47, 93, 16,225, 1, 16,230, 50, 47, 43, 43, 16,225, 93, 16,246,225, 50, 50, 17, 57, 57, 47, 47, 16,205, - 16,225, 51, 47, 93,225, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1, 39, 35, 14, 3, 35, 34, 46, 2, 53, 52, 54, 55, 55, - 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 17, 37, 50, 62, 2, 53, 53, 7, 14, 3, 21, 20, 22, 1, 20, 14, - 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,199, 21, 48, 47, 42, 16, -219, 16, 63, 77, 82, 35,120, 1, 82, 37, 8, 33, 66, 78, 96, 63, 69,116, 85, 48,231,236,184, 29, 55, 81, 52, 83,143, 66, 64, 74, -182,100,102,149, 97, 48,254, 47, 61,104, 76, 43,143, 90,122, 73, 32, 97, 1,134, 35, 61, 84, 49, 50, 82, 59, 33, 33, 59, 82, 50, - 48, 84, 62, 35,117, 63, 49, 50, 63, 57, 56, 49, 63, 6,184, 24, 61, 65, 64, 28, 16, 22, 65, 71, 66, 22,249, 92,152, 45, 65, 42, - 20, 39, 81,123, 84,164,176, 8, 7, 69, 67, 90, 55, 24, 48, 34,137, 40, 56, 41, 89,138, 98,253, 16,127, 38, 77,117, 79, 99, 7, - 4, 32, 57, 81, 51, 92, 86, 5, 8, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, -255,255,255,254, 0, 0, 6, 86, 7,115, 2, 38, 0,136, 0, 0, 1, 7, 0,118, 2, 37, 1, 82, 0, 21,180, 2, 32, 5, 38, 2, -184, 1, 72,180, 20, 26, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 6, 68, 6, 33, 2, 38, 0,168, 0, 0, - 1, 7, 0,118, 1,117, 0, 0, 0, 19, 64, 11, 3, 93, 17, 38, 3,113, 81, 87, 0, 28, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,125,255,180, 5,113, 7,115, 2, 38, 0,154, 0, 0, 1, 7, 0,118, 1, 2, 1, 82, 0, 19, 64, 11, 3, 62, 5, 38, 3, 88, - 50, 56, 17, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,180, 4, 47, 6, 33, 2, 38, 0,186, 0, 0, 1, 6, 0,118, - 80, 0, 0, 19, 64, 11, 3, 58, 17, 38, 3, 76, 46, 52, 13, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,104,254, 59, 3,201, - 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 2, 57, 0, 0, 0, 14,185, 0, 1,255,218,180, 52, 58, 8, 0, 37, 1, 43, 53,255,255, - 0, 90,254, 59, 3, 63, 4, 94, 2, 38, 0, 86, 0, 0, 1, 6, 2, 57,187, 0, 0, 14,185, 0, 1,255,225,180, 54, 60, 8, 0, - 37, 1, 43, 53, 0, 1, 1, 2, 4,217, 3,154, 6, 33, 0, 20, 0, 37, 64, 17, 15, 14, 4, 4, 0,192, 8, 4, 14,128, 0, 15, - 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 50, 1, 47, 26,204, 57, 61, 47, 51, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, 35, - 53, 62, 3, 55, 51, 30, 3, 23, 3,154,121, 51,108, 52, 54,106, 51,121, 26, 68, 67, 59, 16,192, 16, 59, 67, 69, 25, 4,217, 34, - 97, 55, 55, 97, 34, 27, 29, 76, 81, 81, 34, 34, 81, 81, 76, 29, 0, 1, 1, 2, 4,217, 3,154, 6, 33, 0, 20, 0, 37, 64, 17, - 6, 5, 16, 16, 0,192, 11, 19, 13,128, 16, 15, 6, 95, 6, 2, 6, 0, 47, 93, 51, 26,205, 50, 1, 47, 26,204, 57, 61, 47, 51, - 51, 49, 48, 1, 14, 3, 7, 35, 46, 3, 39, 53, 51, 22, 22, 23, 54, 54, 55, 51, 3,154, 25, 69, 67, 59, 16,192, 16, 59, 67, 68, - 26,121, 51,106, 54, 52,108, 51,121, 6, 6, 29, 76, 81, 80, 35, 35, 80, 81, 76, 29, 27, 34, 97, 56, 56, 97, 34, 0, 1, 1, 27, - 4,217, 3, 90, 5,111, 0, 3, 0, 21, 64, 10, 1, 0, 0,143, 15, 3, 95, 3, 2, 3, 0, 47, 93,225, 1, 47,205, 49, 48, 1, - 33, 21, 33, 1, 27, 2, 63,253,193, 5,111,150, 0, 1, 1, 33, 4,217, 3,123, 5,238, 0, 21, 0, 47, 64, 28, 21,131,255, 0, - 1, 0,192, 11,131, 10, 0,127, 10,143, 10,159, 10, 3, 10,128, 16,143, 15, 5, 95, 5, 2, 5, 0, 47, 93,225, 26,205, 93, 50, - 1, 47,225, 26,220, 93,225, 49, 48, 1, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,123, 4, 44, 77,109, 71, - 73,109, 73, 39, 3,108, 4, 28, 48, 67, 44, 36, 65, 51, 34, 4, 5,238, 61,101, 74, 41, 39, 73,102, 63, 43, 50, 25, 7, 9, 27, - 49, 40, 0, 1, 0,160, 5, 0, 1,117, 5,229, 0, 13, 0, 28, 64, 16, 8,135, 0, 3,145,159, 11,207, 11,239, 11, 3, 48, 11, - 1, 11, 0, 47, 93, 93,229, 1, 47,225, 49, 48, 19, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38,160, 61, 45, 22, 39, 29, 17, - 63, 44, 45, 61, 5,115, 60, 54, 13, 28, 43, 30, 58, 57, 56, 0, 0, 2, 1,109, 4,217, 3, 49, 6,135, 0, 19, 0, 31, 0, 64, - 64, 45, 20,131, 15, 0, 63, 0, 79, 0, 95, 0, 4, 0, 26,131, 48, 10, 1, 10, 23,140, 15, 15, 31, 15, 63, 15, 79, 15, 95, 15, -175, 15,255, 15, 7, 6, 15, 29,140, 15, 5, 95, 5, 2, 5, 0, 47, 93,225,212, 94, 93,225, 1, 47, 93,225,212, 93,225, 49, 48, - 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 3, 49, 35, 61, - 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 35,117, 63, 49, 50, 63, 57, 56, 49, 63, 5,178, 51, 81, 56, 29, 29, 56, 79, - 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 1, 0, 31,254, 66, 1, 94, 0, 0, 0, 20, 0, 22, 64, 9, - 6,128, 0,132, 13, 18, 3,142, 10, 0, 47,225, 47, 1, 47,225, 26,204, 49, 48, 23, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, - 38, 53, 52, 62, 2, 55, 51, 6,180, 52, 34, 25, 45, 14, 26, 64, 29,100,100, 30, 47, 56, 26,129,139,238, 45, 43, 5, 4,113, 8, - 8,104, 90, 42, 75, 64, 52, 19,133, 0, 0, 1, 1, 2, 4,217, 3,209, 5,227, 0, 27, 0, 56, 64, 35, 15, 23, 47, 23, 2, 23, - 0, 9, 32, 9, 2, 7, 9, 22, 5,143, 14, 64, 16, 19, 72, 14, 64, 7, 11, 72, 14, 14, 19,143, 9, 15, 0, 1, 0, 0, 47, 93, - 50,225, 51, 47, 43, 43,225, 51, 1, 47, 94, 93,204, 93, 49, 48, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, - 50, 54, 55, 51, 14, 3, 2,254, 40, 79, 76, 70, 32, 45, 48, 14,104, 5, 33, 53, 74, 46, 42, 81, 76, 69, 29, 45, 46, 15,105, 5, - 33, 53, 74, 4,219, 35, 43, 35, 53, 62, 60, 98, 69, 37, 35, 42, 35, 52, 62, 60, 97, 69, 38, 0, 0, 2, 0,223, 4,217, 3,190, - 6, 33, 0, 13, 0, 27, 0, 45, 64, 25, 20, 14, 14, 7, 64, 80, 0, 1, 63, 0, 79, 0, 2, 0, 19, 5,146,128, 27, 15, 12, 95, - 12, 2, 12, 0, 47, 93, 51, 26,237, 50, 1, 47, 93, 93, 26,205, 57, 47,205, 49, 48, 19, 62, 3, 55, 51, 21, 14, 3, 7, 35, 37, - 62, 3, 55, 51, 21, 14, 3, 7, 35,223, 22, 47, 47, 42, 16,199, 16, 63, 77, 81, 35,101, 1,107, 21, 48, 47, 42, 16,198, 16, 63, - 77, 81, 35,100, 4,244, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 27, 29, 76, 81, 81, 34, 21, 27, 81, 88, 83, 28, 0, 0, 1, - 1,248, 4,217, 3, 4, 6, 33, 0, 13, 0, 39, 64, 22, 5, 16, 12, 17, 72, 5, 6, 64, 12, 0, 0, 1, 0, 5,146,128, 15, 12, - 95, 12, 2, 12, 0, 47, 93, 26,237, 1, 47, 93, 51, 26,205, 50, 43, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,248, 10, - 20, 19, 16, 4,199, 6, 33, 45, 52, 24,108, 4,244, 30, 77, 81, 80, 33, 21, 24, 78, 87, 86, 32, 0, 3, 1, 20, 5, 12, 3,137, - 6,180, 0, 13, 0, 27, 0, 41, 0,102, 64, 25, 28,132, 15, 36, 31, 36, 2, 15, 36, 31, 36,207, 36, 3, 36, 64, 9, 12, 72, 36, - 36, 13, 22,132, 14,184,255,192, 64, 39, 9, 13, 72, 14, 14, 5, 16, 12, 17, 72, 5, 6, 12, 13, 5,146, 12, 12, 31, 17,145, 39, -255, 25, 1, 96, 25,176, 25,208, 25, 3, 15, 25, 31, 25, 2, 6, 25, 0, 47, 94, 93, 93, 93, 51,229, 50, 57, 47,237, 1, 47, 51, -205, 50, 43, 51, 47, 43,225, 17, 51, 47, 43, 93,113,225, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 39, 52, 54, 51, 50, 30, - 2, 21, 20, 6, 35, 34, 38, 37, 52, 54, 51, 50, 30, 2, 21, 20, 6, 35, 34, 38, 1,254, 11, 25, 24, 22, 8,207, 18, 48, 56, 61, - 32, 82,234, 56, 41, 19, 35, 26, 16, 58, 38, 41, 56, 1,181, 56, 40, 19, 35, 26, 16, 58, 38, 40, 56, 5,135, 30, 75, 79, 81, 36, - 20, 32, 77, 80, 81, 37, 6, 54, 48, 12, 25, 38, 27, 53, 50, 50, 53, 54, 48, 12, 25, 38, 27, 53, 50, 50,255,255,255,233, 0, 0, - 4,221, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 84,253,241,255,151, 0, 24,182, 2, 26, 3, 2, 48, 34, 1,184,255,233,180, - 34, 34, 4, 4, 37, 1, 43, 93, 53, 0, 63, 53, 0, 1, 0,147, 2, 72, 1,145, 3, 94, 0, 19, 0, 51, 64, 26, 16, 21,128, 21, -144, 21,160, 21, 4, 10,150,192, 0,208, 0, 2, 52, 0, 68, 0,100, 0,116, 0, 4, 0,184,255,192,182, 7, 10, 72, 0, 5,155, - 15, 0, 47,229, 1, 47, 43, 93, 93,237, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2,147, 20, 34, - 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2,211, 38, 53, 33, 15, 15, 33, 53, 38, 37, 52, 34, 16, 16, 34, 52, 0, -255,255,255,231, 0, 0, 4, 77, 5,184, 0, 39, 0, 40, 0,143, 0, 0, 1, 7, 1, 84,253,239,255,151, 0, 46,180, 1, 17, 3, - 1, 18,184,255,192,178, 8, 15, 72,184,255,157, 64, 15, 18, 18, 2, 2, 37, 0, 0,103, 27,191, 27, 1, 15, 27, 1, 1, 93, 93, - 16,254, 52, 1, 43, 43, 53, 0, 63, 53,255,255,255,231, 0, 0, 5, 80, 5,184, 0, 38, 0, 43,123, 0, 1, 7, 1, 84,253,239, -255,151, 0, 49,180, 1, 17, 3, 1, 18,184,255,192,178, 8, 17, 72,184,255,177, 64, 18, 18, 18, 6, 6, 37, 0, 0,101,111, 27, - 1, 47, 27, 1, 16, 27, 1, 27, 1, 16, 93, 93, 93,254, 52, 43, 43, 53, 0, 63, 53, 0,255,255,255,231, 0, 0, 3, 96, 5,184, - 0, 39, 0, 44, 0,252, 0, 0, 1, 7, 1, 84,253,239,255,151, 0,102, 64, 22, 1, 17, 3, 1,192, 18, 1,160, 18, 1, 48, 18, - 1, 32, 18, 1, 16, 18, 1, 0, 18, 1,184,255,165, 64, 47, 18, 18, 6, 6, 37, 0,240, 0, 1,208, 0, 1,192, 0, 1,175, 0, - 1,112, 0, 1, 96, 0, 1, 80, 0, 1, 64, 0, 1, 63, 0, 1, 0, 32, 27, 1, 27, 64, 7, 7, 72, 27, 64, 7, 9, 72, 1, 43, - 43, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 43, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53,255,255,255,231,255,236, 5,195, - 5,205, 0, 38, 0, 50, 82, 0, 1, 7, 1, 84,253,239,255,151, 0, 71, 64, 48, 2, 45, 3, 2,160, 46, 1,128, 46, 1,112, 46, - 1, 80, 46, 1, 32, 46, 1, 16, 46, 1, 0, 46, 1, 36, 46, 46, 10, 10, 37, 1, 0, 80, 0, 1, 80, 0, 1, 0,103,191, 55, 1, - 15, 55, 1, 55, 1, 16, 93, 93,254, 93, 93, 52, 52, 43, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,231, 0, 0, - 5, 84, 5,184, 0, 39, 0, 60, 1, 29, 0, 0, 1, 7, 1, 84,253,239,255,151, 0, 75,180, 1, 14, 3, 1, 15,184,255,192,182, - 22, 23, 72,160, 15, 1, 15,184,255,192,178, 9, 17, 72,184,255,214, 64, 28, 15, 15, 7, 7, 37, 0,192, 5, 1,176, 5, 1,127, - 5, 1, 32, 5, 1, 5, 63, 24, 1, 47, 24, 1, 15, 24, 1, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 43, 43, 93, 43, 53, 0, 63, - 53, 0,255,255,255,231, 0, 0, 6, 0, 5,205, 0, 38, 1,118, 90, 0, 1, 7, 1, 84,253,239,255,151, 0, 53, 64, 35, 1, 53, - 3, 1, 32, 54, 1, 16, 54, 1, 0, 54, 1, 22, 54, 54, 19, 19, 37, 0, 80, 29, 1, 80, 29, 1, 29,103,191, 63, 1, 15, 63, 1, - 63, 1, 16, 93, 93,254, 93, 93, 52, 43, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,228,255,236, 2,119, 6,180, 2, 38, 1,134, - 0, 0, 1, 7, 1, 85,254,208, 0, 0, 0, 24, 64, 15, 3, 2, 1,192, 36, 1, 64, 36, 1, 32, 36, 58, 21, 0, 37, 1, 43, 93, - 93, 53, 53, 53,255,255, 0, 0, 0, 0, 4,221, 5,188, 2, 6, 0, 36, 0, 0,255,255, 0,199, 0, 0, 4,135, 5,182, 2, 6, - 0, 37, 0, 0, 0, 1, 0,199, 0, 0, 3,190, 5,182, 0, 5, 0, 67, 64, 10,196, 0,244, 0, 2,176, 0, 1, 2, 0,184,255, -192, 64, 31, 8, 19, 72, 0, 0, 7, 15, 7, 47, 7, 79, 7,111, 7, 4, 7, 64, 17, 24, 72, 3, 90, 4,100, 6, 2, 95, 5, 3, - 3, 18, 0, 63, 63,225, 1, 16,246,225, 43, 93, 17, 51, 47, 43, 95, 93, 93, 49, 48, 1, 21, 33, 17, 35, 17, 3,190,253,195,186, - 5,182,166,250,240, 5,182, 0, 0, 2, 0, 37, 0, 0, 4,104, 5,182, 0, 5, 0, 14, 0, 88, 64, 17, 5, 4, 6, 6, 2, 11, - 91, 96, 1,112, 1,176, 1,240, 1, 4, 1,184,255,192, 64, 39, 6, 10, 72, 1, 1, 16, 47, 16, 95, 16,111, 16,127, 16,159, 16, -191, 16, 6, 16, 64, 6, 9, 72, 10, 91, 2, 6, 32, 10, 17, 72, 6, 4, 3, 10, 95, 2, 18, 0, 63,225, 63, 51, 43, 1, 47,225, - 43, 93, 17, 51, 47, 43, 93,225, 18, 57, 61, 47, 51, 51, 49, 48, 37, 21, 33, 53, 1, 51, 7, 6, 6, 7, 3, 33, 3, 38, 38, 4, -104,251,189, 1,194,187, 94, 17, 42, 29,254, 2,174,252, 31, 46,125,125,133, 5, 49,205, 74,168, 91,253, 10, 2,240, 97,168, 0, -255,255, 0,199, 0, 0, 3,190, 5,182, 2, 6, 0, 40, 0, 0,255,255, 0, 82, 0, 0, 3,254, 5,182, 2, 6, 0, 61, 0, 0, -255,255, 0,199, 0, 0, 4,213, 5,182, 2, 6, 0, 43, 0, 0, 0, 3, 0,125,255,236, 5,113, 5,205, 0, 3, 0, 23, 0, 43, - 0, 83, 64, 52, 0, 1, 0, 1, 14, 34, 91, 4,103, 45,208, 45, 1,207, 45, 1,128, 45, 1, 63, 45,111, 45, 2, 24, 91, 14,102, - 44, 3, 96, 15, 0,175, 0,223, 0,255, 0, 4, 8, 0, 0, 29, 39, 95, 19, 4, 29, 95, 9, 19, 0, 63,225, 63,225, 18, 57, 47, - 94, 93,225, 1, 16,246,225, 93, 93, 93, 93, 16,246,225, 18, 57, 57, 47, 47, 49, 48, 1, 33, 21, 33, 37, 20, 2, 6, 6, 35, 34, - 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 1,236, 2, - 22,253,234, 3,133, 81,160,237,155,163,239,157, 76, 76,158,240,163,155,235,160, 81,251,209, 52,107,165,114,114,165,107, 50, 50, -106,164,114,114,166,108, 52, 3, 57,161, 69,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137, -219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218,255,255, 0, 82, 0, 0, 2,100, 5,182, 2, 6, 0, 44, 0, 0,255,255, - 0,199, 0, 0, 4,162, 5,182, 2, 6, 0, 46, 0, 0, 0, 1, 0, 0, 0, 0, 4,139, 5,182, 0, 12, 0, 95, 64, 28, 47, 14, -239, 14,255, 14, 3, 14, 64, 18, 21, 72, 14, 64, 13, 16, 72, 14, 64, 6, 9, 72, 12, 11, 5, 5, 9, 10,184,255,240, 64, 34, 10, - 1, 47, 0, 79, 0, 95, 0,159, 0,175, 0,207, 0,239, 0, 7, 16, 0, 1, 0, 16, 0, 5, 32, 10, 14, 72, 5, 11, 3, 10, 0, - 18, 0, 63, 50, 63, 51, 43, 1, 47, 56, 93, 93, 50, 47, 56, 51, 57, 61, 47, 51, 51, 43, 43, 43, 93, 49, 48, 33, 35, 1, 38, 38, - 39, 6, 6, 7, 1, 35, 1, 51, 4,139,198,254,219, 31, 46, 15, 17, 42, 29,254,217,197, 1,231,187, 3,154, 97,168, 75, 75,168, - 91,252, 96, 5,182, 0,255,255, 0,199, 0, 0, 6, 47, 5,182, 2, 6, 0, 48, 0, 0,255,255, 0,199, 0, 0, 5, 14, 5,182, - 2, 6, 0, 49, 0, 0, 0, 3, 0, 82, 0, 0, 3,238, 5,182, 0, 3, 0, 7, 0, 11, 0, 99, 64, 62, 20, 0, 1, 27, 1, 1, - 0, 1, 0, 1, 11, 6, 6, 0, 8, 1,192, 8, 1, 63, 8, 1, 8, 13, 79, 13,111, 13, 2, 48, 13, 1, 7, 7,112, 11,128, 11, - 2, 79, 11, 1, 11, 3, 95, 15, 0,175, 0, 2, 8, 0, 0, 4, 11, 95, 10, 18, 7, 95, 4, 3, 0, 63,225, 63,225, 17, 57, 47, - 94, 93,225, 1, 47, 93, 93, 51, 47, 93, 93, 16,206, 93, 93,113, 50, 47, 17, 57, 57, 47, 47, 93, 93, 49, 48, 19, 33, 21, 33, 3, - 33, 21, 33, 1, 21, 33, 53,205, 2,166,253, 90, 82, 3, 74,252,182, 3,115,252,100, 3, 78,162, 3, 10,164,251,146,164,164, 0, -255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 0, 50, 0, 0, 0, 1, 0,199, 0, 0, 4,193, 5,182, 0, 7, 0, 49, 64, 30, - 1, 90, 0,101, 9,176, 9, 1,111, 9,159, 9,175, 9, 3, 16, 9, 1, 4, 90, 5,100, 8, 3, 95, 6, 3, 5, 0, 18, 0, 63, - 50, 63,225, 1, 16,246,225, 93, 93, 93, 16,246,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 4,193,187,253,123,186, 3,250, 5, - 18,250,238, 5,182, 0,255,255, 0,199, 0, 0, 4, 51, 5,182, 2, 6, 0, 51, 0, 0, 0, 1, 0, 78, 0, 0, 4, 18, 5,182, - 0, 11, 0, 90, 64, 13, 8, 91, 6, 32, 20, 23, 72, 2, 6, 2, 6, 1, 10,184,255,192, 64, 38, 6, 21, 72, 10, 10, 13, 15, 13, - 47, 13,111, 13,143, 13, 4, 6, 7, 9, 91, 3, 47, 1, 63, 1, 2, 1, 8, 2, 2, 9, 7, 95, 4, 3, 9, 95, 0, 18, 0, 63, -225, 63,225, 18, 57, 61, 47, 51, 1, 24, 47, 93, 51,225, 50, 94, 93, 17, 51, 47, 43, 18, 57, 57, 47, 47, 43,225, 49, 48, 51, 53, - 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 78, 1,158,254,110, 3,125,253, 88, 1,133,254,103, 2,247,152, 2,102, 2, 37,147,164, -253,238,253,164,164, 0,255,255, 0, 20, 0, 0, 4, 18, 5,182, 2, 6, 0, 55, 0, 0,255,255, 0, 0, 0, 0, 4, 55, 5,182, - 2, 6, 0, 60, 0, 0, 0, 3, 0,104,255,236, 5,186, 5,203, 0, 33, 0, 46, 0, 59, 0,129, 64, 80, 34, 2,103, 17, 1, 17, - 90, 59, 33,154, 18, 1,135, 18, 1,122, 18, 1, 18, 18, 27, 40, 91, 8,103, 61, 47, 61, 1, 0, 61, 1,208, 61, 1,175, 61,191, - 61, 2,144, 61, 1, 95, 61, 1, 48, 61, 1, 15, 61, 31, 61, 2, 6, 53, 91, 27,102, 60, 34, 59, 96, 19, 16, 19, 46, 47, 96, 33, - 2, 33, 19, 33, 19, 33, 17, 19, 0, 4, 0, 63, 63, 57, 57, 47, 47, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 16,246,225, 94, - 93, 93, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 93, 51, 51,225, 93, 50, 50, 49, 48, 1, 51, 21, 51, 50, 30, 2, - 21, 20, 14, 4, 35, 35, 21, 35, 53, 35, 34, 46, 4, 53, 52, 62, 2, 51, 51, 19, 51, 50, 62, 2, 53, 52, 46, 2, 43, 3, 34, 14, - 2, 21, 20, 30, 2, 51, 51, 2,180,187, 73,134,194,126, 60, 24, 52, 84,120,159,101, 47,187, 47,101,159,120, 84, 53, 24, 61,126, -194,133, 74,187, 26, 93,139, 91, 46, 41, 83,127, 87, 57,187, 57, 87,127, 84, 40, 46, 91,139, 93, 26, 5,203,180, 94,153,196,102, - 61,129,123,110, 82, 48,225,225, 48, 82,110,123,129, 61,102,196,153, 94,252, 83, 59,105,148, 88, 78,139,104, 60, 60,104,139, 78, - 88,148,105, 59,255,255, 0, 0, 0, 0, 4, 96, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0,104, 0, 0, 5,186, 5,182, 0, 37, - 0,112, 64, 71, 31,103, 9, 1, 9, 90, 28,154, 10, 1,135, 10, 1,122, 10, 1, 10, 10, 19, 35, 91, 0,103, 39, 47, 39, 1, 0, - 39, 1,208, 39, 1,175, 39,191, 39, 2,144, 39, 1, 95, 39, 1, 48, 39, 1, 15, 39, 31, 39, 2, 6, 22, 91, 19,102, 38, 31, 28, - 96, 8, 11, 11, 9, 36, 29, 20, 3, 9, 18, 0, 63, 63, 51, 51, 18, 57, 47, 51,225, 50, 1, 16,246,225, 94, 93, 93, 93, 93, 93, - 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 93, 51,225, 93, 50, 49, 48, 1, 20, 14, 4, 35, 35, 17, 35, 17, 35, 34, 46, 4, 53, - 17, 51, 17, 20, 30, 2, 51, 51, 17, 51, 17, 51, 50, 54, 53, 17, 51, 5,186, 24, 52, 84,120,159,101, 47,187, 47,101,159,120, 84, - 53, 24,193, 46, 91,139, 93, 26,187, 26,186,183,192, 3,215, 61,127,119,106, 78, 46,254, 66, 1,190, 45, 78,104,119,126, 61, 1, -227,254, 33, 88,141, 98, 52, 3, 90,252,166,198,177, 1,227, 0, 0, 1, 0, 78, 0, 0, 5,166, 5,205, 0, 47, 0,124, 64, 81, - 14, 91, 11, 34, 91, 37, 32, 11, 48, 11, 2, 4, 11, 1, 47, 37, 63, 37,223, 37,239, 37, 4, 11, 37, 1, 7, 11, 37, 11, 37, 19, - 43, 91, 6, 35, 22, 35, 2, 35, 29,103, 49,208, 49, 1,207, 49, 1,128, 49, 1, 63, 49,111, 49, 2, 9, 13, 25, 13, 2, 8, 13, - 5, 91, 19,102, 48, 0, 95, 24, 4, 38, 34, 10, 13, 95, 37, 12, 18, 0, 63, 51,225, 50, 50, 50, 63,225, 1, 16,246,225, 51, 94, - 93, 93, 93, 93, 93, 16,246, 50, 93,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 1, 34, 14, 2, 21, 20, - 30, 2, 23, 21, 33, 53, 33, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 33, 21, 33, 53, 62, 3, 53, 52, 46, 2, - 2,250,114,164,106, 50, 35, 81,131, 95,253,176, 1, 98, 64,111, 80, 46, 81,160,236,154,155,235,160, 81, 46, 80,110, 65, 1, 98, -253,176, 95,131, 81, 35, 50,106,164, 5, 41, 68,129,186,117,100,187,171,151, 65,147,164, 48,135,168,199,111,150,244,172, 94, 94, -172,244,150,111,199,168,135, 48,164,147, 65,151,171,187,100,117,186,129, 68, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, - 0, 44, 0, 0, 1, 7, 0,106,255, 13, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106,255,206, 1, 82, 0, 23, - 64, 13, 2, 1, 18, 5, 38, 2, 1, 1, 9, 29, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4,145, - 6, 33, 2, 38, 1,126, 0, 0, 1, 6, 1, 84, 25, 0, 0, 19, 64, 11, 2, 74, 17, 38, 2, 22, 62, 68, 22, 47, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 90,255,236, 3, 92, 6, 33, 2, 38, 1,130, 0, 0, 1, 6, 1, 84,202, 0, 0, 19, 64, 11, 1, 70, - 17, 38, 1,109, 58, 64, 24, 45, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174,254, 20, 4, 18, 6, 33, 2, 38, 1,132, 0, 0, - 1, 6, 1, 84, 68, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 98, 25, 31, 11, 23, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164, -255,236, 2,119, 6, 33, 2, 38, 1,134, 0, 0, 1, 7, 1, 84,254,206, 0, 0, 0, 21,180, 1, 34, 17, 38, 1,184,255,253,180, - 22, 34, 21, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 61, 6,180, 2, 38, 1,146, 0, 0, 1, 6, 1, 85, - 16, 0, 0, 18,178, 3, 2, 1,184,255,238,180, 44, 66, 5, 27, 37, 1, 43, 53, 53, 53, 0, 2, 0,113,255,236, 4,145, 4, 94, - 0, 16, 0, 61, 0, 56, 64, 30, 56, 30, 5, 71, 47, 40, 63, 16, 63, 1, 14, 72, 22, 86, 62, 34, 15, 30, 11, 80, 27, 15, 56, 47, - 44, 0, 80, 51, 17, 22, 0, 63, 51,225, 50, 50, 50, 63,225, 51, 63, 1, 16,246,225, 93, 16,212, 50,225, 50, 50, 49, 48, 37, 50, - 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 23, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 51, 54, 54, 55, 51, 14, 3, - 21, 17, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 35, 14, 3, 2, 53, 76,105, 65, 31, 2, 27, 65,108, 81,135,127, -127,102, 93,154,110, 60, 61,113,162,100,112,144, 49, 12, 10, 33, 25,143, 11, 19, 13, 8, 50, 34, 14, 37, 8, 15, 65, 34, 38, 63, - 50, 36, 12, 12, 22, 59, 77, 96,131, 47, 98,152,104, 15,101,157,107, 55,218,204,209,205,151, 72,143,212,140,141,213,144, 73, 83, - 85, 35, 82, 31, 33,104,121,126, 55,254, 93, 60, 51, 7, 3,133, 9, 17, 16, 39, 64, 48, 34, 61, 46, 26, 0, 2, 0,174,254, 20, - 4,117, 6, 31, 0, 27, 0, 61, 0, 89, 64, 52, 57, 72, 5, 8, 5, 31, 51, 47, 51, 2, 51, 5, 51, 5, 21, 44, 71, 12, 87, 63, - 32, 63, 48, 63, 2, 34, 21, 71, 22, 84, 62, 21, 27, 8, 50, 80, 15, 51, 1, 8, 51, 51, 0, 34, 39, 80, 17, 22, 28, 80, 0, 1, - 0, 63,225, 63,225, 50, 17, 57, 47, 94, 93,225, 57, 63, 1, 16,246,225, 50, 93, 16,246,225, 18, 57, 57, 47, 47, 93, 18, 57, 16, -225, 49, 48, 1, 50, 30, 2, 21, 20, 6, 7, 21, 22, 22, 21, 20, 14, 2, 35, 34, 38, 39, 17, 35, 17, 52, 62, 2, 23, 34, 14, 2, - 21, 17, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 2,119, 96,163,118, 67,152,143,176, -185, 63,120,173,109, 96,164, 60,182, 69,121,168, 99, 56,100, 75, 44, 32, 78, 82, 82, 36, 80,111, 70, 31, 53, 96,132, 79,102, 77, - 82,119, 78, 37, 38, 68, 95, 6, 31, 49, 98,148, 98,149,173, 23, 6, 21,202,186,108,162,109, 55, 32, 31,253,233, 6, 52,123,178, -115, 55,150, 31, 76,127, 96,252,146, 18, 30, 21, 11, 40, 77,111, 71, 80,117, 77, 37,152, 40, 73,102, 61, 63, 94, 62, 31, 0, 1, - 0, 10,254, 20, 3,223, 4, 74, 0, 27, 0, 99, 64, 22, 29, 64, 18, 21, 72, 80, 29, 1, 15, 29, 47, 29, 79, 29, 3, 7, 26, 5, - 1, 5, 72, 6,184,255,240, 64, 21, 6, 6, 11, 0, 19, 19, 12, 26, 0, 27, 32, 27, 64, 27, 3, 8, 27, 16, 27, 13, 12,184,255, -240, 64, 10, 12, 26, 12, 15, 19, 0, 11, 21, 5, 27, 0, 63, 63, 51, 51, 63, 51, 1, 47, 56, 51, 47, 56, 94, 93, 51, 18, 57, 61, - 47, 51, 51, 51, 24, 47, 56,225, 93, 94, 93, 93, 43, 49, 48, 37, 14, 3, 21, 35, 52, 62, 2, 55, 1, 51, 19, 30, 3, 23, 51, 62, - 3, 55, 19, 51, 2, 96, 22, 34, 24, 12,190, 15, 27, 37, 21,254, 96,189,217, 14, 30, 26, 20, 4, 6, 5, 20, 25, 27, 11,199,188, - 18, 62,136,134,126, 52, 42,121,137,141, 63, 4, 62,253,186, 40, 93, 90, 80, 27, 26, 82, 93, 90, 33, 2, 76, 0, 0, 2, 0,111, -255,236, 4, 45, 6, 31, 0, 50, 0, 68, 0, 81, 64, 46, 26, 70, 0, 56, 5, 5, 46, 51, 72, 15, 36, 87, 70, 64, 70,208, 70,224, - 70, 3, 15, 70, 1, 6, 61, 72, 46, 86, 69, 0, 36, 66, 26, 10, 56, 56, 10, 66, 80, 41, 22, 21, 80, 16, 10, 1, 0, 63, 51,225, - 63,225, 17, 57, 47, 18, 57, 18, 57, 51, 1, 16,246,225, 94, 93, 93, 16,246, 50,225, 17, 57, 47, 57, 57,225, 49, 48, 1, 46, 3, - 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 35, 34, 46, 2, 53, - 52, 62, 2, 1, 52, 46, 2, 39, 14, 3, 21, 20, 30, 2, 51, 50, 54, 2, 20, 56, 93, 67, 37, 51, 92,125, 74, 68,113, 96, 81, 35, - 74, 32, 73, 81, 91, 51, 42, 60, 39, 18, 27, 60, 98, 71, 85,134, 92, 49, 69,127,178,109,103,174,127, 71, 67,114,153, 1,180, 30, - 57, 82, 53, 58,126,104, 68, 38, 73,105, 67,142,153, 3,170, 32, 75, 86, 98, 57, 72,105, 70, 34, 20, 31, 39, 19,145, 20, 38, 30, - 18, 23, 37, 50, 27, 37, 62, 61, 65, 41, 49,108,126,147, 88,127,193,131, 67, 61,117,170,110,106,163,122, 83,254, 81, 69,111, 89, - 73, 31, 16, 58, 98,145,103, 66,111, 81, 45,180, 0, 1, 0, 90,255,236, 3, 92, 4, 94, 0, 57, 0, 89, 64, 55, 29, 35, 1, 1, - 24, 16, 45, 87, 59,160, 59,176, 59,192, 59, 3, 63, 59, 95, 59, 2, 16, 59, 1, 52, 70, 35, 35, 5, 71, 24, 86, 58, 30, 2, 80, -191, 57, 1,121, 57,137, 57, 2, 57, 57, 10, 49, 80, 40, 16, 10, 80, 19, 22, 0, 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, - 16,246,225, 51, 47,225, 93, 93, 93, 16,230, 50, 17, 57, 47, 18, 57, 49, 48, 1, 21, 35, 34, 6, 21, 20, 30, 2, 51, 50, 62, 2, - 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, 38, 38, 35, 34, 6, 21, - 20, 30, 2, 51, 2,156,129,138,133, 41, 70, 96, 55, 51, 92, 81, 71, 31, 59,158,109,113,166,108, 53, 38, 63, 82, 44, 43, 70, 51, - 28, 58,105,144, 86, 53, 90, 82, 77, 40, 63, 75,129, 71,108,115, 39, 72,100, 61, 2,135,153, 91, 94, 51, 69, 42, 18, 15, 24, 31, - 16,160, 34, 41, 49, 86,117, 67, 62, 88, 62, 41, 15, 11, 14, 43, 62, 80, 50, 70,109, 74, 38, 9, 19, 28, 20,147, 34, 38, 77, 77, - 45, 64, 39, 18, 0, 1, 0,113,254,111, 3,106, 6, 20, 0, 51, 0, 57, 64, 31, 46, 3, 3, 31, 70, 26, 32, 20, 1, 20, 53, 16, - 53,192, 53, 2, 10, 72, 41, 0, 0, 41, 86, 52, 25, 46, 3, 0, 80, 1, 0, 0, 63,225, 50, 50, 47, 1, 16,230, 50, 47, 16,225, - 93, 16,214, 93, 50,225, 51, 47, 51, 49, 48, 19, 53, 33, 21, 14, 5, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, - 53, 52, 46, 2, 39, 46, 3, 53, 52, 18, 54, 54, 55, 6, 7, 6, 6, 35,174, 2,182,128,184,126, 76, 40, 13, 45, 84,120, 75, 71, - 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77, 89,135, 92, 46, 92,154,201,108, 43, 47, 40, 96, 47, 5,123,153, -141,118,205,179,154,133,111, 48, 89,108, 64, 35, 17, 15, 46, 59, 72, 42, 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, - 15, 17, 66,108,152,102,148, 1, 1,232,217,108, 3, 3, 2, 4, 0, 1, 0,174,254, 20, 4, 18, 4, 94, 0, 24, 0, 49, 64, 29, - 0, 71, 24, 85, 26, 16, 26, 96, 26,128, 26, 3, 14, 10, 71, 11, 84, 25, 14, 4, 80, 20, 16, 12, 15, 11, 21, 0, 27, 0, 63, 63, - 63, 63,225, 51, 1, 16,246,225, 50, 93, 16,246,225, 49, 48, 1, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 62, 3, - 51, 50, 22, 21, 17, 3, 92,105,112, 81,110, 67, 29,182,148, 26, 10, 25, 69, 82, 92, 48,183,185,254, 20, 4,175,130,130, 52,102, -148, 96,253,199, 4, 74,148, 43, 63, 42, 20,191,210,251, 71, 0, 0, 3, 0,113,255,236, 4, 23, 6, 43, 0, 19, 0, 30, 0, 39, - 0, 91, 64, 58, 37, 25, 71, 0, 87, 41, 15, 41, 1,208, 41, 1,127, 41,159, 41, 2, 64, 41, 1, 15, 41, 1, 6, 36, 26, 71, 10, - 86, 40, 26, 80,203, 36, 1,186, 36, 1,137, 36,153, 36, 2, 15, 36, 1, 8, 36, 36, 20, 31, 80, 15, 1, 20, 80, 5, 22, 0, 63, -225, 63,225, 18, 57, 47, 94, 93, 93, 93, 93,225, 1, 16,246,225, 50, 94, 93, 93, 93, 93,113, 16,246,225, 50, 49, 48, 1, 20, 2, - 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 2, - 2, 4, 23, 52,112,179,126,118,175,116, 56, 51,111,177,126,118,176,117, 58,254, 43, 73,104, 69, 35, 3,253,203, 2, 33, 68,104, - 74, 71,102, 68, 35, 5, 2, 51, 9,132, 3, 12,188,254,215,206,109,109,206, 1, 41,188,188, 1, 41,206,108,107,205,254,215,252, -185, 74,148,223,149,147,223,149, 75, 5, 16, 69,137,205,137, 1, 17, 1, 19, 0, 0, 1, 0,164,255,236, 2,119, 4, 72, 0, 21, - 0, 53, 64, 35, 48, 9, 1, 9, 9, 23, 0, 23, 16, 23, 32, 23, 96, 23,112, 23,144, 23,192, 23,208, 23, 8, 8, 1, 71, 20, 84, - 22, 4, 80, 15, 22, 0, 15, 0, 63, 63,225, 1, 16,246,225, 94, 93, 17, 51, 47, 93, 49, 48, 1, 17, 20, 22, 51, 50, 62, 2, 55, - 21, 14, 3, 35, 34, 46, 2, 53, 17, 1, 90, 63, 72, 18, 45, 42, 36, 9, 13, 41, 48, 52, 24, 62,106, 77, 44, 4, 72,252,252, 97, - 98, 4, 6, 8, 3,138, 6, 12, 9, 5, 32, 78,133,101, 3, 4,255,255, 0,174, 0, 0, 3,240, 4, 74, 2, 6, 0,250, 0, 0, - 0, 1,255,242,255,236, 4, 23, 6, 33, 0, 46, 0,104, 64, 42, 34, 21, 21, 26, 18, 18, 1, 41, 10, 41, 10, 41, 0, 80, 26, 1, - 52, 26, 68, 26, 2, 0, 26, 16, 26, 32, 26, 3, 26, 26, 48, 96, 48,144, 48, 2, 15, 48, 1, 6, 46, 0,184,255,240, 64, 15, 0, - 46, 21, 41, 1, 1, 14, 23, 80, 30, 22, 7, 80, 14, 1, 0, 63,225, 63,225, 17, 57, 47, 51, 63, 1, 47, 56, 51, 94, 93, 93, 17, - 51, 47, 93, 93, 93, 18, 57, 57, 61, 47, 24, 47, 17, 51, 51, 17, 18, 57, 17, 51, 49, 48, 35, 1, 39, 46, 3, 35, 34, 6, 7, 53, - 54, 54, 51, 50, 30, 2, 23, 1, 22, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 3, 46, 3, 39, 35, 6, 6, 7, 3, 14, - 1,184, 53, 13, 31, 43, 61, 43, 34, 50, 20, 26, 66, 35, 74,105, 79, 63, 31, 1, 72, 18, 46, 38, 14, 38, 8, 23, 55, 37, 39, 59, - 47, 37, 15,135, 11, 29, 27, 22, 5, 6, 13, 53, 31,229, 4, 51,160, 41, 67, 49, 27, 7, 5,145, 7, 10, 42, 89,135, 93,252, 54, - 54, 57, 7, 3,133, 12, 14, 17, 40, 64, 46, 1,162, 33, 94, 97, 87, 25, 77,170, 79,253,193, 0, 0, 1, 0,174,254, 20, 4, 18, - 4, 74, 0, 29, 0, 63, 64, 38, 13, 12, 9, 71, 10, 85, 31, 16, 31, 32, 31, 96, 31,112, 31,128, 31, 5, 20, 0, 26, 71, 27, 84, - 30, 26, 27, 20, 13, 3, 80, 17, 22, 11, 21, 28, 9, 15, 0, 63, 51, 63, 63,225, 51, 51, 63, 1, 16,246,225, 50, 50, 93, 16,246, -225, 50, 50, 49, 48, 1, 20, 22, 51, 50, 62, 2, 53, 17, 51, 17, 35, 39, 35, 6, 6, 35, 34, 38, 39, 22, 23, 22, 22, 21, 17, 35, - 17, 51, 1,100,106,111, 82,110, 67, 28,182,147, 27, 10, 48,144,103, 72,106, 35, 1, 2, 2, 1,182,182, 1,135,130,130, 52,101, -148, 96, 2, 58,251,182,147, 83, 84, 46, 42, 38, 40, 35, 85, 42,254,192, 6, 54, 0, 1, 0, 0, 0, 0, 3,207, 4, 74, 0, 20, - 0, 59, 64, 22, 20, 19, 7, 7, 0, 13, 71, 14, 87, 22, 16, 22, 1,176, 22, 1, 15, 22, 1, 6, 1, 0,184,255,240,182, 0, 7, - 20, 21, 13, 0, 15, 0, 63, 50, 63, 51, 1, 47, 56, 50, 94, 93, 93,113, 16,246,225, 18, 57, 61, 47, 51, 51, 49, 48, 17, 51, 19, - 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35,188,201, 12, 31, 30, 25, 5, 6, 90,114, 66, 25,182, 37, 92,154,117, -192, 4, 74,253,176, 33, 99,103, 92, 25, 96,205,231, 1, 5,151,163,254,224,254,245,253,127, 0, 0, 1, 0,113,254,111, 3,106, - 6, 20, 0, 70, 0,126, 64, 78, 50, 59, 59, 17, 42, 1, 65, 70, 56, 45, 45, 36, 28, 0, 1, 16, 1, 32, 1, 3, 8, 1, 1, 28, - 70, 32, 17, 1, 17, 72, 63, 72, 95, 72,127, 72,239, 72, 4, 16, 72, 1, 7, 72, 36, 86, 71, 60, 50, 56, 80, 57, 42, 0, 73, 28, - 89, 28,105, 28, 3, 56, 28, 1, 7, 36, 28, 3, 22, 1, 79, 0, 0, 22, 57, 0, 22,250, 0, 63, 63, 18, 57, 47,225, 17, 23, 57, - 93, 93, 17, 57, 16,225, 50, 50, 1, 16,246,225, 93, 93, 16,214, 93,241,192, 47, 94, 93, 17, 18, 57, 47, 51,225, 18, 57, 17, 51, - 47, 51, 49, 48, 1, 21, 35, 34, 14, 2, 21, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, 53, 52, 46, 2, 39, 38, 38, - 53, 52, 62, 2, 55, 53, 38, 38, 53, 52, 62, 2, 55, 6, 7, 6, 6, 35, 35, 53, 33, 21, 35, 34, 14, 2, 21, 20, 30, 2, 51, 3, - 35,162, 81,127, 87, 45, 45, 84,120, 75, 71, 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77,178,184, 47, 78,102, - 55,101,114, 45, 79,107, 62, 34, 39, 33, 85, 46, 62, 2,129, 55, 73,145,115, 71, 32, 70,114, 81, 3,119,137, 49, 85,113, 65, 78, - 96, 59, 34, 17, 15, 46, 59, 72, 42, 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, 15, 34,199,181, 77,127, 99, 67, 17, - 12, 28,134,117, 72,102, 73, 49, 19, 3, 3, 2, 4,153,141, 38, 78,117, 78, 53, 81, 55, 28, 0,255,255, 0,113,255,236, 4, 45, - 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0, 25,255,236, 4,201, 4, 74, 0, 24, 0, 88, 64, 56, 10, 71,143, 22, 1, 22, 22, 14, - 3, 20, 20, 0, 3, 16, 3, 2, 3, 3, 26, 47, 26,159, 26,239, 26, 3, 16, 13, 71, 47, 14,239, 14,255, 14, 3, 14, 64, 16, 21, - 72, 14, 84, 25, 21, 12, 16, 80, 18, 15, 14, 21, 0, 80, 7, 22, 0, 63,225, 63, 63,225, 50, 50, 1, 16,246, 43, 93,225, 51, 93, - 17, 51, 47, 93, 51, 47, 17, 18, 57, 47, 93,225, 49, 48, 37, 50, 54, 55, 21, 6, 6, 35, 34, 38, 53, 17, 33, 17, 35, 17, 35, 53, - 55, 33, 21, 35, 17, 20, 22, 4, 80, 28, 47, 15, 15, 74, 48,113,113,254,109,182,221,137, 4, 39,211, 47,129, 13, 8,144, 9, 17, -132,130, 2,190,252, 80, 3,176, 74, 80,154,253, 78, 70, 55, 0, 0, 2, 0,164,254, 20, 4, 45, 4, 94, 0, 26, 0, 39, 0, 57, - 64, 33, 37, 72, 0, 87, 41,207, 41, 1, 64, 41, 1, 15, 41, 1, 6, 31, 9, 15, 71, 16, 84, 40, 27, 80, 22, 16, 15, 27, 34, 80, - 8, 5, 22, 0, 63, 51,225, 63, 63,225, 1, 16,246,225, 50, 50, 94, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 14, 2, 35, 34, 38, - 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 52, 62, 2, 51, 50, 30, 2, 1, 34, 6, 7, 17, 22, 22, 51, 50, 54, 53, 52, 38, 4, 45, - 63,117,167,104, 75,143, 54, 6, 1, 2, 2, 1,182, 65,120,169,105, 97,163,119, 67,254, 59,137,130, 3, 54,143, 75,140,123,125, - 2, 39,137,213,145, 76, 45, 45, 43, 46, 39, 97, 46,254,221, 4, 19,136,211,145, 75, 75,145,211, 1, 24,196,200,254,172, 51, 49, -211,209,209,207, 0, 1, 0,113,254,111, 3,111, 4, 94, 0, 49, 0, 81, 64, 54, 39, 39, 21, 70, 16, 0, 10, 16, 10, 32, 10, 3, - 10, 51, 63, 51, 95, 51,127, 51,239, 51, 4, 16, 51, 1, 0, 72, 31, 86, 50, 40, 45, 81, 55, 10, 1, 40, 21, 56, 21, 72, 21, 3, - 21, 10, 31, 0, 4, 15, 36, 16, 15,250, 0, 63, 63, 18, 23, 57, 93, 93,225, 50, 1, 16,246,225, 93, 93, 16,214, 93, 50,225, 51, - 47, 49, 48, 1, 20, 30, 2, 23, 30, 3, 21, 20, 14, 2, 7, 35, 62, 3, 53, 52, 46, 2, 39, 46, 3, 53, 52, 62, 2, 51, 50, 22, - 23, 7, 46, 3, 35, 34, 14, 2, 1, 45, 28, 73,126, 97, 71, 95, 58, 25, 21, 34, 43, 22,170, 24, 43, 34, 20, 14, 48, 91, 77, 77, -132, 98, 55, 73,131,179,106, 78,149, 50, 54, 23, 56, 60, 58, 26, 80,114, 73, 34, 2, 6, 96,121, 78, 47, 22, 15, 46, 59, 72, 42, - 45, 88, 82, 75, 31, 32, 72, 72, 67, 29, 20, 37, 34, 31, 15, 15, 65,118,180,130,154,226,149, 73, 34, 25,154, 10, 19, 15, 9, 57, -112,164, 0, 2, 0,113,255,236, 4,133, 4, 74, 0, 22, 0, 41, 0, 54, 64, 33, 36, 33, 72, 18, 16, 0, 87, 43, 16, 43,144, 43, -160, 43,176, 43,224, 43, 5, 23, 72, 10, 86, 42, 18, 37, 80, 15, 15, 28, 80, 5, 22, 0, 63,225, 63,225, 50, 1, 16,246,225, 93, - 16,246, 50, 50,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 33, 21, 33, 30, 3, 5, 20, 30, 2, 51, 50, - 62, 2, 53, 52, 38, 39, 35, 34, 14, 2, 4, 45, 62,122,180,117,107,175,125, 68, 77,144,206,128, 1,233,254,246, 37, 65, 48, 28, -253, 0, 33, 71,110, 77, 76,109, 71, 33, 79, 75, 59, 95,139, 90, 43, 1,248,111,192,141, 80, 70,138,203,133,156,218,138, 62,154, - 41, 93,108,124, 54, 85,144,105, 59, 55, 98,134, 78,144,215, 89, 44, 99,161, 0, 0, 1, 0, 18,255,229, 3,102, 4, 74, 0, 28, - 0, 58, 64, 36, 1, 15, 13, 31, 13, 2, 6, 13, 87, 30, 16, 30, 1, 43, 26, 59, 26, 2, 26, 3, 71, 16, 24,224, 24, 2, 24, 2, - 25, 80, 28, 15, 8, 80, 19, 22, 0, 63,225, 63,225, 50, 1, 47, 93,225,198, 93, 93, 16,230, 94, 93, 50, 49, 48, 1, 21, 33, 17, - 20, 30, 2, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 53, 17, 33, 53, 55, 3,102,254,140, 25, 45, 62, 36, 18, 42, 40, 36, - 13, 13, 39, 46, 53, 27, 64,117, 89, 52,254,215,134, 4, 74,154,253,162, 59, 82, 51, 23, 3, 6, 7, 4,135, 6, 12, 11, 6, 29, - 77,134,104, 2,115, 74, 80, 0, 0, 1, 0,164,255,236, 4, 61, 4, 74, 0, 29, 0, 41, 64, 24, 16, 71, 27, 87, 31, 16, 31, 96, - 31,128, 31, 3, 8, 71, 5, 84, 30, 21, 6, 15, 13, 80, 0, 22, 0, 63,225, 63, 51, 1, 16,246,225, 93, 16,246,225, 49, 48, 5, - 34, 46, 2, 53, 17, 51, 17, 20, 30, 2, 51, 50, 54, 53, 52, 46, 2, 39, 51, 30, 3, 21, 16, 2, 2, 92,129,170,100, 41,182, 32, - 66,102, 70,146,141, 9, 16, 23, 15,182, 15, 24, 16, 8,244, 20, 80,140,189,109, 2, 88,253,178, 86,140, 99, 54,232,247, 71,125, -117,116, 61, 61,114,119,129, 75,254,193,254,211, 0, 2, 0,113,254, 20, 5, 37, 4, 94, 0, 37, 0, 53, 0, 94, 64, 60, 49, 37, - 71, 22,150, 0,166, 0, 2, 0, 0, 6, 38, 72, 31, 87, 55, 32, 55, 1, 15, 55, 1,224, 55, 1,111, 55,127, 55,159, 55, 3, 64, - 55, 1, 15, 55, 31, 55, 2, 6, 17, 71, 6, 86, 54, 43, 80, 11, 26, 16, 49, 22, 80, 36, 1, 22, 0, 27, 0, 63, 63, 51,225, 50, - 63, 51,225, 1, 16,246,225, 94, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 51,225, 50, 49, 48, 1, 17, 46, 3, 53, 52, - 62, 2, 55, 23, 14, 3, 21, 20, 30, 2, 23, 17, 52, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 17, 1, 52, 46, 2, 35, 34, 14, 2, - 21, 17, 62, 3, 2,102,109,183,134, 75, 32, 56, 78, 45,141, 37, 63, 45, 25, 51, 88,116, 64,165,145, 90,146,102, 55, 86,144,190, -104, 1, 79, 30, 54, 73, 43, 27, 49, 37, 22, 72,123, 89, 51,254, 20, 1,218, 5, 67,137,213,151, 83,152,138,125, 55, 96, 51,104, -114,125, 71,111,153, 97, 48, 7, 2, 94,188,193, 80,144,201,122,149,217,144, 74, 5,254, 38, 4, 37, 98,148,101, 51, 23, 53, 87, - 65,253,160, 7, 59,107,159, 0, 0, 1,255,236,254, 20, 4, 37, 4, 78, 0, 40, 0,160, 64, 26,104, 31,120, 31, 2, 31,103, 9, -119, 9,199, 9, 3, 9, 6,118, 28, 1, 55, 28, 1, 28, 28, 30, 7, 8,184,255,192, 64, 14, 19, 22, 72, 52, 8, 1, 8, 16, 8, - 8,192, 18, 1, 18,184,255,192, 64, 25, 6, 11, 72, 18, 18, 42, 15, 42, 63, 42, 79, 42,207, 42, 4, 6,176, 37,192, 37, 2, 37, - 37, 29, 30,184,255,240, 64, 31, 30, 30, 41, 30, 27, 23, 6, 39, 6, 2, 24, 28, 40, 28, 2, 28, 9, 31, 6, 4, 0, 15, 80, 22, - 27, 7, 15, 35, 80, 0, 15, 0, 63,225, 63, 63,225, 18, 23, 57, 93, 93, 63, 17, 1, 51, 47, 56, 51, 51, 47, 93, 94, 93, 17, 51, - 47, 43, 93, 51, 47, 56, 93, 43, 51, 18, 57, 61, 47, 93, 93, 51, 51, 93, 51, 93, 49, 48, 19, 50, 30, 2, 23, 19, 1, 51, 1, 19, - 30, 3, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 3, 1, 35, 1, 3, 38, 38, 35, 34, 7, 53, 54, 54,188, 45, 73, 58, 49, - 21,123, 1, 31,178,254,115,178, 14, 29, 38, 52, 37, 26, 46, 16, 22, 57, 40, 67, 95, 71, 51, 23,131,254,182,194, 1,198,160, 27, - 71, 53, 36, 28, 22, 62, 4, 78, 31, 62, 92, 61,254,168, 2, 74,252,248,254, 32, 38, 66, 51, 29, 5, 3,141, 6, 11, 38, 70,102, - 65, 1,106,253,131, 3, 62, 1,190, 79, 89, 10,143, 7, 10, 0, 0, 1, 0,164,254, 20, 5,113, 6, 18, 0, 39, 0, 76, 64, 47, - 1, 23, 71, 38, 24, 24, 30, 6, 71, 17, 87, 41, 48, 41, 64, 41,144, 41,176, 41,192, 41, 5, 15, 41, 31, 41, 2, 6, 33, 71, 30, - 84, 40, 11, 31, 15, 1, 38, 80, 22, 25, 22, 23, 27, 0, 0, 0, 63, 63, 63, 51,225, 50, 63, 51, 1, 16,246,225, 94, 93, 93, 16, -246,225, 17, 57, 47, 51,225, 50, 49, 48, 1, 17, 62, 3, 53, 52, 46, 2, 39, 51, 30, 3, 21, 20, 14, 2, 7, 17, 35, 17, 46, 3, - 53, 17, 51, 17, 20, 30, 2, 23, 17, 3, 86, 78,131, 95, 52, 8, 15, 24, 16,182, 16, 24, 16, 8, 87,147,196,109,178,111,188,137, - 76,182, 54, 90,120, 66, 6, 18,250,115, 9, 60,108,156,103, 71,128,126,131, 73, 72,131,126,126, 68,157,220,140, 69, 7,254, 38, - 1,218, 4, 65,136,214,154, 2, 31,253,217,114,154, 97, 46, 5, 5,143, 0, 1, 0,113,255,236, 5,150, 4, 74, 0, 59, 0,112, - 64, 72, 56,103, 29, 1, 29, 71,213, 26, 1,183, 26, 1,169, 26, 1,154, 26, 1, 3, 26, 26, 5, 37, 72, 48, 87, 61, 4, 61, 20, - 61, 2,196, 61,244, 61, 2,123, 61,155, 61, 2, 64, 61, 1, 2, 48, 61, 1, 15, 61, 31, 61, 2, 6, 16, 72, 5, 86, 60, 27, 27, - 42, 10, 15, 32, 21, 80, 57, 53, 0, 22, 0, 63, 50, 50,225, 50, 63, 51, 57, 47, 1, 16,246,225, 94, 93, 93, 95, 93, 93, 93,113, - 16,246,225, 17, 57, 47, 95, 93, 93, 93, 93,225, 93, 57, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 55, 51, 14, 3, 21, 20, 30, 2, - 51, 50, 62, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 39, 51, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 35, 6, - 6, 1,233, 90,140, 96, 50, 15, 31, 47, 32,186, 32, 47, 31, 15, 29, 54, 75, 45, 46, 68, 44, 22,178, 99, 81, 45, 75, 54, 29, 15, - 31, 47, 32,187, 32, 47, 31, 15, 50, 96,141, 90,107,139, 31, 10, 31,139, 20, 82,146,203,121, 81,143,135,135, 72, 73,134,135,142, - 82, 98,150,101, 52, 41, 72, 98, 57, 1, 50,254,206,129,139, 52,101,150, 98, 82,142,135,134, 73, 72,135,135,143, 81,121,203,146, - 82, 87, 91, 91, 87, 0,255,255, 0, 21,255,236, 2,119, 5,217, 2, 38, 1,134, 0, 0, 1, 7, 0,106,254,226, 0, 0, 0, 23, - 64, 13, 2, 1, 31, 17, 38, 2, 1, 50, 22, 42, 20, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,164,255,236, 4, 61, - 5,217, 2, 38, 1,146, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 39, 17, 38, 2, 1,184,255,222,180, 30, 50, 5, 27, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 84, 14, 0, - 0, 19, 64, 11, 2, 44, 17, 38, 2, 61, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 4, 61, 6, 33, - 2, 38, 1,146, 0, 0, 1, 6, 1, 84, 16, 0, 0, 19, 64, 11, 1, 42, 17, 38, 1, 29, 30, 36, 5, 27, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,113,255,236, 5,150, 6, 33, 2, 38, 1,150, 0, 0, 1, 7, 1, 84, 0,195, 0, 0, 0, 33, 64, 9, 1, 72, - 17, 38, 1, 96, 60, 1, 60,184,255,192, 64, 9, 9, 11, 72, 61, 60, 66, 5, 48, 37, 1, 43, 43, 93, 53, 0, 43, 53, 0,255,255, - 0,199, 0, 0, 3,190, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106,255,245, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, - 1, 1, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 20,255,236, 5, 6, 5,182, 0, 37, 0,133, 64, 90, - 4, 4, 19, 12, 90, 15, 33, 1,223, 33,255, 33, 2, 33, 85, 39, 15, 39,111, 39,127, 39, 3, 6, 26,244, 24, 1,160, 24,176, 24, - 2,116, 24, 1, 24, 24, 18, 90, 19, 0, 21, 48, 21, 64, 21, 80, 21,192, 21, 5, 21, 21,176, 19, 1,103, 19,119, 19, 2, 94, 19, - 1, 63, 19, 79, 19, 2, 0, 19, 1, 19, 17, 95, 26, 26, 7, 25, 21, 95, 22, 3, 19, 18, 7, 95, 0, 19, 0, 63,225, 63, 63,225, - 50, 18, 57, 47,225, 1, 47, 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 47, 93, 93, 93, 50, 94, 93, 16,246, 93,113,225, 18, 57, - 47, 49, 48, 5, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 53, 52, 38, 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 17, 33, 50, 30, - 2, 21, 21, 20, 14, 2, 3,158, 47, 70, 25, 29, 68, 39, 32, 64, 51, 33,105,123,254,187,187,254,172, 3,177,254, 94, 1, 90, 93, -146,101, 53, 53, 95,132, 20, 13, 11,160, 9, 12, 19, 51, 87, 69,133,115,116,253, 35, 5, 18,164,164,254,111, 49, 94,139, 89,137, -105,154,101, 49,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 1, 97, 0, 0, 1, 7, 0,118, 0, 51, 1, 82, 0, 19, 64, 11, - 1, 18, 5, 38, 1, 62, 6, 12, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,125,255,236, 4,152, 5,203, 0, 38, 0, 95, - 64, 19, 17, 64, 19, 24, 72, 7, 17, 7, 17, 27,202, 35, 1,112, 35,128, 35, 2, 35,184,255,192, 64, 36, 7, 10, 72, 35, 35, 40, -191, 40, 1, 5, 8, 91, 27,102, 39, 8, 95, 15, 5,175, 5, 2, 8, 5, 5, 13, 36, 0, 95, 32, 4, 13, 95, 16, 22, 19, 0, 63, - 51,225, 63,225, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 17, 51, 47, 43, 93, 93, 18, 57, 57, 47, 47, 43, 49, 48, 1, - 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, - 38, 3, 25, 95,160,120, 77, 13, 2,116,253,134, 5, 64,118,171,113, 89,160, 78, 39, 78, 85, 97, 59,164,240,157, 76, 87,169,250, -162,108,196, 79, 78, 63,148, 5, 39, 65,122,175,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,108,198, 1, 22,169,166, 1, - 20,198,110, 44, 42,156, 32, 46,255,255, 0,104,255,236, 3,201, 5,203, 2, 6, 0, 54, 0, 0,255,255, 0, 82, 0, 0, 2,100, - 5,182, 2, 6, 0, 44, 0, 0,255,255, 0, 64, 0, 0, 2,119, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106,255, 13, 1, 82, - 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 12, 32, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255, 72,254,123, - 1,115, 5,182, 2, 6, 0, 45, 0, 0, 0, 2, 0, 0,255,233, 6,223, 5,182, 0, 42, 0, 53, 0,141,181, 37, 43, 90, 6, 13, - 8,184,255,248, 64, 83, 20, 23, 72, 8, 90, 35,153, 30, 1, 30, 16, 30, 35, 0, 6,144, 6, 2, 6,224, 35, 1,180, 35,196, 35, -212, 35, 3, 0, 35, 80, 35,144, 35,160, 35, 4, 7, 6, 35, 6, 35, 21, 47, 91, 0,103, 55,207, 55, 1, 55, 64, 6, 9, 72, 21, - 21, 54, 53, 95, 15, 37,175, 37, 2, 8, 37, 37, 43, 8, 95, 35, 3, 25, 96, 18, 19, 43, 96, 6, 18, 0, 63,225, 63,225, 63,225, - 18, 57, 47, 94, 93,225, 17, 1, 51, 47, 43, 93, 16,246,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 94, 93, 17, 51, 56, 93, 16,225, - 43, 50, 16,225, 50, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, - 54, 54, 18, 18, 55, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 6,223, 60,126,194,134,254,191,254,194, 15, - 31, 33, 34, 16, 20, 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,147,109,152,207,126, 55, -253,119,119,174,164, 46, 91,139, 93, 88, 1,172, 97,158,112, 61, 5, 18,113,244,236,212, 81,103,162,111, 59, 14, 11,154, 13, 16, - 63, 98,117, 54, 57,200, 1, 6, 1, 58,170,253,152, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0, 2, 0,199, 0, 0, 7, 12, - 5,182, 0, 22, 0, 33, 0, 83, 64, 50, 17, 23, 90, 14, 6, 6, 10, 27, 91, 0,103, 35, 15, 35, 1, 15, 35, 31, 35,127, 35,255, - 35, 4, 13, 9, 90, 10,100, 34, 33, 8, 95, 17, 15, 13,175, 13, 2, 8, 13, 13, 15, 11, 3, 23, 96, 10, 6, 18, 0, 63, 51,225, - 63, 51, 57, 47, 94, 93, 51,225, 50, 1, 16,246,225, 50, 93,113, 16,246,225, 17, 57, 47, 51,225, 50, 49, 48, 1, 20, 14, 2, 35, - 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 7, 12, 60,126,194,134, -254,191,253,184,186,186, 2, 72,186,109,152,207,126, 55,253,119,119,174,164, 46, 91,139, 93, 88, 1,172, 97,158,112, 61, 2,170, -253, 86, 5,182,253,152, 2,104,253,152, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0, 0, 1, 0, 20, 0, 0, 5, 6, 5,182, - 0, 21, 0,115, 64, 77, 8, 90, 7, 85, 23, 15, 23,111, 23,127, 23, 3, 6,244, 20, 1,160, 20,176, 20, 2,116, 20, 1, 20, 20, - 0, 14, 90, 15, 0, 17, 48, 17, 64, 17, 80, 17,192, 17, 5, 17, 17,176, 15, 1,103, 15,119, 15, 2, 94, 15, 1, 63, 15, 79, 15, - 2, 0, 15, 1, 15, 21, 17, 95, 18, 13, 95, 0, 0, 7, 18, 3, 15, 7, 18, 0, 63, 51, 63, 18, 57, 47,225, 16,225, 50, 1, 47, - 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 50, 47, 93, 93, 93, 94, 93, 16,246,225, 49, 48, 1, 33, 50, 30, 2, 21, 17, 35, 17, - 52, 38, 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 2, 35, 1, 90, 93,146,101, 53,186,105,123,254,187,187,254,172, 3,177,254, 94, - 3,129, 49, 94,139, 89,253,242, 1,246,115,116,253, 35, 5, 18,164,164,255,255, 0,199, 0, 0, 4,162, 7,115, 2, 38, 1,180, - 0, 0, 1, 7, 0,118, 0,137, 1, 82, 0, 19, 64, 11, 1, 23, 5, 38, 1, 34, 11, 17, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 25,255,236, 4,174, 7,105, 2, 38, 1,189, 0, 0, 1, 7, 2, 54, 0, 35, 1, 82, 0, 19, 64, 11, 1, 39, 5, 38, - 1, 13, 44, 34, 19, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199,254,127, 4,193, 5,182, 0, 11, 0, 99, 64, 65,198, 2, -214, 2, 2, 2, 90,197, 3,213, 3, 2,168, 3, 1,150, 3, 1, 3, 16, 14, 17, 72, 71, 3, 1, 58, 3, 1, 3, 3, 5, 9, 90, - 0,101, 13,176, 13, 1,111, 13,159, 13,175, 13, 3, 16, 13, 1, 8, 90, 5,100, 12, 10, 6, 3, 8, 95, 5, 2, 2, 1, 5, 0, - 47, 51, 51, 47, 16,225, 63, 51, 1, 16,246,225, 93, 93, 93, 16,246,225, 17, 57, 47, 93, 93, 43, 93, 93, 93,225, 93, 49, 48, 33, - 33, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4,193,254, 90,177,254, 93,186, 2,133,187,254,127, 1,129, 5,182,250,240, 5, 16, -255,255, 0, 0, 0, 0, 4,221, 5,188, 2, 6, 0, 36, 0, 0, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 16, 0, 27, 0, 75, - 64, 46, 95, 8, 1, 8, 8, 17, 21, 91, 0,103, 29, 15, 29, 95, 29,127, 29,207, 29, 4, 6, 11, 17, 90, 6,100, 28, 27, 95, 15, - 11,175, 11, 2, 8, 11, 11, 17, 10, 95, 7, 3, 17, 96, 6, 18, 0, 63,225, 63,225, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, - 94, 93, 16,246,225, 18, 57, 47, 93, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, 21, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, - 46, 2, 35, 35, 4, 51, 60,126,194,134,254,150, 3, 20,253,166,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 1, -172, 97,158,112, 61, 5,182,164,254, 60, 66,113,152,254,157,132,136, 70, 97, 60, 27, 0,255,255, 0,199, 0, 0, 4,135, 5,182, - 2, 6, 0, 37, 0, 0,255,255, 0,199, 0, 0, 3,190, 5,182, 2, 6, 1, 97, 0, 0, 0, 2, 0, 14,254,127, 5, 10, 5,182, - 0, 17, 0, 27, 0,139, 64, 11, 24, 27, 40, 27, 2, 27, 7, 55, 20, 1, 20,184,255,248, 64, 11, 20, 23, 72, 20, 90, 14, 15, 7, - 1, 7, 7,184,255,240, 64, 16, 48, 14,192, 14, 2, 7, 14, 7, 14, 5, 18, 90, 16, 1, 90, 0,184,255,192, 64, 37, 16, 21, 72, - 0, 0, 16,101, 29, 32, 29, 1, 15, 29, 1, 8, 4, 90, 5, 5, 28, 20, 95, 14, 3, 9, 81, 8, 27, 16, 6, 95, 3, 0, 5, 5, - 3, 18, 0, 63, 51, 47, 51, 16,225, 50, 50, 47,226, 63,225, 17, 1, 51, 47,225, 94, 93, 93, 16,228, 50, 47, 43,225, 16,225, 17, - 57, 57, 47, 47, 93, 56, 94, 93, 16,225, 43, 93, 17, 51, 93, 49, 48, 1, 35, 17, 33, 17, 35, 17, 51, 62, 5, 55, 33, 17, 51, 33, - 17, 33, 14, 5, 7, 5, 10,176,252,100,176,113, 47, 86, 77, 65, 48, 29, 4, 2,101,194,254,131,254,250, 4, 31, 46, 61, 70, 77, - 39,254,127, 1,129,254,127, 2, 39, 85,200,217,230,232,227,105,250,240, 4,106, 76,185,202,209,200,183, 75, 0,255,255, 0,199, - 0, 0, 3,190, 5,182, 2, 6, 0, 40, 0, 0, 0, 1, 0, 4, 0, 0, 6,129, 5,182, 0, 17, 0,203, 64, 78,102, 9,118, 9, -134, 9, 3, 55, 9, 71, 9, 87, 9, 3, 9, 6, 6, 71, 13,247, 13, 2, 13, 90,105, 0,121, 0,137, 0, 3, 56, 0, 72, 0, 88, - 0, 3, 0, 3, 3,168, 14,184, 14, 2,153, 14, 1,134, 14, 1, 87, 14,103, 14,119, 14, 3, 14, 14, 17, 10, 7, 8, 8, 11, 0, - 10, 1,112, 10,128, 10,192, 10, 3, 10,184,255,192, 64, 38, 7, 10, 72, 10, 16, 10, 10, 19,240, 19, 1,191, 19,207, 19,223, 19, - 3,160, 19, 1,143, 19, 1, 64, 19, 1, 15, 19, 31, 19, 2, 8, 2, 1, 1, 16, 17,184,255,240, 64, 15, 17, 17, 18, 6, 3, 3, - 4, 17, 10, 14, 18, 7, 1, 4, 3, 0, 63, 51, 51, 63, 51, 51, 18, 57, 17, 51, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, - 93, 93, 93, 93, 17, 51, 47, 56, 43, 93,113, 51, 51, 17, 51, 17, 18, 57, 47, 93, 93, 93, 93, 51, 17, 51, 93, 93,225, 93, 50, 17, - 51, 93, 93, 49, 48, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, 17, 1, 35, 2, 37,253,237,205, 2, 10,179, 2, - 10,205,253,237, 2, 33,211,253,238,179,253,238,211, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253, 14, 2,229,253, - 27, 2,229,253, 27, 0, 0, 1, 0, 72,255,236, 3,236, 5,203, 0, 57, 0,104, 64, 63, 39, 91, 0, 5, 33, 0, 48, 33, 0, 0, - 33, 48, 3, 19, 28, 91, 11,103, 59,159, 59, 1,112, 19,128, 19, 2, 63, 19, 79, 19, 95, 19, 3, 19, 19, 58, 5, 32, 96,170, 33, - 1,120, 33, 1, 15, 33, 1, 8, 33, 33, 25, 47, 44, 96, 53, 4, 25, 96, 20, 16, 19, 0, 63, 51,225, 63,225, 51, 18, 57, 47, 94, - 93, 93, 93,225, 57, 17, 1, 51, 47, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 17, 18, 57, 16,225, 49, 48, 1, 20, 14, 2, - 7, 21, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, - 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 3,209, 51, 91,125, 75, 87,138, 94, 50, 67,136,205,137,110,192, 85, 43, 96, 99, 99, - 46,178,176,207,186,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116,131, 71,109,166,113, 57, 4, 96, 73,120, - 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 34, 45,170, 23, 36, 24, 13,148,135,135,129,151, 39, 72,101, 61, 54, 83, 58, - 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 0, 0, 1, 0,201, 0, 0, 5, 16, 5,182, 0, 23, 0,107, 64, 27, 20, 11, 14, 90, - 13,101, 25,208, 25, 1,175, 25, 1, 32, 25, 48, 25, 2, 22, 9, 2, 90, 23,100, 24, 23, 9,184,255,232,179, 20, 24, 72, 9,184, -255,224, 64, 35, 10, 19, 72, 6, 9, 22, 9, 38, 9, 3, 9, 13, 18, 20, 24, 20, 24, 72, 20, 32, 10, 19, 72, 9, 20, 25, 20, 41, - 20, 3, 7, 20, 11, 0, 3, 0, 63, 50, 50, 94, 93, 43, 43, 63, 51, 93, 43, 43, 51, 1, 16,246,225, 50, 50, 93, 93, 93, 16,246, -225, 50, 50, 49, 48, 19, 51, 17, 20, 14, 2, 7, 6, 7, 51, 1, 51, 17, 35, 17, 52, 54, 55, 54, 55, 35, 1, 35,201,174, 1, 2, - 2, 2, 4, 4, 7, 2,204,213,172, 6, 4, 4, 5, 8,253, 49,215, 5,182,252,224, 26, 62, 67, 67, 32, 74, 76, 4,180,250, 74, - 3, 25, 57,142, 65, 76, 77,251, 70, 0,255,255, 0,201, 0, 0, 5, 16, 7,105, 2, 38, 1,178, 0, 0, 1, 7, 2, 54, 0,137, - 1, 82, 0, 21,180, 1, 29, 5, 38, 1,184,255,235,180, 34, 24, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199, 0, 0, - 4,162, 5,182, 0, 10, 0, 94, 64, 33, 8, 9, 9, 16, 9, 1, 0, 0, 16, 0, 2, 7, 0, 16, 0, 0, 12,176, 12, 1, 47, 12, - 1, 16, 12, 1,151, 10, 1, 86, 10, 1, 10,184,255,248, 64, 20, 8, 12, 72, 10, 7, 7, 3, 90, 4,100, 11, 7, 2, 4, 8, 5, - 3, 4, 0, 18, 0, 63, 50, 63, 51, 18, 57, 57, 1, 16,246,225, 50, 17, 51, 43, 93, 93, 93, 93, 93, 17, 51, 47, 56, 94, 93, 51, - 51, 56, 17, 51, 49, 48, 33, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4,162,219,253,186,186,186, 2, 53,207,253,203, 2,229,253, - 27, 5,182,253, 60, 2,196,253, 66, 0, 0, 1, 0, 0,255,233, 4,147, 5,182, 0, 31, 0, 98,177, 8, 3,184,255,248, 64, 59, - 20, 23, 72, 3, 90,137, 25, 1, 25, 16, 25,224, 30, 1,180, 30,196, 30,212, 30, 3, 0, 30, 80, 30,128, 30, 3, 7, 30, 30, 16, - 1, 90, 0,101, 33, 15, 33, 31, 33,127, 33, 3, 8, 16, 16, 32, 3, 95, 30, 3, 20, 96, 17, 13, 19, 0, 18, 0, 63, 63, 51,225, - 63,225, 17, 1, 51, 47, 94, 93, 16,246,225, 17, 57, 47, 94, 93, 93, 93, 51, 56, 93,225, 43, 50, 49, 48, 33, 35, 17, 33, 14, 3, - 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 4,147,186,254,133, 15, 31, 33, 34, 16, 20, - 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,208, 5, 18,113,244,236,212, 81,103,162,111, - 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, 1, 6, 1, 58,170, 0,255,255, 0,199, 0, 0, 6, 47, 5,182, 2, 6, 0, 48, - 0, 0,255,255, 0,199, 0, 0, 4,213, 5,182, 2, 6, 0, 43, 0, 0,255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 0, 50, - 0, 0,255,255, 0,199, 0, 0, 4,193, 5,182, 2, 6, 1,110, 0, 0,255,255, 0,199, 0, 0, 4, 51, 5,182, 2, 6, 0, 51, - 0, 0,255,255, 0,125,255,236, 4,152, 5,203, 2, 6, 0, 38, 0, 0,255,255, 0, 20, 0, 0, 4, 18, 5,182, 2, 6, 0, 55, - 0, 0, 0, 1, 0, 25,255,236, 4,174, 5,182, 0, 33, 0,111, 64, 16, 18, 1, 27, 27, 19, 33, 96, 0,112, 0,176, 0,240, 0, - 4, 0,184,255,192, 64, 16, 6, 10, 72, 0, 16, 0, 0, 35, 15, 35,127, 35, 2, 20, 9, 19,184,255,240, 64, 12, 19, 19, 34,231, - 26,247, 26, 2,214, 26, 1, 26,184,255,224, 64, 16, 10, 14, 72, 18, 1, 26, 3, 0, 13, 95, 10, 6, 19, 19, 0, 3, 0, 63, 50, - 63, 51,225, 17, 23, 57, 43, 93, 93, 17, 1, 51, 47, 56, 51, 51, 93, 17, 51, 47, 56, 43, 93, 51, 18, 57, 17, 51, 51, 49, 48, 1, - 1, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 1, 51, 1, 30, 3, 23, 51, 62, 3, 55, 1, 4,174,254, 84, 38, 83, -112,156,111, 51, 90, 37, 37, 89, 52, 53, 82, 66, 56, 28,253,238,204, 1,127, 5, 10, 9, 9, 4, 2, 3, 11, 11, 11, 3, 1, 55, - 5,182,251,250, 93,164,123, 72, 15, 15,185, 20, 25, 23, 53, 86, 63, 4, 63,252,215, 10, 24, 26, 23, 9, 9, 31, 33, 29, 7, 3, - 24, 0,255,255, 0,104,255,236, 5,186, 5,203, 2, 6, 1,115, 0, 0,255,255, 0, 0, 0, 0, 4, 96, 5,182, 2, 6, 0, 59, - 0, 0, 0, 1, 0,199,254,127, 5,113, 5,182, 0, 11, 0, 59, 64, 33, 3, 90, 2, 2, 9, 90, 0, 13,176, 13, 1,175, 13, 1, - 16, 13, 1, 8, 90, 5,100, 12, 10, 6, 3, 0, 8, 95, 5, 2, 2, 5, 18, 0, 63, 51, 47, 16,225, 50, 63, 51, 1, 16,246,225, - 93, 93, 93, 16,212,225, 51, 47,225, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4,193,176,176,252, 6,186, 2,133, -187,166,253,217, 1,129, 5,182,250,240, 5, 16, 0, 1, 0,166, 0, 0, 4,129, 5,182, 0, 21, 0, 72, 64, 29, 19, 1, 90, 0, -101, 23,112, 23,160, 23, 2, 47, 23, 1, 16, 23, 1, 13, 90, 96, 10,112, 10,160, 10,176, 10, 4, 10,184,255,192, 64, 14, 7, 10, - 72, 10, 19, 16, 95, 5, 5, 20, 11, 3, 0, 18, 0, 63, 63, 51, 57, 47,225, 51, 1, 47, 43, 93,225, 93, 93, 93, 16,246,225, 50, - 49, 48, 33, 35, 17, 6, 6, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 54, 55, 17, 51, 4,129,186,115,195, 98, 93,146,101, - 53,186,105,123, 90,185,112,186, 2, 86, 44, 46, 49, 95,138, 89, 2, 71,253,209,115,116, 40, 40, 2,198, 0, 1, 0,199, 0, 0, - 7, 51, 5,182, 0, 11, 0, 96, 64, 66, 86, 8, 1, 8, 90, 23, 5, 1,134, 5,150, 5,166, 5, 3,103, 5,119, 5, 2, 5, 5, - 1, 9, 90, 0,101, 13, 0, 13, 16, 13, 2, 32, 13, 80, 13,112, 13,128, 13,192, 13,208, 13,224, 13, 7, 15, 13, 1, 7, 4, 90, - 1,100, 12, 10, 6, 2, 3, 8, 4, 95, 1, 18, 0, 63,225, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113, 16,246,225, 17, 57, - 47, 93, 93,113,225, 93, 49, 48, 33, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 7, 51,249,148,186, 2, 31,186, 2, 31,186, 5, -182,250,240, 5, 16,250,240, 5, 16, 0, 0, 1, 0,199,254,127, 7,227, 5,182, 0, 15, 0,113, 64, 75, 86, 12, 1, 12, 90, 23, - 9, 1,134, 9,150, 9,166, 9, 3,103, 9,119, 9, 2, 9, 9, 5, 13, 90, 0, 3, 90, 2, 2, 0,101, 17, 0, 17, 16, 17, 2, - 32, 17, 80, 17,112, 17,128, 17,192, 17,208, 17,224, 17, 7, 15, 17, 1, 7, 8, 90, 5,100, 16, 14, 10, 6, 3, 12, 0, 8, 95, - 5, 2, 2, 5, 18, 0, 63, 51, 47, 16,225, 50, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113, 16,228, 50, 47,225, 16,225, 17, - 57, 47, 93, 93,113,225, 93, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 7, 51,176,176,249,148,186, - 2, 31,186, 2, 31,186,166,253,217, 1,129, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 2, 0, 20, 0, 0, 4,213, 5,182, - 0, 16, 0, 27, 0, 82, 64, 51, 11, 17, 90,144, 6, 1, 6, 6, 8, 21, 91, 0,103, 29, 15, 29, 1, 15, 29, 47, 29, 63, 29, 95, - 29,175, 29, 5, 6, 8, 8, 28, 27, 95, 15, 11,175, 11, 2, 8, 11, 11, 17, 8, 95, 9, 3, 17, 96, 6, 18, 0, 63,225, 63,225, - 18, 57, 47, 94, 93,225, 17, 1, 51, 47, 94, 93,113, 16,246,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 20, 14, 2, 35, 33, 17, 33, - 53, 33, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 4,213, 60,126,194,134,254,149,254,172, 2, 15,149,152,207, -127, 55,253, 78,160,174,163, 45, 92,138, 93,129, 1,172, 97,158,112, 61, 5, 18,164,253,152, 66,113,152,254,157,132,136, 70, 97, - 60, 27, 0, 3, 0,199, 0, 0, 5,207, 5,182, 0, 14, 0, 25, 0, 29, 0, 73, 64, 43, 19, 91, 0, 0, 1, 0, 0, 6, 26, 90, - 29,101, 31, 15, 31,159, 31, 2, 6, 9, 15, 90, 6,100, 30, 25, 95, 15, 9,175, 9, 2, 8, 9, 9, 27, 7, 3, 15, 96, 26, 6, - 18, 0, 63, 51,225, 63, 51, 57, 47, 94, 93,225, 1, 16,246,225, 50, 94, 93, 16,246,225, 17, 57, 47, 93,225, 49, 48, 1, 20, 14, - 2, 35, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1, 17, 51, 17, 4, 51, 60,126,194,134,254,150, -186,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 3,147,187, 1,172, 97,158,112, 61, 5,182,253,152, 66,113,152, -254,157,132,136, 70, 97, 60, 27,253, 86, 5,182,250, 74, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 14, 0, 25, 0, 72, 64, 46, - 19, 91,144, 0, 1, 0,103, 27, 15, 27, 95, 27, 2, 6, 27, 64, 21, 24, 72, 27, 64, 13, 19, 72, 9, 15, 90, 6,100, 26, 25, 95, - 15, 9,175, 9, 2, 8, 9, 9, 7, 3, 15, 96, 6, 18, 0, 63,225, 63, 57, 47, 94, 93,225, 1, 16,246,225, 50, 43, 43, 94, 93, - 16,246, 93,225, 49, 48, 1, 20, 14, 2, 35, 33, 17, 51, 17, 51, 50, 30, 2, 1, 51, 50, 54, 53, 52, 46, 2, 35, 35, 4, 51, 60, -126,194,134,254,150,186,150,152,207,126, 55,253, 78,160,174,164, 46, 91,139, 93,129, 1,172, 97,158,112, 61, 5,182,253,152, 66, -113,152,254,157,132,136, 70, 97, 60, 27, 0, 1, 0, 59,255,236, 4, 68, 5,203, 0, 36, 0, 81, 64, 47, 29, 32, 91, 12, 22, 30, - 22, 30, 4, 12,103, 38,191, 38,207, 38,223, 38, 3, 4, 4, 37, 30, 95,170, 31, 1,120, 31, 1, 15, 31, 1, 8, 31, 31, 7, 26, - 95, 23, 17, 19, 3, 0, 95, 7, 4, 0, 63,225, 51, 63, 51,225, 17, 57, 47, 94, 93, 93, 93,225, 17, 1, 51, 47, 93, 16,230, 17, - 57, 57, 47, 47, 16,225, 50, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 46, 2, 39, 53, - 22, 22, 51, 50, 18, 19, 33, 53, 33, 46, 3, 1,186, 94,148, 63, 78, 79,196,108,162,244,162, 82, 82,165,247,164, 58, 97, 86, 78, - 39, 78,160, 89,237,247, 6,253,139, 2,113, 9, 71,115,157, 5, 39, 46, 32,156, 42, 44,109,193,254,246,157,179,254,224,202,109, - 7, 14, 23, 15,162, 23, 35, 1, 23, 1, 6,162,111,176,122, 64, 0, 2, 0,199,255,236, 7,158, 5,205, 0, 26, 0, 46, 0, 94, - 64, 60, 27, 91, 10,144, 17, 1, 17, 17, 13, 37, 91, 0,103, 48, 15, 48, 1, 63, 48,111, 48,127, 48,239, 48,255, 48, 5, 48, 64, - 17, 20, 72, 16, 12, 90, 13,100, 47, 42, 95, 22, 4, 11, 95, 15, 16, 1, 8, 16, 16, 13, 14, 3, 13, 18, 32, 95, 5, 19, 0, 63, -225, 63, 63, 18, 57, 47, 94, 93,225, 63,225, 1, 16,246,225, 50, 43, 93,113, 16,246,225, 17, 57, 47, 93, 51,225, 49, 48, 1, 20, - 2, 6, 6, 35, 34, 38, 38, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, - 52, 46, 2, 35, 34, 14, 2, 7,158, 79,155,229,150,151,225,152, 80, 6,254,174,186,186, 1, 86, 11, 85,152,219,145,149,229,154, - 79,251,250, 49,103,157,108,109,157,102, 48, 48,101,157,108,109,158,103, 49, 2,221,169,254,234,198,108,100,183, 1, 3,160,253, - 86, 5,182,253,152,146,236,167, 90,107,197,254,235,171,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, - 0, 25, 0, 0, 3,242, 5,182, 0, 15, 0, 28, 0,155, 64, 9, 6, 0, 1,230, 0,246, 0, 2, 0,184,255,248, 64, 36, 11, 15, - 72, 28, 14, 90, 3, 0, 0, 8, 13,101, 30, 63, 30,143, 30,159, 30,191, 30,223, 30, 5, 32, 30, 1, 6, 1, 1,230, 1,246, 1, - 2, 1,184,255,248, 64, 13, 11, 15, 72, 1, 75, 2, 1, 2, 64, 8, 11, 72, 2,184,255,240, 64, 38, 2, 2, 22, 91,223, 8,239, - 8,255, 8, 3, 8, 64, 15, 19, 72, 7, 8, 23, 8, 2, 8, 8,102, 29, 28, 96, 3, 15, 15, 1, 17, 96, 11, 3, 14, 1, 18, 0, - 63, 51, 63,225, 18, 57, 47, 51,225, 1, 16,246, 94, 93, 43, 93,225, 51, 47, 56, 43, 93, 51, 43, 93,113, 93, 93, 16,246, 17, 57, - 17, 51,225, 50, 43, 93,113, 49, 48, 1, 1, 35, 1, 46, 3, 53, 52, 54, 51, 33, 17, 35, 17, 17, 35, 34, 14, 2, 21, 20, 30, 2, - 51, 51, 2, 66,254,178,219, 1,125, 55, 99, 75, 44,253,251, 1,117,187,188, 74,115, 79, 41, 39, 78,119, 81,180, 2, 92,253,164, - 2,143, 20, 62, 97,136, 93,198,201,250, 74, 2, 92, 2,187, 29, 62, 97, 68, 66,105, 74, 40, 0,255,255, 0, 94,255,236, 3,156, - 4, 94, 2, 6, 0, 68, 0, 0, 0, 2, 0,117,255,236, 4, 33, 6, 35, 0, 39, 0, 59, 0, 73, 64, 44, 45, 72, 9, 30, 87, 61, -208, 61, 1,127, 61, 1, 64, 61, 1, 15, 61, 1, 6, 19, 55, 72, 0, 86, 60, 50, 80, 19, 25, 25, 8, 40, 80, 35, 22, 9, 8, 11, - 16, 72, 9, 81, 8, 1, 0, 63,225, 43, 63,225, 17, 57, 47, 51,225, 1, 16,246,225, 50, 94, 93, 93, 93, 93, 16,246, 50,225, 49, - 48, 19, 52, 18, 54, 54, 55, 54, 54, 55, 23, 14, 3, 7, 14, 3, 7, 51, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, - 1, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 7, 20, 30, 2,117, 49,104,162,113,125,242,102, 33, 50,123,125,117, 44, 62,100, - 72, 41, 4, 13, 18, 62, 84,107, 64, 99,150,101, 50, 69,124,174,104,107,173,123, 66, 1,225, 60, 98, 70, 38, 26, 58, 90, 65, 61, -106, 83, 57, 13, 25, 65,114, 2,147,181, 1, 25,203,126, 25, 27, 49, 20,160, 8, 22, 24, 24, 10, 14, 66,113,165,113, 29, 60, 49, - 32, 73,131,180,108,137,206,138, 69, 89,173,253,254,148, 39, 88,143,105, 84,134, 95, 51, 48, 68, 73, 26,100,188,147, 89, 0, 3, - 0,174, 0, 0, 4, 25, 4, 74, 0, 21, 0, 32, 0, 43, 0, 92, 64, 58, 3, 27, 33, 70, 0, 0, 15, 22, 71, 9, 87, 45, 32, 45, - 1, 64, 45,144, 45,176, 45,208, 45,240, 45, 5, 15, 45, 1, 6, 38, 27, 71, 15, 84, 44, 3, 26, 80,191, 38, 1,121, 38,137, 38, - 2, 38, 38, 27, 37, 80, 16, 15, 27, 80, 15, 21, 0, 63,225, 63,225, 18, 57, 47, 93, 93,225, 57, 1, 16,246,225, 50, 94, 93, 93, -113, 16,246,225, 18, 57, 47,225, 18, 57, 49, 48, 1, 20, 6, 7, 21, 30, 3, 21, 20, 14, 2, 35, 33, 17, 33, 50, 30, 2, 3, 52, - 38, 35, 33, 17, 33, 50, 62, 2, 3, 52, 38, 35, 33, 17, 51, 50, 62, 2, 3,246,123,107, 56, 97, 71, 41, 47,101,159,113,254, 57, - 1,197, 83,142,103, 59,144,130,128,255, 0, 1, 4, 56, 93, 67, 38, 30,109,108,254,245,236, 62, 92, 63, 31, 3, 53,104,117, 18, - 7, 7, 36, 61, 91, 63, 67,116, 86, 48, 4, 74, 28, 64,107,253,199, 92, 72,254,168, 18, 42, 69, 2, 12, 77, 64,254,215, 15, 36, - 60, 0, 0, 1, 0,174, 0, 0, 3, 10, 4, 74, 0, 5, 0, 47, 64, 28, 0, 0, 16, 0, 2, 0, 0, 7,160, 7, 1,129, 7, 1, - 80, 7, 1, 2, 71, 3, 84, 6, 1, 80, 4, 15, 2, 21, 0, 63, 63,225, 1, 16,246,225, 93, 93, 93, 17, 51, 47, 93, 49, 48, 1, - 33, 17, 35, 17, 33, 3, 10,254, 90,182, 2, 92, 3,176,252, 80, 4, 74, 0, 2, 0, 41,254,131, 4, 55, 4, 74, 0, 15, 0, 23, - 0,121, 64, 16, 23, 7, 18, 70, 12, 47, 7, 63, 7, 2, 11, 7, 27, 7, 2, 7,184,255,240, 64, 57,162, 12,178, 12, 2, 4, 12, - 20, 12, 2, 7, 12, 7, 12, 5, 16, 71, 14, 1, 70, 0, 0, 32, 14, 1, 14, 85, 25,175, 25,207, 25, 2, 48, 25, 1, 47, 25, 1, - 4, 70, 5, 5, 24, 18, 79, 12, 15, 23, 14, 6, 80, 3, 21, 5, 0,251, 0, 63, 50, 63,225, 50, 50, 63,225, 17, 1, 51, 47,225, - 93, 93, 93, 16,228, 93, 50, 47,225, 16,225, 17, 57, 57, 47, 47, 93, 93, 56, 93, 93, 16,225, 17, 51, 49, 48, 1, 35, 17, 33, 17, - 35, 17, 51, 62, 2, 18, 55, 33, 17, 51, 33, 17, 35, 14, 3, 7, 4, 55,174,253, 78,174, 86, 65, 99, 67, 34, 1, 2, 23,151,254, -178,192, 7, 36, 58, 81, 52,254,131, 1,125,254,131, 2, 23, 95,223,243, 1, 0,127,252, 80, 3, 36,103,215,209,194, 83,255,255, - 0,113,255,236, 3,225, 4, 94, 2, 6, 0, 72, 0, 0, 0, 1, 0, 4, 0, 0, 5,190, 4, 74, 0, 17, 0,156, 64, 31, 6, 3, - 3, 10, 70, 15, 0, 0,214, 11, 1,185, 11,201, 11, 2,166, 11, 1,151, 11, 1, 11, 11, 14, 7, 4, 5, 5, 8, 7,184,255,192, -179, 18, 21, 72, 7,184,255,192, 64, 36, 7, 11, 72, 15, 7, 1, 6, 7, 16, 7, 7, 19, 0, 19, 16, 19, 2,223, 19, 1, 48, 19, -112, 19,144, 19, 3, 15, 19, 1, 7, 17, 16, 16, 13, 14,184,255,240, 64, 15, 14, 14, 18, 3, 0, 0, 1, 13, 8, 10, 21, 17, 4, - 1, 15, 0, 63, 51, 51, 63, 51, 51, 18, 57, 17, 51, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 93,113, 17, 51, 47, 56, 94, - 93, 43, 43, 51, 51, 17, 51, 17, 18, 57, 47, 93, 93, 93, 93, 51, 17, 51,225, 50, 17, 51, 49, 48, 1, 17, 51, 17, 1, 51, 1, 1, - 35, 1, 17, 35, 17, 1, 35, 1, 1, 51, 2,143,164, 1,160,197,254, 88, 1,206,206,254, 67,164,254, 68,207, 1,207,254, 88,197, - 2, 53, 2, 21,253,235, 2, 21,253,235,253,203, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21, 0, 1, 0, 68,255,236, 3, 82, - 4, 94, 0, 57, 0, 95, 64, 58, 5, 70, 22, 27, 22, 57, 22, 57, 22, 12, 52, 71, 33, 87, 59,176, 59,192, 59,208, 59, 3,111, 59, - 1, 32, 59, 1, 41, 12, 86, 58, 27, 56, 80,207, 57, 1,137, 57,153, 57, 2, 15, 57, 1, 8, 57, 57, 17, 47, 80, 38, 22, 8, 80, - 17, 16, 0, 63,225, 63,225, 17, 57, 47, 94, 93, 93, 93,225, 57, 1, 16,230, 50, 93, 93, 93, 16,246,225, 18, 57, 57, 47, 47, 18, - 57, 16,225, 49, 48, 1, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, - 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 38, 35, 35, 53, 1,113, 61,100, 72, 39,115,108, 71,129, 75, 63, - 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 44, 82, 63, 38, 53,108,166,113,109,175, 58, 31, 76, 87, 97, 51, 55, 96, 70, - 41,133,138,129, 2,135, 18, 39, 64, 45, 77, 77, 38, 34,147, 20, 28, 19, 9, 38, 74,109, 70, 50, 77, 59, 41, 14, 11, 14, 44, 66, - 90, 62, 67,117, 86, 49, 35, 34,166, 16, 31, 24, 15, 18, 42, 69, 51, 94, 91,153, 0, 1, 0,174, 0, 0, 4, 59, 4, 74, 0, 11, - 0, 81, 64, 27, 3, 16, 9, 24, 72, 3, 6, 70, 5, 85, 13, 0, 13, 16, 13, 32, 13,160, 13,192, 13,208, 13,240, 13, 7, 13,184, -255,192,179, 14, 17, 72, 9,184,255,240, 64, 17, 9, 24, 72, 9, 0, 70, 10, 84, 12, 8, 3, 11, 15, 6, 2, 10, 21, 0, 63, 51, - 51, 63, 51, 51, 1, 16,246,225, 50, 43, 43, 93, 16,246,225, 50, 43, 49, 48, 1, 17, 7, 1, 51, 17, 35, 17, 19, 1, 35, 17, 1, - 90, 12, 2, 4,233,172, 11,253,254,234, 4, 74,253,100,252, 3,152,251,182, 2,135, 1, 15,252,106, 4, 74, 0,255,255, 0,174, - 0, 0, 4, 59, 6, 23, 2, 38, 1,210, 0, 0, 1, 6, 2, 54, 37, 0, 0, 21,180, 1, 17, 17, 38, 1,184,255,255,180, 22, 12, - 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174, 0, 0, 3,229, 4, 74, 0, 10, 0, 65, 64, 35, 0, 1, 1, 4, 0, 3, - 16, 3, 2, 3, 16, 3, 3, 12, 15, 12, 1, 10, 2, 6, 71, 7, 84, 11, 5, 2, 10, 10, 7, 0, 8, 15, 4, 7, 21, 0, 63, 51, - 63, 51, 18, 57, 17, 51, 51, 1, 16,246,225, 50, 50, 93, 17, 51, 47, 56, 93, 51, 51, 17, 51, 49, 48, 1, 51, 1, 1, 35, 1, 17, - 35, 17, 51, 17, 2,250,196,254, 97, 1,198,206,254, 75,180,180, 4, 74,253,241,253,197, 2, 45,253,211, 4, 74,253,235, 0, 1, - 0, 16,255,242, 3,176, 4, 74, 0, 20, 0, 76, 64, 49, 3, 70, 4, 19, 1,244, 19, 1,128, 19,144, 19,192, 19,208, 19, 4, 84, - 19, 1, 19, 19, 11, 1, 71, 0, 85, 22, 15, 22, 47, 22,255, 22, 3, 6, 11, 11, 21, 3, 80, 19, 15, 14, 79, 8, 22, 1, 21, 0, - 63, 63,225, 63,225, 17, 1, 51, 47, 94, 93, 16,246,225, 17, 57, 47, 93, 93, 93,113,225, 49, 48, 33, 35, 17, 33, 2, 2, 6, 6, - 35, 34, 38, 39, 53, 22, 51, 50, 54, 54, 18, 55, 33, 3,176,182,254,254, 20, 64, 95,130, 86, 28, 49, 16, 23, 27, 55, 89, 69, 51, - 18, 2, 84, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250, 0, 1, 0,174, 0, 0, 5, 16, 4, 74, 0, 32, - 0, 94, 64, 63, 31, 1, 70, 0, 85, 34,207, 34, 1, 64, 34, 80, 34, 2, 15, 34, 1, 6, 19, 16, 70, 17, 84, 33, 2, 15, 59, 15, - 75, 15, 91, 15, 3, 9, 15, 25, 15, 41, 15, 3, 15, 31, 18, 15, 52, 25, 68, 25, 84, 25, 3, 6, 25, 22, 25, 38, 25, 3, 25, 9, - 1, 17, 21, 0, 63, 51, 51, 51, 93, 93, 63, 51, 51, 93, 93, 17, 51, 1, 16,246,225, 50, 94, 93, 93, 93, 16,246,225, 50, 49, 48, - 33, 35, 17, 14, 3, 7, 1, 35, 1, 46, 3, 39, 17, 35, 17, 51, 1, 30, 3, 23, 62, 3, 55, 1, 51, 5, 16,161, 6, 17, 20, 18, - 7,254,248,135,254,247, 5, 17, 20, 18, 7,162,221, 1, 11, 13, 22, 19, 15, 4, 6, 14, 19, 22, 13, 1, 14,217, 3,129, 21, 57, - 59, 54, 18,253, 80, 2,176, 13, 49, 59, 62, 26,252,127, 4, 74,253, 71, 34, 67, 60, 50, 16, 17, 49, 59, 65, 33, 2,189, 0, 1, - 0,174, 0, 0, 4, 59, 4, 74, 0, 11, 0, 91, 64, 23, 2, 6, 71, 5, 85, 13, 0, 13, 32, 13, 2, 48, 13, 64, 13, 80, 13,208, - 13,240, 13, 5, 13,184,255,192, 64, 35, 14, 17, 72, 1, 9, 71, 10, 84, 12, 8, 80,235, 1, 1,169, 1,185, 1, 2, 15, 1, 31, - 1, 47, 1, 3, 6, 1, 1, 10, 5, 21, 3, 0, 15, 0, 63, 50, 63, 51, 57, 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 43, 93, -113, 16,246,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1,100, 2, 33,182,182,253,223,182, 4, 74,254, 57, - 1,199,251,182, 1,233,254, 23, 4, 74,255,255, 0,113,255,236, 4, 45, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0,174, 0, 0, - 4, 18, 4, 74, 0, 7, 0, 45, 64, 28, 5, 71, 4, 85, 9, 16, 9, 32, 9, 96, 9,112, 9,128, 9, 5, 0, 71, 1, 84, 8, 7, - 80, 2, 15, 5, 0, 21, 0, 63, 50, 63,225, 1, 16,246,225, 93, 16,246,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 1,100,182, - 3,100,182,254, 8, 4, 74,251,182, 3,176, 0,255,255, 0,174,254, 20, 4, 63, 4, 94, 2, 6, 0, 83, 0, 0,255,255, 0,113, -255,236, 3,111, 4, 94, 2, 6, 0, 70, 0, 0, 0, 1, 0, 41, 0, 0, 3, 94, 4, 74, 0, 7, 0, 88, 64, 60, 32, 9, 1,223, - 9, 1,112, 9,128, 9, 2, 95, 9, 1, 15, 0, 1,204, 0, 1, 15, 0,191, 0, 2, 6, 0, 0, 2, 71, 3, 96, 5,112, 5,208, - 5, 3, 31, 5, 1, 5, 5, 0, 3, 16, 3,176, 3,192, 3, 4, 3, 1, 5, 80, 6, 15, 2, 21, 0, 63, 63,225, 50, 1, 47, 93, - 51, 47, 93, 93, 16,225, 50, 47, 94, 93, 93,113, 93, 93, 93,113, 49, 48, 1, 33, 17, 35, 17, 33, 53, 33, 3, 94,254,193,183,254, -193, 3, 53, 3,176,252, 80, 3,176,154,255,255, 0, 10,254, 20, 3,223, 4, 74, 2, 6, 0, 92, 0, 0, 0, 3, 0,113,254, 20, - 5, 35, 6, 20, 0, 25, 0, 34, 0, 41, 0,116, 64, 75, 39, 0, 11, 70, 29, 23, 12, 13, 19, 73,185, 12,201, 12, 2,151, 12,167, - 12, 2, 12, 12, 18, 35, 72, 5, 87, 43, 32, 43, 1, 15, 43, 1,159, 43,239, 43, 2,128, 43, 1,111, 43, 1, 64, 43, 1, 15, 43, - 31, 43, 2, 6, 26, 72, 18, 86, 42, 24, 0, 38, 30, 80, 0, 23, 16, 39, 29, 80, 10, 13, 22, 11, 27, 0, 63, 63, 51,225, 50, 63, - 51,225, 50, 63, 1, 16,246,225, 94, 93, 93, 93, 93, 93,113,113, 16,246,225, 17, 57, 47, 93, 93, 43, 51, 51,225, 50, 50, 49, 48, - 1, 30, 3, 21, 20, 14, 2, 7, 17, 35, 17, 46, 3, 53, 52, 62, 2, 55, 17, 51, 1, 20, 22, 23, 17, 14, 3, 5, 52, 38, 39, 17, - 54, 54, 3, 33,113,189,136, 76, 71,134,190,119,170,114,191,137, 76, 71,133,193,121,170,254, 12,156,174, 88,125, 80, 37, 3, 57, -155,170,172,153, 4, 90, 12, 85,143,198,125,125,200,145, 86, 11,254, 36, 1,220, 10, 86,144,201,126,125,199,143, 85, 11, 1,186, -252, 19,187,210, 19, 3, 60, 9, 61,103,145, 94,186,204, 20,252,198, 20,209, 0,255,255, 0, 35, 0, 0, 3,219, 4, 74, 2, 6, - 0, 91, 0, 0, 0, 1, 0,174,254,131, 4,178, 4, 74, 0, 11, 0, 68, 64, 43, 1, 71, 15, 0, 1, 6, 0, 0, 7, 71,143, 10, - 1, 10, 13, 16, 13, 32, 13, 96, 13,112, 13,128, 13,192, 13, 6, 6, 71, 3, 84, 12, 8, 4, 15, 10, 6, 80, 3, 21, 1,251, 0, - 63, 63,225, 50, 63, 51, 1, 16,246,225, 93, 16,212, 93,225, 51, 47, 94, 93,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, - 17, 51, 4,178,182,252,178,182, 1,248,182,160,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 0, 1, 0,154, 0, 0, 3,254, - 4, 74, 0, 24, 0, 49, 64, 28, 8, 12, 71, 11, 85, 26, 16, 26, 96, 26,128, 26, 3, 1, 71, 23, 84, 25, 8, 3, 80, 18, 18, 11, - 21, 9, 0, 15, 0, 63, 50, 63, 57, 47,225, 51, 1, 16,246,225, 93, 16,246,225, 50, 49, 48, 1, 17, 20, 51, 50, 62, 2, 55, 17, - 51, 17, 35, 17, 14, 3, 35, 34, 46, 2, 53, 17, 1, 80,184, 45, 80, 76, 77, 42,182,182, 44, 80, 85, 94, 58, 78,122, 82, 43, 4, - 74,254,102,174, 15, 28, 44, 28, 1,213,251,182, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1,166, 0, 1, 0,174, 0, 0, 6, 70, - 4, 74, 0, 11, 0,102, 64, 67, 0, 71,182, 9,198, 9, 2,169, 9, 1, 3,116, 9,132, 9,148, 9, 3,103, 9, 1, 6, 9, 9, - 5, 1, 71, 4, 85, 13, 32, 13, 1, 15, 13, 1,128, 13,240, 13, 2,111, 13, 1, 64, 13, 1, 15, 13, 47, 13, 2, 6, 8, 71, 5, - 84, 12, 0, 8, 80, 5, 21, 10, 6, 2, 15, 0, 63, 51, 51, 63,225, 50, 1, 16,246,225, 94, 93, 93, 93, 93,113,113, 16,246,225, - 17, 57, 47, 95, 93, 93, 95, 93, 93,225, 49, 48, 37, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 3,213, 1,186,183,250,104,182, - 1,187,182,154, 3,176,251,182, 4, 74,252, 80, 3,176, 0, 1, 0,174,254,131, 6,229, 4, 74, 0, 15, 0,119, 64, 78, 10, 71, -182, 7,198, 7, 2,169, 7, 1, 3,116, 7,132, 7,148, 7, 3,103, 7, 1, 6, 7, 7, 3, 11, 71, 14, 1, 71, 14, 0, 1, 0, - 0,191, 14, 1, 14, 17, 32, 17, 1, 15, 17, 1, 64, 17,128, 17,224, 17,240, 17, 4, 15, 17, 47, 17, 2, 6, 6, 71, 3, 84, 16, - 12, 8, 4, 15, 14, 10, 6, 80, 3, 21, 1,251, 0, 63, 63,225, 50, 50, 63, 51, 51, 1, 16,246,225, 94, 93, 93,113,113, 16,196, - 93, 50, 47, 93,225, 16,225, 17, 57, 47, 95, 93, 93, 95, 93, 93,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 33, 17, - 51, 17, 51, 6,229,182,250,127,182, 1,187,182, 1,186,183,159,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 3,176,252, 80, - 0, 2, 0, 41, 0, 0, 4,252, 4, 74, 0, 14, 0, 27, 0, 92, 64, 62, 15, 71, 4, 87, 29, 80, 29, 96, 29,144, 29,224, 29, 4, - 63, 29, 1, 0, 22, 71, 10, 0, 12, 16, 12, 2,176, 12,240, 12, 2, 12, 12, 0, 10, 16, 10, 80, 10, 96, 10,160, 10, 5, 8, 10, - 21, 80,191, 0, 1, 0, 0, 22, 12, 80, 13, 15, 22, 80, 10, 21, 0, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47, 94, 93, 51, 47, - 93,113, 16,225, 50, 93, 93, 16,246,225, 49, 48, 1, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 1, 52, 46, 2, 35, 33, - 17, 33, 50, 62, 2, 2, 72, 1, 20,212,204, 47,101,159,113,254, 57,254,152, 2, 31, 2, 2, 33, 65, 96, 64,255, 0, 1, 4, 55, - 93, 68, 38, 2,135,156,155, 77,124, 88, 47, 3,176,154,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 0, 3, 0,174, 0, 0, - 5, 80, 4, 74, 0, 12, 0, 16, 0, 29, 0, 97, 64, 64, 24, 71, 0, 4, 16, 4, 32, 4,112, 4,208, 4, 5, 6, 4, 4, 10, 14, - 71, 13, 85, 31, 15, 31, 1,191, 31,207, 31,223, 31,255, 31, 4,160, 31, 1, 15, 31,127, 31, 2, 7, 0, 18, 71, 10, 84, 30, 17, - 80,191, 0, 1, 0, 0, 15, 11, 15, 18, 80, 14, 10, 21, 0, 63, 51,225, 63, 51, 57, 47, 93,225, 1, 16,246,225, 50, 94, 93, 93, - 93,113, 16,246,225, 17, 57, 47, 94, 93,225, 49, 48, 1, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 51, 1, 35, 17, 51, 1, 17, 51, - 50, 62, 2, 53, 52, 46, 2, 35, 1,100,236,212,204, 47,101,159,113,254, 98,182, 3,236,182,182,252, 20,219, 56, 93, 67, 38, 33, - 65, 96, 64, 2,135,156,155, 77,124, 88, 47, 4, 74,251,182, 4, 74,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 0, 2, - 0,174, 0, 0, 4, 25, 4, 74, 0, 12, 0, 25, 0, 64, 64, 41, 20, 71, 4, 87, 27, 0, 27, 1, 0, 27, 32, 27,112, 27,144, 27, -176, 27,208, 27, 6, 8, 0, 14, 71, 10, 84, 26, 13, 80,191, 0, 1, 0, 0, 11, 15, 14, 80, 10, 21, 0, 63,225, 63, 57, 47, 93, -225, 1, 16,246,225, 50, 94, 93,113, 16,246,225, 49, 48, 1, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 51, 17, 17, 33, 50, 62, 2, - 53, 52, 46, 2, 35, 1,100, 1, 21,212,204, 47,101,159,113,254, 57,182, 1, 4, 56, 93, 67, 38, 33, 65, 96, 64, 2,135,156,155, - 77,124, 88, 47, 4, 74,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 1, 0, 55,255,236, 3, 66, 4, 94, 0, 38, 0, 94, - 64, 62, 14, 14, 4, 12, 15, 72, 34, 87, 40,143, 40,175, 40, 2, 64, 40, 1, 24, 15, 4, 31, 4, 47, 4, 3, 4, 64, 12, 17, 72, - 4, 88, 39, 13, 80,239, 14, 1,169, 14,185, 14, 2, 15, 14, 31, 14, 47, 14, 3, 6, 14, 14, 7, 18, 81, 29, 16, 7, 81, 0, 22, - 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93, 93,225, 1, 16,230, 43,113, 50, 93, 93, 16,246,225, 50, 17, 57, 47, 49, 48, 5, 34, - 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 33, 53, 33, 38, 38, 35, 34, 14, 2, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 1, - 66, 89,124, 54, 54,131, 82, 73,116, 82, 48, 4,254, 35, 1,219, 13,146,140, 25, 59, 60, 56, 23, 53, 24, 64, 72, 78, 38,102,179, -132, 77, 81,140,186, 20, 30, 29,162, 25, 37, 40, 84,132, 92,154,166,151, 9, 15, 19, 10,154, 12, 22, 16, 9, 62,137,219,157,146, -212,138, 67, 0, 0, 2, 0,174,255,236, 6, 8, 4, 94, 0, 26, 0, 38, 0,114, 64, 75, 27, 72, 10, 32, 17, 1, 79, 17, 1, 17, - 17, 13, 33, 72, 0, 87, 40, 15, 40, 47, 40, 2,239, 40,255, 40, 2, 71, 40, 1, 15, 40, 47, 40, 2, 16, 12, 71, 13, 84, 39, 36, - 80, 22, 16, 11, 80,239, 16, 1,169, 16,185, 16, 2, 44, 16, 1, 11, 16, 27, 16, 2, 6, 16, 16, 13, 14, 15, 13, 21, 30, 80, 5, - 22, 0, 63,225, 63, 63, 18, 57, 47, 94, 93, 93, 93, 93,225, 63,225, 1, 16,246,225, 50, 93, 93, 93,113, 16,246,225, 17, 57, 47, - 93,113, 51,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 30, 2, 5, 20, 22, 51, - 50, 54, 53, 52, 38, 35, 34, 6, 6, 8, 64,120,171,106, 98,162,117, 70, 7,254,239,182,182, 1, 19, 10, 72,118,160, 99, 98,167, -121, 68,253, 41,128,142,143,126,128,143,142,126, 2, 39,137,213,145, 76, 66,129,190,124,254, 23, 4, 74,254, 57,116,177,120, 62, - 75,145,211,136,209,211,211,209,209,207,207, 0, 0, 2, 0, 35, 0, 0, 3,145, 4, 74, 0, 17, 0, 28, 0, 83, 64, 20, 2, 17, - 17, 7, 24, 15, 71, 14, 85, 30, 15, 30,111, 30,143, 30, 3, 6, 0, 1,184,255,240, 64, 25, 1, 1, 18, 70, 7, 64, 18, 21, 72, - 7, 86, 29, 2, 16, 80, 24, 24, 0, 25, 80, 13, 15, 15, 0, 21, 0, 63, 50, 63,225, 18, 57, 47,225, 50, 1, 16,246, 43,225, 51, - 47, 56, 51, 94, 93, 16,246,225, 50, 17, 57, 17, 51, 49, 48, 51, 35, 1, 46, 3, 53, 52, 62, 2, 51, 33, 17, 35, 17, 35, 3, 20, - 30, 2, 51, 51, 17, 35, 34, 6,233,198, 1, 35, 45, 84, 65, 40, 56,100,138, 83, 1,188,182,244,221, 37, 65, 90, 54,219,254,107, -104, 1,205, 12, 48, 76,108, 71, 78,121, 81, 42,251,182, 1,176, 1, 84, 48, 70, 46, 22, 1,102, 95, 0,255,255, 0,113,255,236, - 3,225, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106,218, 0, 0, 23, 64, 13, 3, 2, 49, 17, 38, 3, 2, 0, 40, 60, 5, 15, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 18,254, 20, 4, 18, 6, 20, 0, 49, 0, 83, 64, 50, 31, 23, 12, 71, 45, 85, - 51, 16, 51, 96, 51,128, 51, 3, 35, 34, 30, 22, 71, 27, 23, 84, 50, 33, 25, 79, 30, 26, 26, 28, 35, 16, 80, 0, 41, 16, 41, 32, - 41, 3, 41, 15, 28, 0, 23, 21, 7, 80, 0, 27, 0, 63,225, 63, 63, 63, 93,225, 51, 18, 57, 47, 51,225, 50, 1, 16,246, 50,225, - 50, 50, 50, 93, 16,246,225, 18, 57, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 52, 38, 35, 34, 14, 2, 21, 17, - 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 20, 14, 2, 2,240, 48, 63, 23, 26, 54, 35, - 27, 46, 35, 19,105,112, 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, 25, 69, 82, 92, 48,183,185, 34, 72,109,254, 20, - 14, 11,148, 10, 11, 15, 39, 65, 51, 3, 68,130,130, 52,102,148, 96,253,240, 4,213,137,182,182,137,184,144, 43, 63, 42, 20,191, -210,252,190, 77,123, 87, 47, 0,255,255, 0,174, 0, 0, 3, 10, 6, 33, 2, 38, 1,205, 0, 0, 1, 6, 0,118,212, 0, 0, 19, - 64, 11, 1, 18, 17, 38, 1, 69, 6, 12, 3, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,113,255,236, 3,111, 4, 94, 0, 34, - 0, 79, 64, 49, 23, 23, 22, 31, 13, 36,143, 36,175, 36, 2, 64, 36, 1, 22, 25, 72, 5, 86, 35, 25, 80,239, 22, 1,169, 22,185, - 22, 2, 15, 22, 31, 22, 47, 22, 3, 6, 22, 22, 28, 19, 81, 10, 16, 28, 81, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 94, 93, 93, - 93,225, 1, 16,246,225, 50, 93, 93, 16,206, 50, 17, 57, 47, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, - 35, 34, 6, 7, 33, 21, 33, 22, 22, 51, 50, 54, 55, 21, 6, 6, 2, 82,101,176,130, 74, 76,133,178,102, 78,149, 50, 54, 23, 56, - 60, 58, 26,139,146, 14, 1,219,254, 35, 9,146,138, 81,131, 54, 54,123, 20, 63,137,213,150,157,219,137, 62, 34, 25,154, 10, 19, - 15, 9,151,166,154,184,164, 37, 25,162, 29, 30,255,255, 0, 90,255,236, 3, 63, 4, 94, 2, 6, 0, 86, 0, 0,255,255, 0,160, - 0, 0, 1,117, 5,229, 2, 6, 0, 76, 0, 0,255,255,255,238, 0, 0, 2, 37, 5,217, 2, 38, 0,243, 0, 0, 1, 7, 0,106, -254,187, 0, 0, 0, 23, 64, 13, 2, 1, 13, 17, 38, 2, 1, 0, 4, 24, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, -255,188,254, 20, 1,117, 5,229, 2, 6, 0, 77, 0, 0, 0, 2, 0, 16,255,242, 6, 18, 4, 74, 0, 29, 0, 42, 0,107, 64, 69, - 12, 70, 28, 0, 37, 71, 10,212, 28, 1,144, 28,160, 28, 2, 36, 28, 1, 0, 28, 1, 28, 10, 28, 10, 20, 30, 71, 4, 87, 44, 15, - 44, 47, 44, 63, 44, 95, 44,127, 44,191, 44,239, 44, 7, 20, 20, 43, 36, 80,191, 0, 1, 0, 0, 37, 12, 80, 28, 15, 23, 79, 17, - 22, 37, 80, 10, 21, 0, 63,225, 63,225, 63,225, 18, 57, 47, 93,225, 17, 1, 51, 47, 93, 16,246,225, 17, 57, 57, 47, 47, 93, 93, - 93, 93, 16,225, 50, 16,225, 49, 48, 1, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, 51, - 50, 54, 54, 18, 55, 33, 1, 52, 46, 2, 35, 35, 17, 51, 50, 62, 2, 3,135,236,212,203, 46,101,159,113,254, 98,217, 20, 64, 95, -130, 86, 28, 49, 16, 23, 27, 55, 89, 69, 51, 18, 2, 43, 1,217, 33, 65, 96, 64,215,219, 56, 93, 67, 38, 2,135,156,155, 77,124, - 88, 47, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 2, - 0,174, 0, 0, 6,117, 4, 74, 0, 20, 0, 33, 0, 83, 64, 48, 5, 28, 71, 2, 15, 15, 19, 21, 71, 9, 87, 35,239, 35, 1,128, - 35, 1, 63, 35, 1, 16, 35, 1, 1, 18, 71, 19, 84, 34, 27, 17, 80, 5,191, 1, 1, 1, 1, 0, 28, 80, 19, 15, 21, 3, 0, 15, - 0, 63, 50, 63, 51,225, 17, 57, 47, 93, 51,225, 50, 1, 16,246,225, 50, 93, 93, 93, 93, 16,246,225, 17, 57, 47, 51,225, 50, 49, - 48, 1, 17, 33, 17, 51, 17, 51, 50, 22, 21, 20, 14, 2, 35, 33, 17, 33, 17, 35, 17, 1, 52, 46, 2, 35, 35, 17, 51, 50, 62, 2, - 1,100, 1,207,182,236,212,204, 47,101,159,113,254, 98,254, 49,182, 5, 21, 33, 65, 97, 63,216,220, 55, 93, 68, 38, 4, 74,254, - 57, 1,199,254, 61,156,155, 77,124, 88, 47, 1,233,254, 23, 4, 74,252,248, 49, 66, 40, 17,254,168, 17, 41, 66, 0, 1, 0, 18, - 0, 0, 4, 18, 6, 20, 0, 33, 0, 83, 64, 50,104, 20, 1, 20, 11, 0, 71, 33, 85, 35, 16, 35, 96, 35,128, 35, 3, 23, 22, 18, - 10, 71, 15, 11, 84, 34, 21, 13, 79, 18, 14, 14, 16, 23, 4, 80, 0, 29, 16, 29, 32, 29, 3, 29, 15, 16, 0, 11, 0, 21, 0, 63, - 50, 63, 63, 93,225, 51, 18, 57, 47, 51,225, 50, 1, 16,246, 50,225, 50, 50, 50, 93, 16,246,225, 17, 57, 93, 49, 48, 33, 17, 52, - 38, 35, 34, 14, 2, 21, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 62, 3, 51, 50, 22, 21, 17, 3, 92,105,112, - 81,110, 67, 29,182,156,156,182, 1,123,254,133, 8, 10, 25, 69, 82, 92, 48,183,185, 2,154,130,130, 52,102,148, 96,253,240, 4, -213,137,182,182,137,184,144, 43, 63, 42, 20,191,210,253, 92, 0,255,255, 0,174, 0, 0, 3,229, 6, 33, 2, 38, 1,212, 0, 0, - 1, 6, 0,118, 8, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 12, 11, 17, 7, 3, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10, -254, 20, 3,223, 6, 23, 2, 38, 0, 92, 0, 0, 1, 6, 2, 54,177, 0, 0, 19, 64, 11, 1, 40, 17, 38, 1, 10, 45, 35, 0, 15, - 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,174,254,131, 4, 18, 4, 74, 0, 11, 0, 89, 64, 61,214, 6, 1,183, 6,199, 6, 2, - 6, 71,181, 7,197, 7,213, 7, 3,118, 7,134, 7, 2, 74, 7, 90, 7, 2, 7, 7, 9, 1, 71, 4, 85, 13, 16, 13, 32, 13, 96, - 13,112, 13,128, 13, 5, 0, 71, 9, 84, 12, 5, 0, 80, 9, 21, 6,251, 10, 2, 15, 0, 63, 51, 63, 63,225, 51, 1, 16,246,225, - 93, 16,246,225, 17, 57, 47, 93, 93, 93,225, 93, 93, 49, 48, 37, 33, 17, 51, 17, 33, 17, 35, 17, 33, 17, 51, 1,100, 1,248,182, -254,179,183,254,160,182,154, 3,176,251,182,254,131, 1,125, 4, 74, 0, 0, 1, 0,199, 0, 0, 3,190, 6,227, 0, 7, 0, 68, - 64, 44, 0, 90,223, 3,239, 3,255, 3, 3, 0, 3, 16, 3, 2, 3, 3, 9,176, 9,208, 9, 2, 15, 9,175, 9, 2, 5, 90, 6, -100, 8, 4, 95, 7, 32, 1, 1, 1, 1, 7, 3, 6, 18, 0, 63, 63, 51, 47, 93, 16,225, 1, 16,246,225, 93, 93, 17, 51, 47, 93, - 93,225, 49, 48, 1, 17, 51, 17, 33, 17, 35, 17, 3, 14,176,253,195,186, 5,182, 1, 45,254, 45,250,240, 5,182, 0, 1, 0,174, - 0, 0, 3, 10, 5,137, 0, 7, 0, 48, 64, 28, 5, 71, 0, 0, 16, 0, 2, 0, 0, 9, 2, 71, 3, 84, 8, 16, 6, 32, 6, 2, - 6, 6, 1, 79, 4, 15, 2, 21, 0, 63, 63,225, 51, 47, 93, 1, 16,246,225, 17, 51, 47, 93,225, 49, 48, 1, 33, 17, 35, 17, 33, - 17, 51, 3, 10,254, 90,182, 1,166,182, 3,193,252, 63, 4, 74, 1, 63,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, - 0, 0, 1, 7, 0, 67, 0,231, 1, 82, 0, 21,180, 1, 43, 5, 38, 1,184,255,172,180, 49, 43, 30, 14, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0, 20, 0, 0, 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0, 67, 76, 0, 0, 21,180, 1, 48, 17, 38, 1, -184,255,158,180, 54, 48, 17, 46, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7,115, 2, 38, 0, 58, 0, 0, - 1, 7, 0,118, 1,160, 1, 82, 0, 19, 64, 11, 1, 55, 5, 38, 1,100, 43, 49, 30, 14, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 20, 0, 0, 5,227, 6, 33, 2, 38, 0, 90, 0, 0, 1, 7, 0,118, 1, 23, 0, 0, 0, 19, 64, 11, 1, 60, 17, 38, 1,105, - 48, 54, 17, 46, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 20, 0, 0, 6,254, 7, 43, 2, 38, 0, 58, 0, 0, 1, 7, 0,106, - 1, 57, 1, 82, 0, 25,182, 2, 1, 52, 5, 38, 2, 1,184,255,255,180, 43, 63, 30, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 20, 0, 0, 5,227, 5,217, 2, 38, 0, 90, 0, 0, 1, 7, 0,106, 0,172, 0, 0, 0, 25,182, 2, 1, 57, 17, 38, - 2, 1,184,255,255,180, 48, 68, 17, 46, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,115, 2, 38, - 0, 60, 0, 0, 1, 7, 0, 67,255,114, 1, 82, 0, 21,180, 1, 9, 5, 38, 1,184,255,164,180, 15, 9, 7, 2, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, 1, 7, 0, 67,255, 75, 0, 0, 0, 21,180, 1, - 35, 17, 38, 1,184,255,164,180, 41, 35, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0, 82, 1,209, 3,174, 2,121, 0, 3, - 0, 29,185, 0, 2,255,192, 64, 11, 6, 12, 72, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, - 53, 33, 21, 82, 3, 92, 1,209,168,168, 0, 1, 0, 82, 1,209, 7,174, 2,121, 0, 3, 0, 29,185, 0, 2,255,192, 64, 11, 6, - 12, 72, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, 53, 33, 21, 82, 7, 92, 1,209,168,168, - 0, 1, 0, 82, 1,209, 7,174, 2,121, 0, 3, 0, 29,185, 0, 2,255,192, 64, 11, 6, 12, 72, 2, 2, 5, 0, 0,185, 1,189, - 0, 63,225, 1, 47, 17, 51, 47, 43, 49, 48, 19, 53, 33, 21, 82, 7, 92, 1,209,168,168, 0, 2,255,252,254, 49, 3, 78,255,211, - 0, 3, 0, 7, 0, 42, 64, 24, 4, 0, 0, 9, 5, 1, 5,186,239, 6,255, 6, 2, 6, 2,186, 0, 1, 16, 1, 32, 1, 3, 1, - 0, 47, 93,225, 47, 93,225, 1, 47, 51, 17, 51, 47, 51, 49, 48, 1, 33, 53, 33, 53, 33, 53, 33, 3, 78,252,174, 3, 82,252,174, - 3, 82,254, 49,139,140,139, 0, 0, 1, 0, 23, 3,193, 1, 80, 5,182, 0, 12, 0, 37, 64, 23, 95, 14, 1, 6, 15, 7, 95, 7, -111, 7,191, 7,207, 7, 5, 7, 12,152, 1, 12,156, 6, 3, 0, 63,229, 1, 47,225, 47, 93, 51, 93, 49, 48, 19, 39, 62, 3, 55, - 51, 14, 3, 7, 37, 14, 14, 39, 46, 52, 25,137, 15, 29, 26, 22, 8, 3,193, 22, 54,122,124,123, 56, 61,132,131,124, 53, 0, 1, - 0, 23, 3,193, 1, 80, 5,182, 0, 12, 0, 37, 64, 23, 95, 14, 1, 6, 7, 12,152, 15, 1, 95, 1,111, 1,191, 1,207, 1, 5, - 1, 6,156, 0, 3, 0, 63,229, 1, 47, 93,225, 47, 51, 93, 49, 48, 1, 23, 14, 3, 7, 35, 62, 3, 55, 1, 66, 14, 14, 39, 47, - 51, 25,137, 14, 29, 27, 22, 8, 5,182, 22, 55,121,125,122, 56, 60,132,132,124, 53, 0, 0, 1, 0, 63,254,248, 1,121, 0,238, - 0, 12, 0, 53,185, 0, 14,255,192, 64, 20, 10, 24, 72, 12,152, 15, 1, 95, 1,111, 1,127, 1,207, 1, 5, 1, 1, 6, 7,184, -255,192,183, 16, 21, 72, 7, 6,156, 0,168, 0, 63,229, 1, 47, 43, 51, 51, 47, 93,225, 43, 49, 48, 37, 23, 14, 3, 7, 35, 62, - 3, 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 1, 0, 25, - 3,193, 1, 82, 5,182, 0, 12, 0, 43, 64, 28, 95, 14, 1, 6, 15, 5, 95, 5,111, 5,127, 5,191, 5,207, 5,223, 5, 7, 5, - 5, 0,152, 11, 6,156, 0, 3, 0, 63,229, 1, 47,225, 51, 47, 93, 51, 93, 49, 48, 19, 30, 3, 23, 35, 46, 3, 39, 55,238, 8, - 22, 26, 29, 15,137, 25, 52, 46, 39, 14, 14, 5,182, 53,124,132,132, 60, 56,122,125,121, 55, 22, 0, 2, 0, 23, 3,193, 2,209, - 5,182, 0, 12, 0, 25, 0, 98, 64, 72,191, 27, 1,144, 27, 1, 15, 27, 95, 27,111, 27, 3, 19, 15, 20, 95, 20,111, 20,127, 20, -191, 20,207, 20,223, 20, 7, 20, 20, 25,152, 14, 12,152, 0, 1, 80, 1, 96, 1,112, 1,176, 1,192, 1,208, 1, 7, 1, 1, 6, - 15, 7, 95, 7,111, 7,191, 7,207, 7, 5, 7, 25, 12,156, 19, 6, 3, 0, 63, 51,229, 50, 1, 47, 93, 51, 51, 47, 93,225, 47, -225, 51, 47, 93, 51, 93, 93, 93, 49, 48, 1, 39, 62, 3, 55, 51, 14, 3, 7, 33, 39, 62, 3, 55, 51, 14, 3, 7, 1,166, 14, 14, - 39, 46, 52, 25,137, 15, 29, 26, 22, 8,253,184, 14, 14, 39, 46, 52, 25,137, 15, 29, 26, 22, 8, 3,193, 22, 54,122,124,123, 56, - 61,132,131,124, 53, 22, 54,122,124,123, 56, 61,132,131,124, 53, 0, 2, 0, 23, 3,193, 2,209, 5,182, 0, 12, 0, 25, 0, 98, - 64, 72,191, 27, 1,144, 27, 1, 15, 27, 95, 27,111, 27, 3, 19, 0, 20, 80, 20, 96, 20,112, 20,176, 20,192, 20,208, 20, 7, 20, - 20, 25,152, 15, 14, 95, 14,111, 14,191, 14,207, 14, 5, 14, 12,152, 15, 1, 95, 1,111, 1,127, 1,191, 1,207, 1,223, 1, 7, - 1, 1, 6, 7, 19, 6,156, 13, 0, 3, 0, 63, 50,229, 50, 1, 47, 51, 51, 47, 93,225, 47, 93,225, 51, 47, 93, 51, 93, 93, 93, - 49, 48, 1, 23, 14, 3, 7, 35, 62, 3, 55, 33, 23, 14, 3, 7, 35, 62, 3, 55, 1, 66, 14, 14, 39, 47, 51, 25,137, 14, 29, 27, - 22, 8, 2, 72, 14, 14, 39, 47, 51, 25,137, 14, 29, 27, 22, 8, 5,182, 22, 55,121,125,122, 56, 60,132,132,124, 53, 22, 55,121, -125,122, 56, 60,132,132,124, 53, 0, 2, 0, 63,254,248, 2,250, 0,238, 0, 12, 0, 25, 0,126, 64, 81,208, 27,224, 27,240, 27, - 3,164, 27,180, 27,196, 27, 3,144, 27, 1, 2, 32, 27, 48, 27, 64, 27, 96, 27,112, 27,128, 27, 6, 19, 0, 20, 80, 20, 96, 20, -112, 20,192, 20,208, 20, 6, 20, 20, 25,152,144, 14,224, 14,240, 14, 3, 15, 14, 95, 14, 2, 14, 12,152, 15, 1, 95, 1,111, 1, -127, 1,207, 1,223, 1, 6, 1, 1, 6, 7,184,255,192, 64, 10, 16, 24, 72, 7, 19, 6,156, 13, 0,168, 0, 63, 50,229, 50, 1, - 47, 43, 51, 51, 47, 93,225, 47, 93, 93,225, 51, 47, 93, 51, 93, 95, 93, 93, 93, 49, 48, 37, 23, 14, 3, 7, 35, 62, 3, 55, 33, - 23, 14, 3, 7, 35, 62, 3, 55, 1,106, 15, 14, 39, 47, 51, 25,138, 15, 29, 27, 22, 8, 2, 72, 14, 14, 39, 47, 51, 25,137, 14, - 29, 27, 22, 8,238, 23, 54,122,124,123, 56, 61,132,131,125, 53, 23, 54,122,124,123, 56, 61,132,131,125, 53, 0, 0, 1, 0,123, - 0, 0, 3,104, 6, 20, 0, 11, 0,124, 64, 82,144, 13,160, 13,224, 13,240, 13, 4,111, 13, 1, 16, 13, 48, 13, 64, 13, 3, 7, - 6,192, 4, 8, 8, 3,228, 11,244, 11, 2,214, 11, 1,119, 11, 1,106, 11, 1, 84, 11, 1, 69, 11, 1, 38, 11, 1, 11,192, 9, - 10, 1, 9, 9, 54, 2, 1, 2,190, 0, 3, 16, 3,160, 3, 3, 3, 4, 1, 0, 5,191, 11, 10, 7, 6,194, 8, 0, 3, 0, 47, - 63,246, 50, 50, 50,225, 50, 50, 50, 1, 47, 93,225, 93, 50, 17, 51, 51, 16,230, 93, 93, 93, 93, 93, 93, 93, 17, 51, 47, 51,230, - 51, 93, 93, 93, 49, 48, 1, 37, 19, 35, 19, 5, 53, 5, 3, 51, 3, 37, 3,104,254,181, 55,217, 55,254,201, 1, 55, 55,217, 55, - 1, 75, 3,221, 31,252, 4, 3,252, 31,180, 30, 1,161,254, 95, 30, 0, 0, 1, 0,123, 0, 0, 3,125, 6, 20, 0, 21, 0,176, - 64,113, 0, 23, 1,160, 23,176, 23,240, 23, 3,127, 23, 1, 32, 23, 64, 23, 80, 23, 3, 8, 13,192, 14, 11, 15, 15, 5, 1, 4, - 18, 1,244, 18, 1,230, 18, 1,135, 18, 1,122, 18, 1,100, 18, 1, 85, 18, 1, 54, 18, 70, 18, 2, 18,192, 16, 20, 17, 16, 16, - 21, 3, 0, 4,190, 5, 10, 10, 9, 6, 0, 5, 1, 0, 5, 16, 5, 32, 5, 80, 5,160, 5,176, 5, 6, 8, 5, 20, 19, 11, 12, -191, 18, 17, 14, 13,194, 15, 0, 9, 1, 0, 8,191, 6, 3, 2, 7,194, 5, 0, 47,246, 50, 50, 50,225, 50, 50, 50, 63,246, 50, - 50, 50,225, 50, 50, 50, 1, 47, 94, 93,113, 51, 51, 51, 47, 16,225, 50, 50, 50, 50, 17, 51, 51, 16,230, 93, 93, 93, 93, 93, 93, - 93,113, 50, 17, 51, 47, 51, 51,230, 50, 93, 93, 93,113, 49, 48, 1, 37, 21, 37, 19, 35, 19, 5, 53, 5, 3, 19, 5, 53, 5, 3, - 51, 3, 37, 21, 37, 19, 2, 49, 1, 76,254,180, 55,217, 56,254,180, 1, 76, 47, 47,254,180, 1, 76, 56,217, 55, 1, 76,254,180, - 47, 1,240, 30,180, 31,254,135, 1,121, 31,180, 30, 1, 34, 1, 19, 31,180, 30, 1,120,254,136, 30,180, 31,254,237, 0, 0, 1, - 0,150, 1,229, 2,109, 3,242, 0, 19, 0, 70, 64, 36, 47, 21, 95, 21,111, 21,127, 21,207, 21,239, 21,255, 21, 7, 16, 21, 1, - 95, 10,111, 10,159, 10,175, 10,223, 10,239, 10, 6, 10,208, 0, 1, 0,184,255,192, 64, 12, 7, 10, 72, 0, 31, 15, 1, 15, 16, - 5, 1, 5, 0, 47, 93,197, 93, 1, 47, 43, 93,197, 93, 93, 93, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, - 46, 2,150, 36, 63, 86, 50, 49, 86, 64, 37, 37, 64, 86, 49, 50, 86, 63, 36, 2,236, 71,100, 63, 28, 28, 63,100, 71, 70,100, 63, - 30, 30, 63,100, 0, 3, 0,147,255,227, 5,219, 0,250, 0, 19, 0, 39, 0, 57, 0,168, 64,118, 20, 59, 36, 59, 2,251, 59, 1, -228, 59, 1,187, 59,203, 59, 2,164, 59, 1,139, 59, 1,100, 59,116, 59, 2, 75, 59, 1, 52, 59, 1, 11, 59, 1, 30,150,102, 20, -118, 20, 2, 20, 20, 0, 40,150, 36, 50, 1,251, 50, 1,224, 50, 1,212, 50, 1,187, 50, 1,164, 50, 1,139, 50, 1,114, 50, 1, -102, 50, 1, 75, 50, 1, 48, 50, 1, 2, 32, 50, 1, 15, 50, 1, 6, 50, 10,150,224, 0,240, 0, 2, 84, 0,100, 0, 2, 0, 0, - 16, 0, 32, 0, 3, 7, 0, 45, 25, 5,155, 55, 35, 15, 0, 47, 51, 51,237, 50, 50, 1, 47, 94, 93, 93, 93,237, 47, 94, 93, 93, - 95, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,113,237, 17, 57, 47, 93,237, 93, 93, 93, 93, 93, 93, 93, 93, 93,113, 49, 48, 55, 52, - 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 37, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 37, 52, - 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 38,147, 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2, 37, - 20, 34, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 27, 46, 34, 20, 2, 37, 19, 35, 46, 27, 26, 47, 34, 20, 20, 34, 47, 26, 54, 73, -111, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, 37, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 16, 34, 53, - 37, 38, 53, 33, 15, 15, 33, 53, 38, 37, 53, 34, 16, 66, 0, 7, 0,102,255,236, 8,244, 5,203, 0, 9, 0, 29, 0, 39, 0, 59, - 0, 63, 0, 73, 0, 93, 0,137, 64, 92, 64,180, 84,181, 74, 30,180, 50,181, 35,180, 40,160, 62, 1, 48, 60, 64, 60,176, 60, 3, - 48, 40, 64, 40, 2, 62, 60, 40, 40, 60, 62, 3, 20, 69,180, 74, 95, 63, 95, 79, 95, 95, 95,127, 95,175, 95, 5, 5,180, 10,181, - 0,180, 16, 20, 32, 20, 48, 20, 3, 20, 71,182, 89,183, 67,182, 79, 25, 63, 6, 62, 24, 37,182, 55,183, 33,182, 45, 25, 3,182, - 15,183, 7,182, 25, 7, 0, 63,225,244,225, 63,225,244,225, 63, 63, 63,225,244,225, 1, 47, 93,225,244,225, 93, 16,222,225, 18, - 23, 57, 47, 47, 47, 93, 93, 93, 16,225,244,225, 16,244,225, 49, 48, 19, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, - 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, - 2, 51, 50, 30, 2, 1, 1, 35, 1, 1, 20, 22, 51, 50, 17, 16, 35, 34, 6, 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, - 50, 30, 2,250, 71, 80,156,156, 80, 71, 1,199, 36, 74,115, 79, 73,112, 76, 38, 35, 73,113, 78, 75,113, 77, 39, 1,172, 71, 80, -156,156, 80, 71, 1,198, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 75,113, 76, 39,255, 0,252,213,158, 3, 44, 2,151, 71, - 81,155,155, 81, 71, 1,199, 35, 74,115, 79, 74,112, 75, 38, 35, 73,113, 78, 74,114, 76, 39, 4, 2,165,165, 1, 74, 1, 72,163, -165,108,172,118, 63, 63,118,172,108,108,170,117, 62, 62,117,170,253, 74,165,164, 1, 73, 1, 72,163,165,108,171,118, 63, 63,118, -171,108,108,170,117, 62, 62,117,170, 3,146,250, 74, 5,182,252, 2,165,164, 1, 73, 1, 72,163,165,108,171,118, 63, 63,118,171, -108,108,170,117, 62, 62,117,170,255,255, 0,133, 3,166, 1, 74, 5,182, 2, 6, 0, 10, 0, 0,255,255, 0,133, 3,166, 2,178, - 5,182, 2, 6, 0, 5, 0, 0, 0, 1, 0, 82, 0,115, 1,252, 3,199, 0, 6, 0, 60,177, 4, 2,184,255,192, 64, 31, 9, 12, - 72, 2, 8, 63, 8,159, 8,175, 8,223, 8,239, 8,255, 8, 6, 6,235,159, 3, 1, 3, 6, 0, 3, 3, 1, 5, 1, 0, 47, 47, - 18, 57, 61, 47, 51, 51, 1, 24, 47, 93,225, 93, 16,198, 43, 50, 49, 48, 19, 1, 23, 3, 19, 7, 1, 82, 1, 53,117,238,238,117, -254,203, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 0, 1, 0, 82, 0,115, 1,252, 3,199, 0, 6, 0, 63, 64, 40, 0,235, -223, 3,239, 3,255, 3, 3, 16, 3, 32, 3, 2, 3, 63, 8,159, 8,175, 8,223, 8,239, 8,255, 8, 6, 4, 63, 2, 1, 2, 6, - 0, 3, 3, 1, 5, 1, 0, 47, 47, 18, 57, 61, 47, 51, 51, 1, 24, 47, 93, 51, 93, 47, 93, 93,225, 49, 48, 1, 1, 39, 19, 3, - 55, 1, 1,252,254,203,117,237,237,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98,255,255, 0,147,255,227, 3, 98, - 5,182, 0, 39, 0, 4, 1,209, 0, 0, 1, 6, 0, 4, 0, 0, 0, 9,181, 47, 49, 1, 16, 49, 1, 93, 93, 0, 0, 1,254,160, - 0, 0, 2,104, 5,182, 0, 3, 0, 29,177, 1, 2,184,255,240, 64, 9, 2, 3, 0, 16, 0, 1, 18, 0, 3, 0, 63, 63, 1, 47, - 56, 50, 47, 56, 51, 49, 48, 1, 1, 35, 1, 2,104,252,213,157, 3, 43, 5,182,250, 74, 5,182, 0, 1, 0,106, 3, 29, 2,147, - 5,199, 0, 20, 0, 65, 64, 23, 0,224, 0, 20, 1, 20, 22, 96, 22,192, 22,224, 22,240, 22, 4, 15, 22, 1, 14, 10,224, 11,184, -255,192, 64, 14, 10, 15, 72, 11, 10, 0,192, 14, 4,228, 17,222, 12,220, 0, 63, 63,225, 51, 26,204, 50, 1, 47, 43,225, 50, 93, - 93, 16,214, 93,225, 49, 48, 1, 17, 52, 38, 35, 34, 14, 2, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 21, 17, 2, 20, 63, 63, 45, - 65, 42, 21,127,105, 16, 9, 64,130,229, 3, 29, 1,166, 81, 68, 21, 52, 87, 65,254,166, 2,157, 88,101,250,254, 80, 0, 0, 1, - 0, 96, 0, 0, 4, 0, 5,182, 0, 17, 0,118, 64, 72, 2, 16, 2, 16, 5, 0, 11, 16, 11, 32, 11, 3, 11, 11, 19, 48, 19, 1, - 14, 0, 4, 90, 5, 9, 5,223, 7, 1, 7, 7, 0, 5, 16, 5,192, 5, 3, 7, 5, 3, 7, 96, 8, 0, 8, 17, 95, 14, 15, 14, - 63, 14,111, 14, 3, 8, 14, 64, 16, 21, 72, 8, 14, 8, 14, 4, 13, 95, 10, 3, 4, 18, 0, 63, 63,225, 18, 57, 57, 47, 47, 43, - 94, 93, 16,225, 17, 51, 16,225, 50, 1, 47, 94, 93, 51, 47, 93, 17, 51, 16,225, 50, 50, 93, 17, 51, 47, 93, 18, 57, 57, 47, 47, - 49, 48, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 1,195, 1, 36,254,220,179,176,176, 2,240,253, -195, 2, 22,253,234, 1,143,137,254,250, 1, 6,137, 4, 39,164,253,252,164, 0, 0, 1, 0, 68, 0, 0, 4, 35, 5,201, 0, 48, - 0,135, 64, 16, 17, 13, 21,111, 43, 39, 35, 15, 19, 35, 19, 35, 19, 30, 3, 27,184,255,192, 64, 62, 9, 14, 72, 27, 27, 50, 16, - 50, 1, 41, 37, 30, 64, 11, 14, 72, 30, 20, 37,117, 38, 17, 38, 16, 41,117, 42, 13, 42,111, 38, 1,208, 42, 1, 15, 42, 31, 42, - 63, 42, 79, 42,175, 42,191, 42, 6, 38, 42, 38, 42, 0, 30, 26,116, 29, 24, 7,115, 0, 7, 0, 63,225, 63,225, 50, 17, 57, 57, - 47, 47, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 43, 51, 51, 93, 17, 51, 47, 43, 51, 18, 57, 57, 47, 47, 17, - 51, 17, 51, 51,225, 50, 50, 49, 48, 1, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 14, - 2, 7, 33, 21, 33, 53, 62, 3, 53, 53, 35, 53, 51, 53, 35, 53, 51, 53, 52, 62, 2, 2,154,106,174, 66, 66, 56,141, 75, 48, 82, - 60, 33, 1,120,254,136, 1,120,254,136, 23, 39, 51, 27, 2,236,252, 33, 44, 73, 53, 30,198,198,198,198, 59,105,146, 5,201, 45, - 35,144, 29, 43, 27, 59, 94, 66,192,137,158,137, 19, 62, 89, 64, 43, 16,166,154, 11, 41, 68, 97, 67, 21,137,158,137,221, 87,137, - 95, 50, 0, 3, 0,150,255,236, 5,182, 5,182, 0, 27, 0, 42, 0, 53, 0,121, 64, 24, 49,111, 28, 18, 16, 15,110, 24, 21, 24, - 28, 24, 28, 24, 36,255, 5, 1, 5, 64, 18, 21, 72, 5,184,255,192, 64, 44, 9, 14, 72, 5, 5, 55, 15, 55, 1, 55, 64, 11, 16, - 72, 43, 35,110, 36,124, 54, 15, 24,117, 21, 18, 21, 43,115, 34, 21, 34, 21, 34, 36, 53,115, 37, 6, 36, 24, 0,117, 9, 25, 0, - 63,225, 63, 63,225, 18, 57, 57, 47, 47, 16,225, 17, 51, 16,225, 50, 1, 16,246,225, 50, 43, 93, 17, 51, 47, 43, 43, 93, 18, 57, - 57, 47, 47, 17, 51, 16,225, 50, 50, 16,225, 49, 48, 37, 50, 62, 2, 55, 21, 6, 6, 35, 34, 46, 2, 53, 17, 35, 53, 55, 55, 51, - 21, 51, 21, 35, 17, 20, 22, 1, 20, 14, 2, 35, 35, 17, 35, 17, 51, 50, 30, 2, 1, 51, 50, 62, 2, 53, 52, 38, 35, 35, 5, 59, - 15, 36, 35, 30, 7, 23, 80, 63, 53, 88, 64, 36,156,156, 65,107,209,209, 52,254,140, 52,124,204,152, 47,178,251,134,191,123, 58, -253,189, 26, 93,139, 91, 46,164,174, 57,129, 4, 6, 8, 3,138, 12, 20, 34, 70,106, 72, 1,191, 82, 77,189,211,137,254, 86, 76, - 78, 3,137, 91,168,129, 77,253,199, 5,182, 57,109,160,254,103, 32, 71,113, 81,142,137, 0, 1, 0, 63,255,236, 4, 74, 5,203, - 0, 57, 0,134,180, 18, 7, 40, 54, 25,184,255,192, 64, 75, 9, 13, 72, 25, 25, 59, 16, 59, 1, 44, 35, 35, 19, 5, 13,111, 46, - 34, 99, 40, 1, 40, 40, 58, 19, 35, 96, 36, 16, 36, 8, 44, 96, 45, 5, 45, 95, 36,127, 36,143, 36,239, 36,255, 36, 5, 15, 45, - 31, 45, 47, 45, 95, 45,159, 45,207, 45, 6, 36, 45, 36, 45, 22, 55, 0,116, 51, 7, 22, 95, 25, 29, 25, 0, 63, 51,225, 63,225, - 51, 18, 57, 57, 47, 47, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 17, 1, 51, 47, 93, 51, 51,225, 50, 50, 51, 17, 51, 93, - 17, 51, 47, 43, 51, 18, 57, 57, 49, 48, 1, 34, 14, 2, 7, 33, 21, 33, 20, 7, 6, 20, 21, 20, 20, 23, 33, 21, 33, 22, 22, 51, - 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 39, 35, 53, 51, 38, 52, 53, 52, 54, 53, 35, 53, 51, 62, 3, 51, 50, 22, 23, 7, 38, 38, - 3, 8, 69,118, 94, 67, 18, 1,176,254, 65, 1, 1, 2, 1,129,254,146, 34,185,149, 75,135, 59, 59,133, 91,115,182,135, 88, 21, -164,148, 2, 2,148,160, 18, 88,135,184,114, 97,160, 79, 80, 51,119, 5, 39, 52, 99,143, 91,137, 15, 14, 12, 26, 9, 19, 41, 22, -137,175,184, 32, 26,162, 28, 31, 73,135,193,121,137, 23, 30, 29, 22, 46, 8,137,125,202,144, 78, 43, 49,146, 31, 43, 0, 0, 4, - 0,141,255,248, 5,219, 5,193, 0, 3, 0, 23, 0, 43, 0, 72, 0,134, 64, 10, 1, 2, 57, 70, 24,180, 14, 3, 0, 2,184,255, -240, 64, 74,112, 70,144, 70,160, 70,208, 70, 4,223, 14, 1, 0, 16, 2, 70, 14, 0, 0, 14, 70, 2, 4, 49, 34,180, 15, 4, 1, -239, 4,255, 4, 2, 4, 74, 64,180, 0, 49, 1, 0, 49, 16, 49, 32, 49,224, 49,240, 49, 5, 8, 49, 66,252, 44,253, 61,252, 54, - 7, 39,252, 19,253, 29,252, 9, 25, 3, 6, 1, 24, 0, 63, 63, 63,225,244,225, 63,225,244,225, 1, 47, 94, 93,113,225, 16,222, - 93,113,225, 17, 23, 57, 47, 47, 47, 47, 56, 93, 93, 56, 17, 51, 16,225, 17, 51, 17, 51, 49, 48, 1, 1, 35, 1, 1, 20, 14, 2, - 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 1, 34, 46, 2, - 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 6, 21, 20, 51, 50, 54, 55, 21, 6, 6, 5, 10,252,213,157, 3, 43, 1,110, - 45, 80,112, 68, 63,110, 81, 47, 44, 80,113, 68, 62,110, 82, 47,254, 51, 17, 38, 60, 43, 42, 60, 37, 17, 17, 37, 60, 42, 43, 60, - 38, 17,253,203, 69,121, 90, 52, 53, 92,125, 72, 51,100, 32, 33, 31, 85, 34,103, 95,194, 51, 90, 35, 35, 99, 5,182,250, 74, 5, -182,251,152, 83,127, 87, 45, 45, 87,127, 83, 83,127, 87, 45, 45, 87,127, 83, 51, 86, 62, 35, 35, 62, 86, 51, 52, 85, 61, 33, 33, - 61, 85, 1,146, 38, 82,128, 90, 95,132, 82, 38, 22, 15,107, 13, 20,116,118,229, 17, 16,107, 18, 19, 0, 0, 2, 0,119,255,236, - 3,123, 5,203, 0, 45, 0, 58, 0, 85, 64, 50, 46,112, 35, 64, 16, 20, 72, 35, 35, 17, 5, 6, 60, 53, 40,110, 25, 20, 16, 17, - 32, 17, 48, 17,128, 17,144, 17, 5, 17, 24, 21, 54,118, 20, 17, 40, 40, 0, 48,118, 30, 7, 0,117, 11, 6, 6, 11, 25, 0, 63, - 51, 47, 16,225, 63,225, 18, 57, 47, 51, 51,225, 50, 50, 1, 47, 93,197, 51,225, 50, 16,214,193, 18, 57, 47, 43,225, 49, 48, 37, - 50, 62, 2, 55, 51, 14, 3, 35, 34, 46, 2, 53, 53, 6, 6, 7, 53, 54, 54, 55, 17, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, - 7, 17, 20, 30, 2, 19, 52, 35, 34, 14, 2, 21, 17, 62, 3, 2,111, 32, 57, 46, 30, 3,100, 4, 38, 70,105, 70, 58,106, 81, 48, - 46, 97, 49, 52, 95, 45, 28, 64,104, 75, 54, 87, 61, 33, 53, 92,124, 71, 17, 36, 55, 99,102, 32, 41, 23, 9, 54, 78, 51, 24,119, - 22, 50, 82, 59, 83,131, 90, 48, 37, 84,136, 99,231, 17, 28, 12,121, 14, 30, 15, 1,238, 59,108, 83, 49, 42, 79,111, 69, 99,166, -134,104, 38,254,211, 48, 81, 59, 33, 4, 33,188, 27, 50, 69, 42,254,106, 33, 78, 98,121, 0, 4, 0,199, 0, 0, 7,137, 5,182, - 0, 23, 0, 43, 0, 55, 0, 59, 0,186, 64,114, 14, 1, 21, 90, 0, 57, 57, 44,225, 34, 16, 0, 1,176, 0, 1,159, 0, 1, 48, - 0, 64, 0, 2, 0, 34, 0, 34, 10, 50,225, 24, 15, 58, 31, 58, 47, 58, 3, 58, 58,239, 24, 1, 24,103, 61,111, 61,191, 61,207, - 61, 3, 64, 61, 1, 12, 8, 3, 9, 90, 10,100, 60, 47,229, 29, 53,229, 39,207, 29,223, 29,239, 29, 3, 29, 64, 6, 11, 72, 15, - 39, 31, 39, 95, 39,111, 39,127, 39,239, 39, 6, 6, 29, 39, 29, 39, 22, 3, 16, 6, 24, 72, 3, 11, 3, 57,229, 56, 14,184,255, -240,182, 6, 24, 72, 14, 1, 10, 18, 0, 63, 51, 51, 43, 51,224, 63, 51, 43, 51, 57, 57, 47, 47, 94, 93, 43, 93, 16,225, 16,225, - 1, 16,246,225, 50, 50, 50, 93, 93, 16,230, 93, 50, 47,113, 16,225, 17, 57, 57, 47, 47, 93, 93, 93,113, 16,225, 51, 47, 16,225, - 50, 50, 49, 48, 33, 35, 1, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 1, 51, 38, 39, 46, 3, 53, 17, 51, 1, 20, 14, 2, 35, 34, - 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 53, 33, 21, 4,168,205,253,135, 8, - 6, 4, 4, 5,166,207, 2,118, 6, 3, 4, 1, 3, 2, 1,164, 2,225, 41, 77,109, 68, 63,107, 77, 44, 41, 77,109, 68, 62,107, - 78, 44,254, 66, 72, 81, 81, 71, 71, 81, 81, 72, 99, 1,240, 4,186, 77, 76, 65,142, 57,252,231, 5,182,251, 76, 76, 74, 32, 67, - 67, 62, 26, 3, 32,252,185, 83,130, 89, 47, 47, 89,130, 83, 83,129, 88, 46, 46, 88,129, 83,113,115,115,113,114,109,109,253, 31, -147,147, 0, 2, 0, 37, 2,229, 5, 80, 5,182, 0, 7, 0, 32, 0,163, 64, 93, 0,196, 1, 19, 10, 16,196, 17,192, 6,208, 6, -224, 6, 3,111, 6, 1, 48, 6, 64, 6, 80, 6, 3, 31, 6, 1, 4, 6, 1, 32, 17,208, 17, 2, 1, 6, 17, 17, 6, 1, 3, 3, - 30, 25, 21, 24,196,159, 23,175, 23, 2, 23, 34, 15, 34, 47, 34, 63, 34, 3, 34, 64, 21, 24, 72, 34, 64, 15, 18, 72,207, 3,239, - 3, 2, 3, 31, 9, 9, 32, 12, 24, 72, 9, 7, 3,200, 4, 24, 20,184,255,224, 64, 12, 12, 24, 72, 20, 17, 8, 1, 1, 21, 18, - 4, 3, 0, 63, 51, 51, 51, 47, 51, 51, 51, 43, 51, 16,225, 50, 51, 43, 17, 51, 1, 47, 93, 43, 43, 93, 16,214, 93,225, 50, 50, - 50, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 50, 50, 16,225, 49, 48, 1, 35, 17, 35, 53, 33, 21, 35, 1, 3, 35, - 30, 3, 21, 17, 35, 17, 51, 19, 19, 51, 17, 35, 17, 52, 62, 2, 55, 35, 3, 1,104,127,196, 2, 10,199, 2, 64,186, 7, 1, 2, - 1, 1,123,186,180,191,178,127, 1, 1, 1, 1, 6,195, 2,229, 2,101,108,108,253,155, 2, 37, 16, 34, 30, 24, 6,254, 73, 2, -209,253,217, 2, 39,253, 47, 1,172, 9, 30, 35, 35, 12,253,219,255,255, 0, 78, 0, 0, 5,166, 5,205, 2, 6, 1,118, 0, 0, - 0, 2, 0,102,255,221, 4,139, 4, 72, 0, 34, 0, 47, 0, 59, 64, 33, 35, 74, 30, 17, 49, 47, 19, 74, 16, 5, 1, 5, 29, 29, - 24, 18, 78, 43, 47, 59, 47, 2, 47, 47, 24, 41, 78, 12, 15, 24, 78, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 93,225, 17, 57, 47, - 1, 47, 93,225, 50, 16,222, 50,225, 49, 48, 5, 34, 46, 2, 53, 52, 62, 4, 51, 50, 30, 2, 21, 33, 17, 30, 3, 51, 50, 62, 2, - 55, 23, 14, 3, 19, 17, 46, 3, 35, 34, 14, 2, 7, 17, 2,121,130,198,134, 69, 44, 76,102,118,128, 63,113,194,142, 81,252,197, - 22, 64, 77, 88, 46, 74,116, 94, 77, 34, 72, 36, 83,110,143,204, 19, 59, 77, 93, 53, 51, 87, 73, 60, 24, 35, 94,157,204,110, 99, -160,126, 92, 60, 29, 79,147,209,131,254,156, 24, 44, 34, 21, 32, 60, 87, 55, 41, 57,101, 77, 44, 2,139, 1, 21, 20, 42, 35, 22, - 19, 33, 42, 23,254,233,255,255, 0, 83,255,236, 5,211, 5,182, 0, 38, 0,123, 20, 0, 0, 39, 2, 23, 2, 94, 0, 0, 1, 7, - 2, 64, 3, 98,253,179, 0, 48, 64, 31, 4, 3, 2, 39, 25, 1,244, 17, 1,228, 17, 1,208, 17, 1,176, 17, 1,160, 17, 1, 48, - 17, 1, 17, 47, 89, 1, 15, 89, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0, 51,255,236, 5,211, - 5,201, 0, 38, 0,117, 20, 0, 0, 39, 2, 23, 2,139, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 60, 64, 40, 4, 3, 2, 73, - 25, 1,240, 51, 1,208, 51, 1,196, 51, 1,180, 51, 1,160, 51, 1,148, 51, 1, 96, 51, 1, 48, 51, 1, 36, 51, 1, 51, 47,123, - 1, 15,123, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0, 79,255,236, 5,211, 5,182, - 0, 38, 2, 61, 20, 0, 0, 39, 2, 23, 2,139, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 60, 64, 40, 4, 3, 2, 61, 25, 1, -240, 39, 1,208, 39, 1,196, 39, 1,180, 39, 1,160, 39, 1,148, 39, 1, 96, 39, 1, 48, 39, 1, 36, 39, 1, 39, 47,111, 1, 15, -111, 1, 93, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 53, 0, 63, 53, 53, 53,255,255, 0,113,255,236, 5,211, 5,182, 0, 38, - 2, 63, 66, 0, 0, 39, 2, 23, 2, 57, 0, 0, 1, 7, 2, 64, 3, 98,253,179, 0, 52, 64, 34, 4, 3, 2, 31, 25, 1,244, 9, - 1,235, 9, 1,203, 9, 1,180, 9, 1,155, 9, 1,127, 9, 1, 43, 9, 1, 9, 47, 81, 1, 15, 81, 1, 93, 93, 17, 93, 93, 93, - 93, 93, 93, 93, 53, 0, 63, 53, 53, 53, 0, 2, 0, 98,255,236, 4, 59, 5,197, 0, 43, 0, 67, 0, 59, 64, 33, 51, 25, 71, 0, - 87, 69, 64, 69, 1, 15, 69, 1, 6, 63, 72, 33, 12, 86, 68, 56, 79, 19, 19, 44, 33, 28, 80, 39, 4, 44, 80, 7, 22, 0, 63,225, - 63,225, 51, 18, 57, 47,225, 1, 16,246, 50,225, 94, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 14, 4, 35, 34, 46, 2, 53, 52, 62, - 4, 51, 50, 22, 23, 54, 52, 53, 52, 38, 35, 34, 14, 2, 7, 53, 62, 3, 51, 50, 30, 2, 1, 50, 62, 4, 55, 46, 3, 35, 34, 14, - 4, 21, 20, 30, 2, 4, 59, 32, 65,101,138,177,109,106,140, 83, 34, 23, 50, 81,115,153, 98, 91,147, 45, 2,139,137, 31, 68, 67, - 65, 27, 24, 67, 75, 79, 37,125,166, 99, 42,253,158, 53, 94, 81, 67, 53, 37, 10, 10, 41, 59, 73, 42, 62,102, 79, 58, 37, 18, 21, - 45, 70, 3,166,106,225,212,188,141, 82, 66,110,143, 76, 60,141,141,131,101, 61, 79, 69, 19, 42, 11,190,201, 12, 22, 31, 19,174, - 12, 23, 17, 10, 89,150,196,252,115, 44, 77,104,122,133, 67, 40, 69, 51, 30, 48, 81,104,111,110, 47, 50, 86, 64, 36, 0, 0, 2, - 0, 41, 0, 0, 4, 98, 5,182, 0, 5, 0, 14, 0, 88, 64, 17, 2, 1, 9, 9, 5, 14, 91, 96, 4,112, 4,176, 4,240, 4, 4, - 4,184,255,192, 64, 39, 6, 10, 72, 4, 4, 16, 47, 16, 95, 16,111, 16,127, 16,159, 16,191, 16, 6, 16, 64, 6, 9, 72, 13, 91, - 5, 13, 95, 5, 18, 9, 32, 10, 17, 72, 9, 1, 3, 0, 63, 51, 43, 63,225, 1, 47,225, 43, 93, 17, 51, 47, 43, 93,225, 18, 57, - 61, 47, 51, 51, 49, 48, 55, 1, 51, 1, 21, 33, 1, 38, 38, 39, 6, 6, 7, 3, 33, 41, 1,190,187, 1,192,251,199, 2,119, 32, - 45, 15, 17, 42, 29,250, 2,166,113, 5, 69,250,185,111, 3,154, 97,168, 75, 75,168, 91,253, 4, 0, 1, 0,199,254, 20, 5, 39, - 5,182, 0, 7, 0, 55, 64, 17, 0, 90, 7,101, 9, 0, 9, 48, 9, 64, 9,112, 9,128, 9, 5, 9,184,255,192, 64, 15, 20, 24, - 72, 3, 90, 4,100, 8, 2, 95, 5, 3, 4, 0, 27, 0, 63, 50, 63,225, 1, 16,246,225, 43, 93, 16,246,225, 49, 48, 1, 17, 33, - 17, 35, 17, 33, 17, 4,109,253, 20,186, 4, 96,254, 20, 6,252,249, 4, 7,162,248, 94, 0, 1, 0, 74,254, 20, 4,227, 5,182, - 0, 11, 0, 92, 64, 11, 8, 91,112, 6, 1, 2, 6, 2, 6, 0, 10,184,255,192,183, 9, 14, 72, 10, 10, 13, 7, 9,184,255,224, - 64, 9, 15, 24, 72, 9, 3, 0, 0, 12, 13,184,255,192, 64, 15, 19, 24, 72, 8, 2, 2, 9, 7, 95, 4, 3, 9, 95, 0, 27, 0, - 63,225, 63,225, 18, 57, 61, 47, 51, 1, 43, 17, 51, 24, 47, 51, 51, 43, 50, 17, 51, 47, 43, 18, 57, 57, 47, 47, 93,225, 49, 48, - 19, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 74, 2,112,253,160, 4, 72,252,188, 2, 58,253,176, 3,155,254, 20,115, 3,146, - 3, 43,114,164,253, 9,252,157,164, 0, 0, 1, 0,102, 2,135, 4, 2, 3, 29, 0, 3, 0, 50, 64, 31, 2, 5,150, 0, 1,139, - 0, 1,121, 0, 1, 86, 0, 1, 75, 0, 1, 56, 0, 1, 20, 0, 1, 9, 0, 1, 0, 0,173, 1,179, 0, 63,225, 1, 47, 93, 93, - 93, 93, 93, 93, 93, 93, 16,206, 49, 48, 19, 53, 33, 21,102, 3,156, 2,135,150,150, 0, 0, 1, 0, 37,255,242, 4,197, 6,160, - 0, 8, 0, 44, 64, 19, 1, 0, 6, 5, 2, 6, 2, 6, 7, 8, 16, 8, 3, 3,174, 4, 4, 7, 0, 0, 47, 47, 57, 47,225, 1, - 47, 47, 56, 51, 57, 57, 25, 47, 24, 47, 51, 17, 51, 51, 49, 48, 5, 35, 1, 35, 53, 33, 19, 1, 51, 2,115,133,254,235,180, 1, - 41,229, 2, 0,146, 14, 3, 10,143,253,105, 5,172, 0, 0, 3, 0,119, 1,145, 5, 49, 4, 14, 0, 35, 0, 51, 0, 67, 0,118, - 64, 79, 73, 23, 1, 72, 13, 1,240, 69, 1, 47, 69, 95, 69, 2, 58, 39, 74, 39,106, 39, 3, 42, 55, 1, 55, 26, 8, 39, 4, 63, -119, 47,151, 47, 2, 47,170, 32, 18, 48, 18, 2, 18,120, 63, 1, 63,171, 0, 52, 42,174, 23, 58, 36,174, 8, 55, 39, 26, 4, 23, - 5, 0, 13, 16, 13, 2, 7, 13, 13, 31,159, 23, 1, 32, 23, 1, 23, 0, 47, 93, 93, 51, 51, 47, 94, 93, 51, 18, 23, 57,225, 50, - 16,225, 50, 1, 47,225, 93, 47, 93,225, 93, 18, 23, 57, 93, 93, 93, 93, 49, 48, 93, 93, 1, 20, 14, 2, 35, 34, 38, 39, 14, 3, - 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 62, 3, 51, 50, 30, 2, 5, 50, 54, 55, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, - 1, 34, 6, 7, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5, 49, 43, 77,109, 66, 93,155, 65, 29, 70, 78, 83, 43, 65,110, 79, 45, - 43, 78,111, 67, 85,158, 62, 29, 68, 79, 87, 48, 66,109, 77, 43,252,123, 63,108, 52, 49,107, 69, 40, 64, 44, 24, 21, 44, 65, 2, -124, 63,107, 55, 51,108, 68, 39, 64, 45, 24, 25, 46, 64, 2,205, 63,114, 87, 52,105,115, 48, 79, 56, 30, 44, 82,117, 72, 65,115, - 86, 49,107,112, 48, 78, 56, 31, 45, 82,117,249, 87, 97, 94, 90, 29, 51, 68, 38, 36, 66, 50, 30, 1,106, 87, 97, 93, 92, 29, 51, - 68, 39, 38, 67, 49, 28, 0, 1, 0, 16,254, 20, 3, 6, 6, 20, 0, 35, 0, 55, 64, 35, 16, 37,208, 37, 2, 20, 4, 1, 6, 4, - 1, 4, 13,172, 27, 21, 1, 9, 21, 1, 21, 16, 30, 32, 30, 2, 30, 25,174, 18, 28, 7,174, 0, 0, 0, 63,225, 63,225, 1, 47, - 93, 51, 93, 93,225, 50, 93, 93, 93, 49, 48, 1, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 21, 17, 20, 14, 2, 35, 34, 38, 39, 53, - 22, 22, 51, 50, 62, 2, 53, 17, 52, 62, 2, 2,131, 34, 75, 22, 18, 61, 36, 51, 66, 39, 16, 50, 89,124, 74, 36, 75, 23, 20, 62, - 35, 51, 69, 42, 18, 47, 87,121, 6, 20, 9, 9,147, 9, 17, 39, 65, 84, 45,250,215, 94,134, 86, 41, 11, 8,147, 8, 16, 37, 64, - 84, 48, 5, 39, 94,134, 86, 40, 0, 2, 0,102, 1,123, 4, 2, 4, 37, 0, 35, 0, 71, 0, 75, 64, 46, 65, 29, 73, 16, 73, 1, - 46, 16, 10, 32, 10, 2, 10, 64, 41,173, 49,175, 67, 23,173, 10, 31,175, 28, 5,173,223, 13,239, 13,255, 13, 3, 13, 64, 15, 18, - 72, 13, 13, 59,173, 46, 67,179, 0, 63, 51,225, 51, 47, 43, 93,225, 51,245, 50,225, 16,245,225, 51, 1, 47, 93, 51, 93, 16,206, - 50, 49, 48, 1, 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, 35, 34, 46, 2, 3, - 46, 3, 35, 34, 14, 2, 7, 53, 54, 51, 50, 30, 2, 23, 30, 3, 51, 50, 62, 2, 55, 21, 6, 35, 34, 46, 2, 2, 18, 37, 55, 45, - 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, 24, 99,149, 29, 50, 55, 67, 47, 37, - 55, 45, 41, 22, 28, 60, 59, 56, 25,100,148, 29, 50, 55, 67, 47, 37, 55, 47, 40, 22, 28, 60, 59, 56, 24, 97,151, 29, 50, 55, 67, - 1,188, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 20, 16, 22, 13, 5, 19, 33, 44, 25,162,108, 5, 13, 25, 1,174, 16, - 21, 13, 5, 19, 32, 44, 26,162,109, 5, 14, 25, 20, 16, 21, 13, 5, 19, 32, 45, 25,162,108, 5, 13, 25, 0, 1, 0,102, 0,164, - 4, 2, 5, 4, 0, 19, 0,166, 64, 17, 10, 13, 14, 17, 18, 9, 18, 18, 0, 3, 4, 7, 8, 19, 8, 9, 19,184,255,240, 64, 79, - 9, 16, 19, 9, 19, 9, 6, 16, 11, 21, 64, 21, 1, 1,198, 6, 1,187, 6, 1,169, 6, 1,134, 6, 1,123, 6, 1,104, 6, 1, - 66, 6, 1, 57, 6, 1, 6, 9, 8, 8, 13, 4,173, 7, 19, 18, 18, 17, 0,173, 14, 31, 3, 47, 3, 2,127, 3, 1, 0, 3, 16, - 3, 2, 6, 3, 3, 10,240, 7, 1, 15, 7,111, 7, 2, 7, 0, 47, 93, 93, 51, 51, 47, 94, 93, 93,113, 51,225, 50, 50, 17, 51, - 16,225, 50, 51, 17, 51, 1, 47, 93, 93, 93, 93, 93, 93, 93, 93, 51, 93, 16,206, 50, 17, 57, 57, 47, 47, 56, 56, 17, 51,125,135, -196,196,196,196, 1, 51, 16,135,196,196,196,196, 49, 48, 1, 35, 53, 33, 19, 33, 53, 33, 19, 23, 7, 51, 21, 33, 3, 33, 21, 33, - 3, 39, 1, 94,248, 1, 62,121,254, 73, 1,252,133,138,105,250,254,193,123, 1,186,254, 0,129,137, 1,186,150, 1, 4,149, 1, - 27, 59,224,149,254,252,150,254,234, 57, 0, 2, 0,102, 0, 0, 4, 2, 4,221, 0, 6, 0, 10, 0, 82, 64, 50, 9, 0, 12, 64, - 12, 1, 8, 64, 1, 1, 1, 2, 1, 5, 5, 3, 6,111, 0,127, 0, 2, 48, 0, 1, 0, 0, 4, 32, 3, 1, 80, 3,112, 3,128, - 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, 51, 47, 93, 93, 50, 18, 57, 61, 47, 51, - 51, 1, 24, 47, 93, 51, 93, 16,206, 50, 49, 48, 37, 1, 53, 1, 21, 9, 2, 53, 33, 21, 4, 2,252,100, 3,156,253, 33, 2,223, -252,100, 3,156,238, 1,168,102, 1,225,160,254,148,254,190,254,113,150,150, 0, 0, 2, 0,102, 0, 0, 4, 2, 4,221, 0, 6, - 0, 10, 0, 82, 64, 50, 9, 5, 12, 64, 12, 1, 8, 64, 6, 1, 6, 5, 4, 1, 1, 3, 0,111, 6,127, 6, 2, 48, 6, 1, 6, - 6, 2, 32, 3, 1, 80, 3,112, 3,128, 3,208, 3,240, 3, 5, 63, 3, 1, 0, 3, 1, 6, 3, 0, 47, 94, 93, 93, 93,113, 51, - 51, 47, 93, 93, 51, 18, 57, 61, 47, 51, 51, 1, 24, 47, 93, 51, 93, 16,206, 50, 49, 48, 19, 1, 1, 53, 1, 21, 1, 21, 53, 33, - 21,102, 2,226,253, 30, 3,156,252,100, 3,156, 1,143, 1, 66, 1,106,162,254, 31,102,254, 88,238,150,150, 0, 0, 2, 0,109, - 0, 0, 4, 63, 5,195, 0, 5, 0, 9, 0, 93, 64, 54, 2, 1, 9, 5, 4, 7, 9, 7, 3, 6,172, 0, 11,255, 11, 1, 64, 11, - 80, 11,128, 11,176, 11,192, 11, 5, 15, 11, 47, 11, 2, 8,170, 16, 3, 1, 3, 3, 8, 0, 6, 8, 6, 8, 6, 2, 7,173, 4, - 7, 9,173, 2, 0, 47,225, 63,225, 18, 57, 57, 61, 47, 47, 17, 51, 17, 51, 1, 24, 47, 93,225, 93, 93, 93, 16,222,225, 18, 57, - 57, 17, 51, 51, 17, 51, 51, 49, 48, 1, 1, 35, 1, 1, 51, 9, 3, 4, 63,254, 60, 76,254, 62, 1,194, 76, 1, 12,254,207,254, -207, 1, 49, 2,225,253, 31, 2,223, 2,228,253, 30, 2, 0,254, 0,253,254, 0,255,255, 0, 29, 0, 0, 4, 23, 6, 31, 0, 38, - 0, 73, 0, 0, 1, 7, 0, 76, 2,162, 0, 0, 0, 36, 64, 24, 2, 1,175, 29, 1, 80, 29, 1, 31, 29, 1, 15, 29, 1, 29,175, - 47, 1, 64, 47, 1, 15, 47, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 53,255,255, 0, 29, 0, 0, 4, 6, 6, 31, 0, 38, 0, 73, - 0, 0, 1, 7, 0, 79, 2,162, 0, 0, 0, 34, 64, 23, 1,175, 29, 1, 80, 29, 1, 31, 29, 1, 15, 29, 1, 29,175, 33, 1, 64, - 33, 1, 15, 33, 1, 93, 93, 93, 17, 93, 93, 93, 93, 53, 0, 1, 0,207, 4,217, 3,205, 6, 23, 0, 21, 0, 63, 64, 41, 0, 23, - 32, 23, 2,175, 23,207, 23, 2, 48, 23,112, 23, 2, 15, 0, 1, 0, 0, 0, 10, 48, 10, 2, 6, 10, 10,127, 0, 1, 0, 64, 6, - 9, 72, 0, 0, 16,142, 5, 0, 47,225, 51, 47, 43, 93, 51, 1, 47, 94, 93, 51, 47, 93, 93, 93,113, 49, 48, 1, 14, 3, 35, 34, - 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,205, 6, 49, 93,141,100,103,140, 88, 41, 5,170, 5, 27, 50, 76, 53, 44, 73, 54, - 34, 6, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, 41, 16, 19, 43, 72, 53, 0, 1,255,188,254, 20, 1,100, 4, 74, 0, 19, - 0, 35, 64, 19, 16, 21, 32, 21, 2, 15, 71, 12, 3, 3, 12, 84, 20, 13, 15, 7, 80, 0, 27, 0, 63,225, 63, 1, 16,230, 50, 47, - 16,225, 93, 49, 48, 19, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 17, 51, 17, 20, 14, 2, 66, 48, 63, 23, 26, 54, 35, 27, 46, - 35, 19,182, 34, 72,109,254, 20, 14, 11,148, 10, 11, 15, 39, 65, 51, 4,244,251, 24, 77,123, 87, 47, 0, 0, 1, 1,135, 4,205, - 2,121, 6, 20, 0, 13, 0, 25, 64, 12, 5,133, 63, 6, 1, 6, 12, 0, 12,146, 5, 0, 0, 63,229, 1, 47, 51,221, 93,225, 49, - 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,135, 9, 18, 17, 14, 4,180, 6, 31, 41, 46, 22, 96, 4,231, 30, 77, 81, 80, 33, - 20, 25, 78, 86, 86, 32, 0, 1, 1,111,254, 59, 2,117,255,131, 0, 13, 0, 22, 64, 9, 12, 0, 0, 5,133, 6, 12,146, 5, 0, - 47,229, 1, 47,225, 50, 47, 51, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1,111, 11, 26, 24, 19, 4,178, 6, 31, 44, 54, - 29, 98,254, 86, 25, 76, 84, 83, 33, 20, 25, 77, 87, 86, 33, 0, 0, 1, 1,125, 4,217, 2,131, 6, 33, 0, 13, 0, 23, 64, 10, - 12, 0, 0, 5,133, 6, 5,146, 12, 0, 0, 63,229, 1, 47,225, 50, 47, 51, 49, 48, 1, 14, 3, 7, 35, 53, 62, 3, 55, 51, 2, -131, 12, 26, 24, 18, 4,178, 5, 31, 45, 55, 28, 98, 6, 6, 25, 76, 84, 83, 33, 21, 24, 78, 86, 86, 33, 0, 2, 0, 37, 2, 57, - 2,127, 5,199, 0, 11, 0, 29, 0, 42, 64, 25, 6,225, 12, 31, 79, 31,127, 31, 2, 31, 64, 6, 10, 72, 0,225, 22, 9,229, 27, -222, 3,229, 17,223, 0, 63,225, 63,225, 1, 47,225, 43, 93, 16,222,225, 49, 48, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, - 5, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22,184, 71, 81, 78, 78, 78, 78, 81, 71, 1,199, 35, 74,115, 79, 74,112, - 75, 38, 35, 73,113, 78,149,154, 4, 2,165,161,159,167,165,159,159,165,108,170,117, 62, 62,117,170,108,108,169,116, 60,236, 0, - 0, 2, 0, 12, 2, 74, 2,143, 5,188, 0, 10, 0, 21, 0, 70, 64, 42, 9, 2,225, 11, 7, 3, 3, 23, 95, 23,143, 23, 2, 23, - 64, 6, 10, 72, 21,225, 5, 1, 4,229, 9, 15, 11, 31, 11, 47, 11, 3, 8, 11, 11, 2, 15,229, 7,220, 2,221, 0, 63, 63,225, - 18, 57, 47, 94, 93, 51,225, 50, 1, 47,225, 43, 93, 18, 57, 47, 51, 51,225, 50, 49, 48, 1, 35, 21, 35, 53, 33, 53, 1, 51, 17, - 51, 33, 53, 52, 54, 55, 14, 3, 7, 7, 2,143,125,143,254,137, 1,121,141,125,254,244, 3, 3, 5, 20, 22, 24, 9,155, 3, 10, -192,192,111, 2, 67,253,205,195, 42, 99, 49, 11, 37, 42, 40, 15,240, 0, 0, 1, 0, 59, 2, 55, 2,102, 5,182, 0, 36, 0, 74, - 64, 23, 33, 34, 34, 30, 29, 29, 11, 32, 20,225, 5, 38, 79, 38,127, 38, 2, 38, 64, 6, 10, 72, 11,184,255,192, 64, 17, 18, 24, - 72, 11, 23,229, 0, 0, 17, 33,229, 30,220, 17,229, 8,223, 0, 63,225, 63,225, 18, 57, 47,225, 1, 47, 43, 43, 93, 16,222,225, - 51, 18, 57, 47, 51, 51, 17, 51, 49, 48, 1, 50, 30, 2, 21, 20, 6, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, - 14, 2, 7, 39, 19, 33, 21, 33, 7, 54, 54, 1, 66, 61,107, 79, 45,166,161, 63,121, 44, 26, 60, 61, 59, 24, 85, 95, 95, 89, 13, - 37, 39, 37, 14, 67, 33, 1,186,254,190, 18, 20, 57, 4,109, 35, 68,101, 65,140,157, 28, 26,141, 18, 27, 19, 10, 76, 88, 77, 85, - 4, 6, 7, 2, 43, 1,168,123,215, 3, 6, 0, 0, 2, 0, 37, 2, 57, 2,127, 5,213, 0, 29, 0, 45, 0, 56, 64, 32, 16, 10, - 33,225, 0, 47, 79, 47,127, 47, 2, 47, 64, 6, 10, 72, 21, 41,225, 10, 36,228, 21, 25, 25, 16, 15,222, 30,229, 5,223, 0, 63, -225, 63, 51, 57, 47, 51,225, 1, 47,225, 50, 43, 93, 16,222,225, 18, 57, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, - 55, 23, 14, 3, 7, 51, 54, 54, 51, 50, 30, 2, 5, 50, 54, 53, 52, 38, 35, 34, 14, 2, 21, 20, 30, 2, 2,127, 42, 78,111, 68, - 64,110, 82, 47, 69,126,178,110, 45, 79,127, 96, 64, 15, 11, 27, 99, 74, 54, 90, 64, 36,254,219, 68, 84, 77, 71, 39, 63, 45, 25, - 25, 45, 61, 3,102, 65,111, 80, 45, 45, 88,128, 83,110,179,143,109, 39,109, 27, 64, 79, 96, 59, 43, 49, 37, 72,105,247, 92, 86, - 82, 90, 25, 41, 55, 30, 44, 73, 53, 29, 0, 1, 0, 47, 2, 74, 2,100, 5,182, 0, 6, 0, 56,185, 0, 0,255,240, 64, 31, 0, - 0, 2, 1,225, 5, 8, 79, 8,127, 8, 2, 8, 64, 6, 10, 72,208, 2,224, 2,240, 2, 3, 2, 2,229, 3,220, 0,221, 0, 63, - 63,225, 1, 47, 93, 43, 93, 16,222,225, 17, 57, 47, 56, 49, 48, 19, 1, 33, 53, 33, 21, 1,141, 1, 64,254, 98, 2, 53,254,191, - 2, 74, 2,241,123,100,252,248, 0, 3, 0, 49, 2, 57, 2,113, 5,199, 0, 37, 0, 52, 0, 68, 0,119, 64, 34, 56,225, 33, 66, -225, 5, 10, 61, 50, 28, 4, 5, 33, 5, 33, 5, 23, 44,225, 15, 70, 79, 70,127, 70, 2, 70, 64, 6, 10, 72, 38,225, 23,184,255, -192, 64, 39, 21, 24, 72, 23, 10, 28, 61, 50, 75, 50, 91, 50,107, 50,155, 50,171, 50, 5, 50, 20, 53,182, 61,198, 61,214, 61, 3, - 61, 0, 41,229, 20,223, 53,229, 0,222, 0, 63,225, 63,225, 17, 57, 93, 17, 18, 57, 93, 17, 18, 57, 57, 1, 47, 43,225, 43, 93, - 16,222,225, 18, 57, 57, 47, 47, 18, 23, 57, 16,225, 16,225, 49, 48, 1, 50, 30, 2, 21, 20, 14, 2, 7, 30, 3, 21, 20, 14, 2, - 35, 34, 38, 53, 52, 62, 2, 55, 46, 3, 53, 52, 62, 2, 3, 20, 22, 51, 50, 54, 53, 52, 46, 2, 39, 39, 6, 6, 19, 34, 6, 21, - 20, 30, 2, 23, 62, 3, 53, 52, 38, 1, 82, 52, 94, 70, 42, 22, 39, 52, 30, 34, 62, 48, 28, 42, 77,105, 63,139,150, 25, 42, 56, - 31, 27, 46, 35, 19, 43, 72, 95, 98, 74, 72, 74, 75, 22, 39, 55, 33, 15, 65, 66,148, 56, 63, 18, 32, 45, 26, 24, 44, 32, 19, 65, - 5,199, 27, 55, 84, 56, 37, 62, 50, 40, 17, 19, 45, 55, 69, 42, 57, 93, 66, 36,131,115, 42, 69, 56, 43, 17, 20, 43, 53, 62, 37, - 56, 83, 55, 28,253,104, 59, 70, 70, 59, 30, 48, 39, 32, 15, 6, 34, 77, 1,232, 55, 54, 27, 42, 36, 29, 13, 12, 28, 35, 44, 28, - 54, 55, 0, 2, 0, 33, 2, 57, 2,123, 5,201, 0, 37, 0, 53, 0, 59, 64, 34, 49, 17,224, 9, 28, 0, 55, 79, 55,127, 55, 2, - 55, 64, 6, 10, 72, 41,225, 28, 44,228, 17, 23, 23, 5, 38,229, 33,222, 12,229, 5,223, 0, 63,225, 63,225, 18, 57, 47, 51,225, - 1, 47,225, 43, 93, 16,222, 17, 57,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 35, 14, 3, - 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 37, 34, 6, 21, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 2,123, 33, 90,162,129, - 25, 64, 21, 21, 54, 25, 83,108, 64, 29, 3, 9, 13, 36, 48, 61, 38, 60, 96, 68, 36, 41, 75,108, 67, 65,114, 84, 48,254,203, 68, - 86, 74, 76, 38, 63, 45, 24, 21, 42, 62, 4, 66, 96,187,147, 91, 8, 7,125, 13, 10, 53, 87,114, 61, 18, 36, 27, 17, 37, 71,102, - 65, 66,111, 81, 45, 47, 97,147,172, 94, 88, 76, 88, 25, 41, 51, 26, 36, 72, 59, 36, 0, 0, 22, 0, 84,254,129, 7,193, 5,238, - 0, 5, 0, 11, 0, 17, 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, 83, 0, 95, 0,111, 0,120, 0,129, 0,144, 0,228, 64, 89, 52, 44, 32, 28, 56, 24, 87, 81,122,112,111,116,103,100,100,130, -126,107,112, 81,192, 81,208, 81, 3, 81,111,107,107,111, 81, 3, 93,137, 79,140, 95,140, 2,140,140, 68, 40, 36, 9, 23, 93, 80, - 75, 96, 75, 2, 75, 75, 65, 61, 49, 0, 12, 42, 66, 70, 62, 38, 50,134,143,143,111,121,103,112,112,122, 96,122,111, 84, 72, 72, -112,111,128,111, 2, 97,111, 1,111,184,255,192, 64, 37, 7, 12, 72,111,111, 96, 90, 78, 78,138,120, 31, 96, 47, 96, 63, 96,111, - 96, 4, 96, 96, 1, 44, 28, 24, 18, 12, 57, 53, 33, 7, 15, 1, 1, 7, 1, 0, 47, 94, 93, 51, 51, 51, 51, 47, 51, 51, 51, 51, - 18, 57, 47, 93, 51, 51, 51, 47, 51, 17, 51, 47, 43, 93, 93, 51, 47, 51, 17, 51, 17, 18, 57, 47, 51, 51, 17, 51, 47, 51, 47, 51, - 47, 51, 47, 51, 1, 47, 51, 51, 51, 51, 51, 47, 93, 51, 47, 51, 51, 51, 51, 51, 47, 93, 51, 18, 23, 57, 47, 47, 47, 93, 17, 51, - 51, 51, 47, 51, 51, 17, 51, 51, 17, 51, 47, 51, 47, 51, 47, 51, 49, 48, 19, 17, 33, 21, 35, 21, 37, 53, 33, 17, 35, 53, 1, 17, - 51, 21, 51, 21, 33, 53, 51, 53, 51, 17, 33, 53, 33, 21, 33, 53, 33, 21, 1, 53, 33, 21, 1, 35, 17, 51, 17, 35, 17, 51, 1, 53, - 33, 21, 1, 35, 17, 51, 1, 53, 33, 21, 51, 53, 33, 21, 1, 35, 17, 51, 53, 35, 17, 51, 1, 35, 17, 51, 1, 34, 38, 53, 52, 54, - 55, 50, 22, 21, 20, 6, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 51, 50, 22, 21, 20, 6, 7, 21, 22, 22, 21, 20, 6, - 35, 35, 19, 51, 50, 54, 53, 52, 38, 35, 35, 21, 21, 51, 50, 54, 53, 52, 38, 35, 5, 53, 22, 22, 51, 50, 54, 53, 17, 51, 17, 20, - 6, 35, 34, 84, 1, 47,192, 5,206, 1, 48,109,249, 0,111,192, 5, 14,195,109,253, 73, 1, 17,251,225, 1, 14,254,242, 1, 14, - 4,183,109,109,109,109,251,194, 1, 16,252, 48,111,111, 2,192, 1, 16,119, 1, 17,250,168,111,111,111,111, 6,254,109,109,250, -153,127,135,135,127,127,135,135,127, 72, 63, 63, 72, 69, 66, 66, 1,159,172,109,112, 45, 45, 56, 51,109, 94,207,123, 66, 46, 36, - 41, 48, 59, 74, 49, 37, 38, 52, 1, 14, 16, 32, 20, 37, 49,125,104, 95, 61, 4,190, 1, 48,111,193,193,111,254,208,193,249, 2, - 1, 47,194,109,109,194,254,209,109,109,109,109, 6,254,111,111,250,168, 1, 14, 2, 2, 1, 15,250, 59,109,109, 1,166, 1, 14, - 4, 74,111,111,111,111,252, 47, 1, 16,121, 1, 15,253,104, 1, 16,254,138,159,142,145,155, 1,156,145,142,159,104,103, 94, 94, -102,102, 94, 94,103, 1,234, 67, 83, 49, 68, 8, 4, 11, 68, 58, 81, 89, 1, 98, 34, 32, 34, 29,227,154, 43, 37, 32, 42,252,102, - 3, 5, 36, 50, 1,146,254,114, 94,100, 0, 3, 0, 84,254,193, 7,170, 6, 20, 0, 3, 0, 35, 0, 47, 0, 80, 64, 40, 4, 35, - 35, 36, 32, 42, 48, 42, 64, 42, 3, 42, 42, 79, 36, 1, 36, 36, 2, 28, 11, 11, 2, 21, 21, 2, 35, 35, 48, 45, 1, 45, 45, 39, - 39, 3, 25, 16, 16, 3, 0, 25, 47, 51, 24, 47, 51, 17, 51, 47, 51, 47, 93, 51, 47, 1, 25, 47, 51, 24, 47, 17, 51, 47, 51, 17, - 51, 47, 93, 51, 47, 93, 17, 51, 47, 51, 49, 48, 9, 3, 5, 53, 52, 54, 55, 54, 54, 53, 52, 46, 2, 35, 34, 14, 2, 7, 23, 54, - 54, 51, 50, 22, 21, 20, 6, 7, 6, 6, 21, 21, 3, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3,254, 3,172,252, 84,252, 86, - 3,235, 33, 76, 99, 77, 49, 91,131, 81, 43, 90, 87, 82, 34, 82, 68,126, 56, 63, 62, 39, 82, 69, 74, 27, 71, 70, 68, 71, 71, 68, - 70, 71, 6, 20,252, 86,252, 87, 3,169,251, 47, 44, 62, 58, 76,131, 89, 69,107, 74, 39, 16, 27, 35, 20,178, 34, 46, 58, 47, 49, - 68, 65, 53,121, 80, 59,254,237, 62, 73, 73, 62, 64, 73, 73, 0,255,255,255,188,254, 20, 2, 85, 6, 33, 2, 38, 2, 55, 0, 0, - 0, 7, 1, 76,254,187, 0, 0,255,255, 0, 23, 3,193, 1, 80, 5,182, 2, 6, 2, 7, 0, 0, 0, 2, 0, 10,255,236, 4,178, - 6, 43, 0, 12, 0, 79, 0,117, 64, 71, 77, 13, 67, 16, 62, 0, 59, 8, 71, 67, 67, 26, 59, 71, 79, 0, 16, 1, 16, 16, 81,160, - 81, 1, 63, 81, 1, 51, 71, 0, 26, 16, 26, 32, 26, 3, 26, 34, 80, 41, 62, 79, 79, 78, 0, 78, 0, 41, 16, 41, 48, 41, 64, 41, - 80, 41, 5, 6, 41, 78, 41, 78, 56, 5, 80, 72, 1, 56, 80, 21, 22, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 94, 93, 17, 51, 16, -225, 50, 16,225, 1, 47, 93,225, 93, 93, 17, 51, 47, 93, 51,225, 17, 57, 47,225, 17, 57, 57, 17, 18, 57, 57, 49, 48, 1, 46, 3, - 35, 34, 6, 21, 20, 30, 2, 5, 22, 22, 21, 20, 2, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, - 54, 51, 50, 30, 2, 21, 20, 14, 2, 21, 20, 30, 2, 51, 50, 18, 17, 52, 38, 39, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, - 21, 3,106, 13, 57, 77, 91, 48, 76, 86, 46,106,171, 1, 60, 2, 2, 64,129,196,131,111,146, 86, 34, 10, 11, 10, 31, 31, 24, 54, - 16, 37, 37,100, 54, 50, 69, 44, 19, 10, 11, 10, 21, 48, 78, 58,164,164, 2, 2,174,242,150, 67, 39, 81,127, 89,104,161,117, 75, - 18,143, 3,209,108,170,116, 61, 88, 72, 56,105, 82, 51,138, 22, 58, 31,159,254,238,201,115, 55, 95,125, 69, 40, 93, 89, 75, 24, - 45, 33, 15, 10,127, 17, 26, 28, 50, 68, 40, 35, 86, 93, 97, 45, 42, 74, 54, 31, 1, 50, 1, 48, 23, 62, 20, 2, 75,120,154, 81, - 67,112, 82, 46, 84,156,223,139,137, 0, 0, 1, 0, 0, 0, 0, 4, 72, 5,195, 0, 34, 0,143, 64, 27,175, 36,239, 36, 2, 36, - 64, 9, 12, 72, 34,171, 33, 1,152, 33, 1, 64, 33, 1, 27, 33, 1, 15, 33, 1, 33,184,255,240, 64, 68, 33, 33, 0, 31, 27, 13, - 1, 15, 13, 1, 13, 32, 18, 22, 72,159, 13,175, 13, 2,125, 13, 1,107, 13, 1, 90, 13, 1, 79, 13, 1, 43, 13, 59, 13, 2, 13, - 13, 30, 90,119, 31,135, 31,151, 31, 3, 79, 31, 1, 0, 31, 16, 31, 2, 7, 31, 29, 0, 31, 33, 3, 31, 18, 17, 10, 4, 0, 63, -193, 63, 63, 18, 57, 57, 1, 47, 94, 93, 93, 93,225, 50, 47, 93, 93, 93, 93, 93, 93, 43,113,113, 17, 57, 51, 47, 56, 93, 93, 93, - 93, 93, 51, 43, 93, 49, 48, 1, 62, 3, 55, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 14, 5, 7, 17, 35, 17, 1, - 51, 2, 29, 25, 61, 63, 60, 24, 22, 47, 53, 64, 41, 35, 43, 17, 13, 32, 13, 11, 28, 32, 35, 19, 13, 40, 50, 54, 54, 50, 19,187, -254, 66,203, 2,219, 75,168,160,137, 44, 40, 61, 39, 20, 9, 8,145, 3, 5, 7, 23, 42, 35, 24, 85,110,128,133,133, 60,253,227, - 2, 47, 3,135, 0, 2, 0, 18,255,236, 6, 96, 4, 74, 0, 28, 0, 60, 0,143, 64, 71, 25,103, 47, 1, 47, 71,213, 44, 1,183, - 44, 1,169, 44, 1,154, 44, 1, 3, 44, 44, 3, 55, 72,171, 18,187, 18, 2, 18, 18, 62, 20, 62, 1, 84, 62,100, 62,132, 62,164, - 62,180, 62, 5, 64, 62, 1, 2, 48, 62, 1, 15, 62, 1, 34, 72, 0, 3, 16, 3, 48, 3, 64, 3, 80, 3, 5, 6, 3,184,255,192, - 64, 21, 18, 21, 72, 3, 26, 0, 45, 45, 39, 29, 14, 8, 80, 11, 15, 50, 39, 80, 22, 0, 22, 0, 63, 50,225, 50, 63,225, 50, 50, - 18, 57, 47, 18, 57, 1, 47, 43, 94, 93,225, 93, 93, 95, 93, 93,113, 17, 51, 47, 93,225, 17, 57, 47, 95, 93, 93, 93, 93,225, 93, - 57, 49, 48, 5, 34, 38, 53, 52, 62, 2, 55, 33, 53, 55, 33, 21, 35, 30, 3, 21, 20, 6, 35, 34, 38, 39, 35, 6, 6, 3, 14, 3, - 21, 20, 30, 2, 51, 50, 62, 2, 53, 53, 51, 21, 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 39, 2, 41,182,195, 18, 32, 43, 26,254, -235,134, 5,200,243, 24, 38, 27, 15,196,181,106,139, 31, 11, 31,139,186, 22, 40, 31, 18, 29, 54, 75, 45, 46, 68, 44, 22,179, 98, - 82, 45, 75, 54, 29, 15, 25, 36, 21, 20,234,243, 57,125,126,123, 56, 74, 80,154, 56,123,126,125, 57,243,234, 87, 91, 91, 87, 3, -196, 54,118,121,122, 58, 98,131, 78, 33, 41, 72, 98, 57,176,176,130,138, 33, 78,131, 98, 58,122,121,118, 54, 0,255,255, 0,199, - 0, 0, 6, 47, 7,117, 2, 38, 0, 48, 0, 0, 1, 7, 0,118, 1,121, 1, 84, 0, 19, 64, 11, 1, 39, 5, 38, 1, 75, 26, 32, - 9, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 6,135, 6, 33, 2, 38, 0, 80, 0, 0, 1, 7, 0,118, 1,199, - 0, 0, 0, 19, 64, 11, 1, 58, 17, 38, 1,122, 45, 51, 22, 43, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,253,213, 4,221, - 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 2, 91, 1, 27, 0, 0, 0, 13,183, 3, 2, 1, 31, 21, 4, 7, 37, 1, 43, 53, 53, 0, -255,255, 0, 94,253,213, 3,156, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 2, 91, 0,188, 0, 0, 0, 13,183, 3, 2, 20, 61, 51, - 12, 34, 37, 1, 43, 53, 53, 0,255,255,254,211,255,236, 5,195, 5,205, 0, 38, 0, 50, 82, 0, 1, 7, 2, 92,254, 64, 0, 0, - 0, 63,182, 3, 2, 45, 3, 3, 2, 53,184,255,192,178, 9, 15, 72,184,255, 33, 64, 26, 53, 53, 10, 10, 37, 1, 0,176, 0, 1, -128, 0, 1,127, 0, 1, 80, 0, 1, 64, 0, 1, 31, 0, 1, 0, 17, 93, 93, 93, 93, 93, 93, 53, 53, 43, 43, 53, 53, 0, 63, 53, - 53, 0, 0, 2, 0,115,253,213, 2, 55,255,131, 0, 19, 0, 31, 0, 58, 64, 40, 20,131, 15, 0, 63, 0, 79, 0, 95, 0, 4, 0, - 26,131, 48, 10, 1, 10, 29,140, 0, 5, 16, 5, 48, 5, 64, 5, 80, 5,160, 5,240, 5, 7, 6, 5, 23,140, 15, 0, 47,225,212, - 94, 93,225, 1, 47, 93,225,212, 93,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, 35, - 34, 6, 21, 20, 22, 51, 50, 54, 2, 55, 35, 61, 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 35,116, 64, 49, 50, 63, 57, - 56, 49, 64,254,174, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 2, 0,147, - 4,104, 2,217, 5,199, 0, 13, 0, 31, 0, 66, 64, 9, 21, 48, 14, 64, 14, 2, 14, 17, 26,184,255,192, 64, 28, 9, 16, 72, 26, - 26, 43, 13, 1, 4, 13, 20, 13, 2, 13, 6, 5, 12, 5, 12, 63, 17, 79, 17, 95, 17, 3, 17, 29, 0, 47,204, 93, 57, 57, 47, 47, - 1, 47,205, 93, 93, 50, 47, 43, 51,205, 93, 57, 49, 48, 1, 62, 3, 55, 51, 21, 14, 3, 7, 35, 37, 52, 54, 55, 21, 6, 6, 21, - 20, 30, 2, 21, 20, 6, 35, 34, 38, 1,176, 11, 25, 24, 22, 8,207, 18, 48, 56, 62, 31, 82,254,227,120,122, 60, 57, 31, 37, 31, - 50, 47, 58, 69, 4,137, 30, 75, 79, 81, 36, 20, 32, 77, 80, 81, 37,120, 78,115, 31, 76, 22, 46, 24, 19, 18, 16, 26, 28, 37, 39, - 70, 0,255,255, 0, 29, 0, 0, 6,185, 6, 31, 0, 38, 0, 73, 0, 0, 0, 39, 0, 73, 2,162, 0, 0, 1, 7, 0, 76, 5, 68, - 0, 0, 0, 56, 64, 38, 3, 2,143, 57, 1,112, 57, 1, 64, 57, 1, 47, 57, 1, 15, 57, 1, 57, 1,224, 31, 1,176, 31, 1, 31, -175, 75, 1,112, 75, 1, 64, 75, 1, 15, 75, 1, 93, 93, 93, 93, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53,255,255, 0, 29, - 0, 0, 6,168, 6, 31, 0, 38, 0, 73, 0, 0, 0, 39, 0, 73, 2,162, 0, 0, 1, 7, 0, 79, 5, 68, 0, 0, 0, 54, 64, 37, - 2,143, 57, 1,112, 57, 1, 64, 57, 1, 47, 57, 1, 15, 57, 1, 57, 1,224, 31, 1,176, 31, 1, 31,175, 61, 1,112, 61, 1, 64, - 61, 1, 15, 61, 1, 93, 93, 93, 93, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 0, 2, 0,125,255,236, 6, 37, 6, 20, 0, 32, - 0, 52, 0, 75, 64, 44, 27, 6, 19, 9, 32, 91, 1, 1, 43, 91, 9,103, 54,192, 54, 1,191, 54, 1,112, 54, 1, 47, 54, 95, 54, - 2, 33, 91, 19,102, 53, 6, 27, 14, 48, 95, 32, 24, 4, 38, 95, 14, 19, 0, 63,225, 63,206,225, 18, 57, 57, 1, 16,246,225, 93, - 93, 93, 93, 16,246,225, 51, 47,225, 17, 18, 57, 57, 49, 48, 1, 23, 14, 3, 7, 22, 22, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, - 53, 52, 18, 54, 54, 51, 50, 22, 23, 62, 3, 53, 1, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 6, 23, 14, 12, - 40, 63, 90, 63, 43, 45, 81,160,237,155,163,239,157, 76, 76,158,239,164,158,236, 81, 41, 49, 25, 8,251,242, 52,107,165,114,114, -165,107, 50, 50,106,164,114,114,166,108, 52, 6, 20, 22, 60,112, 97, 76, 24, 89,216,127,170,254,235,198,108,108,198, 1, 23,170, -170, 1, 21,196,107,111,102, 12, 53, 74, 93, 52,252,201,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, - 0,113,255,236, 4,244, 4,242, 0, 32, 0, 44, 0, 74, 64, 44, 23, 74, 25, 25, 30, 18, 10, 39, 72, 0, 0, 16, 0, 2, 7, 0, - 0, 46, 16, 46,144, 46,160, 46,176, 46, 4, 33, 72, 10, 86, 45, 18, 30, 5, 42, 80, 23, 15, 16, 36, 80, 5, 22, 0, 63,225, 63, -198,225, 18, 57, 57, 1, 16,246,225, 93, 17, 51, 47, 94, 93,225, 18, 57, 57, 51, 47,225, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, - 53, 52, 62, 2, 51, 50, 22, 23, 62, 3, 53, 51, 23, 14, 3, 7, 22, 22, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 4, 45, - 67,125,178,111,103,174,127, 71, 67,124,179,111,100,169, 63, 46, 52, 25, 6,198, 15, 16, 45, 63, 86, 57, 32, 36,253, 0,137,154, -154,135,137,154,154,135, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 71, 68, 13, 55, 75, 93, 51, 23, 74,120, 94, 67, - 20, 65,158, 94,209,211,211,209,208,208,208, 0, 0, 1, 0,184,255,236, 6, 78, 6, 20, 0, 36, 0, 81, 64, 50, 6, 91, 8, 8, - 35, 90, 1,159, 14, 1,176, 14, 1,175, 14, 1, 14, 14, 38,112, 38,128, 38,240, 38, 3, 95, 38, 1, 0, 38, 16, 38, 2, 27, 90, - 24,100, 37, 1, 13, 13, 36, 6, 25, 3, 30, 95, 19, 19, 0, 63,225, 63,206, 51, 51, 47, 51, 1, 16,246,225, 93, 93, 93, 17, 51, - 47, 93, 93,113, 51,225, 51, 47,225, 49, 48, 1, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 51, - 17, 20, 22, 51, 50, 62, 2, 55, 17, 4,221, 52, 62, 32, 10,198, 15, 15, 50, 85,128, 91, 66,133,201,136,128,196,133, 68,187,172, -176, 89,128, 82, 40, 1, 5,182,196, 6, 50, 78,100, 56, 22, 71,130,105, 74, 15,253,145,114,196,144, 82, 77,142,199,122, 3,174, -252, 72,176,191, 54, 98,136, 81, 3,182, 0, 1, 0,164,255,236, 5,121, 4,242, 0, 39, 0, 84, 64, 51, 31, 74, 33, 33, 1, 23, - 71, 26, 39, 39, 41, 16, 41, 1,128, 41,160, 41,224, 41, 3,111, 41, 1, 0, 41, 32, 41, 48, 41, 3, 7, 15, 71, 12, 84, 40, 26, - 38, 38, 31, 24, 13, 15, 18, 80, 2, 7, 22, 0, 21, 0, 63, 63, 51,225, 63, 51,198, 51, 47, 51, 1, 16,246,225, 94, 93, 93, 93, -113, 17, 51, 47, 51,225, 50, 51, 47,225, 49, 48, 33, 39, 35, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, - 17, 51, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 3,117, 27, 10, 25, 69, 82, 92, 48, 91,138, 92, 47,182,106,111, 81,110, 67, 29, -182, 52, 62, 32, 10,198, 15, 15, 50, 85,128, 91,147, 43, 63, 41, 20, 46, 98,152,105, 2,205,253, 61,130,130, 52,101,148, 96, 2, - 58,123, 6, 50, 78,101, 56, 23, 71,136,109, 72, 7,252,176, 0, 0, 1,252,143, 4,217,254, 25, 6, 33, 0, 13, 0, 22, 64, 10, - 0, 6, 8,128, 15, 0, 95, 0, 2, 0, 0, 47, 93, 26,204, 1, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23,254, 25, -121, 35, 81, 77, 64, 16,219, 16, 43, 46, 48, 22, 4,217, 28, 83, 88, 81, 27, 21, 35, 80, 81, 76, 29, 0, 0, 1,253, 72, 4,217, -254,209, 6, 33, 0, 13, 0, 22, 64, 10, 6, 0, 5,128, 15, 12, 95, 12, 2, 12, 0, 47, 93, 26,205, 1, 47,205, 49, 48, 1, 62, - 3, 55, 51, 21, 14, 3, 7, 35,253, 72, 21, 48, 46, 43, 16,219, 16, 63, 77, 82, 34,121, 4,244, 29, 76, 81, 80, 35, 21, 27, 81, - 88, 83, 28, 0, 0, 1,252, 70, 4,217,255, 20, 5,227, 0, 27, 0, 56, 64, 35, 15, 23, 47, 23, 2, 23, 0, 9, 32, 9, 2, 7, - 9, 22, 5,143, 14, 64, 16, 19, 72, 14, 64, 7, 11, 72, 14, 14, 19,143, 9, 15, 0, 1, 0, 0, 47, 93, 50,225, 51, 47, 43, 43, -225, 51, 1, 47, 94, 93,204, 93, 49, 48, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, -254, 66, 40, 79, 76, 71, 31, 45, 48, 14,104, 5, 33, 53, 74, 46, 41, 81, 77, 69, 29, 45, 46, 15,104, 5, 33, 53, 73, 4,219, 35, - 43, 35, 53, 62, 60, 97, 69, 38, 35, 42, 35, 52, 62, 60, 97, 69, 38, 0, 0, 1,253, 4, 4,184,254,121, 6,143, 0, 27, 0, 38, - 64, 18, 5, 8, 8, 13, 0, 21, 5, 8, 8, 18, 15, 25, 31, 25, 2, 25,128, 6, 0, 47, 26,204, 93, 50, 57, 17, 51, 1, 47,204, - 50, 57, 17, 51, 49, 48, 1, 20, 14, 2, 7, 7, 35, 39, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22,254,121, - 27, 45, 60, 34, 10,113, 14, 37, 60, 42, 23, 21, 36, 50, 29, 28, 52, 16, 16, 50, 41,133,133, 5,211, 39, 58, 41, 27, 7,111,176, - 6, 16, 24, 33, 24, 24, 32, 19, 7, 3, 3,108, 3, 5, 91, 0, 0, 1,253, 49,254,152,254, 6,255,125, 0, 13, 0, 15,181, 8, -135, 0, 11,145, 3, 0, 47,229, 1, 47,225, 49, 48, 5, 52, 54, 51, 50, 22, 21, 20, 14, 2, 35, 34, 38,253, 49, 62, 45, 43, 63, - 17, 29, 39, 21, 45, 62,246, 60, 55, 55, 60, 29, 43, 28, 14, 55,255,255, 0,199, 0, 0, 3,190, 7,115, 2, 38, 0, 40, 0, 0, - 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,194,180, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,201, 0, 0, 5, 16, 7,115, 2, 38, 1,178, 0, 0, 1, 7, 0, 67, 0, 66, 1, 82, 0, 21,180, 1, 24, 5, 38, 1, -184,255,163,180, 30, 24, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 33, 2, 38, 0, 72, 0, 0, - 1, 6, 0, 67,148, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255,185,180, 46, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,174, 0, 0, 4, 59, 6, 33, 2, 38, 1,210, 0, 0, 1, 6, 0, 67,202, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,163,180, - 18, 12, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,125,255,236, 7, 94, 5,201, 0, 69, 0,113, 64, 72, 20, 4, 57, 90, - 37,197, 54, 1,150, 54,166, 54, 2,137, 54, 1, 54, 54, 29, 65, 91, 12,103, 71, 0, 71, 16, 71, 2, 0, 71, 32, 71, 80, 71,112, - 71,208, 71,224, 71, 6, 7, 46, 91, 29,102, 70, 55, 55, 51, 0, 41, 95, 3, 38, 38, 7, 34, 4, 20, 32, 9, 14, 72, 20, 60, 51, - 95, 17, 24, 19, 0, 63, 51,225, 50, 50, 43, 63, 51, 51, 17, 51,225, 50, 18, 57, 47, 1, 16,246,225, 94, 93,113, 16,246,225, 17, - 57, 47, 93, 93, 93, 51,225, 50, 57, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 38, 39, - 35, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, - 17, 51, 17, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5,104, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198,136,111,170, - 73, 2, 75,168,110,136,198,129, 63, 64,125,183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 57,118, 46,187, - 46,118, 59, 92,139, 92, 46, 44, 80,113, 5, 37, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 50, 48, 48, 50,119, -210, 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 36, 38, 1,189,254, 67, 38, 36, 89,164, -229,141,136,207,138, 70, 0, 1, 0, 0, 0, 0, 5,244, 4, 74, 0, 44, 0,231, 64, 9,101, 16, 1,201, 34,249, 34, 2, 33,184, -255,240,179, 10, 16, 72, 44,184,255,240,179, 18, 27, 72, 44,184,255,240, 64, 25, 10, 15, 72, 0, 16, 10, 27, 72, 38, 13, 34, 14, - 33, 34, 21, 44, 0, 6, 86, 15,102, 15, 2, 15, 14,184,255,240, 64, 72, 31, 14, 1,111, 14,127, 14,159, 14,223, 14, 4, 89, 14, - 1, 79, 14, 1,116, 21, 1,107, 21, 1, 36, 21, 52, 21, 2, 36, 6, 52, 6, 68, 6,116, 6,148, 6, 5, 14, 6, 21, 21, 14, 6, - 3, 1, 27, 71, 0, 28, 16, 28, 2, 7, 28, 28, 46, 16, 46, 32, 46, 48, 46,208, 46,224, 46, 5, 2, 1,184,255,240, 64, 30, 1, - 38, 64, 21, 29, 72, 38, 32, 12, 20, 72, 38, 13, 16, 3, 27, 14, 1, 15, 21, 6, 38, 6, 54, 6, 2, 6, 34, 0, 21, 0, 63, 50, - 50, 93, 17, 51, 63, 51, 51, 23, 57, 43, 43, 1, 47, 56, 51, 93, 17, 51, 47, 94, 93,225, 18, 23, 57, 61, 47, 47, 24, 47, 93, 93, - 93, 93, 93, 93, 93,113, 56, 51, 93, 17, 51, 51, 17, 51, 51, 17, 18, 57, 57, 43, 43, 43, 43, 93, 49, 48, 93, 33, 1, 51, 19, 22, - 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 3, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 53, 14, 3, 7, 3, - 1,119,254,137,188,224, 28, 38, 9, 7, 7, 21, 26, 29, 15,119,162,188,201, 12, 31, 30, 24, 5, 7, 90,114, 65, 25,183, 37, 92, -154,117,192,119, 12, 13, 1, 6, 9, 10, 4,152, 4, 74,253, 86, 87,157, 51, 22, 58, 65, 69, 32, 1, 12, 1,207,253,176, 33, 99, -103, 92, 25,103,208,226,255,152,163,254,223,254,245,252,127, 1, 84, 32, 53, 3, 1, 19, 27, 29, 10,254,170, 0, 0, 2, 0, 20, - 0, 0, 4,188, 6, 20, 0, 22, 0, 33, 0,155, 64, 10, 19, 0, 23, 90, 12, 21, 21, 6, 16, 12,184,255,192, 64, 13, 26, 39, 72, - 32, 12, 1, 2,144, 12,160, 12, 2, 12,184,255,192,179, 19, 24, 72, 12,184,255,192, 64, 64, 11, 14, 72, 12, 12, 14, 27, 91, 6, -103, 35, 0, 35, 48, 35, 80, 35, 96, 35,128, 35, 5,224, 35, 1,159, 35, 1, 80, 35, 1, 14, 33, 95, 0, 22, 13, 95, 16, 19, 16, -176, 0, 1,137, 0, 1, 79, 0, 1, 15, 16, 1, 7, 0, 16, 0, 16, 17, 0, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 94, - 93, 93, 93, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 93, 93, 93,113, 16,246,225, 17, 57, 47, 43, 43, 93, 95,113, 43, 51, 18, 57, - 47, 16,225, 50, 50, 49, 48, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 51, 50, 54, - 53, 52, 46, 2, 35, 35, 2, 10,150,152,207,126, 55, 60,126,194,134,254,150,254,196, 1, 60,186, 1,121,254,135,160,174,164, 46, - 91,139, 93,129, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164, 1, 16,254,240,164,252, 64,132,136, 70, 97, 60, 27, 0, 2, - 0, 20, 0, 0, 4,109, 5, 39, 0, 20, 0, 33, 0,129, 64, 9, 19, 2, 22, 71, 16, 0, 12, 1, 12,184,255,192, 64, 71, 13, 26, - 72, 12, 0, 12, 0, 14, 28, 71, 6, 87, 35, 0, 35, 16, 35, 2,112, 35,144, 35,192, 35,224, 35, 4, 14, 21, 80, 2, 1, 13, 80, - 16, 19, 16, 15, 2, 31, 2, 2, 2, 64, 12, 30, 72, 15, 16, 1, 15, 16, 31, 16, 2, 7, 2, 16, 2, 16,127, 17, 1, 48, 17, 1, - 17, 22, 80, 12, 21, 0, 63,225, 47, 93, 93, 57, 57, 47, 47, 94, 93,113, 43, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 93,113, 16, -246,225, 18, 57, 57, 47, 47, 43, 93, 51,225, 50, 50, 49, 48, 1, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, - 51, 21, 33, 1, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, 2,227,254,213, 1, 21,211,205, 47,101,159,113,254, 57,238,238,182, 1, - 43,254,213, 1, 4, 55, 94, 67, 38, 33, 65, 96, 64, 3,176,254,215,156,155, 77,124, 88, 47, 3,176,154,221,221,253,164,254,168, - 17, 41, 66, 48, 49, 66, 40, 17, 0, 1, 0,199,255,236, 6,236, 5,203, 0, 45, 0, 88, 64, 47, 8, 5, 91, 27, 34, 7, 17, 17, - 7, 34, 3, 30, 42, 42, 47, 33, 29, 90, 30,100, 46, 43, 0, 95, 39, 4, 27, 8, 28, 95, 34, 5, 15, 33, 1, 8, 33, 33, 31, 3, - 30, 18, 13, 95, 16, 22, 19, 0, 63, 51,225, 63, 63, 57, 47, 94, 93, 51, 51,225, 50, 50, 63,225, 51, 1, 16,246,225, 50, 17, 51, -125, 47, 18, 23, 57, 24, 47, 47, 47, 51,225, 50, 49, 48, 1, 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, - 34, 38, 38, 2, 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 23, 7, 38, 38, 5,109, 95,160,120, 77, 13, 2,116,253,134, - 5, 64,117,172,113, 89,160, 78, 39, 78, 86, 97, 58,158,235,157, 82, 5,254,176,186,186, 1, 86, 14, 99,167,233,149,108,196, 79, - 78, 63,149, 5, 39, 65,122,175,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,100,184, 1, 3,159,253, 86, 5,182,253,152, -143,235,167, 92, 44, 42,156, 32, 46, 0, 0, 1, 0,174,255,236, 5,113, 4, 94, 0, 41, 0,100, 64, 57, 32, 29, 72, 5, 79, 12, - 1, 12, 31, 12, 31, 8, 39, 20, 20, 43, 11, 7, 71, 8, 84, 42, 26, 81, 21, 17, 16, 32, 5, 6, 80, 29, 12,169, 11,185, 11, 2, - 15, 11, 31, 11, 47, 11, 3, 6, 11, 11, 9, 15, 8, 21, 35, 81, 38, 0, 22, 0, 63, 50,225, 63, 63, 57, 47, 94, 93, 93, 51, 51, -225, 50, 50, 63, 51,225, 1, 16,246,225, 50, 17, 51,125, 47, 51, 18, 57, 57, 24, 47, 47, 93, 51,225, 50, 49, 48, 5, 34, 46, 2, - 39, 33, 17, 35, 17, 51, 17, 33, 62, 3, 51, 50, 22, 23, 7, 46, 3, 35, 34, 6, 7, 33, 21, 33, 22, 22, 51, 50, 54, 55, 21, 6, - 6, 4, 84, 97,169,129, 79, 7,254,241,182,182, 1, 19, 12, 85,129,165, 94, 78,149, 50, 54, 23, 56, 60, 59, 25,140,145, 14, 1, -219,254, 35, 9,146,138, 82,130, 54, 53,124, 20, 58,123,193,135,254, 23, 4, 74,254, 57,128,181,114, 52, 34, 25,154, 10, 19, 15, - 9,151,166,154,184,164, 37, 25,162, 29, 30, 0, 0, 2, 0, 0, 0, 0, 5, 47, 5,182, 0, 11, 0, 24, 0,174, 64, 73, 8, 6, - 1,216, 6,232, 6, 2, 7, 7, 1,215, 7,231, 7, 2,166, 7, 1,155, 1, 1,119, 0,167, 0, 2, 13, 10, 9, 12, 3, 4, 7, - 6, 19, 19, 8,167, 0, 1, 0, 1, 1, 5, 9, 0, 8, 1, 0, 8, 16, 8, 32, 8,112, 8,128, 8,192, 8, 6, 8, 16, 8, 8, - 26,144, 26,160, 26, 2, 26,184,255,192, 64, 15, 21, 24, 72,143, 26, 1, 64, 26, 1, 15, 26, 1, 8, 4, 5,184,255,240, 64, 19, - 5, 11, 3, 95, 19, 16, 10, 14, 72, 19, 12, 12, 6, 4, 0, 9, 18, 6, 3, 0, 63, 63, 51, 51, 18, 57, 47, 57, 43,225, 50, 1, - 47, 56, 51, 94, 93, 93, 93, 43, 93, 17, 51, 47, 56, 93,113, 51, 18, 57, 47, 51, 93, 17, 57, 61, 47, 51, 51, 18, 57, 57, 18, 57, - 57, 93, 93, 93, 93,113, 93,113, 49, 48, 33, 35, 17, 35, 1, 35, 1, 51, 1, 35, 1, 35, 39, 33, 39, 46, 3, 39, 14, 3, 7, 2, -236,166,127,254,254,197, 2, 57,187, 2, 59,199,254,254,122,232, 1, 35, 53, 18, 28, 22, 17, 7, 9, 17, 21, 25, 17, 2,170,253, - 86, 5,182,250, 74, 2,170,164,143, 48, 76, 67, 65, 37, 37, 65, 67, 73, 45, 0, 0, 2, 0, 10, 0, 0, 4, 90, 4, 74, 0, 11, - 0, 23, 0,207, 64, 56, 57, 2, 89, 2,121, 2,137, 2, 4, 27, 2, 43, 2, 2,181, 5, 1,150, 5,166, 5, 2,135, 5, 1, 9, - 3, 25, 3, 2, 6, 8, 22, 8, 2, 9, 18, 25, 18, 2, 6, 17, 22, 17, 2, 7, 18, 3, 2, 17, 8, 9,182, 0, 1, 0,184,255, -248, 64, 27, 10, 15, 72,185, 11, 1, 11, 8, 10, 15, 72, 0, 11,180, 12, 1, 12, 12, 5, 5, 6, 6, 10, 1, 16, 2, 1,184,255, -192,179, 18, 21, 72, 1,184,255,192, 64, 24, 7, 11, 72, 1, 1, 25,192, 25,224, 25, 2,175, 25, 1, 80, 25, 1, 15, 25, 31, 25, - 2, 9, 10,184,255,240, 64, 15, 10, 4, 8, 80, 12, 11, 17, 17, 1, 11, 15, 10, 6, 1, 21, 0, 63, 51, 51, 63, 18, 57, 47, 18, - 57,225, 50, 1, 47, 56, 51, 93, 93, 93, 93, 17, 51, 47, 43, 43, 51, 56, 18, 57, 47, 51, 18, 57, 61, 47, 93, 51, 51, 43, 93, 43, - 93, 18, 57, 57, 18, 57, 57, 94, 93, 93, 93, 93, 93, 93, 93, 49, 48, 93, 93, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 1, 23, - 14, 3, 7, 51, 46, 3, 39, 2,166, 1,180,188,187, 96,162, 96,186,189, 1,180,113, 5, 27, 35, 37, 13,240, 14, 37, 35, 27, 4, - 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 4, 74,121, 25, 85, 96, 94, 34, 34, 95, 96, 84, 25, 0, 0, 2, 0,199, 0, 0, - 7, 41, 5,182, 0, 19, 0, 32, 0,191, 64, 27,155, 1, 1,119, 0,167, 0, 2, 13, 6, 14, 5, 21, 18, 17, 20, 3, 27, 4, 4, - 5, 0, 1, 15, 14, 27, 5,184,255,240, 64, 93,128, 1, 1,203, 27, 1,132, 27, 1, 43, 27,123, 27, 2, 15, 5, 31, 5, 47, 5, -127, 5,207, 5,223, 5,255, 5, 7, 8, 5, 1, 27, 27, 1, 5, 3, 17, 16, 16, 0, 16, 16, 16,112, 16,176, 16,240, 16, 5, 16, - 16, 34, 48, 34, 80, 34,192, 34,208, 34,224, 34, 5, 12, 8, 90, 9,100, 33, 19, 6, 3, 95, 13, 27, 32, 9, 16, 72, 27, 20, 20, - 14, 9, 4, 1, 17, 18, 10, 14, 3, 0, 63, 51, 63, 51, 51, 51, 18, 57, 47, 57, 43, 51,225, 50, 50, 1, 16,246,225, 50, 93, 17, - 51, 47, 93, 56, 51, 23, 57, 61, 47, 24, 47, 47, 94, 93, 93, 93, 93, 93, 56, 17, 51, 51, 17, 51, 17, 51, 17, 18, 57, 57, 17, 57, - 57, 17, 18, 57, 57, 93, 93, 49, 48, 33, 35, 17, 35, 1, 35, 1, 33, 17, 35, 17, 51, 17, 33, 19, 51, 1, 35, 1, 35, 39, 33, 39, - 46, 3, 39, 14, 3, 7, 4,231,165,129,254,253,196, 1, 8,254,127,186,186, 1,193,241,187, 2, 59,199,254,254,121,233, 1, 35, - 53, 19, 28, 21, 17, 8, 8, 17, 21, 25, 17, 2,170,253, 86, 2,170,253, 86, 5,182,253,152, 2,104,250, 74, 2,170,164,143, 48, - 76, 67, 65, 37, 37, 65, 67, 73, 45, 0, 0, 2, 0,174, 0, 0, 6, 8, 4, 74, 0, 19, 0, 31, 0,235, 64, 49,165, 5, 1,134, - 5,150, 5, 2,119, 5, 1, 6, 9, 22, 9, 2, 25, 2, 41, 2, 73, 2,105, 2,121, 2, 5, 11, 2, 1, 26, 3, 2, 25, 8, 20, - 9, 18, 11, 19, 10, 17, 13, 71, 14,198, 0, 1, 0,184,255,248, 64, 23, 10, 15, 72,201, 19, 1, 19, 8, 10, 15, 72, 0, 19,196, - 20, 1, 20, 20, 5, 5, 6, 9, 10,184,255,240, 64, 19, 47, 10, 63, 10,175, 10, 3, 10, 6, 10, 6, 1, 14, 84, 32, 2, 1, 16, - 1,184,255,192,179, 18, 21, 72, 1,184,255,192, 64, 44, 7, 11, 72, 1, 1, 33,208, 33, 1,191, 33, 1, 96, 33,112, 33,144, 33, - 3, 79, 33, 1, 0, 33, 1, 8, 11, 4, 8, 80, 18, 20, 19, 25, 25, 2, 15, 19, 15, 14, 9, 6, 2, 21, 0, 63, 51, 51, 51, 63, - 51, 18, 57, 47, 18, 57, 51,225, 50, 50, 1, 94, 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 16,230, 17, 57, 57, 47, 47, 93, - 56, 51, 17, 51, 18, 57, 61, 47, 93, 51, 51, 43, 93, 43, 93, 16,225, 50, 17, 18, 57, 57, 17, 18, 57, 57, 17, 57, 57, 93, 93, 93, - 93, 93, 93, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 19, 33, 17, 35, 17, 51, 17, 33, 19, 23, 14, 3, 7, 51, 46, 3, - 39, 4, 84, 1,180,188,187, 96,162, 96,186,189,195,254,233,182,182, 1, 84,181,112, 5, 27, 35, 37, 13,240, 14, 37, 35, 27, 4, - 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 1,233,254, 23, 4, 74,254, 57, 1,199,121, 25, 84, 96, 95, 34, 34, 95, 96, 84, - 25, 0, 0, 2, 0, 20, 0, 0, 5,106, 5,182, 0, 35, 0, 38, 0,192, 64, 17,134, 34, 1,134, 26, 1, 89, 18,137, 18, 2, 37, - 16, 9, 12, 72, 38,184,255,240, 64, 44, 9, 12, 72, 37, 10, 11, 6, 36, 36, 26, 90, 27, 38, 7, 0, 10, 16, 10, 32, 10, 3, 10, - 27, 7, 7, 27, 10, 3, 0, 18, 16, 17, 32, 17, 2,208, 17, 1,128, 17,144, 17, 2, 17,184,255,192, 64, 59, 7, 10, 72, 17, 17, - 40, 31, 40, 1,240, 40, 1,207, 40,223, 40, 2, 64, 40, 80, 40,112, 40, 3, 15, 40, 63, 40, 2, 7, 35, 0, 25, 28, 97, 36, 11, - 79, 6, 1, 15, 6,175, 6, 2, 8, 6, 6, 0, 10, 7, 38, 95, 8, 3, 27, 18, 0, 18, 0, 63, 50, 50, 63,225, 50, 50, 18, 57, - 47, 94, 93,113, 51, 51,225, 50, 1, 47, 51, 94, 93, 93, 93, 93,113, 17, 51, 47, 43, 93, 93,113, 51, 18, 23, 57, 47, 47, 47, 93, - 17, 51, 16,225, 57, 61, 47, 51, 51, 17, 51, 43, 43, 93, 93, 49, 48, 93, 51, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, - 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33, 20,123, 24, 54, 84,124, 95,254,144, 4, 73,254,133, 97, -128, 86, 55, 24,122,190,123, 20, 38, 54, 79, 61, 24,187, 24, 61, 79, 54, 38, 20,123, 1,235, 1, 74,253,111, 1,197, 85,136, 98, - 58, 6, 1,231,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, 72,254, 63, 3, - 90, 1,184, 0, 0, 2, 0, 10, 0, 0, 4,229, 4, 74, 0, 35, 0, 38, 0,199, 64, 13,118, 26,134, 26,150, 26, 3, 37, 16, 7, - 12, 72, 38,184,255,240, 64, 24, 7, 12, 72, 9, 18, 1, 6, 35, 1, 11, 6, 36, 36, 26, 70, 27, 37, 10, 38, 7,167, 27, 1, 10, -184,255,192, 64, 16, 22, 25, 72, 10, 27, 7, 7, 27, 10, 3, 0, 18, 32, 17, 1, 17,184,255,192,179, 18, 21, 72, 17,184,255,192, - 64, 63, 7, 11, 72, 17, 17, 40, 16, 40, 1,207, 40,223, 40, 2, 96, 40,144, 40, 2, 31, 40, 79, 40, 2, 35, 0, 10, 7, 38, 80, - 8, 25, 28, 82, 22, 36, 38, 36, 54, 36,166, 36, 4, 36, 11, 15, 6, 31, 6, 79, 6, 95, 6, 4, 7, 6, 6, 8, 15, 27, 18, 0, - 21, 0, 63, 50, 50, 63, 57, 47, 94, 93, 51, 51, 93,225, 50, 16,225, 50, 50, 1, 47, 51, 93, 93, 93,113, 17, 51, 47, 43, 43,113, - 51, 18, 23, 57, 47, 47, 47, 43, 93, 17, 51, 17, 51, 16,225, 57, 61, 47, 51, 51, 93, 93, 43, 43, 93, 49, 48, 51, 19, 62, 3, 55, - 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 19, 33, 10,123, 22, 44, 66, -103, 83,254,206, 3,207,254,201, 83,104, 67, 44, 23,123,186,123, 20, 36, 48, 68, 53, 4,166, 4, 53, 70, 48, 37, 20,122, 1,180, -252,254, 10, 1, 84, 61,101, 77, 49, 9, 1,100,105,105,254,156, 8, 49, 76,103, 61,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, - 10, 17, 43, 72, 54,254,176, 2,131, 1, 45, 0, 0, 2, 0,199, 0, 0, 7,137, 5,182, 0, 40, 0, 43, 0,202, 64, 21,134, 31, - 1, 89, 23,137, 23, 2, 16, 11, 41, 41, 31, 90, 32, 42, 16, 9, 12, 72, 43,184,255,240, 64, 51, 9, 12, 72, 42, 15, 43, 12, 0, - 15, 16, 15, 32, 15, 3, 7, 15, 12, 32, 32, 12, 15, 3, 22, 40,176, 0,192, 0, 2, 15, 0, 31, 0, 2, 0, 0, 7, 23, 0, 22, - 16, 22, 2,112, 22,128, 22,192, 22, 3, 22,184,255,192, 64, 52, 7, 10, 72, 22, 22, 45,224, 45, 1,159, 45,191, 45, 2, 64, 45, - 1, 47, 45, 1, 10, 6, 90, 7,100, 44, 15, 12, 43, 95, 13, 30, 5, 33, 97, 41, 16, 15, 11, 1, 8, 11, 11, 8, 13, 3, 7, 23, - 32, 3, 0, 18, 0, 63, 23, 50, 63, 51, 57, 47, 94, 93, 51, 51,225, 50, 50, 16,225, 50, 50, 1, 16,246,225, 50, 93, 93, 93, 93, - 17, 51, 47, 43, 93,113, 51, 18, 57, 47, 93, 93, 51, 18, 23, 57, 47, 47, 47, 94, 93, 17, 51, 17, 51, 43, 43, 16,225, 57, 61, 47, - 51, 51, 93, 93, 49, 48, 33, 19, 54, 54, 55, 33, 17, 35, 17, 51, 17, 33, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, - 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33, 2, 51,123, 19, 41, 28,254,123,186,186, 2,164,254,149, 4, 74,254,133, 97, -128, 85, 55, 24,123,190,123, 20, 38, 54, 79, 61, 25,186, 25, 60, 79, 54, 38, 20,123, 1,235, 1, 74,253,111, 1,197, 68,115, 46, -253, 86, 5,182,253,152, 1,221,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, - 72,254, 63, 3, 90, 1,184, 0, 0, 2, 0,174, 0, 0, 6,152, 4, 74, 0, 40, 0, 43, 0,207, 64, 13,118, 31,134, 31,150, 31, - 3, 42, 16, 7, 12, 72, 43,184,255,240, 64, 44, 7, 12, 72, 9, 23, 1, 16, 11, 41, 41, 31, 70, 32, 42, 15, 43, 12,167, 32, 1, - 15, 32, 12, 12, 32, 15, 3, 22, 31, 0, 47, 0, 2,255, 0, 1, 0, 0, 7, 23, 32, 22, 1, 22,184,255,192,179, 18, 21, 72, 22, -184,255,192, 64, 63, 7, 11, 72, 22, 22, 45,207, 45, 1,176, 45, 1,159, 45, 1, 96, 45, 1, 79, 45, 1, 0, 45, 48, 45, 2, 10, - 6, 71, 7, 84, 44, 15, 12, 43, 80, 13, 30, 5, 33, 82,166, 41, 1, 41, 16, 15, 11, 31, 11, 2, 7, 11, 11, 8, 13, 15, 7, 23, - 32, 3, 0, 21, 0, 63, 23, 50, 63, 51, 57, 47, 94, 93, 51, 51, 93,225, 50, 50, 16,225, 50, 50, 1, 16,246,225, 50, 93, 93, 93, - 93, 93, 93, 17, 51, 47, 43, 43,113, 51, 18, 57, 47, 93,113, 18, 23, 57, 47, 47, 47, 93, 17, 51, 17, 51, 16,225, 57, 61, 47, 51, - 51, 93, 43, 43, 93, 49, 48, 33, 19, 54, 54, 55, 33, 17, 35, 17, 51, 17, 33, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, - 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 19, 33, 1,188,123, 16, 29, 19,254,237,182,182, 2, 11,254,213, 3,206,254,201, - 83,104, 67, 45, 23,123,187,123, 20, 36, 48, 68, 53, 4,166, 4, 53, 69, 49, 36, 20,123, 1,180,252,254, 10, 1, 84, 42, 75, 32, -254, 23, 4, 74,254, 57, 1, 94,105,105,254,156, 8, 49, 76,103, 61,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, 10, 17, 43, 72, - 54,254,176, 2,131, 1, 45, 0, 0, 1, 0, 57,254, 70, 3,236, 6,213, 0,118, 0,159, 64, 39, 33, 24, 9, 14, 72, 89, 98, 89, - 81, 77, 77, 71, 81, 59, 91,103,108, 81,103, 68, 53,103, 20, 81, 20,103, 81, 53, 68, 5, 36, 46, 91,114,103,120, 5, 90, 36,184, -255,192, 64, 54, 20, 24, 72, 36, 93, 82, 77,143, 86,159, 86,175, 86, 3, 86, 64, 7, 11, 72, 86, 86, 71,108, 52, 96, 79, 53, 1, - 15, 53,175, 53, 2, 8, 53, 53, 41, 67, 81, 98, 3, 64, 97, 71, 3, 21, 10, 95, 31,251, 41, 96, 0, 19, 0, 63,225, 63,225, 51, - 63,225, 23, 51, 18, 57, 47, 94, 93,113,225, 57, 17, 51, 47, 43, 93, 51,225, 1, 47, 43,225, 16,246,225, 18, 23, 57, 61, 47, 24, - 47, 47, 47, 47, 17, 18, 57, 16,225, 17, 51, 51, 47, 17, 51, 51, 47, 49, 48, 0, 43, 5, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, - 2, 51, 50, 30, 2, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, - 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 51, 50, 22, 23, 21, 38, - 38, 35, 34, 14, 2, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 1,225, 71, 90, 52, 20, 14, 36, 61, 47, 65, 97, - 83, 81, 50, 43, 66, 49, 35, 12, 8, 31, 54, 77, 53, 49, 71, 74, 92, 70,104,136, 79, 32, 49,102,157,108, 89,128, 81, 38, 57,103, -145, 88,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 59,166,103, 24, 55, 54, 50, 20,121, 51, 97, 54, 26, 59, 67, 75, - 42, 31, 47, 14, 11, 34, 17, 22, 48, 48, 46, 20, 82,126, 85, 43, 51, 91,125, 75, 87,138, 94, 50, 67,131,196, 20, 18, 32, 41, 24, - 22, 36, 26, 14, 4, 4, 4, 7, 10, 15, 7,182, 7, 18, 16, 12, 3, 3, 2, 41, 72, 96, 55, 60, 98, 70, 38, 38, 72,105, 68, 71, -101, 63, 29,151, 39, 72,100, 62, 54, 83, 58, 30, 67, 54,125, 48, 75, 17, 30, 65, 63, 58, 23, 27, 34, 97, 56, 36, 70, 56, 35, 9, - 5,119, 5, 7, 23, 41, 56, 33, 13, 63, 92,118, 69, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 0, 1, 0, 23, -254,115, 3, 82, 5, 82, 0,112, 0,183, 64,113, 64, 24, 9, 14, 72,104,104, 98,108, 3, 12, 3,108, 88, 70, 17, 22,108, 17,224, - 95, 1, 95, 82, 17, 51,108, 51, 17,108, 82, 95, 5, 67, 77, 71, 28, 87,114,192,114,208,114,224,114, 3,127,114, 1, 48,114, 1, - 15,114, 1, 7, 38, 70, 67, 64, 12, 17, 72, 67, 22, 22, 81, 80,137, 82,153, 82, 2, 15, 82, 1, 8, 82, 82, 98, 72,104, 7, 82, - 0, 64, 16, 20, 72, 0, 64, 7, 12, 72, 0, 94,108, 0, 3, 91, 80, 12, 98, 16, 52, 43, 80, 62,251, 72, 80, 33, 22, 0, 63,225, - 63,225, 51, 63, 51,225, 23, 51, 47, 43, 43,225, 51, 17, 18, 57, 47, 94, 93, 93,225, 57, 61, 47, 1, 24, 47, 43,225, 94, 93, 93, - 93, 93, 16,246,225, 18, 23, 57, 61, 47, 24, 47, 47, 47, 47, 93, 17, 18, 57, 16,225, 17, 51, 51, 47, 17, 51, 51, 47, 49, 48, 0, - 43, 1, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 35, 34, 14, 2, 21, - 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, - 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 2,207, 31, - 47, 14, 11, 33, 17, 21, 46, 46, 45, 19, 55, 89, 63, 35, 28, 51, 70, 43, 44, 82, 63, 38, 53,108,166,113, 75, 89, 47, 15, 14, 34, - 58, 44, 50, 99, 93, 83, 33, 66, 71, 13, 9, 34, 40, 44, 19, 32, 85,100,111, 57, 88,112, 64, 24, 34, 86,144,110, 55,100, 76, 44, -133,138,129, 97, 61,100, 72, 39,115,108, 71,129, 75, 63, 57,107, 65, 23, 49, 48, 44, 18,121, 51, 98, 54, 26, 58, 67, 75, 5, 82, - 9, 5,119, 5, 7, 21, 38, 51, 31, 14, 49, 69, 88, 53, 50, 77, 59, 41, 14, 11, 14, 44, 66, 91, 61, 68,116, 86, 49, 14, 26, 38, - 23, 22, 35, 24, 13, 3, 4, 3, 22, 19,151, 10, 15, 10, 6, 3, 3, 3, 46, 71, 86, 41, 47, 89, 70, 42, 19, 43, 69, 51, 94, 91, -153, 18, 39, 64, 45, 77, 77, 38, 34,147, 28, 34, 8, 28, 59, 55, 50, 21, 27, 34, 97, 56, 36, 70, 56, 35,255,255, 0,104, 0, 0, - 5,186, 5,182, 2, 6, 1,117, 0, 0,255,255, 0,164,254, 20, 5,113, 6, 18, 2, 6, 1,149, 0, 0, 0, 3, 0,125,255,236, - 5,113, 5,205, 0, 19, 0, 30, 0, 41, 0, 79, 64, 50, 37, 25, 91, 0,103, 43,208, 43, 1,207, 43, 1,128, 43, 1, 63, 43,111, - 43, 2, 36, 26, 91, 10,102, 42, 26, 96, 79, 36, 1, 15, 36,175, 36,223, 36, 3, 8, 36, 36, 20, 31, 95, 15, 4, 20, 95, 5, 19, - 0, 63,225, 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, 50, 93, 93, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 2, 6, 6, - 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 46, 3, 5, -113, 81,160,237,155,163,239,157, 76, 76,158,239,164,154,236,160, 81,253,135,106,158,107, 57, 6,252,154, 6, 58,107,158,109,105, -156,108, 61, 8, 3,100, 8, 59,105,155, 2,221,170,254,235,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,253, - 7, 71,134,194,122,122,194,134, 71, 4,154, 67,128,184,117,117,184,128, 67, 0, 0, 3, 0,113,255,236, 4, 45, 4, 94, 0, 19, - 0, 26, 0, 33, 0, 79, 64, 51, 31, 23, 72, 0, 87, 35, 64, 35,208, 35,224, 35, 3, 15, 35, 1, 30, 24, 72, 10, 86, 34, 24, 80, -239, 30, 1,169, 30,185, 30, 2, 15, 30, 31, 30, 47, 30, 3, 6, 30, 30, 20, 27, 80, 15, 16, 20, 80, 5, 22, 0, 63,225, 63,225, - 18, 57, 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 93, 93, 16,246,225, 50, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, - 2, 51, 50, 30, 2, 1, 50, 54, 55, 33, 22, 22, 19, 34, 6, 7, 33, 38, 38, 4, 45, 67,125,178,111,103,174,127, 71, 67,124,179, -111,103,174,127, 71,254, 35,141,136, 10,253,190, 9,140,140,137,136, 14, 2, 62, 13,138, 2, 39,137,213,145, 76, 76,145,213,137, -136,211,145, 75, 75,145,211,253,212,178,178,178,178, 3, 68,162,164,164,162, 0, 0, 1, 0, 0, 0, 0, 5, 2, 5,195, 0, 28, - 0, 90, 64, 41, 7, 6, 11, 13, 1,251, 13, 1, 13, 13, 8,144, 25,208, 25, 2, 25, 25, 30, 0, 30, 1,176, 30, 1, 15, 30, 31, - 30, 47, 30, 79, 30, 95, 30,127, 30, 6, 7, 9, 8,184,255,240, 64, 12, 8, 0, 96, 22, 4, 9, 8, 3, 13, 6, 7, 18, 0, 63, - 51, 51, 63, 51, 63,225, 1, 47, 56, 51, 94, 93, 93,113, 17, 51, 47, 93, 18, 57, 61, 47, 93,113, 51, 51, 49, 48, 1, 34, 14, 2, - 7, 1, 35, 1, 51, 1, 22, 22, 23, 54, 54, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, 38, 4,150, 36, 53, 42, 36, 18,254,215,205, -254, 25,197, 1, 39, 29, 46, 17, 14, 42, 26,141, 31, 61, 76,103, 75, 35, 68, 26, 23, 53, 5, 45, 37, 72,103, 66,251,233, 5,182, -252, 97, 91,175, 79, 78,188, 97, 2, 0,113,156, 98, 43, 13, 8,151, 9, 13, 0, 0, 1, 0, 0, 0, 0, 4, 14, 4, 82, 0, 31, - 0,109,185, 0, 30,255,248, 64, 22, 10, 14, 72, 31, 8, 10, 14, 72, 31, 30, 7, 32, 13, 17, 72, 7, 7, 0,224, 22, 1, 22,184, -255,224, 64, 26, 7, 10, 72, 22, 22, 33,191, 33,207, 33,239, 33, 3, 80, 33, 1, 15, 33, 47, 33, 79, 33, 3, 7, 1, 0,184,255, -240, 64, 12, 0, 30, 7, 31, 21, 26, 79, 19, 15, 1, 0, 15, 0, 63, 50, 63,225, 63, 51, 51, 1, 47, 56, 51, 94, 93, 93, 93, 17, - 51, 47, 43, 93, 18, 57, 61, 47, 43, 51, 51, 43, 43, 49, 48, 17, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 62, 3, 51, 50, 22, 23, - 21, 38, 38, 35, 34, 6, 7, 3, 35,188,201, 11, 32, 31, 26, 5, 6, 4, 20, 24, 25, 9, 86, 25, 53, 67, 88, 60, 26, 34, 17, 11, - 38, 18, 47, 58, 24,224,243, 4, 74,253,162, 33,106,110, 97, 25, 25, 95,108,103, 33, 1, 64, 94,117, 66, 24, 5, 5,135, 3, 5, - 80, 88,252,223,255,255, 0, 0, 0, 0, 5, 2, 7,115, 2, 38, 2,128, 0, 0, 1, 7, 3,118, 4,184, 1, 82, 0, 25,182, 2, - 1, 29, 5, 38, 2, 1,184,255,130,180, 49, 29, 8, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4, 14, - 6, 33, 2, 38, 2,129, 0, 0, 1, 7, 3,118, 4, 80, 0, 0, 0, 25,182, 2, 1, 32, 17, 38, 2, 1,184,255,148,180, 52, 32, - 0, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0,125,254, 20, 9, 90, 5,205, 0, 19, 0, 39, 0, 74, 0,161, 64, 10, - 0, 91, 30, 56, 74, 47, 47, 55, 41, 40,184,255,240, 64, 35, 40, 40, 64, 0, 64, 16, 64, 2,240, 64, 1, 31, 64, 47, 64, 63, 64, - 3, 0, 30, 1, 30, 64, 30, 64, 10, 54, 55, 16,208, 55,224, 55, 2, 55,184,255,192, 64, 52, 7, 11, 72, 55, 55, 76, 15, 76, 1, - 15, 76, 31, 76, 47, 76, 79, 76,127, 76,191, 76,223, 76,239, 76, 8, 7, 20, 91, 10,102, 75, 56, 47, 74, 74, 40, 68, 80, 61, 27, - 54, 40, 15, 35, 95, 15, 4, 25, 95, 5, 19, 0, 63,225, 63,225, 63, 51, 63,225, 17, 57, 17, 51, 51, 1, 16,246,225, 94, 93,113, - 17, 51, 47, 43, 93, 56,193, 18, 57, 57, 47, 47, 93, 93, 93,113, 17, 51, 47, 56,193, 18, 57, 61, 47, 51, 51, 16,225, 49, 48, 1, - 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, - 34, 14, 2, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 55, 5, - 31, 76,150,221,145,152,224,147, 71, 71,147,225,153,144,221,149, 76,252, 35, 47, 97,150,103,103,150, 96, 46, 46, 96,148,103,104, -151, 97, 47, 4, 67,189,215, 13, 29, 25, 19, 4, 6, 4, 23, 27, 29, 11,199,188,254, 78, 29, 64, 86,116, 80, 52, 76, 27, 21, 64, - 35, 48, 70, 52, 37, 15, 57, 2,221,170,254,235,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,171,137,219,153, - 81, 81,153,219,137,138,218,151, 81, 81,151,218,227,253,155, 40, 88, 88, 83, 34, 25, 86, 97, 94, 33, 2, 99,251, 39, 81,129, 90, - 49, 11, 6,145, 5, 7, 23, 44, 64, 41,160, 0,255,255, 0,113,254, 20, 8, 78, 4, 94, 0, 38, 0, 82, 0, 0, 1, 7, 0, 92, - 4,111, 0, 0, 0, 17,177, 2, 2,184, 4, 20,180, 32, 47, 10, 0, 37, 1, 43, 53, 0, 53, 0, 0, 2, 0,125,255,131, 5,195, - 6, 49, 0, 31, 0, 63, 0, 82, 64, 51, 48, 91, 0,103, 65,180, 65,196, 65, 2,144, 65, 1, 2, 48, 65,128, 65, 2, 32, 91, 16, -102, 64, 25, 24, 1, 11, 24, 1, 4, 8, 20, 8, 2, 7, 56, 53, 59, 95, 27, 24, 21, 3, 40, 37, 95, 8, 5, 11, 18, 0, 63, 51, - 51,225, 50, 63, 51, 51,225, 50, 50, 94, 93, 93, 93, 1, 16,246,225, 93, 95, 93, 93, 16,246,225, 49, 48, 1, 20, 14, 2, 7, 6, - 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, 30, 3, 5, 20, 30, 2, 23, 54, 54, 51, 50, 22, 23, 62, - 3, 53, 52, 46, 2, 39, 6, 6, 35, 34, 38, 39, 14, 3, 5,195, 73,137,197,124, 14, 74, 55, 59, 72, 13,129,199,135, 69, 69,135, -199,129, 13, 72, 59, 55, 74, 14,123,197,137, 74,251,127, 45, 87,127, 83, 17, 67, 53, 49, 69, 17, 82,128, 87, 45, 45, 87,128, 82, - 16, 70, 49, 53, 67, 17, 83,127, 87, 45, 2,221,149,252,192,125, 23, 63, 54, 54, 63, 22,125,192,254,150,150,251,191,123, 23, 63, - 49, 51, 61, 23,125,191,251,150,116,192,146, 98, 21, 48, 38, 40, 46, 21, 98,146,192,116,115,191,146, 98, 22, 50, 41, 41, 48, 22, - 97,145,191, 0, 0, 2, 0,113,255,145, 4,168, 4,182, 0, 31, 0, 55, 0, 84,181, 44, 72, 0, 87, 57, 57,184,255,192,179, 14, - 20, 72, 57,184,255,192, 64, 36, 9, 12, 72, 32, 72, 16, 86, 56, 25, 24, 1, 11, 24, 1, 4, 8, 20, 8, 2, 7, 50, 47, 53, 80, - 27, 2, 21, 15, 41, 38, 35, 80, 8, 5, 11, 22, 0, 63, 51, 51,225, 50, 50, 63, 51, 51,225, 50, 50, 94, 93, 93, 93, 1, 16,246, -225, 43, 43, 16,246,225, 49, 48, 1, 20, 14, 2, 7, 6, 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, - 30, 3, 5, 20, 22, 23, 54, 54, 51, 50, 22, 23, 54, 54, 53, 52, 38, 39, 6, 6, 35, 34, 38, 39, 6, 6, 4,168, 57,107,153, 95, - 9, 60, 56, 58, 59, 8, 93,153,110, 61, 57,108,154, 98, 8, 59, 58, 55, 61, 9, 91,152,109, 60,252,133,111,123, 11, 57, 52, 50, - 57, 12,121,109,110,120, 12, 57, 50, 52, 57, 11,123,111, 2, 39,118,191,142, 90, 18, 57, 46, 45, 56, 18, 90,142,192,119,117,191, -141, 90, 18, 57, 41, 42, 58, 18, 91,141,188,117,172,205, 31, 44, 32, 32, 42, 31,204,171,169,200, 32, 43, 32, 32, 45, 31,200, 0, - 0, 3, 0,125,255,236, 7, 53, 8, 61, 0, 69, 0, 91, 0,109, 0,218, 64,146, 55, 20, 36, 4, 20, 4, 20, 36, 3, 28, 65, 91, - 12,103,111, 0,111, 16,111, 2, 0,111, 32,111, 80,111,128,111,144,111,160,111,208,111,224,111, 8, 45, 91, 28,102,110, 99,104, - 71, 71, 92,104, 81, 64, 82, 80, 82, 96, 82, 3, 82, 82, 95, 0,104, 16,104, 32,104,128,104,144,104, 5, 7,104,224, 77, 1, 77, -191, 86,207, 86, 2, 86, 82,239, 70, 1, 70, 71, 71, 79, 82, 1, 82, 82, 96,107,192,107,208,107,224,107, 4,107,111, 95,127, 95, -175, 95,239, 95, 4, 16, 95, 1, 95, 50, 60, 95, 17, 20,127, 55,143, 55, 2, 55, 64, 7, 10, 72, 55, 55, 23, 17, 19, 37, 3, 3, - 40, 0, 95, 33, 7, 4, 0, 63, 51,225, 50, 51, 17, 51, 63, 51, 51, 47, 43, 93, 51, 16,225, 50, 47, 93, 93,204, 93, 50, 47,113, - 51, 16,205, 93, 16,221, 93,205, 93, 1, 47, 94, 93, 51, 51, 47, 93,205, 16,205, 50, 47, 17, 57, 16,246,225, 93,113, 16,246,225, - 18, 23, 57, 61, 47, 24, 47, 47, 17, 51, 49, 48, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, 35, 34, 38, - 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, - 55, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 3, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 5, - 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 5, 63, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198, -136,103,162, 69, 71,160,103,136,198,129, 63, 64,125,183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 42, 86, - 78, 66, 23, 23, 66, 78, 86, 42, 92,139, 92, 46, 44, 80,113, 3, 16, 86,144,122,100, 42, 46, 58,133,124,109, 58,112,119,133, 78, -254,239,120,121, 60, 56, 31, 36, 31, 50, 46, 59, 68, 5, 37, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 42, 44, - 44, 42,119,210, 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 19, 35, 47, 28, 28, 47, 35, - 19, 89,164,229,141,136,207,138, 70, 2,166,129, 36, 42, 36, 45, 53, 16, 35,107,101, 36, 42, 36,226, 77,115, 31, 76, 22, 45, 25, - 19, 18, 16, 26, 28, 37, 38, 70, 0, 3, 0,113,255,236, 5,223, 7, 8, 0, 67, 0, 89, 0,108, 0,178, 64,107, 96,103, 69, 69, - 90,103, 79, 64, 80, 80, 80, 2, 80, 80, 93,111,103,159,103, 2, 16,103, 1,103, 36, 21, 11, 53, 63, 3, 3, 11, 44, 72, 63, 87, -110, 30, 72, 11, 86,109, 0, 75, 1, 75,223, 84, 1, 84, 80, 15, 68, 1, 68, 69, 69,111, 80, 1, 80, 80, 0,106, 1,224,106,240, -106, 2,106, 15, 93,127, 93, 2, 7, 93, 47, 27, 81, 52, 22, 22, 58, 16, 16, 33, 41, 81, 0, 3, 36, 64, 16, 21, 72, 36, 64, 7, - 12, 72, 36, 36, 6, 0, 22, 0, 63, 50, 50, 47, 43, 43, 51, 16,225, 50, 63, 51, 51, 17, 51,225, 50, 47, 94, 93,204, 93,113, 50, - 47,113, 51, 16,205,113, 16,221, 93,205,113, 1, 16,246,225, 16,246,225, 18, 57, 61, 47, 18, 57, 18, 57, 51, 24, 47, 93, 93, 51, - 51, 47, 93,205, 16,205, 50, 47, 17, 57, 49, 48, 5, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 7, - 46, 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, 14, 2, 7, 39, 62, 3, 51, 50, 30, 2, - 21, 20, 14, 2, 19, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 5, 20, 6, 7, 53, 54, 53, 52, - 46, 4, 53, 52, 54, 51, 50, 22, 4, 16, 81,109, 43, 43,106, 80, 95,169,127, 74, 63,109,147, 84, 31, 64, 60, 52, 20, 63, 17, 41, - 43, 43, 18,112,105,141,136, 73,115, 41, 22, 49, 57, 66, 41,133,140,105,112, 18, 43, 43, 41, 17, 64, 20, 53, 60, 63, 32, 84,147, -109, 63, 74,126,169, 58, 16, 86,144,122,100, 42, 46, 58,134,124,110, 57,112,120,133, 78,254,239,120,121,116, 15, 21, 26, 21, 15, - 50, 46, 59, 68, 20, 35, 32, 32, 35, 63,137,213,150,157,219,137, 62, 9, 16, 22, 12,154, 10, 19, 15, 9,202,211,211,195, 52, 32, - 16, 30, 24, 14,195,211,211,202, 9, 15, 19, 10,154, 12, 22, 16, 9, 62,137,219,157,150,213,137, 63, 6,170,130, 36, 43, 36, 46, - 52, 17, 35,108,101, 36, 42, 36,226, 77,115, 31, 76, 41, 51, 13, 15, 12, 10, 15, 23, 18, 38, 38, 70, 0, 0, 2, 0,125,255,236, - 7, 94, 7, 4, 0, 13, 0, 83, 0,155, 64, 98, 35, 18, 71, 90, 51,197, 68, 1,150, 68,166, 68, 2,137, 68, 1, 68, 68, 43, 79, - 91, 26, 0, 13, 0, 13, 43, 26,103, 85, 0, 85, 16, 85, 2, 0, 85, 32, 85, 80, 85,112, 85,208, 85,224, 85, 6, 7, 60, 91, 43, -102, 84, 69, 69, 65, 14, 55, 95, 48, 17, 52, 9, 4, 4, 0,128, 10, 6, 63, 2,127, 2,207, 2,223, 2,239, 2, 5, 2, 52, 21, - 48, 4, 74, 35, 32, 9, 14, 72, 35, 65, 95, 31, 38, 19, 0, 63, 51,225, 50, 43, 50, 63, 51, 51, 47, 93, 51, 51, 26,205, 57, 47, - 51, 17, 51, 16,225, 50, 18, 57, 47, 1, 16,246,225, 94, 93,113, 16,230, 17, 57, 57, 47, 47, 16,225, 17, 57, 47, 93, 93, 93, 51, -225, 50, 57, 49, 48, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 1, 34, 6, 7, 39, 54, 54, 51, 50, 22, 22, 18, 21, - 20, 2, 6, 6, 35, 34, 38, 39, 35, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, - 21, 20, 30, 2, 51, 50, 54, 55, 17, 51, 17, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 5,139, 82, 34, 50,184, 49, 35, 49,184, 50, - 34, 80, 3, 28, 60, 94, 42, 76, 59,143, 81,119,183,125, 64, 63,129,198,136,111,170, 73, 2, 75,168,110,136,198,129, 63, 64,125, -183,119, 81,143, 59, 76, 41, 95, 60, 69,113, 80, 43, 46, 92,138, 92, 57,118, 46,187, 46,118, 59, 92,139, 92, 46, 44, 80,113, 7, - 4, 27,172,103,103,103,103,172, 27,254, 33, 46, 32,156, 42, 44, 99,184,254,248,166,170,254,223,210,119, 50, 48, 48, 50,119,210, - 1, 33,170,166, 1, 8,184, 99, 44, 42,156, 32, 46, 70,138,207,136,141,229,164, 89, 36, 38, 1,189,254, 67, 38, 36, 89,164,229, -141,136,207,138, 70, 0, 0, 2, 0, 0, 0, 0, 5,244, 5,164, 0, 13, 0, 58, 1, 35, 64, 13, 0, 13, 0, 13, 42, 15,185, 48, - 1,130, 48, 1, 47,184,255,240,179, 10, 16, 72, 58,184,255,240,179, 19, 27, 72, 58,184,255,240, 64, 25, 10, 15, 72,169, 14, 1, - 14, 16, 19, 27, 72, 14, 16, 10, 15, 72, 48, 27, 28, 52,102, 29, 1, 29, 28,184,255,240, 64, 83, 15, 28, 31, 28, 63, 28, 3, 79, - 28,111, 28,127, 28,159, 28,191, 28, 5, 28, 28, 52, 48, 47, 35,144, 35, 1,116, 35, 1,107, 35, 1, 36, 35, 52, 35, 2, 58, 14, - 20,144, 52, 1, 36, 20, 52, 20, 68, 20,116, 20,148, 20, 5, 35, 52, 20, 20, 52, 35, 3, 15, 41, 71, 0, 42, 16, 42, 2, 7, 42, - 42, 60, 16, 60, 32, 60, 48, 60, 3, 16, 15,184,255,240, 64, 53, 15, 9, 4, 4, 0,128, 10, 6, 15, 2,127, 2,143, 2,159, 2, - 4, 2, 64, 20, 23, 72, 2, 52, 64, 21, 29, 72, 52, 32, 12, 20, 72, 27, 52, 30, 3, 14, 41, 28, 15, 15, 35, 20, 38, 20, 54, 20, - 2, 20, 48, 14, 21, 0, 63, 51, 51, 93, 17, 51, 63, 51, 51, 18, 23, 57, 43, 43, 47, 43, 93, 51, 51, 26,205, 57, 47, 51, 1, 47, - 56, 51, 93, 17, 51, 47, 94, 93,225, 18, 23, 57, 61, 47, 47, 47, 93, 93, 17, 51, 51, 93, 93, 93, 93, 17, 51, 51, 17, 51, 24, 47, - 93,113, 56, 51, 93,135,192,192, 1, 43, 43, 93, 43, 43, 43, 93, 93, 17, 18, 57, 57, 47, 47, 49, 48, 1, 21, 7, 35, 39, 35, 7, - 35, 39, 35, 7, 35, 39, 53, 3, 1, 51, 19, 22, 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 3, 53, 51, 20, 2, - 2, 6, 7, 35, 3, 38, 38, 53, 14, 3, 7, 3, 4,186, 82, 34, 50,184, 49, 35, 49,184, 49, 35, 80, 4,254,137,188,224, 28, 38, - 9, 7, 7, 21, 26, 29, 15,119,162,188,201, 12, 31, 30, 24, 5, 7, 90,114, 65, 25,183, 37, 92,154,117,192,119, 12, 13, 1, 6, - 9, 10, 4,152, 5,164, 27,172,103,103,103,103,172, 27,250, 92, 4, 74,253, 86, 87,157, 51, 22, 58, 65, 69, 32, 1, 12, 1,207, -253,176, 33, 99,103, 92, 25,103,208,226,255,152,163,254,223,254,245,252,127, 1, 84, 32, 53, 3, 1, 19, 27, 29, 10,254,170, 0, - 0, 1, 0,125,254, 20, 4,152, 5,203, 0, 35, 0, 84, 64, 23, 17, 90, 15, 16, 1, 7, 16, 64, 15, 18, 72, 16, 16, 24,186, 32, - 1, 96, 32,112, 32, 2, 32,184,255,192, 64, 26, 6, 10, 72, 32, 32, 37,175, 37, 1, 5, 91, 24,102, 36, 33, 0, 95, 29, 4, 15, - 10, 95, 19, 19, 16, 27, 0, 63, 63,225, 51, 63,225, 51, 1, 16,246,225, 93, 17, 51, 47, 43, 93, 93, 18, 57, 47, 43, 94, 93,225, - 49, 48, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 35, 17, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, - 7, 38, 38, 3, 25,107,174,123, 67, 59,118,176,118, 29, 45, 40, 37, 21,187, 16,164,240,157, 76, 87,169,250,162,108,196, 79, 78, - 63,148, 5, 39, 81,152,218,137,141,219,150, 78, 4, 9, 13, 9,253, 98, 1,216,108,198, 1, 21,170,166, 1, 20,198,110, 44, 42, -156, 32, 46, 0, 0, 1, 0,113,254, 20, 3,111, 4, 94, 0, 31, 0, 62, 64, 37, 29, 71, 28, 64, 14, 17, 72, 28, 28, 4, 12, 33, - 95, 33,127, 33, 2, 16, 33, 1, 21, 72, 4, 86, 32, 27, 24, 81, 31, 22, 28, 27, 18, 81, 13, 9, 16, 0, 63, 51,225, 63, 63,225, - 51, 1, 16,246,225, 93, 93, 16,206, 17, 57, 47, 43,225, 49, 48, 4, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 46, 3, 35, 34, - 6, 21, 20, 22, 51, 50, 54, 55, 17, 35, 17, 35, 1,237,176,130, 74, 76,133,178,102, 78,149, 50, 54, 23, 56, 60, 59, 25,157,144, -145,148, 62,104, 35,183, 18, 20, 63,137,213,150,157,219,137, 62, 34, 25,154, 10, 19, 15, 9,202,211,211,195, 27, 20,253, 90, 1, -216, 0, 0, 1, 0,104,255,250, 4,121, 5, 10, 0, 19, 1, 37, 64,103, 13, 17, 29, 17, 2, 13, 1, 29, 1, 2, 2, 11, 18, 11, - 2, 2, 7, 18, 7, 2, 7, 16, 17, 12, 19, 18, 11, 0, 1, 8, 3, 2, 7, 4, 15, 4, 13, 17, 12, 10, 18, 11, 9, 1, 8, 6, - 2, 7, 5, 14, 5, 13, 16, 17, 12, 17, 10, 19, 18, 11, 18, 9, 0, 1, 8, 1, 6, 3, 2, 7, 2, 4, 5, 12, 11, 2, 1, 14, - 15, 79, 1, 1, 64, 11, 1, 5, 11, 1, 15, 15, 1, 11, 5, 4, 18, 96, 17,112, 17,240, 17, 3, 17,184,255,192, 64, 77, 7, 10, - 72, 17, 8, 7, 17, 21, 32, 21, 48, 21, 2, 3, 6, 0, 9, 4, 7, 1, 1, 2, 19, 10, 16, 13, 4, 11, 17, 17, 18, 4, 7, 1, - 7, 7, 8, 11, 11, 1, 11, 11, 12,176, 12,192, 12, 2, 15, 18, 31, 18, 2, 0, 8, 16, 8, 2, 2, 18, 8, 12, 12, 8, 18, 2, - 4, 4, 15, 14, 64, 7, 13, 72, 14, 5, 4, 0, 47, 51, 47, 43, 51, 18, 23, 57, 47, 47, 47, 47, 93, 93, 93, 17, 51, 47,113, 17, - 51, 47,113, 17, 51, 47, 18, 23, 57, 17, 51, 47, 18, 23, 57, 1, 93, 17, 51, 47, 50, 47, 43, 93, 51, 23, 57, 47, 47, 47, 47, 93, - 93, 17, 51, 17, 51, 17, 51, 17, 51, 16,135,192,192, 16,135,192,192, 16,135,192,192, 16,135,192,192, 16,135, 8,192, 8,192, 8, -192, 8,192, 16,135, 8,192, 8,192, 8,192, 8,192, 49, 48, 0, 94, 93, 93, 93, 93, 1, 5, 7, 37, 3, 39, 19, 37, 55, 5, 19, - 37, 55, 5, 19, 23, 3, 5, 7, 37, 2, 76, 1, 28, 71,254,227,180,129,180,254,229, 70, 1, 31,198,254,228, 71, 1, 29,182,127, -182, 1, 31, 74,254,229, 1,176,166,123,164,254,199, 74, 1, 59,164,123,164, 1, 90,164,125,164, 1, 57, 73,254,196,164,123,164, - 0, 1, 0,201, 4,143, 3,176, 5,184, 0, 21, 0, 66,181, 15, 32, 7, 10, 72, 3,184,255,224, 64, 30, 7, 10, 72, 12, 18, 18, - 23, 0, 0, 6, 16, 6, 32, 6,144, 6,160, 6, 5, 7, 6, 6, 22, 15, 15, 11, 0, 3, 3, 0, 0, 47, 50, 47, 16,205, 50, 47, - 17, 1, 51, 47, 94, 93, 51, 17, 51, 47, 51, 0, 43, 43, 49, 48, 1, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, 33, 54, 54, 51, 50, - 22, 21, 20, 6, 35, 1,139, 6, 44, 48, 56, 40, 9, 23, 37, 29, 1,193, 5, 45, 48, 56, 42, 43, 57, 4,238, 44, 51, 51, 56, 28, - 37, 22, 9, 45, 49, 50, 54, 57, 41, 0, 0, 1, 0,244, 4,229, 3,223, 5,217, 0, 21, 0, 66, 64, 17,128, 8,144, 8, 2, 8, - 8, 23, 0, 20, 16, 20, 32, 20, 3, 7, 20,184,255,192, 64, 18, 13, 16, 72, 20, 20, 22, 21, 20, 20, 9, 14, 64,191, 5, 1, 5, -128, 9, 0, 47, 26,221, 93, 26,205, 17, 51, 47,205, 17, 1, 51, 47, 43, 94, 93, 17, 51, 47, 93, 49, 48, 1, 50, 62, 2, 51, 50, - 22, 21, 21, 35, 53, 52, 38, 35, 34, 14, 2, 35, 35, 53, 1, 2, 78,133,119,112, 58,109,124,133, 58, 46, 42,101,121,145, 85, 16, - 5,102, 36, 43, 36,101,108, 35, 17, 52, 46, 36, 43, 36,129, 0, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 32, 64, 18, - 11, 14, 63, 6, 79, 6, 2, 6, 0, 63, 3, 79, 3, 95, 3, 3, 3, 15, 0, 47,204, 93, 1, 47,205, 93, 50, 57, 49, 48, 1, 52, - 54, 51, 50, 22, 21, 20, 14, 2, 21, 20, 22, 23, 21, 38, 38, 1,225, 68, 59, 47, 50, 31, 37, 31, 57, 60,122,120, 5,182, 57, 70, - 38, 38, 27, 26, 17, 17, 19, 25, 46, 21, 76, 31,115, 0, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 19, 0, 32, 64, 18, 7, 63, - 0, 79, 0, 2, 0, 3, 14, 63, 17, 79, 17, 95, 17, 3, 17, 3, 0, 47,204, 93, 1, 47, 51,205, 93, 57, 49, 48, 1, 20, 6, 7, - 53, 54, 54, 53, 52, 46, 4, 53, 52, 54, 51, 50, 22, 2,211,120,122, 60, 57, 15, 21, 26, 21, 15, 50, 46, 59, 68, 5,182, 77,115, - 31, 76, 21, 46, 25, 13, 15, 12, 10, 15, 23, 18, 38, 38, 70, 0, 0, 8, 0, 41,254,193, 7,193, 5,145, 0, 19, 0, 39, 0, 59, - 0, 79, 0, 99, 0,119, 0,139, 0,159, 0, 0, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 3, 46, 3, 35, - 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, - 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, - 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 1, 46, 3, 35, 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 33, 46, 3, 35, - 34, 14, 2, 7, 35, 54, 54, 51, 50, 30, 2, 23, 4,111, 3, 24, 36, 46, 25, 30, 47, 33, 20, 3, 75, 5,100,103, 49, 77, 54, 30, - 3, 79, 3, 24, 36, 46, 25, 30, 47, 33, 20, 3, 75, 5,100,103, 49, 77, 54, 30, 3, 1,244, 3, 23, 36, 46, 25, 31, 47, 33, 19, - 3, 76, 5,101,103, 49, 77, 54, 30, 3,251, 47, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3, 4, - 49, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3,251, 47, 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, - 76, 5,101,103, 49, 77, 54, 30, 3, 4,240, 3, 24, 36, 45, 25, 31, 47, 33, 20, 3, 75, 5,100,104, 49, 76, 54, 31, 3,249,190, - 3, 23, 36, 46, 25, 31, 47, 33, 19, 3, 76, 5,101,103, 49, 77, 54, 30, 3, 4,207, 28, 35, 19, 6, 5, 18, 35, 30, 90,104, 28, - 51, 72, 43,249,242, 28, 35, 19, 6, 5, 18, 35, 30, 89,105, 29, 51, 71, 43, 1, 22, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, - 51, 72, 43, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, 43, 3,219, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, - 43, 28, 35, 19, 6, 5, 18, 35, 30, 90,105, 29, 51, 72, 43,254, 25, 28, 35, 19, 6, 5, 18, 35, 30, 90,104, 29, 51, 71, 43, 28, - 35, 19, 6, 5, 18, 35, 30, 90,104, 29, 51, 71, 43, 0, 0, 8, 0, 41,254,127, 7,125, 5,211, 0, 12, 0, 25, 0, 38, 0, 51, - 0, 64, 0, 77, 0, 90, 0,103, 0, 0, 5, 23, 14, 3, 7, 35, 62, 3, 55, 3, 39, 62, 3, 55, 51, 14, 3, 7, 1, 55, 30, 3, - 23, 21, 46, 3, 39, 5, 7, 46, 3, 39, 53, 30, 3, 23, 1, 55, 62, 3, 55, 23, 14, 3, 7, 1, 7, 14, 3, 7, 39, 62, 3, 55, - 3, 39, 46, 3, 39, 55, 30, 3, 23, 1, 23, 30, 3, 23, 7, 46, 3, 39, 4, 55, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, - 59, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, 2, 35, 14, 38, 85, 87, 87, 39, 42, 93, 91, 87, 37,251,104, 14, 39, 85, 87, - 86, 39, 42, 93, 91, 87, 37, 3,166, 2, 34, 80, 84, 86, 40, 69, 37, 79, 78, 73, 30,252,234, 2, 35, 79, 84, 86, 40, 69, 37, 79, - 78, 73, 30, 43, 17, 20, 41, 39, 36, 15, 67, 23, 51, 52, 50, 23, 3,106, 17, 20, 40, 39, 37, 15, 67, 23, 52, 52, 50, 22, 35, 14, - 39, 85, 87, 86, 39, 42, 93, 91, 87, 37, 4,152, 14, 38, 85, 87, 87, 39, 42, 93, 91, 87, 37,254, 22, 11, 10, 28, 32, 35, 18, 97, - 10, 21, 18, 16, 5, 59, 11, 10, 28, 32, 35, 18, 97, 10, 21, 18, 16, 5, 1,170, 16, 20, 41, 39, 37, 15, 68, 23, 51, 52, 50, 22, -252,149, 16, 20, 41, 39, 37, 15, 68, 23, 51, 52, 50, 22, 2,222, 2, 34, 80, 84, 85, 40, 70, 37, 79, 78, 73, 30,252,233, 2, 35, - 79, 84, 85, 40, 70, 37, 79, 78, 73, 30, 0, 2, 0,201,254,127, 5,211, 7,104, 0, 27, 0, 49, 0,179, 64, 72, 28, 28, 48, 38, - 1,208, 38, 1,175, 38,207, 38, 2, 32, 38, 48, 38,128, 38, 3, 38, 38, 23, 10, 25, 26, 26, 24, 27, 21, 7, 0, 90, 23,101, 51, -208, 51, 1,175, 51, 1, 32, 51, 48, 51, 2, 19, 8, 12, 90, 9,100, 50, 38,159, 28, 1, 28, 64, 6, 9, 72, 28, 28, 44,142, 33, - 5, 26,251, 19,184,255,232,179, 20, 24, 72, 19,184,255,224, 64, 38, 10, 19, 72, 6, 19, 22, 19, 38, 19, 3, 9, 19, 23, 95, 0, - 18, 6, 24, 20, 24, 72, 6, 32, 10, 19, 72, 9, 6, 25, 6, 41, 6, 3, 7, 6, 22, 10, 3, 0, 63, 51, 51, 94, 93, 43, 43, 63, -225, 51, 51, 93, 43, 43, 63, 63,225, 51, 47, 43, 93, 51, 1, 16,246,225, 50, 50, 93, 93, 93, 16,244,225, 50, 50, 51, 51, 57, 47, - 51, 17, 18, 57, 47, 93, 93, 93,113, 51, 47, 49, 48, 33, 17, 52, 54, 55, 54, 55, 35, 1, 35, 17, 51, 17, 20, 14, 2, 7, 6, 7, - 51, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 4,100, 5, 4, 4, 6, 8,253, - 49,215,174, 1, 3, 3, 1, 4, 3, 7, 2,204,213,195,143,218,166,157, 6, 49, 93,141,100,103,140, 88, 42, 4,170, 4, 28, 50, - 76, 53, 43, 73, 55, 34, 6, 3, 25, 56,143, 65, 76, 77,251, 70, 5,182,252,224, 26, 62, 67, 68, 31, 74, 76, 4,180,250,240,253, -217, 1,129, 7,104, 77,119, 80, 41, 39, 79,119, 80, 57, 72, 41, 16, 18, 44, 71, 53, 0, 0, 2, 0,174,254,131, 4,242, 6, 23, - 0, 15, 0, 37, 0,150, 64, 58, 16, 16, 4, 26, 52, 26,132, 26, 3, 7, 26, 26, 11, 5, 13, 14, 14, 15, 12, 9, 16, 9, 24, 72, - 9, 2, 0, 70, 11, 85, 39,164, 39,196, 39,212, 39,244, 39, 4,128, 39, 1, 2, 0, 39, 16, 39, 32, 39, 80, 39, 96, 39,112, 39, - 6, 3,184,255,240, 64, 37, 9, 24, 72, 3, 8, 7, 70, 4, 84, 38, 26,127, 16, 1, 16, 64, 6, 9, 72, 16, 16, 32,142, 21, 17, - 14,251, 9, 2, 5, 15, 11, 96, 8, 4, 0, 21, 0, 63, 50, 50,225, 63, 51, 51, 63, 63,225, 51, 47, 43, 93, 51, 1, 16,246,225, - 50, 50, 43, 93, 95, 93, 93, 16,244,225, 50, 50, 43, 51, 51, 57, 47, 51, 17, 18, 57, 47, 94, 93, 51, 47, 49, 48, 33, 17, 19, 1, - 35, 17, 51, 17, 7, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,143, 11,253, -254,234,172, 12, 2, 4,233,183,123,182,122, 71, 6, 49, 93,141,100,103,140, 88, 42, 4,170, 4, 28, 50, 76, 53, 43, 73, 55, 34, - 6, 2,135, 1, 15,252,106, 4, 74,253,100,252, 3,152,252, 80,253,233, 1,125, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, - 41, 16, 18, 44, 72, 53, 0, 2, 0, 47, 0, 0, 4, 51, 5,182, 0, 22, 0, 33, 0, 82, 64, 44, 19, 0, 23, 90, 12, 21, 21, 6, - 16, 12, 12, 14, 27, 91, 6,103, 35, 14, 33, 95, 0, 22, 13, 95, 16, 19, 16,137, 0, 1, 15, 16, 1, 7, 0, 16, 0, 16, 17, 3, - 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 94, 93, 93, 17, 51, 16,225, 50, 16,225, 1, 47, 16,246,225, 17, 57, 47, 51, 18, - 57, 47, 16,225, 50, 50, 49, 48, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 51, 50, - 54, 53, 52, 46, 2, 35, 35, 1,129,150,152,207,126, 55, 60,126,194,134,254,150,152,152,186, 1, 59,254,197,160,174,164, 46, 91, -139, 93,129, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164,178,178,164,252, 64,132,136, 70, 97, 60, 27, 0, 0, 2, 0, 18, - 0, 0, 4, 25, 6, 20, 0, 20, 0, 33, 0, 97, 64, 59, 1, 1, 14, 28, 71, 8, 87, 35,111, 35,191, 35,223, 35,255, 35, 4, 3, - 0, 22, 71, 18, 17, 14, 84, 34, 21, 80, 4, 3, 15, 80, 18, 0, 18, 4, 64, 7, 36, 72, 15, 18, 1, 15, 18, 31, 18, 2, 7, 4, - 18, 4, 18, 19, 0, 22, 80, 14, 21, 0, 63,225, 63, 57, 57, 47, 47, 94, 93,113, 43, 17, 51, 16,225, 50, 16,225, 1, 16,246,196, - 51,225, 50, 50, 93, 16,246,225, 18, 57, 47, 49, 48, 1, 33, 21, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, - 51, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, 1,100, 1, 23,254,233, 1, 21,211,205, 47,101,159,113,254, 57,156,156,182, 1, - 4, 55, 94, 67, 38, 33, 65, 96, 64, 5, 33,137,253,239,156,155, 77,124, 88, 47, 4,152,137,243,251,218,254,168, 17, 41, 66, 48, - 49, 66, 40, 17, 0, 2, 0,199, 0, 0, 4, 51, 5,182, 0, 19, 0, 34, 0,136, 64, 79, 27, 5, 26, 6, 26, 24, 8, 25, 7, 7, - 6, 25, 6, 25, 6, 12, 30, 91, 40, 0, 56, 0, 72, 0, 3, 0,103, 36,207, 36, 1, 64, 36, 1, 15, 36, 1, 6, 20, 12, 90, 13, -100, 35, 25, 24, 27,175, 26, 1, 26, 26, 20, 34, 6,176, 7, 1, 7, 7, 12, 5, 8, 20, 96, 48, 11, 64, 11, 2, 11, 11, 12, 34, - 96, 14, 3, 12, 18, 0, 63, 63,225, 17, 57, 47, 93,225, 57, 57, 18, 57, 47, 93, 51, 17, 18, 57, 47, 93, 57, 57, 51, 1, 16,246, -225, 50, 94, 93, 93, 93, 16,246, 93,225, 18, 57, 57, 47, 47, 17, 51, 17, 18, 57, 57, 50, 17, 18, 57, 57, 49, 48, 1, 20, 14, 2, - 7, 23, 7, 39, 6, 35, 35, 17, 35, 17, 33, 50, 30, 2, 1, 51, 50, 54, 55, 39, 55, 23, 54, 54, 53, 52, 38, 35, 35, 4, 51, 22, - 47, 75, 54,110,106,129, 93,124,150,186, 1,106,134,194,126, 60,253, 78,129, 38, 68, 31, 92,109,112, 51, 52,164,174,160, 4, 10, - 58,111,100, 86, 32,155, 78,182, 27,253,199, 5,182, 57,109,160,254,103, 5, 5,133, 76,160, 36,115, 87,142,137, 0, 2, 0,174, -254, 20, 4, 63, 4, 94, 0, 35, 0, 57, 0,114, 64, 64, 52, 53, 50, 51, 51, 42, 32, 30, 31, 31, 55, 72, 33, 42, 27, 87, 59, 48, - 59, 1, 42, 16, 12, 71, 13, 84, 58, 51, 53, 50, 47, 15, 52, 31, 52,111, 52,207, 52, 4, 7, 52, 52, 47, 36, 80, 16, 22, 16, 14, - 15, 31, 32, 32, 0, 12, 27, 33, 30, 47, 80, 6, 0, 22, 0, 63, 50,225, 57, 57, 63, 18, 57, 47, 51, 63, 63, 51,225, 17, 57, 47, - 94, 93, 18, 57, 57, 51, 1, 16,246,225, 50, 50, 93, 16,246, 17, 57,225, 57, 47, 57, 51, 17, 57, 47, 57, 57, 51, 49, 48, 5, 34, - 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 6, 7, 23, 7, 39, 6, 6, 3, 34, - 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 55, 39, 55, 23, 54, 53, 52, 38, 2,158, 59, 96, 77, 60, 22, 12, 3, 3, 2, 4,182,148, - 26, 8, 22, 59, 77, 96, 60, 94,153,110, 60, 90, 82,109,106,117, 31, 65, 70, 76,105, 65, 31, 2, 27, 65,108, 81, 17, 33, 15,106, -109,110, 84,127, 20, 25, 44, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 34, 62, 45, 27, 72,143,212,140,175,242, 68,154, 78, -166, 9, 11, 3,219, 46, 94,141, 94, 41,101,157,107, 55, 3, 5,152, 76,158,106,238,208,206, 0, 0, 1, 0, 47, 0, 0, 3,190, - 5,182, 0, 13, 0,137, 64, 21, 31, 5, 47, 5, 2, 5, 5, 8, 15, 0, 31, 0, 2,144, 0,160, 0,224, 0, 3, 0,184,255,192, - 64, 30, 7, 10, 72, 0, 0, 15, 31, 15, 63, 15,159, 15,191, 15, 4, 3, 7, 90, 12, 0, 10, 1, 6, 10,128, 8,192, 8, 2, 8, -184,255,192, 64, 38, 6, 10, 72, 8, 6, 9, 95, 3, 15, 12, 47, 12, 63, 12, 79, 12, 4, 15, 12, 63, 12,175, 12,223, 12,255, 12, - 5, 8, 12, 12, 7, 2, 95, 13, 3, 7, 18, 0, 63, 63,225, 18, 57, 47, 94, 93,113, 51,225, 50, 1, 47, 43, 93,198, 94, 93, 51, -225, 50, 93, 17, 51, 47, 43, 93,113, 18, 57, 47, 93, 49, 48, 1, 21, 33, 17, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 3,190,253, -195, 1, 80,254,176,186,152,152, 5,182,166,254, 21,162,253,125, 2,131,162, 2,145, 0, 0, 1, 0, 18, 0, 0, 3, 10, 4, 74, - 0, 13, 0,110, 64, 29, 11, 11, 0, 32, 6, 48, 6, 2, 6, 6, 15,112, 15,160, 15,192, 15, 3, 9, 13, 71, 4,223, 2,239, 2, - 2, 2, 0,184,255,192,179, 18, 21, 72, 0,184,255,192, 64, 33, 6, 11, 72, 0, 12, 1, 79, 9, 79, 4, 95, 4, 2, 4, 64, 23, - 28, 72, 11, 4, 27, 4, 2, 7, 4, 4, 0, 8, 80, 5, 15, 0, 21, 0, 63, 63,225, 18, 57, 47, 94, 93, 43, 93, 51,225, 50, 1, - 47, 43, 43,198, 93, 51,225, 50, 93, 17, 51, 47, 93, 18, 57, 47, 49, 48, 51, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17, -174,156,156, 2, 92,254, 90, 1, 23,254,233, 1,225,137, 1,224,154,254,186,137,254, 31, 0, 1, 0,199,254, 0, 4,152, 5,182, - 0, 38, 0,102, 64, 65, 9, 21, 1, 7, 7, 7, 5, 34, 91, 18, 40,192, 40, 1,127, 40,143, 40, 2, 16, 40, 64, 40, 2, 28, 28, - 10, 4, 90, 5,100, 39, 29, 32, 95, 23, 28, 0, 96, 15, 13, 47, 13, 63, 13, 3, 15, 13, 63, 13,223, 13,255, 13, 4, 8, 13, 13, - 5, 9, 95, 6, 3, 5, 18, 0, 63, 63,225, 18, 57, 47, 94, 93,113,225, 63,225, 51, 1, 16,246,241, 50,192, 47, 93, 93, 93, 16, -222,225, 18, 57, 47, 49, 48, 0, 94, 93, 1, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, - 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 1,252, 37, 60, 26,186, 2,247,253,195, 29, 71, 45,154,240,165, 87, 82,146, -201,118, 49, 78, 68, 61, 31, 63,127, 72, 1,119, 67,123,174, 2,131, 5, 5,253,135, 5,182,166,254, 11, 5, 3, 92,171,242,151, -170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 0, 0, 1, 0,174,254, 10, 3,197, 4, 74, 0, 35, 0, 92, - 64, 57, 9, 34, 25, 34, 41, 34, 3, 20, 20, 18, 10, 72, 31, 37, 15, 37, 31, 37, 2, 95, 37,127, 37,255, 37, 3, 3, 3, 23, 17, - 71, 18, 84, 36, 4, 0, 13, 81, 11, 26, 27, 26, 2, 7, 26, 26, 18, 22, 80, 19, 15, 18, 21, 7, 81, 0, 27, 0, 63,225, 63, 63, -225, 18, 57, 47, 94, 93,233, 17, 51, 1, 16,246,225, 50, 57, 47, 93,113, 16,222,225, 18, 57, 47, 49, 48, 0, 93, 1, 34, 38, 39, - 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 2, 41, - 75,106, 46, 43,106, 66,118,117,144,157, 26, 62, 31,182, 2, 92,254, 90, 29, 59, 31,102,179,133, 76, 64,111,150,254, 10, 31, 29, -161, 24, 37,195,210,212,202, 10, 8,254, 53, 4, 74,154,254,195, 5, 5, 62,138,219,157,150,213,136, 64, 0, 1, 0, 4,254,127, - 6,203, 5,182, 0, 21, 0,226, 64, 87, 17, 64, 20, 24, 72, 17, 32, 9, 19, 72, 10, 17, 26, 17, 2, 0, 64, 20, 24, 72, 0, 32, - 9, 19, 72, 10, 0, 26, 0, 2, 7, 16, 13, 13, 2, 90, 7, 10, 10,168, 3,184, 3, 2,153, 3, 1,141, 3, 1, 87, 3,103, 3, -119, 3, 3, 3, 3, 3, 18, 6, 0, 14, 15, 16, 15, 64, 12, 24, 72, 15, 17, 15, 21, 90, 4, 18, 1,116, 18,132, 18,196, 18, 3, - 18,184,255,192, 64, 39, 7, 10, 72, 18, 18, 23, 4, 23, 1,240, 23, 1,228, 23, 1,160, 23, 1, 2, 32, 23, 48, 23, 96, 23,112, - 23,144, 23, 5, 15, 23, 1, 8, 9, 8, 5, 8, 6,184,255,240, 64, 19, 6, 6, 22, 19,251, 13, 10, 10, 0, 15, 8, 11, 3, 17, - 95, 5, 3, 0, 18, 0, 63, 50, 50,225, 63, 51, 51, 18, 57, 17, 51, 63, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 95, 93, - 93, 93,113, 17, 51, 47, 43, 93,113,225, 51, 51, 47, 43, 56, 51, 50, 17, 18, 57, 47, 95, 93, 93, 93, 93, 51, 17, 51,225, 50, 17, - 51, 94, 93, 43, 43, 93, 43, 43, 49, 48, 33, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, - 5,174,253,238,179,253,238,211, 2, 33,253,237,205, 2, 10,179, 2, 10,205,253,237, 1,168,195,176, 2,229,253, 27, 2,229,253, - 27, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253,180,253,217, 1,129, 0, 0, 1, 0, 4,254,131, 6, 4, 4, 74, - 0, 21, 1, 17, 64,108, 39, 16, 55, 16, 2, 41, 14, 57, 14, 2, 38, 9, 54, 9, 2, 39, 10, 55, 10, 2, 39, 4, 55, 4, 2, 39, - 4, 55, 4, 2, 39, 1, 55, 1, 2, 17, 64, 20, 24, 72, 17, 32, 9, 19, 72, 10, 17, 26, 17, 2, 0, 64, 20, 24, 72, 0, 32, 9, - 19, 72, 10, 0, 26, 0, 2, 16, 13, 13, 2, 70, 7, 10, 10,205, 3, 1,185, 3, 1,169, 3, 1,150, 3, 1,135, 3, 1, 3, 3, - 3, 18, 6, 0, 14, 15, 16, 15, 64, 10, 24, 72, 15, 17, 15, 21, 70, 18,184,255,192,179, 18, 21, 72, 18,184,255,192, 64, 23, 7, - 11, 72, 18, 18, 23, 16, 23, 1, 0, 23, 1,228, 23,244, 23, 2,180, 23,196, 23, 2, 23,184,255,192, 64, 19, 13, 17, 72, 48, 23, - 1, 2, 32, 23, 1, 15, 23, 1, 7, 9, 8, 5, 8, 6,184,255,240, 64, 19, 6, 6, 22, 19,251, 13, 10, 10, 0, 15, 8, 11, 15, - 17, 96, 5, 3, 0, 21, 0, 63, 50, 50,225, 63, 51, 51, 18, 57, 17, 51, 63, 17, 1, 51, 47, 56, 51, 51, 17, 51, 94, 93, 93, 95, - 93, 43, 93, 93,113,113, 17, 51, 47, 43, 43,225, 51, 51, 47, 43, 56, 51, 50, 17, 18, 57, 47, 95, 93, 93, 93, 93, 93, 51, 17, 51, -225, 50, 17, 51, 93, 43, 43, 93, 43, 43, 49, 48, 0, 93, 93, 1, 93, 93, 93, 93, 93, 33, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, - 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, 4,240,254, 67,164,254, 68,207, 1,207,254, 88,197, 1,159,164, 1,160,197,254, 88, - 1, 79,197,174, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21,253,235, 2, 21,253,235, 2, 21,253,235,254,101,253,233, 1,125, -255,255, 0, 72,254, 66, 3,236, 5,203, 2, 38, 1,177, 0, 0, 1, 7, 3,127, 1, 72, 0, 0, 0, 17,177, 1, 1,184,255,255, -180, 72, 66, 19, 11, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 68,254, 66, 3, 82, 4, 94, 2, 38, 1,209, 0, 0, 1, 7, 3,127, - 0,242, 0, 0, 0, 17,177, 1, 1,184,255,248,180, 72, 66, 41, 33, 37, 1, 43, 53, 0, 53, 0, 0, 1, 0,199,254,127, 4,236, - 5,182, 0, 16, 0,166, 64, 89, 5, 64, 20, 24, 72,189, 5,205, 5,221, 5, 3, 5, 32, 9, 16, 72, 26, 5, 42, 5, 2, 0, 64, - 20, 24, 72,189, 0,205, 0,221, 0, 3, 0, 32, 9, 16, 72, 26, 0, 42, 0, 2, 6, 16, 16, 8, 14, 15, 16,127, 15,159, 15, 2, - 0, 15, 48, 15, 64, 15, 3, 6, 15, 15, 5, 4, 90, 0, 0, 1, 16, 1, 2, 7, 1, 1, 18,176, 18, 1, 12, 8, 90, 9,100, 17, - 12,184,255,240, 64, 22, 11, 16, 72, 6, 16, 11, 16, 72, 12, 6, 9, 15, 10, 3, 0, 95, 5, 5, 9, 18, 2,251, 0, 63, 63, 51, - 47,225, 63, 51, 18, 57, 57, 43, 43, 1, 16,246,225, 50, 93, 17, 51, 47, 94, 93, 51,225, 50, 51, 47, 94, 93, 93, 56, 51, 18, 57, - 17, 51, 93, 43, 93, 43, 93, 43, 93, 43, 49, 48, 37, 51, 17, 35, 17, 35, 1, 7, 17, 35, 17, 51, 17, 55, 1, 51, 1, 4, 53,183, -177,108,254, 61,139,186,186,121, 1,196,209,253,248,166,253,217, 1,129, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253,131, - 0, 1, 0,174,254,131, 4, 43, 4, 74, 0, 14, 0,153, 64,106, 8, 64, 20, 24, 72,189, 8,205, 8,221, 8, 3, 8, 32, 9, 16, - 72, 26, 8, 42, 8, 2, 3, 64, 20, 24, 72,189, 3,205, 3,221, 3, 3, 3, 32, 9, 16, 72, 26, 3, 42, 3, 2, 8, 7, 70, 0, - 1,118, 1,134, 1, 2,109, 1, 1, 85, 1, 1, 43, 1, 59, 1, 75, 1, 3, 20, 1, 1, 11, 1, 1, 6, 3, 1, 0, 4, 16, 4, - 2, 4, 4, 16, 14, 2, 10, 71, 11, 84, 15, 9, 2, 14, 14, 0, 11, 3, 80, 8, 21, 5,251, 12, 0, 15, 0, 63, 50, 63, 63,225, - 51, 18, 57, 17, 51, 51, 1, 16,246,225, 50, 50, 17, 51, 47, 93, 51, 51, 94, 93, 93, 93, 93, 93, 93, 17, 51,225, 50, 93, 43, 93, - 43, 93, 43, 93, 43, 49, 48, 1, 51, 1, 1, 51, 17, 35, 17, 35, 1, 17, 35, 17, 51, 17, 2,250,196,254, 97, 1, 75,193,174,102, -254, 75,180,180, 4, 74,253,241,254, 95,253,233, 1,125, 2, 45,253,211, 4, 74,253,235, 0, 1, 0,199, 0, 0, 4,162, 5,182, - 0, 18, 0,151,185, 0, 15,255,224, 64, 93, 18, 21, 72, 80, 15, 96, 15, 2, 34, 15, 50, 15, 66, 15, 3, 2, 64, 9, 13, 72, 11, - 7, 90, 8, 52, 18, 84, 18, 2, 18, 15, 87, 3, 1, 3, 12, 29, 4, 1, 11, 4, 1, 4, 4, 0, 8,100, 19, 16, 17, 17, 1, 0, - 16, 0, 0, 16, 0, 2, 7, 0, 0, 20,176, 20, 1, 47, 20, 1, 16, 20, 1, 11, 5, 9, 8, 32, 4, 48, 4, 64, 4, 3, 4, 13, - 4, 13, 16, 9, 3, 8, 0, 18, 0, 63, 50, 63, 51, 57, 57, 47, 47, 93, 17, 18, 57, 57, 1, 93, 93, 93, 17, 51, 47, 94, 93, 56, - 51, 51, 17, 51, 16,230, 17, 57, 47, 93, 93, 51,193, 93, 50, 50, 93, 16,225, 50, 49, 48, 0, 43, 93, 93, 43, 33, 35, 1, 21, 35, - 17, 7, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, 51, 1, 4,162,211,254,174,133,119,186,186,119,133, 1, 65,209,253,248, 1,244, -205, 1,100, 98,253,215, 5,182,253, 6,164, 1, 99,179, 1,166,253,101, 0, 1, 0,174, 0, 0, 4, 35, 4, 74, 0, 19, 0,156, -181, 17, 64, 11, 17, 72, 10,184,255,192,179, 11, 17, 72, 14,184,255,240, 64, 87, 8, 13, 72, 14, 10, 38, 18, 1, 18, 7,137, 19, -153, 19,169, 19, 3, 31, 19, 47, 19, 63, 19, 3, 11, 19, 1, 19, 19, 15, 6, 2, 71, 3, 84, 20, 11, 12, 12, 16, 15, 16, 32, 15, - 48, 15, 2, 15, 15, 21, 0, 21, 16, 21, 2, 0, 21, 64, 21, 96, 21,128, 21,160, 21,192, 21,224, 21, 7, 7, 14, 13, 6, 6, 8, - 19, 8, 19, 8, 2, 11, 4, 15, 16, 2, 21, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 18, 57, 17, 51, 51, 1, 94, 93,113, 17, 51, - 47, 93, 56, 51, 51, 17, 51, 16,246,225, 50, 18, 57, 47, 93, 93, 93, 51,193, 93, 50, 50, 43, 49, 48, 0, 43, 43, 1, 39, 17, 35, - 17, 51, 17, 55, 17, 51, 21, 19, 51, 1, 21, 1, 35, 1, 21, 35, 1,207,109,180,180,109,125,235,197,254, 80, 1,215,207,254,248, -125, 1,178,123,253,211, 4, 74,253,235,123, 1, 70,185, 1, 13,254, 22, 73,253,233, 1, 39,205, 0, 1, 0, 47, 0, 0, 4,162, - 5,182, 0, 20, 0,133, 64, 64, 2, 20,102, 20, 1, 20, 19, 4, 64, 14, 80, 14, 2, 14, 14, 0, 16, 12, 4, 90, 9, 7, 5,100, - 21, 18, 19, 16, 19, 19, 1, 0, 16, 0, 0, 16, 0, 2, 7, 0, 0, 22,176, 22, 1, 47, 22, 1, 16, 22, 1, 15, 6, 95, 12, 9, - 9, 0, 2, 16, 11, 16, 72, 16,184,255,240, 64, 12, 11, 16, 72, 16, 2, 5, 18, 10, 3, 5, 0, 18, 0, 63, 50, 63, 51, 18, 57, - 57, 43, 43, 18, 57, 47, 51,225, 50, 1, 93, 93, 93, 17, 51, 47, 94, 93, 56, 51, 51, 47, 56, 51, 16,246,198, 51,225, 50, 50, 18, - 57, 47, 93, 17, 18, 57, 93, 17, 51, 49, 48, 33, 35, 1, 7, 17, 35, 17, 35, 53, 51, 53, 51, 21, 51, 21, 35, 17, 55, 1, 51, 1, - 4,162,211,254, 61,139,186,152,152,186,213,213,121, 1,196,209,253,248, 2,186,114,253,184, 4, 96,164,178,178,164,254,123,168, - 2, 51,253,131, 0, 1, 0, 18, 0, 0, 3,240, 6, 20, 0, 22, 0,132, 64, 15, 17, 14, 14, 15, 4, 8, 9, 3, 19, 71, 20, 0, - 6, 1, 6,184,255,192,179, 16, 21, 72, 6,184,255,192, 64, 53, 9, 14, 72, 6, 6, 15, 22, 1, 20, 84, 23, 12, 13, 16, 13, 15, - 16, 53, 15, 1, 0, 15, 16, 15, 32, 15, 3, 8, 15, 15, 24, 15, 24, 1, 9, 17, 2, 20, 20, 15, 7, 21, 79, 4, 1, 1, 2, 15, - 21, 12, 15, 2, 0, 0, 63, 63, 63, 18, 57, 47, 51,225, 50, 17, 51, 17, 18, 57, 57, 1, 93, 17, 51, 47, 94, 93, 93, 56, 51, 51, - 17, 51, 16,246, 50,198, 18, 57, 47, 43, 43,113, 16,225, 23, 50, 17, 57, 17, 51, 49, 48, 19, 51, 53, 51, 21, 33, 21, 33, 17, 3, - 51, 55, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 35, 18,156,180, 1,123,254,133, 16, 4,135, 1, 37,211,254,111, 1,172,209,254, -176,109,180,156, 5, 94,182,182,137,254,117,254,237,170, 1,105,254, 37,253,145, 1,248, 82,254, 90, 4,213, 0, 0, 1, 0, 20, - 0, 0, 5, 68, 5,182, 0, 14, 0, 87, 64, 51, 2, 14, 14, 13, 10, 4, 90, 32, 5, 48, 5, 64, 5,128, 5,240, 5, 5, 5, 5, - 0, 7, 12, 13, 13, 1, 0, 16, 0, 0, 16, 0, 2, 7, 0, 0, 16, 16, 16, 1, 2, 10, 5, 12, 7, 95, 8, 3, 5, 0, 18, 0, - 63, 50, 63,225, 51, 18, 57, 57, 1, 93, 17, 51, 47, 94, 93, 56, 51, 51, 17, 51, 47, 18, 57, 47, 93,225, 50, 17, 57, 17, 51, 49, - 48, 33, 35, 1, 7, 17, 35, 17, 33, 53, 33, 17, 55, 1, 51, 1, 5, 68,211,254, 61,139,187,254,172, 2, 15,121, 1,196,209,253, -248, 2,186,114,253,184, 5, 18,164,253, 37,168, 2, 51,253,131, 0, 1, 0, 41, 0, 0, 4,201, 4, 74, 0, 13, 0,103, 64, 64, - 2, 13, 13, 11, 6, 71, 0, 7, 1, 0, 7, 16, 7, 32, 7, 96, 7,192, 7, 5, 8, 7, 7, 3, 9, 0, 1,213, 1,245, 1, 2, - 1, 4, 3, 16, 0, 3, 16, 3, 2, 3, 3, 15, 64, 15,224, 15, 2, 15, 15, 1, 2, 13, 13, 7, 9, 80, 0, 10, 15, 7, 3, 21, - 0, 63, 51, 63, 51,225, 18, 57, 17, 51, 1, 93, 93, 17, 51, 47, 93, 56, 51, 51, 93, 17, 51, 47, 18, 57, 47, 94, 93,113,225, 50, - 50, 17, 51, 49, 48, 1, 51, 1, 1, 35, 1, 17, 35, 17, 33, 53, 33, 7, 17, 3,221,197,254, 96, 1,199,207,254, 76,181,254,152, - 2, 31, 2, 4, 74,253,241,253,197, 2, 45,253,211, 3,176,154, 2,253,237, 0, 0, 1, 0,229,254,127, 5,164, 5,182, 0, 15, - 0, 99, 64, 63, 4, 90, 4, 1, 1,116, 1,132, 1,148, 1, 3, 1, 1, 17, 13, 5, 90, 0, 17,228, 17,244, 17, 2,192, 17, 1, - 2, 16, 17, 32, 17, 64, 17,128, 17, 4, 12, 8, 90, 9,100, 16, 7, 95, 15, 12, 1, 8, 12, 12, 5, 14, 10, 3, 9, 0, 95, 5, - 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 95, 93, 93, 16,220,225, 50, 17, 51, 47, - 93,113,225, 49, 48, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,244,176,176,187,253,103,187,187, 2,153, -187,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 1, 0,174,254,131, 4,219, 4, 74, 0, 15, 0,121, 64, 82, - 8, 0, 71, 4, 11, 1, 11, 11, 15, 71,196, 12,212, 12, 2, 12, 12, 17, 4, 17, 36, 17, 2,212, 17,244, 17, 2,176, 17, 1, 2, - 48, 17, 64, 17, 80, 17,128, 17,144, 17,160, 17, 6, 7, 3, 71, 4, 84, 16, 13,251, 2, 80,235, 7, 1,169, 7,185, 7, 2, 15, - 7, 31, 7, 47, 7, 3, 6, 7, 7, 0, 9, 5, 15, 11, 80, 4, 0, 21, 0, 63, 50,225, 63, 51, 18, 57, 47, 94, 93, 93, 93,225, - 63, 1, 16,246,225, 50, 93, 95, 93, 93,113, 17, 51, 47, 93,225, 51, 47, 93,225, 50, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, - 17, 51, 17, 51, 17, 35, 17, 3,133,253,223,182,182, 2, 33,182,160,182, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, - 1,125, 0, 1, 0,229, 0, 0, 6, 72, 5,182, 0, 13, 0, 93, 64, 59, 9, 1, 90, 0, 0, 5, 64, 11, 1,224, 11, 1, 11, 15, - 32, 15, 1, 0, 15, 16, 15, 48, 15, 64, 15, 96, 15,160, 15,176, 15,224, 15, 8, 6, 8, 4, 90, 5,100, 14, 13, 95, 10, 10, 6, - 3, 95, 15, 8, 1, 8, 8, 8, 6, 3, 5, 0, 18, 0, 63, 50, 63, 57, 47, 94, 93,225, 17, 51, 47,225, 1, 16,246,225, 50, 94, - 93,113, 16,198, 93,113, 17, 57, 47,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 33, 4,244,187,253,103, -187,187, 2,153, 2, 15,254,172, 2,170,253, 86, 5,182,253,152, 2,104,164, 0, 0, 1, 0,174, 0, 0, 5,164, 4, 74, 0, 13, - 0,104, 64, 33, 8, 4, 71, 5, 9, 1, 71, 0, 0, 11, 5, 84, 14, 11, 11, 15, 0, 15, 32, 15, 2,144, 15,176, 15,192, 15,208, - 15,240, 15, 5, 15,184,255,192, 64, 31, 7, 12, 72, 3, 80,235, 8, 1,169, 8,185, 8, 2, 15, 8, 31, 8, 47, 8, 3, 6, 8, - 8, 0, 13, 10, 6, 15, 5, 0, 21, 0, 63, 50, 63, 51,196, 18, 57, 47, 94, 93, 93, 93,225, 1, 43, 93,113, 17, 51, 47, 16,230, - 17, 57, 47,225, 50, 16,225, 50, 49, 48, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 33, 4, 59,182,253,223,182,182, 2, - 33, 2, 31,254,151, 1,233,254, 23, 4, 74,254, 57, 1,199,154, 0, 1, 0,199,254, 0, 7,219, 5,182, 0, 39, 0, 95, 64, 58, - 9, 11, 1, 7, 18, 18, 0, 32, 90, 33, 33, 37, 24, 91, 8, 41,111, 41, 1, 36, 90, 37,100, 40, 29, 96, 15, 3, 47, 3, 63, 3, - 3, 15, 3, 63, 3,223, 3,255, 3, 4, 8, 3, 3, 37, 35, 95, 38, 3, 33, 37, 18, 19, 22, 95, 13, 28, 0, 63,225, 51, 63, 51, - 63,225, 18, 57, 47, 94, 93,113,225, 1, 16,246,225, 93, 16,222,225, 17, 57, 47,225, 50, 57, 47, 49, 48, 0, 94, 93, 1, 54, 54, - 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 35, 34, 7, 17, 35, 17, 33, 17, 35, 17, - 33, 4,193, 30, 73, 46,154,240,165, 86, 82,146,201,118, 49, 78, 67, 61, 31, 63,126, 73, 1,119, 67,124,174,107, 75, 51,187,253, -123,186, 3,250, 3, 27, 5, 3, 92,171,242,151,170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 12,253,137, - 5, 18,250,238, 5,182, 0, 1, 0,174,254, 10, 6,117, 4, 74, 0, 36, 0,119, 64, 78, 11, 35, 27, 35, 2, 3, 3, 25, 17, 71, - 2, 18, 1,194, 18, 1,166, 18,182, 18, 2,119, 18,135, 18, 2, 18, 18, 22, 10, 72, 32, 38, 15, 38, 31, 38, 2, 79, 38, 95, 38, -175, 38,255, 38, 4, 16, 38, 1, 21, 71, 22, 84, 37, 13, 81, 11, 27, 27, 27, 2, 7, 27, 27, 22, 20, 80, 23, 15, 18, 22, 21, 4, - 7, 81, 0, 27, 0, 63,225, 51, 63, 51, 63,225, 18, 57, 47, 94, 93,225, 1, 16,246,225, 93, 93,113, 16,222,225, 17, 57, 47, 93, - 93, 93,113,225, 50, 57, 47, 49, 48, 0, 93, 1, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, - 17, 35, 17, 33, 17, 54, 51, 50, 30, 2, 21, 20, 14, 2, 4,217, 75,106, 46, 43,106, 66,118,117,144,157, 28, 62, 31,182,254, 8, -182, 3,100, 58, 63,102,179,133, 76, 64,111,150,254, 10, 31, 29,161, 24, 37,195,210,212,202, 10, 8,254, 53, 3,176,252, 80, 4, - 74,254, 39, 12, 62,138,219,157,150,213,136, 64, 0, 2, 0,125,255,172, 5,150, 5,205, 0, 62, 0, 82, 0,122, 64, 80, 5, 78, - 16, 50, 4, 0, 73, 91, 0, 32, 16, 32, 2, 53, 32, 53, 32, 24, 63, 91, 0,103, 84, 15, 84, 31, 84, 79, 84, 95, 84,127, 84,159, - 84,175, 84, 7, 7, 43, 91, 24,102, 83, 68, 96, 78, 5, 0, 58, 16, 58, 32, 58, 96, 58,112, 58,128, 58, 6, 58, 58, 7, 38, 95, - 33, 29, 4, 16, 50, 48, 95, 19, 7, 95, 14, 14, 19, 19, 0, 63, 51, 47,225, 16,225, 50, 57, 63, 51,225, 18, 57, 47, 93, 57, 57, -225, 1, 16,246,225, 94, 93, 16,246,225, 17, 57, 57, 47, 47, 93,225, 18, 23, 57, 49, 48, 1, 20, 14, 2, 7, 22, 51, 50, 54, 55, - 21, 6, 6, 35, 34, 39, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, - 2, 51, 50, 55, 38, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 46, 2, 35, 34, 14, 2, 21, 20, 30, 2, 23, 62, 3, 5,111, 39, - 65, 85, 45, 54, 81, 37, 70, 31, 29, 79, 38,166,139, 50,124, 60,150,232,157, 81, 77,158,242,166, 66,120, 37, 53, 10, 40, 48, 51, - 21,118,169,108, 51, 60,112,160,100, 48, 38, 79, 91, 55, 96,131, 76, 75,133, 98, 57,197, 22, 42, 61, 39, 41, 61, 41, 21, 24, 41, - 54, 31, 42, 66, 46, 24, 2,166,101,175,144,111, 36, 25, 14, 11,170, 13, 12, 98, 17, 17,106,192, 1, 14,165,181, 1, 31,199,105, - 22, 15,156, 5, 10, 9, 5, 81,154,222,141,148,218,144, 70, 7,105, 1, 22,155,133,193,123, 59, 56,123,198,149, 84,137, 99, 54, - 55, 98,135, 80, 72,133,118,101, 39, 33, 98,119,136, 0, 0, 2, 0,113,255,197, 4,164, 4, 94, 0, 13, 0, 77, 0,121, 64, 73, - 68, 5, 17, 50, 4, 63, 0, 72, 84, 33,100, 33, 2, 53, 33, 53, 33, 25, 8, 72, 63, 74, 74, 63, 87, 79,123, 79,139, 79,187, 79, - 3, 95, 79,111, 79, 2, 27, 79, 1, 15, 79, 1, 7, 2, 42, 72, 25, 86, 78, 11, 68, 5, 58, 58, 71, 37, 80, 34, 30, 16, 17, 50, - 47, 80, 20, 71, 80, 14, 14, 20, 22, 0, 63, 51, 47,225, 16,225, 50, 57, 63, 51,233, 18, 57, 47, 57, 57,193, 1, 16,246,225, 95, - 94, 93, 93, 93, 93, 16,230, 50, 47, 16,225, 17, 57, 57, 47, 47, 93,225, 18, 23, 57, 49, 48, 1, 20, 30, 2, 23, 54, 54, 53, 52, - 38, 35, 34, 6, 1, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, - 2, 51, 50, 54, 55, 38, 38, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 22, 22, 51, 50, 54, 55, 21, 6, 6, 2,221, 20, - 32, 42, 21, 57, 72, 56, 61, 62, 65, 1, 76, 69,136, 57, 40, 98, 71,117,179,122, 63, 60,120,180,121, 66, 82, 26, 41, 19, 74, 42, - 84,112, 67, 28, 30, 67,110, 80, 37, 50, 3, 57, 74, 49, 85,114, 65, 64,111, 82, 46, 30, 52, 69, 39, 20, 55, 29, 26, 57, 28, 25, - 66, 1,244, 53, 92, 75, 57, 18, 40,150,107,103,122,122,253,104, 42, 37, 17, 23, 87,151,204,117,131,214,151, 83, 16, 6,150, 5, - 16, 58,111,160,103, 89,148,107, 60, 8, 2, 66,180,119, 94,136, 89, 43, 39, 86,138, 99, 70,120, 99, 77, 27, 10, 13, 6, 8,147, - 9, 7,255,255, 0,125,254, 66, 4,152, 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 3,127, 2, 47, 0, 0, 0, 14,183, 1, 1,117, - 50, 44, 24, 32, 37, 1, 43, 53, 0, 53,255,255, 0,113,254, 66, 3,111, 4, 94, 2, 38, 0, 70, 0, 0, 1, 7, 3,127, 1,113, - 0, 0, 0, 14,183, 1, 1, 82, 46, 40, 5, 13, 37, 1, 43, 53, 0, 53, 0, 1, 0, 20,254,127, 4, 18, 5,182, 0, 11, 0,111, - 64, 57, 31, 13, 1,224, 13, 1, 95, 13,223, 13, 2, 32, 13, 48, 13, 64, 13, 3, 4, 90, 15, 1, 31, 1, 2, 7, 1, 1,175, 10, -239, 10, 2, 10, 10, 11, 90, 6, 64, 7,224, 7, 2, 15, 7, 1, 8, 7, 7, 87, 6,103, 6,119, 6, 3, 6,184,255,192, 64, 15, - 7, 10, 72, 6, 11, 7, 95, 8, 3, 0, 95, 5, 18, 2,251, 0, 63, 63,225, 63,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, 16, -225, 50, 47, 93, 57, 47, 94, 93,225, 93, 93, 93,113, 49, 48, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33, 21, 33, 2,113,176,176,187, -254, 94, 3,254,254, 95,166,253,217, 1,129, 5, 18,164,164, 0, 0, 1, 0, 41,254,131, 3, 94, 4, 74, 0, 11, 0,111, 64, 77, -240, 13, 1,175, 13, 1, 64, 13, 80, 13, 2, 47, 13, 1, 11, 71,175, 8,191, 8,207, 8, 3, 8, 64, 7, 10, 72, 8, 8,223, 5, - 1,157, 5, 1,143, 5, 1, 5, 5, 7, 71, 0, 96, 2,112, 2,208, 2, 3, 31, 2, 1, 2, 2, 0, 0, 16, 0,176, 0,192, 0, - 4, 0, 9,251, 6, 2, 80, 3, 15, 7, 80, 0, 21, 0, 63,225, 63,225, 50, 63, 1, 47, 93, 51, 47, 93, 93, 16,225, 50, 47, 93, - 93, 93, 57, 47, 43, 93,225, 93, 93, 93, 93, 49, 48, 33, 17, 33, 53, 33, 21, 33, 17, 51, 17, 35, 17, 1,104,254,193, 3, 53,254, -193,159,182, 3,176,154,154,252,234,253,233, 1,125, 0,255,255, 0, 0, 0, 0, 4, 55, 5,182, 2, 6, 0, 60, 0, 0, 0, 1, - 0, 0,254, 20, 3,213, 4, 74, 0, 19, 0,124, 64, 19, 10, 10, 0, 71,166, 1, 1,135, 1,151, 1, 2, 1, 1, 3, 17, 18, 16, - 18,184,255,192,179, 18, 21, 72, 18,184,255,192, 64, 32, 7, 11, 72, 18, 18, 21,240, 21, 1,223, 21,239, 21, 2, 80, 21,144, 21, -160, 21, 3, 79, 21, 1, 48, 21, 1, 15, 21, 1, 4, 3,184,255,240, 64, 16, 3, 17, 3, 15, 5, 10, 21, 10, 2, 7, 19, 10, 2, - 21, 0, 27, 0, 63, 63, 51, 51, 94, 93, 63, 51, 1, 47, 56, 51, 93, 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 18, 57, 47, - 93, 93,225, 57, 61, 47, 49, 48, 1, 35, 17, 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 2, 70,183,254,113,188,199, 16, - 32, 27, 20, 5, 7, 4, 21, 27, 32, 16,199,188,254,113,254, 20, 1,232, 4, 78,253,207, 46,100, 94, 79, 25, 25, 79, 94,100, 46, - 2, 49,251,178, 0, 1, 0, 0, 0, 0, 4, 55, 5,182, 0, 16, 0,159, 64, 25,239, 18, 1, 18, 64, 9, 12, 72, 0, 0, 4, 8, - 90, 9, 13, 9,150, 9, 1,119, 9,135, 9, 2, 6,184,255,192, 64, 13, 21, 24, 72, 11, 9, 6, 6, 9, 11, 3, 2, 16, 15,184, -255,240, 64, 56,171, 15, 1,144, 15, 1, 20, 15, 1, 15, 1, 2, 16, 16, 2, 1,239, 2, 1,208, 2, 1,191, 2, 1,128, 2, 1, - 79, 2, 95, 2, 2, 20, 2, 1, 0, 2, 1, 7, 2, 2, 18, 7, 10, 95, 4, 0, 13, 13, 1, 8, 18, 15, 1, 3, 0, 63, 51, 63, - 18, 57, 47, 57, 51,225, 50, 17, 1, 51, 47, 94, 93, 93, 93, 93, 93, 93, 93,113, 56, 51, 47, 93, 93, 93, 56, 51, 18, 23, 57, 47, - 47, 47, 43, 93, 93, 17, 51, 16,225, 50, 57, 61, 47, 43, 93, 49, 48, 1, 1, 51, 1, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, - 1, 51, 2, 27, 1, 84,200,254, 66, 1, 39,254,217,187,254,218, 1, 38,254, 66,203, 2,211, 2,227,252,131, 61,164,254,168, 1, - 88,164, 51, 3,135, 0, 0, 1, 0, 0,254, 20, 3,213, 4, 74, 0, 25, 0,133, 64, 21, 14, 14, 23, 1, 71, 6,166, 2, 1,135, - 2,151, 2, 2, 2, 2, 7, 21, 22, 16, 22,184,255,192,179, 18, 21, 72, 22,184,255,192, 64, 32, 7, 11, 72, 22, 22, 27,240, 27, - 1,223, 27,239, 27, 2, 80, 27,144, 27,160, 27, 3, 79, 27, 1, 48, 27, 1, 15, 27, 1, 8, 7,184,255,240, 64, 19, 7, 21, 7, - 15, 0, 3, 79, 5, 14, 21, 14, 2, 7, 14, 23, 6, 21, 1, 27, 0, 63, 63, 51, 51, 94, 93,225, 50, 63, 51, 1, 47, 56, 51, 93, - 93, 93, 93, 93, 93, 17, 51, 47, 43, 43, 56, 51, 18, 57, 47, 93, 93, 51,225, 50, 57, 61, 47, 49, 48, 5, 17, 35, 17, 33, 53, 33, - 1, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 33, 21, 2, 70,183,254,246, 1, 8,254,115,188,199, 16, 32, 27, 20, 5, 7, - 4, 21, 27, 32, 16,199,188,254,113, 1, 10,137,254,157, 1, 99,137, 4, 74,253,207, 46,100, 94, 79, 25, 25, 79, 94,100, 46, 2, - 49,251,182,137, 0, 1, 0, 0,254,127, 4,180, 5,182, 0, 15, 1, 6, 64,136, 71, 15, 1, 72, 9, 1, 3, 15, 0, 11, 6, 5, - 10, 7, 14, 7, 12, 0, 11, 9, 5, 10, 8, 13, 8, 12, 15, 0, 11, 0, 9, 6, 5, 10, 5, 9, 12, 15, 3, 6, 6, 14, 8, 10, - 5, 1,170, 5,186, 5,202, 5,234, 5,250, 5, 5, 5, 48, 11, 14, 72, 5, 4, 90, 1, 13, 14, 16, 11, 14, 1,171, 14,187, 14, -203, 14,235, 14,251, 14, 5, 14, 64, 11, 14, 72, 14, 10, 0, 1,170, 0,186, 0,202, 0,234, 0,250, 0, 5, 0, 48, 11, 14, 72, - 14, 0, 4, 1, 20, 1, 2, 7, 1, 1, 17,212, 17,228, 17,244, 17, 3,192, 17, 1, 2, 32, 17, 64, 17, 2, 17,184,255,192, 64, - 11, 16, 20, 72, 15, 17, 1, 11, 10, 10, 7, 8,184,255,240, 64, 20, 8, 40, 6, 1, 39, 12, 1, 12, 6, 5, 13, 10, 3, 7, 0, - 95, 5, 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 57, 93, 93, 1, 47, 56, 51, 51, 17, 51, 93, 43, 93, 95, 93, 93, 17, 51, - 47, 94, 93, 51, 51, 43, 93,113, 47, 43, 93,113, 56, 51, 16,225, 50, 43, 93,113, 17, 18, 57, 61, 47, 23, 51, 16,135, 14,192, 4, -192, 16,135,192, 14,192, 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 1, 95, 93, 93, 49, 48, 37, 51, 17, 35, 17, 35, 1, 1, - 35, 1, 1, 51, 1, 1, 51, 1, 3,254,182,176,119,254,158,254,145,188, 1,197,254, 90,198, 1, 76, 1, 78,190,254, 91,166,253, -217, 1,129, 2,123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 35,254,131, 4, 31, 4, 74, 0, 15, 1, 57, - 64, 37, 89, 13, 1, 86, 3, 1,180, 12, 1, 12, 32, 14, 17, 72, 61, 12, 1, 41, 12, 1, 11, 12, 27, 12, 2, 12, 11, 70, 8, 0, - 3, 6, 3, 13, 13, 1, 4,184,255,240, 64,113, 21, 24, 72,181, 4, 1,153, 4,169, 4, 2,106, 4,122, 4,138, 4, 3, 69, 4, - 85, 4, 2, 6, 4, 1, 4, 5,219, 2,235, 2,251, 2, 3,201, 2, 1,187, 2, 1,150, 2,166, 2, 2,101, 2,117, 2,133, 2, - 3, 74, 2, 90, 2, 2, 2, 1,223, 5,239, 5,255, 5, 3, 5, 64, 14, 17, 72, 59, 5, 75, 5, 2, 39, 5, 1, 10, 5, 26, 5, - 2, 52, 1, 68, 1, 2, 40, 1, 1, 5, 1, 21, 1, 2, 5, 1, 5, 1, 15, 59, 7, 1, 7, 32, 14, 17, 72, 7, 8,184,255,192, - 64, 73, 7, 12, 72, 8, 8, 17, 96, 17,128, 17,144, 17,176, 17,208, 17,224, 17,240, 17, 7,219, 14, 1,201, 14, 1,186, 14, 1, -101, 14,117, 14,133, 14, 3, 74, 14, 90, 14, 2, 9, 14, 1, 14, 59, 15, 75, 15, 2, 40, 15, 1, 5, 15, 21, 15, 2, 15, 3, 13, - 1, 14, 7, 80, 12, 21, 9,251, 4, 1, 15, 0, 63, 51, 63, 63,225, 51, 18, 57, 57, 1, 47, 93, 93, 93,197, 93, 93, 93, 93, 93, - 93, 93, 17, 51, 47, 43, 51, 43, 93, 18, 57, 57, 47, 47, 93, 93, 93, 93, 93, 93, 43, 93, 16,197, 93, 93, 93, 93, 93, 93, 16,197, - 93, 93, 93, 93, 93, 43, 18, 57, 61, 47, 23, 51, 16,225, 50, 93, 93, 93, 43, 93, 49, 48, 0, 93, 93, 1, 1, 51, 19, 19, 51, 1, - 1, 51, 17, 35, 17, 35, 1, 1, 35, 1,152,254,159,207,250,250,207,254,157, 1, 15,170,174,101,254,244,254,242,207, 2, 51, 2, - 23,254,102, 1,154,253,233,254,103,253,233, 1,125, 1,180,254, 76, 0, 0, 1, 0, 20,254,127, 6, 96, 5,182, 0, 15, 0,148, - 64, 13, 1, 90, 4, 4, 8, 90, 16, 5, 1,208, 5, 1, 5,184,255,192, 64, 68, 7, 18, 72, 5, 5, 17,223, 17, 1,160, 17, 1, - 15, 17, 47, 17, 79, 17,143, 17, 4, 7, 16, 14, 32, 14, 64, 14, 80, 14, 96, 14,128, 14, 6, 14, 14, 0, 90, 9, 15, 11, 31, 11, - 47, 11, 95, 11,111, 11,175, 11, 6, 8, 11, 11, 48, 9, 64, 9, 80, 9,128, 9,144, 9, 5, 9,184,255,192, 64, 17, 7, 10, 72, - 9, 15, 11, 95, 2, 12, 3, 4, 0, 95, 9, 18, 6,251, 0, 63, 63,225, 50, 63, 51,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 16, -225, 50, 47, 93, 94, 93, 93, 93, 17, 51, 47, 43, 93,113,225, 51, 47,225, 49, 48, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33, 17, 33, - 53, 33, 21, 33, 2,113, 2,133,186,176,176,252, 6,254, 94, 3,254,254, 95,166, 5, 16,250,240,253,217, 1,129, 5, 18,164,164, - 0, 1, 0, 41,254,131, 5,109, 4, 74, 0, 15, 0,128,182, 11, 71, 14, 14, 2, 71, 15,184,255,192,179, 14, 24, 72, 15,184,255, -192, 64, 51, 7, 11, 72, 15, 15, 17, 15, 17, 31, 17, 47, 17, 79, 17,191, 17,223, 17, 6, 7, 96, 8,224, 8,240, 8, 3, 8, 8, - 10, 71, 3, 31, 5,239, 5,255, 5, 3, 5, 5, 0, 3, 16, 3, 96, 3,112, 3, 4, 3,184,255,192, 64, 17, 20, 24, 72, 3, 9, - 5, 80, 12, 6, 15, 14, 10, 80, 3, 21, 0,251, 0, 63, 63,225, 50, 63, 51,225, 50, 1, 47, 43, 93, 51, 47, 93, 16,225, 50, 47, - 93, 94, 93, 17, 51, 47, 43, 43,225, 51, 47,225, 49, 48, 1, 35, 17, 33, 17, 33, 53, 33, 21, 33, 17, 33, 17, 51, 17, 51, 5,109, -183,252,178,254,193, 3, 53,254,193, 1,248,182,160,254,131, 1,125, 3,176,154,154,252,234, 3,176,252, 80, 0, 0, 1, 0,166, -254,127, 5, 49, 5,182, 0, 29, 0, 99, 64, 18, 11, 13, 27, 13, 2, 26, 4, 90,144, 29,160, 29, 2, 29, 29, 3, 90, 0,184,255, -192, 64, 44, 7, 16, 72, 0, 0, 31, 15, 31, 31, 31, 47, 31, 79, 31, 95, 31,127, 31,175, 31,191, 31, 8, 7, 18, 90, 15,100, 30, - 21, 95, 26, 10, 10, 4, 27, 16, 3, 29, 95, 4, 18, 1,251, 0, 63, 63,225, 63, 51, 18, 57, 47, 51,225, 1, 16,246,225, 94, 93, - 17, 51, 47, 43,225, 51, 47, 93,225, 50, 49, 48, 93, 37, 17, 35, 17, 35, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, - 50, 62, 2, 55, 17, 51, 17, 5, 49,176,186, 58,105, 99, 97, 49, 93,146,101, 53,186,105,123, 45, 90, 94,102, 56,186,166,253,217, - 1,129, 2, 86, 22, 34, 22, 12, 49, 94,139, 89, 2, 71,253,209,115,116, 10, 20, 30, 20, 2,198,250,240, 0, 1, 0,154,254,131, - 4,158, 4, 74, 0, 28, 0, 97, 64, 23, 11, 9, 27, 9, 43, 9, 3, 7, 21, 0, 71, 24, 24, 28, 71, 0, 25, 16, 25, 32, 25, 3, - 25,184,255,192, 64, 37, 14, 21, 72, 25, 25, 30, 15, 30, 95, 30,127, 30,191, 30,207, 30, 5, 14, 71, 11, 84, 29, 26,251, 21, 16, - 80, 6, 6, 0, 22, 12, 15, 24, 80, 0, 21, 0, 63,225, 63, 51, 18, 57, 47,225, 51, 63, 1, 16,246,225, 93, 17, 51, 47, 43, 93, -225, 51, 47,225, 50, 49, 48, 94, 93, 33, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 51, 50, 62, 2, 55, 17, 51, 17, 51, 17, - 35, 17, 3, 72, 44, 80, 85, 94, 58, 78,122, 82, 43,182,184, 45, 80, 76, 77, 42,182,160,183, 1,233, 30, 48, 32, 17, 47, 84,115, - 68, 1,166,254,102,174, 15, 28, 43, 29, 1,213,252, 80,253,233, 1,125, 0, 1, 0,166, 0, 0, 4,129, 5,182, 0, 29, 0,112, - 64, 46, 11, 4, 27, 4, 2, 28, 15, 29, 4, 14, 20, 14, 2, 7, 14, 14, 6, 19, 23, 90, 22,101, 31,112, 31,160, 31, 2, 47, 31, - 1, 16, 31, 1, 9, 90, 96, 6,112, 6,160, 6,176, 6, 4, 6,184,255,192, 64, 22, 7, 10, 72, 6, 14, 16, 14, 29, 19, 27, 29, - 3, 12, 95, 1, 1, 23, 20, 7, 3, 23, 18, 0, 63, 63, 51, 18, 57, 47,225, 23, 51, 47, 50, 50, 47, 1, 47, 43, 93,225, 93, 93, - 93, 16,246,225, 50, 17, 57, 47, 94, 93, 51,193, 50, 49, 48, 93, 1, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 51, 17, 51, 17, - 54, 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 17, 35, 2, 80, 33, 93,146,101, 53,186,105,123, 12,133, 56,118, 68,186,186, 66,119, - 57,133, 1,252, 49, 94,139, 89, 2, 71,253,209,115,116, 1, 88,254,180, 9, 34, 25, 2,198,250, 74, 2, 86, 26, 37, 11,254,201, - 0, 1, 0,154, 0, 0, 3,254, 4, 74, 0, 28, 0,107, 64, 66, 11, 4, 27, 4, 2, 7, 27, 14, 28, 80, 13, 1, 4, 13, 20, 13, - 36, 13, 3, 8, 13, 13, 6, 18, 22, 90, 21, 85, 30, 16, 30, 96, 30,128, 30, 3, 9, 90, 6, 84, 29, 32, 13, 48, 13, 64, 13, 3, - 13, 15, 13, 28, 18, 26, 28, 3, 11, 95, 1, 1, 22, 19, 7, 15, 22, 21, 0, 63, 63, 51, 18, 57, 47,225, 23, 51, 47, 50, 50, 47, - 93, 1, 16,246,225, 93, 16,246,225, 50, 17, 57, 47, 94, 93, 93, 51,193, 50, 49, 48, 94, 93, 49, 48, 1, 35, 34, 46, 2, 53, 17, - 51, 17, 20, 51, 51, 17, 51, 17, 54, 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 17, 35, 2, 14, 47, 78,122, 82, 43,182,184, 6,125, - 47, 91, 51,182,182, 50, 89, 50,125, 1,106, 47, 84,115, 68, 1,166,254,102,174, 1, 45,254,229, 14, 48, 35, 1,213,251,182, 1, -233, 35, 51, 16,255, 0, 0, 1, 0,199, 0, 0, 4,162, 5,182, 0, 23, 0, 80, 64, 54, 4, 7, 20, 7, 2, 7, 12, 90, 11,101, - 25, 47, 25, 95, 25,111, 25,143, 25,159, 25,175, 25,207, 25,239, 25,255, 25, 9, 16, 25, 1, 2, 22, 90, 23,100, 24, 21, 16, 95, - 0, 5, 16, 5, 2, 5, 5, 23, 11, 18, 0, 3, 0, 63, 63, 51, 57, 47, 93,225, 51, 1, 16,246,225, 50, 93, 93, 16,246,225, 49, - 48, 0, 94, 93, 19, 51, 17, 54, 54, 51, 50, 30, 2, 21, 17, 35, 17, 52, 38, 35, 34, 14, 2, 7, 17, 35,199,186,115,195, 98, 93, -146,101, 53,187,104,123, 45, 90, 95,101, 56,186, 5,182,253,170, 45, 45, 49, 94,138, 89,253,184, 2, 47,115,117, 10, 20, 30, 20, -253, 57, 0, 1, 0,174, 0, 0, 4, 18, 4, 74, 0, 24, 0, 63,185, 0, 20,255,224, 64, 34, 7, 10, 72, 0, 71, 24, 85, 26,239, - 26, 1, 16, 26, 96, 26,128, 26, 3, 13, 9, 71, 10, 84, 25, 8, 3, 80, 18, 18, 11, 15, 10, 0, 21, 0, 63, 50, 63, 57, 47,225, - 51, 1, 16,246,225, 50, 93, 93, 16,246,225, 49, 48, 0, 43, 33, 17, 52, 35, 34, 14, 2, 7, 17, 35, 17, 51, 17, 62, 3, 51, 50, - 30, 2, 21, 17, 3, 92,184, 45, 80, 76, 77, 42,182,182, 44, 80, 85, 94, 58, 78,122, 82, 43, 1,154,174, 15, 28, 44, 28,254, 43, - 4, 74,254, 22, 31, 47, 32, 17, 47, 83,115, 68,254, 90, 0, 2, 0, 61,255,236, 6, 6, 5,205, 0, 43, 0, 54, 0,100, 64, 62, - 50, 91, 20, 11,103, 56, 15, 56, 31, 56, 2, 41, 32, 34, 1, 34, 34, 49, 12, 91, 0,112, 31,128, 31,192, 31, 3, 31, 55, 31, 12, - 96, 49, 79, 43, 1, 15, 43,175, 43,255, 43, 3, 15, 37, 1, 8, 43, 37, 43, 37, 5, 17, 95, 20, 26, 19, 44, 95, 5, 4, 0, 63, -225, 63, 51,225, 17, 57, 57, 47, 47, 94, 93, 93,113, 51,225, 50, 1, 16,214, 93, 50,225, 50, 51, 47, 93,193, 93, 16,246, 50,225, - 49, 48, 1, 62, 3, 51, 50, 22, 22, 18, 21, 21, 33, 30, 3, 51, 50, 54, 55, 21, 14, 3, 35, 34, 46, 2, 39, 34, 38, 53, 52, 54, - 55, 51, 6, 6, 21, 20, 51, 1, 34, 14, 2, 7, 33, 52, 46, 2, 1,102, 10, 91,156,221,141,153,214,136, 62,252, 37, 7, 63,116, -169,112,128,207, 91, 42, 91,105,124, 76,152,235,164, 92, 9,143,154, 18, 11,156, 6, 15,103, 2,137, 91,149,110, 65, 7, 3, 18, - 37, 86,139, 3, 57,154,244,171, 91,107,197,254,235,171, 69,122,194,134, 71, 44, 32,170, 15, 26, 18, 10, 97,179,253,155,117,122, - 42, 66, 23, 15, 62, 35, 97, 1,240, 65,126,185,120,117,184,128, 67, 0, 0, 2, 0, 51,255,236, 4,182, 4, 94, 0, 44, 0, 53, - 0,132, 64, 43, 49, 72, 39, 30, 87, 55,255, 55, 1,144, 55,176, 55, 2, 31, 55,127, 55, 2, 48, 31, 72, 5, 15,223, 8, 1, 8, - 8, 19, 0, 5, 16, 5, 32, 5, 3, 64, 5, 80, 5, 2, 5,184,255,192, 64, 40, 16, 19, 72, 5, 54, 5, 31, 80, 48, 27, 18, 43, - 18, 2, 15, 18, 1, 27, 11, 43, 11, 2, 15, 11, 1, 6, 18, 11, 18, 11, 34, 45, 80, 24, 16, 34, 81, 39, 0, 22, 0, 63, 50,225, - 63,225, 18, 57, 57, 47, 47, 94, 93, 93, 93, 93, 51,225, 50, 1, 16,198, 43, 93,113, 50, 50, 47, 93,193, 16,225, 50, 93, 93, 93, - 16,246, 50,225, 49, 48, 5, 34, 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, - 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 14, 3, 3, 34, 6, 7, 33, 52, 46, 2, 3, 53,107,179,130, 75, 4,133,142, 18, 9,149, - 6, 14, 49, 49, 27, 14, 76,116,152, 90, 99,158,110, 59,253, 76, 5,153,151, 51, 87, 81, 76, 39, 40, 77, 81, 87, 96,114,133, 11, - 1,236, 27, 57, 89, 20, 70,136,199,129, 2,111,114, 39, 63, 21, 14, 58, 34, 47, 49,108,169,117, 62, 71,129,181,110,113,193,182, - 10, 19, 29, 18,162, 19, 28, 18, 8, 3,219,156,149, 68,113, 80, 44, 0, 0, 2, 0, 61,254,127, 6, 6, 5,205, 0, 46, 0, 57, - 0,114, 64, 70, 27, 90, 28, 28, 34, 53, 91, 20, 11,103, 59, 15, 59, 31, 59, 2, 44, 32, 37, 1, 37, 37, 52, 12, 91, 0,112, 34, -128, 34,192, 34, 3, 34, 58, 34, 12, 96, 52, 79, 46, 1, 15, 46, 63, 46,175, 46, 3, 15, 40, 1, 8, 46, 40, 46, 40, 5, 26, 20, - 17, 96, 29, 18, 27,251, 47, 95, 5, 4, 0, 63,225, 63, 63,225, 51, 51, 18, 57, 57, 47, 47, 94, 93, 93,113, 51,225, 50, 1, 16, -214, 93, 50,225, 50, 51, 47, 93,193, 93, 16,246, 50,225, 18, 57, 47,225, 49, 48, 1, 62, 3, 51, 50, 22, 22, 18, 21, 21, 33, 30, - 3, 51, 50, 54, 55, 21, 14, 3, 7, 17, 35, 17, 46, 3, 39, 34, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 51, 1, 34, 14, 2, 7, - 33, 52, 46, 2, 1,102, 10, 91,156,221,141,153,214,136, 62,252, 37, 7, 63,116,169,112,128,207, 91, 37, 78, 88,100, 58,182,128, -196,138, 77, 8,143,154, 18, 11,156, 6, 15,103, 2,137, 91,149,110, 65, 7, 3, 18, 37, 86,139, 3, 57,154,244,171, 91,107,197, -254,235,171, 69,122,194,134, 71, 44, 32,170, 14, 23, 17, 11, 2,254,145, 1,115, 16,109,176,235,142,117,122, 42, 66, 23, 15, 62, - 35, 97, 1,240, 65,126,185,120,117,184,128, 67, 0, 2, 0, 51,254,131, 4,182, 4, 94, 0, 45, 0, 54, 0,146, 64, 48, 4, 71, - 5, 5, 11, 50, 72, 45, 36, 87, 56,255, 56, 1,144, 56,176, 56, 2, 31, 56,127, 56, 2, 49, 37, 72, 11, 21,223, 14, 1, 14, 14, - 25, 0, 11, 16, 11, 32, 11, 3, 64, 11, 80, 11, 2, 11,184,255,192, 64, 43, 16, 19, 72, 11, 55, 11, 37, 80, 49, 27, 24, 43, 24, - 2, 15, 24, 1, 27, 17, 43, 17, 2, 15, 17, 1, 6, 24, 17, 24, 17, 40, 46, 80, 30, 16, 40, 81, 45, 3, 6, 22, 4,251, 0, 63, - 63, 51, 51,225, 63,225, 18, 57, 57, 47, 47, 94, 93, 93, 93, 93, 51,225, 50, 1, 16,198, 43, 93,113, 50, 50, 47, 93,193, 16,225, - 50, 93, 93, 93, 16,246, 50,225, 18, 57, 47,225, 49, 48, 37, 6, 6, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, 51, 6, - 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 1, 34, 6, 7, 33, 52, 46, 2, 4,133, - 66,128, 76,182, 84,137, 99, 56, 3,133,142, 18, 9,149, 6, 14, 49, 49, 27, 14, 76,116,152, 90, 99,158,110, 59,253, 76, 5,153, -151, 51, 87, 81, 76, 39,254,131,114,133, 11, 1,236, 27, 57, 89, 53, 32, 35, 4,254,149, 1,117, 17, 84,132,178,111, 2,111,114, - 39, 63, 21, 14, 58, 34, 47, 49,108,169,117, 62, 71,129,181,110,113,193,182, 10, 19, 29, 18, 2,240,156,149, 68,113, 80, 44, 0, -255,255, 0, 82, 0, 0, 2,100, 5,182, 2, 6, 0, 44, 0, 0,255,255, 0, 4, 0, 0, 6,129, 7,105, 2, 38, 1,176, 0, 0, - 1, 7, 2, 54, 0,244, 1, 82, 0, 19, 64, 11, 1, 23, 5, 38, 1, 0, 28, 18, 17, 10, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 4, 0, 0, 5,190, 6, 23, 2, 38, 1,208, 0, 0, 1, 7, 2, 54, 0,147, 0, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 0, - 28, 18, 14, 7, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,199,254, 0, 4,225, 5,182, 0, 37, 0,103, 64, 63, 27, 27, 5, 33, - 91, 17, 9, 10, 16, 10, 64, 12, 24, 72, 10, 10, 4, 17, 39, 16, 39, 64, 39, 2, 11, 8, 8, 4, 90, 5,100, 38, 31, 95, 28, 22, - 28, 8, 3, 0, 96, 47, 12, 95, 12,239, 12,255, 12, 4, 12, 64, 16, 21, 72, 12, 12, 5, 9, 6, 3, 5, 18, 0, 63, 63, 51, 18, - 57, 47, 43, 93,225, 51, 51, 63, 51,225, 1, 16,246,225, 50, 17, 51, 93, 16,206, 17, 57, 47, 43, 56, 51, 16,225, 17, 57, 47, 49, - 48, 1, 34, 6, 7, 17, 35, 17, 51, 17, 1, 51, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, - 52, 46, 2, 2, 70, 65, 92, 40,186,186, 2, 53,207,253,209, 6,154,240,165, 86, 82,146,201,118, 49, 78, 67, 61, 31, 63,127, 72, - 1,119, 67,124,174, 2,111, 17, 14,253,176, 5,182,253, 60, 2,196,253, 88, 85,163,236,151,170,248,162, 79, 6, 12, 19, 12,162, - 23, 24, 1,239,121,179,118, 58, 0, 1, 0,174,254, 10, 3,233, 4, 74, 0, 35, 0,114, 64, 71, 11, 8, 27, 8, 2, 34, 35, 16, - 31, 35, 1, 35, 35, 29, 5, 13, 13, 30, 20, 72, 5, 37, 15, 37, 1, 95, 37,111, 37,127, 37,159, 37,191, 37,223, 37,255, 37, 7, - 0, 33, 33, 29, 71, 30, 84, 36, 33, 28, 25, 81, 11, 0, 27, 0, 2, 7, 0, 0, 30, 34, 31, 15, 30, 21, 17, 81, 14, 10, 27, 0, - 63, 51,225, 63, 63, 51, 18, 57, 47, 94, 93,225, 51, 51, 1, 16,246,225, 50, 17, 51, 93,113, 16,222,225, 17, 57, 47, 17, 18, 57, - 47,113, 56, 51, 49, 48, 0, 93, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, 35, 34, 6, - 7, 17, 35, 17, 51, 17, 1, 51, 2, 43, 94,163,120, 69, 63,111,150, 87, 76,105, 47, 44,105, 67,118,117, 35, 74,114, 78, 32, 85, - 41,180,180, 1,152,196, 2,106, 5, 64,132,208,148,150,213,136, 64, 31, 29,161, 24, 37,195,210,106,151, 96, 45, 16, 13,254, 80, - 4, 74,254, 10, 1,246, 0, 1, 0, 0,254,127, 5, 86, 5,182, 0, 35, 0,115,177, 7, 2,184,255,248, 64, 70, 20, 23, 72, 2, - 90,137, 24, 1, 24, 16, 24,224, 29, 1,180, 29,196, 29,212, 29, 3, 0, 29, 80, 29, 2, 7, 29, 29, 31, 15, 33, 34, 34, 0, 90, - 35, 32, 31, 37,144, 37,192, 37,240, 37, 3, 15, 37, 31, 37,127, 37, 3, 8, 15, 33,251, 2, 95, 29, 3, 19, 96, 12, 19, 31, 95, - 0, 18, 0, 63,225, 63,225, 63,225, 63, 1, 47, 94, 93, 93, 16,212, 50, 50,225, 57, 47, 51, 17, 18, 57, 47, 94, 93, 93, 93, 51, - 56, 93,225, 43, 50, 49, 48, 33, 17, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, - 33, 17, 51, 3, 35, 19, 3,217,254,133, 15, 32, 33, 33, 16, 20, 53, 79,110, 78, 35, 74, 28, 23, 58, 32, 48, 62, 42, 26, 12, 12, - 32, 39, 43, 22, 2,208,195,143,217,165, 5, 18,113,245,235,212, 81,103,162,111, 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, - 1, 6, 1, 58,170,250,240,253,217, 1,129, 0, 0, 1, 0, 16,254,131, 4,102, 4, 74, 0, 24, 0, 88, 64, 56, 2, 70,212, 18, -228, 18, 2, 96, 18,112, 18,160, 18,176, 18, 4, 52, 18, 1, 18, 18, 10, 22, 23, 23, 0, 71, 24, 21, 20, 85, 26, 32, 26,176, 26, - 2, 15, 26, 1, 8, 10, 22,251, 2, 80, 18, 15, 13, 79, 7, 22, 20, 80, 0, 21, 0, 63,225, 63,225, 63,225, 63, 1, 47, 94, 93, - 93, 16,244, 50, 50,225, 57, 47, 51, 17, 57, 47, 93, 93, 93,225, 49, 48, 33, 17, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, 51, - 50, 54, 54, 18, 55, 33, 17, 51, 3, 35, 19, 2,250,254,254, 20, 64, 95,130, 86, 28, 49, 16, 22, 28, 55, 89, 69, 51, 18, 2, 84, -182,122,183,123, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,252, 80,253,233, 1,125, 0, 0, 1, 0,229, -254, 0, 4,244, 5,182, 0, 27, 0, 75, 64, 43, 5, 5, 16, 20, 12, 90, 23,101, 29,192, 29, 1,191, 29, 1, 32, 29, 1, 19, 15, - 90, 16,100, 28, 14, 95, 15, 19, 1, 8, 19, 19, 16, 21, 17, 3, 16, 18, 9, 95, 6, 0, 28, 0, 63, 50,225, 63, 63, 51, 18, 57, - 47, 94, 93,225, 1, 16,246,225, 50, 93, 93, 93, 16,246,225, 50, 17, 57, 47, 49, 48, 1, 34, 46, 2, 39, 53, 22, 22, 51, 50, 54, - 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,209, 49, 78, 68, 61, 31, 63,127, 72,187,198,253,103,187,187, 2, -153,187, 82,146,201,254, 0, 6, 12, 19, 12,162, 23, 24,240,247, 2, 31,253, 86, 5,182,253,152, 2,104,250,221,170,248,162, 79, - 0, 1, 0,174,254, 10, 4, 59, 4, 74, 0, 27, 0,105, 64, 26, 3, 3, 16, 20, 12, 71, 23, 85, 29, 0, 29, 32, 29, 2, 48, 29, - 64, 29, 80, 29,208, 29,240, 29, 5, 29,184,255,192, 64, 40, 14, 17, 72, 19, 15, 71, 16, 84, 28, 14, 80,235, 19, 1,169, 19,185, - 19, 2, 15, 19, 31, 19, 47, 19, 3, 6, 19, 19, 16, 21, 17, 15, 16, 21, 7, 81, 4, 0, 27, 0, 63, 50,225, 63, 63, 51, 18, 57, - 47, 94, 93, 93, 93,225, 1, 16,246,225, 50, 43, 93,113, 16,246,225, 50, 17, 57, 47, 49, 48, 1, 34, 38, 39, 53, 22, 22, 51, 50, - 62, 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,160, 76,105, 47, 44,105, 66, 59, 91, 61, 31,253,223,182, -182, 2, 33,182, 63,111,150,254, 10, 31, 29,161, 24, 37, 45, 97,150,105, 1,178,254, 23, 4, 74,254, 57, 1,199,251,243,150,213, -136, 64, 0, 1, 0,229,254,127, 5,182, 5,182, 0, 15, 0, 82, 64, 50, 2, 3, 3, 13, 5, 90, 4, 1, 0, 17, 16, 17, 32, 17, - 64, 17,128, 17,192, 17,224, 17,240, 17, 7, 12, 8, 90, 9,100, 16, 7, 95, 15, 12, 1, 8, 12, 12, 5, 14, 10, 3, 9, 0, 95, - 5, 18, 2,251, 0, 63, 63,225, 51, 63, 51, 18, 57, 47, 94, 93,225, 1, 16,246,225, 50, 93, 16,212, 50, 50,225, 50, 57, 47, 51, - 49, 48, 37, 51, 3, 35, 19, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,244,194,143,217,166,187,253,103,187,187, 2,153,187, -166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,174,254,131, 4,242, 4, 74, 0, 15, 0,118, 64, 79, - 13, 14, 14, 8, 0, 71, 15, 12,171, 11,187, 11, 2, 11, 17, 4, 17, 36, 17, 2,212, 17,244, 17, 2,176, 17, 1, 2, 48, 17, 64, - 17, 80, 17,128, 17,144, 17,160, 17, 6, 7, 3, 71, 4, 84, 16, 13,251, 2, 80,235, 7, 1,169, 7,185, 7, 2, 15, 7, 31, 7, - 47, 7, 3, 6, 7, 7, 0, 9, 5, 15, 11, 80, 4, 0, 21, 0, 63, 50,225, 63, 51, 18, 57, 47, 94, 93, 93, 93,225, 63, 1, 16, -246,225, 50, 93, 95, 93, 93,113, 16,212, 93, 50, 50,225, 50, 57, 47, 51, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, - 51, 3, 35, 19, 3,133,253,223,182,182, 2, 33,182,183,123,182,122, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, 1, -125, 0, 0, 1, 0,166,254,127, 4,129, 5,182, 0, 29, 0, 89, 64, 33, 29, 90, 26, 26, 22, 0, 90, 25,101, 31,112, 31,160, 31, - 2, 47, 31, 1, 16, 31, 1, 14, 90, 96, 11,112, 11,160, 11,176, 11, 4, 11,184,255,192, 64, 20, 7, 10, 72, 11, 22, 17, 95, 6, - 6, 12, 26, 27,251, 29, 95, 26, 18, 23, 12, 3, 0, 63, 51, 63,225, 63, 17, 18, 57, 47,225, 51, 1, 47, 43, 93,225, 93, 93, 93, - 16,246,225, 50, 50, 47,225, 49, 48, 37, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 55, 17, 51, 17, 35, - 17, 35, 17, 3,199, 58,105, 99, 97, 49, 93,146,101, 53,186,105,123, 45, 90, 94,102, 56,186,186,176,166, 1,176, 22, 34, 22, 12, - 49, 94,139, 89, 2, 71,253,209,115,116, 10, 20, 30, 20, 2,198,250, 74,254,127, 2, 39, 0, 1, 0,154,254,131, 3,254, 4, 74, - 0, 28, 0, 64, 64, 37, 27, 71, 24, 24, 20, 28, 71, 23, 85, 30, 16, 30, 96, 30,128, 30, 3, 13, 71, 10, 84, 29, 25,251, 20, 15, - 80, 5, 5, 11, 27, 80, 24, 21, 21, 11, 15, 0, 63, 51, 63,225, 18, 57, 47,225, 51, 63, 1, 16,246,225, 93, 16,246,225, 50, 50, - 47,225, 49, 48, 1, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 51, 50, 62, 2, 55, 17, 51, 17, 35, 17, 35, 17, 51, 3, 72, 44, - 80, 85, 94, 58, 78,122, 82, 43,182,184, 45, 80, 76, 77, 42,182,160,182,160, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1,166,254, -102,174, 15, 28, 43, 29, 1,213,251,182,254,131, 2, 23, 0, 1, 0,199,254,127, 6,242, 5,182, 0, 31, 0,154,182, 54, 31, 1, - 57, 0, 1, 31,184,255,248, 64, 44, 12, 15, 72, 31, 0, 8, 12, 15, 72, 0, 13, 13, 12, 16, 9, 18, 19, 19, 14, 8, 12, 15, 72, - 57, 14, 1, 14, 29, 21, 90, 20, 17, 16, 33, 32, 33,192, 33, 2, 15, 33, 1, 8, 11,184,255,248, 64, 16, 12, 15, 72, 38, 11, 1, - 11, 2, 8, 90, 9,100, 32, 16, 95, 12,184,255,240, 64, 22, 9, 18, 72, 0, 9, 12, 3, 21, 18, 18,251, 30, 1, 1, 16, 9, 18, - 72, 1, 14, 10, 3, 0, 63, 51, 51, 43, 17, 51, 63, 63, 23, 51, 43,225, 1, 16,246,225, 50, 50, 93, 43, 94, 93, 93, 16,212, 50, - 50,225, 50, 50, 93, 43, 57, 47, 51, 17, 18, 57, 57, 17, 51, 43, 51, 43, 49, 48, 93, 93, 33, 1, 35, 22, 23, 22, 22, 21, 17, 35, - 17, 33, 1, 51, 1, 33, 17, 51, 3, 35, 19, 35, 17, 52, 62, 2, 55, 54, 55, 35, 1, 3, 35,254, 69, 8, 5, 4, 4, 6,172, 1, - 20, 1,156, 6, 1,158, 1, 20,195,144,217,166,186, 1, 2, 2, 2, 3, 4, 8,254, 65, 5, 0, 74, 73, 63,139, 57,252,150, 5, -182,251, 88, 4,168,250,240,253,217, 1,129, 3,119, 25, 61, 65, 66, 30, 71, 73,251, 2, 0, 1, 0,174,254,131, 5,199, 4, 74, - 0, 36, 0,135, 64, 90, 8, 7, 24, 24, 16, 32, 34, 35, 35, 30, 0, 70, 36, 33,175, 32,191, 32, 2, 32, 38,224, 38, 1,207, 38, - 1, 48, 38, 64, 38, 80, 38,160, 38, 4, 15, 38, 1, 6, 18, 15, 70, 16, 84, 37, 34,251, 1, 59, 14, 75, 14, 91, 14, 3, 11, 14, - 27, 14, 43, 14, 3, 14, 14, 30, 17, 15, 32, 80, 52, 24, 68, 24, 84, 24, 3, 5, 24, 21, 24, 37, 24, 3, 8, 16, 24, 3, 0, 21, - 0, 63, 23, 50, 93, 93,225, 63, 51, 51, 47, 93, 93, 51, 63, 1, 16,246,225, 50, 94, 93, 93, 93, 93, 16,212, 93, 50, 50,225, 50, - 57, 47, 51, 17, 18, 57, 17, 51, 51, 49, 48, 33, 17, 14, 3, 7, 1, 35, 1, 46, 3, 39, 17, 35, 17, 51, 1, 30, 3, 23, 62, 3, - 55, 1, 51, 17, 51, 3, 35, 19, 4,111, 6, 17, 20, 18, 7,254,248,135,254,247, 5, 17, 20, 18, 7,162,221, 1, 11, 13, 22, 19, - 14, 5, 6, 14, 19, 22, 13, 1, 14,217,183,123,182,122, 3,129, 21, 57, 59, 54, 18,253, 80, 2,176, 13, 49, 59, 62, 26,252,127, - 4, 74,253, 71, 34, 67, 60, 50, 16, 17, 49, 59, 65, 33, 2,189,252, 80,253,233, 1,125,255,255, 0, 82, 0, 0, 2,100, 5,182, - 2, 6, 0, 44, 0, 0,255,255, 0, 0, 0, 0, 4,221, 7,105, 2, 38, 0, 36, 0, 0, 1, 7, 2, 54, 0, 33, 1, 82, 0, 19, - 64, 11, 2, 26, 5, 38, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 94,255,236, 3,161, 6, 23, 2, 38, - 0, 68, 0, 0, 1, 6, 2, 54,212, 0, 0, 19, 64, 11, 2, 56, 17, 38, 2, 37, 61, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 0, 0, 0, 4,221, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 33, 1, 82, 0, 23, 64, 13, 3, 2, 30, 5, - 38, 3, 2, 1, 21, 41, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 5,217, 2, 38, 0, 68, - 0, 0, 1, 6, 0,106,222, 0, 0, 23, 64, 13, 3, 2, 60, 17, 38, 3, 2, 47, 51, 71, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255,255,254, 0, 0, 6, 86, 5,182, 2, 6, 0,136, 0, 0,255,255, 0, 94,255,236, 6, 68, 4, 94, 2, 6, 0,168, - 0, 0,255,255, 0,199, 0, 0, 3,200, 7,105, 2, 38, 0, 40, 0, 0, 1, 7, 2, 54,255,251, 1, 82, 0, 19, 64, 11, 1, 17, - 5, 38, 1, 6, 22, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6, 23, 2, 38, 0, 72, 0, 0, - 1, 6, 2, 54,234, 0, 0, 19, 64, 11, 2, 45, 17, 38, 2, 15, 50, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,113, -255,236, 5, 18, 5,205, 0, 30, 0, 41, 0, 73, 64, 47, 36, 26, 91, 14,103, 43, 15, 43,143, 43,175, 43,191, 43, 4, 43, 64, 11, - 15, 72, 37, 91, 3, 25,102, 42, 37, 95, 47, 25, 95, 25,127, 25, 3, 25, 25, 9, 31, 95, 19, 19, 3, 0, 95, 9, 4, 0, 63,225, - 51, 63,225, 17, 57, 47, 93,225, 1, 16,246, 50,225, 43, 93, 16,246,225, 50, 49, 48, 1, 34, 6, 7, 53, 62, 3, 51, 50, 22, 22, - 18, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 53, 33, 46, 3, 3, 50, 62, 2, 55, 33, 20, 30, 2, 2,121,128,207, 91, 42, 90, -105,125, 76,160,244,165, 84, 81,157,232,150,153,215,135, 62, 3,219, 7, 64,115,169, 67, 91,149,109, 66, 7,252,237, 38, 85,140, - 5, 41, 44, 32,170, 15, 26, 19, 10,108,198,254,233,171,174,254,235,194,104,107,196, 1, 21,171, 70,122,193,134, 71,251,102, 65, -126,185,120,117,184,127, 68, 0, 0, 2, 0,102,255,236, 3,215, 4, 94, 0, 30, 0, 39, 0, 67, 64, 41, 34, 17, 72, 5, 87, 41, -176, 41, 1, 63, 41, 1, 35, 72, 25, 16, 86, 40, 35, 80,159, 16,175, 16,207, 16,223, 16, 4, 16, 16, 0, 31, 80, 10, 22, 25, 20, - 81, 0, 16, 0, 63,225, 51, 63,225, 17, 57, 47, 93,225, 1, 16,246, 50,225, 93, 93, 16,246,225, 50, 49, 48, 1, 50, 30, 2, 21, - 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 38, 38, 35, 34, 14, 2, 7, 53, 62, 3, 19, 50, 54, 55, 33, 20, 30, 2, 1,231,110,182, -131, 73, 66,120,167,102, 99,158,110, 59, 2,181, 5,154,151, 51, 87, 80, 76, 39, 40, 76, 81, 87, 96,115,133, 11,254, 20, 27, 57, - 88, 4, 94, 74,142,210,135,136,214,149, 78, 71,129,181,110,113,192,182, 10, 19, 28, 18,161, 19, 28, 18, 9,252, 37,156,149, 68, -113, 80, 44, 0,255,255, 0,113,255,236, 5, 18, 7, 43, 2, 38, 2,225, 0, 0, 1, 7, 0,106, 0, 70, 1, 82, 0, 25,182, 3, - 2, 51, 5, 38, 3, 2,184,255,211,180, 42, 62, 24, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,102,255,236, 3,215, - 5,217, 2, 38, 2,226, 0, 0, 1, 6, 0,106,196, 0, 0, 25,182, 3, 2, 49, 17, 38, 3, 2,184,255,244,180, 40, 60, 15, 5, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 4, 0, 0, 6,129, 7, 43, 2, 38, 1,176, 0, 0, 1, 7, 0,106, 0,244, - 1, 82, 0, 23, 64, 13, 2, 1, 27, 5, 38, 2, 1, 0, 18, 38, 17, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 4, - 0, 0, 5,190, 5,217, 2, 38, 1,208, 0, 0, 1, 7, 0,106, 0,145, 0, 0, 0, 25,182, 2, 1, 27, 17, 38, 2, 1,184,255, -255,180, 18, 38, 14, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 72,255,236, 3,236, 7, 43, 2, 38, 1,177, 0, 0, - 1, 7, 0,106,255,191, 1, 82, 0, 25,182, 2, 1, 67, 5, 38, 2, 1,184,255,244,180, 58, 78, 19, 11, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0, 68,255,236, 3, 82, 5,217, 2, 38, 1,209, 0, 0, 1, 7, 0,106,255, 85, 0, 0, 0, 25,182, 2, - 1, 67, 17, 38, 2, 1,184,255,217,180, 58, 78, 41, 33, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0, 72,255,236, 3,236, - 5,182, 0, 32, 0,114, 64, 45, 0, 91, 27, 28, 91, 32, 32, 64, 16, 24, 72, 29, 27, 32, 32, 27, 29, 3, 13, 22, 91, 5,103, 34, -159, 34, 1,112, 13,128, 13, 2, 63, 13, 79, 13, 95, 13, 3, 13, 32, 29, 95, 30, 27,184,255,240, 64, 24, 7, 13, 72, 27, 25,170, - 0, 1,120, 0, 1, 15, 0, 1, 8, 0, 0, 30, 3, 19, 96, 14, 10, 19, 0, 63, 51,225, 63, 57, 47, 94, 93, 93, 93, 51, 51, 43, - 16,225, 50, 1, 47, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 43, 16,225, 16,225, 49, 48, 1, 30, 3, 21, 20, 14, 2, 35, - 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, 35, 53, 1, 33, 53, 33, 21, 1,244,115,186,132, 71, 67,136,205,137,110,192, - 85, 43, 96, 99, 99, 46,178,176,207,186,123, 1,166,253,166, 3, 61, 3, 59, 5, 53,100,151,102, 96,160,116, 64, 34, 45,170, 23, - 36, 24, 13,148,135,135,129,151, 1,209,166,145, 0, 1, 0, 27,254, 20, 3,117, 4, 74, 0, 36, 0,100, 64, 62, 0, 74, 31, 32, - 74, 36, 36, 64, 19, 24, 72, 33, 31, 36, 36, 31, 33, 3, 13, 24, 71, 5, 87, 38,111, 38,159, 38, 2, 48, 38, 1, 15, 38, 1, 7, - 13, 64, 12, 17, 72, 13, 36, 33, 80, 34, 31, 29, 0, 32, 9, 12, 72, 0, 0, 34, 15, 19, 80, 14, 10, 27, 0, 63, 51,225, 63, 57, - 47, 43, 51, 51, 16,225, 50, 1, 47, 43, 94, 93, 93, 93, 16,246,225, 18, 23, 57, 47, 47, 47, 43, 16,225, 16,225, 49, 48, 1, 30, - 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 1, 33, 53, 33, 21, 1,168, 95,168, -125, 73, 71,132,186,115,115,181, 58, 31, 78, 91,102, 54, 71,119, 86, 48, 55, 99,139, 84,109, 1,146,253,198, 3, 6, 1,213, 7, - 65,117,166,108,110,183,132, 73, 36, 34,166, 16, 31, 24, 15, 46, 87,125, 78, 86,125, 82, 39,125, 1,237,154,133,255,255, 0,201, - 0, 0, 5, 16, 6,193, 2, 38, 1,178, 0, 0, 1, 7, 1, 77, 0,176, 1, 82, 0, 21,180, 1, 26, 5, 38, 1,184,255,254,180, - 24, 25, 0, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,174, 0, 0, 4, 59, 5,111, 2, 38, 1,210, 0, 0, 1, 6, 1, 77, - 57, 0, 0, 21,180, 1, 14, 17, 38, 1,184,255,255,180, 12, 13, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,201, 0, 0, - 5, 16, 7, 43, 2, 38, 1,178, 0, 0, 1, 7, 0,106, 0,156, 1, 82, 0, 25,182, 2, 1, 33, 5, 38, 2, 1,184,255,254,180, - 24, 44, 0, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,174, 0, 0, 4, 59, 5,217, 2, 38, 1,210, 0, 0, 1, 6, - 0,106, 37, 0, 0, 25,182, 2, 1, 21, 17, 38, 2, 1,184,255,255,180, 12, 32, 10, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 0, 50, 0, 0, 1, 7, 0,106, 0,170, 1, 82, 0, 23, 64, 13, 3, 2, 49, 5, - 38, 3, 2, 1, 40, 60, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, 2, 38, 0, 82, - 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 41, 17, 38, 3, 2,184,255,249,180, 32, 52, 10, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, 5,205, 2, 6, 2,126, 0, 0,255,255, 0,113,255,236, 4, 45, 4, 94, 2, 6, - 2,127, 0, 0,255,255, 0,125,255,236, 5,113, 7, 43, 2, 38, 2,126, 0, 0, 1, 7, 0,106, 0,170, 1, 82, 0, 23, 64, 13, - 4, 3, 51, 5, 38, 4, 3, 1, 42, 62, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 5,217, - 2, 38, 2,127, 0, 0, 1, 6, 0,106, 0, 0, 0, 23, 64, 13, 4, 3, 43, 17, 38, 4, 3, 0, 34, 54, 10, 0, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 59,255,236, 4, 68, 7, 43, 2, 38, 1,199, 0, 0, 1, 7, 0,106,255,151, 1, 82, 0, 25, -182, 2, 1, 46, 5, 38, 2, 1,184,255,166,180, 37, 57, 4, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 55,255,236, - 3, 66, 5,217, 2, 38, 1,231, 0, 0, 1, 7, 0,106,255, 56, 0, 0, 0, 25,182, 2, 1, 48, 17, 38, 2, 1,184,255,202,180, - 39, 59, 3, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 25,255,236, 4,174, 6,193, 2, 38, 1,189, 0, 0, 1, 7, - 1, 77, 0, 39, 1, 82, 0, 21,180, 1, 36, 5, 38, 1,184,255,254,180, 34, 35, 19, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 10,254, 20, 3,223, 5,111, 2, 38, 0, 92, 0, 0, 1, 6, 1, 77,187, 0, 0, 19, 64, 11, 1, 37, 17, 38, 1, 1, 35, 36, - 0, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 25,255,236, 4,174, 7, 43, 2, 38, 1,189, 0, 0, 1, 7, 0,106, 0, 18, - 1, 82, 0, 25,182, 2, 1, 43, 5, 38, 2, 1,184,255,253,180, 34, 54, 19, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0, 10,254, 20, 3,223, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106,167, 0, 0, 23, 64, 13, 2, 1, 44, 17, 38, 2, 1, 1, - 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 25,255,236, 4,174, 7,115, 2, 38, 1,189, 0, 0, 1, 7, - 1, 83, 0,102, 1, 82, 0, 23, 64, 13, 2, 1, 46, 5, 38, 2, 1, 81, 34, 54, 19, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 10,254, 20, 3,223, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 1, 83, 0, 0, 0, 23, 64, 13, 2, 1, 47, 17, 38, 2, - 1, 90, 35, 55, 0, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,166, 0, 0, 4,129, 7, 43, 2, 38, 1,193, 0, 0, - 1, 7, 0,106, 0, 84, 1, 82, 0, 23, 64, 13, 2, 1, 31, 5, 38, 2, 1, 15, 22, 42, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0,154, 0, 0, 3,254, 5,217, 2, 38, 1,225, 0, 0, 1, 6, 0,106, 6, 0, 0, 23, 64, 13, 2, 1, 34, 17, - 38, 2, 1, 8, 25, 45, 23, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,199,254,127, 3,190, 5,182, 0, 9, 0,100, - 64, 11, 20, 0, 1,228, 0, 1,208, 0, 1, 2, 0,184,255,192, 64, 53, 8, 19, 72, 0, 0, 11, 47, 11, 79, 11,111, 11,143, 11, - 4, 11, 64, 17, 24, 72, 7, 90,191, 4,207, 4, 2,132, 4, 1, 15, 4, 31, 4, 2, 7, 4, 4, 3, 90, 8,100, 10, 2, 95, 9, - 3, 3, 95, 7, 18, 6,251, 0, 63, 63,225, 63,225, 1, 16,246,225, 50, 47, 94, 93, 93, 93,225, 43, 93, 17, 51, 47, 43, 95, 93, - 93,113, 49, 48, 1, 21, 33, 17, 51, 17, 35, 17, 35, 17, 3,190,253,195,176,176,186, 5,182,166,251,150,253,217, 1,129, 5,182, - 0, 1, 0,174,254,131, 3, 10, 4, 74, 0, 9, 0, 78, 64, 50, 32, 2, 48, 2, 2, 2, 2, 11,192, 11, 1,161, 11, 1,112, 11, - 1, 9, 71,191, 6,207, 6, 2,132, 6, 1, 15, 6, 31, 6, 2, 7, 6, 6, 5, 71, 0, 84, 10, 5, 80, 9, 21, 8,251, 4, 80, - 1, 15, 0, 63,225, 63, 63,225, 1, 16,246,225, 50, 47, 94, 93, 93, 93,225, 93, 93, 93, 17, 51, 47, 93, 49, 48, 51, 17, 33, 21, - 33, 17, 51, 17, 35, 17,174, 2, 92,254, 90,160,182, 4, 74,154,252,234,253,233, 1,125,255,255, 0,199, 0, 0, 5,207, 7, 43, - 2, 38, 1,197, 0, 0, 1, 7, 0,106, 0,252, 1, 82, 0, 23, 64, 13, 4, 3, 39, 5, 38, 4, 3, 0, 30, 50, 6, 28, 37, 1, - 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,174, 0, 0, 5, 80, 5,217, 2, 38, 1,229, 0, 0, 1, 7, 0,106, 0,176, 0, 0, - 0, 23, 64, 13, 4, 3, 39, 17, 38, 4, 3, 0, 30, 50, 10, 13, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 47,254,109, - 3,190, 5,182, 2, 38, 2,155, 0, 0, 1, 7, 3,128, 0,166, 0, 0, 0, 10,179, 1, 31, 31, 7, 1, 16, 60, 17, 53,255,255, - 0, 18,254,109, 3, 10, 4, 74, 2, 38, 2,156, 0, 0, 1, 7, 3,129, 0,137, 0, 0, 0, 10,179, 1, 31, 31, 13, 1, 16, 60, - 17, 53,255,255, 0, 0,254,109, 4,154, 5,182, 0, 38, 0, 59, 0, 0, 1, 7, 3,128, 3, 35, 0, 0, 0, 23,177, 1, 29,184, -255,192,178, 19, 21, 72,184,255,158,180, 29, 29, 0, 0, 37, 1, 43, 43, 53, 0,255,255, 0, 35,254,109, 4, 17, 4, 74, 0, 38, - 0, 91, 0, 0, 1, 7, 3,129, 2,154, 0, 0, 0, 18,179, 1, 80, 29, 1,184,255,154,180, 29, 29, 7, 7, 37, 1, 43, 93, 53, - 0, 1, 0, 0, 0, 0, 4, 96, 5,182, 0, 17, 0,178, 64, 39, 70, 15, 86, 15, 2, 73, 9, 89, 9, 2, 54, 0, 1, 57, 6, 1, - 6, 9, 15, 0, 4, 12, 3, 3, 1, 48, 17, 1, 63, 7, 1, 7, 17, 7, 17, 5, 1, 11, 10,184,255,240,179, 10, 10, 4, 5,184, -255,240, 64, 20, 5, 13, 14, 16, 14, 14, 2, 1, 16, 0, 1, 1,112, 1,128, 1,192, 1, 3, 1,184,255,192, 64, 39, 7, 10, 72, - 1, 1, 19, 15, 19, 31, 19, 47, 19,127, 19, 4, 8, 0, 6, 95, 15, 9, 40, 3, 1, 39, 12, 1, 3, 12, 10, 9, 9, 1, 13, 10, - 3, 5, 1, 18, 0, 63, 51, 63, 51, 18, 57, 47, 17, 57, 57, 93, 93, 17, 51,225, 50, 1, 94, 93, 17, 51, 47, 43, 93,113, 56, 51, - 51, 47, 56, 51, 47, 56, 51, 51, 47, 56, 51, 17, 18, 57, 57, 47, 47, 93, 93, 17, 57, 61, 47, 51, 23, 51, 93, 93, 93, 93, 49, 48, - 1, 1, 35, 1, 1, 35, 1, 33, 53, 33, 1, 51, 1, 1, 51, 1, 33, 21, 2,197, 1,155,211,254,158,254,145,188, 1,154,254,223, - 1, 20,254,146,198, 1, 76, 1, 78,190,254,142, 1, 28, 2,180,253, 76, 2,123,253,133, 2,180,164, 2, 94,253,209, 2, 47,253, -162,164, 0, 1, 0, 35, 0, 0, 3,219, 4, 74, 0, 17, 1, 23, 64,191,128, 8,144, 8, 2, 8, 0, 8, 0, 11, 15, 6, 5, 1, -247, 5, 1,229, 5, 1, 54, 5, 1, 5, 6, 7, 10, 10, 4, 13, 1, 16, 16, 13, 9, 3, 1,248, 3, 1,234, 3, 1, 57, 3, 1, - 3, 2,107, 6,123, 6, 2, 87, 6, 1, 58, 6, 74, 6, 2,100, 2,116, 2, 2, 88, 2, 1, 53, 2, 69, 2, 2, 6, 2, 13, 2, - 13, 6, 3, 15, 6, 12, 1,247, 12, 1,229, 12, 1, 54, 12, 1, 12, 11, 64, 22, 25, 72, 11, 64, 14, 17, 72,107, 11,123, 11, 2, - 87, 11, 1, 58, 11, 74, 11, 2, 11, 11, 19, 16, 19, 48, 19, 2,144, 19,176, 19, 2, 15, 19, 1, 9, 14, 1,248, 14, 1,234, 14, - 1, 57, 14, 1, 14,107, 15,123, 15, 2, 88, 15, 1, 53, 15, 69, 15, 2, 15, 13, 10, 16, 79, 4, 7,239, 1, 1, 11, 1, 27, 1, - 43, 1, 91, 1,107, 1, 5, 6, 1, 1, 2, 15, 11, 21, 5, 2, 15, 0, 63, 51, 63, 51, 18, 57, 47, 94, 93, 93, 51, 51,225, 50, - 50, 1, 47, 93, 93, 93,193, 93, 93, 93,113, 93, 93,113, 16,206, 47, 93, 93, 93, 43, 43,193, 93, 93, 93,113, 18, 23, 57, 61, 47, - 24, 47, 47, 93, 93, 93, 93, 93, 93, 16,193, 93, 93, 93,113, 17, 51, 17, 51, 17, 51, 51, 17, 51, 16,193, 93, 93, 93,113, 17, 18, - 57, 57, 47, 47, 93, 49, 48, 19, 33, 1, 51, 19, 19, 51, 1, 33, 21, 33, 1, 35, 1, 1, 35, 1, 33,104, 1, 0,254,207,207,250, -250,207,254,205, 1, 4,254,247, 1, 74,207,254,244,254,242,207, 1, 74,254,251, 2,123, 1,207,254,102, 1,154,254, 49,137,254, - 14, 1,180,254, 76, 1,242, 0, 0, 2, 0,137, 0, 0, 3,246, 5,182, 0, 14, 0, 25, 0, 64, 64, 41, 6, 25, 90, 9,101, 27, -159, 27, 1, 16, 27, 1, 21, 91, 0,102, 26, 15, 95, 63, 6, 79, 6,111, 6,159, 6,191, 6,223, 6, 6, 6, 6, 7, 25, 95, 9, - 18, 7, 3, 0, 63, 63,225, 17, 57, 47, 93,225, 1, 16,246,225, 93, 93, 16,246,225, 50, 49, 48, 19, 52, 62, 2, 51, 51, 17, 51, - 17, 33, 34, 46, 2, 1, 35, 34, 14, 2, 21, 20, 22, 51, 51,137, 55,127,207,152,149,187,254,149,134,194,126, 60, 2,178,129, 93, -138, 91, 46,163,175,159, 1,172, 87,152,113, 66, 2,104,250, 74, 61,112,158, 1, 95, 27, 60, 97, 70,136,132, 0,255,255, 0,113, -255,236, 4, 2, 6, 20, 2, 6, 0, 71, 0, 0, 0, 2, 0,137,255,236, 6, 59, 5,182, 0, 35, 0, 50, 0, 99, 64, 63, 24, 9, - 50, 90, 26, 26, 17, 34, 90, 1,101, 52, 15, 52, 1,111, 52,159, 52,239, 52, 3, 64, 52, 80, 52, 2, 15, 52, 1, 6, 42, 91, 17, -102, 51, 36, 95, 23, 35, 35, 63, 23, 79, 23,111, 23,191, 23,223, 23, 5, 23, 23, 24, 3, 29, 45, 96, 9, 6, 14, 19, 0, 63, 51, - 51,225, 50, 63, 57, 47, 93, 51, 47, 16,225, 1, 16,246,225, 94, 93, 93, 93,113, 16,246,225, 17, 57, 47,225, 57, 50, 49, 48, 1, - 17, 20, 14, 2, 35, 34, 38, 39, 14, 3, 35, 34, 38, 53, 52, 62, 2, 51, 51, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 5, 35, - 34, 14, 2, 21, 20, 22, 51, 50, 62, 2, 53, 6, 59, 45, 91,140, 94,114,153, 43, 24, 63, 82,103, 63,215,228, 65,138,215,150,122, -187,103, 97, 44, 72, 51, 28,253,186,129, 93,139, 91, 45,126,134, 67, 91, 56, 23, 3, 80,254, 24, 81,139,102, 58, 97, 77, 38, 63, - 46, 25,210,214,103,163,114, 60, 2,104,251,178,112,105, 30, 57, 80, 50, 1,232,166, 30, 67,107, 77,128,130, 37, 62, 77, 41, 0, - 0, 2, 0,113,255,236, 6, 90, 6, 20, 0, 50, 0, 67, 0, 92, 64, 57, 16, 44, 56, 71, 80, 46, 1, 46, 46, 27, 3, 71, 6, 85, - 69,111, 69,127, 69,159, 69,207, 69,239, 69, 5, 64, 69, 1, 15, 69, 47, 69, 2, 6, 65, 72, 27, 86, 68, 4, 4, 51, 62, 80, 37, - 32, 16, 44, 0, 0, 51, 80, 16, 11, 22, 22, 0, 63, 51, 51,225, 50, 63, 63, 51,225, 18, 57, 47, 1, 16,246,225, 94, 93, 93, 93, - 16,246,225, 17, 57, 47, 93,225, 50, 57, 49, 48, 37, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 39, 35, 14, 3, 35, 34, - 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 30, 3, 33, 50, 62, 2, 55, 53, 52, 46, 2, 35, - 34, 6, 21, 20, 22, 4,211,111, 98,182, 47, 92,139, 91, 65,103, 81, 61, 23, 6, 27, 68, 91,121, 81, 93,154,110, 60, 60,110,154, - 93, 59, 96, 77, 59, 23, 12, 3, 3, 2, 4,182, 1, 15, 44, 81,253,166, 76,105, 65, 31, 2, 27, 65,108, 81,135,127,127,131,130, -130, 1, 53,254,193,105,152, 98, 46, 30, 54, 74, 44, 41, 74, 55, 32, 72,143,212,140,141,213,144, 73, 26, 44, 58, 32, 34, 31, 26, - 54, 17, 1,180,251,146, 62,106, 78, 45, 46, 94,140, 95, 41,101,157,107, 55,218,204,209,205, 0, 0, 1, 0, 78,255,236, 6, 68, - 5,203, 0, 63, 0,133, 64, 86, 13, 91, 32, 0, 91, 43, 37, 32, 7, 32, 43, 43, 32, 7, 3, 22, 51, 90, 54,101, 65,127, 65,143, - 65,159, 65,239, 65,255, 65, 5, 0, 65, 32, 65, 48, 65, 3,112, 22,128, 22, 2, 63, 22, 79, 22, 2, 22, 22, 64, 37, 6, 96, 7, - 0, 52, 1, 52, 52,223, 7, 1,170, 7, 1,120, 7, 1, 15, 7, 1, 8, 7, 7, 27, 48, 95, 59, 19, 21, 18, 96, 27, 4, 0, 63, -225, 51, 63,225, 17, 57, 47, 94, 93, 93, 93, 93, 51, 47, 93, 16,225, 57, 17, 1, 51, 47, 93, 93, 93, 93, 16,246,225, 17, 23, 57, - 47, 47, 47, 18, 57, 16,225, 16,225, 49, 48, 1, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, - 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 3, - 41, 53,101,146, 93,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116,131, 71,109,166,113, 57, 51, 91,125, 75, - 87,138, 94, 50, 24, 50, 79, 55,111, 98,183, 56,102,145, 89, 87,148,108, 60, 1,135, 77,109, 70, 33,151, 39, 72,100, 62, 54, 83, - 58, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 79, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72, 74,104, 65, 30,119,129, 1,201, -254, 45,105,152, 98, 46, 47,100,156, 0, 0, 1, 0, 80,255,236, 5,162, 4, 94, 0, 59, 0,129, 64, 35, 21, 71, 0, 32, 70, 49, - 54, 49, 25, 0, 49, 25, 25, 49, 0, 3, 39, 8, 71, 11, 85, 61, 15, 61, 1,208, 61, 1,191, 61, 1, 48, 61, 1, 39,184,255,192, - 64, 41, 18, 21, 72, 95, 39, 1, 39, 39, 60, 54, 25, 80, 26, 9, 9,223, 26, 1,153, 26,169, 26, 2, 11, 26, 27, 26, 2, 7, 26, - 26, 5, 38, 35, 80, 44, 16, 5, 80, 16, 22, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 51, 47, 16,225, 57, 17, 1, 51, - 47, 93, 43, 93, 93, 93,113, 16,246,225, 17, 23, 57, 47, 47, 47, 17, 18, 57, 16,225, 16,225, 49, 48, 1, 20, 30, 2, 51, 50, 54, - 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 62, 3, 51, - 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 3, 82, 21, 49, 80, 59,105, 96,182, 47, 95,143, 96, 92,144,100, 53,133,138,129, 97, - 61,100, 72, 39,115,108, 71,129, 75, 63, 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 50, 83, 60, 34, 1, 76, 39, 73, 56, - 33,130,130, 1, 53,254,193,105,152, 98, 46, 43, 84,123, 79, 94, 91,153, 18, 39, 64, 45, 77, 77, 38, 34,147, 19, 29, 19, 9, 38, - 74,109, 70, 50, 77, 59, 41, 14, 11, 9, 41, 62, 82, 0, 0, 1, 0, 78,254,127, 4,156, 5,203, 0, 49, 0,131, 64, 84, 15, 91, - 39, 9, 34, 9, 34, 9, 24, 1, 90,112, 46,128, 46, 2, 46, 46, 0, 90, 47, 47, 51, 0, 51, 1,192, 51,208, 51, 2,159, 51, 1, - 0, 51, 32, 51, 48, 51, 3,112, 24,128, 24, 2, 63, 24, 79, 24, 2, 24, 24, 50, 48,251, 39, 8, 96,223, 9, 1,170, 9, 1,120, - 9, 1, 15, 9, 1, 8, 9, 9, 1, 23, 20, 96, 29, 4, 46, 95, 1, 18, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 93, -225, 57, 63, 17, 1, 51, 47, 93, 93, 93, 93, 93,113, 17, 51, 47,225, 50, 47, 93,225, 18, 57, 57, 47, 47, 18, 57,225, 49, 48, 33, - 35, 17, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, - 21, 30, 3, 21, 21, 51, 17, 35, 3,236,187, 56,103,149, 93,191,176, 92,142, 97, 50, 37, 68, 95, 58,110,169, 75, 92, 38, 98,116, -131, 71,109,166,113, 57, 51, 91,125, 75, 87,138, 94, 50,176,176, 1,160, 67,100, 65, 32,151, 39, 72,100, 62, 54, 83, 58, 30, 67, - 54,125, 31, 54, 41, 24, 54, 97,133, 79, 74,119, 88, 57, 12, 6, 11, 57, 89,119, 72,250,253,217, 0, 1, 0, 80,254,131, 3,242, - 4, 94, 0, 45, 0,141, 64, 26, 12, 70, 29, 34, 29, 6, 29, 6, 29, 19, 0, 71, 41, 41, 45, 71, 32, 42, 48, 42, 64, 42, 96, 42, - 4, 42,184,255,192, 64, 14, 15, 19, 72, 42, 42, 47,192, 47,208, 47,224, 47, 3, 19,184,255,192, 64, 45, 18, 21, 72, 95, 19, 1, - 19, 19, 46, 43,251, 34, 5, 80,223, 6, 1,153, 6,169, 6, 2, 79, 6, 95, 6, 2, 11, 6, 27, 6, 2, 7, 6, 6, 0, 18, 15, - 80, 24, 16, 41, 80, 0, 21, 0, 63,225, 63,225, 51, 18, 57, 47, 94, 93, 93, 93, 93,233, 57, 63, 17, 1, 51, 47, 93, 43, 93, 17, - 51, 47, 43, 93,225, 50, 47,225, 18, 57, 57, 47, 47, 18, 57, 16,225, 49, 48, 33, 17, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, - 38, 35, 34, 6, 7, 39, 62, 3, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 21, 51, 17, 35, 17, 2,156,129,138,129, 97, - 61,100, 72, 39,115,108, 71,129, 75, 63, 40, 77, 82, 90, 53, 86,144,105, 58, 28, 51, 70, 43, 44, 82, 63, 38,160,183, 1, 43, 94, -101,153, 18, 39, 64, 45, 77, 77, 38, 34,147, 19, 29, 19, 9, 38, 74,109, 70, 50, 77, 59, 41, 14, 11, 14, 44, 66, 91, 61,145,253, -233, 1,125, 0, 0, 1, 0, 0,255,233, 6,236, 5,182, 0, 49, 0,146, 64,101,215, 6,231, 6, 2, 6, 7, 1, 1,215, 1,247, - 1, 2, 1, 90, 28, 23, 16, 16, 24, 72,139, 23, 1, 23, 16, 7, 14, 72, 23, 28, 49, 90, 30,176, 30, 1,224, 28, 1,180, 28,196, - 28,212, 28, 3, 0, 28, 80, 28,144, 28,160, 28, 4, 7, 28, 30, 28, 30, 14, 36, 90, 39,101, 51, 79, 51,111, 51,127, 51,159, 51, -175, 51,223, 51, 6, 32, 51, 1, 15, 51, 1, 14, 37, 37, 18, 1, 95, 28, 3, 33, 18, 96, 44, 11, 19, 0, 63, 51,225, 50, 63,225, - 18, 57, 47, 1, 47, 93, 93, 93, 16,246,225, 17, 57, 57, 47, 47, 94, 93, 93, 93, 93, 16,225, 17, 51, 43, 93, 43, 16,225, 93,113, - 50, 93, 49, 48, 1, 33, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 17, 20, 22, - 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 3,217,254,133, 15, 32, 33, 33, 16, 20, 53, 79,110, 78, 35, 74, 28, - 23, 58, 32, 48, 62, 42, 26, 12, 12, 32, 39, 43, 22, 2,208, 99,110,111, 98,183, 56,102,145, 89, 87,146,104, 58, 5, 18,113,245, -235,212, 81,103,162,111, 59, 14, 11,154, 13, 16, 63, 98,117, 54, 57,200, 1, 6, 1, 58,170,251,209,129,119,119,129, 1,201,254, - 45,105,152, 98, 46, 44, 96,153,108, 0, 0, 1, 0, 16,255,236, 6, 0, 4, 74, 0, 40, 0, 92, 64, 57, 1, 70, 17, 40, 71, 19, -160, 19, 1,219, 17, 1,196, 17, 1,144, 17,160, 17, 2, 36, 17, 1, 16, 17, 1, 17, 19, 17, 19, 9, 27, 71, 30, 85, 42,127, 42, -207, 42,239, 42, 3, 9, 28, 28, 12, 1, 80, 17, 15, 24, 12, 79, 35, 6, 22, 0, 63, 51,225, 50, 63,225, 18, 57, 47, 1, 47, 93, - 16,246,225, 17, 57, 57, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 1, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, 22, - 51, 50, 54, 54, 18, 55, 33, 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2,250,254,254, 20, 64, - 95,130, 86, 28, 49, 16, 22, 28, 55, 89, 69, 51, 18, 2, 84, 21, 49, 80, 59,105, 96,182, 47, 95,143, 96, 92,145,102, 54, 3,176, -254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250,253, 61, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, 46, - 98,150,105, 0, 0, 1, 0,199,255,236, 7, 45, 5,182, 0, 29, 0, 92, 64, 55, 27, 19, 90,160, 0, 1, 0, 0, 23, 6, 90, 9, -101, 31,192, 31, 1,175, 31,191, 31, 2, 32, 31, 1, 15, 31, 1, 26, 22, 90, 23,100, 30, 21, 95, 26, 7, 7, 15, 26, 1, 8, 26, - 26, 23, 28, 24, 3, 23, 18, 3, 95, 14, 19, 0, 63,225, 63, 63, 51, 18, 57, 47, 94, 93, 51, 47, 16,225, 1, 16,246,225, 50, 93, - 93, 93, 93, 16,246,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, - 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,213, 98,111,110, 99,182, 56,102,144, 89, 88,145,104, 58,253,102,186,186, 2,154,186, - 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 1, 45,253, 86, 5,182,253,152, 2,104, 0, 1, 0,174, -255,236, 6,139, 4, 74, 0, 31, 0,108, 64, 71, 2, 26, 71, 5, 5, 30, 13, 71, 16, 85, 33, 0, 33, 32, 33, 2, 64, 33, 80, 33, -128, 33,144, 33,176, 33,240, 33, 6, 15, 33, 1, 1, 29, 71, 30, 84, 32, 28, 80, 1, 14, 14,235, 1, 1,169, 1,185, 1, 2, 15, - 1, 31, 1, 47, 1, 3, 6, 1, 1, 30, 3, 31, 15, 30, 21, 10, 80, 21, 22, 0, 63,225, 63, 63, 51, 18, 57, 47, 94, 93, 93, 93, - 51, 47, 16,225, 1, 16,246,225, 50, 93, 93,113, 16,246,225, 17, 57, 47,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 20, 30, 2, 51, - 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 17, 35, 17, 1,100, 2, 33,182, 21, 49, 80, 59,106, 95,182, 47, - 95,143, 96, 91,146,102, 54,253,223,182, 4, 74,254, 57, 1,199,253, 61, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, - 46, 98,150,105,110,254, 23, 4, 74, 0, 0, 1, 0,125,255,236, 5, 82, 5,203, 0, 42, 0, 71, 64, 41, 42, 42, 12, 41, 91, 1, - 20, 64, 9, 14, 72, 20, 20, 1,103, 44,191, 44, 1,112, 44, 1, 31, 91, 12,102, 43, 42, 95, 0, 0, 36, 26, 95, 21, 17, 4, 36, - 95, 7, 19, 0, 63,225, 63, 51,225, 18, 57, 47,225, 1, 16,246,225, 93, 93, 16,230, 50, 47, 43, 16,225, 18, 57, 47, 49, 48, 1, - 33, 21, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 36, 51, 50, 22, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, - 50, 62, 2, 53, 33, 3, 23, 2, 59, 66,142,222,156,157,242,166, 86, 95,182, 1, 11,171,111,204, 88, 72, 36, 83, 88, 93, 46,122, -188,127, 66, 54,112,171,117,108,149, 93, 41,254,136, 2,246, 86,168,254,254,175, 91,105,195, 1, 23,174,172, 1, 22,195,105, 44, - 42,162, 17, 30, 23, 14, 81,152,218,137,130,216,156, 86, 66,119,166,100, 0, 1, 0,113,255,236, 4,123, 4, 94, 0, 40, 0,129, - 64, 90, 40, 40, 12, 39, 71, 1, 20, 64, 12, 17, 72, 20, 20, 1, 87, 42, 20, 42, 36, 42, 2,228, 42,244, 42, 2,208, 42, 1, 2, - 64, 42, 80, 42,128, 42,160, 42,192, 42, 5, 29, 72, 12, 86, 41, 40, 80, 0, 64, 21, 25, 72,203, 0,219, 0,235, 0, 3,169, 0, -185, 0, 2,143, 0,159, 0, 2, 11, 0, 27, 0, 43, 0, 3, 6, 0, 0, 34, 24, 80, 21, 17, 16, 34, 80, 7, 22, 0, 63,225, 63, - 51,225, 18, 57, 47, 94, 93, 93, 93, 93, 43,225, 1, 16,246,225, 93, 95, 93, 93,113, 16,230, 50, 47, 43, 16,225, 18, 57, 47, 49, - 48, 1, 33, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, - 62, 2, 53, 33, 2,123, 2, 0, 57,120,186,129,135,203,136, 68, 76,149,219,143,111,173, 77, 62, 60,148, 91, 97,149,101, 52, 41, - 86,135, 94, 81,116, 74, 35,254,184, 2, 74, 68,130,200,137, 71, 79,147,211,132,130,211,148, 80, 37, 39,141, 29, 41, 58,109,157, - 98, 93,155,112, 62, 45, 80,112, 68, 0, 0, 1, 0, 20,255,236, 4,201, 5,182, 0, 25, 0,101, 64, 47, 6, 90, 9,101, 27, 79, - 27,127, 27,159, 27,175, 27, 4, 0, 27, 1,175, 24,239, 24, 2,132, 24, 1, 24, 24, 0, 90, 19, 64, 21, 1, 15, 21, 1, 8, 21, - 21, 87, 19,103, 19,119, 19, 3, 19,184,255,192, 64, 16, 7, 10, 72, 19, 25, 21, 95, 22, 7, 7, 22, 3, 3, 95, 14, 19, 0, 63, -225, 63, 57, 47, 16,225, 50, 1, 47, 43, 93, 51, 47, 94, 93, 93, 16,225, 50, 47, 93, 93, 93, 93, 16,246,225, 49, 48, 1, 20, 22, - 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 33, 53, 33, 21, 33, 2,113, 98,111,110, 98,183, 56,102,144, 89, - 88,145,105, 58,254, 94, 3,254,254, 95, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 3,149,164,164, - 0, 1, 0, 41,255,236, 4,111, 4, 74, 0, 27, 0,109, 64, 74, 13, 71, 16, 85, 29, 15, 29, 1,207, 29,239, 29,255, 29, 3, 48, - 29, 64, 29, 96, 29, 3, 15, 29, 31, 29, 2, 15, 3, 1,204, 3, 1, 15, 3,191, 3, 2, 6, 3, 3, 5, 71, 26, 96, 0,112, 0, -208, 0, 3, 31, 0, 1, 0, 0, 0, 26, 16, 26, 2, 26, 14, 14, 1, 10, 80, 21, 22, 4, 0, 80, 1, 15, 0, 63,225, 50, 63,225, - 17, 57, 47, 1, 47, 93, 51, 47, 93, 93, 16,225, 50, 47, 94, 93, 93,113, 93, 93, 93,113, 16,246,225, 49, 48, 19, 53, 33, 21, 33, - 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 41, 3, 53,254,193, 21, 49, 80, 59,105, 95,183, - 47, 95,143, 96, 92,146,102, 54, 3,176,154,154,253,215, 65, 98, 65, 32,130,130, 1, 53,254,193,105,152, 98, 46, 46, 98,150,105, - 2, 53, 0, 1, 0,111,255,236, 4, 12, 5,203, 0, 57, 0, 93,180, 19, 91, 52, 26, 0,184,255,192, 64, 46, 23, 26, 72, 0, 26, - 0, 26, 47, 10, 10, 39, 59,159, 59, 1, 32, 91, 47,102, 58, 52, 27, 96,170, 24, 1,120, 24, 1, 15, 24, 1, 8, 24, 24, 5, 35, - 96, 38, 42, 19, 14, 96, 11, 5, 4, 0, 63, 51,225, 63, 51,225, 17, 57, 47, 94, 93, 93, 93,225, 57, 1, 16,246,225, 93, 16,206, - 50, 47, 18, 57, 57, 47, 47, 43, 18, 57,225, 49, 48, 19, 52, 62, 2, 51, 50, 30, 2, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, - 2, 51, 51, 21, 35, 34, 14, 2, 21, 20, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3,156, 59, -115,169,109, 72,123,105, 90, 38, 92, 75,162,103, 57, 95, 68, 38, 44, 87,130, 87,195,191, 93,146,101, 53,170,164,108,204, 83, 83, -192,128,128,195,131, 66, 49, 95,137, 87, 74,120, 84, 45, 4, 96, 79,133, 97, 54, 24, 41, 54, 31,125, 54, 67, 30, 58, 83, 54, 62, -100, 72, 39,151, 33, 67,101, 67,137,142, 49, 43,170, 38, 37, 60,111,156, 96, 72,123, 94, 61, 11, 6, 12, 57, 88,119, 0, 0, 1, - 0, 92,255,236, 3,106, 4, 94, 0, 55, 0,109,180, 50, 70, 30, 1, 35,184,255,192, 64, 61, 23, 26, 72, 35, 1, 35, 1, 24, 43, - 15, 57,208, 57,224, 57,240, 57, 3,143, 57, 1, 64, 57, 1, 5, 71, 24, 86, 56, 29, 2, 80,239, 55, 1,169, 55,185, 55, 2, 15, - 55, 31, 55, 47, 55, 3, 6, 55, 55, 10, 47, 80, 44, 40, 16, 10, 80, 15, 19, 22, 0, 63, 51,225, 63, 51,225, 18, 57, 47, 94, 93, - 93, 93,225, 57, 1, 16,246,225, 93, 93, 93, 16,206, 50, 17, 57, 57, 47, 47, 43, 18, 57,225, 49, 48, 1, 21, 35, 34, 6, 21, 20, - 30, 2, 51, 50, 62, 2, 55, 21, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, - 38, 35, 34, 6, 21, 20, 30, 2, 51, 2,158,129,138,133, 41, 70, 96, 55, 51, 97, 87, 77, 30, 60,175,115,110,162,107, 53, 40, 67, - 89, 48, 43, 73, 53, 30, 58,105,144, 86, 90,162, 80, 63, 75,131, 71,102,109, 38, 68, 95, 57, 2,135,153, 91, 94, 51, 69, 42, 18, - 14, 22, 30, 16,162, 29, 40, 48, 86,120, 71, 61, 91, 64, 41, 13, 11, 14, 41, 59, 77, 50, 70,109, 74, 38, 37, 39,147, 34, 38, 77, - 77, 45, 64, 39, 18, 0,255,255, 0, 0,254,109, 5, 47, 5,182, 2, 38, 1,181, 0, 0, 1, 7, 3,128, 3,184, 0, 0, 0, 13, -180, 1, 1, 49, 49, 0, 1, 16, 60, 17, 53, 0, 53, 0,255,255, 0, 16,254,109, 4, 76, 4, 74, 2, 38, 1,213, 0, 0, 1, 7, - 3,129, 2,213, 0, 0, 0, 13,180, 1, 1, 38, 38, 0, 1, 16, 60, 17, 53, 0, 53, 0,255,255, 0, 0,254,152, 4,221, 5,188, - 2, 38, 0, 36, 0, 0, 1, 7, 2,103, 4,211, 0, 0, 0, 19, 64, 11, 2, 24, 20, 39, 2, 0, 21, 27, 4, 7, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 94,254,152, 3,156, 4, 94, 2, 38, 0, 68, 0, 0, 1, 7, 2,103, 4,111, 0, 0, 0, 19, 64, 11, - 2, 54, 23, 39, 2, 13, 51, 57, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,225, 2, 38, 0, 36, - 0, 0, 1, 7, 2,102, 4,209, 1, 82, 0, 19, 64, 11, 2, 27, 5, 38, 2, 33, 42, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 94,255,236, 3,156, 6,143, 2, 38, 0, 68, 0, 0, 1, 7, 2,102, 4,117, 0, 0, 0, 19, 64, 11, 2, 57, 17, 38, - 2, 54, 72, 51, 12, 34, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,209, 2, 38, 0, 36, 0, 0, 1, 7, - 3,119, 4,203, 1, 82, 0, 25,182, 3, 2, 21, 5, 38, 3, 2,184,255,255,180, 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0, 94,255,236, 4, 71, 6,127, 2, 38, 0, 68, 0, 0, 1, 7, 3,119, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, - 51, 17, 38, 3, 2, 51, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 7,209, 2, 38, - 0, 36, 0, 0, 1, 7, 3,120, 4,203, 1, 82, 0, 25,182, 3, 2, 29, 5, 38, 3, 2,184,255,255,180, 37, 29, 4, 7, 37, 1, - 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 18,255,236, 3,156, 6,127, 2, 38, 0, 68, 0, 0, 1, 7, 3,120, 4,137, 0, 0, - 0, 23, 64, 13, 3, 2, 59, 17, 38, 3, 2, 51, 67, 59, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, - 4,221, 8, 74, 2, 38, 0, 36, 0, 0, 1, 7, 3,121, 4,203, 1, 82, 0, 25,182, 3, 2, 21, 5, 38, 3, 2,184,255,255,180, - 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 4, 6, 6,248, 2, 38, 0, 68, 0, 0, 1, 7, - 3,121, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 51, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 0, 0, 0, 4,221, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,122, 4,203, 1, 82, 0, 25,182, 3, 2, 29, 5, 38, - 3, 2,184,255,255,180, 37, 29, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 16, 2, 38, - 0, 68, 0, 0, 1, 7, 3,122, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 59, 17, 38, 3, 2, 11, 59, 51, 12, 34, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 0,254,152, 4,221, 7,115, 2, 38, 0, 36, 0, 0, 0, 39, 1, 75, 0, 31, 1, 82, 1, 7, - 2,103, 4,211, 0, 0, 0, 37, 64, 16, 3, 45, 20, 39, 2, 21, 5, 38, 3, 0, 42, 48, 4, 7, 37, 2,184,255,255,180, 29, 21, - 4, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0, 94,254,152, 3,156, 6, 33, 2, 38, 0, 68, 0, 0, 0, 38, - 1, 75,212, 0, 1, 7, 2,103, 4,111, 0, 0, 0, 34, 64, 22, 3, 75, 23, 39, 2, 51, 17, 38, 3, 13, 72, 78, 12, 34, 37, 2, - 37, 59, 51, 12, 34, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 0, 0, 0, 4,221, 8, 19, 2, 38, 0, 36, 0, 0, - 1, 7, 3,123, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 38, 5, 38, 3, 2, 0, 41, 33, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0, 94,255,236, 3,156, 6,193, 2, 38, 0, 68, 0, 0, 1, 7, 3,123, 4,123, 0, 0, 0, 23, 64, 13, 3, 2, - 68, 17, 38, 3, 2, 30, 71, 63, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, 8, 19, 2, 38, - 0, 36, 0, 0, 1, 7, 3,124, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 38, 5, 38, 3, 2, 0, 41, 33, 4, 7, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 6,193, 2, 38, 0, 68, 0, 0, 1, 7, 3,124, 4,123, 0, 0, 0, 23, - 64, 13, 3, 2, 68, 17, 38, 3, 2, 30, 71, 63, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,221, - 8, 88, 2, 38, 0, 36, 0, 0, 1, 7, 3,125, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 0, 29, 21, 4, 7, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 6, 2, 38, 0, 68, 0, 0, 1, 7, 3,125, 4,123, - 0, 0, 0, 23, 64, 13, 3, 2, 56, 17, 38, 3, 2, 30, 59, 51, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, - 0, 0, 4,221, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,126, 4,203, 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 0, - 29, 21, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 94,255,236, 3,156, 7, 16, 2, 38, 0, 68, 0, 0, 1, 7, - 3,126, 4,123, 0, 0, 0, 23, 64, 13, 3, 2, 56, 17, 38, 3, 2, 30, 80, 94, 12, 34, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 0,254,152, 4,221, 7, 91, 2, 38, 0, 36, 0, 0, 0, 39, 1, 78, 0, 33, 1,109, 1, 7, 2,103, 4,211, 0, 0, - 0, 34, 64, 22, 3, 46, 20, 39, 2, 26, 5, 38, 3, 0, 43, 49, 4, 7, 37, 2, 0, 31, 21, 4, 7, 37, 1, 43, 53, 43, 53, 0, - 43, 53, 43, 53,255,255, 0, 94,254,152, 3,156, 5,238, 2, 38, 0, 68, 0, 0, 0, 38, 1, 78,212, 0, 1, 7, 2,103, 4,111, - 0, 0, 0, 34, 64, 22, 3, 76, 23, 39, 2, 56, 17, 38, 3, 13, 73, 79, 12, 34, 37, 2, 30, 61, 51, 12, 34, 37, 1, 43, 53, 43, - 53, 0, 43, 53, 43, 53,255,255, 0,199,254,152, 3,190, 5,182, 2, 38, 0, 40, 0, 0, 1, 7, 2,103, 4,170, 0, 0, 0, 19, - 64, 11, 1, 15, 20, 39, 1, 3, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,254,152, 3,225, 4, 94, 2, 38, - 0, 72, 0, 0, 1, 7, 2,103, 4,190, 0, 0, 0, 19, 64, 11, 2, 43, 23, 39, 2, 48, 40, 46, 5, 15, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,199, 0, 0, 3,190, 7,225, 2, 38, 0, 40, 0, 0, 1, 7, 2,102, 4,145, 1, 82, 0, 19, 64, 11, 1, 18, - 5, 38, 1, 13, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 6,143, 2, 38, 0, 72, 0, 0, - 1, 7, 2,102, 4,152, 0, 0, 0, 19, 64, 11, 2, 46, 17, 38, 2, 45, 61, 40, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,199, 0, 0, 3,190, 7, 53, 2, 38, 0, 40, 0, 0, 1, 7, 1, 82,255,212, 1, 82, 0, 21,180, 1, 20, 5, 38, 1,184,255, -251,180, 21, 35, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,113,255,236, 3,225, 5,227, 2, 38, 0, 72, 0, 0, 1, 6, - 1, 82,222, 0, 0, 19, 64, 11, 2, 48, 17, 38, 2, 30, 49, 63, 5, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,199, 0, 0, - 4, 92, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,119, 4,158, 1, 82, 0, 25,182, 2, 1, 12, 5, 38, 2, 1,184,255,253,180, - 20, 12, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 71, 6,127, 2, 38, 0, 72, 0, 0, 1, 7, - 3,119, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 40, 17, 38, 3, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 39, 0, 0, 3,190, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,120, 4,158, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, - 2, 1,184,255,253,180, 28, 20, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 18,255,236, 3,225, 6,127, 2, 38, - 0, 72, 0, 0, 1, 7, 3,120, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 48, 17, 38, 3, 2, 3, 56, 48, 5, 15, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0,199, 0, 0, 4, 27, 8, 74, 2, 38, 0, 40, 0, 0, 1, 7, 3,121, 4,158, 1, 82, 0, 25, -182, 2, 1, 12, 5, 38, 2, 1,184,255,253,180, 20, 12, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, - 4, 6, 6,248, 2, 38, 0, 72, 0, 0, 1, 7, 3,121, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 40, 17, 38, 3, 2, 3, 48, 40, - 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,199, 0, 0, 3,190, 8, 98, 2, 38, 0, 40, 0, 0, 1, 7, 3,122, - 4,158, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, 2, 1,184,255,253,180, 28, 20, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,113,255,236, 3,225, 7, 16, 2, 38, 0, 72, 0, 0, 1, 7, 3,122, 4,137, 0, 0, 0, 23, 64, 13, 3, 2, 48, 17, - 38, 3, 2, 3, 56, 48, 5, 15, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,199,254,152, 3,190, 7,115, 2, 38, 0, 40, - 0, 0, 0, 39, 1, 75,255,241, 1, 82, 1, 7, 2,103, 4,170, 0, 0, 0, 37, 64, 16, 2, 36, 20, 39, 1, 12, 5, 38, 2, 3, - 33, 39, 1, 0, 37, 1,184,255,253,180, 20, 12, 1, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0,113,254,152, - 3,225, 6, 33, 2, 38, 0, 72, 0, 0, 0, 38, 1, 75,222, 0, 1, 7, 2,103, 4,170, 0, 0, 0, 34, 64, 22, 3, 64, 23, 39, - 2, 40, 17, 38, 3, 28, 61, 67, 5, 15, 37, 2, 3, 48, 40, 5, 15, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 82, - 0, 0, 2,100, 7,225, 2, 38, 0, 44, 0, 0, 1, 7, 2,102, 3,176, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 19, 33, 12, - 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 98, 0, 0, 1,215, 6,143, 2, 38, 0,243, 0, 0, 1, 7, 2,102, 3, 94, - 0, 0, 0, 19, 64, 11, 1, 10, 17, 38, 1, 19, 25, 4, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254,152, 2,100, - 5,182, 2, 38, 0, 44, 0, 0, 1, 7, 2,103, 3,190, 0, 0, 0, 21,180, 1, 15, 20, 39, 1,184,255,255,180, 12, 18, 1, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,158,254,152, 1,117, 5,229, 2, 38, 0, 76, 0, 0, 1, 7, 2,103, 3,109, 0, 0, - 0, 21,180, 2, 21, 23, 39, 2,184,255,254,180, 18, 24, 4, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 5,113, - 5,205, 2, 38, 0, 50, 0, 0, 1, 7, 2,103, 5, 92, 0, 0, 0, 19, 64, 11, 2, 43, 20, 39, 2, 0, 40, 46, 10, 0, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,113,254,152, 4, 45, 4, 94, 2, 38, 0, 82, 0, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 21, -180, 2, 35, 23, 39, 2,184,255,255,180, 32, 38, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,225, - 2, 38, 0, 50, 0, 0, 1, 7, 2,102, 5, 78, 1, 82, 0, 19, 64, 11, 2, 46, 5, 38, 2, 21, 61, 40, 10, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,113,255,236, 4, 45, 6,143, 2, 38, 0, 82, 0, 0, 1, 7, 2,102, 4,164, 0, 0, 0, 19, 64, 11, - 2, 38, 17, 38, 2, 19, 53, 32, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5,113, 7,209, 2, 38, 0, 50, - 0, 0, 1, 7, 3,119, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 40, 5, 38, 3, 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0,113,255,236, 4,104, 6,127, 2, 38, 0, 82, 0, 0, 1, 7, 3,119, 4,170, 0, 0, 0, 25,182, 3, - 2, 32, 17, 38, 3, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, - 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,120, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 48, 5, 38, 3, 2, 5, 56, 48, 10, 0, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 51,255,236, 4, 45, 6,127, 2, 38, 0, 82, 0, 0, 1, 7, 3,120, 4,170, - 0, 0, 0, 25,182, 3, 2, 40, 17, 38, 3, 2,184,255,250,180, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0,125,255,236, 5,113, 8, 74, 2, 38, 0, 50, 0, 0, 1, 7, 3,121, 5, 88, 1, 82, 0, 23, 64, 13, 3, 2, 40, 5, 38, 3, - 2, 5, 48, 40, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 6,248, 2, 38, 0, 82, 0, 0, - 1, 7, 3,121, 4,170, 0, 0, 0, 25,182, 3, 2, 32, 17, 38, 3, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0,125,255,236, 5,113, 8, 98, 2, 38, 0, 50, 0, 0, 1, 7, 3,122, 5, 88, 1, 82, 0, 23, 64, 13, - 3, 2, 48, 5, 38, 3, 2, 5, 56, 48, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113,255,236, 4, 45, 7, 16, - 2, 38, 0, 82, 0, 0, 1, 7, 3,122, 4,170, 0, 0, 0, 25,182, 3, 2, 40, 17, 38, 3, 2,184,255,250,180, 48, 40, 10, 0, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,254,152, 5,113, 7,115, 2, 38, 0, 50, 0, 0, 0, 39, 1, 75, 0,174, - 1, 82, 1, 7, 2,103, 5, 92, 0, 0, 0, 34, 64, 22, 3, 64, 20, 39, 2, 40, 5, 38, 3, 0, 61, 67, 10, 0, 37, 2, 5, 48, - 40, 10, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,113,254,152, 4, 45, 6, 33, 2, 38, 0, 82, 0, 0, 0, 38, - 1, 75,251, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 40, 64, 9, 3, 56, 23, 39, 2, 32, 17, 38, 3,184,255,255,181, 53, 59, 10, - 0, 37, 2,184,255,250,180, 40, 32, 10, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,125,255,236, 6, 37, 7,115, - 2, 38, 2, 95, 0, 0, 1, 7, 0,118, 1, 6, 1, 82, 0, 19, 64, 11, 2, 65, 5, 38, 2, 2, 53, 59, 19, 1, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,113,255,236, 4,244, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 21,180, 2, 58, 17, - 38, 2,184,255,235,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7,115, 2, 38, 2, 95, - 0, 0, 1, 7, 0, 67, 0, 84, 1, 82, 0, 21,180, 2, 53, 5, 38, 2,184,255, 81,180, 59, 53, 19, 1, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,113,255,236, 4,244, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 21,180, 2, 58, 17, 38, 2, -184,255,235,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7,225, 2, 38, 2, 95, 0, 0, - 1, 7, 2,102, 5, 78, 1, 82, 0, 21,180, 2, 60, 5, 38, 2,184,255,188,180, 74, 53, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,113,255,236, 4,244, 6,143, 2, 38, 2, 96, 0, 0, 1, 7, 2,102, 4,164, 0, 0, 0, 21,180, 2, 52, 17, 38, 2, -184,255,176,180, 66, 45, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 6, 37, 7, 53, 2, 38, 2, 95, 0, 0, - 1, 7, 1, 82, 0,125, 1, 82, 0, 21,180, 2, 61, 5, 38, 2,184,255,150,180, 62, 76, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,113,255,236, 4, 45, 5,227, 2, 38, 0, 82, 0, 0, 1, 6, 1, 82,226, 0, 0, 21,180, 2, 40, 17, 38, 2,184,255, -253,180, 41, 55, 10, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 6, 37, 6, 20, 2, 38, 2, 95, 0, 0, 1, 7, - 2,103, 5, 92, 0, 0, 0, 21,180, 2, 56, 20, 39, 2,184,255,167,180, 53, 59, 19, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,113,254,152, 4,244, 4,242, 2, 38, 2, 96, 0, 0, 1, 7, 2,103, 4,178, 0, 0, 0, 21,180, 2, 48, 23, 39, 2,184,255, -155,180, 45, 51, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,254,152, 4,221, 5,184, 2, 38, 0, 56, 0, 0, 1, 7, - 2,103, 5, 47, 0, 0, 0, 19, 64, 11, 1, 27, 20, 39, 1, 0, 24, 30, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164, -254,152, 4, 8, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 2,103, 4,184, 0, 0, 0, 21,180, 1, 30, 23, 39, 1,184,255,254,180, - 27, 33, 12, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 4,221, 7,225, 2, 38, 0, 56, 0, 0, 1, 7, 2,102, - 5, 29, 1, 82, 0, 19, 64, 11, 1, 30, 5, 38, 1, 17, 45, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, - 4, 8, 6,143, 2, 38, 0, 88, 0, 0, 1, 7, 2,102, 4,166, 0, 0, 0, 19, 64, 11, 1, 33, 17, 38, 1, 14, 48, 27, 12, 25, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,184,255,236, 6, 78, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0,118, 0,197, 1, 82, - 0, 21,180, 1, 49, 5, 38, 1,184,255,144,180, 37, 43, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, - 6, 33, 2, 38, 2, 98, 0, 0, 1, 6, 0,118, 96, 0, 0, 17,177, 1, 1,184,255,159,180, 40, 46, 12, 33, 37, 1, 43, 53, 0, - 53, 0,255,255, 0,184,255,236, 6, 78, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0, 67, 0, 61, 1, 82, 0, 21,180, 1, 37, 5, - 38, 1,184,255, 8,180, 43, 37, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, 6, 33, 2, 38, 2, 98, - 0, 0, 1, 6, 0, 67,163, 0, 0, 17,177, 1, 1,184,254,226,180, 46, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184, -255,236, 6, 78, 7,225, 2, 38, 2, 97, 0, 0, 1, 7, 2,102, 5, 29, 1, 82, 0, 17,177, 1, 1,184,255, 89,180, 58, 37, 24, - 8, 37, 1, 43, 53, 0, 53, 0,255,255, 0,164,255,236, 5,121, 6,143, 2, 38, 2, 98, 0, 0, 1, 7, 2,102, 4,166, 0, 0, - 0, 17,177, 1, 1,184,255, 86,180, 61, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184,255,236, 6, 78, 7, 53, 2, 38, - 2, 97, 0, 0, 1, 7, 1, 82, 0, 96, 1, 82, 0, 21,180, 1, 45, 5, 38, 1,184,255, 71,180, 46, 60, 24, 8, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,164,255,236, 5,121, 5,227, 2, 38, 2, 98, 0, 0, 1, 6, 1, 82,243, 0, 0, 17,177, 1, 1,184, -255, 78,180, 49, 63, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,184,254,152, 6, 78, 6, 20, 2, 38, 2, 97, 0, 0, 1, 7, - 2,103, 5, 47, 0, 0, 0, 21,180, 1, 40, 20, 39, 1,184,255, 72,180, 37, 43, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,164,254,152, 5,121, 4,242, 2, 38, 2, 98, 0, 0, 1, 7, 2,103, 4,184, 0, 0, 0, 21,180, 1, 43, 23, 39, 1,184,255, - 69,180, 40, 46, 12, 33, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0,254,152, 4, 55, 5,182, 2, 38, 0, 60, 0, 0, 1, 7, - 2,103, 4,127, 0, 0, 0, 21,180, 1, 12, 20, 39, 1,184,255,255,180, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 10,254, 20, 3,223, 4, 74, 2, 38, 0, 92, 0, 0, 1, 7, 2,103, 5,139, 0, 0, 0, 17,177, 1, 1,184, 1, 50,180, 35, - 41, 0, 15, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7,225, 2, 38, 0, 60, 0, 0, 1, 7, 2,102, 4,113, - 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 20, 30, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, - 6,143, 2, 38, 0, 92, 0, 0, 1, 7, 2,102, 4, 74, 0, 0, 0, 19, 64, 11, 1, 41, 17, 38, 1, 20, 56, 35, 0, 15, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4, 55, 7, 53, 2, 38, 0, 60, 0, 0, 1, 7, 1, 82,255,179, 1, 82, 0, 19, - 64, 11, 1, 17, 5, 38, 1, 1, 18, 32, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 10,254, 20, 3,223, 5,227, 2, 38, - 0, 92, 0, 0, 1, 6, 1, 82,140, 0, 0, 19, 64, 11, 1, 43, 17, 38, 1, 1, 44, 58, 0, 15, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,113,254,188, 4,158, 6, 20, 2, 38, 0,211, 0, 0, 1, 7, 0, 66, 0,180, 0, 0, 0, 14,185, 0, 2,255,210,180, - 58, 57, 11, 35, 37, 1, 43, 53, 0, 2,251,219, 4,217,254,186, 6, 33, 0, 13, 0, 27, 0, 45, 64, 25, 20, 14, 14, 7, 64, 80, - 0, 1, 63, 0, 79, 0, 2, 0, 21, 7,146,128, 15, 15, 1, 95, 1, 2, 1, 0, 47, 93, 51, 26,237, 50, 1, 47, 93, 93, 26,205, - 57, 47,205, 49, 48, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23, 5, 35, 46, 3, 39, 53, 51, 30, 3, 23,254,186,100, 35, 81, 77, 63, - 16,198, 16, 42, 47, 48, 21,254,150,100, 35, 82, 77, 63, 16,199, 16, 42, 47, 48, 21, 4,217, 28, 83, 88, 81, 27, 21, 35, 80, 81, - 76, 29, 27, 28, 83, 88, 81, 27, 21, 35, 80, 81, 76, 29, 0, 2,252,106, 4,217,255,190, 6,127, 0, 16, 0, 28, 0, 82, 64, 49, - 13, 12, 4, 16, 23, 1, 23, 64, 47, 28, 63, 28, 79, 28, 3, 28, 4, 4, 28, 47, 0, 95, 0,143, 0,159, 0, 4, 0,192, 8, 22, - 27, 27, 4,127, 12,143, 12, 2, 12,128, 0, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 93, 50, 57, 47,205, 1, 47, 26,204, - 93, 57, 57, 61, 47, 24, 47, 93, 26,205, 93, 17, 51, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, 54, 55, 51, 22, 22, - 23, 39, 62, 3, 55, 51, 21, 6, 6, 7, 35,254,217,100, 51,108, 52, 54,106, 51,101, 51,117, 48,192, 48,116, 51, 78, 20, 33, 29, - 29, 16,180, 45,106, 55,101, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59,194, 25, 45, 46, 52, 33, 21, 60,103, 43, - 0, 2,251,137, 4,217,254,221, 6,127, 0, 16, 0, 28, 0, 74, 64, 42, 4, 3, 12, 31, 22, 1, 22, 64, 28, 12, 12, 28, 47, 8, - 95, 8,143, 8,159, 8, 4, 8,192, 0, 22, 18, 18, 12,127, 3,143, 3, 2, 3,128, 16, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, - 26,205, 93, 50, 57, 47,205, 1, 47, 26,204, 93, 57, 57, 61, 47, 24, 47, 26,205, 93, 17, 51, 51, 49, 48, 1, 54, 54, 55, 51, 22, - 22, 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 55, 35, 38, 38, 39, 53, 51, 30, 3, 23,252,111, 51,116, 48,192, 48,116, 51,100, 51, -106, 54, 53,107, 51,100, 77,100, 56,106, 45,180, 16, 29, 30, 32, 20, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34, -195, 43,103, 60, 21, 33, 52, 46, 45, 25, 0, 2,252,106, 4,217,255,125, 6,248, 0, 16, 0, 40, 0, 94, 64, 56, 22, 25, 25, 32, - 6, 14, 72, 25, 28, 17,128, 47, 35, 63, 35, 79, 35, 3, 35, 4, 4, 35, 47, 0, 95, 0,143, 0,159, 0, 4, 0,192, 8, 22, 25, - 25, 31, 38, 24, 24, 4,127, 12,143, 12, 2, 12,128, 0, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,204, 93, 50, 57, 47,204, 50, - 57, 17, 51, 1, 47, 26,204, 93, 57, 57, 61, 47, 24, 47, 93, 26,205, 50, 57, 43, 17, 51, 49, 48, 1, 35, 38, 38, 39, 6, 6, 7, - 35, 53, 54, 54, 55, 51, 22, 22, 23, 19, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22, -254,217,100, 51,108, 52, 54,106, 51,101, 51,117, 48,192, 48,116, 51,164, 20, 34, 46, 25, 6, 86, 10, 55, 65, 57, 43, 22, 39, 11, - 11, 38, 31, 99,100, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59, 1,118, 29, 43, 30, 21, 6, 81,131, 9, 31, 37, - 37, 25, 3, 3, 82, 3, 3, 69, 0, 2,252,100, 4,217,254,233, 7, 16, 0, 16, 0, 44, 0, 97, 64, 59, 4, 3, 12, 12, 0, 40, - 40, 47, 8, 95, 8,143, 8,159, 8, 4, 8, 0,192, 26, 26, 0, 39, 22,142,207, 31,223, 31,239, 31, 3, 31, 64, 9, 13, 72, 31, - 31, 36,142, 25, 17, 17, 12,127, 3,143, 3, 2, 3,128, 16, 15, 8, 95, 8, 2, 8, 0, 47, 93, 51, 26,205, 93, 50, 50, 47, 51, -225, 51, 47, 43, 93,225, 51, 1, 47, 51, 47, 26, 16,204, 93, 50, 47, 17, 57, 61, 47, 51, 51, 49, 48, 1, 54, 54, 55, 51, 22, 22, - 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, -252,111, 51,116, 48,192, 48,116, 51,100, 51,106, 54, 53,107, 51,100, 1,190, 36, 71, 69, 64, 28, 40, 42, 14, 93, 5, 29, 48, 65, - 42, 37, 74, 69, 62, 26, 40, 42, 14, 92, 5, 28, 48, 65, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34, 1, 90, 28, - 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 2,252,115, 4,217,254,205, 6,193, 0, 11, 0, 31, - 0, 50, 64, 25, 6,128, 11, 11, 31, 47, 12, 1, 12,192, 21, 20, 5, 11, 11, 31, 20,128, 26, 15, 17, 95, 17, 2, 17, 0, 47, 93, - 51, 26,205, 50, 50, 47,204, 1, 47, 51, 26,204, 93, 50, 57, 47, 26,205, 49, 48, 1, 62, 3, 55, 51, 21, 6, 6, 7, 35, 37, 14, - 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55,253, 94, 20, 32, 30, 29, 16,180, 45,106, 55,101, 1,111, 5, 43, 77,110, 70, -146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 5,248, 25, 44, 46, 53, 33, 21, 60,103, 44, 6, 60, 99, 69, 38,140,126, - 43, 50, 25, 7, 9, 27, 49, 40, 0, 2,252,115, 4,217,254,205, 6,193, 0, 11, 0, 31, 0, 56, 64, 30, 5,128, 11, 64, 19, 22, - 72, 11, 11, 31, 47, 12, 1, 12,192, 21, 20, 5, 0, 0, 31, 20,128, 26, 15, 17, 95, 17, 2, 17, 0, 47, 93, 51, 26,205, 50, 50, - 47,205, 1, 47, 51, 26,204, 93, 50, 57, 47, 43, 26,205, 49, 48, 1, 35, 38, 38, 39, 53, 51, 30, 3, 23, 23, 14, 3, 35, 34, 38, - 39, 51, 30, 3, 51, 50, 62, 2, 55,253,209,100, 56,106, 45,180, 16, 29, 30, 32, 20,252, 5, 43, 77,110, 70,146,145, 6,108, 4, - 27, 48, 68, 44, 36, 65, 51, 33, 5, 5,221, 44,103, 60, 21, 33, 53, 46, 44, 25, 21, 60, 99, 69, 38,140,126, 43, 50, 25, 7, 9, - 27, 49, 40, 0, 0, 2,252,115, 4,217,254,205, 7, 6, 0, 19, 0, 42, 0, 66, 64, 33, 25, 28, 28, 31, 20,128, 37, 37, 19, 47, - 0, 1, 0, 9, 8, 25, 28, 28, 34, 40,192, 27, 27, 19, 8,128, 14, 15, 5, 95, 5, 2, 5, 0, 47, 93, 51, 26,205, 50, 57, 47, - 26,204, 50, 57, 17, 51, 1, 47, 51,204, 93, 50, 57, 47, 26,204, 50, 57, 17, 51, 49, 48, 1, 14, 3, 35, 34, 38, 39, 51, 30, 3, - 51, 50, 62, 2, 55, 39, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, 53, 54, 51, 50, 22,254,205, 5, 43, 77, -110, 70,146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 43, 20, 34, 46, 25, 6, 86, 10, 56, 65, 57, 44, 21, 39, 11, 21, - 58,100, 99, 5,227, 60, 99, 69, 38,140,126, 43, 50, 25, 7, 9, 27, 49, 40,150, 29, 43, 31, 20, 6, 41, 90, 9, 32, 37, 37, 24, - 3, 3, 82, 6, 69, 0, 0, 2,252,100, 4,217,254,233, 7, 16, 0, 19, 0, 47, 0, 72, 64, 39, 28, 29, 29, 8, 42, 43, 43, 19, - 47, 0, 1, 0,192, 9, 8, 42, 25,207, 34,223, 34,239, 34, 3, 34, 39, 28, 20, 20, 19, 8,128, 14, 15, 5, 95, 5, 2, 5, 0, - 47, 93, 51, 26,205, 50, 50, 47, 51, 51,205, 93, 50, 50, 1, 47, 51, 26,204, 93, 50, 50, 47, 51, 17, 51, 47, 51, 49, 48, 1, 14, - 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, - 51, 14, 3,254,205, 5, 43, 77,110, 70,146,145, 6,108, 4, 27, 48, 68, 44, 36, 65, 51, 33, 5, 47, 36, 71, 69, 64, 28, 40, 42, - 14, 93, 5, 29, 48, 65, 42, 37, 74, 69, 62, 26, 40, 42, 14, 92, 5, 28, 48, 65, 5,227, 60, 99, 69, 38,140,126, 43, 50, 25, 7, - 9, 27, 49, 40, 80, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 1, 0, 49,254, 66, 1,113, - 0, 0, 0, 20, 0, 24, 64, 9, 15,128, 0, 8, 8, 2, 18, 11, 2, 0, 47, 47, 51, 1, 47, 51, 47, 51, 26,204, 49, 48, 23, 52, - 39, 51, 30, 3, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54,219,139,129, 26, 57, 47, 30,101,100, 29, 64, 26, 14, 45, 25, - 34, 52,238,105,133, 19, 52, 64, 75, 42, 90,104, 8, 8,113, 4, 5, 43, 0, 1, 0, 16,254,109, 1,119, 0,166, 0, 17, 0, 18, -182, 9, 1, 16, 13, 6,250, 0, 0, 47, 63, 51, 1, 47, 51,196, 49, 48, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, - 53, 17, 1,119, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,166,254,217, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, - 60, 0, 0, 1, 0, 16,254,109, 1,119, 0,154, 0, 17, 0, 18,182, 9, 1, 16, 13, 6,250, 0, 0, 47, 63, 51, 1, 47, 51,196, - 49, 48, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 17, 1,119, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, - 50,154,254,229, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, 48, 0, 0, 0, 0, 0, 0, 27, 1, 74, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 10, 0, 52, 0, 1, 0, 0, 0, 0, 0, 2, 0, 7, 0, 62, 0, 1, - 0, 0, 0, 0, 0, 3, 0, 21, 0, 69, 0, 1, 0, 0, 0, 0, 0, 4, 0, 10, 0, 52, 0, 1, 0, 0, 0, 0, 0, 5, 0, 12, - 0, 90, 0, 1, 0, 0, 0, 0, 0, 6, 0, 9, 0,102, 0, 1, 0, 0, 0, 0, 0, 7, 0, 78, 0,111, 0, 1, 0, 0, 0, 0, - 0, 8, 0, 20, 0,189, 0, 1, 0, 0, 0, 0, 0, 10, 0,103, 0,209, 0, 1, 0, 0, 0, 0, 0, 13, 0, 46, 1, 56, 0, 1, - 0, 0, 0, 0, 0, 14, 0, 42, 1,102, 0, 1, 0, 0, 0, 0, 0, 18, 0, 10, 0, 52, 0, 3, 0, 1, 4, 9, 0, 0, 0,104, - 1,144, 0, 3, 0, 1, 4, 9, 0, 1, 0, 20, 1,248, 0, 3, 0, 1, 4, 9, 0, 2, 0, 14, 2, 12, 0, 3, 0, 1, 4, 9, - 0, 3, 0, 42, 2, 26, 0, 3, 0, 1, 4, 9, 0, 4, 0, 20, 1,248, 0, 3, 0, 1, 4, 9, 0, 5, 0, 44, 2, 68, 0, 3, - 0, 1, 4, 9, 0, 6, 0, 18, 2,112, 0, 3, 0, 1, 4, 9, 0, 7, 0,156, 2,130, 0, 3, 0, 1, 4, 9, 0, 8, 0, 40, - 3, 30, 0, 3, 0, 1, 4, 9, 0, 10, 0,206, 3, 70, 0, 3, 0, 1, 4, 9, 0, 11, 0, 56, 4, 20, 0, 3, 0, 1, 4, 9, - 0, 12, 0, 92, 4, 76, 0, 3, 0, 1, 4, 9, 0, 13, 0, 92, 4,168, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 5, 4, 68,105, -103,105,116,105,122,101,100, 32,100, 97,116, 97, 32, 99,111,112,121,114,105,103,104,116, 32,169, 32, 50, 48, 48, 55, 44, 32, 71, -111,111,103,108,101, 32, 67,111,114,112,111,114, 97,116,105,111,110, 46, 68,114,111,105,100, 32, 83, 97,110,115, 82,101,103,117, -108, 97,114, 65,115, 99,101,110,100,101,114, 32, 45, 32, 68,114,111,105,100, 32, 83, 97,110,115, 86,101,114,115,105,111,110, 32, - 49, 46, 48, 48, 68,114,111,105,100, 83, 97,110,115, 68,114,111,105,100, 32,105,115, 32, 97, 32,116,114, 97,100,101,109, 97,114, -107, 32,111,102, 32, 71,111,111,103,108,101, 32, 97,110,100, 32,109, 97,121, 32, 98,101, 32,114,101,103,105,115,116,101,114,101, -100, 32,105,110, 32, 99,101,114,116, 97,105,110, 32,106,117,114,105,115,100,105, 99,116,105,111,110,115, 46, 65,115, 99,101,110, -100,101,114, 32, 67,111,114,112,111,114, 97,116,105,111,110, 68,114,111,105,100, 32, 83, 97,110,115, 32,105,115, 32, 97, 32,104, -117,109, 97,110,105,115,116, 32,115, 97,110,115, 32,115,101,114,105,102, 32,116,121,112,101,102, 97, 99,101, 32,100,101,115,105, -103,110,101,100, 32,102,111,114, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101,115, 32, 97,110,100, 32,101,108,101, - 99,116,114,111,110,105, 99, 32, 99,111,109,109,117,110,105, 99, 97,116,105,111,110, 46, 76,105, 99,101,110,115,101,100, 32,117, -110,100,101,114, 32,116,104,101, 32, 65,112, 97, 99,104,101, 32, 76,105, 99,101,110,115,101, 44, 32, 86,101,114,115,105,111,110, - 32, 50, 46, 48,104,116,116,112, 58, 47, 47,119,119,119, 46, 97,112, 97, 99,104,101, 46,111,114,103, 47,108,105, 99,101,110,115, -101,115, 47, 76, 73, 67, 69, 78, 83, 69, 45, 50, 46, 48, 0, 68, 0,105, 0,103, 0,105, 0,116, 0,105, 0,122, 0,101, 0,100, - 0, 32, 0,100, 0, 97, 0,116, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, - 0,169, 0, 32, 0, 50, 0, 48, 0, 48, 0, 55, 0, 44, 0, 32, 0, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 67, - 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0, 68, 0,114, 0,111, 0,105, 0,100, - 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 82, 0,101, 0,103, 0,117, 0,108, 0, 97, 0,114, 0, 65, 0,115, 0, 99, 0,101, - 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 45, 0, 32, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, - 0,115, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 49, 0, 46, 0, 48, 0, 48, 0, 32, 0, 98, 0,117, - 0,105, 0,108, 0,100, 0, 32, 0, 49, 0, 49, 0, 50, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 83, 0, 97, 0,110, 0,115, - 0, 68, 0,114, 0,111, 0,105, 0,100, 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, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 97, - 0,110, 0,100, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,114, 0,101, 0,103, 0,105, 0,115, 0,116, - 0,101, 0,114, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 99, 0,101, 0,114, 0,116, 0, 97, 0,105, 0,110, 0, 32, - 0,106, 0,117, 0,114, 0,105, 0,115, 0,100, 0,105, 0, 99, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 46, 0, 65, 0,115, - 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, - 0,111, 0,110, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0,105, 0,115, 0, 32, - 0, 97, 0, 32, 0,104, 0,117, 0,109, 0, 97, 0,110, 0,105, 0,115, 0,116, 0, 32, 0,115, 0, 97, 0,110, 0,115, 0, 32, - 0,115, 0,101, 0,114, 0,105, 0,102, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0, 32, 0,100, - 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,100, 0, 32, 0,102, 0,111, 0,114, 0, 32, 0,117, 0,115, 0,101, 0,114, - 0, 32, 0,105, 0,110, 0,116, 0,101, 0,114, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, - 0,101, 0,108, 0,101, 0, 99, 0,116, 0,114, 0,111, 0,110, 0,105, 0, 99, 0, 32, 0, 99, 0,111, 0,109, 0,109, 0,117, - 0,110, 0,105, 0, 99, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, - 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, - 0, 46, 0, 99, 0,111, 0,109, 0, 47, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, - 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, 0, 99, 0,111, 0,109, - 0, 47, 0,116, 0,121, 0,112, 0,101, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,114, 0,115, 0, 46, 0,104, - 0,116, 0,109, 0,108, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 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, 65, 0,112, 0, 97, 0, 99, 0,104, 0,101, 0, 32, 0, 76, 0,105, 0, 99, - 0,101, 0,110, 0,115, 0,101, 0, 44, 0, 32, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50, 0, 46, - 0, 48, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,112, 0, 97, 0, 99, - 0,104, 0,101, 0, 46, 0,111, 0,114, 0,103, 0, 47, 0,108, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0,115, 0, 47, - 0, 76, 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -255,102, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 1, 2, 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, 3, 0,138, 1, 4, 0,131, - 0,147, 0,242, 0,243, 0,141, 0,151, 0,136, 1, 5, 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, 6, - 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 0,253, 0,254, 1, 12, 1, 13, 1, 14, 1, 15, 0,255, 1, 0, 1, 16, 1, 17, 1, 18, - 1, 19, 1, 20, 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 0,248, 0,249, 1, 32, - 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, - 0,215, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, - 0,226, 0,227, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, - 1, 78, 0,176, 0,177, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 0,251, 0,252, 0,228, - 0,229, 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, 1,106, 1,107, 1,108, 1,109, 1,110, 0,187, 1,111, 1,112, 1,113, 1,114, 0,230, 0,231, 1,115, 0,166, - 1,116, 1,117, 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 0,216, 0,225, 1,124, 0,219, 0,220, 0,221, 0,224, 0,217, - 0,223, 1,125, 1,126, 1,127, 1,128, 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, 0,155, 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, 0,178, - 0,179, 2, 42, 2, 43, 0,182, 0,183, 0,196, 2, 44, 0,180, 0,181, 0,197, 0,130, 0,194, 0,135, 0,171, 0,198, 2, 45, - 2, 46, 0,190, 0,191, 2, 47, 0,188, 2, 48, 0,247, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 0,140, 0,159, 2, 55, - 2, 56, 2, 57, 2, 58, 2, 59, 0,152, 2, 60, 0,154, 0,153, 0,239, 0,165, 0,146, 0,156, 0,167, 0,143, 0,148, 0,149, - 0,185, 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, 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, 2,235, + 0, 0, 0, 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, 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, 5, 46, -110,117,108,108, 7,117,110,105, 48, 48, 65, 68, 9,111,118,101,114,115, 99,111,114,101, 14,112,101,114,105,111,100, 99,101,110, -116,101,114,101,100, 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, 4, 67,100,111,116, 4, 99,100,111,116, 6, 68, 99, 97,114,111,110, 6,100, 99, 97, -114,111,110, 6, 68, 99,114,111, 97,116, 6,100, 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, 4, 71,100,111,116, - 4,103,100,111,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, 10, 73,100, -111,116, 97, 99, 99,101,110,116, 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, 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, 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, 6,109, 97, 99,114,111,110, 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, 7,117,110,105, 48, 51, 65, 57, 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, - 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, 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, 9, 97,102,105,105, 49, 48, 48, 55, 49, 9, 97,102,105,105, 49, 48, 48, 57, 57, + 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, 9, 97,102,105,105, 49, 48, 49, 49, 48, 9, 97,102,105,105, 49, 48, 49, 57, 51, 9, 97,102,105,105, 49, 48, 48, - 53, 48, 9, 97,102,105,105, 49, 48, 48, 57, 56, 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, 6, 89,103,114, - 97,118,101, 6,121,103,114, 97,118,101, 9, 97,102,105,105, 48, 48, 50, 48, 56, 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, 6,109,105,110,117,116,101, 6,115,101, 99,111,110,100, 9,101, -120, 99,108, 97,109,100, 98,108, 9,110,115,117,112,101,114,105,111,114, 9, 97,102,105,105, 48, 56, 57, 52, 49, 6,112,101,115, -101,116, 97, 4, 69,117,114,111, 9, 97,102,105,105, 54, 49, 50, 52, 56, 9, 97,102,105,105, 54, 49, 50, 56, 57, 9, 97,102,105, -105, 54, 49, 51, 53, 50, 9,101,115,116,105,109, 97,116,101,100, 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, - 5, 68,101,108,116, 97, 7,117,110,105, 70, 66, 48, 49, 7,117,110,105, 70, 66, 48, 50, 13, 99,121,114,105,108,108,105, 99, 98, -114,101,118,101, 8,100,111,116,108,101,115,115,106, 16, 99, 97,114,111,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 11, 99, -111,109,109, 97, 97, 99, 99,101,110,116, 17, 99,111,109,109, 97, 97, 99, 99,101,110,116,114,111,116, 97,116,101, 12,122,101,114, -111,115,117,112,101,114,105,111,114, 12,102,111,117,114,115,117,112,101,114,105,111,114, 12,102,105,118,101,115,117,112,101,114, -105,111,114, 11,115,105,120,115,117,112,101,114,105,111,114, 13,115,101,118,101,110,115,117,112,101,114,105,111,114, 13,101,105, -103,104,116,115,117,112,101,114,105,111,114, 12,110,105,110,101,115,117,112,101,114,105,111,114, 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, 7,117,110,105, 70, 69, 70, 70, - 7,117,110,105, 70, 70, 70, 67, 7,117,110,105, 70, 70, 70, 68, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 50, 66, 67, - 7,117,110,105, 48, 51, 68, 49, 7,117,110,105, 48, 51, 68, 50, 7,117,110,105, 48, 51, 68, 54, 7,117,110,105, 49, 69, 51, 69, - 7,117,110,105, 49, 69, 51, 70, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105, 49, 70, 52, 68, - 7,117,110,105, 48, 50, 70, 51, 9,100, 97,115,105, 97,111,120,105, 97, 7,117,110,105, 70, 66, 48, 51, 7,117,110,105, 70, 66, - 48, 52, 5, 79,104,111,114,110, 5,111,104,111,114,110, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 51, - 48, 48, 7,117,110,105, 48, 51, 48, 49, 7,117,110,105, 48, 51, 48, 51, 4,104,111,111,107, 8,100,111,116, 98,101,108,111,119, - 7,117,110,105, 48, 52, 48, 48, 7,117,110,105, 48, 52, 48, 68, 7,117,110,105, 48, 52, 53, 48, 7,117,110,105, 48, 52, 53, 68, - 7,117,110,105, 48, 52, 54, 48, 7,117,110,105, 48, 52, 54, 49, 7,117,110,105, 48, 52, 54, 50, 7,117,110,105, 48, 52, 54, 51, - 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, 7,117,110,105, 48, 52, 55, 50, 7,117,110,105, 48, 52, 55, 51, - 7,117,110,105, 48, 52, 55, 52, 7,117,110,105, 48, 52, 55, 53, 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, 7,117,110,105, 48, 52, 57, 50, + 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, @@ -4544,1405 +5632,364 @@ char datatoc_bfont_ttf[]= { 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, 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, 52, 70, 65, - 7,117,110,105, 48, 52, 70, 66, 7,117,110,105, 48, 52, 70, 67, 7,117,110,105, 48, 52, 70, 68, 7,117,110,105, 48, 52, 70, 69, - 7,117,110,105, 48, 52, 70, 70, 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, 49, 48, 7,117,110,105, 48, 53, 49, 49, 7,117,110,105, 48, 53, 49, 50, - 7,117,110,105, 48, 53, 49, 51, 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, 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, 50, 48, 65, 66, 7,117,110,105, 48, 51, 48, 70, 19, 99,105,114, 99,117,109,102, -108,101,120, 97, 99,117,116,101, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,103,114, 97,118,101, 99,111,109, 98, - 18, 99,105,114, 99,117,109,102,108,101,120,104,111,111,107, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,116,105, -108,100,101, 99,111,109, 98, 14, 98,114,101,118,101, 97, 99,117,116,101, 99,111,109, 98, 14, 98,114,101,118,101,103,114, 97,118, -101, 99,111,109, 98, 13, 98,114,101,118,101,104,111,111,107, 99,111,109, 98, 14, 98,114,101,118,101,116,105,108,100,101, 99,111, -109, 98, 16, 99,121,114,105,108,108,105, 99,104,111,111,107,108,101,102,116, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104, -111,111,107, 85, 67, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 76, 67, 0, 0, 0, 0, 2, 0, 5, 0, 2, -255,255, 0, 3, 0, 1, 0, 0, 0, 12, 0, 0, 0, 22, 0, 0, 0, 2, 0, 1, 0, 0, 3,129, 0, 1, 0, 4, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 30, 0, 44, 0, 1,108, 97,116,110, 0, 8, 0, 4, 0, 0, 0, 0,255,255, 0, 1, - 0, 0, 0, 1,107,101,114,110, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0, 2, 0, 8, 0, 1, 0, 8, 0, 1,165, 58, - 0, 4, 0, 0, 1,240, 3,234, 3,234, 7, 76, 7, 90, 8,212, 7, 90, 9, 50, 10,192, 11, 34, 12, 16, 13, 62, 14, 36, 15, 10, - 15,240, 17,126, 18,172, 19,130, 20,176, 20,222, 25, 96, 25,238, 29,144, 33, 54, 35,104, 39,130, 7, 76, 40,104, 40,104, 40,110, - 40,104, 40,128, 41, 26, 41, 48, 41, 54, 40,104, 40,104, 41, 72, 41, 86, 40,110, 41,212, 41,234, 41,234, 42, 0, 42,218, 42,240, - 7, 76, 43,186, 43,200, 43,214, 46, 36, 46, 36, 43,214, 48,102, 50,172, 11, 34, 52,254, 53,228, 52,254, 52,254, 14, 36, 14, 36, - 14, 36, 14, 36, 54,194, 55, 68, 55, 68, 55, 68, 55, 68, 55, 68, 17,126, 56,158, 56,158, 56,158, 56,158, 57,168, 40,104, 40,104, - 40,104, 40,104, 40,104, 40,104, 41, 72, 40,110, 62, 98, 62, 98, 62, 98, 62, 98, 62,108, 62,122, 62,122, 62,122, 62,122, 62,122, - 41, 72, 62,148, 62,148, 62,148, 62,148, 62,158, 64, 36, 9, 50, 40,104, 9, 50, 40,104, 64, 66, 40,104, 11, 34, 40,110, 40,110, - 40,110, 11, 34, 40,110, 65,212, 40,104, 40,104, 40,104, 66, 82, 40,104, 40,104, 14, 36, 66, 88, 14, 36, 15, 10, 41, 54, 15,240, - 15,240, 15,240, 65,212, 15,240, 15,240, 40,104, 40,104, 40,104, 17,126, 41, 72, 41, 72, 17,126, 41, 72, 41, 72, 40,110, 40,110, - 40,110, 67, 66, 40,110, 68, 76, 68, 76, 65,212, 25, 96, 25, 96, 25, 96, 25, 96, 29,144, 41,234, 35,104, 42,218, 72,194, 39,130, - 39,130, 77, 56, 80, 78, 9, 50, 40,104, 40,110, 81, 28, 81, 74, 81, 88, 81,134, 82, 24, 82, 38, 82,140, 83,202, 84, 40, 85,238, - 88,184, 88,218, 89,244, 90, 10, 90,180, 93,242, 94, 0, 95, 26, 95,244, 96,154,100, 64,100,246,101, 32,101,126,101,176,101,190, -102,112,106, 42,106, 48, 40,104,106, 74,106, 42,106,156,106,162,106,208,106,218,107, 8, 40,104,107,122,107,188,107,226,108, 24, -108, 54,108, 68,108, 90,108, 68,108,108,108,138,108,196,108,214, 41, 72,109, 44,109, 62, 41, 72, 41, 72,109,140,110,110,111,100, -114,182,115, 52,115, 74,115,180,116,146,117,100,118, 42,118,160,120, 86,121,244,124, 26,124,196,125, 74,127,136,128,146,129, 88, -129,242,131, 36,132,126,133,148,134,158,139,232,141,118,142, 32,142,218,143,156,144,150,145, 16,145,146,146, 32,146,150,146,252, -147,130,148, 20,148, 50,148,116,148,170,149, 44,149,162,150, 40,150,178,151, 0,151, 94,152, 32,152,178,153, 36,153,154,153,240, -154, 74, 40,110,154,176,155, 34,155,104, 40,110,155,170,155,184, 40,110, 40,110,156, 42,156, 52,156,186,157, 56,157, 62,157,176, -158, 38,148, 20, 29,144, 41,234, 29,144, 41,234, 29,144, 41,234, 35,104, 42,218,161,144,161,144,161,158,161,158, 9, 50, 9, 50, -164,172,164,238,148,116,131, 36,152, 32,145, 16,150, 40,133,148,151, 0,121,244,121,244,128,146,148,170,128,146,148,170,131, 36, -150, 40,132,126,131, 36,150, 40,139,232,152, 32,139,232,152, 32,152, 32,152, 32,131, 36,150, 40,131, 36,150, 40,131, 36,152, 32, -165, 48,142,218,153,154,145, 16,150, 40,132,126,150, 40,134,158,151, 94,118, 42,142,218,153,154,150, 40,142,218,153,154,128,146, -148,170,128,146,148,170,128,146,148,170,142,218,153,154,134,158,151, 94,118, 42,131, 36,150, 40,133,148,151, 0,134,158,151, 94, -134,158,152, 32,134,158,152, 32,142,218,153,154,142,218,153,154,142,218,153,154,118, 42,131, 36,131, 36,115, 74,128,146,148,170, -118, 42,142,218,153,154,142,218,153,154,142,218,153,154,115, 74,121,244,121,244,148,116,148,116,131, 36,150, 40,131, 36,150, 40, -128,146,148,170,131, 36,150, 40,131, 36,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,139,232,152, 32,139,232, -152, 32,139,232,152, 32,134,158,151, 94,134,158,151, 94,142,218,153,154,128,146,148,170,131, 36,150, 40,139,232,150, 40,142,218, -153,154,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,131, 36,150, 40,133,148,151, 0,142,218,153,154, 9, 50, 9, 50, 9, 50, - 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 9, 50, 40,104, 40,104, 40,104, 40,104, 40,104, 40,104, 40,104, - 40,104, 14, 36, 14, 36, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, 41, 72, 17,126, - 41, 72,164,172,164,172,164,172,164,172,164,172, 25, 96, 25, 96,164,238,164,238,164,238,164,238,164,238, 35,104, 42,218, 35,104, - 42,218, 35,104, 42,218, 0,216, 0, 36,255,174, 0, 44, 0, 41, 0, 55, 0, 82, 0, 57, 0, 82, 0, 58, 0,102, 0, 59, 0, 41, - 0, 60, 0, 82, 0, 61, 0, 41, 0, 70,255,195, 0, 71,255,195, 0, 72,255,195, 0, 74,255,215, 0, 82,255,195, 0, 84,255,195, - 0, 87, 0, 41, 0, 89, 0, 41, 0, 90, 0, 20, 0, 92, 0, 41, 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, - 0,134,255,174, 0,135,255,174, 0,136,255, 92, 0,142, 0, 41, 0,143, 0, 41, 0,144, 0, 41, 0,145, 0, 41, 0,159, 0, 82, - 0,168,255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,180,255,195, 0,181,255,195, - 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,191, 0, 41, 0,193, 0, 41, 0,194,255,174, 0,196,255,174, - 0,198,255,174, 0,201,255,195, 0,203,255,195, 0,205,255,195, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, - 0,219,255,195, 0,221,255,195, 0,236, 0, 41, 0,240, 0, 41, 0,242, 0, 41, 1, 15,255,195, 1, 17,255,195, 1, 19,255,195, - 1, 21,255,195, 1, 36, 0, 82, 1, 38, 0, 82, 1, 54, 0,102, 1, 55, 0, 20, 1, 56, 0, 82, 1, 57, 0, 41, 1, 58, 0, 82, - 1, 59, 0, 41, 1, 61, 0, 41, 1, 63, 0, 41, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,113, 0, 82, 1,121,255,195, - 1,126,255,195, 1,128, 0, 41, 1,130,255,195, 1,138, 0, 41, 1,140,255,195, 1,142,255,195, 1,144,255,195, 1,145, 0, 41, - 1,147,255,195, 1,148, 0, 41, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,157, 0, 82, 1,164,255,154, 1,166, 0, 82, - 1,168, 0, 61, 1,170,255,174, 1,174,255,133, 1,176, 0, 61, 1,177, 0, 20, 1,181,255,133, 1,188, 0, 82, 1,189, 0, 61, - 1,191, 0, 41, 1,196, 0, 82, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,220, 0, 41, 1,221, 0, 41, 1,222,255,195, - 1,234,255,195, 1,237,255,195, 1,250, 0,102, 1,251, 0, 20, 1,252, 0,102, 1,253, 0, 20, 1,254, 0,102, 1,255, 0, 20, - 2, 0, 0, 82, 2, 1, 0, 41, 2, 40,255,174, 2, 88,255,174, 2, 96,255,195, 2,106,255,195, 2,109, 0, 41, 2,114,255,174, - 2,118, 0, 61, 2,127,255,195, 2,129, 0, 41, 2,131, 0, 41, 2,133,255,195, 2,135,255,195, 2,137,255,195, 2,139, 0, 41, - 2,141,255,195, 2,159, 0, 61, 2,169, 0, 82, 2,170, 0, 41, 2,178,255,195, 2,180,255,195, 2,181, 0, 82, 2,182, 0, 41, - 2,183, 0, 82, 2,184, 0, 41, 2,185, 0, 82, 2,186, 0, 41, 2,187, 0, 61, 2,189, 0, 82, 2,202, 0, 61, 2,206,255,133, - 2,217,255,174, 2,219,255,174, 2,221,255,174, 2,224,255,195, 2,229, 0, 61, 2,240,255,195, 2,242,255,195, 2,244,255,195, - 2,247, 0, 61, 2,248, 0, 41, 2,249, 0, 61, 2,250, 0, 41, 2,251, 0, 61, 2,252, 0, 41, 3, 5, 0, 61, 3, 7, 0, 61, - 3, 10,255,195, 3, 12,255,195, 3, 14, 0, 41, 3, 16, 0, 41, 3, 17,255,133, 3, 22,255,195, 3, 23, 0, 82, 3, 24, 0, 41, - 3, 26,255,195, 3, 27,255,133, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, - 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, 3, 51,255,174, 3, 54,255,195, 3, 56,255,195, - 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 69, 0, 41, 3, 71, 0, 41, - 3, 74,255,195, 3, 76,255,195, 3, 78,255,195, 3, 80,255,195, 3, 82,255,195, 3, 84,255,195, 3, 86,255,195, 3, 88,255,195, - 3, 90,255,195, 3, 92,255,195, 3, 94,255,195, 3, 96,255,195, 3,111, 0, 82, 3,112, 0, 41, 3,113, 0, 82, 3,114, 0, 41, - 3,115, 0, 82, 3,116, 0, 41, 0, 3, 0, 45, 0,123, 0,246, 0,123, 1,163, 0,123, 0, 94, 0, 38,255,195, 0, 42,255,195, - 0, 50,255,195, 0, 52,255,195, 0, 55,255,154, 0, 56,255,215, 0, 57,255,154, 0, 58,255,174, 0, 60,255,154, 0,137,255,195, - 0,148,255,195, 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,155,255,215, 0,156,255,215, - 0,157,255,215, 0,158,255,215, 0,159,255,154, 0,200,255,195, 0,206,255,195, 0,222,255,195, 0,224,255,195, 0,226,255,195, - 0,228,255,195, 1, 14,255,195, 1, 18,255,195, 1, 36,255,154, 1, 38,255,154, 1, 44,255,215, 1, 48,255,215, 1, 50,255,215, - 1, 52,255,215, 1, 54,255,174, 1, 56,255,154, 1, 58,255,154, 1,102,255,195, 1,109,255,195, 1,113,255,154, 1,184,255,195, - 1,187,255,195, 1,188,255,154, 1,250,255,174, 1,252,255,174, 1,254,255,174, 2, 0,255,154, 2, 95,255,195, 2, 97,255,215, - 2,108,255,195, 2,126,255,195, 2,132,255,195, 2,134,255,195, 2,136,255,195, 2,138,255,195, 2,140,255,195, 2,169,255,154, - 2,177,255,195, 2,179,255,195, 2,181,255,154, 2,183,255,154, 2,185,255,154, 2,189,255,154, 2,225,255,195, 2,227,255,195, - 2,239,255,195, 2,241,255,195, 2,243,255,195, 3, 21,255,195, 3, 23,255,154, 3, 25,255,195, 3, 73,255,195, 3, 75,255,195, - 3, 77,255,195, 3, 79,255,195, 3, 81,255,195, 3, 83,255,195, 3, 85,255,195, 3, 87,255,195, 3, 89,255,195, 3, 91,255,195, - 3, 93,255,195, 3, 95,255,195, 3, 97,255,215, 3, 99,255,215, 3,101,255,215, 3,103,255,215, 3,105,255,215, 3,107,255,215, - 3,109,255,215, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 23, 0, 55,255,154, 1,113,255,154, 1,114,255,195, 1,176, -255,215, 1,181,255,215, 1,188,255,154, 1,196,255,174, 2,118,255,215, 2,159,255,215, 2,169,255,154, 2,181,255,154, 2,183, -255,154, 2,185,255,154, 2,187,255,215, 2,189,255,154, 2,202,255,215, 2,206,255,215, 2,229,255,215, 3, 5,255,215, 3, 7, -255,215, 3, 17,255,215, 3, 23,255,154, 3, 27,255,215, 0, 99, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, - 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, - 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, - 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, - 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, - 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, - 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, - 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, - 2,138,255,236, 2,140,255,236, 2,169,255,133, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, - 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, - 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, - 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, - 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 24, 0, 44, -255,236, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, 1, 38,255,236, 1, 56, -255,236, 1, 58,255,236, 1,113,255,236, 1,188,255,236, 2, 0,255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185, -255,236, 2,189,255,236, 3, 23,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 59, - 0, 5, 0, 41, 0, 10, 0, 41, 0, 12, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 64, 0, 41, - 0, 96, 0, 41, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, - 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, - 1,102,255,215, 1,109,255,215, 1,184,255,215, 1,187,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, - 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, - 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, - 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, - 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0, 75, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55, -255,195, 0, 57,255,236, 0, 58,255,236, 0, 59,255,236, 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132, -255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,195, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145, -255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36, -255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67, -255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254, -255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185, -255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, -255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, -255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 57, 0, 5, 0, 61, - 0, 10, 0, 61, 0, 12, 0, 41, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,215, 0, 57, 0, 20, 0, 58, 0, 20, - 0, 60, 0, 20, 0, 64, 0, 41, 0, 96, 0, 41, 0,130,255,215, 0,131,255,215, 0,132,255,215, 0,133,255,215, 0,134,255,215, - 0,135,255,215, 0,136,255,195, 0,159, 0, 20, 0,194,255,215, 0,196,255,215, 0,198,255,215, 1, 54, 0, 20, 1, 56, 0, 20, - 1, 58, 0, 20, 1, 67,255,215, 1, 95,255,215, 1,105,255,215, 1,170,255,215, 1,250, 0, 20, 1,252, 0, 20, 1,254, 0, 20, - 2, 0, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 2, 40,255,215, 2, 88,255,215, 2,114,255,215, 2,217,255,215, 2,219,255,215, - 2,221,255,215, 3, 29,255,215, 3, 31,255,215, 3, 33,255,215, 3, 35,255,215, 3, 37,255,215, 3, 39,255,215, 3, 41,255,215, - 3, 43,255,215, 3, 45,255,215, 3, 47,255,215, 3, 49,255,215, 3, 51,255,215, 3,111, 0, 20, 3,113, 0, 20, 3,115, 0, 20, - 0, 57, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148, -255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222, -255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109, -255,236, 1,184,255,236, 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132, -255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227, -255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77, -255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93, -255,236, 3, 95,255,236, 0, 57, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, - 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, - 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, - 1,102,255,215, 1,109,255,215, 1,184,255,215, 1,187,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, - 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, - 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, - 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, - 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0, 99, 0, 5,255,154, 0, 10,255,154, 0, 38,255,236, 0, 42,255,236, 0, 50, -255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148, -255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157, -255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228, -255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50, -255,236, 1, 52,255,236, 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,184, -255,236, 1,187,255,236, 1,188,255,133, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0,255,154, 2, 7,255,154, 2, 11, -255,154, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138, -255,236, 2,140,255,236, 2,169,255,133, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, 2,189, -255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, 3, 25, -255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87, -255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103, -255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 75, 0, 15,255,195, - 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, - 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, - 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, - 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, - 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, 1,170,255,236, - 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, - 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, - 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, - 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, - 3,113,255,215, 3,115,255,215, 0, 53, 0, 15,255, 51, 0, 17,255, 51, 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60, -255,236, 0, 61,255,215, 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136, -255,113, 0,137,255,236, 0,159,255,236, 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56, -255,236, 1, 58,255,236, 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,170, -255,174, 1,187,255,236, 2, 0,255,236, 2, 40,255,174, 2, 88,255,174, 2,114,255,174, 2,217,255,174, 2,219,255,174, 2,221, -255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43, -255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 75, - 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, - 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, - 0,136,255,195, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, - 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, - 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,113,255,195, - 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, - 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, - 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, - 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, - 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 11, 0, 55,255,236, 1, 36,255,236, 1, 38,255,236, 1,113,255,236, 1,188, -255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,189,255,236, 3, 23,255,236, 1, 32, 0, 5, 0, 82, - 0, 10, 0, 82, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, - 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, - 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, - 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,130,255,133, 0,131,255,133, - 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, 0,149,255,195, - 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, 0,165,255,133, - 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, 0,173,255,133, - 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, 0,187,255,174, - 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, 0,196,255,133, - 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, 0,206,255,195, - 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, 0,224,255,195, - 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, 1, 17,255,133, - 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, 1, 32,255,236, - 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, 1, 64,255,195, - 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1,102,255,195, 1,105,255,133, 1,109,255,195, 1,113, 0, 20, - 1,121,255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,130,255,133, 1,132,255,174, 1,138,255,195, 1,140,255,133, - 1,142,255,133, 1,144,255,133, 1,145,255,195, 1,147,255,133, 1,148,255,195, 1,150,255,133, 1,153,255,133, 1,155,255,133, - 1,160,255,236, 1,170,255,133, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,202,255,133, 1,207,255,133, 1,216,255,133, - 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,234,255,133, 1,237,255,133, 1,238,255,133, 1,251,255,195, - 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 2,255,174, 2, 3,255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,133, - 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 2,106,255,133, 2,108,255,195, 2,109,255,195, 2,114,255,133, - 2,126,255,195, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135,255,133, - 2,136,255,195, 2,137,255,133, 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,169, 0, 20, 2,170,255,195, - 2,177,255,195, 2,178,255,133, 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184,255,195, - 2,185, 0, 20, 2,186,255,195, 2,189, 0, 20, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, - 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243,255,195, - 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 3, 10,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, - 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 29,255,133, 3, 30,255,133, - 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39,255,133, - 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47,255,133, - 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58,255,133, - 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75,255,195, - 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83,255,195, - 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91,255,195, - 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102,255,174, - 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 0, 35, 0, 15, -255,215, 0, 17,255,215, 0, 36,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135, -255,236, 0,136,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,170, -255,236, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 29,255,236, 3, 31, -255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47, -255,236, 3, 49,255,236, 3, 51,255,236, 0,232, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, - 0, 36,255,195, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, - 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81,255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, - 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131,255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, - 0,136,255,133, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, - 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168,255,195, 0,169,255,195, - 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181,255,195, 0,182,255,195, - 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190,255,215, 0,194,255,195, - 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,215, 0,201,255,195, 0,203,255,195, - 0,205,255,195, 0,206,255,215, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, - 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 6,255,215, 1, 8,255,215, 1, 10,255,215, 1, 14,255,215, - 1, 15,255,195, 1, 17,255,195, 1, 18,255,215, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29,255,215, 1, 31,255,215, - 1, 33,255,215, 1, 35,255,215, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1, 95,255,195, 1,102,255,215, 1,105,255,195, - 1,109,255,215, 1,121,255,195, 1,123,255,215, 1,126,255,195, 1,130,255,195, 1,132,255,215, 1,140,255,195, 1,142,255,195, - 1,144,255,195, 1,147,255,195, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,170,255,195, 1,184,255,215, 1,187,255,215, - 1,202,255,195, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,222,255,195, 1,234,255,195, 1,237,255,195, 1,238,255,215, - 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,195, 2, 88,255,195, 2, 89,255,195, 2, 95,255,215, 2, 96,255,195, 2,106,255,195, - 2,108,255,215, 2,114,255,195, 2,126,255,215, 2,127,255,195, 2,132,255,215, 2,133,255,195, 2,134,255,215, 2,135,255,195, - 2,136,255,215, 2,137,255,195, 2,138,255,215, 2,140,255,215, 2,141,255,195, 2,177,255,215, 2,178,255,195, 2,179,255,215, - 2,180,255,195, 2,217,255,195, 2,218,255,195, 2,219,255,195, 2,220,255,195, 2,221,255,195, 2,224,255,195, 2,225,255,215, - 2,227,255,215, 2,239,255,215, 2,240,255,195, 2,241,255,215, 2,242,255,195, 2,243,255,215, 2,244,255,195, 3, 10,255,195, - 3, 12,255,195, 3, 21,255,215, 3, 22,255,195, 3, 25,255,215, 3, 26,255,195, 3, 29,255,195, 3, 30,255,195, 3, 31,255,195, - 3, 33,255,195, 3, 34,255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, 3, 39,255,195, 3, 40,255,195, - 3, 41,255,195, 3, 42,255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, 3, 47,255,195, 3, 48,255,195, - 3, 49,255,195, 3, 50,255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, - 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,215, 3, 74,255,195, 3, 75,255,215, 3, 76,255,195, - 3, 77,255,215, 3, 78,255,195, 3, 79,255,215, 3, 80,255,195, 3, 81,255,215, 3, 82,255,195, 3, 83,255,215, 3, 84,255,195, - 3, 85,255,215, 3, 86,255,195, 3, 87,255,215, 3, 88,255,195, 3, 89,255,215, 3, 90,255,195, 3, 91,255,215, 3, 92,255,195, - 3, 93,255,215, 3, 94,255,195, 3, 95,255,215, 3, 96,255,195, 3, 98,255,215, 3,100,255,215, 3,102,255,215, 3,104,255,215, - 3,106,255,215, 3,108,255,215, 3,110,255,215, 0,233, 0, 5, 0,102, 0, 10, 0,102, 0, 15,255,174, 0, 17,255,174, 0, 36, -255,215, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 68,255,215, 0, 70,255,215, 0, 71,255,215, 0, 72, -255,215, 0, 74,255,236, 0, 80,255,236, 0, 81,255,236, 0, 82,255,215, 0, 83,255,236, 0, 84,255,215, 0, 85,255,236, 0, 86, -255,215, 0, 88,255,236, 0, 93,255,236, 0,130,255,215, 0,131,255,215, 0,132,255,215, 0,133,255,215, 0,134,255,215, 0,135, -255,215, 0,136,255,174, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154, -255,236, 0,162,255,215, 0,163,255,215, 0,164,255,215, 0,165,255,215, 0,166,255,215, 0,167,255,215, 0,168,255,215, 0,169, -255,215, 0,170,255,215, 0,171,255,215, 0,172,255,215, 0,173,255,215, 0,179,255,236, 0,180,255,215, 0,181,255,215, 0,182, -255,215, 0,183,255,215, 0,184,255,215, 0,186,255,215, 0,187,255,236, 0,188,255,236, 0,189,255,236, 0,190,255,236, 0,194, -255,215, 0,195,255,215, 0,196,255,215, 0,197,255,215, 0,198,255,215, 0,199,255,215, 0,200,255,236, 0,201,255,215, 0,203, -255,215, 0,205,255,215, 0,206,255,236, 0,207,255,215, 0,213,255,215, 0,215,255,215, 0,217,255,215, 0,219,255,215, 0,221, -255,215, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 6,255,236, 1, 8,255,236, 1, 10,255,236, 1, 14, -255,236, 1, 15,255,215, 1, 17,255,215, 1, 18,255,236, 1, 19,255,215, 1, 20,255,236, 1, 21,255,215, 1, 29,255,215, 1, 31, -255,215, 1, 33,255,215, 1, 35,255,215, 1, 64,255,236, 1, 67,255,215, 1, 68,255,215, 1, 74,255,215, 1, 95,255,215, 1,102, -255,236, 1,105,255,215, 1,109,255,236, 1,121,255,215, 1,123,255,236, 1,126,255,215, 1,130,255,215, 1,132,255,236, 1,140, -255,215, 1,142,255,215, 1,144,255,215, 1,147,255,215, 1,150,255,215, 1,153,255,215, 1,155,255,215, 1,170,255,215, 1,184, -255,236, 1,187,255,236, 1,202,255,215, 1,207,255,215, 1,216,255,215, 1,219,255,215, 1,222,255,215, 1,234,255,215, 1,237, -255,215, 1,238,255,215, 2, 7, 0,102, 2, 11, 0,102, 2, 40,255,215, 2, 88,255,215, 2, 89,255,215, 2, 95,255,236, 2, 96, -255,215, 2,106,255,215, 2,108,255,236, 2,114,255,215, 2,126,255,236, 2,127,255,215, 2,132,255,236, 2,133,255,215, 2,134, -255,236, 2,135,255,215, 2,136,255,236, 2,137,255,215, 2,138,255,236, 2,140,255,236, 2,141,255,215, 2,177,255,236, 2,178, -255,215, 2,179,255,236, 2,180,255,215, 2,217,255,215, 2,218,255,215, 2,219,255,215, 2,220,255,215, 2,221,255,215, 2,224, -255,215, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,240,255,215, 2,241,255,236, 2,242,255,215, 2,243,255,236, 2,244, -255,215, 3, 10,255,215, 3, 12,255,215, 3, 21,255,236, 3, 22,255,215, 3, 25,255,236, 3, 26,255,215, 3, 29,255,215, 3, 30, -255,215, 3, 31,255,215, 3, 33,255,215, 3, 34,255,215, 3, 35,255,215, 3, 36,255,215, 3, 37,255,215, 3, 38,255,215, 3, 39, -255,215, 3, 40,255,215, 3, 41,255,215, 3, 42,255,215, 3, 43,255,215, 3, 44,255,215, 3, 45,255,215, 3, 46,255,215, 3, 47, -255,215, 3, 48,255,215, 3, 49,255,215, 3, 50,255,215, 3, 51,255,215, 3, 52,255,215, 3, 54,255,215, 3, 56,255,215, 3, 58, -255,215, 3, 60,255,215, 3, 62,255,215, 3, 64,255,215, 3, 66,255,215, 3, 68,255,215, 3, 73,255,236, 3, 74,255,215, 3, 75, -255,236, 3, 76,255,215, 3, 77,255,236, 3, 78,255,215, 3, 79,255,236, 3, 80,255,215, 3, 81,255,236, 3, 82,255,215, 3, 83, -255,236, 3, 84,255,215, 3, 85,255,236, 3, 86,255,215, 3, 87,255,236, 3, 88,255,215, 3, 89,255,236, 3, 90,255,215, 3, 91, -255,236, 3, 92,255,215, 3, 93,255,236, 3, 94,255,215, 3, 95,255,236, 3, 96,255,215, 3, 98,255,236, 3,100,255,236, 3,102, -255,236, 3,104,255,236, 3,106,255,236, 3,108,255,236, 3,110,255,236, 0,140, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, - 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 70,255,236, 0, 71,255,236, 0, 72,255,236, 0, 82,255,236, 0, 84,255,236, - 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,168,255,236, - 0,169,255,236, 0,170,255,236, 0,171,255,236, 0,172,255,236, 0,173,255,236, 0,180,255,236, 0,181,255,236, 0,182,255,236, - 0,183,255,236, 0,184,255,236, 0,186,255,236, 0,200,255,215, 0,201,255,236, 0,203,255,236, 0,205,255,236, 0,206,255,215, - 0,207,255,236, 0,213,255,236, 0,215,255,236, 0,217,255,236, 0,219,255,236, 0,221,255,236, 0,222,255,215, 0,224,255,215, - 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 15,255,236, 1, 17,255,236, 1, 18,255,215, 1, 19,255,236, 1, 20,255,215, - 1, 21,255,236, 1,102,255,215, 1,109,255,215, 1,121,255,236, 1,126,255,236, 1,130,255,236, 1,140,255,236, 1,142,255,236, - 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,184,255,215, 1,187,255,215, 1,207,255,236, - 1,216,255,236, 1,219,255,236, 1,222,255,236, 1,234,255,236, 1,237,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, - 2, 96,255,236, 2,106,255,236, 2,108,255,215, 2,126,255,215, 2,127,255,236, 2,132,255,215, 2,133,255,236, 2,134,255,215, - 2,135,255,236, 2,136,255,215, 2,137,255,236, 2,138,255,215, 2,140,255,215, 2,141,255,236, 2,177,255,215, 2,178,255,236, - 2,179,255,215, 2,180,255,236, 2,224,255,236, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,236, 2,241,255,215, - 2,242,255,236, 2,243,255,215, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 21,255,215, 3, 22,255,236, 3, 25,255,215, - 3, 26,255,236, 3, 54,255,236, 3, 56,255,236, 3, 58,255,236, 3, 60,255,236, 3, 62,255,236, 3, 64,255,236, 3, 66,255,236, - 3, 68,255,236, 3, 73,255,215, 3, 74,255,236, 3, 75,255,215, 3, 76,255,236, 3, 77,255,215, 3, 78,255,236, 3, 79,255,215, - 3, 80,255,236, 3, 81,255,215, 3, 82,255,236, 3, 83,255,215, 3, 84,255,236, 3, 85,255,215, 3, 86,255,236, 3, 87,255,215, - 3, 88,255,236, 3, 89,255,215, 3, 90,255,236, 3, 91,255,215, 3, 92,255,236, 3, 93,255,215, 3, 94,255,236, 3, 95,255,215, - 3, 96,255,236, 1, 6, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38, -255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 54,255,236, 0, 68,255,154, 0, 70,255,154, 0, 71,255,154, 0, 72, -255,154, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83,255,195, 0, 84,255,154, 0, 85,255,195, 0, 86, -255,174, 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133, -255,154, 0,134,255,154, 0,135,255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151, -255,215, 0,152,255,215, 0,154,255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167, -255,154, 0,168,255,154, 0,169,255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180, -255,154, 0,181,255,154, 0,182,255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189, -255,195, 0,190,255,195, 0,191,255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198, -255,154, 0,199,255,154, 0,200,255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213, -255,154, 0,215,255,154, 0,217,255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228, -255,215, 1, 6,255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19, -255,154, 1, 20,255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34, -255,236, 1, 35,255,174, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68,255,154, 1, 74,255,174, 1, 95,255,154, 1,102, -255,215, 1,105,255,154, 1,109,255,215, 1,121,255,154, 1,123,255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132, -255,195, 1,138,255,236, 1,140,255,154, 1,142,255,154, 1,144,255,154, 1,147,255,154, 1,150,255,154, 1,153,255,154, 1,155, -255,154, 1,160,255,236, 1,170,255,154, 1,184,255,215, 1,187,255,215, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219, -255,154, 1,221,255,236, 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 2, 1,255,236, 2, 7, 0, 82, 2, 11, - 0, 82, 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109, -255,236, 2,114,255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134, -255,215, 2,135,255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,177, -255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,184,255,236, 2,186,255,236, 2,217,255,154, 2,218,255,154, 2,219, -255,154, 2,220,255,154, 2,221,255,154, 2,224,255,154, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241, -255,215, 2,242,255,154, 2,243,255,215, 2,244,255,154, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12, -255,154, 3, 14,255,236, 3, 16,255,236, 3, 21,255,215, 3, 22,255,154, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30, -255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39, -255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47, -255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58, -255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75, -255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83, -255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91, -255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102, -255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0, 57, - 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, - 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, - 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1,102,255,236, 1,109,255,236, - 1,184,255,236, 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, - 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, - 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, - 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, - 3, 95,255,236, 0, 1, 0, 10,255,215, 0, 4, 0, 5, 0, 61, 0, 10, 0, 61, 2, 7, 0, 61, 2, 11, 0, 61, 0, 38, 0, 5, - 0,102, 0, 10, 0,102, 0, 89, 0, 20, 0, 90, 0, 20, 0, 92, 0, 20, 0,191, 0, 20, 0,193, 0, 20, 1, 55, 0, 20, 1, 57, - 0, 20, 1,128, 0, 20, 1,138, 0, 20, 1,145, 0, 20, 1,148, 0, 20, 1,220, 0, 20, 1,221, 0, 20, 1,251, 0, 20, 1,253, - 0, 20, 1,255, 0, 20, 2, 1, 0, 20, 2, 7, 0,102, 2, 11, 0,102, 2,109, 0, 20, 2,129, 0, 20, 2,131, 0, 20, 2,139, - 0, 20, 2,170, 0, 20, 2,182, 0, 20, 2,184, 0, 20, 2,186, 0, 20, 2,248, 0, 20, 2,250, 0, 20, 2,252, 0, 20, 3, 14, - 0, 20, 3, 16, 0, 20, 3, 24, 0, 20, 3,112, 0, 20, 3,114, 0, 20, 3,116, 0, 20, 0, 5, 0, 5, 0, 41, 0, 10, 0, 41, - 0, 74, 0, 20, 2, 7, 0, 41, 2, 11, 0, 41, 0, 1, 0, 10,255,195, 0, 4, 0, 5, 0, 41, 0, 10, 0, 41, 2, 7, 0, 41, - 2, 11, 0, 41, 0, 3, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 0, 31, 0, 5, 0,102, 0, 10, 0,102, 0, 68,255,236, - 0, 74,255,236, 0,162,255,236, 0,163,255,236, 0,164,255,236, 0,165,255,236, 0,166,255,236, 0,167,255,236, 0,195,255,236, - 0,197,255,236, 0,199,255,236, 1, 68,255,236, 1,202,255,236, 2, 7, 0,102, 2, 11, 0,102, 2, 89,255,236, 2,218,255,236, - 2,220,255,236, 3, 30,255,236, 3, 34,255,236, 3, 36,255,236, 3, 38,255,236, 3, 40,255,236, 3, 42,255,236, 3, 44,255,236, - 3, 46,255,236, 3, 48,255,236, 3, 50,255,236, 3, 52,255,236, 0, 5, 0, 5, 0, 82, 0, 10, 0, 82, 0, 87, 0, 20, 2, 7, - 0, 82, 2, 11, 0, 82, 0, 5, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, 0, 54, 0, 5, - 0, 41, 0, 10, 0, 41, 0, 82,255,215, 0,168,255,215, 0,180,255,215, 0,181,255,215, 0,182,255,215, 0,183,255,215, 0,184, -255,215, 0,186,255,215, 1, 15,255,215, 1, 17,255,215, 1, 19,255,215, 1, 21,255,215, 1,140,255,215, 1,142,255,215, 1,144, -255,215, 1,147,255,215, 1,150,255,215, 1,153,255,215, 1,155,255,215, 1,216,255,215, 1,222,255,215, 2, 7, 0, 41, 2, 11, - 0, 41, 2, 96,255,215, 2,106,255,215, 2,127,255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178, -255,215, 2,180,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, 3, 12,255,215, 3, 22, -255,215, 3, 26,255,215, 3, 74,255,215, 3, 76,255,215, 3, 78,255,215, 3, 80,255,215, 3, 82,255,215, 3, 84,255,215, 3, 86, -255,215, 3, 88,255,215, 3, 90,255,215, 3, 92,255,215, 3, 94,255,215, 3, 96,255,215, 0, 5, 0, 5, 0, 61, 0, 10, 0, 61, - 0, 73, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0, 50, 0, 82,255,236, 0,168,255,236, 0,180,255,236, 0,181,255,236, 0,182, -255,236, 0,183,255,236, 0,184,255,236, 0,186,255,236, 1, 15,255,236, 1, 17,255,236, 1, 19,255,236, 1, 21,255,236, 1,140, -255,236, 1,142,255,236, 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,216,255,236, 1,222, -255,236, 2, 96,255,236, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178, -255,236, 2,180,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22, -255,236, 3, 26,255,236, 3, 74,255,236, 3, 76,255,236, 3, 78,255,236, 3, 80,255,236, 3, 82,255,236, 3, 84,255,236, 3, 86, -255,236, 3, 88,255,236, 3, 90,255,236, 3, 92,255,236, 3, 94,255,236, 3, 96,255,236, 0, 3, 1,113,255,215, 1,120,255,215, - 1,145, 0, 41, 0, 3, 1,113,255,154, 1,114,255,195, 1,120,255,195, 0,147, 0, 5,255,174, 0, 10,255,174, 0, 13,255,133, - 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,195, 0, 38,255,236, 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, - 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, 0, 59, 0, 73,255,236, 0, 87,255,236, - 0, 89,255,215, 0, 90,255,236, 0, 92,255,215, 0,130,255,215, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, - 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, - 0,191,255,215, 0,193,255,215, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, - 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, - 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,236, 1, 56,255,154, 1, 57,255,215, 1, 58,255,154, 1, 59, 0, 59, - 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,215, 1,138,255,215, 1,145,255,215, - 1,148,255,215, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,215, 1,221,255,215, 1,250,255,215, - 1,251,255,236, 1,252,255,215, 1,253,255,236, 1,254,255,215, 1,255,255,236, 2, 0,255,154, 2, 1,255,215, 2, 7,255,174, - 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,129,255,215, 2,131,255,215, - 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,215, 2,140,255,236, 2,169,255,133, 2,170,255,215, - 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,184,255,215, 2,185,255,133, 2,186,255,215, - 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,215, 2,250,255,215, - 2,252,255,215, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 73,255,236, - 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, - 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, - 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,215, 3,113,255,154, 3,114,255,215, 3,115,255,154, 3,116,255,215, - 0,144, 0, 5,255,174, 0, 10,255,174, 0, 13,255,133, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,195, 0, 38,255,236, 0, 42, -255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, - 0, 59, 0, 73,255,236, 0, 87,255,236, 0, 89,255,215, 0, 90,255,236, 0, 92,255,215, 0,137,255,236, 0,148,255,236, 0,149, -255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, -255,236, 0,159,255,154, 0,191,255,215, 0,193,255,215, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, -255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48, -255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,236, 1, 56,255,154, 1, 57,255,215, 1, 58,255,154, 1, 59, - 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,215, 1,138,255,215, 1,145, -255,215, 1,148,255,215, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,215, 1,221,255,215, 1,250, -255,215, 1,251,255,236, 1,252,255,215, 1,253,255,236, 1,254,255,215, 1,255,255,236, 2, 0,255,154, 2, 1,255,215, 2, 7, -255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,129,255,215, 2,131, -255,215, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,215, 2,140,255,236, 2,169,255,133, 2,170, -255,215, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,184,255,215, 2,185,255,133, 2,186, -255,215, 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,215, 2,250, -255,215, 2,252,255,215, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 73, -255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, -255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105, -255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,215, 3,113,255,154, 3,114,255,215, 3,115,255,154, 3,116, -255,215, 0,145, 0, 5,255,174, 0, 10,255,174, 0, 13,255,127, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34,255,215, 0, 38,255,236, - 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, - 0, 60,255,154, 0, 61, 0, 59, 0, 87,255,229, 0, 89,255,213, 0, 90,255,229, 0, 92,255,219, 0,137,255,236, 0,148,255,236, - 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, - 0,158,255,236, 0,159,255,154, 0,191,255,219, 0,193,255,219, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, - 0,226,255,236, 0,228,255,236, 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, - 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,229, 1, 56,255,154, 1, 57,255,219, - 1, 58,255,154, 1, 59, 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,128,255,219, - 1,138,255,213, 1,145,255,213, 1,148,255,213, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,220,255,213, - 1,221,255,219, 1,250,255,215, 1,251,255,229, 1,252,255,215, 1,253,255,229, 1,254,255,215, 1,255,255,229, 2, 0,255,154, - 2, 1,255,219, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,219, 2,126,255,236, - 2,129,255,219, 2,131,255,219, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,139,255,219, 2,140,255,236, - 2,169,255,133, 2,170,255,213, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182,255,213, 2,183,255,133, 2,184,255,219, - 2,185,255,133, 2,186,255,219, 2,189,255,133, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, - 2,248,255,219, 2,250,255,219, 2,252,255,219, 3, 14,255,219, 3, 16,255,219, 3, 21,255,236, 3, 23,255,133, 3, 24,255,213, - 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, - 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, - 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,112,255,219, 3,113,255,154, 3,114,255,219, - 3,115,255,154, 3,116,255,219, 0,148, 0, 5,255,102, 0, 10,255,102, 0, 13,255,127, 0, 15, 0, 68, 0, 30, 0, 68, 0, 34, -255,215, 0, 38,255,236, 0, 42,255,236, 0, 45, 0, 94, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57, -255,195, 0, 58,255,215, 0, 60,255,154, 0, 61, 0, 59, 0, 87,255,229, 0, 89,255,213, 0, 90,255,229, 0, 92,255,219, 0,137, -255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156, -255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,191,255,219, 0,193,255,219, 0,200,255,236, 0,206,255,236, 0,222, -255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 0,246, 0, 94, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36, -255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 55,255,229, 1, 56, -255,154, 1, 57,255,219, 1, 58,255,154, 1, 59, 0, 59, 1, 61, 0, 59, 1, 63, 0, 59, 1,102,255,236, 1,109,255,236, 1,113, -255,133, 1,128,255,219, 1,138,255,213, 1,145,255,213, 1,148,255,213, 1,163, 0, 94, 1,184,255,236, 1,187,255,236, 1,188, -255,133, 1,220,255,213, 1,221,255,219, 1,250,255,215, 1,251,255,229, 1,252,255,215, 1,253,255,229, 1,254,255,215, 1,255, -255,229, 2, 0,255,154, 2, 1,255,219, 2, 6,255,102, 2, 7,255,174, 2, 10,255,102, 2, 11,255,174, 2, 32,255,154, 2, 95, -255,236, 2, 97,255,236, 2,108,255,236, 2,109,255,219, 2,126,255,236, 2,129,255,219, 2,131,255,219, 2,132,255,236, 2,134, -255,236, 2,136,255,236, 2,138,255,236, 2,139,255,219, 2,140,255,236, 2,169,255,133, 2,170,255,213, 2,177,255,236, 2,179, -255,236, 2,181,255,133, 2,182,255,213, 2,183,255,133, 2,184,255,219, 2,185,255,133, 2,186,255,219, 2,189,255,133, 2,225, -255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,248,255,219, 2,250,255,219, 2,252,255,219, 3, 14, -255,219, 3, 16,255,219, 3, 21,255,236, 3, 23,255,133, 3, 24,255,213, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77, -255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93, -255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109, -255,236, 3,111,255,154, 3,112,255,219, 3,113,255,154, 3,114,255,219, 3,115,255,154, 3,116,255,219, 0, 57, 0, 5, 0, 41, - 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 50,255,236, 0, 52,255,236, 0,132,255,236, 0,137,255,236, 0,138,255,236, - 0,143,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, - 0,206,255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18,255,236, 1,102,255,236, 1,109,255,236, 1,163, 0, 61, 1,184,255,236, - 1,187,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, - 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, - 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, - 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, - 0, 55, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,139, -255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206, -255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18,255,236, 1,102,255,236, 1,109,255,236, 1,163, 0, 61, 1,184,255,236, 1,187, -255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136, -255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241, -255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, -255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 32, - 0, 36,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,194,255,236, - 0,196,255,236, 0,198,255,236, 1, 67,255,236, 1, 95,255,236, 1,105,255,236, 1,170,255,236, 2, 40,255,236, 2, 88,255,236, - 2,114,255,236, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, - 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, - 0, 86, 0, 12,255,215, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 45,255,246, 0, 54,255,236, 0, 55, -255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, 0, 61,255,236, 0, 64,255,215, 0, 96,255,215, 0,130, -255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,142,255,236, 0,143, -255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, 0,240, -255,236, 0,242,255,236, 0,246,255,246, 1, 28,255,236, 1, 32,255,236, 1, 34,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54, -255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,105, -255,236, 1,113,255,195, 1,160,255,236, 1,163,255,246, 1,170,255,236, 1,188,255,195, 1,250,255,236, 1,252,255,236, 1,254, -255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185, -255,195, 2,189,255,195, 2,217,255,236, 2,219,255,236, 2,221,255,236, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, -255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, -255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 66, 0, 15,255,215, - 0, 17,255,215, 0, 36,255,236, 0, 48,255,236, 0, 61,255,236, 0, 68,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, - 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,162,255,236, 0,163,255,236, 0,164,255,236, 0,165,255,236, - 0,166,255,236, 0,167,255,236, 0,194,255,236, 0,195,255,236, 0,196,255,236, 0,197,255,236, 0,198,255,236, 0,199,255,236, - 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 68,255,236, 1, 95,255,236, 1,105,255,236, 1,170,255,236, - 1,202,255,236, 2, 40,255,236, 2, 88,255,236, 2, 89,255,236, 2,114,255,236, 2,217,255,236, 2,218,255,236, 2,219,255,236, - 2,220,255,236, 2,221,255,236, 3, 29,255,236, 3, 30,255,236, 3, 31,255,236, 3, 33,255,236, 3, 34,255,236, 3, 35,255,236, - 3, 36,255,236, 3, 37,255,236, 3, 38,255,236, 3, 39,255,236, 3, 40,255,236, 3, 41,255,236, 3, 42,255,236, 3, 43,255,236, - 3, 44,255,236, 3, 45,255,236, 3, 46,255,236, 3, 47,255,236, 3, 48,255,236, 3, 49,255,236, 3, 50,255,236, 3, 51,255,236, - 3, 52,255,236, 1, 46, 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, 0, 41, 0, 15,255,154, 0, 16, -255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45,255,190, 0, 48,255,195, 0, 50, -255,215, 0, 52,255,215, 0, 54,255,236, 0, 55, 0, 39, 0, 57, 0, 41, 0, 58, 0, 20, 0, 64, 0, 61, 0, 68,255,154, 0, 70, -255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83, -255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, 0, 88,255,195, 0, 89,255,215, 0, 90,255,236, 0, 91,255,215, 0, 92, -255,236, 0, 93,255,195, 0, 96, 0, 61, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133,255,154, 0,134,255,154, 0,135, -255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154, -255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167,255,154, 0,168,255,154, 0,169, -255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180,255,154, 0,181,255,154, 0,182, -255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189,255,195, 0,190,255,195, 0,191, -255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198,255,154, 0,199,255,154, 0,200, -255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213,255,154, 0,215,255,154, 0,217, -255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 0,246,255,190, 1, 6, -255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19,255,154, 1, 20, -255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34,255,236, 1, 35, -255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 54, 0, 20, 1, 55,255,236, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68, -255,154, 1, 74,255,174, 1, 95,255,154, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,113, 0, 39, 1,121,255,154, 1,123, -255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132,255,195, 1,138,255,215, 1,140,255,154, 1,142,255,154, 1,144, -255,154, 1,145,255,215, 1,147,255,154, 1,148,255,215, 1,150,255,154, 1,153,255,154, 1,155,255,154, 1,160,255,236, 1,163, -255,190, 1,170,255,154, 1,184,255,215, 1,187,255,215, 1,188, 0, 39, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219, -255,154, 1,220,255,215, 1,221,255,236, 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 1,250, 0, 20, 1,251, -255,236, 1,252, 0, 20, 1,253,255,236, 1,254, 0, 20, 1,255,255,236, 2, 1,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40, -255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109,255,236, 2,114, -255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134,255,215, 2,135, -255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,169, 0, 39, 2,170, -255,215, 2,177,255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,181, 0, 39, 2,182,255,215, 2,183, 0, 39, 2,184, -255,236, 2,185, 0, 39, 2,186,255,236, 2,189, 0, 39, 2,217,255,154, 2,218,255,154, 2,219,255,154, 2,220,255,154, 2,221, -255,154, 2,224,255,154, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241,255,215, 2,242,255,154, 2,243, -255,215, 2,244,255,154, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12,255,154, 3, 14,255,236, 3, 16, -255,236, 3, 21,255,215, 3, 22,255,154, 3, 23, 0, 39, 3, 24,255,215, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30, -255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39, -255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47, -255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58, -255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75, -255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83, -255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91, -255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102, -255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0, 2, - 0, 5,255,152, 0, 10,255,215, 0, 3, 0, 5,255,152, 0, 10,255,215, 2, 11,255,215, 0, 6, 0, 5,255,111, 0, 10,255,111, - 0, 73,255,219, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 0, 2, 0, 5,255,190, 0, 10,255,190, 0, 97, 0, 5, 0, 61, - 0, 10, 0, 61, 0, 15,255,190, 0, 17,255,190, 0, 34,255,180, 0, 70,255,246, 0, 71,255,246, 0, 72,255,246, 0, 73, 0, 20, - 0, 74,255,246, 0, 82,255,246, 0, 84,255,246, 0, 87, 0, 6, 0,168,255,246, 0,169,255,246, 0,170,255,246, 0,171,255,246, - 0,172,255,246, 0,173,255,246, 0,180,255,246, 0,181,255,246, 0,182,255,246, 0,183,255,246, 0,184,255,246, 0,186,255,246, - 0,201,255,246, 0,203,255,246, 0,205,255,246, 0,207,255,246, 0,213,255,246, 0,215,255,246, 0,217,255,246, 0,219,255,246, - 0,221,255,246, 1, 15,255,246, 1, 17,255,246, 1, 19,255,246, 1, 21,255,246, 1,121,255,246, 1,126,255,246, 1,130,255,246, - 1,140,255,246, 1,142,255,246, 1,144,255,246, 1,147,255,246, 1,150,255,246, 1,153,255,246, 1,155,255,246, 1,207,255,246, - 1,216,255,246, 1,219,255,246, 1,222,255,246, 1,234,255,246, 1,237,255,246, 2, 7, 0, 61, 2, 8,255,141, 2, 11, 0, 61, - 2, 12,255,141, 2, 16,255,129, 2, 21, 0, 12, 2, 96,255,246, 2,106,255,246, 2,127,255,246, 2,133,255,246, 2,135,255,246, - 2,137,255,246, 2,141,255,246, 2,178,255,246, 2,180,255,246, 2,224,255,246, 2,240,255,246, 2,242,255,246, 2,244,255,246, - 3, 10,255,246, 3, 12,255,246, 3, 22,255,246, 3, 26,255,246, 3, 54,255,246, 3, 56,255,246, 3, 58,255,246, 3, 60,255,246, - 3, 62,255,246, 3, 64,255,246, 3, 66,255,246, 3, 68,255,246, 3, 74,255,246, 3, 76,255,246, 3, 78,255,246, 3, 80,255,246, - 3, 82,255,246, 3, 84,255,246, 3, 86,255,246, 3, 88,255,246, 3, 90,255,246, 3, 92,255,246, 3, 94,255,246, 3, 96,255,246, - 0, 7, 0, 5, 0, 61, 0, 10, 0, 61, 0, 15,255,190, 0, 17,255,190, 0, 73, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0,100, - 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, 0, 45, 0,225, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, - 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, - 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, - 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, - 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, - 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,184,255,236, 1,187,255,236, 1,188,255,133, - 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, - 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,169,255,133, - 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,225,255,236, 2,227,255,236, - 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 23,255,133, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, - 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, - 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, - 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 31, 0, 5, 0,102, 0, 10, 0,102, 0, 12, 0,143, 0, 34, - 0,164, 0, 64, 0,164, 0, 69, 0, 82, 0, 75, 0, 82, 0, 76, 0, 61, 0, 77, 0, 61, 0, 78, 0, 82, 0, 79, 0, 82, 0, 96, - 0,184, 0,174, 0,246, 0,176, 0,205, 0,177, 0,205, 0,231, 0, 82, 0,233, 0,164, 0,235, 1, 10, 0,237, 0,205, 0,239, - 0,246, 0,241, 0, 41, 0,245, 0, 61, 0,247, 0,225, 0,249, 0, 82, 0,252, 0, 82, 0,254, 0, 82, 1, 0, 0, 82, 1, 2, - 0, 82, 1, 4, 0, 82, 2, 7, 0,143, 2, 11, 0,143, 0, 1, 0, 45, 0,102, 0, 58, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38, -255,236, 0, 42,255,236, 0, 45, 0, 82, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150, -255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, -255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109,255,236, 1,184,255,236, 1,187, -255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136, -255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241, -255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, -255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 66, - 0, 5, 0, 41, 0, 10, 0, 41, 0, 48, 0, 20, 0, 54,255,236, 0, 55,255,215, 0, 57,255,236, 0, 58,255,236, 0, 59,255,215, - 0, 60,255,215, 0, 89,255,236, 0, 92,255,236, 0,159,255,215, 0,191,255,236, 0,193,255,236, 1, 28,255,236, 1, 32,255,236, - 1, 34,255,236, 1, 35,255,236, 1, 36,255,215, 1, 38,255,215, 1, 54,255,236, 1, 56,255,215, 1, 57,255,236, 1, 58,255,215, - 1,113,255,215, 1,128,255,236, 1,138,255,236, 1,145,255,236, 1,148,255,236, 1,160,255,236, 1,188,255,215, 1,220,255,236, - 1,221,255,236, 1,250,255,236, 1,252,255,236, 1,254,255,236, 2, 0,255,215, 2, 1,255,236, 2, 7, 0, 41, 2, 11, 0, 41, - 2,109,255,236, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,169,255,215, 2,170,255,236, 2,181,255,215, 2,182,255,236, - 2,183,255,215, 2,184,255,236, 2,185,255,215, 2,186,255,236, 2,189,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, - 3, 14,255,236, 3, 16,255,236, 3, 23,255,215, 3, 24,255,236, 3,111,255,215, 3,112,255,236, 3,113,255,215, 3,114,255,236, - 3,115,255,215, 3,116,255,236, 1, 29, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36, -255,133, 0, 38,255,195, 0, 42,255,195, 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70, -255,133, 0, 71,255,133, 0, 72,255,133, 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84, -255,133, 0, 85,255,174, 0, 86,255,133, 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93, -255,195, 0,130,255,133, 0,131,255,133, 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137, -255,195, 0,148,255,195, 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163, -255,133, 0,164,255,133, 0,165,255,133, 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171, -255,133, 0,172,255,133, 0,173,255,133, 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184, -255,133, 0,186,255,133, 0,187,255,174, 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194, -255,133, 0,195,255,133, 0,196,255,133, 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203, -255,133, 0,205,255,133, 0,206,255,195, 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221, -255,133, 0,222,255,195, 0,224,255,195, 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14, -255,195, 1, 15,255,133, 1, 17,255,133, 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29, -255,133, 1, 31,255,133, 1, 32,255,236, 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55, -255,195, 1, 57,255,195, 1, 64,255,195, 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1,102,255,195, 1,105, -255,133, 1,109,255,195, 1,113, 0, 20, 1,121,255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,130,255,133, 1,132, -255,174, 1,138,255,195, 1,140,255,133, 1,142,255,133, 1,144,255,133, 1,145,255,195, 1,147,255,133, 1,148,255,195, 1,150, -255,133, 1,153,255,133, 1,155,255,133, 1,160,255,236, 1,170,255,133, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,202, -255,133, 1,207,255,133, 1,216,255,133, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,234,255,133, 1,237, -255,133, 1,238,255,133, 1,251,255,195, 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40, -255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 2,106,255,133, 2,108,255,195, 2,109,255,195, 2,114, -255,133, 2,126,255,195, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135, -255,133, 2,136,255,195, 2,137,255,133, 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,169, 0, 20, 2,170, -255,195, 2,177,255,195, 2,178,255,133, 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184, -255,195, 2,185, 0, 20, 2,186,255,195, 2,189, 0, 20, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221, -255,133, 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243, -255,195, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 3, 10,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16, -255,195, 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 29,255,133, 3, 30, -255,133, 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39, -255,133, 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47, -255,133, 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58, -255,133, 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75, -255,195, 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83, -255,195, 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91, -255,195, 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102, -255,174, 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 1, 29, - 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, 0, 41, 0, 15,255,154, 0, 16,255, 92, 0, 17,255,154, - 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45,255,190, 0, 48,255,236, 0, 50,255,215, 0, 52,255,215, - 0, 54,255,236, 0, 55, 0, 39, 0, 64, 0, 61, 0, 68,255,154, 0, 70,255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, - 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83,255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, - 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0, 96, 0, 61, 0,130,255,154, 0,131,255,154, 0,132,255,154, - 0,133,255,154, 0,134,255,154, 0,135,255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, - 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, - 0,167,255,154, 0,168,255,154, 0,169,255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, - 0,180,255,154, 0,181,255,154, 0,182,255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, - 0,189,255,195, 0,190,255,195, 0,191,255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, - 0,198,255,154, 0,199,255,154, 0,200,255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, - 0,213,255,154, 0,215,255,154, 0,217,255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, - 0,228,255,215, 0,246,255,190, 1, 6,255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, - 1, 18,255,215, 1, 19,255,154, 1, 20,255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, - 1, 33,255,174, 1, 34,255,236, 1, 35,255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, - 1, 68,255,154, 1, 74,255,174, 1, 95,255,154, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,113, 0, 39, 1,121,255,154, - 1,123,255,195, 1,126,255,154, 1,128,255,236, 1,130,255,154, 1,132,255,195, 1,138,255,236, 1,140,255,154, 1,142,255,154, - 1,144,255,154, 1,147,255,154, 1,150,255,154, 1,153,255,154, 1,155,255,154, 1,160,255,236, 1,163,255,190, 1,170,255,154, - 1,184,255,215, 1,187,255,215, 1,188, 0, 39, 1,202,255,154, 1,207,255,154, 1,216,255,154, 1,219,255,154, 1,221,255,236, - 1,222,255,154, 1,234,255,154, 1,237,255,154, 1,238,255,174, 2, 1,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 15,255,215, - 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96,255,154, 2,106,255,154, 2,108,255,215, 2,109,255,236, - 2,114,255,154, 2,126,255,215, 2,127,255,154, 2,129,255,236, 2,131,255,236, 2,132,255,215, 2,133,255,154, 2,134,255,215, - 2,135,255,154, 2,136,255,215, 2,137,255,154, 2,138,255,215, 2,139,255,236, 2,140,255,215, 2,141,255,154, 2,169, 0, 39, - 2,177,255,215, 2,178,255,154, 2,179,255,215, 2,180,255,154, 2,181, 0, 39, 2,183, 0, 39, 2,184,255,236, 2,185, 0, 39, - 2,186,255,236, 2,189, 0, 39, 2,217,255,154, 2,218,255,154, 2,219,255,154, 2,220,255,154, 2,221,255,154, 2,224,255,154, - 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,154, 2,241,255,215, 2,242,255,154, 2,243,255,215, 2,244,255,154, - 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 10,255,154, 3, 12,255,154, 3, 14,255,236, 3, 16,255,236, 3, 21,255,215, - 3, 22,255,154, 3, 23, 0, 39, 3, 25,255,215, 3, 26,255,154, 3, 29,255,154, 3, 30,255,154, 3, 31,255,154, 3, 33,255,154, - 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37,255,154, 3, 38,255,154, 3, 39,255,154, 3, 40,255,154, 3, 41,255,154, - 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45,255,154, 3, 46,255,154, 3, 47,255,154, 3, 48,255,154, 3, 49,255,154, - 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54,255,154, 3, 56,255,154, 3, 58,255,154, 3, 60,255,154, 3, 62,255,154, - 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73,255,215, 3, 74,255,154, 3, 75,255,215, 3, 76,255,154, 3, 77,255,215, - 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81,255,215, 3, 82,255,154, 3, 83,255,215, 3, 84,255,154, 3, 85,255,215, - 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89,255,215, 3, 90,255,154, 3, 91,255,215, 3, 92,255,154, 3, 93,255,215, - 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98,255,195, 3,100,255,195, 3,102,255,195, 3,104,255,195, 3,106,255,195, - 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114,255,236, 3,116,255,236, 0,197, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16, -255,195, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 54,255,215, 0, 56,255,236, 0, 70,255,236, 0, 71, -255,236, 0, 72,255,236, 0, 82,255,236, 0, 84,255,236, 0, 89,255,215, 0, 90,255,215, 0, 92,255,215, 0,137,255,236, 0,148, -255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157, -255,236, 0,158,255,236, 0,168,255,236, 0,169,255,236, 0,170,255,236, 0,171,255,236, 0,172,255,236, 0,173,255,236, 0,180, -255,236, 0,181,255,236, 0,182,255,236, 0,183,255,236, 0,184,255,236, 0,186,255,236, 0,191,255,215, 0,193,255,215, 0,200, -255,236, 0,201,255,236, 0,203,255,236, 0,205,255,236, 0,206,255,236, 0,207,255,236, 0,213,255,236, 0,215,255,236, 0,217, -255,236, 0,219,255,236, 0,221,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 15, -255,236, 1, 17,255,236, 1, 18,255,236, 1, 19,255,236, 1, 20,255,215, 1, 21,255,236, 1, 28,255,215, 1, 32,255,215, 1, 34, -255,215, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 55,255,215, 1, 57,255,215, 1,102,255,236, 1,109, -255,236, 1,121,255,236, 1,126,255,236, 1,128,255,215, 1,130,255,236, 1,138,255,215, 1,140,255,236, 1,142,255,236, 1,144, -255,236, 1,145,255,215, 1,147,255,236, 1,148,255,215, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,160,255,215, 1,184, -255,236, 1,187,255,236, 1,207,255,236, 1,216,255,236, 1,219,255,236, 1,220,255,215, 1,221,255,215, 1,222,255,236, 1,234, -255,236, 1,237,255,236, 1,251,255,215, 1,253,255,215, 1,255,255,215, 2, 1,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95, -255,236, 2, 96,255,236, 2, 97,255,236, 2,106,255,236, 2,108,255,236, 2,109,255,215, 2,126,255,236, 2,127,255,236, 2,129, -255,215, 2,131,255,215, 2,132,255,236, 2,133,255,236, 2,134,255,236, 2,135,255,236, 2,136,255,236, 2,137,255,236, 2,138, -255,236, 2,139,255,215, 2,140,255,236, 2,141,255,236, 2,170,255,215, 2,177,255,236, 2,178,255,236, 2,179,255,236, 2,180, -255,236, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,224,255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,240, -255,236, 2,241,255,236, 2,242,255,236, 2,243,255,236, 2,244,255,236, 2,248,255,215, 2,250,255,215, 2,252,255,215, 3, 10, -255,236, 3, 12,255,236, 3, 14,255,215, 3, 16,255,215, 3, 21,255,236, 3, 22,255,236, 3, 24,255,215, 3, 25,255,236, 3, 26, -255,236, 3, 54,255,236, 3, 56,255,236, 3, 58,255,236, 3, 60,255,236, 3, 62,255,236, 3, 64,255,236, 3, 66,255,236, 3, 68, -255,236, 3, 73,255,236, 3, 74,255,236, 3, 75,255,236, 3, 76,255,236, 3, 77,255,236, 3, 78,255,236, 3, 79,255,236, 3, 80, -255,236, 3, 81,255,236, 3, 82,255,236, 3, 83,255,236, 3, 84,255,236, 3, 85,255,236, 3, 86,255,236, 3, 87,255,236, 3, 88, -255,236, 3, 89,255,236, 3, 90,255,236, 3, 91,255,236, 3, 92,255,236, 3, 93,255,236, 3, 94,255,236, 3, 95,255,236, 3, 96, -255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,112, -255,215, 3,114,255,215, 3,116,255,215, 0, 51, 0, 82,255,236, 0,168,255,236, 0,180,255,236, 0,181,255,236, 0,182,255,236, - 0,183,255,236, 0,184,255,236, 0,186,255,236, 1, 15,255,236, 1, 17,255,236, 1, 19,255,236, 1, 21,255,236, 1,140,255,236, - 1,142,255,236, 1,144,255,236, 1,147,255,236, 1,150,255,236, 1,153,255,236, 1,155,255,236, 1,216,255,236, 1,222,255,236, - 2, 11, 0, 20, 2, 96,255,236, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, - 2,178,255,236, 2,180,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, - 3, 22,255,236, 3, 26,255,236, 3, 74,255,236, 3, 76,255,236, 3, 78,255,236, 3, 80,255,236, 3, 82,255,236, 3, 84,255,236, - 3, 86,255,236, 3, 88,255,236, 3, 90,255,236, 3, 92,255,236, 3, 94,255,236, 3, 96,255,236, 0, 11, 1, 98, 0, 41, 1,102, -255,236, 1,105, 0, 41, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115,255,215, 1,117,255,215, 1,120,255,154, 1,136, - 0, 41, 1,145,255,195, 0, 3, 1,102,255,236, 1,109,255,236, 1,115,255,236, 0, 11, 1, 95,255,236, 1,100,255,236, 1,103, -255,236, 1,108,255,236, 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,119,255,236, 1,120,255,215, 1,136, -255,236, 0, 36, 0, 16,255,195, 0,109,255,195, 1, 95,255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,195, 1,115,255,215, - 1,118,255,215, 1,121,255,154, 1,122,255,154, 1,123,255,195, 1,125,255,195, 1,126,255,154, 1,129,255,174, 1,130,255,154, - 1,131,255,215, 1,132,255,195, 1,133,255,215, 1,134,255,195, 1,135,255,195, 1,137,255,195, 1,140,255,154, 1,142,255,154, - 1,143,255,154, 1,144,255,154, 1,146,255,195, 1,147,255,174, 1,148,255,215, 1,149,255,195, 1,150,255,174, 1,152,255,215, - 1,153,255,154, 1,154,255,195, 1,155,255,174, 2, 2,255,195, 2, 3,255,195, 0, 3, 1,113,255,195, 1,114,255,195, 1,120, -255,195, 0, 25, 1,121,255,215, 1,125,255,215, 1,126,255,215, 1,128,255,215, 1,129,255,215, 1,131,255,236, 1,133,255,215, - 1,134,255,215, 1,136, 0, 41, 1,138,255,215, 1,139,255,236, 1,140,255,215, 1,141,255,236, 1,143,255,236, 1,144,255,215, - 1,145,255,236, 1,146,255,215, 1,147,255,215, 1,148,255,236, 1,149,255,215, 1,150,255,236, 1,152,255,215, 1,153,255,215, - 1,154,255,215, 1,155,255,215, 0, 79, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52, -255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149, -255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, -255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14, -255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52, -255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,102,255,236, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115, -255,215, 1,117,255,195, 1,120,255,154, 1,145,255,195, 1,250,255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7, -255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81, -255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97, -255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113, -255,154, 3,115,255,154, 0, 23, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, - 1, 38,255,236, 1, 56,255,236, 1, 58,255,236, 1,103,255,236, 1,108,255,215, 1,112,255,236, 1,113,255,236, 1,114,255,236, - 1,116,255,236, 1,119,255,236, 1,120,255,236, 1,145,255,236, 1,148,255,236, 2, 0,255,236, 3,111,255,236, 3,113,255,236, - 3,115,255,236, 0,113, 0, 5,255,154, 0, 10,255,154, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 38,255,236, 0, 42, -255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,109, -255,154, 0,125,255,174, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154, -255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222, -255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38, -255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1, 95, -255,133, 1, 98,255,154, 1,102,255,236, 1,105,255,154, 1,109,255,236, 1,115,255,174, 1,118,255,215, 1,121,255,133, 1,122, -255,133, 1,123,255,174, 1,126,255,133, 1,128,255,195, 1,129,255,154, 1,130,255,133, 1,132,255,195, 1,134,255,195, 1,135, -255,195, 1,137,255,195, 1,138,255,195, 1,140,255,133, 1,141,255,195, 1,142,255,154, 1,143,255,133, 1,144,255,133, 1,145, -255,195, 1,146,255,195, 1,147,255,133, 1,148,255,195, 1,149,255,195, 1,150,255,154, 1,151, 0, 41, 1,152,255,195, 1,153, -255,133, 1,154,255,195, 1,155,255,154, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0,255,154, 2, 2,255,154, 2, 3, -255,154, 2, 7,255,154, 2, 11,255,154, 2, 95,255,236, 2, 97,255,236, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, 3, 79, -255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, 3, 95, -255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, 3,111, -255,154, 3,113,255,154, 3,115,255,154, 0,178, 0, 5, 0, 82, 0, 10, 0, 82, 0, 15,255,154, 0, 17,255,154, 0, 34, 0, 41, - 0, 36,255,195, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, - 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81,255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, - 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131,255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, - 0,136,255,133, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, - 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168,255,195, 0,169,255,195, - 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181,255,195, 0,182,255,195, - 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190,255,215, 0,194,255,195, - 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,215, 0,201,255,195, 0,203,255,195, - 0,205,255,195, 0,206,255,215, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, - 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 6,255,215, 1, 8,255,215, 1, 10,255,215, 1, 14,255,215, - 1, 15,255,195, 1, 17,255,195, 1, 18,255,215, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29,255,215, 1, 31,255,215, - 1, 33,255,215, 1, 35,255,215, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1, 98, 0, 20, 1,102,255,215, 1,109,255,215, - 1,113,255,154, 1,114,255,195, 1,115,255,215, 1,117,255,215, 1,120,255,195, 1,121,255,195, 1,136, 0, 41, 1,141,255,215, - 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,195, 2, 88,255,195, 2, 89,255,195, 2, 95,255,215, 2, 96,255,195, 3, 29,255,195, - 3, 30,255,195, 3, 31,255,195, 3, 33,255,195, 3, 34,255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, - 3, 39,255,195, 3, 40,255,195, 3, 41,255,195, 3, 42,255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, - 3, 47,255,195, 3, 48,255,195, 3, 49,255,195, 3, 50,255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, - 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,215, 3, 74,255,195, - 3, 75,255,215, 3, 76,255,195, 3, 77,255,215, 3, 78,255,195, 3, 79,255,215, 3, 80,255,195, 3, 81,255,215, 3, 82,255,195, - 3, 83,255,215, 3, 84,255,195, 3, 85,255,215, 3, 86,255,195, 3, 87,255,215, 3, 88,255,195, 3, 89,255,215, 3, 90,255,195, - 3, 91,255,215, 3, 92,255,195, 3, 93,255,215, 3, 94,255,195, 3, 95,255,215, 3, 96,255,195, 3, 98,255,215, 3,100,255,215, - 3,102,255,215, 3,104,255,215, 3,106,255,215, 3,108,255,215, 3,110,255,215, 0, 8, 1,102,255,236, 1,109,255,236, 1,115, -255,236, 1,146,255,215, 1,149,255,215, 1,151, 0, 41, 1,152,255,215, 1,154,255,215, 0, 70, 0, 15,255,195, 0, 17,255,195, - 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60,255,215, 0, 61,255,236, - 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136,255,215, 0,142,255,236, - 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198,255,236, 0,236,255,236, - 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58,255,215, 1, 59,255,236, - 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1, 98,255,215, 1,103,255,236, 1,105,255,236, 1,108,255,236, - 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,120,255,215, 1,250,255,236, 1,252,255,236, 1,254,255,236, - 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35,255,236, 3, 37,255,236, - 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51,255,236, 3, 69,255,236, - 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 5, 1,102,255,236, 1,109,255,236, 1,115,255,236, 1,129, -255,236, 1,136, 0, 41, 0, 42, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, - 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, - 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, - 1,102,255,215, 1,109,255,215, 1,115,255,174, 1,145,255,215, 1,151, 0, 41, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, - 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, - 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,207, 0, 5,255,174, 0, 10,255,174, 0, 34, 0, 41, 0, 36, -255,195, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58, -255,215, 0, 60,255,154, 0, 68,255,195, 0, 70,255,195, 0, 71,255,195, 0, 72,255,195, 0, 74,255,195, 0, 80,255,215, 0, 81, -255,215, 0, 82,255,195, 0, 83,255,215, 0, 84,255,195, 0, 85,255,215, 0, 86,255,215, 0, 88,255,215, 0,130,255,195, 0,131, -255,195, 0,132,255,195, 0,133,255,195, 0,134,255,195, 0,135,255,195, 0,136,255,133, 0,137,255,236, 0,148,255,236, 0,149, -255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158, -255,236, 0,159,255,154, 0,162,255,195, 0,163,255,195, 0,164,255,195, 0,165,255,195, 0,166,255,195, 0,167,255,195, 0,168, -255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, 0,172,255,195, 0,173,255,195, 0,179,255,215, 0,180,255,195, 0,181, -255,195, 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, 0,187,255,215, 0,188,255,215, 0,189,255,215, 0,190, -255,215, 0,194,255,195, 0,195,255,195, 0,196,255,195, 0,197,255,195, 0,198,255,195, 0,199,255,195, 0,200,255,236, 0,201, -255,195, 0,203,255,195, 0,205,255,195, 0,206,255,236, 0,207,255,195, 0,213,255,195, 0,215,255,195, 0,217,255,195, 0,219, -255,195, 0,221,255,195, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 6,255,215, 1, 8,255,215, 1, 10, -255,215, 1, 14,255,236, 1, 15,255,195, 1, 17,255,195, 1, 18,255,236, 1, 19,255,195, 1, 20,255,215, 1, 21,255,195, 1, 29, -255,215, 1, 31,255,215, 1, 33,255,215, 1, 35,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50, -255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1, 67,255,195, 1, 68,255,195, 1, 74,255,215, 1,102, -255,236, 1,109,255,236, 1,113,255,133, 1,114,255,154, 1,115,255,215, 1,117,255,195, 1,120,255,154, 1,145,255,215, 1,250, -255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 40,255,195, 2, 88,255,195, 2, 89, -255,195, 2, 95,255,236, 2, 96,255,195, 2, 97,255,236, 3, 29,255,195, 3, 30,255,195, 3, 31,255,195, 3, 33,255,195, 3, 34, -255,195, 3, 35,255,195, 3, 36,255,195, 3, 37,255,195, 3, 38,255,195, 3, 39,255,195, 3, 40,255,195, 3, 41,255,195, 3, 42, -255,195, 3, 43,255,195, 3, 44,255,195, 3, 45,255,195, 3, 46,255,195, 3, 47,255,195, 3, 48,255,195, 3, 49,255,195, 3, 50, -255,195, 3, 51,255,195, 3, 52,255,195, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64, -255,195, 3, 66,255,195, 3, 68,255,195, 3, 73,255,236, 3, 74,255,195, 3, 75,255,236, 3, 76,255,195, 3, 77,255,236, 3, 78, -255,195, 3, 79,255,236, 3, 80,255,195, 3, 81,255,236, 3, 82,255,195, 3, 83,255,236, 3, 84,255,195, 3, 85,255,236, 3, 86, -255,195, 3, 87,255,236, 3, 88,255,195, 3, 89,255,236, 3, 90,255,195, 3, 91,255,236, 3, 92,255,195, 3, 93,255,236, 3, 94, -255,195, 3, 95,255,236, 3, 96,255,195, 3, 97,255,236, 3, 98,255,215, 3, 99,255,236, 3,100,255,215, 3,101,255,236, 3,102, -255,215, 3,103,255,236, 3,104,255,215, 3,105,255,236, 3,106,255,215, 3,107,255,236, 3,108,255,215, 3,109,255,236, 3,110, -255,215, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 3, 1,102,255,236, 1,109,255,236, 1,136, 0, 41, 0, 70, 0, 15, -255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59,255,215, 0, 60, -255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135,255,236, 0,136, -255,215, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196,255,236, 0,198, -255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56,255,215, 1, 58, -255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1, 95,255,236, 1,103,255,236, 1,105,255,236, 1,108, -255,236, 1,112,255,236, 1,113,255,195, 1,114,255,215, 1,116,255,215, 1,119,255,236, 1,120,255,215, 1,250,255,236, 1,252, -255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 3, 29,255,236, 3, 31,255,236, 3, 33,255,236, 3, 35, -255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49,255,236, 3, 51, -255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 54, 0, 15,255, 51, 0, 17,255, 51, - 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60,255,236, 0, 61,255,215, 0,130,255,174, 0,131,255,174, 0,132,255,174, - 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255,113, 0,137,255,236, 0,159,255,236, 0,194,255,174, 0,196,255,174, - 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56,255,236, 1, 58,255,236, 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, - 1, 67,255,174, 1, 95,255,174, 1, 98,255,174, 1,100,255,236, 1,105,255,174, 1,116,255,236, 1,120,255,236, 1,129,255,215, - 1,136,255,215, 1,142,255,215, 2, 0,255,236, 2, 40,255,174, 2, 88,255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, - 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, - 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 41, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42, -255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152, -255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 1, 14, -255,215, 1, 18,255,215, 1, 20,255,215, 1,102,255,215, 1,109,255,215, 1,115,255,215, 1,136, 0, 41, 2, 7, 0, 41, 2, 11, - 0, 41, 2, 95,255,215, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85, -255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,233, 0, 5, 0, 82, 0, 10, 0, 82, - 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, 0, 50,255,195, - 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, 0, 74,255,154, - 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, 0, 88,255,174, - 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,109,255,154, 0,125,255,215, 0,130,255,133, - 0,131,255,133, 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, - 0,149,255,195, 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, - 0,165,255,133, 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, - 0,173,255,133, 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, - 0,187,255,174, 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, - 0,196,255,133, 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, - 0,206,255,195, 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, - 0,224,255,195, 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, - 1, 17,255,133, 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, - 1, 32,255,236, 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, - 1, 64,255,195, 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1, 95,255,133, 1, 98,255,154, 1,102,255,195, 1,105,255,133, - 1,109,255,195, 1,113, 0, 20, 1,115,255,195, 1,118,255,195, 1,121,255,133, 1,122,255,133, 1,123,255,174, 1,125,255,174, - 1,126,255,133, 1,128,255,195, 1,129,255,174, 1,130,255,133, 1,132,255,174, 1,134,255,174, 1,135,255,174, 1,136, 0, 20, - 1,137,255,174, 1,138,255,195, 1,140,255,133, 1,142,255,133, 1,143,255,133, 1,144,255,133, 1,145,255,195, 1,146,255,174, - 1,147,255,133, 1,148,255,195, 1,149,255,174, 1,150,255,133, 1,151, 0, 61, 1,152,255,174, 1,153,255,133, 1,154,255,174, - 1,155,255,133, 1,251,255,195, 1,253,255,195, 1,255,255,195, 2, 1,255,195, 2, 2,255,154, 2, 3,255,154, 2, 7, 0, 82, - 2, 11, 0, 82, 2, 40,255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, 3, 29,255,133, 3, 30,255,133, - 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, 3, 38,255,133, 3, 39,255,133, - 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, 3, 46,255,133, 3, 47,255,133, - 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, 3, 56,255,133, 3, 58,255,133, - 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, 3, 74,255,133, 3, 75,255,195, - 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, 3, 82,255,133, 3, 83,255,195, - 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, 3, 90,255,133, 3, 91,255,195, - 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, 3,100,255,174, 3,102,255,174, - 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, 3,116,255,195, 0, 45, 0, 15, -255,154, 0, 16,255,195, 0, 17,255,154, 0,109,255,195, 1, 95,255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,154, 1,109, -255,215, 1,115,255,195, 1,118,255,215, 1,121,255,154, 1,122,255,174, 1,123,255,195, 1,124,255,236, 1,125,255,215, 1,126, -255,154, 1,127,255,215, 1,129,255,154, 1,130,255,174, 1,131,255,215, 1,132,255,195, 1,133,255,215, 1,134,255,195, 1,135, -255,195, 1,136, 0, 20, 1,137,255,195, 1,139,255,236, 1,140,255,154, 1,142,255,154, 1,143,255,154, 1,144,255,154, 1,145, -255,236, 1,146,255,195, 1,147,255,154, 1,148,255,215, 1,149,255,195, 1,150,255,174, 1,151, 0, 41, 1,152,255,195, 1,153, -255,154, 1,154,255,195, 1,155,255,174, 2, 2,255,195, 2, 3,255,195, 0, 10, 1, 95,255,215, 1, 98,255,215, 1,103,255,236, - 1,105,255,215, 1,113,255,195, 1,114,255,195, 1,116,255,195, 1,119,255,215, 1,120,255,195, 1,136,255,215, 0, 23, 1,102, -255,215, 1,109,255,215, 1,115,255,195, 1,121,255,236, 1,124,255,236, 1,125,255,236, 1,126,255,236, 1,129,255,236, 1,133, -255,236, 1,134,255,236, 1,136, 0, 20, 1,140,255,236, 1,143,255,236, 1,144,255,236, 1,145,255,215, 1,146,255,215, 1,147, -255,236, 1,149,255,215, 1,150,255,236, 1,152,255,215, 1,153,255,236, 1,154,255,215, 1,155,255,236, 0, 12, 0, 15,255,174, - 0, 17,255,174, 1, 95,255,195, 1, 98,255,215, 1,105,255,195, 1,129,255,215, 1,142,255,215, 1,144,255,236, 1,147,255,236, - 1,150,255,236, 1,153,255,236, 1,155,255,236, 0, 3, 1,113,255,195, 1,114,255,215, 1,120,255,215, 0, 44, 0, 5, 0, 41, - 0, 10, 0, 41, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, - 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, - 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,236, 1,102,255,236, 1,109,255,236, 1,115,255,215, - 1,128,255,236, 1,129,255,236, 1,136, 0, 20, 1,145,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 3, 73,255,236, - 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, - 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0,238, 0, 5, 0, 82, 0, 9,255,195, 0, 10, 0, 82, 0, 12, 0, 61, 0, 13, - 0, 41, 0, 15,255,154, 0, 16,255, 92, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,154, 0, 38,255,215, 0, 42,255,215, 0, 45, -255,190, 0, 48,255,236, 0, 50,255,215, 0, 52,255,215, 0, 54,255,236, 0, 55, 0, 39, 0, 64, 0, 61, 0, 68,255,154, 0, 70, -255,154, 0, 71,255,154, 0, 72,255,154, 0, 73,255,229, 0, 74,255,154, 0, 80,255,195, 0, 81,255,195, 0, 82,255,154, 0, 83, -255,195, 0, 84,255,154, 0, 85,255,195, 0, 86,255,174, 0, 88,255,195, 0, 91,255,215, 0, 92,255,236, 0, 93,255,195, 0, 96, - 0, 61, 0,109,255,195, 0,125,255,215, 0,130,255,154, 0,131,255,154, 0,132,255,154, 0,133,255,154, 0,134,255,154, 0,135, -255,154, 0,136,255,113, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154, -255,215, 0,162,255,154, 0,163,255,154, 0,164,255,154, 0,165,255,154, 0,166,255,154, 0,167,255,154, 0,168,255,154, 0,169, -255,154, 0,170,255,154, 0,171,255,154, 0,172,255,154, 0,173,255,154, 0,179,255,195, 0,180,255,154, 0,181,255,154, 0,182, -255,154, 0,183,255,154, 0,184,255,154, 0,186,255,154, 0,187,255,195, 0,188,255,195, 0,189,255,195, 0,190,255,195, 0,191, -255,236, 0,193,255,236, 0,194,255,154, 0,195,255,154, 0,196,255,154, 0,197,255,154, 0,198,255,154, 0,199,255,154, 0,200, -255,215, 0,201,255,154, 0,203,255,154, 0,205,255,154, 0,206,255,215, 0,207,255,154, 0,213,255,154, 0,215,255,154, 0,217, -255,154, 0,219,255,154, 0,221,255,154, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, 0,246,255,190, 1, 6, -255,195, 1, 8,255,195, 1, 10,255,195, 1, 14,255,215, 1, 15,255,154, 1, 17,255,154, 1, 18,255,215, 1, 19,255,154, 1, 20, -255,215, 1, 21,255,154, 1, 28,255,236, 1, 29,255,174, 1, 31,255,174, 1, 32,255,236, 1, 33,255,174, 1, 34,255,236, 1, 35, -255,174, 1, 36, 0, 39, 1, 38, 0, 39, 1, 57,255,236, 1, 64,255,195, 1, 67,255,154, 1, 68,255,154, 1, 74,255,174, 1, 95, -255,154, 1, 98,255,195, 1,102,255,215, 1,105,255,154, 1,109,255,215, 1,115,255,195, 1,118,255,215, 1,121,255,154, 1,122, -255,174, 1,123,255,195, 1,124,255,236, 1,125,255,195, 1,126,255,154, 1,127,255,215, 1,128,255,236, 1,129,255,154, 1,130, -255,154, 1,131,255,215, 1,132,255,195, 1,134,255,195, 1,135,255,195, 1,137,255,195, 1,138,255,236, 1,139,255,236, 1,140, -255,154, 1,141,255,215, 1,142,255,154, 1,143,255,154, 1,144,255,154, 1,145,255,215, 1,146,255,195, 1,147,255,154, 1,148, -255,215, 1,149,255,195, 1,150,255,154, 1,151, 0, 41, 1,152,255,195, 1,153,255,154, 1,154,255,195, 1,155,255,154, 2, 1, -255,236, 2, 7, 0, 82, 2, 11, 0, 82, 2, 15,255,215, 2, 40,255,154, 2, 88,255,154, 2, 89,255,154, 2, 95,255,215, 2, 96, -255,154, 3, 29,255,154, 3, 30,255,154, 3, 31,255,154, 3, 33,255,154, 3, 34,255,154, 3, 35,255,154, 3, 36,255,154, 3, 37, -255,154, 3, 38,255,154, 3, 39,255,154, 3, 40,255,154, 3, 41,255,154, 3, 42,255,154, 3, 43,255,154, 3, 44,255,154, 3, 45, -255,154, 3, 46,255,154, 3, 47,255,154, 3, 48,255,154, 3, 49,255,154, 3, 50,255,154, 3, 51,255,154, 3, 52,255,154, 3, 54, -255,154, 3, 56,255,154, 3, 58,255,154, 3, 60,255,154, 3, 62,255,154, 3, 64,255,154, 3, 66,255,154, 3, 68,255,154, 3, 73, -255,215, 3, 74,255,154, 3, 75,255,215, 3, 76,255,154, 3, 77,255,215, 3, 78,255,154, 3, 79,255,215, 3, 80,255,154, 3, 81, -255,215, 3, 82,255,154, 3, 83,255,215, 3, 84,255,154, 3, 85,255,215, 3, 86,255,154, 3, 87,255,215, 3, 88,255,154, 3, 89, -255,215, 3, 90,255,154, 3, 91,255,215, 3, 92,255,154, 3, 93,255,215, 3, 94,255,154, 3, 95,255,215, 3, 96,255,154, 3, 98, -255,195, 3,100,255,195, 3,102,255,195, 3,104,255,195, 3,106,255,195, 3,108,255,195, 3,110,255,195, 3,112,255,236, 3,114, -255,236, 3,116,255,236, 0, 1, 1,136, 0, 41, 0, 6, 1,121,255,215, 1,126,255,236, 1,129,255,236, 1,140,255,236, 1,144, -255,236, 1,147,255,236, 0, 20, 1,121,255,236, 1,124,255,236, 1,125,255,236, 1,128,255,236, 1,129,255,236, 1,133,255,236, - 1,134,255,236, 1,136, 0, 41, 1,138,255,215, 1,140,255,236, 1,141,255,236, 1,143,255,236, 1,144,255,236, 1,145,255,215, - 1,146,255,236, 1,149,255,236, 1,151,255,236, 1,152,255,236, 1,153,255,236, 1,154,255,236, 0, 1, 1,148,255,236, 0, 11, - 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,129,255,236, 1,141, 0, 41, 1,142,255,236, 1,145, 0, 20, 1,148, 0, 20, - 1,150, 0, 20, 2, 7, 0, 61, 2, 11, 0, 61, 0, 2, 1,145,255,236, 1,148,255,215, 0, 11, 0, 5, 0, 61, 0, 10, 0, 61, - 1,121,255,215, 1,129,255,236, 1,140,255,215, 1,143,255,236, 1,144,255,215, 1,147,255,215, 1,153,255,215, 2, 7, 0, 61, - 2, 11, 0, 61, 0, 28, 1,121,255,174, 1,122,255,215, 1,125,255,215, 1,126,255,195, 1,128,255,215, 1,129,255,195, 1,130, -255,215, 1,131,255,215, 1,132,255,215, 1,133,255,215, 1,134,255,215, 1,135,255,236, 1,136, 0, 41, 1,138,255,215, 1,139, -255,215, 1,140,255,195, 1,141,255,195, 1,143,255,195, 1,144,255,195, 1,145,255,195, 1,146,255,195, 1,147,255,195, 1,149, -255,195, 1,150,255,195, 1,152,255,195, 1,153,255,195, 1,154,255,195, 1,155,255,195, 0, 16, 0, 5, 0, 82, 0, 10, 0, 82, - 1,121,255,215, 1,125,255,236, 1,126,255,236, 1,128,255,215, 1,133,255,215, 1,134,255,236, 1,136, 0, 41, 1,138,255,215, - 1,141,255,215, 1,145,255,215, 1,147,255,215, 1,151,255,236, 2, 7, 0, 82, 2, 11, 0, 82, 0, 9, 0, 5, 0, 41, 0, 10, - 0, 41, 1,121,255,215, 1,126,255,215, 1,129,255,215, 1,130,255,236, 1,140,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 0, 13, - 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,125,255,236, 1,128,255,236, 1,133,255,215, 1,136, 0, 61, 1,138,255,215, - 1,141,255,215, 1,145,255,195, 1,148,255,215, 2, 7, 0, 61, 2, 11, 0, 61, 0, 7, 0, 5, 0, 61, 0, 10, 0, 61, 0, 73, - 0, 20, 1,141, 0, 20, 1,142,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 0, 3, 0, 30, 0, 61, 1,126,255,236, 1,136, 0, 41, - 0, 5, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,145,255,236, 1,148,255,215, 0, 4, 1,126,255,236, 1,128, 0, 20, - 1,138, 0, 41, 1,145, 0, 20, 0, 7, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,128, 0, 20, 1,138, 0, 20, 1,141, - 0, 20, 1,145, 0, 41, 0, 14, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, 0,125, 0, 41, 1,128, 0, 20, 1,129,255,236, - 1,138, 0, 41, 1,140,255,215, 1,141, 0, 20, 1,143,255,215, 1,144,255,236, 1,145, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, - 0, 4, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,148,255,236, 0, 21, 0, 5, 0, 82, 0, 10, 0, 82, 0, 73, 0, 20, - 1,121,255,215, 1,122,255,215, 1,126,255,215, 1,128, 0, 20, 1,129,255,215, 1,130,255,215, 1,133,255,236, 1,140,255,215, - 1,143,255,215, 1,144,255,215, 1,146,255,236, 1,147,255,236, 1,148, 0, 41, 1,149,255,215, 1,150,255,215, 1,153,255,236, - 2, 7, 0, 82, 2, 11, 0, 82, 0, 4, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,128, 0, 20, 0, 19, 1,121,255,236, - 1,125,255,236, 1,126,255,215, 1,128,255,215, 1,129,255,236, 1,133,255,215, 1,136, 0, 41, 1,140,255,236, 1,141,255,215, - 1,143,255,236, 1,144,255,236, 1,145,255,215, 1,146,255,236, 1,148,255,236, 1,149,255,215, 1,152,255,236, 1,153,255,236, - 1,154,255,236, 1,155,255,236, 0, 56, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,236, 0, 45, 0, 61, 0, 50, -255,236, 0, 52,255,236, 0,132,255,236, 0,137,255,236, 0,138,255,236, 0,143,255,236, 0,148,255,236, 0,149,255,236, 0,150, -255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,246, 0, 61, 1, 14,255,236, 1, 18, -255,236, 1,184,255,236, 1,187,255,236, 1,190,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,236, 2,108,255,236, 2,126, -255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179,255,236, 2,225, -255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73,255,236, 3, 75, -255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91, -255,236, 3, 93,255,236, 3, 95,255,236, 0, 61, 0, 5,255,195, 0, 10,255,195, 1,157,255,133, 1,166,255,133, 1,176,255,215, - 1,188,255,133, 1,189,255,215, 1,191,255,236, 1,193,255,195, 1,196,255,133, 1,220,255,195, 1,221,255,236, 1,223,255,236, - 1,225,255,195, 1,228,255,174, 2, 7,255,195, 2, 11,255,195, 2,109,255,236, 2,118,255,215, 2,124,255,195, 2,125,255,195, - 2,128,255,195, 2,129,255,236, 2,130,255,195, 2,131,255,236, 2,139,255,236, 2,159,255,215, 2,169,255,133, 2,170,255,195, - 2,181,255,133, 2,182,255,195, 2,183,255,133, 2,184,255,236, 2,185,255,133, 2,186,255,236, 2,187,255,215, 2,189,255,133, - 2,191,255,195, 2,192,255,195, 2,193,255,195, 2,194,255,195, 2,202,255,215, 2,212,255,195, 2,213,255,195, 2,229,255,215, - 2,247,255,215, 2,248,255,236, 2,249,255,215, 2,250,255,236, 2,251,255,215, 2,252,255,236, 2,253,255,195, 2,254,255,195, - 3, 5,255,215, 3, 7,255,215, 3, 13,255,195, 3, 14,255,236, 3, 15,255,195, 3, 16,255,236, 3, 23,255,133, 3, 24,255,195, - 0,212, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, 0, 55, -255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150, -255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, 0,159, -255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, 1, 18, -255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, 1, 54, -255,195, 1, 56,255,154, 1, 58,255,154, 1,159,255,236, 1,164,255,154, 1,170,255,133, 1,174,255,133, 1,181,255,133, 1,184, -255,215, 1,187,255,236, 1,190,255,195, 1,202,255,133, 1,203,255,215, 1,204,255,195, 1,205,255,195, 1,206,255, 92, 1,207, -255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, 1,215, -255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, 1,223, -255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, 1,231, -255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, 1,242, -255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,250,255,195, 1,252,255,195, 1,254,255,195, 2, 0, -255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 95,255,236, 2, 97,255,236, 2,106,255,133, 2,107,255,195, 2,108,255,215, 2,109, -255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,215, 2,133, -255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, 2,139,255,195, 2,140,255,215, 2,141, -255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, 2,170,255,195, 2,172,255,195, 2,174, -255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, 2,182,255,195, 2,184,255,195, 2,186, -255,195, 2,188,255,195, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,174, 2,198,255,113, 2,199,255,174, 2,203, -255,195, 2,206,255,133, 2,207,255, 92, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, 2,218, -255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,215, 2,227,255,215, 2,230,255,195, 2,236, -255,195, 2,238,255,195, 2,239,255,215, 2,240,255,133, 2,241,255,215, 2,242,255,133, 2,243,255,215, 2,244,255,133, 2,248, -255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255, 92, 3, 10, -255,133, 3, 11,255, 92, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, 3, 18,255, 92, 3, 20,255,195, 3, 21, -255,215, 3, 22,255,133, 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, 3, 28,255, 92, 3, 73,255,236, 3, 75, -255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91, -255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107, -255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 31, 0, 5, 0, 41, 0, 10, 0, 41, 1,159,255,215, - 1,184,255,236, 1,187,255,215, 1,190,255,236, 1,222,255,215, 1,225,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,108,255,236, - 2,125,255,215, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, - 2,179,255,236, 2,192,255,215, 2,194,255,215, 2,213,255,215, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, - 2,243,255,236, 2,254,255,215, 3, 21,255,236, 3, 25,255,236, 0, 5, 1,160,255,236, 1,220,255,215, 2,170,255,215, 2,182, -255,215, 3, 24,255,215, 0, 26, 1,159,255,236, 1,220,255,215, 1,221,255,236, 1,225,255,215, 1,228,255,236, 2,109,255,236, - 2,125,255,215, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, - 2,192,255,215, 2,194,255,215, 2,197,255,215, 2,199,255,215, 2,213,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, - 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0, 55, 0, 5, 0, 41, 0, 10, 0, 41, 0, 38,255,236, 0, 42, -255,236, 0, 50,255,236, 0, 52,255,236, 0,137,255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152, -255,236, 0,154,255,236, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14, -255,236, 1, 18,255,236, 1, 20,255,236, 1,159,255,236, 1,184,255,236, 1,187,255,236, 2, 11, 0, 41, 2, 95,255,236, 2,108, -255,236, 2,126,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177,255,236, 2,179, -255,236, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 3, 21,255,236, 3, 25,255,236, 3, 73, -255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, -255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 0, 52, 0, 5,255,154, 0, 10,255,154, 1,166,255,133, 1,168,255,215, - 1,176,255,215, 1,181,255,236, 1,188,255,133, 1,189,255,236, 1,191,255,236, 1,193,255,174, 1,196,255,133, 1,220,255,215, - 1,225,255,215, 1,228,255,195, 2, 7,255,154, 2, 11,255,154, 2,118,255,215, 2,124,255,174, 2,125,255,215, 2,128,255,174, - 2,130,255,174, 2,159,255,215, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185,255,133, - 2,187,255,215, 2,189,255,133, 2,191,255,174, 2,192,255,215, 2,193,255,174, 2,194,255,215, 2,202,255,215, 2,206,255,236, - 2,212,255,174, 2,213,255,215, 2,229,255,215, 2,247,255,236, 2,249,255,236, 2,251,255,236, 2,253,255,174, 2,254,255,215, - 3, 5,255,215, 3, 7,255,215, 3, 13,255,174, 3, 15,255,174, 3, 17,255,236, 3, 23,255,133, 3, 24,255,215, 3, 27,255,236, - 0, 49, 0, 5,255,154, 0, 10,255,154, 1,157,255,133, 1,166,255,133, 1,168,255,215, 1,176,255,236, 1,188,255,133, 1,189, -255,215, 1,193,255,174, 1,196,255,133, 1,220,255,215, 1,223,255,236, 1,225,255,236, 1,228,255,215, 2, 7,255,154, 2, 11, -255,154, 2,118,255,236, 2,124,255,174, 2,125,255,236, 2,128,255,174, 2,130,255,174, 2,159,255,236, 2,169,255,133, 2,170, -255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185,255,133, 2,187,255,236, 2,189,255,133, 2,191,255,174, 2,192, -255,236, 2,193,255,174, 2,194,255,236, 2,202,255,236, 2,212,255,174, 2,213,255,236, 2,229,255,236, 2,247,255,215, 2,249, -255,215, 2,251,255,215, 2,253,255,174, 2,254,255,236, 3, 5,255,236, 3, 7,255,236, 3, 13,255,174, 3, 15,255,174, 3, 23, -255,133, 3, 24,255,215, 0, 29, 1,157,255,154, 1,166,255,154, 1,196,255,133, 1,220,255,215, 1,221,255,236, 1,225,255,215, - 1,228,255,195, 1,246,255,236, 2,109,255,236, 2,125,255,215, 2,129,255,236, 2,131,255,236, 2,139,255,236, 2,170,255,215, - 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,192,255,215, 2,194,255,215, 2,197,255,215, 2,199,255,215, 2,213,255,215, - 2,248,255,236, 2,250,255,236, 2,252,255,236, 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0,109, 0, 5, - 0, 41, 0, 10, 0, 41, 0, 38,255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149, -255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224, -255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, 1,159,255,215, 1,164, 0, 41, 1,181, - 0, 41, 1,184,255,215, 1,187,255,215, 1,190,255,174, 1,203,255,236, 1,206, 0, 20, 1,207,255,215, 1,216,255,215, 1,219, -255,215, 1,220,255,215, 1,221,255,215, 1,222,255,215, 1,225,255,195, 1,228,255,215, 1,234,255,215, 1,237,255,215, 2, 7, - 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,106,255,215, 2,108,255,215, 2,109,255,215, 2,125,255,195, 2,126,255,215, 2,127, -255,215, 2,129,255,215, 2,131,255,215, 2,132,255,215, 2,133,255,215, 2,134,255,215, 2,135,255,215, 2,136,255,215, 2,137, -255,215, 2,138,255,215, 2,139,255,215, 2,140,255,215, 2,141,255,215, 2,170,255,215, 2,177,255,215, 2,178,255,215, 2,179, -255,215, 2,180,255,215, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,192,255,195, 2,194,255,195, 2,206, 0, 41, 2,213, -255,195, 2,224,255,215, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,240,255,215, 2,241,255,215, 2,242,255,215, 2,243, -255,215, 2,244,255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,195, 3, 10,255,215, 3, 12,255,215, 3, 14, -255,215, 3, 16,255,215, 3, 17, 0, 41, 3, 21,255,215, 3, 22,255,215, 3, 24,255,215, 3, 25,255,215, 3, 26,255,215, 3, 27, - 0, 41, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87, -255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 0,103, 0, 5, 0, 82, 0, 10, 0, 82, 1,164,255,154, - 1,170,255,133, 1,174,255,113, 1,181,255,154, 1,187,255,215, 1,188, 0, 41, 1,190,255,215, 1,196, 0, 20, 1,201,255,236, - 1,202,255,174, 1,204,255,215, 1,205,255,215, 1,206,255, 92, 1,207,255,174, 1,209,255,215, 1,210,255,215, 1,211,255,215, - 1,212,255,215, 1,213,255, 92, 1,214,255,215, 1,215,255,215, 1,216,255,174, 1,217,255,215, 1,218,255,215, 1,219,255,174, - 1,222,255,174, 1,224,255,215, 1,225,255,215, 1,226,255,215, 1,227,255,215, 1,229,255,215, 1,230,255,215, 1,232,255,215, - 1,233,255,215, 1,234,255,215, 1,236,255,215, 1,237,255,174, 1,238,255,215, 1,240, 0, 82, 1,242,255,113, 1,243,255,215, - 1,245,255,215, 1,247,255,215, 1,249,255,215, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,174, 2,107,255,215, 2,114,255,133, - 2,125,255,215, 2,127,255,174, 2,133,255,174, 2,135,255,174, 2,137,255,174, 2,141,255,174, 2,150,255,215, 2,154,255,215, - 2,164,255,215, 2,166,255,215, 2,169, 0, 41, 2,172,255,215, 2,174,255,215, 2,176,255,215, 2,178,255,174, 2,180,255,174, - 2,181, 0, 41, 2,183, 0, 41, 2,185, 0, 41, 2,189, 0, 41, 2,192,255,215, 2,194,255,215, 2,196,255,215, 2,206,255,154, - 2,207,255, 92, 2,209,255,215, 2,211,255,215, 2,213,255,215, 2,215,255,215, 2,217,255,133, 2,218,255,174, 2,219,255,133, - 2,220,255,174, 2,221,255,133, 2,224,255,174, 2,236,255,215, 2,238,255,215, 2,240,255,174, 2,242,255,174, 2,244,255,174, - 2,254,255,215, 3, 0,255,215, 3, 10,255,174, 3, 12,255,174, 3, 17,255,154, 3, 18,255, 92, 3, 20,255,215, 3, 22,255,174, - 3, 23, 0, 41, 3, 26,255,174, 3, 27,255,154, 3, 28,255, 92, 0,137, 0, 5,255,174, 0, 10,255,174, 0, 38,255,236, 0, 42, -255,236, 0, 50,255,236, 0, 52,255,236, 0, 55,255,133, 0, 56,255,236, 0, 57,255,195, 0, 58,255,215, 0, 60,255,154, 0,137, -255,236, 0,148,255,236, 0,149,255,236, 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156, -255,236, 0,157,255,236, 0,158,255,236, 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226, -255,236, 0,228,255,236, 1, 14,255,236, 1, 18,255,236, 1, 20,255,215, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48, -255,236, 1, 50,255,236, 1, 52,255,236, 1, 54,255,215, 1, 56,255,154, 1, 58,255,154, 1,157,255,154, 1,159,255,236, 1,164, - 0, 61, 1,166,255,133, 1,174, 0, 41, 1,181, 0, 41, 1,184,255,236, 1,187,255,236, 1,188,255,133, 1,190,255,215, 1,193, -255,174, 1,196,255,154, 1,213, 0, 41, 1,220,255,215, 1,225,255,195, 1,228,255,195, 1,231, 0, 41, 1,242, 0, 41, 1,250, -255,215, 1,252,255,215, 1,254,255,215, 2, 0,255,154, 2, 7,255,174, 2, 11,255,174, 2, 95,255,236, 2, 97,255,236, 2,108, -255,236, 2,124,255,174, 2,125,255,195, 2,126,255,236, 2,128,255,174, 2,130,255,174, 2,132,255,236, 2,134,255,236, 2,136, -255,236, 2,138,255,236, 2,140,255,236, 2,169,255,133, 2,170,255,215, 2,177,255,236, 2,179,255,236, 2,181,255,133, 2,182, -255,215, 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,191,255,174, 2,192,255,195, 2,193,255,174, 2,194,255,195, 2,197, -255,174, 2,198,255,195, 2,199,255,174, 2,206, 0, 41, 2,207, 0, 41, 2,212,255,174, 2,213,255,195, 2,225,255,236, 2,227, -255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,253,255,174, 2,254,255,195, 3, 13,255,174, 3, 15,255,174, 3, 17, - 0, 41, 3, 18, 0, 41, 3, 21,255,236, 3, 23,255,133, 3, 24,255,215, 3, 25,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 3, 73, -255,236, 3, 75,255,236, 3, 77,255,236, 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89, -255,236, 3, 91,255,236, 3, 93,255,236, 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105, -255,236, 3,107,255,236, 3,109,255,236, 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 42, 1,157,255,215, 1,188,255,215, - 1,189,255,215, 1,191,255,236, 1,193,255,195, 1,196,255,215, 1,208,255,236, 1,220,255,215, 1,225,255,215, 1,228,255,215, - 2,124,255,195, 2,125,255,215, 2,128,255,195, 2,130,255,195, 2,160,255,236, 2,169,255,215, 2,170,255,215, 2,181,255,215, - 2,182,255,215, 2,183,255,215, 2,185,255,215, 2,188,255,236, 2,189,255,215, 2,191,255,195, 2,192,255,215, 2,193,255,195, - 2,194,255,215, 2,203,255,236, 2,212,255,195, 2,213,255,215, 2,230,255,236, 2,247,255,215, 2,249,255,215, 2,251,255,215, - 2,253,255,195, 2,254,255,215, 3, 6,255,236, 3, 8,255,236, 3, 13,255,195, 3, 15,255,195, 3, 23,255,215, 3, 24,255,215, - 0, 33, 0, 55,255,236, 0, 57,255,236, 0, 59,255,236, 0, 60,255,236, 0,159,255,236, 1, 36,255,236, 1, 38,255,236, 1, 56, -255,236, 1, 58,255,236, 1,176,255,236, 1,188,255,236, 1,189,255,236, 1,191,255,236, 2, 0,255,236, 2,118,255,236, 2,159, -255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,187,255,236, 2,189,255,236, 2,202,255,236, 2,229, -255,236, 2,247,255,236, 2,249,255,236, 2,251,255,236, 3, 5,255,236, 3, 7,255,236, 3, 23,255,236, 3,111,255,236, 3,113, -255,236, 3,115,255,236, 0,143, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 1,159,255,236, 1,164,255,154, 1,170,255,133, - 1,174,255,133, 1,181,255,133, 1,184,255,215, 1,190,255,195, 1,202,255,133, 1,204,255,195, 1,205,255,195, 1,206,255, 92, - 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, - 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, - 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, - 1,231,255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, - 1,242,255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,133, - 2,107,255,195, 2,108,255,215, 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, - 2,131,255,195, 2,132,255,215, 2,133,255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, - 2,139,255,195, 2,140,255,215, 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, - 2,170,255,195, 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, - 2,182,255,195, 2,184,255,195, 2,186,255,195, 2,188,255,195, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,174, - 2,198,255,113, 2,199,255,174, 2,203,255,195, 2,206,255,133, 2,207,255, 92, 2,209,255,195, 2,211,255,195, 2,213,255,195, - 2,215,255,195, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,215, - 2,227,255,215, 2,230,255,195, 2,236,255,195, 2,238,255,195, 2,239,255,215, 2,240,255,133, 2,241,255,215, 2,242,255,133, - 2,243,255,215, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, - 3, 8,255,195, 3, 9,255, 92, 3, 10,255,133, 3, 11,255, 92, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, - 3, 18,255, 92, 3, 20,255,195, 3, 21,255,215, 3, 22,255,133, 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, - 3, 28,255, 92, 0, 66, 1,157,255,215, 1,163, 0,246, 1,164, 0, 41, 1,166,255,215, 1,170, 0, 20, 1,174, 0, 41, 1,181, - 0, 41, 1,184,255,236, 1,187,255,236, 1,188,255,215, 1,190,255,236, 1,193,255,215, 1,196,255,215, 1,206, 0, 41, 1,213, - 0, 41, 1,225,255,215, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,108,255,236, 2,114, 0, 20, 2,124,255,215, 2,125, -255,215, 2,126,255,236, 2,128,255,215, 2,130,255,215, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140, -255,236, 2,169,255,215, 2,177,255,236, 2,179,255,236, 2,181,255,215, 2,183,255,215, 2,185,255,215, 2,189,255,215, 2,191, -255,215, 2,192,255,215, 2,193,255,215, 2,194,255,215, 2,198,255,215, 2,206, 0, 41, 2,207, 0, 41, 2,212,255,215, 2,213, -255,215, 2,217, 0, 20, 2,219, 0, 20, 2,221, 0, 20, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243, -255,236, 2,253,255,215, 2,254,255,215, 3, 13,255,215, 3, 15,255,215, 3, 17, 0, 41, 3, 18, 0, 41, 3, 21,255,236, 3, 23, -255,215, 3, 25,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 0, 49, 0, 5, 0, 61, 0, 10, 0, 61, 0, 16,255,215, 1,159,255,215, - 1,164, 0, 41, 1,181, 0, 41, 1,184,255,215, 1,187,255,215, 1,190,255,195, 1,203,255,215, 1,213, 0, 41, 1,220,255,215, - 1,225,255,174, 1,242, 0, 41, 2, 7, 0, 61, 2, 11, 0, 61, 2,108,255,215, 2,125,255,174, 2,126,255,215, 2,132,255,215, - 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,170,255,215, 2,177,255,215, 2,179,255,215, 2,182,255,215, - 2,192,255,174, 2,194,255,174, 2,197,255,195, 2,198,255,154, 2,199,255,195, 2,206, 0, 41, 2,207, 0, 41, 2,213,255,174, - 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254,255,174, 3, 17, 0, 41, 3, 18, 0, 41, - 3, 21,255,215, 3, 24,255,215, 3, 25,255,215, 3, 27, 0, 41, 3, 28, 0, 41, 0, 38, 0, 5, 0, 41, 0, 10, 0, 41, 1,177, -255,236, 1,181,255,215, 1,188,255,215, 1,189,255,236, 1,190,255,236, 1,191,255,215, 1,193,255,236, 1,196,255,236, 1,199, -255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2,124,255,236, 2,128,255,236, 2,130,255,236, 2,161,255,236, 2,169,255,215, 2,181, -255,215, 2,183,255,215, 2,185,255,215, 2,189,255,215, 2,191,255,236, 2,193,255,236, 2,206,255,215, 2,212,255,236, 2,231, -255,236, 2,233,255,236, 2,245,255,236, 2,247,255,236, 2,249,255,236, 2,251,255,236, 2,253,255,236, 3, 13,255,236, 3, 15, -255,236, 3, 17,255,215, 3, 23,255,215, 3, 27,255,215, 0, 76, 0, 5, 0, 41, 0, 10, 0, 41, 0, 16,255,215, 0, 38,255,215, - 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0,137,255,215, 0,148,255,215, 0,149,255,215, 0,150,255,215, 0,151,255,215, - 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224,255,215, 0,226,255,215, 0,228,255,215, - 1, 14,255,215, 1, 18,255,215, 1, 20,255,215, 1,159,255,215, 1,164, 0, 61, 1,181, 0, 41, 1,184,255,215, 1,187,255,215, - 1,190,255,174, 1,203,255,215, 1,213, 0, 41, 1,225,255,174, 1,228,255,215, 1,242, 0, 41, 2, 7, 0, 41, 2, 11, 0, 41, - 2, 95,255,215, 2,108,255,215, 2,125,255,174, 2,126,255,215, 2,132,255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, - 2,140,255,215, 2,177,255,215, 2,179,255,215, 2,192,255,174, 2,194,255,174, 2,206, 0, 41, 2,207, 0, 41, 2,213,255,174, - 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254,255,174, 3, 17, 0, 41, 3, 18, 0, 41, - 3, 21,255,215, 3, 25,255,215, 3, 27, 0, 41, 3, 28, 0, 41, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, - 3, 81,255,215, 3, 83,255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, - 0, 86, 0, 15,255,195, 0, 17,255,195, 0, 36,255,236, 0, 44,255,236, 0, 55,255,195, 0, 57,255,215, 0, 58,255,236, 0, 59, -255,215, 0, 60,255,215, 0, 61,255,236, 0,130,255,236, 0,131,255,236, 0,132,255,236, 0,133,255,236, 0,134,255,236, 0,135, -255,236, 0,136,255,215, 0,142,255,236, 0,143,255,236, 0,144,255,236, 0,145,255,236, 0,159,255,215, 0,194,255,236, 0,196, -255,236, 0,198,255,236, 0,236,255,236, 0,240,255,236, 0,242,255,236, 1, 36,255,195, 1, 38,255,195, 1, 54,255,236, 1, 56, -255,215, 1, 58,255,215, 1, 59,255,236, 1, 61,255,236, 1, 63,255,236, 1, 67,255,236, 1,157,255,215, 1,164,255,215, 1,166, -255,215, 1,170,255,236, 1,174,255,236, 1,176,255,215, 1,188,255,195, 1,191,255,236, 1,196,255,215, 1,250,255,236, 1,252, -255,236, 1,254,255,236, 2, 0,255,215, 2, 40,255,236, 2, 88,255,236, 2,114,255,236, 2,118,255,215, 2,159,255,215, 2,169, -255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,187,255,215, 2,189,255,195, 2,202,255,215, 2,217,255,236, 2,219, -255,236, 2,221,255,236, 2,229,255,215, 3, 5,255,215, 3, 7,255,215, 3, 23,255,195, 3, 29,255,236, 3, 31,255,236, 3, 33, -255,236, 3, 35,255,236, 3, 37,255,236, 3, 39,255,236, 3, 41,255,236, 3, 43,255,236, 3, 45,255,236, 3, 47,255,236, 3, 49, -255,236, 3, 51,255,236, 3, 69,255,236, 3, 71,255,236, 3,111,255,215, 3,113,255,215, 3,115,255,215, 0, 69, 0, 5, 0, 61, - 0, 10, 0, 61, 0, 15,255, 51, 0, 17,255, 51, 0, 36,255,174, 0, 38,255,236, 0, 59,255,236, 0, 60,255,236, 0, 61,255,215, - 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255,113, 0,137,255,236, - 0,159,255,236, 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,200,255,236, 0,206,255,236, 1, 56,255,236, 1, 58,255,236, - 1, 59,255,215, 1, 61,255,215, 1, 63,255,215, 1, 67,255,174, 1,164,255,174, 1,170,255,174, 1,174,255,154, 1,181,255,154, - 1,187,255,236, 1,206,255,154, 1,213,255,174, 1,242,255,174, 2, 0,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2, 40,255,174, - 2, 88,255,174, 2,114,255,174, 2,206,255,154, 2,207,255,174, 2,217,255,174, 2,219,255,174, 2,221,255,174, 3, 9,255,174, - 3, 11,255,174, 3, 17,255,154, 3, 18,255,174, 3, 27,255,154, 3, 28,255,174, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, - 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, - 3, 51,255,174, 3,111,255,236, 3,113,255,236, 3,115,255,236, 0, 66, 0, 5, 0, 41, 0, 10, 0, 41, 0, 12, 0, 41, 0, 38, -255,215, 0, 42,255,215, 0, 50,255,215, 0, 52,255,215, 0, 64, 0, 41, 0, 96, 0, 41, 0,137,255,215, 0,148,255,215, 0,149, -255,215, 0,150,255,215, 0,151,255,215, 0,152,255,215, 0,154,255,215, 0,200,255,215, 0,206,255,215, 0,222,255,215, 0,224, -255,215, 0,226,255,215, 0,228,255,215, 1, 14,255,215, 1, 18,255,215, 1,159,255,215, 1,184,255,215, 1,187,255,215, 1,190, -255,195, 1,225,255,195, 2, 7, 0, 41, 2, 11, 0, 41, 2, 95,255,215, 2,108,255,215, 2,125,255,195, 2,126,255,215, 2,132, -255,215, 2,134,255,215, 2,136,255,215, 2,138,255,215, 2,140,255,215, 2,177,255,215, 2,179,255,215, 2,192,255,195, 2,194, -255,195, 2,198,255,174, 2,213,255,195, 2,225,255,215, 2,227,255,215, 2,239,255,215, 2,241,255,215, 2,243,255,215, 2,254, -255,195, 3, 21,255,215, 3, 25,255,215, 3, 73,255,215, 3, 75,255,215, 3, 77,255,215, 3, 79,255,215, 3, 81,255,215, 3, 83, -255,215, 3, 85,255,215, 3, 87,255,215, 3, 89,255,215, 3, 91,255,215, 3, 93,255,215, 3, 95,255,215, 1, 82, 0, 5, 0, 82, - 0, 10, 0, 82, 0, 15,255,154, 0, 16,255,154, 0, 17,255,154, 0, 34, 0, 41, 0, 36,255,133, 0, 38,255,195, 0, 42,255,195, - 0, 50,255,195, 0, 52,255,195, 0, 54,255,236, 0, 55, 0, 20, 0, 68,255,133, 0, 70,255,133, 0, 71,255,133, 0, 72,255,133, - 0, 74,255,154, 0, 80,255,174, 0, 81,255,174, 0, 82,255,133, 0, 83,255,174, 0, 84,255,133, 0, 85,255,174, 0, 86,255,133, - 0, 88,255,174, 0, 89,255,195, 0, 90,255,195, 0, 91,255,195, 0, 92,255,195, 0, 93,255,195, 0,130,255,133, 0,131,255,133, - 0,132,255,133, 0,133,255,133, 0,134,255,133, 0,135,255,133, 0,136,255,113, 0,137,255,195, 0,148,255,195, 0,149,255,195, - 0,150,255,195, 0,151,255,195, 0,152,255,195, 0,154,255,195, 0,162,255,133, 0,163,255,133, 0,164,255,133, 0,165,255,133, - 0,166,255,133, 0,167,255,133, 0,168,255,133, 0,169,255,133, 0,170,255,133, 0,171,255,133, 0,172,255,133, 0,173,255,133, - 0,179,255,174, 0,180,255,133, 0,181,255,133, 0,182,255,133, 0,183,255,133, 0,184,255,133, 0,186,255,133, 0,187,255,174, - 0,188,255,174, 0,189,255,174, 0,190,255,174, 0,191,255,195, 0,193,255,195, 0,194,255,133, 0,195,255,133, 0,196,255,133, - 0,197,255,133, 0,198,255,133, 0,199,255,133, 0,200,255,195, 0,201,255,133, 0,203,255,133, 0,205,255,133, 0,206,255,195, - 0,207,255,133, 0,213,255,133, 0,215,255,133, 0,217,255,133, 0,219,255,133, 0,221,255,133, 0,222,255,195, 0,224,255,195, - 0,226,255,195, 0,228,255,195, 1, 6,255,174, 1, 8,255,174, 1, 10,255,174, 1, 14,255,195, 1, 15,255,133, 1, 17,255,133, - 1, 18,255,195, 1, 19,255,133, 1, 20,255,195, 1, 21,255,133, 1, 28,255,236, 1, 29,255,133, 1, 31,255,133, 1, 32,255,236, - 1, 33,255,133, 1, 34,255,236, 1, 35,255,133, 1, 36, 0, 20, 1, 38, 0, 20, 1, 55,255,195, 1, 57,255,195, 1, 64,255,195, - 1, 67,255,133, 1, 68,255,133, 1, 74,255,133, 1,159,255,195, 1,160,255,236, 1,164,255,174, 1,170,255,133, 1,174,255,154, - 1,181,255,154, 1,184,255,195, 1,187,255,195, 1,188, 0, 20, 1,190,255,195, 1,196, 0, 20, 1,202,255,133, 1,204,255,195, - 1,205,255,195, 1,206,255,113, 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,212,255,195, 1,213,255,113, - 1,214,255,195, 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, - 1,222,255,133, 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,229,255,195, 1,230,255,195, - 1,232,255,195, 1,233,255,195, 1,234,255,133, 1,235, 0, 41, 1,236,255,195, 1,237,255,133, 1,238,255,133, 1,240, 0, 82, - 1,242,255,133, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,251,255,195, 1,253,255,195, 1,255,255,195, - 2, 1,255,195, 2, 7, 0, 82, 2, 11, 0, 82, 2, 40,255,133, 2, 88,255,133, 2, 89,255,133, 2, 95,255,195, 2, 96,255,133, - 2,106,255,133, 2,107,255,195, 2,108,255,195, 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,195, 2,127,255,133, - 2,129,255,195, 2,131,255,195, 2,132,255,195, 2,133,255,133, 2,134,255,195, 2,135,255,133, 2,136,255,195, 2,137,255,133, - 2,138,255,195, 2,139,255,195, 2,140,255,195, 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, - 2,166,255,195, 2,169, 0, 20, 2,170,255,195, 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,195, 2,178,255,133, - 2,179,255,195, 2,180,255,133, 2,181, 0, 20, 2,182,255,195, 2,183, 0, 20, 2,184,255,195, 2,185, 0, 20, 2,186,255,195, - 2,188,255,195, 2,189, 0, 20, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,197,255,195, 2,198,255,133, 2,199,255,195, - 2,203,255,195, 2,206,255,154, 2,207,255,113, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, - 2,218,255,133, 2,219,255,133, 2,220,255,133, 2,221,255,133, 2,224,255,133, 2,225,255,195, 2,227,255,195, 2,230,255,195, - 2,236,255,195, 2,238,255,195, 2,239,255,195, 2,240,255,133, 2,241,255,195, 2,242,255,133, 2,243,255,195, 2,244,255,133, - 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255,133, - 3, 10,255,133, 3, 11,255,133, 3, 12,255,133, 3, 14,255,195, 3, 16,255,195, 3, 17,255,154, 3, 18,255,113, 3, 20,255,195, - 3, 21,255,195, 3, 22,255,133, 3, 23, 0, 20, 3, 24,255,195, 3, 25,255,195, 3, 26,255,133, 3, 27,255,154, 3, 28,255,113, - 3, 29,255,133, 3, 30,255,133, 3, 31,255,133, 3, 33,255,133, 3, 34,255,133, 3, 35,255,133, 3, 36,255,133, 3, 37,255,133, - 3, 38,255,133, 3, 39,255,133, 3, 40,255,133, 3, 41,255,133, 3, 42,255,133, 3, 43,255,133, 3, 44,255,133, 3, 45,255,133, - 3, 46,255,133, 3, 47,255,133, 3, 48,255,133, 3, 49,255,133, 3, 50,255,133, 3, 51,255,133, 3, 52,255,133, 3, 54,255,133, - 3, 56,255,133, 3, 58,255,133, 3, 60,255,133, 3, 62,255,133, 3, 64,255,133, 3, 66,255,133, 3, 68,255,133, 3, 73,255,195, - 3, 74,255,133, 3, 75,255,195, 3, 76,255,133, 3, 77,255,195, 3, 78,255,133, 3, 79,255,195, 3, 80,255,133, 3, 81,255,195, - 3, 82,255,133, 3, 83,255,195, 3, 84,255,133, 3, 85,255,195, 3, 86,255,133, 3, 87,255,195, 3, 88,255,133, 3, 89,255,195, - 3, 90,255,133, 3, 91,255,195, 3, 92,255,133, 3, 93,255,195, 3, 94,255,133, 3, 95,255,195, 3, 96,255,133, 3, 98,255,174, - 3,100,255,174, 3,102,255,174, 3,104,255,174, 3,106,255,174, 3,108,255,174, 3,110,255,174, 3,112,255,195, 3,114,255,195, - 3,116,255,195, 0, 99, 0, 5, 0, 61, 0, 10, 0, 61, 0, 16,255,215, 1,159,255,215, 1,164,255,174, 1,170,255,154, 1,174, -255,133, 1,181,255,154, 1,187,255,215, 1,190,255,236, 1,196, 0, 41, 1,202,255,174, 1,204,255,195, 1,205,255,195, 1,206, -255,113, 1,207,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255,113, 1,214,255,195, 1,215,255,195, 1,216, -255,154, 1,217,255,195, 1,218,255,195, 1,219,255,195, 1,222,255,174, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227, -255,195, 1,229,255,195, 1,230,255,195, 1,232,255,195, 1,233,255,195, 1,234,255,195, 1,236,255,195, 1,237,255,195, 1,238, -255,195, 1,240, 0, 61, 1,242,255,133, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 2, 7, 0, 61, 2, 11, - 0, 61, 2,106,255,154, 2,107,255,195, 2,114,255,154, 2,125,255,195, 2,127,255,154, 2,133,255,154, 2,135,255,154, 2,137, -255,154, 2,141,255,154, 2,150,255,195, 2,154,255,195, 2,164,255,195, 2,166,255,195, 2,172,255,195, 2,174,255,195, 2,176, -255,195, 2,178,255,154, 2,180,255,154, 2,192,255,195, 2,194,255,195, 2,196,255,195, 2,198,255,174, 2,206,255,154, 2,207, -255,113, 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,154, 2,218,255,174, 2,219,255,154, 2,220, -255,174, 2,221,255,154, 2,224,255,154, 2,236,255,195, 2,238,255,195, 2,240,255,154, 2,242,255,154, 2,244,255,154, 2,254, -255,195, 3, 0,255,195, 3, 9,255,133, 3, 10,255,154, 3, 11,255,133, 3, 12,255,154, 3, 17,255,154, 3, 18,255,113, 3, 20, -255,195, 3, 22,255,154, 3, 26,255,154, 3, 27,255,154, 3, 28,255,113, 0, 42, 1,157,255,215, 1,164,255,215, 1,166,255,195, - 1,168,255,236, 1,170,255,215, 1,174,255,215, 1,176,255,195, 1,181,255,215, 1,188,255,195, 1,191,255,215, 1,196,255,195, - 1,199,255,215, 1,206,255,195, 1,213,255,195, 1,242,255,195, 2,114,255,215, 2,118,255,195, 2,159,255,195, 2,161,255,215, - 2,169,255,195, 2,181,255,195, 2,183,255,195, 2,185,255,195, 2,187,255,195, 2,189,255,195, 2,202,255,195, 2,206,255,215, - 2,207,255,195, 2,217,255,215, 2,219,255,215, 2,221,255,215, 2,229,255,195, 2,231,255,215, 2,233,255,215, 2,245,255,215, - 3, 5,255,195, 3, 7,255,195, 3, 17,255,215, 3, 18,255,195, 3, 23,255,195, 3, 27,255,215, 3, 28,255,195, 0, 46, 0, 5, - 0, 41, 0, 10, 0, 41, 1,159,255,215, 1,164, 0, 61, 1,174, 0, 41, 1,181, 0, 41, 1,184,255,236, 1,187,255,215, 1,190, -255,215, 1,193,255,236, 1,225,255,195, 2, 7, 0, 41, 2, 11, 0, 41, 2,108,255,236, 2,124,255,236, 2,125,255,195, 2,126, -255,236, 2,128,255,236, 2,130,255,236, 2,132,255,236, 2,134,255,236, 2,136,255,236, 2,138,255,236, 2,140,255,236, 2,177, -255,236, 2,179,255,236, 2,191,255,236, 2,192,255,195, 2,193,255,236, 2,194,255,195, 2,206, 0, 41, 2,212,255,236, 2,213, -255,195, 2,225,255,236, 2,227,255,236, 2,239,255,236, 2,241,255,236, 2,243,255,236, 2,253,255,236, 2,254,255,195, 3, 13, -255,236, 3, 15,255,236, 3, 17, 0, 41, 3, 21,255,236, 3, 25,255,236, 3, 27, 0, 41, 0, 48, 1,163, 0,246, 1,164, 0, 41, - 1,170, 0, 20, 1,174, 0, 41, 1,181, 0, 41, 1,188,255,236, 1,190,255,236, 1,191, 0, 20, 1,193,255,236, 1,206, 0, 41, - 1,213, 0, 20, 1,225,255,215, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,114, 0, 20, 2,124,255,236, 2,125,255,215, - 2,128,255,236, 2,130,255,236, 2,169,255,236, 2,181,255,236, 2,183,255,236, 2,185,255,236, 2,189,255,236, 2,191,255,236, - 2,192,255,215, 2,193,255,236, 2,194,255,215, 2,197,255,215, 2,198,255,215, 2,199,255,215, 2,206, 0, 41, 2,207, 0, 20, - 2,212,255,236, 2,213,255,215, 2,217, 0, 20, 2,219, 0, 20, 2,221, 0, 20, 2,253,255,236, 2,254,255,215, 3, 13,255,236, - 3, 15,255,236, 3, 17, 0, 41, 3, 18, 0, 20, 3, 23,255,236, 3, 27, 0, 41, 3, 28, 0, 20, 0, 62, 1,157,255,236, 1,163, - 0,225, 1,164, 0, 61, 1,170, 0, 41, 1,174, 0, 41, 1,181, 0, 41, 1,188,255,236, 1,189, 0, 41, 1,190,255,236, 1,191, - 0, 20, 1,193,255,236, 1,196,255,236, 1,199, 0, 20, 1,206, 0, 61, 1,209, 0, 20, 1,213, 0, 41, 1,220,255,236, 1,225, -255,215, 1,228,255,236, 1,231, 0, 41, 1,241, 0,102, 1,242, 0, 41, 2,114, 0, 41, 2,124,255,236, 2,125,255,215, 2,128, -255,236, 2,130,255,236, 2,161, 0, 20, 2,169,255,236, 2,170,255,236, 2,181,255,236, 2,182,255,236, 2,183,255,236, 2,185, -255,236, 2,189,255,236, 2,191,255,236, 2,192,255,215, 2,193,255,236, 2,194,255,215, 2,206, 0, 41, 2,207, 0, 41, 2,212, -255,236, 2,213,255,215, 2,217, 0, 41, 2,219, 0, 41, 2,221, 0, 41, 2,231, 0, 20, 2,233, 0, 20, 2,245, 0, 20, 2,247, - 0, 41, 2,249, 0, 41, 2,251, 0, 41, 2,253,255,236, 2,254,255,215, 3, 13,255,236, 3, 15,255,236, 3, 17, 0, 41, 3, 18, - 0, 41, 3, 23,255,236, 3, 24,255,236, 3, 27, 0, 41, 3, 28, 0, 41, 0, 30, 0, 5,255,195, 0, 10,255,195, 1,157,255,133, - 1,166,255,113, 1,168,255,215, 1,188,255,133, 1,193,255,195, 1,196,255,133, 1,220,255,215, 1,228,255,215, 2, 7,255,195, - 2, 11,255,195, 2,124,255,195, 2,128,255,195, 2,130,255,195, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, - 2,183,255,133, 2,185,255,133, 2,189,255,133, 2,191,255,195, 2,193,255,195, 2,212,255,195, 2,253,255,195, 3, 13,255,195, - 3, 15,255,195, 3, 23,255,133, 3, 24,255,215, 0, 32, 0, 5,255,154, 0, 10,255,154, 1,157,255,133, 1,166,255,133, 1,168, -255,215, 1,188,255,133, 1,193,255,195, 1,196,255,133, 1,220,255,215, 1,228,255,215, 2, 7,255,154, 2, 11,255,154, 2,124, -255,195, 2,128,255,195, 2,130,255,195, 2,169,255,133, 2,170,255,215, 2,181,255,133, 2,182,255,215, 2,183,255,133, 2,185, -255,133, 2,189,255,133, 2,191,255,195, 2,193,255,195, 2,197,255,195, 2,199,255,195, 2,212,255,195, 2,253,255,195, 3, 13, -255,195, 3, 15,255,195, 3, 23,255,133, 3, 24,255,215, 0, 35, 1,157,255,215, 1,164,255,215, 1,166,255,215, 1,168,255,215, - 1,174,255,215, 1,176,255,195, 1,177,255,236, 1,181,255,195, 1,188,255,215, 1,189,255,236, 1,191,255,215, 1,213,255,215, - 1,242,255,215, 2,118,255,195, 2,159,255,195, 2,169,255,215, 2,181,255,215, 2,183,255,215, 2,185,255,215, 2,187,255,195, - 2,189,255,215, 2,202,255,195, 2,206,255,195, 2,207,255,215, 2,229,255,195, 2,247,255,236, 2,249,255,236, 2,251,255,236, - 3, 5,255,195, 3, 7,255,195, 3, 17,255,195, 3, 18,255,215, 3, 23,255,215, 3, 27,255,195, 3, 28,255,215, 0, 29, 1,157, -255,215, 1,164,255,215, 1,166,255,215, 1,168,255,236, 1,174,255,215, 1,176,255,215, 1,177,255,236, 1,181,255,215, 1,189, -255,236, 1,191,255,215, 1,206,255,215, 1,213,255,215, 1,242,255,215, 2,118,255,215, 2,159,255,215, 2,187,255,215, 2,202, -255,215, 2,206,255,215, 2,207,255,215, 2,229,255,215, 2,247,255,236, 2,249,255,236, 2,251,255,236, 3, 5,255,215, 3, 7, -255,215, 3, 17,255,215, 3, 18,255,215, 3, 27,255,215, 3, 28,255,215, 0, 25, 0, 10,255,215, 1,220,255,215, 1,221,255,236, - 1,225,255,236, 1,228,255,215, 1,246,255,215, 2,109,255,236, 2,125,255,236, 2,129,255,236, 2,131,255,236, 2,139,255,236, - 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,192,255,236, 2,194,255,236, 2,213,255,236, 2,248,255,236, - 2,250,255,236, 2,252,255,236, 2,254,255,236, 3, 14,255,236, 3, 16,255,236, 3, 24,255,215, 0, 33, 1,206,255,215, 1,208, -255,215, 1,220,255,215, 1,221,255,215, 1,223,255,215, 1,225,255,236, 1,228,255,215, 1,246,255,215, 2,109,255,215, 2,125, -255,236, 2,129,255,215, 2,131,255,215, 2,139,255,215, 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,184,255,215, 2,186, -255,215, 2,188,255,215, 2,192,255,236, 2,194,255,236, 2,203,255,215, 2,213,255,236, 2,230,255,215, 2,248,255,215, 2,250, -255,215, 2,252,255,215, 2,254,255,236, 3, 6,255,215, 3, 8,255,215, 3, 14,255,215, 3, 16,255,215, 3, 24,255,215, 0, 36, - 0, 5, 0, 61, 0, 10, 0, 61, 1,208,255,236, 1,220,255,215, 1,221,255,215, 1,223,255,215, 1,225,255,236, 1,228,255,215, - 1,246,255,215, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,215, 2,125,255,236, 2,129,255,215, 2,131,255,215, 2,139,255,215, - 2,160,255,236, 2,170,255,215, 2,182,255,215, 2,184,255,215, 2,186,255,215, 2,188,255,236, 2,192,255,236, 2,194,255,236, - 2,203,255,236, 2,213,255,236, 2,230,255,236, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,236, 3, 6,255,236, - 3, 8,255,236, 3, 14,255,215, 3, 16,255,215, 3, 24,255,215, 0, 7, 1,206,255,154, 1,213,255,154, 1,237,255,236, 1,242, -255,154, 2,207,255,154, 3, 18,255,154, 3, 28,255,154, 0, 16, 1,202, 0, 20, 1,206, 0, 41, 1,220,255,215, 1,225,255,215, - 1,228,255,195, 1,241, 0,123, 2,125,255,215, 2,170,255,215, 2,182,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, - 2,218, 0, 20, 2,220, 0, 20, 2,254,255,215, 3, 24,255,215, 0, 13, 0, 10,255,215, 1,208,255,215, 1,220,255,236, 1,223, -255,236, 2,160,255,215, 2,170,255,236, 2,182,255,236, 2,188,255,215, 2,203,255,215, 2,230,255,215, 3, 6,255,215, 3, 8, -255,215, 3, 24,255,236, 0, 32, 0, 5, 0, 41, 0, 10, 0, 41, 1,207,255,215, 1,216,255,215, 1,219,255,236, 1,222,255,215, - 1,225,255,215, 1,234,255,215, 1,237,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,125,255,215, 2,127,255,215, - 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,192,255,215, 2,194,255,215, - 2,213,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,254,255,215, 3, 10,255,215, 3, 12,255,215, - 3, 22,255,215, 3, 26,255,215, 0, 29, 0, 5, 0, 61, 0, 10, 0, 61, 1,209,255,236, 1,220,255,236, 1,221,255,236, 1,223, -255,236, 1,225,255,215, 1,246,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,236, 2,125,255,215, 2,129,255,236, 2,131, -255,236, 2,139,255,236, 2,170,255,236, 2,182,255,236, 2,184,255,236, 2,186,255,236, 2,192,255,215, 2,194,255,215, 2,213, -255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, 2,254,255,215, 3, 14,255,236, 3, 16,255,236, 3, 24,255,236, 0, 33, - 0, 5, 0, 41, 0, 10, 0, 41, 1,203,255,215, 1,207,255,215, 1,216,255,215, 1,219,255,215, 1,222,255,215, 1,225,255,215, - 1,234,255,215, 1,237,255,215, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,125,255,215, 2,127,255,215, 2,133,255,215, - 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, - 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,254,255,215, 3, 10,255,215, 3, 12,255,215, 3, 22,255,215, - 3, 26,255,215, 0, 34, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,220, -255,215, 1,221,255,236, 1,223,255,215, 1,242,255,236, 1,246,255,236, 2,109,255,236, 2,129,255,236, 2,131,255,236, 2,139, -255,236, 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,184,255,236, 2,186,255,236, 2,188,255,215, 2,203,255,215, 2,207, -255,236, 2,230,255,215, 2,248,255,236, 2,250,255,236, 2,252,255,236, 3, 6,255,215, 3, 8,255,215, 3, 14,255,236, 3, 16, -255,236, 3, 18,255,236, 3, 24,255,215, 3, 28,255,236, 0, 19, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,220,255,236, - 1,223,255,236, 1,228,255,236, 1,242,255,236, 2,160,255,215, 2,170,255,236, 2,182,255,236, 2,188,255,215, 2,203,255,215, - 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, 3, 24,255,236, 3, 28,255,236, 0, 23, 0, 5, - 0, 61, 0, 10, 0, 61, 1,207,255,236, 1,216,255,236, 1,237,255,236, 2, 7, 0, 61, 2, 11, 0, 61, 2,106,255,236, 2,127, -255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178,255,236, 2,180,255,236, 2,224,255,236, 2,240, -255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22,255,236, 3, 26,255,236, 0, 48, 0, 5, 0, 82, - 0, 10, 0, 82, 0, 73, 0, 20, 1,202,255,215, 1,206,255,154, 1,207,255,236, 1,213,255,195, 1,216,255,215, 1,219,255,215, - 1,221, 0, 20, 1,222,255,215, 1,237,255,215, 1,242,255,154, 1,246, 0, 20, 2, 7, 0, 82, 2, 11, 0, 82, 2,106,255,215, - 2,109, 0, 20, 2,127,255,215, 2,129, 0, 20, 2,131, 0, 20, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,139, 0, 20, - 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,184, 0, 20, 2,186, 0, 20, 2,207,255,195, 2,218,255,215, 2,220,255,215, - 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 2,248, 0, 20, 2,250, 0, 20, 2,252, 0, 20, 3, 10,255,215, - 3, 12,255,215, 3, 14, 0, 20, 3, 16, 0, 20, 3, 18,255,195, 3, 22,255,215, 3, 26,255,215, 3, 28,255,195, 0, 36, 0, 5, - 0, 61, 0, 10, 0, 61, 0, 73, 0, 20, 1,202,255,236, 1,206,255,195, 1,213,255,195, 1,216,255,236, 1,220, 0, 20, 1,222, -255,236, 1,242,255,195, 2, 7, 0, 61, 2, 11, 0, 61, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137, -255,236, 2,141,255,236, 2,170, 0, 20, 2,178,255,236, 2,180,255,236, 2,182, 0, 20, 2,207,255,195, 2,218,255,236, 2,220, -255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 18,255,195, 3, 22, -255,236, 3, 24, 0, 20, 3, 26,255,236, 3, 28,255,195, 0, 28, 0, 91,255,215, 0, 93,255,236, 1, 64,255,236, 1,208,255,215, - 1,209,255,236, 1,213,255,236, 1,220,255,215, 1,223,255,236, 1,225,255,236, 1,228,255,215, 1,242,255,215, 2,125,255,236, - 2,160,255,215, 2,170,255,215, 2,182,255,215, 2,188,255,215, 2,192,255,236, 2,194,255,236, 2,203,255,215, 2,207,255,236, - 2,213,255,236, 2,230,255,215, 2,254,255,236, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, 3, 24,255,215, 3, 28,255,236, - 0, 29, 1,203,255,236, 1,207,255,236, 1,216,255,236, 1,219,255,236, 1,222,255,236, 1,225,255,236, 1,234,255,236, 1,237, -255,236, 2,106,255,236, 2,125,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,178, -255,236, 2,180,255,236, 2,192,255,236, 2,194,255,236, 2,213,255,236, 2,224,255,236, 2,240,255,236, 2,242,255,236, 2,244, -255,236, 2,254,255,236, 3, 10,255,236, 3, 12,255,236, 3, 22,255,236, 3, 26,255,236, 0, 21, 1,206, 0, 41, 1,213, 0, 41, - 1,220,255,236, 1,225,255,236, 1,228,255,215, 1,231, 0, 41, 1,233, 0, 20, 1,241, 0,102, 1,242, 0, 41, 1,246, 0, 20, - 2,125,255,236, 2,170,255,236, 2,182,255,236, 2,192,255,236, 2,194,255,236, 2,207, 0, 41, 2,213,255,236, 2,254,255,236, - 3, 18, 0, 41, 3, 24,255,236, 3, 28, 0, 41, 0, 22, 1,206, 0, 61, 1,213, 0, 41, 1,220,255,236, 1,225,255,236, 1,228, -255,236, 1,231, 0, 20, 1,234,255,236, 1,237,255,236, 1,241, 0,102, 1,242, 0, 41, 1,246, 0, 20, 2,125,255,236, 2,170, -255,236, 2,182,255,236, 2,192,255,236, 2,194,255,236, 2,207, 0, 41, 2,213,255,236, 2,254,255,236, 3, 18, 0, 41, 3, 24, -255,236, 3, 28, 0, 41, 0, 25, 1,220,255,154, 1,221,255,215, 1,223,255,236, 1,225,255,215, 1,228,255,113, 1,246,255,195, - 2,109,255,215, 2,125,255,215, 2,129,255,215, 2,131,255,215, 2,139,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,215, - 2,186,255,215, 2,192,255,215, 2,194,255,215, 2,213,255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,215, - 3, 14,255,215, 3, 16,255,215, 3, 24,255,154, 0, 28, 0, 5, 0, 61, 0, 10, 0, 61, 1,220,255,154, 1,221,255,215, 1,223, -255,236, 1,225,255,215, 1,228,255,113, 2, 7, 0, 61, 2, 11, 0, 61, 2,109,255,215, 2,125,255,215, 2,129,255,215, 2,131, -255,215, 2,139,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,215, 2,186,255,215, 2,192,255,215, 2,194,255,215, 2,213, -255,215, 2,248,255,215, 2,250,255,215, 2,252,255,215, 2,254,255,215, 3, 14,255,215, 3, 16,255,215, 3, 24,255,154, 0, 17, - 1,206,255,215, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,223,255,236, 1,228,255,215, 1,242,255,236, 1,246,255,215, - 2,160,255,215, 2,188,255,215, 2,203,255,215, 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18,255,236, - 3, 28,255,236, 0, 16, 1,206,255,215, 1,208,255,215, 1,209,255,236, 1,213,255,236, 1,223,255,236, 1,228,255,215, 1,246, -255,236, 2,160,255,215, 2,188,255,215, 2,203,255,215, 2,207,255,236, 2,230,255,215, 3, 6,255,215, 3, 8,255,215, 3, 18, -255,236, 3, 28,255,236, 0, 3, 0, 5,255,152, 0, 10,255,215, 1,223,255,236, 0, 28, 1,206,255,154, 1,207,255,215, 1,213, -255,154, 1,216,255,215, 1,219,255,236, 1,222,255,215, 1,234,255,215, 1,237,255,236, 1,242,255,154, 2,106,255,215, 2,127, -255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,207,255,154, 2,224, -255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, 3, 12,255,215, 3, 18,255,154, 3, 22,255,215, 3, 26, -255,215, 3, 28,255,154, 0, 2, 1,235, 0, 61, 1,244, 0, 61, 0, 33, 1,208,255,215, 1,220,255,154, 1,221,255,195, 1,222, -255,236, 1,223,255,236, 1,225,255,215, 1,228,255,154, 1,246,255,215, 2,109,255,195, 2,125,255,215, 2,129,255,195, 2,131, -255,195, 2,139,255,195, 2,160,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,195, 2,186,255,195, 2,188,255,215, 2,192, -255,215, 2,194,255,215, 2,203,255,215, 2,213,255,215, 2,230,255,215, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254, -255,215, 3, 6,255,215, 3, 8,255,215, 3, 14,255,195, 3, 16,255,195, 3, 24,255,154, 0, 31, 1,208,255,215, 1,220,255,154, - 1,221,255,195, 1,223,255,236, 1,225,255,215, 1,228,255,154, 2,109,255,195, 2,125,255,215, 2,129,255,195, 2,131,255,195, - 2,139,255,195, 2,160,255,215, 2,170,255,154, 2,182,255,154, 2,184,255,195, 2,186,255,195, 2,188,255,215, 2,192,255,215, - 2,194,255,215, 2,203,255,215, 2,213,255,215, 2,230,255,215, 2,248,255,195, 2,250,255,195, 2,252,255,195, 2,254,255,215, - 3, 6,255,215, 3, 8,255,215, 3, 14,255,195, 3, 16,255,195, 3, 24,255,154, 0, 1, 1,246,255,215, 0, 28, 0, 5, 0, 41, - 0, 10, 0, 41, 1,203,255,236, 1,207,255,215, 1,216,255,215, 1,219,255,236, 1,222,255,215, 1,234,255,215, 1,237,255,215, - 1,246,255,236, 2, 7, 0, 41, 2, 11, 0, 41, 2,106,255,215, 2,127,255,215, 2,133,255,215, 2,135,255,215, 2,137,255,215, - 2,141,255,215, 2,178,255,215, 2,180,255,215, 2,224,255,215, 2,240,255,215, 2,242,255,215, 2,244,255,215, 3, 10,255,215, - 3, 12,255,215, 3, 22,255,215, 3, 26,255,215, 0, 29, 1,202,255,215, 1,213,255,195, 1,216,255,236, 1,220, 0, 20, 1,242, -255,215, 2,106,255,236, 2,127,255,236, 2,133,255,236, 2,135,255,236, 2,137,255,236, 2,141,255,236, 2,170, 0, 20, 2,178, -255,236, 2,180,255,236, 2,182, 0, 20, 2,207,255,195, 2,218,255,215, 2,220,255,215, 2,224,255,236, 2,240,255,236, 2,242, -255,236, 2,244,255,236, 3, 10,255,236, 3, 12,255,236, 3, 18,255,195, 3, 22,255,236, 3, 24, 0, 20, 3, 26,255,236, 3, 28, -255,195, 0,218, 0, 5, 0, 82, 0, 10, 0, 82, 0, 16,255, 92, 0, 38,255,236, 0, 42,255,236, 0, 50,255,236, 0, 52,255,236, - 0, 55,255,133, 0, 56,255,236, 0, 57,255,174, 0, 58,255,195, 0, 60,255,154, 0,137,255,236, 0,148,255,236, 0,149,255,236, - 0,150,255,236, 0,151,255,236, 0,152,255,236, 0,154,255,236, 0,155,255,236, 0,156,255,236, 0,157,255,236, 0,158,255,236, - 0,159,255,154, 0,200,255,236, 0,206,255,236, 0,222,255,236, 0,224,255,236, 0,226,255,236, 0,228,255,236, 1, 14,255,236, - 1, 18,255,236, 1, 20,255,236, 1, 36,255,133, 1, 38,255,133, 1, 44,255,236, 1, 48,255,236, 1, 50,255,236, 1, 52,255,236, - 1, 54,255,195, 1, 56,255,154, 1, 58,255,154, 1,159,255,236, 1,164,255,154, 1,170,255,133, 1,174,255,133, 1,181,255,133, - 1,184,255,215, 1,187,255,236, 1,188,255,133, 1,190,255,195, 1,202,255,133, 1,204,255,195, 1,205,255,195, 1,206,255, 92, - 1,207,255,133, 1,208,255,195, 1,209,255,195, 1,210,255,195, 1,211,255,195, 1,212,255,195, 1,213,255, 92, 1,214,255,195, - 1,215,255,195, 1,216,255,133, 1,217,255,195, 1,218,255,195, 1,219,255,133, 1,220,255,195, 1,221,255,195, 1,222,255,133, - 1,223,255,195, 1,224,255,195, 1,225,255,195, 1,226,255,195, 1,227,255,195, 1,228,255,195, 1,229,255,195, 1,230,255,195, - 1,231,255,195, 1,232,255,195, 1,233,255,154, 1,234,255,133, 1,236,255,195, 1,237,255,133, 1,238,255,174, 1,240, 0, 61, - 1,242,255, 92, 1,243,255,195, 1,245,255,195, 1,247,255,195, 1,249,255,195, 1,250,255,195, 1,252,255,195, 1,254,255,195, - 2, 0,255,154, 2, 7, 0, 82, 2, 11, 0, 82, 2, 95,255,236, 2, 97,255,236, 2,106,255,133, 2,107,255,195, 2,108,255,215, - 2,109,255,195, 2,114,255,133, 2,125,255,195, 2,126,255,215, 2,127,255,133, 2,129,255,195, 2,131,255,195, 2,132,255,215, - 2,133,255,133, 2,134,255,215, 2,135,255,133, 2,136,255,215, 2,137,255,133, 2,138,255,215, 2,139,255,195, 2,140,255,215, - 2,141,255,133, 2,150,255,195, 2,154,255,195, 2,160,255,195, 2,164,255,195, 2,166,255,195, 2,169,255,133, 2,170,255,195, - 2,172,255,195, 2,174,255,195, 2,176,255,195, 2,177,255,215, 2,178,255,133, 2,179,255,215, 2,180,255,133, 2,181,255,133, - 2,182,255,195, 2,183,255,133, 2,184,255,195, 2,185,255,133, 2,186,255,195, 2,188,255,195, 2,189,255,133, 2,192,255,195, - 2,194,255,195, 2,196,255,195, 2,197,255,174, 2,198,255,113, 2,199,255,174, 2,203,255,195, 2,206,255,133, 2,207,255, 92, - 2,209,255,195, 2,211,255,195, 2,213,255,195, 2,215,255,195, 2,217,255,133, 2,218,255,133, 2,219,255,133, 2,220,255,133, - 2,221,255,133, 2,224,255,133, 2,225,255,215, 2,227,255,215, 2,230,255,195, 2,236,255,195, 2,238,255,195, 2,239,255,215, - 2,240,255,133, 2,241,255,215, 2,242,255,133, 2,243,255,215, 2,244,255,133, 2,248,255,195, 2,250,255,195, 2,252,255,195, - 2,254,255,195, 3, 0,255,195, 3, 6,255,195, 3, 8,255,195, 3, 9,255, 92, 3, 10,255,133, 3, 11,255, 92, 3, 12,255,133, - 3, 14,255,195, 3, 16,255,195, 3, 17,255,133, 3, 18,255, 92, 3, 20,255,195, 3, 21,255,215, 3, 22,255,133, 3, 23,255,133, - 3, 24,255,195, 3, 25,255,215, 3, 26,255,133, 3, 27,255,133, 3, 28,255, 92, 3, 73,255,236, 3, 75,255,236, 3, 77,255,236, - 3, 79,255,236, 3, 81,255,236, 3, 83,255,236, 3, 85,255,236, 3, 87,255,236, 3, 89,255,236, 3, 91,255,236, 3, 93,255,236, - 3, 95,255,236, 3, 97,255,236, 3, 99,255,236, 3,101,255,236, 3,103,255,236, 3,105,255,236, 3,107,255,236, 3,109,255,236, - 3,111,255,154, 3,113,255,154, 3,115,255,154, 0, 3, 0, 55,255,154, 1,113,255,154, 1,114,255,195, 0,195, 0, 36,255,174, - 0, 44, 0, 41, 0, 55, 0, 82, 0, 57, 0, 82, 0, 58, 0,102, 0, 59, 0, 41, 0, 60, 0, 82, 0, 61, 0, 41, 0, 70,255,195, - 0, 71,255,195, 0, 72,255,195, 0, 74,255,215, 0, 82,255,195, 0, 84,255,195, 0, 87, 0, 41, 0, 89, 0, 41, 0, 90, 0, 20, - 0,130,255,174, 0,131,255,174, 0,132,255,174, 0,133,255,174, 0,134,255,174, 0,135,255,174, 0,136,255, 92, 0,142, 0, 41, - 0,143, 0, 41, 0,144, 0, 41, 0,145, 0, 41, 0,159, 0, 82, 0,168,255,195, 0,169,255,195, 0,170,255,195, 0,171,255,195, - 0,172,255,195, 0,173,255,195, 0,180,255,195, 0,181,255,195, 0,182,255,195, 0,183,255,195, 0,184,255,195, 0,186,255,195, - 0,194,255,174, 0,196,255,174, 0,198,255,174, 0,201,255,195, 0,203,255,195, 0,205,255,195, 0,207,255,195, 0,213,255,195, - 0,215,255,195, 0,217,255,195, 0,219,255,195, 0,221,255,195, 0,236, 0, 41, 0,240, 0, 41, 0,242, 0, 41, 1, 15,255,195, - 1, 17,255,195, 1, 19,255,195, 1, 21,255,195, 1, 36, 0, 82, 1, 38, 0, 82, 1, 54, 0,102, 1, 55, 0, 20, 1, 56, 0, 82, - 1, 58, 0, 82, 1, 59, 0, 41, 1, 61, 0, 41, 1, 63, 0, 41, 1, 67,255,174, 1, 95,255,174, 1,105,255,174, 1,113, 0, 82, - 1,121,255,195, 1,126,255,195, 1,130,255,195, 1,138, 0, 41, 1,140,255,195, 1,142,255,195, 1,144,255,195, 1,145, 0, 41, - 1,147,255,195, 1,148, 0, 41, 1,150,255,195, 1,153,255,195, 1,155,255,195, 1,157, 0, 82, 1,164,255,154, 1,166, 0, 82, - 1,168, 0, 61, 1,170,255,174, 1,174,255,133, 1,176, 0, 61, 1,177, 0, 20, 1,181,255,133, 1,188, 0, 82, 1,189, 0, 61, - 1,191, 0, 41, 1,196, 0, 82, 1,207,255,195, 1,216,255,195, 1,219,255,195, 1,220, 0, 41, 1,222,255,195, 1,234,255,195, - 1,237,255,195, 1,250, 0,102, 1,251, 0, 20, 1,252, 0,102, 1,253, 0, 20, 1,254, 0,102, 1,255, 0, 20, 2, 0, 0, 82, - 2, 40,255,174, 2, 88,255,174, 2, 96,255,195, 2,106,255,195, 2,114,255,174, 2,118, 0, 61, 2,127,255,195, 2,133,255,195, - 2,135,255,195, 2,137,255,195, 2,141,255,195, 2,159, 0, 61, 2,169, 0, 82, 2,170, 0, 41, 2,178,255,195, 2,180,255,195, - 2,181, 0, 82, 2,182, 0, 41, 2,183, 0, 82, 2,185, 0, 82, 2,187, 0, 61, 2,189, 0, 82, 2,202, 0, 61, 2,206,255,133, - 2,217,255,174, 2,219,255,174, 2,221,255,174, 2,224,255,195, 2,229, 0, 61, 2,240,255,195, 2,242,255,195, 2,244,255,195, - 2,247, 0, 61, 2,249, 0, 61, 2,251, 0, 61, 3, 5, 0, 61, 3, 7, 0, 61, 3, 10,255,195, 3, 12,255,195, 3, 17,255,133, - 3, 22,255,195, 3, 23, 0, 82, 3, 24, 0, 41, 3, 26,255,195, 3, 27,255,133, 3, 29,255,174, 3, 31,255,174, 3, 33,255,174, - 3, 35,255,174, 3, 37,255,174, 3, 39,255,174, 3, 41,255,174, 3, 43,255,174, 3, 45,255,174, 3, 47,255,174, 3, 49,255,174, - 3, 51,255,174, 3, 54,255,195, 3, 56,255,195, 3, 58,255,195, 3, 60,255,195, 3, 62,255,195, 3, 64,255,195, 3, 66,255,195, - 3, 68,255,195, 3, 69, 0, 41, 3, 71, 0, 41, 3, 74,255,195, 3, 76,255,195, 3, 78,255,195, 3, 80,255,195, 3, 82,255,195, - 3, 84,255,195, 3, 86,255,195, 3, 88,255,195, 3, 90,255,195, 3, 92,255,195, 3, 94,255,195, 3, 96,255,195, 3,111, 0, 82, - 3,113, 0, 82, 3,115, 0, 82, 0, 16, 0, 69, 0, 61, 0, 73, 0,102, 0, 75, 0, 61, 0, 76, 0, 61, 0, 77, 0, 61, 0, 78, - 0, 61, 0, 79, 0, 61, 0, 87, 0,102, 0, 89, 0,102, 0, 90, 0,102, 0, 91, 0, 41, 0, 92, 0,102, 0, 93, 0, 41, 3,112, - 0,102, 3,114, 0,102, 3,116, 0,102, 0, 16, 0, 69, 0, 61, 0, 73, 0,102, 0, 75, 0, 61, 0, 76, 0, 61, 0, 77, 0, 61, - 0, 78, 0, 61, 0, 79, 0, 61, 0, 87, 0,102, 0, 89, 0,102, 0, 90, 0, 82, 0, 91, 0, 41, 0, 92, 0,102, 0, 93, 0, 20, - 3,112, 0,102, 3,114, 0,102, 3,116, 0,102, 0, 2, 3, 9,255,133, 3, 11,255,133, 0, 2, 0,150, 0, 5, 0, 5, 0, 0, - 0, 10, 0, 11, 0, 1, 0, 15, 0, 17, 0, 3, 0, 36, 0, 39, 0, 6, 0, 41, 0, 41, 0, 10, 0, 44, 0, 44, 0, 11, 0, 46, - 0, 47, 0, 12, 0, 50, 0, 53, 0, 14, 0, 55, 0, 62, 0, 18, 0, 68, 0, 70, 0, 26, 0, 72, 0, 75, 0, 29, 0, 78, 0, 78, - 0, 33, 0, 80, 0, 82, 0, 34, 0, 85, 0, 87, 0, 37, 0, 89, 0, 94, 0, 40, 0,109, 0,109, 0, 46, 0,125, 0,125, 0, 47, - 0,130, 0,135, 0, 48, 0,137, 0,146, 0, 54, 0,148, 0,152, 0, 64, 0,154, 0,159, 0, 69, 0,162, 0,173, 0, 75, 0,179, - 0,184, 0, 87, 0,186, 0,191, 0, 93, 0,193, 0,201, 0, 99, 0,203, 0,203, 0,108, 0,205, 0,207, 0,109, 0,209, 0,209, - 0,112, 0,213, 0,213, 0,113, 0,215, 0,215, 0,114, 0,217, 0,219, 0,115, 0,221, 0,221, 0,118, 0,236, 0,236, 0,119, - 0,240, 0,240, 0,120, 0,242, 0,242, 0,121, 0,248, 0,248, 0,122, 0,250, 0,251, 0,123, 0,253, 0,253, 0,125, 0,255, - 1, 1, 0,126, 1, 3, 1, 3, 0,129, 1, 6, 1, 6, 0,130, 1, 8, 1, 8, 0,131, 1, 10, 1, 10, 0,132, 1, 14, 1, 15, - 0,133, 1, 17, 1, 19, 0,135, 1, 21, 1, 21, 0,138, 1, 29, 1, 29, 0,139, 1, 31, 1, 31, 0,140, 1, 33, 1, 36, 0,141, - 1, 38, 1, 39, 0,145, 1, 44, 1, 44, 0,147, 1, 48, 1, 48, 0,148, 1, 50, 1, 50, 0,149, 1, 52, 1, 52, 0,150, 1, 54, - 1, 59, 0,151, 1, 61, 1, 61, 0,157, 1, 63, 1, 64, 0,158, 1, 67, 1, 68, 0,160, 1, 74, 1, 74, 0,162, 1, 86, 1, 86, - 0,163, 1, 90, 1, 98, 0,164, 1,100, 1,100, 0,173, 1,102, 1,105, 0,174, 1,108, 1,109, 0,178, 1,111, 1,124, 0,180, - 1,126, 1,132, 0,194, 1,134, 1,136, 0,201, 1,138, 1,142, 0,204, 1,144, 1,145, 0,209, 1,147, 1,151, 0,211, 1,153, - 1,153, 0,216, 1,155, 1,162, 0,217, 1,164, 1,168, 0,225, 1,170, 1,174, 0,230, 1,176, 1,177, 0,235, 1,180, 1,180, - 0,237, 1,184, 1,184, 0,238, 1,186, 1,192, 0,239, 1,195, 1,196, 0,246, 1,198, 1,200, 0,248, 1,202, 1,209, 0,251, - 1,212, 1,212, 1, 3, 1,216, 1,216, 1, 4, 1,218, 1,224, 1, 5, 1,227, 1,234, 1, 12, 1,236, 1,238, 1, 20, 1,240, - 1,240, 1, 23, 1,242, 1,246, 1, 24, 1,248, 2, 3, 1, 29, 2, 6, 2, 6, 1, 41, 2, 10, 2, 10, 1, 42, 2, 40, 2, 40, - 1, 43, 2, 88, 2, 88, 1, 44, 2, 96, 2, 96, 1, 45, 2, 98, 2, 98, 1, 46, 2,106, 2,106, 1, 47, 2,108, 2,114, 1, 48, - 2,116, 2,116, 1, 55, 2,118, 2,124, 1, 56, 2,126, 2,140, 1, 63, 2,149, 2,157, 1, 78, 2,159, 2,160, 1, 87, 2,162, - 2,175, 1, 89, 2,177, 2,192, 1,103, 2,195, 2,195, 1,119, 2,197, 2,197, 1,120, 2,199, 2,199, 1,121, 2,201, 2,204, - 1,122, 2,206, 2,207, 1,126, 2,210, 2,211, 1,128, 2,214, 2,217, 1,130, 2,219, 2,219, 1,134, 2,222, 2,222, 1,135, - 2,224, 2,233, 1,136, 2,239, 2,252, 1,146, 2,255, 3, 0, 1,160, 3, 3, 3, 8, 1,162, 3, 11, 3, 29, 1,168, 3, 31, - 3, 31, 1,187, 3, 33, 3, 33, 1,188, 3, 35, 3, 35, 1,189, 3, 37, 3, 37, 1,190, 3, 39, 3, 39, 1,191, 3, 41, 3, 41, - 1,192, 3, 43, 3, 43, 1,193, 3, 45, 3, 45, 1,194, 3, 47, 3, 47, 1,195, 3, 49, 3, 49, 1,196, 3, 51, 3, 51, 1,197, - 3, 54, 3, 54, 1,198, 3, 56, 3, 56, 1,199, 3, 58, 3, 58, 1,200, 3, 60, 3, 60, 1,201, 3, 62, 3, 62, 1,202, 3, 64, - 3, 64, 1,203, 3, 66, 3, 66, 1,204, 3, 68, 3, 69, 1,205, 3, 71, 3, 71, 1,207, 3, 73, 3, 86, 1,208, 3, 88, 3, 88, - 1,222, 3, 90, 3, 90, 1,223, 3, 92, 3, 92, 1,224, 3, 94, 3, 94, 1,225, 3, 96, 3, 97, 1,226, 3, 99, 3, 99, 1,228, - 3,102, 3,102, 1,229, 3,104, 3,104, 1,230, 3,106, 3,106, 1,231, 3,108, 3,108, 1,232, 3,110, 3,116, 1,233, 0, 0, - 0, 1, 0, 0, 0, 10, 0, 28, 0, 30, 0, 1,108, 97,116,110, 0, 8, 0, 4, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, - 0}; + 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/bmonofont.ttf.c b/source/blender/editors/datafiles/bmonofont.ttf.c index 26a45e76756..36f50403da2 100644 --- a/source/blender/editors/datafiles/bmonofont.ttf.c +++ b/source/blender/editors/datafiles/bmonofont.ttf.c @@ -3,3524 +3,9047 @@ */ /* DataToC output of file */ -int datatoc_bmonofont_ttf_size= 117072; +int datatoc_bmonofont_ttf_size= 309588; char datatoc_bmonofont_ttf[]= { - 0, 1, 0, 0, 0, 14, 0,128, 0, 3, 0, 96, 79, 83, 47, 50, -160,203,149,192, 0, 0, 1,104, 0, 0, 0, 96, 99,109, 97,112,233,125, 86, 20, 0, 0, 8,208, 0, 0, 7, 54, 99,118,116, 32, - 68,157, 77,114, 0, 0, 25,144, 0, 0, 2, 16,102,112,103,109,115,211, 35,176, 0, 0, 16, 8, 0, 0, 7, 5,103, 97,115,112, - 0, 4, 0, 7, 0, 1,201, 68, 0, 0, 0, 12,103,108,121,102,251,142, 20,149, 0, 0, 34,168, 0, 1,130,142,104,101, 97,100, -234, 37, 61,215, 0, 0, 0,236, 0, 0, 0, 54,104,104,101, 97, 11, 91, 2,150, 0, 0, 1, 36, 0, 0, 0, 36,104,109,116,120, -248,204,244, 91, 0, 0, 1,200, 0, 0, 7, 6,108,111, 99, 97,245, 66,148,216, 0, 0, 27,160, 0, 0, 7, 6,109, 97,120,112, - 5,235, 2,119, 0, 0, 1, 72, 0, 0, 0, 32,110, 97,109,101,123,244,226, 39, 0, 1,165, 56, 0, 0, 6,204,112,111,115,116, -216, 80,169, 40, 0, 1,172, 4, 0, 0, 29, 63,112,114,101,112, 65,189,218,130, 0, 0, 23, 16, 0, 0, 2,126, 0, 1, 0, 0, - 0, 1, 0, 0,136, 63, 64,110, 95, 15, 60,245, 0, 11, 8, 0, 0, 0, 0, 0,193,199,233, 84, 0, 0, 0, 0,197, 83, 9, 61, -254,200,253,213, 5, 35, 8,115, 0, 0, 0, 9, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7,109,254, 29, 0, 0, 4,205, -254,200,255,170, 5, 35, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 3,130, 0,144, - 0, 18, 0, 82, 0, 5, 0, 2, 0, 16, 0, 47, 0, 90, 0, 0, 1,228, 1, 99, 0, 3, 0, 1, 0, 3, 4,205, 1,144, 0, 5, - 0, 8, 5,154, 5, 51, 0, 0, 1, 30, 5,154, 5, 51, 0, 0, 3,208, 0,102, 1,242, 0, 0, 2, 11, 6, 9, 3, 8, 4, 2, - 2, 4,224, 0, 2,239, 64, 0, 32, 91, 0, 0, 0, 40, 0, 0, 0, 0, 49, 65, 83, 67, 0, 64, 0, 32,255,253, 6, 31,254, 20, - 0,132, 7,109, 1,227, 32, 0, 1,159, 0, 0, 0, 0, 4, 74, 5,182, 0, 0, 0, 32, 0, 0, 4,205, 0,193, 0, 0, 0, 0, - 0, 0, 1,231, 1, 29, 0, 45, 0,182, 0, 0, 0, 61, 1,240, 1, 39, 1, 41, 0,133, 0,152, 1,184, 1, 29, 1,207, 0,211, - 0,147, 0,225, 0,158, 0,131, 0, 61, 0,172, 0,154, 0,143, 0,156, 0,154, 1,231, 1,154, 0,152, 0,152, 0,152, 0,168, - 0, 31, 0, 33, 0,135, 0,129, 0,135, 0,217, 0,244, 0,117, 0,135, 0,225, 0,137, 0,211, 0,233, 0,113, 0,135, 0, 84, - 0,176, 0, 84, 0,186, 0,141, 0,102, 0,125, 0, 33, 0, 2, 0, 53, 0, 33, 0,102, 1,156, 0,211, 1, 33, 0,111,255,240, - 1,162, 0,135, 0,158, 0,172, 0,137, 0,133, 0,156, 0,102, 0,160, 0,197, 0,135, 0,215, 0,188, 0, 92, 0,160, 0,115, - 0,158, 0,137, 1, 8, 0,203, 0,139, 0,160, 0, 82,255,252, 0, 96, 0, 82, 0,182, 0,225, 2, 27, 0,227, 0,152, 0, 0, - 1,231, 0,172, 0,119, 0,174, 0, 78, 2, 27, 0,244, 1, 74, 0, 6, 1, 20, 0,197, 0,152, 1, 29, 0, 6,255,236, 1, 43, - 0,152, 1, 92, 1, 86, 1,162, 0,180, 0, 66, 1,231, 1,172, 1,111, 1, 25, 0,197, 0, 22, 0, 3, 0, 21, 0,168, 0, 33, - 0, 33, 0, 33, 0, 33, 0, 33, 0, 33, 0, 0, 0,129, 0,217, 0,217, 0,217, 0,217, 0,225, 0,225, 0,225, 0,225, 0, 0, - 0,135, 0, 84, 0, 84, 0, 84, 0, 84, 0, 84, 0,190, 0, 80, 0,125, 0,125, 0,125, 0,125, 0, 33, 0,176, 0,164, 0,135, - 0,135, 0,135, 0,135, 0,135, 0,135, 0, 45, 0,172, 0,133, 0,133, 0,133, 0,133, 0,197, 0,197, 0,197, 0,197, 0,135, - 0,160, 0,115, 0,115, 0,115, 0,115, 0,115, 0,152, 0,115, 0,160, 0,160, 0,160, 0,160, 0, 82, 0,158, 0, 82, 0, 33, - 0,135, 0, 33, 0,135, 0, 33, 0,135, 0,129, 0,172, 0,129, 0,172, 0,129, 0,172, 0,129, 0,172, 0,135, 0, 79, 0, 0, - 0,137, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,117, 0,102, 0,117, 0,102, 0,117, - 0,102, 0,117, 0,102, 0,135, 0,160, 0, 0, 0, 4, 0,225, 0,197, 0,225, 0,197, 0,225, 0,197, 0,225, 0,197, 0,225, - 0,197, 0,156, 0,188, 0,137, 0,135, 0,211, 0,215, 0,215, 0,233, 0,188, 0,233, 0,188, 0,233, 0,188, 0,233, 0,188, - 0, 72, 0,188, 0,135, 0,160, 0,135, 0,160, 0,135, 0,160,255,240, 0,135, 0,160, 0, 84, 0,115, 0, 84, 0,115, 0, 84, - 0,115, 0, 20, 0, 57, 0,186, 1, 8, 0,186, 0,187, 0,186, 1, 8, 0,141, 0,203, 0,141, 0,203, 0,141, 0,203, 0,141, - 0,203, 0,102, 0,139, 0,102, 0,139, 0,102, 0,139, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, - 0,160, 0,125, 0,160, 0, 2,255,252, 0, 33, 0, 82, 0, 33, 0,102, 0,182, 0,102, 0,182, 0,102, 0,182, 1,100, 0,215, - 0, 33, 0,135, 0, 0, 0, 45, 0, 80, 0,115, 0,141, 0,203, 1, 27, 1, 27, 1, 70, 1, 57, 1,252, 1,131, 1,158, 0,254, - 0,246, 1,223, 1, 43, 0, 33, 1,231,255,142,255,101,255,163,255,124,255, 19,255,122, 0,241, 0, 33, 0,135, 0,246, 0, 68, - 0,217, 0,102, 0,135, 0, 84, 0,225, 0,211, 0, 33, 0,113, 0,135, 0,111, 0, 84, 0,135, 0,176, 0,131, 0,102, 0, 33, - 0, 27, 0, 53, 0, 57, 0, 74, 0,225, 0, 33, 0,121, 0,201, 0,160, 1,172, 0,160, 0,121, 0,158, 0, 82, 0,135, 0,201, - 0,162, 0,160, 0,147, 1,172, 0,215, 0, 61, 0,160, 0, 61, 0,172, 0,115, 0, 14, 0,158, 0,172, 0,129, 0,106, 0,160, - 0, 74, 0, 43, 0, 80, 0, 90, 1, 3, 0,160, 0,115, 0,160, 0, 90, 0,217, 0, 23, 0,246, 0,129, 0,141, 0,225, 0,225, - 0,137, 0, 0, 0, 66, 0, 23, 0,211, 0, 27, 0,135, 0, 33, 0,135, 0,135, 0,246, 0, 6, 0,217, 0, 0, 0,139, 0,137, - 0,137, 0,211, 0, 4, 0,113, 0,135, 0, 84, 0,135, 0,176, 0,129, 0,102, 0, 27, 0, 27, 0, 53, 0,135, 0,135, 0,121, - 0, 61, 0, 27, 0, 96, 0,176, 0, 68, 0, 98, 0, 57, 0,135, 0,143, 0,176, 1, 35, 0, 33, 0,133, 0, 0, 0,201, 0,160, - 0,160, 0,215, 0, 31, 0,115, 0,160, 0,115, 0,160, 0,158, 0,172, 0,121, 0, 82, 0, 74, 0, 96, 0,152, 0,152, 0,125, - 0,109, 0, 43, 0,113, 0,217, 0,184, 0,123, 0,115, 0,133, 0, 4, 1, 35, 0,172, 0,203, 0,197, 0,197, 0,135, 0, 0, - 0,106, 0, 4, 0,215, 0, 82, 0,160, 0,246, 1, 35, 0, 2,255,252, 0, 2,255,252, 0, 2,255,252, 0, 33, 0, 82, 0,184, -255,250,255,250,255,236, 1,190, 1,190, 1,201, 1,190, 0,233, 0,233, 0,244, 0,240, 0,229, 1,123, 0, 78, 0, 4, 1,240, - 1, 29, 1,145, 1,145, 0,255, 0,170, 1, 61, 0,129, 0,119, 0, 82, 0, 96, 0, 8, 0,227, 0, 25, 0, 0, 0, 74, 0, 82, - 0, 18, 0, 11, 0, 24, 0, 28, 0,121, 0, 74, 0,156, 0, 74, 0,152, 0, 23, 0, 70, 0,236, 0,152, 0,152, 0,152, 0,152, - 0,125, 0, 49, 0, 49, 0,231, 0,135, 1,238, 1,227, 1,227, 1, 57, 1, 37, 1, 80, 1, 57, 1,111, 1, 49, 1, 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, 55, 0, 4, 0,135, 1,190, - 0, 10, 0, 31, 0, 18, 0,113, 0, 92, 0, 33, 0,135,254,200, 1,131, 1, 45, 0, 66, 0, 66, 0, 84, 0,115, 0,125, 0,160, - 1,162, 1,162, 0,254, 1,172, 1,252, 0,217, 0,137, 0,133, 0,160, 0, 82,255,252, 0, 20, 0, 20, 0, 98, 0,160, 0, 0, - 0, 61, 0, 98, 0,123, 0, 0, 0, 10, 0, 92, 0,123, 0,117, 0,143, 0, 57, 0, 80, 0, 84, 0,115, 0, 63, 0, 82, 0, 63, - 0, 82, 0, 70, 0, 80, 0, 84, 0,115, 0, 82, 0, 88, 0, 82,255,252, 0,129, 0,172, 0, 94, 0,242, 0,242, 1,225, 1,225, - 0, 41, 0, 41, 0,137, 0,178, 0, 47, 0, 61, 0,176, 0,158, 0,147, 0,135, 0,160, 0,215, 0, 0, 0, 0, 0,139, 0,201, - 0,211, 0,215, 0,211, 0,215, 0, 59, 0, 59, 0, 23, 0, 43, 0,135, 0,160, 0,135, 0,160, 0,106, 0,127, 0, 84, 0,115, - 0,129, 0,172, 0,102, 0,121, 0, 33, 0, 82, 0, 33, 0, 82, 0, 53, 0, 96, 0, 23, 0, 20, 0,135, 0,152, 0,135, 0,152, - 0,135, 0,168,255,248,255,213,255,248,255,213, 0,225, 0, 0, 0, 0, 0,135, 0,215, 0, 4, 0, 31, 0,135, 0,160, 0,135, - 0,160, 0,135, 0,152, 0,113, 0,115, 0,225, 0, 33, 0,135, 0, 33, 0,135, 0, 0, 0, 45, 0,217, 0,133, 0, 84, 0,133, - 0, 84, 0,133, 0, 0, 0, 0, 0,139, 0,201, 0,158, 0,170, 0,137, 0,160, 0,137, 0,160, 0, 84, 0,115, 0, 84, 0,115, - 0, 84, 0,115, 0, 68, 0,184, 0, 27, 0, 82, 0, 27, 0, 82, 0, 27, 0, 82, 0,135, 0,152, 1, 43, 1, 35, 0, 96, 0,113, - 0,147, 0,135, 0, 53, 0, 96, 0, 53, 0, 96, 0,137, 0,137, 0, 49, 0, 49, 0, 35, 0, 43, 0, 39, 0, 80, 0, 0, 0, 0, - 0,121, 0,123, 0,117, 0,113, 0, 20, 0, 41, 0,166, 0,201, 0, 4, 0, 31, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, - 0, 33, 0, 85, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, 0, 33, 0,135, - 0, 33, 0,135, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0,217, 0,133, 0, 89, 0, 76, 0,217, 0,133, 0,217, 0,133, - 0,217, 0,133, 0,225, 0,197, 0,225, 0,197, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 74, 0, 74, 0, 84, 0,115, - 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0, 84, 0,115, 0,125, 0,160, - 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0,125, 0,160, 0, 33, 0, 82, 0, 33, 0, 82, - 0, 33, 0, 82, 0,137, 0,205, 0,188, 0,188, 0,221, 1, 35, 1, 57, 1, 57, 1, 57, 1, 35, 1,199, 1,178, 1,178, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 28, 0, 1, 0, 0, 0, 0, 5, 42, 0, 3, 0, 1, 0, 0, 0, 28, 0, 4, 5, 14, - 0, 0, 0,134, 0,128, 0, 6, 0, 6, 0,126, 1,127, 1,146, 1,161, 1,176, 1,240, 1,255, 2, 25, 2,188, 2,199, 2,201, - 2,221, 2,243, 3, 1, 3, 3, 3, 9, 3, 15, 3, 35, 3,138, 3,140, 3,161, 3,206, 3,210, 3,214, 4,134, 5, 19, 30, 1, - 30, 63, 30,133, 30,249, 31, 77, 32, 11, 32, 21, 32, 30, 32, 34, 32, 38, 32, 48, 32, 51, 32, 58, 32, 60, 32, 68, 32,127, 32,164, - 32,167, 32,172, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 94, 34, 2, 34, 6, 34, 15, 34, 18, 34, 26, 34, 30, 34, 43, - 34, 72, 34, 96, 34,101, 37,202,251, 4,254,255,255,253,255,255, 0, 0, 0, 32, 0,160, 1,146, 1,160, 1,175, 1,240, 1,250, - 2, 24, 2,188, 2,198, 2,201, 2,216, 2,243, 3, 0, 3, 3, 3, 9, 3, 15, 3, 35, 3,132, 3,140, 3,142, 3,163, 3,209, - 3,214, 4, 0, 4,136, 30, 0, 30, 62, 30,128, 30,160, 31, 77, 32, 0, 32, 19, 32, 23, 32, 32, 32, 38, 32, 48, 32, 50, 32, 57, - 32, 60, 32, 68, 32,127, 32,163, 32,167, 32,171, 33, 5, 33, 19, 33, 22, 33, 34, 33, 38, 33, 46, 33, 91, 34, 2, 34, 6, 34, 15, - 34, 17, 34, 26, 34, 30, 34, 43, 34, 72, 34, 96, 34,100, 37,202,251, 1,254,255,255,252,255,255,255,227,255,194,255,176, 0,191, - 0,178, 0, 97,255, 73,255, 49,255,150,254,133,254,132,254,118,255,104,255, 99,255, 98,255, 93, 0,103,255, 68,253,208,253,207, -253,206,253,205,254,130,254,127, 0, 0, 0, 0,228, 88,228, 24,227,122, 0, 0,227, 13,226, 66,225,239,225,238,225,237,225,234, -225,225,225,224,225,219,225,218,225,211,225,153,225,118,225,116, 0, 0,225, 24,225, 11,225, 9,224,254,224,251,224,244,224,200, -224, 37,224, 34,224, 26,224, 25,224, 18,224, 15,224, 3,223,231,223,208,223,205,220,105, 0, 0, 3, 79, 2, 83, 0, 1, 0, 0, + 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, 86, 1, 98, 0, 0, 0, 0, 0, 0, 2,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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,230, 0, 0, - 0, 0, 0, 0, 2,104, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, 1,164, 1,165, 1,166, 1,167, 2,105, - 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, 2,106, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, 1,244, 1,245, 2,107, - 1,246, 1,247, 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, 1,248, 1,249, 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, 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, 2, 0, 2, 1, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, - 2, 28, 2, 52, 2, 53, 2, 93, 2, 94, 0, 6, 2, 12, 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, 2, 13, 0,114, 0,100, 0,101, 0,105, 2, 15, - 0,120, 0,161, 0,112, 0,107, 2, 32, 0,118, 0,106, 2, 48, 0,136, 0,154, 2, 45, 0,115, 2, 49, 2, 50, 0,103, 0,119, - 2, 39, 2, 42, 2, 41, 1,141, 2, 46, 0,108, 0,124, 2, 33, 0,168, 0,186, 0,129, 0, 99, 0,110, 2, 44, 1, 66, 2, 47, - 2, 40, 0,109, 0,125, 2, 16, 0, 3, 0,130, 0,133, 0,151, 1, 20, 1, 21, 2, 2, 2, 3, 2, 10, 2, 11, 2, 6, 2, 7, - 0,185, 2, 51, 0,193, 1, 58, 2, 23, 0,102, 2, 20, 2, 21, 2, 52, 2, 53, 2, 14, 0,121, 2, 8, 2, 12, 2, 17, 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, - 1, 75, 1, 82, 0,113, 1, 78, 1, 79, 1, 80, 0,122, 1, 83, 1, 81, 1, 76, 0, 0, 0, 0, 64, 69, 89, 88, 85, 84, 83, 82, - 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 49, 48, 47, - 46, 45, 44, 40, 39, 38, 37, 36, 35, 34, 33, 31, 24, 20, 17, 16, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 44, - 69, 35, 70, 96, 32,176, 38, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97, 32,176, 38, 97,176, 4, 38, 35, 72, 72, 45, - 44, 69, 35, 70, 96,176, 32, 97, 32,176, 70, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 35, 97,176, 32, 96, 32,176, 38, 97, -176, 32, 97,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, 70, 96,176, 64, 97, 32,176,102, 96,176, 4, 38, 35, 72, 72, 45, 44, 69, 35, - 70, 35, 97,176, 64, 96, 32,176, 38, 97,176, 64, 97,176, 4, 38, 35, 72, 72, 45, 44, 1, 16, 32, 60, 0, 60, 45, 44, 32, 69, 35, - 32,176,205, 68, 35, 32,184, 1, 90, 81, 88, 35, 32,176,141, 68, 35, 89, 32,176,237, 81, 88, 35, 32,176, 77, 68, 35, 89, 32,176, - 4, 38, 81, 88, 35, 32,176, 13, 68, 35, 89, 33, 33, 45, 44, 32, 32, 69, 24,104, 68, 32,176, 1, 96, 32, 69,176, 70,118,104,138, - 69, 96, 68, 45, 44, 1,177, 11, 10, 67, 35, 67,101, 10, 45, 44, 0,177, 10, 11, 67, 35, 67, 11, 45, 44, 0,176, 40, 35,112,177, - 1, 40, 62, 1,176, 40, 35,112,177, 2, 40, 69, 58,177, 2, 0, 8, 13, 45, 44, 32, 69,176, 3, 37, 69, 97,100,176, 80, 81, 88, - 69, 68, 27, 33, 33, 89, 45, 44, 73,176, 14, 35, 68, 45, 44, 32, 69,176, 0, 67, 96, 68, 45, 44, 1,176, 6, 67,176, 7, 67,101, - 10, 45, 44, 32,105,176, 64, 97,176, 0,139, 32,177, 44,192,138,140,184, 16, 0, 98, 96, 43, 12,100, 35,100, 97, 92, 88,176, 3, - 97, 89, 45, 44,138, 3, 69,138,138,135,176, 17, 43,176, 41, 35, 68,176, 41,122,228, 24, 45, 44, 69,101,176, 44, 35, 68, 69,176, - 43, 35, 68, 45, 44, 75, 82, 88, 69, 68, 27, 33, 33, 89, 45, 44, 75, 81, 88, 69, 68, 27, 33, 33, 89, 45, 44, 1,176, 5, 37, 16, - 35, 32,138,245, 0,176, 1, 96, 35,237,236, 45, 44, 1,176, 5, 37, 16, 35, 32,138,245, 0,176, 1, 97, 35,237,236, 45, 44, 1, -176, 6, 37, 16,245, 0,237,236, 45, 44, 70, 35, 70, 96,138,138, 70, 35, 32, 70,138, 96,138, 97,184,255,128, 98, 35, 32, 16, 35, -138,177, 12, 12,138,112, 69, 96, 32,176, 0, 80, 88,176, 1, 97,184,255,186,139, 27,176, 70,140, 89,176, 16, 96,104, 1, 58, 45, - 44, 32, 69,176, 3, 37, 70, 82, 75,176, 19, 81, 91, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, 33, 56, 27, - 33, 17, 89, 45, 44, 32, 69,176, 3, 37, 70, 80, 88,176, 2, 37, 70, 32,104, 97,176, 3, 37,176, 3, 37, 63, 35, 33, 56, 27, 33, - 17, 89, 45, 44, 0,176, 7, 67,176, 6, 67, 11, 45, 44, 33, 33, 12,100, 35,100,139,184, 64, 0, 98, 45, 44, 33,176,128, 81, 88, - 12,100, 35,100,139,184, 32, 0, 98, 27,178, 0, 64, 47, 43, 89,176, 2, 96, 45, 44, 33,176,192, 81, 88, 12,100, 35,100,139,184, - 21, 85, 98, 27,178, 0,128, 47, 43, 89,176, 2, 96, 45, 44, 12,100, 35,100,139,184, 64, 0, 98, 96, 35, 33, 45, 44, 75, 83, 88, -138,176, 4, 37, 73,100, 35, 69,105,176, 64,139, 97,176,128, 98,176, 32, 97,106,176, 14, 35, 68, 35, 16,176, 14,246, 27, 33, 35, -138, 18, 17, 32, 57, 47, 89, 45, 44, 75, 83, 88, 32,176, 3, 37, 73,100,105, 32,176, 5, 38,176, 6, 37, 73,100, 35, 97,176,128, - 98,176, 32, 97,106,176, 14, 35, 68,176, 4, 38, 16,176, 14,246,138, 16,176, 14, 35, 68,176, 14,246,176, 14, 35, 68,176, 14,237, - 27,138,176, 4, 38, 17, 18, 32, 57, 35, 32, 57, 47, 47, 89, 45, 44, 69, 35, 69, 96, 35, 69, 96, 35, 69, 96, 35,118,104, 24,176, -128, 98, 32, 45, 44,176, 72, 43, 45, 44, 32, 69,176, 0, 84, 88,176, 64, 68, 32, 69,176, 64, 97, 68, 27, 33, 33, 89, 45, 44, 69, -177, 48, 47, 69, 35, 69, 97, 96,176, 1, 96,105, 68, 45, 44, 75, 81, 88,176, 47, 35,112,176, 20, 35, 66, 27, 33, 33, 89, 45, 44, - 75, 81, 88, 32,176, 3, 37, 69,105, 83, 88, 68, 27, 33, 33, 89, 27, 33, 33, 89, 45, 44, 69,176, 20, 67,176, 0, 96, 99,176, 1, - 96,105, 68, 45, 44,176, 47, 69, 68, 45, 44, 69, 35, 32, 69,138, 96, 68, 45, 44, 69, 35, 69, 96, 68, 45, 44, 75, 35, 81, 88,185, - 0, 51,255,224,177, 52, 32, 27,179, 51, 0, 52, 0, 89, 68, 68, 45, 44,176, 22, 67, 88,176, 3, 38, 69,138, 88,100,102,176, 31, - 96, 27,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 89, 35, 88,101, 89,176, 41, 35, 68, 35, 16,176, 41,224, 27, - 33, 33, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88, 75, 83, 35, 75, 81, 90, 88, 56, 27, 33, 33, 89, 27, 33, 33, 33, 33, 89, 45, - 44,176, 22, 67, 88,176, 4, 37, 69,100,176, 32, 96,102, 32, 88, 27, 33,176, 64, 89,176, 1, 97, 35, 88, 27,101, 89,176, 41, 35, - 68,176, 5, 37,176, 8, 37, 8, 32, 88, 2, 27, 3, 89,176, 4, 37, 16,176, 5, 37, 32, 70,176, 4, 37, 35, 66, 60,176, 4, 37, -176, 7, 37, 8,176, 7, 37, 16,176, 6, 37, 32, 70,176, 4, 37,176, 1, 96, 35, 66, 60, 32, 88, 1, 27, 0, 89,176, 4, 37, 16, -176, 5, 37,176, 41,224,176, 41, 32, 69,101, 68,176, 7, 37, 16,176, 6, 37,176, 41,224,176, 5, 37,176, 8, 37, 8, 32, 88, 2, - 27, 3, 89,176, 5, 37,176, 3, 37, 67, 72,176, 4, 37,176, 7, 37, 8,176, 6, 37,176, 3, 37,176, 1, 96, 67, 72, 27, 33, 89, - 33, 33, 33, 33, 33, 33, 33, 45, 44, 2,176, 4, 37, 32, 32, 70,176, 4, 37, 35, 66,176, 5, 37, 8,176, 3, 37, 69, 72, 33, 33, - 33, 33, 45, 44, 2,176, 3, 37, 32,176, 4, 37, 8,176, 2, 37, 67, 72, 33, 33, 33, 45, 44, 69, 35, 32, 69, 24, 32,176, 0, 80, - 32, 88, 35,101, 35, 89, 35,104, 32,176, 64, 80, 88, 33,176, 64, 89, 35, 88,101, 89,138, 96, 68, 45, 44, 75, 83, 35, 75, 81, 90, - 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 84, 88, 32, 69,138, 96, 68, 27, 33, 33, 89, 45, 44, 75, 83, 35, 75, 81, 90, - 88, 56, 27, 33, 33, 89, 45, 44,176, 0, 33, 75, 84, 88, 56, 27, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 70, 43, 27, 33, 33, - 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 71, 43, 27, 33, 33, 33, 89, 45, 44,176, 2, 67, 84, 88,176, 72, 43, 27, 33, 33, 33, - 33, 89, 45, 44,176, 2, 67, 84, 88,176, 73, 43, 27, 33, 33, 33, 89, 45, 44, 32,138, 8, 35, 75, 83,138, 75, 81, 90, 88, 35, 56, - 27, 33, 33, 89, 45, 44, 0,176, 2, 37, 73,176, 0, 83, 88, 32,176, 64, 56, 17, 27, 33, 89, 45, 44, 1, 70, 35, 70, 96, 35, 70, - 97, 35, 32, 16, 32, 70,138, 97,184,255,128, 98,138,177, 64, 64,138,112, 69, 96,104, 58, 45, 44, 32,138, 35, 73,100,138, 35, 83, - 88, 60, 27, 33, 89, 45, 44, 75, 82, 88,125, 27,122, 89, 45, 44,176, 18, 0, 75, 1, 75, 84, 66, 45, 44,177, 2, 0, 66,177, 35, - 1,136, 81,177, 64, 1,136, 83, 90, 88,185, 16, 0, 0, 32,136, 84, 88,178, 2, 1, 2, 67, 96, 66, 89,177, 36, 1,136, 81, 88, -185, 32, 0, 0, 64,136, 84, 88,178, 2, 2, 2, 67, 96, 66,177, 36, 1,136, 84, 88,178, 2, 32, 2, 67, 96, 66, 0, 75, 1, 75, - 82, 88,178, 2, 8, 2, 67, 96, 66, 89, 27,185, 64, 0, 0,128,136, 84, 88,178, 2, 4, 2, 67, 96, 66, 89,185, 64, 0, 0,128, - 99,184, 1, 0,136, 84, 88,178, 2, 8, 2, 67, 96, 66, 89,185, 64, 0, 1, 0, 99,184, 2, 0,136, 84, 88,178, 2, 16, 2, 67, - 96, 66, 89,185, 64, 0, 2, 0, 99,184, 4, 0,136, 84, 88,178, 2, 64, 2, 67, 96, 66, 89, 89, 89, 89, 89, 45, 44, 69, 24,104, - 35, 75, 81, 88, 35, 32, 69, 32,100,176, 64, 80, 88,124, 89,104,138, 96, 89, 68, 45, 44,176, 0, 22,176, 2, 37,176, 2, 37, 1, -176, 1, 35, 62, 0,176, 2, 35, 62,177, 1, 2, 6, 12,176, 10, 35,101, 66,176, 11, 35, 66, 1,176, 1, 35, 63, 0,176, 2, 35, - 63,177, 1, 2, 6, 12,176, 6, 35,101, 66,176, 7, 35, 66,176, 1, 22, 1, 45, 44,122,138, 16, 69, 35,245, 24, 45, 0, 0, 0, - 64, 21,248, 3,255, 31,241,111, 26, 31, 47,239,111,239, 2,230,228, 51, 31,229,228, 25, 31,184, 1, 0, 64, 16, 51,255, 85,223, - 51,221, 85,222, 51, 3, 85,176,255,208,255, 2,184,255,192, 64,104,255, 9, 17, 70, 0,221, 32,221,112,221, 3,221, 1, 3, 85, -220, 3,255, 31,214,213, 51, 31,211,210, 25, 31,135,210, 1,254,194, 25, 31, 6,186, 22,186,230,186,246,186, 4, 15,178, 31,178, - 47,178, 3, 64,178, 15, 19, 70,167,177, 1,175, 83, 25, 31,174,173, 25, 31,172, 74, 25, 31,171,170, 25, 31,169, 3,255, 31,158, -157, 25, 31, 31,157, 1,112,156,128,156,144,156,208,156,224,156,240,156, 6, 15,153, 1,151,152, 1,184,255,248, 64, 56,152, 9, - 15, 70, 32,151,128,151,144,151,240,151, 4,169,150,185,150, 2, 56,150, 1,240,149, 1,191,149, 1, 32,149, 48,149, 64,149,128, -149,144,149,160,149, 6,148,146, 25, 31,147, 83, 25, 31, 15,146, 1,133, 71, 25, 31,197,189, 1, 7, 0, 1, 0,166, 1, 7, 0, -182, 1, 7,178, 2, 3,128,186, 1, 7, 0,144, 1, 7, 64,168, 2,118,117, 25, 31,116, 80, 25, 31,115, 80, 25, 31,111, 72, 25, - 31,110, 71, 25, 31, 26, 1, 24, 85, 25, 19,255, 31, 7, 4,255, 31, 6, 3,255, 31, 97, 96, 25, 31,101, 96, 1,100, 95, 1,255, -251, 1,239,251, 1,121,251, 1, 63,251, 79,251, 2, 24,250, 18, 24, 70, 79,250, 95,250,111,250, 3,212, 91,228, 91, 2, 91, 90, - 16, 31, 57, 90, 1, 6, 90, 1, 6, 19, 51, 18, 85, 5, 1, 3, 85, 4, 51, 3, 85, 15, 3,127, 3,239, 3, 3,224,253, 1,223, -253, 1, 81, 80, 25, 31, 15,252,191,252,207,252,223,252, 4, 3, 64,252, 12, 16, 70, 73, 70, 25, 31, 96, 72, 1, 59, 71, 1, 6, - 28, 27,255, 31, 22, 51, 21, 85, 17, 1, 15, 85, 16, 51, 15, 85, 2, 1, 0, 85, 1, 71, 0, 85,184, 1, 6, 64, 30, 27, 18, 31, -159, 15,223, 15, 2,207, 15,239, 15, 2,111, 0,127, 0,175, 0,239, 0, 4, 16, 0, 1,128, 22, 1, 5, 1,184, 1,144,177, 84, - 83, 43, 43, 75,184, 7,255, 82, 75,176, 9, 80, 91,176, 1,136,176, 37, 83,176, 1,136,176, 64, 81, 90,176, 6,136,176, 0, 85, - 90, 91, 88,177, 1, 1,142, 89,133,141,141, 0, 66, 29, 75,176, 50, 83, 88,176, 96, 29, 89, 75,176,100, 83, 88,176, 64, 29, 89, - 75,176,128, 83, 88,176, 16, 29,177, 22, 0, 66, 89,115,115,115,116, 43, 43, 43, 43, 43, 43, 43, 1, 95,115,115, 43, 43, 95,115, - 0, 43,115,115,115, 43, 43, 43, 1, 95,115,115, 43,115,115, 43,115,115,115,115, 0,115,115, 43, 43, 43, 43, 43, 1, 43, 43, 0, - 43, 43, 43,115, 95,115,115, 1, 43, 0,115, 43, 43, 1,115,115,115,115,115,115, 43,115,115, 0,115,115, 43, 43, 1, 43, 43, 0, - 43, 43, 1,115, 0, 43,115,115, 43, 1,115, 43, 0, 43, 43, 43,115, 43,115, 43, 43, 43, 43, 43,115, 1, 43, 0, 43, 24, 0, 0, - 6, 20, 0, 11, 0, 81, 5,182, 0, 23, 0,117, 5,182, 5,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 74, - 0, 20, 0,143, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0, 0, 0,255,236, 0, 0,254, 20,254, 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, 8, 0, 8,115, 0, 0, 0,178, 0,182, 0,188, 0,156, 0,213, 0, 0, 0, 0, 0, 0, 0,143, 0,131, - 0,151, 0,159, 0,125, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 0,197, 0,186, 0, 0, 0, 0, 0,164, - 0,159, 0,143, 0, 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, 0,185, - 0,138, 0, 0, 0, 0, 0,155, 0,166, 0,143, 0,119, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,105, 0,110, 0,144, 0,192, 1,137, 0,219, 0,172, 0, 0, 0, 0, 0, 0, 0,102, 0,111, 0,120, 0,150, - 0,192, 0,213, 1, 72, 0,205, 1, 21, 2,151, 0,254, 1, 47, 0,237, 1, 78, 0,121, 1, 22, 1, 76, 1,245, 2, 39, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,226, 5,182, 0,150, 0,140, 0,229, 0,150, 0,137, 0,250, - 0, 0, 1, 24, 1, 12, 3, 29, 0,153, 2, 74, 0,120, 2,182, 0,141, 0,168, 0,140, 0, 0, 0, 0, 2,121, 0,217, 0,180, - 0, 0, 0, 0, 1, 90, 0,109, 0,127, 0,160, 0, 0, 0, 0, 0,109, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,140, 0,160, 0, 0, 0,130, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,182,252,234, 0, 17,255,235, - 0,150, 0, 0, 0, 0, 0, 0, 0,115, 0,101, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 1,170, 3, 84, 1,170, 2, 29, - 0,188, 0,182, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 5,182,254,188, 0,152, 0,172, 1, 57, 1,245, 1,131, 3, 29, -255,243, 0,131, 0,122, 0,134, 0, 0, 0, 0,254,111, 0,137, 0, 0, 0, 40, 0, 40, 0, 40, 0, 40, 0, 90, 0,135, 1, 28, - 1,193, 2,108, 3, 39, 3, 66, 3,111, 3,156, 3,210, 3,250, 4, 45, 4, 74, 4,105, 4,135, 4,205, 4,250, 5, 77, 5,178, - 6, 2, 6, 85, 6,179, 6,233, 7,103, 7,196, 7,245, 8, 52, 8,122, 8,174, 8,243, 9, 75, 9,234, 10, 97, 10,190, 10,255, - 11, 55, 11,111, 11,175, 11,252, 12, 51, 12,110, 12,156, 13, 28, 13, 66, 13,194, 14, 26, 14, 85, 14,147, 14,238, 15, 79, 15,156, - 15,204, 15,254, 16,101, 17, 71, 17,196, 18, 54, 18,111, 18,156, 18,186, 18,231, 19, 22, 19, 45, 19, 79, 19,164, 19,241, 20, 44, - 20,122, 20,201, 21, 17, 21,159, 21,221, 22, 25, 22, 93, 22,185, 22,231, 23, 77, 23,134, 23,192, 24, 16, 24, 95, 24,149, 24,226, - 25, 49, 25,104, 25,189, 26,130, 26,246, 27, 87, 27,145, 27,237, 28, 5, 28, 96, 28,149, 28,149, 28,191, 29, 15, 29, 98, 29,208, - 30, 87, 30,123, 31, 4, 31, 58, 31,194, 32, 22, 32, 94, 32,132, 32,140, 33, 41, 33, 62, 33,169, 33,221, 34, 40, 34,150, 34,184, - 34,250, 35, 61, 35, 95, 35,156, 35,196, 35,252, 36, 68, 36,115, 36,166, 36,211, 37, 51, 37, 75, 37, 98, 37,121, 37,145, 37,171, - 37,209, 38, 58, 38, 76, 38,100, 38,123, 38,146, 38,171, 38,195, 38,218, 38,241, 39, 10, 39, 90, 39,113, 39,137, 39,160, 39,184, - 39,207, 39,232, 40, 55, 40,165, 40,189, 40,212, 40,235, 41, 4, 41, 27, 41, 93, 41,211, 41,234, 42, 2, 42, 26, 42, 54, 42, 84, - 42,108, 42,237, 42,255, 43, 22, 43, 50, 43, 72, 43, 96, 43,119, 43,141, 43,164, 43,189, 44, 53, 44, 75, 44, 98, 44,120, 44,143, - 44,165, 44,190, 45, 9, 45,127, 45,150, 45,172, 45,194, 45,218, 45,240, 46, 65, 46, 89, 46,113, 46,135, 46,159, 46,181, 46,206, - 46,237, 47, 4, 47, 27, 47, 60, 47, 82, 47,105, 47,127, 47,150, 47,172, 47,196, 47,224, 47,232, 48, 78, 48,102, 48,124, 48,147, - 48,169, 48,192, 48,214, 48,234, 48,254, 49, 21, 49, 43, 49, 66, 49, 89, 49,116, 49,139, 49,162, 49,184, 49,206, 49,228, 49,251, - 50, 18, 50,100, 50,182, 50,205, 50,228, 50,251, 51, 18, 51, 41, 51, 63, 51, 82, 51,101, 51,124, 51,168, 51,230, 52, 75, 52, 98, - 52,121, 52,144, 52,167, 53, 4, 53, 28, 53, 51, 53, 74, 53, 97, 53,117, 53,139, 53,159, 53,183, 54, 18, 54,124, 54,147, 54,169, - 54,192, 54,215, 54,239, 55, 5, 55, 78, 55,168, 55,238, 56, 5, 56, 27, 56, 51, 56, 73, 56, 98, 56,122, 56,208, 57, 73, 57, 97, - 57,119, 57,142, 57,174, 57,198, 57,221, 57,244, 58, 10, 58, 33, 58, 55, 58, 74, 58, 95, 58,118, 58,140, 58,163, 58,185, 58,208, - 58,230, 59, 48, 59,147, 59,170, 59,192, 59,216, 59,238, 60, 6, 60, 28, 60, 53, 60, 78, 60,103, 60,127, 60,146, 60,171, 60,194, - 60,217, 60,240, 61, 6, 61, 31, 61, 54, 61, 76, 61, 99, 61,121, 61,144, 61,166, 61,215, 62, 47, 62,104, 62,156, 62,179, 62,201, - 62,224, 62,246, 63, 12, 63, 35, 63, 87, 63,139, 63,185, 63,248, 64, 46, 64,154, 64,208, 65, 9, 65, 73, 65,110, 65,193, 65,218, - 65,252, 66, 26, 66, 56, 66, 81, 66,104, 66,127, 66,150, 66,171, 66,179, 66,187, 66,232, 67,111, 67,119, 67,127, 67,135, 67,231, - 67,239, 67,247, 68,111, 68,119, 68,127, 68,190, 68,198, 68,235, 68,243, 69, 78, 69, 86, 69, 94, 69,241, 69,249, 70, 95, 70,201, - 70,226, 70,251, 71, 18, 71, 40, 71, 62, 71, 84, 71,109, 71,199, 72, 43, 72,129, 72,226, 73, 57, 73,176, 73,232, 74, 65, 74,108, - 74,116, 74,211, 75, 20, 75,107, 75,248, 76, 0, 76, 94, 76,167, 77, 4, 77, 71, 77,143, 77,200, 78, 42, 78,211, 79, 51, 79,187, - 79,211, 79,236, 80, 2, 80, 24, 80, 46, 80, 71, 80,175, 80,198, 81, 19, 81, 27, 81, 35, 81, 60, 81, 68, 81,188, 82, 8, 82, 93, - 82,116, 82,139, 82,196, 82,204, 83, 9, 83, 17, 83, 25, 83,128, 83,136, 84, 21, 84,116, 84,197, 84,221, 85, 55, 85,141, 85,149, - 85,157, 85,165, 85,173, 85,181, 85,189, 85,197, 86, 66, 86, 74, 86, 82, 86,135, 86,188, 87, 1, 87, 93, 87,159, 87,239, 88, 44, - 88,124, 88,232, 89, 71, 89, 79, 89,166, 90, 5, 90, 45, 90,139, 90,147, 91, 62, 91,153, 91,246, 92, 18, 92,113, 92,246, 93,128, - 93,184, 93,192, 93,231, 93,239, 93,247, 94, 40, 94, 48, 94,144, 94,152, 94,204, 95, 1, 95, 69, 95,152, 95,220, 96, 52, 96,115, - 96,209, 97, 51, 97,142, 97,166, 98, 10, 98, 32, 98,121, 98,129, 98,137, 98,162, 98,170, 99, 26, 99,112, 99,120, 99,142, 99,164, - 99,222,100, 16,100, 58,100, 82,100,105,100,128,100,150,100,175,100,200,100,224,100,247,101, 16,101, 38,101, 60,101,110,101,150, -101,197,101,249,102, 32,102, 99,102,176,102,253,103, 49,103,122,103,164,103,246,104,185,104,193,104,201,104,254,105, 38,105, 68, -105,100,105,162,105,242,106,103,106,221,107, 80,107,228,108, 79,109, 10,109,109,109,117,109,195,109,254,110, 53,110,110,110,167, -110,250,111,124,111,168,112, 1,112, 27,112, 72,112,178,112,232,113, 65,113,157,113,235,114, 55,114,118,114,212,115, 31,115, 78, -115,130,115,162,115,195,115,228,116, 22,116, 97,116,182,116,255,117, 45,117,161,117,239,117,239,117,239,117,239,117,239,117,239, -117,239,117,239,117,239,117,239,117,239,117,239,117,239,117,239,119, 67,119,192,119,210,119,218,120,119,120,241,121,122,121,145, -121,167,121,191,121,215,121,252,122, 83,122,157,123, 25,123,148,123,253,124, 89,124,173,125, 17,125, 25,125, 33,125, 41,125,108, -125,140,125,164,125,188,125,211,125,234,126,126,127, 2,127, 86,127,172,128, 27,128,136,129, 6,129,155,130, 81,130,235,131, 85, -131,208,132, 81,132,226,133,190,134,162,134,170,134,178,135, 13,135, 89,135,179,136, 18,136, 44,136, 69,136,233,137,144,138, 28, -138,155,139,132,140, 86,141, 26,141,219,142, 45,142,120,142,249,143, 41,143, 90,143,138,143,188,144,100,145, 13,145,135,146, 22, -146,104,146,192,147, 48,147,193,147,244,148, 38,148,125,148,213,149, 58,149,151,149,170,149,191,150, 25,150, 95,150,199,151, 43, -151,138,151,241,152, 63,152,138,152,206,153, 21,153, 85,153,140,153,229,154, 74,154,245,155,170,155,190,155,209,156, 13,156, 63, -156, 71,156,158,157, 36,157,148,158, 8,158,139,158,196,159, 0,159, 71,159,146,159,233,160, 70,160,125,160,192,161, 60,161,185, -162, 67,162,204,162,212,162,235,163, 1,163,104,163,199,164, 37,164,112,164,196,165, 21,165, 93,165,159,165,235,166, 60,166,220, -167,126,167,134,167,158,167,180,167,206,167,230,167,238,167,246,168, 14,168, 36,168,133,168,230,168,255,169, 23,169, 49,169, 74, -169,100,169,125,169,212,170, 46,170, 69,170, 91,170,116,170,140,170,165,170,190,170,198,170,206,170,231,171, 0,171, 26,171, 51, -171, 74,171, 96,171,122,171,146,171,171,171,195,171,220,171,244,172, 37,172, 81,172,106,172,130,172,212,173, 37,173, 62,173, 90, -173,212,174, 93,174,156,174,164,175, 9,175,127,175,246,176,105,176,213,177, 62,177,175,178, 18,178,100,178,186,179, 28,179,120, -179,193,180, 10,180,127,180,135,180,143,180,151,180,173,180,195,180,218,180,240,181, 9,181, 33,181, 59,181, 84,181,109,181,133, -181,158,181,182,181,215,181,247,182, 16,182, 40,182, 65,182, 89,182,114,182,138,182,164,182,188,182,223,182,255,183, 21,183, 43, -183, 66,183, 88,183,111,183,133,183,158,183,182,183,208,183,233,184, 2,184, 26,184, 52,184, 76,184,109,184,141,184,164,184,186, -184,208,184,231,184,254,185, 20,185, 43,185, 65,185, 90,185,114,185,140,185,165,185,190,185,214,185,239,186, 7,186, 43,186, 75, -186, 98,186,117,186,141,186,162,186,186,186,209,186,233,186,254,187, 21,187, 44,187, 66,187, 88,187,111,187,133,187,157,187,178, -187,202,187,224,187,248,188, 15,188, 38,188, 57,188, 80,188,103,188,125,188,147,188,170,188,192,188,215,188,237,189,126,189,195, -190, 21,190,103,190,216,191, 79,191,152,191,225,192, 77,192,190,192,241,193, 28,193, 71, 0, 0, 0, 2, 0,193, 0, 0, 4, 10, - 5,182, 0, 3, 0, 7, 0, 39, 64, 21, 5, 96, 2, 1, 2, 2, 9, 4, 0, 3,112, 3,128, 3, 3, 3, 4, 3, 7, 0, 3, 0, - 63, 50, 47, 51, 1, 47, 93, 51, 17, 51, 47, 93, 51, 49, 48, 19, 33, 17, 33, 55, 33, 17, 33,193, 3, 73,252,183,104, 2,121,253, -135, 5,182,250, 74,104, 4,230, 0, 2, 1,231,255,227, 2,229, 5,182, 0, 3, 0, 11, 0, 52, 64, 28, 1, 0, 3, 6,150, 2, - 10, 10, 12, 13, 47, 0, 1, 0, 0, 2, 21, 4, 1, 6, 4, 1, 4,155, 8,168, 2, 3, 0, 63, 63,225, 93, 93, 17, 57, 47, 93, - 17, 18, 1, 57, 47, 51,225, 50, 57, 57, 49, 48, 1, 35, 3, 51, 3, 50, 21, 20, 35, 34, 53, 52, 2,164,121, 51,223,113,127,127, -127, 1,158, 4, 24,251, 68,139,140,140,139, 0, 0, 2, 1, 29, 3,166, 3,176, 5,182, 0, 3, 0, 7, 0, 46, 64, 28, 4,207, - 7, 1,160, 7, 1, 79, 7, 1, 7, 0, 32, 3, 48, 3,144, 3,160, 3, 4, 3, 6, 1,158, 7, 0, 3, 0, 63, 50,237, 50, 1, - 47, 93,193, 47, 93, 93, 93,193, 49, 48, 1, 3, 35, 3, 33, 3, 35, 3, 2, 10, 41,155, 41, 2,147, 41,155, 41, 5,182,253,240, - 2, 16,253,240, 2, 16, 0, 2, 0, 45, 0, 0, 4,160, 5,182, 0, 27, 0, 31, 0,184, 64,115, 28, 8, 20, 9,171, 10, 18, 15, - 14, 11, 4, 10, 19,170, 20, 4, 1, 0, 25, 4, 24, 5,170, 6, 22, 30, 29, 7, 4, 6, 23,171, 24, 31, 21, 10, 20, 64, 2, 80, - 2, 2, 16, 10, 20, 6, 24, 2, 2, 24, 6, 20, 10, 16, 6,208, 26,240, 26, 2,127, 26,159, 26, 2, 26,224, 12,240, 12, 2, 12, - 8, 4, 12,174, 13, 28, 1, 13, 31, 0, 16,174, 17, 25, 21, 17, 63, 17, 79, 17,127, 17,143, 17,159, 17, 5, 63, 13, 79, 13, 2, - 13, 17, 13, 17, 5, 23, 19, 3, 10, 5, 18, 0, 63, 51, 63, 51, 18, 57, 57, 47, 47, 93, 93, 17, 51, 51, 16,225, 50, 50, 17, 51, - 51, 16,225, 50, 50, 1, 47, 93, 47, 93, 93, 23, 57, 47, 47, 47, 47, 47, 47, 93, 17, 18, 57, 57, 16,225, 17, 23, 57, 16,225, 17, - 23, 57, 16,225, 17, 23, 57, 16,225, 17, 57, 57, 49, 48, 1, 3, 51, 21, 33, 3, 35, 19, 33, 3, 35, 19, 35, 53, 51, 19, 35, 53, - 33, 19, 51, 3, 33, 19, 51, 3, 51, 21, 1, 33, 19, 33, 3,168, 64,240,254,246, 82,148, 84,254,222, 82,144, 78,217,244, 65,233, - 1, 2, 82,147, 82, 1, 37, 84,144, 84,221,253, 20, 1, 35, 64,254,221, 3,125,254,184,137,254, 84, 1,172,254, 84, 1,172,137, - 1, 72,137, 1,176,254, 80, 1,176,254, 80,137,254,184, 1, 72, 0, 3, 0,182,255,137, 4, 20, 6, 18, 0, 28, 0, 34, 0, 39, - 0,205, 64,134, 19, 36, 1, 4, 36, 1, 19, 35, 1, 4, 35, 1, 19, 9, 1, 6, 9, 1, 3, 8, 19, 8, 2, 2, 3, 18, 3, 2, - 2, 2, 18, 2, 2, 4, 1, 20, 1, 2, 4, 0, 20, 0, 2, 36, 24, 18, 1,112, 29, 15, 8, 2, 2, 5, 72, 38, 88, 38,120, 38, - 3, 38,110, 20, 27, 64, 17, 20, 72, 64, 27, 80, 27, 2, 27, 41, 5, 5, 32,110, 0, 12,144, 12,160, 12,208, 12, 4, 12, 23, 30, -115, 15, 38, 35, 9, 24, 29, 32, 6, 3, 21, 18, 15, 95, 16,111, 16,127, 16, 3, 16, 16, 15, 15, 47, 15, 63, 15, 95, 15, 4, 15, - 36, 8,115, 3, 6, 3, 2, 2, 0, 3,184,255,192,179, 10, 14, 72, 3, 0, 47, 43, 51, 51, 47, 17, 51, 16,225, 50, 47, 93, 51, - 47, 93, 17, 51, 51, 18, 23, 57, 16,225, 50, 1, 47, 93,225, 51, 47, 16,222, 93, 43, 50,225, 93, 17, 57, 47, 51, 51, 51,225, 50, - 50, 50, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 37, 21, 35, 53, 34, 39, 53, 22, 51, 17, 38, 38, 53, 52, 54, 55, 53, - 51, 21, 22, 23, 7, 38, 39, 17, 22, 22, 21, 16, 1, 17, 6, 21, 20, 22, 23, 17, 54, 53, 52, 2,172,137,228,137,196,169,193,155, -184,164,137,187,149, 66,140,130,199,161,254, 15,172, 81,228,184,111,230,221, 70,172, 92, 1,178, 64,163,138,131,172, 20,180,176, - 9, 69,145, 62, 10,254, 90, 68,161,130,254,232, 2,176, 1,113, 29,145, 78, 86,250,254,139, 28,156,127, 0, 5, 0, 0,255,238, - 4,205, 5,199, 0, 11, 0, 19, 0, 23, 0, 35, 0, 43, 0,207,185, 0, 34,255,224,179, 9, 13, 72, 32,184,255,224, 64, 14, 9, - 13, 72, 28, 32, 9, 13, 72, 26, 32, 9, 13, 72, 10,184,255,224,179, 9, 13, 72, 8,184,255,224, 64, 33, 9, 13, 72, 4, 32, 9, - 13, 72, 2, 32, 9, 13, 72,103, 42,151, 42,167, 42, 3, 42,180, 27,181, 33, 21, 22, 23, 20, 0, 22, 1, 22,184,255,192, 64, 26, - 21, 24, 72, 15, 20, 1, 20, 64, 21, 24, 72, 22, 20, 22, 20, 3,104, 38,152, 38,168, 38, 3, 38,180, 33,184,255,192, 64, 46, 21, - 24, 72, 33, 45,104, 14,152, 14,168, 14, 3, 14,180, 9,181,103, 18,151, 18,167, 18, 3, 18,180, 3, 40,182, 30,183, 36,182, 24, - 25, 23, 6, 21, 24, 12,182, 0,183, 16,182, 6, 7, 0, 63,225,244,225, 63, 63, 63,225,244,225, 1, 47,225, 93,244,225, 93, 16, -212, 43,225, 93, 18, 57, 57, 47, 47, 43, 93, 43, 93, 17, 51, 17, 51, 16,244,225, 93, 49, 48, 43, 43, 43, 43, 43, 43, 43, 43, 1, - 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 1, 1, 35, 1, 19, 34, 38, 53, 52, 54, 51, 50, 22, - 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 1, 35,131,160,158,137,129,162,157,136,139,139,141, 3,137,253, 39,158, 2,217, 35, -130,161,158,137,129,162,157,136,139,139,141, 3, 16,189,160,164,182,186,160,162,187,119,230,225,225,230, 2, 47,250, 74, 5,182, -250, 56,189,159,164,182,186,160,161,187,118,230,225,225,230, 0, 0, 3, 0, 61,255,236, 4,203, 5,205, 0, 26, 0, 37, 0, 45, - 0,229, 64, 15, 17, 39, 38, 9, 4, 8, 19, 8, 27, 0, 1, 6, 4, 7, 36,184,255,240, 64, 48, 14, 17, 72, 64, 36, 1, 52, 36, - 1, 36, 71, 19, 30, 16, 14, 17, 72, 79, 30, 1, 59, 30, 1, 6, 30, 71, 25, 32, 19, 48, 19, 2,192, 25,208, 25, 2, 19, 25, 19, - 25, 14,121, 3, 1, 3, 71, 4,184,255,192, 64, 28, 9, 18, 72, 4, 4, 7, 7, 47, 41, 72, 14, 64, 10, 16, 72, 14, 70, 6, 1, - 70, 1, 86, 1, 2, 55, 1, 1, 27,184,255,248, 64, 55, 11, 14, 72, 27, 0, 1, 6, 4, 8, 33, 80, 22, 88, 9, 1, 88, 38, 1, - 56, 39, 88, 39, 2, 41, 39, 1, 40, 17, 1, 17, 39, 38, 9, 4, 8, 22, 15, 3, 31, 3, 79, 3,127, 3, 4, 3, 3, 22, 4, 44, - 81, 11, 22, 8, 21, 0, 63, 63,225, 63, 57, 47, 93, 17, 18, 23, 57, 93, 93, 93, 93, 93, 16,225, 17, 23, 57, 43, 93, 93, 93, 1, - 47, 43,225, 17, 51, 47, 51, 47, 43,225, 93, 18, 57, 57, 47, 47, 93, 93, 16,225, 95, 93, 93, 43, 16,225, 93, 93, 43, 17, 23, 57, - 51, 17, 18, 23, 57, 49, 48, 1, 1, 54, 55, 51, 6, 7, 19, 35, 39, 6, 35, 34, 38, 53, 52, 54, 55, 38, 53, 52, 54, 51, 50, 22, - 21, 20, 5, 54, 54, 53, 52, 38, 35, 34, 6, 21, 20, 1, 1, 6, 21, 20, 22, 51, 50, 2, 90, 1, 25, 71, 33,184, 53,125,234,217, -131,174,238,189,217,127,172,163,191,179,168,185,254,100,134, 99, 99, 81, 87, 99, 1,147,254,189,203,134, 93,160, 3, 8,254,164, -121,145,234,169,254,221,166,186,214,187,131,195,102,192,164,148,172,171,149,203, 65, 79,119, 74, 74, 92, 89, 81,118,253, 8, 1, -145,123,178,105,141, 0, 0, 1, 1,240, 3,166, 2,221, 5,182, 0, 3, 0, 24, 64, 13, 0,160, 3,224, 3,240, 3, 3, 3, 1, -158, 0, 3, 0, 63,237, 1, 47, 93,193, 49, 48, 1, 3, 35, 3, 2,221, 41,155, 41, 5,182,253,240, 2, 16, 0, 0, 1, 1, 39, -254,188, 3,164, 5,182, 0, 9, 0, 39, 64, 21, 6, 5, 5, 0, 1, 1, 11, 3,240, 31, 8,127, 8,143, 8, 3, 8, 6,249, 0, -248, 0, 63, 63, 1, 47, 93,225, 17, 51, 47, 51, 51, 17, 51, 49, 48, 1, 51, 0, 17, 16, 1, 35, 0, 17, 16, 2,227,193,254, 63, - 1,191,191,254, 68, 5,182,254,136,253,251,253,247,254,140, 1, 97, 2, 26, 2, 20, 0, 0, 1, 1, 41,254,188, 3,166, 5,182, - 0, 9, 0, 39, 64, 21, 3,240, 16, 8,112, 8,128, 8, 3, 8, 8, 11, 0, 1, 1, 6, 5, 6,248, 0,249, 0, 63, 63, 1, 47, - 51, 51, 17, 51, 17, 51, 47, 93,225, 49, 48, 1, 35, 0, 17, 16, 1, 51, 0, 17, 16, 1,233,190, 1,190,254, 64,192, 1,189,254, -188, 1,115, 2, 10, 2, 6, 1,119,254,151,253,234,253,228, 0, 0, 1, 0,133, 2,119, 4, 72, 6, 20, 0, 14, 0, 36, 64, 21, -244, 7, 1, 7, 5, 9, 7, 4, 10, 3, 11, 1, 13, 2, 12, 11, 8, 6, 6, 0, 0, 0, 63, 50, 47, 51, 23, 57, 1, 25, 47, 93, - 49, 48, 1, 3, 37, 23, 5, 19, 7, 3, 3, 39, 19, 37, 55, 5, 3, 2,203, 43, 1,141, 27,254,133,246,179,176,157,185,242,254, -137, 29, 1,135, 43, 6, 20,254,119,111,193, 28,254,186, 96, 1,102,254,154, 96, 1, 70, 28,193,111, 1,137, 0, 0, 1, 0,152, - 1, 6, 4, 51, 4,162, 0, 11, 0, 31, 64, 16, 9, 6,170, 0,192, 3,208, 3, 2, 3, 9, 0,173, 6, 3,179, 0, 63, 51,225, - 50, 1, 47, 93, 51,225, 50, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 2, 27,254,125, 1,131,149, 1,131,254,125, -149, 2,135,150, 1,133,254,123,150,254,127, 0, 0, 1, 1,184,254,223, 3, 18, 1, 6, 0, 6, 0, 63, 64, 25, 25, 6, 41, 6, -233, 6,249, 6, 4, 6,152, 1,153,112, 4,128, 4,208, 4,224, 4,240, 4, 5, 4,184,255,192, 64, 15, 9, 12, 72, 4, 4, 7, - 8, 3,158, 31, 6, 47, 6, 2, 6, 0, 47, 93,237, 17, 18, 1, 57, 47, 43, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, - 3, 2, 16, 57,137,152, 76, 35, 1, 6, 24,224,254,209, 1, 67,228, 0, 0, 1, 1, 29, 1,209, 3,176, 2,121, 0, 3, 0, 32, - 64, 18,128, 2,144, 2, 2, 2, 2, 5, 32, 0, 48, 0, 2, 0, 0,185, 1,189, 0, 63,225, 1, 47, 93, 17, 51, 47, 93, 49, 48, - 1, 53, 33, 21, 1, 29, 2,147, 1,209,168,168, 0, 1, 1,207,255,225, 2,254, 1, 45, 0, 7, 0, 29, 64, 15, 2,151, 48, 6, -176, 6, 2, 6, 6, 8, 9, 0,156, 4,168, 0, 63,237, 17, 18, 1, 57, 47, 93,237, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 2, -102,152,152,151, 1, 45,166,166,166,166, 0, 1, 0,211, 0, 0, 3,248, 5,182, 0, 3, 0, 28, 64, 12, 3, 0, 0, 5, 1, 2, - 2, 4, 3, 3, 1, 18, 0, 63, 63, 17, 1, 51, 47, 51, 17, 51, 47, 50, 49, 48, 1, 1, 35, 1, 3,248,253,141,178, 2,115, 5, -182,250, 74, 5,182, 0, 0, 2, 0,147,255,236, 4, 57, 5,205, 0, 9, 0, 21, 0, 54, 64, 18, 13,111,208, 8, 1, 8, 23, 19, -111, 0, 3, 16, 3, 32, 3, 3, 7, 3,184,255,192, 64, 12, 21, 24, 72, 3, 16,115, 5, 7, 10,115, 0, 25, 0, 63,225, 63,225, - 1, 47, 43, 94, 93,225, 16,222, 93,225, 49, 48, 5, 34, 2, 17, 16, 33, 50, 18, 17, 16, 37, 50, 18, 17, 16, 2, 35, 34, 2, 17, - 16, 18, 2,100,229,236, 1,209,232,237,254, 43,147,138,138,147,145,135,135, 20, 1,131, 1,110, 2,240,254,125,254,147,253, 15, -155, 1, 25, 1, 61, 1, 59, 1, 25,254,233,254,195,254,194,254,232, 0, 0, 1, 0,225, 0, 0, 2,246, 5,182, 0, 10, 0, 43, - 64, 22, 9, 1, 8, 8, 0,110, 0, 1, 16, 1, 2, 6, 1, 1, 12, 11, 4, 7, 9, 6, 0, 24, 0, 63, 63,205, 57, 17, 18, 1, - 57, 47, 94, 93,225, 51, 47, 17, 51, 49, 48, 33, 35, 17, 52, 55, 6, 7, 7, 39, 1, 51, 2,246,176, 8, 39, 82,147, 97, 1,127, -150, 3,145,122,239, 43, 70,121,123, 1, 43, 0, 0, 1, 0,158, 0, 0, 4, 45, 5,203, 0, 23, 0, 85, 64, 29,144, 23,160, 23, -176, 23, 3, 23, 23, 6,111,255, 17, 1, 17, 64, 15, 19, 72, 17, 25,213, 22,229, 22,245, 22, 3, 22,184,255,232, 64, 23, 9, 12, - 72, 22, 12, 0, 1,176, 1, 2, 1, 6, 1, 11, 9,115, 14, 7, 2, 22,116, 1, 24, 0, 63,225, 50, 63,225, 51, 18, 57, 1, 47, - 93, 50, 50, 43, 93, 16,222, 43, 93,225, 51, 47, 93, 49, 48, 33, 33, 53, 1, 54, 54, 53, 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, - 21, 20, 6, 7, 1, 21, 33, 4, 45,252,113, 1, 94,195,124,127,108,160,158,102,192,230,194,224,118,232,254,231, 2,176,156, 1, -125,213,209,126,113,131,137,119,172,212,179,119,250,250,254,213, 8, 0, 0, 1, 0,131,255,236, 4, 31, 5,203, 0, 34, 0, 95, - 64, 58, 11, 19, 27, 19, 2, 0, 16, 21,111, 32, 32, 3, 95, 16, 1, 16, 16, 8, 13,111,159, 3,175, 3, 2, 3, 36, 27,207, 8, -223, 8,239, 8, 3, 0, 8, 1, 8, 0, 16,115,104, 17, 1, 17, 17, 11, 26, 24,115, 29, 7, 11,115, 9, 6, 25, 0, 63, 51,225, - 63,225, 51, 18, 57, 47, 93,225, 57, 1, 47, 93, 93, 51, 16,222, 93,225, 17, 57, 47, 93, 17, 51, 47,225, 18, 57, 49, 48, 93, 1, - 21, 4, 17, 20, 4, 33, 34, 39, 53, 22, 51, 32, 17, 16, 33, 35, 53, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, 21, - 20, 6, 2,182, 1,105,254,236,254,251,242,145,184,199, 1, 98,254,131,133,133,160,176,136,114,178,166, 92,187,249,206,231,164, - 3, 2, 6, 47,254,211,203,233, 79,170, 96, 1, 33, 1, 2,151,152,125,102,119,121,125,150,198,165,138,186, 0, 0, 2, 0, 61, - 0, 0, 4,102, 5,190, 0, 10, 0, 18, 0, 86, 64, 24, 7, 16, 9, 15, 72, 11, 7, 3,110, 9, 0, 2, 64, 16, 19, 72, 0, 2, - 1, 2, 2, 19, 20, 18,184,255,240, 64, 24, 11, 15, 72, 18, 5, 64, 10, 16, 72, 5, 1, 4,116, 9, 6, 14, 7, 11, 11, 2, 7, - 6, 2, 24, 0, 63, 63, 18, 57, 47, 18, 57, 51, 51,225, 50, 1, 47, 43, 51, 43, 17, 18, 57, 47, 93, 43, 51, 51,225, 50, 50, 49, - 48, 43, 1, 35, 17, 35, 17, 33, 53, 1, 51, 17, 51, 33, 17, 52, 19, 35, 6, 7, 1, 4,102,213,176,253, 92, 2,152,188,213,254, -123, 13, 9, 36, 54,254,101, 1, 72,254,184, 1, 72,159, 3,215,252, 48, 1,100,176, 1, 0,102, 78,253,160, 0, 0, 1, 0,172, -255,236, 4, 31, 5,182, 0, 24, 0, 82, 64, 49, 13, 64, 11, 15, 72, 13, 13, 0, 5,111,159, 20,175, 20, 2, 20, 26, 14, 15, 15, - 11, 9, 10, 10, 0, 0,144, 0,160, 0,176, 0, 4, 0, 9, 7,115, 17, 17, 11, 3,115, 1, 23, 25, 14,116, 11, 6, 0, 63,225, - 63, 51,225, 17, 57, 47,225, 51, 1, 47, 93, 51, 47, 51, 51, 51, 17, 51, 16,222, 93,225, 18, 57, 47, 43, 49, 48, 55, 53, 22, 51, - 32, 17, 16, 33, 34, 7, 39, 19, 33, 21, 33, 3, 54, 51, 50, 4, 21, 20, 4, 35, 34,172,144,216, 1, 80,254,168, 89,142, 90, 55, - 2,178,253,236, 39,107,102,210, 1, 3,254,236,251,224, 59,172, 96, 1, 58, 1, 38, 26, 57, 2,176,166,254, 93, 20,229,199,234, -255, 0, 0, 2, 0,154,255,236, 4, 51, 5,203, 0, 21, 0, 33, 0, 79, 64, 22, 1, 64, 11, 15, 72, 1, 1, 18, 22,110,191, 12, - 1, 12, 35, 6, 28,111, 0, 18, 1, 18,184,255,192, 64, 22, 20, 24, 72, 18, 6, 25,117,127, 9, 1, 9, 9, 31, 3,115, 1, 20, - 7, 31,115, 15, 25, 0, 63,225, 63, 51,225, 18, 57, 47, 93,225, 50, 1, 47, 43, 93,225, 50, 16,222, 93,225, 18, 57, 47, 43, 49, - 48, 1, 21, 38, 35, 34, 2, 3, 51, 54, 51, 50, 22, 21, 20, 2, 35, 34, 0, 17, 16, 33, 50, 19, 52, 38, 35, 34, 6, 21, 20, 22, - 51, 50, 54, 3,197, 71, 95,224,225, 10, 12, 95,212,195,221,241,203,218,254,253, 2,127,104, 2,137,127,127,172,162,131,127,143, - 5,184,155, 24,254,230,254,206,170,238,206,228,254,249, 1, 81, 1, 52, 3, 90,252, 12,145,156,162,104,152,221,176, 0, 0, 1, - 0,143, 0, 0, 4, 59, 5,182, 0, 6, 0, 71, 64, 48,121, 6,137, 6, 2, 71, 6, 87, 6, 2, 7, 6, 23, 6, 39, 6, 3, 6, - 0, 0, 2, 8, 1, 24, 1, 40, 1, 3, 1, 5, 8, 0, 2,208, 2,224, 2,240, 2, 4, 2, 5, 2,116, 3, 6, 0, 24, 0, 63, - 63,225, 50, 1, 47, 93, 16,206, 50, 93, 17, 57, 47, 51, 93, 49, 48, 93, 93, 33, 1, 33, 53, 33, 21, 1, 1, 78, 2, 51,253, 14, - 3,172,253,213, 5, 16,166,145,250,219, 0, 3, 0,156,255,236, 4, 49, 5,205, 0, 19, 0, 30, 0, 41, 0,124, 64, 31, 10, 31, - 12, 38,110, 2, 20, 0, 2, 28,110, 12, 22,110, 18, 12, 18, 12, 18, 8,191, 2, 1, 2, 43, 33,110, 0, 8, 1, 8,184,255,192, -183, 20, 24, 72, 8,215, 20, 1, 20,184,255,240, 64, 34, 12, 15, 72, 7, 20, 23, 20, 2, 57, 31, 89, 31,105, 31,121, 31, 4, 42, - 31, 1, 31, 10, 0, 20, 4, 35, 25,115, 15, 7, 35,115, 5, 25, 0, 63,225, 63,225, 18, 23, 57, 93, 93, 93, 43, 93, 1, 47, 43, - 93,225, 16,206, 93, 17, 57, 57, 47, 47, 16,225, 16,225, 17, 57, 57, 16,225, 17, 57, 57, 49, 48, 1, 4, 21, 20, 6, 35, 34, 38, - 53, 16, 37, 38, 53, 52, 54, 51, 50, 22, 21, 20, 5, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 23, 6, 21, 20, 33, 50, 54, 53, 52, - 38, 39, 2,252, 1, 53,252,207,216,242, 1, 26,235,233,178,184,228,254,102,232,126,110,106,125, 99,108,254, 1, 20,136,149,126, -151, 3, 6,160,233,181,220,207,186, 1, 1,136,146,223,161,189,190,162,230, 55,103,175,101,106,106,101, 90,125,215,121,204,240, -131,117, 90,139, 74, 0, 0, 2, 0,154,255,236, 4, 51, 5,203, 0, 21, 0, 33, 0, 78,185, 0, 1,255,192, 64, 20, 11, 15, 72, - 1, 1, 12, 6, 28,111,191, 18, 1, 18, 35, 22,110, 0, 12, 1, 12,184,255,192, 64, 19, 20, 24, 72, 12, 6, 25,117, 9, 9, 15, - 3,117, 1, 20, 25, 31,115, 15, 7, 0, 63,225, 63, 51,225, 17, 57, 47,225, 50, 1, 47, 43, 93,225, 16,222, 93,225, 50, 18, 57, - 47, 43, 49, 48, 5, 53, 22, 51, 50, 18, 19, 35, 6, 35, 34, 38, 53, 52, 18, 51, 50, 0, 17, 16, 33, 34, 3, 20, 22, 51, 50, 54, - 53, 52, 38, 35, 34, 6, 1, 8, 67, 99,224,225, 10, 12, 96,212,194,221,241,203,220, 1, 1,253,129,105, 1,137,127,127,172,160, -133,128,142, 2,156, 25, 1, 26, 1, 50,170,236,208,228, 1, 8,254,170,254,209,252,166, 3,243,145,156,163,103,151,222,174, 0, - 0, 2, 1,231,255,227, 2,229, 4,102, 0, 7, 0, 15, 0, 45, 64, 27, 10, 2,150, 14, 48, 6, 96, 6,176, 6,224, 6,240, 6, - 5, 6, 6, 16, 17, 8,155, 12,168, 4,155, 0, 16, 0, 63,237, 63,237, 17, 18, 1, 57, 47, 93, 51,237, 50, 49, 48, 1, 50, 21, - 20, 35, 34, 53, 52, 19, 50, 21, 20, 35, 34, 53, 52, 2,102,127,127,127,127,127,127,127, 4,102,139,139,139,139,252,148,139,140, -140,139, 0, 2, 1,154,254,248, 2,236, 4,102, 0, 7, 0, 14, 0, 68, 64, 46, 25, 14, 41, 14,233, 14,249, 14, 4, 14,152, 12, -153, 9, 9, 2,150, 48, 6, 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 15, 16, 11,157, 31, 14, 47, 14, 63, 14, 3, 14, 4,155, - 0, 16, 0, 63,237, 47, 93,237, 17, 18, 1, 57, 47, 93,237, 50, 47,237,225, 93, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 19, 23, - 6, 3, 35, 54, 55, 2,109,127,127,127,215, 14, 51,125,137, 62, 38, 4,102,139,139,139,139,252,136, 23,197,254,230,255,247, 0, - 0, 1, 0,152, 0,221, 4, 51, 4,201, 0, 6, 0, 97, 64, 61,103, 6,119, 6,135, 6, 3,104, 4,120, 4,136, 4, 3,118, 5, -134, 5, 2, 5, 4, 1, 4, 0, 8, 1, 1, 7, 2, 1, 5, 5, 3, 6,224, 0, 1,223, 0, 1, 64, 0, 1, 63, 0, 1, 0, 0, - 1, 0, 0, 4, 32, 3,192, 3, 2, 15, 3, 1, 3, 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 50, 18, 57, 17, 51, 51, 17, - 1, 51, 47, 16,206, 50, 17, 18, 57, 93, 49, 48, 0, 93, 93, 37, 1, 53, 1, 21, 1, 1, 4, 51,252,101, 3,155,253, 53, 2,203, -221, 1,195,102, 1,195,160,254,170,254,170, 0, 0, 2, 0,152, 1,186, 4, 51, 3,233, 0, 3, 0, 7, 0, 64, 64, 39, 7, 2, - 9, 4, 0, 1, 1, 1, 1, 8, 5,173,112, 4, 1, 79, 4, 95, 4,111, 4, 3, 0, 4, 1, 4, 4, 0,173,143, 1, 1, 80, 1, - 1, 15, 1, 1, 1, 0, 47, 93, 93, 93,225, 51, 47, 93, 93, 93,225, 17, 1, 51, 47, 93, 51, 16,206, 50, 49, 48, 19, 53, 33, 21, - 1, 53, 33, 21,152, 3,155,252,101, 3,155, 3, 84,149,149,254,102,150,150, 0, 0, 1, 0,152, 0,221, 4, 51, 4,201, 0, 6, - 0, 95, 64, 60,104, 2,120, 2,136, 2, 3,103, 0,119, 0,135, 0, 3,121, 1,137, 1, 2, 1, 6, 4, 8, 2, 6, 6, 7, 5, - 4, 1, 1, 3, 0,224, 6, 1,223, 6, 1, 64, 6, 1, 63, 6, 1, 0, 6, 1, 6, 6, 2, 32, 3,192, 3, 2, 15, 3, 1, 3, - 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 51, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 16,206, 17, 57, 93, 49, 48, 0, 93, - 93, 19, 1, 1, 53, 1, 21, 1,152, 2,202,253, 54, 3,155,252,101, 1,125, 1, 86, 1, 86,160,254, 61,102,254, 61, 0, 0, 2, - 0,168,255,227, 4, 35, 5,203, 0, 25, 0, 33, 0, 74, 64, 42, 25, 0, 0, 28,150, 32, 32, 13, 7, 71, 18, 35, 32, 35, 1, 0, - 13, 1, 13, 7, 15, 47, 0, 1, 0, 0, 15, 21, 26, 1, 6, 26, 1, 26,155, 30,168, 12, 10, 81, 15, 4, 0, 63,225, 51, 63,225, - 93, 93, 17, 57, 47, 93, 18, 57, 1, 47, 93, 93, 16,222,225, 17, 57, 47,229, 51, 17, 51, 49, 48, 1, 53, 52, 54, 55, 54, 54, 53, - 52, 38, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 6, 7, 6, 6, 21, 21, 7, 50, 21, 20, 35, 34, 53, 52, 1,209, 92,115,130, 83, -149,132,174,197, 65,209,217,214,251,107,143,118, 66, 72,127,127,127, 1,158, 37,120,150, 82, 97,116,100, 92,115, 90,153, 97,195, -164,133,166,108, 87,108, 90, 18,164,139,140,140,139, 0, 0, 2, 0, 31,255, 74, 4,174, 5,182, 0, 46, 0, 56, 0,143, 64, 90, - 22, 52, 1, 52,211, 6, 0, 47, 24, 56, 1, 56,211, 14, 11, 30, 14, 28, 6, 1,212, 14, 1, 96, 14, 1, 25, 14, 1, 4, 14, 1, - 6, 14, 6, 14, 36, 9, 19, 1, 19,210, 42, 58, 6, 25, 1, 25,210, 36, 17, 54,213, 3, 45, 3, 49,213, 9, 63, 3, 79, 3,143, - 3,207, 3,223, 3, 5, 48, 9, 64, 9,208, 9, 3, 3, 9, 3, 9, 28, 22,214, 39, 3, 28,214, 30, 33, 0, 47, 51,225, 63,225, - 18, 57, 57, 47, 47, 93, 93, 16,225, 17, 51, 16,225, 50, 1, 47,225, 93, 16,214,225, 93, 17, 57, 57, 47, 47, 93, 93, 93, 93, 93, - 17, 57, 51, 16,225, 93, 50, 57, 16,225, 93, 49, 48, 1, 35, 6, 35, 34, 38, 53, 52, 54, 51, 50, 23, 3, 6, 21, 21, 20, 51, 50, - 17, 16, 2, 35, 34, 2, 17, 16, 0, 51, 50, 55, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 0, 17, 20, 2, 35, 34, 3, 38, 35, 34, - 6, 21, 20, 51, 50, 19, 3, 31, 4, 74,156,120,140,194,158,137,119, 22, 2, 72,100,222,188,226,253, 1, 3,239,181,165,158,194, -254,214,254,177, 1, 78, 1, 32,248, 1, 41,128,114,128, 76, 54, 49, 89, 95,127,131, 14, 1,145,180,209,176,206,253, 47,254, 96, - 38, 31, 7,176, 1,127, 1, 22, 1, 60,254,128,254,177,254,200,254,171, 78,133, 82, 1,158, 1,114, 1,141, 1,207,254,120,254, -173,231,254,233, 2,182, 21,187,147,252, 1, 56, 0, 2, 0, 33, 0, 0, 4,172, 5,188, 0, 7, 0, 14, 0,168, 64, 10, 2, 14, - 3, 8, 1, 0,183, 6, 1, 6,184,255,248, 64, 98, 14, 17, 72, 71, 6, 1, 38, 6, 1, 23, 6, 1, 6, 6, 1, 6,184, 5, 1, - 5, 8, 14, 17, 72, 72, 5, 1, 41, 5, 1, 24, 5, 1, 9, 5, 1, 5, 11, 11, 4, 88, 0, 1, 72, 0, 1, 42, 0, 1, 9, 0, - 25, 0, 2, 0, 7, 7, 16, 87, 3, 1, 71, 3, 1, 37, 3, 1, 6, 3, 22, 3, 2, 3, 4, 2, 95, 11, 16, 17, 20, 72, 11, 16, - 11, 14, 72, 29, 11, 1, 11, 5, 14, 14, 5, 3, 4, 0, 18, 0, 63, 50, 63, 57, 47, 18, 57, 93, 43, 43,225, 1, 47, 51, 93, 93, - 93, 93, 17, 51, 47, 51, 93, 93, 93, 93, 18, 57, 61, 47, 51, 93, 93, 93, 93, 43, 93, 51, 93, 93, 93, 93, 43, 93, 18, 57, 57, 18, - 57, 57, 49, 48, 33, 3, 33, 3, 35, 1, 51, 1, 1, 3, 38, 39, 6, 7, 3, 3,236,144,254, 21,146,190, 1,227,195, 1,229,254, -123,133, 39, 23, 20, 26,144, 1,197,254, 59, 5,188,250, 68, 2,106, 1,168,124,102, 99, 84,254, 45, 0, 0, 3, 0,135, 0, 0, - 4,113, 5,182, 0, 14, 0, 23, 0, 30, 0, 82, 64, 50, 19, 91, 20, 7, 36, 7, 2, 7, 4, 4, 14, 28, 91, 10, 32, 15, 25, 90, - 0, 14, 1, 0, 14, 16, 14,240, 14, 3, 8, 14, 7, 24, 96,159, 15, 1,104, 15, 1, 15, 15, 0, 25, 96, 14, 18, 23, 96, 0, 3, - 0, 63,225, 63,225, 17, 57, 47, 93, 93,225, 57, 1, 47, 94, 93,113,225, 50, 16,222,225, 18, 57, 47, 57, 93,225, 49, 48, 19, 33, - 32, 22, 21, 20, 6, 7, 21, 4, 17, 20, 6, 35, 33, 19, 33, 50, 54, 53, 52, 38, 35, 33, 17, 17, 33, 32, 17, 52, 33,135, 1,184, - 1, 18,247,157,134, 1, 76,255,220,253,241,187, 1, 28,156,143,153,166,254,248, 1, 51, 1, 55,254,188, 5,182,175,195,128,170, - 18, 10, 54,254,224,198,226, 3, 74,110,127,120,104,253,151,253,240, 1, 18,254, 0, 1, 0,129,255,236, 4,156, 5,203, 0, 21, - 0, 49, 64, 28, 1, 64, 20, 24, 72, 1, 1, 6, 11, 23, 17, 91, 0, 6,240, 6, 2, 6, 12, 14, 95, 9, 4, 0, 20, 95, 3, 19, - 0, 63,225, 50, 63,225, 50, 1, 47, 93,225, 16,206, 17, 57, 47, 43, 49, 48, 37, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, - 38, 35, 34, 0, 17, 16, 18, 51, 50, 4,100,146,212,254,203,254,184, 1,102, 1, 54,220,163, 78,154,151,215,255, 0,240,231,130, -201,162, 59, 1,136, 1,105, 1, 90, 1,148, 86,156, 78,254,195,254,241,254,225,254,211, 0, 2, 0,135, 0, 0, 4,123, 5,182, - 0, 8, 0, 15, 0, 44, 64, 26, 13, 91, 5, 17, 10, 90, 0, 0, 1, 0, 0, 16, 0,240, 0, 3, 8, 0, 9, 96, 1, 3, 10, 96, - 0, 18, 0, 63,225, 63,225, 1, 47, 94, 93,113,225, 16,222,225, 49, 48, 51, 17, 33, 32, 0, 17, 16, 0, 33, 3, 17, 51, 32, 17, - 16, 33,135, 1, 86, 1, 61, 1, 97,254,146,254,167,114, 96, 2, 20,254, 19, 5,182,254,134,254,173,254,151,254,128, 5, 23,251, -137, 2, 67, 2, 52, 0, 0, 1, 0,217, 0, 0, 4, 35, 5,182, 0, 11, 0, 64, 64, 37, 8, 8, 1, 4, 0, 64, 18, 22, 72, 0, - 13, 6, 10, 90,240, 1, 1, 0, 1, 1, 1, 9, 95,104, 6, 1, 6, 6, 10, 5, 95, 2, 3, 10, 95, 1, 18, 0, 63,225, 63,225, - 18, 57, 47, 93,225, 1, 47, 93, 93,225, 50, 16,206, 43, 50, 17, 57, 47, 49, 48, 33, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, - 4, 35,252,182, 3, 74,253,112, 2,105,253,151, 2,144, 5,182,164,254, 60,162,253,248, 0, 1, 0,244, 0, 0, 4, 61, 5,182, - 0, 9, 0, 87, 64, 22, 8, 8, 1,223, 3, 1,192, 3, 1, 3, 11, 6, 0, 90, 0, 1, 64, 1, 80, 1, 3, 1,184,255,192, 64, - 32, 21, 24, 72, 1, 9, 95,104, 6, 1, 47, 6, 95, 6,239, 6,255, 6, 4, 6, 64, 16, 21, 72, 6, 6, 0, 5, 95, 2, 3, 0, - 18, 0, 63, 63,225, 18, 57, 47, 43, 93, 93,225, 1, 47, 43, 93,225, 50, 16,206, 93, 93, 17, 57, 47, 48, 49, 33, 35, 17, 33, 21, - 33, 17, 33, 21, 33, 1,174,186, 3, 73,253,113, 2,105,253,151, 5,182,164,253,252,164, 0, 1, 0,117,255,236, 4, 70, 5,203, - 0, 24, 0, 63, 64, 37, 0, 7, 22, 90, 12, 2, 26, 18, 91, 0, 7, 1, 7, 24, 95, 47, 0, 95, 0, 2, 0, 64, 16, 24, 72, 0, - 0, 20, 15, 95, 13, 10, 4, 20, 95, 4, 19, 0, 63,225, 63, 51,225, 18, 57, 47, 43, 93,225, 1, 47, 93,225, 16,222, 50,225, 18, - 57, 49, 48, 1, 33, 17, 6, 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, 38, 35, 34, 2, 17, 16, 33, 50, 55, 17, 35, 2,160, 1,166, -195,225,254,250,254,217, 1, 68, 1, 28,192,154, 72,146,134,192,214, 1,138, 97,105,237, 3, 4,253, 51, 75, 1,143, 1, 98, 1, - 95, 1,143, 86,162, 84,254,201,254,235,253,180, 29, 1,180, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 11, 0, 63, 64, 38, - 9, 1, 90, 0, 13, 8, 4, 90, 16, 5, 32, 5, 2, 32, 5, 48, 5, 2, 5, 3, 95,152, 8, 1, 15, 8, 47, 8, 2, 6, 8, 8, - 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 94, 93, 93,225, 1, 47, 93,113,225, 50, 16,222,225, 50, 49, 48, 33, 35, 17, - 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 70,187,253,183,187,187, 2, 73,187, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, - 0,225, 0, 0, 3,233, 5,182, 0, 11, 0, 67, 64, 40, 11, 8, 10, 90, 5, 2,208, 3, 1,162, 3, 1,147, 3, 1, 3,142, 3, - 1, 4, 99, 3, 1, 5, 16, 3, 80, 3, 2, 3, 9, 4, 97, 6, 3, 3, 10, 97, 0, 18, 0, 63,225, 50, 63,225, 50, 1, 47, 93, - 95, 93, 95, 93, 95, 93, 93, 93, 51, 51,225, 50, 50, 49, 48, 33, 33, 53, 37, 17, 37, 53, 33, 21, 5, 17, 5, 3,233,252,248, 1, - 39,254,217, 3, 8,254,218, 1, 38,123, 20, 4,152, 20,123,123, 20,251,104, 20, 0, 1, 0,137,255,236, 3,211, 5,182, 0, 13, - 0, 43,178, 6, 90, 9,184,255,192, 64, 20, 9, 12, 72, 9, 15, 0, 0,224, 0,240, 0, 3, 0, 3, 95, 1, 12, 19, 7, 3, 0, - 63, 63, 51,225, 1, 47, 93, 16,222, 43,225, 49, 48, 55, 53, 22, 51, 50, 54, 53, 17, 51, 17, 20, 4, 35, 34,137,162,147,161,186, -186,254,231,237,217, 39,166, 62,159,147, 3,245,252, 13,216,255, 0, 1, 0,211, 0, 0, 4,174, 5,182, 0, 12, 0,201,183, 38, - 12, 54, 12, 70, 12, 3, 12,184,255,240, 64,137, 16, 24, 72,248, 10, 1,217, 10,233, 10, 2,200, 10, 1,185, 10, 1,168, 10, 1, -137, 10, 1, 10, 8, 12, 16, 72,121, 9, 1, 88, 9, 1, 25, 9, 1, 10, 9, 1,136, 1, 1, 1, 8, 20, 24, 72, 1, 8, 12, 15, - 72,232, 2, 1, 2, 16, 11, 22, 72, 71, 2, 1, 2, 12, 0, 8, 4, 90, 0, 5, 96, 5,112, 5,128, 5, 4, 5, 11, 16, 11, 11, -208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0,166, 8,182, 8,198, 8, 3,119, 8,135, 8, 2, - 38, 8, 54, 8, 86, 8,102, 8, 4, 3, 2, 8, 12, 4, 5, 10, 6, 3, 5, 0, 18, 0, 63, 50, 63, 51, 18, 23, 57, 93, 93, 93, - 1, 47, 56, 93, 93, 93, 51, 47, 56, 47, 93,225, 50, 17, 57, 57, 93, 49, 48, 0, 43, 93, 1, 43, 43, 93, 93, 93, 93, 93, 43, 93, - 93, 93, 93, 93, 93, 43, 93, 33, 35, 1, 7, 17, 35, 17, 51, 17, 55, 1, 51, 1, 4,174,211,254, 62,140,186,186,121, 1,197,209, -253,247, 2,186,114,253,184, 5,182,253, 37,168, 2, 51,253,131, 0, 1, 0,233, 0, 0, 4, 31, 5,182, 0, 5, 0, 46, 64, 31, - 5, 64, 18, 22, 72, 5, 7, 3, 90, 0, 0, 80, 0, 96, 0,112, 0,208, 0,224, 0,240, 0, 7, 0, 1, 3, 3, 95, 0, 18, 0, - 63,225, 63, 1, 47, 93,225, 16,206, 43, 49, 48, 51, 17, 51, 17, 33, 21,233,187, 2,123, 5,182,250,240,166, 0, 0, 1, 0,113, - 0, 0, 4, 92, 5,182, 0, 19, 0,182, 64, 12,247, 19, 1,182, 19, 1,151, 19,167, 19, 2, 19,184,255,240, 64, 37, 13, 17, 72, - 39, 19, 1, 6, 19, 22, 19, 2,233, 11,249, 11, 2, 11, 32, 13, 22, 72, 58, 11, 1, 9, 11, 25, 11, 41, 11, 3,230, 8,246, 8, - 2, 8,184,255,224, 64, 77, 13, 22, 72, 53, 8, 1, 6, 8, 22, 8, 38, 8, 3,248, 0, 1,185, 0, 1,152, 0,168, 0, 2, 0, - 16, 13, 17, 72, 40, 0, 1, 9, 0, 25, 0, 2, 17, 14,250,224, 13,240, 13, 2, 15, 13, 1, 13, 21, 2, 5,250, 0, 6, 16, 6, - 64, 6, 80, 6, 4, 6, 11, 1, 7, 3, 18, 2, 14, 89, 9, 1, 9, 6, 0, 18, 0, 63, 50, 50, 93, 50, 46, 51, 63, 51, 51, 1, - 47, 93,225, 50, 16,222, 93, 93,225, 50, 49, 48, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, - 33, 1, 35, 18, 21, 17, 35, 17, 51, 19, 51, 19, 51, 17, 35, 17, 52, 19, 35, 1, 2, 20,254,234, 8, 18,151,247,248, 6,250,252, -153, 14, 8,254,229, 5, 0,254,246,140,252,150, 5,182,251, 88, 4,168,250, 74, 3,119,102, 1, 33,251, 2, 0, 0, 1, 0,135, - 0, 0, 4, 68, 5,182, 0, 15, 0,115,185, 0, 9,255,240, 64, 78, 16, 24, 72, 69, 9, 85, 9,101, 9, 3, 52, 9, 1, 21, 9, - 37, 9, 2, 6, 9, 1, 1, 16, 16, 24, 72, 74, 1, 90, 1,106, 1, 3, 59, 1, 1, 26, 1, 42, 1, 2, 9, 1, 1, 1, 14,251, - 15, 17, 9, 6,251, 0, 7,224, 7,240, 7, 3, 7, 14, 73, 2, 89, 2, 2, 2, 8, 3, 70, 10, 86, 10, 2, 10, 7, 0, 18, 0, - 63, 50, 50, 93, 63, 51, 93, 51, 1, 47, 93,225, 50, 16,222,225, 50, 49, 48, 93, 93, 93, 93, 43, 93, 93, 93, 93, 43, 33, 35, 1, - 35, 18, 21, 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 4, 68,215,253,188, 8, 18,172,213, 2, 66, 6, 14,174, 4,186,254,235,140, -252,231, 5,182,251, 76, 1, 47,101, 3, 32, 0, 0, 2, 0, 84,255,236, 4,123, 5,205, 0, 9, 0, 19, 0, 36, 64, 20, 13, 91, - 7, 21, 18, 91, 31, 2, 47, 2, 2, 2, 16, 95, 4, 4, 10, 95, 0, 19, 0, 63,225, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, - 5, 32, 17, 16, 33, 32, 0, 17, 16, 0, 39, 50, 18, 17, 16, 2, 35, 32, 17, 16, 2,104,253,236, 2, 22, 1, 0, 1, 17,254,236, -255,173,161,163,169,254,175, 20, 2,243, 2,238,254,121,254,151,254,151,254,120,163, 1, 34, 1, 44, 1, 47, 1, 29,253,180,253, -178, 0, 0, 2, 0,176, 0, 0, 4, 70, 5,182, 0, 9, 0, 17, 0, 56, 64, 34, 14, 91,239, 6,255, 6, 2, 6, 19, 10, 1, 90, - 0, 2,144, 2,160, 2, 3, 2, 0, 96,159, 10, 1, 10, 10, 1, 17, 96, 3, 3, 1, 18, 0, 63, 63,225, 18, 57, 47, 93,225, 1, - 47, 93,225, 50, 16,222, 93,225, 49, 48, 1, 17, 35, 17, 33, 32, 17, 20, 4, 33, 39, 51, 50, 54, 53, 16, 33, 35, 1,106,186, 1, -148, 2, 2,254,235,254,248,191,170,198,171,254,174,201, 2, 57,253,199, 5,182,254, 84,219,246,158,144,153, 1, 23, 0, 0, 2, - 0, 84,254, 98, 4,123, 5,205, 0, 15, 0, 25, 0, 85,185, 0, 0,255,240, 64, 48, 13, 17, 72, 5, 0, 9, 19, 91, 14,108, 3, -124, 3,140, 3, 3, 3, 24, 11, 14, 72, 3, 2, 2, 14, 27, 24, 91, 31, 9, 47, 9, 2, 9, 22, 95, 11, 4, 16, 95, 7, 5, 7, - 3, 3, 0, 7, 19, 0, 63, 51, 51, 47, 17, 51, 16,225, 63,225, 1, 47, 93,225, 16,206, 50, 47, 51, 43, 93, 16,225, 18, 57, 57, - 49, 48, 43, 37, 22, 23, 7, 38, 39, 6, 35, 32, 17, 16, 33, 32, 0, 17, 16, 5, 50, 18, 17, 16, 2, 35, 32, 17, 16, 3, 94, 85, -194,121,236, 92, 36, 40,253,236, 2, 22, 1, 0, 1, 17,253,237,173,161,163,169,254,175, 39,180,131,142,171,229, 6, 2,243, 2, -238,254,121,254,151,253,242, 64, 1, 34, 1, 44, 1, 47, 1, 29,253,180,253,178, 0, 2, 0,186, 0, 0, 4,147, 5,182, 0, 11, - 0, 20, 0,115, 64, 75, 43, 14, 1, 26, 14, 1, 11, 8, 16, 24, 72, 41, 11, 1, 24, 11, 1, 10, 8, 18, 24, 72, 41, 10, 1, 8, - 10, 1, 10, 9, 16, 9, 9, 70, 8, 1, 11, 8, 1, 16, 91, 6, 64, 19, 22, 72, 6, 22, 12, 1, 90, 0, 2,128, 2,144, 2,160, - 2, 4, 2, 8, 3, 0, 96, 12, 12, 1, 20, 96, 3, 3, 10, 1, 18, 0, 63, 51, 63,225, 18, 57, 47,225, 17, 57, 1, 47, 93,225, - 50, 16,222, 43,225, 18, 57, 57, 93, 51, 47, 56, 51, 49, 48, 93, 93, 43, 93, 93, 43, 93, 93, 1, 17, 35, 17, 33, 32, 17, 16, 5, - 1, 35, 1, 39, 51, 50, 54, 53, 52, 38, 35, 35, 1,117,187, 1,101, 2, 8,254,223, 1,141,219,254,162,229,164,171,162,160,178, -159, 2, 92,253,164, 5,182,254, 97,254,225,105,253,113, 2, 92,158,132,144,141,124, 0, 0, 1, 0,141,255,236, 4, 63, 5,203, - 0, 31, 0, 56, 64, 31, 16, 16, 5, 90,176, 27,192, 27, 2, 27, 33, 21, 90, 11, 0, 0, 0, 11, 1, 11, 21, 5, 14, 3, 96, 30, - 19, 19, 95, 14, 4, 0, 63,225, 63,225, 18, 57, 57, 1, 47, 93, 51, 47, 16,225, 16,222, 93,225, 51, 47, 49, 48, 55, 53, 22, 51, - 32, 53, 52, 38, 39, 38, 38, 53, 52, 36, 51, 50, 23, 7, 38, 35, 32, 21, 20, 22, 23, 22, 22, 21, 20, 4, 35, 32,141,211,203, 1, - 94,141,215,208,181, 1, 1,224,229,187, 64,193,167,254,219,131,205,246,165,254,235,255,254,247, 49,178, 86,240,104,112, 77, 73, -203,162,174,197, 78,164, 78,209,102,124, 71, 88,187,147,192,219, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 7, 0, 60, 64, 36, - 6, 6, 0, 90, 3,208, 1, 1,162, 1, 1,147, 1, 1, 3,142, 1, 1, 4, 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 7, 3, 95, - 4, 3, 0, 18, 0, 63, 63,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,198,241,194, 47, 49, 48, 33, 35, 17, 33, 53, 33, - 21, 33, 2,195,187,254, 94, 3,254,254, 95, 5, 18,164,164, 0, 0, 1, 0,125,255,236, 4, 80, 5,184, 0, 14, 0, 39, 64, 22, - 13, 90,224, 1,240, 1, 2, 1, 16, 9, 90, 0, 6, 1, 6, 11, 95, 4, 19, 7, 0, 3, 0, 63, 50, 63,225, 1, 47, 93,225, 16, -222, 93,225, 49, 48, 1, 17, 16, 2, 35, 32, 17, 17, 51, 17, 16, 33, 32, 19, 17, 4, 80,252,244,254, 29,186, 1, 51, 1, 39, 5, - 5,184,252, 76,254,252,254,236, 2, 28, 3,174,252, 92,254,125, 1,133, 3,164, 0, 1, 0, 33, 0, 0, 4,172, 5,182, 0, 10, - 0,153, 64, 24,103, 5, 1,184, 3, 1, 3, 8, 13, 17, 72, 41, 3, 1, 24, 3, 1, 9, 3, 1,183, 2, 1, 2,184,255,248, 64, - 59, 13, 17, 72, 38, 2, 1, 23, 2, 1, 6, 2, 1,104, 0, 1,232, 3, 1, 3,231, 2, 1, 2, 8, 8, 4, 72, 0, 88, 0, 2, - 42, 0, 1, 9, 0, 25, 0, 2, 0, 1, 1, 12, 71, 5, 87, 5, 2, 37, 5, 1, 6, 5, 22, 5, 2, 5, 4, 8,184,255,240, 64, - 14, 11, 24, 72, 18, 8, 1, 8, 3, 1, 4, 3, 2, 3, 18, 0, 63, 51, 63, 51, 18, 57, 93, 43, 1, 47, 51, 93, 93, 93, 17, 51, - 47, 51, 93, 93, 93, 18, 57, 61, 47, 51, 93, 51, 93, 49, 48, 93, 93, 93, 93, 43, 93, 93, 93, 93, 43, 93, 93, 1, 51, 1, 35, 1, - 51, 1, 22, 23, 54, 55, 3,229,199,254, 23,187,254, 25,196, 1, 39, 41, 47, 31, 62, 5,182,250, 74, 5,182,252, 97,127,207,145, -195, 0, 0, 1, 0, 2, 0, 0, 4,203, 5,182, 0, 25, 1, 99, 64, 84, 41, 25, 57, 25, 2, 8, 25, 24, 25, 2, 39, 21, 1, 21, - 21, 1, 6, 21, 1, 7, 20, 23, 20, 39, 20, 3, 38, 16, 54, 16, 2, 41, 10, 57, 10, 2, 40, 6, 1, 25, 6, 1, 8, 6, 1, 38, - 2, 54, 2, 2, 7, 2, 23, 2, 2, 72, 17,104, 17,168, 17,184, 17, 4, 41, 17, 57, 17, 2, 17,231, 16,247, 16, 2,198, 16,214, - 16, 2,180, 16, 1, 16,184,255,240, 64, 33, 15, 19, 72, 84, 16, 1, 69, 16, 1, 16, 23,230, 1, 1,199, 1,215, 1, 2,165, 1, -181, 1, 2,150, 1, 1,119, 1,135, 1, 2, 1,184,255,240, 64,140, 9, 15, 72, 1,233, 0, 1,200, 0,216, 0, 2,170, 0,186, - 0, 2,153, 0, 1,120, 0,136, 0, 2, 0, 16, 9, 15, 72, 0, 13,232, 10,248, 10, 2,201, 10,217, 10, 2,187, 10, 1,136, 10, -168, 10, 2,105, 10,121, 10, 2, 91, 10, 1, 74, 10, 1, 10,103, 9,167, 9,183, 9, 3, 38, 9, 54, 9, 70, 9, 3, 9, 4, 36, - 23, 52, 23,148, 23,164, 23, 4, 4, 4, 20, 4,100, 4,196, 4,212, 4, 5, 23, 13, 4, 4, 13, 23, 3, 18, 40, 7, 1, 7, 16, - 8, 1, 8, 8, 27, 39, 19, 1, 19, 18, 4, 23, 75, 13, 91, 13, 2, 13, 23, 17, 0, 0, 7, 10, 17, 18, 18, 7, 3, 0, 63, 51, - 63, 51, 18, 57, 47, 18, 57, 57, 93, 17, 51, 1, 47, 51, 93, 17, 51, 47, 93, 51, 93, 18, 23, 57, 61, 47, 47, 47, 93, 93, 17, 51, - 93, 93, 51, 93, 93, 93, 93, 93, 93, 93, 17, 51, 43, 93, 93, 93, 93, 93, 51, 43, 93, 93, 93, 93, 93, 17, 51, 93, 93, 43, 93, 93, - 93, 51, 93, 93, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 51, 19, 22, 23, 54, 19, 19, 51, 3, 35, 3, 38, - 39, 6, 7, 3, 35, 3, 51, 19, 22, 18, 21, 54, 55, 2, 16,177,145, 61, 11, 2, 63, 70,170,187,190,168, 40, 26, 32, 33,156,190, -203,170, 88, 23, 34, 24, 46, 3,240,253,247,219, 88, 53, 2, 54, 2,151,250, 74, 2, 68,138,144,173,111,253,190, 5,182,253,105, -176,254,108, 39,151,161, 0, 1, 0, 53, 0, 0, 4,150, 5,182, 0, 11, 0,190, 64, 36, 8, 8, 9, 11, 11, 10, 0, 7, 0, 5, - 5, 4, 2, 2, 3, 1, 6, 1, 8, 8, 7, 5, 5, 6, 4, 9, 4, 11, 11, 0, 2, 2, 1, 3, 10, 7,184,255,248, 64, 23, 12, - 15, 72, 6, 7, 22, 7, 38, 7, 3, 9, 8, 12, 15, 72, 9, 9, 25, 9, 41, 9, 3, 3,184,255,248, 64, 60, 12, 15, 72, 6, 3, - 22, 3, 38, 3, 3, 1, 8, 12, 15, 72, 9, 1, 25, 1, 41, 1, 3, 11, 8, 2, 5, 4, 4, 9, 10, 1, 10,175, 0, 1, 0, 0, - 13, 7, 6, 3, 6, 4, 2, 5, 11, 8, 4, 7, 9, 10, 3, 6, 3, 1, 3, 4, 3, 0, 18, 0, 63, 23, 50, 63, 23, 51, 23, 57, - 1, 47, 51, 51, 47, 51, 17, 51, 47, 93, 50, 50, 47, 51, 17, 23, 57, 93, 43, 93, 43, 93, 43, 93, 43, 49, 48,135, 8,192, 8,192, - 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 16,135, 8,192, 8,192, 33, 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4,150, -211,254,157,254,146,189, 1,197,254, 90,199, 1, 75, 1, 78,191,254, 90, 2,123,253,133, 2,252, 2,186,253,209, 2, 47,253, 76, - 0, 1, 0, 33, 0, 0, 4,170, 5,182, 0, 8, 0,181,185, 0, 8,255,248, 64, 36, 13, 16, 72, 38, 8, 54, 8, 2, 23, 8, 1, -104, 1,120, 1, 2, 90, 1, 1, 72, 1, 1, 41, 1, 57, 1, 2, 24, 1, 1, 39, 0,183, 0, 2, 0,184,255,248,179, 13, 17, 72, - 8,184,255,248, 64, 74, 20, 24, 72, 8,175, 7,255, 7, 2, 89, 7, 1, 7, 5, 1, 8, 20, 24, 72, 1,224, 2,240, 2, 2,123, - 2, 1, 80, 2, 1, 2, 2, 0, 4, 90,208, 5, 1,162, 5, 1,147, 5, 1, 3,142, 5, 1, 4, 99, 5, 1, 5, 16, 5, 80, 5, - 2, 5, 6, 6, 52, 0, 1, 0, 3, 3, 1, 4, 18, 7, 1, 3, 0, 63, 51, 63, 18, 57, 47, 51, 93, 51, 47, 1, 47, 93, 95, 93, - 95, 93, 95, 93, 93, 93,241, 57,194, 47, 93, 93, 93, 50, 43, 16,198, 93, 93, 50, 43, 49, 48, 0, 43, 93, 1, 93, 93, 93, 93, 93, - 93, 93, 43, 1, 1, 51, 1, 17, 35, 17, 1, 51, 2,100, 1,125,201,254, 25,187,254, 25,203, 2,211, 2,227,252,131,253,199, 2, - 47, 3,135, 0, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 9, 0, 68, 64, 40, 38, 8, 1, 7, 8, 23, 8, 2, 41, 3, 1, 8, - 3, 24, 3, 2, 3, 7, 7, 0, 0, 1, 0, 0, 11, 8, 2, 4, 4, 2, 7, 4, 95, 5, 3, 2, 8, 95, 1, 18, 0, 63,225, 50, - 63,225, 50, 1, 47, 51, 47, 17, 51, 17, 51, 47, 93, 51, 47, 51, 49, 48, 93, 93, 93, 93, 33, 33, 53, 1, 33, 53, 33, 21, 1, 33, - 4,100,252, 2, 3, 25,252,252, 3,213,252,231, 3, 45,145, 4,127,166,145,251,129, 0, 0, 1, 1,156,254,188, 3,172, 5,182, - 0, 7, 0, 51, 64, 32, 4, 0, 0, 1, 0, 0, 9, 6,241,127, 1,143, 1,191, 1,207, 1,223, 1, 5, 0, 1, 1, 1, 5,245, - 2,248, 6,245, 1,249, 0, 63,225, 63,225, 1, 47, 93, 93,225, 17, 51, 47, 93, 51, 49, 48, 1, 33, 17, 33, 21, 33, 17, 33, 3, -172,253,240, 2, 16,254,166, 1, 90,254,188, 6,250,149,250, 49, 0, 1, 0,211, 0, 0, 3,248, 5,182, 0, 3, 0, 28, 64, 12, - 2, 1, 1, 5, 0, 3, 3, 4, 2, 18, 0, 3, 0, 63, 63, 17, 1, 51, 47, 51, 17, 51, 47, 51, 49, 48, 1, 1, 35, 1, 1,133, - 2,115,178,253,141, 5,182,250, 74, 5,182, 0, 0, 1, 1, 33,254,188, 3, 49, 5,182, 0, 7, 0, 52,183, 1,241,112, 6,128, - 6, 2, 6,184,255,192, 64, 21, 20, 24, 72, 6, 6, 9, 3,224, 0,240, 0, 2, 0, 1,245, 6,249, 2,245, 5,248, 0, 63,225, - 63,225, 1, 47, 93, 51, 17, 51, 47, 43, 93,225, 49, 48, 5, 33, 17, 33, 53, 33, 17, 33, 1, 33, 1, 90,254,166, 2, 16,253,240, -174, 5,207,149,249, 6, 0, 1, 0,111, 2, 37, 4, 94, 5,193, 0, 6, 0, 51, 64, 25, 2, 1, 5, 32, 20, 24, 72, 5, 5, 0, - 4, 3, 8, 6, 0, 0, 7, 4, 0, 0, 5, 15, 1, 1, 1, 0, 47, 93, 51, 51, 47, 50, 17, 1, 51, 47, 50, 16,206, 50, 17, 57, - 61, 47, 43, 51, 51, 49, 48, 19, 1, 51, 1, 35, 1, 1,111, 1,168,102, 1,225,162,254,144,254,194, 2, 37, 3,156,252,100, 2, -223,253, 33, 0, 0, 1,255,240,254,188, 4,219,255, 72, 0, 3, 0, 18,182, 0, 0, 5, 1, 1,186, 2, 0, 47,225, 1, 47, 17, - 51, 47, 49, 48, 1, 33, 53, 33, 4,219,251, 21, 4,235,254,188,140, 0, 0, 1, 1,162, 4,217, 3, 43, 6, 33, 0, 7, 0, 31, - 64, 16, 5,135, 4,134, 1, 0, 0, 9, 5,146, 15, 1, 95, 1, 2, 1, 0, 47, 93,237, 17, 1, 51, 47, 51,253,225, 49, 48, 1, - 35, 38, 39, 53, 51, 22, 23, 3, 43,121,166,106,219, 86, 88, 4,217,142,165, 21,178,123, 0, 2, 0,135,255,236, 4, 2, 4, 94, - 0, 23, 0, 33, 0, 66, 64, 38, 11, 1, 33, 71,143, 23,159, 23, 2, 23, 35, 28, 72, 17, 0, 8, 16, 8, 2, 8, 8, 24, 82, 11, - 11, 30, 16, 14, 80, 19, 16, 1, 30, 78, 5, 22, 0, 21, 0, 63, 63,225, 50, 63,225, 51, 18, 57, 47,225, 1, 47, 94, 93, 51,225, - 16,222, 93,225, 50, 50, 49, 48, 33, 39, 35, 6, 6, 35, 34, 38, 53, 16, 37, 55, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 17, - 3, 7, 6, 6, 21, 20, 51, 50, 54, 53, 3,127, 37, 8, 77,162,128,163,185, 1,254,203,244,147,181, 63,196,187,227,203,180,162, -196,164,200,147,175,152, 97, 75,172,155, 1, 76, 16, 7, 69,236, 82,137, 96,174,192,253, 16, 2, 25, 7, 8,107,110,178,163,148, - 0, 2, 0,158,255,236, 4, 68, 6, 20, 0, 18, 0, 28, 0, 58, 64, 34, 24, 72,239, 14,255, 14, 2, 14, 30, 1, 8, 6, 19, 71, - 0, 3,176, 3, 2, 3, 1, 22, 80, 17, 22, 8, 26, 80, 11, 16, 4, 0, 3, 21, 0, 63, 63, 63,225, 50, 63,225, 50, 1, 47, 93, -225, 50, 50, 57, 16,222, 93,225, 49, 48, 37, 35, 7, 35, 17, 51, 17, 20, 7, 51, 54, 51, 50, 18, 17, 16, 2, 35, 34, 3, 20, 22, - 51, 32, 17, 16, 33, 34, 6, 1, 84, 12, 37,133,182, 8, 8,107,215,201,229,230,200,207,115,139,152, 1, 16,254,238,155,134,139, -139, 6, 20,254,136, 81,145,164,254,213,254,244,254,242,254,211, 2, 59,227,193, 1,166, 1,158,188, 0, 0, 1, 0,172,255,236, - 4, 37, 4, 94, 0, 19, 0, 43, 64, 23, 0, 0,143, 9, 1, 9, 21, 5, 72, 0, 15, 1, 15, 3, 81, 1, 18, 16, 9, 7, 81, 12, - 22, 0, 63,225, 51, 63, 51,225, 1, 47, 93,225, 16,206, 93, 50, 47, 49, 48, 1, 7, 38, 35, 32, 17, 16, 33, 50, 55, 21, 6, 35, - 32, 0, 17, 16, 0, 33, 50, 4, 37, 62,150,118,254,141, 1,105,157,164,134,195,254,255,254,228, 1, 34, 1, 7,178, 4, 35,158, - 57,254, 99,254,106, 62,160, 61, 1, 35, 1, 16, 1, 25, 1, 38, 0, 2, 0,137,255,236, 4, 47, 6, 20, 0, 18, 0, 29, 0, 58, - 64, 35, 20, 0, 14, 71,144, 17,160, 17, 2, 17, 31, 25, 72, 0, 6,224, 6,240, 6, 3, 6, 15, 0, 11, 23, 80, 9, 16, 1, 27, - 80, 3, 22, 18, 21, 0, 63, 63,225, 50, 63,225, 50, 63, 1, 47, 93,225, 16,222, 93,225, 50, 50, 49, 48, 37, 35, 6, 35, 34, 2, - 17, 16, 18, 51, 50, 23, 51, 38, 53, 17, 51, 17, 35, 3, 53, 52, 38, 35, 32, 17, 16, 33, 50, 54, 3,129, 8,113,209,201,229,230, -200,206,116, 12, 12,182,147, 35,139,152,254,240, 1, 18,152,133,147,167, 1, 43, 1, 12, 1, 14, 1, 45,160,129, 33, 1,180,249, -236, 1,250, 41,227,193,254, 90,254, 98,177, 0, 0, 2, 0,133,255,236, 4, 72, 4, 94, 0, 17, 0, 22, 0, 71, 64, 44, 19, 72, - 5, 15, 0, 31, 0, 2, 0, 24, 18, 1, 72, 0, 11, 16, 11, 2, 16, 11, 32, 11, 2, 11, 1, 80, 15, 18, 31, 18, 2, 7, 18, 18, - 3, 21, 80, 14, 16, 3, 81, 5, 8, 22, 0, 63, 51,225, 63,225, 18, 57, 47, 94, 93,225, 1, 47, 93,113,225, 50, 16,222,113, 50, -225, 49, 48, 1, 33, 18, 33, 50, 55, 21, 6, 35, 34, 0, 17, 16, 0, 51, 50, 18, 21, 37, 33, 16, 33, 32, 4, 72,252,250, 8, 1, - 80,195,175,166,198,245,254,218, 1, 15,227,212,253,252,254, 2, 61,254,240,254,237, 2, 2,254,137, 76,160, 75, 1, 43, 1, 6, - 1, 10, 1, 55,254,244,223, 35, 1, 49, 0, 1, 0,156, 0, 0, 4, 90, 6, 31, 0, 21, 0, 70, 64, 40, 0, 0, 13, 13, 23, 20, - 2, 71, 3, 7, 3,143, 5,239, 5, 2, 5, 5, 0, 3,176, 3,240, 3, 3, 3, 4, 1, 78, 7, 6, 20, 15, 16, 80, 14, 11, 1, - 2, 21, 0, 63, 63, 51,225, 63, 51, 51,225, 50, 1, 47, 93, 51, 47, 93, 17, 51, 16,225, 50, 17, 51, 47, 57, 47, 49, 48, 1, 33, - 17, 35, 17, 33, 53, 37, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 21, 33, 4, 20,254,123,182,254,195, 1, 61,180,209,129, -123, 41,104,103,123, 88, 1,133, 3,193,252, 63, 3,193,110, 33, 96,193,174, 35,143, 28,100,115,104, 0, 0, 3, 0,102,254, 20, - 4,102, 4, 94, 0, 36, 0, 44, 0, 54, 0,128, 64, 47, 52, 17, 17, 2, 36, 9, 28, 4, 31, 39, 70, 1, 95, 4,223, 4,239, 4, -255, 4, 4, 4, 56, 11, 26, 26, 31, 48, 63, 22, 79, 22, 95, 22, 3, 22, 22, 43, 70,128, 31,144, 31,160, 31, 3, 31,184,255,192, - 64, 29, 6, 9, 72, 31, 28, 4, 34, 37, 82, 7, 7, 46, 41, 79, 34, 24, 46, 81, 13, 13, 34, 16, 50, 78, 19, 27, 2, 0, 15, 0, - 63, 50, 63,225, 63, 57, 47,225, 50, 16,225, 17, 57, 47,225, 18, 57, 57, 1, 47, 43, 93,225, 51, 47, 93,193, 17, 51, 47,193, 16, -222, 93, 50,225, 18, 23, 57, 51, 47,193, 49, 48, 1, 21, 7, 22, 21, 20, 6, 35, 34, 39, 6, 21, 20, 51, 51, 50, 22, 21, 16, 33, - 34, 38, 53, 52, 55, 38, 53, 52, 55, 38, 38, 53, 52, 54, 51, 50, 23, 3, 50, 53, 52, 35, 34, 21, 20, 1, 35, 34, 21, 20, 33, 32, - 53, 52, 38, 4,102,196, 65,213,190, 55, 31,100,161,187,174,184,253,203,218,227,240, 96,133, 89,102,213,197, 86, 64,154,223,225, -225, 1, 69,188,230, 1, 15, 1,139,100, 4, 74,113, 27, 85,128,161,191, 6, 56, 77, 84,154,143,254,135,161,145,212, 58, 47,107, -112, 80, 37,171,101,182,197, 20,253,188,230,239,242,227,254, 12,198,174,223, 88, 61, 0, 0, 1, 0,160, 0, 0, 4, 45, 6, 20, - 0, 17, 0, 60, 64, 38, 36, 15, 52, 15, 2, 0, 71,176, 17,192, 17, 2, 17, 19, 10, 6, 71, 0, 7, 16, 7, 32, 7,208, 7, 4, - 7, 7, 4, 3, 80, 14, 16, 8, 0, 7, 0, 21, 0, 63, 50, 63, 63,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 49, 48, 93, - 33, 17, 16, 35, 32, 17, 17, 35, 17, 51, 17, 7, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,182, 8, 10,103,233, 1,133, 2, -195, 1, 4,254,114,253,199, 6, 20,254, 50,144,168,254,111,253, 51, 0, 0, 2, 0,197, 0, 0, 4, 51, 6, 14, 0, 8, 0, 18, - 0, 51, 64, 28, 14, 2, 13, 71, 7, 10, 17, 3, 86, 18, 1, 18, 18, 20, 19, 13, 18, 78, 16, 21, 9, 78, 11, 15, 5, 83, 0, 0, - 0, 63,237, 63,225, 63,225, 50, 17, 18, 1, 57, 47, 93, 23, 51,225, 50, 50, 49, 48, 1, 50, 21, 20, 6, 35, 34, 53, 52, 19, 37, - 53, 33, 17, 5, 21, 33, 53, 37, 2,121,106, 63, 43,107, 15,254,243, 1,195, 1, 96,252,146, 1, 88, 6, 14,114, 58, 57,115,114, -253,172, 21,123,252, 69, 20,123,123, 20, 0, 2, 0,135,254, 20, 3, 86, 6, 14, 0, 7, 0, 23, 0, 57, 64, 32, 16, 8, 6, 14, - 71, 2,144, 19,160, 19, 2, 19, 19, 25, 24, 0, 8, 1, 8, 11, 80, 9, 22, 27, 15, 78, 18, 15, 4, 83, 0, 0, 0, 63,229, 63, -225, 63, 51,225, 1, 47, 93, 17, 18, 57, 47, 93, 51,225, 50, 17, 57, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 1, 53, 22, 51, 50, - 54, 53, 17, 37, 53, 33, 17, 20, 6, 35, 34, 2,231,107,107,106,254, 10,134,155,117,131,254, 92, 2, 90,226,206,164, 6, 14,114, -115,115,114,248, 41,154, 39,114,101, 4, 57, 21,123,251, 65,180,195, 0, 0, 1, 0,215, 0, 0, 4,139, 6, 20, 0, 14, 0,118, - 64, 11, 25, 6, 41, 6, 57, 6, 3, 8, 6, 1, 4,184,255,224, 64, 62, 16, 20, 72, 70, 4, 86, 4, 2, 9, 2, 1, 9, 1, 1, - 27, 7, 43, 7, 59, 7, 3, 4, 7, 2, 3, 3, 6, 5, 32, 16, 19, 72, 0, 5, 96, 5, 2, 5, 5, 16, 12, 0, 9, 71, 0, 10, - 96, 10, 2, 10, 11, 0, 4, 7, 0, 7, 2, 10, 5, 21, 2, 15, 0, 63, 63, 51, 18, 57, 57, 17, 51, 63, 1, 47, 93,225, 50, 50, - 17, 51, 47, 93, 43, 51, 51, 47, 51, 57, 57, 49, 48, 0, 93, 1, 93, 93, 93, 43, 93, 93, 1, 55, 1, 51, 1, 1, 35, 1, 7, 17, - 35, 17, 51, 17, 3, 1,127,135, 1,139,222,254, 18, 2, 10,213,254, 86,129,180,180, 16, 2, 41,152, 1,137,254, 37,253,145, 1, -248, 82,254, 90, 6, 20,253, 54,254,223, 0, 1, 0,188, 0, 0, 4, 43, 6, 20, 0, 9, 0, 45, 64, 24, 5, 4, 71, 8, 1, 93, - 9, 1, 79, 9, 1, 9, 9, 11, 10, 9, 4, 78, 6, 21, 0, 78, 2, 0, 0, 63,225, 63,225, 50, 17, 18, 1, 57, 47, 93, 93, 51, - 51,225, 50, 49, 48, 1, 37, 53, 33, 17, 5, 21, 33, 53, 37, 2, 20,254,244, 1,195, 1, 96,252,145, 1, 88, 5,133, 21,122,250, -123, 20,123,123, 20, 0, 0, 1, 0, 92, 0, 0, 4,115, 4, 94, 0, 32, 0,107, 64, 69, 25,133, 8, 1,118, 8, 1,101, 8, 1, - 86, 8, 1, 55, 8, 71, 8, 2, 8, 71,139, 9, 1,122, 9, 1, 9, 9, 17, 0, 71,144, 32,160, 32,192, 32,208, 32, 4, 15, 32, - 1, 32, 34, 20, 16, 71, 64, 17, 80, 17, 2, 17, 26, 20, 17, 4, 12, 80, 28, 23, 16, 18, 15, 17, 9, 0, 21, 0, 63, 50, 50, 63, - 63, 51,225, 50, 18, 57, 57, 1, 47, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47, 93, 93,225, 93, 93, 93, 93, 93, 50, 49, 48, 33, - 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 16, 35, 34, 6, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 23, 51, 54, 51, 50, 22, 21, 17, - 3,209, 53, 62, 87, 79,161,125, 84, 72,162,127, 27, 10, 67,134,163, 50, 6, 76,143,128,116, 2,195,146,114,166,195,253,162, 2, -195, 1, 4,159,239,253,199, 4, 74,148,168,182,182,185,216,253, 51, 0, 0, 1, 0,160, 0, 0, 4, 45, 4, 94, 0, 16, 0, 54, - 64, 33, 0, 71,176, 16,192, 16, 2, 16, 18, 10, 6, 71, 0, 7, 16, 7, 32, 7,208, 7, 4, 7, 7, 11, 3, 80, 13, 16, 8, 15, - 7, 0, 21, 0, 63, 50, 63, 63,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 49, 48, 33, 17, 16, 35, 32, 17, 17, 35, 17, 51, - 23, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,147, 27, 10,103,233, 1,133, 2,195, 1, 4,254,114,253,199, 4, 74,148,168, -254,111,253, 51, 0, 2, 0,115,255,236, 4, 88, 4, 94, 0, 11, 0, 19, 0, 34, 64, 18, 14, 72, 9, 21, 18, 72, 0, 3, 1, 3, - 16, 80, 6, 16, 12, 80, 0, 22, 0, 63,225, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, 5, 34, 0, 17, 16, 0, 51, 50, 0, 17, - 16, 0, 39, 32, 17, 16, 33, 32, 17, 16, 2, 98,216,254,233, 1, 15,230,218, 1, 22,254,238,224, 1, 54,254,200,254,203, 20, 1, - 55, 1, 4, 1, 7, 1, 48,254,202,254,255,254,247,254,206,151, 1,164, 1,160,254, 96,254, 92, 0, 2, 0,158,254, 20, 4, 68, - 4, 94, 0, 18, 0, 29, 0, 62, 64, 38, 25, 72, 15, 14, 31, 14, 2, 14, 31, 20, 1, 4, 71, 0, 5, 16, 5, 32, 5,208, 5, 4, - 7, 5, 0, 23, 80, 17, 22, 8, 27, 80, 11, 16, 6, 15, 4, 27, 0, 63, 63, 63,225, 50, 63,225, 50, 1, 47, 94, 93,225, 50, 50, - 16,222,113,225, 49, 48, 37, 35, 22, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 18, 17, 16, 2, 35, 34, 3, 21, 20, 22, 51, 32, 17, - 16, 33, 34, 6, 1, 84, 12, 12,182,147, 27, 8,110,212,201,229,230,200,207,115,139,152, 1, 16,254,238,152,133,139,129, 33,254, - 43, 6, 54,148,168,254,213,254,244,254,242,254,211, 2,100, 41,227,193, 1,166, 1,158,176, 0, 0, 2, 0,137,254, 20, 4, 47, - 4, 94, 0, 18, 0, 29, 0, 60, 64, 37, 1, 8, 19, 3, 5, 71,144, 4,160, 4, 2, 4, 31, 25, 72, 0, 14,224, 14,240, 14, 3, - 14, 8, 27, 80, 11, 22, 4, 27, 1, 23, 80, 17, 16, 2, 15, 0, 63, 63,225, 50, 63, 63,225, 50, 1, 47, 93,225, 16,222, 93,225, - 23, 50, 49, 48, 1, 51, 55, 51, 17, 35, 17, 52, 55, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 19, 53, 52, 38, 35, 32, 17, 16, 33, - 50, 54, 3,121, 8, 27,147,182, 12, 12,113,209,201,229,230,200,207,115,139,152,254,240, 1, 18,152,133, 3,182,148,249,202, 1, -213, 41,129,167, 1, 43, 1, 12, 1, 14, 1, 45,253,156, 41,227,193,254, 90,254, 98,177, 0, 1, 1, 8, 0, 0, 4, 35, 4, 94, - 0, 16, 0, 49, 64, 27,144, 0, 1, 0, 0, 18, 11, 7, 71, 47, 8, 1, 0, 8, 1, 8, 11, 7, 3, 81, 1, 15, 16, 9, 15, 7, - 21, 0, 63, 63, 63, 51,225, 18, 57, 1, 47, 93, 93,225, 50, 17, 51, 47, 93, 49, 48, 1, 7, 38, 35, 34, 6, 21, 17, 35, 17, 51, - 23, 51, 54, 54, 51, 50, 4, 35, 49,123,101,163,177,182,148, 22, 8, 76,174,127,118, 4, 49,166, 45,185,175,253,176, 4, 74,201, -119,102, 0, 1, 0,203,255,236, 4, 2, 4, 94, 0, 31, 0, 60, 64, 34, 16, 16, 5, 70, 27, 33, 21, 70, 11, 0, 0, 0, 11, 80, - 11, 96, 11,240, 11, 4, 11, 21, 5, 14, 3, 80, 1, 30, 22, 19, 80, 17, 14, 16, 0, 63, 51,225, 63, 51,225, 18, 57, 57, 1, 47, - 93, 51, 47, 16,225, 16,222,225, 51, 47, 49, 48, 55, 53, 22, 51, 32, 53, 52, 38, 39, 38, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, - 34, 21, 20, 22, 23, 22, 22, 21, 20, 6, 35, 34,203,193,177, 1, 19, 98,177,233,121,223,197,198,171, 60,182,137,236,101,182,211, -139,234,214,248, 49,166, 86,162, 57, 84, 64, 87,145, 99,136,155, 74,149, 72,133, 61, 73, 65, 77,149,108,150,171, 0, 1, 0,139, -255,236, 4, 2, 5,111, 0, 19, 0, 89, 64, 55, 12, 16, 71, 5, 9, 5, 32, 7, 1, 7, 7, 47, 5, 63, 5,127, 5,143, 5,207, - 5,223, 5, 6, 0, 5, 1, 5, 5, 20, 21, 14, 14,127, 1,143, 1,175, 1, 3, 1, 21, 6, 15, 78, 11, 9, 8, 12, 15, 18, 80, - 0, 3, 22, 0, 63, 51,225, 63, 51, 51, 51,225, 50, 1, 16,206, 93, 50, 47, 17, 18, 57, 47, 93, 93, 51, 47, 93, 17, 51, 16,225, - 50, 49, 48, 37, 21, 6, 35, 32, 17, 17, 33, 53, 37, 19, 51, 17, 33, 21, 33, 17, 20, 51, 50, 3,252,130,122,254,150,254,245, 1, - 11, 77,105, 1,182,254, 74,192, 93,150,138, 32, 1, 88, 2,125, 94, 49, 1, 31,254,219,137,253,131,195, 0, 1, 0,160,255,236, - 4, 45, 4, 74, 0, 17, 0, 48, 64, 28, 1, 14, 71,144, 17,160, 17, 2, 17, 19, 9, 71, 0, 6,176, 6, 2, 6, 15, 7, 15, 1, - 11, 80, 4, 22, 0, 21, 0, 63, 63,225, 50, 63, 51, 1, 47, 93,225, 16,222, 93,225, 50, 49, 48, 33, 39, 35, 6, 35, 32, 17, 17, - 51, 17, 16, 51, 50, 54, 53, 17, 51, 17, 3,154, 27, 10,105,229,254,121,182,236,161,148,182,147,167, 1,145, 2,205,253, 61,254, -252,185,212, 2, 58,251,182, 0, 0, 1, 0, 82, 0, 0, 4,121, 4, 74, 0, 11, 0,115, 64, 56, 38, 11, 1, 41, 0, 1, 55, 11, -103, 11,231, 11,247, 11, 4, 6, 11, 22, 11, 2, 11, 56, 0,104, 0,232, 0,248, 0, 4, 9, 0, 25, 0, 2, 0, 5, 5, 1, 9, - 8, 9, 12, 72, 9, 16, 10, 32, 10, 48, 10, 3, 10, 10, 13, 2,184,255,248, 64, 21, 9, 12, 72, 2, 47, 1, 63, 1, 2, 1, 70, - 5, 86, 5, 2, 5, 9, 1, 15, 0, 21, 0, 63, 63, 51, 57, 93, 1, 47, 93, 51, 43, 17, 51, 47, 93, 51, 43, 18, 57, 61, 47, 51, - 93, 93, 51, 93, 93, 49, 48, 93, 93, 33, 1, 51, 19, 22, 23, 51, 54, 19, 19, 51, 1, 1,242,254, 96,188,240, 85, 15, 6, 7, 94, -239,189,254, 96, 4, 74,253,116,231, 94, 44, 1, 25, 2,140,251,182, 0, 0, 1,255,252, 0, 0, 4,209, 4, 74, 0, 25, 1, 43, -185, 0, 25,255,240,182, 20, 24, 72,167, 25, 1, 25,184,255,240, 64, 24, 13, 18, 72, 9, 22, 25, 22, 41, 22, 3, 41, 21, 1, 39, - 17, 87, 17, 2, 6, 17, 22, 17, 2, 16,184,255,240, 64, 66, 13, 24, 72, 39, 16, 55, 16, 2, 15, 16, 13, 24, 72, 40, 15, 56, 15, - 2, 40, 14, 88, 14, 2, 9, 14, 25, 14, 2, 40, 13, 1, 38, 10, 1, 6, 9, 22, 9, 38, 9, 3, 6, 16, 20, 24, 72,168, 6, 1, -121, 6,137, 6,153, 6, 3, 40, 6, 72, 6, 88, 6,104, 6, 4, 5,184,255,240, 64, 10, 20, 24, 72,167, 5, 1, 38, 5, 1, 5, -184,255,240, 64, 42, 13, 18, 72, 7, 5, 1, 0, 16, 20, 24, 72,168, 0, 1, 41, 0, 1, 0, 16, 13, 18, 72, 8, 0, 1, 6, 5, - 11, 16, 15, 2, 25, 0, 20,148, 11,164, 11,180, 11, 3, 11,184,255,224, 64, 48, 11, 14, 72,155, 20,171, 20,187, 20, 3, 20, 32, - 11, 14, 72, 11, 2, 20, 20, 2, 11, 3, 7, 23, 16, 24, 1, 24, 8, 7, 20, 11, 91, 2, 1, 84, 11, 1, 2, 11, 6, 23, 15, 7, - 15, 0, 6, 21, 0, 63, 51, 63, 51, 51, 18, 57, 57, 93, 93, 17, 51, 1, 47, 51, 47, 93, 51, 18, 23, 57, 61, 47, 47, 47, 43, 93, - 43, 93, 17, 51, 51, 17, 51, 51, 17, 51, 51, 49, 48, 93, 43, 93, 93, 43, 93, 43, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 93, 93, - 93, 43, 93, 43, 93, 93, 93, 93, 43, 93, 43, 33, 3, 3, 35, 3, 3, 35, 3, 51, 19, 22, 23, 51, 54, 55, 19, 51, 19, 22, 23, 51, - 54, 55, 19, 51, 3, 3, 45,131, 68, 6, 65,135,189,223,162, 98, 34, 23, 6, 31, 37,133,193,127, 43, 24, 6, 31, 29,102,158,225, - 2, 84, 1, 74,254,178,253,176, 4, 74,253,225,186,207,185,173, 2, 66,253,190,195,163,242,151, 2, 31,251,182, 0, 1, 0, 96, - 0, 0, 4,106, 4, 74, 0, 11, 0,169,183,196, 10,212, 10,228, 10, 3, 10,184,255,240, 64, 36, 11, 14, 72,203, 8,219, 8,235, - 8, 3, 8, 16, 11, 14, 72,203, 4,219, 4,235, 4, 3, 4, 16, 11, 14, 72,196, 2,212, 2,228, 2, 3, 6, 2,184,255,240, 64, - 20, 11, 14, 72, 73, 9, 1, 9, 16, 18, 23, 72, 10, 9, 26, 9, 2, 70, 3, 1, 3,184,255,240, 64, 45, 18, 23, 72, 5, 3, 21, - 3, 2, 4, 5, 5, 6, 3, 9, 0, 4, 11, 8, 0, 7, 16, 7, 2, 7, 7, 13, 2, 1, 10, 31, 11, 1, 11, 9, 6, 0, 3, 4, - 1, 11, 7, 21, 4, 1, 15, 0, 63, 51, 63, 51, 18, 23, 57, 1, 47, 93, 51, 51, 50, 17, 51, 47, 93, 51, 18, 23, 57, 51, 17, 51, - 49, 48, 0, 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 1, 1, 51, 1, 1, 51, 1, 1, 35, 1, 1, 35, 1, -254,254,119,207, 1, 34, 1, 35,207,254,117, 1,157,206,254,202,254,201,207, 2, 51, 2, 23,254,102, 1,154,253,233,253,205, 1, -180,254, 76, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 22, 0,113, 64, 30, 56, 8, 1, 9, 8, 25, 8, 41, 8, 3, 55, 1, - 1, 6, 1, 22, 1, 38, 1, 3, 22, 16, 9, 12, 72, 22, 4, 4, 8, 9,184,255,192, 64, 18, 9, 12, 72, 9, 9, 24, 15, 15, 1, - 31, 0, 47, 0, 63, 0, 3, 0, 4,184,255,240, 64, 20, 11, 14, 72, 4, 4, 20, 4, 2, 4, 0, 22, 22, 18, 80, 16, 13, 27, 8, - 0, 15, 0, 63, 50, 63, 51,225, 63, 18, 57, 93, 43, 1, 47, 93, 50, 50, 47, 17, 51, 47, 43, 51, 57, 61, 47, 51, 43, 49, 48, 93, - 93, 93, 93, 19, 51, 1, 22, 23, 51, 54, 55, 19, 51, 1, 6, 6, 35, 34, 39, 53, 22, 51, 50, 54, 55, 55, 82,188, 1, 6, 82, 7, - 6, 23, 67,239,189,254, 37, 67,178,157, 86, 82, 62, 74, 96,107, 42, 58, 4, 74,253,114,205, 85,112,180, 2,140,251, 39,174,175, - 17,145, 12, 82,100,150, 0, 1, 0,182, 0, 0, 4, 20, 4, 74, 0, 9, 0, 70, 64, 14, 3, 8, 9, 12, 72, 3, 7, 7,112, 0, - 1, 0, 11, 8,184,255,248, 64, 24, 9, 12, 72, 8, 2, 4, 4,127, 2, 1, 0, 2, 1, 2, 7, 4, 78, 5, 15, 2, 8, 78, 1, - 21, 0, 63,225, 50, 63,225, 50, 1, 47, 93, 93, 51, 47, 17, 51, 43, 16,206, 93, 50, 47, 51, 43, 49, 48, 33, 33, 53, 1, 33, 53, - 33, 21, 1, 33, 4, 20,252,162, 2,148,253,141, 3, 43,253,121, 2,153,125, 3, 68,137,146,252,209, 0, 0, 1, 0,225,254,188, - 3,233, 5,182, 0, 25, 0, 98, 64, 63, 20, 0,241, 12, 22, 9,112, 6,128, 6, 2, 6, 6, 9, 16, 95, 3, 1, 64, 3, 1, 3, - 27,224, 9,240, 9, 2, 31, 9, 1, 9, 22, 9,245,239, 10,255, 10, 2,217, 10, 1, 15, 10, 47, 10,175, 10,191, 10, 4, 10, 10, - 3, 16,245, 15,248, 3,245, 4,249, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 57, 1, 47, 93, 93, 16,206, 93, 93, 50, 17, - 57, 47, 93, 18, 57, 51,225, 50, 49, 48, 5, 20, 22, 23, 21, 36, 17, 17, 52, 33, 53, 32, 53, 17, 16, 37, 21, 6, 6, 21, 17, 20, - 7, 21, 22, 21, 2,233,112,144,254, 74,254,174, 1, 82, 1,182,144,112,233,233, 16, 81, 75, 2,150, 6, 1, 31, 1, 78,189,155, -189, 1, 77, 1, 31, 6,149, 2, 75, 81,254,180,207, 41, 12, 41,207, 0, 0, 1, 2, 27,254, 20, 2,176, 6, 20, 0, 3, 0, 21, - 64, 10, 2,170, 79, 3, 1, 3, 2, 27, 0, 0, 0, 63, 63, 1, 47, 93,225, 49, 48, 1, 51, 17, 35, 2, 27,149,149, 6, 20,248, - 0, 0, 0, 1, 0,227,254,188, 3,236, 5,182, 0, 25, 0, 96, 64, 62, 5, 25,241, 13, 3,127, 19,143, 19, 2, 19, 19, 9,239, - 15,255, 15, 2, 16, 15, 1, 15, 27, 21, 80, 9, 1, 79, 9, 1, 9, 3, 16,245,239, 15,255, 15, 2,217, 15, 1, 15, 15, 47, 15, -175, 15,191, 15, 4, 15, 15, 10, 22,245, 21,249, 9,245, 10,248, 0, 63,225, 63,225, 17, 57, 47, 93, 93, 93,225, 57, 1, 47, 93, - 93, 51, 16,206, 93, 93, 17, 57, 47, 93, 57, 51,225, 50, 49, 48, 1, 52, 55, 53, 38, 53, 17, 52, 38, 39, 53, 4, 17, 17, 20, 33, - 21, 32, 21, 17, 16, 5, 53, 54, 54, 53, 1,227,234,234,113,143, 1,183, 1, 82,254,174,254, 73,143,113, 1, 59,207, 41, 12, 41, -207, 1, 76, 81, 76, 1,149, 6,254,225,254,179,189,155,189,254,178,254,225, 6,150, 1, 76, 81, 0, 1, 0,152, 2, 74, 4, 51, - 3, 90, 0, 17, 0, 47, 64, 26, 9, 19, 0, 0, 1, 0, 0, 18, 16,173, 9, 3,178, 7,173, 0,223, 12, 1,112, 12, 1, 63, 12, - 1, 12, 0, 47, 93, 93, 93, 51,225,253, 50,225, 17, 1, 51, 47, 93, 16,206, 49, 48, 19, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, - 6, 35, 34, 39, 38, 35, 34,152, 99,148,100,148,130, 71,108,119, 99,149,100,147,131, 70,108, 2, 74,162,108, 63, 56,121,162,108, - 63, 56, 0, 2, 1,231,254,139, 2,229, 4, 94, 0, 7, 0, 11, 0, 37, 64, 17, 8, 9, 10, 6,150, 11, 2, 2, 12, 13, 8, 8, - 10, 0,155, 4, 16, 0, 63,237, 47, 57, 47, 17, 18, 1, 57, 47, 51,225, 50, 57, 57, 49, 48, 1, 34, 53, 52, 51, 50, 21, 20, 7, - 51, 19, 35, 2,102,127,127,127,188,121, 51,223, 3, 72,139,139,139,139,164,251,231, 0, 0, 1, 0,172,255,236, 4, 37, 5,203, - 0, 23, 0, 78, 64, 24, 0, 14, 70, 21, 32, 17, 48, 17, 2, 17, 17, 19, 2,143, 12, 1, 12, 25, 7, 72, 0, 19, 1, 19,184,255, -192, 64, 18, 21, 24, 72, 19, 5, 80, 0, 21, 21, 22, 7, 17, 9, 81, 14, 14, 15, 22, 0, 63, 51, 47,225, 51, 63, 51, 47, 51,225, - 1, 47, 43, 93,225, 16,206, 93, 50, 17, 57, 47, 93, 51,225, 50, 49, 48, 1, 22, 23, 7, 38, 35, 32, 17, 16, 33, 50, 55, 21, 6, - 7, 21, 35, 53, 36, 17, 16, 37, 53, 51, 2,231,162,156, 62,150,118,254,141, 1,105,153,168,122,177,137,254, 78, 1,178,137, 5, - 39, 3, 56,158, 57,254, 98,254,107, 61,159, 59, 3,200,206, 69, 1,232, 1,238, 74,172, 0, 1, 0,119, 0, 0, 4, 86, 5,201, - 0, 27, 0, 82, 64, 49, 6, 10,111, 22, 18, 8, 18, 8, 15, 0, 13, 29, 20, 0, 15, 1, 15, 9, 20,117, 6, 47, 21, 95, 21,127, - 21,143, 21,175, 21,191, 21,223, 21, 7, 21, 21, 12, 3,115, 1, 26, 7, 16, 12,116, 15, 24, 0, 63,225, 50, 63, 51,225, 18, 57, - 47, 93, 51,225, 50, 1, 47, 93, 51, 16,206, 50, 17, 57, 57, 47, 47, 51,225, 50, 49, 48, 1, 7, 38, 35, 34, 21, 17, 33, 21, 33, - 21, 20, 7, 33, 21, 33, 53, 54, 53, 53, 35, 53, 51, 17, 52, 54, 51, 50, 4, 39, 66,141,131,223, 1,121,254,135,140, 2,236,252, - 33,200,198,198,217,181,192, 5,121,144, 72,246,254,217,137,211,196, 78,166,154, 49,235,213,137, 1, 68,168,201, 0, 2, 0,174, - 1, 29, 4, 31, 4,139, 0, 27, 0, 39, 0, 94, 64, 10, 37,171, 0, 26,176, 26,224, 26, 3, 26,184,255,192, 64, 29, 11, 15, 72, - 26, 26, 31,171,192, 12, 1, 79, 12, 95, 12,111, 12, 3, 12, 41, 28,174, 0, 19,176, 19,224, 19, 3, 19,184,255,192, 64, 21, 11, - 15, 72, 19, 19, 34,174, 31, 5, 63, 5, 79, 5,111, 5,191, 5,239, 5, 6, 5, 0, 47, 93,225, 51, 47, 43, 93,225, 1, 16,222, - 93, 93,225, 51, 47, 43, 93,225, 49, 48, 1, 39, 55, 23, 54, 51, 50, 23, 55, 23, 7, 22, 21, 20, 7, 23, 7, 39, 6, 35, 34, 39, - 7, 39, 55, 38, 53, 52, 1, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 47,129, 98,127,101,114,114, 99,129, 99,129, 67, 67, -127, 97,129, 99,114,118, 97,127, 96,127, 65, 1,120,100,144,143,101, 99,140,141, 3,168,129, 98,129, 68, 68,129, 96,129,101,114, -120, 95,127, 96,127, 66, 68,127, 96,127, 95,118,114,254,158,140,100,101,143,142,102,100,140, 0, 0, 1, 0, 78, 0, 0, 4,125, - 5,182, 0, 22, 0,189,185, 0, 22,255,248, 64, 9, 10, 13, 72, 1, 8, 10, 13, 72, 0,184,255,232, 64, 60, 21, 24, 72,102, 0, -118, 0, 2, 18, 14, 18, 14, 12, 22,207, 21, 1,139, 21, 1,116, 21, 1, 21, 21, 12, 5, 9, 5, 9, 1, 2, 2,103, 0, 1, 0, - 7, 3, 11,110, 20, 16,192, 12,208, 12, 2,103, 12, 1, 16, 12, 1, 12, 12, 23, 24, 7, 15,184, 1, 7,180, 14, 10, 14, 6, 18, -184, 1, 7, 64, 29, 19, 3, 0, 19,159, 14, 1, 48, 14, 64, 14, 2, 15, 19, 31, 19,159, 19, 3, 14, 19, 14, 19, 1, 11, 18, 22, - 1, 6, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93, 93, 17, 51, 51, 16,225, 50, 17, 51, 16,225, 50, 17, 18, 1, 57, 47, 93, 93, - 93, 51, 51,225, 50, 50, 57, 93, 50, 47, 51, 57, 57, 47, 47, 17, 51, 47, 93, 93, 93, 51, 18, 57, 57, 47, 47, 49, 48, 0, 93, 43, - 1, 43, 43, 1, 1, 51, 1, 51, 21, 33, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 51, 1, 51, 2,100, 1, 90,191,254, -127,240,254,210, 1, 46,254,210,178,254,211, 1, 45,254,211,234,254,133,192, 2,211, 2,227,253, 0,137,158,137,254,250, 1, 6, -137,158,137, 3, 0, 0, 0, 2, 2, 27,254, 20, 2,176, 6, 20, 0, 3, 0, 7, 0, 33, 64, 16, 2, 6,170, 3, 79, 7, 1, 7, - 4, 3, 4, 3, 6, 27, 0, 0, 0, 63, 63, 57, 57, 47, 47, 1, 47, 93, 51,225, 50, 49, 48, 1, 51, 17, 35, 17, 51, 17, 35, 2, - 27,149,149,149,149, 6, 20,252,244,254, 25,252,243, 0, 0, 2, 0,244,255,246, 3,217, 6, 31, 0, 39, 0, 50, 0,125, 64, 43, - 8, 0, 1, 6, 20, 1, 9, 0, 1, 40, 20, 47, 22, 0, 45, 2, 72, 42, 1, 42, 73, 18, 18, 32, 70, 7, 22, 52, 71, 47, 1, 47, - 73, 38, 12, 70, 2, 2, 27, 0, 38, 1, 38,184,255,192, 64, 26, 12, 15, 72, 38, 38, 51, 20, 40, 0, 45, 12, 45, 40, 32, 4, 5, - 30, 78, 28, 25, 22, 10, 78, 8, 5, 1, 0, 63, 51,225, 63, 51,225, 17, 23, 57, 17, 51, 17, 51, 17, 1, 51, 47, 43, 93, 51, 51, - 47,225, 16,225, 93, 16,222, 50,225, 51, 47,225, 93, 17, 57, 57, 17, 18, 57, 57, 49, 48, 0, 93, 93, 1, 93, 1, 38, 53, 52, 54, - 51, 50, 23, 7, 38, 35, 34, 21, 20, 22, 23, 22, 22, 21, 20, 7, 22, 21, 20, 6, 35, 34, 39, 53, 22, 51, 50, 53, 52, 38, 39, 38, - 38, 53, 52, 1, 54, 53, 52, 38, 39, 6, 21, 20, 22, 23, 1,164,160,208,173,162,164, 56,156,120,201, 99,147,157,148,145,145,221, -197,204,119,171,152,240, 86,152,197,112, 1,197,114,147,133,133,113,151, 4, 43, 80,156,120,144, 72,139, 67,116, 54, 78, 61, 62, -155,113,182, 88, 80,145,138,161, 65,158, 82,141, 57, 80, 62, 84,150,104,179,254, 97, 76,109, 89,111, 48, 48,127, 73,107, 63, 0, - 0, 2, 1, 74, 5, 12, 3,129, 5,217, 0, 7, 0, 15, 0, 55, 64, 36, 2,133, 0, 6,112, 6,224, 6, 3, 6, 6, 14,133, 10, - 10, 17, 8, 0,147, 12, 79, 4,111, 4,127, 4,159, 4,175, 4,207, 4,223, 4, 7, 4, 0, 47, 93, 51,237, 50, 17, 1, 51, 47, -225, 51, 47, 93,225, 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, 52, 1,170, 96, 96, 96, 1,215, 96, 96, - 96, 5,217,102,103,103,102,102,103,103,102, 0, 0, 3, 0, 6,255,236, 4,199, 5,203, 0, 11, 0, 23, 0, 44, 0,111, 64, 70, - 41,197, 35, 25, 31, 30, 47, 30, 63, 30, 3, 30, 25, 30, 25, 9, 15,195, 3, 46, 21,195, 9, 43,201, 27, 24, 27, 38,201, 33, 36, - 33,111, 27,127, 27,143, 27, 3, 13, 27, 29, 27, 2, 96, 33,112, 33,128, 33, 3, 2, 33, 18, 33, 2, 27, 33, 27, 33, 0, 12,200, - 6, 19, 18,200, 0, 4, 0, 63,225, 63,225, 17, 57, 57, 47, 47, 93, 93, 93, 93, 17, 51, 16,225, 17, 51, 16,225, 1, 47,225, 16, -214,225, 17, 57, 57, 47, 47, 93, 17, 51,225, 49, 48, 1, 32, 0, 17, 16, 0, 33, 32, 0, 17, 16, 0, 1, 50, 0, 17, 16, 0, 35, - 34, 0, 17, 16, 0, 1, 21, 6, 35, 34, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 16, 51, 50, 2,102, 1, 30, 1, 67, -254,188,254,227,254,226,254,190, 1, 65, 1, 31,240, 1, 4,254,252,240,240,254,253, 1, 3, 1,244,107,114,195,210,220,191,128, -126, 61,110, 83,121,130,251, 94, 5,203,254,104,254,168,254,167,254,106, 1,151, 1, 88, 1, 87, 1,153,250,141, 1, 85, 1, 46, - 1, 46, 1, 85,254,170,254,211,254,211,254,170, 1,109,131, 50,247,214,209,246, 62,127, 54,171,151,254,189, 0, 0, 2, 1, 20, - 3, 16, 3,141, 5,199, 0, 20, 0, 30, 0, 71, 64, 37, 30, 1, 9,224,192, 19, 1, 47, 19,127, 19, 2, 19, 19, 24,224, 15, 48, - 5,160, 5, 2, 5, 30,229, 9, 9, 26, 14, 12,228, 17,222, 1, 26,228, 3,184, 1, 0,177, 0,255, 0, 63, 63,225, 50, 63,225, - 51, 18, 57, 47,225, 1, 47, 93, 51,225, 51, 47, 93, 93,225, 50, 50, 49, 48, 1, 39, 6, 35, 34, 53, 52, 54, 55, 55, 53, 52, 35, - 34, 7, 39, 54, 51, 32, 21, 17, 3, 6, 6, 21, 20, 51, 50, 54, 53, 53, 3, 31, 33,104,164,222,170,191,125,152,112,133, 41,138, -156, 1, 35,247,114,120,104,105,125, 3, 29,118,131,205,116,103, 6, 5, 10,133, 51,110, 58,238,254, 68, 1, 63, 2, 52, 75, 90, -110, 91, 20, 0, 0, 2, 0,197, 0,115, 4, 6, 3,199, 0, 6, 0, 13, 0, 71, 64, 42, 10,235, 7,236, 11,143, 9, 1, 96, 9, - 1, 9, 15, 3,235, 0,236, 64, 4, 0, 2, 48, 2, 96, 2,160, 2, 4, 2, 12, 5,238, 8, 1,238, 32, 0, 6, 10, 3, 3,239, - 0, 25, 63, 23, 51, 26,237, 50,237, 50, 1, 24, 47, 93, 51, 26,253,225, 16,222, 93, 93, 50,253,225, 49, 48, 19, 1, 23, 3, 19, - 7, 1, 37, 1, 23, 3, 19, 7, 1,197, 1, 53,117,238,238,117,254,203, 1,151, 1, 53,117,237,237,117,254,203, 2, 41, 1,158, - 78,254,164,254,164, 78, 1,155, 27, 1,158, 78,254,164,254,164, 78, 1,155, 0, 0, 1, 0,152, 1, 6, 4, 51, 3, 29, 0, 5, - 0, 44,183, 3,170, 0, 7, 0, 5, 1, 5,184,255,192, 64, 13, 21, 24, 72, 5, 5, 6, 3,173, 0, 1, 1, 0,179, 0, 63, 50, - 47, 16,225, 17, 1, 51, 47, 43, 93, 16,222,225, 49, 48, 1, 17, 35, 17, 33, 53, 4, 51,149,252,250, 3, 29,253,233, 1,129,150, -255,255, 1, 29, 1,209, 3,176, 2,121, 2, 6, 0, 16, 0, 0, 0, 4, 0, 6,255,236, 4,199, 5,203, 0, 11, 0, 23, 0, 35, - 0, 43, 0,150, 64, 94, 24, 34, 36, 29,197, 30, 26, 25, 25, 39,197, 34, 27, 34, 96, 30, 1, 96, 34, 1, 27, 34, 1, 30, 34, 30, - 34, 9, 15,195, 3, 45, 21,195, 9, 26, 30, 21, 36, 1, 36,201, 28, 24, 28, 43,201, 31,240, 30, 1,111, 30,127, 30,143, 30, 3, - 13, 30, 29, 30, 2, 34, 28, 1, 96, 31,112, 31,128, 31, 3, 2, 31, 18, 31, 2, 30, 28, 31, 31, 28, 30, 3, 0, 12,200, 6, 19, - 18,200, 0, 4, 0, 63,225, 63,225, 17, 23, 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 17, 51, 16,225, 93, 17, 51, 1, 47, -225, 16,214,225, 17, 57, 57, 47, 47, 93, 93, 93, 18, 57, 16,225, 51, 17, 51, 16,225, 50, 17, 57, 49, 48, 1, 32, 0, 17, 16, 0, - 33, 32, 0, 17, 16, 0, 1, 50, 0, 17, 16, 0, 35, 34, 0, 17, 16, 0, 1, 19, 35, 3, 35, 17, 35, 17, 51, 32, 17, 20, 37, 51, - 50, 53, 52, 38, 35, 35, 2,102, 1, 30, 1, 67,254,188,254,227,254,226,254,190, 1, 65, 1, 31,240, 1, 4,254,252,240,240,254, -253, 1, 3, 1,118,237,178,207, 94,158,234, 1, 69,254,111, 72,170, 84, 89, 69, 5,203,254,104,254,168,254,167,254,106, 1,151, - 1, 88, 1, 87, 1,153,250,141, 1, 85, 1, 46, 1, 46, 1, 85,254,170,254,211,254,211,254,170, 2, 80,254,117, 1, 96,254,160, - 3,125,254,247,163, 18,141, 74, 59, 0, 0, 1,255,236, 6, 20, 4,225, 6,160, 0, 3, 0, 15,181, 1, 0, 3,186, 0, 0, 0, - 63,225, 1, 47, 47, 49, 48, 1, 33, 53, 33, 4,225,251, 11, 4,245, 6, 20,140, 0, 2, 1, 43, 3, 86, 3,162, 5,203, 0, 11, - 0, 23, 0,137, 64, 26,169, 10,185, 10, 2, 10, 16, 9, 15, 72,169, 8,185, 8, 2, 8, 16, 9, 15, 72,166, 4,182, 4, 2, 4, -184,255,240, 64, 9, 9, 15, 72,166, 2,182, 2, 2, 2,184,255,240, 64, 33, 9, 15, 72, 15,171,159, 3,175, 3,255, 3, 3, 3, - 25, 21,171, 0, 9, 32, 9, 48, 9,144, 9,160, 9,176, 9,240, 9, 7, 9, 12,184, 1, 2, 64, 12, 0, 6, 16, 6, 32, 6,224, - 6,240, 6, 5, 6,184,255,192,180, 16, 21, 72, 6, 18,184, 1, 2,177, 0, 4, 0, 63,225,212, 43, 93,225, 1, 47, 93,225, 16, -222, 93,225, 49, 48, 43, 93, 43, 93, 43, 93, 43, 93, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 19, 50, 54, 53, 52, 38, 35, - 34, 6, 21, 20, 22, 2,102,129,187,186,130,131,184,185,130, 79,114,115, 78, 79,113,112, 5,203,187,129,129,184,185,128,129,187, -254, 6,112, 78, 81,114,115, 80, 78,112, 0, 2, 0,152, 0, 0, 4, 51, 4,162, 0, 11, 0, 15, 0, 41, 64, 22, 14, 9, 6,170, - 13, 0,192, 3,208, 3, 2, 3, 13,173, 12, 24, 9, 0,173, 6, 3,179, 0, 63, 51,225, 50, 63,225, 1, 47, 93, 51, 51,225, 50, - 50, 49, 48, 1, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 35, 1, 53, 33, 21, 2, 27,254,125, 1,131,149, 1,131,254,125,149,254, -125, 3,155, 2,135,150, 1,133,254,123,150,254,127,254,250,150,150, 0, 0, 1, 1, 92, 2,160, 3,111, 5,197, 0, 21, 0, 77, - 64, 51, 21, 21, 6,224, 15, 16, 31, 16, 79, 16, 95, 16,127, 16,143, 16,159, 16, 7, 16, 16, 20, 11, 11, 0, 1, 96, 1,112, 1, -128, 1, 4, 1, 6, 1, 10, 16, 17, 24, 72, 10, 8,228, 13,222, 2, 20,228, 1,221, 0, 63,225, 50, 63,225, 51, 43, 18, 57, 1, - 47, 93, 50, 47, 50, 50, 47, 93,225, 51, 47, 49, 48, 1, 33, 53, 55, 54, 54, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 6, - 7, 7, 33, 3,111,253,237,187,111, 61,111, 81, 83, 78,117,131,118,130, 70,129,135, 1,107, 2,160,102,199,118,101, 57,115, 76, - 86,103,120,104, 66,136,129,136, 0, 1, 1, 86, 2,143, 3, 78, 5,197, 0, 30, 0,132, 64, 79, 0, 16, 19,224, 23, 29, 1, 29, - 29, 2, 16, 16, 7, 12,224, 15, 2, 31, 2, 79, 2, 95, 2,127, 2,143, 2,159, 2, 7, 2, 2, 7, 24, 24, 0, 7, 96, 7,112, - 7, 3, 7, 0, 15,229,250, 16, 1,233, 16, 1,168, 16, 1,111, 16, 1, 11, 16, 27, 16, 2, 16, 16, 10, 23, 16, 17, 24, 72, 23, - 21,228, 26,222, 10,228, 8,184,255,240,181, 17, 24, 72, 8, 5,223, 0, 63, 51, 43,225, 63,225, 51, 43, 18, 57, 47, 93, 93, 93, - 93, 93,225, 57, 1, 47, 93, 51, 47, 17, 51, 47, 93,225, 18, 57, 47, 17, 51, 47, 93,225, 18, 57, 49, 48, 1, 22, 21, 20, 6, 35, - 34, 39, 53, 22, 51, 50, 53, 52, 35, 35, 53, 51, 50, 53, 52, 35, 34, 7, 39, 54, 51, 50, 22, 21, 20, 2,158,176,149,140,131, 84, -110, 93,149,147, 72, 70,123, 97, 71, 90, 66,111,127,109,128, 4, 61, 39,147,116,128, 50,124, 65,137,125,104,127,111, 70, 86, 93, -109, 94,139, 0, 0, 1, 1,162, 4,217, 3, 43, 6, 33, 0, 7, 0, 31, 64, 16, 6, 7,134, 2,135, 3, 3, 9, 2,146, 15, 6, - 95, 6, 2, 6, 0, 47, 93,237, 17, 1, 51, 47,225,237, 50, 49, 48, 1, 54, 55, 51, 21, 6, 7, 35, 1,162, 94, 80,219,112,160, -121, 4,244,133,168, 21,173,134, 0, 1, 0,180,254, 20, 4, 25, 4, 74, 0, 21, 0, 61, 64, 16, 10, 5, 71,143, 8, 1, 8, 23, - 15, 0, 18, 71, 0, 19, 1, 19,184,255,192, 64, 16, 17, 20, 72, 19, 18, 27, 10, 2, 80, 13, 22, 9, 21, 20, 6, 15, 0, 63, 51, - 63, 63,225, 50, 63, 1, 47, 43, 93,225, 50, 50, 16,222, 93,225, 50, 49, 48, 1, 16, 51, 50, 54, 53, 17, 51, 17, 35, 39, 35, 6, - 35, 34, 39, 22, 21, 17, 35, 17, 51, 1,106,218,148,138,183,148, 27, 10, 96,199,139, 74, 6,182,182, 1,135,254,252,182,215, 2, - 58,251,182,147,167, 88,153, 87,254,192, 6, 54, 0, 1, 0, 66,254,252, 4, 55, 6, 20, 0, 14, 0, 77,183, 4,154, 96, 5,240, - 5, 2, 5,184,255,192, 64, 37, 18, 22, 72, 34, 5, 50, 5, 2, 4, 5, 20, 5, 2, 5, 5, 10, 1,154, 0, 16, 10, 64, 10, 15, - 72, 10, 10, 15, 8, 8, 0, 2, 81, 14, 0, 5, 0, 0, 47, 50, 63,225, 18, 57, 47, 17, 1, 51, 47, 43, 16,222,225, 17, 57, 47, - 93, 93, 43, 93,225, 49, 48, 1, 35, 17, 35, 17, 35, 17, 6, 35, 32, 17, 16, 54, 51, 33, 4, 55,121,206,121, 61, 85,254, 93,217, -233, 2, 51,254,252, 6,121,249,135, 3, 51, 18, 1,245, 1, 3,255, 0, 0, 1, 1,231, 2, 72, 2,229, 3, 94, 0, 7, 0, 34, - 64, 20, 2,150, 48, 6, 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 8, 9, 0,155, 4, 0, 47,237, 17, 18, 1, 57, 47, 93,237, - 49, 48, 1, 50, 21, 20, 35, 34, 53, 52, 2,102,127,127,127, 3, 94,139,139,139,139, 0, 0, 1, 1,172,254, 20, 3, 33, 0, 0, - 0, 15, 0, 67,185, 0, 13,255,176, 64, 33, 11, 19, 72, 7, 48, 9, 14, 72, 8, 7, 9, 10, 7, 10, 0, 5,132, 12, 95, 0, 1, - 0, 0, 12, 12, 17, 10, 7, 8, 3,141, 14, 8, 0, 47, 47,225, 17, 57, 57, 17, 1, 51, 47, 51, 47, 93, 16,225, 17, 57, 57, 17, - 51, 17, 51, 49, 48, 43, 43, 1, 53, 22, 51, 50, 53, 52, 39, 55, 51, 7, 22, 21, 20, 33, 34, 1,172, 33, 47,151,172, 91,120, 57, -160,254,221, 34,254, 29,108, 6, 92, 74, 39,176,115, 37,135,205, 0, 1, 1,111, 2,160, 2,209, 5,180, 0, 10, 0, 33, 64, 15, - 10, 10, 2,224, 0, 3, 3, 11, 12, 2,221, 6, 9, 0,220, 0, 63,205, 57, 63, 17, 18, 1, 57, 47, 51,225, 51, 47, 49, 48, 1, - 51, 17, 35, 17, 52, 55, 6, 7, 7, 39, 2, 74,135,146, 9, 41, 33, 70, 73, 5,180,252,236, 1,209, 69,131, 44, 21, 51, 88, 0, - 0, 2, 1, 25, 3, 16, 3,180, 5,199, 0, 11, 0, 19, 0, 48, 64, 27, 14,224,176, 9, 1,127, 9, 1, 9, 9, 18,224, 32, 3, - 48, 3,160, 3, 3, 3, 16,230, 6,222, 12,230, 0,184, 1, 0, 0, 63,225, 63,225, 1, 47, 93,225, 51, 47, 93, 93,225, 49, 48, - 1, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 2,100,144,187,180,155,145,187,184,150,181,181, -182, 3, 16,186,163,162,184,185,161,165,184,119,230,225,225,230, 0, 2, 0,197, 0,115, 4, 6, 3,199, 0, 6, 0, 13, 0, 71, - 64, 42, 2, 4,236, 3,235, 63, 6,143, 6,159, 6,175, 6, 4, 6, 15, 9, 11,236, 64, 10,235,159, 13, 1, 0, 13, 1, 13, 12, - 5,238, 8, 1,238, 32, 0, 6, 10, 3, 3,239, 0, 25, 63, 23, 51, 26,237, 50,237, 50, 1, 24, 47, 93, 93,225, 26,237, 50, 16, -222, 93,225,237, 50, 49, 48, 1, 1, 39, 19, 3, 55, 1, 5, 1, 39, 19, 3, 55, 1, 4, 6,254,203,117,238,238,117, 1, 53,254, -105,254,202,116,237,237,116, 1, 54, 2, 14,254,101, 78, 1, 92, 1, 92, 78,254, 98, 27,254,101, 78, 1, 92, 1, 92, 78,254, 98, -255,255, 0, 22, 0, 0, 4,184, 5,182, 2, 39, 0,123,254,167, 0, 0, 0, 38, 2, 23, 0, 0, 1, 7, 2, 60, 1, 57,253, 89, - 0, 60, 64, 39, 3, 2, 18, 24, 3, 2,240, 18, 1,224, 18, 1,128, 18, 1,127, 18, 1, 16, 18, 1, 18, 0,240, 0, 1,224, 0, - 1,176, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53,255,255, - 0, 3, 0, 0, 4,201, 5,182, 2, 39, 0,123,254,148, 0, 0, 0, 38, 2, 23,191, 0, 1, 7, 0,116, 1, 90,253, 97, 0, 68, - 64, 45, 2, 16, 24, 2,240, 16, 1,224, 16, 1,208, 16, 1,192, 16, 1, 16, 16, 1, 0, 16, 1, 16, 1,175, 13, 1,143, 13, 1, - 13, 0,240, 0, 1,224, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 53, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 93, - 53, 0, 63, 53,255,255, 0, 21, 0, 0, 4,205, 5,197, 2, 39, 0,117,254,191, 0, 0, 0, 38, 2, 23, 53, 0, 1, 7, 2, 60, - 1, 78,253, 89, 0, 56, 64, 36, 3, 2, 38, 24, 3, 2,240, 38, 1,224, 38, 1,128, 38, 1, 16, 38, 1, 38, 1,244, 33, 1,228, - 33, 1,212, 33, 1,196, 33, 1,176, 33, 1, 33, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53, 0, 2, - 0,168,254,119, 4, 31, 4, 94, 0, 7, 0, 33, 0, 91, 64, 55, 33, 8, 8, 6,150, 64, 2, 80, 2, 2, 2, 2, 15,159, 21, 1, - 21, 35, 32, 35, 1, 15, 71,159, 26, 1, 0, 26, 1, 26, 15, 23, 32, 8, 1, 8, 8, 0, 20, 18, 81, 48, 23, 1, 23, 26, 0, 1, - 9, 0, 1, 0,155, 4, 16, 0, 63,225, 93, 93, 47, 93,225, 51, 18, 57, 47, 93, 18, 57, 1, 47, 93, 93,225, 93, 16,206, 93, 17, - 57, 47, 93,229, 50, 17, 51, 49, 48, 1, 34, 53, 52, 51, 50, 21, 20, 7, 21, 20, 6, 7, 6, 6, 21, 20, 22, 51, 50, 55, 23, 6, - 35, 34, 38, 53, 52, 54, 55, 54, 54, 53, 53, 2,162,127,127,127, 39, 89,118,129, 84,149,132,181,189, 62,219,203,217,248,107,143, -119, 65, 3, 72,139,139,139,139,164, 37,119,149, 84, 97,116,101, 93,113, 90,144,106,195,163,134,166,108, 87,107, 90, 19,255,255, - 0, 33, 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 0, 67,255,179, 1, 82, 0, 21,180, 2, 15, 5, 38, 2,184,255, -179,180, 18, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, - 0,118, 0,102, 1, 82, 0, 19, 64, 11, 2, 21, 5, 38, 2,102, 15, 18, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, - 0, 0, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 2, 15, 5, 38, 2, 0, 21, 15, - 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 53, 2, 38, 0, 36, 0, 0, 1, 7, 1, 82,255,255, - 1, 82, 0, 21,180, 2, 15, 5, 38, 2,184,255,254,180, 16, 25, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, - 4,172, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25,182, 3, 2, 19, 5, 38, 3, 2,184,255,255,180, - 21, 25, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 4, 2, 38, 0, 36, 0, 0, 1, 6, - 1, 80, 0,125, 0, 52, 64, 26, 3, 2,239, 26, 1,223, 26, 1, 80, 26, 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, - 3, 2,184,255,255,180, 18, 24, 4, 7, 37, 1, 43, 53, 53, 0, 17, 93, 93, 93, 93, 93, 93, 93, 53, 53, 0, 2, 0, 0, 0, 0, - 4,186, 5,182, 0, 15, 0, 19, 0,134, 64, 84, 6, 8, 11, 14, 72, 16, 3, 19, 4,201, 19,217, 19,233, 19, 3, 55, 19, 1, 19, - 6, 10, 14, 90, 1, 17, 1, 15, 1, 1, 79, 1, 95, 1,127, 1,143, 1,239, 1,255, 1, 6, 6, 1, 11, 11, 1, 6, 3, 5, 8, - 0, 21, 4, 5, 3, 95, 16, 13, 95, 10,159, 16,207, 16, 2,104, 10, 1, 16, 10, 16, 10, 14, 19, 9, 95, 6, 3, 14, 95, 4, 1, - 0, 47, 51,225, 63,225, 50, 18, 57, 57, 47, 47, 93, 93, 16,225, 16,225, 1, 47, 51, 16,206, 50, 17, 23, 57, 47, 47, 47, 93,113, - 17, 51, 16,225, 50, 17, 51, 93, 93, 17, 18, 57, 57, 43, 49, 48, 33, 33, 17, 33, 3, 35, 1, 33, 21, 33, 17, 33, 21, 33, 17, 33, - 1, 51, 17, 35, 4,186,253,115,254,223, 96,172, 1, 82, 3,104,254, 35, 1,182,254, 74, 1,221,252,119,252,106, 1,197,254, 59, - 5,182,164,254, 60,162,253,248, 1,198, 2,168,255,255, 0,129,254, 20, 4,156, 5,203, 2, 38, 0, 38, 0, 0, 1, 6, 0,122, - 80, 0, 0, 11,182, 1, 40, 22, 34, 6, 11, 37, 1, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, - 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,160,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, 0,118, 0, 63, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, - 1, 39, 12, 15, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, 1, 7, - 1, 75, 0, 35, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 11, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, - 0, 0, 4, 35, 7, 43, 2, 38, 0, 40, 0, 0, 1, 7, 0,106, 0, 25, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 0, - 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, - 0, 67,255,148, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,150,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 0,118, 0,119, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1,120, - 12, 15, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, 0, 0, 3,233, 7,115, 2, 38, 0, 44, 0, 0, 1, 7, 1, 75, - 0, 0, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 1, 18, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, 0, 0, - 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 2, 18, 22, - 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 0, 0, 0, 4,123, 5,182, 0, 12, 0, 23, 0, 73, 64, 44, 16, 0, - 21, 91, 9, 25, 14, 18, 90, 4, 2, 0, 0,224, 0,240, 0, 3, 0, 17, 2, 95, 14,104, 3, 1, 47, 3,159, 3,207, 3, 3, 3, - 3, 18, 13, 96, 5, 3, 18, 96, 0, 18, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 51,225, 50, 1, 47, 93,198, 51,225, 50, 16,222, -225, 17, 57, 49, 48, 51, 17, 35, 53, 51, 17, 33, 32, 0, 17, 16, 0, 33, 3, 17, 33, 21, 33, 17, 51, 32, 17, 16, 33,135,135,135, - 1, 86, 1, 61, 1, 97,254,146,254,167,114, 1,124,254,132, 96, 2, 20,254, 19, 2,147,162, 2,129,254,134,254,173,254,151,254, -128, 5, 23,254, 30,162,254, 13, 2, 67, 2, 52,255,255, 0,135, 0, 0, 4, 68, 7, 53, 2, 38, 0, 49, 0, 0, 1, 7, 1, 82, - 0, 4, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 4, 17, 26, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, - 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0, 67,255,175, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,174,180, 23, 20, - 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 0,118, 0, 90, - 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2, 89, 20, 23, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, - 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,255,180, 26, 20, 2, 7, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 53, 2, 38, 0, 50, 0, 0, 1, 7, 1, 82, 0, 8, 1, 82, - 0, 19, 64, 11, 2, 20, 5, 38, 2, 6, 21, 30, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 43, - 2, 38, 0, 50, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 3, 2, 24, 5, 38, 3, 2, 0, 26, 30, 2, 7, 37, 1, - 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,190, 1, 45, 4, 14, 4,123, 0, 11, 0, 92,185, 0, 6,255,240,179, 15, 22, 72, 6, -184,255,248, 64, 24, 10, 14, 72, 0, 16, 15, 22, 72, 0, 8, 10, 14, 72, 9, 16, 15, 22, 72, 9, 8, 10, 14, 72, 3,184,255,240, -179, 15, 22, 72, 3,184,255,248, 64, 20, 10, 14, 72,128, 3,192, 3,208, 3,240, 3, 4, 31, 3, 1, 3,223, 0, 1, 0, 0, 25, - 47, 93, 1, 47, 93, 93, 49, 48, 0, 43, 43, 43, 43, 1, 43, 43, 43, 43, 1, 1, 55, 1, 1, 23, 1, 1, 7, 1, 1, 39, 1,252, -254,194,105, 1, 61, 1, 66,104,254,191, 1, 63,102,254,190,254,195,102, 2,211, 1, 63,105,254,194, 1, 62,103,254,191,254,192, -102, 1, 61,254,197,103, 0, 3, 0, 80,255,180, 4,133, 5,252, 0, 18, 0, 25, 0, 33, 0, 96,185, 0, 19,255,224, 64, 56, 9, - 23, 72, 26, 32, 9, 23, 72, 26, 20, 27, 19, 4, 24, 32, 91, 12, 9, 0, 3, 4, 5, 11, 14, 35, 24, 91, 2, 31, 5, 47, 5, 2, - 5, 27, 19, 26, 20, 4, 22, 29, 95, 0, 3, 12, 9, 4, 7, 1, 17, 19, 22, 95, 10, 7, 4, 0, 63, 51,225, 63, 51, 18, 23, 57, -225, 17, 23, 57, 1, 47, 93, 51,225, 16,222, 50, 17, 23, 57,225, 17, 23, 57, 49, 48, 0, 43, 43, 37, 7, 39, 55, 38, 17, 16, 33, - 50, 23, 55, 23, 7, 22, 17, 16, 0, 35, 34, 3, 1, 38, 35, 32, 17, 20, 1, 1, 22, 51, 50, 18, 17, 52, 1, 53, 92,137,121,117, - 2, 22,186,124, 92,137,125,115,254,236,255,189,108, 2, 3, 80,136,254,175, 2,122,254, 0, 80,133,173,161, 74,150, 78,197,184, - 1, 96, 2,238,105,152, 78,201,188,254,180,254,151,254,120, 1,155, 3, 68, 94,253,180,212, 2, 28,252,192, 86, 1, 34, 1, 44, -209, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 0, 67,255,187, 1, 82, 0, 21,180, 1, 15, 5, - 38, 1,184,255,187,180, 18, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, - 0, 0, 1, 7, 0,118, 0, 76, 1, 82, 0, 19, 64, 11, 1, 21, 5, 38, 1, 76, 15, 18, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, 0, 56, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, - 1, 0, 21, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7, 43, 2, 38, 0, 56, 0, 0, 1, 7, - 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 19, 5, 38, 2, 1, 1, 21, 25, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0,118, 0, 76, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, - 1, 77, 9, 12, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,176, 0, 0, 4, 70, 5,182, 0, 11, 0, 19, 0, 62, 64, 36, - 16, 91,239, 8,255, 8, 2, 8, 21, 12, 5, 1, 90, 0, 2,144, 2,160, 2, 3, 2, 12, 96, 0, 19, 96, 5, 0, 5, 0, 5, 1, - 3, 3, 1, 18, 0, 63, 63, 18, 57, 57, 47, 47, 16,225, 16,225, 1, 47, 93,225, 50, 50, 16,222, 93,225, 49, 48, 1, 17, 35, 17, - 51, 21, 51, 32, 17, 20, 4, 33, 39, 51, 50, 54, 53, 16, 33, 35, 1,106,186,186,218, 2, 2,254,235,254,248,191,170,198,171,254, -174,201, 1, 61,254,195, 5,182,252,254, 84,219,246,158,144,153, 1, 23, 0, 1, 0,164,255,236, 4,127, 6, 31, 0, 42, 0,114, - 64, 75, 16, 22, 1, 11, 70, 32, 15, 71, 27, 29, 0, 1, 15, 0, 1, 79, 32, 95, 32, 2, 29, 32, 1, 15, 32, 1, 15, 27, 31, 27, -191, 27,207, 27,223, 27, 5, 0, 32, 27, 27, 32, 0, 3, 21, 5, 71, 38, 44, 20, 71, 0, 21,160, 21,176, 21, 3, 21, 5, 32, 15, - 3, 24, 3, 80, 1, 41, 22, 17, 80, 24, 1, 21, 21, 0, 63, 63,225, 63, 51,225, 18, 23, 57, 1, 47, 93,225, 16,222,225, 18, 23, - 57, 47, 47, 47, 93, 93, 93, 93, 93, 93, 16,225, 16,225, 49, 48, 0, 93, 37, 53, 22, 51, 50, 53, 52, 38, 39, 38, 38, 53, 52, 55, - 54, 53, 52, 35, 34, 21, 17, 35, 17, 16, 33, 50, 22, 21, 20, 7, 6, 6, 21, 20, 22, 23, 22, 22, 21, 20, 6, 35, 34, 1,223,143, -134,213, 91, 98,123,100,129,129,227,242,182, 1,168,194,217,133, 84, 49, 58,122,144, 94,200,183,182, 49,166, 86,174, 81,102, 61, - 78,122, 87,117,106,106, 90,164,215,251, 78, 4,176, 1,111,159,148,132,117, 74, 62, 33, 39, 60, 81, 95,156, 98,162,171,255,255, - 0,135,255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0, 67,171, 0, 0, 21,180, 2, 34, 17, 38, 2,184,255,205,180, - 37, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 0,118, - 84, 0, 0, 23, 64, 14, 2, 40, 17, 38, 2, 80, 34, 1,118, 34, 37, 8, 22, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,135, -255,236, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 1, 6, 1, 75, 8, 0, 0, 23, 64, 14, 2, 34, 17, 38, 2, 96, 40, 1, 42, 40, - 34, 8, 22, 37, 1, 43, 93, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,227, 2, 38, 0, 68, 0, 0, 1, 6, 1, 82, - 10, 0, 0, 31, 64, 20, 2, 34, 17, 38, 2,128, 35, 1,112, 35, 1, 96, 35, 1, 43, 35, 44, 8, 22, 37, 1, 43, 93, 93, 93, 53, - 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,217, 2, 38, 0, 68, 0, 0, 1, 6, 0,106, 12, 0, 0, 35, 64, 22, 3, 2, - 38, 17, 38, 3, 2, 80, 40, 1, 64, 40, 1, 48, 40, 1, 45, 40, 44, 8, 22, 37, 1, 43, 93, 93, 93, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,135,255,236, 4, 2, 6,135, 2, 38, 0, 68, 0, 0, 1, 6, 1, 80,255, 0, 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, - 2, 32, 37, 43, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0, 45,255,236, 4,162, 4, 94, 0, 34, 0, 41, 0, 51, - 0,104, 64, 60, 27, 10, 35, 17, 71, 0, 16, 51,192, 51, 2, 51, 51, 32, 36, 70, 23, 16, 64, 10, 22, 72, 11, 16, 1, 16, 53, 45, - 71, 6,224, 32,240, 32, 2, 32, 42, 17, 80, 0, 35, 35, 8, 27, 20, 48, 80, 22, 25, 25, 29, 22, 39, 10, 3, 80, 12, 5, 8, 16, - 0, 63, 51, 51,225, 50, 50, 63, 51, 17, 51,225, 50, 50, 17, 57, 47, 51,225, 50, 1, 47, 93, 51,225, 16,222, 93, 43, 50,225, 17, - 57, 47, 93, 51,225, 50, 57, 57, 49, 48, 1, 53, 52, 35, 34, 7, 39, 54, 51, 50, 23, 54, 51, 50, 18, 21, 21, 33, 22, 22, 51, 50, - 55, 21, 6, 35, 34, 39, 6, 35, 34, 38, 53, 16, 37, 37, 33, 52, 38, 35, 34, 6, 3, 7, 6, 21, 20, 22, 51, 50, 54, 53, 2, 10, -139,107,104, 57,131,145,188, 58, 78,162,137,172,254, 16, 3,128,105,111,122,107,134,222, 94,105,196,115,141, 1, 72, 1, 65, 1, - 60, 81, 71, 68, 90,180, 88,217, 64, 55, 82,104, 2,150, 69,236, 82,137, 96,178,178,254,241,220,113,192,183, 76,162, 73,229,229, -173,154, 1, 76, 16, 7,141,164,156,254,238, 7, 17,208, 83, 95,165,146,255,255, 0,172,254, 20, 4, 37, 4, 94, 2, 38, 0, 70, - 0, 0, 1, 6, 0,122, 49, 0, 0, 11,182, 1, 47, 20, 32, 15, 0, 37, 1, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, - 2, 38, 0, 72, 0, 0, 1, 6, 0, 67,212, 0, 0, 21,180, 2, 23, 17, 38, 2,184,255,212,180, 26, 23, 11, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 0,118, 82, 0, 0, 31, 64, 20, 2, 29, - 17, 38, 2,160, 23, 1, 16, 23, 1, 0, 23, 1, 82, 23, 26, 11, 0, 37, 1, 43, 93, 93, 93, 53, 0, 43, 53, 0,255,255, 0,133, -255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 1, 75, 16, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 16, 29, 23, 11, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,217, 2, 38, 0, 72, 0, 0, 1, 6, 0,106, 18, 0, 0, 23, - 64, 13, 3, 2, 27, 17, 38, 3, 2, 17, 29, 33, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,197, 0, 0, 4, 51, - 6, 33, 2, 38, 0,243, 0, 0, 1, 6, 0, 67,171, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,150,180, 13, 10, 7, 5, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 6, 33, 2, 38, 0,243, 0, 0, 1, 6, 0,118,113, 0, 0, 19, 64, 11, - 1, 16, 17, 38, 1, 91, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 6, 33, 2, 38, 0,243, - 0, 0, 1, 6, 1, 75, 0, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,235,180, 16, 10, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,197, 0, 0, 4, 51, 5,217, 2, 38, 0,243, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 14, 17, 38, 2, 1, -184,255,234,180, 16, 20, 7, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0,135,255,236, 4, 70, 6, 35, 0, 26, 0, 36, - 0,112,185, 0, 11,255,224, 64, 65, 15, 20, 72, 6, 32, 15, 19, 72, 1, 34, 72, 16, 14, 11, 3, 6, 8, 5, 13, 5, 13, 5, 13, - 22,239, 16,255, 16, 2, 16, 38, 29, 72, 0, 22,224, 22,240, 22, 3, 22, 0, 27, 80, 25, 14, 6, 11, 3, 48, 25, 1, 4, 25, 4, - 25, 9, 31, 80, 19, 22, 12, 12, 9, 1, 0, 63, 51, 47, 63,225, 18, 57, 57, 47, 47, 93, 23, 57, 16,225, 50, 1, 47, 93,225, 16, -206, 93, 17, 57, 57, 47, 47, 18, 23, 57, 16,225, 50, 49, 48, 43, 0, 43, 1, 55, 38, 39, 5, 39, 55, 38, 39, 55, 22, 23, 55, 23, - 7, 0, 17, 16, 0, 35, 34, 0, 53, 52, 18, 51, 50, 7, 32, 17, 16, 33, 50, 54, 53, 52, 38, 3,121, 8, 58,184,255, 0, 73,217, -104, 68, 69,143,103,227, 74,194, 1, 45,254,255,225,213,254,248,241,214,211,187,254,226, 1, 32,154,135,155, 3, 84, 4,226,165, -153,114,131, 71, 38,123, 70, 78,138,113,117,254,221,254, 45,254,235,254,196, 1, 11,230,234, 1, 4,148,254,160,254,172,199,196, -129,168,255,255, 0,160, 0, 0, 4, 45, 5,227, 2, 38, 0, 81, 0, 0, 1, 6, 1, 82, 6, 0, 0, 19, 64, 11, 1, 17, 17, 38, - 1, 5, 18, 27, 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, - 0, 67,216, 0, 0, 21,180, 2, 20, 17, 38, 2,184,255,217,180, 23, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115, -255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 0,118, 80, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 81, 20, 23, 3, 9, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 75,251, 0, 0, 21, -180, 2, 20, 17, 38, 2,184,255,252,180, 26, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 5,227, - 2, 38, 0, 82, 0, 0, 1, 6, 1, 82, 0, 0, 0, 19, 64, 11, 2, 20, 17, 38, 2, 0, 21, 30, 3, 9, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 0, 82, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 24, 17, 38, - 3, 2,184,255,249,180, 26, 30, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 3, 0,152, 0,248, 4, 51, 4,172, 0, 7, - 0, 11, 0, 19, 0, 83, 64, 55, 64, 10, 1, 15, 10, 1, 10, 10, 14, 18, 6, 80, 9,240, 9, 2, 9, 9, 2,172, 31, 6, 95, 6, -159, 6, 3, 6, 12,175, 0, 16, 64, 16,112, 16,144, 16,160, 16,176, 16,240, 16, 7, 16, 16, 8, 4,175, 0, 8,173, 9,179, 0, - 63,225,220,225, 16,200, 47, 93,225, 1, 47, 93,225, 51, 47, 93, 17, 51, 50, 50, 47, 93, 93, 49, 48, 1, 50, 21, 20, 35, 34, 53, - 52, 1, 53, 33, 21, 5, 50, 21, 20, 35, 34, 53, 52, 2,100,115,115,114,254,166, 3,155,254, 49,115,115,114, 4,172,125,125,125, -125,253,219,150,150,149,125,125,125,125, 0, 3, 0,115,255,170, 4, 88, 4,156, 0, 19, 0, 27, 0, 35, 0,110,181, 21, 16, 9, - 21, 72, 29,184,255,240,179, 9, 21, 72, 20,184,255,240, 64, 54, 15, 20, 72, 28, 16, 15, 20, 72, 28, 21, 29, 20, 4, 26, 34, 72, - 13, 10, 0, 3, 4, 5, 12, 15, 37, 26, 72, 2, 0, 5, 1, 5, 29, 20, 28, 21, 4, 23, 31, 80, 10, 13, 3, 0, 4, 8, 1, 18, - 22, 23, 80, 11, 8, 16, 0, 63, 51,225, 63, 51, 18, 23, 57,225, 17, 23, 57, 1, 47, 93, 51,225, 16,222, 50, 17, 23, 57,225, 17, - 23, 57, 49, 48, 0, 43, 43, 1, 43, 43, 37, 7, 39, 55, 38, 17, 16, 0, 51, 50, 23, 55, 23, 7, 22, 17, 16, 0, 35, 34, 3, 1, - 38, 35, 34, 6, 21, 20, 1, 1, 22, 51, 50, 54, 53, 52, 1,121, 76,131, 84,139, 1, 10,235,128,108, 76,131, 84,137,254,243,233, -129,125, 1,150, 66, 90,161,142, 2, 57,254,107, 61, 93,161,142, 33,119, 84,131,158, 1, 8, 1, 10, 1, 45, 57,119, 84,131,156, -254,254,254,241,254,212, 1, 40, 2,144, 35,207,209,180, 1,190,253,115, 33,211,209,164,255,255, 0,160,255,236, 4, 45, 6, 33, - 2, 38, 0, 88, 0, 0, 1, 6, 0, 67,179, 0, 0, 21,180, 1, 18, 17, 38, 1,184,255,179,180, 21, 18, 6, 16, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 0,118, 82, 0, 0, 19, 64, 11, 1, 24, - 17, 38, 1, 82, 18, 21, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, - 1, 6, 1, 75, 8, 0, 0, 19, 64, 11, 1, 18, 17, 38, 1, 8, 24, 18, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, -255,236, 4, 45, 5,217, 2, 38, 0, 88, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 2, 1, 22, 17, 38, 2, 1, 1, 24, 28, - 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 0,118, - 76, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 77, 23, 26, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0,158,254, 20, 4, 68, - 6, 20, 0, 19, 0, 30, 0, 59, 64, 36, 26, 72,239, 5,255, 5, 2, 5, 32, 11, 17, 19, 21, 4, 14, 71, 0, 15,176, 15, 2, 15, - 16, 0, 14, 27, 10, 24, 80, 8, 22, 0, 28, 80, 2, 16, 0, 63,225, 50, 63,225, 50, 63, 63, 1, 47, 93,225, 23, 50, 16,222, 93, -225, 49, 48, 1, 54, 51, 50, 18, 17, 16, 2, 35, 34, 39, 35, 22, 21, 17, 35, 17, 51, 17, 7, 19, 21, 20, 22, 51, 32, 17, 16, 33, - 34, 6, 1, 84,110,212,201,229,230,200,207,115, 12, 12,182,182, 8, 8,139,152, 1, 16,254,238,152,133, 3,182,168,254,213,254, -244,254,242,254,211,159,129, 33,254, 43, 8, 0,254, 54,148,254,154, 41,227,193, 1,166, 1,158,176, 0,255,255, 0, 82,254, 20, - 4,121, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106, 8, 0, 0, 23, 64, 13, 2, 1, 27, 17, 38, 2, 1, 8, 29, 33, 0, 9, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 6,193, 2, 38, 0, 36, 0, 0, 1, 7, 1, 77, 0, 0, - 1, 82, 0, 21,180, 2, 17, 5, 38, 2,184,255,255,180, 15, 16, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, - 4, 2, 5,111, 2, 38, 0, 68, 0, 0, 1, 6, 1, 77,247, 0, 0, 19, 64, 11, 2, 36, 17, 38, 2, 24, 34, 35, 8, 22, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, 7, 64, 2, 38, 0, 36, 0, 0, 1, 7, 1, 78,255,253, 1, 82, 0, 21, -180, 2, 18, 5, 38, 2,184,255,253,180, 20, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 5,238, - 2, 38, 0, 68, 0, 0, 1, 6, 1, 78,245, 0, 0, 19, 64, 11, 2, 37, 17, 38, 2, 22, 39, 34, 8, 22, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0, 33,254, 57, 4,190, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 81, 1,143, 0, 0, 0, 24, 64, 16, 2, 32, - 23, 1, 16, 23, 1, 0, 23, 1, 0, 23, 23, 0, 0, 37, 1, 43, 93, 93, 93, 53,255,255, 0,135,254, 57, 4, 82, 4, 94, 2, 38, - 0, 68, 0, 0, 1, 7, 1, 81, 1, 35, 0, 0, 0, 36, 64, 25, 2,128, 42, 1,112, 42, 1, 96, 42, 1, 32, 42, 1, 16, 42, 1, - 0, 42, 1, 0, 42, 42, 0, 0, 37, 1, 43, 93, 93, 93, 93, 93, 93, 53,255,255, 0,129,255,236, 4,156, 7,115, 2, 38, 0, 38, - 0, 0, 1, 7, 0,118, 0,242, 1, 82, 0, 19, 64, 11, 1, 28, 5, 38, 1,202, 22, 25, 6, 11, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, 1, 7, 0,118, 0,160, 0, 0, 0, 19, 64, 11, 1, 26, 17, 38, - 1,158, 20, 23, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129,255,236, 4,156, 7,115, 2, 38, 0, 38, 0, 0, 1, 7, - 1, 75, 0,160, 1, 82, 0, 39, 64, 26, 1, 22, 5, 38, 1,208, 28, 1,176, 28, 1,128, 28, 1,112, 28, 1, 80, 28, 1,120, 28, - 22, 6, 11, 37, 1, 43, 93, 93, 93, 93, 93, 53, 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, - 1, 6, 1, 75, 84, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 82, 26, 20, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129, -255,236, 4,156, 7, 55, 2, 38, 0, 38, 0, 0, 1, 7, 1, 79, 0,164, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1,124, 28, 24, - 6, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 5,229, 2, 38, 0, 70, 0, 0, 1, 6, 1, 79, 84, 0, - 0, 19, 64, 11, 1, 24, 17, 38, 1, 82, 26, 22, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,129,255,236, 4,156, 7,115, - 2, 38, 0, 38, 0, 0, 1, 7, 1, 76, 0,154, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1,114, 30, 22, 6, 11, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,172,255,236, 4, 37, 6, 33, 2, 38, 0, 70, 0, 0, 1, 6, 1, 76, 92, 0, 0, 19, 64, 11, 1, 24, - 17, 38, 1, 90, 28, 20, 15, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135, 0, 0, 4,123, 7,115, 2, 38, 0, 39, 0, 0, - 1, 7, 1, 76,255,247, 1, 82, 0, 21,180, 2, 20, 5, 38, 2,184,255,221,180, 24, 16, 0, 5, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 79,255,236, 5, 35, 6, 20, 0, 38, 0, 71,198, 0, 1, 7, 2, 56, 2, 68, 0, 0, 0, 30, 64, 11, 2, 2,127, 30, - 1,111, 30, 1, 79, 30, 1,184, 2,136,180, 30, 34, 6, 16, 37, 1, 43, 93, 93, 93, 53, 0, 53,255,255, 0, 0, 0, 0, 4,123, - 5,182, 2, 6, 0,146, 0, 0, 0, 2, 0,137,255,236, 4,203, 6, 20, 0, 26, 0, 37, 0, 89, 64, 55, 16, 6, 0, 12, 15, 18, - 4, 27, 71, 23, 21,144, 25,160, 25, 2, 25, 39, 33, 72, 0, 6,224, 6,240, 6, 3, 6, 24, 16, 79, 21, 17, 17, 19, 12, 31, 80, - 0, 9, 16, 9, 32, 9, 3, 9, 9, 19, 0, 35, 80, 3, 22, 26, 21, 0, 63, 63,225, 63, 57, 47, 93,225, 50, 18, 57, 47, 51,225, - 50, 1, 47, 93,225, 16,222, 93, 50, 50,225, 23, 50, 17, 57, 49, 48, 37, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 23, 51, 38, 53, - 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 3, 53, 52, 38, 35, 32, 17, 16, 33, 50, 54, 3,129, 8,113,209,201,229,230,200, -208,114, 12, 12,254,133, 1,123,182,156,156,147, 35,139,152,254,240, 1, 18,151,134,147,167, 1, 32, 1, 2, 1, 4, 1, 35,159, -126, 35,158,137,182,182,137,251, 43, 1,231, 39,216,184,254,110,254,119,166, 0,255,255, 0,217, 0, 0, 4, 35, 6,193, 2, 38, - 0, 40, 0, 0, 1, 7, 1, 77, 0, 10, 1, 82, 0, 21,180, 1, 14, 5, 38, 1,184,255,242,180, 12, 13, 1, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,111, 2, 38, 0, 72, 0, 0, 1, 6, 1, 77, 20, 0, 0, 19, 64, 11, 2, 25, - 17, 38, 2, 19, 23, 24, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 64, 2, 38, 0, 40, 0, 0, - 1, 7, 1, 78, 0, 29, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 5, 17, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,133,255,236, 4, 72, 5,238, 2, 38, 0, 72, 0, 0, 1, 6, 1, 78, 16, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 15, 28, 23, - 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 26, 2, 38, 0, 40, 0, 0, 1, 7, 1, 79, 0, 35, - 1, 53, 0, 19, 64, 11, 1, 16, 5, 38, 1, 11, 18, 14, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, - 5,229, 2, 38, 0, 72, 0, 0, 1, 6, 1, 79, 23, 0, 0, 19, 64, 11, 2, 27, 17, 38, 2, 23, 29, 25, 11, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,217,254, 57, 4, 35, 5,182, 2, 38, 0, 40, 0, 0, 1, 7, 1, 81, 0,205, 0, 0, 0, 14,183, 1, - 1,181, 18, 12, 1, 0, 37, 1, 43, 53, 0, 53,255,255, 0,133,254, 88, 4, 72, 4, 94, 2, 38, 0, 72, 0, 0, 1, 7, 1, 81, - 0,227, 0, 31, 0, 14,183, 2, 2,227, 29, 23, 11, 0, 37, 1, 43, 53, 0, 53,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, - 0, 40, 0, 0, 1, 7, 1, 76, 0, 35, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 11, 20, 12, 1, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, 1, 6, 1, 76, 25, 0, 0, 19, 64, 11, 2, 27, 17, 38, - 2, 25, 31, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7,115, 2, 38, 0, 42, 0, 0, 1, 7, - 1, 75, 0, 80, 1, 82, 0, 19, 64, 11, 1, 25, 5, 38, 1, 89, 31, 25, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, -254, 20, 4,102, 6, 33, 2, 38, 0, 74, 0, 0, 1, 6, 1, 75,247, 0, 0, 21,180, 3, 55, 17, 38, 3,184,255,248,180, 61, 55, - 22, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7, 64, 2, 38, 0, 42, 0, 0, 1, 7, 1, 78, 0, 98, - 1, 82, 0, 27, 64, 17, 1, 28, 5, 38, 1, 16, 30, 1, 0, 30, 1,106, 30, 25, 7, 1, 37, 1, 43, 93, 93, 53, 0, 43, 53, 0, -255,255, 0,102,254, 20, 4,102, 5,238, 2, 38, 0, 74, 0, 0, 1, 6, 1, 78,243, 0, 0, 21,180, 3, 58, 17, 38, 3,184,255, -243,180, 60, 55, 22, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,255,236, 4, 70, 7, 55, 2, 38, 0, 42, 0, 0, 1, 7, - 1, 79, 0,109, 1, 82, 0, 19, 64, 11, 1, 29, 5, 38, 1,118, 31, 27, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, -254, 20, 4,102, 5,229, 2, 38, 0, 74, 0, 0, 1, 6, 1, 79,255, 0, 0, 19, 64, 11, 3, 59, 17, 38, 3, 0, 61, 57, 22, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,117,254, 59, 4, 70, 5,203, 2, 38, 0, 42, 0, 0, 1, 6, 2, 57, 57, 0, 0, 19, - 64, 11, 1, 27, 20, 39, 1, 65, 25, 28, 7, 1, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102,254, 20, 4,102, 6, 33, 2, 38, - 0, 74, 0, 0, 1, 6, 2, 58, 45, 0, 0, 19, 64, 11, 3, 57, 17, 38, 3, 45, 58, 55, 22, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,135, 0, 0, 4, 70, 7,115, 2, 38, 0, 43, 0, 0, 1, 7, 1, 75, 0, 0, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, - 1, 0, 18, 12, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, 0, 0, 4, 45, 7,170, 2, 38, 0, 75, 0, 0, 1, 7, - 1, 75, 0, 14, 1,137, 0, 19, 64, 11, 1, 18, 2, 38, 1, 14, 24, 18, 7, 16, 37, 1, 43, 53, 0, 43, 53, 0, 0, 2, 0, 0, - 0, 0, 4,205, 5,182, 0, 19, 0, 23, 0, 88, 64, 48, 20, 4, 12, 90, 9, 7, 11, 25, 23, 3, 15, 90, 18, 0,224, 16,240, 16, - 2, 16, 14, 95, 23, 22, 10,104, 18, 1, 18, 96, 19, 7, 3, 19,104, 23, 1, 23, 19, 23, 19, 1, 16, 11, 18, 5, 1, 3, 0, 63, - 51, 63, 51, 18, 57, 57, 47, 47, 93, 17, 51, 51, 16,225, 93, 50, 50, 16,225, 1, 47, 93, 51, 51,225, 50, 50, 16,222, 50, 50,225, - 50, 50, 49, 48, 19, 53, 51, 21, 33, 53, 51, 21, 51, 21, 35, 17, 35, 17, 33, 17, 35, 17, 35, 53, 1, 53, 33, 21,135,187, 2, 73, -187,135,135,187,253,183,187,135, 3,139,253,183, 4,195,243,243,243,243,150,251,211, 2,170,253, 86, 4, 45,150,254,139,223,223, - 0, 1, 0, 4, 0, 0, 4, 45, 6, 20, 0, 27, 0, 82, 64, 49, 17, 8, 0, 71,144, 27,160, 27, 2, 27, 29, 15, 19, 20, 3, 7, - 71, 12, 10, 0, 8,176, 8, 2, 8, 18, 10, 79, 15, 11, 11, 13, 20, 3, 80, 0, 23, 16, 23, 32, 23, 3, 23, 23, 13, 0, 8, 0, - 21, 0, 63, 50, 63, 57, 47, 93,225, 50, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 51,225, 23, 50, 16,222, 93,225, 18, 57, 49, 48, - 33, 17, 16, 35, 34, 6, 21, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 54, 51, 50, 22, 21, 17, 3,119,236,162, -147,182,156,156,184, 1,162,254, 92, 10, 10,108,238,192,189, 2,154, 1, 4,187,211,253,240, 4,213,137,182,182,137,184,144,168, -191,210,253, 92,255,255, 0,225, 0, 0, 3,233, 7, 53, 2, 38, 0, 44, 0, 0, 1, 7, 1, 82, 0, 0, 1, 82, 0, 19, 64, 11, - 1, 12, 5, 38, 1, 0, 13, 22, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,227, 2, 38, 0,243, - 0, 0, 1, 6, 1, 82,253, 0, 0, 21,180, 1, 10, 17, 38, 1,184,255,231,180, 11, 20, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,225, 0, 0, 3,233, 6,193, 2, 38, 0, 44, 0, 0, 1, 7, 1, 77, 0, 2, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, - 1, 2, 12, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,111, 2, 38, 0,243, 0, 0, 1, 6, - 1, 77, 0, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,234,180, 10, 11, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225, - 0, 0, 3,233, 7, 64, 2, 38, 0, 44, 0, 0, 1, 7, 1, 78, 0, 0, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 1, 17, 12, - 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197, 0, 0, 4, 51, 5,238, 2, 38, 0,243, 0, 0, 1, 6, 1, 78, 25, 0, - 0, 19, 64, 11, 1, 13, 17, 38, 1, 3, 15, 0, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225,254, 57, 3,233, 5,182, - 2, 38, 0, 44, 0, 0, 1, 6, 1, 81, 8, 0, 0, 14,183, 1, 1, 9, 18, 12, 1, 0, 37, 1, 43, 53, 0, 53,255,255, 0,197, -254, 57, 4, 51, 6, 14, 2, 38, 0, 76, 0, 0, 1, 6, 1, 81, 25, 0, 0, 14,183, 2, 2, 3, 25, 19, 16, 14, 37, 1, 43, 53, - 0, 53,255,255, 0,225, 0, 0, 3,233, 7, 55, 2, 38, 0, 44, 0, 0, 1, 7, 1, 79, 0, 0, 1, 82, 0, 19, 64, 11, 1, 16, - 5, 38, 1, 1, 18, 14, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,197, 0, 0, 4, 51, 4, 74, 0, 9, 0, 41, 64, 21, - 5, 4, 71, 8, 1, 86, 9, 1, 9, 9, 10, 11, 4, 9, 78, 7, 21, 0, 78, 2, 15, 0, 63,225, 63,225, 50, 17, 18, 1, 57, 47, - 93, 51, 51,225, 50, 49, 48, 1, 37, 53, 33, 17, 5, 21, 33, 53, 37, 2, 29,254,243, 1,195, 1, 96,252,146, 1, 88, 3,186, 21, -123,252, 69, 20,123,123, 20, 0, 0, 2, 0,156,255,236, 4, 35, 5,182, 0, 3, 0, 15, 0, 66, 64, 40, 2, 90, 1, 10, 90, 11, - 31, 4, 1,159, 11,175, 11, 2, 0, 1,224, 1,240, 1, 3, 1, 4, 11, 11, 4, 1, 3, 16, 17, 7, 96, 5, 14, 19, 10, 1, 3, - 0, 18, 0, 63, 63, 51, 63, 51,225, 17, 18, 1, 23, 57, 47, 47, 47, 93, 93, 93, 16,225, 16,225, 49, 48, 51, 17, 51, 17, 55, 53, - 22, 51, 50, 17, 17, 51, 17, 16, 33, 34,156,186,150, 93, 93,194,187,254,147,133, 5,182,250, 74, 23,163, 45, 1, 27, 4, 14,251, -254,254, 56, 0, 0, 4, 0,188,254, 20, 4, 14, 6, 14, 0, 8, 0, 17, 0, 21, 0, 36, 0, 88, 64, 50, 2, 20, 71, 21, 7, 21, - 16, 27, 71, 32, 11, 32, 0, 30, 1, 0, 22, 1, 0, 21, 1, 21, 22, 30, 32, 32, 30, 22, 21, 4, 37, 38, 25, 80, 23, 35, 27, 28, - 78, 18, 30, 15, 21, 21, 14, 5, 83, 9, 0, 0, 0, 63, 50,229, 50, 63, 63, 51,225, 63, 51,225, 17, 18, 1, 23, 57, 47, 47, 47, - 47, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 49, 48, 1, 50, 21, 20, 6, 35, 34, 53, 52, 33, 50, 21, 20, 6, 35, 34, - 53, 52, 1, 51, 17, 35, 1, 53, 22, 51, 50, 53, 17, 39, 53, 33, 17, 20, 6, 35, 34, 1, 39,106, 63, 43,107, 2,228,106, 63, 43, -107,253,150,182,182, 1, 43, 88,102,164,215, 1,141,170,151,123, 6, 14,114, 58, 57,115,114,114, 58, 57,115,114,254, 60,251,182, -254, 55,154, 39,215, 4, 57, 21,123,251, 65,182,193, 0,255,255, 0,137,255,236, 4,190, 7,115, 2, 38, 0, 45, 0, 0, 1, 7, - 1, 75, 1, 12, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 0, 20, 14, 7, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135, -254, 20, 3,198, 6, 33, 2, 38, 1, 75, 20, 0, 1, 6, 2, 55, 0, 0, 0, 21,180, 1, 25, 23, 39, 1,184,255,116,180, 16, 26, - 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,211,254, 59, 4,174, 5,182, 2, 38, 0, 46, 0, 0, 1, 6, 2, 57, 27, 0, - 0, 21,180, 1, 15, 20, 39, 1,184,255,193,180, 13, 16, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,215,254, 59, 4,139, - 6, 20, 2, 38, 0, 78, 0, 0, 1, 6, 2, 57, 2, 0, 0, 21,180, 1, 17, 23, 39, 1,184,255,183,180, 15, 18, 10, 5, 37, 1, - 43, 53, 0, 43, 53, 0, 0, 1, 0,215, 0, 0, 4,139, 4, 74, 0, 14, 0,119, 64, 11, 25, 6, 41, 6, 57, 6, 3, 8, 6, 1, - 4,184,255,224, 64, 62, 16, 20, 72, 70, 4, 86, 4, 2, 9, 2, 1, 9, 1, 1, 27, 7, 43, 7, 59, 7, 3, 7, 4, 5, 2, 3, - 3, 6, 5, 32, 16, 19, 72, 0, 5, 96, 5, 2, 5, 5, 16, 13, 0, 9, 70, 0, 10, 96, 10, 2, 10, 4, 7, 7, 0, 2, 10, 5, - 21, 11, 2, 15, 0, 63, 51, 63, 51, 18, 57, 57, 17, 51, 1, 47, 93,225, 50, 50, 17, 51, 47, 93, 43, 51, 51, 47, 51, 17, 57, 57, - 49, 48, 0, 93, 1, 93, 93, 93, 43, 93, 93, 1, 55, 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 3, 1,127,137, 1,146,213, -254, 18, 2, 10,213,254, 86,129,180,180, 16, 1,252,166, 1,168,254, 2,253,180, 1,213, 82,254,125, 4, 74,254,221,254,213, 0, -255,255, 0,233, 0, 0, 4, 31, 7,115, 2, 38, 0, 47, 0, 0, 1, 7, 0,118,255,101, 1, 82, 0, 21,180, 1, 12, 5, 38, 1, -184,255, 72,180, 6, 9, 0, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,188, 0, 0, 4, 43, 7,172, 2, 38, 0, 79, 0, 0, - 1, 7, 0,118, 0, 78, 1,139, 0, 19, 64, 11, 1, 16, 2, 38, 1, 65, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,233,254, 59, 4, 31, 5,182, 2, 38, 0, 47, 0, 0, 1, 6, 2, 57, 8, 0, 0, 21,180, 1, 8, 20, 39, 1,184,255,234,180, - 6, 9, 0, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,188,254, 59, 4, 43, 6, 20, 2, 38, 0, 79, 0, 0, 1, 6, 2, 57, -234, 0, 0, 21,180, 1, 12, 23, 39, 1,184,255,221,180, 10, 13, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,233, 0, 0, - 4, 31, 5,183, 2, 38, 0, 47, 0, 0, 1, 7, 2, 56, 1, 0,255,163, 0, 14,183, 1, 1,226, 6, 10, 0, 4, 37, 1, 43, 53, - 0, 53,255,255, 0,188, 0, 0, 4, 82, 6, 20, 2, 38, 0, 79, 0, 0, 1, 7, 2, 56, 1,115, 0, 0, 0, 17,177, 1, 1,184, - 1,102,180, 10, 14, 7, 5, 37, 1, 43, 53, 0, 53, 0,255,255, 0,233, 0, 0, 4, 31, 5,182, 2, 38, 0, 47, 0, 0, 1, 7, - 1, 79, 0,242,253,148, 0, 14,183, 1, 1,212, 12, 8, 0, 4, 37, 1, 43, 53, 0, 53,255,255, 0,188, 0, 0, 4, 55, 6, 20, - 2, 38, 0, 79, 0, 0, 1, 7, 1, 79, 1,102,253, 56, 0, 21,180, 1, 1,127, 16, 1,184, 1, 89,180, 16, 12, 7, 5, 37, 1, - 43, 93, 53, 0, 53, 0, 0, 1, 0, 72, 0, 0, 4, 68, 5,182, 0, 13, 0,125, 64, 54, 10, 1, 2, 9, 2, 7, 4, 3, 8, 3, -121, 8,137, 8,153, 8, 3, 10, 8, 26, 8, 42, 8, 3,118, 2,134, 2,150, 2, 3, 5, 2, 21, 2, 37, 2, 3, 9, 9, 0, 13, - 15, 7, 11, 90, 0, 3, 4, 3, 0, 0, 1, 0,184,255,192, 64, 21, 12, 15, 72, 0, 1, 10, 4, 7, 4, 2, 8, 2, 8, 2, 0, - 5, 3, 11, 95, 0, 18, 0, 63,225, 63, 18, 57, 57, 47, 47, 18, 23, 57, 1, 47, 43, 93, 51, 51, 47, 16,225, 50, 16,206, 17, 57, - 47, 49, 48, 93, 93, 93, 93, 16,125,135, 4,196,196, 16,135,196,196, 33, 17, 7, 39, 55, 17, 51, 17, 37, 23, 5, 17, 33, 21, 1, - 14,125, 73,198,187, 1, 43, 78,254,135, 2,123, 1,236, 78,125,125, 3, 30,253, 88,189,125,238,254, 70,166, 0, 0, 1, 0,188, - 0, 0, 4, 43, 6, 20, 0, 17, 0,141, 64, 22,105, 11, 1,102, 3, 1, 11, 0, 1, 10, 1, 8, 3, 2, 9, 2, 10, 24, 13, 22, - 72, 2,184,255,232, 64, 60, 13, 22, 72, 13,111, 10,127, 10, 2, 10, 10, 8, 12, 71, 17, 3, 5, 16, 3, 17, 64, 2,208, 2,224, - 2, 3, 2, 2, 93, 17, 1, 79, 17, 1, 17, 17, 18, 19, 17, 12, 78, 14, 0, 11, 3, 8, 4, 1, 9, 1, 9, 1, 6, 14, 21, 4, - 78, 6, 0, 0, 63,225, 63, 18, 57, 57, 47, 47, 18, 23, 57, 16,225, 50, 17, 18, 1, 57, 47, 93, 93, 51, 47, 93, 17, 23, 51, 16, -225, 50, 50, 47, 93, 50, 49, 48, 0, 43, 43, 16,125,135,196,196, 16,135,196,196, 0, 93, 93, 1, 7, 39, 55, 17, 37, 53, 33, 17, - 55, 23, 7, 17, 5, 21, 33, 53, 37, 2, 20,141, 78,219,254,244, 1,195,164, 77,241, 1, 96,252,145, 1, 88, 2, 80, 92,121,143, - 2,137, 21,122,253, 95,108,121,159,253,200, 20,123,123, 20, 0,255,255, 0,135, 0, 0, 4, 68, 7,115, 2, 38, 0, 49, 0, 0, - 1, 7, 0,118, 0, 98, 1, 82, 0, 19, 64, 11, 1, 22, 5, 38, 1, 99, 16, 19, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,160, 0, 0, 4, 45, 6, 33, 2, 38, 0, 81, 0, 0, 1, 6, 0,118,111, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1,111, 17, 20, - 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,254, 59, 4, 68, 5,182, 2, 38, 0, 49, 0, 0, 1, 6, 2, 57,206, 0, - 0, 21,180, 1, 18, 20, 39, 1,184,255,207,180, 16, 19, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254, 59, 4, 45, - 4, 94, 2, 38, 0, 81, 0, 0, 1, 6, 2, 57,228, 0, 0, 21,180, 1, 19, 23, 39, 1,184,255,228,180, 17, 20, 7, 15, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,135, 0, 0, 4, 68, 7,115, 2, 38, 0, 49, 0, 0, 1, 7, 1, 76,255,253, 1, 82, 0, 21, -180, 1, 20, 5, 38, 1,184,255,254,180, 24, 16, 7, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, 0, 0, 4, 45, 6, 33, - 2, 38, 0, 81, 0, 0, 1, 6, 1, 76, 12, 0, 0, 19, 64, 11, 1, 21, 17, 38, 1, 12, 25, 17, 7, 15, 37, 1, 43, 53, 0, 43, - 53, 0, 0, 2,255,240, 0, 0, 4,106, 5,182, 0, 6, 0, 24, 0, 55, 64, 30, 7, 71, 24, 26, 17, 13, 71, 47, 14, 1, 14, 6, - 1,252, 3, 4, 17, 10, 80, 21, 16, 15, 15, 24, 14, 21, 3,253, 6, 0, 0, 63,237, 63, 51, 63, 63,225, 50, 1, 47, 51,237, 50, - 47, 93,225, 50, 16,222,225, 49, 48, 1, 23, 6, 3, 35, 54, 19, 1, 17, 16, 35, 32, 17, 17, 35, 17, 51, 23, 51, 54, 54, 51, 32, - 17, 17, 1, 27, 14, 50,126,137, 60, 40, 3, 96,219,254,227,182,148, 26, 10, 42,173,103, 1,110, 5,182, 22,197,254,230,242, 1, - 3,250, 74, 2,195, 1, 4,254,114,253,199, 4, 74,148, 78, 90,254,111,253, 51, 0, 1, 0,135,254,123, 4, 68, 5,182, 0, 24, - 0, 98,181, 24, 8, 14, 24, 72, 7,184,255,240, 64, 54, 16, 24, 72, 69, 7, 85, 7,101, 7, 3, 52, 7, 1, 21, 7, 37, 7, 2, - 6, 7, 1, 19, 19, 5, 24, 8, 12,251, 13, 26, 7, 1, 4,251, 0, 5,224, 5,240, 5, 3, 5, 22, 95, 20, 17, 12, 0, 6, 3, - 24, 8, 5, 18, 0, 63, 51, 51, 63, 51, 51, 47, 51,225, 1, 47, 93,225, 50, 50, 16,222,225, 50, 50, 17, 57, 47, 49, 48, 93, 93, - 93, 93, 43, 43, 1, 35, 18, 21, 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 17, 20, 6, 35, 34, 39, 53, 22, 51, 50, 53, 1, 41, 8, - 18,172,213, 2, 66, 10, 18,174,200,187, 94, 62, 77, 81,211, 4,186,254,235,140,252,231, 5,182,251,152, 1, 18,129, 2,213,250, - 94,198,211, 24,160, 20,225, 0, 0, 1, 0,160,254, 20, 4, 45, 4, 94, 0, 24, 0, 60, 64, 35, 14, 14, 1, 19, 71,144, 10,160, - 10, 2, 10, 26, 4, 0, 71, 0, 1,176, 1, 2, 1, 17, 80, 15, 12, 27, 4, 22, 80, 7, 16, 2, 15, 1, 21, 0, 63, 63, 63,225, - 50, 63, 51,225, 1, 47, 93,225, 50, 16,222, 93,225, 17, 57, 47, 49, 48, 33, 35, 17, 51, 23, 51, 54, 51, 32, 17, 17, 16, 33, 34, - 39, 53, 22, 51, 50, 53, 17, 16, 35, 32, 17, 1, 86,182,147, 27, 10,103,233, 1,133,254,221, 81, 52, 54, 61,127,238,254,205, 4, - 74,148,168,254,111,252,149,254,178, 25,148, 21,170, 3,109, 1, 4,254,114, 0,255,255, 0, 84,255,236, 4,123, 6,193, 2, 38, - 0, 50, 0, 0, 1, 7, 1, 77, 0, 4, 1, 82, 0, 19, 64, 11, 2, 22, 5, 38, 2, 2, 20, 21, 2, 7, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,115,255,236, 4, 88, 5,111, 2, 38, 0, 82, 0, 0, 1, 6, 1, 77, 0, 0, 0, 19, 64, 11, 2, 22, 17, 38, - 2, 0, 20, 21, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 64, 2, 38, 0, 50, 0, 0, 1, 7, - 1, 78,255,255, 1, 82, 0, 21,180, 2, 23, 5, 38, 2,184,255,254,180, 25, 20, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,115,255,236, 4, 88, 5,238, 2, 38, 0, 82, 0, 0, 1, 6, 1, 78, 0, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 0, 25, 20, - 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 1, 7, 1, 83, 0, 80, - 1, 82, 0, 23, 64, 13, 3, 2, 26, 5, 38, 3, 2, 78, 20, 31, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115, -255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 1, 6, 1, 83, 82, 0, 0, 23, 64, 13, 3, 2, 26, 17, 38, 3, 2, 82, 20, 31, - 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 2, 0, 20,255,236, 4,203, 5,205, 0, 19, 0, 28, 0, 73, 64, 41, 14, 18, - 90, 16, 20, 1, 20, 16, 20, 16, 6, 12, 0, 30, 25, 90, 6, 17, 95,104, 14, 1, 14, 14, 19, 12, 95, 11, 3, 23, 95, 8, 4, 27, - 95, 4, 19, 19, 95, 0, 18, 0, 63,225, 63,225, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47,225, 16,206, 50, 17, 57, 57, 47, 47, - 93,225, 50, 49, 48, 33, 33, 7, 6, 35, 32, 17, 16, 33, 50, 23, 33, 21, 33, 17, 33, 21, 33, 17, 33, 37, 17, 38, 35, 32, 17, 16, - 33, 50, 4,203,253,194, 48, 51, 46,254, 24, 2, 0, 82, 72, 2, 29,254,114, 1,103,254,153, 1,142,253,192, 58, 73,254,201, 1, - 53, 70, 10, 10, 2,243, 2,238, 23,164,254, 60,162,253,248, 12, 4, 88, 33,253,180,253,178, 0, 0, 3, 0, 57,255,236, 4,150, - 4, 94, 0, 26, 0, 36, 0, 41, 0,108, 64, 41, 10, 0, 41, 17, 71, 16, 29, 64, 29, 80, 29,112, 29,128, 29,176, 29,192, 29,208, - 29, 8, 29, 29, 5, 37, 70, 22, 16, 64, 10, 22, 72, 11, 16, 1, 16, 43, 34, 71, 5,184,255,192, 64, 24, 18, 24, 72, 5, 17, 80, - 41, 41, 27, 39, 10, 31, 80, 12, 8, 16, 19, 0, 27, 80, 24, 21, 2, 22, 0, 63, 51, 51,225, 50, 50, 63, 51,225, 50, 50, 18, 57, - 47,225, 1, 47, 43,225, 16,222, 93, 43, 50,225, 17, 57, 47, 93,225, 50, 57, 57, 49, 48, 37, 6, 35, 34, 2, 17, 16, 18, 51, 50, - 23, 54, 51, 50, 18, 21, 21, 33, 18, 51, 50, 55, 21, 6, 35, 34, 38, 37, 50, 17, 16, 35, 34, 6, 21, 20, 22, 1, 16, 35, 34, 3, - 2,139, 88,178,146,182,176,154,171, 89, 84,158,131,154,254, 73, 3,186,108, 96, 94,123, 87,143,254,228,168,170, 90, 78, 79, 2, -179,123,125, 12,201,221, 1, 51, 1, 8, 1, 12, 1, 43,217,217,254,245,224,113,254,137, 76,162, 73,118, 33, 1,154, 1,170,206, -210,211,209, 2, 19, 1, 49,254,207, 0,255,255, 0,186, 0, 0, 4,147, 7,115, 2, 38, 0, 53, 0, 0, 1, 7, 0,118, 0, 29, - 1, 82, 0, 21,180, 2, 27, 5, 38, 2,184,255,221,180, 21, 24, 2, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 1, 8, 0, 0, - 4, 35, 6, 33, 2, 38, 0, 85, 0, 0, 1, 6, 0,118, 92, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 45, 17, 20, 8, 0, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,186,254, 59, 4,147, 5,182, 2, 38, 0, 53, 0, 0, 1, 6, 2, 57,253, 0, 0, 21,180, 2, - 23, 20, 39, 2,184,255,189,180, 21, 24, 2, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,187,254, 59, 4, 35, 4, 94, 2, 38, - 0, 85, 0, 0, 1, 7, 2, 57,254,216, 0, 0, 0, 38, 64, 17, 1, 19, 23, 39, 1, 95, 17, 1, 63, 17, 1, 31, 17, 1, 15, 17, - 1,184,254,169,180, 17, 20, 8, 0, 37, 1, 43, 93, 93, 93, 93, 53, 0, 43, 53,255,255, 0,186, 0, 0, 4,147, 7,115, 2, 38, - 0, 53, 0, 0, 1, 7, 1, 76,255,226, 1, 82, 0, 21,180, 2, 25, 5, 38, 2,184,255,162,180, 29, 21, 2, 9, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 1, 8, 0, 0, 4, 35, 6, 33, 2, 38, 0, 85, 0, 0, 1, 6, 1, 76, 12, 0, 0, 21,180, 1, 21, 17, - 38, 1,184,255,221,180, 25, 17, 8, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, 2, 38, 0, 54, - 0, 0, 1, 7, 0,118, 0, 96, 1, 82, 0, 19, 64, 11, 1, 38, 5, 38, 1, 96, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,203,255,236, 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 0,118, 94, 0, 0, 19, 64, 11, 1, 38, 17, 38, 1, 94, - 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, 2, 38, 0, 54, 0, 0, 1, 7, 1, 75, - 0, 20, 1, 82, 0, 19, 64, 11, 1, 32, 5, 38, 1, 20, 38, 32, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,203,255,236, - 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 75, 23, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1, 23, 38, 32, 0, 27, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0,141,254, 20, 4, 63, 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 0,122,234, 0, 0, 14,185, 0, - 1,255,235,180, 32, 44, 0, 27, 37, 1, 43, 53,255,255, 0,203,254, 20, 4, 2, 4, 94, 2, 38, 0, 86, 0, 0, 1, 6, 0,122, -247, 0, 0, 17,177, 1, 1,184,255,247,180, 32, 44, 0, 27, 37, 1, 43, 53, 0, 53, 0,255,255, 0,141,255,236, 4, 63, 7,115, - 2, 38, 0, 54, 0, 0, 1, 7, 1, 76, 0, 31, 1, 82, 0, 19, 64, 11, 1, 36, 5, 38, 1, 31, 40, 32, 0, 27, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,203,255,236, 4, 2, 6, 33, 2, 38, 0, 86, 0, 0, 1, 6, 1, 76, 10, 0, 0, 19, 64, 11, 1, 36, - 17, 38, 1, 10, 40, 32, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102,254, 59, 4,100, 5,182, 2, 38, 0, 55, 0, 0, - 1, 6, 2, 57,222, 0, 0, 21,180, 1, 10, 20, 39, 1,184,255,223,180, 8, 11, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,139,254, 59, 4, 2, 5,111, 2, 38, 0, 87, 0, 0, 1, 6, 2, 57, 6, 0, 0, 19, 64, 11, 1, 22, 23, 39, 1, 37, 20, 23, - 7, 13, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, 2, 38, 0, 55, 0, 0, 1, 7, 1, 76,255,255, - 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 0, 16, 8, 3, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,139,255,236, 4, 16, - 6, 20, 2, 38, 0, 87, 0, 0, 1, 7, 2, 56, 1, 49, 0, 0, 0, 17,177, 1, 1,184, 1, 81,180, 20, 24, 7, 13, 37, 1, 43, - 53, 0, 53, 0, 0, 1, 0,102, 0, 0, 4,100, 5,182, 0, 15, 0, 89, 64, 51, 9, 9, 11, 5, 5, 7, 11, 90, 12, 14, 14, 2, - 0,208, 12, 1,162, 12, 1,147, 12, 1, 3,142, 12, 1, 4, 99, 12, 1, 5, 16, 12, 80, 12, 2, 12, 10, 14, 96, 7, 15, 15, 3, - 11, 18, 6, 2, 95, 3, 3, 0, 63,225, 50, 63, 18, 57, 47, 51,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93, 51,196, 57, - 47, 16,241, 50,192, 47, 17, 57, 47, 49, 48, 1, 17, 33, 53, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 2, 8,254, 94, 3, -254,254, 95, 1, 38,254,218,187,254,215, 3, 51, 1,223,164,164,254, 33,149,253, 98, 2,158,149, 0, 1, 0,139,255,236, 4, 2, - 5,111, 0, 27, 0,112, 64, 67, 22, 18, 20, 16, 24, 71, 5, 7, 5, 32, 11, 1, 11, 11, 13, 9, 47, 5, 63, 5,127, 5,143, 5, -207, 5,223, 5, 6, 0, 5, 1, 5, 5, 28, 29, 18, 18,127, 1,143, 1,175, 1, 3, 1, 29, 6, 23, 78, 9, 20, 20, 26, 10, 19, - 78, 15, 13, 12, 16, 15, 26, 80, 0, 3, 22, 0, 63, 51,225, 63, 51, 51, 51,225, 50, 18, 57, 47, 51,225, 50, 1, 16,206, 93, 50, - 47, 17, 18, 57, 47, 93, 93, 51, 51, 51, 47, 93, 18, 57, 16,225, 50, 50, 17, 57, 49, 48, 37, 21, 6, 35, 32, 17, 53, 35, 53, 51, - 53, 33, 53, 37, 19, 51, 17, 33, 21, 33, 21, 33, 21, 33, 21, 20, 51, 50, 3,252,130,122,254,150,162,162,254,245, 1, 11, 77,105, - 1,182,254, 74, 1, 51,254,205,192, 93,150,138, 32, 1, 88,251,138,248, 94, 49, 1, 31,254,219,137,248,138,251,195, 0,255,255, - 0,125,255,236, 4, 80, 7, 53, 2, 38, 0, 56, 0, 0, 1, 7, 1, 82, 0, 6, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 5, - 16, 25, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,227, 2, 38, 0, 88, 0, 0, 1, 6, 1, 82, - 2, 0, 0, 19, 64, 11, 1, 18, 17, 38, 1, 1, 19, 28, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, - 6,193, 2, 38, 0, 56, 0, 0, 1, 7, 1, 77, 0, 0, 1, 82, 0, 21,180, 1, 17, 5, 38, 1,184,255,255,180, 15, 16, 6, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,111, 2, 38, 0, 88, 0, 0, 1, 6, 1, 77, 2, 0, 0, 19, - 64, 11, 1, 20, 17, 38, 1, 1, 18, 19, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7, 64, 2, 38, - 0, 56, 0, 0, 1, 7, 1, 78,255,255, 1, 82, 0, 21,180, 1, 18, 5, 38, 1,184,255,255,180, 20, 15, 6, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 5,238, 2, 38, 0, 88, 0, 0, 1, 6, 1, 78, 0, 0, 0, 19, 64, 11, 1, 21, - 17, 38, 1, 0, 23, 18, 6, 16, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,217, 2, 38, 0, 56, 0, 0, - 1, 7, 1, 80, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 15, 5, 38, 2, 1, 1, 18, 24, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0,160,255,236, 4, 45, 6,135, 2, 38, 0, 88, 0, 0, 1, 6, 1, 80,253, 0, 0, 25,182, 2, 1, 18, 17, 38, - 2, 1,184,255,252,180, 21, 27, 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,255,236, 4, 80, 7,115, 2, 38, - 0, 56, 0, 0, 1, 7, 1, 83, 0, 76, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 75, 15, 26, 6, 0, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0,160,255,236, 4, 45, 6, 33, 2, 38, 0, 88, 0, 0, 1, 6, 1, 83, 80, 0, 0, 23, 64, 13, - 2, 1, 24, 17, 38, 2, 1, 79, 18, 29, 6, 16, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,125,254, 57, 4, 80, 5,184, - 2, 38, 0, 56, 0, 0, 1, 6, 1, 81, 27, 0, 0, 14,183, 1, 1, 27, 21, 15, 6, 0, 37, 1, 43, 53, 0, 53,255,255, 0,160, -254, 57, 4,100, 4, 74, 2, 38, 0, 88, 0, 0, 1, 7, 1, 81, 1, 53, 0, 0, 0, 23, 64, 14, 1, 1, 16, 26, 1, 0, 26, 1, - 0, 26, 26, 0, 0, 37, 1, 43, 93, 93, 53, 0, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, - 1, 75, 0, 2, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1, 2, 32, 26, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, - 0, 0, 4,209, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 1, 75,253, 0, 0, 21,180, 1, 26, 17, 38, 1,184,255,253,180, 32, 26, - 7, 24, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 1, 75,255,255, - 1, 82, 0, 19, 64, 11, 1, 9, 5, 38, 1, 0, 15, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, - 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 1, 75, 2, 0, 0, 19, 64, 11, 1, 23, 17, 38, 1, 3, 29, 23, 0, 9, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, - 2, 1, 13, 5, 38, 2, 1, 2, 15, 19, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, - 2, 38, 0, 61, 0, 0, 1, 7, 0,118, 0, 57, 1, 82, 0, 19, 64, 11, 1, 16, 5, 38, 1, 58, 10, 13, 1, 0, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,182, 0, 0, 4, 20, 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 0,118, 78, 0, 0, 19, 64, 11, 1, 16, - 17, 38, 1, 79, 10, 13, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7, 55, 2, 38, 0, 61, 0, 0, - 1, 7, 1, 79, 0, 16, 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 17, 16, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,182, 0, 0, 4, 20, 5,229, 2, 38, 0, 93, 0, 0, 1, 6, 1, 79, 16, 0, 0, 19, 64, 11, 1, 14, 17, 38, 1, 17, 16, 12, - 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,102, 0, 0, 4,100, 7,115, 2, 38, 0, 61, 0, 0, 1, 7, 1, 76,255,255, - 1, 82, 0, 19, 64, 11, 1, 14, 5, 38, 1, 0, 18, 10, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,182, 0, 0, 4, 20, - 6, 33, 2, 38, 0, 93, 0, 0, 1, 6, 1, 76, 12, 0, 0, 19, 64, 11, 1, 14, 17, 38, 1, 13, 18, 10, 1, 0, 37, 1, 43, 53, - 0, 43, 53, 0, 0, 1, 1,100, 0, 0, 3,250, 6, 31, 0, 13, 0, 46, 64, 28, 7, 71, 79, 8, 95, 8,191, 8,239, 8,255, 8, - 5, 8, 8, 14, 32, 0, 1, 0, 15, 3, 80, 1, 12, 1, 7, 21, 0, 63, 63, 51,225, 1, 16,206, 93, 18, 57, 47, 93,225, 49, 48, - 1, 7, 38, 35, 34, 6, 21, 17, 35, 17, 52, 54, 51, 50, 3,250, 41,105,122,119, 92,183,180,209,125, 5,252,143, 28, 96,119,251, - 78, 4,176,190,177, 0, 0, 1, 0,215,254, 20, 3,246, 5,203, 0, 31, 0, 82, 64, 42, 22, 30, 22, 30, 33, 0, 14, 7, 14, 7, - 32, 29, 0,111, 13, 14, 14, 16, 31, 13, 1, 13, 13, 32, 33, 13, 0,117, 16, 29, 29, 9, 25,115, 23, 20, 7, 9,115, 7, 4, 27, - 0, 63, 51,225, 63, 51,225, 18, 57, 47, 51,225, 50, 17, 18, 1, 57, 47, 93, 51, 51, 47, 16,225, 50, 18, 57, 57, 47, 47, 17, 18, - 57, 57, 47, 47, 49, 48, 1, 17, 20, 6, 35, 34, 39, 53, 22, 51, 50, 54, 53, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, 7, 38, 35, - 34, 6, 21, 21, 51, 21, 2,156,153,179, 51, 70, 59, 56, 92, 63,194,194,153,179, 97,100, 47, 79, 65, 92, 63,245, 3, 68,252, 63, -190,177, 15,153, 18,102,113, 3,195, 75, 68,137,190,177, 37,141, 28,102,113,145,137, 0,255,255, 0, 33, 0, 0, 4,172, 8,115, - 2, 38, 0, 36, 0, 0, 0, 38, 1, 80, 2,125, 1, 7, 0,118, 0, 72, 2, 82, 0, 82, 64, 48, 4,176, 40, 1, 96, 40, 1, 80, - 40, 1, 64, 40, 1, 40, 68, 3, 2,239, 26, 1,223, 26, 1, 80, 26, 1, 64, 26, 1, 32, 26, 1, 16, 26, 1, 0, 26, 1, 26, 4, - 30, 38, 41, 18, 24, 37, 3, 2,184,255,255,180, 18, 24, 4, 7, 37, 1, 43, 53, 53, 43, 53, 0, 17, 93, 93, 93, 93, 93, 93, 93, - 53, 53, 63, 93, 93, 93, 93, 53,255,255, 0,135,255,236, 4, 2, 8, 0, 2, 38, 0, 68, 0, 0, 0, 38, 1, 80, 0, 0, 1, 7, - 0,118, 0, 94, 1,223, 0, 72, 64, 49, 4,240, 64, 1,239, 64, 1,223, 64, 1,207, 64, 1, 96, 64, 1, 31, 64, 1, 64, 3, 2, -240, 34, 1,224, 34, 1,208, 34, 1, 34, 17, 38, 4, 30, 64, 60, 37, 43, 37, 3, 2, 33, 37, 43, 8, 22, 37, 1, 43, 53, 53, 43, - 53, 0, 43, 93, 93, 93, 53, 53, 17, 93, 93, 93, 93, 93, 93, 53,255,255, 0, 0, 0, 0, 4,186, 7,115, 2, 38, 0,136, 0, 0, - 1, 7, 0,118, 0,213, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, 2,222, 20, 23, 5, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 45,255,236, 4,162, 6, 33, 2, 38, 0,168, 0, 0, 1, 6, 0,118,113, 0, 0, 19, 64, 11, 3, 58, 17, 38, 3,112, 52, 55, - 32, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 80,255,180, 4,133, 7,115, 2, 38, 0,154, 0, 0, 1, 7, 0,118, 0, 57, - 1, 82, 0, 19, 64, 11, 3, 40, 5, 38, 3, 53, 34, 37, 2, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,170, 4, 88, - 6, 33, 2, 38, 0,186, 0, 0, 1, 6, 0,118, 80, 0, 0, 19, 64, 11, 3, 42, 17, 38, 3, 81, 36, 39, 5, 15, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,141,254, 59, 4, 63, 5,203, 2, 38, 0, 54, 0, 0, 1, 6, 2, 57, 0, 0, 0, 19, 64, 11, 1, 34, - 20, 39, 1, 0, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,203,254, 59, 4, 2, 4, 94, 2, 38, 0, 86, 0, 0, - 1, 6, 2, 57,228, 0, 0, 21,180, 1, 34, 23, 39, 1,184,255,228,180, 32, 35, 0, 27, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, - 1, 27, 4,217, 3,178, 6, 33, 0, 15, 0, 43, 64, 21, 12, 11, 3, 3, 5, 6,149, 1, 0, 0, 17, 3, 11,146, 6, 15, 0, 95, - 0, 2, 0, 0, 47, 93, 50,237, 57, 17, 1, 51, 47, 51,228, 50, 57, 25, 47, 51, 51, 49, 48, 1, 35, 38, 39, 6, 7, 35, 53, 54, - 55, 54, 55, 51, 22, 23, 23, 3,178,121, 85,126,133, 78,120, 25, 34,139, 37,193, 37,139, 59, 4,217, 56,130,136, 50, 27, 29, 38, -155, 79, 79,155, 67, 0, 0, 1, 1, 27, 4,217, 3,178, 6, 33, 0, 15, 0, 43, 64, 21, 5, 4, 12, 12, 10, 9,149, 14, 15, 15, - 17, 12, 14, 9,146, 15, 5, 95, 5, 2, 5, 0, 47, 93,228, 50, 57, 17, 1, 51, 47, 51,228, 50, 57, 25, 47, 51, 51, 49, 48, 1, - 6, 7, 6, 7, 35, 38, 39, 39, 53, 51, 22, 23, 54, 55, 51, 3,178, 25, 34,141, 35,193, 35,141, 59,120, 82,129,122, 89,121, 6, - 6, 29, 38,158, 76, 76,158, 67, 27, 54,133,128, 59, 0, 0, 1, 1, 70, 4,217, 3,133, 5,111, 0, 3, 0, 65, 64, 24, 31, 1, -223, 1,239, 1,255, 1, 4, 1, 1, 5,112, 0,128, 0,208, 0,224, 0,240, 0, 5, 0,184,255,192, 64, 17, 9, 12, 72, 0, 0, - 4, 1,143, 15, 2, 1, 2, 64, 12, 24, 72, 2, 0, 47, 43, 93,225, 17, 1, 51, 47, 43, 93, 17, 51, 47, 93, 49, 48, 1, 33, 21, - 33, 1, 70, 2, 63,253,193, 5,111,150, 0, 1, 1, 57, 4,217, 3,147, 5,238, 0, 11, 0, 76, 64, 18, 6,131, 0, 5, 16, 5, - 32, 5, 96, 5,112, 5,128, 5,160, 5, 7, 5,184,255,192, 64, 32, 21, 24, 72, 5, 5, 11,131, 31, 0,143, 0,175, 0,239, 0, -255, 0, 5, 0, 0, 13, 11, 5,148, 9,143, 15, 3, 95, 3, 2, 3, 0, 47, 93,225,237, 50, 17, 1, 51, 47, 93,225, 51, 47, 43, - 93,225, 49, 48, 1, 6, 6, 35, 32, 3, 51, 22, 22, 51, 50, 55, 3,147, 9,160,136,254,232, 17,109, 7, 79,104,181, 10, 5,238, -127,150, 1, 21, 76, 49,125, 0, 0, 1, 1,252, 5, 0, 2,209, 5,229, 0, 7, 0, 74, 64, 52,230, 6, 1, 6,133, 2,219, 2, - 1,201, 2, 1,173, 2, 1,137, 2, 1, 91, 2, 1, 66, 2, 1, 38, 2, 1, 27, 2, 1, 2, 9, 0,147, 79, 4,111, 4,127, 4, -159, 4,175, 4,207, 4,223, 4,239, 4, 8, 4, 0, 47, 93,237, 17, 1, 51, 93, 93, 93, 93, 93, 93, 93, 93, 16,225, 93, 49, 48, - 1, 50, 21, 20, 35, 34, 53, 52, 2,102,107,107,106, 5,229,114,115,115,114, 0, 0, 2, 1,131, 4,217, 3, 72, 6,135, 0, 11, - 0, 22, 0,141,181,164, 10,180, 10, 2, 10,184,255,224, 64, 9, 12, 15, 72,164, 8,180, 8, 2, 8,184,255,224, 64, 24, 12, 15, - 72,171, 4,187, 4, 2, 4, 32, 12, 15, 72,171, 2,187, 2, 2, 2, 32, 12, 15, 72, 15,184,255,240, 64, 42, 19, 24, 72, 15,131, - 0, 3, 16, 3, 32, 3, 3, 3, 20, 16, 19, 24, 72, 20,131, 9, 24, 12, 8, 21, 24, 72, 12,140, 15, 6, 31, 6, 47, 6,127, 6, -207, 6, 5, 6, 17,184,255,240, 64, 11, 21, 24, 72, 17,140, 15, 0, 95, 0, 2, 0, 0, 47, 93,225, 43,220, 93,225, 43, 1, 16, -222,225, 43,220, 93,225, 43, 49, 48, 43, 93, 43, 93, 43, 93, 43, 93, 1, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 3, 34, 6, - 21, 20, 51, 50, 54, 53, 52, 38, 2, 98,102,121,121,102,101,129,127,103, 49, 63,112, 50, 63, 63, 4,217,116, 99, 99,116,118, 95, - 98,119, 1, 72, 60, 53,113, 60, 53, 53, 60, 0, 0, 1, 1,158,254, 57, 3, 47, 0, 0, 0, 14, 0, 56, 64, 34, 45, 7, 61, 7, - 77, 7, 3, 5, 48, 11, 19, 72, 8, 9, 0, 11,132, 79, 6, 95, 6, 2, 6, 6, 0, 0, 16, 8, 13,142, 32, 3, 1, 3, 0, 47, - 93,225, 47, 17, 1, 51, 47, 51, 47, 93,225, 17, 57, 57, 49, 48, 43, 93, 1, 21, 6, 35, 34, 38, 53, 52, 55, 51, 6, 21, 20, 51, - 50, 3, 47, 73, 83,119,126,190,131,170,127, 66,254,193,113, 23,109, 94,144,108,125,113, 96, 0, 0, 1, 0,254, 4,217, 3,205, - 5,227, 0, 17, 0, 51, 64, 30, 0,130, 0, 1,144, 1,176, 1,192, 1, 4, 1, 1, 9,130, 10, 10, 19, 16,143, 9, 3,148, 7, -143, 0, 15, 12, 1, 12, 0, 47, 93, 51,225,253, 50,225, 17, 1, 51, 47,225, 51, 47, 93,225, 49, 48, 1, 35, 18, 51, 50, 23, 22, - 51, 50, 55, 51, 2, 35, 34, 39, 38, 35, 34, 1,102,104, 25,186, 58,103,102, 34, 80, 26,105, 27,184, 57,100,100, 40, 82, 4,217, - 1, 8, 56, 56,114,254,248, 57, 56, 0, 0, 2, 0,246, 4,217, 3,213, 6, 33, 0, 7, 0, 15, 0, 67, 64, 42, 14, 15,134, 11, - 6, 7,134, 2,135, 64, 3, 80, 3, 2, 3, 3, 10,135, 79, 11, 95, 11,111, 11,175, 11,223, 11, 5, 11, 11, 17, 10, 2,146, 14, - 15, 6, 95, 6, 2, 6, 0, 47, 93, 51,237, 50, 17, 1, 51, 47, 93,225, 51, 47, 93,225,237, 50, 16,237, 50, 49, 48, 19, 54, 55, - 51, 21, 6, 7, 35, 37, 54, 55, 51, 21, 6, 7, 35,246, 94, 80,198,112,160,100, 1,106, 87, 87,199,112,160,101, 4,244,133,168, - 21,173,134, 27,118,183, 21,173,134, 0, 0, 1, 1,223, 4,217, 2,236, 6, 33, 0, 9, 0, 32, 64, 16, 8, 9, 9, 3,133, 4, - 4, 11, 3,146, 15, 8, 95, 8, 2, 8, 0, 47, 93,237, 17, 1, 51, 47,225, 51, 47, 51, 49, 48, 1, 55, 54, 55, 51, 21, 20, 6, - 7, 35, 1,223, 30, 30, 10,199, 99, 61,109, 4,244,107,114, 80, 21, 16,208, 83, 0, 3, 1, 43, 5, 12, 3,160, 6,180, 0, 7, - 0, 16, 0, 24, 0, 87, 64, 57, 6, 7, 2,135, 3, 6, 7, 22, 7, 2, 7, 3, 7, 3, 19, 10,133, 0, 15, 16, 15, 32, 15,224, - 15,240, 15, 5, 15, 15, 23,133, 19, 2,146, 6, 6, 17, 8,147, 21, 79, 13,111, 13,127, 13,159, 13,175, 13,207, 13,223, 13, 7, - 13, 0, 47, 93, 51,237, 50, 57, 47,237, 1, 47,225, 51, 47, 93,225, 18, 57, 57, 47, 47, 93, 16,225, 17, 51, 49, 48, 1, 54, 55, - 51, 21, 6, 7, 35, 39, 50, 21, 20, 6, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, 52, 2, 20, 50, 41,206, 93,122, 82,137, 97, - 56, 41, 96, 2, 20, 97, 97, 96, 5,135,139,162, 20,164,143,108,102, 49, 54,103,102,102,103,103,102, 0,255,255, 0, 33, 0, 0, - 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 7, 1, 84,254, 69,255,151, 0, 24,182, 2, 18, 3, 2, 16, 15, 1,184,254, 68,180, - 15, 19, 4, 7, 37, 1, 43, 93, 53, 0, 63, 53, 0, 1, 1,231, 2, 72, 2,229, 3, 94, 0, 7, 0, 34, 64, 20, 2,150, 48, 6, - 96, 6,176, 6,224, 6,240, 6, 5, 6, 6, 8, 9, 0,155, 4, 0, 47,237, 17, 18, 1, 57, 47, 93,237, 49, 48, 1, 50, 21, 20, - 35, 34, 53, 52, 2,102,127,127,127, 3, 94,139,139,139,139, 0,255,255,255,142, 0, 0, 4, 35, 5,184, 2, 38, 0, 40, 0, 0, - 1, 7, 1, 84,253,175,255,151, 0, 33, 64, 13, 1, 15, 3, 1, 32, 12, 1, 16, 12, 1, 0, 12, 1,184,253,151,180, 12, 16, 1, - 0, 37, 1, 43, 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,101, 0, 0, 4, 70, 5,184, 2, 38, 0, 43, 0, 0, 1, 7, 1, 84, -253,134,255,151, 0, 33, 64, 13, 1, 15, 3, 1, 32, 12, 1, 16, 12, 1, 0, 12, 1,184,253,133,180, 12, 16, 5, 0, 37, 1, 43, - 93, 93, 93, 53, 0, 63, 53, 0,255,255,255,163, 0, 0, 3,233, 5,184, 2, 38, 0, 44, 0, 0, 1, 7, 1, 84,253,196,255,151, - 0, 24,182, 1, 15, 3, 1, 0, 12, 1,184,253,197,180, 12, 16, 1, 0, 37, 1, 43, 93, 53, 0, 63, 53,255,255,255,124,255,236, - 4,123, 5,205, 2, 38, 0, 50, 0, 0, 1, 7, 1, 84,253,157,255,151, 0, 20,179, 2, 23, 3, 2,184,253,155,180, 20, 24, 2, - 7, 37, 1, 43, 53, 0, 63, 53,255,255,255, 19, 0, 0, 4,170, 5,184, 2, 38, 0, 60, 0, 0, 1, 7, 1, 84,253, 52,255,151, - 0, 20,179, 1, 12, 3, 1,184,253, 52,180, 9, 13, 7, 2, 37, 1, 43, 53, 0, 63, 53,255,255,255,122, 0, 0, 4,135, 5,205, - 2, 38, 1,118, 0, 0, 1, 7, 1, 84,253,155,255,151, 0, 20,179, 1, 29, 3, 1,184,253,152,180, 26, 30, 2, 15, 37, 1, 43, - 53, 0, 63, 53,255,255, 0,241,255,236, 3,248, 6,180, 2, 38, 1,134, 0, 0, 1, 6, 1, 85,198, 0, 0, 18,178, 3, 2, 1, -184,255, 90,180, 27, 31, 10, 5, 37, 1, 43, 53, 53, 53,255,255, 0, 33, 0, 0, 4,172, 5,188, 2, 6, 0, 36, 0, 0,255,255, - 0,135, 0, 0, 4,113, 5,182, 2, 6, 0, 37, 0, 0, 0, 1, 0,246, 0, 0, 4, 47, 5,182, 0, 5, 0, 57, 64, 16, 0, 64, - 18, 22, 72, 0, 7, 3, 90, 80, 4, 1, 0, 4, 1, 4,184,255,192,179, 21, 24, 72, 4,184,255,192, 64, 10, 13, 16, 72, 4, 2, - 95, 5, 3, 3, 18, 0, 63, 63,225, 1, 47, 43, 43, 93,113,225, 16,206, 43, 49, 48, 1, 21, 33, 17, 35, 17, 4, 47,253,129,186, - 5,182,166,250,240, 5,182, 0, 0, 2, 0, 68, 0, 0, 4,135, 5,182, 0, 5, 0, 12, 0,213,185, 0, 9,255,240, 64, 27, 15, - 19, 72,184, 4, 1, 4, 8, 14, 17, 72, 72, 4, 1, 41, 4, 1, 24, 4, 1, 9, 4, 1,183, 5, 1, 5,184,255,248, 64, 32, 14, - 17, 72, 71, 5, 1, 38, 5, 1, 23, 5, 1, 6, 5, 1, 10, 16, 15, 19, 72,232, 4, 1,231, 5, 1, 5, 4, 6, 6, 1, 9,184, -255,240, 64, 84, 20, 24, 72, 87, 9, 1, 71, 9, 1, 37, 9, 1, 6, 9, 22, 9, 2, 9, 96, 2, 1, 2, 10, 16, 20, 24, 72, 88, - 10, 1, 72, 10, 1, 42, 10, 1, 9, 10, 25, 10, 2, 10,128, 1,160, 1,240, 1, 3, 47, 1, 79, 1,111, 1, 3, 1, 91, 6, 1, - 41, 6, 57, 6, 73, 6, 3, 6, 16, 17, 20, 72, 29, 6, 1, 6, 4, 3, 0, 3, 9, 95, 2, 18, 0, 63,225, 57, 57, 63, 51, 93, - 43, 93, 93, 1, 47, 93, 93, 51, 93, 93, 93, 93, 43, 47, 93, 51, 93, 93, 93, 93, 43, 18, 57, 61, 47, 51, 51, 93, 93, 49, 48, 43, - 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 43, 37, 21, 33, 53, 1, 51, 7, 6, 7, 3, 33, 3, 38, 4,135,251,189, 1,194, -187, 95, 51, 37,254, 2,174,252, 52,125,125,133, 5, 49,205,223,110,253, 10, 2,240,155,255,255, 0,217, 0, 0, 4, 35, 5,182, - 2, 6, 0, 40, 0, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, 0, 61, 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, - 2, 6, 0, 43, 0, 0, 0, 3, 0, 84,255,236, 4,123, 5,205, 0, 9, 0, 19, 0, 23, 0, 97, 64, 64,116, 21,132, 21, 2, 47, - 21, 63, 21, 2,123, 20,139, 20, 2, 32, 20, 48, 20, 2, 21, 20, 21, 20, 2, 88, 13, 1, 13, 91, 7, 25, 87, 18, 1, 18, 91, 31, - 2, 47, 2, 2, 2, 23, 96,159, 20,207, 20, 2,104, 20, 1, 20, 20, 10, 16, 95, 4, 4, 10, 95, 0, 19, 0, 63,225, 63,225, 18, - 57, 47, 93, 93,225, 1, 47, 93,225, 93, 16,222,225, 93, 18, 57, 57, 47, 47, 93, 93, 93, 93, 49, 48, 5, 32, 17, 16, 33, 32, 0, - 17, 16, 0, 39, 50, 18, 17, 16, 2, 35, 32, 17, 16, 19, 33, 21, 33, 2,104,253,236, 2, 22, 1, 0, 1, 17,254,236,255,173,161, -163,169,254,175,129, 1,155,254,101, 20, 2,243, 2,238,254,121,254,151,254,151,254,120,163, 1, 34, 1, 44, 1, 47, 1, 29,253, -180,253,178, 2,170,161,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0,255,255, 0,211, 0, 0, 4,174, 5,182, - 2, 6, 0, 46, 0, 0, 0, 1, 0, 33, 0, 0, 4,172, 5,182, 0, 10, 0,190,185, 0, 7,255,240, 64, 27, 15, 19, 72,184, 9, - 1, 9, 8, 14, 17, 72, 72, 9, 1, 41, 9, 1, 24, 9, 1, 9, 9, 1,183, 10, 1, 10,184,255,248, 64, 31, 14, 17, 72, 71, 10, - 1, 38, 10, 1, 23, 10, 1, 6, 10, 1, 2, 16, 15, 19, 72,232, 9, 1,231, 10, 1, 10, 9, 4, 4, 7,184,255,240, 64, 68, 20, - 24, 72, 87, 7, 1, 71, 7, 1, 37, 7, 1, 6, 7, 22, 7, 2, 7, 8, 1, 16, 20, 24, 72, 88, 1, 1, 72, 1, 1, 42, 1, 1, - 9, 1, 25, 1, 2, 1, 47, 0,127, 0,207, 0,239, 0, 4, 0, 4, 16, 17, 20, 72, 4, 16, 11, 14, 72, 29, 4, 1, 4, 9, 3, - 8, 0, 18, 0, 63, 50, 63, 51, 93, 43, 43, 1, 47, 93, 50, 93, 93, 93, 93, 43, 47, 51, 93, 93, 93, 93, 43, 57, 61, 47, 51, 51, - 93, 93, 49, 48, 43, 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 43, 93, 43, 33, 35, 1, 38, 39, 6, 7, 1, 35, 1, 51, 4,172,199, -254,220, 63, 30, 45, 43,254,217,196, 1,231,187, 3,154,199,141,200,134,252, 96, 5,182,255,255, 0,113, 0, 0, 4, 92, 5,182, - 2, 6, 0, 48, 0, 0,255,255, 0,135, 0, 0, 4, 68, 5,182, 2, 6, 0, 49, 0, 0, 0, 3, 0,111, 0, 0, 4, 92, 5,182, - 0, 3, 0, 7, 0, 11, 0, 71, 64, 41, 47, 5, 63, 5, 2, 32, 4, 48, 4, 2, 4, 5, 4, 5, 10, 1, 1, 9, 13, 0, 0, 1, - 0, 0, 10, 7, 95,104, 4, 1, 4, 4, 0, 11, 95, 10, 18, 3, 95, 0, 3, 0, 63,225, 63,225, 17, 57, 47, 93,225, 1, 47, 51, - 47,113, 16,206, 50, 47, 17, 57, 57, 47, 47, 93, 93, 49, 48, 19, 33, 21, 33, 19, 33, 21, 33, 1, 21, 33, 53,152, 3,155,252,101, - 81, 2,248,253, 8, 3,115,252, 19, 5,182,164,254, 60,162,253,248,164,164, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, - 0, 50, 0, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 7, 0, 37, 64, 21, 1, 90, 0, 9, 4, 90, 0, 5,224, 5,240, 5, - 3, 5, 3, 95, 6, 3, 5, 0, 18, 0, 63, 50, 63,225, 1, 47, 93,225, 16,222,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 4, - 70,187,253,183,187, 3,191, 5, 18,250,238, 5,182, 0,255,255, 0,176, 0, 0, 4, 70, 5,182, 2, 6, 0, 51, 0, 0, 0, 1, - 0,131, 0, 0, 4, 72, 5,182, 0, 11, 0,128, 64, 87, 55, 9,215, 9,231, 9,247, 9, 4, 38, 9, 1, 7, 9, 23, 9, 2, 55, - 7,215, 7,231, 7,247, 7, 4, 38, 7, 1, 7, 7, 23, 7, 2, 56, 2,216, 2,232, 2,248, 2, 4, 25, 2, 41, 2, 2, 8, 2, - 1, 8, 2, 2, 0, 6,239, 10,255, 10, 2, 10, 13, 7, 3, 3, 9, 0, 0,240, 0, 2, 0, 3, 7, 95, 4, 8, 2, 2, 4, 3, - 1, 9, 95, 0, 18, 0, 63,225, 57, 63, 57, 61, 47, 51, 16,225, 57, 1, 24, 47, 93, 51, 51, 17, 51, 16,206, 93, 50, 17, 57, 47, - 51, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 51, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21,131, 1,158,254,110, 3,125,253, - 88, 1,133,254,103, 2,248,152, 2,102, 2, 37,147,164,253,238,253,164,164, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, - 0, 55, 0, 0,255,255, 0, 33, 0, 0, 4,170, 5,182, 2, 6, 0, 60, 0, 0, 0, 3, 0, 27,255,236, 4,180, 5,203, 0, 21, - 0, 30, 0, 39, 0,180, 64, 89, 6, 19, 22, 19, 38, 19, 3, 9, 15, 25, 15, 41, 15, 3, 9, 8, 25, 8, 41, 8, 3, 6, 4, 22, - 4, 38, 4, 3, 22, 2, 11, 90, 39, 21,169, 12, 1,154, 12, 1,139, 12, 1, 3,114, 12, 1, 5, 64, 12, 80, 12, 96, 12, 3, 52, - 12, 1, 6, 12, 12, 17, 26, 8, 12, 17, 72, 26, 90, 15, 6, 47, 6, 63, 6,111, 6,143, 6,191, 6,239, 6,255, 6, 8, 6, 41, - 35,184,255,248, 64, 36, 12, 17, 72, 35, 90, 17, 39, 22, 96, 13, 80, 10,224, 10,240, 10, 3, 10, 10, 11, 19, 30, 31, 96, 2, 96, - 21,112, 21,128, 21, 3, 21, 21, 0, 4, 0, 63, 50, 47, 93, 51,225, 50, 63, 51, 47, 93, 51,225, 50, 1, 47,225, 43, 16,222, 93, -225, 43, 18, 57, 47, 95, 93, 93, 95, 93, 95, 93, 93, 93, 51, 51,225, 50, 50, 49, 48, 0, 93, 93, 93, 93, 1, 51, 21, 51, 50, 18, - 21, 20, 2, 35, 35, 21, 35, 53, 35, 34, 2, 53, 52, 18, 51, 51, 19, 51, 50, 54, 53, 52, 38, 43, 3, 34, 6, 21, 20, 22, 51, 51, - 2, 20,166, 47,213,246,253,228, 25,166, 24,230,251,245,213, 47,166, 7,155,172,158,143, 33,166, 32,143,158,172,155, 6, 5,203, -180,254,203,236,236,254,195,225,225, 1, 62,235,235, 1, 54,252, 83,213,187,172,209,209,172,187,213, 0,255,255, 0, 53, 0, 0, - 4,150, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0, 57, 0, 0, 4,150, 5,182, 0, 27, 0,117, 64, 78, 21, 5, 90, 18,169, 6, - 1, 6, 22, 18, 73,139, 6, 1, 3,114, 6, 1, 5, 80, 6, 96, 6, 2, 52, 6, 68, 6, 2, 6, 6, 6, 11, 25, 90, 15, 0, 47, - 0, 63, 0,111, 0,143, 0, 5, 0, 29, 14, 90,144, 11,160, 11,192, 11,208, 11, 4, 11, 21,119, 18,135, 18, 2, 18, 96, 4, 7, - 7, 5, 26, 19, 12, 3, 5, 18, 0, 63, 63, 51, 51, 18, 57, 47, 51,225, 93, 50, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 95, - 93, 93, 95, 93, 95, 93, 43, 93, 51,225, 50, 49, 48, 1, 16, 6, 35, 35, 17, 35, 17, 35, 34, 38, 17, 17, 51, 17, 20, 22, 51, 51, - 17, 51, 17, 51, 50, 54, 53, 17, 51, 4,150,232,227, 17,166, 16,230,229,172,138,149, 16,166, 17,149,137,173, 3,215,254,225,250, -254, 66, 1,190,251, 1, 26, 1,227,254, 33,231,148, 3, 90,252,166,144,231, 1,227, 0, 0, 1, 0, 74, 0, 0, 4,135, 5,205, - 0, 25, 0,119,185, 0, 14,255,232, 64, 78, 10, 20, 72, 14,192, 18,208, 18, 2, 79, 18, 95, 18,127, 18,143, 18,191, 18, 5, 9, - 18, 25, 18, 2, 18, 4, 24, 10, 20, 72, 4, 64, 0, 80, 0, 2, 3, 0, 19, 0, 2, 0, 0, 6, 88, 20, 1, 20, 91, 15, 12, 27, - 87, 24, 1, 24, 91, 3, 31, 6, 47, 6, 2, 6, 22, 95, 9, 4, 0, 14, 18, 3, 3, 95, 17, 2, 18, 0, 63, 51,225, 23, 50, 63, -225, 1, 47, 93, 51,225, 93, 16,222, 50,225, 93, 18, 57, 47, 93, 93, 51, 43,198, 93, 93, 93, 50, 43, 49, 48, 37, 21, 33, 53, 33, - 38, 17, 16, 0, 51, 50, 0, 17, 16, 5, 33, 21, 33, 53, 36, 17, 16, 33, 32, 17, 16, 2, 29,254, 45, 1, 10,254, 1, 24,250,250, - 1, 25,255, 0, 1, 12,254, 43, 1, 4,254,176,254,177,147,147,164,235, 1,170, 1, 56, 1, 92,254,164,254,200,254, 83,232,164, -147,231, 1,187, 1,244,254, 12,254, 69,255,255, 0,225, 0, 0, 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, - 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 2, 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, - 0, 0, 4,170, 7, 43, 2, 38, 0, 60, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 13, 5, 38, 2, 1, 2, - 15, 19, 7, 2, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,121,255,236, 4,154, 6, 33, 2, 38, 1,126, 0, 0, 1, 6, - 1, 84, 16, 0, 0, 21,180, 2, 46, 17, 38, 2,184,255,236,180, 38, 42, 22, 11, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,201, -255,236, 4, 8, 6, 33, 2, 38, 1,130, 0, 0, 1, 6, 1, 84, 96, 0, 0, 19, 64, 11, 1, 40, 17, 38, 1, 93, 32, 36, 14, 24, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254, 20, 4, 45, 6, 33, 2, 38, 1,132, 0, 0, 1, 6, 1, 84, 80, 0, 0, 19, - 64, 11, 1, 25, 17, 38, 1, 79, 17, 21, 7, 15, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 1,172,255,236, 3,248, 6, 33, 2, 38, - 1,134, 0, 0, 1, 6, 1, 84,247, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 42, 12, 12, 11, 11, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,160,255,236, 4, 59, 6,180, 2, 38, 1,146, 0, 0, 1, 6, 1, 85,253, 0, 0, 25,181, 3, 2, 1, 3, 2, 1,184, -255,245,180, 33, 37, 0, 12, 37, 1, 43, 53, 53, 53, 0, 53, 53, 53, 0, 0, 2, 0,121,255,236, 4,154, 4, 94, 0, 26, 0, 37, - 0, 61, 64, 34, 16, 0, 28, 71, 11,127, 7,143, 7, 2, 7, 39, 33, 72, 0, 22, 1, 22, 16, 9, 35, 80, 11, 14, 14, 19, 22, 0, - 31, 80, 25, 16, 3, 15, 0, 63, 63,225, 50, 63, 51, 17, 51,225, 50, 50, 1, 47, 93,225, 16,220, 93, 50,225, 50, 50, 49, 48, 1, - 51, 54, 55, 51, 6, 17, 17, 20, 51, 50, 55, 21, 6, 35, 34, 39, 35, 6, 35, 34, 2, 17, 16, 18, 51, 50, 19, 53, 52, 38, 35, 32, - 17, 16, 33, 50, 54, 3, 94, 12, 30, 38,143, 51, 84, 29, 31, 52, 63,159, 40, 12,108,205,195,223,230,206,210, 85,134,147,254,250, - 1, 8,148,127, 3,182,103, 45,166,254,239,254, 93,111, 10,133, 26,167,167, 1, 41, 1, 14, 1, 17, 1, 42,253,182, 15,227,193, -254, 90,254, 98,184, 0, 0, 2, 0,158,254, 20, 4, 80, 6, 31, 0, 19, 0, 38, 0, 81, 64, 46, 42, 31, 1, 0, 17, 15, 29, 1, - 29, 29, 9, 33, 72, 17, 17, 24, 71, 3, 40, 20, 9, 71, 0, 10,176, 10, 2, 10, 0, 28, 80, 29, 29, 6, 14, 9, 27, 22, 80, 20, - 6, 22, 36, 80, 14, 1, 0, 63,225, 63, 51,225, 63, 17, 18, 57, 47,225, 57, 1, 47, 93,225, 50, 16,222,225, 51, 47,225, 18, 57, - 47, 93, 18, 57, 49, 48, 93, 1, 21, 4, 17, 20, 6, 35, 34, 39, 17, 35, 17, 52, 54, 51, 50, 22, 21, 20, 6, 1, 22, 51, 32, 17, - 52, 38, 35, 35, 53, 51, 50, 54, 53, 52, 38, 35, 32, 17, 2,211, 1,125,245,216,186,117,182,238,208,198,236,161,253,231,135,154, - 1, 37,190,159, 94, 70,142,161,134,114,254,248, 3, 61, 6, 48,254,151,205,229, 63,253,233, 6, 52,226,245,210,183,136,182,253, -121, 80, 1, 43,146,165,152,150,126,118,132,254,182, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 15, 0,107, 64, 37, 2, 72, - 3, 5, 0, 3, 68, 10, 84, 10,116, 10,132, 10,180, 10, 5, 10, 10, 6, 14, 8, 9, 12, 72, 14, 16, 15, 32, 15, 48, 15, 3, 15, - 15, 17, 7,184,255,248, 64, 16, 9, 12, 72, 7, 47, 6, 63, 6, 2, 6, 6, 16, 14, 6, 15, 10,184,255,240, 64, 9, 9, 12, 72, - 10, 0, 5, 21, 2, 27, 0, 63, 63, 51, 51, 43, 63, 51, 17, 1, 51, 47, 93, 51, 43, 17, 51, 47, 93, 51, 43, 18, 57, 25, 47, 93, - 57, 51, 51, 16,225, 49, 48, 37, 2, 17, 35, 52, 19, 1, 51, 19, 22, 23, 51, 54, 55, 19, 51, 2,227,110,191,101,254, 55,192,242, - 71, 36, 6, 26, 72,229,189, 63,254,232,254,237,207, 1, 41, 4, 62,253,176,174,146,104,191, 2,105, 0, 0, 2, 0,135,255,236, - 4, 70, 6, 31, 0, 25, 0, 34, 0, 79, 64, 49, 43, 0, 1, 9, 0, 25, 0, 2, 13, 70, 0, 26, 2, 2, 24, 33, 72, 7,239, 18, -255, 18, 2, 18, 36, 28, 72, 0, 24,224, 24,240, 24, 3, 24, 16, 0, 26, 3, 5, 31, 80, 21, 22, 10, 80, 8, 5, 1, 0, 63, 51, -225, 63,225, 17, 23, 57, 1, 47, 93,225, 16,222, 93, 50,225, 17, 57, 47, 57, 57,225, 49, 48, 93, 93, 1, 38, 53, 52, 54, 51, 50, - 23, 7, 38, 35, 34, 6, 21, 20, 22, 23, 4, 17, 20, 0, 35, 34, 36, 53, 16, 37, 4, 17, 20, 22, 51, 32, 17, 52, 2, 45,254,182, -160,199,194, 73,169,159, 74, 86, 84,172, 1,105,254,253,225,213,254,250, 2, 37,254,156,152,130, 1, 39, 3,170,145,203,133,148, -109,145,106, 73, 64, 63,103,100,206,254,200,246,254,240,247,211, 1,116, 44,100,254,192,135,168, 1, 94,244, 0, 0, 1, 0,201, -255,236, 4, 8, 4, 94, 0, 31, 0, 81, 64, 47, 17, 19, 0, 0, 14, 24,127, 9,143, 9, 2, 9, 33, 29, 71, 19, 19, 4, 71, 0, - 14, 1, 14, 17, 2, 80,191, 31, 1,121, 31,137, 31, 2, 31, 31, 6, 27, 80, 25, 22, 16, 6, 80, 8, 11, 22, 0, 63, 51,225, 63, - 51,225, 18, 57, 47, 93, 93,225, 57, 1, 47, 93,225, 51, 47,225, 16,206, 93, 50, 17, 57, 47, 18, 57, 49, 48, 1, 21, 35, 32, 21, - 20, 33, 50, 55, 21, 6, 35, 34, 38, 53, 52, 55, 53, 38, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 21, 20, 33, 3, 72,160,254,211, - 1, 27,196,170,134,243,211,239,237,202,224,189,216,167, 63,161,155,243, 1, 20, 2,135,153,185,180, 86,160, 75,168,151,193, 75, - 11, 66,183,135,156, 76,147, 72,154,166, 0, 1, 0,162,254,111, 4, 43, 6, 20, 0, 28, 0,137, 64, 87, 10, 20, 26, 20, 42, 20, - 3, 6, 9, 22, 9, 38, 9, 3, 11, 25, 27, 25, 43, 25, 3, 25, 2, 2, 16, 16, 9, 14, 72, 16, 70, 14,144, 11, 1, 11, 30, 28, - 5, 72, 0, 22,160, 22, 2, 22,153, 19, 1,123, 19,139, 19, 2,109, 19, 1, 73, 19, 1, 59, 19, 1, 45, 19, 1,121, 8,137, 8, - 2,107, 8, 1, 73, 8, 1, 59, 8, 1, 45, 8, 1, 19, 8, 0, 13,184, 1, 6,180, 2, 28, 80, 0, 0, 0, 63,225, 50, 63, 18, - 57, 57, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 51, 16,222, 93, 50,225, 43, 51, 47, 51, 93, 49, 48, 0, 93, - 93, 19, 33, 21, 0, 0, 17, 20, 22, 23, 22, 22, 21, 20, 7, 35, 54, 53, 52, 38, 39, 38, 38, 53, 16, 0, 37, 6, 35, 33,223, 3, - 70,254,116,254,197,166,229,171,151,121,170,121,103,194,229,209, 1, 66, 1,120,215,137,254,227, 6, 20,141,254,224,254,118,255, - 0,153,129, 39, 30,101,111,149,166,162, 98, 57, 65, 29, 35,223,201, 1, 1, 1,186,247, 12, 0, 0, 1, 0,160,254, 20, 4, 45, - 4, 94, 0, 16, 0, 49, 64, 29, 0, 71,144, 16,160, 16, 2, 16, 18, 11, 6, 71, 0, 7,176, 7, 2, 7, 11, 3, 80, 13, 16, 8, - 15, 7, 21, 0, 27, 0, 63, 63, 63, 63,225, 50, 1, 47, 93,225, 50, 16,222, 93,225, 49, 48, 1, 17, 16, 35, 32, 17, 17, 35, 17, - 51, 23, 51, 54, 51, 32, 17, 17, 3,119,238,254,205,182,147, 27, 10,102,234, 1,133,254, 20, 4,175, 1, 4,254,114,253,199, 4, - 74,148,168,254,111,251, 71, 0, 0, 3, 0,147,255,236, 4, 57, 5,195, 0, 10, 0, 17, 0, 24, 0, 79, 64, 50, 12, 59, 18, 1, - 6, 40, 18, 1, 18, 72, 9, 26, 11, 39, 19, 55, 19, 2, 19, 71, 0, 3, 1, 3, 19, 79,202, 11,234, 11, 2,152, 11, 1, 47, 11, -255, 11, 2, 11, 11, 22, 15, 80, 6, 4, 22, 80, 0, 22, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 93, 50, - 16,222,225, 93, 95, 93, 50, 49, 48, 5, 34, 2, 17, 16, 18, 51, 50, 18, 17, 16, 1, 33, 2, 2, 35, 34, 6, 1, 33, 18, 18, 51, - 50, 18, 2,100,229,236,228,237,231,238,253, 19, 2, 51, 7,133,143,139,133, 2, 43,253,205, 6,132,142,142,135, 20, 1,127, 1, -110, 1,124, 1,110,254,131,254,147,253, 19, 3, 59, 1, 4, 1, 0,250,254,109,254,234,254,251, 1, 0, 0, 1, 1,172,255,236, - 3,248, 4, 74, 0, 11, 0, 38, 64, 20, 1, 71, 0, 10, 1, 10, 10, 12,111, 5, 1, 5, 13, 5, 3, 80, 8, 22, 0, 15, 0, 63, - 63,225, 51, 1, 16,206, 93, 18, 57, 47, 93,225, 49, 48, 1, 17, 20, 51, 50, 55, 21, 6, 35, 32, 17, 17, 2, 98,193,112,101, 93, -132,254,149, 4, 74,252,250,195, 21,138, 32, 1, 88, 3, 6, 0,255,255, 0,215, 0, 0, 4,139, 4, 74, 2, 6, 0,250, 0, 0, - 0, 1, 0, 61,255,236, 4,160, 6, 33, 0, 31, 0, 85, 64, 51, 13, 1, 27, 24, 14, 27, 14, 0, 18, 20, 18, 36, 18, 2, 6, 18, - 1, 18, 33, 31, 7, 0, 32, 13, 16, 72, 47, 0, 63, 0, 2, 0, 31, 21, 72, 27, 1, 27, 1, 13, 3, 10, 16, 80, 18, 21, 22, 5, - 80, 10, 1, 0, 63,225, 63, 51,225, 17, 23, 57, 93, 63, 1, 47, 93, 43, 51, 51, 17, 51, 93, 93, 17, 18, 57, 57, 17, 51, 17, 51, - 51, 49, 48, 51, 1, 39, 38, 38, 35, 34, 7, 53, 54, 51, 50, 22, 23, 1, 22, 51, 50, 55, 21, 6, 35, 34, 38, 39, 3, 38, 39, 35, - 6, 7, 1, 61, 1,248, 53, 34, 86, 73, 56, 48, 65, 62,142,142, 70, 1, 70, 37, 65, 29, 31, 50, 65, 82, 87, 28,135, 69, 25, 6, - 36, 83,254,244, 4, 59,160,104, 72, 12,145, 17,135,211,252, 41,111, 10,133, 26, 80, 87, 1,162,214,122,138,183,253,188, 0, 1, - 0,160,254, 20, 4, 45, 4, 74, 0, 21, 0, 58, 64, 35, 10, 5, 71,144, 8,160, 8, 2, 8, 23, 0, 18, 71, 0, 19,176, 19, 2, - 19, 18, 27, 0, 5, 10, 15, 4, 2, 80, 13, 22, 9, 21, 20, 6, 15, 0, 63, 51, 63, 63,225, 23, 50, 63, 1, 47, 93,225, 50, 16, -222, 93,225, 50, 49, 48, 1, 16, 51, 50, 54, 53, 17, 51, 17, 35, 39, 35, 6, 35, 34, 39, 22, 21, 17, 35, 17, 51, 1, 86,238,160, -147,182,147, 27, 10, 97,204,173, 75, 6,182,182, 1,135,254,252,186,211, 2, 58,251,182,147,167, 88,153, 87,254,192, 6, 54, 0, - 0, 1, 0, 61, 0, 0, 4, 74, 4, 74, 0, 13, 0,116, 64, 70, 13, 16, 10, 16, 72, 8, 13, 1, 53, 12, 69, 12, 85, 12, 3, 36, - 12, 1, 21, 12, 1, 25, 6, 41, 6, 57, 6, 3, 13,149, 12,165, 12, 2,134, 12, 1, 99, 12,115, 12, 2, 5, 12, 1, 12, 20, 4, - 68, 4,116, 4, 3, 4, 4, 0, 8, 71, 9, 15, 7, 1, 1, 1, 0, 64, 10, 16, 72, 0,184,255,240,182, 0, 4, 13, 21, 8, 0, - 15, 0, 63, 50, 63, 51, 1, 47, 56, 43, 50, 93, 16,222,225, 18, 57, 61, 47, 93, 51, 93, 93, 93, 93, 51, 49, 48, 93, 93, 93, 93, - 93, 43, 19, 51, 19, 18, 23, 51, 54, 18, 17, 51, 16, 2, 7, 35, 61,189,223,110, 11, 6,157,158,183,201,225,187, 4, 74,253,182, -254,223, 69,164, 1,154, 1,114,254,147,254, 22,243, 0, 0, 1, 0,172,254,111, 4, 43, 6, 20, 0, 44, 0,151, 64, 95, 41, 70, - 34, 26, 31, 0,159, 36, 1, 95, 28, 1,159, 0, 1, 28, 0, 36, 36, 0, 28, 3, 22, 17, 70,144, 12, 1, 12, 46, 5, 72, 0, 22, - 1, 22,123, 20, 1,109, 20, 1, 73, 20, 1, 59, 20, 1, 45, 20, 1, 8, 20, 24, 20, 2, 20, 8, 21, 24, 72,121, 9, 1,107, 9, - 1, 73, 9, 1, 59, 9, 1, 45, 9, 1, 20, 9, 14, 35, 26, 2, 79, 47, 44, 1, 44, 44, 14, 37, 34, 80, 35, 0, 14,184, 1, 6, - 0, 63, 63,225, 50, 18, 57, 47, 93,225, 57, 17, 18, 57, 57, 93, 93, 93, 93, 93, 43, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 16, -222, 93,225, 18, 23, 57, 47, 47, 47, 93, 93, 93, 18, 57, 57, 51,225, 49, 48, 1, 21, 35, 34, 6, 21, 20, 22, 22, 23, 22, 22, 21, - 20, 7, 35, 54, 53, 52, 38, 39, 36, 17, 52, 54, 55, 53, 38, 53, 52, 54, 55, 6, 35, 35, 53, 33, 21, 35, 34, 4, 21, 20, 22, 51, - 3,217,201,207,217, 76,139,179,162,151,121,170,121, 99,188,254, 74,151,132,215,150,185,176,104, 62, 2,252, 69,217,254,217,183, -196, 3,119,137,163,149, 91,105, 56, 32, 29,100,111,149,166,162,100, 53, 65, 29, 68, 1, 90,134,211, 42, 12, 59,220,114,150, 51, - 12,153,153,160,139,113,104, 0,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0, 14,255,236, 4,190, - 4, 74, 0, 20, 0,121, 64, 53, 75, 11, 91, 11,107, 11, 3, 58, 11, 1, 40, 11, 1, 11, 11, 1, 11, 8, 71, 9, 84, 15, 1, 69, - 15, 1, 54, 15, 1, 39, 15, 1, 4, 15, 20, 15, 2, 15, 0, 0, 5, 71, 17, 0, 9, 64, 9, 80, 9, 96, 9, 4, 17,184,255,192, - 64, 23, 18, 22, 72, 9, 17, 9, 17, 21, 22, 12, 16, 7, 10, 80, 13, 15, 9, 21, 19, 80, 0, 3, 22, 0, 63, 51,225, 63, 63,225, - 50, 50, 57, 17, 18, 1, 57, 57, 47, 47, 43, 93, 16,225, 51, 17, 51, 93, 93, 93, 93, 93, 16,225, 51, 93, 93, 93, 93, 49, 48, 37, - 21, 6, 35, 34, 17, 17, 33, 17, 35, 17, 35, 53, 55, 33, 21, 35, 17, 20, 51, 50, 4,160, 52, 85,226,254,109,182,222,138, 4, 38, -210, 90, 46,150,144, 26, 1, 6, 2,190,252, 80, 3,176, 74, 80,154,253, 78,125, 0, 2, 0,158,254, 20, 4, 59, 4, 94, 0, 16, - 0, 27, 0, 53, 64, 31, 22, 72, 12, 64, 21, 24, 72, 12, 29, 17, 1, 4, 71, 0, 5,176, 5, 2, 5, 17, 0, 19, 80, 15, 22, 25, - 80, 9, 16, 4, 27, 0, 63, 63,225, 63,225, 50, 50, 1, 47, 93,225, 50, 50, 16,222, 43,225, 49, 48, 37, 35, 22, 21, 17, 35, 17, - 16, 18, 51, 50, 18, 17, 16, 2, 35, 34, 39, 22, 51, 50, 54, 53, 52, 38, 35, 32, 17, 1, 84, 6, 6,182,253,218,206,248,247,215, -168,113,112,171,144,128,130,144,254,231, 70,174, 97,254,221, 4, 19, 1, 7, 1, 48,254,205,254,252,254,242,254,211,251,100,211, -209,209,207,254,116, 0, 0, 1, 0,172,254,111, 4, 41, 4, 94, 0, 23, 0,103, 64, 66, 12, 3, 70, 1,144, 22, 1, 22, 25, 17, - 72, 0, 8, 1, 8,153, 6, 1,123, 6,139, 6, 2,109, 6, 1, 73, 6, 1, 59, 6, 1, 44, 6, 1, 8, 6, 24, 6, 2,121, 20, -137, 20, 2,107, 20, 1, 73, 20, 1, 59, 20, 1, 44, 20, 1, 6, 20, 0, 15, 81, 13, 10, 16, 0,184, 1, 6, 0, 63, 63, 51,225, - 18, 57, 57, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 16,222, 93, 50,225, 51, 49, 48, 1, 35, 54, 53, 52, - 38, 39, 36, 17, 16, 33, 50, 23, 7, 38, 35, 32, 17, 20, 22, 23, 4, 21, 20, 3,172,166,121,132,163,254, 84, 2, 55,164,158, 62, -158,114,254,145,155,192, 1,102,254,111,163, 99, 60, 59, 28, 71, 1,181, 2, 90, 59,158, 57,254, 72,187,134, 35, 66,186,141, 0, - 0, 2, 0,129,255,236, 4,150, 4, 74, 0, 12, 0, 24, 0, 50, 64, 30, 2, 23, 72, 1,223, 4,239, 4,255, 4, 3, 4, 26, 17, - 72, 0, 10,240, 10, 2, 10, 2, 14, 80, 12, 15, 20, 80, 7, 22, 0, 63,225, 63,225, 50, 1, 47, 93,225, 16,222, 93, 50,225, 57, - 49, 48, 1, 21, 33, 22, 21, 20, 0, 35, 34, 2, 17, 16, 33, 23, 35, 34, 6, 21, 20, 22, 51, 50, 54, 53, 16, 4,150,254,245,178, -254,255,224,221,254, 2, 43, 59, 59,199,168,153,142,139,146, 4, 74,154,195,245,235,254,223, 1, 31, 1, 1, 2, 62,154,195,225, -185,208,191,174, 1, 13, 0, 1, 0,106,255,229, 4, 57, 4, 74, 0, 16, 0, 83, 64, 29, 10, 14, 26, 14, 2, 14, 3, 71,253, 12, - 1, 12, 64, 20, 23, 72, 61, 12, 1, 47, 12, 1, 0, 12, 1, 12, 12, 17, 1,184,255,232, 64, 20, 9, 18, 72, 1, 95, 7, 1, 7, - 18, 15, 2, 13, 80, 16, 15, 7, 5, 80, 10, 22, 0, 63,225, 51, 63,225, 50, 57, 1, 16,206, 93, 50, 43, 18, 57, 47, 93, 93, 93, - 43, 93,225, 51, 93, 49, 48, 1, 21, 33, 17, 20, 51, 50, 55, 21, 6, 35, 32, 17, 17, 33, 53, 55, 4, 57,254, 37,209,107, 84, 84, -136,254,150,254,194,134, 4, 74,154,253,162,215, 20,135, 35, 1, 88, 2,115, 74, 80, 0, 0, 1, 0,160,255,236, 4, 59, 4, 74, - 0, 17, 0, 51,179, 10, 70, 9, 9,184,255,208, 64, 23, 16, 24, 72, 9, 7, 71, 12, 19, 2, 71, 0, 17,176, 17, 2, 17, 4, 80, - 15, 22, 9, 0, 15, 0, 63, 50, 63,225, 1, 47, 93,225, 16,222,225, 51, 43, 16,229, 49, 48, 19, 51, 17, 16, 33, 50, 54, 53, 52, - 39, 51, 22, 21, 16, 2, 35, 32, 17,160,182, 1, 18,150,135, 63,182, 63,230,243,254, 62, 4, 74,253,178,254,133,232,247,237,253, -245,253,254,194,254,210, 2, 6, 0, 2, 0, 74,254, 20, 4,131, 4, 94, 0, 21, 0, 28, 0, 92, 64, 58, 22, 86, 21,102, 21, 2, - 71, 21, 1, 21, 73, 11, 6, 0, 0, 3, 24, 70, 15, 17, 1, 17, 30, 9, 73, 80, 3,144, 3,160, 3,192, 3,208, 3, 5, 47, 3, - 63, 3, 2, 3, 6, 26, 80, 14, 5, 5, 14, 16, 22, 11, 80, 20, 1, 22, 0, 27, 0, 63, 63, 51,225, 50, 63, 51, 47, 16,225, 57, - 1, 47, 93, 93,225, 16,222, 93,225, 17, 57, 47, 51, 51,225, 93, 93, 50, 49, 48, 1, 17, 36, 17, 16, 55, 23, 6, 6, 21, 16, 5, - 17, 16, 33, 50, 18, 21, 16, 2, 7, 17, 17, 36, 17, 16, 35, 34, 21, 2, 12,254, 62,207,120, 97, 68, 1, 32, 1, 25,164,186,250, -223, 1, 49,176,129,254, 20, 1,218, 25, 2, 28, 1, 58,245, 90,129,206,134,254,129, 33, 2, 94, 1,125,254,217,252,254,248,254, -201, 14,254, 38, 2,111, 29, 1,153, 1,142,228, 0, 1, 0, 43,254, 20, 4,141, 4, 78, 0, 30, 0,230, 64, 92, 3, 30, 4, 16, - 20, 15, 17, 2, 17, 0, 30, 4, 19, 20, 15, 18, 1, 18, 16, 19, 20, 15, 20, 3, 0, 30, 4, 30, 6, 30, 22, 30, 38, 30, 3, 73, - 20, 89, 20,201, 20, 3, 21, 17, 1, 6, 17, 38, 17,198, 17, 3, 9, 15, 25, 15, 41, 15, 3, 70, 4, 86, 4,198, 4, 3, 26, 1, - 1, 9, 1, 41, 1,201, 1, 3, 20, 30, 4, 15, 30, 15, 25, 9, 19, 16, 0, 3, 4, 18, 1, 2,184,255,192,181, 13, 16, 72, 2, - 2, 9,184,255,192, 64, 43, 9, 12, 72, 9, 9, 32, 17, 18, 18, 0, 25, 1, 25, 25, 31, 20, 15, 12, 22, 80, 30, 4, 9, 24, 27, - 15, 0, 19, 3, 16, 4, 1, 17, 18, 27, 9, 7, 80, 12, 27, 2, 1, 15, 0, 63, 51, 63,225, 51, 63, 51, 18, 23, 57, 63, 51, 18, - 57, 57,225, 17, 57, 57, 17, 1, 51, 47, 93, 51, 47, 51, 17, 51, 47, 43, 51, 47, 43, 51, 18, 23, 57, 17, 18, 57, 57, 17, 51, 17, - 51, 93, 93, 93, 93, 93, 93, 93, 93, 16,125,135,196,196, 16,135,196,196, 16,135, 8,196, 8,196, 16,135, 8,196, 8,196, 49, 48, - 1, 1, 51, 1, 19, 22, 22, 51, 50, 55, 21, 6, 35, 34, 38, 39, 3, 1, 35, 1, 3, 38, 35, 34, 7, 53, 54, 51, 50, 22, 23, 2, -125, 1, 55,178,254, 95,186, 46, 80, 64, 44, 36, 66, 52,102,135, 71,147,254,158,195, 1,219,180, 68, 84, 29, 34, 53, 76, 81,110, - 55, 1,250, 2, 80,252,248,254, 51,114, 89, 8,139, 19, 90,177, 1,121,253,124, 3, 62, 1,190,168, 10,143, 17,109,139, 0, 1, - 0, 80,254, 20, 4,131, 6, 18, 0, 22, 0,105, 64, 22, 1, 86, 11,102, 11, 2, 71, 11, 1, 11, 73, 21, 12, 12, 16, 3, 70, 8, - 6, 70, 5, 5,184,255,208, 64, 43, 16, 24, 72, 5, 15, 8, 1, 8, 24, 19, 70, 64, 16, 80, 16,144, 16,160, 16,192, 16,208, 16, - 6, 47, 16, 63, 16, 2, 16, 6, 17, 15, 1, 21, 80, 10, 13, 22, 11, 27, 0, 0, 0, 63, 63, 63, 51,225, 50, 63, 51, 1, 47, 93, - 93,225, 16,206, 93, 50, 43, 16,229, 16,225, 17, 57, 47, 51,225, 93, 93, 50, 49, 48, 1, 17, 36, 17, 52, 3, 51, 18, 21, 16, 5, - 17, 35, 17, 38, 2, 17, 17, 51, 17, 16, 5, 17, 2,170, 1, 45, 63,172, 63,254, 39,158,233,211,172, 1, 16, 6, 18,250,115, 28, - 1,152,250, 1, 23,254,236,247,253,201, 26,254, 38, 1,218, 8, 1, 14, 1, 39, 2, 31,253,239,254, 90, 16, 5,143, 0, 0, 1, - 0, 90,255,236, 4,117, 4, 74, 0, 31, 0,170, 64, 16, 86, 19,230, 19,246, 19, 3, 71, 19, 1, 54, 19, 1, 19, 18, 18,184,255, -240, 64, 99, 15, 18, 72, 87, 18, 1, 54, 18, 70, 18, 2, 18, 21, 25, 86, 11,102, 11, 2, 71, 11, 1, 11, 73, 8, 8, 30, 16, 73, - 15, 21, 63, 21, 2, 21, 33, 89, 0,233, 0,249, 0, 3, 72, 0, 1, 57, 0, 1, 0, 1, 1, 16, 15, 18, 72, 88, 1, 1, 57, 1, - 73, 1, 2, 1, 3, 73, 48, 30, 64, 30, 80, 30,144, 30,160, 30,192, 30,208, 30, 7, 47, 30, 1, 30, 9, 9, 0, 25, 14, 5, 80, - 23, 28, 22, 18, 0, 15, 0, 63, 50, 63, 51,225, 50, 50, 17, 57, 47, 1, 47, 93, 93,225, 51, 93, 93, 43, 17, 51, 93, 93, 93, 16, -222, 93,225, 17, 57, 47,225, 93, 93, 57, 17, 51, 93, 93, 43, 17, 51, 93, 93, 93, 49, 48, 19, 51, 2, 17, 16, 51, 50, 54, 53, 17, - 51, 17, 20, 22, 51, 50, 17, 16, 3, 51, 18, 17, 16, 33, 34, 39, 35, 6, 35, 32, 17, 16,195,165,104,139, 67, 75,157, 79, 63,139, -105,166,105,254,223,181, 50, 11, 50,181,254,223, 4, 74,254,250,254,208,254,111,142,126, 1, 50,254,206,130,138, 1,145, 1, 50, - 1, 4,254,254,254,204,253,216,178,178, 2, 40, 1, 46,255,255, 1, 3,255,236, 3,248, 5,217, 2, 38, 1,134, 0, 0, 1, 6, - 0,106,185, 0, 0, 23, 64, 13, 2, 1, 16, 17, 38, 2, 1, 23, 18, 22, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0,160,255,236, 4, 59, 5,217, 2, 38, 1,146, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 22, 17, 38, 2, 1,184,255, -248,180, 24, 28, 0, 12, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, - 1, 6, 1, 84, 72, 0, 0, 19, 64, 11, 2, 28, 17, 38, 2, 72, 20, 24, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, -255,236, 4, 59, 6, 33, 2, 38, 1,146, 0, 0, 1, 6, 1, 84, 39, 0, 0, 19, 64, 11, 1, 26, 17, 38, 1, 31, 18, 22, 0, 12, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 90,255,236, 4,117, 6, 33, 2, 38, 1,150, 0, 0, 1, 6, 1, 84, 51, 0, 0, 19, - 64, 11, 1, 40, 17, 38, 1, 49, 32, 36, 30, 21, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 43, 2, 38, - 0, 40, 0, 0, 1, 7, 0,106, 0, 25, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, 1, 0, 18, 22, 1, 0, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0, 0, 1, 0, 23,255,236, 4,141, 5,182, 0, 27, 0,125,182, 18, 16, 16,128, 16, 2, 16,184,255,192, 64, - 73, 21, 24, 72, 16, 16, 10, 90, 11,255, 13, 1, 13, 13,224, 11,240, 11, 2, 70, 11, 86, 11, 2, 55, 11, 1, 47, 0, 63, 0, 2, - 11, 0, 1, 11, 0, 11, 0, 28, 5, 90, 23, 29, 9, 95, 64, 18,160, 18,176, 18,208, 18,224, 18,240, 18, 6, 18, 18, 14, 3, 95, - 1, 26, 19, 17, 12, 95, 14, 3, 11, 18, 0, 63, 63,225, 50, 63, 51,225, 17, 57, 47, 93,225, 1, 16,222,225, 18, 57, 57, 47, 47, - 93, 93, 93, 93, 93, 51, 47, 93, 16,225, 50, 47, 43, 93, 50, 49, 48, 37, 53, 22, 51, 50, 53, 53, 52, 35, 35, 17, 35, 17, 33, 53, - 33, 21, 33, 17, 33, 50, 22, 21, 21, 20, 6, 35, 34, 2,152, 68, 67,180,227,244,186,254,213, 3, 73,254,156, 1, 8,187,206,189, -171, 88, 4,160, 21,226,133,231,253, 35, 5, 18,164,164,254,111,193,178,137,196,213, 0,255,255, 0,246, 0, 0, 4, 47, 7,115, - 2, 38, 1, 97, 0, 0, 1, 7, 0,118, 0,109, 1, 82, 0, 19, 64, 11, 1, 12, 5, 38, 1, 58, 6, 9, 4, 0, 37, 1, 43, 53, - 0, 43, 53, 0, 0, 1, 0,129,255,236, 4,156, 5,203, 0, 23, 0, 68, 64, 39, 7, 64, 20, 24, 72, 7, 1, 7, 1, 13, 18, 25, - 0, 3, 91, 0, 13,240, 13, 2, 13, 3, 95,104, 0, 1, 0, 0, 5, 21, 95, 19, 16, 4, 5, 95, 7, 10, 19, 0, 63, 51,225, 63, - 51,225, 18, 57, 47, 93,225, 1, 47, 93,225, 50, 16,206, 17, 57, 57, 47, 47, 43, 49, 48, 1, 33, 21, 33, 18, 33, 50, 55, 21, 6, - 35, 32, 0, 17, 16, 0, 33, 50, 23, 7, 38, 35, 34, 6, 1, 76, 2,117,253,133, 23, 1,192,130,197,146,212,254,203,254,184, 1, -102, 1, 54,220,163, 78,154,151,188,250, 3, 78,162,253,227, 58,162, 59, 1,136, 1,105, 1, 90, 1,148, 86,156, 78,249,255,255, - 0,141,255,236, 4, 63, 5,203, 2, 6, 0, 54, 0, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0,255,255, - 0,225, 0, 0, 3,233, 7, 43, 2, 38, 0, 44, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 16, 5, 38, 2, - 1, 2, 18, 22, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,137,255,236, 3,211, 5,182, 2, 6, 0, 45, 0, 0, - 0, 2, 0, 0,255,236, 4,184, 5,182, 0, 24, 0, 32, 0,132, 64, 88, 1, 8, 9, 14, 72, 1,120, 0, 1, 87, 0,103, 0, 2, - 0,250, 14, 12, 8, 20, 24, 72,153, 12,169, 12, 2,120, 12,136, 12, 2, 12, 16, 9, 15, 72, 12, 14, 16, 25, 90, 23, 96, 14,144, - 14,160, 14,224, 14,240, 14, 5, 71, 23, 1, 14, 23, 14, 23, 6, 28,251, 19, 34, 0, 6, 1, 6, 32, 95, 16, 16, 14, 25, 96, 23, - 18, 0, 95, 14, 3, 9, 97, 7, 4, 19, 0, 63, 51,225, 63,225, 63,225, 17, 57, 47,225, 1, 47, 93, 16,214,225, 17, 57, 57, 47, - 47, 93, 93, 16,225, 50, 17, 51, 43, 93, 93, 43, 16,225, 93, 93, 50, 43, 49, 48, 1, 3, 2, 6, 35, 34, 39, 53, 22, 51, 50, 54, - 54, 18, 55, 33, 17, 51, 32, 17, 20, 6, 35, 35, 17, 19, 51, 32, 17, 52, 38, 35, 35, 1,119, 20, 20,127,112, 56, 40, 32, 36, 35, - 53, 25, 41, 3, 1,242, 39, 1,190,228,216,207,166, 45, 1, 12,138,155, 20, 5, 18,253,220,253,195,197, 18,145, 14, 70,184, 3, - 97,214,253,152,254, 94,208,220, 5, 18,251,142, 1, 12,134,120, 0, 2, 0, 66, 0, 0, 4,176, 5,182, 0, 18, 0, 26, 0, 67, - 64, 37, 11, 19, 90, 8, 0, 0, 4, 22,251, 15, 28, 7, 3, 90, 4, 64, 10, 15, 72, 4, 26, 2, 95, 11,104, 7, 1, 7, 7, 9, - 5, 3, 19, 96, 3, 0, 18, 0, 63, 50,225, 63, 51, 57, 47, 93, 51,225, 50, 1, 47, 43,225, 50, 16,214,225, 17, 57, 47, 51,225, - 50, 49, 48, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 22, 21, 20, 6, 35, 39, 51, 32, 17, 52, 38, 35, 35, 2, 37, -254,194,165,165, 1, 62,166, 39,219,227,228,216, 41, 45, 1, 12,138,155, 20, 2,170,253, 86, 5,182,253,152, 2,104,253,152,215, -203,208,220,160, 1, 12,134,120, 0, 1, 0, 23, 0, 0, 4,141, 5,182, 0, 18, 0,105,181, 16, 17,128, 17, 2, 17,184,255,192, - 64, 59, 21, 24, 72, 17, 17, 0, 11, 90, 12,255, 14, 1, 14, 14,224, 12,240, 12, 2, 70, 12, 86, 12, 2, 55, 12, 1, 12, 12, 19, - 6, 90, 5, 20, 18, 13, 95, 15, 10, 95, 48, 0, 64, 0,160, 0,176, 0,208, 0, 5, 0, 0, 12, 15, 3, 6, 12, 18, 0, 63, 51, - 63, 18, 57, 47, 93,225, 16,225, 50, 1, 16,222,225, 18, 57, 47, 93, 93, 93, 51, 47, 93, 16,225, 50, 50, 47, 43, 93, 49, 48, 1, - 33, 50, 22, 21, 17, 35, 17, 52, 35, 35, 17, 35, 17, 33, 53, 33, 21, 33, 1,252, 1, 8,187,206,186,227,244,186,254,213, 3, 73, -254,156, 3,129,193,178,253,242, 1,246,231,253, 35, 5, 18,164,164, 0,255,255, 0,211, 0, 0, 4,174, 7,115, 2, 38, 1,180, - 0, 0, 1, 7, 0,118, 0,156, 1, 82, 0, 19, 64, 11, 1, 17, 5, 38, 1, 66, 11, 14, 4, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 27,255,236, 4,176, 7,105, 2, 38, 1,189, 0, 0, 1, 7, 2, 54, 0, 6, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, - 1, 6, 29, 24, 14, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,135,254,127, 4, 70, 5,182, 0, 11, 0, 67, 64, 42, 2, 90, - 0, 3, 16, 3,144, 3,160, 3,192, 3,208, 3, 6, 3, 3, 5, 9, 90, 0, 13, 8, 90, 0, 5,224, 5,240, 5, 3, 5, 10, 6, - 3, 8, 95, 5, 3, 3, 1, 5, 0, 47, 51, 51, 47, 16,225, 63, 51, 1, 47, 93,225, 16,222,225, 17, 57, 47, 93,225, 49, 48, 33, - 33, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4, 70,254,118,176,254,123,187, 2, 73,187,254,127, 1,129, 5,182,250,240, 5, 16, -255,255, 0, 33, 0, 0, 4,172, 5,188, 2, 6, 0, 36, 0, 0, 0, 2, 0,135, 0, 0, 4,111, 5,182, 0, 11, 0, 19, 0, 51, - 64, 29, 15, 91, 3, 8, 21, 5, 12, 90, 0, 0,224, 0,240, 0, 3, 0, 19, 95, 5, 5, 12, 4, 95, 1, 3, 12, 96, 0, 18, 0, - 63,225, 63,225, 18, 57, 47,225, 1, 47, 93,225, 50, 16,222, 50,225, 49, 48, 51, 17, 33, 21, 33, 17, 33, 32, 17, 20, 4, 35, 37, - 33, 32, 17, 52, 38, 35, 35,135, 3,144,253, 43, 1, 16, 2, 29,254,249,251,254,213, 1, 26, 1, 82,171,198,251, 5,182,164,254, - 60,254, 94,208,220,160, 1, 12,133,121,255,255, 0,135, 0, 0, 4,113, 5,182, 2, 6, 0, 37, 0, 0,255,255, 0,246, 0, 0, - 4, 47, 5,182, 2, 6, 1, 97, 0, 0, 0, 2, 0, 6,254,127, 4,197, 5,182, 0, 13, 0, 19, 0,129, 64, 25, 9, 16, 18, 24, - 72, 11, 18, 1, 18, 32, 11, 24, 72, 11, 8, 1, 8, 32, 11, 24, 72, 25, 10, 1, 19,184,255,240, 64, 13, 9, 24, 72, 19, 91, 7, - 16, 90, 10, 20, 7, 1, 10,184,255,192, 64, 37, 10, 24, 72, 2, 10, 1, 7, 10, 7, 10, 5, 12, 1,251, 0, 0, 14, 90, 12, 21, - 4,251, 5, 16, 95, 10, 3, 19, 12, 6, 95, 3, 0, 5, 5, 3, 18, 0, 63, 51, 47, 51, 16,225, 50, 50, 63,225, 1, 47,225, 16, -220,225, 51, 47,225, 17, 18, 57, 57, 47, 47, 93, 43, 93, 16,225, 16,225, 43, 93, 49, 48, 43, 93, 43, 93, 43, 1, 35, 17, 33, 17, - 35, 17, 51, 54, 18, 19, 33, 17, 51, 33, 17, 35, 2, 2, 7, 4,197,177,252,162,176,113,129,174, 12, 2, 80,195,254,131,242, 17, -163,107,254,127, 1,129,254,127, 2, 39,236, 2,204, 1, 88,250,240, 4,106,254,246,253,107,203,255,255, 0,217, 0, 0, 4, 35, - 5,182, 2, 6, 0, 40, 0, 0, 0, 1, 0, 0, 0, 0, 4,205, 5,182, 0, 17, 0,203, 64, 76,103, 9,119, 9,135, 9, 3, 6, - 9, 22, 9, 54, 9, 70, 9, 86, 9, 5, 9, 5, 5, 70, 13, 86, 13,246, 13, 3, 55, 13, 1, 5, 13, 21, 13, 2, 13, 90,104, 0, -120, 0,136, 0, 3, 9, 0, 25, 0, 57, 0, 73, 0, 89, 0, 5, 0, 4, 4,103, 14, 1, 9, 14, 25, 14, 2, 14, 14, 17, 10,103, - 2, 1, 2, 1,184,255,240, 64, 9, 1, 1,103, 16,135, 16, 2, 16, 17,184,255,240, 64, 50, 17,104, 7,136, 7, 2, 7, 8, 16, - 8, 8,104, 11,136, 11, 2, 11, 16, 10, 64, 10, 80, 10,144, 10,160, 10,192, 10,208, 10, 7, 10, 16, 10, 12, 15, 6, 3, 15, 3, - 1, 17, 14, 10, 18, 7, 4, 1, 3, 0, 63, 51, 51, 63, 51, 51, 18, 57, 57, 17, 51, 17, 51, 1, 47, 56, 93, 51, 93, 51, 47, 56, - 51, 93, 47, 56, 51, 93, 51, 47, 56, 50, 93, 17, 18, 57, 47, 93, 93, 51, 17, 51, 93, 93,225, 93, 93, 93, 50, 17, 51, 93, 93, 49, - 48, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, 17, 1, 35, 1,117,254,151,178, 1, 93,155, 1, 86,178,254,156, - 1,115,185,254,162,155,254,155,182, 2,242, 2,196,253, 60, 2,196,253, 60, 2,196,253, 60,253, 14, 2,229,253, 27, 2,229,253, - 27, 0, 0, 1, 0,139,255,236, 4, 47, 5,203, 0, 35, 0, 81, 64, 46, 6, 0, 22, 0, 2, 0, 17, 22, 91, 33, 33, 4, 17, 17, - 9, 14, 91, 4, 37, 28, 0, 9, 1, 9, 0, 17, 96,104, 18, 1,159, 18, 1, 18, 18, 12, 27, 25, 96, 30, 4, 12, 96, 10, 7, 19, - 0, 63, 51,225, 63,225, 51, 18, 57, 47, 93, 93,225, 57, 1, 47, 93, 51, 16,222,225, 17, 57, 47, 17, 51, 47,225, 18, 57, 93, 49, - 48, 1, 21, 22, 22, 21, 20, 4, 33, 34, 39, 53, 22, 51, 32, 17, 16, 33, 35, 53, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 33, - 50, 22, 21, 20, 6, 2,190,178,191,254,228,254,251,242,145,184,199, 1, 99,254,118,190,176,180,201,140,118,186,168, 93,194, 1, - 5,209,235,179, 3, 2, 6, 23,182,143,203,233, 79,170, 96, 1, 27, 1, 8,151,148,125,103,122,121,125,150,198,165,137,186, 0, - 0, 1, 0,137, 0, 0, 4, 70, 5,182, 0, 16, 0, 98,185, 0, 15,255,240, 64, 64, 14, 24, 72, 53, 15, 69, 15, 2, 7, 16, 14, - 24, 72, 58, 7, 74, 7, 2, 13, 9, 7, 25, 7, 41, 7, 3, 7, 10,251,224, 9,240, 9, 2, 9,105, 18, 6, 15, 22, 15, 38, 15, - 3, 15, 5, 1,251, 0, 0,224, 0,240, 0, 3, 0, 16, 5, 9, 18, 13, 7, 0, 3, 0, 63, 50, 50, 63, 51, 51, 1, 47, 93,225, - 50, 50, 93, 16,254, 93,225, 50, 93, 50, 49, 48, 93, 43, 93, 43, 19, 51, 17, 20, 7, 7, 51, 1, 51, 17, 35, 17, 52, 19, 35, 1, - 35,137,174, 7, 7, 6, 2, 66,213,172, 18, 8,253,188,215, 5,182,252,224,142,112,150, 4,180,250, 74, 3, 25,140, 1, 21,251, - 70, 0,255,255, 0,137, 0, 0, 4, 70, 7,105, 2, 38, 1,178, 0, 0, 1, 7, 2, 54, 0, 0, 1, 82, 0, 21,180, 1, 19, 5, - 38, 1,184,255,255,180, 22, 17, 0, 8, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,211, 0, 0, 4,174, 5,182, 0, 10, 0,130, - 64, 96, 5, 7, 21, 7, 37, 7,213, 7,229, 7,245, 7, 6, 10, 2, 26, 2, 42, 2,218, 2,234, 2,250, 2, 6, 39, 10, 1, 10, - 7, 7, 3, 90, 0, 4, 96, 4,112, 4,128, 4, 4, 4, 41, 8,217, 8,233, 8,249, 8, 4, 8, 9, 16, 9, 9, 41, 1,217, 1, -233, 1,249, 1, 4, 1,208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0, 7, 2, 8, 5, 3, 4, - 0, 18, 0, 63, 50, 63, 51, 57, 57, 1, 47, 56, 93, 93, 93, 50, 93, 50, 47, 56, 51, 93, 47, 93,225, 50, 17, 51, 93, 49, 48, 0, - 93, 93, 33, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4,174,219,253,186,186,186, 2, 54,206,253,203, 2,229,253, 27, 5,182,253, - 60, 2,196,253, 66, 0, 0, 1, 0, 4,255,233, 4, 70, 5,182, 0, 15, 0,111, 64, 33, 13, 64, 20, 24, 72,173, 13, 1,124, 13, -140, 13,156, 13, 3, 90, 13,106, 13, 2, 45, 13, 61, 13, 77, 13, 3, 11, 13, 27, 13, 2, 5,184,255,240, 64, 16, 9, 24, 72, 4, - 24, 9, 24, 72, 3, 90, 0, 14, 16, 14, 2, 14,184,255,192, 64, 22, 13, 24, 72, 14, 14, 8, 1, 90, 0, 17, 8, 3, 95, 14, 3, - 11, 96, 9, 6, 19, 0, 18, 0, 63, 63, 51,225, 63,225, 1, 47, 16,222,225, 18, 57, 47, 43, 93,225, 49, 48, 43, 43, 93, 93, 93, - 93, 93, 43, 33, 35, 17, 33, 2, 2, 35, 34, 39, 53, 22, 51, 50, 18, 19, 33, 4, 70,187,254,215,117,177,175, 71, 66, 57, 56,102, -110,126, 2,127, 5, 18,252, 47,254,168, 25,150, 25, 1,105, 3,206, 0,255,255, 0,113, 0, 0, 4, 92, 5,182, 2, 6, 0, 48, - 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, 2, 6, 0, 43, 0, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, 0, 50, - 0, 0,255,255, 0,135, 0, 0, 4, 70, 5,182, 2, 6, 1,110, 0, 0,255,255, 0,176, 0, 0, 4, 70, 5,182, 2, 6, 0, 51, - 0, 0,255,255, 0,129,255,236, 4,156, 5,203, 2, 6, 0, 38, 0, 0,255,255, 0,102, 0, 0, 4,100, 5,182, 2, 6, 0, 55, - 0, 0, 0, 1, 0, 27,255,236, 4,176, 5,182, 0, 23, 0,162, 64, 9, 8, 13, 24, 13, 2, 13, 1, 20, 20,184,255,224,179, 20, - 24, 72, 20,184,255,224, 64, 89, 15, 18, 72, 7, 20, 7, 20, 14,232, 23, 1, 73, 23, 89, 23, 2, 56, 23, 1, 41, 23, 1, 26, 23, - 1, 9, 23, 1, 23, 0, 0, 25,231, 15, 1, 70, 15, 86, 15, 2, 55, 15, 1, 38, 15, 1, 21, 15, 1, 6, 15, 1, 15, 31, 14, 79, - 14, 95, 14,111, 14, 4, 14, 14, 24,101, 20, 1, 54, 20,230, 20, 2, 37, 20, 1, 13, 1, 20, 3, 0, 10, 95, 8, 5, 19, 14, 0, - 3, 0, 63, 50, 63, 51,225, 17, 23, 57, 93, 93, 93, 17, 1, 51, 47, 93, 51, 93, 93, 93, 93, 93, 93, 17, 51, 47, 51, 93, 93, 93, - 93, 93, 93, 18, 57, 57, 61, 47, 24, 47, 43, 43, 17, 51, 51, 93, 49, 48, 1, 1, 14, 2, 35, 34, 39, 53, 22, 51, 50, 54, 55, 1, - 51, 1, 22, 23, 22, 23, 51, 55, 1, 4,176,254, 84, 76,120,178,126,104, 74, 85, 93,110,121, 54,253,238,204, 1,127, 12, 8, 8, - 9, 2, 39, 1, 56, 5,182,251,250,183,171, 98, 30,185, 45,103,122, 4, 63,252,215, 25, 22, 25, 20,109, 3, 24,255,255, 0, 27, -255,236, 4,180, 5,203, 2, 6, 1,115, 0, 0,255,255, 0, 53, 0, 0, 4,150, 5,182, 2, 6, 0, 59, 0, 0, 0, 1, 0,135, -254,127, 4,186, 5,182, 0, 11, 0, 58, 64, 34, 3,251, 2, 2, 9, 90,127, 0,143, 0, 2, 0, 13, 8, 90, 0, 5,224, 5,240, - 5, 3, 5, 10, 6, 3, 0, 8, 95, 5, 3, 3, 5, 18, 0, 63, 51, 47, 16,225, 50, 63, 51, 1, 47, 93,225, 16,220, 93,225, 51, - 47,225, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 4, 10,176,176,252,125,187, 2, 14,186,166,253,217, 1,129, 5, -182,250,240, 5, 16, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 16, 0, 47, 64, 26, 14, 1, 90, 0, 18, 9, 90, 0, 6,224, - 6,240, 6, 3, 6, 14, 12, 95, 4, 4, 1, 15, 7, 3, 1, 18, 0, 63, 63, 51, 18, 57, 47,225, 51, 1, 47, 93,225, 16,222,225, - 50, 49, 48, 33, 35, 17, 6, 35, 32, 17, 17, 51, 17, 20, 22, 51, 50, 55, 17, 51, 4, 70,187,227,166,254,133,187,103,110,153,219, -187, 2, 86, 90, 1,115, 2, 71,253,209,130,101, 80, 2,198, 0, 0, 1, 0,121, 0, 0, 4, 86, 5,182, 0, 11, 0, 92, 64, 64, -101, 8, 1, 86, 8, 1, 55, 8, 71, 8,247, 8, 3,123, 5,139, 5, 2, 8, 90, 5, 5, 1, 9, 90,192, 0,208, 0, 2, 15, 0, - 63, 0, 2, 0, 13, 4, 90, 0, 1, 16, 1, 48, 1, 64, 1, 80, 1,144, 1,160, 1, 7, 1, 10, 6, 2, 3, 8, 4, 95, 1, 18, - 0, 63,225, 50, 63, 51, 51, 1, 47, 93,225, 16,222, 93, 93,225, 17, 57, 47,225, 93, 93, 93, 93, 49, 48, 33, 33, 17, 51, 17, 51, - 17, 51, 17, 51, 17, 51, 4, 86,252, 35,166,245,166,246,166, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 1, 0, 61,254,127, - 4,205, 5,182, 0, 15, 0,127, 64, 89,101, 12, 1, 86, 12, 1, 55, 12, 71, 12,247, 12, 3,123, 9,139, 9, 2, 12, 90, 9, 9, - 5, 0, 3,251, 0, 2,144, 2,160, 2,176, 2,224, 2,240, 2, 6, 2, 2, 13, 90,191, 0,239, 0,255, 0, 3, 15, 0, 63, 0, -159, 0,175, 0, 4, 0, 17, 8, 90,144, 5,160, 5, 2, 47, 5,111, 5,127, 5, 3, 5, 14, 10, 6, 3, 12, 0, 8, 95, 5, 3, - 3, 5, 18, 0, 63, 51, 47, 16,225, 50, 50, 63, 51, 51, 1, 47, 93, 93,225, 16,221, 93, 93,225, 51, 47, 93,225, 17, 18, 57, 47, -225, 93, 93, 93, 93, 49, 48, 37, 51, 17, 35, 17, 33, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 4, 27,178,176,252, 32,166,246,166, -246,166,166,253,217, 1,129, 5,182,250,240, 5, 16,250,240, 5, 16, 0, 0, 2, 0, 27, 0, 0, 4,117, 5,182, 0, 12, 0, 20, - 0, 59, 64, 33, 5, 13, 90, 31, 0,143, 0,255, 0, 3, 0, 0, 2, 16, 91, 9, 22, 2, 2, 21, 20, 95, 5, 5, 13, 2, 95, 3, - 3, 13, 96, 0, 18, 0, 63,225, 63,225, 18, 57, 47,225, 17, 1, 51, 47, 16,222,225, 17, 57, 47, 93,225, 50, 49, 48, 33, 17, 33, - 53, 33, 17, 51, 32, 4, 21, 20, 4, 33, 39, 51, 32, 17, 52, 38, 35, 35, 1, 70,254,213, 1,229, 68, 1, 14, 1, 35,254,235,254, -254, 94, 98, 1, 82,171,197, 68, 5, 18,164,253,152,218,200,202,226,160, 1, 12,132,122, 0, 3, 0, 96, 0, 0, 4,109, 5,182, - 0, 9, 0, 17, 0, 21, 0, 83, 64, 53, 73, 13, 1, 13,251, 0, 6, 16, 6, 48, 6,112, 6,128, 6,240, 6, 6, 6, 6, 0, 18, -251, 15, 21, 63, 21, 2, 21, 23, 3, 10, 90, 32, 0, 48, 0, 2, 0, 0, 22, 17, 95, 3, 3, 19, 1, 3, 10, 96, 18, 0, 18, 0, - 63, 50,225, 63, 51, 57, 47,225, 17, 1, 51, 47, 93,225, 50, 16,222, 93,225, 17, 57, 47, 93,225, 93, 49, 48, 51, 17, 51, 17, 51, - 32, 17, 20, 4, 35, 39, 51, 32, 17, 52, 38, 35, 35, 1, 17, 51, 17, 96,166, 47, 2, 29,254,249,251, 74, 78, 1, 82,171,198, 47, - 2,193,166, 5,182,253,152,254, 94,208,220,160, 1, 12,133,121,253, 86, 5,182,250, 74, 0, 2, 0,176, 0, 0, 4, 70, 5,182, - 0, 9, 0, 17, 0, 60, 64, 16, 13, 91,239, 6,255, 6, 2, 6, 19, 3, 10, 90, 0, 0, 1, 0,184,255,192, 64, 16, 18, 22, 72, - 0, 0, 18, 17, 95, 3, 3, 1, 3, 10, 96, 0, 18, 0, 63,225, 63, 57, 47,225, 17, 1, 51, 47, 43, 93,225, 50, 16,222, 93,225, - 49, 48, 51, 17, 51, 17, 51, 32, 17, 20, 4, 35, 39, 51, 32, 17, 52, 38, 35, 35,176,186,191, 2, 29,254,249,251,218,201, 1, 82, -171,198,170, 5,182,253,152,254, 94,208,220,160, 1, 12,133,121, 0, 1, 0, 68,255,236, 4, 76, 5,203, 0, 23, 0, 74, 64, 43, -127, 17,143, 17, 2, 17, 17, 11, 19, 16, 91,255, 6, 1, 6, 25, 1, 31, 11, 47, 11, 2, 11, 11, 24, 17, 95,104, 18, 1, 18, 18, - 3, 14, 95, 12, 9, 19, 22, 95, 0, 3, 4, 0, 63, 51,225, 63, 51,225, 17, 57, 47, 93,225, 17, 1, 51, 47, 93, 51, 16,222, 93, -225, 50, 18, 57, 47, 93, 49, 48, 19, 39, 54, 51, 32, 0, 17, 16, 0, 33, 34, 39, 53, 22, 51, 32, 19, 33, 53, 33, 38, 38, 35, 34, -145, 77,161,222, 1, 48, 1, 89,254,170,254,196,212,146,197,131, 1,217, 16,253,139, 2,113, 19,237,190,152, 4,217,156, 86,254, -123,254,176,254,139,254,107, 59,162, 58, 2, 29,162,222,251, 0, 0, 2, 0, 98,255,236, 4,135, 5,205, 0, 18, 0, 30, 0,110, - 64, 43, 28,251, 7, 15, 0, 47, 0, 79, 0, 95, 0,127, 0,143, 0, 6, 0, 64, 21, 24, 72, 0, 0, 3, 22,251, 13, 64, 9, 14, - 72, 13, 32, 6, 55, 2, 1, 2, 90,102, 3, 1, 3,184,255,192, 64, 26, 11, 14, 72, 3, 3, 31, 1, 95,104, 6, 1, 6, 6, 10, - 19, 95, 16, 19, 25, 95, 10, 4, 4, 3, 2, 18, 0, 63, 63, 63,225, 63,225, 17, 57, 47, 93,225, 17, 1, 51, 47, 43, 93,225, 93, - 50, 16,222, 43,225, 18, 57, 47, 43, 93, 51,225, 49, 48, 1, 35, 17, 35, 17, 51, 17, 51, 18, 18, 51, 50, 18, 17, 16, 2, 35, 34, - 2, 5, 50, 54, 17, 16, 38, 35, 34, 6, 17, 16, 22, 1,147,139,166,166,144, 18,175,183,192,183,184,193,190,179, 1,113,106, 95, - 96,105,108, 94, 93, 2,170,253, 86, 5,182,253,152, 1, 93, 1, 34,254,159,254,113,254,115,254,156, 1, 59,152,233, 1,101, 1, -104,228,237,254,161,254,164,242, 0, 2, 0, 57, 0, 0, 4, 18, 5,182, 0, 11, 0, 19, 0,113, 64, 31, 11, 4, 27, 4, 2, 11, - 6, 27, 6, 2, 3, 16, 12, 17, 72, 3, 0, 5, 19, 10, 90,143, 9,159, 9,175, 9, 3, 9, 21, 1,184,255,240,180, 12, 17, 72, - 1, 2,184,255,240,183, 2, 2, 15, 91, 0, 5, 1, 5,184,255,192, 64, 19, 19, 22, 72, 5, 5, 20, 3, 0, 96, 18, 18, 1, 13, - 96, 7, 3, 10, 1, 18, 0, 63, 51, 63,225, 18, 57, 47,225, 50, 17, 1, 51, 47, 43, 93,225, 51, 47, 56, 51, 43, 16,222, 93,225, - 50, 17, 57, 57, 43, 49, 48, 93, 93, 1, 1, 35, 1, 36, 17, 16, 33, 33, 17, 35, 17, 17, 35, 32, 17, 20, 22, 51, 51, 2, 98,254, -178,219, 1,125,254,240, 1,248, 1,116,186,188,254,202,164,154,180, 2, 92,253,164, 2,143, 98, 1, 54, 1,143,250, 74, 2, 92, - 2,187,255, 0,137,148,255,255, 0,135,255,236, 4, 2, 4, 94, 2, 6, 0, 68, 0, 0, 0, 2, 0,143,255,236, 4, 59, 6, 35, - 0, 22, 0, 31, 0, 62, 64, 37, 27, 72, 1, 11, 64, 21, 24, 72, 11, 33, 5, 23, 72, 0, 17,208, 17,224, 17,240, 17, 4, 17, 23, - 5, 29, 80, 8, 8, 0, 25, 80, 14, 22, 1, 0, 1, 0, 63, 50, 63,225, 17, 57, 47,225, 50, 50, 1, 47, 93,225, 50, 16,222, 43, - 50,225, 49, 48, 1, 23, 4, 6, 6, 7, 51, 54, 51, 50, 18, 21, 16, 2, 35, 34, 2, 17, 52, 18, 62, 2, 1, 16, 33, 32, 17, 16, - 35, 34, 6, 4, 16, 33,254,115,205,127, 8, 12,116,220,186,213,250,221,219,250, 62,104,138,202,254,195, 1, 37, 1, 10,240, 95, -177, 6, 35,160, 67, 65,217,210,170,254,249,229,254,252,254,222, 1,104, 1, 63,212, 1, 32,176,106, 57,252,181,253,244, 1,119, - 1,108,127, 0, 0, 3, 0,176, 0, 0, 4, 84, 4, 74, 0, 12, 0, 20, 0, 28, 0, 91,181, 4, 4, 20, 4, 2, 10,184,255,208, - 64, 49, 9, 12, 72, 0, 14, 18, 70, 11, 11, 25, 70, 3, 30, 14, 22, 71, 0, 7,144, 7,160, 7,176, 7, 4, 7, 0, 21, 80,191, - 14, 1,137, 14, 1,120, 14, 1, 14, 14, 22, 13, 80, 8, 15, 22, 80, 7, 21, 0, 63,225, 63,225, 18, 57, 47, 93, 93, 93,225, 57, - 1, 47, 93,225, 50, 16,222,225, 51, 47,225, 18, 57, 49, 48, 43, 93, 1, 21, 4, 21, 20, 6, 35, 33, 17, 33, 32, 17, 20, 1, 17, - 33, 50, 54, 53, 52, 35, 1, 17, 33, 50, 53, 52, 38, 35, 3, 76, 1, 8,212,208,254, 0, 1,254, 1,131,253, 53, 1, 37,134,114, -217,254,188, 1, 62,254,130,128, 2, 70, 7, 35,223,149,168, 4, 74,254,235,197, 1, 64,254,215, 72, 84,141,254, 62,254,168,180, - 92, 72, 0, 1, 1, 35, 0, 0, 4, 14, 4, 74, 0, 5, 0, 46, 64, 28, 2, 71, 31, 3,111, 3,127, 3,143, 3, 4,127, 0,143, - 0, 2, 3, 0, 3, 0, 6, 7, 1, 80, 4, 15, 2, 21, 0, 63, 63,225, 17, 18, 1, 57, 57, 47, 47, 93, 93,225, 49, 48, 1, 33, - 17, 35, 17, 33, 4, 14,253,203,182, 2,235, 3,176,252, 80, 4, 74, 0, 0, 2, 0, 33,254,131, 4,104, 4, 74, 0, 12, 0, 17, - 0,116, 64, 9, 40, 8, 1, 9, 8, 25, 8, 2, 17,184,255,240,179, 15, 24, 72, 17,184,255,224, 64, 53, 11, 14, 72, 17, 7, 15, - 9, 80, 9,128, 9, 2, 18, 9, 1, 7, 9, 7, 9, 5, 11, 1, 70, 0, 0, 13, 71, 79, 11, 95, 11,111, 11, 3, 11, 19, 4, 71, - 5, 15, 78, 9, 15, 17, 11, 6, 80, 3, 1, 4, 4, 3, 21, 0, 63, 51, 47, 51, 16,225, 50, 50, 63,225, 1, 47,225, 16,220, 93, -225, 51, 47,225, 17, 18, 57, 57, 47, 47, 93, 93, 17, 51, 17, 51, 43, 43, 49, 48, 93, 93, 1, 35, 17, 33, 17, 35, 17, 51, 0, 19, - 33, 17, 51, 33, 17, 35, 2, 3, 4,104,176,253, 25,176, 86, 1, 6, 4, 2, 80,151,254,179,250, 36,198,254,131, 1,125,254,131, - 2, 23, 1,133, 2, 43,252, 80, 3, 36,254, 31,254,189,255,255, 0,133,255,236, 4, 72, 4, 94, 2, 6, 0, 72, 0, 0, 0, 1, - 0, 0, 0, 0, 4,205, 4, 74, 0, 17, 1, 8, 64,140,105, 15,121, 15,137, 15, 3, 75, 15, 91, 15, 2, 41, 15, 57, 15, 2, 26, - 15, 1, 9, 15, 1,102, 6,118, 6,134, 6, 3, 68, 6, 84, 6, 2, 38, 6, 54, 6, 2, 21, 6, 1, 6, 6, 1,166, 6, 1, 6, - 3,247, 10, 1, 86, 10,102, 10, 2, 23, 10, 55, 10, 71, 10, 3, 6, 10, 1, 10, 71,169, 15, 1, 15, 0, 24, 11, 1, 9, 11, 1, - 11, 11, 14, 7,104, 4,120, 4,136, 4, 3, 4, 16, 11, 14, 72, 4, 5, 16, 5, 5,136, 8, 1, 8, 16, 11, 16, 72, 8, 16, 7, - 64, 7, 80, 7,144, 7,160, 7,192, 7,208, 7, 7, 7, 16, 7, 7, 19,103, 17,119, 17,135, 17, 3, 17,184,255,240,180, 11, 14, - 72, 17, 16,184,255,240,181, 16, 16,135, 13, 1, 13,184,255,240,180, 11, 16, 72, 13, 14,184,255,240, 64, 18, 14, 14, 18, 9, 12, - 3, 0, 12, 0, 1, 14, 11, 7, 21, 16, 4, 1, 15, 0, 63, 51, 51, 63, 51, 51, 18, 57, 57, 17, 51, 17, 51, 17, 1, 51, 47, 56, - 51, 43, 93, 51, 47, 56, 51, 43, 93, 17, 51, 47, 56, 93, 51, 43, 93, 51, 47, 56, 51, 43, 93, 17, 18, 57, 47, 93, 93, 51, 51, 93, -225, 93, 93, 93, 93, 50, 50, 93, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 17, 51, 17, 1, 51, 1, 1, 35, 1, 17, 35, - 17, 1, 35, 1, 1, 51, 2, 23,159, 1, 94,185,254,145, 1,109,195,254,174,159,254,174,195, 1,111,254,143,184, 2, 53, 2, 21, -253,235, 2, 21,253,235,253,203, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21, 0, 1, 0,201,255,236, 4, 8, 4, 94, 0, 32, - 0, 87, 64, 51, 15, 13, 32, 32, 8, 3, 70, 13, 13, 28, 70, 18, 34, 8, 0, 23, 96, 23,112, 23,128, 23, 4, 23, 23, 33, 15, 31, - 80,191, 32, 1,137, 32, 1,120, 32, 1, 32, 32, 10, 26, 80, 24, 21, 22, 7, 5, 80, 10, 16, 0, 63,225, 51, 63, 51,225, 17, 57, - 47, 93, 93, 93,225, 57, 17, 1, 51, 47, 93, 51, 16,222,225, 51, 47,225, 17, 57, 47, 18, 57, 49, 48, 1, 50, 54, 53, 52, 35, 34, - 7, 39, 54, 51, 50, 22, 21, 20, 7, 21, 22, 21, 20, 6, 35, 34, 39, 53, 22, 51, 32, 53, 52, 33, 35, 53, 1,250,172,145,250,134, -175, 63,160,210,205,221,192,227,241,224,235,127,180,186, 1, 27,254,201,150, 2,135, 79, 87,154, 72,147, 76,149,140,186, 57, 11, - 65,207,151,172, 69,166, 86,180,185,153, 0, 1, 0,160, 0, 0, 4, 45, 4, 74, 0, 11, 0,132,185, 0, 9,255,240,179, 18, 24, - 72, 9,184,255,224, 64, 80, 11, 14, 72, 5, 9, 21, 9, 2, 3, 16, 18, 24, 72, 3, 32, 11, 14, 72, 10, 3, 26, 3, 2,139, 8, - 1,105, 8,121, 8, 2,132, 2, 1,102, 2,118, 2, 2, 8,136, 3, 1,105, 3, 1, 3, 6, 70,144, 5,160, 5, 2, 5, 13,135, - 9, 1,102, 9, 1, 9, 2, 0, 70, 0, 11,176, 11, 2, 11, 8, 3, 11, 15, 6, 2, 10, 21, 0, 63, 51, 51, 63, 51, 51, 1, 47, - 93,225, 50, 50, 93, 93, 16,222, 93,225, 50, 93, 93, 50, 49, 48, 0, 93, 93, 93, 93, 1, 93, 43, 43, 93, 43, 43, 1, 17, 7, 1, - 51, 17, 35, 17, 19, 1, 35, 17, 1, 76, 13, 2, 5,233,172, 10,253,254,233, 4, 74,253,100,252, 3,152,251,182, 2,135, 1, 15, -252,106, 4, 74,255,255, 0,160, 0, 0, 4, 45, 6, 23, 2, 38, 1,210, 0, 0, 1, 6, 2, 54, 37, 0, 0, 31, 64, 20, 1, 14, - 17, 38, 1,176, 17, 1,128, 17, 1,112, 17, 1, 36, 17, 12, 10, 4, 37, 1, 43, 93, 93, 93, 53, 0, 43, 53, 0, 0, 1, 0,215, - 0, 0, 4,150, 4, 74, 0, 10, 0,139, 64, 78, 88, 4, 1, 4, 16, 10, 13, 72,230, 2,246, 2, 2,212, 2, 1,150, 2,166, 2, -198, 2, 3,133, 2, 1,118, 2, 1,101, 2, 1, 70, 2, 86, 2, 2, 53, 2, 1, 22, 2, 38, 2, 2, 7, 2, 1, 88, 0, 1, 0, - 16, 10, 13, 72, 6, 10, 1, 9, 5, 1, 0, 1, 1, 4, 3, 12, 10, 2, 6, 71, 0, 7,240, 7, 2, 7,184,255,192, 64, 14, 15, - 20, 72, 7, 5, 10, 2, 3, 7, 3, 21, 8, 0, 15, 0, 63, 50, 63, 51, 23, 57, 1, 47, 43, 93,225, 50, 50, 16,206, 50, 50, 47, - 51, 49, 48, 0, 93, 93, 1, 43, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 43, 93, 1, 51, 1, 1, 35, 1, 17, 35, 17, 51, 17, - 3,145,222,253,241, 2, 54,232,253,221,180,180, 4, 74,253,241,253,197, 2, 45,253,211, 4, 74,253,235, 0, 1, 0, 31,255,242, - 4, 16, 4, 74, 0, 15, 0,206, 64, 11, 12, 32, 20, 24, 72,153, 12,169, 12, 2, 5,184,255,240, 64,111, 21, 24, 72,181, 5, 1, -166, 5, 1,149, 5, 1, 84, 5,100, 5, 2, 50, 5, 66, 5, 2, 4, 5, 20, 5, 36, 5, 3, 4, 32, 12, 24, 72, 9, 4, 25, 4, - 41, 4, 3, 4, 3,153, 3, 1,120, 3,136, 3, 2, 57, 3, 73, 3,105, 3, 3, 3,235, 13,251, 13, 2,202, 13,218, 13, 2,153, - 13,169, 13,185, 13, 3,138, 13, 1, 13, 32, 13, 16, 72, 25, 13, 41, 13, 57, 13, 3, 8, 13, 1, 13,192, 14,208, 14, 2,161, 14, - 1, 16, 14, 32, 14, 48, 14, 3, 14,184,255,192, 64, 25, 15, 18, 72, 14, 14, 8, 1, 71,143, 0, 1, 0, 17, 8, 3, 80, 14, 15, - 11, 79, 9, 6, 22, 0, 21, 0, 63, 63, 51,225, 63,225, 1, 47, 16,222, 93,225, 18, 57, 47, 43, 93, 93, 93, 51, 93, 93, 43, 93, - 93, 93, 93, 51, 93, 93, 93, 17, 51, 93, 43, 49, 48, 93, 93, 93, 93, 93, 93, 43, 93, 43, 33, 35, 17, 33, 2, 2, 35, 34, 39, 53, - 22, 51, 50, 18, 19, 33, 4, 16,182,254,172, 37,178,180, 62, 30, 21, 28,111,135, 36, 2,166, 3,176,254, 19,254, 47, 12,131, 6, - 1,219, 1,244, 0, 1, 0,115, 0, 0, 4, 90, 4, 74, 0, 24, 0,187, 64, 27, 24, 8, 72, 8, 2, 23, 7, 71, 7, 2,234, 8, -250, 8, 2, 8, 8, 17, 20, 72, 8,229, 7,245, 7, 2, 7,184,255,248, 64, 55, 17, 20, 72, 7, 18, 18, 13,218, 23,234, 23,250, - 23, 3, 23, 16, 17, 21, 72, 92, 23,108, 23,124, 23, 3, 58, 23, 74, 23, 2, 25, 23, 41, 23, 2, 23, 1, 73,176, 0, 1, 15, 0, - 1, 0, 26,213, 15,229, 15,245, 15, 3, 15,184,255,240, 64, 48, 17, 21, 72, 83, 15, 99, 15,115, 15, 3, 53, 15, 69, 15, 2, 22, - 15, 38, 15, 2, 15, 12, 73, 0, 13, 16, 13, 64, 13, 80, 13,112, 13,128, 13, 6, 13, 2, 11, 11, 23, 14, 15, 18, 8, 1, 13, 21, - 0, 63, 51, 51, 51, 63, 51, 51, 17, 51, 1, 47, 93,225, 50, 93, 93, 93, 43, 93, 16,222, 93, 93,225, 50, 93, 93, 93, 43, 93, 18, - 57, 61, 47, 51, 43, 93, 51, 43, 93, 49, 48, 93, 93, 33, 35, 17, 6, 7, 6, 7, 3, 35, 3, 38, 39, 17, 35, 17, 51, 19, 22, 23, - 54, 55, 54, 55, 19, 51, 4, 90,151, 8, 25, 22, 13,213,135,213, 8, 60,151,211,215, 25, 48, 5, 48, 10, 11,219,207, 3,129, 27, -100, 85, 38,253,121, 2,135, 25,225,252,127, 4, 74,253,112, 77,191, 13,178, 39, 34, 2,148, 0, 0, 1, 0,160, 0, 0, 4, 45, - 4, 74, 0, 11, 0, 63, 64, 38, 2, 6, 71,144, 5,160, 5, 2, 5, 13, 1, 9, 71, 0, 10,176, 10, 2, 10, 8, 80,191, 1, 1, -137, 1, 1,120, 1, 1, 1, 1, 10, 5, 21, 3, 0, 15, 0, 63, 50, 63, 51, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 50, 16,222, - 93,225, 50, 49, 48, 1, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1, 86, 2, 33,182,182,253,223,182, 4, 74,254, 57, 1,199, -251,182, 1,233,254, 23, 4, 74,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 0, 82, 0, 0, 0, 1, 0,160, 0, 0, 4, 45, - 4, 74, 0, 7, 0, 41, 64, 24, 5, 71,144, 4,160, 4, 2, 4, 9, 0, 71, 0, 1,176, 1, 2, 1, 7, 80, 2, 15, 5, 0, 21, - 0, 63, 50, 63,225, 1, 47, 93,225, 16,222, 93,225, 49, 48, 33, 35, 17, 33, 17, 35, 17, 33, 1, 86,182, 3,141,182,253,223, 4, - 74,251,182, 3,176, 0,255,255, 0,158,254, 20, 4, 68, 4, 94, 2, 6, 0, 83, 0, 0,255,255, 0,172,255,236, 4, 37, 4, 94, - 2, 6, 0, 70, 0, 0, 0, 1, 0,121, 0, 0, 4, 82, 4, 74, 0, 7, 0, 60, 64, 37,159, 0,175, 0, 2, 0, 0, 2, 71, 3, -224, 5, 1, 5, 5, 16, 3,144, 3,160, 3,192, 3,208, 3, 5, 3, 3, 8, 9, 1, 5, 80, 6, 15, 2, 21, 0, 63, 63,225, 50, - 17, 18, 1, 57, 47, 93, 51, 47, 93, 16,225, 50, 47, 93, 49, 48, 1, 33, 17, 35, 17, 33, 53, 33, 4, 82,254,111,183,254,111, 3, -217, 3,176,252, 80, 3,176,154,255,255, 0, 82,254, 20, 4,121, 4, 74, 2, 6, 0, 92, 0, 0, 0, 3, 0, 74,254, 20, 4,129, - 6, 20, 0, 13, 0, 18, 0, 23, 0, 93, 64, 59, 20, 0, 86, 5,102, 5, 2, 71, 5, 1, 5, 73, 14, 11, 6, 6, 9, 22, 73, 15, - 2, 1, 2, 25, 17, 73, 80, 9,144, 9,160, 9,192, 9,208, 9, 5, 47, 9, 63, 9, 2, 9, 12, 0, 19, 15, 80, 0, 11, 16, 20, - 14, 80, 4, 7, 22, 5, 27, 0, 63, 63, 51,225, 50, 63, 51,225, 50, 63, 1, 47, 93, 93,225, 16,222, 93,225, 17, 57, 47, 51, 51, -225, 93, 93, 50, 50, 49, 48, 1, 4, 17, 16, 5, 17, 35, 17, 36, 17, 16, 37, 17, 51, 3, 17, 4, 17, 16, 1, 17, 36, 17, 16, 2, -182, 1,203,254, 53,157,254, 49, 1,207,157,157,254,217, 1,196, 1, 35, 4, 90, 50,253,255,253,243, 42,254, 36, 1,220, 45, 2, - 10, 2, 10, 41, 1,186,250,115, 3, 60, 29,254,129,254,126, 3, 28,252,198, 33, 1,127, 1,121,255,255, 0, 96, 0, 0, 4,106, - 4, 74, 2, 6, 0, 91, 0, 0, 0, 1, 0,152,254,131, 4,156, 4, 74, 0, 11, 0, 56, 64, 32, 1, 71, 0, 0, 7, 71,111, 10, -127, 10,143, 10, 3, 10, 13, 6, 71, 0, 3, 1, 3, 8, 4, 15, 10, 6, 80, 3, 1, 1, 3, 21, 0, 63, 51, 47, 16,225, 50, 63, - 51, 1, 47, 93,225, 16,220, 93,225, 51, 47,225, 49, 48, 1, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 51, 4,156,176,252,172,182, - 1,248,182,160,254,131, 1,125, 4, 74,252, 80, 3,176,252, 80, 0, 1, 0,152, 0, 0, 4, 37, 4, 74, 0, 16, 0, 47, 64, 25, - 5, 9, 71,144, 8, 1, 8, 18, 1, 71, 0, 15, 1, 15, 10, 5, 3, 80, 12, 12, 8, 21, 6, 0, 15, 0, 63, 50, 63, 57, 47,225, - 50, 50, 1, 47, 93,225, 16,222, 93,225, 50, 49, 48, 1, 17, 20, 51, 50, 55, 17, 51, 17, 35, 17, 6, 35, 34, 38, 53, 17, 1, 78, -205,171,169,182,182,181,200,160,186, 4, 74,254,102,174,115, 1,213,251,182, 1,233,127,175,139, 1,166, 0, 1, 0,125, 0, 0, - 4, 82, 4, 74, 0, 11, 0, 90, 64, 63, 70, 0, 86, 0,102, 0, 3, 0, 73, 9, 9, 5, 55, 1,247, 1, 2, 1, 73,192, 4,208, - 4, 2, 15, 4, 63, 4, 2, 4, 13, 56, 8,248, 8, 2, 8, 73, 0, 5, 16, 5, 48, 5, 64, 5, 80, 5,144, 5,160, 5, 7, 5, - 0, 8, 80, 5, 21, 10, 6, 2, 15, 0, 63, 51, 51, 63,225, 50, 1, 47, 93,225, 93, 16,222, 93, 93,225, 93, 17, 57, 47,225, 93, - 49, 48, 37, 51, 17, 51, 17, 33, 17, 51, 17, 51, 17, 51, 2,184,248,162,252, 43,162,248,161,154, 3,176,251,182, 4, 74,252, 80, - 3,176, 0, 1, 0,109,254,131, 4,184, 4, 74, 0, 15, 0,109, 64, 73, 7, 73, 6, 6, 4, 70, 0, 86, 0,102, 0, 3, 0, 73, - 13, 13, 9, 55, 1,247, 1, 2, 1, 73,239, 4,255, 4, 2,192, 4, 1, 15, 4, 63, 4, 2, 4, 17, 56, 12,248, 12, 2, 12, 73, - 16, 9, 48, 9, 64, 9, 80, 9,144, 9,160, 9, 6, 9, 4, 0, 12, 80, 9, 7, 7, 9, 21, 14, 10, 2, 15, 0, 63, 51, 51, 63, - 51, 47, 16,225, 50, 50, 1, 47, 93,225, 93, 16,220, 93, 93, 93,225, 93, 17, 57, 47,225, 93, 17, 51, 47,225, 49, 48, 37, 51, 17, - 51, 17, 51, 17, 35, 17, 33, 17, 51, 17, 51, 17, 51, 2,168,248,162,118,161,252, 86,161,248,162,154, 3,176,252, 80,253,233, 1, -125, 4, 74,252, 80, 3,176, 0, 0, 2, 0, 43, 0, 0, 4,131, 4, 74, 0, 10, 0, 18, 0, 67, 64, 41, 0, 12, 71,176, 6,192, - 6,208, 6, 3, 6, 6, 8, 15, 73, 3, 20,207, 8,223, 8,239, 8, 3, 8, 11, 80,191, 0, 1, 0, 0, 12, 8, 80, 9, 15, 12, - 80, 6, 21, 0, 63,225, 63,225, 18, 57, 47, 93,225, 1, 47, 93, 16,222,225, 17, 57, 47, 93,225, 50, 49, 48, 1, 51, 32, 17, 16, - 33, 33, 17, 33, 53, 33, 17, 17, 51, 50, 53, 52, 38, 35, 2, 74,153, 1,160,254, 92,254,180,254,152, 2, 31,137,254,118,140, 2, -135,254,201,254,176, 3,176,154,253,164,254,168,172, 90, 82, 0, 0, 3, 0,113, 0, 0, 4, 90, 4, 74, 0, 8, 0, 16, 0, 20, - 0, 99, 64, 66, 73, 13, 89, 13,105, 13, 3, 13, 73, 96, 3,112, 3,128, 3, 3, 6, 3, 1, 3, 3, 6, 55, 18,247, 18, 2, 18, - 73, 56, 17, 1, 17, 22, 0, 56, 10,248, 10, 2, 10, 73, 55, 6, 1, 0, 6, 16, 6, 2, 6, 9, 80,191, 0, 1, 0, 0, 19, 7, - 15, 10, 80, 18, 6, 21, 0, 63, 51,225, 63, 51, 57, 47, 93,225, 1, 47, 93, 93,225, 93, 50, 16,222, 93,225, 93, 17, 57, 47, 93, - 93,225, 93, 49, 48, 1, 51, 32, 17, 16, 33, 33, 17, 51, 17, 17, 51, 50, 53, 52, 38, 35, 1, 35, 17, 51, 1, 18,134, 1,159,254, - 92,254,222,161,138,254,118,140, 2,194,162,162, 2,135,254,201,254,176, 4, 74,253,164,254,168,172, 90, 82,254, 18, 4, 74, 0, - 0, 2, 0,217, 0, 0, 4, 68, 4, 74, 0, 8, 0, 16, 0, 62, 64, 18, 13, 70,239, 3,255, 3, 2, 3, 18, 0, 10, 71, 0, 6, -240, 6, 2, 6,184,255,192, 64, 17, 15, 20, 72, 6, 9, 80,191, 0, 1, 0, 0, 7, 15, 10, 80, 6, 21, 0, 63,225, 63, 57, 47, - 93,225, 1, 47, 43, 93,225, 50, 16,222, 93,225, 49, 48, 1, 33, 32, 17, 16, 33, 33, 17, 51, 17, 17, 33, 50, 53, 52, 38, 35, 1, -143, 1, 21, 1,160,254, 92,254, 57,182, 1, 4,254,118,140, 2,135,254,201,254,176, 4, 74,253,164,254,168,172, 90, 82, 0, 1, - 0,184,255,236, 4, 37, 4, 94, 0, 22, 0,105,182, 54, 1, 1, 57, 12, 1, 20,184,255,224,179, 9, 12, 72, 16,184,255,224, 64, - 49, 9, 12, 72, 7, 7, 0, 8, 5, 72,144, 18, 1, 18, 24, 13, 0, 0,128, 0, 2, 0, 0, 23, 6, 81, 47, 7,191, 7, 2,137, - 7, 1,120, 7, 1, 7, 7, 15, 3, 81, 1, 21, 22, 12, 10, 81, 15, 16, 0, 63,225, 51, 63, 51,225, 17, 57, 47, 93, 93, 93,225, - 17, 1, 51, 47, 93, 51, 16,222, 93,225, 50, 18, 57, 47, 49, 48, 43, 43, 0, 93, 93, 55, 53, 22, 51, 32, 19, 33, 53, 33, 2, 33, - 34, 7, 39, 54, 51, 32, 0, 17, 16, 0, 33, 34,190,163,153, 1, 95, 17,253,230, 2, 24, 27,254,175,108,154, 62,153,179, 1, 11, - 1, 22,254,226,254,247,187, 41,160, 62, 1, 92,154, 1, 61, 57,158, 59,254,220,254,229,254,241,254,220, 0, 2, 0,123,255,236, - 4,141, 4, 94, 0, 15, 0, 27, 0,102, 64, 33, 25, 73, 0,127, 7,143, 7,207, 7,223, 7, 4, 7, 7, 3, 19, 73, 12, 64, 9, - 17, 72, 12, 29, 6, 56, 2,248, 2, 2, 2, 73, 3,184,255,192, 64, 30, 9, 17, 72, 3, 1, 80,191, 6, 1,137, 6, 1,120, 6, - 1, 6, 6, 9, 16, 80, 14, 22, 22, 80, 9, 16, 4, 15, 3, 21, 0, 63, 63, 63,225, 63,225, 17, 57, 47, 93, 93, 93,225, 1, 47, - 43,225, 93, 50, 16,222, 43,225, 18, 57, 47, 93, 51,225, 49, 48, 1, 35, 17, 35, 17, 51, 17, 51, 18, 33, 50, 18, 17, 16, 33, 32, - 37, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1,178,149,162,162,151, 35, 1, 76,171,191,254,144,254,177, 1, 83,103, 93, 92, -106,104, 93, 93, 1,233,254, 23, 4, 74,254, 57, 1,219,254,216,254,241,253,197,151,195,225,218,198,192,224,221,199, 0, 0, 2, - 0,115, 0, 0, 4, 10, 4, 74, 0, 12, 0, 19, 0,111, 64, 36, 2, 8, 15, 18, 72, 41, 2, 1, 24, 2, 1, 9, 2, 1, 2, 12, - 4, 13, 10, 71,127, 9,143, 9, 2, 9, 21, 87, 0,119, 0,135, 0, 3, 0, 1,184,255,240, 64, 32,175, 1, 1, 1, 1, 55, 17, - 1, 17, 71, 0, 4,144, 4,160, 4, 3, 4, 2, 7, 12, 80, 19, 19, 0, 15, 80, 7, 15, 10, 0, 21, 0, 63, 50, 63,225, 18, 57, - 47,225, 17, 57, 1, 47, 93,225, 93, 51, 47, 93, 56, 51, 93, 16,222, 93,225, 50, 17, 57, 57, 93, 93, 93, 43, 49, 48, 33, 35, 1, - 38, 53, 52, 54, 51, 33, 17, 35, 17, 33, 37, 17, 33, 34, 21, 20, 51, 1, 57,198, 1, 35,234,204,173, 1,229,182,254,227, 1, 29, -254,217,211,238, 1,205, 67,248,150,172,251,182, 1,176,154, 1,102,172,186, 0,255,255, 0,133,255,236, 4, 72, 5,217, 2, 38, - 0, 72, 0, 0, 1, 6, 0,106, 18, 0, 0, 23, 64, 13, 3, 2, 27, 17, 38, 3, 2, 17, 29, 33, 11, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0, 0, 1, 0, 4,254, 20, 4, 45, 6, 20, 0, 34, 0, 98, 64, 58, 22, 31, 13, 0, 0, 13, 5, 71,144, 31,160, 31, - 2, 31, 36, 20, 24, 25, 3, 12, 71, 17, 0, 13,176, 13, 2, 13, 3, 80, 33, 27, 25, 8, 80, 28, 23, 15, 79, 16, 20, 16, 0, 28, - 16, 28, 32, 28, 3, 28, 16, 28, 16, 13, 18, 0, 13, 21, 0, 63, 63, 18, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 16,225, 51, 63, -237, 1, 47, 93, 51,225, 23, 50, 16,222, 93,225, 17, 57, 47, 17, 18, 57, 49, 48, 1, 53, 22, 51, 50, 53, 17, 16, 35, 34, 6, 21, - 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 21, 7, 51, 54, 51, 32, 17, 17, 16, 33, 34, 2,133, 54, 61,127,236,162,147,182, -156,156,182, 1,123,254,133, 8, 10,106,228, 1,135,254,221, 81,254, 45,148, 21,170, 3, 68, 1, 4,187,211,253,240, 4,213,137, -182,182,137,184,144,168,254,111,252,190,254,178,255,255, 1, 35, 0, 0, 4, 14, 6, 33, 2, 38, 1,205, 0, 0, 1, 6, 0,118, -104, 0, 0, 19, 64, 11, 1, 12, 17, 38, 1, 54, 6, 9, 3, 0, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,172,255,236, 4, 37, - 4, 94, 0, 22, 0, 93, 64, 58, 54, 1, 1, 57, 12, 1, 11, 20, 27, 20, 2, 11, 16, 27, 16, 2, 7, 7, 18, 0,143, 13, 1, 13, - 24, 5, 8, 72, 0, 18, 1, 18, 8, 81, 47, 5,191, 5, 2,137, 5, 1,120, 5, 1, 5, 5, 10, 3, 81, 1, 21, 16, 10, 81, 12, - 15, 22, 0, 63, 51,225, 63, 51,225, 18, 57, 47, 93, 93, 93,225, 1, 47, 93,225, 50, 16,206, 93, 50, 17, 57, 47, 49, 48, 93, 93, - 0, 93, 93, 1, 7, 38, 35, 32, 3, 33, 21, 33, 18, 33, 50, 55, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 4, 37, 62,150,112,254, -165, 30, 2, 25,253,229, 20, 1, 93,153,162,133,186,254,247,254,226, 1, 35, 1, 12,178, 4, 35,158, 57,254,195,154,254,164, 62, -160, 61, 1, 36, 1, 15, 1, 27, 1, 36,255,255, 0,203,255,236, 4, 2, 4, 94, 2, 6, 0, 86, 0, 0,255,255, 0,197, 0, 0, - 4, 51, 6, 14, 2, 6, 0, 76, 0, 0,255,255, 0,197, 0, 0, 4, 51, 5,217, 2, 38, 0,243, 0, 0, 1, 6, 0,106, 0, 0, - 0, 25,182, 2, 1, 14, 17, 38, 2, 1,184,255,234,180, 16, 20, 7, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135, -254, 20, 3, 86, 6, 14, 2, 6, 0, 77, 0, 0, 0, 2, 0, 0,255,242, 4,156, 4, 74, 0, 22, 0, 30, 0,121, 64, 78,216, 9, -232, 9,248, 9, 3, 9, 16, 17, 21, 72,122, 9, 1, 9, 16, 9, 14, 72, 9, 8, 8, 20, 24, 18, 24, 72, 20, 16, 9, 17, 72, 20, - 21, 0, 24, 71, 6, 96, 21, 1, 21, 6, 21, 6, 14, 27, 73,207, 3,223, 3, 2, 3, 32, 0, 14, 1, 14, 23, 80, 0, 0, 17, 8, - 80, 21, 15, 17, 79, 15, 12, 22, 24, 80, 6, 21, 0, 63,225, 63, 51,225, 63,225, 18, 57, 47,225, 1, 47, 93, 16,214, 93,225, 17, - 57, 57, 47, 47, 93, 16,225, 50, 17, 51, 43, 43, 51, 17, 51, 43, 49, 48, 93, 43, 93, 1, 51, 32, 17, 16, 33, 35, 17, 35, 2, 2, - 6, 35, 34, 39, 53, 22, 51, 50, 54, 18, 19, 33, 17, 17, 51, 50, 53, 52, 38, 35, 2,201, 51, 1,160,254, 92,209,186, 33, 52, 92, - 96, 62, 30, 22, 27, 41, 49, 45, 35, 1,238, 55,254,118,140, 2,135,254,201,254,176, 3,176,254, 38,254,135,107, 12,131, 6, 84, - 1,126, 1,253,253,164,254,168,172, 90, 82, 0, 0, 2, 0,106, 0, 0, 4,172, 4, 74, 0, 16, 0, 24, 0, 86, 64, 25, 5, 56, - 18,248, 18, 2, 18, 73, 2, 11, 11, 15, 21, 73, 8, 26, 1, 56, 14,248, 14, 2, 14, 73, 15,184,255,192, 64, 23, 10, 13, 72, 15, - 15, 21, 17, 13, 80, 5,191, 1, 1, 1, 1, 0, 18, 80, 11, 21, 3, 0, 15, 0, 63, 50, 63,225, 17, 57, 47, 93, 51,225, 50, 63, - 1, 47, 43,225, 93, 50, 16,214,225, 17, 57, 47, 51,225, 93, 50, 49, 48, 1, 17, 33, 17, 51, 17, 51, 32, 17, 16, 33, 35, 17, 33, - 17, 35, 17, 1, 17, 51, 50, 53, 52, 38, 35, 1, 12, 1, 43,162, 51, 1,160,254, 92,209,254,213,162, 2,111, 55,254,118,140, 4, - 74,254, 57, 1,199,254, 61,254,201,254,176, 1,233,254, 23, 4, 74,253,164,254,168,172, 90, 82,255,255, 0, 4, 0, 0, 4, 45, - 6, 20, 2, 6, 0,233, 0, 0,255,255, 0,215, 0, 0, 4,139, 6, 33, 2, 38, 0,250, 0, 0, 1, 6, 0,118, 90, 0, 0, 19, - 64, 11, 1, 21, 17, 38, 1, 15, 15, 18, 10, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 23, 2, 38, - 0, 92, 0, 0, 1, 6, 2, 54, 10, 0, 0, 19, 64, 11, 1, 25, 17, 38, 1, 10, 28, 23, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, - 0, 1, 0,160,254,131, 4, 45, 4, 74, 0, 11, 0, 68, 64, 43, 6, 71, 0, 7, 16, 7,176, 7,192, 7,208, 7, 5, 7, 7, 9, - 1, 71,144, 4,160, 4, 2, 4, 13, 0, 71, 0, 9,176, 9, 2, 9, 7, 7, 5, 0, 80, 9, 21, 10, 2, 15, 0, 63, 51, 63,225, - 51, 51, 47, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 93,225, 49, 48, 37, 33, 17, 51, 17, 33, 17, 35, 17, 33, 17, 51, 1, 86, - 2, 33,182,254,158,183,254,140,182,154, 3,176,251,182,254,131, 1,125, 4, 74, 0, 1, 0,246, 0, 0, 4, 35, 6,227, 0, 7, - 0, 62, 64, 15, 0,251, 3, 64, 18, 22, 72, 3, 9, 5, 90, 0, 6, 1, 6,184,255,192,179, 21, 24, 72, 6,184,255,192, 64, 13, - 13, 16, 72, 6, 4, 95, 7, 1, 1, 7, 3, 5, 18, 0, 63, 63, 51, 47, 16,225, 1, 47, 43, 43, 93,225, 16,222, 43,225, 49, 48, - 1, 17, 51, 17, 33, 17, 35, 17, 3,115,176,253,141,186, 5,182, 1, 45,254, 45,250,240, 5,182, 0, 1, 1, 35, 0, 0, 3,250, - 5,137, 0, 7, 0, 45, 64, 27, 5, 71,111, 0,127, 0,143, 0, 3, 0, 9, 2, 71,127, 3,143, 3, 2, 3, 6, 6, 1, 79, 4, - 15, 2, 21, 0, 63, 63,225, 51, 47, 1, 47, 93,225, 16,222, 93,225, 49, 48, 1, 33, 17, 35, 17, 33, 17, 51, 3,250,253,223,182, - 2, 33,182, 3,193,252, 63, 4, 74, 1, 63, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 0, 67, -255,175, 1, 82, 0, 21,180, 1, 26, 5, 38, 1,184,255,175,180, 29, 26, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, - 0, 0, 4,209, 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0, 67,142, 0, 0, 21,180, 1, 26, 17, 38, 1,184,255,142,180, 29, 26, - 7, 24, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7,115, 2, 38, 0, 58, 0, 0, 1, 7, 0,118, 0, 82, - 1, 82, 0, 19, 64, 11, 1, 32, 5, 38, 1, 82, 26, 29, 18, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255,255,252, 0, 0, 4,209, - 6, 33, 2, 38, 0, 90, 0, 0, 1, 6, 0,118,104, 0, 0, 19, 64, 11, 1, 32, 17, 38, 1,104, 26, 29, 7, 24, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0, 2, 0, 0, 4,203, 7, 43, 2, 38, 0, 58, 0, 0, 1, 7, 0,106, 0, 4, 1, 82, 0, 23, 64, 13, - 2, 1, 30, 5, 38, 2, 1, 3, 32, 36, 18, 8, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255,255,252, 0, 0, 4,209, 5,217, - 2, 38, 0, 90, 0, 0, 1, 6, 0,106,255, 0, 0, 25,182, 2, 1, 30, 17, 38, 2, 1,184,255,254,180, 32, 36, 7, 24, 37, 1, - 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,170, 7,115, 2, 38, 0, 60, 0, 0, 1, 7, 0, 67,255,142, 1, 82, - 0, 21,180, 1, 9, 5, 38, 1,184,255,143,180, 12, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, - 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, 0, 67,151, 0, 0, 21,180, 1, 23, 17, 38, 1,184,255,152,180, 26, 23, 0, 9, 37, 1, - 43, 53, 0, 43, 53, 0, 0, 1, 0,184, 1,209, 4, 20, 2,121, 0, 3, 0, 24, 64, 11, 2, 2, 5, 0, 0, 1, 0, 0,185, 1, -189, 0, 63,225, 1, 47, 93, 17, 51, 47, 49, 48, 19, 53, 33, 21,184, 3, 92, 1,209,168,168, 0, 0, 1,255,250, 1,209, 4,211, - 2,121, 0, 3, 0, 19,183, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, 17, 51, 47, 49, 48, 3, 53, 33, 21, 6, 4,217, - 1,209,168,168, 0, 1,255,250, 1,209, 4,211, 2,121, 0, 3, 0, 19,183, 2, 2, 5, 0, 0,185, 1,189, 0, 63,225, 1, 47, - 17, 51, 47, 49, 48, 3, 53, 33, 21, 6, 4,217, 1,209,168,168, 0, 2,255,236,254, 49, 4,225,255,211, 0, 3, 0, 7, 0, 60, - 64, 37, 4, 0, 9, 5, 1,247, 6, 1, 38, 6, 1, 23, 6, 1, 6,186, 32, 5,240, 5, 2, 5,248, 1, 1, 41, 1, 1, 24, 1, - 1, 1,186,239, 2, 1, 2, 0, 47, 93,225, 93, 93, 93, 47, 93,225, 93, 93, 93, 1, 47, 51, 16,196, 50, 49, 48, 5, 33, 53, 33, - 17, 33, 53, 33, 4,225,251, 11, 4,245,251, 11, 4,245,184,139,254, 94,139, 0, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, - 0, 42, 64, 26, 22, 6, 38, 6,230, 6,246, 6, 4, 6,152, 4,153,111, 1,191, 1, 2, 1, 1, 7, 8, 6,157, 3,169, 0, 63, -237, 17, 18, 1, 57, 47, 93,237,225, 93, 49, 48, 1, 39, 54, 19, 51, 6, 7, 1,205, 15, 54,123,157, 62, 38, 3,193, 22,206, 1, - 17,255,246, 0, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, 0, 56, 64, 40, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1, -153, 0, 4, 32, 4, 48, 4,112, 4,128, 4,144, 4,208, 4,224, 4,240, 4, 9, 4, 4, 7, 8, 3,157, 6,169, 0, 63,237, 17, - 18, 1, 57, 47, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, 2,254, 14, 55,121,158, 65, 36, 5,182, 22,213,254,246, 1, - 10,235, 0, 1, 1,201,254,248, 3, 2, 0,238, 0, 6, 0, 67, 64, 49, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1,153, 0, - 4, 32, 4, 48, 4,112, 4,128, 4,144, 4,208, 4,224, 4,240, 4, 9, 4, 4, 7, 8, 3,158,209, 6, 1, 31, 6, 47, 6, 63, - 6, 3, 6, 0, 47, 93, 93,237, 17, 18, 1, 57, 47, 93,253,225, 93, 49, 48, 37, 23, 6, 3, 35, 18, 55, 2,244, 14, 55,121,137, - 71, 29,238, 23,213,254,246, 1, 36,210, 0, 1, 1,190, 3,193, 3, 12, 5,182, 0, 6, 0, 40, 64, 24, 22, 0, 38, 0,230, 0, -246, 0, 4, 0,152, 2,153,111, 5, 1, 5, 5, 7, 8, 3,157, 0,169, 0, 63,237, 17, 18, 1, 57, 47, 93,237,225, 93, 49, 48, - 1, 18, 23, 35, 2, 39, 55, 2,168, 40, 60,157,124, 53, 15, 5,182,254,253,242, 1, 18,205, 22, 0, 2, 0,233, 3,193, 3,225, - 5,182, 0, 6, 0, 13, 0, 74, 64, 50, 22, 6, 38, 6,230, 6,246, 6, 4, 6,152, 4,153, 47, 1,127, 1, 2, 1, 1, 22, 13, - 38, 13,230, 13,246, 13, 4, 13,152, 11,153, 0, 8,224, 8,240, 8, 3, 8, 8, 15, 14, 13, 6,157, 10, 3,169, 0, 63, 51,237, - 50, 17, 18, 1, 57, 47, 93,237,225, 93, 51, 47, 93,237,225, 93, 49, 48, 1, 39, 54, 19, 51, 6, 7, 33, 39, 54, 19, 51, 6, 7, - 2,162, 15, 54,123,157, 62, 38,253,123, 15, 54,123,157, 62, 38, 3,193, 22,206, 1, 17,255,246, 22,206, 1, 17,255,246, 0, 2, - 0,233, 3,193, 3,225, 5,182, 0, 6, 0, 13, 0, 92, 64, 65, 25, 13, 41, 13,233, 13,249, 13, 4, 13,152, 8,153, 47, 11,127, - 11, 2, 11, 11, 4, 25, 6, 41, 6,233, 6,249, 6, 4, 6,152, 1,153,224, 4,240, 4, 2,191, 4,207, 4, 2, 0, 4, 64, 4, - 80, 4,112, 4,128, 4, 5, 4, 4, 15, 14, 10, 3,157, 13, 6,169, 0, 63, 51,237, 50, 17, 18, 1, 57, 47, 93, 93, 93,253,225, - 93, 17, 51, 47, 93,253,225, 93, 49, 48, 1, 23, 6, 3, 35, 18, 55, 33, 23, 6, 3, 35, 18, 55, 2, 41, 14, 55,121,158, 65, 36, - 2,133, 14, 55,121,158, 65, 36, 5,182, 22,213,254,246, 1, 10,235, 22,213,254,246, 1, 10,235, 0, 2, 0,244,254,248, 3,215, - 0,238, 0, 6, 0, 13, 0, 93, 64, 64, 25, 13, 41, 13, 2, 13,152, 8,153, 63, 11, 1, 11, 11, 4, 25, 6, 41, 6, 2, 6,152, - 1,153,224, 4,240, 4, 2,191, 4,207, 4, 2, 0, 4, 64, 4, 80, 4,112, 4,128, 4, 5, 4, 4, 15, 14, 10, 3,158, 13,208, - 6, 1, 31, 6, 47, 6, 63, 6, 3, 6, 0, 47, 93, 93, 51,237, 50, 17, 18, 1, 57, 47, 93, 93, 93,253,225, 93, 17, 51, 47, 93, -253,225, 93, 49, 48, 37, 23, 6, 3, 35, 18, 55, 33, 23, 6, 3, 35, 18, 55, 2, 31, 14, 55,121,137, 71, 29, 2,113, 14, 51,125, -137, 71, 29,238, 23,213,254,246, 1, 36,210, 23,197,254,230, 1, 36,210, 0, 1, 0,240, 0, 0, 3,221, 6, 20, 0, 11, 0, 47, - 64, 25, 9, 0, 2,190, 8, 5,159, 3,175, 3, 2, 3, 3, 12, 13, 0, 5,191, 11, 6,254, 8, 0, 2, 21, 0, 63, 63,246, 50, -225, 50, 17, 18, 1, 57, 47, 93, 51, 51,225, 50, 50, 49, 48, 1, 37, 19, 35, 19, 5, 53, 5, 3, 51, 3, 37, 3,221,254,180, 56, -217, 55,254,201, 1, 55, 55,217, 56, 1, 76, 3,221, 31,252, 4, 3,252, 31,180, 30, 1,161,254, 95, 30, 0, 1, 0,229, 0, 0, - 3,231, 6, 20, 0, 21, 0, 55, 64, 28, 19, 16, 2, 4,190, 15, 12, 7, 5, 5, 22, 23, 19, 12,191, 18, 13,194, 15, 0, 8, 1, -191, 7, 2,194, 4, 21, 0, 63,246, 50,225, 50, 63,246, 50,225, 50, 17, 18, 1, 57, 47, 51, 51, 51,225, 50, 50, 50, 49, 48, 1, - 37, 21, 37, 19, 35, 19, 5, 53, 5, 3, 19, 5, 53, 5, 3, 51, 3, 37, 21, 37, 19, 2,156, 1, 75,254,181, 55,217, 55,254,180, - 1, 76, 47, 47,254,180, 1, 76, 55,217, 55, 1, 75,254,181, 47, 1,240, 30,180, 31,254,135, 1,121, 31,180, 30, 1, 34, 1, 19, - 31,180, 30, 1,120,254,136, 30,180, 31,254,237, 0, 1, 1,123, 1,229, 3, 82, 3,242, 0, 9, 0, 42, 64, 28, 16, 8, 80, 8, - 96, 8,144, 8,160, 8,224, 8, 6, 8, 95, 2,111, 2,175, 2, 3, 64, 2, 1, 2, 11, 0, 5, 0, 47,205, 1, 16,222, 93, 93, -205, 93, 49, 48, 1, 50, 17, 20, 6, 35, 34, 38, 53, 16, 2,102,236,127,109,111,124, 3,242,254,250,128,135,134,129, 1, 6, 0, - 0, 3, 0, 78,255,227, 4,127, 0,250, 0, 7, 0, 15, 0, 23, 0, 95, 64, 61, 52, 18, 1, 37, 18, 1, 6, 18, 22, 18, 2, 18, -150, 22, 22, 14, 52, 2, 1, 37, 2, 1, 6, 2, 22, 2, 2, 2,150, 6, 6, 52, 10, 1, 37, 10, 1, 6, 10, 22, 10, 2, 10,150, -224, 14,240, 14, 2, 14, 14, 24, 25, 16, 0, 8,155, 20, 4, 12,168, 0, 63, 51, 51,225, 50, 50, 17, 18, 1, 57, 47, 93,225, 93, - 93, 93, 51, 47,225, 93, 93, 93, 17, 51, 47,225, 93, 93, 93, 49, 48, 55, 50, 21, 20, 35, 34, 53, 52, 33, 50, 21, 20, 35, 34, 53, - 52, 33, 50, 21, 20, 35, 34, 53, 52,205,127,127,127, 2, 24,127,127,127, 2, 25,127,127,127,250,139,140,140,139,139,140,140,139, -139,140,140,139, 0, 7, 0, 4, 0, 0, 4,184, 5,201, 0, 9, 0, 21, 0, 25, 0, 35, 0, 47, 0, 57, 0, 69, 0,180, 64,118, - 67,180, 0, 51, 16, 51, 2, 51, 56, 45,180, 0, 29, 16, 29, 2, 29, 39,180, 25, 22,144, 34,160, 34, 2,111, 34,127, 34,143, 34, - 3,143, 22,159, 22,175, 22,207, 22, 4, 34, 22, 34, 22, 3, 61,180, 15, 56, 1, 56, 71, 23, 24, 24, 3, 13,180, 15, 8, 31, 8, - 2, 8, 19,180, 3, 58, 36,182, 26, 64, 42,182, 53, 31, 26, 22, 25, 24, 23,112, 25,128, 25,192, 25,224, 25,240, 25, 5,175, 23, -191, 23,239, 23,255, 23, 4, 25, 23, 25, 23, 5, 48, 26, 25, 10,182, 0, 16,182, 5, 7, 0, 63,225,212,225, 63, 51, 18, 57, 57, - 47, 47, 93, 93, 17, 51, 17, 51, 16,212, 50,225, 50, 16,225, 50, 1, 47,225,212, 93,225, 17, 51, 47, 51, 16,222, 93,225, 18, 57, - 57, 47, 47, 93, 93, 93, 17, 51,225,212, 93,225, 16,212, 93,225, 49, 48, 1, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, - 52, 38, 35, 34, 6, 21, 20, 22, 5, 1, 39, 1, 1, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, - 20, 22, 5, 34, 38, 53, 16, 51, 50, 22, 21, 16, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 1, 4,114,126,244,113,127,242, - 63, 42, 47, 58, 59, 47, 43, 2, 32,253, 70, 41, 2,186,254,244,114,125,243,113,127,242, 63, 42, 47, 58, 59, 47, 43, 2, 80,115, -125,244,112,127,241, 63, 41, 44, 60, 60, 47, 44, 3, 92,163,148, 1, 54,161,149,254,201,107,100,104,116, 85, 89,112,104,100,123, -254,225, 98, 1, 33,252, 80,163,148, 1, 54,161,149,254,201,106,101,104,116, 85, 89,112,104,101,106,163,148, 1, 54,162,148,254, -201,106,101,104,114, 87, 88,113,104,101,255,255, 1,240, 3,166, 2,221, 5,182, 2, 6, 0, 10, 0, 0,255,255, 1, 29, 3,166, - 3,176, 5,182, 2, 6, 0, 5, 0, 0, 0, 1, 1,145, 0,115, 3, 59, 3,199, 0, 6, 0, 63, 64, 38, 3,235, 0,236, 4,239, - 2,255, 2, 2,192, 2, 1,159, 2,175, 2, 2,112, 2, 1, 79, 2, 95, 2, 2, 2, 8, 64, 6, 5,238, 1,238, 32, 0, 3,239, - 0, 25, 63, 51, 26,237,237, 51, 1, 26, 24, 16,222, 93, 93, 93, 93, 93, 50,253,225, 49, 48, 1, 1, 23, 3, 19, 7, 1, 1,145, - 1, 54,116,237,237,116,254,202, 2, 41, 1,158, 78,254,164,254,164, 78, 1,155, 0, 1, 1,145, 0,115, 3, 59, 3,199, 0, 6, - 0, 37, 64, 17, 2, 4,236, 3,235, 0, 8, 64, 6, 5,238, 1,238, 32, 0, 3,239, 0, 25, 63, 51, 26,237,237, 51, 1, 26, 24, - 16,222,225,237, 50, 49, 48, 1, 1, 39, 19, 3, 55, 1, 3, 59,254,203,117,238,238,117, 1, 53, 2, 14,254,101, 78, 1, 92, 1, - 92, 78,254, 98,255,255, 0,255,255,227, 3,204, 5,182, 2, 39, 0, 4, 0,231, 0, 0, 1, 7, 0, 4,255, 24, 0, 0, 0, 32, - 64, 21, 3, 2,208, 22, 1,192, 22, 1,176, 22, 1, 64, 22, 1, 48, 22, 1, 32, 22, 1, 22, 17, 93, 93, 93, 93, 93, 93, 53, 53, - 0, 1, 0,170, 0, 0, 4, 33, 5,182, 0, 3, 0, 32, 64, 15, 3, 0, 0, 5, 1, 0, 2, 1, 2, 2, 4, 3, 6, 1, 24, 0, - 63, 63, 17, 1, 51, 47, 93, 51, 17, 51, 47, 50, 49, 48, 1, 1, 35, 1, 4, 33,253, 39,158, 2,217, 5,182,250, 74, 5,182, 0, - 0, 1, 1, 61, 3, 29, 3,143, 5,199, 0, 18, 0, 60, 64, 40, 0,224, 47, 18, 63, 18, 2, 18, 18, 11, 7,224, 16, 8, 32, 8, - 48, 8,128, 8,144, 8,160, 8,224, 8,240, 8, 8, 8, 11, 3,230, 14,222, 9,220, 7, 0,255, 0, 63, 50, 63, 63,225, 50, 1, - 47, 93,225, 50, 51, 47, 93,225, 49, 48, 1, 17, 52, 35, 34, 6, 21, 17, 35, 17, 51, 23, 51, 54, 51, 50, 22, 21, 17, 2,252,127, -100, 72,148,125, 17, 8, 68,139,110,127, 3, 29, 1,157,150,106,119,254,174, 2,153,104,121,130,120,254, 80, 0, 0, 1, 0,129, - 0, 0, 4, 33, 5,182, 0, 17, 0, 96, 64, 58, 2, 4, 16, 16, 5,159, 11,175, 11, 2, 11, 19, 14, 0, 4,110, 9, 7,128, 5, -240, 5, 2, 5, 9, 0,117, 3, 6, 3, 17,116, 14, 47, 14, 95, 14,239, 14,255, 14, 4, 14, 64, 16, 21, 72, 3, 14, 3, 14, 4, - 13,116, 10, 3, 4, 18, 0, 63, 63,225, 18, 57, 57, 47, 47, 43, 93, 16,225, 17, 51, 16,225, 50, 1, 47, 93,198, 51,225, 50, 50, - 16,206, 93, 17, 57, 47, 18, 57, 49, 48, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 1,227, 1, 37, -254,219,178,176,176, 2,240,253,194, 2, 23,253,233, 1,143,137,254,250, 1, 6,137, 4, 39,164,253,252,164, 0, 0, 1, 0,119, - 0, 0, 4, 86, 5,201, 0, 35, 0,133, 64, 81, 9, 6, 14,111, 30, 27, 23, 12, 7, 23, 7, 23, 7, 19, 0, 18, 37, 29, 24, 16, - 0, 19, 1, 19, 9, 28,117, 29, 6, 29, 10, 25,117, 24, 14, 24, 15, 29, 31, 29, 63, 29, 79, 29,127, 29,143, 29,175, 29,191, 29, -207, 29, 9,134, 24,150, 24, 2,119, 24, 1,111, 24, 1, 29, 24, 29, 24, 16, 3,115, 1, 34, 7, 20, 16,116, 19, 24, 0, 63,225, - 50, 63, 51,225, 18, 57, 57, 47, 47, 93, 93, 93, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 93, 51, 51, 51, 16,206, 50, - 17, 57, 57, 47, 47, 17, 51, 17, 51, 51,225, 50, 50, 49, 48, 1, 7, 38, 35, 34, 21, 21, 33, 21, 33, 21, 33, 21, 33, 21, 20, 7, - 33, 21, 33, 53, 54, 53, 53, 35, 53, 51, 53, 35, 53, 51, 53, 52, 54, 51, 50, 4, 39, 66,141,131,223, 1,121,254,135, 1,121,254, -135,140, 2,236,252, 33,200,198,198,198,198,217,181,192, 5,121,144, 72,246,192,137,158,137, 19,196, 78,166,154, 49,235, 21,137, -158,137,221,168,201, 0, 0, 3, 0, 82,255,236, 4,166, 5,182, 0, 9, 0, 16, 0, 36, 0,122, 64, 75, 6, 90, 13, 26, 24, 22, -112, 33, 29, 33, 33, 64, 16, 19, 72, 32, 13, 48, 13, 2, 13, 33, 13, 33, 2, 31, 31, 17, 64, 9, 14, 72, 17, 38, 10, 1, 90, 31, - 2, 47, 2, 63, 2, 3, 2, 35,117, 17, 20, 25, 23, 32,117, 25, 26, 28, 3, 29, 29, 0,117, 15, 10, 31, 10, 2, 10, 10, 2, 16, - 96, 3, 6, 2, 24, 0, 63, 63,225, 18, 57, 47, 93,225, 51, 47, 23, 51,225, 50, 63, 51,225, 1, 47, 93,225, 50, 16,206, 43, 50, - 47, 17, 57, 57, 47, 47, 93, 43, 17, 51, 16,225, 50, 50, 16,225, 49, 48, 19, 17, 35, 17, 51, 32, 17, 20, 6, 35, 39, 51, 32, 17, - 16, 33, 35, 1, 21, 6, 35, 34, 17, 17, 35, 53, 55, 55, 51, 21, 51, 21, 35, 17, 20, 51, 50,240,158,205, 1,194,230,226, 41, 41, - 1, 36,254,244, 65, 3,182, 64,102,221,115,115, 65, 86,209,209,113, 62, 2, 57,253,199, 5,182,254, 84,221,244,146, 1, 53, 1, - 35,251,102,125, 32, 1, 26, 1,100, 70, 51,215,211,125,254,164,153, 0, 0, 1, 0, 96,255,236, 4,106, 5,203, 0, 39, 0,106, - 64, 20, 11, 2, 2, 7, 34, 17, 41, 27, 22, 22, 12, 0, 7, 90, 29, 25, 21, 24, 9, 23,184, 1, 7,180, 22, 12, 22, 3, 27,184, - 1, 7, 64, 29, 28, 0, 28, 15, 28, 31, 28, 47, 28, 95, 28,159, 28,223, 28, 6, 22, 28, 22, 28, 14, 37, 95, 32, 4, 14, 95, 19, - 19, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 17, 51, 16,225, 50, 1, 47, 51, 51, 51,225, 50, 50, 51, 47, - 51, 16,206, 50, 17, 57, 17, 51, 49, 48, 1, 33, 21, 33, 20, 7, 7, 21, 20, 23, 33, 21, 33, 18, 33, 50, 55, 21, 6, 35, 32, 3, - 35, 53, 51, 39, 55, 35, 53, 51, 18, 0, 51, 50, 23, 7, 38, 35, 34, 6, 1,186, 1,176,254, 66, 1, 1, 2, 1,129,254,145, 73, - 1, 40,136,132,122,160,254, 65, 94,164,148, 2, 2,148,160, 39, 1, 25,219,191,144, 79,122,120,136,194, 3,166,137, 15, 14, 25, - 62, 20, 22,137,254,153, 58,162, 59, 2, 10,137, 38,120,137, 1, 6, 1, 31, 92,146, 74,199, 0, 0, 4, 0, 8,255,248, 4,199, - 5,193, 0, 19, 0, 23, 0, 35, 0, 43, 0,164,185, 0, 34,255,224,179, 9, 13, 72, 32,184,255,224, 64, 30, 9, 13, 72, 28, 32, - 9, 13, 72, 26, 32, 9, 13, 72,102, 42,150, 42,166, 42, 3, 42,180, 27,181, 33, 21, 22, 23, 20, 22,184,255,192, 64, 69, 21, 24, - 72, 20, 64, 21, 24, 72, 22, 20, 22, 20, 15,105, 38,153, 38,169, 38, 3, 38,180, 33, 45, 0, 16, 9, 32, 9, 80, 9,144, 9,160, - 9, 5, 9,102, 5,150, 5,166, 5, 3, 5,180, 15, 40,182, 30,183, 36,182, 24, 25, 23, 6, 21, 24, 9, 7,182, 12,183, 3,182, - 1, 18, 7, 0, 63, 51,225,244,225, 51, 63, 63, 63,225,244,225, 1, 47,225, 93,196, 93, 50, 16,214,225, 93, 18, 57, 57, 47, 47, - 43, 43, 17, 51, 17, 51, 16,244,225, 93, 49, 48, 43, 43, 43, 43, 1, 7, 38, 35, 34, 21, 20, 51, 50, 55, 21, 6, 35, 34, 38, 53, - 52, 54, 51, 50, 5, 1, 35, 1, 19, 34, 38, 53, 52, 54, 51, 50, 22, 21, 20, 6, 39, 50, 53, 52, 35, 34, 21, 20, 2, 20, 32, 82, - 68,198,194,103, 73, 74,108,156,176,180,162, 99, 2, 81,253, 39,157, 2,217, 33,132,170,166,140,131,170,164,139,155,155,158, 5, -156,107, 33,234,229, 33,107, 37,175,163,171,176, 11,250, 74, 5,182,250, 66,185,157,161,181,187,155,158,184,108,234,231,231,234, - 0, 2, 0,227,255,236, 3,231, 5,203, 0, 25, 0, 33, 0,106, 64, 62, 26, 22,110, 6, 12, 6, 9, 9, 6, 28,112, 19, 0,112, - 1, 63, 6, 1, 0, 6, 1, 63, 19,159, 19,175, 19,191, 19, 4, 32, 1, 1, 6, 19, 1, 1, 19, 6, 3, 34, 35, 9, 7, 21,118, - 12, 10, 26, 26, 24, 30,118, 16, 6, 24,117, 3, 1, 1, 3, 25, 0, 63, 51, 47, 16,225, 63,225, 18, 57, 47, 51, 51,225, 50, 50, - 17, 18, 1, 23, 57, 47, 47, 47, 93, 93, 93, 93, 16,225, 16,225, 17, 51, 47, 17, 51, 16,225, 50, 49, 48, 1, 51, 2, 33, 34, 38, - 53, 53, 6, 7, 53, 54, 55, 17, 52, 54, 51, 50, 22, 21, 16, 5, 17, 20, 51, 50, 1, 54, 17, 52, 35, 34, 6, 21, 3,117,114, 18, -254,244,139,154, 86,107, 72,121,137,133,110,126,254,172,145,144,254,223,207,103, 53, 51, 1, 76,254,160,183,173,231, 31, 26,121, - 19, 40, 1,238,140,159,165,136,254,157,186,254,211,221, 2,139,121, 1, 29,188, 81,107, 0, 4, 0, 25, 0, 0, 4,184, 5,182, - 0, 15, 0, 26, 0, 38, 0, 42, 0,240, 64, 21, 20, 25, 36, 25, 2, 20, 23, 36, 23, 2, 27, 20, 43, 20, 2, 27, 18, 43, 18, 2, - 9,184,255,208, 64, 40, 18, 21, 72,116, 9,132, 9, 2, 86, 9,102, 9, 2, 55, 9, 71, 9, 2, 1, 48, 18, 21, 72,123, 1,139, - 1, 2, 89, 1,105, 1, 2, 56, 1, 72, 1, 2, 39, 36,184, 1, 3,179, 19, 11, 1, 14,184, 1, 3, 64, 24, 15,111, 19,159, 19, -175, 19,207, 19,223, 19, 5, 19, 15, 19, 15, 7, 42, 64, 21, 24, 72, 42, 30,184, 1, 3,180, 24, 44, 9, 3, 6,184, 1, 3, 64, - 49, 7, 27,182, 16, 33,182, 21, 15, 16, 31, 16, 2, 16, 21, 16, 21, 14, 75, 2, 91, 2, 2, 2, 64, 9, 12, 72, 2, 8, 3,133, - 40, 1, 86, 40,102, 40,118, 40, 3, 40, 97, 39, 68, 10, 84, 10, 2, 10,184,255,192,182, 9, 12, 72, 10, 1, 7, 18, 0, 63, 51, - 51, 43, 93, 51,224, 93, 93, 63, 51, 43, 93, 51, 57, 57, 47, 47, 93, 16,225, 16,225, 1, 47,225, 50, 50, 16,214,225,196, 43, 18, - 57, 57, 47, 47, 93, 16,225, 50, 50, 16,225,196, 49, 48, 93, 93, 93, 43, 93, 93, 93, 43, 93, 93, 93, 93, 33, 35, 1, 35, 22, 21, - 17, 35, 17, 51, 1, 51, 2, 53, 17, 51, 1, 34, 38, 53, 16, 51, 50, 22, 21, 20, 6, 39, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, - 22, 3, 53, 33, 21, 2,137,174,254,187, 9, 19,135,176, 1, 67, 6, 14,133, 1, 49,114,135,253,114,136,132,120, 63, 48, 48, 63, - 64, 48, 48,147, 1,158, 4,145,253,164,253, 16, 5,182,251,117, 1, 47,100, 2,248,251, 92,187,162, 1, 90,183,163,168,181,121, -115,113,114,109,110,113,112,116,254,117,147,147, 0, 2, 0, 0, 2,229, 4,156, 5,182, 0, 7, 0, 25, 0,107, 64, 63, 24, 17, - 20,196, 19, 15, 9, 12,196, 13,191, 13, 1, 6, 13, 6, 13, 1, 31, 19, 1, 19, 27,182, 3,198, 3, 2,155, 3,171, 3, 2,122, - 3,138, 3, 2, 3, 0,196, 0, 1, 1, 1, 7, 3,200, 4, 16, 9, 24, 3, 4, 20, 13, 8, 1, 1, 17, 14, 4, 3, 0, 63, 51, - 51, 51, 47, 51, 51, 51, 18, 23, 57, 16,225, 50, 1, 47, 93,225, 51, 93, 93, 93, 16,206, 93, 17, 57, 57, 47, 47, 93, 16,225, 50, - 50, 16,225, 50, 50, 49, 48, 1, 35, 17, 35, 53, 33, 21, 35, 1, 3, 35, 23, 17, 35, 17, 51, 19, 19, 51, 17, 35, 17, 52, 55, 35, - 3, 1, 47,127,176, 1,225,178, 1,238,146, 12, 10,123,187,139,149,179,127, 10, 12,154, 2,229, 2,101,108,108,253,155, 2, 37, -180,254,143, 2,209,253,234, 2, 22,253, 47, 1, 86, 87,120,253,219, 0,255,255, 0, 74, 0, 0, 4,135, 5,205, 2, 6, 1,118, - 0, 0, 0, 2, 0, 82,255,221, 4,119, 4, 72, 0, 19, 0, 26, 0, 60, 64, 26, 20, 7, 0, 28, 26, 1, 31, 13, 47, 13, 63, 13, - 3, 13, 1,119, 26, 26, 4, 23,119, 16, 15, 4,119, 6,184,255,224,181, 9, 12, 72, 6, 10, 25, 0, 63, 51, 43,225, 63,225, 18, - 57, 47,225, 1, 47, 93, 51, 50, 16,206, 50, 50, 49, 48, 1, 33, 17, 22, 51, 50, 55, 23, 6, 6, 35, 34, 0, 53, 16, 0, 51, 50, - 0, 21, 39, 17, 38, 35, 34, 7, 17, 4,119,252,196,123,174,254,142, 71, 97,219,151,240,254,222, 1, 51,223,231, 1, 44,232,121, -180,171,124, 2, 18,254,156,123,234, 41,156,123, 1, 68,241, 1, 5, 1, 49,254,202,251, 81, 1, 21,119,117,254,233, 0,255,255, - 0, 18,255,246, 4,182, 5,182, 2, 39, 0,123,254,163, 0, 0, 0, 38, 2, 23,200, 0, 1, 7, 2, 64, 1, 86,253,103, 0, 84, - 64, 55, 4, 3, 2, 20, 24, 4, 3, 2,240, 20, 1,128, 20, 1, 16, 20, 1, 0, 20, 1, 20, 1,171, 13, 1,148, 13, 1,100, 13, - 1, 84, 13, 1, 68, 13, 1, 13, 0,240, 0, 1,224, 0, 1,176, 0, 1, 80, 0, 1, 64, 0, 1, 0, 17, 93, 93, 93, 93, 93, 53, - 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, 53, 53,255,255, 0, 11,255,246, 4,202, 5,197, 2, 39, - 0,117,254,181, 0, 0, 0, 38, 2, 23,239, 0, 1, 7, 2, 64, 1,106,253,103, 0, 76, 64, 49, 4, 3, 2, 40, 24, 4, 3, 2, -240, 40, 1,176, 40, 1,128, 40, 1, 16, 40, 1, 0, 40, 1, 40, 1,244, 33, 1,212, 33, 1,196, 33, 1,180, 33, 1,148, 33, 1, - 33, 0,192, 0, 1,127, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, - 53, 53,255,255, 0, 24,255,246, 4,202, 5,182, 2, 39, 2, 61,254,200, 0, 0, 0, 38, 2, 23,239, 0, 1, 7, 2, 64, 1,106, -253,103, 0, 80, 64, 52, 4, 3, 2, 34, 24, 4, 3, 2,240, 34, 1,176, 34, 1,128, 34, 1, 16, 34, 1, 0, 34, 1, 34, 1,244, - 27, 1,212, 27, 1,196, 27, 1,180, 27, 1,148, 27, 1, 27, 0,224, 0, 1,208, 0, 1,192, 0, 1, 0, 17, 93, 93, 93, 53, 17, - 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, 53, 0, 63, 53, 53, 53,255,255, 0, 28,255,246, 4,202, 5,182, 2, 39, - 2, 63,254,173, 0, 0, 0, 38, 2, 23,175, 0, 1, 7, 2, 64, 1,106,253,103, 0, 80, 64, 52, 4, 3, 2, 16, 24, 4, 3, 2, -240, 16, 1,176, 16, 1,128, 16, 1, 16, 16, 1, 0, 16, 1, 16, 1,171, 9, 1,107, 9, 1, 91, 9, 1, 75, 9, 1, 52, 9, 1, - 36, 9, 1, 9, 0,192, 0, 1,127, 0, 1, 0, 17, 93, 93, 53, 17, 93, 93, 93, 93, 93, 93, 53, 17, 93, 93, 93, 93, 93, 53, 53, - 53, 0, 63, 53, 53, 53, 0, 2, 0,121,255,236, 4, 82, 5,197, 0, 20, 0, 31, 0, 57, 64, 30, 6, 6, 16, 21, 1, 70, 11, 33, - 27, 72, 0, 16, 1, 16, 21, 0, 24, 78, 19, 19, 9, 29, 80, 14, 22, 6, 4, 80, 9, 4, 0, 63,225, 51, 63,225, 17, 57, 47,225, - 50, 50, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 49, 48, 1, 55, 54, 38, 35, 34, 7, 53, 54, 51, 32, 17, 16, 0, 33, 32, 17, - 52, 0, 51, 50, 19, 38, 38, 35, 34, 2, 21, 20, 51, 50, 18, 3,156, 2, 9,133,153,131,127,134,149, 1,176,254,175,254,226,254, -150, 1, 20,244,184, 66, 22,127, 76,160,197,187,138,219, 3, 94, 40,181,242, 84,174, 62,253,225,254,123,253,203, 1,139,249, 1, -130,254,182, 85,105,254,192,181,236, 1, 50, 0, 0, 2, 0, 74, 0, 0, 4,131, 5,182, 0, 5, 0, 12, 0,200,181, 12, 16, 15, - 19, 72, 11,184,255,240,182, 15, 19, 72,183, 2, 1, 2,184,255,248, 64, 68, 13, 17, 72, 38, 2, 1, 23, 2, 1, 6, 2, 1,184, - 1, 1, 1, 8, 13, 17, 72, 41, 1, 1, 24, 1, 1, 9, 1, 1,231, 2, 1, 2,232, 1, 1, 1, 8, 8, 0, 12, 16, 20, 24, 72, - 72, 12, 88, 12, 2, 42, 12, 1, 9, 12, 25, 12, 2, 12, 95, 3,111, 3, 2, 3, 3, 14, 11,184,255,240, 64, 54, 20, 24, 72, 71, - 11, 87, 11, 2, 37, 11, 1, 6, 11, 22, 11, 2, 11, 80, 0, 96, 0,224, 0,240, 0, 4, 0, 0, 3, 11, 95, 5, 18, 8, 16, 17, - 24, 72, 91, 8, 1, 41, 8, 57, 8, 73, 8, 3, 29, 8, 1, 8, 1, 3, 0, 63, 51, 93, 93, 93, 43, 63,225, 57, 57, 1, 47, 93, - 51, 93, 93, 93, 43, 17, 51, 47, 93, 51, 93, 93, 93, 43, 18, 57, 61, 47, 51, 93, 51, 93, 49, 48, 93, 93, 93, 43, 93, 93, 93, 93, - 43, 93, 43, 43, 55, 1, 51, 1, 21, 33, 1, 38, 39, 6, 7, 3, 33, 74, 1,190,187, 1,192,251,199, 2,119, 59, 34, 45, 43,250, - 2,166,113, 5, 69,250,185,111, 3,154,182,158,200,134,253, 4, 0, 1, 0,156,254, 20, 4, 88, 5,182, 0, 7, 0, 49, 64, 15, - 0, 90,224, 7,240, 7, 2, 7, 9, 3, 90, 0, 4, 1, 4,184,255,192, 64, 11, 20, 24, 72, 4, 2, 95, 5, 3, 4, 0, 27, 0, - 63, 50, 63,225, 1, 47, 43, 93,225, 16,222, 93,225, 49, 48, 1, 17, 33, 17, 35, 17, 33, 17, 3,158,253,184,186, 3,188,254, 20, - 6,252,249, 4, 7,162,248, 94, 0, 1, 0, 74,254, 20, 4,145, 5,182, 0, 11, 0,122, 64, 82, 55, 9,215, 9,231, 9,247, 9, - 4, 38, 9, 1, 7, 9, 23, 9, 2, 55, 7,215, 7,231, 7,247, 7, 4, 38, 7, 1, 7, 7, 23, 7, 2, 56, 2,216, 2,232, 2, -248, 2, 4, 25, 2, 41, 2, 2, 8, 2, 1, 8, 2, 2, 0, 6, 10, 13, 7, 3, 3, 9, 0, 64, 10, 13, 72, 0, 3, 7, 95, 4, - 8, 2, 2, 4, 3, 1, 9, 95, 0, 27, 0, 63,225, 57, 63, 57, 61, 47, 51, 16,225, 57, 1, 24, 47, 43, 51, 51, 17, 51, 16,206, - 50, 17, 57, 47, 51, 49, 48, 93, 93, 93, 93, 93, 93, 93, 93, 93, 19, 53, 1, 1, 53, 33, 21, 33, 1, 1, 33, 21, 74, 2, 71,253, -201, 3,246,253, 14, 2, 17,253,213, 3, 77,254, 20,115, 3,146, 3, 43,114,164,253, 9,252,157,164, 0, 0, 1, 0,152, 2,135, - 4, 51, 3, 29, 0, 3, 0, 26, 64, 12, 2, 5, 0, 1, 1, 1, 1, 4, 0,173, 1,179, 0, 63,225, 17, 1, 51, 47, 93, 16,206, - 49, 48, 19, 53, 33, 21,152, 3,155, 2,135,150,150, 0, 0, 1, 0, 23,255,242, 4,182, 6,160, 0, 8, 0, 46, 64, 21, 1, 0, - 6, 6, 7, 8, 8, 10, 5, 2, 2, 3, 3,174, 4, 4, 15, 7, 1, 7, 0, 0, 47, 47, 93, 57, 47,225, 1, 47, 50, 47, 51, 17, - 51, 47, 51, 57, 25, 47, 51, 51, 49, 48, 5, 35, 1, 35, 53, 33, 19, 1, 51, 2,100,133,254,236,180, 1, 40,230, 2, 0,145, 14, - 3, 10,143,253,105, 5,172, 0, 0, 3, 0, 70, 1,145, 4,133, 4, 14, 0, 19, 0, 29, 0, 39, 0, 95,185, 0, 16,255,224,179, - 9, 12, 72, 14,184,255,224, 64, 50, 9, 12, 72, 6, 32, 9, 12, 72, 4, 32, 9, 12, 72, 30, 10, 0, 20, 4, 5, 35,171, 15, 15, - 1, 15, 41, 25,171, 5, 38, 22,174, 10, 0, 2, 12, 8, 8, 32, 28,174, 18, 63, 2,143, 2,223, 2, 3, 2, 0, 47, 93, 51,225, - 50, 51, 47, 51, 18, 57, 57,225, 50, 1, 47,225, 16,222, 93,225, 17, 23, 57, 49, 48, 43, 43, 43, 43, 1, 6, 35, 34, 38, 53, 52, - 54, 51, 50, 23, 54, 51, 50, 22, 21, 20, 6, 35, 34, 3, 38, 35, 34, 6, 21, 20, 22, 51, 50, 55, 22, 51, 50, 54, 53, 52, 38, 35, - 34, 2, 98,118,154,119,149,149,119,166,108,116,165,118,146,151,113,171,181, 82,109, 65, 80, 80, 67,104,228, 86,107, 65, 80, 84, - 64,103, 2,109,213,174,141,134,181,219,213,172,143,131,185, 1, 66,184,107, 79, 81,101,178,185,109, 78, 79,103, 0, 1, 0,236, -254, 20, 3,225, 6, 20, 0, 20, 0, 41, 64, 21, 1, 6,170, 12, 16, 16, 1, 16, 16, 21, 22, 3,174, 1, 19, 0, 14,174, 12, 9, - 27, 0, 63, 51,225, 63, 51,225, 17, 18, 1, 57, 47, 93, 51,225, 50, 49, 48, 1, 21, 38, 35, 34, 21, 17, 20, 6, 35, 34, 39, 53, - 22, 51, 50, 53, 17, 16, 33, 50, 3,225, 56, 58,172,178,160, 78, 55, 60, 56,180, 1, 74, 88, 6, 2,147, 26,233,250,215,174,181, - 19,147, 24,233, 5, 39, 1, 98, 0, 2, 0,152, 1,123, 4, 51, 4, 37, 0, 17, 0, 35, 0, 72, 64, 41, 28, 9, 37, 18, 0, 0, - 1, 0, 0, 36, 34,173, 27, 21,178, 30, 16,173, 9, 3,178, 7,173, 0, 63, 12, 1, 12, 12, 25,173, 18,223, 30, 1, 80, 30,160, - 30, 2, 30, 0, 47, 93, 93, 51,225, 51, 47, 93, 51,225,253, 50,225, 16,253, 50,225, 17, 1, 51, 47, 93, 51, 16,206, 50, 49, 48, - 19, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, 6, 35, 34, 39, 38, 35, 34, 3, 53, 54, 51, 50, 23, 22, 51, 50, 55, 21, 6, 35, 34, - 39, 38, 35, 34,152, 98,149, 98,150,127, 74,109,118, 97,151,100,147,128, 73,112,115, 99,148,100,148,130, 71,108,119, 99,149,100, -147,131, 70,108, 3, 20,162,109, 64, 55,121,162,108, 63, 55,253,238,162,108, 63, 56,121,162,108, 63, 56, 0, 1, 0,152, 0,164, - 4, 51, 5, 4, 0, 19, 0,110, 64, 65, 7, 4, 3, 0, 4, 19, 8, 8, 10, 13, 14, 17, 4, 18, 9, 18, 19, 9, 19, 9, 19, 6, - 15, 11, 21, 2, 0, 6, 1, 6, 6, 20, 15, 2,173, 16,112, 1, 1, 79, 1, 95, 1,111, 1, 3, 0, 1, 1, 1, 1, 12, 5,173, - 11,143, 6, 1, 80, 6, 1, 15, 6, 1, 6, 0, 47, 93, 93, 93, 51,225, 50, 51, 47, 93, 93, 93, 51,225, 50, 17, 1, 51, 47, 93, - 51, 16,206, 50, 17, 57, 57, 47, 47, 17, 51, 17, 18, 23, 57, 51, 17, 18, 23, 57, 49, 48, 1, 35, 53, 33, 19, 33, 53, 33, 19, 23, - 7, 51, 21, 33, 3, 33, 21, 33, 3, 39, 1,143,247, 1, 61,121,254, 74, 1,251,134,137,105,250,254,193,123, 1,186,254, 0,129, -137, 1,186,150, 1, 4,149, 1, 27, 59,224,149,254,252,150,254,234, 57, 0, 2, 0,152, 0, 0, 4, 51, 4,201, 0, 6, 0, 10, - 0,101, 64, 63,103, 6,119, 6,135, 6, 3,104, 4,120, 4,136, 4, 3,118, 5,134, 5, 2, 5, 4, 1, 4, 9, 0, 12, 8, 1, - 1, 11, 2, 1, 5, 5, 3, 6,224, 0, 1,223, 0, 1, 64, 0, 1, 63, 0, 1, 0, 0, 1, 0, 0, 4, 32, 3,192, 3, 2, 15, - 3, 1, 3, 0, 47, 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 50, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 16,206, 50, 50, 17, 18, - 57, 93, 49, 48, 0, 93, 93, 37, 1, 53, 1, 21, 9, 2, 53, 33, 21, 4, 51,252,101, 3,155,253, 53, 2,203,252,101, 3,155,221, - 1,195,102, 1,195,160,254,170,254,170,254,131,150,150, 0, 2, 0,152, 0, 0, 4, 51, 4,201, 0, 6, 0, 10, 0, 99, 64, 62, -104, 2,120, 2,136, 2, 3,103, 0,119, 0,135, 0, 3,121, 1,137, 1, 2, 1, 6, 9, 4, 12, 8, 2, 6, 6, 11, 5, 4, 1, - 1, 3, 0,224, 6, 1,223, 6, 1, 64, 6, 1, 63, 6, 1, 0, 6, 1, 6, 6, 2, 32, 3,192, 3, 2, 15, 3, 1, 3, 0, 47, - 93, 93, 51, 51, 47, 93, 93, 93, 93, 93, 51, 18, 57, 17, 51, 51, 17, 1, 51, 47, 51, 51, 16,206, 50, 17, 57, 93, 49, 48, 0, 93, - 93, 19, 1, 1, 53, 1, 21, 1, 21, 53, 33, 21,152, 2,202,253, 54, 3,155,252,101, 3,155, 1,125, 1, 86, 1, 86,160,254, 61, -102,254, 61,221,150,150, 0, 2, 0,125, 0, 0, 4, 80, 5,195, 0, 5, 0, 9, 0, 68, 64, 31, 2, 1, 9, 9, 5, 4, 7, 7, - 3, 6, 0, 11, 8, 0, 3, 1, 3, 3, 10, 0, 6, 6, 3, 8, 8, 1, 7, 4, 3, 9, 1, 0, 47, 51, 63, 51, 18, 57, 61, 47, - 51, 51, 17, 51, 17, 1, 51, 24, 47, 93, 51, 16,206, 50, 17, 57, 61, 47, 51, 51, 51, 47, 51, 51, 49, 48, 1, 1, 35, 1, 1, 51, - 9, 3, 4, 80,254, 59, 76,254, 62, 1,194, 76, 1, 13,254,206,254,207, 1, 49, 2,225,253, 31, 2,223, 2,228,253, 30, 2, 0, -254, 0,253,254, 0, 3, 0, 49, 0, 0, 4, 43, 6, 31, 0, 21, 0, 30, 0, 34, 0, 82, 64, 43, 29, 32, 71, 31, 13, 0, 0, 3, - 24, 31, 36, 20, 2, 71, 3, 7, 3, 5, 5, 3, 27, 83,175, 22, 1, 22, 22, 11, 4, 1, 79, 33, 7, 20, 15, 16, 80, 14, 11, 1, - 32, 2, 21, 0, 63, 51, 63, 51,225, 63, 51, 51,225, 50, 18, 57, 47, 93,237, 1, 47, 51, 47, 17, 51, 16,225, 50, 16,206, 50, 17, - 57, 47, 57, 16,225, 50, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, 7, 38, 35, 34, 6, 21, 21, 51, 1, 50, - 21, 20, 6, 35, 34, 53, 52, 19, 35, 17, 51, 2,160,246,182,195,195,153,178, 97,100, 47, 79, 64, 92, 64,246, 1, 33,106, 63, 43, -107,197,183,183, 3,193,252, 63, 3,193, 75, 68, 96,190,177, 37,141, 28,101,114,104, 1,155,114, 58, 57,115,114,250, 27, 4, 74, - 0, 2, 0, 49, 0, 0, 4, 27, 6, 31, 0, 21, 0, 25, 0, 66, 64, 34, 13, 22, 0, 0, 3, 23, 71, 22, 27, 20, 2, 71, 3, 7, - 3, 5, 5, 3, 24, 0, 4, 1, 79, 7, 20, 15, 16, 80, 14, 11, 1, 23, 2, 21, 0, 63, 51, 63, 51,225, 63, 51,225, 50, 63, 1, - 47, 51, 47, 17, 51, 16,225, 50, 16,222,225, 18, 57, 47, 18, 57, 49, 48, 1, 35, 17, 35, 17, 35, 53, 55, 53, 52, 54, 51, 50, 23, - 7, 38, 35, 34, 6, 21, 21, 51, 1, 35, 17, 51, 2,160,246,182,195,195,153,178, 97,100, 47, 79, 64, 92, 64,246, 1,123,183,183, - 3,193,252, 63, 3,193, 75, 68, 96,190,177, 37,141, 28,101,114,104,251,182, 6, 20, 0, 0, 1, 0,231, 4,217, 3,229, 6, 23, - 0, 11, 0, 45, 64, 16, 6,136, 0, 5, 1, 5, 5, 11,136, 0, 0, 13, 5, 0,146, 9,184, 1, 1,181, 15, 2, 95, 2, 2, 2, - 0, 47, 93,225,228, 50, 17, 1, 51, 47,225, 51, 47, 93,225, 49, 48, 1, 2, 33, 34, 38, 39, 51, 22, 22, 51, 50, 55, 3,229, 20, -254,143,195,172, 10,170, 8, 84,119,194, 17, 6, 23,254,194,148,170,102, 85,187, 0, 1, 0,135,254, 20, 3, 86, 4, 74, 0, 15, - 0, 47, 64, 26, 8, 0, 6, 71,144, 11,160, 11, 2, 11, 11, 16, 17, 0, 0, 1, 0, 3, 80, 1, 14, 27, 7, 78, 10, 15, 0, 63, -225, 63, 51,225, 1, 47, 93, 17, 18, 57, 47, 93,225, 17, 57, 49, 48, 19, 53, 22, 51, 50, 54, 53, 17, 37, 53, 33, 17, 20, 6, 35, - 34,135,134,155,117,131,254, 92, 2, 90,226,206,164,254, 55,154, 39,114,101, 4, 57, 21,123,251, 65,180,195, 0, 0, 1, 1,238, - 4,205, 2,223, 6, 20, 0, 9, 0, 22, 64, 9, 9, 9, 4, 4, 11, 8,146, 3, 0, 0, 63,237, 17, 1, 51, 47, 51, 47, 49, 48, - 1, 55, 54, 55, 51, 21, 20, 6, 7, 35, 1,238, 26, 26, 9,180, 84, 61, 96, 4,231,107,116, 78, 20, 14,198, 95, 0, 1, 1,227, -254, 59, 2,233,255,131, 0, 8, 0, 27, 64, 13, 8, 8, 3, 3, 10, 7,146, 15, 2, 31, 2, 2, 2, 0, 47, 93,237, 17, 1, 51, - 47, 51, 47, 49, 48, 1, 54, 55, 51, 21, 20, 6, 7, 35, 1,227, 62, 22,178, 96, 67, 99,254, 86,140,161, 20, 22,204, 82, 0, 1, - 1,227, 4,217, 2,233, 6, 33, 0, 8, 0, 27, 64, 13, 3, 3, 8, 8, 10, 7,146, 15, 2, 95, 2, 2, 2, 0, 47, 93,237, 17, - 1, 51, 47, 51, 47, 49, 48, 1, 6, 7, 35, 53, 52, 54, 55, 51, 2,233, 63, 20,179, 91, 73, 98, 6, 6,153,148, 21, 17,201, 89, - 0, 2, 1, 57, 2, 57, 3,147, 5,199, 0, 9, 0, 17, 0, 34, 64, 18, 12,224, 48, 8, 1, 8, 8, 16,224, 3, 14,230, 5,222, - 10,230, 0,223, 0, 63,225, 63,225, 1, 47,225, 51, 47, 93,225, 49, 48, 1, 34, 38, 53, 16, 33, 50, 22, 21, 16, 37, 50, 17, 16, - 35, 34, 17, 16, 2,100,142,157, 1, 43,149,154,254,209,156,156,151, 2, 57,234,223, 1,197,236,217,254, 55,131, 1, 70, 1, 68, -254,188,254,186, 0, 2, 1, 37, 2,168, 3,127, 5,195, 0, 10, 0, 17, 0, 86, 64, 52, 17, 95, 6,207, 6, 2, 6, 6, 9,104, - 0,120, 0, 2, 0, 32, 11, 14, 72, 0, 2,224, 11, 7, 31, 3,143, 3, 2, 3, 3, 18, 19, 4, 1,228, 17, 6, 14, 7, 11, 9, - 27, 9, 2, 9, 9, 2, 7,222, 2,223, 0, 63, 63, 18, 57, 47, 93, 18, 57, 51, 51,225, 50, 17, 18, 1, 57, 47, 93, 51, 51,225, - 50, 43, 93, 50, 51, 47, 93, 51, 49, 48, 1, 35, 21, 35, 53, 33, 53, 1, 51, 17, 51, 35, 53, 52, 55, 6, 7, 7, 3,127, 84,143, -254,137, 1,121,141, 84,227, 6, 40, 40,156, 3, 86,174,174, 98, 2, 11,254, 4,176, 82, 90, 73, 58,217, 0, 1, 1, 80, 2,145, - 3, 68, 5,182, 0, 24, 0, 92, 64, 57, 14, 15, 15, 11, 12, 64, 16, 24, 72, 10, 12, 10, 12, 0, 5,224, 15, 20, 31, 20, 79, 20, - 95, 20,127, 20,143, 20,159, 20, 7, 20, 20,207, 0, 1,112, 0, 1, 0, 10, 9, 9, 7,229, 17, 17, 11, 3,228, 1, 23,223, 14, -228, 11,220, 0, 63,225, 63, 51,225, 17, 57, 47,225, 51, 18, 57, 1, 47, 93, 93, 51, 47, 93,225, 18, 57, 57, 47, 47, 43, 51, 51, - 17, 51, 49, 48, 1, 53, 22, 51, 50, 53, 52, 35, 34, 7, 39, 19, 33, 21, 33, 7, 54, 51, 50, 22, 21, 20, 6, 35, 34, 1, 80,102, -105,162,166, 52, 73, 62, 31, 1,141,254,224, 17, 35, 61,118,147,150,145,124, 2,193,129, 68,147,146, 17, 39, 1,125,110,193, 6, -130,109,127,142, 0, 2, 1, 57, 2, 57, 3,147, 5,213, 0, 16, 0, 27, 0, 56, 64, 30, 3, 22,224, 15, 1, 15, 17,224, 48, 9, - 1, 9, 9, 15, 3, 19,228, 0, 6, 1, 6, 6, 0, 25,230, 12,223, 1, 0,222, 0, 63, 50, 63,225, 17, 57, 47, 93,225, 50, 1, - 47, 51, 47, 93,225, 18, 57, 16,225, 50, 49, 48, 1, 23, 4, 7, 51, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 53, 16, 1, 52, 35, - 34, 6, 21, 20, 22, 51, 50, 54, 3, 29, 45,254,183, 52, 10, 61,140,112,131,165,134,135,168, 1,205,147, 74, 98, 93, 75, 68, 83, - 5,213,109,110,215, 92,153,128,133,168,187,157, 1,151,254, 60,172, 87, 64, 86,113, 92, 0, 1, 1,111, 2,160, 3,147, 5,182, - 0, 6, 0, 53, 64, 34, 6, 0, 0, 1, 15, 5, 79, 5,127, 5, 3, 5, 5, 0, 2, 80, 2, 96, 2,112, 2,176, 2,208, 2, 6, - 2, 5, 2,230, 3,220, 0,221, 0, 63, 63,225, 50, 1, 47, 93, 50, 47, 93, 51, 57, 47, 51, 49, 48, 1, 1, 33, 53, 33, 21, 1, - 1,195, 1, 53,254,119, 2, 36,254,203, 2,160, 2,157,121,100,253, 78, 0, 3, 1, 49, 2,143, 3, 96, 5,195, 0, 19, 0, 27, - 0, 36, 0,125, 64, 83, 10, 28, 12, 34,224, 2, 20, 0, 2, 26,224, 12, 22,224, 18, 12, 18, 12, 18, 8, 15, 2,127, 2,191, 2, - 3, 2, 2, 30,224, 31, 8,239, 8, 2, 8,105, 20, 1,184, 0,200, 0,216, 0, 3,105, 0, 1,184, 10,200, 10,216, 10, 3,105, - 10, 1,105, 28,185, 28,201, 28,217, 28, 4, 28, 10, 0, 20, 4, 5, 24,229, 15,222, 32,229, 5,223, 0, 63,225, 63,225, 18, 23, - 57, 93, 93, 93, 93, 93, 93, 1, 47, 93,225, 51, 47, 93, 18, 57, 57, 47, 47, 16,225, 16,225, 17, 57, 57, 16,225, 17, 57, 57, 49, - 48, 1, 22, 21, 20, 6, 35, 34, 38, 53, 52, 55, 38, 53, 52, 54, 51, 50, 22, 21, 20, 7, 54, 53, 52, 35, 34, 21, 20, 23, 6, 21, - 20, 51, 50, 53, 52, 39, 2,186,166,152,124,136,147,139,114,144,112,111,141,252,106,108,107, 92,118,131,135,135, 4, 66, 85,122, -103,125,118,104,130, 74, 79,114, 91,110,108, 93,116, 19, 49, 84, 96, 96, 81,161, 63, 90,117,117, 89, 58, 0, 2, 1, 57, 2, 57, - 3,147, 5,201, 0, 20, 0, 31, 0, 57, 64, 31, 5, 26,224, 1, 11, 48, 17, 1, 17, 17, 21,224, 11, 5, 23,228, 15, 8, 1, 8, - 8, 14, 3,228, 1, 19,223, 29,230, 14,222, 0, 63,225, 63, 51,225, 17, 57, 47, 93,225, 50, 1, 47,225, 51, 47, 93, 18, 57,225, - 50, 49, 48, 1, 53, 22, 51, 32, 19, 35, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 21, 16, 33, 34, 19, 20, 51, 50, 54, 53, 52, 38, - 35, 34, 6, 1,135, 39, 62, 1, 16, 14, 8, 71,126,122,138,160,131,142,169,254, 99, 62, 13,149, 73, 97, 89, 77, 68, 85, 2, 72, -125, 23, 1, 59, 98,149,126,133,170,205,186,253,247, 2, 99,164, 87, 56, 80,123, 94, 0, 0, 18, 0, 55,254,129, 4,150, 5,238, - 0, 19, 0, 37, 0, 57, 0, 69, 0, 75, 0, 81, 0, 87, 0, 93, 0, 97, 0,101, 0,105, 0,109, 0,113, 0,117, 0,121, 0,125, - 0,134, 0,143, 1, 6, 64, 46, 98,122,101,125,122,125, 76, 93, 63, 19, 19, 69, 9,135,127,127, 37,139,131,131, 24, 15, 33, 95, - 33,111, 33, 3, 33, 33, 37, 42, 55, 79, 9, 95, 9, 2, 16, 37, 32, 37, 96, 37, 3, 37,184,255,192, 64,100, 21, 24, 72, 64, 55, - 80, 55,224, 55, 3, 9, 37, 55, 55, 37, 9, 3, 70, 85, 85,118,114,110, 93, 70,107,103, 95, 76,116,104,112, 96,120,108,104, 96, -108,108, 96,104, 3, 76, 71, 41, 57, 57, 38, 27,126,126,135, 32, 15, 19, 72,135,135, 20,127,127, 96, 37, 1, 37, 37,143, 20, 20, - 14,240, 38, 1,111, 38, 1, 38, 38, 52, 45, 60,255, 4, 1, 4, 4, 66, 14, 45, 14, 45, 14, 88, 83, 88,122, 76, 83, 99, 71, 0, - 47, 51, 51, 47, 51, 51, 17, 18, 57, 57, 47, 47, 17, 51, 51, 47, 93, 51, 17, 51, 51, 47, 93, 93, 18, 57, 47, 51, 51, 47, 93, 51, - 17, 18, 57, 47, 43, 51, 18, 57, 17, 51, 17, 51, 17, 18, 23, 57, 47, 47, 47, 17, 51, 17, 51, 17, 51, 1, 47, 50, 50, 50, 50, 47, - 51, 51, 51, 51, 17, 18, 23, 57, 47, 47, 47, 93, 43, 93, 93, 17, 51, 17, 51, 47, 93, 51, 51, 17, 51, 17, 51, 17, 51, 17, 51, 51, - 47, 51, 17, 18, 57, 57, 17, 51, 17, 51, 49, 48, 0, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 21, 3, 51, 50, 22, - 21, 20, 6, 7, 21, 30, 3, 21, 20, 6, 35, 35, 23, 33, 21, 35, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 35, - 0, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 21, 37, 17, 33, 21, 35, 21, 3, 17, 51, 21, 51, 21, 1, 53, 33, 17, 35, 53, 3, 53, - 51, 53, 51, 17, 1, 35, 17, 51, 1, 53, 33, 21, 1, 35, 17, 51, 17, 35, 17, 51, 1, 35, 17, 51, 17, 35, 17, 51, 17, 35, 17, 51, - 1, 53, 33, 21, 3, 21, 51, 50, 54, 53, 52, 38, 35, 39, 51, 50, 54, 53, 52, 38, 35, 35, 2,160, 25, 52, 78, 54, 54, 79, 51, 25, - 25, 51, 79, 54, 54, 78, 52, 25,137,137, 88, 88, 37, 35, 18, 31, 23, 14, 87, 75,165,223, 1, 10, 72, 88, 69, 31, 43, 12, 12, 39, - 24, 29, 39, 94,254,108, 53, 56, 57, 51, 51, 57, 56, 53,254,213, 1, 47,192,111,111,192, 2, 0, 1, 48,109,195,195,109,252, 16, -111,111, 1, 57, 1, 15,253,184,111,111,111,111, 3,240,109,109,109,109,109,109,253, 73, 1, 15,117, 59, 38, 30, 30, 42, 55, 51, - 37, 29, 33, 37, 47, 4, 5, 88, 64, 35, 35, 64, 88, 54, 55, 89, 63, 35, 35, 63, 89, 55,254,224, 53, 66, 40, 54, 7, 4, 3, 14, - 25, 38, 28, 65, 72, 52, 77,242, 80, 76, 5, 3, 82, 2, 4, 29, 41,244, 3, 44, 83, 83, 74, 75, 83, 83, 75,131, 1, 48,111,193, -249,195, 1, 47,194,109, 6,254,111,254,208,193,249, 2,109,194,254,209, 3, 45, 1, 16, 2,193,111,111,250,168, 1, 14, 2, 2, - 1, 15,253,104, 1, 16,253,105, 1, 14, 2, 2, 1, 15,250, 59,109,109, 3,145,122, 34, 31, 25, 32, 80, 27, 25, 27, 24, 0, 3, - 0, 4,254,193, 4,203, 6, 20, 0, 3, 0, 41, 0, 57, 0, 78, 64, 38, 4, 41, 41, 42,113, 50, 1, 80, 50, 96, 50, 2, 50, 50, - 42, 23, 23,127, 42, 1, 42, 42, 2, 30, 15, 15, 2, 55, 45, 41, 41, 45, 45, 3, 27, 18, 18, 3, 0, 25, 47, 51, 24, 47, 51, 17, - 51, 47, 51, 47, 17, 51, 1, 25, 47, 51, 24, 47, 51, 17, 51, 47, 93, 51, 47, 17, 51, 47, 93, 93, 17, 51, 47, 51, 49, 48, 9, 3, - 5, 53, 52, 62, 2, 55, 62, 3, 53, 52, 38, 35, 34, 14, 2, 7, 23, 54, 54, 51, 50, 22, 21, 20, 14, 2, 7, 14, 3, 21, 21, 7, - 20, 22, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 2,102, 2,101,253,155,253,158, 2,152, 7, 20, 35, 28, 35, 53, 35, 18,152, -135, 35, 72, 70, 65, 28, 66, 55,102, 45, 53, 50, 11, 24, 38, 28, 31, 43, 27, 13, 21, 65, 50, 21, 41, 32, 19, 19, 32, 41, 21, 50, - 65, 6, 20,252, 86,252, 87, 3,169,233, 43, 23, 34, 33, 34, 23, 33, 57, 62, 71, 46,124,136, 14, 25, 33, 18,160, 31, 41, 53, 42, - 26, 40, 36, 37, 24, 28, 51, 54, 59, 36, 55,246, 65, 58, 14, 30, 47, 32, 34, 47, 29, 13, 56, 0,255,255, 0,135,254, 20, 3,169, - 6, 33, 2, 38, 2, 55, 0, 0, 1, 6, 1, 76,247, 0, 0, 11,182, 1,111, 24, 16, 0, 10, 37, 1, 43, 53, 0,255,255, 1,190, - 3,193, 3, 12, 5,182, 2, 6, 2, 7, 0, 0, 0, 2, 0, 10,255,236, 4,178, 6, 43, 0, 12, 0, 79, 0, 93, 64, 55, 8, 70, - 67, 67, 26, 0, 59, 71, 77,144, 16,160, 16, 2, 16, 16, 81, 15, 81,175, 81, 2, 51, 70,144, 26, 1, 26, 62, 79, 79, 78, 0, 78, - 34, 78, 41, 0, 41, 16, 41, 2, 78, 41, 78, 41, 56, 5, 78, 72, 1, 56, 78, 21, 22, 0, 63,225, 63,225, 18, 57, 57, 47, 47, 93, - 16,225, 17, 51, 16,225, 50, 1, 47, 93,225, 93, 17, 51, 47, 93, 51,225, 50, 17, 57, 47,225, 49, 48, 1, 46, 3, 35, 34, 6, 21, - 20, 30, 2, 5, 22, 22, 21, 20, 2, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, - 2, 21, 20, 14, 2, 21, 20, 30, 2, 51, 50, 18, 17, 52, 38, 39, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 21, 3,106, 13, - 57, 77, 91, 48, 76, 86, 46,106,171, 1, 60, 2, 2, 64,129,196,131,111,146, 86, 34, 10, 11, 10, 31, 31, 24, 54, 16, 37, 37,100, - 54, 50, 69, 44, 19, 10, 11, 10, 21, 48, 78, 58,164,164, 2, 2,174,242,150, 67, 39, 81,127, 89,104,161,117, 75, 18,143, 3,209, -108,170,116, 61, 88, 72, 56,105, 82, 51,138, 22, 58, 31,159,254,238,201,115, 55, 95,125, 69, 40, 93, 89, 75, 24, 45, 33, 15, 10, -127, 17, 26, 28, 50, 68, 40, 35, 86, 93, 97, 45, 42, 74, 54, 31, 1, 50, 1, 48, 23, 62, 20, 2, 75,120,154, 81, 67,112, 82, 46, - 84,156,223,139,137, 0, 0, 1, 0, 31, 0, 0, 4,184, 5,195, 0, 32, 0,141,185, 0, 32,255,248,179, 20, 24, 72, 32,184,255, -248, 64, 70, 13, 16, 72, 38, 32, 54, 32, 2, 23, 32, 1, 32,175, 31,255, 31, 2, 89, 31, 1, 31, 0, 84, 13, 1, 41, 13, 1, 13, - 27, 90,208, 30, 1,162, 30, 1,147, 30, 1, 3,142, 30, 1, 4, 99, 30, 1, 5, 16, 30, 80, 30, 2, 30, 17, 10, 10, 59, 27, 1, - 59, 30, 1, 39, 0,183, 0, 2, 0,184,255,248, 64, 12, 13, 17, 72, 0, 30, 27, 3, 29, 31, 3, 29, 18, 0, 63, 63, 18, 23, 57, - 43, 93, 93, 93, 51, 17, 51, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,225, 50, 93, 93, 57,205, 93, 93, 50, 93, 93, 43, 43, 49, - 48, 1, 62, 3, 55, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 6, 7, 14, 5, 7, 17, 35, 17, 1, 51, 2,100, 25, 75, 78, 73, - 24, 22, 46, 54, 64, 41, 34, 43, 17, 12, 33, 12, 28, 62, 35, 12, 47, 58, 66, 63, 56, 19,187,254, 25,202, 2,219, 75,168,160,137, - 44, 40, 61, 39, 20, 9, 8,145, 3, 5, 47, 60, 21, 83,110,129,136,134, 60,253,227, 2, 47, 3,135, 0, 0, 2, 0, 18,255,236, - 4,180, 4, 74, 0, 32, 0, 64, 0, 95, 64, 60, 30, 29, 86, 56,102, 56, 2, 71, 56, 1, 56, 73, 55, 55, 5, 33, 73, 16, 21, 32, - 21, 2, 21, 21, 66, 44, 73, 64, 5, 80, 5,144, 5,160, 5,192, 5,208, 5, 6, 47, 5, 1, 5, 55, 55, 49, 39, 16, 10, 80, 13, - 15, 60, 30, 49, 80, 26, 0, 22, 0, 63, 50,225, 50, 50, 63,225, 50, 50, 18, 57, 47, 1, 47, 93, 93,225, 17, 51, 47, 93,225, 17, - 57, 47,225, 93, 93, 57, 57, 49, 48, 5, 34, 46, 2, 53, 52, 62, 2, 55, 35, 53, 55, 33, 21, 35, 30, 3, 21, 20, 14, 2, 35, 34, - 38, 39, 35, 6, 6, 1, 52, 46, 2, 39, 33, 14, 3, 21, 20, 30, 2, 51, 50, 62, 2, 53, 53, 51, 21, 20, 22, 51, 50, 62, 2, 1, -123, 79,110, 69, 31, 10, 22, 35, 25,164,134, 4, 28,155, 24, 35, 23, 10, 31, 69,110, 79, 94,111, 26, 11, 26,111, 1,246, 10, 23, - 35, 24,253,233, 25, 35, 22, 10, 16, 35, 52, 36, 36, 54, 35, 17,157, 79, 63, 36, 52, 35, 16, 20, 68,128,181,114, 67,116,110,114, - 66, 74, 80,154, 66,114,110,116, 67,114,181,128, 68, 87, 91, 91, 87, 1,235, 62,114,112,118, 67, 67,118,112,114, 62, 91,129, 82, - 38, 41, 72, 98, 57,203,203,130,138, 38, 82,129,255,255, 0,113, 0, 0, 4, 92, 7,117, 2, 38, 0, 48, 0, 0, 1, 7, 0,118, - 0,100, 1, 84, 0, 19, 64, 11, 1, 26, 5, 38, 1,100, 20, 23, 6, 12, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 92, 0, 0, - 4,115, 6, 33, 2, 38, 0, 80, 0, 0, 1, 6, 0,118,127, 0, 0, 19, 64, 11, 1, 39, 17, 38, 1,126, 33, 36, 17, 31, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 33,253,213, 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 6, 2, 91, 2, 0, 0, 23, 64, 13, - 3, 2, 30, 20, 39, 3, 2, 1, 25, 15, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,253,213, 4, 2, 4, 94, - 2, 38, 0, 68, 0, 0, 1, 6, 2, 91,251, 0, 0, 23, 64, 13, 3, 2, 49, 23, 39, 3, 2, 28, 44, 34, 8, 22, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255,254,200,255,236, 5, 12, 5,205, 0, 39, 0, 50, 0,145, 0, 0, 1, 7, 2, 92,253,155, 0, 0, - 0, 45, 64, 21, 3, 2, 43, 3, 3, 2, 96, 51, 1, 80, 51, 1, 64, 51, 1, 32, 51, 1, 0, 51, 1,184,255, 24,180, 51, 51, 2, - 2, 37, 1, 43, 93, 93, 93, 93, 93, 53, 53, 0, 63, 53, 53, 0, 0, 2, 1,131,253,213, 3, 72,255,131, 0, 19, 0, 31, 0, 77, - 64, 16, 20, 16, 19, 24, 72, 20,131, 15, 0, 31, 0, 47, 0, 3, 0, 26,184,255,240,182, 19, 24, 72, 26,131, 10, 29,184,255,248, - 64, 25, 21, 24, 72, 29,140, 0, 5, 16, 5, 32, 5,112, 5,192, 5, 5, 5, 23, 8, 21, 24, 72, 23,140, 15, 0, 47,225, 43,220, - 93,225, 43, 1, 47,225, 43,220, 93,225, 43, 49, 48, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 7, 52, 38, - 35, 34, 6, 21, 20, 22, 51, 50, 54, 3, 72, 35, 62, 84, 49, 50, 82, 59, 32, 32, 59, 82, 50, 48, 84, 62, 36,117, 63, 50, 49, 63, - 57, 55, 50, 63,254,174, 51, 81, 56, 29, 29, 56, 79, 51, 51, 79, 56, 29, 29, 55, 79, 52, 53, 60, 60, 53, 53, 60, 60, 0, 0, 2, - 1, 45, 4,104, 3,139, 5,199, 0, 17, 0, 31, 0, 48, 64, 26, 64, 0, 1, 0, 64, 12, 12, 18, 32, 9, 12, 72, 18,128, 24, 23, - 30, 23, 30, 79, 3, 95, 3, 2, 3, 15, 0, 47,204, 93, 57, 57, 47, 47, 1, 47, 26,205, 43, 50, 47, 26,205, 93, 49, 48, 1, 52, - 54, 55, 21, 6, 6, 21, 20, 30, 2, 21, 20, 6, 35, 34, 38, 5, 62, 3, 55, 51, 21, 14, 3, 7, 35, 1, 45,120,122, 60, 57, 31, - 36, 31, 50, 46, 59, 68, 1, 53, 11, 25, 24, 22, 8,207, 18, 48, 56, 62, 31, 82, 4,231, 78,115, 31, 76, 22, 46, 24, 19, 18, 16, - 26, 28, 37, 39, 70, 37, 30, 75, 79, 81, 36, 20, 32, 77, 80, 81, 37, 0, 0, 2, 0, 66, 0, 0, 4, 41, 6, 31, 0, 39, 0, 52, - 0, 99, 64, 55, 22, 41, 28, 28, 39, 39, 2, 41, 6, 38, 3, 3, 6, 6, 10,223, 2, 1, 2, 2, 54, 40, 7, 7, 13, 0, 10, 16, - 10, 80, 10,160, 10,176, 10, 5, 10, 10, 7, 3, 82, 40, 13, 38, 15, 47, 32, 78, 19, 25, 1, 9, 5, 1, 21, 0, 63, 51, 51, 63, - 51,225, 50, 63, 51, 51,225, 50, 50, 1, 47, 93, 51, 51, 17, 51, 17, 51, 47, 93, 18, 57, 47, 51, 17, 51, 17, 51, 17, 51, 17, 51, - 17, 18, 57, 49, 48, 33, 35, 17, 35, 17, 35, 17, 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 22, - 23, 7, 38, 38, 35, 34, 14, 2, 21, 21, 33, 33, 51, 53, 52, 55, 38, 38, 35, 34, 14, 2, 21, 4, 41,164,203,163,205,164,100,100, - 40, 77,112, 72, 49, 87, 34, 38,102, 63, 52, 91, 37, 41, 29, 69, 37, 38, 55, 36, 17, 1,111,253, 33,205, 24, 20, 45, 23, 35, 53, - 35, 18, 3,203,252, 53, 3,203,252, 53, 3,203, 65, 62, 82,106,141, 84, 35, 22, 13, 29, 27, 23, 14,131, 11, 17, 22, 52, 87, 64, -104,102,115, 78, 6, 8, 22, 52, 87, 64, 0, 2, 0, 66, 0, 0, 4, 41, 6, 31, 0, 39, 0, 52, 0, 97, 64, 54, 44, 20, 41, 26, - 26, 29, 41, 4, 38, 1, 1, 4, 4, 8,223, 29, 1, 29, 29, 54, 40, 5, 5, 11, 0, 8, 16, 8, 80, 8,160, 8,176, 8, 5, 8, - 8, 5, 1, 82, 40, 11, 38, 15, 7, 3, 28, 21, 47, 32, 78, 17, 23, 1, 0, 63, 51,225, 50, 63, 51, 51, 63, 51, 51,225, 50, 50, - 1, 47, 93, 51, 51, 17, 51, 17, 51, 47, 93, 18, 57, 47, 51, 17, 51, 17, 51, 17, 51, 17, 18, 57, 57, 49, 48, 1, 35, 17, 35, 17, - 35, 17, 35, 17, 35, 53, 55, 53, 52, 62, 2, 51, 50, 22, 23, 54, 54, 51, 50, 23, 51, 17, 35, 17, 38, 38, 35, 34, 14, 2, 21, 21, - 51, 33, 51, 53, 52, 55, 38, 38, 35, 34, 14, 2, 21, 3, 72,142,163,205,164,100,100, 40, 77,112, 72, 49, 87, 34, 38,102, 63, 48, - 46,131,164, 14, 29, 14, 38, 55, 36, 17,142,254, 2,205, 24, 20, 45, 23, 35, 53, 35, 18, 3,203,252, 53, 3,203,252, 53, 3,203, - 65, 62, 82,106,141, 84, 35, 22, 13, 29, 27, 11,249,236, 5,141, 3, 3, 22, 52, 87, 64,104,102,115, 78, 6, 8, 22, 52, 87, 64, - 0, 2, 0, 84,255,236, 4,246, 6, 20, 0, 32, 0, 52, 0, 51, 64, 28, 23, 91, 25, 43, 91, 30, 18, 0, 54, 33, 91, 31, 10, 47, - 10, 2, 10, 30, 48, 95, 23, 18, 15, 4, 38, 95, 5, 19, 0, 63,225, 63, 51,206,225, 50, 1, 47, 93,225, 16,222, 50, 50,225,214, -225, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 62, 3, 55, 51, 23, 14, 3, 7, 22, 22, - 5, 20, 30, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 14, 2, 4,123, 64,132,200,135,142,201,129, 60, 60,129,203,142,124,187, - 66, 18, 23, 13, 6, 2,198, 15, 11, 33, 49, 68, 46, 42, 42,252,158, 36, 79,128, 92, 93,128, 78, 35, 35, 78,127, 92, 93,128, 80, - 36, 2,221,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107, 90, 86, 19, 52, 63, 73, 40, 22, 52, 99, 87, 74, 28, 91, -233,137,137,219,153, 81, 81,153,219,137,138,218,151, 81, 81,151,218, 0, 0, 2, 0,115,255,236, 4,246, 4,242, 0, 32, 0, 43, - 0, 53, 64, 28, 18, 30, 30, 0, 23, 74, 25, 38, 72, 0, 45, 33, 72, 0, 10, 1, 10, 30, 41, 80, 23, 18, 15, 16, 36, 80, 5, 22, - 0, 63,225, 63, 51,198,225, 50, 1, 47, 93,225, 16,222,225,220,225, 17, 51, 17, 51, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, - 52, 62, 2, 51, 50, 22, 23, 62, 3, 53, 51, 23, 14, 3, 7, 22, 22, 5, 20, 22, 51, 32, 17, 52, 38, 35, 34, 6, 4, 88, 74,133, -184,111,103,180,134, 78, 73,132,185,111, 97,171, 66, 38, 43, 21, 5,198, 15, 15, 42, 57, 75, 49, 38, 42,252,215,157,154, 1, 54, -157,155,154,155, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 66, 65, 16, 56, 72, 87, 48, 23, 69,114, 91, 67, 21, 66, -165, 99,211,209, 1,164,210,206,206, 0, 0, 1, 0,125,255,236, 5, 23, 6, 20, 0, 38, 0, 54, 64, 30, 6, 91, 96, 8,112, 8, - 2, 8, 37, 90, 1, 14, 40, 27, 90, 0, 24, 1, 24, 13, 1, 1, 38, 6, 25, 3, 32, 95, 19, 19, 0, 63,225, 63,206, 51, 51, 47, - 51, 1, 47, 93,225, 16,222, 50,225,220, 93,225, 49, 48, 1, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 20, 14, 2, 35, 34, 46, 2, - 53, 17, 51, 17, 20, 30, 2, 51, 50, 62, 2, 53, 17, 3,182, 47, 55, 29, 9,198, 15, 15, 48, 82,121, 87, 45, 99,159,115,108,154, - 99, 46,186, 24, 54, 89, 65, 67, 86, 49, 19, 5,182,194, 8, 52, 77, 97, 54, 22, 69,127,105, 75, 17,253,102,114,183,129, 69, 65, -126,186,122, 3,215,252, 51, 87,130, 86, 43, 48, 90,129, 82, 3,202, 0, 0, 1, 0,160,255,236, 5, 23, 4,242, 0, 39, 0, 87, -183, 31, 74, 0, 33, 16, 33, 2, 33,184,255,192,179, 20, 23, 72, 33,184,255,192, 64, 35, 14, 17, 72, 33, 1, 0, 23, 71, 26, 38, - 41, 14, 71, 0, 13,176, 13, 2, 13, 38, 26, 26, 13, 31, 31, 24, 13, 15, 2, 18, 80, 7, 22, 0, 21, 0, 63, 63,225, 50, 63, 51, - 51, 47, 17, 51, 47, 51, 1, 47, 93,225, 16,222, 50,225, 50, 50,221, 43, 43, 93,225, 48, 49, 33, 39, 35, 14, 3, 35, 34, 46, 2, - 53, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 51, 21, 62, 3, 53, 51, 23, 14, 3, 7, 17, 3, 18, 26, 8, 22, 60, 72, 80, 41, - 79,119, 79, 40,182, 84, 90, 66, 90, 56, 24,182, 52, 62, 32, 10,198, 15, 15, 50, 85,127, 92,147, 43, 63, 41, 20, 46, 98,152,105, - 2,205,253, 61,130,130, 52,101,148, 96, 2, 58,123, 6, 50, 78,101, 56, 23, 70,136,110, 72, 7,252,176,255,255, 1,162, 4,217, - 3, 43, 6, 33, 2, 6, 0, 67, 0, 0,255,255, 1,162, 4,217, 3, 43, 6, 33, 2, 6, 0,118, 0, 0,255,255, 0,254, 4,217, - 3,205, 5,227, 2, 6, 1, 82, 0, 0, 0, 1, 1,172, 4,184, 3, 33, 6,143, 0, 27, 0, 46, 64, 23, 7, 5, 8, 8, 21, 13, -132, 0, 0, 21, 5, 8, 8, 6, 18,141, 15, 25, 31, 25, 2, 25, 6, 0, 47,220, 93,225, 18, 57, 47, 51, 1, 47, 51, 47,225, 17, - 57, 47, 51, 51, 48, 49, 1, 20, 14, 2, 7, 7, 35, 39, 62, 3, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 54, 51, 50, 22, 3, 33, - 27, 45, 60, 34, 10,113, 14, 37, 59, 42, 23, 20, 36, 50, 29, 28, 52, 16, 16, 50, 41,133,133, 5,211, 39, 58, 41, 26, 8,111,176, - 6, 16, 24, 33, 24, 24, 32, 19, 7, 3, 3,108, 3, 5, 91, 0, 0, 1, 1,252,254,152, 2,209,255,125, 0, 13, 0, 15,181, 6, -135, 0, 11,145, 3, 0, 47,237, 1, 47,237, 48, 49, 5, 52, 54, 51, 50, 22, 21, 20, 14, 2, 35, 34, 38, 1,252, 61, 45, 44, 63, - 17, 29, 39, 22, 45, 61,246, 60, 55, 55, 60, 29, 43, 28, 14, 55,255,255, 0,217, 0, 0, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, - 1, 7, 0, 67,255,183, 1, 82, 0, 21,180, 1, 12, 5, 38, 1,184,255,160,180, 15, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,137, 0, 0, 4, 70, 7,115, 2, 38, 1,178, 0, 0, 1, 7, 0, 67,255,181, 1, 82, 0, 21,180, 1, 17, 5, 38, 1, -184,255,180,180, 20, 17, 0, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 33, 2, 38, 0, 72, 0, 0, - 1, 6, 0, 67,212, 0, 0, 21,180, 2, 23, 17, 38, 2,184,255,212,180, 26, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0,160, 0, 0, 4, 45, 6, 33, 2, 38, 1,210, 0, 0, 1, 6, 0, 67,179, 0, 0, 21,180, 1, 12, 17, 38, 1,184,255,179,180, - 15, 12, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0, 82,255,236, 4,123, 5,201, 0, 60, 0,117, 64, 31, 12, 15, 13,191, - 13, 2, 13, 64, 12, 17, 72, 13, 13, 19, 29, 0,251, 58, 58, 39, 7,251, 19, 62, 46, 0, 45,176, 45, 2, 45,184,255,192, 64, 34, - 12, 17, 72, 45, 45, 51,251, 47, 39, 1, 39, 59, 59, 56, 42, 12, 46, 46, 10, 48, 95, 16, 42, 4, 0, 58, 58, 29, 2, 56, 95, 24, - 34, 19, 0, 63, 51,225, 50, 50, 50, 17, 51, 63, 51,241, 50,194, 47, 50, 17, 18, 57, 47, 1, 47, 93,225, 50, 47, 43, 93, 51, 16, -222,225, 17, 57, 47,225, 57, 17, 51, 47, 43, 93, 51, 49, 48, 37, 22, 51, 50, 62, 2, 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, - 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, - 30, 2, 51, 50, 55, 17, 51, 2,188, 39, 56, 48, 67, 42, 19, 78, 66, 55, 41, 47, 34, 88, 48,146,147, 34, 78,128, 94, 33, 54, 46, - 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, 66, 77, 19, 43, 68, 48, 57, 37,170,186, 43, 89,164, -229,141, 1, 19, 1, 20, 29,152, 23, 18,254,153,254,154,192,254,219,198,101, 13, 24, 37, 24, 24, 37, 24, 13,101,198, 1, 37,192, - 1,102, 1,103, 18, 23,152, 29,254,236,254,237,141,229,164, 89, 43, 1,220, 0, 0, 1,255,252, 0, 0, 4,137, 4, 74, 0, 42, - 0,122, 64, 46, 7, 13, 1, 13, 38, 14, 33, 21,253, 34, 1,187, 34, 1, 34, 34, 27, 15, 73, 95, 14, 1, 14, 14, 1, 27, 73, 12, - 28, 1, 28, 44, 42, 6, 0, 0, 1,166, 0,182, 0, 2,148, 0, 1, 0,184,255,192, 64, 23, 11, 15, 72, 0, 0, 2, 73, 1, 38, - 13, 13, 0, 27, 14, 1, 15, 21, 34, 34, 7, 79, 0, 21, 0, 63,225, 51, 17, 51, 63, 51, 51, 18, 57, 17, 51, 1, 47,225, 51, 47, - 43, 93, 93,113, 51, 51, 16,222, 93,225, 17, 57, 47, 93,225, 17, 51, 47, 93, 93, 51, 51, 18, 57, 57, 93, 49, 48, 33, 1, 51, 19, - 22, 22, 23, 51, 62, 3, 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 39, 6, 6, - 7, 3, 1, 27,254,225,160,163, 20, 34, 8, 4, 5, 15, 18, 20, 10, 86,109,150,137, 8, 22, 23, 22, 7, 6, 63, 79, 45, 16,153, - 26, 66,113, 88,163, 84, 7, 11, 3, 5, 16, 8,106, 4, 74,253, 92, 85,157, 51, 18, 56, 65, 67, 30, 1, 16, 1,205,253,176, 33, - 96,103, 96, 33,104,210,230, 1, 2,151,163,254,224,254,245,253,127, 1, 84, 26, 56, 20, 20, 62, 22,254,174, 0, 0, 2, 0, 20, - 0, 0, 4,117, 6, 20, 0, 22, 0, 33, 0, 65, 64, 33, 19, 0, 23, 90, 16, 12, 12, 14, 27, 91, 21, 6, 35, 14, 33, 95, 0, 22, - 14, 95, 15, 19, 15, 0, 15, 0, 15, 17, 0, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 17, 51, 16,225, 50, 16,225, 1, 47, - 16,222,204,225, 17, 57, 47, 51,225, 50, 50, 48, 49, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, 17, 33, 53, 33, 17, 51, 17, 33, - 21, 33, 17, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1,250, 94,152,207,127, 55, 60,126,194,134,254,204,254,213, 1, 43,187, 1,137, -254,119,104,175,163, 46, 91,138, 93, 74, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164, 1, 16,254,240,164,252, 64,132,136, - 70, 97, 60, 27, 0, 2, 0, 20, 0, 0, 4, 88, 5, 39, 0, 20, 0, 33, 0, 67, 64, 34, 0, 0, 28, 19, 2, 22, 71, 16, 12, 12, - 14, 28, 70, 6, 35, 14, 1, 13, 80, 16, 21, 80, 2, 2, 19, 16, 17, 17, 16, 15, 22, 80, 12, 21, 0, 63,225, 63, 51, 47, 17, 51, - 57, 47,225, 16,225, 50, 1, 47, 16,222,225, 17, 57, 47, 51,225, 50, 50, 17, 57, 47, 48, 49, 1, 33, 17, 33, 50, 22, 21, 20, 14, - 2, 35, 33, 17, 35, 53, 51, 53, 51, 21, 33, 1, 17, 51, 50, 62, 2, 53, 52, 46, 2, 35, 2,227,254,213, 1, 0,212,204, 47,101, -159,113,254, 78,238,238,182, 1, 43,254,213,240, 55, 93, 68, 38, 33, 65, 96, 64, 3,176,254,215,156,155, 77,124, 88, 47, 3,176, -154,221,221,253,164,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 0, 1, 0, 98,255,236, 4,182, 5,203, 0, 45, 0, 86, 64, 48, - 5, 8, 34, 27, 64, 9, 12, 72, 15, 7, 1, 27, 7, 17, 17, 7, 27, 3, 30, 42, 47, 33, 29,251, 30, 8, 28, 95, 5, 33, 33, 13, - 43, 0, 95, 42, 39, 4, 31, 3, 30, 18, 16, 13, 95, 17, 22, 19, 0, 63, 51,225, 50, 63, 63, 63, 51,225, 50, 18, 57, 47, 51,225, - 50, 1, 47,225, 50, 16,206, 17, 23, 57, 47, 47, 47, 93, 43, 51,201, 50, 48, 49, 1, 34, 14, 2, 7, 33, 21, 33, 30, 3, 51, 50, - 54, 55, 21, 14, 3, 35, 34, 38, 38, 2, 39, 35, 17, 35, 17, 51, 17, 51, 62, 3, 51, 50, 22, 23, 7, 38, 38, 3,145, 68,114, 85, - 55, 9, 1,211,254, 41, 3, 45, 85,125, 82, 66,116, 57, 30, 59, 64, 73, 44,120,178,120, 62, 4,139,166,166,144, 11, 76,128,178, -112, 84,149, 60, 73, 45,106, 5, 39, 64,122,176,111,162,130,201,138, 72, 35, 23,162, 15, 23, 14, 7,100,184, 1, 3,159,253, 86, - 5,182,253,152,143,235,167, 92, 44, 42,156, 32, 46, 0, 0, 1, 0,160,255,236, 4,123, 4, 94, 0, 45, 0, 85, 64, 47, 31, 34, - 73, 12, 15, 5, 31, 5, 2, 5, 33, 5, 33, 8, 43, 22, 47, 11, 7, 73, 0, 8, 1, 8, 23, 28, 81, 17, 34, 6, 80, 31, 11, 11, - 22, 17, 16, 9, 15, 8, 21, 42, 39, 81, 43, 0, 22, 0, 63, 50,225, 50, 63, 63, 63, 51, 57, 47, 51,237, 50, 16,225, 50, 1, 47, - 93,225, 50, 16,206, 50, 17, 57, 57, 47, 47, 93, 51,225, 50, 48, 49, 5, 34, 46, 2, 39, 35, 17, 35, 17, 51, 17, 51, 62, 3, 51, - 50, 30, 2, 23, 7, 46, 3, 35, 34, 6, 7, 33, 21, 33, 30, 3, 51, 50, 54, 55, 21, 6, 6, 3,127, 85,149,114, 70, 6,149,162, -162,151, 11, 75,114,147, 83, 34, 68, 64, 57, 21, 47, 21, 50, 52, 51, 23,123,129, 12, 1,162,254, 92, 4, 36, 64, 93, 61, 72,115, - 48, 47,110, 20, 58,123,193,135,254, 23, 4, 74,254, 57,128,181,114, 52, 9, 16, 22, 12,154, 10, 19, 15, 9,151,166,154, 92,132, - 84, 40, 37, 25,162, 29, 30, 0, 0, 2, 0, 0, 0, 0, 4,205, 5,182, 0, 11, 0, 20, 0,169, 64, 32, 16, 15, 14, 13, 8, 7, - 17, 7, 14, 15, 16, 3, 17, 7, 8, 7, 24, 7, 2, 7, 6, 7, 5, 1,199, 5,215, 5,231, 5, 3, 5,184,255,248, 64, 64, 10, - 16, 72, 5, 17, 18, 19, 20, 1, 2, 17, 2, 20, 19, 18, 3, 2, 8, 4, 1,200, 4,216, 4,232, 4, 3, 4, 8, 10, 16, 72, 4, - 17, 17, 21, 6, 10,251, 21, 11, 1, 11, 11, 3, 6, 2, 3, 9, 8, 1, 96, 13, 12, 12, 2, 17, 95, 4, 3, 11, 7, 2, 18, 0, - 63, 51, 51, 63,225, 18, 57, 47, 51,225, 50, 50, 1, 47, 51, 47, 18, 57, 47, 93,225, 17, 18, 57, 17, 51, 43, 93,113, 18, 0, 23, - 57, 16,125,135, 5,196,196,196,196, 17, 1, 51, 43, 93,113, 17, 51, 93, 17, 18, 0, 23, 57, 16,135, 5,196,196,196,196,196, 49, - 48, 1, 35, 3, 35, 1, 51, 1, 35, 3, 35, 17, 35, 3, 33, 39, 38, 38, 39, 6, 6, 7, 2, 16,112,238,178, 2, 8,187, 2, 10, -182,238,115,166, 55, 1, 29, 39, 37, 51, 19, 18, 60, 28, 2,170,253, 86, 5,182,250, 74, 2,170,253, 86, 3, 68,110,105,170, 75, - 75,183, 92, 0, 0, 2, 0, 61, 0, 0, 4,141, 4, 74, 0, 11, 0, 23, 0,210, 64,108, 18, 19, 20, 21, 22, 8, 9, 17, 21, 20, - 19, 18, 4, 17, 71, 9, 1, 9, 71, 10, 5, 73, 6,168, 11,184, 11, 2,138, 11,154, 11, 2, 11, 8, 12, 16, 72, 11, 23, 12, 13, - 14, 15, 17, 2, 17, 15, 14, 13, 12, 4, 2,198, 0, 1,179, 0, 1,165, 0, 1,134, 0,150, 0, 2,117, 0, 1, 70, 0, 86, 0, -102, 0, 3, 55, 0, 1, 0, 17, 17,134, 6,150, 6, 2, 21, 6, 37, 6, 2, 6, 6, 1, 10, 72, 2, 1, 2, 1, 4, 3, 8, 80, - 23, 22,184,255,192, 64, 20, 9, 12, 72, 22, 22, 1, 11, 16, 17, 82, 11, 15, 9, 21, 2, 21, 10, 6, 1, 21, 0, 63, 51, 51, 63, - 63, 63,241,196, 17, 18, 57, 47, 43, 51,225, 50, 50, 1, 47,193, 93, 47, 18, 57, 47, 93, 93, 57, 17, 51, 93, 93, 93, 93, 93, 93, - 93, 18, 0, 23, 57, 16,125,135, 5,196,196,196,196,196, 1, 51, 43, 93, 93, 16,225, 16,241, 93, 17, 0, 23, 57,135, 5,196,196, -196,196,196,196, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 1, 18, 46, 2, 39, 35, 14, 3, 7, 51, 2,217, 1,180,188, -184, 99,162,104,184,183, 1,181,225, 35, 35, 29, 8, 12, 8, 30, 34, 34, 13,252, 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, - 4, 74,254, 92, 90, 93, 86, 30, 29, 87, 93, 91, 34, 0, 0, 2, 0, 98, 0, 0, 4,252, 5,182, 0, 19, 0, 28, 1, 4, 64,138, -198, 13, 1,183, 13, 1,166, 13, 1,119, 13, 1, 13, 25,136, 21, 1, 89, 21,105, 21, 2, 24, 23, 22, 21, 16, 15, 25, 15, 22, 23, - 24, 3, 25, 15, 86, 20,102, 20,134, 20, 3, 26, 27, 28, 20, 1, 2, 25, 2, 28, 27, 26, 3, 2,216, 12, 1,201, 12, 1,120, 12, -168, 12,184, 12, 3, 12, 25, 25, 14, 3, 6, 18, 1, 18,251, 19, 1,204, 19, 1,181, 19, 1,166, 19, 1, 90, 19,106, 19,138, 19, - 3, 5, 19, 1, 19, 19, 7, 15, 0, 14, 1, 14, 23, 2, 1, 2, 50, 3, 1, 41, 3, 1, 24, 3, 1, 3, 3, 10, 6,251, 7, 17, - 16, 1, 96, 20, 21, 20, 80, 20, 1, 20,184,255,192, 64, 20, 9, 12, 72, 20, 4, 5, 96, 11, 10, 10, 2, 25, 12, 8, 3, 19, 15, - 7, 2, 18, 0, 63, 51, 51, 51, 63, 51,192, 18, 57, 47, 51,225, 50, 51, 43, 93, 17, 51, 16,237, 50, 50, 1, 47,225, 50, 50, 47, - 93, 93, 93,193, 93, 47, 93,193, 18, 57, 47, 93, 93, 93, 93, 93, 93,193, 93, 17, 18, 57, 17, 51, 93, 93, 93, 18, 0, 23, 57, 16, -125,135, 5,196,196,196,196,196, 1, 93, 17, 18, 0, 23, 57, 16,135, 5,196,196,196,196,196, 1, 93, 93, 17, 51, 93, 93, 93, 93, - 48, 49, 1, 35, 3, 35, 19, 33, 17, 35, 17, 51, 17, 33, 19, 51, 1, 35, 3, 35, 17, 35, 3, 51, 39, 38, 38, 39, 6, 6, 7, 2, -215, 47,168,168,176,255, 0,166,166, 1, 39,162,174, 1,125,168,172, 45,164, 8,182, 18, 22, 40, 12, 12, 38, 20, 2,170,253, 86, - 2,170,253, 86, 5,182,253,148, 2,108,250, 74, 2,170,253, 86, 3, 74, 84, 97,153, 75, 75,153, 91, 0, 0, 2, 0,123, 0, 0, - 5, 10, 4, 74, 0, 19, 0, 31, 0,200, 64,122, 17, 13, 73, 14,102, 5, 1, 84, 5, 1, 5, 73, 4, 6, 20, 6, 52, 6, 68, 6, - 4,244, 6, 1,203, 6, 1,188, 6, 1,165, 6, 1,106, 6, 1, 89, 6, 1, 69, 6, 1, 51, 6, 1, 27, 6, 1, 6, 6, 1, 0, - 14, 16, 14, 2, 14, 18, 11, 10, 19, 10, 19, 8, 24, 30, 9, 3, 25, 30, 2, 0,100, 30, 1, 30, 30, 2, 9,192, 10, 1, 15, 10, - 1, 0, 10, 1, 10, 2, 0, 1, 80, 1, 2, 1, 30, 4, 3, 8, 80, 24, 25, 24, 24, 11, 12, 80, 18, 17, 17, 1, 19, 15, 15, 9, - 2, 14, 10, 6, 1, 21, 0, 63, 51, 51, 51, 47, 47, 63, 51, 18, 57, 47, 51,225, 50, 51, 17, 51, 16,225, 50, 50, 47, 1, 47, 93, -193, 47, 93,113,113,193, 17, 57, 25, 47, 93, 51,135,192,192,135,192,192, 1, 51, 16,125,135,196,196, 1, 24, 47, 93, 18, 57, 47, - 93, 93, 93, 93, 93, 93, 93, 93, 93,113,225, 93, 93, 16,225, 50, 49, 48, 1, 1, 35, 3, 35, 17, 35, 17, 35, 3, 35, 19, 35, 17, - 35, 17, 51, 17, 33, 19, 22, 14, 2, 7, 51, 46, 3, 39, 35, 3,158, 1,108,168,155, 58,161, 58,158,165,163,245,162,162, 1, 39, -151, 92, 21, 26, 27, 12,183, 12, 28, 26, 21, 4, 2, 4, 74,251,182, 1,233,254, 23, 1,233,254, 23, 1,233,254, 23, 4, 74,254, - 57, 1,199,144, 86, 96, 94, 35, 35, 94, 96, 86, 25, 0, 0, 2, 0, 0, 0, 0, 4,205, 5,182, 0, 35, 0, 38, 0, 83, 64, 44, - 36, 11, 26,251, 6, 74, 27, 90, 27, 2, 22, 27, 1, 27, 27, 40, 0, 37, 10, 10, 18, 40, 38, 7, 7, 35, 39, 0, 25, 29, 97, 36, - 11, 6, 6, 0, 38, 95, 8, 3, 27, 18, 0, 18, 0, 63, 50, 50, 63,225, 18, 57, 47, 51, 51,225, 50, 1, 47, 17, 51, 51, 47, 51, - 17, 51, 51, 47, 51, 17, 18, 57, 47, 93, 93, 51,225, 50, 57, 48, 49, 49, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, - 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, 1, 33,113, 21, 49, 76,114, 86,254,178, 3,213,254,178, 89,113, 74, - 47, 21,113,170,113, 18, 34, 49, 70, 54, 23,168, 22, 54, 70, 49, 34, 18,113, 1,192, 1, 37,253,181, 1,197, 85,136, 98, 58, 6, - 1,231,139,139,254, 25, 6, 56, 98,137, 86,254, 59, 1,193, 72, 95, 57, 23,253, 72, 2,184, 23, 57, 95, 72,254, 63, 3, 96, 1, -178, 0, 0, 2, 0, 10, 0, 0, 4,195, 4, 74, 0, 35, 0, 38, 0,117, 64, 68, 36,102, 11, 1, 11, 26, 73, 6,183, 27, 1,165, - 27, 1,148, 27, 1,139, 27, 1,122, 27, 1, 89, 27, 1, 75, 27, 1, 27, 27, 39, 17, 38, 0, 7, 1, 7, 7, 35, 39, 37, 15, 10, - 1, 10, 10, 17, 10, 7, 7, 8, 25, 28, 82, 36, 11, 6, 6, 0, 38, 80, 8, 15, 27, 18, 0, 21, 0, 63, 50, 50, 63,225, 18, 57, - 47, 51, 51,225, 50, 17, 51, 17, 51, 1, 47, 51, 47, 93, 51, 17, 51, 51, 47, 93, 51, 17, 18, 57, 47, 93, 93, 93, 93, 93, 93, 93, - 51,225, 50, 93, 57, 48, 49, 51, 19, 62, 3, 55, 1, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, - 14, 2, 7, 3, 1, 19, 33, 10,119, 21, 42, 66,100, 80,254,215, 3,181,254,210, 80,100, 66, 44, 22,119,181,118, 20, 36, 47, 66, - 51, 4,164, 4, 51, 66, 48, 36, 20,119, 1,168,246,254, 25, 1, 84, 61,101, 77, 49, 9, 1,100,105,105,254,156, 8, 49, 76,102, - 62,254,172, 1, 80, 54, 72, 43, 17,253,246, 2, 10, 17, 43, 72, 54,254,176, 2,131, 1, 45, 0, 0, 2, 0, 92, 0, 0, 4,233, - 5,182, 0, 40, 0, 43, 0,115, 64, 64, 41, 16, 31,251, 11, 5, 32, 1, 32, 32, 0, 23,251, 22, 42, 91, 15, 15, 0, 22, 1, 22, - 43, 90, 12, 12, 40,251, 4, 47, 0, 1, 0, 0, 6,251, 32, 7, 48, 7, 2, 7, 15, 12, 12, 13, 13, 8, 34, 30, 5, 96, 41, 10, - 10, 0, 43, 8, 3, 32, 23, 7, 0, 18, 0, 63, 50, 50, 50, 63,192, 18, 57, 47,196,237, 50, 50, 17, 51, 17, 51, 17, 51, 1, 47, - 93,225, 50, 47, 93, 51,225, 51, 47,225, 47, 93, 51, 47,225, 16,225, 17, 57, 47, 93, 51,225, 50, 57, 49, 48, 33, 19, 54, 54, 55, - 35, 17, 35, 17, 51, 17, 33, 3, 53, 33, 21, 1, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, 2, 7, 3, 1, - 19, 33, 1, 96, 56, 9, 19, 23,201,166,166, 1,127,246, 3, 58,254,254, 65, 83, 52, 29, 10, 55,170, 55, 9, 16, 28, 46, 38, 8, -164, 8, 39, 45, 28, 16, 9, 56, 1, 27,223,254, 66, 1,197, 81,108, 40,253, 86, 5,182,253,148, 1,225,139,139,254, 25, 6, 56, - 97,137, 87,254, 59, 1,193, 73, 95, 56, 23,253, 72, 2,184, 23, 56, 95, 73,254, 63, 3, 90, 1,184, 0, 0, 2, 0,123, 0, 0, - 5, 10, 4, 74, 0, 40, 0, 43, 0,149, 64, 91, 41, 16, 31, 73, 26, 11, 1, 9, 11, 1, 11, 5, 32, 1,245, 32, 1,196, 32, 1, -182, 32, 1,117, 32, 1,104, 32, 1, 6, 32, 1, 32, 32, 22, 0, 42, 72, 15, 15, 23, 73, 0, 22, 1, 22, 43, 72, 96, 12, 1, 12, - 12, 40, 73, 42, 4, 1, 4,175, 0, 1, 0, 0, 10, 6, 73, 0, 7, 16, 7, 2, 7, 30, 34, 34, 5, 80, 41, 10, 10, 0, 43, 13, - 8, 15, 32, 23, 7, 0, 21, 0, 63, 50, 50, 50, 63, 51,192, 18, 57, 47, 51,241,192, 47, 50, 1, 47, 93,225, 50, 50, 47, 93, 51, - 93,225, 51, 47, 93,225, 47, 93,225, 51, 47,225, 17, 18, 57, 47, 93, 93, 93, 93, 93, 93,113, 51, 93, 93,225, 50, 57, 49, 48, 33, - 19, 54, 54, 55, 35, 17, 35, 17, 51, 17, 33, 3, 53, 33, 21, 3, 30, 3, 23, 19, 35, 3, 46, 3, 35, 35, 17, 35, 17, 35, 34, 14, - 2, 7, 3, 1, 19, 33, 1,115, 73, 11, 26, 17,213,162,162, 1,129,230, 3, 11,238, 61, 78, 51, 32, 14, 73,164, 73, 12, 19, 28, - 41, 33, 9,161, 9, 33, 41, 27, 20, 12, 76, 1, 41,193,254,125, 1, 84, 50, 67, 32,254, 23, 4, 74,254, 57, 1, 94,105,105,254, -158, 8, 49, 77,103, 62,254,172, 1, 80, 53, 71, 44, 18,253,246, 2, 10, 18, 44, 71, 53,254,176, 2,131, 1, 45, 0, 1, 0,117, -254, 70, 4, 39, 6,213, 0,118, 0,131, 64, 68, 98, 71, 81, 81, 77, 89, 89,108, 57, 91,103,103, 44, 91,114, 18, 18,114,120, 78, - 0, 77, 1, 77, 77, 67, 68, 68, 34, 50, 50, 5, 90, 34, 90, 93, 64, 86, 86, 78,128, 67, 62, 97, 98,108, 50, 97, 51, 51, 81, 71, - 68, 98, 4, 39, 96, 0, 18, 15, 10, 95, 24, 19, 29, 29, 0, 19, 0, 63, 50, 47, 51, 51,225, 50, 50, 16,225, 63, 51, 51, 51, 57, - 47,225, 57, 16,225, 50, 26,204, 50, 47, 26,205, 50, 1, 47,225, 51, 47, 17, 51, 47, 51, 51, 47, 93, 51, 16,206, 50, 47, 16,225, - 51, 47,225, 50, 51, 47, 18, 57, 17, 51, 51, 48, 49, 5, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, - 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, - 34, 14, 2, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, 23, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 30, 3, - 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, 2, 2, 29, 71, 91, 52, 20, 14, 36, 61, 47, 65, 97, 84, 81, 50, 86, 94, 25, 8, 32, - 53, 78, 53, 49, 71, 74, 92, 70,104,135, 80, 31, 49,102,157,107, 89,128, 81, 38, 56,104,144, 89,190,176, 92,142, 97, 50, 38, 68, - 95, 57, 55, 97, 86, 79, 38, 92, 59,167,102, 24, 55, 54, 50, 20,121, 51, 98, 54, 26, 58, 67, 75, 42, 31, 47, 14, 11, 33, 17, 22, - 49, 48, 46, 20, 83,125, 85, 43, 51, 91,125, 75, 88,137, 95, 49, 66,132,195, 20, 18, 32, 41, 24, 22, 36, 26, 14, 4, 4, 4, 24, - 15,182, 7, 18, 16, 12, 3, 3, 2, 41, 72, 96, 55, 60, 98, 70, 38, 38, 72,106, 67, 71,101, 63, 29,151, 39, 72,101, 61, 54, 83, - 58, 30, 18, 31, 45, 27,125, 48, 75, 17, 30, 66, 63, 57, 23, 27, 34, 97, 56, 36, 70, 56, 35, 9, 5,119, 5, 7, 23, 41, 56, 33, - 13, 63, 92,118, 69, 73,120, 88, 57, 12, 6, 11, 57, 89,119, 72, 96,160,116, 64, 0, 1, 0,143,254,115, 4, 8, 5, 82, 0,110, - 0,166, 64, 96, 20, 75, 70, 26,136, 96, 1,105, 96,121, 96, 2, 58, 96, 1, 41, 96, 1, 96,197, 10, 1,103, 10,119, 10, 2, 69, - 10, 85, 10, 2, 39, 10, 1, 10,106,106, 93, 86, 70, 15, 4, 4, 15, 15, 49, 49, 26,112, 64,103,102,102, 92, 93, 93, 65, 79, 79, - 36, 73, 65, 7, 82, 0, 0,103,128, 92, 89, 78, 96, 21, 79, 80, 80, 80,106, 93, 10, 96, 16, 70, 78, 31, 49, 46, 41, 80, 55, 50, - 60, 60, 31, 22, 0, 63, 51, 47, 51, 51,225, 50, 50, 16,225, 63, 51, 51, 51, 57, 47,225, 57, 16,225, 50, 26,205, 50, 47,225, 1, - 47,225, 51, 47, 17, 51, 47, 51, 51, 47, 51, 26, 16,206, 50, 47, 50, 47, 51, 47, 16,225, 18, 57, 17, 51, 93, 93, 93, 93, 51, 93, - 93, 93, 93, 16,225, 50, 48, 49, 1, 50, 22, 23, 21, 38, 38, 35, 34, 6, 7, 30, 3, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 14, - 2, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 51, 50, 22, 23, 21, 46, 3, 35, 34, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, - 51, 50, 62, 2, 53, 52, 38, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 55, 46, 3, 39, 53, 51, 22, 22, - 23, 62, 3, 3,125, 22, 31, 17, 14, 22, 14, 46, 92, 42, 59, 98, 69, 38, 28, 50, 71, 43, 47, 83, 61, 36, 55,121,191,135, 74, 89, - 47, 15, 15, 37, 64, 48, 54,109,102, 90, 36, 72, 78, 14, 10, 36, 43, 46, 21, 34, 92,108,119, 60, 95,122, 69, 26, 35, 85,145,110, - 81,125, 85, 45,154,159,148,121, 59,111, 86, 53,129,121, 79,147, 83, 63, 62,118, 70, 21, 47, 48, 45, 20,121, 54,101, 56, 28, 61, - 71, 83, 5, 82, 4, 6,117, 3, 3, 75, 62, 12, 46, 68, 92, 59, 50, 78, 59, 41, 13, 11, 13, 43, 66, 92, 62, 67,117, 86, 49, 14, - 26, 38, 23, 22, 35, 24, 13, 3, 4, 3, 22, 19,151, 10, 15, 10, 6, 3, 3, 3, 43, 69, 87, 45, 51, 90, 67, 40, 19, 43, 69, 51, - 94, 91,153, 11, 35, 66, 54, 77, 77, 38, 34,147, 28, 34, 8, 28, 57, 56, 51, 21, 27, 35, 96, 56, 34, 70, 57, 36,255,255, 0, 57, - 0, 0, 4,150, 5,182, 2, 6, 1,117, 0, 0,255,255, 0, 80,254, 20, 4,131, 6, 18, 2, 6, 1,149, 0, 0, 0, 3, 0, 84, -255,236, 4,123, 5,205, 0, 19, 0, 30, 0, 41, 0, 43, 64, 22, 25, 37, 91, 0, 43, 36, 26, 91, 10, 26, 96, 36, 36, 20, 31, 95, - 15, 4, 20, 95, 5, 19, 0, 63,225, 63,225, 18, 57, 47,225, 1, 47,225, 50, 16,222,225, 50, 48, 49, 1, 20, 2, 6, 6, 35, 34, - 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 1, 50, 62, 2, 55, 33, 30, 3, 19, 34, 14, 2, 7, 33, 46, 3, 4,123, 64, -132,200,135,142,201,129, 60, 60,129,203,142,135,199,131, 64,253,237, 87,123, 79, 39, 4,253,103, 4, 40, 80,123, 88, 85,122, 81, - 42, 5, 2,153, 5, 42, 79,120, 2,221,169,254,234,198,108,108,198, 1, 23,170,170, 1, 21,196,107,107,197,254,235,253, 7, 71, -134,194,122,122,194,134, 71, 4,154, 67,128,184,117,117,184,128, 67, 0, 0, 3, 0,115,255,236, 4, 88, 4, 94, 0, 19, 0, 25, - 0, 30, 0, 43, 64, 22, 29, 22, 72, 0, 32, 28, 23, 72, 10, 23, 80, 28, 28, 20, 26, 80, 15, 16, 20, 80, 5, 22, 0, 63,225, 63, -225, 18, 57, 47,225, 1, 47,225, 50, 16,222,225, 50, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 1, - 32, 19, 33, 22, 22, 19, 32, 3, 33, 2, 4, 88, 74,133,184,111,103,180,134, 78, 73,132,185,111,103,181,134, 78,254, 14, 1, 26, - 26,253,151, 11,156,140,254,239, 32, 2,101, 35, 2, 39,137,213,145, 76, 76,145,213,137,136,211,145, 75, 75,145,211,253,212, 1, -100,179,177, 3, 68,254,186, 1, 70, 0, 0, 1, 0, 63, 0, 0, 5, 33, 5,195, 0, 28, 0, 79, 64, 47, 26, 26, 5, 25, 6, 55, - 6, 1, 38, 6, 1, 6, 24, 7, 56, 7, 2, 7, 13, 17, 13, 8, 0, 25, 48, 25, 80, 25, 96, 25, 4, 25, 9, 8, 26, 0, 97, 25, - 22, 4, 8, 3, 13, 7, 18, 6, 18, 0, 63, 63, 51, 63, 63, 51,225, 50, 1, 47, 51, 47, 93, 18, 57, 57, 17, 51, 93, 51, 93, 93, - 17, 18, 57, 50, 47, 48, 49, 1, 34, 14, 2, 7, 1, 35, 1, 51, 1, 22, 22, 23, 54, 54, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, - 38, 4,180, 35, 53, 42, 36, 18,254,215,209,254, 61,197, 1, 10, 26, 45, 17, 14, 42, 26,142, 32, 60, 76,103, 75, 35, 68, 26, 23, - 54, 5, 45, 37, 72,103, 66,251,233, 5,182,252,109, 93,185, 79, 78,188, 97, 2, 0,113,156, 98, 43, 13, 8,151, 9, 13, 0, 1, - 0, 82, 0, 0, 4,174, 4, 82, 0, 35, 0, 80, 64, 51, 33, 24, 34,102, 34,118, 34, 2, 23, 34, 55, 34, 71, 34, 87, 34, 4, 34, - 24, 35, 40, 35, 56, 35, 3, 35, 9, 16, 9, 0, 47, 24, 1, 24, 1, 64, 0, 80, 0, 2, 0, 34, 9, 35, 21, 28, 79, 21, 15, 0, - 15, 0, 63, 63,225, 63, 51, 51, 1, 47, 93, 51, 47, 93, 18, 57, 57, 17, 51, 93, 51, 93, 93, 17, 18, 57, 48, 49, 19, 51, 19, 30, - 5, 23, 51, 62, 3, 55, 19, 62, 3, 51, 50, 22, 23, 21, 38, 38, 35, 34, 14, 2, 7, 1, 35, 82,188,224, 8, 21, 24, 24, 20, 16, - 3, 6, 7, 25, 30, 31, 12,102, 30, 53, 65, 83, 60, 26, 44, 14, 11, 32, 18, 26, 40, 32, 29, 15,254,246,231, 4, 74,253,162, 22, - 63, 70, 74, 67, 57, 18, 30, 93,103,101, 37, 1, 64, 93,117, 67, 24, 7, 3,135, 3, 5, 19, 40, 65, 46,252,225,255,255, 0, 63, - 0, 0, 5, 33, 7,115, 2, 38, 2,128, 0, 0, 1, 7, 3,118,255,224, 1, 82, 0, 25,182, 2, 1, 29, 5, 38, 2, 1,184,255, -109,180, 49, 29, 8, 25, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82, 0, 0, 4,174, 6, 33, 2, 38, 2,129, 0, 0, - 1, 6, 3,118,212, 0, 0, 25,182, 2, 1, 36, 17, 38, 2, 1,184,255,145,180, 56, 36, 0, 24, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0, 0, 3, 0, 70,254, 20, 4,215, 5,205, 0, 19, 0, 39, 0, 72, 0,111, 64, 68,136, 72,152, 72, 2, 72, 16, 11, 16, 72, - 72, 47, 40, 55, 65, 65, 39, 41, 1, 6, 41, 1, 41,250, 6, 40, 1, 40, 40, 30,250, 15, 0, 1, 0, 0, 10, 40, 54, 1, 9, 54, - 1, 54,250,240, 55, 1, 55, 20,250, 10, 72, 47, 73, 68, 61, 28, 54, 40, 15, 35, 95, 15, 4, 25, 5, 19, 0, 63,193, 63,225, 63, - 51, 63,205, 17, 51, 51, 1, 47,225, 47, 93,225, 93, 93, 18, 57, 47, 93,225, 51, 47, 93,225, 93, 93, 51, 47, 17, 18, 57, 57, 43, - 93, 49, 48, 1, 20, 2, 6, 6, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 22, 18, 5, 20, 30, 2, 51, 50, 62, 2, 53, - 52, 46, 2, 35, 34, 14, 2, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 3, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, - 55, 55, 2,106, 16, 56,109, 93, 93,109, 56, 16, 16, 57,109, 94, 93,108, 56, 15,254,121, 10, 26, 46, 35, 36, 46, 25, 10, 9, 26, - 45, 35, 36, 46, 27, 10, 1,176,156,100, 4, 9, 9, 8, 3, 4, 2, 5, 7, 7, 4,106,156,242, 15, 41, 62, 88, 62, 37, 48, 21, - 20, 47, 25, 49, 63, 19, 24, 2,221,182,254,231,191, 99, 98,192, 1, 26,183,177, 1, 23,193,101,101,193,254,232,178,137,219,153, - 81, 81,153,219,137,138,218,151, 81, 81,151,218,227,253,159, 23, 56, 61, 63, 30, 25, 62, 64, 60, 22, 2, 97,251, 14, 78,120, 83, - 43, 11, 6,145, 5, 7, 87, 99,136, 0, 0, 3, 0, 80,254, 20, 4,205, 4, 94, 0, 19, 0, 29, 0, 62, 0,151, 64,100, 88, 62, -104, 62, 2, 57, 62, 73, 62, 2, 40, 62, 1, 37, 62, 45, 21, 31, 1, 31, 73, 30, 0, 30, 1, 30, 0, 0, 54, 1, 54, 54,137, 25, - 1, 88, 25,104, 25,120, 25, 3, 25, 73, 89, 0, 1, 15, 0, 1, 0, 0, 10, 88, 44, 1, 73, 44, 1, 56, 44, 1, 25, 44, 1, 8, - 44, 1, 44, 73, 45,133, 20, 1,102, 20,118, 20, 2, 20, 73, 10, 37, 62, 30, 58, 80, 51, 27, 44, 30, 15, 28, 80, 15, 16, 23, 80, - 5, 22, 0, 63,225, 63,225, 63, 51, 63,225, 17, 57, 57, 1, 47,225, 93, 93, 47,225, 93, 93, 93, 93, 93, 18, 57, 47, 93, 93,225, - 93, 93, 51, 47, 93, 17, 51, 93, 16,225, 93, 18, 57, 57, 93, 93, 93, 48, 49, 1, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, - 50, 30, 2, 5, 20, 22, 51, 50, 17, 52, 38, 35, 34, 37, 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 3, 14, 3, 35, 34, 38, 39, - 53, 22, 22, 51, 50, 54, 55, 55, 2,115, 38, 71,102, 64, 61,100, 72, 39, 40, 73,101, 60, 57,100, 73, 43,254,123, 59, 57,117, 60, - 57,116, 1,155,156,100, 4, 9, 9, 8, 3, 4, 2, 5, 6, 8, 4,106,156,242, 15, 41, 62, 88, 62, 37, 48, 22, 20, 48, 25, 49, - 63, 19, 24, 2, 39,168,221,130, 52, 52,130,221,168,168,219,129, 51, 51,129,219,168,211,209, 1,164,210,206,131,253,159, 23, 56, - 61, 63, 30, 25, 62, 64, 60, 22, 2, 97,251, 14, 78,120, 83, 43, 11, 6,145, 5, 7, 87, 99,136, 0, 2, 0, 84,255,139, 4,123, - 6, 41, 0, 31, 0, 63, 0, 94, 64, 53, 37, 11, 11, 59, 21, 43, 5, 5, 53, 27, 21, 27, 16, 48, 91, 0, 65, 32, 91, 31, 16, 47, - 16, 2, 16, 59, 79, 56, 95, 56, 2, 56, 56, 53, 95, 24, 21, 27, 3, 43, 64, 40, 80, 40, 2, 40, 40, 37, 95, 8, 5, 11, 18, 0, - 63, 51,205,225, 50, 47, 93, 50, 63, 51,205,225, 50, 47, 93, 50, 1, 47, 93,225, 16,222,225, 18, 57, 57, 17, 51, 51, 17, 51, 17, - 51, 51, 17, 51, 48, 49, 1, 20, 14, 2, 7, 6, 6, 35, 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 22, 23, 30, 3, - 5, 20, 30, 2, 23, 54, 54, 51, 50, 22, 23, 62, 3, 53, 52, 46, 2, 39, 6, 6, 35, 34, 38, 39, 14, 3, 4,123, 48, 97,147, 99, - 14, 74, 54, 58, 71, 14,103,146, 94, 44, 44, 94,146,103, 14, 71, 58, 54, 74, 14, 99,147, 97, 48,252,158, 22, 47, 75, 54, 17, 67, - 51, 48, 69, 17, 55, 77, 48, 22, 22, 48, 77, 55, 16, 70, 48, 52, 68, 17, 53, 74, 47, 22, 2,221,146,247,190,126, 26, 62, 53, 53, - 62, 26,126,190,248,147,146,246,189,125, 25, 62, 49, 50, 59, 26,126,189,247,147,108,182,142,101, 28, 45, 37, 39, 45, 26,100,143, -184,110,110,183,143, 99, 26, 48, 40, 38, 46, 27,101,141,180, 0, 0, 2, 0,115,255,152, 4, 88, 4,174, 0, 33, 0, 54, 0, 88, - 64, 47, 36, 11, 11, 53, 21, 42, 5, 5, 47, 29, 21, 29, 16, 44, 72, 0, 56, 34, 72, 0, 16, 1, 16, 53, 95, 50, 1, 50, 50, 47, - 81, 24, 21, 29, 15, 80, 39, 1, 39, 39, 36, 42, 81, 11, 8, 5, 21, 0, 63,205, 51,225, 50, 50, 47, 93, 63, 51,205,225, 50, 47, - 93, 50, 1, 47, 93,225, 16,222,225, 18, 57, 57, 17, 51, 51, 17, 51, 17, 51, 51, 17, 51, 48, 49, 1, 20, 14, 2, 7, 6, 6, 35, - 34, 38, 39, 46, 3, 53, 52, 62, 2, 55, 54, 54, 51, 50, 30, 2, 23, 30, 3, 5, 16, 23, 54, 54, 51, 50, 22, 23, 54, 17, 52, 38, - 39, 6, 6, 35, 34, 38, 39, 6, 4, 88, 54, 98,139, 86, 9, 60, 54, 58, 59, 8, 81,136, 99, 56, 53, 97,138, 84, 10, 58, 57, 27, - 42, 30, 20, 4, 81,139,100, 57,252,215,191, 11, 56, 51, 48, 57, 12,195, 99, 96, 12, 57, 48, 51, 55, 12,191, 2, 39,117,188,141, - 92, 19, 54, 44, 44, 54, 20, 92,141,188,116,115,187,141, 91, 19, 54, 40, 9, 21, 36, 28, 19, 91,141,187,115,254,184, 71, 38, 29, - 31, 38, 71, 1, 74,165,197, 35, 42, 29, 31, 40, 71, 0, 0, 3, 0, 82,255,236, 4,123, 8, 61, 0, 21, 0, 39, 0,102, 0,180, - 64,107, 53, 15, 54, 63, 54, 79, 54, 95, 54,127, 54,143, 54, 6, 54, 54, 48,251, 60, 40, 70, 29, 22, 34, 25, 11, 12, 70, 34, 1, - 34, 12, 12, 34, 1, 3, 80, 60,104, 87, 0, 86, 48, 86, 64, 86, 80, 86,112, 86,128, 86, 6, 86, 86, 92,251, 80, 53, 87, 87, 51, - 89, 95, 83, 54, 86, 86, 83, 29, 37, 26, 26, 79, 25, 95, 25,111, 25, 3, 25, 83, 37, 37, 2, 7, 16, 16, 11, 0, 79, 2, 1, 2, - 2, 57, 83, 4,102,102, 43, 97, 95, 70, 65, 75, 19, 0, 63, 51, 51,225, 50, 50, 47, 63, 51, 51, 47, 93, 51, 51, 51, 47, 51, 17, - 51, 47, 16,198, 93, 50, 47, 18, 57, 17, 51, 17, 51, 16,225, 50, 50, 17, 51, 1, 47,225, 50, 47, 93, 51, 16,206, 17, 23, 57, 47, - 47, 47, 18, 57, 17, 51, 50, 16,221,205, 17, 51, 16,225, 50, 47, 93, 51, 49, 48, 1, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, - 53, 52, 54, 51, 50, 30, 2, 51, 7, 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 3, 22, 22, 51, 50, 62, 2, - 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, - 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, 30, 2, 51, 50, 62, 2, 55, 3,221, 14, 80,135,114, 94, 38, 43, 55,133,118,103, 54, -106,112,125, 74,232,119,122, 60, 56, 31, 36, 31, 50, 46, 59, 68,125, 36, 90, 51, 48, 67, 42, 19, 78, 66, 55, 41, 47, 34, 88, 48, -146,147, 34, 78,128, 94, 33, 54, 46, 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, 66, 77, 19, 43, - 68, 48, 27, 45, 41, 40, 21, 7,203,129, 36, 42, 36, 45, 53, 16, 35,107,101, 36, 42, 36,226, 77,115, 31, 76, 22, 45, 25, 19, 18, - 16, 26, 28, 37, 38, 70,249,232, 57, 66, 89,164,229,141, 1, 19, 1, 20, 29,152, 23, 18,254,153,254,154,192,254,219,198,101, 9, - 20, 33, 24, 24, 33, 20, 9,101,198, 1, 37,192, 1,102, 1,103, 18, 23,152, 29,254,236,254,237,141,229,164, 89, 17, 32, 46, 28, - 0, 3, 0, 88,255,236, 4,115, 7, 8, 0, 59, 0, 81, 0, 98, 0,156, 64, 41, 15, 47,191, 47,255, 47, 3, 47, 64, 11, 17, 72, - 47, 47, 41, 73, 33, 3, 11, 55,100, 70, 73, 88, 82, 93, 93, 85, 85, 61, 61, 72, 11, 0, 19,176, 19,240, 19, 3, 19,184,255,192, - 64, 45, 11, 17, 72, 19, 19, 25, 73, 11, 88, 96, 86, 85, 96, 96, 72, 67, 76, 60, 61, 61, 15, 72, 1, 72, 72, 85, 46, 44, 44, 20, - 22, 81, 50, 47, 19, 16, 16, 38, 33, 28, 81, 3, 0, 6, 22, 0, 63, 51, 51,225, 50, 50, 63, 51, 51, 51,225, 50, 50, 17, 51,206, - 50, 47, 93, 51, 47, 51,205, 50, 17, 51, 47, 16,205, 17, 57, 1, 47,225, 50, 47, 43, 93, 16,196, 50, 47, 50, 47, 51, 47,221,201, - 47, 51, 16,222, 17, 57, 57,225, 50, 47, 43, 93, 49, 48, 5, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, - 7, 38, 35, 34, 6, 21, 20, 22, 51, 50, 62, 2, 55, 30, 3, 51, 50, 54, 53, 52, 38, 35, 34, 7, 39, 54, 54, 51, 50, 30, 2, 21, - 20, 14, 2, 19, 21, 35, 34, 46, 2, 35, 34, 6, 21, 21, 35, 53, 52, 54, 51, 50, 30, 2, 51, 7, 20, 6, 7, 53, 54, 53, 52, 46, - 2, 53, 52, 54, 51, 50, 22, 3, 29, 62, 91, 32, 32, 88, 60, 76,127, 91, 50, 40, 76,109, 68, 46, 95, 35, 51, 49, 62, 73, 68,102, - 95, 26, 46, 40, 34, 15, 16, 35, 40, 47, 28, 94,101, 68, 74, 58, 50, 51, 35, 94, 45, 70,109, 75, 39, 51, 90,126,105, 8, 80,129, -110, 96, 46, 43, 55,134,118,104, 62,108,108,119, 74,232,120,121,116, 31, 36, 31, 50, 46, 59, 68, 20, 35, 32, 32, 35, 60,133,215, -155,157,219,137, 62, 20, 25,145, 30,201,212,211,195, 14, 24, 30, 16, 16, 30, 24, 14,195,211,212,201, 30,145, 25, 20, 62,137,219, -157,150,213,137, 63, 6,170,130, 36, 43, 36, 46, 52, 17, 23,108,113, 36, 42, 36,226, 77,115, 31, 76, 41, 51, 19, 18, 16, 26, 27, - 38, 38, 70, 0, 0, 2, 0, 82,255,236, 4,123, 7, 4, 0, 13, 0, 74, 0,173, 64,100, 27, 27, 14,251, 72, 0, 59, 32, 59, 2, - 59, 59, 5, 72, 1,197, 72,213, 72, 2, 6, 72,150, 72,166, 72, 3, 72, 72, 53, 21,251, 4, 2, 3, 5, 6, 6, 8, 7, 9, 10, - 10, 11, 11, 7, 3, 3, 12, 15, 1, 31, 1, 2, 1, 33, 76, 0, 12, 16, 12, 2, 12, 65,251, 53, 73, 73, 56, 70, 26, 60, 60, 24, - 62, 95, 56, 27, 59, 59, 56, 13, 5, 9, 7, 3, 11, 30, 56, 4, 14, 72, 72, 16, 70, 95, 43, 38, 48, 19, 0, 63, 51, 51,225, 50, - 50, 17, 51, 63, 51,222, 50, 50,221, 50,205, 17, 51, 17, 51, 16,225, 50, 50, 17, 51, 17, 18, 57, 47, 1, 47,225,196, 93, 16,222, -196, 93, 17, 23, 57, 17, 51, 17, 51, 17, 51, 51, 17, 51, 17, 51, 51,225, 17, 57, 47, 93, 93,113, 51, 47, 93, 16,225, 50, 47, 49, - 48, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 1, 22, 51, 50, 62, 2, 53, 16, 2, 35, 34, 7, 39, 54, 54, 51, 50, - 18, 17, 20, 2, 6, 6, 35, 34, 46, 2, 39, 14, 3, 35, 34, 38, 38, 2, 53, 16, 18, 51, 50, 22, 23, 7, 38, 35, 34, 2, 17, 20, - 30, 2, 51, 50, 55, 17, 51, 3,221, 82, 35, 49,143, 49, 35, 49,144, 49, 35, 79, 1,204, 39, 56, 48, 67, 42, 19, 78, 66, 55, 41, - 47, 34, 88, 48,146,147, 34, 78,128, 94, 33, 54, 46, 43, 23, 22, 42, 46, 53, 33, 94,128, 79, 35,147,146, 48, 88, 34, 47, 41, 56, - 66, 77, 19, 43, 68, 48, 57, 37,170, 7, 4, 27,172,103,103,103,103,172, 27,249,182, 43, 89,164,229,141, 1, 19, 1, 20, 29,152, - 23, 18,254,153,254,154,192,254,219,198,101, 13, 24, 37, 24, 24, 37, 24, 13,101,198, 1, 37,192, 1,102, 1,103, 18, 23,152, 29, -254,236,254,237,141,229,164, 89, 43, 1,220, 0, 0, 2,255,252, 0, 0, 4,137, 5,164, 0, 13, 0, 56, 0,204, 64, 25, 22, 47, - 1, 47, 35, 48, 29, 73, 6, 56, 22, 56, 2, 22, 56, 38, 56, 70, 56, 86, 56,214, 56, 5, 56,184,255,240, 64,102, 17, 20, 72, 56, - 20, 14, 8, 48, 1,152, 48,184, 48,216, 48,232, 48, 4, 25, 48, 41, 48, 73, 48, 89, 48,105, 48, 5, 27, 52, 48, 3, 41, 14, 15, - 40, 28, 56, 28, 2, 10, 28, 1, 28, 28, 15, 41, 73, 4, 2, 3, 5, 6, 6, 8, 7, 9, 10, 10, 11, 11, 7, 3, 3, 12, 15, 1, - 1, 1, 42, 58, 0, 12, 80, 12, 2, 12, 16, 73, 15, 35, 48, 21, 52, 27, 27, 15, 14, 13, 5, 9, 7, 3, 11, 41, 28, 15, 15, 20, - 14, 21, 0, 63, 51, 63, 51, 51,222, 50, 50,221, 50,205, 17, 18, 57, 17, 51, 63, 51, 1, 47,225,198, 93, 16,222,198, 93, 17, 23, - 57, 17, 51, 17, 51, 17, 51, 51, 17, 51, 17, 51, 51,237, 17, 57, 47, 93, 93, 18, 57, 18, 23, 57, 93, 93,113, 17, 51, 51, 43, 93, -113,225, 17, 51, 51, 93, 48, 49, 1, 21, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 53, 19, 1, 51, 19, 22, 22, 23, 51, 62, 3, - 55, 19, 3, 51, 19, 30, 3, 23, 51, 62, 2, 18, 53, 51, 20, 2, 2, 6, 7, 35, 3, 38, 38, 39, 6, 6, 7, 3, 3,207, 82, 35, - 49,143, 50, 34, 50,143, 49, 35, 80, 58,254,225,160,163, 20, 34, 8, 4, 5, 15, 18, 20, 10, 86,109,150,137, 8, 22, 23, 22, 7, - 6, 63, 79, 45, 16,153, 26, 66,113, 88,163, 84, 7, 11, 3, 5, 16, 8,106, 5,164, 27,172,103,103,103,103,172, 27,250, 92, 4, - 74,253, 92, 85,157, 51, 18, 56, 65, 67, 30, 1, 16, 1,205,253,176, 33, 96,103, 96, 33,104,210,230, 1, 2,151,163,254,224,254, -245,253,127, 1, 84, 26, 56, 20, 20, 62, 22,254,174, 0, 0, 1, 0,129,254, 20, 4,156, 5,203, 0, 35, 0, 52, 64, 27, 16, 90, - 17, 17, 24, 33, 32, 32, 37, 5, 91, 0, 24, 1, 24, 33, 0, 95, 32, 29, 4, 15, 10, 95, 19, 19, 16, 0, 47, 63,225, 50, 63, 51, -225, 50, 1, 47, 93,225, 17, 51, 47, 51, 18, 57, 47,225, 48, 49, 1, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, 55, 17, 35, 17, - 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 3, 29,107,174,123, 67, 59,118,176,118, 29, 45, 40, 37, 21, -187, 16,164,240,157, 76, 87,170,249,162,108,196, 79, 78, 63,148, 5, 39, 81,152,218,137,141,219,150, 78, 4, 9, 13, 9,253, 98, - 1,216,108,198, 1, 22,169,166, 1, 20,198,110, 44, 42,156, 32, 46, 0, 0, 1, 0,172,254, 20, 4, 37, 4, 94, 0, 31, 0, 53, - 64, 28, 29, 71, 30, 30, 5, 14, 13, 13, 33, 20, 72, 0, 5, 1, 5, 29, 27, 14, 17, 81, 13, 10, 16, 28, 25, 81, 0, 22, 0, 63, -225, 50, 63, 51,225, 50, 63, 1, 47, 93,225, 17, 51, 47, 51, 18, 57, 47,225, 48, 49, 5, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, - 23, 7, 38, 38, 35, 34, 6, 21, 20, 30, 2, 51, 50, 54, 55, 17, 35, 17, 2,197,113,196,145, 83, 84,149,206,122, 90,172, 66, 62, - 58,131, 79,190,181, 49, 94,135, 87, 53, 85, 34,182, 20, 63,137,213,150,157,219,137, 62, 34, 25,158, 22, 35,204,209,105,154, 99, - 48, 19, 14,253,104, 1,216, 0, 0, 1, 0, 94,255,250, 4,111, 5, 10, 0, 19, 0,168, 64, 75, 6, 9, 10, 13, 4, 14, 5, 14, - 3, 0, 19, 16, 4, 4, 15, 15, 2, 63, 1, 79, 1, 95, 1,175, 1, 4, 1, 1, 18, 17, 21, 12, 48, 11, 64, 11, 80, 11,160, 11, - 4, 11, 11, 7, 4, 5, 5, 8, 7, 13, 16, 12, 17, 10, 19, 11, 18, 11, 12, 6, 3, 7, 2, 7, 9, 0, 1, 8, 8, 12, 64, 21, - 26, 72, 12,184,255,192, 64, 9, 12, 12, 15, 14, 17, 18, 18, 1, 2,184,255,192,182, 21, 26, 72, 2, 2, 5, 4, 0, 47, 51, 51, - 47, 43, 51, 51, 47, 51, 47, 51, 51, 47, 56, 43, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 17, 51, 17, 18, 57, 57, 17, 18, 57, 57, - 1, 47, 51, 51, 47, 51, 17, 51, 47, 93, 51, 16,206, 50, 50, 47, 93, 51, 50, 47, 18, 23, 57, 51, 17, 18, 23, 57, 48, 49, 1, 5, - 7, 37, 3, 39, 19, 37, 55, 5, 19, 37, 55, 5, 19, 23, 3, 5, 7, 37, 2, 66, 1, 28, 71,254,227,180,129,180,254,229, 70, 1, - 31,198,254,228, 71, 1, 29,182,127,182, 1, 31, 74,254,229, 1,176,166,123,164,254,199, 74, 1, 59,164,123,164, 1, 90,164,125, -164, 1, 57, 73,254,196,164,123,164, 0, 0, 1, 0,242, 4,143, 3,217, 5,184, 0, 21, 0, 23, 64, 9, 4, 10, 16, 0, 19, 15, -141, 4, 7, 0, 47,221,253,204, 1, 47, 51, 47, 51, 48, 49, 1, 20, 6, 35, 33, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, 33, 54, - 54, 51, 50, 22, 3,217, 43, 57,254, 63, 6, 44, 48, 56, 40, 9, 23, 38, 28, 1,192, 5, 46, 48, 56, 42, 5, 80, 57, 41, 44, 51, - 51, 56, 28, 37, 22, 9, 45, 49, 50, 0, 0, 1, 0,242, 4,229, 3,221, 5,217, 0, 21, 0, 31, 64, 14, 20, 10,132, 15, 8, 1, - 8, 21, 20, 20, 14, 5,128, 10, 0, 47, 26,204, 50, 51, 47, 51, 1, 47, 93,225, 47, 49, 48, 1, 50, 62, 2, 51, 50, 22, 21, 21, - 35, 53, 52, 38, 35, 34, 14, 2, 35, 35, 53, 1, 0, 78,133,119,112, 58,109,124,133, 58, 46, 42,101,121,145, 85, 16, 5,102, 36, - 43, 36,101,108, 35, 17, 52, 46, 36, 43, 36,129, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 35, 64, 18, 15, 64, 9, 12, - 72, 15, 11, 6, 0, 11, 3, 14,140, 15,127, 3, 1, 3, 0, 47, 93, 47,225, 18, 57, 1, 47,205,205,205, 43, 48, 49, 1, 52, 54, - 51, 50, 22, 21, 20, 14, 2, 21, 20, 22, 23, 21, 38, 38, 1,225, 68, 59, 47, 50, 31, 37, 31, 57, 60,122,120, 5,182, 57, 70, 38, - 38, 27, 26, 16, 18, 19, 25, 46, 21, 76, 31,115, 0, 1, 1,225, 4,215, 2,211, 6, 53, 0, 17, 0, 38,178, 12, 7, 3,184,255, -192, 64, 14, 9, 12, 72, 3, 0, 7, 3,127, 15, 1, 15, 4,140, 3, 0, 47,225, 47, 93, 18, 57, 1, 47,205, 43,205,205, 48, 49, - 1, 20, 6, 7, 53, 54, 54, 53, 52, 46, 2, 53, 52, 54, 51, 50, 22, 2,211,120,122, 60, 57, 31, 36, 31, 50, 46, 59, 68, 5,182, - 77,115, 31, 76, 21, 46, 25, 19, 18, 16, 26, 27, 38, 38, 70, 0, 0, 8, 0, 41, 0, 47, 4,164, 4, 53, 0, 13, 0, 27, 0, 41, - 0, 55, 0, 69, 0, 83, 0, 99, 0,113, 0, 0, 1, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 19, 50, 22, 23, 35, 38, - 38, 35, 34, 6, 7, 35, 54, 54, 37, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, - 7, 35, 54, 54, 1, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, - 1, 50, 22, 23, 35, 46, 3, 35, 34, 6, 7, 35, 54, 54, 33, 50, 22, 23, 35, 38, 38, 35, 34, 6, 7, 35, 54, 54, 2, 96, 65, 66, - 6, 69, 5, 37, 26, 28, 32, 3, 72, 2, 67, 66, 65, 66, 6, 69, 5, 37, 26, 28, 32, 3, 72, 2, 67, 1,144, 62, 70, 3, 73, 4, - 33, 25, 28, 30, 3, 74, 3, 67,253,167, 65, 69, 6, 72, 5, 37, 26, 27, 31, 3, 70, 4, 62, 2,219, 62, 70, 3, 73, 4, 33, 25, - 28, 30, 3, 74, 3, 67,253,167, 65, 69, 6, 72, 5, 37, 26, 27, 31, 3, 70, 4, 62, 3, 72, 63, 71, 3, 74, 1, 12, 17, 22, 11, - 29, 28, 3, 73, 3, 65,252,212, 65, 69, 3, 73, 4, 35, 25, 26, 30, 3, 74, 3, 67, 4, 53, 77, 62, 32, 17, 15, 34, 63, 76,252, -131, 75, 62, 32, 17, 15, 34, 63, 74,162, 79, 62, 34, 17, 16, 35, 63, 78, 79, 62, 34, 17, 16, 35, 63, 78, 2, 57, 79, 62, 32, 17, - 15, 34, 63, 78, 79, 62, 32, 17, 15, 34, 63, 78,254,232, 78, 65, 17, 20, 11, 3, 16, 35, 66, 77, 78, 65, 34, 17, 16, 35, 66, 77, - 0, 8, 0, 41,255,231, 4,164, 4, 98, 0, 8, 0, 19, 0, 32, 0, 43, 0, 54, 0, 63, 0, 74, 0, 85, 0, 62, 64, 30, 43, 36, - 13, 0, 9, 4, 54, 26, 31, 74, 68, 53, 47, 19, 12, 26, 33, 20, 37, 85, 62, 7, 15, 79, 31, 79, 2, 79, 58, 4, 0, 47,198,196, - 93,214,198,198,212, 50,205, 50, 47,205,196,196,198,196, 1, 47,198,198,212, 50,205, 50, 47,205, 48, 49, 37, 6, 6, 7, 35, 54, - 54, 55, 51, 3, 54, 54, 55, 51, 14, 3, 7, 35, 1, 30, 3, 23, 21, 46, 3, 39, 53, 5, 38, 38, 39, 53, 30, 3, 23, 21, 1, 54, - 54, 55, 23, 14, 3, 7, 39, 1, 6, 6, 7, 39, 54, 54, 55, 23, 3, 38, 38, 39, 55, 30, 3, 23, 7, 1, 22, 22, 23, 7, 46, 3, - 39, 55, 2,184, 12, 45, 25, 79, 17, 23, 5,100,145, 11, 45, 23, 84, 7, 14, 13, 10, 3,100, 1,164, 22, 53, 57, 58, 27, 30, 64, - 62, 57, 23,253, 76, 46,117, 56, 26, 63, 65, 60, 21, 2, 19, 54,111, 44, 63, 21, 55, 56, 52, 18, 70,254,127, 47,113, 51, 64, 41, -109, 55, 72,119, 29, 53, 18, 61, 17, 37, 36, 32, 13, 71, 2, 80, 31, 50, 19, 59, 18, 38, 36, 33, 13, 74,195, 47,119, 54, 87,114, - 35, 2,180, 48,117, 54, 28, 63, 62, 58, 24,254,254, 6, 17, 21, 24, 12, 84, 7, 14, 14, 10, 2,100,145, 12, 45, 25, 82, 6, 13, - 13, 11, 2,103, 1,105, 31, 52, 17, 59, 14, 36, 38, 35, 14, 71,253,176, 24, 55, 19, 59, 25, 74, 39, 74, 1,221, 53,111, 45, 63, - 27, 58, 53, 47, 17, 72,254,129, 53,111, 47, 63, 27, 58, 54, 47, 18, 72, 0, 2, 0,137,254,127, 5, 8, 7,104, 0, 27, 0, 49, - 0, 92, 64, 50, 25, 26, 27, 27, 24, 23, 49,251, 28, 28, 39,251, 38, 38, 9, 21, 0,251, 23, 51, 64, 8, 12,251, 0, 9,224, 9, -240, 9, 3, 9, 49, 39,128, 44, 33, 21, 7, 11, 3, 19, 8, 18, 26, 26, 23, 95, 0, 18, 0, 63,225, 51, 47, 63, 51, 63, 51, 51, -222, 50, 26,204, 50, 1, 47, 93,225, 50, 26, 16,221,225, 50, 17, 57, 47,225, 51, 47,225, 16,205, 50, 16,205, 50, 49, 48, 33, 17, - 52, 54, 55, 54, 55, 35, 1, 35, 17, 51, 17, 20, 14, 2, 7, 6, 7, 51, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, - 39, 51, 30, 3, 51, 50, 62, 2, 55, 3,154, 5, 4, 4, 5, 8,253,188,215,174, 1, 2, 2, 2, 4, 3, 6, 2, 66,213,194,143, -217,166, 97, 6, 48, 93,142,100,103,140, 87, 42, 5,170, 5, 27, 51, 75, 53, 44, 73, 54, 35, 5, 3, 25, 57,142, 65, 76, 77,251, - 70, 5,182,252,224, 26, 62, 67, 67, 32, 74, 76, 4,180,250,240,253,217, 1,129, 7,104, 77,119, 80, 41, 39, 79,119, 80, 57, 72, - 41, 16, 18, 44, 71, 53, 0, 2, 0,178,254,131, 4,193, 6, 23, 0, 15, 0, 37, 0,164,185, 0, 3,255,240,179, 18, 24, 72, 3, -184,255,224, 64, 96, 11, 14, 72, 37, 3, 53, 3, 2, 9, 16, 18, 24, 72, 9, 32, 11, 14, 72, 42, 9, 58, 9, 2,171, 2, 1,137, - 2,153, 2, 2,164, 8, 1,134, 8,150, 8, 2, 13, 14, 15, 15, 12, 11, 37, 70, 16, 16, 27, 70, 26, 26, 4, 9, 0, 70, 11, 39, - 64, 3, 6, 70, 0, 4, 16, 4, 32, 4,176, 4,192, 4,208, 4, 6, 7, 4, 37, 27,128, 32, 21, 9, 2, 6, 15, 8, 3, 21, 14, - 14, 11, 80, 0, 21, 0, 63,225, 51, 47, 63, 51, 63, 51, 51,222, 50, 26,204, 50, 1, 47, 94, 93,225, 50, 26, 16,220,225, 50, 17, - 57, 47,225, 51, 47,225, 16,205, 50, 16,205, 50, 49, 48, 0, 93, 93, 93, 93, 1, 93, 43, 43, 93, 43, 43, 33, 17, 19, 1, 35, 17, - 51, 17, 7, 1, 51, 17, 51, 3, 35, 19, 3, 14, 3, 35, 34, 46, 2, 39, 51, 30, 3, 51, 50, 62, 2, 55, 3, 94, 10,254, 58,240, -172, 12, 1,201,239,183,123,183,123, 37, 6, 48, 93,142,100,103,140, 87, 42, 5,170, 5, 27, 51, 75, 53, 44, 73, 54, 35, 5, 2, -135, 1, 15,252,106, 4, 74,253,100,252, 3,152,252, 80,253,233, 1,125, 6, 23, 78,118, 81, 41, 39, 80,119, 80, 57, 73, 41, 16, - 19, 43, 72, 53, 0, 2, 0, 47, 0, 0, 4, 70, 5,182, 0, 22, 0, 33, 0, 65, 64, 33, 21, 21, 23, 27, 91, 6, 35, 19, 0, 23, - 90, 16, 14, 12, 33, 95, 0, 22, 14, 95, 15, 19, 15, 0, 15, 0, 15, 17, 3, 23, 96, 12, 18, 0, 63,225, 63, 57, 57, 47, 47, 17, - 51, 16,225, 50, 16,225, 1, 47,198, 51,225, 50, 50, 16,222,225, 17, 57, 47, 48, 49, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 33, - 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 51, 50, 54, 53, 52, 46, 2, 35, 35, 1,129,168,152,207,127, 55, 60,126,194,134,254, -131,152,152,186, 1, 78,254,178,178,175,163, 46, 91,139, 93,147, 3, 78, 66,113,152, 87, 97,158,112, 61, 4, 96,164,178,178,164, -252, 64,132,136, 70, 97, 60, 27, 0, 2, 0, 61, 0, 0, 4, 68, 6, 20, 0, 20, 0, 33, 0, 73, 64, 39, 15, 2, 1, 2, 2, 14, - 28, 70, 8, 35, 4, 0, 22, 71, 18, 16, 14, 21, 80, 4, 3, 16, 79, 17, 0, 17, 47, 4, 1, 4, 17, 4, 17, 19, 0, 22, 80, 14, - 21, 0, 63,225, 63, 57, 57, 47, 47, 93, 17, 51, 16,225, 50, 16,225, 1, 47,198, 51,225, 50, 50, 16,222,225, 17, 57, 47, 93, 48, - 49, 1, 33, 21, 33, 17, 33, 50, 22, 21, 20, 14, 2, 35, 33, 17, 35, 53, 51, 53, 51, 17, 17, 33, 50, 62, 2, 53, 52, 46, 2, 35, - 1,143, 1, 23,254,233, 1, 21,212,204, 47,101,159,113,254, 57,156,156,182, 1, 4, 56, 93, 67, 38, 33, 65, 96, 64, 5, 33,137, -253,239,156,155, 77,124, 88, 47, 4,152,137,243,251,218,254,168, 17, 41, 66, 48, 49, 66, 40, 17, 0, 2, 0,176, 0, 0, 4, 70, - 5,182, 0, 20, 0, 35, 0,108, 64, 59, 25, 8, 26, 7, 7, 28, 5, 27, 6, 6, 31, 91,239, 0,255, 0, 2, 0, 37, 27, 26, 26, - 21, 13, 90, 0, 14,144, 14,160, 14, 3, 14, 25, 8, 26, 7, 26, 28, 5, 6, 27, 27, 21, 6, 7, 7, 12, 96, 22, 21, 21, 13, 35, - 96, 15, 3, 13, 18, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 47, 51, 17, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 1, 47, 93,225, - 50, 50, 47, 51, 16,222, 93,225, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 48, 49, 1, 20, 14, 2, 7, 23, 7, 39, 6, 6, 35, 35, - 17, 35, 17, 33, 50, 30, 2, 1, 51, 50, 54, 55, 39, 55, 23, 54, 54, 53, 52, 38, 35, 35, 4, 70, 24, 51, 82, 58,104,106,125, 44, - 98, 57,191,186, 1,148,134,194,126, 60,253, 36,170, 32, 59, 26, 94,109,118, 60, 59,163,175,201, 4, 10, 61,115,102, 85, 32,147, - 78,176, 11, 10,253,199, 5,182, 57,109,160,254,103, 3, 5,135, 76,170, 34,121, 93,142,137, 0, 0, 2, 0,158,254, 20, 4, 68, - 4, 94, 0, 35, 0, 57, 0,120, 64, 67, 50, 33, 51, 32, 32, 53, 30, 52, 31, 31, 55, 72, 15, 27, 31, 27, 2, 27, 59, 52, 51, 51, - 42, 16, 15, 6, 12, 71, 0, 13, 16, 13, 32, 13,208, 13, 4, 7, 13, 36, 80, 16, 22, 16, 14, 15, 12, 27, 50, 33, 51, 32, 51, 53, - 30, 31, 52, 52, 47, 80, 0, 31, 32, 32, 5, 0, 22, 0, 63, 50, 50, 47, 51, 16,225, 50, 47, 18, 57, 57, 51, 17, 18, 57, 57, 63, - 63, 63, 51,225, 1, 47, 94, 93,225, 50, 50, 50, 50, 50, 47, 51, 16,222,113,225, 51, 47, 18, 57, 57, 51, 17, 18, 57, 57, 48, 49, - 5, 34, 46, 2, 39, 35, 22, 23, 22, 22, 21, 17, 35, 17, 51, 23, 51, 62, 3, 51, 50, 30, 2, 21, 20, 6, 7, 23, 7, 39, 6, 6, - 3, 34, 14, 2, 7, 21, 20, 30, 2, 51, 50, 54, 55, 39, 55, 23, 54, 53, 52, 38, 2,150, 61, 98, 79, 61, 23, 12, 3, 3, 2, 4, -182,147, 27, 8, 23, 60, 79, 99, 61, 97,158,113, 62, 95, 84,107,107,116, 32, 68, 68, 79,109, 67, 32, 2, 28, 68,111, 84, 18, 34, - 15,106,108,111, 92,132, 20, 26, 43, 58, 32, 34, 31, 26, 55, 16,254, 43, 6, 54,148, 35, 61, 45, 27, 72,143,212,140,177,242, 69, -151, 78,166, 9, 11, 3,219, 46, 94,140, 95, 41,101,157,107, 55, 3, 5,152, 76,160,104,242,208,206, 0, 0, 1, 0,147, 0, 0, - 4,100, 5,182, 0, 13, 0, 49, 64, 24, 5, 5, 8, 0, 15, 3, 7, 90, 12, 10, 8, 6, 10, 95, 3, 11, 11, 7, 2, 95, 13, 3, - 7, 18, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 1, 47,198, 51,225, 50, 16,206, 17, 57, 47, 48, 49, 1, 21, 33, 17, 33, 21, 33, - 17, 35, 17, 35, 53, 51, 17, 4,100,253,129, 1, 80,254,176,186,152,152, 5,182,166,254, 21,162,253,125, 2,131,162, 2,145, 0, - 0, 1, 0,135, 0, 0, 4, 14, 4, 74, 0, 13, 0, 49, 64, 24, 11, 11, 0, 6, 15, 9, 13, 71, 4, 2, 0, 12, 2, 79, 9, 3, - 3, 0, 8, 80, 5, 15, 0, 21, 0, 63, 63,225, 18, 57, 47, 51,225, 50, 1, 47,198, 51,225, 50, 16,206, 17, 57, 47, 48, 49, 33, - 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17, 1, 35,156,156, 2,235,253,203, 1, 23,254,233, 1,225,137, 1,224,154,254, -186,137,254, 31, 0, 1, 0,160,254, 0, 4,113, 5,182, 0, 38, 0, 56, 64, 29, 8, 8, 34, 91, 18, 40, 10, 4, 90, 28, 0, 5, - 1, 5, 29, 32, 95, 28, 23, 0, 13, 13, 5, 9, 95, 6, 3, 5, 18, 0, 63, 63,225, 18, 57, 47,193, 47, 51,225, 50, 1, 47, 93, -198,225, 50, 16,222,241,192, 47, 48, 49, 1, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, - 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, 46, 2, 1,213, 37, 60, 26,186, 2,248,253,194, 29, 72, 45,153,240,165, 87, 82,146, -201,118, 49, 78, 68, 60, 32, 63,127, 72, 1,119, 67,123,174, 2,131, 5, 5,253,135, 5,182,166,254, 11, 5, 3, 92,171,242,151, -170,248,162, 79, 6, 12, 19, 12,162, 23, 24, 1,239,121,185,126, 64, 0, 0, 1, 0,215,254, 10, 4, 88, 4, 74, 0, 41, 0, 53, - 64, 28, 27, 27, 16, 72, 37, 43, 29, 23, 70, 5, 0, 24, 1, 24, 19, 81, 32, 32, 24, 28, 80, 25, 15, 24, 21, 11, 81, 0, 0, 47, -225, 63, 63,225, 18, 57, 47,225, 1, 47, 93,198,225, 50, 16,214,241,192, 47, 48, 49, 1, 34, 46, 2, 39, 53, 30, 3, 51, 50, 62, - 2, 53, 52, 38, 35, 34, 6, 7, 17, 35, 17, 33, 21, 33, 17, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 2,127, 41, 65, 55, 49, 26, - 25, 48, 52, 61, 38, 70,110, 77, 40,181,198, 32, 83, 35,180, 2,168,254, 12, 34, 78, 42,125,208,148, 82, 76,129,172,254, 10, 7, - 15, 23, 15,161, 13, 22, 17, 9, 48, 99,153,105,211,203, 6, 6,254, 47, 4, 74,154,254,195, 5, 5, 62,138,219,157,151,214,135, - 63, 0, 0, 1, 0, 0,254,127, 4,205, 5,182, 0, 21, 0,114, 64, 64, 17, 14, 3,250, 11, 8, 16, 4, 1, 4, 4, 7, 21,251, - 20, 20, 15, 47, 16, 63, 16, 2, 16, 16, 1,171, 18, 1,105, 18, 1, 66, 18, 1, 11, 18, 1, 18, 23, 6, 22, 10, 9, 9, 7, 17, - 5, 2, 8, 8, 6, 15, 12, 10, 3, 21, 21, 4, 6, 18, 18, 95, 1, 18, 0, 63,225, 63, 51, 51, 47, 63, 51, 51, 18, 57, 17, 51, - 51, 51, 1, 47, 51, 47, 51, 17, 51, 16,205, 93, 93, 93, 93, 50, 50, 47, 93, 51, 50, 47,225, 17, 57, 47, 93, 51, 51,225, 50, 50, - 49, 48, 33, 35, 1, 17, 35, 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 4, 29, 49,254,182,156,254,176, -182, 1, 96,254,172,178, 1, 72,156, 1, 65,179,254,176, 1, 16,119,176, 2,229,253, 27, 2,229,253, 27, 2,242, 2,196,253, 60, - 2,196,253, 60, 2,196,253, 60,253,180,253,217, 0, 1, 0, 0,254,131, 4,184, 4, 74, 0, 21, 0, 98, 64, 53, 5, 22, 16, 13, - 2, 73, 10, 7, 3, 3, 8, 20, 73, 0, 27, 17, 1, 17, 15,144, 19,160, 19, 2,127, 19, 1, 16, 19, 1, 19, 9, 6, 8, 16, 13, - 7, 10, 10, 8, 19, 19, 22, 14, 11, 8, 15, 17, 80, 0, 0, 3, 6, 0, 47, 51, 51, 16,225, 63, 51, 51, 17, 51, 47, 18, 57, 17, - 51, 51, 51, 1, 47, 50, 50, 47, 93, 93, 93, 51,205, 93, 50,225, 17, 57, 47, 51, 51,225, 50, 50, 17, 51, 49, 48, 33, 1, 17, 35, - 17, 1, 35, 1, 1, 51, 1, 17, 51, 17, 1, 51, 1, 19, 51, 17, 35, 17, 3,223,254,195,160,254,195,195, 1, 90,254,164,184, 1, - 74,160, 1, 74,184,254,166,250,116,161, 2, 45,253,211, 2, 45,253,211, 2, 53, 2, 21,253,235, 2, 21,253,235, 2, 21,253,235, -254,101,253,233, 1,125,255,255, 0,139,254, 66, 4, 47, 5,203, 2, 38, 1,177, 0, 0, 1, 6, 3,127,247, 0, 0, 14,183, 1, - 1, 0, 50, 44, 9, 4, 37, 1, 43, 53, 0, 53,255,255, 0,201,254, 66, 4, 8, 4, 94, 2, 38, 1,209, 0, 0, 1, 6, 3,127, -245, 0, 0, 17,177, 1, 1,184,255,243,180, 47, 41, 8, 18, 37, 1, 43, 53, 0, 53, 0, 0, 1, 0,211,254,127, 4,186, 5,182, - 0, 14, 0,120, 64, 77,135, 14, 1,117, 14, 1, 54, 14, 86, 14, 2, 14, 11, 7, 90, 0, 8, 96, 8,112, 8,128, 8, 4, 8, 12, - 87, 13, 1, 64, 13, 1, 37, 13, 1, 7, 13, 1, 13, 13, 40, 5, 1, 5, 85, 0, 1, 54, 0, 1, 36, 0, 1, 5, 0, 1, 0, 3, -251,127, 2, 1, 2, 6, 14, 14, 7, 12, 10, 3, 5, 7, 3, 3, 0, 7, 18, 0, 63,196, 51, 47, 17, 51, 63, 51, 18, 57, 17, 51, - 1, 47, 93,225,205, 93, 93, 93, 93, 50, 93, 51, 47, 93, 93, 93, 93, 51, 47, 93,225, 50, 50, 93, 93, 93, 49, 48, 37, 51, 17, 35, - 17, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4, 43,143,176, 55,253,186,186,186, 2, 54,206,253,203,166,253,217, 1,129, 2,229, -253, 27, 5,182,253, 60, 2,196,253, 66, 0, 1, 0,215,254,131, 4,156, 4, 74, 0, 14, 0, 77, 64, 44, 7, 8, 8, 0, 10, 13, - 70,128, 12, 1, 12, 9, 6, 2, 71, 0, 3, 16, 3, 32, 3,128, 3,208, 3, 5, 7, 3, 1, 9, 9, 2, 7, 5, 15, 10, 80, 0, - 0, 2, 13, 13, 2, 21, 0, 63, 51, 47, 17, 51, 16,225, 63, 51, 18, 57, 17, 51, 1, 47, 94, 93,225, 50, 50, 47, 93,225,205, 50, - 50, 47, 51, 49, 48, 33, 1, 17, 35, 17, 51, 17, 1, 51, 1, 1, 51, 17, 35, 17, 3,174,253,221,180,180, 2, 6,222,253,241, 1, -158,158,176, 2, 45,253,211, 4, 74,253,235, 2, 21,253,241,254, 95,253,233, 1,125, 0, 0, 1, 0,211, 0, 0, 4,174, 5,182, - 0, 18, 0,139,183, 11, 7, 90, 8, 18, 15, 2, 3,184, 1, 3, 64, 73, 12, 5, 38, 4, 1, 12, 4, 28, 4, 2, 4, 4, 0, 0, - 8, 96, 8,112, 8,128, 8, 4, 8, 16, 17, 17, 1,208, 0,240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, - 0, 2, 18, 18, 5, 6, 17, 3, 15, 12, 16, 11, 16, 11, 6, 6, 9, 8, 4, 13, 4, 13, 9, 3, 8, 0, 18, 0, 63, 50, 63, 57, - 57, 47, 47, 17, 18, 57, 17, 51, 50, 17, 18, 57, 57, 63, 18, 57, 57, 17, 51, 1, 47, 56, 93, 93, 93, 51, 51, 47, 51, 47, 93, 18, - 57, 47, 93, 93, 51, 51,225, 50, 50, 50, 16,225, 50, 48, 49, 33, 35, 1, 21, 35, 17, 7, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, - 51, 1, 4,174,211,254,174,133,119,186,186,119,133, 1, 66,209,253,247, 1,244,205, 1,100, 98,253,215, 5,182,253, 6,164, 1, - 99,179, 1,166,253,101, 0, 1, 0,215, 0, 0, 4,150, 4, 74, 0, 18, 0,127, 64, 75, 13, 10, 17, 73, 7, 22, 18, 1, 12, 18, - 1, 18, 18, 3, 14, 11, 12, 12, 15,164, 14, 1,123, 14,139, 14,155, 14, 3, 0, 14, 96, 14, 2, 14, 16, 14, 6, 2, 71, 0, 3, - 96, 3, 2, 3, 10, 7, 11, 13, 11, 4, 16, 0, 15, 1, 13, 13, 8, 63, 18, 1, 48, 8, 1, 18, 8, 18, 8, 2, 4, 15, 15, 2, - 21, 0, 63, 51, 63, 18, 57, 57, 47, 47, 93, 93, 18, 57, 17, 51, 18, 57, 57, 17, 51, 17, 18, 57, 57, 1, 47, 93,225, 50, 47, 56, - 93, 93, 93, 51, 51, 47, 51, 17, 18, 57, 47, 93, 93, 51,225, 50, 50, 49, 48, 1, 39, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, 51, - 1, 1, 35, 1, 21, 35, 2, 16,133,180,180,133,125, 1, 4,222,253,241, 2, 54,232,254,223,125, 1,166,135,253,211, 4, 74,253, -235,137, 1, 56,185, 1, 13,253,241,253,197, 1, 39,205, 0, 1, 0, 59, 0, 0, 4,174, 5,182, 0, 20, 0,119, 64, 74, 14, 14, - 5, 0, 20, 2, 19, 16, 12, 4, 90, 9, 7, 0, 5, 96, 5,112, 5,128, 5, 4, 5, 72, 18, 88, 18, 2, 18, 19, 19, 1,208, 0, -240, 0, 2,127, 0, 1, 0, 0, 16, 0, 64, 0, 96, 0, 4, 0, 16, 0, 20, 16, 2, 3, 15, 7, 95, 12, 3,159, 8,175, 8, 2, - 8, 8, 18, 10, 3, 5, 0, 18, 0, 63, 50, 63, 51, 57, 47, 93, 57, 51,225, 50, 17, 51, 51, 51, 1, 47, 56, 93, 93, 93, 51, 51, - 47, 51, 93, 47, 93,198, 51,225, 50, 50, 17, 57, 57, 17, 18, 57, 47, 49, 48, 33, 35, 1, 7, 17, 35, 17, 35, 53, 51, 53, 51, 21, - 51, 21, 35, 17, 55, 1, 51, 1, 4,174,211,254, 62,140,186,152,152,186,213,213,121, 1,197,209,253,247, 2,186,114,253,184, 4, - 96,164,178,178,164,254,123,168, 2, 51,253,131, 0, 1, 0, 59, 0, 0, 4,139, 6, 20, 0, 22, 0,122, 64, 73,118, 14,150, 14, - 2,101, 14, 1, 86, 14, 1, 69, 14, 1, 14, 17, 6, 6, 13, 7, 3, 19, 71, 22, 1, 0, 20, 1, 20, 12, 13, 13, 16, 15, 32, 16, - 19, 72, 0, 15, 96, 15, 2, 15, 16, 15, 14, 17, 89, 17, 1, 17,118, 9, 1, 9, 18, 18, 12, 16, 19, 21, 6, 22, 79, 4, 1, 1, - 2, 12, 15, 2, 0, 0, 63, 63, 18, 57, 47, 51,237, 50, 63, 51, 18, 57, 17, 51, 93, 51, 93, 17, 51, 1, 47, 56, 93, 43, 51, 51, - 47, 51, 47, 93, 51,206,225, 50, 50, 17, 57, 47, 57, 57, 93, 93, 93, 93, 49, 48, 19, 51, 53, 51, 21, 33, 21, 33, 17, 3, 51, 55, - 1, 51, 1, 1, 35, 1, 7, 17, 35, 17, 35, 59,156,180, 1,123,254,133, 16, 4,135, 1,139,222,254, 18, 2, 10,213,254, 86,129, -180,156, 5, 94,182,182,137,254,117,254,223,152, 1,137,254, 37,253,145, 1,248, 82,254, 90, 4,213, 0, 0, 1, 0, 23, 0, 0, - 4,174, 5,182, 0, 14, 0, 95,181, 7, 14, 23, 14, 2, 14,184,255,248, 64, 46, 13, 18, 72, 14, 2, 13, 10, 4, 90, 5, 5, 0, - 7, 12, 13, 8, 13, 13, 1, 0, 16, 0, 14, 2,184, 2, 1,169, 2, 1, 88, 2, 1, 2, 10, 3, 3, 5, 12, 7, 95, 8, 3, 5, - 0, 18, 0, 63, 50, 63,225, 51, 18, 57, 17, 51, 51, 93, 93, 93, 17, 51, 1, 47, 56, 51, 51, 47, 56, 51, 47, 18, 57, 47,225, 50, - 17, 57, 57, 43,113, 48, 49, 33, 35, 1, 7, 17, 35, 17, 33, 53, 33, 17, 55, 1, 51, 1, 4,174,203,254,162,137,186,254,213, 1, -229,104, 1,117,195,254,100, 2,184,153,253,225, 5, 18,164,253, 8,170, 2, 78,253,135, 0, 1, 0, 43, 0, 0, 4,203, 4, 74, - 0, 12, 0, 92, 64, 54,167, 0, 1,150, 0, 1, 0, 1, 16, 1, 1, 40, 4, 56, 4, 2, 4, 14, 12, 11,103, 2, 1, 86, 2, 1, - 71, 2, 1, 2, 6, 71, 0, 7, 1, 7, 7, 3, 9, 3, 16, 3, 5, 2, 2, 7, 9, 80, 0, 10, 15, 7, 3, 21, 0, 63, 51, 63, - 51,225, 18, 57, 17, 51, 1, 47, 56, 47, 18, 57, 47, 93,225, 50, 93, 93, 93, 50, 50, 17, 51, 93, 51, 47, 56, 51, 93, 93, 48, 49, - 1, 51, 1, 1, 35, 1, 17, 35, 17, 33, 53, 33, 17, 3,223,197,254, 96, 1,199,207,254, 76,181,254,152, 2, 29, 4, 74,253,241, -253,197, 2, 45,253,211, 3,176,154,253,235, 0, 0, 1, 0,135,254,127, 4,186, 5,182, 0, 15, 0, 78, 64, 47, 12, 8, 90, 0, - 9, 1, 0, 9, 16, 9,240, 9, 3, 8, 9, 13, 5, 90,159, 0,175, 0, 2, 0, 4,251,127, 1,207, 1, 2, 1, 6, 95, 12, 12, - 8, 14, 10, 3, 5, 8, 3, 3, 0, 8, 18, 0, 63,192, 51, 47, 17, 51, 63, 51, 18, 57, 47,225, 1, 47, 93,225,221, 93,225, 50, - 47, 94, 93,113,225, 50, 48, 49, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 10,176,176,186,253,242,187, -187, 2, 14,186,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,160,254,131, 4,156, 4, 74, 0, 15, - 0, 85, 64, 53, 8, 0, 71, 11, 15, 70, 15, 12, 1,239, 12, 1,160, 12,192, 12, 2, 79, 12,111, 12, 2, 12, 7, 3, 71, 0, 4, - 16, 4, 32, 4,208, 4, 4, 7, 4, 1, 80, 7, 7, 9, 6, 15, 11, 80, 0, 0, 3, 14, 14, 3, 21, 0, 63, 51, 47, 17, 51, 16, -225, 63, 51, 57, 47,225, 1, 47, 94, 93,225, 50, 47, 93, 93, 93,113,225,221,225, 50, 48, 49, 33, 17, 33, 17, 35, 17, 51, 17, 33, - 17, 51, 17, 51, 17, 35, 17, 3, 70,254, 16,182,182, 1,240,182,160,176, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, - 1,125, 0, 1, 0,135, 0, 0, 4,182, 5,182, 0, 13, 0, 75, 64, 47, 9, 1, 90, 63, 0, 79, 0,191, 0, 3, 0, 64, 26, 29, - 72, 0,143, 11, 1, 11, 8, 4, 90, 0, 5, 1, 0, 5, 16, 5,240, 5, 3, 8, 5, 3, 95, 8, 8, 0, 13, 10, 6, 3, 5, 0, - 18, 0, 63, 50, 63, 51,192, 18, 57, 47,225, 1, 47, 94, 93,113,225, 50, 47, 93,220, 43, 93,225, 50, 49, 48, 33, 35, 17, 33, 17, - 35, 17, 51, 17, 33, 17, 33, 21, 33, 3,156,187,254, 97,187,187, 1,159, 1,213,254,230, 2,170,253, 86, 5,182,253,152, 2,104, -164, 0, 0, 1, 0,160, 0, 0, 4,182, 4, 74, 0, 13, 0, 59, 64, 34, 9, 1, 71, 0, 79, 11, 1, 11, 8, 4, 71, 0, 5, 16, - 5, 32, 5,208, 5, 4, 7, 5, 3, 80, 8, 8, 0, 13, 10, 6, 15, 5, 0, 21, 0, 63, 50, 63, 51,192, 18, 57, 47,225, 1, 47, - 94, 93,225, 50, 47, 93,220,225, 50, 48, 49, 33, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 35, 3,199,183,254, 70,182,182, - 1,186, 1,166,239, 1,233,254, 23, 4, 74,254, 57, 1,199,154, 0, 1, 0,106,254, 0, 4,156, 5,182, 0, 36, 0, 68, 64, 38, - 16, 16, 0, 29,251, 30, 30, 34, 23,251, 8, 64, 9, 14, 72, 8, 38, 33,251, 48, 34, 1, 34, 26, 3, 3, 33, 32, 95, 35, 3, 30, - 33, 18, 20, 95, 13, 19, 0, 63,225, 63, 51, 63,225, 18, 57, 47,201, 1, 47, 93,225, 16,222, 43,225, 17, 57, 47,241, 50,192, 47, - 49, 48, 1, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 38, 35, 34, 7, 17, 35, 17, - 33, 17, 35, 17, 33, 2,203, 18, 49, 25, 98,141, 91, 43, 51, 94,134, 84, 54, 85, 43, 38, 73, 47,115,100,103,112, 51, 27,166,254, -235,166, 2, 97, 3, 23, 5, 7, 92,171,242,151,170,248,162, 79, 19, 20,162, 16, 21,247,248,243,253, 12,253,137, 5, 18,250,238, - 5,182, 0, 1, 0,127,254, 10, 4,131, 4, 74, 0, 41, 0, 78, 64, 44, 29, 21, 73, 22, 3, 3, 96, 22, 1, 22, 22, 26, 12, 73, - 15, 37, 31, 37, 2, 37, 43, 25, 73, 0, 26, 1, 26, 17, 81, 32, 32, 26, 24, 80, 27, 15, 22, 26, 21, 4, 7, 81, 3, 0, 0, 47, - 50,225, 50, 63, 51, 63,225, 18, 57, 47,225, 1, 47, 93,225, 16,222, 93,225, 17, 57, 47, 93, 51, 47, 16,225, 50, 49, 48, 1, 34, - 38, 39, 53, 22, 22, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 17, 35, 17, 33, 17, 35, 17, 33, 17, 54, 54, 51, 50, 30, 2, - 21, 20, 14, 2, 3, 57, 60, 92, 40, 42, 82, 56, 50, 70, 44, 20, 20, 47, 76, 57, 23, 45, 20,162,254,254,162, 2, 70, 21, 48, 23, - 78,131, 93, 52, 48, 87,121,254, 10, 22, 21,162, 22, 23, 47, 98,153,107,107,156,102, 49, 4, 6,254, 45, 3,176,252, 80, 4, 74, -254, 39, 6, 6, 57,133,221,165,155,215,133, 60, 0, 2, 0, 84,255,172, 4,162, 5,205, 0, 65, 0, 83, 0,107, 64, 61, 51, 18, - 5, 79, 79, 0, 76, 91, 16, 56, 32, 56, 2, 56, 56, 26, 35, 34, 34, 66, 91, 0, 0, 11, 11, 85, 43, 91, 31, 26, 47, 26, 2, 26, - 71, 96,112, 61,128, 61, 2, 61, 61, 38, 95, 31, 4, 79, 51, 48, 95, 21, 11, 8, 95, 12, 15, 18, 5, 21, 19, 0, 63, 51, 51,220, - 50,225, 50, 16,225, 50, 50, 63,241,202, 47, 93,225, 1, 47, 93,225, 17, 51, 47, 51, 47,225, 50, 47, 51, 17, 57, 47,113,225, 18, - 57, 17, 51, 51, 51, 49, 48, 1, 20, 14, 2, 7, 22, 22, 51, 50, 54, 55, 21, 6, 6, 35, 34, 38, 39, 6, 6, 35, 34, 38, 38, 2, - 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 54, 55, 46, 3, 53, 52, 62, 2, 51, 50, - 30, 2, 7, 52, 46, 2, 35, 34, 14, 2, 21, 20, 22, 23, 62, 3, 4,123, 31, 54, 71, 39, 23, 55, 35, 31, 59, 31, 29, 68, 32, 69, -131, 62, 41, 85, 59,126,196,134, 70, 69,134,196,127, 50, 93, 38, 56, 28, 61, 34, 81,124, 84, 42, 46, 88,126, 80, 20, 19, 16, 37, - 56, 38, 19, 41, 80,115, 74, 74,115, 80, 42,197, 11, 27, 44, 32, 32, 44, 26, 11, 56, 48, 30, 46, 31, 16, 2,190,106,184,151,115, - 37, 13, 10, 14, 11,170, 13, 12, 44, 52, 17, 15, 95,188, 1, 21,183,193, 1, 30,189, 94, 20, 15,154, 11, 14, 68,145,227,158,157, -221,139, 63, 3, 4, 54,117,132,149, 86,132,192,124, 60, 55,118,188,143, 86,132, 89, 45, 52, 96,136, 84,144,228, 79, 33,101,124, -139, 0, 0, 2, 0,115,255,197, 4,115, 4, 94, 0, 15, 0, 80, 0,137, 64, 57, 72, 52, 19, 5, 5, 67, 87, 0, 1, 0, 72, 32, - 57, 1, 89, 57, 1, 72, 57, 1, 57, 57, 27, 36, 35, 35, 8, 72, 67, 78, 78, 15, 67, 1, 67, 82, 44, 72, 0, 27, 16, 27, 2, 27, - 13, 78, 80, 62, 1,144, 62,160, 62,176, 62, 3, 62,184,255,192, 64, 23, 9, 12, 72, 62, 62, 49, 36, 39, 80, 35, 32, 16, 5, 49, - 80, 22, 72, 74, 80, 16, 19, 22, 22, 0, 63, 51,212,225, 50, 16,225, 50, 63, 51,225, 50, 18, 57, 47, 43, 93,113,225, 1, 47, 93, -225, 16,206, 93, 50, 47, 16,225, 50, 47, 51, 17, 57, 47, 93, 93,113,225, 93, 18, 57, 17, 51, 51, 51, 49, 48, 1, 20, 30, 2, 23, - 54, 54, 53, 52, 46, 2, 35, 34, 6, 1, 34, 38, 39, 6, 6, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, - 14, 2, 21, 20, 30, 2, 51, 50, 50, 55, 46, 3, 53, 52, 62, 2, 51, 50, 30, 2, 21, 20, 14, 2, 7, 22, 51, 50, 54, 55, 21, 6, - 6, 2,172, 19, 33, 43, 24, 57, 66, 13, 29, 44, 31, 62, 63, 1, 82, 65,124, 57, 38, 83, 47,111,182,129, 71, 67,127,185,118, 57, - 79, 32, 45, 25, 56, 42, 81,117, 75, 36, 39, 77,115, 76, 10, 10, 9, 34, 52, 36, 19, 48, 84,114, 65, 65,110, 82, 46, 27, 48, 64, - 37, 39, 53, 26, 57, 28, 23, 63, 1,244, 52, 91, 77, 64, 26, 45,160,107, 51, 84, 58, 32,122,253,104, 30, 37, 14, 14, 76,145,209, -133,129,212,151, 83, 15, 11,146, 8, 13, 56,108,159,103, 97,152,105, 56, 2, 39, 80, 90,103, 61, 94,136, 89, 43, 39, 86,138, 99, - 70,119, 99, 79, 30, 19, 6, 8,147, 9, 7, 0,255,255, 0,129,254, 66, 4,156, 5,203, 2, 38, 0, 38, 0, 0, 1, 7, 3,127, - 0,158, 0, 0, 0, 14,183, 1, 1,118, 36, 30, 6, 11, 37, 1, 43, 53, 0, 53,255,255, 0,172,254, 66, 4, 37, 4, 94, 2, 38, - 0, 70, 0, 0, 1, 6, 3,127, 55, 0, 0, 14,183, 1, 1, 53, 34, 28, 15, 0, 37, 1, 43, 53, 0, 53, 0, 1, 0,102,254,127, - 4,100, 5,182, 0, 11, 0, 74, 64, 44, 10,251, 11, 1, 6, 6, 8, 90, 3,208, 1, 1,162, 1, 1,147, 1, 1, 3,142, 1, 1, - 4, 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 7, 3, 95, 4, 3, 11, 11, 8, 95, 1, 18, 0, 63,225, 51, 47, 63,225, 50, 1, 47, - 93, 95, 93, 95, 93, 95, 93, 93, 93,198,241,194, 47, 16,222,225, 48, 49, 33, 35, 17, 33, 53, 33, 21, 33, 17, 51, 17, 35, 2,195, -187,254, 94, 3,254,254, 95,176,176, 5, 18,164,164,251,148,253,217, 0, 0, 1, 0,121,254,131, 4, 82, 4, 74, 0, 11, 0, 54, - 64, 32, 9, 71, 10, 0, 5, 5, 7, 71, 2, 16, 0, 80, 0,144, 0,160, 0,208, 0, 5, 0, 6, 2, 80, 3, 15, 10, 10, 7, 80, - 0, 21, 0, 63,225, 51, 47, 63,225, 50, 1, 47, 93,206,241,202, 47, 16,222,225, 49, 48, 33, 17, 33, 53, 33, 21, 33, 17, 51, 17, - 35, 17, 2, 10,254,111, 3,217,254,111,159,182, 3,176,154,154,252,234,253,233, 1,125,255,255, 0, 33, 0, 0, 4,170, 5,182, - 2, 6, 0, 60, 0, 0, 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 19, 0, 99, 64, 62, 55, 4, 71, 4, 2, 38, 4, 1, 4,141, - 3, 1, 3, 1, 72, 17, 1, 41, 17, 1, 17,207, 18, 1, 18, 18, 10, 0, 71,208, 1, 1,160, 1, 1,147, 1, 1, 3,123, 1, 1, - 99, 1, 1, 5, 16, 1, 80, 1, 2, 1, 19, 10, 2, 2, 1, 17, 3, 15, 1, 27, 0, 63, 63, 51, 18, 57, 17, 51, 51, 1, 47, 93, - 95, 93, 93, 95, 93, 93, 93,241, 57,202, 47, 93, 50, 93, 93, 16,206, 93, 50, 93, 93, 49, 48, 1, 35, 17, 1, 51, 19, 30, 3, 23, - 51, 62, 3, 55, 19, 51, 1, 2,193,183,254, 72,190,238, 12, 31, 28, 24, 5, 6, 6, 23, 29, 31, 12,239,189,254, 72,254, 20, 1, -236, 4, 74,253,145, 32, 90, 93, 86, 29, 29, 86, 93, 90, 32, 2,111,251,182, 0, 0, 1, 0, 33, 0, 0, 4,170, 5,182, 0, 16, - 0,202,185, 0, 16,255,248, 64, 36, 13, 16, 72, 38, 16, 54, 16, 2, 23, 16, 1,104, 1,120, 1, 2, 90, 1, 1, 72, 1, 1, 41, - 1, 57, 1, 2, 24, 1, 1, 39, 0,183, 0, 2, 0,184,255,248,179, 13, 17, 72, 16,184,255,248, 64, 84, 20, 24, 72, 16,175, 15, -255, 15, 2, 89, 15, 1, 15, 9, 1, 8, 20, 24, 72, 1,224, 2,240, 2, 2,123, 2, 1, 80, 2, 1, 2, 2, 8, 0, 9, 8, 6, - 6, 4, 8, 90, 13, 11,208, 9, 1,162, 9, 1,147, 9, 1, 3,142, 9, 1, 4, 99, 9, 1, 5, 16, 9, 80, 9, 2, 9, 3, 0, - 14, 14, 7, 11, 95, 4, 12, 12, 1, 8, 18, 15, 1, 3, 0, 63, 51, 63, 18, 57, 47, 51,225, 50, 51, 17, 51, 51, 1, 47, 93, 95, - 93, 95, 93, 95, 93, 93, 93,206, 51,241, 50,202, 47, 17, 18, 57, 16,200, 47, 93, 93, 93, 50, 43, 16,204, 93, 93, 50, 43, 48, 49, - 0, 43, 93, 1, 93, 93, 93, 93, 93, 93, 93, 43, 1, 1, 51, 1, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 1, 51, 2,100, 1, -125,201,254, 25, 1, 38,254,218,187,254,217, 1, 39,254, 25,203, 2,211, 2,227,252,131, 61,164,254,168, 1, 88,164, 51, 3,135, - 0, 1, 0, 82,254, 20, 4,121, 4, 74, 0, 25, 0,136, 64, 11,135, 10,151, 10,167, 10, 3,118, 10, 1, 10,184,255,248, 64, 71, - 11, 15, 72, 10, 9, 4,168, 23, 1,121, 23, 1, 23, 8, 11, 15, 72, 23,207, 24, 1, 24, 24, 3, 16, 4, 25, 3, 1, 1, 3, 71, - 8, 6,208, 4, 1,162, 4, 1,147, 4, 1, 3,142, 4, 1, 4, 99, 4, 1, 5, 16, 4, 80, 4, 2, 4, 2, 6, 79, 25, 16, 7, - 7, 3, 23, 9, 15, 3, 27, 0, 63, 63, 51, 18, 57, 47, 51, 51,225, 50, 1, 47, 93, 95, 93, 95, 93, 95, 93, 93, 93,206, 51,241, -202, 47, 17, 51, 18, 57, 16,200, 47, 93, 50, 43, 93, 93, 16,204, 50, 43, 93, 93, 48, 49, 33, 21, 33, 17, 35, 17, 33, 53, 33, 1, - 51, 19, 30, 3, 23, 51, 62, 3, 55, 19, 51, 1, 3,203,254,246,183,254,246, 1, 10,254, 72,190,238, 12, 31, 28, 24, 5, 6, 6, - 23, 29, 31, 12,239,189,254, 72,137,254,157, 1, 99,137, 4, 74,253,145, 32, 90, 93, 86, 29, 29, 86, 93, 90, 32, 2,111,251,182, - 0, 1, 0, 53,254,127, 4,186, 5,182, 0, 15, 0,160, 64, 21, 71, 15, 87, 15,167, 15, 3, 15, 72, 9,104, 9,120, 9, 3, 9, - 6, 12, 12, 14, 11,184,255,248, 64, 14, 12, 15, 72, 6, 11, 22, 11, 38, 11, 3, 11, 10, 10, 7,184,255,248, 64, 64, 12, 15, 72, - 6, 7, 22, 7, 38, 7, 3, 7, 8, 13, 8, 12, 15, 72, 9, 13, 25, 13, 41, 13, 3, 13, 14, 14, 1, 5, 8, 12, 15, 72, 9, 5, - 25, 5, 41, 5, 3, 5, 0, 0, 4,251, 1, 15, 12, 6, 9, 9, 7, 13, 10, 3, 0, 95, 5, 5, 7, 3, 3, 7, 18, 0, 63, 51, - 47, 17, 51, 16,225, 63, 51, 18, 57, 17, 51, 51, 51, 1, 47,225, 51, 17, 51, 93, 43, 17, 51, 47, 51, 93, 43, 47, 51, 93, 43, 51, - 47, 51, 93, 43, 18, 57, 17, 51, 51, 93, 51, 93, 48, 49, 37, 51, 17, 35, 17, 35, 1, 1, 35, 1, 1, 51, 1, 1, 51, 1, 4, 51, -135,176, 71,254,157,254,146,189, 1,197,254, 90,199, 1, 75, 1, 78,191,254, 90,166,253,217, 1,129, 2,123,253,133, 2,252, 2, -186,253,209, 2, 47,253, 76, 0, 0, 1, 0, 96,254,131, 4,156, 4, 74, 0, 15, 0,189,183,196, 14,212, 14,228, 14, 3, 14,184, -255,240, 64, 36, 11, 14, 72,203, 12,219, 12,235, 12, 3, 12, 16, 11, 14, 72,203, 4,219, 4,235, 4, 3, 4, 16, 11, 14, 72,196, - 2,212, 2,228, 2, 3, 6, 2,184,255,240, 64, 20, 11, 14, 72, 73, 13, 1, 13, 16, 18, 23, 72, 10, 13, 26, 13, 2, 70, 3, 1, - 3,184,255,240, 64, 51, 18, 23, 72, 5, 3, 21, 3, 2, 13, 6, 0, 3, 3, 5, 2, 1, 1, 14, 31, 15, 1, 15, 12, 7, 7, 8, - 4, 5, 5, 11, 70, 8, 7, 80, 12, 12, 14, 13, 6, 3, 0, 0, 1, 14, 10, 10, 14, 21, 4, 1, 15, 0, 63, 51, 63, 51, 47, 17, - 18, 57, 17, 51, 51, 51, 17, 51, 16,225, 1, 47,225, 51, 47, 51, 17, 51, 17, 51, 47, 93, 51, 51, 47, 51, 18, 57, 17, 51, 51, 51, - 48, 49, 0, 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 1, 1, 51, 1, 1, 51, 1, 1, 51, 17, 35, 17, 35, - 1, 1, 35, 1,254,254,119,207, 1, 34, 1, 35,207,254,117, 1, 45,162,176, 80,254,202,254,201,207, 2, 51, 2, 23,254,102, 1, -154,253,233,254,103,253,233, 1,125, 1,180,254, 76, 0, 0, 1, 0, 23,254,127, 4,186, 5,182, 0, 15, 0, 57, 64, 31, 0, 14, - 48, 14, 2, 14, 14, 15, 90, 11, 10, 1, 90, 4, 7,251, 6, 15, 10, 95, 2, 12, 3, 4, 0, 95, 9, 7, 7, 9, 18, 0, 63, 51, - 47, 16,225, 50, 63, 51,225, 50, 1, 47,225,221,225, 47,205,241,201, 47, 93, 48, 49, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33, 17, - 35, 53, 33, 21, 35, 1,188, 1,148,186,176,176,252,248,235, 2,145,236,166, 5, 16,250,240,253,217, 1,129, 5, 18,164,164, 0, - 0, 1, 0, 20,254,131, 4,156, 4, 74, 0, 15, 0, 63, 64, 36, 11, 71, 13, 2, 70,160, 15,176, 15, 2, 15, 64, 8, 1, 1, 8, - 1, 8, 8, 10, 71, 5, 3, 12, 4, 80, 6, 15, 14, 10, 80, 3, 1, 1, 3, 21, 0, 63, 51, 47, 16,225, 50, 63,225, 51, 1, 47, -206,241,202, 47, 93, 93, 47, 93,225,222,225, 48, 49, 1, 35, 17, 33, 17, 35, 53, 33, 21, 35, 17, 33, 17, 51, 17, 51, 4,156,176, -253, 6,222, 2,121,229, 1,158,182,160,254,131, 1,125, 3,176,154,154,252,234, 3,176,252, 80, 0, 1, 0,135,254,127, 4,186, - 5,182, 0, 25, 0, 61, 64, 34, 15, 90, 0, 12, 1, 12, 23, 5, 90, 0, 3,251,127, 2,207, 2, 2, 2, 23, 20, 95, 6, 9, 9, - 24, 13, 3, 0, 95, 5, 3, 3, 5, 18, 0, 63, 51, 47, 16,225, 63, 51, 57, 47, 51,225, 50, 1, 47, 93,225,221,225, 50, 47, 93, -225, 48, 49, 37, 51, 17, 35, 17, 35, 17, 6, 6, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 50, 54, 55, 17, 51, 4, 10,176,176, -186, 81,169, 84,187,192,187, 20, 50, 82, 61, 77,152, 84,186,166,253,217, 1,129, 2, 63, 29, 38,191,180, 2, 71,253,209, 57, 87, - 58, 29, 31, 28, 2,219, 0, 1, 0,152,254,131, 4,156, 4, 74, 0, 27, 0, 65, 64, 37, 20, 1, 71, 23, 27, 70,160, 24, 1, 47, - 24, 1, 24, 14, 71, 0, 11,192, 11, 2, 11, 20, 17, 80, 1, 6, 6, 0, 21, 12, 15, 26, 26, 23, 80, 0, 21, 0, 63,225, 51, 47, - 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93,225, 47, 93, 93,225,221,225, 50, 48, 49, 33, 17, 14, 3, 35, 34, 46, 2, 53, 17, 51, - 17, 20, 22, 51, 50, 54, 55, 17, 51, 17, 51, 17, 35, 17, 3, 70, 39, 78, 82, 90, 51, 82,129, 88, 47,182,105,100, 78,148, 73,182, -160,176, 1,207, 25, 37, 26, 13, 47, 84,115, 68, 1,166,254,102, 88, 86, 45, 43, 1,240,252, 80,253,233, 1,125, 0, 1, 0,135, - 0, 0, 4, 70, 5,182, 0, 29, 0, 81,177, 24, 6,184, 1, 3, 64, 38, 22, 7, 7, 12, 27, 1, 90, 0, 31, 15, 90, 0, 12, 16, - 12, 2, 12, 27, 24, 22, 22, 20, 95, 9, 8, 9, 7, 7, 5, 2, 9, 9, 1, 28, 13, 3, 1, 18, 0, 63, 63, 51, 18, 57, 47, 51, - 51, 51, 47, 17, 51, 16,237, 50, 47, 50, 50, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 51,225, 50, 49, 48, 33, 35, 17, 6, 6, - 7, 17, 35, 17, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 51, 17, 51, 17, 54, 54, 55, 17, 51, 4, 70,187, 65,109, 53,133, 33, -187,192,187, 20, 50, 82, 61, 12,133, 51,113, 63,187, 2, 86, 25, 36, 11,254,199, 1, 39,191,180, 2, 71,253,209, 57, 87, 58, 29, - 1, 88,254,180, 9, 36, 23, 2,198, 0, 0, 1, 0,152, 0, 0, 4, 37, 4, 74, 0, 28, 0, 95, 64, 55, 8, 19, 73, 6, 64, 20, - 80, 20,112, 20,128, 20, 4, 20, 20, 27, 10, 14, 71, 13, 30, 1, 71, 0, 27, 16, 27, 2, 27, 21, 22, 20, 20, 18, 15, 4, 80, 22, - 22, 14, 11, 28, 15, 14, 21, 10, 8, 5, 15, 6, 1, 6, 6, 5, 21, 0, 63, 51, 47, 93, 17, 51, 51, 63, 63, 51, 18, 57, 47,225, - 51, 51, 51, 47, 17, 51, 1, 47, 93,225, 16,222,225, 50, 17, 57, 47, 93, 51,225, 50, 48, 49, 1, 17, 20, 22, 51, 51, 17, 51, 17, - 54, 55, 17, 51, 17, 35, 17, 6, 6, 7, 21, 35, 53, 35, 34, 46, 2, 53, 17, 1, 78,105,100, 6,125,104,105,182,182, 53,101, 55, -125, 47, 82,129, 88, 47, 4, 74,254,102, 88, 86, 1, 45,254,227, 29, 70, 1,213,251,182, 1,233, 37, 51, 16,254,231, 47, 84,115, - 68, 1,166, 0, 0, 1, 0,135, 0, 0, 4, 70, 5,182, 0, 19, 0, 43, 64, 22, 10, 90, 9, 21, 2, 18, 90, 0, 19, 1, 19, 17, - 14, 95, 2, 5, 5, 19, 9, 18, 0, 3, 0, 63, 63, 51, 57, 47, 51,225, 50, 1, 47, 93,225, 50, 16,222,225, 48, 49, 19, 51, 17, - 54, 54, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 7, 17, 35,135,187,110,188, 95,183,196,187,100,117, 86,175,107,187, 5, -182,253,170, 45, 45,188,182,253,184, 2, 47,116,116, 40, 40,253, 57, 0, 0, 1, 0,168, 0, 0, 4, 53, 4, 74, 0, 23, 0, 59, - 64, 36, 0, 71,176, 23,192, 23, 2, 23, 25, 12, 8, 71, 0, 9, 16, 9, 32, 9,192, 9,208, 9, 5, 7, 9, 7, 4, 80, 12, 17, - 17, 10, 15, 9, 0, 21, 0, 63, 50, 63, 57, 47, 51,225, 50, 1, 47, 94, 93,225, 50, 16,222, 93,225, 48, 49, 33, 17, 52, 38, 35, - 34, 6, 7, 17, 35, 17, 51, 17, 62, 3, 51, 50, 30, 2, 21, 17, 3,127,105,100, 90,166, 84,182,182, 44, 87, 92,101, 57, 82,129, - 88, 47, 1,154, 88, 86, 58, 57,254, 43, 4, 74,254, 22, 31, 47, 32, 17, 47, 83,115, 68,254, 90, 0, 2,255,248,255,236, 4,123, - 5,205, 0, 45, 0, 56, 0, 84, 64, 47, 52, 91, 5, 18, 18, 5, 58, 35,134, 38, 1,103, 38,119, 38, 2, 38,251, 31, 51, 7, 91, - 40, 31, 28, 1, 28, 34, 31, 28, 7, 96, 51, 34, 40, 40, 0, 17, 12, 95, 18, 23, 19, 46, 95, 0, 4, 0, 63,225, 63, 51,225, 50, - 17, 57, 47,204, 51,225, 50, 1, 47, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 48, 49, 1, 50, 22, 22, - 18, 21, 21, 33, 30, 3, 51, 50, 62, 2, 55, 21, 14, 3, 35, 34, 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 51, 51, - 62, 3, 23, 34, 14, 2, 7, 33, 52, 46, 2, 2,221,125,160, 93, 36,253, 96, 5, 36, 75,120, 90, 47, 79, 71, 65, 33, 33, 65, 76, - 92, 60,126,179,118, 60, 8,144,143, 17, 11,156, 6, 14,102, 21, 11, 60,109,162,110, 64, 92, 62, 33, 5, 1,223, 16, 48, 87, 5, -205,101,189,254,241,170, 90,122,194,134, 71, 12, 20, 28, 16,170, 15, 26, 18, 10, 93,177,254,160, 3,114,122, 42, 66, 23, 15, 62, - 35, 97,154,244,171, 91,164, 65,126,185,120,117,184,128, 67, 0, 0, 2,255,213,255,236, 4, 88, 4, 94, 0, 44, 0, 53, 0, 94, - 64, 56, 49, 72, 30, 40, 40, 30, 55, 12,149, 15, 1,102, 15,118, 15,134, 15, 3, 15, 73, 8, 48, 31, 72, 19, 31, 5, 47, 5, 2, - 5, 11, 8, 64, 24, 27, 72, 8, 5, 31, 80, 48, 11, 18, 18, 34, 45, 80, 24, 16, 39, 34, 81, 40, 0, 22, 0, 63, 50,225, 50, 63, -225, 18, 57, 47,204, 51,225, 50, 1, 47, 43, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 48, 49, 5, 34, - 46, 2, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, 21, 20, 22, 51, 51, 62, 3, 51, 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, - 55, 21, 14, 3, 3, 34, 6, 7, 33, 52, 46, 2, 2,215,108,178,131, 75, 4,133,141, 17, 10,149, 6, 14, 48, 50, 27, 14, 75,117, -152, 90, 99,158,110, 59,253, 76, 5,152,152, 51, 87, 80, 77, 39, 40, 77, 81, 87, 96,115,132, 11, 1,235, 27, 56, 88, 20, 70,136, -199,129, 2,111,114, 39, 63, 21, 14, 58, 34, 47, 49,108,170,117, 61, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 19, 28, 18, - 8, 3,219,156,149, 68,113, 80, 44, 0, 0, 2,255,248,254,127, 4,123, 5,205, 0, 48, 0, 59, 0,103, 64, 57, 24,251, 25, 25, - 31, 55, 91, 5, 18, 18, 5, 61, 38,134, 41, 1,103, 41,119, 41, 2, 41,251, 34, 54, 7, 91, 44, 31, 31, 1, 31, 37, 34, 31, 7, - 96, 54, 37, 43, 43, 0, 17, 12, 95, 23, 26, 23, 24, 24, 18, 23, 19, 49, 95, 0, 4, 0, 63,225, 63, 51, 51, 47, 17, 51, 16,225, - 50, 17, 57, 47,204, 51,225, 50, 1, 47, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 18, 57, 47,225, 48, - 49, 1, 50, 22, 22, 18, 21, 21, 33, 30, 3, 51, 50, 62, 2, 55, 21, 14, 3, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, - 51, 6, 6, 21, 20, 51, 51, 62, 3, 23, 34, 14, 2, 7, 33, 52, 46, 2, 2,221,125,160, 93, 36,253, 96, 5, 36, 75,120, 90, 47, - 79, 71, 65, 33, 30, 59, 67, 78, 49,176, 90,130, 86, 46, 6,144,143, 17, 11,156, 6, 14,102, 21, 11, 60,109,162,110, 64, 92, 62, - 33, 5, 1,223, 16, 48, 87, 5,205,101,189,254,241,170, 90,122,194,134, 71, 12, 20, 28, 16,170, 14, 23, 18, 12, 2,254,147, 1, -125, 23,111,170,226,138, 3,114,122, 42, 66, 23, 15, 62, 35, 97,154,244,171, 91,164, 65,126,185,120,117,184,128, 67, 0, 0, 2, -255,213,254,131, 4, 88, 4, 94, 0, 45, 0, 54, 0,113, 64, 66, 20, 70, 21, 21, 27, 50, 72, 6, 16, 16, 6, 56, 34,149, 37, 1, -102, 37,118, 37,134, 37, 3, 37, 73, 30, 49, 7, 72, 41, 31, 27, 47, 27, 2, 27, 33, 30, 64, 24, 27, 72, 30, 27, 7, 80, 49, 33, - 40, 40, 0, 15, 10, 81, 19, 22, 19, 20, 20, 16, 19, 22, 46, 80, 0, 16, 0, 63,225, 63, 51, 51, 47, 17, 51, 16,225, 50, 17, 57, - 47,204, 51,225, 50, 1, 47, 43, 51,221, 93, 50,225, 50, 16,225, 93, 93, 50, 16,206, 50, 47, 16,225, 18, 57, 47,225, 49, 48, 1, - 50, 30, 2, 21, 21, 33, 22, 22, 51, 50, 62, 2, 55, 21, 6, 6, 7, 17, 35, 17, 46, 3, 39, 38, 38, 53, 52, 54, 55, 51, 6, 6, - 21, 20, 22, 51, 51, 62, 3, 23, 34, 6, 7, 33, 52, 46, 2, 2,174, 99,158,110, 59,253, 76, 5,152,152, 51, 87, 80, 77, 39, 66, -133, 78,176, 84,136, 99, 57, 3,133,141, 17, 10,149, 6, 14, 48, 50, 27, 14, 75,117,152, 86,115,132, 11, 1,235, 27, 56, 88, 4, - 94, 71,129,181,110,113,193,182, 10, 19, 29, 18,162, 32, 34, 5,254,149, 1,117, 17, 84,132,178,111, 2,111,114, 39, 63, 21, 14, - 58, 34, 47, 49,108,170,117, 61,151,156,149, 68,113, 80, 44, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, 0, 44, 0, 0, -255,255, 0, 0, 0, 0, 4,205, 7,105, 2, 38, 1,176, 0, 0, 1, 7, 2, 54, 0, 0, 1, 82, 0, 19, 64, 11, 1, 20, 5, 38, - 1, 0, 23, 18, 17, 10, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 0, 0, 0, 4,205, 6, 23, 2, 38, 1,208, 0, 0, 1, 6, - 2, 54, 0, 0, 0, 19, 64, 11, 1, 20, 17, 38, 1, 0, 23, 18, 16, 5, 37, 1, 43, 53, 0, 43, 53, 0, 0, 1, 0,135,254, 0, - 4, 88, 5,182, 0, 37, 0, 88, 64, 49,134, 11, 1, 23, 11, 55, 11,103, 11, 3,119, 8, 1, 9, 10, 10, 33, 91, 17, 39, 11, 8, - 4, 90, 5, 27, 27, 0, 5, 1, 5, 8, 11, 97, 3, 0, 0, 4, 9, 6, 3, 28, 31, 95, 27, 22, 22, 4, 18, 0, 63, 51, 47, 51, -225, 50, 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 47, 16,225, 50, 50, 16,222,225, 51, 47, 51, 48, 49, 0, 93, 1, 93, 93, - 1, 34, 6, 7, 17, 35, 17, 51, 17, 1, 51, 1, 51, 50, 30, 2, 21, 20, 14, 2, 35, 34, 46, 2, 39, 53, 22, 22, 51, 32, 17, 52, - 46, 2, 1,240, 57, 82, 35,187,187, 2, 53,207,253,209, 6,127,210,151, 83, 82,146,200,119, 49, 78, 68, 60, 31, 63,126, 73, 1, -118, 69,115,152, 2,125, 15, 14,253,160, 5,182,253, 60, 2,196,253, 88, 81,161,237,156,170,248,162, 79, 6, 12, 19, 12,162, 23, - 24, 1,239,129,186,119, 56, 0, 0, 1, 0,215,254, 10, 4, 88, 4, 74, 0, 34, 0, 85, 64, 48, 34, 16, 25, 33, 1, 33, 34, 34, - 20, 72, 5, 36, 32, 22, 0, 54, 0, 70, 0, 3, 0, 28, 70, 29, 13, 13, 0, 29, 1, 29, 32, 0, 78, 27, 25, 25, 29, 33, 30, 15, - 14, 17, 81, 13, 10, 10, 29, 21, 0, 63, 51, 47, 51,225, 50, 63, 51, 18, 57, 47, 51,225, 50, 1, 47, 93, 51, 47, 16,225, 50, 93, - 50, 16,222,225, 51, 47, 51, 93, 56, 48, 49, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 52, 46, 2, - 35, 34, 7, 17, 35, 17, 51, 17, 1, 51, 2,106,100,180,135, 79, 74,129,176,102, 76,105, 47, 44,105, 66,149,157, 52, 97,137, 85, - 83, 75,180,180, 1,228,215, 2, 98, 2, 61,130,207,149,150,213,136, 64, 31, 29,161, 24, 37,195,210,106,152, 98, 46, 29,254, 76, - 4, 74,254, 6, 1,250, 0, 1, 0, 4,254,127, 4,203, 5,182, 0, 35, 0, 75, 64, 42, 12, 20, 7,250, 29, 20, 0, 34,144, 34, -160, 34, 3, 34, 34, 5, 20, 3, 91, 2, 1, 5, 90, 0, 4, 1, 7, 95, 34, 3, 21, 24, 97, 20, 17, 19, 3, 3, 0, 95, 5, 18, - 0, 63,225, 51, 47, 63, 51,225, 50, 63,225, 1, 47, 51,221,225, 16,221,225, 47, 18, 57, 47, 93, 18, 57,225, 17, 57, 48, 49, 37, - 51, 3, 35, 19, 35, 17, 35, 14, 3, 7, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 4, 8, -195,144,217,166,186,236, 14, 32, 33, 34, 16, 20, 53, 79,110, 78, 35, 74, 28, 22, 59, 32, 48, 64, 42, 26, 10, 11, 33, 39, 43, 22, - 2, 65,166,253,217, 1,129, 5, 18,113,244,236,212, 81,103,162,111, 59, 14, 11,150, 10, 15, 63, 98,117, 54, 57,200, 1, 6, 1, - 58,170, 0, 1, 0, 31,254,131, 4,174, 4, 74, 0, 24, 0, 63, 64, 33, 9, 15, 7, 73, 20, 15, 23, 23, 5, 15, 3, 71, 2, 1, - 5, 71, 0, 4, 1, 7, 80, 23, 15, 18, 79, 12, 22, 3, 3, 0, 80, 5, 21, 0, 63,225, 51, 47, 63,225, 63,225, 1, 47, 51,221, -225, 16,221,225, 47, 18, 57, 47, 18, 57,225, 17, 57, 48, 49, 37, 51, 3, 35, 19, 35, 17, 33, 2, 2, 6, 6, 35, 34, 38, 39, 53, - 22, 51, 50, 54, 54, 18, 55, 33, 3,248,182,123,182,123,182,254,196, 20, 64, 95,130, 86, 28, 49, 15, 21, 28, 55, 89, 69, 51, 18, - 2,142,154,253,233, 1,125, 3,176,254,253,254,148,230,105, 6, 6,131, 6,117,241, 1,111,250, 0, 1, 0,135,254, 0, 4, 70, - 5,182, 0, 27, 0, 78, 64, 46, 20, 12, 90, 23, 29, 19, 15, 90, 16, 5, 5, 16, 16, 32, 16, 2, 32, 16, 48, 16, 2, 16, 14, 95, -152, 19, 1, 15, 19, 47, 19, 2, 6, 19, 19, 16, 21, 17, 3, 16, 18, 6, 9, 95, 5, 0, 0, 47, 50,225, 50, 63, 63, 51, 18, 57, - 47, 94, 93, 93,225, 1, 47, 93,113, 51, 47, 16,225, 50, 16,222,225, 50, 48, 49, 1, 34, 46, 2, 39, 53, 22, 22, 51, 50, 54, 53, - 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2, 88, 45, 71, 61, 54, 29, 56,110, 63,164,174,253,183,187,187, 2, 73, -187, 74,132,181,254, 0, 6, 12, 19, 12,162, 23, 24,240,247, 2, 31,253, 86, 5,182,253,152, 2,104,250,221,170,248,162, 79, 0, - 0, 1, 0,160,254, 10, 4, 45, 4, 74, 0, 27, 0, 72, 64, 42, 20, 12, 71,176, 23,192, 23, 2, 23, 29, 19, 15, 71, 16, 3, 3, - 0, 16, 16, 16, 32, 16,208, 16, 4, 7, 16, 14, 80, 19, 19, 16, 21, 17, 15, 16, 21, 4, 7, 81, 3, 0, 0, 47, 50,225, 50, 63, - 63, 51, 18, 57, 47,225, 1, 47, 94, 93, 51, 47, 16,225, 50, 16,222, 93,225, 50, 48, 49, 1, 34, 38, 39, 53, 22, 22, 51, 50, 62, - 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20, 14, 2, 2,145, 75,105, 47, 43,106, 66, 59, 91, 61, 31,253,223,182,182, - 2, 33,182, 63,111,151,254, 10, 31, 29,161, 24, 37, 45, 97,150,105, 1,178,254, 23, 4, 74,254, 57, 1,199,251,243,150,213,136, - 64, 0, 0, 1, 0,135,254,127, 4,203, 5,182, 0, 15, 0, 84, 64, 49, 12, 8, 90, 16, 9, 32, 9, 2, 32, 9, 48, 9, 2, 9, - 3, 91, 2, 1, 13, 5, 90, 0, 4, 1, 6, 95,152, 12, 1, 15, 12, 47, 12, 2, 6, 12, 12, 9, 14, 10, 3, 0, 5, 5, 9, 3, - 3, 9, 18, 0, 63, 51, 47, 17, 51, 16,205, 63, 51, 18, 57, 47, 94, 93, 93,225, 1, 47, 51,221,225, 50, 16,221,225, 47, 93,113, -225, 50, 48, 49, 37, 51, 3, 35, 19, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 8,195,144,217,166,186,253,244,187,187, 2, - 12,186,166,253,217, 1,129, 2,170,253, 86, 5,182,253,152, 2,104, 0, 0, 1, 0,160,254,131, 4,174, 4, 74, 0, 15, 0, 73, - 64, 41, 14, 71, 13, 12, 8, 0, 71, 11, 15, 12, 7, 3, 71, 0, 4, 16, 4, 32, 4,208, 4, 4, 7, 4, 2, 80, 7, 7, 4, 9, - 5, 15, 11, 80, 0, 0, 4, 14, 14, 4, 21, 0, 63, 51, 47, 17, 51, 16,225, 63, 51, 18, 57, 47,225, 1, 47, 94, 93,225, 50, 47, - 51,221,225, 50, 16,221,237, 48, 49, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 3, 35, 19, 3, 66,254, 20,182,182, 1, -236,182,182,123,182,123, 1,233,254, 23, 4, 74,254, 57, 1,199,252, 80,253,233, 1,125, 0, 1, 0,135,254,127, 4, 70, 5,182, - 0, 29, 0, 61, 64, 32, 28,251, 27, 27, 22, 0, 90, 25, 31, 12, 90, 0, 9, 1, 9, 1, 6, 95, 22, 17, 17, 10, 29, 95, 26, 27, - 27, 26, 18, 23, 10, 3, 0, 63, 51, 63, 51, 47, 16,225, 17, 57, 47, 51,225, 50, 1, 47, 93,225, 16,222,225, 50, 50, 47,225, 48, - 49, 37, 17, 14, 3, 35, 34, 38, 53, 17, 51, 17, 20, 30, 2, 51, 50, 62, 2, 55, 17, 51, 17, 35, 17, 35, 17, 3,139, 57,101, 94, - 92, 49,187,192,187, 20, 50, 82, 61, 45, 86, 89, 96, 56,187,187,176,166, 1,176, 22, 34, 22, 12,191,180, 2, 71,253,209, 57, 87, - 58, 29, 10, 20, 30, 20, 2,198,250, 74,254,127, 2, 39, 0, 1, 0,152,254,131, 4, 37, 4, 74, 0, 27, 0, 75, 64, 45, 25, 70, - 24, 24, 19, 27, 71,176, 22, 1, 22, 29, 13, 71, 0, 10, 16, 10, 32, 10,208, 10, 4, 7, 10, 5, 80, 15, 16, 31, 16, 2, 16, 16, - 11, 26, 80, 23, 24, 24, 23, 21, 20, 11, 15, 0, 63, 51, 63, 51, 47, 16,225, 17, 57, 47, 93,225, 1, 47, 94, 93,225, 16,222, 93, -225, 50, 50, 47,225, 48, 49, 1, 14, 3, 35, 34, 46, 2, 53, 17, 51, 17, 20, 22, 51, 50, 54, 55, 17, 51, 17, 35, 17, 35, 17, 51, - 3,111, 44, 87, 92,101, 57, 82,129, 88, 47,182,105,100, 89,167, 84,182,166,176,160, 1,233, 30, 48, 32, 17, 47, 84,115, 68, 1, -166,254,102, 88, 86, 58, 57, 1,213,251,182,254,131, 2, 23, 0, 0, 1, 0,113,254,127, 4,203, 5,182, 0, 29, 0,219, 64, 60, - 27, 14, 1, 10, 14, 1,252, 14, 1,237, 14, 1,220, 14, 1,185, 14,201, 14, 2,138, 14,154, 14,170, 14, 3,108, 14,124, 14, 2, - 91, 14, 1, 58, 14, 74, 14, 2, 25, 14, 41, 14, 2, 3, 11, 19, 11, 2,241, 11, 1,226, 11, 1,212, 11, 1, 11,184,255,232, 64, - 88, 17, 21, 72, 99, 11,115, 11, 2, 84, 11, 1, 53, 11, 69, 11, 2, 22, 11, 38, 11, 2, 19,251, 18, 17, 29, 0, 12, 12, 8, 27, - 22, 10, 14, 1, 14, 21,250, 15, 16, 1,191, 16,207, 16,223, 16, 3, 16, 17, 5, 11, 1, 11, 7, 2, 8,250, 0, 9, 16, 9, 2, - 9, 16, 95, 21, 18, 28, 14, 2, 11, 3, 5, 12, 1, 3, 12, 13, 0, 1, 1, 0, 8, 19, 19, 8, 18, 0, 63, 51, 47, 17, 51, 95, - 93, 50, 95, 93, 63, 51, 51, 51, 63,225, 1, 47, 93,225, 50, 50, 50, 93, 47,221, 93,113,225, 50, 93, 50, 50, 17, 57, 17, 51, 51, - 16,221,237, 48, 49, 93, 93, 93, 93, 43, 93, 93, 93,113, 93, 93, 93, 93, 93, 93, 93, 93, 93,113,113, 33, 1, 35, 22, 23, 22, 22, - 21, 17, 35, 17, 51, 19, 51, 19, 51, 17, 51, 3, 35, 19, 35, 17, 52, 54, 55, 54, 55, 35, 1, 1,254,254,250, 8, 5, 4, 4, 5, -145,237,236, 6,239,242,154,185,176,166,108, 4, 3, 4, 3, 8,254,248, 5, 0, 74, 73, 63,139, 57,252,150, 5,182,251, 88, 4, -168,250,240,253,217, 1,129, 3,119, 52,134, 61, 71, 73,251, 2, 0, 1, 0,115,254,131, 4,174, 4, 74, 0, 36, 0,204, 64,140, -184, 36,200, 36,216, 36, 3,153, 36,169, 36, 2,138, 36, 1,105, 36, 1, 90, 36, 1, 72, 36, 1, 41, 36, 57, 36, 2, 26, 36, 1, - 9, 36, 1,213, 24, 1,198, 24, 1,165, 24,181, 24, 2,150, 24, 1, 85, 24,101, 24,133, 24, 3, 70, 24, 1, 55, 24, 1, 38, 24, - 1, 21, 24, 1, 6, 24, 1, 8, 15, 1, 8, 14, 1, 7, 13, 1, 7, 12, 1, 3, 14, 13, 30, 30, 6, 24, 21, 73, 4, 22, 20, 22, - 36, 22, 3, 22, 4, 3, 2, 36, 6, 73, 1, 5,123, 2,203, 2,219, 2,235, 2, 4, 2, 7, 36, 36, 20, 24, 15, 30, 14, 15, 14, - 1, 2, 14, 21, 4, 4, 21, 21, 1, 80, 6, 21, 0, 63,225, 63, 51, 47, 17, 51, 95, 93, 17, 51, 63, 51, 51, 17, 51, 1, 47, 93, - 51,221,225, 50, 16,221,205, 47, 93,225, 50, 17, 57, 17, 51, 51, 48, 49, 95, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 1, 17, 51, 3, 35, 19, 35, 17, 14, 3, 7, 3, 35, 3, 46, 3, 39, 17, 35, 17, 51, 19, - 30, 3, 23, 62, 3, 55, 19, 4, 29,145,123,168,123,123, 4, 16, 17, 17, 5,199,131,196, 4, 16, 18, 18, 6,145,204,197, 10, 21, - 18, 15, 4, 5, 14, 17, 19, 10,203, 4, 74,252, 80,253,233, 1,125, 3,129, 21, 69, 74, 68, 18,253,121, 2,135, 14, 62, 73, 75, - 26,252,127, 4, 74,253,112, 34, 81, 75, 62, 16, 17, 61, 74, 78, 34, 2,148, 0,255,255, 0,225, 0, 0, 3,233, 5,182, 2, 6, - 0, 44, 0, 0,255,255, 0, 33, 0, 0, 4,172, 7,105, 2, 38, 0, 36, 0, 0, 1, 7, 2, 54,255,255, 1, 82, 0, 21,180, 2, - 17, 5, 38, 2,184,255,255,180, 20, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6, 23, 2, 38, - 0, 68, 0, 0, 1, 6, 2, 54, 4, 0, 0, 19, 64, 11, 2, 36, 17, 38, 2, 37, 39, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 33, 0, 0, 4,172, 7, 43, 2, 38, 0, 36, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25,182, 3, 2, 19, 5, 38, - 3, 2,184,255,255,180, 21, 25, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, 5,217, 2, 38, - 0, 68, 0, 0, 1, 6, 0,106, 12, 0, 0, 23, 64, 13, 3, 2, 38, 17, 38, 3, 2, 45, 40, 44, 8, 22, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,186, 5,182, 2, 6, 0,136, 0, 0,255,255, 0, 45,255,236, 4,162, 4, 94, 2, 6, - 0,168, 0, 0,255,255, 0,217, 0, 0, 4, 35, 7,105, 2, 38, 0, 40, 0, 0, 1, 7, 2, 54, 0, 23, 1, 82, 0, 21,180, 1, - 14, 5, 38, 1,184,255,255,180, 17, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 6, 23, 2, 38, - 0, 72, 0, 0, 1, 6, 2, 54, 16, 0, 0, 19, 64, 11, 2, 25, 17, 38, 2, 15, 28, 23, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0, - 0, 2, 0, 84,255,236, 4,123, 5,205, 0, 30, 0, 41, 0, 63, 64, 36, 36, 26, 91, 14, 43, 37, 91, 24, 32, 3, 48, 3, 2, 3, - 3, 31, 24, 47, 24, 2, 24, 37, 95, 25, 25, 9, 31, 95, 19, 19, 3, 0, 95, 4, 9, 4, 0, 63, 51,225, 50, 63,225, 17, 57, 47, -225, 1, 47, 93, 51, 47, 93, 16,225, 16,222,225, 50, 48, 49, 1, 34, 6, 7, 53, 62, 3, 51, 50, 22, 22, 18, 21, 20, 2, 6, 6, - 35, 34, 38, 38, 2, 53, 53, 33, 46, 3, 3, 50, 62, 2, 55, 33, 30, 3, 2, 35,111,179, 79, 38, 80, 93,111, 67,141,217,147, 75, - 73,141,208,135,137,192,122, 55, 3, 98, 6, 55,100,145, 48, 77,125, 90, 54, 6,253, 99, 2, 35, 75,119, 5, 41, 44, 32,170, 15, - 26, 19, 10,108,198,254,233,171,174,254,235,194,104,103,192, 1, 17,171, 82,122,193,134, 71,251,102, 65,126,185,120,117,184,127, - 68, 0, 0, 2, 0,133,255,236, 4, 72, 4, 94, 0, 30, 0, 39, 0, 73, 64, 43, 34, 17, 72, 15, 5, 1,255, 5, 1, 5, 41, 35, - 72, 15, 25, 25, 0, 15, 1, 0, 15, 16, 15,240, 15, 3, 8, 15, 35, 80, 16, 16, 0, 31, 80, 10, 22, 25, 20, 81, 26, 0, 16, 0, - 63, 50,225, 50, 63,225, 17, 57, 47,225, 1, 47, 94, 93,113, 51, 47, 16,225, 16,222, 93,113,225, 50, 49, 48, 1, 50, 30, 2, 21, - 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 38, 38, 35, 34, 14, 2, 7, 53, 62, 3, 19, 50, 54, 55, 33, 20, 30, 2, 2, 45,119,198, -143, 79, 72,131,184,111,108,173,120, 64, 3, 6, 5,171,168, 56, 97, 89, 84, 44, 43, 83, 87, 96,100,133,156, 12,253,195, 32, 66, -103, 4, 94, 74,142,210,135,136,214,148, 79, 71,129,181,110,113,193,181, 10, 19, 28, 18,159, 20, 28, 19, 9,252, 37,156,149, 68, -113, 80, 44, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, 2,225, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, - 3, 2, 46, 5, 38, 3, 2, 0, 48, 52, 24, 14, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133,255,236, 4, 72, 5,217, - 2, 38, 2,226, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 3, 2, 44, 17, 38, 3, 2, 1, 46, 50, 15, 5, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, 4,205, 7, 43, 2, 38, 1,176, 0, 0, 1, 7, 0,106, 0, 0, 1, 82, 0, 25, -182, 2, 1, 22, 5, 38, 2, 1,184,255,255,180, 24, 28, 17, 10, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 0, 0, 0, - 4,205, 5,217, 2, 38, 1,208, 0, 0, 1, 6, 0,106, 0, 0, 0, 25,182, 2, 1, 22, 17, 38, 2, 1,184,255,255,180, 24, 28, - 16, 5, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,139,255,236, 4, 47, 7, 43, 2, 38, 1,177, 0, 0, 1, 7, 0,106, -255,237, 1, 82, 0, 25,182, 2, 1, 40, 5, 38, 2, 1,184,255,246,180, 42, 46, 9, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,201,255,236, 4, 8, 5,217, 2, 38, 1,209, 0, 0, 1, 6, 0,106,253, 0, 0, 25,182, 2, 1, 37, 17, 38, 2, 1, -184,255,250,180, 39, 43, 8, 18, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,158,255,236, 4, 66, 5,182, 0, 32, 0, 75, - 64, 41, 87, 0, 1, 70, 0, 1, 28, 91, 32, 32, 5, 0, 91, 26, 26, 13, 22, 5, 34, 29, 29, 0, 13, 1, 13, 32, 29, 95, 30, 0, - 97, 26, 26, 30, 3, 14, 19, 96, 13, 10, 19, 0, 63, 51,225, 50, 63, 57, 47,225, 16,225, 50, 1, 47, 93, 51, 47, 16,222,193, 17, - 57, 47,225, 17, 51, 47,225, 48, 49, 93, 93, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 53, 30, 3, 51, 50, 54, 53, 52, 38, 35, - 35, 53, 1, 33, 53, 33, 21, 2, 74,115,186,132, 71, 67,136,205,137,110,192, 85, 43, 96, 99, 99, 46,178,176,207,186,123, 1,166, -253,166, 3, 61, 3, 59, 4, 54,100,151,102, 96,160,116, 64, 34, 45,170, 23, 36, 24, 13,148,135,135,129,151, 1,209,166,145, 0, - 0, 1, 0,170,254, 20, 4, 59, 4, 74, 0, 36, 0, 70, 64, 38, 32, 74, 36, 36, 5, 0, 74, 0, 30, 1, 30, 30, 13, 24, 70, 5, - 38, 33, 0, 13, 1, 13, 31, 0, 78, 30, 30, 19, 33, 80, 34, 15, 14, 19, 80, 13, 10, 27, 0, 63, 51,225, 50, 63,225, 18, 57, 47, -225, 50, 1, 47, 93, 51, 16,222,225, 17, 57, 47, 93,225, 17, 51, 47,225, 48, 49, 1, 30, 3, 21, 20, 14, 2, 35, 34, 38, 39, 55, - 30, 3, 51, 50, 62, 2, 53, 52, 46, 2, 35, 35, 53, 1, 33, 53, 33, 21, 2, 72,104,182,135, 78, 76,139,198,123,122,193, 62, 2, - 33, 84, 98,111, 59, 77,128, 92, 51, 59,108,151, 91,119, 1,182,253,150, 3, 61, 1,213, 7, 64,114,164,108,110,185,134, 75, 36, - 34,166, 16, 31, 24, 15, 48, 89,127, 78, 86,123, 80, 37,125, 1,237,154,133, 0,255,255, 0,137, 0, 0, 4, 70, 6,193, 2, 38, - 1,178, 0, 0, 1, 7, 1, 77, 0, 2, 1, 82, 0, 19, 64, 11, 1, 19, 5, 38, 1, 0, 17, 18, 0, 8, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,160, 0, 0, 4, 45, 5,111, 2, 38, 1,210, 0, 0, 1, 6, 1, 77, 2, 0, 0, 19, 64, 11, 1, 14, 17, 38, - 1, 1, 12, 13, 10, 4, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,137, 0, 0, 4, 70, 7, 43, 2, 38, 1,178, 0, 0, 1, 7, - 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, 1, 0, 23, 27, 0, 8, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,160, 0, 0, 4, 45, 5,217, 2, 38, 1,210, 0, 0, 1, 6, 0,106, 2, 0, 0, 23, 64, 13, 2, 1, 16, 17, 38, 2, - 1, 1, 18, 22, 10, 4, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, 0, 50, 0, 0, - 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 3, 2, 24, 5, 38, 3, 2, 0, 26, 30, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 0, 82, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 3, 2, 24, 17, 38, - 3, 2,184,255,249,180, 26, 30, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 5,205, 2, 6, - 2,126, 0, 0,255,255, 0,115,255,236, 4, 88, 4, 94, 2, 6, 2,127, 0, 0,255,255, 0, 84,255,236, 4,123, 7, 43, 2, 38, - 2,126, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 4, 3, 46, 5, 38, 4, 3, 0, 48, 52, 10, 0, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 5,217, 2, 38, 2,127, 0, 0, 1, 6, 0,106,249, 0, 0, 25,182, 4, - 3, 35, 17, 38, 4, 3,184,255,249,180, 37, 41, 10, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 68,255,236, 4, 76, - 7, 43, 2, 38, 1,199, 0, 0, 1, 7, 0,106,255,136, 1, 82, 0, 25,182, 2, 1, 28, 5, 38, 2, 1,184,255,166,180, 30, 34, - 1, 6, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,184,255,236, 4, 37, 5,217, 2, 38, 1,231, 0, 0, 1, 6, 0,106, -208, 0, 0, 25,182, 2, 1, 27, 17, 38, 2, 1,184,255,199,180, 29, 33, 13, 18, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0, 27,255,236, 4,176, 6,193, 2, 38, 1,189, 0, 0, 1, 7, 1, 77, 0, 8, 1, 82, 0, 19, 64, 11, 1, 26, 5, 38, 1, 8, - 24, 25, 14, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,111, 2, 38, 0, 92, 0, 0, 1, 6, 1, 77, - 2, 0, 0, 19, 64, 11, 1, 25, 17, 38, 1, 2, 23, 24, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 27,255,236, 4,176, - 7, 43, 2, 38, 1,189, 0, 0, 1, 7, 0,106,255,255, 1, 82, 0, 25,182, 2, 1, 28, 5, 38, 2, 1,184,255,255,180, 30, 34, - 14, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,217, 2, 38, 0, 92, 0, 0, 1, 6, 0,106, - 8, 0, 0, 23, 64, 13, 2, 1, 27, 17, 38, 2, 1, 8, 29, 33, 0, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 27, -255,236, 4,176, 7,115, 2, 38, 1,189, 0, 0, 1, 7, 1, 83, 0, 82, 1, 82, 0, 23, 64, 13, 2, 1, 30, 5, 38, 2, 1, 82, - 24, 35, 14, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 82,254, 20, 4,121, 6, 33, 2, 38, 0, 92, 0, 0, 1, 6, - 1, 83, 94, 0, 0, 23, 64, 13, 2, 1, 29, 17, 38, 2, 1, 94, 23, 34, 0, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, - 0,135, 0, 0, 4, 70, 7, 43, 2, 38, 1,193, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 2, 1, 21, 5, 38, 2, - 1, 1, 23, 27, 6, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,152, 0, 0, 4, 37, 5,217, 2, 38, 1,225, 0, 0, - 1, 6, 0,106,251, 0, 0, 23, 64, 13, 2, 1, 21, 17, 38, 2, 1, 2, 23, 27, 15, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, - 0, 1, 1, 43,254,127, 4,100, 5,182, 0, 9, 0, 56, 64, 35, 0, 11, 5,251, 6, 6, 3, 90, 0, 8, 1, 0, 8, 32, 8, 48, - 8,144, 8,160, 8,240, 8, 6, 8, 2, 95, 9, 3, 5, 5, 3, 95, 8, 18, 0, 63,225, 51, 47, 63,225, 1, 47, 93,113,225, 50, - 47,225, 16,206, 49, 48, 1, 21, 33, 17, 51, 17, 35, 17, 35, 17, 4,100,253,129,177,177,186, 5,182,166,251,150,253,217, 1,129, - 5,182, 0, 1, 1, 35,254,131, 4, 14, 4, 74, 0, 9, 0, 46, 64, 26, 2, 11, 7, 70, 8, 8, 5, 71, 0, 0,144, 0,160, 0, - 3, 0, 4, 80, 1, 15, 7, 7, 5, 80, 0, 21, 0, 63,225, 51, 47, 63,225, 1, 47, 93,225, 50, 47,225, 16,206, 48, 49, 33, 17, - 33, 21, 33, 17, 51, 17, 35, 17, 1, 35, 2,235,253,203,160,176, 4, 74,154,252,234,253,233, 1,125, 0,255,255, 0, 96, 0, 0, - 4,109, 7, 43, 2, 38, 1,197, 0, 0, 1, 7, 0,106, 0, 2, 1, 82, 0, 23, 64, 13, 4, 3, 26, 5, 38, 4, 3, 1, 28, 32, - 0, 20, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,113, 0, 0, 4, 90, 5,217, 2, 38, 1,229, 0, 0, 1, 6, 0,106, - 2, 0, 0, 23, 64, 13, 4, 3, 25, 17, 38, 4, 3, 2, 27, 31, 6, 17, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, 0, 1, 0,147, -254,109, 4,100, 5,182, 0, 29, 0, 72, 64, 38, 15, 4, 1, 4, 4, 7, 0, 31, 16, 9,250, 23, 23, 2, 7, 90, 28, 26, 24, 19, - 6, 26, 95, 3, 27, 27, 7, 2, 95, 29, 3, 7, 95, 24, 18, 19, 96, 12, 0, 47,225, 63,225, 63,225, 18, 57, 47, 51,225, 50, 1, - 47, 47,206, 51,225, 50, 50, 47,225,206, 16,206, 17, 57, 47, 93, 48, 49, 1, 21, 33, 17, 33, 21, 33, 17, 51, 17, 20, 6, 35, 34, - 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 35, 17, 35, 53, 51, 17, 4,100,253,129, 1, 80,254,176,156,110,125, 39, 63, 21, 14, 58, - 34, 47, 49,186,152,152, 5,182,166,254, 21,162,254, 35,254,217,132,142, 17, 9,150, 7, 14, 49, 49,150, 2,131,162, 2,145, 0, - 0, 1, 0,135,254,109, 4, 14, 4, 74, 0, 29, 0, 72, 64, 37, 10, 10, 13, 6, 31, 25, 22, 15, 73, 29, 29, 9, 13, 71, 4, 2, - 0, 22, 25, 80, 21, 18, 12, 2, 79, 9, 3, 3, 13, 8, 80, 5, 15, 13, 81, 0, 21, 0, 63,225, 63,225, 18, 57, 47, 51,225, 50, - 47, 51,225, 50, 1, 47,206, 51,225, 50, 50, 47,225,206, 47, 16,206, 17, 57, 47, 48, 49, 33, 17, 35, 53, 51, 17, 33, 21, 33, 17, - 33, 21, 33, 17, 51, 17, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 53, 1, 35,156,156, 2,235,253,203, 1, 23,254,233, -156,110,126, 38, 63, 22, 14, 59, 34, 46, 50, 1,225,137, 1,224,154,254,186,137,254,197,254,217,132,142, 17, 9,150, 7, 14, 49, - 49,150,255,255, 0, 53,254,109, 4,205, 5,182, 2, 38, 0, 59, 0, 0, 1, 7, 3,128, 1,180, 0, 0, 0, 23,182, 1, 1, 0, - 21,176, 21, 2,184, 1,180,180, 21, 12, 4, 0, 37, 1, 43, 93, 53, 0, 53, 0,255,255, 0, 96,254,109, 4,119, 4, 74, 2, 38, - 0, 91, 0, 0, 1, 7, 3,129, 1, 94, 0, 0, 0, 30,181, 1, 1, 80, 21, 1, 21,184,255,192,178, 9, 12, 54,184, 1, 94,180, - 21, 12, 11, 7, 37, 1, 43, 43, 93, 53, 0, 53, 0, 1, 0, 53, 0, 0, 4,150, 5,182, 0, 17, 0,164,185, 0, 11,255,248, 64, - 23, 12, 15, 72, 6, 11, 22, 11, 38, 11, 3, 13, 8, 12, 15, 72, 9, 13, 25, 13, 41, 13, 3, 4,184,255,248, 64, 32, 12, 15, 72, - 6, 4, 22, 4, 38, 4, 3, 2, 8, 12, 15, 72, 9, 2, 25, 2, 41, 2, 3, 15, 9, 6, 3, 0, 12, 12, 14, 11, 10,184,255,240, - 64, 10, 10, 10, 5, 7, 17, 7, 17, 1, 4, 5,184,255,240, 64, 25, 5, 13, 14, 16, 14, 14, 2, 1, 16, 1, 3, 0, 7, 95, 15, - 12, 8, 8, 1, 13, 10, 3, 5, 1, 18, 0, 63, 51, 63, 51, 18, 57, 47, 51, 51,225, 50, 50, 1, 47, 56, 51, 51, 47, 56, 51, 47, - 56, 51, 18, 57, 57, 47, 47, 17, 51, 47, 56, 51, 18, 57, 17, 51, 51, 51, 51, 51, 93, 43, 93, 43, 93, 43, 93, 43, 48, 49, 1, 1, - 35, 1, 1, 35, 1, 33, 53, 33, 1, 51, 1, 1, 51, 1, 33, 21, 2,250, 1,156,211,254,157,254,146,189, 1,154,254,223, 1, 21, -254,145,199, 1, 75, 1, 78,191,254,141, 1, 29, 2,180,253, 76, 2,123,253,133, 2,180,162, 2, 96,253,209, 2, 47,253,160,162, - 0, 1, 0, 96, 0, 0, 4,106, 4, 74, 0, 17, 0,194,183,196, 14,212, 14,228, 14, 3, 14,184,255,240, 64, 36, 11, 14, 72,203, - 12,219, 12,235, 12, 3, 12, 16, 11, 14, 72,203, 5,219, 5,235, 5, 3, 5, 16, 11, 14, 72,196, 3,212, 3,228, 3, 3, 6, 3, -184,255,240, 64, 20, 11, 14, 72, 73, 13, 1, 13, 16, 18, 23, 72, 10, 13, 26, 13, 2, 70, 4, 1, 4,184,255,240, 64, 55, 18, 23, - 72, 5, 4, 21, 4, 2, 17, 9, 17, 9, 15, 11, 16, 13, 10, 7, 1, 4, 4, 6, 3, 2, 2, 14, 31, 15, 1, 15, 5, 6, 6, 12, - 0, 11, 16, 11, 2, 11, 13, 10, 17, 79, 7, 4, 0, 0, 2, 15, 11, 21, 5, 2, 15, 0, 63, 51, 63, 51, 18, 57, 47, 51, 51,225, - 50, 50, 1, 47, 93, 51, 51, 47, 51, 47, 93, 51, 51, 47, 51, 18, 57, 17, 51, 51, 51, 51, 51, 17, 18, 57, 57, 47, 47, 48, 49, 0, - 93, 43, 93, 93, 43, 93, 1, 43, 95, 93, 43, 93, 43, 93, 43, 93, 19, 33, 1, 51, 1, 1, 51, 1, 33, 21, 33, 1, 35, 1, 1, 35, - 1, 33,166, 1, 41,254,166,207, 1, 34, 1, 35,207,254,164, 1, 45,254,207, 1,114,206,254,202,254,201,207, 1,115,254,211, 2, -123, 1,207,254,102, 1,154,254, 49,137,254, 14, 1,180,254, 76, 1,242, 0, 2, 0,137, 0, 0, 3,246, 5,182, 0, 14, 0, 25, - 0, 42, 64, 22, 6, 25, 90, 9, 27, 21, 91, 0, 0, 1, 0, 16, 95, 5, 5, 7, 24, 96, 10, 18, 7, 3, 0, 63, 63,225, 17, 57, - 47,225, 1, 47, 93,225, 16,222,225, 50, 48, 49, 19, 52, 62, 2, 51, 51, 17, 51, 17, 33, 34, 46, 2, 1, 35, 34, 14, 2, 21, 20, - 22, 51, 51,137, 55,127,207,152,149,187,254,149,133,194,126, 61, 2,178,129, 93,138, 91, 46,163,175,159, 1,172, 87,152,113, 66, - 2,104,250, 74, 61,112,158, 1, 95, 27, 60, 97, 70,136,132, 0,255,255, 0,137,255,236, 4, 47, 6, 20, 2, 6, 0, 71, 0, 0, - 0, 2, 0, 49,255,236, 4,131, 5,182, 0, 33, 0, 48, 0, 61, 64, 33, 9, 24,251, 21, 48, 48, 15, 32,251, 15, 1, 63, 1, 2, - 1, 50, 40, 90, 15, 35, 95, 33, 20, 20, 22, 3, 27, 9, 43, 96, 6, 12, 19, 0, 63, 51,225, 50, 50, 63, 57, 47, 51,225, 1, 47, -225, 16,222, 93,225, 17, 57, 47, 51,225, 57, 49, 48, 1, 17, 20, 14, 2, 35, 34, 38, 39, 6, 6, 35, 34, 38, 53, 52, 62, 2, 51, - 51, 17, 51, 17, 20, 22, 51, 50, 62, 2, 53, 17, 5, 35, 34, 14, 2, 21, 20, 22, 51, 50, 62, 2, 53, 4,131, 30, 67,109, 79, 92, -109, 34, 35,122, 97,165,167, 49,104,161,112, 82,174, 65, 68, 30, 44, 29, 14,254, 88, 80, 66, 94, 60, 28, 78, 94, 48, 60, 35, 13, - 3, 80,254, 24, 84,140,101, 55, 87, 87, 79, 93,209,215,103,163,114, 60, 2,104,251,178,114,103, 23, 51, 83, 60, 1,232,166, 30, - 67,107, 77,128,130, 35, 60, 79, 43, 0, 0, 2, 0, 49,255,236, 4,131, 6, 20, 0, 44, 0, 61, 0, 62, 64, 33, 14, 40, 70, 37, - 50, 50, 23, 3, 70, 15, 6, 1, 6, 63, 59, 70, 23, 31, 56, 80, 28, 16, 4, 4, 38, 0, 14, 0, 45, 80, 11, 20, 22, 0, 63, 51, -225, 50, 50, 63, 57, 47, 63,225, 50, 1, 47,225, 16,222, 93,225, 17, 57, 47, 51,225, 57, 48, 49, 37, 50, 54, 53, 17, 51, 17, 20, - 14, 2, 35, 34, 38, 39, 35, 14, 3, 35, 34, 2, 17, 52, 62, 2, 51, 50, 22, 23, 51, 38, 39, 38, 38, 53, 17, 51, 17, 20, 30, 2, - 33, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 3, 88, 66, 59,174, 34, 68,101, 67,110,129, 34, 4, 19, 43, 60, 83, - 59,154,141, 42, 77,107, 65, 82,104, 31, 8, 2, 2, 2, 2,174, 9, 26, 50,254, 85, 46, 63, 39, 19, 1, 17, 39, 64, 48, 83, 77, - 77,131,124,130, 1, 59,254,193,105,152, 98, 46, 99,103, 41, 74, 55, 32, 1, 30, 1, 25,141,214,144, 72, 74, 65, 34, 31, 26, 55, - 16, 1,159,251,146, 61,107, 78, 45, 46, 94,141, 94, 41,101,157,107, 55,217,205,209,205, 0, 1, 0, 35,255,236, 4, 84, 5,203, - 0, 57, 0, 80, 64, 42, 37,251, 0, 0, 31, 26,251, 11, 11, 18, 45,251, 15, 48, 1, 48, 59, 17, 18, 6, 6, 18, 31, 6, 97, 7, - 46, 46, 7, 7, 21, 42, 95, 53, 19, 18, 17, 17, 14, 96, 21, 4, 0, 63,225, 50, 17, 51, 63,225, 17, 57, 47, 51, 47, 16,225, 57, - 1, 47, 51, 47, 17, 51, 16,222, 93,225, 17, 57, 47,225, 51, 51, 47,225, 48, 49, 1, 52, 46, 2, 35, 35, 53, 51, 50, 54, 53, 52, - 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, - 14, 2, 35, 34, 46, 2, 1,254, 16, 42, 72, 56,156,156, 83, 91, 88, 86, 60, 94, 53, 82, 65,151,103, 81,121, 79, 39, 30, 56, 80, - 49, 57, 84, 56, 28, 14, 31, 47, 33, 66, 59,174, 40, 77,109, 69, 69,112, 79, 43, 1,135, 77,109, 70, 33,151,134,125,124,115, 33, - 41,117, 54, 57, 54, 97,133, 79, 73,116, 85, 58, 16, 6, 13, 51, 83,121, 84, 74,103, 65, 29,115,133, 1,201,254, 45,107,152, 97, - 45, 38, 94,159, 0, 1, 0, 43,255,236, 4, 94, 4, 92, 0, 57, 0, 71, 64, 37, 37, 26, 70, 31, 0, 11, 11, 18, 45, 70, 15, 48, - 1, 48, 59, 17, 18, 6, 6, 18, 31, 6, 80, 46, 7, 7, 21, 42, 81, 53, 22, 17, 14, 78, 18, 21, 16, 0, 63, 51,225, 50, 63,225, - 17, 57, 47,196,225, 57, 1, 47, 51, 47, 17, 51, 16,222, 93,225, 17, 57, 47, 51, 51,225, 50, 48, 49, 1, 46, 3, 35, 35, 53, 51, - 50, 54, 53, 52, 38, 35, 34, 6, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 23, 30, 3, 51, 50, 54, 53, 17, - 51, 17, 20, 14, 2, 35, 34, 46, 2, 2, 10, 3, 18, 41, 70, 56,139,139, 83, 91, 75, 87, 66,113, 63, 61, 65,156,101, 81,120, 79, - 39, 30, 56, 80, 49, 53, 81, 56, 31, 4, 3, 15, 29, 45, 33, 66, 59,174, 40, 76,110, 69, 69,107, 76, 43, 1, 27, 56, 80, 51, 24, -153, 86, 80, 82, 74, 36, 32,141, 36, 38, 42, 73,100, 57, 55, 86, 64, 43, 14, 4, 6, 30, 56, 85, 61, 54, 75, 47, 21,115,133, 1, - 53,254,193,107,152, 97, 45, 28, 69,117, 0, 1, 0, 39,254,127, 4,117, 5,203, 0, 49, 0, 80, 64, 43, 1, 90, 46, 46, 49, 39, - 15, 91, 34, 34, 49,251, 0, 47, 80, 47, 2, 47, 23, 24, 8, 8, 24, 24, 23, 23, 20, 96, 29, 39, 8, 97, 9, 9, 29, 4, 46, 95, - 1, 48, 48, 1, 18, 0, 63, 51, 47, 16,225, 63, 57, 47,225, 57, 16,225, 50, 17, 51, 1, 47, 51, 47, 17, 51, 47, 93,225, 50, 47, -225, 50, 17, 51, 47,225, 49, 48, 33, 35, 17, 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 46, 2, 35, 34, 6, 7, 39, 62, 3, - 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, 3, 21, 21, 51, 17, 35, 3,197,187, 56,103,149, 93,191,176, 92,142, 97, 50, 37, 68, - 95, 58,110,169, 75, 92, 38, 98,116,131, 72,109,166,112, 57, 51, 91,125, 75, 87,138, 94, 50,176,176, 1,160, 68, 99, 65, 32,151, - 39, 72,101, 61, 54, 83, 58, 30, 67, 54,125, 31, 54, 41, 24, 54, 97,133, 79, 73,120, 88, 57, 12, 6, 11, 57, 89,119, 72,250,253, -217, 0, 0, 1, 0, 80,254,131, 4, 92, 4, 94, 0, 47, 0, 78, 64, 41, 36, 14, 70, 31, 31, 0, 71, 43, 43, 47, 70, 44, 49, 22, - 23, 8, 8, 23, 23, 48, 22, 17, 80, 26, 36, 7, 80, 48, 8, 1, 8, 8, 23, 26, 16, 45, 45, 43, 80, 0, 21, 0, 63,225, 51, 47, - 63, 51, 57, 47, 93,225, 57, 16,225, 50, 17, 1, 51, 47, 51, 47, 17, 51, 16,222,225, 50, 47,225, 51, 47,225, 50, 48, 49, 33, 17, - 52, 46, 2, 35, 35, 53, 51, 50, 62, 2, 53, 52, 38, 35, 34, 14, 2, 7, 39, 54, 54, 51, 50, 30, 2, 21, 20, 14, 2, 7, 21, 30, - 3, 21, 21, 51, 17, 35, 17, 3, 6, 27, 62,102, 75,236,203, 62,100, 72, 39,140,131, 47, 82, 80, 80, 45, 63, 93,201,115, 99,160, -113, 61, 28, 51, 71, 43, 54, 84, 58, 31,160,176, 1, 43, 47, 73, 49, 26,153, 18, 39, 64, 45, 77, 77, 10, 18, 27, 17,147, 39, 37, - 36, 72,106, 70, 53, 81, 59, 41, 14, 11, 13, 44, 66, 91, 62,145,253,233, 1,125, 0, 1, 0, 0,255,236, 4,131, 5,182, 0, 48, - 0, 83, 64, 46, 22, 13, 27,250, 1, 29,251, 48, 6, 13, 0, 1, 16, 1, 2, 1, 48, 1, 48, 13, 35,251, 15, 38, 1, 38, 50, 13, - 32, 95, 43, 19, 36, 36, 17, 1, 95, 27, 3, 14, 14, 17, 96, 13, 11, 19, 0, 63, 51,225, 50, 47, 63,225, 18, 57, 47, 63,225, 1, - 47, 16,222, 93,225, 17, 57, 57, 47, 47, 93, 18, 57, 16,225, 16,237, 17, 57, 48, 49, 1, 35, 14, 3, 7, 14, 3, 35, 34, 39, 53, - 22, 22, 51, 50, 62, 2, 55, 54, 54, 18, 18, 55, 33, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2, - 45,164, 9, 20, 21, 19, 9, 10, 27, 48, 78, 62, 51, 39, 14, 26, 17, 25, 31, 21, 14, 6, 7, 19, 23, 26, 15, 1,231, 59, 66, 68, - 57,174, 42, 78,109, 68, 67,110, 80, 44, 5, 18,116,245,234,210, 81,103,161,110, 58, 22,154, 8, 9, 60, 93,113, 54, 59,196, 1, - 2, 1, 57,177,251,209,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 0, 1, 0, 0,255,236, 4,131, 4, 74, - 0, 41, 0, 73, 64, 40, 20, 73, 1, 22, 70, 41, 0, 1, 16, 1, 2, 1, 41, 1, 41, 11, 28, 70, 15, 31, 1, 31, 43, 11, 29, 29, - 15, 1, 80, 20, 15, 25, 12, 12, 15, 79, 36, 11, 8, 22, 0, 63, 51, 51,225, 50, 17, 51, 63,225, 18, 57, 47, 1, 47, 16,222, 93, -225, 17, 57, 57, 47, 47, 93, 16,225, 16,225, 49, 48, 1, 35, 6, 2, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 54, 18, 55, - 33, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 2, 45,174, 10, 29, 38, 48, 58, 69, 41, 26, 49, 15, - 8, 17, 8, 37, 61, 48, 37, 13, 1,246, 55, 72, 65, 58,174, 36, 73,110, 74, 71,113, 79, 42, 3,176,186,254,226,213,145, 89, 39, - 6, 6,131, 3, 3,117,241, 1,111,250,253, 61,135,125,123,137, 1, 53,254,193,105,152, 98, 46, 37, 87,142,104, 0, 1, 0,121, -255,236, 4,131, 5,182, 0, 29, 0, 72, 64, 42, 27, 0,251, 19, 19, 23, 6,251, 56, 9, 1, 15, 9, 1, 9, 31, 26, 22,251, 71, - 23, 1, 0, 23, 16, 23, 2, 23, 21, 95, 7, 26, 26, 28, 24, 3, 23, 18, 3, 95, 14, 19, 0, 63,225, 63, 63, 51, 57, 47, 51,225, - 1, 47, 93, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47,225, 51, 48, 49, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, - 34, 46, 2, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 2,219, 62, 69, 69, 58,166, 37, 74,111, 75, 75,110, 72, 36,254,234,166, -166, 1, 22,166, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 44, 96,153,108, 1, 45,253, 86, 5,182,253,152, 2,104, - 0, 1, 0,123,255,236, 4,123, 4, 74, 0, 29, 0, 80, 64, 49, 5, 73, 2, 71, 24, 87, 24, 2, 24, 24, 28, 11, 73, 72, 14, 88, - 14,168, 14, 3, 15, 14, 1, 14, 31, 1, 27, 73, 0, 28, 16, 28, 2, 28, 28, 21, 26, 80, 12, 1, 1, 0, 8, 80, 19, 22, 3, 0, - 15, 0, 63, 50, 63,225, 17, 57, 47,196,225, 63, 1, 47, 93,225, 50, 16,222, 93, 93,225, 17, 57, 47, 93, 51,225, 48, 49, 1, 17, - 33, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 53, 33, 17, 35, 17, 1, 29, 1, 34,162, 55, - 72, 63, 58,162, 35, 70,105, 71, 67,108, 76, 40,254,222,162, 4, 74,254, 57, 1,199,253, 61,131,129,130,130, 1, 53,254,193,105, -152, 98, 46, 37, 87,142,104,139,254, 23, 4, 74, 0, 1, 0,117,255,236, 4,111, 5,203, 0, 40, 0, 73, 64, 42, 40, 40, 12, 39, - 90, 2, 21, 20, 20, 2, 42, 29, 91, 0, 12, 1, 12, 21, 24, 95, 17, 40, 95, 47, 0, 95, 0, 2, 0, 64, 16, 24, 72, 0, 0, 20, - 17, 4, 34, 95, 7, 19, 0, 63,225, 63, 51, 57, 47, 43, 93,225, 16,225, 50, 1, 47, 93,225, 16,206, 50, 47, 51, 16,225, 17, 57, - 47, 48, 49, 1, 33, 21, 20, 14, 2, 35, 34, 38, 38, 2, 53, 52, 18, 54, 54, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, - 30, 2, 51, 50, 62, 2, 53, 33, 2,160, 1,207, 52,111,173,121,138,210,141, 72, 80,151,216,136,115,181, 75, 72, 58,153, 94, 86, -140,100, 55, 45, 89,132, 87, 82,109, 66, 27,254,234, 2,246,142,167,241,155, 73,105,195, 1, 23,174,172, 1, 22,195,105, 44, 42, -162, 34, 50, 81,152,218,137,132,217,154, 85, 55,111,170,115, 0, 0, 1, 0,113,255,236, 4, 92, 4, 94, 0, 40, 0, 65, 64, 35, - 40, 40, 12, 1, 21, 63, 20, 1, 20, 20, 39, 71, 1, 42, 29, 72, 0, 12, 1, 12, 21, 24, 78, 17, 40, 80, 0, 0, 20, 17, 16, 34, - 78, 7, 22, 0, 63,225, 63, 51, 57, 47,225, 16,225, 50, 1, 47, 93,225, 16,222,225, 51, 47, 93, 51, 17, 18, 57, 47, 48, 49, 1, - 33, 21, 20, 14, 2, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 22, 23, 7, 38, 38, 35, 34, 14, 2, 21, 20, 30, 2, 51, 50, 62, 2, - 53, 33, 2,123, 1,225, 50,113,179,129,135,200,132, 65, 71,140,208,138,111,172, 77, 61, 60,148, 91, 91,139, 92, 47, 37, 83,132, - 94, 81,110, 66, 28,254,215, 2, 74, 68,130,200,137, 71, 79,147,211,132,131,210,148, 80, 37, 39,145, 29, 45, 58,109,157, 98, 93, -155,112, 62, 45, 80,113, 67, 0, 0, 1, 0, 20,255,236, 4,131, 5,182, 0, 25, 0, 64, 64, 38, 6, 90, 15, 9, 1, 9, 27, 48, - 24, 1, 24, 24, 0, 90,159, 21, 1, 21, 48, 19,128, 19,144, 19, 3, 19, 25, 21, 95, 22, 7, 7, 22, 3, 3, 95, 14, 19, 0, 63, -225, 63, 57, 47, 16,225, 50, 1, 47, 93,206, 93,241,202, 47, 93, 16,222, 93,225, 48, 49, 1, 20, 22, 51, 50, 54, 53, 17, 51, 17, - 20, 14, 2, 35, 34, 46, 2, 53, 17, 33, 53, 33, 21, 33, 2,113, 82, 92, 92, 82,182, 50, 93,132, 81, 80,133, 95, 53,254, 94, 3, -254,254, 95, 1,135,129,119,119,129, 1,201,254, 45,105,152, 98, 46, 39, 93,154,115, 3,149,164,164, 0, 0, 1, 0, 41,255,236, - 4,111, 4, 74, 0, 27, 0, 60, 64, 35, 13, 71, 16, 29,143, 3,159, 3, 2, 3, 3, 5, 71, 31, 0, 1, 0, 0, 26, 16, 26, 2, - 26, 14, 14, 1, 10, 80, 21, 22, 4, 0, 80, 1, 15, 0, 63,225, 50, 63,225, 17, 57, 47, 1, 47, 93,206, 93,241,202, 47, 93, 16, -222,225, 48, 49, 19, 53, 33, 21, 33, 17, 20, 30, 2, 51, 50, 54, 53, 17, 51, 17, 20, 14, 2, 35, 34, 46, 2, 53, 17, 41, 3, 53, -254,193, 21, 49, 80, 59,105, 95,183, 47, 95,143, 96, 91,146,102, 55, 3,176,154,154,253,215, 65, 98, 65, 32,130,130, 1, 53,254, -193,105,152, 98, 46, 46, 98,150,105, 2, 53, 0, 0, 1, 0,166,255,236, 4, 68, 5,203, 0, 59, 0, 73, 64, 39, 28, 28, 49, 39, - 39, 11, 10, 61, 21, 90, 0, 0, 32, 91, 0, 49, 1, 49, 54, 29, 97,159, 26, 1, 26, 26, 5, 38, 35, 96, 39, 44, 19, 11, 16, 96, - 10, 5, 4, 0, 63, 51,225, 50, 63, 51,225, 50, 17, 57, 47, 93,225, 57, 1, 47, 93,225, 51, 47,225, 16,206, 50, 50, 47, 17, 57, - 47, 48, 49, 19, 52, 62, 2, 51, 50, 30, 2, 23, 7, 46, 3, 35, 34, 14, 2, 21, 20, 30, 2, 51, 51, 21, 35, 34, 6, 21, 20, 22, - 51, 50, 54, 55, 21, 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 55, 53, 46, 3,211, 60,115,169,109, 71,123,105, 90, 39, 93, 37, 77, - 83, 91, 52, 57, 95, 68, 38, 44, 87,131, 87,194,190,186,208,170,164,109,203, 84, 42, 88, 99,111, 64,128,195,131, 66, 50, 94,137, - 88, 75,120, 84, 45, 4, 96, 79,133, 97, 54, 24, 41, 54, 31,125, 27, 45, 31, 18, 30, 58, 83, 54, 61,101, 72, 39,151,133,135,137, -142, 49, 43,170, 19, 28, 19, 9, 60,111,156, 96, 72,123, 94, 61, 11, 6, 12, 57, 88,120,255,255, 0,201,255,236, 4, 8, 4, 94, - 2, 6, 1,130, 0, 0,255,255, 0, 4,255,233, 4, 70, 5,182, 2, 6, 1,181, 0, 0,255,255, 0, 31,255,242, 4, 16, 4, 74, - 2, 6, 1,213, 0, 0,255,255, 0, 33,254,152, 4,172, 5,188, 2, 38, 0, 36, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, - 2, 18, 20, 39, 2, 0, 15, 21, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,254,152, 4, 2, 4, 94, 2, 38, 0, 68, - 0, 0, 1, 6, 2,103,237, 0, 0, 19, 64, 11, 2, 37, 23, 39, 2, 15, 34, 40, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, - 0, 33, 0, 0, 4,172, 7,225, 2, 38, 0, 36, 0, 0, 1, 7, 2,102, 0, 33, 1, 82, 0, 19, 64, 11, 2, 21, 5, 38, 2, 33, - 36, 15, 4, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,135,255,236, 4, 2, 6,143, 2, 38, 0, 68, 0, 0, 1, 6, 2,102, - 25, 0, 0, 19, 64, 11, 2, 40, 17, 38, 2, 59, 55, 34, 8, 22, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,172, - 7,209, 2, 38, 0, 36, 0, 0, 1, 7, 3,119, 0,121, 1, 82, 0, 23, 64, 13, 3, 2, 15, 5, 38, 3, 2,120, 23, 38, 4, 7, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4,141, 6,127, 2, 38, 0, 68, 0, 0, 1, 6, 3,119,125, 0, - 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, 2,158, 42, 57, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, - 4,172, 7,209, 2, 38, 0, 36, 0, 0, 1, 7, 3,120,255,148, 1, 82, 0, 25,182, 3, 2, 23, 5, 38, 3, 2,184,255,148,180, - 36, 22, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 85,255,236, 4, 2, 6,127, 2, 38, 0, 68, 0, 0, 1, 6, - 3,120,153, 0, 0, 25,182, 3, 2, 42, 17, 38, 3, 2,184,255,187,180, 55, 41, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0, 33, 0, 0, 4,172, 8, 74, 2, 38, 0, 36, 0, 0, 1, 7, 3,121, 0, 88, 1, 82, 0, 23, 64, 13, 3, 2, 15, 5, - 38, 3, 2, 88, 23, 32, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 76, 6,248, 2, 38, 0, 68, - 0, 0, 1, 6, 3,121, 92, 0, 0, 23, 64, 13, 3, 2, 34, 17, 38, 3, 2,126, 42, 51, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,122, 0, 8, 1, 82, 0, 23, 64, 13, 3, 2, - 23, 5, 38, 3, 2, 7, 41, 55, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, 7, 16, 2, 38, - 0, 68, 0, 0, 1, 6, 3,122, 12, 0, 0, 23, 64, 13, 3, 2, 42, 17, 38, 3, 2, 45, 60, 74, 8, 22, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0, 33,254,152, 4,172, 7,115, 2, 38, 0, 36, 0, 0, 0, 39, 1, 75, 0, 0, 1, 82, 1, 6, 2,103, - 0, 0, 0, 34, 64, 22, 3, 34, 20, 39, 2, 15, 5, 38, 3, 0, 31, 37, 4, 7, 37, 2, 0, 21, 15, 4, 7, 37, 1, 43, 53, 43, - 53, 0, 43, 53, 43, 53,255,255, 0,135,254,152, 4, 2, 6, 33, 2, 38, 0, 68, 0, 0, 0, 38, 1, 75, 8, 0, 1, 6, 2,103, -237, 0, 0, 34, 64, 22, 3, 53, 23, 39, 2, 34, 17, 38, 3, 15, 50, 56, 8, 22, 37, 2, 42, 40, 34, 8, 22, 37, 1, 43, 53, 43, - 53, 0, 43, 53, 43, 53,255,255, 0, 33, 0, 0, 4,172, 8, 19, 2, 38, 0, 36, 0, 0, 1, 7, 3,123, 0, 0, 1, 82, 0, 23, - 64, 13, 3, 2, 32, 5, 38, 3, 2, 0, 35, 27, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, 4, 2, - 6,193, 2, 38, 0, 68, 0, 0, 1, 6, 3,123,255, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 32, 54, 46, 8, 22, 37, 1, - 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 19, 2, 38, 0, 36, 0, 0, 1, 7, 3,124, 0, 0, 1, 82, - 0, 23, 64, 13, 3, 2, 32, 5, 38, 3, 2, 0, 35, 27, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135,255,236, - 4, 2, 6,193, 2, 38, 0, 68, 0, 0, 1, 6, 3,124,255, 0, 0, 23, 64, 13, 3, 2, 51, 17, 38, 3, 2, 32, 54, 46, 8, 22, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 88, 2, 38, 0, 36, 0, 0, 1, 7, 3,125, 0, 0, - 1, 82, 0, 23, 64, 13, 3, 2, 20, 5, 38, 3, 2, 0, 23, 15, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,135, -255,236, 4, 2, 7, 6, 2, 38, 0, 68, 0, 0, 1, 6, 3,125,255, 0, 0, 23, 64, 13, 3, 2, 39, 17, 38, 3, 2, 32, 42, 34, - 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33, 0, 0, 4,172, 8, 98, 2, 38, 0, 36, 0, 0, 1, 7, 3,126, - 0, 0, 1, 82, 0, 25,182, 3, 2, 20, 5, 38, 3, 2,184,255,255,180, 44, 58, 4, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,135,255,236, 4, 2, 7, 16, 2, 38, 0, 68, 0, 0, 1, 6, 3,126,255, 0, 0, 23, 64, 13, 3, 2, 39, 17, 38, 3, - 2, 32, 63, 77, 8, 22, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 33,254,152, 4,172, 7, 64, 2, 38, 0, 36, 0, 0, - 0, 39, 1, 78,255,253, 1, 82, 1, 6, 2,103, 0, 0, 0, 37, 64, 16, 3, 30, 20, 39, 2, 18, 5, 38, 3, 0, 27, 33, 4, 7, - 37, 2,184,255,253,180, 20, 15, 4, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53, 0,255,255, 0,135,254,152, 4, 2, 5,238, - 2, 38, 0, 68, 0, 0, 0, 38, 1, 78,245, 0, 1, 6, 2,103,237, 0, 0, 34, 64, 22, 3, 49, 23, 39, 2, 37, 17, 38, 3, 15, - 46, 52, 8, 22, 37, 2, 22, 39, 34, 8, 22, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,217,254,152, 4, 35, 5,182, - 2, 38, 0, 40, 0, 0, 1, 6, 2,103, 23, 0, 0, 19, 64, 11, 1, 15, 20, 39, 1, 0, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,133,254,152, 4, 72, 4, 94, 2, 38, 0, 72, 0, 0, 1, 6, 2,103, 23, 0, 0, 19, 64, 11, 2, 26, 23, 39, - 2, 23, 23, 29, 11, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7,225, 2, 38, 0, 40, 0, 0, 1, 7, - 2,102, 0, 39, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 15, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133, -255,236, 4, 72, 6,143, 2, 38, 0, 72, 0, 0, 1, 6, 2,102, 57, 0, 0, 19, 64, 11, 2, 29, 17, 38, 2, 57, 44, 23, 11, 0, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,217, 0, 0, 4, 35, 7, 53, 2, 38, 0, 40, 0, 0, 1, 7, 1, 82, 0, 25, 1, 82, - 0, 19, 64, 11, 1, 12, 5, 38, 1, 0, 13, 22, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,133,255,236, 4, 72, 5,227, - 2, 38, 0, 72, 0, 0, 1, 6, 1, 82, 33, 0, 0, 19, 64, 11, 2, 23, 17, 38, 2, 32, 24, 33, 11, 0, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,217, 0, 0, 4,145, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,119, 0,129, 1, 82, 0, 23, 64, 13, 2, 1, - 12, 5, 38, 2, 1,105, 20, 35, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133,255,236, 4,133, 6,127, 2, 38, - 0, 72, 0, 0, 1, 6, 3,119,117, 0, 0, 23, 64, 13, 3, 2, 23, 17, 38, 3, 2,116, 31, 46, 11, 0, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0, 89, 0, 0, 4, 35, 7,209, 2, 38, 0, 40, 0, 0, 1, 7, 3,120,255,157, 1, 82, 0, 25,182, 2, - 1, 20, 5, 38, 2, 1,184,255,133,180, 33, 19, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 76,255,236, 4, 72, - 6,127, 2, 38, 0, 72, 0, 0, 1, 6, 3,120,144, 0, 0, 25,182, 3, 2, 31, 17, 38, 3, 2,184,255,144,180, 44, 30, 11, 0, - 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217, 0, 0, 4, 80, 8, 74, 2, 38, 0, 40, 0, 0, 1, 7, 3,121, 0, 96, - 1, 82, 0, 23, 64, 13, 2, 1, 12, 5, 38, 2, 1, 72, 20, 29, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,133, -255,236, 4, 72, 6,248, 2, 38, 0, 72, 0, 0, 1, 6, 3,121, 84, 0, 0, 23, 64, 13, 3, 2, 23, 17, 38, 3, 2, 84, 31, 40, - 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217, 0, 0, 4, 35, 8, 98, 2, 38, 0, 40, 0, 0, 1, 7, 3,122, - 0, 16, 1, 82, 0, 25,182, 2, 1, 20, 5, 38, 2, 1,184,255,248,180, 38, 52, 1, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0, -255,255, 0,133,255,236, 4, 72, 7, 16, 2, 38, 0, 72, 0, 0, 1, 6, 3,122, 4, 0, 0, 23, 64, 13, 3, 2, 31, 17, 38, 3, - 2, 3, 49, 63, 11, 0, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,217,254,152, 4, 35, 7,115, 2, 38, 0, 40, 0, 0, - 0, 39, 1, 75, 0, 35, 1, 82, 1, 6, 2,103, 23, 0, 0, 34, 64, 22, 2, 31, 20, 39, 1, 12, 5, 38, 2, 0, 28, 34, 1, 0, - 37, 1, 11, 18, 12, 1, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,133,254,152, 4, 72, 6, 33, 2, 38, 0, 72, - 0, 0, 0, 38, 1, 75, 16, 0, 1, 6, 2,103, 23, 0, 0, 34, 64, 22, 3, 42, 23, 39, 2, 23, 17, 38, 3, 23, 39, 45, 11, 0, - 37, 2, 16, 29, 23, 11, 0, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,225, 0, 0, 3,233, 7,225, 2, 38, 0, 44, - 0, 0, 1, 7, 2,102, 0, 31, 1, 82, 0, 19, 64, 11, 1, 18, 5, 38, 1, 32, 33, 12, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0,197, 0, 0, 4, 51, 6,143, 2, 38, 0,243, 0, 0, 1, 6, 2,102, 47, 0, 0, 19, 64, 11, 1, 16, 17, 38, 1, 25, - 31, 10, 7, 5, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,225,254,152, 3,233, 5,182, 2, 38, 0, 44, 0, 0, 1, 6, 2,103, - 0, 0, 0, 19, 64, 11, 1, 15, 20, 39, 1, 1, 12, 18, 1, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,197,254,152, 4, 51, - 6, 14, 2, 38, 0, 76, 0, 0, 1, 6, 2,103, 20, 0, 0, 21,180, 2, 22, 23, 39, 2,184,255,255,180, 19, 25, 16, 14, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 84,254,152, 4,123, 5,205, 2, 38, 0, 50, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, - 23, 20, 39, 2,184,255,255,180, 20, 26, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,254,152, 4, 88, 4, 94, 2, 38, - 0, 82, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 2, 23, 23, 39, 2, 1, 20, 26, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0, -255,255, 0, 84,255,236, 4,123, 7,225, 2, 38, 0, 50, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, 0, 19, 64, 11, 2, 26, 5, 38, - 2, 22, 41, 20, 2, 7, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4, 88, 6,143, 2, 38, 0, 82, 0, 0, 1, 6, - 2,102, 31, 0, 0, 19, 64, 11, 2, 26, 17, 38, 2, 32, 41, 20, 3, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, - 4,131, 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,119, 0,115, 1, 82, 0, 23, 64, 13, 3, 2, 20, 5, 38, 3, 2,113, 28, 43, - 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4,131, 6,127, 2, 38, 0, 82, 0, 0, 1, 6, 3,119, -115, 0, 0, 23, 64, 13, 3, 2, 20, 17, 38, 3, 2,115, 28, 43, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 74, -255,236, 4,123, 7,209, 2, 38, 0, 50, 0, 0, 1, 7, 3,120,255,142, 1, 82, 0, 25,182, 3, 2, 28, 5, 38, 3, 2,184,255, -141,180, 41, 27, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0, 74,255,236, 4, 88, 6,127, 2, 38, 0, 82, 0, 0, - 1, 6, 3,120,142, 0, 0, 25,182, 3, 2, 28, 17, 38, 3, 2,184,255,143,180, 41, 27, 3, 9, 37, 1, 43, 53, 53, 0, 43, 53, - 53, 0,255,255, 0, 84,255,236, 4,123, 8, 74, 2, 38, 0, 50, 0, 0, 1, 7, 3,121, 0, 82, 1, 82, 0, 23, 64, 13, 3, 2, - 20, 5, 38, 3, 2, 81, 28, 37, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 6,248, 2, 38, - 0, 82, 0, 0, 1, 6, 3,121, 82, 0, 0, 23, 64, 13, 3, 2, 20, 17, 38, 3, 2, 83, 28, 37, 3, 9, 37, 1, 43, 53, 53, 0, - 43, 53, 53, 0,255,255, 0, 84,255,236, 4,123, 8, 98, 2, 38, 0, 50, 0, 0, 1, 7, 3,122, 0, 2, 1, 82, 0, 23, 64, 13, - 3, 2, 28, 5, 38, 3, 2, 0, 46, 60, 2, 7, 37, 1, 43, 53, 53, 0, 43, 53, 53, 0,255,255, 0,115,255,236, 4, 88, 7, 16, - 2, 38, 0, 82, 0, 0, 1, 6, 3,122, 2, 0, 0, 23, 64, 13, 3, 2, 28, 17, 38, 3, 2, 2, 46, 60, 3, 9, 37, 1, 43, 53, - 53, 0, 43, 53, 53, 0,255,255, 0, 84,254,152, 4,123, 7,115, 2, 38, 0, 50, 0, 0, 0, 39, 1, 75, 0, 0, 1, 82, 1, 6, - 2,103, 0, 0, 0, 40, 64, 9, 3, 39, 20, 39, 2, 20, 5, 38, 3,184,255,255,181, 36, 42, 2, 7, 37, 2,184,255,255,180, 26, - 20, 2, 7, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0,115,254,152, 4, 88, 6, 33, 2, 38, 0, 82, 0, 0, 0, 38, - 1, 75, 0, 0, 1, 6, 2,103, 0, 0, 0, 34, 64, 22, 3, 39, 23, 39, 2, 20, 17, 38, 3, 1, 36, 42, 3, 9, 37, 2, 1, 26, - 20, 3, 9, 37, 1, 43, 53, 43, 53, 0, 43, 53, 43, 53,255,255, 0, 84,255,236, 4,246, 7,115, 2, 38, 2, 95, 0, 0, 1, 7, - 0,118, 0, 90, 1, 82, 0, 19, 64, 11, 2, 59, 5, 38, 2, 27, 53, 56, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115, -255,236, 4,246, 6, 33, 2, 38, 2, 96, 0, 0, 1, 6, 0,118, 80, 0, 0, 14,183, 2, 2, 2, 44, 47, 10, 25, 37, 1, 43, 53, - 0, 53,255,255, 0, 84,255,236, 4,246, 7,115, 2, 38, 2, 95, 0, 0, 1, 7, 0, 67,255,175, 1, 82, 0, 21,180, 2, 53, 5, - 38, 2,184,255,113,180, 56, 53, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 6, 33, 2, 38, 2, 96, - 0, 0, 1, 6, 0, 67,216, 0, 0, 17,177, 2, 2,184,255,138,180, 47, 44, 10, 25, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 84, -255,236, 4,246, 7,225, 2, 38, 2, 95, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, 0, 21,180, 2, 60, 5, 38, 2,184,255,217,180, - 74, 53, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 6,143, 2, 38, 2, 96, 0, 0, 1, 6, 2,102, - 31, 0, 0, 21,180, 2, 51, 17, 38, 2,184,255,209,180, 65, 44, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 84,255,236, - 4,246, 7, 53, 2, 38, 2, 95, 0, 0, 1, 7, 1, 82, 0, 8, 1, 82, 0, 21,180, 2, 53, 5, 38, 2,184,255,201,180, 54, 63, - 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,115,255,236, 4,246, 5,227, 2, 38, 2, 96, 0, 0, 1, 6, 1, 82, 0, 0, - 0, 17,177, 2, 2,184,255,177,180, 45, 54, 10, 25, 37, 1, 43, 53, 0, 53, 0,255,255, 0, 84,254,152, 4,246, 6, 20, 2, 38, - 2, 95, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, 56, 20, 39, 2,184,255,194,180, 53, 59, 10, 25, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,115,254,152, 4,246, 4,242, 2, 38, 2, 96, 0, 0, 1, 6, 2,103, 0, 0, 0, 21,180, 2, 47, 23, 39, 2, -184,255,178,180, 44, 50, 10, 25, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,254,152, 4, 80, 5,184, 2, 38, 0, 56, 0, 0, - 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 1, 18, 20, 39, 1, 0, 15, 21, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160, -254,152, 4, 45, 4, 74, 2, 38, 0, 88, 0, 0, 1, 6, 2,103, 0, 0, 0, 19, 64, 11, 1, 21, 23, 39, 1, 0, 18, 24, 6, 16, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 4, 80, 7,225, 2, 38, 0, 56, 0, 0, 1, 7, 2,102, 0, 23, 1, 82, - 0, 19, 64, 11, 1, 21, 5, 38, 1, 23, 36, 15, 6, 0, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 4, 45, 6,143, - 2, 38, 0, 88, 0, 0, 1, 6, 2,102, 29, 0, 0, 19, 64, 11, 1, 24, 17, 38, 1, 29, 39, 18, 6, 16, 37, 1, 43, 53, 0, 43, - 53, 0,255,255, 0,125,255,236, 5, 23, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0,118,255,255, 1, 82, 0, 21,180, 1, 45, 5, - 38, 1,184,255,156,180, 39, 42, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6, 33, 2, 38, 2, 98, - 0, 0, 1, 6, 0,118,255, 0, 0, 17,177, 1, 1,184,255,138,180, 40, 43, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,125, -255,236, 5, 23, 7,115, 2, 38, 2, 97, 0, 0, 1, 7, 0, 67,255,110, 1, 82, 0, 21,180, 1, 39, 5, 38, 1,184,255, 11,180, - 42, 39, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6, 33, 2, 38, 2, 98, 0, 0, 1, 7, 0, 67, -255,107, 0, 0, 0, 17,177, 1, 1,184,254,246,180, 43, 40, 12, 33, 37, 1, 43, 53, 0, 53, 0,255,255, 0,125,255,236, 5, 23, - 7,225, 2, 38, 2, 97, 0, 0, 1, 7, 2,102,255,218, 1, 82, 0, 21,180, 1, 46, 5, 38, 1,184,255,119,180, 60, 39, 24, 8, - 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 6,143, 2, 38, 2, 98, 0, 0, 1, 6, 2,102,226, 0, 0, 21, -180, 1, 46, 17, 38, 1,184,255,109,180, 61, 40, 12, 33, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,125,255,236, 5, 23, 7, 53, - 2, 38, 2, 97, 0, 0, 1, 7, 1, 82,255,198, 1, 82, 0, 19, 64, 11, 1, 39, 5, 38, 1, 36, 40, 49, 24, 14, 37, 1, 43, 53, - 0, 43, 53, 0,255,255, 0,160,255,236, 5, 23, 5,227, 2, 38, 2, 98, 0, 0, 1, 6, 1, 82,206, 0, 0, 14,183, 1, 1, 33, - 41, 50, 12, 39, 37, 1, 43, 53, 0, 53,255,255, 0,125,254,152, 5, 23, 6, 20, 2, 38, 2, 97, 0, 0, 1, 6, 2,103,185, 0, - 0, 21,180, 1, 42, 20, 39, 1,184,255, 86,180, 39, 45, 24, 8, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0,160,254,152, 5, 23, - 4,242, 2, 38, 2, 98, 0, 0, 1, 6, 2,103,189, 0, 0, 21,180, 1, 43, 23, 39, 1,184,255, 72,180, 40, 46, 12, 33, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 33,254,152, 4,170, 5,182, 2, 38, 0, 60, 0, 0, 1, 6, 2,103,255, 0, 0, 19, 64, 11, - 1, 12, 20, 39, 1, 0, 9, 15, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 4, 74, 2, 38, 0, 92, - 0, 0, 1, 7, 2,103, 1, 47, 0, 0, 0, 17,177, 1, 1,184, 1, 48,180, 23, 29, 0, 9, 37, 1, 43, 53, 0, 53, 0,255,255, - 0, 33, 0, 0, 4,170, 7,225, 2, 38, 0, 60, 0, 0, 1, 7, 2,102, 0, 20, 1, 82, 0, 19, 64, 11, 1, 15, 5, 38, 1, 21, - 30, 9, 7, 2, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 6,143, 2, 38, 0, 92, 0, 0, 1, 6, 2,102, - 20, 0, 0, 19, 64, 11, 1, 29, 17, 38, 1, 21, 44, 23, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0,255,255, 0, 33, 0, 0, 4,170, - 7, 53, 2, 38, 0, 60, 0, 0, 1, 7, 1, 82, 0, 12, 1, 82, 0, 19, 64, 11, 1, 9, 5, 38, 1, 12, 10, 19, 7, 2, 37, 1, - 43, 53, 0, 43, 53, 0,255,255, 0, 82,254, 20, 4,121, 5,227, 2, 38, 0, 92, 0, 0, 1, 6, 1, 82, 12, 0, 0, 19, 64, 11, - 1, 23, 17, 38, 1, 12, 24, 33, 0, 9, 37, 1, 43, 53, 0, 43, 53, 0, 0, 3, 0,137,254,188, 4,203, 6, 20, 0, 3, 0, 43, - 0, 60, 0,118, 64, 71, 33, 33, 15, 50, 43, 35, 26, 4, 32, 71, 39, 41, 37, 3, 3,144, 41,160, 41, 2, 41, 62, 58, 72, 15, 2, - 2, 0, 15,224, 15,240, 15, 3, 15, 43, 21, 41, 32, 79, 38, 35, 35, 20, 36, 0, 25, 55, 80, 0, 20, 16, 20, 32, 20,176, 20,192, - 20, 5, 20, 15, 4, 44, 80, 10, 1, 78, 2, 10, 22, 0, 63,222,225, 16,225, 50, 63, 93,225, 50, 63, 18, 57, 47, 51,225, 50, 63, - 1, 47, 93, 51, 47, 16,225, 16,206, 93, 50, 47, 50, 16,205,225, 50, 50, 50, 50, 50, 17, 57, 47, 48, 49, 1, 33, 53, 33, 3, 35, - 14, 3, 35, 34, 46, 2, 53, 52, 62, 2, 51, 50, 30, 2, 23, 51, 38, 39, 38, 38, 53, 53, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, - 35, 37, 50, 62, 2, 55, 53, 52, 46, 2, 35, 34, 6, 21, 20, 22, 4, 47,252,152, 3,104,174, 8, 23, 61, 78, 98, 62, 97,158,113, - 62, 62,113,158, 97, 61, 98, 79, 61, 23, 12, 3, 3, 2, 4,254,133, 1,123,182,156,156,147,254,188, 79,109, 67, 32, 2, 28, 68, -111, 84,140,132,132,254,188,140, 1, 75, 34, 61, 46, 26, 70,138,204,134,135,206,139, 71, 25, 44, 58, 32, 33, 31, 26, 55, 16,158, -137,182,182,137,251, 43,131, 44, 89,133, 90, 39, 97,149,102, 52,206,196,198,195, 0, 2, 0,205, 4,217, 3,172, 6, 33, 0, 13, - 0, 27, 0, 48, 64, 24, 15,130, 14, 14, 20, 1,130, 0, 0, 8,133, 95, 6, 1, 6, 6, 22,133, 20, 21, 7,128, 15, 0, 0, 47, - 50, 26,205, 50, 1, 47,225, 51, 47, 93,225, 51, 47,225, 17, 51, 47,225, 48, 49, 1, 35, 46, 3, 39, 53, 51, 30, 3, 23, 5, 35, - 46, 3, 39, 53, 51, 30, 3, 23, 3,172,100, 34, 82, 77, 64, 16,199, 16, 43, 46, 48, 21,254,150,101, 34, 82, 77, 63, 16,198, 16, - 43, 46, 48, 22, 4,217, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 27, 28, 83, 88, 81, 27, 21, 34, 81, 81, 76, 29, 0, 0, 2, - 0,188, 4,217, 4, 16, 6,127, 0, 16, 0, 28, 0, 68, 64, 35, 22,136, 23, 23, 27,130, 63, 28, 79, 28,111, 28, 3, 28, 28, 13, - 13, 12, 4, 4, 8, 1, 0, 0, 7, 8, 22,128, 27, 64, 4, 12,128, 7, 0, 0, 47, 50, 26,205, 50, 26,222, 26,205, 1, 47, 51, - 51, 47, 51, 18, 57, 17, 51, 51, 17, 51, 47, 93,225, 51, 47,225, 48, 49, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, 54, 55, 51, - 22, 22, 23, 39, 62, 3, 55, 51, 21, 6, 6, 7, 35, 3, 43,100, 51,108, 52, 54,106, 51,101, 51,116, 48,193, 48,116, 51, 78, 20, - 32, 30, 29, 16,180, 45,106, 55,101, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59,194, 26, 44, 46, 52, 33, 21, 60, -103, 43, 0, 2, 0,188, 4,217, 4, 16, 6,127, 0, 16, 0, 28, 0, 68, 64, 35, 23,136, 22, 64, 18,130, 48, 17, 64, 17, 96, 17, - 3, 17, 17, 3, 3, 4, 12, 12, 16, 9, 8, 8, 15, 16, 23,128, 18, 64, 12, 3,128, 9, 15, 0, 47, 51, 26,205, 50, 26,220, 26, -205, 1, 47, 51, 51, 47, 51, 18, 57, 17, 51, 51, 17, 51, 47, 93,225, 26,221,225, 48, 49, 1, 54, 54, 55, 51, 22, 22, 23, 21, 35, - 38, 38, 39, 6, 6, 7, 35, 55, 35, 38, 38, 39, 53, 51, 30, 3, 23, 1,162, 51,116, 48,192, 48,116, 51,100, 51,106, 54, 53,107, - 51,100, 78,101, 55,107, 45,181, 16, 29, 29, 33, 20, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, 84, 34,195, 43,103, 60, - 21, 33, 52, 46, 44, 26, 0, 2, 0,221, 4,217, 3,240, 6,248, 0, 16, 0, 41, 0, 95, 64, 52, 23,130, 24, 24, 36, 28,130, 15, - 17, 31, 17, 2, 17, 17, 15, 36, 31, 36, 2, 36, 64, 12, 15, 72, 36, 36, 13, 13, 12, 4, 4, 8, 1, 0, 0, 7, 8, 22, 25, 25, - 24, 33,140, 39, 39, 24, 64, 4, 12,128, 1, 7, 0, 47, 51, 26,205, 50, 26,204, 50, 47,237, 18, 57, 47, 51, 1, 47, 51, 51, 47, - 51, 18, 57, 17, 51, 51, 17, 51, 47, 43, 93, 51, 47, 93,225, 17, 57, 47,225, 48, 49, 1, 35, 38, 38, 39, 6, 6, 7, 35, 53, 54, - 54, 55, 51, 22, 22, 23, 19, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 46, 2, 35, 34, 6, 7, 53, 54, 51, 50, 22, 3, 76,101, - 51,107, 53, 54,105, 51,101, 51,116, 48,193, 48,116, 51,164, 20, 35, 45, 25, 6, 86, 11, 56, 65, 15, 27, 37, 21, 22, 39, 11, 21, - 59, 99,100, 4,217, 34, 84, 48, 48, 84, 34, 27, 59,132, 69, 69,132, 59, 1,118, 29, 43, 30, 21, 6, 81,131, 9, 31, 37, 19, 24, - 14, 5, 3, 3, 82, 6, 69, 0, 0, 2, 1, 35, 4,217, 3,168, 7, 16, 0, 16, 0, 44, 0,102, 64, 36, 20, 26, 39,130, 40, 34, - 25, 40, 4, 3, 12, 12, 16, 9, 8, 8, 15, 40, 31, 40, 47, 40, 3, 40, 40, 25,130, 26, 15, 16, 16, 26, 39, 39, 31, 31,184, 1, - 1,179, 22, 25, 64, 36,184, 1, 1,183, 17, 17, 25, 12, 3,128, 9, 15, 0, 47, 51, 26,221, 50,198, 50, 47,225, 26, 16,218,225, - 47, 50, 47, 1, 47, 51, 47, 51, 16,237, 51, 47, 93, 51, 47, 51, 18, 57, 17, 51, 51, 17, 18, 57, 16,237, 17, 57, 49, 48, 1, 54, - 54, 55, 51, 22, 22, 23, 21, 35, 38, 38, 39, 6, 6, 7, 35, 1, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, - 54, 55, 51, 14, 3, 1, 45, 51,116, 48,193, 48,116, 51,101, 51,106, 54, 52,108, 51,100, 1,191, 36, 72, 69, 63, 29, 40, 42, 14, - 92, 5, 28, 48, 66, 41, 38, 74, 69, 62, 26, 40, 42, 14, 92, 4, 29, 48, 66, 4,244, 59,132, 69, 69,132, 59, 27, 34, 84, 48, 48, - 84, 34, 1, 90, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 2, 1, 57, 4,217, 3,147, 6,193, - 0, 11, 0, 31, 0, 45, 64, 22, 0, 11, 1, 11, 64, 7, 31,131, 12, 12, 21,131, 20, 5,128, 11, 11, 31, 20, 26,143, 17, 0, 47, -253,204, 50, 50, 47, 26,204, 1, 47,225, 51, 47,225,214, 26,205, 93, 48, 49, 1, 62, 3, 55, 51, 21, 6, 6, 7, 35, 37, 14, 3, - 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 2, 37, 20, 32, 30, 29, 16,180, 45,106, 56,100, 1,110, 4, 44, 76,110, 71,146, -144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, 5,248, 25, 44, 46, 53, 33, 21, 60,103, 44, 6, 60, 99, 69, 38,139,127, 43, - 49, 26, 7, 9, 27, 49, 40, 0, 0, 2, 1, 57, 4,217, 3,147, 6,193, 0, 11, 0, 31, 0, 47, 64, 23, 31,131, 12, 12, 20, 15, - 0, 1, 0, 64, 4, 21,131, 20, 5,128, 1, 1, 31, 20, 26,143, 17, 0, 47,253,204, 50, 50, 47, 26,205, 1, 47,225,214, 26,205, - 93, 17, 51, 47,225, 48, 49, 1, 35, 38, 38, 39, 53, 51, 30, 3, 23, 23, 14, 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, - 2,152,101, 56,106, 45,181, 16, 29, 29, 33, 20,251, 4, 44, 76,110, 71,146,144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, - 5,221, 44,103, 60, 21, 33, 53, 46, 44, 25, 21, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40, 0, 2, 1, 57, 4,217, - 3,147, 7, 6, 0, 19, 0, 43, 0, 86, 64, 48, 26, 26, 27, 27, 37, 37, 31, 20, 64, 9, 12, 72, 20, 20, 0, 9,131, 8, 19,131, - 31, 0, 1, 0, 25, 28, 28, 27, 34,140, 41,128,143, 27,159, 27,175, 27, 3, 27, 27, 14, 19, 8, 8, 14,143, 5, 0, 47,241,200, - 47, 50, 16,202, 47, 93, 26,220,225, 18, 57, 17, 51, 1, 47, 93,225, 47,225, 18, 57, 47, 43,193, 51, 47, 57, 47, 51, 47, 48, 49, - 1, 14, 3, 35, 34, 38, 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 20, 14, 2, 7, 7, 35, 39, 54, 54, 53, 52, 38, 35, 34, 6, 7, - 53, 54, 54, 51, 50, 22, 3,147, 4, 44, 76,110, 71,146,144, 7,109, 4, 27, 48, 68, 43, 36, 66, 51, 34, 4, 43, 20, 35, 45, 25, - 6, 86, 11, 56, 65, 57, 43, 22, 39, 11, 11, 38, 31, 99,100, 5,227, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40,150, - 29, 43, 31, 20, 6, 41, 90, 9, 32, 37, 37, 24, 3, 3, 82, 3, 3, 69, 0, 2, 1, 35, 4,217, 3,168, 7, 16, 0, 19, 0, 47, - 0, 88, 64, 24, 25, 34, 20, 39, 34, 39, 43, 28,130, 29, 29, 9,131, 8, 42,130, 43, 43, 19,131, 0, 42, 42, 34,184, 1, 1,178, - 25, 29, 39,184, 1, 1, 64, 12, 64, 20, 20, 29, 8, 19, 19, 8,128, 14,143, 5, 0, 47,225, 26,205, 50, 47, 16,198, 50, 47, 26, -237, 16,220,237, 50, 47, 1, 47,225, 51, 47,225, 47,225, 51, 47,225, 18, 57, 57, 17, 51, 17, 51, 49, 48, 1, 14, 3, 35, 34, 38, - 39, 51, 30, 3, 51, 50, 62, 2, 55, 39, 34, 46, 2, 35, 34, 6, 7, 35, 62, 3, 51, 50, 30, 2, 51, 50, 54, 55, 51, 14, 3, 3, -139, 4, 44, 76,110, 71,146,145, 6,109, 4, 27, 48, 67, 44, 36, 65, 51, 34, 5, 47, 36, 72, 69, 63, 29, 40, 42, 14, 92, 5, 28, - 48, 66, 41, 38, 74, 69, 62, 26, 40, 42, 14, 92, 4, 29, 48, 66, 5,227, 60, 99, 69, 38,139,127, 43, 49, 26, 7, 9, 27, 49, 40, - 80, 28, 34, 28, 42, 50, 48, 81, 59, 33, 28, 34, 28, 43, 49, 48, 81, 59, 33, 0, 0, 1, 1,199,254, 66, 3, 6, 0, 0, 0, 20, - 0, 34, 64, 18, 3, 15, 2, 31, 2, 47, 2, 3, 2, 2, 14, 8,132, 0, 18,142, 11, 2, 0, 47, 47,225, 1, 47,237,204, 51, 47, - 93, 51, 48, 49, 5, 52, 39, 51, 30, 3, 21, 20, 6, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 2,113,140,129, 26, 57, 47, 30,100, -101, 29, 63, 26, 14, 45, 25, 34, 52,238,106,132, 19, 52, 64, 75, 42, 90,104, 8, 8,113, 4, 5, 43, 0, 0, 1, 1,178,254,109, - 3, 25, 0,166, 0, 17, 0, 24, 64, 10, 9, 1, 73, 16, 10, 13, 80, 9, 6, 0, 0, 47, 47, 51,225, 50, 1, 47,225,204, 48, 49, - 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, 22, 51, 50, 54, 53, 17, 3, 25, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,166, -254,217, 66,102, 70, 36, 17, 9,150, 7, 14, 49, 49, 1, 60, 0, 0, 1, 1,178,254,109, 3, 25, 0,154, 0, 17, 0, 24, 64, 10, - 9, 1, 73, 16, 10, 13, 80, 9, 6, 0, 0, 47, 47, 51,237, 50, 1, 47,225,204, 48, 49, 37, 17, 14, 3, 35, 34, 38, 39, 53, 22, - 22, 51, 50, 54, 53, 17, 3, 25, 1, 26, 57, 89, 63, 38, 63, 22, 14, 59, 34, 46, 50,154,254,229, 66,102, 70, 36, 17, 9,150, 7, - 14, 49, 49, 1, 48, 0, 0, 0, 0, 0, 0, 27, 1, 74, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 1, 0, 15, 0, 52, 0, 1, 0, 0, 0, 0, 0, 2, 0, 7, 0, 67, 0, 1, 0, 0, 0, 0, 0, 3, 0, 26, 0, 74, 0, 1, - 0, 0, 0, 0, 0, 4, 0, 15, 0, 52, 0, 1, 0, 0, 0, 0, 0, 5, 0, 12, 0,100, 0, 1, 0, 0, 0, 0, 0, 6, 0, 13, - 0,112, 0, 1, 0, 0, 0, 0, 0, 7, 0, 78, 0,125, 0, 1, 0, 0, 0, 0, 0, 8, 0, 20, 0,203, 0, 1, 0, 0, 0, 0, - 0, 10, 0,103, 0,223, 0, 1, 0, 0, 0, 0, 0, 13, 0, 46, 1, 70, 0, 1, 0, 0, 0, 0, 0, 14, 0, 42, 1,116, 0, 1, - 0, 0, 0, 0, 0, 18, 0, 15, 0, 52, 0, 3, 0, 1, 4, 9, 0, 0, 0,104, 1,158, 0, 3, 0, 1, 4, 9, 0, 1, 0, 30, - 2, 6, 0, 3, 0, 1, 4, 9, 0, 2, 0, 14, 2, 36, 0, 3, 0, 1, 4, 9, 0, 3, 0, 52, 2, 50, 0, 3, 0, 1, 4, 9, - 0, 4, 0, 30, 2, 6, 0, 3, 0, 1, 4, 9, 0, 5, 0, 44, 2,102, 0, 3, 0, 1, 4, 9, 0, 6, 0, 26, 2,146, 0, 3, - 0, 1, 4, 9, 0, 7, 0,156, 2,172, 0, 3, 0, 1, 4, 9, 0, 8, 0, 40, 3, 72, 0, 3, 0, 1, 4, 9, 0, 10, 0,206, - 3,112, 0, 3, 0, 1, 4, 9, 0, 11, 0, 56, 4, 62, 0, 3, 0, 1, 4, 9, 0, 12, 0, 92, 4,118, 0, 3, 0, 1, 4, 9, - 0, 13, 0, 92, 4,210, 0, 3, 0, 1, 4, 9, 0, 14, 0, 84, 5, 46, 68,105,103,105,116,105,122,101,100, 32,100, 97,116, 97, - 32, 99,111,112,121,114,105,103,104,116, 32,169, 32, 50, 48, 48, 55, 44, 32, 71,111,111,103,108,101, 32, 67,111,114,112,111,114, - 97,116,105,111,110, 46, 68,114,111,105,100, 32, 83, 97,110,115, 32, 77,111,110,111, 82,101,103,117,108, 97,114, 65,115, 99,101, -110,100,101,114, 32, 45, 32, 68,114,111,105,100, 32, 83, 97,110,115, 32, 77,111,110,111, 86,101,114,115,105,111,110, 32, 49, 46, - 48, 48, 68,114,111,105,100, 83, 97,110,115, 77,111,110,111, 68,114,111,105,100, 32,105,115, 32, 97, 32,116,114, 97,100,101,109, - 97,114,107, 32,111,102, 32, 71,111,111,103,108,101, 32, 97,110,100, 32,109, 97,121, 32, 98,101, 32,114,101,103,105,115,116,101, -114,101,100, 32,105,110, 32, 99,101,114,116, 97,105,110, 32,106,117,114,105,115,100,105, 99,116,105,111,110,115, 46, 65,115, 99, -101,110,100,101,114, 32, 67,111,114,112,111,114, 97,116,105,111,110, 68,114,111,105,100, 32, 83, 97,110,115, 32,105,115, 32, 97, - 32,104,117,109, 97,110,105,115,116, 32,115, 97,110,115, 32,115,101,114,105,102, 32,116,121,112,101,102, 97, 99,101, 32,100,101, -115,105,103,110,101,100, 32,102,111,114, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101,115, 32, 97,110,100, 32,101, -108,101, 99,116,114,111,110,105, 99, 32, 99,111,109,109,117,110,105, 99, 97,116,105,111,110, 46, 76,105, 99,101,110,115,101,100, - 32,117,110,100,101,114, 32,116,104,101, 32, 65,112, 97, 99,104,101, 32, 76,105, 99,101,110,115,101, 44, 32, 86,101,114,115,105, -111,110, 32, 50, 46, 48,104,116,116,112, 58, 47, 47,119,119,119, 46, 97,112, 97, 99,104,101, 46,111,114,103, 47,108,105, 99,101, -110,115,101,115, 47, 76, 73, 67, 69, 78, 83, 69, 45, 50, 46, 48, 0, 68, 0,105, 0,103, 0,105, 0,116, 0,105, 0,122, 0,101, - 0,100, 0, 32, 0,100, 0, 97, 0,116, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, - 0, 32, 0,169, 0, 32, 0, 50, 0, 48, 0, 48, 0, 55, 0, 44, 0, 32, 0, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, - 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0, 68, 0,114, 0,111, 0,105, - 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77, 0,111, 0,110, 0,111, 0, 82, 0,101, 0,103, 0,117, 0,108, - 0, 97, 0,114, 0, 65, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 45, 0, 32, 0, 68, 0,114, 0,111, - 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77, 0,111, 0,110, 0,111, 0, 86, 0,101, 0,114, 0,115, - 0,105, 0,111, 0,110, 0, 32, 0, 49, 0, 46, 0, 48, 0, 48, 0, 32, 0, 98, 0,117, 0,105, 0,108, 0,100, 0, 32, 0, 49, - 0, 49, 0, 50, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 83, 0, 97, 0,110, 0,115, 0, 77, 0,111, 0,110, 0,111, 0, 68, - 0,114, 0,111, 0,105, 0,100, 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, 71, 0,111, 0,111, 0,103, 0,108, 0,101, 0, 32, 0, 97, 0,110, - 0,100, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,114, 0,101, 0,103, 0,105, 0,115, 0,116, 0,101, - 0,114, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 99, 0,101, 0,114, 0,116, 0, 97, 0,105, 0,110, 0, 32, 0,106, - 0,117, 0,114, 0,105, 0,115, 0,100, 0,105, 0, 99, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 46, 0, 65, 0,115, 0, 99, - 0,101, 0,110, 0,100, 0,101, 0,114, 0, 32, 0, 67, 0,111, 0,114, 0,112, 0,111, 0,114, 0, 97, 0,116, 0,105, 0,111, - 0,110, 0, 68, 0,114, 0,111, 0,105, 0,100, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0,105, 0,115, 0, 32, 0, 97, - 0, 32, 0,104, 0,117, 0,109, 0, 97, 0,110, 0,105, 0,115, 0,116, 0, 32, 0,115, 0, 97, 0,110, 0,115, 0, 32, 0,115, - 0,101, 0,114, 0,105, 0,102, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0, 32, 0,100, 0,101, - 0,115, 0,105, 0,103, 0,110, 0,101, 0,100, 0, 32, 0,102, 0,111, 0,114, 0, 32, 0,117, 0,115, 0,101, 0,114, 0, 32, - 0,105, 0,110, 0,116, 0,101, 0,114, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,101, - 0,108, 0,101, 0, 99, 0,116, 0,114, 0,111, 0,110, 0,105, 0, 99, 0, 32, 0, 99, 0,111, 0,109, 0,109, 0,117, 0,110, - 0,105, 0, 99, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 46, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, - 0,119, 0,119, 0, 46, 0, 97, 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, - 0, 99, 0,111, 0,109, 0, 47, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, - 0,115, 0, 99, 0,101, 0,110, 0,100, 0,101, 0,114, 0, 99, 0,111, 0,114, 0,112, 0, 46, 0, 99, 0,111, 0,109, 0, 47, - 0,116, 0,121, 0,112, 0,101, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,101, 0,114, 0,115, 0, 46, 0,104, 0,116, - 0,109, 0,108, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 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, 65, 0,112, 0, 97, 0, 99, 0,104, 0,101, 0, 32, 0, 76, 0,105, 0, 99, 0,101, - 0,110, 0,115, 0,101, 0, 44, 0, 32, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50, 0, 46, 0, 48, - 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,119, 0,119, 0,119, 0, 46, 0, 97, 0,112, 0, 97, 0, 99, 0,104, - 0,101, 0, 46, 0,111, 0,114, 0,103, 0, 47, 0,108, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0,115, 0, 47, 0, 76, - 0, 73, 0, 67, 0, 69, 0, 78, 0, 83, 0, 69, 0, 45, 0, 50, 0, 46, 0, 48, 0, 2, 0, 0, 0, 0, 0, 0,255,102, 0,102, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 0, 0, 1, 2, 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, 3, 0,138, 1, 4, 0,131, 0,147, 0,242, - 0,243, 0,141, 0,151, 0,136, 1, 5, 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, 6, 1, 7, 1, 8, - 1, 9, 1, 10, 1, 11, 0,253, 0,254, 1, 12, 1, 13, 1, 14, 1, 15, 0,255, 1, 0, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, - 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 0,248, 0,249, 1, 32, 1, 33, 1, 34, - 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, 0,215, 1, 49, - 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, 0,226, 0,227, - 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 0,176, - 0,177, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 0,251, 0,252, 0,228, 0,229, 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, - 1,106, 1,107, 1,108, 1,109, 1,110, 0,187, 1,111, 1,112, 1,113, 1,114, 0,230, 0,231, 1,115, 0,166, 1,116, 1,117, - 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 0,216, 0,225, 1,124, 0,219, 0,220, 0,221, 0,224, 0,217, 0,223, 1,125, - 1,126, 1,127, 1,128, 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, 0,155, 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, 0,178, 0,179, 2, 42, - 2, 43, 0,182, 0,183, 0,196, 2, 44, 0,180, 0,181, 0,197, 0,130, 0,194, 0,135, 0,171, 0,198, 2, 45, 2, 46, 0,190, - 0,191, 2, 47, 0,188, 2, 48, 0,247, 2, 49, 2, 50, 2, 51, 2, 52, 2, 53, 2, 54, 0,140, 0,159, 2, 55, 2, 56, 2, 57, - 2, 58, 2, 59, 0,152, 2, 60, 0,154, 0,153, 0,239, 0,165, 0,146, 0,156, 0,167, 0,143, 0,148, 0,149, 0,185, 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, 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, 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, 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, 5, 46,110,117,108,108, - 7,117,110,105, 48, 48, 65, 68, 9,111,118,101,114,115, 99,111,114,101, 14,112,101,114,105,111,100, 99,101,110,116,101,114,101, -100, 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, 4, 67,100,111,116, 4, 99,100,111,116, 6, 68, 99, 97,114,111,110, 6,100, 99, 97,114,111,110, 6, - 68, 99,114,111, 97,116, 6,100, 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, 4, 71,100,111,116, 4,103,100,111, -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, 10, 73,100,111,116, 97, 99, - 99,101,110,116, 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, 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, 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, 6,109, 97, 99,114,111,110, 5,116,111,110,111,115, 13,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, 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, @@ -3528,141 +9051,634 @@ char datatoc_bmonofont_ttf[]= { 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, 7,117,110,105, 48, 51, 65, 57, 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, 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, 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, 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, - 9, 97,102,105,105, 49, 48, 49, 49, 48, 9, 97,102,105,105, 49, 48, 49, 57, 51, 9, 97,102,105,105, 49, 48, 48, 53, 48, 9, 97, -102,105,105, 49, 48, 48, 57, 56, 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, 6, 89,103,114, 97,118,101, 6, -121,103,114, 97,118,101, 9, 97,102,105,105, 48, 48, 50, 48, 56, 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, 6,109,105,110,117,116,101, 6,115,101, 99,111,110,100, 9,101,120, 99,108, 97, -109,100, 98,108, 9,110,115,117,112,101,114,105,111,114, 9, 97,102,105,105, 48, 56, 57, 52, 49, 6,112,101,115,101,116, 97, 4, - 69,117,114,111, 9, 97,102,105,105, 54, 49, 50, 52, 56, 9, 97,102,105,105, 54, 49, 50, 56, 57, 9, 97,102,105,105, 54, 49, 51, - 53, 50, 9,101,115,116,105,109, 97,116,101,100, 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, 5, 68,101,108, -116, 97, 7,117,110,105, 70, 66, 48, 49, 7,117,110,105, 70, 66, 48, 50, 13, 99,121,114,105,108,108,105, 99, 98,114,101,118,101, - 8,100,111,116,108,101,115,115,106, 16, 99, 97,114,111,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 11, 99,111,109,109, 97, - 97, 99, 99,101,110,116, 17, 99,111,109,109, 97, 97, 99, 99,101,110,116,114,111,116, 97,116,101, 12,122,101,114,111,115,117,112, -101,114,105,111,114, 12,102,111,117,114,115,117,112,101,114,105,111,114, 12,102,105,118,101,115,117,112,101,114,105,111,114, 11, -115,105,120,115,117,112,101,114,105,111,114, 13,115,101,118,101,110,115,117,112,101,114,105,111,114, 13,101,105,103,104,116,115, -117,112,101,114,105,111,114, 12,110,105,110,101,115,117,112,101,114,105,111,114, 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, 7,117,110,105, 70, 69, 70, 70, 7,117,110,105, - 70, 70, 70, 67, 7,117,110,105, 70, 70, 70, 68, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 50, 66, 67, 7,117,110,105, - 48, 51, 68, 49, 7,117,110,105, 48, 51, 68, 50, 7,117,110,105, 48, 51, 68, 54, 7,117,110,105, 49, 69, 51, 69, 7,117,110,105, - 49, 69, 51, 70, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105, 49, 70, 52, 68, 7,117,110,105, - 48, 50, 70, 51, 9,100, 97,115,105, 97,111,120,105, 97, 7,117,110,105, 70, 66, 48, 51, 7,117,110,105, 70, 66, 48, 52, 5, 79, -104,111,114,110, 5,111,104,111,114,110, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 51, 48, 48, 7,117, -110,105, 48, 51, 48, 49, 7,117,110,105, 48, 51, 48, 51, 4,104,111,111,107, 8,100,111,116, 98,101,108,111,119, 7,117,110,105, - 48, 52, 48, 48, 7,117,110,105, 48, 52, 48, 68, 7,117,110,105, 48, 52, 53, 48, 7,117,110,105, 48, 52, 53, 68, 7,117,110,105, - 48, 52, 54, 48, 7,117,110,105, 48, 52, 54, 49, 7,117,110,105, 48, 52, 54, 50, 7,117,110,105, 48, 52, 54, 51, 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, 7,117,110,105, 48, 52, 55, 50, 7,117,110,105, 48, 52, 55, 51, 7,117,110,105, - 48, 52, 55, 52, 7,117,110,105, 48, 52, 55, 53, 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, 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, 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, 52, 70, 65, 7,117,110,105, - 48, 52, 70, 66, 7,117,110,105, 48, 52, 70, 67, 7,117,110,105, 48, 52, 70, 68, 7,117,110,105, 48, 52, 70, 69, 7,117,110,105, - 48, 52, 70, 70, 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, 49, 48, 7,117,110,105, 48, 53, 49, 49, 7,117,110,105, 48, 53, 49, 50, 7,117,110,105, - 48, 53, 49, 51, 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, 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, 50, 48, 65, 66, 7,117,110,105, 48, 51, 48, 70, 19, 99,105,114, 99,117,109,102,108,101,120, 97, - 99,117,116,101, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,103,114, 97,118,101, 99,111,109, 98, 18, 99,105,114, - 99,117,109,102,108,101,120,104,111,111,107, 99,111,109, 98, 19, 99,105,114, 99,117,109,102,108,101,120,116,105,108,100,101, 99, -111,109, 98, 14, 98,114,101,118,101, 97, 99,117,116,101, 99,111,109, 98, 14, 98,114,101,118,101,103,114, 97,118,101, 99,111,109, - 98, 13, 98,114,101,118,101,104,111,111,107, 99,111,109, 98, 14, 98,114,101,118,101,116,105,108,100,101, 99,111,109, 98, 16, 99, -121,114,105,108,108,105, 99,104,111,111,107,108,101,102,116, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 85, - 67, 17, 99,121,114,105,108,108,105, 99, 98,105,103,104,111,111,107, 76, 67, 0, 0, 0, 0, 2, 0, 5, 0, 2,255,255, 0, 3, +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/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index 8e83b01fc2f..07858f7182c 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -778,7 +778,7 @@ void draw_gpencil_view2d (bContext *C, short onlyv2d) * 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_ext (Scene *scene, View3D *v3d, ARegion *ar, short only3d) +void draw_gpencil_view3d (Scene *scene, View3D *v3d, ARegion *ar, short only3d) { bGPdata *gpd; int dflag = 0; @@ -809,12 +809,4 @@ void draw_gpencil_view3d_ext (Scene *scene, View3D *v3d, ARegion *ar, short only gp_draw_data(gpd, rect.xmin, rect.ymin, rect.xmax, rect.ymax, CFRA, dflag); } -void draw_gpencil_view3d (bContext *C, short only3d) -{ - ARegion *ar= CTX_wm_region(C); - View3D *v3d= CTX_wm_view3d(C); - Scene *scene= CTX_data_scene(C); - draw_gpencil_view3d_ext(scene, v3d, ar, only3d); -} - /* ************************************************** */ diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index bfd16487ae5..a640b5c911c 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -78,8 +78,7 @@ void ED_operatortypes_gpencil(void); void draw_gpencil_2dimage(struct bContext *C, struct ImBuf *ibuf); void draw_gpencil_view2d(struct bContext *C, short onlyv2d); -void draw_gpencil_view3d(struct bContext *C, short only3d); -void draw_gpencil_view3d_ext(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, short only3d); +void draw_gpencil_view3d(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, short only3d); void gpencil_panel_standard(const struct bContext *C, struct Panel *pa); diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index aefe773fdad..4d2e23b5724 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -133,14 +133,15 @@ void uiDrawBox(int mode, float minx, float miny, float maxx, float maxy, float r glEnd(); } -static void round_box_shade_col(const float col1[3], float const col2[3], const float fac) +static void round_box_shade_col(const float col1[4], float const col2[4], const float fac) { - float col[3]; + float col[4]; col[0]= (fac*col1[0] + (1.0f-fac)*col2[0]); col[1]= (fac*col1[1] + (1.0f-fac)*col2[1]); col[2]= (fac*col1[2] + (1.0f-fac)*col2[2]); - glColor3fv(col); + col[3]= (fac*col1[3] + (1.0f-fac)*col2[3]); + glColor4fv(col); } /* linear horizontal shade within button or in outline */ @@ -151,7 +152,7 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}}; const float div= maxy - miny; const float idiv= 1.0f / div; - float coltop[3], coldown[3], color[4]; + float coltop[4], coldown[4], color[4]; int a; /* mult */ @@ -165,9 +166,11 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl 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; + coltop[3]= color[3]; 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; + coldown[3]= color[3]; glShadeModel(GL_SMOOTH); glBegin(mode); @@ -259,7 +262,7 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}}; const float div= maxx - minx; const float idiv= 1.0f / div; - float colLeft[3], colRight[3], color[4]; + float colLeft[4], colRight[4], color[4]; int a; /* mult */ @@ -273,9 +276,11 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float 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; + colLeft[3]= color[3]; 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; + colRight[3]= color[3]; glShadeModel(GL_SMOOTH); glBegin(mode); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 84cbc84630c..b3e7417b438 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -119,7 +119,7 @@ typedef enum { /* internal panel drawing defines */ #define PNL_GRID (UI_UNIT_Y / 5) /* 4 default */ -#define PNL_HEADER UI_UNIT_Y /* 20 default */ +#define PNL_HEADER (UI_UNIT_Y+2) /* 20 default */ /* panel->flag */ #define PNL_SELECT 1 diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 17a2de56371..c69f8c69ad4 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -497,14 +497,15 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect) headrect.ymax= headrect.ymin + floor(PNL_HEADER/block->aspect + 0.001f); { - float minx= rect->xmin/block->aspect; - float maxx= rect->xmax/block->aspect; + float minx= rect->xmin + 0.0f/block->aspect; + float maxx= rect->xmax - 0.0f/block->aspect; float y= headrect.ymax; glEnable(GL_BLEND); glColor4f(0.0f, 0.0f, 0.0f, 0.1f); - uiSetRoundBox(0); - uiDrawBox(GL_POLYGON, minx, headrect.ymin, maxx, y+1, 4); + glRectf(minx, y-1, maxx, y); + glColor4f(0.0f, 0.0f, 0.0f, 0.1f); + glRectf(minx, headrect.ymin, maxx, y); glDisable(GL_BLEND); } @@ -588,12 +589,12 @@ static int get_panel_header(Panel *pa) return PNL_HEADER; } -static int get_panel_size_y(uiStyle *style, Panel *pa) +static int get_panel_size_y(uiStyle *UNUSED(style), Panel *pa) { if(pa->type && (pa->type->flag & PNL_NO_HEADER)) return pa->sizey; - return PNL_HEADER + pa->sizey + style->panelouter; + return PNL_HEADER + pa->sizey; } /* this function is needed because uiBlock and Panel itself dont diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c index f74f2be12bc..3b2ef025b5a 100644 --- a/source/blender/editors/interface/interface_style.c +++ b/source/blender/editors/interface/interface_style.c @@ -124,7 +124,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name, short uifont_id style->buttonspacex= 8; style->buttonspacey= 2; style->panelspace= 8; - style->panelouter= 3; + style->panelouter= 0; return style; } diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index a9fcf767adb..d1d891baa21 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -97,8 +97,9 @@ typedef struct uiWidgetBase { float inner_v[WIDGET_SIZE_MAX][2]; float inner_uv[WIDGET_SIZE_MAX][2]; - short inner, outline, emboss; /* set on/off */ + short inner, outline; /* set on/off */ short shadedir; + float emboss; uiWidgetTrias tria1; uiWidgetTrias tria2; @@ -211,7 +212,7 @@ static void widget_init(uiWidgetBase *wtb) wtb->inner= 1; wtb->outline= 1; - wtb->emboss= 0; + wtb->emboss= 0.015f; wtb->shadedir= 1; } @@ -750,7 +751,7 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol) /* emboss bottom shadow */ if(wtb->emboss) { - glColor4f(1.0f, 1.0f, 1.0f, 0.02f); + glColor4f(1.0f, 1.0f, 1.0f, wtb->emboss); glVertexPointer(2, GL_FLOAT, 0, quad_strip_emboss); glDrawArrays(GL_QUAD_STRIP, 0, wtb->halfwayvert*2); @@ -1304,7 +1305,7 @@ static struct uiWidgetColors wcol_menu= { {0, 0, 0, 255}, {70, 70, 70, 255}, {70, 70, 70, 255}, - {45, 45, 45, 255}, + {35, 35, 35, 255}, {255, 255, 255, 255}, {204, 204, 204, 255}, @@ -1392,7 +1393,7 @@ static struct uiWidgetColors wcol_tool= { {255, 255, 255, 255}, 1, - 5, -5 + 10, -20 }; static struct uiWidgetColors wcol_box= { @@ -1719,7 +1720,7 @@ static void widget_menu_back(uiWidgetColors *wcol, rcti *rect, int flag, int dir widget_softshadow(rect, roundboxalign, 5.0f, 8.0f); round_box_edges(&wtb, roundboxalign, rect, 5.0f); - wtb.emboss= 0; + wtb.emboss= 0.0f; widgetbase_draw(&wtb, wcol); glDisable(GL_BLEND); @@ -2221,7 +2222,7 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat } /* draw */ - wtb.emboss= 0; /* only emboss once */ + wtb.emboss= 0.0f; /* only emboss once */ /* exception for progress bar */ if (state & UI_SCROLL_NO_OUTLINE) @@ -2573,12 +2574,11 @@ static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int { if(state & UI_ACTIVE) { uiWidgetBase wtb; - float rad= 0.5f*(rect->ymax - rect->ymin); // 4.0f widget_init(&wtb); /* half rounded */ - round_box_edges(&wtb, UI_CNR_ALL, rect, rad); + round_box_edges(&wtb, UI_CNR_ALL, rect, 4.0f); widgetbase_draw(&wtb, wcol); } diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 2db00ac83c1..999c256f026 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -71,6 +71,39 @@ /* general area and region code */ +static void region_draw_emboss(ARegion *ar, rcti *scirct) +{ + rcti rect; + + /* translate scissor rect to region space */ + rect.xmin= scirct->xmin - ar->winrct.xmin; + rect.ymin= scirct->ymin - ar->winrct.ymin; + rect.xmax= scirct->xmax - ar->winrct.xmin; + rect.ymax= scirct->ymax - ar->winrct.ymin; + + /* set transp line */ + glEnable( GL_BLEND ); + glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); + + /* right */ + glColor4ub(0,0,0, 30); + sdrawline(rect.xmax, rect.ymin, rect.xmax, rect.ymax); + + /* bottom */ + glColor4ub(0,0,0, 30); + sdrawline(rect.xmin, rect.ymin, rect.xmax, rect.ymin); + + /* top */ + glColor4ub(255,255,255, 30); + sdrawline(rect.xmin, rect.ymax, rect.xmax, rect.ymax); + + /* left */ + glColor4ub(255,255,255, 30); + sdrawline(rect.xmin, rect.ymin, rect.xmin, rect.ymax); + + glDisable( GL_BLEND ); +} + void ED_region_pixelspace(ARegion *ar) { int width= ar->winrct.xmax-ar->winrct.xmin+1; @@ -138,15 +171,32 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar) static void area_draw_azone(short x1, short y1, short x2, short y2) { - int dx= floor(0.9f*(x2-x1)); - int dy= floor(0.9f*(y2-y1)); + int dx= 0.3f*(x2-x1); + int dy= 0.3f*(y2-y1); + int i; + + glEnable(GL_BLEND); + + glColor4f(0.0f, 0.0f, 0.0f, 0.35f); - glColor4f(0.0f, 0.0f, 0.0f, 0.25f); glBegin(GL_TRIANGLES); glVertex2f(x1, y1); - glVertex2f(x1+dx, y1); - glVertex2f(x1, y1+dy); + glVertex2f(x2, y1); + glVertex2f(x1, y2); glEnd(); + + glEnable(GL_LINE_SMOOTH); + + glColor4f(1.0f, 1.0f, 1.0f, 0.25f); + + x2 += (x2 > x1)? -1: 1; + y2 += (y2 > y1)? -1: 1; + + for(i=0; i<4; i++) + fdrawline(x1, y2-i*dy, x2-i*dx, y1); + + glDisable(GL_LINE_SMOOTH); + glDisable(GL_BLEND); } static void region_draw_azone_icon(AZone *az) @@ -183,6 +233,54 @@ static void region_draw_azone_icon(AZone *az) sdrawline(midx-2, midy, midx+3, midy); } +static void draw_azone_plus(float x1, float y1, float x2, float y2) +{ + float width = 2.0f; + float pad = 4.0f; + + glRectf((x1 + x2 - width)*0.5f, y1 + pad, (x1 + x2 + width)*0.5f, y2 - pad); + glRectf(x1 + pad, (y1 + y2 - width)*0.5f, (x1 + x2 - width)*0.5f, (y1 + y2 + width)*0.5f); + glRectf((x1 + x2 + width)*0.5f, (y1 + y2 - width)*0.5f, x2 - pad, (y1 + y2 + width)*0.5f); +} + +static void region_draw_azone_tab_plus(AZone *az) +{ + float yofs= 0.0f; + + glEnable(GL_BLEND); + + /* add code to draw region hidden as 'too small' */ + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT); + yofs= 0.3f; + break; + case AE_BOTTOM_TO_TOPLEFT: + uiSetRoundBox(UI_CNR_BOTTOM_RIGHT | UI_CNR_BOTTOM_LEFT); + yofs= 0.3f; + break; + case AE_LEFT_TO_TOPRIGHT: + uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT); + yofs= 0.0f; + break; + case AE_RIGHT_TO_TOPLEFT: + uiSetRoundBox(UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT); + yofs= 0.0f; + break; + } + + glColor4f(0.0f, 0.0f, 0.0f, 0.25f); + uiRoundBox((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2, 4.0f); + + UI_ThemeColorShade(TH_BACK, 20); + draw_azone_plus((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y2); + + glColor4f(0.0f, 0.0f, 0.0f, 0.35f); + uiRoundRect((float)az->x1, (float)az->y1+yofs, (float)az->x2, (float)az->y2+yofs, 4.0f); + + glDisable(GL_BLEND); +} + static void region_draw_azone_tab(AZone *az) { float col[3]; @@ -277,22 +375,20 @@ void ED_area_overdraw(bContext *C) if(az->type==AZONE_AREA) { area_draw_azone(az->x1, az->y1, az->x2, az->y2); } else if(az->type==AZONE_REGION) { - if(0) { 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==2) + if(G.rt==3) + region_draw_azone_icon(az); + else if(G.rt==2) region_draw_azone_tria(az); else if(G.rt==1) region_draw_azone_tab(az); else - region_draw_azone_icon(az); + region_draw_azone_tab_plus(az); } } - - } } az->do_draw= 0; @@ -400,11 +496,11 @@ void ED_region_do_draw(bContext *C, ARegion *ar) uiFreeInactiveBlocks(C, &ar->uiblocks); - /*if(sa) - region_draw_emboss(ar, &winrct);*/ - /* XXX test: add convention to end regions always in pixel space, for drawing of borders/gestures etc */ ED_region_pixelspace(ar); + + if(sa) + region_draw_emboss(ar, &winrct); } /* ********************************** @@ -564,8 +660,112 @@ static void region_azone_edge(AZone *az, ARegion *ar) BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); } +static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar) +{ + AZone *azt; + int tot=0; + + /* count how many actionzones with along same edge are available. + This allows for adding more action zones in the future without + having to worry about correct offset */ + for(azt= sa->actionzones.first; azt; azt= azt->next) { + if(azt->edge == az->edge) tot++; + } + + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + az->x1= ar->winrct.xmax - tot*2*AZONEPAD_ICON; + az->y1= ar->winrct.ymax + AZONEPAD_ICON; + az->x2= ar->winrct.xmax - tot*AZONEPAD_ICON; + az->y2= ar->winrct.ymax + 2*AZONEPAD_ICON; + break; + case AE_BOTTOM_TO_TOPLEFT: + az->x1= ar->winrct.xmin + AZONEPAD_ICON; + az->y1= ar->winrct.ymin - 2*AZONEPAD_ICON; + az->x2= ar->winrct.xmin + 2*AZONEPAD_ICON; + az->y2= ar->winrct.ymin - AZONEPAD_ICON; + break; + case AE_LEFT_TO_TOPRIGHT: + az->x1= ar->winrct.xmin - 2*AZONEPAD_ICON; + az->y1= ar->winrct.ymax - tot*2*AZONEPAD_ICON; + az->x2= ar->winrct.xmin - AZONEPAD_ICON; + az->y2= ar->winrct.ymax - tot*AZONEPAD_ICON; + break; + case AE_RIGHT_TO_TOPLEFT: + az->x1= ar->winrct.xmax + AZONEPAD_ICON; + az->y1= ar->winrct.ymax - tot*2*AZONEPAD_ICON; + az->x2= ar->winrct.xmax + 2*AZONEPAD_ICON; + az->y2= ar->winrct.ymax - tot*AZONEPAD_ICON; + break; + } + + BLI_init_rcti(&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) { + if(az!=azt) { + if( ABS(az->x1-azt->x1) < 2 && ABS(az->y1-azt->y1) < 2) { + if(az->edge==AE_TOP_TO_BOTTOMRIGHT || az->edge==AE_BOTTOM_TO_TOPLEFT) { + az->x1+= AZONESPOT; + az->x2+= AZONESPOT; + } + else{ + az->y1-= AZONESPOT; + az->y2-= AZONESPOT; + } + BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); + } + } + } +} + +#define AZONEPAD_TAB_PLUSW 16 +#define AZONEPAD_TAB_PLUSH 16 + +/* region already made zero sized, in shape of edge */ +static void region_azone_tab_plus(ScrArea *sa, AZone *az, ARegion *ar) +{ + AZone *azt; + int tot= 0, add; + + for(azt= sa->actionzones.first; azt; azt= azt->next) { + if(azt->edge == az->edge) tot++; + } + + switch(az->edge) { + case AE_TOP_TO_BOTTOMRIGHT: + if(ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; + az->x1= ar->winrct.xmax - 2.5*AZONEPAD_TAB_PLUSW; + az->y1= ar->winrct.ymax - add; + az->x2= ar->winrct.xmax - 1.5*AZONEPAD_TAB_PLUSW; + az->y2= ar->winrct.ymax - add + AZONEPAD_TAB_PLUSH; + break; + case AE_BOTTOM_TO_TOPLEFT: + az->x1= ar->winrct.xmax - 2.5*AZONEPAD_TAB_PLUSW; + az->y1= ar->winrct.ymin - AZONEPAD_TAB_PLUSH; + az->x2= ar->winrct.xmax - 1.5*AZONEPAD_TAB_PLUSW; + az->y2= ar->winrct.ymin; + break; + case AE_LEFT_TO_TOPRIGHT: + az->x1= ar->winrct.xmin + 1 - AZONEPAD_TAB_PLUSH; + az->y1= ar->winrct.ymax - 2.5*AZONEPAD_TAB_PLUSW; + az->x2= ar->winrct.xmin + 1; + az->y2= ar->winrct.ymax - 1.5*AZONEPAD_TAB_PLUSW; + break; + case AE_RIGHT_TO_TOPLEFT: + az->x1= ar->winrct.xmax - 1; + az->y1= ar->winrct.ymax - 2.5*AZONEPAD_TAB_PLUSW; + az->x2= ar->winrct.xmax - 1 + AZONEPAD_TAB_PLUSH; + az->y2= ar->winrct.ymax - 1.5*AZONEPAD_TAB_PLUSW; + break; + } + /* rect needed for mouse pointer test */ + BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2); +} + + #define AZONEPAD_TABW 18 -#define AZONEPAD_TABH 7 +#define AZONEPAD_TABH 6 /* region already made zero sized, in shape of edge */ static void region_azone_tab(ScrArea *sa, AZone *az, ARegion *ar) @@ -656,19 +856,30 @@ static void region_azone_tria(ScrArea *sa, AZone *az, ARegion *ar) static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge) { - if(!(ar->flag & RGN_FLAG_HIDDEN)) { - AZone *az; - - az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone"); - BLI_addtail(&(sa->actionzones), az); - az->type= AZONE_REGION; - az->ar= ar; - az->edge= edge; - + AZone *az; + + az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone"); + BLI_addtail(&(sa->actionzones), az); + az->type= AZONE_REGION; + az->ar= ar; + az->edge= edge; + + if (ar->flag & (RGN_FLAG_HIDDEN|RGN_FLAG_TOO_SMALL)) { + if(G.rt==3) + region_azone_icon(sa, az, ar); + else if(G.rt==2) + region_azone_tria(sa, az, ar); + else if(G.rt==1) + region_azone_tab(sa, az, ar); + else + region_azone_tab_plus(sa, az, ar); + } else { region_azone_edge(az, ar); } + } + /* *************************************************************** */ static void region_azone_add(ScrArea *sa, ARegion *ar, int alignment) diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 6cad8f3487a..f5e3941cf4c 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -41,7 +41,6 @@ #include "BLI_utildefines.h" #include "DNA_material_types.h" -#include "DNA_node_types.h" #include "DNA_meshdata_types.h" #include "DNA_property_types.h" #include "DNA_scene_types.h" @@ -53,14 +52,10 @@ #include "BKE_effect.h" #include "BKE_image.h" #include "BKE_material.h" -#include "BKE_node.h" #include "BKE_paint.h" #include "BKE_property.h" #include "BKE_scene.h" -#include "IMB_imbuf.h" -#include "IMB_imbuf_types.h" - #include "BIF_gl.h" #include "BIF_glutil.h" @@ -685,7 +680,7 @@ void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } -/************************** NEW SHADING SYSTEM ********************************/ +/************************** NEW SHADING NODES ********************************/ typedef struct TexMatCallback { Scene *scene; @@ -808,10 +803,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o set_face_cb= NULL; /* test if we can use glsl */ - glsl= GPU_glsl_support(); - - if(v3d->drawtype == OB_TEXTURE) - glsl= (scene->gm.matmode == GAME_MAT_GLSL); + glsl= (v3d->drawtype == OB_MATERIAL) && GPU_glsl_support(); GPU_begin_object_materials(v3d, rv3d, scene, ob, glsl, NULL); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 60f45ba5477..3eedeb3e233 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -92,7 +92,7 @@ ARegion *view3d_has_buttons_region(ScrArea *sa) return arnew; } -void view3d_has_tools_region(ScrArea *sa, ARegion **r_artool, ARegion **r_arprops) +ARegion *view3d_has_tools_region(ScrArea *sa) { ARegion *ar, *artool=NULL, *arprops=NULL, *arhead; @@ -104,11 +104,7 @@ void view3d_has_tools_region(ScrArea *sa, ARegion **r_artool, ARegion **r_arprop } /* tool region hide/unhide also hides props */ - if(arprops && artool) { - *r_artool= artool; - *r_arprops= arprops; - return; - } + if(arprops && artool) return artool; if(artool==NULL) { /* add subdiv level; after header */ @@ -117,11 +113,7 @@ void view3d_has_tools_region(ScrArea *sa, ARegion **r_artool, ARegion **r_arprop break; /* is error! */ - if(arhead==NULL) { - *r_artool= NULL; - *r_arprops= NULL; - return; - } + if(arhead==NULL) return NULL; artool= MEM_callocN(sizeof(ARegion), "tools for view3d"); @@ -139,9 +131,8 @@ void view3d_has_tools_region(ScrArea *sa, ARegion **r_artool, ARegion **r_arprop arprops->regiontype= RGN_TYPE_TOOL_PROPS; arprops->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; } - - *r_artool= artool; - *r_arprops= arprops; + + return artool; } /* ****************************************************** */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index d2264929149..936699c5b56 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1918,7 +1918,7 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d) v3d->zbuf= TRUE; glEnable(GL_DEPTH_TEST); - draw_gpencil_view3d_ext(scene, v3d, ar, 1); + draw_gpencil_view3d(scene, v3d, ar, 1); v3d->zbuf= zbuf; @@ -2340,7 +2340,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, /* must be before xray draw which clears the depth buffer */ if(v3d->zbuf) glDisable(GL_DEPTH_TEST); - draw_gpencil_view3d_ext(scene, v3d, ar, 1); + draw_gpencil_view3d(scene, v3d, ar, 1); if(v3d->zbuf) glEnable(GL_DEPTH_TEST); /* transp and X-ray afterdraw stuff */ @@ -2361,7 +2361,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, ED_region_pixelspace(ar); /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */ - draw_gpencil_view3d_ext(scene, v3d, ar, 0); + draw_gpencil_view3d(scene, v3d, ar, 0); /* freeing the images again here could be done after the operator runs, leaving for now */ GPU_free_images_anim(); @@ -2578,20 +2578,14 @@ static void view3d_main_area_draw_engine_info(RegionView3D *rv3d, ARegion *ar) } /* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */ -void view3d_main_area_draw(const bContext *C, ARegion *ar) +static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const char **grid_unit) { Scene *scene= CTX_data_scene(C); View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d= CTX_wm_region_view3d(C); Base *base; - Object *ob; float backcol[3]; unsigned int lay_used; - const char *grid_unit= NULL; - - /* possible use (external) render engine instead */ - if(v3d->drawtype == OB_RENDER && view3d_main_area_draw_engine(C, ar)); - else { /* shadow buffers, before we setup matrices */ if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype)) @@ -2641,7 +2635,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) if((rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO)) { if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { - drawfloor(scene, v3d, &grid_unit); + drawfloor(scene, v3d, grid_unit); } if(rv3d->persp==RV3D_CAMOB) { if(scene->world) { @@ -2658,7 +2652,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) else { if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { ED_region_pixelspace(ar); - drawgrid(&scene->unit, ar, v3d, &grid_unit); + drawgrid(&scene->unit, ar, v3d, grid_unit); /* XXX make function? replaces persp(1) */ glMatrixMode(GL_PROJECTION); glLoadMatrixf(rv3d->winmat); @@ -2733,7 +2727,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { /* must be before xray draw which clears the depth buffer */ if(v3d->zbuf) glDisable(GL_DEPTH_TEST); - draw_gpencil_view3d((bContext *)C, 1); + draw_gpencil_view3d(scene, v3d, ar, 1); if(v3d->zbuf) glEnable(GL_DEPTH_TEST); } @@ -2766,15 +2760,16 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) // TODO: draw something else (but not this) during fly mode draw_rotation_guide(rv3d); - ED_region_pixelspace(ar); +} - } - -// retopo_paint_view_update(v3d); -// retopo_draw_paint_lines(); - - /* Draw particle edit brush XXX (removed) */ - +static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const char *grid_unit) +{ + Scene *scene= CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); + RegionView3D *rv3d= CTX_wm_region_view3d(C); + bScreen *screen= CTX_wm_screen(C); + + Object *ob; if(rv3d->persp==RV3D_CAMOB) drawviewborder(scene, ar, v3d); @@ -2782,7 +2777,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) { /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */ // if (v3d->flag2 & V3D_DISPGP) - draw_gpencil_view3d((bContext *)C, 0); + draw_gpencil_view3d(scene, v3d, ar, 0); drawcursor(scene, ar, v3d); } @@ -2794,31 +2789,44 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) if(rv3d->render_engine) { view3d_main_area_draw_engine_info(rv3d, ar); + return; } - else { - if((U.uiflag & USER_SHOW_FPS) && (CTX_wm_screen(C)->animtimer)) { - draw_viewport_fps(scene, ar); - } - else if(U.uiflag & USER_SHOW_VIEWPORTNAME) { - draw_viewport_name(ar, v3d); - } - if (grid_unit) { /* draw below the viewport name */ - char tstr[32]= ""; - UI_ThemeColor(TH_TEXT_HI); - if(v3d->grid != 1.0f) { - BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid); - } + if((U.uiflag & USER_SHOW_FPS) && screen->animtimer) { + draw_viewport_fps(scene, ar); + } + else if(U.uiflag & USER_SHOW_VIEWPORTNAME) { + draw_viewport_name(ar, v3d); + } + if (grid_unit) { /* draw below the viewport name */ + char tstr[32]= ""; - BLF_draw_default_ascii(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ + UI_ThemeColor(TH_TEXT_HI); + if(v3d->grid != 1.0f) { + BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid); } - ob= OBACT; - if(U.uiflag & USER_DRAWVIEWINFO) - draw_selected_name(scene, ob); + BLF_draw_default_ascii(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */ + } + + ob= OBACT; + if(U.uiflag & USER_DRAWVIEWINFO) + draw_selected_name(scene, ob); +} + +void view3d_main_area_draw(const bContext *C, ARegion *ar) +{ + View3D *v3d = CTX_wm_view3d(C); + const char *grid_unit= NULL; + + /* draw viewport using external renderer? */ + if(!(v3d->drawtype == OB_RENDER && view3d_main_area_draw_engine(C, ar))) { + /* draw viewport using opengl */ + view3d_main_area_draw_objects(C, ar, &grid_unit); + ED_region_pixelspace(ar); } - /* XXX here was the blockhandlers for floating panels */ + view3d_main_area_draw_info(C, ar, grid_unit); v3d->flag |= V3D_INVALID_BACKBUF; } diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index e19b7591f5d..ab3ce37ff15 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -177,7 +177,6 @@ void view3d_buttons_register(struct ARegionType *art); /* view3d_toolbar.c */ void VIEW3D_OT_toolshelf(struct wmOperatorType *ot); -void VIEW3D_OT_tool_properties(struct wmOperatorType *ot); void view3d_toolshelf_register(struct ARegionType *art); void view3d_tool_props_register(struct ARegionType *art); @@ -193,7 +192,7 @@ void VIEW3D_OT_snap_cursor_to_active(struct wmOperatorType *ot); /* space_view3d.c */ ARegion *view3d_has_buttons_region(ScrArea *sa); -void view3d_has_tools_region(ScrArea *sa, ARegion **artool, ARegion **arprops); +ARegion *view3d_has_tools_region(ScrArea *sa); extern const char *view3d_context_dir[]; /* doc access */ diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index c9428e45dc9..8416b37fd5e 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -96,7 +96,6 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_properties); WM_operatortype_append(VIEW3D_OT_toolshelf); - WM_operatortype_append(VIEW3D_OT_tool_properties); WM_operatortype_append(VIEW3D_OT_snap_selected_to_grid); WM_operatortype_append(VIEW3D_OT_snap_selected_to_cursor); diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index a3b9e008fa0..58058722a82 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -249,12 +249,10 @@ void view3d_tool_props_register(ARegionType *art) static int view3d_toolshelf(bContext *C, wmOperator *UNUSED(op)) { ScrArea *sa= CTX_wm_area(C); - ARegion *artool, *arprops; + ARegion *ar= view3d_has_tools_region(sa); - view3d_has_tools_region(sa, &artool, &arprops); - - if(artool) - ED_region_toggle_hidden(C, artool); + if(ar) + ED_region_toggle_hidden(C, ar); return OPERATOR_FINISHED; } @@ -271,37 +269,3 @@ void VIEW3D_OT_toolshelf(wmOperatorType *ot) /* flags */ ot->flag= 0; } - -/* ********** operator to open/close toolshelf region */ - -static int view3d_tool_properties(bContext *C, wmOperator *UNUSED(op)) -{ - ScrArea *sa= CTX_wm_area(C); - ARegion *artool, *arprops; - - view3d_has_tools_region(sa, &artool, &arprops); - - if(artool && (artool->flag & RGN_FLAG_HIDDEN)) { - ED_region_toggle_hidden(C, artool); - - if(arprops && (arprops->flag & RGN_FLAG_HIDDEN)) - ED_region_toggle_hidden(C, arprops); - } - else if(arprops) - ED_region_toggle_hidden(C, arprops); - - return OPERATOR_FINISHED; -} - -void VIEW3D_OT_tool_properties(wmOperatorType *ot) -{ - ot->name= "Tool Properties"; - ot->description= "Toggles tool properties display"; - ot->idname= "VIEW3D_OT_tool_properties"; - - ot->exec= view3d_tool_properties; - ot->poll= ED_operator_view3d_active; - - /* flags */ - ot->flag= 0; -} -- cgit v1.2.3 From f673fc92930836a4df2a3f3552e3a106ea966a02 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 24 Oct 2011 20:02:34 +0000 Subject: * Remove view3d.tool_properties reference from UI after removal of this operator. --- release/scripts/startup/bl_ui/space_view3d.py | 1 - 1 file changed, 1 deletion(-) diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index e927f321b4b..8687517bd14 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -282,7 +282,6 @@ class VIEW3D_MT_view(Menu): layout.operator("view3d.properties", icon='MENU_PANEL') layout.operator("view3d.toolshelf", icon='MENU_PANEL') - layout.operator("view3d.tool_properties", icon='MENU_PANEL') layout.separator() -- cgit v1.2.3 From 996f2cd8b2362779e16fdfbd3913231c38e4a623 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 29 Oct 2011 14:24:06 +0000 Subject: Cycles: fix blenderplayer build error. --- source/blenderplayer/bad_level_call_stubs/stubs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index bc7ab9a9bdb..80a49ed5ff5 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -73,6 +73,7 @@ struct Object; struct PBVHNode; struct Render; struct RenderEngine; +struct RenderEngineType; struct RenderLayer; struct RenderResult; struct ScrArea; @@ -393,6 +394,7 @@ void RE_engines_exit() {} void RE_engine_report(struct RenderEngine *engine, int type, const char *msg) {} ListBase R_engines = {NULL, NULL}; void RE_engine_free(struct RenderEngine *engine) {} +struct RenderEngineType *RE_engines_find(const char *idname) {} /* python */ struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;} -- cgit v1.2.3 From 238f3a7d343875992f5b9c2ad657f2bc6f148938 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 29 Oct 2011 14:27:24 +0000 Subject: Cycles: seed value to get different noise values from renders, there was a patch for this but I've implemented it differently. --- intern/cycles/blender/addon/properties.py | 3 +++ intern/cycles/blender/addon/ui.py | 3 ++- intern/cycles/blender/blender_sync.cpp | 2 ++ intern/cycles/kernel/kernel_random.h | 6 ++++++ intern/cycles/kernel/kernel_types.h | 4 +++- intern/cycles/render/integrator.cpp | 9 ++++++++- intern/cycles/render/integrator.h | 3 +++ intern/cycles/util/util_hash.h | 5 +++++ 8 files changed, 32 insertions(+), 3 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 6fab3ecaa68..0d30307fc73 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -78,6 +78,9 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.filter_width = FloatProperty(name="Filter Width", description="Pixel filter width", default=1.5, min=0.01, max=10.0) + cls.seed = IntProperty(name="Seed", description="Seed value for integrator to get different noise patterns", + default=0, min=0, max=2147483647) + cls.debug_tile_size = IntProperty(name="Tile Size", description="", default=1024, min=1, max=4096) cls.debug_min_size = IntProperty(name="Min Size", description="", diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index f9e178a2d3a..ca077a50ad6 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -62,13 +62,13 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): sub.label(text="Samples:") sub.prop(cscene, "samples", text="Render") sub.prop(cscene, "preview_samples", text="Preview") + sub.prop(cscene, "seed") sub = col.column(align=True) sub.label("Transparency:") sub.prop(cscene, "transparent_max_bounces", text="Max") sub.prop(cscene, "transparent_min_bounces", text="Min") sub.prop(cscene, "use_transparent_shadows", text="Shadows") - sub.prop(cscene, "no_caustics") col = split.column() @@ -82,6 +82,7 @@ class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel): sub.prop(cscene, "diffuse_bounces", text="Diffuse") sub.prop(cscene, "glossy_bounces", text="Glossy") sub.prop(cscene, "transmission_bounces", text="Transmission") + sub.prop(cscene, "no_caustics") #row = col.row() #row.prop(cscene, "blur_caustics") diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 4babb612bdd..3a9514efa3c 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -151,6 +151,8 @@ void BlenderSync::sync_integrator() integrator->no_caustics = get_boolean(cscene, "no_caustics"); integrator->blur_caustics = get_float(cscene, "blur_caustics"); + integrator->seed = get_int(cscene, "seed"); + if(integrator->modified(previntegrator)) integrator->tag_update(scene); } diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h index 13cf4df8b8c..df876e6f726 100644 --- a/intern/cycles/kernel/kernel_random.h +++ b/intern/cycles/kernel/kernel_random.h @@ -128,11 +128,15 @@ __device_inline void path_rng_init(KernelGlobals *kg, __global uint *rng_state, *rng = sobol_lookup(bits, frame, x, y, &px, &py); + *rng ^= kernel_data.integrator.seed; + *fx = size * (float)px * (1.0f/(float)0xFFFFFFFF) - x; *fy = size * (float)py * (1.0f/(float)0xFFFFFFFF) - y; #else *rng = rng_state[x + y*kernel_data.cam.width]; + *rng ^= kernel_data.integrator.seed; + *fx = path_rng(kg, rng, sample, PRNG_FILTER_U); *fy = path_rng(kg, rng, sample, PRNG_FILTER_V); #endif @@ -159,6 +163,8 @@ __device void path_rng_init(KernelGlobals *kg, __global uint *rng_state, int sam /* load state */ *rng = rng_state[x + y*kernel_data.cam.width]; + *rng ^= kernel_data.integrator.seed; + *fx = path_rng(kg, rng, sample, PRNG_FILTER_U); *fy = path_rng(kg, rng, sample, PRNG_FILTER_V); } diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index d8270b2cd71..46cdcd1151e 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -362,7 +362,6 @@ typedef struct KernelIntegrator { int num_all_lights; float pdf_triangles; float pdf_lights; - float pdf_pad; /* bounces */ int min_bounce; @@ -380,6 +379,9 @@ typedef struct KernelIntegrator { /* caustics */ int no_caustics; float blur_caustics; + + /* seed */ + int seed; } KernelIntegrator; typedef struct KernelBVH { diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp index 78ea464d836..9d129d8e8db 100644 --- a/intern/cycles/render/integrator.cpp +++ b/intern/cycles/render/integrator.cpp @@ -21,6 +21,8 @@ #include "scene.h" #include "sobol.h" +#include "util_hash.h" + CCL_NAMESPACE_BEGIN Integrator::Integrator() @@ -41,6 +43,8 @@ Integrator::Integrator() no_caustics = false; blur_caustics = 0.0f; + seed = 0; + need_update = true; } @@ -79,6 +83,8 @@ void Integrator::device_update(Device *device, DeviceScene *dscene) kintegrator->no_caustics = no_caustics; kintegrator->blur_caustics = blur_caustics; + kintegrator->seed = hash_int(seed); + /* sobol directions table */ int dimensions = PRNG_BASE_NUM + (max_bounce + transparent_max_bounce + 2)*PRNG_BOUNCE_NUM; uint *directions = dscene->sobol_directions.resize(SOBOL_BITS*dimensions); @@ -109,7 +115,8 @@ bool Integrator::modified(const Integrator& integrator) transparent_probalistic == integrator.transparent_probalistic && transparent_shadows == integrator.transparent_shadows && no_caustics == integrator.no_caustics && - blur_caustics == integrator.blur_caustics); + blur_caustics == integrator.blur_caustics && + seed == integrator.seed); } void Integrator::tag_update(Scene *scene) diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h index 5bab4470089..52032fa1a26 100644 --- a/intern/cycles/render/integrator.h +++ b/intern/cycles/render/integrator.h @@ -42,6 +42,9 @@ public: bool no_caustics; float blur_caustics; + + int seed; + bool need_update; Integrator(); diff --git a/intern/cycles/util/util_hash.h b/intern/cycles/util/util_hash.h index 0b7164403f2..af7ad7e06a1 100644 --- a/intern/cycles/util/util_hash.h +++ b/intern/cycles/util/util_hash.h @@ -44,6 +44,11 @@ static unsigned int hash_int_2d(unsigned int kx, unsigned int ky) #undef rot } +static unsigned int hash_int(unsigned int k) +{ + return hash_int_2d(k, 0); +} + CCL_NAMESPACE_END #endif /* __UTIL_HASH_H__ */ -- cgit v1.2.3 From bb379c06e914c0a38910343fbee9595fe1dac2c3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 30 Oct 2011 10:12:34 +0000 Subject: Cycles: progress printing in background mode, print finished at the end and avoid duplicate prints. --- intern/cycles/blender/blender_session.cpp | 14 ++++++++++++-- intern/cycles/blender/blender_session.h | 3 +++ intern/cycles/render/session.cpp | 8 ++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index c6f016b7971..4fa87815601 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -76,6 +76,10 @@ void BlenderSession::create_session() SceneParams scene_params = BlenderSync::get_scene_params(b_scene); SessionParams session_params = BlenderSync::get_session_params(b_scene, background); + /* reset status/progress */ + last_status= ""; + last_progress= -1.0f; + /* create scene */ scene = new Scene(scene_params); @@ -264,8 +268,14 @@ void BlenderSession::update_status_progress() if(substatus.size() > 0) status += " | " + substatus; - RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); - RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); + if(status != last_status) { + RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); + last_status = status; + } + if(progress != last_progress) { + RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); + last_progress = progress; + } } void BlenderSession::tag_update() diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h index 8608ddd2658..e30b60c3d63 100644 --- a/intern/cycles/blender/blender_session.h +++ b/intern/cycles/blender/blender_session.h @@ -70,6 +70,9 @@ public: BL::SpaceView3D b_v3d; BL::RegionView3D b_rv3d; + string last_status; + float last_progress; + int width, height; }; diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 50f7017bacf..2deb83674cc 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -170,8 +170,10 @@ void Session::run_gpu() if(params.background) { /* if no work left and in background mode, we can stop immediately */ - if(no_tiles) + if(no_tiles) { + progress.set_status("Finished"); break; + } } else { /* if in interactive mode, and we are either paused or done for now, @@ -305,8 +307,10 @@ void Session::run_cpu() if(params.background) { /* if no work left and in background mode, we can stop immediately */ - if(no_tiles) + if(no_tiles) { + progress.set_status("Finished"); break; + } } else { /* if in interactive mode, and we are either paused or done for now, -- cgit v1.2.3 From 02fae3440c8b4b89aa0f9412bc4e0db60a787c13 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 2 Nov 2011 15:15:45 +0000 Subject: Cycles: RenderEngine api code tweaks, also ensuring it's backwards compatible. --- intern/cycles/blender/addon/__init__.py | 2 +- source/blender/editors/render/render_update.c | 8 +-- source/blender/makesrna/intern/rna_render.c | 37 +++++++++----- source/blender/render/extern/include/RE_engine.h | 14 +++-- .../blender/render/intern/include/render_types.h | 1 + .../blender/render/intern/source/external_engine.c | 16 ++++-- source/blender/render/intern/source/pipeline.c | 59 ++++++++-------------- source/blender/windowmanager/intern/wm_draw.c | 4 +- 8 files changed, 74 insertions(+), 67 deletions(-) diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 4a5b78300bf..979e3e872d7 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -54,7 +54,7 @@ class CyclesRender(bpy.types.RenderEngine): engine.create(self, data, scene) engine.update(self, data, scene) - def render(self): + def render(self, scene): engine.render(self) # preview render diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index b6cf5be41e6..72ea79fae7e 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -88,12 +88,12 @@ void ED_render_engine_update_tagged(bContext *C, Main *bmain) rv3d= ar->regiondata; engine= rv3d->render_engine; - if(engine && engine->do_update) { + if(engine && (engine->flag & RE_ENGINE_DO_UPDATE)) { CTX_wm_screen_set(C, sc); CTX_wm_area_set(C, sa); CTX_wm_region_set(C, ar); - engine->do_update= 0; + engine->flag &= ~RE_ENGINE_DO_UPDATE; engine->type->view_update(engine, C); } } @@ -134,7 +134,7 @@ void ED_render_engine_changed(Main *bmain) } } -void tag_render_engines(Main *bmain) +static void tag_render_engines(Main *bmain) { /* tag running render engines for update later on */ bScreen *sc; @@ -154,7 +154,7 @@ void tag_render_engines(Main *bmain) rv3d= ar->regiondata; if(rv3d->render_engine) - rv3d->render_engine->do_update= 1; + rv3d->render_engine->flag |= RE_ENGINE_DO_UPDATE; } } } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index da6cd02cfbc..ef9bf6a9e02 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -48,18 +48,18 @@ #include "BKE_context.h" #include "BKE_report.h" +/* RenderEngine Callbacks */ + void engine_tag_redraw(RenderEngine *engine) { - engine->do_draw = 1; + engine->flag |= RE_ENGINE_DO_DRAW; } void engine_tag_update(RenderEngine *engine) { - engine->do_update = 1; + engine->flag |= RE_ENGINE_DO_UPDATE; } -/* RenderEngine Callbacks */ - static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) { extern FunctionRNA rna_RenderEngine_update_func; @@ -78,7 +78,7 @@ static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) RNA_parameter_list_free(&list); } -static void engine_render(RenderEngine *engine) +static void engine_render(RenderEngine *engine, struct Scene *scene) { extern FunctionRNA rna_RenderEngine_render_func; PointerRNA ptr; @@ -89,6 +89,7 @@ static void engine_render(RenderEngine *engine) func= &rna_RenderEngine_render_func; RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); @@ -314,41 +315,44 @@ static void rna_def_render_engine(BlenderRNA *brna) /* final render callbacks */ func= RNA_def_function(srna, "update", NULL); RNA_def_function_ui_description(func, "Export scene data for render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "data", "BlendData", "", ""); RNA_def_pointer(func, "scene", "Scene", "", ""); func= RNA_def_function(srna, "render", NULL); - RNA_def_function_ui_description(func, "Execute render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_ui_description(func, "Render scene into an image"); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); + RNA_def_pointer(func, "scene", "Scene", "", ""); /* preview render callbacks */ func= RNA_def_function(srna, "preview_update", NULL); RNA_def_function_ui_description(func, "Export scene data for preview render of the given datablock"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); RNA_def_pointer(func, "id", "ID", "", ""); func= RNA_def_function(srna, "preview_render", NULL); RNA_def_function_ui_description(func, "Execute preview render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); /* viewport render callbacks */ func= RNA_def_function(srna, "view_update", NULL); RNA_def_function_ui_description(func, "Update on data changes for viewport render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); func= RNA_def_function(srna, "view_draw", NULL); RNA_def_function_ui_description(func, "Draw viewport render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); /* tag for redraw */ RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); + RNA_def_function_ui_description(func, "Request redraw for viewport rendering"); /* tag for update */ RNA_def_function(srna, "tag_update", "engine_tag_update"); + RNA_def_function_ui_description(func, "Request update call for viewport rendering"); func= RNA_def_function(srna, "begin_result", "RE_engine_begin_result"); prop= RNA_def_int(func, "x", 0, 0, INT_MAX, "X", "", 0, INT_MAX); @@ -390,9 +394,16 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "message", "", 0, "Report Message", ""); RNA_def_property_flag(prop, PROP_REQUIRED); - /* registration */ RNA_define_verify_sdna(0); + prop= RNA_def_property(srna, "is_animation", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_ANIMATION); + + prop= RNA_def_property(srna, "is_preview", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_PREVIEW); + + /* registration */ + prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->idname"); RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP); diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index bd93f1e63ae..d8c78ef82a2 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -46,12 +46,19 @@ struct Scene; /* External Engine */ +/* RenderEngineType.flag */ #define RE_INTERNAL 1 #define RE_GAME 2 #define RE_USE_PREVIEW 4 #define RE_USE_POSTPROCESS 8 #define RE_USE_SHADING_NODES 16 +/* RenderEngine.flag */ +#define RE_ENGINE_ANIMATION 1 +#define RE_ENGINE_PREVIEW 2 +#define RE_ENGINE_DO_DRAW 4 +#define RE_ENGINE_DO_UPDATE 8 + extern ListBase R_engines; typedef struct RenderEngineType { @@ -63,7 +70,7 @@ typedef struct RenderEngineType { int flag; void (*update)(struct RenderEngine *engine, struct Main *bmain, struct Scene *scene); - void (*render)(struct RenderEngine *engine); + void (*render)(struct RenderEngine *engine, struct Scene *scene); void (*preview_update)(struct RenderEngine *engine, const struct bContext *context, struct ID *id); void (*preview_render)(struct RenderEngine *engine); @@ -79,12 +86,11 @@ typedef struct RenderEngine { RenderEngineType *type; void *py_instance; + int flag; + struct Render *re; ListBase fullresult; char *text; - - int do_draw; - int do_update; } RenderEngine; RenderEngine *RE_engine_create(RenderEngineType *type); diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index aa2dd29814e..ae4e55b9b88 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -601,6 +601,7 @@ typedef struct LampRen { #define R_NEED_TANGENT 16 #define R_BAKE_TRACE 32 #define R_BAKING 64 +#define R_ANIMATION 128 /* vlakren->flag (vlak = face in dutch) char!!! */ #define R_SMOOTH 1 diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c index f622405093b..93e69839708 100644 --- a/source/blender/render/intern/source/external_engine.c +++ b/source/blender/render/intern/source/external_engine.c @@ -265,7 +265,8 @@ int RE_engine_render(Render *re, int do_all) /* verify if we can render */ if(!type->render) return 0; - if((re->r.scemode & R_PREVIEWBUTS) && !(type->flag & RE_USE_PREVIEW)) + if((re->r.scemode & R_PREVIEWBUTS) && !((type->flag & RE_USE_PREVIEW) || + (type->preview_update && type->preview_render))) return 0; if(do_all && !(type->flag & RE_USE_POSTPROCESS)) return 0; @@ -287,16 +288,23 @@ int RE_engine_render(Render *re, int do_all) engine = RE_engine_create(type); engine->re= re; + if(re->flag & R_ANIMATION) + engine->flag |= RE_ENGINE_ANIMATION; + if(re->r.scemode & R_PREVIEWBUTS) + engine->flag |= RE_ENGINE_PREVIEW; + if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0) scene_update_for_newframe(re->main, re->scene, re->lay); - if(re->r.scemode & R_PREVIEWBUTS) { + if(type->preview_update && type->preview_render) { //type->preview_update(engine, scene, id); type->preview_render(engine); } else { - type->update(engine, re->main, re->scene); - type->render(engine); + if(type->update) + type->update(engine, re->main, re->scene); + if(type->render) + type->render(engine, re->scene); } free_render_result(&engine->fullresult, engine->fullresult.first); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 6e61c930fd0..8d72be1684c 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -405,7 +405,7 @@ static const char *get_pass_name(int passtype, int channel) return "Unknown"; } -static int passtype_from_name(char *str) +static int passtype_from_name(const char *str) { if(strcmp(str, "Combined")==0) @@ -889,39 +889,18 @@ static void *ml_addlayer_cb(void *base, char *str) { RenderResult *rr= base; RenderLayer *rl; - - /* don't add if layer already exists */ - for(rl=rr->layers.first; rl; rl=rl->next) - if(strcmp(rl->name, str) == 0) - return rl; - /* add render layer */ rl= MEM_callocN(sizeof(RenderLayer), "new render layer"); BLI_addtail(&rr->layers, rl); BLI_strncpy(rl->name, str, EXR_LAY_MAXNAME); - rl->rectx = rr->rectx; - rl->recty = rr->recty; - return rl; } -static void ml_addpass_cb(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id) +static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect, int totchan, char *chan_id) { - RenderResult *rr= base; RenderLayer *rl= lay; - RenderPass *rpass; + RenderPass *rpass= MEM_callocN(sizeof(RenderPass), "loaded pass"); int a; - - /* don't add if pass already exists */ - for(rpass=rl->passes.first; rpass; rpass=rpass->next) { - if(strcmp(rpass->name, str) == 0) { - MEM_freeN(rect); - return; - } - } - - /* add render pass */ - rpass = MEM_callocN(sizeof(RenderPass), "loaded pass"); BLI_addtail(&rl->passes, rpass); rpass->channels= totchan; @@ -935,8 +914,6 @@ static void ml_addpass_cb(void *base, void *lay, char *str, float *rect, int tot for(a=0; achan_id[a]= chan_id[a]; - rpass->rectx = rr->rectx; - rpass->recty = rr->recty; rpass->rect= rect; } @@ -944,12 +921,24 @@ static void ml_addpass_cb(void *base, void *lay, char *str, float *rect, int tot RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty) { RenderResult *rr= MEM_callocN(sizeof(RenderResult), "loaded render result"); + RenderLayer *rl; + RenderPass *rpass; rr->rectx= rectx; rr->recty= recty; IMB_exr_multilayer_convert(exrhandle, rr, ml_addlayer_cb, ml_addpass_cb); + for(rl=rr->layers.first; rl; rl=rl->next) { + rl->rectx= rectx; + rl->recty= recty; + + for(rpass=rl->passes.first; rpass; rpass=rpass->next) { + rpass->rectx= rectx; + rpass->recty= recty; + } + } + return rr; } @@ -3096,6 +3085,8 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri /* is also set by caller renderwin.c */ G.rendering= 1; + re->flag |= R_ANIMATION; + if(BKE_imtype_is_movie(scene->r.imtype)) if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports)) G.afbreek= 1; @@ -3204,6 +3195,8 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri scene->r.cfra= cfrao; + re->flag &= ~R_ANIMATION; + /* UGLY WARNING */ G.rendering= 0; } @@ -3332,22 +3325,10 @@ 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) { - /* optionally also add layers/passes that were in the file but not setup - for rendering, useful for external render engines or network render */ - void *exrhandle= IMB_exr_get_handle(); - int rectx, recty; - - if(IMB_exr_begin_read(exrhandle, filename, &rectx, &recty)) - IMB_exr_multilayer_convert(exrhandle, result, ml_addlayer_cb, ml_addpass_cb); - - IMB_exr_close(exrhandle); - -#if 0 - if(!read_render_result_from_file(filename, result, 1)) { + if(!read_render_result_from_file(filename, result)) { BKE_reportf(reports, RPT_ERROR, "RE_result_rect_from_file: failed to load '%s'\n", filename); return; } -#endif } const float default_envmap_layout[] = { 0,0, 1,0, 2,0, 0,1, 1,1, 2,1 }; diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index a491f8a6010..389049d9e59 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -121,9 +121,9 @@ static void wm_region_test_render_do_draw(ScrArea *sa, ARegion *ar) RegionView3D *rv3d = ar->regiondata; RenderEngine *engine = (rv3d)? rv3d->render_engine: NULL; - if(engine && engine->do_draw) { + if(engine && (engine->flag & RE_ENGINE_DO_DRAW)) { ar->do_draw = 1; - engine->do_draw = 0; + engine->flag &= ~RE_ENGINE_DO_DRAW; } } } -- cgit v1.2.3 From 9a4e1e0f0aec88c79fe4113019b1d7d1c79a7511 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 3 Nov 2011 10:18:58 +0000 Subject: Cycles: updates to follow code committed to trunk. --- intern/cycles/blender/blender_sync.cpp | 16 +-- source/blender/blenkernel/intern/anim_sys.c | 12 +- source/blender/blenkernel/intern/node.c | 3 +- source/blender/blenkernel/intern/scene.c | 9 ++ source/blender/blenkernel/intern/world.c | 4 +- source/blender/blenlib/BLI_callbacks.h | 2 + source/blender/editors/render/render_preview.c | 1 - source/blender/editors/space_node/node_draw.c | 3 +- source/blender/editors/space_node/node_edit.c | 4 +- source/blender/editors/space_node/node_select.c | 1 - source/blender/makesrna/intern/rna_ID.c | 8 +- source/blender/makesrna/intern/rna_main_api.c | 157 ++++++++++++++++++++- source/blender/makesrna/intern/rna_texture.c | 13 +- source/blender/nodes/shader/node_shader_tree.c | 6 - .../nodes/shader/nodes/node_shader_common.c | 3 - source/blender/python/intern/bpy_app_handlers.c | 2 + source/gameengine/Ketsji/BL_BlenderShader.cpp | 1 - .../RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 1 - 18 files changed, 198 insertions(+), 48 deletions(-) diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 3a9514efa3c..d44fc3f29ca 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -67,31 +67,31 @@ bool BlenderSync::sync_recalc() BL::BlendData::materials_iterator b_mat; for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); ++b_mat) - if(b_mat->recalc()) + if(b_mat->is_updated()) shader_map.set_recalc(*b_mat); BL::BlendData::lamps_iterator b_lamp; for(b_data.lamps.begin(b_lamp); b_lamp != b_data.lamps.end(); ++b_lamp) - if(b_lamp->recalc()) + if(b_lamp->is_updated()) shader_map.set_recalc(*b_lamp); BL::BlendData::objects_iterator b_ob; for(b_data.objects.begin(b_ob); b_ob != b_data.objects.end(); ++b_ob) { - if(b_ob->recalc()) { + if(b_ob->is_updated()) { object_map.set_recalc(*b_ob); light_map.set_recalc(*b_ob); } if(object_is_mesh(*b_ob)) { - if(b_ob->recalc_data() || b_ob->data().recalc()) { + if(b_ob->is_updated_data() || b_ob->data().is_updated()) { BL::ID key = object_is_modified(*b_ob)? *b_ob: b_ob->data(); mesh_map.set_recalc(key); } } else if(object_is_light(*b_ob)) { - if(b_ob->recalc_data() || b_ob->data().recalc()) + if(b_ob->is_updated_data() || b_ob->data().is_updated()) light_map.set_recalc(*b_ob); } } @@ -99,13 +99,13 @@ bool BlenderSync::sync_recalc() BL::BlendData::meshes_iterator b_mesh; for(b_data.meshes.begin(b_mesh); b_mesh != b_data.meshes.end(); ++b_mesh) - if(b_mesh->recalc()) + if(b_mesh->is_updated()) mesh_map.set_recalc(*b_mesh); BL::BlendData::worlds_iterator b_world; for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); ++b_world) - if(world_map == b_world->ptr.data && b_world->recalc()) + if(world_map == b_world->ptr.data && b_world->is_updated()) world_recalc = true; bool recalc = @@ -113,7 +113,7 @@ bool BlenderSync::sync_recalc() object_map.has_recalc() || light_map.has_recalc() || mesh_map.has_recalc() || - BlendDataObjects_recalc_get(&b_data.ptr) || + BlendDataObjects_is_updated_get(&b_data.ptr) || world_recalc; return recalc; diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 981c20d6165..6d94b42a7ac 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -51,6 +51,7 @@ #include "BKE_animsys.h" #include "BKE_action.h" +#include "BKE_depsgraph.h" #include "BKE_fcurve.h" #include "BKE_nla.h" #include "BKE_global.h" @@ -1181,6 +1182,15 @@ static short animsys_write_rna_setting (PointerRNA *ptr, char *path, int array_i RNA_property_update_cache_add(&new_ptr, prop); } #endif + + /* 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) { + ID *id= new_ptr.id.data; + id->flag |= LIB_ID_RECALC; + DAG_id_type_tag(G.main, GS(id->name)); + } } /* successful */ @@ -2322,7 +2332,7 @@ void BKE_animsys_evaluate_all_animation (Main *main, Scene *scene, float ctime) /* particles */ EVAL_ANIM_IDS(main->particle.first, ADT_RECALC_ANIM); - /* lamps */ + /* speakers */ EVAL_ANIM_IDS(main->speaker.first, ADT_RECALC_ANIM); /* objects */ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 9c2b6cae751..ce53ec3ac9b 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1073,6 +1073,7 @@ void ntreeMakeLocal(bNodeTree *ntree) newtree->id.us= 0; + cd.new_id = &newtree->id; treetype->foreach_nodetree(G.main, &cd, &ntreeMakeLocal_LinkNew); } @@ -1862,7 +1863,7 @@ static void registerCompositNodes(ListBase *ntypelist) static void registerShaderNodes(ListBase *ntypelist) { register_node_type_frame(ntypelist); - + register_node_type_sh_group(ntypelist); //register_node_type_sh_forloop(ntypelist); //register_node_type_sh_whileloop(ntypelist); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index d7e51bf794c..7ba0a642cdd 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -992,6 +992,8 @@ void scene_update_tagged(Main *bmain, Scene *scene) { DAG_ids_flush_tagged(bmain); + BLI_exec_cb(bmain, &scene->id, BLI_CB_EVT_SCENE_UPDATE_PRE); + scene->physics_settings.quick_cache_step= 0; /* update all objects: drivers, matrices, displists, etc. flags set @@ -1013,6 +1015,8 @@ void scene_update_tagged(Main *bmain, Scene *scene) DAG_ids_check_recalc(bmain); + BLI_exec_cb(bmain, &scene->id, BLI_CB_EVT_SCENE_UPDATE_POST); + /* in the future this should handle updates for all datablocks, not only objects and scenes. - brecht */ } @@ -1046,6 +1050,8 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) * so dont call within 'scene_update_tagged_recursive' */ DAG_scene_update_flags(bmain, sce, lay, TRUE); // only stuff that moves or needs display still + BLI_exec_cb(bmain, (ID *)sce, BLI_CB_EVT_SCENE_UPDATE_PRE); + /* All 'standard' (i.e. without any dependencies) animation is handled here, * with an 'local' to 'macro' order of evaluation. This should ensure that * settings stored nestled within a hierarchy (i.e. settings in a Texture block @@ -1059,7 +1065,10 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) scene_update_tagged_recursive(bmain, sce, sce); /* keep this last */ + BLI_exec_cb(bmain, (ID *)sce, BLI_CB_EVT_SCENE_UPDATE_POST); BLI_exec_cb(bmain, (ID *)sce, BLI_CB_EVT_FRAME_CHANGE_POST); + + DAG_ids_clear_recalc(bmain); } /* return default layer, also used to patch old files */ diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 9a26cc61cfd..c7d2763774d 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -42,14 +42,14 @@ #include "BLI_utildefines.h" #include "BLI_bpath.h" -#include "BKE_world.h" -#include "BKE_library.h" #include "BKE_animsys.h" #include "BKE_global.h" #include "BKE_icons.h" #include "BKE_library.h" +#include "BKE_library.h" #include "BKE_main.h" #include "BKE_node.h" +#include "BKE_world.h" void free_world(World *wrld) { diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h index 5322ce04a2e..7e4fad54cda 100644 --- a/source/blender/blenlib/BLI_callbacks.h +++ b/source/blender/blenlib/BLI_callbacks.h @@ -47,6 +47,8 @@ typedef enum { BLI_CB_EVT_LOAD_POST, BLI_CB_EVT_SAVE_PRE, BLI_CB_EVT_SAVE_POST, + BLI_CB_EVT_SCENE_UPDATE_PRE, + BLI_CB_EVT_SCENE_UPDATE_POST, BLI_CB_EVT_TOT } eCbEvent; diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 70108242bf9..9da160948cc 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -86,7 +86,6 @@ #include "PIL_time.h" -#include "RE_engine.h" #include "RE_pipeline.h" diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index bf4de211537..5b5f79160a1 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -560,7 +560,6 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN int color_id= node_get_colorid(node); char showname[128]; /* 128 used below */ View2D *v2d = &ar->v2d; - int i; /* hurmf... another candidate for callback, have to see how this works first */ if(node->id && node->block && snode->treetype==NTREE_SHADER) @@ -684,7 +683,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN /* socket inputs, buttons */ - for(i= 0, sock= node->inputs.first; sock; sock= sock->next, i++) { + for(sock= node->inputs.first; sock; sock= sock->next) { bNodeSocketType *stype= ntreeGetSocketType(sock->type); if(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)) diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index b9f11a55939..7ff24ca3eb6 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -303,8 +303,8 @@ void ED_node_shader_default(Scene *scene, ID *id) } case ID_WO: { World *wo= (World*)id; - wo->nodetree = ntree; + output_type = SH_NODE_OUTPUT_WORLD; shader_type = SH_NODE_BACKGROUND; @@ -314,8 +314,8 @@ void ED_node_shader_default(Scene *scene, ID *id) } case ID_LA: { Lamp *la= (Lamp*)id; + la->nodetree = ntree; - ((Lamp*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_LAMP; shader_type = SH_NODE_EMISSION; diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c index 60e6b9e550e..593beedc765 100644 --- a/source/blender/editors/space_node/node_select.c +++ b/source/blender/editors/space_node/node_select.c @@ -35,7 +35,6 @@ #include "DNA_scene_types.h" #include "BKE_context.h" -#include "BKE_global.h" #include "BKE_main.h" #include "BLI_rect.h" diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index ba7d2881ad8..e4692d32338 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -486,15 +486,15 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data (initial state is undefined)"); - prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation"); + RNA_def_property_ui_text(prop, "Is Updated", "Datablock is tagged for recalculation"); - prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_updated_data", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation"); + RNA_def_property_ui_text(prop, "Is Updated Data", "Datablock data is tagged for recalculation"); prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 6e5b7d68ea9..a0402ed3593 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -549,7 +549,33 @@ void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, 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); } -static int rna_Main_objects_recalc_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } +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); } +static int rna_Main_objects_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } +static int rna_Main_materials_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MA); } +static int rna_Main_node_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_NT); } +static int rna_Main_meshes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_ME); } +static int rna_Main_lamps_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LA); } +static int rna_Main_libraries_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LI); } +static int rna_Main_screens_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCR); } +static int rna_Main_window_managers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WM); } +static int rna_Main_images_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_IM); } +static int rna_Main_lattices_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LT); } +static int rna_Main_curves_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CU); } +static int rna_Main_metaballs_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MB); } +static int rna_Main_fonts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_VF); } +static int rna_Main_textures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TE); } +static int rna_Main_brushes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_BR); } +static int rna_Main_worlds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WO); } +static int rna_Main_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GR); } +static int rna_Main_shape_keys_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_KE); } +static int rna_Main_texts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TXT); } +static int rna_Main_speakers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SPK); } +static int rna_Main_sounds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SO); } +static int rna_Main_armatures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AR); } +static int rna_Main_actions_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AC); } +static int rna_Main_particles_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_PA); } +static int rna_Main_gpencil_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GD); } #else @@ -577,6 +603,7 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataCameras"); srna= RNA_def_struct(brna, "BlendDataCameras", NULL); @@ -600,6 +627,10 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_cameras_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_cameras_is_updated_get", NULL); } void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) @@ -607,6 +638,7 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataScenes"); srna= RNA_def_struct(brna, "BlendDataScenes", NULL); @@ -626,6 +658,10 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Remove a scene from the current blendfile"); parm= RNA_def_pointer(func, "scene", "Scene", "", "Scene 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_scenes_is_updated_get", NULL); } void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) @@ -662,9 +698,9 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); - prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + 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_objects_recalc_get", NULL); + RNA_def_property_boolean_funcs(prop, "rna_Main_objects_is_updated_get", NULL); } void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) @@ -672,6 +708,7 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMaterials"); srna= RNA_def_struct(brna, "BlendDataMaterials", NULL); @@ -695,12 +732,17 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_materials_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_materials_is_updated_get", NULL); } void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; static EnumPropertyItem node_nodetree_items[] = { {0, "SHADER", 0, "Shader", ""}, @@ -732,12 +774,17 @@ void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_node_groups_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_node_groups_is_updated_get", NULL); } void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMeshes"); srna= RNA_def_struct(brna, "BlendDataMeshes", NULL); @@ -761,12 +808,17 @@ void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_meshes_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_meshes_is_updated_get", NULL); } void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLamps"); srna= RNA_def_struct(brna, "BlendDataLamps", NULL); @@ -792,6 +844,10 @@ void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_lamps_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_lamps_is_updated_get", NULL); } void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) @@ -799,6 +855,7 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLibraries"); srna= RNA_def_struct(brna, "BlendDataLibraries", NULL); @@ -808,6 +865,10 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_libraries_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_libraries_is_updated_get", NULL); } void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) @@ -815,6 +876,7 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataScreens"); srna= RNA_def_struct(brna, "BlendDataScreens", NULL); @@ -824,6 +886,10 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_screens_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_screens_is_updated_get", NULL); } void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) @@ -831,6 +897,7 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataWindowManagers"); srna= RNA_def_struct(brna, "BlendDataWindowManagers", NULL); @@ -840,12 +907,17 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_window_managers_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_window_managers_is_updated_get", NULL); } void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataImages"); srna= RNA_def_struct(brna, "BlendDataImages", NULL); @@ -884,6 +956,10 @@ void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_images_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_images_is_updated_get", NULL); } void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) @@ -891,6 +967,7 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLattices"); srna= RNA_def_struct(brna, "BlendDataLattices", NULL); @@ -914,12 +991,17 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_lattices_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_lattices_is_updated_get", NULL); } void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataCurves"); srna= RNA_def_struct(brna, "BlendDataCurves", NULL); @@ -945,12 +1027,17 @@ void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_curves_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_curves_is_updated_get", NULL); } void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMetaBalls"); srna= RNA_def_struct(brna, "BlendDataMetaBalls", NULL); @@ -974,12 +1061,17 @@ void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_metaballs_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_metaballs_is_updated_get", NULL); } void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataFonts"); srna= RNA_def_struct(brna, "BlendDataFonts", NULL); @@ -1004,12 +1096,17 @@ void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_fonts_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_fonts_is_updated_get", NULL); } void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataTextures"); srna= RNA_def_struct(brna, "BlendDataTextures", NULL); @@ -1035,12 +1132,17 @@ void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_textures_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_textures_is_updated_get", NULL); } void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataBrushes"); srna= RNA_def_struct(brna, "BlendDataBrushes", NULL); @@ -1064,6 +1166,10 @@ void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_brushes_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_brushes_is_updated_get", NULL); } void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) @@ -1071,6 +1177,7 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataWorlds"); srna= RNA_def_struct(brna, "BlendDataWorlds", NULL); @@ -1094,6 +1201,10 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_worlds_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_worlds_is_updated_get", NULL); } void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) @@ -1101,6 +1212,7 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataGroups"); srna= RNA_def_struct(brna, "BlendDataGroups", NULL); @@ -1123,6 +1235,10 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_groups_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_groups_is_updated_get", NULL); } void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) @@ -1130,6 +1246,7 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataSpeakers"); srna= RNA_def_struct(brna, "BlendDataSpeakers", NULL); @@ -1153,6 +1270,10 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_speakers_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_speakers_is_updated_get", NULL); } void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) @@ -1160,6 +1281,7 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataTexts"); srna= RNA_def_struct(brna, "BlendDataTexts", NULL); @@ -1192,6 +1314,10 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_texts_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_texts_is_updated_get", NULL); } void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) @@ -1199,6 +1325,7 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataSounds"); srna= RNA_def_struct(brna, "BlendDataSounds", NULL); @@ -1210,6 +1337,10 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_sounds_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_sounds_is_updated_get", NULL); } void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) @@ -1217,6 +1348,7 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataArmatures"); srna= RNA_def_struct(brna, "BlendDataArmatures", NULL); @@ -1240,12 +1372,17 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_armatures_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_armatures_is_updated_get", NULL); } void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataActions"); srna= RNA_def_struct(brna, "BlendDataActions", NULL); @@ -1269,12 +1406,17 @@ void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_actions_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_actions_is_updated_get", NULL); } void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataParticles"); srna= RNA_def_struct(brna, "BlendDataParticles", NULL); @@ -1298,6 +1440,10 @@ void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_particles_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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_particles_is_updated_get", NULL); } void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) @@ -1305,6 +1451,7 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataGreasePencils"); srna= RNA_def_struct(brna, "BlendDataGreasePencils", NULL); @@ -1314,6 +1461,10 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_gpencil_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + 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); } #endif diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index b7a5b6f5216..c420ecefdae 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -345,16 +345,6 @@ static void rna_Texture_use_nodes_set(PointerRNA *ptr, int v) ED_node_texture_default(tex); } -static void rna_Texture_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - Tex *tex= (Tex*)ptr->data; - - if(tex->use_nodes && tex->nodetree==NULL) - ED_node_shader_default(scene, &tex->id); - - rna_Texture_nodes_update(bmain, scene, ptr); -} - static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) { Tex *tex= (Tex*)ptr->data; @@ -1839,9 +1829,8 @@ static void rna_def_texture(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); RNA_def_property_boolean_funcs(prop, NULL, "rna_Texture_use_nodes_set"); - RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Make this a node-based texture"); - RNA_def_property_update(prop, 0, "rna_Texture_use_nodes_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index 5ca8f2c3d9a..a5dbfdc930e 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -35,7 +35,6 @@ #include "DNA_lamp_types.h" #include "DNA_material_types.h" #include "DNA_node_types.h" -#include "DNA_texture_types.h" #include "DNA_world_types.h" #include "BLI_listbase.h" @@ -61,7 +60,6 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) Material *ma; Lamp *la; World *wo; - Tex *tex; for(ma= main->mat.first; ma; ma= ma->id.next) if(ma->nodetree) @@ -74,10 +72,6 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) for(wo= main->world.first; wo; wo= wo->id.next) if(wo->nodetree) func(calldata, &wo->id, wo->nodetree); - - for(tex= main->tex.first; tex; tex= tex->id.next) - if(tex->nodetree) - func(calldata, &tex->id, tex->nodetree); } static void local_sync(bNodeTree *localtree, bNodeTree *ntree) diff --git a/source/blender/nodes/shader/nodes/node_shader_common.c b/source/blender/nodes/shader/nodes/node_shader_common.c index 5732228de41..ff995e02ca6 100644 --- a/source/blender/nodes/shader/nodes/node_shader_common.c +++ b/source/blender/nodes/shader/nodes/node_shader_common.c @@ -185,7 +185,6 @@ void register_node_type_sh_group(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT); - node_type_compatibility(&ntype, NODE_NEW_SHADING|NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); @@ -248,7 +247,6 @@ void register_node_type_sh_forloop(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_FORLOOP, "For", NODE_CLASS_GROUP, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); @@ -311,7 +309,6 @@ void register_node_type_sh_whileloop(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, NODE_WHILELOOP, "While", NODE_CLASS_GROUP, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, NULL); node_type_size(&ntype, 120, 60, 200); node_type_label(&ntype, node_group_label); diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c index 7008aeda074..e7f74569f1a 100644 --- a/source/blender/python/intern/bpy_app_handlers.c +++ b/source/blender/python/intern/bpy_app_handlers.c @@ -47,6 +47,8 @@ static PyStructSequence_Field app_cb_info_fields[]= { {(char *)"load_post", NULL}, {(char *)"save_pre", NULL}, {(char *)"save_post", NULL}, + {(char *)"scene_update_pre", NULL}, + {(char *)"scene_update_post", NULL}, {NULL} }; diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index ffc301fb715..6680e9556b9 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -4,7 +4,6 @@ #include "DNA_customdata_types.h" #include "DNA_material_types.h" -#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "BKE_global.h" diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index e50eb9bfde5..56c0f46865a 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -50,7 +50,6 @@ #include "DNA_image_types.h" #include "DNA_meshdata_types.h" #include "DNA_material_types.h" -#include "DNA_object_types.h" #include "DNA_scene_types.h" #include "BKE_DerivedMesh.h" -- cgit v1.2.3 From a620ec61ec173b7d9b753c9be443fdbdb1644c71 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Nov 2011 15:46:15 +0000 Subject: Cycles: always use static bvh for non-viewport render. --- intern/cycles/blender/addon/properties.py | 2 +- intern/cycles/blender/blender_session.cpp | 4 ++-- intern/cycles/blender/blender_sync.cpp | 8 ++++++-- intern/cycles/blender/blender_sync.h | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 0d30307fc73..a58e4dfd154 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -92,7 +92,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.debug_text_timeout = FloatProperty(name="Text timeout", description="", default=1.0, min=0.01, max=10.0) - cls.debug_bvh_type = EnumProperty(name="BVH Type", description="Choose between faster updates, or faster render", + cls.debug_bvh_type = EnumProperty(name="Viewport BVH Type", description="Choose between faster updates, or faster render", items=enums.bvh_types, default="DYNAMIC_BVH") cls.debug_use_spatial_splits = BoolProperty(name="Use Spatial Splits", description="Use BVH spatial splits: longer builder time, faster render", default=False) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 4fa87815601..4433b1e24f9 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -73,7 +73,7 @@ BlenderSession::~BlenderSession() void BlenderSession::create_session() { - SceneParams scene_params = BlenderSync::get_scene_params(b_scene); + SceneParams scene_params = BlenderSync::get_scene_params(b_scene, background); SessionParams session_params = BlenderSync::get_session_params(b_scene, background); /* reset status/progress */ @@ -152,7 +152,7 @@ void BlenderSession::write_render_result() void BlenderSession::synchronize() { /* on session/scene parameter changes, we recreate session entirely */ - SceneParams scene_params = BlenderSync::get_scene_params(b_scene); + SceneParams scene_params = BlenderSync::get_scene_params(b_scene, background); SessionParams session_params = BlenderSync::get_session_params(b_scene, background); if(session->params.modified(session_params) || diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index d44fc3f29ca..36cf29de128 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -210,7 +210,7 @@ void BlenderSync::sync_render_layer(BL::SpaceView3D b_v3d) /* Scene Parameters */ -SceneParams BlenderSync::get_scene_params(BL::Scene b_scene) +SceneParams BlenderSync::get_scene_params(BL::Scene b_scene, bool background) { SceneParams params; PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); @@ -221,7 +221,11 @@ SceneParams BlenderSync::get_scene_params(BL::Scene b_scene) else if(shadingsystem == 1) params.shadingsystem = SceneParams::OSL; - params.bvh_type = (SceneParams::BVHType)RNA_enum_get(&cscene, "debug_bvh_type"); + if(background) + params.bvh_type = SceneParams::BVH_STATIC; + else + params.bvh_type = (SceneParams::BVHType)RNA_enum_get(&cscene, "debug_bvh_type"); + params.use_bvh_spatial_split = RNA_boolean_get(&cscene, "debug_use_spatial_splits"); return params; diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 48e755b3dcd..2e7b8ed253d 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -59,7 +59,7 @@ public: void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height); /* get parameters */ - static SceneParams get_scene_params(BL::Scene b_scene); + static SceneParams get_scene_params(BL::Scene b_scene, bool background); static SessionParams get_session_params(BL::Scene b_scene, bool background); static bool get_session_pause(BL::Scene b_scene, bool background); -- cgit v1.2.3 From 72929172dd0d3d51edf7b5b0cbcc9296ce0bb4da Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Nov 2011 20:58:00 +0000 Subject: Cycles: add location/rotate/scale and XYZ mapping options for all texture nodes, to reduce the amount of nodes needed to set up a simple texture. These are currently editable in the texture properties tab, still need to make them available in the node editor. Projection and color modification options will be added later, they're not implemented yet but allocated already to avoid version patches later. Also an issue with the XYZ mapping is that when you set one to None, texture and material draw mode doesn't draw the image texture well, OpenGL doesn't seem to like the degenerate texture matrix? --- intern/cycles/blender/addon/ui.py | 55 ++++++- intern/cycles/blender/blender_shader.cpp | 33 +++- intern/cycles/render/nodes.cpp | 6 +- intern/cycles/render/nodes.h | 2 +- source/blender/blenkernel/BKE_texture.h | 7 +- source/blender/blenkernel/intern/texture.c | 95 +++++++++-- source/blender/blenloader/intern/readfile.c | 41 +++++ source/blender/editors/include/ED_uvedit.h | 3 +- source/blender/editors/interface/interface_node.c | 5 + source/blender/editors/sculpt_paint/paint_image.c | 4 +- source/blender/editors/space_image/space_image.c | 2 +- source/blender/editors/space_node/drawnode.c | 15 +- source/blender/editors/space_node/node_draw.c | 3 +- source/blender/editors/space_view3d/drawmesh.c | 20 ++- source/blender/editors/uvedit/uvedit_ops.c | 4 +- source/blender/makesdna/DNA_node_types.h | 22 +++ source/blender/makesdna/DNA_texture_types.h | 22 ++- source/blender/makesrna/intern/rna_nodetree.c | 88 +++++------ .../blender/makesrna/intern/rna_nodetree_types.h | 2 +- source/blender/makesrna/intern/rna_space.c | 10 +- source/blender/makesrna/intern/rna_texture.c | 176 +++++++++++++++++---- .../composite/nodes/node_composite_mapValue.c | 2 +- source/blender/nodes/shader/node_shader_util.c | 21 +++ source/blender/nodes/shader/node_shader_util.h | 1 + .../nodes/shader/nodes/node_shader_mapping.c | 6 +- .../nodes/shader/nodes/node_shader_tex_blend.c | 6 +- .../nodes/shader/nodes/node_shader_tex_clouds.c | 6 +- .../nodes/shader/nodes/node_shader_tex_distnoise.c | 6 +- .../shader/nodes/node_shader_tex_environment.c | 4 + .../nodes/shader/nodes/node_shader_tex_image.c | 4 + .../nodes/shader/nodes/node_shader_tex_magic.c | 4 + .../nodes/shader/nodes/node_shader_tex_marble.c | 6 +- .../nodes/shader/nodes/node_shader_tex_musgrave.c | 6 +- .../nodes/shader/nodes/node_shader_tex_noise.c | 15 +- .../nodes/shader/nodes/node_shader_tex_sky.c | 6 +- .../nodes/shader/nodes/node_shader_tex_stucci.c | 6 +- .../nodes/shader/nodes/node_shader_tex_voronoi.c | 6 +- .../nodes/shader/nodes/node_shader_tex_wood.c | 6 +- 38 files changed, 570 insertions(+), 156 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ca077a50ad6..49193ecb195 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -311,7 +311,7 @@ class CyclesObject_PT_ray_visibility(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): ob = context.object - return ob and ob.type in ('MESH', 'CURVE', 'CURVE', 'SURFACE', 'FONT', 'META') # todo: 'LAMP' + return CyclesButtonsPanel.poll(context) and ob and ob.type in ('MESH', 'CURVE', 'CURVE', 'SURFACE', 'FONT', 'META') # todo: 'LAMP' def draw(self, context): layout = self.layout @@ -604,23 +604,64 @@ class CyclesTexture_PT_mapping(CyclesButtonsPanel, Panel): def draw(self, context): layout = self.layout - layout.label("Texture coordinate mapping goes here."); - layout.label("Translate, rotate, scale, projection, XYZ.") -class CyclesTexture_PT_color(CyclesButtonsPanel, Panel): + tex = context.texture + node = context.texture_node + + mapping = node.texture_mapping + + row = layout.row() + + row.column().prop(mapping, "location") + row.column().prop(mapping, "rotation") + row.column().prop(mapping, "scale") + + layout.label(text="Projection:") + + row = layout.row() + row.prop(mapping, "mapping_x", text="") + row.prop(mapping, "mapping_y", text="") + row.prop(mapping, "mapping_z", text="") + +class CyclesTexture_PT_colors(CyclesButtonsPanel, Panel): bl_label = "Color" bl_context = "texture" + bl_options = {'DEFAULT_CLOSED'} @classmethod def poll(cls, context): tex = context.texture node = context.texture_node - return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) + return False + #return (node or (tex and tex.use_nodes)) and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout - layout.label("Color modification options go here."); - layout.label("Ramp, brightness, contrast, saturation.") + + tex = context.texture + node = context.texture_node + + mapping = node.color_mapping + + split = layout.split() + + col = split.column() + col.label(text="Blend:") + col.prop(mapping, "blend_type", text="") + col.prop(mapping, "blend_factor", text="Factor") + col.prop(mapping, "blend_color", text="") + + col = split.column() + col.label(text="Adjust:") + col.prop(mapping, "brightness") + col.prop(mapping, "contrast") + col.prop(mapping, "saturation") + + layout.separator() + + layout.prop(mapping, "use_color_ramp", text="Ramp") + if mapping.use_color_ramp: + layout.template_color_ramp(mapping, "color_ramp", expand=True) def draw_device(self, context): scene = context.scene diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index ed84777de7c..48bdcd88c9d 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -97,6 +97,17 @@ static float get_node_output_value(BL::Node b_node, const string& name) return sock.default_value(); } +static void get_tex_mapping(TextureMapping *mapping, BL::TexMapping b_mapping) +{ + mapping->translation = get_float3(b_mapping.location()); + mapping->rotation = get_float3(b_mapping.rotation())*(M_PI/180.0f); /* in degrees! */ + mapping->scale = get_float3(b_mapping.scale()); + + mapping->x_mapping = (TextureMapping::Mapping)b_mapping.mapping_x(); + mapping->y_mapping = (TextureMapping::Mapping)b_mapping.mapping_y(); + mapping->z_mapping = (TextureMapping::Mapping)b_mapping.mapping_z(); +} + static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node *b_group_node, BL::ShaderNode b_node) { ShaderNode *node = NULL; @@ -163,10 +174,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * BL::ShaderNodeMapping b_mapping_node(b_node); MappingNode *mapping = new MappingNode(); - TextureMapping *tex_mapping = &mapping->tex_mapping; - tex_mapping->translation = get_float3(b_mapping_node.location()); - tex_mapping->rotation = get_float3(b_mapping_node.rotation()); - tex_mapping->scale = get_float3(b_mapping_node.scale()); + get_tex_mapping(&mapping->tex_mapping, b_mapping_node.mapping()); node = mapping; break; @@ -293,6 +301,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * if(b_image) image->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); image->color_space = ImageTextureNode::color_space_enum[(int)b_image_node.color_space()]; + get_tex_mapping(&image->tex_mapping, b_image_node.texture_mapping()); node = image; break; } @@ -303,11 +312,15 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * if(b_image) env->filename = blender_absolute_path(b_data, b_image, b_image.filepath()); env->color_space = EnvironmentTextureNode::color_space_enum[(int)b_env_node.color_space()]; + get_tex_mapping(&env->tex_mapping, b_env_node.texture_mapping()); node = env; break; } case BL::ShaderNode::type_TEX_NOISE: { - node = new NoiseTextureNode(); + BL::ShaderNodeTexNoise b_noise_node(b_node); + NoiseTextureNode *noise = new NoiseTextureNode(); + get_tex_mapping(&noise->tex_mapping, b_noise_node.texture_mapping()); + node = noise; break; } case BL::ShaderNode::type_TEX_BLEND: { @@ -315,6 +328,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * BlendTextureNode *blend = new BlendTextureNode(); blend->progression = BlendTextureNode::progression_enum[(int)b_blend_node.progression()]; blend->axis = BlendTextureNode::axis_enum[(int)b_blend_node.axis()]; + get_tex_mapping(&blend->tex_mapping, b_blend_node.texture_mapping()); node = blend; break; } @@ -323,6 +337,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * VoronoiTextureNode *voronoi = new VoronoiTextureNode(); voronoi->distance_metric = VoronoiTextureNode::distance_metric_enum[(int)b_voronoi_node.distance_metric()]; voronoi->coloring = VoronoiTextureNode::coloring_enum[(int)b_voronoi_node.coloring()]; + get_tex_mapping(&voronoi->tex_mapping, b_voronoi_node.texture_mapping()); node = voronoi; break; } @@ -330,6 +345,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * BL::ShaderNodeTexMagic b_magic_node(b_node); MagicTextureNode *magic = new MagicTextureNode(); magic->depth = b_magic_node.turbulence_depth(); + get_tex_mapping(&magic->tex_mapping, b_magic_node.texture_mapping()); node = magic; break; } @@ -341,6 +357,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * marble->type = MarbleTextureNode::type_enum[(int)b_marble_node.marble_type()]; marble->wave = MarbleTextureNode::wave_enum[(int)b_marble_node.wave_type()]; marble->hard = b_marble_node.noise_type() == BL::ShaderNodeTexMarble::noise_type_HARD; + get_tex_mapping(&marble->tex_mapping, b_marble_node.texture_mapping()); node = marble; break; } @@ -350,6 +367,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * clouds->depth = b_clouds_node.turbulence_depth(); clouds->basis = CloudsTextureNode::basis_enum[(int)b_clouds_node.noise_basis()]; clouds->hard = b_clouds_node.noise_type() == BL::ShaderNodeTexClouds::noise_type_HARD; + get_tex_mapping(&clouds->tex_mapping, b_clouds_node.texture_mapping()); node = clouds; break; } @@ -360,6 +378,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * wood->basis = WoodTextureNode::basis_enum[(int)b_wood_node.noise_basis()]; wood->hard = b_wood_node.noise_type() == BL::ShaderNodeTexWood::noise_type_HARD; wood->wave = WoodTextureNode::wave_enum[(int)b_wood_node.wave_type()]; + get_tex_mapping(&wood->tex_mapping, b_wood_node.texture_mapping()); node = wood; break; } @@ -368,6 +387,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * MusgraveTextureNode *musgrave = new MusgraveTextureNode(); musgrave->type = MusgraveTextureNode::type_enum[(int)b_musgrave_node.musgrave_type()]; musgrave->basis = MusgraveTextureNode::basis_enum[(int)b_musgrave_node.noise_basis()]; + get_tex_mapping(&musgrave->tex_mapping, b_musgrave_node.texture_mapping()); node = musgrave; break; } @@ -377,6 +397,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * stucci->type = StucciTextureNode::type_enum[(int)b_stucci_node.stucci_type()]; stucci->basis = StucciTextureNode::basis_enum[(int)b_stucci_node.noise_basis()]; stucci->hard = b_stucci_node.noise_type() == BL::ShaderNodeTexStucci::noise_type_HARD; + get_tex_mapping(&stucci->tex_mapping, b_stucci_node.texture_mapping()); node = stucci; break; } @@ -385,6 +406,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * DistortedNoiseTextureNode *distnoise = new DistortedNoiseTextureNode(); distnoise->basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_basis()]; distnoise->distortion_basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_distortion()]; + get_tex_mapping(&distnoise->tex_mapping, b_distnoise_node.texture_mapping()); node = distnoise; break; } @@ -397,6 +419,7 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * SkyTextureNode *sky = new SkyTextureNode(); sky->sun_direction = get_float3(b_sky_node.sun_direction()); sky->turbidity = b_sky_node.turbidity(); + get_tex_mapping(&sky->tex_mapping, b_sky_node.texture_mapping()); node = sky; break; } diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 9c72c01417a..56d5bdf77ba 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -45,11 +45,11 @@ Transform TextureMapping::compute_transform() Transform mmat = transform_scale(make_float3(0.0f, 0.0f, 0.0f)); if(x_mapping != NONE) - mmat[0][x_mapping] = 1.0f; + mmat[0][x_mapping-1] = 1.0f; if(y_mapping != NONE) - mmat[1][y_mapping] = 1.0f; + mmat[1][y_mapping-1] = 1.0f; if(z_mapping != NONE) - mmat[2][z_mapping] = 1.0f; + mmat[2][z_mapping-1] = 1.0f; Transform smat = transform_scale(scale); Transform rmat = transform_euler(rotation); diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index e11c51b4aaf..09b565b5043 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -41,7 +41,7 @@ public: float3 rotation; float3 scale; - enum Mapping { X=0, Y=1, Z=2, NONE }; + enum Mapping { NONE=0, X=1, Y=2, Z=3 }; Mapping x_mapping, y_mapping, z_mapping; enum Projection { FLAT, CUBE, TUBE, SPHERE }; diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h index de72428b3d7..508fef8d9a4 100644 --- a/source/blender/blenkernel/BKE_texture.h +++ b/source/blender/blenkernel/BKE_texture.h @@ -103,9 +103,12 @@ void set_current_particle_texture(struct ParticleSettings *part, struct Tex *tex int has_current_material_texture(struct Material *ma); -struct TexMapping *add_mapping(void); -void init_mapping(struct TexMapping *texmap); +struct TexMapping *add_tex_mapping(void); +void default_tex_mapping(struct TexMapping *texmap); +void init_tex_mapping(struct TexMapping *texmap); +struct ColorMapping *add_color_mapping(void); +void default_color_mapping(struct ColorMapping *colormap); void BKE_free_envmapdata(struct EnvMap *env); void BKE_free_envmap(struct EnvMap *env); diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index d3bd7d7b766..88cf0689a39 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -202,33 +202,96 @@ void free_plugin_tex(PluginTex *pit) /* ****************** Mapping ******************* */ -TexMapping *add_mapping(void) +TexMapping *add_tex_mapping(void) { - TexMapping *texmap= MEM_callocN(sizeof(TexMapping), "Tex map"); + TexMapping *texmap= MEM_callocN(sizeof(TexMapping), "TexMapping"); + default_tex_mapping(texmap); + + return texmap; +} + +void default_tex_mapping(TexMapping *texmap) +{ + memset(texmap, 0, sizeof(TexMapping)); + texmap->size[0]= texmap->size[1]= texmap->size[2]= 1.0f; texmap->max[0]= texmap->max[1]= texmap->max[2]= 1.0f; unit_m4(texmap->mat); - - return texmap; + + texmap->projx= PROJ_X; + texmap->projy= PROJ_Y; + texmap->projz= PROJ_Z; + texmap->mapping= MTEX_FLAT; } -void init_mapping(TexMapping *texmap) +void init_tex_mapping(TexMapping *texmap) { - float eul[3], smat[3][3], rmat[3][3], mat[3][3]; - - size_to_mat3( smat,texmap->size); - - eul[0]= DEG2RADF(texmap->rot[0]); - eul[1]= DEG2RADF(texmap->rot[1]); - eul[2]= DEG2RADF(texmap->rot[2]); - eul_to_mat3( rmat,eul); + float eul[3], smat[3][3], rmat[3][3], mat[3][3], proj[3][3]; + + if(texmap->projx == PROJ_X && texmap->projy == PROJ_Y && texmap->projz == PROJ_Z && + is_zero_v3(texmap->loc) && is_zero_v3(texmap->rot) && is_one_v3(texmap->size)) { + unit_m4(texmap->mat); + + texmap->flag |= TEXMAP_UNIT_MATRIX; + } + else { + /* axis projection */ + zero_m3(proj); + + if(texmap->projx != PROJ_N) + proj[texmap->projx-1][0]= 1.0f; + if(texmap->projy != PROJ_N) + proj[texmap->projy-1][1]= 1.0f; + if(texmap->projz != PROJ_N) + proj[texmap->projz-1][2]= 1.0f; + + /* scale */ + size_to_mat3(smat, texmap->size); + + /* rotation */ + eul[0]= DEG2RADF(texmap->rot[0]); + eul[1]= DEG2RADF(texmap->rot[1]); + eul[2]= DEG2RADF(texmap->rot[2]); + eul_to_mat3( rmat,eul); + + /* compose it all */ + mul_m3_m3m3(mat, rmat, smat); + mul_m3_m3m3(mat, proj, mat); + + /* translation */ + copy_m4_m3(texmap->mat, mat); + VECCOPY(texmap->mat[3], texmap->loc); + + texmap->flag &= ~TEXMAP_UNIT_MATRIX; + } +} + +ColorMapping *add_color_mapping(void) +{ + ColorMapping *colormap= MEM_callocN(sizeof(ColorMapping), "ColorMapping"); - mul_m3_m3m3(mat, rmat, smat); + default_color_mapping(colormap); - copy_m4_m3(texmap->mat, mat); - VECCOPY(texmap->mat[3], texmap->loc); + return colormap; + +} + +void default_color_mapping(ColorMapping *colormap) +{ + memset(colormap, 0, sizeof(ColorMapping)); + + init_colorband(&colormap->coba, 1); + + colormap->bright= 1.0; + colormap->contrast= 1.0; + colormap->saturation= 1.0; + colormap->blend_color[0]= 0.8f; + colormap->blend_color[1]= 0.8f; + colormap->blend_color[2]= 0.8f; + colormap->blend_type= MA_RAMP_BLEND; + colormap->blend_factor= 0.0f; } /* ****************** COLORBAND ******************* */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c0d52747d56..1c96cd2e05a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -7212,6 +7212,40 @@ static void do_versions_nodetree_image_default_alpha_output(bNodeTree *ntree) } } +static void do_version_ntree_tex_mapping_260(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree) +{ + bNode *node; + + for(node=ntree->nodes.first; node; node=node->next) { + TexMapping *tex_mapping= NULL; + ColorMapping *color_mapping= NULL; + + if(node->type == SH_NODE_MAPPING) { + tex_mapping= node->storage; + tex_mapping->projx= PROJ_X; + tex_mapping->projy= PROJ_Y; + tex_mapping->projz= PROJ_Z; + } + else if(ELEM7(node->type, SH_NODE_TEX_IMAGE, SH_NODE_TEX_NOISE, SH_NODE_TEX_SKY, + SH_NODE_TEX_BLEND, SH_NODE_TEX_VORONOI, SH_NODE_TEX_MAGIC, SH_NODE_TEX_MARBLE) || + ELEM6(node->type, SH_NODE_TEX_CLOUDS, SH_NODE_TEX_WOOD, SH_NODE_TEX_MUSGRAVE, + SH_NODE_TEX_STUCCI, SH_NODE_TEX_DISTNOISE, SH_NODE_TEX_ENVIRONMENT)) { + NodeTexBase *base= node->storage; + + if(node->type == SH_NODE_TEX_NOISE) + node->storage= MEM_callocN(sizeof(NodeTexNoise), "NodeTexNoise"); + + tex_mapping= &base->tex_mapping; + color_mapping= &base->color_mapping; + + if(is_zero_v3(tex_mapping->size)) { + default_tex_mapping(tex_mapping); + default_color_mapping(color_mapping); + } + } + } +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -12339,6 +12373,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main) cam->sensor_y = DEFAULT_SENSOR_HEIGHT; } } + + { + bNodeTreeType *ntreetype= ntreeGetType(NTREE_SHADER); + + if(ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, NULL, do_version_ntree_tex_mapping_260); + } } /* put compatibility code here until next subversion bump */ diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index dd46c5cc7e7..0666884351a 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -40,6 +40,7 @@ struct Object; struct Scene; struct SpaceImage; struct bContext; +struct bNode; struct wmKeyConfig; /* uvedit_ops.c */ @@ -49,7 +50,7 @@ void ED_keymap_uvedit(struct wmKeyConfig *keyconf); void ED_uvedit_assign_image(struct Main *bmain, struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max); -int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser); +int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser, struct bNode **node); void ED_object_assign_active_image(struct Main *bmain, struct Object *ob, int mat_nr, struct Image *ima); int ED_uvedit_test_silent(struct Object *obedit); diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index abf12029b23..982f33bd600 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -252,6 +252,11 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) } } + /* also preserve mapping for texture nodes */ + if(node_from->typeinfo->nclass == NODE_CLASS_TEXTURE && + node_prev->typeinfo->nclass == NODE_CLASS_TEXTURE) + memcpy(node_from->storage, node_prev->storage, sizeof(NodeTexBase)); + /* remove node */ ui_node_remove_linked(ntree, node_prev); } diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index dc6a647cada..c8c1f083046 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -489,7 +489,7 @@ static Image *imapaint_face_image(const ImagePaintState *s, int face_index) if(scene_use_new_shading_nodes(s->scene)) { MFace *mf = s->me->mface+face_index; - ED_object_get_active_image(s->ob, mf->mat_nr, &ima, NULL); + ED_object_get_active_image(s->ob, mf->mat_nr, &ima, NULL, NULL); } else { MTFace *tf = s->me->mtface+face_index; @@ -505,7 +505,7 @@ static Image *project_paint_face_image(const ProjPaintState *ps, int face_index) if(scene_use_new_shading_nodes(ps->scene)) { MFace *mf = ps->dm_mface+face_index; - ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL); + ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL, NULL); } else { MTFace *tf = ps->dm_mtface+face_index; diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index a00adec3dc7..e817565c509 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -597,7 +597,7 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) EditFace *efa= EM_get_actFace(em, sloppy); if(efa) - ED_object_get_active_image(obedit, efa->mat_nr, &sima->image, NULL); + ED_object_get_active_image(obedit, efa->mat_nr, &sima->image, NULL, NULL); } else { /* old shading system, we set texface */ diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 533d2555b26..45713ff2a8f 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -946,28 +946,29 @@ static void node_shader_buts_material(uiLayout *layout, bContext *C, PointerRNA static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { + PointerRNA mappingptr = RNA_pointer_get(ptr, "mapping"); uiLayout *row; uiItemL(layout, "Translation:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "location", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "location", 0, "", ICON_NONE); uiItemL(layout, "Rotation:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "rotation", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "rotation", 0, "", ICON_NONE); uiItemL(layout, "Scale:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "scale", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "scale", 0, "", ICON_NONE); #if 0 row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "use_min", 0, "Min", ICON_NONE); - uiItemR(row, ptr, "min", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "use_min", 0, "Min", ICON_NONE); + uiItemR(row, &mappingptr, "min", 0, "", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "use_max", 0, "Max", ICON_NONE); - uiItemR(row, ptr, "max", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "use_max", 0, "Max", ICON_NONE); + uiItemR(row, &mappingptr, "max", 0, "", ICON_NONE); #endif } diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 5b5f79160a1..a932f1b10d9 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -108,7 +108,8 @@ void ED_node_changed_update(ID *id, bNode *node) WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, id); } else if(treetype==NTREE_COMPOSIT) { - nodeUpdate(edittree, node); + 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); diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 692d45f8303..e23824a2210 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -40,11 +40,12 @@ #include "DNA_material_types.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" +#include "DNA_object_types.h" #include "DNA_property_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "DNA_view3d_types.h" -#include "DNA_object_types.h" #include "BKE_DerivedMesh.h" #include "BKE_effect.h" @@ -703,16 +704,19 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) GPUVertexAttribs *gattribs = attribs; Image *ima; ImageUser *iuser; + bNode *node; int texture_set= 0; /* draw image texture if we find one */ - if(ED_object_get_active_image(data->ob, mat_nr, &ima, &iuser)) { + 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; float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; if(bindcode) { + NodeTexBase *texbase= node->storage; + /* disable existing material */ GPU_disable_material(); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); @@ -726,6 +730,10 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) glBindTexture(GL_TEXTURE_2D, ima->bindcode); glColor3f(1.0f, 1.0f, 1.0f); + glMatrixMode(GL_TEXTURE); + glLoadMatrixf(texbase->tex_mapping.mat); + glMatrixMode(GL_MODELVIEW); + /* use active UV texture layer */ memset(gattribs, 0, sizeof(*gattribs)); @@ -739,6 +747,10 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) } if(!texture_set) { + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + /* disable texture */ glDisable(GL_TEXTURE_2D); glDisable(GL_COLOR_MATERIAL); @@ -834,6 +846,10 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o glBindTexture(GL_TEXTURE_2D, 0); glFrontFace(GL_CCW); + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + /* faceselect mode drawing over textured mesh */ if(!(ob == scene->obedit) && faceselect) draw_mesh_face_select(rv3d, ob->data, dm); diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 3019dcf1b8d..02653d29a50 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -101,7 +101,7 @@ static int is_image_texture_node(bNode *node) return ELEM(node->type, SH_NODE_TEX_IMAGE, SH_NODE_TEX_ENVIRONMENT); } -int ED_object_get_active_image(Object *ob, int mat_nr, Image **ima, ImageUser **iuser) +int ED_object_get_active_image(Object *ob, int mat_nr, Image **ima, ImageUser **iuser, bNode **node_r) { Material *ma= give_current_material(ob, mat_nr); bNode *node= (ma && ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; @@ -109,11 +109,13 @@ int ED_object_get_active_image(Object *ob, int mat_nr, Image **ima, ImageUser ** if(node && is_image_texture_node(node)) { if(ima) *ima= (Image*)node->id; if(iuser) *iuser= NULL; + if(node_r) *node_r= node; return TRUE; } if(ima) *ima= NULL; if(iuser) *iuser= NULL; + if(node_r) *node_r= node; return FALSE; } diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 13237495cea..3103bb9b7b3 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -35,6 +35,7 @@ #include "DNA_ID.h" #include "DNA_vec_types.h" #include "DNA_listBase.h" +#include "DNA_texture_types.h" struct ID; struct ListBase; @@ -426,25 +427,39 @@ typedef struct NodeColorspill { float uspillr, uspillg, uspillb; }NodeColorspill; +typedef struct NodeTexBase { + TexMapping tex_mapping; + ColorMapping color_mapping; +} NodeTexBase; + +typedef struct NodeTexNoise { + NodeTexBase base; +} NodeTexNoise; + typedef struct NodeTexSky { + NodeTexBase base; float sun_direction[3]; float turbidity; } NodeTexSky; typedef struct NodeTexImage { + NodeTexBase base; int color_space; } NodeTexImage; typedef struct NodeTexEnvironment { + NodeTexBase base; int color_space; } NodeTexEnvironment; typedef struct NodeTexBlend { + NodeTexBase base; int progression; int axis; } NodeTexBlend; typedef struct NodeTexClouds { + NodeTexBase base; int hard; int depth; int basis; @@ -452,16 +467,19 @@ typedef struct NodeTexClouds { } NodeTexClouds; typedef struct NodeTexVoronoi { + NodeTexBase base; int distance_metric; int coloring; } NodeTexVoronoi; typedef struct NodeTexMusgrave { + NodeTexBase base; int type; int basis; } NodeTexMusgrave; typedef struct NodeTexMarble { + NodeTexBase base; int type; int wave; int basis; @@ -471,11 +489,13 @@ typedef struct NodeTexMarble { } NodeTexMarble; typedef struct NodeTexMagic { + NodeTexBase base; int depth; int pad; } NodeTexMagic; typedef struct NodeTexStucci { + NodeTexBase base; int type; int basis; int hard; @@ -483,11 +503,13 @@ typedef struct NodeTexStucci { } NodeTexStucci; typedef struct NodeTexDistortedNoise { + NodeTexBase base; int basis; int distortion_basis; } NodeTexDistortedNoise; typedef struct NodeTexWood { + NodeTexBase base; int type; int wave; int basis; diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index 4cf31edb891..1ecca5a0b2a 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -267,11 +267,13 @@ typedef struct Tex { } Tex; -/* used for mapping node. note: rot is in degrees */ +/* used for mapping and texture nodes. note: rot is in degrees */ typedef struct TexMapping { float loc[3], rot[3], size[3]; int flag; + char projx, projy, projz, mapping; + int pad; float mat[4][4]; float min[3], max[3]; @@ -279,10 +281,24 @@ typedef struct TexMapping { } TexMapping; +typedef struct ColorMapping { + struct ColorBand coba; + + float bright, contrast, saturation; + int flag; + + float blend_color[3]; + float blend_factor; + int blend_type, pad[3]; +} ColorMapping; + /* texmap->flag */ -#define TEXMAP_CLIP_MIN 1 -#define TEXMAP_CLIP_MAX 2 +#define TEXMAP_CLIP_MIN 1 +#define TEXMAP_CLIP_MAX 2 +#define TEXMAP_UNIT_MATRIX 4 +/* colormap->flag */ +#define COLORMAP_USE_RAMP 1 /* **************** TEX ********************* */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 55432511730..db80f8906fd 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -446,15 +446,6 @@ static void rna_NodeSocketVector_range(PointerRNA *ptr, float *min, float *max) *max = val->max; } -static void rna_Node_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - bNode *node= (bNode*)ptr->data; - - init_mapping((TexMapping *)node->storage); - - rna_Node_update(bmain, scene, ptr); -} - static void rna_Node_image_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; @@ -1104,48 +1095,12 @@ static void def_sh_material(StructRNA *srna) static void def_sh_mapping(StructRNA *srna) { PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "TexMapping", "storage"); - prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); - RNA_def_property_float_sdna(prop, NULL, "loc"); - RNA_def_property_ui_text(prop, "Location", "Location offset for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ - RNA_def_property_float_sdna(prop, NULL, "rot"); - RNA_def_property_ui_text(prop, "Rotation", "Rotation offset for the input coordinate"); - RNA_def_property_ui_range(prop, -360.f, 360.f, 1.f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "size"); - RNA_def_property_ui_text(prop, "Scale", "Scale adjustment for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop = RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); - RNA_def_property_ui_text(prop, "Clamp Minimum", "Clamp the output coordinate to a minimum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "min"); - RNA_def_property_ui_text(prop, "Minimum", "Minimum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop = RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); - RNA_def_property_ui_text(prop, "Clamp Maximum", "Clamp the output coordinate to a maximum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "max"); - RNA_def_property_ui_text(prop, "Maximum", "Maximum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + prop= RNA_def_property(srna, "mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "storage"); + RNA_def_property_struct_type(prop, "TexMapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Mapping", "Texture coordinate mapping settings"); } static void def_sh_geometry(StructRNA *srna) @@ -1177,11 +1132,33 @@ static void def_sh_attribute(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_tex(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "texture_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.tex_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Texture Mapping", "Texture coordinate mapping settings"); + + prop= RNA_def_property(srna, "color_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.color_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Color Mapping", "Color mapping settings"); +} + +static void def_sh_tex_noise(StructRNA *srna) +{ + RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); + def_sh_tex(srna); +} + static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexSky", "storage"); + def_sh_tex(srna); prop = RNA_def_property(srna, "sun_direction", PROP_FLOAT, PROP_DIRECTION); RNA_def_property_ui_text(prop, "Sun Direction", "Direction from where the sun is shining"); @@ -1209,6 +1186,7 @@ static void def_sh_tex_environment(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_color_space_items); @@ -1233,6 +1211,7 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_color_space_items); @@ -1260,6 +1239,7 @@ static void def_sh_tex_blend(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "progression"); @@ -1279,6 +1259,7 @@ static void def_sh_tex_clouds(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); @@ -1304,6 +1285,7 @@ static void def_sh_tex_distnoise(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); @@ -1323,6 +1305,7 @@ static void def_sh_tex_magic(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMagic", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "depth"); @@ -1342,6 +1325,7 @@ static void def_sh_tex_marble(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1387,6 +1371,7 @@ static void def_sh_tex_musgrave(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMusgrave", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1412,6 +1397,7 @@ static void def_sh_tex_stucci(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1454,6 +1440,7 @@ static void def_sh_tex_voronoi(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); @@ -1480,6 +1467,7 @@ static void def_sh_tex_wood(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 6744dc77469..c74d8943bcf 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -79,7 +79,7 @@ DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GE DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 5793a2ba6f1..8315ff4f2c2 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -114,13 +114,14 @@ EnumPropertyItem viewport_shade_items[] = { #include "BLI_math.h" -#include "BKE_screen.h" #include "BKE_animsys.h" #include "BKE_brush.h" #include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_paint.h" +#include "BKE_scene.h" +#include "BKE_screen.h" #include "ED_image.h" #include "ED_node.h" @@ -458,11 +459,12 @@ static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_WIRE); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_SOLID); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); - RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); + + if(scene_use_new_shading_nodes(scene)) + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); - if(type->view_draw) { + if(type->view_draw) RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); - } RNA_enum_item_end(&item, &totitem); *free= 1; diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index c420ecefdae..aac4da9e6f6 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -75,6 +75,25 @@ EnumPropertyItem texture_type_items[] = { {TEX_WOOD, "WOOD", ICON_TEXTURE, "Wood", "Procedural - Wave generated bands or rings, with optional noise"}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem blend_type_items[] = { + {MTEX_BLEND, "MIX", 0, "Mix", ""}, + {MTEX_ADD, "ADD", 0, "Add", ""}, + {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, + {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, + {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, + {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, + {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, + {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, + {MTEX_DARK, "DARKEN", 0, "Darken", ""}, + {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, + {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, + {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, + {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, + {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, + {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, + {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "MEM_guardedalloc.h" @@ -131,13 +150,33 @@ static StructRNA *rna_Texture_refine(struct PointerRNA *ptr) } } -static void rna_Texture_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) +static void rna_Texture_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { - Tex *tex= ptr->id.data; + ID *id= ptr->id.data; - DAG_id_tag_update(&tex->id, 0); - WM_main_add_notifier(NC_TEXTURE, tex); - WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + if(GS(id->name) == ID_TE) { + Tex *tex= ptr->id.data; + + DAG_id_tag_update(&tex->id, 0); + WM_main_add_notifier(NC_TEXTURE, tex); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + } + else if(GS(id->name) == ID_NT) { + bNodeTree *ntree= ptr->id.data; + ED_node_generic_update(bmain, ntree, NULL); + } +} + +static void rna_Texture_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + TexMapping *texmap = ptr->data; + init_tex_mapping(texmap); + rna_Texture_update(bmain, scene, ptr); +} + +static void rna_Color_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + /* nothing to do */ } static void rna_Texture_voxeldata_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -400,71 +439,139 @@ static char *rna_VoxelData_path(PointerRNA *UNUSED(ptr)) static void rna_def_texmapping(BlenderRNA *brna) { + static EnumPropertyItem prop_mapping_items[] = { + {MTEX_FLAT, "FLAT", 0, "Flat", "Map X and Y coordinates directly"}, + {MTEX_CUBE, "CUBE", 0, "Cube", "Map using the normal vector"}, + {MTEX_TUBE, "TUBE", 0, "Tube", "Map with Z as central axis"}, + {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Map with Z as central axis"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_xyz_mapping_items[] = { + {0, "NONE", 0, "None", ""}, + {1, "X", 0, "X", ""}, + {2, "Y", 0, "Y", ""}, + {3, "Z", 0, "Z", ""}, + {0, NULL, 0, NULL, NULL}}; + StructRNA *srna; PropertyRNA *prop; srna= RNA_def_struct(brna, "TexMapping", NULL); - RNA_def_struct_ui_text(srna, "Texture Mapping", "Mapping settings"); + RNA_def_struct_ui_text(srna, "Texture Mapping", "Texture coordinate mapping settings"); prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "loc"); RNA_def_property_ui_text(prop, "Location", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_EULER); + prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ RNA_def_property_float_sdna(prop, NULL, "rot"); RNA_def_property_ui_text(prop, "Rotation", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "size"); RNA_def_property_ui_text(prop, "Scale", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "min"); RNA_def_property_ui_text(prop, "Minimum", "Minimum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "max"); RNA_def_property_ui_text(prop, "Maximum", "Maximum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); RNA_def_property_ui_text(prop, "Has Minimum", "Whether to use minimum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); RNA_def_property_ui_text(prop, "Has Maximum", "Whether to use maximum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_x", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projx"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "X Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_y", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projy"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Y Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_z", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projz"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Z Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_mapping_items); + RNA_def_property_ui_text(prop, "Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); } -static void rna_def_mtex(BlenderRNA *brna) +static void rna_def_colormapping(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ColorMapping", NULL); + RNA_def_struct_ui_text(srna, "Color Mapping", "Color mapping settings"); - static EnumPropertyItem prop_blend_type_items[] = { - {MTEX_BLEND, "MIX", 0, "Mix", ""}, - {MTEX_ADD, "ADD", 0, "Add", ""}, - {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, - {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, - {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, - {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, - {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, - {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, - {MTEX_DARK, "DARKEN", 0, "Darken", ""}, - {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, - {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, - {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, - {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, - {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, - {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, - {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, - {0, NULL, 0, NULL, NULL}}; + prop= RNA_def_property(srna, "use_color_ramp", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", COLORMAP_USE_RAMP); + RNA_def_property_ui_text(prop, "Use Color Ramp", "Toggle color ramp operations"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "color_ramp", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_pointer_sdna(prop, NULL, "coba"); + RNA_def_property_struct_type(prop, "ColorRamp"); + RNA_def_property_ui_text(prop, "Color Ramp", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "brightness", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "bright"); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Brightness", "Adjust the brightness of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.01, 5); + RNA_def_property_ui_text(prop, "Contrast", "Adjust the contrast of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Saturation", "Adjust the saturation of colors in the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, blend_type_items); + RNA_def_property_ui_text(prop, "Blend Type", "Mode used to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_color", PROP_FLOAT, PROP_COLOR); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Color", "Blend color to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Blend Factor", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); +} + +static void rna_def_mtex(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; static EnumPropertyItem output_node_items[] = { {0, "DUMMY", 0, "Dummy", ""}, @@ -512,7 +619,7 @@ static void rna_def_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "blendtype"); - RNA_def_property_enum_items(prop, prop_blend_type_items); + RNA_def_property_enum_items(prop, blend_type_items); RNA_def_property_ui_text(prop, "Blend Type", "Mode used to apply the texture"); RNA_def_property_update(prop, 0, "rna_TextureSlot_update"); @@ -1866,6 +1973,7 @@ void RNA_def_texture(BlenderRNA *brna) rna_def_mtex(brna); rna_def_environment_map(brna); rna_def_texmapping(brna); + rna_def_colormapping(brna); } #endif diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.c b/source/blender/nodes/composite/nodes/node_composite_mapValue.c index 81e963d4790..6930fbf0664 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapValue.c +++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.c @@ -79,7 +79,7 @@ static void node_composit_exec_map_value(void *UNUSED(data), bNode *node, bNodeS static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { - node->storage= add_mapping(); + node->storage= add_tex_mapping(); } void register_node_type_cmp_map_value(ListBase *lb) diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index 8c5750f3ae2..468f593773d 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -308,3 +308,24 @@ void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs) } } } + +void node_shader_gpu_tex_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *UNUSED(out)) +{ + NodeTexBase *base= node->storage; + TexMapping *texmap= &base->tex_mapping; + float domin= (texmap->flag & TEXMAP_CLIP_MIN) != 0; + float domax= (texmap->flag & TEXMAP_CLIP_MAX) != 0; + + if(domin || domax || !(texmap->flag & TEXMAP_UNIT_MATRIX)) { + GPUNodeLink *tmat = GPU_uniform((float*)texmap->mat); + GPUNodeLink *tmin = GPU_uniform(texmap->min); + GPUNodeLink *tmax = GPU_uniform(texmap->max); + GPUNodeLink *tdomin = GPU_uniform(&domin); + GPUNodeLink *tdomax = GPU_uniform(&domax); + + GPU_link(mat, "mapping", in[0].link, tmat, tmin, tmax, tdomin, tdomax, &in[0].link); + } + else + printf("skip mapping!\n"); +} + diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h index f18310d351d..19976ada3ec 100644 --- a/source/blender/nodes/shader/node_shader_util.h +++ b/source/blender/nodes/shader/node_shader_util.h @@ -128,6 +128,7 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns); void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, struct bNodeStack *ns); void node_data_from_gpu_stack(struct bNodeStack *ns, struct GPUNodeStack *gs); +void node_shader_gpu_tex_mapping(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out); void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct GPUMaterial *mat, int do_outputs); diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c index 36ac25dbd4d..2eff74651ef 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.c +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -67,9 +67,9 @@ 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_default_mapping(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { - node->storage= add_mapping(); + node->storage= add_tex_mapping(); } static int gpu_shader_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) @@ -94,7 +94,7 @@ void register_node_type_sh_mapping(ListBase *lb) node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mapping_in, sh_node_mapping_out); node_type_size(&ntype, 240, 160, 320); - node_type_init(&ntype, node_shader_init_mapping); + node_type_init(&ntype, node_shader_default_mapping); node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_mapping); node_type_gpu(&ntype, gpu_shader_mapping); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c index 659b0cadd5b..50bafede2aa 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c @@ -88,6 +88,8 @@ static bNodeSocketTemplate sh_node_tex_blend_out[]= { static void node_shader_init_tex_blend(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexBlend *tex = MEM_callocN(sizeof(NodeTexBlend), "NodeTexBlend"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->progression = SHD_BLEND_LINEAR; tex->axis = SHD_BLEND_HORIZONTAL; @@ -109,11 +111,13 @@ static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, out[0]->vec[0]= blend(vec, tex->progression, tex->axis); } -static int node_shader_gpu_tex_blend(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_blend(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_blend", in, out); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c index c38dd155a7b..12f117995bc 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c @@ -68,6 +68,8 @@ static bNodeSocketTemplate sh_node_tex_clouds_out[]= { static void node_shader_init_tex_clouds(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexClouds *tex = MEM_callocN(sizeof(NodeTexClouds), "NodeTexClouds"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->basis = SHD_NOISE_PERLIN; tex->hard = 0; tex->depth = 2; @@ -92,11 +94,13 @@ static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in out[1]->vec[0]= clouds(tex->basis, tex->hard, tex->depth, size, vec, out[0]->vec); } -static int node_shader_gpu_tex_clouds(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_clouds(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_clouds", in, out); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c index c28fef9e472..56a87949fc7 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c @@ -65,6 +65,8 @@ static bNodeSocketTemplate sh_node_tex_distnoise_out[]= { static void node_shader_init_tex_distorted_noise(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexDistortedNoise *tex = MEM_callocN(sizeof(NodeTexDistortedNoise), "NodeTexDistortedNoise"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->basis = SHD_NOISE_PERLIN; tex->distortion_basis = SHD_NOISE_PERLIN; @@ -89,11 +91,13 @@ static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack * out[0]->vec[0]= distorted_noise(vec, size, tex->basis, tex->distortion_basis, distortion); } -static int node_shader_gpu_tex_distnoise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_distnoise(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_distnoise", in, out); } 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 7fbd5142e22..3c0a1a22e5a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -44,6 +44,8 @@ static bNodeSocketTemplate sh_node_tex_environment_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->color_space = SHD_COLORSPACE_SRGB; node->storage = tex; @@ -94,6 +96,8 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod if(!in[0].link) in[0].link = GPU_builtin(GPU_VIEW_POSITION); + node_shader_gpu_tex_mapping(mat, node, in, out); + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); } 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 11a2c914746..562884a9ed9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c @@ -44,6 +44,8 @@ static bNodeSocketTemplate sh_node_tex_image_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->color_space = SHD_COLORSPACE_SRGB; node->storage = tex; @@ -92,6 +94,8 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack if(!in[0].link) in[0].link = GPU_attribute(CD_MTFACE, ""); + node_shader_gpu_tex_mapping(mat, node, in, out); + return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); } 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 5ccb42d99c4..8d0a2d3fb85 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c @@ -118,6 +118,8 @@ static bNodeSocketTemplate sh_node_tex_magic_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->depth = 2; node->storage = tex; @@ -148,6 +150,8 @@ static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack 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_magic", in, out, GPU_uniform(&depth)); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c index 5b9b3008038..3bb999659c9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c @@ -70,6 +70,8 @@ static bNodeSocketTemplate sh_node_tex_marble_out[]= { static void node_shader_init_tex_marble(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexMarble *tex = MEM_callocN(sizeof(NodeTexMarble), "NodeTexMarble"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->type = SHD_MARBLE_SOFT; tex->wave = SHD_WAVE_SINE; tex->basis = SHD_NOISE_PERLIN; @@ -97,11 +99,13 @@ static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in out[0]->vec[0]= marble(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence, tex->depth); } -static int node_shader_gpu_tex_marble(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_marble(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_marble", in, out); } 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 f8586b5e9ac..7cf33445a5d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c @@ -234,6 +234,8 @@ static bNodeSocketTemplate sh_node_tex_musgrave_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->type = SHD_MUSGRAVE_FBM; tex->basis = SHD_NOISE_PERLIN; @@ -262,11 +264,13 @@ static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack ** out[0]->vec[0]= musgrave(tex->type, tex->basis, dimension, lacunarity, octaves, offset, 1.0f, gain, size, vec); } -static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_musgrave(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_musgrave", in, out); } 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 32f88e998a5..e8fb4737305 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c @@ -59,6 +59,15 @@ static bNodeSocketTemplate sh_node_tex_noise_out[]= { { -1, 0, "" } }; +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); + default_color_mapping(&tex->base.color_mapping); + + node->storage = tex; +} + static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { ShaderCallData *scd= (ShaderCallData*)data; @@ -74,11 +83,13 @@ static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, out[1]->vec[0]= noise_texture_value(vec); } -static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_noise(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_noise", in, out); } @@ -91,7 +102,7 @@ void register_node_type_sh_tex_noise(ListBase *lb) node_type_compatibility(&ntype, NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_tex_noise_in, sh_node_tex_noise_out); node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, NULL); + node_type_init(&ntype, node_shader_init_tex_noise); node_type_storage(&ntype, "", NULL, NULL); node_type_exec(&ntype, node_shader_exec_tex_noise); node_type_gpu(&ntype, node_shader_gpu_tex_noise); 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 b43f7bd2924..6fb1f4f51cf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c @@ -44,6 +44,8 @@ static bNodeSocketTemplate sh_node_tex_sky_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->sun_direction[0] = 0.0f; tex->sun_direction[1] = 0.0f; tex->sun_direction[2] = 1.0f; @@ -56,11 +58,13 @@ static void node_shader_exec_tex_sky(void *UNUSED(data), bNode *UNUSED(node), bN { } -static int node_shader_gpu_tex_sky(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_sky(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_sky", in, out); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c index 4540e2c982b..3eb315052a9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c @@ -67,6 +67,8 @@ static bNodeSocketTemplate sh_node_tex_stucci_out[]= { static void node_shader_init_tex_stucci(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexStucci *tex = MEM_callocN(sizeof(NodeTexStucci), "NodeTexStucci"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->type = SHD_STUCCI_PLASTIC; tex->basis = SHD_NOISE_PERLIN; tex->hard = 0; @@ -92,11 +94,13 @@ static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in out[0]->vec[0]= stucci(tex->type, tex->basis, tex->hard, turbulence, size, vec); } -static int node_shader_gpu_tex_stucci(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_stucci(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_stucci", in, out); } 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 b942aa00fb4..ee8838ca1b3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c @@ -109,6 +109,8 @@ static bNodeSocketTemplate sh_node_tex_voronoi_out[]= { 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); + default_color_mapping(&tex->base.color_mapping); tex->distance_metric = SHD_VORONOI_ACTUAL_DISTANCE; tex->coloring = SHD_VORONOI_INTENSITY; @@ -138,11 +140,13 @@ static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **i exponent, 1.0f, size, vec, out[0]->vec); } -static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_voronoi(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_voronoi", in, out); } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c index 4fb11743882..f1beb8e5d7d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c @@ -73,6 +73,8 @@ static bNodeSocketTemplate sh_node_tex_wood_out[]= { static void node_shader_init_tex_wood(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { NodeTexWood *tex = MEM_callocN(sizeof(NodeTexWood), "NodeTexWood"); + default_tex_mapping(&tex->base.tex_mapping); + default_color_mapping(&tex->base.color_mapping); tex->type = SHD_WOOD_BANDS; tex->wave = SHD_WAVE_SINE; tex->basis = SHD_NOISE_PERLIN; @@ -99,11 +101,13 @@ static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, out[0]->vec[0]= wood(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence); } -static int node_shader_gpu_tex_wood(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_tex_wood(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_wood", in, out); } -- cgit v1.2.3 From f188bc3550958a81ebd99dda33f2088bb52127f8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Nov 2011 21:19:51 +0000 Subject: Cycles: fix DNA alignment problem in last commit. --- source/blender/makesdna/DNA_node_types.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 3103bb9b7b3..d637d6f97bd 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -444,12 +444,12 @@ typedef struct NodeTexSky { typedef struct NodeTexImage { NodeTexBase base; - int color_space; + int color_space, pad; } NodeTexImage; typedef struct NodeTexEnvironment { NodeTexBase base; - int color_space; + int color_space, pad; } NodeTexEnvironment; typedef struct NodeTexBlend { -- cgit v1.2.3 From fd83a3ede0009e3c0fc7a917582f3cbc8e392576 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 5 Nov 2011 11:11:06 +0000 Subject: Cycles: make cycles work with new camera sensor size. --- intern/cycles/blender/addon/ui.py | 1 + intern/cycles/blender/blender_camera.cpp | 38 ++++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 49193ecb195..58852edce88 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -712,6 +712,7 @@ def get_panels(): bpy.types.DATA_PT_vertex_colors, bpy.types.DATA_PT_camera, bpy.types.DATA_PT_camera_display, + bpy.types.DATA_PT_lens, 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 e3b0fbd0a25..2a2c2a7c643 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -47,6 +47,10 @@ struct BlenderCamera { float2 pixelaspect; + enum { AUTO, HORIZONTAL, VERTICAL } sensor_fit; + float sensor_width; + float sensor_height; + Transform matrix; }; @@ -56,6 +60,9 @@ static void blender_camera_init(BlenderCamera *bcam) bcam->zoom = 1.0f; bcam->pixelaspect = make_float2(1.0f, 1.0f); + bcam->sensor_width = 32.0f; + bcam->sensor_height = 18.0f; + bcam->sensor_fit = BlenderCamera::AUTO; } static float blender_camera_focal_distance(BL::Object b_ob, BL::Camera b_camera) @@ -100,6 +107,16 @@ static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob) bcam->shift.x = b_camera.shift_x(); bcam->shift.y = b_camera.shift_y(); + + bcam->sensor_width = b_camera.sensor_width(); + bcam->sensor_height = b_camera.sensor_height(); + + if(b_camera.sensor_fit() == BL::Camera::sensor_fit_AUTO) + bcam->sensor_fit = BlenderCamera::AUTO; + else if(b_camera.sensor_fit() == BL::Camera::sensor_fit_HORIZONTAL) + bcam->sensor_fit = BlenderCamera::HORIZONTAL; + else + bcam->sensor_fit = BlenderCamera::VERTICAL; } else { /* from lamp not implemented yet */ @@ -118,7 +135,24 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int /* compute x/y aspect and ratio */ float aspectratio, xaspect, yaspect; - if(xratio > yratio) { + /* sensor fitting */ + bool horizontal_fit; + float sensor_size; + + if(bcam->sensor_fit == BlenderCamera::AUTO) { + horizontal_fit = (xratio > yratio); + sensor_size = bcam->sensor_width; + } + else if(bcam->sensor_fit == BlenderCamera::HORIZONTAL) { + horizontal_fit = true; + sensor_size = bcam->sensor_width; + } + else { + horizontal_fit = false; + sensor_size = bcam->sensor_height; + } + + if(horizontal_fit) { aspectratio= xratio/yratio; xaspect= aspectratio; yaspect= 1.0f; @@ -165,7 +199,7 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int cam->ortho = bcam->ortho; /* perspective */ - cam->fov = 2.0f*atan(16.0f/bcam->lens/aspectratio); + cam->fov = 2.0f*atan((0.5f*sensor_size)/bcam->lens/aspectratio); cam->focaldistance = bcam->focaldistance; cam->aperturesize = bcam->aperturesize; cam->blades = bcam->apertureblades; -- cgit v1.2.3 From 3bf96250cde08ab9ad717819114b48ccb11c2d5d Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 6 Nov 2011 14:09:08 +0000 Subject: Cycles: Use new libs on win32/64. Make sure you update lib/windows or lib/win64. --- CMakeLists.txt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0230fb34d0c..e41823f14b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -838,13 +838,8 @@ elseif(WIN32) if(WITH_BOOST) set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) - if(CMAKE_CL_64) - set(BOOST_POSTFIX "vc90-mt-s-1_45.lib") - set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_45.lib") - else() - set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib") - set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1.lib") - endif() + set(BOOST_POSTFIX "vc90-mt-s-1_47.lib") + set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_47.lib") set(BOOST_LIBRARIES optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} -- cgit v1.2.3 From fb56dbc2afc7c8b6ffc24406ed82cbcbff090da3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 6 Nov 2011 21:05:58 +0000 Subject: Cycles: procedural texture nodes reorganization. This will break existing files using them, but rather do it now that I have the chance still. Highlights: * Wood and Marble merged into a single Wave texture * Clouds + Distorted Noise merged into new Noise node * Blend renamed to Gradient * Stucci removed, was mostly useful for old bump * Noise removed, will come back later, didn't actually work yet * Depth setting is now Detail socket, which accepts float values * Scale socket instead of Size socket http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures --- intern/cycles/blender/blender_shader.cpp | 85 +--- intern/cycles/kernel/CMakeLists.txt | 8 +- intern/cycles/kernel/svm/svm.h | 43 +- intern/cycles/kernel/svm/svm_blend.h | 79 --- intern/cycles/kernel/svm/svm_clouds.h | 55 --- intern/cycles/kernel/svm/svm_distorted_noise.h | 59 --- intern/cycles/kernel/svm/svm_fresnel.h | 4 +- intern/cycles/kernel/svm/svm_gradient.h | 80 ++++ intern/cycles/kernel/svm/svm_magic.h | 60 +-- intern/cycles/kernel/svm/svm_marble.h | 67 --- intern/cycles/kernel/svm/svm_musgrave.h | 59 +-- intern/cycles/kernel/svm/svm_noisetex.h | 55 ++- intern/cycles/kernel/svm/svm_stucci.h | 63 --- intern/cycles/kernel/svm/svm_texture.h | 29 +- intern/cycles/kernel/svm/svm_types.h | 27 +- intern/cycles/kernel/svm/svm_voronoi.h | 65 +-- intern/cycles/kernel/svm/svm_wave.h | 65 +++ intern/cycles/kernel/svm/svm_wood.h | 69 --- intern/cycles/render/nodes.cpp | 531 ++++++--------------- intern/cycles/render/nodes.h | 80 +--- intern/cycles/util/util_hash.h | 4 +- source/blender/blenkernel/BKE_node.h | 12 +- source/blender/blenkernel/intern/node.c | 14 +- source/blender/blenloader/intern/readfile.c | 7 +- source/blender/editors/space_node/drawnode.c | 61 +-- source/blender/makesdna/DNA_node_types.h | 85 +--- source/blender/makesrna/intern/rna_nodetree.c | 212 +------- .../blender/makesrna/intern/rna_nodetree_types.h | 12 +- source/blender/nodes/CMakeLists.txt | 12 +- source/blender/nodes/NOD_shader.h | 10 +- .../nodes/shader/nodes/node_shader_blend_weight.c | 69 --- .../nodes/shader/nodes/node_shader_layer_weight.c | 70 +++ .../blender/nodes/shader/nodes/node_shader_noise.h | 32 +- .../nodes/shader/nodes/node_shader_tex_blend.c | 140 ------ .../nodes/shader/nodes/node_shader_tex_clouds.c | 123 ----- .../nodes/shader/nodes/node_shader_tex_distnoise.c | 120 ----- .../nodes/shader/nodes/node_shader_tex_gradient.c | 140 ++++++ .../nodes/shader/nodes/node_shader_tex_magic.c | 51 +- .../nodes/shader/nodes/node_shader_tex_marble.c | 128 ----- .../nodes/shader/nodes/node_shader_tex_musgrave.c | 81 ++-- .../nodes/shader/nodes/node_shader_tex_noise.c | 56 ++- .../nodes/shader/nodes/node_shader_tex_stucci.c | 123 ----- .../nodes/shader/nodes/node_shader_tex_voronoi.c | 67 +-- .../nodes/shader/nodes/node_shader_tex_wave.c | 129 +++++ .../nodes/shader/nodes/node_shader_tex_wood.c | 130 ----- 45 files changed, 1028 insertions(+), 2443 deletions(-) delete mode 100644 intern/cycles/kernel/svm/svm_blend.h delete mode 100644 intern/cycles/kernel/svm/svm_clouds.h delete mode 100644 intern/cycles/kernel/svm/svm_distorted_noise.h create mode 100644 intern/cycles/kernel/svm/svm_gradient.h delete mode 100644 intern/cycles/kernel/svm/svm_marble.h delete mode 100644 intern/cycles/kernel/svm/svm_stucci.h create mode 100644 intern/cycles/kernel/svm/svm_wave.h delete mode 100644 intern/cycles/kernel/svm/svm_wood.h delete mode 100644 source/blender/nodes/shader/nodes/node_shader_blend_weight.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_layer_weight.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_blend.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_clouds.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_gradient.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_marble.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_stucci.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_wave.c delete mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_wood.c diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 48bdcd88c9d..2e558cf3e97 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -191,8 +191,8 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = new FresnelNode(); break; } - case BL::ShaderNode::type_BLEND_WEIGHT: { - node = new BlendWeightNode(); + case BL::ShaderNode::type_LAYER_WEIGHT: { + node = new LayerWeightNode(); break; } case BL::ShaderNode::type_ADD_SHADER: { @@ -316,26 +316,17 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = env; break; } - case BL::ShaderNode::type_TEX_NOISE: { - BL::ShaderNodeTexNoise b_noise_node(b_node); - NoiseTextureNode *noise = new NoiseTextureNode(); - get_tex_mapping(&noise->tex_mapping, b_noise_node.texture_mapping()); - node = noise; - break; - } - case BL::ShaderNode::type_TEX_BLEND: { - BL::ShaderNodeTexBlend b_blend_node(b_node); - BlendTextureNode *blend = new BlendTextureNode(); - blend->progression = BlendTextureNode::progression_enum[(int)b_blend_node.progression()]; - blend->axis = BlendTextureNode::axis_enum[(int)b_blend_node.axis()]; - get_tex_mapping(&blend->tex_mapping, b_blend_node.texture_mapping()); - node = blend; + case BL::ShaderNode::type_TEX_GRADIENT: { + BL::ShaderNodeTexGradient b_gradient_node(b_node); + GradientTextureNode *gradient = new GradientTextureNode(); + gradient->type = GradientTextureNode::type_enum[(int)b_gradient_node.gradient_type()]; + get_tex_mapping(&gradient->tex_mapping, b_gradient_node.texture_mapping()); + node = gradient; break; } case BL::ShaderNode::type_TEX_VORONOI: { BL::ShaderNodeTexVoronoi b_voronoi_node(b_node); VoronoiTextureNode *voronoi = new VoronoiTextureNode(); - voronoi->distance_metric = VoronoiTextureNode::distance_metric_enum[(int)b_voronoi_node.distance_metric()]; voronoi->coloring = VoronoiTextureNode::coloring_enum[(int)b_voronoi_node.coloring()]; get_tex_mapping(&voronoi->tex_mapping, b_voronoi_node.texture_mapping()); node = voronoi; @@ -349,67 +340,29 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = magic; break; } - case BL::ShaderNode::type_TEX_MARBLE: { - BL::ShaderNodeTexMarble b_marble_node(b_node); - MarbleTextureNode *marble = new MarbleTextureNode(); - marble->depth = b_marble_node.turbulence_depth(); - marble->basis = MarbleTextureNode::basis_enum[(int)b_marble_node.noise_basis()]; - marble->type = MarbleTextureNode::type_enum[(int)b_marble_node.marble_type()]; - marble->wave = MarbleTextureNode::wave_enum[(int)b_marble_node.wave_type()]; - marble->hard = b_marble_node.noise_type() == BL::ShaderNodeTexMarble::noise_type_HARD; - get_tex_mapping(&marble->tex_mapping, b_marble_node.texture_mapping()); - node = marble; - break; - } - case BL::ShaderNode::type_TEX_CLOUDS: { - BL::ShaderNodeTexClouds b_clouds_node(b_node); - CloudsTextureNode *clouds = new CloudsTextureNode(); - clouds->depth = b_clouds_node.turbulence_depth(); - clouds->basis = CloudsTextureNode::basis_enum[(int)b_clouds_node.noise_basis()]; - clouds->hard = b_clouds_node.noise_type() == BL::ShaderNodeTexClouds::noise_type_HARD; - get_tex_mapping(&clouds->tex_mapping, b_clouds_node.texture_mapping()); - node = clouds; + case BL::ShaderNode::type_TEX_WAVE: { + BL::ShaderNodeTexWave b_wave_node(b_node); + WaveTextureNode *wave = new WaveTextureNode(); + wave->type = WaveTextureNode::type_enum[(int)b_wave_node.wave_type()]; + get_tex_mapping(&wave->tex_mapping, b_wave_node.texture_mapping()); + node = wave; break; } - case BL::ShaderNode::type_TEX_WOOD: { - BL::ShaderNodeTexWood b_wood_node(b_node); - WoodTextureNode *wood = new WoodTextureNode(); - wood->type = WoodTextureNode::type_enum[(int)b_wood_node.wood_type()]; - wood->basis = WoodTextureNode::basis_enum[(int)b_wood_node.noise_basis()]; - wood->hard = b_wood_node.noise_type() == BL::ShaderNodeTexWood::noise_type_HARD; - wood->wave = WoodTextureNode::wave_enum[(int)b_wood_node.wave_type()]; - get_tex_mapping(&wood->tex_mapping, b_wood_node.texture_mapping()); - node = wood; + case BL::ShaderNode::type_TEX_NOISE: { + BL::ShaderNodeTexNoise b_noise_node(b_node); + NoiseTextureNode *noise = new NoiseTextureNode(); + get_tex_mapping(&noise->tex_mapping, b_noise_node.texture_mapping()); + node = noise; break; } case BL::ShaderNode::type_TEX_MUSGRAVE: { BL::ShaderNodeTexMusgrave b_musgrave_node(b_node); MusgraveTextureNode *musgrave = new MusgraveTextureNode(); musgrave->type = MusgraveTextureNode::type_enum[(int)b_musgrave_node.musgrave_type()]; - musgrave->basis = MusgraveTextureNode::basis_enum[(int)b_musgrave_node.noise_basis()]; get_tex_mapping(&musgrave->tex_mapping, b_musgrave_node.texture_mapping()); node = musgrave; break; } - case BL::ShaderNode::type_TEX_STUCCI: { - BL::ShaderNodeTexStucci b_stucci_node(b_node); - StucciTextureNode *stucci = new StucciTextureNode(); - stucci->type = StucciTextureNode::type_enum[(int)b_stucci_node.stucci_type()]; - stucci->basis = StucciTextureNode::basis_enum[(int)b_stucci_node.noise_basis()]; - stucci->hard = b_stucci_node.noise_type() == BL::ShaderNodeTexStucci::noise_type_HARD; - get_tex_mapping(&stucci->tex_mapping, b_stucci_node.texture_mapping()); - node = stucci; - break; - } - case BL::ShaderNode::type_TEX_DISTORTED_NOISE: { - BL::ShaderNodeTexDistortedNoise b_distnoise_node(b_node); - DistortedNoiseTextureNode *distnoise = new DistortedNoiseTextureNode(); - distnoise->basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_basis()]; - distnoise->distortion_basis = DistortedNoiseTextureNode::basis_enum[(int)b_distnoise_node.noise_distortion()]; - get_tex_mapping(&distnoise->tex_mapping, b_distnoise_node.texture_mapping()); - node = distnoise; - break; - } case BL::ShaderNode::type_TEX_COORD: { node = new TextureCoordinateNode();; break; diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index cf10f035585..893c4bb6081 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -42,33 +42,29 @@ set(svm_headers svm/emissive.h svm/svm.h svm/svm_attribute.h - svm/svm_blend.h svm/svm_bsdf.h svm/svm_closure.h - svm/svm_clouds.h svm/svm_convert.h svm/svm_displace.h - svm/svm_distorted_noise.h svm/svm_fresnel.h svm/svm_geometry.h + svm/svm_gradient.h svm/svm_image.h svm/svm_light_path.h svm/svm_magic.h svm/svm_mapping.h - svm/svm_marble.h svm/svm_math.h svm/svm_mix.h svm/svm_musgrave.h svm/svm_noise.h svm/svm_noisetex.h svm/svm_sky.h - svm/svm_stucci.h svm/svm_tex_coord.h svm/svm_texture.h svm/svm_types.h svm/svm_value.h svm/svm_voronoi.h - svm/svm_wood.h + svm/svm_wave.h svm/volume.h ) diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 9628f96bcab..2615272691c 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -120,29 +120,25 @@ CCL_NAMESPACE_END #include "svm_texture.h" #include "svm_attribute.h" -#include "svm_blend.h" +#include "svm_gradient.h" #include "svm_closure.h" -#include "svm_clouds.h" +#include "svm_noisetex.h" #include "svm_convert.h" #include "svm_displace.h" -#include "svm_distorted_noise.h" #include "svm_fresnel.h" #include "svm_geometry.h" #include "svm_image.h" #include "svm_light_path.h" #include "svm_magic.h" #include "svm_mapping.h" -#include "svm_marble.h" +#include "svm_wave.h" #include "svm_math.h" #include "svm_mix.h" #include "svm_musgrave.h" -#include "svm_noisetex.h" #include "svm_sky.h" -#include "svm_stucci.h" #include "svm_tex_coord.h" #include "svm_value.h" #include "svm_voronoi.h" -#include "svm_wood.h" CCL_NAMESPACE_BEGIN @@ -206,12 +202,6 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT offset = node.y; break; #ifdef __TEXTURES__ - case NODE_TEX_NOISE_F: - svm_node_tex_noise_f(sd, stack, node.y, node.z); - break; - case NODE_TEX_NOISE_V: - svm_node_tex_noise_v(sd, stack, node.y, node.z); - break; case NODE_TEX_IMAGE: svm_node_tex_image(kg, sd, stack, node); break; @@ -221,11 +211,11 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_TEX_SKY: svm_node_tex_sky(kg, sd, stack, node.y, node.z); break; - case NODE_TEX_BLEND: - svm_node_tex_blend(sd, stack, node); + case NODE_TEX_GRADIENT: + svm_node_tex_gradient(sd, stack, node); break; - case NODE_TEX_CLOUDS: - svm_node_tex_clouds(sd, stack, node); + case NODE_TEX_NOISE: + svm_node_tex_noise(kg, sd, stack, node, &offset); break; case NODE_TEX_VORONOI: svm_node_tex_voronoi(kg, sd, stack, node, &offset); @@ -233,20 +223,11 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_TEX_MUSGRAVE: svm_node_tex_musgrave(kg, sd, stack, node, &offset); break; - case NODE_TEX_MARBLE: - svm_node_tex_marble(kg, sd, stack, node, &offset); + case NODE_TEX_WAVE: + svm_node_tex_wave(kg, sd, stack, node, &offset); break; case NODE_TEX_MAGIC: - svm_node_tex_magic(sd, stack, node); - break; - case NODE_TEX_STUCCI: - svm_node_tex_stucci(kg, sd, stack, node, &offset); - break; - case NODE_TEX_DISTORTED_NOISE: - svm_node_tex_distorted_noise(kg, sd, stack, node, &offset); - break; - case NODE_TEX_WOOD: - svm_node_tex_wood(kg, sd, stack, node, &offset); + svm_node_tex_magic(kg, sd, stack, node, &offset); break; #endif case NODE_GEOMETRY: @@ -285,8 +266,8 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_FRESNEL: svm_node_fresnel(sd, stack, node.y, node.z, node.w); break; - case NODE_BLEND_WEIGHT: - svm_node_blend_weight(sd, stack, node); + case NODE_LAYER_WEIGHT: + svm_node_layer_weight(sd, stack, node); break; case NODE_SET_DISPLACEMENT: svm_node_set_displacement(sd, stack, node.y); diff --git a/intern/cycles/kernel/svm/svm_blend.h b/intern/cycles/kernel/svm/svm_blend.h deleted file mode 100644 index 97fa4aff9e7..00000000000 --- a/intern/cycles/kernel/svm/svm_blend.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Blend */ - -__device float svm_blend(float3 p, NodeBlendType type, NodeBlendAxis axis) -{ - float x, y; - - if(axis == NODE_BLEND_VERTICAL) { - x= p.y; - y= p.x; - } - else { - x= p.x; - y= p.y; - } - - if(type == NODE_BLEND_LINEAR) { - return (1.0f + x)/2.0f; - } - else if(type == NODE_BLEND_QUADRATIC) { - float r = fmaxf((1.0f + x)/2.0f, 0.0f); - return r*r; - } - else if(type == NODE_BLEND_EASING) { - float r = fminf(fmaxf((1.0f + x)/2.0f, 0.0f), 1.0f); - float t = r*r; - - return (3.0f*t - 2.0f*t*r); - } - else if(type == NODE_BLEND_DIAGONAL) { - return (2.0f + x + y)/4.0f; - } - else if(type == NODE_BLEND_RADIAL) { - return atan2(y, x)/(2.0f*M_PI_F) + 0.5f; - } - else { - float r = fmaxf(1.0f - sqrtf(x*x + y*y + p.z*p.z), 0.0f); - - if(type == NODE_BLEND_QUADRATIC_SPHERE) - return r*r; - else if(type == NODE_BLEND_SPHERICAL) - return r; - } - - return 0.0f; -} - -__device void svm_node_tex_blend(ShaderData *sd, float *stack, uint4 node) -{ - float3 co = stack_load_float3(stack, node.z); - uint type, axis; - - decode_node_uchar4(node.y, &type, &axis, NULL, NULL); - - float f = svm_blend(co, (NodeBlendType)type, (NodeBlendAxis)axis); - stack_store_float(stack, node.w, f); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/kernel/svm/svm_clouds.h b/intern/cycles/kernel/svm/svm_clouds.h deleted file mode 100644 index b89f1ceb072..00000000000 --- a/intern/cycles/kernel/svm/svm_clouds.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Clouds */ - -__device_inline void svm_clouds(NodeNoiseBasis basis, int hard, int depth, float size, float3 p, float *fac, float3 *color) -{ - p /= size; - - *fac = noise_turbulence(p, basis, depth, hard); - *color = make_float3(*fac, - noise_turbulence(make_float3(p.y, p.x, p.z), basis, depth, hard), - noise_turbulence(make_float3(p.y, p.z, p.x), basis, depth, hard)); -} - -__device void svm_node_tex_clouds(ShaderData *sd, float *stack, uint4 node) -{ - uint basis, hard, depth; - uint size_offset, co_offset, fac_offset, color_offset; - - decode_node_uchar4(node.y, &basis, &hard, &depth, NULL); - decode_node_uchar4(node.z, &size_offset, &co_offset, &fac_offset, &color_offset); - - float3 co = stack_load_float3(stack, co_offset); - float size = stack_load_float_default(stack, size_offset, node.w); - size = nonzerof(size, 1e-5f); - - float3 color; - float f; - - svm_clouds((NodeNoiseBasis)basis, hard, depth, size, co, &f, &color); - - if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f); - if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, color); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/kernel/svm/svm_distorted_noise.h b/intern/cycles/kernel/svm/svm_distorted_noise.h deleted file mode 100644 index 7d1556cd185..00000000000 --- a/intern/cycles/kernel/svm/svm_distorted_noise.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Distorted Noise (variable lacunarity noise) */ - -__device_noinline float svm_distorted_noise(float3 p, float size, NodeNoiseBasis basis, NodeNoiseBasis distortion_basis, float distortion) -{ - float3 r; - float3 offset = make_float3(13.5f, 13.5f, 13.5f); - - p /= size; - - r.x = noise_basis(p + offset, basis) * distortion; - r.y = noise_basis(p, basis) * distortion; - r.z = noise_basis(p - offset, basis) * distortion; - - return noise_basis(p + r, distortion_basis); /* distorted-domain noise */ -} - -__device void svm_node_tex_distorted_noise(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) -{ - uint4 node2 = read_node(kg, offset); - - uint basis, distortion_basis; - uint size_offset, distortion_offset, co_offset, fac_offset; - - decode_node_uchar4(node.y, &basis, &distortion_basis, NULL, NULL); - decode_node_uchar4(node.z, &size_offset, &distortion_offset, &co_offset, &fac_offset); - - float3 co = stack_load_float3(stack, co_offset); - float size = stack_load_float_default(stack, size_offset, node2.x); - float distortion = stack_load_float_default(stack, distortion_offset, node2.y); - size = nonzerof(size, 1e-5f); - - float f = svm_distorted_noise(co, size, (NodeNoiseBasis)basis, - (NodeNoiseBasis)distortion_basis, distortion); - - stack_store_float(stack, fac_offset, f); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/kernel/svm/svm_fresnel.h b/intern/cycles/kernel/svm/svm_fresnel.h index 1b9d99506e3..7684eabeecb 100644 --- a/intern/cycles/kernel/svm/svm_fresnel.h +++ b/intern/cycles/kernel/svm/svm_fresnel.h @@ -33,7 +33,7 @@ __device void svm_node_fresnel(ShaderData *sd, float *stack, uint ior_offset, ui /* Blend Weight Node */ -__device void svm_node_blend_weight(ShaderData *sd, float *stack, uint4 node) +__device void svm_node_layer_weight(ShaderData *sd, float *stack, uint4 node) { uint blend_offset = node.y; uint blend_value = node.z; @@ -44,7 +44,7 @@ __device void svm_node_blend_weight(ShaderData *sd, float *stack, uint4 node) float f; - if(type == NODE_BLEND_WEIGHT_FRESNEL) { + if(type == NODE_LAYER_WEIGHT_FRESNEL) { float eta = fmaxf(1.0f - blend, 1e-5f); eta = (sd->flag & SD_BACKFACING)? eta: 1.0f/eta; diff --git a/intern/cycles/kernel/svm/svm_gradient.h b/intern/cycles/kernel/svm/svm_gradient.h new file mode 100644 index 00000000000..79298f5f581 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_gradient.h @@ -0,0 +1,80 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Gradient */ + +__device float svm_gradient(float3 p, NodeBlendType type) +{ + float x, y, z; + + x= p.x; + y= p.y; + z= p.z; + + if(type == NODE_BLEND_LINEAR) { + return x; + } + else if(type == NODE_BLEND_QUADRATIC) { + float r = fmaxf(x, 0.0f); + return r*r; + } + else if(type == NODE_BLEND_EASING) { + float r = fminf(fmaxf(x, 0.0f), 1.0f); + float t = r*r; + + return (3.0f*t - 2.0f*t*r); + } + else if(type == NODE_BLEND_DIAGONAL) { + return (x + y)/2.0f; + } + else if(type == NODE_BLEND_RADIAL) { + return atan2(y, x)/(2.0f*M_PI_F) + 0.5f; + } + else { + float r = fmaxf(1.0f - sqrtf(x*x + y*y + p.z*p.z), 0.0f); + + if(type == NODE_BLEND_QUADRATIC_SPHERE) + return r*r; + else if(type == NODE_BLEND_SPHERICAL) + return r; + } + + return 0.0f; +} + +__device void svm_node_tex_gradient(ShaderData *sd, float *stack, uint4 node) +{ + uint type, co_offset, color_offset, fac_offset; + + decode_node_uchar4(node.y, &type, &co_offset, &fac_offset, &color_offset); + + float3 co = stack_load_float3(stack, co_offset); + + float f = svm_gradient(co, (NodeBlendType)type); + f = clamp(f, 0.0f, 1.0f); + + if(stack_valid(fac_offset)) + stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) + stack_store_float3(stack, color_offset, make_float3(f, f, f)); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_magic.h b/intern/cycles/kernel/svm/svm_magic.h index af847869f6e..65d37937e1e 100644 --- a/intern/cycles/kernel/svm/svm_magic.h +++ b/intern/cycles/kernel/svm/svm_magic.h @@ -20,56 +20,54 @@ CCL_NAMESPACE_BEGIN /* Magic */ -__device_noinline float3 svm_magic(float3 p, int n, float turbulence) +__device_noinline float3 svm_magic(float3 p, int n, float distortion) { - float turb = turbulence/5.0f; - float x = sinf((p.x + p.y + p.z)*5.0f); float y = cosf((-p.x + p.y - p.z)*5.0f); float z = -cosf((-p.x - p.y + p.z)*5.0f); if(n > 0) { - x *= turb; - y *= turb; - z *= turb; + x *= distortion; + y *= distortion; + z *= distortion; y = -cosf(x-y+z); - y *= turb; + y *= distortion; if(n > 1) { x= cosf(x-y-z); - x *= turb; + x *= distortion; if(n > 2) { z= sinf(-x-y-z); - z *= turb; + z *= distortion; if(n > 3) { x= -cosf(-x+y-z); - x *= turb; + x *= distortion; if(n > 4) { y= -sinf(-x+y+z); - y *= turb; + y *= distortion; if(n > 5) { y= -cosf(-x+y+z); - y *= turb; + y *= distortion; if(n > 6) { x= cosf(x+y+z); - x *= turb; + x *= distortion; if(n > 7) { z= sinf(x+y-z); - z *= turb; + z *= distortion; if(n > 8) { x= -cosf(-x-y+z); - x *= turb; + x *= distortion; if(n > 9) { y= -sinf(x-y+z); - y *= turb; + y *= distortion; } } } @@ -81,27 +79,35 @@ __device_noinline float3 svm_magic(float3 p, int n, float turbulence) } } - if(turb != 0.0f) { - turb *= 2.0f; - x /= turb; - y /= turb; - z /= turb; + if(distortion != 0.0f) { + distortion *= 2.0f; + x /= distortion; + y /= distortion; + z /= distortion; } return make_float3(0.5f - x, 0.5f - y, 0.5f - z); } -__device void svm_node_tex_magic(ShaderData *sd, float *stack, uint4 node) +__device void svm_node_tex_magic(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) { - uint depth, turbulence_offset, co_offset, color_offset; + uint depth; + uint scale_offset, distortion_offset, co_offset, fac_offset, color_offset; - decode_node_uchar4(node.y, &depth, &turbulence_offset, &co_offset, &color_offset); + decode_node_uchar4(node.y, &depth, &color_offset, &fac_offset, NULL); + decode_node_uchar4(node.z, &co_offset, &scale_offset, &distortion_offset, NULL); + uint4 node2 = read_node(kg, offset); float3 co = stack_load_float3(stack, co_offset); - float turbulence = stack_load_float_default(stack, turbulence_offset, node.z); + float scale = stack_load_float_default(stack, scale_offset, node2.x); + float distortion = stack_load_float_default(stack, distortion_offset, node2.y); + + float3 color = svm_magic(co*scale, depth, distortion); - float3 color = svm_magic(co, depth, turbulence); - stack_store_float3(stack, color_offset, color); + if(stack_valid(fac_offset)) + stack_store_float(stack, fac_offset, average(color)); + if(stack_valid(color_offset)) + stack_store_float3(stack, color_offset, color); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_marble.h b/intern/cycles/kernel/svm/svm_marble.h deleted file mode 100644 index aa22565e956..00000000000 --- a/intern/cycles/kernel/svm/svm_marble.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Marble */ - -__device_noinline float svm_marble(float3 p, float size, NodeMarbleType type, NodeWaveType wave, NodeNoiseBasis basis, int hard, float turb, int depth) -{ - float x = p.x; - float y = p.y; - float z = p.z; - - float n = 5.0f * (x + y + z); - - float mi = n + turb * noise_turbulence(p/size, basis, depth, hard); - - mi = noise_wave(wave, mi); - - if(type == NODE_MARBLE_SHARP) - mi = sqrt(mi); - else if(type == NODE_MARBLE_SHARPER) - mi = sqrt(sqrt(mi)); - - return mi; -} - -__device void svm_node_tex_marble(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) -{ - uint4 node2 = read_node(kg, offset); - - uint type, wave, basis, hard; - uint depth; - uint size_offset, turbulence_offset, co_offset, fac_offset; - - decode_node_uchar4(node.y, &type, &wave, &basis, &hard); - decode_node_uchar4(node.z, &depth, NULL, NULL, NULL); - decode_node_uchar4(node.w, &size_offset, &turbulence_offset, &co_offset, &fac_offset); - - float3 co = stack_load_float3(stack, co_offset); - float size = stack_load_float_default(stack, size_offset, node2.x); - float turbulence = stack_load_float_default(stack, turbulence_offset, node2.y); - size = nonzerof(size, 1e-5f); - - float f = svm_marble(co, size, (NodeMarbleType)type, (NodeWaveType)wave, - (NodeNoiseBasis)basis, hard, turbulence, depth); - - stack_store_float(stack, fac_offset, f); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/kernel/svm/svm_musgrave.h b/intern/cycles/kernel/svm/svm_musgrave.h index be327f7f262..34cf7868f07 100644 --- a/intern/cycles/kernel/svm/svm_musgrave.h +++ b/intern/cycles/kernel/svm/svm_musgrave.h @@ -36,14 +36,14 @@ __device_noinline float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float int i; for(i = 0; i < (int)octaves; i++) { - value += noise_basis(p, basis) * pwr; + value += snoise(p) * pwr; pwr *= pwHL; p *= lacunarity; } rmd = octaves - floor(octaves); if(rmd != 0.0f) - value += rmd * noise_basis(p, basis) * pwr; + value += rmd * snoise(p) * pwr; return value; } @@ -64,14 +64,14 @@ __device_noinline float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis ba int i; for(i = 0; i < (int)octaves; i++) { - value *= (pwr * noise_basis(p, basis) + 1.0f); + value *= (pwr * snoise(p) + 1.0f); pwr *= pwHL; p *= lacunarity; } rmd = octaves - floor(octaves); if(rmd != 0.0f) - value *= (rmd * pwr * noise_basis(p, basis) + 1.0f); /* correct? */ + value *= (rmd * pwr * snoise(p) + 1.0f); /* correct? */ return value; } @@ -92,11 +92,11 @@ __device_noinline float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis b int i; /* first unscaled octave of function; later octaves are scaled */ - value = offset + noise_basis(p, basis); + value = offset + snoise(p); p *= lacunarity; for(i = 1; i < (int)octaves; i++) { - increment = (noise_basis(p, basis) + offset) * pwr * value; + increment = (snoise(p) + offset) * pwr * value; value += increment; pwr *= pwHL; p *= lacunarity; @@ -104,7 +104,7 @@ __device_noinline float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis b rmd = octaves - floor(octaves); if(rmd != 0.0f) { - increment = (noise_basis(p, basis) + offset) * pwr * value; + increment = (snoise(p) + offset) * pwr * value; value += rmd * increment; } @@ -126,7 +126,7 @@ __device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseB float pwr = pwHL; int i; - result = noise_basis(p, basis) + offset; + result = snoise(p) + offset; weight = gain * result; p *= lacunarity; @@ -134,7 +134,7 @@ __device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseB if(weight > 1.0f) weight = 1.0f; - signal = (noise_basis(p, basis) + offset) * pwr; + signal = (snoise(p) + offset) * pwr; pwr *= pwHL; result += weight * signal; weight *= gain * signal; @@ -143,7 +143,7 @@ __device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseB rmd = octaves - floor(octaves); if(rmd != 0.0f) - result += rmd * ((noise_basis(p, basis) + offset) * pwr); + result += rmd * ((snoise(p) + offset) * pwr); return result; } @@ -163,7 +163,7 @@ __device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseB float pwr = pwHL; int i; - signal = offset - fabsf(noise_basis(p, basis)); + signal = offset - fabsf(snoise(p)); signal *= signal; result = signal; weight = 1.0f; @@ -171,7 +171,7 @@ __device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseB for(i = 1; i < (int)octaves; i++) { p *= lacunarity; weight = clamp(signal * gain, 0.0f, 1.0f); - signal = offset - fabsf(noise_basis(p, basis)); + signal = offset - fabsf(snoise(p)); signal *= signal; signal *= weight; result += signal * pwr; @@ -183,9 +183,10 @@ __device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseB /* Shader */ -__device float svm_musgrave(NodeMusgraveType type, NodeNoiseBasis basis, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float size, float3 p) +__device float svm_musgrave(NodeMusgraveType type, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float scale, float3 p) { - p /= size; + NodeNoiseBasis basis = NODE_NOISE_PERLIN; + p *= scale; if(type == NODE_MUSGRAVE_MULTIFRACTAL) return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); @@ -206,31 +207,33 @@ __device void svm_node_tex_musgrave(KernelGlobals *kg, ShaderData *sd, float *st uint4 node2 = read_node(kg, offset); uint4 node3 = read_node(kg, offset); - uint type, basis, co_offset, fac_offset; - uint dimension_offset, lacunarity_offset, octaves_offset, offset_offset; - uint gain_offset, size_offset; + uint type, co_offset, color_offset, fac_offset; + uint dimension_offset, lacunarity_offset, detail_offset, offset_offset; + uint gain_offset, scale_offset; - decode_node_uchar4(node.y, &type, &basis, &co_offset, &fac_offset); - decode_node_uchar4(node.z, &dimension_offset, &lacunarity_offset, &octaves_offset, &offset_offset); - decode_node_uchar4(node.z, &gain_offset, &size_offset, NULL, NULL); + decode_node_uchar4(node.y, &type, &co_offset, &color_offset, &fac_offset); + decode_node_uchar4(node.z, &dimension_offset, &lacunarity_offset, &detail_offset, &offset_offset); + decode_node_uchar4(node.z, &gain_offset, &scale_offset, NULL, NULL); float3 co = stack_load_float3(stack, co_offset); float dimension = stack_load_float_default(stack, dimension_offset, node2.x); float lacunarity = stack_load_float_default(stack, lacunarity_offset, node2.y); - float octaves = stack_load_float_default(stack, octaves_offset, node2.z); + float detail = stack_load_float_default(stack, detail_offset, node2.z); float foffset = stack_load_float_default(stack, offset_offset, node2.w); float gain = stack_load_float_default(stack, gain_offset, node3.x); - float size = stack_load_float_default(stack, size_offset, node3.y); + float scale = stack_load_float_default(stack, scale_offset, node3.y); - dimension = fmaxf(dimension, 0.0f); - octaves = fmaxf(octaves, 0.0f); + dimension = fmaxf(dimension, 1e-5f); + detail = clamp(detail, 0.0f, 16.0f); lacunarity = fmaxf(lacunarity, 1e-5f); - size = nonzerof(size, 1e-5f); - float f = svm_musgrave((NodeMusgraveType)type, (NodeNoiseBasis)basis, - dimension, lacunarity, octaves, foffset, 1.0f, gain, size, co); + float f = svm_musgrave((NodeMusgraveType)type, + dimension, lacunarity, detail, foffset, 1.0f, gain, scale, co); - stack_store_float(stack, fac_offset, f); + if(stack_valid(fac_offset)) + stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) + stack_store_float3(stack, color_offset, make_float3(f, f, f)); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_noisetex.h b/intern/cycles/kernel/svm/svm_noisetex.h index 38b249a80fe..7421597040e 100644 --- a/intern/cycles/kernel/svm/svm_noisetex.h +++ b/intern/cycles/kernel/svm/svm_noisetex.h @@ -18,30 +18,55 @@ CCL_NAMESPACE_BEGIN -__device float svm_noise_texture_value(float3 p) -{ - return cellnoise(p*1e8f); -} +/* Clouds */ -__device float3 svm_noise_texture_color(float3 p) +__device_inline void svm_noise(float3 p, float scale, float detail, float distortion, float *fac, float3 *color) { - return cellnoise_color(p*1e8f); -} + NodeNoiseBasis basis = NODE_NOISE_PERLIN; + int hard = 0; -__device void svm_node_tex_noise_f(ShaderData *sd, float *stack, uint co_offset, uint out_offset) -{ - float3 co = stack_load_float3(stack, co_offset); - float f = svm_noise_texture_value(co); + p *= scale; + + if(distortion != 0.0f) { + float3 r, offset = make_float3(13.5f, 13.5f, 13.5f); + + r.x = noise_basis(p + offset, basis) * distortion; + r.y = noise_basis(p, basis) * distortion; + r.z = noise_basis(p - offset, basis) * distortion; - stack_store_float(stack, out_offset, f); + p += r; + } + + *fac = noise_turbulence(p, basis, detail, hard); + *color = make_float3(*fac, + noise_turbulence(make_float3(p.y, p.x, p.z), basis, detail, hard), + noise_turbulence(make_float3(p.y, p.z, p.x), basis, detail, hard)); } -__device void svm_node_tex_noise_v(ShaderData *sd, float *stack, uint co_offset, uint out_offset) +__device void svm_node_tex_noise(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) { + uint co_offset, scale_offset, detail_offset, distortion_offset, fac_offset, color_offset; + + decode_node_uchar4(node.y, &co_offset, &scale_offset, &detail_offset, &distortion_offset); + + uint4 node2 = read_node(kg, offset); + + float scale = stack_load_float_default(stack, scale_offset, node2.x); + float detail = stack_load_float_default(stack, detail_offset, node2.y); + float distortion = stack_load_float_default(stack, distortion_offset, node2.z); float3 co = stack_load_float3(stack, co_offset); - float3 f = svm_noise_texture_color(co); - stack_store_float3(stack, out_offset, f); + float3 color; + float f; + + svm_noise(co, scale, detail, distortion, &f, &color); + + decode_node_uchar4(node.z, &color_offset, &fac_offset, NULL, NULL); + + if(stack_valid(fac_offset)) + stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) + stack_store_float3(stack, color_offset, color); } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_stucci.h b/intern/cycles/kernel/svm/svm_stucci.h deleted file mode 100644 index 89353ab4cd3..00000000000 --- a/intern/cycles/kernel/svm/svm_stucci.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Stucci */ - -__device_noinline float svm_stucci(NodeStucciType type, NodeNoiseBasis basis, int hard, float turbulence, float size, float3 p) -{ - p /= size; - - float b2 = noise_basis_hard(p, basis, hard); - float ofs = turbulence/200.0f; - - if(type != NODE_STUCCI_PLASTIC) - ofs *= b2*b2; - - float r = noise_basis_hard(make_float3(p.x, p.y, p.z+ofs), basis, hard); - - if(type == NODE_STUCCI_WALL_OUT) - r = 1.0f - r; - - return fmaxf(r, 0.0f); -} - -__device void svm_node_tex_stucci(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) -{ - uint4 node2 = read_node(kg, offset); - - uint type, basis, hard; - uint size_offset, turbulence_offset, co_offset, fac_offset; - - decode_node_uchar4(node.y, &type, &basis, &hard, NULL); - decode_node_uchar4(node.z, &size_offset, &turbulence_offset, &co_offset, &fac_offset); - - float3 co = stack_load_float3(stack, co_offset); - float size = stack_load_float_default(stack, size_offset, node2.x); - float turbulence = stack_load_float_default(stack, turbulence_offset, node2.y); - size = nonzerof(size, 1e-5f); - - float f = svm_stucci((NodeStucciType)type, (NodeNoiseBasis)basis, hard, - turbulence, size, co); - - stack_store_float(stack, fac_offset, f); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h index e273a92c988..82797018d74 100644 --- a/intern/cycles/kernel/svm/svm_texture.h +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -213,14 +213,17 @@ __device float noise_wave(NodeWaveType wave, float a) /* Turbulence */ -__device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, int octaves, int hard) +__device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, float octaves, int hard) { float fscale = 1.0f; float amp = 1.0f; float sum = 0.0f; - int i; + int i, n; - for(i = 0; i <= octaves; i++) { + octaves = clamp(octaves, 0.0f, 16.0f); + n= (int)octaves; + + for(i = 0; i <= n; i++) { float t = noise_basis(fscale*p, basis); if(hard) @@ -231,9 +234,25 @@ __device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, int oct fscale *= 2.0f; } - sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + float rmd = octaves - floor(octaves); + + if(rmd != 0.0f) { + float t = noise_basis(fscale*p, basis); + + if(hard) + t = fabsf(2.0f*t - 1.0f); + + float sum2 = sum + t*amp; + + sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); + sum2 *= ((float)(1 << (n+1))/(float)((1 << (n+2)) - 1)); - return sum; + return (1.0f - rmd)*sum + rmd*sum2; + } + else { + sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); + return sum; + } } CCL_NAMESPACE_END diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index baec3d7ac6e..89fc413c539 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -44,8 +44,6 @@ typedef enum NodeType { NODE_CLOSURE_WEIGHT = 500, NODE_MIX_CLOSURE = 600, NODE_JUMP = 700, - NODE_TEX_NOISE_F = 800, - NODE_TEX_NOISE_V = 900, NODE_TEX_IMAGE = 1000, NODE_TEX_SKY = 1100, NODE_GEOMETRY = 1200, @@ -57,15 +55,12 @@ typedef enum NodeType { NODE_CONVERT = 1900, NODE_FRESNEL = 2000, NODE_EMISSION_WEIGHT = 2100, - NODE_TEX_BLEND = 2200, + NODE_TEX_GRADIENT = 2200, NODE_TEX_VORONOI = 2300, NODE_TEX_MUSGRAVE = 2400, - NODE_TEX_MARBLE = 2500, + NODE_TEX_WAVE = 2500, NODE_TEX_MAGIC = 2600, - NODE_TEX_STUCCI = 2700, - NODE_TEX_DISTORTED_NOISE = 2800, - NODE_TEX_WOOD = 2900, - NODE_TEX_CLOUDS = 3000, + NODE_TEX_NOISE = 3000, NODE_SHADER_JUMP = 3100, NODE_SET_DISPLACEMENT = 3200, NODE_GEOMETRY_BUMP_DX = 3300, @@ -83,7 +78,7 @@ typedef enum NodeType { NODE_ATTR_BUMP_DY = 4500, NODE_TEX_ENVIRONMENT = 4600, NODE_CLOSURE_HOLDOUT = 4700, - NODE_BLEND_WEIGHT = 4800, + NODE_LAYER_WEIGHT = 4800, NODE_CLOSURE_VOLUME = 4900 } NodeType; @@ -211,10 +206,8 @@ typedef enum NodeMusgraveType { } NodeMusgraveType; typedef enum NodeWoodType { - NODE_WOOD_BANDS, - NODE_WOOD_RINGS, - NODE_WOOD_BAND_NOISE, - NODE_WOOD_RING_NOISE + NODE_WAVE_BANDS, + NODE_WAVE_RINGS } NodeWoodType; typedef enum NodeBlendType { @@ -246,14 +239,12 @@ typedef enum NodeStucciType { typedef enum NodeVoronoiColoring { NODE_VORONOI_INTENSITY, - NODE_VORONOI_POSITION, - NODE_VORONOI_POSITION_OUTLINE, - NODE_VORONOI_POSITION_OUTLINE_INTENSITY + NODE_VORONOI_CELLS } NodeVoronoiColoring; typedef enum NodeBlendWeightType { - NODE_BLEND_WEIGHT_FRESNEL, - NODE_BLEND_WEIGHT_FACING + NODE_LAYER_WEIGHT_FRESNEL, + NODE_LAYER_WEIGHT_FACING } NodeBlendWeightType; typedef enum ShaderType { diff --git a/intern/cycles/kernel/svm/svm_voronoi.h b/intern/cycles/kernel/svm/svm_voronoi.h index 36965959cc2..f5ee7851a51 100644 --- a/intern/cycles/kernel/svm/svm_voronoi.h +++ b/intern/cycles/kernel/svm/svm_voronoi.h @@ -20,50 +20,25 @@ CCL_NAMESPACE_BEGIN /* Voronoi */ -__device_noinline float4 svm_voronoi(NodeDistanceMetric distance_metric, NodeVoronoiColoring coloring, - float weight1, float weight2, float weight3, float weight4, - float exponent, float intensity, float size, float3 p) +__device_noinline float4 svm_voronoi(NodeVoronoiColoring coloring, float scale, float3 p) { - float aw1 = fabsf(weight1); - float aw2 = fabsf(weight2); - float aw3 = fabsf(weight3); - float aw4 = fabsf(weight4); - float sc = (aw1 + aw2 + aw3 + aw4); - - if(sc != 0.0f) - sc = intensity/sc; - /* compute distance and point coordinate of 4 nearest neighbours */ float da[4]; float3 pa[4]; - voronoi(p/size, distance_metric, exponent, da, pa); + voronoi(p*scale, NODE_VORONOI_DISTANCE_SQUARED, 1.0f, da, pa); - /* Scalar output */ - float fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + /* output */ + float fac; float3 color; - /* colored output */ if(coloring == NODE_VORONOI_INTENSITY) { + fac = fabsf(da[0]); color = make_float3(fac, fac, 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 != NODE_VORONOI_POSITION) { - float t1 = min((da[1] - da[0])*10.0f, 1.0f); - - if(coloring == NODE_VORONOI_POSITION_OUTLINE_INTENSITY) - color *= t1*fac; - else if(coloring == NODE_VORONOI_POSITION_OUTLINE) - color *= t1*sc; - } - else { - color *= sc; - } + color = cellnoise_color(pa[0]); + fac= average(color); } return make_float4(color.x, color.y, color.z, fac); @@ -71,31 +46,15 @@ __device_noinline float4 svm_voronoi(NodeDistanceMetric distance_metric, NodeVor __device void svm_node_tex_voronoi(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) { - uint4 node2 = read_node(kg, offset); - uint4 node3 = read_node(kg, offset); + uint coloring = node.y; + uint scale_offset, co_offset, fac_offset, color_offset; - uint distance_metric, coloring, exponent_offset; - uint size_offset, co_offset, fac_offset, color_offset; - uint weight1_offset, weight2_offset, weight3_offset, weight4_offset; - - decode_node_uchar4(node.y, &distance_metric, &coloring, &exponent_offset, NULL); - decode_node_uchar4(node.z, &size_offset, &co_offset, &fac_offset, &color_offset); - decode_node_uchar4(node.w, &weight1_offset, &weight2_offset, &weight3_offset, &weight4_offset); + decode_node_uchar4(node.z, &scale_offset, &co_offset, &fac_offset, &color_offset); float3 co = stack_load_float3(stack, co_offset); - float weight1 = stack_load_float_default(stack, weight1_offset, node2.x); - float weight2 = stack_load_float_default(stack, weight2_offset, node2.y); - float weight3 = stack_load_float_default(stack, weight3_offset, node2.z); - float weight4 = stack_load_float_default(stack, weight4_offset, node2.w); - float exponent = stack_load_float_default(stack, exponent_offset, node3.x); - float size = stack_load_float_default(stack, size_offset, node3.y); - - exponent = fmaxf(exponent, 1e-5f); - size = nonzerof(size, 1e-5f); + float scale = stack_load_float_default(stack, scale_offset, node.w); - float4 result = svm_voronoi((NodeDistanceMetric)distance_metric, - (NodeVoronoiColoring)coloring, - weight1, weight2, weight3, weight4, exponent, 1.0f, size, co); + float4 result = svm_voronoi((NodeVoronoiColoring)coloring, scale, co); float3 color = make_float3(result.x, result.y, result.z); float f = result.w; diff --git a/intern/cycles/kernel/svm/svm_wave.h b/intern/cycles/kernel/svm/svm_wave.h new file mode 100644 index 00000000000..8f2131156c4 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_wave.h @@ -0,0 +1,65 @@ +/* + * 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. + */ + +CCL_NAMESPACE_BEGIN + +/* Marble */ + +__device_noinline float svm_wave(NodeWoodType type, float3 p, float scale, float detail, float distortion, float dscale) +{ + float w, n; + + p *= scale; + + if(type == NODE_WAVE_BANDS) + n= (p.x + p.x + p.z)*10.0f; + else /* if(type == NODE_WAVE_RINGS) */ + n= len(p)*20.0f; + + if(distortion != 0.0f) + n += distortion * noise_turbulence(p*dscale, NODE_NOISE_PERLIN, detail, 0); + + w = noise_wave(NODE_WAVE_SINE, n); + + return w; +} + +__device void svm_node_tex_wave(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) +{ + uint4 node2 = read_node(kg, offset); + + uint type; + uint co_offset, scale_offset, detail_offset, dscale_offset, distortion_offset, color_offset, fac_offset; + + decode_node_uchar4(node.y, &type, &color_offset, &fac_offset, &dscale_offset); + decode_node_uchar4(node.z, &co_offset, &scale_offset, &detail_offset, &distortion_offset); + + float3 co = stack_load_float3(stack, co_offset); + float scale = stack_load_float_default(stack, scale_offset, node2.x); + float detail = stack_load_float_default(stack, detail_offset, node2.y); + float distortion = stack_load_float_default(stack, distortion_offset, node2.z); + float dscale = stack_load_float_default(stack, dscale_offset, node2.w); + + float f = svm_wave((NodeWoodType)type, co, scale, detail, distortion, dscale); + + if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f); + if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, make_float3(f, f, f)); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_wood.h b/intern/cycles/kernel/svm/svm_wood.h deleted file mode 100644 index 0f22e633766..00000000000 --- a/intern/cycles/kernel/svm/svm_wood.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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. - */ - -CCL_NAMESPACE_BEGIN - -/* Wood */ - -__device_noinline float svm_wood(float3 p, float size, NodeWoodType type, NodeWaveType wave, NodeNoiseBasis basis, uint hard, float turb) -{ - float x = p.x; - float y = p.y; - float z = p.z; - - if(type == NODE_WOOD_BANDS) { - return noise_wave(wave, (x + y + z)*10.0f); - } - else if(type == NODE_WOOD_RINGS) { - return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f); - } - else if (type == NODE_WOOD_BAND_NOISE) { - float wi = turb*noise_basis_hard(p/size, basis, hard); - return noise_wave(wave, (x + y + z)*10.0f + wi); - } - else if (type == NODE_WOOD_RING_NOISE) { - float wi = turb*noise_basis_hard(p/size, basis, hard); - return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f + wi); - } - - return 0.0f; -} - -__device void svm_node_tex_wood(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) -{ - uint4 node2 = read_node(kg, offset); - - uint type, wave, basis, hard; - uint co_offset, size_offset, turbulence_offset, fac_offset; - - decode_node_uchar4(node.y, &type, &wave, &basis, &hard); - decode_node_uchar4(node.z, &co_offset, &size_offset, &turbulence_offset, &fac_offset); - - float3 co = stack_load_float3(stack, co_offset); - float size = stack_load_float_default(stack, size_offset, node2.y); - float turbulence = stack_load_float_default(stack, turbulence_offset, node2.z); - size = nonzerof(size, 1e-5f); - - float f = svm_wood(co, size, (NodeWoodType)type, (NodeWaveType)wave, - (NodeNoiseBasis)basis, hard, turbulence); - - stack_store_float(stack, fac_offset, f); -} - -CCL_NAMESPACE_END - diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 56d5bdf77ba..f934b703103 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -353,45 +353,9 @@ void SkyTextureNode::compile(OSLCompiler& compiler) compiler.add(this, "node_sky_texture"); } -/* Noise Texture */ - -NoiseTextureNode::NoiseTextureNode() -: TextureNode("noise_texture") -{ - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); - add_output("Color", SHADER_SOCKET_COLOR); - add_output("Fac", SHADER_SOCKET_FLOAT); -} - -void NoiseTextureNode::compile(SVMCompiler& compiler) -{ - ShaderInput *vector_in = input("Vector"); - ShaderOutput *color_out = output("Color"); - ShaderOutput *fac_out = output("Fac"); - - if(!color_out->links.empty() || !fac_out->links.empty()) - if(!tex_mapping.skip()) - tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - - if(!color_out->links.empty()) { - compiler.stack_assign(color_out); - compiler.add_node(NODE_TEX_NOISE_V, vector_in->stack_offset, color_out->stack_offset); - } - - if(!fac_out->links.empty()) { - compiler.stack_assign(fac_out); - compiler.add_node(NODE_TEX_NOISE_F, vector_in->stack_offset, fac_out->stack_offset); - } -} - -void NoiseTextureNode::compile(OSLCompiler& compiler) -{ - compiler.add(this, "node_noise_texture"); -} +/* Gradient Texture */ -/* Blend Texture */ - -static ShaderEnum blend_progression_init() +static ShaderEnum gradient_type_init() { ShaderEnum enm; @@ -406,32 +370,22 @@ static ShaderEnum blend_progression_init() return enm; } -static ShaderEnum blend_axis_init() -{ - ShaderEnum enm; - - enm.insert("Horizontal", NODE_BLEND_HORIZONTAL); - enm.insert("Vertical", NODE_BLEND_VERTICAL); - - return enm; -} - -ShaderEnum BlendTextureNode::progression_enum = blend_progression_init(); -ShaderEnum BlendTextureNode::axis_enum = blend_axis_init(); +ShaderEnum GradientTextureNode::type_enum = gradient_type_init(); -BlendTextureNode::BlendTextureNode() -: TextureNode("blend_texture") +GradientTextureNode::GradientTextureNode() +: TextureNode("gradient_texture") { - progression = ustring("Linear"); - axis = ustring("Horizontal"); + type = ustring("Linear"); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); + add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); } -void BlendTextureNode::compile(SVMCompiler& compiler) +void GradientTextureNode::compile(SVMCompiler& compiler) { ShaderInput *vector_in = input("Vector"); + ShaderOutput *color_out = output("Color"); ShaderOutput *fac_out = output("Fac"); if(vector_in->link) compiler.stack_assign(vector_in); @@ -439,127 +393,91 @@ void BlendTextureNode::compile(SVMCompiler& compiler) if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - compiler.stack_assign(fac_out); - compiler.add_node(NODE_TEX_BLEND, - compiler.encode_uchar4(progression_enum[progression], axis_enum[axis]), - vector_in->stack_offset, fac_out->stack_offset); -} + if(!fac_out->links.empty()) + compiler.stack_assign(fac_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); -void BlendTextureNode::compile(OSLCompiler& compiler) -{ - compiler.parameter("Progression", progression); - compiler.parameter("Axis", axis); - compiler.add(this, "node_blend_texture"); + compiler.add_node(NODE_TEX_GRADIENT, + compiler.encode_uchar4(type_enum[type], vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset)); } -/* Clouds Texture */ - -static ShaderEnum noise_basis_init() +void GradientTextureNode::compile(OSLCompiler& compiler) { - ShaderEnum enm; - - enm.insert("Perlin", NODE_NOISE_PERLIN); - enm.insert("Voronoi F1", NODE_NOISE_VORONOI_F1); - enm.insert("Voronoi F2", NODE_NOISE_VORONOI_F2); - enm.insert("Voronoi F3", NODE_NOISE_VORONOI_F3); - enm.insert("Voronoi F4", NODE_NOISE_VORONOI_F4); - enm.insert("Voronoi F2-F1", NODE_NOISE_VORONOI_F2_F1); - enm.insert("Voronoi Crackle", NODE_NOISE_VORONOI_CRACKLE); - enm.insert("Cell Noise", NODE_NOISE_CELL_NOISE); - - return enm; + compiler.parameter("Type", type); + compiler.add(this, "node_gradient_texture"); } -ShaderEnum CloudsTextureNode::basis_enum = noise_basis_init(); +/* Noise Texture */ -CloudsTextureNode::CloudsTextureNode() -: TextureNode("clouds_texture") +NoiseTextureNode::NoiseTextureNode() +: TextureNode("noise_texture") { - basis = ustring("Perlin"); - hard = false; - depth = 2; - - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); + add_input("Scale", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Detail", SHADER_SOCKET_FLOAT, 2.0f); + add_input("Distortion", SHADER_SOCKET_FLOAT, 0.0f); add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); } -void CloudsTextureNode::compile(SVMCompiler& compiler) +void NoiseTextureNode::compile(SVMCompiler& compiler) { - ShaderInput *size_in = input("Size"); + ShaderInput *distortion_in = input("Distortion"); + ShaderInput *detail_in = input("Detail"); + ShaderInput *scale_in = input("Scale"); ShaderInput *vector_in = input("Vector"); ShaderOutput *color_out = output("Color"); ShaderOutput *fac_out = output("Fac"); if(vector_in->link) compiler.stack_assign(vector_in); - if(size_in->link) compiler.stack_assign(size_in); + if(scale_in->link) compiler.stack_assign(scale_in); + if(detail_in->link) compiler.stack_assign(detail_in); + if(distortion_in->link) compiler.stack_assign(distortion_in); if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - compiler.stack_assign(color_out); - compiler.stack_assign(fac_out); + if(!fac_out->links.empty()) + compiler.stack_assign(fac_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); - compiler.add_node(NODE_TEX_CLOUDS, - compiler.encode_uchar4(basis_enum[basis], hard, depth), - compiler.encode_uchar4(size_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset), - __float_as_int(size_in->value.x)); + compiler.add_node(NODE_TEX_NOISE, + compiler.encode_uchar4(vector_in->stack_offset, scale_in->stack_offset, detail_in->stack_offset, distortion_in->stack_offset), + compiler.encode_uchar4(color_out->stack_offset, fac_out->stack_offset)); + compiler.add_node( + __float_as_int(scale_in->value.x), + __float_as_int(detail_in->value.x), + __float_as_int(distortion_in->value.x)); } -void CloudsTextureNode::compile(OSLCompiler& compiler) +void NoiseTextureNode::compile(OSLCompiler& compiler) { - compiler.parameter("Hard", (hard)? 1: 0); - compiler.parameter("Depth", depth); - compiler.parameter("Basis", basis); - compiler.add(this, "node_clouds_texture"); + compiler.add(this, "node_noise_texture"); } /* Voronoi Texture */ -static ShaderEnum distance_metric_init() -{ - ShaderEnum enm; - - enm.insert("Distance Squared", NODE_VORONOI_DISTANCE_SQUARED); - enm.insert("Actual Distance", NODE_VORONOI_ACTUAL_DISTANCE); - enm.insert("Manhattan", NODE_VORONOI_MANHATTAN); - enm.insert("Chebychev", NODE_VORONOI_CHEBYCHEV); - enm.insert("Minkovsky 1/2", NODE_VORONOI_MINKOVSKY_H); - enm.insert("Minkovsky 4", NODE_VORONOI_MINKOVSKY_4); - enm.insert("Minkovsky", NODE_VORONOI_MINKOVSKY); - - return enm; -} - static ShaderEnum voronoi_coloring_init() { ShaderEnum enm; enm.insert("Intensity", NODE_VORONOI_INTENSITY); - enm.insert("Position", NODE_VORONOI_POSITION); - enm.insert("Position and Outline", NODE_VORONOI_POSITION_OUTLINE); - enm.insert("Position, Outline, and Intensity", NODE_VORONOI_POSITION_OUTLINE_INTENSITY); + enm.insert("Cells", NODE_VORONOI_CELLS); return enm; } -ShaderEnum VoronoiTextureNode::distance_metric_enum = distance_metric_init(); ShaderEnum VoronoiTextureNode::coloring_enum = voronoi_coloring_init(); VoronoiTextureNode::VoronoiTextureNode() : TextureNode("voronoi_texture") { - distance_metric = ustring("Actual Distance"); coloring = ustring("Intensity"); - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Weight1", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Weight2", SHADER_SOCKET_FLOAT, 0.0f); - add_input("Weight3", SHADER_SOCKET_FLOAT, 0.0f); - add_input("Weight4", SHADER_SOCKET_FLOAT, 0.0f); - add_input("Exponent", SHADER_SOCKET_FLOAT, 2.5f); + add_input("Scale", SHADER_SOCKET_FLOAT, 1.0f); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Color", SHADER_SOCKET_COLOR); @@ -568,23 +486,13 @@ VoronoiTextureNode::VoronoiTextureNode() void VoronoiTextureNode::compile(SVMCompiler& compiler) { - ShaderInput *weight1_in = input("Weight1"); - ShaderInput *weight2_in = input("Weight2"); - ShaderInput *weight3_in = input("Weight3"); - ShaderInput *weight4_in = input("Weight4"); - ShaderInput *exponent_in = input("Exponent"); - ShaderInput *size_in = input("Size"); + ShaderInput *scale_in = input("Scale"); ShaderInput *vector_in = input("Vector"); ShaderOutput *color_out = output("Color"); ShaderOutput *fac_out = output("Fac"); - if(weight1_in->link) compiler.stack_assign(weight1_in); - if(weight2_in->link) compiler.stack_assign(weight2_in); - if(weight3_in->link) compiler.stack_assign(weight3_in); - if(weight4_in->link) compiler.stack_assign(weight4_in); - if(exponent_in->link) compiler.stack_assign(exponent_in); if(vector_in->link) compiler.stack_assign(vector_in); - if(size_in->link) compiler.stack_assign(size_in); + if(scale_in->link) compiler.stack_assign(scale_in); if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); @@ -593,20 +501,13 @@ void VoronoiTextureNode::compile(SVMCompiler& compiler) compiler.stack_assign(fac_out); compiler.add_node(NODE_TEX_VORONOI, - compiler.encode_uchar4(distance_metric_enum[distance_metric], coloring_enum[coloring], exponent_in->stack_offset), - compiler.encode_uchar4(size_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset), - compiler.encode_uchar4(weight1_in->stack_offset, weight2_in->stack_offset, weight3_in->stack_offset, weight4_in->stack_offset)); - compiler.add_node(__float_as_int(weight1_in->value.x), - __float_as_int(weight2_in->value.x), - __float_as_int(weight3_in->value.x), - __float_as_int(weight4_in->value.x)); - compiler.add_node(__float_as_int(exponent_in->value.x), - __float_as_int(size_in->value.x)); + coloring_enum[coloring], + compiler.encode_uchar4(scale_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset, color_out->stack_offset), + __float_as_int(scale_in->value.x)); } void VoronoiTextureNode::compile(OSLCompiler& compiler) { - compiler.parameter("DistanceMetric", distance_metric); compiler.parameter("Coloring", coloring); compiler.add(this, "node_voronoi_texture"); } @@ -627,141 +528,138 @@ static ShaderEnum musgrave_type_init() } ShaderEnum MusgraveTextureNode::type_enum = musgrave_type_init(); -ShaderEnum MusgraveTextureNode::basis_enum = noise_basis_init(); MusgraveTextureNode::MusgraveTextureNode() : TextureNode("musgrave_texture") { type = ustring("fBM"); - basis = ustring("Perlin"); + add_input("Scale", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Detail", SHADER_SOCKET_FLOAT, 2.0f); + add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_input("Dimension", SHADER_SOCKET_FLOAT, 2.0f); add_input("Lacunarity", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Octaves", SHADER_SOCKET_FLOAT, 2.0f); add_input("Offset", SHADER_SOCKET_FLOAT, 0.0f); add_input("Gain", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); add_output("Fac", SHADER_SOCKET_FLOAT); + add_output("Color", SHADER_SOCKET_COLOR); } void MusgraveTextureNode::compile(SVMCompiler& compiler) { ShaderInput *vector_in = input("Vector"); + ShaderInput *scale_in = input("Scale"); ShaderInput *dimension_in = input("Dimension"); ShaderInput *lacunarity_in = input("Lacunarity"); - ShaderInput *octaves_in = input("Octaves"); + ShaderInput *detail_in = input("Detail"); ShaderInput *offset_in = input("Offset"); ShaderInput *gain_in = input("Gain"); - ShaderInput *size_in = input("Size"); ShaderOutput *fac_out = output("Fac"); + ShaderOutput *color_out = output("Color"); if(vector_in->link) compiler.stack_assign(vector_in); if(dimension_in->link) compiler.stack_assign(dimension_in); if(lacunarity_in->link) compiler.stack_assign(lacunarity_in); - if(octaves_in->link) compiler.stack_assign(octaves_in); + if(detail_in->link) compiler.stack_assign(detail_in); if(offset_in->link) compiler.stack_assign(offset_in); if(gain_in->link) compiler.stack_assign(gain_in); - if(size_in->link) compiler.stack_assign(size_in); + if(scale_in->link) compiler.stack_assign(scale_in); if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - compiler.stack_assign(fac_out); + if(!fac_out->links.empty()) + compiler.stack_assign(fac_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); + compiler.add_node(NODE_TEX_MUSGRAVE, - compiler.encode_uchar4(type_enum[type], basis_enum[basis], vector_in->stack_offset, fac_out->stack_offset), - compiler.encode_uchar4(dimension_in->stack_offset, lacunarity_in->stack_offset, octaves_in->stack_offset, offset_in->stack_offset), - compiler.encode_uchar4(gain_in->stack_offset, size_in->stack_offset)); + compiler.encode_uchar4(type_enum[type], vector_in->stack_offset, color_out->stack_offset, fac_out->stack_offset), + compiler.encode_uchar4(dimension_in->stack_offset, lacunarity_in->stack_offset, detail_in->stack_offset, offset_in->stack_offset), + compiler.encode_uchar4(gain_in->stack_offset, scale_in->stack_offset)); compiler.add_node(__float_as_int(dimension_in->value.x), __float_as_int(lacunarity_in->value.x), - __float_as_int(octaves_in->value.x), + __float_as_int(detail_in->value.x), __float_as_int(offset_in->value.x)); compiler.add_node(__float_as_int(gain_in->value.x), - __float_as_int(size_in->value.x)); + __float_as_int(scale_in->value.x)); } void MusgraveTextureNode::compile(OSLCompiler& compiler) { compiler.parameter("Type", type); - compiler.parameter("Basis", basis); compiler.add(this, "node_musgrave_texture"); } -/* Marble Texture */ +/* Wave Texture */ -static ShaderEnum marble_type_init() +static ShaderEnum wave_type_init() { ShaderEnum enm; - enm.insert("Soft", NODE_MARBLE_SOFT); - enm.insert("Sharp", NODE_MARBLE_SHARP); - enm.insert("Sharper", NODE_MARBLE_SHARPER); + enm.insert("Bands", NODE_WAVE_BANDS); + enm.insert("Rings", NODE_WAVE_RINGS); return enm; } -static ShaderEnum noise_wave_init() -{ - ShaderEnum enm; +ShaderEnum WaveTextureNode::type_enum = wave_type_init(); - enm.insert("Sine", NODE_WAVE_SINE); - enm.insert("Saw", NODE_WAVE_SAW); - enm.insert("Tri", NODE_WAVE_TRI); - - return enm; -} - -ShaderEnum MarbleTextureNode::type_enum = marble_type_init(); -ShaderEnum MarbleTextureNode::wave_enum = noise_wave_init(); -ShaderEnum MarbleTextureNode::basis_enum = noise_basis_init(); - -MarbleTextureNode::MarbleTextureNode() +WaveTextureNode::WaveTextureNode() : TextureNode("marble_texture") { - type = ustring("Soft"); - wave = ustring("Sine"); - basis = ustring("Perlin"); - hard = false; - depth = 2; + type = ustring("Bands"); - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); + add_input("Scale", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Distortion", SHADER_SOCKET_FLOAT, 0.0f); + add_input("Detail", SHADER_SOCKET_FLOAT, 2.0f); + add_input("Detail Scale", SHADER_SOCKET_FLOAT, 1.0f); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); + add_output("Color", SHADER_SOCKET_COLOR); add_output("Fac", SHADER_SOCKET_FLOAT); } -void MarbleTextureNode::compile(SVMCompiler& compiler) +void WaveTextureNode::compile(SVMCompiler& compiler) { - ShaderInput *size_in = input("Size"); - ShaderInput *turbulence_in = input("Turbulence"); + ShaderInput *scale_in = input("Scale"); + ShaderInput *distortion_in = input("Distortion"); + ShaderInput *dscale_in = input("Detail Scale"); + ShaderInput *detail_in = input("Detail"); ShaderInput *vector_in = input("Vector"); ShaderOutput *fac_out = output("Fac"); + ShaderOutput *color_out = output("Color"); - if(size_in->link) compiler.stack_assign(size_in); - if(turbulence_in->link) compiler.stack_assign(turbulence_in); + if(scale_in->link) compiler.stack_assign(scale_in); + if(detail_in->link) compiler.stack_assign(detail_in); + if(distortion_in->link) compiler.stack_assign(distortion_in); + if(dscale_in->link) compiler.stack_assign(dscale_in); if(vector_in->link) compiler.stack_assign(vector_in); if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - compiler.stack_assign(fac_out); - compiler.add_node(NODE_TEX_MARBLE, - compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), - compiler.encode_uchar4(depth), - compiler.encode_uchar4(size_in->stack_offset, turbulence_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset)); - compiler.add_node(__float_as_int(size_in->value.x), __float_as_int(turbulence_in->value.x)); + if(!fac_out->links.empty()) + compiler.stack_assign(fac_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); + + compiler.add_node(NODE_TEX_WAVE, + compiler.encode_uchar4(type_enum[type], color_out->stack_offset, fac_out->stack_offset, dscale_in->stack_offset), + compiler.encode_uchar4(vector_in->stack_offset, scale_in->stack_offset, detail_in->stack_offset, distortion_in->stack_offset)); + + compiler.add_node( + __float_as_int(scale_in->value.x), + __float_as_int(detail_in->value.x), + __float_as_int(distortion_in->value.x), + __float_as_int(dscale_in->value.x)); } -void MarbleTextureNode::compile(OSLCompiler& compiler) +void WaveTextureNode::compile(OSLCompiler& compiler) { compiler.parameter("Type", type); - compiler.parameter("Wave", wave); - compiler.parameter("Basis", basis); - compiler.parameter("Hard", (hard)? 1: 0); - compiler.parameter("Depth", depth); compiler.add(this, "node_marble_texture"); } @@ -773,205 +671,46 @@ MagicTextureNode::MagicTextureNode() { depth = 2; - add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); + add_input("Scale", SHADER_SOCKET_FLOAT, 5.0f); + add_input("Distortion", SHADER_SOCKET_FLOAT, 1.0f); + add_output("Color", SHADER_SOCKET_COLOR); + add_output("Fac", SHADER_SOCKET_FLOAT); } void MagicTextureNode::compile(SVMCompiler& compiler) { ShaderInput *vector_in = input("Vector"); - ShaderInput *turbulence_in = input("Turbulence"); + ShaderInput *scale_in = input("Scale"); + ShaderInput *distortion_in = input("Distortion"); ShaderOutput *color_out = output("Color"); - - if(vector_in->link) compiler.stack_assign(vector_in); - if(turbulence_in->link) compiler.stack_assign(turbulence_in); - - if(!tex_mapping.skip()) - tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - - compiler.stack_assign(color_out); - compiler.add_node(NODE_TEX_MAGIC, - compiler.encode_uchar4(depth, turbulence_in->stack_offset, vector_in->stack_offset, color_out->stack_offset), - __float_as_int(turbulence_in->value.x)); -} - -void MagicTextureNode::compile(OSLCompiler& compiler) -{ - compiler.parameter("Depth", depth); - compiler.add(this, "node_magic_texture"); -} - -/* Stucci Texture */ - -static ShaderEnum stucci_type_init() -{ - ShaderEnum enm; - - enm.insert("Plastic", NODE_STUCCI_PLASTIC); - enm.insert("Wall In", NODE_STUCCI_WALL_IN); - enm.insert("Wall Out", NODE_STUCCI_WALL_OUT); - - return enm; -} - -ShaderEnum StucciTextureNode::type_enum = stucci_type_init(); -ShaderEnum StucciTextureNode::basis_enum = noise_basis_init(); - -StucciTextureNode::StucciTextureNode() -: TextureNode("stucci_texture") -{ - type = ustring("Plastic"); - basis = ustring("Perlin"); - hard = false; - - add_input("Size", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Turbulence", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); - - add_output("Fac", SHADER_SOCKET_FLOAT); -} - -void StucciTextureNode::compile(SVMCompiler& compiler) -{ - ShaderInput *size_in = input("Size"); - ShaderInput *turbulence_in = input("Turbulence"); - ShaderInput *vector_in = input("Vector"); ShaderOutput *fac_out = output("Fac"); - if(size_in->link) compiler.stack_assign(size_in); - if(turbulence_in->link) compiler.stack_assign(turbulence_in); if(vector_in->link) compiler.stack_assign(vector_in); - - if(!tex_mapping.skip()) - tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - - compiler.stack_assign(fac_out); - - compiler.add_node(NODE_TEX_STUCCI, - compiler.encode_uchar4(type_enum[type], basis_enum[basis], hard), - compiler.encode_uchar4(size_in->stack_offset, turbulence_in->stack_offset, - vector_in->stack_offset, fac_out->stack_offset)); - compiler.add_node(__float_as_int(size_in->value.x), - __float_as_int(turbulence_in->value.x)); -} - -void StucciTextureNode::compile(OSLCompiler& compiler) -{ - compiler.parameter("Type", type); - compiler.parameter("Basis", basis); - compiler.parameter("Hard", (hard)? 1: 0); - compiler.add(this, "node_stucci_texture"); -} - -/* Distorted Noise Texture */ - -ShaderEnum DistortedNoiseTextureNode::basis_enum = noise_basis_init(); - -DistortedNoiseTextureNode::DistortedNoiseTextureNode() -: TextureNode("distorted_noise_texture") -{ - basis = ustring("Perlin"); - distortion_basis = ustring("Perlin"); - - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Distortion", SHADER_SOCKET_FLOAT, 1.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); - - add_output("Fac", SHADER_SOCKET_FLOAT); -} - -void DistortedNoiseTextureNode::compile(SVMCompiler& compiler) -{ - ShaderInput *size_in = input("Size"); - ShaderInput *distortion_in = input("Distortion"); - ShaderInput *vector_in = input("Vector"); - ShaderOutput *fac_out = output("Fac"); - - if(size_in->link) compiler.stack_assign(size_in); if(distortion_in->link) compiler.stack_assign(distortion_in); - if(vector_in->link) compiler.stack_assign(vector_in); + if(scale_in->link) compiler.stack_assign(scale_in); if(!tex_mapping.skip()) tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - compiler.stack_assign(fac_out); + if(!fac_out->links.empty()) + compiler.stack_assign(fac_out); + if(!color_out->links.empty()) + compiler.stack_assign(color_out); - compiler.add_node(NODE_TEX_DISTORTED_NOISE, - compiler.encode_uchar4(basis_enum[basis], basis_enum[distortion_basis]), - compiler.encode_uchar4(size_in->stack_offset, distortion_in->stack_offset, vector_in->stack_offset, fac_out->stack_offset)); - compiler.add_node(__float_as_int(size_in->value.x), + compiler.add_node(NODE_TEX_MAGIC, + compiler.encode_uchar4(depth, color_out->stack_offset, fac_out->stack_offset), + compiler.encode_uchar4(vector_in->stack_offset, scale_in->stack_offset, distortion_in->stack_offset)); + compiler.add_node( + __float_as_int(scale_in->value.x), __float_as_int(distortion_in->value.x)); } -void DistortedNoiseTextureNode::compile(OSLCompiler& compiler) -{ - compiler.parameter("Basis", basis); - compiler.parameter("DistortionBasis", distortion_basis); - compiler.add(this, "node_distorted_noise_texture"); -} - -/* Wood Texture */ - -static ShaderEnum wood_type_init() -{ - ShaderEnum enm; - - enm.insert("Bands", NODE_WOOD_BANDS); - enm.insert("Rings", NODE_WOOD_RINGS); - enm.insert("Band Noise", NODE_WOOD_BAND_NOISE); - enm.insert("Ring Noise", NODE_WOOD_RING_NOISE); - - return enm; -} - -ShaderEnum WoodTextureNode::type_enum = wood_type_init(); -ShaderEnum WoodTextureNode::wave_enum = noise_wave_init(); -ShaderEnum WoodTextureNode::basis_enum = noise_basis_init(); - -WoodTextureNode::WoodTextureNode() -: TextureNode("wood_texture") -{ - type = ustring("Bands"); - wave = ustring("Sine"); - basis = ustring("Perlin"); - hard = false; - - add_input("Size", SHADER_SOCKET_FLOAT, 0.25f); - add_input("Turbulence", SHADER_SOCKET_FLOAT, 5.0f); - add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED); - - add_output("Fac", SHADER_SOCKET_FLOAT); -} - -void WoodTextureNode::compile(SVMCompiler& compiler) -{ - ShaderInput *vector_in = input("Vector"); - ShaderInput *size_in = input("Size"); - ShaderInput *turbulence_in = input("Turbulence"); - ShaderOutput *fac_out = output("Fac"); - - if(vector_in->link) compiler.stack_assign(vector_in); - if(size_in->link) compiler.stack_assign(size_in); - if(turbulence_in->link) compiler.stack_assign(turbulence_in); - - if(!tex_mapping.skip()) - tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset); - - compiler.stack_assign(fac_out); - compiler.add_node(NODE_TEX_WOOD, - compiler.encode_uchar4(type_enum[type], wave_enum[wave], basis_enum[basis], hard), - compiler.encode_uchar4(vector_in->stack_offset, size_in->stack_offset, turbulence_in->stack_offset, fac_out->stack_offset)); - compiler.add_node(NODE_TEX_WOOD, make_float3(size_in->value.x, turbulence_in->value.x, 0.0f)); -} - -void WoodTextureNode::compile(OSLCompiler& compiler) +void MagicTextureNode::compile(OSLCompiler& compiler) { - compiler.parameter("Type", type); - compiler.parameter("Wave", wave); - compiler.parameter("Basis", basis); - compiler.parameter("Hard", (hard)? 1: 0); - compiler.add(this, "node_wood_texture"); + compiler.parameter("Depth", depth); + compiler.add(this, "node_magic_texture"); } /* Mapping */ @@ -1986,8 +1725,8 @@ void FresnelNode::compile(OSLCompiler& compiler) /* Blend Weight */ -BlendWeightNode::BlendWeightNode() -: ShaderNode("BlendWeight") +LayerWeightNode::LayerWeightNode() +: ShaderNode("LayerWeight") { add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL, true); add_input("Blend", SHADER_SOCKET_FLOAT, 0.5f); @@ -1996,7 +1735,7 @@ BlendWeightNode::BlendWeightNode() add_output("Facing", SHADER_SOCKET_FLOAT); } -void BlendWeightNode::compile(SVMCompiler& compiler) +void LayerWeightNode::compile(SVMCompiler& compiler) { ShaderInput *blend_in = input("Blend"); @@ -2006,21 +1745,21 @@ void BlendWeightNode::compile(SVMCompiler& compiler) ShaderOutput *fresnel_out = output("Fresnel"); if(!fresnel_out->links.empty()) { compiler.stack_assign(fresnel_out); - compiler.add_node(NODE_BLEND_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), - compiler.encode_uchar4(NODE_BLEND_WEIGHT_FRESNEL, fresnel_out->stack_offset)); + compiler.add_node(NODE_LAYER_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), + compiler.encode_uchar4(NODE_LAYER_WEIGHT_FRESNEL, fresnel_out->stack_offset)); } ShaderOutput *facing_out = output("Facing"); if(!facing_out->links.empty()) { compiler.stack_assign(facing_out); - compiler.add_node(NODE_BLEND_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), - compiler.encode_uchar4(NODE_BLEND_WEIGHT_FACING, facing_out->stack_offset)); + compiler.add_node(NODE_LAYER_WEIGHT, blend_in->stack_offset, __float_as_int(blend_in->value.x), + compiler.encode_uchar4(NODE_LAYER_WEIGHT_FACING, facing_out->stack_offset)); } } -void BlendWeightNode::compile(OSLCompiler& compiler) +void LayerWeightNode::compile(OSLCompiler& compiler) { - compiler.add(this, "node_blend_weight"); + compiler.add(this, "node_layer_height"); } /* Output */ diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index 09b565b5043..d9cbd7ff589 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -97,41 +97,25 @@ public: SHADER_NODE_CLASS(OutputNode) }; -class NoiseTextureNode : public TextureNode { -public: - SHADER_NODE_CLASS(NoiseTextureNode) -}; - -class BlendTextureNode : public TextureNode { +class GradientTextureNode : public TextureNode { public: - SHADER_NODE_CLASS(BlendTextureNode) + SHADER_NODE_CLASS(GradientTextureNode) - ustring progression; - ustring axis; - - static ShaderEnum progression_enum; - static ShaderEnum axis_enum; + ustring type; + static ShaderEnum type_enum; }; -class CloudsTextureNode : public TextureNode { +class NoiseTextureNode : public TextureNode { public: - SHADER_NODE_CLASS(CloudsTextureNode) - - bool hard; - int depth; - ustring basis; - - static ShaderEnum basis_enum; + SHADER_NODE_CLASS(NoiseTextureNode) }; class VoronoiTextureNode : public TextureNode { public: SHADER_NODE_CLASS(VoronoiTextureNode) - ustring distance_metric; ustring coloring; - static ShaderEnum distance_metric_enum; static ShaderEnum coloring_enum; }; @@ -140,25 +124,16 @@ public: SHADER_NODE_CLASS(MusgraveTextureNode) ustring type; - ustring basis; static ShaderEnum type_enum; - static ShaderEnum basis_enum; }; -class MarbleTextureNode : public TextureNode { +class WaveTextureNode : public TextureNode { public: - SHADER_NODE_CLASS(MarbleTextureNode) + SHADER_NODE_CLASS(WaveTextureNode) ustring type; - ustring wave; - ustring basis; - bool hard; - int depth; - static ShaderEnum type_enum; - static ShaderEnum wave_enum; - static ShaderEnum basis_enum; }; class MagicTextureNode : public TextureNode { @@ -168,41 +143,6 @@ public: int depth; }; -class StucciTextureNode : public TextureNode { -public: - SHADER_NODE_CLASS(StucciTextureNode) - - ustring type; - ustring basis; - bool hard; - - static ShaderEnum type_enum; - static ShaderEnum basis_enum; -}; - -class DistortedNoiseTextureNode : public TextureNode { -public: - SHADER_NODE_CLASS(DistortedNoiseTextureNode) - - ustring basis; - ustring distortion_basis; - static ShaderEnum basis_enum; -}; - -class WoodTextureNode : public TextureNode { -public: - SHADER_NODE_CLASS(WoodTextureNode) - - ustring type; - ustring wave; - ustring basis; - bool hard; - - static ShaderEnum type_enum; - static ShaderEnum wave_enum; - static ShaderEnum basis_enum; -}; - class MappingNode : public ShaderNode { public: SHADER_NODE_CLASS(MappingNode) @@ -365,9 +305,9 @@ public: SHADER_NODE_CLASS(FresnelNode) }; -class BlendWeightNode : public ShaderNode { +class LayerWeightNode : public ShaderNode { public: - SHADER_NODE_CLASS(BlendWeightNode) + SHADER_NODE_CLASS(LayerWeightNode) }; class MathNode : public ShaderNode { diff --git a/intern/cycles/util/util_hash.h b/intern/cycles/util/util_hash.h index af7ad7e06a1..16901dab38e 100644 --- a/intern/cycles/util/util_hash.h +++ b/intern/cycles/util/util_hash.h @@ -21,7 +21,7 @@ CCL_NAMESPACE_BEGIN -static unsigned int hash_int_2d(unsigned int kx, unsigned int ky) +static inline unsigned int hash_int_2d(unsigned int kx, unsigned int ky) { #define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) @@ -44,7 +44,7 @@ static unsigned int hash_int_2d(unsigned int kx, unsigned int ky) #undef rot } -static unsigned int hash_int(unsigned int k) +static inline unsigned int hash_int(unsigned int k) { return hash_int_2d(k, 0); } diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 3ba6cd3793e..9543eefd0c7 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -473,23 +473,19 @@ struct ShadeResult; #define SH_NODE_GEOMETRY 141 #define SH_NODE_LIGHT_PATH 142 #define SH_NODE_TEX_IMAGE 143 -#define SH_NODE_TEX_NOISE 144 #define SH_NODE_TEX_SKY 145 -#define SH_NODE_TEX_BLEND 146 +#define SH_NODE_TEX_GRADIENT 146 #define SH_NODE_TEX_VORONOI 147 #define SH_NODE_TEX_MAGIC 148 -#define SH_NODE_TEX_MARBLE 149 -#define SH_NODE_TEX_CLOUDS 150 -#define SH_NODE_TEX_WOOD 151 +#define SH_NODE_TEX_WAVE 149 +#define SH_NODE_TEX_NOISE 150 #define SH_NODE_TEX_MUSGRAVE 152 -#define SH_NODE_TEX_STUCCI 153 -#define SH_NODE_TEX_DISTNOISE 154 #define SH_NODE_TEX_COORD 155 #define SH_NODE_ADD_SHADER 156 #define SH_NODE_TEX_ENVIRONMENT 157 #define SH_NODE_OUTPUT_TEXTURE 158 #define SH_NODE_HOLDOUT 159 -#define SH_NODE_BLEND_WEIGHT 160 +#define SH_NODE_LAYER_WEIGHT 160 #define SH_NODE_VOLUME_TRANSPARENT 161 #define SH_NODE_VOLUME_ISOTROPIC 162 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 4f87c194790..35f32a3b772 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1896,7 +1896,7 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_geometry(ntypelist); register_node_type_sh_light_path(ntypelist); register_node_type_sh_fresnel(ntypelist); - register_node_type_sh_blend_weight(ntypelist); + register_node_type_sh_layer_weight(ntypelist); register_node_type_sh_tex_coord(ntypelist); register_node_type_sh_background(ntypelist); @@ -1922,16 +1922,12 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_tex_image(ntypelist); register_node_type_sh_tex_environment(ntypelist); register_node_type_sh_tex_sky(ntypelist); - register_node_type_sh_tex_voronoi(ntypelist); - register_node_type_sh_tex_blend(ntypelist); - register_node_type_sh_tex_magic(ntypelist); - register_node_type_sh_tex_marble(ntypelist); - register_node_type_sh_tex_clouds(ntypelist); - register_node_type_sh_tex_wood(ntypelist); - register_node_type_sh_tex_stucci(ntypelist); register_node_type_sh_tex_noise(ntypelist); - register_node_type_sh_tex_distnoise(ntypelist); + register_node_type_sh_tex_wave(ntypelist); + register_node_type_sh_tex_voronoi(ntypelist); register_node_type_sh_tex_musgrave(ntypelist); + register_node_type_sh_tex_gradient(ntypelist); + register_node_type_sh_tex_magic(ntypelist); } static void registerTextureNodes(ListBase *ntypelist) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1c96cd2e05a..4d07242bfc9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2091,7 +2091,7 @@ static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) if(strcmp(sock->name, "Fresnel") == 0) { bNodeSocket *osock; - node->type = SH_NODE_BLEND_WEIGHT; + node->type = SH_NODE_LAYER_WEIGHT; strcpy(sock->name, "Blend"); for(osock=node->outputs.first; osock; osock=osock->next) @@ -7227,9 +7227,8 @@ static void do_version_ntree_tex_mapping_260(void *UNUSED(data), ID *UNUSED(id), tex_mapping->projz= PROJ_Z; } else if(ELEM7(node->type, SH_NODE_TEX_IMAGE, SH_NODE_TEX_NOISE, SH_NODE_TEX_SKY, - SH_NODE_TEX_BLEND, SH_NODE_TEX_VORONOI, SH_NODE_TEX_MAGIC, SH_NODE_TEX_MARBLE) || - ELEM6(node->type, SH_NODE_TEX_CLOUDS, SH_NODE_TEX_WOOD, SH_NODE_TEX_MUSGRAVE, - SH_NODE_TEX_STUCCI, SH_NODE_TEX_DISTNOISE, SH_NODE_TEX_ENVIRONMENT)) { + SH_NODE_TEX_GRADIENT, SH_NODE_TEX_VORONOI, SH_NODE_TEX_MAGIC, SH_NODE_TEX_WAVE) || + ELEM(node->type, SH_NODE_TEX_MUSGRAVE, SH_NODE_TEX_ENVIRONMENT)) { NodeTexBase *base= node->storage; if(node->type == SH_NODE_TEX_NOISE) diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 45713ff2a8f..c27d7e74cd7 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1028,23 +1028,9 @@ static void node_shader_buts_tex_sky(uiLayout *layout, bContext *UNUSED(C), Poin uiItemR(layout, ptr, "turbidity", 0, NULL, ICON_NONE); } -static void node_shader_buts_tex_blend(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +static void node_shader_buts_tex_gradient(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiItemR(layout, ptr, "progression", 0, "", ICON_NONE); - uiItemR(layout, ptr, "axis", 0, "", ICON_NONE); -} - -static void node_shader_buts_tex_clouds(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); -} - -static void node_shader_buts_tex_distnoise(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_distortion", 0, "", ICON_NONE); + uiItemR(layout, ptr, "gradient_type", 0, "", ICON_NONE); } static void node_shader_buts_tex_magic(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -1052,42 +1038,21 @@ 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_marble(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +static void node_shader_buts_tex_wave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiItemR(layout, ptr, "marble_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE); } static void node_shader_buts_tex_musgrave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { uiItemR(layout, ptr, "musgrave_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); -} - -static void node_shader_buts_tex_stucci(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "stucci_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); } static void node_shader_buts_tex_voronoi(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { - uiItemR(layout, ptr, "distance_metric", 0, "", ICON_NONE); uiItemR(layout, ptr, "coloring", 0, "", ICON_NONE); } -static void node_shader_buts_tex_wood(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) -{ - uiItemR(layout, ptr, "noise_basis", 0, "", ICON_NONE); - uiItemR(layout, ptr, "noise_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "wood_type", 0, "", ICON_NONE); - uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE); -} - static void node_shader_buts_glossy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { uiItemR(layout, ptr, "distribution", 0, "", ICON_NONE); @@ -1191,33 +1156,21 @@ static void node_shader_set_butfunc(bNodeType *ntype) case SH_NODE_TEX_ENVIRONMENT: ntype->uifunc= node_shader_buts_tex_image; break; - case SH_NODE_TEX_BLEND: - ntype->uifunc= node_shader_buts_tex_blend; - break; - case SH_NODE_TEX_CLOUDS: - ntype->uifunc= node_shader_buts_tex_clouds; - break; - case SH_NODE_TEX_DISTNOISE: - ntype->uifunc= node_shader_buts_tex_distnoise; + case SH_NODE_TEX_GRADIENT: + ntype->uifunc= node_shader_buts_tex_gradient; break; case SH_NODE_TEX_MAGIC: ntype->uifunc= node_shader_buts_tex_magic; break; - case SH_NODE_TEX_MARBLE: - ntype->uifunc= node_shader_buts_tex_marble; + case SH_NODE_TEX_WAVE: + ntype->uifunc= node_shader_buts_tex_wave; break; case SH_NODE_TEX_MUSGRAVE: ntype->uifunc= node_shader_buts_tex_musgrave; break; - case SH_NODE_TEX_STUCCI: - ntype->uifunc= node_shader_buts_tex_stucci; - break; case SH_NODE_TEX_VORONOI: ntype->uifunc= node_shader_buts_tex_voronoi; break; - case SH_NODE_TEX_WOOD: - ntype->uifunc= node_shader_buts_tex_wood; - break; case SH_NODE_BSDF_GLOSSY: case SH_NODE_BSDF_GLASS: ntype->uifunc= node_shader_buts_glossy; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index d637d6f97bd..07c2885eff7 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -432,10 +432,6 @@ typedef struct NodeTexBase { ColorMapping color_mapping; } NodeTexBase; -typedef struct NodeTexNoise { - NodeTexBase base; -} NodeTexNoise; - typedef struct NodeTexSky { NodeTexBase base; float sun_direction[3]; @@ -452,41 +448,33 @@ typedef struct NodeTexEnvironment { int color_space, pad; } NodeTexEnvironment; -typedef struct NodeTexBlend { +typedef struct NodeTexGradient { NodeTexBase base; - int progression; - int axis; -} NodeTexBlend; + int gradient_type; + int pad; +} NodeTexGradient; -typedef struct NodeTexClouds { +typedef struct NodeTexNoise { NodeTexBase base; - int hard; - int depth; - int basis; - int pad; -} NodeTexClouds; +} NodeTexNoise; typedef struct NodeTexVoronoi { NodeTexBase base; - int distance_metric; int coloring; + int pad; } NodeTexVoronoi; typedef struct NodeTexMusgrave { NodeTexBase base; - int type; - int basis; + int musgrave_type; + int pad; } NodeTexMusgrave; -typedef struct NodeTexMarble { +typedef struct NodeTexWave { NodeTexBase base; - int type; - int wave; - int basis; - int hard; - int depth; + int wave_type; int pad; -} NodeTexMarble; +} NodeTexWave; typedef struct NodeTexMagic { NodeTexBase base; @@ -494,28 +482,6 @@ typedef struct NodeTexMagic { int pad; } NodeTexMagic; -typedef struct NodeTexStucci { - NodeTexBase base; - int type; - int basis; - int hard; - int pad; -} NodeTexStucci; - -typedef struct NodeTexDistortedNoise { - NodeTexBase base; - int basis; - int distortion_basis; -} NodeTexDistortedNoise; - -typedef struct NodeTexWood { - NodeTexBase base; - int type; - int wave; - int basis; - int hard; -} NodeTexWood; - typedef struct NodeShaderAttribute { char name[64]; } NodeShaderAttribute; @@ -545,9 +511,6 @@ typedef struct TexNodeOutput { #define SHD_BLEND_QUADRATIC_SPHERE 5 #define SHD_BLEND_SPHERICAL 6 -#define SHD_BLEND_HORIZONTAL 0 -#define SHD_BLEND_VERTICAL 1 - /* noise basis for textures */ #define SHD_NOISE_PERLIN 0 #define SHD_NOISE_VORONOI_F1 1 @@ -570,10 +533,8 @@ typedef struct TexNodeOutput { #define SHD_VORONOI_MINKOVSKY_4 5 #define SHD_VORONOI_MINKOVSKY 6 -#define SHD_VORONOI_INTENSITY 0 -#define SHD_VORONOI_POSITION 1 -#define SHD_VORONOI_POSITION_OUTLINE 2 -#define SHD_VORONOI_POSITION_OUTLINE_INTENSITY 3 +#define SHD_VORONOI_INTENSITY 0 +#define SHD_VORONOI_CELLS 1 /* musgrave texture */ #define SHD_MUSGRAVE_MULTIFRACTAL 0 @@ -582,26 +543,14 @@ typedef struct TexNodeOutput { #define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3 #define SHD_MUSGRAVE_HETERO_TERRAIN 4 -/* marble texture */ -#define SHD_MARBLE_SOFT 0 -#define SHD_MARBLE_SHARP 1 -#define SHD_MARBLE_SHARPER 2 +/* wave texture */ +#define SHD_WAVE_BANDS 0 +#define SHD_WAVE_RINGS 1 #define SHD_WAVE_SINE 0 #define SHD_WAVE_SAW 1 #define SHD_WAVE_TRI 2 -/* stucci texture */ -#define SHD_STUCCI_PLASTIC 0 -#define SHD_STUCCI_WALL_IN 1 -#define SHD_STUCCI_WALL_OUT 2 - -/* wood texture */ -#define SHD_WOOD_BANDS 0 -#define SHD_WOOD_RINGS 1 -#define SHD_WOOD_BAND_NOISE 2 -#define SHD_WOOD_RING_NOISE 3 - /* image/environment texture */ #define SHD_COLORSPACE_LINEAR 0 #define SHD_COLORSPACE_SRGB 1 diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index db80f8906fd..035a05e5124 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1147,12 +1147,6 @@ static void def_sh_tex(StructRNA *srna) RNA_def_property_ui_text(prop, "Color Mapping", "Color mapping settings"); } -static void def_sh_tex_noise(StructRNA *srna) -{ - RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); - def_sh_tex(srna); -} - static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; @@ -1219,9 +1213,9 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_blend(StructRNA *srna) +static void def_sh_tex_gradient(StructRNA *srna) { - static EnumPropertyItem prop_blend_progression[] = { + static EnumPropertyItem prop_gradient_type[] = { {SHD_BLEND_LINEAR, "LINEAR", 0, "Linear", "Creates a linear progression"}, {SHD_BLEND_QUADRATIC, "QUADRATIC", 0, "Quadratic", "Creates a quadratic progression"}, {SHD_BLEND_EASING, "EASING", 0, "Easing", "Creates a progression easing from one step to the next"}, @@ -1231,73 +1225,21 @@ static void def_sh_tex_blend(StructRNA *srna) {SHD_BLEND_RADIAL, "RADIAL", 0, "Radial", "Creates a radial progression"}, {0, NULL, 0, NULL, NULL}}; - static const EnumPropertyItem prop_axis_items[]= { - {SHD_BLEND_HORIZONTAL, "HORIZONTAL", 0, "Horizontal", "Flips the texture's X and Y axis"}, - {SHD_BLEND_VERTICAL, "VERTICAL", 0, "Vertical", "Flips the texture's X and Y axis"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "progression"); - RNA_def_property_enum_items(prop, prop_blend_progression); - RNA_def_property_ui_text(prop, "Progression", "Sets the style of the color blending"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_bitflag_sdna(prop, NULL, "axis"); - RNA_def_property_enum_items(prop, prop_axis_items); - RNA_def_property_ui_text(prop, "Axis", "Flips the texture's X and Y axis"); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - -static void def_sh_tex_clouds(StructRNA *srna) -{ PropertyRNA *prop; - RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexGradient", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "depth"); - RNA_def_property_range(prop, 0, 30); - RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + prop= RNA_def_property(srna, "gradient_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_gradient_type); + RNA_def_property_ui_text(prop, "Gradient Type", "Sets the style of the color blending"); RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_distnoise(StructRNA *srna) +static void def_sh_tex_noise(StructRNA *srna) { - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); def_sh_tex(srna); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_distortion", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "distortion_basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Distortion", "Sets the noise basis used for distortion"); - RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_magic(StructRNA *srna) @@ -1314,50 +1256,6 @@ static void def_sh_tex_magic(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_marble(StructRNA *srna) -{ - static EnumPropertyItem prop_marble_stype[] = { - {SHD_MARBLE_SOFT, "SOFT", 0, "Soft", "Uses soft marble"}, - {SHD_MARBLE_SHARP, "SHARP", 0, "Sharp", "Uses more clearly defined marble"}, - {SHD_MARBLE_SHARPER, "SHARPER", 0, "Sharper", "Uses very clearly defined marble"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_marble_stype); - RNA_def_property_ui_text(prop, "Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "depth"); - RNA_def_property_range(prop, 0, 30); - RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "wave"); - RNA_def_property_enum_items(prop, prop_wave_items); - RNA_def_property_ui_text(prop, "Wave Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - static void def_sh_tex_musgrave(StructRNA *srna) { static EnumPropertyItem prop_musgrave_type[] = { @@ -1374,67 +1272,17 @@ static void def_sh_tex_musgrave(StructRNA *srna) def_sh_tex(srna); prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_sdna(prop, NULL, "musgrave_type"); RNA_def_property_enum_items(prop, prop_musgrave_type); RNA_def_property_ui_text(prop, "Type", ""); RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - -static void def_sh_tex_stucci(StructRNA *srna) -{ - static EnumPropertyItem prop_stucci_stype[] = { - {SHD_STUCCI_PLASTIC, "PLASTIC", 0, "Plastic", "Uses standard stucci"}, - {SHD_STUCCI_WALL_IN, "WALL_IN", 0, "Wall in", "Creates Dimples"}, - {SHD_STUCCI_WALL_OUT, "WALL_OUT", 0, "Wall out", "Creates Ridges"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_stucci_stype); - RNA_def_property_ui_text(prop, "Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_voronoi(StructRNA *srna) { - static EnumPropertyItem prop_distance_metric_items[] = { - {SHD_VORONOI_ACTUAL_DISTANCE, "DISTANCE", 0, "Actual Distance", ""}, - {SHD_VORONOI_DISTANCE_SQUARED, "DISTANCE_SQUARED", 0, "Distance Squared", ""}, - {SHD_VORONOI_MANHATTAN, "MANHATTAN", 0, "Manhattan", ""}, - {SHD_VORONOI_CHEBYCHEV, "CHEBYCHEV", 0, "Chebychev", ""}, - {SHD_VORONOI_MINKOVSKY_H, "MINKOVSKY_HALF", 0, "Minkovsky 1/2", ""}, - {SHD_VORONOI_MINKOVSKY_4, "MINKOVSKY_FOUR", 0, "Minkovsky 4", ""}, - {SHD_VORONOI_MINKOVSKY, "MINKOVSKY", 0, "Minkovsky", ""}, - {0, NULL, 0, NULL, NULL}}; - static EnumPropertyItem prop_coloring_items[] = { {SHD_VORONOI_INTENSITY, "INTENSITY", 0, "Intensity", "Only calculate intensity"}, - {SHD_VORONOI_POSITION, "POSITION", 0, "Position", "Color cells by position"}, - {SHD_VORONOI_POSITION_OUTLINE, "POSITION_OUTLINE", 0, "Position and Outline", "Use position plus an outline based on F2-F.1"}, - {SHD_VORONOI_POSITION_OUTLINE_INTENSITY, "POSITION_OUTLINE_INTENSITY", 0, "Position, Outline, and Intensity", "Multiply position and outline by intensity"}, + {SHD_VORONOI_CELLS, "CELLS", 0, "Cells", "Color cells by position"}, {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop; @@ -1442,12 +1290,6 @@ static void def_sh_tex_voronoi(StructRNA *srna) RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); - RNA_def_property_enum_items(prop, prop_distance_metric_items); - RNA_def_property_ui_text(prop, "Distance Metric", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - prop= RNA_def_property(srna, "coloring", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "coloring"); RNA_def_property_enum_items(prop, prop_coloring_items); @@ -1455,41 +1297,21 @@ static void def_sh_tex_voronoi(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_wood(StructRNA *srna) +static void def_sh_tex_wave(StructRNA *srna) { - static EnumPropertyItem prop_wood_type_items[] = { - {SHD_WOOD_BANDS, "BANDS", 0, "Bands", "Uses standard wood texture in bands"}, - {SHD_WOOD_RINGS, "RINGS", 0, "Rings", "Uses wood texture in rings"}, - {SHD_WOOD_BAND_NOISE, "BAND_NOISE", 0, "Band Noise", "Adds noise to standard wood"}, - {SHD_WOOD_RING_NOISE, "RING_NOISE", 0, "Ring Noise", "Adds noise to rings"}, + static EnumPropertyItem prop_wave_type_items[] = { + {SHD_WAVE_BANDS, "BANDS", 0, "Bands", "Uses standard wave texture in bands"}, + {SHD_WAVE_RINGS, "RINGS", 0, "Rings", "Uses wave texture in rings"}, {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop; - RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexWave", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "wood_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_wood_type_items); - RNA_def_property_ui_text(prop, "Wood Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "wave"); - RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_enum_sdna(prop, NULL, "wave_type"); + RNA_def_property_enum_items(prop, prop_wave_type_items); RNA_def_property_ui_text(prop, "Wave Type", ""); RNA_def_property_update(prop, 0, "rna_Node_update"); } diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index c74d8943bcf..911501efc04 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -58,7 +58,7 @@ DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPU //DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) -DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND_WEIGHT", BlendWeight, "BlendWeight", "" ) +DefNode( ShaderNode, SH_NODE_LAYER_WEIGHT, 0, "LAYER_WEIGHT", LayerWeight, "LayerWeight", "" ) DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) @@ -79,17 +79,13 @@ DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GE DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_GRADIENT, def_sh_tex_gradient, "TEX_GRADIENT", TexGradient, "Gradient Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WAVE, def_sh_tex_wave, "TEX_WAVE", TexWave, "Wave Texture", "") DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 8ee67fc4f9a..1847fcb8add 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -135,7 +135,7 @@ set(SRC shader/nodes/node_shader_bsdf_velvet.c shader/nodes/node_shader_emission.c shader/nodes/node_shader_fresnel.c - shader/nodes/node_shader_blend_weight.c + shader/nodes/node_shader_layer_weight.c shader/nodes/node_shader_geometry.c shader/nodes/node_shader_holdout.c shader/nodes/node_shader_volume_transparent.c @@ -147,20 +147,16 @@ set(SRC shader/nodes/node_shader_output_material.c shader/nodes/node_shader_output_texture.c shader/nodes/node_shader_output_world.c - shader/nodes/node_shader_tex_blend.c - shader/nodes/node_shader_tex_clouds.c + shader/nodes/node_shader_tex_gradient.c shader/nodes/node_shader_tex_coord.c - shader/nodes/node_shader_tex_distnoise.c - shader/nodes/node_shader_tex_image.c shader/nodes/node_shader_tex_environment.c + shader/nodes/node_shader_tex_image.c shader/nodes/node_shader_tex_magic.c - shader/nodes/node_shader_tex_marble.c shader/nodes/node_shader_tex_musgrave.c shader/nodes/node_shader_tex_noise.c shader/nodes/node_shader_tex_sky.c - shader/nodes/node_shader_tex_stucci.c shader/nodes/node_shader_tex_voronoi.c - shader/nodes/node_shader_tex_wood.c + shader/nodes/node_shader_tex_wave.c shader/nodes/node_shader_noise.h shader/node_shader_tree.c shader/node_shader_util.c diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index 8f6a6e527f2..52d5f2f5e9c 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -75,7 +75,7 @@ void register_node_type_sh_attribute(ListBase *lb); void register_node_type_sh_geometry(ListBase *lb); void register_node_type_sh_light_path(ListBase *lb); void register_node_type_sh_fresnel(ListBase *lb); -void register_node_type_sh_blend_weight(ListBase *lb); +void register_node_type_sh_layer_weight(ListBase *lb); void register_node_type_sh_tex_coord(ListBase *lb); void register_node_type_sh_background(ListBase *lb); @@ -102,15 +102,11 @@ void register_node_type_sh_tex_image(ListBase *lb); void register_node_type_sh_tex_environment(ListBase *lb); void register_node_type_sh_tex_sky(ListBase *lb); void register_node_type_sh_tex_voronoi(ListBase *lb); -void register_node_type_sh_tex_blend(ListBase *lb); +void register_node_type_sh_tex_gradient(ListBase *lb); void register_node_type_sh_tex_magic(ListBase *lb); -void register_node_type_sh_tex_marble(ListBase *lb); -void register_node_type_sh_tex_clouds(ListBase *lb); -void register_node_type_sh_tex_wood(ListBase *lb); +void register_node_type_sh_tex_wave(ListBase *lb); void register_node_type_sh_tex_musgrave(ListBase *lb); void register_node_type_sh_tex_noise(ListBase *lb); -void register_node_type_sh_tex_stucci(ListBase *lb); -void register_node_type_sh_tex_distnoise(ListBase *lb); #endif diff --git a/source/blender/nodes/shader/nodes/node_shader_blend_weight.c b/source/blender/nodes/shader/nodes/node_shader_blend_weight.c deleted file mode 100644 index f214f765abf..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_blend_weight.c +++ /dev/null @@ -1,69 +0,0 @@ -/** - * $Id: node_shader_blend_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" - -/* **************** BlendWeight ******************** */ -static bNodeSocketTemplate sh_node_blend_weight_in[]= { - { SOCK_FLOAT, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_blend_weight_out[]= { - { SOCK_FLOAT, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_FLOAT, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_exec_blend_weight(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) -{ -} - -static int node_shader_gpu_blend_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) -{ - return 0; -} - -/* node type definition */ -void register_node_type_sh_blend_weight(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_BLEND_WEIGHT, "Blend Weight", NODE_CLASS_INPUT, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_blend_weight_in, sh_node_blend_weight_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, NULL); - node_type_storage(&ntype, "", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_blend_weight); - node_type_gpu(&ntype, node_shader_gpu_blend_weight); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/shader/nodes/node_shader_layer_weight.c b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c new file mode 100644 index 00000000000..79e5728fab6 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c @@ -0,0 +1,70 @@ +/** + * $Id: node_shader_layer_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** Layer Weight ******************** */ + +static bNodeSocketTemplate sh_node_layer_weight_in[]= { + { SOCK_FLOAT, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_layer_weight_out[]= { + { SOCK_FLOAT, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_layer_weight(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_layer_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_layer_weight(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_LAYER_WEIGHT, "Layer Weight", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_layer_weight_in, sh_node_layer_weight_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_layer_weight); + node_type_gpu(&ntype, node_shader_gpu_layer_weight); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_noise.h b/source/blender/nodes/shader/nodes/node_shader_noise.h index 44aa8f6bb41..7f633820124 100644 --- a/source/blender/nodes/shader/nodes/node_shader_noise.h +++ b/source/blender/nodes/shader/nodes/node_shader_noise.h @@ -444,14 +444,17 @@ MINLINE float noise_wave(int wave, float a) /* Turbulence */ -MINLINE float noise_turbulence(float p[3], int basis, int octaves, int hard) +MINLINE float noise_turbulence(float p[3], int basis, float octaves, int hard) { float fscale = 1.0f; float amp = 1.0f; float sum = 0.0f; - int i; + float rmd; + int i, n; + + octaves = CLAMPIS(octaves, 0.0f, 16.0f); - for(i = 0; i <= octaves; i++) { + for(i = 0; i <= (int)octaves; i++) { float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; float t = noise_basis(pscale, basis); @@ -463,7 +466,28 @@ MINLINE float noise_turbulence(float p[3], int basis, int octaves, int hard) fscale *= 2.0f; } - sum *= ((float)(1 << octaves)/(float)((1 << (octaves+1)) - 1)); + rmd = octaves - floor(octaves); + + if(rmd != 0.0f) { + float pscale[3] = {fscale*p[0], fscale*p[1], fscale*p[2]}; + float t = noise_basis(pscale, basis); + float sum2; + + if(hard) + t = fabsf(2.0f*t - 1.0f); + + sum2 = sum + t*amp; + + sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); + sum2 *= ((float)(1 << (n+1))/(float)((1 << (n+2)) - 1)); + + return (1.0f - rmd)*sum + rmd*sum2; + } + else { + sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); + return sum; + } + return sum; } diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c b/source/blender/nodes/shader/nodes/node_shader_tex_blend.c deleted file mode 100644 index 50bafede2aa..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_blend.c +++ /dev/null @@ -1,140 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" - -static float blend(float p[3], int type, int axis) -{ - float x, y; - - if(axis == SHD_BLEND_VERTICAL) { - x= p[1]; - y= p[0]; - } - else { - x= p[0]; - y= p[1]; - } - - if(type == SHD_BLEND_LINEAR) { - return (1.0f + x)/2.0f; - } - else if(type == SHD_BLEND_QUADRATIC) { - float r = MAX2((1.0f + x)/2.0f, 0.0f); - return r*r; - } - else if(type == SHD_BLEND_EASING) { - float r = MIN2(MAX2((1.0f + x)/2.0f, 0.0f), 1.0f); - float t = r*r; - - return (3.0f*t - 2.0f*t*r); - } - else if(type == SHD_BLEND_DIAGONAL) { - return (2.0f + x + y)/4.0f; - } - else if(type == SHD_BLEND_RADIAL) { - return atan2(y, x)/(2.0f*(float)M_PI) + 0.5f; - } - else { - float r = MAX2(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); - - if(type == SHD_BLEND_QUADRATIC_SPHERE) - return r*r; - else if(type == SHD_BLEND_SPHERICAL) - return r; - } - - return 0.0f; -} - -/* **************** BLEND ******************** */ - -static bNodeSocketTemplate sh_node_tex_blend_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_blend_out[]= { - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_blend(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexBlend *tex = MEM_callocN(sizeof(NodeTexBlend), "NodeTexBlend"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->progression = SHD_BLEND_LINEAR; - tex->axis = SHD_BLEND_HORIZONTAL; - - node->storage = tex; -} - -static void node_shader_exec_tex_blend(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexBlend *tex= (NodeTexBlend*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3]; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - out[0]->vec[0]= blend(vec, tex->progression, tex->axis); -} - -static int node_shader_gpu_tex_blend(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_blend", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_blend(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_BLEND, "Blend Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_blend_in, sh_node_tex_blend_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_blend); - node_type_storage(&ntype, "NodeTexBlend", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_blend); - node_type_gpu(&ntype, node_shader_gpu_tex_blend); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c b/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c deleted file mode 100644 index 12f117995bc..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_clouds.c +++ /dev/null @@ -1,123 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" -#include "node_shader_noise.h" - -static float clouds(int basis, int hard, int depth, float size, float vec[3], float color[3]) -{ - float p[3], pg[3], pb[3]; - - mul_v3_v3fl(p, vec, 1.0f/size); - - pg[0]= p[1]; - pg[1]= p[0]; - pg[2]= p[2]; - - pb[0]= p[1]; - pb[1]= p[2]; - pb[2]= p[0]; - - color[0]= noise_turbulence(p, basis, depth, hard); - color[1]= noise_turbulence(pg, basis, depth, hard); - color[2]= noise_turbulence(pb, basis, depth, hard); - - return color[0]; -} - -/* **************** CLOUDS ******************** */ - -static bNodeSocketTemplate sh_node_tex_clouds_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_clouds_out[]= { - { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_clouds(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexClouds *tex = MEM_callocN(sizeof(NodeTexClouds), "NodeTexClouds"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->basis = SHD_NOISE_PERLIN; - tex->hard = 0; - tex->depth = 2; - - node->storage = tex; -} - -static void node_shader_exec_tex_clouds(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexClouds *tex= (NodeTexClouds*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3], size; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - - out[1]->vec[0]= clouds(tex->basis, tex->hard, tex->depth, size, vec, out[0]->vec); -} - -static int node_shader_gpu_tex_clouds(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_clouds", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_clouds(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_CLOUDS, "Clouds Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_clouds_in, sh_node_tex_clouds_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_clouds); - node_type_storage(&ntype, "NodeTexClouds", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_clouds); - node_type_gpu(&ntype, node_shader_gpu_tex_clouds); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c b/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c deleted file mode 100644 index 56a87949fc7..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_distnoise.c +++ /dev/null @@ -1,120 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" -#include "node_shader_noise.h" - -static float distorted_noise(float vec[3], float size, int basis, int distortion_basis, float distortion) -{ - float p[3], r[3], p_offset[3], p_noffset[3]; - float offset[3] = {13.5f, 13.5f, 13.5f}; - - mul_v3_v3fl(p, vec, 1.0f/size); - add_v3_v3v3(p_offset, p, offset); - sub_v3_v3v3(p_noffset, p, offset); - - r[0] = noise_basis(p_offset, basis) * distortion; - r[1] = noise_basis(p, basis) * distortion; - r[2] = noise_basis(p_noffset, basis) * distortion; - - add_v3_v3(p, r); - - return noise_basis(p, distortion_basis); /* distorted-domain noise */ -} - -/* **************** OUTPUT ******************** */ - -static bNodeSocketTemplate sh_node_tex_distnoise_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Distortion", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_distnoise_out[]= { - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_distorted_noise(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexDistortedNoise *tex = MEM_callocN(sizeof(NodeTexDistortedNoise), "NodeTexDistortedNoise"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->basis = SHD_NOISE_PERLIN; - tex->distortion_basis = SHD_NOISE_PERLIN; - - node->storage = tex; -} - -static void node_shader_exec_tex_distnoise(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexDistortedNoise *tex= (NodeTexDistortedNoise*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, distortion; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&distortion, SOCK_FLOAT, in[2]); - - out[0]->vec[0]= distorted_noise(vec, size, tex->basis, tex->distortion_basis, distortion); -} - -static int node_shader_gpu_tex_distnoise(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_distnoise", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_distnoise(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_DISTNOISE, "Distorted Noise Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_distnoise_in, sh_node_tex_distnoise_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_distorted_noise); - node_type_storage(&ntype, "NodeTexDistortedNoise", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_distnoise); - node_type_gpu(&ntype, node_shader_gpu_tex_distnoise); - - nodeRegisterType(lb, &ntype); -}; - diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c new file mode 100644 index 00000000000..71269ba85b6 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c @@ -0,0 +1,140 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 Gradienter 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" + +static float gradient(float p[3], int type) +{ + float x, y; + + x= p[0]; + y= p[1]; + + if(type == SHD_BLEND_LINEAR) { + return (1.0f + x)/2.0f; + } + else if(type == SHD_BLEND_QUADRATIC) { + float r = MAX2((1.0f + x)/2.0f, 0.0f); + return r*r; + } + else if(type == SHD_BLEND_EASING) { + float r = MIN2(MAX2((1.0f + x)/2.0f, 0.0f), 1.0f); + float t = r*r; + + return (3.0f*t - 2.0f*t*r); + } + else if(type == SHD_BLEND_DIAGONAL) { + return (2.0f + x + y)/4.0f; + } + else if(type == SHD_BLEND_RADIAL) { + return atan2(y, x)/(2.0f*(float)M_PI) + 0.5f; + } + else { + float r = MAX2(1.0f - sqrtf(x*x + y*y + p[2]*p[2]), 0.0f); + + if(type == SHD_BLEND_QUADRATIC_SPHERE) + return r*r; + else if(type == SHD_BLEND_SPHERICAL) + return r; + } + + return 0.0f; +} + +/* **************** BLEND ******************** */ + +static bNodeSocketTemplate sh_node_tex_gradient_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_gradient_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->gradient_type = SHD_BLEND_LINEAR; + + node->storage = tex; +} + +static void node_shader_exec_tex_gradient(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexGradient *tex= (NodeTexGradient*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], fac; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + fac= gradient(vec, tex->gradient_type); + CLAMP(fac, 0.0f, 1.0f); + + out[0]->vec[0]= fac; + out[0]->vec[1]= fac; + out[0]->vec[2]= fac; + out[1]->vec[0]= fac; +} + +static int node_shader_gpu_tex_gradient(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_gradient", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_gradient(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_GRADIENT, "Gradient Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_gradient_in, sh_node_tex_gradient_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_gradient); + node_type_storage(&ntype, "NodeTexGradient", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_gradient); + node_type_gpu(&ntype, node_shader_gpu_tex_gradient); + + nodeRegisterType(lb, &ntype); +}; + 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 8d0a2d3fb85..278f141f769 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c @@ -29,56 +29,54 @@ #include "../node_shader_util.h" -static void magic(float rgb[3], float p[3], int n, float turbulence) +static void magic(float rgb[3], float p[3], int n, float distortion) { - float turb = turbulence/5.0f; - float x = sinf((p[0] + p[1] + p[2])*5.0f); float y = cosf((-p[0] + p[1] - p[2])*5.0f); float z = -cosf((-p[0] - p[1] + p[2])*5.0f); if(n > 0) { - x *= turb; - y *= turb; - z *= turb; + x *= distortion; + y *= distortion; + z *= distortion; y = -cosf(x-y+z); - y *= turb; + y *= distortion; if(n > 1) { x= cosf(x-y-z); - x *= turb; + x *= distortion; if(n > 2) { z= sinf(-x-y-z); - z *= turb; + z *= distortion; if(n > 3) { x= -cosf(-x+y-z); - x *= turb; + x *= distortion; if(n > 4) { y= -sinf(-x+y+z); - y *= turb; + y *= distortion; if(n > 5) { y= -cosf(-x+y+z); - y *= turb; + y *= distortion; if(n > 6) { x= cosf(x+y+z); - x *= turb; + x *= distortion; if(n > 7) { z= sinf(x+y-z); - z *= turb; + z *= distortion; if(n > 8) { x= -cosf(-x-y+z); - x *= turb; + x *= distortion; if(n > 9) { y= -sinf(x-y+z); - y *= turb; + y *= distortion; } } } @@ -90,11 +88,11 @@ static void magic(float rgb[3], float p[3], int n, float turbulence) } } - if(turb != 0.0f) { - turb *= 2.0f; - x /= turb; - y /= turb; - z /= turb; + if(distortion != 0.0f) { + distortion *= 2.0f; + x /= distortion; + y /= distortion; + z /= distortion; } rgb[0]= 0.5f - x; @@ -106,12 +104,14 @@ static void magic(float rgb[3], float p[3], int n, float turbulence) static bNodeSocketTemplate sh_node_tex_magic_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Distortion", 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketTemplate sh_node_tex_magic_out[]= { { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -130,16 +130,17 @@ static void node_shader_exec_tex_magic(void *data, bNode *node, bNodeStack **in, ShaderCallData *scd= (ShaderCallData*)data; NodeTexMagic *tex= (NodeTexMagic*)node->storage; bNodeSocket *vecsock = node->inputs.first; - float vec[3], turbulence; + float vec[3], distortion; if(vecsock->link) nodestack_get_vec(vec, SOCK_VECTOR, in[0]); else copy_v3_v3(vec, scd->co); - nodestack_get_vec(&turbulence, SOCK_FLOAT, in[1]); + nodestack_get_vec(&distortion, SOCK_FLOAT, in[1]); - magic(out[0]->vec, vec, tex->depth, turbulence); + magic(out[0]->vec, vec, tex->depth, distortion); + out[1]->vec[0] = (out[0]->vec[0] + out[0]->vec[1] + out[0]->vec[2])*(1.0f/3.0f); } static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c b/source/blender/nodes/shader/nodes/node_shader_tex_marble.c deleted file mode 100644 index 3bb999659c9..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_marble.c +++ /dev/null @@ -1,128 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" -#include "node_shader_noise.h" - -static float marble(float vec[3], float size, int type, int wave, int basis, int hard, float turb, int depth) -{ - float p[3]; - float x = vec[0]; - float y = vec[1]; - float z = vec[2]; - float n = 5.0f * (x + y + z); - float mi; - - mul_v3_v3fl(p, vec, 1.0f/size); - - mi = n + turb * noise_turbulence(p, basis, depth, hard); - - mi = noise_wave(wave, mi); - - if(type == SHD_MARBLE_SHARP) - mi = sqrt(mi); - else if(type == SHD_MARBLE_SHARPER) - mi = sqrt(sqrt(mi)); - - return mi; -} - -/* **************** MARBLE ******************** */ - -static bNodeSocketTemplate sh_node_tex_marble_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_marble_out[]= { - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_marble(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexMarble *tex = MEM_callocN(sizeof(NodeTexMarble), "NodeTexMarble"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->type = SHD_MARBLE_SOFT; - tex->wave = SHD_WAVE_SINE; - tex->basis = SHD_NOISE_PERLIN; - tex->hard = 0; - tex->depth = 2; - - node->storage = tex; -} - -static void node_shader_exec_tex_marble(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexMarble *tex= (NodeTexMarble*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, turbulence; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); - - out[0]->vec[0]= marble(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence, tex->depth); -} - -static int node_shader_gpu_tex_marble(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_marble", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_marble(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_MARBLE, "Marble Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_marble_in, sh_node_tex_marble_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_marble); - node_type_storage(&ntype, "NodeTexMarble", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_marble); - node_type_gpu(&ntype, node_shader_gpu_tex_marble); - - nodeRegisterType(lb, &ntype); -}; - 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 7cf33445a5d..cb5a8d7da0b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c @@ -34,12 +34,12 @@ * * H: fractal increment parameter * lacunarity: gap between successive frequencies - * octaves: number of frequencies in the fBm + * detail: number of frequencies in the fBm * * from "Texturing and Modelling: A procedural approach" */ -static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity, float octaves) +static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity, float detail) { float rmd; float value = 0.0f; @@ -47,13 +47,13 @@ static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity float pwHL = pow(lacunarity, -H); int i; - for(i = 0; i < (int)octaves; i++) { + for(i = 0; i < (int)detail; i++) { value += noise_basis(p, basis) * pwr; pwr *= pwHL; mul_v3_fl(p, lacunarity); } - rmd = octaves - floor(octaves); + rmd = detail - floor(detail); if(rmd != 0.0f) value += rmd * noise_basis(p, basis) * pwr; @@ -64,10 +64,10 @@ static float noise_musgrave_fBm(float p[3], int basis, float H, float lacunarity * * H: highest fractal dimension * lacunarity: gap between successive frequencies - * octaves: number of frequencies in the fBm + * detail: number of frequencies in the fBm */ -static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves) +static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float lacunarity, float detail) { float rmd; float value = 1.0f; @@ -75,13 +75,13 @@ static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float float pwHL = pow(lacunarity, -H); int i; - for(i = 0; i < (int)octaves; i++) { + for(i = 0; i < (int)detail; i++) { value *= (pwr * noise_basis(p, basis) + 1.0f); pwr *= pwHL; mul_v3_fl(p, lacunarity); } - rmd = octaves - floor(octaves); + rmd = detail - floor(detail); if(rmd != 0.0f) value *= (rmd * pwr * noise_basis(p, basis) + 1.0f); /* correct? */ @@ -92,29 +92,29 @@ static float noise_musgrave_multi_fractal(float p[3], int basis, float H, float * * H: fractal dimension of the roughest area * lacunarity: gap between successive frequencies - * octaves: number of frequencies in the fBm + * detail: number of frequencies in the fBm * offset: raises the terrain from `sea level' */ -static float noise_musgrave_hetero_terrain(float p[3], int basis, float H, float lacunarity, float octaves, float offset) +static float noise_musgrave_hetero_terrain(float p[3], int basis, float H, float lacunarity, float detail, float offset) { float value, increment, rmd; float pwHL = pow(lacunarity, -H); float pwr = pwHL; int i; - /* first unscaled octave of function; later octaves are scaled */ + /* first unscaled octave of function; later detail are scaled */ value = offset + noise_basis(p, basis); mul_v3_fl(p, lacunarity); - for(i = 1; i < (int)octaves; i++) { + for(i = 1; i < (int)detail; i++) { increment = (noise_basis(p, basis) + offset) * pwr * value; value += increment; pwr *= pwHL; mul_v3_fl(p, lacunarity); } - rmd = octaves - floor(octaves); + rmd = detail - floor(detail); if(rmd != 0.0f) { increment = (noise_basis(p, basis) + offset) * pwr * value; value += rmd * increment; @@ -127,11 +127,11 @@ static float noise_musgrave_hetero_terrain(float p[3], int basis, float H, float * * H: fractal dimension of the roughest area * lacunarity: gap between successive frequencies - * octaves: number of frequencies in the fBm + * detail: number of frequencies in the fBm * offset: raises the terrain from `sea level' */ -static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, float lacunarity, float detail, float offset, float gain) { float result, signal, weight, rmd; float pwHL = pow(lacunarity, -H); @@ -142,7 +142,7 @@ static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, weight = gain * result; mul_v3_fl(p, lacunarity); - for(i = 1; (weight > 0.001f) && (i < (int)octaves); i++) { + for(i = 1; (weight > 0.001f) && (i < (int)detail); i++) { if(weight > 1.0f) weight = 1.0f; @@ -153,7 +153,7 @@ static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, mul_v3_fl(p, lacunarity); } - rmd = octaves - floor(octaves); + rmd = detail - floor(detail); if(rmd != 0.0f) result += rmd * ((noise_basis(p, basis) + offset) * pwr); @@ -164,11 +164,11 @@ static float noise_musgrave_hybrid_multi_fractal(float p[3], int basis, float H, * * H: fractal dimension of the roughest area * lacunarity: gap between successive frequencies - * octaves: number of frequencies in the fBm + * detail: number of frequencies in the fBm * offset: raises the terrain from `sea level' */ -static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, float lacunarity, float octaves, float offset, float gain) +static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, float lacunarity, float detail, float offset, float gain) { float result, signal, weight; float pwHL = pow(lacunarity, -H); @@ -180,7 +180,7 @@ static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, result = signal; weight = 1.0f; - for(i = 1; i < (int)octaves; i++) { + for(i = 1; i < (int)detail; i++) { mul_v3_fl(p, lacunarity); weight = CLAMPIS(signal * gain, 0.0f, 1.0f); signal = offset - fabsf(noise_basis(p, basis)); @@ -193,22 +193,23 @@ static float noise_musgrave_ridged_multi_fractal(float p[3], int basis, float H, return result; } -static float musgrave(int type, int basis, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float size, float vec[3]) +static float musgrave(int type, float dimension, float lacunarity, float detail, float offset, float intensity, float gain, float scale, float vec[3]) { float p[3]; + int basis = SHD_NOISE_PERLIN; - mul_v3_v3fl(p, vec, 1.0f/size); + mul_v3_v3fl(p, vec, scale); if(type == SHD_MUSGRAVE_MULTIFRACTAL) - return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); + return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, detail); else if(type == SHD_MUSGRAVE_FBM) - return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, octaves); + return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, detail); else if(type == SHD_MUSGRAVE_HYBRID_MULTIFRACTAL) - return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, detail, offset, gain); else if(type == SHD_MUSGRAVE_RIDGED_MULTIFRACTAL) - return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, detail, offset, gain); else if(type == SHD_MUSGRAVE_HETERO_TERRAIN) - return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, octaves, offset); + return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, detail, offset); return 0.0f; } @@ -217,16 +218,17 @@ static float musgrave(int type, int basis, float dimension, float lacunarity, fl static bNodeSocketTemplate sh_node_tex_musgrave_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, { SOCK_FLOAT, 1, "Dimension", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, { SOCK_FLOAT, 1, "Lacunarity", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Octaves", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, { SOCK_FLOAT, 1, "Gain", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketTemplate sh_node_tex_musgrave_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -236,8 +238,7 @@ static void node_shader_init_tex_musgrave(bNodeTree *UNUSED(ntree), bNode* node, NodeTexMusgrave *tex = MEM_callocN(sizeof(NodeTexMusgrave), "NodeTexMusgrave"); default_tex_mapping(&tex->base.tex_mapping); default_color_mapping(&tex->base.color_mapping); - tex->type = SHD_MUSGRAVE_FBM; - tex->basis = SHD_NOISE_PERLIN; + tex->musgrave_type = SHD_MUSGRAVE_FBM; node->storage = tex; } @@ -247,21 +248,25 @@ static void node_shader_exec_tex_musgrave(void *data, bNode *node, bNodeStack ** ShaderCallData *scd= (ShaderCallData*)data; NodeTexMusgrave *tex= (NodeTexMusgrave*)node->storage; bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, dimension, lacunarity, octaves, offset, gain; + float vec[3], fac, scale, dimension, lacunarity, detail, offset, gain; if(vecsock->link) nodestack_get_vec(vec, SOCK_VECTOR, in[0]); else copy_v3_v3(vec, scd->co); - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&dimension, SOCK_FLOAT, in[2]); - nodestack_get_vec(&lacunarity, SOCK_FLOAT, in[3]); - nodestack_get_vec(&octaves, SOCK_FLOAT, in[4]); + nodestack_get_vec(&scale, SOCK_FLOAT, in[1]); + nodestack_get_vec(&detail, SOCK_FLOAT, in[2]); + nodestack_get_vec(&dimension, SOCK_FLOAT, in[3]); + nodestack_get_vec(&lacunarity, SOCK_FLOAT, in[4]); nodestack_get_vec(&offset, SOCK_FLOAT, in[5]); nodestack_get_vec(&gain, SOCK_FLOAT, in[6]); - out[0]->vec[0]= musgrave(tex->type, tex->basis, dimension, lacunarity, octaves, offset, 1.0f, gain, size, vec); + fac= musgrave(tex->musgrave_type, dimension, lacunarity, detail, offset, 1.0f, gain, scale, vec); + out[0]->vec[0]= fac; + out[0]->vec[1]= fac; + out[0]->vec[2]= fac; + out[1]->vec[0]= fac; } static int node_shader_gpu_tex_musgrave(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) 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 e8fb4737305..8cde640f8b2 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c @@ -30,26 +30,49 @@ #include "../node_shader_util.h" #include "node_shader_noise.h" -static float noise_texture_value(float vec[3]) +static float noise_texture(float scale, float detail, float distortion, float vec[3], float color[3]) { - float p[3]; + float p[3], pg[3], pb[3]; + int basis= SHD_NOISE_PERLIN; - mul_v3_v3fl(p, vec, 1e8f); - return cellnoise(p); -} + mul_v3_v3fl(p, vec, scale); -static void noise_texture_color(float rgb[3], float vec[3]) -{ - float p[3]; + if(distortion != 0.0f) { + float r[3], p_offset[3], p_noffset[3]; + float offset[3] = {13.5f, 13.5f, 13.5f}; + + add_v3_v3v3(p_offset, p, offset); + sub_v3_v3v3(p_noffset, p, offset); + + r[0] = noise_basis(p_offset, basis) * distortion; + r[1] = noise_basis(p, basis) * distortion; + r[2] = noise_basis(p_noffset, basis) * distortion; + + add_v3_v3(p, r); + } - mul_v3_v3fl(p, vec, 1e8f); - cellnoise_color(rgb, p); + pg[0]= p[1]; + pg[1]= p[0]; + pg[2]= p[2]; + + pb[0]= p[1]; + pb[1]= p[2]; + pb[2]= p[0]; + + color[0]= noise_turbulence(p, basis, detail, 0); + color[1]= noise_turbulence(pg, basis, detail, 0); + color[2]= noise_turbulence(pb, basis, detail, 0); + + return color[0]; } /* **************** NOISE ******************** */ static bNodeSocketTemplate sh_node_tex_noise_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, + { SOCK_FLOAT, 1, "Distortion", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, { -1, 0, "" } }; @@ -72,15 +95,18 @@ static void node_shader_exec_tex_noise(void *data, bNode *node, bNodeStack **in, { ShaderCallData *scd= (ShaderCallData*)data; bNodeSocket *vecsock = node->inputs.first; - float vec[3]; + float vec[3], scale, detail, distortion; if(vecsock->link) nodestack_get_vec(vec, SOCK_VECTOR, in[0]); else copy_v3_v3(vec, scd->co); - noise_texture_color(out[0]->vec, vec); - out[1]->vec[0]= noise_texture_value(vec); + nodestack_get_vec(&scale, SOCK_FLOAT, in[1]); + nodestack_get_vec(&detail, SOCK_FLOAT, in[2]); + nodestack_get_vec(&distortion, SOCK_FLOAT, in[3]); + + out[1]->vec[0]= noise_texture(scale, detail, distortion, vec, out[0]->vec); } static int node_shader_gpu_tex_noise(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) @@ -103,7 +129,7 @@ void register_node_type_sh_tex_noise(ListBase *lb) node_type_socket_templates(&ntype, sh_node_tex_noise_in, sh_node_tex_noise_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_noise); - node_type_storage(&ntype, "", NULL, NULL); + node_type_storage(&ntype, "NodeTexNoise", node_free_standard_storage, node_copy_standard_storage); node_type_exec(&ntype, node_shader_exec_tex_noise); node_type_gpu(&ntype, node_shader_gpu_tex_noise); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c b/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c deleted file mode 100644 index 3eb315052a9..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_stucci.c +++ /dev/null @@ -1,123 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" -#include "node_shader_noise.h" - -static float stucci(int type, int basis, int hard, float turbulence, float size, float vec[3]) -{ - float p[3], b2, ofs, r; - - mul_v3_v3fl(p, vec, 1.0f/size); - b2 = noise_basis_hard(p, basis, hard); - ofs = turbulence/200.0f; - - if(type != SHD_STUCCI_PLASTIC) - ofs *= b2*b2; - - p[2] += ofs; - r = noise_basis_hard(p, basis, hard); - - if(type == SHD_STUCCI_WALL_OUT) - r = 1.0f - r; - - return MAX2(r, 0.0f); -} - -/* **************** STUCCI ******************** */ - -static bNodeSocketTemplate sh_node_tex_stucci_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Turbulence", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_stucci_out[]= { - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_stucci(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexStucci *tex = MEM_callocN(sizeof(NodeTexStucci), "NodeTexStucci"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->type = SHD_STUCCI_PLASTIC; - tex->basis = SHD_NOISE_PERLIN; - tex->hard = 0; - - node->storage = tex; -} - -static void node_shader_exec_tex_stucci(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexStucci *tex= (NodeTexStucci*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, turbulence; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); - - out[0]->vec[0]= stucci(tex->type, tex->basis, tex->hard, turbulence, size, vec); -} - -static int node_shader_gpu_tex_stucci(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_stucci", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_stucci(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_STUCCI, "Stucci Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_stucci_in, sh_node_tex_stucci_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_stucci); - node_type_storage(&ntype, "NodeTexStucci", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_stucci); - node_type_gpu(&ntype, node_shader_gpu_tex_stucci); - - nodeRegisterType(lb, &ntype); -}; - 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 ee8838ca1b3..4045a25de88 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c @@ -30,58 +30,25 @@ #include "../node_shader_util.h" #include "node_shader_noise.h" -static float voronoi_tex(int distance_metric, int coloring, - float weight1, float weight2, float weight3, float weight4, - float exponent, float intensity, float size, float vec[3], float color[3]) +static float voronoi_tex(int coloring, float scale, float vec[3], float color[3]) { - float aw1 = fabsf(weight1); - float aw2 = fabsf(weight2); - float aw3 = fabsf(weight3); - float aw4 = fabsf(weight4); - float sc = (aw1 + aw2 + aw3 + aw4); float da[4]; float pa[4][3]; float fac; float p[3]; - if(sc != 0.0f) - sc = intensity/sc; - /* compute distance and point coordinate of 4 nearest neighbours */ - mul_v3_v3fl(p, vec, 1.0f/size); - voronoi_generic(p, distance_metric, exponent, da, pa); - - /* Scalar output */ - fac = sc * fabsf(weight1*da[0] + weight2*da[1] + weight3*da[2] + weight4*da[3]); + mul_v3_v3fl(p, vec, scale); + voronoi_generic(p, SHD_VORONOI_DISTANCE_SQUARED, 1.0f, da, pa); - /* colored output */ + /* output */ if(coloring == SHD_VORONOI_INTENSITY) { + fac = fabsf(da[0]); color[0]= color[1]= color[2]= fac; } else { - float rgb1[3], rgb2[3], rgb3[3], rgb4[3]; - - cellnoise_color(rgb1, pa[0]); - cellnoise_color(rgb2, pa[1]); - cellnoise_color(rgb3, pa[2]); - cellnoise_color(rgb4, pa[3]); - - mul_v3_v3fl(color, rgb1, aw1); - madd_v3_v3fl(color, rgb2, aw2); - madd_v3_v3fl(color, rgb3, aw3); - madd_v3_v3fl(color, rgb4, aw4); - - if(coloring != SHD_VORONOI_POSITION) { - float t1 = MIN2((da[1] - da[0])*10.0f, 1.0f); - - if(coloring == SHD_VORONOI_POSITION_OUTLINE_INTENSITY) - mul_v3_fl(color, t1*fac); - else if(coloring == SHD_VORONOI_POSITION_OUTLINE) - mul_v3_fl(color, t1*sc); - } - else { - mul_v3_fl(color, sc); - } + cellnoise_color(color, pa[0]); + fac= (color[0] + color[1] + color[2])*(1.0f/3.0f); } return fac; @@ -91,12 +58,7 @@ static float voronoi_tex(int distance_metric, int coloring, static bNodeSocketTemplate sh_node_tex_voronoi_in[]= { { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Weight1", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, - { SOCK_FLOAT, 1, "Weight2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, - { SOCK_FLOAT, 1, "Weight3", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, - { SOCK_FLOAT, 1, "Weight4", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, - { SOCK_FLOAT, 1, "Exponent", 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, { -1, 0, "" } }; @@ -111,7 +73,6 @@ static void node_shader_init_tex_voronoi(bNodeTree *UNUSED(ntree), bNode* node, NodeTexVoronoi *tex = MEM_callocN(sizeof(NodeTexVoronoi), "NodeTexVoronoi"); default_tex_mapping(&tex->base.tex_mapping); default_color_mapping(&tex->base.color_mapping); - tex->distance_metric = SHD_VORONOI_ACTUAL_DISTANCE; tex->coloring = SHD_VORONOI_INTENSITY; node->storage = tex; @@ -122,22 +83,16 @@ static void node_shader_exec_tex_voronoi(void *data, bNode *node, bNodeStack **i ShaderCallData *scd= (ShaderCallData*)data; NodeTexVoronoi *tex= (NodeTexVoronoi*)node->storage; bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, w1, w2, w3, w4, exponent; + float vec[3], scale; if(vecsock->link) nodestack_get_vec(vec, SOCK_VECTOR, in[0]); else copy_v3_v3(vec, scd->co); - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&w1, SOCK_FLOAT, in[2]); - nodestack_get_vec(&w2, SOCK_FLOAT, in[3]); - nodestack_get_vec(&w3, SOCK_FLOAT, in[4]); - nodestack_get_vec(&w4, SOCK_FLOAT, in[5]); - nodestack_get_vec(&exponent, SOCK_FLOAT, in[6]); + nodestack_get_vec(&scale, SOCK_FLOAT, in[1]); - out[1]->vec[0]= voronoi_tex(tex->distance_metric, tex->coloring, w1, w2, w3, w4, - exponent, 1.0f, size, vec, out[0]->vec); + out[1]->vec[0]= voronoi_tex(tex->coloring, scale, vec, out[0]->vec); } static int node_shader_gpu_tex_voronoi(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c new file mode 100644 index 00000000000..a911f615b79 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c @@ -0,0 +1,129 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" +#include "node_shader_noise.h" + +static float wave(float vec[3], float scale, int type, float distortion, float detail) +{ + float p[3], w, n; + + mul_v3_v3fl(p, vec, scale); + + if(type == SHD_WAVE_BANDS) + n= (p[0] + p[1] + p[2])*10.0f; + else /* if(type == SHD_WAVE_RINGS) */ + n= len_v3(p)*20.0f; + + w = noise_wave(SHD_WAVE_SINE, n); + + /* XXX size compare! */ + if(distortion != 0.0f) + w += distortion * noise_turbulence(p, SHD_NOISE_PERLIN, detail, 0); + + return w; +} + +/* **************** WAVE ******************** */ + +static bNodeSocketTemplate sh_node_tex_wave_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Distortion", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, + { SOCK_FLOAT, 1, "Detail Scale", 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_wave_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->wave_type = SHD_WAVE_BANDS; + + node->storage = tex; +} + +static void node_shader_exec_tex_wave(void *data, bNode *node, bNodeStack **in, bNodeStack **out) +{ + ShaderCallData *scd= (ShaderCallData*)data; + NodeTexWave *tex= (NodeTexWave*)node->storage; + bNodeSocket *vecsock = node->inputs.first; + float vec[3], scale, detail, distortion, fac; + + if(vecsock->link) + nodestack_get_vec(vec, SOCK_VECTOR, in[0]); + else + copy_v3_v3(vec, scd->co); + + nodestack_get_vec(&scale, SOCK_FLOAT, in[1]); + nodestack_get_vec(&detail, SOCK_FLOAT, in[1]); + nodestack_get_vec(&distortion, SOCK_FLOAT, in[2]); + + fac= wave(vec, scale, tex->wave_type, distortion, detail); + out[0]->vec[0]= fac; + out[0]->vec[1]= fac; + out[0]->vec[2]= fac; + out[1]->vec[0]= fac; +} + +static int node_shader_gpu_tex_wave(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_wave", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_wave(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_WAVE, "Wave Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_wave_in, sh_node_tex_wave_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_wave); + node_type_storage(&ntype, "NodeTexWave", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, node_shader_exec_tex_wave); + node_type_gpu(&ntype, node_shader_gpu_tex_wave); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c b/source/blender/nodes/shader/nodes/node_shader_tex_wood.c deleted file mode 100644 index f1beb8e5d7d..00000000000 --- a/source/blender/nodes/shader/nodes/node_shader_tex_wood.c +++ /dev/null @@ -1,130 +0,0 @@ -/** - * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ - * - * ***** 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" -#include "node_shader_noise.h" - -static float wood(float p[3], float size, int type, int wave, int basis, unsigned int hard, float turb) -{ - float x = p[0]; - float y = p[1]; - float z = p[2]; - - if(type == SHD_WOOD_BANDS) { - return noise_wave(wave, (x + y + z)*10.0f); - } - else if(type == SHD_WOOD_RINGS) { - return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f); - } - else if (type == SHD_WOOD_BAND_NOISE) { - float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; - float wi = turb*noise_basis_hard(psize, basis, hard); - return noise_wave(wave, (x + y + z)*10.0f + wi); - } - else if (type == SHD_WOOD_RING_NOISE) { - float psize[3] = {p[0]/size, p[1]/size, p[2]/size}; - float wi = turb*noise_basis_hard(psize, basis, hard); - return noise_wave(wave, sqrt(x*x + y*y + z*z)*20.0f + wi); - } - - return 0.0f; -} - -/* **************** WOOD ******************** */ - -static bNodeSocketTemplate sh_node_tex_wood_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, - { SOCK_FLOAT, 1, "Size", 0.25f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { SOCK_FLOAT, 1, "Turbulence", 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, - { -1, 0, "" } -}; - -static bNodeSocketTemplate sh_node_tex_wood_out[]= { - { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { -1, 0, "" } -}; - -static void node_shader_init_tex_wood(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) -{ - NodeTexWood *tex = MEM_callocN(sizeof(NodeTexWood), "NodeTexWood"); - default_tex_mapping(&tex->base.tex_mapping); - default_color_mapping(&tex->base.color_mapping); - tex->type = SHD_WOOD_BANDS; - tex->wave = SHD_WAVE_SINE; - tex->basis = SHD_NOISE_PERLIN; - tex->hard = 0; - - node->storage = tex; -} - -static void node_shader_exec_tex_wood(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexWood *tex= (NodeTexWood*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3], size, turbulence; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - nodestack_get_vec(&size, SOCK_FLOAT, in[1]); - nodestack_get_vec(&turbulence, SOCK_FLOAT, in[2]); - - out[0]->vec[0]= wood(vec, size, tex->type, tex->wave, tex->basis, tex->hard, turbulence); -} - -static int node_shader_gpu_tex_wood(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_wood", in, out); -} - -/* node type definition */ -void register_node_type_sh_tex_wood(ListBase *lb) -{ - static bNodeType ntype; - - node_type_base(&ntype, SH_NODE_TEX_WOOD, "Wood Texture", NODE_CLASS_TEXTURE, 0); - node_type_compatibility(&ntype, NODE_NEW_SHADING); - node_type_socket_templates(&ntype, sh_node_tex_wood_in, sh_node_tex_wood_out); - node_type_size(&ntype, 150, 60, 200); - node_type_init(&ntype, node_shader_init_tex_wood); - node_type_storage(&ntype, "NodeTexWood", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_wood); - node_type_gpu(&ntype, node_shader_gpu_tex_wood); - - nodeRegisterType(lb, &ntype); -}; - -- cgit v1.2.3 From 69ad40f9ea81ddf5cd0d83dc21cc7f66a8008765 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Nov 2011 17:07:54 +0000 Subject: Revert fix for #29146, needs deeper changes to solve this fully. --- source/blender/blenkernel/intern/depsgraph.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 79930fdd8bf..7f099c03d09 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -592,7 +592,10 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O if(part->ren_as == PART_DRAW_OB && part->dup_ob) { node2 = dag_get_node(dag, part->dup_ob); - dag_add_relation(dag, node2, node, DAG_RL_OB_OB, "Particle Object Visualisation"); + /* note that this relation actually runs in the wrong direction, the problem + is that dupli system all have this (due to parenting), and the render + engine instancing assumes particular ordering of objects in list */ + dag_add_relation(dag, node, node2, DAG_RL_OB_OB, "Particle Object Visualisation"); if(part->dup_ob->type == OB_MBALL) dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA, "Particle Object Visualisation"); } -- cgit v1.2.3 From 448731834839bbddee02558080dd9a5e586f6f21 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Nov 2011 17:30:52 +0000 Subject: Nodes: add socket option to hide the default value in the UI, to be used for sockets that get their default value if no node is connected from elsewhere, e.g. a texture coordinate. --- source/blender/blenkernel/BKE_node.h | 1 + source/blender/editors/space_node/node_draw.c | 5 +++-- source/blender/nodes/intern/node_socket.c | 2 ++ source/blender/nodes/shader/nodes/node_shader_texture.c | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 278e57125c5..6080981dc32 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -83,6 +83,7 @@ typedef struct bNodeSocketTemplate { float val1, val2, val3, val4; /* default alloc value for inputs */ float min, max; PropertySubType subtype; + int flag; /* after this line is used internal only */ struct bNodeSocket *sock; /* used to hold verified socket */ diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index c2a2f319c28..a932f1b10d9 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -108,7 +108,8 @@ void ED_node_changed_update(ID *id, bNode *node) WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, id); } else if(treetype==NTREE_COMPOSIT) { - nodeUpdate(edittree, node); + 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); @@ -691,7 +692,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE); - if (sock->link) { + if (sock->link || (sock->flag & SOCK_HIDE_VALUE)) { uiDefBut(node->block, LABEL, 0, sock->name, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, NODE_DY, NULL, 0, 0, 0, 0, ""); } diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index 4a851a3acac..9381eff30dd 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -305,6 +305,7 @@ struct bNodeSocket *node_add_input_from_template(struct bNodeTree *ntree, struct default: sock = nodeAddSocket(ntree, node, SOCK_IN, stemp->name, stemp->type); } + sock->flag |= stemp->flag; return sock; } @@ -351,6 +352,7 @@ static bNodeSocket *verify_socket_template(bNodeTree *ntree, bNode *node, int in sock->type= stemp->type; /* in future, read this from tydefs! */ if(stemp->limit==0) sock->limit= 0xFFF; else sock->limit= stemp->limit; + sock->flag |= stemp->flag; /* Copy the property range and subtype parameters in case the template changed. * NOT copying the actual value here, only button behavior changes! diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c index 42460e141e2..dbf9fdbdb7e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_texture.c +++ b/source/blender/nodes/shader/nodes/node_shader_texture.c @@ -36,7 +36,7 @@ /* **************** TEXTURE ******************** */ static bNodeSocketTemplate sh_node_texture_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, /* no limit */ + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, /* no limit */ { -1, 0, "" } }; static bNodeSocketTemplate sh_node_texture_out[]= { -- cgit v1.2.3 From f3407e7d60d8000d71c66192d760bd5700345b21 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Nov 2011 17:35:20 +0000 Subject: Textures/Shaders: extend TexMapping to include projection options, and add a ColorMapping struct for color manipulation of textures. These will be the standard built-in texture node options for manipulating the incoming texture coordinate and outgoing color. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_texture.h | 7 +- source/blender/blenkernel/intern/texture.c | 94 +++++++++-- source/blender/blenloader/intern/readfile.c | 25 ++- source/blender/editors/space_node/drawnode.c | 27 +++- source/blender/makesdna/DNA_texture_types.h | 22 ++- source/blender/makesrna/intern/rna_nodetree.c | 55 +------ source/blender/makesrna/intern/rna_texture.c | 176 +++++++++++++++++---- .../composite/nodes/node_composite_mapValue.c | 2 +- .../nodes/shader/nodes/node_shader_mapping.c | 2 +- 10 files changed, 295 insertions(+), 117 deletions(-) diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 7033a2e0cce..ac56cd02eb0 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -42,7 +42,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 260 -#define BLENDER_SUBVERSION 1 +#define BLENDER_SUBVERSION 2 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h index de72428b3d7..508fef8d9a4 100644 --- a/source/blender/blenkernel/BKE_texture.h +++ b/source/blender/blenkernel/BKE_texture.h @@ -103,9 +103,12 @@ void set_current_particle_texture(struct ParticleSettings *part, struct Tex *tex int has_current_material_texture(struct Material *ma); -struct TexMapping *add_mapping(void); -void init_mapping(struct TexMapping *texmap); +struct TexMapping *add_tex_mapping(void); +void default_tex_mapping(struct TexMapping *texmap); +void init_tex_mapping(struct TexMapping *texmap); +struct ColorMapping *add_color_mapping(void); +void default_color_mapping(struct ColorMapping *colormap); void BKE_free_envmapdata(struct EnvMap *env); void BKE_free_envmap(struct EnvMap *env); diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 377eeef117e..c80b2880d12 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -202,33 +202,95 @@ void free_plugin_tex(PluginTex *pit) /* ****************** Mapping ******************* */ -TexMapping *add_mapping(void) +TexMapping *add_tex_mapping(void) { - TexMapping *texmap= MEM_callocN(sizeof(TexMapping), "Tex map"); + TexMapping *texmap= MEM_callocN(sizeof(TexMapping), "TexMapping"); + default_tex_mapping(texmap); + + return texmap; +} + +void default_tex_mapping(TexMapping *texmap) +{ + memset(texmap, 0, sizeof(TexMapping)); + texmap->size[0]= texmap->size[1]= texmap->size[2]= 1.0f; texmap->max[0]= texmap->max[1]= texmap->max[2]= 1.0f; unit_m4(texmap->mat); - - return texmap; + + texmap->projx= PROJ_X; + texmap->projy= PROJ_Y; + texmap->projz= PROJ_Z; + texmap->mapping= MTEX_FLAT; } -void init_mapping(TexMapping *texmap) +void init_tex_mapping(TexMapping *texmap) { - float eul[3], smat[3][3], rmat[3][3], mat[3][3]; - - size_to_mat3( smat,texmap->size); - - eul[0]= DEG2RADF(texmap->rot[0]); - eul[1]= DEG2RADF(texmap->rot[1]); - eul[2]= DEG2RADF(texmap->rot[2]); - eul_to_mat3( rmat,eul); + float eul[3], smat[3][3], rmat[3][3], mat[3][3], proj[3][3]; + + if(texmap->projx == PROJ_X && texmap->projy == PROJ_Y && texmap->projz == PROJ_Z && + is_zero_v3(texmap->loc) && is_zero_v3(texmap->rot) && is_one_v3(texmap->size)) { + unit_m4(texmap->mat); + + texmap->flag |= TEXMAP_UNIT_MATRIX; + } + else { + /* axis projection */ + zero_m3(proj); + + if(texmap->projx != PROJ_N) + proj[texmap->projx-1][0]= 1.0f; + if(texmap->projy != PROJ_N) + proj[texmap->projy-1][1]= 1.0f; + if(texmap->projz != PROJ_N) + proj[texmap->projz-1][2]= 1.0f; + + /* scale */ + size_to_mat3(smat, texmap->size); + + /* rotation */ + eul[0]= DEG2RADF(texmap->rot[0]); + eul[1]= DEG2RADF(texmap->rot[1]); + eul[2]= DEG2RADF(texmap->rot[2]); + eul_to_mat3( rmat,eul); + + /* compose it all */ + mul_m3_m3m3(mat, rmat, smat); + mul_m3_m3m3(mat, proj, mat); + + /* translation */ + copy_m4_m3(texmap->mat, mat); + copy_v3_v3(texmap->mat[3], texmap->loc); + + texmap->flag &= ~TEXMAP_UNIT_MATRIX; + } +} + +ColorMapping *add_color_mapping(void) +{ + ColorMapping *colormap= MEM_callocN(sizeof(ColorMapping), "ColorMapping"); - mul_m3_m3m3(mat, rmat, smat); + default_color_mapping(colormap); - copy_m4_m3(texmap->mat, mat); - copy_v3_v3(texmap->mat[3], texmap->loc); + return colormap; +} + +void default_color_mapping(ColorMapping *colormap) +{ + memset(colormap, 0, sizeof(ColorMapping)); + + init_colorband(&colormap->coba, 1); + + colormap->bright= 1.0; + colormap->contrast= 1.0; + colormap->saturation= 1.0; + colormap->blend_color[0]= 0.8f; + colormap->blend_color[1]= 0.8f; + colormap->blend_color[2]= 0.8f; + colormap->blend_type= MA_RAMP_BLEND; + colormap->blend_factor= 0.0f; } /* ****************** COLORBAND ******************* */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index ba1d333f44f..96fbe392922 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5991,7 +5991,7 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID if(id->flag & LIB_FAKEUSER) id->us= 1; else id->us= 0; id->icon_id = 0; - id->flag &= ~LIB_ID_RECALC; + id->flag &= ~(LIB_ID_RECALC|LIB_ID_RECALC_DATA); /* this case cannot be direct_linked: it's just the ID part */ if(bhead->code==ID_ID) { @@ -7235,6 +7235,22 @@ static void do_versions_nodetree_image_default_alpha_output(bNodeTree *ntree) } } +static void do_version_ntree_tex_mapping_260(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree) +{ + bNode *node; + + for(node=ntree->nodes.first; node; node=node->next) { + if(node->type == SH_NODE_MAPPING) { + TexMapping *tex_mapping; + + tex_mapping= node->storage; + tex_mapping->projx= PROJ_X; + tex_mapping->projy= PROJ_Y; + tex_mapping->projz= PROJ_Z; + } + } +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -12320,6 +12336,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } + if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 2)) { + bNodeTreeType *ntreetype= ntreeGetType(NTREE_SHADER); + + if(ntreetype && ntreetype->foreach_nodetree) + ntreetype->foreach_nodetree(main, NULL, do_version_ntree_tex_mapping_260); + } + /* put compatibility code here until next subversion bump */ { { diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index b4d89e1365d..648027b9c58 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -95,6 +95,14 @@ static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v) } } +static void node_socket_button_label(const bContext *UNUSED(C), uiBlock *block, + bNodeTree *UNUSED(ntree), bNode *UNUSED(node), bNodeSocket *sock, + const char *UNUSED(name), int x, int y, int width) +{ + uiDefBut(block, LABEL, 0, sock->name, x, y, width, NODE_DY, NULL, 0, 0, 0, 0, ""); +} + + static void node_socket_button_default(const bContext *C, uiBlock *block, bNodeTree *ntree, bNode *node, bNodeSocket *sock, const char *name, int x, int y, int width) @@ -938,28 +946,28 @@ static void node_shader_buts_material(uiLayout *layout, bContext *C, PointerRNA static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) { + PointerRNA mappingptr = RNA_pointer_get(ptr, "mapping"); uiLayout *row; uiItemL(layout, "Location:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "location", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "location", 0, "", ICON_NONE); uiItemL(layout, "Rotation:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "rotation", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "rotation", 0, "", ICON_NONE); uiItemL(layout, "Scale:", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "scale", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "scale", 0, "", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "use_min", 0, "Min", ICON_NONE); - uiItemR(row, ptr, "min", 0, "", ICON_NONE); + uiItemR(row, &mappingptr, "use_min", 0, "Min", ICON_NONE); + uiItemR(row, &mappingptr, "min", 0, "", ICON_NONE); row= uiLayoutRow(layout, 1); - uiItemR(row, ptr, "use_max", 0, "Max", ICON_NONE); - uiItemR(row, ptr, "max", 0, "", ICON_NONE); - + uiItemR(row, &mappingptr, "use_max", 0, "Max", ICON_NONE); + uiItemR(row, &mappingptr, "max", 0, "", ICON_NONE); } static void node_shader_buts_vect_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -2089,6 +2097,9 @@ void ED_init_node_butfuncs(void) case SOCK_RGBA: stype->buttonfunc = node_socket_button_color; break; + case SOCK_SHADER: + stype->buttonfunc = node_socket_button_label; + break; default: stype->buttonfunc = NULL; } diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index 4cf31edb891..1ecca5a0b2a 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -267,11 +267,13 @@ typedef struct Tex { } Tex; -/* used for mapping node. note: rot is in degrees */ +/* used for mapping and texture nodes. note: rot is in degrees */ typedef struct TexMapping { float loc[3], rot[3], size[3]; int flag; + char projx, projy, projz, mapping; + int pad; float mat[4][4]; float min[3], max[3]; @@ -279,10 +281,24 @@ typedef struct TexMapping { } TexMapping; +typedef struct ColorMapping { + struct ColorBand coba; + + float bright, contrast, saturation; + int flag; + + float blend_color[3]; + float blend_factor; + int blend_type, pad[3]; +} ColorMapping; + /* texmap->flag */ -#define TEXMAP_CLIP_MIN 1 -#define TEXMAP_CLIP_MAX 2 +#define TEXMAP_CLIP_MIN 1 +#define TEXMAP_CLIP_MAX 2 +#define TEXMAP_UNIT_MATRIX 4 +/* colormap->flag */ +#define COLORMAP_USE_RAMP 1 /* **************** TEX ********************* */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index f024ad3addd..7e74c490e5c 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -425,15 +425,6 @@ static void rna_NodeSocketVector_range(PointerRNA *ptr, float *min, float *max) *max = val->max; } -static void rna_Node_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - bNode *node= (bNode*)ptr->data; - - init_mapping((TexMapping *)node->storage); - - rna_Node_update(bmain, scene, ptr); -} - static void rna_Node_image_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; @@ -1077,48 +1068,12 @@ static void def_sh_material(StructRNA *srna) static void def_sh_mapping(StructRNA *srna) { PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "TexMapping", "storage"); - prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); - RNA_def_property_float_sdna(prop, NULL, "loc"); - RNA_def_property_ui_text(prop, "Location", "Location offset for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ - RNA_def_property_float_sdna(prop, NULL, "rot"); - RNA_def_property_ui_text(prop, "Rotation", "Rotation offset for the input coordinate"); - RNA_def_property_ui_range(prop, -360.f, 360.f, 1.f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "size"); - RNA_def_property_ui_text(prop, "Scale", "Scale adjustment for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop = RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); - RNA_def_property_ui_text(prop, "Clamp Minimum", "Clamp the output coordinate to a minimum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "min"); - RNA_def_property_ui_text(prop, "Minimum", "Minimum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop = RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); - RNA_def_property_ui_text(prop, "Clamp Maximum", "Clamp the output coordinate to a maximum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "max"); - RNA_def_property_ui_text(prop, "Maximum", "Maximum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + prop= RNA_def_property(srna, "mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "storage"); + RNA_def_property_struct_type(prop, "TexMapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Mapping", "Texture coordinate mapping settings"); } static void def_sh_geometry(StructRNA *srna) diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index c420ecefdae..aac4da9e6f6 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -75,6 +75,25 @@ EnumPropertyItem texture_type_items[] = { {TEX_WOOD, "WOOD", ICON_TEXTURE, "Wood", "Procedural - Wave generated bands or rings, with optional noise"}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem blend_type_items[] = { + {MTEX_BLEND, "MIX", 0, "Mix", ""}, + {MTEX_ADD, "ADD", 0, "Add", ""}, + {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, + {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, + {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, + {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, + {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, + {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, + {MTEX_DARK, "DARKEN", 0, "Darken", ""}, + {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, + {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, + {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, + {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, + {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, + {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, + {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "MEM_guardedalloc.h" @@ -131,13 +150,33 @@ static StructRNA *rna_Texture_refine(struct PointerRNA *ptr) } } -static void rna_Texture_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) +static void rna_Texture_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { - Tex *tex= ptr->id.data; + ID *id= ptr->id.data; - DAG_id_tag_update(&tex->id, 0); - WM_main_add_notifier(NC_TEXTURE, tex); - WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + if(GS(id->name) == ID_TE) { + Tex *tex= ptr->id.data; + + DAG_id_tag_update(&tex->id, 0); + WM_main_add_notifier(NC_TEXTURE, tex); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + } + else if(GS(id->name) == ID_NT) { + bNodeTree *ntree= ptr->id.data; + ED_node_generic_update(bmain, ntree, NULL); + } +} + +static void rna_Texture_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + TexMapping *texmap = ptr->data; + init_tex_mapping(texmap); + rna_Texture_update(bmain, scene, ptr); +} + +static void rna_Color_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + /* nothing to do */ } static void rna_Texture_voxeldata_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -400,71 +439,139 @@ static char *rna_VoxelData_path(PointerRNA *UNUSED(ptr)) static void rna_def_texmapping(BlenderRNA *brna) { + static EnumPropertyItem prop_mapping_items[] = { + {MTEX_FLAT, "FLAT", 0, "Flat", "Map X and Y coordinates directly"}, + {MTEX_CUBE, "CUBE", 0, "Cube", "Map using the normal vector"}, + {MTEX_TUBE, "TUBE", 0, "Tube", "Map with Z as central axis"}, + {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Map with Z as central axis"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_xyz_mapping_items[] = { + {0, "NONE", 0, "None", ""}, + {1, "X", 0, "X", ""}, + {2, "Y", 0, "Y", ""}, + {3, "Z", 0, "Z", ""}, + {0, NULL, 0, NULL, NULL}}; + StructRNA *srna; PropertyRNA *prop; srna= RNA_def_struct(brna, "TexMapping", NULL); - RNA_def_struct_ui_text(srna, "Texture Mapping", "Mapping settings"); + RNA_def_struct_ui_text(srna, "Texture Mapping", "Texture coordinate mapping settings"); prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "loc"); RNA_def_property_ui_text(prop, "Location", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_EULER); + prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ RNA_def_property_float_sdna(prop, NULL, "rot"); RNA_def_property_ui_text(prop, "Rotation", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "size"); RNA_def_property_ui_text(prop, "Scale", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "min"); RNA_def_property_ui_text(prop, "Minimum", "Minimum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "max"); RNA_def_property_ui_text(prop, "Maximum", "Maximum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); RNA_def_property_ui_text(prop, "Has Minimum", "Whether to use minimum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); RNA_def_property_ui_text(prop, "Has Maximum", "Whether to use maximum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_x", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projx"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "X Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_y", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projy"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Y Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_z", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projz"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Z Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_mapping_items); + RNA_def_property_ui_text(prop, "Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); } -static void rna_def_mtex(BlenderRNA *brna) +static void rna_def_colormapping(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ColorMapping", NULL); + RNA_def_struct_ui_text(srna, "Color Mapping", "Color mapping settings"); - static EnumPropertyItem prop_blend_type_items[] = { - {MTEX_BLEND, "MIX", 0, "Mix", ""}, - {MTEX_ADD, "ADD", 0, "Add", ""}, - {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, - {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, - {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, - {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, - {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, - {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, - {MTEX_DARK, "DARKEN", 0, "Darken", ""}, - {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, - {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, - {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, - {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, - {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, - {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, - {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, - {0, NULL, 0, NULL, NULL}}; + prop= RNA_def_property(srna, "use_color_ramp", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", COLORMAP_USE_RAMP); + RNA_def_property_ui_text(prop, "Use Color Ramp", "Toggle color ramp operations"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "color_ramp", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_pointer_sdna(prop, NULL, "coba"); + RNA_def_property_struct_type(prop, "ColorRamp"); + RNA_def_property_ui_text(prop, "Color Ramp", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "brightness", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "bright"); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Brightness", "Adjust the brightness of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.01, 5); + RNA_def_property_ui_text(prop, "Contrast", "Adjust the contrast of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Saturation", "Adjust the saturation of colors in the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, blend_type_items); + RNA_def_property_ui_text(prop, "Blend Type", "Mode used to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_color", PROP_FLOAT, PROP_COLOR); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Color", "Blend color to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Blend Factor", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); +} + +static void rna_def_mtex(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; static EnumPropertyItem output_node_items[] = { {0, "DUMMY", 0, "Dummy", ""}, @@ -512,7 +619,7 @@ static void rna_def_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "blendtype"); - RNA_def_property_enum_items(prop, prop_blend_type_items); + RNA_def_property_enum_items(prop, blend_type_items); RNA_def_property_ui_text(prop, "Blend Type", "Mode used to apply the texture"); RNA_def_property_update(prop, 0, "rna_TextureSlot_update"); @@ -1866,6 +1973,7 @@ void RNA_def_texture(BlenderRNA *brna) rna_def_mtex(brna); rna_def_environment_map(brna); rna_def_texmapping(brna); + rna_def_colormapping(brna); } #endif diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.c b/source/blender/nodes/composite/nodes/node_composite_mapValue.c index 81e963d4790..6930fbf0664 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mapValue.c +++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.c @@ -79,7 +79,7 @@ static void node_composit_exec_map_value(void *UNUSED(data), bNode *node, bNodeS static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) { - node->storage= add_mapping(); + node->storage= add_tex_mapping(); } void register_node_type_cmp_map_value(ListBase *lb) diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c index 862c52187dc..35007724037 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.c +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -69,7 +69,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)) { - node->storage= add_mapping(); + node->storage= add_tex_mapping(); } static int gpu_shader_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) -- cgit v1.2.3 From ae06ebcd95a63f44501b4ee30e120162f53e940a Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 7 Nov 2011 18:14:50 +0000 Subject: Hopefully compilation with MinGW will work again. Tested with official MinGW and SCons, not sure how ti check it when using CMake. --- extern/libmv/CMakeLists.txt | 7 +- extern/libmv/SConscript | 4 +- extern/libmv/bundle.sh | 15 +- .../libmv/libmv/multiview/euclidean_resection.cc | 2 + extern/libmv/patches/mingw.patch | 158 +++++++++++++++++++++ extern/libmv/third_party/glog/src/config.h | 2 + extern/libmv/third_party/glog/src/utilities.h | 4 +- .../third_party/glog/src/windows/glog/logging.h | 18 ++- extern/libmv/third_party/glog/src/windows/port.h | 37 +++-- 9 files changed, 233 insertions(+), 14 deletions(-) diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt index 41fc39c97ac..7ab01598cef 100644 --- a/extern/libmv/CMakeLists.txt +++ b/extern/libmv/CMakeLists.txt @@ -159,9 +159,14 @@ IF(WIN32) list(APPEND INC ./third_party/glog/src/windows - ./third_party/msinttypes ) + IF(NOT MINGW) + list(APPEND INC + ./third_party/msinttypes + ) + ENDIF(NOT MINGW) + IF(MSVC) set(MSVC_OFLAGS O1 O2 Ox) foreach(FLAG ) diff --git a/extern/libmv/SConscript b/extern/libmv/SConscript index 1ffc6233c1d..60705e913f7 100644 --- a/extern/libmv/SConscript +++ b/extern/libmv/SConscript @@ -30,7 +30,9 @@ incs += ' ' + env['BF_PNG_INC'] incs += ' ' + env['BF_ZLIB_INC'] if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): - incs += ' ./third_party/glog/src/windows ./third_party/glog/src/windows/glog ./third_party/msinttypes' + incs += ' ./third_party/glog/src/windows ./third_party/glog/src/windows/glog' + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): + incs += ' ./third_party/msinttypes' src += ['./third_party/glog/src/logging.cc', './third_party/glog/src/raw_logging.cc', './third_party/glog/src/utilities.cc', './third_party/glog/src/vlog_is_on.cc'] src += ['./third_party/glog/src/windows/port.cc'] diff --git a/extern/libmv/bundle.sh b/extern/libmv/bundle.sh index c8df8ae7341..690f78df387 100755 --- a/extern/libmv/bundle.sh +++ b/extern/libmv/bundle.sh @@ -166,6 +166,16 @@ IF(WIN32) third_party/glog/src/windows/config.h ) + list(APPEND INC + ./third_party/glog/src/windows + ) + + IF(NOT MINGW) + list(APPEND INC + ./third_party/msinttypes + ) + ENDIF(MINGW) + list(APPEND INC ./third_party/glog/src/windows ./third_party/msinttypes @@ -219,7 +229,10 @@ incs += ' ' + env['BF_PNG_INC'] incs += ' ' + env['BF_ZLIB_INC'] if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): - incs += ' ./third_party/glog/src/windows ./third_party/glog/src/windows/glog ./third_party/msinttypes' + incs += ' ./third_party/glog/src/windows ./third_party/glog/src/windows/glog' + incs += ' ./third_party/glog/src/windows ./third_party/glog/src/windows/glog' + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): + incs += ' ./third_party/msinttypes' ${win_src} src += ['./third_party/glog/src/logging.cc', './third_party/glog/src/raw_logging.cc', './third_party/glog/src/utilities.cc', './third_party/glog/src/vlog_is_on.cc'] src += ['./third_party/glog/src/windows/port.cc'] diff --git a/extern/libmv/libmv/multiview/euclidean_resection.cc b/extern/libmv/libmv/multiview/euclidean_resection.cc index 6d918a1a8bc..92862515d7e 100644 --- a/extern/libmv/libmv/multiview/euclidean_resection.cc +++ b/extern/libmv/libmv/multiview/euclidean_resection.cc @@ -32,6 +32,8 @@ namespace libmv { namespace euclidean_resection { +typedef unsigned int uint; + bool EuclideanResection(const Mat2X &x_camera, const Mat3X &X_world, Mat3 *R, Vec3 *t, diff --git a/extern/libmv/patches/mingw.patch b/extern/libmv/patches/mingw.patch index 0b08a483bea..029e7d7f979 100644 --- a/extern/libmv/patches/mingw.patch +++ b/extern/libmv/patches/mingw.patch @@ -1,3 +1,16 @@ +diff --git a/src/libmv/multiview/euclidean_resection.cc b/src/libmv/multiview/euclidean_resection.cc +index 6d918a1..9286251 100644 +--- a/src/libmv/multiview/euclidean_resection.cc ++++ b/src/libmv/multiview/euclidean_resection.cc +@@ -32,6 +32,8 @@ + namespace libmv { + namespace euclidean_resection { + ++typedef unsigned int uint; ++ + bool EuclideanResection(const Mat2X &x_camera, + const Mat3X &X_world, + Mat3 *R, Vec3 *t, diff --git a/src/libmv/numeric/numeric.h b/src/libmv/numeric/numeric.h index f39d126..21e0f06 100644 --- a/src/libmv/numeric/numeric.h @@ -11,3 +24,148 @@ index f39d126..21e0f06 100644 inline long lround(double d) { return (long)(d>0 ? d+0.5 : ceil(d-0.5)); } +diff --git a/src/third_party/glog/src/config.h b/src/third_party/glog/src/config.h +index ed8d56e..06ed686 100644 +--- a/src/third_party/glog/src/config.h ++++ b/src/third_party/glog/src/config.h +@@ -4,6 +4,8 @@ + /* Namespace for Google classes */ + #ifdef __APPLE__ + #include "config_mac.h" ++#elif __MINGW32__ ++ #include "windows/config.h" + #elif __GNUC__ + #include "config_linux.h" + #elif _MSC_VER +diff --git a/src/third_party/glog/src/utilities.h b/src/third_party/glog/src/utilities.h +index ee54f94..c4ae256 100644 +--- a/src/third_party/glog/src/utilities.h ++++ b/src/third_party/glog/src/utilities.h +@@ -101,7 +101,9 @@ + // correctly when GetStackTrace() is called with max_depth == 0. + // Some code may do that. + +-#if defined(HAVE_LIB_UNWIND) ++#if __MINGW32__ ++# undef STACKTRACE_H ++#elif defined(HAVE_LIB_UNWIND) + # define STACKTRACE_H "stacktrace_libunwind-inl.h" + #elif !defined(NO_FRAME_POINTER) + # if defined(__i386__) && __GNUC__ >= 2 +diff --git a/src/third_party/glog/src/windows/glog/logging.h b/src/third_party/glog/src/windows/glog/logging.h +index 7a6df74..4257375 100755 +--- a/src/third_party/glog/src/windows/glog/logging.h ++++ b/src/third_party/glog/src/windows/glog/logging.h +@@ -59,7 +59,7 @@ + + // Annoying stuff for windows -- makes sure clients can import these functions + #ifndef GOOGLE_GLOG_DLL_DECL +-# if defined(_WIN32) && !defined(__CYGWIN__) ++# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) + # define GOOGLE_GLOG_DLL_DECL __declspec(dllimport) + # else + # define GOOGLE_GLOG_DLL_DECL +@@ -86,6 +86,15 @@ + #include + #endif + ++#ifdef __MINGW32__ ++# include ++# include ++# include // the normal place uint16_t is defined ++# include // the normal place u_int16_t is defined ++# include // a third place for uint16_t or u_int16_t ++# define _exit(x) exit(x) ++#endif ++ + namespace google { + + #if 0 // the C99 format +@@ -98,11 +107,16 @@ typedef int32_t int32; + typedef u_int32_t uint32; + typedef int64_t int64; + typedef u_int64_t uint64; +-#elif 1 // the windows (vc7) format ++#elif defined(_MSC_VER) + typedef __int32 int32; + typedef unsigned __int32 uint32; + typedef __int64 int64; + typedef unsigned __int64 uint64; ++#elif defined(__MINGW32__) ++typedef int32_t int32; ++typedef uint32_t uint32; ++typedef int64_t int64; ++typedef uint64_t uint64; + #else + #error Do not know how to define a 32-bit integer quantity on your system + #endif +diff --git a/src/third_party/glog/src/windows/port.h b/src/third_party/glog/src/windows/port.h +index d093bf5..d507812 100755 +--- a/src/third_party/glog/src/windows/port.h ++++ b/src/third_party/glog/src/windows/port.h +@@ -59,14 +59,16 @@ + * used by both C and C++ code, so we put all the C++ together. + */ + +-/* 4244: otherwise we get problems when substracting two size_t's to an int +- * 4251: it's complaining about a private struct I've chosen not to dllexport +- * 4355: we use this in a constructor, but we do it safely +- * 4715: for some reason VC++ stopped realizing you can't return after abort() +- * 4800: we know we're casting ints/char*'s to bools, and we're ok with that +- * 4996: Yes, we're ok using "unsafe" functions like fopen() and strerror() +- */ +-#pragma warning(disable:4244 4251 4355 4715 4800 4996) ++#if _MSC_VER ++ /* 4244: otherwise we get problems when substracting two size_t's to an int ++ * 4251: it's complaining about a private struct I've chosen not to dllexport ++ * 4355: we use this in a constructor, but we do it safely ++ * 4715: for some reason VC++ stopped realizing you can't return after abort() ++ * 4800: we know we're casting ints/char*'s to bools, and we're ok with that ++ * 4996: Yes, we're ok using "unsafe" functions like fopen() and strerror() ++ */ ++# pragma warning(disable:4244 4251 4355 4715 4800 4996) ++#endif + + /* file I/O */ + #define PATH_MAX 1024 +@@ -108,7 +110,9 @@ extern int snprintf(char *str, size_t size, + extern int safe_vsnprintf(char *str, size_t size, + const char *format, va_list ap); + #define vsnprintf(str, size, format, ap) safe_vsnprintf(str, size, format, ap) ++#if !defined(__MINGW32__) + #define va_copy(dst, src) (dst) = (src) ++#endif + + /* Windows doesn't support specifying the number of buckets as a + * hash_map constructor arg, so we leave this blank. +@@ -130,13 +134,30 @@ enum { PTHREAD_ONCE_INIT = 0 }; // important that this be 0! for SpinLock + #define pthread_equal(pthread_t_1, pthread_t_2) ((pthread_t_1)==(pthread_t_2)) + + inline struct tm* localtime_r(const time_t* timep, struct tm* result) { ++#if __MINGW32__ ++ struct tm *local_result; ++ local_result = localtime (timep); ++ ++ if (local_result == NULL || result == NULL) ++ return NULL; ++ ++ memcpy (result, local_result, sizeof (result)); ++ ++ return result; ++#else + localtime_s(result, timep); + return result; ++#endif + } + + inline char* strerror_r(int errnum, char* buf, size_t buflen) { ++#if __MINGW32__ ++ strncpy(buf, "Not implemented yet", buflen); ++ return buf; ++#else + strerror_s(buf, buflen, errnum); + return buf; ++#endif + } + + #ifndef __cplusplus diff --git a/extern/libmv/third_party/glog/src/config.h b/extern/libmv/third_party/glog/src/config.h index ed8d56e7799..06ed686f87c 100644 --- a/extern/libmv/third_party/glog/src/config.h +++ b/extern/libmv/third_party/glog/src/config.h @@ -4,6 +4,8 @@ /* Namespace for Google classes */ #ifdef __APPLE__ #include "config_mac.h" +#elif __MINGW32__ + #include "windows/config.h" #elif __GNUC__ #include "config_linux.h" #elif _MSC_VER diff --git a/extern/libmv/third_party/glog/src/utilities.h b/extern/libmv/third_party/glog/src/utilities.h index 2d4e99e595e..5c841a0b90b 100644 --- a/extern/libmv/third_party/glog/src/utilities.h +++ b/extern/libmv/third_party/glog/src/utilities.h @@ -101,7 +101,9 @@ // correctly when GetStackTrace() is called with max_depth == 0. // Some code may do that. -#if defined(HAVE_LIB_UNWIND) +#if __MINGW32__ +# undef STACKTRACE_H +#elif defined(HAVE_LIB_UNWIND) # define STACKTRACE_H "stacktrace_libunwind-inl.h" #elif !defined(NO_FRAME_POINTER) # if defined(__i386__) && __GNUC__ >= 2 diff --git a/extern/libmv/third_party/glog/src/windows/glog/logging.h b/extern/libmv/third_party/glog/src/windows/glog/logging.h index de51586f8e3..2f41681edbe 100644 --- a/extern/libmv/third_party/glog/src/windows/glog/logging.h +++ b/extern/libmv/third_party/glog/src/windows/glog/logging.h @@ -59,7 +59,7 @@ // Annoying stuff for windows -- makes sure clients can import these functions #ifndef GOOGLE_GLOG_DLL_DECL -# if defined(_WIN32) && !defined(__CYGWIN__) +# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) # define GOOGLE_GLOG_DLL_DECL __declspec(dllimport) # else # define GOOGLE_GLOG_DLL_DECL @@ -86,6 +86,15 @@ #include "third_party/gflags/gflags.h" #endif +#ifdef __MINGW32__ +# include +# include +# include // the normal place uint16_t is defined +# include // the normal place u_int16_t is defined +# include // a third place for uint16_t or u_int16_t +# define _exit(x) exit(x) +#endif + namespace google { #if 0 // the C99 format @@ -98,11 +107,16 @@ typedef int32_t int32; typedef u_int32_t uint32; typedef int64_t int64; typedef u_int64_t uint64; -#elif 1 // the windows (vc7) format +#elif defined(_MSC_VER) typedef __int32 int32; typedef unsigned __int32 uint32; typedef __int64 int64; typedef unsigned __int64 uint64; +#elif defined(__MINGW32__) +typedef int32_t int32; +typedef uint32_t uint32; +typedef int64_t int64; +typedef uint64_t uint64; #else #error Do not know how to define a 32-bit integer quantity on your system #endif diff --git a/extern/libmv/third_party/glog/src/windows/port.h b/extern/libmv/third_party/glog/src/windows/port.h index d093bf5d34c..d5078120009 100644 --- a/extern/libmv/third_party/glog/src/windows/port.h +++ b/extern/libmv/third_party/glog/src/windows/port.h @@ -59,14 +59,16 @@ * used by both C and C++ code, so we put all the C++ together. */ -/* 4244: otherwise we get problems when substracting two size_t's to an int - * 4251: it's complaining about a private struct I've chosen not to dllexport - * 4355: we use this in a constructor, but we do it safely - * 4715: for some reason VC++ stopped realizing you can't return after abort() - * 4800: we know we're casting ints/char*'s to bools, and we're ok with that - * 4996: Yes, we're ok using "unsafe" functions like fopen() and strerror() - */ -#pragma warning(disable:4244 4251 4355 4715 4800 4996) +#if _MSC_VER + /* 4244: otherwise we get problems when substracting two size_t's to an int + * 4251: it's complaining about a private struct I've chosen not to dllexport + * 4355: we use this in a constructor, but we do it safely + * 4715: for some reason VC++ stopped realizing you can't return after abort() + * 4800: we know we're casting ints/char*'s to bools, and we're ok with that + * 4996: Yes, we're ok using "unsafe" functions like fopen() and strerror() + */ +# pragma warning(disable:4244 4251 4355 4715 4800 4996) +#endif /* file I/O */ #define PATH_MAX 1024 @@ -108,7 +110,9 @@ extern int snprintf(char *str, size_t size, extern int safe_vsnprintf(char *str, size_t size, const char *format, va_list ap); #define vsnprintf(str, size, format, ap) safe_vsnprintf(str, size, format, ap) +#if !defined(__MINGW32__) #define va_copy(dst, src) (dst) = (src) +#endif /* Windows doesn't support specifying the number of buckets as a * hash_map constructor arg, so we leave this blank. @@ -130,13 +134,30 @@ enum { PTHREAD_ONCE_INIT = 0 }; // important that this be 0! for SpinLock #define pthread_equal(pthread_t_1, pthread_t_2) ((pthread_t_1)==(pthread_t_2)) inline struct tm* localtime_r(const time_t* timep, struct tm* result) { +#if __MINGW32__ + struct tm *local_result; + local_result = localtime (timep); + + if (local_result == NULL || result == NULL) + return NULL; + + memcpy (result, local_result, sizeof (result)); + + return result; +#else localtime_s(result, timep); return result; +#endif } inline char* strerror_r(int errnum, char* buf, size_t buflen) { +#if __MINGW32__ + strncpy(buf, "Not implemented yet", buflen); + return buf; +#else strerror_s(buf, buflen, errnum); return buf; +#endif } #ifndef __cplusplus -- cgit v1.2.3 From 6981e68c92266ada536f33eb50af493de2ef8ce7 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 7 Nov 2011 19:25:13 +0000 Subject: Fix [#29194] Spelling error (yes sir, it is a bugfix :P ). --- source/blender/makesrna/intern/rna_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index b1d4654f76b..ca325747d8e 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -76,7 +76,7 @@ EnumPropertyItem proportional_falloff_items[] ={ {PROP_ROOT, "ROOT", ICON_ROOTCURVE, "Root", "Root falloff"}, {PROP_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", "Sharp falloff"}, {PROP_LIN, "LINEAR", ICON_LINCURVE, "Linear", "Linear falloff"}, - {PROP_CONST, "CONSTANT", ICON_NOCURVE, "Constant", "Consant falloff"}, + {PROP_CONST, "CONSTANT", ICON_NOCURVE, "Constant", "Constant falloff"}, {PROP_RANDOM, "RANDOM", ICON_RNDCURVE, "Random", "Random falloff"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From be23090aae643f3c5a01ec47c601aa50a7174eb4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Nov 2011 22:14:48 +0000 Subject: Nodes: add foreach_nodeclass iterator over node classes, use for node add menu. --- source/blender/blenkernel/BKE_node.h | 2 + source/blender/editors/space_node/node_header.c | 48 +++++----------------- .../blender/nodes/composite/node_composite_tree.c | 15 +++++++ source/blender/nodes/shader/node_shader_tree.c | 20 +++++++++ source/blender/nodes/texture/node_texture_tree.c | 14 +++++++ 5 files changed, 61 insertions(+), 38 deletions(-) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 6080981dc32..b94fffab714 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -245,6 +245,7 @@ typedef struct bNodeType { struct bNodeTreeExec; typedef void (*bNodeTreeCallback)(void *calldata, struct ID *owner_id, struct bNodeTree *ntree); +typedef void (*bNodeClassCallback)(void *calldata, int nclass, const char *name); typedef struct bNodeTreeType { int type; /* type identifier */ @@ -256,6 +257,7 @@ typedef struct bNodeTreeType void (*free_cache)(struct bNodeTree *ntree); void (*free_node_cache)(struct bNodeTree *ntree, struct bNode *node); void (*foreach_nodetree)(struct Main *main, void *calldata, bNodeTreeCallback func); /* iteration over all node trees */ + void (*foreach_nodeclass)(struct Scene *scene, void *calldata, bNodeClassCallback func); /* iteration over all node classes */ /* calls allowing threaded composite */ void (*localize)(struct bNodeTree *localtree, struct bNodeTree *ntree); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 42b5dafa3e1..d752dd79a19 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -226,52 +226,24 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) } } +static void node_menu_add_foreach_cb(void *calldata, int nclass, const char *name) +{ + 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); if(!snode->nodetree) uiLayoutSetActive(layout, 0); - - if(snode->treetype==NTREE_SHADER) { - uiItemMenuF(layout, IFACE_("Input"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, IFACE_("Output"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - if(scene_use_new_shading_nodes(scene)) { - uiItemMenuF(layout, IFACE_("Shader"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_SHADER)); - uiItemMenuF(layout, IFACE_("Texture"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); - } - uiItemMenuF(layout, IFACE_("Color"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, IFACE_("Vector"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); - uiItemMenuF(layout, IFACE_("Convertor"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, IFACE_("Group"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - //uiItemMenuF(layout, IFACE_("Dynamic"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); - uiItemMenuF(layout, IFACE_("Layout"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT)); - } - else if(snode->treetype==NTREE_COMPOSIT) { - uiItemMenuF(layout, IFACE_("Input"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, IFACE_("Output"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - uiItemMenuF(layout, IFACE_("Color"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, IFACE_("Vector"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); - uiItemMenuF(layout, IFACE_("Filter"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_FILTER)); - uiItemMenuF(layout, IFACE_("Convertor"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, IFACE_("Matte"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE)); - uiItemMenuF(layout, IFACE_("Distort"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); - uiItemMenuF(layout, IFACE_("Group"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - uiItemMenuF(layout, IFACE_("Layout"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT)); - } - else if(snode->treetype==NTREE_TEXTURE) { - uiItemMenuF(layout, IFACE_("Input"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); - uiItemMenuF(layout, IFACE_("Output"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); - uiItemMenuF(layout, IFACE_("Color"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); - uiItemMenuF(layout, IFACE_("Patterns"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_PATTERN)); - uiItemMenuF(layout, IFACE_("Textures"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); - uiItemMenuF(layout, IFACE_("Convertor"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); - uiItemMenuF(layout, IFACE_("Distort"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT)); - uiItemMenuF(layout, IFACE_("Group"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - uiItemMenuF(layout, IFACE_("Layout"), 0, node_add_menu, SET_INT_IN_POINTER(NODE_CLASS_LAYOUT)); - } + + if(ntreetype && ntreetype->foreach_nodeclass) + ntreetype->foreach_nodeclass(scene, layout, node_menu_add_foreach_cb); } void node_menus_register(void) diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index d3f4a5b2999..06f88002a70 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -68,6 +68,20 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) } } +static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func) +{ + func(calldata, NODE_CLASS_INPUT, "Input"); + func(calldata, NODE_CLASS_OUTPUT, "Output"); + func(calldata, NODE_CLASS_OP_COLOR, "Color"); + func(calldata, NODE_CLASS_OP_VECTOR, "Vector"); + func(calldata, NODE_CLASS_OP_FILTER, "Filter"); + func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); + func(calldata, NODE_CLASS_MATTE, "Matte"); + func(calldata, NODE_CLASS_DISTORT, "Distort"); + func(calldata, NODE_CLASS_GROUP, "Group"); + func(calldata, NODE_CLASS_LAYOUT, "Layout"); +} + static void free_node_cache(bNodeTree *UNUSED(ntree), bNode *node) { bNodeSocket *sock; @@ -207,6 +221,7 @@ bNodeTreeType ntreeType_Composite = { /* free_cache */ free_cache, /* free_node_cache */ free_node_cache, /* foreach_nodetree */ foreach_nodetree, + /* foreach_nodeclass */ foreach_nodeclass, /* localize */ localize, /* local_sync */ local_sync, /* local_merge */ local_merge, diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index d0ae17914ca..aa8ba12f799 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -35,6 +35,7 @@ #include "DNA_lamp_types.h" #include "DNA_material_types.h" #include "DNA_node_types.h" +#include "DNA_scene_types.h" #include "DNA_world_types.h" #include "BLI_listbase.h" @@ -45,6 +46,7 @@ #include "BKE_global.h" #include "BKE_main.h" #include "BKE_node.h" +#include "BKE_scene.h" #include "BKE_utildefines.h" #include "GPU_material.h" @@ -74,6 +76,23 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) func(calldata, &wo->id, wo->nodetree); } +static void foreach_nodeclass(Scene *scene, void *calldata, bNodeClassCallback func) +{ + func(calldata, NODE_CLASS_INPUT, "Input"); + func(calldata, NODE_CLASS_OUTPUT, "Output"); + + if(scene_use_new_shading_nodes(scene)) { + func(calldata, NODE_CLASS_SHADER, "Shader"); + func(calldata, NODE_CLASS_TEXTURE, "Texture"); + } + + func(calldata, NODE_CLASS_OP_COLOR, "Color"); + func(calldata, NODE_CLASS_OP_VECTOR, "Vector"); + func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); + func(calldata, NODE_CLASS_GROUP, "Group"); + func(calldata, NODE_CLASS_LAYOUT, "Layout"); +} + static void local_sync(bNodeTree *localtree, bNodeTree *ntree) { bNode *lnode; @@ -108,6 +127,7 @@ bNodeTreeType ntreeType_Shader = { /* free_cache */ NULL, /* free_node_cache */ NULL, /* foreach_nodetree */ foreach_nodetree, + /* foreach_nodeclass */ foreach_nodeclass, /* localize */ NULL, /* local_sync */ local_sync, /* local_merge */ NULL, diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 5e5d44540dc..84bb53e2215 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -62,6 +62,19 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) } } +static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func) +{ + func(calldata, NODE_CLASS_INPUT, "Input"); + func(calldata, NODE_CLASS_OUTPUT, "Output"); + func(calldata, NODE_CLASS_OP_COLOR, "Color"); + func(calldata, NODE_CLASS_PATTERN, "Patterns"); + func(calldata, NODE_CLASS_TEXTURE, "Textures"); + func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); + func(calldata, NODE_CLASS_DISTORT, "Distort"); + func(calldata, NODE_CLASS_GROUP, "Group"); + func(calldata, NODE_CLASS_LAYOUT, "Layout"); +} + static void local_sync(bNodeTree *localtree, bNodeTree *ntree) { bNode *lnode; @@ -91,6 +104,7 @@ bNodeTreeType ntreeType_Texture = { /* free_cache */ NULL, /* free_node_cache */ NULL, /* foreach_nodetree */ foreach_nodetree, + /* foreach_nodeclass */ foreach_nodeclass, /* localize */ NULL, /* local_sync */ local_sync, /* local_merge */ NULL, -- cgit v1.2.3 From cd191b7d17c42e90dcdda56ba3fbddf08666b3ab Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Nov 2011 22:28:49 +0000 Subject: UI/Nodes: templates to edit nodes from the properties editor using a tree view, to be used by cycles. For testing there's a panel in the node editor if you set debug to 777, didn't enable it because I'm not sure it's very useful there. --- source/blender/editors/include/UI_interface.h | 19 +- .../blender/editors/interface/interface_intern.h | 6 +- .../blender/editors/interface/interface_regions.c | 9 - .../blender/editors/interface/interface_widgets.c | 42 +- source/blender/editors/space_node/CMakeLists.txt | 1 + source/blender/editors/space_node/node_buttons.c | 37 ++ source/blender/editors/space_node/node_templates.c | 636 +++++++++++++++++++++ source/blender/makesrna/intern/rna_ui_api.c | 17 + source/blenderplayer/bad_level_call_stubs/stubs.c | 3 + 9 files changed, 750 insertions(+), 20 deletions(-) create mode 100644 source/blender/editors/space_node/node_templates.c diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 942252bc00f..02b8cc9e2c6 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -66,6 +66,9 @@ struct uiWidgetColors; struct Tex; struct MTex; struct ImBuf; +struct bNodeTree; +struct bNode; +struct bNodeSocket; typedef struct uiBut uiBut; typedef struct uiBlock uiBlock; @@ -74,6 +77,10 @@ typedef struct uiLayout uiLayout; /* Defines */ +/* names */ +#define UI_MAX_DRAW_STR 400 +#define UI_MAX_NAME_STR 128 + /* uiBlock->dt */ #define UI_EMBOSS 0 /* use widget style for drawing */ #define UI_EMBOSSN 1 /* Nothing, only icon and/or text */ @@ -128,11 +135,11 @@ typedef struct uiLayout uiLayout; #define UI_ICON_LEFT 128 #define UI_ICON_SUBMENU 256 #define UI_ICON_PREVIEW 512 - /* control for button type block */ -#define UI_MAKE_TOP 1024 -#define UI_MAKE_DOWN 2048 -#define UI_MAKE_LEFT 4096 -#define UI_MAKE_RIGHT 8192 + +#define UI_TEXT_RIGHT 1024 +#define UI_BUT_NODE_LINK 2048 +#define UI_BUT_NODE_ACTIVE 4096 +#define UI_FLAG_UNUSED 8192 /* button align flag, for drawing groups together */ #define UI_BUT_ALIGN (UI_BUT_ALIGN_TOP|UI_BUT_ALIGN_LEFT|UI_BUT_ALIGN_RIGHT|UI_BUT_ALIGN_DOWN) @@ -749,6 +756,8 @@ void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C); void uiTemplateKeymapItemProperties(uiLayout *layout, struct PointerRNA *ptr); void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, const char *prop_list, int rows, int maxrows, int type); +void uiTemplateNodeLink(uiLayout *layout, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact); void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 29447d492c5..aa4158ad4b7 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -79,6 +79,7 @@ typedef enum { UI_WTYPE_MENU_RADIO, UI_WTYPE_MENU_ICON_RADIO, UI_WTYPE_MENU_POINTER_LINK, + UI_WTYPE_MENU_NODE_LINK, UI_WTYPE_PULLDOWN, UI_WTYPE_MENU_ITEM, @@ -96,11 +97,6 @@ typedef enum { } uiWidgetTypeEnum; - - -#define UI_MAX_DRAW_STR 400 -#define UI_MAX_NAME_STR 128 - /* panel limits */ #define UI_PANEL_MINX 100 #define UI_PANEL_MINY 70 diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index edbd5c5684e..34b62155314 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1533,15 +1533,6 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C, ARegion *butregion, uiBut if(ELEM(but->type, BLOCK, PULLDOWN)) block->xofs = -2; /* for proper alignment */ - /* only used for automatic toolbox, so can set the shift flag */ - if(but->flag & UI_MAKE_TOP) { - block->direction= UI_TOP|UI_SHIFT_FLIPPED; - uiBlockFlipOrder(block); - } - if(but->flag & UI_MAKE_DOWN) block->direction= UI_DOWN|UI_SHIFT_FLIPPED; - if(but->flag & UI_MAKE_LEFT) block->direction |= UI_LEFT; - if(but->flag & UI_MAKE_RIGHT) block->direction |= UI_RIGHT; - ui_block_position(window, butregion, but, block); } else { diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 8ab48ac8ffa..aa407bbf6d4 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1181,6 +1181,12 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB 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; + 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 */ @@ -1543,6 +1549,10 @@ static void widget_state(uiWidgetType *wt, int state) char red[4]= {255, 0, 0}; widget_state_blend(wt->wcol.inner, red, 0.4f); } + if(state & UI_BUT_NODE_ACTIVE) { + char blue[4]= {86, 128, 194}; + widget_state_blend(wt->wcol.inner, blue, 0.3f); + } } /* sliders use special hack which sets 'item' as inner when drawing filling */ @@ -2530,6 +2540,29 @@ static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(stat widgetbase_draw(&wtb, wcol); } +static void widget_menunodebut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign) +{ + /* silly node link button hacks */ + uiWidgetBase wtb; + uiWidgetColors wcol_backup= *wcol; + + widget_init(&wtb); + + /* half rounded */ + round_box_edges(&wtb, roundboxalign, rect, 4.0f); + + wcol->inner[0] += 15; + wcol->inner[1] += 15; + wcol->inner[2] += 15; + wcol->outline[0] += 15; + wcol->outline[1] += 15; + wcol->outline[2] += 15; + + /* decoration */ + widgetbase_draw(&wtb, wcol); + *wcol= wcol_backup; +} + static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign)) { if(state & UI_ACTIVE) { @@ -2804,6 +2837,11 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type) wt.wcol_theme= &btheme->tui.wcol_menu; wt.draw= widget_menubut; break; + + case UI_WTYPE_MENU_NODE_LINK: + wt.wcol_theme= &btheme->tui.wcol_menu; + wt.draw= widget_menunodebut; + break; case UI_WTYPE_PULLDOWN: wt.wcol_theme= &btheme->tui.wcol_pulldown; @@ -2996,7 +3034,9 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct case MENU: case BLOCK: case ICONTEXTROW: - if(!but->str[0] && but->icon) + if(but->flag & UI_BUT_NODE_LINK) + wt= widget_type(UI_WTYPE_MENU_NODE_LINK); + else if(!but->str[0] && but->icon) wt= widget_type(UI_WTYPE_MENU_ICON_RADIO); else wt= widget_type(UI_WTYPE_MENU_RADIO); diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt index 8a27bcca8af..991b35585a6 100644 --- a/source/blender/editors/space_node/CMakeLists.txt +++ b/source/blender/editors/space_node/CMakeLists.txt @@ -47,6 +47,7 @@ set(SRC node_ops.c node_select.c node_state.c + node_templates.c space_node.c node_intern.h diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c index 3886c709196..15e5719be37 100644 --- a/source/blender/editors/space_node/node_buttons.c +++ b/source/blender/editors/space_node/node_buttons.c @@ -45,6 +45,7 @@ #include "BLI_utildefines.h" #include "BKE_context.h" +#include "BKE_global.h" #include "BKE_node.h" #include "BKE_screen.h" @@ -122,6 +123,34 @@ static void active_node_panel(const bContext *C, Panel *pa) node->typeinfo->uifunc(layout, (bContext *)C, &ptr); } +static int node_sockets_poll(const bContext *C, PanelType *UNUSED(pt)) +{ + SpaceNode *snode= CTX_wm_space_node(C); + + return (snode && snode->nodetree && G.rt == 777); +} + +static void node_sockets_panel(const bContext *C, Panel *pa) +{ + 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; + char name[UI_MAX_NAME_STR]; + + if(ELEM(NULL, ntree, node)) + return; + + for(sock=node->inputs.first; sock; sock=sock->next) { + BLI_snprintf(name, sizeof(name), "%s:", sock->name); + + split = uiLayoutSplit(layout, 0.35f, 0); + uiItemL(split, name, ICON_NONE); + uiTemplateNodeLink(split, ntree, node, sock); + } +} + /* ******************* node buttons registration ************** */ void node_buttons_register(ARegionType *art) @@ -134,6 +163,14 @@ void node_buttons_register(ARegionType *art) 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"); + strcpy(pt->idname, "NODE_PT_sockets"); + strcpy(pt->label, "Sockets"); + 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"); strcpy(pt->idname, "NODE_PT_gpencil"); diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c new file mode 100644 index 00000000000..b877bea6be9 --- /dev/null +++ b/source/blender/editors/space_node/node_templates.c @@ -0,0 +1,636 @@ +/* + * $Id$ + * + * ***** 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): Blender Foundation 2009. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/interface/interface_node.c + * \ingroup edinterface + */ + +#include +#include +#include + +#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 "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 "WM_api.h" +#include "WM_types.h" + +#include "UI_interface.h" +#include "UI_resources.h" +#include "../interface/interface_intern.h" + +#include "ED_node.h" + +/************************* Node Socket Manipulation **************************/ + +static void node_tag_recursive(bNode *node) +{ + bNodeSocket *input; + + if(!node || (node->flag & NODE_TEST)) + return; /* in case of cycles */ + + node->flag |= NODE_TEST; + + for(input=node->inputs.first; input; input=input->next) + if(input->link) + node_tag_recursive(input->link->fromnode); +} + +static void node_clear_recursive(bNode *node) +{ + bNodeSocket *input; + + if(!node || !(node->flag & NODE_TEST)) + return; /* in case of cycles */ + + node->flag &= ~NODE_TEST; + + for(input=node->inputs.first; input; input=input->next) + if(input->link) + node_clear_recursive(input->link->fromnode); +} + +static void node_remove_linked(bNodeTree *ntree, bNode *rem_node) +{ + bNode *node, *next; + bNodeSocket *sock; + + if(!rem_node) + return; + + /* tag linked nodes to be removed */ + for(node=ntree->nodes.first; node; node=node->next) + node->flag &= ~NODE_TEST; + + node_tag_recursive(rem_node); + + /* clear tags on nodes that are still used by other nodes */ + for(node=ntree->nodes.first; node; node=node->next) + if(!(node->flag & NODE_TEST)) + for(sock=node->inputs.first; sock; sock=sock->next) + if(sock->link && sock->link->fromnode != rem_node) + node_clear_recursive(sock->link->fromnode); + + /* remove nodes */ + for(node=ntree->nodes.first; node; node=next) { + next = node->next; + + if(node->flag & NODE_TEST) { + if(node->id) + node->id->us--; + nodeFreeNode(ntree, node); + } + } +} + +/* disconnect socket from the node it is connected to */ +static void node_socket_disconnect(Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to) +{ + if(!sock_to->link) + return; + + nodeRemLink(ntree, sock_to->link); + + nodeUpdate(ntree, node_to); + ntreeUpdateTree(ntree); + + ED_node_generic_update(bmain, ntree, node_to); +} + +/* remove all nodes connected to this socket, if they aren't connected to other nodes */ +static void node_socket_remove(Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to) +{ + if(!sock_to->link) + return; + + node_remove_linked(ntree, sock_to->link->fromnode); + + nodeUpdate(ntree, node_to); + ntreeUpdateTree(ntree); + + ED_node_generic_update(bmain, ntree, node_to); +} + +/* add new node connected to this socket, or replace an existing one */ +static void node_socket_add_replace(Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to, bNodeTemplate *ntemp, int sock_num) +{ + bNode *node_from; + bNodeSocket *sock_from; + bNode *node_prev = NULL; + + /* unlink existing node */ + if(sock_to->link) { + node_prev = sock_to->link->fromnode; + nodeRemLink(ntree, sock_to->link); + } + + /* find existing node that we can use */ + for(node_from=ntree->nodes.first; node_from; node_from=node_from->next) + if(node_from->type == ntemp->type) + break; + + if(node_from) + if(!(node_from->inputs.first == NULL && !(node_from->typeinfo->flag & NODE_OPTIONS))) + node_from = NULL; + + if(node_prev && node_prev->type == ntemp->type && + (ntemp->type != NODE_GROUP || node_prev->id == &ntemp->ngroup->id)) { + /* keep the previous node if it's the same type */ + node_from = node_prev; + } + else if(!node_from) { + node_from= nodeAddNode(ntree, ntemp); + node_from->locx = node_to->locx - (node_from->typeinfo->width + 50); + node_from->locy = node_to->locy; + + if(node_from->id) + id_us_plus(node_from->id); + } + + nodeSetActive(ntree, node_from); + + /* add link */ + sock_from = BLI_findlink(&node_from->outputs, sock_num); + nodeAddLink(ntree, node_from, sock_from, node_to, sock_to); + + /* copy input sockets from previous node */ + if(node_prev && node_from != node_prev) { + bNodeSocket *sock_prev, *sock_from; + + for(sock_prev=node_prev->inputs.first; sock_prev; sock_prev=sock_prev->next) { + for(sock_from=node_from->inputs.first; sock_from; sock_from=sock_from->next) { + if(strcmp(sock_prev->name, sock_from->name) == 0 && sock_prev->type == sock_from->type) { + bNodeLink *link = sock_prev->link; + + if(link && link->fromnode) { + nodeAddLink(ntree, link->fromnode, link->fromsock, node_from, sock_from); + nodeRemLink(ntree, link); + } + + if(sock_prev->default_value) { + if(sock_from->default_value) + MEM_freeN(sock_from->default_value); + + sock_from->default_value = MEM_dupallocN(sock_prev->default_value); + } + } + } + } + + /* remove node */ + node_remove_linked(ntree, node_prev); + } + + nodeUpdate(ntree, node_from); + nodeUpdate(ntree, node_to); + ntreeUpdateTree(ntree); + + ED_node_generic_update(bmain, ntree, node_to); +} + +/****************************** Node Link Menu *******************************/ + +#define UI_NODE_LINK_ADD 0 +#define UI_NODE_LINK_DISCONNECT -1 +#define UI_NODE_LINK_REMOVE -2 + +typedef struct NodeLinkArg { + Main *bmain; + Scene *scene; + bNodeTree *ntree; + bNode *node; + bNodeSocket *sock; + + bNodeTree *ngroup; + int type; + int output; + + uiLayout *layout; +} NodeLinkArg; + +static void ui_node_link(bContext *UNUSED(C), void *arg_p, void *event_p) +{ + NodeLinkArg *arg = (NodeLinkArg*)arg_p; + Main *bmain = arg->bmain; + bNode *node_to = arg->node; + bNodeSocket *sock_to = arg->sock; + bNodeTree *ntree = arg->ntree; + int event = GET_INT_FROM_POINTER(event_p); + bNodeTemplate ntemp; + + ntemp.type = arg->type; + ntemp.ngroup = arg->ngroup; + + if(event == UI_NODE_LINK_DISCONNECT) + node_socket_disconnect(bmain, ntree, node_to, sock_to); + else if(event == UI_NODE_LINK_REMOVE) + node_socket_remove(bmain, ntree, node_to, sock_to); + else + node_socket_add_replace(bmain, ntree, node_to, sock_to, &ntemp, arg->output); +} + +static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) +{ + if(sock->link && sock->link->fromnode) { + bNode *node = sock->link->fromnode; + char node_name[UI_MAX_NAME_STR]; + + if(node->type == NODE_GROUP) + BLI_strncpy(node_name, node->id->name+2, UI_MAX_NAME_STR); + else + BLI_strncpy(node_name, node->typeinfo->name, UI_MAX_NAME_STR); + + if(node->inputs.first == NULL && + node->outputs.first != node->outputs.last && + !(node->typeinfo->flag & NODE_OPTIONS)) + BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", node_name, sock->link->fromsock->name); + else + BLI_strncpy(name, node_name, UI_MAX_NAME_STR); + } + else if(sock->type == SOCK_SHADER) + BLI_strncpy(name, "None", UI_MAX_NAME_STR); + else + BLI_strncpy(name, "Default", UI_MAX_NAME_STR); +} + +static int ui_compatible_sockets(int typeA, int typeB) +{ + return (typeA == typeB); +} + +static void ui_node_menu_column(NodeLinkArg *arg, int nclass, const char *cname) +{ + Main *bmain = arg->bmain; + bNodeTree *ntree = arg->ntree; + bNodeSocket *sock = arg->sock; + uiLayout *layout = arg->layout; + uiLayout *column = NULL; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + bNodeType *ntype; + bNodeTree *ngroup; + NodeLinkArg *argN; + int first = 1; + int compatibility= 0; + + if(ntree->type == NTREE_SHADER) { + if(scene_use_new_shading_nodes(arg->scene)) + compatibility= NODE_NEW_SHADING; + else + compatibility= NODE_OLD_SHADING; + } + + if(nclass == NODE_CLASS_GROUP) { + for(ngroup=bmain->nodetree.first; ngroup; ngroup=ngroup->id.next) { + bNodeSocket *gsock; + char name[UI_MAX_NAME_STR]; + int i, j, num = 0; + + if(ngroup->type != ntree->type) + continue; + + for(gsock=ngroup->inputs.first; gsock; gsock=gsock->next) + if(ui_compatible_sockets(gsock->type, sock->type)) + num++; + + for(i=0, j=0, gsock=ngroup->outputs.first; gsock; gsock=gsock->next, i++) { + if(!ui_compatible_sockets(gsock->type, sock->type)) + continue; + + if(first) { + column= uiLayoutColumn(layout, 0); + uiBlockSetCurLayout(block, column); + + uiItemL(column, cname, ICON_NODE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + first = 0; + } + + if(num > 1) { + if(j == 0) { + uiItemL(column, ngroup->id.name+2, ICON_NODE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", gsock->name); + j++; + } + else + BLI_strncpy(name, ngroup->id.name+2, UI_MAX_NAME_STR); + + but = uiDefBut(block, BUT, 0, ngroup->id.name+2, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input"); + + argN = MEM_dupallocN(arg); + argN->ngroup = ngroup; + argN->output = i; + uiButSetNFunc(but, ui_node_link, argN, NULL); + } + } + } + else { + bNodeTreeType *ttype= ntreeGetType(ntree->type); + + for(ntype=ttype->node_types.first; ntype; ntype=ntype->next) { + bNodeSocketTemplate *stemp; + char name[UI_MAX_NAME_STR]; + int i, j, num = 0; + + if(compatibility && !(ntype->compatibility & compatibility)) + continue; + + if(ntype->nclass != nclass) + continue; + + for(i=0, stemp=ntype->outputs; stemp && stemp->type != -1; stemp++, i++) + if(ui_compatible_sockets(stemp->type, sock->type)) + num++; + + for(i=0, j=0, stemp=ntype->outputs; stemp && stemp->type != -1; stemp++, i++) { + if(!ui_compatible_sockets(stemp->type, sock->type)) + continue; + + if(first) { + column= uiLayoutColumn(layout, 0); + uiBlockSetCurLayout(block, column); + + uiItemL(column, cname, ICON_NODE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + first = 0; + } + + if(num > 1) { + if(j == 0) { + uiItemL(column, ntype->name, ICON_NODE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", stemp->name); + j++; + } + else + BLI_strncpy(name, ntype->name, UI_MAX_NAME_STR); + + but = uiDefBut(block, BUT, 0, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Add node to input"); + + argN = MEM_dupallocN(arg); + argN->type = ntype->type; + argN->output = i; + uiButSetNFunc(but, ui_node_link, argN, NULL); + } + } + } +} + +static void node_menu_column_foreach_cb(void *calldata, int nclass, const char *name) +{ + NodeLinkArg *arg = (NodeLinkArg*)calldata; + + if(!ELEM(nclass, NODE_CLASS_GROUP, NODE_CLASS_LAYOUT)) + ui_node_menu_column(arg, nclass, IFACE_(name)); +} + +static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_p) +{ + Main *bmain= CTX_data_main(C); + Scene *scene= CTX_data_scene(C); + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but = (uiBut*)but_p; + uiLayout *split, *column; + NodeLinkArg *arg = (NodeLinkArg*)but->func_argN; + bNodeSocket *sock = arg->sock; + bNodeTreeType *ntreetype= ntreeGetType(arg->ntree->type); + + uiBlockSetCurLayout(block, layout); + split= uiLayoutSplit(layout, 0, 0); + + arg->bmain= bmain; + arg->scene= scene; + arg->layout= split; + + if(ntreetype && ntreetype->foreach_nodeclass) + ntreetype->foreach_nodeclass(scene, arg, node_menu_column_foreach_cb); + + column= uiLayoutColumn(split, 0); + uiBlockSetCurLayout(block, column); + + if(sock->link) { + uiItemL(column, "Link", ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + + but = uiDefBut(block, BUT, 0, "Remove", 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Remove nodes connected to the input"); + uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_REMOVE)); + + but = uiDefBut(block, BUT, 0, "Disconnect", 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Disconnect nodes connected to the input"); + uiButSetNFunc(but, ui_node_link, MEM_dupallocN(arg), SET_INT_IN_POINTER(UI_NODE_LINK_DISCONNECT)); + } + + ui_node_menu_column(arg, NODE_CLASS_GROUP, IFACE_("Group")); +} + +void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSocket *sock) +{ + uiBlock *block = uiLayoutGetBlock(layout); + NodeLinkArg *arg; + uiBut *but; + + arg = MEM_callocN(sizeof(NodeLinkArg), "NodeLinkArg"); + arg->ntree = ntree; + arg->node = node; + arg->sock = sock; + arg->type = 0; + arg->output = 0; + + uiBlockSetCurLayout(block, layout); + + if(sock->link || sock->type == SOCK_SHADER || (sock->flag & SOCK_HIDE_VALUE)) { + char name[UI_MAX_NAME_STR]; + ui_node_sock_name(sock, name); + but= uiDefMenuBut(block, ui_template_node_link_menu, NULL, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + else + but= uiDefIconMenuBut(block, ui_template_node_link_menu, NULL, ICON_NONE, 0, 0, UI_UNIT_X, UI_UNIT_Y, ""); + + but->type= MENU; + but->flag |= UI_TEXT_LEFT|UI_BUT_NODE_LINK; + but->poin= (char*)but; + but->func_argN = arg; +} + +/**************************** Node Tree Layout *******************************/ + +static void ui_node_draw_input(uiLayout *layout, bContext *C, + bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth); + +static void ui_node_draw_node(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, int depth) +{ + bNodeSocket *input; + uiLayout *col, *split; + PointerRNA nodeptr; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &nodeptr); + + if(node->typeinfo->uifunc) { + if(node->type != NODE_GROUP) { + split = uiLayoutSplit(layout, 0.35f, 0); + col = uiLayoutColumn(split, 0); + col = uiLayoutColumn(split, 0); + + node->typeinfo->uifunc(col, C, &nodeptr); + } + } + + for(input=node->inputs.first; input; input=input->next) + ui_node_draw_input(layout, C, ntree, node, input, depth+1); +} + +static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input, int depth) +{ + PointerRNA inputptr; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *bt; + uiLayout *split, *row, *col; + bNode *lnode; + char label[UI_MAX_NAME_STR]; + int indent = (depth > 1)? 2*(depth - 1): 0; + + if(input->flag & SOCK_UNAVAIL) + return; + + /* to avoid eternal loops on cyclic dependencies */ + node->flag |= NODE_TEST; + lnode = (input->link)? input->link->fromnode: NULL; + + /* socket RNA pointer */ + RNA_pointer_create(&ntree->id, &RNA_NodeSocket, input, &inputptr); + + /* indented label */ + memset(label, ' ', indent); + label[indent] = '\0'; + BLI_snprintf(label, UI_MAX_NAME_STR, "%s%s:", label, input->name); + + /* split in label and value */ + split = uiLayoutSplit(layout, 0.35f, 0); + + row = uiLayoutRow(split, 1); + + if(depth > 0) { + uiBlockSetEmboss(block, UI_EMBOSSN); + + if(lnode && (lnode->inputs.first || (lnode->typeinfo->uifunc && lnode->type != NODE_GROUP))) { + int icon = (input->flag & SOCK_COLLAPSED)? ICON_DISCLOSURE_TRI_RIGHT: ICON_DISCLOSURE_TRI_DOWN; + uiItemR(row, &inputptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", icon); + } + else + uiItemL(row, "", ICON_BLANK1); + + bt = block->buttons.last; + bt->x2 = UI_UNIT_X/2; + + uiBlockSetEmboss(block, UI_EMBOSS); + } + + uiItemL(row, label, ICON_NONE); + bt= block->buttons.last; + bt->flag= UI_TEXT_LEFT; + + if(lnode) { + /* input linked to a node */ + uiTemplateNodeLink(split, ntree, node, input); + + if(!(input->flag & SOCK_COLLAPSED)) { + if(depth == 0) + uiItemS(layout); + + ui_node_draw_node(layout, C, ntree, lnode, depth); + } + } + else { + /* input not linked, show value */ + if(input->type != SOCK_SHADER && !(input->flag & SOCK_HIDE_VALUE)) { + if(input->type == SOCK_VECTOR) { + row = uiLayoutRow(split, 0); + col = uiLayoutColumn(row, 0); + + uiItemR(col, &inputptr, "default_value", 0, "", 0); + } + else { + row = uiLayoutRow(split, 1); + uiItemR(row, &inputptr, "default_value", 0, "", 0); + } + } + else + row = uiLayoutRow(split, 0); + + uiTemplateNodeLink(row, ntree, node, input); + } + + /* clear */ + node->flag &= ~NODE_TEST; +} + +void uiTemplateNodeView(uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input) +{ + bNode *tnode; + + if(!ntree) + return; + + /* clear for cycle check */ + for(tnode=ntree->nodes.first; tnode; tnode=tnode->next) + tnode->flag &= ~NODE_TEST; + + if(input) + ui_node_draw_input(layout, C, ntree, node, input, 0); + else + ui_node_draw_node(layout, C, ntree, node, 0); +} + diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index a7e7a7b7577..9ff56f1aeb0 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -448,6 +448,23 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "template_reports_banner", "uiTemplateReportsBanner"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "template_node_link", "uiTemplateNodeLink"); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + + func= RNA_def_function(srna, "template_node_view", "uiTemplateNodeView"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "template_keymap_item_properties", "uiTemplateKeymapItemProperties"); parm= RNA_def_pointer(func, "item", "KeyMapItem", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR|PROP_NEVER_NULL); diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 0e489107066..4bc7aa4d689 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -41,6 +41,7 @@ struct ARegionType; struct Base; struct Brush; struct bNodeTree; +struct bNodeSocket; struct CSG_FaceIteratorDescriptor; struct CSG_VertexIteratorDescriptor; struct ColorBand; @@ -369,6 +370,8 @@ void uiTemplateHistogram(struct uiLayout *layout, struct PointerRNA *ptr, char * 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 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 uiTemplateKeymapItemProperties(struct uiLayout *layout, struct PointerRNA *ptr){} void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact){} void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname){} -- cgit v1.2.3 From 95948d0e0e1e3308b8449486f676ca1663afe124 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Mon, 7 Nov 2011 23:50:12 +0000 Subject: SVN maintenance. --- doc/python_api/examples/bpy.app.handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python_api/examples/bpy.app.handlers.py b/doc/python_api/examples/bpy.app.handlers.py index 7c176063b7c..02b00bf2fbc 100644 --- a/doc/python_api/examples/bpy.app.handlers.py +++ b/doc/python_api/examples/bpy.app.handlers.py @@ -9,4 +9,4 @@ import bpy def my_handler(scene): print("Frame Change", scene.frame_current) -bpy.app.handlers.frame_change_pre.append(my_handler) \ No newline at end of file +bpy.app.handlers.frame_change_pre.append(my_handler) -- cgit v1.2.3 From f086201518b85f6dd2ae60ae37dc14f1d1406c01 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 01:32:34 +0000 Subject: cmake & pep8 tidy up, also some style edits. remove unneeded collection length function. --- doc/python_api/examples/bpy.app.handlers.1.py | 2 +- doc/python_api/examples/bpy.app.handlers.py | 3 ++- extern/libmv/CMakeLists.txt | 24 +++++++++++----------- release/scripts/modules/bpy/ops.py | 4 ++-- release/scripts/modules/bpyml_ui.py | 6 ++++-- release/scripts/startup/bl_operators/clip.py | 9 ++++---- .../startup/bl_operators/object_quick_effects.py | 3 +-- .../startup/bl_operators/uvcalc_smart_project.py | 18 +++++++++------- .../startup/bl_ui/properties_data_camera.py | 7 +++++-- .../scripts/startup/bl_ui/properties_data_lamp.py | 4 ++-- release/scripts/startup/bl_ui/properties_game.py | 7 +++---- .../scripts/startup/bl_ui/properties_material.py | 6 +++--- release/scripts/startup/bl_ui/properties_object.py | 4 ++-- .../startup/bl_ui/properties_physics_cloth.py | 4 ++-- .../startup/bl_ui/properties_physics_fluid.py | 4 ++-- release/scripts/startup/bl_ui/properties_render.py | 4 ++-- release/scripts/startup/bl_ui/space_clip.py | 22 ++++++++++---------- release/scripts/startup/bl_ui/space_image.py | 14 ++++++------- release/scripts/startup/bl_ui/space_userpref.py | 8 ++++---- .../scripts/startup/bl_ui/space_userpref_keymap.py | 8 ++++---- release/scripts/startup/bl_ui/space_view3d.py | 2 +- .../scripts/startup/bl_ui/space_view3d_toolbar.py | 14 ++++++------- source/blender/blenkernel/CMakeLists.txt | 4 +++- source/blender/blenkernel/intern/movieclip.c | 6 +++--- source/blender/makesdna/DNA_modifier_types.h | 3 ++- source/blender/makesrna/intern/rna_tracking.c | 8 -------- 26 files changed, 101 insertions(+), 97 deletions(-) diff --git a/doc/python_api/examples/bpy.app.handlers.1.py b/doc/python_api/examples/bpy.app.handlers.1.py index a6591f6b83f..48fdb95d793 100644 --- a/doc/python_api/examples/bpy.app.handlers.1.py +++ b/doc/python_api/examples/bpy.app.handlers.1.py @@ -15,6 +15,6 @@ from bpy.app.handlers import persistent @persistent def load_handler(dummy): - print("Load Handler:", bpy.data.filepath) + print("Load Handler:", bpy.data.filepath) bpy.app.handlers.load_post.append(load_handler) diff --git a/doc/python_api/examples/bpy.app.handlers.py b/doc/python_api/examples/bpy.app.handlers.py index 02b00bf2fbc..57b209e15f0 100644 --- a/doc/python_api/examples/bpy.app.handlers.py +++ b/doc/python_api/examples/bpy.app.handlers.py @@ -6,7 +6,8 @@ This script shows the most simple example of adding a handler. import bpy + def my_handler(scene): - print("Frame Change", scene.frame_current) + print("Frame Change", scene.frame_current) bpy.app.handlers.frame_change_pre.append(my_handler) diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt index 7ab01598cef..333791e28eb 100644 --- a/extern/libmv/CMakeLists.txt +++ b/extern/libmv/CMakeLists.txt @@ -25,8 +25,8 @@ set(INC . ../Eigen3 - ./third_party/ssba - ./third_party/ldl/Include + third_party/ssba + third_party/ldl/Include ../colamd/Include ) @@ -130,7 +130,7 @@ set(SRC third_party/msinttypes/inttypes.h ) -IF(WIN32) +if(WIN32) list(APPEND SRC third_party/glog/src/logging.cc third_party/glog/src/raw_logging.cc @@ -158,23 +158,23 @@ IF(WIN32) ) list(APPEND INC - ./third_party/glog/src/windows + third_party/glog/src/windows ) - IF(NOT MINGW) + if(NOT MINGW) list(APPEND INC - ./third_party/msinttypes + third_party/msinttypes ) - ENDIF(NOT MINGW) + endif() - IF(MSVC) + if(MSVC) set(MSVC_OFLAGS O1 O2 Ox) foreach(FLAG ) string(REPLACE "" "Od" CMAKE_CXX_FLAGS_RELEASE "") string(REPLACE "" "Od" CMAKE_C_FLAGS_RELWITHDEBINFO "") endforeach() - ENDIF(MSVC) -ELSE(WIN32) + endif() +else(WIN32) list(APPEND SRC third_party/glog/src/utilities.cc third_party/glog/src/symbolize.cc @@ -206,9 +206,9 @@ ELSE(WIN32) ) list(APPEND INC - ./third_party/glog/src + third_party/glog/src ) -ENDIF(WIN32) +endif() add_definitions(-DV3DLIB_ENABLE_SUITESPARSE -DGOOGLE_GLOG_DLL_DECL=) diff --git a/release/scripts/modules/bpy/ops.py b/release/scripts/modules/bpy/ops.py index 382a47cb4e6..d01b706cc37 100644 --- a/release/scripts/modules/bpy/ops.py +++ b/release/scripts/modules/bpy/ops.py @@ -208,7 +208,7 @@ class BPyOpsSubModOp(object): return "# %s\n%s" % (descr, as_string) def __str__(self): # used for print(...) - return "" % \ - (self.module, self.func, id(self)) + return ("" % + (self.module, self.func, id(self))) ops_fake_module = BPyOps() diff --git a/release/scripts/modules/bpyml_ui.py b/release/scripts/modules/bpyml_ui.py index f4b6de23dbb..4828b3649d3 100644 --- a/release/scripts/modules/bpyml_ui.py +++ b/release/scripts/modules/bpyml_ui.py @@ -25,9 +25,11 @@ from bpyml import TAG, ARGS, CHILDREN _uilayout_rna = _bpy.types.UILayout.bl_rna -_uilayout_tags = ["ui"] + \ - _uilayout_rna.properties.keys() + \ +_uilayout_tags = ( + ["ui"] + + _uilayout_rna.properties.keys() + _uilayout_rna.functions.keys() + ) # these need to be imported directly # >>> from bpyml_ui.locals import * diff --git a/release/scripts/startup/bl_operators/clip.py b/release/scripts/startup/bl_operators/clip.py index d085b7ea105..55592621112 100644 --- a/release/scripts/startup/bl_operators/clip.py +++ b/release/scripts/startup/bl_operators/clip.py @@ -155,7 +155,8 @@ class CLIP_OT_delete_proxy(Operator): self._rmproxy(d + '_undistorted') self._rmproxy(os.path.join(absproxy, 'proxy_' + str(x) + '.avi')) - tc = ('free_run.blen_tc', 'interp_free_run.blen_tc', \ + tc = ('free_run.blen_tc', + 'interp_free_run.blen_tc', 'record_run.blen_tc') for x in tc: @@ -280,10 +281,10 @@ class CLIP_OT_constraint_to_fcurve(Operator): efra = max(efra, track.markers[-1].frame) if sfra is None or efra is None: - return + return # Store object matrices - for x in range(sfra, efra+1): + for x in range(sfra, efra + 1): scene.frame_set(x) matrices.append(ob.matrix_world.copy()) @@ -291,7 +292,7 @@ class CLIP_OT_constraint_to_fcurve(Operator): # Apply matrices on object and insert keyframes i = 0 - for x in range(sfra, efra+1): + for x in range(sfra, efra + 1): scene.frame_set(x) ob.matrix_world = matrices[i] diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py index 490ee230220..a062ac6f4c5 100644 --- a/release/scripts/startup/bl_operators/object_quick_effects.py +++ b/release/scripts/startup/bl_operators/object_quick_effects.py @@ -105,8 +105,7 @@ class QuickFur(Operator): psys.settings.child_type = 'INTERPOLATED' obj.data.materials.append(mat) - obj.particle_systems[-1].settings.material = \ - len(obj.data.materials) + psys.settings.material = len(obj.data.materials) return {'FINISHED'} diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py index 66d0d72efc1..17e353ff238 100644 --- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py +++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py @@ -212,8 +212,11 @@ def islandIntersectUvIsland(source, target, SourceOffset): # Edge intersect test for ed in edgeLoopsSource: for seg in edgeLoopsTarget: - i = geometry.intersect_line_line_2d(\ - seg[0], seg[1], SourceOffset+ed[0], SourceOffset+ed[1]) + i = geometry.intersect_line_line_2d(seg[0], + seg[1], + SourceOffset+ed[0], + SourceOffset+ed[1], + ) if i: return 1 # LINE INTERSECTION @@ -773,15 +776,16 @@ def main_consts(): global ROTMAT_2D_POS_45D global RotMatStepRotation - ROTMAT_2D_POS_90D = Matrix.Rotation( radians(90.0), 2) - ROTMAT_2D_POS_45D = Matrix.Rotation( radians(45.0), 2) + ROTMAT_2D_POS_90D = Matrix.Rotation(radians(90.0), 2) + ROTMAT_2D_POS_45D = Matrix.Rotation(radians(45.0), 2) RotMatStepRotation = [] rot_angle = 22.5 #45.0/2 while rot_angle > 0.1: - RotMatStepRotation.append([\ - Matrix.Rotation( radians(rot_angle), 2),\ - Matrix.Rotation( radians(-rot_angle), 2)]) + RotMatStepRotation.append([ + Matrix.Rotation(radians(+rot_angle), 2), + Matrix.Rotation(radians(-rot_angle), 2), + ]) rot_angle = rot_angle/2.0 diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py index 0abbf281754..1a0fb0ef4ac 100644 --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@ -108,6 +108,7 @@ class DATA_PT_lens(CameraButtonsPanel, Panel): col.prop(cam, "clip_start", text="Start") col.prop(cam, "clip_end", text="End") + class DATA_PT_camera(CameraButtonsPanel, Panel): bl_label = "Camera" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -120,8 +121,8 @@ class DATA_PT_camera(CameraButtonsPanel, Panel): row = layout.row(align=True) row.menu("CAMERA_MT_presets", text=bpy.types.CAMERA_MT_presets.bl_label) - row.operator("camera.preset_add", text="", icon="ZOOMIN") - row.operator("camera.preset_add", text="", icon="ZOOMOUT").remove_active = True + row.operator("camera.preset_add", text="", icon='ZOOMIN') + row.operator("camera.preset_add", text="", icon='ZOOMOUT').remove_active = True layout.label(text="Sensor:") @@ -137,6 +138,7 @@ class DATA_PT_camera(CameraButtonsPanel, Panel): col = split.column(align=True) col.prop(cam, "sensor_fit", text="") + class DATA_PT_camera_dof(CameraButtonsPanel, Panel): bl_label = "Depth of Field" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -156,6 +158,7 @@ class DATA_PT_camera_dof(CameraButtonsPanel, Panel): col.active = cam.dof_object is None col.prop(cam, "dof_distance", text="Distance") + class DATA_PT_camera_display(CameraButtonsPanel, Panel): bl_label = "Display" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py index 4ff180f74fb..974924be46c 100644 --- a/release/scripts/startup/bl_ui/properties_data_lamp.py +++ b/release/scripts/startup/bl_ui/properties_data_lamp.py @@ -134,8 +134,8 @@ class DATA_PT_sunsky(DataButtonsPanel, Panel): row = layout.row(align=True) row.prop(lamp, "use_sky") row.menu("LAMP_MT_sunsky_presets", text=bpy.types.LAMP_MT_sunsky_presets.bl_label) - row.operator("lamp.sunsky_preset_add", text="", icon="ZOOMIN") - row.operator("lamp.sunsky_preset_add", text="", icon="ZOOMOUT").remove_active = True + row.operator("lamp.sunsky_preset_add", text="", icon='ZOOMIN') + row.operator("lamp.sunsky_preset_add", text="", icon='ZOOMOUT').remove_active = True row = layout.row() row.active = lamp.use_sky or lamp.use_atmosphere diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py index 0d104571e4b..ba9bb4a624d 100644 --- a/release/scripts/startup/bl_ui/properties_game.py +++ b/release/scripts/startup/bl_ui/properties_game.py @@ -315,11 +315,9 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel): split = layout.split() - if dome_type == 'FISHEYE' or \ - dome_type == 'TRUNCATED_REAR' or \ - dome_type == 'TRUNCATED_FRONT': - + 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) @@ -336,6 +334,7 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel): else: # cube map col = split.column() + col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True) col = split.column() diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index 62cb735fda9..f5a95016baa 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -124,7 +124,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): split.template_ID(ob, "active_material", new="material.new") row = split.row() if mat: - row.prop(mat, "use_nodes", icon="NODETREE", text="") + row.prop(mat, "use_nodes", icon='NODETREE', text="") if slot: row.prop(slot, "link", text="") @@ -501,8 +501,8 @@ class MATERIAL_PT_sss(MaterialButtonsPanel, Panel): row = layout.row().split() sub = row.row(align=True).split(percentage=0.75) sub.menu("MATERIAL_MT_sss_presets", text=bpy.types.MATERIAL_MT_sss_presets.bl_label) - sub.operator("material.sss_preset_add", text="", icon="ZOOMIN") - sub.operator("material.sss_preset_add", text="", icon="ZOOMOUT").remove_active = True + sub.operator("material.sss_preset_add", text="", icon='ZOOMIN') + sub.operator("material.sss_preset_add", text="", icon='ZOOMOUT').remove_active = True split = layout.split() diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py index a359d58b59e..36b8129ad8a 100644 --- a/release/scripts/startup/bl_ui/properties_object.py +++ b/release/scripts/startup/bl_ui/properties_object.py @@ -267,12 +267,12 @@ class OBJECT_PT_relations_extras(ObjectButtonsPanel, Panel): ob = context.object split = layout.split() - + col = split.column() col.label(text="Tracking Axes:") col.prop(ob, "track_axis", text="Axis") col.prop(ob, "up_axis", text="Up Axis") - + col = split.column() col.prop(ob, "use_slow_parent") row = col.row() diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py index c66a0563754..afb3c000980 100644 --- a/release/scripts/startup/bl_ui/properties_physics_cloth.py +++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py @@ -73,8 +73,8 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel): col.label(text="Presets:") sub = col.row(align=True) sub.menu("CLOTH_MT_presets", text=bpy.types.CLOTH_MT_presets.bl_label) - sub.operator("cloth.preset_add", text="", icon="ZOOMIN") - sub.operator("cloth.preset_add", text="", icon="ZOOMOUT").remove_active = True + sub.operator("cloth.preset_add", text="", icon='ZOOMIN') + sub.operator("cloth.preset_add", text="", icon='ZOOMOUT').remove_active = True col.label(text="Quality:") col.prop(cloth, "quality", text="Steps", slider=True) diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py index efb760c0b43..ce65350e69b 100644 --- a/release/scripts/startup/bl_ui/properties_physics_fluid.py +++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py @@ -206,7 +206,7 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel): col = split.column() if scene.use_gravity: - col.label(text="Use Scene Gravity", icon="SCENE_DATA") + col.label(text="Use Scene Gravity", icon='SCENE_DATA') sub = col.column() sub.enabled = False sub.prop(fluid, "gravity", text="") @@ -215,7 +215,7 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel): col.prop(fluid, "gravity", text="") if scene.unit_settings.system != 'NONE': - col.label(text="Use Scene Size Units", icon="SCENE_DATA") + col.label(text="Use Scene Size Units", icon='SCENE_DATA') sub = col.column() sub.enabled = False sub.prop(fluid, "simulation_scale", text="Metres") diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 815f0a77570..145ae292e11 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -186,8 +186,8 @@ class RENDER_PT_dimensions(RenderButtonsPanel, Panel): row = layout.row(align=True) row.menu("RENDER_MT_presets", text=bpy.types.RENDER_MT_presets.bl_label) - row.operator("render.preset_add", text="", icon="ZOOMIN") - row.operator("render.preset_add", text="", icon="ZOOMOUT").remove_active = True + row.operator("render.preset_add", text="", icon='ZOOMIN') + row.operator("render.preset_add", text="", icon='ZOOMOUT').remove_active = True split = layout.split() diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 09209017823..3148c0dd51a 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -312,10 +312,10 @@ class CLIP_PT_track(Panel): row = layout.row(align=True) label = bpy.types.CLIP_MT_track_color_presets.bl_label row.menu('CLIP_MT_track_color_presets', text=label) - row.menu('CLIP_MT_track_color_specials', text="", icon="DOWNARROW_HLT") - row.operator("clip.track_color_preset_add", text="", icon="ZOOMIN") + row.menu('CLIP_MT_track_color_specials', text="", icon='DOWNARROW_HLT') + row.operator("clip.track_color_preset_add", text="", icon='ZOOMIN') props = row.operator("clip.track_color_preset_add", - text="", icon="ZOOMOUT") + text="", icon='ZOOMOUT') props.remove_active = True row = layout.row() @@ -349,8 +349,8 @@ class CLIP_PT_tracking_camera(Panel): row = layout.row(align=True) label = bpy.types.CLIP_MT_camera_presets.bl_label row.menu('CLIP_MT_camera_presets', text=label) - row.operator("clip.camera_preset_add", text="", icon="ZOOMIN") - props = row.operator("clip.camera_preset_add", text="", icon="ZOOMOUT") + row.operator("clip.camera_preset_add", text="", icon='ZOOMIN') + props = row.operator("clip.camera_preset_add", text="", icon='ZOOMOUT') props.remove_active = True row = layout.row(align=True) @@ -441,11 +441,11 @@ class CLIP_PT_track_settings(Panel): active = clip.tracking.tracks.active if active: - layout.prop(active, "tracker") - if active.tracker == "KLT": - layout.prop(active, "pyramid_levels") - if active.tracker == "SAD": - layout.prop(active, "correlation_min") + layout.prop(active, "tracker") + if active.tracker == 'KLT': + layout.prop(active, "pyramid_levels") + elif active.tracker == 'SAD': + layout.prop(active, "correlation_min") layout.prop(settings, "frames_adjust") layout.prop(settings, "speed") @@ -489,7 +489,7 @@ class CLIP_PT_stabilization(Panel): sub.operator("clip.stabilize_2d_remove", icon='ZOOMOUT', text="") sub.menu('CLIP_MT_stabilize_2d_specials', text="", - icon="DOWNARROW_HLT") + icon='DOWNARROW_HLT') layout.prop(stab, "influence_location") diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index 50db989a2e2..170ba3ccd0e 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -61,7 +61,7 @@ class IMAGE_MT_view(Menu): layout.separator() - ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]] + ratios = ((1, 8), (1, 4), (1, 2), (1, 1), (2, 1), (4, 1), (8, 1)) for a, b in ratios: layout.operator("image.view_zoom_ratio", text="Zoom" + " %d:%d" % (a, b)).ratio = a / b @@ -746,12 +746,12 @@ class IMAGE_PT_paint_curve(BrushButtonsPanel, 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' if __name__ == "__main__": # only for live edit. bpy.utils.register_module(__name__) diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index c6c4a8f3335..a2ede26ecc6 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -967,10 +967,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 5e5ce462da9..d738e806320 100644 --- a/release/scripts/startup/bl_ui/space_userpref_keymap.py +++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py @@ -223,7 +223,7 @@ class InputKeyMapPanel: col = layout.column() row = col.row() - row.label(text=km.name, icon="DOT") + row.label(text=km.name, icon='DOT') row.label() row.label() @@ -265,13 +265,13 @@ class InputKeyMapPanel: if not text: text = "Blender (default)" row.menu("USERPREF_MT_keyconfigs", text=text) - row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMIN") - row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMOUT").remove_active = True + row.operator("wm.keyconfig_preset_add", text="", icon='ZOOMIN') + row.operator("wm.keyconfig_preset_add", text="", icon='ZOOMOUT').remove_active = True #~ layout.context_pointer_set("keyconfig", wm.keyconfigs.active) #~ row.operator("wm.keyconfig_remove", text="", icon='X') - row.prop(context.space_data, "filter_text", icon="VIEWZOOM") + row.prop(context.space_data, "filter_text", icon='VIEWZOOM') col.separator() diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 9edb1ea1197..2d3be2015d7 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -1536,7 +1536,7 @@ class VIEW3D_MT_edit_mesh_select_mode(Menu): class VIEW3D_MT_edit_mesh_extrude(Menu): bl_label = "Extrude" - _extrude_funcs = { \ + _extrude_funcs = { "VERT": lambda layout: layout.operator("mesh.extrude_vertices_move", text="Vertices Only"), "EDGE": lambda layout: layout.operator("mesh.extrude_edges_move", text="Edges Only"), "FACE": lambda layout: layout.operator("mesh.extrude_faces_move", text="Individual Faces"), diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index 332577a7902..5bcdbc1efe8 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -172,7 +172,7 @@ class VIEW3D_PT_tools_meshedit(View3DPanel, Panel): class VIEW3D_PT_tools_meshedit_options(View3DPanel, Panel): bl_context = "mesh_edit" bl_label = "Mesh Options" - + @classmethod def poll(cls, context): return context.active_object @@ -912,12 +912,12 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel, Panel): layout.template_curve_mapping(brush, "curve", brush=True) 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 VIEW3D_PT_sculpt_options(PaintPanel, Panel): diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index df4e247bc93..c21806b4bc1 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -370,7 +370,9 @@ if(WITH_GAMEENGINE) endif() if(WITH_LIBMV) - list(APPEND INC ../../../extern/libmv) + list(APPEND INC + ../../../extern/libmv + ) add_definitions(-DWITH_LIBMV) endif() diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index e3bfdd54ab1..b72a3be1014 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -517,7 +517,7 @@ static ImBuf *get_undistorted_cache(MovieClip *clip, MovieClipUser *user) return cache->undistibuf; } -static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distoriton, ImBuf *ibuf) +static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distortion, ImBuf *ibuf) { ImBuf *undistibuf; @@ -525,8 +525,8 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist otherwise, undistorted proxy can be darker than it should */ imb_freerectfloatImBuf(ibuf); - if(distoriton) - undistibuf= BKE_tracking_distortion_exec(distoriton, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); + if(distortion) + undistibuf= BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); else undistibuf= BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 7991a903bbb..8e60fe984e6 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -30,7 +30,8 @@ #define MODSTACK_DEBUG 1 -/* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE! */ +/* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE! + * (ONLY ADD NEW ITEMS AT THE END) */ typedef enum ModifierType { eModifierType_None = 0, diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index f72fd3d465c..15ded001237 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -125,13 +125,6 @@ static void rna_tracking_trackerPyramid_update(Main *UNUSED(bmain), Scene *UNUSE BKE_tracking_clamp_track(track, CLAMP_PYRAMID_LEVELS); } -static int rna_tracking_markers_length(PointerRNA *ptr) -{ - MovieTrackingTrack *track= (MovieTrackingTrack *)ptr->data; - - return track->markersnr; -} - static float rna_trackingCamera_focal_mm_get(PointerRNA *ptr) { MovieClip *clip= (MovieClip*)ptr->id.data; @@ -499,7 +492,6 @@ static void rna_def_trackingTrack(BlenderRNA *brna) prop= RNA_def_property(srna, "markers", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "MovieTrackingMarker"); RNA_def_property_collection_sdna(prop, NULL, "markers", "markersnr"); - RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, NULL, "rna_tracking_markers_length", NULL, NULL, NULL); RNA_def_property_ui_text(prop, "Markers", "Collection of markers in track"); /* ** channels ** */ -- cgit v1.2.3 From 99621861341bd4a5adf39609b044a9e124d5382f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 8 Nov 2011 06:09:16 +0000 Subject: Code cleanup - reshuffling some stuff to avoid buildup of long functions in transform code again --- .../blender/editors/transform/transform_generics.c | 110 ++++++++++++--------- 1 file changed, 61 insertions(+), 49 deletions(-) diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 53e379a2d27..0e053e68496 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -619,6 +619,65 @@ static void recalcData_nla(TransInfo *t) } } +/* helper for recalcData() - for Image Editor transforms */ +static void recalcData_image(TransInfo *t) +{ + if (t->obedit && t->obedit->type == OB_MESH) { + SpaceImage *sima= t->sa->spacedata.first; + + flushTransUVs(t); + if(sima->flag & SI_LIVE_UNWRAP) + ED_uvedit_live_unwrap_re_solve(); + + DAG_id_tag_update(t->obedit->data, 0); + } +} + +/* helper for recalcData() - for Movie Clip transforms */ +static void recalcData_clip(TransInfo *t) +{ + SpaceClip *sc= t->sa->spacedata.first; + MovieClip *clip= ED_space_clip(sc); + MovieTrackingTrack *track; + + if(t->state == TRANS_CANCEL) { + track= clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track)) { + MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + + marker->flag= track->transflag; + } + + track= track->next; + } + } + + flushTransTracking(t); + + track= clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track)) { + if (t->mode == TFM_TRANSLATION) { + if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) + BKE_tracking_clamp_track(track, CLAMP_PAT_POS); + if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) + BKE_tracking_clamp_track(track, CLAMP_SEARCH_POS); + } + else if (t->mode == TFM_RESIZE) { + if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) + BKE_tracking_clamp_track(track, CLAMP_PAT_DIM); + if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) + BKE_tracking_clamp_track(track, CLAMP_SEARCH_DIM); + } + } + + track= track->next; + } + + DAG_id_tag_update(&clip->id, 0); +} + /* helper for recalcData() - for 3d-view transforms */ static void recalcData_view3d(TransInfo *t) { @@ -853,60 +912,13 @@ void recalcData(TransInfo *t) recalcData_nla(t); } else if (t->spacetype == SPACE_IMAGE) { - if (t->obedit && t->obedit->type == OB_MESH) { - SpaceImage *sima= t->sa->spacedata.first; - - flushTransUVs(t); - if(sima->flag & SI_LIVE_UNWRAP) - ED_uvedit_live_unwrap_re_solve(); - - DAG_id_tag_update(t->obedit->data, 0); - } + recalcData_image(t); } else if (t->spacetype == SPACE_VIEW3D) { recalcData_view3d(t); } else if (t->spacetype == SPACE_CLIP) { - SpaceClip *sc= t->sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); - MovieTrackingTrack *track; - - if(t->state == TRANS_CANCEL) { - track= clip->tracking.tracks.first; - while(track) { - if(TRACK_VIEW_SELECTED(sc, track)) { - MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); - - marker->flag= track->transflag; - } - - track= track->next; - } - } - - flushTransTracking(t); - - track= clip->tracking.tracks.first; - while(track) { - if(TRACK_VIEW_SELECTED(sc, track)) { - if (t->mode == TFM_TRANSLATION) { - if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) - BKE_tracking_clamp_track(track, CLAMP_PAT_POS); - if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) - BKE_tracking_clamp_track(track, CLAMP_SEARCH_POS); - } - else if (t->mode == TFM_RESIZE) { - if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) - BKE_tracking_clamp_track(track, CLAMP_PAT_DIM); - if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) - BKE_tracking_clamp_track(track, CLAMP_SEARCH_DIM); - } - } - - track= track->next; - } - - DAG_id_tag_update(&clip->id, 0); + recalcData_clip(t); } } -- cgit v1.2.3 From e28d0c6a8fe94d18bc1cd0b1f6cecd66d3b1abb9 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 8 Nov 2011 06:10:04 +0000 Subject: Tracker: * Typo fixes for space_clip.py, patch by Mike S on the mailing list. --- release/scripts/startup/bl_ui/space_clip.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 3148c0dd51a..55fc641f5ae 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -757,8 +757,8 @@ class CLIP_MT_reconstruction(Menu): layout.operator("clip.set_origin") layout.operator("clip.set_floor") - layout.operator("clip.set_axis", text="Set X Asix").axis = "X" - layout.operator("clip.set_axis", text="Set Y Asix").axis = "Y" + layout.operator("clip.set_axis", text="Set X Axis").axis = "X" + layout.operator("clip.set_axis", text="Set Y Axis").axis = "Y" layout.operator("clip.set_scale") -- cgit v1.2.3 From 23dfb8a156c8e6a11cdd27c0e789008b008b0c0c Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 06:11:23 +0000 Subject: Code cleanup and small fixes: - Assume all areas are using valid MovieClipUser when using functions from movieclip.c - Set active scene clip to movie-related nodes in compositor rather than checking if there's only one clip in datablocks - Fixed users count issue when solving camera motion --- source/blender/blenkernel/intern/movieclip.c | 37 ++++++++++------------ source/blender/editors/space_clip/tracking_ops.c | 5 ++- source/blender/editors/space_node/node_edit.c | 4 +-- source/blender/makesrna/intern/rna_movieclip.c | 22 ------------- .../nodes/node_composite_moviedistortion.c | 8 +++-- 5 files changed, 27 insertions(+), 49 deletions(-) diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index b72a3be1014..62225cfbd94 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -191,15 +191,13 @@ static ImBuf *movieclip_load_sequence_file(MovieClip *clip, MovieClipUser *user, { struct ImBuf *ibuf; char name[FILE_MAX]; - int loadflag /*, size */ /* UNUSED */, undistort; + int loadflag, use_proxy= 0; - /* size= rendersize_to_number(user->render_size); */ - - undistort= user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT; - - if((flag&MCLIP_USE_PROXY) && user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL) + 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); - else + } else get_sequence_fname(clip, framenr, name); loadflag= IB_rect|IB_multilayer; @@ -318,7 +316,7 @@ static ImBuf *get_imbuf_cache(MovieClip *clip, MovieClipUser *user, int flag) if(clip->cache) { MovieClipImBufCacheKey key; - key.framenr= user?user->framenr:clip->lastframe; + key.framenr= user->framenr; if(flag&MCLIP_USE_PROXY) { key.proxy= rendersize_to_proxy(user, flag); @@ -346,7 +344,7 @@ static void put_imbuf_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, i moviecache_hashcmp, moviecache_keydata); } - key.framenr= user?user->framenr:clip->lastframe; + key.framenr= user->framenr; if(flag&MCLIP_USE_PROXY) { key.proxy= rendersize_to_proxy(user, flag); @@ -478,9 +476,6 @@ static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, in static int need_undistorted_cache(MovieClipUser *user, int flag) { - if (!user) - return 0; - /* only full undistorted render can be used as on-fly undistorting image */ if(flag&MCLIP_USE_PROXY) { if(user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL || (user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT)==0) @@ -495,7 +490,7 @@ static ImBuf *get_undistorted_cache(MovieClip *clip, MovieClipUser *user) { MovieClipCache *cache= clip->cache; MovieTrackingCamera *camera= &clip->tracking.camera; - int framenr= user?user->framenr:clip->lastframe; + int framenr= user->framenr; /* no cache or no cached undistorted image */ if(!clip->cache || !clip->cache->undistibuf) @@ -547,7 +542,7 @@ static ImBuf *put_undistorted_cache(MovieClip *clip, MovieClipUser *user, ImBuf copy_v2_v2(cache->principal, camera->principal); copy_v3_v3(&cache->k1, &camera->k1); - cache->undist_framenr= user?user->framenr:clip->lastframe; + cache->undist_framenr= user->framenr; if(cache->undistibuf) IMB_freeImBuf(cache->undistibuf); @@ -568,7 +563,7 @@ static ImBuf *put_undistorted_cache(MovieClip *clip, MovieClipUser *user, ImBuf ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) { ImBuf *ibuf= NULL; - int framenr= user?user->framenr:clip->lastframe; + int framenr= user->framenr; int cache_undistorted= 0; /* cache isn't threadsafe itself and also loading of movies @@ -586,11 +581,11 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) ibuf= get_imbuf_cache(clip, user, clip->flag); if(!ibuf) { - int use_sequence= 1; + int use_sequence= 0; /* undistorted proxies for movies should be read as image sequence */ - use_sequence&= user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT; - use_sequence&= user->render_size!=MCLIP_PROXY_RENDER_SIZE_FULL; + use_sequence= (user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT) && + (user->render_size!=MCLIP_PROXY_RENDER_SIZE_FULL); if(clip->source==MCLIP_SRC_SEQUENCE || use_sequence) ibuf= movieclip_load_sequence_file(clip, user, framenr, clip->flag); @@ -622,7 +617,7 @@ ImBuf *BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user) ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int flag) { ImBuf *ibuf= NULL; - int framenr= user?user->framenr:clip->lastframe; + int framenr= user->framenr; int cache_undistorted= 0; /* cache isn't threadsafe itself and also loading of movies @@ -668,7 +663,7 @@ ImBuf *BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int fla ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle) { ImBuf *ibuf, *stableibuf= NULL; - int framenr= user?user->framenr:clip->lastframe; + int framenr= user->framenr; ibuf= BKE_movieclip_get_ibuf(clip, user); @@ -749,7 +744,7 @@ int BKE_movieclip_has_frame(MovieClip *clip, MovieClipUser *user) void BKE_movieclip_get_size(MovieClip *clip, MovieClipUser *user, int *width, int *height) { - if(!user || user->framenr==clip->lastframe) { + if(user->framenr==clip->lastframe) { *width= clip->lastsize[0]; *height= clip->lastsize[1]; } else { diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index e5bf053aa1c..6f2289388f5 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -1537,7 +1537,7 @@ static int solve_camera_exec(bContext *C, wmOperator *op) } /* could fail if footage uses images with different sizes */ - BKE_movieclip_get_size(clip, NULL, &width, &height); + BKE_movieclip_get_size(clip, &sc->user, &width, &height); error= BKE_tracking_solve_reconstruction(tracking, width, height); @@ -1546,6 +1546,9 @@ static int solve_camera_exec(bContext *C, wmOperator *op) else BKE_reportf(op->reports, RPT_INFO, "Average reprojection error %.3f", error); + if(scene->clip) + id_us_min(&clip->id); + scene->clip= clip; id_us_plus(&clip->id); diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 745611c6251..2d8fbb133b4 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -2211,9 +2211,7 @@ bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate node->id = &scene->id; } else if(ELEM3(node->type, CMP_NODE_MOVIECLIP, CMP_NODE_MOVIEDISTORTION, CMP_NODE_STABILIZE2D)) { - if(G.main->movieclip.first == G.main->movieclip.last) { - node->id= G.main->movieclip.first; - } + node->id = (ID *)scene->clip; } ntreeCompositForceHidden(snode->edittree, scene); diff --git a/source/blender/makesrna/intern/rna_movieclip.c b/source/blender/makesrna/intern/rna_movieclip.c index afdf3cd9c46..ad53a96b817 100644 --- a/source/blender/makesrna/intern/rna_movieclip.c +++ b/source/blender/makesrna/intern/rna_movieclip.c @@ -66,24 +66,6 @@ static void rna_MovieClip_size_get(PointerRNA *ptr, int *values) values[1]= clip->lastsize[1]; } -static void rna_MovieClip_resolution_get(PointerRNA *ptr, float *values) -{ - MovieClip *clip= (MovieClip*)ptr->id.data; - ImBuf *ibuf; - - ibuf= BKE_movieclip_get_ibuf(clip, NULL); - if (ibuf) { - values[0]= ibuf->ppm[0]; - values[1]= ibuf->ppm[1]; - - IMB_freeImBuf(ibuf); - } - else { - values[0]= 0; - values[1]= 0; - } -} - #else static void rna_def_movieclip_proxy(BlenderRNA *brna) @@ -235,10 +217,6 @@ static void rna_def_movieclip(BlenderRNA *brna) RNA_def_property_int_funcs(prop, "rna_MovieClip_size_get" , NULL, NULL); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - prop= RNA_def_float_vector(srna, "resolution" , 2 , NULL , 0, 0, "Resolution" , "X/Y pixels per meter" , 0 , 0); - RNA_def_property_float_funcs(prop, "rna_MovieClip_resolution_get", NULL, NULL); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - prop= RNA_def_property(srna, "display_aspect", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "aspx"); RNA_def_property_array(prop, 2); diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c index 439616377a1..8411de39353 100644 --- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c +++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c @@ -45,7 +45,7 @@ static bNodeSocketTemplate cmp_node_moviedistortion_out[]= { { -1, 0, "" } }; -static void exec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) +static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { if(in[0]->data) { if(node->id) { @@ -57,14 +57,18 @@ static void exec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack ** ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); if(ibuf) { + RenderData *rd= data; ImBuf *obuf; MovieTracking *tracking= &clip->tracking; int width, height; float overscan= 0.0f; + MovieClipUser user= {0}; + + BKE_movieclip_user_set_frame(&user, rd->cfra); ibuf->rect_float= cbuf->rect; - BKE_movieclip_get_size(clip, NULL, &width, &height); + BKE_movieclip_get_size(clip, &user, &width, &height); if(!node->storage) node->storage= BKE_tracking_distortion_create(); -- cgit v1.2.3 From be5ef51b731655b5c0473ea5601d7a6b5e6b8e3f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 09:02:47 +0000 Subject: use some more logical BLI math functions & tracking used INT_MAX on a short. --- source/blender/blenkernel/intern/particle_system.c | 2 +- source/blender/editors/armature/reeb.c | 2 +- source/blender/editors/space_view3d/drawobject.c | 2 +- source/blender/editors/space_view3d/view3d_snap.c | 2 +- source/blender/makesrna/intern/rna_tracking.c | 2 +- source/blender/render/intern/source/occlusion.c | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 3e88fb7d65e..cb12230615e 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3176,7 +3176,7 @@ static int collision_response(ParticleData *pa, ParticleCollision *col, BVHTreeR mul_v3_fl(v1_tan, 1.0f - 0.01f * frict); /* surface_velocity is opposite to cm velocity */ - mul_v3_v3fl(vr_tan, v1_tan, -1.0f); + negate_v3_v3(vr_tan, v1_tan); /* get back to global coordinates */ add_v3_v3(v1_tan, vc_tan); diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c index 0b214e48b6a..ce4092b2b84 100644 --- a/source/blender/editors/armature/reeb.c +++ b/source/blender/editors/armature/reeb.c @@ -3684,7 +3684,7 @@ void REEB_draw() if (G.scene->toolsettings->skgen_options & SKGEN_DISP_INDEX) { - interp_v3_v3v3(vec, arc->head->p, arc->tail->p, 0.5f); + mid_v3_v3v3(vec, arc->head->p, arc->tail->p); s += sprintf(s, "%i (%i-%i-%i) ", i, arc->symmetry_level, arc->symmetry_flag, arc->symmetry_group); if (G.scene->toolsettings->skgen_options & SKGEN_DISP_WEIGHT) diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 4809e463d75..f2bd4b51d94 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2561,7 +2561,7 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E copy_v3_v3(v1, eed->v1->co); copy_v3_v3(v2, eed->v2->co); - interp_v3_v3v3(vmid, v1, v2, 0.5f); + mid_v3_v3v3(vmid, v1, v2); if(do_global) { mul_mat3_m4_v3(ob->obmat, v1); diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index 012e08f98cb..7cd9c07c00c 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -781,7 +781,7 @@ static void bundle_midpoint(Scene *scene, Object *ob, float vec[3]) } if(ok) { - interp_v3_v3v3(vec, min, max, 0.5); + mid_v3_v3v3(vec, min, max); } } diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index 15ded001237..f8bdeef379f 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -242,7 +242,7 @@ static void rna_def_trackingSettings(BlenderRNA *brna) prop= RNA_def_property(srna, "frames_limit", PROP_INT, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_int_sdna(prop, NULL, "frames_limit"); - RNA_def_property_range(prop, 0, INT_MAX); + RNA_def_property_range(prop, 0, SHRT_MAX); RNA_def_property_ui_text(prop, "Frames Limit", "Amount of frames to be tracked during single tracking operation"); /* adjust frames */ diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index 7434425d24b..0984c9e784f 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -321,7 +321,7 @@ static void occ_face(const OccFace *face, float co[3], float normal[3], float *a if(co) { if(vlr->v4) - interp_v3_v3v3(co, vlr->v1->co, vlr->v3->co, 0.5f); + mid_v3_v3v3(co, vlr->v1->co, vlr->v3->co); else cent_tri_v3(co, vlr->v1->co, vlr->v2->co, vlr->v3->co); @@ -1623,7 +1623,7 @@ static void *exec_strandsurface_sample(void *data) if(face[3]) { co4= mesh->co[face[3]]; - interp_v3_v3v3(co, co1, co3, 0.5f); + mid_v3_v3v3(co, co1, co3); normal_quad_v3( n,co1, co2, co3, co4); } else { -- cgit v1.2.3 From d1067a2711a4b49b9ae9d5aaf827c802cca822cd Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 09:34:43 +0000 Subject: Fix a typo in building undistorted proxies for movie clips. Thanks Campbell to point on this issue. --- source/blender/blenkernel/intern/movieclip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 62225cfbd94..540d757f0c9 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -525,7 +525,7 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist else undistibuf= BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); - if(undistibuf->userflags|= IB_RECT_INVALID) { + if(undistibuf->userflags&IB_RECT_INVALID) { ibuf->userflags&= ~IB_RECT_INVALID; IMB_rect_from_float(undistibuf); } -- cgit v1.2.3 From e0030d6c1c8c7ff15de2da6b3834958762a20c42 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 10:17:50 +0000 Subject: - Fixed typo in KLT description tooltip - Fixed inconsistent data type used for pts number in ffmpeg_fetchibuf and stored in timecode structure. Not really issue for "correct" movie files, but probably can help for "broken" one --- source/blender/imbuf/intern/anim_movie.c | 2 +- source/blender/makesrna/intern/rna_tracking.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 3adb9a3791f..09b79e51648 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -890,7 +890,7 @@ static int ffmpeg_seek_by_byte(AVFormatContext *pFormatCtx) static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position, IMB_Timecode_Type tc) { - int64_t pts_to_search = 0; + unsigned long long pts_to_search = 0; double frame_rate; double pts_time_base; long long st_time; diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index f8bdeef379f..2c6384c75d8 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -418,7 +418,7 @@ static void rna_def_trackingTrack(BlenderRNA *brna) static EnumPropertyItem tracker_items[] = { {TRACKER_SAD, "SAD", 0, "SAD", "Sum of Absolute Differences tracker"}, - {TRACKER_KLT, "KLT", 0, "KLT", "Kanade–Lucas–Tomasi racker"}, + {TRACKER_KLT, "KLT", 0, "KLT", "Kanade–Lucas–Tomasi tracker"}, {0, NULL, 0, NULL, NULL}}; rna_def_trackingMarker(brna); -- cgit v1.2.3 From e06f206450b634737e3d2b310d1c702a994f28fe Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 11:02:57 +0000 Subject: Fix: incorrect use of IFACE_ macro, and correct a typo. --- source/blender/editors/space_node/node_header.c | 2 +- source/blender/editors/space_node/node_templates.c | 2 +- source/blender/editors/transform/transform.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index d752dd79a19..6dd5eeba832 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -229,7 +229,7 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass) static void node_menu_add_foreach_cb(void *calldata, int nclass, const char *name) { uiLayout *layout= calldata; - uiItemMenuF(layout, IFACE_(name), 0, node_add_menu, SET_INT_IN_POINTER(nclass)); + uiItemMenuF(layout, name, 0, node_add_menu, SET_INT_IN_POINTER(nclass)); } static void node_menu_add(const bContext *C, Menu *menu) diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c index b877bea6be9..806a6f98828 100644 --- a/source/blender/editors/space_node/node_templates.c +++ b/source/blender/editors/space_node/node_templates.c @@ -432,7 +432,7 @@ static void node_menu_column_foreach_cb(void *calldata, int nclass, const char * NodeLinkArg *arg = (NodeLinkArg*)calldata; if(!ELEM(nclass, NODE_CLASS_GROUP, NODE_CLASS_LAYOUT)) - ui_node_menu_column(arg, nclass, IFACE_(name)); + ui_node_menu_column(arg, nclass, name); } static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_p) diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 13d686508de..95daa11d97f 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -513,7 +513,7 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf) {NUM_MODAL_INCREMENT_UP, "INCREMENT_UP", 0, "Numinput Increment Up", ""}, {NUM_MODAL_INCREMENT_DOWN, "INCREMENT_DOWN", 0, "Numinput Increment Down", ""}, {TFM_MODAL_PROPSIZE_UP, "PROPORTIONAL_SIZE_UP", 0, "Increase Proportional Influence", ""}, - {TFM_MODAL_PROPSIZE_DOWN, "PROPORTIONAL_SIZE_DOWN", 0, "Decrease Poportional Influence", ""}, + {TFM_MODAL_PROPSIZE_DOWN, "PROPORTIONAL_SIZE_DOWN", 0, "Decrease Proportional Influence", ""}, {TFM_MODAL_AUTOIK_LEN_INC, "AUTOIK_CHAIN_LEN_UP", 0, "Increase Max AutoIK Chain Length", ""}, {TFM_MODAL_AUTOIK_LEN_DEC, "AUTOIK_CHAIN_LEN_DOWN", 0, "Decrease Max AutoIK Chain Length", ""}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From ee6f269cda2164509a36caf0947663689823a104 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 11:15:40 +0000 Subject: Code cleanup: fix compile warning. --- source/blenderplayer/bad_level_call_stubs/stubs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 4bc7aa4d689..2f297926fc7 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -66,6 +66,7 @@ struct MCol; struct MenuType; struct Mesh; struct ModifierData; +struct MovieClip; struct MultiresModifierData; struct NodeBlurData; struct Nurb; @@ -80,6 +81,7 @@ struct ScrArea; struct SculptSession; struct ShadeInput; struct ShadeResult; +struct SpaceClip; struct SpaceImage; struct SpaceNode; struct Tex; -- cgit v1.2.3 From db75cc4cdebb536774a8f2d7601319e2c898ecb0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 11:38:16 +0000 Subject: Nodes: add cycles shader nodes, these will only be available to render engines that use the new shading nodes system. Documentation: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes --- source/blender/blenkernel/BKE_node.h | 34 + source/blender/blenkernel/intern/node.c | 53 +- source/blender/editors/object/object_add.c | 18 +- source/blender/editors/space_node/drawnode.c | 79 + source/blender/editors/space_node/node_edit.c | 47 +- source/blender/gpu/intern/gpu_shader_material.glsl | 317 +++ .../blender/gpu/intern/gpu_shader_material.glsl.c | 2641 +++++++++++--------- source/blender/makesdna/DNA_node_types.h | 122 + source/blender/makesrna/intern/rna_nodetree.c | 248 ++ .../blender/makesrna/intern/rna_nodetree_types.h | 34 +- source/blender/nodes/CMakeLists.txt | 31 + source/blender/nodes/NOD_shader.h | 35 + source/blender/nodes/shader/node_shader_tree.c | 3 +- source/blender/nodes/shader/node_shader_util.c | 19 + source/blender/nodes/shader/node_shader_util.h | 2 + .../nodes/shader/nodes/node_shader_add_shader.c | 66 + .../nodes/shader/nodes/node_shader_attribute.c | 63 + .../nodes/shader/nodes/node_shader_background.c | 61 + .../shader/nodes/node_shader_bsdf_anisotropic.c | 67 + .../nodes/shader/nodes/node_shader_bsdf_diffuse.c | 65 + .../nodes/shader/nodes/node_shader_bsdf_glass.c | 67 + .../nodes/shader/nodes/node_shader_bsdf_glossy.c | 67 + .../shader/nodes/node_shader_bsdf_translucent.c | 65 + .../shader/nodes/node_shader_bsdf_transparent.c | 65 + .../nodes/shader/nodes/node_shader_bsdf_velvet.c | 66 + .../nodes/shader/nodes/node_shader_emission.c | 66 + .../nodes/shader/nodes/node_shader_fresnel.c | 65 + .../blender/nodes/shader/nodes/node_shader_geom.c | 1 + .../nodes/shader/nodes/node_shader_geometry.c | 68 + .../nodes/shader/nodes/node_shader_holdout.c | 60 + .../nodes/shader/nodes/node_shader_layer_weight.c | 66 + .../nodes/shader/nodes/node_shader_light_path.c | 66 + .../nodes/shader/nodes/node_shader_mapping.c | 2 +- .../blender/nodes/shader/nodes/node_shader_math.c | 2 +- .../nodes/shader/nodes/node_shader_mixRgb.c | 2 +- .../nodes/shader/nodes/node_shader_mix_shader.c | 67 + .../nodes/shader/nodes/node_shader_output_lamp.c | 55 + .../shader/nodes/node_shader_output_material.c | 68 + .../nodes/shader/nodes/node_shader_output_world.c | 56 + .../blender/nodes/shader/nodes/node_shader_rgb.c | 2 +- .../nodes/shader/nodes/node_shader_tex_coord.c | 72 + .../shader/nodes/node_shader_tex_environment.c | 89 + .../nodes/shader/nodes/node_shader_tex_gradient.c | 81 + .../nodes/shader/nodes/node_shader_tex_image.c | 89 + .../nodes/shader/nodes/node_shader_tex_magic.c | 86 + .../nodes/shader/nodes/node_shader_tex_musgrave.c | 87 + .../nodes/shader/nodes/node_shader_tex_noise.c | 83 + .../nodes/shader/nodes/node_shader_tex_sky.c | 83 + .../nodes/shader/nodes/node_shader_tex_voronoi.c | 82 + .../nodes/shader/nodes/node_shader_tex_wave.c | 85 + .../nodes/shader/nodes/node_shader_valToRgb.c | 2 +- .../blender/nodes/shader/nodes/node_shader_value.c | 2 +- .../nodes/shader/nodes/node_shader_vectMath.c | 2 +- .../shader/nodes/node_shader_volume_isotropic.c | 66 + .../shader/nodes/node_shader_volume_transparent.c | 66 + 55 files changed, 4706 insertions(+), 1250 deletions(-) create mode 100644 source/blender/nodes/shader/nodes/node_shader_add_shader.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_attribute.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_background.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_emission.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_fresnel.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_geometry.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_holdout.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_layer_weight.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_light_path.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_mix_shader.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_lamp.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_material.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_output_world.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_coord.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_environment.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_gradient.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_image.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_magic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_noise.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_sky.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_tex_wave.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c create mode 100644 source/blender/nodes/shader/nodes/node_shader_volume_transparent.c diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index b94fffab714..a06d57ae517 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -456,6 +456,40 @@ struct ShadeResult; #define SH_NODE_HUE_SAT 122 #define NODE_DYNAMIC 123 +#define SH_NODE_OUTPUT_MATERIAL 124 +#define SH_NODE_OUTPUT_WORLD 125 +#define SH_NODE_OUTPUT_LAMP 126 +#define SH_NODE_FRESNEL 127 +#define SH_NODE_MIX_SHADER 128 +#define SH_NODE_ATTRIBUTE 129 +#define SH_NODE_BACKGROUND 130 +#define SH_NODE_BSDF_ANISOTROPIC 131 +#define SH_NODE_BSDF_DIFFUSE 132 +#define SH_NODE_BSDF_GLOSSY 133 +#define SH_NODE_BSDF_GLASS 134 +#define SH_NODE_BSDF_TRANSLUCENT 137 +#define SH_NODE_BSDF_TRANSPARENT 138 +#define SH_NODE_BSDF_VELVET 139 +#define SH_NODE_EMISSION 140 +#define SH_NODE_NEW_GEOMETRY 141 +#define SH_NODE_LIGHT_PATH 142 +#define SH_NODE_TEX_IMAGE 143 +#define SH_NODE_TEX_SKY 145 +#define SH_NODE_TEX_GRADIENT 146 +#define SH_NODE_TEX_VORONOI 147 +#define SH_NODE_TEX_MAGIC 148 +#define SH_NODE_TEX_WAVE 149 +#define SH_NODE_TEX_NOISE 150 +#define SH_NODE_TEX_MUSGRAVE 152 +#define SH_NODE_TEX_COORD 155 +#define SH_NODE_ADD_SHADER 156 +#define SH_NODE_TEX_ENVIRONMENT 157 +#define SH_NODE_OUTPUT_TEXTURE 158 +#define SH_NODE_HOLDOUT 159 +#define SH_NODE_LAYER_WEIGHT 160 +#define SH_NODE_VOLUME_TRANSPARENT 161 +#define SH_NODE_VOLUME_ISOTROPIC 162 + /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 #define SH_NODE_MAT_SPEC 2 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 115591863cc..9fc18c3e0fc 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1865,13 +1865,18 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_frame(ntypelist); register_node_type_sh_group(ntypelist); -// register_node_type_sh_forloop(ntypelist); -// register_node_type_sh_whileloop(ntypelist); - + //register_node_type_sh_forloop(ntypelist); + //register_node_type_sh_whileloop(ntypelist); + register_node_type_sh_output(ntypelist); + register_node_type_sh_material(ntypelist); + register_node_type_sh_camera(ntypelist); + register_node_type_sh_value(ntypelist); + register_node_type_sh_rgb(ntypelist); register_node_type_sh_mix_rgb(ntypelist); register_node_type_sh_valtorgb(ntypelist); register_node_type_sh_rgbtobw(ntypelist); + register_node_type_sh_texture(ntypelist); register_node_type_sh_normal(ntypelist); register_node_type_sh_geom(ntypelist); register_node_type_sh_mapping(ntypelist); @@ -1880,17 +1885,47 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_math(ntypelist); register_node_type_sh_vect_math(ntypelist); register_node_type_sh_squeeze(ntypelist); - register_node_type_sh_camera(ntypelist); - register_node_type_sh_material(ntypelist); + //register_node_type_sh_dynamic(ntypelist); register_node_type_sh_material_ext(ntypelist); - register_node_type_sh_value(ntypelist); - register_node_type_sh_rgb(ntypelist); - register_node_type_sh_texture(ntypelist); -// register_node_type_sh_dynamic(ntypelist); register_node_type_sh_invert(ntypelist); register_node_type_sh_seprgb(ntypelist); register_node_type_sh_combrgb(ntypelist); register_node_type_sh_hue_sat(ntypelist); + + register_node_type_sh_attribute(ntypelist); + register_node_type_sh_geometry(ntypelist); + register_node_type_sh_light_path(ntypelist); + register_node_type_sh_fresnel(ntypelist); + register_node_type_sh_layer_weight(ntypelist); + register_node_type_sh_tex_coord(ntypelist); + + register_node_type_sh_background(ntypelist); + register_node_type_sh_bsdf_diffuse(ntypelist); + register_node_type_sh_bsdf_glossy(ntypelist); + register_node_type_sh_bsdf_glass(ntypelist); + register_node_type_sh_bsdf_translucent(ntypelist); + register_node_type_sh_bsdf_transparent(ntypelist); + register_node_type_sh_bsdf_velvet(ntypelist); + register_node_type_sh_emission(ntypelist); + register_node_type_sh_holdout(ntypelist); + //register_node_type_sh_volume_transparent(ntypelist); + //register_node_type_sh_volume_isotropic(ntypelist); + register_node_type_sh_mix_shader(ntypelist); + register_node_type_sh_add_shader(ntypelist); + + register_node_type_sh_output_lamp(ntypelist); + register_node_type_sh_output_material(ntypelist); + register_node_type_sh_output_world(ntypelist); + + register_node_type_sh_tex_image(ntypelist); + register_node_type_sh_tex_environment(ntypelist); + register_node_type_sh_tex_sky(ntypelist); + register_node_type_sh_tex_noise(ntypelist); + register_node_type_sh_tex_wave(ntypelist); + register_node_type_sh_tex_voronoi(ntypelist); + register_node_type_sh_tex_musgrave(ntypelist); + register_node_type_sh_tex_gradient(ntypelist); + register_node_type_sh_tex_magic(ntypelist); } static void registerTextureNodes(ListBase *ntypelist) diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 8d4d29dbe50..9b539871cbc 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -78,6 +78,7 @@ #include "BKE_particle.h" #include "BKE_report.h" #include "BKE_sca.h" +#include "BKE_scene.h" #include "BKE_speaker.h" #include "BKE_texture.h" @@ -92,6 +93,7 @@ #include "ED_curve.h" #include "ED_mball.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_object.h" #include "ED_render.h" #include "ED_screen.h" @@ -322,6 +324,7 @@ Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, int en /* more editor stuff */ ED_object_base_init_transform(C, BASACT, loc, rot); + DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); ED_render_id_flush_update(bmain, ob->data); @@ -700,7 +703,9 @@ static const char *get_lamp_defname(int type) static int object_lamp_add_exec(bContext *C, wmOperator *op) { + Scene *scene= CTX_data_scene(C); Object *ob; + Lamp *la; int type= RNA_enum_get(op->ptr, "type"); int enter_editmode; unsigned int layer; @@ -711,9 +716,16 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer); - ((Lamp*)ob->data)->type= type; - rename_id((ID *)ob, get_lamp_defname(type)); - rename_id((ID *)ob->data, get_lamp_defname(type)); + la= (Lamp*)ob->data; + + la->type= type; + rename_id(&ob->id, get_lamp_defname(type)); + rename_id(&la->id, get_lamp_defname(type)); + + if(scene_use_new_shading_nodes(scene)) { + ED_node_shader_default(scene, &la->id); + la->use_nodes= 1; + } return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 648027b9c58..4394b4b1920 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -994,6 +994,54 @@ static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA } } +static void node_shader_buts_attribute(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "attribute_name", 0, "Name", ICON_NONE); +} + +static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA *ptr) +{ + //uiItemR(layout, ptr, "image", 0, "", ICON_NONE); + uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); + uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_sky(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "sun_direction", 0, "", ICON_NONE); + uiItemR(layout, ptr, "turbidity", 0, NULL, ICON_NONE); +} + +static void node_shader_buts_tex_gradient(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "gradient_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_magic(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE); +} + +static void node_shader_buts_tex_wave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_musgrave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "musgrave_type", 0, "", ICON_NONE); +} + +static void node_shader_buts_tex_voronoi(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "coloring", 0, "", ICON_NONE); +} + +static void node_shader_buts_glossy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiItemR(layout, ptr, "distribution", 0, "", ICON_NONE); +} + static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *ptr) { Main *bmain= CTX_data_main(C); @@ -1080,6 +1128,37 @@ static void node_shader_set_butfunc(bNodeType *ntype) case SH_NODE_GEOMETRY: ntype->uifunc= node_shader_buts_geometry; break; + case SH_NODE_ATTRIBUTE: + ntype->uifunc= node_shader_buts_attribute; + break; + case SH_NODE_TEX_SKY: + ntype->uifunc= node_shader_buts_tex_sky; + break; + case SH_NODE_TEX_IMAGE: + ntype->uifunc= node_shader_buts_tex_image; + break; + case SH_NODE_TEX_ENVIRONMENT: + ntype->uifunc= node_shader_buts_tex_image; + break; + case SH_NODE_TEX_GRADIENT: + ntype->uifunc= node_shader_buts_tex_gradient; + break; + case SH_NODE_TEX_MAGIC: + ntype->uifunc= node_shader_buts_tex_magic; + break; + case SH_NODE_TEX_WAVE: + ntype->uifunc= node_shader_buts_tex_wave; + break; + case SH_NODE_TEX_MUSGRAVE: + ntype->uifunc= node_shader_buts_tex_musgrave; + break; + case SH_NODE_TEX_VORONOI: + ntype->uifunc= node_shader_buts_tex_voronoi; + break; + case SH_NODE_BSDF_GLOSSY: + case SH_NODE_BSDF_GLASS: + ntype->uifunc= node_shader_buts_glossy; + break; case NODE_DYNAMIC: ntype->uifunc= node_shader_buts_dynamic; break; diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 2d8fbb133b4..a1b705610f4 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -61,6 +61,7 @@ #include "BKE_material.h" #include "BKE_modifier.h" #include "BKE_paint.h" +#include "BKE_scene.h" #include "BKE_screen.h" #include "BKE_texture.h" #include "BKE_report.h" @@ -269,13 +270,14 @@ bNode *node_tree_get_editgroup(bNodeTree *nodetree) /* assumes nothing being done in ntree yet, sets the default in/out node */ /* called from shading buttons or header */ -void ED_node_shader_default(Scene *UNUSED(scene), ID *id) +void ED_node_shader_default(Scene *scene, ID *id) { bNode *in, *out; - bNodeSocket *fromsock, *tosock; + bNodeSocket *fromsock, *tosock, *sock; bNodeTree *ntree; bNodeTemplate ntemp; int output_type, shader_type; + float color[3], strength = 1.0f; ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, 0); @@ -284,24 +286,42 @@ void ED_node_shader_default(Scene *UNUSED(scene), ID *id) Material *ma= (Material*)id; ma->nodetree = ntree; - output_type = SH_NODE_OUTPUT; - shader_type = SH_NODE_MATERIAL; + if(scene_use_new_shading_nodes(scene)) { + output_type = SH_NODE_OUTPUT_MATERIAL; + shader_type = SH_NODE_BSDF_DIFFUSE; + } + else { + output_type = SH_NODE_OUTPUT; + shader_type = SH_NODE_MATERIAL; + } + + copy_v3_v3(color, &ma->r); + strength= 0.0f; break; } case ID_WO: { World *wo= (World*)id; wo->nodetree = ntree; - output_type = SH_NODE_OUTPUT; - shader_type = SH_NODE_MATERIAL; + output_type = SH_NODE_OUTPUT_WORLD; + shader_type = SH_NODE_BACKGROUND; + + copy_v3_v3(color, &wo->horr); + strength= 1.0f; break; } case ID_LA: { Lamp *la= (Lamp*)id; la->nodetree = ntree; - output_type = SH_NODE_OUTPUT; - shader_type = SH_NODE_MATERIAL; + output_type = SH_NODE_OUTPUT_LAMP; + shader_type = SH_NODE_EMISSION; + + copy_v3_v3(color, &la->r); + if(la->type == LA_LOCAL || la->type == LA_SPOT || la->type == LA_AREA) + strength= 100.0f; + else + strength= 1.0f; break; } default: @@ -322,6 +342,17 @@ void ED_node_shader_default(Scene *UNUSED(scene), ID *id) fromsock= in->outputs.first; tosock= out->inputs.first; nodeAddLink(ntree, in, fromsock, out, tosock); + + /* default values */ + if(scene_use_new_shading_nodes(scene)) { + sock= in->inputs.first; + copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, color); + + if(strength != 0.0f) { + sock= in->inputs.last; + ((bNodeSocketValueFloat*)sock->default_value)->value= strength; + } + } ntreeUpdateTree(ntree); } diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index c5c822d9224..4a9d793aaad 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -108,6 +108,7 @@ void linearrgb_to_srgb(vec4 col_from, out vec4 col_to) } #define M_PI 3.14159265358979323846 +#define M_1_PI 0.31830988618379069 /*********** SHADER NODES ***************/ @@ -1802,3 +1803,319 @@ void shade_alpha_obcolor(vec4 col, vec4 obcol, out vec4 outcol) outcol = vec4(col.rgb, col.a*obcol.a); } +/*********** NEW SHADER UTILITIES **************/ + +float fresnel_dielectric(vec3 Incoming, vec3 Normal, float eta) +{ + /* compute fresnel reflectance without explicitly computing + the refracted direction */ + float c = abs(dot(Incoming, Normal)); + float g = eta * eta - 1.0 + c * c; + float result; + + if(g > 0.0) { + g = sqrt(g); + float A =(g - c)/(g + c); + float B =(c *(g + c)- 1.0)/(c *(g - c)+ 1.0); + result = 0.5 * A * A *(1.0 + B * B); + } + else + result = 1.0; /* TIR (no refracted component) */ + + return result; +} + +float hypot(float x, float y) +{ + return sqrt(x*x + y*y); +} + +/*********** NEW SHADER NODES ***************/ + +#define NUM_LIGHTS 3 + +/* bsdfs */ + +void node_bsdf_diffuse(vec4 color, vec3 N, out vec4 result) +{ + /* ambient light */ + vec3 L = vec3(0.2); + + /* directional lights */ + for(int i = 0; i < NUM_LIGHTS; i++) { + vec3 light_position = gl_LightSource[i].position.xyz; + vec3 light_diffuse = gl_LightSource[i].diffuse.rgb; + + float bsdf = max(dot(N, light_position), 0.0); + L += light_diffuse*bsdf; + } + + result = vec4(L*color.rgb, 1.0); +} + +void node_bsdf_glossy(vec4 color, float roughness, vec3 N, vec3 I, out vec4 result) +{ + vec3 L = vec3(0.0); + + /* directional lights */ + for(int i = 0; i < NUM_LIGHTS; i++) { + vec3 H = gl_LightSource[i].halfVector.xyz; + vec3 light_specular = gl_LightSource[i].specular.rgb; + + float bsdf = pow(max(dot(N, H), 0.0), 1.0/roughness); + L += light_specular*bsdf; + } + + result = vec4(L*color.rgb, 1.0); +} + +void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 N, vec3 I, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, vec3 I, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_translucent(vec4 color, vec3 N, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +void node_bsdf_transparent(vec4 color, out vec4 result) +{ + /* this isn't right */ + result.r = color.r; + result.g = color.g; + result.b = color.b; + result.a = 0.0; +} + +void node_bsdf_velvet(vec4 color, float sigma, vec3 N, out vec4 result) +{ + node_bsdf_diffuse(color, N, result); +} + +/* emission */ + +void node_emission(vec4 color, float strength, vec3 N, out vec4 result) +{ + result = color*strength; +} + +/* closures */ + +void node_mix_shader(float fac, vec4 shader1, vec4 shader2, out vec4 shader) +{ + shader = mix(shader1, shader2, fac); +} + +void node_add_shader(vec4 shader1, vec4 shader2, out vec4 shader) +{ + shader = shader1 + shader2; +} + +/* fresnel */ + +void node_fresnel(float ior, vec3 N, vec3 I, out float result) +{ + float eta = max(ior, 0.00001); + result = fresnel_dielectric(I, N, eta); //backfacing()? 1.0/eta: eta); +} + +/* geometry */ + +void node_geometry(vec3 I, vec3 N, mat4 toworld, + out vec3 position, out vec3 normal, out vec3 tangent, + out vec3 true_normal, out vec3 incoming, out vec3 parametric, + out float backfacing) +{ + position = (toworld*vec4(I, 1.0)).xyz; + normal = N; + tangent = vec3(0.0); + true_normal = N; + incoming = I; + parametric = vec3(0.0); + backfacing = 0.0; +} + +void node_tex_coord(vec3 I, vec3 N, mat4 toworld, + vec3 attr_orco, vec3 attr_uv, + out vec3 generated, out vec3 uv, out vec3 object, + out vec3 camera, out vec3 window, out vec3 reflection) +{ + generated = attr_orco; + uv = attr_uv; + object = I; + camera = I; + window = gl_FragCoord.xyz; + reflection = reflect(N, I); + +} + +/* textures */ + +void node_tex_blend(vec3 co, out float fac) +{ + fac = 1.0; +} + +void node_tex_clouds(vec3 co, float size, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_distnoise(vec3 co, float size, float distortion, out float fac) +{ + fac = 1.0; +} + +void node_tex_environment(vec3 co, sampler2D ima, out vec4 color) +{ + float u = (atan(co.y, co.x) + M_PI)/(2.0*M_PI); + float v = atan(co.z, hypot(co.x, co.y))/M_PI + 0.5; + + color = texture2D(ima, vec2(u, v)); +} + +void node_tex_image(vec3 co, sampler2D ima, out vec4 color) +{ + color = texture2D(ima, co.xy); +} + +void node_tex_magic(vec3 p, float turbulence, float n, out vec4 color) +{ + float turb = turbulence/5.0; + + float x = sin((p.x + p.y + p.z)*5.0); + float y = cos((-p.x + p.y - p.z)*5.0); + float z = -cos((-p.x - p.y + p.z)*5.0); + + if(n > 0.0) { + x *= turb; + y *= turb; + z *= turb; + y = -cos(x-y+z); + y *= turb; + + if(n > 1.0) { + x= cos(x-y-z); + x *= turb; + + if(n > 2.0) { + z= sin(-x-y-z); + z *= turb; + + if(n > 3.0) { + x= -cos(-x+y-z); + x *= turb; + + if(n > 4.0) { + y= -sin(-x+y+z); + y *= turb; + + if(n > 5.0) { + y= -cos(-x+y+z); + y *= turb; + + if(n > 6.0) { + x= cos(x+y+z); + x *= turb; + + if(n > 7.0) { + z= sin(x+y-z); + z *= turb; + + if(n > 8.0) { + x= -cos(-x-y+z); + x *= turb; + + if(n > 9.0) { + y= -sin(x-y+z); + y *= turb; + } + } + } + } + } + } + } + } + } + } + + if(turb != 0.0) { + turb *= 2.0; + x /= turb; + y /= turb; + z /= turb; + } + + color = vec4(0.5 - x, 0.5 - y, 0.5 - z, 1.0); +} + +void node_tex_marble(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +void node_tex_musgrave(vec3 co, float size, float dimension, float lacunarity, float octaves, float offset, float gain, out float fac) +{ + fac = 1.0; +} + +void node_tex_noise(vec3 co, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_sky(vec3 co, out vec4 color) +{ + color = vec4(1.0); +} + +void node_tex_stucci(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +void node_tex_voronoi(vec3 co, float size, float weight1, float weight2, float weight3, float weight4, float exponent, out vec4 color, out float fac) +{ + color = vec4(1.0); + fac = 1.0; +} + +void node_tex_wood(vec3 co, float size, float turbulence, out float fac) +{ + fac = 1.0; +} + +/* light path */ + +void node_light_path( + out float is_camera_ray, + out float is_shadow_ray, + out float is_diffuse_ray, + out float is_glossy_ray, + out float is_reflection_ray, + out float is_transmission_ray) +{ + is_camera_ray = 1.0; + is_shadow_ray = 0.0; + is_diffuse_ray = 0.0; + is_glossy_ray = 0.0; + is_reflection_ray = 0.0; + is_transmission_ray = 0.0; +} + +/* output */ + +void node_output_material(vec4 surface, vec4 volume, float displacement, out vec4 result) +{ + result = surface; +} + diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c index b551ee9dda1..e284c42532b 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl.c +++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c @@ -1,1254 +1,1453 @@ /* DataToC output of file */ -int datatoc_gpu_shader_material_glsl_size= 39910; +int datatoc_gpu_shader_material_glsl_size= 46289; 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, 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,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,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, + 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,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,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,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, + 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,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,100,105,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, + 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,100,105,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,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, + 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,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, + 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,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, + 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, 97,116, 40,102,108, + 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, 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, + 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, 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, +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,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, +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,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, +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,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, + 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,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,109, 86,105,101,119, 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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,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, + 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,109, 86,105,101,119, + 32, 42, 32,109, 79, 98,106, 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,109, 79, 98,106, 73,110,118, 32, 42, 32,109, 86,105,101,119, 73,110,118, 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,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,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, +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, 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, 10, 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,125, 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, +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, 10, 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,125, 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,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,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, + 40, 48, 46, 48, 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, 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,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,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,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, 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, 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, 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, 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, + 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,116,111,119,111,114,108,100, 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,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,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, 98,108,101,110,100, 40,118,101, 99, 51, 32, 99,111, 44, + 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,100,105,115, +116,110,111,105,115,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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, 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,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,116,117,114, 98,117,108,101,110, 99,101, 44, 32,102,108,111, 97,116, 32,110, 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,116,117,114, 98, 32, 61, 32,116,117,114, 98,117,108,101, +110, 99,101, 47, 53, 46, 48, 59, 10, 10, 9,102,108,111, 97,116, 32,120, 32, 61, 32,115,105,110, 40, 40,112, 46,120, 32, 43, 32, +112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,121, 32, 61, 32, 99,111,115, 40, + 40, 45,112, 46,120, 32, 43, 32,112, 46,121, 32, 45, 32,112, 46,122, 41, 42, 53, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32, +122, 32, 61, 32, 45, 99,111,115, 40, 40, 45,112, 46,120, 32, 45, 32,112, 46,121, 32, 43, 32,112, 46,122, 41, 42, 53, 46, 48, 41, + 59, 10, 10, 9,105,102, 40,110, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, + 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 9, 9,121, 32, 61, 32, 45, + 99,111,115, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9,105,102, 40,110, + 32, 62, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9,120, + 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9,105,102, 40,110, 32, 62, 32, 50, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, +122, 61, 32,115,105,110, 40, 45,120, 45,121, 45,122, 41, 59, 10, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, + 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 51, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, 45, +120, 43,121, 45,122, 41, 59, 10, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9,105,102, + 40,110, 32, 62, 32, 52, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9,121, 61, 32, 45,115,105,110, 40, 45,120, 43,121, 43,122, + 41, 59, 10, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 53, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9,121, 61, 32, 45, 99,111,115, 40, 45,120, 43,121, 43,122, 41, 59, + 10, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, + 62, 32, 54, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 99,111,115, 40,120, 43,121, 43,122, 41, 59, 10, + 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, + 32, 62, 32, 55, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 61, 32,115,105,110, 40,120, 43,121, 45,122, 41, + 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,122, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, +105,102, 40,110, 32, 62, 32, 56, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 61, 32, 45, 99,111,115, 40, + 45,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,120, 32, 42, 61, 32,116,117,114, 98, 59, 10, 10, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,105,102, 40,110, 32, 62, 32, 57, 46, 48, 41, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,121, 61, 32, 45,115,105,110, 40,120, 45,121, 43,122, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,121, 32, 42, + 61, 32,116,117,114, 98, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, + 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9, 9, 9, 9,125, + 10, 9, 9, 9, 9,125, 10, 9, 9, 9,125, 10, 9, 9,125, 10, 9,125, 10, 10, 9,105,102, 40,116,117,114, 98, 32, 33, 61, 32, + 48, 46, 48, 41, 32,123, 10, 9, 9,116,117,114, 98, 32, 42, 61, 32, 50, 46, 48, 59, 10, 9, 9,120, 32, 47, 61, 32,116,117,114, + 98, 59, 10, 9, 9,121, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9, 9,122, 32, 47, 61, 32,116,117,114, 98, 59, 10, 9,125, 10, + 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 53, 32, 45, 32,120, 44, 32, 48, 46, 53, 32, 45, 32,121, 44, + 32, 48, 46, 53, 32, 45, 32,122, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, + 95,109, 97,114, 98,108,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, + 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,105,122,101, 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, 99,116, 97,118,101,115, 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,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,115,116,117, 99, 99,105, + 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98, +117,108,101,110, 99,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,118,111,114,111,110,111,105, 40,118,101, + 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 49, + 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 50, 44, 32,102,108,111, 97,116, 32,119,101,105,103,104,116, 51, 44, 32, +102,108,111, 97,116, 32,119,101,105,103,104,116, 52, 44, 32,102,108,111, 97,116, 32,101,120,112,111,110,101,110,116, 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,111,111,100, 40,118,101, 99, 51, 32, 99,111, 44, 32,102, +108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,117,114, 98,117,108,101,110, 99,101, 44, 32,111,117,116, + 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 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,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,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, + 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/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 02e57aa0840..07c2885eff7 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -35,6 +35,7 @@ #include "DNA_ID.h" #include "DNA_vec_types.h" #include "DNA_listBase.h" +#include "DNA_texture_types.h" struct ID; struct ListBase; @@ -45,6 +46,7 @@ struct bNodeTreeExec; struct AnimData; struct bGPdata; struct uiBlock; +struct Image; #define NODE_MAXSTR 32 @@ -191,6 +193,8 @@ typedef struct bNode { #define NODE_BACKGROUND (1<<12) /* automatic flag for nodes included in transforms */ #define NODE_TRANSFORM (1<<13) + /* node is active texture */ +#define NODE_ACTIVE_TEXTURE (1<<14) /* node->update */ /* XXX NODE_UPDATE is a generic update flag. More fine-grained updates @@ -423,6 +427,65 @@ typedef struct NodeColorspill { float uspillr, uspillg, uspillb; }NodeColorspill; +typedef struct NodeTexBase { + TexMapping tex_mapping; + ColorMapping color_mapping; +} NodeTexBase; + +typedef struct NodeTexSky { + NodeTexBase base; + float sun_direction[3]; + float turbidity; +} NodeTexSky; + +typedef struct NodeTexImage { + NodeTexBase base; + int color_space, pad; +} NodeTexImage; + +typedef struct NodeTexEnvironment { + NodeTexBase base; + int color_space, pad; +} NodeTexEnvironment; + +typedef struct NodeTexGradient { + NodeTexBase base; + int gradient_type; + int pad; +} NodeTexGradient; + +typedef struct NodeTexNoise { + NodeTexBase base; +} NodeTexNoise; + +typedef struct NodeTexVoronoi { + NodeTexBase base; + int coloring; + int pad; +} NodeTexVoronoi; + +typedef struct NodeTexMusgrave { + NodeTexBase base; + int musgrave_type; + int pad; +} NodeTexMusgrave; + +typedef struct NodeTexWave { + NodeTexBase base; + int wave_type; + int pad; +} NodeTexWave; + +typedef struct NodeTexMagic { + NodeTexBase base; + int depth; + int pad; +} NodeTexMagic; + +typedef struct NodeShaderAttribute { + char name[64]; +} NodeShaderAttribute; + /* TEX_output */ typedef struct TexNodeOutput { char name[32]; @@ -434,6 +497,65 @@ typedef struct TexNodeOutput { #define CMP_NODE_CHANNEL_MATTE_CS_YUV 3 #define CMP_NODE_CHANNEL_MATTE_CS_YCC 4 +/* glossy distributions */ +#define SHD_GLOSSY_BECKMANN 0 +#define SHD_GLOSSY_SHARP 1 +#define SHD_GLOSSY_GGX 2 + +/* blend texture */ +#define SHD_BLEND_LINEAR 0 +#define SHD_BLEND_QUADRATIC 1 +#define SHD_BLEND_EASING 2 +#define SHD_BLEND_DIAGONAL 3 +#define SHD_BLEND_RADIAL 4 +#define SHD_BLEND_QUADRATIC_SPHERE 5 +#define SHD_BLEND_SPHERICAL 6 + +/* noise basis for textures */ +#define SHD_NOISE_PERLIN 0 +#define SHD_NOISE_VORONOI_F1 1 +#define SHD_NOISE_VORONOI_F2 2 +#define SHD_NOISE_VORONOI_F3 3 +#define SHD_NOISE_VORONOI_F4 4 +#define SHD_NOISE_VORONOI_F2_F1 5 +#define SHD_NOISE_VORONOI_CRACKLE 6 +#define SHD_NOISE_CELL_NOISE 7 + +#define SHD_NOISE_SOFT 0 +#define SHD_NOISE_HARD 1 + +/* voronoi texture */ +#define SHD_VORONOI_DISTANCE_SQUARED 0 +#define SHD_VORONOI_ACTUAL_DISTANCE 1 +#define SHD_VORONOI_MANHATTAN 2 +#define SHD_VORONOI_CHEBYCHEV 3 +#define SHD_VORONOI_MINKOVSKY_H 4 +#define SHD_VORONOI_MINKOVSKY_4 5 +#define SHD_VORONOI_MINKOVSKY 6 + +#define SHD_VORONOI_INTENSITY 0 +#define SHD_VORONOI_CELLS 1 + +/* musgrave texture */ +#define SHD_MUSGRAVE_MULTIFRACTAL 0 +#define SHD_MUSGRAVE_FBM 1 +#define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2 +#define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3 +#define SHD_MUSGRAVE_HETERO_TERRAIN 4 + +/* wave texture */ +#define SHD_WAVE_BANDS 0 +#define SHD_WAVE_RINGS 1 + +#define SHD_WAVE_SINE 0 +#define SHD_WAVE_SAW 1 +#define SHD_WAVE_TRI 2 + +/* image/environment texture */ +#define SHD_COLORSPACE_LINEAR 0 +#define SHD_COLORSPACE_SRGB 1 + +/* blur node */ #define CMP_NODE_BLUR_ASPECT_NONE 0 #define CMP_NODE_BLUR_ASPECT_Y 1 #define CMP_NODE_BLUR_ASPECT_X 2 diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 7e74c490e5c..228edeefca4 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -108,6 +108,27 @@ EnumPropertyItem node_filter_items[] = { {6, "SHADOW", 0, "Shadow", ""}, {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", ""}, + {SHD_NOISE_VORONOI_F2, "VORONOI_F2", 0, "Voronoi F2", ""}, + {SHD_NOISE_VORONOI_F3, "VORONOI_F3", 0, "Voronoi F3", ""}, + {SHD_NOISE_VORONOI_F4, "VORONOI_F4", 0, "Voronoi F4", ""}, + {SHD_NOISE_VORONOI_F2_F1, "VORONOI_F2_F1", 0, "Voronoi F2-F1", ""}, + {SHD_NOISE_VORONOI_CRACKLE, "VORONOI_CRACKLE", 0, "Voronoi Crackle", ""}, + {SHD_NOISE_CELL_NOISE, "CELL_NOISE", 0, "Cell Noise", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_noise_type_items[] = { + {SHD_NOISE_SOFT, "SOFT", 0, "Soft", ""}, + {SHD_NOISE_HARD, "HARD", 0, "Hard", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_wave_items[] = { + {SHD_WAVE_SINE, "SINE", 0, "Sine", "Uses a sine wave to produce bands"}, + {SHD_WAVE_SAW, "SAW", 0, "Saw", "Uses a saw wave to produce bands"}, + {SHD_WAVE_TRI, "TRI", 0, "Tri", "Uses a triangle wave to produce bands"}, + {0, NULL, 0, NULL, NULL}}; /* Add any new socket value subtype here. * When adding a new subtype here, make sure you also add it @@ -762,6 +783,12 @@ static EnumPropertyItem node_ycc_items[] = { { 2, "JFIF", 0, "Jpeg", ""}, {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem node_glossy_items[] = { +{SHD_GLOSSY_SHARP, "SHARP", 0, "Sharp", ""}, +{SHD_GLOSSY_BECKMANN, "BECKMANN", 0, "Beckmann", ""}, +{SHD_GLOSSY_GGX, "GGX", 0, "GGX", ""}, +{0, NULL, 0, NULL, NULL}}; + #define MaxNodes 50000 enum @@ -1093,6 +1120,212 @@ static void def_sh_geometry(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_attribute(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeShaderAttribute", "storage"); + + prop = RNA_def_property(srna, "attribute_name", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_ui_text(prop, "Attribute Name", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + +static void def_sh_tex(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "texture_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.tex_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Texture Mapping", "Texture coordinate mapping settings"); + + prop= RNA_def_property(srna, "color_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.color_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Color Mapping", "Color mapping settings"); +} + +static void def_sh_tex_sky(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexSky", "storage"); + def_sh_tex(srna); + + prop = RNA_def_property(srna, "sun_direction", PROP_FLOAT, PROP_DIRECTION); + RNA_def_property_ui_text(prop, "Sun Direction", "Direction from where the sun is shining"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + prop = RNA_def_property(srna, "turbidity", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Turbidity", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + +static void def_sh_tex_environment(StructRNA *srna) +{ + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_image(StructRNA *srna) +{ + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_gradient(StructRNA *srna) +{ + static EnumPropertyItem prop_gradient_type[] = { + {SHD_BLEND_LINEAR, "LINEAR", 0, "Linear", "Creates a linear progression"}, + {SHD_BLEND_QUADRATIC, "QUADRATIC", 0, "Quadratic", "Creates a quadratic progression"}, + {SHD_BLEND_EASING, "EASING", 0, "Easing", "Creates a progression easing from one step to the next"}, + {SHD_BLEND_DIAGONAL, "DIAGONAL", 0, "Diagonal", "Creates a diagonal progression"}, + {SHD_BLEND_SPHERICAL, "SPHERICAL", 0, "Spherical", "Creates a spherical progression"}, + {SHD_BLEND_QUADRATIC_SPHERE, "QUADRATIC_SPHERE", 0, "Quadratic sphere", "Creates a quadratic progression in the shape of a sphere"}, + {SHD_BLEND_RADIAL, "RADIAL", 0, "Radial", "Creates a radial progression"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexGradient", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "gradient_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_gradient_type); + RNA_def_property_ui_text(prop, "Gradient Type", "Sets the style of the color blending"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_noise(StructRNA *srna) +{ + RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); + def_sh_tex(srna); +} + +static void def_sh_tex_magic(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMagic", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_musgrave(StructRNA *srna) +{ + static EnumPropertyItem prop_musgrave_type[] = { + {SHD_MUSGRAVE_MULTIFRACTAL, "MULTIFRACTAL", 0, "Multifractal", ""}, + {SHD_MUSGRAVE_RIDGED_MULTIFRACTAL, "RIDGED_MULTIFRACTAL", 0, "Ridged Multifractal", ""}, + {SHD_MUSGRAVE_HYBRID_MULTIFRACTAL, "HYBRID_MULTIFRACTAL", 0, "Hybrid Multifractal", ""}, + {SHD_MUSGRAVE_FBM, "FBM", 0, "fBM", ""}, + {SHD_MUSGRAVE_HETERO_TERRAIN, "HETERO_TERRAIN", 0, "Hetero Terrain", ""}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMusgrave", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "musgrave_type"); + RNA_def_property_enum_items(prop, prop_musgrave_type); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_voronoi(StructRNA *srna) +{ + static EnumPropertyItem prop_coloring_items[] = { + {SHD_VORONOI_INTENSITY, "INTENSITY", 0, "Intensity", "Only calculate intensity"}, + {SHD_VORONOI_CELLS, "CELLS", 0, "Cells", "Color cells by position"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "coloring", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "coloring"); + RNA_def_property_enum_items(prop, prop_coloring_items); + RNA_def_property_ui_text(prop, "Coloring", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_wave(StructRNA *srna) +{ + static EnumPropertyItem prop_wave_type_items[] = { + {SHD_WAVE_BANDS, "BANDS", 0, "Bands", "Uses standard wave texture in bands"}, + {SHD_WAVE_RINGS, "RINGS", 0, "Rings", "Uses wave texture in rings"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexWave", "storage"); + def_sh_tex(srna); + + prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wave_type"); + RNA_def_property_enum_items(prop, prop_wave_type_items); + RNA_def_property_ui_text(prop, "Wave Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_glossy(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "distribution", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "custom1"); + RNA_def_property_enum_items(prop, node_glossy_items); + RNA_def_property_ui_text(prop, "Distribution", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} /* -- Compositor Nodes ------------------------------------------------------ */ @@ -2707,6 +2940,16 @@ static void rna_def_node_socket(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Name", "Socket name"); RNA_def_struct_name_property(srna, prop); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroupSocket_update"); + + prop = RNA_def_property(srna, "group_socket", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "groupsock"); + RNA_def_property_struct_type(prop, "NodeSocket"); + 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, "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"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, NULL); } static void rna_def_node_socket_subtype(BlenderRNA *brna, int type, int subtype, const char *name, const char *ui_name) @@ -2842,6 +3085,11 @@ static void rna_def_node(BlenderRNA *brna) RNA_def_property_struct_type(prop, "Node"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Parent", "Parent this node is attached to"); + + prop = RNA_def_property(srna, "show_texture", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_ACTIVE_TEXTURE); + RNA_def_property_ui_text(prop, "Show Texture", "Draw node in viewport textured draw mode"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void rna_def_node_link(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 2545826cd46..78be14ebf7e 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -53,7 +53,39 @@ DefNode( ShaderNode, SH_NODE_INVERT, 0, "INVER DefNode( ShaderNode, SH_NODE_SEPRGB, 0, "SEPRGB", SeparateRGB, "Separate RGB", "" ) DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBRGB", CombineRGB, "Combine RGB", "" ) DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) - + +DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL", OutputMaterial, "Material Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) +DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) +DefNode( ShaderNode, SH_NODE_LAYER_WEIGHT, 0, "LAYER_WEIGHT", LayerWeight, "LayerWeight", "" ) +DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) +DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) +DefNode( ShaderNode, SH_NODE_ATTRIBUTE, def_sh_attribute, "ATTRIBUTE", Attribute, "Attribute", "" ) +DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "" ) +DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "" ) +DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent,"Transparent Volume","" ) +DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "" ) +DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "" ) +DefNode( ShaderNode, SH_NODE_NEW_GEOMETRY, 0, "NEW_GEOMETRY", NewGeometry, "Geometry", "" ) +DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "" ) +DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "" ) +DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture","" ) +DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "" ) +DefNode( ShaderNode, SH_NODE_TEX_GRADIENT, def_sh_tex_gradient, "TEX_GRADIENT", TexGradient, "Gradient Texture", "" ) +DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "" ) +DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "" ) +DefNode( ShaderNode, SH_NODE_TEX_WAVE, def_sh_tex_wave, "TEX_WAVE", TexWave, "Wave Texture", "" ) +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_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate","") + DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" ) DefNode( CompositorNode, CMP_NODE_VALUE, 0, "VALUE", Value, "Value", "" ) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 69e7f9cac6b..557b00d66b8 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -128,6 +128,37 @@ set(SRC shader/nodes/node_shader_valToRgb.c shader/nodes/node_shader_value.c shader/nodes/node_shader_vectMath.c + shader/nodes/node_shader_attribute.c + shader/nodes/node_shader_background.c + shader/nodes/node_shader_bsdf_diffuse.c + shader/nodes/node_shader_bsdf_glossy.c + shader/nodes/node_shader_bsdf_glass.c + shader/nodes/node_shader_bsdf_translucent.c + shader/nodes/node_shader_bsdf_transparent.c + shader/nodes/node_shader_bsdf_velvet.c + shader/nodes/node_shader_emission.c + shader/nodes/node_shader_fresnel.c + shader/nodes/node_shader_layer_weight.c + shader/nodes/node_shader_geometry.c + shader/nodes/node_shader_holdout.c + shader/nodes/node_shader_volume_transparent.c + shader/nodes/node_shader_volume_isotropic.c + shader/nodes/node_shader_light_path.c + shader/nodes/node_shader_mix_shader.c + shader/nodes/node_shader_add_shader.c + shader/nodes/node_shader_output_lamp.c + shader/nodes/node_shader_output_material.c + shader/nodes/node_shader_output_world.c + shader/nodes/node_shader_tex_gradient.c + shader/nodes/node_shader_tex_coord.c + shader/nodes/node_shader_tex_environment.c + shader/nodes/node_shader_tex_image.c + shader/nodes/node_shader_tex_magic.c + shader/nodes/node_shader_tex_musgrave.c + shader/nodes/node_shader_tex_noise.c + shader/nodes/node_shader_tex_sky.c + shader/nodes/node_shader_tex_voronoi.c + shader/nodes/node_shader_tex_wave.c shader/node_shader_tree.c shader/node_shader_util.c diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h index 83352698e38..996660fcb8b 100644 --- a/source/blender/nodes/NOD_shader.h +++ b/source/blender/nodes/NOD_shader.h @@ -71,6 +71,41 @@ void register_node_type_sh_seprgb(ListBase *lb); void register_node_type_sh_combrgb(ListBase *lb); void register_node_type_sh_hue_sat(ListBase *lb); +void register_node_type_sh_attribute(ListBase *lb); +void register_node_type_sh_geometry(ListBase *lb); +void register_node_type_sh_light_path(ListBase *lb); +void register_node_type_sh_fresnel(ListBase *lb); +void register_node_type_sh_layer_weight(ListBase *lb); +void register_node_type_sh_tex_coord(ListBase *lb); + +void register_node_type_sh_background(ListBase *lb); +void register_node_type_sh_bsdf_diffuse(ListBase *lb); +void register_node_type_sh_bsdf_glossy(ListBase *lb); +void register_node_type_sh_bsdf_glass(ListBase *lb); +void register_node_type_sh_bsdf_translucent(ListBase *lb); +void register_node_type_sh_bsdf_transparent(ListBase *lb); +void register_node_type_sh_bsdf_velvet(ListBase *lb); +void register_node_type_sh_emission(ListBase *lb); +void register_node_type_sh_holdout(ListBase *lb); +void register_node_type_sh_volume_transparent(ListBase *lb); +void register_node_type_sh_volume_isotropic(ListBase *lb); +void register_node_type_sh_mix_shader(ListBase *lb); +void register_node_type_sh_add_shader(ListBase *lb); + +void register_node_type_sh_output_lamp(ListBase *lb); +void register_node_type_sh_output_material(ListBase *lb); +void register_node_type_sh_output_world(ListBase *lb); + +void register_node_type_sh_tex_image(ListBase *lb); +void register_node_type_sh_tex_environment(ListBase *lb); +void register_node_type_sh_tex_sky(ListBase *lb); +void register_node_type_sh_tex_voronoi(ListBase *lb); +void register_node_type_sh_tex_gradient(ListBase *lb); +void register_node_type_sh_tex_magic(ListBase *lb); +void register_node_type_sh_tex_wave(ListBase *lb); +void register_node_type_sh_tex_musgrave(ListBase *lb); +void register_node_type_sh_tex_noise(ListBase *lb); + #endif diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index aa8ba12f799..e116944e688 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -233,7 +233,8 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr) @note: preserve material from ShadeInput for material id, nodetree execs change it fix for bug "[#28012] Mat ID messy with shader nodes" */ - Material *mat = shi->mat; bNodeThreadStack *nts = NULL; + Material *mat = shi->mat; + bNodeThreadStack *nts = NULL; bNodeTreeExec *exec = ntree->execdata; /* convert caller data to struct */ diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index 0c86d8fd5e4..ebcef97404d 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -285,3 +285,22 @@ void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs) } } } + +void node_shader_gpu_tex_mapping(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *UNUSED(out)) +{ + NodeTexBase *base= node->storage; + TexMapping *texmap= &base->tex_mapping; + float domin= (texmap->flag & TEXMAP_CLIP_MIN) != 0; + float domax= (texmap->flag & TEXMAP_CLIP_MAX) != 0; + + if(domin || domax || !(texmap->flag & TEXMAP_UNIT_MATRIX)) { + GPUNodeLink *tmat = GPU_uniform((float*)texmap->mat); + GPUNodeLink *tmin = GPU_uniform(texmap->min); + GPUNodeLink *tmax = GPU_uniform(texmap->max); + GPUNodeLink *tdomin = GPU_uniform(&domin); + GPUNodeLink *tdomax = GPU_uniform(&domax); + + GPU_link(mat, "mapping", in[0].link, tmat, tmin, tmax, tdomin, tdomax, &in[0].link); + } +} + diff --git a/source/blender/nodes/shader/node_shader_util.h b/source/blender/nodes/shader/node_shader_util.h index 3a0c97511e4..369defe490f 100644 --- a/source/blender/nodes/shader/node_shader_util.h +++ b/source/blender/nodes/shader/node_shader_util.h @@ -40,6 +40,7 @@ #include "MEM_guardedalloc.h" #include "DNA_color_types.h" +#include "DNA_customdata_types.h" #include "DNA_ID.h" #include "DNA_image_types.h" #include "DNA_material_types.h" @@ -122,6 +123,7 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns); void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, struct bNodeStack *ns); void node_data_from_gpu_stack(struct bNodeStack *ns, struct GPUNodeStack *gs); +void node_shader_gpu_tex_mapping(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out); void ntreeExecGPUNodes(struct bNodeTreeExec *exec, struct GPUMaterial *mat, int do_outputs); diff --git a/source/blender/nodes/shader/nodes/node_shader_add_shader.c b/source/blender/nodes/shader/nodes/node_shader_add_shader.c new file mode 100644 index 00000000000..d715971e618 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_add_shader.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_add_shader_in[]= { + { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Shader"}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_add_shader_out[]= { + { SOCK_SHADER, 0, "Shader"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_add_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_add_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_add_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_add_shader_in, sh_node_add_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_add_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.c new file mode 100644 index 00000000000..4b238f72117 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c @@ -0,0 +1,63 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_attribute_out[]= { + { SOCK_RGBA, 0, "Color"}, + { SOCK_VECTOR, 0, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, -FLT_MAX, FLT_MAX}, + { -1, 0, "" } +}; + +static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp)) +{ + NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute"); + node->storage = attr; +} + +/* node type definition */ +void register_node_type_sh_attribute(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_ATTRIBUTE, "Attribute", NODE_CLASS_INPUT, NODE_OPTIONS); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, NULL, sh_node_attribute_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_attribute); + node_type_storage(&ntype, "NodeShaderAttribute", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_background.c b/source/blender/nodes/shader/nodes/node_shader_background.c new file mode 100644 index 00000000000..b2bd837d66b --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_background.c @@ -0,0 +1,61 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_background_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Strength", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_background_out[]= { + { SOCK_SHADER, 0, "Background"}, + { -1, 0, "" } +}; + +/* node type definition */ +void register_node_type_sh_background(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_background_in, sh_node_background_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c new file mode 100644 index 00000000000..c71696b351c --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c @@ -0,0 +1,67 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_anisotropic_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness U", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness V", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_anisotropic_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_anisotropic(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_anisotropic", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_anisotropic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_anisotropic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c new file mode 100644 index 00000000000..737f77d923e --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c @@ -0,0 +1,65 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_diffuse_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_diffuse_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_diffuse(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_diffuse", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_diffuse(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_diffuse); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c new file mode 100644 index 00000000000..1bb62fead6d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c @@ -0,0 +1,67 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_glass_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_glass_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_glass(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_glass", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_glass(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glass); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c new file mode 100644 index 00000000000..2338a8a3cd2 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c @@ -0,0 +1,67 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_glossy_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_glossy_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_glossy(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_bsdf_glossy", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_glossy(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_glossy); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c new file mode 100644 index 00000000000..2836714f477 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c @@ -0,0 +1,65 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_translucent_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_translucent_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_translucent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_translucent", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_translucent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_translucent); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c new file mode 100644 index 00000000000..5352bd9be30 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c @@ -0,0 +1,65 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_transparent_in[]= { + { SOCK_RGBA, 1, "Color", 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_transparent_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_transparent(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_transparent", in, out); +} + +/* node type definition */ +void register_node_type_sh_bsdf_transparent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_transparent); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c new file mode 100644 index 00000000000..dfcf3b68d67 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_bsdf_velvet_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Sigma", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_bsdf_velvet_out[]= { + { SOCK_SHADER, 0, "BSDF"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_bsdf_velvet(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_bsdf_velvet", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_bsdf_velvet(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_bsdf_velvet); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_emission.c b/source/blender/nodes/shader/nodes/node_shader_emission.c new file mode 100644 index 00000000000..6ef82890559 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_emission.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_emission_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Strength", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_emission_out[]= { + { SOCK_SHADER, 0, "Emission"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_emission(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_emission", in, out, GPU_builtin(GPU_VIEW_NORMAL)); +} + +/* node type definition */ +void register_node_type_sh_emission(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_emission_in, sh_node_emission_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_emission); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_fresnel.c b/source/blender/nodes/shader/nodes/node_shader_fresnel.c new file mode 100644 index 00000000000..c5d55c9a1c8 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_fresnel.c @@ -0,0 +1,65 @@ +/** + * $Id: node_shader_fresnel.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** Fresnel ******************** */ +static bNodeSocketTemplate sh_node_fresnel_in[]= { + { SOCK_FLOAT, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_fresnel_out[]= { + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static int node_shader_gpu_fresnel(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + /* todo: is incoming vector normalized? */ + return GPU_stack_link(mat, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_NORMAL), GPU_builtin(GPU_VIEW_POSITION)); +} + +/* node type definition */ +void register_node_type_sh_fresnel(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_FRESNEL, "Fresnel", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_fresnel_in, sh_node_fresnel_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_fresnel); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_geom.c b/source/blender/nodes/shader/nodes/node_shader_geom.c index 5c4ba75ae67..bc367dc9de5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_geom.c +++ b/source/blender/nodes/shader/nodes/node_shader_geom.c @@ -140,6 +140,7 @@ void register_node_type_sh_geom(ListBase *lb) node_type_base(&ntype, SH_NODE_GEOMETRY, "Geometry", NODE_CLASS_INPUT, NODE_OPTIONS); node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_geom_out); node_type_size(&ntype, 120, 80, 160); node_type_init(&ntype, node_shader_init_geometry); diff --git a/source/blender/nodes/shader/nodes/node_shader_geometry.c b/source/blender/nodes/shader/nodes/node_shader_geometry.c new file mode 100644 index 00000000000..63f6ba3928f --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_geometry.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_geometry_out[]= { + { SOCK_VECTOR, 0, "Position", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Tangent", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "True Normal", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Incoming", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Parametric", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Backfacing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_geometry", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX)); +} + +/* node type definition */ +void register_node_type_sh_geometry(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_NEW_GEOMETRY, "Geometry", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, NULL, sh_node_geometry_out); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_geometry); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_holdout.c b/source/blender/nodes/shader/nodes/node_shader_holdout.c new file mode 100644 index 00000000000..747519c861e --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_holdout.c @@ -0,0 +1,60 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_holdout_in[]= { + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_holdout_out[]= { + { SOCK_SHADER, 0, "Holdout"}, + { -1, 0, "" } +}; + + +/* node type definition */ +void register_node_type_sh_holdout(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_holdout_in, sh_node_holdout_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_layer_weight.c b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c new file mode 100644 index 00000000000..16b58e18761 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_layer_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** Layer Weight ******************** */ + +static bNodeSocketTemplate sh_node_layer_weight_in[]= { + { SOCK_FLOAT, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_layer_weight_out[]= { + { SOCK_FLOAT, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static int node_shader_gpu_layer_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_layer_weight(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_LAYER_WEIGHT, "Layer Weight", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_layer_weight_in, sh_node_layer_weight_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_layer_weight); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_light_path.c b/source/blender/nodes/shader/nodes/node_shader_light_path.c new file mode 100644 index 00000000000..d399a0bddd4 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_light_path.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_light_path_out[]= { + { SOCK_FLOAT, 0, "Is Camera Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Shadow Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Diffuse Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Glossy Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Singular Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Reflection Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Is Transmission Ray", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static int node_shader_gpu_light_path(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_light_path", in, out); +} + +/* node type definition */ +void register_node_type_sh_light_path(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_LIGHT_PATH, "Light Path", NODE_CLASS_INPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, NULL, sh_node_light_path_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_light_path); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c index 35007724037..2fa885dcdd3 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mapping.c +++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c @@ -91,7 +91,7 @@ void register_node_type_sh_mapping(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MAPPING, "Mapping", NODE_CLASS_OP_VECTOR, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mapping_in, sh_node_mapping_out); node_type_size(&ntype, 240, 160, 320); node_type_init(&ntype, node_shader_init_mapping); diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index 13ee1f79fe6..1c15c49a7da 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -241,7 +241,7 @@ void register_node_type_sh_math(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MATH, "Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_math_in, sh_node_math_out); node_type_size(&ntype, 120, 110, 160); node_type_label(&ntype, node_math_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c index 7692956368c..5d7ec9a23ab 100644 --- a/source/blender/nodes/shader/nodes/node_shader_mixRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_mixRgb.c @@ -78,7 +78,7 @@ void register_node_type_sh_mix_rgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_MIX_RGB, "Mix", NODE_CLASS_OP_COLOR, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_mix_rgb_in, sh_node_mix_rgb_out); node_type_size(&ntype, 100, 60, 150); node_type_label(&ntype, node_blend_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_mix_shader.c b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c new file mode 100644 index 00000000000..5ce2a03f464 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_mix_shader.c @@ -0,0 +1,67 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_mix_shader_in[]= { + { SOCK_FLOAT, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader"}, + { SOCK_SHADER, 1, "Shader"}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_mix_shader_out[]= { + { SOCK_SHADER, 0, "Shader"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_mix_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + return GPU_stack_link(mat, "node_mix_shader", in, out); +} + +/* node type definition */ +void register_node_type_sh_mix_shader(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_mix_shader_in, sh_node_mix_shader_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_mix_shader); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_lamp.c b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c new file mode 100644 index 00000000000..2c954d1cf8f --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_lamp.c @@ -0,0 +1,55 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_lamp_in[]= { + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +/* node type definition */ +void register_node_type_sh_output_lamp(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_LAMP, "Lamp Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_output_lamp_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c new file mode 100644 index 00000000000..0059489fcc7 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c @@ -0,0 +1,68 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_material_in[]= { + { SOCK_SHADER, 1, "Surface"}, + { SOCK_SHADER, 1, "Volume"}, + { SOCK_FLOAT, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static int node_shader_gpu_output_material(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *outlink; + + GPU_stack_link(mat, "node_output_material", in, out, &outlink); + GPU_material_output_link(mat, outlink); + + return 1; +} + + +/* node type definition */ +void register_node_type_sh_output_material(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_MATERIAL, "Material Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_output_material_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_output_material); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c new file mode 100644 index 00000000000..20bb3ab8f58 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c @@ -0,0 +1,56 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_output_world_in[]= { + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +/* node type definition */ +void register_node_type_sh_output_world(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_OUTPUT_WORLD, "World Output", NODE_CLASS_OUTPUT, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_output_world_in, NULL); + node_type_size(&ntype, 120, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, NULL); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_rgb.c b/source/blender/nodes/shader/nodes/node_shader_rgb.c index 67c0ec165ca..58a00ed92e5 100644 --- a/source/blender/nodes/shader/nodes/node_shader_rgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_rgb.c @@ -71,7 +71,7 @@ void register_node_type_sh_rgb(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_RGB, "RGB", NODE_CLASS_INPUT, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_rgb_out); node_type_init(&ntype, node_shader_init_rgb); node_type_size(&ntype, 140, 80, 140); diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c new file mode 100644 index 00000000000..a33e5599d77 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c @@ -0,0 +1,72 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +#include "DNA_customdata_types.h" + +/* **************** OUTPUT ******************** */ + +static bNodeSocketTemplate sh_node_tex_coord_out[]= { + { SOCK_VECTOR, 0, "Generated", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "UV", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Object", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Camera", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Window", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VECTOR, 0, "Reflection", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static int node_shader_gpu_tex_coord(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +{ + GPUNodeLink *orco = GPU_attribute(CD_ORCO, ""); + GPUNodeLink *mtface = GPU_attribute(CD_MTFACE, ""); + + return GPU_stack_link(mat, "node_tex_coord", in, out, + GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_VIEW_NORMAL), + GPU_builtin(GPU_INVERSE_VIEW_MATRIX), orco, mtface); +} + +/* node type definition */ +void register_node_type_sh_tex_coord(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0); + 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); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_coord); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c new file mode 100644 index 00000000000..f9ab16ae84a --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -0,0 +1,89 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_environment_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_environment_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->color_space = SHD_COLORSPACE_SRGB; + + node->storage = tex; +} + +static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_builtin(GPU_VIEW_POSITION); + + node_shader_gpu_tex_mapping(mat, node, in, out); + + return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser)); +} + +/* node type definition */ +void register_node_type_sh_tex_environment(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_ENVIRONMENT, "Environment Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_environment_in, sh_node_tex_environment_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_environment); + node_type_storage(&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_environment); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c new file mode 100644 index 00000000000..076759fa75f --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c @@ -0,0 +1,81 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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 Gradienter 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" + +/* **************** BLEND ******************** */ + +static bNodeSocketTemplate sh_node_tex_gradient_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_gradient_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->gradient_type = SHD_BLEND_LINEAR; + + node->storage = tex; +} + +static int node_shader_gpu_tex_gradient(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_gradient", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_gradient(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_GRADIENT, "Gradient Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_gradient_in, sh_node_tex_gradient_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_gradient); + node_type_storage(&ntype, "NodeTexGradient", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_gradient); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.c new file mode 100644 index 00000000000..a7b0925d001 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c @@ -0,0 +1,89 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_image_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_image_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->color_space = SHD_COLORSPACE_SRGB; + + node->storage = tex; +} + +static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + Image *ima= (Image*)node->id; + ImageUser *iuser= NULL; + + if(!ima) { + float black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; + GPUNodeLink *vec = GPU_uniform(black); + return GPU_stack_link(mat, "set_rgba", out, out, vec); + } + + if(!in[0].link) + in[0].link = GPU_attribute(CD_MTFACE, ""); + + node_shader_gpu_tex_mapping(mat, node, in, out); + + return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser)); +} + +/* node type definition */ +void register_node_type_sh_tex_image(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_IMAGE, "Image Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_image_in, sh_node_tex_image_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_image); + node_type_storage(&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_image); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c new file mode 100644 index 00000000000..00327311da4 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c @@ -0,0 +1,86 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_magic_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Distortion", 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_magic_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->depth = 2; + + node->storage = tex; +} + +static int node_shader_gpu_tex_magic(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) +{ + NodeTexMagic *tex = (NodeTexMagic*)node->storage; + float depth = tex->depth; + + 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_magic", in, out, GPU_uniform(&depth)); +} + +/* node type definition */ +void register_node_type_sh_tex_magic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MAGIC, "Magic Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_magic_in, sh_node_tex_magic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_magic); + node_type_storage(&ntype, "NodeTexMagic", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_magic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c new file mode 100644 index 00000000000..45fa6338bfa --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c @@ -0,0 +1,87 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** MUSGRAVE ******************** */ + +static bNodeSocketTemplate sh_node_tex_musgrave_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, + { SOCK_FLOAT, 1, "Dimension", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Lacunarity", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Offset", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Gain", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_musgrave_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->musgrave_type = SHD_MUSGRAVE_FBM; + + node->storage = tex; +} + +static int node_shader_gpu_tex_musgrave(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_musgrave", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_musgrave(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_MUSGRAVE, "Musgrave Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_musgrave_in, sh_node_tex_musgrave_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_musgrave); + node_type_storage(&ntype, "NodeTexMusgrave", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_musgrave); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c new file mode 100644 index 00000000000..6c27384a24d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c @@ -0,0 +1,83 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** NOISE ******************** */ + +static bNodeSocketTemplate sh_node_tex_noise_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, + { SOCK_FLOAT, 1, "Distortion", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_noise_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + + node->storage = tex; +} + +static int node_shader_gpu_tex_noise(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_noise", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_noise(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_NOISE, "Noise Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_noise_in, sh_node_tex_noise_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_noise); + node_type_storage(&ntype, "NodeTexNoise", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_noise); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c new file mode 100644 index 00000000000..3ab5e61196c --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c @@ -0,0 +1,83 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_sky_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_sky_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->sun_direction[0] = 0.0f; + tex->sun_direction[1] = 0.0f; + tex->sun_direction[2] = 1.0f; + tex->turbidity = 2.2f; + + node->storage = tex; +} + +static int node_shader_gpu_tex_sky(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_sky", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_sky(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_SKY, "Sky Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_sky_in, sh_node_tex_sky_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_sky); + node_type_storage(&ntype, "NodeTexSky", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_sky); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c new file mode 100644 index 00000000000..c32063c8b2d --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c @@ -0,0 +1,82 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** VORONOI ******************** */ + +static bNodeSocketTemplate sh_node_tex_voronoi_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_voronoi_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->coloring = SHD_VORONOI_INTENSITY; + + node->storage = tex; +} + +static int node_shader_gpu_tex_voronoi(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_voronoi", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_voronoi(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_VORONOI, "Voronoi Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_voronoi_in, sh_node_tex_voronoi_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_voronoi); + node_type_storage(&ntype, "NodeTexVoronoi", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_voronoi); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c new file mode 100644 index 00000000000..3574975c7b8 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c @@ -0,0 +1,85 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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" + +/* **************** WAVE ******************** */ + +static bNodeSocketTemplate sh_node_tex_wave_in[]= { + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, + { SOCK_FLOAT, 1, "Scale", 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Distortion", 0.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { SOCK_FLOAT, 1, "Detail", 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f}, + { SOCK_FLOAT, 1, "Detail Scale", 1.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_tex_wave_out[]= { + { SOCK_RGBA, 0, "Color", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +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); + default_color_mapping(&tex->base.color_mapping); + tex->wave_type = SHD_WAVE_BANDS; + + node->storage = tex; +} + +static int node_shader_gpu_tex_wave(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_wave", in, out); +} + +/* node type definition */ +void register_node_type_sh_tex_wave(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_TEX_WAVE, "Wave Texture", NODE_CLASS_TEXTURE, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_tex_wave_in, sh_node_tex_wave_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, node_shader_init_tex_wave); + node_type_storage(&ntype, "NodeTexWave", node_free_standard_storage, node_copy_standard_storage); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_tex_wave); + + nodeRegisterType(lb, &ntype); +} + diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c index 4d41e62b242..94afd09274a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c @@ -117,7 +117,7 @@ void register_node_type_sh_rgbtobw(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out); node_type_size(&ntype, 80, 40, 120); node_type_exec(&ntype, node_shader_exec_rgbtobw); diff --git a/source/blender/nodes/shader/nodes/node_shader_value.c b/source/blender/nodes/shader/nodes/node_shader_value.c index 4a8aa6c9cf4..8f490f4953b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_value.c +++ b/source/blender/nodes/shader/nodes/node_shader_value.c @@ -71,7 +71,7 @@ void register_node_type_sh_value(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VALUE, "Value", NODE_CLASS_INPUT, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, NULL, sh_node_value_out); node_type_init(&ntype, node_shader_init_value); node_type_size(&ntype, 80, 50, 120); diff --git a/source/blender/nodes/shader/nodes/node_shader_vectMath.c b/source/blender/nodes/shader/nodes/node_shader_vectMath.c index b3f995dcdce..bb56037b4d4 100644 --- a/source/blender/nodes/shader/nodes/node_shader_vectMath.c +++ b/source/blender/nodes/shader/nodes/node_shader_vectMath.c @@ -135,7 +135,7 @@ void register_node_type_sh_vect_math(ListBase *lb) static bNodeType ntype; node_type_base(&ntype, SH_NODE_VECT_MATH, "Vector Math", NODE_CLASS_CONVERTOR, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_vect_math_in, sh_node_vect_math_out); node_type_size(&ntype, 80, 75, 140); node_type_label(&ntype, node_vect_math_label); diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c new file mode 100644 index 00000000000..9f4c1447f65 --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_volume_isotropic_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Density", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_volume_isotropic_out[]= { + { SOCK_SHADER, 0, "Volume"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_volume_isotropic(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_volume_isotropic(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VOLUME_ISOTROPIC, "Isotropic Volume", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_volume_isotropic_in, sh_node_volume_isotropic_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_volume_isotropic); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c new file mode 100644 index 00000000000..910933bb5fa --- /dev/null +++ b/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c @@ -0,0 +1,66 @@ +/** + * $Id: node_shader_output.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** 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_volume_transparent_in[]= { + { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, + { SOCK_FLOAT, 1, "Density", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000.0f}, + { -1, 0, "" } +}; + +static bNodeSocketTemplate sh_node_volume_transparent_out[]= { + { SOCK_SHADER, 0, "Volume"}, + { -1, 0, "" } +}; + +static int node_shader_gpu_volume_transparent(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_volume_transparent(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_VOLUME_TRANSPARENT, "Transparent Volume", NODE_CLASS_SHADER, 0); + node_type_compatibility(&ntype, NODE_NEW_SHADING); + node_type_socket_templates(&ntype, sh_node_volume_transparent_in, sh_node_volume_transparent_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, NULL); + node_type_gpu(&ntype, node_shader_gpu_volume_transparent); + + nodeRegisterType(lb, &ntype); +}; + -- cgit v1.2.3 From 27d29e29986ac912dc87ed78b448fab1290a6e2a Mon Sep 17 00:00:00 2001 From: Jens Verwiebe Date: Tue, 8 Nov 2011 12:44:57 +0000 Subject: Fix an issue with uninitialized memory --- source/blender/makesrna/intern/rna_scene.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index ca325747d8e..f9be61bb749 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -573,6 +573,7 @@ static int rna_SceneRender_file_ext_length(PointerRNA *ptr) static void rna_SceneRender_file_ext_get(PointerRNA *ptr, char *str) { RenderData *rd= (RenderData*)ptr->data; + rna_SceneRender_file_ext_get: str[0] = '\0'; BKE_add_image_extension(str, rd->imtype); } -- cgit v1.2.3 From 19df3147f6920a2856bccb6e4601d57288119999 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 12:58:03 +0000 Subject: Fix for last fix, guess this compiled ok because it's interpreted as a goto label. --- source/blender/makesrna/intern/rna_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index f9be61bb749..c22ded39a74 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -573,7 +573,7 @@ static int rna_SceneRender_file_ext_length(PointerRNA *ptr) static void rna_SceneRender_file_ext_get(PointerRNA *ptr, char *str) { RenderData *rd= (RenderData*)ptr->data; - rna_SceneRender_file_ext_get: str[0] = '\0'; + str[0]= '\0'; BKE_add_image_extension(str, rd->imtype); } -- cgit v1.2.3 From 28ee0f92184af8ba6f44d08eda23ce5eb3815697 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 13:07:16 +0000 Subject: Texturing: texture and 3d view draw type changes, these should only have any effect for a render engine using new shading nodes. In short: * No longer uses images assigned to faces in the uv layer, rather the active image texture node is what is edited/painted/drawn. * Textured draw type now shows the active image texture node, with solid lighting. * Material draw mode shows GLSL shader of a simplified material node tree, using solid lighting. * Textures for modifiers, brushes, etc, are now available from a dropdown in the texture tab in the properties editor. These do not use new shading nodes yet. http://wiki.blender.org/index.php/Dev:2.6/Source/Render/TextureWorkflow --- source/blender/blenkernel/BKE_DerivedMesh.h | 8 + source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/DerivedMesh.c | 135 ++++++ source/blender/blenkernel/intern/cdderivedmesh.c | 80 ++++ source/blender/blenkernel/intern/node.c | 4 + source/blender/blenkernel/intern/subsurf_ccg.c | 150 +++++++ source/blender/editors/include/ED_uvedit.h | 9 +- source/blender/editors/include/UI_interface.h | 2 + .../editors/interface/interface_templates.c | 11 +- source/blender/editors/mesh/mesh_data.c | 4 +- source/blender/editors/sculpt_paint/paint_image.c | 82 +++- .../blender/editors/space_buttons/CMakeLists.txt | 1 + .../editors/space_buttons/buttons_context.c | 255 +++++++---- .../blender/editors/space_buttons/buttons_intern.h | 49 ++- .../editors/space_buttons/buttons_texture.c | 469 +++++++++++++++++++++ .../blender/editors/space_buttons/space_buttons.c | 7 + source/blender/editors/space_image/space_image.c | 40 +- source/blender/editors/space_node/CMakeLists.txt | 1 + source/blender/editors/space_node/SConscript | 2 +- source/blender/editors/space_node/node_edit.c | 13 + source/blender/editors/space_node/node_templates.c | 9 + source/blender/editors/space_view3d/drawmesh.c | 183 +++++++- source/blender/editors/space_view3d/drawobject.c | 4 +- source/blender/editors/space_view3d/view3d_draw.c | 12 +- source/blender/editors/uvedit/uvedit_ops.c | 103 +++-- source/blender/editors/uvedit/uvedit_unwrap_ops.c | 4 +- source/blender/gpu/intern/gpu_draw.c | 49 ++- source/blender/gpu/intern/gpu_material.c | 20 +- source/blender/makesdna/DNA_space_types.h | 2 + source/blender/makesrna/intern/rna_space.c | 12 +- source/blender/makesrna/intern/rna_ui_api.c | 3 + source/blender/nodes/shader/node_shader_util.c | 23 + source/blenderplayer/bad_level_call_stubs/stubs.c | 2 + 33 files changed, 1553 insertions(+), 196 deletions(-) create mode 100644 source/blender/editors/space_buttons/buttons_texture.c diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 5e403849289..0c5dc32f6d8 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -324,6 +324,14 @@ struct DerivedMesh { float t), void *userData); + /* Draw all faces with materials + * o setMaterial is called for every different material nr + * o setFace is called to verify if a face must be hidden + */ + void (*drawMappedFacesMat)(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData); + /* Release reference to the DerivedMesh. This function decides internally * if the DerivedMesh will be freed, or cached for later use. */ void (*release)(DerivedMesh *dm); diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index a06d57ae517..580f78d3063 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -351,6 +351,7 @@ 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 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); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index aaed0381b2e..ecabd1a79bc 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1123,6 +1123,140 @@ static void emDM_drawFacesGLSL(DerivedMesh *dm, dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } +static void emDM_drawMappedFacesMat(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData) +{ + EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm; + EditMesh *em= emdm->em; + float (*vertexCos)[3]= emdm->vertexCos; + float (*vertexNos)[3]= emdm->vertexNos; + EditVert *eve; + EditFace *efa; + DMVertexAttribs attribs= {{{0}}}; + GPUVertexAttribs gattribs; + int i, b, matnr, new_matnr; + + matnr = -1; + + /* always use smooth shading even for flat faces, else vertex colors wont interpolate */ + glShadeModel(GL_SMOOTH); + + for (i=0,eve=em->verts.first; eve; eve= eve->next) + eve->tmp.l = (intptr_t) i++; + +#define PASSATTRIB(efa, eve, vert) { \ + if(attribs.totorco) { \ + float *orco = attribs.orco.array[eve->tmp.l]; \ + if(attribs.orco.glTexco) \ + glTexCoord3fv(orco); \ + else \ + glVertexAttrib3fvARB(attribs.orco.glIndex, orco); \ + } \ + for(b = 0; b < attribs.tottface; b++) { \ + MTFace *_tf = (MTFace*)((char*)efa->data + attribs.tface[b].emOffset); \ + if(attribs.tface[b].glTexco) \ + glTexCoord2fv(_tf->uv[vert]); \ + else \ + glVertexAttrib2fvARB(attribs.tface[b].glIndex, _tf->uv[vert]); \ + } \ + for(b = 0; b < attribs.totmcol; b++) { \ + MCol *cp = (MCol*)((char*)efa->data + attribs.mcol[b].emOffset); \ + GLubyte col[4]; \ + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ + glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ + } \ + if(attribs.tottang) { \ + float *tang = attribs.tang.array[i*4 + vert]; \ + glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ + } \ +} + + for (i=0,efa= em->faces.first; efa; i++,efa= efa->next) { + int drawSmooth= (efa->flag & ME_SMOOTH); + + /* face hiding */ + if(setFace && !setFace(userData, i)) + continue; + + /* material */ + new_matnr = efa->mat_nr + 1; + if(new_matnr != matnr) { + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + } + + /* face */ + glBegin(efa->v4?GL_QUADS:GL_TRIANGLES); + if (!drawSmooth) { + if(vertexCos) glNormal3fv(emdm->faceNos[i]); + else glNormal3fv(efa->n); + + PASSATTRIB(efa, efa->v1, 0); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v1->tmp.l]); + else glVertex3fv(efa->v1->co); + + PASSATTRIB(efa, efa->v2, 1); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v2->tmp.l]); + else glVertex3fv(efa->v2->co); + + PASSATTRIB(efa, efa->v3, 2); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v3->tmp.l]); + else glVertex3fv(efa->v3->co); + + if(efa->v4) { + PASSATTRIB(efa, efa->v4, 3); + if(vertexCos) glVertex3fv(vertexCos[(int) efa->v4->tmp.l]); + else glVertex3fv(efa->v4->co); + } + } else { + PASSATTRIB(efa, efa->v1, 0); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v1->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v1->tmp.l]); + } + else { + glNormal3fv(efa->v1->no); + glVertex3fv(efa->v1->co); + } + + PASSATTRIB(efa, efa->v2, 1); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v2->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v2->tmp.l]); + } + else { + glNormal3fv(efa->v2->no); + glVertex3fv(efa->v2->co); + } + + PASSATTRIB(efa, efa->v3, 2); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v3->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v3->tmp.l]); + } + else { + glNormal3fv(efa->v3->no); + glVertex3fv(efa->v3->co); + } + + if(efa->v4) { + PASSATTRIB(efa, efa->v4, 3); + if(vertexCos) { + glNormal3fv(vertexNos[(int) efa->v4->tmp.l]); + glVertex3fv(vertexCos[(int) efa->v4->tmp.l]); + } + else { + glNormal3fv(efa->v4->no); + glVertex3fv(efa->v4->co); + } + } + } + glEnd(); + } +#undef PASSATTRIB +} + static void emDM_getMinMax(DerivedMesh *dm, float min_r[3], float max_r[3]) { EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm; @@ -1429,6 +1563,7 @@ DerivedMesh *editmesh_get_derived(EditMesh *em, float (*vertexCos)[3]) emdm->dm.drawMappedFacesGLSL = emDM_drawMappedFacesGLSL; emdm->dm.drawFacesTex = emDM_drawFacesTex; emdm->dm.drawFacesGLSL = emDM_drawFacesGLSL; + emdm->dm.drawMappedFacesMat = emDM_drawMappedFacesMat; emdm->dm.drawUVEdges = emDM_drawUVEdges; emdm->dm.release = emDM_release; diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index d2c86a14572..5ebdd1ec547 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1351,6 +1351,85 @@ static void cdDM_drawFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *at dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } +static void cdDM_drawMappedFacesMat(DerivedMesh *dm, + void (*setMaterial)(void *userData, int, void *attribs), + int (*setFace)(void *userData, int index), void *userData) +{ + CDDerivedMesh *cddm = (CDDerivedMesh*) dm; + GPUVertexAttribs gattribs; + DMVertexAttribs attribs; + MVert *mvert = cddm->mvert; + MFace *mf = cddm->mface; + float (*nors)[3] = dm->getFaceDataArray(dm, CD_NORMAL); + int a, matnr, new_matnr; + int orig, *index = dm->getFaceDataArray(dm, CD_ORIGINDEX); + + cdDM_update_normals_from_pbvh(dm); + + matnr = -1; + + glShadeModel(GL_SMOOTH); + + memset(&attribs, 0, sizeof(attribs)); + + glBegin(GL_QUADS); + + for(a = 0; a < dm->numFaceData; a++, mf++) { + const int smoothnormal = (mf->flag & ME_SMOOTH); + + /* material */ + new_matnr = mf->mat_nr + 1; + + if(new_matnr != matnr) { + glEnd(); + + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + + glBegin(GL_QUADS); + } + + /* skipping faces */ + if(setFace) { + orig = (index)? index[a]: a; + + if(orig != ORIGINDEX_NONE && !setFace(userData, orig)) + continue; + } + + /* smooth normal */ + if(!smoothnormal) { + if(nors) { + glNormal3fv(nors[a]); + } + else { + /* TODO ideally a normal layer should always be available */ + float nor[3]; + + if(mf->v4) + normal_quad_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co, mvert[mf->v4].co); + else + normal_tri_v3( nor,mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co); + + glNormal3fv(nor); + } + } + + /* vertices */ + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v1, 0, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v2, 1, smoothnormal); + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v3, 2, smoothnormal); + + if(mf->v4) + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v4, 3, smoothnormal); + else + cddm_draw_attrib_vertex(&attribs, mvert, a, mf->v3, 2, smoothnormal); + } + glEnd(); + + glShadeModel(GL_FLAT); +} + static void cdDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index), void *userData) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -1521,6 +1600,7 @@ static CDDerivedMesh *cdDM_create(const char *desc) dm->drawMappedFaces = cdDM_drawMappedFaces; dm->drawMappedFacesTex = cdDM_drawMappedFacesTex; dm->drawMappedFacesGLSL = cdDM_drawMappedFacesGLSL; + dm->drawMappedFacesMat = cdDM_drawMappedFacesMat; dm->foreachMappedVert = cdDM_foreachMappedVert; dm->foreachMappedEdge = cdDM_foreachMappedEdge; diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 9fc18c3e0fc..fa023d8fb43 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1314,11 +1314,15 @@ void nodeSetActive(bNodeTree *ntree, bNode *node) if(GS(node->id->name) == GS(tnode->id->name)) tnode->flag &= ~NODE_ACTIVE_ID; } + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) + tnode->flag &= ~NODE_ACTIVE_TEXTURE; } node->flag |= NODE_ACTIVE; if(node->id) node->flag |= NODE_ACTIVE_ID; + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) + node->flag |= NODE_ACTIVE_TEXTURE; } /* use flags are not persistent yet, groups might need different tagging, so we do it each time diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 9848b27d32e..da2245f8401 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1511,6 +1511,155 @@ static void ccgDM_drawFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, void *a dm->drawMappedFacesGLSL(dm, setMaterial, NULL, NULL); } + /* Only used by non-editmesh types */ +static void ccgDM_drawMappedFacesMat(DerivedMesh *dm, void (*setMaterial)(void *userData, int, void *attribs), int (*setFace)(void *userData, int index), void *userData) { + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; + CCGSubSurf *ss = ccgdm->ss; + CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); + GPUVertexAttribs gattribs; + DMVertexAttribs attribs= {{{NULL}}}; + int gridSize = ccgSubSurf_getGridSize(ss); + int gridFaces = gridSize - 1; + int edgeSize = ccgSubSurf_getEdgeSize(ss); + char *faceFlags = ccgdm->faceFlags; + int a, b, i, numVerts, matnr, new_matnr, totface; + + ccgdm_pbvh_update(ccgdm); + + matnr = -1; + +#define PASSATTRIB(dx, dy, vert) { \ + if(attribs.totorco) { \ + index = getFaceIndex(ss, f, S, x+dx, y+dy, edgeSize, gridSize); \ + if(attribs.orco.glTexco) \ + glTexCoord3fv(attribs.orco.array[index]); \ + else \ + glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]); \ + } \ + for(b = 0; b < attribs.tottface; b++) { \ + MTFace *tf = &attribs.tface[b].array[a]; \ + if(attribs.tface[b].glTexco) \ + glTexCoord2fv(tf->uv[vert]); \ + else \ + glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]); \ + } \ + for(b = 0; b < attribs.totmcol; b++) { \ + MCol *cp = &attribs.mcol[b].array[a*4 + vert]; \ + GLubyte col[4]; \ + col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a; \ + glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col); \ + } \ + if(attribs.tottang) { \ + float *tang = attribs.tang.array[a*4 + vert]; \ + glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \ + } \ +} + + totface = ccgSubSurf_getNumFaces(ss); + for(a = 0, i = 0; i < totface; i++) { + CCGFace *f = ccgdm->faceMap[i].face; + int S, x, y, drawSmooth; + int index = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); + int origIndex = ccgDM_getFaceMapIndex(ss, f); + + numVerts = ccgSubSurf_getFaceNumVerts(f); + + /* get flags */ + if(faceFlags) { + drawSmooth = (faceFlags[index*2] & ME_SMOOTH); + new_matnr= faceFlags[index*2 + 1] + 1; + } + else { + drawSmooth = 1; + new_matnr= 1; + } + + /* material */ + if(new_matnr != matnr) { + setMaterial(userData, matnr = new_matnr, &gattribs); + DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs); + } + + /* face hiding */ + if((setFace && (origIndex != ORIGINDEX_NONE) && !setFace(userData, origIndex))) { + a += gridFaces*gridFaces*numVerts; + continue; + } + + /* draw face*/ + glShadeModel(drawSmooth? GL_SMOOTH: GL_FLAT); + for (S=0; Sno); + glVertex3fv(vda->co); + + PASSATTRIB(0, 1, 1); + glNormal3fv(vdb->no); + glVertex3fv(vdb->co); + + if(x != gridFaces-1) + a++; + } + + vda = &faceGridData[(y+0)*gridSize + x]; + vdb = &faceGridData[(y+1)*gridSize + x]; + + PASSATTRIB(0, 0, 3); + glNormal3fv(vda->no); + glVertex3fv(vda->co); + + PASSATTRIB(0, 1, 2); + glNormal3fv(vdb->no); + glVertex3fv(vdb->co); + + glEnd(); + + a++; + } + } else { + glBegin(GL_QUADS); + for (y=0; yss; @@ -2382,6 +2531,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, ccgdm->dm.drawMappedFaces = ccgDM_drawMappedFaces; ccgdm->dm.drawMappedFacesTex = ccgDM_drawMappedFacesTex; ccgdm->dm.drawMappedFacesGLSL = ccgDM_drawMappedFacesGLSL; + ccgdm->dm.drawMappedFacesMat = ccgDM_drawMappedFacesMat; ccgdm->dm.drawUVEdges = ccgDM_drawUVEdges; ccgdm->dm.drawMappedEdgesInterp = ccgDM_drawMappedEdgesInterp; diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index 2b4c213bc52..0666884351a 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -33,19 +33,26 @@ struct ARegionType; struct EditFace; struct Image; +struct Main; +struct ImageUser; struct MTFace; struct Object; struct Scene; +struct SpaceImage; struct bContext; +struct bNode; struct wmKeyConfig; /* uvedit_ops.c */ void ED_operatortypes_uvedit(void); void ED_keymap_uvedit(struct wmKeyConfig *keyconf); -void ED_uvedit_assign_image(struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); +void ED_uvedit_assign_image(struct Main *bmain, struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max); +int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser, struct bNode **node); +void ED_object_assign_active_image(struct Main *bmain, struct Object *ob, int mat_nr, struct Image *ima); + int ED_uvedit_test_silent(struct Object *obedit); int ED_uvedit_test(struct Object *obedit); diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 02b8cc9e2c6..329f4599e01 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -758,6 +758,8 @@ void uiTemplateKeymapItemProperties(uiLayout *layout, struct PointerRNA *ptr); void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *activeptr, const char *activeprop, const char *prop_list, int rows, int maxrows, int type); void uiTemplateNodeLink(uiLayout *layout, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); void uiTemplateNodeView(uiLayout *layout, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input); +void uiTemplateTextureUser(uiLayout *layout, struct bContext *C); +void uiTemplateTextureShow(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop); void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact); void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 7c745c3cfef..a3d71674a03 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -332,7 +332,7 @@ static const char *template_id_browse_tip(StructRNA *type) return N_("Browse ID data to be linked"); } -static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, const char *newop, const char *openop, const char *unlinkop) +static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, short idcode, int flag, const char *newop, const char *openop, const char *unlinkop) { uiBut *but; uiBlock *block; @@ -478,6 +478,9 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str if((idfrom && idfrom->lib) || !editable) uiButSetFlag(but, UI_BUT_DISABLED); } + + if(idcode == ID_TE) + uiTemplateTextureShow(layout, C, &template->ptr, template->prop); uiBlockEndAlign(block); } @@ -487,6 +490,7 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const TemplateID *template; PropertyRNA *prop; StructRNA *type; + short idcode; prop= RNA_struct_find_property(ptr, propname); @@ -507,14 +511,15 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const flag |= UI_ID_OPEN; type= RNA_property_pointer_type(ptr, prop); - template->idlb= which_libbase(CTX_data_main(C), RNA_type_to_ID_code(type)); + idcode= RNA_type_to_ID_code(type); + template->idlb= which_libbase(CTX_data_main(C), idcode); /* create UI elements for this template * - template_ID makes a copy of the template data and assigns it to the relevant buttons */ if(template->idlb) { uiLayoutRow(layout, 1); - template_ID(C, layout, template, type, flag, newop, openop, unlinkop); + template_ID(C, layout, template, type, idcode, flag, newop, openop, unlinkop); } MEM_freeN(template); diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index ed890fd9b90..6e35865fb4d 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -51,6 +51,7 @@ #include "BKE_displist.h" #include "BKE_image.h" #include "BKE_library.h" +#include "BKE_main.h" #include "BKE_material.h" #include "BKE_mesh.h" #include "BKE_report.h" @@ -331,6 +332,7 @@ void MESH_OT_uv_texture_add(wmOperatorType *ot) static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); View3D *v3d= CTX_wm_view3d(C); Base *base= ED_view3d_give_base_under_cursor(C, event->mval); @@ -375,7 +377,7 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event) if(me->edit_mesh==NULL) return OPERATOR_CANCELLED; - ED_uvedit_assign_image(scene, obedit, ima, NULL); + ED_uvedit_assign_image(bmain, scene, obedit, ima, NULL); if(exitmode) { load_editMesh(scene, obedit); diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index ce603ce80b6..e283927b76f 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -79,6 +79,7 @@ #include "BKE_object.h" #include "BKE_paint.h" #include "BKE_report.h" +#include "BKE_scene.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -88,6 +89,7 @@ #include "ED_image.h" #include "ED_screen.h" #include "ED_sculpt.h" +#include "ED_uvedit.h" #include "ED_view3d.h" #include "WM_api.h" @@ -498,6 +500,40 @@ static void image_undo_free(ListBase *lb) MEM_freeN(tile->rect); } +/* get active image for face depending on old/new shading system */ + +static Image *imapaint_face_image(const ImagePaintState *s, int face_index) +{ + Image *ima; + + if(scene_use_new_shading_nodes(s->scene)) { + MFace *mf = s->me->mface+face_index; + ED_object_get_active_image(s->ob, mf->mat_nr, &ima, NULL, NULL); + } + else { + MTFace *tf = s->me->mtface+face_index; + ima = tf->tpage; + } + + return ima; +} + +static Image *project_paint_face_image(const ProjPaintState *ps, int face_index) +{ + Image *ima; + + if(scene_use_new_shading_nodes(ps->scene)) { + MFace *mf = ps->dm_mface+face_index; + ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL, NULL); + } + else { + MTFace *tf = ps->dm_mtface+face_index; + ima = tf->tpage; + } + + return ima; +} + /* fast projection bucket array lookup, use the safe version for bound checking */ static int project_bucket_offset(const ProjPaintState *ps, const float projCoSS[2]) { @@ -670,6 +706,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float int side; int face_index; MTFace *tf; + Image *ima; ImBuf *ibuf; int xi, yi; @@ -687,8 +724,9 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float else { /* QUAD */ interp_v2_v2v2v2(uv, tf->uv[0], tf->uv[2], tf->uv[3], w); } - - ibuf = tf->tpage->ibufs.first; /* we must have got the imbuf before getting here */ + + ima = project_paint_face_image(ps, face_index); + ibuf = ima->ibufs.first; /* we must have got the imbuf before getting here */ if (!ibuf) return 0; if (interp) { @@ -1053,6 +1091,9 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o /* Only need to check if 'i2_fidx' is valid because we know i1_fidx is the same vert on both faces */ if (i2_fidx != -1) { + Image *tpage = project_paint_face_image(ps, face_index); + Image *orig_tpage = project_paint_face_image(ps, orig_face); + /* This IS an adjacent face!, now lets check if the UVs are ok */ tf = ps->dm_mtface + face_index; @@ -1061,7 +1102,7 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o *orig_fidx = (i1_fidx < i2_fidx) ? i1_fidx : i2_fidx; /* first test if they have the same image */ - if ( (orig_tf->tpage == tf->tpage) && + if ( (orig_tpage == tpage) && cmp_uv(orig_tf->uv[orig_i1_fidx], tf->uv[i1_fidx]) && cmp_uv(orig_tf->uv[orig_i2_fidx], tf->uv[i2_fidx]) ) { @@ -1308,9 +1349,10 @@ static float project_paint_uvpixel_mask( if (ps->do_layer_stencil) { /* another UV layers image is masking this one's */ ImBuf *ibuf_other; + Image *other_tpage = project_paint_face_image(ps, face_index); const MTFace *tf_other = ps->dm_mtface_stencil + face_index; - if (tf_other->tpage && (ibuf_other = BKE_image_get_ibuf(tf_other->tpage, NULL))) { + if (other_tpage && (ibuf_other = BKE_image_get_ibuf(other_tpage, NULL))) { /* BKE_image_get_ibuf - TODO - this may be slow */ unsigned char rgba_ub[4]; float rgba_f[4]; @@ -1464,9 +1506,10 @@ static ProjPixel *project_paint_uvpixel_init( if (ps->tool==PAINT_TOOL_CLONE) { if (ps->dm_mtface_clone) { ImBuf *ibuf_other; + Image *other_tpage = project_paint_face_image(ps, face_index); const MTFace *tf_other = ps->dm_mtface_clone + face_index; - if (tf_other->tpage && (ibuf_other = BKE_image_get_ibuf(tf_other->tpage, NULL))) { + if (other_tpage && (ibuf_other = BKE_image_get_ibuf(other_tpage, NULL))) { /* BKE_image_get_ibuf - TODO - this may be slow */ if (ibuf->rect_float) { @@ -2684,11 +2727,8 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index LinkNode *node; int face_index, image_index=0; ImBuf *ibuf = NULL; + Image *tpage_last = NULL, *tpage; Image *ima = NULL; - MTFace *tf; - - Image *tpage_last = NULL; - if (ps->image_tot==1) { /* Simple loop, no context switching */ @@ -2706,9 +2746,9 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index face_index = GET_INT_FROM_POINTER(node->link); /* Image context switching */ - tf = ps->dm_mtface+face_index; - if (tpage_last != tf->tpage) { - tpage_last = tf->tpage; + tpage = project_paint_face_image(ps, face_index); + if (tpage_last != tpage) { + tpage_last = tpage; for (image_index=0; image_index < ps->image_tot; image_index++) { if (ps->projImages[image_index].ima == tpage_last) { @@ -2876,7 +2916,7 @@ static void project_paint_begin(ProjPaintState *ps) LinkNode *node; ProjPaintImage *projIma; - Image *tpage_last = NULL; + Image *tpage_last = NULL, *tpage; /* Face vars */ MFace *mf; @@ -3210,7 +3250,9 @@ static void project_paint_begin(ProjPaintState *ps) } #endif - if (tf->tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK)==0 || mf->flag & ME_FACE_SEL)) { + tpage = project_paint_face_image(ps, face_index); + + if (tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK)==0 || mf->flag & ME_FACE_SEL)) { float *v1coSS, *v2coSS, *v3coSS, *v4coSS=NULL; @@ -3283,17 +3325,17 @@ static void project_paint_begin(ProjPaintState *ps) } } - if (tpage_last != tf->tpage) { + if (tpage_last != tpage) { - image_index = BLI_linklist_index(image_LinkList, tf->tpage); + image_index = BLI_linklist_index(image_LinkList, tpage); - if (image_index==-1 && BKE_image_get_ibuf(tf->tpage, NULL)) { /* MemArena dosnt have an append func */ - BLI_linklist_append(&image_LinkList, tf->tpage); + if (image_index==-1 && BKE_image_get_ibuf(tpage, NULL)) { /* MemArena dosnt have an append func */ + BLI_linklist_append(&image_LinkList, tpage); image_index = ps->image_tot; ps->image_tot++; } - tpage_last = tf->tpage; + tpage_last = tpage; } if (image_index != -1) { @@ -4481,7 +4523,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint ) { ImBuf *ibuf; - newimage = (s->me->mtface+newfaceindex)->tpage; + newimage = imapaint_face_image(s, newfaceindex); ibuf= BKE_image_get_ibuf(newimage, s->sima? &s->sima->iuser: NULL); if(ibuf && ibuf->rect) diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt index dbb96b68587..ee118f12062 100644 --- a/source/blender/editors/space_buttons/CMakeLists.txt +++ b/source/blender/editors/space_buttons/CMakeLists.txt @@ -38,6 +38,7 @@ set(SRC buttons_context.c buttons_header.c buttons_ops.c + buttons_texture.c space_buttons.c buttons_intern.h diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 6d6f73e98d8..e38ac7bd413 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -54,7 +54,6 @@ #include "BKE_screen.h" #include "BKE_texture.h" - #include "RNA_access.h" #include "ED_armature.h" @@ -66,13 +65,6 @@ #include "buttons_intern.h" // own include -typedef struct ButsContextPath { - PointerRNA ptr[8]; - int len; - int flag; - int tex_ctx; -} ButsContextPath; - static int set_pointer_type(ButsContextPath *path, bContextDataResult *result, StructRNA *type) { PointerRNA *ptr; @@ -373,102 +365,141 @@ static int buttons_context_path_brush(ButsContextPath *path) return 0; } -static int buttons_context_path_texture(ButsContextPath *path) +static int buttons_context_path_texture(ButsContextPath *path, ButsContextTexture *ct) { - Material *ma; - Lamp *la; - Brush *br; - World *wo; - ParticleSystem *psys; - Tex *tex; - PointerRNA *ptr= &path->ptr[path->len-1]; - int orig_len = path->len; + if(ct) { + /* new shading system */ + PointerRNA *ptr= &path->ptr[path->len-1]; + ID *id; - /* if we already have a (pinned) texture, we're done */ - if(RNA_struct_is_a(ptr->type, &RNA_Texture)) { - return 1; - } - /* try brush */ - if((path->tex_ctx == SB_TEXC_BRUSH) && buttons_context_path_brush(path)) { - br= path->ptr[path->len-1].data; - - if(br) { - tex= give_current_brush_texture(br); + /* if we already have a (pinned) texture, we're done */ + if(RNA_struct_is_a(ptr->type, &RNA_Texture)) + return 1; - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + if(!ct->user) + return 0; + + id= ct->user->id; + + if(id) { + if(GS(id->name) == ID_BR) + buttons_context_path_brush(path); + else if(GS(id->name) == ID_MA) + buttons_context_path_material(path, 0); + else if(GS(id->name) == ID_WO) + buttons_context_path_world(path); + else if(GS(id->name) == ID_LA) + buttons_context_path_data(path, OB_LAMP); + else if(GS(id->name) == ID_PA) + buttons_context_path_particle(path); + else if(GS(id->name) == ID_OB) + buttons_context_path_object(path); + } + + if(ct->texture) { + RNA_id_pointer_create(&ct->texture->id, &path->ptr[path->len]); path->len++; - return 1; } - } - /* try world */ - if((path->tex_ctx == SB_TEXC_WORLD) && buttons_context_path_world(path)) { - wo= path->ptr[path->len-1].data; - - if(wo && GS(wo->id.name)==ID_WO) { - tex= give_current_world_texture(wo); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; + return 1; + } + else { + /* old shading system */ + Material *ma; + Lamp *la; + Brush *br; + World *wo; + ParticleSystem *psys; + Tex *tex; + PointerRNA *ptr= &path->ptr[path->len-1]; + int orig_len = path->len; + + /* if we already have a (pinned) texture, we're done */ + if(RNA_struct_is_a(ptr->type, &RNA_Texture)) { return 1; } - } - /* try particles */ - if((path->tex_ctx == SB_TEXC_PARTICLES) && buttons_context_path_particle(path)) { - if(path->ptr[path->len-1].type == &RNA_ParticleSettings) { - ParticleSettings *part = path->ptr[path->len-1].data; + /* try brush */ + if((path->tex_ctx == SB_TEXC_BRUSH) && buttons_context_path_brush(path)) { + br= path->ptr[path->len-1].data; + + if(br) { + tex= give_current_brush_texture(br); - tex= give_current_particle_texture(part); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } - else { - psys= path->ptr[path->len-1].data; + /* try world */ + if((path->tex_ctx == SB_TEXC_WORLD) && buttons_context_path_world(path)) { + wo= path->ptr[path->len-1].data; - if(psys && psys->part && GS(psys->part->id.name)==ID_PA) { - tex= give_current_particle_texture(psys->part); + if(wo && GS(wo->id.name)==ID_WO) { + tex= give_current_world_texture(wo); RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); path->len++; return 1; } } - } - /* try material */ - if(buttons_context_path_material(path, 1)) { - ma= path->ptr[path->len-1].data; + /* try particles */ + if((path->tex_ctx == SB_TEXC_PARTICLES) && buttons_context_path_particle(path)) { + if(path->ptr[path->len-1].type == &RNA_ParticleSettings) { + ParticleSettings *part = path->ptr[path->len-1].data; - if(ma) { - tex= give_current_material_texture(ma); + tex= give_current_particle_texture(part); + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + else { + psys= path->ptr[path->len-1].data; - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + if(psys && psys->part && GS(psys->part->id.name)==ID_PA) { + tex= give_current_particle_texture(psys->part); + + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + } } - } - /* try lamp */ - if(buttons_context_path_data(path, OB_LAMP)) { - la= path->ptr[path->len-1].data; + /* try material */ + if(buttons_context_path_material(path, 1)) { + ma= path->ptr[path->len-1].data; - if(la) { - tex= give_current_lamp_texture(la); + if(ma) { + tex= give_current_material_texture(ma); - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } - } - /* try brushes again in case of no material, lamp, etc */ - path->len = orig_len; - if(buttons_context_path_brush(path)) { - br= path->ptr[path->len-1].data; - - if(br) { - tex= give_current_brush_texture(br); + /* try lamp */ + if(buttons_context_path_data(path, OB_LAMP)) { + la= path->ptr[path->len-1].data; + + if(la) { + tex= give_current_lamp_texture(la); + + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } + } + /* try brushes again in case of no material, lamp, etc */ + path->len = orig_len; + if(buttons_context_path_brush(path)) { + br= path->ptr[path->len-1].data; - RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); - path->len++; - return 1; + if(br) { + tex= give_current_brush_texture(br); + + RNA_id_pointer_create(&tex->id, &path->ptr[path->len]); + path->len++; + return 1; + } } } @@ -530,7 +561,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma found= buttons_context_path_material(path, 0); break; case BCONTEXT_TEXTURE: - found= buttons_context_path_texture(path); + found= buttons_context_path_texture(path, sbuts->texuser); break; case BCONTEXT_BONE: found= buttons_context_path_bone(path); @@ -580,6 +611,8 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) PointerRNA *ptr; int a, pflag= 0, flag= 0; + buttons_texture_context_compute(C, sbuts); + if(!sbuts->path) sbuts->path= MEM_callocN(sizeof(ButsContextPath), "ButsContextPath"); @@ -649,7 +682,8 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts) const char *buttons_context_dir[] = { "world", "object", "mesh", "armature", "lattice", "curve", "meta_ball", "lamp", "speaker", "camera", "material", "material_slot", - "texture", "texture_slot", "bone", "edit_bone", "pose_bone", "particle_system", "particle_system_editable", + "texture", "texture_slot", "texture_user", "bone", "edit_bone", + "pose_bone", "particle_system", "particle_system_editable", "cloth", "soft_body", "fluid", "smoke", "collision", "brush", NULL}; int buttons_context(const bContext *C, const char *member, bContextDataResult *result) @@ -710,7 +744,17 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } else if(CTX_data_equals(member, "texture")) { - set_pointer_type(path, result, &RNA_Texture); + ButsContextTexture *ct= sbuts->texuser; + + if(ct) { + /* new shading system */ + CTX_data_pointer_set(result, &ct->texture->id, &RNA_Texture, ct->texture); + } + else { + /* old shading system */ + set_pointer_type(path, result, &RNA_Texture); + } + return 1; } else if(CTX_data_equals(member, "material_slot")) { @@ -729,23 +773,52 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r return 1; } - else if(CTX_data_equals(member, "texture_node")) { - PointerRNA *ptr; + else if(CTX_data_equals(member, "texture_user")) { + ButsContextTexture *ct= sbuts->texuser; - if((ptr=get_pointer_type(path, &RNA_Material))) { - Material *ma= ptr->data; + if(!ct) + return 0; /* old shading system */ - if(ma) { - bNode *node= give_current_material_texture_node(ma); - CTX_data_pointer_set(result, &ma->id, &RNA_Node, node); - } + if(ct->user && ct->user->ptr.data) { + ButsTextureUser *user= ct->user; + CTX_data_pointer_set(result, user->ptr.id.data, user->ptr.type, user->ptr.data); } return 1; } + else if(CTX_data_equals(member, "texture_node")) { + ButsContextTexture *ct= sbuts->texuser; + + if(ct) { + /* new shading system */ + if(ct->user && ct->user->node) + CTX_data_pointer_set(result, &ct->user->ntree->id, &RNA_Node, ct->user->node); + + return 1; + } + else { + /* old shading system */ + PointerRNA *ptr; + + if((ptr=get_pointer_type(path, &RNA_Material))) { + Material *ma= ptr->data; + + if(ma) { + bNode *node= give_current_material_texture_node(ma); + CTX_data_pointer_set(result, &ma->id, &RNA_Node, node); + } + } + + return 1; + } + } else if(CTX_data_equals(member, "texture_slot")) { + ButsContextTexture *ct= sbuts->texuser; PointerRNA *ptr; + if(ct) + return 0; /* new shading system */ + if((ptr=get_pointer_type(path, &RNA_Material))) { Material *ma= ptr->data; diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index 27084488163..aa692a940d8 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -31,14 +31,20 @@ #ifndef ED_BUTTONS_INTERN_H #define ED_BUTTONS_INTERN_H +#include "DNA_listBase.h" +#include "RNA_types.h" + struct ARegion; struct ARegionType; +struct ID; +struct SpaceButs; +struct Tex; struct bContext; struct bContextDataResult; -struct SpaceButs; +struct bNode; +struct bNodeTree; struct uiLayout; struct wmOperatorType; -struct ID; /* buts->scaflag */ #define BUTS_SENS_SEL 1 @@ -53,6 +59,42 @@ struct ID; #define BUTS_SENS_STATE 512 #define BUTS_ACT_STATE 1024 +/* context data */ + +typedef struct ButsContextPath { + PointerRNA ptr[8]; + int len; + int flag; + int tex_ctx; +} ButsContextPath; + +typedef struct ButsTextureUser { + struct ButsTextureUser *next, *prev; + + struct ID *id; + + PointerRNA ptr; + PropertyRNA *prop; + + struct bNodeTree *ntree; + struct bNode *node; + + const char *category; + int icon; + const char *name; + + int index; +} ButsTextureUser; + +typedef struct ButsContextTexture { + ListBase users; + + struct Tex *texture; + + struct ButsTextureUser *user; + int index; +} ButsContextTexture; + /* internal exports only */ /* buttons_header.c */ @@ -67,6 +109,9 @@ struct ID *buttons_context_id_path(const struct bContext *C); extern const char *buttons_context_dir[]; /* doc access */ +/* buttons_texture.c */ +void buttons_texture_context_compute(const struct bContext *C, struct SpaceButs *sbuts); + /* buttons_ops.c */ void BUTTONS_OT_file_browse(struct wmOperatorType *ot); void BUTTONS_OT_directory_browse(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c new file mode 100644 index 00000000000..dd9f3c57896 --- /dev/null +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -0,0 +1,469 @@ +/* + * $Id$ + * + * ***** 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) 2009 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file blender/editors/space_buttons/buttons_texture.c + * \ingroup spbuttons + */ + + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_listbase.h" +#include "BLI_string.h" +#include "BLI_utildefines.h" + +#include "DNA_brush_types.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_object_force.h" +#include "DNA_particle_types.h" +#include "DNA_scene_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_world_types.h" + +#include "BKE_context.h" +#include "BKE_material.h" +#include "BKE_modifier.h" +#include "BKE_node.h" +#include "BKE_paint.h" +#include "BKE_particle.h" +#include "BKE_scene.h" + +#include "RNA_access.h" + +#include "UI_interface.h" +#include "UI_resources.h" + +#include "ED_node.h" +#include "ED_screen.h" + +#include "../interface/interface_intern.h" + +#include "buttons_intern.h" // own include + +/************************* Texture User **************************/ + +static void buttons_texture_user_property_add(ListBase *users, ID *id, + PointerRNA ptr, PropertyRNA *prop, + const char *category, int icon, const char *name) +{ + ButsTextureUser *user = MEM_callocN(sizeof(ButsTextureUser), "ButsTextureUser"); + + user->id= id; + user->ptr = ptr; + user->prop = prop; + user->category = category; + user->icon = icon; + user->name = name; + user->index = BLI_countlist(users); + + BLI_addtail(users, user); +} + +static void buttons_texture_user_node_add(ListBase *users, ID *id, + bNodeTree *ntree, bNode *node, + const char *category, int icon, const char *name) +{ + ButsTextureUser *user = MEM_callocN(sizeof(ButsTextureUser), "ButsTextureUser"); + + user->id= id; + user->ntree = ntree; + user->node = node; + user->category = category; + user->icon = icon; + user->name = name; + user->index = BLI_countlist(users); + + BLI_addtail(users, user); +} + +static void buttons_texture_users_find_nodetree(ListBase *users, ID *id, + bNodeTree *ntree, const char *category) +{ + bNode *node; + + if(ntree) { + for(node=ntree->nodes.first; node; node=node->next) { + if(node->typeinfo->nclass == NODE_CLASS_TEXTURE) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_node_add(users, id, ntree, node, + category, RNA_struct_ui_icon(ptr.type), node->name); + } + else if(node->type == NODE_GROUP && node->id) { + buttons_texture_users_find_nodetree(users, id, (bNodeTree*)node->id, category); + } + } + } +} + +static void buttons_texture_modifier_foreach(void *userData, Object *ob, ModifierData *md, const char *propname) +{ + PointerRNA ptr; + PropertyRNA *prop; + ListBase *users = userData; + + RNA_pointer_create(&ob->id, &RNA_Modifier, md, &ptr); + prop = RNA_struct_find_property(&ptr, propname); + + buttons_texture_user_property_add(users, &ob->id, ptr, prop, + "Modifiers", RNA_struct_ui_icon(ptr.type), md->name); +} + +static void buttons_texture_users_from_context(ListBase *users, const bContext *C, SpaceButs *sbuts) +{ + Scene *scene= NULL; + Object *ob= NULL; + Material *ma= NULL; + Lamp *la= NULL; + World *wrld= NULL; + Brush *brush= NULL; + ID *pinid = sbuts->pinid; + + /* get data from context */ + if(pinid) { + if(GS(pinid->name) == ID_SCE) + scene= (Scene*)pinid; + else if(GS(pinid->name) == ID_OB) + ob= (Object*)pinid; + else if(GS(pinid->name) == ID_LA) + la= (Lamp*)pinid; + else if(GS(pinid->name) == ID_WO) + wrld= (World*)pinid; + else if(GS(pinid->name) == ID_MA) + ma= (Material*)pinid; + else if(GS(pinid->name) == ID_BR) + brush= (Brush*)pinid; + } + + if(!scene) + scene= CTX_data_scene(C); + + if(!(pinid || pinid == &scene->id)) { + ob= (scene->basact)? scene->basact->object: NULL; + wrld= scene->world; + brush= paint_brush(paint_get_active(scene)); + } + + if(ob && ob->type == OB_LAMP && !la) + la= ob->data; + if(ob && !ma) + ma= give_current_material(ob, ob->actcol); + + /* fill users */ + users->first = users->last = NULL; + + if(ma) + buttons_texture_users_find_nodetree(users, &ma->id, ma->nodetree, "Material"); + if(la) + buttons_texture_users_find_nodetree(users, &la->id, la->nodetree, "Lamp"); + if(wrld) + buttons_texture_users_find_nodetree(users, &wrld->id, wrld->nodetree, "World"); + + if(ob) { + ParticleSystem *psys= psys_get_current(ob); + MTex *mtex; + int a; + + /* modifiers */ + modifiers_foreachTexLink(ob, buttons_texture_modifier_foreach, users); + + /* particle systems */ + if(psys) { + /* todo: these slots are not in the UI */ + for(a=0; apart->mtex[a]; + + if(mtex) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&psys->part->id, &RNA_ParticleSettingsTextureSlot, mtex, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_property_add(users, &psys->part->id, ptr, prop, + "Particles", RNA_struct_ui_icon(&RNA_ParticleSettings), psys->name); + } + } + } + + /* field */ + if(ob->pd && ob->pd->forcefield == PFIELD_TEXTURE) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&ob->id, &RNA_FieldSettings, ob->pd, &ptr); + prop = RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_property_add(users, &ob->id, ptr, prop, + "Fields", ICON_FORCE_TEXTURE, "Texture Field"); + } + } + + /* brush */ + if(brush) { + PointerRNA ptr; + PropertyRNA *prop; + + RNA_pointer_create(&brush->id, &RNA_BrushTextureSlot, &brush->mtex, &ptr); + prop= RNA_struct_find_property(&ptr, "texture"); + + buttons_texture_user_property_add(users, &brush->id, ptr, prop, + "Brush", ICON_BRUSH_DATA, brush->id.name+2); + } +} + +void buttons_texture_context_compute(const bContext *C, SpaceButs *sbuts) +{ + /* gatheravailable texture users in context. runs on every draw of + properties editor, before the buttons are created. */ + ButsContextTexture *ct= sbuts->texuser; + Scene *scene= CTX_data_scene(C); + + if(!scene_use_new_shading_nodes(scene)) { + if(ct) { + MEM_freeN(ct); + BLI_freelistN(&ct->users); + sbuts->texuser= NULL; + } + + return; + } + + if(!ct) { + ct= MEM_callocN(sizeof(ButsContextTexture), "ButsContextTexture"); + sbuts->texuser= ct; + } + else { + BLI_freelistN(&ct->users); + } + + buttons_texture_users_from_context(&ct->users, C, sbuts); + + /* set one user as active based on active index */ + if(ct->index >= BLI_countlist(&ct->users)) + ct->index= 0; + + ct->user = BLI_findlink(&ct->users, ct->index); + ct->texture = NULL; + + if(ct->user) { + if(ct->user->ptr.data) { + PointerRNA texptr; + Tex *tex; + + /* get texture datablock pointer if it's a property */ + texptr = RNA_property_pointer_get(&ct->user->ptr, ct->user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + + ct->texture = tex; + } + else if(ct->user->node && !(ct->user->node->flag & NODE_ACTIVE_TEXTURE)) { + ButsTextureUser *user; + + /* detect change of active texture node in same node tree, in that + case we also automatically switch to the other node */ + for(user=ct->users.first; user; user=user->next) { + if(user->ntree == ct->user->ntree && user->node != ct->user->node) { + if(user->node->flag & NODE_ACTIVE_TEXTURE) { + ct->user = user; + ct->index = BLI_findindex(&ct->users, user); + break; + } + } + } + } + } +} + +static void template_texture_select(bContext *C, void *user_p, void *UNUSED(arg)) +{ + /* callback when selecting a texture user in the menu */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user = (ButsTextureUser*)user_p; + PointerRNA texptr; + Tex *tex; + + if(!ct) + return; + + /* set user as active */ + if(user->node) { + ED_node_set_active(CTX_data_main(C), user->ntree, user->node); + ct->texture = NULL; + } + else { + texptr = RNA_property_pointer_get(&user->ptr, user->prop); + tex = (RNA_struct_is_a(texptr.type, &RNA_Texture))? texptr.data: NULL; + + ct->texture = tex; + } + + ct->user = user; + ct->index = user->index; +} + +static void template_texture_user_menu(bContext *C, uiLayout *layout, void *UNUSED(arg)) +{ + /* callback when opening texture user selection menu, to create buttons. */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + uiBlock *block = uiLayoutGetBlock(layout); + const char *last_category = NULL; + + for(user=ct->users.first; user; user=user->next) { + uiBut *but; + char name[UI_MAX_NAME_STR]; + + /* add label per category */ + if(!last_category || strcmp(last_category, user->category) != 0) { + uiItemL(layout, user->category, ICON_NONE); + but= block->buttons.last; + but->flag= UI_TEXT_LEFT; + } + + /* create button */ + BLI_snprintf(name, UI_MAX_NAME_STR, " %s", user->name); + + but = uiDefIconTextBut(block, BUT, 0, user->icon, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiButSetNFunc(but, template_texture_select, MEM_dupallocN(user), NULL); + + last_category = user->category; + } +} + +void uiTemplateTextureUser(uiLayout *layout, bContext *C) +{ + /* texture user selection dropdown menu. the available users have been + gathered before drawing in ButsContextTexture, we merely need to + display the current item. */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + ButsTextureUser *user; + char name[UI_MAX_NAME_STR]; + + if(!ct) + return; + + /* get current user */ + user= ct->user; + + if(!user) { + uiItemL(layout, "No textures in context.", ICON_NONE); + return; + } + + /* create button */ + BLI_snprintf(name, UI_MAX_NAME_STR, "%s", user->name); + + if(user->icon) { + but= uiDefIconTextMenuBut(block, template_texture_user_menu, NULL, + user->icon, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + else { + but= uiDefMenuBut(block, template_texture_user_menu, NULL, + name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); + } + + /* some cosmetic tweaks */ + but->type= MENU; + but->flag |= UI_TEXT_LEFT; + but->flag &= ~UI_ICON_SUBMENU; +} + +/************************* Texture Show **************************/ + +static void template_texture_show(bContext *C, void *data_p, void *prop_p) +{ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + + if(!ct) + return; + + for(user=ct->users.first; user; user=user->next) + if(user->ptr.data == data_p && user->prop == prop_p) + break; + + if(user) { + /* select texture */ + template_texture_select(C, user, NULL); + + /* change context */ + sbuts->mainb= BCONTEXT_TEXTURE; + sbuts->mainbuser= sbuts->mainb; + sbuts->preview= 1; + + /* redraw editor */ + ED_area_tag_redraw(CTX_wm_area(C)); + } +} + +void uiTemplateTextureShow(uiLayout *layout, bContext *C, PointerRNA *ptr, PropertyRNA *prop) +{ + /* button to quickly show texture in texture tab */ + SpaceButs *sbuts = CTX_wm_space_buts(C); + ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL; + ButsTextureUser *user; + + /* only show button in other tabs in properties editor */ + if(!ct || sbuts->mainb == BCONTEXT_TEXTURE) + return; + + /* find corresponding texture user */ + for(user=ct->users.first; user; user=user->next) + if(user->ptr.data == ptr->data && user->prop == prop) + break; + + /* draw button */ + if(user) { + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but; + + but= uiDefIconBut(block, BUT, 0, ICON_BUTS, 0, 0, UI_UNIT_X, UI_UNIT_Y, + NULL, 0.0, 0.0, 0.0, 0.0, "Show texture in texture tab"); + uiButSetFunc(but, template_texture_show, user->ptr.data, user->prop); + } +} + diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 4c328d174e9..0c326af406f 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -104,6 +104,12 @@ static void buttons_free(SpaceLink *sl) if(sbuts->path) MEM_freeN(sbuts->path); + + if(sbuts->texuser) { + ButsContextTexture *ct= sbuts->texuser; + BLI_freelistN(&ct->users); + MEM_freeN(ct); + } } /* spacetype; init callback */ @@ -127,6 +133,7 @@ static SpaceLink *buttons_duplicate(SpaceLink *sl) /* clear or remove stuff from old */ sbutsn->ri= NULL; sbutsn->path= NULL; + sbutsn->texuser= NULL; return (SpaceLink *)sbutsn; } diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 3b9876329ec..c29553a9c87 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -47,7 +47,10 @@ #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 "IMB_imbuf_types.h" @@ -81,7 +84,7 @@ Image *ED_space_image(SpaceImage *sima) /* called to assign images to UV faces */ void ED_space_image_set(bContext *C, SpaceImage *sima, Scene *scene, Object *obedit, Image *ima) { - ED_uvedit_assign_image(scene, obedit, ima, sima->image); + ED_uvedit_assign_image(CTX_data_main(C), scene, obedit, ima, sima->image); /* change the space ima after because uvedit_face_visible uses the space ima * to check if the face is displayed in UV-localview */ @@ -572,6 +575,7 @@ static void image_dropboxes(void) static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) { + Scene *scene = CTX_data_scene(C); SpaceImage *sima= CTX_wm_space_image(C); Object *obedit= CTX_data_edit_object(C); Image *ima; @@ -586,19 +590,31 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa)) else if(obedit && obedit->type == OB_MESH) { Mesh *me= (Mesh*)obedit->data; EditMesh *em= BKE_mesh_get_editmesh(me); - MTFace *tf; - - if(em && EM_texFaceCheck(em)) { - sima->image= NULL; - - tf = EM_get_active_mtface(em, NULL, NULL, 1); /* partially selected face is ok */ + int sloppy= 1; /* partially selected face is ok */ + + if(scene_use_new_shading_nodes(scene)) { + /* new shading system, get image from material */ + EditFace *efa= EM_get_actFace(em, sloppy); + + if(efa) + ED_object_get_active_image(obedit, efa->mat_nr, &sima->image, NULL, NULL); + } + else { + /* old shading system, we set texface */ + MTFace *tf; - if(tf) { - /* don't need to check for pin here, see above */ - sima->image= tf->tpage; + if(em && EM_texFaceCheck(em)) { + sima->image= NULL; + + tf = EM_get_active_mtface(em, NULL, NULL, sloppy); - if(sima->flag & SI_EDITTILE); - else sima->curtile= tf->tile; + 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; + } } } diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt index 991b35585a6..f33b784c5d2 100644 --- a/source/blender/editors/space_node/CMakeLists.txt +++ b/source/blender/editors/space_node/CMakeLists.txt @@ -25,6 +25,7 @@ set(INC ../../blenlib ../../blenloader ../../imbuf + ../../gpu ../../makesdna ../../makesrna ../../nodes diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript index c4309dcfca3..6b72fd066e0 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' +incs += ' ../../nodes ../../render/extern/include ../../blenloader ../../gpu' incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include' defs = [] cf = [] diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index a1b705610f4..23855ff24e1 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -90,6 +90,8 @@ #include "RNA_enum_types.h" +#include "GPU_material.h" + #include "node_intern.h" static EnumPropertyItem socket_in_out_items[] = { @@ -598,6 +600,8 @@ static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup) void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) { + int was_active_texture = (node->flag & NODE_ACTIVE_TEXTURE); + nodeSetActive(ntree, node); if(node->type!=NODE_GROUP) { @@ -621,6 +625,15 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) ED_node_generic_update(bmain, ntree, node); } + /* if active texture changed, free glsl materials */ + if((node->flag & NODE_ACTIVE_TEXTURE) && !was_active_texture) { + Material *ma; + + for(ma=bmain->mat.first; ma; ma=ma->id.next) + if(ma->nodetree && ma->use_nodes && has_nodetree(ma->nodetree, ntree)) + GPU_material_free(ma); + } + WM_main_add_notifier(NC_MATERIAL|ND_NODES, node->id); } else if(ntree->type==NTREE_COMPOSIT) { diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c index 806a6f98828..5aa15cc68d6 100644 --- a/source/blender/editors/space_node/node_templates.c +++ b/source/blender/editors/space_node/node_templates.c @@ -215,6 +215,11 @@ static void node_socket_add_replace(Main *bmain, bNodeTree *ntree, bNode *node_t } } + /* also preserve mapping for texture nodes */ + if(node_from->typeinfo->nclass == NODE_CLASS_TEXTURE && + node_prev->typeinfo->nclass == NODE_CLASS_TEXTURE) + memcpy(node_from->storage, node_prev->storage, sizeof(NodeTexBase)); + /* remove node */ node_remove_linked(ntree, node_prev); } @@ -503,6 +508,10 @@ void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSo but->flag |= UI_TEXT_LEFT|UI_BUT_NODE_LINK; but->poin= (char*)but; but->func_argN = arg; + + if(sock->link && sock->link->fromnode) + if(sock->link->fromnode->flag & NODE_ACTIVE_TEXTURE) + but->flag |= UI_BUT_NODE_ACTIVE; } /**************************** Node Tree Layout *******************************/ diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 670943afdd3..e23824a2210 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -40,11 +40,12 @@ #include "DNA_material_types.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" +#include "DNA_object_types.h" #include "DNA_property_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "DNA_view3d_types.h" -#include "DNA_object_types.h" #include "BKE_DerivedMesh.h" #include "BKE_effect.h" @@ -52,6 +53,7 @@ #include "BKE_material.h" #include "BKE_paint.h" #include "BKE_property.h" +#include "BKE_scene.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -64,6 +66,7 @@ #include "GPU_material.h" #include "ED_mesh.h" +#include "ED_uvedit.h" #include "view3d_intern.h" // own include @@ -619,7 +622,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl) ddm->release(ddm); } -void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) +void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) { Mesh *me= ob->data; @@ -676,3 +679,179 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } +/************************** NEW SHADING NODES ********************************/ + +typedef struct TexMatCallback { + Scene *scene; + Object *ob; + Mesh *me; + DerivedMesh *dm; +} TexMatCallback; + +static void tex_mat_set_material_cb(void *UNUSED(userData), int mat_nr, void *attribs) +{ + /* all we have to do here is simply enable the GLSL material, but note + that the GLSL code will give different result depending on the drawtype, + in texture draw mode it will output the active texture node, in material + draw mode it will show the full material. */ + GPU_enable_material(mat_nr, attribs); +} + +static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) +{ + /* texture draw mode without GLSL */ + TexMatCallback *data= (TexMatCallback*)userData; + GPUVertexAttribs *gattribs = attribs; + Image *ima; + ImageUser *iuser; + bNode *node; + int texture_set= 0; + + /* draw image texture if we find one */ + 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; + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + + if(bindcode) { + NodeTexBase *texbase= node->storage; + + /* disable existing material */ + GPU_disable_material(); + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero); + glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0); + + /* bind texture */ + glEnable(GL_COLOR_MATERIAL); + glEnable(GL_TEXTURE_2D); + + glBindTexture(GL_TEXTURE_2D, ima->bindcode); + glColor3f(1.0f, 1.0f, 1.0f); + + glMatrixMode(GL_TEXTURE); + glLoadMatrixf(texbase->tex_mapping.mat); + glMatrixMode(GL_MODELVIEW); + + /* use active UV texture layer */ + memset(gattribs, 0, sizeof(*gattribs)); + + gattribs->layer[0].type= CD_MTFACE; + gattribs->layer[0].name[0]= '\0'; + gattribs->layer[0].gltexco= 1; + gattribs->totlayer= 1; + + texture_set= 1; + } + } + + if(!texture_set) { + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + + /* disable texture */ + glDisable(GL_TEXTURE_2D); + glDisable(GL_COLOR_MATERIAL); + + /* draw single color */ + GPU_enable_material(mat_nr, attribs); + } +} + +static int tex_mat_set_face_mesh_cb(void *userData, int index) +{ + /* faceselect mode face hiding */ + TexMatCallback *data= (TexMatCallback*)userData; + Mesh *me = (Mesh*)data->me; + MFace *mface = &me->mface[index]; + + return !(mface->flag & ME_HIDE); +} + +static int tex_mat_set_face_editmesh_cb(void *UNUSED(userData), int index) +{ + /* editmode face hiding */ + EditFace *efa= EM_get_face_for_index(index); + + return !(efa->h); +} + +void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int faceselect) +{ + if(!scene_use_new_shading_nodes(scene)) { + draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, faceselect); + return; + } + + /* set opengl state for negative scale & color */ + if(ob->transflag & OB_NEG_SCALE) glFrontFace(GL_CW); + else glFrontFace(GL_CCW); + + glEnable(GL_LIGHTING); + + if(ob->mode & OB_MODE_WEIGHT_PAINT) { + /* weight paint mode exception */ + int useColors= 1; + + dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, + ob->data, useColors, GPU_enable_material, NULL); + } + else { + Mesh *me= ob->data; + TexMatCallback data = {scene, ob, me, dm}; + int (*set_face_cb)(void*, int); + int glsl; + + /* face hiding callback depending on mode */ + if(ob == scene->obedit) + set_face_cb= tex_mat_set_face_editmesh_cb; + else if(faceselect) + set_face_cb= tex_mat_set_face_mesh_cb; + else + set_face_cb= NULL; + + /* test if we can use glsl */ + glsl= (v3d->drawtype == OB_MATERIAL) && GPU_glsl_support(); + + GPU_begin_object_materials(v3d, rv3d, scene, ob, glsl, NULL); + + if(glsl) { + /* draw glsl */ + dm->drawMappedFacesMat(dm, + tex_mat_set_material_cb, + set_face_cb, &data); + } + else { + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + + /* draw textured */ + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero); + glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0); + + dm->drawMappedFacesMat(dm, + tex_mat_set_texture_cb, + set_face_cb, &data); + } + + GPU_end_object_materials(); + } + + /* reset opengl state */ + glDisable(GL_COLOR_MATERIAL); + glDisable(GL_TEXTURE_2D); + glDisable(GL_LIGHTING); + glBindTexture(GL_TEXTURE_2D, 0); + glFrontFace(GL_CCW); + + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + + /* faceselect mode drawing over textured mesh */ + if(!(ob == scene->obedit) && faceselect) + draw_mesh_face_select(rv3d, ob->data, dm); +} + diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index f2bd4b51d94..8e592ad9f68 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -108,7 +108,7 @@ /* this condition has been made more complex since editmode can draw textures */ #define CHECK_OB_DRAWTEXTURE(vd, dt) \ - ((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \ + ((ELEM(vd->drawtype, OB_TEXTURE, OB_MATERIAL) && dt>OB_SOLID) || \ (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX)) static void draw_bounding_volume(Scene *scene, Object *ob, char type); @@ -252,6 +252,8 @@ int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt) return 0; if(ob==OBACT && (ob && ob->mode & OB_MODE_WEIGHT_PAINT)) return 0; + if(scene_use_new_shading_nodes(scene)) + return 0; return (scene->gm.matmode == GAME_MAT_GLSL) && (dt > OB_SOLID); } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 51bbf591bb3..8e20f331698 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2229,11 +2229,17 @@ CustomDataMask ED_view3d_datamask(Scene *scene, View3D *v3d) { CustomDataMask mask= 0; - if((v3d->drawtype == OB_TEXTURE) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { + if(ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL) || ((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX))) { mask |= CD_MASK_MTFACE | CD_MASK_MCOL; - if(scene->gm.matmode == GAME_MAT_GLSL) - mask |= CD_MASK_ORCO; + if(scene_use_new_shading_nodes(scene)) { + if(v3d->drawtype == OB_MATERIAL) + mask |= CD_MASK_ORCO; + } + else { + if(scene->gm.matmode == GAME_MAT_GLSL) + mask |= CD_MASK_ORCO; + } } return mask; diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 62b875c82de..173ab809b53 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -37,7 +37,9 @@ #include "MEM_guardedalloc.h" #include "DNA_object_types.h" +#include "DNA_material_types.h" #include "DNA_meshdata_types.h" +#include "DNA_node_types.h" #include "DNA_scene_types.h" #include "BLI_math.h" @@ -50,11 +52,16 @@ #include "BKE_depsgraph.h" #include "BKE_image.h" #include "BKE_library.h" +#include "BKE_main.h" +#include "BKE_material.h" #include "BKE_mesh.h" +#include "BKE_node.h" #include "BKE_report.h" +#include "BKE_scene.h" #include "ED_image.h" #include "ED_mesh.h" +#include "ED_node.h" #include "ED_uvedit.h" #include "ED_object.h" #include "ED_screen.h" @@ -87,9 +94,46 @@ int ED_uvedit_test(Object *obedit) return ret; } +/**************************** object active image *****************************/ + +static int is_image_texture_node(bNode *node) +{ + return ELEM(node->type, SH_NODE_TEX_IMAGE, SH_NODE_TEX_ENVIRONMENT); +} + +int ED_object_get_active_image(Object *ob, int mat_nr, Image **ima, ImageUser **iuser, bNode **node_r) +{ + Material *ma= give_current_material(ob, mat_nr); + bNode *node= (ma && ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + + if(node && is_image_texture_node(node)) { + if(ima) *ima= (Image*)node->id; + if(iuser) *iuser= NULL; + if(node_r) *node_r= node; + return TRUE; + } + + if(ima) *ima= NULL; + if(iuser) *iuser= NULL; + if(node_r) *node_r= node; + + return FALSE; +} + +void ED_object_assign_active_image(Main *bmain, Object *ob, int mat_nr, Image *ima) +{ + Material *ma= give_current_material(ob, mat_nr); + bNode *node= (ma && ma->use_nodes)? nodeGetActiveTexture(ma->nodetree): NULL; + + if(node && is_image_texture_node(node)) { + node->id= &ima->id; + ED_node_generic_update(bmain, ma->nodetree, node); + } +} + /************************* assign image ************************/ -void ED_uvedit_assign_image(Scene *scene, Object *obedit, Image *ima, Image *previma) +void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *ima, Image *previma) { EditMesh *em; EditFace *efa; @@ -109,35 +153,46 @@ void ED_uvedit_assign_image(Scene *scene, Object *obedit, Image *ima, Image *pre BKE_mesh_end_editmesh(obedit->data, em); return; } - - /* ensure we have a uv layer */ - if(!CustomData_has_layer(&em->fdata, CD_MTFACE)) { - EM_add_data_layer(em, &em->fdata, CD_MTFACE, NULL); - update= 1; + + if(scene_use_new_shading_nodes(scene)) { + /* new shading system, assign image in material */ + int sloppy= 1; + EditFace *efa= EM_get_actFace(em, sloppy); + + if(efa) + ED_object_assign_active_image(bmain, obedit, efa->mat_nr, ima); } + else { + /* old shading system, assign image to selected faces */ + + /* ensure we have a uv layer */ + if(!CustomData_has_layer(&em->fdata, CD_MTFACE)) { + EM_add_data_layer(em, &em->fdata, CD_MTFACE, NULL); + update= 1; + } - /* now assign to all visible faces */ - for(efa= em->faces.first; efa; efa= efa->next) { - tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + /* now assign to all visible faces */ + for(efa= em->faces.first; efa; efa= efa->next) { + tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); - if(uvedit_face_visible(scene, previma, efa, tf)) { - if(ima) { - tf->tpage= ima; - - if(ima->id.us==0) id_us_plus(&ima->id); - else id_lib_extern(&ima->id); - } - else { - tf->tpage= NULL; - } + if(uvedit_face_visible(scene, previma, efa, tf)) { + if(ima) { + tf->tpage= ima; + + if(ima->id.us==0) id_us_plus(&ima->id); + else id_lib_extern(&ima->id); + } + else + tf->tpage= NULL; - update = 1; + update = 1; + } } - } - /* and update depdency graph */ - if(update) - DAG_id_tag_update(obedit->data, 0); + /* and update depdency graph */ + if(update) + DAG_id_tag_update(obedit->data, 0); + } BKE_mesh_end_editmesh(obedit->data, em); } diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index 29a9ae84cd5..11cd50a7d4e 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -51,6 +51,7 @@ #include "BKE_customdata.h" #include "BKE_depsgraph.h" #include "BKE_image.h" +#include "BKE_main.h" #include "BKE_mesh.h" #include "PIL_time.h" @@ -73,6 +74,7 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) { + Main *bmain= CTX_data_main(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); EditFace *efa; MTFace *tf; @@ -118,7 +120,7 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) } if(ima) - ED_uvedit_assign_image(scene, obedit, ima, NULL); + ED_uvedit_assign_image(bmain, scene, obedit, ima, NULL); /* select new UV's */ for(efa=em->faces.first; efa; efa=efa->next) { diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 4c828264061..d08d7cf2ead 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -62,7 +62,7 @@ #include "BKE_material.h" #include "BKE_node.h" #include "BKE_object.h" - +#include "BKE_scene.h" #include "BLI_threads.h" #include "BLI_blenlib.h" @@ -952,15 +952,17 @@ static struct GPUMaterialState { } GMS = {NULL}; /* fixed function material, alpha handed by caller */ -static void gpu_material_to_fixed(GPUMaterialFixed *smat, const Material *bmat, const int gamma, const Object *ob) +static void gpu_material_to_fixed(GPUMaterialFixed *smat, const Material *bmat, const int gamma, const Object *ob, const int new_shading_nodes) { - if (bmat->mode & MA_SHLESS) { + if(new_shading_nodes || bmat->mode & MA_SHLESS) { copy_v3_v3(smat->diff, &bmat->r); smat->diff[3]= 1.0; - if(gamma) { + if(gamma) linearrgb_to_srgb_v3_v3(smat->diff, smat->diff); - } + + zero_v4(smat->spec); + smat->hard= 0; } else { mul_v3_v3fl(smat->diff, &bmat->r, bmat->ref + bmat->emit); @@ -1001,6 +1003,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GPUBlendMode alphablend; int a; int gamma = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT; + int new_shading_nodes = scene_use_new_shading_nodes(scene); /* initialize state */ memset(&GMS, 0, sizeof(GMS)); @@ -1032,7 +1035,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O /* no materials assigned? */ if(ob->totcol==0) { - gpu_material_to_fixed(&GMS.matbuf[0], &defmaterial, 0, ob); + gpu_material_to_fixed(&GMS.matbuf[0], &defmaterial, 0, ob, new_shading_nodes); /* do material 1 too, for displists! */ memcpy(&GMS.matbuf[1], &GMS.matbuf[0], sizeof(GPUMaterialFixed)); @@ -1049,7 +1052,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O for(a=1; a<=ob->totcol; a++) { /* find a suitable material */ ma= give_current_material(ob, a); - if(!glsl) ma= gpu_active_node_material(ma); + if(!glsl && !new_shading_nodes) ma= gpu_active_node_material(ma); if(ma==NULL) ma= &defmaterial; /* create glsl material if requested */ @@ -1062,7 +1065,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O } else { /* fixed function opengl materials */ - gpu_material_to_fixed(&GMS.matbuf[a], ma, gamma, ob); + gpu_material_to_fixed(&GMS.matbuf[a], ma, gamma, ob, new_shading_nodes); alphablend = (ma->alpha == 1.0f)? GPU_BLEND_SOLID: GPU_BLEND_ALPHA; if(do_alpha_pass && GMS.alphapass) @@ -1223,6 +1226,7 @@ void GPU_end_object_materials(void) int GPU_default_lights(void) { + float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f}, position[4]; int a, count = 0; /* initialize */ @@ -1248,27 +1252,28 @@ int GPU_default_lights(void) glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_FALSE); - glLightfv(GL_LIGHT0, GL_POSITION, U.light[0].vec); - glLightfv(GL_LIGHT0, GL_DIFFUSE, U.light[0].col); - glLightfv(GL_LIGHT0, GL_SPECULAR, U.light[0].spec); - - glLightfv(GL_LIGHT1, GL_POSITION, U.light[1].vec); - glLightfv(GL_LIGHT1, GL_DIFFUSE, U.light[1].col); - glLightfv(GL_LIGHT1, GL_SPECULAR, U.light[1].spec); - - glLightfv(GL_LIGHT2, GL_POSITION, U.light[2].vec); - glLightfv(GL_LIGHT2, GL_DIFFUSE, U.light[2].col); - glLightfv(GL_LIGHT2, GL_SPECULAR, U.light[2].spec); - for(a=0; a<8; a++) { if(a<3) { if(U.light[a].flag) { glEnable(GL_LIGHT0+a); + + normalize_v3_v3(position, U.light[a].vec); + position[3]= 0.0f; + + glLightfv(GL_LIGHT0+a, GL_POSITION, position); + glLightfv(GL_LIGHT0+a, GL_DIFFUSE, U.light[a].col); + glLightfv(GL_LIGHT0+a, GL_SPECULAR, U.light[a].spec); + count++; } - else + else { glDisable(GL_LIGHT0+a); - + + glLightfv(GL_LIGHT0+a, GL_POSITION, zero); + glLightfv(GL_LIGHT0+a, GL_DIFFUSE, zero); + glLightfv(GL_LIGHT0+a, GL_SPECULAR, zero); + } + // clear stuff from other opengl lamp usage glLightf(GL_LIGHT0+a, GL_SPOT_CUTOFF, 180.0); glLightf(GL_LIGHT0+a, GL_CONSTANT_ATTENUATION, 1.0); diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 9344b4e680a..02ba2eba9e9 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -1415,29 +1415,33 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma) if(((GPUMaterial*)link->data)->scene == scene) return link->data; + /* allocate material */ mat = GPU_material_construct_begin(ma); mat->scene = scene; if(!(scene->gm.flag & GAME_GLSL_NO_NODES) && ma->nodetree && ma->use_nodes) { + /* create nodes */ ntreeGPUMaterialNodes(ma->nodetree, mat); } else { + /* create material */ outlink = GPU_blender_material(mat, ma); GPU_material_output_link(mat, outlink); } - if(gpu_do_color_management(mat)) - if(mat->outlink) - GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink); + if(!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_construct_end(mat)) { - GPU_material_free(mat); - mat= NULL; - return 0; - }*/ GPU_material_construct_end(mat); + /* note that even if building the shader fails in some way, we still keep + it to avoid trying to compile again and again, and simple do not use + the actual shader on drawing */ + link = MEM_callocN(sizeof(LinkData), "GPUMaterialLink"); link->data = mat; BLI_addtail(&ma->gpumaterial, link); diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 289c7ac2fc3..3e74243f858 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -145,6 +145,8 @@ typedef struct SpaceButs { void *path; /* runtime */ int pathflag, dataicon; /* runtime */ ID *pinid; + + void *texuser; } SpaceButs; typedef struct SpaceSeq { diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index bb07fa86f3a..d698e7c8fbf 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -102,7 +102,8 @@ EnumPropertyItem viewport_shade_items[] = { {OB_BOUNDBOX, "BOUNDBOX", ICON_BBOX, "Bounding Box", "Display the object's local bounding boxes only"}, {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, - {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, + {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, + {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, {0, NULL, 0, NULL, NULL}}; @@ -114,13 +115,14 @@ EnumPropertyItem viewport_shade_items[] = { #include "BLI_math.h" -#include "BKE_screen.h" #include "BKE_animsys.h" #include "BKE_brush.h" #include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_paint.h" +#include "BKE_scene.h" +#include "BKE_screen.h" #include "ED_image.h" #include "ED_node.h" @@ -461,10 +463,12 @@ static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_WIRE); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_SOLID); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); + + if(scene_use_new_shading_nodes(scene)) + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); - if(type->view_draw) { + if(type->view_draw) RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); - } RNA_enum_item_end(&item, &totitem); *free= 1; diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 9ff56f1aeb0..366ba1daf85 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -465,6 +465,9 @@ void RNA_api_ui_layout(StructRNA *srna) parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "template_texture_user", "uiTemplateTextureUser"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "template_keymap_item_properties", "uiTemplateKeymapItemProperties"); parm= RNA_def_pointer(func, "item", "KeyMapItem", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR|PROP_NEVER_NULL); diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index ebcef97404d..dcfdb97f91a 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -242,6 +242,29 @@ static void data_from_gpu_stack_list(ListBase *sockets, bNodeStack **ns, GPUNode node_data_from_gpu_stack(ns[i], &gs[i]); } +bNode *nodeGetActiveTexture(bNodeTree *ntree) +{ + /* this is the node we texture paint and draw in textured draw */ + bNode *node; + + if(!ntree) + return NULL; + + /* check for group edit */ + for(node= ntree->nodes.first; node; node= node->next) + if(node->flag & NODE_GROUP_EDIT) + break; + + if(node) + ntree= (bNodeTree*)node->id; + + for(node= ntree->nodes.first; node; node= node->next) + if(node->flag & NODE_ACTIVE_TEXTURE) + return node; + + return NULL; +} + void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, int do_outputs) { bNodeExec *nodeexec; diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 2f297926fc7..bf31f82483e 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -374,6 +374,8 @@ void uiTemplateWaveform(struct uiLayout *layout, struct PointerRNA *ptr, char *p 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) {} +void uiTemplateTextureShow(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop) {} void uiTemplateKeymapItemProperties(struct uiLayout *layout, struct PointerRNA *ptr){} void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact){} void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname){} -- cgit v1.2.3 From 62988d6311ec73e6660d2e893652cb69c9db7e45 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 14:03:16 +0000 Subject: Attempt to fix #29200: Camera Tracking Solver It was an mistake in join tracks operator which lead to reading unitialized memory. --- source/blender/blenkernel/intern/tracking.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index a834628641a..d9217d2be09 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -446,13 +446,13 @@ int BKE_tracking_test_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTr int i, a= 0, b= 0, tot= dst_track->markersnr+src_track->markersnr; int count= 0; - for(i= 0; i=src_track->markersnr) { - b++; + while(amarkersnr || bmarkersnr) { + if(b>=dst_track->markersnr) { + a++; count++; } - else if(b>=dst_track->markersnr) { - a++; + else if(a>=src_track->markersnr) { + b++; count++; } else if(src_track->markers[a].framenrmarkers[b].framenr) { -- cgit v1.2.3 From a56c6e18a8f3a7d520cdf8efc0b4a17e7ef9e341 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 14:10:33 +0000 Subject: Cycles: * Disable precompiled cuda binaries, always do at run time * Change preview samples default to 10 * Hide volume panels since they don't do anything yet --- CMakeLists.txt | 8 +++----- intern/cycles/CMakeLists.txt | 6 ++---- intern/cycles/blender/addon/properties.py | 2 +- intern/cycles/blender/addon/ui.py | 4 ++-- intern/cycles/blender/blender_util.h | 3 ++- intern/cycles/cmake/external_libs.cmake | 15 --------------- intern/cycles/kernel/CMakeLists.txt | 27 --------------------------- intern/cycles/kernel/svm/svm_gradient.h | 2 +- intern/cycles/util/util_cuda.cpp | 2 -- 9 files changed, 11 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99a44efdb0d..daf3940eab7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,11 +215,6 @@ option(WITH_PYTHON_INSTALL "Copy system python into the blender install fo # Cycles option(WITH_CYCLES "Enable Cycles Render Engine" ON) -OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF) -OPTION(WITH_CYCLES_CUDA "Build with CUDA binaries" OFF) -OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON) -OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF) -OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_TEST "Build cycles test application" OFF) # disable for now, but plan to support on all platforms eventually @@ -954,6 +949,9 @@ elseif(WIN32) set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") endif() + # disable for now, not building yet + set(WITH_CYCLES OFF) + if(WITH_BOOST) set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index d0b24c879a1..0debe10747b 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -41,10 +41,6 @@ if(WITH_CYCLES_NETWORK) add_definitions(-DWITH_NETWORK) endif() -if(WITH_CYCLES_CUDA) - add_definitions(-DWITH_CUDA_BINARIES) -endif() - if(WITH_CYCLES_OSL) add_definitions(-DWITH_OSL) endif() @@ -64,6 +60,8 @@ include_directories( # Subdirectories +SET(WITH_CYCLES_BLENDER ON) + if(WITH_CYCLES_BLENDER) add_subdirectory(blender) endif(WITH_CYCLES_BLENDER) diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index a58e4dfd154..5a56240865a 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -40,7 +40,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.samples = IntProperty(name="Samples", description="Number of samples to render for each pixel", default=10, min=1, max=2147483647) cls.preview_samples = IntProperty(name="Preview Samples", description="Number of samples to render in the viewport, unlimited if 0", - default=0, min=0, max=2147483647) + default=10, min=0, max=2147483647) cls.preview_pause = BoolProperty(name="Pause Preview", description="Pause all viewport preview renders", default=False) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 58852edce88..dfbfb769170 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -436,7 +436,7 @@ class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): world = context.world - return world and world.node_tree and CyclesButtonsPanel.poll(context) + return False # world and world.node_tree and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout @@ -467,7 +467,7 @@ class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): mat = context.material - return mat and mat.node_tree and CyclesButtonsPanel.poll(context) + return False #mat and mat.node_tree and CyclesButtonsPanel.poll(context) def draw(self, context): layout = self.layout diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index bcca028dc2a..c5cceff6242 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -26,7 +26,8 @@ #include "util_types.h" #include "util_vector.h" -/* Hacks to hook into Blender API */ +/* Hacks to hook into Blender API + todo: clean this up ... */ extern "C" { diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 0915d4d92c8..b6b8b351e13 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -85,18 +85,3 @@ if(WITH_CYCLES_BLENDER) add_definitions(-DBLENDER_PLUGIN) endif() -########################################################################### -# CUDA - -if(WITH_CYCLES_CUDA) - find_package(CUDA) # Try to auto locate CUDA toolkit - if(CUDA_FOUND) - message(STATUS "CUDA nvcc = ${CUDA_NVCC_EXECUTABLE}") - set(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for") - set(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") - else() - message(STATUS "CUDA compiler not found, disabling WITH_CYCLES_CUDA") - set(WITH_CYCLES_CUDA OFF) - endif() -endif() - diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 893c4bb6081..99427e02c54 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -74,33 +74,6 @@ set(util_headers ../util/util_transform.h ../util/util_types.h) -# CUDA module - -if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(CUDA_BITS 64) -else() - set(CUDA_BITS 32) -endif() - -if(WITH_CYCLES_CUDA) - set(cuda_sources kernel.cu ${headers} ${svm_headers}) - set(cuda_cubins) - - foreach(arch ${CYCLES_CUDA_ARCH}) - set(cuda_cubin kernel_${arch}.cubin) - - add_custom_command( - OUTPUT ${cuda_cubin} - COMMAND ${CUDA_NVCC_EXECUTABLE} -arch=${arch} -m${CUDA_BITS} --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DNVCC - DEPENDS ${cuda_sources}) - - delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${cuda_cubin}" ${CYCLES_INSTALL_PATH}/lib) - list(APPEND cuda_cubins ${cuda_cubin}) - endforeach() - - add_custom_target(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins}) -endif() - # OSL module if(WITH_CYCLES_OSL) diff --git a/intern/cycles/kernel/svm/svm_gradient.h b/intern/cycles/kernel/svm/svm_gradient.h index 79298f5f581..c7013800d6b 100644 --- a/intern/cycles/kernel/svm/svm_gradient.h +++ b/intern/cycles/kernel/svm/svm_gradient.h @@ -48,7 +48,7 @@ __device float svm_gradient(float3 p, NodeBlendType type) return atan2(y, x)/(2.0f*M_PI_F) + 0.5f; } else { - float r = fmaxf(1.0f - sqrtf(x*x + y*y + p.z*p.z), 0.0f); + float r = fmaxf(1.0f - sqrtf(x*x + y*y + z*z), 0.0f); if(type == NODE_BLEND_QUADRATIC_SPHERE) return r*r; diff --git a/intern/cycles/util/util_cuda.cpp b/intern/cycles/util/util_cuda.cpp index 14e3f9a159b..bd5583b9718 100644 --- a/intern/cycles/util/util_cuda.cpp +++ b/intern/cycles/util/util_cuda.cpp @@ -373,10 +373,8 @@ bool cuLibraryInit() /* cuda 4.0 */ CUDA_LIBRARY_FIND(cuCtxSetCurrent); -#ifndef WITH_CUDA_BINARIES if(cuCompilerPath() == "") return false; -#endif /* success */ result = true; -- cgit v1.2.3 From 354ebeadc88ce103f687bd43d069a534472e8acf Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 8 Nov 2011 14:47:03 +0000 Subject: Cycles now uses correct libs on MinGW --- CMakeLists.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index daf3940eab7..7efa3f07c4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -853,7 +853,7 @@ elseif(WIN32) else() # keep GCC specific stuff here if(CMAKE_COMPILER_IS_GNUCC) - set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32") + set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi") set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) @@ -953,21 +953,21 @@ elseif(WIN32) set(WITH_CYCLES OFF) if(WITH_BOOST) - set(BOOST ${LIBDIR}/boost) + set(BOOST ${LIBDIR}/gcc/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) - set(BOOST_POSTFIX "vc90-mt-s-1_46_1") - set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1") + set(BOOST_POSTFIX "mgw45-mt-s-1_47") + set(BOOST_DEBUG_POSTFIX "mgw45-mt-sd-1_47") set(BOOST_LIBRARIES - optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} - libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} - debug libboost_date_time-${BOOST_DEBUG_POSTFIX} libboost_filesystem-${BOOST_DEBUG_POSTFIX} - libboost_regex-${BOOST_DEBUG_POSTFIX} libboost_system-${BOOST_DEBUG_POSTFIX} libboost_thread-${BOOST_DEBUG_POSTFIX}) + optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${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}) set(BOOST_LIBPATH ${BOOST}/lib) - set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") + set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ") endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO ${LIBDIR}/gcc/openimageio) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO) set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) -- cgit v1.2.3 From ce462fa1b7d392ce70fc32784cec072f4a69bef2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 15:11:27 +0000 Subject: - disable undo for user preferences (every click would do push an undo), was noticeable on large files. - also netbeans project file generator now uses branch name for project. --- build_files/cmake/cmake_netbeans_project.py | 7 +++++- source/blender/editors/interface/interface.c | 3 +++ source/blender/makesrna/RNA_access.h | 2 ++ source/blender/makesrna/RNA_types.h | 9 ++++---- source/blender/makesrna/intern/rna_access.c | 5 +++++ source/blender/makesrna/intern/rna_define.c | 1 + source/blender/makesrna/intern/rna_userdef.c | 33 ++++++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 5 deletions(-) diff --git a/build_files/cmake/cmake_netbeans_project.py b/build_files/cmake/cmake_netbeans_project.py index 769b4adb37b..45c19adff36 100755 --- a/build_files/cmake/cmake_netbeans_project.py +++ b/build_files/cmake/cmake_netbeans_project.py @@ -39,6 +39,7 @@ from project_info import (SIMPLE_PROJECTFILE, # is_py, cmake_advanced_info, cmake_compiler_defines, + project_name_get, ) @@ -59,7 +60,11 @@ def create_nb_project_main(): includes = list(set(includes) | set(dirname(f) for f in files if is_c_header(f))) includes.sort() - PROJECT_NAME = "Blender" + if 0: + PROJECT_NAME = "Blender" + else: + # be tricky, get the project name from SVN if we can! + PROJECT_NAME = project_name_get(SOURCE_DIR) # --------------- NB spesific defines = [("%s=%s" % cdef) if cdef[1] else cdef[0] for cdef in defines] diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index e5092c82304..2e144c0ca2b 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -756,6 +756,9 @@ static int ui_but_is_rna_undo(uiBut *but) return TRUE; } } + else if (but->rnapoin.type && !RNA_struct_undo_check(but->rnapoin.type)) { + return FALSE; + } return TRUE; } diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index b40c2936bd5..9933840a24e 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -623,6 +623,8 @@ StructRNA *RNA_struct_base(StructRNA *type); int RNA_struct_is_ID(StructRNA *type); int RNA_struct_is_a(StructRNA *type, StructRNA *srna); +int RNA_struct_undo_check(StructRNA *type); + StructRegisterFunc RNA_struct_register(StructRNA *type); StructUnregisterFunc RNA_struct_unregister(StructRNA *type); void **RNA_struct_instance(PointerRNA *ptr); diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 418a41c72ba..1655665efe3 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -326,12 +326,13 @@ typedef enum StructFlag { /* indicates that this struct is an ID struct, and to use refcounting */ STRUCT_ID = 1, STRUCT_ID_REFCOUNT = 2, + STRUCT_UNDO = 4, /* defaults on, clear for user preferences and similar */ /* internal flags */ - STRUCT_RUNTIME = 4, - STRUCT_GENERATED = 8, - STRUCT_FREE_POINTERS = 16, - STRUCT_NO_IDPROPERTIES = 32 /* Menu's and Panels don't need properties */ + STRUCT_RUNTIME = 8, + STRUCT_GENERATED = 16, + STRUCT_FREE_POINTERS = 32, + STRUCT_NO_IDPROPERTIES = 64 /* Menu's and Panels don't need properties */ } StructFlag; typedef int (*StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 793d0112af7..6f9c7a8f19b 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -549,6 +549,11 @@ int RNA_struct_is_ID(StructRNA *type) return (type->flag & STRUCT_ID) != 0; } +int RNA_struct_undo_check(StructRNA *type) +{ + return (type->flag & STRUCT_UNDO) != 0; +} + int RNA_struct_idprops_register_check(StructRNA *type) { return (type->flag & STRUCT_NO_IDPROPERTIES) == 0; diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index ff1bfce2d2f..d4756ecfefa 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -654,6 +654,7 @@ StructRNA *RNA_def_struct(BlenderRNA *brna, const char *identifier, const char * srna->identifier= identifier; srna->name= identifier; /* may be overwritten later RNA_def_struct_ui_text */ srna->description= ""; + srna->flag |= STRUCT_UNDO; if(!srnafrom) srna->icon= ICON_DOT; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index e4e1c78ab3e..26f23681c7b 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -316,6 +316,7 @@ static void rna_def_userdef_theme_ui_font_style(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeFontStyle", NULL); RNA_def_struct_sdna(srna, "uiFontStyle"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Font Style", "Theme settings for Font"); prop= RNA_def_property(srna, "points", PROP_INT, PROP_NONE); @@ -366,6 +367,7 @@ static void rna_def_userdef_theme_ui_style(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeStyle", NULL); RNA_def_struct_sdna(srna, "uiStyle"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Style", "Theme settings for style sets"); /* (not used yet) @@ -410,6 +412,7 @@ static void rna_def_userdef_theme_ui_wcol(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeWidgetColors", NULL); RNA_def_struct_sdna(srna, "uiWidgetColors"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Widget Color Set", "Theme settings for widget color sets"); prop= RNA_def_property(srna, "outline", PROP_FLOAT, PROP_COLOR_GAMMA); @@ -465,6 +468,7 @@ static void rna_def_userdef_theme_ui_wcol_state(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeWidgetStateColors", NULL); RNA_def_struct_sdna(srna, "uiWidgetStateColors"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Widget State Color", "Theme settings for widget state colors"); prop= RNA_def_property(srna, "inner_anim", PROP_FLOAT, PROP_COLOR_GAMMA); @@ -512,6 +516,7 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeUserInterface", NULL); RNA_def_struct_sdna(srna, "ThemeUI"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme User Interface", "Theme settings for user interface elements"); prop= RNA_def_property(srna, "wcol_regular", PROP_POINTER, PROP_NONE); @@ -917,6 +922,7 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeView3D", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme 3D View", "Theme settings for the 3D View"); rna_def_userdef_theme_spaces_main(srna, SPACE_VIEW3D); @@ -1054,6 +1060,7 @@ static void rna_def_userdef_theme_space_graph(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeGraphEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Graph Editor", "Theme settings for the graph editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_IPO); @@ -1138,6 +1145,7 @@ static void rna_def_userdef_theme_space_file(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeFileBrowser", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme File Browser", "Theme settings for the File Browser"); rna_def_userdef_theme_spaces_main(srna, SPACE_FILE); @@ -1187,6 +1195,7 @@ static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeOutliner", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Outliner", "Theme settings for the Outliner"); rna_def_userdef_theme_spaces_main(srna, SPACE_OUTLINER); @@ -1200,6 +1209,7 @@ static void rna_def_userdef_theme_space_userpref(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeUserPreferences", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme User Preferences", "Theme settings for the User Preferences"); rna_def_userdef_theme_spaces_main(srna, SPACE_USERPREF); @@ -1214,6 +1224,7 @@ static void rna_def_userdef_theme_space_console(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeConsole", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Console", "Theme settings for the Console"); rna_def_userdef_theme_spaces_main(srna, SPACE_CONSOLE); @@ -1257,6 +1268,7 @@ static void rna_def_userdef_theme_space_info(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeInfo", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Info", "Theme settings for Info"); rna_def_userdef_theme_spaces_main(srna, SPACE_INFO); @@ -1272,6 +1284,7 @@ static void rna_def_userdef_theme_space_text(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeTextEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Text Editor", "Theme settings for the Text Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_TEXT); @@ -1340,6 +1353,7 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeNodeEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Node Editor", "Theme settings for the Node Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_NODE); @@ -1409,6 +1423,7 @@ static void rna_def_userdef_theme_space_logic(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeLogicEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Logic Editor", "Theme settings for the Logic Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_LOGIC); @@ -1429,6 +1444,7 @@ static void rna_def_userdef_theme_space_buts(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeProperties", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Properties", "Theme settings for the Properties"); rna_def_userdef_theme_spaces_main(srna, SPACE_BUTS); @@ -1448,6 +1464,7 @@ static void rna_def_userdef_theme_space_time(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeTimeline", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Timeline", "Theme settings for the Timeline"); rna_def_userdef_theme_spaces_main(srna, SPACE_TIME); @@ -1473,6 +1490,7 @@ static void rna_def_userdef_theme_space_image(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeImageEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Image Editor", "Theme settings for the Image Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_IMAGE); @@ -1500,6 +1518,7 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeSequenceEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Sequence Editor", "Theme settings for the Sequence Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_IMAGE); @@ -1591,6 +1610,7 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeDopeSheet", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme DopeSheet", "Theme settings for the DopeSheet"); rna_def_userdef_theme_spaces_main(srna, SPACE_ACTION); @@ -1676,6 +1696,7 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeNLAEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme NLA Editor", "Theme settings for the NLA Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_NLA); @@ -1729,6 +1750,7 @@ static void rna_def_userdef_theme_colorset(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeBoneColorSet", NULL); RNA_def_struct_sdna(srna, "ThemeWireColor"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Bone Color Set", "Theme settings for bone color sets"); prop= RNA_def_property(srna, "normal", PROP_FLOAT, PROP_COLOR_GAMMA); @@ -1763,6 +1785,7 @@ static void rna_def_userdef_theme_space_clip(BlenderRNA *brna) srna= RNA_def_struct(brna, "ThemeClipEditor", NULL); RNA_def_struct_sdna(srna, "ThemeSpace"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme Clip Editor", "Theme settings for the Movie Clip Editor"); rna_def_userdef_theme_spaces_main(srna, SPACE_CLIP); @@ -1871,6 +1894,7 @@ static void rna_def_userdef_themes(BlenderRNA *brna) srna= RNA_def_struct(brna, "Theme", NULL); RNA_def_struct_sdna(srna, "bTheme"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Theme", "Theme settings defining draw style and colors in the user interface"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); @@ -2004,6 +2028,7 @@ static void rna_def_userdef_addon(BlenderRNA *brna) srna= RNA_def_struct(brna, "Addon", NULL); RNA_def_struct_sdna(srna, "bAddon"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Addon", "Python addons to be loaded automatically"); prop= RNA_def_property(srna, "module", PROP_STRING, PROP_NONE); @@ -2047,6 +2072,7 @@ static void rna_def_userdef_solidlight(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserSolidLight", NULL); RNA_def_struct_sdna(srna, "SolidLight"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Solid Light", "Light used for OpenGL lighting in solid draw mode"); prop= RNA_def_property(srna, "use", PROP_BOOLEAN, PROP_NONE); @@ -2096,6 +2122,7 @@ static void rna_def_userdef_view(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferencesView", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "View & Controls", "Preferences related to viewing data"); /* View */ @@ -2311,6 +2338,7 @@ static void rna_def_userdef_edit(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferencesEdit", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Edit Methods", "Settings for interacting with Blender data"); /* Edit Methods */ @@ -2622,6 +2650,7 @@ static void rna_def_userdef_system(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferencesSystem", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "System & OpenGL", "Graphics driver and operating system settings"); /* Language */ @@ -2866,6 +2895,7 @@ static void rna_def_userdef_input(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferencesInput", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Input", "Settings for input devices"); prop= RNA_def_property(srna, "select_mouse", PROP_ENUM, PROP_NONE); @@ -3021,6 +3051,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferencesFilePaths", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "File Paths", "Default paths for external files"); prop= RNA_def_property(srna, "show_hidden_files_datablocks", PROP_BOOLEAN, PROP_NONE); @@ -3138,6 +3169,7 @@ void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_property_srna(cprop, "Addons"); srna= RNA_def_struct(brna, "Addons", NULL); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "User Addons", "Collection of addons"); func= RNA_def_function(srna, "new", "rna_userdef_addon_new"); @@ -3174,6 +3206,7 @@ void RNA_def_userdef(BlenderRNA *brna) srna= RNA_def_struct(brna, "UserPreferences", NULL); RNA_def_struct_sdna(srna, "UserDef"); + RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "User Preferences", "Global user preferences"); prop= RNA_def_property(srna, "active_section", PROP_ENUM, PROP_NONE); -- cgit v1.2.3 From c0f65b774eaa8f3951ae44cdb32e1cd0014ec3ea Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 15:12:41 +0000 Subject: Fix #29198: Problem with text interface when you enable the International fonts Not sure why, but doing the same things as in script from FontForge UI, there's no issues described in report. Probably matter of some default settings. Hope it works now fine for everyone. --- release/datafiles/fonts/droidsans.ttf.gz | Bin 2263650 -> 2055389 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/release/datafiles/fonts/droidsans.ttf.gz b/release/datafiles/fonts/droidsans.ttf.gz index a00f35f3a66..1701612d313 100644 Binary files a/release/datafiles/fonts/droidsans.ttf.gz and b/release/datafiles/fonts/droidsans.ttf.gz differ -- cgit v1.2.3 From d8ecac61266918a1ac001c5f811ce50d2d2a2bbb Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 8 Nov 2011 16:02:34 +0000 Subject: Correct syntax for static, since we invoke g++ as linker and we have to pass it to ld --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7efa3f07c4a..14c9c8c8679 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -974,7 +974,7 @@ elseif(WIN32) set(OPENIMAGEIO_DEFINITIONS) endif() - set(PLATFORM_LINKFLAGS "--stack,2097152") + set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") endif() -- cgit v1.2.3 From bf7b3efb1811906b0e499f5e0992aa20cde3e750 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 8 Nov 2011 16:03:28 +0000 Subject: *Correct syntax for static, since we invoke g++ as linker and we have to pass it to ld. *CMakefile: Update boost and OpenImageIO libraries for MinGW like in the cycles branch --- CMakeLists.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 43f52eff009..4ed7eab8b4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -843,7 +843,7 @@ elseif(WIN32) else() # keep GCC specific stuff here if(CMAKE_COMPILER_IS_GNUCC) - set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32") + set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi") set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing") add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) @@ -940,28 +940,28 @@ elseif(WIN32) endif() if(WITH_BOOST) - set(BOOST ${LIBDIR}/boost) + set(BOOST ${LIBDIR}/gcc/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) - set(BOOST_POSTFIX "vc90-mt-s-1_46_1") - set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1") + set(BOOST_POSTFIX "mgw45-mt-s-1_47") + set(BOOST_DEBUG_POSTFIX "mgw45-mt-sd-1_47") set(BOOST_LIBRARIES - optimized libboost_date_time-${BOOST_POSTFIX} libboost_filesystem-${BOOST_POSTFIX} - libboost_regex-${BOOST_POSTFIX} libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX} - debug libboost_date_time-${BOOST_DEBUG_POSTFIX} libboost_filesystem-${BOOST_DEBUG_POSTFIX} - libboost_regex-${BOOST_DEBUG_POSTFIX} libboost_system-${BOOST_DEBUG_POSTFIX} libboost_thread-${BOOST_DEBUG_POSTFIX}) + optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${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}) set(BOOST_LIBPATH ${BOOST}/lib) - set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") + set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ") endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO ${LIBDIR}/openimageio) + set(OPENIMAGEIO ${LIBDIR}/gcc/openimageio) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO) set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) set(OPENIMAGEIO_DEFINITIONS) endif() - set(PLATFORM_LINKFLAGS "--stack,2097152") + set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") endif() -- cgit v1.2.3 From 58f3503e904675c77855c66a46f92cfb47cde952 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 16:09:20 +0000 Subject: Fix #29201: movie clip editor - right click crashes blender Just another not very smart check for "boundary" case of usecase. --- source/blender/editors/transform/transform_conversions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 0a6f49f7c9f..7ab1b24e9b3 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5396,7 +5396,7 @@ static void createTransTrackingData(bContext *C, TransInfo *t) TransDataTracking *tdt; int framenr = sc->user.framenr; - if(clip && !BKE_movieclip_has_frame(clip, &sc->user)) { + if(!clip || !BKE_movieclip_has_frame(clip, &sc->user)) { t->total = 0; return; } -- cgit v1.2.3 From f26d7010ef8df0629421453df1efd00c0d8e1b6f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 8 Nov 2011 16:24:31 +0000 Subject: Don't compile AUD_JOSResampleReaderCoeff.cpp twice (it's included in AUD_JOSResampleReader.cpp) Patch from nico_ga, thanks! --- intern/audaspace/CMakeLists.txt | 1 - intern/audaspace/SConscript | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/intern/audaspace/CMakeLists.txt b/intern/audaspace/CMakeLists.txt index 0c4df1ce392..c3a4c130f88 100644 --- a/intern/audaspace/CMakeLists.txt +++ b/intern/audaspace/CMakeLists.txt @@ -98,7 +98,6 @@ set(SRC intern/AUD_IWriter.h intern/AUD_JOSResampleFactory.cpp intern/AUD_JOSResampleFactory.h - intern/AUD_JOSResampleReaderCoeff.cpp intern/AUD_JOSResampleReader.cpp intern/AUD_JOSResampleReader.h intern/AUD_LinearResampleFactory.cpp diff --git a/intern/audaspace/SConscript b/intern/audaspace/SConscript index b8d5a56a625..5fb776e742f 100644 --- a/intern/audaspace/SConscript +++ b/intern/audaspace/SConscript @@ -3,6 +3,8 @@ Import ('env') sources = env.Glob('intern/*.cpp') + env.Glob('FX/*.cpp') +# file already included in AUD_JOSResampleReader.cpp +sources.remove('AUD_JOSResampleReaderCoeff.cpp') incs = '. intern FX ' + env['BF_PTHREADS_INC'] defs = [] -- cgit v1.2.3 From 51ead63ae6a9e032af892058f132f12933f4c138 Mon Sep 17 00:00:00 2001 From: Jens Verwiebe Date: Tue, 8 Nov 2011 16:53:59 +0000 Subject: Fix compile after audaspace file source.remove.. --- intern/audaspace/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/audaspace/SConscript b/intern/audaspace/SConscript index 5fb776e742f..c8d8d071ce8 100644 --- a/intern/audaspace/SConscript +++ b/intern/audaspace/SConscript @@ -4,7 +4,7 @@ Import ('env') sources = env.Glob('intern/*.cpp') + env.Glob('FX/*.cpp') # file already included in AUD_JOSResampleReader.cpp -sources.remove('AUD_JOSResampleReaderCoeff.cpp') +sources.remove('intern/AUD_JOSResampleReaderCoeff.cpp') incs = '. intern FX ' + env['BF_PTHREADS_INC'] defs = [] -- cgit v1.2.3 From 5f40c0e9a5b5665e559b441c7659050ff861931d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 16:59:06 +0000 Subject: - operator presets now work in the 3D view as well as the file selector. to enable from python: bl_options = {'REGISTER', 'UNDO', 'PRESET'} from C: ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_PRESET; - added context member 'active_operator' - enable this for 'Add Torus' for testing. --- .../scripts/startup/bl_operators/add_mesh_torus.py | 2 +- release/scripts/startup/bl_operators/presets.py | 5 ++--- source/blender/editors/screen/screen_context.c | 24 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py index 056b3478c2b..5b28cdf44ae 100644 --- a/release/scripts/startup/bl_operators/add_mesh_torus.py +++ b/release/scripts/startup/bl_operators/add_mesh_torus.py @@ -86,7 +86,7 @@ class AddTorus(Operator): '''Add a torus mesh''' bl_idname = "mesh.primitive_torus_add" bl_label = "Add Torus" - bl_options = {'REGISTER', 'UNDO'} + bl_options = {'REGISTER', 'UNDO', 'PRESET'} major_radius = FloatProperty( name="Major Radius", diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py index ac19bab4c66..dca96b302fb 100644 --- a/release/scripts/startup/bl_operators/presets.py +++ b/release/scripts/startup/bl_operators/presets.py @@ -395,9 +395,8 @@ class AddPresetOperator(AddPresetBase, Operator): options={'HIDDEN'}, ) - # XXX, not ideal preset_defines = [ - "op = bpy.context.space_data.operator", + "op = bpy.context.active_operator", ] @property @@ -432,7 +431,7 @@ class WM_MT_operator_presets(Menu): bl_label = "Operator Presets" def draw(self, context): - self.operator = context.space_data.operator.bl_idname + self.operator = context.active_operator.bl_idname Menu.draw_preset(self, context) @property diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c index cb42cd786ed..581c1e3597b 100644 --- a/source/blender/editors/screen/screen_context.c +++ b/source/blender/editors/screen/screen_context.c @@ -35,6 +35,8 @@ #include "DNA_sequence_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_windowmanager_types.h" #include "BLI_utildefines.h" @@ -50,6 +52,8 @@ #include "ED_object.h" #include "ED_armature.h" +#include "WM_api.h" + #include "screen_intern.h" const char *screen_context_dir[] = { @@ -62,6 +66,7 @@ const char *screen_context_dir[] = { "sculpt_object", "vertex_paint_object", "weight_paint_object", "image_paint_object", "particle_edit_object", "sequences", "selected_sequences", "selected_editable_sequences", /* sequencer */ + "active_operator", NULL}; int ed_screen_context(const bContext *C, const char *member, bContextDataResult *result) @@ -387,6 +392,25 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult return 1; } } + else if(CTX_data_equals(member, "active_operator")) { + wmOperator *op= NULL; + + SpaceFile *sfile= CTX_wm_space_file(C); + if(sfile) { + op= sfile->op; + } + else { + /* note, this checks poll, could be a problem, but this also + * happens for the toolbar */ + op= WM_operator_last_redo(C); + } + /* TODO, get the operator from popup's */ + + if (op && op->ptr) { + CTX_data_pointer_set(result, NULL, &RNA_Operator, op); + return 1; + } + } else { return 0; /* not found */ } -- cgit v1.2.3 From fb925d9ad330b1562cb201f26e19eca0e77df248 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 8 Nov 2011 17:19:14 +0000 Subject: Update MinGW to use correct lib location for boost --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17ea5cf249d..13c41330f5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -952,7 +952,7 @@ elseif(WIN32) endif() if(WITH_BOOST) - set(BOOST ${LIBDIR}/gcc/boost) + set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) set(BOOST_POSTFIX "mgw45-mt-s-1_47") set(BOOST_DEBUG_POSTFIX "mgw45-mt-sd-1_47") @@ -961,7 +961,7 @@ elseif(WIN32) 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}) - set(BOOST_LIBPATH ${BOOST}/lib) + set(BOOST_LIBPATH ${BOOST}/lib/gcc) set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ") endif() -- cgit v1.2.3 From 8cfc17c7cdef0ea6fc3bfc196e317e2cb3add4b0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 17:53:49 +0000 Subject: Cycles Merge: * It seems we have a problem compiling the CUDA kernel at runtime on Windows, will need to investigate more how to solve this best, CPU render should go fine though. * Change OPENIMAGEIO to OPENIMAGEIO_ROOT_DIR on linux for consistency. --- CMakeLists.txt | 1 - intern/cycles/device/device_cuda.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13c41330f5a..3f6d867d707 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -519,7 +519,6 @@ if(UNIX AND NOT APPLE) if(WITH_OPENIMAGEIO) set(OPENIMAGEIO "/usr" CACHE PATH "OpenImageIO Directory") - set(OPENIMAGEIO_ROOT_DIR ${OPENIMAGEIO}) find_package(OpenImageIO) set(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 1438dd67ca5..14c2a765a8e 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -242,7 +242,7 @@ public: path_create_directories(cubin); - string command = string_printf("%s -arch=sm_%d%d -m%d --cubin \"%s\" --use_fast_math " + string command = string_printf("\"%s\" -arch=sm_%d%d -m%d --cubin \"%s\" --use_fast_math " "-o \"%s\" --ptxas-options=\"-v\" --maxrregcount=%d --opencc-options -OPT:Olimit=0 -I\"%s\" -DNVCC", nvcc.c_str(), major, minor, machine, kernel.c_str(), cubin.c_str(), maxreg, include.c_str()); -- cgit v1.2.3 From 4292fa702f107e93d063ce3eff7abbf1bc7933c6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 18:15:53 +0000 Subject: stop cmake from overwriting BOOST_ROOT and OPENIMAGEIO_ROOT_DIR which the builder is supposed to be able to set. --- CMakeLists.txt | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f6d867d707..21f5ffb2f47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -502,13 +502,19 @@ if(UNIX AND NOT APPLE) endif() if(WITH_BOOST) - set(BOOST "/usr" CACHE PATH "Boost Directory") - - if(NOT BOOST_CUSTOM) - set(BOOST_ROOT ${BOOST}) - set(Boost_USE_MULTITHREADED ON) - find_package(Boost 1.34 COMPONENTS filesystem regex system thread) - endif() + + # not sure this is needed, commenting, campbell + # --- + # set(BOOST "/usr" CACHE PATH "Boost Directory") + # + # if(NOT BOOST_CUSTOM) + # set(BOOST_ROOT ${BOOST}) + # set(Boost_USE_MULTITHREADED ON) + # find_package(Boost 1.34 COMPONENTS filesystem regex system thread) + # endif() + + set(Boost_USE_MULTITHREADED ON) + find_package(Boost 1.34 COMPONENTS filesystem regex system thread) set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) set(BOOST_LIBRARIES ${Boost_LIBRARIES}) @@ -517,8 +523,6 @@ if(UNIX AND NOT APPLE) endif() if(WITH_OPENIMAGEIO) - set(OPENIMAGEIO "/usr" CACHE PATH "OpenImageIO Directory") - find_package(OpenImageIO) set(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES} ${BOOST_LIBRARIES}) -- cgit v1.2.3 From 127f9e9b8f7fba4fc20879592c6009322f13414b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 18:23:23 +0000 Subject: quiet warning --- source/blender/blenkernel/intern/tracking.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index d9217d2be09..38bb615896b 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -443,7 +443,8 @@ void BKE_tracking_clear_path(MovieTrackingTrack *track, int ref_frame, int actio int BKE_tracking_test_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track) { - int i, a= 0, b= 0, tot= dst_track->markersnr+src_track->markersnr; + int a= 0, b= 0; + /* int tot= dst_track->markersnr+src_track->markersnr; */ /* UNUSED */ int count= 0; while(amarkersnr || bmarkersnr) { -- cgit v1.2.3 From 0ed2309b4d30940999e19265ebd7a5a3e24ee2a7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 18:49:12 +0000 Subject: Cycles: fix crash loading existing files, forgot to merge over this line. --- source/blender/blenloader/intern/readfile.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 96fbe392922..74331b75a70 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5611,6 +5611,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc) else if(sl->spacetype==SPACE_BUTS) { SpaceButs *sbuts= (SpaceButs *)sl; sbuts->path= NULL; + sbuts->texuser= NULL; } else if(sl->spacetype==SPACE_CONSOLE) { SpaceConsole *sconsole= (SpaceConsole *)sl; -- cgit v1.2.3 From 2a0451dc46809e08ac3fa028e9c22e0e7071e06e Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 8 Nov 2011 18:58:29 +0000 Subject: Fix GLEW linking error on MinGW. The __imp__ prefix on glew lib linking errors should have been a good indication: the code was looking for the glew dll. Bypassed by adding GLEW_STATIC to the definitions. --- intern/cycles/device/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index 55941438720..3d8c2d5e2cd 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -22,5 +22,6 @@ set(headers device_intern.h device_network.h) +add_definitions(-DGLEW_STATIC) add_library(cycles_device ${sources} ${headers}) -- cgit v1.2.3 From 7d7079a58a618acca43621591713065b69a06e6d Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 8 Nov 2011 19:04:19 +0000 Subject: Remove redundant .remove() --- intern/audaspace/SConscript | 2 -- 1 file changed, 2 deletions(-) diff --git a/intern/audaspace/SConscript b/intern/audaspace/SConscript index c8d8d071ce8..b8d5a56a625 100644 --- a/intern/audaspace/SConscript +++ b/intern/audaspace/SConscript @@ -3,8 +3,6 @@ Import ('env') sources = env.Glob('intern/*.cpp') + env.Glob('FX/*.cpp') -# file already included in AUD_JOSResampleReader.cpp -sources.remove('intern/AUD_JOSResampleReaderCoeff.cpp') incs = '. intern FX ' + env['BF_PTHREADS_INC'] defs = [] -- cgit v1.2.3 From 76f77514d3ffbb9697154bb5d12a1bee1b57b607 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 19:08:56 +0000 Subject: don't overwrite existing CMAKE_CXX_FLAGS for cycles (they may be important) --- intern/cycles/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 8bb99e4e4f3..d014326fcd5 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -12,7 +12,7 @@ set(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") set(GCC_OPTIM_FLAGS "-ffast-math -msse -msse2 -msse3 -mtune=native") if(APPLE) - set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif(APPLE) @@ -21,13 +21,13 @@ if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") elseif(CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif() endif(WIN32) if(UNIX AND NOT APPLE) - set(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif(UNIX AND NOT APPLE) -- cgit v1.2.3 From 33814e0093f0d8d5d8dca46dfc3a13a39a256227 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Nov 2011 20:27:37 +0000 Subject: edits to cycles cmake files so cmake_consistency_check.py can parse them. --- build_files/cmake/cmake_consistency_check.py | 6 ++++ intern/cycles/CMakeLists.txt | 9 +++-- intern/cycles/app/CMakeLists.txt | 24 ++++++++++--- intern/cycles/blender/CMakeLists.txt | 40 +++++++++++++--------- intern/cycles/bvh/CMakeLists.txt | 22 ++++++++---- intern/cycles/device/CMakeLists.txt | 19 +++++++---- intern/cycles/doc/CMakeLists.txt | 1 - intern/cycles/doc/license/CMakeLists.txt | 8 ++--- intern/cycles/kernel/CMakeLists.txt | 49 ++++++++++++++++----------- intern/cycles/kernel/osl/CMakeLists.txt | 24 +++++++++---- intern/cycles/kernel/osl/nodes/CMakeLists.txt | 41 +++++++++++++--------- intern/cycles/render/CMakeLists.txt | 19 +++++++---- intern/cycles/subd/CMakeLists.txt | 21 ++++++++---- intern/cycles/util/CMakeLists.txt | 22 +++++++----- 14 files changed, 197 insertions(+), 108 deletions(-) diff --git a/build_files/cmake/cmake_consistency_check.py b/build_files/cmake/cmake_consistency_check.py index b1fc88bfe26..6fdd178929b 100755 --- a/build_files/cmake/cmake_consistency_check.py +++ b/build_files/cmake/cmake_consistency_check.py @@ -172,6 +172,12 @@ def cmake_get_src(f): pass elif new_file.endswith(".def"): pass + elif new_file.endswith(".cl"): # opencl + pass + elif new_file.endswith(".cu"): # cuda + pass + elif new_file.endswith(".osl"): # open shading language + pass else: raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file)) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index d014326fcd5..b0507d90d4c 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -1,6 +1,6 @@ set(CYCLES_INSTALL_PATH "scripts/addons/cycles") -SET(WITH_CYCLES_BLENDER ON) +set(WITH_CYCLES_BLENDER ON) # External Libraries @@ -14,7 +14,7 @@ set(GCC_OPTIM_FLAGS "-ffast-math -msse -msse2 -msse3 -mtune=native") if(APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") -endif(APPLE) +endif() if(WIN32) if(MSVC) @@ -24,12 +24,12 @@ if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif() -endif(WIN32) +endif() if(UNIX AND NOT APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") -endif(UNIX AND NOT APPLE) +endif() # Definitions and Includes @@ -73,4 +73,3 @@ add_subdirectory(kernel) add_subdirectory(render) add_subdirectory(subd) add_subdirectory(util) - diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index ef6a80fbe5d..2e2897d0443 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -1,5 +1,5 @@ -include_directories( +set(INC . ../device ../kernel @@ -7,7 +7,8 @@ include_directories( ../bvh ../util ../render - ../subd) + ../subd +) set(LIBRARIES cycles_device @@ -19,7 +20,8 @@ set(LIBRARIES ${BOOST_LIBRARIES} ${OPENGL_LIBRARIES} ${CYCLES_GLEW_LIBRARY} - ${OPENIMAGEIO_LIBRARIES}) + ${OPENIMAGEIO_LIBRARIES} +) link_directories(${OPENIMAGEIO_LIBPATH} ${BOOST_LIBPATH}) @@ -35,21 +37,33 @@ if(WITH_CYCLES_PARTIO) list(APPEND LIBRARIES ${PARTIO_LIBRARIES}) endif() +include_directories(${INC}) + if(WITH_CYCLES_TEST) - add_executable(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) + set(SRC + cycles_test.cpp + cycles_xml.cpp + cycles_xml.h + ) + add_executable(cycles_test ${SRC}) target_link_libraries(cycles_test ${LIBRARIES}) if(UNIX AND NOT APPLE) set_target_properties(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) endif() + unset(SRC) endif() if(WITH_CYCLES_NETWORK) - add_executable(cycles_server cycles_server.cpp) + set(SRC + cycles_server.cpp + ) + add_executable(cycles_server ${SRC}) target_link_libraries(cycles_server ${LIBRARIES}) if(UNIX AND NOT APPLE) set_target_properties(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) endif() + unset(SRC) endif() diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index a4f290f4abd..f3da1a30eb2 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -1,5 +1,21 @@ -set(sources +set(INC + ../render + ../device + ../kernel + ../kernel/svm + ../util + ../subd +) + +set(INC_SYS + ${BLENDER_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS} + ${GLEW_INCLUDE_PATH} +) + + +set(SRC blender_camera.cpp blender_mesh.cpp blender_object.cpp @@ -10,30 +26,22 @@ set(sources blender_sync.h blender_session.h - blender_util.h) + blender_util.h +) -set(addonfiles +set(ADDON_FILES addon/__init__.py addon/engine.py addon/enums.py addon/presets.py addon/properties.py addon/ui.py - addon/xml.py) + addon/xml.py +) -include_directories( - ../render - ../device - ../kernel - ../kernel/svm - ../util - ../subd - ${BLENDER_INCLUDE_DIRS} - ${PYTHON_INCLUDE_DIRS} - ${GLEW_INCLUDE_PATH}) +blender_add_lib(bf_intern_cycles "${SRC}" "${INC}" "${INC_SYS}") -blender_add_lib(bf_intern_cycles "${sources}" "" "") add_dependencies(bf_intern_cycles bf_rna) -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${addonfiles}" ${CYCLES_INSTALL_PATH}) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${ADDON_FILES}" ${CYCLES_INSTALL_PATH}) diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt index b35c20b7a38..decc576fe51 100644 --- a/intern/cycles/bvh/CMakeLists.txt +++ b/intern/cycles/bvh/CMakeLists.txt @@ -1,18 +1,28 @@ -include_directories(. ../kernel ../kernel/svm ../render ../util ../device) +set(INC + . + ../kernel + ../kernel/svm + ../render + ../util + ../device +) -set(sources +set(SRC bvh.cpp bvh_build.cpp bvh_node.cpp - bvh_sort.cpp) + bvh_sort.cpp +) -set(headers +set(SRC_HEADERS bvh.h bvh_build.h bvh_node.h bvh_params.h - bvh_sort.h) + bvh_sort.h +) -add_library(cycles_bvh ${sources} ${headers}) +include_directories(${INC}) +add_library(cycles_bvh ${SRC} ${SRC_HEADERS}) diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index 3d8c2d5e2cd..e1fb44b92b4 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -1,5 +1,5 @@ -include_directories( +set(INC . ../kernel ../kernel/svm @@ -7,21 +7,26 @@ include_directories( ../util ../render ${OPENGL_INCLUDE_DIR} - ${GLEW_INCLUDE_PATH}) + ${GLEW_INCLUDE_PATH} +) -set(sources +set(SRC device.cpp device_cpu.cpp device_cuda.cpp device_multi.cpp device_network.cpp - device_opencl.cpp) + device_opencl.cpp +) -set(headers +set(SRC_HEADERS device.h device_intern.h - device_network.h) + device_network.h +) add_definitions(-DGLEW_STATIC) -add_library(cycles_device ${sources} ${headers}) +include_directories(${INC}) + +add_library(cycles_device ${SRC} ${SRC_HEADERS}) diff --git a/intern/cycles/doc/CMakeLists.txt b/intern/cycles/doc/CMakeLists.txt index 4ae0d12a060..a8d1b53b47e 100644 --- a/intern/cycles/doc/CMakeLists.txt +++ b/intern/cycles/doc/CMakeLists.txt @@ -1,3 +1,2 @@ add_subdirectory(license) - diff --git a/intern/cycles/doc/license/CMakeLists.txt b/intern/cycles/doc/license/CMakeLists.txt index 14049d4a88a..bc11a9eb35b 100644 --- a/intern/cycles/doc/license/CMakeLists.txt +++ b/intern/cycles/doc/license/CMakeLists.txt @@ -1,5 +1,5 @@ -set(licenses +set(LICENSES Apache_2.0.txt Blender.txt GPL.txt @@ -7,7 +7,7 @@ set(licenses NVidia.txt OSL.txt Sobol.txt - readme.txt) - -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${licenses}" ${CYCLES_INSTALL_PATH}/license) + readme.txt +) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${LICENSES}" ${CYCLES_INSTALL_PATH}/license) diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 99427e02c54..3a06aecdfcf 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -1,10 +1,18 @@ -set(sources +set(INC + . + ../util + osl + svm +) + +set(SRC kernel.cpp kernel.cl - kernel.cu) + kernel.cu +) -set(headers +set(SRC_HEADERS kernel.h kernel_bvh.h kernel_camera.h @@ -27,9 +35,10 @@ set(headers kernel_shader.h kernel_textures.h kernel_triangle.h - kernel_types.h) + kernel_types.h +) -set(svm_headers +set(SRC_SVM_HEADERS svm/bsdf.h svm/bsdf_ashikhmin_velvet.h svm/bsdf_diffuse.h @@ -66,13 +75,14 @@ set(svm_headers svm/svm_voronoi.h svm/svm_wave.h svm/volume.h - ) +) -set(util_headers +set(SRC_UTIL_HEADERS ../util/util_color.h ../util/util_math.h ../util/util_transform.h - ../util/util_types.h) + ../util/util_types.h +) # OSL module @@ -82,9 +92,9 @@ endif() # CPU module -include_directories(. ../util osl svm) +include_directories(${INC}) -add_library(cycles_kernel ${sources} ${headers} ${svm_headers}) +add_library(cycles_kernel ${SRC} ${SRC_HEADERS} ${SRC_SVM_HEADERS}) if(WITH_CYCLES_CUDA) add_dependencies(cycles_kernel cycles_kernel_cuda) @@ -92,17 +102,16 @@ endif() # OPENCL kernel -#set(kernel_preprocessed ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) +#set(KERNEL_PREPROCESSED ${CMAKE_CURRENT_BINARY_DIR}/kernel_preprocessed.cl) #add_custom_command( -# OUTPUT ${kernel_preprocessed} -# COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${kernel_preprocessed} -# DEPENDS ${kernel_sources} ${util_headers}) -#add_custom_target(cycles_kernel_preprocess ALL DEPENDS ${kernel_preprocessed}) -#delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${kernel_preprocessed}" ${CYCLES_INSTALL_PATH}/kernel) +# OUTPUT ${KERNEL_PREPROCESSED} +# COMMAND gcc -x c++ -E ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cl -I ${CMAKE_CURRENT_SOURCE_DIR}/../util/ -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= -DWITH_OPENCL -o ${KERNEL_PREPROCESSED} +# DEPENDS ${SRC_KERNEL} ${SRC_UTIL_HEADERS}) +#add_custom_target(cycles_kernel_preprocess ALL DEPENDS ${KERNEL_PREPROCESSED}) +#delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${KERNEL_PREPROCESSED}" ${CYCLES_INSTALL_PATH}/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cl" ${CYCLES_INSTALL_PATH}/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "kernel.cu" ${CYCLES_INSTALL_PATH}/kernel) -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${headers}" ${CYCLES_INSTALL_PATH}/kernel) -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${svm_headers}" ${CYCLES_INSTALL_PATH}/kernel/svm) -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${util_headers}" ${CYCLES_INSTALL_PATH}/kernel) - +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_HEADERS}" ${CYCLES_INSTALL_PATH}/kernel) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_SVM_HEADERS}" ${CYCLES_INSTALL_PATH}/kernel/svm) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_UTIL_HEADERS}" ${CYCLES_INSTALL_PATH}/kernel) diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt index 4a3a6f6798a..b010bba4d25 100644 --- a/intern/cycles/kernel/osl/CMakeLists.txt +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -1,7 +1,14 @@ -include_directories(. ../ ../svm ../../render ../../util ../../device) +set(INC + . + ../ + ../svm + ../../render + ../../util + ../../device +) -set(sources +set(SRC background.cpp bsdf_ashikhmin_velvet.cpp bsdf_diffuse.cpp @@ -17,17 +24,20 @@ set(sources osl_closures.cpp osl_services.cpp osl_shader.cpp - vol_subsurface.cpp) + vol_subsurface.cpp +) -set(headers +set(HEADER_SRC osl_closures.h osl_globals.h osl_services.h - osl_shader.h) + osl_shader.h +) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -add_library(cycles_kernel_osl ${sources} ${headers}) +include_directories(${INC}) -add_subdirectory(nodes) +add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC}) +add_subdirectory(nodes) diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 7d37bb09d71..389638b671b 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -1,7 +1,7 @@ # OSL node shaders -set(osl_sources +set(SRC_OSL node_add_closure.osl node_attribute.osl node_background.osl @@ -45,26 +45,35 @@ set(osl_sources node_velvet_bsdf.osl node_voronoi_texture.osl node_ward_bsdf.osl - node_wood_texture.osl) + node_wood_texture.osl +) -set(osl_headers +set(SRC_OSL_HEADERS node_texture.h - stdosl.h) + stdosl.h +) -set(oso_sources) +set(SRC_OSO -foreach(_file ${osl_sources}) - set(osl_file ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) - string(REPLACE ".osl" ".oso" oso_file ${osl_file}) - string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} oso_file ${oso_file}) +) + +# TODO, add a module to compile OSL +foreach(_file ${SRC_OSL}) + set(_OSL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) + string(REPLACE ".osl" ".oso" _OSO_FILE ${_OSL_FILE}) # TODO, replace extension only + string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} _OSO_FILE ${_OSO_FILE}) add_custom_command( - OUTPUT ${oso_file} - COMMAND ${OSL_COMPILER} -O2 ${osl_file} - DEPENDS ${osl_file} ${osl_headers}) - list(APPEND oso_sources ${oso_file}) + OUTPUT ${_OSO_FILE} + COMMAND ${OSL_COMPILER} -O2 ${_OSL_FILE} + DEPENDS ${_OSL_FILE} ${SRC_OSL_HEADERS}) + list(APPEND SRC_OSO + ${_OSO_FILE} + ) + + unset(_OSL_FILE) + unset(_OSO_FILE) endforeach() -add_custom_target(shader ALL DEPENDS ${oso_sources} ${osl_headers}) - -delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${oso_sources}" ${CYCLES_INSTALL_PATH}/shader) +add_custom_target(shader ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS}) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader) diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt index 14859aa4414..1dcd70bdf65 100644 --- a/intern/cycles/render/CMakeLists.txt +++ b/intern/cycles/render/CMakeLists.txt @@ -1,5 +1,5 @@ -include_directories( +set(INC . ../device ../kernel @@ -7,9 +7,10 @@ include_directories( ../kernel/osl ../bvh ../util - ${GLEW_INCLUDE_PATH}) + ${GLEW_INCLUDE_PATH} +) -set(sources +set(SRC attribute.cpp background.cpp buffers.cpp @@ -30,9 +31,10 @@ set(sources shader.cpp sobol.cpp svm.cpp - tile.cpp) + tile.cpp +) -set(headers +set(SRC_HEADERS attribute.h background.h buffers.h @@ -52,9 +54,12 @@ set(headers shader.h sobol.h svm.h - tile.h) + tile.h +) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") -add_library(cycles_render ${sources} ${headers}) +include_directories(${INC}) + +add_library(cycles_render ${SRC} ${SRC_HEADERS}) diff --git a/intern/cycles/subd/CMakeLists.txt b/intern/cycles/subd/CMakeLists.txt index 79ed73134f2..75f70753ddf 100644 --- a/intern/cycles/subd/CMakeLists.txt +++ b/intern/cycles/subd/CMakeLists.txt @@ -1,16 +1,23 @@ -include_directories(. ../util ../kernel ../kernel/svm ../render) +set(INC + . + ../util + ../kernel + ../kernel/svm + ../render +) -set(sources +set(SRC subd_build.cpp subd_dice.cpp subd_mesh.cpp subd_patch.cpp subd_ring.cpp subd_split.cpp - subd_stencil.cpp) + subd_stencil.cpp +) -set(headers +set(SRC_HEADERS subd_build.h subd_dice.h subd_edge.h @@ -20,7 +27,9 @@ set(headers subd_ring.h subd_split.h subd_stencil.h - subd_vert.h) + subd_vert.h +) -add_library(cycles_subd ${sources} ${headers}) +include_directories(${INC}) +add_library(cycles_subd ${SRC} ${SRC_HEADERS}) diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt index a7f7c663509..da183aaaeb2 100644 --- a/intern/cycles/util/CMakeLists.txt +++ b/intern/cycles/util/CMakeLists.txt @@ -1,10 +1,11 @@ -include_directories( +set(INC . ${GLEW_INCLUDE_PATH} - ${OPENGL_INCLUDE_DIR}) + ${OPENGL_INCLUDE_DIR} +) -set(sources +set(SRC util_cache.cpp util_cuda.cpp util_dynlib.cpp @@ -15,13 +16,16 @@ set(sources util_string.cpp util_system.cpp util_time.cpp - util_transform.cpp) + util_transform.cpp +) if(WITH_CYCLES_TEST) - list(APPEND sources util_view.cpp) + list(APPEND SRC + util_view.cpp + ) endif() -set(headers +set(SRC_HEADERS util_algorithm.h util_args.h util_boundbox.h @@ -51,7 +55,9 @@ set(headers util_types.h util_view.h util_vector.h - util_xml.h) + util_xml.h +) -add_library(cycles_util ${sources} ${headers}) +include_directories(${INC}) +add_library(cycles_util ${SRC} ${SRC_HEADERS}) -- cgit v1.2.3 From c9bca51e7646510913bace5374e0a948ddb7dfb7 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 8 Nov 2011 20:40:02 +0000 Subject: Add compiles support for Cycles. No CUDA compiling yet, will be added later. --- SConstruct | 51 +++++++++++++++++++++++++++-- build_files/scons/config/win32-vc-config.py | 13 ++++---- build_files/scons/config/win64-vc-config.py | 4 +-- build_files/scons/tools/Blender.py | 5 +++ build_files/scons/tools/btools.py | 3 ++ intern/SConscript | 3 ++ intern/cycles/SConscript | 33 +++++++++++++++++++ source/blender/SConscript | 3 +- source/blender/makesrna/SConscript | 4 ++- source/blender/python/SConscript | 3 ++ 10 files changed, 109 insertions(+), 13 deletions(-) create mode 100644 intern/cycles/SConscript diff --git a/SConstruct b/SConstruct index 16ce8ca4b32..5bc76c57091 100644 --- a/SConstruct +++ b/SConstruct @@ -435,12 +435,12 @@ B.init_lib_dict() Export('env') +BuildDir(B.root_build_dir+'/source', 'source', duplicate=0) +SConscript(B.root_build_dir+'/source/SConscript') BuildDir(B.root_build_dir+'/intern', 'intern', duplicate=0) SConscript(B.root_build_dir+'/intern/SConscript') BuildDir(B.root_build_dir+'/extern', 'extern', duplicate=0) SConscript(B.root_build_dir+'/extern/SConscript') -BuildDir(B.root_build_dir+'/source', 'source', duplicate=0) -SConscript(B.root_build_dir+'/source/SConscript') # now that we have read all SConscripts, we know what # libraries will be built. Create list of @@ -526,6 +526,50 @@ if env['OURPLATFORM']!='darwin': if len(source)==0: env.Execute(Mkdir(dir)) scriptinstall.append(env.Install(dir=dir,source=source)) + if env['WITH_BF_CYCLES']: + # cycles python code + dir=os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts', 'addons','cycles') + source=os.listdir('intern/cycles/blender/addon') + if '.svn' in source: source.remove('.svn') + if '_svn' in source: source.remove('_svn') + if '__pycache__' in source: source.remove('__pycache__') + source=['intern/cycles/blender/addon/'+s for s in source] + scriptinstall.append(env.Install(dir=dir,source=source)) + + # cycles kernel code + dir=os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts', 'addons','cycles', 'kernel') + source=os.listdir('intern/cycles/kernel') + if '.svn' in source: source.remove('.svn') + if '_svn' in source: source.remove('_svn') + if '__pycache__' in source: source.remove('__pycache__') + source.remove('kernel.cpp') + source.remove('CMakeLists.txt') + source.remove('svm') + source.remove('osl') + source=['intern/cycles/kernel/'+s for s in source] + source.append('intern/cycles/util/util_color.h') + source.append('intern/cycles/util/util_math.h') + source.append('intern/cycles/util/util_transform.h') + source.append('intern/cycles/util/util_types.h') + scriptinstall.append(env.Install(dir=dir,source=source)) + # svm + dir=os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts', 'addons','cycles', 'kernel', 'svm') + source=os.listdir('intern/cycles/kernel/svm') + if '.svn' in source: source.remove('.svn') + if '_svn' in source: source.remove('_svn') + if '__pycache__' in source: source.remove('__pycache__') + source=['intern/cycles/kernel/svm/'+s for s in source] + scriptinstall.append(env.Install(dir=dir,source=source)) + + # licenses + dir=os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts', 'addons','cycles', 'license') + source=os.listdir('intern/cycles/doc/license') + if '.svn' in source: source.remove('.svn') + if '_svn' in source: source.remove('_svn') + if '__pycache__' in source: source.remove('__pycache__') + source.remove('CMakeLists.txt') + source=['intern/cycles/doc/license/'+s for s in source] + scriptinstall.append(env.Install(dir=dir,source=source)) if env['WITH_BF_INTERNATIONAL']: internationalpaths=['release' + os.sep + 'datafiles'] @@ -696,6 +740,9 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'): dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb.dll') dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll') + if env['WITH_BF_OIIO']: + dllsources.append('${LCGDIR}/openimageio/bin/OpenImageIO.dll') + dllsources.append('#source/icons/blender.exe.manifest') windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources) diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py index 1e4821180d6..20d4cdbf797 100644 --- a/build_files/scons/config/win32-vc-config.py +++ b/build_files/scons/config/win32-vc-config.py @@ -149,19 +149,20 @@ WITH_BF_3DMOUSE = True WITH_BF_OPENMP = True -''' +#Cycles +WITH_BF_CYCLES = True + WITH_BF_OIIO = True BF_OIIO = LIBDIR + '/openimageio' -BF_OIIO_INC = '${BF_OIIO}/include' +BF_OIIO_INC = '#../lib/windows/openimageio/include' BF_OIIO_LIB = 'OpenImageIO' -BF_OIIO_LIBPATH = '${BF_OIIO}/lib' +BF_OIIO_LIBPATH = '#../lib/windows/openimageio/lib' WITH_BF_BOOST = True BF_BOOST = LIBDIR + '/boost' -BF_BOOST_INC = '${BF_BOOST}/include' +BF_BOOST_INC = '#../lib/windows/boost/include' BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_46_1 libboost_filesystem-vc90-mt-s-1_46_1 libboost_regex-vc90-mt-s-1_46_1 libboost_system-vc90-mt-s-1_46_1 libboost_thread-vc90-mt-s-1_46_1' -BF_BOOST_LIBPATH = '${BF_BOOST}/lib' -''' +BF_BOOST_LIBPATH = '#../lib/windows/boost/lib' #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py index 0920d9375ae..051e4b0cc10 100644 --- a/build_files/scons/config/win64-vc-config.py +++ b/build_files/scons/config/win64-vc-config.py @@ -153,7 +153,8 @@ WITH_BF_3DMOUSE = True WITH_BF_OPENMP = True -''' +WITH_BF_CYCLES = True + WITH_BF_OIIO = True BF_OIIO = LIBDIR + '/openimageio' BF_OIIO_INC = '${BF_OIIO}/include' @@ -165,7 +166,6 @@ BF_BOOST = LIBDIR + '/boost' BF_BOOST_INC = '${BF_BOOST}/include' BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_45 libboost_filesystem-vc90-mt-s-1_45 libboost_regex-vc90-mt-s-1_45 libboost_system-vc90-mt-s-1_45 libboost_thread-vc90-mt-s-1_45' BF_BOOST_LIBPATH = '${BF_BOOST}/lib' -''' #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index ba15f1c1c09..ceadd031393 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -279,6 +279,11 @@ def setup_syslibs(lenv): if lenv['WITH_BF_3DMOUSE']: if not lenv['WITH_BF_STATIC3DMOUSE']: syslibs += Split(lenv['BF_3DMOUSE_LIB']) + + if lenv['WITH_BF_OIIO']: + syslibs += Split(lenv['BF_OIIO_LIB']) + if lenv['WITH_BF_BOOST']: + syslibs += Split(lenv['BF_BOOST_LIB']) if lenv['WITH_BF_OIIO']: syslibs += Split(lenv['BF_OIIO_LIB']) diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index 5c78dc646bb..6686b948631 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -156,6 +156,7 @@ def validate_arguments(args, bc): 'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC', 'BUILDBOT_BRANCH', '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_OIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIBPATH', 'WITH_BF_BOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIBPATH' ] @@ -537,6 +538,8 @@ def read_opts(env, cfg, args): ('BUILDBOT_BRANCH', 'Buildbot branch name', ''), + (BoolVariable('WITH_BF_CYCLES', 'Build with the Cycles engine', True)), + (BoolVariable('WITH_BF_OIIO', 'Build with OpenImageIO', False)), ('BF_OIIO_INC', 'OIIO include path', ''), ('BF_OIIO_LIB', 'OIIO library', ''), diff --git a/intern/SConscript b/intern/SConscript index da245c78776..c13714543cb 100644 --- a/intern/SConscript +++ b/intern/SConscript @@ -24,6 +24,9 @@ NEW_CSG='false' if env['WITH_BF_FLUID']: SConscript(['elbeem/SConscript']) + +if env['WITH_BF_CYCLES']: + SConscript(['cycles/SConscript']) if NEW_CSG=='false': SConscript(['bsp/SConscript']) diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript new file mode 100644 index 00000000000..dbaf52ff175 --- /dev/null +++ b/intern/cycles/SConscript @@ -0,0 +1,33 @@ +#!/usr/bin/python +from os import path +Import('env') + +cycles = env.Clone() + +cycles.Depends('../../source/blender/makesrna/intern/RNA_blender_cpp.h', 'makesrna') + +sources = cycles.Glob('bvh/*.cpp') + cycles.Glob('device/*.cpp') + cycles.Glob('kernel/*.cpp') + cycles.Glob('render/*.cpp') + cycles.Glob('subd/*.cpp') + cycles.Glob('util/*.cpp') + cycles.Glob('util/*.c') + cycles.Glob('blender/*.cpp') + +sources.remove(path.join('util', 'util_view.cpp')) +sources.remove(path.join('render', 'film_response.cpp')) + +incs = [] +defs = [] + +defs.append('CCL_NAMESPACE_BEGIN=namespace ccl {') +defs.append('CCL_NAMESPACE_END=}') + +defs.append('WITH_OPENCL') +defs.append('WITH_MULTI') +defs.append('WITH_CUDA') + +incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split()) +incs.extend('#intern/guardedalloc #source/blender/makesrna #source/blender/makesdna'.split()) +incs.extend('#source/blender/blenloader ../../source/blender/makesrna/intern'.split()) +incs.extend('#extern/glew/include'.split()) +incs.append(cycles['BF_OIIO_INC']) +incs.append(cycles['BF_BOOST_INC']) +incs.append(cycles['BF_PYTHON_INC']) + +cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0] ) + diff --git a/source/blender/SConscript b/source/blender/SConscript index 969bd2966fc..ea5101f8111 100644 --- a/source/blender/SConscript +++ b/source/blender/SConscript @@ -11,7 +11,6 @@ SConscript(['avi/SConscript', 'editors/SConscript', 'imbuf/SConscript', 'makesdna/SConscript', - 'makesrna/SConscript', 'render/SConscript', 'nodes/SConscript', 'modifiers/SConscript', @@ -19,7 +18,7 @@ SConscript(['avi/SConscript', 'windowmanager/SConscript', 'blenfont/SConscript']) - +makesrna = SConscript('makesrna/SConscript') if env['WITH_BF_PYTHON']: SConscript(['python/SConscript']) diff --git a/source/blender/makesrna/SConscript b/source/blender/makesrna/SConscript index da186a57c8b..769ec880a65 100644 --- a/source/blender/makesrna/SConscript +++ b/source/blender/makesrna/SConscript @@ -65,4 +65,6 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): if env['WITH_BF_INTERNATIONAL']: defs.append('WITH_INTERNATIONAL') -env.BlenderLib ( 'bf_rna', objs, Split(incs), defines=defs, libtype=['core','player'], priority = [165,20] ) +rnalib = env.BlenderLib ( 'bf_rna', objs, Split(incs), defines=defs, libtype=['core','player'], priority = [165,20] ) + +Return ('rnalib') diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript index 3f47038687a..c592e87f3b9 100644 --- a/source/blender/python/SConscript +++ b/source/blender/python/SConscript @@ -43,5 +43,8 @@ if env['BF_BUILDINFO']: if env['WITH_BF_INTERNATIONAL']: defs.append('WITH_INTERNATIONAL') +if env['WITH_BF_CYCLES']: + defs.append('WITH_CYCLES') + sources = env.Glob('intern/*.c') env.BlenderLib( libname = 'bf_python', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core'], priority = [361]) -- cgit v1.2.3 From a645935a1d8118e6c28b3a0ebdc338439e647c52 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 8 Nov 2011 20:56:55 +0000 Subject: Build system fixes: * Fixed Boost libs names after upgrade to 1.47 * Remove old reference to space_sound from cmake. --- build_files/scons/config/win32-vc-config.py | 2 +- build_files/scons/config/win64-vc-config.py | 2 +- source/creator/CMakeLists.txt | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py index 20d4cdbf797..ff01cdd7917 100644 --- a/build_files/scons/config/win32-vc-config.py +++ b/build_files/scons/config/win32-vc-config.py @@ -161,7 +161,7 @@ BF_OIIO_LIBPATH = '#../lib/windows/openimageio/lib' WITH_BF_BOOST = True BF_BOOST = LIBDIR + '/boost' BF_BOOST_INC = '#../lib/windows/boost/include' -BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_46_1 libboost_filesystem-vc90-mt-s-1_46_1 libboost_regex-vc90-mt-s-1_46_1 libboost_system-vc90-mt-s-1_46_1 libboost_thread-vc90-mt-s-1_46_1' +BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_47 libboost_filesystem-vc90-mt-s-1_47 libboost_regex-vc90-mt-s-1_47 libboost_system-vc90-mt-s-1_47 libboost_thread-vc90-mt-s-1_47' BF_BOOST_LIBPATH = '#../lib/windows/boost/lib' #Ray trace optimization diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py index 051e4b0cc10..2e3856f9380 100644 --- a/build_files/scons/config/win64-vc-config.py +++ b/build_files/scons/config/win64-vc-config.py @@ -164,7 +164,7 @@ BF_OIIO_LIBPATH = '${BF_OIIO}/lib' WITH_BF_BOOST = True BF_BOOST = LIBDIR + '/boost' BF_BOOST_INC = '${BF_BOOST}/include' -BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_45 libboost_filesystem-vc90-mt-s-1_45 libboost_regex-vc90-mt-s-1_45 libboost_system-vc90-mt-s-1_45 libboost_thread-vc90-mt-s-1_45' +BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_47 libboost_filesystem-vc90-mt-s-1_47 libboost_regex-vc90-mt-s-1_47 libboost_system-vc90-mt-s-1_47 libboost_thread-vc90-mt-s-1_47' BF_BOOST_LIBPATH = '${BF_BOOST}/lib' #Ray trace optimization diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index bb55d05cb28..b86e9faf813 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -780,7 +780,6 @@ endif() bf_editor_space_outliner bf_editor_space_script bf_editor_space_sequencer - bf_editor_space_sound bf_editor_space_time bf_editor_space_userpref bf_editor_space_view3d -- cgit v1.2.3 From af867438fc08e49014888b9bc2261a8193f4f10e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 8 Nov 2011 21:17:42 +0000 Subject: Scons: * Fixing x64 compile with Cycles. --- build_files/scons/config/win64-vc-config.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py index 2e3856f9380..d910bdc5ca6 100644 --- a/build_files/scons/config/win64-vc-config.py +++ b/build_files/scons/config/win64-vc-config.py @@ -157,15 +157,16 @@ WITH_BF_CYCLES = True WITH_BF_OIIO = True BF_OIIO = LIBDIR + '/openimageio' -BF_OIIO_INC = '${BF_OIIO}/include' +BF_OIIO_INC = '#../lib/win64/openimageio/include' BF_OIIO_LIB = 'OpenImageIO' BF_OIIO_LIBPATH = '${BF_OIIO}/lib' +BF_OIIO_LIBPATH = '#../lib/win64/openimageio/lib' WITH_BF_BOOST = True BF_BOOST = LIBDIR + '/boost' -BF_BOOST_INC = '${BF_BOOST}/include' +BF_BOOST_INC = '#../lib/win64/boost/include' BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_47 libboost_filesystem-vc90-mt-s-1_47 libboost_regex-vc90-mt-s-1_47 libboost_system-vc90-mt-s-1_47 libboost_thread-vc90-mt-s-1_47' -BF_BOOST_LIBPATH = '${BF_BOOST}/lib' +BF_BOOST_LIBPATH = '#../lib/win64/boost/lib' #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True -- cgit v1.2.3 From 262ac7340e79ce1fd3a902ce6121426837c6a316 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 21:40:08 +0000 Subject: Cycles: cmake tweaks for linux build, instructions on the wiki no longer worked. --- CMakeLists.txt | 17 +++++------------ intern/cycles/CMakeLists.txt | 7 +++---- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21f5ffb2f47..6b26d99c9bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -503,18 +503,11 @@ if(UNIX AND NOT APPLE) if(WITH_BOOST) - # not sure this is needed, commenting, campbell - # --- - # set(BOOST "/usr" CACHE PATH "Boost Directory") - # - # if(NOT BOOST_CUSTOM) - # set(BOOST_ROOT ${BOOST}) - # set(Boost_USE_MULTITHREADED ON) - # find_package(Boost 1.34 COMPONENTS filesystem regex system thread) - # endif() - - set(Boost_USE_MULTITHREADED ON) - find_package(Boost 1.34 COMPONENTS filesystem regex system thread) + # uses in build instructions to override include and library variables + if(NOT BOOST_CUSTOM) + set(Boost_USE_MULTITHREADED ON) + find_package(Boost 1.34 COMPONENTS filesystem regex system thread) + endif() set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) set(BOOST_LIBRARIES ${Boost_LIBRARIES}) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index b0507d90d4c..bb876a90a7c 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -8,11 +8,10 @@ include(cmake/external_libs.cmake) # Build Flags -set(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") set(GCC_OPTIM_FLAGS "-ffast-math -msse -msse2 -msse3 -mtune=native") if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif() @@ -21,13 +20,13 @@ if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") elseif(CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif() endif() if(UNIX AND NOT APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") endif() -- cgit v1.2.3 From 7f273394d599293d41b5bff37b3ad56bb507a1c8 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 8 Nov 2011 21:46:31 +0000 Subject: Cycles: * Scons: Disable Cycles per default on Linux/Mac for now until compile issues have been sorted out. --- build_files/scons/config/darwin-config.py | 2 ++ build_files/scons/config/linux-config.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index 38c8dca6cd2..69cf54dc740 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -254,6 +254,8 @@ BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib' WITH_BF_QUICKTIME = True +WITH_BF_CYCLES = False + WITH_BF_ICONV = True BF_ICONV = '/usr' BF_ICONV_INC = '${BF_ICONV}/include' diff --git a/build_files/scons/config/linux-config.py b/build_files/scons/config/linux-config.py index 91f86ae7e80..9e2352c51fc 100644 --- a/build_files/scons/config/linux-config.py +++ b/build_files/scons/config/linux-config.py @@ -178,6 +178,8 @@ BF_JEMALLOC_LIBPATH = '${BF_JEMALLOC}/lib' BF_JEMALLOC_LIB = 'jemalloc' BF_JEMALLOC_LIB_STATIC = '${BF_JEMALLOC_LIBPATH}/libjemalloc.a' +WITH_BF_CYCLES = False + WITH_BF_OPENMP = True #Ray trace optimization -- cgit v1.2.3 From 46dcad970ce7ef93b4a64373aa21be98c9133b77 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Nov 2011 22:38:10 +0000 Subject: Cycles: fix light strength mistmatch when clicking "use nodes". Regarding merge status, there should be no build failures, but cycles may not be enabled in your build, we are still solving: * Windows: CUDA kernel compile at runtime is failing, probably will have to do precompiled kernel again. * Mac: scons is not building cycles yet. * Linux doesn't have boost + openimageio libs available in lib/ yet, so it requires manual install of those libs still. --- intern/cycles/blender/blender_mesh.cpp | 1 - intern/cycles/blender/blender_shader.cpp | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 3bf83fa533f..56e8561d64b 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -276,7 +276,6 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated) vector oldtriangle = mesh->triangles; - mesh->clear(); mesh->used_shaders = used_shaders; mesh->name = ustring(b_ob_data.name().c_str()); diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index f1b032b5cc8..6f78fe1f0d4 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -665,10 +665,16 @@ void BlenderSync::sync_lamps() } else { ShaderNode *closure, *out; + float strength = 1.0f; + + if(b_lamp->type() == BL::Lamp::type_POINT || + b_lamp->type() == BL::Lamp::type_SPOT || + b_lamp->type() == BL::Lamp::type_AREA) + strength = 100.0f; closure = graph->add(new EmissionNode()); closure->input("Color")->value = get_float3(b_lamp->color()); - closure->input("Strength")->value.x = b_lamp->energy()*10.0f; + closure->input("Strength")->value.x = strength; out = graph->output(); graph->connect(closure->output("Emission"), out->input("Surface")); -- cgit v1.2.3 From 5a6bf231f092e2dafaa8be8f99ecaa877df09ca6 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 8 Nov 2011 23:27:31 +0000 Subject: minor: some fixes and tweaks in new messages, found while translating them in french... --- source/blender/editors/space_clip/clip_graph_ops.c | 2 +- source/blender/editors/space_clip/clip_ops.c | 2 +- source/blender/editors/space_clip/tracking_ops.c | 18 +++++++++--------- source/blender/makesrna/intern/rna_movieclip.c | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/blender/editors/space_clip/clip_graph_ops.c b/source/blender/editors/space_clip/clip_graph_ops.c index 831b225386a..56ca1632bae 100644 --- a/source/blender/editors/space_clip/clip_graph_ops.c +++ b/source/blender/editors/space_clip/clip_graph_ops.c @@ -280,7 +280,7 @@ void CLIP_OT_graph_select(wmOperatorType *ot) /* properties */ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, - "Location", "Mouse location to select nearest entity closest to", -100.0f, 100.0f); + "Location", "Mouse location to select nearest entity", -100.0f, 100.0f); RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection rather than clearing the existing selection"); } diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index c52346fd4b6..98abbad13dd 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -970,7 +970,7 @@ void CLIP_OT_mode_set(wmOperatorType *ot) /* identifiers */ ot->name= "Set Clip Mode"; - ot->description = "Sets the clip interaction mode"; + ot->description = "Set the clip interaction mode"; ot->idname= "CLIP_OT_mode_set"; /* api callbacks */ diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index 6f2289388f5..78bfb1498ac 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -1159,7 +1159,7 @@ void CLIP_OT_select_grouped(wmOperatorType *ot) {2, "TRACKED", 0, "Tracked tracks", "Select all tracked tracks"}, {3, "LOCKED", 0, "Locked tracks", "Select all locked tracks"}, {4, "DISABLED", 0, "Disabled tracks", "Select all disabled tracks"}, - {5, "COLOR", 0, "Tracks with same color", "Select all tracks with same color as actiev track"}, + {5, "COLOR", 0, "Tracks with same color", "Select all tracks with same color as active track"}, {6, "FAILED", 0, "Failed Tracks", "Select all tracks which failed to be reconstructed"}, {0, NULL, 0, NULL, NULL} }; @@ -1662,7 +1662,7 @@ void CLIP_OT_clear_track_path(wmOperatorType *ot) { static EnumPropertyItem clear_path_actions[] = { {TRACK_CLEAR_UPTO, "UPTO", 0, "Clear up-to", "Clear path up to current frame"}, - {TRACK_CLEAR_REMAINED, "REMAINED", 0, "Clear remained", "Clear path at remained frames (after current)"}, + {TRACK_CLEAR_REMAINED, "REMAINED", 0, "Clear remained", "Clear path at remaining frames (after current)"}, {TRACK_CLEAR_ALL, "ALL", 0, "Clear all", "Clear the whole path"}, {0, NULL, 0, NULL, NULL} }; @@ -1800,7 +1800,7 @@ void CLIP_OT_set_origin(wmOperatorType *ot) { /* identifiers */ ot->name= "Set Origin"; - ot->description= "Set active marker as origin by moving camera (or it's parent if present) in 3d space"; + ot->description= "Set active marker as origin by moving camera (or it's parent if present) in 3D space"; ot->idname= "CLIP_OT_set_origin"; /* api callbacks */ @@ -1952,7 +1952,7 @@ void CLIP_OT_set_floor(wmOperatorType *ot) { /* identifiers */ ot->name= "Set Floor"; - ot->description= "Set floor based on 3 selected bundles by moving camera (or it's parent if present) in 3d space"; + ot->description= "Set floor based on 3 selected bundles by moving camera (or it's parent if present) in 3D space"; ot->idname= "CLIP_OT_set_floor"; /* api callbacks */ @@ -2294,8 +2294,8 @@ void CLIP_OT_detect_features(wmOperatorType *ot) { static EnumPropertyItem placement_items[] = { {0, "FRAME", 0, "Whole Frame", "Place markers across the whole frame"}, - {1, "INSIDE_GPENCIL", 0, "Inside grease pencil", "Place markers only inside areas oulined with grease pencil"}, - {2, "OUTSIDE_GPENCIL", 0, "Outside grease pencil", "Place markers only outside areas oulined with grease pencil"}, + {1, "INSIDE_GPENCIL", 0, "Inside grease pencil", "Place markers only inside areas outlined with grease pencil"}, + {2, "OUTSIDE_GPENCIL", 0, "Outside grease pencil", "Place markers only outside areas outlined with grease pencil"}, {0, NULL, 0, NULL, NULL} }; @@ -2386,7 +2386,7 @@ void CLIP_OT_frame_jump(wmOperatorType *ot) static EnumPropertyItem position_items[] = { {0, "PATHSTART", 0, "Path Start", "Jump to start of current path"}, {1, "PATHEND", 0, "Path End", "Jump to end of current path"}, - {2, "FAILEDPREV", 0, "Previons Failed", "Jump to previous failed frame"}, + {2, "FAILEDPREV", 0, "Previous Failed", "Jump to previous failed frame"}, {2, "FAILNEXT", 0, "Next Failed", "Jump to next failed frame"}, {0, NULL, 0, NULL, NULL} }; @@ -2457,7 +2457,7 @@ void CLIP_OT_join_tracks(wmOperatorType *ot) { /* identifiers */ ot->name= "Join Tracks"; - ot->description= "Joint Selected Tracks"; + ot->description= "Join selected tracks"; ot->idname= "CLIP_OT_join_tracks"; /* api callbacks */ @@ -2737,7 +2737,7 @@ void CLIP_OT_stabilize_2d_set_rotation(wmOperatorType *ot) { /* identifiers */ ot->name= "Set Rotation Track"; - ot->description= "Use active track to compensate rotaiton when doing 2D stabilization"; + ot->description= "Use active track to compensate rotation when doing 2D stabilization"; ot->idname= "CLIP_OT_stabilize_2d_set_rotation"; /* api callbacks */ diff --git a/source/blender/makesrna/intern/rna_movieclip.c b/source/blender/makesrna/intern/rna_movieclip.c index ad53a96b817..91e082cdeae 100644 --- a/source/blender/makesrna/intern/rna_movieclip.c +++ b/source/blender/makesrna/intern/rna_movieclip.c @@ -75,9 +75,9 @@ static void rna_def_movieclip_proxy(BlenderRNA *brna) static const EnumPropertyItem clip_tc_items[]= { {IMB_TC_NONE, "NONE", 0, "No TC in use", ""}, - {IMB_TC_RECORD_RUN, "RECORD_RUN", 0, "Record Run", "use images in the order as they are recorded"}, - {IMB_TC_FREE_RUN, "FREE_RUN", 0, "Free Run", "use global timestamp written by recording device"}, - {IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN, "FREE_RUN_REC_DATE", 0, "Free Run (rec date)", "interpolate a global timestamp using the record date and time written by recording device"}, + {IMB_TC_RECORD_RUN, "RECORD_RUN", 0, "Record Run", "Use images in the order they are recorded"}, + {IMB_TC_FREE_RUN, "FREE_RUN", 0, "Free Run", "Use global timestamp written by recording device"}, + {IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN, "FREE_RUN_REC_DATE", 0, "Free Run (rec date)", "Interpolate a global timestamp using the record date and time written by recording device"}, {0, NULL, 0, NULL, NULL}}; srna = RNA_def_struct(brna, "MovieClipProxy", NULL); -- cgit v1.2.3 From b603e1b1ca58a7532b5470378d7e258deefeb576 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 9 Nov 2011 03:38:36 +0000 Subject: Moving version-patches for theme/userpref setting changes as result of GSoC11-Pepper changes forward to the version patch in place for Cycles + Tracking. It turns out that the original version patches introduced for these settings were being done for the wrong version, and hence did not show in trunk as they should have (2.59 came out before the branch was merged, so this kindof slipped under the radar). The affected settings were: - default handle-type (which was supposed to be "auto-clamped" but was "auto" in trunk) - theme settings for these handle colours --- source/blender/editors/interface/resources.c | 43 +++++++++++++--------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 104cf18ebdf..738531e3bad 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1611,24 +1611,9 @@ void init_userdef_do_versions(void) } } - if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) { - bTheme *btheme; - - /* if new keyframes handle default is stuff "auto", make it "auto-clamped" instead */ - if (U.keyhandles_new == HD_AUTO) - U.keyhandles_new = HD_AUTO_ANIM; - - /* theme color additions */ - for (btheme= U.themes.first; btheme; btheme= btheme->next) { - /* auto-clamped handles -> based on auto */ - SETCOL(btheme->tipo.handle_auto_clamped, 0x99, 0x40, 0x30, 255); - SETCOL(btheme->tipo.handle_sel_auto_clamped, 0xf0, 0xaf, 0x90, 255); - } - } - if (bmain->versionfile < 259 || (bmain->versionfile == 259 && bmain->subversionfile < 1)) { bTheme *btheme; - + for(btheme= U.themes.first; btheme; btheme= btheme->next) { btheme->tv3d.speaker[3] = 255; } @@ -1636,17 +1621,23 @@ void init_userdef_do_versions(void) if (bmain->versionfile < 260 || (bmain->versionfile == 260 && bmain->subversionfile < 3)) { bTheme *btheme; - - for(btheme= U.themes.first; btheme; btheme= btheme->next) { + + /* if new keyframes handle default is stuff "auto", make it "auto-clamped" instead + * was changed in 260 as part of GSoC11, but version patch was wrong + */ + if (U.keyhandles_new == HD_AUTO) + U.keyhandles_new = HD_AUTO_ANIM; + + for(btheme= U.themes.first; btheme; btheme= btheme->next) { if(btheme->tv3d.bundle_solid[3] == 0) SETCOL(btheme->tv3d.bundle_solid, 200, 200, 200, 255); - + if(btheme->tv3d.camera_path[3] == 0) SETCOL(btheme->tv3d.camera_path, 0x00, 0x00, 0x00, 255); - + if((btheme->tclip.back[3]) == 0) { btheme->tclip= btheme->tv3d; - + SETCOL(btheme->tclip.marker_outline, 0x00, 0x00, 0x00, 255); SETCOL(btheme->tclip.marker, 0x7f, 0x7f, 0x00, 255); SETCOL(btheme->tclip.act_marker, 0xff, 0xff, 0xff, 255); @@ -1661,9 +1652,15 @@ void init_userdef_do_versions(void) SETCOL(btheme->tclip.handle_vertex_select, 0xff, 0xff, 0, 0xff); btheme->tclip.handle_vertex_size= 4; } + + /* auto-clamped handles -> based on auto */ + if(btheme->tipo.handle_auto_clamped[3] == 0) + SETCOL(btheme->tipo.handle_auto_clamped, 0x99, 0x40, 0x30, 255); + if(btheme->tipo.handle_sel_auto_clamped[3] == 0) + SETCOL(btheme->tipo.handle_sel_auto_clamped, 0xf0, 0xaf, 0x90, 255); } - - /* enable addon by default */ + + /* enable (Cycles) addon by default */ if(!BLI_findstring(&U.addons, "cycles", offsetof(bAddon, module))) { bAddon *baddon= MEM_callocN(sizeof(bAddon), "bAddon"); BLI_strncpy(baddon->module, "cycles", sizeof(baddon->module)); -- cgit v1.2.3 From f9e3aa3da5aaec6d967336b60956fa44038d844a Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 9 Nov 2011 10:04:36 +0000 Subject: minor: Moved italian and russian translations to "nearly done" menu part. --- source/blender/makesrna/intern/rna_userdef.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 26f23681c7b..09b712fbfaf 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2617,12 +2617,13 @@ static void rna_def_userdef_system(BlenderRNA *brna) {0, "DEFAULT", 0, "Default (Default)", ""}, {1, "ENGLISH", 0, "English (English)", "en_US"}, {8, "FRENCH", 0, "French (Français)", "fr_FR"}, - {9, "SPANISH", 0, "Spanish (Español)", "es_ES"}, + {4, "ITALIAN", 0, "Italian (Italiano)", "it_IT"}, + {15, "RUSSIAN", 0, "Russian (Русский)", "ru_RU"}, {13, "SIMPLIFIED_CHINESE", 0, "Simplified Chinese (简体中文)", "zh_CN"}, + {9, "SPANISH", 0, "Spanish (Español)", "es_ES"}, {0, "", 0, "In progress", ""}, {2, "JAPANESE", 0, "Japanese (日本語)", "ja_JP"}, {3, "DUTCH", 0, "Dutch (Nederlandse taal)", "nl_NL"}, - {4, "ITALIAN", 0, "Italian (Italiano)", "it_IT"}, {5, "GERMAN", 0, "German (Deutsch)", "de_DE"}, {6, "FINNISH", 0, "Finnish (Suomi)", "fi_FI"}, {7, "SWEDISH", 0, "Swedish (Svenska)", "sv_SE"}, @@ -2630,7 +2631,6 @@ static void rna_def_userdef_system(BlenderRNA *brna) {11, "CZECH", 0, "Czech (Český)", "cs_CZ"}, {12, "BRAZILIAN_PORTUGUESE", 0, "Brazilian Portuguese (Português do Brasil)", "pt_BR"}, {14, "TRADITIONAL_CHINESE", 0, "Traditional Chinese (繁體中文)", "zh_TW"}, - {15, "RUSSIAN", 0, "Russian (Русский)", "ru_RU"}, {16, "CROATIAN", 0, "Croatian (Hrvatski)", "hr_HR"}, {17, "SERBIAN", 0, "Serbian (Српском језику)", "sr_RS"}, {18, "UKRAINIAN", 0, "Ukrainian (Український)", "uk_UA"}, -- cgit v1.2.3 From 83b16687b99817697e36e7117e4ff54ff9198704 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Wed, 9 Nov 2011 11:33:10 +0000 Subject: Make scons work MinGW. This commit resolves several issues such as enable OpenEXR, Game Engine and Player, enable latest features, and solve link order for gcc. So MinGW is right now fully supported as a build system for release type builds. Debug builds not tested. --- build_files/scons/config/win32-mingw-config.py | 35 ++++++++++++++++++-------- build_files/scons/tools/Blender.py | 19 ++++++-------- intern/cycles/SConscript | 9 ++++++- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/build_files/scons/config/win32-mingw-config.py b/build_files/scons/config/win32-mingw-config.py index f210ab436b5..7b3fd7aa5cf 100644 --- a/build_files/scons/config/win32-mingw-config.py +++ b/build_files/scons/config/win32-mingw-config.py @@ -17,7 +17,7 @@ BF_OPENAL_INC = '${BF_OPENAL}/include' BF_OPENAL_LIB = 'wrap_oal' BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib' -WITH_BF_FFMPEG = False +WITH_BF_FFMPEG = True BF_FFMPEG_LIB = 'avformat-53 avcodec-53 avdevice-53 avutil-51 swscale-2' BF_FFMPEG_LIBPATH = LIBDIR + '/ffmpeg/lib' BF_FFMPEG_INC = LIBDIR + '/ffmpeg/include' @@ -46,11 +46,11 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include' BF_PTHREADS_LIB = 'pthreadGC2' BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib' -WITH_BF_OPENEXR = False # TODO, gives linking problems for the moment. +WITH_BF_OPENEXR = True # TODO, gives linking problems for the moment. WITH_BF_STATICOPENEXR = False BF_OPENEXR = LIBDIR + '/gcc/openexr' BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR' -BF_OPENEXR_LIB = ' Half IlmImf Iex IlmThread ' +BF_OPENEXR_LIB = 'Half IlmImf Imath IlmThread Iex' BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib' # Warning, this static lib configuration is untested! users of this OS please confirm. BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a' @@ -100,8 +100,8 @@ BF_FFTW3_INC = '${BF_FFTW3}/include' BF_FFTW3_LIB = 'fftw3' BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib' -WITH_BF_GAMEENGINE = False -WITH_BF_PLAYER = False +WITH_BF_GAMEENGINE = True +WITH_BF_PLAYER = True WITH_BF_BULLET = True BF_BULLET = '#extern/bullet2/src' @@ -140,7 +140,7 @@ BF_OPENGL_LIB_STATIC = [ '${BF_OPENGL}/lib/libGL.a', '${BF_OPENGL}/lib/libGLU.a' '${BF_OPENGL}/lib/libXmu.a', '${BF_OPENGL}/lib/libXext.a', '${BF_OPENGL}/lib/libX11.a', '${BF_OPENGL}/lib/libXi.a' ] -WITH_BF_COLLADA = False # TODO, gives linking problems at the moment. +WITH_BF_COLLADA = True BF_COLLADA = '#source/blender/collada' BF_COLLADA_INC = '${BF_COLLADA}' BF_COLLADA_LIB = 'bf_collada' @@ -150,8 +150,23 @@ BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include' BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa' BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib' +#Cycles +WITH_BF_CYCLES = True + +WITH_BF_OIIO = True +BF_OIIO = LIBDIR + '/gcc/openimageio' +BF_OIIO_INC = '#../lib/windows/gcc/openimageio/include' +BF_OIIO_LIB = 'OpenImageIO' +BF_OIIO_LIBPATH = '#../lib/windows/gcc/openimageio/lib' + +WITH_BF_BOOST = True +BF_BOOST = LIBDIR + '/boost' +BF_BOOST_INC = '#../lib/windows/boost/include' +BF_BOOST_LIB = 'boost_date_time-mgw45-mt-s-1_47 boost_filesystem-mgw45-mt-s-1_47 boost_regex-mgw45-mt-s-1_47 boost_system-mgw45-mt-s-1_47 boost_thread-mgw45-mt-s-1_47' +BF_BOOST_LIBPATH = '#../lib/windows/boost/lib/gcc' + #Ray trace optimization -WITH_BF_RAYOPTIMIZATION = False +WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse'] ## @@ -161,7 +176,7 @@ CXX = 'g++' CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ] CXXFLAGS = [] -CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE64_SOURCE'] +CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE64_SOURCE', '-DBOOST_ALL_NO_LIB', '-DBOOST_THREAD_USE_LIB', '-DGLEW_STATIC'] REL_CFLAGS = [] REL_CXXFLAGS = [] REL_CCFLAGS = ['-DNDEBUG', '-O2'] @@ -170,9 +185,9 @@ C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement', '-Wstrict-pro CC_WARN = [ '-Wall' ] -LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++','-lole32','-luuid', '-lwsock32'] +LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++','-lole32','-luuid', '-lwsock32', '-lpsapi'] -PLATFORM_LINKFLAGS = ['--stack,2097152'] +PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152'] BF_DEBUG = False BF_DEBUG_CCFLAGS= ['-g', '-D_DEBUG'] diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index ceadd031393..c97e6211757 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -216,11 +216,7 @@ def setup_staticlibs(lenv): return statlibs, libincs def setup_syslibs(lenv): - syslibs = [ - - lenv['BF_JPEG_LIB'], - lenv['BF_PNG_LIB'], - ] + syslibs = [] if not lenv['WITH_BF_FREETYPE_STATIC']: syslibs += Split(lenv['BF_FREETYPE_LIB']) @@ -241,6 +237,9 @@ def setup_syslibs(lenv): syslibs += ['gomp'] if lenv['WITH_BF_ICONV']: syslibs += Split(lenv['BF_ICONV_LIB']) + if lenv['WITH_BF_OIIO']: + syslibs += Split(lenv['BF_OIIO_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']: @@ -280,16 +279,12 @@ def setup_syslibs(lenv): if not lenv['WITH_BF_STATIC3DMOUSE']: syslibs += Split(lenv['BF_3DMOUSE_LIB']) - if lenv['WITH_BF_OIIO']: - syslibs += Split(lenv['BF_OIIO_LIB']) - if lenv['WITH_BF_BOOST']: - syslibs += Split(lenv['BF_BOOST_LIB']) - - if lenv['WITH_BF_OIIO']: - syslibs += Split(lenv['BF_OIIO_LIB']) if lenv['WITH_BF_BOOST']: syslibs += Split(lenv['BF_BOOST_LIB']) + syslibs += Split(lenv['BF_JPEG_LIB']) + syslibs += Split(lenv['BF_PNG_LIB']) + syslibs += lenv['LLIBS'] return syslibs diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript index dbaf52ff175..725553e6d5b 100644 --- a/intern/cycles/SConscript +++ b/intern/cycles/SConscript @@ -13,6 +13,8 @@ sources.remove(path.join('render', 'film_response.cpp')) incs = [] defs = [] +ccflags = [] +cxxflags = [] defs.append('CCL_NAMESPACE_BEGIN=namespace ccl {') defs.append('CCL_NAMESPACE_END=}') @@ -21,6 +23,11 @@ defs.append('WITH_OPENCL') defs.append('WITH_MULTI') defs.append('WITH_CUDA') +if env['OURPLATFORM'] in ('win32-mingw'): + cxxflags.append('-fno-rtti -ffast-math -msse -msse2 -msse3 -mtune=native'.split()) + ccflags.append('-ffast-math -msse -msse2 -msse3 -mtune=native'.split()) + defs.append('BOOST_NO_RTTI BOOST_NO_TYPEID'.split()) + incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split()) incs.extend('#intern/guardedalloc #source/blender/makesrna #source/blender/makesdna'.split()) incs.extend('#source/blender/blenloader ../../source/blender/makesrna/intern'.split()) @@ -29,5 +36,5 @@ incs.append(cycles['BF_OIIO_INC']) incs.append(cycles['BF_BOOST_INC']) incs.append(cycles['BF_PYTHON_INC']) -cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0] ) +cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0], compileflags=[None], cc_compileflags=ccflags, cxx_compileflags=cxxflags) -- cgit v1.2.3 From 2f1e51ac99e77c88e6568a7182d06f1ef3597f94 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Wed, 9 Nov 2011 11:38:04 +0000 Subject: correct comment, no longer needed. --- build_files/scons/config/win32-mingw-config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_files/scons/config/win32-mingw-config.py b/build_files/scons/config/win32-mingw-config.py index 7b3fd7aa5cf..e224c08d354 100644 --- a/build_files/scons/config/win32-mingw-config.py +++ b/build_files/scons/config/win32-mingw-config.py @@ -46,7 +46,7 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include' BF_PTHREADS_LIB = 'pthreadGC2' BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib' -WITH_BF_OPENEXR = True # TODO, gives linking problems for the moment. +WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = LIBDIR + '/gcc/openexr' BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR' -- cgit v1.2.3 From adf17b48d8b179aa02bee86f0b3dae771449d8c1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Nov 2011 11:49:39 +0000 Subject: Cycles: mac + scons build should not work. --- build_files/scons/config/darwin-config.py | 17 +++++++++++++++-- build_files/scons/tools/Blender.py | 21 +++++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index 69cf54dc740..02beb80b5b1 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -254,8 +254,6 @@ BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib' WITH_BF_QUICKTIME = True -WITH_BF_CYCLES = False - WITH_BF_ICONV = True BF_ICONV = '/usr' BF_ICONV_INC = '${BF_ICONV}/include' @@ -284,6 +282,21 @@ BF_PCRE_LIBPATH = '${BF_PCRE}/lib' #BF_EXPAT_LIB = 'expat' #BF_EXPAT_LIBPATH = '/usr/lib' +#Cycles +WITH_BF_CYCLES = True + +WITH_BF_OIIO = True +BF_OIIO = LIBDIR + '/openimageio' +BF_OIIO_INC = BF_OIIO + '/include' +BF_OIIO_LIB = 'OpenImageIO' +BF_OIIO_LIBPATH = BF_OIIO + '/lib' + +WITH_BF_BOOST = True +BF_BOOST = LIBDIR + '/boost' +BF_BOOST_INC = BF_BOOST + '/include' +BF_BOOST_LIB = 'boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt' +BF_BOOST_LIBPATH = BF_BOOST + '/lib' + #Ray trace optimization if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'i386': WITH_BF_RAYOPTIMIZATION = True diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index c97e6211757..76fa8ee7489 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -550,10 +550,6 @@ def AppIt(target=None, source=None, env=None): bldroot = env.Dir('.').abspath binary = env['BINARYKIND'] - if b=='verse': - print bc.OKBLUE+"no bundle for verse"+bc.ENDC - return 0 - sourcedir = bldroot + '/source/darwin/%s.app'%binary sourceinfo = bldroot + "/source/darwin/%s.app/Contents/Info.plist"%binary targetinfo = installdir +'/' + "%s.app/Contents/Info.plist"%binary @@ -582,6 +578,23 @@ def AppIt(target=None, source=None, env=None): cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/%s/'%(bldroot,installdir,binary,VERSION) commands.getoutput(cmd) + if env['WITH_BF_CYCLES']: + croot = '%s/intern/cycles' % (bldroot) + cinstalldir = '%s/%s.app/Contents/MacOS/%s/scripts/addons/cycles' % (installdir,binary,VERSION) + + cmd = 'mkdir %s' % (cinstalldir) + commands.getoutput(cmd) + cmd = 'mkdir %s/kernel' % (cinstalldir) + commands.getoutput(cmd) + cmd = 'cp -R %s/blender/addon/*.py %s/' % (croot, cinstalldir) + commands.getoutput(cmd) + cmd = 'cp -R %s/doc/license %s/license' % (croot, cinstalldir) + commands.getoutput(cmd) + cmd = 'cp -R %s/kernel/*.h %s/kernel/*.cl %s/kernel/*.cu %s/kernel/' % (croot, croot, croot, cinstalldir) + commands.getoutput(cmd) + cmd = 'cp -R %s/kernel/svm %s/util/util_color.h %s/util/util_math.h %s/util/util_transform.h %s/util/util_types.h %s/kernel/' % (croot, croot, croot, croot, croot, cinstalldir) + commands.getoutput(cmd) + if env['WITH_OSX_STATICPYTHON']: cmd = 'mkdir %s/%s.app/Contents/MacOS/%s/python/'%(installdir,binary, VERSION) commands.getoutput(cmd) -- cgit v1.2.3 From ee1569b9330a231d8781045853f5f794518de492 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Wed, 9 Nov 2011 14:00:24 +0000 Subject: No tabs in scons! Sorry for that.. --- build_files/scons/tools/Blender.py | 2 +- intern/cycles/SConscript | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index 76fa8ee7489..434f52dac87 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -282,7 +282,7 @@ def setup_syslibs(lenv): if lenv['WITH_BF_BOOST']: syslibs += Split(lenv['BF_BOOST_LIB']) - syslibs += Split(lenv['BF_JPEG_LIB']) + syslibs += Split(lenv['BF_JPEG_LIB']) syslibs += Split(lenv['BF_PNG_LIB']) syslibs += lenv['LLIBS'] diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript index 725553e6d5b..27943ed6ac6 100644 --- a/intern/cycles/SConscript +++ b/intern/cycles/SConscript @@ -24,9 +24,9 @@ defs.append('WITH_MULTI') defs.append('WITH_CUDA') if env['OURPLATFORM'] in ('win32-mingw'): - cxxflags.append('-fno-rtti -ffast-math -msse -msse2 -msse3 -mtune=native'.split()) - ccflags.append('-ffast-math -msse -msse2 -msse3 -mtune=native'.split()) - defs.append('BOOST_NO_RTTI BOOST_NO_TYPEID'.split()) + cxxflags.append('-fno-rtti -ffast-math -msse -msse2 -msse3 -mtune=native'.split()) + ccflags.append('-ffast-math -msse -msse2 -msse3 -mtune=native'.split()) + defs.append('BOOST_NO_RTTI BOOST_NO_TYPEID'.split()) incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split()) incs.extend('#intern/guardedalloc #source/blender/makesrna #source/blender/makesdna'.split()) -- cgit v1.2.3 From e4269043b492d2fb3ae1b751148d327ff59a26c9 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 9 Nov 2011 14:13:17 +0000 Subject: Moving i18n code to BLF_translation.h This way, we will be able to use it in non-UI parts of the code too. --- source/blender/blenfont/BLF_translation.h | 10 +++++ source/blender/blenfont/intern/blf_translation.c | 45 ++++++++++++++++++++++ source/blender/editors/include/UI_interface.h | 10 ----- source/blender/editors/interface/interface.c | 44 --------------------- source/blender/editors/interface/interface_panel.c | 2 + .../editors/interface/interface_templates.c | 2 + source/blender/editors/space_node/node_templates.c | 2 + source/blender/python/SConscript | 2 +- source/blender/python/intern/CMakeLists.txt | 1 + source/blender/python/intern/bpy_rna.c | 2 +- 10 files changed, 64 insertions(+), 56 deletions(-) diff --git a/source/blender/blenfont/BLF_translation.h b/source/blender/blenfont/BLF_translation.h index 0d33180a817..ddbc9a6a760 100644 --- a/source/blender/blenfont/BLF_translation.h +++ b/source/blender/blenfont/BLF_translation.h @@ -58,8 +58,18 @@ void BLF_lang_encoding_name(const char *str); void BLF_lang_encoding(const char *str); +/* translation */ +int BLF_translate_iface(void); +int BLF_translate_tooltips(void); +const char *BLF_translate_do_iface(const char *msgid); +const char *BLF_translate_do_tooltip(const char *msgid); + + /*#define _(msgid) BLF_gettext(msgid)*/ /* The "translation-marker" macro. */ #define N_(msgid) msgid +/* Those macros should be used everywhere in UI code. */ +#define IFACE_(msgid) BLF_translate_do_iface(msgid) +#define TIP_(msgid) BLF_translate_do_tooltip(msgid) #endif /* BLF_TRANSLATION_H */ diff --git a/source/blender/blenfont/intern/blf_translation.c b/source/blender/blenfont/intern/blf_translation.c index 917d95cfc20..8688249732f 100644 --- a/source/blender/blenfont/intern/blf_translation.c +++ b/source/blender/blenfont/intern/blf_translation.c @@ -44,6 +44,8 @@ #include "BLF_translation.h" +#include "DNA_userdef_types.h" /* For user settings. */ + #ifdef WITH_INTERNATIONAL const char unifont_filename[]="droidsans.ttf.gz"; static unsigned char *unifont_ttf= NULL; @@ -88,3 +90,46 @@ const char* BLF_gettext(const char *msgid) return msgid; #endif } + +int BLF_translate_iface(void) +{ +#ifdef WITH_INTERNATIONAL + return (U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_IFACE); +#else + return 0; +#endif +} + +int BLF_translate_tooltips(void) +{ +#ifdef WITH_INTERNATIONAL + return (U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_TOOLTIPS); +#else + return 0; +#endif +} + +const char *BLF_translate_do_iface(const char *msgid) +{ +#ifdef WITH_INTERNATIONAL + if(BLF_translate_iface()) + return BLF_gettext(msgid); + else + return msgid; +#else + return msgid; +#endif +} + +const char *BLF_translate_do_tooltip(const char *msgid) +{ +#ifdef WITH_INTERNATIONAL + if(BLF_translate_tooltips()) + return BLF_gettext(msgid); + else + return msgid; +#else + return msgid; +#endif +} + diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 329f4599e01..31b47325aa7 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -820,16 +820,6 @@ uiStyle* UI_GetStyle(void); /* linker workaround ack! */ void UI_template_fix_linking(void); -/* translation */ -int UI_translate_iface(void); -int UI_translate_tooltips(void); -const char *UI_translate_do_iface(const char *msgid); -const char *UI_translate_do_tooltip(const char *msgid); - -/* Those macros should be used everywhere in UI code. */ -#define IFACE_(msgid) UI_translate_do_iface(msgid) -#define TIP_(msgid) UI_translate_do_tooltip(msgid) - /* UI_OT_editsource helpers */ int UI_editsource_enable_check(void); void UI_editsource_active_but_test(uiBut *but); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 2e144c0ca2b..fab983cee43 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -90,50 +90,6 @@ static void ui_free_but(const bContext *C, uiBut *but); -/* ************* translation ************** */ - -int UI_translate_iface(void) -{ -#ifdef WITH_INTERNATIONAL - return (U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_IFACE); -#else - return 0; -#endif -} - -int UI_translate_tooltips(void) -{ -#ifdef WITH_INTERNATIONAL - return (U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_TOOLTIPS); -#else - return 0; -#endif -} - -const char *UI_translate_do_iface(const char *msgid) -{ -#ifdef WITH_INTERNATIONAL - if(UI_translate_iface()) - return BLF_gettext(msgid); - else - return msgid; -#else - return msgid; -#endif -} - -const char *UI_translate_do_tooltip(const char *msgid) -{ -#ifdef WITH_INTERNATIONAL - if(UI_translate_tooltips()) - return BLF_gettext(msgid); - else - return msgid; -#else - return msgid; -#endif -} - /* ************* window matrix ************** */ void ui_block_to_window_fl(const ARegion *ar, uiBlock *block, float *x, float *y) diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index 9a253952e6d..aa80cb632ec 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -43,6 +43,8 @@ #include "BLI_math.h" #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "DNA_userdef_types.h" #include "BKE_context.h" diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index a3d71674a03..6cd538112e6 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -40,6 +40,8 @@ #include "BLI_string.h" #include "BLI_ghash.h" +#include "BLF_translation.h" + #include "BKE_animsys.h" #include "BKE_colortools.h" #include "BKE_context.h" diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c index 5aa15cc68d6..fedb12f747c 100644 --- a/source/blender/editors/space_node/node_templates.c +++ b/source/blender/editors/space_node/node_templates.c @@ -40,6 +40,8 @@ #include "BLI_string.h" #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_library.h" diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript index c592e87f3b9..7075b0592b8 100644 --- a/source/blender/python/SConscript +++ b/source/blender/python/SConscript @@ -4,7 +4,7 @@ Import ('env') -incs = '. ../editors/include ../makesdna ../makesrna ../blenlib ../blenkernel ../nodes' +incs = '. ../editors/include ../makesdna ../makesrna ../blenfont ../blenlib ../blenkernel ../nodes' incs += ' ../imbuf ../blenloader ../gpu ../render/extern/include ../windowmanager' incs += ' #intern/guardedalloc #intern/memutil #extern/glew/include' incs += ' #intern/audaspace/intern ' + env['BF_PYTHON_INC'] diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 9a214718e73..63ccdea3f0d 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -25,6 +25,7 @@ set(INC .. + ../../blenfont ../../blenkernel ../../blenlib ../../blenloader diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 44e26a56db6..15a9ba44552 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -77,7 +77,7 @@ #include "../generic/py_capi_utils.h" #ifdef WITH_INTERNATIONAL -#include "UI_interface.h" /* bad level call into editors */ +#include "BLF_translation.h" #endif #define USE_PEDANTIC_WRITE -- cgit v1.2.3 From bc5ec4e69cf3308c2563239c0e8372b853800a78 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 9 Nov 2011 15:00:11 +0000 Subject: Fixed/restored translation of node classes (in foreach_nodeclass funcs) --- source/blender/nodes/CMakeLists.txt | 1 + source/blender/nodes/SConscript | 2 +- .../blender/nodes/composite/node_composite_tree.c | 22 ++++++++++++---------- source/blender/nodes/shader/node_shader_tree.c | 20 +++++++++++--------- source/blender/nodes/texture/node_texture_tree.c | 20 +++++++++++--------- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 557b00d66b8..368ab1db50c 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -25,6 +25,7 @@ set(INC . + ../blenfont ../blenkernel ../blenlib ../blenloader diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript index 0cbc7b80933..d7dbed51282 100644 --- a/source/blender/nodes/SConscript +++ b/source/blender/nodes/SConscript @@ -11,7 +11,7 @@ incs += '#/intern/guardedalloc ../editors/include ../blenlib ../makesdna' incs += ' ../render/extern/include ../makesrna ' incs += ' ../imbuf ../avi ' incs += ' ../blenloader' -incs += ' ../blenkernel ../renderconverter ' +incs += ' ../blenfont ../blenkernel ../renderconverter ' incs += ' ../gpu #/extern/glew/include ' incs += ' ' + env['BF_OPENGL_INC'] diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index 06f88002a70..10b062977b2 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -39,6 +39,8 @@ #include "BLI_listbase.h" #include "BLI_threads.h" +#include "BLF_translation.h" + #include "BKE_animsys.h" #include "BKE_colortools.h" #include "BKE_fcurve.h" @@ -70,16 +72,16 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func) { - func(calldata, NODE_CLASS_INPUT, "Input"); - func(calldata, NODE_CLASS_OUTPUT, "Output"); - func(calldata, NODE_CLASS_OP_COLOR, "Color"); - func(calldata, NODE_CLASS_OP_VECTOR, "Vector"); - func(calldata, NODE_CLASS_OP_FILTER, "Filter"); - func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); - func(calldata, NODE_CLASS_MATTE, "Matte"); - func(calldata, NODE_CLASS_DISTORT, "Distort"); - func(calldata, NODE_CLASS_GROUP, "Group"); - func(calldata, NODE_CLASS_LAYOUT, "Layout"); + func(calldata, NODE_CLASS_INPUT, IFACE_("Input")); + func(calldata, NODE_CLASS_OUTPUT, IFACE_("Output")); + func(calldata, NODE_CLASS_OP_COLOR, IFACE_("Color")); + func(calldata, NODE_CLASS_OP_VECTOR, IFACE_("Vector")); + func(calldata, NODE_CLASS_OP_FILTER, IFACE_("Filter")); + func(calldata, NODE_CLASS_CONVERTOR, IFACE_("Convertor")); + func(calldata, NODE_CLASS_MATTE, IFACE_("Matte")); + func(calldata, NODE_CLASS_DISTORT, IFACE_("Distort")); + func(calldata, NODE_CLASS_GROUP, IFACE_("Group")); + func(calldata, NODE_CLASS_LAYOUT, IFACE_("Layout")); } static void free_node_cache(bNodeTree *UNUSED(ntree), bNode *node) diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c index e116944e688..6c7667c6729 100644 --- a/source/blender/nodes/shader/node_shader_tree.c +++ b/source/blender/nodes/shader/node_shader_tree.c @@ -43,6 +43,8 @@ #include "BLI_threads.h" #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "BKE_global.h" #include "BKE_main.h" #include "BKE_node.h" @@ -78,19 +80,19 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) static void foreach_nodeclass(Scene *scene, void *calldata, bNodeClassCallback func) { - func(calldata, NODE_CLASS_INPUT, "Input"); - func(calldata, NODE_CLASS_OUTPUT, "Output"); + func(calldata, NODE_CLASS_INPUT, IFACE_("Input")); + func(calldata, NODE_CLASS_OUTPUT, IFACE_("Output")); if(scene_use_new_shading_nodes(scene)) { - func(calldata, NODE_CLASS_SHADER, "Shader"); - func(calldata, NODE_CLASS_TEXTURE, "Texture"); + func(calldata, NODE_CLASS_SHADER, IFACE_("Shader")); + func(calldata, NODE_CLASS_TEXTURE, IFACE_("Texture")); } - func(calldata, NODE_CLASS_OP_COLOR, "Color"); - func(calldata, NODE_CLASS_OP_VECTOR, "Vector"); - func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); - func(calldata, NODE_CLASS_GROUP, "Group"); - func(calldata, NODE_CLASS_LAYOUT, "Layout"); + func(calldata, NODE_CLASS_OP_COLOR, IFACE_("Color")); + func(calldata, NODE_CLASS_OP_VECTOR, IFACE_("Vector")); + func(calldata, NODE_CLASS_CONVERTOR, IFACE_("Convertor")); + func(calldata, NODE_CLASS_GROUP, IFACE_("Group")); + func(calldata, NODE_CLASS_LAYOUT, IFACE_("Layout")); } static void local_sync(bNodeTree *localtree, bNodeTree *ntree) diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 84bb53e2215..e863e9f6e0f 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -39,6 +39,8 @@ #include "BLI_threads.h" #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "BKE_global.h" #include "BKE_main.h" #include "BKE_node.h" @@ -64,15 +66,15 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func) static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func) { - func(calldata, NODE_CLASS_INPUT, "Input"); - func(calldata, NODE_CLASS_OUTPUT, "Output"); - func(calldata, NODE_CLASS_OP_COLOR, "Color"); - func(calldata, NODE_CLASS_PATTERN, "Patterns"); - func(calldata, NODE_CLASS_TEXTURE, "Textures"); - func(calldata, NODE_CLASS_CONVERTOR, "Convertor"); - func(calldata, NODE_CLASS_DISTORT, "Distort"); - func(calldata, NODE_CLASS_GROUP, "Group"); - func(calldata, NODE_CLASS_LAYOUT, "Layout"); + func(calldata, NODE_CLASS_INPUT, IFACE_("Input")); + func(calldata, NODE_CLASS_OUTPUT, IFACE_("Output")); + func(calldata, NODE_CLASS_OP_COLOR, IFACE_("Color")); + func(calldata, NODE_CLASS_PATTERN, IFACE_("Patterns")); + func(calldata, NODE_CLASS_TEXTURE, IFACE_("Textures")); + func(calldata, NODE_CLASS_CONVERTOR, IFACE_("Convertor")); + func(calldata, NODE_CLASS_DISTORT, IFACE_("Distort")); + func(calldata, NODE_CLASS_GROUP, IFACE_("Group")); + func(calldata, NODE_CLASS_LAYOUT, IFACE_("Layout")); } static void local_sync(bNodeTree *localtree, bNodeTree *ntree) -- cgit v1.2.3